@stonecrop/atable 0.24.0 → 0.25.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/index.css +1 -1
- package/dist/atable.d.ts +88 -0
- package/dist/atable.js +1164 -987
- package/dist/atable.js.map +1 -1
- package/dist/src/composables/table-pagination.d.ts +53 -0
- package/dist/src/composables/table-pagination.d.ts.map +1 -0
- package/dist/src/composables/table-pagination.js +108 -0
- package/dist/src/index.d.ts +4 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +4 -1
- package/dist/src/linkSearchableText.d.ts +7 -0
- package/dist/src/linkSearchableText.d.ts.map +1 -0
- package/dist/src/linkSearchableText.js +44 -0
- package/dist/src/resolveFilterType.d.ts +10 -0
- package/dist/src/resolveFilterType.d.ts.map +1 -0
- package/dist/src/resolveFilterType.js +27 -0
- package/dist/src/stores/table.d.ts +24 -0
- package/dist/src/stores/table.d.ts.map +1 -1
- package/dist/src/stores/table.js +9 -5
- package/dist/src/types/index.d.ts +5 -0
- package/dist/src/types/index.d.ts.map +1 -1
- package/package.json +4 -4
- package/src/components/ATable.vue +46 -3
- package/src/components/ATableColumnFilter.vue +2 -23
- package/src/components/ATablePaginationFooter.vue +100 -0
- package/src/composables/table-pagination.ts +172 -0
- package/src/index.ts +5 -0
- package/src/linkSearchableText.ts +42 -0
- package/src/resolveFilterType.ts +32 -0
- package/src/stores/table.ts +7 -4
- package/src/types/index.ts +6 -0
package/dist/assets/index.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.atable-cell{border-radius:0;box-sizing:border-box;outline:none;box-shadow:none;color:var(--sc-cell-text-color);padding-left:.5ch!important;padding-right:.5ch;padding-top:var(--sc-atable-row-padding);padding-bottom:var(--sc-atable-row-padding);border-spacing:0px;border-collapse:collapse;overflow:hidden;text-overflow:ellipsis;order:1;white-space:nowrap;max-width:40ch;border-top:1px solid var(--sc-row-border-color);margin:0 0 0 1px}.atable-cell a{color:var(--sc-cell-text-color);text-decoration:none}.atable-cell:focus,.atable-cell:focus-within{background-color:var(--sc-focus-cell-background);outline-width:var(--sc-atable-cell-border-width);outline-style:solid;outline-offset:calc(var(--sc-atable-cell-border-width) * -1);outline-color:var(--sc-focus-cell-outline);box-shadow:none;overflow:hidden;text-wrap:nowrap;box-sizing:border-box}.cell-modified{font-weight:700;font-style:italic}.cell-modified-highlight{background-color:var(--sc-cell-changed-color)}.atable-cell--badge-fill{padding:0!important;margin-left:0}.aganttcell[data-v-032ef6d9]{background-color:#f9f9f9;width:100%;padding:0;height:100%}.gantt-container[data-v-032ef6d9]{position:relative;height:100%;background-color:#f0f0f0;border-radius:4px;overflow:visible}.gantt-bar[data-v-032ef6d9]{position:absolute;border-radius:4px;display:flex;align-items:center;justify-content:space-between;cursor:grab;box-sizing:border-box;border:1px solid rgba(0,0,0,.5);transition:left .1s ease-out,width .1s ease-out;height:80%;top:50%;z-index:0;transform:translateY(-50%)}.gantt-bar[data-v-032ef6d9]:active{cursor:grabbing}.gantt-bar.is-dragging[data-v-032ef6d9]{z-index:10}.gantt-label[data-v-032ef6d9]{flex:1;text-align:center;font-size:12px;color:#aaa;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 8px;-webkit-user-select:none;user-select:none}.resize-handle[data-v-032ef6d9]{position:relative;width:12px;height:100%;cursor:ew-resize;display:flex;align-items:center;justify-content:center;z-index:0;background:#00000040}.left-resize-handle[data-v-032ef6d9]{border-right:1px solid rgba(0,0,0,.5)}.right-resize-handle[data-v-032ef6d9]{border-left:1px solid rgba(0,0,0,.5)}.handle-grip[data-v-032ef6d9]{width:4px;height:12px;border-radius:2px;background:#000c}.resize-handle[data-v-032ef6d9]:hover{background-color:#ffffff80}.vertical-indicator[data-v-032ef6d9]{position:absolute;width:2px;opacity:0;pointer-events:none;transition:opacity .2s ease;top:-100vh;height:100vh;z-index:5;background-color:var(--v564d6da1)}.left-indicator[data-v-032ef6d9]{left:50%;transform:translate(-50%)}.right-indicator[data-v-032ef6d9]{right:50%;transform:translate(50%)}.resize-handle.is-dragging .vertical-indicator[data-v-032ef6d9]{opacity:.7}.gantt-container[data-v-032ef6d9]:after{content:"";position:absolute;inset:0;background-size:calc(100% / var(--v4f540c19)) 100%;background-image:linear-gradient(to right,rgba(0,0,0,.1) 1px,transparent 1px);pointer-events:none;z-index:1}.connection-handle[data-v-032ef6d9]{position:absolute;top:50%;transform:translateY(-50%);width:16px;height:16px;opacity:0;transition:opacity .2s ease;cursor:crosshair;z-index:2;display:flex;align-items:center;justify-content:center}.connection-handle.visible[data-v-032ef6d9]{opacity:1}.left-connection-handle[data-v-032ef6d9]{left:-16px}.right-connection-handle[data-v-032ef6d9]{right:-16px}.connection-dot[data-v-032ef6d9]{width:8px;height:8px;border-radius:50%;background-color:#2196f3;border:2px solid white;box-shadow:0 1px 3px #0000004d}.connection-handle:hover .connection-dot[data-v-032ef6d9]{background-color:#1976d2;transform:scale(1.2)}.connection-handle.is-dragging[data-v-032ef6d9]{opacity:1!important}.connection-handle.is-dragging .connection-dot[data-v-032ef6d9]{background-color:#1976d2;transform:scale(1.3);box-shadow:0 2px 8px #2196f366}.atable-row-actions{width:2rem;min-width:2rem;padding:0 .25rem;vertical-align:middle;white-space:nowrap;border-top:1px solid var(--sc-row-border-color);background:#fff;-webkit-user-select:none;user-select:none;position:relative}.atable-row-actions.dropdown-active{z-index:101}.row-actions-icons{display:flex;gap:.25rem;align-items:center;justify-content:center}.row-action-btn{display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;padding:.125rem;border:none;background:transparent;cursor:pointer;border-radius:.25rem;transition:background-color .15s ease}.row-action-btn:hover{background-color:var(--sc-gray-10, #e5e5e5)}.row-action-btn:focus{outline:2px solid var(--sc-focus-cell-outline, #3b82f6);outline-offset:1px}.row-action-btn .action-icon{display:flex;align-items:center;justify-content:center;width:1rem;height:1rem}.row-action-btn .action-icon :deep(svg){width:100%;height:100%}.row-actions-dropdown{position:relative;display:inline-block}.row-actions-dropdown:has(button:focus){outline:2px solid var(--sc-focus-cell-outline);outline-offset:-2px}.row-actions-toggle{display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;padding:0;border:none;background:transparent;cursor:pointer;border-radius:.25rem;font-size:1rem;font-weight:700;transition:background-color .15s ease}.row-actions-toggle:hover{background-color:var(--sc-gray-10, #e5e5e5)}.dropdown-icon{line-height:1}.row-actions-menu{position:fixed;z-index:100;min-width:10rem;padding:.25rem 0;background:#fff;border:1px solid var(--sc-row-border-color);border-left:4px solid var(--sc-row-border-color);border-radius:0}.row-actions-menu.menu-flipped{box-shadow:0 -4px 6px -1px #0000001a,0 -2px 4px -2px #0000001a}.row-action-menu-item{display:flex;align-items:center;gap:.5rem;width:100%;padding:.5rem .75rem;border:none;background:transparent;cursor:pointer;text-align:left;font-size:.875rem;transition:background-color .15s ease}.row-action-menu-item:hover{background-color:var(--sc-gray-10, #f5f5f5)}.row-action-menu-item:focus{outline:none;background-color:var(--sc-gray-10, #f5f5f5)}.row-action-menu-item:disabled,.row-action-btn:disabled{opacity:.4;cursor:not-allowed}.row-action-menu-item:disabled:hover,.row-action-btn:disabled:hover{background-color:transparent}.row-action-menu-item .action-icon{display:flex;align-items:center;justify-content:center;width:1rem;height:1rem;flex-shrink:0}.row-action-menu-item .action-icon :deep(svg){width:100%;height:100%}.row-action-menu-item .action-label{flex:1}.atable-row{background-color:#fff}.atable-row-clickable{cursor:pointer}.atable-row-clickable:hover>td{background-color:var(--sc-row-hover-color, #f0f4f8)}.atable-row:last-child>td{border-bottom:1px solid var(--sc-row-border-color)}.atable-row>td:first-child{border-left:4px solid var(--sc-row-border-color)}.atable-row>td:last-child{border-right:1px solid var(--sc-row-border-color)}.list-index{color:var(--sc-header-text-color);font-weight:700;padding-left:var(--sc-atable-row-padding);padding-right:.5em;text-align:left;-webkit-user-select:none;user-select:none;border-top:1px solid var(--sc-row-border-color);text-overflow:ellipsis;overflow:hidden;box-sizing:border-box;padding-top:var(--sc-atable-row-padding);padding-bottom:var(--sc-atable-row-padding)}.tree-index,.expansion-index{color:var(--sc-header-text-color);font-weight:700;text-align:center;-webkit-user-select:none;user-select:none;width:2ch;box-sizing:border-box;cursor:pointer;padding-top:var(--sc-atable-row-padding);padding-bottom:var(--sc-atable-row-padding)}.atable-expanded-row{border-left:2px solid var(--sc-row-border-color)}.atable-expanded-content{border-top:1px solid var(--sc-row-border-color);padding:1.5rem}.atable-row:has(td.cell-modified)>td.sticky-column,.atable-row:has(td.cell-modified)>th.sticky-column,.atable-row:has(td.cell-modified)>td.sticky-index,.atable-row:has(td.cell-modified)>th.sticky-index{background:var(--sc-cell-changed-color)}.atable-row.changed-row-gradient[data-v-4dd47763]:has(td.cell-modified){--cell-color-start: color-mix(in srgb, var(--sc-cell-changed-color), #fff 20%);--cell-color-end: color-mix(in srgb, var(--sc-cell-changed-color), #fff 60%);background:linear-gradient(90deg,var(--cell-color-start),var(--cell-color-end))}.gantt-connection-overlay[data-v-d5929c98]{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:15}.connection-path[data-v-d5929c98]{transition:stroke-width .2s ease;pointer-events:auto;cursor:pointer;stroke-dasharray:5px;stroke:var(--sc-cell-text-color)}#arrowhead-marker polygon[data-v-d5929c98]{fill:var(--sc-cell-text-color)}.animated-path[data-v-d5929c98]{animation:animated-dash-d5929c98 infinite 1.5s linear}.connection-path[data-v-d5929c98]:hover{stroke-width:3px}.connection-hitbox[data-v-d5929c98]{pointer-events:auto;cursor:pointer}@keyframes animated-dash-d5929c98{0%{stroke-dashoffset:0px}to{stroke-dashoffset:-10px}}.column-filter[data-v-a0263c77]{display:flex;align-items:center;gap:.25rem;width:100%}.filter-input[data-v-a0263c77],.filter-select[data-v-a0263c77]{background-color:var(--sc-form-background)!important;padding:.15rem .2rem;border:1px solid var(--sc-form-border);border-radius:3px;font-size:.875rem;color:var(--sc-text-color);width:100%;box-sizing:border-box}.filter-input[data-v-a0263c77]:focus,.filter-select[data-v-a0263c77]:focus{outline:none;border-color:var(--sc-input-active-border-color)}.checkbox-filter[data-v-a0263c77]{display:flex;align-items:center;gap:.25rem;font-size:.875rem;color:var(--sc-text-color);cursor:pointer}.filter-checkbox[data-v-a0263c77]{margin:0}.date-range-filter[data-v-a0263c77]{display:flex;gap:.25rem;align-items:center;width:100%}.date-range-filter .filter-input[data-v-a0263c77]{flex:1;min-width:0}.date-separator[data-v-a0263c77]{color:var(--sc-gray-50);font-weight:500;padding:0 .25rem;flex-shrink:0}.clear-btn[data-v-a0263c77]{background:var(--sc-gray-10, #f0f0f0);border:1px solid var(--sc-form-border);border-radius:3px;color:var(--sc-gray-70);cursor:pointer;font-size:1rem;padding:.15rem .4rem;line-height:1;flex-shrink:0}.atable-header-row th{padding-left:.5ch!important;font-weight:700;min-width:3ch;padding-top:var(--sc-atable-row-padding);padding-bottom:var(--sc-atable-row-padding);box-sizing:border-box;color:var(--sc-header-text-color);position:relative}#header-index{padding-left:var(--sc-atable-row-padding);box-sizing:border-box;border-top:none}.tree-index{padding-right:0}th{order:1}.list-expansion-index{width:2ch;margin-left:5px}.cursor-pointer{cursor:pointer}.atable-filters-row th{padding:.25rem .5ch;vertical-align:top}.row-actions-header{width:2rem;min-width:2rem;padding:0 .25rem}.amodal{position:absolute;background-color:var(--sc-row-color-zebra-dark);z-index:200}.atable-container{position:relative}.sticky-index{position:sticky;left:0;z-index:100;order:0}.sticky-column,th.sticky-column,td.sticky-column,th.sticky-index,td.sticky-index{position:sticky;z-index:100;order:0;background:#fff}.sticky-column-edge,.atable th.sticky-column-edge{border-right:1px solid var(--sc-row-border-color)}.atable[data-v-4bfbbeab]{position:relative;font-family:var(--sc-atable-font-family);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:var(--sc-table-font-size);border-collapse:collapse;box-sizing:border-box;table-layout:auto;width:auto;overflow:clip;height:1px}.atable th[data-v-4bfbbeab]{border-width:0px;border-style:solid;border-radius:0;padding-left:.5ch;padding-right:.5ch;padding-top:var(--sc-atable-row-padding);padding-bottom:var(--sc-atable-row-padding);color:var(--sc-gray-60);height:var(--sc-atable-row-height);font-weight:300;letter-spacing:.05rem;order:1;box-sizing:border-box}.atable th[data-v-4bfbbeab]:focus{outline:none}.atable[data-v-4bfbbeab]:tbody{overflow:hidden;position:relative}.atable[data-v-4bfbbeab]:tbody:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background-color:transparent;z-index:100}.aloading[data-v-a930a25b]{width:100%;border-top:1px solid var(--sc-row-border-color);border-bottom:1px solid var(--sc-row-border-color);display:flex;background-color:#fff;border-left:4px solid var(--sc-row-border-color);padding-left:.5ch!important;padding-right:.5ch;padding-top:var(--sc-atable-row-padding);padding-bottom:var(--sc-atable-row-padding);align-items:center;box-sizing:border-box;background:var(--sc-focus-cell-background);overflow:hidden;position:relative}.aloading-bar[data-v-a930a25b]{width:100%;height:100%;position:absolute;left:-100%;top:0;background:linear-gradient(90deg,rgba(var(--sc-table-loading-color),0),rgba(var(--sc-table-loading-color),1),rgba(var(--sc-table-loading-color),0));animation:gradient-a930a25b infinite 2s;z-index:0}.aloading-header[data-v-a930a25b]{color:var(--sc-cell-text-color);font-family:var(--sc-atable-font-family);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:var(--sc-table-font-size);padding:0;margin:0;font-weight:400;z-index:1}.aloading-header[data-v-a930a25b]:after{content:"...";animation:ellipse-a930a25b 2s;animation-iteration-count:infinite}@keyframes gradient-a930a25b{0%{left:-100%}to{left:100%}}@keyframes ellipse-a930a25b{0%{content:""}20%{content:""}40%{content:"."}60%{content:".."}80%{content:"..."}}.aloading[data-v-e1165876]{width:100%;border-top:1px solid var(--sc-row-border-color);border-bottom:1px solid var(--sc-row-border-color);display:flex;background-color:#fff;border-left:4px solid var(--sc-row-border-color);padding-left:.5ch!important;padding-right:.5ch;padding-top:var(--sc-atable-row-padding);padding-bottom:var(--sc-atable-row-padding);align-items:center;box-sizing:border-box;background:var(--sc-focus-cell-background);overflow:hidden;position:relative}.aloading-bar[data-v-e1165876]{width:50%;height:3px;position:absolute;left:-100%;bottom:0;background:var(--sc-row-border-color);animation:bar-left-e1165876 infinite 2s;z-index:0}.aloading-header[data-v-e1165876]{color:var(--sc-cell-text-color);font-family:var(--sc-atable-font-family);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:var(--sc-table-font-size);padding:0;margin:0;font-weight:400;z-index:1}.aloading-header[data-v-e1165876]:after{content:"...";animation:ellipse-e1165876 2s;animation-iteration-count:infinite}@keyframes bar-left-e1165876{0%{left:-50%}to{left:100%}}@keyframes ellipse-e1165876{0%{content:""}20%{content:""}40%{content:"."}60%{content:".."}80%{content:"..."}}
|
|
1
|
+
.atable-cell{border-radius:0;box-sizing:border-box;outline:none;box-shadow:none;color:var(--sc-cell-text-color);padding-left:.5ch!important;padding-right:.5ch;padding-top:var(--sc-atable-row-padding);padding-bottom:var(--sc-atable-row-padding);border-spacing:0px;border-collapse:collapse;overflow:hidden;text-overflow:ellipsis;order:1;white-space:nowrap;max-width:40ch;border-top:1px solid var(--sc-row-border-color);margin:0 0 0 1px}.atable-cell a{color:var(--sc-cell-text-color);text-decoration:none}.atable-cell:focus,.atable-cell:focus-within{background-color:var(--sc-focus-cell-background);outline-width:var(--sc-atable-cell-border-width);outline-style:solid;outline-offset:calc(var(--sc-atable-cell-border-width) * -1);outline-color:var(--sc-focus-cell-outline);box-shadow:none;overflow:hidden;text-wrap:nowrap;box-sizing:border-box}.cell-modified{font-weight:700;font-style:italic}.cell-modified-highlight{background-color:var(--sc-cell-changed-color)}.atable-cell--badge-fill{padding:0!important;margin-left:0}.aganttcell[data-v-032ef6d9]{background-color:#f9f9f9;width:100%;padding:0;height:100%}.gantt-container[data-v-032ef6d9]{position:relative;height:100%;background-color:#f0f0f0;border-radius:4px;overflow:visible}.gantt-bar[data-v-032ef6d9]{position:absolute;border-radius:4px;display:flex;align-items:center;justify-content:space-between;cursor:grab;box-sizing:border-box;border:1px solid rgba(0,0,0,.5);transition:left .1s ease-out,width .1s ease-out;height:80%;top:50%;z-index:0;transform:translateY(-50%)}.gantt-bar[data-v-032ef6d9]:active{cursor:grabbing}.gantt-bar.is-dragging[data-v-032ef6d9]{z-index:10}.gantt-label[data-v-032ef6d9]{flex:1;text-align:center;font-size:12px;color:#aaa;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 8px;-webkit-user-select:none;user-select:none}.resize-handle[data-v-032ef6d9]{position:relative;width:12px;height:100%;cursor:ew-resize;display:flex;align-items:center;justify-content:center;z-index:0;background:#00000040}.left-resize-handle[data-v-032ef6d9]{border-right:1px solid rgba(0,0,0,.5)}.right-resize-handle[data-v-032ef6d9]{border-left:1px solid rgba(0,0,0,.5)}.handle-grip[data-v-032ef6d9]{width:4px;height:12px;border-radius:2px;background:#000c}.resize-handle[data-v-032ef6d9]:hover{background-color:#ffffff80}.vertical-indicator[data-v-032ef6d9]{position:absolute;width:2px;opacity:0;pointer-events:none;transition:opacity .2s ease;top:-100vh;height:100vh;z-index:5;background-color:var(--v564d6da1)}.left-indicator[data-v-032ef6d9]{left:50%;transform:translate(-50%)}.right-indicator[data-v-032ef6d9]{right:50%;transform:translate(50%)}.resize-handle.is-dragging .vertical-indicator[data-v-032ef6d9]{opacity:.7}.gantt-container[data-v-032ef6d9]:after{content:"";position:absolute;inset:0;background-size:calc(100% / var(--v4f540c19)) 100%;background-image:linear-gradient(to right,rgba(0,0,0,.1) 1px,transparent 1px);pointer-events:none;z-index:1}.connection-handle[data-v-032ef6d9]{position:absolute;top:50%;transform:translateY(-50%);width:16px;height:16px;opacity:0;transition:opacity .2s ease;cursor:crosshair;z-index:2;display:flex;align-items:center;justify-content:center}.connection-handle.visible[data-v-032ef6d9]{opacity:1}.left-connection-handle[data-v-032ef6d9]{left:-16px}.right-connection-handle[data-v-032ef6d9]{right:-16px}.connection-dot[data-v-032ef6d9]{width:8px;height:8px;border-radius:50%;background-color:#2196f3;border:2px solid white;box-shadow:0 1px 3px #0000004d}.connection-handle:hover .connection-dot[data-v-032ef6d9]{background-color:#1976d2;transform:scale(1.2)}.connection-handle.is-dragging[data-v-032ef6d9]{opacity:1!important}.connection-handle.is-dragging .connection-dot[data-v-032ef6d9]{background-color:#1976d2;transform:scale(1.3);box-shadow:0 2px 8px #2196f366}.atable-row-actions{width:2rem;min-width:2rem;padding:0 .25rem;vertical-align:middle;white-space:nowrap;border-top:1px solid var(--sc-row-border-color);background:#fff;-webkit-user-select:none;user-select:none;position:relative}.atable-row-actions.dropdown-active{z-index:101}.row-actions-icons{display:flex;gap:.25rem;align-items:center;justify-content:center}.row-action-btn{display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;padding:.125rem;border:none;background:transparent;cursor:pointer;border-radius:.25rem;transition:background-color .15s ease}.row-action-btn:hover{background-color:var(--sc-gray-10, #e5e5e5)}.row-action-btn:focus{outline:2px solid var(--sc-focus-cell-outline, #3b82f6);outline-offset:1px}.row-action-btn .action-icon{display:flex;align-items:center;justify-content:center;width:1rem;height:1rem}.row-action-btn .action-icon :deep(svg){width:100%;height:100%}.row-actions-dropdown{position:relative;display:inline-block}.row-actions-dropdown:has(button:focus){outline:2px solid var(--sc-focus-cell-outline);outline-offset:-2px}.row-actions-toggle{display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;padding:0;border:none;background:transparent;cursor:pointer;border-radius:.25rem;font-size:1rem;font-weight:700;transition:background-color .15s ease}.row-actions-toggle:hover{background-color:var(--sc-gray-10, #e5e5e5)}.dropdown-icon{line-height:1}.row-actions-menu{position:fixed;z-index:100;min-width:10rem;padding:.25rem 0;background:#fff;border:1px solid var(--sc-row-border-color);border-left:4px solid var(--sc-row-border-color);border-radius:0}.row-actions-menu.menu-flipped{box-shadow:0 -4px 6px -1px #0000001a,0 -2px 4px -2px #0000001a}.row-action-menu-item{display:flex;align-items:center;gap:.5rem;width:100%;padding:.5rem .75rem;border:none;background:transparent;cursor:pointer;text-align:left;font-size:.875rem;transition:background-color .15s ease}.row-action-menu-item:hover{background-color:var(--sc-gray-10, #f5f5f5)}.row-action-menu-item:focus{outline:none;background-color:var(--sc-gray-10, #f5f5f5)}.row-action-menu-item:disabled,.row-action-btn:disabled{opacity:.4;cursor:not-allowed}.row-action-menu-item:disabled:hover,.row-action-btn:disabled:hover{background-color:transparent}.row-action-menu-item .action-icon{display:flex;align-items:center;justify-content:center;width:1rem;height:1rem;flex-shrink:0}.row-action-menu-item .action-icon :deep(svg){width:100%;height:100%}.row-action-menu-item .action-label{flex:1}.atable-row{background-color:#fff}.atable-row-clickable{cursor:pointer}.atable-row-clickable:hover>td{background-color:var(--sc-row-hover-color, #f0f4f8)}.atable-row:last-child>td{border-bottom:1px solid var(--sc-row-border-color)}.atable-row>td:first-child{border-left:4px solid var(--sc-row-border-color)}.atable-row>td:last-child{border-right:1px solid var(--sc-row-border-color)}.list-index{color:var(--sc-header-text-color);font-weight:700;padding-left:var(--sc-atable-row-padding);padding-right:.5em;text-align:left;-webkit-user-select:none;user-select:none;border-top:1px solid var(--sc-row-border-color);text-overflow:ellipsis;overflow:hidden;box-sizing:border-box;padding-top:var(--sc-atable-row-padding);padding-bottom:var(--sc-atable-row-padding)}.tree-index,.expansion-index{color:var(--sc-header-text-color);font-weight:700;text-align:center;-webkit-user-select:none;user-select:none;width:2ch;box-sizing:border-box;cursor:pointer;padding-top:var(--sc-atable-row-padding);padding-bottom:var(--sc-atable-row-padding)}.atable-expanded-row{border-left:2px solid var(--sc-row-border-color)}.atable-expanded-content{border-top:1px solid var(--sc-row-border-color);padding:1.5rem}.atable-row:has(td.cell-modified)>td.sticky-column,.atable-row:has(td.cell-modified)>th.sticky-column,.atable-row:has(td.cell-modified)>td.sticky-index,.atable-row:has(td.cell-modified)>th.sticky-index{background:var(--sc-cell-changed-color)}.atable-row.changed-row-gradient[data-v-4dd47763]:has(td.cell-modified){--cell-color-start: color-mix(in srgb, var(--sc-cell-changed-color), #fff 20%);--cell-color-end: color-mix(in srgb, var(--sc-cell-changed-color), #fff 60%);background:linear-gradient(90deg,var(--cell-color-start),var(--cell-color-end))}.gantt-connection-overlay[data-v-d5929c98]{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:15}.connection-path[data-v-d5929c98]{transition:stroke-width .2s ease;pointer-events:auto;cursor:pointer;stroke-dasharray:5px;stroke:var(--sc-cell-text-color)}#arrowhead-marker polygon[data-v-d5929c98]{fill:var(--sc-cell-text-color)}.animated-path[data-v-d5929c98]{animation:animated-dash-d5929c98 infinite 1.5s linear}.connection-path[data-v-d5929c98]:hover{stroke-width:3px}.connection-hitbox[data-v-d5929c98]{pointer-events:auto;cursor:pointer}@keyframes animated-dash-d5929c98{0%{stroke-dashoffset:0px}to{stroke-dashoffset:-10px}}.column-filter[data-v-cb540703]{display:flex;align-items:center;gap:.25rem;width:100%}.filter-input[data-v-cb540703],.filter-select[data-v-cb540703]{background-color:var(--sc-form-background)!important;padding:.15rem .2rem;border:1px solid var(--sc-form-border);border-radius:3px;font-size:.875rem;color:var(--sc-text-color);width:100%;box-sizing:border-box}.filter-input[data-v-cb540703]:focus,.filter-select[data-v-cb540703]:focus{outline:none;border-color:var(--sc-input-active-border-color)}.checkbox-filter[data-v-cb540703]{display:flex;align-items:center;gap:.25rem;font-size:.875rem;color:var(--sc-text-color);cursor:pointer}.filter-checkbox[data-v-cb540703]{margin:0}.date-range-filter[data-v-cb540703]{display:flex;gap:.25rem;align-items:center;width:100%}.date-range-filter .filter-input[data-v-cb540703]{flex:1;min-width:0}.date-separator[data-v-cb540703]{color:var(--sc-gray-50);font-weight:500;padding:0 .25rem;flex-shrink:0}.clear-btn[data-v-cb540703]{background:var(--sc-gray-10, #f0f0f0);border:1px solid var(--sc-form-border);border-radius:3px;color:var(--sc-gray-70);cursor:pointer;font-size:1rem;padding:.15rem .4rem;line-height:1;flex-shrink:0}.atable-header-row th{padding-left:.5ch!important;font-weight:700;min-width:3ch;padding-top:var(--sc-atable-row-padding);padding-bottom:var(--sc-atable-row-padding);box-sizing:border-box;color:var(--sc-header-text-color);position:relative}#header-index{padding-left:var(--sc-atable-row-padding);box-sizing:border-box;border-top:none}.tree-index{padding-right:0}th{order:1}.list-expansion-index{width:2ch;margin-left:5px}.cursor-pointer{cursor:pointer}.atable-filters-row th{padding:.25rem .5ch;vertical-align:top}.row-actions-header{width:2rem;min-width:2rem;padding:0 .25rem}.amodal{position:absolute;background-color:var(--sc-row-color-zebra-dark);z-index:200}.atable-pagination td[data-v-87bc1af7]{padding:.75rem .5ch;border-top:1px solid var(--sc-row-border-color, #e0e0e0)}.truncation-note[data-v-87bc1af7],.completion-note[data-v-87bc1af7]{margin:0 0 .5rem;font-size:var(--sc-table-font-size, .875rem);color:var(--sc-gray-60, #666)}.completion-note[data-v-87bc1af7]{margin-bottom:0}.atable-pagination-controls[data-v-87bc1af7]{display:flex;gap:.5rem}.atable-pagination-btn[data-v-87bc1af7]{appearance:none;-webkit-appearance:none;box-sizing:border-box;padding:.5rem 1rem;background:var(--sc-btn-color, #fafafa);color:var(--sc-btn-label-color, #333333);border:1px solid var(--sc-btn-border, #cccccc);border-radius:var(--sc-border-radius, 0);cursor:pointer;font-family:var(--sc-font-family, Arial, sans-serif);font-size:var(--sc-table-font-size, .875rem);font-weight:400;line-height:1.2;transition:background-color .15s ease}.atable-pagination-btn[data-v-87bc1af7]:hover:not(:disabled){background:var(--sc-btn-hover, #f2f2f2)}.atable-pagination-btn[data-v-87bc1af7]:focus-visible{outline:2px solid var(--sc-input-active-border-color, #333333);outline-offset:1px}.atable-pagination-btn[data-v-87bc1af7]:disabled{cursor:not-allowed;background:var(--sc-gray-5, #f2f2f2);color:var(--sc-gray-50, #808080);border-color:var(--sc-gray-20, #cccccc);opacity:1}.atable-container{position:relative}.sticky-index{position:sticky;left:0;z-index:100;order:0}.sticky-column,th.sticky-column,td.sticky-column,th.sticky-index,td.sticky-index{position:sticky;z-index:100;order:0;background:#fff}.sticky-column-edge,.atable th.sticky-column-edge{border-right:1px solid var(--sc-row-border-color)}.atable[data-v-004f5f0f]{position:relative;font-family:var(--sc-atable-font-family);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:var(--sc-table-font-size);border-collapse:collapse;box-sizing:border-box;table-layout:auto;width:auto;overflow:clip;height:1px}.atable th[data-v-004f5f0f]{border-width:0px;border-style:solid;border-radius:0;padding-left:.5ch;padding-right:.5ch;padding-top:var(--sc-atable-row-padding);padding-bottom:var(--sc-atable-row-padding);color:var(--sc-gray-60);height:var(--sc-atable-row-height);font-weight:300;letter-spacing:.05rem;order:1;box-sizing:border-box}.atable th[data-v-004f5f0f]:focus{outline:none}.atable[data-v-004f5f0f]:tbody{overflow:hidden;position:relative}.atable[data-v-004f5f0f]:tbody:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background-color:transparent;z-index:100}.aloading[data-v-a930a25b]{width:100%;border-top:1px solid var(--sc-row-border-color);border-bottom:1px solid var(--sc-row-border-color);display:flex;background-color:#fff;border-left:4px solid var(--sc-row-border-color);padding-left:.5ch!important;padding-right:.5ch;padding-top:var(--sc-atable-row-padding);padding-bottom:var(--sc-atable-row-padding);align-items:center;box-sizing:border-box;background:var(--sc-focus-cell-background);overflow:hidden;position:relative}.aloading-bar[data-v-a930a25b]{width:100%;height:100%;position:absolute;left:-100%;top:0;background:linear-gradient(90deg,rgba(var(--sc-table-loading-color),0),rgba(var(--sc-table-loading-color),1),rgba(var(--sc-table-loading-color),0));animation:gradient-a930a25b infinite 2s;z-index:0}.aloading-header[data-v-a930a25b]{color:var(--sc-cell-text-color);font-family:var(--sc-atable-font-family);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:var(--sc-table-font-size);padding:0;margin:0;font-weight:400;z-index:1}.aloading-header[data-v-a930a25b]:after{content:"...";animation:ellipse-a930a25b 2s;animation-iteration-count:infinite}@keyframes gradient-a930a25b{0%{left:-100%}to{left:100%}}@keyframes ellipse-a930a25b{0%{content:""}20%{content:""}40%{content:"."}60%{content:".."}80%{content:"..."}}.aloading[data-v-e1165876]{width:100%;border-top:1px solid var(--sc-row-border-color);border-bottom:1px solid var(--sc-row-border-color);display:flex;background-color:#fff;border-left:4px solid var(--sc-row-border-color);padding-left:.5ch!important;padding-right:.5ch;padding-top:var(--sc-atable-row-padding);padding-bottom:var(--sc-atable-row-padding);align-items:center;box-sizing:border-box;background:var(--sc-focus-cell-background);overflow:hidden;position:relative}.aloading-bar[data-v-e1165876]{width:50%;height:3px;position:absolute;left:-100%;bottom:0;background:var(--sc-row-border-color);animation:bar-left-e1165876 infinite 2s;z-index:0}.aloading-header[data-v-e1165876]{color:var(--sc-cell-text-color);font-family:var(--sc-atable-font-family);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:var(--sc-table-font-size);padding:0;margin:0;font-weight:400;z-index:1}.aloading-header[data-v-e1165876]:after{content:"...";animation:ellipse-e1165876 2s;animation-iteration-count:infinite}@keyframes bar-left-e1165876{0%{left:-50%}to{left:100%}}@keyframes ellipse-e1165876{0%{content:""}20%{content:""}40%{content:"."}60%{content:".."}80%{content:"..."}}
|
package/dist/atable.d.ts
CHANGED
|
@@ -9,6 +9,7 @@ import ATableHeader from './components/ATableHeader.vue';
|
|
|
9
9
|
import ATableLoading from './components/ATableLoading.vue';
|
|
10
10
|
import ATableLoadingBar from './components/ATableLoadingBar.vue';
|
|
11
11
|
import ATableModal from './components/ATableModal.vue';
|
|
12
|
+
import ATablePaginationFooter from './components/ATablePaginationFooter.vue';
|
|
12
13
|
import type { BadgeDescriptor } from '@stonecrop/schema';
|
|
13
14
|
import type { ColumnSchema } from '@stonecrop/schema';
|
|
14
15
|
import { ComputedRef } from 'vue';
|
|
@@ -16,8 +17,11 @@ import { CSSProperties } from 'vue';
|
|
|
16
17
|
import DeleteIcon from './stonecrop-ui-icon-delete.svg?raw';
|
|
17
18
|
import DuplicateIcon from './stonecrop-ui-icon-duplicate.svg?raw';
|
|
18
19
|
import { FieldOptions } from '@stonecrop/schema';
|
|
20
|
+
import type { GetRecordsOptions } from '@stonecrop/schema';
|
|
21
|
+
import type { GetRecordsResult } from '@stonecrop/schema';
|
|
19
22
|
import InsertAboveIcon from './stonecrop-ui-icon-insert-above.svg?raw';
|
|
20
23
|
import InsertBelowIcon from './stonecrop-ui-icon-insert-below.svg?raw';
|
|
24
|
+
import { MaybeRefOrGetter } from 'vue';
|
|
21
25
|
import MoveIcon from './stonecrop-ui-icon-move.svg?raw';
|
|
22
26
|
import OpenIcon from './stonecrop-ui-icon-open.svg?raw';
|
|
23
27
|
import { Ref } from 'vue';
|
|
@@ -53,6 +57,8 @@ export { ATableLoadingBar }
|
|
|
53
57
|
|
|
54
58
|
export { ATableModal }
|
|
55
59
|
|
|
60
|
+
export { ATablePaginationFooter }
|
|
61
|
+
|
|
56
62
|
/**
|
|
57
63
|
* Base table configuration properties shared across all view types.
|
|
58
64
|
* @public
|
|
@@ -75,6 +81,11 @@ export declare interface BaseTableConfig {
|
|
|
75
81
|
* Configuration for row-level actions (add, delete, duplicate, etc.).
|
|
76
82
|
*/
|
|
77
83
|
rowActions?: RowActionsConfig;
|
|
84
|
+
/**
|
|
85
|
+
* When set, slice the held rows into in-memory windows of this size.
|
|
86
|
+
* Omit to show the whole held list as one window (server paging uses the backend cap).
|
|
87
|
+
*/
|
|
88
|
+
pageSize?: number;
|
|
78
89
|
}
|
|
79
90
|
|
|
80
91
|
/**
|
|
@@ -336,6 +347,7 @@ disabled?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => bo
|
|
|
336
347
|
} | undefined;
|
|
337
348
|
} | undefined;
|
|
338
349
|
} | undefined;
|
|
350
|
+
pageSize?: number | undefined;
|
|
339
351
|
} | {
|
|
340
352
|
view: "tree";
|
|
341
353
|
defaultTreeExpansion?: "root" | "branch" | "leaf" | undefined;
|
|
@@ -412,6 +424,7 @@ disabled?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => bo
|
|
|
412
424
|
} | undefined;
|
|
413
425
|
} | undefined;
|
|
414
426
|
} | undefined;
|
|
427
|
+
pageSize?: number | undefined;
|
|
415
428
|
} | {
|
|
416
429
|
view: "gantt";
|
|
417
430
|
dependencyGraph?: boolean | undefined;
|
|
@@ -488,6 +501,7 @@ disabled?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => bo
|
|
|
488
501
|
} | undefined;
|
|
489
502
|
} | undefined;
|
|
490
503
|
} | undefined;
|
|
504
|
+
pageSize?: number | undefined;
|
|
491
505
|
} | {
|
|
492
506
|
view: "tree-gantt";
|
|
493
507
|
defaultTreeExpansion?: "root" | "branch" | "leaf" | undefined;
|
|
@@ -565,6 +579,7 @@ disabled?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => bo
|
|
|
565
579
|
} | undefined;
|
|
566
580
|
} | undefined;
|
|
567
581
|
} | undefined;
|
|
582
|
+
pageSize?: number | undefined;
|
|
568
583
|
}, TableConfig | {
|
|
569
584
|
view?: "uncounted" | "list" | "list-expansion" | undefined;
|
|
570
585
|
fullWidth?: boolean | undefined;
|
|
@@ -640,6 +655,7 @@ disabled?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => bo
|
|
|
640
655
|
} | undefined;
|
|
641
656
|
} | undefined;
|
|
642
657
|
} | undefined;
|
|
658
|
+
pageSize?: number | undefined;
|
|
643
659
|
} | {
|
|
644
660
|
view: "tree";
|
|
645
661
|
defaultTreeExpansion?: "root" | "branch" | "leaf" | undefined;
|
|
@@ -716,6 +732,7 @@ disabled?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => bo
|
|
|
716
732
|
} | undefined;
|
|
717
733
|
} | undefined;
|
|
718
734
|
} | undefined;
|
|
735
|
+
pageSize?: number | undefined;
|
|
719
736
|
} | {
|
|
720
737
|
view: "gantt";
|
|
721
738
|
dependencyGraph?: boolean | undefined;
|
|
@@ -792,6 +809,7 @@ disabled?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => bo
|
|
|
792
809
|
} | undefined;
|
|
793
810
|
} | undefined;
|
|
794
811
|
} | undefined;
|
|
812
|
+
pageSize?: number | undefined;
|
|
795
813
|
} | {
|
|
796
814
|
view: "tree-gantt";
|
|
797
815
|
defaultTreeExpansion?: "root" | "branch" | "leaf" | undefined;
|
|
@@ -869,6 +887,7 @@ disabled?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => bo
|
|
|
869
887
|
} | undefined;
|
|
870
888
|
} | undefined;
|
|
871
889
|
} | undefined;
|
|
890
|
+
pageSize?: number | undefined;
|
|
872
891
|
}>;
|
|
873
892
|
connectionHandles: Ref< {
|
|
874
893
|
id: string;
|
|
@@ -1210,6 +1229,7 @@ disabled?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => bo
|
|
|
1210
1229
|
} | undefined;
|
|
1211
1230
|
} | undefined;
|
|
1212
1231
|
} | undefined;
|
|
1232
|
+
pageSize?: number | undefined;
|
|
1213
1233
|
} | {
|
|
1214
1234
|
view: "tree";
|
|
1215
1235
|
defaultTreeExpansion?: "root" | "branch" | "leaf" | undefined;
|
|
@@ -1286,6 +1306,7 @@ disabled?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => bo
|
|
|
1286
1306
|
} | undefined;
|
|
1287
1307
|
} | undefined;
|
|
1288
1308
|
} | undefined;
|
|
1309
|
+
pageSize?: number | undefined;
|
|
1289
1310
|
} | {
|
|
1290
1311
|
view: "gantt";
|
|
1291
1312
|
dependencyGraph?: boolean | undefined;
|
|
@@ -1362,6 +1383,7 @@ disabled?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => bo
|
|
|
1362
1383
|
} | undefined;
|
|
1363
1384
|
} | undefined;
|
|
1364
1385
|
} | undefined;
|
|
1386
|
+
pageSize?: number | undefined;
|
|
1365
1387
|
} | {
|
|
1366
1388
|
view: "tree-gantt";
|
|
1367
1389
|
defaultTreeExpansion?: "root" | "branch" | "leaf" | undefined;
|
|
@@ -1439,6 +1461,7 @@ disabled?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => bo
|
|
|
1439
1461
|
} | undefined;
|
|
1440
1462
|
} | undefined;
|
|
1441
1463
|
} | undefined;
|
|
1464
|
+
pageSize?: number | undefined;
|
|
1442
1465
|
}, TableConfig | {
|
|
1443
1466
|
view?: "uncounted" | "list" | "list-expansion" | undefined;
|
|
1444
1467
|
fullWidth?: boolean | undefined;
|
|
@@ -1514,6 +1537,7 @@ disabled?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => bo
|
|
|
1514
1537
|
} | undefined;
|
|
1515
1538
|
} | undefined;
|
|
1516
1539
|
} | undefined;
|
|
1540
|
+
pageSize?: number | undefined;
|
|
1517
1541
|
} | {
|
|
1518
1542
|
view: "tree";
|
|
1519
1543
|
defaultTreeExpansion?: "root" | "branch" | "leaf" | undefined;
|
|
@@ -1590,6 +1614,7 @@ disabled?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => bo
|
|
|
1590
1614
|
} | undefined;
|
|
1591
1615
|
} | undefined;
|
|
1592
1616
|
} | undefined;
|
|
1617
|
+
pageSize?: number | undefined;
|
|
1593
1618
|
} | {
|
|
1594
1619
|
view: "gantt";
|
|
1595
1620
|
dependencyGraph?: boolean | undefined;
|
|
@@ -1666,6 +1691,7 @@ disabled?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => bo
|
|
|
1666
1691
|
} | undefined;
|
|
1667
1692
|
} | undefined;
|
|
1668
1693
|
} | undefined;
|
|
1694
|
+
pageSize?: number | undefined;
|
|
1669
1695
|
} | {
|
|
1670
1696
|
view: "tree-gantt";
|
|
1671
1697
|
defaultTreeExpansion?: "root" | "branch" | "leaf" | undefined;
|
|
@@ -1743,6 +1769,7 @@ disabled?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => bo
|
|
|
1743
1769
|
} | undefined;
|
|
1744
1770
|
} | undefined;
|
|
1745
1771
|
} | undefined;
|
|
1772
|
+
pageSize?: number | undefined;
|
|
1746
1773
|
}>;
|
|
1747
1774
|
connectionHandles: Ref< {
|
|
1748
1775
|
id: string;
|
|
@@ -2084,6 +2111,7 @@ disabled?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => bo
|
|
|
2084
2111
|
} | undefined;
|
|
2085
2112
|
} | undefined;
|
|
2086
2113
|
} | undefined;
|
|
2114
|
+
pageSize?: number | undefined;
|
|
2087
2115
|
} | {
|
|
2088
2116
|
view: "tree";
|
|
2089
2117
|
defaultTreeExpansion?: "root" | "branch" | "leaf" | undefined;
|
|
@@ -2160,6 +2188,7 @@ disabled?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => bo
|
|
|
2160
2188
|
} | undefined;
|
|
2161
2189
|
} | undefined;
|
|
2162
2190
|
} | undefined;
|
|
2191
|
+
pageSize?: number | undefined;
|
|
2163
2192
|
} | {
|
|
2164
2193
|
view: "gantt";
|
|
2165
2194
|
dependencyGraph?: boolean | undefined;
|
|
@@ -2236,6 +2265,7 @@ disabled?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => bo
|
|
|
2236
2265
|
} | undefined;
|
|
2237
2266
|
} | undefined;
|
|
2238
2267
|
} | undefined;
|
|
2268
|
+
pageSize?: number | undefined;
|
|
2239
2269
|
} | {
|
|
2240
2270
|
view: "tree-gantt";
|
|
2241
2271
|
defaultTreeExpansion?: "root" | "branch" | "leaf" | undefined;
|
|
@@ -2313,6 +2343,7 @@ disabled?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => bo
|
|
|
2313
2343
|
} | undefined;
|
|
2314
2344
|
} | undefined;
|
|
2315
2345
|
} | undefined;
|
|
2346
|
+
pageSize?: number | undefined;
|
|
2316
2347
|
}, TableConfig | {
|
|
2317
2348
|
view?: "uncounted" | "list" | "list-expansion" | undefined;
|
|
2318
2349
|
fullWidth?: boolean | undefined;
|
|
@@ -2388,6 +2419,7 @@ disabled?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => bo
|
|
|
2388
2419
|
} | undefined;
|
|
2389
2420
|
} | undefined;
|
|
2390
2421
|
} | undefined;
|
|
2422
|
+
pageSize?: number | undefined;
|
|
2391
2423
|
} | {
|
|
2392
2424
|
view: "tree";
|
|
2393
2425
|
defaultTreeExpansion?: "root" | "branch" | "leaf" | undefined;
|
|
@@ -2464,6 +2496,7 @@ disabled?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => bo
|
|
|
2464
2496
|
} | undefined;
|
|
2465
2497
|
} | undefined;
|
|
2466
2498
|
} | undefined;
|
|
2499
|
+
pageSize?: number | undefined;
|
|
2467
2500
|
} | {
|
|
2468
2501
|
view: "gantt";
|
|
2469
2502
|
dependencyGraph?: boolean | undefined;
|
|
@@ -2540,6 +2573,7 @@ disabled?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => bo
|
|
|
2540
2573
|
} | undefined;
|
|
2541
2574
|
} | undefined;
|
|
2542
2575
|
} | undefined;
|
|
2576
|
+
pageSize?: number | undefined;
|
|
2543
2577
|
} | {
|
|
2544
2578
|
view: "tree-gantt";
|
|
2545
2579
|
defaultTreeExpansion?: "root" | "branch" | "leaf" | undefined;
|
|
@@ -2617,6 +2651,7 @@ disabled?: ((rowIndex: number, store: ReturnType<typeof createTableStore>) => bo
|
|
|
2617
2651
|
} | undefined;
|
|
2618
2652
|
} | undefined;
|
|
2619
2653
|
} | undefined;
|
|
2654
|
+
pageSize?: number | undefined;
|
|
2620
2655
|
}>;
|
|
2621
2656
|
connectionHandles: Ref< {
|
|
2622
2657
|
id: string;
|
|
@@ -2833,6 +2868,14 @@ export { DeleteIcon }
|
|
|
2833
2868
|
|
|
2834
2869
|
export { DuplicateIcon }
|
|
2835
2870
|
|
|
2871
|
+
/**
|
|
2872
|
+
* A table row after filter/sort, with its index in the held row list.
|
|
2873
|
+
* @public
|
|
2874
|
+
*/
|
|
2875
|
+
export declare type FilteredTableRow = TableRow & {
|
|
2876
|
+
originalIndex: number;
|
|
2877
|
+
};
|
|
2878
|
+
|
|
2836
2879
|
/**
|
|
2837
2880
|
* Represents the state of a single filter
|
|
2838
2881
|
* @public
|
|
@@ -3392,6 +3435,29 @@ export declare interface TableModalProps {
|
|
|
3392
3435
|
store: ReturnType<typeof createTableStore>;
|
|
3393
3436
|
}
|
|
3394
3437
|
|
|
3438
|
+
/**
|
|
3439
|
+
* Pagination state and controls returned by {@link useTablePagination}.
|
|
3440
|
+
* @public
|
|
3441
|
+
*/
|
|
3442
|
+
export declare interface TablePagination {
|
|
3443
|
+
visibleRows: Ref<FilteredTableRow[]>;
|
|
3444
|
+
hasPrev: Ref<boolean>;
|
|
3445
|
+
hasNext: Ref<boolean>;
|
|
3446
|
+
/** Whether the server reported more records beyond what has been fetched. */
|
|
3447
|
+
hasMore: Ref<boolean>;
|
|
3448
|
+
loading: Ref<boolean>;
|
|
3449
|
+
next: () => Promise<void>;
|
|
3450
|
+
prev: () => void;
|
|
3451
|
+
/** Whether footer chrome should render. */
|
|
3452
|
+
showFooter: Ref<boolean>;
|
|
3453
|
+
/** Whether another in-memory window exists before asking the server. */
|
|
3454
|
+
hasLocalNext: Ref<boolean>;
|
|
3455
|
+
/** Rows currently held after filter/sort — useful for a completion summary. */
|
|
3456
|
+
loadedCount: Ref<number>;
|
|
3457
|
+
/** True once the server reported a further page existed (multi-page fetch). */
|
|
3458
|
+
hasEverHadMore: Ref<boolean>;
|
|
3459
|
+
}
|
|
3460
|
+
|
|
3395
3461
|
/**
|
|
3396
3462
|
* Table row definition.
|
|
3397
3463
|
* @public
|
|
@@ -3469,4 +3535,26 @@ export declare interface TreeTableConfig extends BaseTableConfig {
|
|
|
3469
3535
|
defaultTreeExpansion?: 'root' | 'branch' | 'leaf';
|
|
3470
3536
|
}
|
|
3471
3537
|
|
|
3538
|
+
/**
|
|
3539
|
+
* Window rows after filter/sort, and optionally walk {@link @stonecrop/schema#GetRecordsOptions} for the next page.
|
|
3540
|
+
* Pagination is not a filter — pass already-filtered rows.
|
|
3541
|
+
* @public
|
|
3542
|
+
*/
|
|
3543
|
+
export declare function useTablePagination(options: UseTablePaginationOptions): TablePagination;
|
|
3544
|
+
|
|
3545
|
+
/**
|
|
3546
|
+
* Options for {@link useTablePagination}.
|
|
3547
|
+
* @public
|
|
3548
|
+
*/
|
|
3549
|
+
export declare interface UseTablePaginationOptions {
|
|
3550
|
+
/** Rows after filter and sort — pagination is a window over this list, not part of filtering. */
|
|
3551
|
+
rows: MaybeRefOrGetter<FilteredTableRow[]>;
|
|
3552
|
+
/** When set, slice the held rows into windows of this size. Omit to show the whole held list. */
|
|
3553
|
+
pageSize?: MaybeRefOrGetter<number | undefined>;
|
|
3554
|
+
/** Fetch the next server page. Typed from schema so ATable need not import Stonecrop. */
|
|
3555
|
+
getRecords?: (options?: GetRecordsOptions) => Promise<GetRecordsResult>;
|
|
3556
|
+
/** When this changes, refetch from offset 0. */
|
|
3557
|
+
sourceKey?: MaybeRefOrGetter<string | undefined>;
|
|
3558
|
+
}
|
|
3559
|
+
|
|
3472
3560
|
export { }
|