@sitecore-jss/sitecore-jss-angular 21.2.1-canary.2 → 21.2.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/dist/components/data-resolver-factory.d.ts +13 -13
- package/dist/components/date.directive.d.ts +20 -20
- package/dist/components/editframe.component.d.ts +22 -22
- package/dist/components/file.directive.d.ts +17 -17
- package/dist/components/generic-link.directive.d.ts +20 -20
- package/dist/components/guard-resolver-factory.d.ts +11 -11
- package/dist/components/hidden-rendering.component.d.ts +7 -7
- package/dist/components/image.directive.d.ts +35 -35
- package/dist/components/link.directive.d.ts +26 -26
- package/dist/components/missing-component.component.d.ts +7 -7
- package/dist/components/placeholder-loading.directive.d.ts +8 -8
- package/dist/components/placeholder.component.d.ts +59 -59
- package/dist/components/placeholder.token.d.ts +64 -64
- package/dist/components/raw.component.d.ts +12 -12
- package/dist/components/render-component.component.d.ts +33 -33
- package/dist/components/render-each.directive.d.ts +8 -8
- package/dist/components/render-empty.directive.d.ts +8 -8
- package/dist/components/rendering-field.d.ts +41 -41
- package/dist/components/rendering.d.ts +5 -5
- package/dist/components/rich-text.directive.d.ts +18 -18
- package/dist/components/router-link.directive.d.ts +19 -19
- package/dist/components/text.directive.d.ts +16 -16
- package/dist/esm2020/components/data-resolver-factory.mjs +57 -57
- package/dist/esm2020/components/date.directive.mjs +59 -59
- package/dist/esm2020/components/editframe.component.mjs +65 -65
- package/dist/esm2020/components/file.directive.mjs +44 -44
- package/dist/esm2020/components/generic-link.directive.mjs +64 -64
- package/dist/esm2020/components/guard-resolver-factory.mjs +87 -87
- package/dist/esm2020/components/hidden-rendering.component.mjs +20 -20
- package/dist/esm2020/components/image.directive.mjs +137 -137
- package/dist/esm2020/components/link.directive.mjs +117 -117
- package/dist/esm2020/components/missing-component.component.mjs +15 -15
- package/dist/esm2020/components/placeholder-loading.directive.mjs +15 -15
- package/dist/esm2020/components/placeholder.component.mjs +250 -250
- package/dist/esm2020/components/placeholder.token.mjs +23 -23
- package/dist/esm2020/components/raw.component.mjs +35 -35
- package/dist/esm2020/components/render-component.component.mjs +90 -90
- package/dist/esm2020/components/render-each.directive.mjs +15 -15
- package/dist/esm2020/components/render-empty.directive.mjs +15 -15
- package/dist/esm2020/components/rendering-field.mjs +1 -1
- package/dist/esm2020/components/rendering.mjs +7 -7
- package/dist/esm2020/components/rich-text.directive.mjs +62 -62
- package/dist/esm2020/components/router-link.directive.mjs +47 -47
- package/dist/esm2020/components/text.directive.mjs +57 -57
- package/dist/esm2020/jss-component-factory.service.mjs +83 -83
- package/dist/esm2020/lib.module.mjs +167 -167
- package/dist/esm2020/public_api.mjs +24 -24
- package/dist/esm2020/sitecore-jss-sitecore-jss-angular.mjs +4 -4
- package/dist/esm2020/utils.mjs +16 -16
- package/dist/fesm2015/sitecore-jss-sitecore-jss-angular.mjs +1415 -1415
- package/dist/fesm2020/sitecore-jss-sitecore-jss-angular.mjs +1422 -1422
- package/dist/index.d.ts +5 -5
- package/dist/jss-component-factory.service.d.ts +25 -25
- package/dist/lib.module.d.ts +46 -46
- package/dist/package.json +2 -2
- package/dist/public_api.d.ts +25 -25
- package/dist/utils.d.ts +7 -7
- package/package.json +3 -3
|
@@ -1,64 +1,64 @@
|
|
|
1
|
-
import { InjectionToken, Type } from '@angular/core';
|
|
2
|
-
import { ActivatedRouteSnapshot, Data, RouterStateSnapshot, UrlTree } from '@angular/router';
|
|
3
|
-
import { Observable } from 'rxjs';
|
|
4
|
-
import { ComponentFactoryResult } from '../jss-component-factory.service';
|
|
5
|
-
import { ComponentRendering } from '../public_api';
|
|
6
|
-
/** Registers a statically loaded component */
|
|
7
|
-
export declare class ComponentNameAndType {
|
|
8
|
-
name: string;
|
|
9
|
-
type: Type<unknown>;
|
|
10
|
-
canActivate?: JssCanActivate | Type<JssCanActivate> | JssCanActivateFn | Array<JssCanActivate | JssCanActivateFn | Type<JssCanActivate>>;
|
|
11
|
-
resolve?: {
|
|
12
|
-
[key: string]: JssResolve<unknown> | Type<JssResolve<unknown>>;
|
|
13
|
-
};
|
|
14
|
-
}
|
|
15
|
-
/** Registers a lazily loaded component by name and module to lazy load when it's needed */
|
|
16
|
-
export interface ComponentNameAndModule {
|
|
17
|
-
/** Name of the component */
|
|
18
|
-
path: string;
|
|
19
|
-
/**
|
|
20
|
-
* Dynamic import of the component,
|
|
21
|
-
* e.g. () => import('./path/to/lazyloadedcomponent.module').then(m => m.LazyLoadedComponentModuleExportName)
|
|
22
|
-
*/
|
|
23
|
-
loadChildren: () => Promise<Type<unknown>>;
|
|
24
|
-
canActivate?: JssCanActivate | JssCanActivateFn | Type<JssCanActivate> | Array<JssCanActivate | JssCanActivateFn | Type<JssCanActivate>>;
|
|
25
|
-
resolve?: {
|
|
26
|
-
[key: string]: JssResolve<unknown> | Type<JssResolve<unknown>>;
|
|
27
|
-
};
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* @param {unknown} object
|
|
31
|
-
*/
|
|
32
|
-
export declare function instanceOfComponentNameAndType(object: unknown): object is ComponentNameAndType;
|
|
33
|
-
/**
|
|
34
|
-
* @param {unknown} object
|
|
35
|
-
*/
|
|
36
|
-
export declare function instanceOfComponentNameAndModule(object: unknown): object is ComponentNameAndModule;
|
|
37
|
-
export declare const PLACEHOLDER_COMPONENTS: InjectionToken<ComponentNameAndType[]>;
|
|
38
|
-
export declare const PLACEHOLDER_LAZY_COMPONENTS: InjectionToken<ComponentNameAndType[]>;
|
|
39
|
-
export declare const PLACEHOLDER_MISSING_COMPONENT_COMPONENT: InjectionToken<Type<unknown>>;
|
|
40
|
-
export declare const PLACEHOLDER_HIDDEN_RENDERING_COMPONENT: InjectionToken<Type<unknown>>;
|
|
41
|
-
export declare const DYNAMIC_COMPONENT: InjectionToken<Type<unknown> | {
|
|
42
|
-
[s: string]: unknown;
|
|
43
|
-
}>;
|
|
44
|
-
export declare type GuardResolver = (result: ComponentFactoryResult[]) => Promise<ComponentFactoryResult[]>;
|
|
45
|
-
export declare const GUARD_RESOLVER: InjectionToken<GuardResolver>;
|
|
46
|
-
export declare type DataResolver = (result: ComponentFactoryResult[]) => Promise<Array<{
|
|
47
|
-
factory: ComponentFactoryResult;
|
|
48
|
-
data: Data;
|
|
49
|
-
}>>;
|
|
50
|
-
export declare const DATA_RESOLVER: InjectionToken<DataResolver>;
|
|
51
|
-
export interface GuardInput {
|
|
52
|
-
activatedRoute: ActivatedRouteSnapshot;
|
|
53
|
-
routerState: RouterStateSnapshot;
|
|
54
|
-
rendering: ComponentRendering;
|
|
55
|
-
}
|
|
56
|
-
export interface JssCanActivateFn {
|
|
57
|
-
(input: GuardInput): Observable<boolean | UrlTree | string | string[]> | Promise<boolean | UrlTree | string | string[]> | boolean | UrlTree | string | string[];
|
|
58
|
-
}
|
|
59
|
-
export interface JssCanActivate {
|
|
60
|
-
canActivate: JssCanActivateFn;
|
|
61
|
-
}
|
|
62
|
-
export interface JssResolve<T> {
|
|
63
|
-
resolve(input: GuardInput): Observable<T> | Promise<T> | T;
|
|
64
|
-
}
|
|
1
|
+
import { InjectionToken, Type } from '@angular/core';
|
|
2
|
+
import { ActivatedRouteSnapshot, Data, RouterStateSnapshot, UrlTree } from '@angular/router';
|
|
3
|
+
import { Observable } from 'rxjs';
|
|
4
|
+
import { ComponentFactoryResult } from '../jss-component-factory.service';
|
|
5
|
+
import { ComponentRendering } from '../public_api';
|
|
6
|
+
/** Registers a statically loaded component */
|
|
7
|
+
export declare class ComponentNameAndType {
|
|
8
|
+
name: string;
|
|
9
|
+
type: Type<unknown>;
|
|
10
|
+
canActivate?: JssCanActivate | Type<JssCanActivate> | JssCanActivateFn | Array<JssCanActivate | JssCanActivateFn | Type<JssCanActivate>>;
|
|
11
|
+
resolve?: {
|
|
12
|
+
[key: string]: JssResolve<unknown> | Type<JssResolve<unknown>>;
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
/** Registers a lazily loaded component by name and module to lazy load when it's needed */
|
|
16
|
+
export interface ComponentNameAndModule {
|
|
17
|
+
/** Name of the component */
|
|
18
|
+
path: string;
|
|
19
|
+
/**
|
|
20
|
+
* Dynamic import of the component,
|
|
21
|
+
* e.g. () => import('./path/to/lazyloadedcomponent.module').then(m => m.LazyLoadedComponentModuleExportName)
|
|
22
|
+
*/
|
|
23
|
+
loadChildren: () => Promise<Type<unknown>>;
|
|
24
|
+
canActivate?: JssCanActivate | JssCanActivateFn | Type<JssCanActivate> | Array<JssCanActivate | JssCanActivateFn | Type<JssCanActivate>>;
|
|
25
|
+
resolve?: {
|
|
26
|
+
[key: string]: JssResolve<unknown> | Type<JssResolve<unknown>>;
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* @param {unknown} object
|
|
31
|
+
*/
|
|
32
|
+
export declare function instanceOfComponentNameAndType(object: unknown): object is ComponentNameAndType;
|
|
33
|
+
/**
|
|
34
|
+
* @param {unknown} object
|
|
35
|
+
*/
|
|
36
|
+
export declare function instanceOfComponentNameAndModule(object: unknown): object is ComponentNameAndModule;
|
|
37
|
+
export declare const PLACEHOLDER_COMPONENTS: InjectionToken<ComponentNameAndType[]>;
|
|
38
|
+
export declare const PLACEHOLDER_LAZY_COMPONENTS: InjectionToken<ComponentNameAndType[]>;
|
|
39
|
+
export declare const PLACEHOLDER_MISSING_COMPONENT_COMPONENT: InjectionToken<Type<unknown>>;
|
|
40
|
+
export declare const PLACEHOLDER_HIDDEN_RENDERING_COMPONENT: InjectionToken<Type<unknown>>;
|
|
41
|
+
export declare const DYNAMIC_COMPONENT: InjectionToken<Type<unknown> | {
|
|
42
|
+
[s: string]: unknown;
|
|
43
|
+
}>;
|
|
44
|
+
export declare type GuardResolver = (result: ComponentFactoryResult[]) => Promise<ComponentFactoryResult[]>;
|
|
45
|
+
export declare const GUARD_RESOLVER: InjectionToken<GuardResolver>;
|
|
46
|
+
export declare type DataResolver = (result: ComponentFactoryResult[]) => Promise<Array<{
|
|
47
|
+
factory: ComponentFactoryResult;
|
|
48
|
+
data: Data;
|
|
49
|
+
}>>;
|
|
50
|
+
export declare const DATA_RESOLVER: InjectionToken<DataResolver>;
|
|
51
|
+
export interface GuardInput {
|
|
52
|
+
activatedRoute: ActivatedRouteSnapshot;
|
|
53
|
+
routerState: RouterStateSnapshot;
|
|
54
|
+
rendering: ComponentRendering;
|
|
55
|
+
}
|
|
56
|
+
export interface JssCanActivateFn {
|
|
57
|
+
(input: GuardInput): Observable<boolean | UrlTree | string | string[]> | Promise<boolean | UrlTree | string | string[]> | boolean | UrlTree | string | string[];
|
|
58
|
+
}
|
|
59
|
+
export interface JssCanActivate {
|
|
60
|
+
canActivate: JssCanActivateFn;
|
|
61
|
+
}
|
|
62
|
+
export interface JssResolve<T> {
|
|
63
|
+
resolve(input: GuardInput): Observable<T> | Promise<T> | T;
|
|
64
|
+
}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { ElementRef, OnInit, Renderer2 } from '@angular/core';
|
|
2
|
-
import { HtmlElementRendering } from '@sitecore-jss/sitecore-jss/layout';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export declare class RawComponent implements OnInit {
|
|
5
|
-
private renderer;
|
|
6
|
-
private elementRef;
|
|
7
|
-
rendering: HtmlElementRendering;
|
|
8
|
-
constructor(renderer: Renderer2, elementRef: ElementRef);
|
|
9
|
-
ngOnInit(): void;
|
|
10
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<RawComponent, never>;
|
|
11
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<RawComponent, "sc-raw", never, { "rendering": "rendering"; }, {}, never, never, false>;
|
|
12
|
-
}
|
|
1
|
+
import { ElementRef, OnInit, Renderer2 } from '@angular/core';
|
|
2
|
+
import { HtmlElementRendering } from '@sitecore-jss/sitecore-jss/layout';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export declare class RawComponent implements OnInit {
|
|
5
|
+
private renderer;
|
|
6
|
+
private elementRef;
|
|
7
|
+
rendering: HtmlElementRendering;
|
|
8
|
+
constructor(renderer: Renderer2, elementRef: ElementRef);
|
|
9
|
+
ngOnInit(): void;
|
|
10
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RawComponent, never>;
|
|
11
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<RawComponent, "sc-raw", never, { "rendering": "rendering"; }, {}, never, never, false>;
|
|
12
|
+
}
|
|
@@ -1,33 +1,33 @@
|
|
|
1
|
-
import { KeyValueDiffers, OnChanges, SimpleChanges, Type } from '@angular/core';
|
|
2
|
-
import { ComponentRendering, HtmlElementRendering } from '@sitecore-jss/sitecore-jss/layout';
|
|
3
|
-
import { JssComponentFactoryService } from '../jss-component-factory.service';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
/**
|
|
6
|
-
* Renders a single JSS component given a rendering definition.
|
|
7
|
-
* Useful inside templated placeholders.
|
|
8
|
-
*/
|
|
9
|
-
export declare class RenderComponentComponent implements OnChanges {
|
|
10
|
-
private differs;
|
|
11
|
-
private componentFactory;
|
|
12
|
-
private missingComponentComponent;
|
|
13
|
-
rendering: ComponentRendering | HtmlElementRendering;
|
|
14
|
-
outputs: {
|
|
15
|
-
[k: string]: (eventType: unknown) => void;
|
|
16
|
-
};
|
|
17
|
-
private view;
|
|
18
|
-
private _inputs;
|
|
19
|
-
private _differ;
|
|
20
|
-
private destroyed;
|
|
21
|
-
set inputs(value: {
|
|
22
|
-
[key: string]: unknown;
|
|
23
|
-
});
|
|
24
|
-
constructor(differs: KeyValueDiffers, componentFactory: JssComponentFactoryService, missingComponentComponent: Type<{
|
|
25
|
-
[key: string]: unknown;
|
|
26
|
-
}>);
|
|
27
|
-
ngOnChanges(changes: SimpleChanges): void;
|
|
28
|
-
private _setComponentInputs;
|
|
29
|
-
private _subscribeComponentOutputs;
|
|
30
|
-
private _render;
|
|
31
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<RenderComponentComponent, never>;
|
|
32
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<RenderComponentComponent, "sc-render-component", never, { "rendering": "rendering"; "outputs": "outputs"; "inputs": "inputs"; }, {}, never, never, false>;
|
|
33
|
-
}
|
|
1
|
+
import { KeyValueDiffers, OnChanges, SimpleChanges, Type } from '@angular/core';
|
|
2
|
+
import { ComponentRendering, HtmlElementRendering } from '@sitecore-jss/sitecore-jss/layout';
|
|
3
|
+
import { JssComponentFactoryService } from '../jss-component-factory.service';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
/**
|
|
6
|
+
* Renders a single JSS component given a rendering definition.
|
|
7
|
+
* Useful inside templated placeholders.
|
|
8
|
+
*/
|
|
9
|
+
export declare class RenderComponentComponent implements OnChanges {
|
|
10
|
+
private differs;
|
|
11
|
+
private componentFactory;
|
|
12
|
+
private missingComponentComponent;
|
|
13
|
+
rendering: ComponentRendering | HtmlElementRendering;
|
|
14
|
+
outputs: {
|
|
15
|
+
[k: string]: (eventType: unknown) => void;
|
|
16
|
+
};
|
|
17
|
+
private view;
|
|
18
|
+
private _inputs;
|
|
19
|
+
private _differ;
|
|
20
|
+
private destroyed;
|
|
21
|
+
set inputs(value: {
|
|
22
|
+
[key: string]: unknown;
|
|
23
|
+
});
|
|
24
|
+
constructor(differs: KeyValueDiffers, componentFactory: JssComponentFactoryService, missingComponentComponent: Type<{
|
|
25
|
+
[key: string]: unknown;
|
|
26
|
+
}>);
|
|
27
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
28
|
+
private _setComponentInputs;
|
|
29
|
+
private _subscribeComponentOutputs;
|
|
30
|
+
private _render;
|
|
31
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RenderComponentComponent, never>;
|
|
32
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<RenderComponentComponent, "sc-render-component", never, { "rendering": "rendering"; "outputs": "outputs"; "inputs": "inputs"; }, {}, never, never, false>;
|
|
33
|
+
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { TemplateRef } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export declare class RenderEachDirective {
|
|
4
|
-
templateRef: TemplateRef<unknown>;
|
|
5
|
-
constructor(templateRef: TemplateRef<unknown>);
|
|
6
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<RenderEachDirective, never>;
|
|
7
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<RenderEachDirective, "[renderEach]", never, {}, {}, never, never, false>;
|
|
8
|
-
}
|
|
1
|
+
import { TemplateRef } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class RenderEachDirective {
|
|
4
|
+
templateRef: TemplateRef<unknown>;
|
|
5
|
+
constructor(templateRef: TemplateRef<unknown>);
|
|
6
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RenderEachDirective, never>;
|
|
7
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<RenderEachDirective, "[renderEach]", never, {}, {}, never, never, false>;
|
|
8
|
+
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { TemplateRef } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export declare class RenderEmptyDirective {
|
|
4
|
-
templateRef: TemplateRef<unknown>;
|
|
5
|
-
constructor(templateRef: TemplateRef<unknown>);
|
|
6
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<RenderEmptyDirective, never>;
|
|
7
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<RenderEmptyDirective, "[renderEmpty]", never, {}, {}, never, never, false>;
|
|
8
|
-
}
|
|
1
|
+
import { TemplateRef } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class RenderEmptyDirective {
|
|
4
|
+
templateRef: TemplateRef<unknown>;
|
|
5
|
+
constructor(templateRef: TemplateRef<unknown>);
|
|
6
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RenderEmptyDirective, never>;
|
|
7
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<RenderEmptyDirective, "[renderEmpty]", never, {}, {}, never, never, false>;
|
|
8
|
+
}
|
|
@@ -1,41 +1,41 @@
|
|
|
1
|
-
export interface RenderingField<V = unknown> {
|
|
2
|
-
value?: V;
|
|
3
|
-
editable?: string;
|
|
4
|
-
}
|
|
5
|
-
export interface DateField {
|
|
6
|
-
value?: string | number | Date;
|
|
7
|
-
editable?: string;
|
|
8
|
-
}
|
|
9
|
-
export interface FileFieldValue {
|
|
10
|
-
src?: string;
|
|
11
|
-
title?: string;
|
|
12
|
-
displayName?: string;
|
|
13
|
-
}
|
|
14
|
-
export interface FileField extends FileFieldValue, RenderingField {
|
|
15
|
-
value?: FileFieldValue;
|
|
16
|
-
}
|
|
17
|
-
export interface ImageFieldValue {
|
|
18
|
-
[key: string]: unknown;
|
|
19
|
-
src?: string;
|
|
20
|
-
srcSet?: {
|
|
21
|
-
[key: string]: string | number | undefined;
|
|
22
|
-
}[];
|
|
23
|
-
}
|
|
24
|
-
export interface ImageField extends ImageFieldValue, RenderingField {
|
|
25
|
-
value?: ImageFieldValue;
|
|
26
|
-
}
|
|
27
|
-
export interface LinkFieldValue {
|
|
28
|
-
[key: string]: unknown;
|
|
29
|
-
href?: string;
|
|
30
|
-
text?: string;
|
|
31
|
-
anchor?: string;
|
|
32
|
-
}
|
|
33
|
-
export interface LinkField extends LinkFieldValue, RenderingField {
|
|
34
|
-
value?: LinkFieldValue;
|
|
35
|
-
editableFirstPart?: string;
|
|
36
|
-
editableLastPart?: string;
|
|
37
|
-
}
|
|
38
|
-
export interface RichTextField extends RenderingField<string> {
|
|
39
|
-
}
|
|
40
|
-
export interface TextField extends RenderingField<string> {
|
|
41
|
-
}
|
|
1
|
+
export interface RenderingField<V = unknown> {
|
|
2
|
+
value?: V;
|
|
3
|
+
editable?: string;
|
|
4
|
+
}
|
|
5
|
+
export interface DateField {
|
|
6
|
+
value?: string | number | Date;
|
|
7
|
+
editable?: string;
|
|
8
|
+
}
|
|
9
|
+
export interface FileFieldValue {
|
|
10
|
+
src?: string;
|
|
11
|
+
title?: string;
|
|
12
|
+
displayName?: string;
|
|
13
|
+
}
|
|
14
|
+
export interface FileField extends FileFieldValue, RenderingField {
|
|
15
|
+
value?: FileFieldValue;
|
|
16
|
+
}
|
|
17
|
+
export interface ImageFieldValue {
|
|
18
|
+
[key: string]: unknown;
|
|
19
|
+
src?: string;
|
|
20
|
+
srcSet?: {
|
|
21
|
+
[key: string]: string | number | undefined;
|
|
22
|
+
}[];
|
|
23
|
+
}
|
|
24
|
+
export interface ImageField extends ImageFieldValue, RenderingField {
|
|
25
|
+
value?: ImageFieldValue;
|
|
26
|
+
}
|
|
27
|
+
export interface LinkFieldValue {
|
|
28
|
+
[key: string]: unknown;
|
|
29
|
+
href?: string;
|
|
30
|
+
text?: string;
|
|
31
|
+
anchor?: string;
|
|
32
|
+
}
|
|
33
|
+
export interface LinkField extends LinkFieldValue, RenderingField {
|
|
34
|
+
value?: LinkFieldValue;
|
|
35
|
+
editableFirstPart?: string;
|
|
36
|
+
editableLastPart?: string;
|
|
37
|
+
}
|
|
38
|
+
export interface RichTextField extends RenderingField<string> {
|
|
39
|
+
}
|
|
40
|
+
export interface TextField extends RenderingField<string> {
|
|
41
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ComponentRendering, HtmlElementRendering } from '@sitecore-jss/sitecore-jss/layout';
|
|
2
|
-
/**
|
|
3
|
-
* @param {HtmlElementRendering | ComponentRendering} rendering
|
|
4
|
-
*/
|
|
5
|
-
export declare function isRawRendering(rendering: HtmlElementRendering | ComponentRendering): rendering is HtmlElementRendering;
|
|
1
|
+
import { ComponentRendering, HtmlElementRendering } from '@sitecore-jss/sitecore-jss/layout';
|
|
2
|
+
/**
|
|
3
|
+
* @param {HtmlElementRendering | ComponentRendering} rendering
|
|
4
|
+
*/
|
|
5
|
+
export declare function isRawRendering(rendering: HtmlElementRendering | ComponentRendering): rendering is HtmlElementRendering;
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import { OnChanges, SimpleChanges, TemplateRef, ViewContainerRef, Renderer2 } from '@angular/core';
|
|
2
|
-
import { Router } from '@angular/router';
|
|
3
|
-
import { RichTextField } from './rendering-field';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export declare class RichTextDirective implements OnChanges {
|
|
6
|
-
private viewContainer;
|
|
7
|
-
private templateRef;
|
|
8
|
-
private renderer;
|
|
9
|
-
private router;
|
|
10
|
-
editable: boolean;
|
|
11
|
-
field: RichTextField;
|
|
12
|
-
private viewRef;
|
|
13
|
-
constructor(viewContainer: ViewContainerRef, templateRef: TemplateRef<unknown>, renderer: Renderer2, router: Router);
|
|
14
|
-
ngOnChanges(changes: SimpleChanges): void;
|
|
15
|
-
private updateView;
|
|
16
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<RichTextDirective, never>;
|
|
17
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<RichTextDirective, "[scRichText]", never, { "editable": "scRichTextEditable"; "field": "scRichText"; }, {}, never, never, false>;
|
|
18
|
-
}
|
|
1
|
+
import { OnChanges, SimpleChanges, TemplateRef, ViewContainerRef, Renderer2 } from '@angular/core';
|
|
2
|
+
import { Router } from '@angular/router';
|
|
3
|
+
import { RichTextField } from './rendering-field';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export declare class RichTextDirective implements OnChanges {
|
|
6
|
+
private viewContainer;
|
|
7
|
+
private templateRef;
|
|
8
|
+
private renderer;
|
|
9
|
+
private router;
|
|
10
|
+
editable: boolean;
|
|
11
|
+
field: RichTextField;
|
|
12
|
+
private viewRef;
|
|
13
|
+
constructor(viewContainer: ViewContainerRef, templateRef: TemplateRef<unknown>, renderer: Renderer2, router: Router);
|
|
14
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
15
|
+
private updateView;
|
|
16
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RichTextDirective, never>;
|
|
17
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<RichTextDirective, "[scRichText]", never, { "editable": "scRichTextEditable"; "field": "scRichText"; }, {}, never, never, false>;
|
|
18
|
+
}
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
import { ElementRef, Renderer2, TemplateRef, ViewContainerRef } from '@angular/core';
|
|
2
|
-
import { Router } from '@angular/router';
|
|
3
|
-
import { LinkDirective } from './link.directive';
|
|
4
|
-
import { LinkField } from './rendering-field';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
export declare class RouterLinkDirective extends LinkDirective {
|
|
7
|
-
private router;
|
|
8
|
-
editable: boolean;
|
|
9
|
-
attrs: {
|
|
10
|
-
[attr: string]: string;
|
|
11
|
-
};
|
|
12
|
-
field: LinkField;
|
|
13
|
-
constructor(viewContainer: ViewContainerRef, templateRef: TemplateRef<unknown>, renderer: Renderer2, elementRef: ElementRef, router: Router);
|
|
14
|
-
protected renderTemplate(props: {
|
|
15
|
-
[prop: string]: string;
|
|
16
|
-
}, linkText: string): void;
|
|
17
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<RouterLinkDirective, never>;
|
|
18
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<RouterLinkDirective, "[scRouterLink]", never, { "editable": "scRouterLinkEditable"; "attrs": "scRouterLinkAttrs"; "field": "scRouterLink"; }, {}, never, never, false>;
|
|
19
|
-
}
|
|
1
|
+
import { ElementRef, Renderer2, TemplateRef, ViewContainerRef } from '@angular/core';
|
|
2
|
+
import { Router } from '@angular/router';
|
|
3
|
+
import { LinkDirective } from './link.directive';
|
|
4
|
+
import { LinkField } from './rendering-field';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export declare class RouterLinkDirective extends LinkDirective {
|
|
7
|
+
private router;
|
|
8
|
+
editable: boolean;
|
|
9
|
+
attrs: {
|
|
10
|
+
[attr: string]: string;
|
|
11
|
+
};
|
|
12
|
+
field: LinkField;
|
|
13
|
+
constructor(viewContainer: ViewContainerRef, templateRef: TemplateRef<unknown>, renderer: Renderer2, elementRef: ElementRef, router: Router);
|
|
14
|
+
protected renderTemplate(props: {
|
|
15
|
+
[prop: string]: string;
|
|
16
|
+
}, linkText: string): void;
|
|
17
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RouterLinkDirective, never>;
|
|
18
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<RouterLinkDirective, "[scRouterLink]", never, { "editable": "scRouterLinkEditable"; "attrs": "scRouterLinkAttrs"; "field": "scRouterLink"; }, {}, never, never, false>;
|
|
19
|
+
}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import { OnChanges, SimpleChanges, TemplateRef, ViewContainerRef } from '@angular/core';
|
|
2
|
-
import { TextField } from './rendering-field';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export declare class TextDirective implements OnChanges {
|
|
5
|
-
private viewContainer;
|
|
6
|
-
private templateRef;
|
|
7
|
-
editable: boolean;
|
|
8
|
-
encode: boolean;
|
|
9
|
-
field: TextField;
|
|
10
|
-
private viewRef;
|
|
11
|
-
constructor(viewContainer: ViewContainerRef, templateRef: TemplateRef<unknown>);
|
|
12
|
-
ngOnChanges(changes: SimpleChanges): void;
|
|
13
|
-
private updateView;
|
|
14
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<TextDirective, never>;
|
|
15
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<TextDirective, "[scText]", never, { "editable": "scTextEditable"; "encode": "scTextEncode"; "field": "scText"; }, {}, never, never, false>;
|
|
16
|
-
}
|
|
1
|
+
import { OnChanges, SimpleChanges, TemplateRef, ViewContainerRef } from '@angular/core';
|
|
2
|
+
import { TextField } from './rendering-field';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export declare class TextDirective implements OnChanges {
|
|
5
|
+
private viewContainer;
|
|
6
|
+
private templateRef;
|
|
7
|
+
editable: boolean;
|
|
8
|
+
encode: boolean;
|
|
9
|
+
field: TextField;
|
|
10
|
+
private viewRef;
|
|
11
|
+
constructor(viewContainer: ViewContainerRef, templateRef: TemplateRef<unknown>);
|
|
12
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
13
|
+
private updateView;
|
|
14
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TextDirective, never>;
|
|
15
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<TextDirective, "[scText]", never, { "editable": "scTextEditable"; "encode": "scTextEncode"; "field": "scText"; }, {}, never, never, false>;
|
|
16
|
+
}
|
|
@@ -1,58 +1,58 @@
|
|
|
1
|
-
import { take } from 'rxjs/operators';
|
|
2
|
-
import { wrapIntoObservable } from '../utils';
|
|
3
|
-
/**
|
|
4
|
-
* @param {Injector} injector
|
|
5
|
-
* @param {ActivatedRoute} activatedRoute
|
|
6
|
-
* @param {Router} router
|
|
7
|
-
* @returns resolved data
|
|
8
|
-
*/
|
|
9
|
-
export function dataResolverFactory(injector, activatedRoute, router) {
|
|
10
|
-
/**
|
|
11
|
-
* @param {JssResolve<unknown> | Type<JssResolve<unknown>>} resolver
|
|
12
|
-
* @returns resolver instance
|
|
13
|
-
*/
|
|
14
|
-
function getResolverInstance(resolver) {
|
|
15
|
-
return 'resolve' in resolver ? resolver : injector.get(resolver);
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* @param {ComponentFactoryResult} factory
|
|
19
|
-
* @returns {Array<[string, JssResolve<unknown>]>} resolver instances
|
|
20
|
-
*/
|
|
21
|
-
function collectResolverInstances(factory) {
|
|
22
|
-
if (factory.resolve) {
|
|
23
|
-
const resolve = factory.resolve;
|
|
24
|
-
return Object.keys(factory.resolve).map((key) => [
|
|
25
|
-
key,
|
|
26
|
-
getResolverInstance(resolve[key]),
|
|
27
|
-
]);
|
|
28
|
-
}
|
|
29
|
-
return [];
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* @param {JssResolve<unknown>} resolver
|
|
33
|
-
* @param {ComponentFactoryResult} factory
|
|
34
|
-
* @returns data
|
|
35
|
-
*/
|
|
36
|
-
function _resolveData(resolver, factory) {
|
|
37
|
-
const data = resolver.resolve({
|
|
38
|
-
activatedRoute: activatedRoute.snapshot,
|
|
39
|
-
routerState: router.routerState.snapshot,
|
|
40
|
-
rendering: factory.componentDefinition,
|
|
41
|
-
});
|
|
42
|
-
const data$ = wrapIntoObservable(data);
|
|
43
|
-
return data$.pipe(take(1)).toPromise();
|
|
44
|
-
}
|
|
45
|
-
return function resolveData(factories) {
|
|
46
|
-
return Promise.all(factories.map((factory) => {
|
|
47
|
-
const resolvers = collectResolverInstances(factory);
|
|
48
|
-
const pendingData = resolvers.map(([key, resolver]) => _resolveData(resolver, factory).then((data) => [key, data]));
|
|
49
|
-
return Promise.all(pendingData)
|
|
50
|
-
.then((allData) => allData.reduce((acc, [key, data]) => {
|
|
51
|
-
acc[key] = data;
|
|
52
|
-
return acc;
|
|
53
|
-
}, {}))
|
|
54
|
-
.then((data) => ({ factory, data }));
|
|
55
|
-
}));
|
|
56
|
-
};
|
|
57
|
-
}
|
|
1
|
+
import { take } from 'rxjs/operators';
|
|
2
|
+
import { wrapIntoObservable } from '../utils';
|
|
3
|
+
/**
|
|
4
|
+
* @param {Injector} injector
|
|
5
|
+
* @param {ActivatedRoute} activatedRoute
|
|
6
|
+
* @param {Router} router
|
|
7
|
+
* @returns resolved data
|
|
8
|
+
*/
|
|
9
|
+
export function dataResolverFactory(injector, activatedRoute, router) {
|
|
10
|
+
/**
|
|
11
|
+
* @param {JssResolve<unknown> | Type<JssResolve<unknown>>} resolver
|
|
12
|
+
* @returns resolver instance
|
|
13
|
+
*/
|
|
14
|
+
function getResolverInstance(resolver) {
|
|
15
|
+
return 'resolve' in resolver ? resolver : injector.get(resolver);
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* @param {ComponentFactoryResult} factory
|
|
19
|
+
* @returns {Array<[string, JssResolve<unknown>]>} resolver instances
|
|
20
|
+
*/
|
|
21
|
+
function collectResolverInstances(factory) {
|
|
22
|
+
if (factory.resolve) {
|
|
23
|
+
const resolve = factory.resolve;
|
|
24
|
+
return Object.keys(factory.resolve).map((key) => [
|
|
25
|
+
key,
|
|
26
|
+
getResolverInstance(resolve[key]),
|
|
27
|
+
]);
|
|
28
|
+
}
|
|
29
|
+
return [];
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* @param {JssResolve<unknown>} resolver
|
|
33
|
+
* @param {ComponentFactoryResult} factory
|
|
34
|
+
* @returns data
|
|
35
|
+
*/
|
|
36
|
+
function _resolveData(resolver, factory) {
|
|
37
|
+
const data = resolver.resolve({
|
|
38
|
+
activatedRoute: activatedRoute.snapshot,
|
|
39
|
+
routerState: router.routerState.snapshot,
|
|
40
|
+
rendering: factory.componentDefinition,
|
|
41
|
+
});
|
|
42
|
+
const data$ = wrapIntoObservable(data);
|
|
43
|
+
return data$.pipe(take(1)).toPromise();
|
|
44
|
+
}
|
|
45
|
+
return function resolveData(factories) {
|
|
46
|
+
return Promise.all(factories.map((factory) => {
|
|
47
|
+
const resolvers = collectResolverInstances(factory);
|
|
48
|
+
const pendingData = resolvers.map(([key, resolver]) => _resolveData(resolver, factory).then((data) => [key, data]));
|
|
49
|
+
return Promise.all(pendingData)
|
|
50
|
+
.then((allData) => allData.reduce((acc, [key, data]) => {
|
|
51
|
+
acc[key] = data;
|
|
52
|
+
return acc;
|
|
53
|
+
}, {}))
|
|
54
|
+
.then((data) => ({ factory, data }));
|
|
55
|
+
}));
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
58
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1yZXNvbHZlci1mYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvZGF0YS1yZXNvbHZlci1mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV0QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFHOUM7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsbUJBQW1CLENBQ2pDLFFBQWtCLEVBQ2xCLGNBQThCLEVBQzlCLE1BQWM7SUFFZDs7O09BR0c7SUFDSCxTQUFTLG1CQUFtQixDQUFDLFFBQXlEO1FBQ3BGLE9BQU8sU0FBUyxJQUFJLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFRDs7O09BR0c7SUFDSCxTQUFTLHdCQUF3QixDQUMvQixPQUErQjtRQUUvQixJQUFJLE9BQU8sQ0FBQyxPQUFPLEVBQUU7WUFDbkIsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQztZQUNoQyxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBaUMsRUFBRSxDQUFDO2dCQUM5RSxHQUFHO2dCQUNILG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUNsQyxDQUFDLENBQUM7U0FDSjtRQUVELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxTQUFTLFlBQVksQ0FBQyxRQUE2QixFQUFFLE9BQStCO1FBQ2xGLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUM7WUFDNUIsY0FBYyxFQUFFLGNBQWMsQ0FBQyxRQUFRO1lBQ3ZDLFdBQVcsRUFBRSxNQUFNLENBQUMsV0FBVyxDQUFDLFFBQVE7WUFDeEMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxtQkFBeUM7U0FDN0QsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxLQUFLLEdBQUcsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFdkMsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ3pDLENBQUM7SUFFRCxPQUFPLFNBQVMsV0FBVyxDQUFDLFNBQW1DO1FBQzdELE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FDaEIsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ3hCLE1BQU0sU0FBUyxHQUFHLHdCQUF3QixDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3BELE1BQU0sV0FBVyxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsRUFBRSxFQUFFLENBQ3BELFlBQVksQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFpQixFQUFFLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FDM0UsQ0FBQztZQUVGLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUM7aUJBQzVCLElBQUksQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQ2hCLE9BQU8sQ0FBQyxNQUFNLENBQXNCLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUU7Z0JBQ3ZELEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUM7Z0JBQ2hCLE9BQU8sR0FBRyxDQUFDO1lBQ2IsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUNQO2lCQUNBLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDekMsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RvciwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgQ29tcG9uZW50UmVuZGVyaW5nIH0gZnJvbSAnQHNpdGVjb3JlLWpzcy9zaXRlY29yZS1qc3MvbGF5b3V0JztcclxuaW1wb3J0IHsgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgQ29tcG9uZW50RmFjdG9yeVJlc3VsdCB9IGZyb20gJy4uL2pzcy1jb21wb25lbnQtZmFjdG9yeS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgd3JhcEludG9PYnNlcnZhYmxlIH0gZnJvbSAnLi4vdXRpbHMnO1xyXG5pbXBvcnQgeyBKc3NSZXNvbHZlIH0gZnJvbSAnLi9wbGFjZWhvbGRlci50b2tlbic7XHJcblxyXG4vKipcclxuICogQHBhcmFtIHtJbmplY3Rvcn0gaW5qZWN0b3JcclxuICogQHBhcmFtIHtBY3RpdmF0ZWRSb3V0ZX0gYWN0aXZhdGVkUm91dGVcclxuICogQHBhcmFtIHtSb3V0ZXJ9IHJvdXRlclxyXG4gKiBAcmV0dXJucyByZXNvbHZlZCBkYXRhXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZGF0YVJlc29sdmVyRmFjdG9yeShcclxuICBpbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gIHJvdXRlcjogUm91dGVyXHJcbikge1xyXG4gIC8qKlxyXG4gICAqIEBwYXJhbSB7SnNzUmVzb2x2ZTx1bmtub3duPiB8IFR5cGU8SnNzUmVzb2x2ZTx1bmtub3duPj59IHJlc29sdmVyXHJcbiAgICogQHJldHVybnMgcmVzb2x2ZXIgaW5zdGFuY2VcclxuICAgKi9cclxuICBmdW5jdGlvbiBnZXRSZXNvbHZlckluc3RhbmNlKHJlc29sdmVyOiBKc3NSZXNvbHZlPHVua25vd24+IHwgVHlwZTxKc3NSZXNvbHZlPHVua25vd24+Pikge1xyXG4gICAgcmV0dXJuICdyZXNvbHZlJyBpbiByZXNvbHZlciA/IHJlc29sdmVyIDogaW5qZWN0b3IuZ2V0KHJlc29sdmVyKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBwYXJhbSB7Q29tcG9uZW50RmFjdG9yeVJlc3VsdH0gZmFjdG9yeVxyXG4gICAqIEByZXR1cm5zIHtBcnJheTxbc3RyaW5nLCBKc3NSZXNvbHZlPHVua25vd24+XT59IHJlc29sdmVyIGluc3RhbmNlc1xyXG4gICAqL1xyXG4gIGZ1bmN0aW9uIGNvbGxlY3RSZXNvbHZlckluc3RhbmNlcyhcclxuICAgIGZhY3Rvcnk6IENvbXBvbmVudEZhY3RvcnlSZXN1bHRcclxuICApOiBBcnJheTxbc3RyaW5nLCBKc3NSZXNvbHZlPHVua25vd24+XT4ge1xyXG4gICAgaWYgKGZhY3RvcnkucmVzb2x2ZSkge1xyXG4gICAgICBjb25zdCByZXNvbHZlID0gZmFjdG9yeS5yZXNvbHZlO1xyXG4gICAgICByZXR1cm4gT2JqZWN0LmtleXMoZmFjdG9yeS5yZXNvbHZlKS5tYXAoKGtleSk6IFtzdHJpbmcsIEpzc1Jlc29sdmU8dW5rbm93bj5dID0+IFtcclxuICAgICAgICBrZXksXHJcbiAgICAgICAgZ2V0UmVzb2x2ZXJJbnN0YW5jZShyZXNvbHZlW2tleV0pLFxyXG4gICAgICBdKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gW107XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAcGFyYW0ge0pzc1Jlc29sdmU8dW5rbm93bj59IHJlc29sdmVyXHJcbiAgICogQHBhcmFtIHtDb21wb25lbnRGYWN0b3J5UmVzdWx0fSBmYWN0b3J5XHJcbiAgICogQHJldHVybnMgZGF0YVxyXG4gICAqL1xyXG4gIGZ1bmN0aW9uIF9yZXNvbHZlRGF0YShyZXNvbHZlcjogSnNzUmVzb2x2ZTx1bmtub3duPiwgZmFjdG9yeTogQ29tcG9uZW50RmFjdG9yeVJlc3VsdCkge1xyXG4gICAgY29uc3QgZGF0YSA9IHJlc29sdmVyLnJlc29sdmUoe1xyXG4gICAgICBhY3RpdmF0ZWRSb3V0ZTogYWN0aXZhdGVkUm91dGUuc25hcHNob3QsXHJcbiAgICAgIHJvdXRlclN0YXRlOiByb3V0ZXIucm91dGVyU3RhdGUuc25hcHNob3QsXHJcbiAgICAgIHJlbmRlcmluZzogZmFjdG9yeS5jb21wb25lbnREZWZpbml0aW9uIGFzIENvbXBvbmVudFJlbmRlcmluZyxcclxuICAgIH0pO1xyXG4gICAgY29uc3QgZGF0YSQgPSB3cmFwSW50b09ic2VydmFibGUoZGF0YSk7XHJcblxyXG4gICAgcmV0dXJuIGRhdGEkLnBpcGUodGFrZSgxKSkudG9Qcm9taXNlKCk7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gZnVuY3Rpb24gcmVzb2x2ZURhdGEoZmFjdG9yaWVzOiBDb21wb25lbnRGYWN0b3J5UmVzdWx0W10pIHtcclxuICAgIHJldHVybiBQcm9taXNlLmFsbChcclxuICAgICAgZmFjdG9yaWVzLm1hcCgoZmFjdG9yeSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHJlc29sdmVycyA9IGNvbGxlY3RSZXNvbHZlckluc3RhbmNlcyhmYWN0b3J5KTtcclxuICAgICAgICBjb25zdCBwZW5kaW5nRGF0YSA9IHJlc29sdmVycy5tYXAoKFtrZXksIHJlc29sdmVyXSkgPT5cclxuICAgICAgICAgIF9yZXNvbHZlRGF0YShyZXNvbHZlciwgZmFjdG9yeSkudGhlbigoZGF0YSk6IFtzdHJpbmcsIGFueV0gPT4gW2tleSwgZGF0YV0pXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKHBlbmRpbmdEYXRhKVxyXG4gICAgICAgICAgLnRoZW4oKGFsbERhdGEpID0+XHJcbiAgICAgICAgICAgIGFsbERhdGEucmVkdWNlPFJlY29yZDxzdHJpbmcsIGFueT4+KChhY2MsIFtrZXksIGRhdGFdKSA9PiB7XHJcbiAgICAgICAgICAgICAgYWNjW2tleV0gPSBkYXRhO1xyXG4gICAgICAgICAgICAgIHJldHVybiBhY2M7XHJcbiAgICAgICAgICAgIH0sIHt9KVxyXG4gICAgICAgICAgKVxyXG4gICAgICAgICAgLnRoZW4oKGRhdGEpID0+ICh7IGZhY3RvcnksIGRhdGEgfSkpO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9O1xyXG59XHJcbiJdfQ==
|