intelliwaketssveltekitv25 1.0.7 → 1.0.9

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.
@@ -124,16 +124,16 @@ export interface ITabHref {
124
124
  isInitial?: boolean;
125
125
  disabled?: boolean;
126
126
  }
127
- export interface ITabItem {
127
+ export interface ITabItem<T extends string = string> {
128
128
  hidden?: boolean;
129
129
  faProps?: IFAProps;
130
- key: string;
130
+ key: T;
131
131
  title?: string;
132
132
  /** undefined = don't show, null = show with spinner, number (0, 1, etc.) = show */
133
133
  badgeValue?: number | null;
134
134
  badgeColor?: string;
135
135
  disabled?: boolean;
136
- action?: (key: string) => void;
136
+ action?: (key: T) => void;
137
137
  }
138
138
  export type TTableCol<T extends Record<string, any> = Record<string, any>> = Partial<Record<keyof T, {
139
139
  name: string;
@@ -16,6 +16,7 @@
16
16
  noMagnifyingGlass,
17
17
  onChange = () => {
18
18
  },
19
+ hidden,
19
20
  ...restProps
20
21
  }: HTMLInputAttributes & {
21
22
  id?: string | undefined
@@ -83,7 +84,7 @@
83
84
 
84
85
  </script>
85
86
 
86
- <div class="relative grid grid-rows-1 inputSearch">
87
+ <div class="relative grid grid-rows-1 inputSearch" {hidden}>
87
88
 
88
89
  {#if !noMagnifyingGlass}
89
90
  <div class="absolute left-1 top-1/2 -translate-y-1/2 text-slate-300 pointer-events-none">
@@ -1,4 +1,4 @@
1
- <script lang='ts'>
1
+ <script lang='ts' generics="T extends string">
2
2
  import type { ITabItem } from './Definitions'
3
3
  import { DeepEqual, SortCompare } from '@solidbasisventures/intelliwaketsfoundation'
4
4
  import Icon from './Icon.svelte'
@@ -8,14 +8,16 @@
8
8
 
9
9
  let {
10
10
  tabItems,
11
- currentKey = $bindable<string | undefined>(tabItems.find(tabItem => !tabItem.hidden)?.key ?? undefined),
11
+ currentKey = $bindable<T | undefined>(tabItems.find(tabItem => !tabItem.hidden)?.key ?? undefined),
12
12
  printAllTabs = false,
13
- rounded = false
13
+ rounded = false,
14
+ onchange
14
15
  }: {
15
- tabItems: ITabItem[]
16
- currentKey: string | undefined
16
+ tabItems: ITabItem<T>[]
17
+ currentKey: T | undefined
17
18
  printAllTabs?: boolean
18
19
  rounded?: boolean
20
+ onchange?: (key: T) => void
19
21
  } = $props()
20
22
 
21
23
  let openedKeys = $state<string[]>([])
@@ -32,6 +34,9 @@
32
34
  }
33
35
  } else if (!visibleItems.some(item => item.key === currentKey)) {
34
36
  currentKey = tabItems.find(tabItem => !tabItem.hidden)?.key ?? undefined
37
+ if (currentKey) {
38
+ onchange?.(currentKey)
39
+ }
35
40
  }
36
41
 
37
42
  const newOpenedKeys = visibleItems.filter(item => item.key === currentKey || openedKeys.includes(item.key)).map(item => item.key).sort(SortCompare)
@@ -111,7 +116,10 @@
111
116
  class:isOpen={currentKey === item.key}
112
117
  onclick={() => {
113
118
  if (item.action) item.action(item.key)
114
- else currentKey = item.key
119
+ else {
120
+ currentKey = item.key
121
+ onchange?.(item.key)
122
+ }
115
123
  }}>
116
124
  {#if !!item.faProps}
117
125
  <Icon {...item.faProps}
@@ -129,7 +137,10 @@
129
137
  class:isOpen={currentKey === item.key}
130
138
  onclick={() => {
131
139
  if (item.action) item.action(item.key)
132
- else currentKey = item.key
140
+ else {
141
+ currentKey = item.key
142
+ onchange?.(item.key)
143
+ }
133
144
  }}>
134
145
  {#if !!item.faProps}
135
146
  <Icon {...item.faProps}
@@ -1,10 +1,31 @@
1
1
  import type { ITabItem } from './Definitions';
2
- type $$ComponentProps = {
3
- tabItems: ITabItem[];
4
- currentKey: string | undefined;
5
- printAllTabs?: boolean;
6
- rounded?: boolean;
2
+ declare function $$render<T extends string>(): {
3
+ props: {
4
+ tabItems: ITabItem<T>[];
5
+ currentKey: T | undefined;
6
+ printAllTabs?: boolean;
7
+ rounded?: boolean;
8
+ onchange?: (key: T) => void;
9
+ };
10
+ exports: {};
11
+ bindings: "currentKey";
12
+ slots: {};
13
+ events: {};
7
14
  };
8
- declare const TabHeader: import("svelte").Component<$$ComponentProps, {}, "currentKey">;
9
- type TabHeader = ReturnType<typeof TabHeader>;
15
+ declare class __sveltets_Render<T extends string> {
16
+ props(): ReturnType<typeof $$render<T>>['props'];
17
+ events(): ReturnType<typeof $$render<T>>['events'];
18
+ slots(): ReturnType<typeof $$render<T>>['slots'];
19
+ bindings(): "currentKey";
20
+ exports(): {};
21
+ }
22
+ interface $$IsomorphicComponent {
23
+ new <T extends string>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<T>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<T>['props']>, ReturnType<__sveltets_Render<T>['events']>, ReturnType<__sveltets_Render<T>['slots']>> & {
24
+ $$bindings?: ReturnType<__sveltets_Render<T>['bindings']>;
25
+ } & ReturnType<__sveltets_Render<T>['exports']>;
26
+ <T extends string>(internal: unknown, props: ReturnType<__sveltets_Render<T>['props']> & {}): ReturnType<__sveltets_Render<T>['exports']>;
27
+ z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
28
+ }
29
+ declare const TabHeader: $$IsomorphicComponent;
30
+ type TabHeader<T extends string> = InstanceType<typeof TabHeader<T>>;
10
31
  export default TabHeader;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "intelliwaketssveltekitv25",
3
- "version": "1.0.7",
3
+ "version": "1.0.9",
4
4
  "exports": {
5
5
  ".": {
6
6
  "types": "./dist/index.d.ts",