@rytass/bpm-core-react 0.13.3 → 0.13.5
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/CHANGELOG.md +47 -0
- package/README.md +1 -0
- package/dist/chunks/{FormBuilderView-D4xIuPYB.js → FormBuilderView-BYLN6W-P.js} +2 -2
- package/dist/chunks/{FormBuilderView-D4xIuPYB.js.map → FormBuilderView-BYLN6W-P.js.map} +1 -1
- package/dist/chunks/{FormBuilderView-CLFlfDGe.cjs → FormBuilderView-VmdPVbg7.cjs} +2 -2
- package/dist/chunks/{FormBuilderView-CLFlfDGe.cjs.map → FormBuilderView-VmdPVbg7.cjs.map} +1 -1
- package/dist/chunks/FormRendererView-Bs8lTb4k.cjs +2 -0
- package/dist/chunks/{FormRendererView-BxGT16z0.cjs.map → FormRendererView-Bs8lTb4k.cjs.map} +1 -1
- package/dist/chunks/{FormRendererView-DUceSOXe.js → FormRendererView-UPowZZgw.js} +3 -3
- package/dist/chunks/{FormRendererView-DUceSOXe.js.map → FormRendererView-UPowZZgw.js.map} +1 -1
- package/dist/chunks/{approval-instance-list-page-BjX2kaoF.js → approval-instance-list-page-CPXMP3PL.js} +2 -2
- package/dist/chunks/{approval-instance-list-page-BjX2kaoF.js.map → approval-instance-list-page-CPXMP3PL.js.map} +1 -1
- package/dist/chunks/{approval-instance-list-page-CWiQvnfE.cjs → approval-instance-list-page-ax0pm8bt.cjs} +2 -2
- package/dist/chunks/{approval-instance-list-page-CWiQvnfE.cjs.map → approval-instance-list-page-ax0pm8bt.cjs.map} +1 -1
- package/dist/chunks/{compose-Bb-REfoB.js → compose-6P64PO1i.js} +5 -5
- package/dist/chunks/{compose-Bb-REfoB.js.map → compose-6P64PO1i.js.map} +1 -1
- package/dist/chunks/{compose-DzRYZcqe.cjs → compose-BnSRL4ml.cjs} +2 -2
- package/dist/chunks/{compose-DzRYZcqe.cjs.map → compose-BnSRL4ml.cjs.map} +1 -1
- package/dist/chunks/{dashboard-page-DJ9vOPga.js → dashboard-page-CeCLV1tp.js} +2 -2
- package/dist/chunks/{dashboard-page-DJ9vOPga.js.map → dashboard-page-CeCLV1tp.js.map} +1 -1
- package/dist/chunks/{dashboard-page-CH87L5nx.cjs → dashboard-page-DooFJsxM.cjs} +2 -2
- package/dist/chunks/{dashboard-page-CH87L5nx.cjs.map → dashboard-page-DooFJsxM.cjs.map} +1 -1
- package/dist/chunks/{delegations-vpLtus9g.cjs → delegations-8LsxcQM4.cjs} +2 -2
- package/dist/chunks/{delegations-vpLtus9g.cjs.map → delegations-8LsxcQM4.cjs.map} +1 -1
- package/dist/chunks/{delegations-0MbJ7CWj.js → delegations-B8gLSt0i.js} +4 -5
- package/dist/chunks/{delegations-0MbJ7CWj.js.map → delegations-B8gLSt0i.js.map} +1 -1
- package/dist/chunks/{delegations-DyMGIDpp.js → delegations-DRupxJ4_.js} +4 -5
- package/dist/chunks/{delegations-DyMGIDpp.js.map → delegations-DRupxJ4_.js.map} +1 -1
- package/dist/chunks/{delegations-Bc9psOZ3.cjs → delegations-DlYwMiAW.cjs} +2 -2
- package/dist/chunks/{delegations-Bc9psOZ3.cjs.map → delegations-DlYwMiAW.cjs.map} +1 -1
- package/dist/chunks/{designer-C6oIO9Kq.js → designer-C3s2kSna.js} +1342 -841
- package/dist/chunks/designer-C3s2kSna.js.map +1 -0
- package/dist/chunks/designer-_g58R6rQ.cjs +65 -0
- package/dist/chunks/designer-_g58R6rQ.cjs.map +1 -0
- package/dist/chunks/detail-Db-UOELp.cjs +2 -0
- package/dist/chunks/detail-Db-UOELp.cjs.map +1 -0
- package/dist/chunks/detail-pYEIk-jW.js +2325 -0
- package/dist/chunks/detail-pYEIk-jW.js.map +1 -0
- package/dist/chunks/{login-9bCXyjbX.cjs → login-AtVxZBsC.cjs} +2 -2
- package/dist/chunks/{login-9bCXyjbX.cjs.map → login-AtVxZBsC.cjs.map} +1 -1
- package/dist/chunks/{login-BKxpLibd.js → login-C6qlTC6F.js} +2 -2
- package/dist/chunks/{login-BKxpLibd.js.map → login-C6qlTC6F.js.map} +1 -1
- package/dist/chunks/{orgs-Cr_7zsAD.js → orgs-BpqVu5ka.js} +2 -2
- package/dist/chunks/{orgs-Cr_7zsAD.js.map → orgs-BpqVu5ka.js.map} +1 -1
- package/dist/chunks/orgs-D0-5BaHT.cjs +2 -0
- package/dist/chunks/{orgs-Bz8hBMoQ.cjs.map → orgs-D0-5BaHT.cjs.map} +1 -1
- package/dist/chunks/providers-DHtDZFNA.cjs +2 -0
- package/dist/chunks/{providers-BsEn3ikK.cjs.map → providers-DHtDZFNA.cjs.map} +1 -1
- package/dist/chunks/{providers-DjLh4oLY.js → providers-J5eyByQj.js} +7 -7
- package/dist/chunks/{providers-DjLh4oLY.js.map → providers-J5eyByQj.js.map} +1 -1
- package/dist/chunks/{routes-config-fDVHmvXi.cjs → routes-config-C1j_vFKo.cjs} +2 -2
- package/dist/chunks/routes-config-C1j_vFKo.cjs.map +1 -0
- package/dist/chunks/{routes-config-RBYQtUd0.js → routes-config-yZbESPlw.js} +3 -2
- package/dist/chunks/routes-config-yZbESPlw.js.map +1 -0
- package/dist/chunks/use-bpm-member-D57LKe_u.js +20 -0
- package/dist/chunks/use-bpm-member-D57LKe_u.js.map +1 -0
- package/dist/chunks/use-bpm-member-DpNAQtNC.cjs +2 -0
- package/dist/chunks/use-bpm-member-DpNAQtNC.cjs.map +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +19 -24
- package/dist/index.js.map +1 -1
- package/dist/lib/routes-config.d.ts +2 -0
- package/dist/lib/use-bpm-member.d.ts +6 -0
- package/dist/next/index.cjs +1 -1
- package/dist/next/index.js +2 -2
- package/dist/pages/admin/delegations/index.cjs +1 -1
- package/dist/pages/admin/delegations/index.js +1 -1
- package/dist/pages/admin/orgs/index.cjs +1 -1
- package/dist/pages/admin/orgs/index.js +1 -1
- package/dist/pages/admin/webhook-endpoints/index.cjs +2 -0
- package/dist/pages/admin/webhook-endpoints/index.cjs.map +1 -0
- package/dist/pages/admin/webhook-endpoints/index.d.ts +4 -0
- package/dist/pages/admin/webhook-endpoints/index.js +14 -0
- package/dist/pages/admin/webhook-endpoints/index.js.map +1 -0
- package/dist/pages/delegations/index.cjs +1 -1
- package/dist/pages/delegations/index.js +1 -1
- package/dist/pages/instances/detail/index.cjs +1 -1
- package/dist/pages/instances/detail/index.js +1 -1
- package/dist/pages/login/index.cjs +1 -1
- package/dist/pages/login/index.js +1 -1
- package/dist/pages/templates/compose/index.cjs +1 -1
- package/dist/pages/templates/compose/index.js +1 -1
- package/dist/pages/templates/designer/index.cjs +1 -1
- package/dist/pages/templates/designer/index.js +1 -1
- package/dist/style.css +1 -1
- package/dist/views/admin/delegations/index.cjs +1 -1
- package/dist/views/admin/delegations/index.js +1 -1
- package/dist/views/admin/index.cjs +1 -1
- package/dist/views/admin/index.d.ts +1 -0
- package/dist/views/admin/index.js +4 -3
- package/dist/views/admin/orgs/index.cjs +1 -1
- package/dist/views/admin/orgs/index.js +1 -1
- package/dist/views/admin/webhook-endpoints/AdminWebhookEndpointsView.d.ts +8 -0
- package/dist/views/admin/webhook-endpoints/index.cjs +2 -0
- package/dist/views/admin/webhook-endpoints/index.cjs.map +1 -0
- package/dist/views/admin/webhook-endpoints/index.d.ts +1 -0
- package/dist/views/admin/webhook-endpoints/index.js +729 -0
- package/dist/views/admin/webhook-endpoints/index.js.map +1 -0
- package/dist/views/cc/index.cjs +1 -1
- package/dist/views/cc/index.js +1 -1
- package/dist/views/dashboard/index.cjs +1 -1
- package/dist/views/dashboard/index.js +1 -1
- package/dist/views/delegations/index.cjs +1 -1
- package/dist/views/delegations/index.js +1 -1
- package/dist/views/forms/builder/index.cjs +1 -1
- package/dist/views/forms/builder/index.js +1 -1
- package/dist/views/forms/renderer/index.cjs +1 -1
- package/dist/views/forms/renderer/index.js +1 -1
- package/dist/views/inbox/index.cjs +1 -1
- package/dist/views/inbox/index.js +1 -1
- package/dist/views/instances/detail/InstanceDetailView.d.ts +6 -1
- package/dist/views/instances/detail/index.cjs +1 -1
- package/dist/views/instances/detail/index.d.ts +1 -0
- package/dist/views/instances/detail/index.js +2 -2
- package/dist/views/instances/detail/sections/InstanceWebhookDeliveriesSection.d.ts +20 -0
- package/dist/views/instances/detail/sections/shared.d.ts +37 -4
- package/dist/views/instances/new/index.cjs +1 -1
- package/dist/views/instances/new/index.js +2 -2
- package/dist/views/login/index.cjs +1 -1
- package/dist/views/login/index.js +1 -1
- package/dist/views/search/index.cjs +1 -1
- package/dist/views/search/index.js +1 -1
- package/dist/views/sent/index.cjs +1 -1
- package/dist/views/sent/index.js +1 -1
- package/dist/views/templates/compose/index.cjs +1 -1
- package/dist/views/templates/compose/index.js +1 -1
- package/dist/views/templates/designer/NotifyWebhookTargetsEditor.d.ts +20 -0
- package/dist/views/templates/designer/index.cjs +1 -1
- package/dist/views/templates/designer/index.js +1 -1
- package/dist/views/templates/designer/notify-webhook-designer.d.ts +74 -0
- package/dist/views/templates/index.cjs +1 -1
- package/dist/views/templates/index.js +1 -1
- package/dist/views/templates/versions/index.cjs +1 -1
- package/dist/views/templates/versions/index.js +1 -1
- package/package.json +13 -3
- package/dist/chunks/FormRendererView-BxGT16z0.cjs +0 -2
- package/dist/chunks/designer-C6oIO9Kq.js.map +0 -1
- package/dist/chunks/designer-gFUdImeZ.cjs +0 -65
- package/dist/chunks/designer-gFUdImeZ.cjs.map +0 -1
- package/dist/chunks/detail-BgKgMvYx.js +0 -2044
- package/dist/chunks/detail-BgKgMvYx.js.map +0 -1
- package/dist/chunks/detail-Dnz5aaI-.cjs +0 -2
- package/dist/chunks/detail-Dnz5aaI-.cjs.map +0 -1
- package/dist/chunks/orgs-Bz8hBMoQ.cjs +0 -2
- package/dist/chunks/providers-BsEn3ikK.cjs +0 -2
- package/dist/chunks/routes-config-RBYQtUd0.js.map +0 -1
- package/dist/chunks/routes-config-fDVHmvXi.cjs.map +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../chunks/rolldown-runtime-BocRIvOZ.cjs"),t=require("../../../chunks/router-adapter--gYs13E8.cjs"),n=require("../../../chunks/format-date-time-D-cx5M8z.cjs"),r=require("../../../chunks/routes-config-
|
|
1
|
+
"use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../chunks/rolldown-runtime-BocRIvOZ.cjs"),t=require("../../../chunks/router-adapter--gYs13E8.cjs"),n=require("../../../chunks/format-date-time-D-cx5M8z.cjs"),r=require("../../../chunks/routes-config-C1j_vFKo.cjs");let i=require("react"),a=require("@mezzanine-ui/react"),o=require("react/jsx-runtime"),s=require("@mezzanine-ui/react/ContentHeader");s=e.t(s,1);let c=require("@rytass/bpm-core-client/template");function l({templateId:e}){let l=t.r(),d=r.r(),[f,p]=(0,i.useState)(null),[m,h]=(0,i.useState)(null),[g,_]=(0,i.useState)(!0),[v,y]=(0,i.useState)(!1);(0,i.useEffect)(()=>{C()},[e]);let b=(0,i.useMemo)(()=>(f?.versions??[]).map(e=>({formVersion:f?.formVersions.find(t=>t.id===e.formDefinitionVersionId)?.label??`未綁定`,key:e.id,publishedAt:n.t(e.publishedAt),status:e.status,updatedAt:n.t(e.updatedAt),version:`v${e.version}`,versionId:e.id})),[f]),x=(0,i.useMemo)(()=>[{dataIndex:`version`,key:`version`,title:`版本`,width:100},{dataIndex:`status`,key:`status`,title:`狀態`,width:140},{dataIndex:`formVersion`,key:`formVersion`,title:`表單版本`,width:220},{dataIndex:`publishedAt`,key:`publishedAt`,title:`發布時間`,width:200},{dataIndex:`updatedAt`,key:`updatedAt`,title:`更新時間`,width:200}],[]),S=(0,i.useMemo)(()=>({render:e=>[{disabled:()=>v||e.status===`DRAFT`,name:`Rollback`,onClick:()=>void w(e.versionId)}],variant:`base-secondary`,width:104}),[v]);async function C(){_(!0),h(null);try{p(await(0,c.readTemplateDesigner)(e))}catch(e){h(u(e))}finally{_(!1)}}async function w(e){y(!0),h(null);try{await(0,c.rollbackApprovalTemplateVersion)(e),await C()}catch(e){h(u(e))}finally{y(!1)}}return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(a.PageHeader,{children:(0,o.jsx)(s.default,{description:`查看發布、歸檔與 rollback 狀態。`,onBackClick:()=>l.push(d.templates()),title:f?.template.name??`模板版本`})}),(0,o.jsx)(a.SectionGroup,{children:(0,o.jsxs)(a.Section,{children:[m?(0,o.jsx)(a.Typography,{color:`text-error`,variant:`body`,children:m}):null,(0,o.jsx)(a.Table,{actions:S,columns:x,dataSource:b,fullWidth:!0,loading:g})]})})]})}function u(e){return e instanceof Error?e.message:`發生未知錯誤`}exports.TemplateVersionsView=l;
|
|
2
2
|
//# sourceMappingURL=index.cjs.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { r as e } from "../../../chunks/router-adapter-DftlFTOd.js";
|
|
3
3
|
import { t } from "../../../chunks/format-date-time-CB-LxzqT.js";
|
|
4
|
-
import { r as n } from "../../../chunks/routes-config-
|
|
4
|
+
import { r as n } from "../../../chunks/routes-config-yZbESPlw.js";
|
|
5
5
|
import { useEffect as r, useMemo as i, useState as a } from "react";
|
|
6
6
|
import { PageHeader as o, Section as s, SectionGroup as c, Table as l, Typography as u } from "@mezzanine-ui/react";
|
|
7
7
|
import { Fragment as d, jsx as f, jsxs as p } from "react/jsx-runtime";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rytass/bpm-core-react",
|
|
3
|
-
"version": "0.13.
|
|
3
|
+
"version": "0.13.5",
|
|
4
4
|
"description": "BPM approval workflow React components and views for the Rytass BPM stack. Ships AuthProvider, NotificationDrawer + bell widget, host-facing hooks (useBPMMember / useBPMLogout / useBPMRoutes), and full page-body views for inbox / instances / templates / forms / admin / settings on top of Mezzanine UI and the BPM client functions. The host owns the navigation shell — BPM does not bundle a layout.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"bpm",
|
|
@@ -181,6 +181,11 @@
|
|
|
181
181
|
"import": "./dist/views/admin/delegations/index.js",
|
|
182
182
|
"require": "./dist/views/admin/delegations/index.cjs"
|
|
183
183
|
},
|
|
184
|
+
"./views/admin/webhook-endpoints": {
|
|
185
|
+
"types": "./dist/views/admin/webhook-endpoints/index.d.ts",
|
|
186
|
+
"import": "./dist/views/admin/webhook-endpoints/index.js",
|
|
187
|
+
"require": "./dist/views/admin/webhook-endpoints/index.cjs"
|
|
188
|
+
},
|
|
184
189
|
"./pages/root": {
|
|
185
190
|
"types": "./dist/pages/root/index.d.ts",
|
|
186
191
|
"import": "./dist/pages/root/index.js",
|
|
@@ -275,6 +280,11 @@
|
|
|
275
280
|
"types": "./dist/pages/admin/delegations/index.d.ts",
|
|
276
281
|
"import": "./dist/pages/admin/delegations/index.js",
|
|
277
282
|
"require": "./dist/pages/admin/delegations/index.cjs"
|
|
283
|
+
},
|
|
284
|
+
"./pages/admin/webhook-endpoints": {
|
|
285
|
+
"types": "./dist/pages/admin/webhook-endpoints/index.d.ts",
|
|
286
|
+
"import": "./dist/pages/admin/webhook-endpoints/index.js",
|
|
287
|
+
"require": "./dist/pages/admin/webhook-endpoints/index.cjs"
|
|
278
288
|
}
|
|
279
289
|
},
|
|
280
290
|
"peerDependencies": {
|
|
@@ -286,8 +296,8 @@
|
|
|
286
296
|
"@mezzanine-ui/core": ">=1.0.0",
|
|
287
297
|
"@mezzanine-ui/icons": ">=1.0.0",
|
|
288
298
|
"@mezzanine-ui/react": ">=1.0.0",
|
|
289
|
-
"@rytass/bpm-core-client": "^0.13.
|
|
290
|
-
"@rytass/bpm-core-shared": "^0.13.
|
|
299
|
+
"@rytass/bpm-core-client": "^0.13.5",
|
|
300
|
+
"@rytass/bpm-core-shared": "^0.13.5",
|
|
291
301
|
"@uiw/react-codemirror": ">=4.0.0",
|
|
292
302
|
"@xyflow/react": ">=12.0.0",
|
|
293
303
|
"ai": ">=6.0.0",
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use client";const e=require("./bpm-form-field-Bc6k4ZEO.cjs");let t=require("react"),n=require("@mezzanine-ui/react"),r=require("react/jsx-runtime"),i=require("@mezzanine-ui/icons"),a=require("@rytass/bpm-core-client/form"),o=require("@rytass/bpm-core-shared/form");var s={canRetry:!1,error:null,hasValue:!1,hasNextPage:!1,invalidValues:[],onReachBottom:()=>void 0,onSearch:()=>void 0,options:[],retry:()=>void 0,status:`IDLE`},c=[],l=10,u=[`FORM_DATA_SOURCE_SEARCH_NOT_SUPPORTED`,`FORM_DATA_SOURCE_SEARCH_TOO_SHORT`];function d(e){let n=(0,o.isFormDataSourceFieldDefinition)(e.field)?e.field:null,r=e.fieldPath??n?.fieldKey??``,i=n?e.optionSnapshots?.[e.snapshotKey??n.fieldKey]:void 0,c=n?JSON.stringify({dataSource:n.dataSource,fieldKey:n.fieldKey,type:n.type}):``,d=JSON.stringify(i??null),f=(0,t.useMemo)(()=>i?.options??[],[d]),p=JSON.stringify(e.formData),m=JSON.stringify(e.initialFormData??{}),S=JSON.stringify(e.schema),C=JSON.stringify(e.uiSchema),w=e.context?.kind,T=e.context?.kind===`runtime`?e.context.instanceId:void 0,E=e.context?.kind===`runtime`?e.context.templateId:void 0,D=JSON.stringify(e.row?.values??null),O=JSON.stringify(e.row?.initialValues??null),k=n?e.row?e.row.values[n.fieldKey]:e.formData[n.fieldKey]:void 0,A=(0,a.readFormDataSourceValueSignature)(k),j=(0,t.useMemo)(()=>(0,a.readFormDataSourceSelectedValues)(k),[A]),M=j.length>0,N=n?JSON.stringify({bindings:n.dataSource.bindings.map(t=>t.from.kind===`FIELD`?{fieldKey:t.from.fieldKey,value:e.formData[t.from.fieldKey]}:t.from.kind===`CONSTANT`?{value:t.from.value}:{columnKey:t.from.columnKey,value:e.row?.values[t.from.columnKey]}),value:e.initialFormData!==void 0||e.initialValue!==void 0?k:void 0}):``,P=(0,t.useMemo)(()=>{if(w===`preview`)return{kind:`preview`};if(w===`runtime`&&!e.readonly)return{instanceId:T,kind:`runtime`,templateId:E}},[T,w,E,e.readonly]),ee=n?(e.initialFormData!==void 0||e.initialValue!==void 0)&&(0,a.readFormDataSourceValueSignature)(e.initialValue)!==A:!1,te=n?e.initialFormData!==void 0&&n.dataSource.bindings.some(t=>t.from.kind===`FIELD`?(0,a.readFormDataSourceValueSignature)(e.initialFormData?.[t.from.fieldKey])!==(0,a.readFormDataSourceValueSignature)(e.formData[t.from.fieldKey]):t.from.kind===`ROW_FIELD`&&e.row?.initialValues?(0,a.readFormDataSourceValueSignature)(e.row.initialValues[t.from.columnKey])!==(0,a.readFormDataSourceValueSignature)(e.row.values[t.from.columnKey]):!1):!1,F=!!((i||M)&&(ee||te)),I=!!(n&&P&&F&&M),L=g({hasSnapshot:!!i,hasValue:M,isStale:F,readonly:e.readonly}),R=!!(n&&P&&n.type!==`autocomplete`),z=_(F,R&&n!==null&&(0,a.readMissingFormDataSourceDependencies)(n,e.formData,e.row?.values).length>0),[B,V]=(0,t.useState)([]),[ne,re]=(0,t.useState)(``),[H,U]=(0,t.useState)(null),[W,G]=(0,t.useState)(null),[ie,K]=(0,t.useState)(()=>n?R?z:L:`IDLE`),[ae,q]=(0,t.useState)(null),oe=(0,t.useRef)(0),J=(0,t.useRef)(0),Y=(0,t.useRef)(0),X=(0,t.useRef)(null),se=(0,t.useRef)(null),ce=(0,t.useRef)({cursor:null,searchText:``}),Z=(0,t.useMemo)(()=>x(e.formData),[p]),Q=(0,t.useMemo)(()=>e.row?x(e.row.values):void 0,[D]),le=(0,t.useMemo)(()=>(0,a.mergeFormDataSourceOptions)(f,B),[B,f]),ue=W&&W.signature===N?W:null,de=I&&!ue,fe=h({options:le,resolution:ue,resolvePending:de,value:k}),$=(0,t.useCallback)((t,i)=>{if(!n||!P)return;let o=J.current+1;J.current=o,ce.current={cursor:i,searchText:t},X.current?.abort();let s=new AbortController;X.current=s,K(z),q(null),(P.kind===`preview`?(0,a.previewFormFieldOptions)({cursor:i,fieldKey:r,formData:Z,rowValues:Q,schema:e.schema,searchText:t,signal:s.signal,uiSchema:e.uiSchema}):(0,a.readFormFieldOptions)({cursor:i,fieldKey:r,formData:Z,instanceId:P.instanceId??null,rowValues:Q,searchText:t,signal:s.signal,templateId:P.templateId??null})).then(e=>{b(s,J,o)||(V(t=>{let n=(0,a.readSelectedFormDataSourceOptions)(k,t);return(0,a.mergeFormDataSourceOptions)(n,i?t:[],e.options)}),U(e.nextCursor),q(null),oe.current=i?oe.current+e.options.length:e.options.length,e.nextCursor&&e.options.length>0&&oe.current<l&&pe.current(t,e.nextCursor),K(e.waitingForFieldKeys.length?`WAITING_FOR_DEPENDENCIES`:`VALID`))}).catch(e=>{if(b(s,J,o))return;let t=(0,a.readFormDataSourceErrorMessage)(e)??`選項來源暫時無法使用。`,n=(0,a.readFormDataSourceErrorCode)(e);q(t),K(v(!!(n&&u.includes(n)),M))})},[A,c,P,M,z,r,Z,Q,S,C]),pe=(0,t.useRef)($);pe.current=$;let me=(0,t.useCallback)(()=>{if(!n||!P||j.length===0)return;let t=N,i=Y.current+1;Y.current=i,se.current?.abort();let o=new AbortController;se.current=o,q(null),(P.kind===`preview`?(0,a.previewResolveFormFieldOptions)({fieldKey:r,formData:Z,rowValues:Q,schema:e.schema,signal:o.signal,uiSchema:e.uiSchema,values:j}):(0,a.resolveFormFieldOptions)({fieldKey:r,formData:Z,instanceId:P.instanceId??null,rowValues:Q,signal:o.signal,templateId:P.templateId??null,values:j})).then(e=>{if(!b(o,Y,i)){if(e.waitingForFieldKeys.length){K(`WAITING_FOR_DEPENDENCIES`);return}V(t=>(0,a.mergeFormDataSourceOptions)(t,e.options)),G({signature:t,unresolvedValues:e.unresolvedValues}),K(`VALID`)}}).catch(e=>{b(o,Y,i)||(K(`UNAVAILABLE`),q((0,a.readFormDataSourceErrorMessage)(e)??`選項來源暫時無法使用。`))})},[N,c,P,r,Z,Q,S,j,C]),he=(0,t.useRef)(me);he.current=me,(0,t.useEffect)(()=>{if(J.current+=1,X.current?.abort(),V(e=>(0,a.readSelectedFormDataSourceOptions)(k,e)),U(e=>e===null?e:null),re(e=>e&&``),q(e=>e&&null),!n){K(`IDLE`);return}if(!R){K(L);return}pe.current(``,null)},[R,c,P,N,m,O,e.readonly,z,L,d]),(0,t.useEffect)(()=>{I&&he.current()},[N,P,I]),(0,t.useEffect)(()=>()=>{X.current?.abort(),se.current?.abort()},[]);let ge=(0,t.useCallback)(e=>{re(e),V(e=>(0,a.readSelectedFormDataSourceOptions)(k,e)),U(null),$(e,null)},[$]),_e=(0,t.useCallback)(()=>{H&&$(ne,H)},[$,H,ne]),ve=(0,t.useCallback)(()=>{P&&($(ce.current.searchText,ce.current.cursor),I&&he.current())},[P,$,I]);return n?{canRetry:!!P,error:ae,hasValue:M,hasNextPage:!!H,invalidValues:fe,onReachBottom:_e,onSearch:ge,options:le,retry:ve,status:y({invalidValues:fe,resolvePending:de,status:ie})}:s}function f(e){switch(e.status){case`WAITING_FOR_DEPENDENCIES`:return`請先填寫相依欄位。`;case`STALE`:return`選項需要重新載入或驗證。`;case`INVALID`:return e.invalidValues.length?`無法辨識選項:${e.invalidValues.join(`、`)}`:`目前選項已失效,請重新選擇。`;case`UNAVAILABLE`:return e.error??`選項來源暫時無法使用。`;case`VALID`:return e.error??(e.options.length?null:`目前沒有可用選項。`);default:return e.error}}function p(e){return e.hasValue&&e.status!==`VALID`}function m(e){let t=e.filter(p);return t.length===0?null:t.every(e=>e.status===`LOADING`||e.status===`STALE`)?`選項驗證中,請稍候再送出。`:`請先完成動態選項驗證。`}function h(e){return e.resolution?e.resolution.unresolvedValues:e.resolvePending?c:(0,a.readMissingFormDataSourceOptionValues)(e.value,e.options)}function g(e){return e.isStale?`STALE`:e.hasSnapshot?`VALID`:e.readonly&&e.hasValue?`UNAVAILABLE`:`IDLE`}function _(e,t){return t?`WAITING_FOR_DEPENDENCIES`:e?`STALE`:`LOADING`}function v(e,t){return e?t?`VALID`:`IDLE`:`UNAVAILABLE`}function y(e){return e.status===`LOADING`||e.status===`UNAVAILABLE`||e.status===`WAITING_FOR_DEPENDENCIES`?e.status:e.invalidValues.length?`INVALID`:e.resolvePending?`STALE`:e.status}function b(e,t,n){return e.signal.aborted||t.current!==n}function x(e){return Object.entries(e).reduce((e,[t,n])=>n===void 0?e:{...e,[t]:n},{})}var S={alignItems:`start`,display:`grid`,gap:12,gridTemplateColumns:`repeat(12, minmax(0, 1fr))`},C={gridColumn:`1 / -1`},w={alignItems:`start`,display:`grid`,gap:8,minWidth:0},T={minWidth:`100%`,width:`100%`};function E(e){e&&(e.style.width=`100%`)}function D({dataSourceContext:e,dataSourceInitialValues:i,emptyText:s=`尚未建立欄位。`,errors:c={},maxWidth:l,onChange:u,onDataSourceStateChange:d,onUploadAttachment:f,optionSnapshots:p,readonly:m=!1,schema:h,singleColumn:g=!1,uiSchema:_,value:v}){let[y,b]=(0,t.useState)(()=>(0,a.buildFormRendererValues)(h.fields,v??{})),x=(0,t.useMemo)(()=>(0,a.buildFormRendererValues)(h.fields,v??y),[y,h.fields,v]),T=(0,t.useRef)(x),E=(0,t.useMemo)(()=>(0,a.readVisibleFormRendererFields)(h,_,x),[h,_,x]);(0,t.useEffect)(()=>{T.current=x},[x]),(0,t.useEffect)(()=>{b(e=>(0,a.buildFormRendererValues)(h.fields,v??e))},[h.fields,v]);function D(e,t){let n={...T.current,[e]:t};T.current=n,v||b(n),u?.(n)}return E.length?(0,r.jsx)(`div`,{style:{...S,...g?{width:`100%`}:{}},children:E.map(t=>(0,r.jsx)(O,{dataSourceContext:e,dataSourceInitialValues:i,field:t,error:c[t.fieldKey]??null,errors:c,fields:h.fields,onChange:D,onDataSourceStateChange:d,onUploadAttachment:f,optionSnapshots:p,readonly:m,schema:h,style:{...w,gridColumn:`span ${g?12:re(t,_)}`,...g&&!(0,o.isTableFieldDefinition)(t)?{maxWidth:l}:{}},value:x[t.fieldKey],values:x,uiSchema:_},t.fieldKey))}):(0,r.jsx)(`div`,{style:S,children:(0,r.jsx)(n.Typography,{color:`text-neutral`,style:C,variant:`body`,children:h.fields.length>0?`目前條件下沒有可填寫欄位。`:s})})}function O({dataSourceContext:i,dataSourceInitialValues:s,error:c,errors:l,field:u,fields:p,onChange:m,onDataSourceStateChange:h,onUploadAttachment:g,optionSnapshots:_,readonly:v,schema:y,style:b,value:x,values:S,uiSchema:C}){let w=(0,a.isFormRendererFieldRequired)(u,p,S),T=v||(0,a.isFormRendererFieldReadonly)(u,p,S),E=d({context:i,field:u,formData:S,initialFormData:s,initialValue:s?.[u.fieldKey],optionSnapshots:_,readonly:T,schema:y,uiSchema:C}),D=f(E),O=JSON.stringify({hasValue:E.hasValue,invalidValues:E.invalidValues,status:E.status});return(0,t.useEffect)(()=>{(0,o.isFormDataSourceFieldDefinition)(u)&&h?.(u.fieldKey,{hasValue:E.hasValue,invalidValues:E.invalidValues,status:E.status})},[O,u.fieldKey,h]),(0,r.jsxs)(`div`,{"data-form-field-key":u.fieldKey,style:b,children:[(0,r.jsx)(e.t,{label:u.label,name:u.fieldKey,required:w,children:(0,o.isTableFieldDefinition)(u)?(0,r.jsx)(te,{dataSourceContext:i,dataSourceInitialValues:s,errors:l,field:u,onChange:m,onDataSourceStateChange:h,optionSnapshots:_,readonly:T,schema:y,uiSchema:C,value:x,values:S}):B(u,x,T,m,g,i,E)}),c?(0,r.jsx)(n.Typography,{color:`text-error`,variant:`caption`,children:c}):null,D?(0,r.jsxs)(`div`,{style:k,children:[(0,r.jsx)(n.Typography,{color:E.status===`INVALID`||E.status===`UNAVAILABLE`?`text-error`:`text-neutral`,variant:`caption`,children:D}),E.status===`UNAVAILABLE`&&E.canRetry?(0,r.jsx)(n.Button,{onClick:E.retry,size:`sub`,type:`button`,variant:`base-ghost`,children:`重試`}):null]}):null]})}var k={alignItems:`center`,display:`flex`,gap:8},A={display:`grid`,gap:8,minWidth:0,width:`100%`},j={display:`flex`,justifyContent:`flex-start`},M={maxWidth:`100%`,overflowX:`auto`},N=160,P=56,ee={display:`grid`,gap:4,minWidth:0};function te({dataSourceContext:e,dataSourceInitialValues:o,errors:s,field:c,onChange:l,onDataSourceStateChange:u,optionSnapshots:d,readonly:f,schema:p,uiSchema:m,value:h,values:g}){let _=(0,a.readFormTableRows)(h),v=(0,a.readFormTableRowBounds)(c),y=(0,t.useRef)(0),[b,x]=(0,t.useState)(()=>_.map(()=>L(y)));(0,t.useEffect)(()=>{b.length!==_.length&&x(_.map(()=>L(y)))},[b.length,_.length]);function S(e){l(c.fieldKey,e)}function C(){x([...b,L(y)]),S([..._,(0,a.createFormTableRow)(c.columns)])}function w(e){x(b.filter((t,n)=>n!==e)),S(_.filter((t,n)=>n!==e))}function T(e,t,n){S(_.map((r,i)=>i===e?R(r,t,n):r))}let E=_.map((e,t)=>({...e,index:t,key:b[t]??`row-${t}`})),D=c.columns.map(t=>({key:t.fieldKey,render:n=>(0,r.jsx)(F,{column:t,dataSourceContext:e,error:s[(0,a.readFormTableCellPath)(c.fieldKey,n.index,t.fieldKey)]??null,fieldPath:`${c.fieldKey}.${t.fieldKey}`,formData:g,initialFormData:o,initialRowValues:I(o?.[c.fieldKey],n.index),onChange:e=>T(n.index,t.fieldKey,e),onDataSourceStateChange:u,optionSnapshots:d,path:(0,a.readFormTableCellPath)(c.fieldKey,n.index,t.fieldKey),readonly:f,rowValues:_[n.index]??{},schema:p,uiSchema:m},`${b[n.index]??n.index}-${t.fieldKey}`),title:t.label||t.fieldKey})),O=f?void 0:{render:e=>[{disabled:()=>_.length<=v.minRows,icon:i.TrashIcon,iconType:`icon-only`,name:`刪除此列`,onClick:()=>w(e.index),variant:`destructive-ghost`}],width:56};return(0,r.jsxs)(`div`,{style:A,children:[(0,r.jsx)(`div`,{style:M,children:(0,r.jsx)(`div`,{style:{minWidth:c.columns.length*N+(O?P:0)},children:(0,r.jsx)(n.Table,{...O?{actions:O}:{},columns:D,dataSource:[...E],rowHeightPreset:`roomy`,showHeader:!0,size:`sub`})})}),f?null:(0,r.jsx)(`div`,{style:j,children:(0,r.jsx)(n.Button,{disabled:_.length>=v.maxRows,icon:i.PlusIcon,iconType:`leading`,onClick:C,size:`sub`,type:`button`,variant:`base-secondary`,children:c.addRowLabel||`新增一列`})})]})}function F({column:e,dataSourceContext:i,error:a,fieldPath:s,formData:c,initialFormData:l,initialRowValues:u,onChange:p,onDataSourceStateChange:m,optionSnapshots:h,path:g,readonly:_,rowValues:v,schema:y,uiSchema:b}){let x=z(v,e.fieldKey),S=d({context:i,field:e,fieldPath:s,formData:c,initialFormData:l,initialValue:u?z(u,e.fieldKey):void 0,optionSnapshots:h,readonly:_,row:{initialValues:u,values:v},schema:y,snapshotKey:g,uiSchema:b}),C=f(S),w=JSON.stringify({hasValue:S.hasValue,invalidValues:S.invalidValues,status:S.status});return(0,t.useEffect)(()=>{if((0,o.isFormDataSourceFieldDefinition)(e))return m?.(g,{hasValue:S.hasValue,invalidValues:S.invalidValues,status:S.status}),()=>{m?.(g,{hasValue:!1,invalidValues:[],status:`IDLE`})}},[m,g,w]),(0,r.jsxs)(`div`,{"data-form-field-key":g,style:ee,children:[B(e,x,_,(e,t)=>p(t),void 0,i,S,`sub`),a?(0,r.jsx)(n.Typography,{color:`text-error`,variant:`caption`,children:a}):null,C?(0,r.jsxs)(`div`,{style:k,children:[(0,r.jsx)(n.Typography,{color:S.status===`INVALID`||S.status===`UNAVAILABLE`?`text-error`:`text-neutral`,variant:`caption`,children:C}),S.status===`UNAVAILABLE`&&S.canRetry?(0,r.jsx)(n.Button,{onClick:S.retry,size:`sub`,type:`button`,variant:`base-ghost`,children:`重試`}):null]}):null]})}function I(e,t){return(0,a.readFormTableRows)(e)[t]}function L(e){return e.current+=1,`table-row-${e.current}`}function R(e,t,n){return n===void 0||!(0,o.isFormTableCellValue)(n)?Object.fromEntries(Object.entries(e).filter(([e])=>e!==t)):{...e,[t]:n}}function z(e,t){if(!(!e||!Object.prototype.hasOwnProperty.call(e,t)))return e[t]}function B(e,t,n,r,i,a,s,c=`main`){return(0,o.isFormDataSourceFieldDefinition)(e)?ne(e,t,n,r,a,s,c):V(e,t,n,r,i,c)}function V(e,t,i,s,c,l=`main`){if(e.type===`textarea`)return(0,r.jsx)(n.Textarea,{onChange:t=>s(e.fieldKey,t.target.value),placeholder:e.placeholder??`請輸入多行文字`,readOnly:i,ref:E,rows:3,style:T,value:H(t)});if(e.type===`boolean`)return(0,r.jsx)(n.Toggle,{checked:t===!0,disabled:i,label:`啟用`,onChange:t=>s(e.fieldKey,t.target.checked),size:l});if((0,o.isFormStaticOptionFieldDefinition)(e)&&e.type===`checkbox`){let o=e.options.map(a.readFieldOptionAsSelectOption);return(0,r.jsx)(n.Select,{mode:`multiple`,onChange:t=>s(e.fieldKey,t?.length?t.map(e=>e.id):void 0),options:o,placeholder:e.placeholder??`請選擇一或多個選項`,readOnly:i,size:l,value:o.filter(e=>U(t).includes(e.id))})}if((0,o.isFormStaticOptionFieldDefinition)(e)){let o=e.options.map(a.readFieldOptionAsSelectOption);return(0,r.jsx)(n.Select,{onChange:t=>s(e.fieldKey,t?.id??void 0),options:o,placeholder:e.placeholder??`請選擇`,readOnly:i,size:l,value:(0,a.readSelectOption)(o,H(t))})}return e.type===`file_upload`?(0,r.jsx)(n.Upload,{accept:e.acceptedMimeTypes?.join(`,`),disabled:i,maxFiles:e.maxFiles,mode:`button-list`,...(e.maxFiles??1)>1?{multiple:!0}:{},onChange:t=>s(e.fieldKey,t.length?t.map(e=>e.id):void 0),onUpload:async t=>Promise.all(t.map(async t=>({file:t,id:(c?await c(e,t):{id:`${t.name}-${t.lastModified}`}).id,progress:100,status:`done`}))),size:`sub`}):e.type===`date`?(0,r.jsx)(n.DatePicker,{format:`YYYY-MM-DD`,fullWidth:!0,onChange:t=>s(e.fieldKey,(0,a.formatDatePickerValue)(t)),placeholder:e.placeholder??G(e.type),readOnly:i,value:(0,a.readDatePickerValue)(t)}):e.type===`datetime`?(0,r.jsx)(n.DateTimePicker,{formatDate:`YYYY-MM-DD`,formatTime:`HH:mm`,fullWidth:!0,hideSecond:!0,onChange:t=>s(e.fieldKey,(0,a.formatDateTimePickerValue)(t)),placeholderLeft:`選擇日期`,placeholderRight:`選擇時間`,readOnly:i,value:(0,a.readDatePickerValue)(t)}):e.type===`number`||e.type===`money`?(0,r.jsx)(n.Input,{fullWidth:!0,max:e.maximum,min:e.minimum,size:l,onChange:t=>s(e.fieldKey,(0,a.clampOptionalNumber)((0,a.parseOptionalNumberInput)(t.target.value),{max:e.maximum,min:e.minimum})),placeholder:e.placeholder??G(e.type),...i?{readonly:!0}:{},showSpinner:!0,value:W(t),variant:`measure`}):(0,r.jsx)(n.Input,{fullWidth:!0,onChange:t=>s(e.fieldKey,t.target.value),placeholder:e.placeholder??G(e.type),...i?{readonly:!0}:{},size:l,value:H(t),variant:`base`})}function ne(e,t,i,s,c,l,u=`main`){let d=l.options.map(a.readFieldOptionAsSelectOption),f=(0,a.readSelectedFormDataSourceOptions)(t,l.options).map(a.readFieldOptionAsSelectOption),p=l.status===`LOADING`,m=l.status===`WAITING_FOR_DEPENDENCIES`,h=!!c&&!i,g=i||m,_=i;return e.type===`autocomplete`?(0,o.readFormFieldSelectionMode)(e)===`multiple`?(0,r.jsx)(n.AutoComplete,{asyncData:h,clearSearchText:!0,disabled:_,disabledOptionsFilter:h,globalPortal:!0,loading:p,mode:`multiple`,onChange:t=>s(e.fieldKey,t.length?t.map(e=>e.id):void 0),onReachBottom:l.hasNextPage?l.onReachBottom:void 0,onSearch:h?l.onSearch:void 0,options:d,placeholder:e.placeholder??`請輸入或選擇`,readOnly:i,searchDebounceTime:300,size:u,value:f}):(0,r.jsx)(n.AutoComplete,{asyncData:h,clearSearchText:!0,disabled:_,disabledOptionsFilter:h,globalPortal:!0,loading:p,mode:`single`,onChange:t=>s(e.fieldKey,t?.id??void 0),onReachBottom:l.hasNextPage?l.onReachBottom:void 0,onSearch:h?l.onSearch:void 0,options:d,placeholder:e.placeholder??`請輸入或選擇`,readOnly:i,searchDebounceTime:300,size:u,value:f[0]??null}):e.type===`radio`?(0,r.jsx)(n.RadioGroup,{disabled:g,name:e.fieldKey,onChange:t=>s(e.fieldKey,t.target.value||void 0),options:d,value:H(t)}):e.type===`checkbox`?(0,r.jsx)(n.CheckboxGroup,{disabled:g,name:e.fieldKey,onChange:t=>s(e.fieldKey,t.target.values.length?t.target.values:void 0),options:d.map(e=>({label:e.name,value:e.id})),value:[...U(t)]}):(0,o.readFormFieldSelectionMode)(e)===`multiple`?(0,r.jsx)(n.Select,{disabled:g,loading:p,mode:`multiple`,onChange:t=>s(e.fieldKey,t.length?t.map(e=>e.id):void 0),onReachBottom:l.hasNextPage?l.onReachBottom:void 0,options:d,placeholder:e.placeholder??`請選擇一或多個選項`,readOnly:i,size:u,value:f}):(0,r.jsx)(n.Select,{disabled:g,loading:p,onChange:t=>s(e.fieldKey,t?.id??void 0),onReachBottom:l.hasNextPage?l.onReachBottom:void 0,options:d,placeholder:e.placeholder??`請選擇`,readOnly:i,size:u,value:f[0]??null})}function re(e,t){return{FULL:12,HALF:6,THIRD:4}[t.layout.find(t=>t.fieldKey===e.fieldKey)?.width??`FULL`]}function H(e){return typeof e==`string`?e:``}function U(e){return Array.isArray(e)&&e.every(e=>typeof e==`string`)?e:[]}function W(e){return typeof e==`number`?String(e):``}function G(e){return{boolean:``,autocomplete:`請輸入或選擇`,checkbox:`請選擇一或多個選項`,date:`請選擇日期`,datetime:`請選擇日期與時間`,file_upload:`請上傳附件`,money:`請輸入金額`,number:`請輸入數字`,radio:`請選擇一個選項`,select:`請選擇一個選項`,table:``,text:`請輸入文字`,textarea:`請輸入多行文字`}[e]}Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return D}});
|
|
2
|
-
//# sourceMappingURL=FormRendererView-BxGT16z0.cjs.map
|