@done-coding/admin-core 0.15.1-alpha.0 → 0.16.1-alpha.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.
Files changed (54) hide show
  1. package/es/components/app-layout/AppBody.vue.mjs +1 -1
  2. package/es/components/app-layout/AppBody.vue2.mjs +43 -39
  3. package/es/components/app-layout/AppPage.vue.mjs +2 -2
  4. package/es/components/app-layout/AppPage.vue2.mjs +114 -105
  5. package/es/components/display/TabsHeader.vue.mjs +2 -2
  6. package/es/components/display/TabsHeader.vue2.mjs +31 -32
  7. package/es/components/display/TabsRefineFlow.vue.mjs +30 -32
  8. package/es/components/display/TabsTile.vue.mjs +2 -2
  9. package/es/components/display/WatchSize.vue.mjs +34 -31
  10. package/es/components/form/FormMain.vue.mjs +2 -2
  11. package/es/components/form/FormMain.vue2.mjs +80 -75
  12. package/es/components/form/FormSearch.vue.mjs +1 -1
  13. package/es/components/form/FormSearch.vue2.mjs +82 -80
  14. package/es/components/form/FormSubmitPanel.vue2.mjs +11 -10
  15. package/es/components/form/use-layout-by-container.mjs +20 -0
  16. package/es/components/list-page/ListPage.vue.mjs +2 -2
  17. package/es/components/list-page/ListPage.vue2.mjs +167 -137
  18. package/es/components/list-page/use-sticky.mjs +41 -0
  19. package/es/components/modal/ConfirmModal.vue.mjs +3 -2
  20. package/es/components/modal/ConfirmModal.vue2.mjs +104 -55
  21. package/es/components/modal/DetailModal.vue.mjs +40 -34
  22. package/es/components/modal/ModalPorter.vue.mjs +20 -23
  23. package/es/components/table/TableMain.vue.mjs +1 -1
  24. package/es/components/table/TableMain.vue2.mjs +27 -28
  25. package/es/hooks/activated.mjs +16 -24
  26. package/es/hooks/use-breakpoint.mjs +17 -21
  27. package/es/hooks/use-channel-viewport-height.mjs +26 -8
  28. package/es/hooks/use-observe-size.mjs +26 -0
  29. package/es/index.mjs +177 -173
  30. package/es/inject/key.mjs +18 -15
  31. package/es/style.css +1 -1
  32. package/es/utils/dom.mjs +11 -1
  33. package/package.json +2 -2
  34. package/types/components/app-layout/AppPage.vue.d.ts +8 -0
  35. package/types/components/display/TabsTile.vue.d.ts +2 -2
  36. package/types/components/display/WatchSize.vue.d.ts +4 -0
  37. package/types/components/display/types.d.ts +1 -5
  38. package/types/components/form/FormItem.vue.d.ts +8 -8
  39. package/types/components/form/FormMain.vue.d.ts +1 -12
  40. package/types/components/form/FormSubmitPanel.vue.d.ts +1 -1
  41. package/types/components/form/types.d.ts +1 -0
  42. package/types/components/form/use-layout-by-container.d.ts +11 -0
  43. package/types/components/list-page/ListPage.vue.d.ts +6 -1
  44. package/types/components/list-page/types.d.ts +5 -0
  45. package/types/components/list-page/use-sticky.d.ts +19 -0
  46. package/types/components/modal/ConfirmModal.vue.d.ts +15 -3
  47. package/types/components/modal/DetailModal.vue.d.ts +4 -1
  48. package/types/components/panel/PanelItemNestForm.vue.d.ts +1 -1
  49. package/types/hooks/index.d.ts +1 -0
  50. package/types/hooks/use-channel-viewport-height.d.ts +2 -1
  51. package/types/hooks/use-observe-size.d.ts +7 -0
  52. package/types/inject/key.d.ts +8 -2
  53. package/types/injectInfo.json.d.ts +1 -1
  54. package/types/utils/dom.d.ts +1 -0
package/es/style.css CHANGED
@@ -1 +1 @@
1
- .confirm-modal[data-v-6ce57009] .el-dialog__header{margin-right:0;padding:16px 20px;border-bottom:1px solid var(--el-border-color-lighter)}.confirm-modal__title[data-v-6ce57009]{font-size:16px;font-weight:600;line-height:24px;color:var(--el-text-color-primary);text-align:left}.confirm-modal[data-v-6ce57009] .el-dialog__body{padding:20px}.confirm-modal__content[data-v-6ce57009]{overflow-x:hidden;overflow-y:auto;max-height:calc(100vh - 200px);font-size:14px;line-height:22px;color:var(--el-text-color-regular);text-align:left;word-break:break-word}.confirm-modal[data-v-6ce57009] .el-dialog__footer{padding:12px 20px;border-top:1px solid var(--el-border-color-lighter)}.confirm-modal[data-v-6ce57009] .el-drawer__header{margin-bottom:0;padding:16px 20px;border-bottom:1px solid var(--el-border-color-lighter);color:var(--el-text-color-primary)}.confirm-modal[data-v-6ce57009] .el-drawer__body{padding:20px}.confirm-modal[data-v-6ce57009] .el-drawer__footer{padding:12px 20px;border-top:1px solid var(--el-border-color-lighter)}.confirm-modal__footer[data-v-6ce57009]{display:flex;justify-content:flex-end;align-items:center;gap:8px}.confirm-modal__footer[data-v-6ce57009] .el-button{min-width:72px}.confirm-modal__footer[reverse=true][data-v-6ce57009]{flex-direction:row-reverse}.action-confirm__title[data-v-67d276b0]{font-weight:600;margin-bottom:6px}.action-confirm__content[data-v-67d276b0]{margin-bottom:12px;color:var(--el-text-color-regular)}.action-confirm__actions[data-v-67d276b0]{display:flex;justify-content:flex-end;gap:8px}.form-item-tip[data-v-8b508d64]{text-align:left;line-height:1.5;font-size:12px}.form-item-label-hide[data-v-8b508d64] .el-form-item__label-wrap{display:none}[data-v-83b1b718] .el-row>.el-col>.el-form-item{margin-bottom:18px}.form-submit-panel[data-v-1505775a]{display:flex;flex-direction:column}.form-submit-panel .form-submit-panel-form[data-v-1505775a]{order:1}.form-submit-panel .form-submit-panel-operation[data-v-1505775a]{order:2}.form-submit-panel .form-submit-panel-operation-inner[data-v-1505775a]{display:flex;align-items:center;gap:8px;padding:10px 12px}.form-submit-panel .el-affix--fixed .form-submit-panel-operation-inner[data-v-1505775a]{background-color:var(--dc-core-body-color)}.form-submit-panel_bottom-center .form-submit-panel-operation-inner[data-v-1505775a],.form-submit-panel_bottom-right .form-submit-panel-operation-inner[data-v-1505775a]{border-top:1px solid var(--el-border-color-light);border-bottom-left-radius:var(--dc-core-radius, var(--el-border-radius-base));border-bottom-right-radius:var(--dc-core-radius, var(--el-border-radius-base))}.form-submit-panel_bottom-center .form-submit-panel-operation-inner[data-v-1505775a]{justify-content:center}.form-submit-panel_bottom-right .form-submit-panel-operation-inner[data-v-1505775a]{justify-content:flex-end}.form-submit-panel_top-right .form-submit-panel-operation[data-v-1505775a]{order:0}.form-submit-panel_top-right .form-submit-panel-operation-inner[data-v-1505775a]{justify-content:flex-end;border-bottom:1px solid var(--el-border-color-light);border-top-left-radius:var(--dc-core-radius, var(--el-border-radius-base));border-top-right-radius:var(--dc-core-radius, var(--el-border-radius-base))}.form-submit-panel_no-divider .form-submit-panel-operation-inner[data-v-1505775a]{border:none;border-radius:0}.form-submit-panel_bare .form-submit-panel-operation-inner[data-v-1505775a]{padding:0}.panel-edit-switch[data-v-65f056ab]{position:relative}.panel-edit-switch:hover .panel-edit-switch-edit-btn[data-v-65f056ab]{display:block}.panel-edit-switch-edit-btn[data-v-65f056ab]{position:absolute;top:0;right:0;z-index:1;display:none}.panel-edit-switch-actions[data-v-65f056ab]{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}.panel-main-item-col:not(:last-of-type) .panel-main-item-col-wrap_card[data-v-9e060e8b]{margin-bottom:var(--v6dd4af74)}.form-search_show[data-v-eb50264d]{margin-bottom:10px}.form-search .btn-box[data-v-eb50264d]{display:flex;align-items:center;gap:8px;justify-content:flex-end}.form-search .btn-box-expand-icon[data-v-eb50264d]{margin-right:2px}.form-verify-image[data-v-7a70397e] .el-input__suffix-inner *{margin:0}.form-verify-image-suffix[data-v-7a70397e]{position:absolute;height:100%;border-radius:var(--el-input-border-radius, var(--dc-core-radius, var(--el-border-radius-base)));top:50%;transform:translateY(-50%);overflow:hidden;cursor:pointer}.form-verify-image-suffix-main[data-v-7a70397e]{position:absolute;left:0;top:0;width:100%;height:100%;background-color:#f4f4f4}.tabs-main-bar[data-v-6b4fc73b]{position:relative;display:flex;align-items:center}.tabs-main-bar-item[data-v-6b4fc73b]{border:none;background:transparent;cursor:pointer;color:var(--el-text-color-regular);transition:background .2s,color .2s,box-shadow .2s}.tabs-main-bar-indicator[data-v-6b4fc73b]{position:absolute;left:0;background:var(--dc-core-primary-color);transition:transform .2s,width .2s}.tabs-main-bar--l1 .tabs-main-bar-item[data-v-6b4fc73b]{font-size:16px}.tabs-main-bar--l2 .tabs-main-bar-item[data-v-6b4fc73b]{font-size:14px}.tabs-main-bar--l3 .tabs-main-bar-item[data-v-6b4fc73b],.tabs-main-bar--l4 .tabs-main-bar-item[data-v-6b4fc73b]{font-size:12px}.tabs-main-bar--variant-card[data-v-6b4fc73b]{position:relative;overflow:hidden;gap:2px}.tabs-main-bar--variant-card .tabs-main-bar-item[data-v-6b4fc73b]{position:relative;padding:8px 20px;line-height:1.4;border:1px solid transparent;border-bottom:0;border-radius:6px 6px 0 0}.tabs-main-bar--variant-card .tabs-main-bar-item[data-v-6b4fc73b]:hover:not(.tabs-main-bar-item_active){color:var(--dc-core-primary-color)}.tabs-main-bar--variant-card .tabs-main-bar-item_active[data-v-6b4fc73b]{color:var(--dc-core-primary-color);border-color:var(--el-border-color-light)}.tabs-main-bar--variant-card .tabs-main-bar-item_active[data-v-6b4fc73b]:before,.tabs-main-bar--variant-card .tabs-main-bar-item_active[data-v-6b4fc73b]:after{content:"";position:absolute;bottom:0;width:100vw;height:1px;background:var(--el-border-color-light)}.tabs-main-bar--variant-card .tabs-main-bar-item_active[data-v-6b4fc73b]:before{right:100%}.tabs-main-bar--variant-card .tabs-main-bar-item_active[data-v-6b4fc73b]:after{left:100%}.tabs-main-bar--variant-indicator .tabs-main-bar-item[data-v-6b4fc73b]{padding:8px 16px}.tabs-main-bar--variant-indicator .tabs-main-bar-item_active[data-v-6b4fc73b]{color:var(--dc-core-primary-color)}.tabs-main-bar--variant-indicator .tabs-main-bar-indicator[data-v-6b4fc73b]{bottom:0;height:2px}.tabs-main-bar--variant-indicator-compact .tabs-main-bar-item[data-v-6b4fc73b]{padding:6px 10px}.tabs-main-bar--variant-indicator-compact .tabs-main-bar-item_active[data-v-6b4fc73b]{color:var(--dc-core-primary-color)}.tabs-main-bar--variant-indicator-compact .tabs-main-bar-indicator[data-v-6b4fc73b]{bottom:0;height:1px}.tabs-main-bar--variant-plain .tabs-main-bar-item[data-v-6b4fc73b]{padding:4px 8px}.tabs-main-bar--variant-plain .tabs-main-bar-item_active[data-v-6b4fc73b]{color:var(--dc-core-primary-color);font-weight:600}.dc-tabs-tile--nav-absolute[data-v-39fad9e5],.dc-tabs-tile--nav-fixed[data-v-39fad9e5]{position:relative}.dc-tabs-tile--nav-sticky[data-v-39fad9e5]{display:flex;flex-direction:column}.dc-tabs-tile__scroll[data-v-39fad9e5]{display:flex;flex-direction:column;gap:12px}.dc-tabs-tile__card[data-v-39fad9e5]{width:100%}.dc-tabs-tile__nav[data-v-39fad9e5]{z-index:2;max-height:60%;overflow:auto;padding:6px 10px;width:fit-content;border-radius:var(--dc-core-radius, 6px);background:var(--dc-core-surface, var(--el-bg-color-overlay));box-shadow:var(--dc-core-shadow, var(--el-box-shadow-lighter));border:1px solid var(--dc-core-border-color, var(--el-border-color-lighter))}.app-collapse-toggle[data-v-10c7e006]{position:absolute;top:50%;cursor:pointer;width:14px;height:44px;border-radius:7px;background-color:var(--dc-core-surface, var(--el-bg-color-overlay));border:1px solid var(--dc-core-border-color, var(--el-border-color-lighter));color:var(--el-text-color-secondary);display:flex;align-items:center;justify-content:center;font-size:12px;z-index:1;opacity:.3;box-shadow:none;transition:opacity .2s ease,color .2s ease,border-color .2s ease,box-shadow .2s ease}.app-collapse-toggle--sidebar[data-v-10c7e006]{left:100%;transform:translate(-50%,-50%)}.app-collapse-toggle--aside[data-v-10c7e006]{right:100%;transform:translate(50%,-50%)}.app-collapse-toggle[data-v-10c7e006]:hover,.app-collapse-toggle[data-v-10c7e006]:focus-visible{opacity:1;color:var(--el-text-color-primary);border-color:var(--dc-core-border-color, var(--el-border-color));box-shadow:var(--el-box-shadow-lighter)}.app-collapse-toggle[data-v-10c7e006]:active{border-color:var(--dc-core-primary-color, var(--el-color-primary))}.app-collapse-toggle__icon[data-v-10c7e006]{transition:transform .3s}.app-aside[data-v-7e17d342]{transition:width var(--dc-core-motion-duration-slow, .3s) var(--dc-core-motion-easing, ease);box-shadow:var(--dc-core-shadow, var(--el-box-shadow));overflow:visible;z-index:0}.app-aside-clip[data-v-7e17d342]{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden}.app-aside-shim[data-v-7e17d342]{position:absolute;right:0;top:0;bottom:0;overflow-x:hidden;overflow-y:auto;transition:opacity var(--dc-core-motion-duration, .2s) var(--dc-core-motion-easing, ease)}@media (prefers-reduced-motion: reduce){.app-aside[data-v-7e17d342],.app-aside-shim[data-v-7e17d342]{transition:none}}.app-breadcrumb[data-v-9bbe0b05]{display:flex;align-items:center;justify-content:flex-start}.app-body[data-v-c593275f]{transition-duration:.3s;transition-property:padding;transition-timing-function:linear;min-height:100vh}.app-body-shim[data-v-c593275f]{width:100%;--app-viewport-max-height: var(--v513aac26)}.app-footer[data-v-8960664d]{transition-duration:.3s;transition-property:height;transition-timing-function:linear;overflow:hidden;width:100%;box-shadow:var(--dc-core-shadow, var(--el-box-shadow))}.app-footer-shim[data-v-8960664d]{width:100%;height:100%;padding:0 20px}.app-header[data-v-c78820aa]{transition-duration:.3s;transition-property:height;transition-timing-function:linear;overflow:hidden;box-shadow:var(--dc-core-shadow, var(--el-box-shadow));z-index:1}.app-header-module[data-v-c78820aa]{display:flex;flex:1;height:100%;overflow-x:auto}.app-header-module-item[data-v-c78820aa]{display:flex;justify-content:center;align-items:center;padding:0 20px;white-space:nowrap;height:100%}.app-header-module-item[data-v-c78820aa]:hover,.app-header-module-item_active[data-v-c78820aa]{color:var(--v8834c284)}.app-header-module-item_active[data-v-c78820aa]{position:relative}.app-header-module-item_active[data-v-c78820aa]:before{content:"";position:absolute;left:50%;top:0;width:100%;height:3px;background-color:var(--v8834c284);transform:translate(-50%)}.app-header-shim[data-v-c78820aa]{width:100%;height:100%;display:flex;align-items:center;justify-content:space-between;padding:0 20px;font-size:18px;font-weight:700}.app-header-module-item__icon[data-v-c78820aa]{margin-right:8px}.app-header-right[data-v-c78820aa]{padding-left:80px;display:flex;align-items:center}.app-sidebar[data-v-8aa015fb]{transition-duration:.3s;transition-property:width;transition-timing-function:linear;box-shadow:var(--dc-core-shadow, var(--el-box-shadow));overflow:visible;z-index:var(--v3ceb1df4)}.app-sidebar-top[data-v-8aa015fb]{position:absolute;left:0;right:0;top:0;overflow:hidden}.app-sidebar-bottom[data-v-8aa015fb]{position:absolute;left:0;right:0;bottom:0;overflow:hidden}.app-sidebar-shim[data-v-8aa015fb]{position:absolute;left:0;right:0;top:var(--v2c8b87ee);bottom:var(--baa8be1c);overflow-x:hidden;overflow-y:auto;--el-menu-border-color: transparent;-webkit-user-select:none;user-select:none}.app-theme[data-v-06ca4822]{display:inline-flex;align-items:center;gap:12px;margin-right:12px}.app-theme__style-select[data-v-06ca4822]{width:120px}.app-layout[data-v-f6f87b30]{position:relative}.app-layout_noLogin[data-v-f6f87b30] .app-body,.app-layout_noLogin[data-v-f6f87b30] .app-sidebar,.app-layout_noLogin[data-v-f6f87b30] .app-header,.app-layout_noLogin[data-v-f6f87b30] .app-footer{transition:none!important}.app-page[data-v-6ba4ec25]{--dc-page-content-viewport-top: var(--v0f6d6f31);--dc-page-content-viewport-bottom: var(--v314acecf);--dc-page-content-viewport-left: var(--v4386a4aa);--dc-page-content-viewport-right: var(--v2ca12e10);--dc-page-content-viewport-width: var(--v2c1456bc);--dc-page-content-viewport-height: var(--v3af5c5cb)}.app-page-shim[data-v-6ba4ec25]{--app-viewport-max-height: var(--v1911457e)}.app-page-slot-shim[data-v-6ba4ec25]{box-sizing:border-box;width:100%;height:100%}[data-v-64f355fe] .auto-refresh-label{display:flex;font-size:13px;color:var(--el-text-color-regular);margin-bottom:8px}.auto-refresh-group-icon--rotating[data-v-e608ff06]{animation:auto-refresh-rotating-e608ff06 1s linear infinite}@keyframes auto-refresh-rotating-e608ff06{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.form-item-nest-form[data-v-a413a382],.form-item-nest-form-list[data-v-68118cbf]{padding:16px;border:1px solid var(--dc-core-border-color);border-radius:8px;box-shadow:var(--dc-core-shadow, var(--el-box-shadow-lighter))}.form-item-nest-form-list-row[data-v-68118cbf]{display:flex;align-items:flex-start;gap:8px;margin-bottom:12px}.form-item-nest-form-list-row-body[data-v-68118cbf]{flex:1;min-width:0;padding:12px 16px;border:1px solid var(--el-border-color-lighter);border-radius:6px;box-shadow:var(--el-box-shadow-lighter)}.table-toolbar[data-v-0175f1a9]{display:flex;justify-content:space-between;align-items:center;padding-bottom:8px;gap:20px}.table-toolbar-left[data-v-0175f1a9],.table-toolbar-right[data-v-0175f1a9]{display:flex;align-items:center;gap:10px}.table-toolbar-switch-view[data-v-0175f1a9]{--el-switch-off-color: var(--dc-core-primary-color);--el-switch-on-color: var(--dc-core-warning-color)}.data-list-view[data-v-c66e599d]{width:100%}.data-list-view-empty[data-v-c66e599d]{display:flex;justify-content:center;align-items:center;width:100%;min-height:60px;grid-column:1 / -1}.table-main-pagination[data-v-e8584319]{margin-top:10px;display:flex;justify-content:flex-end}.dc-slot-layout-flow-aside_separate[data-v-5c6ef74b]{position:relative}.dc-slot-layout-flow-aside_separate_left[data-v-5c6ef74b]{padding-left:calc(var(--v88700944) - 1px)}.dc-slot-layout-flow-aside_separate_right[data-v-5c6ef74b]{padding-right:calc(var(--v88700944) - 1px)}.dc-slot-layout-flow-aside-aside[data-v-5c6ef74b]{width:var(--v88700944)}.dc-slot-layout-flow-aside-aside_left[data-v-5c6ef74b],.dc-slot-layout-flow-aside-aside_right[data-v-5c6ef74b]{position:absolute;top:0;max-height:min(100%,var(--v23b7c943));overflow-y:auto}.dc-slot-layout-flow-aside-aside_left[data-v-5c6ef74b]{left:0}.dc-slot-layout-flow-aside-aside_right[data-v-5c6ef74b]{right:0}.dc-slot-layout-flow-aside-main[data-v-5c6ef74b]{width:var(--v7e1d11ca)}.list-page[data-v-386c1374]{min-height:var(--v4d27171c)}.list-page-header[data-v-386c1374],.list-page-operation[data-v-386c1374]{margin-bottom:10px}.list-page[data-v-386c1374] .el-loading-mask{left:-10px;top:-10px;right:-10px;bottom:-10px}.panel-item-nest-form-actions[data-v-3af1d77a]{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}
1
+ .confirm-modal__title[data-v-64018cc0]{font-size:16px;font-weight:600;line-height:24px;color:var(--el-text-color-primary);text-align:left}.confirm-modal__content[data-v-64018cc0]{overflow-x:hidden;overflow-y:auto;max-height:calc(100vh - 200px);font-size:14px;line-height:22px;color:var(--el-text-color-regular);text-align:left;word-break:break-word}.confirm-modal__content_drawer[data-v-64018cc0]{max-height:none;height:100%}.confirm-modal__footer[data-v-64018cc0]{display:flex;justify-content:flex-end;align-items:center;gap:8px}.confirm-modal__footer[data-v-64018cc0] .el-button{min-width:72px}.confirm-modal__footer[reverse=true][data-v-64018cc0]{flex-direction:row-reverse}.dc-confirm-modal.el-drawer .el-drawer__header{margin-bottom:0;padding:16px 20px;color:var(--el-text-color-primary)}.dc-confirm-modal.el-drawer .el-drawer__body{padding:20px}.dc-confirm-modal.el-drawer .el-drawer__footer{padding:12px 20px}.dc-confirm-modal.confirm-modal_header-divider .el-drawer__header{border-bottom:1px solid var(--el-border-color-lighter)}.dc-confirm-modal.confirm-modal_footer-divider .el-drawer__footer{border-top:1px solid var(--el-border-color-lighter)}.action-confirm__title[data-v-67d276b0]{font-weight:600;margin-bottom:6px}.action-confirm__content[data-v-67d276b0]{margin-bottom:12px;color:var(--el-text-color-regular)}.action-confirm__actions[data-v-67d276b0]{display:flex;justify-content:flex-end;gap:8px}.form-item-tip[data-v-8b508d64]{text-align:left;line-height:1.5;font-size:12px}.form-item-label-hide[data-v-8b508d64] .el-form-item__label-wrap{display:none}[data-v-cc2ea388] .el-row>.el-col>.el-form-item{margin-bottom:18px}.form-submit-panel[data-v-1505775a]{display:flex;flex-direction:column}.form-submit-panel .form-submit-panel-form[data-v-1505775a]{order:1}.form-submit-panel .form-submit-panel-operation[data-v-1505775a]{order:2}.form-submit-panel .form-submit-panel-operation-inner[data-v-1505775a]{display:flex;align-items:center;gap:8px;padding:10px 12px}.form-submit-panel .el-affix--fixed .form-submit-panel-operation-inner[data-v-1505775a]{background-color:var(--dc-core-body-color)}.form-submit-panel_bottom-center .form-submit-panel-operation-inner[data-v-1505775a],.form-submit-panel_bottom-right .form-submit-panel-operation-inner[data-v-1505775a]{border-top:1px solid var(--el-border-color-light);border-bottom-left-radius:var(--dc-core-radius, var(--el-border-radius-base));border-bottom-right-radius:var(--dc-core-radius, var(--el-border-radius-base))}.form-submit-panel_bottom-center .form-submit-panel-operation-inner[data-v-1505775a]{justify-content:center}.form-submit-panel_bottom-right .form-submit-panel-operation-inner[data-v-1505775a]{justify-content:flex-end}.form-submit-panel_top-right .form-submit-panel-operation[data-v-1505775a]{order:0}.form-submit-panel_top-right .form-submit-panel-operation-inner[data-v-1505775a]{justify-content:flex-end;border-bottom:1px solid var(--el-border-color-light);border-top-left-radius:var(--dc-core-radius, var(--el-border-radius-base));border-top-right-radius:var(--dc-core-radius, var(--el-border-radius-base))}.form-submit-panel_no-divider .form-submit-panel-operation-inner[data-v-1505775a]{border:none;border-radius:0}.form-submit-panel_bare .form-submit-panel-operation-inner[data-v-1505775a]{padding:0}.panel-edit-switch[data-v-65f056ab]{position:relative}.panel-edit-switch:hover .panel-edit-switch-edit-btn[data-v-65f056ab]{display:block}.panel-edit-switch-edit-btn[data-v-65f056ab]{position:absolute;top:0;right:0;z-index:1;display:none}.panel-edit-switch-actions[data-v-65f056ab]{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}.panel-main-item-col:not(:last-of-type) .panel-main-item-col-wrap_card[data-v-9e060e8b]{margin-bottom:var(--v6dd4af74)}.form-search_show[data-v-b96e10f6]{margin-bottom:10px}.form-search .btn-box[data-v-b96e10f6]{display:flex;align-items:center;gap:8px;justify-content:flex-end}.form-search .btn-box-expand-icon[data-v-b96e10f6]{margin-right:2px}.form-verify-image[data-v-7a70397e] .el-input__suffix-inner *{margin:0}.form-verify-image-suffix[data-v-7a70397e]{position:absolute;height:100%;border-radius:var(--el-input-border-radius, var(--dc-core-radius, var(--el-border-radius-base)));top:50%;transform:translateY(-50%);overflow:hidden;cursor:pointer}.form-verify-image-suffix-main[data-v-7a70397e]{position:absolute;left:0;top:0;width:100%;height:100%;background-color:#f4f4f4}.tabs-main-bar[data-v-9d365b46]{position:relative;display:flex;align-items:center}.tabs-main-bar-item[data-v-9d365b46]{border:none;background:transparent;cursor:pointer;color:var(--el-text-color-regular);transition:background .2s,color .2s,box-shadow .2s}.tabs-main-bar-indicator[data-v-9d365b46]{position:absolute;left:0;background:var(--dc-core-primary-color);transition:transform .2s,width .2s}.tabs-main-bar--l1 .tabs-main-bar-item[data-v-9d365b46]{font-size:16px}.tabs-main-bar--l2 .tabs-main-bar-item[data-v-9d365b46]{font-size:14px}.tabs-main-bar--l3 .tabs-main-bar-item[data-v-9d365b46],.tabs-main-bar--l4 .tabs-main-bar-item[data-v-9d365b46]{font-size:12px}.tabs-main-bar--variant-card[data-v-9d365b46]{position:relative;overflow:hidden;gap:2px}.tabs-main-bar--variant-card .tabs-main-bar-item[data-v-9d365b46]{position:relative;padding:8px 20px;line-height:1.4;border:1px solid transparent;border-bottom:0;border-radius:6px 6px 0 0}.tabs-main-bar--variant-card .tabs-main-bar-item[data-v-9d365b46]:hover:not(.tabs-main-bar-item_active){color:var(--dc-core-primary-color)}.tabs-main-bar--variant-card .tabs-main-bar-item_active[data-v-9d365b46]{color:var(--dc-core-primary-color);border-color:var(--el-border-color-light)}.tabs-main-bar--variant-card .tabs-main-bar-item_active[data-v-9d365b46]:before,.tabs-main-bar--variant-card .tabs-main-bar-item_active[data-v-9d365b46]:after{content:"";position:absolute;bottom:0;width:100vw;height:1px;background:var(--el-border-color-light)}.tabs-main-bar--variant-card .tabs-main-bar-item_active[data-v-9d365b46]:before{right:100%}.tabs-main-bar--variant-card .tabs-main-bar-item_active[data-v-9d365b46]:after{left:100%}.tabs-main-bar--variant-indicator .tabs-main-bar-item[data-v-9d365b46]{padding:8px 16px}.tabs-main-bar--variant-indicator .tabs-main-bar-item_active[data-v-9d365b46]{color:var(--dc-core-primary-color)}.tabs-main-bar--variant-indicator .tabs-main-bar-indicator[data-v-9d365b46]{bottom:0;height:2px}.tabs-main-bar--variant-indicator-compact .tabs-main-bar-item[data-v-9d365b46]{padding:6px 10px}.tabs-main-bar--variant-indicator-compact .tabs-main-bar-item_active[data-v-9d365b46]{color:var(--dc-core-primary-color)}.tabs-main-bar--variant-indicator-compact .tabs-main-bar-indicator[data-v-9d365b46]{bottom:0;height:1px}.tabs-main-bar--variant-plain .tabs-main-bar-item[data-v-9d365b46]{padding:4px 8px}.tabs-main-bar--variant-plain .tabs-main-bar-item_active[data-v-9d365b46]{color:var(--dc-core-primary-color);font-weight:600}.dc-tabs-tile--nav-absolute[data-v-0843fa11],.dc-tabs-tile--nav-fixed[data-v-0843fa11]{position:relative}.dc-tabs-tile--nav-sticky[data-v-0843fa11]{display:flex;flex-direction:column}.dc-tabs-tile__scroll[data-v-0843fa11]{display:flex;flex-direction:column;gap:12px}.dc-tabs-tile__card[data-v-0843fa11]{width:100%}.dc-tabs-tile__nav[data-v-0843fa11]{z-index:2;max-height:60%;overflow:auto;padding:6px 10px;width:fit-content;border-radius:var(--dc-core-radius, 6px);background:var(--dc-core-surface, var(--el-bg-color-overlay));box-shadow:var(--dc-core-shadow, var(--el-box-shadow-lighter));border:1px solid var(--dc-core-border-color, var(--el-border-color-lighter))}.app-collapse-toggle[data-v-10c7e006]{position:absolute;top:50%;cursor:pointer;width:14px;height:44px;border-radius:7px;background-color:var(--dc-core-surface, var(--el-bg-color-overlay));border:1px solid var(--dc-core-border-color, var(--el-border-color-lighter));color:var(--el-text-color-secondary);display:flex;align-items:center;justify-content:center;font-size:12px;z-index:1;opacity:.3;box-shadow:none;transition:opacity .2s ease,color .2s ease,border-color .2s ease,box-shadow .2s ease}.app-collapse-toggle--sidebar[data-v-10c7e006]{left:100%;transform:translate(-50%,-50%)}.app-collapse-toggle--aside[data-v-10c7e006]{right:100%;transform:translate(50%,-50%)}.app-collapse-toggle[data-v-10c7e006]:hover,.app-collapse-toggle[data-v-10c7e006]:focus-visible{opacity:1;color:var(--el-text-color-primary);border-color:var(--dc-core-border-color, var(--el-border-color));box-shadow:var(--el-box-shadow-lighter)}.app-collapse-toggle[data-v-10c7e006]:active{border-color:var(--dc-core-primary-color, var(--el-color-primary))}.app-collapse-toggle__icon[data-v-10c7e006]{transition:transform .3s}.app-aside[data-v-7e17d342]{transition:width var(--dc-core-motion-duration-slow, .3s) var(--dc-core-motion-easing, ease);box-shadow:var(--dc-core-shadow, var(--el-box-shadow));overflow:visible;z-index:0}.app-aside-clip[data-v-7e17d342]{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden}.app-aside-shim[data-v-7e17d342]{position:absolute;right:0;top:0;bottom:0;overflow-x:hidden;overflow-y:auto;transition:opacity var(--dc-core-motion-duration, .2s) var(--dc-core-motion-easing, ease)}@media (prefers-reduced-motion: reduce){.app-aside[data-v-7e17d342],.app-aside-shim[data-v-7e17d342]{transition:none}}.app-breadcrumb[data-v-9bbe0b05]{display:flex;align-items:center;justify-content:flex-start}.app-body[data-v-f97530b2]{transition-duration:.3s;transition-property:padding;transition-timing-function:linear;min-height:100vh}.app-body-shim[data-v-f97530b2]{width:100%;--app-viewport-max-height: var(--v85c12e9e)}.app-footer[data-v-8960664d]{transition-duration:.3s;transition-property:height;transition-timing-function:linear;overflow:hidden;width:100%;box-shadow:var(--dc-core-shadow, var(--el-box-shadow))}.app-footer-shim[data-v-8960664d]{width:100%;height:100%;padding:0 20px}.app-header[data-v-c78820aa]{transition-duration:.3s;transition-property:height;transition-timing-function:linear;overflow:hidden;box-shadow:var(--dc-core-shadow, var(--el-box-shadow));z-index:1}.app-header-module[data-v-c78820aa]{display:flex;flex:1;height:100%;overflow-x:auto}.app-header-module-item[data-v-c78820aa]{display:flex;justify-content:center;align-items:center;padding:0 20px;white-space:nowrap;height:100%}.app-header-module-item[data-v-c78820aa]:hover,.app-header-module-item_active[data-v-c78820aa]{color:var(--v8834c284)}.app-header-module-item_active[data-v-c78820aa]{position:relative}.app-header-module-item_active[data-v-c78820aa]:before{content:"";position:absolute;left:50%;top:0;width:100%;height:3px;background-color:var(--v8834c284);transform:translate(-50%)}.app-header-shim[data-v-c78820aa]{width:100%;height:100%;display:flex;align-items:center;justify-content:space-between;padding:0 20px;font-size:18px;font-weight:700}.app-header-module-item__icon[data-v-c78820aa]{margin-right:8px}.app-header-right[data-v-c78820aa]{padding-left:80px;display:flex;align-items:center}.app-sidebar[data-v-8aa015fb]{transition-duration:.3s;transition-property:width;transition-timing-function:linear;box-shadow:var(--dc-core-shadow, var(--el-box-shadow));overflow:visible;z-index:var(--v3ceb1df4)}.app-sidebar-top[data-v-8aa015fb]{position:absolute;left:0;right:0;top:0;overflow:hidden}.app-sidebar-bottom[data-v-8aa015fb]{position:absolute;left:0;right:0;bottom:0;overflow:hidden}.app-sidebar-shim[data-v-8aa015fb]{position:absolute;left:0;right:0;top:var(--v2c8b87ee);bottom:var(--baa8be1c);overflow-x:hidden;overflow-y:auto;--el-menu-border-color: transparent;-webkit-user-select:none;user-select:none}.app-theme[data-v-06ca4822]{display:inline-flex;align-items:center;gap:12px;margin-right:12px}.app-theme__style-select[data-v-06ca4822]{width:120px}.app-layout[data-v-f6f87b30]{position:relative}.app-layout_noLogin[data-v-f6f87b30] .app-body,.app-layout_noLogin[data-v-f6f87b30] .app-sidebar,.app-layout_noLogin[data-v-f6f87b30] .app-header,.app-layout_noLogin[data-v-f6f87b30] .app-footer{transition:none!important}.app-page[data-v-8fb8acc9]{--dc-page-content-viewport-top: var(--v292949d5);--dc-page-content-viewport-bottom: var(--v45d97caa);--dc-page-content-viewport-left: var(--v0807b0f2);--dc-page-content-viewport-right: var(--f841aac8);--dc-page-content-viewport-width: var(--f7b4d374);--dc-page-content-viewport-height: var(--v32838eb2)}.app-page-shim[data-v-8fb8acc9]{--app-viewport-max-height: var(--v5c736bbc)}.app-page-slot-shim[data-v-8fb8acc9]{box-sizing:border-box;width:100%;height:100%}[data-v-64f355fe] .auto-refresh-label{display:flex;font-size:13px;color:var(--el-text-color-regular);margin-bottom:8px}.auto-refresh-group-icon--rotating[data-v-e608ff06]{animation:auto-refresh-rotating-e608ff06 1s linear infinite}@keyframes auto-refresh-rotating-e608ff06{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.form-item-nest-form[data-v-a413a382],.form-item-nest-form-list[data-v-68118cbf]{padding:16px;border:1px solid var(--dc-core-border-color);border-radius:8px;box-shadow:var(--dc-core-shadow, var(--el-box-shadow-lighter))}.form-item-nest-form-list-row[data-v-68118cbf]{display:flex;align-items:flex-start;gap:8px;margin-bottom:12px}.form-item-nest-form-list-row-body[data-v-68118cbf]{flex:1;min-width:0;padding:12px 16px;border:1px solid var(--el-border-color-lighter);border-radius:6px;box-shadow:var(--el-box-shadow-lighter)}.table-toolbar[data-v-0175f1a9]{display:flex;justify-content:space-between;align-items:center;padding-bottom:8px;gap:20px}.table-toolbar-left[data-v-0175f1a9],.table-toolbar-right[data-v-0175f1a9]{display:flex;align-items:center;gap:10px}.table-toolbar-switch-view[data-v-0175f1a9]{--el-switch-off-color: var(--dc-core-primary-color);--el-switch-on-color: var(--dc-core-warning-color)}.data-list-view[data-v-c66e599d]{width:100%}.data-list-view-empty[data-v-c66e599d]{display:flex;justify-content:center;align-items:center;width:100%;min-height:60px;grid-column:1 / -1}.table-main-pagination[data-v-fcb4b963]{margin-top:10px;display:flex;justify-content:flex-end}.dc-slot-layout-flow-aside_separate[data-v-5c6ef74b]{position:relative}.dc-slot-layout-flow-aside_separate_left[data-v-5c6ef74b]{padding-left:calc(var(--v88700944) - 1px)}.dc-slot-layout-flow-aside_separate_right[data-v-5c6ef74b]{padding-right:calc(var(--v88700944) - 1px)}.dc-slot-layout-flow-aside-aside[data-v-5c6ef74b]{width:var(--v88700944)}.dc-slot-layout-flow-aside-aside_left[data-v-5c6ef74b],.dc-slot-layout-flow-aside-aside_right[data-v-5c6ef74b]{position:absolute;top:0;max-height:min(100%,var(--v23b7c943));overflow-y:auto}.dc-slot-layout-flow-aside-aside_left[data-v-5c6ef74b]{left:0}.dc-slot-layout-flow-aside-aside_right[data-v-5c6ef74b]{right:0}.dc-slot-layout-flow-aside-main[data-v-5c6ef74b]{width:var(--v7e1d11ca)}.list-page[data-v-a488e79a]{min-height:var(--v41370796)}.list-page-header[data-v-a488e79a],.list-page-operation[data-v-a488e79a]{margin-bottom:10px}.list-page_search-sticky[data-v-a488e79a] .form-search{position:sticky;top:var(--v561cdcbe);z-index:10;background:var(--dc-core-surface, var(--el-bg-color));box-shadow:0 1px 0 0 var(--dc-core-border-color, var(--el-border-color-lighter))}.list-page_toolbar-sticky[data-v-a488e79a] .dc-table-main__toolbar{position:sticky;top:var(--v176bdd58);z-index:9;padding-top:10px;background:var(--dc-core-surface, var(--el-bg-color));box-shadow:0 1px 0 0 var(--dc-core-border-color, var(--el-border-color-lighter))}.list-page_pager-sticky[data-v-a488e79a] .dc-table-main__pagination{position:sticky;bottom:var(--v3cef8d58);z-index:9;margin-top:0;padding-top:10px;background:var(--dc-core-surface, var(--el-bg-color));box-shadow:0 -1px 0 0 var(--dc-core-border-color, var(--el-border-color-lighter))}.list-page[data-v-a488e79a] .el-loading-mask{left:-10px;top:-10px;right:-10px;bottom:-10px}.panel-item-nest-form-actions[data-v-3af1d77a]{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}
package/es/utils/dom.mjs CHANGED
@@ -7,6 +7,16 @@ function n(e) {
7
7
  t = t.parentElement;
8
8
  }
9
9
  }
10
+ function r(e) {
11
+ let t = e == null ? void 0 : e.parentElement;
12
+ for (; t && t !== document.body && t !== document.documentElement; ) {
13
+ const o = getComputedStyle(t);
14
+ if (o.display !== "contents" && /(auto|scroll|overlay|hidden)/.test(o.overflowY))
15
+ return t;
16
+ t = t.parentElement;
17
+ }
18
+ }
10
19
  export {
11
- n as domClosestScrollableAncestor
20
+ n as domClosestScrollableAncestor,
21
+ r as domClosestStickyScrollport
12
22
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@done-coding/admin-core",
3
- "version": "0.15.1-alpha.0",
3
+ "version": "0.16.1-alpha.0",
4
4
  "description": "内部前端库",
5
5
  "private": false,
6
6
  "main": "es/index.mjs",
@@ -79,5 +79,5 @@
79
79
  "node": ">=18.0.0",
80
80
  "pnpm": ">=9.0.0"
81
81
  },
82
- "gitHead": "84d8263af2b77d19e0c79464b83d01225fb3f853"
82
+ "gitHead": "1ad0786c399e951d209dd86967c01e77cae9b382"
83
83
  }
@@ -8,6 +8,10 @@ type __VLS_Props = {
8
8
  bottomBg?: string;
9
9
  leftBg?: string;
10
10
  rightBg?: string;
11
+ topObserveResize?: boolean;
12
+ bottomObserveResize?: boolean;
13
+ leftObserveResize?: boolean;
14
+ rightObserveResize?: boolean;
11
15
  };
12
16
  declare function __VLS_template(): {
13
17
  attrs: Partial<{}>;
@@ -29,6 +33,10 @@ declare const __VLS_component: import('vue').DefineComponent<__VLS_Props, {}, {}
29
33
  fullViewport: boolean;
30
34
  fullMode: "min-height" | "height";
31
35
  nextViewportMaxHeight: string;
36
+ topObserveResize: boolean;
37
+ bottomObserveResize: boolean;
38
+ leftObserveResize: boolean;
39
+ rightObserveResize: boolean;
32
40
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
33
41
  appPageRef: HTMLDivElement;
34
42
  }, HTMLDivElement>;
@@ -96,7 +96,7 @@ declare function __VLS_template(): {
96
96
  }> & Omit<Readonly<import('element-plus').AnchorProps> & Readonly<{
97
97
  onChange?: ((href: string) => any) | undefined;
98
98
  onClick?: ((e: MouseEvent, href?: string | undefined) => any) | undefined;
99
- }>, "type" | "offset" | "marker" | "bound" | "duration" | "direction" | "scrollTo"> & {
99
+ }>, "type" | "marker" | "offset" | "bound" | "duration" | "direction" | "scrollTo"> & {
100
100
  scrollTo: (href?: string) => void;
101
101
  } & {} & import('vue').ComponentCustomProperties & {} & {
102
102
  $slots: {
@@ -191,7 +191,7 @@ declare const __VLS_component: import('vue').DefineComponent<__VLS_PublicProps,
191
191
  }> & Omit<Readonly<import('element-plus').AnchorProps> & Readonly<{
192
192
  onChange?: ((href: string) => any) | undefined;
193
193
  onClick?: ((e: MouseEvent, href?: string | undefined) => any) | undefined;
194
- }>, "type" | "offset" | "marker" | "bound" | "duration" | "direction" | "scrollTo"> & {
194
+ }>, "type" | "marker" | "offset" | "bound" | "duration" | "direction" | "scrollTo"> & {
195
195
  scrollTo: (href?: string) => void;
196
196
  } & {} & import('vue').ComponentCustomProperties & {} & {
197
197
  $slots: {
@@ -1,5 +1,7 @@
1
1
  type __VLS_Props = {
2
2
  mode?: "height" | "width" | "both";
3
+ observeResize?: boolean;
4
+ debounceTime?: number;
3
5
  };
4
6
  declare function __VLS_template(): {
5
7
  attrs: Partial<{}>;
@@ -20,6 +22,8 @@ declare const __VLS_component: import('vue').DefineComponent<__VLS_Props, {}, {}
20
22
  onWidthChange?: ((value: number) => any) | undefined;
21
23
  }>, {
22
24
  mode: "height" | "width" | "both";
25
+ observeResize: boolean;
26
+ debounceTime: number;
23
27
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
24
28
  box: HTMLDivElement;
25
29
  }, HTMLDivElement>;
@@ -1,4 +1,4 @@
1
- import { Component, ComputedRef, VNode } from 'vue';
1
+ import { Component, VNode } from 'vue';
2
2
  import { ButtonProps, TagProps } from 'element-plus';
3
3
  export type ActionConfirmMode = "popconfirm" | "messageConfirm";
4
4
  export type ActionConfirmTextResolver = string | (() => string | VNode[]);
@@ -48,10 +48,6 @@ export interface TabsMainItem {
48
48
  title: string;
49
49
  component?: Component;
50
50
  }
51
- export interface TabsChannelPayload {
52
- viewportHeight: ComputedRef<number>;
53
- level: number;
54
- }
55
51
  export type TabsMainPadding = [number, number, number, number];
56
52
  export type TabsHeaderVariant = "card" | "indicator" | "indicator-compact" | "plain";
57
53
  export type TabsMainTileNavPosition = "bottom-right" | "bottom-left" | "top-right" | "top-left";
@@ -89,10 +89,10 @@ declare function __VLS_template(): {
89
89
  labelPosition: "left" | "right" | "top" | "";
90
90
  inlineMessage: boolean;
91
91
  showMessage: boolean;
92
- }> & Omit<Readonly<import('element-plus').FormItemProps> & Readonly<{}>, "labelPosition" | "required" | "inlineMessage" | "showMessage" | "size" | "validate" | "clearValidate" | "validateMessage" | "validateState" | "resetField" | "setInitialValue"> & {
93
- size: "" | "default" | "small" | "large";
92
+ }> & Omit<Readonly<import('element-plus').FormItemProps> & Readonly<{}>, "size" | "required" | "labelPosition" | "inlineMessage" | "showMessage" | "validate" | "clearValidate" | "validateMessage" | "validateState" | "resetField" | "setInitialValue"> & {
93
+ size: "" | "small" | "default" | "large";
94
94
  validateMessage: string;
95
- validateState: "" | "error" | "validating" | "success";
95
+ validateState: "" | "error" | "success" | "validating";
96
96
  validate: (trigger: string, callback?: import('element-plus').FormValidateCallback) => import('element-plus').FormValidationResult;
97
97
  clearValidate: () => void;
98
98
  resetField: () => void;
@@ -115,17 +115,17 @@ declare function __VLS_template(): {
115
115
  };
116
116
  type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
117
117
  declare const __VLS_component: import('vue').DefineComponent<FormMainItemProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
118
+ submit: (type: FormItemSubmitType) => any;
118
119
  viewHideChange: (info: {
119
120
  config: FormMainItemProps["config"];
120
121
  status: boolean;
121
122
  }) => any;
122
- submit: (type: FormItemSubmitType) => any;
123
123
  }, string, import('vue').PublicProps, Readonly<FormMainItemProps> & Readonly<{
124
+ onSubmit?: ((type: FormItemSubmitType) => any) | undefined;
124
125
  onViewHideChange?: ((info: {
125
126
  config: FormMainItemProps["config"];
126
127
  status: boolean;
127
128
  }) => any) | undefined;
128
- onSubmit?: ((type: FormItemSubmitType) => any) | undefined;
129
129
  }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
130
130
  formItem: ({
131
131
  $: import('vue').ComponentInternalInstance;
@@ -194,10 +194,10 @@ declare const __VLS_component: import('vue').DefineComponent<FormMainItemProps,
194
194
  labelPosition: "left" | "right" | "top" | "";
195
195
  inlineMessage: boolean;
196
196
  showMessage: boolean;
197
- }> & Omit<Readonly<import('element-plus').FormItemProps> & Readonly<{}>, "labelPosition" | "required" | "inlineMessage" | "showMessage" | "size" | "validate" | "clearValidate" | "validateMessage" | "validateState" | "resetField" | "setInitialValue"> & {
198
- size: "" | "default" | "small" | "large";
197
+ }> & Omit<Readonly<import('element-plus').FormItemProps> & Readonly<{}>, "size" | "required" | "labelPosition" | "inlineMessage" | "showMessage" | "validate" | "clearValidate" | "validateMessage" | "validateState" | "resetField" | "setInitialValue"> & {
198
+ size: "" | "small" | "default" | "large";
199
199
  validateMessage: string;
200
- validateState: "" | "error" | "validating" | "success";
200
+ validateState: "" | "error" | "success" | "validating";
201
201
  validate: (trigger: string, callback?: import('element-plus').FormValidateCallback) => import('element-plus').FormValidationResult;
202
202
  clearValidate: () => void;
203
203
  resetField: () => void;
@@ -26,18 +26,7 @@ declare const _default: <PO extends Record<string, any>, SO extends Record<strin
26
26
  placeholder?: string;
27
27
  }) => any>> & {
28
28
  default?(_: {
29
- mergeLayout: (layout?: Partial<ColProps>) => {
30
- tag?: string;
31
- span?: number;
32
- offset?: number;
33
- pull?: number;
34
- push?: number;
35
- xs?: import('element-plus').ColSize;
36
- sm?: import('element-plus').ColSize;
37
- md?: import('element-plus').ColSize;
38
- lg?: import('element-plus').ColSize;
39
- xl?: import('element-plus').ColSize;
40
- };
29
+ mergeLayout: (layout?: Partial<ColProps>) => Partial<ColProps>;
41
30
  }): any;
42
31
  };
43
32
  emit: {
@@ -1,8 +1,8 @@
1
1
  import { FormSubmitPanelProps, FormDataInfo } from './types';
2
2
  declare const _default: <PO extends Record<string, any>, SO extends Record<string, any>>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
3
3
  props: __VLS_PrettifyLocal<Pick<Partial<{}> & Omit<{
4
- readonly onSuccess?: ((sData: import('./types').ExcludeNeverProperties<import('./types').ExtractFormStringifyRawFromObject<PO, SO>>) => any) | undefined;
5
4
  readonly onCancel?: (() => any) | undefined;
5
+ readonly onSuccess?: ((sData: import('./types').ExcludeNeverProperties<import('./types').ExtractFormStringifyRawFromObject<PO, SO>>) => any) | undefined;
6
6
  readonly onFail?: ((error: any) => any) | undefined;
7
7
  readonly onParseDataChange?: ((pData: PO) => any) | undefined;
8
8
  } & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps, never>, "onCancel" | "onSuccess" | "onFail" | "onParseDataChange"> & FormSubmitPanelProps<PO, SO> & Partial<{}>> & import('vue').PublicProps;
@@ -84,6 +84,7 @@ export interface FormMainProps<PO extends Record<string, any>, SO extends Record
84
84
  layout?: Partial<ColProps>;
85
85
  rowGutter?: number;
86
86
  layoutScale?: number;
87
+ layoutByContainer?: boolean;
87
88
  }
88
89
  export interface FormSearchProps<PO extends Record<string, any>, SO extends Record<string, any>, SQ extends Record<string, any>> extends FormMainProps<PO, SO> {
89
90
  labelPosition?: "right" | "left" | "top";
@@ -0,0 +1,11 @@
1
+ import { Breakpoint } from '../../hooks';
2
+ import { ColProps, FormInstance } from 'element-plus';
3
+ export declare const resolveFormLayoutAtBreakpoint: (merged: Partial<ColProps>, breakpoint: Breakpoint) => Partial<ColProps>;
4
+ export interface UseFormLayoutByContainerOptions {
5
+ enabled: () => boolean;
6
+ getForm: () => FormInstance | undefined;
7
+ }
8
+ export interface UseFormLayoutByContainerReturn {
9
+ resolveLayoutByContainer: (merged: Partial<ColProps>) => Partial<ColProps>;
10
+ }
11
+ export declare function useFormLayoutByContainer(options: UseFormLayoutByContainerOptions): UseFormLayoutByContainerReturn;
@@ -15,7 +15,7 @@ declare const _default: <T extends Record<string, any>, PO extends Record<string
15
15
  refreshInterval?: number;
16
16
  customView?: boolean;
17
17
  } & Partial<Pick<import('../form').FormSearchProps<PO, SO, {}>, "staticQuery">> & {
18
- formSearchProps?: Partial<Omit<import('../form').FormSearchProps<PO, SO, {}>, "list" | "compact" | "staticQuery">> | undefined;
18
+ formSearchProps?: Partial<Omit<import('../form').FormSearchProps<PO, SO, {}>, "staticQuery" | "compact" | "list">> | undefined;
19
19
  } & Pick<import('../table').TableMainProps<T, import('../form').ExcludeNeverProperties<import('../form').ExtractFormStringifyRawFromObject<PO, SO>> & SQ, ListPageInnerInjectInfo<PO, F>>, import('./types').TableMainRequiredKey> & Partial<Pick<import('../table').TableMainProps<T, import('../form').ExcludeNeverProperties<import('../form').ExtractFormStringifyRawFromObject<PO, SO>> & SQ, ListPageInnerInjectInfo<PO, F>>, import('./types').TableMainOptionsKey>> & {
20
20
  tableMainProps?: Partial<Omit<import('../table').TableMainProps<T, import('../form').ExcludeNeverProperties<import('../form').ExtractFormStringifyRawFromObject<PO, SO>> & SQ, ListPageInnerInjectInfo<PO, F>>, import('./types').TableMainOptionsKey | import('./types').TableMainRewriteKey>> | undefined;
21
21
  } & {
@@ -27,6 +27,11 @@ declare const _default: <T extends Record<string, any>, PO extends Record<string
27
27
  clearTableFilterOnReset?: boolean;
28
28
  separateSearch?: boolean;
29
29
  separateSearchConfig?: Pick<import('../slot-layout').SlotLayoutFlowAsideProps, "type" | "gap" | "asideWidth">;
30
+ searchSticky?: boolean;
31
+ toolbarSticky?: boolean;
32
+ pagerSticky?: boolean;
33
+ headerObserveResize?: boolean;
34
+ operationObserveResize?: boolean;
30
35
  }) & Partial<{}>> & import('vue').PublicProps;
31
36
  expose(exposed: import('vue').ShallowUnwrapRef<ListPageInstance<PO, Record<string, any>>>): void;
32
37
  attrs: any;
@@ -20,6 +20,11 @@ export type ListPageProps<T extends Record<string, any>, PO extends Record<strin
20
20
  clearTableFilterOnReset?: boolean;
21
21
  separateSearch?: boolean;
22
22
  separateSearchConfig?: Pick<SlotLayoutFlowAsideProps, "type" | "gap" | "asideWidth">;
23
+ searchSticky?: boolean;
24
+ toolbarSticky?: boolean;
25
+ pagerSticky?: boolean;
26
+ headerObserveResize?: boolean;
27
+ operationObserveResize?: boolean;
23
28
  };
24
29
  export interface ListPageInstance<PO extends Record<string, any> = Record<string, any>, SO extends Record<string, any> = Record<string, any>> extends FormSearchInstance<PO, SO>, TableMainInstance {
25
30
  update: (key: Extract<keyof PO, string>, value: any) => void;
@@ -0,0 +1,19 @@
1
+ import { ComponentPublicInstance, ComputedRef, ShallowRef } from 'vue';
2
+ export interface UseListPageStickyOptions {
3
+ searchSticky: () => boolean;
4
+ toolbarSticky: () => boolean;
5
+ pagerSticky: () => boolean;
6
+ separateSearch: () => boolean;
7
+ searchHeight: () => number;
8
+ showSearch: () => boolean;
9
+ }
10
+ export interface UseListPageStickyReturn {
11
+ layoutRoot: ShallowRef<ComponentPublicInstance | undefined>;
12
+ searchStickyActive: ComputedRef<boolean>;
13
+ toolbarStickyActive: ComputedRef<boolean>;
14
+ pagerStickyActive: ComputedRef<boolean>;
15
+ searchStickyTop: ComputedRef<string>;
16
+ toolbarStickyTop: ComputedRef<string>;
17
+ pagerStickyBottom: ComputedRef<string>;
18
+ }
19
+ export declare function useListPageSticky(options: UseListPageStickyOptions): UseListPageStickyReturn;
@@ -19,19 +19,26 @@ type __VLS_Props = {
19
19
  type?: ButtonProps["type"];
20
20
  layerType?: "modal" | "drawer";
21
21
  direction?: "rtl" | "ltr" | "ttb" | "btt";
22
+ headerDivider?: boolean;
23
+ footerDivider?: boolean;
24
+ modalReserve?: number;
22
25
  };
23
26
  declare function __VLS_template(): {
24
27
  attrs: Partial<{}>;
25
28
  slots: {
26
29
  title?(_: {}): any;
30
+ 'main-header'?(_: {}): any;
27
31
  default?(_: {}): any;
32
+ 'main-footer'?(_: {}): any;
28
33
  footer?(_: {
29
34
  cancelHandler: () => Promise<void>;
30
35
  confirmHandler: () => Promise<void>;
31
36
  loading: boolean;
32
37
  }): any;
33
38
  };
34
- refs: {};
39
+ refs: {
40
+ contentRef: HTMLDivElement;
41
+ };
35
42
  rootEl: any;
36
43
  };
37
44
  type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
@@ -40,9 +47,9 @@ declare const __VLS_component: import('vue').DefineComponent<__VLS_Props, {}, {}
40
47
  }, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
41
48
  "onUpdate:show"?: ((value: boolean) => any) | undefined;
42
49
  }>, {
43
- type: "" | "success" | "default" | "text" | "info" | "primary" | "warning" | "danger";
44
50
  reverse: boolean;
45
51
  width: number | string;
52
+ type: "" | "default" | "text" | "primary" | "success" | "warning" | "info" | "danger";
46
53
  direction: "rtl" | "ltr" | "ttb" | "btt";
47
54
  showClose: boolean;
48
55
  cancelText: string | (() => VNode);
@@ -51,7 +58,12 @@ declare const __VLS_component: import('vue').DefineComponent<__VLS_Props, {}, {}
51
58
  closeOnPressEscape: boolean;
52
59
  closeOnClickModal: boolean;
53
60
  layerType: "modal" | "drawer";
54
- }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
61
+ headerDivider: boolean;
62
+ footerDivider: boolean;
63
+ modalReserve: number;
64
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
65
+ contentRef: HTMLDivElement;
66
+ }, any>;
55
67
  declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
56
68
  export default _default;
57
69
  type __VLS_WithTemplateSlots<T, S> = T & {
@@ -8,7 +8,10 @@ declare const _default: <PO extends Record<string, any>, SO extends Record<strin
8
8
  } & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps, never>, "onUpdate:show" | "onAfterAdd" | "onAfterEdit"> & DetailModalProps<PO, SO> & Partial<{}>> & import('vue').PublicProps;
9
9
  expose(exposed: import('vue').ShallowUnwrapRef<{}>): void;
10
10
  attrs: any;
11
- slots: {};
11
+ slots: {
12
+ header?(_: {}): any;
13
+ footer?(_: {}): any;
14
+ };
12
15
  emit: {
13
16
  (e: "update:show", value: boolean): void;
14
17
  (e: "afterAdd" | "afterEdit", data: ExtractFormStringifyFromObject<PO, SO>): void;
@@ -13,8 +13,8 @@ type __VLS_Props = {
13
13
  rebase?: boolean;
14
14
  };
15
15
  declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
16
- submitText: string;
17
16
  cancelText: string;
17
+ submitText: string;
18
18
  rebase: boolean;
19
19
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
20
20
  childRef: {
@@ -5,5 +5,6 @@ export * from './feel-size';
5
5
  export * from './menus-dispatch';
6
6
  export * from './timeout';
7
7
  export * from './use-channel-viewport-height';
8
+ export * from './use-observe-size';
8
9
  export * from './use-theme-apply';
9
10
  export * from './use-viewport-apply';
@@ -1,4 +1,5 @@
1
1
  import { ComputedRef } from 'vue';
2
+ import { ScopeViewportMaxHeight } from '../inject';
2
3
  export interface UseChannelViewportHeightOptions {
3
4
  fallback?: number;
4
5
  }
@@ -8,6 +9,6 @@ export interface UseChannelViewportHeightMaybeProps {
8
9
  }
9
10
  export interface UseChannelViewportHeightReturn {
10
11
  viewportHeightFinal: ComputedRef<number>;
11
- parentLevel: ComputedRef<number>;
12
+ nearestScope: ScopeViewportMaxHeight | undefined;
12
13
  }
13
14
  export declare const useChannelViewportHeight: (maybeProps: UseChannelViewportHeightMaybeProps, options?: UseChannelViewportHeightOptions) => UseChannelViewportHeightReturn;
@@ -0,0 +1,7 @@
1
+ export interface UseObserveSizeOptions {
2
+ getTarget: () => HTMLElement | null | undefined;
3
+ onResize: (entry: ResizeObserverEntry) => void;
4
+ enabled?: () => boolean;
5
+ debounce?: number;
6
+ }
7
+ export declare const useObserveSize: (options: UseObserveSizeOptions) => void;
@@ -4,6 +4,12 @@ import { ModalLevel, ShelfController } from '../components/modal';
4
4
  import { AppLayoutAppStoreSlice, AppLayoutUserStoreSlice, AppLayoutBridgeSlice } from '../components/app-layout';
5
5
  import { NestFormExposeMap } from '../components/form';
6
6
  export declare const BODY_CONTENT_VIEWPORT_HEIGHT: InjectionKey<Readonly<Ref<number>>>;
7
+ export interface ScopeViewportMaxHeight {
8
+ scope?: string;
9
+ viewportMaxHeight: Readonly<Ref<number>>;
10
+ parent?: ScopeViewportMaxHeight;
11
+ }
12
+ export declare const SCOPE_VIEWPORT_MAX_HEIGHT: InjectionKey<ScopeViewportMaxHeight>;
7
13
  export declare const BODY_CONTENT_VIEWPORT_RECT: InjectionKey<ComputedRef<{
8
14
  top: string;
9
15
  left: string;
@@ -17,12 +23,12 @@ export declare const BODY_CONTENT_VIEWPORT_INSET: InjectionKey<ComputedRef<{
17
23
  left: number;
18
24
  right: number;
19
25
  }>>;
20
- export declare const APP_PAGE_CONTENT_INSET: InjectionKey<ComputedRef<{
26
+ export declare const APP_PAGE_CONTENT_INSET: InjectionKey<Readonly<Ref<Readonly<{
21
27
  top: number;
22
28
  bottom: number;
23
29
  left: number;
24
30
  right: number;
25
- }>>;
31
+ }>>>>;
26
32
  export declare function getModalShelfInjectionKey(level: ModalLevel): InjectionKey<ShelfController>;
27
33
  export declare const TABS_MAIN_VISUAL_LEVEL: InjectionKey<number>;
28
34
  export declare const APP_LAYOUT_APP_STORE_KEY: InjectionKey<AppLayoutAppStoreSlice>;
@@ -1,6 +1,6 @@
1
1
  declare const _default: {
2
2
  "name": "@done-coding/admin-core",
3
- "version": "0.15.1-alpha.0",
3
+ "version": "0.16.1-alpha.0",
4
4
  "description": "内部前端库"
5
5
  };
6
6
 
@@ -1 +1,2 @@
1
1
  export declare function domClosestScrollableAncestor(el: HTMLElement | null | undefined): HTMLElement | undefined;
2
+ export declare function domClosestStickyScrollport(el: HTMLElement | null | undefined): HTMLElement | undefined;