@j-solution/components 1.9.1 → 1.9.3
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 +6 -6
- package/assets/jwms-portal-frontend-BrNxcNUC.css +1 -0
- package/assets/styles/j-components.css +1 -1
- package/assets/styles/main.css +15 -5
- package/assets/styles/themes.css +46 -21
- package/components/atoms/JButton.vue.cjs +1 -1
- package/components/atoms/JButton.vue.js +1 -1
- package/components/atoms/JButton.vue2.cjs.map +1 -1
- package/components/atoms/JButton.vue2.js.map +1 -1
- package/components/atoms/JGrid.vue.cjs +1 -1
- package/components/atoms/JGrid.vue.js +2 -2
- package/components/atoms/JGrid.vue2.cjs +1 -1
- package/components/atoms/JGrid.vue2.cjs.map +1 -1
- package/components/atoms/JGrid.vue2.js +140 -112
- package/components/atoms/JGrid.vue2.js.map +1 -1
- package/components/atoms/JSplitter.vue.cjs +1 -1
- package/components/atoms/JSplitter.vue.js +2 -2
- package/components/atoms/JSplitter.vue2.cjs +1 -1
- package/components/atoms/JSplitter.vue2.cjs.map +1 -1
- package/components/atoms/JSplitter.vue2.js +1 -1
- package/components/atoms/JSplitter.vue2.js.map +1 -1
- package/components/molecules/JTabs.vue.cjs +1 -1
- package/components/molecules/JTabs.vue.js +2 -2
- package/components/molecules/JTabs.vue2.cjs +1 -1
- package/components/molecules/JTabs.vue2.cjs.map +1 -1
- package/components/molecules/JTabs.vue2.js +9 -9
- package/components/molecules/JTabs.vue2.js.map +1 -1
- package/components/organisms/JDynamicForm.vue.cjs +1 -1
- package/components/organisms/JDynamicForm.vue.js +2 -2
- package/components/organisms/JDynamicForm.vue2.cjs +1 -1
- package/components/organisms/JDynamicForm.vue2.cjs.map +1 -1
- package/components/organisms/JDynamicForm.vue2.js +5 -5
- package/components/organisms/JDynamicForm.vue2.js.map +1 -1
- package/components/organisms/JFilterBar.vue.cjs +1 -1
- package/components/organisms/JFilterBar.vue.js +2 -2
- package/components/organisms/JFilterBar.vue2.cjs +1 -1
- package/components/organisms/JFilterBar.vue2.cjs.map +1 -1
- package/components/organisms/JFilterBar.vue2.js +2 -2
- package/components/organisms/JFilterBar.vue2.js.map +1 -1
- package/components/organisms/JPageContainer.vue.cjs +1 -1
- package/components/organisms/JPageContainer.vue.cjs.map +1 -1
- package/components/organisms/JPageContainer.vue.js +1 -1
- package/components/organisms/JPageContainer.vue.js.map +1 -1
- package/components/organisms/JSearchPanel.vue.cjs +1 -1
- package/components/organisms/JSearchPanel.vue.js +7 -7
- package/components/organisms/JSearchPanel.vue2.cjs +1 -1
- package/components/organisms/JSearchPanel.vue2.cjs.map +1 -1
- package/components/organisms/JSearchPanel.vue2.js +4 -4
- package/components/organisms/JSearchPanel.vue2.js.map +1 -1
- package/components/shadcn/index.cjs +1 -1
- package/components/shadcn/index.cjs.map +1 -1
- package/components/shadcn/index.js +6 -6
- package/components/shadcn/index.js.map +1 -1
- package/components/shadcn/resizable/ResizableHandle.vue.cjs +1 -1
- package/components/shadcn/resizable/ResizableHandle.vue.cjs.map +1 -1
- package/components/shadcn/resizable/ResizableHandle.vue.js +3 -3
- package/components/shadcn/resizable/ResizableHandle.vue.js.map +1 -1
- package/package.json +1 -1
- package/types/index.d.ts +87 -6
- package/assets/jwms-portal-frontend-Di6lStzZ.css +0 -1
|
@@ -27,9 +27,9 @@ import q from "../shadcn/Card.vue.js";
|
|
|
27
27
|
import G from "../shadcn/CardHeader.vue.js";
|
|
28
28
|
import H from "../shadcn/CardTitle.vue.js";
|
|
29
29
|
import K from "../shadcn/CardContent.vue.js";
|
|
30
|
-
const Q = { class: "flex items-center justify-between" }, W = { class: "flex items-center gap-
|
|
30
|
+
const Q = { class: "flex items-center justify-between" }, W = { class: "flex items-center gap-2 flex-1" }, Z = {
|
|
31
31
|
key: 2,
|
|
32
|
-
class: "flex flex-wrap items-center gap-
|
|
32
|
+
class: "flex flex-wrap items-center gap-1.5 ml-1.5"
|
|
33
33
|
}, ee = ["onClick", "aria-label"], Be = /* @__PURE__ */ L({
|
|
34
34
|
__name: "JSearchPanel",
|
|
35
35
|
props: {
|
|
@@ -100,7 +100,7 @@ const Q = { class: "flex items-center justify-between" }, W = { class: "flex ite
|
|
|
100
100
|
}
|
|
101
101
|
return (t, l) => (n(), v(i(q), { class: "w-full" }, {
|
|
102
102
|
default: m(() => [
|
|
103
|
-
c(i(G), { class: "pt-
|
|
103
|
+
c(i(G), { class: "pt-2.5 pb-2 px-3.5" }, {
|
|
104
104
|
default: m(() => [
|
|
105
105
|
d("div", Q, [
|
|
106
106
|
d("div", W, [
|
|
@@ -159,7 +159,7 @@ const Q = { class: "flex items-center justify-between" }, W = { class: "flex ite
|
|
|
159
159
|
]),
|
|
160
160
|
_: 1
|
|
161
161
|
}),
|
|
162
|
-
R(c(i(K), { class: "px-
|
|
162
|
+
R(c(i(K), { class: "px-3.5 pb-3 pt-0" }, {
|
|
163
163
|
default: m(() => [
|
|
164
164
|
c(Y, {
|
|
165
165
|
ref_key: "dynamicFormRef",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JSearchPanel.vue2.js","sources":["../../../../src/components/organisms/JSearchPanel.vue"],"sourcesContent":["<template>\n <Card class=\"w-full\">\n <!-- 헤더: 제목, Badge 목록, 초기화 버튼 -->\n <CardHeader class=\"pt-4 pb-3 px-6\">\n <div class=\"flex items-center justify-between\">\n <div class=\"flex items-center gap-3 flex-1\">\n <button\n v-if=\"collapsible\"\n type=\"button\"\n @click=\"isExpanded = !isExpanded\"\n class=\"flex items-center gap-2 font-semibold hover:text-primary transition-colors\"\n >\n <ChevronDown\n :class=\"['h-4 w-4 transition-transform', isExpanded ? 'rotate-0' : '-rotate-90']\"\n />\n {{ title }}\n </button>\n <CardTitle v-else class=\"mb-0\">{{ title }}</CardTitle>\n \n <!-- 조건 Badge 목록 -->\n <div v-if=\"conditionBadges.length > 0\" class=\"flex flex-wrap items-center gap-2 ml-2\">\n <JBadge\n v-for=\"badge in conditionBadges\"\n :key=\"badge.fieldName\"\n variant=\"secondary\"\n size=\"sm\"\n class=\"flex items-center gap-1.5 pr-1\"\n >\n <span>{{ badge.label }}: {{ badge.value }}</span>\n <button\n type=\"button\"\n @click.stop=\"handleFieldReset(badge.fieldName)\"\n class=\"h-4 w-4 rounded-full hover:bg-destructive/20 hover:text-destructive transition-colors flex items-center justify-center\"\n :aria-label=\"`${badge.label} 조건 제거`\"\n >\n <X class=\"h-3 w-3\" />\n </button>\n </JBadge>\n </div>\n </div>\n \n <JButton\n variant=\"outline\"\n size=\"sm\"\n @click.stop=\"handleReset\"\n >\n 초기화\n </JButton>\n </div>\n </CardHeader>\n \n <!-- 폼 내용 -->\n <CardContent v-show=\"isExpanded || !collapsible\" class=\"px-6 pb-6 pt-0\">\n <JDynamicForm\n ref=\"dynamicFormRef\"\n :schema=\"schema\"\n :model-value=\"localModelValue\"\n @update:model-value=\"handleFormValueUpdate\"\n @submit=\"handleSubmit\"\n />\n </CardContent>\n </Card>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, ref, reactive, watch } from 'vue'\nimport { ChevronDown, X } from 'lucide-vue-next'\nimport { Card, CardHeader, CardTitle, CardContent } from '@/components/shadcn'\nimport { JButton, JBadge } from '@/components/atoms'\nimport JDynamicForm from './JDynamicForm.vue'\nimport type { FormSchema, DynamicFormField } from '@/types/dynamic-form'\nimport type { ComponentPublicInstance } from 'vue'\n\ninterface ConditionBadge {\n fieldName: string\n label: string\n value: string\n}\n\nexport interface JSearchPanelProps {\n /** 패널 제목 */\n title?: string\n /** JDynamicForm에 전달할 FormSchema */\n schema: FormSchema\n /** JDynamicForm의 v-model 값 */\n modelValue?: Record<string, any>\n /** 기본 접힘 상태 */\n defaultCollapsed?: boolean\n /** 접기/펼치기 가능 여부 */\n collapsible?: boolean\n}\n\nconst props = withDefaults(defineProps<JSearchPanelProps>(), {\n title: '조회조건',\n defaultCollapsed: false,\n collapsible: true,\n})\n\nconst emit = defineEmits<{\n 'update:modelValue': [value: Record<string, any>]\n 'submit': [values: Record<string, any>]\n 'reset': []\n}>()\n\nconst dynamicFormRef = ref<ComponentPublicInstance & { reset: () => void } | null>(null)\nconst isExpanded = ref(!props.defaultCollapsed)\n\n// 로컬 modelValue - reactive로 관리하여 양방향 바인딩\nconst localModelValue = reactive<Record<string, any>>(props.modelValue ? { ...props.modelValue } : {})\n\n// 내부 변경인지 외부 변경인지 구분하는 플래그\nlet isInternalUpdate = false\n\n// props.modelValue 변경 시 localModelValue 동기화 (외부 변경)\nwatch(\n () => props.modelValue,\n (newValue) => {\n if (newValue && !isInternalUpdate) {\n // 기존 키 중 새 값에 없는 것은 삭제\n Object.keys(localModelValue).forEach(key => {\n if (!(key in newValue)) {\n delete localModelValue[key]\n }\n })\n // 새 값으로 업데이트\n Object.assign(localModelValue, newValue)\n }\n isInternalUpdate = false\n },\n { deep: true, immediate: true }\n)\n\n// JDynamicForm에서 값이 변경되었을 때 처리\nfunction handleFormValueUpdate(value: Record<string, any>) {\n // JDynamicForm에서 emit된 값을 localModelValue에 반영\n isInternalUpdate = true\n Object.assign(localModelValue, value)\n // 상위로 emit\n emit('update:modelValue', { ...value })\n}\n\n// 모든 필드 가져오기\nconst allFields = computed((): DynamicFormField[] => {\n if (!props.schema) return []\n \n const fields: DynamicFormField[] = []\n if (props.schema.type === 'simple' && props.schema.fields) {\n fields.push(...props.schema.fields)\n } else if (props.schema.type === 'sectioned' && props.schema.sections) {\n props.schema.sections.forEach(section => {\n if (section.fields) fields.push(...section.fields)\n })\n } else if (props.schema.type === 'wizard' && props.schema.steps) {\n props.schema.steps.forEach(step => {\n if (step.fields) fields.push(...step.fields)\n })\n }\n return fields\n})\n\n// 조건 Badge 목록 생성\nconst conditionBadges = computed((): ConditionBadge[] => {\n if (!localModelValue || !props.schema) {\n return []\n }\n\n const badges: ConditionBadge[] = []\n const formState = localModelValue\n\n allFields.value.forEach((field) => {\n const value = formState[field.controlName]\n \n // 빈 값 체크 (빈 문자열, null, undefined, 'ALL', 'SELECT' 제외)\n if (\n value === undefined ||\n value === null ||\n value === '' ||\n value === 'ALL' ||\n value === 'SELECT' ||\n (field.type === 'checkbox' && value === 'N') ||\n (field.type === 'switch' && value === 'N')\n ) {\n return\n }\n\n // 필드 타입에 따라 값 표시\n let displayValue = String(value)\n\n // 콤보/검색콤보인 경우 옵션의 label 찾기\n if ((field.type === 'combo' || field.type === 'searchcombo') && field.options) {\n const option = field.options.find(opt => opt.value === value)\n if (option) {\n displayValue = option.label\n }\n }\n\n // 체크박스/스위치는 'Y'일 때만 표시\n if (field.type === 'checkbox' || field.type === 'switch') {\n if (value === 'Y') {\n badges.push({\n fieldName: field.controlName,\n label: field.label,\n value: field.inlineLabel || field.label\n })\n }\n } else {\n badges.push({\n fieldName: field.controlName,\n label: field.label,\n value: displayValue\n })\n }\n })\n\n return badges\n})\n\n// submit 핸들러\nfunction handleSubmit(values: Record<string, any>) {\n emit('submit', values)\n}\n\n// 전체 초기화 핸들러\nfunction handleReset() {\n if (dynamicFormRef.value) {\n dynamicFormRef.value.reset()\n emit('reset')\n }\n}\n\n// 필드별 초기화 핸들러\nfunction handleFieldReset(fieldName: string) {\n if (!localModelValue || !props.schema) return\n \n const field = allFields.value.find(f => f.controlName === fieldName)\n \n if (field) {\n // 필드 타입에 따라 초기값 설정 - reactive 객체 직접 수정\n if (field.type === 'checkbox' || field.type === 'switch') {\n localModelValue[fieldName] = 'N'\n } else {\n localModelValue[fieldName] = ''\n }\n \n // localModelValue 변경 후 상위로 emit하여 JDynamicForm에도 반영\n isInternalUpdate = true\n emit('update:modelValue', { ...localModelValue })\n }\n}\n</script>\n\n<style scoped>\n/* 필요시 스타일 추가 */\n</style>\n\n"],"names":["props","__props","emit","__emit","dynamicFormRef","ref","isExpanded","localModelValue","reactive","isInternalUpdate","watch","newValue","key","handleFormValueUpdate","value","allFields","computed","fields","section","step","conditionBadges","badges","formState","field","displayValue","option","opt","handleSubmit","values","handleReset","handleFieldReset","fieldName","f","_createBlock","_unref","Card","_createVNode","CardHeader","_createElementVNode","_hoisted_1","_hoisted_2","_createElementBlock","_cache","$event","ChevronDown","_createTextVNode","CardTitle","_openBlock","_hoisted_3","_Fragment","_renderList","badge","JBadge","_toDisplayString","_withModifiers","X","JButton","CardContent","JDynamicForm","_vShow"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"JSearchPanel.vue2.js","sources":["../../../../src/components/organisms/JSearchPanel.vue"],"sourcesContent":["<template>\n <Card class=\"w-full\">\n <!-- 헤더: 제목, Badge 목록, 초기화 버튼 -->\n <CardHeader class=\"pt-2.5 pb-2 px-3.5\">\n <div class=\"flex items-center justify-between\">\n <div class=\"flex items-center gap-2 flex-1\">\n <button\n v-if=\"collapsible\"\n type=\"button\"\n @click=\"isExpanded = !isExpanded\"\n class=\"flex items-center gap-2 font-semibold hover:text-primary transition-colors\"\n >\n <ChevronDown\n :class=\"['h-4 w-4 transition-transform', isExpanded ? 'rotate-0' : '-rotate-90']\"\n />\n {{ title }}\n </button>\n <CardTitle v-else class=\"mb-0\">{{ title }}</CardTitle>\n \n <!-- 조건 Badge 목록 -->\n <div v-if=\"conditionBadges.length > 0\" class=\"flex flex-wrap items-center gap-1.5 ml-1.5\">\n <JBadge\n v-for=\"badge in conditionBadges\"\n :key=\"badge.fieldName\"\n variant=\"secondary\"\n size=\"sm\"\n class=\"flex items-center gap-1.5 pr-1\"\n >\n <span>{{ badge.label }}: {{ badge.value }}</span>\n <button\n type=\"button\"\n @click.stop=\"handleFieldReset(badge.fieldName)\"\n class=\"h-4 w-4 rounded-full hover:bg-destructive/20 hover:text-destructive transition-colors flex items-center justify-center\"\n :aria-label=\"`${badge.label} 조건 제거`\"\n >\n <X class=\"h-3 w-3\" />\n </button>\n </JBadge>\n </div>\n </div>\n \n <JButton\n variant=\"outline\"\n size=\"sm\"\n @click.stop=\"handleReset\"\n >\n 초기화\n </JButton>\n </div>\n </CardHeader>\n \n <!-- 폼 내용 -->\n <CardContent v-show=\"isExpanded || !collapsible\" class=\"px-3.5 pb-3 pt-0\">\n <JDynamicForm\n ref=\"dynamicFormRef\"\n :schema=\"schema\"\n :model-value=\"localModelValue\"\n @update:model-value=\"handleFormValueUpdate\"\n @submit=\"handleSubmit\"\n />\n </CardContent>\n </Card>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, ref, reactive, watch } from 'vue'\nimport { ChevronDown, X } from 'lucide-vue-next'\nimport { Card, CardHeader, CardTitle, CardContent } from '@/components/shadcn'\nimport { JButton, JBadge } from '@/components/atoms'\nimport JDynamicForm from './JDynamicForm.vue'\nimport type { FormSchema, DynamicFormField } from '@/types/dynamic-form'\nimport type { ComponentPublicInstance } from 'vue'\n\ninterface ConditionBadge {\n fieldName: string\n label: string\n value: string\n}\n\nexport interface JSearchPanelProps {\n /** 패널 제목 */\n title?: string\n /** JDynamicForm에 전달할 FormSchema */\n schema: FormSchema\n /** JDynamicForm의 v-model 값 */\n modelValue?: Record<string, any>\n /** 기본 접힘 상태 */\n defaultCollapsed?: boolean\n /** 접기/펼치기 가능 여부 */\n collapsible?: boolean\n}\n\nconst props = withDefaults(defineProps<JSearchPanelProps>(), {\n title: '조회조건',\n defaultCollapsed: false,\n collapsible: true,\n})\n\nconst emit = defineEmits<{\n 'update:modelValue': [value: Record<string, any>]\n 'submit': [values: Record<string, any>]\n 'reset': []\n}>()\n\nconst dynamicFormRef = ref<ComponentPublicInstance & { reset: () => void } | null>(null)\nconst isExpanded = ref(!props.defaultCollapsed)\n\n// 로컬 modelValue - reactive로 관리하여 양방향 바인딩\nconst localModelValue = reactive<Record<string, any>>(props.modelValue ? { ...props.modelValue } : {})\n\n// 내부 변경인지 외부 변경인지 구분하는 플래그\nlet isInternalUpdate = false\n\n// props.modelValue 변경 시 localModelValue 동기화 (외부 변경)\nwatch(\n () => props.modelValue,\n (newValue) => {\n if (newValue && !isInternalUpdate) {\n // 기존 키 중 새 값에 없는 것은 삭제\n Object.keys(localModelValue).forEach(key => {\n if (!(key in newValue)) {\n delete localModelValue[key]\n }\n })\n // 새 값으로 업데이트\n Object.assign(localModelValue, newValue)\n }\n isInternalUpdate = false\n },\n { deep: true, immediate: true }\n)\n\n// JDynamicForm에서 값이 변경되었을 때 처리\nfunction handleFormValueUpdate(value: Record<string, any>) {\n // JDynamicForm에서 emit된 값을 localModelValue에 반영\n isInternalUpdate = true\n Object.assign(localModelValue, value)\n // 상위로 emit\n emit('update:modelValue', { ...value })\n}\n\n// 모든 필드 가져오기\nconst allFields = computed((): DynamicFormField[] => {\n if (!props.schema) return []\n \n const fields: DynamicFormField[] = []\n if (props.schema.type === 'simple' && props.schema.fields) {\n fields.push(...props.schema.fields)\n } else if (props.schema.type === 'sectioned' && props.schema.sections) {\n props.schema.sections.forEach(section => {\n if (section.fields) fields.push(...section.fields)\n })\n } else if (props.schema.type === 'wizard' && props.schema.steps) {\n props.schema.steps.forEach(step => {\n if (step.fields) fields.push(...step.fields)\n })\n }\n return fields\n})\n\n// 조건 Badge 목록 생성\nconst conditionBadges = computed((): ConditionBadge[] => {\n if (!localModelValue || !props.schema) {\n return []\n }\n\n const badges: ConditionBadge[] = []\n const formState = localModelValue\n\n allFields.value.forEach((field) => {\n const value = formState[field.controlName]\n \n // 빈 값 체크 (빈 문자열, null, undefined, 'ALL', 'SELECT' 제외)\n if (\n value === undefined ||\n value === null ||\n value === '' ||\n value === 'ALL' ||\n value === 'SELECT' ||\n (field.type === 'checkbox' && value === 'N') ||\n (field.type === 'switch' && value === 'N')\n ) {\n return\n }\n\n // 필드 타입에 따라 값 표시\n let displayValue = String(value)\n\n // 콤보/검색콤보인 경우 옵션의 label 찾기\n if ((field.type === 'combo' || field.type === 'searchcombo') && field.options) {\n const option = field.options.find(opt => opt.value === value)\n if (option) {\n displayValue = option.label\n }\n }\n\n // 체크박스/스위치는 'Y'일 때만 표시\n if (field.type === 'checkbox' || field.type === 'switch') {\n if (value === 'Y') {\n badges.push({\n fieldName: field.controlName,\n label: field.label,\n value: field.inlineLabel || field.label\n })\n }\n } else {\n badges.push({\n fieldName: field.controlName,\n label: field.label,\n value: displayValue\n })\n }\n })\n\n return badges\n})\n\n// submit 핸들러\nfunction handleSubmit(values: Record<string, any>) {\n emit('submit', values)\n}\n\n// 전체 초기화 핸들러\nfunction handleReset() {\n if (dynamicFormRef.value) {\n dynamicFormRef.value.reset()\n emit('reset')\n }\n}\n\n// 필드별 초기화 핸들러\nfunction handleFieldReset(fieldName: string) {\n if (!localModelValue || !props.schema) return\n \n const field = allFields.value.find(f => f.controlName === fieldName)\n \n if (field) {\n // 필드 타입에 따라 초기값 설정 - reactive 객체 직접 수정\n if (field.type === 'checkbox' || field.type === 'switch') {\n localModelValue[fieldName] = 'N'\n } else {\n localModelValue[fieldName] = ''\n }\n \n // localModelValue 변경 후 상위로 emit하여 JDynamicForm에도 반영\n isInternalUpdate = true\n emit('update:modelValue', { ...localModelValue })\n }\n}\n</script>\n\n<style scoped>\n/* 필요시 스타일 추가 */\n</style>\n"],"names":["props","__props","emit","__emit","dynamicFormRef","ref","isExpanded","localModelValue","reactive","isInternalUpdate","watch","newValue","key","handleFormValueUpdate","value","allFields","computed","fields","section","step","conditionBadges","badges","formState","field","displayValue","option","opt","handleSubmit","values","handleReset","handleFieldReset","fieldName","f","_createBlock","_unref","Card","_createVNode","CardHeader","_createElementVNode","_hoisted_1","_hoisted_2","_createElementBlock","_cache","$event","ChevronDown","_createTextVNode","CardTitle","_openBlock","_hoisted_3","_Fragment","_renderList","badge","JBadge","_toDisplayString","_withModifiers","X","JButton","CardContent","JDynamicForm","_vShow"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("class-variance-authority");require("vue");require("reka-ui");require("@vueuse/core");require("clsx");require("tailwind-merge");require("lucide-vue-next");require("./alert-variants.cjs");require("./avatar-variants.cjs");require("./badge-variants.cjs");require("./button-group-variants.cjs");require("vue-sonner");const r=e.cva("inline-flex items-center justify-center whitespace-nowrap rounded-sm text-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("class-variance-authority");require("vue");require("reka-ui");require("@vueuse/core");require("clsx");require("tailwind-merge");require("lucide-vue-next");require("./alert-variants.cjs");require("./avatar-variants.cjs");require("./badge-variants.cjs");require("./button-group-variants.cjs");require("vue-sonner");const r=e.cva("inline-flex items-center justify-center whitespace-nowrap rounded-sm text-xs font-medium ring-offset-background transition-colors duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground hover:bg-destructive/90",outline:"border border-input bg-background hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{xs:"h-6 rounded-sm px-2 text-xs",sm:"h-7 rounded-sm px-2.5 text-xs",md:"h-8 px-3 text-sm",lg:"h-9 rounded-sm px-4 text-sm",icon:"h-8 w-8"}},defaultVariants:{variant:"default",size:"sm"}});exports.buttonVariants=r;
|
|
2
2
|
//# sourceMappingURL=index.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../../../../src/components/shadcn/index.ts"],"sourcesContent":["// Button variants\nimport type { VariantProps } from \"class-variance-authority\"\nimport { cva } from \"class-variance-authority\"\n\nexport const buttonVariants = cva(\n \"inline-flex items-center justify-center whitespace-nowrap rounded-sm text-
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../../../src/components/shadcn/index.ts"],"sourcesContent":["// Button variants\nimport type { VariantProps } from \"class-variance-authority\"\nimport { cva } from \"class-variance-authority\"\n\nexport const buttonVariants = cva(\n \"inline-flex items-center justify-center whitespace-nowrap rounded-sm text-xs font-medium ring-offset-background transition-colors duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50\",\n {\n variants: {\n variant: {\n default: \"bg-primary text-primary-foreground hover:bg-primary/90\",\n destructive:\n \"bg-destructive text-destructive-foreground hover:bg-destructive/90\",\n outline:\n \"border border-input bg-background hover:bg-accent hover:text-accent-foreground\",\n secondary:\n \"bg-secondary text-secondary-foreground hover:bg-secondary/80\",\n ghost: \"hover:bg-accent hover:text-accent-foreground\",\n link: \"text-primary underline-offset-4 hover:underline\",\n },\n size: {\n xs: \"h-6 rounded-sm px-2 text-xs\",\n sm: \"h-7 rounded-sm px-2.5 text-xs\",\n md: \"h-8 px-3 text-sm\",\n lg: \"h-9 rounded-sm px-4 text-sm\",\n icon: \"h-8 w-8\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"sm\",\n },\n },\n)\n\nexport type ButtonVariants = VariantProps<typeof buttonVariants>\n\n// Accordion\nexport { default as Accordion } from \"./Accordion.vue\"\nexport { default as AccordionContent } from \"./AccordionContent.vue\"\nexport { default as AccordionItem } from \"./AccordionItem.vue\"\nexport { default as AccordionTrigger } from \"./AccordionTrigger.vue\"\n\n// Alert\nexport { default as Alert } from \"./Alert.vue\"\nexport { default as AlertDescription } from \"./AlertDescription.vue\"\nexport { default as AlertTitle } from \"./AlertTitle.vue\"\n\n// Avatar\nexport { default as Avatar } from \"./Avatar.vue\"\nexport { default as AvatarFallback } from \"./AvatarFallback.vue\"\nexport { default as AvatarImage } from \"./AvatarImage.vue\"\n\n// Badge\nexport { default as Badge } from \"./Badge.vue\"\n\n// Calendar\nexport { default as Calendar } from \"./Calendar.vue\"\nexport { default as CalendarCell } from \"./CalendarCell.vue\"\nexport { default as CalendarCellTrigger } from \"./CalendarCellTrigger.vue\"\nexport { default as CalendarGrid } from \"./CalendarGrid.vue\"\nexport { default as CalendarGridBody } from \"./CalendarGridBody.vue\"\nexport { default as CalendarGridHead } from \"./CalendarGridHead.vue\"\nexport { default as CalendarGridRow } from \"./CalendarGridRow.vue\"\nexport { default as CalendarHeadCell } from \"./CalendarHeadCell.vue\"\nexport { default as CalendarHeader } from \"./CalendarHeader.vue\"\nexport { default as CalendarHeading } from \"./CalendarHeading.vue\"\nexport { default as CalendarNextButton } from \"./CalendarNextButton.vue\"\nexport { default as CalendarPrevButton } from \"./CalendarPrevButton.vue\"\n\n// Card\nexport { default as Card } from \"./Card.vue\"\nexport { default as CardContent } from \"./CardContent.vue\"\nexport { default as CardDescription } from \"./CardDescription.vue\"\nexport { default as CardFooter } from \"./CardFooter.vue\"\nexport { default as CardHeader } from \"./CardHeader.vue\"\nexport { default as CardTitle } from \"./CardTitle.vue\"\n\n// Checkbox\nexport { default as Checkbox } from \"./Checkbox.vue\"\n\n// Combobox\nexport { default as Combobox } from \"./Combobox.vue\"\nexport { default as ComboboxAnchor } from \"./ComboboxAnchor.vue\"\nexport { default as ComboboxEmpty } from \"./ComboboxEmpty.vue\"\nexport { default as ComboboxGroup } from \"./ComboboxGroup.vue\"\nexport { default as ComboboxInput } from \"./ComboboxInput.vue\"\nexport { default as ComboboxItem } from \"./ComboboxItem.vue\"\nexport { default as ComboboxList } from \"./ComboboxList.vue\"\nexport { default as ComboboxSeparator } from \"./ComboboxSeparator.vue\"\nexport { default as ComboboxTrigger } from \"./ComboboxTrigger.vue\"\n\n// ContextMenu\nexport { default as ContextMenu } from \"./ContextMenu.vue\"\nexport { default as ContextMenuCheckboxItem } from \"./ContextMenuCheckboxItem.vue\"\nexport { default as ContextMenuContent } from \"./ContextMenuContent.vue\"\nexport { default as ContextMenuGroup } from \"./ContextMenuGroup.vue\"\nexport { default as ContextMenuItem } from \"./ContextMenuItem.vue\"\nexport { default as ContextMenuLabel } from \"./ContextMenuLabel.vue\"\nexport { default as ContextMenuPortal } from \"./ContextMenuPortal.vue\"\nexport { default as ContextMenuRadioGroup } from \"./ContextMenuRadioGroup.vue\"\nexport { default as ContextMenuRadioItem } from \"./ContextMenuRadioItem.vue\"\nexport { default as ContextMenuSeparator } from \"./ContextMenuSeparator.vue\"\nexport { default as ContextMenuShortcut } from \"./ContextMenuShortcut.vue\"\nexport { default as ContextMenuSub } from \"./ContextMenuSub.vue\"\nexport { default as ContextMenuSubContent } from \"./ContextMenuSubContent.vue\"\nexport { default as ContextMenuSubTrigger } from \"./ContextMenuSubTrigger.vue\"\nexport { default as ContextMenuTrigger } from \"./ContextMenuTrigger.vue\"\n\n// Dialog\nexport { default as Dialog } from \"./Dialog.vue\"\nexport { default as DialogBody } from \"./DialogBody.vue\"\nexport { default as DialogContent } from \"./DialogContent.vue\"\nexport { default as DialogDescription } from \"./DialogDescription.vue\"\nexport { default as DialogFooter } from \"./DialogFooter.vue\"\nexport { default as DialogHeader } from \"./DialogHeader.vue\"\nexport { default as DialogTitle } from \"./DialogTitle.vue\"\n\n// Field\nexport { default as Field } from \"./Field.vue\"\nexport { default as FieldContent } from \"./FieldContent.vue\"\nexport { default as FieldDescription } from \"./FieldDescription.vue\"\nexport { default as FieldError } from \"./FieldError.vue\"\nexport { default as FieldGroup } from \"./FieldGroup.vue\"\nexport { default as FieldLabel } from \"./FieldLabel.vue\"\nexport { default as FieldLegend } from \"./FieldLegend.vue\"\nexport { default as FieldSeparator } from \"./FieldSeparator.vue\"\nexport { default as FieldSet } from \"./FieldSet.vue\"\nexport { default as FieldTitle } from \"./FieldTitle.vue\"\n\n// ButtonGroup\nexport { default as ButtonGroup } from \"./ButtonGroup.vue\"\nexport { default as ButtonGroupSeparator } from \"./ButtonGroupSeparator.vue\"\nexport { default as ButtonGroupText } from \"./ButtonGroupText.vue\"\n\n// Input\nexport { default as Button } from \"./Button.vue\"\nexport { default as Input } from \"./Input.vue\"\n\n// Kbd\nexport { default as Kbd } from \"./Kbd.vue\"\nexport { default as KbdGroup } from \"./KbdGroup.vue\"\n\n// Label\nexport { default as Label } from \"./Label.vue\"\n\n// Popover\nexport { default as Popover } from \"./Popover.vue\"\nexport { default as PopoverContent } from \"./PopoverContent.vue\"\nexport { default as PopoverTrigger } from \"./PopoverTrigger.vue\"\n\n// Progress\nexport { default as Progress } from \"./Progress.vue\"\n\n// Radio\nexport { default as RadioGroup } from \"./RadioGroup.vue\"\nexport { default as RadioGroupItem } from \"./RadioGroupItem.vue\"\n\n// Select\nexport { default as Select } from \"./Select.vue\"\nexport { default as SelectContent } from \"./SelectContent.vue\"\nexport { default as SelectGroup } from \"./SelectGroup.vue\"\nexport { default as SelectItem } from \"./SelectItem.vue\"\nexport { default as SelectItemText } from \"./SelectItemText.vue\"\nexport { default as SelectLabel } from \"./SelectLabel.vue\"\nexport { default as SelectScrollDownButton } from \"./SelectScrollDownButton.vue\"\nexport { default as SelectScrollUpButton } from \"./SelectScrollUpButton.vue\"\nexport { default as SelectSeparator } from \"./SelectSeparator.vue\"\nexport { default as SelectTrigger } from \"./SelectTrigger.vue\"\nexport { default as SelectValue } from \"./SelectValue.vue\"\n\n// Separator\nexport { default as Separator } from \"./Separator.vue\"\n\n// Spinner\nexport { default as Spinner } from \"./Spinner.vue\"\n\n// Switch\nexport { default as Switch } from \"./Switch.vue\"\n\n// Tabs\nexport { default as Tabs } from \"./Tabs.vue\"\nexport { default as TabsContent } from \"./TabsContent.vue\"\nexport { default as TabsList } from \"./TabsList.vue\"\nexport { default as TabsTrigger } from \"./TabsTrigger.vue\"\n\n// Textarea\nexport { default as Textarea } from \"./Textarea.vue\"\n\n\n// Tooltip\nexport { default as Tooltip } from \"./Tooltip.vue\"\nexport { default as TooltipContent } from \"./TooltipContent.vue\"\nexport { default as TooltipProvider } from \"./TooltipProvider.vue\"\nexport { default as TooltipTrigger } from \"./TooltipTrigger.vue\"\n\n// Toaster\nexport { default as Toaster } from \"./Toaster.vue\"\n"],"names":["buttonVariants","cva"],"mappings":"yZAIO,MAAMA,EAAiBC,EAAAA,IAC5B,sSACA,CACE,SAAU,CACR,QAAS,CACP,QAAS,yDACT,YACE,qEACF,QACE,iFACF,UACE,+DACF,MAAO,+CACP,KAAM,iDAAA,EAER,KAAM,CACJ,GAAI,8BACJ,GAAI,gCACJ,GAAI,mBACJ,GAAI,8BACJ,KAAM,SAAA,CACR,EAEF,gBAAiB,CACf,QAAS,UACT,KAAM,IAAA,CACR,CAEJ"}
|
|
@@ -11,7 +11,7 @@ import "./badge-variants.js";
|
|
|
11
11
|
import "./button-group-variants.js";
|
|
12
12
|
import "vue-sonner";
|
|
13
13
|
const g = e(
|
|
14
|
-
"inline-flex items-center justify-center whitespace-nowrap rounded-sm text-
|
|
14
|
+
"inline-flex items-center justify-center whitespace-nowrap rounded-sm text-xs font-medium ring-offset-background transition-colors duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",
|
|
15
15
|
{
|
|
16
16
|
variants: {
|
|
17
17
|
variant: {
|
|
@@ -23,11 +23,11 @@ const g = e(
|
|
|
23
23
|
link: "text-primary underline-offset-4 hover:underline"
|
|
24
24
|
},
|
|
25
25
|
size: {
|
|
26
|
-
xs: "h-
|
|
27
|
-
sm: "h-
|
|
28
|
-
md: "h-
|
|
29
|
-
lg: "h-
|
|
30
|
-
icon: "h-
|
|
26
|
+
xs: "h-6 rounded-sm px-2 text-xs",
|
|
27
|
+
sm: "h-7 rounded-sm px-2.5 text-xs",
|
|
28
|
+
md: "h-8 px-3 text-sm",
|
|
29
|
+
lg: "h-9 rounded-sm px-4 text-sm",
|
|
30
|
+
icon: "h-8 w-8"
|
|
31
31
|
}
|
|
32
32
|
},
|
|
33
33
|
defaultVariants: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/components/shadcn/index.ts"],"sourcesContent":["// Button variants\nimport type { VariantProps } from \"class-variance-authority\"\nimport { cva } from \"class-variance-authority\"\n\nexport const buttonVariants = cva(\n \"inline-flex items-center justify-center whitespace-nowrap rounded-sm text-
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/shadcn/index.ts"],"sourcesContent":["// Button variants\nimport type { VariantProps } from \"class-variance-authority\"\nimport { cva } from \"class-variance-authority\"\n\nexport const buttonVariants = cva(\n \"inline-flex items-center justify-center whitespace-nowrap rounded-sm text-xs font-medium ring-offset-background transition-colors duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50\",\n {\n variants: {\n variant: {\n default: \"bg-primary text-primary-foreground hover:bg-primary/90\",\n destructive:\n \"bg-destructive text-destructive-foreground hover:bg-destructive/90\",\n outline:\n \"border border-input bg-background hover:bg-accent hover:text-accent-foreground\",\n secondary:\n \"bg-secondary text-secondary-foreground hover:bg-secondary/80\",\n ghost: \"hover:bg-accent hover:text-accent-foreground\",\n link: \"text-primary underline-offset-4 hover:underline\",\n },\n size: {\n xs: \"h-6 rounded-sm px-2 text-xs\",\n sm: \"h-7 rounded-sm px-2.5 text-xs\",\n md: \"h-8 px-3 text-sm\",\n lg: \"h-9 rounded-sm px-4 text-sm\",\n icon: \"h-8 w-8\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"sm\",\n },\n },\n)\n\nexport type ButtonVariants = VariantProps<typeof buttonVariants>\n\n// Accordion\nexport { default as Accordion } from \"./Accordion.vue\"\nexport { default as AccordionContent } from \"./AccordionContent.vue\"\nexport { default as AccordionItem } from \"./AccordionItem.vue\"\nexport { default as AccordionTrigger } from \"./AccordionTrigger.vue\"\n\n// Alert\nexport { default as Alert } from \"./Alert.vue\"\nexport { default as AlertDescription } from \"./AlertDescription.vue\"\nexport { default as AlertTitle } from \"./AlertTitle.vue\"\n\n// Avatar\nexport { default as Avatar } from \"./Avatar.vue\"\nexport { default as AvatarFallback } from \"./AvatarFallback.vue\"\nexport { default as AvatarImage } from \"./AvatarImage.vue\"\n\n// Badge\nexport { default as Badge } from \"./Badge.vue\"\n\n// Calendar\nexport { default as Calendar } from \"./Calendar.vue\"\nexport { default as CalendarCell } from \"./CalendarCell.vue\"\nexport { default as CalendarCellTrigger } from \"./CalendarCellTrigger.vue\"\nexport { default as CalendarGrid } from \"./CalendarGrid.vue\"\nexport { default as CalendarGridBody } from \"./CalendarGridBody.vue\"\nexport { default as CalendarGridHead } from \"./CalendarGridHead.vue\"\nexport { default as CalendarGridRow } from \"./CalendarGridRow.vue\"\nexport { default as CalendarHeadCell } from \"./CalendarHeadCell.vue\"\nexport { default as CalendarHeader } from \"./CalendarHeader.vue\"\nexport { default as CalendarHeading } from \"./CalendarHeading.vue\"\nexport { default as CalendarNextButton } from \"./CalendarNextButton.vue\"\nexport { default as CalendarPrevButton } from \"./CalendarPrevButton.vue\"\n\n// Card\nexport { default as Card } from \"./Card.vue\"\nexport { default as CardContent } from \"./CardContent.vue\"\nexport { default as CardDescription } from \"./CardDescription.vue\"\nexport { default as CardFooter } from \"./CardFooter.vue\"\nexport { default as CardHeader } from \"./CardHeader.vue\"\nexport { default as CardTitle } from \"./CardTitle.vue\"\n\n// Checkbox\nexport { default as Checkbox } from \"./Checkbox.vue\"\n\n// Combobox\nexport { default as Combobox } from \"./Combobox.vue\"\nexport { default as ComboboxAnchor } from \"./ComboboxAnchor.vue\"\nexport { default as ComboboxEmpty } from \"./ComboboxEmpty.vue\"\nexport { default as ComboboxGroup } from \"./ComboboxGroup.vue\"\nexport { default as ComboboxInput } from \"./ComboboxInput.vue\"\nexport { default as ComboboxItem } from \"./ComboboxItem.vue\"\nexport { default as ComboboxList } from \"./ComboboxList.vue\"\nexport { default as ComboboxSeparator } from \"./ComboboxSeparator.vue\"\nexport { default as ComboboxTrigger } from \"./ComboboxTrigger.vue\"\n\n// ContextMenu\nexport { default as ContextMenu } from \"./ContextMenu.vue\"\nexport { default as ContextMenuCheckboxItem } from \"./ContextMenuCheckboxItem.vue\"\nexport { default as ContextMenuContent } from \"./ContextMenuContent.vue\"\nexport { default as ContextMenuGroup } from \"./ContextMenuGroup.vue\"\nexport { default as ContextMenuItem } from \"./ContextMenuItem.vue\"\nexport { default as ContextMenuLabel } from \"./ContextMenuLabel.vue\"\nexport { default as ContextMenuPortal } from \"./ContextMenuPortal.vue\"\nexport { default as ContextMenuRadioGroup } from \"./ContextMenuRadioGroup.vue\"\nexport { default as ContextMenuRadioItem } from \"./ContextMenuRadioItem.vue\"\nexport { default as ContextMenuSeparator } from \"./ContextMenuSeparator.vue\"\nexport { default as ContextMenuShortcut } from \"./ContextMenuShortcut.vue\"\nexport { default as ContextMenuSub } from \"./ContextMenuSub.vue\"\nexport { default as ContextMenuSubContent } from \"./ContextMenuSubContent.vue\"\nexport { default as ContextMenuSubTrigger } from \"./ContextMenuSubTrigger.vue\"\nexport { default as ContextMenuTrigger } from \"./ContextMenuTrigger.vue\"\n\n// Dialog\nexport { default as Dialog } from \"./Dialog.vue\"\nexport { default as DialogBody } from \"./DialogBody.vue\"\nexport { default as DialogContent } from \"./DialogContent.vue\"\nexport { default as DialogDescription } from \"./DialogDescription.vue\"\nexport { default as DialogFooter } from \"./DialogFooter.vue\"\nexport { default as DialogHeader } from \"./DialogHeader.vue\"\nexport { default as DialogTitle } from \"./DialogTitle.vue\"\n\n// Field\nexport { default as Field } from \"./Field.vue\"\nexport { default as FieldContent } from \"./FieldContent.vue\"\nexport { default as FieldDescription } from \"./FieldDescription.vue\"\nexport { default as FieldError } from \"./FieldError.vue\"\nexport { default as FieldGroup } from \"./FieldGroup.vue\"\nexport { default as FieldLabel } from \"./FieldLabel.vue\"\nexport { default as FieldLegend } from \"./FieldLegend.vue\"\nexport { default as FieldSeparator } from \"./FieldSeparator.vue\"\nexport { default as FieldSet } from \"./FieldSet.vue\"\nexport { default as FieldTitle } from \"./FieldTitle.vue\"\n\n// ButtonGroup\nexport { default as ButtonGroup } from \"./ButtonGroup.vue\"\nexport { default as ButtonGroupSeparator } from \"./ButtonGroupSeparator.vue\"\nexport { default as ButtonGroupText } from \"./ButtonGroupText.vue\"\n\n// Input\nexport { default as Button } from \"./Button.vue\"\nexport { default as Input } from \"./Input.vue\"\n\n// Kbd\nexport { default as Kbd } from \"./Kbd.vue\"\nexport { default as KbdGroup } from \"./KbdGroup.vue\"\n\n// Label\nexport { default as Label } from \"./Label.vue\"\n\n// Popover\nexport { default as Popover } from \"./Popover.vue\"\nexport { default as PopoverContent } from \"./PopoverContent.vue\"\nexport { default as PopoverTrigger } from \"./PopoverTrigger.vue\"\n\n// Progress\nexport { default as Progress } from \"./Progress.vue\"\n\n// Radio\nexport { default as RadioGroup } from \"./RadioGroup.vue\"\nexport { default as RadioGroupItem } from \"./RadioGroupItem.vue\"\n\n// Select\nexport { default as Select } from \"./Select.vue\"\nexport { default as SelectContent } from \"./SelectContent.vue\"\nexport { default as SelectGroup } from \"./SelectGroup.vue\"\nexport { default as SelectItem } from \"./SelectItem.vue\"\nexport { default as SelectItemText } from \"./SelectItemText.vue\"\nexport { default as SelectLabel } from \"./SelectLabel.vue\"\nexport { default as SelectScrollDownButton } from \"./SelectScrollDownButton.vue\"\nexport { default as SelectScrollUpButton } from \"./SelectScrollUpButton.vue\"\nexport { default as SelectSeparator } from \"./SelectSeparator.vue\"\nexport { default as SelectTrigger } from \"./SelectTrigger.vue\"\nexport { default as SelectValue } from \"./SelectValue.vue\"\n\n// Separator\nexport { default as Separator } from \"./Separator.vue\"\n\n// Spinner\nexport { default as Spinner } from \"./Spinner.vue\"\n\n// Switch\nexport { default as Switch } from \"./Switch.vue\"\n\n// Tabs\nexport { default as Tabs } from \"./Tabs.vue\"\nexport { default as TabsContent } from \"./TabsContent.vue\"\nexport { default as TabsList } from \"./TabsList.vue\"\nexport { default as TabsTrigger } from \"./TabsTrigger.vue\"\n\n// Textarea\nexport { default as Textarea } from \"./Textarea.vue\"\n\n\n// Tooltip\nexport { default as Tooltip } from \"./Tooltip.vue\"\nexport { default as TooltipContent } from \"./TooltipContent.vue\"\nexport { default as TooltipProvider } from \"./TooltipProvider.vue\"\nexport { default as TooltipTrigger } from \"./TooltipTrigger.vue\"\n\n// Toaster\nexport { default as Toaster } from \"./Toaster.vue\"\n"],"names":["buttonVariants","cva"],"mappings":";;;;;;;;;;;;AAIO,MAAMA,IAAiBC;AAAA,EAC5B;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SAAS;AAAA,QACT,aACE;AAAA,QACF,SACE;AAAA,QACF,WACE;AAAA,QACF,OAAO;AAAA,QACP,MAAM;AAAA,MAAA;AAAA,MAER,MAAM;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,MAAM;AAAA,MAAA;AAAA,IACR;AAAA,IAEF,iBAAiB;AAAA,MACf,SAAS;AAAA,MACT,MAAM;AAAA,IAAA;AAAA,EACR;AAEJ;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),l=require("@vueuse/core"),c=require("lucide-vue-next"),r=require("reka-ui"),d=require("../../../lib/utils.cjs"),u={key:0,class:"z-10 flex h-
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),l=require("@vueuse/core"),c=require("lucide-vue-next"),r=require("reka-ui"),d=require("../../../lib/utils.cjs"),u={key:0,class:"z-10 flex h-3.5 w-2.5 items-center justify-center rounded-[3px] border border-border/70 bg-background/95 shadow-sm"},f=e.defineComponent({__name:"ResizableHandle",props:{id:{},hitAreaMargins:{},tabindex:{},disabled:{type:Boolean},nonce:{},asChild:{type:Boolean},as:{},class:{},withHandle:{type:Boolean}},emits:["dragging"],setup(a,{emit:i}){const t=a,n=i,o=l.reactiveOmit(t,"class"),s=r.useForwardPropsEmits(o,n);return(p,v)=>(e.openBlock(),e.createBlock(e.unref(r.SplitterResizeHandle),e.mergeProps(e.unref(s),{class:e.unref(d.cn)("relative flex w-px items-center justify-center bg-transparent after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-1 [&[data-orientation=vertical]]:h-px [&[data-orientation=vertical]]:w-full [&[data-orientation=vertical]]:after:left-0 [&[data-orientation=vertical]]:after:h-1 [&[data-orientation=vertical]]:after:w-full [&[data-orientation=vertical]]:after:-translate-y-1/2 [&[data-orientation=vertical]]:after:translate-x-0 [&[data-orientation=vertical]>div]:rotate-90",t.class)}),{default:e.withCtx(()=>[t.withHandle?(e.openBlock(),e.createElementBlock("div",u,[e.createVNode(e.unref(c.GripVertical),{class:"h-2 w-2 text-muted-foreground"})])):e.createCommentVNode("",!0)]),_:1},16,["class"]))}});exports.default=f;
|
|
2
2
|
//# sourceMappingURL=ResizableHandle.vue.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ResizableHandle.vue.cjs","sources":["../../../../../src/components/shadcn/resizable/ResizableHandle.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { SplitterResizeHandleEmits, SplitterResizeHandleProps } from \"reka-ui\"\nimport type { HTMLAttributes } from \"vue\"\nimport { reactiveOmit } from \"@vueuse/core\"\nimport { GripVertical } from \"lucide-vue-next\"\nimport { SplitterResizeHandle, useForwardPropsEmits } from \"reka-ui\"\nimport { cn } from \"@/lib/utils\"\n\nconst props = defineProps<SplitterResizeHandleProps & { class?: HTMLAttributes[\"class\"], withHandle?: boolean }>()\nconst emits = defineEmits<SplitterResizeHandleEmits>()\n\nconst delegatedProps = reactiveOmit(props, \"class\")\n\nconst forwarded = useForwardPropsEmits(delegatedProps, emits)\n</script>\n\n<template>\n <SplitterResizeHandle v-bind=\"forwarded\" :class=\"cn('relative flex w-px items-center justify-center bg-
|
|
1
|
+
{"version":3,"file":"ResizableHandle.vue.cjs","sources":["../../../../../src/components/shadcn/resizable/ResizableHandle.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { SplitterResizeHandleEmits, SplitterResizeHandleProps } from \"reka-ui\"\nimport type { HTMLAttributes } from \"vue\"\nimport { reactiveOmit } from \"@vueuse/core\"\nimport { GripVertical } from \"lucide-vue-next\"\nimport { SplitterResizeHandle, useForwardPropsEmits } from \"reka-ui\"\nimport { cn } from \"@/lib/utils\"\n\nconst props = defineProps<SplitterResizeHandleProps & { class?: HTMLAttributes[\"class\"], withHandle?: boolean }>()\nconst emits = defineEmits<SplitterResizeHandleEmits>()\n\nconst delegatedProps = reactiveOmit(props, \"class\")\n\nconst forwarded = useForwardPropsEmits(delegatedProps, emits)\n</script>\n\n<template>\n <SplitterResizeHandle v-bind=\"forwarded\" :class=\"cn('relative flex w-px items-center justify-center bg-transparent after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-1 [&[data-orientation=vertical]]:h-px [&[data-orientation=vertical]]:w-full [&[data-orientation=vertical]]:after:left-0 [&[data-orientation=vertical]]:after:h-1 [&[data-orientation=vertical]]:after:w-full [&[data-orientation=vertical]]:after:-translate-y-1/2 [&[data-orientation=vertical]]:after:translate-x-0 [&[data-orientation=vertical]>div]:rotate-90', props.class)\">\n <template v-if=\"props.withHandle\">\n <div class=\"z-10 flex h-3.5 w-2.5 items-center justify-center rounded-[3px] border border-border/70 bg-background/95 shadow-sm\">\n <GripVertical class=\"h-2 w-2 text-muted-foreground\" />\n </div>\n </template>\n </SplitterResizeHandle>\n</template>\n"],"names":["props","__props","emits","__emit","delegatedProps","reactiveOmit","forwarded","useForwardPropsEmits","_createBlock","_unref","SplitterResizeHandle","_mergeProps","cn","_openBlock","_createElementBlock","_hoisted_1","_createVNode","GripVertical"],"mappings":"wlBAQA,MAAMA,EAAQC,EACRC,EAAQC,EAERC,EAAiBC,EAAAA,aAAaL,EAAO,OAAO,EAE5CM,EAAYC,EAAAA,qBAAqBH,EAAgBF,CAAK,8BAI1DM,EAAAA,YAMuBC,EAAAA,MAAAC,EAAAA,oBAAA,EANvBC,EAAAA,WAMuBF,QAAAH,CAAA,EANgB,CAAG,MAAOG,EAAAA,MAAAG,EAAAA,EAAA,EAAE,olBAAslBZ,EAAM,KAAK,CAAA,sBAClpB,IAIW,CAJKA,EAAM,YACpBa,EAAAA,UAAA,EAAAC,EAAAA,mBAEM,MAFNC,EAEM,CADJC,EAAAA,YAAsDP,EAAAA,MAAAQ,EAAAA,YAAA,EAAA,CAAxC,MAAM,gCAA+B,CAAA"}
|
|
@@ -5,7 +5,7 @@ import { useForwardPropsEmits as g, SplitterResizeHandle as h } from "reka-ui";
|
|
|
5
5
|
import { cn as w } from "../../../lib/utils.js";
|
|
6
6
|
const x = {
|
|
7
7
|
key: 0,
|
|
8
|
-
class: "z-10 flex h-
|
|
8
|
+
class: "z-10 flex h-3.5 w-2.5 items-center justify-center rounded-[3px] border border-border/70 bg-background/95 shadow-sm"
|
|
9
9
|
}, P = /* @__PURE__ */ l({
|
|
10
10
|
__name: "ResizableHandle",
|
|
11
11
|
props: {
|
|
@@ -23,11 +23,11 @@ const x = {
|
|
|
23
23
|
setup(r, { emit: i }) {
|
|
24
24
|
const t = r, o = i, n = v(t, "class"), s = g(n, o);
|
|
25
25
|
return (_, y) => (a(), c(e(h), d(e(s), {
|
|
26
|
-
class: e(w)("relative flex w-px items-center justify-center bg-
|
|
26
|
+
class: e(w)("relative flex w-px items-center justify-center bg-transparent after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-1 [&[data-orientation=vertical]]:h-px [&[data-orientation=vertical]]:w-full [&[data-orientation=vertical]]:after:left-0 [&[data-orientation=vertical]]:after:h-1 [&[data-orientation=vertical]]:after:w-full [&[data-orientation=vertical]]:after:-translate-y-1/2 [&[data-orientation=vertical]]:after:translate-x-0 [&[data-orientation=vertical]>div]:rotate-90", t.class)
|
|
27
27
|
}), {
|
|
28
28
|
default: f(() => [
|
|
29
29
|
t.withHandle ? (a(), m("div", x, [
|
|
30
|
-
u(e(b), { class: "h-2
|
|
30
|
+
u(e(b), { class: "h-2 w-2 text-muted-foreground" })
|
|
31
31
|
])) : p("", !0)
|
|
32
32
|
]),
|
|
33
33
|
_: 1
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ResizableHandle.vue.js","sources":["../../../../../src/components/shadcn/resizable/ResizableHandle.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { SplitterResizeHandleEmits, SplitterResizeHandleProps } from \"reka-ui\"\nimport type { HTMLAttributes } from \"vue\"\nimport { reactiveOmit } from \"@vueuse/core\"\nimport { GripVertical } from \"lucide-vue-next\"\nimport { SplitterResizeHandle, useForwardPropsEmits } from \"reka-ui\"\nimport { cn } from \"@/lib/utils\"\n\nconst props = defineProps<SplitterResizeHandleProps & { class?: HTMLAttributes[\"class\"], withHandle?: boolean }>()\nconst emits = defineEmits<SplitterResizeHandleEmits>()\n\nconst delegatedProps = reactiveOmit(props, \"class\")\n\nconst forwarded = useForwardPropsEmits(delegatedProps, emits)\n</script>\n\n<template>\n <SplitterResizeHandle v-bind=\"forwarded\" :class=\"cn('relative flex w-px items-center justify-center bg-
|
|
1
|
+
{"version":3,"file":"ResizableHandle.vue.js","sources":["../../../../../src/components/shadcn/resizable/ResizableHandle.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { SplitterResizeHandleEmits, SplitterResizeHandleProps } from \"reka-ui\"\nimport type { HTMLAttributes } from \"vue\"\nimport { reactiveOmit } from \"@vueuse/core\"\nimport { GripVertical } from \"lucide-vue-next\"\nimport { SplitterResizeHandle, useForwardPropsEmits } from \"reka-ui\"\nimport { cn } from \"@/lib/utils\"\n\nconst props = defineProps<SplitterResizeHandleProps & { class?: HTMLAttributes[\"class\"], withHandle?: boolean }>()\nconst emits = defineEmits<SplitterResizeHandleEmits>()\n\nconst delegatedProps = reactiveOmit(props, \"class\")\n\nconst forwarded = useForwardPropsEmits(delegatedProps, emits)\n</script>\n\n<template>\n <SplitterResizeHandle v-bind=\"forwarded\" :class=\"cn('relative flex w-px items-center justify-center bg-transparent after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-1 [&[data-orientation=vertical]]:h-px [&[data-orientation=vertical]]:w-full [&[data-orientation=vertical]]:after:left-0 [&[data-orientation=vertical]]:after:h-1 [&[data-orientation=vertical]]:after:w-full [&[data-orientation=vertical]]:after:-translate-y-1/2 [&[data-orientation=vertical]]:after:translate-x-0 [&[data-orientation=vertical]>div]:rotate-90', props.class)\">\n <template v-if=\"props.withHandle\">\n <div class=\"z-10 flex h-3.5 w-2.5 items-center justify-center rounded-[3px] border border-border/70 bg-background/95 shadow-sm\">\n <GripVertical class=\"h-2 w-2 text-muted-foreground\" />\n </div>\n </template>\n </SplitterResizeHandle>\n</template>\n"],"names":["props","__props","emits","__emit","delegatedProps","reactiveOmit","forwarded","useForwardPropsEmits","_createBlock","_unref","SplitterResizeHandle","_mergeProps","cn","_openBlock","_createElementBlock","_hoisted_1","_createVNode","GripVertical"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAQA,UAAMA,IAAQC,GACRC,IAAQC,GAERC,IAAiBC,EAAaL,GAAO,OAAO,GAE5CM,IAAYC,EAAqBH,GAAgBF,CAAK;2BAI1DM,EAMuBC,EAAAC,CAAA,GANvBC,EAMuBF,EAAAH,CAAA,GANgB;AAAA,MAAG,OAAOG,EAAAG,CAAA,EAAE,qlBAAslBZ,EAAM,KAAK;AAAA,IAAA;iBAClpB,MAIW;AAAA,QAJKA,EAAM,cACpBa,EAAA,GAAAC,EAEM,OAFNC,GAEM;AAAA,UADJC,EAAsDP,EAAAQ,CAAA,GAAA,EAAxC,OAAM,iCAA+B;AAAA,QAAA;;;;;;"}
|
package/package.json
CHANGED
package/types/index.d.ts
CHANGED
|
@@ -619,6 +619,12 @@ declare type __VLS_Props_24 = {
|
|
|
619
619
|
checkbox?: boolean;
|
|
620
620
|
/** 행 번호 표시 여부 (Enterprise) */
|
|
621
621
|
rowNumbers?: boolean;
|
|
622
|
+
/** 플로팅 필터 표시 여부 */
|
|
623
|
+
floatingFilters?: boolean;
|
|
624
|
+
/** 플로팅 필터 표시 여부 (하위호환 alias) */
|
|
625
|
+
floatingFilter?: boolean;
|
|
626
|
+
/** 행 번호 컬럼 너비(px) */
|
|
627
|
+
rowNumberWidth?: number;
|
|
622
628
|
/** 행별 액션 버튼 목록 */
|
|
623
629
|
actionButtons?: ActionButton[];
|
|
624
630
|
/** 요약 컬럼 표시 여부 */
|
|
@@ -1806,6 +1812,9 @@ columnDefs: ColDef[];
|
|
|
1806
1812
|
pagination?: boolean;
|
|
1807
1813
|
checkbox?: boolean;
|
|
1808
1814
|
rowNumbers?: boolean;
|
|
1815
|
+
floatingFilters?: boolean;
|
|
1816
|
+
floatingFilter?: boolean;
|
|
1817
|
+
rowNumberWidth?: number;
|
|
1809
1818
|
actionButtons?: ActionButton[];
|
|
1810
1819
|
summaryColumn?: boolean;
|
|
1811
1820
|
hiddenColumn?: boolean;
|
|
@@ -1848,6 +1857,9 @@ gridReady: (event: GridReadyEvent<any, any>) => any;
|
|
|
1848
1857
|
pagination: boolean;
|
|
1849
1858
|
checkbox: boolean;
|
|
1850
1859
|
rowNumbers: boolean;
|
|
1860
|
+
floatingFilters: boolean;
|
|
1861
|
+
floatingFilter: boolean;
|
|
1862
|
+
rowNumberWidth: number;
|
|
1851
1863
|
actionButtons: ActionButton[];
|
|
1852
1864
|
summaryColumn: boolean;
|
|
1853
1865
|
hiddenColumn: boolean;
|
|
@@ -1866,7 +1878,9 @@ rowGroupPanelShow: "always" | "onlyWhenGrouping" | "never";
|
|
|
1866
1878
|
groupDefaultExpanded: number;
|
|
1867
1879
|
pivotPanelShow: "always" | "onlyWhenPivoting" | "never";
|
|
1868
1880
|
pivotMode: boolean;
|
|
1869
|
-
}, false, {}, {}, GlobalComponents, GlobalDirectives, string, {
|
|
1881
|
+
}, false, {}, {}, GlobalComponents, GlobalDirectives, string, {
|
|
1882
|
+
gridContainerRef: HTMLDivElement;
|
|
1883
|
+
}, HTMLDivElement, ComponentProvideOptions, {
|
|
1870
1884
|
P: {};
|
|
1871
1885
|
B: {};
|
|
1872
1886
|
D: {};
|
|
@@ -1880,6 +1894,9 @@ columnDefs: ColDef[];
|
|
|
1880
1894
|
pagination?: boolean;
|
|
1881
1895
|
checkbox?: boolean;
|
|
1882
1896
|
rowNumbers?: boolean;
|
|
1897
|
+
floatingFilters?: boolean;
|
|
1898
|
+
floatingFilter?: boolean;
|
|
1899
|
+
rowNumberWidth?: number;
|
|
1883
1900
|
actionButtons?: ActionButton[];
|
|
1884
1901
|
summaryColumn?: boolean;
|
|
1885
1902
|
hiddenColumn?: boolean;
|
|
@@ -1914,6 +1931,9 @@ exportToExcel: () => void;
|
|
|
1914
1931
|
pagination: boolean;
|
|
1915
1932
|
checkbox: boolean;
|
|
1916
1933
|
rowNumbers: boolean;
|
|
1934
|
+
floatingFilters: boolean;
|
|
1935
|
+
floatingFilter: boolean;
|
|
1936
|
+
rowNumberWidth: number;
|
|
1917
1937
|
actionButtons: ActionButton[];
|
|
1918
1938
|
summaryColumn: boolean;
|
|
1919
1939
|
hiddenColumn: boolean;
|
|
@@ -1946,6 +1966,9 @@ columnDefs: ColDef[];
|
|
|
1946
1966
|
pagination?: boolean;
|
|
1947
1967
|
checkbox?: boolean;
|
|
1948
1968
|
rowNumbers?: boolean;
|
|
1969
|
+
floatingFilters?: boolean;
|
|
1970
|
+
floatingFilter?: boolean;
|
|
1971
|
+
rowNumberWidth?: number;
|
|
1949
1972
|
actionButtons?: ActionButton[];
|
|
1950
1973
|
summaryColumn?: boolean;
|
|
1951
1974
|
hiddenColumn?: boolean;
|
|
@@ -1988,6 +2011,9 @@ gridReady: (event: GridReadyEvent<any, any>) => any;
|
|
|
1988
2011
|
pagination: boolean;
|
|
1989
2012
|
checkbox: boolean;
|
|
1990
2013
|
rowNumbers: boolean;
|
|
2014
|
+
floatingFilters: boolean;
|
|
2015
|
+
floatingFilter: boolean;
|
|
2016
|
+
rowNumberWidth: number;
|
|
1991
2017
|
actionButtons: ActionButton[];
|
|
1992
2018
|
summaryColumn: boolean;
|
|
1993
2019
|
hiddenColumn: boolean;
|
|
@@ -2006,7 +2032,9 @@ rowGroupPanelShow: "always" | "onlyWhenGrouping" | "never";
|
|
|
2006
2032
|
groupDefaultExpanded: number;
|
|
2007
2033
|
pivotPanelShow: "always" | "onlyWhenPivoting" | "never";
|
|
2008
2034
|
pivotMode: boolean;
|
|
2009
|
-
}, false, {}, {}, GlobalComponents, GlobalDirectives, string, {
|
|
2035
|
+
}, false, {}, {}, GlobalComponents, GlobalDirectives, string, {
|
|
2036
|
+
gridContainerRef: HTMLDivElement;
|
|
2037
|
+
}, HTMLDivElement, ComponentProvideOptions, {
|
|
2010
2038
|
P: {};
|
|
2011
2039
|
B: {};
|
|
2012
2040
|
D: {};
|
|
@@ -2020,6 +2048,9 @@ columnDefs: ColDef[];
|
|
|
2020
2048
|
pagination?: boolean;
|
|
2021
2049
|
checkbox?: boolean;
|
|
2022
2050
|
rowNumbers?: boolean;
|
|
2051
|
+
floatingFilters?: boolean;
|
|
2052
|
+
floatingFilter?: boolean;
|
|
2053
|
+
rowNumberWidth?: number;
|
|
2023
2054
|
actionButtons?: ActionButton[];
|
|
2024
2055
|
summaryColumn?: boolean;
|
|
2025
2056
|
hiddenColumn?: boolean;
|
|
@@ -2054,6 +2085,9 @@ exportToExcel: () => void;
|
|
|
2054
2085
|
pagination: boolean;
|
|
2055
2086
|
checkbox: boolean;
|
|
2056
2087
|
rowNumbers: boolean;
|
|
2088
|
+
floatingFilters: boolean;
|
|
2089
|
+
floatingFilter: boolean;
|
|
2090
|
+
rowNumberWidth: number;
|
|
2057
2091
|
actionButtons: ActionButton[];
|
|
2058
2092
|
summaryColumn: boolean;
|
|
2059
2093
|
hiddenColumn: boolean;
|
|
@@ -2080,6 +2114,9 @@ columnDefs: ColDef[];
|
|
|
2080
2114
|
pagination?: boolean;
|
|
2081
2115
|
checkbox?: boolean;
|
|
2082
2116
|
rowNumbers?: boolean;
|
|
2117
|
+
floatingFilters?: boolean;
|
|
2118
|
+
floatingFilter?: boolean;
|
|
2119
|
+
rowNumberWidth?: number;
|
|
2083
2120
|
actionButtons?: ActionButton[];
|
|
2084
2121
|
summaryColumn?: boolean;
|
|
2085
2122
|
hiddenColumn?: boolean;
|
|
@@ -2122,6 +2159,9 @@ gridReady: (event: GridReadyEvent<any, any>) => any;
|
|
|
2122
2159
|
pagination: boolean;
|
|
2123
2160
|
checkbox: boolean;
|
|
2124
2161
|
rowNumbers: boolean;
|
|
2162
|
+
floatingFilters: boolean;
|
|
2163
|
+
floatingFilter: boolean;
|
|
2164
|
+
rowNumberWidth: number;
|
|
2125
2165
|
actionButtons: ActionButton[];
|
|
2126
2166
|
summaryColumn: boolean;
|
|
2127
2167
|
hiddenColumn: boolean;
|
|
@@ -2140,7 +2180,9 @@ rowGroupPanelShow: "always" | "onlyWhenGrouping" | "never";
|
|
|
2140
2180
|
groupDefaultExpanded: number;
|
|
2141
2181
|
pivotPanelShow: "always" | "onlyWhenPivoting" | "never";
|
|
2142
2182
|
pivotMode: boolean;
|
|
2143
|
-
}, false, {}, {}, GlobalComponents, GlobalDirectives, string, {
|
|
2183
|
+
}, false, {}, {}, GlobalComponents, GlobalDirectives, string, {
|
|
2184
|
+
gridContainerRef: HTMLDivElement;
|
|
2185
|
+
}, HTMLDivElement, ComponentProvideOptions, {
|
|
2144
2186
|
P: {};
|
|
2145
2187
|
B: {};
|
|
2146
2188
|
D: {};
|
|
@@ -2154,6 +2196,9 @@ columnDefs: ColDef[];
|
|
|
2154
2196
|
pagination?: boolean;
|
|
2155
2197
|
checkbox?: boolean;
|
|
2156
2198
|
rowNumbers?: boolean;
|
|
2199
|
+
floatingFilters?: boolean;
|
|
2200
|
+
floatingFilter?: boolean;
|
|
2201
|
+
rowNumberWidth?: number;
|
|
2157
2202
|
actionButtons?: ActionButton[];
|
|
2158
2203
|
summaryColumn?: boolean;
|
|
2159
2204
|
hiddenColumn?: boolean;
|
|
@@ -2188,6 +2233,9 @@ exportToExcel: () => void;
|
|
|
2188
2233
|
pagination: boolean;
|
|
2189
2234
|
checkbox: boolean;
|
|
2190
2235
|
rowNumbers: boolean;
|
|
2236
|
+
floatingFilters: boolean;
|
|
2237
|
+
floatingFilter: boolean;
|
|
2238
|
+
rowNumberWidth: number;
|
|
2191
2239
|
actionButtons: ActionButton[];
|
|
2192
2240
|
summaryColumn: boolean;
|
|
2193
2241
|
hiddenColumn: boolean;
|
|
@@ -2553,6 +2601,9 @@ onGridReady?: ((event: GridReadyEvent<any, any>) => any) | undefined;
|
|
|
2553
2601
|
pagination: boolean;
|
|
2554
2602
|
checkbox: boolean;
|
|
2555
2603
|
rowNumbers: boolean;
|
|
2604
|
+
floatingFilters: boolean;
|
|
2605
|
+
floatingFilter: boolean;
|
|
2606
|
+
rowNumberWidth: number;
|
|
2556
2607
|
actionButtons: ActionButton[];
|
|
2557
2608
|
summaryColumn: boolean;
|
|
2558
2609
|
hiddenColumn: boolean;
|
|
@@ -2571,7 +2622,9 @@ rowGroupPanelShow: "always" | "onlyWhenGrouping" | "never";
|
|
|
2571
2622
|
groupDefaultExpanded: number;
|
|
2572
2623
|
pivotPanelShow: "always" | "onlyWhenPivoting" | "never";
|
|
2573
2624
|
pivotMode: boolean;
|
|
2574
|
-
}, {}, {}, {}, string, ComponentProvideOptions, false, {
|
|
2625
|
+
}, {}, {}, {}, string, ComponentProvideOptions, false, {
|
|
2626
|
+
gridContainerRef: HTMLDivElement;
|
|
2627
|
+
}, HTMLDivElement>;
|
|
2575
2628
|
|
|
2576
2629
|
export declare const JGroupCombo: DefineComponent<__VLS_Props_27, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
|
|
2577
2630
|
"update:modelValue": (value: string | number) => any;
|
|
@@ -2872,6 +2925,9 @@ columnDefs: ColDef[];
|
|
|
2872
2925
|
pagination?: boolean;
|
|
2873
2926
|
checkbox?: boolean;
|
|
2874
2927
|
rowNumbers?: boolean;
|
|
2928
|
+
floatingFilters?: boolean;
|
|
2929
|
+
floatingFilter?: boolean;
|
|
2930
|
+
rowNumberWidth?: number;
|
|
2875
2931
|
actionButtons?: ActionButton[];
|
|
2876
2932
|
summaryColumn?: boolean;
|
|
2877
2933
|
hiddenColumn?: boolean;
|
|
@@ -2914,6 +2970,9 @@ gridReady: (event: GridReadyEvent<any, any>) => any;
|
|
|
2914
2970
|
pagination: boolean;
|
|
2915
2971
|
checkbox: boolean;
|
|
2916
2972
|
rowNumbers: boolean;
|
|
2973
|
+
floatingFilters: boolean;
|
|
2974
|
+
floatingFilter: boolean;
|
|
2975
|
+
rowNumberWidth: number;
|
|
2917
2976
|
actionButtons: ActionButton[];
|
|
2918
2977
|
summaryColumn: boolean;
|
|
2919
2978
|
hiddenColumn: boolean;
|
|
@@ -2932,7 +2991,9 @@ rowGroupPanelShow: "always" | "onlyWhenGrouping" | "never";
|
|
|
2932
2991
|
groupDefaultExpanded: number;
|
|
2933
2992
|
pivotPanelShow: "always" | "onlyWhenPivoting" | "never";
|
|
2934
2993
|
pivotMode: boolean;
|
|
2935
|
-
}, false, {}, {}, GlobalComponents, GlobalDirectives, string, {
|
|
2994
|
+
}, false, {}, {}, GlobalComponents, GlobalDirectives, string, {
|
|
2995
|
+
gridContainerRef: HTMLDivElement;
|
|
2996
|
+
}, HTMLDivElement, ComponentProvideOptions, {
|
|
2936
2997
|
P: {};
|
|
2937
2998
|
B: {};
|
|
2938
2999
|
D: {};
|
|
@@ -2946,6 +3007,9 @@ columnDefs: ColDef[];
|
|
|
2946
3007
|
pagination?: boolean;
|
|
2947
3008
|
checkbox?: boolean;
|
|
2948
3009
|
rowNumbers?: boolean;
|
|
3010
|
+
floatingFilters?: boolean;
|
|
3011
|
+
floatingFilter?: boolean;
|
|
3012
|
+
rowNumberWidth?: number;
|
|
2949
3013
|
actionButtons?: ActionButton[];
|
|
2950
3014
|
summaryColumn?: boolean;
|
|
2951
3015
|
hiddenColumn?: boolean;
|
|
@@ -2980,6 +3044,9 @@ exportToExcel: () => void;
|
|
|
2980
3044
|
pagination: boolean;
|
|
2981
3045
|
checkbox: boolean;
|
|
2982
3046
|
rowNumbers: boolean;
|
|
3047
|
+
floatingFilters: boolean;
|
|
3048
|
+
floatingFilter: boolean;
|
|
3049
|
+
rowNumberWidth: number;
|
|
2983
3050
|
actionButtons: ActionButton[];
|
|
2984
3051
|
summaryColumn: boolean;
|
|
2985
3052
|
hiddenColumn: boolean;
|
|
@@ -3006,6 +3073,9 @@ columnDefs: ColDef[];
|
|
|
3006
3073
|
pagination?: boolean;
|
|
3007
3074
|
checkbox?: boolean;
|
|
3008
3075
|
rowNumbers?: boolean;
|
|
3076
|
+
floatingFilters?: boolean;
|
|
3077
|
+
floatingFilter?: boolean;
|
|
3078
|
+
rowNumberWidth?: number;
|
|
3009
3079
|
actionButtons?: ActionButton[];
|
|
3010
3080
|
summaryColumn?: boolean;
|
|
3011
3081
|
hiddenColumn?: boolean;
|
|
@@ -3048,6 +3118,9 @@ gridReady: (event: GridReadyEvent<any, any>) => any;
|
|
|
3048
3118
|
pagination: boolean;
|
|
3049
3119
|
checkbox: boolean;
|
|
3050
3120
|
rowNumbers: boolean;
|
|
3121
|
+
floatingFilters: boolean;
|
|
3122
|
+
floatingFilter: boolean;
|
|
3123
|
+
rowNumberWidth: number;
|
|
3051
3124
|
actionButtons: ActionButton[];
|
|
3052
3125
|
summaryColumn: boolean;
|
|
3053
3126
|
hiddenColumn: boolean;
|
|
@@ -3066,7 +3139,9 @@ rowGroupPanelShow: "always" | "onlyWhenGrouping" | "never";
|
|
|
3066
3139
|
groupDefaultExpanded: number;
|
|
3067
3140
|
pivotPanelShow: "always" | "onlyWhenPivoting" | "never";
|
|
3068
3141
|
pivotMode: boolean;
|
|
3069
|
-
}, false, {}, {}, GlobalComponents, GlobalDirectives, string, {
|
|
3142
|
+
}, false, {}, {}, GlobalComponents, GlobalDirectives, string, {
|
|
3143
|
+
gridContainerRef: HTMLDivElement;
|
|
3144
|
+
}, HTMLDivElement, ComponentProvideOptions, {
|
|
3070
3145
|
P: {};
|
|
3071
3146
|
B: {};
|
|
3072
3147
|
D: {};
|
|
@@ -3080,6 +3155,9 @@ columnDefs: ColDef[];
|
|
|
3080
3155
|
pagination?: boolean;
|
|
3081
3156
|
checkbox?: boolean;
|
|
3082
3157
|
rowNumbers?: boolean;
|
|
3158
|
+
floatingFilters?: boolean;
|
|
3159
|
+
floatingFilter?: boolean;
|
|
3160
|
+
rowNumberWidth?: number;
|
|
3083
3161
|
actionButtons?: ActionButton[];
|
|
3084
3162
|
summaryColumn?: boolean;
|
|
3085
3163
|
hiddenColumn?: boolean;
|
|
@@ -3114,6 +3192,9 @@ exportToExcel: () => void;
|
|
|
3114
3192
|
pagination: boolean;
|
|
3115
3193
|
checkbox: boolean;
|
|
3116
3194
|
rowNumbers: boolean;
|
|
3195
|
+
floatingFilters: boolean;
|
|
3196
|
+
floatingFilter: boolean;
|
|
3197
|
+
rowNumberWidth: number;
|
|
3117
3198
|
actionButtons: ActionButton[];
|
|
3118
3199
|
summaryColumn: boolean;
|
|
3119
3200
|
hiddenColumn: boolean;
|