@aithe/aithe-ui 26.2.3 → 26.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +19 -11
- package/dist/apps/admin/app.js +12 -0
- package/dist/apps/admin/components/admin-app.js +83 -0
- package/dist/apps/admin/components/admin-layout.d.ts +0 -1
- package/dist/apps/admin/components/admin-layout.d.ts.map +1 -1
- package/dist/apps/admin/components/admin-layout.js +250 -0
- package/dist/apps/admin/datahub/auth.js +24 -0
- package/dist/apps/admin/datahub/dashboard.js +16 -0
- package/dist/apps/admin/datahub/index.js +42 -0
- package/dist/apps/admin/datahub/menu.js +16 -0
- package/dist/apps/admin/datahub/mock/auth.js +11 -0
- package/dist/apps/admin/datahub/mock/dashboard.js +10 -0
- package/dist/apps/admin/datahub/mock/menu.js +42 -0
- package/dist/apps/admin/i18n/de-DE.js +37 -0
- package/dist/apps/admin/i18n/en-US.js +37 -0
- package/dist/apps/admin/i18n/es-ES.js +38 -0
- package/dist/apps/admin/i18n/fr-FR.js +37 -0
- package/dist/apps/admin/i18n/index.js +27 -0
- package/dist/apps/admin/i18n/ja-JP.js +38 -0
- package/dist/apps/admin/i18n/ko-KR.js +37 -0
- package/dist/apps/admin/i18n/pt-BR.js +37 -0
- package/dist/apps/admin/i18n/zh-CN.js +37 -0
- package/dist/apps/admin/i18n/zh-HK.js +37 -0
- package/dist/apps/admin/i18n/zh-TW.js +37 -0
- package/dist/apps/admin/pages/dashboard-page.d.ts +1 -0
- package/dist/apps/admin/pages/dashboard-page.d.ts.map +1 -1
- package/dist/apps/admin/pages/dashboard-page.js +199 -0
- package/dist/apps/admin/pages/login-page.js +278 -0
- package/dist/apps/admin/pages/not-found-page.js +57 -0
- package/dist/apps/admin/pages/role-page.js +76 -0
- package/dist/apps/admin/pages/settings-page.js +95 -0
- package/dist/apps/admin/pages/user-page.js +76 -0
- package/dist/apps/admin/router/index.js +43 -0
- package/dist/apps/admin/standalone.js +1 -0
- package/dist/apps/admin/store/auth.js +42 -0
- package/dist/apps/api/app.js +82 -0
- package/dist/apps/api/demo-data.d.ts.map +1 -1
- package/dist/apps/api/demo-data.js +965 -0
- package/dist/apps/api/docs-viewer.js +684 -0
- package/dist/apps/api/i18n/de-DE.d.ts.map +1 -1
- package/dist/apps/api/i18n/de-DE.js +131 -0
- package/dist/apps/api/i18n/en-US.d.ts.map +1 -1
- package/dist/apps/api/i18n/en-US.js +141 -0
- package/dist/apps/api/i18n/es-ES.d.ts.map +1 -1
- package/dist/apps/api/i18n/es-ES.js +131 -0
- package/dist/apps/api/i18n/fr-FR.d.ts.map +1 -1
- package/dist/apps/api/i18n/fr-FR.js +131 -0
- package/dist/apps/api/i18n/index.js +27 -0
- package/dist/apps/api/i18n/ja-JP.d.ts.map +1 -1
- package/dist/apps/api/i18n/ja-JP.js +131 -0
- package/dist/apps/api/i18n/ko-KR.d.ts.map +1 -1
- package/dist/apps/api/i18n/ko-KR.js +131 -0
- package/dist/apps/api/i18n/pt-BR.d.ts.map +1 -1
- package/dist/apps/api/i18n/pt-BR.js +131 -0
- package/dist/apps/api/i18n/zh-CN.d.ts.map +1 -1
- package/dist/apps/api/i18n/zh-CN.js +141 -0
- package/dist/apps/api/i18n/zh-HK.d.ts.map +1 -1
- package/dist/apps/api/i18n/zh-HK.js +131 -0
- package/dist/apps/api/i18n/zh-TW.d.ts.map +1 -1
- package/dist/apps/api/i18n/zh-TW.js +131 -0
- package/dist/apps/api/pages/docs.d.ts.map +1 -1
- package/dist/apps/api/pages/docs.js +369 -0
- package/dist/apps/api/standalone.js +1 -0
- package/dist/apps/demo/app.d.ts.map +1 -1
- package/dist/apps/demo/app.js +275 -0
- package/dist/apps/demo/editor.d.ts.map +1 -1
- package/dist/apps/demo/editor.js +270 -0
- package/dist/apps/demo/helpers.js +7 -0
- package/dist/apps/demo/i18n/de-DE.d.ts.map +1 -1
- package/dist/apps/demo/i18n/de-DE.js +289 -0
- package/dist/apps/demo/i18n/en-US.d.ts.map +1 -1
- package/dist/apps/demo/i18n/en-US.js +301 -0
- package/dist/apps/demo/i18n/es-ES.d.ts.map +1 -1
- package/dist/apps/demo/i18n/es-ES.js +289 -0
- package/dist/apps/demo/i18n/fr-FR.d.ts.map +1 -1
- package/dist/apps/demo/i18n/fr-FR.js +289 -0
- package/dist/apps/demo/i18n/index.js +27 -0
- package/dist/apps/demo/i18n/ja-JP.d.ts.map +1 -1
- package/dist/apps/demo/i18n/ja-JP.js +289 -0
- package/dist/apps/demo/i18n/ko-KR.d.ts.map +1 -1
- package/dist/apps/demo/i18n/ko-KR.js +289 -0
- package/dist/apps/demo/i18n/pt-BR.d.ts.map +1 -1
- package/dist/apps/demo/i18n/pt-BR.js +289 -0
- package/dist/apps/demo/i18n/zh-CN.d.ts.map +1 -1
- package/dist/apps/demo/i18n/zh-CN.js +301 -0
- package/dist/apps/demo/i18n/zh-HK.d.ts.map +1 -1
- package/dist/apps/demo/i18n/zh-HK.js +289 -0
- package/dist/apps/demo/i18n/zh-TW.d.ts.map +1 -1
- package/dist/apps/demo/i18n/zh-TW.js +289 -0
- package/dist/apps/demo/pages/autoform.d.ts.map +1 -1
- package/dist/apps/demo/pages/autoform.js +422 -0
- package/dist/apps/demo/pages/autoview.d.ts +3 -0
- package/dist/apps/demo/pages/autoview.d.ts.map +1 -0
- package/dist/apps/demo/pages/autoview.js +310 -0
- package/dist/apps/demo/pages/basic.js +157 -0
- package/dist/apps/demo/pages/code.js +1088 -0
- package/dist/apps/demo/pages/container.js +42 -0
- package/dist/apps/demo/pages/dashboard.js +159 -0
- package/dist/apps/demo/pages/data.d.ts.map +1 -1
- package/dist/apps/demo/pages/data.js +327 -0
- package/dist/apps/demo/pages/display.d.ts.map +1 -1
- package/dist/apps/demo/pages/display.js +295 -0
- package/dist/apps/demo/pages/feedback.js +94 -0
- package/dist/apps/demo/pages/form.d.ts.map +1 -1
- package/dist/apps/demo/pages/form.js +119 -0
- package/dist/apps/demo/pages/layout.js +74 -0
- package/dist/apps/demo/pages/navigation.js +54 -0
- package/dist/apps/demo/pages/progress.js +42 -0
- package/dist/apps/demo/pages/theme.js +126 -0
- package/dist/apps/demo/standalone.js +1 -0
- package/dist/components/basic/AGENTS.md +1 -0
- package/dist/components/basic/avatar.js +168 -0
- package/dist/components/basic/badge.js +157 -0
- package/dist/components/basic/button-group.js +70 -0
- package/dist/components/basic/button.d.ts +2 -4
- package/dist/components/basic/button.d.ts.map +1 -1
- package/dist/components/basic/button.js +315 -0
- package/dist/components/basic/card.js +186 -0
- package/dist/components/basic/chip.js +103 -0
- package/dist/components/basic/divider.js +127 -0
- package/dist/components/basic/empty.js +72 -0
- package/dist/components/basic/icon.js +129 -0
- package/dist/components/basic/input.d.ts.map +1 -1
- package/dist/components/basic/input.js +314 -0
- package/dist/components/basic/tag.d.ts +7 -2
- package/dist/components/basic/tag.d.ts.map +1 -1
- package/dist/components/basic/tag.js +248 -0
- package/dist/components/basic/textarea.d.ts +0 -1
- package/dist/components/basic/textarea.d.ts.map +1 -1
- package/dist/components/basic/textarea.js +130 -0
- package/dist/components/container/callout.js +108 -0
- package/dist/components/container/details.js +117 -0
- package/dist/components/container/scroller.js +144 -0
- package/dist/components/container/split-panel.js +150 -0
- package/dist/components/data/AGENTS.md +1 -1
- package/dist/components/data/box-table.d.ts +53 -0
- package/dist/components/data/box-table.d.ts.map +1 -0
- package/dist/components/data/box-table.js +220 -0
- package/dist/components/data/dropdown.d.ts +8 -5
- package/dist/components/data/dropdown.d.ts.map +1 -1
- package/dist/components/data/dropdown.js +219 -0
- package/dist/components/data/metrics-group.js +180 -0
- package/dist/components/data/metrics.d.ts +11 -0
- package/dist/components/data/metrics.d.ts.map +1 -1
- package/dist/components/data/metrics.js +309 -0
- package/dist/components/data/pagination.js +119 -0
- package/dist/components/data/tab-pane.d.ts +58 -12
- package/dist/components/data/tab-pane.d.ts.map +1 -1
- package/dist/components/data/tab-pane.js +130 -0
- package/dist/components/data/table-column.d.ts +29 -5
- package/dist/components/data/table-column.d.ts.map +1 -1
- package/dist/components/data/table-column.js +123 -0
- package/dist/components/data/table.d.ts +134 -54
- package/dist/components/data/table.d.ts.map +1 -1
- package/dist/components/data/table.js +1210 -0
- package/dist/components/data/tabs.d.ts +60 -3
- package/dist/components/data/tabs.d.ts.map +1 -1
- package/dist/components/data/tabs.js +416 -0
- package/dist/components/data/timeline-item.js +127 -0
- package/dist/components/data/timeline.js +204 -0
- package/dist/components/data/tree-menu.d.ts +12 -2
- package/dist/components/data/tree-menu.d.ts.map +1 -1
- package/dist/components/data/tree-menu.js +482 -0
- package/dist/components/data/tree.js +269 -0
- package/dist/components/display/AGENTS.md +5 -2
- package/dist/components/display/animated-image.js +98 -0
- package/dist/components/display/autoview.d.ts +139 -0
- package/dist/components/display/autoview.d.ts.map +1 -0
- package/dist/components/display/autoview.js +460 -0
- package/dist/components/display/brief-box.d.ts +42 -0
- package/dist/components/display/brief-box.d.ts.map +1 -0
- package/dist/components/display/brief-box.js +117 -0
- package/dist/components/display/carousel.js +223 -0
- package/dist/components/display/code-editor.d.ts.map +1 -1
- package/dist/components/display/code-editor.js +976 -0
- package/dist/components/display/comparison.js +132 -0
- package/dist/components/display/desc-item.d.ts +48 -0
- package/dist/components/display/desc-item.d.ts.map +1 -0
- package/dist/components/display/desc-item.js +150 -0
- package/dist/components/display/desc.d.ts +68 -0
- package/dist/components/display/desc.d.ts.map +1 -0
- package/dist/components/display/desc.js +405 -0
- package/dist/components/display/detail-box.d.ts +51 -0
- package/dist/components/display/detail-box.d.ts.map +1 -0
- package/dist/components/display/detail-box.js +157 -0
- package/dist/components/display/label.js +166 -0
- package/dist/components/display/markdown-editor.js +319 -0
- package/dist/components/display/markdown.d.ts.map +1 -1
- package/dist/components/display/markdown.js +193 -0
- package/dist/components/display/mini-box.d.ts +31 -0
- package/dist/components/display/mini-box.d.ts.map +1 -0
- package/dist/components/display/mini-box.js +137 -0
- package/dist/components/display/profile.d.ts +18 -0
- package/dist/components/display/profile.d.ts.map +1 -0
- package/dist/components/display/profile.js +164 -0
- package/dist/components/feedback/AGENTS.md +1 -0
- package/dist/components/feedback/alert.js +150 -0
- package/dist/components/feedback/dialog.js +228 -0
- package/dist/components/feedback/drawer.d.ts.map +1 -1
- package/dist/components/feedback/drawer.js +338 -0
- package/dist/components/feedback/loading.js +130 -0
- package/dist/components/feedback/modal.d.ts.map +1 -1
- package/dist/components/feedback/modal.js +303 -0
- package/dist/components/feedback/notification.js +170 -0
- package/dist/components/feedback/popover.d.ts +1 -1
- package/dist/components/feedback/popover.js +124 -0
- package/dist/components/feedback/toast.js +142 -0
- package/dist/components/feedback/tooltip.d.ts +1 -1
- package/dist/components/feedback/tooltip.js +153 -0
- package/dist/components/form/AGENTS.md +4 -0
- package/dist/components/form/autoform-item.d.ts +6 -0
- package/dist/components/form/autoform-item.d.ts.map +1 -1
- package/dist/components/form/autoform-item.js +791 -0
- package/dist/components/form/autoform.d.ts +15 -5
- package/dist/components/form/autoform.d.ts.map +1 -1
- package/dist/components/form/autoform.js +303 -0
- package/dist/components/form/checkbox-group.js +118 -0
- package/dist/components/form/checkbox.js +123 -0
- package/dist/components/form/color-picker.js +148 -0
- package/dist/components/form/combobox.d.ts +4 -0
- package/dist/components/form/combobox.d.ts.map +1 -1
- package/dist/components/form/combobox.js +325 -0
- package/dist/components/form/date-picker.js +123 -0
- package/dist/components/form/form-item.d.ts.map +1 -1
- package/dist/components/form/form-item.js +141 -0
- package/dist/components/form/form.js +94 -0
- package/dist/components/form/radio-group.js +106 -0
- package/dist/components/form/radio.js +110 -0
- package/dist/components/form/rate.js +116 -0
- package/dist/components/form/select.d.ts +5 -1
- package/dist/components/form/select.d.ts.map +1 -1
- package/dist/components/form/select.js +539 -0
- package/dist/components/form/slider.js +134 -0
- package/dist/components/form/switch.js +146 -0
- package/dist/components/form/time-picker.js +92 -0
- package/dist/components/form/transfer.js +273 -0
- package/dist/components/form/upload.js +138 -0
- package/dist/components/framework/body.js +333 -0
- package/dist/components/framework/dashboard-panel.js +519 -0
- package/dist/components/framework/dashboard.d.ts.map +1 -1
- package/dist/components/framework/dashboard.js +1084 -0
- package/dist/components/framework/header.js +237 -0
- package/dist/components/framework/log-panel.js +637 -0
- package/dist/components/framework/page.js +151 -0
- package/dist/components/framework/sidebar.d.ts +4 -10
- package/dist/components/framework/sidebar.d.ts.map +1 -1
- package/dist/components/framework/sidebar.js +477 -0
- package/dist/components/layout/affix.js +137 -0
- package/dist/components/layout/col.js +103 -0
- package/dist/components/layout/collapse-item.js +165 -0
- package/dist/components/layout/collapse.js +108 -0
- package/dist/components/layout/container.js +92 -0
- package/dist/components/layout/flex.js +100 -0
- package/dist/components/layout/row.js +103 -0
- package/dist/components/layout/space.js +85 -0
- package/dist/components/navigation/back-top.js +127 -0
- package/dist/components/navigation/breadcrumb-item.js +108 -0
- package/dist/components/navigation/breadcrumb.js +70 -0
- package/dist/components/navigation/menu-item.js +181 -0
- package/dist/components/navigation/menu.js +126 -0
- package/dist/components/navigation/steps.js +183 -0
- package/dist/components/navigation/sub-menu.d.ts.map +1 -1
- package/dist/components/navigation/sub-menu.js +252 -0
- package/dist/components/progress/progress-bar.js +97 -0
- package/dist/components/progress/progress-ring.js +111 -0
- package/dist/components/progress/skeleton.js +108 -0
- package/dist/components/progress/spinner.js +129 -0
- package/dist/components/theme/locale-switch.js +241 -0
- package/dist/components/theme/shadow-picker.js +233 -0
- package/dist/components/theme/shape-picker.js +232 -0
- package/dist/components/theme/theme-picker.js +236 -0
- package/dist/components/theme/theme-preview.d.ts +1 -2
- package/dist/components/theme/theme-preview.d.ts.map +1 -1
- package/dist/components/theme/theme-preview.js +376 -0
- package/dist/components/theme/theme-switch.d.ts.map +1 -1
- package/dist/components/theme/theme-switch.js +318 -0
- package/dist/components/theme/typo-picker.js +219 -0
- package/dist/core/AGENTS.md +6 -1
- package/dist/core/aithe-element.d.ts +2 -2
- package/dist/core/aithe-element.js +135 -0
- package/dist/core/aithe-widget.js +30 -0
- package/dist/core/anchored-overlay.d.ts +3 -0
- package/dist/core/anchored-overlay.d.ts.map +1 -1
- package/dist/core/anchored-overlay.js +111 -0
- package/dist/core/autoform/autoform.js +79 -0
- package/dist/core/autoform/autoview.d.ts +86 -0
- package/dist/core/autoform/autoview.d.ts.map +1 -0
- package/dist/core/autoform/autoview.js +37 -0
- package/dist/core/autoform/condition.js +170 -0
- package/dist/core/autoform/index.d.ts +2 -0
- package/dist/core/autoform/index.d.ts.map +1 -1
- package/dist/core/autoform/index.js +9 -0
- package/dist/core/autoform/types.js +7 -0
- package/dist/core/datahub/__tests__/force-options.test.d.ts +8 -0
- package/dist/core/datahub/__tests__/force-options.test.d.ts.map +1 -0
- package/dist/core/datahub/__tests__/force-options.test.js +161 -0
- package/dist/core/datahub/config/strategy.d.ts +1 -1
- package/dist/core/datahub/config/strategy.d.ts.map +1 -1
- package/dist/core/datahub/config/strategy.js +50 -0
- package/dist/core/datahub/core/adapter/fetch-adapter.d.ts +1 -1
- package/dist/core/datahub/core/adapter/fetch-adapter.d.ts.map +1 -1
- package/dist/core/datahub/core/adapter/fetch-adapter.js +118 -0
- package/dist/core/datahub/core/adapter/index.js +7 -0
- package/dist/core/datahub/core/adapter/mock-adapter.d.ts +1 -1
- package/dist/core/datahub/core/adapter/mock-adapter.d.ts.map +1 -1
- package/dist/core/datahub/core/adapter/mock-adapter.js +58 -0
- package/dist/core/datahub/core/api-styles.d.ts +1 -1
- package/dist/core/datahub/core/api-styles.d.ts.map +1 -1
- package/dist/core/datahub/core/api-styles.js +136 -0
- package/dist/core/datahub/core/datahub-core.d.ts +53 -3
- package/dist/core/datahub/core/datahub-core.d.ts.map +1 -1
- package/dist/core/datahub/core/datahub-core.js +520 -0
- package/dist/core/datahub/core/index.js +7 -0
- package/dist/core/datahub/index.js +50 -0
- package/dist/core/datahub/types.d.ts +24 -0
- package/dist/core/datahub/types.d.ts.map +1 -1
- package/dist/core/datahub/types.js +31 -0
- package/dist/core/datahub/utils/cache.js +55 -0
- package/dist/core/datahub/utils/common.js +23 -0
- package/dist/core/datahub/utils/dedup.d.ts +1 -1
- package/dist/core/datahub/utils/dedup.d.ts.map +1 -1
- package/dist/core/datahub/utils/dedup.js +52 -0
- package/dist/core/datahub/utils/idempotent.js +61 -0
- package/dist/core/datahub/utils/is-query.js +53 -0
- package/dist/core/datahub/utils/loading.js +78 -0
- package/dist/core/filter/__tests__/index.test.d.ts +2 -0
- package/dist/core/filter/__tests__/index.test.d.ts.map +1 -0
- package/dist/core/filter/__tests__/index.test.js +230 -0
- package/dist/core/filter/builtins.d.ts +60 -0
- package/dist/core/filter/builtins.d.ts.map +1 -0
- package/dist/core/filter/builtins.js +172 -0
- package/dist/core/filter/factory.d.ts +54 -0
- package/dist/core/filter/factory.d.ts.map +1 -0
- package/dist/core/filter/factory.js +96 -0
- package/dist/core/filter/index.d.ts +11 -0
- package/dist/core/filter/index.d.ts.map +1 -0
- package/dist/core/filter/index.js +9 -0
- package/dist/core/filter/types.d.ts +12 -0
- package/dist/core/filter/types.d.ts.map +1 -0
- package/dist/core/filter/types.js +1 -0
- package/dist/core/floating.js +132 -0
- package/dist/core/highlight/index.js +43 -0
- package/dist/core/highlight/lang-bash.js +27 -0
- package/dist/core/highlight/lang-c.js +27 -0
- package/dist/core/highlight/lang-cmake.js +27 -0
- package/dist/core/highlight/lang-cpp.js +27 -0
- package/dist/core/highlight/lang-css.js +24 -0
- package/dist/core/highlight/lang-dart.js +27 -0
- package/dist/core/highlight/lang-dockerfile.js +16 -0
- package/dist/core/highlight/lang-fsharp.js +23 -0
- package/dist/core/highlight/lang-go.js +22 -0
- package/dist/core/highlight/lang-html.js +12 -0
- package/dist/core/highlight/lang-java.js +22 -0
- package/dist/core/highlight/lang-javascript.js +26 -0
- package/dist/core/highlight/lang-json.js +13 -0
- package/dist/core/highlight/lang-jsonline.js +13 -0
- package/dist/core/highlight/lang-jsx.js +30 -0
- package/dist/core/highlight/lang-kotlin.js +27 -0
- package/dist/core/highlight/lang-latex.js +22 -0
- package/dist/core/highlight/lang-lua.js +26 -0
- package/dist/core/highlight/lang-makefile.js +22 -0
- package/dist/core/highlight/lang-markdown.js +18 -0
- package/dist/core/highlight/lang-objectivec.js +24 -0
- package/dist/core/highlight/lang-perl.js +30 -0
- package/dist/core/highlight/lang-powershell.js +23 -0
- package/dist/core/highlight/lang-python.js +27 -0
- package/dist/core/highlight/lang-r.js +21 -0
- package/dist/core/highlight/lang-ruby.js +29 -0
- package/dist/core/highlight/lang-rust.js +24 -0
- package/dist/core/highlight/lang-scala.js +26 -0
- package/dist/core/highlight/lang-sql.js +21 -0
- package/dist/core/highlight/lang-svelte.js +27 -0
- package/dist/core/highlight/lang-swift.js +28 -0
- package/dist/core/highlight/lang-tsx.js +35 -0
- package/dist/core/highlight/lang-typescript.js +31 -0
- package/dist/core/highlight/lang-vue.js +29 -0
- package/dist/core/highlight/lang-wasm.js +22 -0
- package/dist/core/highlight/lang-xml.js +12 -0
- package/dist/core/highlight/lang-yaml.js +14 -0
- package/dist/core/highlight/registry.js +99 -0
- package/dist/core/logger/LoggerCore.js +626 -0
- package/dist/core/logger/index.js +10 -0
- package/dist/core/logger/types.js +29 -0
- package/dist/core/markdown/index.js +20 -0
- package/dist/core/markdown/parser.d.ts +2 -0
- package/dist/core/markdown/parser.d.ts.map +1 -1
- package/dist/core/markdown/parser.js +376 -0
- package/dist/core/markdown/plugins.d.ts +2 -1
- package/dist/core/markdown/plugins.d.ts.map +1 -1
- package/dist/core/markdown/plugins.js +755 -0
- package/dist/core/markdown/types.d.ts +5 -0
- package/dist/core/markdown/types.d.ts.map +1 -1
- package/dist/core/markdown/types.js +7 -0
- package/dist/core/router/index.js +244 -0
- package/dist/core/styles.js +44 -0
- package/dist/core/types.d.ts +52 -3
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3695 -1622
- package/dist/index.js.map +1 -1
- package/dist/index.umd.js +1844 -758
- package/dist/index.umd.js.map +1 -1
- package/dist/styles/aithe-ui.d.ts +23 -0
- package/dist/styles/aithe-ui.d.ts.map +1 -1
- package/dist/styles/aithe-ui.js +185 -0
- package/dist/styles/global.css.d.ts +1 -1
- package/dist/styles/global.css.d.ts.map +1 -1
- package/dist/styles/global.css.js +119 -0
- package/dist/styles/i18n/index.js +206 -0
- package/dist/styles/i18n/locales/de-DE.d.ts.map +1 -1
- package/dist/styles/i18n/locales/de-DE.js +151 -0
- package/dist/styles/i18n/locales/en-US.d.ts.map +1 -1
- package/dist/styles/i18n/locales/en-US.js +160 -0
- package/dist/styles/i18n/locales/es-ES.d.ts.map +1 -1
- package/dist/styles/i18n/locales/es-ES.js +151 -0
- package/dist/styles/i18n/locales/fr-FR.d.ts.map +1 -1
- package/dist/styles/i18n/locales/fr-FR.js +151 -0
- package/dist/styles/i18n/locales/index.js +14 -0
- package/dist/styles/i18n/locales/ja-JP.d.ts.map +1 -1
- package/dist/styles/i18n/locales/ja-JP.js +151 -0
- package/dist/styles/i18n/locales/ko-KR.d.ts.map +1 -1
- package/dist/styles/i18n/locales/ko-KR.js +151 -0
- package/dist/styles/i18n/locales/pt-BR.d.ts.map +1 -1
- package/dist/styles/i18n/locales/pt-BR.js +151 -0
- package/dist/styles/i18n/locales/zh-CN.d.ts.map +1 -1
- package/dist/styles/i18n/locales/zh-CN.js +160 -0
- package/dist/styles/i18n/locales/zh-HK.d.ts.map +1 -1
- package/dist/styles/i18n/locales/zh-HK.js +151 -0
- package/dist/styles/i18n/locales/zh-TW.d.ts.map +1 -1
- package/dist/styles/i18n/locales/zh-TW.js +151 -0
- package/dist/styles/layout/index.js +88 -0
- package/dist/styles/mixins.js +43 -0
- package/dist/styles/shadow/cyber.js +19 -0
- package/dist/styles/shadow/deep.js +19 -0
- package/dist/styles/shadow/diffuse.js +19 -0
- package/dist/styles/shadow/flat.js +19 -0
- package/dist/styles/shadow/glassmorphism.js +19 -0
- package/dist/styles/shadow/index.js +129 -0
- package/dist/styles/shadow/neumorphism.js +21 -0
- package/dist/styles/shadow/retro.js +19 -0
- package/dist/styles/shadow/sharp-business.js +19 -0
- package/dist/styles/shadow/skeuomorphic.js +21 -0
- package/dist/styles/shape/chamfer.js +19 -0
- package/dist/styles/shape/circle.js +19 -0
- package/dist/styles/shape/index.js +174 -0
- package/dist/styles/shape/organic.js +19 -0
- package/dist/styles/shape/pill.js +19 -0
- package/dist/styles/shape/rounded.js +21 -0
- package/dist/styles/shape/rounder.js +19 -0
- package/dist/styles/shape/sharp.js +19 -0
- package/dist/styles/shape/smooth.js +19 -0
- package/dist/styles/theme/aliyun.d.ts +1 -1
- package/dist/styles/theme/aliyun.d.ts.map +1 -1
- package/dist/styles/theme/aliyun.js +102 -0
- package/dist/styles/theme/amber.d.ts +1 -1
- package/dist/styles/theme/amber.d.ts.map +1 -1
- package/dist/styles/theme/amber.js +101 -0
- package/dist/styles/theme/blue.d.ts +1 -1
- package/dist/styles/theme/blue.d.ts.map +1 -1
- package/dist/styles/theme/blue.js +101 -0
- package/dist/styles/theme/charcoal.d.ts +1 -1
- package/dist/styles/theme/charcoal.d.ts.map +1 -1
- package/dist/styles/theme/charcoal.js +106 -0
- package/dist/styles/theme/cyan.d.ts +1 -1
- package/dist/styles/theme/cyan.d.ts.map +1 -1
- package/dist/styles/theme/cyan.js +96 -0
- package/dist/styles/theme/dark.d.ts +1 -1
- package/dist/styles/theme/dark.d.ts.map +1 -1
- package/dist/styles/theme/dark.js +106 -0
- package/dist/styles/theme/ebony.d.ts +1 -1
- package/dist/styles/theme/ebony.d.ts.map +1 -1
- package/dist/styles/theme/ebony.js +106 -0
- package/dist/styles/theme/festive.d.ts +1 -1
- package/dist/styles/theme/festive.d.ts.map +1 -1
- package/dist/styles/theme/festive.js +101 -0
- package/dist/styles/theme/graphite.d.ts +1 -1
- package/dist/styles/theme/graphite.d.ts.map +1 -1
- package/dist/styles/theme/graphite.js +106 -0
- package/dist/styles/theme/gray.d.ts +1 -1
- package/dist/styles/theme/gray.d.ts.map +1 -1
- package/dist/styles/theme/gray.js +101 -0
- package/dist/styles/theme/huawei.d.ts +1 -1
- package/dist/styles/theme/huawei.d.ts.map +1 -1
- package/dist/styles/theme/huawei.js +102 -0
- package/dist/styles/theme/index.d.ts +1 -1
- package/dist/styles/theme/index.d.ts.map +1 -1
- package/dist/styles/theme/index.js +276 -0
- package/dist/styles/theme/indigo.d.ts +1 -1
- package/dist/styles/theme/indigo.d.ts.map +1 -1
- package/dist/styles/theme/indigo.js +101 -0
- package/dist/styles/theme/ink.d.ts +1 -1
- package/dist/styles/theme/ink.d.ts.map +1 -1
- package/dist/styles/theme/ink.js +106 -0
- package/dist/styles/theme/light.d.ts +1 -1
- package/dist/styles/theme/light.d.ts.map +1 -1
- package/dist/styles/theme/light.js +102 -0
- package/dist/styles/theme/midnight.d.ts +1 -1
- package/dist/styles/theme/midnight.d.ts.map +1 -1
- package/dist/styles/theme/midnight.js +106 -0
- package/dist/styles/theme/navy.d.ts +1 -1
- package/dist/styles/theme/navy.d.ts.map +1 -1
- package/dist/styles/theme/navy.js +106 -0
- package/dist/styles/theme/obsidian.d.ts +1 -1
- package/dist/styles/theme/obsidian.d.ts.map +1 -1
- package/dist/styles/theme/obsidian.js +106 -0
- package/dist/styles/theme/onyx.d.ts +1 -1
- package/dist/styles/theme/onyx.d.ts.map +1 -1
- package/dist/styles/theme/onyx.js +106 -0
- package/dist/styles/theme/orange.d.ts +1 -1
- package/dist/styles/theme/orange.d.ts.map +1 -1
- package/dist/styles/theme/orange.js +101 -0
- package/dist/styles/theme/pink.d.ts +1 -1
- package/dist/styles/theme/pink.d.ts.map +1 -1
- package/dist/styles/theme/pink.js +101 -0
- package/dist/styles/theme/purple.d.ts +1 -1
- package/dist/styles/theme/purple.d.ts.map +1 -1
- package/dist/styles/theme/purple.js +101 -0
- package/dist/styles/theme/raisin.d.ts +1 -1
- package/dist/styles/theme/raisin.d.ts.map +1 -1
- package/dist/styles/theme/raisin.js +106 -0
- package/dist/styles/theme/slate.d.ts +1 -1
- package/dist/styles/theme/slate.d.ts.map +1 -1
- package/dist/styles/theme/slate.js +106 -0
- package/dist/styles/theme/teal.d.ts +1 -1
- package/dist/styles/theme/teal.d.ts.map +1 -1
- package/dist/styles/theme/teal.js +101 -0
- package/dist/styles/theme/tianyi.d.ts +1 -1
- package/dist/styles/theme/tianyi.d.ts.map +1 -1
- package/dist/styles/theme/tianyi.js +102 -0
- package/dist/styles/types.js +1 -0
- package/dist/styles/typo/business.js +34 -0
- package/dist/styles/typo/compact.js +34 -0
- package/dist/styles/typo/index.js +99 -0
- package/dist/styles/typo/luxury.js +34 -0
- package/dist/styles/typo/minimal.js +34 -0
- package/dist/types/index.js +2 -0
- package/dist/utils/dom.js +51 -0
- package/dist/utils/events.js +32 -0
- package/dist/utils/icon.js +176 -0
- package/dist/utils/index.js +4 -0
- package/dist/utils/utils.d.ts +5 -5
- package/dist/utils/utils.js +89 -0
- package/dist/utils/validation.js +52 -0
- package/docs/api/basic/button.md +9 -6
- package/docs/api/basic/tag.md +24 -17
- package/docs/api/data/box-table.md +73 -0
- package/docs/api/data/dropdown.md +3 -2
- package/docs/api/data/metrics.md +2 -0
- package/docs/api/data/table-column.md +37 -23
- package/docs/api/data/table.md +158 -44
- package/docs/api/data/tabs.md +46 -1
- package/docs/api/data/tree-menu.md +55 -2
- package/docs/api/display/autoview.md +277 -0
- package/docs/api/display/box.md +66 -0
- package/docs/api/display/brief-box.md +73 -0
- package/docs/api/display/desc-item.md +57 -0
- package/docs/api/display/desc.md +246 -0
- package/docs/api/display/detail-box.md +75 -0
- package/docs/api/display/mini-box.md +100 -0
- package/docs/api/display/profile.md +92 -0
- package/docs/api/feedback/popover.md +10 -10
- package/docs/api/feedback/tooltip.md +14 -14
- package/docs/api/form/autoform-item.md +115 -0
- package/docs/api/form/autoform.md +7 -3
- package/docs/api/form/combobox.md +27 -7
- package/docs/api/form/select.md +50 -28
- package/docs/api/framework/log-panel.md +46 -0
- package/docs/api/framework/sidebar.md +3 -2
- package/docs/api/summary.md +46 -35
- package/docs/api/theme/theme-switch.md +1 -1
- package/docs/autoform.md +14 -33
- package/docs/changelog/CHANGELOG.md +155 -0
- package/docs/changelog/VERSION_26.3.1.md +966 -0
- package/docs/changelog/VERSION_26.3.2.md +852 -0
- package/docs/datahub.md +4 -1
- package/docs/filter.md +332 -0
- package/docs/framework-integration.md +2 -2
- package/docs/guide.md +72 -6
- package/docs/i18n.md +2 -4
- package/docs/issue/26.3.1/issue_26.3.1.0.md +84 -0
- package/docs/issue/26.3.1/issue_26.3.1.1.md +72 -0
- package/docs/issue/26.3.1/issue_26.3.1.2.md +75 -0
- package/docs/issue/26.3.1/issue_26.3.1.3.md +78 -0
- package/docs/issue/26.3.1/issue_26.3.1.4.md +113 -0
- package/docs/issue/26.3.1/issue_26.3.1.5.md +142 -0
- package/docs/issue/26.3.1/issue_26.3.1.6.md +100 -0
- package/docs/issue/26.3.1/issue_26.3.1.7.md +78 -0
- package/docs/issue/26.3.2/issue_26.3.2.1.md +46 -0
- package/docs/issue/26.3.2/issue_26.3.2.2.md +82 -0
- package/docs/issue/26.3.2/issue_26.3.2.3.md +57 -0
- package/docs/issue/26.3.2/issue_26.3.2.4.md +43 -0
- package/docs/issue/AGENTS.md +24 -3
- package/docs/markdown.md +2 -2
- package/docs/quickstart.md +5 -5
- package/docs/theming.md +5 -4
- package/package.json +5 -2
- package/dist/components/navigation/dropdown.d.ts +0 -56
- package/dist/components/navigation/dropdown.d.ts.map +0 -1
- /package/docs/issue/{issue_26.2.2.1.md → 26.2.2/issue_26.2.2.1.md} +0 -0
- /package/docs/issue/{issue_26.2.2.2.md → 26.2.2/issue_26.2.2.2.md} +0 -0
- /package/docs/issue/{issue_26.2.2.3.md → 26.2.2/issue_26.2.2.3.md} +0 -0
- /package/docs/issue/{issue_26.2.2.4.md → 26.2.2/issue_26.2.2.4.md} +0 -0
- /package/docs/issue/{issue_26.2.3.1.md → 26.2.3/issue_26.2.3.1.md} +0 -0
- /package/docs/issue/{issue_26.2.3.10.md → 26.2.3/issue_26.2.3.10.md} +0 -0
- /package/docs/issue/{issue_26.2.3.11.md → 26.2.3/issue_26.2.3.11.md} +0 -0
- /package/docs/issue/{issue_26.2.3.12.md → 26.2.3/issue_26.2.3.12.md} +0 -0
- /package/docs/issue/{issue_26.2.3.13.md → 26.2.3/issue_26.2.3.13.md} +0 -0
- /package/docs/issue/{issue_26.2.3.14.md → 26.2.3/issue_26.2.3.14.md} +0 -0
- /package/docs/issue/{issue_26.2.3.15.md → 26.2.3/issue_26.2.3.15.md} +0 -0
- /package/docs/issue/{issue_26.2.3.16.md → 26.2.3/issue_26.2.3.16.md} +0 -0
- /package/docs/issue/{issue_26.2.3.2.md → 26.2.3/issue_26.2.3.2.md} +0 -0
- /package/docs/issue/{issue_26.2.3.3.md → 26.2.3/issue_26.2.3.3.md} +0 -0
- /package/docs/issue/{issue_26.2.3.4.md → 26.2.3/issue_26.2.3.4.md} +0 -0
- /package/docs/issue/{issue_26.2.3.5.md → 26.2.3/issue_26.2.3.5.md} +0 -0
- /package/docs/issue/{issue_26.2.3.6.md → 26.2.3/issue_26.2.3.6.md} +0 -0
- /package/docs/issue/{issue_26.2.3.7.md → 26.2.3/issue_26.2.3.7.md} +0 -0
- /package/docs/issue/{issue_26.2.3.8.md → 26.2.3/issue_26.2.3.8.md} +0 -0
- /package/docs/issue/{issue_26.2.3.9.md → 26.2.3/issue_26.2.3.9.md} +0 -0
|
@@ -0,0 +1,460 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* @file JSON-driven read-only auto view / JSON 驱动的只读自动视图
|
|
9
|
+
* @description Renders a read-only detail view from a FormFieldConfig JSON array and a data object.
|
|
10
|
+
* Built as a thin adapter on top of <aithe-desc>: parses the field config, resolves
|
|
11
|
+
* dependency-based visibility, transforms values per control type, and injects
|
|
12
|
+
* type-aware read-only content into <aithe-desc-item> slots.
|
|
13
|
+
* 基于 <aithe-desc> 的轻量适配器:解析字段配置,解析依赖联动显隐,
|
|
14
|
+
* 按控件类型转换值,将类型感知的只读内容注入 <aithe-desc-item> 的 slot。
|
|
15
|
+
*/
|
|
16
|
+
import { css, html, nothing } from 'lit';
|
|
17
|
+
import { customElement, property } from 'lit/decorators.js';
|
|
18
|
+
import { AitheElement } from '../../core/aithe-element';
|
|
19
|
+
import { aitheBaseStyles } from '../../core/styles';
|
|
20
|
+
import { t } from '../../styles/i18n';
|
|
21
|
+
import { filterFactory } from '../../core/filter';
|
|
22
|
+
import { FormRuleEngine, ViewRegistry } from '../../core/autoform';
|
|
23
|
+
import { safeStringify } from '../../utils/utils';
|
|
24
|
+
import './desc.js';
|
|
25
|
+
import './label.js';
|
|
26
|
+
import '../basic/tag.js';
|
|
27
|
+
/**
|
|
28
|
+
* JSON-driven read-only detail view, the display-only counterpart of <aithe-autoform>.
|
|
29
|
+
* JSON 驱动的只读详情视图,<aithe-autoform> 的只读镜像。
|
|
30
|
+
*
|
|
31
|
+
* @description Shares the same FormFieldConfig model as autoform, rendering field values
|
|
32
|
+
* as a structured description list. Supports dependency-based show/hide rules,
|
|
33
|
+
* per-type read-only renderers (switch→badge, select→label lookup, etc.),
|
|
34
|
+
* and custom renderers via ViewRegistry.
|
|
35
|
+
* 与 autoform 共用 FormFieldConfig 模型,将字段值渲染为结构化描述列表。
|
|
36
|
+
* 支持依赖联动显隐、按类型的只读渲染器(switch→徽章、select→label 反查等),
|
|
37
|
+
* 以及通过 ViewRegistry 注册的自定义渲染器。
|
|
38
|
+
*
|
|
39
|
+
* @slot title - Custom title content (passed through to desc). 自定义标题内容(透传给 desc)。
|
|
40
|
+
* @slot extra - Extra action content in the header (passed through to desc). 头部额外操作内容(透传给 desc)。
|
|
41
|
+
*
|
|
42
|
+
* @fires aithe-view-ready - Emitted after initial render with current visible values. 初始渲染完成后触发,携带当前可见字段值。
|
|
43
|
+
*
|
|
44
|
+
* @example
|
|
45
|
+
* ```html
|
|
46
|
+
* <aithe-autoview
|
|
47
|
+
* fields='[
|
|
48
|
+
* {"name":"username","type":"input","label":"用户名"},
|
|
49
|
+
* {"name":"role","type":"select","label":"角色",
|
|
50
|
+
* "options":[{"label":"管理员","id":"admin"}]},
|
|
51
|
+
* {"name":"active","type":"switch","label":"状态"}
|
|
52
|
+
* ]'
|
|
53
|
+
* .data=${{username:"张三",role:"admin",active:true}}
|
|
54
|
+
* column="2"
|
|
55
|
+
* border
|
|
56
|
+
* ></aithe-autoview>
|
|
57
|
+
* ```
|
|
58
|
+
*/
|
|
59
|
+
let AitheAutoView = class AitheAutoView extends AitheElement {
|
|
60
|
+
constructor() {
|
|
61
|
+
super(...arguments);
|
|
62
|
+
/**
|
|
63
|
+
* JSON string of field configuration array. Same model as autoform's `fields`.
|
|
64
|
+
* 字段配置数组的 JSON 字符串,与 autoform 的 `fields` 模型一致。
|
|
65
|
+
*/
|
|
66
|
+
this.fields = '[]';
|
|
67
|
+
/**
|
|
68
|
+
* Display data object. Values are keyed by field name.
|
|
69
|
+
* Supports passing an object directly or a JSON string.
|
|
70
|
+
* 展示数据对象,按字段名取值。支持直接传对象或 JSON 字符串。
|
|
71
|
+
*/
|
|
72
|
+
this.data = {};
|
|
73
|
+
/** Number of columns in the grid layout. Passed to desc. 网格列数,透传给 desc。 */
|
|
74
|
+
this.column = 1;
|
|
75
|
+
/** Whether to show borders. Passed to desc. 是否显示边框,透传给 desc。 */
|
|
76
|
+
this.border = true;
|
|
77
|
+
/** Border style: 'none' / 'full' / 'row'. Passed to desc. 边框样式,透传给 desc。 */
|
|
78
|
+
this.borderStyle = 'none';
|
|
79
|
+
/** Label background style: 'filled' / 'none'. Passed to desc. 标签背景样式,透传给 desc。 */
|
|
80
|
+
this.labelBackground = 'filled';
|
|
81
|
+
/** Layout direction. Passed to desc. 布局方向,透传给 desc。 */
|
|
82
|
+
this.direction = 'horizontal';
|
|
83
|
+
/** Label cell width. Passed to desc. 标签单元格宽度,透传给 desc。 */
|
|
84
|
+
this.labelWidth = '150px';
|
|
85
|
+
/** Size preset. Passed to desc. 尺寸规格,透传给 desc。 */
|
|
86
|
+
this.size = 'md';
|
|
87
|
+
/** Title text in the header. Passed to desc. 头部标题文本,透传给 desc。 */
|
|
88
|
+
this.title = '';
|
|
89
|
+
/** Whether to show the title header. When false, the header row is hidden even if title or extra slot is set. Passed to desc. 是否显示标题头。为 false 时隐藏标题行,即使设置了 title 或 extra slot 也不显示,透传给 desc。 */
|
|
90
|
+
this.showTitle = true;
|
|
91
|
+
/** Max visible rows. 0 means no limit. Passed to desc. 最大可见行数,0 表示不限制,透传给 desc。 */
|
|
92
|
+
this.maxRows = 0;
|
|
93
|
+
/** Global empty value placeholder. Falls back to i18n. 全局空值占位文本,回退到 i18n。 */
|
|
94
|
+
this.emptyText = '';
|
|
95
|
+
}
|
|
96
|
+
static { this.styles = [
|
|
97
|
+
aitheBaseStyles,
|
|
98
|
+
css `
|
|
99
|
+
:host {
|
|
100
|
+
display: block;
|
|
101
|
+
width: 100%;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
.autoview-text {
|
|
105
|
+
color: var(--aithe-color-text);
|
|
106
|
+
font-size: var(--aithe-font-size-sm);
|
|
107
|
+
line-height: 1.5;
|
|
108
|
+
word-break: break-word;
|
|
109
|
+
overflow-wrap: break-word;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
.autoview-empty {
|
|
113
|
+
color: var(--aithe-color-text-muted, var(--aithe-color-text-secondary));
|
|
114
|
+
font-size: var(--aithe-font-size-sm);
|
|
115
|
+
line-height: 1.5;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
.autoview-tags {
|
|
119
|
+
display: inline-flex;
|
|
120
|
+
flex-wrap: wrap;
|
|
121
|
+
gap: var(--aithe-space-1, 4px);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
.autoview-color {
|
|
125
|
+
display: inline-flex;
|
|
126
|
+
align-items: center;
|
|
127
|
+
gap: var(--aithe-space-2, 8px);
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
.autoview-color-chip {
|
|
131
|
+
display: inline-block;
|
|
132
|
+
width: 16px;
|
|
133
|
+
height: 16px;
|
|
134
|
+
border-radius: var(--aithe-radius-sm, 3px);
|
|
135
|
+
border: 1px solid var(--aithe-color-border, #e5e6eb);
|
|
136
|
+
flex-shrink: 0;
|
|
137
|
+
}
|
|
138
|
+
`,
|
|
139
|
+
]; }
|
|
140
|
+
get _data() {
|
|
141
|
+
if (typeof this.data === 'string') {
|
|
142
|
+
if (!this.data)
|
|
143
|
+
return {};
|
|
144
|
+
try {
|
|
145
|
+
const parsed = JSON.parse(this.data);
|
|
146
|
+
return parsed && typeof parsed === 'object' && !Array.isArray(parsed) ? parsed : {};
|
|
147
|
+
}
|
|
148
|
+
catch {
|
|
149
|
+
return {};
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
return this.data ?? {};
|
|
153
|
+
}
|
|
154
|
+
get _emptyText() {
|
|
155
|
+
return this.emptyText || t('form.autoView.empty', '--');
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Returns the values of all visible fields.
|
|
159
|
+
* 返回所有可见字段的值。
|
|
160
|
+
*/
|
|
161
|
+
getValues() {
|
|
162
|
+
const configs = this.parseFields();
|
|
163
|
+
const data = this._data;
|
|
164
|
+
const values = {};
|
|
165
|
+
for (const field of configs) {
|
|
166
|
+
if (!this.isVisible(field, data))
|
|
167
|
+
continue;
|
|
168
|
+
const name = field.name ?? '';
|
|
169
|
+
if (!name)
|
|
170
|
+
continue;
|
|
171
|
+
values[name] = data[name] ?? field.dft ?? '';
|
|
172
|
+
}
|
|
173
|
+
return values;
|
|
174
|
+
}
|
|
175
|
+
/** Parses the fields JSON string into a typed array with fallback sanitization. 解析 fields JSON 字符串为类型化数组,含容错。 */
|
|
176
|
+
parseFields() {
|
|
177
|
+
const raw = this.fields || '[]';
|
|
178
|
+
try {
|
|
179
|
+
return JSON.parse(raw);
|
|
180
|
+
}
|
|
181
|
+
catch {
|
|
182
|
+
try {
|
|
183
|
+
const sanitized = raw.replaceAll(/\\(?!["\\/bfnrtu])/g, '\\\\');
|
|
184
|
+
return JSON.parse(sanitized);
|
|
185
|
+
}
|
|
186
|
+
catch {
|
|
187
|
+
return [];
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
/** Normalizes options from JSON string or array. 将 options 从 JSON 字符串或数组统一为数组。 */
|
|
192
|
+
normalizeOptions(raw) {
|
|
193
|
+
if (Array.isArray(raw))
|
|
194
|
+
return raw;
|
|
195
|
+
if (typeof raw === 'string') {
|
|
196
|
+
try {
|
|
197
|
+
const parsed = JSON.parse(raw || '[]');
|
|
198
|
+
return Array.isArray(parsed) ? parsed : [];
|
|
199
|
+
}
|
|
200
|
+
catch {
|
|
201
|
+
return [];
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
return [];
|
|
205
|
+
}
|
|
206
|
+
/** Normalizes dependency rules, parsing options for 'update' type rules. 规范化依赖规则。 */
|
|
207
|
+
normalizeRules(rules) {
|
|
208
|
+
if (!rules)
|
|
209
|
+
return [];
|
|
210
|
+
return rules.map((rule) => ({
|
|
211
|
+
...rule,
|
|
212
|
+
options: rule.type === 'update' && rule.options != null
|
|
213
|
+
? this.normalizeOptions(rule.options)
|
|
214
|
+
: rule.options,
|
|
215
|
+
}));
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* Evaluates show/hide rules to determine field visibility.
|
|
219
|
+
* Only 'show' and 'hide' rule types are honored in read-only mode;
|
|
220
|
+
* disable/enable/clear/update are ignored.
|
|
221
|
+
* 评估 show/hide 规则决定字段可见性。
|
|
222
|
+
* 只读模式下仅生效 show/hide,忽略 disable/enable/clear/update。
|
|
223
|
+
*/
|
|
224
|
+
isVisible(field, data) {
|
|
225
|
+
const rules = this.normalizeRules(field.rules);
|
|
226
|
+
const visibleRules = rules.filter((r) => r.type === 'show' || r.type === 'hide');
|
|
227
|
+
if (visibleRules.length === 0)
|
|
228
|
+
return true;
|
|
229
|
+
const depValues = {};
|
|
230
|
+
for (const dep of field.dependencies ?? []) {
|
|
231
|
+
depValues[dep] = data[dep] ?? '';
|
|
232
|
+
}
|
|
233
|
+
const result = FormRuleEngine.evaluate(visibleRules, depValues, {
|
|
234
|
+
visible: true,
|
|
235
|
+
disabled: false,
|
|
236
|
+
options: this.normalizeOptions(field.options),
|
|
237
|
+
value: safeStringify(data[field.name ?? ''] ?? field.dft ?? ''),
|
|
238
|
+
});
|
|
239
|
+
return result.visible;
|
|
240
|
+
}
|
|
241
|
+
/** Resolves the raw string value for a field from data or default. 从 data 或缺省值解析字段的原始字符串值。 */
|
|
242
|
+
resolveRawValue(field, data) {
|
|
243
|
+
const name = field.name ?? '';
|
|
244
|
+
const val = name in data ? data[name] : (field.dft ?? '');
|
|
245
|
+
if (val == null)
|
|
246
|
+
return '';
|
|
247
|
+
if (typeof val === 'boolean')
|
|
248
|
+
return val ? 'true' : 'false';
|
|
249
|
+
if (typeof val === 'number')
|
|
250
|
+
return String(val);
|
|
251
|
+
if (Array.isArray(val))
|
|
252
|
+
return JSON.stringify(val);
|
|
253
|
+
if (typeof val === 'object')
|
|
254
|
+
return safeStringify(val);
|
|
255
|
+
return safeStringify(val);
|
|
256
|
+
}
|
|
257
|
+
/** Transforms the raw string value into its typed display value. 将原始字符串值转换为类型化的展示值。 */
|
|
258
|
+
transformValue(field, rawValue) {
|
|
259
|
+
const type = field.type ?? 'input';
|
|
260
|
+
switch (type) {
|
|
261
|
+
case 'switch':
|
|
262
|
+
return rawValue === 'true' || rawValue === '';
|
|
263
|
+
case 'number': {
|
|
264
|
+
const num = Number(rawValue);
|
|
265
|
+
return Number.isNaN(num) ? '' : num;
|
|
266
|
+
}
|
|
267
|
+
case 'checkbox': {
|
|
268
|
+
try {
|
|
269
|
+
const parsed = JSON.parse(rawValue || '[]');
|
|
270
|
+
return Array.isArray(parsed) ? parsed : [];
|
|
271
|
+
}
|
|
272
|
+
catch {
|
|
273
|
+
return [];
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
default:
|
|
277
|
+
return rawValue;
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
/** Renders the type-aware read-only content for a field. 渲染字段的类型感知只读内容。 */
|
|
281
|
+
renderContent(field, data) {
|
|
282
|
+
const rawValue = this.resolveRawValue(field, data);
|
|
283
|
+
const value = this.transformValue(field, rawValue);
|
|
284
|
+
const options = this.normalizeOptions(field.options);
|
|
285
|
+
const emptyText = field.emptyText || this._emptyText;
|
|
286
|
+
const ctx = { value, rawValue, options, field, emptyText };
|
|
287
|
+
// Custom registered renderer takes precedence.
|
|
288
|
+
const custom = ViewRegistry.get(field.type ?? 'input');
|
|
289
|
+
if (custom) {
|
|
290
|
+
return custom.render(ctx);
|
|
291
|
+
}
|
|
292
|
+
return this.renderBuiltin(field, ctx);
|
|
293
|
+
}
|
|
294
|
+
/** Renders one of the built-in read-only views by control type. 按控件类型渲染内置只读视图。 */
|
|
295
|
+
renderBuiltin(field, ctx) {
|
|
296
|
+
const type = field.type ?? 'input';
|
|
297
|
+
// Apply filter expression if provided (for input/textarea/number/date types).
|
|
298
|
+
if (field.filter) {
|
|
299
|
+
return this.renderFiltered(ctx.rawValue, ctx.emptyText, field.filter);
|
|
300
|
+
}
|
|
301
|
+
switch (type) {
|
|
302
|
+
case 'select':
|
|
303
|
+
case 'radio':
|
|
304
|
+
return this.renderOptionLabel(ctx.options, ctx.rawValue, ctx.emptyText);
|
|
305
|
+
case 'checkbox':
|
|
306
|
+
return this.renderCheckboxTags(ctx.value, ctx.options, ctx.emptyText);
|
|
307
|
+
case 'switch':
|
|
308
|
+
return this.renderSwitch(ctx.value);
|
|
309
|
+
case 'date-picker':
|
|
310
|
+
case 'time-picker':
|
|
311
|
+
return this.renderDate(ctx.rawValue, ctx.emptyText);
|
|
312
|
+
case 'color-picker':
|
|
313
|
+
return this.renderColor(ctx.rawValue, ctx.emptyText);
|
|
314
|
+
case 'rate':
|
|
315
|
+
case 'slider':
|
|
316
|
+
return this.renderPlain(ctx.rawValue, ctx.emptyText);
|
|
317
|
+
default:
|
|
318
|
+
return this.renderPlain(ctx.rawValue, ctx.emptyText);
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
/** Renders a filter-formatted text value. 渲染过滤器格式化后的文本值。 */
|
|
322
|
+
renderFiltered(rawValue, emptyText, filterExpr) {
|
|
323
|
+
const filtered = filterFactory.format(rawValue, filterExpr);
|
|
324
|
+
const text = filtered == null || filtered === '' ? emptyText : safeStringify(filtered);
|
|
325
|
+
return html `<span class="autoview-text">${text}</span>`;
|
|
326
|
+
}
|
|
327
|
+
/** Renders the label of a matched option for select/radio. 渲染 select/radio 匹配选项的 label。 */
|
|
328
|
+
renderOptionLabel(options, rawValue, emptyText) {
|
|
329
|
+
const matched = options.find((o) => o.id === rawValue);
|
|
330
|
+
return html `<span class="autoview-text">${matched?.label ?? emptyText}</span>`;
|
|
331
|
+
}
|
|
332
|
+
/** Renders multiple tags for checkbox values. 渲染 checkbox 多值的标签组。 */
|
|
333
|
+
renderCheckboxTags(value, options, emptyText) {
|
|
334
|
+
const arr = Array.isArray(value) ? value : [];
|
|
335
|
+
if (arr.length === 0)
|
|
336
|
+
return html `<span class="autoview-empty">${emptyText}</span>`;
|
|
337
|
+
return html `<span class="autoview-tags">
|
|
338
|
+
${arr.map((id) => {
|
|
339
|
+
const matched = options.find((o) => o.id === id);
|
|
340
|
+
return html `<aithe-tag variant="default" size="sm">${matched?.label ?? id}</aithe-tag>`;
|
|
341
|
+
})}
|
|
342
|
+
</span>`;
|
|
343
|
+
}
|
|
344
|
+
/** Renders a yes/no tag for switch. 渲染 switch 的 是/否 标签。 */
|
|
345
|
+
renderSwitch(value) {
|
|
346
|
+
const on = value === true;
|
|
347
|
+
return html `<aithe-tag variant=${on ? 'success' : 'default'} size="sm">
|
|
348
|
+
${on ? t('form.autoView.yes', 'Yes') : t('form.autoView.no', 'No')}
|
|
349
|
+
</aithe-tag>`;
|
|
350
|
+
}
|
|
351
|
+
/** Renders a formatted date value. 渲染格式化日期值。 */
|
|
352
|
+
renderDate(rawValue, emptyText) {
|
|
353
|
+
if (!rawValue)
|
|
354
|
+
return html `<span class="autoview-empty">${emptyText}</span>`;
|
|
355
|
+
const filtered = filterFactory.format(rawValue, 'date yyyy-MM-dd');
|
|
356
|
+
return html `<span class="autoview-text">${filtered || emptyText}</span>`;
|
|
357
|
+
}
|
|
358
|
+
/** Renders a color chip plus hex text. 渲染色块及色值文本。 */
|
|
359
|
+
renderColor(rawValue, emptyText) {
|
|
360
|
+
if (!rawValue)
|
|
361
|
+
return html `<span class="autoview-empty">${emptyText}</span>`;
|
|
362
|
+
return html `<span class="autoview-color">
|
|
363
|
+
<span class="autoview-color-chip" style="background:${rawValue}"></span>
|
|
364
|
+
<span class="autoview-text">${rawValue}</span>
|
|
365
|
+
</span>`;
|
|
366
|
+
}
|
|
367
|
+
/** Renders a plain text value with empty fallback. 渲染纯文本值,空值回退。 */
|
|
368
|
+
renderPlain(rawValue, emptyText) {
|
|
369
|
+
const text = rawValue || emptyText;
|
|
370
|
+
const isEmpty = !rawValue;
|
|
371
|
+
return html `<span class=${isEmpty ? 'autoview-empty' : 'autoview-text'}>${text}</span>`;
|
|
372
|
+
}
|
|
373
|
+
render() {
|
|
374
|
+
const configs = this.parseFields();
|
|
375
|
+
const data = this._data;
|
|
376
|
+
return html `
|
|
377
|
+
<aithe-desc
|
|
378
|
+
column=${this.column}
|
|
379
|
+
?border=${this.border}
|
|
380
|
+
border-style=${this.borderStyle}
|
|
381
|
+
label-background=${this.labelBackground}
|
|
382
|
+
direction=${this.direction}
|
|
383
|
+
label-width=${this.labelWidth}
|
|
384
|
+
size=${this.size}
|
|
385
|
+
title=${this.title || nothing}
|
|
386
|
+
.showTitle=${this.showTitle}
|
|
387
|
+
max-rows=${this.maxRows}
|
|
388
|
+
>
|
|
389
|
+
<slot name="title" slot="title"></slot>
|
|
390
|
+
<slot name="extra" slot="extra"></slot>
|
|
391
|
+
${configs.map((field) => this.renderItem(field, data))}
|
|
392
|
+
</aithe-desc>
|
|
393
|
+
`;
|
|
394
|
+
}
|
|
395
|
+
/** Renders a single desc-item with type-aware content. 渲染单个 desc-item 及其类型感知内容。 */
|
|
396
|
+
renderItem(field, data) {
|
|
397
|
+
if (!this.isVisible(field, data))
|
|
398
|
+
return html ``;
|
|
399
|
+
const label = field.hideLabel ? '' : (field.label ?? '');
|
|
400
|
+
const content = this.renderContent(field, data);
|
|
401
|
+
return html `
|
|
402
|
+
<aithe-desc-item
|
|
403
|
+
label=${label || nothing}
|
|
404
|
+
.span=${field.span ?? 1}
|
|
405
|
+
.rowspan=${field.rowspan ?? 1}
|
|
406
|
+
.align=${field.align ?? 'left'}
|
|
407
|
+
>${content}</aithe-desc-item>
|
|
408
|
+
`;
|
|
409
|
+
}
|
|
410
|
+
/**
|
|
411
|
+
* Emits `aithe-view-ready` after the first render with the values of all visible fields.
|
|
412
|
+
* 初始渲染完成后发射 `aithe-view-ready`,携带所有可见字段的值。
|
|
413
|
+
*/
|
|
414
|
+
firstUpdated() {
|
|
415
|
+
this.emit('view-ready', { values: this.getValues() });
|
|
416
|
+
}
|
|
417
|
+
};
|
|
418
|
+
__decorate([
|
|
419
|
+
property({ type: String })
|
|
420
|
+
], AitheAutoView.prototype, "fields", void 0);
|
|
421
|
+
__decorate([
|
|
422
|
+
property({ type: Object })
|
|
423
|
+
], AitheAutoView.prototype, "data", void 0);
|
|
424
|
+
__decorate([
|
|
425
|
+
property({ type: Number })
|
|
426
|
+
], AitheAutoView.prototype, "column", void 0);
|
|
427
|
+
__decorate([
|
|
428
|
+
property({ type: Boolean })
|
|
429
|
+
], AitheAutoView.prototype, "border", void 0);
|
|
430
|
+
__decorate([
|
|
431
|
+
property({ attribute: 'border-style', type: String })
|
|
432
|
+
], AitheAutoView.prototype, "borderStyle", void 0);
|
|
433
|
+
__decorate([
|
|
434
|
+
property({ attribute: 'label-background', type: String })
|
|
435
|
+
], AitheAutoView.prototype, "labelBackground", void 0);
|
|
436
|
+
__decorate([
|
|
437
|
+
property({ type: String })
|
|
438
|
+
], AitheAutoView.prototype, "direction", void 0);
|
|
439
|
+
__decorate([
|
|
440
|
+
property({ type: String, attribute: 'label-width' })
|
|
441
|
+
], AitheAutoView.prototype, "labelWidth", void 0);
|
|
442
|
+
__decorate([
|
|
443
|
+
property({ type: String })
|
|
444
|
+
], AitheAutoView.prototype, "size", void 0);
|
|
445
|
+
__decorate([
|
|
446
|
+
property({ type: String })
|
|
447
|
+
], AitheAutoView.prototype, "title", void 0);
|
|
448
|
+
__decorate([
|
|
449
|
+
property({ attribute: 'show-title', type: Boolean })
|
|
450
|
+
], AitheAutoView.prototype, "showTitle", void 0);
|
|
451
|
+
__decorate([
|
|
452
|
+
property({ type: Number, attribute: 'max-rows' })
|
|
453
|
+
], AitheAutoView.prototype, "maxRows", void 0);
|
|
454
|
+
__decorate([
|
|
455
|
+
property({ type: String, attribute: 'empty-text' })
|
|
456
|
+
], AitheAutoView.prototype, "emptyText", void 0);
|
|
457
|
+
AitheAutoView = __decorate([
|
|
458
|
+
customElement('aithe-autoview')
|
|
459
|
+
], AitheAutoView);
|
|
460
|
+
export { AitheAutoView };
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file AitheBriefBox — brief card display / AitheBriefBox — 简要卡片展示
|
|
3
|
+
* @description AitheBriefBox renders a compact card with name, tags, status on the left
|
|
4
|
+
* and actions on the right (visible on hover/focus).
|
|
5
|
+
* AitheBriefBox 渲染紧凑卡片:左侧 name/tags/status,右侧 actions(hover 显示)。
|
|
6
|
+
*
|
|
7
|
+
* @slot name - Primary label / title region. 主标签/标题区域。
|
|
8
|
+
* @slot tags - Tags region. 标签区域。
|
|
9
|
+
* @slot status - Status indicator region. 状态指示器区域。
|
|
10
|
+
* @slot actions - Action buttons region (visible on hover/focus). 操作按钮区域(hover/focus 时显示)。
|
|
11
|
+
*
|
|
12
|
+
* @csspart select - The select region container. 选择区域容器。
|
|
13
|
+
* @csspart name - The name region container. 名称区域容器。
|
|
14
|
+
* @csspart tags - The tags region container. 标签区域容器。
|
|
15
|
+
* @csspart status - The status region container. 状态区域容器。
|
|
16
|
+
* @csspart actions - The action buttons region container. 操作按钮区域容器。
|
|
17
|
+
*
|
|
18
|
+
* @fires aithe-box-click - Fired when the box is clicked. 点击 box 时触发。
|
|
19
|
+
* @fires aithe-selected-change - Fired when selected changes via checkbox. selected 变化时触发。
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```html
|
|
23
|
+
* <aithe-brief-box selectable>
|
|
24
|
+
* <aithe-profile slot="name" title="Project Alpha" desc="Frontend application" icon="(class)app"></aithe-profile>
|
|
25
|
+
* <span slot="status">Active</span>
|
|
26
|
+
* <span slot="tags"><aithe-tag>frontend</aithe-tag></span>
|
|
27
|
+
* <span slot="actions"><aithe-button size="sm">Edit</aithe-button></span>
|
|
28
|
+
* </aithe-brief-box>
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
import { type TemplateResult } from 'lit';
|
|
32
|
+
import { AitheMiniBox } from './mini-box';
|
|
33
|
+
export declare class AitheBriefBox extends AitheMiniBox {
|
|
34
|
+
static readonly styles: (import("lit").CSSResult | import("lit").CSSResult[])[];
|
|
35
|
+
render(): TemplateResult;
|
|
36
|
+
}
|
|
37
|
+
declare global {
|
|
38
|
+
interface HTMLElementTagNameMap {
|
|
39
|
+
'aithe-brief-box': AitheBriefBox;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=brief-box.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"brief-box.d.ts","sourceRoot":"","sources":["../../../src/components/display/brief-box.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,OAAO,EAAa,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAGrD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,qBACa,aAAc,SAAQ,YAAY;IAC7C,gBAAyB,MAAM,0DAkD7B;IAEO,MAAM,IAAI,cAAc;CAqBlC;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,iBAAiB,EAAE,aAAa,CAAC;KAClC;CACF"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* @file AitheBriefBox — brief card display / AitheBriefBox — 简要卡片展示
|
|
9
|
+
* @description AitheBriefBox renders a compact card with name, tags, status on the left
|
|
10
|
+
* and actions on the right (visible on hover/focus).
|
|
11
|
+
* AitheBriefBox 渲染紧凑卡片:左侧 name/tags/status,右侧 actions(hover 显示)。
|
|
12
|
+
*
|
|
13
|
+
* @slot name - Primary label / title region. 主标签/标题区域。
|
|
14
|
+
* @slot tags - Tags region. 标签区域。
|
|
15
|
+
* @slot status - Status indicator region. 状态指示器区域。
|
|
16
|
+
* @slot actions - Action buttons region (visible on hover/focus). 操作按钮区域(hover/focus 时显示)。
|
|
17
|
+
*
|
|
18
|
+
* @csspart select - The select region container. 选择区域容器。
|
|
19
|
+
* @csspart name - The name region container. 名称区域容器。
|
|
20
|
+
* @csspart tags - The tags region container. 标签区域容器。
|
|
21
|
+
* @csspart status - The status region container. 状态区域容器。
|
|
22
|
+
* @csspart actions - The action buttons region container. 操作按钮区域容器。
|
|
23
|
+
*
|
|
24
|
+
* @fires aithe-box-click - Fired when the box is clicked. 点击 box 时触发。
|
|
25
|
+
* @fires aithe-selected-change - Fired when selected changes via checkbox. selected 变化时触发。
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
* ```html
|
|
29
|
+
* <aithe-brief-box selectable>
|
|
30
|
+
* <aithe-profile slot="name" title="Project Alpha" desc="Frontend application" icon="(class)app"></aithe-profile>
|
|
31
|
+
* <span slot="status">Active</span>
|
|
32
|
+
* <span slot="tags"><aithe-tag>frontend</aithe-tag></span>
|
|
33
|
+
* <span slot="actions"><aithe-button size="sm">Edit</aithe-button></span>
|
|
34
|
+
* </aithe-brief-box>
|
|
35
|
+
* ```
|
|
36
|
+
*/
|
|
37
|
+
import { css, html } from 'lit';
|
|
38
|
+
import { customElement } from 'lit/decorators.js';
|
|
39
|
+
import { AitheMiniBox } from './mini-box';
|
|
40
|
+
let AitheBriefBox = class AitheBriefBox extends AitheMiniBox {
|
|
41
|
+
static { this.styles = [
|
|
42
|
+
...AitheMiniBox.styles,
|
|
43
|
+
css `
|
|
44
|
+
.brief-left {
|
|
45
|
+
flex: 1;
|
|
46
|
+
min-width: 0;
|
|
47
|
+
display: flex;
|
|
48
|
+
flex-direction: column;
|
|
49
|
+
gap: var(--aithe-space-1, 4px);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
.brief-top {
|
|
53
|
+
display: flex;
|
|
54
|
+
flex-direction: row;
|
|
55
|
+
align-items: center;
|
|
56
|
+
gap: var(--aithe-space-2, 8px);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
.brief-tags {
|
|
60
|
+
display: flex;
|
|
61
|
+
gap: var(--aithe-space-1, 4px);
|
|
62
|
+
overflow: hidden;
|
|
63
|
+
flex-wrap: nowrap;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
.brief-status-row {
|
|
67
|
+
display: flex;
|
|
68
|
+
align-items: center;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
.brief-actions {
|
|
72
|
+
display: none;
|
|
73
|
+
flex-direction: column;
|
|
74
|
+
align-items: stretch;
|
|
75
|
+
gap: var(--aithe-space-1, 4px);
|
|
76
|
+
flex-shrink: 0;
|
|
77
|
+
padding-left: var(--aithe-space-2, 8px);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
.brief-actions ::slotted(*) {
|
|
81
|
+
display: flex;
|
|
82
|
+
flex-direction: column;
|
|
83
|
+
gap: var(--aithe-space-1, 4px);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
:host(:hover) .brief-actions,
|
|
87
|
+
:host(:focus-within) .brief-actions {
|
|
88
|
+
display: flex;
|
|
89
|
+
}
|
|
90
|
+
`,
|
|
91
|
+
]; }
|
|
92
|
+
render() {
|
|
93
|
+
return html `
|
|
94
|
+
<div class="box-inner" @click=${this.handleBoxClick}>
|
|
95
|
+
${this.renderCheckbox()}
|
|
96
|
+
<div class="brief-left">
|
|
97
|
+
<div class="brief-top">
|
|
98
|
+
<slot name="name"></slot>
|
|
99
|
+
</div>
|
|
100
|
+
<div class="brief-tags">
|
|
101
|
+
<slot name="tags"></slot>
|
|
102
|
+
</div>
|
|
103
|
+
<div class="brief-status-row">
|
|
104
|
+
<slot name="status"></slot>
|
|
105
|
+
</div>
|
|
106
|
+
</div>
|
|
107
|
+
<div class="brief-actions" part="actions">
|
|
108
|
+
<slot name="actions"></slot>
|
|
109
|
+
</div>
|
|
110
|
+
</div>
|
|
111
|
+
`;
|
|
112
|
+
}
|
|
113
|
+
};
|
|
114
|
+
AitheBriefBox = __decorate([
|
|
115
|
+
customElement('aithe-brief-box')
|
|
116
|
+
], AitheBriefBox);
|
|
117
|
+
export { AitheBriefBox };
|