@bagelink/vue 0.0.1137 → 0.0.1141

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.
Files changed (40) hide show
  1. package/dist/components/Btn.vue.d.ts.map +1 -1
  2. package/dist/components/DataTable/DataTable.vue.d.ts +31 -0
  3. package/dist/components/DataTable/DataTable.vue.d.ts.map +1 -0
  4. package/dist/components/DataTable/tableTypes.d.ts +35 -0
  5. package/dist/components/DataTable/tableTypes.d.ts.map +1 -0
  6. package/dist/components/DataTable/useSorting.d.ts +7 -0
  7. package/dist/components/DataTable/useSorting.d.ts.map +1 -0
  8. package/dist/components/DataTable/useTableData.d.ts +13 -0
  9. package/dist/components/DataTable/useTableData.d.ts.map +1 -0
  10. package/dist/components/DataTable/useTableSelection.d.ts +10 -0
  11. package/dist/components/DataTable/useTableSelection.d.ts.map +1 -0
  12. package/dist/components/DataTable/useTableVirtualization.d.ts +25 -0
  13. package/dist/components/DataTable/useTableVirtualization.d.ts.map +1 -0
  14. package/dist/components/Icon/types.d.ts +3 -2
  15. package/dist/components/Icon/types.d.ts.map +1 -1
  16. package/dist/components/TableSchema.vue.d.ts +2 -2
  17. package/dist/components/form/BagelForm.vue.d.ts.map +1 -1
  18. package/dist/components/form/inputs/RichText/index.vue.d.ts.map +1 -1
  19. package/dist/components/index.d.ts +2 -1
  20. package/dist/components/index.d.ts.map +1 -1
  21. package/dist/index.cjs +3414 -3328
  22. package/dist/index.mjs +3415 -3329
  23. package/dist/style.css +272 -272
  24. package/dist/types/TableSchema.d.ts +36 -0
  25. package/dist/types/TableSchema.d.ts.map +1 -0
  26. package/package.json +1 -1
  27. package/src/components/Btn.vue +2 -2
  28. package/src/components/{TableSchema.vue → DataTable/DataTable.vue} +62 -154
  29. package/src/components/DataTable/tableTypes.d.ts +0 -0
  30. package/src/components/DataTable/tableTypes.ts +38 -0
  31. package/src/components/DataTable/useSorting.ts +30 -0
  32. package/src/components/DataTable/useTableData.ts +95 -0
  33. package/src/components/DataTable/useTableSelection.ts +45 -0
  34. package/src/components/DataTable/useTableVirtualization.ts +33 -0
  35. package/src/components/Icon/Icon.vue +1 -1
  36. package/src/components/Icon/types.ts +3 -2
  37. package/src/components/form/BagelForm.vue +5 -12
  38. package/src/components/form/inputs/RichText/index.vue +6 -4
  39. package/src/components/index.ts +3 -2
  40. package/src/types/TableSchema.ts +39 -0
@@ -1,7 +1,7 @@
1
1
  <script setup lang="ts">
2
2
  import type { ToolbarConfig } from './richTextTypes'
3
3
  import { CodeEditor, copyText, Btn } from '@bagelink/vue'
4
- import { watch, computed } from 'vue'
4
+ import { watch } from 'vue'
5
5
  import EditorToolbar from './components/EditorToolbar.vue'
6
6
  import { useCommands } from './composables/useCommands'
7
7
  import { useEditor } from './composables/useEditor'
@@ -15,8 +15,8 @@ const editor = useEditor()
15
15
  const commands = useCommands(editor.state, props.debug ? editor.debug : undefined)
16
16
 
17
17
  // Expose debug methods if debug mode is enabled
18
- const debugMethods = computed(() => props.debug ? editor.debug : undefined)
19
-
18
+ const debugMethods = $computed(() => props.debug ? editor.debug : undefined)
19
+ const hasRTL = $computed(() => /[\u0591-\u07FF\uFB1D-\uFDFD\uFE70-\uFEFC]/.test(props.modelValue))
20
20
  async function initEditor() {
21
21
  if (!iframe) {
22
22
  setTimeout(initEditor, 100)
@@ -30,7 +30,6 @@ async function initEditor() {
30
30
  doc.body.contentEditable = 'true'
31
31
 
32
32
  // Set default direction based on content
33
- const hasRTL = /[\u0591-\u07FF\uFB1D-\uFDFD\uFE70-\uFEFC]/.test(props.modelValue)
34
33
  doc.body.dir = hasRTL ? 'rtl' : 'ltr'
35
34
 
36
35
  const style = doc.createElement('style')
@@ -79,6 +78,9 @@ watch(() => props.modelValue, (newValue) => {
79
78
  })
80
79
 
81
80
  watch(() => editor.state.content, (newValue) => {
81
+ if (editor.state.doc?.body.innerHTML) {
82
+ editor.state.doc.body.dir = hasRTL ? 'rtl' : 'ltr'
83
+ }
82
84
  emit('update:modelValue', newValue)
83
85
  })
84
86
  </script>
@@ -11,6 +11,8 @@ export { default as Card } from './Card.vue'
11
11
  export { default as Carousel } from './Carousel.vue'
12
12
  export * from './dashboard'
13
13
  export { default as DataPreview } from './DataPreview.vue'
14
+ export { default as DataTable } from './DataTable/DataTable.vue'
15
+ export { default as TableSchema } from './DataTable/DataTable.vue'
14
16
  export { default as Dropdown } from './Dropdown.vue'
15
17
  export { default as FieldSetVue } from './FieldSetVue.vue'
16
18
  export { default as Flag } from './Flag.vue'
@@ -22,8 +24,8 @@ export * from './layout'
22
24
  export { default as ListItem } from './ListItem.vue'
23
25
  export { default as ListView } from './ListView.vue'
24
26
  export { default as Loading } from './Loading.vue'
25
- export { default as MapEmbed } from './MapEmbed.vue'
26
27
 
28
+ export { default as MapEmbed } from './MapEmbed.vue'
27
29
  export { default as Modal } from './Modal.vue'
28
30
  export { default as ModalConfirm } from './ModalConfirm.vue'
29
31
  export { default as ModalForm } from './ModalForm.vue'
@@ -31,7 +33,6 @@ export { default as NavBar } from './NavBar.vue'
31
33
  export { default as PageTitle } from './PageTitle.vue'
32
34
  export { default as Pill } from './Pill.vue'
33
35
  export { default as RouterWrapper } from './RouterWrapper.vue'
34
- export { default as TableSchema } from './TableSchema.vue'
35
36
 
36
37
  export { default as Title } from './Title.vue'
37
38
  export { default as ToolBar } from './ToolBar.vue'
@@ -0,0 +1,39 @@
1
+ import type { BglFormSchemaT } from '@bagelink/vue'
2
+ import type { Ref, ComputedRef } from 'vue'
3
+
4
+ export type SortDirectionsT = 'ASC' | 'DESC'
5
+ export type EmitOrderT = `${string} ${SortDirectionsT}`
6
+
7
+ export interface TableSchemaProps<T extends Record<string, any> = Record<string, any>> {
8
+ data: T[]
9
+ schema?: BglFormSchemaT<T> | (() => BglFormSchemaT<T>)
10
+ showFields?: string[]
11
+ useServerSort?: boolean
12
+ selectable?: boolean
13
+ onLastItemVisible?: () => void
14
+ }
15
+
16
+ export interface SortingOptions<T> {
17
+ onSort: (field: string, direction: SortDirectionsT) => void
18
+ }
19
+
20
+ export interface TableSelectionOptions<T> {
21
+ selectable: boolean | undefined
22
+ selectedItems: { value: string[] }
23
+ onSelect: (item: T) => void
24
+ }
25
+
26
+ export interface TableVirtualizationOptions<T> {
27
+ data: Ref<T[]> | ComputedRef<T[]>
28
+ itemHeight: number
29
+ onLastItemVisible?: () => void
30
+ }
31
+
32
+ export interface TableDataOptions<T> {
33
+ data: Ref<T[]> | ComputedRef<T[]>
34
+ schema?: BglFormSchemaT<T> | (() => BglFormSchemaT<T>)
35
+ showFields?: string[]
36
+ sortField: string
37
+ sortDirection: SortDirectionsT
38
+ useServerSort?: boolean
39
+ }