@elementar-rt/components 0.6.57 → 0.6.58
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/fesm2022/elementar-rt-components-alert.mjs +1 -0
- package/fesm2022/elementar-rt-components-alert.mjs.map +1 -1
- package/fesm2022/elementar-rt-components-comment-editor.mjs +4 -2
- package/fesm2022/elementar-rt-components-comment-editor.mjs.map +1 -1
- package/fesm2022/elementar-rt-components-layout.mjs +11 -6
- package/fesm2022/elementar-rt-components-layout.mjs.map +1 -1
- package/fesm2022/elementar-rt-components-pin-input.mjs +5 -5
- package/fesm2022/elementar-rt-components-pin-input.mjs.map +1 -1
- package/fesm2022/elementar-rt-components-segmented.mjs +3 -0
- package/fesm2022/elementar-rt-components-segmented.mjs.map +1 -1
- package/fesm2022/elementar-rt-components-splash-screen.mjs +11 -3
- package/fesm2022/elementar-rt-components-splash-screen.mjs.map +1 -1
- package/fesm2022/elementar-rt-components-text-editor.mjs +4 -2
- package/fesm2022/elementar-rt-components-text-editor.mjs.map +1 -1
- package/fesm2022/elementar-rt-components-tree.mjs +1 -1
- package/fesm2022/elementar-rt-components-tree.mjs.map +1 -1
- package/fesm2022/elementar-rt-components-upload.mjs +3 -1
- package/fesm2022/elementar-rt-components-upload.mjs.map +1 -1
- package/layout/index.d.ts +3 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"elementar-rt-components-layout.mjs","sources":["../../../projects/components/layout/src/types.ts","../../../projects/components/layout/src/layout/layout.component.ts","../../../projects/components/layout/src/layout/layout.component.html","../../../projects/components/layout/src/layout-header/layout-header.component.ts","../../../projects/components/layout/src/layout-header/layout-header.component.html","../../../projects/components/layout/src/layout-body/layout-body.component.ts","../../../projects/components/layout/src/layout-body/layout-body.component.html","../../../projects/components/layout/src/layout-footer/layout-footer.component.ts","../../../projects/components/layout/src/layout-footer/layout-footer.component.html","../../../projects/components/layout/src/layout-topbar/layout-topbar.component.ts","../../../projects/components/layout/src/layout-topbar/layout-topbar.component.html","../../../projects/components/layout/src/layout.store.ts","../../../projects/components/layout/src/layout-sidebar/layout-sidebar.component.ts","../../../projects/components/layout/src/layout-sidebar/layout-sidebar.component.html","../../../projects/components/layout/src/layout-aside/layout-aside.component.ts","../../../projects/components/layout/src/layout-aside/layout-aside.component.html","../../../projects/components/layout/src/layout-api.service.ts","../../../projects/components/layout/elementar-rt-components-layout.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nexport const LAYOUT = new InjectionToken('LAYOUT');\n\nexport interface LayoutSidebarVisibilityChange {\n layoutId: string;\n shown: boolean;\n}\n","import { booleanAttribute, Component, input } from '@angular/core';\nimport { LAYOUT } from '../types';\n\nlet nextId = 0;\n\n@Component({\n selector: 'emr-layout',\n exportAs: 'emrLayout',\n standalone: true,\n templateUrl: './layout.component.html',\n styleUrl: './layout.component.scss',\n providers: [\n {\n provide: LAYOUT,\n useExisting: LayoutComponent\n }\n ],\n host: {\n 'class': 'emr-layout',\n '[class.is-window-mode]': 'windowMode()'\n }\n})\nexport class LayoutComponent {\n layoutId = input<string>(`layout-${nextId++}`);\n windowMode = input(false, {\n transform: booleanAttribute\n });\n}\n","<ng-content select=\"emr-layout-topbar\"/>\n<ng-content select=\"emr-layout-header\"/>\n<div class=\"body\">\n <ng-content select=\"emr-layout-sidebar\"/>\n <div class=\"content\">\n <ng-content/>\n </div>\n <ng-content select=\"emr-layout-aside\"/>\n</div>\n<ng-content select=\"emr-layout-footer\"/>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'emr-layout-header',\n exportAs: 'emrLayoutHeader',\n templateUrl: './layout-header.component.html',\n styleUrl: './layout-header.component.scss',\n host: {\n 'class': 'emr-layout-header',\n }\n})\nexport class LayoutHeaderComponent {\n\n}\n","<ng-content></ng-content>\n","import { booleanAttribute, Component, ElementRef, inject, input, Input, OnInit, PLATFORM_ID } from '@angular/core';\nimport { NavigationStart, Router } from '@angular/router';\nimport { filter } from 'rxjs';\nimport { isPlatformServer } from '@angular/common';\nimport { CdkScrollable } from '@angular/cdk/overlay';\n\n@Component({\n selector: 'emr-layout-body',\n exportAs: 'emrLayoutBody',\n templateUrl: './layout-body.component.html',\n styleUrl: './layout-body.component.scss',\n hostDirectives: [\n CdkScrollable\n ],\n host: {\n 'class': 'emr-layout-body emr-scroll-lg'\n }\n})\nexport class LayoutBodyComponent implements OnInit {\n private _router = inject(Router);\n private _elementRef = inject(ElementRef);\n private _platformId = inject(PLATFORM_ID);\n\n autoscrollToTop = input(true, {\n transform: booleanAttribute\n });\n\n ngOnInit() {\n // Scroll a page to top if url changed\n this._router.events\n .pipe(\n filter(event=> event instanceof NavigationStart)\n )\n .subscribe(() => {\n if (!this.autoscrollToTop()) {\n return;\n }\n\n if (isPlatformServer(this._platformId)) {\n return;\n }\n\n this._elementRef.nativeElement.scrollTo({\n top: 0,\n left: 0\n });\n })\n ;\n }\n}\n","<ng-content/>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'emr-layout-footer',\n exportAs: 'emrLayoutFooter',\n templateUrl: './layout-footer.component.html',\n styleUrl: './layout-footer.component.scss',\n host: {\n 'class': 'emr-layout-footer',\n }\n})\nexport class LayoutFooterComponent {\n\n}\n","<ng-content></ng-content>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'emr-layout-topbar',\n exportAs: 'emrLayoutTopbar',\n templateUrl: './layout-topbar.component.html',\n styleUrl: './layout-topbar.component.scss',\n host: {\n 'class': 'emr-layout-topbar'\n }\n})\nexport class LayoutTopbarComponent {\n\n}\n","<ng-content></ng-content>\n","import { patchState, signalStore, withMethods, withState } from '@ngrx/signals';\n\ntype VisibilityState = {\n [propName: string]: boolean;\n};\n\nconst initialState: VisibilityState = {\n root: true\n};\n\nexport const LayoutSidebarStore = signalStore(\n { providedIn: 'root' },\n withState(initialState),\n withMethods((store) => ({\n showSidebarVisibility(layoutId: string, isShown: boolean): void {\n patchState(store, {\n [layoutId]: isShown\n });\n }\n }))\n);\n","import { Component, computed, inject } from '@angular/core';\nimport { LAYOUT } from '../types';\nimport { LayoutComponent } from '../layout/layout.component';\nimport { LayoutSidebarStore } from '../layout.store';\n\n@Component({\n selector: 'emr-layout-sidebar',\n exportAs: 'emrLayoutSidebar',\n templateUrl: './layout-sidebar.component.html',\n styleUrl: './layout-sidebar.component.scss',\n host: {\n 'class': 'emr-layout-sidebar',\n '[class.is-hidden]': '!_isShown()'\n }\n})\nexport class LayoutSidebarComponent {\n private _parent = inject<LayoutComponent>(LAYOUT);\n private _layoutSidebarStore = inject<any>(LayoutSidebarStore);\n\n protected _isShown = computed<boolean>(() => {\n if (this._parent.layoutId() in this._layoutSidebarStore) {\n return this._layoutSidebarStore[this._parent.layoutId()]();\n }\n\n return true;\n });\n}\n","<ng-content/>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'emr-layout-aside',\n exportAs: 'emrLayoutAside',\n templateUrl: './layout-aside.component.html',\n styleUrl: './layout-aside.component.scss',\n host: {\n 'class': 'emr-layout-aside',\n }\n})\nexport class LayoutAsideComponent {\n\n}\n","<ng-content/>\n","import { EventEmitter, inject, Injectable } from '@angular/core';\nimport { LayoutSidebarVisibilityChange } from './types';\nimport { LayoutSidebarStore } from './layout.store';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LayoutApiService {\n private _layoutSidebarStore = inject<any>(LayoutSidebarStore);\n readonly sidebarVisibility = new EventEmitter<LayoutSidebarVisibilityChange>();\n\n hideSidebar(layoutId: string): void {\n this._layoutSidebarStore.showSidebarVisibility(layoutId, false);\n this.sidebarVisibility.emit({\n layoutId,\n shown: false\n });\n }\n\n showSidebar(layoutId: string): void {\n this._layoutSidebarStore.showSidebarVisibility(layoutId, true);\n this.sidebarVisibility.emit({\n layoutId,\n shown: true\n });\n }\n\n toggleSidebar(layoutId: string): void {\n this.isSidebarShown(layoutId) ? this.hideSidebar(layoutId) : this.showSidebar(layoutId);\n }\n\n isSidebarShown(layoutId: string): boolean {\n return this._layoutSidebarStore[layoutId]();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"elementar-rt-components-layout.mjs","sources":["../../../projects/components/layout/src/types.ts","../../../projects/components/layout/src/layout/layout.component.ts","../../../projects/components/layout/src/layout/layout.component.html","../../../projects/components/layout/src/layout-header/layout-header.component.ts","../../../projects/components/layout/src/layout-header/layout-header.component.html","../../../projects/components/layout/src/layout-body/layout-body.component.ts","../../../projects/components/layout/src/layout-body/layout-body.component.html","../../../projects/components/layout/src/layout-footer/layout-footer.component.ts","../../../projects/components/layout/src/layout-footer/layout-footer.component.html","../../../projects/components/layout/src/layout-topbar/layout-topbar.component.ts","../../../projects/components/layout/src/layout-topbar/layout-topbar.component.html","../../../projects/components/layout/src/layout.store.ts","../../../projects/components/layout/src/layout-sidebar/layout-sidebar.component.ts","../../../projects/components/layout/src/layout-sidebar/layout-sidebar.component.html","../../../projects/components/layout/src/layout-aside/layout-aside.component.ts","../../../projects/components/layout/src/layout-aside/layout-aside.component.html","../../../projects/components/layout/src/layout-api.service.ts","../../../projects/components/layout/elementar-rt-components-layout.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nexport const LAYOUT = new InjectionToken('LAYOUT');\n\nexport interface LayoutSidebarVisibilityChange {\n layoutId: string;\n shown: boolean;\n}\n","import { booleanAttribute, Component, input } from '@angular/core';\nimport { LAYOUT } from '../types';\n\nlet nextId = 0;\n\n@Component({\n selector: 'emr-layout',\n exportAs: 'emrLayout',\n standalone: true,\n templateUrl: './layout.component.html',\n styleUrl: './layout.component.scss',\n providers: [\n {\n provide: LAYOUT,\n useExisting: LayoutComponent\n }\n ],\n host: {\n 'class': 'emr-layout',\n '[class.is-window-mode]': 'windowMode()'\n }\n})\nexport class LayoutComponent {\n layoutId = input<string>(`layout-${nextId++}`);\n windowMode = input(false, {\n transform: booleanAttribute\n });\n}\n","<ng-content select=\"emr-layout-topbar\"/>\n<ng-content select=\"emr-layout-header\"/>\n<div class=\"body\">\n <ng-content select=\"emr-layout-sidebar\"/>\n <div class=\"content\">\n <ng-content/>\n </div>\n <ng-content select=\"emr-layout-aside\"/>\n</div>\n<ng-content select=\"emr-layout-footer\"/>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'emr-layout-header',\n exportAs: 'emrLayoutHeader',\n templateUrl: './layout-header.component.html',\n styleUrl: './layout-header.component.scss',\n host: {\n 'class': 'emr-layout-header',\n }\n})\nexport class LayoutHeaderComponent {\n\n}\n","<ng-content></ng-content>\n","import { booleanAttribute, Component, ElementRef, inject, input, Input, OnInit, PLATFORM_ID } from '@angular/core';\nimport { NavigationStart, Router } from '@angular/router';\nimport { filter } from 'rxjs';\nimport { isPlatformServer } from '@angular/common';\nimport { CdkScrollable } from '@angular/cdk/overlay';\n\n@Component({\n selector: 'emr-layout-body',\n exportAs: 'emrLayoutBody',\n templateUrl: './layout-body.component.html',\n styleUrl: './layout-body.component.scss',\n hostDirectives: [\n CdkScrollable\n ],\n host: {\n 'class': 'emr-layout-body emr-scroll-lg'\n }\n})\nexport class LayoutBodyComponent implements OnInit {\n private _router = inject(Router);\n private _elementRef = inject(ElementRef);\n private _platformId = inject(PLATFORM_ID);\n\n autoscrollToTop = input(true, {\n transform: booleanAttribute\n });\n\n ngOnInit() {\n // Scroll a page to top if url changed\n this._router.events\n .pipe(\n filter(event=> event instanceof NavigationStart)\n )\n .subscribe(() => {\n if (!this.autoscrollToTop()) {\n return;\n }\n\n if (isPlatformServer(this._platformId)) {\n return;\n }\n\n this._elementRef.nativeElement.scrollTo({\n top: 0,\n left: 0\n });\n })\n ;\n }\n}\n","<ng-content/>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'emr-layout-footer',\n exportAs: 'emrLayoutFooter',\n templateUrl: './layout-footer.component.html',\n styleUrl: './layout-footer.component.scss',\n host: {\n 'class': 'emr-layout-footer',\n }\n})\nexport class LayoutFooterComponent {\n\n}\n","<ng-content></ng-content>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'emr-layout-topbar',\n exportAs: 'emrLayoutTopbar',\n templateUrl: './layout-topbar.component.html',\n styleUrl: './layout-topbar.component.scss',\n host: {\n 'class': 'emr-layout-topbar'\n }\n})\nexport class LayoutTopbarComponent {\n\n}\n","<ng-content></ng-content>\n","import { patchState, signalStore, withMethods, withState } from '@ngrx/signals';\n\ninterface VisibilityState {\n visibility: Record<string, boolean>;\n}\n\nconst initialState: VisibilityState = {\n visibility: { root: true }\n};\n\nexport const LayoutSidebarStore = signalStore(\n { providedIn: 'root' },\n withState(initialState),\n withMethods((store) => ({\n // `visibility` is the only key declared in the initial state, so patching\n // a dynamic top-level key (e.g. patchState(store, { [layoutId]: isShown }))\n // would be silently ignored by ngrx/signals for any layoutId other than\n // the one seeded up front. Keeping per-layout visibility inside a single\n // `visibility` record keeps every layoutId reactive.\n showSidebarVisibility(layoutId: string, isShown: boolean): void {\n patchState(store, {\n visibility: { ...store.visibility(), [layoutId]: isShown }\n });\n },\n isVisible(layoutId: string): boolean {\n return store.visibility()[layoutId] ?? true;\n }\n }))\n);\n","import { Component, computed, inject } from '@angular/core';\nimport { LAYOUT } from '../types';\nimport { LayoutComponent } from '../layout/layout.component';\nimport { LayoutSidebarStore } from '../layout.store';\n\n@Component({\n selector: 'emr-layout-sidebar',\n exportAs: 'emrLayoutSidebar',\n templateUrl: './layout-sidebar.component.html',\n styleUrl: './layout-sidebar.component.scss',\n host: {\n 'class': 'emr-layout-sidebar',\n '[class.is-hidden]': '!_isShown()'\n }\n})\nexport class LayoutSidebarComponent {\n private _parent = inject<LayoutComponent>(LAYOUT);\n private _layoutSidebarStore = inject(LayoutSidebarStore);\n\n protected _isShown = computed<boolean>(() => {\n return this._layoutSidebarStore.isVisible(this._parent.layoutId());\n });\n}\n","<ng-content/>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'emr-layout-aside',\n exportAs: 'emrLayoutAside',\n templateUrl: './layout-aside.component.html',\n styleUrl: './layout-aside.component.scss',\n host: {\n 'class': 'emr-layout-aside',\n }\n})\nexport class LayoutAsideComponent {\n\n}\n","<ng-content/>\n","import { EventEmitter, inject, Injectable } from '@angular/core';\nimport { LayoutSidebarVisibilityChange } from './types';\nimport { LayoutSidebarStore } from './layout.store';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LayoutApiService {\n private _layoutSidebarStore = inject<any>(LayoutSidebarStore);\n readonly sidebarVisibility = new EventEmitter<LayoutSidebarVisibilityChange>();\n\n hideSidebar(layoutId: string): void {\n this._layoutSidebarStore.showSidebarVisibility(layoutId, false);\n this.sidebarVisibility.emit({\n layoutId,\n shown: false\n });\n }\n\n showSidebar(layoutId: string): void {\n this._layoutSidebarStore.showSidebarVisibility(layoutId, true);\n this.sidebarVisibility.emit({\n layoutId,\n shown: true\n });\n }\n\n toggleSidebar(layoutId: string): void {\n this.isSidebarShown(layoutId) ? this.hideSidebar(layoutId) : this.showSidebar(layoutId);\n }\n\n isSidebarShown(layoutId: string): boolean {\n return this._layoutSidebarStore[layoutId]();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { inject, ElementRef, Renderer2, input, output, Directive, viewChildren, numberAttribute, booleanAttribute, computed, forwardRef, Component } from '@angular/core';
|
|
2
|
+
import { inject, ElementRef, Renderer2, input, output, Directive, viewChildren, numberAttribute, booleanAttribute, signal, computed, forwardRef, Component } from '@angular/core';
|
|
3
3
|
import * as i1 from '@angular/forms';
|
|
4
4
|
import { FormBuilder, Validators, ReactiveFormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
5
5
|
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
@@ -58,9 +58,9 @@ class PinInputComponent {
|
|
|
58
58
|
transform: booleanAttribute
|
|
59
59
|
}]));
|
|
60
60
|
form;
|
|
61
|
-
_disabled = false;
|
|
61
|
+
_disabled = signal(false, ...(ngDevMode ? [{ debugName: "_disabled" }] : []));
|
|
62
62
|
isDisabled = computed(() => {
|
|
63
|
-
return this._disabled || this.disabled();
|
|
63
|
+
return this._disabled() || this.disabled();
|
|
64
64
|
}, ...(ngDevMode ? [{ debugName: "isDisabled" }] : []));
|
|
65
65
|
onChange = () => { };
|
|
66
66
|
onTouched = () => { };
|
|
@@ -83,7 +83,7 @@ class PinInputComponent {
|
|
|
83
83
|
this.onTouched = fn;
|
|
84
84
|
}
|
|
85
85
|
setDisabledState(isDisabled) {
|
|
86
|
-
this._disabled
|
|
86
|
+
this._disabled.set(coerceBooleanProperty(isDisabled));
|
|
87
87
|
}
|
|
88
88
|
writeValue(value) {
|
|
89
89
|
if (!value) {
|
|
@@ -95,7 +95,7 @@ class PinInputComponent {
|
|
|
95
95
|
value = String(value);
|
|
96
96
|
for (let i = 0; i < value.length; i++) {
|
|
97
97
|
const control = this.controls[i];
|
|
98
|
-
if (control && value[i].match(this.acceptOnly)) {
|
|
98
|
+
if (control && value[i].match(this.acceptOnly())) {
|
|
99
99
|
control.setValue(value[i]);
|
|
100
100
|
}
|
|
101
101
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"elementar-rt-components-pin-input.mjs","sources":["../../../projects/components/pin-input/src/pin-input.directive.ts","../../../projects/components/pin-input/src/pin-input/pin-input.component.ts","../../../projects/components/pin-input/src/pin-input/pin-input.component.html","../../../projects/components/pin-input/elementar-rt-components-pin-input.ts"],"sourcesContent":["import {\n Directive,\n ElementRef,\n inject, input,\n OnInit, output,\n Renderer2\n} from '@angular/core';\n\n@Directive({\n selector: '[emrPinInput]',\n exportAs: 'emrPinInput',\n host: {\n 'class': 'emr-pin-input',\n '(focus)': '_handleFocus()',\n '(blur)': '_handleBlur()'\n }\n})\nexport class PinInputDirective implements OnInit {\n private _elementRef = inject(ElementRef);\n private _renderer = inject(Renderer2);\n private _placeholder: string;\n\n index = input<number>();\n acceptOnly = input<RegExp>();\n\n readonly valuePaste = output<string>();\n\n get api() {\n return {\n focus: () => {\n this._elementRef.nativeElement.focus();\n },\n nativeElement: this._elementRef.nativeElement\n }\n }\n\n ngOnInit() {\n this._placeholder = (this._elementRef.nativeElement as HTMLInputElement).getAttribute('placeholder') || '';\n }\n\n protected _handleFocus() {\n this._renderer.removeAttribute(this._elementRef.nativeElement, 'placeholder');\n }\n\n protected _handleBlur() {\n this._renderer.setAttribute(this._elementRef.nativeElement, 'placeholder', this._placeholder);\n }\n}\n","import {\n booleanAttribute,\n Component, computed,\n forwardRef,\n inject, input,\n numberAttribute,\n OnInit,\n viewChildren\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n FormArray,\n FormBuilder,\n FormGroup,\n NG_VALUE_ACCESSOR,\n Validators,\n ReactiveFormsModule\n} from '@angular/forms';\nimport { PinInputDirective } from '../pin-input.directive';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { MatFormField } from '@angular/material/form-field';\nimport { MatInput } from '@angular/material/input';\n\n@Component({\n selector: 'emr-pin-input',\n exportAs: 'emrPinInput',\n imports: [\n ReactiveFormsModule,\n MatFormField,\n MatInput,\n PinInputDirective\n ],\n templateUrl: './pin-input.component.html',\n styleUrl: './pin-input.component.scss',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => PinInputComponent),\n multi: true\n }\n ],\n host: {\n 'class': 'emr-pin-input',\n '[class.is-disabled]': 'isDisabled()',\n '(paste)': '_valuePaste($event)',\n '(keydown)': '_handleKeyDown($event)',\n '(keyup)': '_handleKeyUp($event)',\n }\n})\nexport class PinInputComponent implements ControlValueAccessor, OnInit {\n private _fb = inject(FormBuilder);\n readonly inputs = viewChildren(PinInputDirective);\n\n length = input(4, {\n transform: numberAttribute\n });\n placeholder = input('');\n acceptOnly = input(/^[0-9]+$/);\n disabled = input(false, {\n transform: booleanAttribute\n });\n\n protected form: FormGroup;\n private _disabled = false;\n protected isDisabled = computed(() => {\n return this._disabled || this.disabled();\n })\n\n onChange: any = () => {};\n onTouched: any = () => {};\n\n get controls(): any[] {\n return (this.form.get('value') as FormArray).controls;\n }\n\n ngOnInit() {\n const inputs = [];\n\n for (let i = 0; i < this.length(); i++) {\n inputs.push(\n this._fb.control({ value: '', disabled: this.disabled() }, [Validators.required])\n );\n }\n\n this.form = this._fb.group({\n value: this._fb.array(inputs)\n });\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this._disabled = coerceBooleanProperty(isDisabled);\n }\n\n writeValue(value: any): void {\n if (!value) {\n this.controls.forEach(control => {\n control.setValue('');\n });\n\n return;\n }\n\n value = String(value);\n\n for (let i = 0; i < value.length; i++) {\n const control = this.controls[i];\n\n if (control && value[i].match(this.acceptOnly)) {\n control.setValue(value[i]);\n }\n }\n }\n\n protected _valuePaste(event: ClipboardEvent) {\n event.preventDefault();\n event.stopPropagation();\n // const value = event.clipboardData?.getData('text/plain');\n }\n\n protected _handleKeyDown(event: KeyboardEvent) {\n if (event.key === 'ArrowRight' || event.key === 'ArrowLeft') {\n return;\n }\n\n if (event.key === 'Delete' || event.key === 'Backspace' || event.key === 'Tab') {\n const element = event.target as HTMLInputElement;\n\n if (event.key === 'Backspace' && !element.value) {\n this.inputs().forEach((inputDirective, index) => {\n const element = event.target as HTMLInputElement;\n\n if (inputDirective.api.nativeElement === element) {\n const prevControl = this.inputs().at(index - 1);\n\n if (prevControl) {\n prevControl.api.focus();\n }\n }\n });\n }\n\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n }\n\n protected _handleKeyUp(event: KeyboardEvent) {\n if (event.key === 'ArrowRight' || event.key === 'ArrowLeft') {\n return;\n }\n\n if (event.key === 'Shift' || (event.keyCode >= 112 && event.keyCode <= 123)) {\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n\n if (event.key === 'Delete' || event.key === 'Backspace' || event.key === 'Tab') {\n this.onChange(+this.form.value.value.join(''));\n return;\n }\n\n if (!event.key.match(this.acceptOnly())) {\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n\n this.inputs().forEach((inputDirective, index) => {\n const element = event.target as HTMLInputElement;\n\n if (inputDirective.api.nativeElement === element) {\n const control = this.controls[index];\n control.setValue(event.key);\n const nextControl = this.inputs().at(index + 1);\n\n if (nextControl) {\n nextControl.api.focus();\n }\n }\n });\n this.onChange(+this.form.value.value.join(''));\n }\n}\n","<div [formGroup]=\"form\">\n <div formArrayName=\"value\" class=\"inputs\">\n @for (control of controls; track control; let index = $index) {\n <div class=\"input\">\n <mat-form-field>\n <input type=\"text\" matInput emrPinInput\n [formControl]=\"control\"\n [acceptOnly]=\"acceptOnly()\"\n [placeholder]=\"placeholder()\"\n [attr.disabled]=\"isDisabled() || null\" maxlength=\"1\" >\n </mat-form-field>\n </div>\n }\n </div>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"elementar-rt-components-pin-input.mjs","sources":["../../../projects/components/pin-input/src/pin-input.directive.ts","../../../projects/components/pin-input/src/pin-input/pin-input.component.ts","../../../projects/components/pin-input/src/pin-input/pin-input.component.html","../../../projects/components/pin-input/elementar-rt-components-pin-input.ts"],"sourcesContent":["import {\n Directive,\n ElementRef,\n inject, input,\n OnInit, output,\n Renderer2\n} from '@angular/core';\n\n@Directive({\n selector: '[emrPinInput]',\n exportAs: 'emrPinInput',\n host: {\n 'class': 'emr-pin-input',\n '(focus)': '_handleFocus()',\n '(blur)': '_handleBlur()'\n }\n})\nexport class PinInputDirective implements OnInit {\n private _elementRef = inject(ElementRef);\n private _renderer = inject(Renderer2);\n private _placeholder: string;\n\n index = input<number>();\n acceptOnly = input<RegExp>();\n\n readonly valuePaste = output<string>();\n\n get api() {\n return {\n focus: () => {\n this._elementRef.nativeElement.focus();\n },\n nativeElement: this._elementRef.nativeElement\n }\n }\n\n ngOnInit() {\n this._placeholder = (this._elementRef.nativeElement as HTMLInputElement).getAttribute('placeholder') || '';\n }\n\n protected _handleFocus() {\n this._renderer.removeAttribute(this._elementRef.nativeElement, 'placeholder');\n }\n\n protected _handleBlur() {\n this._renderer.setAttribute(this._elementRef.nativeElement, 'placeholder', this._placeholder);\n }\n}\n","import {\n booleanAttribute,\n Component, computed,\n forwardRef,\n inject, input,\n numberAttribute,\n OnInit,\n signal,\n viewChildren\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n FormArray,\n FormBuilder,\n FormGroup,\n NG_VALUE_ACCESSOR,\n Validators,\n ReactiveFormsModule\n} from '@angular/forms';\nimport { PinInputDirective } from '../pin-input.directive';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { MatFormField } from '@angular/material/form-field';\nimport { MatInput } from '@angular/material/input';\n\n@Component({\n selector: 'emr-pin-input',\n exportAs: 'emrPinInput',\n imports: [\n ReactiveFormsModule,\n MatFormField,\n MatInput,\n PinInputDirective\n ],\n templateUrl: './pin-input.component.html',\n styleUrl: './pin-input.component.scss',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => PinInputComponent),\n multi: true\n }\n ],\n host: {\n 'class': 'emr-pin-input',\n '[class.is-disabled]': 'isDisabled()',\n '(paste)': '_valuePaste($event)',\n '(keydown)': '_handleKeyDown($event)',\n '(keyup)': '_handleKeyUp($event)',\n }\n})\nexport class PinInputComponent implements ControlValueAccessor, OnInit {\n private _fb = inject(FormBuilder);\n readonly inputs = viewChildren(PinInputDirective);\n\n length = input(4, {\n transform: numberAttribute\n });\n placeholder = input('');\n acceptOnly = input(/^[0-9]+$/);\n disabled = input(false, {\n transform: booleanAttribute\n });\n\n protected form: FormGroup;\n private _disabled = signal(false);\n protected isDisabled = computed(() => {\n return this._disabled() || this.disabled();\n })\n\n onChange: any = () => {};\n onTouched: any = () => {};\n\n get controls(): any[] {\n return (this.form.get('value') as FormArray).controls;\n }\n\n ngOnInit() {\n const inputs = [];\n\n for (let i = 0; i < this.length(); i++) {\n inputs.push(\n this._fb.control({ value: '', disabled: this.disabled() }, [Validators.required])\n );\n }\n\n this.form = this._fb.group({\n value: this._fb.array(inputs)\n });\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this._disabled.set(coerceBooleanProperty(isDisabled));\n }\n\n writeValue(value: any): void {\n if (!value) {\n this.controls.forEach(control => {\n control.setValue('');\n });\n\n return;\n }\n\n value = String(value);\n\n for (let i = 0; i < value.length; i++) {\n const control = this.controls[i];\n\n if (control && value[i].match(this.acceptOnly())) {\n control.setValue(value[i]);\n }\n }\n }\n\n protected _valuePaste(event: ClipboardEvent) {\n event.preventDefault();\n event.stopPropagation();\n // const value = event.clipboardData?.getData('text/plain');\n }\n\n protected _handleKeyDown(event: KeyboardEvent) {\n if (event.key === 'ArrowRight' || event.key === 'ArrowLeft') {\n return;\n }\n\n if (event.key === 'Delete' || event.key === 'Backspace' || event.key === 'Tab') {\n const element = event.target as HTMLInputElement;\n\n if (event.key === 'Backspace' && !element.value) {\n this.inputs().forEach((inputDirective, index) => {\n const element = event.target as HTMLInputElement;\n\n if (inputDirective.api.nativeElement === element) {\n const prevControl = this.inputs().at(index - 1);\n\n if (prevControl) {\n prevControl.api.focus();\n }\n }\n });\n }\n\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n }\n\n protected _handleKeyUp(event: KeyboardEvent) {\n if (event.key === 'ArrowRight' || event.key === 'ArrowLeft') {\n return;\n }\n\n if (event.key === 'Shift' || (event.keyCode >= 112 && event.keyCode <= 123)) {\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n\n if (event.key === 'Delete' || event.key === 'Backspace' || event.key === 'Tab') {\n this.onChange(+this.form.value.value.join(''));\n return;\n }\n\n if (!event.key.match(this.acceptOnly())) {\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n\n this.inputs().forEach((inputDirective, index) => {\n const element = event.target as HTMLInputElement;\n\n if (inputDirective.api.nativeElement === element) {\n const control = this.controls[index];\n control.setValue(event.key);\n const nextControl = this.inputs().at(index + 1);\n\n if (nextControl) {\n nextControl.api.focus();\n }\n }\n });\n this.onChange(+this.form.value.value.join(''));\n }\n}\n","<div [formGroup]=\"form\">\n <div formArrayName=\"value\" class=\"inputs\">\n @for (control of controls; track control; let index = $index) {\n <div class=\"input\">\n <mat-form-field>\n <input type=\"text\" matInput emrPinInput\n [formControl]=\"control\"\n [acceptOnly]=\"acceptOnly()\"\n [placeholder]=\"placeholder()\"\n [attr.disabled]=\"isDisabled() || null\" maxlength=\"1\" >\n </mat-form-field>\n </div>\n }\n </div>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -112,6 +112,9 @@ class SegmentedButtonComponent {
|
|
|
112
112
|
};
|
|
113
113
|
}
|
|
114
114
|
_handleClick() {
|
|
115
|
+
if (this.disabled()) {
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
115
118
|
this._segmented.api.select(this.value());
|
|
116
119
|
}
|
|
117
120
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: SegmentedButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"elementar-rt-components-segmented.mjs","sources":["../../../projects/components/segmented/src/types.ts","../../../projects/components/segmented/src/segmented/segmented.component.ts","../../../projects/components/segmented/src/segmented/segmented.component.html","../../../projects/components/segmented/src/segmented-button/segmented-button.component.ts","../../../projects/components/segmented/src/segmented-button/segmented-button.component.html","../../../projects/components/segmented/src/segmented-icon.directive.ts","../../../projects/components/segmented/elementar-rt-components-segmented.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nexport const EMR_SEGMENTED = new InjectionToken('EMR_SEGMENTED');\nexport type SegmentedTriggerSize = 'sm' | 'default' | 'lg' | string;\n","import {\n booleanAttribute,\n ChangeDetectorRef,\n Component, effect,\n ElementRef,\n forwardRef,\n inject, input,\n OnChanges,\n OnInit, output,\n Renderer2, SimpleChanges\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { SegmentedTriggerSize, EMR_SEGMENTED } from '../types';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\n\n@Component({\n selector: 'emr-segmented',\n exportAs: 'emrSegmented',\n templateUrl: './segmented.component.html',\n styleUrl: './segmented.component.scss',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SegmentedComponent),\n multi: true\n },\n {\n provide: EMR_SEGMENTED,\n useExisting: forwardRef(() => SegmentedComponent)\n }\n ],\n host: {\n 'class': 'emr-segmented',\n '[class.is-disabled]': 'disabled() || _disabled || null',\n },\n})\nexport class SegmentedComponent implements OnInit, OnChanges, ControlValueAccessor {\n private _elementRef = inject(ElementRef);\n private _renderer = inject(Renderer2);\n private _cdr = inject(ChangeDetectorRef);\n protected _disabled = false;\n\n value = input();\n disabled = input(false, {\n transform: booleanAttribute\n });\n size = input<SegmentedTriggerSize>('default');\n\n readonly valueChange = output<any>();\n\n private _selectedValue = new SelectionModel<any>(false, []);\n\n _onChange: any = () => {};\n _onTouched: any = () => {};\n\n get api() {\n return {\n isSelected: (value: any) => this._selectedValue.isSelected(value),\n select: (value: any) => this._select(value)\n };\n }\n\n constructor() {\n effect(() => {\n this._selectedValue.select(this.value());\n });\n }\n\n ngOnInit() {\n this._renderer.setAttribute(this._elementRef.nativeElement, 'emr-segmented-size', this.size());\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['size']) {\n this._renderer.setAttribute(this._elementRef.nativeElement, 'emr-segmented-size', this.size());\n }\n\n if (changes['selectedValue']) {\n this._selectedValue.select(changes['selectedValue'].currentValue);\n }\n }\n\n writeValue(value: any): void {\n this._selectedValue.select(value ? value : []);\n this._cdr.detectChanges();\n }\n\n registerOnChange(fn: any): void {\n this._onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this._onTouched = fn;\n }\n\n setDisabledState(isDisabled: BooleanInput): void {\n this._disabled = coerceBooleanProperty(isDisabled);\n }\n\n private _select(value: any): void {\n this._selectedValue.select(value);\n this.valueChange.emit(value);\n this._onChange(value);\n this._onTouched(value);\n }\n}\n","<ng-content select=\"emr-segmented-button,[emr-segmented-button]\"/>\n","import {\n booleanAttribute,\n Component,\n inject,\n input\n} from '@angular/core';\nimport { EMR_SEGMENTED } from '../types';\nimport { SegmentedComponent } from '../segmented/segmented.component';\nimport { MatRipple } from '@angular/material/core';\n\n@Component({\n selector: 'emr-segmented-button,[emr-segmented-button]',\n exportAs: 'emrSegmentedButton',\n templateUrl: './segmented-button.component.html',\n styleUrl: './segmented-button.component.scss',\n hostDirectives: [\n MatRipple\n ],\n host: {\n 'class': 'emr-segmented-button',\n '[class.icon-only]': 'iconOnly()',\n '[class.is-selected]': '_isSelected',\n '[class.is-disabled]': 'disabled() || null',\n '(click)': '_handleClick()',\n }\n})\nexport class SegmentedButtonComponent {\n private _segmented = inject<SegmentedComponent>(EMR_SEGMENTED, { skipSelf: true });\n\n value = input.required<any>();\n disabled = input(false, {\n transform: booleanAttribute\n });\n iconOnly = input(false, {\n transform: booleanAttribute\n });\n\n get _isSelected(): boolean {\n return this._segmented.api.isSelected(this.value());\n }\n\n get api() {\n return {\n isSelected: () => this._isSelected\n }\n }\n\n protected _handleClick() {\n this._segmented.api.select(this.value());\n }\n}\n","<div class=\"icon\">\n <ng-content select=\"[emrSegmentedIcon]\"/>\n</div>\n<div class=\"content\">\n <ng-content/>\n</div>\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[emrSegmentedIcon]',\n exportAs: 'emrSegmentedIcon',\n host: {\n 'class': 'emr-segmented-icon'\n }\n})\nexport class SegmentedIconDirective {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"elementar-rt-components-segmented.mjs","sources":["../../../projects/components/segmented/src/types.ts","../../../projects/components/segmented/src/segmented/segmented.component.ts","../../../projects/components/segmented/src/segmented/segmented.component.html","../../../projects/components/segmented/src/segmented-button/segmented-button.component.ts","../../../projects/components/segmented/src/segmented-button/segmented-button.component.html","../../../projects/components/segmented/src/segmented-icon.directive.ts","../../../projects/components/segmented/elementar-rt-components-segmented.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nexport const EMR_SEGMENTED = new InjectionToken('EMR_SEGMENTED');\nexport type SegmentedTriggerSize = 'sm' | 'default' | 'lg' | string;\n","import {\n booleanAttribute,\n ChangeDetectorRef,\n Component, effect,\n ElementRef,\n forwardRef,\n inject, input,\n OnChanges,\n OnInit, output,\n Renderer2, SimpleChanges\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { SegmentedTriggerSize, EMR_SEGMENTED } from '../types';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\n\n@Component({\n selector: 'emr-segmented',\n exportAs: 'emrSegmented',\n templateUrl: './segmented.component.html',\n styleUrl: './segmented.component.scss',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SegmentedComponent),\n multi: true\n },\n {\n provide: EMR_SEGMENTED,\n useExisting: forwardRef(() => SegmentedComponent)\n }\n ],\n host: {\n 'class': 'emr-segmented',\n '[class.is-disabled]': 'disabled() || _disabled || null',\n },\n})\nexport class SegmentedComponent implements OnInit, OnChanges, ControlValueAccessor {\n private _elementRef = inject(ElementRef);\n private _renderer = inject(Renderer2);\n private _cdr = inject(ChangeDetectorRef);\n protected _disabled = false;\n\n value = input();\n disabled = input(false, {\n transform: booleanAttribute\n });\n size = input<SegmentedTriggerSize>('default');\n\n readonly valueChange = output<any>();\n\n private _selectedValue = new SelectionModel<any>(false, []);\n\n _onChange: any = () => {};\n _onTouched: any = () => {};\n\n get api() {\n return {\n isSelected: (value: any) => this._selectedValue.isSelected(value),\n select: (value: any) => this._select(value)\n };\n }\n\n constructor() {\n effect(() => {\n this._selectedValue.select(this.value());\n });\n }\n\n ngOnInit() {\n this._renderer.setAttribute(this._elementRef.nativeElement, 'emr-segmented-size', this.size());\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['size']) {\n this._renderer.setAttribute(this._elementRef.nativeElement, 'emr-segmented-size', this.size());\n }\n\n if (changes['selectedValue']) {\n this._selectedValue.select(changes['selectedValue'].currentValue);\n }\n }\n\n writeValue(value: any): void {\n this._selectedValue.select(value ? value : []);\n this._cdr.detectChanges();\n }\n\n registerOnChange(fn: any): void {\n this._onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this._onTouched = fn;\n }\n\n setDisabledState(isDisabled: BooleanInput): void {\n this._disabled = coerceBooleanProperty(isDisabled);\n }\n\n private _select(value: any): void {\n this._selectedValue.select(value);\n this.valueChange.emit(value);\n this._onChange(value);\n this._onTouched(value);\n }\n}\n","<ng-content select=\"emr-segmented-button,[emr-segmented-button]\"/>\n","import {\n booleanAttribute,\n Component,\n inject,\n input\n} from '@angular/core';\nimport { EMR_SEGMENTED } from '../types';\nimport { SegmentedComponent } from '../segmented/segmented.component';\nimport { MatRipple } from '@angular/material/core';\n\n@Component({\n selector: 'emr-segmented-button,[emr-segmented-button]',\n exportAs: 'emrSegmentedButton',\n templateUrl: './segmented-button.component.html',\n styleUrl: './segmented-button.component.scss',\n hostDirectives: [\n MatRipple\n ],\n host: {\n 'class': 'emr-segmented-button',\n '[class.icon-only]': 'iconOnly()',\n '[class.is-selected]': '_isSelected',\n '[class.is-disabled]': 'disabled() || null',\n '(click)': '_handleClick()',\n }\n})\nexport class SegmentedButtonComponent {\n private _segmented = inject<SegmentedComponent>(EMR_SEGMENTED, { skipSelf: true });\n\n value = input.required<any>();\n disabled = input(false, {\n transform: booleanAttribute\n });\n iconOnly = input(false, {\n transform: booleanAttribute\n });\n\n get _isSelected(): boolean {\n return this._segmented.api.isSelected(this.value());\n }\n\n get api() {\n return {\n isSelected: () => this._isSelected\n }\n }\n\n protected _handleClick() {\n if (this.disabled()) {\n return;\n }\n\n this._segmented.api.select(this.value());\n }\n}\n","<div class=\"icon\">\n <ng-content select=\"[emrSegmentedIcon]\"/>\n</div>\n<div class=\"content\">\n <ng-content/>\n</div>\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[emrSegmentedIcon]',\n exportAs: 'emrSegmentedIcon',\n host: {\n 'class': 'emr-segmented-icon'\n }\n})\nexport class SegmentedIconDirective {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -32,10 +32,15 @@ class SplashScreenComponent {
|
|
|
32
32
|
transform: numberAttribute
|
|
33
33
|
}])); // in milliseconds
|
|
34
34
|
constructor() {
|
|
35
|
-
|
|
35
|
+
let isFirstRun = true;
|
|
36
36
|
effect(() => {
|
|
37
37
|
const currentState = getState(this._store);
|
|
38
|
-
|
|
38
|
+
// Skip only the very first invocation: the component's default styles
|
|
39
|
+
// already reflect the initial state, so no imperative show/hide is
|
|
40
|
+
// needed yet. Every subsequent change must still be applied, even if
|
|
41
|
+
// it happens to match the original value (e.g. hide() then show()).
|
|
42
|
+
if (isFirstRun) {
|
|
43
|
+
isFirstRun = false;
|
|
39
44
|
return;
|
|
40
45
|
}
|
|
41
46
|
if (currentState.visible) {
|
|
@@ -58,10 +63,13 @@ class SplashScreenComponent {
|
|
|
58
63
|
});
|
|
59
64
|
}
|
|
60
65
|
ngOnInit() {
|
|
61
|
-
|
|
66
|
+
// Renderer2.setStyle() does not apply custom CSS properties (`--*`) in this
|
|
67
|
+
// Angular version; set it directly on the element's style declaration instead.
|
|
68
|
+
this._elementRef.nativeElement.style.setProperty('--emr-splash-screen-hide-animation-duration', (this.animationDuration() / 1000) + 's');
|
|
62
69
|
}
|
|
63
70
|
_show() {
|
|
64
71
|
const loaderEl = this._elementRef.nativeElement;
|
|
72
|
+
this._renderer.removeClass(loaderEl, 'hide');
|
|
65
73
|
this._renderer.setStyle(loaderEl, 'visibility', 'visible');
|
|
66
74
|
this._renderer.setStyle(loaderEl, 'zIndex', '9999999');
|
|
67
75
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"elementar-rt-components-splash-screen.mjs","sources":["../../../projects/components/splash-screen/src/splash-screen.store.ts","../../../projects/components/splash-screen/src/splash-screen/splash-screen.component.ts","../../../projects/components/splash-screen/src/splash-screen/splash-screen.component.html","../../../projects/components/splash-screen/elementar-rt-components-splash-screen.ts"],"sourcesContent":["import { patchState, signalStore, withMethods, withState } from '@ngrx/signals';\n\nexport interface SplashScreenState {\n visible: boolean;\n}\n\nconst initialState: SplashScreenState = {\n visible: true\n};\n\nexport const SplashScreenStore = signalStore(\n { providedIn: 'root' },\n withState(initialState),\n withMethods((store) => ({\n show(): void {\n patchState(store, {\n visible: true\n });\n },\n hide(): void {\n patchState(store, {\n visible: false\n });\n }\n }))\n);\n","import {\n afterNextRender,\n Component,\n effect,\n ElementRef,\n inject,\n input,\n numberAttribute,\n Renderer2\n} from '@angular/core';\nimport { getState } from '@ngrx/signals';\nimport { SplashScreenState, SplashScreenStore } from '../splash-screen.store';\nimport { filter } from 'rxjs';\nimport { NavigationEnd, Router } from '@angular/router';\n\n@Component({\n selector: 'emr-splash-screen',\n exportAs: 'emrSplashScreen',\n imports: [],\n templateUrl: './splash-screen.component.html',\n styleUrl: './splash-screen.component.scss',\n host: {\n 'class': 'emr-splash-screen',\n }\n})\nexport class SplashScreenComponent {\n private _store = inject(SplashScreenStore);\n private _renderer = inject(Renderer2);\n private _elementRef = inject(ElementRef);\n private _router = inject(Router);\n\n animationDuration = input(500, {\n transform: numberAttribute\n }); // in milliseconds\n hideDelay = input(1000, {\n transform: numberAttribute\n }); // in milliseconds\n\n constructor() {\n
|
|
1
|
+
{"version":3,"file":"elementar-rt-components-splash-screen.mjs","sources":["../../../projects/components/splash-screen/src/splash-screen.store.ts","../../../projects/components/splash-screen/src/splash-screen/splash-screen.component.ts","../../../projects/components/splash-screen/src/splash-screen/splash-screen.component.html","../../../projects/components/splash-screen/elementar-rt-components-splash-screen.ts"],"sourcesContent":["import { patchState, signalStore, withMethods, withState } from '@ngrx/signals';\n\nexport interface SplashScreenState {\n visible: boolean;\n}\n\nconst initialState: SplashScreenState = {\n visible: true\n};\n\nexport const SplashScreenStore = signalStore(\n { providedIn: 'root' },\n withState(initialState),\n withMethods((store) => ({\n show(): void {\n patchState(store, {\n visible: true\n });\n },\n hide(): void {\n patchState(store, {\n visible: false\n });\n }\n }))\n);\n","import {\n afterNextRender,\n Component,\n effect,\n ElementRef,\n inject,\n input,\n numberAttribute,\n Renderer2\n} from '@angular/core';\nimport { getState } from '@ngrx/signals';\nimport { SplashScreenState, SplashScreenStore } from '../splash-screen.store';\nimport { filter } from 'rxjs';\nimport { NavigationEnd, Router } from '@angular/router';\n\n@Component({\n selector: 'emr-splash-screen',\n exportAs: 'emrSplashScreen',\n imports: [],\n templateUrl: './splash-screen.component.html',\n styleUrl: './splash-screen.component.scss',\n host: {\n 'class': 'emr-splash-screen',\n }\n})\nexport class SplashScreenComponent {\n private _store = inject(SplashScreenStore);\n private _renderer = inject(Renderer2);\n private _elementRef = inject(ElementRef);\n private _router = inject(Router);\n\n animationDuration = input(500, {\n transform: numberAttribute\n }); // in milliseconds\n hideDelay = input(1000, {\n transform: numberAttribute\n }); // in milliseconds\n\n constructor() {\n let isFirstRun = true;\n\n effect(() => {\n const currentState = getState<SplashScreenState>(this._store);\n\n // Skip only the very first invocation: the component's default styles\n // already reflect the initial state, so no imperative show/hide is\n // needed yet. Every subsequent change must still be applied, even if\n // it happens to match the original value (e.g. hide() then show()).\n if (isFirstRun) {\n isFirstRun = false;\n return;\n }\n\n if (currentState.visible) {\n this._show();\n } else {\n this._hide();\n }\n });\n\n afterNextRender(() => {\n const subscription = this._router.events\n .pipe(\n filter(event=> event instanceof NavigationEnd)\n )\n .subscribe(() => {\n subscription.unsubscribe();\n setTimeout(() => {\n this._hide();\n subscription.unsubscribe();\n }, this.hideDelay());\n })\n ;\n });\n }\n\n ngOnInit() {\n // Renderer2.setStyle() does not apply custom CSS properties (`--*`) in this\n // Angular version; set it directly on the element's style declaration instead.\n (this._elementRef.nativeElement as HTMLElement).style.setProperty(\n '--emr-splash-screen-hide-animation-duration', (this.animationDuration() / 1000) + 's'\n );\n }\n\n private _show(): void {\n const loaderEl = this._elementRef.nativeElement as HTMLElement;\n this._renderer.removeClass(loaderEl, 'hide');\n this._renderer.setStyle(loaderEl, 'visibility', 'visible');\n this._renderer.setStyle(loaderEl, 'zIndex', '9999999');\n }\n\n private _hide(): void {\n const loaderEl = this._elementRef.nativeElement as HTMLElement;\n this._renderer.addClass(loaderEl, 'hide');\n setTimeout(() => {\n this._renderer.setStyle(loaderEl, 'visibility', 'hidden');\n this._renderer.setStyle(loaderEl, 'zIndex', '-9999999');\n }, this.animationDuration());\n }\n}\n","<div>\n <ng-content select=\"emr-text-logo,emr-image-logo\"/>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -359,8 +359,10 @@ class TextEditorComponent {
|
|
|
359
359
|
if (!this.editor) {
|
|
360
360
|
return true;
|
|
361
361
|
}
|
|
362
|
+
// Some tiptap commands (e.g. toggleLink) destructure their argument
|
|
363
|
+
// internally and throw if called with undefined, so always pass an object.
|
|
362
364
|
const canFocus = this.editor.can().chain().focus();
|
|
363
|
-
return !canFocus[command](options).run() || null;
|
|
365
|
+
return !canFocus[command](options ?? {}).run() || null;
|
|
364
366
|
}
|
|
365
367
|
ngOnDestroy() {
|
|
366
368
|
this.editor?.destroy();
|
|
@@ -370,7 +372,7 @@ class TextEditorComponent {
|
|
|
370
372
|
return;
|
|
371
373
|
}
|
|
372
374
|
const chainFocus = this.editor.chain().focus();
|
|
373
|
-
chainFocus[command](options).run();
|
|
375
|
+
chainFocus[command](options ?? {}).run();
|
|
374
376
|
}
|
|
375
377
|
_init() {
|
|
376
378
|
const extensions = [
|