@cloudparker/moldex.js 4.1.7 → 4.1.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.
Files changed (222) 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 +4 -0
  11. package/dist/index.js +4 -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 +40 -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 +11 -0
  43. package/dist/stores/screen-size/screen-size-store.svelte.js +33 -0
  44. package/dist/types.d.ts +14 -0
  45. package/dist/types.js +16 -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.d.ts +4 -0
  77. package/dist/views/core/common/index.js +4 -0
  78. package/dist/views/core/dialog/components/cropper-dialog/cropper-dialog.svelte +51 -0
  79. package/dist/views/core/dialog/components/cropper-dialog/cropper-dialog.svelte.d.ts +5 -0
  80. package/dist/views/core/dialog/components/dialog/dialog.svelte +370 -0
  81. package/dist/views/core/dialog/components/dialog/dialog.svelte.d.ts +19 -0
  82. package/dist/views/core/dialog/components/loading-dialog/loading-dialog.svelte +42 -0
  83. package/dist/views/core/dialog/components/loading-dialog/loading-dialog.svelte.d.ts +12 -0
  84. package/dist/views/core/dialog/components/msg-dialog/msg-dialog.svelte +22 -0
  85. package/dist/views/core/dialog/components/msg-dialog/msg-dialog.svelte.d.ts +9 -0
  86. package/dist/views/core/dialog/components/number-field-dialog/number-field-dialog.svelte +57 -0
  87. package/dist/views/core/dialog/components/number-field-dialog/number-field-dialog.svelte.d.ts +14 -0
  88. package/dist/views/core/dialog/components/picker-dialog/picker-dialog.svelte +181 -0
  89. package/dist/views/core/dialog/components/picker-dialog/picker-dialog.svelte.d.ts +5 -0
  90. package/dist/views/core/dialog/components/text-field-dialog/text-field-dialog.svelte +56 -0
  91. package/dist/views/core/dialog/components/text-field-dialog/text-field-dialog.svelte.d.ts +15 -0
  92. package/dist/views/core/dialog/components/textarea-field-dialog/textarea-field-dialog.svelte +56 -0
  93. package/dist/views/core/dialog/components/textarea-field-dialog/textarea-field-dialog.svelte.d.ts +15 -0
  94. package/dist/views/core/dialog/index.d.ts +9 -0
  95. package/dist/views/core/dialog/index.js +9 -0
  96. package/dist/views/core/dialog/types.d.ts +105 -0
  97. package/dist/views/core/dialog/types.js +1 -0
  98. package/dist/views/core/drawer/components/drawer/drawer.svelte +110 -0
  99. package/dist/views/core/drawer/components/drawer/drawer.svelte.d.ts +19 -0
  100. package/dist/views/core/drawer/index.d.ts +2 -0
  101. package/dist/views/core/drawer/index.js +2 -0
  102. package/dist/views/core/icon/components/icon/icon.svelte +27 -0
  103. package/dist/views/core/icon/components/icon/icon.svelte.d.ts +12 -0
  104. package/dist/views/core/icon/components/icon-circle/icon-circle.svelte +17 -0
  105. package/dist/views/core/icon/components/icon-circle/icon-circle.svelte.d.ts +8 -0
  106. package/dist/views/core/icon/index.d.ts +4 -0
  107. package/dist/views/core/icon/index.js +4 -0
  108. package/dist/views/core/icon/services/icon-path-service.d.ts +23 -0
  109. package/dist/views/core/icon/services/icon-path-service.js +24 -0
  110. package/dist/views/core/index.d.ts +16 -0
  111. package/dist/views/core/index.js +16 -0
  112. package/dist/views/core/input/components/checkbox-field/checkbox-field.svelte +83 -0
  113. package/dist/views/core/input/components/checkbox-field/checkbox-field.svelte.d.ts +19 -0
  114. package/dist/views/core/input/components/color-field/color-field.svelte +135 -0
  115. package/dist/views/core/input/components/color-field/color-field.svelte.d.ts +11 -0
  116. package/dist/views/core/input/components/combobox-field/combobox-field.svelte +492 -0
  117. package/dist/views/core/input/components/combobox-field/combobox-field.svelte.d.ts +7 -0
  118. package/dist/views/core/input/components/date-field/date-field.svelte +40 -0
  119. package/dist/views/core/input/components/date-field/date-field.svelte.d.ts +11 -0
  120. package/dist/views/core/input/components/datetime-field/datetime-field.svelte +22 -0
  121. package/dist/views/core/input/components/datetime-field/datetime-field.svelte.d.ts +8 -0
  122. package/dist/views/core/input/components/email-field/email-field.svelte +27 -0
  123. package/dist/views/core/input/components/email-field/email-field.svelte.d.ts +8 -0
  124. package/dist/views/core/input/components/file-field/file-field.svelte +106 -0
  125. package/dist/views/core/input/components/file-field/file-field.svelte.d.ts +13 -0
  126. package/dist/views/core/input/components/input-field/input-field.svelte +336 -0
  127. package/dist/views/core/input/components/input-field/input-field.svelte.d.ts +9 -0
  128. package/dist/views/core/input/components/label/label.svelte +48 -0
  129. package/dist/views/core/input/components/label/label.svelte.d.ts +14 -0
  130. package/dist/views/core/input/components/number-field/number-field.svelte +22 -0
  131. package/dist/views/core/input/components/number-field/number-field.svelte.d.ts +8 -0
  132. package/dist/views/core/input/components/password-field/password-field.svelte +100 -0
  133. package/dist/views/core/input/components/password-field/password-field.svelte.d.ts +12 -0
  134. package/dist/views/core/input/components/phone-field/phone-field.svelte +187 -0
  135. package/dist/views/core/input/components/phone-field/phone-field.svelte.d.ts +12 -0
  136. package/dist/views/core/input/components/radio-field/radio-field.svelte +127 -0
  137. package/dist/views/core/input/components/radio-field/radio-field.svelte.d.ts +4 -0
  138. package/dist/views/core/input/components/range-field/range-field.svelte +120 -0
  139. package/dist/views/core/input/components/range-field/range-field.svelte.d.ts +23 -0
  140. package/dist/views/core/input/components/search-field/search-field.svelte +80 -0
  141. package/dist/views/core/input/components/search-field/search-field.svelte.d.ts +12 -0
  142. package/dist/views/core/input/components/text-field/text-field.svelte +31 -0
  143. package/dist/views/core/input/components/text-field/text-field.svelte.d.ts +11 -0
  144. package/dist/views/core/input/components/textarea-field/textarea-field.svelte +27 -0
  145. package/dist/views/core/input/components/textarea-field/textarea-field.svelte.d.ts +8 -0
  146. package/dist/views/core/input/components/time-field/time-field.svelte +21 -0
  147. package/dist/views/core/input/components/time-field/time-field.svelte.d.ts +8 -0
  148. package/dist/views/core/input/index.d.ts +20 -0
  149. package/dist/views/core/input/index.js +20 -0
  150. package/dist/views/core/input/types.d.ts +159 -0
  151. package/dist/views/core/input/types.js +1 -0
  152. package/dist/views/core/navbar/components/navbar/navbar.svelte +133 -0
  153. package/dist/views/core/navbar/components/navbar/navbar.svelte.d.ts +4 -0
  154. package/dist/views/core/navbar/index.d.ts +3 -0
  155. package/dist/views/core/navbar/index.js +3 -0
  156. package/dist/views/core/navbar/types.d.ts +35 -0
  157. package/dist/views/core/navbar/types.js +1 -0
  158. package/dist/views/core/no-data/components/no-data/no-data.svelte +47 -0
  159. package/dist/views/core/no-data/components/no-data/no-data.svelte.d.ts +13 -0
  160. package/dist/views/core/no-data/index.d.ts +2 -0
  161. package/dist/views/core/no-data/index.js +2 -0
  162. package/dist/views/core/pagination/components/pagination/pagination.svelte +151 -0
  163. package/dist/views/core/pagination/components/pagination/pagination.svelte.d.ts +16 -0
  164. package/dist/views/core/pagination/index.d.ts +2 -0
  165. package/dist/views/core/pagination/index.js +2 -0
  166. package/dist/views/core/progressbar/components/progressbar/progressbar.svelte +55 -0
  167. package/dist/views/core/progressbar/components/progressbar/progressbar.svelte.d.ts +11 -0
  168. package/dist/views/core/progressbar/index.d.ts +2 -0
  169. package/dist/views/core/progressbar/index.js +2 -0
  170. package/dist/views/core/ruler/components/vertical-ruler/verticcal-ruler.svelte +8 -0
  171. package/dist/views/core/ruler/components/vertical-ruler/verticcal-ruler.svelte.d.ts +6 -0
  172. package/dist/views/core/ruler/index.d.ts +2 -0
  173. package/dist/views/core/ruler/index.js +2 -0
  174. package/dist/views/core/screen-detector/components/screen-detector.svelte +17 -0
  175. package/dist/views/core/screen-detector/components/screen-detector.svelte.d.ts +3 -0
  176. package/dist/views/core/screen-detector/index.d.ts +2 -0
  177. package/dist/views/core/screen-detector/index.js +2 -0
  178. package/dist/views/core/sidebar/components/sidebar.svelte +49 -0
  179. package/dist/views/core/sidebar/components/sidebar.svelte.d.ts +12 -0
  180. package/dist/views/core/sidebar/index.d.ts +2 -0
  181. package/dist/views/core/sidebar/index.js +2 -0
  182. package/dist/views/core/spinner/components/spinner/spinner.svelte +21 -0
  183. package/dist/views/core/spinner/components/spinner/spinner.svelte.d.ts +6 -0
  184. package/dist/views/core/spinner/index.d.ts +2 -0
  185. package/dist/views/core/spinner/index.js +2 -0
  186. package/dist/views/core/text/components/text-await/text-await.svelte +23 -0
  187. package/dist/views/core/text/components/text-await/text-await.svelte.d.ts +10 -0
  188. package/dist/views/core/text/components/text-copy/text-copy.svelte +40 -0
  189. package/dist/views/core/text/components/text-copy/text-copy.svelte.d.ts +10 -0
  190. package/dist/views/core/text/components/text-currency/text-currency.svelte +24 -0
  191. package/dist/views/core/text/components/text-currency/text-currency.svelte.d.ts +11 -0
  192. package/dist/views/core/text/components/text-date/text-date.svelte +40 -0
  193. package/dist/views/core/text/components/text-date/text-date.svelte.d.ts +10 -0
  194. package/dist/views/core/text/components/text-email/text-email.svelte +22 -0
  195. package/dist/views/core/text/components/text-email/text-email.svelte.d.ts +9 -0
  196. package/dist/views/core/text/components/text-html/text-html.svelte +7 -0
  197. package/dist/views/core/text/components/text-html/text-html.svelte.d.ts +6 -0
  198. package/dist/views/core/text/components/text-phone/text-phone.svelte +25 -0
  199. package/dist/views/core/text/components/text-phone/text-phone.svelte.d.ts +9 -0
  200. package/dist/views/core/text/index.d.ts +8 -0
  201. package/dist/views/core/text/index.js +8 -0
  202. package/dist/views/core/toast/components/toast/toast.svelte +46 -0
  203. package/dist/views/core/toast/components/toast/toast.svelte.d.ts +7 -0
  204. package/dist/views/core/toast/index.d.ts +3 -0
  205. package/dist/views/core/toast/index.js +3 -0
  206. package/dist/views/core/toast/types.d.ts +8 -0
  207. package/dist/views/core/toast/types.js +1 -0
  208. package/dist/views/extra/fields/country-combobox-field.svelte +42 -0
  209. package/dist/views/extra/fields/country-combobox-field.svelte.d.ts +8 -0
  210. package/dist/views/extra/index.d.ts +6 -0
  211. package/dist/views/extra/index.js +6 -0
  212. package/dist/views/extra/loaders/country-loader.svelte +38 -0
  213. package/dist/views/extra/loaders/country-loader.svelte.d.ts +12 -0
  214. package/dist/views/extra/texts/text-country-state.svelte +48 -0
  215. package/dist/views/extra/texts/text-country-state.svelte.d.ts +6 -0
  216. package/dist/views/extra/texts/text-country.svelte +22 -0
  217. package/dist/views/extra/texts/text-country.svelte.d.ts +6 -0
  218. package/dist/views/extra/types.d.ts +5 -0
  219. package/dist/views/extra/types.js +1 -0
  220. package/dist/views/index.d.ts +2 -0
  221. package/dist/views/index.js +2 -0
  222. package/package.json +2 -1
@@ -0,0 +1,12 @@
1
+ export type BadgeProsType = {
2
+ containerClassName?: string;
3
+ badgePositionClassName?: string;
4
+ badgeContainerClassName?: string;
5
+ badgeClassName?: string;
6
+ badgeBackgroundClassName?: string;
7
+ badgeText?: string;
8
+ hasBadgeBackground?: boolean;
9
+ };
10
+ export declare function badge(node: HTMLElement, { containerClassName, badgePositionClassName, badgeContainerClassName, badgeClassName, badgeBackgroundClassName, badgeText, hasBadgeBackground }?: BadgeProsType): {
11
+ destroy(): void;
12
+ };
@@ -0,0 +1,22 @@
1
+ export function badge(node, { containerClassName = '', badgePositionClassName = 'top-0 right-0', badgeContainerClassName = '', badgeClassName = '', badgeBackgroundClassName = '', badgeText = '', hasBadgeBackground = true } = {}) {
2
+ let badgeBackElement = hasBadgeBackground ? `<span class="animate-ping absolute inline-flex h-full w-full rounded-full bg-sky-400 opacity-75 ${badgeBackgroundClassName}"></span>` : '';
3
+ const badge = document.createElement('span');
4
+ badge.className = 'absolute transform translate-x-1/2 -translate-y-1/2 ' + badgePositionClassName;
5
+ badge.innerHTML = `
6
+ <span class="relative flex h-3 w-3 ${badgeContainerClassName}">
7
+ ${badgeBackElement}
8
+ <span class="relative inline-grid place-items-center rounded-full h-3 w-3 text-3xs text-white bg-sky-500 ${badgeClassName}">${badgeText || ''}</span>
9
+ </span>
10
+ `;
11
+ let list = ['relative'];
12
+ list.push(...containerClassName.split(' ').map(o => o.trim()).filter(o => o));
13
+ const nodeClassList = [...list];
14
+ node.classList.add(...nodeClassList);
15
+ node.appendChild(badge);
16
+ return {
17
+ destroy() {
18
+ node.removeChild(badge);
19
+ node.classList.remove(...nodeClassList);
20
+ }
21
+ };
22
+ }
@@ -0,0 +1,3 @@
1
+ export * from "./ripple.js";
2
+ export * from "./badge.js";
3
+ export * from "./no-context-menu.js";
@@ -0,0 +1,3 @@
1
+ export * from "./ripple.js";
2
+ export * from "./badge.js";
3
+ export * from "./no-context-menu.js";
@@ -0,0 +1,3 @@
1
+ export declare function noContextMenu(node: HTMLElement): {
2
+ destroy(): void;
3
+ };
@@ -0,0 +1,11 @@
1
+ export function noContextMenu(node) {
2
+ const handleContextMenu = (event) => {
3
+ event.preventDefault();
4
+ };
5
+ node.addEventListener('contextmenu', handleContextMenu);
6
+ return {
7
+ destroy() {
8
+ node.removeEventListener('contextmenu', handleContextMenu);
9
+ },
10
+ };
11
+ }
@@ -0,0 +1,29 @@
1
+ @keyframes ripple-effect {
2
+ 0% {
3
+ transform: scale(0);
4
+ opacity: 1;
5
+ }
6
+ 100% {
7
+ transform: scale(4);
8
+ opacity: 0;
9
+ }
10
+ }
11
+
12
+ .ripple-container {
13
+ position: absolute;
14
+ top: 0;
15
+ left: 0;
16
+ width: 100%;
17
+ height: 100%;
18
+ overflow: hidden;
19
+ border-radius: inherit;
20
+ pointer-events: none;
21
+ }
22
+
23
+ .ripple {
24
+ position: absolute;
25
+ border-radius: 50%;
26
+ background-color: var(--ripple-color, rgba(0, 0, 0, 0.12));
27
+ transform: scale(0);
28
+ animation: ripple-effect 0.5s linear;
29
+ }
@@ -0,0 +1,7 @@
1
+ import './ripple.css';
2
+ export type RipplePropsType = {
3
+ color?: string | 'light' | 'dark';
4
+ };
5
+ export declare function ripple(node: HTMLElement, { color }?: RipplePropsType): {
6
+ destroy(): void;
7
+ };
@@ -0,0 +1,74 @@
1
+ import { isTouchDevice } from '../services/index.js';
2
+ import './ripple.css';
3
+ const DARK_RIPPLE_COLOR = 'rgba(0, 0, 0, 0.12)';
4
+ const LIGHT_RIPPLE_COLOR = 'rgba(255, 255, 255, 0.12)';
5
+ export function ripple(node, { color } = {}) {
6
+ const isTouchEnabled = isTouchDevice();
7
+ let timeoutInstance;
8
+ // Create ripple container
9
+ const rippleContainer = document.createElement('span');
10
+ rippleContainer.classList.add('ripple-container');
11
+ node.appendChild(rippleContainer);
12
+ function scheduleStartRipple(event) {
13
+ // Don't ripple if clicking on backdrop
14
+ if (event.target.closest('[aria-label="backdrop"]')) {
15
+ return;
16
+ }
17
+ if (node.disabled)
18
+ return;
19
+ if (timeoutInstance)
20
+ clearTimeout(timeoutInstance);
21
+ timeoutInstance = setTimeout(() => startRipple(event), 100);
22
+ event.stopPropagation();
23
+ }
24
+ function mouseMove(event) {
25
+ if (timeoutInstance)
26
+ clearTimeout(timeoutInstance);
27
+ event.stopPropagation();
28
+ }
29
+ function startRipple(event) {
30
+ event.stopPropagation();
31
+ const isDarkMode = document.documentElement.classList.contains('dark') ||
32
+ document.body.classList.contains('dark');
33
+ let rippleColor = color || (isDarkMode ? LIGHT_RIPPLE_COLOR : DARK_RIPPLE_COLOR);
34
+ if (color === 'light')
35
+ rippleColor = LIGHT_RIPPLE_COLOR;
36
+ if (color === 'dark')
37
+ rippleColor = DARK_RIPPLE_COLOR;
38
+ const circle = document.createElement('span');
39
+ circle.classList.add('ripple');
40
+ const diameter = Math.max(node.clientWidth, node.clientHeight);
41
+ const radius = diameter / 2;
42
+ const rect = node.getBoundingClientRect();
43
+ const touch = event.touches?.[0] || {};
44
+ const circleX = (event instanceof MouseEvent ? event.clientX : touch.clientX) - rect.left - radius;
45
+ const circleY = (event instanceof MouseEvent ? event.clientY : touch.clientY) - rect.top - radius;
46
+ circle.style.width = circle.style.height = `${diameter}px`;
47
+ circle.style.left = `${circleX}px`;
48
+ circle.style.top = `${circleY}px`;
49
+ circle.style.setProperty('--ripple-color', rippleColor);
50
+ rippleContainer.appendChild(circle);
51
+ setTimeout(() => circle.remove(), 500);
52
+ }
53
+ if (!isTouchEnabled) {
54
+ node.addEventListener('mousedown', scheduleStartRipple);
55
+ node.addEventListener('mousemove', mouseMove);
56
+ }
57
+ else {
58
+ node.addEventListener('touchstart', scheduleStartRipple);
59
+ node.addEventListener('touchmove', mouseMove);
60
+ }
61
+ return {
62
+ destroy() {
63
+ if (!isTouchEnabled) {
64
+ node.removeEventListener('mousedown', scheduleStartRipple);
65
+ node.removeEventListener('mousemove', mouseMove);
66
+ }
67
+ else {
68
+ node.removeEventListener('touchstart', scheduleStartRipple);
69
+ node.removeEventListener('touchmove', mouseMove);
70
+ }
71
+ rippleContainer.remove();
72
+ }
73
+ };
74
+ }
@@ -0,0 +1,4 @@
1
+ export * from './actions/index.js';
2
+ export * from './services/index.js';
3
+ export * from './views/index.js';
4
+ export * from './types.js';
package/dist/index.js ADDED
@@ -0,0 +1,4 @@
1
+ export * from './actions/index.js';
2
+ export * from './services/index.js';
3
+ export * from './views/index.js';
4
+ export * from './types.js';
@@ -0,0 +1,52 @@
1
+ import { type unitOfTime } from "moment";
2
+ export declare class PeriodEnum {
3
+ static TODAY: number;
4
+ static TOMORROW: number;
5
+ static YESTERDAY: number;
6
+ static THIS_WEEK: number;
7
+ static LAST_WEEK: number;
8
+ static NEXT_WEEK: number;
9
+ static THIS_MONTH: number;
10
+ static LAST_MONTH: number;
11
+ static NEXT_MONTH: number;
12
+ static THIS_YEAR: number;
13
+ static LAST_YEAR: number;
14
+ static NEXT_YEAR: number;
15
+ static DATE: number;
16
+ }
17
+ export type FirestoreTimestamp = {
18
+ seconds: number;
19
+ nanoseconds: number;
20
+ };
21
+ export declare function getDateWith(yearChange: number): Date;
22
+ export declare function getDateTime(date: string | Date | any): number;
23
+ export declare function momentDiff({ startDate, endDate, unit }: {
24
+ startDate: Date;
25
+ endDate?: Date;
26
+ unit: unitOfTime.Diff;
27
+ }): number;
28
+ export declare function yearsDiff(startDate: Date, endDate?: Date): number;
29
+ export declare function monthsDiff(startDate: Date, endDate?: Date): number;
30
+ export declare function daysDiff(startDate: Date, endDate?: Date): number;
31
+ export declare function hoursDiff(startDate: Date, endDate?: Date): number;
32
+ export declare function minutesDiff(startDate: Date, endDate?: Date): number;
33
+ export declare function getPeriodDates(period: PeriodEnum, currentDate?: Date): {
34
+ startDate: any;
35
+ endDate: any;
36
+ };
37
+ export declare function padTo2Digits(num: number): string;
38
+ export declare function millisToTimeString(milliseconds: number): string;
39
+ export declare function timestampToMillis(timestamp: any): number;
40
+ export declare function timestampToDate(timestamp: FirestoreTimestamp): Date;
41
+ export declare function timestampToDateString(timestamp: FirestoreTimestamp): string;
42
+ export declare function timestampToAgo(timestamp: FirestoreTimestamp): string;
43
+ export declare function dateToTimestamp(date: Date): {
44
+ seconds: number;
45
+ nanoseconds: number;
46
+ };
47
+ export declare function dateToAgo(date: Date): string;
48
+ export declare function millisToDateString(millis: number): string;
49
+ export declare function millisToDate(millis: number): Date;
50
+ export declare function dateFormat(date: Date, format?: 'MM-DD-YYYY hh:mm a' | 'MM-DD-YYYY' | 'YYYY-MM-DD' | 'YYYY-MM-DDTHH:MM' | string): string;
51
+ export declare function isDateBetween(date: Date, startDate: Date, endDate: Date): boolean;
52
+ export declare function toDate(value: any): Date;
@@ -0,0 +1,206 @@
1
+ import moment, {} from "moment";
2
+ export class PeriodEnum {
3
+ static TODAY = 1;
4
+ static TOMORROW = 2;
5
+ static YESTERDAY = 3;
6
+ static THIS_WEEK = 4;
7
+ static LAST_WEEK = 5;
8
+ static NEXT_WEEK = 6;
9
+ static THIS_MONTH = 7;
10
+ static LAST_MONTH = 8;
11
+ static NEXT_MONTH = 9;
12
+ static THIS_YEAR = 10;
13
+ static LAST_YEAR = 11;
14
+ static NEXT_YEAR = 12;
15
+ static DATE = 13;
16
+ }
17
+ export function getDateWith(yearChange) {
18
+ const date = new Date();
19
+ date.setFullYear(date.getFullYear() + yearChange);
20
+ return date;
21
+ }
22
+ export function getDateTime(date) {
23
+ if (date) {
24
+ if (typeof date == 'string') {
25
+ return new Date(date).getTime();
26
+ }
27
+ else if (date instanceof Date) {
28
+ return date.getTime();
29
+ }
30
+ else if (date.seconds) {
31
+ return timestampToMillis(date) || 0;
32
+ }
33
+ }
34
+ return 0;
35
+ }
36
+ export function momentDiff({ startDate, endDate, unit }) {
37
+ if (endDate) {
38
+ return moment(startDate).diff(moment(endDate), unit);
39
+ }
40
+ else {
41
+ return moment().diff(moment(startDate), unit);
42
+ }
43
+ }
44
+ export function yearsDiff(startDate, endDate) {
45
+ return momentDiff({ startDate, endDate, unit: 'y' });
46
+ }
47
+ export function monthsDiff(startDate, endDate) {
48
+ return momentDiff({ startDate, endDate, unit: 'M' });
49
+ }
50
+ export function daysDiff(startDate, endDate) {
51
+ return momentDiff({ startDate, endDate, unit: 'd' });
52
+ }
53
+ export function hoursDiff(startDate, endDate) {
54
+ return momentDiff({ startDate, endDate, unit: 'h' });
55
+ }
56
+ export function minutesDiff(startDate, endDate) {
57
+ return momentDiff({ startDate, endDate, unit: 'm' });
58
+ }
59
+ export function getPeriodDates(period, currentDate = new Date()) {
60
+ const currentDate1 = moment(currentDate);
61
+ const currentDate2 = moment(currentDate);
62
+ let startDate, endDate;
63
+ switch (period) {
64
+ case PeriodEnum.DATE:
65
+ case PeriodEnum.TODAY:
66
+ startDate = currentDate1.startOf('day');
67
+ endDate = currentDate2.endOf('day');
68
+ break;
69
+ case PeriodEnum.TOMORROW:
70
+ startDate = currentDate1.add(1, 'day').startOf('day');
71
+ endDate = currentDate2.add(1, 'day').endOf('day');
72
+ break;
73
+ case PeriodEnum.YESTERDAY:
74
+ startDate = currentDate1.subtract(1, 'day').startOf('day');
75
+ endDate = currentDate2.subtract(1, 'day').endOf('day');
76
+ break;
77
+ case PeriodEnum.THIS_WEEK:
78
+ startDate = currentDate1.startOf('week');
79
+ endDate = currentDate2.endOf('week');
80
+ break;
81
+ case PeriodEnum.LAST_WEEK:
82
+ startDate = currentDate1.subtract(1, 'week').startOf('week');
83
+ endDate = currentDate2.subtract(1, 'week').endOf('week');
84
+ break;
85
+ case PeriodEnum.NEXT_WEEK:
86
+ startDate = currentDate1.add(1, 'week').startOf('week');
87
+ endDate = currentDate2.add(1, 'week').endOf('week');
88
+ break;
89
+ case PeriodEnum.THIS_MONTH:
90
+ startDate = currentDate1.startOf('month');
91
+ endDate = currentDate2.endOf('month');
92
+ break;
93
+ case PeriodEnum.NEXT_MONTH:
94
+ startDate = currentDate1.add(1, 'month').startOf('month');
95
+ endDate = currentDate2.add(1, 'month').endOf('month');
96
+ break;
97
+ case PeriodEnum.LAST_MONTH:
98
+ startDate = currentDate1.subtract(1, 'month').startOf('month');
99
+ endDate = currentDate2.subtract(1, 'month').endOf('month');
100
+ break;
101
+ case PeriodEnum.THIS_YEAR:
102
+ startDate = currentDate1.startOf('year');
103
+ endDate = currentDate2.endOf('year');
104
+ break;
105
+ case PeriodEnum.LAST_YEAR:
106
+ startDate = currentDate1.subtract(1, 'year').startOf('year');
107
+ endDate = currentDate2.subtract(1, 'year').endOf('year');
108
+ break;
109
+ case PeriodEnum.NEXT_YEAR:
110
+ startDate = currentDate1.add(1, 'year').startOf('year');
111
+ endDate = currentDate2.add(1, 'year').endOf('year');
112
+ break;
113
+ default:
114
+ startDate = null;
115
+ endDate = null;
116
+ break;
117
+ }
118
+ return {
119
+ startDate: startDate ? startDate.toDate() : null,
120
+ endDate: endDate ? endDate.toDate() : null,
121
+ };
122
+ }
123
+ export function padTo2Digits(num) {
124
+ return num.toString().padStart(2, '0');
125
+ }
126
+ export function millisToTimeString(milliseconds) {
127
+ let seconds = Math.floor(milliseconds / 1000);
128
+ let minutes = Math.floor(seconds / 60);
129
+ let hours = Math.floor(minutes / 60);
130
+ seconds = seconds % 60;
131
+ minutes = minutes % 60;
132
+ // 👇️ If you don't want to roll hours over, e.g. 24 to 00
133
+ // 👇️ comment (or remove) the line below
134
+ // commenting next line gets you `24:00:00` instead of `00:00:00`
135
+ // or `36:15:31` instead of `12:15:31`, etc.
136
+ hours = hours % 24;
137
+ return `${padTo2Digits(hours)}:${padTo2Digits(minutes)}:${padTo2Digits(seconds)}`;
138
+ }
139
+ export function timestampToMillis(timestamp) {
140
+ if (timestamp && timestamp.seconds) {
141
+ return (timestamp.seconds * 1000) + (timestamp.nanoseconds / 1000000);
142
+ }
143
+ }
144
+ export function timestampToDate(timestamp) {
145
+ if (timestamp && timestamp.seconds) {
146
+ return new Date((timestamp.seconds * 1000) + (timestamp.nanoseconds / 1000000));
147
+ }
148
+ }
149
+ export function timestampToDateString(timestamp) {
150
+ if (timestamp && timestamp.seconds) {
151
+ return moment(new Date(timestamp.seconds * 1000)).format('MM-DD-YYYY hh:mm a');
152
+ }
153
+ }
154
+ export function timestampToAgo(timestamp) {
155
+ if (timestamp && timestamp.seconds) {
156
+ return moment(new Date(timestamp.seconds * 1000)).fromNow();
157
+ }
158
+ }
159
+ export function dateToTimestamp(date) {
160
+ return { seconds: date.getTime() / 1000, nanoseconds: 0 };
161
+ }
162
+ export function dateToAgo(date) {
163
+ if (date) {
164
+ return moment(date).fromNow();
165
+ }
166
+ }
167
+ export function millisToDateString(millis) {
168
+ if (millis) {
169
+ return moment(new Date(millis)).format('MM-DD-YYYY hh:mm a');
170
+ }
171
+ }
172
+ export function millisToDate(millis) {
173
+ if (millis) {
174
+ return new Date(millis);
175
+ }
176
+ }
177
+ export function dateFormat(date, format = 'MM-DD-YYYY hh:mm a') {
178
+ if (date) {
179
+ return moment(date).format(format);
180
+ }
181
+ }
182
+ export function isDateBetween(date, startDate, endDate) {
183
+ const targetDate = date;
184
+ return targetDate >= startDate && targetDate < endDate;
185
+ }
186
+ export function toDate(value) {
187
+ let result = undefined;
188
+ if (value) {
189
+ if (value instanceof Date) {
190
+ result = value;
191
+ }
192
+ else if (typeof value == 'number') {
193
+ result = millisToDate(value);
194
+ }
195
+ else if (typeof value == 'string' && !isNaN(value)) {
196
+ result = millisToDate(parseInt(value));
197
+ }
198
+ else if (typeof value == 'string') {
199
+ result = moment(value).toDate();
200
+ }
201
+ else if (value.seconds) {
202
+ result = timestampToDate(value);
203
+ }
204
+ }
205
+ return result;
206
+ }
@@ -0,0 +1,96 @@
1
+ import { ImageCaptureEnum, type ImageCaptures, type OutputImageFormats } from '../utils/image-service';
2
+ import { type CropperDialogProps, type DialogProps, type DialogSize, type InputFieldProps, type PickerDialogProps } from '../../views/index.js';
3
+ export declare enum DialogSizeEnum {
4
+ XS = "xs",
5
+ SM = "sm",
6
+ MD = "md",
7
+ LG = "lg",
8
+ XL = "xl",
9
+ FULL = "full"
10
+ }
11
+ export type PickerDialogPropsType = {
12
+ items?: any[];
13
+ itemTitle?: string;
14
+ itemSubtitle?: string;
15
+ hasArrow?: boolean;
16
+ hasCheck?: boolean;
17
+ multiple?: boolean;
18
+ okButtonLabel?: string;
19
+ okButtonClassName?: string;
20
+ closeButtonLabel?: string;
21
+ closeButtonClassName?: string;
22
+ identity?: string;
23
+ value?: any | any[];
24
+ search?: string | string[];
25
+ };
26
+ export declare function openDialog<R>(props?: DialogProps): Promise<R>;
27
+ export declare function openConfirmDialog(params?: DialogProps & {
28
+ msg?: string;
29
+ }): Promise<unknown>;
30
+ export declare function openAlertDialog(params?: DialogProps & {
31
+ msg?: string;
32
+ }): Promise<unknown>;
33
+ export declare function openDeleteConfirmDialog({ msg, title, footerOkButtonLabel, footerOkButtonClassName, ...params }?: DialogProps & {
34
+ msg?: string;
35
+ }): Promise<unknown>;
36
+ export declare function openPickerDialog<R>({ items, value, multiple, hasCheckbox, hasArrow, maxlength, maxlengthMsg, identityFieldName, titleFieldName, searchFieldName, subtitleFieldName, hasIcon, iconPath, iconClassName, isCircularIcon, circularIconClassName, itemTileSnippet, ...params }: DialogProps & PickerDialogProps): Promise<R>;
37
+ export declare function openNumberFieldDialog({ title, value, label, name, maxlength, fieldClassName, autofocus, required, appearance, size, floatingLabel, ...params }?: DialogProps & InputFieldProps & {
38
+ fieldClassName?: string;
39
+ }): Promise<unknown>;
40
+ export declare function openTextFieldDialog({ title, value, label, name, maxlength, fieldClassName, autofocus, required, appearance, size, floatingLabel, ...params }?: DialogProps & InputFieldProps & {
41
+ fieldClassName?: string;
42
+ }): Promise<unknown>;
43
+ export declare function openTextareaFieldDialog({ title, value, label, name, maxlength, fieldClassName, autofocus, required, appearance, size, floatingLabel, rows, ...params }?: DialogProps & InputFieldProps & {
44
+ fieldClassName?: string;
45
+ }): Promise<unknown>;
46
+ export declare function openLoadingDialog({ msg, loadingDialogContainerClassName, loadingDialogClassName, loadingDialogSpinnerClassName, loadingDialogMsgClassName, ...params }?: DialogProps & {
47
+ msg?: string;
48
+ loadingDialogContainerClassName?: string;
49
+ loadingDialogClassName?: string;
50
+ loadingDialogSpinnerClassName?: string;
51
+ loadingDialogMsgClassName?: string;
52
+ }): Promise<any>;
53
+ /**
54
+ * Return Cropped Image DataUrl
55
+ * @param props
56
+ * @returns
57
+ */
58
+ export declare function openCropperDialog<T, R>({ outputWidth, outputFormat, outputQuality, outputType, inputImageFile, className, outputAspectRatio, ...params }: DialogProps & CropperDialogProps): Promise<R | string | File>;
59
+ /**
60
+ * Opens a file picker dialog and returns the selected file or files.
61
+ * This function uses native browser APIs to ensure compatibility across different browsers.
62
+ * @param accepts - A string or array of accepted file types (e.g., 'image/*', '.pdf').
63
+ * @param multiple - A boolean indicating if multiple files can be selected.
64
+ * @returns A promise that resolves to a File or an array of File objects, or null if no files were selected.
65
+ */
66
+ export declare function openFilePickerDialog<T extends File | File[]>(accepts?: string | string[], options?: {
67
+ multiple: boolean;
68
+ }): Promise<T | null>;
69
+ /**
70
+ * Opens an image picker dialog that supports mobile devices, camera capture, gallery selection, and file explorer.
71
+ * Allows the user to specify output format and quality for the selected images.
72
+ * @param accepts - A string or array of accepted file types (e.g., 'image/*').
73
+ * @param options - Additional options for capturing images (e.g., required resolution, file size, output format).
74
+ * @returns A promise that resolves to a processed File object or an array of File objects, or null if no file was selected.
75
+ */
76
+ export declare function openImagePickerDialog<T extends File | File[]>(accepts?: string | string[], options?: {
77
+ multiple?: boolean;
78
+ capture?: ImageCaptures;
79
+ maxWidth?: number;
80
+ maxHeight?: number;
81
+ maxSizeInBytes?: number;
82
+ outputFormat?: OutputImageFormats;
83
+ quality?: number;
84
+ }): Promise<T | null>;
85
+ export declare function openImagePickerDialogWithCropper({ outputFormat, outputWidth, outputQuality, outputAspectRatio, dialogSize, capture, maxHeight, maxSizeInBytes, maxWidth, quality }?: {
86
+ outputFormat?: OutputImageFormats;
87
+ outputWidth?: number;
88
+ outputQuality?: number;
89
+ outputAspectRatio?: number;
90
+ dialogSize?: DialogSize;
91
+ capture?: ImageCaptureEnum;
92
+ maxWidth?: number;
93
+ maxHeight?: number;
94
+ maxSizeInBytes?: number;
95
+ quality?: number;
96
+ }): Promise<File | null>;