@cloudparker/moldex.js 4.1.7 → 4.1.8

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 (220) hide show
  1. package/dist/actions/badge.d.ts +12 -0
  2. package/dist/actions/badge.js +22 -0
  3. package/dist/actions/index.d.ts +3 -0
  4. package/dist/actions/index.js +3 -0
  5. package/dist/actions/no-context-menu.d.ts +3 -0
  6. package/dist/actions/no-context-menu.js +11 -0
  7. package/dist/actions/ripple.css +29 -0
  8. package/dist/actions/ripple.d.ts +7 -0
  9. package/dist/actions/ripple.js +74 -0
  10. package/dist/index.d.ts +3 -0
  11. package/dist/index.js +3 -0
  12. package/dist/services/date/date-service.d.ts +52 -0
  13. package/dist/services/date/date-service.js +206 -0
  14. package/dist/services/dialog/dialog-service.d.ts +96 -0
  15. package/dist/services/dialog/dialog-service.js +350 -0
  16. package/dist/services/index.d.ts +12 -0
  17. package/dist/services/index.js +12 -0
  18. package/dist/services/navigation/navigation-service.d.ts +39 -0
  19. package/dist/services/navigation/navigation-service.js +100 -0
  20. package/dist/services/screen/screen-service.d.ts +17 -0
  21. package/dist/services/screen/screen-service.js +39 -0
  22. package/dist/services/toast/toast-service.d.ts +5 -0
  23. package/dist/services/toast/toast-service.js +26 -0
  24. package/dist/services/utils/color-service.d.ts +46 -0
  25. package/dist/services/utils/color-service.js +73 -0
  26. package/dist/services/utils/currency-service.d.ts +91 -0
  27. package/dist/services/utils/currency-service.js +140 -0
  28. package/dist/services/utils/download-service.d.ts +91 -0
  29. package/dist/services/utils/download-service.js +159 -0
  30. package/dist/services/utils/file-service.d.ts +140 -0
  31. package/dist/services/utils/file-service.js +301 -0
  32. package/dist/services/utils/http-service.d.ts +77 -0
  33. package/dist/services/utils/http-service.js +158 -0
  34. package/dist/services/utils/image-service.d.ts +107 -0
  35. package/dist/services/utils/image-service.js +260 -0
  36. package/dist/services/utils/melody-service.d.ts +5 -0
  37. package/dist/services/utils/melody-service.js +41 -0
  38. package/dist/services/utils/utils-service.d.ts +260 -0
  39. package/dist/services/utils/utils-service.js +413 -0
  40. package/dist/stores/referrer-store/referrer-store.svelte.d.ts +3 -0
  41. package/dist/stores/referrer-store/referrer-store.svelte.js +11 -0
  42. package/dist/stores/screen-size/screen-size-store.svelte.d.ts +18 -0
  43. package/dist/stores/screen-size/screen-size-store.svelte.js +41 -0
  44. package/dist/types.d.ts +6 -0
  45. package/dist/types.js +7 -0
  46. package/dist/views/core/button/components/button/button.svelte +161 -0
  47. package/dist/views/core/button/components/button/button.svelte.d.ts +4 -0
  48. package/dist/views/core/button/components/button-back/button-back.svelte +46 -0
  49. package/dist/views/core/button/components/button-back/button-back.svelte.d.ts +11 -0
  50. package/dist/views/core/button/components/button-close/button-close.svelte +8 -0
  51. package/dist/views/core/button/components/button-close/button-close.svelte.d.ts +4 -0
  52. package/dist/views/core/button/components/button-close-icon/button-close-icon.svelte +47 -0
  53. package/dist/views/core/button/components/button-close-icon/button-close-icon.svelte.d.ts +11 -0
  54. package/dist/views/core/button/components/button-dropdown/button-dropdown.svelte +149 -0
  55. package/dist/views/core/button/components/button-dropdown/button-dropdown.svelte.d.ts +24 -0
  56. package/dist/views/core/button/components/button-list-item/button-list-item.svelte +136 -0
  57. package/dist/views/core/button/components/button-list-item/button-list-item.svelte.d.ts +4 -0
  58. package/dist/views/core/button/components/button-menu/button-menu.svelte +105 -0
  59. package/dist/views/core/button/components/button-menu/button-menu.svelte.d.ts +21 -0
  60. package/dist/views/core/button/components/button-ok/button-ok.svelte +9 -0
  61. package/dist/views/core/button/components/button-ok/button-ok.svelte.d.ts +4 -0
  62. package/dist/views/core/button/components/button-search/button-search.svelte +72 -0
  63. package/dist/views/core/button/components/button-search/button-search.svelte.d.ts +21 -0
  64. package/dist/views/core/button/components/switch/switch.svelte +62 -0
  65. package/dist/views/core/button/components/switch/switch.svelte.d.ts +4 -0
  66. package/dist/views/core/button/index.d.ts +12 -0
  67. package/dist/views/core/button/index.js +12 -0
  68. package/dist/views/core/button/types.d.ts +100 -0
  69. package/dist/views/core/button/types.js +1 -0
  70. package/dist/views/core/common/components/content-area/content-area.svelte +47 -0
  71. package/dist/views/core/common/components/content-area/content-area.svelte.d.ts +12 -0
  72. package/dist/views/core/common/components/loading/loading.svelte +14 -0
  73. package/dist/views/core/common/components/loading/loading.svelte.d.ts +7 -0
  74. package/dist/views/core/common/components/virtual-scrolling/virtual-scrolling-list.svelte +60 -0
  75. package/dist/views/core/common/components/virtual-scrolling/virtual-scrolling-list.svelte.d.ts +11 -0
  76. package/dist/views/core/common/index.js +9 -0
  77. package/dist/views/core/dialog/components/cropper-dialog/cropper-dialog.svelte +51 -0
  78. package/dist/views/core/dialog/components/cropper-dialog/cropper-dialog.svelte.d.ts +5 -0
  79. package/dist/views/core/dialog/components/dialog/dialog.svelte +370 -0
  80. package/dist/views/core/dialog/components/dialog/dialog.svelte.d.ts +19 -0
  81. package/dist/views/core/dialog/components/loading-dialog/loading-dialog.svelte +42 -0
  82. package/dist/views/core/dialog/components/loading-dialog/loading-dialog.svelte.d.ts +12 -0
  83. package/dist/views/core/dialog/components/msg-dialog/msg-dialog.svelte +22 -0
  84. package/dist/views/core/dialog/components/msg-dialog/msg-dialog.svelte.d.ts +9 -0
  85. package/dist/views/core/dialog/components/number-field-dialog/number-field-dialog.svelte +57 -0
  86. package/dist/views/core/dialog/components/number-field-dialog/number-field-dialog.svelte.d.ts +14 -0
  87. package/dist/views/core/dialog/components/picker-dialog/picker-dialog.svelte +181 -0
  88. package/dist/views/core/dialog/components/picker-dialog/picker-dialog.svelte.d.ts +5 -0
  89. package/dist/views/core/dialog/components/text-field-dialog/text-field-dialog.svelte +56 -0
  90. package/dist/views/core/dialog/components/text-field-dialog/text-field-dialog.svelte.d.ts +15 -0
  91. package/dist/views/core/dialog/components/textarea-field-dialog/textarea-field-dialog.svelte +56 -0
  92. package/dist/views/core/dialog/components/textarea-field-dialog/textarea-field-dialog.svelte.d.ts +15 -0
  93. package/dist/views/core/dialog/index.d.ts +9 -0
  94. package/dist/views/core/dialog/index.js +9 -0
  95. package/dist/views/core/dialog/types.d.ts +105 -0
  96. package/dist/views/core/dialog/types.js +1 -0
  97. package/dist/views/core/drawer/components/drawer/drawer.svelte +110 -0
  98. package/dist/views/core/drawer/components/drawer/drawer.svelte.d.ts +19 -0
  99. package/dist/views/core/drawer/index.d.ts +2 -0
  100. package/dist/views/core/drawer/index.js +2 -0
  101. package/dist/views/core/icon/components/icon/icon.svelte +27 -0
  102. package/dist/views/core/icon/components/icon/icon.svelte.d.ts +12 -0
  103. package/dist/views/core/icon/components/icon-circle/icon-circle.svelte +17 -0
  104. package/dist/views/core/icon/components/icon-circle/icon-circle.svelte.d.ts +8 -0
  105. package/dist/views/core/icon/index.d.ts +4 -0
  106. package/dist/views/core/icon/index.js +4 -0
  107. package/dist/views/core/icon/services/icon-path-service.d.ts +23 -0
  108. package/dist/views/core/icon/services/icon-path-service.js +24 -0
  109. package/dist/views/core/index.d.ts +16 -0
  110. package/dist/views/core/index.js +16 -0
  111. package/dist/views/core/input/components/checkbox-field/checkbox-field.svelte +83 -0
  112. package/dist/views/core/input/components/checkbox-field/checkbox-field.svelte.d.ts +19 -0
  113. package/dist/views/core/input/components/color-field/color-field.svelte +135 -0
  114. package/dist/views/core/input/components/color-field/color-field.svelte.d.ts +11 -0
  115. package/dist/views/core/input/components/combobox-field/combobox-field.svelte +492 -0
  116. package/dist/views/core/input/components/combobox-field/combobox-field.svelte.d.ts +7 -0
  117. package/dist/views/core/input/components/date-field/date-field.svelte +40 -0
  118. package/dist/views/core/input/components/date-field/date-field.svelte.d.ts +11 -0
  119. package/dist/views/core/input/components/datetime-field/datetime-field.svelte +22 -0
  120. package/dist/views/core/input/components/datetime-field/datetime-field.svelte.d.ts +8 -0
  121. package/dist/views/core/input/components/email-field/email-field.svelte +27 -0
  122. package/dist/views/core/input/components/email-field/email-field.svelte.d.ts +8 -0
  123. package/dist/views/core/input/components/file-field/file-field.svelte +106 -0
  124. package/dist/views/core/input/components/file-field/file-field.svelte.d.ts +13 -0
  125. package/dist/views/core/input/components/input-field/input-field.svelte +336 -0
  126. package/dist/views/core/input/components/input-field/input-field.svelte.d.ts +9 -0
  127. package/dist/views/core/input/components/label/label.svelte +48 -0
  128. package/dist/views/core/input/components/label/label.svelte.d.ts +14 -0
  129. package/dist/views/core/input/components/number-field/number-field.svelte +22 -0
  130. package/dist/views/core/input/components/number-field/number-field.svelte.d.ts +8 -0
  131. package/dist/views/core/input/components/password-field/password-field.svelte +100 -0
  132. package/dist/views/core/input/components/password-field/password-field.svelte.d.ts +12 -0
  133. package/dist/views/core/input/components/phone-field/phone-field.svelte +187 -0
  134. package/dist/views/core/input/components/phone-field/phone-field.svelte.d.ts +12 -0
  135. package/dist/views/core/input/components/radio-field/radio-field.svelte +127 -0
  136. package/dist/views/core/input/components/radio-field/radio-field.svelte.d.ts +4 -0
  137. package/dist/views/core/input/components/range-field/range-field.svelte +120 -0
  138. package/dist/views/core/input/components/range-field/range-field.svelte.d.ts +23 -0
  139. package/dist/views/core/input/components/search-field/search-field.svelte +80 -0
  140. package/dist/views/core/input/components/search-field/search-field.svelte.d.ts +12 -0
  141. package/dist/views/core/input/components/text-field/text-field.svelte +31 -0
  142. package/dist/views/core/input/components/text-field/text-field.svelte.d.ts +11 -0
  143. package/dist/views/core/input/components/textarea-field/textarea-field.svelte +27 -0
  144. package/dist/views/core/input/components/textarea-field/textarea-field.svelte.d.ts +8 -0
  145. package/dist/views/core/input/components/time-field/time-field.svelte +21 -0
  146. package/dist/views/core/input/components/time-field/time-field.svelte.d.ts +8 -0
  147. package/dist/views/core/input/index.d.ts +20 -0
  148. package/dist/views/core/input/index.js +20 -0
  149. package/dist/views/core/input/types.d.ts +159 -0
  150. package/dist/views/core/input/types.js +1 -0
  151. package/dist/views/core/navbar/components/navbar/navbar.svelte +133 -0
  152. package/dist/views/core/navbar/components/navbar/navbar.svelte.d.ts +4 -0
  153. package/dist/views/core/navbar/index.d.ts +2 -0
  154. package/dist/views/core/navbar/index.js +2 -0
  155. package/dist/views/core/navbar/types.d.ts +35 -0
  156. package/dist/views/core/navbar/types.js +1 -0
  157. package/dist/views/core/no-data/components/no-data/no-data.svelte +47 -0
  158. package/dist/views/core/no-data/components/no-data/no-data.svelte.d.ts +13 -0
  159. package/dist/views/core/no-data/index.d.ts +2 -0
  160. package/dist/views/core/no-data/index.js +2 -0
  161. package/dist/views/core/pagination/components/pagination/pagination.svelte +151 -0
  162. package/dist/views/core/pagination/components/pagination/pagination.svelte.d.ts +16 -0
  163. package/dist/views/core/pagination/index.d.ts +2 -0
  164. package/dist/views/core/pagination/index.js +2 -0
  165. package/dist/views/core/progressbar/components/progressbar/progressbar.svelte +55 -0
  166. package/dist/views/core/progressbar/components/progressbar/progressbar.svelte.d.ts +11 -0
  167. package/dist/views/core/progressbar/index.d.ts +2 -0
  168. package/dist/views/core/progressbar/index.js +2 -0
  169. package/dist/views/core/ruler/components/vertical-ruler/verticcal-ruler.svelte +8 -0
  170. package/dist/views/core/ruler/components/vertical-ruler/verticcal-ruler.svelte.d.ts +6 -0
  171. package/dist/views/core/ruler/index.d.ts +2 -0
  172. package/dist/views/core/ruler/index.js +2 -0
  173. package/dist/views/core/screen-detector/components/screen-detector.svelte +17 -0
  174. package/dist/views/core/screen-detector/components/screen-detector.svelte.d.ts +3 -0
  175. package/dist/views/core/screen-detector/index.d.ts +2 -0
  176. package/dist/views/core/screen-detector/index.js +2 -0
  177. package/dist/views/core/sidebar/components/sidebar.svelte +49 -0
  178. package/dist/views/core/sidebar/components/sidebar.svelte.d.ts +12 -0
  179. package/dist/views/core/sidebar/index.js +5 -0
  180. package/dist/views/core/spinner/components/spinner/spinner.svelte +21 -0
  181. package/dist/views/core/spinner/components/spinner/spinner.svelte.d.ts +6 -0
  182. package/dist/views/core/spinner/index.d.ts +2 -0
  183. package/dist/views/core/spinner/index.js +2 -0
  184. package/dist/views/core/text/components/text-await/text-await.svelte +23 -0
  185. package/dist/views/core/text/components/text-await/text-await.svelte.d.ts +10 -0
  186. package/dist/views/core/text/components/text-copy/text-copy.svelte +40 -0
  187. package/dist/views/core/text/components/text-copy/text-copy.svelte.d.ts +10 -0
  188. package/dist/views/core/text/components/text-currency/text-currency.svelte +24 -0
  189. package/dist/views/core/text/components/text-currency/text-currency.svelte.d.ts +11 -0
  190. package/dist/views/core/text/components/text-date/text-date.svelte +40 -0
  191. package/dist/views/core/text/components/text-date/text-date.svelte.d.ts +10 -0
  192. package/dist/views/core/text/components/text-email/text-email.svelte +22 -0
  193. package/dist/views/core/text/components/text-email/text-email.svelte.d.ts +9 -0
  194. package/dist/views/core/text/components/text-html/text-html.svelte +7 -0
  195. package/dist/views/core/text/components/text-html/text-html.svelte.d.ts +6 -0
  196. package/dist/views/core/text/components/text-phone/text-phone.svelte +25 -0
  197. package/dist/views/core/text/components/text-phone/text-phone.svelte.d.ts +9 -0
  198. package/dist/views/core/text/index.d.ts +8 -0
  199. package/dist/views/core/text/index.js +8 -0
  200. package/dist/views/core/toast/components/toast/toast.svelte +46 -0
  201. package/dist/views/core/toast/components/toast/toast.svelte.d.ts +7 -0
  202. package/dist/views/core/toast/index.d.ts +3 -0
  203. package/dist/views/core/toast/index.js +3 -0
  204. package/dist/views/core/toast/types.d.ts +8 -0
  205. package/dist/views/core/toast/types.js +1 -0
  206. package/dist/views/extra/fields/country-combobox-field.svelte +42 -0
  207. package/dist/views/extra/fields/country-combobox-field.svelte.d.ts +8 -0
  208. package/dist/views/extra/index.d.ts +6 -0
  209. package/dist/views/extra/index.js +6 -0
  210. package/dist/views/extra/loaders/country-loader.svelte +38 -0
  211. package/dist/views/extra/loaders/country-loader.svelte.d.ts +12 -0
  212. package/dist/views/extra/texts/text-country-state.svelte +48 -0
  213. package/dist/views/extra/texts/text-country-state.svelte.d.ts +6 -0
  214. package/dist/views/extra/texts/text-country.svelte +22 -0
  215. package/dist/views/extra/texts/text-country.svelte.d.ts +6 -0
  216. package/dist/views/extra/types.d.ts +5 -0
  217. package/dist/views/extra/types.js +1 -0
  218. package/dist/views/index.d.ts +2 -0
  219. package/dist/views/index.js +2 -0
  220. package/package.json +2 -1
@@ -0,0 +1,370 @@
1
+ <script lang="ts">
2
+ import { DialogSizeEnum, isMobileScreen } from '../../../../../services/index.js';
3
+ import ButtonBack from '../../../button/components/button-back/button-back.svelte';
4
+ import ButtonClose from '../../../button/components/button-close-icon/button-close-icon.svelte';
5
+ import Button from '../../../button/components/button/button.svelte';
6
+ import { mdiArrowLeft, mdiClose } from '../../../icon/index.js';
7
+ import { type Component as ComponetType, type Snippet } from 'svelte';
8
+ import type { DialogCloseButtonClickFunction, DialogExports, DialogProps } from '../../types';
9
+
10
+ let {
11
+ backdropClassName = '',
12
+ bodyClassName = '',
13
+ bodyComponent,
14
+ cancelable = true,
15
+ scrollable = true,
16
+ children,
17
+ className = '',
18
+ component,
19
+ containerClassName = '',
20
+ footerClassName = '',
21
+ footerCloseButtonClassName = '',
22
+ footerCloseButtonLabel = 'Close',
23
+ footerOkButtonClassName = '',
24
+ footerOkButtonEnabled = true,
25
+ footerOkButtonSpinner = false,
26
+ footerOkButtonType = 'button',
27
+ footerOkButtonLabel = 'Save',
28
+ hasFooter = false,
29
+ hasFooterCloseButton = false,
30
+ hasFooterOkButton = false,
31
+ hasFooterShadow = false,
32
+ hasHeader = false,
33
+ hasHeaderOkButton = false,
34
+
35
+ hasHeaderShadow = false,
36
+ hasSubtitle = false,
37
+ hasTitle = false,
38
+ headerOkButtonClassName = '',
39
+ headerOkButtonLabel = '',
40
+ headerOkButtonIconPath = '',
41
+ headerOkButtonIconClassName = '',
42
+ headerBackButtonClassName = '',
43
+ headerBackIconClassName = '',
44
+ headerBackIconPath = mdiArrowLeft,
45
+ headerClassName = '',
46
+ headerCloseButtonClassName = '',
47
+ headerCloseIconClassName = '',
48
+ headerCloseIconPath = mdiClose,
49
+ hasHeaderBack = isMobileScreen(),
50
+ hasHeaderClose = !isMobileScreen(),
51
+ size = isMobileScreen() ? DialogSizeEnum.FULL : DialogSizeEnum.SM,
52
+ id = '',
53
+ onClose,
54
+ onCloseClick,
55
+ onOkClick,
56
+ onResult,
57
+ onData,
58
+ props = {},
59
+ targetFormId = undefined,
60
+ subtitle = '',
61
+ subtitleClassName = '',
62
+ title = '',
63
+ titleClassName = ''
64
+ }: DialogProps = $props();
65
+
66
+ let dialogExports: DialogExports = {
67
+ closeDialog,
68
+ setResult,
69
+ setOkSpinner,
70
+ setOkEnabled,
71
+ setOnCloseClick,
72
+ setOnOkClick,
73
+ setOnData,
74
+ setHeaderSnippet,
75
+ setFooterSnippet,
76
+ setDialogTitle
77
+ };
78
+
79
+ let isPlaced: boolean = $state(false);
80
+ let isOpened: boolean = $state(false);
81
+
82
+ let headerSnippet: Snippet | null = $state(null);
83
+ let footerSnippet: Snippet | null = $state(null);
84
+
85
+ let CustomComponent: ComponetType | null = $derived(component);
86
+
87
+ let BodyComponent: ComponetType | null = $derived(bodyComponent);
88
+
89
+ let result: any;
90
+
91
+ let xsSizeClassName = 'w-64';
92
+ let smSizeClassName = 'w-96';
93
+ let mdSizeClassName = 'w-1/3';
94
+ let lgSizeClassName = 'w-1/2';
95
+ let xlSizeClassName = 'w-7/10';
96
+ let fullSizeClassName = 'fixed inset-0 w-screen h-screen ';
97
+
98
+ let screenSizeClassNameMap: { [key: string]: string } = {
99
+ xs: xsSizeClassName,
100
+ sm: smSizeClassName,
101
+ md: mdSizeClassName,
102
+ lg: lgSizeClassName,
103
+ xl: xlSizeClassName,
104
+ full: fullSizeClassName
105
+ };
106
+
107
+ let customTitle: string = $state('');
108
+
109
+ export function toggleDialog() {
110
+ if (isOpened) {
111
+ closeDialog();
112
+ } else {
113
+ openDialog();
114
+ }
115
+ }
116
+
117
+ export function openDialog() {
118
+ isPlaced = true;
119
+
120
+ // Disable background scroll
121
+ document.body.style.overflow = 'hidden';
122
+
123
+ setTimeout(() => {
124
+ isOpened = true;
125
+ }, 0);
126
+ }
127
+
128
+ export function closeDialog(value?: any): Promise<any> {
129
+ return new Promise((resolve) => {
130
+ isOpened = false;
131
+
132
+ // Re-enable background scroll
133
+ document.body.style.overflow = '';
134
+
135
+ setTimeout(() => {
136
+ isPlaced = false;
137
+ onClose && onClose();
138
+ onResult && onResult(result || value);
139
+ resolve(result);
140
+ }, 300);
141
+ });
142
+ }
143
+
144
+ export function setResult(value: any) {
145
+ result = value;
146
+ }
147
+
148
+ export function setOkEnabled(value: boolean) {
149
+ footerOkButtonEnabled = value;
150
+ }
151
+
152
+ export function setOkSpinner(value: boolean) {
153
+ footerOkButtonSpinner = value;
154
+ }
155
+
156
+ export function setOnData(listener: (data: any) => void) {
157
+ onData = listener;
158
+ }
159
+
160
+ export function setOnOkClick(
161
+ onclick: (event: MouseEvent | TouchEvent, options: DialogExports) => void
162
+ ) {
163
+ onOkClick = onclick;
164
+ }
165
+
166
+ export function setOnCloseClick(onclick: DialogCloseButtonClickFunction) {
167
+ onCloseClick = onclick;
168
+ }
169
+
170
+ export function postData(data: any) {
171
+ onData && onData(data);
172
+ }
173
+
174
+ export function setHeaderSnippet(snippet: Snippet) {
175
+ headerSnippet = snippet;
176
+ }
177
+
178
+ export function setFooterSnippet(snippet: Snippet) {
179
+ footerSnippet = snippet;
180
+ }
181
+
182
+ export function setDialogTitle(dialogTitle: string) {
183
+ customTitle = dialogTitle;
184
+ }
185
+
186
+ function handleBackdropClick() {
187
+ if (cancelable) {
188
+ closeDialog();
189
+ }
190
+ }
191
+
192
+ async function handleClose(ev: MouseEvent | TouchEvent) {
193
+ if (onCloseClick) {
194
+ if (await onCloseClick(ev)) {
195
+ closeDialog();
196
+ }
197
+ } else {
198
+ closeDialog();
199
+ }
200
+ }
201
+
202
+ function handleKeyDown(event: KeyboardEvent) {
203
+ if (event.key === 'Escape' || event.key === 'Esc') {
204
+ if (cancelable) {
205
+ event.stopPropagation();
206
+ closeDialog();
207
+ }
208
+ }
209
+ }
210
+
211
+ function handleOkClick(event: MouseEvent | TouchEvent) {
212
+ if (onOkClick) {
213
+ onOkClick(event, dialogExports);
214
+ }
215
+ }
216
+ </script>
217
+
218
+ {#snippet dialogContent()}
219
+ <!-- svelte-ignore a11y_click_events_have_key_events -->
220
+ <!-- svelte-ignore a11y_no_static_element_interactions -->
221
+ <div
222
+ tabindex="-1"
223
+ class="relative flex transform flex-col overflow-hidden bg-neutral-50 text-left transition-all outline-none dark:bg-neutral-800 {size ==
224
+ DialogSizeEnum.FULL
225
+ ? 'max-h-dvh max-w-dvw'
226
+ : 'max-h-[90dvh] max-w-[90dvw]'} {screenSizeClassNameMap[size]} {isOpened
227
+ ? 'translate-y-0 opacity-100 duration-300 ease-out sm:scale-100'
228
+ : 'translate-y-4 opacity-0 duration-200 ease-in sm:translate-y-0 sm:scale-95'} {size ==
229
+ DialogSizeEnum.FULL
230
+ ? ''
231
+ : 'rounded-lg shadow-xl dark:shadow-black'} {className}"
232
+ onclick={(ev: MouseEvent) => ev.stopPropagation()}
233
+ >
234
+ {#if CustomComponent?.length == 2}
235
+ <CustomComponent {...{ ...props }} {...{ ...dialogExports }} />
236
+ {:else}
237
+ {#if hasHeader}
238
+ <div
239
+ class="flex w-full cursor-default items-center gap-4 py-2 {hasHeaderShadow
240
+ ? 'border-b shadow-sm'
241
+ : ''} {headerClassName}"
242
+ >
243
+ <div>
244
+ {#if hasHeaderBack}
245
+ <ButtonBack
246
+ iconPath={headerBackIconPath}
247
+ iconClassName={headerBackIconClassName}
248
+ className={headerBackButtonClassName}
249
+ onClick={handleClose}
250
+ />
251
+ {/if}
252
+ </div>
253
+ <div class="flex-grow py-2">
254
+ {#if hasTitle}
255
+ <div class="text-xl text-neutral-800 dark:text-neutral-300 {titleClassName}">
256
+ {@html customTitle || title || ''}
257
+ </div>
258
+ {/if}
259
+ {#if hasSubtitle}
260
+ <div class="text-sm text-gray-500 dark:text-neutral-500 {subtitleClassName}">
261
+ {subtitle || ''}
262
+ </div>
263
+ {/if}
264
+ </div>
265
+ {#if headerSnippet}
266
+ {@render headerSnippet()}
267
+ {/if}
268
+ {#if hasHeaderOkButton}
269
+ <Button
270
+ appearance="border"
271
+ className=" {headerOkButtonClassName}"
272
+ iconPath={headerOkButtonIconPath}
273
+ iconClassName=" text-primary {headerOkButtonIconClassName}"
274
+ onClick={handleClose}
275
+ />
276
+ {/if}
277
+ {#if hasHeaderClose}
278
+ <ButtonClose
279
+ className={headerCloseButtonClassName}
280
+ iconPath={headerCloseIconPath}
281
+ iconClassName={headerCloseIconClassName}
282
+ onClick={handleClose}
283
+ />
284
+ {/if}
285
+ </div>
286
+ {/if}
287
+
288
+ <div class="flex-grow {scrollable ? 'overflow-y-auto' : ''} {bodyClassName}">
289
+ {#if children}
290
+ {@render children()}
291
+ {:else if BodyComponent?.length == 2}
292
+ <BodyComponent {...{ ...props }} {...{ ...dialogExports }} />
293
+ {/if}
294
+ </div>
295
+
296
+ {#if hasFooter}
297
+ <div
298
+ class="flex items-center justify-end gap-4 p-4 {hasFooterShadow
299
+ ? 'border-t'
300
+ : ''} {footerClassName}"
301
+ >
302
+ <div class="flex-grow"></div>
303
+ <div>
304
+ {#if footerSnippet}
305
+ {@render footerSnippet()}
306
+ {/if}
307
+ </div>
308
+ {#if hasFooterOkButton}
309
+ <Button
310
+ id="btn-ok"
311
+ form={targetFormId}
312
+ type={targetFormId ? 'submit' : footerOkButtonType}
313
+ appearance="primary"
314
+ className=" {footerOkButtonClassName}"
315
+ label={footerOkButtonLabel}
316
+ disabled={!footerOkButtonEnabled}
317
+ spinner={footerOkButtonSpinner}
318
+ spinnerClassName="text-white w-4 h-4"
319
+ onClick={handleOkClick}
320
+ />
321
+ {/if}
322
+ {#if hasFooterCloseButton}
323
+ <Button
324
+ id="btn-close"
325
+ type="button"
326
+ appearance="neutral"
327
+ className=" {footerCloseButtonClassName}"
328
+ label={footerCloseButtonLabel}
329
+ onClick={handleClose}
330
+ />
331
+ {/if}
332
+ </div>
333
+ {/if}
334
+ {/if}
335
+ </div>
336
+ {/snippet}
337
+
338
+ {#snippet dialog()}
339
+ <div
340
+ {id}
341
+ class="relative z-20 {containerClassName}"
342
+ aria-labelledby="modal-title"
343
+ role="dialog"
344
+ aria-modal="true"
345
+ >
346
+ <div
347
+ id="backdrop"
348
+ class="fixed inset-0 bg-gray-500/20 backdrop-blur-sm transition-opacity dark:bg-gray-900/30 {isOpened
349
+ ? 'opacity-100 duration-300 ease-out'
350
+ : 'opacity-0 duration-200 ease-in'} {backdropClassName}"
351
+ aria-hidden="true"
352
+ ></div>
353
+
354
+ <!-- svelte-ignore a11y_no_static_element_interactions -->
355
+ <!-- svelte-ignore a11y_click_events_have_key_events -->
356
+ <div
357
+ class="fixed inset-0 z-20 w-screen cursor-auto"
358
+ onclick={handleBackdropClick}
359
+ onkeydown={handleKeyDown}
360
+ >
361
+ <div class="flex min-h-full items-center justify-center">
362
+ {@render dialogContent()}
363
+ </div>
364
+ </div>
365
+ </div>
366
+ {/snippet}
367
+
368
+ {#if isPlaced}
369
+ {@render dialog()}
370
+ {/if}
@@ -0,0 +1,19 @@
1
+ import { type Component as ComponetType, type Snippet } from 'svelte';
2
+ import type { DialogCloseButtonClickFunction, DialogExports, DialogProps } from '../../types';
3
+ declare const Dialog: ComponetType<DialogProps, {
4
+ toggleDialog: () => void;
5
+ openDialog: () => void;
6
+ closeDialog: (value?: any) => Promise<any>;
7
+ setResult: (value: any) => void;
8
+ setOkEnabled: (value: boolean) => void;
9
+ setOkSpinner: (value: boolean) => void;
10
+ setOnData: (listener: (data: any) => void) => void;
11
+ setOnOkClick: (onclick: (event: MouseEvent | TouchEvent, options: DialogExports) => void) => void;
12
+ setOnCloseClick: (onclick: DialogCloseButtonClickFunction) => void;
13
+ postData: (data: any) => void;
14
+ setHeaderSnippet: (snippet: Snippet) => void;
15
+ setFooterSnippet: (snippet: Snippet) => void;
16
+ setDialogTitle: (dialogTitle: string) => void;
17
+ }, "">;
18
+ type Dialog = ReturnType<typeof Dialog>;
19
+ export default Dialog;
@@ -0,0 +1,42 @@
1
+ <script lang="ts">
2
+ import Spinner from '../../../spinner/components/spinner/spinner.svelte';
3
+ import type { DialogExports } from '../../types';
4
+
5
+ type PropsType = {
6
+ msg?: string;
7
+ msgClassName?: string;
8
+ spinnerClassName?: string;
9
+ containerClassName?: string;
10
+ className?: string;
11
+ };
12
+
13
+ let {
14
+ msg = 'Please wait...',
15
+ msgClassName,
16
+ spinnerClassName,
17
+ containerClassName,
18
+ className,
19
+ setOnOkClick,
20
+ setResult,
21
+ closeDialog,
22
+ setOnData,
23
+ ...props
24
+ }: PropsType & DialogExports = $props();
25
+
26
+ setOnData((data: any) => {
27
+ if (data?.msg) {
28
+ msg = data?.msg || '';
29
+ }
30
+ });
31
+ </script>
32
+
33
+ <div class="p-6 {containerClassName}">
34
+ <div class="flex items-center gap-4 {className}">
35
+ <div>
36
+ <Spinner className={spinnerClassName} />
37
+ </div>
38
+ <div class="text-gray-400 {msgClassName}">
39
+ {@html msg || ''}
40
+ </div>
41
+ </div>
42
+ </div>
@@ -0,0 +1,12 @@
1
+ import type { DialogExports } from '../../types';
2
+ type PropsType = {
3
+ msg?: string;
4
+ msgClassName?: string;
5
+ spinnerClassName?: string;
6
+ containerClassName?: string;
7
+ className?: string;
8
+ };
9
+ type $$ComponentProps = PropsType & DialogExports;
10
+ declare const LoadingDialog: import("svelte").Component<$$ComponentProps, {}, "">;
11
+ type LoadingDialog = ReturnType<typeof LoadingDialog>;
12
+ export default LoadingDialog;
@@ -0,0 +1,22 @@
1
+ <script lang="ts">
2
+ import type { DialogExports } from '../../types';
3
+
4
+ type PropsType = {
5
+ className?: string;
6
+ msg?: string;
7
+ };
8
+
9
+ let { className, msg, setOnOkClick, setResult, closeDialog }: PropsType & DialogExports =
10
+ $props();
11
+
12
+ $effect(() => {
13
+ setOnOkClick(() => {
14
+ setResult(true);
15
+ closeDialog();
16
+ });
17
+ });
18
+ </script>
19
+
20
+ <div class="p-6 text-neutral-800 dark:text-neutral-300 {className}">
21
+ <div>{@html msg || ''}</div>
22
+ </div>
@@ -0,0 +1,9 @@
1
+ import type { DialogExports } from '../../types';
2
+ type PropsType = {
3
+ className?: string;
4
+ msg?: string;
5
+ };
6
+ type $$ComponentProps = PropsType & DialogExports;
7
+ declare const MsgDialog: import("svelte").Component<$$ComponentProps, {}, "">;
8
+ type MsgDialog = ReturnType<typeof MsgDialog>;
9
+ export default MsgDialog;
@@ -0,0 +1,57 @@
1
+ <script lang="ts">
2
+ import { showToast } from '../../../../../services/index.js';
3
+ import NumberField from '../../../input/components/number-field/number-field.svelte';
4
+ import type { DialogExports } from '../../types';
5
+
6
+ type PropsType = {
7
+ value?: number;
8
+ label?: string;
9
+ name?: string;
10
+ maxlength?: number;
11
+ className?: string;
12
+ autofocus?: boolean;
13
+ required?: boolean;
14
+ };
15
+
16
+ let {
17
+ value = $bindable(0),
18
+ label,
19
+ name,
20
+ maxlength,
21
+ className,
22
+ autofocus,
23
+ required,
24
+ setOnOkClick,
25
+ setResult,
26
+ closeDialog,
27
+ ...props
28
+ }: PropsType & DialogExports = $props();
29
+
30
+ let _value: number = $state(value || 0);
31
+
32
+ function handleSubmit(ev: SubmitEvent) {
33
+ ev?.preventDefault();
34
+ _value = _value || 0;
35
+ if (required) {
36
+ showToast({ msg: 'This is a required field!' });
37
+ } else {
38
+ setResult(_value);
39
+ closeDialog();
40
+ }
41
+ }
42
+ </script>
43
+
44
+ <div class="p-6">
45
+ <form id="number-field-dialog-form" onsubmit={handleSubmit}>
46
+ <NumberField
47
+ {...props}
48
+ {label}
49
+ {name}
50
+ {maxlength}
51
+ {className}
52
+ {autofocus}
53
+ {required}
54
+ bind:value={_value}
55
+ />
56
+ </form>
57
+ </div>
@@ -0,0 +1,14 @@
1
+ import type { DialogExports } from '../../types';
2
+ type PropsType = {
3
+ value?: number;
4
+ label?: string;
5
+ name?: string;
6
+ maxlength?: number;
7
+ className?: string;
8
+ autofocus?: boolean;
9
+ required?: boolean;
10
+ };
11
+ type $$ComponentProps = PropsType & DialogExports;
12
+ declare const NumberFieldDialog: import("svelte").Component<$$ComponentProps, {}, "value">;
13
+ type NumberFieldDialog = ReturnType<typeof NumberFieldDialog>;
14
+ export default NumberFieldDialog;