@stonecrop/atable 0.4.24 → 0.4.26
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +47 -1
- package/dist/assets/index.css +1 -1
- package/dist/atable.d.ts +13 -67
- package/dist/atable.js +1148 -1102
- package/dist/atable.js.map +1 -1
- package/dist/atable.umd.cjs +2 -2
- package/dist/atable.umd.cjs.map +1 -1
- package/dist/src/stores/table.d.ts +12 -67
- package/dist/src/stores/table.d.ts.map +1 -1
- package/dist/stores/table.js +101 -37
- package/package.json +3 -3
- package/src/components/ATable.vue +29 -13
- package/src/stores/table.ts +116 -42
package/README.md
CHANGED
|
@@ -61,7 +61,53 @@ The primary API for ATable is the column object.
|
|
|
61
61
|
}
|
|
62
62
|
```
|
|
63
63
|
|
|
64
|
-
##
|
|
64
|
+
## v-model:rows and v-model:columns
|
|
65
|
+
|
|
66
|
+
ATable now requires both rows and columns to be passed as model values using `v-model:rows` and `v-model:columns`. This allows you to dynamically modify both the table data and structure at runtime.
|
|
67
|
+
|
|
68
|
+
### Basic Usage
|
|
69
|
+
|
|
70
|
+
```vue
|
|
71
|
+
<template>
|
|
72
|
+
<ATable
|
|
73
|
+
v-model:rows="tableData"
|
|
74
|
+
v-model:columns="tableColumns"
|
|
75
|
+
@columns:update="onColumnsChange" />
|
|
76
|
+
</template>
|
|
77
|
+
|
|
78
|
+
<script setup>
|
|
79
|
+
import { ref } from 'vue'
|
|
80
|
+
|
|
81
|
+
const tableData = ref([...])
|
|
82
|
+
const tableColumns = ref([
|
|
83
|
+
{ name: 'id', label: 'ID', width: '80px', type: 'Data' },
|
|
84
|
+
{ name: 'name', label: 'Name', width: '150px', type: 'Data' },
|
|
85
|
+
])
|
|
86
|
+
|
|
87
|
+
const onColumnsChange = (columns) => {
|
|
88
|
+
console.log('Columns updated:', columns)
|
|
89
|
+
}
|
|
90
|
+
</script>
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
### Features
|
|
94
|
+
|
|
95
|
+
- **Reactive rows and columns**: Both data and structure can be modified at runtime
|
|
96
|
+
- **Column resizing**: When users resize columns, the model is automatically updated
|
|
97
|
+
- **Event emission**: The `columns:update` event is emitted whenever columns change
|
|
98
|
+
- **Required models**: Both `v-model:rows` and `v-model:columns` are required
|
|
99
|
+
|
|
100
|
+
### Migration
|
|
101
|
+
|
|
102
|
+
**Breaking Change**: The `:columns` prop has been removed. Update your existing code:
|
|
103
|
+
|
|
104
|
+
```vue
|
|
105
|
+
<!-- OLD: This no longer works -->
|
|
106
|
+
<ATable v-model="data" :columns="columns" />
|
|
107
|
+
|
|
108
|
+
<!-- NEW: Required syntax -->
|
|
109
|
+
<ATable v-model:rows="data" v-model:columns="columns" />
|
|
110
|
+
```## Column Data Types
|
|
65
111
|
|
|
66
112
|
`v0.1`
|
|
67
113
|
|
package/dist/assets/index.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
@import"https://fonts.googleapis.com/css2?family=Arimo:ital,wght@0,400..700;1,400..700&display=swap";.atable-cell{border-radius:0;box-sizing:border-box;margin:0;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)}.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)}.row-index{color:var(--sc-header-text-color);font-weight:700;text-align:center;-webkit-user-select:none;user-select:none;width:2ch;display:flex;align-items:center;justify-content:center}.expandable-row{border-top:1px solid var(--sc-row-border-color);height:var(--sc-atable-row-height)}.expandable-row>td:first-child{border-left:4px solid var(--sc-row-border-color)}.expanded-row{border-left:2px solid var(--sc-row-border-color)}.expandable-row:last-child{border-bottom:1px solid var(--sc-row-border-color)}.expanded-row-content{border-top:1px solid var(--sc-row-border-color);padding:1.5rem}.expandable-row.changed-row-gradient[data-v-5ad4bb41]: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))}.aganttcell[data-v-a77cc6d2]{background-color:#f9f9f9;width:100%;padding:0;height:100%}.gantt-container[data-v-a77cc6d2]{position:relative;height:100%;background-color:#f0f0f0;border-radius:4px;overflow:visible}.gantt-bar[data-v-a77cc6d2]{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:2;transform:translateY(-50%)}.gantt-bar[data-v-a77cc6d2]:active{cursor:grabbing}.gantt-bar.is-dragging[data-v-a77cc6d2]{z-index:10}.gantt-label[data-v-a77cc6d2]{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-a77cc6d2]{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-a77cc6d2]{border-right:1px solid rgba(0,0,0,.5)}.right-resize-handle[data-v-a77cc6d2]{border-left:1px solid rgba(0,0,0,.5)}.handle-grip[data-v-a77cc6d2]{width:4px;height:12px;border-radius:2px;background:#000c}.resize-handle[data-v-a77cc6d2]:hover{background-color:#ffffff80}.vertical-indicator[data-v-a77cc6d2]{position:absolute;width:2px;opacity:0;pointer-events:none;transition:opacity .2s ease;top:-100vh;height:100vh;z-index:5;background-color:var(--52017849)}.left-indicator[data-v-a77cc6d2]{left:50%;transform:translate(-50%)}.right-indicator[data-v-a77cc6d2]{right:50%;transform:translate(50%)}.resize-handle.is-dragging .vertical-indicator[data-v-a77cc6d2]{opacity:.7}.gantt-container[data-v-a77cc6d2]:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background-size:calc(100% / var(--0d200c71)) 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-a77cc6d2]{position:absolute;top:50%;transform:translateY(-50%);width:16px;height:16px;opacity:0;transition:opacity .2s ease;cursor:crosshair;z-index:15;display:flex;align-items:center;justify-content:center}.connection-handle.visible[data-v-a77cc6d2]{opacity:1}.left-connection-handle[data-v-a77cc6d2]{left:-16px}.right-connection-handle[data-v-a77cc6d2]{right:-16px}.connection-dot[data-v-a77cc6d2]{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-a77cc6d2]{background-color:#1976d2;transform:scale(1.2)}.connection-handle.is-dragging[data-v-a77cc6d2]{opacity:1!important}.connection-handle.is-dragging .connection-dot[data-v-a77cc6d2]{background-color:#1976d2;transform:scale(1.3);box-shadow:0 2px 8px #2196f366}.atable-row{background-color:#fff}.atable-row>td:first-child{border-left:4px 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;width:7ch;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{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;padding-top:var(--sc-atable-row-padding);padding-bottom:var(--sc-atable-row-padding)}.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-c554ee0f]: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-955111b6]{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:1}.connection-path[data-v-955111b6]{transition:stroke-width .2s ease;pointer-events:auto;cursor:pointer;stroke-dasharray:5px;stroke:var(--sc-cell-text-color)}#arrowhead-marker polygon[data-v-955111b6]{fill:var(--sc-cell-text-color)}.animated-path[data-v-955111b6]{animation:animated-dash-955111b6 infinite 1.5s linear}.connection-path[data-v-955111b6]:hover{stroke-width:3px}.connection-hitbox[data-v-955111b6]{pointer-events:auto;cursor:pointer}@keyframes animated-dash-955111b6{0%{stroke-dashoffset:0px}to{stroke-dashoffset:-10px}}.atable-header-row th{padding-left:.5ch!important;font-weight:700;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}.tree-index{padding-right:0}th{order:1}.list-expansion-index{width:2ch;margin-left:5px}:root{--sc-primary-color: #0098c9;--sc-primary-text-color: #ffffff;--sc-brand-color: #202a44;--sc-gray-5: #f2f2f2;--sc-gray-10: #e6e6e6;--sc-gray-20: #cccccc;--sc-gray-50: #808080;--sc-gray-60: #666666;--sc-gray-80: #333333;--sc-brand-danger: #e63c28;--sc-brand-success: #155724;--sc-brand-warning: #b99d3e;--sc-active-cell-background: #ffffff;--sc-active-cell-outline: #e6a92d;--sc-cell-border-color: #ffffff;--sc-cell-text-color: #3a3c41;--sc-focus-cell-background: #ffffff;--sc-focus-cell-outline: #000000;--sc-header-border-color: #ffffff;--sc-header-text-color: var(--sc-gray-20);--sc-row-border-color: var(--sc-gray-20);--sc-row-color-zebra-dark: #dddddd;--sc-row-color-zebra-light: #eeeeee;--sc-row-number-background-color: #ffffff;--sc-input-active-border-color: #000000;--sc-input-active-label-color: #000000;--sc-input-border-color: var(--sc-gray-20);--sc-input-label-color: var(--sc-gray-60);--sc-required-border: #e63c28;--sc-cell-changed-color: #d8edff;--sc-form-border: var(--sc-gray-5);--sc-form-background: #ffffff;--sc-input-field-background: #ffffff;--sc-input-field-disabled-background: var(--sc-gray-5);--sc-font-size: 10px;--sc-font-family: Arimo, Arial, sans-serif;--sc-table-font-size: 16px;--sc-atable-font-family: "Arimo", sans-serif;--sc-atable-row-padding: .125rem;--sc-atable-row-height: 1.5em;--sc-atable-cell-border-width: 2px;--sc-table-loading-color: 204, 204, 204;--sc-btn-border: #cccccc;--sc-btn-color: white;--sc-btn-hover: #f2f2f2;--sc-btn-label-color: black}.amodal{position:absolute;background-color:var(--sc-row-color-zebra-dark);z-index:5}.atable-container{position:relative}.sticky-index{position:sticky;left:0;z-index:10;order:0}.sticky-column,th.sticky-column,td.sticky-column,th.sticky-index,td.sticky-index{position:sticky;z-index:10;order:0;background:#fff}.sticky-column-edge,.atable th.sticky-column-edge{border-right:1px solid var(--sc-row-border-color)}[data-v-8533f0fc]:root{--sc-primary-color: #0098c9;--sc-primary-text-color: #ffffff;--sc-brand-color: #202a44;--sc-gray-5: #f2f2f2;--sc-gray-10: #e6e6e6;--sc-gray-20: #cccccc;--sc-gray-50: #808080;--sc-gray-60: #666666;--sc-gray-80: #333333;--sc-brand-danger: #e63c28;--sc-brand-success: #155724;--sc-brand-warning: #b99d3e;--sc-active-cell-background: #ffffff;--sc-active-cell-outline: #e6a92d;--sc-cell-border-color: #ffffff;--sc-cell-text-color: #3a3c41;--sc-focus-cell-background: #ffffff;--sc-focus-cell-outline: #000000;--sc-header-border-color: #ffffff;--sc-header-text-color: var(--sc-gray-20);--sc-row-border-color: var(--sc-gray-20);--sc-row-color-zebra-dark: #dddddd;--sc-row-color-zebra-light: #eeeeee;--sc-row-number-background-color: #ffffff;--sc-input-active-border-color: #000000;--sc-input-active-label-color: #000000;--sc-input-border-color: var(--sc-gray-20);--sc-input-label-color: var(--sc-gray-60);--sc-required-border: #e63c28;--sc-cell-changed-color: #d8edff;--sc-form-border: var(--sc-gray-5);--sc-form-background: #ffffff;--sc-input-field-background: #ffffff;--sc-input-field-disabled-background: var(--sc-gray-5);--sc-font-size: 10px;--sc-font-family: Arimo, Arial, sans-serif;--sc-table-font-size: 16px;--sc-atable-font-family: "Arimo", sans-serif;--sc-atable-row-padding: .125rem;--sc-atable-row-height: 1.5em;--sc-atable-cell-border-width: 2px;--sc-table-loading-color: 204, 204, 204;--sc-btn-border: #cccccc;--sc-btn-color: white;--sc-btn-hover: #f2f2f2;--sc-btn-label-color: black}.atable[data-v-8533f0fc]{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-8533f0fc]{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-8533f0fc]:focus{outline:none}.atable[data-v-8533f0fc]:tbody{overflow:hidden;position:relative}.atable[data-v-8533f0fc]: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
|
+
@import"https://fonts.googleapis.com/css2?family=Arimo:ital,wght@0,400..700;1,400..700&display=swap";.atable-cell{border-radius:0;box-sizing:border-box;margin:0;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)}.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)}.row-index{color:var(--sc-header-text-color);font-weight:700;text-align:center;-webkit-user-select:none;user-select:none;width:2ch;display:flex;align-items:center;justify-content:center}.expandable-row{border-top:1px solid var(--sc-row-border-color);height:var(--sc-atable-row-height)}.expandable-row>td:first-child{border-left:4px solid var(--sc-row-border-color)}.expanded-row{border-left:2px solid var(--sc-row-border-color)}.expandable-row:last-child{border-bottom:1px solid var(--sc-row-border-color)}.expanded-row-content{border-top:1px solid var(--sc-row-border-color);padding:1.5rem}.expandable-row.changed-row-gradient[data-v-5ad4bb41]: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))}.aganttcell[data-v-a77cc6d2]{background-color:#f9f9f9;width:100%;padding:0;height:100%}.gantt-container[data-v-a77cc6d2]{position:relative;height:100%;background-color:#f0f0f0;border-radius:4px;overflow:visible}.gantt-bar[data-v-a77cc6d2]{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:2;transform:translateY(-50%)}.gantt-bar[data-v-a77cc6d2]:active{cursor:grabbing}.gantt-bar.is-dragging[data-v-a77cc6d2]{z-index:10}.gantt-label[data-v-a77cc6d2]{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-a77cc6d2]{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-a77cc6d2]{border-right:1px solid rgba(0,0,0,.5)}.right-resize-handle[data-v-a77cc6d2]{border-left:1px solid rgba(0,0,0,.5)}.handle-grip[data-v-a77cc6d2]{width:4px;height:12px;border-radius:2px;background:#000c}.resize-handle[data-v-a77cc6d2]:hover{background-color:#ffffff80}.vertical-indicator[data-v-a77cc6d2]{position:absolute;width:2px;opacity:0;pointer-events:none;transition:opacity .2s ease;top:-100vh;height:100vh;z-index:5;background-color:var(--52017849)}.left-indicator[data-v-a77cc6d2]{left:50%;transform:translate(-50%)}.right-indicator[data-v-a77cc6d2]{right:50%;transform:translate(50%)}.resize-handle.is-dragging .vertical-indicator[data-v-a77cc6d2]{opacity:.7}.gantt-container[data-v-a77cc6d2]:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background-size:calc(100% / var(--0d200c71)) 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-a77cc6d2]{position:absolute;top:50%;transform:translateY(-50%);width:16px;height:16px;opacity:0;transition:opacity .2s ease;cursor:crosshair;z-index:15;display:flex;align-items:center;justify-content:center}.connection-handle.visible[data-v-a77cc6d2]{opacity:1}.left-connection-handle[data-v-a77cc6d2]{left:-16px}.right-connection-handle[data-v-a77cc6d2]{right:-16px}.connection-dot[data-v-a77cc6d2]{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-a77cc6d2]{background-color:#1976d2;transform:scale(1.2)}.connection-handle.is-dragging[data-v-a77cc6d2]{opacity:1!important}.connection-handle.is-dragging .connection-dot[data-v-a77cc6d2]{background-color:#1976d2;transform:scale(1.3);box-shadow:0 2px 8px #2196f366}.atable-row{background-color:#fff}.atable-row>td:first-child{border-left:4px 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;width:7ch;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{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;padding-top:var(--sc-atable-row-padding);padding-bottom:var(--sc-atable-row-padding)}.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-c554ee0f]: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-955111b6]{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:1}.connection-path[data-v-955111b6]{transition:stroke-width .2s ease;pointer-events:auto;cursor:pointer;stroke-dasharray:5px;stroke:var(--sc-cell-text-color)}#arrowhead-marker polygon[data-v-955111b6]{fill:var(--sc-cell-text-color)}.animated-path[data-v-955111b6]{animation:animated-dash-955111b6 infinite 1.5s linear}.connection-path[data-v-955111b6]:hover{stroke-width:3px}.connection-hitbox[data-v-955111b6]{pointer-events:auto;cursor:pointer}@keyframes animated-dash-955111b6{0%{stroke-dashoffset:0px}to{stroke-dashoffset:-10px}}.atable-header-row th{padding-left:.5ch!important;font-weight:700;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}.tree-index{padding-right:0}th{order:1}.list-expansion-index{width:2ch;margin-left:5px}:root{--sc-primary-color: #0098c9;--sc-primary-text-color: #ffffff;--sc-brand-color: #202a44;--sc-gray-5: #f2f2f2;--sc-gray-10: #e6e6e6;--sc-gray-20: #cccccc;--sc-gray-50: #808080;--sc-gray-60: #666666;--sc-gray-80: #333333;--sc-brand-danger: #e63c28;--sc-brand-success: #155724;--sc-brand-warning: #b99d3e;--sc-active-cell-background: #ffffff;--sc-active-cell-outline: #e6a92d;--sc-cell-border-color: #ffffff;--sc-cell-text-color: #3a3c41;--sc-focus-cell-background: #ffffff;--sc-focus-cell-outline: #000000;--sc-header-border-color: #ffffff;--sc-header-text-color: var(--sc-gray-20);--sc-row-border-color: var(--sc-gray-20);--sc-row-color-zebra-dark: #dddddd;--sc-row-color-zebra-light: #eeeeee;--sc-row-number-background-color: #ffffff;--sc-input-active-border-color: #000000;--sc-input-active-label-color: #000000;--sc-input-border-color: var(--sc-gray-20);--sc-input-label-color: var(--sc-gray-60);--sc-required-border: #e63c28;--sc-cell-changed-color: #d8edff;--sc-form-border: var(--sc-gray-5);--sc-form-background: #ffffff;--sc-input-field-background: #ffffff;--sc-input-field-disabled-background: var(--sc-gray-5);--sc-font-size: 10px;--sc-font-family: Arimo, Arial, sans-serif;--sc-table-font-size: 16px;--sc-atable-font-family: "Arimo", sans-serif;--sc-atable-row-padding: .125rem;--sc-atable-row-height: 1.5em;--sc-atable-cell-border-width: 2px;--sc-table-loading-color: 204, 204, 204;--sc-btn-border: #cccccc;--sc-btn-color: white;--sc-btn-hover: #f2f2f2;--sc-btn-label-color: black}.amodal{position:absolute;background-color:var(--sc-row-color-zebra-dark);z-index:5}.atable-container{position:relative}.sticky-index{position:sticky;left:0;z-index:10;order:0}.sticky-column,th.sticky-column,td.sticky-column,th.sticky-index,td.sticky-index{position:sticky;z-index:10;order:0;background:#fff}.sticky-column-edge,.atable th.sticky-column-edge{border-right:1px solid var(--sc-row-border-color)}[data-v-7b5f2870]:root{--sc-primary-color: #0098c9;--sc-primary-text-color: #ffffff;--sc-brand-color: #202a44;--sc-gray-5: #f2f2f2;--sc-gray-10: #e6e6e6;--sc-gray-20: #cccccc;--sc-gray-50: #808080;--sc-gray-60: #666666;--sc-gray-80: #333333;--sc-brand-danger: #e63c28;--sc-brand-success: #155724;--sc-brand-warning: #b99d3e;--sc-active-cell-background: #ffffff;--sc-active-cell-outline: #e6a92d;--sc-cell-border-color: #ffffff;--sc-cell-text-color: #3a3c41;--sc-focus-cell-background: #ffffff;--sc-focus-cell-outline: #000000;--sc-header-border-color: #ffffff;--sc-header-text-color: var(--sc-gray-20);--sc-row-border-color: var(--sc-gray-20);--sc-row-color-zebra-dark: #dddddd;--sc-row-color-zebra-light: #eeeeee;--sc-row-number-background-color: #ffffff;--sc-input-active-border-color: #000000;--sc-input-active-label-color: #000000;--sc-input-border-color: var(--sc-gray-20);--sc-input-label-color: var(--sc-gray-60);--sc-required-border: #e63c28;--sc-cell-changed-color: #d8edff;--sc-form-border: var(--sc-gray-5);--sc-form-background: #ffffff;--sc-input-field-background: #ffffff;--sc-input-field-disabled-background: var(--sc-gray-5);--sc-font-size: 10px;--sc-font-family: Arimo, Arial, sans-serif;--sc-table-font-size: 16px;--sc-atable-font-family: "Arimo", sans-serif;--sc-atable-row-padding: .125rem;--sc-atable-row-height: 1.5em;--sc-atable-cell-border-width: 2px;--sc-table-loading-color: 204, 204, 204;--sc-btn-border: #cccccc;--sc-btn-color: white;--sc-btn-hover: #f2f2f2;--sc-btn-label-color: black}.atable[data-v-7b5f2870]{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-7b5f2870]{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-7b5f2870]:focus{outline:none}.atable[data-v-7b5f2870]:tbody{overflow:hidden;position:relative}.atable[data-v-7b5f2870]: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
|
@@ -14,6 +14,7 @@ import { Ref } from 'vue';
|
|
|
14
14
|
import type { ShallowRef } from 'vue';
|
|
15
15
|
import { Store } from 'pinia';
|
|
16
16
|
import { useElementBounding } from '@vueuse/core';
|
|
17
|
+
import { WritableComputedRef } from 'vue';
|
|
17
18
|
|
|
18
19
|
export { ACell }
|
|
19
20
|
|
|
@@ -148,10 +149,6 @@ export declare const createTableStore: (initData: {
|
|
|
148
149
|
rows: TableRow[];
|
|
149
150
|
id?: string;
|
|
150
151
|
config?: TableConfig;
|
|
151
|
-
table?: {
|
|
152
|
-
[key: string]: any;
|
|
153
|
-
};
|
|
154
|
-
display?: TableDisplay[];
|
|
155
152
|
modal?: TableModal;
|
|
156
153
|
}) => Store<`table-${string}`, Pick<{
|
|
157
154
|
columns: Ref< {
|
|
@@ -254,25 +251,7 @@ width?: number | undefined;
|
|
|
254
251
|
} | undefined;
|
|
255
252
|
label?: string | undefined;
|
|
256
253
|
}[]>;
|
|
257
|
-
display:
|
|
258
|
-
expanded?: boolean | undefined;
|
|
259
|
-
childrenOpen?: boolean | undefined;
|
|
260
|
-
isParent?: boolean | undefined;
|
|
261
|
-
isRoot?: boolean | undefined;
|
|
262
|
-
open?: boolean | undefined;
|
|
263
|
-
indent?: number | undefined;
|
|
264
|
-
parent?: number | undefined;
|
|
265
|
-
rowModified?: boolean | undefined;
|
|
266
|
-
}[], TableDisplay[] | {
|
|
267
|
-
expanded?: boolean | undefined;
|
|
268
|
-
childrenOpen?: boolean | undefined;
|
|
269
|
-
isParent?: boolean | undefined;
|
|
270
|
-
isRoot?: boolean | undefined;
|
|
271
|
-
open?: boolean | undefined;
|
|
272
|
-
indent?: number | undefined;
|
|
273
|
-
parent?: number | undefined;
|
|
274
|
-
rowModified?: boolean | undefined;
|
|
275
|
-
}[]>;
|
|
254
|
+
display: WritableComputedRef<TableDisplay[], TableDisplay[]>;
|
|
276
255
|
ganttBars: Ref< {
|
|
277
256
|
id: string;
|
|
278
257
|
rowIndex: number;
|
|
@@ -344,7 +323,7 @@ endIndex?: number | undefined;
|
|
|
344
323
|
colspan?: number | undefined;
|
|
345
324
|
} | undefined;
|
|
346
325
|
}[]>;
|
|
347
|
-
table:
|
|
326
|
+
table: ComputedRef< {}>;
|
|
348
327
|
updates: Ref<Record<string, string>, Record<string, string>>;
|
|
349
328
|
hasPinnedColumns: ComputedRef<boolean>;
|
|
350
329
|
isGanttView: ComputedRef<boolean>;
|
|
@@ -402,7 +381,8 @@ toggleRowExpand: (rowIndex: number) => void;
|
|
|
402
381
|
unregisterConnectionHandle: (handleId: string) => void;
|
|
403
382
|
unregisterGanttBar: (barId: string) => void;
|
|
404
383
|
updateGanttBar: (event: GanttDragEvent) => void;
|
|
405
|
-
|
|
384
|
+
updateRows: (newRows: TableRow[]) => void;
|
|
385
|
+
}, "columns" | "config" | "connectionHandles" | "connectionPaths" | "ganttBars" | "modal" | "rows" | "updates">, Pick<{
|
|
406
386
|
columns: Ref< {
|
|
407
387
|
name: string;
|
|
408
388
|
align?: CanvasTextAlign | undefined;
|
|
@@ -503,25 +483,7 @@ width?: number | undefined;
|
|
|
503
483
|
} | undefined;
|
|
504
484
|
label?: string | undefined;
|
|
505
485
|
}[]>;
|
|
506
|
-
display:
|
|
507
|
-
expanded?: boolean | undefined;
|
|
508
|
-
childrenOpen?: boolean | undefined;
|
|
509
|
-
isParent?: boolean | undefined;
|
|
510
|
-
isRoot?: boolean | undefined;
|
|
511
|
-
open?: boolean | undefined;
|
|
512
|
-
indent?: number | undefined;
|
|
513
|
-
parent?: number | undefined;
|
|
514
|
-
rowModified?: boolean | undefined;
|
|
515
|
-
}[], TableDisplay[] | {
|
|
516
|
-
expanded?: boolean | undefined;
|
|
517
|
-
childrenOpen?: boolean | undefined;
|
|
518
|
-
isParent?: boolean | undefined;
|
|
519
|
-
isRoot?: boolean | undefined;
|
|
520
|
-
open?: boolean | undefined;
|
|
521
|
-
indent?: number | undefined;
|
|
522
|
-
parent?: number | undefined;
|
|
523
|
-
rowModified?: boolean | undefined;
|
|
524
|
-
}[]>;
|
|
486
|
+
display: WritableComputedRef<TableDisplay[], TableDisplay[]>;
|
|
525
487
|
ganttBars: Ref< {
|
|
526
488
|
id: string;
|
|
527
489
|
rowIndex: number;
|
|
@@ -593,7 +555,7 @@ endIndex?: number | undefined;
|
|
|
593
555
|
colspan?: number | undefined;
|
|
594
556
|
} | undefined;
|
|
595
557
|
}[]>;
|
|
596
|
-
table:
|
|
558
|
+
table: ComputedRef< {}>;
|
|
597
559
|
updates: Ref<Record<string, string>, Record<string, string>>;
|
|
598
560
|
hasPinnedColumns: ComputedRef<boolean>;
|
|
599
561
|
isGanttView: ComputedRef<boolean>;
|
|
@@ -651,7 +613,8 @@ toggleRowExpand: (rowIndex: number) => void;
|
|
|
651
613
|
unregisterConnectionHandle: (handleId: string) => void;
|
|
652
614
|
unregisterGanttBar: (barId: string) => void;
|
|
653
615
|
updateGanttBar: (event: GanttDragEvent) => void;
|
|
654
|
-
|
|
616
|
+
updateRows: (newRows: TableRow[]) => void;
|
|
617
|
+
}, "display" | "table" | "hasPinnedColumns" | "isGanttView" | "isTreeView" | "numberedRowWidth" | "zeroColumn">, Pick<{
|
|
655
618
|
columns: Ref< {
|
|
656
619
|
name: string;
|
|
657
620
|
align?: CanvasTextAlign | undefined;
|
|
@@ -752,25 +715,7 @@ width?: number | undefined;
|
|
|
752
715
|
} | undefined;
|
|
753
716
|
label?: string | undefined;
|
|
754
717
|
}[]>;
|
|
755
|
-
display:
|
|
756
|
-
expanded?: boolean | undefined;
|
|
757
|
-
childrenOpen?: boolean | undefined;
|
|
758
|
-
isParent?: boolean | undefined;
|
|
759
|
-
isRoot?: boolean | undefined;
|
|
760
|
-
open?: boolean | undefined;
|
|
761
|
-
indent?: number | undefined;
|
|
762
|
-
parent?: number | undefined;
|
|
763
|
-
rowModified?: boolean | undefined;
|
|
764
|
-
}[], TableDisplay[] | {
|
|
765
|
-
expanded?: boolean | undefined;
|
|
766
|
-
childrenOpen?: boolean | undefined;
|
|
767
|
-
isParent?: boolean | undefined;
|
|
768
|
-
isRoot?: boolean | undefined;
|
|
769
|
-
open?: boolean | undefined;
|
|
770
|
-
indent?: number | undefined;
|
|
771
|
-
parent?: number | undefined;
|
|
772
|
-
rowModified?: boolean | undefined;
|
|
773
|
-
}[]>;
|
|
718
|
+
display: WritableComputedRef<TableDisplay[], TableDisplay[]>;
|
|
774
719
|
ganttBars: Ref< {
|
|
775
720
|
id: string;
|
|
776
721
|
rowIndex: number;
|
|
@@ -842,7 +787,7 @@ endIndex?: number | undefined;
|
|
|
842
787
|
colspan?: number | undefined;
|
|
843
788
|
} | undefined;
|
|
844
789
|
}[]>;
|
|
845
|
-
table:
|
|
790
|
+
table: ComputedRef< {}>;
|
|
846
791
|
updates: Ref<Record<string, string>, Record<string, string>>;
|
|
847
792
|
hasPinnedColumns: ComputedRef<boolean>;
|
|
848
793
|
isGanttView: ComputedRef<boolean>;
|
|
@@ -900,7 +845,8 @@ toggleRowExpand: (rowIndex: number) => void;
|
|
|
900
845
|
unregisterConnectionHandle: (handleId: string) => void;
|
|
901
846
|
unregisterGanttBar: (barId: string) => void;
|
|
902
847
|
updateGanttBar: (event: GanttDragEvent) => void;
|
|
903
|
-
|
|
848
|
+
updateRows: (newRows: TableRow[]) => void;
|
|
849
|
+
}, "closeModal" | "createConnection" | "deleteConnection" | "getCellData" | "getCellDisplayValue" | "getConnectionsForBar" | "getFormattedValue" | "getHandlesForBar" | "getHeaderCellStyle" | "getIndent" | "getRowExpandSymbol" | "isRowGantt" | "isRowVisible" | "registerConnectionHandle" | "registerGanttBar" | "resizeColumn" | "setCellData" | "setCellText" | "toggleRowExpand" | "unregisterConnectionHandle" | "unregisterGanttBar" | "updateGanttBar" | "updateRows">>;
|
|
904
850
|
|
|
905
851
|
/**
|
|
906
852
|
* Gantt bar information for VueFlow integration.
|