ngx-extra 21.0.0 → 21.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +43 -43
- package/fesm2022/ngx-extra.mjs +6 -6
- package/fesm2022/ngx-extra.mjs.map +1 -1
- package/package.json +1 -1
- package/types/ngx-extra.d.ts +0 -0
package/README.md
CHANGED
|
@@ -1,43 +1,43 @@
|
|
|
1
|
-
# ngx-extra
|
|
2
|
-
|
|
3
|
-
Utility functions for Angular applications.
|
|
4
|
-
|
|
5
|
-
## Installation
|
|
6
|
-
|
|
7
|
-
```bash
|
|
8
|
-
npm install ngx-extra
|
|
9
|
-
```
|
|
10
|
-
|
|
11
|
-
## API
|
|
12
|
-
|
|
13
|
-
### `abstractControlSignal()`
|
|
14
|
-
|
|
15
|
-
Convert Angular form controls to reactive signals. Tracks value, status, validation errors, touched/pristine states with automatic cleanup.
|
|
16
|
-
|
|
17
|
-
### `reactiveQueryParam()`
|
|
18
|
-
|
|
19
|
-
Synchronize Angular signals with URL query parameters. Supports compression, serialization, and reactive updates.
|
|
20
|
-
|
|
21
|
-
### `createSignalChangeNotifier()`
|
|
22
|
-
|
|
23
|
-
Create a signal-based notification system with `notify()` and `listen` methods.
|
|
24
|
-
|
|
25
|
-
### `debouncedSignal()`
|
|
26
|
-
|
|
27
|
-
Debounce signal updates by a specified time interval.
|
|
28
|
-
|
|
29
|
-
### `duringDestroy()`
|
|
30
|
-
|
|
31
|
-
Execute a callback when the injection context is destroyed.
|
|
32
|
-
|
|
33
|
-
### `rxSubscriber()`
|
|
34
|
-
|
|
35
|
-
Subscribe to observables with automatic cleanup on component destruction.
|
|
36
|
-
|
|
37
|
-
### `throwResourceError()`
|
|
38
|
-
|
|
39
|
-
Throw errors from `HttpResourceRef` when the status is error.
|
|
40
|
-
|
|
41
|
-
### `slimComponentState`
|
|
42
|
-
|
|
43
|
-
Function for managing component state using signals. Supports manipulation modes, selection states, and ui state with fluent API.
|
|
1
|
+
# ngx-extra
|
|
2
|
+
|
|
3
|
+
Utility functions for Angular applications.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install ngx-extra
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## API
|
|
12
|
+
|
|
13
|
+
### `abstractControlSignal()`
|
|
14
|
+
|
|
15
|
+
Convert Angular form controls to reactive signals. Tracks value, status, validation errors, touched/pristine states with automatic cleanup.
|
|
16
|
+
|
|
17
|
+
### `reactiveQueryParam()`
|
|
18
|
+
|
|
19
|
+
Synchronize Angular signals with URL query parameters. Supports compression, serialization, and reactive updates.
|
|
20
|
+
|
|
21
|
+
### `createSignalChangeNotifier()`
|
|
22
|
+
|
|
23
|
+
Create a signal-based notification system with `notify()` and `listen` methods.
|
|
24
|
+
|
|
25
|
+
### `debouncedSignal()`
|
|
26
|
+
|
|
27
|
+
Debounce signal updates by a specified time interval.
|
|
28
|
+
|
|
29
|
+
### `duringDestroy()`
|
|
30
|
+
|
|
31
|
+
Execute a callback when the injection context is destroyed.
|
|
32
|
+
|
|
33
|
+
### `rxSubscriber()`
|
|
34
|
+
|
|
35
|
+
Subscribe to observables with automatic cleanup on component destruction.
|
|
36
|
+
|
|
37
|
+
### `throwResourceError()`
|
|
38
|
+
|
|
39
|
+
Throw errors from `HttpResourceRef` when the status is error.
|
|
40
|
+
|
|
41
|
+
### `slimComponentState`
|
|
42
|
+
|
|
43
|
+
Function for managing component state using signals. Supports manipulation modes, selection states, and ui state with fluent API.
|
package/fesm2022/ngx-extra.mjs
CHANGED
|
@@ -73,10 +73,10 @@ class ReactiveQueryParamGlobalHandler {
|
|
|
73
73
|
this.navigationExtras.preserveFragment = preserveFragment;
|
|
74
74
|
}
|
|
75
75
|
}
|
|
76
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
77
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.
|
|
76
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.5", ngImport: i0, type: ReactiveQueryParamGlobalHandler, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
77
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.1.5", ngImport: i0, type: ReactiveQueryParamGlobalHandler, providedIn: "root" });
|
|
78
78
|
}
|
|
79
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
79
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImport: i0, type: ReactiveQueryParamGlobalHandler, decorators: [{
|
|
80
80
|
type: Injectable,
|
|
81
81
|
args: [{ providedIn: "root" }]
|
|
82
82
|
}], ctorParameters: () => [] });
|
|
@@ -444,8 +444,8 @@ class ReactiveFormErrorMessageComponent {
|
|
|
444
444
|
...customKv
|
|
445
445
|
};
|
|
446
446
|
}, ...(ngDevMode ? [{ debugName: "finalErrorsWithCodeAndMessage" }] : []));
|
|
447
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
448
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.
|
|
447
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.5", ngImport: i0, type: ReactiveFormErrorMessageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
448
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.5", type: ReactiveFormErrorMessageComponent, isStandalone: true, selector: "ngx-reactive-form-error-message", inputs: { formControlToBind: { classPropertyName: "formControlToBind", publicName: "formControlToBind", isSignal: true, isRequired: true, transformFunction: null }, formControlLabel: { classPropertyName: "formControlLabel", publicName: "formControlLabel", isSignal: true, isRequired: true, transformFunction: null }, cssClass: { classPropertyName: "cssClass", publicName: "cssClass", isSignal: true, isRequired: false, transformFunction: null }, customErrors: { classPropertyName: "customErrors", publicName: "customErrors", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
449
449
|
@for (item of finalErrorsWithCodeAndMessage() | keyvalue; track item.key) {
|
|
450
450
|
@if (formControlToBind().errors?.[item.key]) {
|
|
451
451
|
<small [class]="cssClass()">{{ item.value }}</small>
|
|
@@ -453,7 +453,7 @@ class ReactiveFormErrorMessageComponent {
|
|
|
453
453
|
}
|
|
454
454
|
`, isInline: true, dependencies: [{ kind: "pipe", type: KeyValuePipe, name: "keyvalue" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
455
455
|
}
|
|
456
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
456
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImport: i0, type: ReactiveFormErrorMessageComponent, decorators: [{
|
|
457
457
|
type: Component,
|
|
458
458
|
args: [{
|
|
459
459
|
selector: "ngx-reactive-form-error-message",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-extra.mjs","sources":["../../../projects/ngx-extra/src/lib/utils/create-signal-change-notifier.ts","../../../projects/ngx-extra/src/lib/helpers.ts","../../../projects/ngx-extra/src/lib/utils/reactive-query-param.ts","../../../projects/ngx-extra/src/lib/utils/debounced-signal.ts","../../../projects/ngx-extra/src/lib/utils/during-destroy.ts","../../../projects/ngx-extra/src/lib/utils/rx-subscriber.ts","../../../projects/ngx-extra/src/lib/utils/throw-resource-error.ts","../../../projects/ngx-extra/src/lib/utils/abstract-control-signal.ts","../../../projects/ngx-extra/src/lib/misc/slim-component-state.ts","../../../projects/ngx-extra/src/lib/utils/slim-effect.ts","../../../projects/ngx-extra/src/lib/utils/pairwise-signal.ts","../../../projects/ngx-extra/src/lib/components/reactive-form-error-message.component.ts","../../../projects/ngx-extra/src/ngx-extra.ts"],"sourcesContent":["import { Signal, signal } from \"@angular/core\";\n\nexport type SignalChangeNotifier = {\n notify: () => void;\n listen: Signal<number | null>;\n};\n\nexport function createSignalChangeNotifier() {\n const sourceSignal = signal<number | null>(null);\n\n return Object.seal({\n notify: () => {\n sourceSignal.update((v) => (v === null ? 1 : v + 1));\n },\n listen: sourceSignal.asReadonly()\n }) satisfies SignalChangeNotifier;\n}\n","export function cleanNullishFromObject(obj?: object): Record<string, any> {\n if (obj === undefined) {\n return {};\n }\n\n return Object.fromEntries(Object.entries(obj).filter(([, v]) => v != null));\n}\n\nexport function hasNullishInObject(obj: object): boolean {\n return Object.values(obj).some((val) => val === null || val === undefined);\n}\n","import {\n DestroyRef,\n Injectable,\n Injector,\n Signal,\n assertInInjectionContext,\n effect,\n inject,\n isDevMode,\n isSignal,\n runInInjectionContext,\n untracked\n} from \"@angular/core\";\nimport { takeUntilDestroyed, toObservable } from \"@angular/core/rxjs-interop\";\nimport { ActivatedRoute, NavigationExtras, Router } from \"@angular/router\";\nimport LzString from \"lz-string\";\nimport { Observable, filter, map } from \"rxjs\";\nimport { createSignalChangeNotifier } from \"./create-signal-change-notifier\";\nimport { cleanNullishFromObject } from \"../helpers\";\n\nexport type SlimNavigationExtras = Pick<\n NavigationExtras,\n | \"queryParamsHandling\"\n | \"onSameUrlNavigation\"\n | \"replaceUrl\"\n | \"skipLocationChange\"\n | \"preserveFragment\"\n>;\n\nexport type ReactiveQueryParamOptions<T> = {\n queryParamKey: string;\n source: Signal<T> | Observable<T>;\n parse?: (rawData: any) => T | null;\n handleInitialSnapshot?: (payload: T) => void;\n handleStream?: (payload: T) => void;\n injector?: Injector;\n routerOptions?: SlimNavigationExtras;\n base64EncodingOptions?: {\n disableEncoding?: boolean;\n disableJsonStringifyWhenNoEncoding?: boolean;\n };\n queryParamOptions?: {\n blackListedValues?: any[];\n preserveStaleOnBlacklistedValue?: boolean;\n };\n};\n\n@Injectable({ providedIn: \"root\" })\nclass ReactiveQueryParamGlobalHandler {\n private router = inject(Router);\n\n private schedulerNotifier = createSignalChangeNotifier();\n private currentKeys: Record<string, string | null> = {};\n private navigationExtras: SlimNavigationExtras = {};\n\n constructor() {\n effect(() => {\n if (!this.schedulerNotifier.listen()) {\n return;\n }\n untracked(() => {\n this.router\n .navigate([], {\n queryParams: this.currentKeys,\n ...this.navigationExtras\n })\n .then(() => {\n this.currentKeys = {};\n this.navigationExtras = {};\n });\n });\n });\n }\n\n scheduleNavigation(key: string, value: string | null, navOptions: SlimNavigationExtras) {\n this.currentKeys[key] = value;\n this.setCurrentNavigationExtras(navOptions);\n this.schedulerNotifier.notify();\n }\n\n private setCurrentNavigationExtras(config: Partial<SlimNavigationExtras> = {}) {\n const {\n queryParamsHandling,\n onSameUrlNavigation,\n replaceUrl,\n skipLocationChange,\n preserveFragment\n } = config;\n\n if (queryParamsHandling || queryParamsHandling === \"\") {\n this.navigationExtras.queryParamsHandling = queryParamsHandling;\n }\n if (onSameUrlNavigation) {\n this.navigationExtras.onSameUrlNavigation = onSameUrlNavigation;\n }\n if (replaceUrl) {\n this.navigationExtras.replaceUrl = replaceUrl;\n }\n if (skipLocationChange) {\n this.navigationExtras.skipLocationChange = skipLocationChange;\n }\n if (preserveFragment) {\n this.navigationExtras.preserveFragment = preserveFragment;\n }\n }\n}\n\nexport function reactiveQueryParam<T>(options: ReactiveQueryParamOptions<T>) {\n if (isDevMode() && !options?.injector) {\n assertInInjectionContext(reactiveQueryParam);\n }\n\n const assertedInjector = options.injector ?? inject(Injector);\n\n const blackList = options.queryParamOptions?.blackListedValues ?? [null, undefined, \"\"];\n\n const useEncoding = !options?.base64EncodingOptions?.disableEncoding;\n\n const useStringifyOnNoEncoding =\n !options?.base64EncodingOptions?.disableJsonStringifyWhenNoEncoding;\n\n const deserialize = (payload: string): T => {\n if (useEncoding) {\n const decoded = LzString.decompressFromEncodedURIComponent(payload);\n return JSON.parse(decoded);\n }\n\n if (!useEncoding && useStringifyOnNoEncoding) {\n return JSON.parse(payload);\n } else {\n try {\n return JSON.parse(payload);\n } catch {\n return payload as T;\n }\n }\n };\n\n const serialize = (value: T | null | undefined): string | null => {\n if (blackList.some((elem) => elem === value)) {\n return null;\n }\n if (useEncoding) {\n return LzString.compressToEncodedURIComponent(JSON.stringify(value));\n }\n\n if (!useEncoding && useStringifyOnNoEncoding) {\n return JSON.stringify(value);\n } else {\n if (typeof value === \"string\") {\n return value;\n } else {\n return JSON.stringify(value);\n }\n }\n };\n\n runInInjectionContext(assertedInjector, () => {\n const globalHandler = inject(ReactiveQueryParamGlobalHandler);\n const route = inject(ActivatedRoute);\n const destroyRef = inject(DestroyRef);\n\n // Handle initial snapshot\n const payloadFromSnapshot = route.snapshot.queryParamMap.get(options.queryParamKey);\n\n if (\n payloadFromSnapshot !== null &&\n payloadFromSnapshot !== \"\" &&\n options.handleInitialSnapshot\n ) {\n const deserialized = deserialize(payloadFromSnapshot);\n if (!options.parse) {\n options.handleInitialSnapshot(deserialized);\n } else {\n try {\n const parsedValue = options.parse(deserialized);\n if (parsedValue !== null) {\n options.handleInitialSnapshot(parsedValue);\n }\n } catch (error) {\n console.error(error);\n }\n }\n }\n\n // Handle query param stream\n route.queryParamMap\n .pipe(\n map((params) => params.get(options.queryParamKey)),\n filter((value) => value !== null),\n filter((value) => value !== \"\"),\n takeUntilDestroyed(destroyRef)\n )\n .subscribe((payloadFromStream) => {\n if (!options.handleStream) {\n return;\n }\n const deserialized = deserialize(payloadFromStream);\n if (!options.parse) {\n options.handleStream(deserialized);\n } else {\n try {\n const parsedValue = options.parse(deserialized);\n if (parsedValue !== null) {\n options.handleStream(parsedValue);\n }\n } catch (error) {\n console.error(error);\n }\n }\n });\n\n // Handle source changes\n let source$: Observable<T>;\n\n if (isSignal(options.source)) {\n source$ = toObservable(options.source);\n } else if (options.source instanceof Observable) {\n source$ = options.source;\n } else {\n throw new Error(\"Invalid source\");\n }\n\n source$.pipe(takeUntilDestroyed(destroyRef)).subscribe((value) => {\n const serializedValue = serialize(value);\n if (serializedValue === null && options?.queryParamOptions?.preserveStaleOnBlacklistedValue) {\n return;\n }\n\n globalHandler.scheduleNavigation(options.queryParamKey, serializedValue, {\n ...cleanNullishFromObject(options?.routerOptions),\n queryParamsHandling: options.routerOptions?.queryParamsHandling ?? \"merge\"\n });\n });\n });\n}\n","import {\n Signal,\n Injector,\n isDevMode,\n assertInInjectionContext,\n inject,\n runInInjectionContext,\n isSignal\n} from \"@angular/core\";\nimport { toSignal, toObservable, takeUntilDestroyed } from \"@angular/core/rxjs-interop\";\nimport { debounceTime } from \"rxjs\";\n\nexport function debouncedSignal<T>(source: Signal<T>, ms: number, injector?: Injector) {\n if (isDevMode() && !injector) {\n assertInInjectionContext(debouncedSignal);\n }\n const assertedInjector = injector ?? inject(Injector);\n\n return runInInjectionContext(assertedInjector, () => {\n if (isSignal(source)) {\n return toSignal(toObservable(source).pipe(debounceTime(ms), takeUntilDestroyed()));\n } else {\n throw new Error(\"Invalid source\");\n }\n });\n}\n","import {\n Injector,\n isDevMode,\n assertInInjectionContext,\n inject,\n runInInjectionContext,\n DestroyRef\n} from \"@angular/core\";\n\nexport function duringDestroy(fn: () => void, injector?: Injector) {\n if (isDevMode() && !injector) {\n assertInInjectionContext(duringDestroy);\n }\n const assertedInjector = injector ?? inject(Injector);\n\n runInInjectionContext(assertedInjector, () => {\n inject(DestroyRef).onDestroy(fn);\n });\n}\n","import {\n assertInInjectionContext,\n inject,\n Injector,\n isDevMode,\n runInInjectionContext\n} from \"@angular/core\";\nimport { takeUntilDestroyed } from \"@angular/core/rxjs-interop\";\nimport { Observable } from \"rxjs\";\n\nexport type RxSubscriberOptions = {\n injector?: Injector;\n};\n\nexport function rxSubscriber<T>(\n source: Observable<T>,\n next: (payload: T) => void,\n options?: RxSubscriberOptions\n) {\n if (isDevMode() && !options?.injector) {\n assertInInjectionContext(rxSubscriber);\n }\n const assertedInjector = options?.injector ?? inject(Injector);\n\n runInInjectionContext(assertedInjector, () => {\n source.pipe(takeUntilDestroyed()).subscribe((payloadFromStream) => {\n next(payloadFromStream);\n });\n });\n}\n","import { HttpResourceRef } from \"@angular/common/http\";\nimport {\n Injector,\n assertInInjectionContext,\n inject,\n runInInjectionContext,\n effect,\n isDevMode\n} from \"@angular/core\";\n\nexport function throwResourceError<T = any>(resorce: HttpResourceRef<T>, injector?: Injector) {\n if (isDevMode() && !injector) {\n assertInInjectionContext(throwResourceError);\n }\n const assertedInjector = injector ?? inject(Injector);\n runInInjectionContext(assertedInjector, () => {\n effect(() => {\n if (resorce.status() === \"error\") {\n throw resorce.error();\n }\n });\n });\n}\n","import {\n assertInInjectionContext,\n computed,\n inject,\n Injector,\n isDevMode,\n runInInjectionContext,\n signal\n} from \"@angular/core\";\nimport { takeUntilDestroyed } from \"@angular/core/rxjs-interop\";\nimport {\n AbstractControl,\n FormControlStatus,\n PristineChangeEvent,\n StatusChangeEvent,\n TouchedChangeEvent,\n ValidationErrors,\n ValueChangeEvent\n} from \"@angular/forms\";\n\ntype AbstractControlSignalOptions = {\n injector?: Injector;\n};\n\nexport function abstractControlSignal<T>(\n source: AbstractControl<T>,\n options: AbstractControlSignalOptions = {}\n) {\n if (isDevMode() && !options.injector) {\n assertInInjectionContext(abstractControlSignal);\n }\n const assertedInjector = options.injector ?? inject(Injector);\n\n return runInInjectionContext(assertedInjector, () => {\n const internalState = Object.seal({\n value: signal<T>(source.getRawValue()),\n status: signal<FormControlStatus>(source.status),\n touched: signal<boolean>(source.touched),\n pristine: signal<boolean>(source.pristine),\n errors: signal<ValidationErrors | null>(source.errors)\n });\n\n source.events.pipe(takeUntilDestroyed()).subscribe((newEvent) => {\n if (newEvent instanceof ValueChangeEvent) {\n internalState.value.set(source.getRawValue());\n }\n\n if (newEvent instanceof PristineChangeEvent) {\n internalState.pristine.set(newEvent.pristine);\n }\n\n if (newEvent instanceof TouchedChangeEvent) {\n internalState.touched.set(newEvent.touched);\n }\n\n if (newEvent instanceof StatusChangeEvent) {\n internalState.status.set(newEvent.status);\n internalState.errors.set(source.errors);\n }\n });\n\n return Object.seal({\n errors: internalState.errors.asReadonly(),\n value: internalState.value.asReadonly(),\n touched: internalState.touched.asReadonly(),\n untouched: computed(() => {\n return !internalState.touched();\n }),\n pristine: internalState.pristine.asReadonly(),\n dirty: computed(() => {\n return !internalState.pristine();\n }),\n valid: computed(() => {\n return internalState.status() === \"VALID\";\n }),\n invalid: computed(() => {\n return internalState.status() === \"INVALID\";\n }),\n pending: computed(() => {\n return internalState.status() === \"PENDING\";\n }),\n disabled: computed(() => {\n return internalState.status() === \"DISABLED\";\n })\n });\n });\n}\n","import { signal, computed, Signal, WritableSignal } from \"@angular/core\";\nimport { ManipulationMode } from \"../types\";\n\nexport type SlimComponentState = {\n isCheckBoxSelectionEnabled: WritableSignal<boolean>;\n canSelectRow: WritableSignal<boolean>;\n canSelectMultipleItem: WritableSignal<boolean>;\n manipulationMode: WritableSignal<ManipulationMode | null>;\n title: WritableSignal<string>;\n isAnyNetworkOperationRunning: WritableSignal<boolean>;\n isDataManipulationUiActive: WritableSignal<boolean>;\n manipulationModeLabel: Signal<string>;\n titleWithManipulationMode: Signal<string>;\n setTitle(newTitle: string): SlimComponentState;\n setManipulationMode(mode: ManipulationMode | null): SlimComponentState;\n setIsCheckBoxSelectionEnabled(canSelect: boolean): SlimComponentState;\n setCanSelectRow(canSelect: boolean): SlimComponentState;\n setCanSelectMultipleItem(canSelect: boolean): SlimComponentState;\n setIsAnyNetworkOperationRunning(status: boolean): SlimComponentState;\n setIsDataManipulationUiActive(status: boolean): SlimComponentState;\n resetAll(): SlimComponentState;\n};\n\nexport function slimComponentState(): SlimComponentState {\n const isCheckBoxSelectionEnabled = signal<boolean>(false);\n const canSelectRow = signal<boolean>(false);\n const canSelectMultipleItem = signal<boolean>(false);\n const manipulationMode = signal<ManipulationMode | null>(null);\n const title = signal<string>(\"\");\n const isAnyNetworkOperationRunning = signal<boolean>(false);\n const isDataManipulationUiActive = signal<boolean>(false);\n\n const manipulationModeLabel = computed(() => {\n switch (manipulationMode()) {\n case \"create\":\n return \"Create\";\n case \"update\":\n return \"Update\";\n case \"delete\":\n return \"Delete\";\n case \"create-child\":\n return \"Create Child\";\n case \"update-child\":\n return \"Update Child\";\n case \"delete-child\":\n return \"Delete Child\";\n default:\n return \"\";\n }\n });\n\n const titleWithManipulationMode = computed(() => {\n return `${manipulationModeLabel()} ${title()}`.trim();\n });\n\n return Object.seal({\n isCheckBoxSelectionEnabled,\n canSelectRow,\n canSelectMultipleItem,\n manipulationMode,\n title,\n isAnyNetworkOperationRunning,\n isDataManipulationUiActive,\n manipulationModeLabel,\n titleWithManipulationMode,\n setTitle(newTitle: string) {\n title.set(newTitle);\n return this;\n },\n\n setManipulationMode(mode: ManipulationMode | null): SlimComponentState {\n manipulationMode.set(mode);\n return this;\n },\n setIsCheckBoxSelectionEnabled(canSelect: boolean): SlimComponentState {\n isCheckBoxSelectionEnabled.set(canSelect);\n return this;\n },\n\n setCanSelectRow(canSelect: boolean): SlimComponentState {\n canSelectRow.set(canSelect);\n return this;\n },\n\n setCanSelectMultipleItem(canSelect: boolean): SlimComponentState {\n canSelectMultipleItem.set(canSelect);\n return this;\n },\n\n setIsAnyNetworkOperationRunning(status: boolean): SlimComponentState {\n isAnyNetworkOperationRunning.set(status);\n return this;\n },\n\n setIsDataManipulationUiActive(status: boolean): SlimComponentState {\n isDataManipulationUiActive.set(status);\n return this;\n },\n\n resetAll(): SlimComponentState {\n isCheckBoxSelectionEnabled.set(false);\n canSelectRow.set(false);\n canSelectMultipleItem.set(false);\n manipulationMode.set(null);\n title.set(\"\");\n isAnyNetworkOperationRunning.set(false);\n isDataManipulationUiActive.set(false);\n return this;\n }\n });\n}\n","import {\n CreateEffectOptions,\n effect,\n EffectCleanupRegisterFn,\n Signal,\n untracked\n} from \"@angular/core\";\n\ninterface SlimEffectOptions extends CreateEffectOptions {\n lazy?: boolean;\n}\n\nexport function slimEffect<T>(\n dependency: Signal<T>,\n fn: (dependency: T, onCleanup: EffectCleanupRegisterFn) => void,\n options?: SlimEffectOptions\n) {\n if (options?.lazy) {\n let warm = false;\n return effect((onCleanup) => {\n const dep = dependency();\n untracked(() => {\n if (warm) {\n fn(dep, onCleanup);\n }\n warm = true;\n });\n }, options);\n } else {\n return effect((onCleanup) => {\n const dep = dependency();\n untracked(() => {\n fn(dep, onCleanup);\n });\n }, options);\n }\n}\n","import {\n assertInInjectionContext,\n inject,\n Injector,\n isDevMode,\n linkedSignal,\n runInInjectionContext,\n Signal,\n ValueEqualityFn\n} from \"@angular/core\";\n\ntype Value<T> = { current: T; previous: T | null };\n\ntype PairwiseSignalOptions<T> = {\n equalityFn?: ValueEqualityFn<Value<T>>;\n injector?: Injector;\n};\n\nexport function pairwiseSignal<T>(source: Signal<T>, options?: PairwiseSignalOptions<T>) {\n if (isDevMode() && !options?.injector) {\n assertInInjectionContext(pairwiseSignal);\n }\n const assertedInjector = options?.injector ?? inject(Injector);\n\n const defaultEqualityFn = (a: Value<T>, b: Value<T>) =>\n JSON.stringify(a.previous) === JSON.stringify(b.current);\n\n return runInInjectionContext(assertedInjector, () => {\n const pair = linkedSignal<T, Value<T>>({\n source: source,\n equal: options?.equalityFn ?? defaultEqualityFn,\n computation: (current, previous) => {\n console.log(JSON.stringify(previous) === JSON.stringify(current));\n return {\n current,\n previous: previous?.value.current ?? null\n };\n }\n });\n\n return pair.asReadonly();\n });\n}\n","import { Component, computed, input, ChangeDetectionStrategy } from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\nimport { KeyValuePipe } from \"@angular/common\";\n\n@Component({\n selector: \"ngx-reactive-form-error-message\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [KeyValuePipe],\n template: `\n @for (item of finalErrorsWithCodeAndMessage() | keyvalue; track item.key) {\n @if (formControlToBind().errors?.[item.key]) {\n <small [class]=\"cssClass()\">{{ item.value }}</small>\n }\n }\n `\n})\nexport class ReactiveFormErrorMessageComponent {\n readonly formControlToBind = input.required<FormControl>();\n readonly formControlLabel = input.required<string>();\n readonly cssClass = input<string>(\"\");\n readonly customErrors = input<Record<string, string>>();\n\n protected readonly finalErrorsWithCodeAndMessage = computed(() => {\n const label = this.formControlLabel();\n const customKv = this.customErrors() ?? {};\n\n return {\n required: `${label} is required.`,\n maxlength: `${label} must be smaller.`,\n minlength: `${label} must be bigger.`,\n min: `${label} must be bigger.`,\n max: `${label} must be smaller.`,\n email: `${label} must be a valid email.`,\n pattern: `${label} is not valid.`,\n ...customKv\n };\n });\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ngx-extra.mjs","sources":["../../../projects/ngx-extra/src/lib/utils/create-signal-change-notifier.ts","../../../projects/ngx-extra/src/lib/helpers.ts","../../../projects/ngx-extra/src/lib/utils/reactive-query-param.ts","../../../projects/ngx-extra/src/lib/utils/debounced-signal.ts","../../../projects/ngx-extra/src/lib/utils/during-destroy.ts","../../../projects/ngx-extra/src/lib/utils/rx-subscriber.ts","../../../projects/ngx-extra/src/lib/utils/throw-resource-error.ts","../../../projects/ngx-extra/src/lib/utils/abstract-control-signal.ts","../../../projects/ngx-extra/src/lib/misc/slim-component-state.ts","../../../projects/ngx-extra/src/lib/utils/slim-effect.ts","../../../projects/ngx-extra/src/lib/utils/pairwise-signal.ts","../../../projects/ngx-extra/src/lib/components/reactive-form-error-message.component.ts","../../../projects/ngx-extra/src/ngx-extra.ts"],"sourcesContent":["import { Signal, signal } from \"@angular/core\";\n\nexport type SignalChangeNotifier = {\n notify: () => void;\n listen: Signal<number | null>;\n};\n\nexport function createSignalChangeNotifier() {\n const sourceSignal = signal<number | null>(null);\n\n return Object.seal({\n notify: () => {\n sourceSignal.update((v) => (v === null ? 1 : v + 1));\n },\n listen: sourceSignal.asReadonly()\n }) satisfies SignalChangeNotifier;\n}\n","export function cleanNullishFromObject(obj?: object): Record<string, any> {\n if (obj === undefined) {\n return {};\n }\n\n return Object.fromEntries(Object.entries(obj).filter(([, v]) => v != null));\n}\n\nexport function hasNullishInObject(obj: object): boolean {\n return Object.values(obj).some((val) => val === null || val === undefined);\n}\n","import {\n DestroyRef,\n Injectable,\n Injector,\n Signal,\n assertInInjectionContext,\n effect,\n inject,\n isDevMode,\n isSignal,\n runInInjectionContext,\n untracked\n} from \"@angular/core\";\nimport { takeUntilDestroyed, toObservable } from \"@angular/core/rxjs-interop\";\nimport { ActivatedRoute, NavigationExtras, Router } from \"@angular/router\";\nimport LzString from \"lz-string\";\nimport { Observable, filter, map } from \"rxjs\";\nimport { createSignalChangeNotifier } from \"./create-signal-change-notifier\";\nimport { cleanNullishFromObject } from \"../helpers\";\n\nexport type SlimNavigationExtras = Pick<\n NavigationExtras,\n | \"queryParamsHandling\"\n | \"onSameUrlNavigation\"\n | \"replaceUrl\"\n | \"skipLocationChange\"\n | \"preserveFragment\"\n>;\n\nexport type ReactiveQueryParamOptions<T> = {\n queryParamKey: string;\n source: Signal<T> | Observable<T>;\n parse?: (rawData: any) => T | null;\n handleInitialSnapshot?: (payload: T) => void;\n handleStream?: (payload: T) => void;\n injector?: Injector;\n routerOptions?: SlimNavigationExtras;\n base64EncodingOptions?: {\n disableEncoding?: boolean;\n disableJsonStringifyWhenNoEncoding?: boolean;\n };\n queryParamOptions?: {\n blackListedValues?: any[];\n preserveStaleOnBlacklistedValue?: boolean;\n };\n};\n\n@Injectable({ providedIn: \"root\" })\nclass ReactiveQueryParamGlobalHandler {\n private router = inject(Router);\n\n private schedulerNotifier = createSignalChangeNotifier();\n private currentKeys: Record<string, string | null> = {};\n private navigationExtras: SlimNavigationExtras = {};\n\n constructor() {\n effect(() => {\n if (!this.schedulerNotifier.listen()) {\n return;\n }\n untracked(() => {\n this.router\n .navigate([], {\n queryParams: this.currentKeys,\n ...this.navigationExtras\n })\n .then(() => {\n this.currentKeys = {};\n this.navigationExtras = {};\n });\n });\n });\n }\n\n scheduleNavigation(key: string, value: string | null, navOptions: SlimNavigationExtras) {\n this.currentKeys[key] = value;\n this.setCurrentNavigationExtras(navOptions);\n this.schedulerNotifier.notify();\n }\n\n private setCurrentNavigationExtras(config: Partial<SlimNavigationExtras> = {}) {\n const {\n queryParamsHandling,\n onSameUrlNavigation,\n replaceUrl,\n skipLocationChange,\n preserveFragment\n } = config;\n\n if (queryParamsHandling || queryParamsHandling === \"\") {\n this.navigationExtras.queryParamsHandling = queryParamsHandling;\n }\n if (onSameUrlNavigation) {\n this.navigationExtras.onSameUrlNavigation = onSameUrlNavigation;\n }\n if (replaceUrl) {\n this.navigationExtras.replaceUrl = replaceUrl;\n }\n if (skipLocationChange) {\n this.navigationExtras.skipLocationChange = skipLocationChange;\n }\n if (preserveFragment) {\n this.navigationExtras.preserveFragment = preserveFragment;\n }\n }\n}\n\nexport function reactiveQueryParam<T>(options: ReactiveQueryParamOptions<T>) {\n if (isDevMode() && !options?.injector) {\n assertInInjectionContext(reactiveQueryParam);\n }\n\n const assertedInjector = options.injector ?? inject(Injector);\n\n const blackList = options.queryParamOptions?.blackListedValues ?? [null, undefined, \"\"];\n\n const useEncoding = !options?.base64EncodingOptions?.disableEncoding;\n\n const useStringifyOnNoEncoding =\n !options?.base64EncodingOptions?.disableJsonStringifyWhenNoEncoding;\n\n const deserialize = (payload: string): T => {\n if (useEncoding) {\n const decoded = LzString.decompressFromEncodedURIComponent(payload);\n return JSON.parse(decoded);\n }\n\n if (!useEncoding && useStringifyOnNoEncoding) {\n return JSON.parse(payload);\n } else {\n try {\n return JSON.parse(payload);\n } catch {\n return payload as T;\n }\n }\n };\n\n const serialize = (value: T | null | undefined): string | null => {\n if (blackList.some((elem) => elem === value)) {\n return null;\n }\n if (useEncoding) {\n return LzString.compressToEncodedURIComponent(JSON.stringify(value));\n }\n\n if (!useEncoding && useStringifyOnNoEncoding) {\n return JSON.stringify(value);\n } else {\n if (typeof value === \"string\") {\n return value;\n } else {\n return JSON.stringify(value);\n }\n }\n };\n\n runInInjectionContext(assertedInjector, () => {\n const globalHandler = inject(ReactiveQueryParamGlobalHandler);\n const route = inject(ActivatedRoute);\n const destroyRef = inject(DestroyRef);\n\n // Handle initial snapshot\n const payloadFromSnapshot = route.snapshot.queryParamMap.get(options.queryParamKey);\n\n if (\n payloadFromSnapshot !== null &&\n payloadFromSnapshot !== \"\" &&\n options.handleInitialSnapshot\n ) {\n const deserialized = deserialize(payloadFromSnapshot);\n if (!options.parse) {\n options.handleInitialSnapshot(deserialized);\n } else {\n try {\n const parsedValue = options.parse(deserialized);\n if (parsedValue !== null) {\n options.handleInitialSnapshot(parsedValue);\n }\n } catch (error) {\n console.error(error);\n }\n }\n }\n\n // Handle query param stream\n route.queryParamMap\n .pipe(\n map((params) => params.get(options.queryParamKey)),\n filter((value) => value !== null),\n filter((value) => value !== \"\"),\n takeUntilDestroyed(destroyRef)\n )\n .subscribe((payloadFromStream) => {\n if (!options.handleStream) {\n return;\n }\n const deserialized = deserialize(payloadFromStream);\n if (!options.parse) {\n options.handleStream(deserialized);\n } else {\n try {\n const parsedValue = options.parse(deserialized);\n if (parsedValue !== null) {\n options.handleStream(parsedValue);\n }\n } catch (error) {\n console.error(error);\n }\n }\n });\n\n // Handle source changes\n let source$: Observable<T>;\n\n if (isSignal(options.source)) {\n source$ = toObservable(options.source);\n } else if (options.source instanceof Observable) {\n source$ = options.source;\n } else {\n throw new Error(\"Invalid source\");\n }\n\n source$.pipe(takeUntilDestroyed(destroyRef)).subscribe((value) => {\n const serializedValue = serialize(value);\n if (serializedValue === null && options?.queryParamOptions?.preserveStaleOnBlacklistedValue) {\n return;\n }\n\n globalHandler.scheduleNavigation(options.queryParamKey, serializedValue, {\n ...cleanNullishFromObject(options?.routerOptions),\n queryParamsHandling: options.routerOptions?.queryParamsHandling ?? \"merge\"\n });\n });\n });\n}\n","import {\n Signal,\n Injector,\n isDevMode,\n assertInInjectionContext,\n inject,\n runInInjectionContext,\n isSignal\n} from \"@angular/core\";\nimport { toSignal, toObservable, takeUntilDestroyed } from \"@angular/core/rxjs-interop\";\nimport { debounceTime } from \"rxjs\";\n\nexport function debouncedSignal<T>(source: Signal<T>, ms: number, injector?: Injector) {\n if (isDevMode() && !injector) {\n assertInInjectionContext(debouncedSignal);\n }\n const assertedInjector = injector ?? inject(Injector);\n\n return runInInjectionContext(assertedInjector, () => {\n if (isSignal(source)) {\n return toSignal(toObservable(source).pipe(debounceTime(ms), takeUntilDestroyed()));\n } else {\n throw new Error(\"Invalid source\");\n }\n });\n}\n","import {\n Injector,\n isDevMode,\n assertInInjectionContext,\n inject,\n runInInjectionContext,\n DestroyRef\n} from \"@angular/core\";\n\nexport function duringDestroy(fn: () => void, injector?: Injector) {\n if (isDevMode() && !injector) {\n assertInInjectionContext(duringDestroy);\n }\n const assertedInjector = injector ?? inject(Injector);\n\n runInInjectionContext(assertedInjector, () => {\n inject(DestroyRef).onDestroy(fn);\n });\n}\n","import {\n assertInInjectionContext,\n inject,\n Injector,\n isDevMode,\n runInInjectionContext\n} from \"@angular/core\";\nimport { takeUntilDestroyed } from \"@angular/core/rxjs-interop\";\nimport { Observable } from \"rxjs\";\n\nexport type RxSubscriberOptions = {\n injector?: Injector;\n};\n\nexport function rxSubscriber<T>(\n source: Observable<T>,\n next: (payload: T) => void,\n options?: RxSubscriberOptions\n) {\n if (isDevMode() && !options?.injector) {\n assertInInjectionContext(rxSubscriber);\n }\n const assertedInjector = options?.injector ?? inject(Injector);\n\n runInInjectionContext(assertedInjector, () => {\n source.pipe(takeUntilDestroyed()).subscribe((payloadFromStream) => {\n next(payloadFromStream);\n });\n });\n}\n","import { HttpResourceRef } from \"@angular/common/http\";\nimport {\n Injector,\n assertInInjectionContext,\n inject,\n runInInjectionContext,\n effect,\n isDevMode\n} from \"@angular/core\";\n\nexport function throwResourceError<T = any>(resorce: HttpResourceRef<T>, injector?: Injector) {\n if (isDevMode() && !injector) {\n assertInInjectionContext(throwResourceError);\n }\n const assertedInjector = injector ?? inject(Injector);\n runInInjectionContext(assertedInjector, () => {\n effect(() => {\n if (resorce.status() === \"error\") {\n throw resorce.error();\n }\n });\n });\n}\n","import {\n assertInInjectionContext,\n computed,\n inject,\n Injector,\n isDevMode,\n runInInjectionContext,\n signal\n} from \"@angular/core\";\nimport { takeUntilDestroyed } from \"@angular/core/rxjs-interop\";\nimport {\n AbstractControl,\n FormControlStatus,\n PristineChangeEvent,\n StatusChangeEvent,\n TouchedChangeEvent,\n ValidationErrors,\n ValueChangeEvent\n} from \"@angular/forms\";\n\ntype AbstractControlSignalOptions = {\n injector?: Injector;\n};\n\nexport function abstractControlSignal<T>(\n source: AbstractControl<T>,\n options: AbstractControlSignalOptions = {}\n) {\n if (isDevMode() && !options.injector) {\n assertInInjectionContext(abstractControlSignal);\n }\n const assertedInjector = options.injector ?? inject(Injector);\n\n return runInInjectionContext(assertedInjector, () => {\n const internalState = Object.seal({\n value: signal<T>(source.getRawValue()),\n status: signal<FormControlStatus>(source.status),\n touched: signal<boolean>(source.touched),\n pristine: signal<boolean>(source.pristine),\n errors: signal<ValidationErrors | null>(source.errors)\n });\n\n source.events.pipe(takeUntilDestroyed()).subscribe((newEvent) => {\n if (newEvent instanceof ValueChangeEvent) {\n internalState.value.set(source.getRawValue());\n }\n\n if (newEvent instanceof PristineChangeEvent) {\n internalState.pristine.set(newEvent.pristine);\n }\n\n if (newEvent instanceof TouchedChangeEvent) {\n internalState.touched.set(newEvent.touched);\n }\n\n if (newEvent instanceof StatusChangeEvent) {\n internalState.status.set(newEvent.status);\n internalState.errors.set(source.errors);\n }\n });\n\n return Object.seal({\n errors: internalState.errors.asReadonly(),\n value: internalState.value.asReadonly(),\n touched: internalState.touched.asReadonly(),\n untouched: computed(() => {\n return !internalState.touched();\n }),\n pristine: internalState.pristine.asReadonly(),\n dirty: computed(() => {\n return !internalState.pristine();\n }),\n valid: computed(() => {\n return internalState.status() === \"VALID\";\n }),\n invalid: computed(() => {\n return internalState.status() === \"INVALID\";\n }),\n pending: computed(() => {\n return internalState.status() === \"PENDING\";\n }),\n disabled: computed(() => {\n return internalState.status() === \"DISABLED\";\n })\n });\n });\n}\n","import { signal, computed, Signal, WritableSignal } from \"@angular/core\";\r\nimport { ManipulationMode } from \"../types\";\r\n\r\nexport type SlimComponentState = {\r\n isCheckBoxSelectionEnabled: WritableSignal<boolean>;\r\n canSelectRow: WritableSignal<boolean>;\r\n canSelectMultipleItem: WritableSignal<boolean>;\r\n manipulationMode: WritableSignal<ManipulationMode | null>;\r\n title: WritableSignal<string>;\r\n isAnyNetworkOperationRunning: WritableSignal<boolean>;\r\n isDataManipulationUiActive: WritableSignal<boolean>;\r\n manipulationModeLabel: Signal<string>;\r\n titleWithManipulationMode: Signal<string>;\r\n setTitle(newTitle: string): SlimComponentState;\r\n setManipulationMode(mode: ManipulationMode | null): SlimComponentState;\r\n setIsCheckBoxSelectionEnabled(canSelect: boolean): SlimComponentState;\r\n setCanSelectRow(canSelect: boolean): SlimComponentState;\r\n setCanSelectMultipleItem(canSelect: boolean): SlimComponentState;\r\n setIsAnyNetworkOperationRunning(status: boolean): SlimComponentState;\r\n setIsDataManipulationUiActive(status: boolean): SlimComponentState;\r\n resetAll(): SlimComponentState;\r\n};\r\n\r\nexport function slimComponentState(): SlimComponentState {\r\n const isCheckBoxSelectionEnabled = signal<boolean>(false);\r\n const canSelectRow = signal<boolean>(false);\r\n const canSelectMultipleItem = signal<boolean>(false);\r\n const manipulationMode = signal<ManipulationMode | null>(null);\r\n const title = signal<string>(\"\");\r\n const isAnyNetworkOperationRunning = signal<boolean>(false);\r\n const isDataManipulationUiActive = signal<boolean>(false);\r\n\r\n const manipulationModeLabel = computed(() => {\r\n switch (manipulationMode()) {\r\n case \"create\":\r\n return \"Create\";\r\n case \"update\":\r\n return \"Update\";\r\n case \"delete\":\r\n return \"Delete\";\r\n case \"create-child\":\r\n return \"Create Child\";\r\n case \"update-child\":\r\n return \"Update Child\";\r\n case \"delete-child\":\r\n return \"Delete Child\";\r\n default:\r\n return \"\";\r\n }\r\n });\r\n\r\n const titleWithManipulationMode = computed(() => {\r\n return `${manipulationModeLabel()} ${title()}`.trim();\r\n });\r\n\r\n return Object.seal({\r\n isCheckBoxSelectionEnabled,\r\n canSelectRow,\r\n canSelectMultipleItem,\r\n manipulationMode,\r\n title,\r\n isAnyNetworkOperationRunning,\r\n isDataManipulationUiActive,\r\n manipulationModeLabel,\r\n titleWithManipulationMode,\r\n setTitle(newTitle: string) {\r\n title.set(newTitle);\r\n return this;\r\n },\r\n\r\n setManipulationMode(mode: ManipulationMode | null): SlimComponentState {\r\n manipulationMode.set(mode);\r\n return this;\r\n },\r\n setIsCheckBoxSelectionEnabled(canSelect: boolean): SlimComponentState {\r\n isCheckBoxSelectionEnabled.set(canSelect);\r\n return this;\r\n },\r\n\r\n setCanSelectRow(canSelect: boolean): SlimComponentState {\r\n canSelectRow.set(canSelect);\r\n return this;\r\n },\r\n\r\n setCanSelectMultipleItem(canSelect: boolean): SlimComponentState {\r\n canSelectMultipleItem.set(canSelect);\r\n return this;\r\n },\r\n\r\n setIsAnyNetworkOperationRunning(status: boolean): SlimComponentState {\r\n isAnyNetworkOperationRunning.set(status);\r\n return this;\r\n },\r\n\r\n setIsDataManipulationUiActive(status: boolean): SlimComponentState {\r\n isDataManipulationUiActive.set(status);\r\n return this;\r\n },\r\n\r\n resetAll(): SlimComponentState {\r\n isCheckBoxSelectionEnabled.set(false);\r\n canSelectRow.set(false);\r\n canSelectMultipleItem.set(false);\r\n manipulationMode.set(null);\r\n title.set(\"\");\r\n isAnyNetworkOperationRunning.set(false);\r\n isDataManipulationUiActive.set(false);\r\n return this;\r\n }\r\n });\r\n}\r\n","import {\r\n CreateEffectOptions,\r\n effect,\r\n EffectCleanupRegisterFn,\r\n Signal,\r\n untracked\r\n} from \"@angular/core\";\r\n\r\ninterface SlimEffectOptions extends CreateEffectOptions {\r\n lazy?: boolean;\r\n}\r\n\r\nexport function slimEffect<T>(\r\n dependency: Signal<T>,\r\n fn: (dependency: T, onCleanup: EffectCleanupRegisterFn) => void,\r\n options?: SlimEffectOptions\r\n) {\r\n if (options?.lazy) {\r\n let warm = false;\r\n return effect((onCleanup) => {\r\n const dep = dependency();\r\n untracked(() => {\r\n if (warm) {\r\n fn(dep, onCleanup);\r\n }\r\n warm = true;\r\n });\r\n }, options);\r\n } else {\r\n return effect((onCleanup) => {\r\n const dep = dependency();\r\n untracked(() => {\r\n fn(dep, onCleanup);\r\n });\r\n }, options);\r\n }\r\n}\r\n","import {\n assertInInjectionContext,\n inject,\n Injector,\n isDevMode,\n linkedSignal,\n runInInjectionContext,\n Signal,\n ValueEqualityFn\n} from \"@angular/core\";\n\ntype Value<T> = { current: T; previous: T | null };\n\ntype PairwiseSignalOptions<T> = {\n equalityFn?: ValueEqualityFn<Value<T>>;\n injector?: Injector;\n};\n\nexport function pairwiseSignal<T>(source: Signal<T>, options?: PairwiseSignalOptions<T>) {\n if (isDevMode() && !options?.injector) {\n assertInInjectionContext(pairwiseSignal);\n }\n const assertedInjector = options?.injector ?? inject(Injector);\n\n const defaultEqualityFn = (a: Value<T>, b: Value<T>) =>\n JSON.stringify(a.previous) === JSON.stringify(b.current);\n\n return runInInjectionContext(assertedInjector, () => {\n const pair = linkedSignal<T, Value<T>>({\n source: source,\n equal: options?.equalityFn ?? defaultEqualityFn,\n computation: (current, previous) => {\n console.log(JSON.stringify(previous) === JSON.stringify(current));\n return {\n current,\n previous: previous?.value.current ?? null\n };\n }\n });\n\n return pair.asReadonly();\n });\n}\n","import { Component, computed, input, ChangeDetectionStrategy } from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\nimport { KeyValuePipe } from \"@angular/common\";\n\n@Component({\n selector: \"ngx-reactive-form-error-message\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [KeyValuePipe],\n template: `\n @for (item of finalErrorsWithCodeAndMessage() | keyvalue; track item.key) {\n @if (formControlToBind().errors?.[item.key]) {\n <small [class]=\"cssClass()\">{{ item.value }}</small>\n }\n }\n `\n})\nexport class ReactiveFormErrorMessageComponent {\n readonly formControlToBind = input.required<FormControl>();\n readonly formControlLabel = input.required<string>();\n readonly cssClass = input<string>(\"\");\n readonly customErrors = input<Record<string, string>>();\n\n protected readonly finalErrorsWithCodeAndMessage = computed(() => {\n const label = this.formControlLabel();\n const customKv = this.customErrors() ?? {};\n\n return {\n required: `${label} is required.`,\n maxlength: `${label} must be smaller.`,\n minlength: `${label} must be bigger.`,\n min: `${label} must be bigger.`,\n max: `${label} must be smaller.`,\n email: `${label} must be a valid email.`,\n pattern: `${label} is not valid.`,\n ...customKv\n };\n });\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/types/ngx-extra.d.ts
CHANGED
|
File without changes
|