@onemrvapublic/design-system 20.5.1-develop.1 → 20.5.1-develop.2
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/onemrvapublic-design-system-layout.mjs +91 -91
- package/fesm2022/onemrvapublic-design-system-layout.mjs.map +1 -1
- package/fesm2022/onemrvapublic-design-system.mjs +94 -94
- package/fesm2022/onemrvapublic-design-system.mjs.map +1 -1
- package/index.d.ts +24 -24
- package/layout/index.d.ts +24 -24
- package/package.json +24 -24
|
@@ -1,38 +1,38 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { inject,
|
|
3
|
-
import {
|
|
2
|
+
import { signal, inject, Injectable, effect, HostBinding, Input, Component, ChangeDetectorRef, TemplateRef, ContentChildren, ViewChild, Pipe, DestroyRef, ViewContainerRef, DOCUMENT, Directive, EventEmitter, isDevMode, Output, ContentChild, NgModule, ElementRef, Renderer2, HostListener, ViewEncapsulation, forwardRef, ChangeDetectionStrategy, InjectionToken, input, QueryList, output, ComponentFactoryResolver, HostAttributeToken, NgZone, RendererFactory2, ErrorHandler } from '@angular/core';
|
|
3
|
+
import { Subject, takeUntil, startWith, BehaviorSubject, of, interval, take, map, catchError, tap, mergeMap, withLatestFrom, filter as filter$1, throttle, takeWhile, switchMap, forkJoin, merge, debounceTime, combineLatest, combineLatestWith, zip, pairwise, distinctUntilChanged, ReplaySubject, Subscription, timer, NEVER, shareReplay, finalize, skip, from } from 'rxjs';
|
|
4
|
+
import { BreakpointObserver, Breakpoints, LayoutModule } from '@angular/cdk/layout';
|
|
4
5
|
import * as i1$2 from '@angular/common';
|
|
5
6
|
import { NgTemplateOutlet, NgClass, DOCUMENT as DOCUMENT$1, NgStyle, CommonModule, NgOptimizedImage, AsyncPipe, Location } from '@angular/common';
|
|
7
|
+
import * as i2$1 from '@angular/material/sidenav';
|
|
8
|
+
import { MatDrawer, MatDrawerContainer, MatSidenavModule } from '@angular/material/sidenav';
|
|
9
|
+
import { ONEMRVA_THEME_CLASS as ONEMRVA_THEME_CLASS$1, OnemRvaCDNService as OnemRvaCDNService$1, OnemRvaSizeDirective as OnemRvaSizeDirective$1, OnemRvaColorDirective as OnemRvaColorDirective$1, OnemRvaCDNMimeService as OnemRvaCDNMimeService$1, OnemRvaOSMService as OnemRvaOSMService$1, CommonCountryLookupService as CommonCountryLookupService$1, OnemRvaCDNCountryService as OnemRvaCDNCountryService$1, IBAN_SUPPORTED_COUNTRIES as IBAN_SUPPORTED_COUNTRIES$1, SEPA_ONLY_SUPPORTED_COUNTRIES as SEPA_ONLY_SUPPORTED_COUNTRIES$1 } from '@onemrvapublic/design-system/shared';
|
|
10
|
+
import { Router, NavigationEnd, RouterLink, RouterLinkActive, RouterModule, ActivatedRoute } from '@angular/router';
|
|
11
|
+
import { MatToolbar, MatToolbarModule } from '@angular/material/toolbar';
|
|
12
|
+
import { MatTabNav, MatTabLink, MatTabNavPanel, MatTabsModule } from '@angular/material/tabs';
|
|
13
|
+
import { MatDivider, MatDividerModule } from '@angular/material/divider';
|
|
14
|
+
import * as i1$1 from '@onemrvapublic/design-system/mat-avatar';
|
|
15
|
+
import { OnemrvaMatAvatarModule as OnemrvaMatAvatarModule$1 } from '@onemrvapublic/design-system/mat-avatar';
|
|
16
|
+
import { MatMenu, MatMenuTrigger, MatMenuItem, MatMenuModule } from '@angular/material/menu';
|
|
6
17
|
import * as i1$3 from '@angular/material/icon';
|
|
7
18
|
import { MatIcon, MatIconModule } from '@angular/material/icon';
|
|
8
|
-
import
|
|
19
|
+
import * as i1$4 from '@angular/material/button';
|
|
20
|
+
import { MatIconButton, MatFabButton, MatButtonModule, MatButton, MatMiniFabButton } from '@angular/material/button';
|
|
21
|
+
import * as i2$2 from '@angular/material/tooltip';
|
|
22
|
+
import { MatTooltip, MatTooltipModule } from '@angular/material/tooltip';
|
|
23
|
+
import { MatRipple, DateAdapter, MAT_DATE_FORMATS, MatOption, ErrorStateMatcher, NativeDateAdapter, MAT_DATE_LOCALE } from '@angular/material/core';
|
|
24
|
+
import { OnemrvaMatNavigationComponent as OnemrvaMatNavigationComponent$1 } from '@onemrvapublic/design-system/mat-navigation';
|
|
25
|
+
import { filter, map as map$1, switchMap as switchMap$1, startWith as startWith$1, delay, takeUntil as takeUntil$1, take as take$1, tap as tap$1, first, catchError as catchError$1 } from 'rxjs/operators';
|
|
9
26
|
import * as i6 from '@ngx-translate/core';
|
|
10
27
|
import { TranslateService, TranslatePipe, TranslateModule } from '@ngx-translate/core';
|
|
11
|
-
import { Subject, takeUntil, startWith, BehaviorSubject, of, interval, take, map, catchError, tap, mergeMap, withLatestFrom, filter as filter$1, throttle, takeWhile, switchMap, forkJoin, merge, debounceTime, combineLatest, combineLatestWith, zip, pairwise, distinctUntilChanged, ReplaySubject, Subscription, timer, NEVER, shareReplay, finalize, skip, from } from 'rxjs';
|
|
12
|
-
import { BreakpointObserver, Breakpoints, LayoutModule } from '@angular/cdk/layout';
|
|
13
|
-
import * as i2$1 from '@angular/material/sidenav';
|
|
14
|
-
import { MatDrawer, MatDrawerContainer, MatSidenavModule } from '@angular/material/sidenav';
|
|
15
28
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
16
|
-
import { filter, map as map$1, switchMap as switchMap$1, startWith as startWith$1, delay, takeUntil as takeUntil$1, take as take$1, tap as tap$1, first, catchError as catchError$1 } from 'rxjs/operators';
|
|
17
29
|
import { trigger, state, transition, style, animate, AnimationBuilder, keyframes } from '@angular/animations';
|
|
18
|
-
import * as i1$4 from '@angular/material/button';
|
|
19
|
-
import { MatIconButton, MatFabButton, MatButtonModule, MatButton, MatMiniFabButton } from '@angular/material/button';
|
|
20
|
-
import { OnemrvaMatNavigationComponent as OnemrvaMatNavigationComponent$1 } from '@onemrvapublic/design-system/mat-navigation';
|
|
21
30
|
import * as i1 from '@angular/material/form-field';
|
|
22
31
|
import { MatFormFieldModule, MatFormFieldControl, MatError, MatFormField, MatLabel, MAT_FORM_FIELD_DEFAULT_OPTIONS } from '@angular/material/form-field';
|
|
23
32
|
import * as i2 from '@angular/material/select';
|
|
24
33
|
import { MatSelectModule, MatSelect, MatOption as MatOption$1 } from '@angular/material/select';
|
|
25
34
|
import * as i4 from '@angular/forms';
|
|
26
35
|
import { FormsModule, NG_VALUE_ACCESSOR, ReactiveFormsModule, FormGroup, FormControl, Validators, FormBuilder, NgControl, NgForm, FormGroupDirective } from '@angular/forms';
|
|
27
|
-
import { ONEMRVA_THEME_CLASS as ONEMRVA_THEME_CLASS$1, OnemRvaCDNService as OnemRvaCDNService$1, OnemRvaSizeDirective as OnemRvaSizeDirective$1, OnemRvaColorDirective as OnemRvaColorDirective$1, OnemRvaCDNMimeService as OnemRvaCDNMimeService$1, OnemRvaOSMService as OnemRvaOSMService$1, CommonCountryLookupService as CommonCountryLookupService$1, OnemRvaCDNCountryService as OnemRvaCDNCountryService$1, IBAN_SUPPORTED_COUNTRIES as IBAN_SUPPORTED_COUNTRIES$1, SEPA_ONLY_SUPPORTED_COUNTRIES as SEPA_ONLY_SUPPORTED_COUNTRIES$1 } from '@onemrvapublic/design-system/shared';
|
|
28
|
-
import { MatToolbar, MatToolbarModule } from '@angular/material/toolbar';
|
|
29
|
-
import { MatTabNav, MatTabLink, MatTabNavPanel, MatTabsModule } from '@angular/material/tabs';
|
|
30
|
-
import { MatDivider, MatDividerModule } from '@angular/material/divider';
|
|
31
|
-
import * as i1$1 from '@onemrvapublic/design-system/mat-avatar';
|
|
32
|
-
import { OnemrvaMatAvatarModule as OnemrvaMatAvatarModule$1 } from '@onemrvapublic/design-system/mat-avatar';
|
|
33
|
-
import * as i2$2 from '@angular/material/tooltip';
|
|
34
|
-
import { MatTooltip, MatTooltipModule } from '@angular/material/tooltip';
|
|
35
|
-
import { MatRipple, DateAdapter, MAT_DATE_FORMATS, MatOption, ErrorStateMatcher, NativeDateAdapter, MAT_DATE_LOCALE } from '@angular/material/core';
|
|
36
36
|
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
37
37
|
import { MAT_SNACK_BAR_DEFAULT_OPTIONS, MAT_SNACK_BAR_DATA, MatSnackBarModule } from '@angular/material/snack-bar';
|
|
38
38
|
import { mkenum, OnemrvaMatColor, OnemrvaMatSize } from '@onemrvapublic/design-system/utils';
|
|
@@ -73,6 +73,65 @@ import { ComponentPortal } from '@angular/cdk/portal';
|
|
|
73
73
|
import { Overlay, OverlayPositionBuilder, OverlayContainer } from '@angular/cdk/overlay';
|
|
74
74
|
import { __decorate } from 'tslib';
|
|
75
75
|
|
|
76
|
+
class OnemrvaLeftSidenavService {
|
|
77
|
+
constructor() {
|
|
78
|
+
this.originalItems = [];
|
|
79
|
+
this.items = signal([], ...(ngDevMode ? [{ debugName: "items" }] : []));
|
|
80
|
+
this.router = inject(Router);
|
|
81
|
+
this.router.events
|
|
82
|
+
.pipe(filter((e) => e instanceof NavigationEnd))
|
|
83
|
+
.subscribe(() => this.reset());
|
|
84
|
+
}
|
|
85
|
+
setOriginal(items) {
|
|
86
|
+
this.originalItems = items ?? [];
|
|
87
|
+
this.items.set(this.originalItems);
|
|
88
|
+
}
|
|
89
|
+
updateItems(items) {
|
|
90
|
+
this.items.set(items ?? []);
|
|
91
|
+
this.items(); // ??
|
|
92
|
+
}
|
|
93
|
+
reset() {
|
|
94
|
+
this.items.set(this.originalItems);
|
|
95
|
+
}
|
|
96
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: OnemrvaLeftSidenavService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
97
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: OnemrvaLeftSidenavService, providedIn: 'root' }); }
|
|
98
|
+
}
|
|
99
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: OnemrvaLeftSidenavService, decorators: [{
|
|
100
|
+
type: Injectable,
|
|
101
|
+
args: [{
|
|
102
|
+
providedIn: 'root',
|
|
103
|
+
}]
|
|
104
|
+
}], ctorParameters: () => [] });
|
|
105
|
+
|
|
106
|
+
class LayoutLeftSidenavComponent {
|
|
107
|
+
set items(value) {
|
|
108
|
+
this._items = value ?? [];
|
|
109
|
+
this.leftSidenavService.setOriginal(this._items);
|
|
110
|
+
}
|
|
111
|
+
get items() {
|
|
112
|
+
return this._items;
|
|
113
|
+
}
|
|
114
|
+
constructor() {
|
|
115
|
+
this._items = [];
|
|
116
|
+
this._isHidden = false;
|
|
117
|
+
this.leftSidenavService = inject(OnemrvaLeftSidenavService);
|
|
118
|
+
effect(() => {
|
|
119
|
+
this._isHidden = this.leftSidenavService.items().length === 0;
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: LayoutLeftSidenavComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
123
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.7", type: LayoutLeftSidenavComponent, isStandalone: true, selector: "onemrva-layout-left-sidenav", inputs: { items: "items" }, host: { properties: { "class.hidden": "this._isHidden" } }, ngImport: i0, template: "@if (leftSidenavService.items().length > 0) {\n <onemrva-mat-navigation\n [items]=\"leftSidenavService.items()\"\n ></onemrva-mat-navigation>\n} @else {\n <ng-content></ng-content>\n}\n", styles: [":host{width:240px;margin-right:40px;border-right:1px solid var(--mat-sys-outline-variant)}\n"], dependencies: [{ kind: "component", type: OnemrvaMatNavigationComponent$1, selector: "onemrva-mat-navigation", inputs: ["items", "level", "translate"] }] }); }
|
|
124
|
+
}
|
|
125
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: LayoutLeftSidenavComponent, decorators: [{
|
|
126
|
+
type: Component,
|
|
127
|
+
args: [{ selector: 'onemrva-layout-left-sidenav', imports: [OnemrvaMatNavigationComponent$1], standalone: true, template: "@if (leftSidenavService.items().length > 0) {\n <onemrva-mat-navigation\n [items]=\"leftSidenavService.items()\"\n ></onemrva-mat-navigation>\n} @else {\n <ng-content></ng-content>\n}\n", styles: [":host{width:240px;margin-right:40px;border-right:1px solid var(--mat-sys-outline-variant)}\n"] }]
|
|
128
|
+
}], ctorParameters: () => [], propDecorators: { items: [{
|
|
129
|
+
type: Input
|
|
130
|
+
}], _isHidden: [{
|
|
131
|
+
type: HostBinding,
|
|
132
|
+
args: ['class.hidden']
|
|
133
|
+
}] } });
|
|
134
|
+
|
|
76
135
|
class LayoutSubrouteComponent {
|
|
77
136
|
constructor() {
|
|
78
137
|
this.cd = inject(ChangeDetectorRef);
|
|
@@ -291,6 +350,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImpor
|
|
|
291
350
|
args: [TemplateRef]
|
|
292
351
|
}] } });
|
|
293
352
|
|
|
353
|
+
class StripHtmlPipe {
|
|
354
|
+
transform(value) {
|
|
355
|
+
return value.replace(/<.*?>/g, ''); // replace tags
|
|
356
|
+
}
|
|
357
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: StripHtmlPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
358
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.1.7", ngImport: i0, type: StripHtmlPipe, isStandalone: true, name: "striphtml" }); }
|
|
359
|
+
}
|
|
360
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: StripHtmlPipe, decorators: [{
|
|
361
|
+
type: Pipe,
|
|
362
|
+
args: [{
|
|
363
|
+
name: 'striphtml',
|
|
364
|
+
standalone: true,
|
|
365
|
+
}]
|
|
366
|
+
}] });
|
|
367
|
+
|
|
294
368
|
// Command to generate ng g d <Directive name>
|
|
295
369
|
class DrawerHostDirective {
|
|
296
370
|
constructor() {
|
|
@@ -371,36 +445,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImpor
|
|
|
371
445
|
}]
|
|
372
446
|
}] });
|
|
373
447
|
|
|
374
|
-
class OnemrvaLeftSidenavService {
|
|
375
|
-
constructor() {
|
|
376
|
-
this.originalItems = [];
|
|
377
|
-
this.items = signal([], ...(ngDevMode ? [{ debugName: "items" }] : []));
|
|
378
|
-
this.router = inject(Router);
|
|
379
|
-
this.router.events
|
|
380
|
-
.pipe(filter((e) => e instanceof NavigationEnd))
|
|
381
|
-
.subscribe(() => this.reset());
|
|
382
|
-
}
|
|
383
|
-
setOriginal(items) {
|
|
384
|
-
this.originalItems = items ?? [];
|
|
385
|
-
this.items.set(this.originalItems);
|
|
386
|
-
}
|
|
387
|
-
updateItems(items) {
|
|
388
|
-
this.items.set(items ?? []);
|
|
389
|
-
this.items(); // ??
|
|
390
|
-
}
|
|
391
|
-
reset() {
|
|
392
|
-
this.items.set(this.originalItems);
|
|
393
|
-
}
|
|
394
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: OnemrvaLeftSidenavService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
395
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: OnemrvaLeftSidenavService, providedIn: 'root' }); }
|
|
396
|
-
}
|
|
397
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: OnemrvaLeftSidenavService, decorators: [{
|
|
398
|
-
type: Injectable,
|
|
399
|
-
args: [{
|
|
400
|
-
providedIn: 'root',
|
|
401
|
-
}]
|
|
402
|
-
}], ctorParameters: () => [] });
|
|
403
|
-
|
|
404
448
|
class LayoutSidenavComponent {
|
|
405
449
|
constructor() {
|
|
406
450
|
this.languages = [];
|
|
@@ -526,35 +570,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImpor
|
|
|
526
570
|
args: [TemplateRef]
|
|
527
571
|
}] } });
|
|
528
572
|
|
|
529
|
-
class LayoutLeftSidenavComponent {
|
|
530
|
-
set items(value) {
|
|
531
|
-
this._items = value ?? [];
|
|
532
|
-
this.leftSidenavService.setOriginal(this._items);
|
|
533
|
-
}
|
|
534
|
-
get items() {
|
|
535
|
-
return this._items;
|
|
536
|
-
}
|
|
537
|
-
constructor() {
|
|
538
|
-
this._items = [];
|
|
539
|
-
this._isHidden = false;
|
|
540
|
-
this.leftSidenavService = inject(OnemrvaLeftSidenavService);
|
|
541
|
-
effect(() => {
|
|
542
|
-
this._isHidden = this.leftSidenavService.items().length === 0;
|
|
543
|
-
});
|
|
544
|
-
}
|
|
545
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: LayoutLeftSidenavComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
546
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.7", type: LayoutLeftSidenavComponent, isStandalone: true, selector: "onemrva-layout-left-sidenav", inputs: { items: "items" }, host: { properties: { "class.hidden": "this._isHidden" } }, ngImport: i0, template: "@if (leftSidenavService.items().length > 0) {\n <onemrva-mat-navigation\n [items]=\"leftSidenavService.items()\"\n ></onemrva-mat-navigation>\n} @else {\n <ng-content></ng-content>\n}\n", styles: [":host{width:240px;margin-right:40px;border-right:1px solid var(--mat-sys-outline-variant)}\n"], dependencies: [{ kind: "component", type: OnemrvaMatNavigationComponent$1, selector: "onemrva-mat-navigation", inputs: ["items", "level", "translate"] }] }); }
|
|
547
|
-
}
|
|
548
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: LayoutLeftSidenavComponent, decorators: [{
|
|
549
|
-
type: Component,
|
|
550
|
-
args: [{ selector: 'onemrva-layout-left-sidenav', imports: [OnemrvaMatNavigationComponent$1], standalone: true, template: "@if (leftSidenavService.items().length > 0) {\n <onemrva-mat-navigation\n [items]=\"leftSidenavService.items()\"\n ></onemrva-mat-navigation>\n} @else {\n <ng-content></ng-content>\n}\n", styles: [":host{width:240px;margin-right:40px;border-right:1px solid var(--mat-sys-outline-variant)}\n"] }]
|
|
551
|
-
}], ctorParameters: () => [], propDecorators: { items: [{
|
|
552
|
-
type: Input
|
|
553
|
-
}], _isHidden: [{
|
|
554
|
-
type: HostBinding,
|
|
555
|
-
args: ['class.hidden']
|
|
556
|
-
}] } });
|
|
557
|
-
|
|
558
573
|
class LayoutComponent {
|
|
559
574
|
toggleTheme(newTheme) {
|
|
560
575
|
this.activeTheme.set(newTheme);
|
|
@@ -823,21 +838,6 @@ const layoutComponents = [
|
|
|
823
838
|
LayoutLeftSidenavComponent,
|
|
824
839
|
];
|
|
825
840
|
|
|
826
|
-
class StripHtmlPipe {
|
|
827
|
-
transform(value) {
|
|
828
|
-
return value.replace(/<.*?>/g, ''); // replace tags
|
|
829
|
-
}
|
|
830
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: StripHtmlPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
831
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.1.7", ngImport: i0, type: StripHtmlPipe, isStandalone: true, name: "striphtml" }); }
|
|
832
|
-
}
|
|
833
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: StripHtmlPipe, decorators: [{
|
|
834
|
-
type: Pipe,
|
|
835
|
-
args: [{
|
|
836
|
-
name: 'striphtml',
|
|
837
|
-
standalone: true,
|
|
838
|
-
}]
|
|
839
|
-
}] });
|
|
840
|
-
|
|
841
841
|
function CoerceBooleanInput(defaultValue) {
|
|
842
842
|
return (target, propertyKey) => {
|
|
843
843
|
Object.defineProperty(target, propertyKey, {
|