@objectstack/console 17.5.0 → 17.7.0
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 +806 -0
- package/dist/.objectstack-injection.json +2 -2
- package/dist/.objectui-sha +1 -1
- package/dist/assets/{ActionResultDialog-CLdIyOW6.js → ActionResultDialog-ChYnuROr.js} +3 -3
- package/dist/assets/{AiPendingActionsPage-OKYz66yR.js → AiPendingActionsPage-Dh3-i4BB.js} +1 -1
- package/dist/assets/{ApiConsolePage-CcrKovu8.js → ApiConsolePage-CKYEqlMs.js} +1 -1
- package/dist/assets/AppDocsIndex-B5Tky2xg.js +1 -0
- package/dist/assets/{AppManagementPage-D_xz8cTZ.js → AppManagementPage-ZwyvnHpM.js} +1 -1
- package/dist/assets/ApprovalsInboxPage-DD4fe0Em.js +1 -0
- package/dist/assets/{AuditLogPage-CoghqsZb.js → AuditLogPage-Sed6iMqP.js} +1 -1
- package/dist/assets/BookPage-DYjUsQIc.js +1 -0
- package/dist/assets/{ComponentNavView-BxsixSU9.js → ComponentNavView-DrlxM4SY.js} +1 -1
- package/dist/assets/CreateViewDialog-Cp72x_O7.js +1 -0
- package/dist/assets/DashboardView-juicRxcP.js +1 -0
- package/dist/assets/DocPage-CxJaQ-pC.js +1 -0
- package/dist/assets/{DocsIndex-B2zw_HAp.js → DocsIndex-LALVtIVR.js} +1 -1
- package/dist/assets/{DocsLayout-DezZ8x7_.js → DocsLayout-BAwlJQQf.js} +1 -1
- package/dist/assets/DocsSlug-CkF1E-Zs.js +1 -0
- package/dist/assets/ExpressionProvider-Dr0e99r1.js +1 -0
- package/dist/assets/FlowRunsPage-R3W3t2s4.js +1 -0
- package/dist/assets/{IntegrationsPage-2leVkVDH.js → IntegrationsPage-DIuFLEbF.js} +2 -2
- package/dist/assets/InterfaceListPage-BfoCldGu.js +1 -0
- package/dist/assets/{MarketplaceInstalledPage-EPPHSitW.js → MarketplaceInstalledPage-DyjhcUNB.js} +1 -1
- package/dist/assets/MarketplacePackagePage-BbO27Pgs.js +4 -0
- package/dist/assets/{MarketplacePage-BnQKykgv.js → MarketplacePage-DO2_b64U.js} +1 -1
- package/dist/assets/{MetadataInspector-BWxLkr0O.js → MetadataInspector-BQyu9pOE.js} +1 -1
- package/dist/assets/ObjectDataPage-DIY-yefK.js +1 -0
- package/dist/assets/PageView-C-qWu3Jw.js +1 -0
- package/dist/assets/ProfilePage-Qp8DL8CF.js +1 -0
- package/dist/assets/{PublicFormsPage-DlE6tck_.js → PublicFormsPage-D3AT2EH9.js} +1 -1
- package/dist/assets/RecordDetailView-B3XBEgk2.js +3 -0
- package/dist/assets/RecordFormPage-CcoZfUJ3.js +1 -0
- package/dist/assets/ReportDefaultInspector-DVcWM6sh.js +1 -0
- package/dist/assets/ReportView-pJCFptzp.js +2 -0
- package/dist/assets/RuntimeDraftBar-DObTyFu2.js +1 -0
- package/dist/assets/SchemaForm-BWSWYMLE.js +3 -0
- package/dist/assets/SearchResultsPage-ChVIzFob.js +1 -0
- package/dist/assets/{SettingsHub-BGKIj-Zq.js → SettingsHub-CPP9FDe8.js} +1 -1
- package/dist/assets/SettingsView-CrHAROu9.js +1 -0
- package/dist/assets/{SkeletonDetail-C8fMI-Mu.js → SkeletonDetail-CP-35B8x.js} +1 -1
- package/dist/assets/{af-BfSmLD34.js → af-Bhbso4Pg.js} +1 -1
- package/dist/assets/ai-BAPiCsNk.js +3 -0
- package/dist/assets/app-shell-eager-leaves-D9tgfJOe.js +1 -0
- package/dist/assets/{ar-B9ttrM75.js → ar-DG8TAFtm.js} +1 -1
- package/dist/assets/{ar-DZ-C1rn-cyl.js → ar-DZ-BtSien-d.js} +1 -1
- package/dist/assets/{ar-EG-BaDxKP_o.js → ar-EG-DpXC0zoY.js} +1 -1
- package/dist/assets/{ar-MA-DbxNEcmd.js → ar-MA-D1qVJLyE.js} +1 -1
- package/dist/assets/{ar-SA-DeC5LXcX.js → ar-SA-BIYKNgv8.js} +1 -1
- package/dist/assets/{ar-TN-C9KpTFJz.js → ar-TN-mUR5Mq3s.js} +1 -1
- package/dist/assets/{az-cMerDwRO.js → az-B7IqwHGK.js} +1 -1
- package/dist/assets/{be-ZTSbszQh.js → be-CnZyPaSX.js} +1 -1
- package/dist/assets/{be-tarask-BXZEUrgX.js → be-tarask--uMMCC7l.js} +1 -1
- package/dist/assets/{bg-BDogpmn5.js → bg-CZwuirtY.js} +1 -1
- package/dist/assets/{bn-Cz04uxmh.js → bn-BbOX0r-z.js} +1 -1
- package/dist/assets/{bs-CpFnCl-j.js → bs-B5W75cYR.js} +1 -1
- package/dist/assets/{ca-CHC4M52Z.js → ca-Be69LdIM.js} +1 -1
- package/dist/assets/{ckb-Dxw-RNm8.js → ckb-B-nKM1Vn.js} +1 -1
- package/dist/assets/contracts-DieHW666.js +1 -0
- package/dist/assets/{createDerive-DvA_JGNq.js → createDerive-CynsXU-B.js} +1 -1
- package/dist/assets/{cs-DsFaJ5Z7.js → cs-qHngxH7l.js} +1 -1
- package/dist/assets/{cy-FH4JFDTs.js → cy-DscO2Pgf.js} +1 -1
- package/dist/assets/{da-D1pVjaAq.js → da-vibkaLMF.js} +1 -1
- package/dist/assets/data-adapter-BDsrq0TX.js +2 -0
- package/dist/assets/{de-AT-DUMQCisj.js → de-AT--JneEuBw.js} +1 -1
- package/dist/assets/{de-DKrxSvnP.js → de-BCT78XYW.js} +1 -1
- package/dist/assets/default-inspector-registry-Dktr6x_q.js +1 -0
- package/dist/assets/dist-yh3dYtHt.js +14 -0
- package/dist/assets/drillUrlFilters-N0RngQg6.js +1 -0
- package/dist/assets/{el-l3-bHySV.js → el-Cl0y9T2b.js} +1 -1
- package/dist/assets/en-AU-By42tTB7.js +1 -0
- package/dist/assets/{en-CA-DGH5NF0a.js → en-CA-BqEEoj-Y.js} +1 -1
- package/dist/assets/en-GB-Cx8B9nkB.js +1 -0
- package/dist/assets/en-IE-CX9nv6uO.js +1 -0
- package/dist/assets/en-IN-ByGSBHa4.js +1 -0
- package/dist/assets/en-NZ-BPMwa2ZN.js +1 -0
- package/dist/assets/en-ZA-lj_N4R6c.js +1 -0
- package/dist/assets/{eo-CL6CXHZx.js → eo-oOXROuhF.js} +1 -1
- package/dist/assets/{es-BIJ0rksI.js → es-EudscwjH.js} +1 -1
- package/dist/assets/{et-BGgMzjm1.js → et-CB-5LLh6.js} +1 -1
- package/dist/assets/{eu-CqvAoRrX.js → eu-B4-hcseX.js} +1 -1
- package/dist/assets/{fa-IR-DNz3oA1-.js → fa-IR-CogavcMJ.js} +1 -1
- package/dist/assets/{fi-DNSfKWuW.js → fi-CIBE0mYa.js} +1 -1
- package/dist/assets/{formatLong-CHb9WA3O.js → formatLong-qqgm7lV1.js} +1 -1
- package/dist/assets/{fr-CA-CotiswPx.js → fr-CA-BugXMutW.js} +1 -1
- package/dist/assets/{fr-DYRJCirJ.js → fr-CDReXYWW.js} +1 -1
- package/dist/assets/{fr-CH-CpiEYWpc.js → fr-CH-fiTiB6X1.js} +1 -1
- package/dist/assets/framework-CAuH4h0L.js +35 -0
- package/dist/assets/{fy-B69yM3FE.js → fy-t_GzIAg_.js} +1 -1
- package/dist/assets/{gd-BAy8AsX6.js → gd-CSncIxtN.js} +1 -1
- package/dist/assets/{getIcon-BEVyC4y3.js → getIcon-BDkBRQFw.js} +1 -1
- package/dist/assets/{gl-soLn_weL.js → gl-_138Mj2S.js} +1 -1
- package/dist/assets/{gu-B19Yo9yC.js → gu-COfH-YUT.js} +1 -1
- package/dist/assets/{he-DYTPo33p.js → he-BXL4lOKY.js} +1 -1
- package/dist/assets/{hi-D2dIK7Oy.js → hi-kXuYI0TJ.js} +1 -1
- package/dist/assets/{highlighted-body-OFNGDK62-CExufvVt.js → highlighted-body-OFNGDK62-CK7x7Gzm.js} +1 -1
- package/dist/assets/{hr-BV-VOPMu.js → hr-DAOsQWzI.js} +1 -1
- package/dist/assets/{ht-C7MM4qkS.js → ht-Ch8SKz8p.js} +1 -1
- package/dist/assets/{hu-Rha1m2Ym.js → hu-q6W_rWPT.js} +1 -1
- package/dist/assets/{hy-CiTNgbdV.js → hy-0M8OmwnM.js} +1 -1
- package/dist/assets/i18n-DTfZonAM.js +17 -0
- package/dist/assets/i18n-locale-ar-O6rs-Cir.js +4 -0
- package/dist/assets/i18n-locale-de-CMc1jk4a.js +4 -0
- package/dist/assets/i18n-locale-en-CbRQO81h.js +4 -0
- package/dist/assets/i18n-locale-es-t47nyoCX.js +4 -0
- package/dist/assets/i18n-locale-fr-E425EqJM.js +4 -0
- package/dist/assets/i18n-locale-ja-y_fk77fz.js +4 -0
- package/dist/assets/i18n-locale-ko-CdnY2uCg.js +4 -0
- package/dist/assets/i18n-locale-pt-BaUOXS6y.js +4 -0
- package/dist/assets/i18n-locale-ru-pFlhX9wg.js +4 -0
- package/dist/assets/i18n-locale-zh-Dkj4ROTN.js +4 -0
- package/dist/assets/i18n-runtime-CdWyaiOD.js +1 -0
- package/dist/assets/{id-Cijsfjt-.js → id-BM_H1_jv.js} +1 -1
- package/dist/assets/index-ocmkyCt6.js +19 -0
- package/dist/assets/index-v2Ijn9Gr.css +2 -0
- package/dist/assets/{infrastructure-BHSync5f.js → infrastructure-CSnL6ntj.js} +2 -2
- package/dist/assets/integration-7NqwVHuJ.js +1 -0
- package/dist/assets/{is-xS1WTyeC.js → is-B_7jXZfS.js} +1 -1
- package/dist/assets/isSameWeek-D90tBsli.js +1 -0
- package/dist/assets/{it-C2i_c9sd.js → it-CBM0J9cD.js} +1 -1
- package/dist/assets/{it-CH-l516ZNXj.js → it-CH-BQltCNsR.js} +1 -1
- package/dist/assets/{ja-D9_ewLny.js → ja-DBjnsx21.js} +1 -1
- package/dist/assets/{ja-Hira-D_6ExgHw.js → ja-Hira-BZfSmj1i.js} +1 -1
- package/dist/assets/{ka-BYHGyees.js → ka-HwpuKgUY.js} +1 -1
- package/dist/assets/{kk-CbTFtuqb.js → kk-DLKA9paj.js} +1 -1
- package/dist/assets/{km-Dr2gwhIn.js → km-BU5kermq.js} +1 -1
- package/dist/assets/{kn-CprH8JD7.js → kn-BNFqbCoi.js} +1 -1
- package/dist/assets/{ko-CsFS2u5i.js → ko-D8n4uMqQ.js} +1 -1
- package/dist/assets/{lb-CbFKN7Ob.js → lb-B1empQ7m.js} +1 -1
- package/dist/assets/{lt-Bq0xkLp0.js → lt-gMukpK3G.js} +1 -1
- package/dist/assets/{lv-Cj6vg6Qo.js → lv-D2O5AnsZ.js} +1 -1
- package/dist/assets/{match-CiPp9BME.js → match-BTF6WqJh.js} +1 -1
- package/dist/assets/{match-C_jFGO9e.js → match-Cyum2eeW.js} +1 -1
- package/dist/assets/{match-Co4ivumx.js → match-ScHH8kYk.js} +1 -1
- package/dist/assets/mermaid-GHXKKRXX-D4H6EVJQ.js +1 -0
- package/dist/assets/metadata-admin-CEhVmXFv.js +9 -0
- package/dist/assets/{mk-MXFM99YL.js → mk-D-Zl0xVN.js} +1 -1
- package/dist/assets/{mn-D5Q9B6Jt.js → mn-jJbTslgD.js} +1 -1
- package/dist/assets/{ms-CCzPRldx.js → ms-CUuJHLA4.js} +1 -1
- package/dist/assets/{mt-mjJpN6xW.js → mt-yIcbfxKY.js} +1 -1
- package/dist/assets/{nb-BIlNqdEb.js → nb-D9WNypoj.js} +1 -1
- package/dist/assets/{nl-BE-FwXjQsmV.js → nl-BE-B1vKiw2h.js} +1 -1
- package/dist/assets/{nl-D2uBtIxG.js → nl-DC7b5e90.js} +1 -1
- package/dist/assets/{nn-B0loJ7SV.js → nn-uP4yJ9s0.js} +1 -1
- package/dist/assets/{oc-U7-yH1sO.js → oc-DHTqadJI.js} +1 -1
- package/dist/assets/{pl-mTy0JYgi.js → pl-Bxnnizf5.js} +1 -1
- package/dist/assets/plugin-calendar-b7C35ANT.js +1 -0
- package/dist/assets/plugin-charts-b-yVtmdI.js +7 -0
- package/dist/assets/plugin-chatbot-D1KW_oIO.js +122 -0
- package/dist/assets/plugin-dashboard-DTkPoPEb.js +6 -0
- package/dist/assets/plugin-form-UIRm-FpQ.js +1 -0
- package/dist/assets/plugin-gantt-9dtc8zzX.js +63 -0
- package/dist/assets/plugin-grid-Cp4RKtMJ.js +10 -0
- package/dist/assets/plugin-kanban-B2JOPZIJ.js +1 -0
- package/dist/assets/plugin-map-CBJcVJYk.js +1 -0
- package/dist/assets/{plugin-markdown-D1nTQc1T.js → plugin-markdown-CNlDzqP-.js} +1 -1
- package/dist/assets/plugin-report-IZzgQb-Q.js +59 -0
- package/dist/assets/plugin-timeline-DsmtjcJ3.js +1 -0
- package/dist/assets/plugin-tree-DTRPBdhe.js +1 -0
- package/dist/assets/plugin-view-D9ixsNDG.js +1 -0
- package/dist/assets/plugins-views-CnvkdSJK.js +3 -0
- package/dist/assets/{pt-BR-2KtO5Js1.js → pt-BR-D416seHT.js} +1 -1
- package/dist/assets/{pt-Bet5OOQf.js → pt-DwHBy9_c.js} +1 -1
- package/dist/assets/{ro-37U6sgzi.js → ro-DDf1X3Np.js} +1 -1
- package/dist/assets/{ru-CyuAY-5E.js → ru-8eM3mcgK.js} +1 -1
- package/dist/assets/{runtime-metadata-persistence-afAW-MeD.js → runtime-metadata-persistence-DX29lQ62.js} +1 -1
- package/dist/assets/{se-DeJabuC6.js → se-D4JvQeRX.js} +1 -1
- package/dist/assets/{sk-DWEpjfkR.js → sk-DvpgttGI.js} +1 -1
- package/dist/assets/{sl-4oSvNhIR.js → sl-B3gCZ-_a.js} +1 -1
- package/dist/assets/{sq-BjkBCaXW.js → sq-CVaTmL0V.js} +1 -1
- package/dist/assets/{sr-Dxm1DsRS.js → sr-CnH5Ffyz.js} +1 -1
- package/dist/assets/{sr-Latn-Dawg6oP2.js → sr-Latn-Dw9w61q6.js} +1 -1
- package/dist/assets/src-BUry7633.js +2 -0
- package/dist/assets/{src-C8NYjdVm.js → src-DMDT5a27.js} +1 -1
- package/dist/assets/src-ZxH3AOCu.js +16 -0
- package/dist/assets/{studioEntry-nXQP3iL0.js → studioEntry-DAqcBFtr.js} +1 -1
- package/dist/assets/{submitRedirect-jK-cEIbP.js → submitRedirect-iy0oOi7I.js} +1 -1
- package/dist/assets/{sv-CROOGJGz.js → sv-CU7wdxyK.js} +1 -1
- package/dist/assets/{ta-BZnTmFI_.js → ta-DPH6q0HR.js} +1 -1
- package/dist/assets/{te-BN0v0x5t.js → te-BSaThkGV.js} +1 -1
- package/dist/assets/{th-CBjKhp_U.js → th-NXP8_Qb8.js} +1 -1
- package/dist/assets/{tr-x0Ne4N4H.js → tr-DDXoH663.js} +1 -1
- package/dist/assets/types-zod-ChJ30y25.js +1 -0
- package/dist/assets/{ug-sgzNhsKo.js → ug-Guus6pPe.js} +1 -1
- package/dist/assets/ui-components-D8wcRNrt.js +37 -0
- package/dist/assets/ui-layout-BYO3rRIl.js +1 -0
- package/dist/assets/{uk-o_DQ5VHJ.js → uk-uiy4vsp8.js} +1 -1
- package/dist/assets/use-book-data-DFTswcKm.js +1 -0
- package/dist/assets/{useActionModal-CSvbHkQ7.js → useActionModal-h52Z5Pkl.js} +1 -1
- package/dist/assets/useCanAuthorMetadata-TDrVrYGB.js +1 -0
- package/dist/assets/useDatasetCatalog-BOd0Ybr1.js +1 -0
- package/dist/assets/useNavSelDeepLink-67Y4qCNO.js +1 -0
- package/dist/assets/useNavTargetLabel-D8lRdb6O.js +1 -0
- package/dist/assets/useOpenRecordList-C7oqUD3F.js +1 -0
- package/dist/assets/{usePackageL10n-CMx66am-.js → usePackageL10n-Jl2XiF2F.js} +1 -1
- package/dist/assets/{useSettingsLabel-Kkr2q0Oo.js → useSettingsLabel-CSpBDTdy.js} +1 -1
- package/dist/assets/{uz-Cyrl-DbtkQtz_.js → uz-Cyrl-Cmb5bvbf.js} +1 -1
- package/dist/assets/{uz-Be41d4jl.js → uz-DJWxoTz4.js} +1 -1
- package/dist/assets/vendor-objectstack-C4eD5dbT.js +139 -0
- package/dist/assets/{vi-84mZmklk.js → vi-Bb3QoIJC.js} +1 -1
- package/dist/assets/{zh-CN-DD1reegJ.js → zh-CN-C-Hts1ZR.js} +1 -1
- package/dist/assets/{zh-HK-B05u30WI.js → zh-HK-CtBAZ_ZS.js} +1 -1
- package/dist/assets/{zh-TW-Bb-WimPD.js → zh-TW-B7DDahD-.js} +1 -1
- package/dist/chunk-membership.json +116 -104
- package/dist/eager-closure.json +126 -120
- package/dist/index.html +4 -4
- package/dist/sdui.manifest.json +998 -115
- package/package.json +1 -1
- package/dist/assets/AppDocsIndex-F4zDq2zz.js +0 -1
- package/dist/assets/ApprovalsInboxPage-DrEUmaDb.js +0 -1
- package/dist/assets/CreateViewDialog-xyKlpLEW.js +0 -1
- package/dist/assets/DashboardView-CGC-_Om8.js +0 -1
- package/dist/assets/DocPage-CIZE5kdj.js +0 -1
- package/dist/assets/DocsSlug-DXdFdwlS.js +0 -1
- package/dist/assets/ExpressionProvider-DZfMwyMs.js +0 -1
- package/dist/assets/FlowRunsPage-CvY3nJMF.js +0 -1
- package/dist/assets/InterfaceListPage-BdECC_i3.js +0 -1
- package/dist/assets/MarketplacePackagePage-C7NOu2Ir.js +0 -4
- package/dist/assets/ObjectDataPage-BIzp65Mo.js +0 -1
- package/dist/assets/PageView-CVLgCRSF.js +0 -1
- package/dist/assets/ProfilePage-D2qGgxPK.js +0 -1
- package/dist/assets/RecordDetailView-DQKydU7X.js +0 -3
- package/dist/assets/RecordFormPage-BTjwxJIA.js +0 -1
- package/dist/assets/ReportDefaultInspector-DdsQAkd7.js +0 -1
- package/dist/assets/ReportView-GIdKJdOt.js +0 -2
- package/dist/assets/RuntimeDraftBar-BbMdi3Kp.js +0 -1
- package/dist/assets/SchemaForm-C8X1ve4p.js +0 -3
- package/dist/assets/SearchResultsPage-Jwhqsdyo.js +0 -1
- package/dist/assets/SettingsView-D8SMKdrc.js +0 -1
- package/dist/assets/app-shell-eager-leaves-CDVclng4.js +0 -1
- package/dist/assets/appRoute-DbnWDEa1.js +0 -1
- package/dist/assets/data-adapter-DMbe6Njk.js +0 -1
- package/dist/assets/default-inspector-registry-CpL3fFhl.js +0 -1
- package/dist/assets/dist-BXrEV1ag.js +0 -13
- package/dist/assets/drillUrlFilters-hi-2d3DW.js +0 -1
- package/dist/assets/en-AU-C6x7mDhH.js +0 -1
- package/dist/assets/en-GB-0-nho2eK.js +0 -1
- package/dist/assets/en-IE-2fC3BkfV.js +0 -1
- package/dist/assets/en-IN-C1QcFhxn.js +0 -1
- package/dist/assets/en-NZ-C80ptZT7.js +0 -1
- package/dist/assets/en-ZA-ByZDrjeb.js +0 -1
- package/dist/assets/framework-DcWkeiND.js +0 -35
- package/dist/assets/i18n-CEKxYdmD.js +0 -9
- package/dist/assets/i18n-locale-ar-DN7sl3GF.js +0 -4
- package/dist/assets/i18n-locale-de-C40JErvb.js +0 -4
- package/dist/assets/i18n-locale-en-CITPDIHy.js +0 -4
- package/dist/assets/i18n-locale-es-C8DdWN6c.js +0 -4
- package/dist/assets/i18n-locale-fr-COIdEZZl.js +0 -4
- package/dist/assets/i18n-locale-ja-DYF_rU_s.js +0 -4
- package/dist/assets/i18n-locale-ko-B-ODYAtX.js +0 -4
- package/dist/assets/i18n-locale-pt-CK1SyBIm.js +0 -4
- package/dist/assets/i18n-locale-ru-jLzvShMO.js +0 -4
- package/dist/assets/i18n-locale-zh-Bf9Gbbvl.js +0 -4
- package/dist/assets/i18n-runtime-CTgAQF4N.js +0 -1
- package/dist/assets/index-CLyvpiGc.css +0 -2
- package/dist/assets/index-CfnfGw5W.js +0 -20
- package/dist/assets/isSameWeek-DWYeNyh8.js +0 -1
- package/dist/assets/mermaid-GHXKKRXX-DVLc_uym.js +0 -1
- package/dist/assets/metadata-admin-CybaOCdO.js +0 -9
- package/dist/assets/nav-selection-Dzm_mA3C.js +0 -1
- package/dist/assets/plugin-calendar-CKRBcML7.js +0 -1
- package/dist/assets/plugin-charts-DGTJxXCB.js +0 -7
- package/dist/assets/plugin-chatbot-DwtwNA-y.js +0 -122
- package/dist/assets/plugin-dashboard-C1AYKmGX.js +0 -6
- package/dist/assets/plugin-form-CV8ZY04-.js +0 -1
- package/dist/assets/plugin-gantt-BRIb2_8G.js +0 -63
- package/dist/assets/plugin-grid-C9h7mRVv.js +0 -11
- package/dist/assets/plugin-kanban-BcJ0Dhys.js +0 -1
- package/dist/assets/plugin-map-D24ZUOUj.js +0 -1
- package/dist/assets/plugin-report-BfGintAq.js +0 -59
- package/dist/assets/plugin-timeline-CbBRq_qt.js +0 -1
- package/dist/assets/plugin-tree-BNX2A5J5.js +0 -1
- package/dist/assets/plugin-view-DzWQWYyH.js +0 -1
- package/dist/assets/plugins-views-DraK4xz0.js +0 -3
- package/dist/assets/src-B8lv0plz.js +0 -18
- package/dist/assets/src-DoDvT77T.js +0 -1
- package/dist/assets/types-zod-Y2RwUUeJ.js +0 -1
- package/dist/assets/ui-components-BTB1NkUW.js +0 -37
- package/dist/assets/ui-layout-bZfafwJa.js +0 -1
- package/dist/assets/use-book-data-C3eyZJSG.js +0 -1
- package/dist/assets/useOpenRecordList-B5-qaFUx.js +0 -1
- package/dist/assets/vendor-objectstack-XuWC71M9.js +0 -266
- package/dist/assets/vendor-zod-CHLW1iCr.js +0 -64
package/dist/sdui.manifest.json
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
{
|
|
8
8
|
"name": "objectName",
|
|
9
9
|
"type": "string",
|
|
10
|
-
"
|
|
10
|
+
"description": "Object this grid lists. Not required: the node's `dataSource` binding can name the object instead, and `dataSource.object` lands on this key, outranking an authored value. With neither, and no inline `data` rows, the grid shows an error saying an object name is required and fetches nothing."
|
|
11
11
|
},
|
|
12
12
|
{
|
|
13
13
|
"name": "columns",
|
|
@@ -21,8 +21,19 @@
|
|
|
21
21
|
},
|
|
22
22
|
{
|
|
23
23
|
"name": "label",
|
|
24
|
-
"type":
|
|
25
|
-
|
|
24
|
+
"type": [
|
|
25
|
+
"string",
|
|
26
|
+
"object"
|
|
27
|
+
],
|
|
28
|
+
"description": "Grid label, used as the table caption, as the export file title and in the record-detail overlay heading. The canonical spelling — the deprecated `title` is only read when this is absent. Accepts either a plain string or an inline per-locale map (`{ en: \"Accounts\", \"zh-CN\": \"客户\" }`) — the `I18nLabel` union the contract admits on this key — and the grid resolves the map against the display locale (the workspace's regional default when one is configured, otherwise the active UI language), falling back through base language, a region-qualified sibling, `default`, then `en`, and finally to any remaining entry."
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"name": "description",
|
|
32
|
+
"type": [
|
|
33
|
+
"string",
|
|
34
|
+
"object"
|
|
35
|
+
],
|
|
36
|
+
"description": "One line of help text drawn above the grid's rows, in muted type. Accepts either a plain string or an inline per-locale map (`{ en: \"Everyone you work with\", \"zh-CN\": \"你的所有联系人\" }`) — the `I18nLabel` union the contract admits on this key — resolved against the display locale the way `label` is. A map with no usable entry draws no line."
|
|
26
37
|
},
|
|
27
38
|
{
|
|
28
39
|
"name": "sort",
|
|
@@ -85,7 +96,12 @@
|
|
|
85
96
|
{
|
|
86
97
|
"name": "conditionalFormatting",
|
|
87
98
|
"type": "array",
|
|
88
|
-
"description": "Row
|
|
99
|
+
"description": "Row style rules, each `{ condition, style }` — a CEL `condition` over the row’s own `record.*` and a CSS `style` map, the rule a list view declares. The first matching rule styles that row. The native `{ field, operator, value }` rule, its `expression`, and a colour written beside `condition` instead of inside `style` are retired (objectui#11533)."
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
"name": "emptyState",
|
|
103
|
+
"type": "object",
|
|
104
|
+
"description": "What the grid draws in place of an empty table, `{ title, message, icon }`: a Lucide `icon` name, a `title` (default: the table's own \"No results found\") and a `message` (default: none). `title` and `message` each accept a plain string or an inline per-locale map, resolved against the display locale. Not drawn when a term typed into the grid's own server-side search box is what emptied it — the table and its search box stay, so the term can be cleared. Leave it out and an empty grid draws the table's own empty row."
|
|
89
105
|
},
|
|
90
106
|
{
|
|
91
107
|
"name": "grouping",
|
|
@@ -132,6 +148,11 @@
|
|
|
132
148
|
"type": "boolean",
|
|
133
149
|
"description": "With `editable`, a single click opens the cell instead of a double-click. Has no effect on a non-editable grid."
|
|
134
150
|
},
|
|
151
|
+
{
|
|
152
|
+
"name": "keyboardNavigation",
|
|
153
|
+
"type": "boolean",
|
|
154
|
+
"description": "Arrow-key cell navigation on the WAI-ARIA grid pattern: the grid's data cells take one place in the Tab order instead of one each (a link or button inside a cell keeps its own), and the arrow keys move focus between them (Home / End to the ends of the row, Ctrl+Home / Ctrl+End to the ends of the page). Enter still opens an editable cell, and an edit ended with Enter or Escape returns focus to its cell. Defaults to on when the grid renders editable; a read-only grid keeps every cell its own Tab stop unless this is `true`, and `false` turns it off on an editable grid."
|
|
155
|
+
},
|
|
135
156
|
{
|
|
136
157
|
"name": "navigation",
|
|
137
158
|
"type": "object",
|
|
@@ -162,7 +183,7 @@
|
|
|
162
183
|
{
|
|
163
184
|
"name": "objectName",
|
|
164
185
|
"type": "string",
|
|
165
|
-
"
|
|
186
|
+
"description": "Object this list view lists. Not required: the node's `dataSource` binding can name the object instead, and `dataSource.object` lands on this key, outranking an authored value. With neither, and no inline `data`, the list shows a hint naming this key instead of an empty list."
|
|
166
187
|
},
|
|
167
188
|
{
|
|
168
189
|
"name": "viewType",
|
|
@@ -237,12 +258,12 @@
|
|
|
237
258
|
{
|
|
238
259
|
"name": "objectName",
|
|
239
260
|
"type": "string",
|
|
240
|
-
"
|
|
261
|
+
"description": "Object this form creates or edits. Not required: the node's `dataSource` binding can name the object instead, and `dataSource.object` lands on this key, outranking an authored value. With neither, and no inline fields (non-empty `customFields`, or `sections` whose every field is inline), the form shows a hint naming this key instead of a form with no fields."
|
|
241
262
|
},
|
|
242
263
|
{
|
|
243
264
|
"name": "fields",
|
|
244
265
|
"type": "array",
|
|
245
|
-
"description": "Bare field names to show, in order (each looked up in the object schema
|
|
266
|
+
"description": "Bare field names to show, in order (each looked up in the object schema). NOT the same vocabulary as `sections[].fields`, which also accepts the spec `FormFieldSchema` object (identity key `field`, e.g. `{ field: \"note\", colSpan: 2 }`) — that shape resolves to no name HERE and is silently skipped (SimpleObjectForm in ObjectForm.tsx; buildFlatFields in flatFields.ts for the drawer/modal presentations)."
|
|
246
267
|
},
|
|
247
268
|
{
|
|
248
269
|
"name": "mode",
|
|
@@ -271,21 +292,28 @@
|
|
|
271
292
|
},
|
|
272
293
|
{
|
|
273
294
|
"name": "title",
|
|
274
|
-
"type":
|
|
295
|
+
"type": [
|
|
296
|
+
"string",
|
|
297
|
+
"object"
|
|
298
|
+
],
|
|
299
|
+
"description": "Heading of the drawer and modal presentations (`formType: \"drawer\"` / `\"modal\"`). Accepts either a plain string or an inline per-locale map (`{ en: \"New order\", \"zh-CN\": \"新建订单\" }`) — the `I18nLabel` union the contract admits on this key — and the form resolves the map against the active UI language, falling back through base language, a region-qualified sibling, `default`, then `en`, and finally to any remaining entry."
|
|
275
300
|
},
|
|
276
301
|
{
|
|
277
302
|
"name": "description",
|
|
278
|
-
"type":
|
|
303
|
+
"type": [
|
|
304
|
+
"string",
|
|
305
|
+
"object"
|
|
306
|
+
],
|
|
307
|
+
"description": "Subtitle under the drawer and modal heading. Accepts either a plain string or an inline per-locale map (`{ en: \"Enter the order details\", \"zh-CN\": \"填写订单信息\" }`), resolved against the active UI language with the same fallback chain as `title`."
|
|
279
308
|
},
|
|
280
309
|
{
|
|
281
310
|
"name": "layout",
|
|
282
311
|
"type": "enum",
|
|
283
312
|
"enum": [
|
|
284
313
|
"vertical",
|
|
285
|
-
"horizontal"
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
]
|
|
314
|
+
"horizontal"
|
|
315
|
+
],
|
|
316
|
+
"description": "Label placement: `vertical` puts each label above its field (the default), `horizontal` beside it."
|
|
289
317
|
},
|
|
290
318
|
{
|
|
291
319
|
"name": "columns",
|
|
@@ -357,7 +385,7 @@
|
|
|
357
385
|
{
|
|
358
386
|
"name": "modalCloseButton",
|
|
359
387
|
"type": "boolean",
|
|
360
|
-
"description": "Show the modal presentation’s close button.
|
|
388
|
+
"description": "Show the modal presentation’s close (X) button. Default `true`; `false` hides it. Forwarded by `ObjectForm`’s modal route and honoured by `ModalForm` on both of its dialog arms. With the button hidden the modal still closes on Escape, and on the Cancel action when that is shown."
|
|
361
389
|
},
|
|
362
390
|
{
|
|
363
391
|
"name": "contentLayout",
|
|
@@ -366,7 +394,7 @@
|
|
|
366
394
|
"simple",
|
|
367
395
|
"tabbed"
|
|
368
396
|
],
|
|
369
|
-
"description": "How the modal presentation lays out sections. `tabbed`
|
|
397
|
+
"description": "How the modal presentation lays out sections. `tabbed` differs from `simple` only when more than one section has a field to show (`ModalForm` tests `schema.contentLayout === \"tabbed\" && groups.length > 1`)."
|
|
370
398
|
},
|
|
371
399
|
{
|
|
372
400
|
"name": "confirmOnDiscard",
|
|
@@ -400,21 +428,35 @@
|
|
|
400
428
|
},
|
|
401
429
|
{
|
|
402
430
|
"name": "submitText",
|
|
403
|
-
"type":
|
|
431
|
+
"type": [
|
|
432
|
+
"string",
|
|
433
|
+
"object"
|
|
434
|
+
],
|
|
435
|
+
"description": "Label of the Save button. A map no locale limb resolves shows the default label. Accepts either a plain string or an inline per-locale map (`{ en: \"Save order\", \"zh-CN\": \"保存订单\" }`), resolved against the active UI language with the same fallback chain as `title`."
|
|
404
436
|
},
|
|
405
437
|
{
|
|
406
438
|
"name": "cancelText",
|
|
407
|
-
"type":
|
|
439
|
+
"type": [
|
|
440
|
+
"string",
|
|
441
|
+
"object"
|
|
442
|
+
],
|
|
443
|
+
"description": "Label of the Cancel button. Accepts either a plain string or an inline per-locale map (`{ en: \"Back\", \"zh-CN\": \"返回\" }`), resolved against the active UI language with the same fallback chain as `title`."
|
|
408
444
|
},
|
|
409
445
|
{
|
|
410
446
|
"name": "nextText",
|
|
411
|
-
"type":
|
|
412
|
-
|
|
447
|
+
"type": [
|
|
448
|
+
"string",
|
|
449
|
+
"object"
|
|
450
|
+
],
|
|
451
|
+
"description": "Label of the next-step button (wizard). Accepts either a plain string or an inline per-locale map (`{ en: \"Continue\", \"zh-CN\": \"继续\" }`), resolved against the active UI language with the same fallback chain as `title`."
|
|
413
452
|
},
|
|
414
453
|
{
|
|
415
454
|
"name": "prevText",
|
|
416
|
-
"type":
|
|
417
|
-
|
|
455
|
+
"type": [
|
|
456
|
+
"string",
|
|
457
|
+
"object"
|
|
458
|
+
],
|
|
459
|
+
"description": "Label of the previous-step button (wizard). Accepts either a plain string or an inline per-locale map (`{ en: \"Previous\", \"zh-CN\": \"上一步\" }`), resolved against the active UI language with the same fallback chain as `title`."
|
|
418
460
|
},
|
|
419
461
|
{
|
|
420
462
|
"name": "showSubmit",
|
|
@@ -435,8 +477,11 @@
|
|
|
435
477
|
},
|
|
436
478
|
{
|
|
437
479
|
"name": "successMessage",
|
|
438
|
-
"type":
|
|
439
|
-
|
|
480
|
+
"type": [
|
|
481
|
+
"string",
|
|
482
|
+
"object"
|
|
483
|
+
],
|
|
484
|
+
"description": "Toast shown after a successful submit. Ignored when `submitBehavior` or `navigateOnSuccess` is set. Accepts either a plain string or an inline per-locale map (`{ en: \"Order saved\", \"zh-CN\": \"订单已保存\" }`), resolved against the active UI language with the same fallback chain as `title`."
|
|
440
485
|
},
|
|
441
486
|
{
|
|
442
487
|
"name": "navigateOnSuccess",
|
|
@@ -473,7 +518,7 @@
|
|
|
473
518
|
{
|
|
474
519
|
"name": "objectName",
|
|
475
520
|
"type": "string",
|
|
476
|
-
"
|
|
521
|
+
"description": "Object the form creates a record in. Not required: the node's `dataSource` binding can name the object instead, and `dataSource.object` lands on this key, outranking an authored value. With neither, the form shows a hint naming this key instead of a form that cannot submit."
|
|
477
522
|
},
|
|
478
523
|
{
|
|
479
524
|
"name": "title",
|
|
@@ -486,7 +531,7 @@
|
|
|
486
531
|
{
|
|
487
532
|
"name": "fields",
|
|
488
533
|
"type": "array",
|
|
489
|
-
"description": "Bare field names to show, in order (each looked up in the object schema
|
|
534
|
+
"description": "Bare field names to show, in order (each looked up in the object schema). NOT the same vocabulary as `sections[].fields`, which also accepts the spec `FormFieldSchema` object (identity key `field`, e.g. `{ field: \"note\", colSpan: 2 }`) — that shape resolves to no name HERE and is silently skipped (`EmbeddableForm` passes this array straight through to `<ObjectForm>` with no `sections`, so it renders through the same `SimpleObjectForm` as `object-form` above — see its `fields` description)."
|
|
490
535
|
},
|
|
491
536
|
{
|
|
492
537
|
"name": "allowMultiple",
|
|
@@ -507,7 +552,7 @@
|
|
|
507
552
|
{
|
|
508
553
|
"name": "objectName",
|
|
509
554
|
"type": "string",
|
|
510
|
-
"
|
|
555
|
+
"description": "The PARENT object this form creates or edits. Not required: the node's `dataSource` binding can name the object instead, and `dataSource.object` lands on this key, outranking an authored value. With neither, the form shows a hint naming this key instead of an empty parent form."
|
|
511
556
|
},
|
|
512
557
|
{
|
|
513
558
|
"name": "mode",
|
|
@@ -524,7 +569,9 @@
|
|
|
524
569
|
{
|
|
525
570
|
"name": "details",
|
|
526
571
|
"type": "array",
|
|
527
|
-
"
|
|
572
|
+
"of": "object",
|
|
573
|
+
"required": true,
|
|
574
|
+
"description": "The child collections, one OBJECT per entry, judged by the spec's closed `details` entry: `childObject` (required) names the child object; `relationshipField` is the FK on the child back to the parent, derived from the child's metadata when omitted; `columns` are the line grid's columns as the spec's inline grid column objects (`{ name, … }`, never a bare field name), derived from the child's fields when omitted; `formFields` names the per-row form's fields; `inlineMode` is `grid` (editable cells) or `form` (list + per-row form); `amountField` is the CHILD column summed and `totalField` the PARENT field that sum is saved to; `title`, `minRows`, `maxRows` and `addLabel` dress the section and its grid. An undeclared member key is refused by name. The entry's `sortField` is read by nothing here — the line-position field is derived from the child object (objectui#11070) — and objectstack retires the key on its `main` (objectstack-ai/objectstack#21589, after 17.6.0)."
|
|
528
575
|
},
|
|
529
576
|
{
|
|
530
577
|
"name": "recordId",
|
|
@@ -543,20 +590,31 @@
|
|
|
543
590
|
{
|
|
544
591
|
"name": "fields",
|
|
545
592
|
"type": "array",
|
|
546
|
-
"description": "Which parent fields to show, in order — and it is NOT ignored when `sections` is given: the two INTERSECT. The parent field pool is built from this key first and every section then resolves its
|
|
593
|
+
"description": "Which parent fields to show, in order — and it is NOT ignored when `sections` is given: the two INTERSECT. The parent field pool is built from this key first and every section then resolves its NAMED members (a bare name, or the `{ field }` entry) against that pool, so such a member this key does not list is dropped from the rendered form, and a section that loses EVERY member that way disappears with its heading. An inline field entry (`{ name, type, … }`) names nothing to resolve and is drawn whatever this key lists, as on every form type (objectui#11615). Each such drop is reported once via `console.warn` (objectui#9884); it is not repaired, because this key bounds what the form DRAWS and edits, not what Save writes: on a create, the submitted set is the drawn fields plus any parent value seeded through `initialValues` (or its alternate spelling `initialData`), drawn or not. A seed for an undeclared, server-owned, computed or read-only field is still stripped, as on any save. Author one or the other, or list every section member here too. Members are bare field names; NOT the spec `FormFieldSchema` object `sections[].fields` accepts (identity key `field`) — that shape resolves to no name here and is silently skipped (the parent form renders through the same `ObjectForm` / `SimpleObjectForm` as `object-form` — see its `fields` description)."
|
|
547
594
|
},
|
|
548
595
|
{
|
|
549
596
|
"name": "title",
|
|
550
|
-
"type":
|
|
597
|
+
"type": [
|
|
598
|
+
"string",
|
|
599
|
+
"object"
|
|
600
|
+
],
|
|
601
|
+
"description": "Names the record in the built-in \"… saved\" toast after an edit save, which shows only when the host supplies no `onSuccess`. Accepts either a plain string or an inline per-locale map (`{ en: \"Purchase order\", \"zh-CN\": \"采购单\" }`) — the `I18nLabel` union the contract admits on this key — and the renderer resolves the map against the active UI language, falling back through base language, a region-qualified sibling, `default`, then `en`, and finally to any remaining entry."
|
|
551
602
|
},
|
|
552
603
|
{
|
|
553
604
|
"name": "submitText",
|
|
554
|
-
"type":
|
|
555
|
-
|
|
605
|
+
"type": [
|
|
606
|
+
"string",
|
|
607
|
+
"object"
|
|
608
|
+
],
|
|
609
|
+
"description": "Label of the button that saves the parent and every detail row in one batch. Defaults to \"Save\" when editing a record (`mode: \"edit\"` with a `recordId`) and to \"Create\" otherwise, in the active UI language; an empty string, or a map no locale limb resolves, shows the default too. Accepts either a plain string or an inline per-locale map (`{ en: \"Save order\", \"zh-CN\": \"保存订单\" }`), resolved against the active UI language with the same fallback chain as `title`."
|
|
556
610
|
},
|
|
557
611
|
{
|
|
558
612
|
"name": "cancelText",
|
|
559
|
-
"type":
|
|
613
|
+
"type": [
|
|
614
|
+
"string",
|
|
615
|
+
"object"
|
|
616
|
+
],
|
|
617
|
+
"description": "Label of the Cancel button, which renders only when the host supplies an `onCancel` callback (a runtime slot, not authorable in a JSON document). Defaults to \"Cancel\", in the active UI language; an empty string, or a map no locale limb resolves, shows the default too. Accepts either a plain string or an inline per-locale map (`{ en: \"Back\", \"zh-CN\": \"返回\" }`), resolved against the active UI language with the same fallback chain as `title`."
|
|
560
618
|
},
|
|
561
619
|
{
|
|
562
620
|
"name": "showSubmit",
|
|
@@ -592,7 +650,7 @@
|
|
|
592
650
|
{
|
|
593
651
|
"name": "objectName",
|
|
594
652
|
"type": "string",
|
|
595
|
-
"
|
|
653
|
+
"description": "Object this board lists. Not required: the node's `dataSource` binding can name the object instead, and `dataSource.object` lands on this key, outranking an authored value. With neither, and no rows from `data`, `bind` or a parent view, the board shows a hint naming this key instead of an empty board."
|
|
596
654
|
},
|
|
597
655
|
{
|
|
598
656
|
"name": "columns",
|
|
@@ -651,7 +709,12 @@
|
|
|
651
709
|
{
|
|
652
710
|
"name": "conditionalFormatting",
|
|
653
711
|
"type": "array",
|
|
654
|
-
"description": "Per-card style rules, each
|
|
712
|
+
"description": "Per-card style rules, each `{ condition, style }` — a CEL `condition` over the card’s own `record.*` and a CSS `style` map, the rule a list view declares. The first matching rule styles that card alone. A rule comparing a relation field sees the stored foreign key rather than the expanded record. The native `{ field, operator, value }` rule and a colour written beside `condition` instead of inside `style` are retired and refused by name (objectui#11522)."
|
|
713
|
+
},
|
|
714
|
+
{
|
|
715
|
+
"name": "navigation",
|
|
716
|
+
"type": "object",
|
|
717
|
+
"description": "What a card click opens — the `{ mode, size, openNewTab, preventNavigation }` block a list view declares. With the key ABSENT a click opens the record in a drawer. `mode` is an overlay (`drawer`, `modal`, `split`, `popover`), `new_window`, `page` or `none`, and a block written without `mode` takes the spec’s `page` default. `page` opens the record page through the record navigator the host publishes (the console publishes one on its custom pages, record pages and list views); under a host that publishes none, such as an embedded renderer, there is no record page to open and the click opens nothing. `openNewTab: true` opens the record page in a new tab and outranks every mode except `none`, `preventNavigation: true` opens nothing, and `size` sets the overlay width. A click handler from a parent view outranks the whole key."
|
|
655
718
|
},
|
|
656
719
|
{
|
|
657
720
|
"name": "dataSource",
|
|
@@ -668,7 +731,7 @@
|
|
|
668
731
|
{
|
|
669
732
|
"name": "objectName",
|
|
670
733
|
"type": "string",
|
|
671
|
-
"description": "ObjectQL object name. The record source is one of `data`, `staticData` and `objectName`; the `object-calendar` schema refuses a block that declares none of them."
|
|
734
|
+
"description": "ObjectQL object name. The record source is one of `data`, `staticData` and `objectName`; the `object-calendar` schema refuses a block that declares none of them, unless the node's `dataSource.object` names the object, which then lands on this key."
|
|
672
735
|
},
|
|
673
736
|
{
|
|
674
737
|
"name": "calendar",
|
|
@@ -715,6 +778,11 @@
|
|
|
715
778
|
"type": "boolean",
|
|
716
779
|
"description": "External loading state, honoured ONLY alongside an array `data`: it then replaces the calendar with its loading placeholder. On a calendar fed by `staticData` or by `objectName` it is dropped, because that calendar owns its own loading state."
|
|
717
780
|
},
|
|
781
|
+
{
|
|
782
|
+
"name": "navigation",
|
|
783
|
+
"type": "object",
|
|
784
|
+
"description": "What an event click opens — the `{ mode, size, openNewTab, preventNavigation }` block a list view declares. With the key ABSENT a click opens the record in a drawer. `mode` is an overlay (`drawer`, `modal`, `split`, `popover`), `new_window`, `page` or `none`, and a block written without `mode` takes the spec’s `page` default. `page` opens the record page through the record navigator the host publishes (the console publishes one on its custom pages, record pages and list views); under a host that publishes none, such as an embedded renderer, there is no record page to open and the click opens nothing. `openNewTab: true` opens the record page in a new tab and outranks every mode except `none`, `preventNavigation: true` opens nothing, and `size` sets the overlay width. An overlay mode wins over a parent view’s click handler; any other mode hands the click to it."
|
|
785
|
+
},
|
|
718
786
|
{
|
|
719
787
|
"name": "dataSource",
|
|
720
788
|
"type": "object",
|
|
@@ -730,12 +798,12 @@
|
|
|
730
798
|
{
|
|
731
799
|
"name": "objectName",
|
|
732
800
|
"type": "string",
|
|
733
|
-
"description": "ObjectQL object name. The record source is one of `data`, `staticData` and `objectName`; the `object-gantt` schema refuses a block that declares none of them."
|
|
801
|
+
"description": "ObjectQL object name. The record source is one of `data`, `staticData` and `objectName`; the `object-gantt` schema refuses a block that declares none of them, unless the node's `dataSource.object` names the object, which then lands on this key."
|
|
734
802
|
},
|
|
735
803
|
{
|
|
736
804
|
"name": "gantt",
|
|
737
805
|
"type": "object",
|
|
738
|
-
"description": "
|
|
806
|
+
"description": "Gantt-timeline configuration, the author face — the same block `ListViewSchema.gantt` declares, and the one the renderer validates this node against. Taken WHOLE when present: the flat top-level spelling beside it is ignored. The spec requires `startDateField`, `endDateField` and `titleField`, which name the record fields a task's bar starts at, ends at and is titled by; the other members (`progressField`, `colorField`, `dependenciesField`, `parentField`, `viewMode`, `exportFileName`, …) are optional."
|
|
739
807
|
},
|
|
740
808
|
{
|
|
741
809
|
"name": "data",
|
|
@@ -747,6 +815,75 @@
|
|
|
747
815
|
"type": "array",
|
|
748
816
|
"description": "Inline records, read SECOND on the record-source ladder: a `data` configuration wins and this key is then never reached, while `objectName` is read AFTER it, so a gantt carrying both charts these rows and never queries that object. `filter` and `sort` narrow and order these rows exactly as they do fetched ones."
|
|
749
817
|
},
|
|
818
|
+
{
|
|
819
|
+
"name": "filter",
|
|
820
|
+
"type": "array",
|
|
821
|
+
"description": "Base query filter in the rule-array form `[{ field, operator, value }, ...]`, narrowing the tasks the gantt charts — from every record source it reads: the object, an `api` request, or inline rows. Context tokens such as `{current_user_id}` are resolved first, then the filter is lowered to `$filter` on the query. The MongoDB-style record form is not this key’s shape."
|
|
822
|
+
},
|
|
823
|
+
{
|
|
824
|
+
"name": "sort",
|
|
825
|
+
"type": "array",
|
|
826
|
+
"description": "Task order in `[{ field, order }]` form, ordering the rows the gantt charts. Lowered to `$orderby` on the same query."
|
|
827
|
+
},
|
|
828
|
+
{
|
|
829
|
+
"name": "navigation",
|
|
830
|
+
"type": "object",
|
|
831
|
+
"description": "What a task click opens — the `{ mode, size, openNewTab, preventNavigation }` block a list view declares. With the key ABSENT a click opens the task's record in a drawer, this renderer's own default. `mode` is an overlay (`drawer`, `modal`, `split`, `popover`), `new_window`, `page` or `none`, and a block written without `mode` takes the spec's `page` default. `drawer`, `modal` and `popover` open the task's record in that overlay, and `split` opens it beside the chart, which stays drawn; `none` opens nothing. `page` opens the task's record page in the same tab and `new_window` opens it in a new tab. The gantt builds that address itself from the page it is on and does not use a record navigator the host publishes, so a host that publishes one changes nothing: on the object's own list or view route (`…/OBJECT/view/VIEW`) the address is the record page `…/OBJECT/record/ID`, while on any other page, such as a custom page, `/OBJECT/record/ID` is appended to the current address. The object is `data.object` when `data` is the object provider, else `objectName`; on inline rows that name neither there is no record to open, and every mode, the default drawer included, opens nothing. `preventNavigation: true` opens nothing whatever the mode, `openNewTab: true` opens the record page in a new tab and outranks every mode except `none`, and `size` sets the overlay width."
|
|
832
|
+
},
|
|
833
|
+
{
|
|
834
|
+
"name": "label",
|
|
835
|
+
"type": [
|
|
836
|
+
"string",
|
|
837
|
+
"object"
|
|
838
|
+
],
|
|
839
|
+
"description": "Gantt label — the second link of the exported PNG/PDF file-name chain, after `gantt.exportFileName` and before the bound object's own label. A string is used as written, and an inline locale map (`{ en, \"zh-CN\", … }`) gives the entry for the display locale. The chart draws it nowhere else."
|
|
840
|
+
},
|
|
841
|
+
{
|
|
842
|
+
"name": "skipWeekends",
|
|
843
|
+
"type": "boolean",
|
|
844
|
+
"description": "Measure duration and auto-schedule math in WORKING days, skipping Saturdays and Sundays. The day view also folds the Saturday and Sunday columns out of its axis."
|
|
845
|
+
},
|
|
846
|
+
{
|
|
847
|
+
"name": "holidays",
|
|
848
|
+
"type": "array",
|
|
849
|
+
"of": "string",
|
|
850
|
+
"description": "Additional non-working dates for the working calendar, ISO `yyyy-mm-dd` strings; folded into a Set for the duration math. A non-empty list turns the working calendar on by itself, without `skipWeekends`, and the day view folds each listed date's column out of its axis."
|
|
851
|
+
},
|
|
852
|
+
{
|
|
853
|
+
"name": "persistLayout",
|
|
854
|
+
"type": "boolean",
|
|
855
|
+
"description": "Opt OUT of layout and filter-chip persistence — only an explicit `false` disables it; the storage key is `objectName:viewName`. The object half is `objectName`, else `data.object`, and `gantt` on inline rows that name neither. With `false` the toolbar has no save-layout button and nothing is stored."
|
|
856
|
+
},
|
|
857
|
+
{
|
|
858
|
+
"name": "viewName",
|
|
859
|
+
"type": "string",
|
|
860
|
+
"description": "Layout-persistence scope, the second half of the `objectName:viewName` storage key (renderer default `'default'`). Two gantts on the same object with different names keep separate saved layouts, and a gantt restores only the layout saved under its own name."
|
|
861
|
+
},
|
|
862
|
+
{
|
|
863
|
+
"name": "markers",
|
|
864
|
+
"type": "array",
|
|
865
|
+
"description": "Extra vertical reference lines drawn like the Today marker ({ date, label?, color? }). `date` places the line, and a date outside the chart's range draws none; `label` is the text drawn against it; `color` is its CSS colour, the theme's primary colour when omitted."
|
|
866
|
+
},
|
|
867
|
+
{
|
|
868
|
+
"name": "criticalPath",
|
|
869
|
+
"type": "boolean",
|
|
870
|
+
"description": "Seed the critical-path highlight ON; the toolbar toggle stays available either way"
|
|
871
|
+
},
|
|
872
|
+
{
|
|
873
|
+
"name": "showBaselines",
|
|
874
|
+
"type": "boolean",
|
|
875
|
+
"description": "Render the planned-vs-actual baseline bars — ON unless an explicit `false` disables it. A task draws one only when `gantt.baselineStartField` and `gantt.baselineEndField` give it both baseline dates."
|
|
876
|
+
},
|
|
877
|
+
{
|
|
878
|
+
"name": "readOnly",
|
|
879
|
+
"type": "boolean",
|
|
880
|
+
"description": "Disable every write path on this gantt and lock the record drawer. A task click still opens the record, read-only."
|
|
881
|
+
},
|
|
882
|
+
{
|
|
883
|
+
"name": "mobileReadOnly",
|
|
884
|
+
"type": "boolean",
|
|
885
|
+
"description": "Auto read-only on narrow viewports — ON unless an explicit `false` disables it. Narrow is under 640px: the chart's own width once it is measured, the viewport's until then. A narrow chart's own write paths are gated as under `readOnly`, read-only badge included, but the record drawer is locked by `readOnly` alone, so a task's record still opens writable. `false` keeps a narrow chart editable, and `readOnly: true` locks the chart and the drawer at any width."
|
|
886
|
+
},
|
|
750
887
|
{
|
|
751
888
|
"name": "dataSource",
|
|
752
889
|
"type": "object",
|
|
@@ -762,7 +899,7 @@
|
|
|
762
899
|
{
|
|
763
900
|
"name": "objectName",
|
|
764
901
|
"type": "string",
|
|
765
|
-
"
|
|
902
|
+
"description": "Object this timeline binds to. Optional because the component-level `dataSource` binding can supply the object instead — this block registers through `ElementDataSourceGate`, which lowers the binding onto this key before the renderer sees the node. A timeline drawn from `items`, `data` or a `bind` path issues no query and needs none to draw, but `navigation` still reads it: without it `page` opens nothing and `new_window` / `openNewTab` open no record page."
|
|
766
903
|
},
|
|
767
904
|
{
|
|
768
905
|
"name": "variant",
|
|
@@ -773,6 +910,76 @@
|
|
|
773
910
|
"gantt"
|
|
774
911
|
]
|
|
775
912
|
},
|
|
913
|
+
{
|
|
914
|
+
"name": "filter",
|
|
915
|
+
"type": "array",
|
|
916
|
+
"description": "Base query filter in the rule-array form `[{ field, operator, value }, ...]`, narrowing the records the timeline fetches. Context tokens such as `{current_user_id}` are resolved first, then the filter is lowered to `$filter` on the query. Authored `items` or `data` suppress that query, so the key then narrows nothing. The MongoDB-style record form is not this key’s shape."
|
|
917
|
+
},
|
|
918
|
+
{
|
|
919
|
+
"name": "sort",
|
|
920
|
+
"type": "array",
|
|
921
|
+
"description": "Order of the records the timeline fetches, in `[{ field, order }]` form, lowered to `$orderby` on the same query. The rail draws entries composed from records by their start date, earliest first, whatever this order. Authored `items` or `data` suppress the query, so the key then orders nothing."
|
|
922
|
+
},
|
|
923
|
+
{
|
|
924
|
+
"name": "navigation",
|
|
925
|
+
"type": "object",
|
|
926
|
+
"description": "What an entry click opens — the `{ mode, size, openNewTab, preventNavigation }` block a list view declares. With the key ABSENT a click opens nothing: this renderer supplies no drawer default. `mode` is an overlay (`drawer`, `modal`, `split`, `popover`), `new_window`, `page` or `none`, and a block written without `mode` takes the spec’s `page` default. `drawer`, `modal` and `popover` open the entry’s record in that overlay, but `split` opens nothing, because the timeline hands the split shell no main panel; `new_window` opens the record page in a new tab; `none` opens nothing. `page` opens the record page of the timeline’s `objectName` through the record navigator the host publishes (the console publishes one on its custom pages, record pages and list views); under a host that publishes none, such as an embedded renderer, or on a timeline that names no `objectName`, there is no record page to open and the click opens nothing. `preventNavigation: true` opens nothing whatever the mode, `openNewTab: true` opens the record page in a new tab and outranks every mode except `none`, and `size` sets the overlay width. On a timeline that names no `objectName`, `new_window` and `openNewTab` open no record page either: the new tab’s address is a slash and the entry’s `id` alone (its `_id` when it has no `id`, `undefined` when it has neither). A click handler from a parent view outranks the whole key."
|
|
927
|
+
},
|
|
928
|
+
{
|
|
929
|
+
"name": "timeline",
|
|
930
|
+
"type": "object",
|
|
931
|
+
"description": "Timeline configuration, the author face — the same block `ListViewSchema.timeline` declares: { startDateField, endDateField, titleField, groupByField, colorField, scale }. The flat top-level spellings beside it are the runtime handoff, not a second authoring spelling. On entries composed from records, `startDateField` is the entry’s date, `endDateField` the end printed after it, `titleField` the title, `groupByField` the field whose value heads each group (without it, entries group into date buckets), and `colorField` the field whose option colour, or the value itself when it is a colour literal, paints the marker. Each outranks the flat key of the same binding, and `titleField` / `startDateField` outrank `mapping`’s `title` / `date`. `scale` sets the axis unit of the gantt branch, which on this block draws authored `items` only."
|
|
932
|
+
},
|
|
933
|
+
{
|
|
934
|
+
"name": "limit",
|
|
935
|
+
"type": "number",
|
|
936
|
+
"description": "Maximum number of records loaded onto the rail (row cap); lowered to the query's top-level `$top` (renderer default 100). A timeline renders one rail with no pagination control, so this is the author's window rather than a page size. A value that is not a positive integer is ignored with a console warning, and the default cap applies."
|
|
937
|
+
},
|
|
938
|
+
{
|
|
939
|
+
"name": "data",
|
|
940
|
+
"type": "array",
|
|
941
|
+
"description": "Pre-fetched records — read FIRST as the rail's row source, ahead of the data-scope binding and the fetch, and composed into entries through the same `timeline` field bindings a fetched row takes; authoring it suppresses the object query entirely. Distinct from `items`, which is the already-composed entry shape and wins over this key when both are written."
|
|
942
|
+
},
|
|
943
|
+
{
|
|
944
|
+
"name": "items",
|
|
945
|
+
"type": "array",
|
|
946
|
+
"description": "Static inline entries — read ahead of every record source, `data` above included, and bypasses the object query entirely (the renderer becomes a pass-through). Each element is objectui's declared timeline element, `@object-ui/types`'s `TimelineFeedItem` (`variant` absent / `vertical` / `horizontal`) or `TimelineGanttItem` (`variant: 'gantt'`), the arm this node's `variant` selects. They are drawn as written: the `timeline` block’s field bindings, `mapping` and `descriptionField` do not apply to them."
|
|
947
|
+
},
|
|
948
|
+
{
|
|
949
|
+
"name": "dateFormat",
|
|
950
|
+
"type": "enum",
|
|
951
|
+
"enum": [
|
|
952
|
+
"short",
|
|
953
|
+
"long",
|
|
954
|
+
"iso"
|
|
955
|
+
],
|
|
956
|
+
"description": "How each entry's date is rendered (renderer default `short`): `short` / `long` are locale-formatted, `iso` is the locale-free machine form."
|
|
957
|
+
},
|
|
958
|
+
{
|
|
959
|
+
"name": "rowLabel",
|
|
960
|
+
"type": "string",
|
|
961
|
+
"description": "Header label for the gantt row column — read by the gantt branch only, which on this block needs authored `items`. Without it the header shows the default label."
|
|
962
|
+
},
|
|
963
|
+
{
|
|
964
|
+
"name": "minDate",
|
|
965
|
+
"type": "string",
|
|
966
|
+
"description": "Pin the gantt axis start (ISO `yyyy-mm-dd`) instead of deriving it from the rows; only a non-empty value is honoured. A value that is not a date, or a `minDate` after `maxDate`, refuses the chart with a diagnostic naming it."
|
|
967
|
+
},
|
|
968
|
+
{
|
|
969
|
+
"name": "maxDate",
|
|
970
|
+
"type": "string",
|
|
971
|
+
"description": "Pin the gantt axis end (ISO `yyyy-mm-dd`) instead of deriving it from the rows; only a non-empty value is honoured. A value that is not a date, or a `maxDate` before `minDate`, refuses the chart with a diagnostic naming it."
|
|
972
|
+
},
|
|
973
|
+
{
|
|
974
|
+
"name": "descriptionField",
|
|
975
|
+
"type": "string",
|
|
976
|
+
"description": "Field rendered as each entry's description (renderer default `description`). It is declared flat because the `timeline` block has no member for it, and `mapping.description` outranks it when both are written."
|
|
977
|
+
},
|
|
978
|
+
{
|
|
979
|
+
"name": "mapping",
|
|
980
|
+
"type": "object",
|
|
981
|
+
"description": "Record-to-entry field mapping ({ title, date, description, variant }) — the objectui-side binding record read BETWEEN the `timeline` block and the flat fallbacks. Its `variant` member (the field whose value picks each marker colour, renderer default `variant`) is the only spelling that binding has. On the vertical rail a colour that `timeline.colorField` resolves for an entry outranks that marker colour."
|
|
982
|
+
},
|
|
776
983
|
{
|
|
777
984
|
"name": "dataSource",
|
|
778
985
|
"type": "object",
|
|
@@ -788,12 +995,12 @@
|
|
|
788
995
|
{
|
|
789
996
|
"name": "objectName",
|
|
790
997
|
"type": "string",
|
|
791
|
-
"description": "ObjectQL object name. The record source is one of `data`, `staticData` and `objectName
|
|
998
|
+
"description": "ObjectQL object name. The record source is one of `data`, `staticData` and `objectName`, or the node’s `dataSource` binding; the `object-map` schema refuses a block that declares none of them."
|
|
792
999
|
},
|
|
793
1000
|
{
|
|
794
1001
|
"name": "map",
|
|
795
1002
|
"type": "object",
|
|
796
|
-
"description": "latitudeField
|
|
1003
|
+
"description": "The field configuration: `latitudeField` / `longitudeField` (or one `locationField` holding a `\"lat,lng\"` string, a `{ lat, lng }` object or a `[lat, lng]` pair) place each record’s marker, and a record with no readable coordinates is not plotted; `titleField` and `descriptionField` name what the marker popup shows; `zoom` and `center` (`[latitude, longitude]`) set the initial camera, which otherwise fits the markers; `style` is a MapLibre style URL, read after the node’s `mapStyle`."
|
|
797
1004
|
},
|
|
798
1005
|
{
|
|
799
1006
|
"name": "data",
|
|
@@ -805,6 +1012,31 @@
|
|
|
805
1012
|
"type": "array",
|
|
806
1013
|
"description": "Inline records, read SECOND on the record-source ladder: a `data` configuration wins and this key is then never reached, while `objectName` is read AFTER it, so a map carrying both plots these rows and never queries that object. `filter` and `sort` narrow and order these rows exactly as they do fetched ones."
|
|
807
1014
|
},
|
|
1015
|
+
{
|
|
1016
|
+
"name": "filter",
|
|
1017
|
+
"type": "array",
|
|
1018
|
+
"description": "Base query filter in the rule-array form `[{ field, operator, value }, ...]`, narrowing the markers the map plots — fetched rows and inline (`staticData`, `{ provider: 'value' }`) rows alike. Context tokens such as `{current_user_id}` are resolved first, then the filter is lowered to `$filter` on the query. The MongoDB-style record form is not this key’s shape."
|
|
1019
|
+
},
|
|
1020
|
+
{
|
|
1021
|
+
"name": "sort",
|
|
1022
|
+
"type": "array",
|
|
1023
|
+
"description": "Marker order in `[{ field, order }]` form, ordering the rows the map plots. Lowered to `$orderby` on the same query."
|
|
1024
|
+
},
|
|
1025
|
+
{
|
|
1026
|
+
"name": "mapStyle",
|
|
1027
|
+
"type": "string",
|
|
1028
|
+
"description": "MapLibre style URL or spec, overriding the public demo tiles. Read before `map.style`; NOT the base node `style`, which is an inline CSS record"
|
|
1029
|
+
},
|
|
1030
|
+
{
|
|
1031
|
+
"name": "navigation",
|
|
1032
|
+
"type": "object",
|
|
1033
|
+
"description": "What a marker click opens — the `{ mode, size, openNewTab, preventNavigation }` block a list view declares. With the key ABSENT a click opens nothing: this renderer supplies no drawer default. `mode` is an overlay (`drawer`, `modal`, `split`, `popover`), `new_window`, `page` or `none`, and a block written without `mode` takes the spec’s `page` default. `drawer`, `modal` and `popover` open the marker’s record in that overlay, but `split` opens nothing, because the map hands the split shell no main panel; `new_window` opens the record page in a new tab; `none` opens nothing. `page` opens the record page of the map’s `objectName` through the record navigator the host publishes (the console publishes one on its custom pages, record pages and list views); under a host that publishes none, such as an embedded renderer, or on a map that names no `objectName`, there is no record page to open and the click opens nothing. `preventNavigation: true` opens nothing whatever the mode, `openNewTab: true` opens the record page in a new tab and outranks every mode except `none`, and `size` sets the overlay width. A click handler from a parent view outranks the whole key."
|
|
1034
|
+
},
|
|
1035
|
+
{
|
|
1036
|
+
"name": "enableClustering",
|
|
1037
|
+
"type": "boolean",
|
|
1038
|
+
"description": "Group nearby markers into one numbered cluster. Absent, the map clusters only above 100 markers; `false` turns clustering off at any count."
|
|
1039
|
+
},
|
|
808
1040
|
{
|
|
809
1041
|
"name": "dataSource",
|
|
810
1042
|
"type": "object",
|
|
@@ -820,12 +1052,32 @@
|
|
|
820
1052
|
{
|
|
821
1053
|
"name": "objectName",
|
|
822
1054
|
"type": "string",
|
|
823
|
-
"
|
|
1055
|
+
"description": "ObjectQL object name. The record source is one of `data`, `staticData` and `objectName`, read in that order: a tree on `data` or `staticData` never queries this object. On a tree whose rows are inline it still names the record page a new-tab click opens."
|
|
824
1056
|
},
|
|
825
1057
|
{
|
|
826
1058
|
"name": "tree",
|
|
827
1059
|
"type": "object",
|
|
828
|
-
"description": "parentField, labelField, fields, defaultExpandedDepth"
|
|
1060
|
+
"description": "The field configuration: `parentField` names the field holding each record’s parent id (auto-detected from the object’s self-referencing field when omitted), `labelField` the field drawn indented in the first column (default `name`), `fields` the further fields drawn as flat columns after it, and `defaultExpandedDepth` how many levels open on first draw (`0` shows roots only; omitted, every level is open)."
|
|
1061
|
+
},
|
|
1062
|
+
{
|
|
1063
|
+
"name": "data",
|
|
1064
|
+
"type": "object",
|
|
1065
|
+
"description": "A `{ provider, … }` data-source configuration, read FIRST on the record-source ladder: a tree carrying one never reaches `staticData` and never queries `objectName`. `{ provider: 'value', items }` draws those records and `{ provider: 'object', object }` queries that object, both narrowed by `filter`. The `api` and `schema` providers draw no rows on the tree. A bare array is not this key’s shape and is not a record source: the tree falls through to `staticData`, then `objectName`, so inline rows belong under `staticData`."
|
|
1066
|
+
},
|
|
1067
|
+
{
|
|
1068
|
+
"name": "staticData",
|
|
1069
|
+
"type": "array",
|
|
1070
|
+
"description": "Inline records, read SECOND on the record-source ladder: a `data` configuration wins and this key is then never reached, while `objectName` is read AFTER it, so a tree carrying both draws these rows and never queries that object. Each record is placed under the record its `parentField` value names, and one naming no record is drawn as a root. `filter` narrows these rows exactly as it does fetched ones."
|
|
1071
|
+
},
|
|
1072
|
+
{
|
|
1073
|
+
"name": "filter",
|
|
1074
|
+
"type": "array",
|
|
1075
|
+
"description": "Base query filter in the rule-array form `[{ field, operator, value }, ...]`, narrowing the records the tree draws — fetched rows and inline (`staticData`, `{ provider: 'value' }`) rows alike. Context tokens such as `{current_user_id}` are resolved first, then the filter is lowered to `$filter` on the query. A record whose parent the filter removed is drawn as a root. The MongoDB-style record form is not this key’s shape."
|
|
1076
|
+
},
|
|
1077
|
+
{
|
|
1078
|
+
"name": "navigation",
|
|
1079
|
+
"type": "object",
|
|
1080
|
+
"description": "What a row click opens — the `{ mode, size, openNewTab, preventNavigation }` block a list view declares. With the key ABSENT a click opens nothing: this renderer supplies no drawer default. `mode` is an overlay (`drawer`, `modal`, `split`, `popover`), `new_window`, `page` or `none`, and a block written without `mode` takes the spec’s `page` default. `drawer`, `modal` and `popover` open the row’s record in that overlay, and `split` opens it beside the tree; `new_window` opens the record page in a new tab; `none` opens nothing. `page` opens the record page of `data.object` when `data` is the object provider, else of the tree’s `objectName`, through the record navigator the host publishes (the console publishes one on its custom pages, record pages and list views); under a host that publishes none, such as an embedded renderer, or on a tree that names neither (inline rows with no `objectName`), there is no record page to open and the click opens nothing. `preventNavigation: true` opens nothing whatever the mode, `openNewTab: true` opens the record page in a new tab and outranks every mode except `none`, and `size` sets the overlay width. A click handler from a parent view outranks the whole key."
|
|
829
1081
|
}
|
|
830
1082
|
]
|
|
831
1083
|
},
|
|
@@ -836,11 +1088,15 @@
|
|
|
836
1088
|
{
|
|
837
1089
|
"name": "objectName",
|
|
838
1090
|
"type": "string",
|
|
839
|
-
"
|
|
1091
|
+
"description": "Object this metric aggregates. Not required: the node's `dataSource` binding can name the object instead, and `dataSource.object` lands on this key, outranking an authored value. With neither, and no `fallbackValue`, the tile shows a hint naming this key instead of a value."
|
|
840
1092
|
},
|
|
841
1093
|
{
|
|
842
1094
|
"name": "label",
|
|
843
|
-
"type":
|
|
1095
|
+
"type": [
|
|
1096
|
+
"string",
|
|
1097
|
+
"object"
|
|
1098
|
+
],
|
|
1099
|
+
"description": "Heading of the tile, and of the drill-down panel when `title` is not set. Accepts either a plain string or an inline per-locale map (`{ en: \"Pipeline\", \"zh-CN\": \"销售管道\" }`) — the `I18nLabel` union the contract admits on this key — and the tile resolves the map against the active UI language, falling back through base language, a region-qualified sibling, `default`, then `en`, and finally to any remaining entry."
|
|
844
1100
|
},
|
|
845
1101
|
{
|
|
846
1102
|
"name": "aggregate",
|
|
@@ -853,13 +1109,19 @@
|
|
|
853
1109
|
},
|
|
854
1110
|
{
|
|
855
1111
|
"name": "description",
|
|
856
|
-
"type":
|
|
857
|
-
|
|
1112
|
+
"type": [
|
|
1113
|
+
"string",
|
|
1114
|
+
"object"
|
|
1115
|
+
],
|
|
1116
|
+
"description": "Helper text rendered under the value. Accepts either a plain string or an inline per-locale map (`{ en: \"This quarter\", \"zh-CN\": \"本季度\" }`), resolved against the active UI language with the same fallback chain as `label`."
|
|
858
1117
|
},
|
|
859
1118
|
{
|
|
860
1119
|
"name": "title",
|
|
861
|
-
"type":
|
|
862
|
-
|
|
1120
|
+
"type": [
|
|
1121
|
+
"string",
|
|
1122
|
+
"object"
|
|
1123
|
+
],
|
|
1124
|
+
"description": "Heading of the drill-down panel. Defaults to `label` — set it only when the records list wants a different name from the tile. Accepts either a plain string or an inline per-locale map (`{ en: \"Open deals\", \"zh-CN\": \"进行中的商机\" }`), resolved against the active UI language with the same fallback chain as `label`."
|
|
863
1125
|
},
|
|
864
1126
|
{
|
|
865
1127
|
"name": "filter",
|
|
@@ -950,7 +1212,7 @@
|
|
|
950
1212
|
{
|
|
951
1213
|
"name": "objectName",
|
|
952
1214
|
"type": "string",
|
|
953
|
-
"
|
|
1215
|
+
"description": "Object this chart aggregates. Not required: the node's `dataSource` binding can name the object instead, and `dataSource.object` lands on this key, outranking an authored value. With neither, and no inline `data`, the chart shows a hint naming this key instead of an empty frame."
|
|
954
1216
|
},
|
|
955
1217
|
{
|
|
956
1218
|
"name": "data",
|
|
@@ -1045,7 +1307,7 @@
|
|
|
1045
1307
|
{
|
|
1046
1308
|
"name": "objectName",
|
|
1047
1309
|
"type": "string",
|
|
1048
|
-
"
|
|
1310
|
+
"description": "Object this pivot table cross-tabulates. Not required: the node's `dataSource` binding can name the object instead, and `dataSource.object` lands on this key, outranking an authored value. With neither, the table shows a hint naming this key and fetches nothing."
|
|
1049
1311
|
},
|
|
1050
1312
|
{
|
|
1051
1313
|
"name": "title",
|
|
@@ -1108,6 +1370,11 @@
|
|
|
1108
1370
|
"name": "format",
|
|
1109
1371
|
"type": "string"
|
|
1110
1372
|
},
|
|
1373
|
+
{
|
|
1374
|
+
"name": "drillDown",
|
|
1375
|
+
"type": "object",
|
|
1376
|
+
"description": "Click-through config that opens the records behind a clicked cell, header or total — in a drawer, a dialog, the object’s list page (`target: \"navigate\"`), or an analytical report (`report`). The drilled list is this block’s `filter` narrowed by the clicked value. `drillDown.mode` does not apply: every click point on a pivot is an aggregated bucket, so it always drills through; `mode` belongs on `object-data-table`."
|
|
1377
|
+
},
|
|
1111
1378
|
{
|
|
1112
1379
|
"name": "dataSource",
|
|
1113
1380
|
"type": "object",
|
|
@@ -1158,6 +1425,23 @@
|
|
|
1158
1425
|
"name": "showHeader",
|
|
1159
1426
|
"type": "boolean",
|
|
1160
1427
|
"description": "Render the detail body's own title / follow-star / copy-id chip above the fields. Off by default because this block is normally composed under a `page:header` that already draws that chrome, and turning it on there shows the record title twice. Set it true only when this block is the whole page."
|
|
1428
|
+
},
|
|
1429
|
+
{
|
|
1430
|
+
"name": "enforceFieldSecurity",
|
|
1431
|
+
"type": "boolean",
|
|
1432
|
+
"description": "Fold this block's field list through the caller's FIELD-read permissions before rendering, so a field the permission set denies leaves no empty row behind (renderer default: off). Presentation only: it re-applies the same field-read answer the server already enforced (ADR-0066 D3) and never widens access — with it off a denied field still arrives masked or stripped, and with it on the server still decides every value."
|
|
1433
|
+
},
|
|
1434
|
+
{
|
|
1435
|
+
"name": "redactFields",
|
|
1436
|
+
"type": "array",
|
|
1437
|
+
"of": "string",
|
|
1438
|
+
"description": "Field names this block never renders, whatever the permission answer (renderer default: render everything authored). Presentation only, evaluated in the browser after the record is fetched — the values are still in the page, so this is NOT a data-access control and NOT the object's `publicSharing.redactFields`, which removes them server-side. To keep a value from the caller, gate the field itself (`requiredPermissions` / `maskingRule`, ADR-0066 D3) or the permission set. Neighbours `hideFields`, which is the dedupe channel the renderer also writes to."
|
|
1439
|
+
},
|
|
1440
|
+
{
|
|
1441
|
+
"name": "requiredPermissions",
|
|
1442
|
+
"type": "array",
|
|
1443
|
+
"of": "string",
|
|
1444
|
+
"description": "[ADR-0066] Capabilities the user must ALL hold — names that permission sets grant through `systemPermissions`, not object actions: `read` or `update` here is an ordinary capability name, not the object's read or edit permission. When the client has resolved the user's capabilities and any of these is missing, this block does not render its content; wherever it would otherwise render, an insufficient-permissions notice takes its place. Presentation only: it authorises nothing, and the data API still serves the same data to the same user. A client that cannot resolve the user's capabilities (no permission provider, or one that does not report `systemPermissions`) renders this block as if they were held — it fails open."
|
|
1161
1445
|
}
|
|
1162
1446
|
]
|
|
1163
1447
|
},
|
|
@@ -1179,7 +1463,24 @@
|
|
|
1179
1463
|
"vertical"
|
|
1180
1464
|
],
|
|
1181
1465
|
"description": "Layout orientation for highlight fields"
|
|
1182
|
-
}
|
|
1466
|
+
},
|
|
1467
|
+
{
|
|
1468
|
+
"name": "enforceFieldSecurity",
|
|
1469
|
+
"type": "boolean",
|
|
1470
|
+
"description": "Fold this block's highlight chips through the caller's FIELD-read permissions before rendering, so a field the permission set denies leaves no empty chip behind (renderer default: off). Presentation only: it re-applies the same field-read answer the server already enforced (ADR-0066 D3) and never widens access — the record is fetched either way and the server still decides every value."
|
|
1471
|
+
},
|
|
1472
|
+
{
|
|
1473
|
+
"name": "redactFields",
|
|
1474
|
+
"type": "array",
|
|
1475
|
+
"of": "string",
|
|
1476
|
+
"description": "Field names this block never renders as a chip, whatever the permission answer (renderer default: render every field authored). Presentation only, evaluated in the browser after the record is fetched — the values are still in the page, so this is NOT a data-access control and NOT the object's `publicSharing.redactFields`, which removes them server-side. To keep a value from the caller, gate the field itself (`requiredPermissions` / `maskingRule`, ADR-0066 D3) or the permission set."
|
|
1477
|
+
},
|
|
1478
|
+
{
|
|
1479
|
+
"name": "requiredPermissions",
|
|
1480
|
+
"type": "array",
|
|
1481
|
+
"of": "string",
|
|
1482
|
+
"description": "[ADR-0066] Capabilities the user must ALL hold — names that permission sets grant through `systemPermissions`, not object actions: `read` or `update` here is an ordinary capability name, not the object's read or edit permission. When the client has resolved the user's capabilities and any of these is missing, this block does not render its content; wherever it would otherwise render, an insufficient-permissions notice takes its place. Presentation only: it authorises nothing, and the data API still serves the same data to the same user. A client that cannot resolve the user's capabilities (no permission provider, or one that does not report `systemPermissions`) renders this block as if they were held — it fails open."
|
|
1483
|
+
}
|
|
1183
1484
|
]
|
|
1184
1485
|
},
|
|
1185
1486
|
"record:related_list": {
|
|
@@ -1207,8 +1508,7 @@
|
|
|
1207
1508
|
"name": "columns",
|
|
1208
1509
|
"type": "array",
|
|
1209
1510
|
"of": "string",
|
|
1210
|
-
"
|
|
1211
|
-
"description": "Fields to display in the related list"
|
|
1511
|
+
"description": "Fields to display in the related list. Optional: without it, a `dataSource` binding that names a view supplies that view's columns, and with neither the list derives its columns from the related object (its `highlightFields`, otherwise its listable fields). Authored columns win over both."
|
|
1212
1512
|
},
|
|
1213
1513
|
{
|
|
1214
1514
|
"name": "sort",
|
|
@@ -1227,7 +1527,11 @@
|
|
|
1227
1527
|
},
|
|
1228
1528
|
{
|
|
1229
1529
|
"name": "title",
|
|
1230
|
-
"type":
|
|
1530
|
+
"type": [
|
|
1531
|
+
"string",
|
|
1532
|
+
"object"
|
|
1533
|
+
],
|
|
1534
|
+
"description": "Heading of the list. Defaults to the related object's label (its translation when one is loaded, otherwise the humanized object name). Accepts either a plain string or an inline per-locale map (`{ en: \"Open tasks\", \"zh-CN\": \"未完成任务\" }`) — the `I18nLabel` union the contract admits on this key — and the list resolves the map against the active UI language, falling back through base language, a region-qualified sibling, `default`, then `en`, and finally to any remaining entry."
|
|
1231
1535
|
},
|
|
1232
1536
|
{
|
|
1233
1537
|
"name": "showViewAll",
|
|
@@ -1244,6 +1548,23 @@
|
|
|
1244
1548
|
"type": "object",
|
|
1245
1549
|
"description": "Adds an \"Add\" button that assigns EXISTING records instead of creating one — the m2m/junction case. Shape: `{ picker: { object, valueField?, labelField?, filter? }, linkField?, label? }`. `picker.object` (required) is the object whose records the dialog offers. `picker.valueField` is the field of the picked record used as the link value (default \"id\"); `picker.labelField` is the column shown in the picker rows (default \"name\", and the other columns are derived from that object's schema). With `linkField` set, selecting records CREATES rows in this list's own object as `{ [relationshipField]: parentValue, [linkField]: pickedId }` — the junction case; omit `linkField` and the picked child is RE-PARENTED instead, by setting its own `relationshipField` to this parent. `label` is the button text (default \"Add\", localizable inline). Setting `add` also enables generic link removal on rows when no host delete handler is wired. `picker.filter` restricts which records the dialog offers — a list of `{ field, operator, value }` rules in the same vocabulary as this list's own `filter`, applied as a hard constraint the user cannot widen (it never appears as an editable filter row)."
|
|
1246
1550
|
},
|
|
1551
|
+
{
|
|
1552
|
+
"name": "enforceFieldSecurity",
|
|
1553
|
+
"type": "boolean",
|
|
1554
|
+
"description": "Fold this list's `columns` through the caller's FIELD-read permissions on the RELATED object before rendering (renderer default: off). Presentation only: it re-applies the same field-read answer the server already enforced (ADR-0066 D3) and never widens access — the rows are fetched either way and the server still decides every value."
|
|
1555
|
+
},
|
|
1556
|
+
{
|
|
1557
|
+
"name": "redactFields",
|
|
1558
|
+
"type": "array",
|
|
1559
|
+
"of": "string",
|
|
1560
|
+
"description": "Field names this list never renders, whatever the permission answer (renderer default: render every column authored or derived). Applies to the authored `columns` AND to the columns the list derives for itself when none are authored. Presentation only, evaluated in the browser after the rows are fetched — the values are still in the page, so this is NOT a data-access control and NOT the object's `publicSharing.redactFields`, which removes them server-side. To keep a value from the caller, gate the field itself (`requiredPermissions` / `maskingRule`, ADR-0066 D3) or the permission set."
|
|
1561
|
+
},
|
|
1562
|
+
{
|
|
1563
|
+
"name": "requiredPermissions",
|
|
1564
|
+
"type": "array",
|
|
1565
|
+
"of": "string",
|
|
1566
|
+
"description": "[ADR-0066] Capabilities the user must ALL hold — names that permission sets grant through `systemPermissions`, not object actions: `read` or `update` here is an ordinary capability name, not the object's read or edit permission. When the client has resolved the user's capabilities and any of these is missing, this block does not render its content; wherever it would otherwise render, an insufficient-permissions notice takes its place. Presentation only: it authorises nothing, and the data API still serves the same data to the same user. A client that cannot resolve the user's capabilities (no permission provider, or one that does not report `systemPermissions`) renders this block as if they were held — it fails open."
|
|
1567
|
+
},
|
|
1247
1568
|
{
|
|
1248
1569
|
"name": "dataSource",
|
|
1249
1570
|
"type": "object",
|
|
@@ -1277,7 +1598,7 @@
|
|
|
1277
1598
|
{
|
|
1278
1599
|
"name": "childObject",
|
|
1279
1600
|
"type": "string",
|
|
1280
|
-
"
|
|
1601
|
+
"description": "The child object whose records the panel lists, edits and saves. Not required: the node's `dataSource` binding can name the object instead, and `dataSource.object` lands on this key, outranking an authored value. With neither, the panel shows a configuration hint naming this key and loads nothing."
|
|
1281
1602
|
},
|
|
1282
1603
|
{
|
|
1283
1604
|
"name": "relationshipField",
|
|
@@ -1297,6 +1618,58 @@
|
|
|
1297
1618
|
"name": "amountField",
|
|
1298
1619
|
"type": "string"
|
|
1299
1620
|
},
|
|
1621
|
+
{
|
|
1622
|
+
"name": "parentObject",
|
|
1623
|
+
"type": "string",
|
|
1624
|
+
"description": "The PARENT object the line total is written to on Save, together with `totalField`. Defaults to the object of the record the page shows, and outranks it when set. With neither, Save writes the lines alone and no parent field."
|
|
1625
|
+
},
|
|
1626
|
+
{
|
|
1627
|
+
"name": "parentId",
|
|
1628
|
+
"type": "string",
|
|
1629
|
+
"description": "The parent record whose lines the panel lists and saves: it loads `childObject` rows whose `relationshipField` equals this id, and a line added in the grid is saved with this id in `relationshipField`. Outranks `recordId` and the record the page shows; leave it unset on a record page, where the record shown is the parent. With no parent id at all the panel asks the user to save the record first and loads nothing."
|
|
1630
|
+
},
|
|
1631
|
+
{
|
|
1632
|
+
"name": "recordId",
|
|
1633
|
+
"type": "string",
|
|
1634
|
+
"description": "The parent record id, read only when `parentId` is unset. It outranks the record the page shows."
|
|
1635
|
+
},
|
|
1636
|
+
{
|
|
1637
|
+
"name": "title",
|
|
1638
|
+
"type": "string",
|
|
1639
|
+
"description": "Heading of the panel. Defaults to \"Line Items\" in the active UI language. A plain string, drawn as authored."
|
|
1640
|
+
},
|
|
1641
|
+
{
|
|
1642
|
+
"name": "readonly",
|
|
1643
|
+
"type": "boolean",
|
|
1644
|
+
"description": "Shows the lines without editing: no Save button, no Add line / Duplicate row / Remove row actions, and the grid draws a read-only table."
|
|
1645
|
+
},
|
|
1646
|
+
{
|
|
1647
|
+
"name": "minRows",
|
|
1648
|
+
"type": "number",
|
|
1649
|
+
"description": "Fewest lines the user can leave: every line's Remove row action is disabled while the grid holds this many lines or fewer. It adds no blank lines to reach the number."
|
|
1650
|
+
},
|
|
1651
|
+
{
|
|
1652
|
+
"name": "maxRows",
|
|
1653
|
+
"type": "number",
|
|
1654
|
+
"description": "Most lines the user can hold: at this many lines Add line and Duplicate row are disabled and the trailing blank entry row is not drawn."
|
|
1655
|
+
},
|
|
1656
|
+
{
|
|
1657
|
+
"name": "filter",
|
|
1658
|
+
"type": "array",
|
|
1659
|
+
"of": "object",
|
|
1660
|
+
"description": "Additional criteria for the lines, as spec `ViewFilterRule` entries (`[{ field, operator, value }]`). AND-combined with the parent relationship condition, never a replacement for it: it can only narrow this record's lines. Also the key a per-element `dataSource` binding's composed filter lands on."
|
|
1661
|
+
},
|
|
1662
|
+
{
|
|
1663
|
+
"name": "sort",
|
|
1664
|
+
"type": "array",
|
|
1665
|
+
"of": "object",
|
|
1666
|
+
"description": "Load order for the lines, as `[{ field, order }]` entries applied in list order; `order` is `asc` or `desc`. Without it the lines arrive in storage order."
|
|
1667
|
+
},
|
|
1668
|
+
{
|
|
1669
|
+
"name": "limit",
|
|
1670
|
+
"type": "number",
|
|
1671
|
+
"description": "Most lines loaded (default 500). The grid has no pagination: every loaded line is editable and saved as one batch, and lines past the cap are not loaded. Must be a positive integer: any other value is ignored, with a console warning."
|
|
1672
|
+
},
|
|
1300
1673
|
{
|
|
1301
1674
|
"name": "dataSource",
|
|
1302
1675
|
"type": "object",
|
|
@@ -1442,7 +1815,7 @@
|
|
|
1442
1815
|
"name": "requiredPermissions",
|
|
1443
1816
|
"type": "array",
|
|
1444
1817
|
"of": "string",
|
|
1445
|
-
"description": "
|
|
1818
|
+
"description": "[ADR-0066] Capabilities the user must ALL hold — names that permission sets grant through `systemPermissions`, not object actions: `read` or `update` here is an ordinary capability name, not the object's read or edit permission. When the client has resolved the user's capabilities and any of these is missing, this block does not render its content; wherever it would otherwise render, an insufficient-permissions notice takes its place. Presentation only: it authorises nothing, and the data API still serves the same data to the same user. A client that cannot resolve the user's capabilities (no permission provider, or one that does not report `systemPermissions`) renders this block as if they were held — it fails open."
|
|
1446
1819
|
},
|
|
1447
1820
|
{
|
|
1448
1821
|
"name": "location",
|
|
@@ -1697,11 +2070,19 @@
|
|
|
1697
2070
|
"name": "variant",
|
|
1698
2071
|
"type": "enum",
|
|
1699
2072
|
"enum": [
|
|
1700
|
-
"
|
|
1701
|
-
"
|
|
2073
|
+
"h1",
|
|
2074
|
+
"h2",
|
|
2075
|
+
"h3",
|
|
2076
|
+
"h4",
|
|
2077
|
+
"h5",
|
|
2078
|
+
"h6",
|
|
1702
2079
|
"body",
|
|
1703
|
-
"caption"
|
|
1704
|
-
|
|
2080
|
+
"caption",
|
|
2081
|
+
"overline",
|
|
2082
|
+
"heading",
|
|
2083
|
+
"subheading"
|
|
2084
|
+
],
|
|
2085
|
+
"description": "One of the nine text styles ui:text uses: h1-h6 (rendered as that heading level), body, caption or overline. heading and subheading are earlier spellings the contract still accepts and renders as h2 and h3; write h2 or h3 instead."
|
|
1705
2086
|
},
|
|
1706
2087
|
{
|
|
1707
2088
|
"name": "align",
|
|
@@ -1721,8 +2102,7 @@
|
|
|
1721
2102
|
{
|
|
1722
2103
|
"name": "object",
|
|
1723
2104
|
"type": "string",
|
|
1724
|
-
"
|
|
1725
|
-
"description": "Object the aggregate runs over"
|
|
2105
|
+
"description": "Object the aggregate runs over. Required unless a node-level `dataSource` binding names one; when both are set, `dataSource.object` wins."
|
|
1726
2106
|
},
|
|
1727
2107
|
{
|
|
1728
2108
|
"name": "aggregate",
|
|
@@ -1743,7 +2123,8 @@
|
|
|
1743
2123
|
},
|
|
1744
2124
|
{
|
|
1745
2125
|
"name": "filter",
|
|
1746
|
-
"type": "array"
|
|
2126
|
+
"type": "array",
|
|
2127
|
+
"description": "Criteria the aggregate is scoped by. When a node-level `dataSource` binding also supplies a filter (its own, or the saved view its `view` names), the two are AND-combined: neither is dropped."
|
|
1747
2128
|
},
|
|
1748
2129
|
{
|
|
1749
2130
|
"name": "format",
|
|
@@ -1761,6 +2142,12 @@
|
|
|
1761
2142
|
{
|
|
1762
2143
|
"name": "suffix",
|
|
1763
2144
|
"type": "string"
|
|
2145
|
+
},
|
|
2146
|
+
{
|
|
2147
|
+
"name": "dataSource",
|
|
2148
|
+
"type": "object",
|
|
2149
|
+
"binding": "object",
|
|
2150
|
+
"description": "Per-element data binding: { object, view, filter, sort, limit }. Overrides the page-level object context for this block; `view` names a saved view of `object`, and `filter` is ANDed with the view’s own rather than replacing it."
|
|
1764
2151
|
}
|
|
1765
2152
|
]
|
|
1766
2153
|
},
|
|
@@ -1828,16 +2215,23 @@
|
|
|
1828
2215
|
{
|
|
1829
2216
|
"name": "items",
|
|
1830
2217
|
"type": "array",
|
|
1831
|
-
"
|
|
1832
|
-
"description": "Term/description pairs [{ term, description }]"
|
|
2218
|
+
"of": "object",
|
|
2219
|
+
"description": "Term/description pairs [{ term, description }], in order: `term` is the row label, `description` is shown as-is (an object as JSON, an omitted one as an em dash). Omitted or empty renders the \"No details\" state"
|
|
1833
2220
|
},
|
|
1834
2221
|
{
|
|
1835
2222
|
"name": "columns",
|
|
1836
2223
|
"type": "enum",
|
|
1837
2224
|
"enum": [
|
|
1838
|
-
|
|
1839
|
-
|
|
1840
|
-
|
|
2225
|
+
{
|
|
2226
|
+
"label": "1",
|
|
2227
|
+
"value": 1
|
|
2228
|
+
},
|
|
2229
|
+
{
|
|
2230
|
+
"label": "2",
|
|
2231
|
+
"value": 2
|
|
2232
|
+
}
|
|
2233
|
+
],
|
|
2234
|
+
"description": "Grid columns from the small breakpoint up: the NUMBER 1 or 2 (default 1)"
|
|
1841
2235
|
},
|
|
1842
2236
|
{
|
|
1843
2237
|
"name": "inline",
|
|
@@ -1863,15 +2257,19 @@
|
|
|
1863
2257
|
{
|
|
1864
2258
|
"name": "fields",
|
|
1865
2259
|
"type": "array",
|
|
1866
|
-
"description": "
|
|
2260
|
+
"description": "Fields shown after the title on each line, in order: a bare field name, or `{ field }`"
|
|
1867
2261
|
},
|
|
1868
2262
|
{
|
|
1869
2263
|
"name": "filter",
|
|
1870
|
-
"type": "array"
|
|
2264
|
+
"type": "array",
|
|
2265
|
+
"of": "object",
|
|
2266
|
+
"description": "Filter rules `[{ field, operator, value }]`. A string `value` may be a context token such as `{current_user_id}`, resolved before the query"
|
|
1871
2267
|
},
|
|
1872
2268
|
{
|
|
1873
2269
|
"name": "sort",
|
|
1874
|
-
"type": "array"
|
|
2270
|
+
"type": "array",
|
|
2271
|
+
"of": "object",
|
|
2272
|
+
"description": "Sort order `[{ field, order }]`, applied in list order"
|
|
1875
2273
|
},
|
|
1876
2274
|
{
|
|
1877
2275
|
"name": "limit",
|
|
@@ -1935,14 +2333,139 @@
|
|
|
1935
2333
|
"name": "size",
|
|
1936
2334
|
"type": "enum",
|
|
1937
2335
|
"enum": [
|
|
2336
|
+
"default",
|
|
1938
2337
|
"sm",
|
|
1939
2338
|
"md",
|
|
1940
|
-
"lg"
|
|
1941
|
-
|
|
2339
|
+
"lg",
|
|
2340
|
+
"icon"
|
|
2341
|
+
],
|
|
2342
|
+
"description": "Button size: the Button primitive's `default`, `sm`, `lg` or `icon`, plus `md`, which renders as `default` (default: `default`)"
|
|
1942
2343
|
},
|
|
1943
2344
|
{
|
|
1944
2345
|
"name": "className",
|
|
1945
2346
|
"type": "string"
|
|
2347
|
+
},
|
|
2348
|
+
{
|
|
2349
|
+
"name": "visible",
|
|
2350
|
+
"type": [
|
|
2351
|
+
"boolean",
|
|
2352
|
+
"string",
|
|
2353
|
+
"object"
|
|
2354
|
+
],
|
|
2355
|
+
"description": "Visibility predicate: `true`/`false`, a bare CEL expression, or the `{ dialect: 'cel', source }` envelope, evaluated against the row the host binds; the button is not rendered when it is false, nor when the predicate fails to evaluate. Omit for always-visible"
|
|
2356
|
+
},
|
|
2357
|
+
{
|
|
2358
|
+
"name": "disabled",
|
|
2359
|
+
"type": [
|
|
2360
|
+
"boolean",
|
|
2361
|
+
"string",
|
|
2362
|
+
"object"
|
|
2363
|
+
],
|
|
2364
|
+
"description": "Disabled predicate, in the same three shapes as `visible`: the button is shown but cannot be pressed while it holds. Omit for never-disabled"
|
|
2365
|
+
},
|
|
2366
|
+
{
|
|
2367
|
+
"name": "params",
|
|
2368
|
+
"type": "array",
|
|
2369
|
+
"description": "The parameters to collect from the user before the action runs (`ActionParam` objects: `name`, `type`, `label`, …); each collected value reaches the executor under its parameter `name`. Static execution values ride `properties.params` instead"
|
|
2370
|
+
},
|
|
2371
|
+
{
|
|
2372
|
+
"name": "description",
|
|
2373
|
+
"type": "string",
|
|
2374
|
+
"description": "Action description — the parameter dialog shows it under its title"
|
|
2375
|
+
},
|
|
2376
|
+
{
|
|
2377
|
+
"name": "openIn",
|
|
2378
|
+
"type": "enum",
|
|
2379
|
+
"enum": [
|
|
2380
|
+
"self",
|
|
2381
|
+
"new-tab"
|
|
2382
|
+
],
|
|
2383
|
+
"description": "For a `url` action: `self` navigates in place, `new-tab` opens a new browser tab"
|
|
2384
|
+
},
|
|
2385
|
+
{
|
|
2386
|
+
"name": "method",
|
|
2387
|
+
"type": "string",
|
|
2388
|
+
"description": "HTTP method of an `api` action (`POST` when omitted)"
|
|
2389
|
+
},
|
|
2390
|
+
{
|
|
2391
|
+
"name": "bodyExtra",
|
|
2392
|
+
"type": "object",
|
|
2393
|
+
"description": "Static request-body fields of an `api` action, merged last, so a constant here overrides a collected value of the same name"
|
|
2394
|
+
},
|
|
2395
|
+
{
|
|
2396
|
+
"name": "bodyShape",
|
|
2397
|
+
"type": [
|
|
2398
|
+
"enum",
|
|
2399
|
+
"object"
|
|
2400
|
+
],
|
|
2401
|
+
"enum": [
|
|
2402
|
+
"flat"
|
|
2403
|
+
],
|
|
2404
|
+
"description": "How an `api` action shapes its request body: `flat` (the default) or `{ wrap: KEY }` to nest the collected values under that key, with `bodyExtra` beside it"
|
|
2405
|
+
},
|
|
2406
|
+
{
|
|
2407
|
+
"name": "operation",
|
|
2408
|
+
"type": "enum",
|
|
2409
|
+
"enum": [
|
|
2410
|
+
"update"
|
|
2411
|
+
],
|
|
2412
|
+
"description": "`update` declares a single-record field write: the runner dispatches it to the platform action route with `patch` merged under the collected values"
|
|
2413
|
+
},
|
|
2414
|
+
{
|
|
2415
|
+
"name": "patch",
|
|
2416
|
+
"type": "object",
|
|
2417
|
+
"description": "For `operation: update`: the field values written, merged UNDER the values the user supplies, so a collected value of the same name wins"
|
|
2418
|
+
},
|
|
2419
|
+
{
|
|
2420
|
+
"name": "confirmText",
|
|
2421
|
+
"type": "string",
|
|
2422
|
+
"description": "Confirmation question asked before the action runs; the action runs only if it is confirmed"
|
|
2423
|
+
},
|
|
2424
|
+
{
|
|
2425
|
+
"name": "successMessage",
|
|
2426
|
+
"type": "string",
|
|
2427
|
+
"description": "Toast text when the action succeeds; a `${result.*}` token reads the handler's answer (e.g. `${result.id}`)"
|
|
2428
|
+
},
|
|
2429
|
+
{
|
|
2430
|
+
"name": "errorMessage",
|
|
2431
|
+
"type": "string",
|
|
2432
|
+
"description": "Toast text when the action fails, in place of the raw error"
|
|
2433
|
+
},
|
|
2434
|
+
{
|
|
2435
|
+
"name": "refreshAfter",
|
|
2436
|
+
"type": "boolean",
|
|
2437
|
+
"description": "Refresh the surrounding data after the action succeeds"
|
|
2438
|
+
},
|
|
2439
|
+
{
|
|
2440
|
+
"name": "locations",
|
|
2441
|
+
"type": "array",
|
|
2442
|
+
"of": "string",
|
|
2443
|
+
"description": "The placements the action declares (`list_toolbar`, `list_item`, `record_header`, …). A `script` or `flow` action declared record-scoped (`list_item`, `record_header`, `record_more` or `record_section`) refuses to run when no record or single selection is in scope, instead of running without one"
|
|
2444
|
+
},
|
|
2445
|
+
{
|
|
2446
|
+
"name": "toast",
|
|
2447
|
+
"type": "object",
|
|
2448
|
+
"description": "Toast behaviour: `{ showOnSuccess?, showOnError?, duration? }` — `false` suppresses that toast, `duration` is handed to the toast"
|
|
2449
|
+
},
|
|
2450
|
+
{
|
|
2451
|
+
"name": "resultDialog",
|
|
2452
|
+
"type": "object",
|
|
2453
|
+
"description": "One-shot result dialog for a value the response shows exactly once (a 2FA code, a fresh secret); it replaces the success toast"
|
|
2454
|
+
},
|
|
2455
|
+
{
|
|
2456
|
+
"name": "onSuccess",
|
|
2457
|
+
"type": "object",
|
|
2458
|
+
"description": "Post-success navigation `{ navigate, openIn? }`: `navigate` is a route template that can read `${result.*}`, `openIn` is `self` (the default) or `newTab`"
|
|
2459
|
+
},
|
|
2460
|
+
{
|
|
2461
|
+
"name": "objectName",
|
|
2462
|
+
"type": "string",
|
|
2463
|
+
"description": "Object the action acts on — dispatch goes to this object instead of the page's. Omit to act on the page's object"
|
|
2464
|
+
},
|
|
2465
|
+
{
|
|
2466
|
+
"name": "recordIdField",
|
|
2467
|
+
"type": "string",
|
|
2468
|
+
"description": "For a `script` action run against a single selected row: the row field whose value is sent as the record id (default `id`)"
|
|
1946
2469
|
}
|
|
1947
2470
|
]
|
|
1948
2471
|
},
|
|
@@ -1950,10 +2473,6 @@
|
|
|
1950
2473
|
"type": "action:group",
|
|
1951
2474
|
"namespace": "action",
|
|
1952
2475
|
"inputs": [
|
|
1953
|
-
{
|
|
1954
|
-
"name": "name",
|
|
1955
|
-
"type": "string"
|
|
1956
|
-
},
|
|
1957
2476
|
{
|
|
1958
2477
|
"name": "label",
|
|
1959
2478
|
"type": "string"
|
|
@@ -1964,7 +2483,9 @@
|
|
|
1964
2483
|
},
|
|
1965
2484
|
{
|
|
1966
2485
|
"name": "actions",
|
|
1967
|
-
"type": "
|
|
2486
|
+
"type": "array",
|
|
2487
|
+
"of": "object",
|
|
2488
|
+
"description": "The actions in this group, in order. Each member is an action object the group draws and runs itself (`name`, `label`, `icon`, `type`, `target`, `locations`, `visible`, `disabled`, …); a member's executor is its own `type`"
|
|
1968
2489
|
},
|
|
1969
2490
|
{
|
|
1970
2491
|
"name": "display",
|
|
@@ -1974,6 +2495,19 @@
|
|
|
1974
2495
|
"dropdown"
|
|
1975
2496
|
]
|
|
1976
2497
|
},
|
|
2498
|
+
{
|
|
2499
|
+
"name": "location",
|
|
2500
|
+
"type": "enum",
|
|
2501
|
+
"enum": [
|
|
2502
|
+
"list_toolbar",
|
|
2503
|
+
"list_item",
|
|
2504
|
+
"record_header",
|
|
2505
|
+
"record_more",
|
|
2506
|
+
"record_related",
|
|
2507
|
+
"record_section"
|
|
2508
|
+
],
|
|
2509
|
+
"description": "Render only the members whose `locations` include this location. Omit to render every member"
|
|
2510
|
+
},
|
|
1977
2511
|
{
|
|
1978
2512
|
"name": "variant",
|
|
1979
2513
|
"type": "enum",
|
|
@@ -1988,10 +2522,21 @@
|
|
|
1988
2522
|
"name": "size",
|
|
1989
2523
|
"type": "enum",
|
|
1990
2524
|
"enum": [
|
|
2525
|
+
"default",
|
|
1991
2526
|
"sm",
|
|
1992
|
-
"
|
|
1993
|
-
"
|
|
1994
|
-
]
|
|
2527
|
+
"lg",
|
|
2528
|
+
"icon"
|
|
2529
|
+
],
|
|
2530
|
+
"description": "Button size for the dropdown trigger and for every inline member that sets none"
|
|
2531
|
+
},
|
|
2532
|
+
{
|
|
2533
|
+
"name": "visible",
|
|
2534
|
+
"type": [
|
|
2535
|
+
"boolean",
|
|
2536
|
+
"string",
|
|
2537
|
+
"object"
|
|
2538
|
+
],
|
|
2539
|
+
"description": "Visibility predicate for the whole group: `true`/`false`, a bare CEL expression, or the `{ dialect: 'cel', source }` envelope, evaluated against the row the host binds. Omit for always-visible"
|
|
1995
2540
|
},
|
|
1996
2541
|
{
|
|
1997
2542
|
"name": "className",
|
|
@@ -2013,7 +2558,9 @@
|
|
|
2013
2558
|
},
|
|
2014
2559
|
{
|
|
2015
2560
|
"name": "actions",
|
|
2016
|
-
"type": "
|
|
2561
|
+
"type": "array",
|
|
2562
|
+
"of": "object",
|
|
2563
|
+
"description": "The menu's actions, in order. Each member is an action object the menu draws and runs itself (`name`, `label`, `icon`, `type`, `target`, `visible`, `disabled`, `tags`, …); a member's executor is its own `type`"
|
|
2017
2564
|
},
|
|
2018
2565
|
{
|
|
2019
2566
|
"name": "variant",
|
|
@@ -2025,6 +2572,26 @@
|
|
|
2025
2572
|
"ghost"
|
|
2026
2573
|
]
|
|
2027
2574
|
},
|
|
2575
|
+
{
|
|
2576
|
+
"name": "size",
|
|
2577
|
+
"type": "enum",
|
|
2578
|
+
"enum": [
|
|
2579
|
+
"default",
|
|
2580
|
+
"sm",
|
|
2581
|
+
"lg",
|
|
2582
|
+
"icon"
|
|
2583
|
+
],
|
|
2584
|
+
"description": "Trigger button size (renderer default: `icon`)"
|
|
2585
|
+
},
|
|
2586
|
+
{
|
|
2587
|
+
"name": "visible",
|
|
2588
|
+
"type": [
|
|
2589
|
+
"boolean",
|
|
2590
|
+
"string",
|
|
2591
|
+
"object"
|
|
2592
|
+
],
|
|
2593
|
+
"description": "Visibility predicate for the whole menu: `true`/`false`, a bare CEL expression, or the `{ dialect: 'cel', source }` envelope, evaluated against the row the host binds; a predicate that fails to evaluate hides it. Omit for always-visible"
|
|
2594
|
+
},
|
|
2028
2595
|
{
|
|
2029
2596
|
"name": "className",
|
|
2030
2597
|
"type": "string"
|
|
@@ -2076,6 +2643,123 @@
|
|
|
2076
2643
|
{
|
|
2077
2644
|
"name": "className",
|
|
2078
2645
|
"type": "string"
|
|
2646
|
+
},
|
|
2647
|
+
{
|
|
2648
|
+
"name": "visible",
|
|
2649
|
+
"type": [
|
|
2650
|
+
"boolean",
|
|
2651
|
+
"string",
|
|
2652
|
+
"object"
|
|
2653
|
+
],
|
|
2654
|
+
"description": "Visibility predicate: `true`/`false`, a bare CEL expression, or the `{ dialect: 'cel', source }` envelope, evaluated against the row the host binds; the icon is not rendered when it is false. Omit for always-visible"
|
|
2655
|
+
},
|
|
2656
|
+
{
|
|
2657
|
+
"name": "disabled",
|
|
2658
|
+
"type": [
|
|
2659
|
+
"boolean",
|
|
2660
|
+
"string",
|
|
2661
|
+
"object"
|
|
2662
|
+
],
|
|
2663
|
+
"description": "Disabled predicate, in the same three shapes as `visible`: the icon is shown but cannot be pressed while it holds. Omit for never-disabled"
|
|
2664
|
+
},
|
|
2665
|
+
{
|
|
2666
|
+
"name": "params",
|
|
2667
|
+
"type": "array",
|
|
2668
|
+
"description": "The parameters to collect from the user before the action runs (`ActionParam` objects: `name`, `type`, `label`, …); each collected value reaches the executor under its parameter `name`. Static execution values ride `properties.params` instead"
|
|
2669
|
+
},
|
|
2670
|
+
{
|
|
2671
|
+
"name": "description",
|
|
2672
|
+
"type": "string",
|
|
2673
|
+
"description": "Action description — the tooltip text when there is no `label`, and what the parameter dialog shows under its title"
|
|
2674
|
+
},
|
|
2675
|
+
{
|
|
2676
|
+
"name": "openIn",
|
|
2677
|
+
"type": "enum",
|
|
2678
|
+
"enum": [
|
|
2679
|
+
"self",
|
|
2680
|
+
"new-tab"
|
|
2681
|
+
],
|
|
2682
|
+
"description": "For a `url` action: `self` navigates in place, `new-tab` opens a new browser tab"
|
|
2683
|
+
},
|
|
2684
|
+
{
|
|
2685
|
+
"name": "method",
|
|
2686
|
+
"type": "string",
|
|
2687
|
+
"description": "HTTP method of an `api` action (`POST` when omitted)"
|
|
2688
|
+
},
|
|
2689
|
+
{
|
|
2690
|
+
"name": "bodyExtra",
|
|
2691
|
+
"type": "object",
|
|
2692
|
+
"description": "Static request-body fields of an `api` action, merged last, so a constant here overrides a collected value of the same name"
|
|
2693
|
+
},
|
|
2694
|
+
{
|
|
2695
|
+
"name": "bodyShape",
|
|
2696
|
+
"type": [
|
|
2697
|
+
"enum",
|
|
2698
|
+
"object"
|
|
2699
|
+
],
|
|
2700
|
+
"enum": [
|
|
2701
|
+
"flat"
|
|
2702
|
+
],
|
|
2703
|
+
"description": "How an `api` action shapes its request body: `flat` (the default) or `{ wrap: KEY }` to nest the collected values under that key, with `bodyExtra` beside it"
|
|
2704
|
+
},
|
|
2705
|
+
{
|
|
2706
|
+
"name": "operation",
|
|
2707
|
+
"type": "enum",
|
|
2708
|
+
"enum": [
|
|
2709
|
+
"update"
|
|
2710
|
+
],
|
|
2711
|
+
"description": "`update` declares a single-record field write: the runner dispatches it to the platform action route with `patch` merged under the collected values"
|
|
2712
|
+
},
|
|
2713
|
+
{
|
|
2714
|
+
"name": "patch",
|
|
2715
|
+
"type": "object",
|
|
2716
|
+
"description": "For `operation: update`: the field values written, merged UNDER the values the user supplies, so a collected value of the same name wins"
|
|
2717
|
+
},
|
|
2718
|
+
{
|
|
2719
|
+
"name": "confirmText",
|
|
2720
|
+
"type": "string",
|
|
2721
|
+
"description": "Confirmation question asked before the action runs; the action runs only if it is confirmed"
|
|
2722
|
+
},
|
|
2723
|
+
{
|
|
2724
|
+
"name": "successMessage",
|
|
2725
|
+
"type": "string",
|
|
2726
|
+
"description": "Toast text when the action succeeds; a `${result.*}` token reads the handler's answer (e.g. `${result.id}`)"
|
|
2727
|
+
},
|
|
2728
|
+
{
|
|
2729
|
+
"name": "errorMessage",
|
|
2730
|
+
"type": "string",
|
|
2731
|
+
"description": "Toast text when the action fails, in place of the raw error"
|
|
2732
|
+
},
|
|
2733
|
+
{
|
|
2734
|
+
"name": "refreshAfter",
|
|
2735
|
+
"type": "boolean",
|
|
2736
|
+
"description": "Refresh the surrounding data after the action succeeds"
|
|
2737
|
+
},
|
|
2738
|
+
{
|
|
2739
|
+
"name": "locations",
|
|
2740
|
+
"type": "array",
|
|
2741
|
+
"of": "string",
|
|
2742
|
+
"description": "The placements the action declares (`list_toolbar`, `list_item`, `record_header`, …). A `script` or `flow` action declared record-scoped (`list_item`, `record_header`, `record_more` or `record_section`) refuses to run when no record or single selection is in scope, instead of running without one"
|
|
2743
|
+
},
|
|
2744
|
+
{
|
|
2745
|
+
"name": "toast",
|
|
2746
|
+
"type": "object",
|
|
2747
|
+
"description": "Toast behaviour: `{ showOnSuccess?, showOnError?, duration? }` — `false` suppresses that toast, `duration` is handed to the toast"
|
|
2748
|
+
},
|
|
2749
|
+
{
|
|
2750
|
+
"name": "resultDialog",
|
|
2751
|
+
"type": "object",
|
|
2752
|
+
"description": "One-shot result dialog for a value the response shows exactly once (a 2FA code, a fresh secret); it replaces the success toast"
|
|
2753
|
+
},
|
|
2754
|
+
{
|
|
2755
|
+
"name": "onSuccess",
|
|
2756
|
+
"type": "object",
|
|
2757
|
+
"description": "Post-success navigation `{ navigate, openIn? }`: `navigate` is a route template that can read `${result.*}`, `openIn` is `self` (the default) or `newTab`"
|
|
2758
|
+
},
|
|
2759
|
+
{
|
|
2760
|
+
"name": "objectName",
|
|
2761
|
+
"type": "string",
|
|
2762
|
+
"description": "Object the action acts on — dispatch goes to this object instead of the page's. Omit to act on the page's object"
|
|
2079
2763
|
}
|
|
2080
2764
|
]
|
|
2081
2765
|
},
|
|
@@ -2119,8 +2803,46 @@
|
|
|
2119
2803
|
},
|
|
2120
2804
|
{
|
|
2121
2805
|
"name": "gap",
|
|
2122
|
-
"type": "
|
|
2123
|
-
"
|
|
2806
|
+
"type": "enum",
|
|
2807
|
+
"enum": [
|
|
2808
|
+
{
|
|
2809
|
+
"label": "0 (none)",
|
|
2810
|
+
"value": 0
|
|
2811
|
+
},
|
|
2812
|
+
{
|
|
2813
|
+
"label": "1",
|
|
2814
|
+
"value": 1
|
|
2815
|
+
},
|
|
2816
|
+
{
|
|
2817
|
+
"label": "2",
|
|
2818
|
+
"value": 2
|
|
2819
|
+
},
|
|
2820
|
+
{
|
|
2821
|
+
"label": "3",
|
|
2822
|
+
"value": 3
|
|
2823
|
+
},
|
|
2824
|
+
{
|
|
2825
|
+
"label": "4",
|
|
2826
|
+
"value": 4
|
|
2827
|
+
},
|
|
2828
|
+
{
|
|
2829
|
+
"label": "5",
|
|
2830
|
+
"value": 5
|
|
2831
|
+
},
|
|
2832
|
+
{
|
|
2833
|
+
"label": "6",
|
|
2834
|
+
"value": 6
|
|
2835
|
+
},
|
|
2836
|
+
{
|
|
2837
|
+
"label": "7",
|
|
2838
|
+
"value": 7
|
|
2839
|
+
},
|
|
2840
|
+
{
|
|
2841
|
+
"label": "8",
|
|
2842
|
+
"value": 8
|
|
2843
|
+
}
|
|
2844
|
+
],
|
|
2845
|
+
"description": "Gap step between items; 0 is none. Default 2."
|
|
2124
2846
|
},
|
|
2125
2847
|
{
|
|
2126
2848
|
"name": "wrap",
|
|
@@ -2144,33 +2866,109 @@
|
|
|
2144
2866
|
"inputs": [
|
|
2145
2867
|
{
|
|
2146
2868
|
"name": "columns",
|
|
2147
|
-
"type":
|
|
2148
|
-
|
|
2149
|
-
|
|
2150
|
-
|
|
2151
|
-
"
|
|
2152
|
-
"
|
|
2153
|
-
|
|
2154
|
-
|
|
2155
|
-
|
|
2156
|
-
|
|
2157
|
-
|
|
2158
|
-
|
|
2159
|
-
|
|
2160
|
-
|
|
2161
|
-
|
|
2162
|
-
|
|
2163
|
-
|
|
2164
|
-
|
|
2165
|
-
|
|
2166
|
-
|
|
2167
|
-
|
|
2168
|
-
|
|
2869
|
+
"type": [
|
|
2870
|
+
"enum",
|
|
2871
|
+
"object"
|
|
2872
|
+
],
|
|
2873
|
+
"of": "enum",
|
|
2874
|
+
"enum": [
|
|
2875
|
+
{
|
|
2876
|
+
"label": "1",
|
|
2877
|
+
"value": 1
|
|
2878
|
+
},
|
|
2879
|
+
{
|
|
2880
|
+
"label": "2",
|
|
2881
|
+
"value": 2
|
|
2882
|
+
},
|
|
2883
|
+
{
|
|
2884
|
+
"label": "3",
|
|
2885
|
+
"value": 3
|
|
2886
|
+
},
|
|
2887
|
+
{
|
|
2888
|
+
"label": "4",
|
|
2889
|
+
"value": 4
|
|
2890
|
+
},
|
|
2891
|
+
{
|
|
2892
|
+
"label": "5",
|
|
2893
|
+
"value": 5
|
|
2894
|
+
},
|
|
2895
|
+
{
|
|
2896
|
+
"label": "6",
|
|
2897
|
+
"value": 6
|
|
2898
|
+
},
|
|
2899
|
+
{
|
|
2900
|
+
"label": "7",
|
|
2901
|
+
"value": 7
|
|
2902
|
+
},
|
|
2903
|
+
{
|
|
2904
|
+
"label": "8",
|
|
2905
|
+
"value": 8
|
|
2906
|
+
},
|
|
2907
|
+
{
|
|
2908
|
+
"label": "9",
|
|
2909
|
+
"value": 9
|
|
2910
|
+
},
|
|
2911
|
+
{
|
|
2912
|
+
"label": "10",
|
|
2913
|
+
"value": 10
|
|
2914
|
+
},
|
|
2915
|
+
{
|
|
2916
|
+
"label": "11",
|
|
2917
|
+
"value": 11
|
|
2918
|
+
},
|
|
2919
|
+
{
|
|
2920
|
+
"label": "12",
|
|
2921
|
+
"value": 12
|
|
2922
|
+
}
|
|
2923
|
+
],
|
|
2924
|
+
"description": "Column count, 1 to 12, or an object of such counts keyed by breakpoint (xs, sm, md, lg, xl, 2xl). Default 2."
|
|
2169
2925
|
},
|
|
2170
2926
|
{
|
|
2171
2927
|
"name": "gap",
|
|
2172
|
-
"type": "
|
|
2173
|
-
"
|
|
2928
|
+
"type": "enum",
|
|
2929
|
+
"enum": [
|
|
2930
|
+
{
|
|
2931
|
+
"label": "0 (none)",
|
|
2932
|
+
"value": 0
|
|
2933
|
+
},
|
|
2934
|
+
{
|
|
2935
|
+
"label": "1",
|
|
2936
|
+
"value": 1
|
|
2937
|
+
},
|
|
2938
|
+
{
|
|
2939
|
+
"label": "2",
|
|
2940
|
+
"value": 2
|
|
2941
|
+
},
|
|
2942
|
+
{
|
|
2943
|
+
"label": "3",
|
|
2944
|
+
"value": 3
|
|
2945
|
+
},
|
|
2946
|
+
{
|
|
2947
|
+
"label": "4",
|
|
2948
|
+
"value": 4
|
|
2949
|
+
},
|
|
2950
|
+
{
|
|
2951
|
+
"label": "5",
|
|
2952
|
+
"value": 5
|
|
2953
|
+
},
|
|
2954
|
+
{
|
|
2955
|
+
"label": "6",
|
|
2956
|
+
"value": 6
|
|
2957
|
+
},
|
|
2958
|
+
{
|
|
2959
|
+
"label": "8",
|
|
2960
|
+
"value": 8
|
|
2961
|
+
},
|
|
2962
|
+
{
|
|
2963
|
+
"label": "10",
|
|
2964
|
+
"value": 10
|
|
2965
|
+
},
|
|
2966
|
+
{
|
|
2967
|
+
"label": "12",
|
|
2968
|
+
"value": 12
|
|
2969
|
+
}
|
|
2970
|
+
],
|
|
2971
|
+
"description": "Gap step between items; 0 is none. Default 4."
|
|
2174
2972
|
},
|
|
2175
2973
|
{
|
|
2176
2974
|
"name": "className",
|
|
@@ -2199,7 +2997,46 @@
|
|
|
2199
2997
|
},
|
|
2200
2998
|
{
|
|
2201
2999
|
"name": "gap",
|
|
2202
|
-
"type": "
|
|
3000
|
+
"type": "enum",
|
|
3001
|
+
"enum": [
|
|
3002
|
+
{
|
|
3003
|
+
"label": "0 (none)",
|
|
3004
|
+
"value": 0
|
|
3005
|
+
},
|
|
3006
|
+
{
|
|
3007
|
+
"label": "1",
|
|
3008
|
+
"value": 1
|
|
3009
|
+
},
|
|
3010
|
+
{
|
|
3011
|
+
"label": "2",
|
|
3012
|
+
"value": 2
|
|
3013
|
+
},
|
|
3014
|
+
{
|
|
3015
|
+
"label": "3",
|
|
3016
|
+
"value": 3
|
|
3017
|
+
},
|
|
3018
|
+
{
|
|
3019
|
+
"label": "4",
|
|
3020
|
+
"value": 4
|
|
3021
|
+
},
|
|
3022
|
+
{
|
|
3023
|
+
"label": "5",
|
|
3024
|
+
"value": 5
|
|
3025
|
+
},
|
|
3026
|
+
{
|
|
3027
|
+
"label": "6",
|
|
3028
|
+
"value": 6
|
|
3029
|
+
},
|
|
3030
|
+
{
|
|
3031
|
+
"label": "8",
|
|
3032
|
+
"value": 8
|
|
3033
|
+
},
|
|
3034
|
+
{
|
|
3035
|
+
"label": "10",
|
|
3036
|
+
"value": 10
|
|
3037
|
+
}
|
|
3038
|
+
],
|
|
3039
|
+
"description": "Gap step between items; 0 is none. Default 2."
|
|
2203
3040
|
},
|
|
2204
3041
|
{
|
|
2205
3042
|
"name": "align",
|
|
@@ -2368,8 +3205,58 @@
|
|
|
2368
3205
|
},
|
|
2369
3206
|
{
|
|
2370
3207
|
"name": "padding",
|
|
2371
|
-
"type": "
|
|
2372
|
-
"
|
|
3208
|
+
"type": "enum",
|
|
3209
|
+
"enum": [
|
|
3210
|
+
{
|
|
3211
|
+
"label": "0 (none)",
|
|
3212
|
+
"value": 0
|
|
3213
|
+
},
|
|
3214
|
+
{
|
|
3215
|
+
"label": "1",
|
|
3216
|
+
"value": 1
|
|
3217
|
+
},
|
|
3218
|
+
{
|
|
3219
|
+
"label": "2",
|
|
3220
|
+
"value": 2
|
|
3221
|
+
},
|
|
3222
|
+
{
|
|
3223
|
+
"label": "3",
|
|
3224
|
+
"value": 3
|
|
3225
|
+
},
|
|
3226
|
+
{
|
|
3227
|
+
"label": "4",
|
|
3228
|
+
"value": 4
|
|
3229
|
+
},
|
|
3230
|
+
{
|
|
3231
|
+
"label": "5",
|
|
3232
|
+
"value": 5
|
|
3233
|
+
},
|
|
3234
|
+
{
|
|
3235
|
+
"label": "6",
|
|
3236
|
+
"value": 6
|
|
3237
|
+
},
|
|
3238
|
+
{
|
|
3239
|
+
"label": "7",
|
|
3240
|
+
"value": 7
|
|
3241
|
+
},
|
|
3242
|
+
{
|
|
3243
|
+
"label": "8",
|
|
3244
|
+
"value": 8
|
|
3245
|
+
},
|
|
3246
|
+
{
|
|
3247
|
+
"label": "10",
|
|
3248
|
+
"value": 10
|
|
3249
|
+
},
|
|
3250
|
+
{
|
|
3251
|
+
"label": "12",
|
|
3252
|
+
"value": 12
|
|
3253
|
+
},
|
|
3254
|
+
{
|
|
3255
|
+
"label": "16",
|
|
3256
|
+
"value": 16
|
|
3257
|
+
}
|
|
3258
|
+
],
|
|
3259
|
+
"description": "Padding step on the container spacing scale; 0 is none. Default 4."
|
|
2373
3260
|
},
|
|
2374
3261
|
{
|
|
2375
3262
|
"name": "centered",
|
|
@@ -2426,10 +3313,6 @@
|
|
|
2426
3313
|
"of": "string",
|
|
2427
3314
|
"description": "Action IDS — the names of actions declared on the object's own metadata — rendered in the header before any host-injected system actions. An id whose action declares neither record_header nor record_more in its locations renders nowhere."
|
|
2428
3315
|
},
|
|
2429
|
-
{
|
|
2430
|
-
"name": "breadcrumb",
|
|
2431
|
-
"type": "boolean"
|
|
2432
|
-
},
|
|
2433
3316
|
{
|
|
2434
3317
|
"name": "recordChrome",
|
|
2435
3318
|
"type": "boolean",
|