@globalbrain/sefirot 4.14.2 → 4.15.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/lib/components/SButton.vue +2 -2
- package/lib/components/SControlActionBarButton.vue +1 -1
- package/lib/components/SControlActionBarClose.vue +1 -1
- package/lib/components/SControlActionBarCollapse.vue +1 -1
- package/lib/components/SControlButton.vue +1 -1
- package/lib/components/SControlInputSearch.vue +4 -4
- package/lib/components/SControlPagination.vue +2 -2
- package/lib/components/SDropdownSectionDateRangeDateFromTo.vue +1 -1
- package/lib/components/SDropdownSectionDateRangeYear.vue +1 -1
- package/lib/components/SDropdownSectionDateRangeYearHalf.vue +1 -1
- package/lib/components/SDropdownSectionDateRangeYearQuarter.vue +1 -1
- package/lib/components/SErrorBoundary.vue +1 -1
- package/lib/components/SInputAddon.vue +1 -1
- package/lib/components/SInputCheckbox.vue +2 -2
- package/lib/components/SInputCheckboxes.vue +2 -2
- package/lib/components/SInputDate.vue +1 -1
- package/lib/components/SInputFile.vue +2 -2
- package/lib/components/SInputFileUploadItem.vue +1 -1
- package/lib/components/SInputHMS.vue +2 -2
- package/lib/components/SInputImage.vue +2 -2
- package/lib/components/SInputRadio.vue +2 -2
- package/lib/components/SInputRadios.vue +2 -2
- package/lib/components/SInputSegments.vue +2 -2
- package/lib/components/SInputSegmentsOption.vue +1 -1
- package/lib/components/SInputSelect.vue +2 -2
- package/lib/components/SInputSwitch.vue +2 -2
- package/lib/components/SInputSwitches.vue +1 -1
- package/lib/components/SInputYMD.vue +2 -2
- package/lib/components/SMarkdown.vue +1 -1
- package/lib/components/SModal.vue +1 -1
- package/lib/components/SPagination.vue +2 -2
- package/lib/components/SPill.vue +1 -1
- package/lib/components/STable.vue +46 -2
- package/lib/components/STableColumn.vue +1 -1
- package/lib/composables/Table.ts +1 -0
- package/package.json +1 -1
|
@@ -19,10 +19,10 @@ const props = defineProps<{
|
|
|
19
19
|
}>()
|
|
20
20
|
|
|
21
21
|
defineEmits<{
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
22
|
+
'update:model-value': [value: string | null]
|
|
23
|
+
'input': [value: string | null]
|
|
24
|
+
'blur': [value: string | null]
|
|
25
|
+
'enter': [value: string | null]
|
|
26
26
|
}>()
|
|
27
27
|
|
|
28
28
|
const { t } = useTrans({
|
|
@@ -29,8 +29,8 @@ const props = withDefaults(defineProps<{
|
|
|
29
29
|
})
|
|
30
30
|
|
|
31
31
|
const emit = defineEmits<{
|
|
32
|
-
|
|
33
|
-
|
|
32
|
+
'update:model-value': [value: boolean]
|
|
33
|
+
'change': [value: boolean]
|
|
34
34
|
}>()
|
|
35
35
|
|
|
36
36
|
const classes = computed(() => [
|
|
@@ -37,8 +37,8 @@ const props = withDefaults(defineProps<{
|
|
|
37
37
|
})
|
|
38
38
|
|
|
39
39
|
const emit = defineEmits<{
|
|
40
|
-
|
|
41
|
-
|
|
40
|
+
'update:model-value': [value: Value[]]
|
|
41
|
+
'change': [value: Value[]]
|
|
42
42
|
}>()
|
|
43
43
|
|
|
44
44
|
const _value = computed(() => {
|
|
@@ -26,8 +26,8 @@ const props = defineProps<{
|
|
|
26
26
|
}>()
|
|
27
27
|
|
|
28
28
|
const emit = defineEmits<{
|
|
29
|
-
|
|
30
|
-
|
|
29
|
+
'update:model-value': [file: File | File[] | null]
|
|
30
|
+
'change': [file: File | File[] | null]
|
|
31
31
|
}>()
|
|
32
32
|
|
|
33
33
|
const _value = computed(() => {
|
|
@@ -41,8 +41,8 @@ const props = defineProps<{
|
|
|
41
41
|
}>()
|
|
42
42
|
|
|
43
43
|
const emit = defineEmits<{
|
|
44
|
-
|
|
45
|
-
|
|
44
|
+
'update:model-value': [value: Value]
|
|
45
|
+
'change': [value: Value]
|
|
46
46
|
}>()
|
|
47
47
|
|
|
48
48
|
const _value = computed(() => {
|
|
@@ -42,8 +42,8 @@ const props = withDefaults(defineProps<{
|
|
|
42
42
|
})
|
|
43
43
|
|
|
44
44
|
const emit = defineEmits<{
|
|
45
|
-
|
|
46
|
-
|
|
45
|
+
'update:model-value': [file: File | null]
|
|
46
|
+
'change': [file: File | null]
|
|
47
47
|
}>()
|
|
48
48
|
|
|
49
49
|
const fileInput = ref<HTMLInputElement | null>(null)
|
|
@@ -24,8 +24,8 @@ const props = defineProps<{
|
|
|
24
24
|
}>()
|
|
25
25
|
|
|
26
26
|
const emit = defineEmits<{
|
|
27
|
-
|
|
28
|
-
|
|
27
|
+
'update:model-value': [value: boolean]
|
|
28
|
+
'change': [value: boolean]
|
|
29
29
|
}>()
|
|
30
30
|
|
|
31
31
|
const classes = computed(() => [
|
|
@@ -47,8 +47,8 @@ const props = withDefaults(defineProps<{
|
|
|
47
47
|
})
|
|
48
48
|
|
|
49
49
|
const emit = defineEmits<{
|
|
50
|
-
|
|
51
|
-
|
|
50
|
+
'update:model-value': [value: ValueType | NullValue]
|
|
51
|
+
'change': [value: ValueType | NullValue]
|
|
52
52
|
}>()
|
|
53
53
|
|
|
54
54
|
const _value = computed(() => {
|
|
@@ -38,8 +38,8 @@ const props = withDefaults(defineProps<{
|
|
|
38
38
|
})
|
|
39
39
|
|
|
40
40
|
const emit = defineEmits<{
|
|
41
|
-
|
|
42
|
-
|
|
41
|
+
'update:model-value': [value: Value]
|
|
42
|
+
'change': [value: Value]
|
|
43
43
|
}>()
|
|
44
44
|
|
|
45
45
|
const _value = computed(() => {
|
|
@@ -30,8 +30,8 @@ const props = withDefaults(defineProps<{
|
|
|
30
30
|
})
|
|
31
31
|
|
|
32
32
|
const emit = defineEmits<{
|
|
33
|
-
|
|
34
|
-
|
|
33
|
+
'update:model-value': [value: boolean]
|
|
34
|
+
'change': [value: boolean]
|
|
35
35
|
}>()
|
|
36
36
|
|
|
37
37
|
const _value = computed(() => {
|
|
@@ -42,8 +42,8 @@ const props = defineProps<{
|
|
|
42
42
|
}>()
|
|
43
43
|
|
|
44
44
|
const emit = defineEmits<{
|
|
45
|
-
|
|
46
|
-
|
|
45
|
+
'update:model-value': [value: Value]
|
|
46
|
+
'change': [value: Value]
|
|
47
47
|
}>()
|
|
48
48
|
|
|
49
49
|
const _value = computed(() => {
|
package/lib/components/SPill.vue
CHANGED
|
@@ -184,6 +184,21 @@ watch(() => unref(props.options.records), () => {
|
|
|
184
184
|
isSyncingBody = false
|
|
185
185
|
}, { flush: 'post' })
|
|
186
186
|
|
|
187
|
+
const frozenColumns = smartComputed(() => {
|
|
188
|
+
const columns = unref(props.options.columns)
|
|
189
|
+
const keys = Object.keys(columns).filter((key) => columns[key].freeze)
|
|
190
|
+
if (selected.value !== undefined && keys.length) {
|
|
191
|
+
keys.unshift('__select')
|
|
192
|
+
}
|
|
193
|
+
return keys.filter((key) => ordersToShow.value.includes(key))
|
|
194
|
+
})
|
|
195
|
+
|
|
196
|
+
const frozenColWidths = smartComputed(() => {
|
|
197
|
+
// eslint-disable-next-line no-void
|
|
198
|
+
void blockWidth.value
|
|
199
|
+
return frozenColumns.value.map((key) => getColWidth(key))
|
|
200
|
+
})
|
|
201
|
+
|
|
187
202
|
useResizeObserver(block, ([entry]) => {
|
|
188
203
|
blockWidth.value = entry.contentRect.width
|
|
189
204
|
})
|
|
@@ -337,6 +352,34 @@ function addSelected(item: any) {
|
|
|
337
352
|
function removeSelected(item: any) {
|
|
338
353
|
updateSelected((selected.value as any[]).filter((i) => i !== item))
|
|
339
354
|
}
|
|
355
|
+
|
|
356
|
+
function getColWidth(key: string) {
|
|
357
|
+
if (key === '__select') {
|
|
358
|
+
return '48px + var(--table-padding-left, 0)'
|
|
359
|
+
}
|
|
360
|
+
const adjustedWidth = colWidths[key]
|
|
361
|
+
if (adjustedWidth && adjustedWidth !== 'auto') {
|
|
362
|
+
return adjustedWidth
|
|
363
|
+
}
|
|
364
|
+
const el = row.value?.children?.[ordersToShow.value.indexOf(key)]
|
|
365
|
+
if (!el) {
|
|
366
|
+
return '0px'
|
|
367
|
+
}
|
|
368
|
+
return `${el.getBoundingClientRect().width}px`
|
|
369
|
+
}
|
|
370
|
+
|
|
371
|
+
function getStyles(key: string) {
|
|
372
|
+
const length = frozenColumns.value.length
|
|
373
|
+
if (length === 0) { return }
|
|
374
|
+
const i = frozenColumns.value.indexOf(key)
|
|
375
|
+
if (i < 0) { return }
|
|
376
|
+
const widthSum = frozenColWidths.value.slice(0, i).join(' + ')
|
|
377
|
+
return {
|
|
378
|
+
'--table-col-position': 'sticky',
|
|
379
|
+
'--table-col-z-index': length - i, // left to right decreasing
|
|
380
|
+
'--table-col-left': widthSum ? `calc(${widthSum})` : '0px'
|
|
381
|
+
}
|
|
382
|
+
}
|
|
340
383
|
</script>
|
|
341
384
|
|
|
342
385
|
<template>
|
|
@@ -361,6 +404,7 @@ function removeSelected(item: any) {
|
|
|
361
404
|
:key="key"
|
|
362
405
|
:name="key"
|
|
363
406
|
:class-name="unref(options.columns)[key]?.className"
|
|
407
|
+
:style="getStyles(key)"
|
|
364
408
|
:width="colWidths[key]"
|
|
365
409
|
>
|
|
366
410
|
<STableColumn
|
|
@@ -419,6 +463,7 @@ function removeSelected(item: any) {
|
|
|
419
463
|
:key="key"
|
|
420
464
|
:name="key"
|
|
421
465
|
:class-name="unref(options.columns)[key]?.className"
|
|
466
|
+
:style="getStyles(key)"
|
|
422
467
|
:width="colWidths[key]"
|
|
423
468
|
>
|
|
424
469
|
<STableCell
|
|
@@ -586,8 +631,7 @@ function removeSelected(item: any) {
|
|
|
586
631
|
}
|
|
587
632
|
|
|
588
633
|
.STable .col-__select {
|
|
589
|
-
--table-padding-left
|
|
590
|
-
--table-col-width: 48px;
|
|
634
|
+
--table-col-width: calc(48px + var(--table-padding-left, 0));
|
|
591
635
|
|
|
592
636
|
:deep(.input) {
|
|
593
637
|
align-items: center;
|
package/lib/composables/Table.ts
CHANGED
package/package.json
CHANGED