@webitel/ui-sdk 25.10.8 → 25.10.10

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webitel/ui-sdk",
3
- "version": "25.10.8",
3
+ "version": "25.10.10",
4
4
  "private": false,
5
5
  "scripts": {
6
6
  "make-all": "npm version patch --git-tag-version false && npm run build && (npm run build:types || true) && (npm run lint:fix || true) && npm run publish-lib",
@@ -56,7 +56,7 @@
56
56
  "@vuepic/vue-datepicker": "^4.5.1",
57
57
  "@vueuse/components": "^13.0.0",
58
58
  "@webitel/api-services": "^0.0.42",
59
- "@webitel/styleguide": "^24.12.61",
59
+ "@webitel/styleguide": "^24.12.62",
60
60
  "autosize": "^6.0.1",
61
61
  "axios": "^1.8.3",
62
62
  "clipboard-copy": "^4.0.1",
@@ -1,5 +1,5 @@
1
1
  :root {
2
- --wt-app-header-min-height: 56px;
2
+ --wt-app-header-min-height: 40px;
3
3
  --wt-app-header-padding: var(--spacing-sm);
4
4
  --wt-app-header-background: var(--dp-9-surface-color);
5
5
 
@@ -20,7 +20,7 @@
20
20
  background: var(--wt-app-header-background);
21
21
  padding: var(--wt-app-header-padding);
22
22
  min-height: var(
23
- --wt-app-header-min-height
23
+ --wt-app-header-min-height
24
24
  ); // fixed height because anything can be put inside slot, so padding won't work properly
25
25
  }
26
26
  </style>
@@ -1,27 +1,26 @@
1
1
  <template>
2
- <div
3
- :class="[`wt-avatar--size-${size}`]"
2
+ <PAvatar
3
+ :class="[ `p-avatar-${props.size}` ]"
4
+ :shape="props.shape"
5
+ :label="avatarLetters"
6
+ :style="{ background: `var(${avatarLettersBackground})` }"
4
7
  class="wt-avatar"
5
8
  >
6
- <wt-badge
7
- v-if="badge"
8
- :color-variable="badgeColorVar"
9
- :icon-badge="isBadge ? props.status : null"
10
- />
11
- <div
12
- v-if="isLetterAvatar"
13
- :style="{ background: `var(${avatarLettersBackground})` }"
14
- class="wt-avatar__letters"
15
- >
16
- {{ avatarLetters }}
17
- </div>
18
- <img
19
- v-else
20
- :src="imgSrc"
21
- alt="avatar"
22
- class="wt-avatar__img"
23
- />
24
- </div>
9
+ <template #default>
10
+ <wt-badge
11
+ v-if="badge"
12
+ :color-variable="badgeColorVar"
13
+ :icon-badge="isBadge ? props.status : null"
14
+ />
15
+
16
+ <img
17
+ v-if="!isLetterAvatar"
18
+ :src="imgSrc"
19
+ alt="avatar"
20
+ class="wt-avatar__img"
21
+ />
22
+ </template>
23
+ </PAvatar>
25
24
  </template>
26
25
 
27
26
  <script setup>
@@ -52,6 +51,11 @@ const props = defineProps({
52
51
  options: AbstractUserStatus,
53
52
  default: AbstractUserStatus.OFFLINE,
54
53
  },
54
+ shape: {
55
+ type: String,
56
+ default: 'circle',
57
+ options: ['circle', 'square'],
58
+ }
55
59
  });
56
60
 
57
61
  const isLetterAvatar = computed(() => !props.src && props.username);
@@ -68,26 +72,29 @@ const avatarLetters = computed(() => {
68
72
  });
69
73
 
70
74
  const avatarLettersBackground = computed(() => {
75
+ if (!avatarLetters.value) {
76
+ return ''
77
+ }
71
78
  // en.concat(uk)
72
79
  const letterList = [
73
- { letters: 'AB'.concat('АБВ'), color: '--wt-avatar-letters-p1-color' },
74
- { letters: 'CD'.concat('ГҐД'), color: '--wt-avatar-letters-p2-color' },
75
- { letters: 'EF'.concat('ЕЄЖ'), color: '--wt-avatar-letters-p3-color' },
76
- { letters: 'GH'.concat('ЗИІ'), color: '--wt-avatar-letters-p4-color' },
77
- { letters: 'IJ'.concat('ЇЙК'), color: '--wt-avatar-letters-p5-color' },
78
- { letters: 'KL'.concat('ЛМН'), color: '--wt-avatar-letters-p6-color' },
79
- { letters: 'MN'.concat('ОПР'), color: '--wt-avatar-letters-p7-color' },
80
- { letters: 'OP'.concat('СТУ'), color: '--wt-avatar-letters-p8-color' },
81
- { letters: 'QR'.concat('ФХЦ'), color: '--wt-avatar-letters-p9-color' },
82
- { letters: 'ST'.concat('ЧШЩ'), color: '--wt-avatar-letters-p10-color' },
83
- { letters: 'UV'.concat('ЬЮЯ'), color: '--wt-avatar-letters-p11-color' },
84
- { letters: 'WX'.concat(''), color: '--wt-avatar-letters-p12-color' },
85
- { letters: 'YZ'.concat(''), color: '--wt-avatar-letters-p13-color' },
80
+ { letters: 'AB'.concat('АБВ'), color: '--p-avatar-letters-p1-color' },
81
+ { letters: 'CD'.concat('ГҐД'), color: '--p-avatar-letters-p2-color' },
82
+ { letters: 'EF'.concat('ЕЄЖ'), color: '--p-avatar-letters-p3-color' },
83
+ { letters: 'GH'.concat('ЗИІ'), color: '--p-avatar-letters-p4-color' },
84
+ { letters: 'IJ'.concat('ЇЙК'), color: '--p-avatar-letters-p5-color' },
85
+ { letters: 'KL'.concat('ЛМН'), color: '--p-avatar-letters-p6-color' },
86
+ { letters: 'MN'.concat('ОПР'), color: '--p-avatar-letters-p7-color' },
87
+ { letters: 'OP'.concat('СТУ'), color: '--p-avatar-letters-p8-color' },
88
+ { letters: 'QR'.concat('ФХЦ'), color: '--p-avatar-letters-p9-color' },
89
+ { letters: 'ST'.concat('ЧШЩ'), color: '--p-avatar-letters-p10-color' },
90
+ { letters: 'UV'.concat('ЬЮЯ'), color: '--p-avatar-letters-p11-color' },
91
+ { letters: 'WX'.concat(''), color: '--p-avatar-letters-p12-color' },
92
+ { letters: 'YZ'.concat(''), color: '--p-avatar-letters-p13-color' },
86
93
  ];
87
94
  const searchedLetter = letterList.find(({ letters }) =>
88
95
  letters.includes(avatarLetters.value.at(0).toUpperCase()),
89
96
  );
90
- return searchedLetter?.color || '--wt-avatar-letters-p1-color';
97
+ return searchedLetter?.color || '--p-avatar-letters-p1-color';
91
98
  });
92
99
 
93
100
  const imgSrc = computed(() => props.src || defaultAvatar);
@@ -126,35 +133,8 @@ const badgeColorVar = computed(() => {
126
133
  </style>
127
134
 
128
135
  <style lang="scss" scoped>
129
- %wt-avatar-typo-xs {
130
- font-size: 10px;
131
- }
132
-
133
- %wt-avatar-typo-sm {
134
- font-size: 12px;
135
- }
136
-
137
- %wt-avatar-typo-md {
138
- font-size: 14px;
139
- }
140
-
141
- %wt-avatar-typo-lg {
142
- font-size: 20px;
143
- }
144
-
145
- %wt-avatar-typo-2xl {
146
- font-size: 36px;
147
- }
148
-
149
- %wt-avatar-typo-3xl {
150
- font-size: 48px;
151
- }
152
-
153
136
  .wt-avatar {
154
137
  position: relative;
155
- border-radius: 50%;
156
- width: var(--wt-avatar-size);
157
- height: var(--wt-avatar-size);
158
138
  user-select: none;
159
139
 
160
140
  &__letters {
@@ -163,6 +143,7 @@ const badgeColorVar = computed(() => {
163
143
  align-items: center;
164
144
  border-radius: 50%;
165
145
  height: 100%;
146
+ width: 100%;
166
147
  color: var(--wt-avatar-text-color);
167
148
  }
168
149
 
@@ -171,46 +152,5 @@ const badgeColorVar = computed(() => {
171
152
  width: 100%;
172
153
  height: 100%;
173
154
  }
174
-
175
- &--size-xs {
176
- @extend %wt-avatar-typo-xs;
177
- width: var(--wt-avatar-size--size-xs);
178
- height: var(--wt-avatar-size--size-xs);
179
- }
180
-
181
- &--size-sm {
182
- @extend %wt-avatar-typo-sm;
183
- width: var(--wt-avatar-size--size-sm);
184
- height: var(--wt-avatar-size--size-sm);
185
- }
186
-
187
- &--size-md {
188
- @extend %wt-avatar-typo-md;
189
- width: var(--wt-avatar-size--size-md);
190
- height: var(--wt-avatar-size--size-md);
191
- }
192
-
193
- &--size-lg {
194
- @extend %wt-avatar-typo-lg;
195
- width: var(--wt-avatar-size--size-lg);
196
- height: var(--wt-avatar-size--size-lg);
197
- }
198
-
199
- &--size-xl {
200
- width: var(--wt-avatar-size--size-xl);
201
- height: var(--wt-avatar-size--size-xl);
202
- }
203
-
204
- &--size-2xl {
205
- @extend %wt-avatar-typo-2xl;
206
- width: var(--wt-avatar-size--size-2xl);
207
- height: var(--wt-avatar-size--size-2xl);
208
- }
209
-
210
- &--size-3xl {
211
- @extend %wt-avatar-typo-3xl;
212
- width: var(--wt-avatar-size--size-3xl);
213
- height: var(--wt-avatar-size--size-3xl);
214
- }
215
155
  }
216
156
  </style>
@@ -0,0 +1,28 @@
1
+ <template>
2
+ <PMenubar class="wt-menubar">
3
+ <template
4
+ v-for="(_, name) in slots"
5
+ :key="name"
6
+ #[name]
7
+ >
8
+ <slot v-if="name !== 'default'" :name="name" />
9
+ </template>
10
+ </PMenubar>
11
+ </template>
12
+
13
+ <script setup>
14
+ /**
15
+ * @author Oleksandr Palonnyi
16
+ *
17
+ * @description https://webitel.atlassian.net/browse/WTEL-7529?focusedCommentId=692643
18
+ * */
19
+ import { useSlots } from 'vue'
20
+
21
+ const slots = useSlots()
22
+ </script>
23
+
24
+ <style lang="scss">
25
+ </style>
26
+
27
+ <style lang="scss" scoped>
28
+ </style>
@@ -88,7 +88,7 @@ export default {
88
88
  return this.draft
89
89
  .filter((header) => !this.staticHeaders.includes(header.value))
90
90
  .sort((a, b) => {
91
- return this.shownColLabel(a).localeCompare(this.shownColLabel(b));
91
+ return this.shownColLabel(a)?.localeCompare(this.shownColLabel(b));
92
92
  // sorting headers for alphabet just in popup
93
93
  });
94
94
  },
@@ -1,4 +1,5 @@
1
1
  import PAutoComplete from 'primevue/autocomplete';
2
+ import PAvatar from 'primevue/avatar';
2
3
  import PBreadcrumb from 'primevue/breadcrumb';
3
4
  import PButton from 'primevue/button';
4
5
  import PCheckbox from 'primevue/checkbox';
@@ -6,10 +7,12 @@ import PChip from 'primevue/chip';
6
7
  import PrimeVue from 'primevue/config';
7
8
  import PDivider from 'primevue/divider';
8
9
  import PInputText from 'primevue/inputtext';
10
+ import PMenubar from 'primevue/menubar';
9
11
  import PPopover from 'primevue/popover';
10
12
  import PRadio from 'primevue/radiobutton';
11
13
  import PSlider from 'primevue/slider'
12
14
  import PToggleSwitch from 'primevue/toggleswitch';
15
+ import PToolbar from 'primevue/toolbar';
13
16
  import Tooltip from 'primevue/tooltip';
14
17
 
15
18
  import WebitelTheme from './theme/webitel-theme.js';
@@ -34,6 +37,9 @@ const initPrimevue = (app) => {
34
37
  app.component('PAutoComplete', changeComponentCompatMode(PAutoComplete));
35
38
  app.component('PInputText', changeComponentCompatMode(PInputText));
36
39
  app.component('PPopover', changeComponentCompatMode(PPopover));
40
+ app.component('PMenubar', changeComponentCompatMode(PMenubar));
41
+ app.component('PToolbar', changeComponentCompatMode(PToolbar));
42
+ app.component('PAvatar', changeComponentCompatMode(PAvatar));
37
43
  app.component('PCheckbox', changeComponentCompatMode(PCheckbox));
38
44
  app.component('PRadio', changeComponentCompatMode(PRadio));
39
45
  app.component('PChip', changeComponentCompatMode(PChip));
@@ -0,0 +1,39 @@
1
+ import { AvatarScheme } from '@webitel/styleguide/component-schemes';
2
+
3
+ const generateCustomSizeCss = ({ size, dt }) => `
4
+ .p-avatar-${size} {
5
+ width: ${dt(`avatar-${size}-width`)};
6
+ height: ${dt(`avatar-${size}-width`)};
7
+ font-size: ${dt(`avatar-${size}-font-size`)};
8
+ }
9
+ `;
10
+
11
+ const avatar = {
12
+ ...AvatarScheme.sizes,
13
+ colorScheme: AvatarScheme.colorScheme,
14
+
15
+ css: ({ dt }) => `
16
+ ${generateCustomSizeCss({ size: '2xs', dt })}
17
+ ${generateCustomSizeCss({ size: 'xs', dt })}
18
+ ${generateCustomSizeCss({ size: 'sm', dt })}
19
+ ${generateCustomSizeCss({ size: 'md', dt })}
20
+ ${generateCustomSizeCss({ size: '2xl', dt })}
21
+ ${generateCustomSizeCss({ size: '3xl', dt })}
22
+
23
+ .p-avatar {
24
+ display: block;
25
+ background: transparent;
26
+ }
27
+
28
+ .p-avatar-label {
29
+ display: flex;
30
+ justify-content: center;
31
+ align-items: center;
32
+ border-radius: 50%;
33
+ height: 100%;
34
+ width: 100%;
35
+ }
36
+ `,
37
+ };
38
+
39
+ export default avatar;
@@ -1,27 +1,33 @@
1
1
  import autocomplete from './autocomplete/autocomplete.js';
2
+ import avatar from './avatar/avatar.js';
2
3
  import breadcrumb from './breadcrumb/breadcrumb.js';
3
4
  import button from './button/button.js';
4
5
  import checkbox from './checkbox/checkbox.js';
5
6
  import chip from './chip/chip.js';
6
7
  import divider from './divider/divider.js';
8
+ import menubar from './menubar/menubar.js';
7
9
  import popover from './popover/popover.js';
8
10
  import radio from './radio/radio.js';
9
11
  import slider from './slider/slider.js'
10
12
  import switcher from './switcher/switcher.js';
13
+ import toolbar from './toolbar/toolbar.js';
11
14
  import tooltip from './tooltip/tooltip.js';
12
15
 
13
16
  const components = {
14
- button,
15
17
  autocomplete,
16
- popover,
17
- tooltip,
18
+ avatar,
19
+ breadcrumb,
20
+ button,
18
21
  chip,
19
22
  checkbox,
20
23
  toggleswitch: switcher,
21
- breadcrumb,
22
- slider,
23
24
  divider,
25
+ menubar,
26
+ popover,
24
27
  radiobutton: radio,
28
+ slider,
29
+ tooltip,
30
+ toolbar,
25
31
  };
26
32
 
27
33
  export default components;
@@ -0,0 +1,22 @@
1
+ import { MenubarScheme } from '@webitel/styleguide/component-schemes';
2
+
3
+ const generateCustomSlotCss = ({ slot, dt }) => `
4
+ .p-menubar-${slot} {
5
+ display: flex;
6
+ justify-content: center;
7
+ align-items: center;
8
+ gap: ${dt('menubar.gap')};
9
+ }
10
+ `;
11
+
12
+ const menubar = {
13
+ ...MenubarScheme.sizes,
14
+ colorScheme: MenubarScheme.colorScheme,
15
+
16
+ css: ({ dt }) => `
17
+ ${generateCustomSlotCss({ slot: 'start', dt })}
18
+ ${generateCustomSlotCss({ slot: 'end', dt })}
19
+ `,
20
+ };
21
+
22
+ export default menubar;
@@ -0,0 +1,8 @@
1
+ import { ToolbarScheme } from '@webitel/styleguide/component-schemes';
2
+
3
+ const toolbar = {
4
+ ...ToolbarScheme.sizes,
5
+ colorScheme: ToolbarScheme.colorScheme,
6
+ };
7
+
8
+ export default toolbar;
@@ -29,7 +29,7 @@ import prettifyFileSize from './prettifyFileSize.js';
29
29
  import prettifyTime from './prettifyTime.js';
30
30
  import preventHiddenPageCallsDecorator from './preventHiddenPageCallsDecorator.js';
31
31
  import saveAsJSON from './saveAsJSON.js';
32
- import { queryToSortAdapter, sortToQueryAdapter } from './sortQueryAdapters.js';
32
+ import { getNextSortOrder,queryToSortAdapter, sortToQueryAdapter } from './sortQueryAdapters.js';
33
33
  import updateObject from './updateObject.js';
34
34
 
35
35
  export {
@@ -39,6 +39,7 @@ export {
39
39
  convertDuration,
40
40
  debounce,
41
41
  eventBus,
42
+ getNextSortOrder,
42
43
  isEmpty,
43
44
  isRelativeDatetimeValue,
44
45
  kebabToCamel,
@@ -2,12 +2,14 @@ declare const _default: import("vue").DefineComponent<{}, {
2
2
  size: string;
3
3
  status: string;
4
4
  badge: boolean;
5
+ shape: string;
5
6
  src?: string;
6
7
  username?: string;
7
8
  $props: {
8
9
  readonly size?: string;
9
10
  readonly status?: string;
10
11
  readonly badge?: boolean;
12
+ readonly shape?: string;
11
13
  readonly src?: string;
12
14
  readonly username?: string;
13
15
  };
@@ -0,0 +1,10 @@
1
+ declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
2
+ export default _default;
3
+ type __VLS_WithSlots<T, S> = T & (new () => {
4
+ $slots: S;
5
+ });
6
+ declare const __VLS_component: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
7
+ type __VLS_Slots = {
8
+ [x: string]: (props: {}) => any;
9
+ [x: number]: (props: {}) => any;
10
+ };
@@ -0,0 +1,96 @@
1
+ export default avatar;
2
+ declare const avatar: {
3
+ colorScheme: {
4
+ light: {
5
+ root: {
6
+ background: string;
7
+ color: string;
8
+ };
9
+ letters: {
10
+ 'p1-color': string;
11
+ 'p2-color': string;
12
+ 'p3-color': string;
13
+ 'p4-color': string;
14
+ 'p5-color': string;
15
+ 'p6-color': string;
16
+ 'p7-color': string;
17
+ 'p8-color': string;
18
+ 'p9-color': string;
19
+ 'p10-color': string;
20
+ 'p11-color': string;
21
+ 'p12-color': string;
22
+ 'p13-color': string;
23
+ 'p14-color': string;
24
+ };
25
+ };
26
+ dark: {
27
+ root: {
28
+ background: string;
29
+ color: string;
30
+ };
31
+ letters: {
32
+ 'p1-color': string;
33
+ 'p2-color': string;
34
+ 'p3-color': string;
35
+ 'p4-color': string;
36
+ 'p5-color': string;
37
+ 'p6-color': string;
38
+ 'p7-color': string;
39
+ 'p8-color': string;
40
+ 'p9-color': string;
41
+ 'p10-color': string;
42
+ 'p11-color': string;
43
+ 'p12-color': string;
44
+ 'p13-color': string;
45
+ 'p14-color': string;
46
+ };
47
+ };
48
+ };
49
+ css: ({ dt }: {
50
+ dt: any;
51
+ }) => string;
52
+ width: string;
53
+ height: string;
54
+ fontSize: string;
55
+ borderRadius: string;
56
+ '2xs': {
57
+ width: string;
58
+ height: string;
59
+ fontSize: string;
60
+ };
61
+ xs: {
62
+ width: string;
63
+ height: string;
64
+ fontSize: string;
65
+ };
66
+ sm: {
67
+ width: string;
68
+ height: string;
69
+ fontSize: string;
70
+ };
71
+ md: {
72
+ width: string;
73
+ height: string;
74
+ fontSize: string;
75
+ };
76
+ lg: {
77
+ width: string;
78
+ height: string;
79
+ fontSize: string;
80
+ };
81
+ xl: {
82
+ width: string;
83
+ height: string;
84
+ fontSize: string;
85
+ };
86
+ '2xl': {
87
+ width: string;
88
+ height: string;
89
+ fontSize: string;
90
+ };
91
+ '3xl': {
92
+ width: string;
93
+ height: string;
94
+ fontSize: string;
95
+ };
96
+ };
@@ -1,25 +1,31 @@
1
1
  export default components;
2
2
  declare namespace components {
3
- export { button };
4
3
  export { autocomplete };
5
- export { popover };
6
- export { tooltip };
4
+ export { avatar };
5
+ export { breadcrumb };
6
+ export { button };
7
7
  export { chip };
8
8
  export { checkbox };
9
9
  export { switcher as toggleswitch };
10
- export { breadcrumb };
11
- export { slider };
12
10
  export { divider };
11
+ export { menubar };
12
+ export { popover };
13
13
  export { radio as radiobutton };
14
+ export { slider };
15
+ export { tooltip };
16
+ export { toolbar };
14
17
  }
15
- import button from './button/button.js';
16
18
  import autocomplete from './autocomplete/autocomplete.js';
17
- import popover from './popover/popover.js';
18
- import tooltip from './tooltip/tooltip.js';
19
+ import avatar from './avatar/avatar.js';
20
+ import breadcrumb from './breadcrumb/breadcrumb.js';
21
+ import button from './button/button.js';
19
22
  import chip from './chip/chip.js';
20
23
  import checkbox from './checkbox/checkbox.js';
21
24
  import switcher from './switcher/switcher.js';
22
- import breadcrumb from './breadcrumb/breadcrumb.js';
23
- import slider from './slider/slider.js';
24
25
  import divider from './divider/divider.js';
26
+ import menubar from './menubar/menubar.js';
27
+ import popover from './popover/popover.js';
25
28
  import radio from './radio/radio.js';
29
+ import slider from './slider/slider.js';
30
+ import tooltip from './tooltip/tooltip.js';
31
+ import toolbar from './toolbar/toolbar.js';
@@ -0,0 +1,23 @@
1
+ export default menubar;
2
+ declare const menubar: {
3
+ colorScheme: {
4
+ light: {
5
+ background: string;
6
+ borderColor: string;
7
+ color: string;
8
+ transitionDuration: string;
9
+ };
10
+ dark: {
11
+ background: string;
12
+ borderColor: string;
13
+ color: string;
14
+ transitionDuration: string;
15
+ };
16
+ };
17
+ css: ({ dt }: {
18
+ dt: any;
19
+ }) => string;
20
+ gap: string;
21
+ padding: string;
22
+ borderRadius: string;
23
+ };
@@ -0,0 +1,20 @@
1
+ export default toolbar;
2
+ declare const toolbar: {
3
+ colorScheme: {
4
+ light: {
5
+ background: string;
6
+ borderColor: string;
7
+ color: string;
8
+ transitionDuration: string;
9
+ };
10
+ dark: {
11
+ background: string;
12
+ borderColor: string;
13
+ color: string;
14
+ transitionDuration: string;
15
+ };
16
+ };
17
+ gap: string;
18
+ padding: string;
19
+ borderRadius: string;
20
+ };
@@ -26,4 +26,5 @@ import { snakeToKebab } from './caseConverters.js';
26
26
  import { sortToQueryAdapter } from './sortQueryAdapters.js';
27
27
  import updateObject from './updateObject.js';
28
28
  import { wtlog } from './logger.js';
29
- export { camelToKebab, camelToSnake, compareSize, convertDuration, debounce, eventBus, isEmpty, isRelativeDatetimeValue, kebabToCamel, kebabToSnake, normalizeToTimestamp, objCamelToKebab, objCamelToSnake, objSnakeToCamel, prettifyFileSize, prettifyTime, preventHiddenPageCallsDecorator, queryToSortAdapter, saveAsJSON, sizeGreaterOrEqual, sizeGreaterThen, sizeSmallerOrEqual, sizeSmallerThen, snakeToCamel, snakeToKebab, sortToQueryAdapter, updateObject, wtlog };
29
+ import { getNextSortOrder } from './sortQueryAdapters.js';
30
+ export { camelToKebab, camelToSnake, compareSize, convertDuration, debounce, eventBus, isEmpty, isRelativeDatetimeValue, kebabToCamel, kebabToSnake, normalizeToTimestamp, objCamelToKebab, objCamelToSnake, objSnakeToCamel, prettifyFileSize, prettifyTime, preventHiddenPageCallsDecorator, queryToSortAdapter, saveAsJSON, sizeGreaterOrEqual, sizeGreaterThen, sizeSmallerOrEqual, sizeSmallerThen, snakeToCamel, snakeToKebab, sortToQueryAdapter, updateObject, wtlog, getNextSortOrder };