intelliwaketssveltekitv25 0.1.94 → 0.1.96

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/dist/Modal.svelte CHANGED
@@ -40,6 +40,7 @@
40
40
 
41
41
  onOK = () => {
42
42
  },
43
+ onOKPromise,
43
44
  onCancel = () => {
44
45
  },
45
46
  onClose = () => {
@@ -72,6 +73,7 @@
72
73
  borderFooter?: boolean
73
74
 
74
75
  onOK?: () => void
76
+ onOKPromise?: () => Promise<unknown>
75
77
  onCancel?: () => void
76
78
  onClose?: () => void
77
79
  } = $props()
@@ -82,10 +84,19 @@
82
84
  e?.stopPropagation()
83
85
  if (show !== noShowValue && !okDisabled && !disable) {
84
86
  onOK()
85
- if (!noCloseOnOK) {
86
- onClose()
87
- await tick()
88
- show = noShowValue
87
+ if (onOKPromise) {
88
+ return onOKPromise()
89
+ .then(async () => {
90
+ onClose()
91
+ await tick()
92
+ show = noShowValue
93
+ })
94
+ } else {
95
+ if (!noCloseOnOK) {
96
+ onClose()
97
+ await tick()
98
+ show = noShowValue
99
+ }
89
100
  }
90
101
  }
91
102
  }
@@ -27,6 +27,7 @@ type $$ComponentProps = {
27
27
  classButton?: string;
28
28
  borderFooter?: boolean;
29
29
  onOK?: () => void;
30
+ onOKPromise?: () => Promise<unknown>;
30
31
  onCancel?: () => void;
31
32
  onClose?: () => void;
32
33
  };
@@ -0,0 +1,33 @@
1
+ <script lang="ts">
2
+ import { ModalPrompt } from './ModalPromptDefinition'
3
+ import { Icon, Modal } from 'intelliwaketssveltekitv25'
4
+
5
+ let width = $derived($ModalPrompt?.size === 'sm' ? '20em' : $ModalPrompt?.size === 'lg' ? '30em' : $ModalPrompt?.size === 'xl' ? '35em' : '25em')
6
+ </script>
7
+
8
+ <Modal bind:show={$ModalPrompt}
9
+ {width}
10
+ noShowValue={null}
11
+ okButton={$ModalPrompt?.okLabel}
12
+ okFAProps={$ModalPrompt?.titleFAProps ?? $ModalPrompt?.faProps}
13
+ okDisabled={$ModalPrompt?.okDisabled}
14
+ onOK={$ModalPrompt?.okAction}
15
+ onOKPromise={$ModalPrompt?.okPromise}
16
+ cancelButton={$ModalPrompt?.cancelLabel}
17
+ onCancel={$ModalPrompt?.cancelAction}>
18
+ {#snippet header()}
19
+ {#if $ModalPrompt}
20
+ <span>
21
+ {#if $ModalPrompt.titleFAProps ?? $ModalPrompt?.faProps}
22
+ <Icon
23
+ {...$ModalPrompt.titleFAProps ?? $ModalPrompt?.faProps}
24
+ fw />
25
+ {/if}
26
+ {$ModalPrompt.title ?? ''}
27
+ </span>
28
+ {/if}
29
+ {/snippet}
30
+ {#snippet body()}
31
+ {$ModalPrompt?.messageBody ?? ''}
32
+ {/snippet}
33
+ </Modal>
@@ -0,0 +1,3 @@
1
+ declare const ModalPromptControl: import("svelte").Component<Record<string, never>, {}, "">;
2
+ type ModalPromptControl = ReturnType<typeof ModalPromptControl>;
3
+ export default ModalPromptControl;
@@ -0,0 +1,16 @@
1
+ import type { IFAProps } from 'intelliwaketssveltekitv25';
2
+ export type TModalPromptProps<T = unknown> = {
3
+ size?: 'sm' | 'lg' | 'xl';
4
+ title?: string;
5
+ titleFAProps?: IFAProps;
6
+ messageBody?: string;
7
+ okLabel?: string;
8
+ faProps?: IFAProps;
9
+ okFAProps?: IFAProps;
10
+ okAction?: () => void;
11
+ okPromise?: () => Promise<T>;
12
+ okDisabled?: boolean;
13
+ cancelLabel?: string;
14
+ cancelAction?: () => void;
15
+ };
16
+ export declare const ModalPrompt: import("svelte/store").Writable<TModalPromptProps<unknown> | null>;
@@ -0,0 +1,2 @@
1
+ import { writable } from 'svelte/store';
2
+ export const ModalPrompt = writable(null);
package/dist/index.d.ts CHANGED
@@ -19,6 +19,7 @@ import DisplayFraction from './DisplayFraction.svelte';
19
19
  import MasterDetailLayout from './MasterDetailLayout.svelte';
20
20
  import MessageBoxes from './MessageBoxes.svelte';
21
21
  import Modal from './Modal.svelte';
22
+ import ModalPromptControl from './ModalPromptControl.svelte';
22
23
  import ModalFormAction from './ModalFormAction.svelte';
23
24
  import MultiSelect from './MultiSelect.svelte';
24
25
  import Search from './Search.svelte';
@@ -36,6 +37,7 @@ export * from './FormEnhance';
36
37
  export * from './Functions';
37
38
  export * from './FunctionsServer';
38
39
  export * from './IsSmallDevice';
40
+ export * from './ModalPromptDefinition';
39
41
  export * from './PathAnalyzer';
40
42
  export * from './StoreDirtyTrack';
41
43
  export * from './TransitionToRight';
@@ -62,6 +64,7 @@ export { DisplayFraction };
62
64
  export { MasterDetailLayout };
63
65
  export { MessageBoxes };
64
66
  export { Modal };
67
+ export { ModalPromptControl };
65
68
  export { ModalFormAction };
66
69
  export { MultiSelect };
67
70
  export { Search };
package/dist/index.js CHANGED
@@ -20,6 +20,7 @@ import DisplayFraction from './DisplayFraction.svelte';
20
20
  import MasterDetailLayout from './MasterDetailLayout.svelte';
21
21
  import MessageBoxes from './MessageBoxes.svelte';
22
22
  import Modal from './Modal.svelte';
23
+ import ModalPromptControl from './ModalPromptControl.svelte';
23
24
  import ModalFormAction from './ModalFormAction.svelte';
24
25
  import MultiSelect from './MultiSelect.svelte';
25
26
  import Search from './Search.svelte';
@@ -37,6 +38,7 @@ export * from './FormEnhance';
37
38
  export * from './Functions';
38
39
  export * from './FunctionsServer';
39
40
  export * from './IsSmallDevice';
41
+ export * from './ModalPromptDefinition';
40
42
  export * from './PathAnalyzer';
41
43
  export * from './StoreDirtyTrack';
42
44
  export * from './TransitionToRight';
@@ -63,6 +65,7 @@ export { DisplayFraction };
63
65
  export { MasterDetailLayout };
64
66
  export { MessageBoxes };
65
67
  export { Modal };
68
+ export { ModalPromptControl };
66
69
  export { ModalFormAction };
67
70
  export { MultiSelect };
68
71
  export { Search };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "intelliwaketssveltekitv25",
3
- "version": "0.1.94",
3
+ "version": "0.1.96",
4
4
  "exports": {
5
5
  ".": {
6
6
  "types": "./dist/index.d.ts",