@0djek/sveltix 0.0.6
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/README.md +103 -0
- package/dist/button/Button.svelte +24 -0
- package/dist/button/Button.svelte.d.ts +4 -0
- package/dist/button/ButtonComponent.svelte.d.ts +15 -0
- package/dist/button/ButtonComponent.svelte.js +26 -0
- package/dist/button/ButtonStyles.d.ts +11 -0
- package/dist/button/ButtonStyles.js +2 -0
- package/dist/button/__tests__/builders/ButtonBuilder.d.ts +23 -0
- package/dist/button/__tests__/builders/ButtonBuilder.js +61 -0
- package/dist/button/__tests__/builders/ButtonStory.svelte +27 -0
- package/dist/button/__tests__/builders/ButtonStory.svelte.d.ts +14 -0
- package/dist/button/__tests__/pom/ButtonPom.d.ts +6 -0
- package/dist/button/__tests__/pom/ButtonPom.js +14 -0
- package/dist/button/buttonDefaults.d.ts +9 -0
- package/dist/button/buttonDefaults.js +9 -0
- package/dist/button/index.d.ts +5 -0
- package/dist/button/index.js +9 -0
- package/dist/button/internal/DefaultButtonStyles.d.ts +15 -0
- package/dist/button/internal/DefaultButtonStyles.js +64 -0
- package/dist/button/models/ButtonProps.d.ts +45 -0
- package/dist/button/models/ButtonProps.js +1 -0
- package/dist/button/models/ButtonSize.d.ts +6 -0
- package/dist/button/models/ButtonSize.js +7 -0
- package/dist/button/models/ButtonVariant.d.ts +5 -0
- package/dist/button/models/ButtonVariant.js +6 -0
- package/dist/button/models/index.d.ts +3 -0
- package/dist/button/models/index.js +3 -0
- package/dist/cache/Cache.d.ts +18 -0
- package/dist/cache/Cache.js +20 -0
- package/dist/cache/MappedCache.d.ts +7 -0
- package/dist/cache/MappedCache.js +35 -0
- package/dist/cache/__tests__/builders/CacheBuilder.d.ts +7 -0
- package/dist/cache/__tests__/builders/CacheBuilder.js +18 -0
- package/dist/cache/__tests__/builders/MappedCacheBuilder.d.ts +7 -0
- package/dist/cache/__tests__/builders/MappedCacheBuilder.js +18 -0
- package/dist/cache/index.d.ts +2 -0
- package/dist/cache/index.js +2 -0
- package/dist/datagrid/SveltixGrid.svelte.d.ts +35 -0
- package/dist/datagrid/SveltixGrid.svelte.js +90 -0
- package/dist/datagrid/SveltixGridGlobal.d.ts +9 -0
- package/dist/datagrid/SveltixGridGlobal.js +12 -0
- package/dist/datagrid/components/Datagrid.svelte +114 -0
- package/dist/datagrid/components/Datagrid.svelte.d.ts +39 -0
- package/dist/datagrid/core-modules/columns/Column.svelte.d.ts +79 -0
- package/dist/datagrid/core-modules/columns/Column.svelte.js +322 -0
- package/dist/datagrid/core-modules/columns/ColumnsModule.svelte.d.ts +26 -0
- package/dist/datagrid/core-modules/columns/ColumnsModule.svelte.js +77 -0
- package/dist/datagrid/core-modules/columns/components/CalculateCellWidth.svelte +18 -0
- package/dist/datagrid/core-modules/columns/components/CalculateCellWidth.svelte.d.ts +25 -0
- package/dist/datagrid/core-modules/columns/index.d.ts +5 -0
- package/dist/datagrid/core-modules/columns/index.js +11 -0
- package/dist/datagrid/core-modules/columns/models/ColumnOptions.d.ts +2 -0
- package/dist/datagrid/core-modules/columns/models/ColumnOptions.js +1 -0
- package/dist/datagrid/core-modules/custom/CustomComponentsModule.svelte.d.ts +27 -0
- package/dist/datagrid/core-modules/custom/CustomComponentsModule.svelte.js +58 -0
- package/dist/datagrid/core-modules/custom/components/CustomComponents.svelte +36 -0
- package/dist/datagrid/core-modules/custom/components/CustomComponents.svelte.d.ts +30 -0
- package/dist/datagrid/core-modules/custom/index.d.ts +3 -0
- package/dist/datagrid/core-modules/custom/index.js +10 -0
- package/dist/datagrid/core-modules/custom/models/CustomComponentPosition.d.ts +21 -0
- package/dist/datagrid/core-modules/custom/models/CustomComponentPosition.js +22 -0
- package/dist/datagrid/core-modules/index.d.ts +4 -0
- package/dist/datagrid/core-modules/index.js +4 -0
- package/dist/datagrid/core-modules/pipelines/PipelinesModule.svelte.d.ts +12 -0
- package/dist/datagrid/core-modules/pipelines/PipelinesModule.svelte.js +58 -0
- package/dist/datagrid/core-modules/pipelines/index.d.ts +4 -0
- package/dist/datagrid/core-modules/pipelines/index.js +11 -0
- package/dist/datagrid/core-modules/pipelines/models/CallbackSignature.d.ts +9 -0
- package/dist/datagrid/core-modules/pipelines/models/CallbackSignature.js +1 -0
- package/dist/datagrid/core-modules/rows/Cell.svelte.d.ts +27 -0
- package/dist/datagrid/core-modules/rows/Cell.svelte.js +103 -0
- package/dist/datagrid/core-modules/rows/Row.svelte.d.ts +24 -0
- package/dist/datagrid/core-modules/rows/Row.svelte.js +117 -0
- package/dist/datagrid/core-modules/rows/RowsModule.svelte.d.ts +33 -0
- package/dist/datagrid/core-modules/rows/RowsModule.svelte.js +115 -0
- package/dist/datagrid/core-modules/rows/components/body/BodyCell.svelte +31 -0
- package/dist/datagrid/core-modules/rows/components/body/BodyCell.svelte.d.ts +30 -0
- package/dist/datagrid/core-modules/rows/components/body/GroupCell.svelte +26 -0
- package/dist/datagrid/core-modules/rows/components/body/GroupCell.svelte.d.ts +25 -0
- package/dist/datagrid/core-modules/rows/index.d.ts +8 -0
- package/dist/datagrid/core-modules/rows/index.js +13 -0
- package/dist/datagrid/core-modules/rows/internal/CreateRowOptions.d.ts +15 -0
- package/dist/datagrid/core-modules/rows/internal/CreateRowOptions.js +1 -0
- package/dist/datagrid/core-modules/rows/models/RowsOptions.d.ts +3 -0
- package/dist/datagrid/core-modules/rows/models/RowsOptions.js +1 -0
- package/dist/datagrid/core-modules/rows/models/index.d.ts +1 -0
- package/dist/datagrid/core-modules/rows/models/index.js +1 -0
- package/dist/datagrid/events/generateEvents.d.ts +2 -0
- package/dist/datagrid/events/generateEvents.js +16 -0
- package/dist/datagrid/events/index.d.ts +2 -0
- package/dist/datagrid/events/index.js +2 -0
- package/dist/datagrid/events/models/RowUpdatedArgs.d.ts +5 -0
- package/dist/datagrid/events/models/RowUpdatedArgs.js +1 -0
- package/dist/datagrid/events/models/SveltixEvents.d.ts +20 -0
- package/dist/datagrid/events/models/SveltixEvents.js +1 -0
- package/dist/datagrid/events/models/index.d.ts +2 -0
- package/dist/datagrid/events/models/index.js +2 -0
- package/dist/datagrid/index.d.ts +5 -0
- package/dist/datagrid/index.js +5 -0
- package/dist/datagrid/interfaces/ISveltixGrid.d.ts +22 -0
- package/dist/datagrid/interfaces/ISveltixGrid.js +1 -0
- package/dist/datagrid/interfaces/Module.d.ts +11 -0
- package/dist/datagrid/interfaces/Module.js +13 -0
- package/dist/datagrid/interfaces/index.d.ts +2 -0
- package/dist/datagrid/interfaces/index.js +2 -0
- package/dist/datagrid/models/BaseColumn.d.ts +23 -0
- package/dist/datagrid/models/BaseColumn.js +1 -0
- package/dist/datagrid/models/Formatter.d.ts +32 -0
- package/dist/datagrid/models/Formatter.js +7 -0
- package/dist/datagrid/models/SveltixGridOptions.d.ts +12 -0
- package/dist/datagrid/models/SveltixGridOptions.js +1 -0
- package/dist/datagrid/models/Value.d.ts +21 -0
- package/dist/datagrid/models/Value.js +6 -0
- package/dist/datagrid/models/index.d.ts +4 -0
- package/dist/datagrid/models/index.js +4 -0
- package/dist/datagrid/models/module/ModuleConstructor.d.ts +5 -0
- package/dist/datagrid/models/module/ModuleConstructor.js +1 -0
- package/dist/datagrid/models/module/ModuleRegistrationEntry.d.ts +6 -0
- package/dist/datagrid/models/module/ModuleRegistrationEntry.js +1 -0
- package/dist/datagrid/models/module/index.d.ts +2 -0
- package/dist/datagrid/models/module/index.js +2 -0
- package/dist/datagrid/modules/flash/FlashModule.svelte.d.ts +9 -0
- package/dist/datagrid/modules/flash/FlashModule.svelte.js +33 -0
- package/dist/datagrid/modules/flash/index.d.ts +5 -0
- package/dist/datagrid/modules/flash/index.js +10 -0
- package/dist/datagrid/modules/flash/models/FlashModuleOptions.d.ts +4 -0
- package/dist/datagrid/modules/flash/models/FlashModuleOptions.js +1 -0
- package/dist/datagrid/modules/flash/models/index.d.ts +1 -0
- package/dist/datagrid/modules/flash/models/index.js +1 -0
- package/dist/datagrid/modules/resize/ResizeModule.svelte.d.ts +14 -0
- package/dist/datagrid/modules/resize/ResizeModule.svelte.js +68 -0
- package/dist/datagrid/modules/resize/components/ResizeCustomComponent.svelte +15 -0
- package/dist/datagrid/modules/resize/components/ResizeCustomComponent.svelte.d.ts +25 -0
- package/dist/datagrid/modules/resize/components/ResizeHandle.svelte +29 -0
- package/dist/datagrid/modules/resize/components/ResizeHandle.svelte.d.ts +28 -0
- package/dist/datagrid/modules/resize/index.d.ts +5 -0
- package/dist/datagrid/modules/resize/index.js +12 -0
- package/dist/datagrid/modules/resize/models/ResizeModuleOptions.d.ts +15 -0
- package/dist/datagrid/modules/resize/models/ResizeModuleOptions.js +1 -0
- package/dist/datagrid/modules/resize/models/index.d.ts +1 -0
- package/dist/datagrid/modules/resize/models/index.js +1 -0
- package/dist/deep-equal/deepEqual.d.ts +7 -0
- package/dist/deep-equal/deepEqual.js +79 -0
- package/dist/deep-equal/index.d.ts +1 -0
- package/dist/deep-equal/index.js +1 -0
- package/dist/di/DiContainer.d.ts +20 -0
- package/dist/di/DiContainer.js +42 -0
- package/dist/event-bus/EventBus.d.ts +9 -0
- package/dist/event-bus/EventBus.js +38 -0
- package/dist/event-bus/createEventDefinition.d.ts +1 -0
- package/dist/event-bus/createEventDefinition.js +5 -0
- package/dist/event-bus/index.d.ts +3 -0
- package/dist/event-bus/index.js +3 -0
- package/dist/event-bus/models/Event.d.ts +6 -0
- package/dist/event-bus/models/Event.js +1 -0
- package/dist/event-bus/models/SubscriberEntry.d.ts +5 -0
- package/dist/event-bus/models/SubscriberEntry.js +1 -0
- package/dist/event-bus/models/SubscriberSignature.d.ts +3 -0
- package/dist/event-bus/models/SubscriberSignature.js +1 -0
- package/dist/event-bus/models/UnsubscribeSignature.d.ts +3 -0
- package/dist/event-bus/models/UnsubscribeSignature.js +1 -0
- package/dist/event-bus/models/index.d.ts +4 -0
- package/dist/event-bus/models/index.js +4 -0
- package/dist/groupBy/groupBy.d.ts +2 -0
- package/dist/groupBy/groupBy.js +22 -0
- package/dist/groupBy/index.d.ts +2 -0
- package/dist/groupBy/index.js +2 -0
- package/dist/groupBy/models/Grouping.d.ts +4 -0
- package/dist/groupBy/models/Grouping.js +1 -0
- package/dist/groupBy/models/index.d.ts +1 -0
- package/dist/groupBy/models/index.js +1 -0
- package/dist/heading/Heading.svelte +28 -0
- package/dist/heading/Heading.svelte.d.ts +4 -0
- package/dist/heading/HeadingComponent.svelte.d.ts +13 -0
- package/dist/heading/HeadingComponent.svelte.js +20 -0
- package/dist/heading/HeadingStyles.d.ts +11 -0
- package/dist/heading/HeadingStyles.js +1 -0
- package/dist/heading/__tests__/HeadingBuilder.d.ts +12 -0
- package/dist/heading/__tests__/HeadingBuilder.js +34 -0
- package/dist/heading/__tests__/HeadingStory.svelte +16 -0
- package/dist/heading/__tests__/HeadingStory.svelte.d.ts +10 -0
- package/dist/heading/headingClasses.d.ts +8 -0
- package/dist/heading/headingClasses.js +8 -0
- package/dist/heading/index.d.ts +5 -0
- package/dist/heading/index.js +8 -0
- package/dist/heading/internal/DefaultHeadingStyles.d.ts +15 -0
- package/dist/heading/internal/DefaultHeadingStyles.js +75 -0
- package/dist/heading/models/Align.d.ts +8 -0
- package/dist/heading/models/Align.js +9 -0
- package/dist/heading/models/HeadingProps.d.ts +25 -0
- package/dist/heading/models/HeadingProps.js +1 -0
- package/dist/heading/models/HeadingTag.d.ts +1 -0
- package/dist/heading/models/HeadingTag.js +1 -0
- package/dist/heading/models/index.d.ts +3 -0
- package/dist/heading/models/index.js +3 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +2 -0
- package/dist/ordered-map/OrderedMap.svelte.d.ts +27 -0
- package/dist/ordered-map/OrderedMap.svelte.js +138 -0
- package/dist/ordered-map/__tests__/builders/OrderedMapBuilder.d.ts +9 -0
- package/dist/ordered-map/__tests__/builders/OrderedMapBuilder.js +26 -0
- package/dist/ordered-map/index.d.ts +1 -0
- package/dist/ordered-map/index.js +1 -0
- package/dist/paragraph/P.svelte +21 -0
- package/dist/paragraph/P.svelte.d.ts +4 -0
- package/dist/paragraph/PComponents.svelte.d.ts +13 -0
- package/dist/paragraph/PComponents.svelte.js +20 -0
- package/dist/paragraph/ParagraphStyles.d.ts +11 -0
- package/dist/paragraph/ParagraphStyles.js +1 -0
- package/dist/paragraph/__tests__/PStory.svelte +15 -0
- package/dist/paragraph/__tests__/PStory.svelte.d.ts +10 -0
- package/dist/paragraph/__tests__/ParagraphBuilder.d.ts +10 -0
- package/dist/paragraph/__tests__/ParagraphBuilder.js +28 -0
- package/dist/paragraph/index.d.ts +5 -0
- package/dist/paragraph/index.js +8 -0
- package/dist/paragraph/internal/DefaultParagraphStyles.d.ts +15 -0
- package/dist/paragraph/internal/DefaultParagraphStyles.js +61 -0
- package/dist/paragraph/internal/classes.d.ts +6 -0
- package/dist/paragraph/internal/classes.js +7 -0
- package/dist/paragraph/models/PFont.d.ts +4 -0
- package/dist/paragraph/models/PFont.js +5 -0
- package/dist/paragraph/models/PProps.d.ts +12 -0
- package/dist/paragraph/models/PProps.js +1 -0
- package/dist/paragraph/models/PSize.d.ts +6 -0
- package/dist/paragraph/models/PSize.js +7 -0
- package/dist/paragraph/models/index.d.ts +3 -0
- package/dist/paragraph/models/index.js +3 -0
- package/dist/theme/Component.svelte.d.ts +13 -0
- package/dist/theme/Component.svelte.js +20 -0
- package/dist/theme/index.d.ts +2 -0
- package/dist/theme/index.js +2 -0
- package/dist/theme/models/ThemableComponent.d.ts +6 -0
- package/dist/theme/models/ThemableComponent.js +1 -0
- package/dist/theme/models/Theme.d.ts +9 -0
- package/dist/theme/models/Theme.js +10 -0
- package/dist/theme/models/index.d.ts +2 -0
- package/dist/theme/models/index.js +2 -0
- package/dist/theme/themeDefaults.d.ts +2 -0
- package/dist/theme/themeDefaults.js +2 -0
- package/dist/types/KeysOfType.d.ts +3 -0
- package/dist/types/KeysOfType.js +1 -0
- package/dist/types/SurfaceContainerStyles.d.ts +4 -0
- package/dist/types/SurfaceContainerStyles.js +1 -0
- package/package.json +82 -0
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export interface ResizeColumnOption {
|
|
2
|
+
enabled: boolean;
|
|
3
|
+
}
|
|
4
|
+
import type { HelperComponentProps } from '../../../core-modules/columns/Column.svelte';
|
|
5
|
+
declare function $$render<T>(): {
|
|
6
|
+
props: HelperComponentProps<T, ResizeColumnOption>;
|
|
7
|
+
exports: {};
|
|
8
|
+
bindings: "";
|
|
9
|
+
slots: {};
|
|
10
|
+
events: {};
|
|
11
|
+
};
|
|
12
|
+
declare class __sveltets_Render<T> {
|
|
13
|
+
props(): ReturnType<typeof $$render<T>>['props'];
|
|
14
|
+
events(): ReturnType<typeof $$render<T>>['events'];
|
|
15
|
+
slots(): ReturnType<typeof $$render<T>>['slots'];
|
|
16
|
+
bindings(): "";
|
|
17
|
+
exports(): {};
|
|
18
|
+
}
|
|
19
|
+
interface $$IsomorphicComponent {
|
|
20
|
+
new <T>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<T>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<T>['props']>, ReturnType<__sveltets_Render<T>['events']>, ReturnType<__sveltets_Render<T>['slots']>> & {
|
|
21
|
+
$$bindings?: ReturnType<__sveltets_Render<T>['bindings']>;
|
|
22
|
+
} & ReturnType<__sveltets_Render<T>['exports']>;
|
|
23
|
+
<T>(internal: unknown, props: ReturnType<__sveltets_Render<T>['props']> & {}): ReturnType<__sveltets_Render<T>['exports']>;
|
|
24
|
+
z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
|
|
25
|
+
}
|
|
26
|
+
declare const ResizeHandle: $$IsomorphicComponent;
|
|
27
|
+
type ResizeHandle<T> = InstanceType<typeof ResizeHandle<T>>;
|
|
28
|
+
export default ResizeHandle;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { type ModuleRegistrationEntry } from '../..';
|
|
2
|
+
import type { ResizeModuleOptions } from './models';
|
|
3
|
+
export declare const RESIZE_MODULE: unique symbol;
|
|
4
|
+
export declare function resizeModule<T>(options?: ResizeModuleOptions): ModuleRegistrationEntry<T, ResizeModuleOptions | undefined>;
|
|
5
|
+
export * from './models';
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/// Module to allow users to resize columns by dragging and/or double clicking on the handle.
|
|
2
|
+
import {} from '../..';
|
|
3
|
+
import { ResizeModule } from './ResizeModule.svelte';
|
|
4
|
+
export const RESIZE_MODULE = Symbol.for('RESIZE_MODULE');
|
|
5
|
+
export function resizeModule(options) {
|
|
6
|
+
return {
|
|
7
|
+
key: RESIZE_MODULE,
|
|
8
|
+
module: (ResizeModule),
|
|
9
|
+
options: options,
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
export * from './models';
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Options for the resize module.
|
|
3
|
+
*/
|
|
4
|
+
export interface ResizeModuleOptions {
|
|
5
|
+
/**
|
|
6
|
+
* Columns to enable. If empty or `undefined`, all columns are enabled.
|
|
7
|
+
*
|
|
8
|
+
* If defined, only these columns will have to the ability to be resized. If not defined, all columns are enabled.
|
|
9
|
+
*/
|
|
10
|
+
idsEnable?: string[];
|
|
11
|
+
/**
|
|
12
|
+
* Columns to disable. If empty or `undefined`, no columns will be disabled.
|
|
13
|
+
*/
|
|
14
|
+
idsDisable?: string[];
|
|
15
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './ResizeModuleOptions';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './ResizeModuleOptions';
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Compares `first` and `second` and returns `true` if both are deeply equal, `false` otherwise.
|
|
3
|
+
* @param first First to check
|
|
4
|
+
* @param second Second to check
|
|
5
|
+
* @returns `true` if both are equal, `false` otherwise.
|
|
6
|
+
*/
|
|
7
|
+
export declare function deepEqual<T>(first: T | undefined, second: T | undefined): boolean;
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Compares `first` and `second` and returns `true` if both are deeply equal, `false` otherwise.
|
|
3
|
+
* @param first First to check
|
|
4
|
+
* @param second Second to check
|
|
5
|
+
* @returns `true` if both are equal, `false` otherwise.
|
|
6
|
+
*/
|
|
7
|
+
export function deepEqual(first, second) {
|
|
8
|
+
if (first === second || (first == null && second == null)) {
|
|
9
|
+
return true;
|
|
10
|
+
}
|
|
11
|
+
if (first == null && second != null) {
|
|
12
|
+
return false;
|
|
13
|
+
}
|
|
14
|
+
if (first != null && second == null) {
|
|
15
|
+
return false;
|
|
16
|
+
}
|
|
17
|
+
if (typeof first !== 'object' && typeof second !== 'object') {
|
|
18
|
+
return first === second;
|
|
19
|
+
}
|
|
20
|
+
// Take care of possible arrays
|
|
21
|
+
const firstArray = Array.isArray(first);
|
|
22
|
+
const secondArray = Array.isArray(second);
|
|
23
|
+
if (firstArray && !secondArray) {
|
|
24
|
+
return false;
|
|
25
|
+
}
|
|
26
|
+
if (!firstArray && secondArray) {
|
|
27
|
+
return false;
|
|
28
|
+
}
|
|
29
|
+
if (firstArray && secondArray) {
|
|
30
|
+
return deepEqualBothArray(first, second);
|
|
31
|
+
}
|
|
32
|
+
// Take care of possible objects
|
|
33
|
+
const firstObject = typeof first === 'object';
|
|
34
|
+
const secondObject = typeof second === 'object';
|
|
35
|
+
if (firstObject && !secondObject) {
|
|
36
|
+
return false;
|
|
37
|
+
}
|
|
38
|
+
if (!firstObject && secondObject) {
|
|
39
|
+
return false;
|
|
40
|
+
}
|
|
41
|
+
return deepEqualNonNull(first, second);
|
|
42
|
+
}
|
|
43
|
+
function deepEqualBothArray(first, second) {
|
|
44
|
+
if (first.length !== second.length) {
|
|
45
|
+
return false;
|
|
46
|
+
}
|
|
47
|
+
// Iterate each entry and check.
|
|
48
|
+
for (let index = 0; index < first.length; index++) {
|
|
49
|
+
const result = deepEqual(first[index], second[index]);
|
|
50
|
+
if (!result) {
|
|
51
|
+
return false;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
return true;
|
|
55
|
+
}
|
|
56
|
+
function deepEqualNonNull(first, second) {
|
|
57
|
+
const firstKeys = Object.keys(first);
|
|
58
|
+
const secondKeys = Object.keys(second);
|
|
59
|
+
// If both have no keys, objects are equal
|
|
60
|
+
if (firstKeys.length === 0 && secondKeys.length === 0) {
|
|
61
|
+
return true;
|
|
62
|
+
}
|
|
63
|
+
// If different number of keys, no need to check them individually.
|
|
64
|
+
if (firstKeys.length !== secondKeys.length) {
|
|
65
|
+
return false;
|
|
66
|
+
}
|
|
67
|
+
for (const firstKey of firstKeys) {
|
|
68
|
+
// Check if key exists in second object
|
|
69
|
+
if (second[firstKey] === undefined) {
|
|
70
|
+
return false;
|
|
71
|
+
}
|
|
72
|
+
// Compare entrie's values
|
|
73
|
+
const valuesEqual = deepEqual(first[firstKey], second[firstKey]);
|
|
74
|
+
if (!valuesEqual) {
|
|
75
|
+
return false;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
return true;
|
|
79
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './deepEqual';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './deepEqual';
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export declare enum Lifetime {
|
|
2
|
+
Scoped = "Scoped",
|
|
3
|
+
'Singleton' = "Singleton"
|
|
4
|
+
}
|
|
5
|
+
declare const TYPE: unique symbol;
|
|
6
|
+
export interface InjectionKey<T> {
|
|
7
|
+
key: string;
|
|
8
|
+
constructor: new (...args: any[]) => T;
|
|
9
|
+
[TYPE]: T;
|
|
10
|
+
lifetime: Lifetime;
|
|
11
|
+
dependencies: InjectionKey<unknown>[];
|
|
12
|
+
}
|
|
13
|
+
export declare function createKey<T>(constructor: new (...args: any[]) => T): InjectionKey<T>;
|
|
14
|
+
export declare class DiContainer {
|
|
15
|
+
private _dependencies;
|
|
16
|
+
registerScoped<T>(key: InjectionKey<T>): void;
|
|
17
|
+
registerSingleton<T>(key: InjectionKey<T>): void;
|
|
18
|
+
resolve<T>(key: InjectionKey<T>): T;
|
|
19
|
+
}
|
|
20
|
+
export {};
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
export var Lifetime;
|
|
2
|
+
(function (Lifetime) {
|
|
3
|
+
Lifetime["Scoped"] = "Scoped";
|
|
4
|
+
Lifetime["Singleton"] = "Singleton";
|
|
5
|
+
})(Lifetime || (Lifetime = {}));
|
|
6
|
+
export function createKey(constructor) {
|
|
7
|
+
return {
|
|
8
|
+
constructor: constructor,
|
|
9
|
+
dependencies: [],
|
|
10
|
+
key: crypto.randomUUID(),
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
export class DiContainer {
|
|
14
|
+
_dependencies = new Map();
|
|
15
|
+
registerScoped(key) { }
|
|
16
|
+
registerSingleton(key) {
|
|
17
|
+
this._dependencies.set(key.key, {
|
|
18
|
+
instance: undefined,
|
|
19
|
+
key: key,
|
|
20
|
+
lifetime: Lifetime.Singleton,
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
resolve(key) {
|
|
24
|
+
const wanted = this._dependencies.get(key.key);
|
|
25
|
+
if (wanted == null) {
|
|
26
|
+
throw new Error(`Couldn't find service '${key.key}'`);
|
|
27
|
+
}
|
|
28
|
+
if (wanted.key.dependencies.length === 0) {
|
|
29
|
+
if (wanted.instance != null) {
|
|
30
|
+
return wanted.instance;
|
|
31
|
+
}
|
|
32
|
+
const instance = new wanted.key.constructor();
|
|
33
|
+
if (key.lifetime === Lifetime.Singleton) {
|
|
34
|
+
wanted.instance = instance;
|
|
35
|
+
this._dependencies.set(key.key, wanted);
|
|
36
|
+
}
|
|
37
|
+
return instance;
|
|
38
|
+
}
|
|
39
|
+
// const dependencies: unknown[] = [];
|
|
40
|
+
throw new Error('Not implemented');
|
|
41
|
+
}
|
|
42
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { SubscriberSignature } from './models/SubscriberSignature';
|
|
2
|
+
import type { UnsubscribeSignature } from './models/UnsubscribeSignature';
|
|
3
|
+
import type { Event } from './models/Event';
|
|
4
|
+
export declare class EventBus {
|
|
5
|
+
private _subscribers;
|
|
6
|
+
on<T>(event: Event<T>, callback: SubscriberSignature<T>): UnsubscribeSignature;
|
|
7
|
+
off(event: Event<unknown>, id: string): void;
|
|
8
|
+
emit<T>(event: Event<T>, data: T): void;
|
|
9
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
export class EventBus {
|
|
2
|
+
_subscribers = new Map();
|
|
3
|
+
on(event, callback) {
|
|
4
|
+
const id = globalThis.crypto.randomUUID();
|
|
5
|
+
let eventSubscribers = this._subscribers.get(event.name);
|
|
6
|
+
if (eventSubscribers == null) {
|
|
7
|
+
eventSubscribers = [];
|
|
8
|
+
}
|
|
9
|
+
const casted = callback;
|
|
10
|
+
eventSubscribers.push({
|
|
11
|
+
id,
|
|
12
|
+
callback: casted,
|
|
13
|
+
});
|
|
14
|
+
this._subscribers.set(event.name, eventSubscribers);
|
|
15
|
+
return () => {
|
|
16
|
+
this.off(event, id);
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
off(event, id) {
|
|
20
|
+
let subscribers = this._subscribers.get(event.name);
|
|
21
|
+
if (subscribers == null || subscribers.length === 0) {
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
subscribers = subscribers.filter((subcriber) => subcriber.id !== id);
|
|
25
|
+
if (subscribers.length === 0) {
|
|
26
|
+
this._subscribers.delete(event.name);
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
this._subscribers.set(event.name, subscribers);
|
|
30
|
+
}
|
|
31
|
+
emit(event, data) {
|
|
32
|
+
const subscribers = this._subscribers.get(event.name);
|
|
33
|
+
if (subscribers == null || subscribers.length === 0) {
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
subscribers.forEach((subscriber) => subscriber.callback(data));
|
|
37
|
+
}
|
|
38
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function createEventDefinition<T>(name: string): Event<T>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export function groupBy(entries, group) {
|
|
2
|
+
const groups = new Map();
|
|
3
|
+
entries.forEach((entry) => {
|
|
4
|
+
const key = group(entry);
|
|
5
|
+
const stringifiedKey = JSON.stringify(key);
|
|
6
|
+
const existing = groups.get(stringifiedKey) ?? [];
|
|
7
|
+
existing.push(entry);
|
|
8
|
+
groups.set(stringifiedKey, existing);
|
|
9
|
+
});
|
|
10
|
+
const groupings = [];
|
|
11
|
+
groups.forEach((value, key) => {
|
|
12
|
+
let parsedKey = undefined;
|
|
13
|
+
if (key != undefined) {
|
|
14
|
+
parsedKey = JSON.parse(key);
|
|
15
|
+
}
|
|
16
|
+
groupings.push({
|
|
17
|
+
key: parsedKey,
|
|
18
|
+
entries: value,
|
|
19
|
+
});
|
|
20
|
+
});
|
|
21
|
+
return groupings;
|
|
22
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './Grouping';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './Grouping';
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { headingKey } from '.';
|
|
3
|
+
import { headingAlignClasses } from './headingClasses';
|
|
4
|
+
import { HeadingComponent } from './HeadingComponent.svelte';
|
|
5
|
+
import { Align } from './models/Align';
|
|
6
|
+
import type { HeadingProps } from './models/HeadingProps';
|
|
7
|
+
|
|
8
|
+
const props: HeadingProps = $props();
|
|
9
|
+
|
|
10
|
+
const heading = new HeadingComponent(() => props, headingKey);
|
|
11
|
+
</script>
|
|
12
|
+
|
|
13
|
+
<svelte:element
|
|
14
|
+
this={heading.getDom()}
|
|
15
|
+
class={[
|
|
16
|
+
heading.getStyles().getTag(heading.getTag()),
|
|
17
|
+
heading.getStyles().getTheme(heading.getTheme(), heading.getOnContainer()),
|
|
18
|
+
{
|
|
19
|
+
[headingAlignClasses.left]: heading.getAlign() === Align.Left,
|
|
20
|
+
[headingAlignClasses.center]: heading.getAlign() === Align.Center,
|
|
21
|
+
[headingAlignClasses.right]: heading.getAlign() === Align.Right,
|
|
22
|
+
[headingAlignClasses.justify]: heading.getAlign() === Align.Justify,
|
|
23
|
+
[headingAlignClasses.start]: heading.getAlign() === Align.Start,
|
|
24
|
+
[headingAlignClasses.end]: heading.getAlign() === Align.End,
|
|
25
|
+
},
|
|
26
|
+
]}>
|
|
27
|
+
{@render props.children?.()}
|
|
28
|
+
</svelte:element>
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Component } from '../theme';
|
|
2
|
+
import type { HeadingStyles } from './HeadingStyles';
|
|
3
|
+
import { Align, type HeadingProps, type HeadingTag } from './models';
|
|
4
|
+
export declare class HeadingComponent extends Component<HeadingStyles, HeadingProps> {
|
|
5
|
+
private _tag;
|
|
6
|
+
private _dom;
|
|
7
|
+
private _align;
|
|
8
|
+
private _onContainer;
|
|
9
|
+
getTag(): HeadingTag;
|
|
10
|
+
getDom(): string;
|
|
11
|
+
getAlign(): Align;
|
|
12
|
+
getOnContainer(): boolean;
|
|
13
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Component } from '../theme';
|
|
2
|
+
import { Align } from './models';
|
|
3
|
+
export class HeadingComponent extends Component {
|
|
4
|
+
_tag = $derived.by(() => this._getProps().tag ?? 1);
|
|
5
|
+
_dom = $derived.by(() => this.getStyles().getDom(this._tag));
|
|
6
|
+
_align = $derived.by(() => this._getProps().align ?? Align.Left);
|
|
7
|
+
_onContainer = $derived.by(() => this._getProps().onContainer ?? false);
|
|
8
|
+
getTag() {
|
|
9
|
+
return this._tag;
|
|
10
|
+
}
|
|
11
|
+
getDom() {
|
|
12
|
+
return this._dom;
|
|
13
|
+
}
|
|
14
|
+
getAlign() {
|
|
15
|
+
return this._align;
|
|
16
|
+
}
|
|
17
|
+
getOnContainer() {
|
|
18
|
+
return this._onContainer;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Theme } from '../theme';
|
|
2
|
+
import type { HeadingTag } from './models/HeadingTag';
|
|
3
|
+
export interface HeadingStyles {
|
|
4
|
+
getBase(): string;
|
|
5
|
+
setBase(classes: string): void;
|
|
6
|
+
getTheme(theme: Theme, onContainer: boolean): string;
|
|
7
|
+
setTheme(theme: Theme, onContainer: boolean, classes: string): void;
|
|
8
|
+
getTag(tag: HeadingTag): string;
|
|
9
|
+
setTag(tag: HeadingTag, classes: string): void;
|
|
10
|
+
getDom(tag: HeadingTag): string;
|
|
11
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { Theme } from '../../theme';
|
|
2
|
+
import type { Align, HeadingTag } from '../models';
|
|
3
|
+
export declare class HeadingBuilder {
|
|
4
|
+
private _theme;
|
|
5
|
+
private _tag?;
|
|
6
|
+
private _align?;
|
|
7
|
+
static create(): HeadingBuilder;
|
|
8
|
+
withTheme(theme: Theme): HeadingBuilder;
|
|
9
|
+
withTag(tag: HeadingTag): HeadingBuilder;
|
|
10
|
+
withAlign(align: Align): HeadingBuilder;
|
|
11
|
+
build(): Promise<void>;
|
|
12
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { render } from 'vitest-browser-svelte';
|
|
2
|
+
import PStory from './HeadingStory.svelte';
|
|
3
|
+
import { DEFAULT_THEME } from '../../theme/themeDefaults';
|
|
4
|
+
import HeadingStory from './HeadingStory.svelte';
|
|
5
|
+
export class HeadingBuilder {
|
|
6
|
+
_theme = DEFAULT_THEME;
|
|
7
|
+
_tag;
|
|
8
|
+
_align;
|
|
9
|
+
static create() {
|
|
10
|
+
return new HeadingBuilder();
|
|
11
|
+
}
|
|
12
|
+
withTheme(theme) {
|
|
13
|
+
this._theme = theme;
|
|
14
|
+
return this;
|
|
15
|
+
}
|
|
16
|
+
withTag(tag) {
|
|
17
|
+
this._tag = tag;
|
|
18
|
+
return this;
|
|
19
|
+
}
|
|
20
|
+
withAlign(align) {
|
|
21
|
+
this._align = align;
|
|
22
|
+
return this;
|
|
23
|
+
}
|
|
24
|
+
async build() {
|
|
25
|
+
await render(HeadingStory, {
|
|
26
|
+
props: {
|
|
27
|
+
theme: this._theme,
|
|
28
|
+
message: 'test message',
|
|
29
|
+
align: this._align,
|
|
30
|
+
tag: this._tag,
|
|
31
|
+
},
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import type { Theme } from '../../theme';
|
|
3
|
+
import Heading from '../Heading.svelte';
|
|
4
|
+
import type { Align, HeadingTag } from '../models';
|
|
5
|
+
|
|
6
|
+
interface Props {
|
|
7
|
+
message: string;
|
|
8
|
+
theme?: Theme;
|
|
9
|
+
tag?: HeadingTag;
|
|
10
|
+
}
|
|
11
|
+
const { message, theme, tag }: Props = $props();
|
|
12
|
+
</script>
|
|
13
|
+
|
|
14
|
+
<Heading
|
|
15
|
+
{theme}
|
|
16
|
+
{tag}>{message}</Heading>
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { Theme } from '../../theme';
|
|
2
|
+
import type { HeadingTag } from '../models';
|
|
3
|
+
interface Props {
|
|
4
|
+
message: string;
|
|
5
|
+
theme?: Theme;
|
|
6
|
+
tag?: HeadingTag;
|
|
7
|
+
}
|
|
8
|
+
declare const HeadingStory: import("svelte").Component<Props, {}, "">;
|
|
9
|
+
type HeadingStory = ReturnType<typeof HeadingStory>;
|
|
10
|
+
export default HeadingStory;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { sveltix } from '..';
|
|
2
|
+
import { createKey } from '../di/DiContainer';
|
|
3
|
+
import Heading from './Heading.svelte';
|
|
4
|
+
import { DefaultHeadingStyles } from './internal/DefaultHeadingStyles';
|
|
5
|
+
export { Heading };
|
|
6
|
+
export * from './models';
|
|
7
|
+
export const headingKey = createKey(DefaultHeadingStyles);
|
|
8
|
+
sveltix.registerSingleton(headingKey);
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { Theme } from '../../theme';
|
|
2
|
+
import type { HeadingStyles } from '../HeadingStyles';
|
|
3
|
+
import type { HeadingTag } from '../models/HeadingTag';
|
|
4
|
+
export declare class DefaultHeadingStyles implements HeadingStyles {
|
|
5
|
+
private _base;
|
|
6
|
+
private _themes;
|
|
7
|
+
private _tags;
|
|
8
|
+
getBase(): string;
|
|
9
|
+
setBase(classes: string): void;
|
|
10
|
+
getTheme(theme: Theme, onContainer: boolean): string;
|
|
11
|
+
setTheme(theme: Theme, onContainer: boolean, classes: string): void;
|
|
12
|
+
getTag(tag: HeadingTag): string;
|
|
13
|
+
setTag(tag: HeadingTag, classes: string): void;
|
|
14
|
+
getDom(tag: HeadingTag): string;
|
|
15
|
+
}
|