@platforma-sdk/ui-vue 1.41.2 → 1.41.4

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 (56) hide show
  1. package/.turbo/turbo-build.log +20 -30
  2. package/.turbo/turbo-type-check.log +1 -1
  3. package/CHANGELOG.md +17 -0
  4. package/dist/aggrid.js +4 -4
  5. package/dist/components/PlAgDataTable/PlAgDataTableV2.vue.d.ts +14 -3
  6. package/dist/components/PlAgDataTable/PlAgDataTableV2.vue.d.ts.map +1 -1
  7. package/dist/components/PlAgDataTable/PlAgDataTableV2.vue2.js +252 -179
  8. package/dist/components/PlAgDataTable/PlAgDataTableV2.vue2.js.map +1 -1
  9. package/dist/components/PlAgDataTable/PlAgRowCount.vue.js +1 -1
  10. package/dist/components/PlAgDataTable/sources/focus-row.d.ts +8 -7
  11. package/dist/components/PlAgDataTable/sources/focus-row.d.ts.map +1 -1
  12. package/dist/components/PlAgDataTable/sources/focus-row.js +46 -31
  13. package/dist/components/PlAgDataTable/sources/focus-row.js.map +1 -1
  14. package/dist/components/PlAgDataTable/sources/table-source-v2.d.ts +10 -5
  15. package/dist/components/PlAgDataTable/sources/table-source-v2.d.ts.map +1 -1
  16. package/dist/components/PlAgDataTable/sources/table-source-v2.js +144 -141
  17. package/dist/components/PlAgDataTable/sources/table-source-v2.js.map +1 -1
  18. package/dist/components/PlAgDataTable/types.d.ts +27 -1
  19. package/dist/components/PlAgDataTable/types.d.ts.map +1 -1
  20. package/dist/components/PlAgDataTable/types.js.map +1 -1
  21. package/dist/components/PlAgRowNumCheckbox/PlAgRowNumCheckbox.vue.js +1 -1
  22. package/dist/components/PlAgRowNumHeader.vue.js +1 -1
  23. package/dist/components/PlAnnotations/components/DynamicForm.vue2.js +29 -29
  24. package/dist/components/PlAnnotations/components/FilterSidebar.vue2.js +2 -2
  25. package/dist/components/PlMultiSequenceAlignment/data.js +14 -14
  26. package/dist/defineApp.js +12 -12
  27. package/dist/internal/test-helpers/BlockMock.d.ts +1 -0
  28. package/dist/internal/test-helpers/BlockMock.d.ts.map +1 -1
  29. package/dist/lib/ui/uikit/dist/components/PlAccordion/{ExpandTransition.vue.js → ExpandTransition.vue2.js} +1 -1
  30. package/dist/lib/ui/uikit/dist/components/PlAccordion/ExpandTransition.vue2.js.map +1 -0
  31. package/dist/lib/ui/uikit/dist/components/PlAccordion/PlAccordionSection.vue2.js +1 -1
  32. package/dist/lib/ui/uikit/dist/components/PlAutocomplete/PlAutocomplete.vue.js +1 -1
  33. package/dist/lib/ui/uikit/dist/components/PlDropdown/PlDropdown.vue.js +1 -1
  34. package/dist/lib/ui/uikit/dist/components/PlDropdownLegacy/PlDropdownLegacy.vue.js +1 -1
  35. package/dist/lib/ui/uikit/dist/components/PlDropdownMulti/PlDropdownMulti.vue.js +1 -1
  36. package/dist/lib/ui/uikit/dist/components/PlFileDialog/Local.vue.js +4 -4
  37. package/dist/lib/ui/uikit/dist/components/PlFileInput/PlFileInput.vue.js +1 -1
  38. package/dist/lib/ui/uikit/dist/components/PlTextArea/PlTextArea.vue.js +1 -1
  39. package/dist/lib/ui/uikit/dist/components/PlTextField/PlTextField.vue.js +1 -1
  40. package/dist/lib/ui/uikit/dist/generated/components/svg/images/{SvgRequired.vue2.js → SvgRequired.vue.js} +1 -1
  41. package/dist/lib/ui/uikit/dist/generated/components/svg/images/SvgRequired.vue.js.map +1 -0
  42. package/dist/lib/ui/uikit/dist/sdk/model/dist/index.js +25 -25
  43. package/dist/lib/ui/uikit/dist/sdk/model/dist/index.js.map +1 -1
  44. package/dist/lib/util/helpers/dist/index.js +88 -73
  45. package/dist/lib/util/helpers/dist/index.js.map +1 -1
  46. package/dist/lib.js +73 -73
  47. package/dist/sdk/model/dist/index.js +110 -103
  48. package/dist/sdk/model/dist/index.js.map +1 -1
  49. package/package.json +8 -8
  50. package/src/components/PlAgDataTable/PlAgDataTableV2.vue +172 -45
  51. package/src/components/PlAgDataTable/sources/focus-row.ts +38 -37
  52. package/src/components/PlAgDataTable/sources/table-source-v2.ts +113 -110
  53. package/src/components/PlAgDataTable/types.ts +30 -1
  54. package/src/internal/test-helpers/BlockMock.ts +5 -0
  55. package/dist/lib/ui/uikit/dist/components/PlAccordion/ExpandTransition.vue.js.map +0 -1
  56. package/dist/lib/ui/uikit/dist/generated/components/svg/images/SvgRequired.vue2.js.map +0 -1
@@ -1,91 +1,106 @@
1
- function d(n) {
2
- return n == null;
1
+ var f = Object.defineProperty, m = (r, e, n) => e in r ? f(r, e, { enumerable: !0, configurable: !0, writable: !0, value: n }) : r[e] = n, t = (r, e, n) => m(r, typeof e != "symbol" ? e + "" : e, n);
2
+ function h(r) {
3
+ return r == null;
3
4
  }
4
- function b(n, r) {
5
- if (n == null)
6
- throw Error(r ?? "Empty (null | undefined) value");
7
- return n;
5
+ function j(r, e) {
6
+ if (r == null)
7
+ throw Error(e ?? "Empty (null | undefined) value");
8
+ return r;
8
9
  }
9
- function m(n) {
10
- return new Promise((r) => setTimeout(r, n));
10
+ class v {
11
+ constructor() {
12
+ t(this, "promise"), t(this, "resolve", () => {
13
+ }), t(this, "reject", () => {
14
+ }), this.promise = new Promise((e, n) => {
15
+ this.resolve = e, this.reject = n;
16
+ });
17
+ }
11
18
  }
12
- function p(n, r) {
13
- return r(n);
19
+ function g(r) {
20
+ return new Promise((e) => setTimeout(e, r));
14
21
  }
15
- function h(n, r) {
16
- if (n != null)
17
- return r(n);
22
+ function E(r, e) {
23
+ return e(r);
18
24
  }
19
- function f(n, r) {
20
- return n = Math.ceil(n), r = Math.floor(r), Math.floor(Math.random() * (r - n)) + n;
25
+ function O(r, e) {
26
+ if (r != null)
27
+ return e(r);
21
28
  }
22
- function l(n) {
23
- let r = "";
24
- for (let e = 0; e < n; e++)
25
- r += String.fromCharCode(f(65, 91));
26
- return r;
29
+ function y(r, e) {
30
+ return r = Math.ceil(r), e = Math.floor(e), Math.floor(Math.random() * (e - r)) + r;
31
+ }
32
+ function d(r) {
33
+ let e = "";
34
+ for (let n = 0; n < r; n++)
35
+ e += String.fromCharCode(y(65, 91));
36
+ return e;
27
37
  }
28
- function g(n = 42) {
29
- return l(n);
38
+ function P(r = 42) {
39
+ return d(r);
30
40
  }
31
- const o = Array.isArray;
32
- function u(n) {
33
- return n !== null && typeof n == "object";
41
+ const i = Array.isArray;
42
+ function u(r) {
43
+ return r !== null && typeof r == "object";
34
44
  }
35
- function c(n) {
36
- return typeof n == "object" && n !== null;
45
+ function b(r) {
46
+ return typeof r == "object" && r !== null;
37
47
  }
38
- function t(n) {
39
- if (!c(n))
48
+ function o(r) {
49
+ if (!b(r))
40
50
  return !1;
41
- const r = Object.getPrototypeOf(n);
42
- return r === null || r === Object.prototype || Object.getPrototypeOf(r) === null;
43
- }
44
- function a(n) {
45
- return Object.values(n).reduce((r, e) => e !== void 0 ? r + 1 : r, 0);
46
- }
47
- function i(n, r) {
48
- if (!(u(n) && u(r)))
49
- return n === r;
50
- if (o(n) && o(r))
51
- return n.length !== r.length ? !1 : [...n.keys()].every((e) => i(n[e], r[e]));
52
- if (t(n) && t(r))
53
- return a(n) !== a(r) ? !1 : Object.keys(n).every((e) => i(n[e], r[e]));
54
- throw Error(`Cannot compare a ${String(n)} and b ${String(r)}`);
55
- }
56
- function s(n) {
57
- if (Array.isArray(n)) {
58
- const r = [];
59
- for (let e = 0; e < n.length; e++)
60
- r[e] = s(n[e]);
61
- return r;
62
- } else if (t(n)) {
63
- const r = {};
64
- return Object.keys(n).forEach((e) => {
65
- r[e] = s(n[e]);
66
- }), r;
51
+ const e = Object.getPrototypeOf(r);
52
+ return e === null || e === Object.prototype || Object.getPrototypeOf(e) === null;
53
+ }
54
+ function s(r) {
55
+ return Object.values(r).reduce((e, n) => n !== void 0 ? e + 1 : e, 0);
56
+ }
57
+ function a(r, e) {
58
+ if (!(u(r) && u(e)))
59
+ return r === e;
60
+ if (i(r) && i(e))
61
+ return r.length !== e.length ? !1 : [...r.keys()].every((n) => a(r[n], e[n]));
62
+ if (o(r) && o(e))
63
+ return s(r) !== s(e) ? !1 : Object.keys(r).every((n) => a(r[n], e[n]));
64
+ throw Error(`Cannot compare a ${String(r)} and b ${String(e)}`);
65
+ }
66
+ function l(r) {
67
+ if (Array.isArray(r)) {
68
+ const e = [];
69
+ for (let n = 0; n < r.length; n++)
70
+ e[n] = l(r[n]);
71
+ return e;
72
+ } else if (o(r)) {
73
+ const e = {};
74
+ return Object.keys(r).forEach((n) => {
75
+ e[n] = l(r[n]);
76
+ }), e;
67
77
  } else
68
- return n;
78
+ return r;
79
+ }
80
+ function w(r, e) {
81
+ return Promise.race([r, new Promise((n, c) => setTimeout(() => c(Error(`Timeout exceeded ${e}`)), e))]);
69
82
  }
70
- const y = Math.random;
71
- function j() {
72
- return y() * Number.MAX_SAFE_INTEGER | 0;
83
+ const p = Math.random;
84
+ function A() {
85
+ return p() * Number.MAX_SAFE_INTEGER | 0;
73
86
  }
74
87
  export {
75
- s as deepClone,
76
- m as delay,
77
- o as isArray,
78
- i as isJsonEqual,
79
- d as isNil,
88
+ v as Deferred,
89
+ l as deepClone,
90
+ g as delay,
91
+ i as isArray,
92
+ a as isJsonEqual,
93
+ h as isNil,
80
94
  u as isNonPrimitive,
81
- c as isObject,
82
- t as isPlainObject,
83
- b as notEmpty,
84
- y as random,
85
- j as randomInt,
86
- l as randomString,
87
- p as tap,
88
- h as tapIf,
89
- g as uniqueId
95
+ b as isObject,
96
+ o as isPlainObject,
97
+ j as notEmpty,
98
+ w as promiseTimeout,
99
+ p as random,
100
+ A as randomInt,
101
+ d as randomString,
102
+ E as tap,
103
+ O as tapIf,
104
+ P as uniqueId
90
105
  };
91
106
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../../../lib/util/helpers/src/utils.ts","../../../../../../../lib/util/helpers/src/strings.ts","../../../../../../../lib/util/helpers/src/objects.ts","../../../../../../../lib/util/helpers/src/random.ts"],"sourcesContent":["import type { AwaitedStruct, Option, Primitive, Result, Unionize } from './types';\n\nexport function isNil(v: unknown): v is null | undefined | void {\n return v === null || v === undefined;\n}\n\nexport function isPrimitive(v: unknown): v is Primitive {\n return isNil(v)\n || typeof v === 'string'\n || typeof v === 'number'\n || typeof v === 'boolean'\n || typeof v === 'bigint'\n ;\n}\n\nexport function notEmpty<T>(v: T | null | undefined, message?: string): T {\n if (v === null || v === undefined) {\n throw Error(message ?? 'Empty (null | undefined) value');\n }\n\n return v;\n}\n\nexport function notUndef<T>(v: T | undefined, message?: string): T {\n if (v === undefined) {\n throw Error(message ?? 'Undefined value');\n }\n\n return v;\n}\n\nexport function undef<V>(v: V | undefined = undefined): V | undefined {\n return v;\n}\n\nexport function bool<V extends boolean>(v: V): boolean {\n return v;\n}\n\nexport function uniqueValues<T>(items: T[]): T[] {\n return [...new Set(items)];\n}\n\nexport function checkIfNotEmpty<T>(v: T | null | undefined, message?: string): asserts v is T {\n if (v === undefined || v === null) {\n throw Error(message ?? 'Empty (null | undefined) value');\n }\n}\n\nexport function checkIfDefined<T>(v: T | undefined, message?: string): asserts v is T {\n if (v === undefined) {\n throw Error(message ?? 'Undefined value');\n }\n}\n\nexport function between(n: number, a: number, b: number) {\n const min = Math.min(a, b);\n const max = Math.max(a, b);\n\n return n >= min && n <= max;\n}\n\nexport function listToOptions<T>(list: T[] | readonly T[]): Option<T>[] {\n return list.map((value) => ({ text: String(value), value }));\n}\n\nexport function async<A extends unknown[]>(gf: (...args: A) => Generator) {\n return function (...args: A) {\n const generator = gf(...args);\n\n async function handle(result: IteratorResult<unknown>): Promise<unknown> {\n if (result.done) {\n return Promise.resolve(result.value);\n }\n\n return Promise.resolve(result.value).then((res) => {\n return handle(generator.next(res));\n }).catch((err) => {\n return handle(generator.throw(err));\n });\n }\n\n try {\n return handle(generator.next());\n } catch (ex) {\n return Promise.reject(ex instanceof Error ? ex : Error(String(ex)));\n }\n };\n}\n\nexport class Deferred<T> {\n public readonly promise: Promise<T>;\n\n constructor() {\n this.promise = new Promise<T>((res, rej) => {\n this.resolve = res;\n this.reject = rej;\n });\n }\n\n public resolve: (v: T) => void = () => {\n };\n\n public reject: (err: Error) => void = () => {\n };\n}\n\nexport function delay(ms: number) {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n\nexport function tear() {\n return new Promise<void>((r) => queueMicrotask(r));\n}\n\nexport function timer() {\n const t = new Date().getTime();\n return function () {\n return new Date().getTime() - t;\n };\n}\n\nexport function performanceTimer() {\n const t = performance.now();\n return function () {\n return performance.now() - t;\n };\n}\n\nexport function call<R>(f: () => R): R {\n return f();\n}\n\nexport function clamp(n: number, lo: number, up: number) {\n return lo > n ? lo : n > up ? up : n;\n}\n\nexport function tap<T, R>(v: T, cb: (v: T) => R) {\n return cb(v);\n}\n\nexport function tapIf<T, R>(v: T | null | undefined, cb: (v: T) => R) {\n if (v !== null && v !== undefined) {\n return cb(v);\n }\n\n return;\n}\n\nexport function* range(from: number, to: number, step = 1) {\n for (let i = from; i < to; i += step) {\n yield i;\n }\n}\n\nexport function toList<T>(iterable: Iterable<T>): T[] {\n const lst: T[] = [];\n for (const it of iterable) {\n lst.push(it);\n }\n\n return lst;\n}\n\nexport function times<R>(n: number, cb: (i: number) => R): R[] {\n return toList(range(0, n)).map(cb);\n}\n\nexport class Interval {\n constructor(private _delay: number) {\n }\n\n async* generate(): AsyncGenerator<number> {\n let i = 0;\n while (true) {\n await delay(this._delay);\n yield i++;\n }\n }\n\n async* [Symbol.asyncIterator]() {\n let i = 0;\n while (true) {\n await delay(this._delay);\n yield i++;\n }\n }\n}\n\nexport function arrayFrom<T>(length: number, cb: (i: number) => T) {\n return Array.from({ length }, (_, i) => cb(i));\n}\n\nexport function exhaustive(v: never, message: string): never {\n throw Error(message);\n}\n\nexport type Matcher<T extends string, R = unknown> = {\n [P in T]: () => R;\n};\n\nexport function match<T extends string, R = unknown>(matcher: Matcher<T, R>) {\n return (key: T) => matcher[key]();\n}\n\nexport function okOptional<V>(v: { ok: true; value: V } | { ok: false } | undefined) {\n if (!v) {\n return undefined;\n }\n\n if (v.ok) {\n return v.value;\n }\n}\n\nexport function errorOptional<V>(v: Result<V> | undefined) {\n if (!v) {\n return undefined;\n }\n\n if (!v.ok) {\n return v.error;\n }\n}\n\nexport function unwrap<T>(r: Result<T>): T {\n if (r.ok) {\n return r.value;\n }\n\n throw Error(r.error);\n}\n\nexport function flatValue<T>(v: T | T[]): T[] {\n return Array.isArray(v) ? v : [v];\n}\n\nexport async function resolveAwaited<O extends Record<string, unknown>>(obj: O): Promise<AwaitedStruct<O>> {\n return Object.fromEntries(await Promise.all(Object.entries(obj).map(async ([k, v]) => [k, await v]))) as Promise<AwaitedStruct<O>>;\n}\n\nexport function alike(obj: Record<string, unknown>, to: Record<string, unknown>) {\n return Object.keys(to).every((bKey) => obj[bKey] === to[bKey]);\n}\n\nexport const identity = <T>(v: T): T => v;\n\nexport function asConst<const T>(v: T) {\n return v;\n}\n\nexport function unionize<K extends keyof O, V, O extends Record<K, V>>(obj: O): Unionize<O>[] {\n return Object.entries(obj).map(([key, value]) => ({\n key,\n value,\n })) as Unionize<O>[];\n}\n","function getRandomInt(min: number, max: number) {\n min = Math.ceil(min);\n max = Math.floor(max);\n return Math.floor(Math.random() * (max - min)) + min;\n}\n\nexport function camelToKebab(str: string) {\n str = str.replace(' ', '-');\n return (str[0] || '').toLowerCase() + str.slice(1).replace(/[A-Z]/g, (l) => `-${l.toLowerCase()}`);\n}\n\nexport function trimChars(str: string, chars: string[] = []) {\n str = str ? String(str) : '';\n while (chars.includes(str.charAt(0))) str = str.substr(1);\n while (chars.includes(str.charAt(str.length - 1))) str = str.substr(0, str.length - 1);\n return str;\n}\n\nexport function trimCharsLeft(str: string, chars: string[] = []) {\n str = str ? String(str) : '';\n while (chars.includes(str.charAt(0))) str = str.substring(1);\n return str;\n}\n\nexport function extractFileName(filePath: string) {\n return filePath.replace(/^.*[\\\\/]/, '');\n}\n\nexport function extractExtension(fileName: string) {\n return fileName.replace(/^.*?[.]/, '');\n}\n\n// @TODO move from here\nexport function extractPaths(e: DragEvent, extensions?: string[]) {\n const paths: string[] = [];\n\n if (e.dataTransfer) {\n for (let i = 0; i < e.dataTransfer.items.length; i++) {\n if (e.dataTransfer.items[i].kind !== 'file') {\n continue;\n }\n const file = e.dataTransfer.items[i].getAsFile() as (File & { path: string }) | null; // @TODO electron specific\n if (file && file.path) {\n paths.push(file.path);\n }\n }\n }\n\n if (extensions) {\n return paths.filter((p) => extensions.includes(extractExtension(extractFileName(p))));\n }\n\n return paths;\n}\n\nexport const pluralize = (count: number, noun: string, suffix = 's') => `${count} ${noun}${count !== 1 ? suffix : ''}`;\n\nexport function isRegexpValid(exp: string) {\n try {\n new RegExp(exp);\n return true;\n } catch (_e) {\n return false;\n }\n}\n\nexport function ucFirst(str: string) {\n if (!str) {\n return '';\n }\n return str.charAt(0).toUpperCase() + str.slice(1);\n}\n\nexport function lcFirst(str: string) {\n if (!str) {\n return '';\n }\n return str.charAt(0).toLowerCase() + str.slice(1);\n}\n\nexport function randomString(length: number) {\n let s = '';\n for (let i = 0; i < length; i++) {\n s += String.fromCharCode(getRandomInt(65, 91));\n }\n return s;\n}\n\nexport function uniqueId(length: number = 42) {\n return randomString(length);\n}\n\nexport function before(str: string, sub: string) {\n return str.substring(0, str.indexOf(sub));\n}\n\nexport function beforeLast(str: string, sub: string) {\n return str.substring(0, str.lastIndexOf(sub));\n}\n\nexport function after(str: string, sub: string) {\n return str.substring(str.indexOf(sub) + sub.length, str.length);\n}\n\nexport function assertString(v: unknown): asserts v is string {\n if (typeof v !== 'string') {\n throw Error('Expect string value, got: ' + typeof v);\n }\n}\n\nexport function hashCode(str: string) {\n let hash = 0, i, chr;\n if (str.length === 0) return hash;\n for (i = 0; i < str.length; i++) {\n chr = str.charCodeAt(i);\n hash = ((hash << 5) - hash) + chr;\n hash |= 0; // Convert to 32bit integer\n }\n return hash;\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport type { PartialBy, PlainObject } from './types';\nimport { isNil } from './utils';\n\n/**\n * Alias to Array.isArray\n */\nexport const isArray = Array.isArray;\n\n// eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\nexport function isNonPrimitive<V, T extends PlainObject<V> | V[]>(obj: T | unknown): obj is T {\n return obj !== null && typeof obj === 'object';\n}\n\nexport function isObject(value: unknown): value is object {\n return typeof value === 'object' && value !== null;\n}\n\n/**\n * Checks if the given value is a plain object.\n *\n * A plain object is defined as an object created by the `{}` literal,\n * an object created with `Object.create(null)`, or an object with a\n * prototype that resolves to `Object.prototype`.\n *\n * @param value - The value to check.\n * @returns `true` if the value is a plain object, otherwise `false`.\n *\n * @example\n * ```typescript\n * isPlainObject({}); // true\n * isPlainObject(Object.create(null)); // true\n * isPlainObject(new Date()); // false\n * isPlainObject(null); // false\n * isPlainObject([]); // false\n * ```\n */\nexport function isPlainObject(value: unknown): value is PlainObject {\n if (!isObject(value)) {\n return false;\n }\n\n const prototype: unknown = Object.getPrototypeOf(value);\n\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null);\n}\n\nexport function map<U, T extends Record<string, unknown>>(obj: T, callback: (curr: T[keyof T], key: keyof T) => U) {\n const keys = Object.keys(obj) as Array<keyof T>;\n\n return keys.map((key: keyof T) => {\n return callback(obj[key], key);\n });\n}\n\nfunction definedKeysSize(obj: PlainObject) {\n return Object.values(obj).reduce((length: number, v) => {\n return v !== undefined ? length + 1 : length;\n }, 0);\n}\n\n/**\n * Performs a deep equality check between two values, `a` and `b`, to determine if they are JSON-equivalent.\n *\n * JSON equivalence means that the two values are strictly equal in structure and content, including arrays and plain objects.\n * Non-primitive values that are neither arrays nor plain objects will throw an error.\n *\n * @param a - The first value to compare.\n * @param b - The second value to compare.\n * @returns `true` if the values are JSON-equivalent, otherwise `false`.\n *\n * @throws If the values are non-primitive and not arrays or plain objects.\n *\n * @example\n * ```typescript\n * isJsonEqual(1, 1); // true\n * isJsonEqual({ a: 1 }, { a: 1 }); // true\n * isJsonEqual([1, 2], [1, 2]); // true\n * isJsonEqual({ a: 1 }, { a: 2 }); // false\n * isJsonEqual([1, 2], [2, 1]); // false\n * isJsonEqual(new Date(), new Date()); // Error\n * ```\n */\nexport function isJsonEqual(a: unknown, b: unknown): boolean {\n if (!(isNonPrimitive(a) && isNonPrimitive(b))) {\n return a === b;\n }\n\n if (isArray(a) && isArray(b)) {\n if (a.length !== b.length) {\n return false;\n } else {\n return [...a.keys()].every((k) => isJsonEqual(a[k], b[k]));\n }\n }\n\n if (isPlainObject(a) && isPlainObject(b)) {\n if (definedKeysSize(a) !== definedKeysSize(b)) {\n return false;\n }\n\n return Object.keys(a).every((k) => isJsonEqual(a[k], b[k]));\n }\n\n /* eslint-disable @typescript-eslint/no-base-to-string */\n throw Error(`Cannot compare a ${String(a)} and b ${String(b)}`);\n}\n\n/**\n * Alias to isJsonEqual function\n * @deprecated change to isJsonEqual\n */\nexport const deepEqual = isJsonEqual;\n\nexport function deepClone<T>(obj: T): T {\n if (Array.isArray(obj)) {\n const copy: any[] = [];\n for (let i = 0; i < obj.length; i++) {\n copy[i] = deepClone(obj[i]) as unknown;\n }\n return copy as T;\n } else if (isPlainObject(obj)) {\n const copy: Record<string, any> = {};\n Object.keys(obj).forEach((k) => {\n copy[k] = deepClone(obj[k]);\n });\n return copy as T;\n } else {\n return obj;\n }\n}\n\nexport function shallowClone<T>(obj: T): T {\n if (isNil(obj)) return obj;\n if (Array.isArray(obj)) return obj.slice() as T;\n if (isPlainObject(obj)) return Object.assign({}, obj) as T;\n if (obj instanceof Map) return new Map(obj) as T;\n if (obj instanceof Set) return new Set(obj) as T;\n throw Error(`Not implemented clone strategy for ${JSON.stringify(obj)}`);\n}\n\nexport function shallowDiff<T>(to: T, from: T): Partial<T> {\n const diff: Partial<T> = {};\n\n for (const key in from) {\n if (from[key] !== to[key]) {\n diff[key] = to[key];\n }\n }\n\n return diff;\n}\n\nexport function bindMethods<O extends Record<string, unknown>>(obj: O) {\n Object.entries(obj).forEach(([key, m]) => {\n if (m instanceof Function) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n obj[key as keyof O] = m.bind(obj);\n }\n });\n\n return obj;\n}\n\nexport function setProp<O, K extends keyof O>(obj: O, key: K, value: O[K]) {\n obj[key] = value;\n return obj;\n}\n\nexport function getProp<O, K extends keyof O>(obj: O, key: K): O[K] {\n return obj[key];\n}\n\nexport function shiftProp<O, K extends keyof O>(obj: O, key: K): [O[K], Omit<O, K>] {\n obj = { ...obj };\n const val = obj[key];\n delete obj[key];\n return [val, obj];\n}\n\nexport function pick<T, K extends keyof T>(obj: T, ...keys: K[]): Pick<T, K> {\n return Object.assign({}, ...keys.map((k) => ({ [k]: obj[k] }))) as Pick<T, K>;\n}\n\nexport function pickValues<T, K extends keyof T>(obj: T, ...keys: K[]) {\n return keys.map((k) => obj[k]);\n}\n\nexport function omit<T, K extends keyof T>(obj: T, ...keys: K[]): Omit<T, K> {\n const o = Object.assign({}, obj) as PartialBy<T, K>;\n keys.forEach((k) => delete o[k]);\n return o;\n}\n\n/**\n * Performs a deep patch of the target object or array using the source object or array.\n *\n * This function recursively merges properties of the source into the target:\n * - If a property in both target and source is a plain object, they are recursively merged.\n * - If a property in both target and source is an array of the same length, the arrays are recursively patched element by element.\n * - Otherwise, the property value in the target is replaced by the corresponding value from the source.\n *\n * The patch is applied in-place to the target object or array, which is also returned for convenience.\n *\n * @typeParam T - The type of the target and source, which must be either a plain object or an array.\n * @param target - The target object or array to be patched. This object/array is modified in-place.\n * @param source - The source object or array providing the new values for the patch.\n * @returns The modified target object or array.\n *\n * @example\n * ```typescript\n * const target = { a: { b: 1 }, c: [1, 2] };\n * const source = { a: { b: 2 }, c: [3, 4], d: 5 };\n * const result = deepPatch(target, source);\n * // target is now: { a: { b: 2 }, c: [3, 4], d: 5 }\n * // result is the same reference as target.\n *\n * const targetArray = [{ a: 1 }, { b: 2 }];\n * const sourceArray = [{ a: 2 }, { b: 3 }];\n * const resultArray = deepPatch(targetArray, sourceArray);\n * // targetArray is now: [{ a: 2 }, { b: 3 }]\n * ```\n */\nexport function deepPatch<T extends PlainObject | unknown[]>(target: T, source: T) {\n const sk = new Set<keyof T>([...Object.keys(target) as (keyof T)[], ...Object.keys(source) as (keyof T)[]]);\n\n sk.forEach((key) => {\n const t = target[key];\n const s = source[key];\n if (isPlainObject(t) && isPlainObject(s)) {\n deepPatch(t, s);\n } else if (isArray(t) && isArray(s) && t.length === s.length) {\n deepPatch(t, s);\n } else {\n target[key] = s;\n }\n });\n\n return target;\n}\n","export const random = Math.random;\n\nexport function randomInt(): number {\n return (random() * Number.MAX_SAFE_INTEGER) | 0;\n}\n\nexport function randomRangeFloat(min: number, max: number): number {\n return random() * (max - min) + min;\n}\n\nexport function randomRangeInt(min: number, max: number): number {\n min = Math.ceil(min);\n max = Math.floor(max);\n return Math.floor(randomRangeFloat(min, max));\n}\n\nexport function randomSign(): number {\n return random() > 0.5 ? 1 : -1;\n}\n"],"names":["isNil","v","notEmpty","message","delay","ms","resolve","tap","cb","tapIf","getRandomInt","min","max","randomString","length","s","i","uniqueId","isArray","isNonPrimitive","obj","isObject","value","isPlainObject","prototype","definedKeysSize","isJsonEqual","a","b","k","deepClone","copy","random","randomInt"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../../../lib/util/helpers/src/utils.ts","../../../../../../../lib/util/helpers/src/strings.ts","../../../../../../../lib/util/helpers/src/objects.ts","../../../../../../../lib/util/helpers/src/functions.ts","../../../../../../../lib/util/helpers/src/random.ts"],"sourcesContent":["import type { AwaitedStruct, Option, Primitive, Result, Unionize } from './types';\n\nexport function isNil(v: unknown): v is null | undefined | void {\n return v === null || v === undefined;\n}\n\nexport function isPrimitive(v: unknown): v is Primitive {\n return isNil(v)\n || typeof v === 'string'\n || typeof v === 'number'\n || typeof v === 'boolean'\n || typeof v === 'bigint'\n ;\n}\n\nexport function notEmpty<T>(v: T | null | undefined, message?: string): T {\n if (v === null || v === undefined) {\n throw Error(message ?? 'Empty (null | undefined) value');\n }\n\n return v;\n}\n\nexport function notUndef<T>(v: T | undefined, message?: string): T {\n if (v === undefined) {\n throw Error(message ?? 'Undefined value');\n }\n\n return v;\n}\n\nexport function undef<V>(v: V | undefined = undefined): V | undefined {\n return v;\n}\n\nexport function bool<V extends boolean>(v: V): boolean {\n return v;\n}\n\nexport function uniqueValues<T>(items: T[]): T[] {\n return [...new Set(items)];\n}\n\nexport function checkIfNotEmpty<T>(v: T | null | undefined, message?: string): asserts v is T {\n if (v === undefined || v === null) {\n throw Error(message ?? 'Empty (null | undefined) value');\n }\n}\n\nexport function checkIfDefined<T>(v: T | undefined, message?: string): asserts v is T {\n if (v === undefined) {\n throw Error(message ?? 'Undefined value');\n }\n}\n\nexport function between(n: number, a: number, b: number) {\n const min = Math.min(a, b);\n const max = Math.max(a, b);\n\n return n >= min && n <= max;\n}\n\nexport function listToOptions<T>(list: T[] | readonly T[]): Option<T>[] {\n return list.map((value) => ({ text: String(value), value }));\n}\n\nexport function async<A extends unknown[]>(gf: (...args: A) => Generator) {\n return function (...args: A) {\n const generator = gf(...args);\n\n async function handle(result: IteratorResult<unknown>): Promise<unknown> {\n if (result.done) {\n return Promise.resolve(result.value);\n }\n\n return Promise.resolve(result.value).then((res) => {\n return handle(generator.next(res));\n }).catch((err) => {\n return handle(generator.throw(err));\n });\n }\n\n try {\n return handle(generator.next());\n } catch (ex) {\n return Promise.reject(ex instanceof Error ? ex : Error(String(ex)));\n }\n };\n}\n\nexport class Deferred<T> {\n public readonly promise: Promise<T>;\n\n constructor() {\n this.promise = new Promise<T>((res, rej) => {\n this.resolve = res;\n this.reject = rej;\n });\n }\n\n public resolve: (v: T) => void = () => {\n };\n\n public reject: (err: Error) => void = () => {\n };\n}\n\nexport function delay(ms: number) {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n\nexport function tear() {\n return new Promise<void>((r) => queueMicrotask(r));\n}\n\nexport function timer() {\n const t = new Date().getTime();\n return function () {\n return new Date().getTime() - t;\n };\n}\n\nexport function performanceTimer() {\n const t = performance.now();\n return function () {\n return performance.now() - t;\n };\n}\n\nexport function call<R>(f: () => R): R {\n return f();\n}\n\nexport function clamp(n: number, lo: number, up: number) {\n return lo > n ? lo : n > up ? up : n;\n}\n\nexport function tap<T, R>(v: T, cb: (v: T) => R) {\n return cb(v);\n}\n\nexport function tapIf<T, R>(v: T | null | undefined, cb: (v: T) => R) {\n if (v !== null && v !== undefined) {\n return cb(v);\n }\n\n return;\n}\n\nexport function* range(from: number, to: number, step = 1) {\n for (let i = from; i < to; i += step) {\n yield i;\n }\n}\n\nexport function toList<T>(iterable: Iterable<T>): T[] {\n const lst: T[] = [];\n for (const it of iterable) {\n lst.push(it);\n }\n\n return lst;\n}\n\nexport function times<R>(n: number, cb: (i: number) => R): R[] {\n return toList(range(0, n)).map(cb);\n}\n\nexport class Interval {\n constructor(private _delay: number) {\n }\n\n async* generate(): AsyncGenerator<number> {\n let i = 0;\n while (true) {\n await delay(this._delay);\n yield i++;\n }\n }\n\n async* [Symbol.asyncIterator]() {\n let i = 0;\n while (true) {\n await delay(this._delay);\n yield i++;\n }\n }\n}\n\nexport function arrayFrom<T>(length: number, cb: (i: number) => T) {\n return Array.from({ length }, (_, i) => cb(i));\n}\n\nexport function exhaustive(v: never, message: string): never {\n throw Error(message);\n}\n\nexport type Matcher<T extends string, R = unknown> = {\n [P in T]: () => R;\n};\n\nexport function match<T extends string, R = unknown>(matcher: Matcher<T, R>) {\n return (key: T) => matcher[key]();\n}\n\nexport function okOptional<V>(v: { ok: true; value: V } | { ok: false } | undefined) {\n if (!v) {\n return undefined;\n }\n\n if (v.ok) {\n return v.value;\n }\n}\n\nexport function errorOptional<V>(v: Result<V> | undefined) {\n if (!v) {\n return undefined;\n }\n\n if (!v.ok) {\n return v.error;\n }\n}\n\nexport function unwrap<T>(r: Result<T>): T {\n if (r.ok) {\n return r.value;\n }\n\n throw Error(r.error);\n}\n\nexport function flatValue<T>(v: T | T[]): T[] {\n return Array.isArray(v) ? v : [v];\n}\n\nexport async function resolveAwaited<O extends Record<string, unknown>>(obj: O): Promise<AwaitedStruct<O>> {\n return Object.fromEntries(await Promise.all(Object.entries(obj).map(async ([k, v]) => [k, await v]))) as Promise<AwaitedStruct<O>>;\n}\n\nexport function alike(obj: Record<string, unknown>, to: Record<string, unknown>) {\n return Object.keys(to).every((bKey) => obj[bKey] === to[bKey]);\n}\n\nexport const identity = <T>(v: T): T => v;\n\nexport function asConst<const T>(v: T) {\n return v;\n}\n\nexport function unionize<K extends keyof O, V, O extends Record<K, V>>(obj: O): Unionize<O>[] {\n return Object.entries(obj).map(([key, value]) => ({\n key,\n value,\n })) as Unionize<O>[];\n}\n","function getRandomInt(min: number, max: number) {\n min = Math.ceil(min);\n max = Math.floor(max);\n return Math.floor(Math.random() * (max - min)) + min;\n}\n\nexport function camelToKebab(str: string) {\n str = str.replace(' ', '-');\n return (str[0] || '').toLowerCase() + str.slice(1).replace(/[A-Z]/g, (l) => `-${l.toLowerCase()}`);\n}\n\nexport function trimChars(str: string, chars: string[] = []) {\n str = str ? String(str) : '';\n while (chars.includes(str.charAt(0))) str = str.substr(1);\n while (chars.includes(str.charAt(str.length - 1))) str = str.substr(0, str.length - 1);\n return str;\n}\n\nexport function trimCharsLeft(str: string, chars: string[] = []) {\n str = str ? String(str) : '';\n while (chars.includes(str.charAt(0))) str = str.substring(1);\n return str;\n}\n\nexport function extractFileName(filePath: string) {\n return filePath.replace(/^.*[\\\\/]/, '');\n}\n\nexport function extractExtension(fileName: string) {\n return fileName.replace(/^.*?[.]/, '');\n}\n\n// @TODO move from here\nexport function extractPaths(e: DragEvent, extensions?: string[]) {\n const paths: string[] = [];\n\n if (e.dataTransfer) {\n for (let i = 0; i < e.dataTransfer.items.length; i++) {\n if (e.dataTransfer.items[i].kind !== 'file') {\n continue;\n }\n const file = e.dataTransfer.items[i].getAsFile() as (File & { path: string }) | null; // @TODO electron specific\n if (file && file.path) {\n paths.push(file.path);\n }\n }\n }\n\n if (extensions) {\n return paths.filter((p) => extensions.includes(extractExtension(extractFileName(p))));\n }\n\n return paths;\n}\n\nexport const pluralize = (count: number, noun: string, suffix = 's') => `${count} ${noun}${count !== 1 ? suffix : ''}`;\n\nexport function isRegexpValid(exp: string) {\n try {\n new RegExp(exp);\n return true;\n } catch (_e) {\n return false;\n }\n}\n\nexport function ucFirst(str: string) {\n if (!str) {\n return '';\n }\n return str.charAt(0).toUpperCase() + str.slice(1);\n}\n\nexport function lcFirst(str: string) {\n if (!str) {\n return '';\n }\n return str.charAt(0).toLowerCase() + str.slice(1);\n}\n\nexport function randomString(length: number) {\n let s = '';\n for (let i = 0; i < length; i++) {\n s += String.fromCharCode(getRandomInt(65, 91));\n }\n return s;\n}\n\nexport function uniqueId(length: number = 42) {\n return randomString(length);\n}\n\nexport function before(str: string, sub: string) {\n return str.substring(0, str.indexOf(sub));\n}\n\nexport function beforeLast(str: string, sub: string) {\n return str.substring(0, str.lastIndexOf(sub));\n}\n\nexport function after(str: string, sub: string) {\n return str.substring(str.indexOf(sub) + sub.length, str.length);\n}\n\nexport function assertString(v: unknown): asserts v is string {\n if (typeof v !== 'string') {\n throw Error('Expect string value, got: ' + typeof v);\n }\n}\n\nexport function hashCode(str: string) {\n let hash = 0, i, chr;\n if (str.length === 0) return hash;\n for (i = 0; i < str.length; i++) {\n chr = str.charCodeAt(i);\n hash = ((hash << 5) - hash) + chr;\n hash |= 0; // Convert to 32bit integer\n }\n return hash;\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport type { PartialBy, PlainObject } from './types';\nimport { isNil } from './utils';\n\n/**\n * Alias to Array.isArray\n */\nexport const isArray = Array.isArray;\n\n// eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\nexport function isNonPrimitive<V, T extends PlainObject<V> | V[]>(obj: T | unknown): obj is T {\n return obj !== null && typeof obj === 'object';\n}\n\nexport function isObject(value: unknown): value is object {\n return typeof value === 'object' && value !== null;\n}\n\n/**\n * Checks if the given value is a plain object.\n *\n * A plain object is defined as an object created by the `{}` literal,\n * an object created with `Object.create(null)`, or an object with a\n * prototype that resolves to `Object.prototype`.\n *\n * @param value - The value to check.\n * @returns `true` if the value is a plain object, otherwise `false`.\n *\n * @example\n * ```typescript\n * isPlainObject({}); // true\n * isPlainObject(Object.create(null)); // true\n * isPlainObject(new Date()); // false\n * isPlainObject(null); // false\n * isPlainObject([]); // false\n * ```\n */\nexport function isPlainObject(value: unknown): value is PlainObject {\n if (!isObject(value)) {\n return false;\n }\n\n const prototype: unknown = Object.getPrototypeOf(value);\n\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null);\n}\n\nexport function map<U, T extends Record<string, unknown>>(obj: T, callback: (curr: T[keyof T], key: keyof T) => U) {\n const keys = Object.keys(obj) as Array<keyof T>;\n\n return keys.map((key: keyof T) => {\n return callback(obj[key], key);\n });\n}\n\nfunction definedKeysSize(obj: PlainObject) {\n return Object.values(obj).reduce((length: number, v) => {\n return v !== undefined ? length + 1 : length;\n }, 0);\n}\n\n/**\n * Performs a deep equality check between two values, `a` and `b`, to determine if they are JSON-equivalent.\n *\n * JSON equivalence means that the two values are strictly equal in structure and content, including arrays and plain objects.\n * Non-primitive values that are neither arrays nor plain objects will throw an error.\n *\n * @param a - The first value to compare.\n * @param b - The second value to compare.\n * @returns `true` if the values are JSON-equivalent, otherwise `false`.\n *\n * @throws If the values are non-primitive and not arrays or plain objects.\n *\n * @example\n * ```typescript\n * isJsonEqual(1, 1); // true\n * isJsonEqual({ a: 1 }, { a: 1 }); // true\n * isJsonEqual([1, 2], [1, 2]); // true\n * isJsonEqual({ a: 1 }, { a: 2 }); // false\n * isJsonEqual([1, 2], [2, 1]); // false\n * isJsonEqual(new Date(), new Date()); // Error\n * ```\n */\nexport function isJsonEqual(a: unknown, b: unknown): boolean {\n if (!(isNonPrimitive(a) && isNonPrimitive(b))) {\n return a === b;\n }\n\n if (isArray(a) && isArray(b)) {\n if (a.length !== b.length) {\n return false;\n } else {\n return [...a.keys()].every((k) => isJsonEqual(a[k], b[k]));\n }\n }\n\n if (isPlainObject(a) && isPlainObject(b)) {\n if (definedKeysSize(a) !== definedKeysSize(b)) {\n return false;\n }\n\n return Object.keys(a).every((k) => isJsonEqual(a[k], b[k]));\n }\n\n /* eslint-disable @typescript-eslint/no-base-to-string */\n throw Error(`Cannot compare a ${String(a)} and b ${String(b)}`);\n}\n\n/**\n * Alias to isJsonEqual function\n * @deprecated change to isJsonEqual\n */\nexport const deepEqual = isJsonEqual;\n\nexport function deepClone<T>(obj: T): T {\n if (Array.isArray(obj)) {\n const copy: any[] = [];\n for (let i = 0; i < obj.length; i++) {\n copy[i] = deepClone(obj[i]) as unknown;\n }\n return copy as T;\n } else if (isPlainObject(obj)) {\n const copy: Record<string, any> = {};\n Object.keys(obj).forEach((k) => {\n copy[k] = deepClone(obj[k]);\n });\n return copy as T;\n } else {\n return obj;\n }\n}\n\nexport function shallowClone<T>(obj: T): T {\n if (isNil(obj)) return obj;\n if (Array.isArray(obj)) return obj.slice() as T;\n if (isPlainObject(obj)) return Object.assign({}, obj) as T;\n if (obj instanceof Map) return new Map(obj) as T;\n if (obj instanceof Set) return new Set(obj) as T;\n throw Error(`Not implemented clone strategy for ${JSON.stringify(obj)}`);\n}\n\nexport function shallowDiff<T>(to: T, from: T): Partial<T> {\n const diff: Partial<T> = {};\n\n for (const key in from) {\n if (from[key] !== to[key]) {\n diff[key] = to[key];\n }\n }\n\n return diff;\n}\n\nexport function bindMethods<O extends Record<string, unknown>>(obj: O) {\n Object.entries(obj).forEach(([key, m]) => {\n if (m instanceof Function) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n obj[key as keyof O] = m.bind(obj);\n }\n });\n\n return obj;\n}\n\nexport function setProp<O, K extends keyof O>(obj: O, key: K, value: O[K]) {\n obj[key] = value;\n return obj;\n}\n\nexport function getProp<O, K extends keyof O>(obj: O, key: K): O[K] {\n return obj[key];\n}\n\nexport function shiftProp<O, K extends keyof O>(obj: O, key: K): [O[K], Omit<O, K>] {\n obj = { ...obj };\n const val = obj[key];\n delete obj[key];\n return [val, obj];\n}\n\nexport function pick<T, K extends keyof T>(obj: T, ...keys: K[]): Pick<T, K> {\n return Object.assign({}, ...keys.map((k) => ({ [k]: obj[k] }))) as Pick<T, K>;\n}\n\nexport function pickValues<T, K extends keyof T>(obj: T, ...keys: K[]) {\n return keys.map((k) => obj[k]);\n}\n\nexport function omit<T, K extends keyof T>(obj: T, ...keys: K[]): Omit<T, K> {\n const o = Object.assign({}, obj) as PartialBy<T, K>;\n keys.forEach((k) => delete o[k]);\n return o;\n}\n\n/**\n * Performs a deep patch of the target object or array using the source object or array.\n *\n * This function recursively merges properties of the source into the target:\n * - If a property in both target and source is a plain object, they are recursively merged.\n * - If a property in both target and source is an array of the same length, the arrays are recursively patched element by element.\n * - Otherwise, the property value in the target is replaced by the corresponding value from the source.\n *\n * The patch is applied in-place to the target object or array, which is also returned for convenience.\n *\n * @typeParam T - The type of the target and source, which must be either a plain object or an array.\n * @param target - The target object or array to be patched. This object/array is modified in-place.\n * @param source - The source object or array providing the new values for the patch.\n * @returns The modified target object or array.\n *\n * @example\n * ```typescript\n * const target = { a: { b: 1 }, c: [1, 2] };\n * const source = { a: { b: 2 }, c: [3, 4], d: 5 };\n * const result = deepPatch(target, source);\n * // target is now: { a: { b: 2 }, c: [3, 4], d: 5 }\n * // result is the same reference as target.\n *\n * const targetArray = [{ a: 1 }, { b: 2 }];\n * const sourceArray = [{ a: 2 }, { b: 3 }];\n * const resultArray = deepPatch(targetArray, sourceArray);\n * // targetArray is now: [{ a: 2 }, { b: 3 }]\n * ```\n */\nexport function deepPatch<T extends PlainObject | unknown[]>(target: T, source: T) {\n const sk = new Set<keyof T>([...Object.keys(target) as (keyof T)[], ...Object.keys(source) as (keyof T)[]]);\n\n sk.forEach((key) => {\n const t = target[key];\n const s = source[key];\n if (isPlainObject(t) && isPlainObject(s)) {\n deepPatch(t, s);\n } else if (isArray(t) && isArray(s) && t.length === s.length) {\n deepPatch(t, s);\n } else {\n target[key] = s;\n }\n });\n\n return target;\n}\n","import type { AnyFunction } from './types';\n\nexport function isFunction(value: unknown): value is AnyFunction {\n return typeof value === 'function';\n}\n\n/**\n * A utility class that ensures asynchronous locks, allowing only one task to proceed at a time.\n */\nexport class AwaitLock {\n private acquired = false;\n private resolvers: (() => void)[] = [];\n\n acquireAsync(): Promise<void> {\n if (!this.acquired) {\n this.acquired = true;\n return Promise.resolve();\n }\n\n return new Promise((resolve) => {\n this.resolvers.push(resolve);\n });\n }\n\n release(): void {\n if (!this.acquired) {\n throw new Error('Cannot release an unacquired lock');\n }\n\n if (this.resolvers.length) {\n this.resolvers.shift()?.();\n } else {\n this.acquired = false;\n }\n }\n}\n\n/**\n * A utility to add a timeout to a promise, rejecting the promise if the timeout is exceeded.\n */\nexport function promiseTimeout<T>(prom: PromiseLike<T>, ms: number): Promise<T> {\n return Promise.race<T>([prom, new Promise((_r, reject) => setTimeout(() => reject(Error(`Timeout exceeded ${ms}`)), ms))]);\n}\n\n/**\n * Debounce utility: delays the execution of a function until a certain time has passed since the last call.\n * @param callback\n * @param ms\n * @param immediate (if first call is required)\n * @returns\n */\nexport function debounce<F extends AnyFunction>(callback: F, ms: number, immediate?: boolean): (...args: Parameters<F>) => void {\n let timeout: ReturnType<typeof setTimeout> | undefined;\n return function (this: unknown, ...args: Parameters<F>) {\n const i = immediate && !timeout;\n if (i) {\n callback.apply(this, args);\n }\n if (timeout) {\n clearTimeout(timeout);\n }\n timeout = setTimeout(() => {\n timeout = undefined;\n if (!i) {\n callback.apply(this, args);\n }\n }, ms);\n };\n}\n\n/**\n * Throttle utility: ensures a function is called at most once every `ms` milliseconds.\n * @param callback\n * @param ms milliseconds\n * @param trailing (ensure last call)\n * @returns\n */\nexport function throttle<F extends AnyFunction>(callback: F, ms: number, trailing = true): (...args: Parameters<F>) => void {\n let t = 0, call: AnyFunction | null;\n return function (this: unknown, ...args: Parameters<F>) {\n call = () => {\n callback.apply(this, args);\n t = new Date().getTime() + ms;\n call = null;\n if (trailing) {\n setTimeout(() => {\n call?.();\n }, ms);\n }\n };\n if (new Date().getTime() > t) call();\n };\n}\n\n/**\n * Memoization utility: caches results of function calls based on their arguments to avoid redundant calculations.\n */\nexport const memoize = <F extends AnyFunction>(fn: F) => {\n const cache = new Map();\n return function (...args: Parameters<F>): ReturnType<F> {\n const key = JSON.stringify(args);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return cache.has(key)\n ? cache.get(key)\n : cache.set(key, fn.call(null, ...args)) && cache.get(key);\n };\n};\n\n/**\n * Function wrapper utility: executes a function before the main function is called.\n */\nexport const wrapFunction = <T extends unknown[], U>(\n fn: (...args: T) => U,\n before: () => void,\n) => {\n return (...args: T): U => {\n before();\n return fn(...args);\n };\n};\n\n/**\n * Function piping utility: allows chaining of functions by passing the result of one as input to another\n */\nexport function pipe<A, B>(cb: (a: A) => B) {\n const fn = (a: A) => cb(a);\n\n fn.pipe = <C>(next: (b: B) => C) => pipe((a: A) => next(cb(a)));\n\n return fn;\n}\n\n/**\n * Ensures that only one request can be processed at a time.\n */\nexport function exclusiveRequest<A, R>(request: (...args: A[]) => Promise<R>) {\n let counter = 0n;\n let ongoingOperation: Promise<R> | undefined;\n\n return async function (...params: A[]): Promise<{\n ok: false;\n } | {\n ok: true;\n value: R;\n }> {\n const myId = ++counter;\n\n try {\n await ongoingOperation;\n } catch (_cause: unknown) {\n // ignoring the error here, original caller will receive any rejections\n }\n\n // checking that this update is still the most recent\n if (counter !== myId) {\n return {\n ok: false,\n };\n }\n\n const promise = request(...params);\n\n ongoingOperation = promise;\n\n const value = await promise;\n\n return {\n ok: true,\n value,\n };\n };\n}\n\nexport function tryDo<R1>(fn: () => R1): R1 | undefined;\nexport function tryDo<R1, R2>(fn: () => R1, fallback: (cause: unknown) => R2): R1 | R2;\nexport function tryDo(fn: () => unknown, fallback?: (cause: unknown) => unknown) {\n try {\n return fn();\n } catch (cause: unknown) {\n return fallback?.(cause);\n }\n}\n","export const random = Math.random;\n\nexport function randomInt(): number {\n return (random() * Number.MAX_SAFE_INTEGER) | 0;\n}\n\nexport function randomRangeFloat(min: number, max: number): number {\n return random() * (max - min) + min;\n}\n\nexport function randomRangeInt(min: number, max: number): number {\n min = Math.ceil(min);\n max = Math.floor(max);\n return Math.floor(randomRangeFloat(min, max));\n}\n\nexport function randomSign(): number {\n return random() > 0.5 ? 1 : -1;\n}\n"],"names":["isNil","v","notEmpty","message","Deferred","__publicField","res","rej","delay","ms","resolve","tap","cb","tapIf","getRandomInt","min","max","randomString","length","s","i","uniqueId","isArray","isNonPrimitive","obj","isObject","value","isPlainObject","prototype","definedKeysSize","isJsonEqual","a","b","k","deepClone","copy","promiseTimeout","prom","_r","reject","random","randomInt"],"mappings":"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"}
package/dist/lib.js CHANGED
@@ -11,20 +11,20 @@ import { default as P } from "./components/PlAgDataTable/PlAgOverlayNoRows.vue.j
11
11
 
12
12
  import { default as g } from "./components/ValueOrErrorsComponent.vue.js";
13
13
  import { useAgGridOptions as S } from "./AgGridVue/useAgGridOptions.js";
14
- import { createAgGridColDef as T } from "./AgGridVue/createAgGridColDef.js";
15
- import { deselectAll as h, getSelectedRowsCount as w, getTotalRowsCount as D, isSelectionEnabled as k, selectAll as E } from "./AgGridVue/selection.js";
16
- import { default as M } from "./components/PlAgColumnHeader/PlAgColumnHeader.vue.js";
17
- import { default as O } from "./components/PlAgCellFile/PlAgCellFile.vue.js";
18
- import { default as L } from "./components/PlAgCellProgress/PlAgCellProgress.vue.js";
14
+ import { createAgGridColDef as b } from "./AgGridVue/createAgGridColDef.js";
15
+ import { deselectAll as h, getSelectedRowsCount as w, getTotalRowsCount as D, isSelectionEnabled as E, selectAll as B } from "./AgGridVue/selection.js";
16
+ import { default as k } from "./components/PlAgColumnHeader/PlAgColumnHeader.vue.js";
17
+ import { default as v } from "./components/PlAgCellFile/PlAgCellFile.vue.js";
18
+ import { default as O } from "./components/PlAgCellProgress/PlAgCellProgress.vue.js";
19
19
  import { default as G } from "./components/PlAgCellStatusTag/PlAgCellStatusTag.vue.js";
20
20
 
21
- import { default as F } from "./components/PlAgChartStackedBarCell/PlAgChartStackedBarCell.vue.js";
21
+ import { default as V } from "./components/PlAgChartStackedBarCell/PlAgChartStackedBarCell.vue.js";
22
22
 
23
23
  import { default as N } from "./components/PlAgChartHistogramCell/PlAgChartHistogramCell.vue.js";
24
24
 
25
25
  import { usePlDataTableSettingsV2 as z } from "./components/PlAgDataTable/types.js";
26
26
  import { PlAgDataTableRowNumberColId as Z, autoSizeRowNumberColumn as j, makeRowNumberColDef as Q } from "./components/PlAgDataTable/sources/row-number.js";
27
- import { focusRow as W, makeOnceTracker as J } from "./components/PlAgDataTable/sources/focus-row.js";
27
+ import { DeferredCircular as W, ensureNodeVisible as J } from "./components/PlAgDataTable/sources/focus-row.js";
28
28
  import { defaultMainMenuItems as X } from "./components/PlAgDataTable/sources/menu-items.js";
29
29
  import { default as _ } from "./components/PlAgCsvExporter/PlAgCsvExporter.vue.js";
30
30
  import { default as ee } from "./components/PlAgTextAndButtonCell/PlAgTextAndButtonCell.vue.js";
@@ -36,11 +36,11 @@ import { defineApp as ue, useSdkPlugin as de } from "./defineApp.js";
36
36
  import { createModel as ie } from "./createModel.js";
37
37
  import { defineStore as Pe } from "./defineStore.js";
38
38
  import { AgGridTheme as ge, activateAgGrid as Ce } from "./aggrid.js";
39
- import { MultiError as Ae, UnresolvedError as Te, ensureError as be, formatZodError as he, identity as we, isDefined as De, isZodError as ke, unwrapValueOrErrors as Ee, wrapOptionalResult as Be, wrapValueOrErrors as Me } from "./utils.js";
40
- import { objectHash as Oe } from "./objectHash.js";
41
- import { computedResult as Le } from "./computedResult.js";
39
+ import { MultiError as Ae, UnresolvedError as be, ensureError as Te, formatZodError as he, identity as we, isDefined as De, isZodError as Ee, unwrapValueOrErrors as Be, wrapOptionalResult as Me, wrapValueOrErrors as ke } from "./utils.js";
40
+ import { objectHash as ve } from "./objectHash.js";
41
+ import { computedResult as Oe } from "./computedResult.js";
42
42
  import { ReactiveFileContent as Ge } from "./composition/fileContent.js";
43
- import { multiSequenceAlignment as Fe } from "./components/PlMultiSequenceAlignment/multi-sequence-alignment.js";
43
+ import { multiSequenceAlignment as Ve } from "./components/PlMultiSequenceAlignment/multi-sequence-alignment.js";
44
44
  import { DemoData as Ne } from "./lib/ui/uikit/dist/index.js";
45
45
  import { Color as ze } from "./lib/ui/uikit/dist/colors/color.js";
46
46
  import { default as Ze } from "./lib/ui/uikit/dist/components/ContextProvider.vue.js";
@@ -59,15 +59,15 @@ import { default as no } from "./lib/ui/uikit/dist/components/PlBtnDanger/PlBtnD
59
59
  import { default as co } from "./lib/ui/uikit/dist/components/PlBtnGhost/PlBtnGhost.vue.js";
60
60
  import { default as Co } from "./lib/ui/uikit/dist/components/PlBtnGroup/PlBtnGroup.vue.js";
61
61
  import { default as Ao } from "./lib/ui/uikit/dist/components/PlBtnLink/PlBtnLink.vue.js";
62
- import { default as bo } from "./lib/ui/uikit/dist/components/PlBtnPrimary/PlBtnPrimary.vue.js";
62
+ import { default as To } from "./lib/ui/uikit/dist/components/PlBtnPrimary/PlBtnPrimary.vue.js";
63
63
  import { default as wo } from "./lib/ui/uikit/dist/components/PlBtnSecondary/PlBtnSecondary.vue.js";
64
- import { default as ko } from "./lib/ui/uikit/dist/components/PlBtnSplit/PlBtnSplit.vue.js";
65
- import { default as Bo } from "./lib/ui/uikit/dist/components/PlChartHistogram/PlChartHistogram.vue.js";
64
+ import { default as Eo } from "./lib/ui/uikit/dist/components/PlBtnSplit/PlBtnSplit.vue.js";
65
+ import { default as Mo } from "./lib/ui/uikit/dist/components/PlChartHistogram/PlChartHistogram.vue.js";
66
66
  import { default as Ro } from "./lib/ui/uikit/dist/components/PlChartStackedBar/PlChartStackedBar.vue.js";
67
- import { default as vo } from "./lib/ui/uikit/dist/components/PlChartStackedBar/PlChartStackedBarCompact.vue.js";
67
+ import { default as Lo } from "./lib/ui/uikit/dist/components/PlChartStackedBar/PlChartStackedBarCompact.vue.js";
68
68
  import { default as Io } from "./lib/ui/uikit/dist/components/PlCheckbox/PlCheckbox.vue.js";
69
69
  import { default as yo } from "./lib/ui/uikit/dist/components/PlCheckboxGroup/PlCheckboxGroup.vue.js";
70
- import { default as Vo } from "./lib/ui/uikit/dist/components/PlChip/PlChip.vue.js";
70
+ import { default as Fo } from "./lib/ui/uikit/dist/components/PlChip/PlChip.vue.js";
71
71
  import { default as Ho } from "./lib/ui/uikit/dist/utils/PlCloseModalBtn.vue.js";
72
72
  import { default as qo } from "./lib/ui/uikit/dist/layout/PlContainer/PlContainer.vue.js";
73
73
  import { default as jo } from "./lib/ui/uikit/dist/components/PlDialogModal/PlDialogModal.vue.js";
@@ -85,15 +85,15 @@ import { default as xr } from "./lib/ui/uikit/dist/components/PlFileInput/PlFile
85
85
  import { default as nr } from "./lib/ui/uikit/dist/layout/PlGrid/PlGrid.vue.js";
86
86
  import { default as cr, default as gr } from "./lib/ui/uikit/dist/components/PlIcon16/PlIcon16.vue.js";
87
87
  import { default as Sr, default as Ar } from "./lib/ui/uikit/dist/components/PlIcon24/PlIcon24.vue.js";
88
- import { default as br } from "./lib/ui/uikit/dist/components/PlLoaderCircular/PlLoaderCircular.vue.js";
88
+ import { default as Tr } from "./lib/ui/uikit/dist/components/PlLoaderCircular/PlLoaderCircular.vue.js";
89
89
  import { default as wr } from "./lib/ui/uikit/dist/components/PlLogView/PlLogView.vue.js";
90
- import { default as kr } from "./lib/ui/uikit/dist/components/PlNotificationAlert/PlNotificationAlert.vue.js";
91
- import { default as Br } from "./lib/ui/uikit/dist/components/PlNumberField/PlNumberField.vue.js";
90
+ import { default as Er } from "./lib/ui/uikit/dist/components/PlNotificationAlert/PlNotificationAlert.vue.js";
91
+ import { default as Mr } from "./lib/ui/uikit/dist/components/PlNumberField/PlNumberField.vue.js";
92
92
  import { default as Rr } from "./lib/ui/uikit/dist/components/PlProgressBar/PlProgressBar.vue.js";
93
- import { default as vr } from "./lib/ui/uikit/dist/components/PlProgressCell/PlProgressCell.vue.js";
93
+ import { default as Lr } from "./lib/ui/uikit/dist/components/PlProgressCell/PlProgressCell.vue.js";
94
94
  import { default as Ir } from "./lib/ui/uikit/dist/components/PlSlideModal/PlPureSlideModal.vue.js";
95
95
  import { default as yr } from "./lib/ui/uikit/dist/components/PlRadio/PlRadio.vue.js";
96
- import { default as Vr } from "./lib/ui/uikit/dist/components/PlRadio/PlRadioGroup.vue.js";
96
+ import { default as Fr } from "./lib/ui/uikit/dist/components/PlRadio/PlRadioGroup.vue.js";
97
97
  import { default as Hr } from "./lib/ui/uikit/dist/layout/PlRow/PlRow.vue.js";
98
98
  import { default as qr } from "./lib/ui/uikit/dist/components/PlSearchField/PlSearchField.vue.js";
99
99
  import { default as jr } from "./lib/ui/uikit/dist/components/PlSectionSeparator/PlSectionSeparator.vue.js";
@@ -112,9 +112,9 @@ import { default as nt } from "./lib/ui/uikit/dist/components/PlTooltip/PlToolti
112
112
  import { default as ct } from "./lib/ui/uikit/dist/components/Scrollable.vue.js";
113
113
  import { default as Ct } from "./lib/ui/uikit/dist/components/Slider.vue.js";
114
114
  import { default as At } from "./lib/ui/uikit/dist/components/SliderRange.vue.js";
115
- import { default as bt } from "./lib/ui/uikit/dist/components/SliderRangeTriple.vue.js";
115
+ import { default as Tt } from "./lib/ui/uikit/dist/components/SliderRangeTriple.vue.js";
116
116
  import { default as wt } from "./lib/ui/uikit/dist/components/ThemeSwitcher.vue.js";
117
- import { animate as kt, animateInfinite as Et, call as Bt, delay as Mt, listToOptions as Rt, makeEaseInOut as Ot, makeEaseOut as vt, normalizeListOptions as Lt, randomInt as It, randomString as Gt, requestTick as yt, throttle as Ft, timeout as Vt } from "./lib/ui/uikit/dist/helpers/utils.js";
117
+ import { animate as Et, animateInfinite as Bt, call as Mt, delay as kt, listToOptions as Rt, makeEaseInOut as vt, makeEaseOut as Lt, normalizeListOptions as Ot, randomInt as It, randomString as Gt, requestTick as yt, throttle as Vt, timeout as Ft } from "./lib/ui/uikit/dist/helpers/utils.js";
118
118
  import { categoricalColors as Ht, magma as zt, palettes as qt, viridis as Zt } from "./lib/ui/uikit/dist/colors/palette.js";
119
119
  import { computedCached as Qt } from "./lib/ui/uikit/dist/composition/computedCached.js";
120
120
  import { detectOutside as Wt, eventListener as Jt, getElementScrollPosition as Kt, isElementVisible as Xt, scrollIntoView as Yt } from "./lib/ui/uikit/dist/helpers/dom.js";
@@ -129,15 +129,15 @@ import { useEventListener as ia } from "./lib/ui/uikit/dist/composition/useEvent
129
129
  import { useFormState as Pa } from "./lib/ui/uikit/dist/composition/useFormState.js";
130
130
  import { useHover as ga } from "./lib/ui/uikit/dist/composition/useHover.js";
131
131
  import { useInterval as Sa } from "./lib/ui/uikit/dist/composition/useInterval.js";
132
- import { useLabelNotch as Ta } from "./lib/ui/uikit/dist/utils/useLabelNotch.js";
132
+ import { useLabelNotch as ba } from "./lib/ui/uikit/dist/utils/useLabelNotch.js";
133
133
  import { useLocalStorage as ha } from "./lib/ui/uikit/dist/composition/useLocalStorage.js";
134
134
  import { useMouse as Da } from "./lib/ui/uikit/dist/composition/useMouse.js";
135
- import { useMouseCapture as Ea } from "./lib/ui/uikit/dist/composition/useMouseCapture.js";
136
- import { usePlBlockPageTitleTeleportTarget as Ma } from "./lib/ui/uikit/dist/layout/PlBlockPage/usePlBlockPageTitleTeleportTarget.js";
137
- import { useElementPosition as Oa } from "./lib/ui/uikit/dist/composition/usePosition.js";
138
- import { useQuery as La } from "./lib/ui/uikit/dist/composition/useQuery.js";
135
+ import { useMouseCapture as Ba } from "./lib/ui/uikit/dist/composition/useMouseCapture.js";
136
+ import { usePlBlockPageTitleTeleportTarget as ka } from "./lib/ui/uikit/dist/layout/PlBlockPage/usePlBlockPageTitleTeleportTarget.js";
137
+ import { useElementPosition as va } from "./lib/ui/uikit/dist/composition/usePosition.js";
138
+ import { useQuery as Oa } from "./lib/ui/uikit/dist/composition/useQuery.js";
139
139
  import { useResizeObserver as Ga } from "./lib/ui/uikit/dist/composition/useResizeObserver.js";
140
- import { useScroll as Fa } from "./lib/ui/uikit/dist/composition/useScroll.js";
140
+ import { useScroll as Va } from "./lib/ui/uikit/dist/composition/useScroll.js";
141
141
  import { useSortable as Na } from "./lib/ui/uikit/dist/composition/useSortable.js";
142
142
  import { useSortable2 as za } from "./lib/ui/uikit/dist/composition/useSortable2.js";
143
143
  import { useTheme as Za } from "./lib/ui/uikit/dist/composition/useTheme.js";
@@ -149,6 +149,7 @@ export {
149
149
  ze as Color,
150
150
  Ze as ContextProvider,
151
151
  l as DataTable,
152
+ W as DeferredCircular,
152
153
  Ne as DemoData,
153
154
  Qe as DropdownListItem,
154
155
  We as DropdownOverlay,
@@ -157,12 +158,12 @@ export {
157
158
  Ae as MultiError,
158
159
  oo as PlAccordion,
159
160
  to as PlAccordionSection,
160
- O as PlAgCellFile,
161
- L as PlAgCellProgress,
161
+ v as PlAgCellFile,
162
+ O as PlAgCellProgress,
162
163
  G as PlAgCellStatusTag,
163
164
  N as PlAgChartHistogramCell,
164
- F as PlAgChartStackedBarCell,
165
- M as PlAgColumnHeader,
165
+ V as PlAgChartStackedBarCell,
166
+ k as PlAgColumnHeader,
166
167
  _ as PlAgCsvExporter,
167
168
  Z as PlAgDataTableRowNumberColId,
168
169
  u as PlAgDataTableV2,
@@ -179,15 +180,15 @@ export {
179
180
  co as PlBtnGhost,
180
181
  Co as PlBtnGroup,
181
182
  Ao as PlBtnLink,
182
- bo as PlBtnPrimary,
183
+ To as PlBtnPrimary,
183
184
  wo as PlBtnSecondary,
184
- ko as PlBtnSplit,
185
- Bo as PlChartHistogram,
185
+ Eo as PlBtnSplit,
186
+ Mo as PlChartHistogram,
186
187
  Ro as PlChartStackedBar,
187
- vo as PlChartStackedBarCompact,
188
+ Lo as PlChartStackedBarCompact,
188
189
  Io as PlCheckbox,
189
190
  yo as PlCheckboxGroup,
190
- Vo as PlChip,
191
+ Fo as PlChip,
191
192
  Ho as PlCloseModalBtn,
192
193
  qo as PlContainer,
193
194
  d as PlDataTableV2,
@@ -206,18 +207,18 @@ export {
206
207
  nr as PlGrid,
207
208
  cr as PlIcon16,
208
209
  Sr as PlIcon24,
209
- br as PlLoaderCircular,
210
+ Tr as PlLoaderCircular,
210
211
  wr as PlLogView,
211
212
  gr as PlMaskIcon16,
212
213
  Ar as PlMaskIcon24,
213
214
  fe as PlMultiSequenceAlignment,
214
- kr as PlNotificationAlert,
215
- Br as PlNumberField,
215
+ Er as PlNotificationAlert,
216
+ Mr as PlNumberField,
216
217
  Rr as PlProgressBar,
217
- vr as PlProgressCell,
218
+ Lr as PlProgressCell,
218
219
  Ir as PlPureSlideModal,
219
220
  yr as PlRadio,
220
- Vr as PlRadioGroup,
221
+ Fr as PlRadioGroup,
221
222
  Hr as PlRow,
222
223
  qr as PlSearchField,
223
224
  jr as PlSectionSeparator,
@@ -238,29 +239,29 @@ export {
238
239
  ct as Scrollable,
239
240
  Ct as Slider,
240
241
  At as SliderRange,
241
- bt as SliderRangeTriple,
242
+ Tt as SliderRangeTriple,
242
243
  wt as ThemeSwitcher,
243
- Te as UnresolvedError,
244
+ be as UnresolvedError,
244
245
  g as ValueOrErrorsComponent,
245
246
  Ce as activateAgGrid,
246
- kt as animate,
247
- Et as animateInfinite,
247
+ Et as animate,
248
+ Bt as animateInfinite,
248
249
  j as autoSizeRowNumberColumn,
249
- Bt as call,
250
+ Mt as call,
250
251
  Ht as categoricalColors,
251
252
  Qt as computedCached,
252
- Le as computedResult,
253
- T as createAgGridColDef,
253
+ Oe as computedResult,
254
+ b as createAgGridColDef,
254
255
  ie as createModel,
255
256
  X as defaultMainMenuItems,
256
257
  ue as defineApp,
257
258
  Pe as defineStore,
258
- Mt as delay,
259
+ kt as delay,
259
260
  h as deselectAll,
260
261
  Wt as detectOutside,
261
- be as ensureError,
262
+ Te as ensureError,
263
+ J as ensureNodeVisible,
262
264
  Jt as eventListener,
263
- W as focusRow,
264
265
  he as formatZodError,
265
266
  Kt as getElementScrollPosition,
266
267
  w as getSelectedRowsCount,
@@ -271,28 +272,27 @@ export {
271
272
  Xe as interpolateColor,
272
273
  De as isDefined,
273
274
  Xt as isElementVisible,
274
- k as isSelectionEnabled,
275
- ke as isZodError,
275
+ E as isSelectionEnabled,
276
+ Ee as isZodError,
276
277
  Rt as listToOptions,
277
278
  zt as magma,
278
- Ot as makeEaseInOut,
279
- vt as makeEaseOut,
280
- J as makeOnceTracker,
279
+ vt as makeEaseInOut,
280
+ Lt as makeEaseOut,
281
281
  Q as makeRowNumberColDef,
282
- Fe as multiSequenceAlignment,
282
+ Ve as multiSequenceAlignment,
283
283
  Ye as normalizeGradient,
284
- Lt as normalizeListOptions,
285
- Oe as objectHash,
284
+ Ot as normalizeListOptions,
285
+ ve as objectHash,
286
286
  qt as palettes,
287
287
  It as randomInt,
288
288
  Gt as randomString,
289
289
  yt as requestTick,
290
290
  Yt as scrollIntoView,
291
- E as selectAll,
291
+ B as selectAll,
292
292
  ta as showContextMenu,
293
- Ft as throttle,
294
- Vt as timeout,
295
- Ee as unwrapValueOrErrors,
293
+ Vt as throttle,
294
+ Ft as timeout,
295
+ Be as unwrapValueOrErrors,
296
296
  S as useAgGridOptions,
297
297
  la as useClickOutside,
298
298
  ma as useComponentProp,
@@ -302,16 +302,16 @@ export {
302
302
  Pa as useFormState,
303
303
  ga as useHover,
304
304
  Sa as useInterval,
305
- Ta as useLabelNotch,
305
+ ba as useLabelNotch,
306
306
  ha as useLocalStorage,
307
307
  Da as useMouse,
308
- Ea as useMouseCapture,
309
- Ma as usePlBlockPageTitleTeleportTarget,
308
+ Ba as useMouseCapture,
309
+ ka as usePlBlockPageTitleTeleportTarget,
310
310
  z as usePlDataTableSettingsV2,
311
- Oa as usePosition,
312
- La as useQuery,
311
+ va as usePosition,
312
+ Oa as useQuery,
313
313
  Ga as useResizeObserver,
314
- Fa as useScroll,
314
+ Va as useScroll,
315
315
  de as useSdkPlugin,
316
316
  Na as useSortable,
317
317
  za as useSortable2,
@@ -319,7 +319,7 @@ export {
319
319
  Qa as useWatchFetch,
320
320
  Zt as viridis,
321
321
  Wa as watchCached,
322
- Be as wrapOptionalResult,
323
- Me as wrapValueOrErrors
322
+ Me as wrapOptionalResult,
323
+ ke as wrapValueOrErrors
324
324
  };
325
325
  //# sourceMappingURL=lib.js.map