@welldot/vue 0.0.0-stage → 0.1.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/LICENSE +202 -0
- package/README.md +526 -2
- package/dist/_virtual/_plugin-vue_export-helper.js +8 -0
- package/dist/_virtual/icons/ph/caret-down.js +21 -0
- package/dist/_virtual/icons/ph/caret-down.js.map +1 -0
- package/dist/_virtual/icons/ph/info.js +21 -0
- package/dist/_virtual/icons/ph/info.js.map +1 -0
- package/dist/_virtual/icons/ph/pencil-simple-line.js +21 -0
- package/dist/_virtual/icons/ph/pencil-simple-line.js.map +1 -0
- package/dist/_virtual/icons/ph/pencil-simple.js +21 -0
- package/dist/_virtual/icons/ph/pencil-simple.js.map +1 -0
- package/dist/_virtual/icons/ph/plus.js +21 -0
- package/dist/_virtual/icons/ph/plus.js.map +1 -0
- package/dist/_virtual/icons/ph/x.js +21 -0
- package/dist/_virtual/icons/ph/x.js.map +1 -0
- package/dist/components/WellChip.d.ts +30 -0
- package/dist/components/WellChip.d.ts.map +1 -0
- package/dist/components/WellChip.js +9 -0
- package/dist/components/WellChip.js.map +1 -0
- package/dist/components/WellChip.vue_vue_type_script_setup_true_lang.js +43 -0
- package/dist/components/WellChip.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/WellComboSelect.d.ts +19 -0
- package/dist/components/WellComboSelect.d.ts.map +1 -0
- package/dist/components/WellComboSelect.js +7 -0
- package/dist/components/WellComboSelect.js.map +1 -0
- package/dist/components/WellComboSelect.vue_vue_type_script_setup_true_lang.js +31 -0
- package/dist/components/WellComboSelect.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/WellInfoPopover.d.ts +31 -0
- package/dist/components/WellInfoPopover.d.ts.map +1 -0
- package/dist/components/WellInfoPopover.js +7 -0
- package/dist/components/WellInfoPopover.js.map +1 -0
- package/dist/components/WellInfoPopover.vue_vue_type_script_setup_true_lang.js +50 -0
- package/dist/components/WellInfoPopover.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/WellInputNumber.d.ts +4 -0
- package/dist/components/WellInputNumber.d.ts.map +1 -0
- package/dist/components/WellInputNumber.js +7 -0
- package/dist/components/WellInputNumber.js.map +1 -0
- package/dist/components/WellInputNumber.vue_vue_type_script_setup_true_lang.js +16 -0
- package/dist/components/WellInputNumber.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/WellLabeledField.d.ts +22 -0
- package/dist/components/WellLabeledField.d.ts.map +1 -0
- package/dist/components/WellLabeledField.js +7 -0
- package/dist/components/WellLabeledField.js.map +1 -0
- package/dist/components/WellLabeledField.vue_vue_type_script_setup_true_lang.js +32 -0
- package/dist/components/WellLabeledField.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/WellTagSelect.d.ts +21 -0
- package/dist/components/WellTagSelect.d.ts.map +1 -0
- package/dist/components/WellTagSelect.js +7 -0
- package/dist/components/WellTagSelect.js.map +1 -0
- package/dist/components/WellTagSelect.vue_vue_type_script_setup_true_lang.js +66 -0
- package/dist/components/WellTagSelect.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/WellTextureSelect.d.ts +30 -0
- package/dist/components/WellTextureSelect.d.ts.map +1 -0
- package/dist/components/WellTextureSelect.js +7 -0
- package/dist/components/WellTextureSelect.js.map +1 -0
- package/dist/components/WellTextureSelect.vue_vue_type_script_setup_true_lang.js +103 -0
- package/dist/components/WellTextureSelect.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/WellTextureThumbnail.d.ts +10 -0
- package/dist/components/WellTextureThumbnail.d.ts.map +1 -0
- package/dist/components/WellTextureThumbnail.js +9 -0
- package/dist/components/WellTextureThumbnail.js.map +1 -0
- package/dist/components/WellTextureThumbnail.vue_vue_type_script_setup_true_lang.js +393 -0
- package/dist/components/WellTextureThumbnail.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/WellUnitInput.d.ts +19 -0
- package/dist/components/WellUnitInput.d.ts.map +1 -0
- package/dist/components/WellUnitInput.js +7 -0
- package/dist/components/WellUnitInput.js.map +1 -0
- package/dist/components/WellUnitInput.vue_vue_type_script_setup_true_lang.js +41 -0
- package/dist/components/WellUnitInput.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/parts/WellInfoTrigger.d.ts +8 -0
- package/dist/components/parts/WellInfoTrigger.d.ts.map +1 -0
- package/dist/components/parts/WellInfoTrigger.js +7 -0
- package/dist/components/parts/WellInfoTrigger.js.map +1 -0
- package/dist/components/parts/WellInfoTrigger.vue_vue_type_script_setup_true_lang.js +26 -0
- package/dist/components/parts/WellInfoTrigger.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/composables/useWellNumberFormat.d.ts +12 -0
- package/dist/composables/useWellNumberFormat.d.ts.map +1 -0
- package/dist/composables/useWellNumberFormat.js +25 -0
- package/dist/composables/useWellNumberFormat.js.map +1 -0
- package/dist/composables/useWellText.d.ts +11 -0
- package/dist/composables/useWellText.d.ts.map +1 -0
- package/dist/composables/useWellText.js +15 -0
- package/dist/composables/useWellText.js.map +1 -0
- package/dist/composables/useWellUnits.d.ts +29 -0
- package/dist/composables/useWellUnits.d.ts.map +1 -0
- package/dist/composables/useWellUnits.js +52 -0
- package/dist/composables/useWellUnits.js.map +1 -0
- package/dist/config.d.ts +110 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +76 -0
- package/dist/config.js.map +1 -0
- package/dist/grid/WellDataGrid.d.ts +29 -0
- package/dist/grid/WellDataGrid.d.ts.map +1 -0
- package/dist/grid/WellDataGrid.js +9 -0
- package/dist/grid/WellDataGrid.js.map +1 -0
- package/dist/grid/WellDataGrid.vue_vue_type_script_setup_true_lang.js +84 -0
- package/dist/grid/WellDataGrid.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/grid/cells/GridCheckboxCell.d.ts +10 -0
- package/dist/grid/cells/GridCheckboxCell.d.ts.map +1 -0
- package/dist/grid/cells/GridCheckboxCell.js +7 -0
- package/dist/grid/cells/GridCheckboxCell.js.map +1 -0
- package/dist/grid/cells/GridCheckboxCell.vue_vue_type_script_setup_true_lang.js +32 -0
- package/dist/grid/cells/GridCheckboxCell.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/grid/cells/GridColorCell.d.ts +7 -0
- package/dist/grid/cells/GridColorCell.d.ts.map +1 -0
- package/dist/grid/cells/GridColorCell.js +7 -0
- package/dist/grid/cells/GridColorCell.js.map +1 -0
- package/dist/grid/cells/GridColorCell.vue_vue_type_script_setup_true_lang.js +18 -0
- package/dist/grid/cells/GridColorCell.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/grid/cells/GridColorPickerEditor.d.ts +12 -0
- package/dist/grid/cells/GridColorPickerEditor.d.ts.map +1 -0
- package/dist/grid/cells/GridColorPickerEditor.js +7 -0
- package/dist/grid/cells/GridColorPickerEditor.js.map +1 -0
- package/dist/grid/cells/GridColorPickerEditor.vue_vue_type_script_setup_true_lang.js +70 -0
- package/dist/grid/cells/GridColorPickerEditor.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/grid/cells/GridComboEditor.d.ts +14 -0
- package/dist/grid/cells/GridComboEditor.d.ts.map +1 -0
- package/dist/grid/cells/GridComboEditor.js +7 -0
- package/dist/grid/cells/GridComboEditor.js.map +1 -0
- package/dist/grid/cells/GridComboEditor.vue_vue_type_script_setup_true_lang.js +177 -0
- package/dist/grid/cells/GridComboEditor.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/grid/cells/GridDeleteCell.d.ts +12 -0
- package/dist/grid/cells/GridDeleteCell.d.ts.map +1 -0
- package/dist/grid/cells/GridDeleteCell.js +7 -0
- package/dist/grid/cells/GridDeleteCell.js.map +1 -0
- package/dist/grid/cells/GridDeleteCell.vue_vue_type_script_setup_true_lang.js +33 -0
- package/dist/grid/cells/GridDeleteCell.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/grid/cells/GridDragCell.d.ts +16 -0
- package/dist/grid/cells/GridDragCell.d.ts.map +1 -0
- package/dist/grid/cells/GridDragCell.js +7 -0
- package/dist/grid/cells/GridDragCell.js.map +1 -0
- package/dist/grid/cells/GridDragCell.vue_vue_type_script_setup_true_lang.js +50 -0
- package/dist/grid/cells/GridDragCell.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/grid/cells/GridFormattedCell.d.ts +9 -0
- package/dist/grid/cells/GridFormattedCell.d.ts.map +1 -0
- package/dist/grid/cells/GridFormattedCell.js +7 -0
- package/dist/grid/cells/GridFormattedCell.js.map +1 -0
- package/dist/grid/cells/GridFormattedCell.vue_vue_type_script_setup_true_lang.js +19 -0
- package/dist/grid/cells/GridFormattedCell.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/grid/cells/GridHeaderCell.d.ts +11 -0
- package/dist/grid/cells/GridHeaderCell.d.ts.map +1 -0
- package/dist/grid/cells/GridHeaderCell.js +7 -0
- package/dist/grid/cells/GridHeaderCell.js.map +1 -0
- package/dist/grid/cells/GridHeaderCell.vue_vue_type_script_setup_true_lang.js +35 -0
- package/dist/grid/cells/GridHeaderCell.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/grid/cells/GridNumberEditor.d.ts +9 -0
- package/dist/grid/cells/GridNumberEditor.d.ts.map +1 -0
- package/dist/grid/cells/GridNumberEditor.js +7 -0
- package/dist/grid/cells/GridNumberEditor.js.map +1 -0
- package/dist/grid/cells/GridNumberEditor.vue_vue_type_script_setup_true_lang.js +50 -0
- package/dist/grid/cells/GridNumberEditor.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/grid/cells/GridSelectButtonCell.d.ts +12 -0
- package/dist/grid/cells/GridSelectButtonCell.d.ts.map +1 -0
- package/dist/grid/cells/GridSelectButtonCell.js +7 -0
- package/dist/grid/cells/GridSelectButtonCell.js.map +1 -0
- package/dist/grid/cells/GridSelectButtonCell.vue_vue_type_script_setup_true_lang.js +52 -0
- package/dist/grid/cells/GridSelectButtonCell.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/grid/cells/GridSelectCell.d.ts +9 -0
- package/dist/grid/cells/GridSelectCell.d.ts.map +1 -0
- package/dist/grid/cells/GridSelectCell.js +7 -0
- package/dist/grid/cells/GridSelectCell.js.map +1 -0
- package/dist/grid/cells/GridSelectCell.vue_vue_type_script_setup_true_lang.js +18 -0
- package/dist/grid/cells/GridSelectCell.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/grid/cells/GridSelectEditor.d.ts +11 -0
- package/dist/grid/cells/GridSelectEditor.d.ts.map +1 -0
- package/dist/grid/cells/GridSelectEditor.js +7 -0
- package/dist/grid/cells/GridSelectEditor.js.map +1 -0
- package/dist/grid/cells/GridSelectEditor.vue_vue_type_script_setup_true_lang.js +51 -0
- package/dist/grid/cells/GridSelectEditor.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/grid/cells/GridTextEditor.d.ts +9 -0
- package/dist/grid/cells/GridTextEditor.d.ts.map +1 -0
- package/dist/grid/cells/GridTextEditor.js +7 -0
- package/dist/grid/cells/GridTextEditor.js.map +1 -0
- package/dist/grid/cells/GridTextEditor.vue_vue_type_script_setup_true_lang.js +44 -0
- package/dist/grid/cells/GridTextEditor.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/grid/cells/GridTextureSelectCell.d.ts +7 -0
- package/dist/grid/cells/GridTextureSelectCell.d.ts.map +1 -0
- package/dist/grid/cells/GridTextureSelectCell.js +7 -0
- package/dist/grid/cells/GridTextureSelectCell.js.map +1 -0
- package/dist/grid/cells/GridTextureSelectCell.vue_vue_type_script_setup_true_lang.js +19 -0
- package/dist/grid/cells/GridTextureSelectCell.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/grid/cells/GridTextureSelectEditor.d.ts +13 -0
- package/dist/grid/cells/GridTextureSelectEditor.d.ts.map +1 -0
- package/dist/grid/cells/GridTextureSelectEditor.js +7 -0
- package/dist/grid/cells/GridTextureSelectEditor.js.map +1 -0
- package/dist/grid/cells/GridTextureSelectEditor.vue_vue_type_script_setup_true_lang.js +49 -0
- package/dist/grid/cells/GridTextureSelectEditor.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/grid/cells/GridUnitCell.d.ts +9 -0
- package/dist/grid/cells/GridUnitCell.d.ts.map +1 -0
- package/dist/grid/cells/GridUnitCell.js +7 -0
- package/dist/grid/cells/GridUnitCell.js.map +1 -0
- package/dist/grid/cells/GridUnitCell.vue_vue_type_script_setup_true_lang.js +29 -0
- package/dist/grid/cells/GridUnitCell.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/grid/cells/GridUnitEditor.d.ts +11 -0
- package/dist/grid/cells/GridUnitEditor.d.ts.map +1 -0
- package/dist/grid/cells/GridUnitEditor.js +7 -0
- package/dist/grid/cells/GridUnitEditor.js.map +1 -0
- package/dist/grid/cells/GridUnitEditor.vue_vue_type_script_setup_true_lang.js +58 -0
- package/dist/grid/cells/GridUnitEditor.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/grid/columnStretchPlugin.d.ts +12 -0
- package/dist/grid/columnStretchPlugin.d.ts.map +1 -0
- package/dist/grid/columnStretchPlugin.js +35 -0
- package/dist/grid/columnStretchPlugin.js.map +1 -0
- package/dist/grid/composables/useCellTemplate.d.ts +35 -0
- package/dist/grid/composables/useCellTemplate.d.ts.map +1 -0
- package/dist/grid/composables/useCellTemplate.js +30 -0
- package/dist/grid/composables/useCellTemplate.js.map +1 -0
- package/dist/grid/composables/useGridOverlayFocusGuard.d.ts +5 -0
- package/dist/grid/composables/useGridOverlayFocusGuard.d.ts.map +1 -0
- package/dist/grid/composables/useGridOverlayFocusGuard.js +12 -0
- package/dist/grid/composables/useGridOverlayFocusGuard.js.map +1 -0
- package/dist/grid/composables/useUnitSuffix.d.ts +9 -0
- package/dist/grid/composables/useUnitSuffix.d.ts.map +1 -0
- package/dist/grid/composables/useUnitSuffix.js +13 -0
- package/dist/grid/composables/useUnitSuffix.js.map +1 -0
- package/dist/grid/index.d.ts +8 -0
- package/dist/grid/index.d.ts.map +1 -0
- package/dist/grid/index.js +4 -0
- package/dist/grid/parts/WellGridAddButton.d.ts +5 -0
- package/dist/grid/parts/WellGridAddButton.d.ts.map +1 -0
- package/dist/grid/parts/WellGridAddButton.js +7 -0
- package/dist/grid/parts/WellGridAddButton.js.map +1 -0
- package/dist/grid/parts/WellGridAddButton.vue_vue_type_script_setup_true_lang.js +23 -0
- package/dist/grid/parts/WellGridAddButton.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/grid/parts/WellGridDeleteButton.d.ts +5 -0
- package/dist/grid/parts/WellGridDeleteButton.d.ts.map +1 -0
- package/dist/grid/parts/WellGridDeleteButton.js +7 -0
- package/dist/grid/parts/WellGridDeleteButton.js.map +1 -0
- package/dist/grid/parts/WellGridDeleteButton.vue_vue_type_script_setup_true_lang.js +21 -0
- package/dist/grid/parts/WellGridDeleteButton.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/grid/types.d.ts +90 -0
- package/dist/grid/types.d.ts.map +1 -0
- package/dist/grid/useWellGridColumns.d.ts +40 -0
- package/dist/grid/useWellGridColumns.d.ts.map +1 -0
- package/dist/grid/useWellGridColumns.js +242 -0
- package/dist/grid/useWellGridColumns.js.map +1 -0
- package/dist/grid.css +407 -0
- package/dist/index.d.ts +17 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +14 -0
- package/dist/location/WellCoordinateInput.d.ts +14 -0
- package/dist/location/WellCoordinateInput.d.ts.map +1 -0
- package/dist/location/WellCoordinateInput.js +7 -0
- package/dist/location/WellCoordinateInput.js.map +1 -0
- package/dist/location/WellCoordinateInput.vue_vue_type_script_setup_true_lang.js +53 -0
- package/dist/location/WellCoordinateInput.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/location/WellLocationMap.d.ts +22 -0
- package/dist/location/WellLocationMap.d.ts.map +1 -0
- package/dist/location/WellLocationMap.js +9 -0
- package/dist/location/WellLocationMap.js.map +1 -0
- package/dist/location/WellLocationMap.vue_vue_type_script_setup_true_lang.js +91 -0
- package/dist/location/WellLocationMap.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/location/WellLocationPicker.d.ts +32 -0
- package/dist/location/WellLocationPicker.d.ts.map +1 -0
- package/dist/location/WellLocationPicker.js +7 -0
- package/dist/location/WellLocationPicker.js.map +1 -0
- package/dist/location/WellLocationPicker.vue_vue_type_script_setup_true_lang.js +117 -0
- package/dist/location/WellLocationPicker.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/location/index.d.ts +6 -0
- package/dist/location/index.d.ts.map +1 -0
- package/dist/location/index.js +5 -0
- package/dist/location/location.d.ts +61 -0
- package/dist/location/location.d.ts.map +1 -0
- package/dist/location/location.js +15 -0
- package/dist/location/location.js.map +1 -0
- package/dist/nuxt/module.d.ts +76 -0
- package/dist/nuxt/module.d.ts.map +1 -0
- package/dist/nuxt/module.js +129 -0
- package/dist/nuxt/module.js.map +1 -0
- package/dist/nuxt/runtime/plugin.d.ts +14 -0
- package/dist/nuxt/runtime/plugin.d.ts.map +1 -0
- package/dist/nuxt/runtime/plugin.js +13 -0
- package/dist/nuxt/runtime/plugin.js.map +1 -0
- package/dist/style.css +2 -0
- package/dist/tailwind.css +160 -0
- package/dist/theme/define.d.ts +44 -0
- package/dist/theme/define.d.ts.map +1 -0
- package/dist/theme/define.js +14 -0
- package/dist/theme/define.js.map +1 -0
- package/dist/theme/index.d.ts +5 -0
- package/dist/theme/index.d.ts.map +1 -0
- package/dist/theme/index.js +4 -0
- package/dist/theme/preset.d.ts +20 -0
- package/dist/theme/preset.d.ts.map +1 -0
- package/dist/theme/preset.js +977 -0
- package/dist/theme/preset.js.map +1 -0
- package/dist/theme/pt.d.ts +8 -0
- package/dist/theme/pt.d.ts.map +1 -0
- package/dist/theme/pt.js +66 -0
- package/dist/theme/pt.js.map +1 -0
- package/dist/types.d.ts +38 -0
- package/dist/types.d.ts.map +1 -0
- package/package.json +134 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GridTextEditor.js","names":[],"sources":["../../../src/grid/cells/GridTextEditor.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport InputText from 'primevue/inputtext';\nimport { nextTick, onMounted, ref } from 'vue';\n\nconst props = defineProps<{\n val?: unknown;\n save: (value: unknown, preventFocus?: boolean) => void;\n close: (focusNext?: boolean) => void;\n}>();\n\ndefineOptions({ inheritAttrs: false });\n\nconst inputRef = ref<{ $el: HTMLInputElement } | null>(null);\n// RevoGrid passes the typed key when editing starts by typing, the cell's\n// current value otherwise.\nconst localValue = ref<string>(\n props.val === undefined || props.val === null ? '' : String(props.val),\n);\n\nonMounted(() =>\n nextTick(() => {\n const el = inputRef.value?.$el;\n if (!el) return;\n el.focus();\n const end = el.value.length;\n el.setSelectionRange(end, end);\n }),\n);\n\nfunction commit(preventFocus = true) {\n props.save(localValue.value, preventFocus);\n}\n\nfunction onKeydown(e: KeyboardEvent) {\n if (e.key === 'Enter') {\n e.stopPropagation();\n commit(false);\n } else if (e.key === 'Escape') {\n e.stopPropagation();\n props.close();\n }\n}\n\nfunction update(value: string | undefined) {\n localValue.value = value || '';\n}\n</script>\n\n<template>\n <p v-show=\"false\" class=\"h-0 w-0\">{{ localValue }}</p>\n <InputText\n ref=\"inputRef\"\n :pt=\"{\n root: 'well-cell-input',\n }\"\n :model-value=\"localValue\"\n @update:model-value=\"update\"\n @blur=\"() => commit(true)\"\n @keydown=\"onKeydown\"\n />\n</template>\n"],"mappings":""}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { Fragment as e, createElementBlock as t, createElementVNode as n, createVNode as r, defineComponent as i, nextTick as a, onMounted as o, openBlock as s, ref as c, toDisplayString as l, unref as u, vShow as d, withDirectives as f } from "vue";
|
|
2
|
+
import p from "primevue/inputtext";
|
|
3
|
+
//#region src/grid/cells/GridTextEditor.vue?vue&type=script&setup=true&lang.ts
|
|
4
|
+
var m = /* @__PURE__ */ i({
|
|
5
|
+
inheritAttrs: !1,
|
|
6
|
+
__name: "GridTextEditor",
|
|
7
|
+
props: {
|
|
8
|
+
val: {},
|
|
9
|
+
save: { type: Function },
|
|
10
|
+
close: { type: Function }
|
|
11
|
+
},
|
|
12
|
+
setup(i) {
|
|
13
|
+
let m = i, h = c(null), g = c(m.val === void 0 || m.val === null ? "" : String(m.val));
|
|
14
|
+
o(() => a(() => {
|
|
15
|
+
let e = h.value?.$el;
|
|
16
|
+
if (!e) return;
|
|
17
|
+
e.focus();
|
|
18
|
+
let t = e.value.length;
|
|
19
|
+
e.setSelectionRange(t, t);
|
|
20
|
+
}));
|
|
21
|
+
function _(e = !0) {
|
|
22
|
+
m.save(g.value, e);
|
|
23
|
+
}
|
|
24
|
+
function v(e) {
|
|
25
|
+
e.key === "Enter" ? (e.stopPropagation(), _(!1)) : e.key === "Escape" && (e.stopPropagation(), m.close());
|
|
26
|
+
}
|
|
27
|
+
function y(e) {
|
|
28
|
+
g.value = e || "";
|
|
29
|
+
}
|
|
30
|
+
return (i, a) => (s(), t(e, null, [f(n("p", { class: "h-0 w-0" }, l(g.value), 513), [[d, !1]]), r(u(p), {
|
|
31
|
+
ref_key: "inputRef",
|
|
32
|
+
ref: h,
|
|
33
|
+
pt: { root: "well-cell-input" },
|
|
34
|
+
"model-value": g.value,
|
|
35
|
+
"onUpdate:modelValue": y,
|
|
36
|
+
onBlur: a[0] || (a[0] = () => _(!0)),
|
|
37
|
+
onKeydown: v
|
|
38
|
+
}, null, 8, ["model-value"])], 64));
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
//#endregion
|
|
42
|
+
export { m as default };
|
|
43
|
+
|
|
44
|
+
//# sourceMappingURL=GridTextEditor.vue_vue_type_script_setup_true_lang.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GridTextEditor.vue_vue_type_script_setup_true_lang.js","names":[],"sources":["../../../src/grid/cells/GridTextEditor.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport InputText from 'primevue/inputtext';\nimport { nextTick, onMounted, ref } from 'vue';\n\nconst props = defineProps<{\n val?: unknown;\n save: (value: unknown, preventFocus?: boolean) => void;\n close: (focusNext?: boolean) => void;\n}>();\n\ndefineOptions({ inheritAttrs: false });\n\nconst inputRef = ref<{ $el: HTMLInputElement } | null>(null);\n// RevoGrid passes the typed key when editing starts by typing, the cell's\n// current value otherwise.\nconst localValue = ref<string>(\n props.val === undefined || props.val === null ? '' : String(props.val),\n);\n\nonMounted(() =>\n nextTick(() => {\n const el = inputRef.value?.$el;\n if (!el) return;\n el.focus();\n const end = el.value.length;\n el.setSelectionRange(end, end);\n }),\n);\n\nfunction commit(preventFocus = true) {\n props.save(localValue.value, preventFocus);\n}\n\nfunction onKeydown(e: KeyboardEvent) {\n if (e.key === 'Enter') {\n e.stopPropagation();\n commit(false);\n } else if (e.key === 'Escape') {\n e.stopPropagation();\n props.close();\n }\n}\n\nfunction update(value: string | undefined) {\n localValue.value = value || '';\n}\n</script>\n\n<template>\n <p v-show=\"false\" class=\"h-0 w-0\">{{ localValue }}</p>\n <InputText\n ref=\"inputRef\"\n :pt=\"{\n root: 'well-cell-input',\n }\"\n :model-value=\"localValue\"\n @update:model-value=\"update\"\n @blur=\"() => commit(true)\"\n @keydown=\"onKeydown\"\n />\n</template>\n"],"mappings":";;;;;;;;;;;;EAIA,IAAM,IAAQ,GAQR,IAAW,EAAsC,KAAK,EAGtD,IAAa,EACjB,EAAM,QAAQ,KAAA,KAAa,EAAM,QAAQ,OAAO,KAAK,OAAO,EAAM,IAAI,CACvE;AAED,UACE,QAAe;GACb,IAAM,IAAK,EAAS,OAAO;AAC3B,OAAI,CAAC,EAAI;AACT,KAAG,OAAO;GACV,IAAM,IAAM,EAAG,MAAM;AACrB,KAAG,kBAAkB,GAAK,EAAI;IAC9B,CACH;EAED,SAAS,EAAO,IAAe,IAAM;AACnC,KAAM,KAAK,EAAW,OAAO,EAAa;;EAG5C,SAAS,EAAU,GAAkB;AACnC,GAAI,EAAE,QAAQ,WACZ,EAAE,iBAAiB,EACnB,EAAO,GAAM,IACJ,EAAE,QAAQ,aACnB,EAAE,iBAAiB,EACnB,EAAM,OAAO;;EAIjB,SAAS,EAAO,GAA2B;AACzC,KAAW,QAAQ,KAAS;;uCAK5B,EAAsD,KAAA,EAApC,OAAM,WAAS,EAAA,EAAI,EAAA,MAAU,EAAA,IAAA,EAAA,CAAA,CAAA,GAApC,GAAK,CAAA,CAAA,EAChB,EASE,EAAA,EAAA,EAAA;YARI;GAAJ,KAAI;GACH,IAAI,EAAA,MAAA,mBAEJ;GACA,eAAa,EAAA;GACb,uBAAoB;GACpB,QAAI,EAAA,OAAA,EAAA,WAAQ,EAAM,GAAA;GACT"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
type __VLS_Props = {
|
|
2
|
+
value?: unknown;
|
|
3
|
+
};
|
|
4
|
+
declare const __VLS_export: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
5
|
+
declare const _default: typeof __VLS_export;
|
|
6
|
+
export default _default;
|
|
7
|
+
//# sourceMappingURL=GridTextureSelectCell.vue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GridTextureSelectCell.d.ts","sourceRoot":"","sources":["../../../src/grid/cells/GridTextureSelectCell.vue"],"names":[],"mappings":"AAyBA,KAAK,WAAW,GAAG;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC;AA8CF,QAAA,MAAM,YAAY,kSAEhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GridTextureSelectCell.js","names":[],"sources":["../../../src/grid/cells/GridTextureSelectCell.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed } from 'vue';\nimport WellTextureThumbnail from '../../components/WellTextureThumbnail.vue';\n\nconst props = defineProps<{\n value?: unknown;\n}>();\n\ndefineOptions({ inheritAttrs: false });\n\nconst typedValue = computed(() => props.value as string | number | undefined);\n</script>\n\n<template>\n <span class=\"flex h-full w-full items-center gap-1.5\">\n <WellTextureThumbnail :code=\"typedValue\" :size=\"28\" />\n <span class=\"font-mono text-[11px]\">{{ typedValue }}</span>\n </span>\n</template>\n"],"mappings":""}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import e from "../../components/WellTextureThumbnail.js";
|
|
2
|
+
import { computed as t, createElementBlock as n, createElementVNode as r, createVNode as i, defineComponent as a, openBlock as o, toDisplayString as s } from "vue";
|
|
3
|
+
//#region src/grid/cells/GridTextureSelectCell.vue?vue&type=script&setup=true&lang.ts
|
|
4
|
+
var c = { class: "flex h-full w-full items-center gap-1.5" }, l = { class: "font-mono text-[11px]" }, u = /* @__PURE__ */ a({
|
|
5
|
+
inheritAttrs: !1,
|
|
6
|
+
__name: "GridTextureSelectCell",
|
|
7
|
+
props: { value: {} },
|
|
8
|
+
setup(a) {
|
|
9
|
+
let u = a, d = t(() => u.value);
|
|
10
|
+
return (t, a) => (o(), n("span", c, [i(e, {
|
|
11
|
+
code: d.value,
|
|
12
|
+
size: 28
|
|
13
|
+
}, null, 8, ["code"]), r("span", l, s(d.value), 1)]));
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
//#endregion
|
|
17
|
+
export { u as default };
|
|
18
|
+
|
|
19
|
+
//# sourceMappingURL=GridTextureSelectCell.vue_vue_type_script_setup_true_lang.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GridTextureSelectCell.vue_vue_type_script_setup_true_lang.js","names":[],"sources":["../../../src/grid/cells/GridTextureSelectCell.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed } from 'vue';\nimport WellTextureThumbnail from '../../components/WellTextureThumbnail.vue';\n\nconst props = defineProps<{\n value?: unknown;\n}>();\n\ndefineOptions({ inheritAttrs: false });\n\nconst typedValue = computed(() => props.value as string | number | undefined);\n</script>\n\n<template>\n <span class=\"flex h-full w-full items-center gap-1.5\">\n <WellTextureThumbnail :code=\"typedValue\" :size=\"28\" />\n <span class=\"font-mono text-[11px]\">{{ typedValue }}</span>\n </span>\n</template>\n"],"mappings":";;;;;;;;EAIA,IAAM,IAAQ,GAMR,IAAa,QAAe,EAAM,MAAqC;yBAI3E,EAGO,QAHP,GAGO,CAFL,EAAsD,GAAA;GAA/B,MAAM,EAAA;GAAa,MAAM;yBAChD,EAA2D,QAA3D,GAA2D,EAApB,EAAA,MAAU,EAAA,EAAA,CAAA,CAAA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { LanguageTextInput } from '@welldot/core';
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
val?: unknown;
|
|
4
|
+
save: (value: unknown, preventFocus?: boolean) => void;
|
|
5
|
+
close: (focusNext?: boolean) => void;
|
|
6
|
+
placeholder?: LanguageTextInput;
|
|
7
|
+
/** Label of the pending-textures toggle; hidden without it. */
|
|
8
|
+
showPending?: LanguageTextInput;
|
|
9
|
+
};
|
|
10
|
+
declare const __VLS_export: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
11
|
+
declare const _default: typeof __VLS_export;
|
|
12
|
+
export default _default;
|
|
13
|
+
//# sourceMappingURL=GridTextureSelectEditor.vue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GridTextureSelectEditor.d.ts","sourceRoot":"","sources":["../../../src/grid/cells/GridTextureSelectEditor.vue"],"names":[],"mappings":"AAyDA;;;;GAIG;AACH,OAAO,KAAK,EAAE,iBAAiB,EAAe,MAAM,eAAe,CAAC;AAKpE,KAAK,WAAW,GAAG;IACjB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,YAAY,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACvD,KAAK,EAAE,CAAC,SAAS,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACrC,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC,+DAA+D;IAC/D,WAAW,CAAC,EAAE,iBAAiB,CAAC;CACjC,CAAC;AAoEF,QAAA,MAAM,YAAY,kSAEhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GridTextureSelectEditor.js","names":[],"sources":["../../../src/grid/cells/GridTextureSelectEditor.vue"],"sourcesContent":["<script setup lang=\"ts\">\n/**\n * Texture editor: `WellTextureSelect` opened on mount, committing on select\n * and closing on Escape. Its overlay lives in `body`, so it carries the\n * focus guard that keeps RevoGrid from ending the edit on overlay clicks.\n */\nimport type { LanguageTextInput, TextureCode } from '@welldot/core';\nimport { nextTick, onMounted, ref } from 'vue';\nimport WellTextureSelect from '../../components/WellTextureSelect.vue';\nimport { useGridOverlayFocusGuard } from '../composables/useGridOverlayFocusGuard';\n\nconst props = defineProps<{\n val?: unknown;\n save: (value: unknown, preventFocus?: boolean) => void;\n close: (focusNext?: boolean) => void;\n placeholder?: LanguageTextInput;\n /** Label of the pending-textures toggle; hidden without it. */\n showPending?: LanguageTextInput;\n}>();\n\ndefineOptions({ inheritAttrs: false });\n\nconst selectRef = ref<InstanceType<typeof WellTextureSelect> | null>(null);\nconst overlayFocusGuard = useGridOverlayFocusGuard();\n\nonMounted(() => nextTick(() => selectRef.value?.show()));\n\nfunction onSelect(value: unknown) {\n props.save(value);\n props.close();\n}\n\nfunction onKeydown(e: KeyboardEvent) {\n if (e.key === 'Escape') {\n e.stopPropagation();\n props.close();\n }\n}\n</script>\n\n<template>\n <WellTextureSelect\n ref=\"selectRef\"\n :model-value=\"(val ?? null) as TextureCode | null\"\n :labels=\"{ placeholder, showPending }\"\n append-to=\"body\"\n :pt=\"{\n root: 'well-cell-select well-cell-texture-select',\n overlay: overlayFocusGuard,\n }\"\n @update:model-value=\"onSelect\"\n @keydown=\"onKeydown\"\n />\n</template>\n"],"mappings":""}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import e from "../../components/WellTextureSelect.js";
|
|
2
|
+
import { useGridOverlayFocusGuard as t } from "../composables/useGridOverlayFocusGuard.js";
|
|
3
|
+
import { createBlock as n, defineComponent as r, nextTick as i, onMounted as a, openBlock as o, ref as s, unref as c } from "vue";
|
|
4
|
+
//#region src/grid/cells/GridTextureSelectEditor.vue?vue&type=script&setup=true&lang.ts
|
|
5
|
+
var l = /* @__PURE__ */ r({
|
|
6
|
+
inheritAttrs: !1,
|
|
7
|
+
__name: "GridTextureSelectEditor",
|
|
8
|
+
props: {
|
|
9
|
+
val: {},
|
|
10
|
+
save: { type: Function },
|
|
11
|
+
close: { type: Function },
|
|
12
|
+
placeholder: {},
|
|
13
|
+
showPending: {}
|
|
14
|
+
},
|
|
15
|
+
setup(r) {
|
|
16
|
+
let l = r, u = s(null), d = t();
|
|
17
|
+
a(() => i(() => u.value?.show()));
|
|
18
|
+
function f(e) {
|
|
19
|
+
l.save(e), l.close();
|
|
20
|
+
}
|
|
21
|
+
function p(e) {
|
|
22
|
+
e.key === "Escape" && (e.stopPropagation(), l.close());
|
|
23
|
+
}
|
|
24
|
+
return (t, i) => (o(), n(e, {
|
|
25
|
+
ref_key: "selectRef",
|
|
26
|
+
ref: u,
|
|
27
|
+
"model-value": r.val ?? null,
|
|
28
|
+
labels: {
|
|
29
|
+
placeholder: r.placeholder,
|
|
30
|
+
showPending: r.showPending
|
|
31
|
+
},
|
|
32
|
+
"append-to": "body",
|
|
33
|
+
pt: {
|
|
34
|
+
root: "well-cell-select well-cell-texture-select",
|
|
35
|
+
overlay: c(d)
|
|
36
|
+
},
|
|
37
|
+
"onUpdate:modelValue": f,
|
|
38
|
+
onKeydown: p
|
|
39
|
+
}, null, 8, [
|
|
40
|
+
"model-value",
|
|
41
|
+
"labels",
|
|
42
|
+
"pt"
|
|
43
|
+
]));
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
//#endregion
|
|
47
|
+
export { l as default };
|
|
48
|
+
|
|
49
|
+
//# sourceMappingURL=GridTextureSelectEditor.vue_vue_type_script_setup_true_lang.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GridTextureSelectEditor.vue_vue_type_script_setup_true_lang.js","names":[],"sources":["../../../src/grid/cells/GridTextureSelectEditor.vue"],"sourcesContent":["<script setup lang=\"ts\">\n/**\n * Texture editor: `WellTextureSelect` opened on mount, committing on select\n * and closing on Escape. Its overlay lives in `body`, so it carries the\n * focus guard that keeps RevoGrid from ending the edit on overlay clicks.\n */\nimport type { LanguageTextInput, TextureCode } from '@welldot/core';\nimport { nextTick, onMounted, ref } from 'vue';\nimport WellTextureSelect from '../../components/WellTextureSelect.vue';\nimport { useGridOverlayFocusGuard } from '../composables/useGridOverlayFocusGuard';\n\nconst props = defineProps<{\n val?: unknown;\n save: (value: unknown, preventFocus?: boolean) => void;\n close: (focusNext?: boolean) => void;\n placeholder?: LanguageTextInput;\n /** Label of the pending-textures toggle; hidden without it. */\n showPending?: LanguageTextInput;\n}>();\n\ndefineOptions({ inheritAttrs: false });\n\nconst selectRef = ref<InstanceType<typeof WellTextureSelect> | null>(null);\nconst overlayFocusGuard = useGridOverlayFocusGuard();\n\nonMounted(() => nextTick(() => selectRef.value?.show()));\n\nfunction onSelect(value: unknown) {\n props.save(value);\n props.close();\n}\n\nfunction onKeydown(e: KeyboardEvent) {\n if (e.key === 'Escape') {\n e.stopPropagation();\n props.close();\n }\n}\n</script>\n\n<template>\n <WellTextureSelect\n ref=\"selectRef\"\n :model-value=\"(val ?? null) as TextureCode | null\"\n :labels=\"{ placeholder, showPending }\"\n append-to=\"body\"\n :pt=\"{\n root: 'well-cell-select well-cell-texture-select',\n overlay: overlayFocusGuard,\n }\"\n @update:model-value=\"onSelect\"\n @keydown=\"onKeydown\"\n />\n</template>\n"],"mappings":";;;;;;;;;;;;;;;EAWA,IAAM,IAAQ,GAWR,IAAY,EAAmD,KAAK,EACpE,IAAoB,GAA0B;AAEpD,UAAgB,QAAe,EAAU,OAAO,MAAM,CAAC,CAAC;EAExD,SAAS,EAAS,GAAgB;AAEhC,GADA,EAAM,KAAK,EAAM,EACjB,EAAM,OAAO;;EAGf,SAAS,EAAU,GAAkB;AACnC,GAAI,EAAE,QAAQ,aACZ,EAAE,iBAAiB,EACnB,EAAM,OAAO;;yBAMf,EAWE,GAAA;YAVI;GAAJ,KAAI;GACH,eAAc,EAAA,OAAG;GACjB,QAAM;IAAA,aAAI,EAAA;IAAW,aAAE,EAAA;IAAW;GACnC,aAAU;GACT,IAAE;;aAA4E,EAAA,EAAiB;;GAI/F,uBAAoB;GACX"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { DisplayUnitType } from '../../composables/useWellUnits';
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
value?: unknown;
|
|
4
|
+
unitType: DisplayUnitType;
|
|
5
|
+
};
|
|
6
|
+
declare const __VLS_export: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
7
|
+
declare const _default: typeof __VLS_export;
|
|
8
|
+
export default _default;
|
|
9
|
+
//# sourceMappingURL=GridUnitCell.vue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GridUnitCell.d.ts","sourceRoot":"","sources":["../../../src/grid/cells/GridUnitCell.vue"],"names":[],"mappings":"AAgDA,OAAO,EAEL,KAAK,eAAe,EACrB,MAAM,gCAAgC,CAAC;AAGxC,KAAK,WAAW,GAAG;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,eAAe,CAAC;CAC3B,CAAC;AA2CF,QAAA,MAAM,YAAY,kSAEhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GridUnitCell.js","names":[],"sources":["../../../src/grid/cells/GridUnitCell.vue"],"sourcesContent":["<script setup lang=\"ts\">\n/**\n * Unit-aware cell: the value is canonical (SI); it is shown converted to\n * the configured display unit, with the unit as suffix.\n */\nimport { computed } from 'vue';\nimport { useWellNumberFormat } from '../../composables/useWellNumberFormat';\nimport {\n useWellUnits,\n type DisplayUnitType,\n} from '../../composables/useWellUnits';\nimport { useUnitSuffix } from '../composables/useUnitSuffix';\n\nconst props = defineProps<{\n value?: unknown;\n unitType: DisplayUnitType;\n}>();\n\ndefineOptions({ inheritAttrs: false });\n\nconst { toDisplay } = useWellUnits(() => props.unitType);\nconst suffix = useUnitSuffix(() => props.unitType);\nconst { formatNumber } = useWellNumberFormat();\n\nconst display = computed((): string => {\n const raw = props.value;\n if (raw === null || raw === undefined || raw === '') return '—';\n const canonical = Number(raw);\n if (isNaN(canonical)) return '—';\n return formatNumber(toDisplay(canonical), {\n maximumFractionDigits: 4,\n suffix: suffix.value,\n });\n});\n</script>\n\n<template>\n <span class=\"flex h-full w-full items-center justify-end\">{{ display }}</span>\n</template>\n"],"mappings":""}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { useWellNumberFormat as e } from "../../composables/useWellNumberFormat.js";
|
|
2
|
+
import { useWellUnits as t } from "../../composables/useWellUnits.js";
|
|
3
|
+
import { useUnitSuffix as n } from "../composables/useUnitSuffix.js";
|
|
4
|
+
import { computed as r, createElementBlock as i, defineComponent as a, openBlock as o, toDisplayString as s } from "vue";
|
|
5
|
+
//#region src/grid/cells/GridUnitCell.vue?vue&type=script&setup=true&lang.ts
|
|
6
|
+
var c = { class: "flex h-full w-full items-center justify-end" }, l = /* @__PURE__ */ a({
|
|
7
|
+
inheritAttrs: !1,
|
|
8
|
+
__name: "GridUnitCell",
|
|
9
|
+
props: {
|
|
10
|
+
value: {},
|
|
11
|
+
unitType: {}
|
|
12
|
+
},
|
|
13
|
+
setup(a) {
|
|
14
|
+
let l = a, { toDisplay: u } = t(() => l.unitType), d = n(() => l.unitType), { formatNumber: f } = e(), p = r(() => {
|
|
15
|
+
let e = l.value;
|
|
16
|
+
if (e == null || e === "") return "—";
|
|
17
|
+
let t = Number(e);
|
|
18
|
+
return isNaN(t) ? "—" : f(u(t), {
|
|
19
|
+
maximumFractionDigits: 4,
|
|
20
|
+
suffix: d.value
|
|
21
|
+
});
|
|
22
|
+
});
|
|
23
|
+
return (e, t) => (o(), i("span", c, s(p.value), 1));
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
//#endregion
|
|
27
|
+
export { l as default };
|
|
28
|
+
|
|
29
|
+
//# sourceMappingURL=GridUnitCell.vue_vue_type_script_setup_true_lang.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GridUnitCell.vue_vue_type_script_setup_true_lang.js","names":[],"sources":["../../../src/grid/cells/GridUnitCell.vue"],"sourcesContent":["<script setup lang=\"ts\">\n/**\n * Unit-aware cell: the value is canonical (SI); it is shown converted to\n * the configured display unit, with the unit as suffix.\n */\nimport { computed } from 'vue';\nimport { useWellNumberFormat } from '../../composables/useWellNumberFormat';\nimport {\n useWellUnits,\n type DisplayUnitType,\n} from '../../composables/useWellUnits';\nimport { useUnitSuffix } from '../composables/useUnitSuffix';\n\nconst props = defineProps<{\n value?: unknown;\n unitType: DisplayUnitType;\n}>();\n\ndefineOptions({ inheritAttrs: false });\n\nconst { toDisplay } = useWellUnits(() => props.unitType);\nconst suffix = useUnitSuffix(() => props.unitType);\nconst { formatNumber } = useWellNumberFormat();\n\nconst display = computed((): string => {\n const raw = props.value;\n if (raw === null || raw === undefined || raw === '') return '—';\n const canonical = Number(raw);\n if (isNaN(canonical)) return '—';\n return formatNumber(toDisplay(canonical), {\n maximumFractionDigits: 4,\n suffix: suffix.value,\n });\n});\n</script>\n\n<template>\n <span class=\"flex h-full w-full items-center justify-end\">{{ display }}</span>\n</template>\n"],"mappings":";;;;;;;;;;;;;EAaA,IAAM,IAAQ,GAOR,EAAE,iBAAc,QAAmB,EAAM,SAAS,EAClD,IAAS,QAAoB,EAAM,SAAS,EAC5C,EAAE,oBAAiB,GAAqB,EAExC,IAAU,QAAuB;GACrC,IAAM,IAAM,EAAM;AAClB,OAAI,KAAQ,QAA6B,MAAQ,GAAI,QAAO;GAC5D,IAAM,IAAY,OAAO,EAAI;AAE7B,UADI,MAAM,EAAU,GAAS,MACtB,EAAa,EAAU,EAAU,EAAE;IACxC,uBAAuB;IACvB,QAAQ,EAAO;IAChB,CAAC;IACF;yBAIA,EAA8E,QAA9E,GAA8E,EAAjB,EAAA,MAAO,EAAA,EAAA"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { DisplayUnitType } from '../../composables/useWellUnits';
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
val?: unknown;
|
|
4
|
+
save: (value: unknown, preventFocus?: boolean) => void;
|
|
5
|
+
close: (focusNext?: boolean) => void;
|
|
6
|
+
unitType: DisplayUnitType;
|
|
7
|
+
};
|
|
8
|
+
declare const __VLS_export: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
9
|
+
declare const _default: typeof __VLS_export;
|
|
10
|
+
export default _default;
|
|
11
|
+
//# sourceMappingURL=GridUnitEditor.vue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GridUnitEditor.d.ts","sourceRoot":"","sources":["../../../src/grid/cells/GridUnitEditor.vue"],"names":[],"mappings":"AA8FA,OAAO,EAGL,KAAK,eAAe,EACrB,MAAM,gCAAgC,CAAC;AAExC,KAAK,WAAW,GAAG;IACjB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,YAAY,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACvD,KAAK,EAAE,CAAC,SAAS,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACrC,QAAQ,EAAE,eAAe,CAAC;CAC3B,CAAC;AA8GF,QAAA,MAAM,YAAY,kSAEhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GridUnitEditor.js","names":[],"sources":["../../../src/grid/cells/GridUnitEditor.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { nextTick, onMounted, ref } from 'vue';\nimport WellInputNumber from '../../components/WellInputNumber.vue';\nimport {\n isDisplayedValue,\n useWellUnits,\n type DisplayUnitType,\n} from '../../composables/useWellUnits';\n\nconst props = defineProps<{\n val?: unknown;\n save: (value: unknown, preventFocus?: boolean) => void;\n close: (focusNext?: boolean) => void;\n unitType: DisplayUnitType;\n}>();\n\ndefineOptions({ inheritAttrs: false });\n\nconst { toDisplay, toCanonical } = useWellUnits(() => props.unitType);\n\n/** Matches the `max-fraction-digits` of the input below. */\nconst MAX_FRACTION_DIGITS = 4;\n\nconst numRef = ref<{ $el: HTMLElement } | null>(null);\n\nconst raw =\n props.val !== undefined && props.val !== null && props.val !== ''\n ? Number(props.val)\n : null;\n\n/** Display value the editor opened with (null for an empty cell). */\nconst initialDisplay = raw != null && !isNaN(raw) ? toDisplay(raw) : null;\nconst localValue = ref<number | null>(initialDisplay);\n\nonMounted(() =>\n nextTick(() => {\n const el = numRef.value?.$el;\n (el?.querySelector('input') as HTMLInputElement | null)?.focus();\n }),\n);\n\nlet lastKeyWasEnter = false;\n\nfunction onKeydownCapture(e: KeyboardEvent) {\n lastKeyWasEnter = e.key === 'Enter';\n}\n\nfunction commit() {\n if (localValue.value === null) return;\n // `InputNumber` emits its rounded text on blur/Enter: an untouched edit\n // closes without saving, so the exact canonical value is kept.\n if (isDisplayedValue(localValue.value, initialDisplay, MAX_FRACTION_DIGITS)) {\n props.close(lastKeyWasEnter);\n return;\n }\n props.save(toCanonical(localValue.value), !lastKeyWasEnter);\n}\n\nfunction onKeydown(e: KeyboardEvent) {\n if (e.key === 'Enter') {\n e.stopPropagation();\n commit();\n } else if (e.key === 'Escape') {\n e.stopPropagation();\n props.close();\n }\n}\n\nfunction update(value: number | null) {\n localValue.value = value;\n commit();\n}\n</script>\n\n<template>\n <div class=\"contents\" @keydown.capture=\"onKeydownCapture\">\n <WellInputNumber\n ref=\"numRef\"\n :model-value=\"localValue\"\n :max-fraction-digits=\"MAX_FRACTION_DIGITS\"\n :pt=\"{\n root: 'well-cell-input-number',\n pcInput: { root: 'well-cell-input well-cell-input-number text-right' },\n }\"\n @update:model-value=\"update\"\n @keydown=\"onKeydown\"\n />\n </div>\n</template>\n"],"mappings":""}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { isDisplayedValue as e, useWellUnits as t } from "../../composables/useWellUnits.js";
|
|
2
|
+
import n from "../../components/WellInputNumber.js";
|
|
3
|
+
import { createElementBlock as r, createVNode as i, defineComponent as a, nextTick as o, onMounted as s, openBlock as c, ref as l } from "vue";
|
|
4
|
+
//#region src/grid/cells/GridUnitEditor.vue?vue&type=script&setup=true&lang.ts
|
|
5
|
+
var u = 4, d = /* @__PURE__ */ a({
|
|
6
|
+
inheritAttrs: !1,
|
|
7
|
+
__name: "GridUnitEditor",
|
|
8
|
+
props: {
|
|
9
|
+
val: {},
|
|
10
|
+
save: { type: Function },
|
|
11
|
+
close: { type: Function },
|
|
12
|
+
unitType: {}
|
|
13
|
+
},
|
|
14
|
+
setup(a) {
|
|
15
|
+
let d = a, { toDisplay: f, toCanonical: p } = t(() => d.unitType), m = l(null), h = d.val !== void 0 && d.val !== null && d.val !== "" ? Number(d.val) : null, g = h != null && !isNaN(h) ? f(h) : null, _ = l(g);
|
|
16
|
+
s(() => o(() => {
|
|
17
|
+
((m.value?.$el)?.querySelector("input"))?.focus();
|
|
18
|
+
}));
|
|
19
|
+
let v = !1;
|
|
20
|
+
function y(e) {
|
|
21
|
+
v = e.key === "Enter";
|
|
22
|
+
}
|
|
23
|
+
function b() {
|
|
24
|
+
if (_.value !== null) {
|
|
25
|
+
if (e(_.value, g, u)) {
|
|
26
|
+
d.close(v);
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
d.save(p(_.value), !v);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
function x(e) {
|
|
33
|
+
e.key === "Enter" ? (e.stopPropagation(), b()) : e.key === "Escape" && (e.stopPropagation(), d.close());
|
|
34
|
+
}
|
|
35
|
+
function S(e) {
|
|
36
|
+
_.value = e, b();
|
|
37
|
+
}
|
|
38
|
+
return (e, t) => (c(), r("div", {
|
|
39
|
+
class: "contents",
|
|
40
|
+
onKeydownCapture: y
|
|
41
|
+
}, [i(n, {
|
|
42
|
+
ref_key: "numRef",
|
|
43
|
+
ref: m,
|
|
44
|
+
"model-value": _.value,
|
|
45
|
+
"max-fraction-digits": u,
|
|
46
|
+
pt: {
|
|
47
|
+
root: "well-cell-input-number",
|
|
48
|
+
pcInput: { root: "well-cell-input well-cell-input-number text-right" }
|
|
49
|
+
},
|
|
50
|
+
"onUpdate:modelValue": S,
|
|
51
|
+
onKeydown: x
|
|
52
|
+
}, null, 8, ["model-value"])], 32));
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
//#endregion
|
|
56
|
+
export { d as default };
|
|
57
|
+
|
|
58
|
+
//# sourceMappingURL=GridUnitEditor.vue_vue_type_script_setup_true_lang.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GridUnitEditor.vue_vue_type_script_setup_true_lang.js","names":[],"sources":["../../../src/grid/cells/GridUnitEditor.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { nextTick, onMounted, ref } from 'vue';\nimport WellInputNumber from '../../components/WellInputNumber.vue';\nimport {\n isDisplayedValue,\n useWellUnits,\n type DisplayUnitType,\n} from '../../composables/useWellUnits';\n\nconst props = defineProps<{\n val?: unknown;\n save: (value: unknown, preventFocus?: boolean) => void;\n close: (focusNext?: boolean) => void;\n unitType: DisplayUnitType;\n}>();\n\ndefineOptions({ inheritAttrs: false });\n\nconst { toDisplay, toCanonical } = useWellUnits(() => props.unitType);\n\n/** Matches the `max-fraction-digits` of the input below. */\nconst MAX_FRACTION_DIGITS = 4;\n\nconst numRef = ref<{ $el: HTMLElement } | null>(null);\n\nconst raw =\n props.val !== undefined && props.val !== null && props.val !== ''\n ? Number(props.val)\n : null;\n\n/** Display value the editor opened with (null for an empty cell). */\nconst initialDisplay = raw != null && !isNaN(raw) ? toDisplay(raw) : null;\nconst localValue = ref<number | null>(initialDisplay);\n\nonMounted(() =>\n nextTick(() => {\n const el = numRef.value?.$el;\n (el?.querySelector('input') as HTMLInputElement | null)?.focus();\n }),\n);\n\nlet lastKeyWasEnter = false;\n\nfunction onKeydownCapture(e: KeyboardEvent) {\n lastKeyWasEnter = e.key === 'Enter';\n}\n\nfunction commit() {\n if (localValue.value === null) return;\n // `InputNumber` emits its rounded text on blur/Enter: an untouched edit\n // closes without saving, so the exact canonical value is kept.\n if (isDisplayedValue(localValue.value, initialDisplay, MAX_FRACTION_DIGITS)) {\n props.close(lastKeyWasEnter);\n return;\n }\n props.save(toCanonical(localValue.value), !lastKeyWasEnter);\n}\n\nfunction onKeydown(e: KeyboardEvent) {\n if (e.key === 'Enter') {\n e.stopPropagation();\n commit();\n } else if (e.key === 'Escape') {\n e.stopPropagation();\n props.close();\n }\n}\n\nfunction update(value: number | null) {\n localValue.value = value;\n commit();\n}\n</script>\n\n<template>\n <div class=\"contents\" @keydown.capture=\"onKeydownCapture\">\n <WellInputNumber\n ref=\"numRef\"\n :model-value=\"localValue\"\n :max-fraction-digits=\"MAX_FRACTION_DIGITS\"\n :pt=\"{\n root: 'well-cell-input-number',\n pcInput: { root: 'well-cell-input well-cell-input-number text-right' },\n }\"\n @update:model-value=\"update\"\n @keydown=\"onKeydown\"\n />\n </div>\n</template>\n"],"mappings":";;;;AAqBA,IAAM,IAAsB;;;;;;;;;;EAZ5B,IAAM,IAAQ,GASR,EAAE,cAAW,mBAAgB,QAAmB,EAAM,SAAS,EAK/D,IAAS,EAAiC,KAAK,EAE/C,IACJ,EAAM,QAAQ,KAAA,KAAa,EAAM,QAAQ,QAAQ,EAAM,QAAQ,KAC3D,OAAO,EAAM,IAAG,GAChB,MAGA,IAAiB,KAAO,QAAQ,CAAC,MAAM,EAAI,GAAG,EAAU,EAAI,GAAG,MAC/D,IAAa,EAAmB,EAAe;AAErD,UACE,QAAe;AAEb,KADW,EAAO,OAAO,MACpB,cAAc,QAAQ,GAA8B,OAAO;IAChE,CACH;EAED,IAAI,IAAkB;EAEtB,SAAS,EAAiB,GAAkB;AAC1C,OAAkB,EAAE,QAAQ;;EAG9B,SAAS,IAAS;AACZ,SAAW,UAAU,MAGzB;QAAI,EAAiB,EAAW,OAAO,GAAgB,EAAoB,EAAE;AAC3E,OAAM,MAAM,EAAgB;AAC5B;;AAEF,MAAM,KAAK,EAAY,EAAW,MAAM,EAAE,CAAC,EAAgB;;;EAG7D,SAAS,EAAU,GAAkB;AACnC,GAAI,EAAE,QAAQ,WACZ,EAAE,iBAAiB,EACnB,GAAQ,IACC,EAAE,QAAQ,aACnB,EAAE,iBAAiB,EACnB,EAAM,OAAO;;EAIjB,SAAS,EAAO,GAAsB;AAEpC,GADA,EAAW,QAAQ,GACnB,GAAQ;;yBAKR,EAYM,OAAA;GAZD,OAAM;GAA6B;MACtC,EAUE,GAAA;YATI;GAAJ,KAAI;GACH,eAAa,EAAA;GACb,uBAAqB;GACrB,IAAI;;;IAGJ;GACA,uBAAoB;GACX"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ColumnProp, GridPlugin } from '@revolist/revogrid';
|
|
2
|
+
/**
|
|
3
|
+
* Factory that returns a RevoGrid plugin class whose instance keeps one
|
|
4
|
+
* column filling all horizontal space left over by the other columns.
|
|
5
|
+
*
|
|
6
|
+
* `WellDataGrid` applies it to the column flagged `stretch: true`.
|
|
7
|
+
*
|
|
8
|
+
* Usage:
|
|
9
|
+
* plugins: [columnStretchPlugin('myProp', 120)]
|
|
10
|
+
*/
|
|
11
|
+
export declare function columnStretchPlugin(stretchProp: ColumnProp, minSize?: number): GridPlugin;
|
|
12
|
+
//# sourceMappingURL=columnStretchPlugin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"columnStretchPlugin.d.ts","sourceRoot":"","sources":["../../src/grid/columnStretchPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAiB,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAOhF;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,UAAU,EACvB,OAAO,SAAoB,GAC1B,UAAU,CAuDZ"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { BasePlugin as e } from "@revolist/vue3-datagrid";
|
|
2
|
+
//#region src/grid/columnStretchPlugin.ts
|
|
3
|
+
var t = 50, n = 150;
|
|
4
|
+
function r(r, i = t) {
|
|
5
|
+
return class extends e {
|
|
6
|
+
constructor(e, t) {
|
|
7
|
+
super(e, t), this.raf = null, this.ro = new ResizeObserver(() => this.schedule()), this.ro.observe(e), this.addEventListener("aftergridinit", () => this.schedule()), this.addEventListener("aftercolumnsset", () => this.schedule()), this.addEventListener("aftercolumnresize", () => this.schedule());
|
|
8
|
+
}
|
|
9
|
+
schedule() {
|
|
10
|
+
this.raf !== null && cancelAnimationFrame(this.raf), this.raf = requestAnimationFrame(() => {
|
|
11
|
+
this.raf = null, this.recalc();
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
recalc() {
|
|
15
|
+
let e = this.revogrid.clientWidth;
|
|
16
|
+
if (!e) return;
|
|
17
|
+
let t = this.providers.column.getColumns("all"), a = t.find((e) => e.prop === r);
|
|
18
|
+
if (!a) return;
|
|
19
|
+
let o = t.filter((e) => e.prop !== r).reduce((e, t) => e + (t.size ?? n), 0), s = Math.max(i, e - o);
|
|
20
|
+
if (s === a.size) return;
|
|
21
|
+
let c = a.pin ?? "rgCol", l = this.providers.column.getColumnIndexByProp(r, c);
|
|
22
|
+
l < 0 || (this.providers.column.updateColumn({
|
|
23
|
+
...a,
|
|
24
|
+
size: s
|
|
25
|
+
}, l), this.providers.dimension.setCustomSizes(c, { [l]: s }, !0));
|
|
26
|
+
}
|
|
27
|
+
destroy() {
|
|
28
|
+
this.ro.disconnect(), this.raf !== null && cancelAnimationFrame(this.raf), super.destroy();
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
//#endregion
|
|
33
|
+
export { r as columnStretchPlugin };
|
|
34
|
+
|
|
35
|
+
//# sourceMappingURL=columnStretchPlugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"columnStretchPlugin.js","names":[],"sources":["../../src/grid/columnStretchPlugin.ts"],"sourcesContent":["import type { ColumnProp, DimensionCols, GridPlugin } from '@revolist/revogrid';\nimport type { PluginProviders } from '@revolist/vue3-datagrid';\nimport { BasePlugin } from '@revolist/vue3-datagrid';\n\nconst FALLBACK_MIN_SIZE = 50;\nconst DEFAULT_COL_SIZE = 150;\n\n/**\n * Factory that returns a RevoGrid plugin class whose instance keeps one\n * column filling all horizontal space left over by the other columns.\n *\n * `WellDataGrid` applies it to the column flagged `stretch: true`.\n *\n * Usage:\n * plugins: [columnStretchPlugin('myProp', 120)]\n */\nexport function columnStretchPlugin(\n stretchProp: ColumnProp,\n minSize = FALLBACK_MIN_SIZE,\n): GridPlugin {\n return class extends BasePlugin {\n private ro: ResizeObserver;\n private raf: number | null = null;\n\n constructor(el: HTMLRevoGridElement, providers: PluginProviders) {\n super(el, providers);\n\n this.ro = new ResizeObserver(() => this.schedule());\n this.ro.observe(el);\n\n this.addEventListener('aftergridinit', () => this.schedule());\n this.addEventListener('aftercolumnsset', () => this.schedule());\n this.addEventListener('aftercolumnresize', () => this.schedule());\n }\n\n private schedule() {\n if (this.raf !== null) cancelAnimationFrame(this.raf);\n this.raf = requestAnimationFrame(() => {\n this.raf = null;\n this.recalc();\n });\n }\n\n private recalc() {\n const gridWidth = this.revogrid.clientWidth;\n if (!gridWidth) return;\n\n const all = this.providers.column.getColumns('all');\n const target = all.find(c => c.prop === stretchProp);\n if (!target) return;\n\n const otherWidth = all\n .filter(c => c.prop !== stretchProp)\n .reduce((sum, c) => sum + (c.size ?? DEFAULT_COL_SIZE), 0);\n\n const newSize = Math.max(minSize, gridWidth - otherWidth);\n if (newSize === target.size) return;\n\n const type = (target.pin ?? 'rgCol') as DimensionCols;\n const idx = this.providers.column.getColumnIndexByProp(stretchProp, type);\n if (idx < 0) return;\n\n // Update column metadata in the column store\n this.providers.column.updateColumn({ ...target, size: newSize }, idx);\n // Update visual width in the dimension store (this is what actually moves pixels)\n this.providers.dimension.setCustomSizes(type, { [idx]: newSize }, true);\n }\n\n destroy() {\n this.ro.disconnect();\n if (this.raf !== null) cancelAnimationFrame(this.raf);\n super.destroy();\n }\n };\n}\n"],"mappings":";;AAIA,IAAM,IAAoB,IACpB,IAAmB;AAWzB,SAAgB,EACd,GACA,IAAU,GACE;AACZ,QAAO,cAAc,EAAW;EAI9B,YAAY,GAAyB,GAA4B;AAQ/D,GAPA,MAAM,GAAI,EAAU,aAHO,MAK3B,KAAK,KAAK,IAAI,qBAAqB,KAAK,UAAU,CAAC,EACnD,KAAK,GAAG,QAAQ,EAAG,EAEnB,KAAK,iBAAiB,uBAAuB,KAAK,UAAU,CAAC,EAC7D,KAAK,iBAAiB,yBAAyB,KAAK,UAAU,CAAC,EAC/D,KAAK,iBAAiB,2BAA2B,KAAK,UAAU,CAAC;;EAGnE,WAAmB;AAEjB,GADI,KAAK,QAAQ,QAAM,qBAAqB,KAAK,IAAI,EACrD,KAAK,MAAM,4BAA4B;AAErC,IADA,KAAK,MAAM,MACX,KAAK,QAAQ;KACb;;EAGJ,SAAiB;GACf,IAAM,IAAY,KAAK,SAAS;AAChC,OAAI,CAAC,EAAW;GAEhB,IAAM,IAAM,KAAK,UAAU,OAAO,WAAW,MAAM,EAC7C,IAAS,EAAI,MAAK,MAAK,EAAE,SAAS,EAAY;AACpD,OAAI,CAAC,EAAQ;GAEb,IAAM,IAAa,EAChB,QAAO,MAAK,EAAE,SAAS,EAAY,CACnC,QAAQ,GAAK,MAAM,KAAO,EAAE,QAAQ,IAAmB,EAAE,EAEtD,IAAU,KAAK,IAAI,GAAS,IAAY,EAAW;AACzD,OAAI,MAAY,EAAO,KAAM;GAE7B,IAAM,IAAQ,EAAO,OAAO,SACtB,IAAM,KAAK,UAAU,OAAO,qBAAqB,GAAa,EAAK;AACrE,OAAM,MAGV,KAAK,UAAU,OAAO,aAAa;IAAE,GAAG;IAAQ,MAAM;IAAS,EAAE,EAAI,EAErE,KAAK,UAAU,UAAU,eAAe,GAAM,GAAG,IAAM,GAAS,EAAE,GAAK;;EAGzE,UAAU;AAGR,GAFA,KAAK,GAAG,YAAY,EAChB,KAAK,QAAQ,QAAM,qBAAqB,KAAK,IAAI,EACrD,MAAM,SAAS"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { HyperFunc, VNode } from '@revolist/revogrid';
|
|
2
|
+
import { Component } from 'vue';
|
|
3
|
+
/** What a template reads from RevoGrid's cell / header props. */
|
|
4
|
+
type TemplateProps = {
|
|
5
|
+
prop?: unknown;
|
|
6
|
+
rowIndex?: unknown;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* A RevoGrid `cellTemplate` / `columnTemplate` rendering a Vue component.
|
|
10
|
+
* Assignable to both (`CellTemplateProp` and `ColumnTemplateProp` fit
|
|
11
|
+
* `TemplateProps`).
|
|
12
|
+
*/
|
|
13
|
+
export type GridVueTemplate = (h: HyperFunc<VNode>, props: TemplateProps, addition?: unknown) => VNode;
|
|
14
|
+
/**
|
|
15
|
+
* Setup-bound `VGridVueTemplate`.
|
|
16
|
+
*
|
|
17
|
+
* RevoGrid renders each cell with `render()` into its own element, so a cell
|
|
18
|
+
* only sees what the captured component instance's **app context** provides
|
|
19
|
+
* (`app.provide`, i.e. `createWelldot` and PrimeVue) — never `provide()` of
|
|
20
|
+
* an ancestor component. `VGridVueTemplate` captures that instance when it
|
|
21
|
+
* is called, so calling it inside a `computed` that re-runs outside render
|
|
22
|
+
* yields cells with no app context at all.
|
|
23
|
+
*
|
|
24
|
+
* Call this in `setup`: the returned factory carries the instance captured
|
|
25
|
+
* there and can then be called anywhere (e.g. in a column `computed`). Extra
|
|
26
|
+
* props are merged under the cell props RevoGrid passes (`value`, `model`,
|
|
27
|
+
* `rowIndex`, `column`, …), exactly like `VGridVueTemplate`'s `customProps`.
|
|
28
|
+
*
|
|
29
|
+
* Every cell mounted through the factory is unmounted when the calling
|
|
30
|
+
* component unmounts: RevoGrid only tears a cell down when it removes that
|
|
31
|
+
* single cell, not when the whole grid goes away.
|
|
32
|
+
*/
|
|
33
|
+
export declare function useCellTemplate(): (component: Component, extraProps?: Record<string, unknown>) => GridVueTemplate;
|
|
34
|
+
export {};
|
|
35
|
+
//# sourceMappingURL=useCellTemplate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useCellTemplate.d.ts","sourceRoot":"","sources":["../../../src/grid/composables/useCellTemplate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3D,OAAO,EAAuC,KAAK,SAAS,EAAE,MAAM,KAAK,CAAC;AAE1E,iEAAiE;AACjE,KAAK,aAAa,GAAG;IAAE,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAE5D;;;;GAIG;AACH,MAAM,MAAM,eAAe,GAAG,CAC5B,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC,EACnB,KAAK,EAAE,aAAa,EACpB,QAAQ,CAAC,EAAE,OAAO,KACf,KAAK,CAAC;AAEX;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,eAAe,KAa3B,WAAW,SAAS,EACpB,aAAa,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KACnC,eAAe,CAsBnB"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { getCurrentInstance as e, onBeforeUnmount as t } from "vue";
|
|
2
|
+
import { VGridVueTemplateConstructor as n } from "@revolist/vue3-datagrid";
|
|
3
|
+
//#region src/grid/composables/useCellTemplate.ts
|
|
4
|
+
function r() {
|
|
5
|
+
let r = e(), i = /* @__PURE__ */ new Map();
|
|
6
|
+
return r && t(() => {
|
|
7
|
+
for (let e of i.values()) e();
|
|
8
|
+
i.clear();
|
|
9
|
+
}), function(e, t) {
|
|
10
|
+
return (a, o, s) => {
|
|
11
|
+
let c = {
|
|
12
|
+
...t,
|
|
13
|
+
...o
|
|
14
|
+
};
|
|
15
|
+
c.addition = s;
|
|
16
|
+
let l = null;
|
|
17
|
+
return a("span", {
|
|
18
|
+
key: `${String(o.prop)}-${Number(o.rowIndex) || 0}`,
|
|
19
|
+
ref: (t) => {
|
|
20
|
+
let a = l;
|
|
21
|
+
l = n(e, t, c, r, l), t ? i.set(t, l.destroy) : a?.el && i.delete(a.el);
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
//#endregion
|
|
28
|
+
export { r as useCellTemplate };
|
|
29
|
+
|
|
30
|
+
//# sourceMappingURL=useCellTemplate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useCellTemplate.js","names":[],"sources":["../../../src/grid/composables/useCellTemplate.ts"],"sourcesContent":["import type { HyperFunc, VNode } from '@revolist/revogrid';\nimport { VGridVueTemplateConstructor } from '@revolist/vue3-datagrid';\nimport { getCurrentInstance, onBeforeUnmount, type Component } from 'vue';\n\n/** What a template reads from RevoGrid's cell / header props. */\ntype TemplateProps = { prop?: unknown; rowIndex?: unknown };\n\n/**\n * A RevoGrid `cellTemplate` / `columnTemplate` rendering a Vue component.\n * Assignable to both (`CellTemplateProp` and `ColumnTemplateProp` fit\n * `TemplateProps`).\n */\nexport type GridVueTemplate = (\n h: HyperFunc<VNode>,\n props: TemplateProps,\n addition?: unknown,\n) => VNode;\n\n/**\n * Setup-bound `VGridVueTemplate`.\n *\n * RevoGrid renders each cell with `render()` into its own element, so a cell\n * only sees what the captured component instance's **app context** provides\n * (`app.provide`, i.e. `createWelldot` and PrimeVue) — never `provide()` of\n * an ancestor component. `VGridVueTemplate` captures that instance when it\n * is called, so calling it inside a `computed` that re-runs outside render\n * yields cells with no app context at all.\n *\n * Call this in `setup`: the returned factory carries the instance captured\n * there and can then be called anywhere (e.g. in a column `computed`). Extra\n * props are merged under the cell props RevoGrid passes (`value`, `model`,\n * `rowIndex`, `column`, …), exactly like `VGridVueTemplate`'s `customProps`.\n *\n * Every cell mounted through the factory is unmounted when the calling\n * component unmounts: RevoGrid only tears a cell down when it removes that\n * single cell, not when the whole grid goes away.\n */\nexport function useCellTemplate() {\n const instance = getCurrentInstance();\n /** Live cells, keyed by their host element, with their unmount. */\n const live = new Map<Element, () => void>();\n\n if (instance) {\n onBeforeUnmount(() => {\n for (const destroy of live.values()) destroy();\n live.clear();\n });\n }\n\n return function cellTemplate(\n component: Component,\n extraProps?: Record<string, unknown>,\n ): GridVueTemplate {\n return (h, props, addition) => {\n const merged: Record<string, unknown> = { ...extraProps, ...props };\n merged.addition = addition;\n let last: { destroy: () => void; el: Element | null } | null = null;\n return h('span', {\n key: `${String(props.prop)}-${Number(props.rowIndex) || 0}`,\n ref: (el: Element | null) => {\n const previous = last;\n last = VGridVueTemplateConstructor(\n component,\n el,\n merged,\n instance,\n last,\n );\n if (el) live.set(el, last.destroy);\n else if (previous?.el) live.delete(previous.el);\n },\n });\n };\n };\n}\n"],"mappings":";;;AAqCA,SAAgB,IAAkB;CAChC,IAAM,IAAW,GAAoB,EAE/B,oBAAO,IAAI,KAA0B;AAS3C,QAPI,KACF,QAAsB;AACpB,OAAK,IAAM,KAAW,EAAK,QAAQ,CAAE,IAAS;AAC9C,IAAK,OAAO;GACZ,EAGG,SACL,GACA,GACiB;AACjB,UAAQ,GAAG,GAAO,MAAa;GAC7B,IAAM,IAAkC;IAAE,GAAG;IAAY,GAAG;IAAO;AACnE,KAAO,WAAW;GAClB,IAAI,IAA2D;AAC/D,UAAO,EAAE,QAAQ;IACf,KAAK,GAAG,OAAO,EAAM,KAAK,CAAC,GAAG,OAAO,EAAM,SAAS,IAAI;IACxD,MAAM,MAAuB;KAC3B,IAAM,IAAW;AAQjB,KAPA,IAAO,EACL,GACA,GACA,GACA,GACA,EACD,EACG,IAAI,EAAK,IAAI,GAAI,EAAK,QAAQ,GACzB,GAAU,MAAI,EAAK,OAAO,EAAS,GAAG;;IAElD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useGridOverlayFocusGuard.d.ts","sourceRoot":"","sources":["../../../src/grid/composables/useGridOverlayFocusGuard.ts"],"names":[],"mappings":"AAQA,wBAAgB,wBAAwB;uBACP,KAAK;wBAAL,KAAK;EAMrC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
//#region src/grid/composables/useGridOverlayFocusGuard.ts
|
|
2
|
+
function e() {
|
|
3
|
+
let e = (e) => e.preventDefault();
|
|
4
|
+
return {
|
|
5
|
+
onMouseup: e,
|
|
6
|
+
onTouchend: e
|
|
7
|
+
};
|
|
8
|
+
}
|
|
9
|
+
//#endregion
|
|
10
|
+
export { e as useGridOverlayFocusGuard };
|
|
11
|
+
|
|
12
|
+
//# sourceMappingURL=useGridOverlayFocusGuard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useGridOverlayFocusGuard.js","names":[],"sources":["../../../src/grid/composables/useGridOverlayFocusGuard.ts"],"sourcesContent":["// RevoGrid clears the active cell's editor on any document-level\n// mouseup/touchend that wasn't already preventDefault()'d (see revo-grid's\n// mouseupHandle, which checks event.defaultPrevented before clearing focus).\n// PrimeVue overlays rendered with append-to=\"body\" live outside the grid's\n// DOM tree, so interacting with them (filter input, footer controls) bubbles\n// up unprevented and is mistaken for a click outside the grid. Spreading\n// these handlers onto the overlay's pt props keeps it open; preventDefault\n// (unlike stopPropagation) doesn't block the target's own click handling.\nexport function useGridOverlayFocusGuard() {\n const preventDefault = (event: Event) => event.preventDefault();\n\n return {\n onMouseup: preventDefault,\n onTouchend: preventDefault,\n };\n}\n"],"mappings":";AAQA,SAAgB,IAA2B;CACzC,IAAM,KAAkB,MAAiB,EAAM,gBAAgB;AAE/D,QAAO;EACL,WAAW;EACX,YAAY;EACb"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ComputedRef, MaybeRefOrGetter } from 'vue';
|
|
2
|
+
import { DisplayUnitType } from '../../composables/useWellUnits';
|
|
3
|
+
/**
|
|
4
|
+
* Display suffix of the configured unit for `unitType` (`m`, `ft`, `mm`,
|
|
5
|
+
* `in.`/`"`, `m³/h`, `kW`, `m³`…). Diameter inches depend on the language.
|
|
6
|
+
* `unitType` is a value, ref or getter.
|
|
7
|
+
*/
|
|
8
|
+
export declare function useUnitSuffix(unitType: MaybeRefOrGetter<DisplayUnitType>): ComputedRef<string>;
|
|
9
|
+
//# sourceMappingURL=useUnitSuffix.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useUnitSuffix.d.ts","sourceRoot":"","sources":["../../../src/grid/composables/useUnitSuffix.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACtB,MAAM,KAAK,CAAC;AACb,OAAO,EAEL,KAAK,eAAe,EACrB,MAAM,gCAAgC,CAAC;AAGxC;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,gBAAgB,CAAC,eAAe,CAAC,GAC1C,WAAW,CAAC,MAAM,CAAC,CAWrB"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { useWelldotConfig as e } from "../../config.js";
|
|
2
|
+
import { useWellUnits as t } from "../../composables/useWellUnits.js";
|
|
3
|
+
import { computed as n, toValue as r } from "vue";
|
|
4
|
+
import { resolveDiameterUnitLabel as i } from "@welldot/utils";
|
|
5
|
+
//#region src/grid/composables/useUnitSuffix.ts
|
|
6
|
+
function a(a) {
|
|
7
|
+
let o = e(), { unit: s } = t(a);
|
|
8
|
+
return n(() => r(a) === "diameter" ? i(s.value, o.locale.split("-")[0].toLowerCase()) : s.value);
|
|
9
|
+
}
|
|
10
|
+
//#endregion
|
|
11
|
+
export { a as useUnitSuffix };
|
|
12
|
+
|
|
13
|
+
//# sourceMappingURL=useUnitSuffix.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useUnitSuffix.js","names":[],"sources":["../../../src/grid/composables/useUnitSuffix.ts"],"sourcesContent":["import type { DiameterUnits } from '@welldot/core';\nimport { resolveDiameterUnitLabel } from '@welldot/utils';\nimport {\n computed,\n toValue,\n type ComputedRef,\n type MaybeRefOrGetter,\n} from 'vue';\nimport {\n useWellUnits,\n type DisplayUnitType,\n} from '../../composables/useWellUnits';\nimport { useWelldotConfig } from '../../config';\n\n/**\n * Display suffix of the configured unit for `unitType` (`m`, `ft`, `mm`,\n * `in.`/`\"`, `m³/h`, `kW`, `m³`…). Diameter inches depend on the language.\n * `unitType` is a value, ref or getter.\n */\nexport function useUnitSuffix(\n unitType: MaybeRefOrGetter<DisplayUnitType>,\n): ComputedRef<string> {\n const config = useWelldotConfig();\n const { unit } = useWellUnits(unitType);\n return computed(() =>\n toValue(unitType) === 'diameter'\n ? resolveDiameterUnitLabel(\n unit.value as DiameterUnits,\n config.locale.split('-')[0].toLowerCase(),\n )\n : unit.value,\n );\n}\n"],"mappings":";;;;;AAmBA,SAAgB,EACd,GACqB;CACrB,IAAM,IAAS,GAAkB,EAC3B,EAAE,YAAS,EAAa,EAAS;AACvC,QAAO,QACL,EAAQ,EAAS,KAAK,aAClB,EACE,EAAK,OACL,EAAO,OAAO,MAAM,IAAI,CAAC,GAAG,aAAa,CAC1C,GACD,EAAK,MACV"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { columnStretchPlugin } from './columnStretchPlugin';
|
|
2
|
+
export { useWellGridColumns } from './useWellGridColumns';
|
|
3
|
+
export type { UseWellGridColumnsOptions } from './useWellGridColumns';
|
|
4
|
+
/** Editable spreadsheet of a well feature array (`WellGridColumn`s, parts, labels). */
|
|
5
|
+
export { default as WellDataGrid } from './WellDataGrid';
|
|
6
|
+
export type { WellAddButtonProps, WellDeleteButtonProps, WellDragHandleProps, } from '../types';
|
|
7
|
+
export type { WellDataGridComponents, WellDataGridLabels, WellGridColumn, WellGridColumnBase, WellGridColumnType, WellGridOption, } from './types';
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/grid/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,YAAY,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AACtE,uFAAuF;AACvF,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAE7D,YAAY,EACV,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,UAAU,CAAC;AAClB,YAAY,EACV,sBAAsB,EACtB,kBAAkB,EAClB,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,GACf,MAAM,SAAS,CAAC"}
|