@sitecore-jss/sitecore-jss-angular 22.3.0-canary.8 → 22.3.0
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/cjs.d.ts +0 -1
- package/cjs.js +1 -4
- package/dist/components/date.directive.d.ts +5 -12
- package/dist/components/generic-link.directive.d.ts +1 -5
- package/dist/components/image.directive.d.ts +5 -13
- package/dist/components/link.directive.d.ts +4 -19
- package/dist/components/placeholder.component.d.ts +1 -23
- package/dist/components/rendering-field.d.ts +6 -4
- package/dist/components/rich-text.directive.d.ts +5 -12
- package/dist/components/router-link.directive.d.ts +1 -5
- package/dist/components/text.directive.d.ts +5 -12
- package/dist/esm2022/components/date.directive.mjs +12 -26
- package/dist/esm2022/components/generic-link.directive.mjs +2 -9
- package/dist/esm2022/components/image.directive.mjs +9 -31
- package/dist/esm2022/components/link.directive.mjs +6 -36
- package/dist/esm2022/components/placeholder.component.mjs +26 -186
- package/dist/esm2022/components/rendering-field.mjs +1 -1
- package/dist/esm2022/components/rich-text.directive.mjs +12 -26
- package/dist/esm2022/components/router-link.directive.mjs +2 -9
- package/dist/esm2022/components/text.directive.mjs +13 -27
- package/dist/esm2022/lib.module.mjs +3 -15
- package/dist/esm2022/public_api.mjs +4 -9
- package/dist/esm2022/services/jss-component-factory.service.mjs +3 -17
- package/dist/fesm2022/sitecore-jss-sitecore-jss-angular.mjs +81 -704
- package/dist/fesm2022/sitecore-jss-sitecore-jss-angular.mjs.map +1 -1
- package/dist/lib.module.d.ts +2 -4
- package/dist/public_api.d.ts +4 -10
- package/dist/services/jss-component-factory.service.d.ts +0 -1
- package/package.json +4 -4
- package/dist/components/base-field.directive.d.ts +0 -39
- package/dist/components/default-empty-image-field-editing-placeholder.component.d.ts +0 -8
- package/dist/components/default-empty-text-field-editing-placeholder.component.d.ts +0 -8
- package/dist/components/editing-scripts.component.d.ts +0 -16
- package/dist/components/field-metadata-marker.component.d.ts +0 -12
- package/dist/components/form.component.d.ts +0 -48
- package/dist/components/rendering-field-sxa.d.ts +0 -40
- package/dist/esm2022/components/base-field.directive.mjs +0 -56
- package/dist/esm2022/components/default-empty-image-field-editing-placeholder.component.mjs +0 -26
- package/dist/esm2022/components/default-empty-text-field-editing-placeholder.component.mjs +0 -17
- package/dist/esm2022/components/editing-scripts.component.mjs +0 -59
- package/dist/esm2022/components/field-metadata-marker.component.mjs +0 -36
- package/dist/esm2022/components/form.component.mjs +0 -135
- package/dist/esm2022/components/rendering-field-sxa.mjs +0 -2
- package/dist/esm2022/services/jss-state.service.mjs +0 -44
- package/dist/esm2022/services/shared.token.mjs +0 -6
- package/dist/services/jss-state.service.d.ts +0 -36
- package/dist/services/shared.token.d.ts +0 -12
package/cjs.d.ts
CHANGED
package/cjs.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { DatePipe } from '@angular/common';
|
|
2
|
-
import { OnChanges, SimpleChanges, TemplateRef,
|
|
2
|
+
import { OnChanges, SimpleChanges, TemplateRef, ViewContainerRef } from '@angular/core';
|
|
3
3
|
import { DateField } from './rendering-field';
|
|
4
|
-
import { BaseFieldDirective } from './base-field.directive';
|
|
5
4
|
import * as i0 from "@angular/core";
|
|
6
|
-
export declare class DateDirective
|
|
5
|
+
export declare class DateDirective implements OnChanges {
|
|
6
|
+
private viewContainer;
|
|
7
7
|
private templateRef;
|
|
8
8
|
private datePipe;
|
|
9
9
|
format?: string;
|
|
@@ -11,17 +11,10 @@ export declare class DateDirective extends BaseFieldDirective implements OnChang
|
|
|
11
11
|
locale?: string;
|
|
12
12
|
editable: boolean;
|
|
13
13
|
field: DateField;
|
|
14
|
-
|
|
15
|
-
* Custom template to render in Pages in Metadata edit mode if field value is empty
|
|
16
|
-
*/
|
|
17
|
-
emptyFieldEditingTemplate: TemplateRef<unknown>;
|
|
18
|
-
/**
|
|
19
|
-
* Default component to render in Pages in Metadata edit mode if field value is empty and emptyFieldEditingTemplate is not provided
|
|
20
|
-
*/
|
|
21
|
-
protected defaultFieldEditingComponent: Type<unknown>;
|
|
14
|
+
private viewRef;
|
|
22
15
|
constructor(viewContainer: ViewContainerRef, templateRef: TemplateRef<unknown>, datePipe: DatePipe);
|
|
23
16
|
ngOnChanges(changes: SimpleChanges): void;
|
|
24
17
|
private updateView;
|
|
25
18
|
static ɵfac: i0.ɵɵFactoryDeclaration<DateDirective, never>;
|
|
26
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<DateDirective, "[scDate]", never, { "format": { "alias": "scDateFormat"; "required": false; }; "timezone": { "alias": "scDateTimezone"; "required": false; }; "locale": { "alias": "scDateLocale"; "required": false; }; "editable": { "alias": "scDateEditable"; "required": false; }; "field": { "alias": "scDate"; "required": false; };
|
|
19
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<DateDirective, "[scDate]", never, { "format": { "alias": "scDateFormat"; "required": false; }; "timezone": { "alias": "scDateTimezone"; "required": false; }; "locale": { "alias": "scDateLocale"; "required": false; }; "editable": { "alias": "scDateEditable"; "required": false; }; "field": { "alias": "scDate"; "required": false; }; }, {}, never, never, false, never>;
|
|
27
20
|
}
|
|
@@ -11,14 +11,10 @@ export declare class GenericLinkDirective extends LinkDirective {
|
|
|
11
11
|
};
|
|
12
12
|
field: LinkField;
|
|
13
13
|
extras?: NavigationExtras;
|
|
14
|
-
/**
|
|
15
|
-
* Custom template to render in Pages in Metadata edit mode if field value is empty
|
|
16
|
-
*/
|
|
17
|
-
emptyFieldEditingTemplate: TemplateRef<unknown>;
|
|
18
14
|
constructor(viewContainer: ViewContainerRef, templateRef: TemplateRef<unknown>, renderer: Renderer2, elementRef: ElementRef, router: Router);
|
|
19
15
|
protected renderTemplate(props: {
|
|
20
16
|
[key: string]: string;
|
|
21
17
|
}, linkText: string): void;
|
|
22
18
|
static ɵfac: i0.ɵɵFactoryDeclaration<GenericLinkDirective, never>;
|
|
23
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<GenericLinkDirective, "[scGenericLink]", never, { "editable": { "alias": "scGenericLinkEditable"; "required": false; }; "attrs": { "alias": "scGenericLinkAttrs"; "required": false; }; "field": { "alias": "scGenericLink"; "required": false; }; "extras": { "alias": "scGenericLinkExtras"; "required": false; };
|
|
19
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<GenericLinkDirective, "[scGenericLink]", never, { "editable": { "alias": "scGenericLinkEditable"; "required": false; }; "attrs": { "alias": "scGenericLinkAttrs"; "required": false; }; "field": { "alias": "scGenericLink"; "required": false; }; "extras": { "alias": "scGenericLinkExtras"; "required": false; }; }, {}, never, never, false, never>;
|
|
24
20
|
}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { ElementRef, OnChanges, Renderer2, SimpleChanges, TemplateRef,
|
|
1
|
+
import { ElementRef, OnChanges, Renderer2, SimpleChanges, TemplateRef, ViewContainerRef } from '@angular/core';
|
|
2
2
|
import { ImageField } from './rendering-field';
|
|
3
|
-
import { BaseFieldDirective } from './base-field.directive';
|
|
4
3
|
import * as i0 from "@angular/core";
|
|
5
|
-
export declare class ImageDirective
|
|
4
|
+
export declare class ImageDirective implements OnChanges {
|
|
5
|
+
private viewContainer;
|
|
6
6
|
private templateRef;
|
|
7
7
|
private renderer;
|
|
8
8
|
private elementRef;
|
|
9
|
-
field: ImageField;
|
|
9
|
+
field: ImageField | '';
|
|
10
10
|
editable: boolean;
|
|
11
11
|
/**
|
|
12
12
|
* Custom regexp that finds media URL prefix that will be replaced by `/-/jssmedia` or `/~/jssmedia`.
|
|
@@ -22,14 +22,6 @@ export declare class ImageDirective extends BaseFieldDirective implements OnChan
|
|
|
22
22
|
attrs: {
|
|
23
23
|
[param: string]: unknown;
|
|
24
24
|
};
|
|
25
|
-
/**
|
|
26
|
-
* Custom template to render in Pages in Metadata edit mode if field value is empty
|
|
27
|
-
*/
|
|
28
|
-
emptyFieldEditingTemplate: TemplateRef<unknown>;
|
|
29
|
-
/**
|
|
30
|
-
* Default component to render in Pages in Metadata edit mode if field value is empty and emptyFieldEditingTemplate is not provided
|
|
31
|
-
*/
|
|
32
|
-
protected defaultFieldEditingComponent: Type<unknown>;
|
|
33
25
|
private inlineRef;
|
|
34
26
|
constructor(viewContainer: ViewContainerRef, templateRef: TemplateRef<unknown>, renderer: Renderer2, elementRef: ElementRef);
|
|
35
27
|
ngOnChanges(changes: SimpleChanges): void;
|
|
@@ -39,5 +31,5 @@ export declare class ImageDirective extends BaseFieldDirective implements OnChan
|
|
|
39
31
|
private getElementAttrs;
|
|
40
32
|
private renderInlineWrapper;
|
|
41
33
|
static ɵfac: i0.ɵɵFactoryDeclaration<ImageDirective, never>;
|
|
42
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<ImageDirective, "[scImage]", never, { "field": { "alias": "scImage"; "required": false; }; "editable": { "alias": "scImageEditable"; "required": false; }; "mediaUrlPrefix": { "alias": "scImageMediaUrlPrefix"; "required": false; }; "urlParams": { "alias": "scImageUrlParams"; "required": false; }; "attrs": { "alias": "scImageAttrs"; "required": false; };
|
|
34
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<ImageDirective, "[scImage]", never, { "field": { "alias": "scImage"; "required": false; }; "editable": { "alias": "scImageEditable"; "required": false; }; "mediaUrlPrefix": { "alias": "scImageMediaUrlPrefix"; "required": false; }; "urlParams": { "alias": "scImageUrlParams"; "required": false; }; "attrs": { "alias": "scImageAttrs"; "required": false; }; }, {}, never, never, false, never>;
|
|
43
35
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { ElementRef, OnChanges, Renderer2, SimpleChanges, TemplateRef,
|
|
1
|
+
import { ElementRef, OnChanges, Renderer2, SimpleChanges, TemplateRef, ViewContainerRef } from '@angular/core';
|
|
2
2
|
import { LinkField } from './rendering-field';
|
|
3
|
-
import { BaseFieldDirective } from './base-field.directive';
|
|
4
3
|
import * as i0 from "@angular/core";
|
|
5
|
-
export declare class LinkDirective
|
|
4
|
+
export declare class LinkDirective implements OnChanges {
|
|
5
|
+
protected viewContainer: ViewContainerRef;
|
|
6
6
|
protected templateRef: TemplateRef<unknown>;
|
|
7
7
|
protected renderer: Renderer2;
|
|
8
8
|
private elementRef;
|
|
@@ -11,14 +11,6 @@ export declare class LinkDirective extends BaseFieldDirective implements OnChang
|
|
|
11
11
|
[attr: string]: string;
|
|
12
12
|
};
|
|
13
13
|
field: LinkField;
|
|
14
|
-
/**
|
|
15
|
-
* Custom template to render in Pages in Metadata edit mode if field value is empty
|
|
16
|
-
*/
|
|
17
|
-
emptyFieldEditingTemplate: TemplateRef<unknown>;
|
|
18
|
-
/**
|
|
19
|
-
* Default component to render in Pages in Metadata edit mode if field value is empty and emptyFieldEditingTemplate is not provided
|
|
20
|
-
*/
|
|
21
|
-
protected defaultFieldEditingComponent: Type<unknown>;
|
|
22
14
|
private inlineRef;
|
|
23
15
|
constructor(viewContainer: ViewContainerRef, templateRef: TemplateRef<unknown>, renderer: Renderer2, elementRef: ElementRef);
|
|
24
16
|
ngOnChanges(changes: SimpleChanges): void;
|
|
@@ -26,16 +18,9 @@ export declare class LinkDirective extends BaseFieldDirective implements OnChang
|
|
|
26
18
|
[prop: string]: unknown;
|
|
27
19
|
}, linkText?: string): void;
|
|
28
20
|
protected updateAttribute(node: HTMLElement, key: string, propValue?: unknown): void;
|
|
29
|
-
/**
|
|
30
|
-
* Determines if directive should render the field as is
|
|
31
|
-
* Returns true if we are in edit mode 'chromes' (field.editable is present) or field is not empty
|
|
32
|
-
* or link field text is present and we are not in edit mode 'metadata'
|
|
33
|
-
* The right side of the expression was added to preserve existing functionality
|
|
34
|
-
*/
|
|
35
|
-
protected shouldRender(): boolean;
|
|
36
21
|
private updateView;
|
|
37
22
|
private renderInlineWrapper;
|
|
38
23
|
private getElementAttrs;
|
|
39
24
|
static ɵfac: i0.ɵɵFactoryDeclaration<LinkDirective, never>;
|
|
40
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<LinkDirective, "[scLink]", never, { "editable": { "alias": "scLinkEditable"; "required": false; }; "attrs": { "alias": "scLinkAttrs"; "required": false; }; "field": { "alias": "scLink"; "required": false; };
|
|
25
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<LinkDirective, "[scLink]", never, { "editable": { "alias": "scLinkEditable"; "required": false; }; "attrs": { "alias": "scLinkAttrs"; "required": false; }; "field": { "alias": "scLink"; "required": false; }; }, {}, never, never, false, never>;
|
|
41
26
|
}
|
|
@@ -6,7 +6,6 @@ import { DataResolver, GuardResolver } from '../services/placeholder.token';
|
|
|
6
6
|
import { PlaceholderLoadingDirective } from './placeholder-loading.directive';
|
|
7
7
|
import { RenderEachDirective } from './render-each.directive';
|
|
8
8
|
import { RenderEmptyDirective } from './render-empty.directive';
|
|
9
|
-
import { JssStateService } from '../services/jss-state.service';
|
|
10
9
|
import * as i0 from "@angular/core";
|
|
11
10
|
export interface FactoryWithData {
|
|
12
11
|
factory: ComponentFactoryResult;
|
|
@@ -24,7 +23,6 @@ export declare class PlaceholderComponent implements OnInit, OnChanges, DoCheck,
|
|
|
24
23
|
private guardResolver;
|
|
25
24
|
private dataResolver;
|
|
26
25
|
private platformId;
|
|
27
|
-
private jssState;
|
|
28
26
|
name?: string;
|
|
29
27
|
rendering: ComponentRendering;
|
|
30
28
|
renderings?: Array<ComponentRendering | HtmlElementRendering>;
|
|
@@ -38,18 +36,13 @@ export declare class PlaceholderComponent implements OnInit, OnChanges, DoCheck,
|
|
|
38
36
|
renderEmptyTemplate: RenderEmptyDirective;
|
|
39
37
|
placeholderLoading?: PlaceholderLoadingDirective;
|
|
40
38
|
private view;
|
|
41
|
-
private metadataNode;
|
|
42
39
|
isLoading: boolean;
|
|
43
|
-
metadataMode: boolean;
|
|
44
|
-
chromeType: string;
|
|
45
40
|
private _inputs;
|
|
46
41
|
private _differ;
|
|
47
42
|
private _componentInstances;
|
|
48
|
-
private placeholderData?;
|
|
49
43
|
private destroyed;
|
|
50
44
|
private parentStyleAttribute;
|
|
51
|
-
|
|
52
|
-
constructor(differs: KeyValueDiffers, componentFactory: JssComponentFactoryService, changeDetectorRef: ChangeDetectorRef, elementRef: ElementRef, renderer: Renderer2, router: Router, missingComponentComponent: Type<unknown>, hiddenRenderingComponent: Type<unknown>, guardResolver: GuardResolver, dataResolver: DataResolver, platformId: Object, jssState: JssStateService);
|
|
45
|
+
constructor(differs: KeyValueDiffers, componentFactory: JssComponentFactoryService, changeDetectorRef: ChangeDetectorRef, elementRef: ElementRef, renderer: Renderer2, router: Router, missingComponentComponent: Type<unknown>, hiddenRenderingComponent: Type<unknown>, guardResolver: GuardResolver, dataResolver: DataResolver, platformId: Object);
|
|
53
46
|
set inputs(value: {
|
|
54
47
|
[key: string]: unknown;
|
|
55
48
|
});
|
|
@@ -57,21 +50,6 @@ export declare class PlaceholderComponent implements OnInit, OnChanges, DoCheck,
|
|
|
57
50
|
ngOnDestroy(): void;
|
|
58
51
|
ngOnChanges(changes: SimpleChanges): void;
|
|
59
52
|
ngDoCheck(): void;
|
|
60
|
-
/**
|
|
61
|
-
* Gets id for Metadata code blocks, in specific format
|
|
62
|
-
* Metadata code blocks will wrap be added around placeholder content and each rendering component
|
|
63
|
-
* to allow for editing integration in Pages.
|
|
64
|
-
* @param {string} kind code block type ("open" or "close"). "open" is added before an element, and "close" added after one.
|
|
65
|
-
* @param {string?} renderingId rendering uid to apply as id to code block
|
|
66
|
-
* @returns {string} formatted id value for code HTML node
|
|
67
|
-
*/
|
|
68
|
-
getCodeBlockId: (kind: string, renderingId?: string) => string | undefined;
|
|
69
|
-
/**
|
|
70
|
-
* Get renderings/components to be rendered for current placeholder name
|
|
71
|
-
* Can modify the inner placeholders collection to adjust to using SXA dynamic placeholders
|
|
72
|
-
* @returns {ComponentRendering<ComponentFields> | HtmlElementRendering[] | null} List of renderings to be rendered
|
|
73
|
-
*/
|
|
74
|
-
private getPlaceholder;
|
|
75
53
|
private _setComponentInputs;
|
|
76
54
|
private _subscribeComponentOutputs;
|
|
77
55
|
private _render;
|
|
@@ -1,16 +1,18 @@
|
|
|
1
|
-
|
|
2
|
-
export interface RenderingField<V = GenericFieldValue> extends FieldMetadata {
|
|
1
|
+
export interface RenderingField<V = unknown> {
|
|
3
2
|
value?: V;
|
|
4
3
|
editable?: string;
|
|
5
4
|
}
|
|
6
|
-
export interface DateField
|
|
5
|
+
export interface DateField {
|
|
6
|
+
value?: string | number | Date;
|
|
7
|
+
editable?: string;
|
|
7
8
|
}
|
|
8
9
|
export interface FileFieldValue {
|
|
9
10
|
src?: string;
|
|
10
11
|
title?: string;
|
|
11
12
|
displayName?: string;
|
|
12
13
|
}
|
|
13
|
-
export interface FileField extends FileFieldValue, RenderingField
|
|
14
|
+
export interface FileField extends FileFieldValue, RenderingField {
|
|
15
|
+
value?: FileFieldValue;
|
|
14
16
|
}
|
|
15
17
|
export interface ImageFieldValue {
|
|
16
18
|
[key: string]: unknown;
|
|
@@ -1,25 +1,18 @@
|
|
|
1
|
-
import { OnChanges, SimpleChanges, TemplateRef, ViewContainerRef, Renderer2
|
|
1
|
+
import { OnChanges, SimpleChanges, TemplateRef, ViewContainerRef, Renderer2 } from '@angular/core';
|
|
2
2
|
import { Router } from '@angular/router';
|
|
3
3
|
import { RichTextField } from './rendering-field';
|
|
4
|
-
import { BaseFieldDirective } from './base-field.directive';
|
|
5
4
|
import * as i0 from "@angular/core";
|
|
6
|
-
export declare class RichTextDirective
|
|
5
|
+
export declare class RichTextDirective implements OnChanges {
|
|
6
|
+
private viewContainer;
|
|
7
7
|
private templateRef;
|
|
8
8
|
private renderer;
|
|
9
9
|
private router;
|
|
10
10
|
editable: boolean;
|
|
11
11
|
field: RichTextField;
|
|
12
|
-
|
|
13
|
-
* Custom template to render in Pages in Metadata edit mode if field value is empty
|
|
14
|
-
*/
|
|
15
|
-
emptyFieldEditingTemplate: TemplateRef<unknown>;
|
|
16
|
-
/**
|
|
17
|
-
* Default component to render in Pages in Metadata edit mode if field value is empty and emptyFieldEditingTemplate is not provided
|
|
18
|
-
*/
|
|
19
|
-
protected defaultFieldEditingComponent: Type<unknown>;
|
|
12
|
+
private viewRef;
|
|
20
13
|
constructor(viewContainer: ViewContainerRef, templateRef: TemplateRef<unknown>, renderer: Renderer2, router: Router);
|
|
21
14
|
ngOnChanges(changes: SimpleChanges): void;
|
|
22
15
|
private updateView;
|
|
23
16
|
static ɵfac: i0.ɵɵFactoryDeclaration<RichTextDirective, never>;
|
|
24
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<RichTextDirective, "[scRichText]", never, { "editable": { "alias": "scRichTextEditable"; "required": false; }; "field": { "alias": "scRichText"; "required": false; };
|
|
17
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<RichTextDirective, "[scRichText]", never, { "editable": { "alias": "scRichTextEditable"; "required": false; }; "field": { "alias": "scRichText"; "required": false; }; }, {}, never, never, false, never>;
|
|
25
18
|
}
|
|
@@ -10,14 +10,10 @@ export declare class RouterLinkDirective extends LinkDirective {
|
|
|
10
10
|
[attr: string]: string;
|
|
11
11
|
};
|
|
12
12
|
field: LinkField;
|
|
13
|
-
/**
|
|
14
|
-
* Custom template to render in Pages in Metadata edit mode if field value is empty
|
|
15
|
-
*/
|
|
16
|
-
emptyFieldEditingTemplate: TemplateRef<unknown>;
|
|
17
13
|
constructor(viewContainer: ViewContainerRef, templateRef: TemplateRef<unknown>, renderer: Renderer2, elementRef: ElementRef, router: Router);
|
|
18
14
|
protected renderTemplate(props: {
|
|
19
15
|
[prop: string]: string;
|
|
20
16
|
}, linkText: string): void;
|
|
21
17
|
static ɵfac: i0.ɵɵFactoryDeclaration<RouterLinkDirective, never>;
|
|
22
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<RouterLinkDirective, "[scRouterLink]", never, { "editable": { "alias": "scRouterLinkEditable"; "required": false; }; "attrs": { "alias": "scRouterLinkAttrs"; "required": false; }; "field": { "alias": "scRouterLink"; "required": false; };
|
|
18
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<RouterLinkDirective, "[scRouterLink]", never, { "editable": { "alias": "scRouterLinkEditable"; "required": false; }; "attrs": { "alias": "scRouterLinkAttrs"; "required": false; }; "field": { "alias": "scRouterLink"; "required": false; }; }, {}, never, never, false, never>;
|
|
23
19
|
}
|
|
@@ -1,23 +1,16 @@
|
|
|
1
|
-
import { OnChanges, SimpleChanges, TemplateRef,
|
|
1
|
+
import { OnChanges, SimpleChanges, TemplateRef, ViewContainerRef } from '@angular/core';
|
|
2
2
|
import { TextField } from './rendering-field';
|
|
3
|
-
import { BaseFieldDirective } from './base-field.directive';
|
|
4
3
|
import * as i0 from "@angular/core";
|
|
5
|
-
export declare class TextDirective
|
|
4
|
+
export declare class TextDirective implements OnChanges {
|
|
5
|
+
private viewContainer;
|
|
6
6
|
private templateRef;
|
|
7
7
|
editable: boolean;
|
|
8
8
|
encode: boolean;
|
|
9
9
|
field: TextField;
|
|
10
|
-
|
|
11
|
-
* Custom template to render in Pages in Metadata edit mode if field value is empty
|
|
12
|
-
*/
|
|
13
|
-
emptyFieldEditingTemplate: TemplateRef<unknown>;
|
|
14
|
-
/**
|
|
15
|
-
* Default component to render in Pages in Metadata edit mode if field value is empty and emptyFieldEditingTemplate is not provided
|
|
16
|
-
*/
|
|
17
|
-
protected defaultFieldEditingComponent: Type<unknown>;
|
|
10
|
+
private viewRef;
|
|
18
11
|
constructor(viewContainer: ViewContainerRef, templateRef: TemplateRef<unknown>);
|
|
19
12
|
ngOnChanges(changes: SimpleChanges): void;
|
|
20
13
|
private updateView;
|
|
21
14
|
static ɵfac: i0.ɵɵFactoryDeclaration<TextDirective, never>;
|
|
22
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<TextDirective, "[scText]", never, { "editable": { "alias": "scTextEditable"; "required": false; }; "encode": { "alias": "scTextEncode"; "required": false; }; "field": { "alias": "scText"; "required": false; };
|
|
15
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<TextDirective, "[scText]", never, { "editable": { "alias": "scTextEditable"; "required": false; }; "encode": { "alias": "scTextEncode"; "required": false; }; "field": { "alias": "scText"; "required": false; }; }, {}, never, never, false, never>;
|
|
23
16
|
}
|
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
import { Directive, Input, } from '@angular/core';
|
|
2
|
-
import { BaseFieldDirective } from './base-field.directive';
|
|
3
|
-
import { DefaultEmptyFieldEditingComponent } from './default-empty-text-field-editing-placeholder.component';
|
|
4
|
-
import { MetadataKind } from '@sitecore-jss/sitecore-jss/editing';
|
|
5
2
|
import * as i0 from "@angular/core";
|
|
6
3
|
import * as i1 from "@angular/common";
|
|
7
|
-
export class DateDirective
|
|
4
|
+
export class DateDirective {
|
|
5
|
+
viewContainer;
|
|
8
6
|
templateRef;
|
|
9
7
|
datePipe;
|
|
10
8
|
format;
|
|
@@ -12,35 +10,26 @@ export class DateDirective extends BaseFieldDirective {
|
|
|
12
10
|
locale;
|
|
13
11
|
editable = true;
|
|
14
12
|
field;
|
|
15
|
-
|
|
16
|
-
* Custom template to render in Pages in Metadata edit mode if field value is empty
|
|
17
|
-
*/
|
|
18
|
-
emptyFieldEditingTemplate;
|
|
19
|
-
/**
|
|
20
|
-
* Default component to render in Pages in Metadata edit mode if field value is empty and emptyFieldEditingTemplate is not provided
|
|
21
|
-
*/
|
|
22
|
-
defaultFieldEditingComponent;
|
|
13
|
+
viewRef;
|
|
23
14
|
constructor(viewContainer, templateRef, datePipe) {
|
|
24
|
-
|
|
15
|
+
this.viewContainer = viewContainer;
|
|
25
16
|
this.templateRef = templateRef;
|
|
26
17
|
this.datePipe = datePipe;
|
|
27
|
-
this.defaultFieldEditingComponent = DefaultEmptyFieldEditingComponent;
|
|
28
18
|
}
|
|
29
19
|
ngOnChanges(changes) {
|
|
30
20
|
if (changes.field || changes.format) {
|
|
31
|
-
this.
|
|
21
|
+
if (!this.viewRef) {
|
|
22
|
+
this.viewContainer.clear();
|
|
23
|
+
this.viewRef = this.viewContainer.createEmbeddedView(this.templateRef);
|
|
24
|
+
}
|
|
32
25
|
this.updateView();
|
|
33
26
|
}
|
|
34
27
|
}
|
|
35
28
|
updateView() {
|
|
36
|
-
|
|
37
|
-
|
|
29
|
+
const field = this.field;
|
|
30
|
+
if (!field || (!field.editable && !field.value)) {
|
|
38
31
|
return;
|
|
39
32
|
}
|
|
40
|
-
this.renderMetadata(MetadataKind.Open);
|
|
41
|
-
this.viewRef = this.viewContainer.createEmbeddedView(this.templateRef);
|
|
42
|
-
this.renderMetadata(MetadataKind.Close);
|
|
43
|
-
const field = this.field;
|
|
44
33
|
const html = field.editable && this.editable ? field.editable : field.value;
|
|
45
34
|
const setDangerously = field.editable && this.editable;
|
|
46
35
|
this.viewRef.rootNodes.forEach((node) => {
|
|
@@ -53,7 +42,7 @@ export class DateDirective extends BaseFieldDirective {
|
|
|
53
42
|
});
|
|
54
43
|
}
|
|
55
44
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: DateDirective, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }, { token: i1.DatePipe }], target: i0.ɵɵFactoryTarget.Directive });
|
|
56
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.11", type: DateDirective, selector: "[scDate]", inputs: { format: ["scDateFormat", "format"], timezone: ["scDateTimezone", "timezone"], locale: ["scDateLocale", "locale"], editable: ["scDateEditable", "editable"], field: ["scDate", "field"]
|
|
45
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.11", type: DateDirective, selector: "[scDate]", inputs: { format: ["scDateFormat", "format"], timezone: ["scDateTimezone", "timezone"], locale: ["scDateLocale", "locale"], editable: ["scDateEditable", "editable"], field: ["scDate", "field"] }, usesOnChanges: true, ngImport: i0 });
|
|
57
46
|
}
|
|
58
47
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: DateDirective, decorators: [{
|
|
59
48
|
type: Directive,
|
|
@@ -75,8 +64,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
|
|
|
75
64
|
}], field: [{
|
|
76
65
|
type: Input,
|
|
77
66
|
args: ['scDate']
|
|
78
|
-
}], emptyFieldEditingTemplate: [{
|
|
79
|
-
type: Input,
|
|
80
|
-
args: ['scDateEmptyFieldEditingTemplate']
|
|
81
67
|
}] } });
|
|
82
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9kYXRlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQ0wsU0FBUyxFQUVULEtBQUssR0FLTixNQUFNLGVBQWUsQ0FBQzs7O0FBTXZCLE1BQU0sT0FBTyxhQUFhO0lBY2Q7SUFDQTtJQUNBO0lBZmEsTUFBTSxDQUFVO0lBRWQsUUFBUSxDQUFVO0lBRXBCLE1BQU0sQ0FBVTtJQUVkLFFBQVEsR0FBRyxJQUFJLENBQUM7SUFFeEIsS0FBSyxDQUFZO0lBRTFCLE9BQU8sQ0FBMkI7SUFFMUMsWUFDVSxhQUErQixFQUMvQixXQUFpQyxFQUNqQyxRQUFrQjtRQUZsQixrQkFBYSxHQUFiLGFBQWEsQ0FBa0I7UUFDL0IsZ0JBQVcsR0FBWCxXQUFXLENBQXNCO1FBQ2pDLGFBQVEsR0FBUixRQUFRLENBQVU7SUFDekIsQ0FBQztJQUVKLFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxLQUFLLElBQUksT0FBTyxDQUFDLE1BQU0sRUFBRTtZQUNuQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRTtnQkFDakIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDM0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQzthQUN4RTtZQUVELElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztTQUNuQjtJQUNILENBQUM7SUFFTyxVQUFVO1FBQ2hCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7UUFFekIsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUMvQyxPQUFPO1NBQ1I7UUFFRCxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDNUUsTUFBTSxjQUFjLEdBQUcsS0FBSyxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDO1FBRXZELElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ3RDLElBQUksY0FBYyxFQUFFO2dCQUNsQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQzthQUN2QjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQzNGO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO3dHQS9DVSxhQUFhOzRGQUFiLGFBQWE7OzRGQUFiLGFBQWE7a0JBSHpCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFVBQVU7aUJBQ3JCO3NJQUV3QixNQUFNO3NCQUE1QixLQUFLO3VCQUFDLGNBQWM7Z0JBRUksUUFBUTtzQkFBaEMsS0FBSzt1QkFBQyxnQkFBZ0I7Z0JBRUEsTUFBTTtzQkFBNUIsS0FBSzt1QkFBQyxjQUFjO2dCQUVJLFFBQVE7c0JBQWhDLEtBQUs7dUJBQUMsZ0JBQWdCO2dCQUVOLEtBQUs7c0JBQXJCLEtBQUs7dUJBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGVQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHtcclxuICBEaXJlY3RpdmUsXHJcbiAgRW1iZWRkZWRWaWV3UmVmLFxyXG4gIElucHV0LFxyXG4gIE9uQ2hhbmdlcyxcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG4gIFRlbXBsYXRlUmVmLFxyXG4gIFZpZXdDb250YWluZXJSZWYsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERhdGVGaWVsZCB9IGZyb20gJy4vcmVuZGVyaW5nLWZpZWxkJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW3NjRGF0ZV0nLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGF0ZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XHJcbiAgQElucHV0KCdzY0RhdGVGb3JtYXQnKSBmb3JtYXQ/OiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgnc2NEYXRlVGltZXpvbmUnKSB0aW1lem9uZT86IHN0cmluZztcclxuXHJcbiAgQElucHV0KCdzY0RhdGVMb2NhbGUnKSBsb2NhbGU/OiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgnc2NEYXRlRWRpdGFibGUnKSBlZGl0YWJsZSA9IHRydWU7XHJcblxyXG4gIEBJbnB1dCgnc2NEYXRlJykgZmllbGQ6IERhdGVGaWVsZDtcclxuXHJcbiAgcHJpdmF0ZSB2aWV3UmVmOiBFbWJlZGRlZFZpZXdSZWY8dW5rbm93bj47XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmLFxyXG4gICAgcHJpdmF0ZSB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8dW5rbm93bj4sXHJcbiAgICBwcml2YXRlIGRhdGVQaXBlOiBEYXRlUGlwZVxyXG4gICkge31cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgaWYgKGNoYW5nZXMuZmllbGQgfHwgY2hhbmdlcy5mb3JtYXQpIHtcclxuICAgICAgaWYgKCF0aGlzLnZpZXdSZWYpIHtcclxuICAgICAgICB0aGlzLnZpZXdDb250YWluZXIuY2xlYXIoKTtcclxuICAgICAgICB0aGlzLnZpZXdSZWYgPSB0aGlzLnZpZXdDb250YWluZXIuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMudGVtcGxhdGVSZWYpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLnVwZGF0ZVZpZXcoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlVmlldygpIHtcclxuICAgIGNvbnN0IGZpZWxkID0gdGhpcy5maWVsZDtcclxuXHJcbiAgICBpZiAoIWZpZWxkIHx8ICghZmllbGQuZWRpdGFibGUgJiYgIWZpZWxkLnZhbHVlKSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgaHRtbCA9IGZpZWxkLmVkaXRhYmxlICYmIHRoaXMuZWRpdGFibGUgPyBmaWVsZC5lZGl0YWJsZSA6IGZpZWxkLnZhbHVlO1xyXG4gICAgY29uc3Qgc2V0RGFuZ2Vyb3VzbHkgPSBmaWVsZC5lZGl0YWJsZSAmJiB0aGlzLmVkaXRhYmxlO1xyXG5cclxuICAgIHRoaXMudmlld1JlZi5yb290Tm9kZXMuZm9yRWFjaCgobm9kZSkgPT4ge1xyXG4gICAgICBpZiAoc2V0RGFuZ2Vyb3VzbHkpIHtcclxuICAgICAgICBub2RlLmlubmVySFRNTCA9IGh0bWw7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgbm9kZS50ZXh0Q29udGVudCA9IHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKGh0bWwsIHRoaXMuZm9ybWF0LCB0aGlzLnRpbWV6b25lLCB0aGlzLmxvY2FsZSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -9,10 +9,6 @@ export class GenericLinkDirective extends LinkDirective {
|
|
|
9
9
|
attrs = {};
|
|
10
10
|
field;
|
|
11
11
|
extras;
|
|
12
|
-
/**
|
|
13
|
-
* Custom template to render in Pages in Metadata edit mode if field value is empty
|
|
14
|
-
*/
|
|
15
|
-
emptyFieldEditingTemplate;
|
|
16
12
|
constructor(viewContainer, templateRef, renderer, elementRef, router) {
|
|
17
13
|
super(viewContainer, templateRef, renderer, elementRef);
|
|
18
14
|
this.router = router;
|
|
@@ -51,7 +47,7 @@ export class GenericLinkDirective extends LinkDirective {
|
|
|
51
47
|
});
|
|
52
48
|
}
|
|
53
49
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: GenericLinkDirective, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i1.Router }], target: i0.ɵɵFactoryTarget.Directive });
|
|
54
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.11", type: GenericLinkDirective, selector: "[scGenericLink]", inputs: { editable: ["scGenericLinkEditable", "editable"], attrs: ["scGenericLinkAttrs", "attrs"], field: ["scGenericLink", "field"], extras: ["scGenericLinkExtras", "extras"]
|
|
50
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.11", type: GenericLinkDirective, selector: "[scGenericLink]", inputs: { editable: ["scGenericLinkEditable", "editable"], attrs: ["scGenericLinkAttrs", "attrs"], field: ["scGenericLink", "field"], extras: ["scGenericLinkExtras", "extras"] }, usesInheritance: true, ngImport: i0 });
|
|
55
51
|
}
|
|
56
52
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: GenericLinkDirective, decorators: [{
|
|
57
53
|
type: Directive,
|
|
@@ -68,8 +64,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
|
|
|
68
64
|
}], extras: [{
|
|
69
65
|
type: Input,
|
|
70
66
|
args: ['scGenericLinkExtras']
|
|
71
|
-
}], emptyFieldEditingTemplate: [{
|
|
72
|
-
type: Input,
|
|
73
|
-
args: ['scGenericLinkEmptyFieldEditingTemplate']
|
|
74
67
|
}] } });
|
|
75
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy1saW5rLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2dlbmVyaWMtbGluay5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxLQUFLLEdBSU4sTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7O0FBSWpELE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxhQUFhO0lBYzNDO0lBYnNCLFFBQVEsR0FBRyxJQUFJLENBQUM7SUFFbkIsS0FBSyxHQUE4QixFQUFFLENBQUM7SUFFbkMsS0FBSyxDQUFZO0lBRW5CLE1BQU0sQ0FBb0I7SUFFeEQsWUFDRSxhQUErQixFQUMvQixXQUFpQyxFQUNqQyxRQUFtQixFQUNuQixVQUFzQixFQUNkLE1BQWM7UUFFdEIsS0FBSyxDQUFDLGFBQWEsRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRmhELFdBQU0sR0FBTixNQUFNLENBQVE7SUFHeEIsQ0FBQztJQUVTLGNBQWMsQ0FBQyxLQUFnQyxFQUFFLFFBQWdCO1FBQ3pFLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRXhFLE9BQU8sQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDakMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxTQUFTLENBQW1CLEVBQUUsRUFBRTtnQkFDbkUsSUFBSSxHQUFHLEtBQUssTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxFQUFFO29CQUMvQyxNQUFNLFNBQVMsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUN2QyxNQUFNLEdBQUcsR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ3pCLE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDNUIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRTt3QkFDL0MsUUFBUSxFQUFFLE1BQU07d0JBQ2hCLEdBQUcsSUFBSSxDQUFDLE1BQU07cUJBQ2YsQ0FBQyxDQUFDO29CQUNILElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO29CQUNuRSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7d0JBQzVDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUU7NEJBQzFCLFFBQVEsRUFBRSxNQUFNOzRCQUNoQixHQUFHLElBQUksQ0FBQyxNQUFNO3lCQUNmLENBQUMsQ0FBQzt3QkFFSCw0REFBNEQ7d0JBQzVELElBQUksQ0FBQyxNQUFNLEVBQUU7NEJBQ1gsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO3lCQUN4QjtvQkFDSCxDQUFDLENBQUMsQ0FBQztpQkFDSjtxQkFBTTtvQkFDTCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsU0FBUyxDQUFDLENBQUM7aUJBQzVDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7WUFFSCxJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLFFBQVEsRUFBRTtnQkFDL0QsSUFBSSxDQUFDLFdBQVcsR0FBRyxRQUFRLENBQUM7YUFDN0I7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7d0dBckRVLG9CQUFvQjs0RkFBcEIsb0JBQW9COzs0RkFBcEIsb0JBQW9CO2tCQURoQyxTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFFO3FMQUVSLFFBQVE7c0JBQXZDLEtBQUs7dUJBQUMsdUJBQXVCO2dCQUVELEtBQUs7c0JBQWpDLEtBQUs7dUJBQUMsb0JBQW9CO2dCQUVLLEtBQUs7c0JBQXBDLEtBQUs7dUJBQUMsZUFBZTtnQkFFUSxNQUFNO3NCQUFuQyxLQUFLO3VCQUFDLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgRGlyZWN0aXZlLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgSW5wdXQsXHJcbiAgUmVuZGVyZXIyLFxyXG4gIFRlbXBsYXRlUmVmLFxyXG4gIFZpZXdDb250YWluZXJSZWYsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJvdXRlciwgTmF2aWdhdGlvbkV4dHJhcyB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IGlzQWJzb2x1dGVVcmwgfSBmcm9tICdAc2l0ZWNvcmUtanNzL3NpdGVjb3JlLWpzcy91dGlscyc7XHJcbmltcG9ydCB7IExpbmtEaXJlY3RpdmUgfSBmcm9tICcuL2xpbmsuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgTGlua0ZpZWxkIH0gZnJvbSAnLi9yZW5kZXJpbmctZmllbGQnO1xyXG5cclxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnW3NjR2VuZXJpY0xpbmtdJyB9KVxyXG5leHBvcnQgY2xhc3MgR2VuZXJpY0xpbmtEaXJlY3RpdmUgZXh0ZW5kcyBMaW5rRGlyZWN0aXZlIHtcclxuICBASW5wdXQoJ3NjR2VuZXJpY0xpbmtFZGl0YWJsZScpIGVkaXRhYmxlID0gdHJ1ZTtcclxuXHJcbiAgQElucHV0KCdzY0dlbmVyaWNMaW5rQXR0cnMnKSBhdHRyczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHt9O1xyXG5cclxuICBASW5wdXQoJ3NjR2VuZXJpY0xpbmsnKSBkZWNsYXJlIGZpZWxkOiBMaW5rRmllbGQ7XHJcblxyXG4gIEBJbnB1dCgnc2NHZW5lcmljTGlua0V4dHJhcycpIGV4dHJhcz86IE5hdmlnYXRpb25FeHRyYXM7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgdmlld0NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZixcclxuICAgIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjx1bmtub3duPixcclxuICAgIHJlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxyXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlclxyXG4gICkge1xyXG4gICAgc3VwZXIodmlld0NvbnRhaW5lciwgdGVtcGxhdGVSZWYsIHJlbmRlcmVyLCBlbGVtZW50UmVmKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCByZW5kZXJUZW1wbGF0ZShwcm9wczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSwgbGlua1RleHQ6IHN0cmluZykge1xyXG4gICAgY29uc3Qgdmlld1JlZiA9IHRoaXMudmlld0NvbnRhaW5lci5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy50ZW1wbGF0ZVJlZik7XHJcblxyXG4gICAgdmlld1JlZi5yb290Tm9kZXMuZm9yRWFjaCgobm9kZSkgPT4ge1xyXG4gICAgICBPYmplY3QuZW50cmllcyhwcm9wcykuZm9yRWFjaCgoW2tleSwgcHJvcFZhbHVlXTogW3N0cmluZywgc3RyaW5nXSkgPT4ge1xyXG4gICAgICAgIGlmIChrZXkgPT09ICdocmVmJyAmJiAhaXNBYnNvbHV0ZVVybChwcm9wVmFsdWUpKSB7XHJcbiAgICAgICAgICBjb25zdCBmcmFnbWVudHMgPSBwcm9wVmFsdWUuc3BsaXQoJyMnKTtcclxuICAgICAgICAgIGNvbnN0IHVybCA9IGZyYWdtZW50c1swXTtcclxuICAgICAgICAgIGNvbnN0IGFuY2hvciA9IGZyYWdtZW50c1sxXTtcclxuICAgICAgICAgIGNvbnN0IHVybFRyZWUgPSB0aGlzLnJvdXRlci5jcmVhdGVVcmxUcmVlKFt1cmxdLCB7XHJcbiAgICAgICAgICAgIGZyYWdtZW50OiBhbmNob3IsXHJcbiAgICAgICAgICAgIC4uLnRoaXMuZXh0cmFzLFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICB0aGlzLnVwZGF0ZUF0dHJpYnV0ZShub2RlLCBrZXksIHRoaXMucm91dGVyLnNlcmlhbGl6ZVVybCh1cmxUcmVlKSk7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLmxpc3Rlbihub2RlLCAnY2xpY2snLCAoZXZlbnQpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3VybF0sIHtcclxuICAgICAgICAgICAgICBmcmFnbWVudDogYW5jaG9yLFxyXG4gICAgICAgICAgICAgIC4uLnRoaXMuZXh0cmFzLFxyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIC8vIHNob3VsZG4ndCBwcmV2ZW50IGRlZmF1bHQgaWYgdGhlIGxpbmsgaW5jbHVkZXMgYSBmcmFnbWVudFxyXG4gICAgICAgICAgICBpZiAoIWFuY2hvcikge1xyXG4gICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnVwZGF0ZUF0dHJpYnV0ZShub2RlLCBrZXksIHByb3BWYWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIGlmIChub2RlLmNoaWxkTm9kZXMgJiYgbm9kZS5jaGlsZE5vZGVzLmxlbmd0aCA9PT0gMCAmJiBsaW5rVGV4dCkge1xyXG4gICAgICAgIG5vZGUudGV4dENvbnRlbnQgPSBsaW5rVGV4dDtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|