@nocobase/plugin-public-forms 2.1.31 → 2.2.0-alpha.10
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.
- package/dist/client/198.780dab97e4ef08bf.js +10 -0
- package/dist/client/224.5536c33a162f55b3.js +10 -0
- package/dist/client/397.3f67c86613025a0e.js +10 -0
- package/dist/client/594.43db6c29093027e8.js +10 -0
- package/dist/client/595.eeb0d3acf81baf05.js +10 -0
- package/dist/client/599.5b805a5c7f2d27c9.js +10 -0
- package/dist/client/634.6f0d8f6bd9082579.js +10 -0
- package/dist/client/64.87bced51d952fd71.js +10 -0
- package/dist/client/966.2fd2224ac56adc7e.js +10 -0
- package/dist/client/index.js +1 -1
- package/dist/client-v2/169.c3c0b4b8c94d6588.js +10 -0
- package/dist/client-v2/208.e01457b6cdac5436.js +10 -0
- package/dist/client-v2/594.823197edcbcf8961.js +10 -0
- package/dist/client-v2/599.740e22df9906f9ab.js +10 -0
- package/dist/client-v2/{610.5a762348c1d0e93d.js → 610.934e0e89291812bf.js} +1 -1
- package/dist/client-v2/index.js +1 -1
- package/dist/client-v2/modelLoaders.d.ts +10 -0
- package/dist/client-v2/modelTree.d.ts +4 -2
- package/dist/client-v2/models/PublicFormsSettingsLayoutModel.d.ts +6 -0
- package/dist/client-v2/pages/PublicFormsSettingsDetailPage.d.ts +13 -0
- package/dist/externalVersion.js +7 -6
- package/dist/server/collections/publicForms.js +4 -0
- package/dist/server/plugin.d.ts +26 -0
- package/dist/server/plugin.js +231 -12
- package/package.json +4 -3
- package/dist/client/192.8517b0a03feac7ee.js +0 -10
- package/dist/client/397.b68774708fca6416.js +0 -10
- package/dist/client/595.e4187f59ebf46642.js +0 -10
- package/dist/client-v2/594.3ec7d41fb076d365.js +0 -10
- package/dist/client-v2/599.be4aea35e18fe34f.js +0 -10
- package/dist/client-v2/965.9ebc606a71f466a5.js +0 -10
package/dist/client-v2/index.js
CHANGED
|
@@ -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("ahooks"),require("react-i18next"),require("@emotion/css"),require("@nocobase/client-v2"),require("react-router-dom"),require("@formily/reactive"),require("react"),require("antd"),require("@ant-design/icons"),require("@nocobase/flow-engine")):"function"==typeof define&&define.amd?define("@nocobase/plugin-public-forms/client-v2",["ahooks","react-i18next","@emotion/css","@nocobase/client-v2","react-router-dom","@formily/reactive","react","antd","@ant-design/icons","@nocobase/flow-engine"],t):"object"==typeof exports?exports["@nocobase/plugin-public-forms/client-v2"]=t(require("ahooks"),require("react-i18next"),require("@emotion/css"),require("@nocobase/client-v2"),require("react-router-dom"),require("@formily/reactive"),require("react"),require("antd"),require("@ant-design/icons"),require("@nocobase/flow-engine")):e["@nocobase/plugin-public-forms/client-v2"]=t(e.ahooks,e["react-i18next"],e["@emotion/css"],e["@nocobase/client-v2"],e["react-router-dom"],e["@formily/reactive"],e.react,e.antd,e["@ant-design/icons"],e["@nocobase/flow-engine"])}(self,function(e,t,n,r,o,i,u,c,a,l){return function(){"use strict";var s,f,p,b={401:function(e,t,n){n.d(t,{$x:function(){return a},AU:function(){return d},B4:function(){return f},BQ:function(){return p},MM:function(){return u},ND:function(){return l},ei:function(){return o},gr:function(){return r},l_:function(){return b},n7:function(){return i},oh:function(){return s},rl:function(){return c}});var r="public-forms",o="admin.settings.public-forms.index.layout",i="configure",u="public-forms-settings-layout-model",c="PublicFormsSettingsLayoutModel",a="public-forms",l="public-form-layout-model",s="PublicFormLayoutModel",f="PublicFormPageModel",p="PublicFormSubmitActionModel",b="NOCOBASE_FORM_TOKEN",d="# Submitted successfully!\nThis is a demo text, **supports Markdown syntax**."},375:function(e){e.exports=a},477:function(e){e.exports=n},992:function(e){e.exports=i},485:function(e){e.exports=r},694:function(e){e.exports=l},625:function(t){t.exports=e},59:function(e){e.exports=c},155:function(e){e.exports=u},953:function(e){e.exports=t},442:function(e){e.exports=o}},d={};function m(e){var t=d[e];if(void 0!==t)return t.exports;var n=d[e]={exports:{}};return b[e](n,n.exports,m),n.exports}m.m=b,m.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return m.d(t,{a:t}),t},m.d=function(e,t){for(var n in t)m.o(t,n)&&!m.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},m.f={},m.e=function(e){return Promise.all(Object.keys(m.f).reduce(function(t,n){return m.f[n](e,t),t},[]))},m.u=function(e){return""+e+"."+({594:"3ec7d41fb076d365",599:"be4aea35e18fe34f",610:"5a762348c1d0e93d",64:"14dd13ceb37723c5",965:"9ebc606a71f466a5"})[e]+".js"},m.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),m.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},h={},m.l=function(e,t,n,r){if(h[e])return void h[e].push(t);if(void 0!==n)for(var o,i,u=document.getElementsByTagName("script"),c=0;c<u.length;c++){var a=u[c];if(a.getAttribute("src")==e||a.getAttribute("data-rspack")=="@nocobase/plugin-public-forms/client-v2:"+n){o=a;break}}o||(i=!0,(o=document.createElement("script")).timeout=120,m.nc&&o.setAttribute("nonce",m.nc),o.setAttribute("data-rspack","@nocobase/plugin-public-forms/client-v2:"+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)},m.r=function(e){"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},m.g.importScripts&&(v=m.g.location+"");var h,v,y=m.g.document;if(!v&&y&&(y.currentScript&&"SCRIPT"===y.currentScript.tagName.toUpperCase()&&(v=y.currentScript.src),!v)){var g=y.getElementsByTagName("script");if(g.length)for(var w=g.length-1;w>-1&&(!v||!/^http(s?):/.test(v));)v=g[w--].src}if(!v)throw Error("Automatic publicPath is not supported in this browser");m.p=v.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),s={889:0},m.f.j=function(e,t){var n=m.o(s,e)?s[e]:void 0;if(0!==n)if(n)t.push(n[2]);else{var r=new Promise(function(t,r){n=s[e]=[t,r]});t.push(n[2]=r);var o=m.p+m.u(e),i=Error();m.l(o,function(t){if(m.o(s,e)&&(0!==(n=s[e])&&(s[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)}},f=function(e,t){var n,r,o=t[0],i=t[1],u=t[2],c=0;if(o.some(function(e){return 0!==s[e]})){for(n in i)m.o(i,n)&&(m.m[n]=i[n]);u&&u(m)}for(e&&e(t);c<o.length;c++)r=o[c],m.o(s,r)&&s[r]&&s[r][0](),s[r]=0},(p=self.webpackChunk_nocobase_plugin_public_forms_client_v2=self.webpackChunk_nocobase_plugin_public_forms_client_v2||[]).forEach(f.bind(null,0)),p.push=f.bind(null,p.push.bind(p));var _={};return!function(){var e="",t="u">typeof document?document.currentScript:null;if(t&&t.src){var n=t.src.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"");n.indexOf("/static/plugins/@nocobase/plugin-public-forms/dist/client-v2/")>=0&&(e=n.replace(/\/[^\/]+$/,"/"))}if(!e){var r=window.__webpack_public_path__||"";r&&("/"!==r.charAt(r.length-1)&&(r+="/"),e=r+"static/plugins/@nocobase/plugin-public-forms/dist/client-v2/")}if(!e){var o=window.__nocobase_modern_client_prefix__||"v",i="/"+(o=String(o).replace(/^\/+|\/+$/g,"")||"v")+"/";if(!(e=window.__nocobase_public_path__||"")&&window.location&&window.location.pathname){var u=window.location.pathname||"/",c=u.indexOf(i);e=c>=0?u.slice(0,c+1):"/"}e&&(e=e.replace(RegExp("/"+o+"/?$"),"/")),e||(e="/"),"/"!==e.charAt(e.length-1)&&(e+="/"),e+="static/plugins/@nocobase/plugin-public-forms/dist/client-v2/"}m.p=e}(),!function(){m.r(_),m.d(_,{default:function(){return s},PluginPublicFormsClientV2:function(){return l}});var e=m(485),t=m(401);function n(e,t,n,r,o,i,u){try{var c=e[i](u),a=c.value}catch(e){n(e);return}c.done?t(a):Promise.resolve(a).then(r,o)}function r(e,t,n){return(r=a()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var o=new(Function.bind.apply(e,r));return n&&u(o,n.prototype),o}).apply(null,arguments)}function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e){return(i=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function u(e,t){return(u=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 r(e,arguments,i(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),u(n,e)})(e)}function a(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(a=function(){return!!e})()}var l=function(e){var r;if("function"!=typeof e&&null!==e)throw TypeError("Super expression must either be null or a function");function c(){var e,t;if(!(this instanceof c))throw TypeError("Cannot call a class as a function");return e=c,t=arguments,e=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,a()?Reflect.construct(e,t||[],i(this).constructor):e.apply(this,t))}return c.prototype=Object.create(e&&e.prototype,{constructor:{value:c,writable:!0,configurable:!0}}),e&&u(c,e),r=[{key:"load",value:function(){var e;return(e=function(){var e,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:[]},u=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),c=Object.defineProperty;return c(u,"next",{value:a(0)}),c(u,"throw",{value:a(1)}),c(u,"return",{value:a(2)}),"function"==typeof Symbol&&c(u,Symbol.iterator,{value:function(){return this}}),u;function a(c){return function(a){var l=[c,a];if(n)throw TypeError("Generator is already executing.");for(;u&&(u=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){return e=this.app.i18n.t("Public forms",{ns:t.gr}),this.flowEngine.registerModelLoaders((o(n={},t.rl,{loader:function(){return m.e("594").then(m.bind(m,913))}}),o(n,t.oh,{loader:function(){return m.e("610").then(m.bind(m,57))}}),o(n,t.B4,{loader:function(){return m.e("599").then(m.bind(m,826))}}),o(n,t.BQ,{loader:function(){return m.e("64").then(m.bind(m,43))}}),n)),this.pluginSettingsManager.addMenuItem({key:t.gr,title:e,icon:"TableOutlined",aclSnippet:"pm.public-forms"}),this.pluginSettingsManager.addPageTabItem({menuKey:t.gr,key:"index",title:e,componentLoader:function(){return m.e("965").then(m.bind(m,260))}}),this.app.layoutManager.registerLayout({routeName:t.ei,routePath:t.n7,uid:t.MM,layoutModelClass:t.rl}),this.app.layoutManager.registerLayout({routeName:t.$x,routePath:"/public-forms",uid:t.ND,layoutModelClass:t.oh,rootPageModelClass:t.B4,authCheck:!1}),[2]})},function(){var t=this,r=arguments;return new Promise(function(o,i){var u=e.apply(t,r);function c(e){n(u,o,i,c,a,"next",e)}function a(e){n(u,o,i,c,a,"throw",e)}c(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)}}(c.prototype,r),c}(c(e.Plugin)),s=l}(),_}()});
|
|
10
|
+
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("ahooks"),require("react-i18next"),require("@emotion/css"),require("@nocobase/client-v2"),require("react-router-dom"),require("@formily/reactive"),require("react"),require("antd"),require("@ant-design/icons"),require("@nocobase/flow-engine")):"function"==typeof define&&define.amd?define("@nocobase/plugin-public-forms/client-v2",["ahooks","react-i18next","@emotion/css","@nocobase/client-v2","react-router-dom","@formily/reactive","react","antd","@ant-design/icons","@nocobase/flow-engine"],t):"object"==typeof exports?exports["@nocobase/plugin-public-forms/client-v2"]=t(require("ahooks"),require("react-i18next"),require("@emotion/css"),require("@nocobase/client-v2"),require("react-router-dom"),require("@formily/reactive"),require("react"),require("antd"),require("@ant-design/icons"),require("@nocobase/flow-engine")):e["@nocobase/plugin-public-forms/client-v2"]=t(e.ahooks,e["react-i18next"],e["@emotion/css"],e["@nocobase/client-v2"],e["react-router-dom"],e["@formily/reactive"],e.react,e.antd,e["@ant-design/icons"],e["@nocobase/flow-engine"])}(self,function(e,t,n,r,o,i,u,c,a,l){return function(){"use strict";var f,s,p,b={401:function(e,t,n){n.d(t,{$x:function(){return i},AU:function(){return s},B4:function(){return a},BQ:function(){return l},ND:function(){return u},gr:function(){return r},l_:function(){return f},oh:function(){return c},rl:function(){return o}});var r="public-forms",o="PublicFormsSettingsLayoutModel",i="public-forms",u="public-form-layout-model",c="PublicFormLayoutModel",a="PublicFormPageModel",l="PublicFormSubmitActionModel",f="NOCOBASE_FORM_TOKEN",s="# Submitted successfully!\nThis is a demo text, **supports Markdown syntax**."},375:function(e){e.exports=a},477:function(e){e.exports=n},992:function(e){e.exports=i},485:function(e){e.exports=r},694:function(e){e.exports=l},625:function(t){t.exports=e},59:function(e){e.exports=c},155:function(e){e.exports=u},953:function(e){e.exports=t},442:function(e){e.exports=o}},d={};function m(e){var t=d[e];if(void 0!==t)return t.exports;var n=d[e]={exports:{}};return b[e](n,n.exports,m),n.exports}m.m=b,m.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return m.d(t,{a:t}),t},m.d=function(e,t){for(var n in t)m.o(t,n)&&!m.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},m.f={},m.e=function(e){return Promise.all(Object.keys(m.f).reduce(function(t,n){return m.f[n](e,t),t},[]))},m.u=function(e){return""+e+"."+({169:"c3c0b4b8c94d6588",208:"e01457b6cdac5436",594:"823197edcbcf8961",599:"740e22df9906f9ab",610:"934e0e89291812bf",64:"14dd13ceb37723c5"})[e]+".js"},m.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),m.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},h={},m.l=function(e,t,n,r){if(h[e])return void h[e].push(t);if(void 0!==n)for(var o,i,u=document.getElementsByTagName("script"),c=0;c<u.length;c++){var a=u[c];if(a.getAttribute("src")==e||a.getAttribute("data-rspack")=="@nocobase/plugin-public-forms/client-v2:"+n){o=a;break}}o||(i=!0,(o=document.createElement("script")).timeout=120,m.nc&&o.setAttribute("nonce",m.nc),o.setAttribute("data-rspack","@nocobase/plugin-public-forms/client-v2:"+n),o.src=e),h[e]=[t];var l=function(t,n){o.onerror=o.onload=null,clearTimeout(f);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)},f=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)},m.r=function(e){"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},m.g.importScripts&&(v=m.g.location+"");var h,v,g=m.g.document;if(!v&&g&&(g.currentScript&&"SCRIPT"===g.currentScript.tagName.toUpperCase()&&(v=g.currentScript.src),!v)){var y=g.getElementsByTagName("script");if(y.length)for(var w=y.length-1;w>-1&&(!v||!/^http(s?):/.test(v));)v=y[w--].src}if(!v)throw Error("Automatic publicPath is not supported in this browser");m.p=v.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),f={889:0},m.f.j=function(e,t){var n=m.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=m.p+m.u(e),i=Error();m.l(o,function(t){if(m.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)}},s=function(e,t){var n,r,o=t[0],i=t[1],u=t[2],c=0;if(o.some(function(e){return 0!==f[e]})){for(n in i)m.o(i,n)&&(m.m[n]=i[n]);u&&u(m)}for(e&&e(t);c<o.length;c++)r=o[c],m.o(f,r)&&f[r]&&f[r][0](),f[r]=0},(p=self.webpackChunk_nocobase_plugin_public_forms_client_v2=self.webpackChunk_nocobase_plugin_public_forms_client_v2||[]).forEach(s.bind(null,0)),p.push=s.bind(null,p.push.bind(p));var _={};return!function(){var e="",t="u">typeof document?document.currentScript:null;if(t&&t.src){var n=t.src.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"");n.indexOf("/static/plugins/@nocobase/plugin-public-forms/dist/client-v2/")>=0&&(e=n.replace(/\/[^\/]+$/,"/"))}if(!e){var r=window.__webpack_public_path__||"";r&&("/"!==r.charAt(r.length-1)&&(r+="/"),e=r+"static/plugins/@nocobase/plugin-public-forms/dist/client-v2/")}if(!e){var o=window.__nocobase_modern_client_prefix__||"v",i="/"+(o=String(o).replace(/^\/+|\/+$/g,"")||"v")+"/";if(!(e=window.__nocobase_public_path__||"")&&window.location&&window.location.pathname){var u=window.location.pathname||"/",c=u.indexOf(i);e=c>=0?u.slice(0,c+1):"/"}e&&(e=e.replace(RegExp("/"+o+"/?$"),"/")),e||(e="/"),"/"!==e.charAt(e.length-1)&&(e+="/"),e+="static/plugins/@nocobase/plugin-public-forms/dist/client-v2/"}m.p=e}(),!function(){m.r(_),m.d(_,{default:function(){return f},PluginPublicFormsClientV2:function(){return l}});var e=m(485),t=m(401);function n(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t,n,r,o,i,u){try{var c=e[i](u),a=c.value}catch(e){n(e);return}c.done?t(a):Promise.resolve(a).then(r,o)}function o(e,t,n){return(o=a()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var o=new(Function.bind.apply(e,r));return n&&u(o,n.prototype),o}).apply(null,arguments)}function i(e){return(i=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function u(e,t){return(u=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 o(e,arguments,i(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),u(n,e)})(e)}function a(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(a=function(){return!!e})()}var l=function(e){var o;if("function"!=typeof e&&null!==e)throw TypeError("Super expression must either be null or a function");function c(){var e,t;if(!(this instanceof c))throw TypeError("Cannot call a class as a function");return e=c,t=arguments,e=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,a()?Reflect.construct(e,t||[],i(this).constructor):e.apply(this,t))}return c.prototype=Object.create(e&&e.prototype,{constructor:{value:c,writable:!0,configurable:!0}}),e&&u(c,e),o=[{key:"load",value:function(){var e;return(e=function(){var e;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:[]},u=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),c=Object.defineProperty;return c(u,"next",{value:a(0)}),c(u,"throw",{value:a(1)}),c(u,"return",{value:a(2)}),"function"==typeof Symbol&&c(u,Symbol.iterator,{value:function(){return this}}),u;function a(c){return function(a){var l=[c,a];if(n)throw TypeError("Generator is already executing.");for(;u&&(u=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;return e=this.app.i18n.t("Public forms",{ns:t.gr}),this.flowEngine.registerModelLoaders((n(o={},t.rl,{loader:function(){return m.e("594").then(m.bind(m,913))}}),n(o,t.oh,{loader:function(){return m.e("610").then(m.bind(m,57))}}),n(o,t.B4,{loader:function(){return m.e("599").then(m.bind(m,826))}}),n(o,t.BQ,{loader:function(){return m.e("64").then(m.bind(m,43))}}),o)),this.pluginSettingsManager.addMenuItem({key:t.gr,title:e,icon:"TableOutlined",aclSnippet:"pm.public-forms"}),this.pluginSettingsManager.addPageTabItem({menuKey:t.gr,key:"index",title:e,componentLoader:function(){return m.e("208").then(m.bind(m,483))}}),this.pluginSettingsManager.addPageTabItem({menuKey:t.gr,key:":name",title:!1,hidden:!0,componentLoader:function(){return Promise.all([m.e("594"),m.e("169")]).then(m.bind(m,648))}}),this.app.layoutManager.registerLayout({routeName:t.$x,routePath:"/public-forms",uid:t.ND,layoutModelClass:t.oh,rootPageModelClass:t.B4,authCheck:!1}),[2]})},function(){var t=this,n=arguments;return new Promise(function(o,i){var u=e.apply(t,n);function c(e){r(u,o,i,c,a,"next",e)}function a(e){r(u,o,i,c,a,"throw",e)}c(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)}}(c.prototype,o),c}(c(e.Plugin)),f=l}(),_}()});
|
|
@@ -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
|
+
import type { FlowEngine } from '@nocobase/flow-engine';
|
|
10
|
+
export declare function registerPublicFormV2ModelLoaders(flowEngine: Pick<FlowEngine, 'registerModelLoaders'>): void;
|
|
@@ -7,15 +7,17 @@
|
|
|
7
7
|
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
8
|
*/
|
|
9
9
|
import type { FlowEngine } from '@nocobase/flow-engine';
|
|
10
|
+
import type { FlowModel } from '@nocobase/flow-engine';
|
|
10
11
|
export interface PublicFormRecord {
|
|
11
12
|
key: string;
|
|
12
13
|
title?: string;
|
|
13
14
|
collection?: string;
|
|
14
15
|
type?: string;
|
|
16
|
+
version?: string;
|
|
15
17
|
description?: string;
|
|
16
18
|
enabled?: boolean;
|
|
17
19
|
password?: string;
|
|
18
|
-
[key: string]:
|
|
20
|
+
[key: string]: unknown;
|
|
19
21
|
}
|
|
20
22
|
export declare function parseCollectionValue(value?: string): {
|
|
21
23
|
dataSourceKey: string;
|
|
@@ -122,4 +124,4 @@ export declare function createPublicFormFlowModelTree(record: PublicFormRecord,
|
|
|
122
124
|
};
|
|
123
125
|
};
|
|
124
126
|
};
|
|
125
|
-
export declare function ensurePublicFormFlowModel(flowEngine: FlowEngine, record: PublicFormRecord, t: (key: string) => string): Promise<
|
|
127
|
+
export declare function ensurePublicFormFlowModel(flowEngine: FlowEngine, record: PublicFormRecord, t: (key: string) => string): Promise<FlowModel<import("@nocobase/flow-engine").DefaultStructure>>;
|
|
@@ -7,7 +7,13 @@
|
|
|
7
7
|
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
8
|
*/
|
|
9
9
|
import { BaseLayoutModel } from '@nocobase/client-v2';
|
|
10
|
+
import type { FlowModel } from '@nocobase/flow-engine';
|
|
10
11
|
import React from 'react';
|
|
12
|
+
type PublicFormsSettingsDetailViewProps = {
|
|
13
|
+
pageUid?: string;
|
|
14
|
+
children?: React.ReactNode | ((routeModel: FlowModel) => React.ReactNode);
|
|
15
|
+
};
|
|
16
|
+
export declare const PublicFormsSettingsDetailView: React.MemoExoticComponent<import("@formily/reactive-react").ReactFC<PublicFormsSettingsDetailViewProps>>;
|
|
11
17
|
export declare class PublicFormsSettingsLayoutModel extends BaseLayoutModel {
|
|
12
18
|
render(): React.JSX.Element;
|
|
13
19
|
}
|
|
@@ -0,0 +1,13 @@
|
|
|
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
|
+
import React from 'react';
|
|
10
|
+
export declare function PublicFormsSettingsDetailContent(props: {
|
|
11
|
+
pageUid?: string;
|
|
12
|
+
}): React.JSX.Element;
|
|
13
|
+
export default function PublicFormsSettingsDetailPage(): React.JSX.Element;
|
package/dist/externalVersion.js
CHANGED
|
@@ -8,12 +8,13 @@
|
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
module.exports = {
|
|
11
|
-
"@nocobase/client": "2.
|
|
11
|
+
"@nocobase/client": "2.2.0-alpha.10",
|
|
12
12
|
"react-i18next": "11.18.6",
|
|
13
|
-
"@nocobase/flow-engine": "2.
|
|
14
|
-
"@nocobase/client-v2": "2.
|
|
15
|
-
"@nocobase/plugin-ui-schema-storage": "2.
|
|
16
|
-
"@nocobase/server": "2.
|
|
13
|
+
"@nocobase/flow-engine": "2.2.0-alpha.10",
|
|
14
|
+
"@nocobase/client-v2": "2.2.0-alpha.10",
|
|
15
|
+
"@nocobase/plugin-ui-schema-storage": "2.2.0-alpha.10",
|
|
16
|
+
"@nocobase/server": "2.2.0-alpha.10",
|
|
17
|
+
"@nocobase/utils": "2.2.0-alpha.10",
|
|
17
18
|
"react": "18.2.0",
|
|
18
19
|
"@ant-design/icons": "5.6.1",
|
|
19
20
|
"antd": "5.24.2",
|
|
@@ -26,6 +27,6 @@ module.exports = {
|
|
|
26
27
|
"@formily/core": "2.3.7",
|
|
27
28
|
"@formily/shared": "2.3.7",
|
|
28
29
|
"@formily/reactive": "2.3.7",
|
|
29
|
-
"@nocobase/database": "2.
|
|
30
|
+
"@nocobase/database": "2.2.0-alpha.10",
|
|
30
31
|
"dayjs": "1.11.13"
|
|
31
32
|
};
|
package/dist/server/plugin.d.ts
CHANGED
|
@@ -7,8 +7,27 @@
|
|
|
7
7
|
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
8
|
*/
|
|
9
9
|
import { Plugin } from '@nocobase/server';
|
|
10
|
+
type PublicFormTokenPayload = {
|
|
11
|
+
collectionName: string;
|
|
12
|
+
formKey: string;
|
|
13
|
+
targetCollections: string[];
|
|
14
|
+
exp?: number;
|
|
15
|
+
};
|
|
16
|
+
type PublicFormCookiePayload = PublicFormTokenPayload & {
|
|
17
|
+
v: 1;
|
|
18
|
+
appName?: string;
|
|
19
|
+
files: Record<string, Array<string | number>>;
|
|
20
|
+
};
|
|
21
|
+
type FileAccessAuthorizeParams = {
|
|
22
|
+
appName: string;
|
|
23
|
+
dataSourceKey: string;
|
|
24
|
+
collectionName: string;
|
|
25
|
+
id: string;
|
|
26
|
+
preview: boolean;
|
|
27
|
+
};
|
|
10
28
|
export declare class PluginPublicFormsServer extends Plugin {
|
|
11
29
|
protected associationFieldTypes: string[];
|
|
30
|
+
protected fileAccessAuthorizerRegistered: boolean;
|
|
12
31
|
parseCollectionData(dataSourceKey: any, formCollection: any, appends: any): Promise<any[]>;
|
|
13
32
|
getFlowModelTree(uid: string, options?: {
|
|
14
33
|
includeAsyncNode?: boolean;
|
|
@@ -45,10 +64,17 @@ export declare class PluginPublicFormsServer extends Plugin {
|
|
|
45
64
|
title: any;
|
|
46
65
|
passwordRequired?: undefined;
|
|
47
66
|
}>;
|
|
67
|
+
getPublicFormCookieName(formKey: string): string;
|
|
68
|
+
decodePublicFormCookie(value?: string | null): Promise<PublicFormCookiePayload | null>;
|
|
69
|
+
readPublicFormCookie(ctx: any, formKey: string): Promise<PublicFormCookiePayload>;
|
|
70
|
+
setPublicFormCookie(ctx: any, payload: PublicFormCookiePayload, maxAge?: number): void;
|
|
48
71
|
getPublicFormsMeta: (ctx: any, next: any) => Promise<void>;
|
|
49
72
|
getPublicFormFlowModel: (ctx: any, next: any) => Promise<void>;
|
|
50
73
|
parseToken: (ctx: any, next: any) => Promise<any>;
|
|
51
74
|
parseACL: (ctx: any, next: any) => Promise<any>;
|
|
75
|
+
appendUploadedFileToPublicFormCookie: (ctx: any, next: any) => Promise<void>;
|
|
76
|
+
authorizePublicFormFileAccess: (ctx: any, params: FileAccessAuthorizeParams) => Promise<boolean>;
|
|
77
|
+
registerFileAccessAuthorizer(): void;
|
|
52
78
|
load(): Promise<void>;
|
|
53
79
|
install(): Promise<void>;
|
|
54
80
|
afterEnable(): Promise<void>;
|
package/dist/server/plugin.js
CHANGED
|
@@ -7,9 +7,11 @@
|
|
|
7
7
|
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
|
+
var __create = Object.create;
|
|
10
11
|
var __defProp = Object.defineProperty;
|
|
11
12
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
12
13
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
14
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
13
15
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
14
16
|
var __export = (target, all) => {
|
|
15
17
|
for (var name in all)
|
|
@@ -23,6 +25,14 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
23
25
|
}
|
|
24
26
|
return to;
|
|
25
27
|
};
|
|
28
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
29
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
30
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
31
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
32
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
33
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
34
|
+
mod
|
|
35
|
+
));
|
|
26
36
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
27
37
|
var plugin_exports = {};
|
|
28
38
|
__export(plugin_exports, {
|
|
@@ -31,11 +41,66 @@ __export(plugin_exports, {
|
|
|
31
41
|
});
|
|
32
42
|
module.exports = __toCommonJS(plugin_exports);
|
|
33
43
|
var import_server = require("@nocobase/server");
|
|
44
|
+
var import_utils = require("@nocobase/utils");
|
|
45
|
+
var import_crypto = __toESM(require("crypto"));
|
|
34
46
|
var import_hook = require("./hook");
|
|
35
47
|
class PasswordError extends Error {
|
|
36
48
|
}
|
|
49
|
+
const PUBLIC_FORM_COOKIE_PREFIX = "nb_pf_";
|
|
50
|
+
const PUBLIC_FORM_TOKEN_EXPIRES_IN = "1h";
|
|
51
|
+
const PUBLIC_FORM_COOKIE_MAX_AGE = 60 * 60 * 1e3;
|
|
52
|
+
function parseCookieHeader(header) {
|
|
53
|
+
const cookies = [];
|
|
54
|
+
if (!header) {
|
|
55
|
+
return cookies;
|
|
56
|
+
}
|
|
57
|
+
for (const item of header.split(";")) {
|
|
58
|
+
const index = item.indexOf("=");
|
|
59
|
+
if (index < 0) {
|
|
60
|
+
continue;
|
|
61
|
+
}
|
|
62
|
+
const name = item.slice(0, index).trim();
|
|
63
|
+
const value = item.slice(index + 1).trim();
|
|
64
|
+
if (!name) {
|
|
65
|
+
continue;
|
|
66
|
+
}
|
|
67
|
+
try {
|
|
68
|
+
cookies.push([name, decodeURIComponent(value)]);
|
|
69
|
+
} catch {
|
|
70
|
+
cookies.push([name, value]);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
return cookies;
|
|
74
|
+
}
|
|
75
|
+
function normalizeFiles(value) {
|
|
76
|
+
const files = {};
|
|
77
|
+
if (!value || typeof value !== "object" || Array.isArray(value)) {
|
|
78
|
+
return files;
|
|
79
|
+
}
|
|
80
|
+
for (const [key, ids] of Object.entries(value)) {
|
|
81
|
+
if (typeof key !== "string" || !Array.isArray(ids)) {
|
|
82
|
+
continue;
|
|
83
|
+
}
|
|
84
|
+
files[key] = ids.filter((id) => typeof id === "string" || typeof id === "number");
|
|
85
|
+
}
|
|
86
|
+
return files;
|
|
87
|
+
}
|
|
88
|
+
function getResponseRecordId(body) {
|
|
89
|
+
const responseBody = body && typeof body === "object" && "data" in body ? body.data : body;
|
|
90
|
+
if (!responseBody || typeof responseBody !== "object") {
|
|
91
|
+
return null;
|
|
92
|
+
}
|
|
93
|
+
if ("get" in responseBody && typeof responseBody.get === "function") {
|
|
94
|
+
return responseBody.get("id");
|
|
95
|
+
}
|
|
96
|
+
if ("id" in responseBody) {
|
|
97
|
+
return responseBody.id;
|
|
98
|
+
}
|
|
99
|
+
return null;
|
|
100
|
+
}
|
|
37
101
|
class PluginPublicFormsServer extends import_server.Plugin {
|
|
38
102
|
associationFieldTypes = ["hasOne", "hasMany", "belongsTo", "belongsToMany", "belongsToArray"];
|
|
103
|
+
fileAccessAuthorizerRegistered = false;
|
|
39
104
|
async parseCollectionData(dataSourceKey, formCollection, appends) {
|
|
40
105
|
const dataSource = this.app.dataSourceManager.dataSources.get(dataSourceKey);
|
|
41
106
|
const serializeCollection = (collection2) => ({
|
|
@@ -223,33 +288,92 @@ class PluginPublicFormsServer extends import_server.Plugin {
|
|
|
223
288
|
])
|
|
224
289
|
];
|
|
225
290
|
const collections = await this.parseCollectionData(dataSourceKey, collectionName, appends);
|
|
291
|
+
const tokenPayload = {
|
|
292
|
+
collectionName,
|
|
293
|
+
formKey: filterByTk,
|
|
294
|
+
targetCollections: appends
|
|
295
|
+
};
|
|
226
296
|
return {
|
|
227
297
|
dataSource: {
|
|
228
298
|
key: dataSourceKey,
|
|
229
299
|
displayName: dataSourceKey,
|
|
230
300
|
collections
|
|
231
301
|
},
|
|
232
|
-
token: this.app.authManager.jwt.sign(
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
formKey: filterByTk,
|
|
236
|
-
targetCollections: appends
|
|
237
|
-
},
|
|
238
|
-
{
|
|
239
|
-
expiresIn: "1h"
|
|
240
|
-
}
|
|
241
|
-
),
|
|
302
|
+
token: this.app.authManager.jwt.sign(tokenPayload, {
|
|
303
|
+
expiresIn: PUBLIC_FORM_TOKEN_EXPIRES_IN
|
|
304
|
+
}),
|
|
242
305
|
schema,
|
|
243
306
|
flowModel,
|
|
244
307
|
title
|
|
245
308
|
};
|
|
246
309
|
}
|
|
310
|
+
getPublicFormCookieName(formKey) {
|
|
311
|
+
const appName = this.app.name || "main";
|
|
312
|
+
const hash = import_crypto.default.createHash("sha256").update(`${appName}:${formKey}`).digest("hex").slice(0, 32);
|
|
313
|
+
return `${PUBLIC_FORM_COOKIE_PREFIX}${hash}`;
|
|
314
|
+
}
|
|
315
|
+
async decodePublicFormCookie(value) {
|
|
316
|
+
if (!value) {
|
|
317
|
+
return null;
|
|
318
|
+
}
|
|
319
|
+
const decoded = await this.app.authManager.jwt.decode(value);
|
|
320
|
+
if ((decoded == null ? void 0 : decoded.v) !== 1 || typeof decoded.formKey !== "string" || typeof decoded.collectionName !== "string" || !Array.isArray(decoded.targetCollections)) {
|
|
321
|
+
return null;
|
|
322
|
+
}
|
|
323
|
+
return {
|
|
324
|
+
v: 1,
|
|
325
|
+
appName: typeof decoded.appName === "string" ? decoded.appName : void 0,
|
|
326
|
+
formKey: decoded.formKey,
|
|
327
|
+
collectionName: decoded.collectionName,
|
|
328
|
+
targetCollections: decoded.targetCollections.filter((name) => typeof name === "string"),
|
|
329
|
+
files: normalizeFiles(decoded.files),
|
|
330
|
+
exp: typeof decoded.exp === "number" ? decoded.exp : void 0
|
|
331
|
+
};
|
|
332
|
+
}
|
|
333
|
+
async readPublicFormCookie(ctx, formKey) {
|
|
334
|
+
var _a;
|
|
335
|
+
try {
|
|
336
|
+
return await this.decodePublicFormCookie((_a = ctx.cookies) == null ? void 0 : _a.get(this.getPublicFormCookieName(formKey)));
|
|
337
|
+
} catch {
|
|
338
|
+
return null;
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
setPublicFormCookie(ctx, payload, maxAge = PUBLIC_FORM_COOKIE_MAX_AGE) {
|
|
342
|
+
var _a;
|
|
343
|
+
(_a = ctx.cookies) == null ? void 0 : _a.set(
|
|
344
|
+
this.getPublicFormCookieName(payload.formKey),
|
|
345
|
+
this.app.authManager.jwt.sign(
|
|
346
|
+
{
|
|
347
|
+
v: 1,
|
|
348
|
+
appName: this.app.name || "main",
|
|
349
|
+
formKey: payload.formKey,
|
|
350
|
+
collectionName: payload.collectionName,
|
|
351
|
+
targetCollections: payload.targetCollections,
|
|
352
|
+
files: normalizeFiles(payload.files)
|
|
353
|
+
},
|
|
354
|
+
{ expiresIn: Math.max(1, Math.floor(maxAge / 1e3)) }
|
|
355
|
+
),
|
|
356
|
+
(0, import_utils.getAuthCookieOptions)(ctx, true, maxAge)
|
|
357
|
+
);
|
|
358
|
+
}
|
|
247
359
|
// TODO
|
|
248
360
|
getPublicFormsMeta = async (ctx, next) => {
|
|
361
|
+
var _a;
|
|
249
362
|
const token = ctx.get("X-Form-Token");
|
|
250
363
|
const { filterByTk, password } = ctx.action.params;
|
|
251
364
|
try {
|
|
365
|
+
const existingCookie = password === void 0 ? await this.readPublicFormCookie(ctx, filterByTk) : null;
|
|
252
366
|
ctx.body = await this.getMetaByTk(filterByTk, { password, token });
|
|
367
|
+
if (((_a = ctx.body) == null ? void 0 : _a.token) && (password !== void 0 || !existingCookie)) {
|
|
368
|
+
const tokenPayload = await this.app.authManager.jwt.decode(ctx.body.token);
|
|
369
|
+
this.setPublicFormCookie(ctx, {
|
|
370
|
+
v: 1,
|
|
371
|
+
formKey: tokenPayload.formKey,
|
|
372
|
+
collectionName: tokenPayload.collectionName,
|
|
373
|
+
targetCollections: tokenPayload.targetCollections,
|
|
374
|
+
files: (existingCookie == null ? void 0 : existingCookie.formKey) === tokenPayload.formKey ? existingCookie.files : {}
|
|
375
|
+
});
|
|
376
|
+
}
|
|
253
377
|
} catch (error) {
|
|
254
378
|
if (error instanceof PasswordError) {
|
|
255
379
|
ctx.throw(401, error.message);
|
|
@@ -285,7 +409,8 @@ class PluginPublicFormsServer extends import_server.Plugin {
|
|
|
285
409
|
ctx.PublicForm = {
|
|
286
410
|
collectionName: tokenData.collectionName,
|
|
287
411
|
formKey: tokenData.formKey,
|
|
288
|
-
targetCollections: tokenData.targetCollections
|
|
412
|
+
targetCollections: tokenData.targetCollections,
|
|
413
|
+
exp: tokenData.exp
|
|
289
414
|
};
|
|
290
415
|
const publicForms = this.db.getRepository("publicForms");
|
|
291
416
|
const instance = await publicForms.findOne({
|
|
@@ -320,13 +445,100 @@ class PluginPublicFormsServer extends import_server.Plugin {
|
|
|
320
445
|
ctx.permission = {
|
|
321
446
|
skip: true
|
|
322
447
|
};
|
|
323
|
-
} else if (["list", "get"].includes(actionName) && ctx.PublicForm["targetCollections"].includes(resourceName) || (collection == null ? void 0 : collection.options.template) === "file" &&
|
|
448
|
+
} else if (["list", "get"].includes(actionName) && ctx.PublicForm["targetCollections"].includes(resourceName) || (collection == null ? void 0 : collection.options.template) === "file" && ["create", "upload"].includes(actionName) || resourceName === "storages" && ["getBasicInfo", "createPresignedUrl", "check"].includes(actionName) || resourceName === "vditor" && ["check"].includes(actionName) || resourceName === "map-configuration" && actionName === "get") {
|
|
324
449
|
ctx.permission = {
|
|
325
450
|
skip: true
|
|
326
451
|
};
|
|
327
452
|
}
|
|
328
453
|
await next();
|
|
329
454
|
};
|
|
455
|
+
appendUploadedFileToPublicFormCookie = async (ctx, next) => {
|
|
456
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
457
|
+
await next();
|
|
458
|
+
if (!ctx.PublicForm || !["create", "upload"].includes((_a = ctx.action) == null ? void 0 : _a.actionName)) {
|
|
459
|
+
return;
|
|
460
|
+
}
|
|
461
|
+
const collection = ((_c = (_b = ctx.dataSource) == null ? void 0 : _b.collectionManager) == null ? void 0 : _c.getCollection(ctx.action.resourceName)) || ((_e = (_d = ctx.db) == null ? void 0 : _d.getCollection) == null ? void 0 : _e.call(_d, ctx.action.resourceName));
|
|
462
|
+
if (((_f = collection == null ? void 0 : collection.options) == null ? void 0 : _f.template) !== "file") {
|
|
463
|
+
return;
|
|
464
|
+
}
|
|
465
|
+
const id = getResponseRecordId(ctx.body);
|
|
466
|
+
if (id === null || id === void 0 || id === "") {
|
|
467
|
+
return;
|
|
468
|
+
}
|
|
469
|
+
const formKey = ctx.PublicForm.formKey;
|
|
470
|
+
const existingCookie = await this.readPublicFormCookie(ctx, formKey);
|
|
471
|
+
const files = normalizeFiles(existingCookie == null ? void 0 : existingCookie.files);
|
|
472
|
+
const dataSourceKey = ((_g = ctx.dataSource) == null ? void 0 : _g.name) || ((_h = ctx.action.params) == null ? void 0 : _h.dataSourceKey) || "main";
|
|
473
|
+
const fileKey = `${dataSourceKey}/${collection.name}`;
|
|
474
|
+
const ids = files[fileKey] || [];
|
|
475
|
+
if (!ids.some((existingId) => String(existingId) === String(id))) {
|
|
476
|
+
ids.push(id);
|
|
477
|
+
}
|
|
478
|
+
files[fileKey] = ids;
|
|
479
|
+
const expiresAt = (existingCookie == null ? void 0 : existingCookie.exp) || ctx.PublicForm.exp;
|
|
480
|
+
const maxAge = expiresAt ? expiresAt * 1e3 - Date.now() : PUBLIC_FORM_COOKIE_MAX_AGE;
|
|
481
|
+
if (maxAge <= 0) {
|
|
482
|
+
return;
|
|
483
|
+
}
|
|
484
|
+
this.setPublicFormCookie(
|
|
485
|
+
ctx,
|
|
486
|
+
{
|
|
487
|
+
v: 1,
|
|
488
|
+
formKey,
|
|
489
|
+
collectionName: ctx.PublicForm.collectionName,
|
|
490
|
+
targetCollections: ctx.PublicForm.targetCollections || [],
|
|
491
|
+
files
|
|
492
|
+
},
|
|
493
|
+
maxAge
|
|
494
|
+
);
|
|
495
|
+
};
|
|
496
|
+
authorizePublicFormFileAccess = async (ctx, params) => {
|
|
497
|
+
var _a, _b;
|
|
498
|
+
const cookies = parseCookieHeader((_a = ctx.get) == null ? void 0 : _a.call(ctx, "cookie"));
|
|
499
|
+
const fileKey = `${params.dataSourceKey}/${params.collectionName}`;
|
|
500
|
+
for (const [name, value] of cookies) {
|
|
501
|
+
if (!name.startsWith(PUBLIC_FORM_COOKIE_PREFIX)) {
|
|
502
|
+
continue;
|
|
503
|
+
}
|
|
504
|
+
try {
|
|
505
|
+
const payload = await this.decodePublicFormCookie(value);
|
|
506
|
+
if (!payload) {
|
|
507
|
+
continue;
|
|
508
|
+
}
|
|
509
|
+
if (payload.appName && payload.appName !== params.appName) {
|
|
510
|
+
continue;
|
|
511
|
+
}
|
|
512
|
+
if ((_b = payload.files[fileKey]) == null ? void 0 : _b.some((id) => String(id) === String(params.id))) {
|
|
513
|
+
const instance = await this.db.getRepository("publicForms").findOne({
|
|
514
|
+
filter: {
|
|
515
|
+
key: payload.formKey
|
|
516
|
+
}
|
|
517
|
+
});
|
|
518
|
+
if (instance == null ? void 0 : instance.get("enabled")) {
|
|
519
|
+
return true;
|
|
520
|
+
}
|
|
521
|
+
}
|
|
522
|
+
} catch {
|
|
523
|
+
continue;
|
|
524
|
+
}
|
|
525
|
+
}
|
|
526
|
+
return false;
|
|
527
|
+
};
|
|
528
|
+
registerFileAccessAuthorizer() {
|
|
529
|
+
if (this.fileAccessAuthorizerRegistered) {
|
|
530
|
+
return;
|
|
531
|
+
}
|
|
532
|
+
const fileManager = this.app.pm.get("file-manager") || this.app.pm.get("@nocobase/plugin-file-manager");
|
|
533
|
+
if (typeof (fileManager == null ? void 0 : fileManager.registerFileAccessAuthorizer) !== "function") {
|
|
534
|
+
return;
|
|
535
|
+
}
|
|
536
|
+
fileManager.registerFileAccessAuthorizer({
|
|
537
|
+
name: "public-forms",
|
|
538
|
+
authorize: this.authorizePublicFormFileAccess
|
|
539
|
+
});
|
|
540
|
+
this.fileAccessAuthorizerRegistered = true;
|
|
541
|
+
}
|
|
330
542
|
async load() {
|
|
331
543
|
this.app.acl.registerSnippet({
|
|
332
544
|
name: `pm.${this.name}`,
|
|
@@ -337,10 +549,17 @@ class PluginPublicFormsServer extends import_server.Plugin {
|
|
|
337
549
|
"publicForms:getMeta": this.getPublicFormsMeta,
|
|
338
550
|
"publicForms:getFlowModel": this.getPublicFormFlowModel
|
|
339
551
|
});
|
|
552
|
+
this.registerFileAccessAuthorizer();
|
|
553
|
+
this.app.on("afterLoad", () => {
|
|
554
|
+
this.registerFileAccessAuthorizer();
|
|
555
|
+
});
|
|
340
556
|
this.app.dataSourceManager.afterAddDataSource((dataSource) => {
|
|
341
557
|
dataSource.resourceManager.use(this.parseToken, {
|
|
342
558
|
before: "auth"
|
|
343
559
|
});
|
|
560
|
+
dataSource.resourceManager.use(this.appendUploadedFileToPublicFormCookie, {
|
|
561
|
+
after: "acl"
|
|
562
|
+
});
|
|
344
563
|
dataSource.acl.use(this.parseACL, {
|
|
345
564
|
before: "core"
|
|
346
565
|
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nocobase/plugin-public-forms",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.2.0-alpha.10",
|
|
4
4
|
"main": "dist/server/index.js",
|
|
5
5
|
"displayName": "Public forms",
|
|
6
6
|
"displayName.ru-RU": "Публичные формы",
|
|
@@ -20,10 +20,11 @@
|
|
|
20
20
|
"@nocobase/plugin-flow-engine": "2.x",
|
|
21
21
|
"@nocobase/plugin-ui-schema-storage": "2.x",
|
|
22
22
|
"@nocobase/server": "2.x",
|
|
23
|
-
"@nocobase/test": "2.x"
|
|
23
|
+
"@nocobase/test": "2.x",
|
|
24
|
+
"@nocobase/utils": "2.x"
|
|
24
25
|
},
|
|
25
26
|
"devDependencies": {
|
|
26
27
|
"react-device-detect": "2.2.3"
|
|
27
28
|
},
|
|
28
|
-
"gitHead": "
|
|
29
|
+
"gitHead": "b5a3f131bb0a4a2fbfd96852896bccadc933d834"
|
|
29
30
|
}
|
|
@@ -1,10 +0,0 @@
|
|
|
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_public_forms=self.webpackChunk_nocobase_plugin_public_forms||[]).push([["192"],{3155:function(e,t,n){n.r(t),n.d(t,{AdminPublicFormPage:function(){return g}});var r=n(7375),o=n(3342),a=n(2059),l=n(9155),c=n.n(l),i=n(2707),u=n(4442),s=n(418),p=n(5473),m=n(5375);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 b(e,t,n,r,o,a,l){try{var c=e[a](l),i=c.value}catch(e){n(e);return}c.done?t(i):Promise.resolve(i).then(r,o)}function y(e){return function(){var t=this,n=arguments;return new Promise(function(r,o){var a=e.apply(t,n);function l(e){b(a,r,o,l,c,"next",e)}function c(e){b(a,r,o,l,c,"throw",e)}l(void 0)})}}function d(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 h(e,t){var n,r,o,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},l=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),c=Object.defineProperty;return c(l,"next",{value:i(0)}),c(l,"throw",{value:i(1)}),c(l,"return",{value:i(2)}),"function"==typeof Symbol&&c(l,Symbol.iterator,{value:function(){return this}}),l;function i(c){return function(i){var u=[c,i];if(n)throw TypeError("Generator is already executing.");for(;l&&(l=0,u[0]&&(a=0)),a;)try{if(n=1,r&&(o=2&u[0]?r.return:u[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,u[1])).done)return o;switch(r=0,o&&(u=[2&u[0],o.value]),u[0]){case 0:case 1:o=u;break;case 4:return a.label++,{value:u[1],done:!1};case 5:a.label++,r=u[1],u=[0];continue;case 7:u=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===u[0]||2===u[0])){a=0;continue}if(3===u[0]&&(!o||u[1]>o[0]&&u[1]<o[3])){a.label=u[1];break}if(6===u[0]&&a.label<o[1]){a.label=o[1],o=u;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(u);break}o[2]&&a.ops.pop(),a.trys.pop();continue}u=t.call(e,a)}catch(e){u=[6,e],r=0}finally{n=o=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}}var v=function(){var e,t=function(e){if(Array.isArray(e))return e}(e=(0,l.useState)(!1))||function(e){var t,n,r=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var o=[],a=!0,l=!1;try{for(r=r.call(e);!(a=(t=r.next()).done)&&(o.push(t.value),2!==o.length);a=!0);}catch(e){l=!0,n=e}finally{try{a||null==r.return||r.return()}finally{if(l)throw n}}return o}}(e)||function(e){if(e){if("string"==typeof e)return f(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 f(e,2)}}(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.")}(),n=t[0],r=t[1],u=(0,m.kO)().t,s=(0,i.useParams)(),p=(0,o.useApp)(),b=window.location.origin+p.getHref("public-forms/".concat(s.name));return c().createElement(a.Popover,{trigger:"hover",open:n,onOpenChange:function(e){r(e)},content:n?c().createElement(a.QRCode,{value:b,bordered:!1}):" "},c().createElement("a",null,u("QR code",{ns:m.CU})))};function g(){var e=(0,i.useParams)(),t=(0,m.kO)().t,n=(0,o.useGlobalTheme)().theme,l=(0,o.useAPIClient)(),f=(0,o.useCompile)(),b=a.theme.useToken().token,g=(0,o.useApp)(),w=(0,o.useGlobalVariable)("$env"),E=(0,o.useRequest)({url:"publicForms:get/".concat(e.name)}),k=E.data,O=E.loading,x=E.refresh,C=(null==k?void 0:k.data)||{},S=C.enabled,P=C.title,j=function(e,t){if(null==e)return{};var n,r,o,a={};if("u">typeof Reflect&&Reflect.ownKeys){for(o=0,n=Reflect.ownKeys(Object(e));o<n.length;o++)r=n[o],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r]);return a}if(a=function(e,t){if(null==e)return{};var n,r,o={},a=Object.getOwnPropertyNames(e);for(r=0;r<a.length;r++)n=a[r],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n]);return o}(e,t),Object.getOwnPropertySymbols)for(o=0,n=Object.getOwnPropertySymbols(e);o<n.length;o++)r=n[o],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r]);return a}(C,["enabled","title"]);if(O)return c().createElement(a.Spin,null);var A=function(t){return y(function(){return h(this,function(n){switch(n.label){case 0:return[4,l.resource("publicForms").update({filterByTk:e.name,values:d({},t)})];case 1:return n.sent(),[4,x()];case 2:return n.sent(),[2]}})})()};return c().createElement("div",{style:{marginTop:"-50px"}},c().createElement("div",{style:{margin:"-24px",padding:"10px",display:"flex",alignItems:"center",justifyContent:"space-between",background:"".concat(b.colorBgContainer),borderBottom:"1px solid ".concat(b.colorBorderSecondary)}},c().createElement(a.Breadcrumb,{style:{marginLeft:"10px"},items:[{title:c().createElement(u.Link,{to:"/admin/settings/public-forms"},t("Public forms",{ns:m.CU}))},{title:f(P)}]}),c().createElement(a.Space,null,c().createElement(u.Link,{target:"_blank",to:"/public-forms/".concat(e.name)},c().createElement(a.Button,{disabled:!S,icon:c().createElement(r.EyeOutlined,null)},t("Open form",{ns:m.CU}))),c().createElement(a.Dropdown,{menu:{items:[{key:"enabled",label:c().createElement("a",{style:{display:"flex",alignItems:"center",justifyContent:"space-between"},onClick:function(){return A({enabled:!S})}},c().createElement("span",{style:{marginRight:"10px"}},t("Enable form",{ns:m.CU})),c().createElement(a.Switch,{size:"small",checked:S}))},{key:"password",label:c().createElement("a",{onClick:function(){return y(function(){return h(this,function(e){switch(e.label){case 0:return[4,(0,o.FormDialog)(t("Password"),function(){return c().createElement(o.ApplicationContext.Provider,{value:g},c().createElement(o.SchemaComponentOptions,{components:{Checkbox:o.Checkbox,TextAreaWithGlobalScope:o.TextAreaWithGlobalScope,FormItem:o.FormItem}},c().createElement(s.FormLayout,{layout:"vertical"},c().createElement(o.SchemaComponent,{schema:{properties:{password:{type:"string","x-decorator":"FormItem","x-component":"TextAreaWithGlobalScope","x-component-props":{password:!0,scope:[w]}}}}}))))},n).open({initialValues:d({},j)})];case 1:return[4,A({password:e.sent().password})];case 2:return e.sent(),[2]}})})()}}," ",t("Set password"))},{key:"divider1",type:"divider"},{key:"copyLink",label:c().createElement("a",{onClick:function(){var n=window.location.origin+g.getHref("public-forms/".concat(e.name));navigator.clipboard.writeText(n),a.message.success(t("Link copied successfully"))}},t("Copy link"))},{key:"qrcode",label:c().createElement(v,null)}]}},c().createElement(a.Button,{icon:c().createElement(r.SettingOutlined,null)},t("Settings"))))),c().createElement("div",{style:{maxWidth:800,margin:"100px auto",position:"relative",zIndex:0}},c().createElement(o.VariablesProvider,{filterVariables:function(e){return!["$user","$nRole","$nToken"].includes(e.key)}},c().createElement(o.RemoteSchemaComponent,{uid:e.name,scope:{useCreateActionProps:p.nQ},components:{PublicFormMessageProvider:function(e){return e.children}}})),c().createElement(o.PoweredBy,null)))}}}]);
|
|
@@ -1,10 +0,0 @@
|
|
|
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_public_forms=self.webpackChunk_nocobase_plugin_public_forms||[]).push([["397"],{1636:function(e,t,o){o.r(t),o.d(t,{AdminPublicFormList:function(){return x}});var n=o(3342),r=o(9155),i=o.n(r),p=o(3127),c=o(5375),l={name:"publicForms",filterTargetKey:"key",fields:[{type:"string",name:"title",interface:"input",uiSchema:{type:"string",title:"{{t('Title')}}",required:!0,"x-component":"Input"}},{type:"text",name:"description",interface:"textarea",uiSchema:{type:"string",title:"{{t('Description')}}","x-component":"Input.TextArea"}},{type:"string",name:"type",interface:"radioGroup",uiSchema:{type:"string",title:'{{t("Type",{ns:"public-forms"})}}',"x-component":"Radio.Group",enum:"{{ formTypes }}"}},{type:"string",name:"collection",interface:"collection",uiSchema:{type:"string",title:"{{t('Collection')}}",required:!0,"x-component":"DataSourceCollectionCascader"}},{type:"password",name:"password",interface:"password",uiSchema:{type:"string",title:"{{t('Password')}}","x-component":"TextAreaWithGlobalScope","x-component-props":{autocomplete:"new-password",password:!0}}},{type:"boolean",name:"enabled",interface:"checkbox",uiSchema:{type:"string",title:'{{t("Enable form",{ns:"'.concat(c.CU,'"})}}'),"x-component":"Checkbox",default:!0}}]},s=o(5473),m=o(166),a=o(4442),d={type:"void","x-component":"Action",title:'{{t("Add New", { ns: "'.concat(c.CU,'" })}}'),"x-align":"right","x-component-props":{type:"primary",icon:"PlusOutlined"},properties:{drawer:{type:"void","x-component":"Action.Drawer",title:"{{t('Add New')}}","x-decorator":"Form",properties:{form:{type:"void",properties:{title:{type:"string","x-decorator":"FormItem","x-component":"CollectionField"},collection:{type:"string","x-decorator":"FormItem","x-component":"CollectionField"},type:{type:"string","x-decorator":"FormItem",title:'{{t("Type",{ns:"public-forms"})}}',"x-component":"CollectionField",default:"form",enum:"{{ formTypes }}"},description:{type:"string","x-decorator":"FormItem","x-component":"CollectionField"},password:{type:"string","x-decorator":"FormItem","x-component":"CollectionField"},enabled:{type:"string","x-decorator":"FormItem","x-component":"CollectionField",default:!0}}},footer:{type:"void","x-component":"Action.Drawer.Footer",properties:{submit:{title:"Submit","x-component":"Action","x-use-component-props":"useSubmitActionProps"}}}}}}},u={type:"void",title:"{{t('Edit')}}","x-component":"Action.Link","x-component-props":{openMode:"drawer"},properties:{drawer:{type:"void",title:"Edit","x-component":"Action.Drawer","x-decorator":"FormV2","x-use-decorator-props":"useEditFormProps",properties:{form:{type:"void",properties:{title:{type:"string","x-decorator":"FormItem","x-component":"CollectionField"},collection:{type:"string","x-decorator":"FormItem","x-component":"CollectionField","x-component-props":{disabled:!0}},type:{type:"string","x-decorator":"FormItem",title:'{{t("Type",{ns:"public-forms"})}}',"x-component":"Radio.Group",default:"form",enum:"{{ formTypes }}"},description:{type:"string","x-decorator":"FormItem","x-component":"CollectionField"},password:{type:"string","x-decorator":"FormItem","x-component":"CollectionField"},enabled:{type:"string","x-decorator":"FormItem","x-component":"CollectionField",default:!0}}},footer:{type:"void","x-component":"Action.Drawer.Footer",properties:{submit:{title:"Submit","x-component":"Action","x-use-component-props":"useSubmitActionProps"}}}}}}},y={type:"void",name:(0,m.uid)(),"x-component":"CardItem","x-decorator":"TableBlockProvider","x-decorator-props":{collection:l.name,action:"list",params:{sort:"-createdAt",appends:["createdBy","updatedBy"]},showIndex:!0,dragSort:!1,rowKey:"key"},properties:{actions:{type:"void","x-component":"ActionBar","x-component-props":{style:{marginBottom:20}},properties:{filter:{type:"void",title:'{{ t("Filter") }}',default:{$and:[{title:{$includes:""}}]},"x-action":"filter","x-component":"Filter.Action","x-use-component-props":"useFilterActionProps","x-component-props":{icon:"FilterOutlined"},"x-align":"left"},refresh:{type:"void",title:'{{ t("Refresh") }}',"x-component":"Action","x-use-component-props":"useRefreshActionProps","x-component-props":{icon:"ReloadOutlined"}},destroy:{title:'{{ t("Delete") }}',"x-action":"destroy","x-component":"Action","x-use-component-props":"useBulkDestroyActionProps","x-component-props":{icon:"DeleteOutlined",confirm:{title:"{{t('Delete record')}}",content:"{{t('Are you sure you want to delete it?')}}"}}},createActionSchema:d}},table:{type:"array","x-component":"TableV2","x-use-component-props":"useTableBlockProps","x-component-props":{rowKey:l.filterTargetKey,rowSelection:{type:"checkbox"}},properties:{title:{type:"void",title:'{{ t("Title") }}',"x-component":"TableV2.Column","x-component-props":{width:170},properties:{title:{type:"string","x-component":"CollectionField","x-pattern":"readPretty"}}},collection:{type:"void",title:'{{ t("Collection") }}',"x-component":"TableV2.Column","x-component-props":{width:160},properties:{collection:{type:"string","x-component":"CollectionField","x-pattern":"readPretty"}}},column2:{type:"void",title:'{{t("Type", { ns: "'.concat(c.CU,'" })}}'),"x-component":"TableV2.Column","x-component-props":{width:100},properties:{type:{type:"string","x-component":"Radio.Group","x-pattern":"readPretty",enum:"{{ formTypes }}"}}},column3:{type:"void",title:'{{ t("Enabled") }}',"x-component":"TableV2.Column","x-component-props":{width:80},properties:{enabled:{type:"string","x-component":"CollectionField","x-pattern":"readPretty"}}},description:{type:"void",title:'{{ t("Description") }}',"x-component":"TableV2.Column",properties:{description:{type:"string","x-component":"CollectionField","x-pattern":"readPretty"}}},actions:{type:"void",title:'{{ t("Actions") }}',"x-component":"TableV2.Column",properties:{actions:{type:"void","x-component":"Space","x-component-props":{split:"|"},properties:{configure:{type:"void",title:"Configure","x-component":function(){var e=(0,n.useFilterByTk)(),t=(0,c.kj)();return i().createElement(a.Link,{to:"/admin/settings/public-forms/".concat(e)},t("Configure"))}},editActionSchema:u,delete:{type:"void",title:"{{t('Delete')}}","x-component":"Action.Link","x-use-component-props":"useDeleteActionProps"}}}}}}}}},x=function(){var e,t,o=(0,n.usePlugin)(p.default),c=(0,n.useSchemaComponentContext)(),m=(0,r.useMemo)(function(){return o.getFormTypeOptions()},[o]);return i().createElement(n.ExtendCollectionsProvider,{collections:[l]},i().createElement(n.SchemaComponentContext.Provider,{value:(e=function(e){for(var t=1;t<arguments.length;t++){var o=null!=arguments[t]?arguments[t]:{},n=Object.keys(o);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(o).filter(function(e){return Object.getOwnPropertyDescriptor(o,e).enumerable}))),n.forEach(function(t){var n;n=o[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}({},c),t=t={designable:!1},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t.push.apply(t,o)}return t})(Object(t)).forEach(function(o){Object.defineProperty(e,o,Object.getOwnPropertyDescriptor(t,o))}),e)},i().createElement(n.SchemaComponent,{schema:y,scope:{formTypes:m,useSubmitActionProps:s.yY,useEditFormProps:s.W2,useDeleteActionProps:s.vT}})))}}}]);
|