keycloakify 6.11.9 → 6.12.1

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 (253) hide show
  1. package/README.md +10 -7
  2. package/bin/create-keycloak-email-directory.js +1 -1
  3. package/bin/download-builtin-keycloak-theme.js +1 -1
  4. package/bin/keycloakify/BuildOptions.d.ts +2 -2
  5. package/bin/keycloakify/BuildOptions.js.map +1 -1
  6. package/bin/keycloakify/generateFtl/generateFtl.d.ts +2 -2
  7. package/bin/keycloakify/generateJavaStackFiles.d.ts +1 -1
  8. package/bin/keycloakify/generateKeycloakThemeResources.d.ts +1 -1
  9. package/bin/keycloakify/generateKeycloakThemeResources.js +1 -1
  10. package/bin/keycloakify/generateStartKeycloakTestingContainer.d.ts +1 -1
  11. package/bin/keycloakify/keycloakify.js +1 -1
  12. package/bin/keycloakify/replacers/replaceImportsFromStaticInJsCode.d.ts +1 -1
  13. package/bin/keycloakify/replacers/replaceImportsInCssCode.d.ts +1 -1
  14. package/bin/keycloakify/replacers/replaceImportsInInlineCssCode.d.ts +1 -1
  15. package/bin/promptKeycloakVersion.js +1 -1
  16. package/bin/tools/NpmModuleVersion.d.ts +1 -1
  17. package/bin/tools/cliOptions.d.ts +1 -1
  18. package/bin/tools/deflate.js +1 -1
  19. package/bin/tools/downloadAndUnzip.js +51 -44
  20. package/bin/tools/downloadAndUnzip.js.map +1 -1
  21. package/bin/tools/grant-exec-perms.js +3 -2
  22. package/bin/tools/grant-exec-perms.js.map +1 -1
  23. package/bin/tools/jar.d.ts +1 -1
  24. package/bin/tools/jar.js +1 -1
  25. package/bin/tools/logger.d.ts +2 -2
  26. package/bin/tools/octokit-addons/getLatestsSemVersionedTag.js +34 -27
  27. package/bin/tools/octokit-addons/getLatestsSemVersionedTag.js.map +1 -1
  28. package/bin/tools/octokit-addons/listTags.js +1 -1
  29. package/bin/tools/transformCodebase.d.ts +1 -1
  30. package/bin/tools/walk.js +1 -1
  31. package/bin/tools/zip.d.ts +2 -2
  32. package/bin/tools/zip.js +1 -1
  33. package/bin/tsconfig.tsbuildinfo +1 -1
  34. package/lib/KcApp.d.ts +6 -0
  35. package/lib/{components/KcApp.js → KcApp.js} +25 -26
  36. package/lib/KcApp.js.map +1 -0
  37. package/lib/{components/KcProps.d.ts → KcProps.d.ts} +30 -6
  38. package/lib/{components/KcProps.js → KcProps.js} +1 -1
  39. package/lib/KcProps.js.map +1 -0
  40. package/lib/Template.d.ts +18 -0
  41. package/lib/{components/Template.js → Template.js} +67 -55
  42. package/lib/Template.js.map +1 -0
  43. package/lib/getKcContext/KcContextBase.d.ts +6 -6
  44. package/lib/getKcContext/getKcContextFromWindow.d.ts +1 -1
  45. package/lib/getKcContext/{kcContextMocks/kcContextMocks.d.ts → kcContextMocks.d.ts} +1 -1
  46. package/lib/getKcContext/{kcContextMocks/kcContextMocks.js → kcContextMocks.js} +8 -5
  47. package/lib/getKcContext/kcContextMocks.js.map +1 -0
  48. package/lib/i18n/i18n.d.ts +100 -0
  49. package/lib/i18n/i18n.js +160 -0
  50. package/lib/i18n/i18n.js.map +1 -0
  51. package/lib/i18n/index.d.ts +1 -99
  52. package/lib/i18n/index.js +1 -159
  53. package/lib/i18n/index.js.map +1 -1
  54. package/lib/index.d.ts +3 -3
  55. package/lib/index.js +3 -3
  56. package/lib/index.js.map +1 -1
  57. package/lib/pages/Error.d.ts +5 -0
  58. package/lib/{components → pages}/Error.js +4 -6
  59. package/lib/pages/Error.js.map +1 -0
  60. package/lib/pages/IdpReviewUserProfile.d.ts +5 -0
  61. package/lib/{components → pages}/IdpReviewUserProfile.js +4 -6
  62. package/lib/pages/IdpReviewUserProfile.js.map +1 -0
  63. package/lib/pages/Info.d.ts +5 -0
  64. package/lib/{components → pages}/Info.js +4 -6
  65. package/lib/pages/Info.js.map +1 -0
  66. package/lib/pages/Login.d.ts +5 -0
  67. package/lib/{components → pages}/Login.js +5 -7
  68. package/lib/pages/Login.js.map +1 -0
  69. package/lib/pages/LoginConfigTotp.d.ts +5 -0
  70. package/lib/{components → pages}/LoginConfigTotp.js +4 -6
  71. package/lib/pages/LoginConfigTotp.js.map +1 -0
  72. package/lib/pages/LoginIdpLinkConfirm.d.ts +5 -0
  73. package/lib/{components → pages}/LoginIdpLinkConfirm.js +4 -6
  74. package/lib/pages/LoginIdpLinkConfirm.js.map +1 -0
  75. package/lib/pages/LoginIdpLinkEmail.d.ts +5 -0
  76. package/lib/{components → pages}/LoginIdpLinkEmail.js +4 -6
  77. package/lib/pages/LoginIdpLinkEmail.js.map +1 -0
  78. package/lib/pages/LoginOtp.d.ts +5 -0
  79. package/lib/{components → pages}/LoginOtp.js +4 -6
  80. package/lib/pages/LoginOtp.js.map +1 -0
  81. package/lib/pages/LoginPageExpired.d.ts +5 -0
  82. package/lib/{components → pages}/LoginPageExpired.js +4 -6
  83. package/lib/pages/LoginPageExpired.js.map +1 -0
  84. package/lib/pages/LoginPassword.d.ts +5 -0
  85. package/lib/{components → pages}/LoginPassword.js +5 -7
  86. package/lib/pages/LoginPassword.js.map +1 -0
  87. package/lib/pages/LoginResetPassword.d.ts +5 -0
  88. package/lib/{components → pages}/LoginResetPassword.js +4 -6
  89. package/lib/pages/LoginResetPassword.js.map +1 -0
  90. package/lib/pages/LoginUpdatePassword.d.ts +5 -0
  91. package/lib/{components → pages}/LoginUpdatePassword.js +4 -6
  92. package/lib/pages/LoginUpdatePassword.js.map +1 -0
  93. package/lib/pages/LoginUpdateProfile.d.ts +5 -0
  94. package/lib/{components → pages}/LoginUpdateProfile.js +4 -6
  95. package/lib/pages/LoginUpdateProfile.js.map +1 -0
  96. package/lib/pages/LoginUsername.d.ts +5 -0
  97. package/lib/{components → pages}/LoginUsername.js +5 -7
  98. package/lib/pages/LoginUsername.js.map +1 -0
  99. package/lib/pages/LoginVerifyEmail.d.ts +5 -0
  100. package/lib/{components → pages}/LoginVerifyEmail.js +4 -6
  101. package/lib/pages/LoginVerifyEmail.js.map +1 -0
  102. package/lib/pages/LogoutConfirm.d.ts +5 -0
  103. package/lib/{components → pages}/LogoutConfirm.js +4 -6
  104. package/lib/pages/LogoutConfirm.js.map +1 -0
  105. package/lib/pages/Register.d.ts +5 -0
  106. package/lib/{components → pages}/Register.js +4 -6
  107. package/lib/pages/Register.js.map +1 -0
  108. package/lib/pages/RegisterUserProfile.d.ts +5 -0
  109. package/lib/{components → pages}/RegisterUserProfile.js +4 -6
  110. package/lib/pages/RegisterUserProfile.js.map +1 -0
  111. package/lib/pages/Terms.d.ts +19 -0
  112. package/lib/{components → pages}/Terms.js +20 -22
  113. package/lib/pages/Terms.js.map +1 -0
  114. package/lib/pages/UpdateUserProfile.d.ts +5 -0
  115. package/lib/{components → pages}/UpdateUserProfile.js +4 -6
  116. package/lib/pages/UpdateUserProfile.js.map +1 -0
  117. package/lib/pages/WebauthnAuthenticate.d.ts +5 -0
  118. package/lib/{components → pages}/WebauthnAuthenticate.js +5 -7
  119. package/lib/pages/WebauthnAuthenticate.js.map +1 -0
  120. package/lib/{components → pages}/shared/UserProfileCommons.d.ts +6 -6
  121. package/lib/{components → pages}/shared/UserProfileCommons.js +4 -4
  122. package/lib/pages/shared/UserProfileCommons.js.map +1 -0
  123. package/lib/tools/AndByDiscriminatingKey.d.ts +1 -1
  124. package/lib/tools/DeepPartial.d.ts +1 -1
  125. package/lib/tools/ReactComponent.d.ts +1 -1
  126. package/lib/tools/SetOptional.d.ts +1 -0
  127. package/lib/tools/SetOptional.js +2 -0
  128. package/lib/tools/SetOptional.js.map +1 -0
  129. package/lib/tools/clsx.d.ts +2 -3
  130. package/lib/tools/clsx.js +39 -3
  131. package/lib/tools/clsx.js.map +1 -1
  132. package/lib/tools/deepAssign.js +1 -1
  133. package/lib/tools/deepAssign.js.map +1 -1
  134. package/lib/tools/memoize.d.ts +7 -0
  135. package/lib/tools/memoize.js +38 -0
  136. package/lib/tools/memoize.js.map +1 -0
  137. package/lib/tools/useCallbackFactory.d.ts +15 -0
  138. package/lib/tools/useCallbackFactory.js +28 -0
  139. package/lib/tools/useCallbackFactory.js.map +1 -0
  140. package/lib/tools/useConst.d.ts +5 -0
  141. package/lib/tools/useConst.js +10 -0
  142. package/lib/tools/useConst.js.map +1 -0
  143. package/lib/tools/useConstCallback.d.ts +2 -0
  144. package/lib/tools/useConstCallback.js +8 -0
  145. package/lib/tools/useConstCallback.js.map +1 -0
  146. package/lib/tools/useCssAndCx.d.ts +1 -1
  147. package/lib/tsconfig.tsbuildinfo +1 -1
  148. package/lib/useFormValidationSlice.d.ts +4 -4
  149. package/lib/useFormValidationSlice.js +1 -1
  150. package/lib/useFormValidationSlice.js.map +1 -1
  151. package/package.json +133 -124
  152. package/src/bin/keycloakify/BuildOptions.ts +2 -2
  153. package/src/bin/keycloakify/generateFtl/generateFtl.ts +1 -1
  154. package/src/lib/{components/KcApp.tsx → KcApp.tsx} +29 -38
  155. package/src/lib/{components/KcProps.ts → KcProps.ts} +27 -1
  156. package/src/lib/{components/Template.tsx → Template.tsx} +111 -95
  157. package/src/lib/getKcContext/KcContextBase.ts +1 -1
  158. package/src/lib/getKcContext/{kcContextMocks/kcContextMocks.ts → kcContextMocks.ts} +9 -6
  159. package/src/lib/i18n/i18n.tsx +292 -0
  160. package/src/lib/i18n/index.tsx +1 -290
  161. package/src/lib/index.ts +3 -3
  162. package/src/lib/{components → pages}/Error.tsx +7 -18
  163. package/src/lib/{components → pages}/IdpReviewUserProfile.tsx +7 -18
  164. package/src/lib/{components → pages}/Info.tsx +7 -18
  165. package/src/lib/{components → pages}/Login.tsx +8 -20
  166. package/src/lib/{components → pages}/LoginConfigTotp.tsx +7 -18
  167. package/src/lib/{components → pages}/LoginIdpLinkConfirm.tsx +7 -18
  168. package/src/lib/{components → pages}/LoginIdpLinkEmail.tsx +7 -18
  169. package/src/lib/{components → pages}/LoginOtp.tsx +7 -18
  170. package/src/lib/{components → pages}/LoginPageExpired.tsx +7 -18
  171. package/src/lib/{components → pages}/LoginPassword.tsx +8 -19
  172. package/src/lib/{components → pages}/LoginResetPassword.tsx +7 -18
  173. package/src/lib/{components → pages}/LoginUpdatePassword.tsx +7 -18
  174. package/src/lib/{components → pages}/LoginUpdateProfile.tsx +7 -18
  175. package/src/lib/{components → pages}/LoginUsername.tsx +8 -19
  176. package/src/lib/{components → pages}/LoginVerifyEmail.tsx +7 -18
  177. package/src/lib/{components → pages}/LogoutConfirm.tsx +7 -18
  178. package/src/lib/{components → pages}/Register.tsx +7 -18
  179. package/src/lib/{components → pages}/RegisterUserProfile.tsx +7 -18
  180. package/src/lib/{components → pages}/Terms.tsx +50 -61
  181. package/src/lib/{components → pages}/UpdateUserProfile.tsx +7 -18
  182. package/src/lib/{components → pages}/WebauthnAuthenticate.tsx +9 -19
  183. package/src/lib/pages/shared/UserProfileCommons.tsx +178 -0
  184. package/src/lib/tools/SetOptional.ts +1 -0
  185. package/src/lib/tools/clsx.ts +42 -5
  186. package/src/lib/tools/deepAssign.ts +1 -1
  187. package/src/lib/tools/memoize.ts +55 -0
  188. package/src/lib/tools/useCallbackFactory.ts +45 -0
  189. package/src/lib/tools/useConst.ts +10 -0
  190. package/src/lib/tools/useConstCallback.ts +15 -0
  191. package/src/lib/useFormValidationSlice.tsx +4 -4
  192. package/bin/generate-i18n-messages.d.ts +0 -1
  193. package/bin/generate-i18n-messages.js +0 -126
  194. package/bin/generate-i18n-messages.js.map +0 -1
  195. package/bin/link_in_test_app.d.ts +0 -1
  196. package/bin/link_in_test_app.js +0 -141
  197. package/bin/link_in_test_app.js.map +0 -1
  198. package/lib/components/Error.d.ts +0 -13
  199. package/lib/components/Error.js.map +0 -1
  200. package/lib/components/IdpReviewUserProfile.d.ts +0 -13
  201. package/lib/components/IdpReviewUserProfile.js.map +0 -1
  202. package/lib/components/Info.d.ts +0 -13
  203. package/lib/components/Info.js.map +0 -1
  204. package/lib/components/KcApp.d.ts +0 -13
  205. package/lib/components/KcApp.js.map +0 -1
  206. package/lib/components/KcProps.js.map +0 -1
  207. package/lib/components/Login.d.ts +0 -13
  208. package/lib/components/Login.js.map +0 -1
  209. package/lib/components/LoginConfigTotp.d.ts +0 -13
  210. package/lib/components/LoginConfigTotp.js.map +0 -1
  211. package/lib/components/LoginIdpLinkConfirm.d.ts +0 -13
  212. package/lib/components/LoginIdpLinkConfirm.js.map +0 -1
  213. package/lib/components/LoginIdpLinkEmail.d.ts +0 -13
  214. package/lib/components/LoginIdpLinkEmail.js.map +0 -1
  215. package/lib/components/LoginOtp.d.ts +0 -13
  216. package/lib/components/LoginOtp.js.map +0 -1
  217. package/lib/components/LoginPageExpired.d.ts +0 -13
  218. package/lib/components/LoginPageExpired.js.map +0 -1
  219. package/lib/components/LoginPassword.d.ts +0 -13
  220. package/lib/components/LoginPassword.js.map +0 -1
  221. package/lib/components/LoginResetPassword.d.ts +0 -13
  222. package/lib/components/LoginResetPassword.js.map +0 -1
  223. package/lib/components/LoginUpdatePassword.d.ts +0 -13
  224. package/lib/components/LoginUpdatePassword.js.map +0 -1
  225. package/lib/components/LoginUpdateProfile.d.ts +0 -13
  226. package/lib/components/LoginUpdateProfile.js.map +0 -1
  227. package/lib/components/LoginUsername.d.ts +0 -13
  228. package/lib/components/LoginUsername.js.map +0 -1
  229. package/lib/components/LoginVerifyEmail.d.ts +0 -13
  230. package/lib/components/LoginVerifyEmail.js.map +0 -1
  231. package/lib/components/LogoutConfirm.d.ts +0 -13
  232. package/lib/components/LogoutConfirm.js.map +0 -1
  233. package/lib/components/Register.d.ts +0 -13
  234. package/lib/components/Register.js.map +0 -1
  235. package/lib/components/RegisterUserProfile.d.ts +0 -13
  236. package/lib/components/RegisterUserProfile.js.map +0 -1
  237. package/lib/components/Template.d.ts +0 -25
  238. package/lib/components/Template.js.map +0 -1
  239. package/lib/components/Terms.d.ts +0 -27
  240. package/lib/components/Terms.js.map +0 -1
  241. package/lib/components/UpdateUserProfile.d.ts +0 -13
  242. package/lib/components/UpdateUserProfile.js.map +0 -1
  243. package/lib/components/WebauthnAuthenticate.d.ts +0 -13
  244. package/lib/components/WebauthnAuthenticate.js.map +0 -1
  245. package/lib/components/shared/UserProfileCommons.js.map +0 -1
  246. package/lib/getKcContext/kcContextMocks/index.d.ts +0 -1
  247. package/lib/getKcContext/kcContextMocks/index.js +0 -2
  248. package/lib/getKcContext/kcContextMocks/index.js.map +0 -1
  249. package/lib/getKcContext/kcContextMocks/kcContextMocks.js.map +0 -1
  250. package/src/bin/generate-i18n-messages.ts +0 -86
  251. package/src/bin/link_in_test_app.ts +0 -128
  252. package/src/lib/components/shared/UserProfileCommons.tsx +0 -173
  253. package/src/lib/getKcContext/kcContextMocks/index.ts +0 -1
@@ -1,3 +1,3 @@
1
- export declare type DeepPartial<T> = {
1
+ export type DeepPartial<T> = {
2
2
  [P in keyof T]?: DeepPartial<T[P]>;
3
3
  };
@@ -1,2 +1,2 @@
1
1
  import type { FC, ComponentClass } from "react";
2
- export declare type ReactComponent<Props extends Record<string, unknown> = {}> = ((props: Props) => ReturnType<FC>) | ComponentClass<Props>;
2
+ export type ReactComponent<Props extends Record<string, unknown> = {}> = ((props: Props) => ReturnType<FC>) | ComponentClass<Props>;
@@ -0,0 +1 @@
1
+ export type SetOptional<T extends Record<string, unknown>, K extends keyof T> = Omit<T, K> & Partial<Record<K, T[K]>>;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=SetOptional.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SetOptional.js","sourceRoot":"","sources":["../../src/lib/tools/SetOptional.ts"],"names":[],"mappings":""}
@@ -1,3 +1,2 @@
1
- import type { Cx } from "tss-react";
2
- /** Drop in replacement for https://www.npmjs.com/package/clsx */
3
- export declare const clsx: Cx;
1
+ export type CxArg = undefined | null | string | boolean | Partial<Record<string, boolean | null | undefined>> | readonly CxArg[];
2
+ export declare const clsx: (...args: CxArg[]) => string;
package/lib/tools/clsx.js CHANGED
@@ -1,6 +1,42 @@
1
- import { classnames } from "tss-react/tools/classnames";
2
- /** Drop in replacement for https://www.npmjs.com/package/clsx */
1
+ import { assert } from "tsafe/assert";
2
+ import { typeGuard } from "tsafe/typeGuard";
3
3
  export const clsx = (...args) => {
4
- return classnames(args);
4
+ const len = args.length;
5
+ let i = 0;
6
+ let cls = "";
7
+ for (; i < len; i++) {
8
+ const arg = args[i];
9
+ if (arg == null)
10
+ continue;
11
+ let toAdd;
12
+ switch (typeof arg) {
13
+ case "boolean":
14
+ break;
15
+ case "object": {
16
+ if (Array.isArray(arg)) {
17
+ toAdd = clsx(...arg);
18
+ }
19
+ else {
20
+ assert(!typeGuard(arg, false));
21
+ toAdd = "";
22
+ for (const k in arg) {
23
+ if (arg[k] && k) {
24
+ toAdd && (toAdd += " ");
25
+ toAdd += k;
26
+ }
27
+ }
28
+ }
29
+ break;
30
+ }
31
+ default: {
32
+ toAdd = arg;
33
+ }
34
+ }
35
+ if (toAdd) {
36
+ cls && (cls += " ");
37
+ cls += toAdd;
38
+ }
39
+ }
40
+ return cls;
5
41
  };
6
42
  //# sourceMappingURL=clsx.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"clsx.js","sourceRoot":"","sources":["../../src/lib/tools/clsx.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAGxD,iEAAiE;AACjE,MAAM,CAAC,MAAM,IAAI,GAAO,CAAC,GAAG,IAAI,EAAE,EAAE;IAChC,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC,CAAC"}
1
+ {"version":3,"file":"clsx.js","sourceRoot":"","sources":["../../src/lib/tools/clsx.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAI5C,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,GAAG,IAAa,EAAU,EAAE;IAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;IACxB,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;QACjB,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,GAAG,IAAI,IAAI;YAAE,SAAS;QAE1B,IAAI,KAAK,CAAC;QACV,QAAQ,OAAO,GAAG,EAAE;YAChB,KAAK,SAAS;gBACV,MAAM;YACV,KAAK,QAAQ,CAAC,CAAC;gBACX,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;oBACpB,KAAK,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;iBACxB;qBAAM;oBACH,MAAM,CAAC,CAAC,SAAS,CAAqB,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;oBAEnD,KAAK,GAAG,EAAE,CAAC;oBACX,KAAK,MAAM,CAAC,IAAI,GAAG,EAAE;wBACjB,IAAI,GAAG,CAAC,CAAW,CAAC,IAAI,CAAC,EAAE;4BACvB,KAAK,IAAI,CAAC,KAAK,IAAI,GAAG,CAAC,CAAC;4BACxB,KAAK,IAAI,CAAC,CAAC;yBACd;qBACJ;iBACJ;gBACD,MAAM;aACT;YACD,OAAO,CAAC,CAAC;gBACL,KAAK,GAAG,GAAG,CAAC;aACf;SACJ;QACD,IAAI,KAAK,EAAE;YACP,GAAG,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC;YACpB,GAAG,IAAI,KAAK,CAAC;SAChB;KACJ;IACD,OAAO,GAAG,CAAC;AACf,CAAC,CAAC"}
@@ -7,7 +7,7 @@ export function deepAssign(params) {
7
7
  const source = deepClone(params.source);
8
8
  Object.keys(source).forEach(key => {
9
9
  var dereferencedSource = source[key];
10
- if (target[key] === undefined || !(dereferencedSource instanceof Object)) {
10
+ if (target[key] === undefined || dereferencedSource instanceof Function || !(dereferencedSource instanceof Object)) {
11
11
  Object.defineProperty(target, key, {
12
12
  "enumerable": true,
13
13
  "writable": true,
@@ -1 +1 @@
1
- {"version":3,"file":"deepAssign.js","sourceRoot":"","sources":["../../src/lib/tools/deepAssign.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAC9B,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,mEAAmE;AACnE,MAAM,UAAU,UAAU,CAAC,MAA4E;IACnG,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IAE1B,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAExC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;QAC9B,IAAI,kBAAkB,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAErC,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS,IAAI,CAAC,CAAC,kBAAkB,YAAY,MAAM,CAAC,EAAE;YACtE,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE;gBAC/B,YAAY,EAAE,IAAI;gBAClB,UAAU,EAAE,IAAI;gBAChB,cAAc,EAAE,IAAI;gBACpB,OAAO,EAAE,kBAAkB;aAC9B,CAAC,CAAC;YAEH,OAAO;SACV;QAED,MAAM,kBAAkB,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAEvC,IAAI,kBAAkB,YAAY,KAAK,EAAE;YACrC,MAAM,CAAC,EAAE,CAAY,kBAAkB,CAAC,CAAC,CAAC;YAC1C,MAAM,CAAC,EAAE,CAAY,kBAAkB,CAAC,CAAC,CAAC;YAE1C,kBAAkB,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YAEpE,OAAO;SACV;QAED,MAAM,CAAC,EAAE,CAA0B,kBAAkB,CAAC,CAAC,CAAC;QACxD,MAAM,CAAC,EAAE,CAA0B,kBAAkB,CAAC,CAAC,CAAC;QAExD,UAAU,CAAC;YACP,QAAQ,EAAE,kBAAkB;YAC5B,QAAQ,EAAE,kBAAkB;SAC/B,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"deepAssign.js","sourceRoot":"","sources":["../../src/lib/tools/deepAssign.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAC9B,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,mEAAmE;AACnE,MAAM,UAAU,UAAU,CAAC,MAA4E;IACnG,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IAE1B,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAExC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;QAC9B,IAAI,kBAAkB,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAErC,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS,IAAI,kBAAkB,YAAY,QAAQ,IAAI,CAAC,CAAC,kBAAkB,YAAY,MAAM,CAAC,EAAE;YAChH,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE;gBAC/B,YAAY,EAAE,IAAI;gBAClB,UAAU,EAAE,IAAI;gBAChB,cAAc,EAAE,IAAI;gBACpB,OAAO,EAAE,kBAAkB;aAC9B,CAAC,CAAC;YAEH,OAAO;SACV;QAED,MAAM,kBAAkB,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAEvC,IAAI,kBAAkB,YAAY,KAAK,EAAE;YACrC,MAAM,CAAC,EAAE,CAAY,kBAAkB,CAAC,CAAC,CAAC;YAC1C,MAAM,CAAC,EAAE,CAAY,kBAAkB,CAAC,CAAC,CAAC;YAE1C,kBAAkB,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YAEpE,OAAO;SACV;QAED,MAAM,CAAC,EAAE,CAA0B,kBAAkB,CAAC,CAAC,CAAC;QACxD,MAAM,CAAC,EAAE,CAA0B,kBAAkB,CAAC,CAAC,CAAC;QAExD,UAAU,CAAC;YACP,QAAQ,EAAE,kBAAkB;YAC5B,QAAQ,EAAE,kBAAkB;SAC/B,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,7 @@
1
+ type SimpleType = number | string | boolean | null | undefined;
2
+ type FuncWithSimpleParams<T extends SimpleType[], R> = (...args: T) => R;
3
+ export declare function memoize<T extends SimpleType[], R>(fn: FuncWithSimpleParams<T, R>, options?: {
4
+ argsLength?: number;
5
+ max?: number;
6
+ }): FuncWithSimpleParams<T, R>;
7
+ export {};
@@ -0,0 +1,38 @@
1
+ export function memoize(fn, options) {
2
+ const cache = new Map();
3
+ const { argsLength = fn.length, max = Infinity } = options !== null && options !== void 0 ? options : {};
4
+ return ((...args) => {
5
+ const key = JSON.stringify(args
6
+ .slice(0, argsLength)
7
+ .map(v => {
8
+ if (v === null) {
9
+ return "null";
10
+ }
11
+ if (v === undefined) {
12
+ return "undefined";
13
+ }
14
+ switch (typeof v) {
15
+ case "number":
16
+ return `number-${v}`;
17
+ case "string":
18
+ return `string-${v}`;
19
+ case "boolean":
20
+ return `boolean-${v ? "true" : "false"}`;
21
+ }
22
+ })
23
+ .join("-sIs9sAslOdeWlEdIos3-"));
24
+ if (cache.has(key)) {
25
+ return cache.get(key);
26
+ }
27
+ if (max === cache.size) {
28
+ for (const key of cache.keys()) {
29
+ cache.delete(key);
30
+ break;
31
+ }
32
+ }
33
+ const value = fn(...args);
34
+ cache.set(key, value);
35
+ return value;
36
+ });
37
+ }
38
+ //# sourceMappingURL=memoize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memoize.js","sourceRoot":"","sources":["../../src/lib/tools/memoize.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,OAAO,CACnB,EAA8B,EAC9B,OAGC;IAED,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkD,CAAC;IAExE,MAAM,EAAE,UAAU,GAAG,EAAE,CAAC,MAAM,EAAE,GAAG,GAAG,QAAQ,EAAE,GAAG,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,EAAE,CAAC;IAEjE,OAAO,CAAC,CAAC,GAAG,IAA4C,EAAE,EAAE;QACxD,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CACtB,IAAI;aACC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC;aACpB,GAAG,CAAC,CAAC,CAAC,EAAE;YACL,IAAI,CAAC,KAAK,IAAI,EAAE;gBACZ,OAAO,MAAM,CAAC;aACjB;YACD,IAAI,CAAC,KAAK,SAAS,EAAE;gBACjB,OAAO,WAAW,CAAC;aACtB;YACD,QAAQ,OAAO,CAAC,EAAE;gBACd,KAAK,QAAQ;oBACT,OAAO,UAAU,CAAC,EAAE,CAAC;gBACzB,KAAK,QAAQ;oBACT,OAAO,UAAU,CAAC,EAAE,CAAC;gBACzB,KAAK,SAAS;oBACV,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;aAChD;QACL,CAAC,CAAC;aACD,IAAI,CAAC,uBAAuB,CAAC,CACrC,CAAC;QAEF,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YAChB,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;SACzB;QAED,IAAI,GAAG,KAAK,KAAK,CAAC,IAAI,EAAE;YACpB,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE;gBAC5B,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAClB,MAAM;aACT;SACJ;QAED,MAAM,KAAK,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;QAE1B,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAEtB,OAAO,KAAK,CAAC;IACjB,CAAC,CAAQ,CAAC;AACd,CAAC"}
@@ -0,0 +1,15 @@
1
+ export type CallbackFactory<FactoryArgs extends unknown[], Args extends unknown[], R> = (...factoryArgs: FactoryArgs) => (...args: Args) => R;
2
+ /**
3
+ * https://docs.powerhooks.dev/api-reference/usecallbackfactory
4
+ *
5
+ * const callbackFactory= useCallbackFactory(
6
+ * ([key]: [string], [params]: [{ foo: number; }]) => {
7
+ * ...
8
+ * },
9
+ * []
10
+ * );
11
+ *
12
+ * WARNING: Factory args should not be of variable length.
13
+ *
14
+ */
15
+ export declare function useCallbackFactory<FactoryArgs extends (string | number | boolean)[], Args extends unknown[], R = void>(callback: (...callbackArgs: [FactoryArgs, Args]) => R): CallbackFactory<FactoryArgs, Args, R>;
@@ -0,0 +1,28 @@
1
+ import { useRef, useState } from "react";
2
+ import { id } from "tsafe/id";
3
+ import { memoize } from "./memoize";
4
+ /**
5
+ * https://docs.powerhooks.dev/api-reference/usecallbackfactory
6
+ *
7
+ * const callbackFactory= useCallbackFactory(
8
+ * ([key]: [string], [params]: [{ foo: number; }]) => {
9
+ * ...
10
+ * },
11
+ * []
12
+ * );
13
+ *
14
+ * WARNING: Factory args should not be of variable length.
15
+ *
16
+ */
17
+ export function useCallbackFactory(callback) {
18
+ const callbackRef = useRef(callback);
19
+ callbackRef.current = callback;
20
+ const memoizedRef = useRef(undefined);
21
+ return useState(() => id((...factoryArgs) => {
22
+ if (memoizedRef.current === undefined) {
23
+ memoizedRef.current = memoize((...factoryArgs) => (...args) => callbackRef.current(factoryArgs, args), { "argsLength": factoryArgs.length });
24
+ }
25
+ return memoizedRef.current(...factoryArgs);
26
+ }))[0];
27
+ }
28
+ //# sourceMappingURL=useCallbackFactory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCallbackFactory.js","sourceRoot":"","sources":["../../src/lib/tools/useCallbackFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACzC,OAAO,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAC9B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,kBAAkB,CAC9B,QAAqD;IAIrD,MAAM,WAAW,GAAG,MAAM,CAAkB,QAAQ,CAAC,CAAC;IAEtD,WAAW,CAAC,OAAO,GAAG,QAAQ,CAAC;IAE/B,MAAM,WAAW,GAAG,MAAM,CAAkB,SAAS,CAAC,CAAC;IAEvD,OAAO,QAAQ,CAAC,GAAG,EAAE,CACjB,EAAE,CAAM,CAAC,GAAG,WAAW,EAAE,EAAE;QACvB,IAAI,WAAW,CAAC,OAAO,KAAK,SAAS,EAAE;YACnC,WAAW,CAAC,OAAO,GAAG,OAAO,CACzB,CAAC,GAAG,WAAwB,EAAE,EAAE,CAC5B,CAAC,GAAG,IAAU,EAAE,EAAE,CACd,WAAW,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,EAC9C,EAAE,YAAY,EAAE,WAAW,CAAC,MAAM,EAAE,CACvC,CAAC;SACL;QAED,OAAO,WAAW,CAAC,OAAO,CAAC,GAAG,WAAW,CAAC,CAAC;IAC/C,CAAC,CAAC,CACL,CAAC,CAAC,CAAC,CAAC;AACT,CAAC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Compute a value on first render and never again,
3
+ * Equivalent of const [x] = useState(()=> ...)
4
+ */
5
+ export declare function useConst<T>(getValue: () => T): T;
@@ -0,0 +1,10 @@
1
+ import { useState } from "react";
2
+ /**
3
+ * Compute a value on first render and never again,
4
+ * Equivalent of const [x] = useState(()=> ...)
5
+ */
6
+ export function useConst(getValue) {
7
+ const [value] = useState(getValue);
8
+ return value;
9
+ }
10
+ //# sourceMappingURL=useConst.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useConst.js","sourceRoot":"","sources":["../../src/lib/tools/useConst.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC;;;GAGG;AACH,MAAM,UAAU,QAAQ,CAAI,QAAiB;IACzC,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACnC,OAAO,KAAK,CAAC;AACjB,CAAC"}
@@ -0,0 +1,2 @@
1
+ /** https://stackoverflow.com/questions/65890278/why-cant-usecallback-always-return-the-same-ref */
2
+ export declare function useConstCallback<T extends ((...args: any[]) => unknown) | undefined | null>(callback: NonNullable<T>): T;
@@ -0,0 +1,8 @@
1
+ import { useRef, useState } from "react";
2
+ /** https://stackoverflow.com/questions/65890278/why-cant-usecallback-always-return-the-same-ref */
3
+ export function useConstCallback(callback) {
4
+ const callbackRef = useRef(null);
5
+ callbackRef.current = callback;
6
+ return useState(() => (...args) => callbackRef.current(...args))[0];
7
+ }
8
+ //# sourceMappingURL=useConstCallback.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useConstCallback.js","sourceRoot":"","sources":["../../src/lib/tools/useConstCallback.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAGzC,mGAAmG;AACnG,MAAM,UAAU,gBAAgB,CAA6D,QAAwB;IACjH,MAAM,WAAW,GAAG,MAAM,CAAkB,IAAW,CAAC,CAAC;IAEzD,WAAW,CAAC,OAAO,GAAG,QAAQ,CAAC;IAE/B,OAAO,QAAQ,CACX,GAAG,EAAE,CACD,CAAC,GAAG,IAAmB,EAAE,EAAE,CACvB,WAAW,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CACvC,CAAC,CAAC,CAAM,CAAC;AACd,CAAC"}
@@ -6,5 +6,5 @@
6
6
  * it from @emotion/css: https://emotion.sh/docs/@emotion/css
7
7
  */
8
8
  export declare function useCssAndCx(): {
9
- cx: import("tss-react").Cx;
9
+ cx: (...args: import("./clsx").CxArg[]) => string;
10
10
  };