ckeditor5-blazor 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ckeditor5-blazor-error.d.ts +7 -0
- package/dist/ckeditor5-blazor-error.d.ts.map +1 -0
- package/dist/elements/context/context.d.ts +26 -0
- package/dist/elements/context/context.d.ts.map +1 -0
- package/dist/elements/context/contexts-registry.d.ts +9 -0
- package/dist/elements/context/contexts-registry.d.ts.map +1 -0
- package/dist/elements/context/index.d.ts +4 -0
- package/dist/elements/context/index.d.ts.map +1 -0
- package/dist/elements/context/typings.d.ts +34 -0
- package/dist/elements/context/typings.d.ts.map +1 -0
- package/dist/elements/editable.d.ts +34 -0
- package/dist/elements/editable.d.ts.map +1 -0
- package/dist/elements/editor/custom-editor-plugins.d.ts +54 -0
- package/dist/elements/editor/custom-editor-plugins.d.ts.map +1 -0
- package/dist/elements/editor/editor.d.ts +31 -0
- package/dist/elements/editor/editor.d.ts.map +1 -0
- package/dist/elements/editor/editors-registry.d.ts +9 -0
- package/dist/elements/editor/editors-registry.d.ts.map +1 -0
- package/dist/elements/editor/index.d.ts +3 -0
- package/dist/elements/editor/index.d.ts.map +1 -0
- package/dist/elements/editor/plugins/dispatch-editor-roots-change-event.d.ts +23 -0
- package/dist/elements/editor/plugins/dispatch-editor-roots-change-event.d.ts.map +1 -0
- package/dist/elements/editor/plugins/index.d.ts +3 -0
- package/dist/elements/editor/plugins/index.d.ts.map +1 -0
- package/dist/elements/editor/plugins/sync-editor-with-input.d.ts +6 -0
- package/dist/elements/editor/plugins/sync-editor-with-input.d.ts.map +1 -0
- package/dist/elements/editor/typings.d.ts +99 -0
- package/dist/elements/editor/typings.d.ts.map +1 -0
- package/dist/elements/editor/utils/create-editor-in-context.d.ts +44 -0
- package/dist/elements/editor/utils/create-editor-in-context.d.ts.map +1 -0
- package/dist/elements/editor/utils/get-editor-roots-values.d.ts +9 -0
- package/dist/elements/editor/utils/get-editor-roots-values.d.ts.map +1 -0
- package/dist/elements/editor/utils/index.d.ts +14 -0
- package/dist/elements/editor/utils/index.d.ts.map +1 -0
- package/dist/elements/editor/utils/is-single-root-editor.d.ts +9 -0
- package/dist/elements/editor/utils/is-single-root-editor.d.ts.map +1 -0
- package/dist/elements/editor/utils/load-editor-constructor.d.ts +9 -0
- package/dist/elements/editor/utils/load-editor-constructor.d.ts.map +1 -0
- package/dist/elements/editor/utils/load-editor-plugins.d.ts +20 -0
- package/dist/elements/editor/utils/load-editor-plugins.d.ts.map +1 -0
- package/dist/elements/editor/utils/load-editor-translations.d.ts +14 -0
- package/dist/elements/editor/utils/load-editor-translations.d.ts.map +1 -0
- package/dist/elements/editor/utils/normalize-custom-translations.d.ts +11 -0
- package/dist/elements/editor/utils/normalize-custom-translations.d.ts.map +1 -0
- package/dist/elements/editor/utils/query-all-editor-ids.d.ts +5 -0
- package/dist/elements/editor/utils/query-all-editor-ids.d.ts.map +1 -0
- package/dist/elements/editor/utils/query-editor-editables.d.ts +25 -0
- package/dist/elements/editor/utils/query-editor-editables.d.ts.map +1 -0
- package/dist/elements/editor/utils/resolve-editor-config-elements-references.d.ts +9 -0
- package/dist/elements/editor/utils/resolve-editor-config-elements-references.d.ts.map +1 -0
- package/dist/elements/editor/utils/resolve-editor-config-translations.d.ts +25 -0
- package/dist/elements/editor/utils/resolve-editor-config-translations.d.ts.map +1 -0
- package/dist/elements/editor/utils/set-editor-editable-height.d.ts +9 -0
- package/dist/elements/editor/utils/set-editor-editable-height.d.ts.map +1 -0
- package/dist/elements/editor/utils/wrap-with-watchdog.d.ts +24 -0
- package/dist/elements/editor/utils/wrap-with-watchdog.d.ts.map +1 -0
- package/dist/elements/ensure-editor-elements-registered.d.ts +5 -0
- package/dist/elements/ensure-editor-elements-registered.d.ts.map +1 -0
- package/dist/elements/index.d.ts +6 -0
- package/dist/elements/index.d.ts.map +1 -0
- package/dist/elements/ui-part.d.ts +18 -0
- package/dist/elements/ui-part.d.ts.map +1 -0
- package/dist/index.cjs +5 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.mjs +1400 -0
- package/dist/index.mjs.map +1 -0
- package/dist/interop/create-context-blazor-interop.d.ts +10 -0
- package/dist/interop/create-context-blazor-interop.d.ts.map +1 -0
- package/dist/interop/create-editable-blazor-interop.d.ts +21 -0
- package/dist/interop/create-editable-blazor-interop.d.ts.map +1 -0
- package/dist/interop/create-editor-blazor-interop.d.ts +19 -0
- package/dist/interop/create-editor-blazor-interop.d.ts.map +1 -0
- package/dist/interop/create-ui-part-blazor-interop.d.ts +10 -0
- package/dist/interop/create-ui-part-blazor-interop.d.ts.map +1 -0
- package/dist/interop/index.d.ts +5 -0
- package/dist/interop/index.d.ts.map +1 -0
- package/dist/interop/utils/create-editor-value-sync.d.ts +63 -0
- package/dist/interop/utils/create-editor-value-sync.d.ts.map +1 -0
- package/dist/interop/utils/index.d.ts +2 -0
- package/dist/interop/utils/index.d.ts.map +1 -0
- package/dist/shared/async-registry.d.ts +136 -0
- package/dist/shared/async-registry.d.ts.map +1 -0
- package/dist/shared/camel-case.d.ts +8 -0
- package/dist/shared/camel-case.d.ts.map +1 -0
- package/dist/shared/debounce.d.ts +2 -0
- package/dist/shared/debounce.d.ts.map +1 -0
- package/dist/shared/deep-camel-case-keys.d.ts +8 -0
- package/dist/shared/deep-camel-case-keys.d.ts.map +1 -0
- package/dist/shared/filter-object-values.d.ts +9 -0
- package/dist/shared/filter-object-values.d.ts.map +1 -0
- package/dist/shared/index.d.ts +16 -0
- package/dist/shared/index.d.ts.map +1 -0
- package/dist/shared/is-empty-object.d.ts +2 -0
- package/dist/shared/is-empty-object.d.ts.map +1 -0
- package/dist/shared/is-plain-object.d.ts +8 -0
- package/dist/shared/is-plain-object.d.ts.map +1 -0
- package/dist/shared/map-object-values.d.ts +11 -0
- package/dist/shared/map-object-values.d.ts.map +1 -0
- package/dist/shared/once.d.ts +2 -0
- package/dist/shared/once.d.ts.map +1 -0
- package/dist/shared/shallow-equal.d.ts +9 -0
- package/dist/shared/shallow-equal.d.ts.map +1 -0
- package/dist/shared/timeout.d.ts +8 -0
- package/dist/shared/timeout.d.ts.map +1 -0
- package/dist/shared/uid.d.ts +7 -0
- package/dist/shared/uid.d.ts.map +1 -0
- package/dist/shared/wait-for-dom-ready.d.ts +5 -0
- package/dist/shared/wait-for-dom-ready.d.ts.map +1 -0
- package/dist/shared/wait-for-interactive-attribute.d.ts +18 -0
- package/dist/shared/wait-for-interactive-attribute.d.ts.map +1 -0
- package/dist/shared/wait-for.d.ts +20 -0
- package/dist/shared/wait-for.d.ts.map +1 -0
- package/dist/types/can-be-promise.type.d.ts +2 -0
- package/dist/types/can-be-promise.type.d.ts.map +1 -0
- package/dist/types/dot-net-interop.type.d.ts +7 -0
- package/dist/types/dot-net-interop.type.d.ts.map +1 -0
- package/dist/types/index.d.ts +4 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/required-by.type.d.ts +2 -0
- package/dist/types/required-by.type.d.ts.map +1 -0
- package/package.json +49 -0
- package/src/ckeditor5-blazor-error.ts +9 -0
- package/src/elements/context/context.test.ts +323 -0
- package/src/elements/context/context.ts +128 -0
- package/src/elements/context/contexts-registry.test.ts +10 -0
- package/src/elements/context/contexts-registry.ts +10 -0
- package/src/elements/context/index.ts +3 -0
- package/src/elements/context/typings.ts +38 -0
- package/src/elements/editable.test.ts +383 -0
- package/src/elements/editable.ts +183 -0
- package/src/elements/editor/custom-editor-plugins.test.ts +103 -0
- package/src/elements/editor/custom-editor-plugins.ts +85 -0
- package/src/elements/editor/editor.test.ts +562 -0
- package/src/elements/editor/editor.ts +330 -0
- package/src/elements/editor/editors-registry.test.ts +10 -0
- package/src/elements/editor/editors-registry.ts +10 -0
- package/src/elements/editor/index.ts +2 -0
- package/src/elements/editor/plugins/dispatch-editor-roots-change-event.ts +76 -0
- package/src/elements/editor/plugins/index.ts +2 -0
- package/src/elements/editor/plugins/sync-editor-with-input.ts +79 -0
- package/src/elements/editor/typings.ts +114 -0
- package/src/elements/editor/utils/create-editor-in-context.ts +89 -0
- package/src/elements/editor/utils/get-editor-roots-values.test.ts +48 -0
- package/src/elements/editor/utils/get-editor-roots-values.ts +21 -0
- package/src/elements/editor/utils/index.ts +13 -0
- package/src/elements/editor/utils/is-single-root-editor.test.ts +40 -0
- package/src/elements/editor/utils/is-single-root-editor.ts +11 -0
- package/src/elements/editor/utils/load-editor-constructor.test.ts +62 -0
- package/src/elements/editor/utils/load-editor-constructor.ts +29 -0
- package/src/elements/editor/utils/load-editor-plugins.test.ts +100 -0
- package/src/elements/editor/utils/load-editor-plugins.ts +72 -0
- package/src/elements/editor/utils/load-editor-translations.ts +232 -0
- package/src/elements/editor/utils/normalize-custom-translations.test.ts +152 -0
- package/src/elements/editor/utils/normalize-custom-translations.ts +17 -0
- package/src/elements/editor/utils/query-all-editor-ids.ts +9 -0
- package/src/elements/editor/utils/query-editor-editables.ts +101 -0
- package/src/elements/editor/utils/resolve-editor-config-elements-references.test.ts +93 -0
- package/src/elements/editor/utils/resolve-editor-config-elements-references.ts +36 -0
- package/src/elements/editor/utils/resolve-editor-config-translations.test.ts +131 -0
- package/src/elements/editor/utils/resolve-editor-config-translations.ts +77 -0
- package/src/elements/editor/utils/set-editor-editable-height.test.ts +131 -0
- package/src/elements/editor/utils/set-editor-editable-height.ts +15 -0
- package/src/elements/editor/utils/wrap-with-watchdog.test.ts +45 -0
- package/src/elements/editor/utils/wrap-with-watchdog.ts +51 -0
- package/src/elements/ensure-editor-elements-registered.ts +24 -0
- package/src/elements/index.ts +14 -0
- package/src/elements/ui-part.test.ts +156 -0
- package/src/elements/ui-part.ts +84 -0
- package/src/index.ts +15 -0
- package/src/interop/create-context-blazor-interop.test.ts +30 -0
- package/src/interop/create-context-blazor-interop.ts +15 -0
- package/src/interop/create-editable-blazor-interop.test.ts +213 -0
- package/src/interop/create-editable-blazor-interop.ts +98 -0
- package/src/interop/create-editor-blazor-interop.test.ts +183 -0
- package/src/interop/create-editor-blazor-interop.ts +112 -0
- package/src/interop/create-ui-part-blazor-interop.test.ts +30 -0
- package/src/interop/create-ui-part-blazor-interop.ts +15 -0
- package/src/interop/index.ts +4 -0
- package/src/interop/utils/create-editor-value-sync.test.ts +302 -0
- package/src/interop/utils/create-editor-value-sync.ts +160 -0
- package/src/interop/utils/index.ts +1 -0
- package/src/shared/async-registry.test.ts +737 -0
- package/src/shared/async-registry.ts +353 -0
- package/src/shared/camel-case.test.ts +35 -0
- package/src/shared/camel-case.ts +11 -0
- package/src/shared/debounce.test.ts +72 -0
- package/src/shared/debounce.ts +16 -0
- package/src/shared/deep-camel-case-keys.test.ts +34 -0
- package/src/shared/deep-camel-case-keys.ts +26 -0
- package/src/shared/filter-object-values.test.ts +25 -0
- package/src/shared/filter-object-values.ts +17 -0
- package/src/shared/index.ts +15 -0
- package/src/shared/is-empty-object.test.ts +78 -0
- package/src/shared/is-empty-object.ts +3 -0
- package/src/shared/is-plain-object.test.ts +38 -0
- package/src/shared/is-plain-object.ts +15 -0
- package/src/shared/map-object-values.test.ts +29 -0
- package/src/shared/map-object-values.ts +19 -0
- package/src/shared/once.test.ts +116 -0
- package/src/shared/once.ts +12 -0
- package/src/shared/shallow-equal.test.ts +51 -0
- package/src/shared/shallow-equal.ts +30 -0
- package/src/shared/timeout.test.ts +65 -0
- package/src/shared/timeout.ts +13 -0
- package/src/shared/uid.test.ts +25 -0
- package/src/shared/uid.ts +8 -0
- package/src/shared/wait-for-dom-ready.test.ts +87 -0
- package/src/shared/wait-for-dom-ready.ts +21 -0
- package/src/shared/wait-for-interactive-attribute.test.ts +93 -0
- package/src/shared/wait-for-interactive-attribute.ts +50 -0
- package/src/shared/wait-for.test.ts +24 -0
- package/src/shared/wait-for.ts +56 -0
- package/src/types/can-be-promise.type.ts +1 -0
- package/src/types/dot-net-interop.type.ts +6 -0
- package/src/types/dotnet-global.d.ts +14 -0
- package/src/types/index.ts +3 -0
- package/src/types/required-by.type.ts +1 -0
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { describe, expect, it } from 'vitest';
|
|
2
|
+
|
|
3
|
+
import { waitFor } from './wait-for.js';
|
|
4
|
+
|
|
5
|
+
describe('waitFor', () => {
|
|
6
|
+
it('should resolve when the callback succeeds', async () => {
|
|
7
|
+
const result = await waitFor(() => Promise.resolve('success'));
|
|
8
|
+
|
|
9
|
+
expect(result).toBe('success');
|
|
10
|
+
});
|
|
11
|
+
|
|
12
|
+
it('should reject when the callback throws an error', async () => {
|
|
13
|
+
await expect(waitFor(() => Promise.reject(new Error('failed')))).rejects.toThrow('failed');
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
it('should reject when the timeout is reached', async () => {
|
|
17
|
+
await expect(
|
|
18
|
+
waitFor(() => new Promise(resolve => setTimeout(resolve, 2000)), {
|
|
19
|
+
timeOutAfter: 200,
|
|
20
|
+
retryAfter: 100,
|
|
21
|
+
}),
|
|
22
|
+
).rejects.toThrow('Timeout');
|
|
23
|
+
});
|
|
24
|
+
});
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import type { CanBePromise } from '../types';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Waits for the provided callback to succeed. The callback is executed multiple times until it succeeds or the timeout is reached.
|
|
5
|
+
* It's executed immediately and then with a delay defined by the `retry` option.
|
|
6
|
+
*
|
|
7
|
+
* @param callback The callback to execute.
|
|
8
|
+
* @param config Configuration for the function.
|
|
9
|
+
* @param config.timeOutAfter The maximum time to wait for the callback to succeed, in milliseconds. Default is 500ms.
|
|
10
|
+
* @param config.retryAfter The time to wait between retries, in milliseconds. Default is 100ms.
|
|
11
|
+
* @returns A promise that resolves when the callback succeeds.
|
|
12
|
+
*/
|
|
13
|
+
export function waitFor<R>(
|
|
14
|
+
callback: () => CanBePromise<R>,
|
|
15
|
+
{
|
|
16
|
+
timeOutAfter = 500,
|
|
17
|
+
retryAfter = 100,
|
|
18
|
+
}: WaitForConfig = {},
|
|
19
|
+
): Promise<R> {
|
|
20
|
+
return new Promise<R>((resolve, reject) => {
|
|
21
|
+
const startTime = Date.now();
|
|
22
|
+
let lastError: Error | null = null;
|
|
23
|
+
|
|
24
|
+
const timeoutTimerId = setTimeout(() => {
|
|
25
|
+
reject(lastError ?? new Error('Timeout'));
|
|
26
|
+
}, timeOutAfter);
|
|
27
|
+
|
|
28
|
+
const tick = async () => {
|
|
29
|
+
try {
|
|
30
|
+
const result = await callback();
|
|
31
|
+
clearTimeout(timeoutTimerId);
|
|
32
|
+
resolve(result);
|
|
33
|
+
}
|
|
34
|
+
catch (err: any) {
|
|
35
|
+
lastError = err;
|
|
36
|
+
|
|
37
|
+
if (Date.now() - startTime > timeOutAfter) {
|
|
38
|
+
reject(err);
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
setTimeout(tick, retryAfter);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
void tick();
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Configuration for the `waitFor` function.
|
|
52
|
+
*/
|
|
53
|
+
export type WaitForConfig = {
|
|
54
|
+
timeOutAfter?: number;
|
|
55
|
+
retryAfter?: number;
|
|
56
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type CanBePromise<T> = T | Promise<T>;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
|
|
3
|
+
declare global {
|
|
4
|
+
// eslint-disable-next-line vars-on-top
|
|
5
|
+
var DotNet: {
|
|
6
|
+
createJSObjectReference: <T extends object>(obj: T) => object;
|
|
7
|
+
disposeJSObjectReference: (ref: object) => void;
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
// eslint-disable-next-line ts/consistent-type-definitions
|
|
11
|
+
interface GlobalThis {
|
|
12
|
+
DotNet: typeof DotNet;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type RequiredBy<T, K extends keyof T> = Omit<T, K> & Required<Pick<T, K>>;
|