@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.
Files changed (47) hide show
  1. package/cjs.d.ts +0 -1
  2. package/cjs.js +1 -4
  3. package/dist/components/date.directive.d.ts +5 -12
  4. package/dist/components/generic-link.directive.d.ts +1 -5
  5. package/dist/components/image.directive.d.ts +5 -13
  6. package/dist/components/link.directive.d.ts +4 -19
  7. package/dist/components/placeholder.component.d.ts +1 -23
  8. package/dist/components/rendering-field.d.ts +6 -4
  9. package/dist/components/rich-text.directive.d.ts +5 -12
  10. package/dist/components/router-link.directive.d.ts +1 -5
  11. package/dist/components/text.directive.d.ts +5 -12
  12. package/dist/esm2022/components/date.directive.mjs +12 -26
  13. package/dist/esm2022/components/generic-link.directive.mjs +2 -9
  14. package/dist/esm2022/components/image.directive.mjs +9 -31
  15. package/dist/esm2022/components/link.directive.mjs +6 -36
  16. package/dist/esm2022/components/placeholder.component.mjs +26 -186
  17. package/dist/esm2022/components/rendering-field.mjs +1 -1
  18. package/dist/esm2022/components/rich-text.directive.mjs +12 -26
  19. package/dist/esm2022/components/router-link.directive.mjs +2 -9
  20. package/dist/esm2022/components/text.directive.mjs +13 -27
  21. package/dist/esm2022/lib.module.mjs +3 -15
  22. package/dist/esm2022/public_api.mjs +4 -9
  23. package/dist/esm2022/services/jss-component-factory.service.mjs +3 -17
  24. package/dist/fesm2022/sitecore-jss-sitecore-jss-angular.mjs +81 -704
  25. package/dist/fesm2022/sitecore-jss-sitecore-jss-angular.mjs.map +1 -1
  26. package/dist/lib.module.d.ts +2 -4
  27. package/dist/public_api.d.ts +4 -10
  28. package/dist/services/jss-component-factory.service.d.ts +0 -1
  29. package/package.json +4 -4
  30. package/dist/components/base-field.directive.d.ts +0 -39
  31. package/dist/components/default-empty-image-field-editing-placeholder.component.d.ts +0 -8
  32. package/dist/components/default-empty-text-field-editing-placeholder.component.d.ts +0 -8
  33. package/dist/components/editing-scripts.component.d.ts +0 -16
  34. package/dist/components/field-metadata-marker.component.d.ts +0 -12
  35. package/dist/components/form.component.d.ts +0 -48
  36. package/dist/components/rendering-field-sxa.d.ts +0 -40
  37. package/dist/esm2022/components/base-field.directive.mjs +0 -56
  38. package/dist/esm2022/components/default-empty-image-field-editing-placeholder.component.mjs +0 -26
  39. package/dist/esm2022/components/default-empty-text-field-editing-placeholder.component.mjs +0 -17
  40. package/dist/esm2022/components/editing-scripts.component.mjs +0 -59
  41. package/dist/esm2022/components/field-metadata-marker.component.mjs +0 -36
  42. package/dist/esm2022/components/form.component.mjs +0 -135
  43. package/dist/esm2022/components/rendering-field-sxa.mjs +0 -2
  44. package/dist/esm2022/services/jss-state.service.mjs +0 -44
  45. package/dist/esm2022/services/shared.token.mjs +0 -6
  46. package/dist/services/jss-state.service.d.ts +0 -36
  47. package/dist/services/shared.token.d.ts +0 -12
package/cjs.d.ts CHANGED
@@ -1,2 +1 @@
1
1
  export * from '@sitecore-jss/sitecore-jss';
2
- export * from '@sitecore-jss/sitecore-jss/graphql';
package/cjs.js CHANGED
@@ -1,4 +1 @@
1
- module.exports = {
2
- ...require('@sitecore-jss/sitecore-jss'),
3
- ...require('@sitecore-jss/sitecore-jss/graphql'),
4
- };
1
+ module.exports = require('@sitecore-jss/sitecore-jss');
@@ -1,9 +1,9 @@
1
1
  import { DatePipe } from '@angular/common';
2
- import { OnChanges, SimpleChanges, TemplateRef, Type, ViewContainerRef } from '@angular/core';
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 extends BaseFieldDirective implements OnChanges {
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; }; "emptyFieldEditingTemplate": { "alias": "scDateEmptyFieldEditingTemplate"; "required": false; }; }, {}, never, never, false, never>;
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; }; "emptyFieldEditingTemplate": { "alias": "scGenericLinkEmptyFieldEditingTemplate"; "required": false; }; }, {}, never, never, false, never>;
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, Type, ViewContainerRef } from '@angular/core';
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 extends BaseFieldDirective implements OnChanges {
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; }; "emptyFieldEditingTemplate": { "alias": "scImageEmptyFieldEditingTemplate"; "required": false; }; }, {}, never, never, false, never>;
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, Type, ViewContainerRef } from '@angular/core';
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 extends BaseFieldDirective implements OnChanges {
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; }; "emptyFieldEditingTemplate": { "alias": "scLinkEmptyFieldEditingTemplate"; "required": false; }; }, {}, never, never, false, never>;
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
- private contextSubscription;
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
- import { FieldMetadata, GenericFieldValue } from '@sitecore-jss/sitecore-jss/layout';
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 extends RenderingField<string | number | Date> {
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<FileFieldValue> {
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, Type } from '@angular/core';
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 extends BaseFieldDirective implements OnChanges {
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; }; "emptyFieldEditingTemplate": { "alias": "scRichTextEmptyFieldEditingTemplate"; "required": false; }; }, {}, never, never, false, never>;
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; }; "emptyFieldEditingTemplate": { "alias": "scRouterLinkEmptyFieldEditingTemplate"; "required": false; }; }, {}, never, never, false, never>;
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, Type, ViewContainerRef } from '@angular/core';
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 extends BaseFieldDirective implements OnChanges {
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; }; "emptyFieldEditingTemplate": { "alias": "scTextEmptyFieldEditingTemplate"; "required": false; }; }, {}, never, never, false, never>;
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 extends BaseFieldDirective {
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
- super(viewContainer);
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.viewContainer.clear();
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
- if (!this.shouldRender()) {
37
- super.renderEmpty();
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"], emptyFieldEditingTemplate: ["scDateEmptyFieldEditingTemplate", "emptyFieldEditingTemplate"] }, usesInheritance: true, usesOnChanges: true, ngImport: i0 });
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9kYXRlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssR0FNTixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUM3RyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7OztBQUtsRSxNQUFNLE9BQU8sYUFBYyxTQUFRLGtCQUFrQjtJQXVCekM7SUFDQTtJQXZCYSxNQUFNLENBQVU7SUFFZCxRQUFRLENBQVU7SUFFcEIsTUFBTSxDQUFVO0lBRWQsUUFBUSxHQUFHLElBQUksQ0FBQztJQUV4QixLQUFLLENBQVk7SUFFbEM7O09BRUc7SUFDdUMseUJBQXlCLENBQXVCO0lBRTFGOztPQUVHO0lBQ08sNEJBQTRCLENBQWdCO0lBRXRELFlBQ0UsYUFBK0IsRUFDdkIsV0FBaUMsRUFDakMsUUFBa0I7UUFFMUIsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBSGIsZ0JBQVcsR0FBWCxXQUFXLENBQXNCO1FBQ2pDLGFBQVEsR0FBUixRQUFRLENBQVU7UUFHMUIsSUFBSSxDQUFDLDRCQUE0QixHQUFHLGlDQUFpQyxDQUFDO0lBQ3hFLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxPQUFPLENBQUMsS0FBSyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUU7WUFDbkMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUMzQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7U0FDbkI7SUFDSCxDQUFDO0lBRU8sVUFBVTtRQUNoQixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxFQUFFO1lBQ3hCLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNwQixPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN2QyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3ZFLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXhDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7UUFFekIsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQzVFLE1BQU0sY0FBYyxHQUFHLEtBQUssQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUN2RCxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUN0QyxJQUFJLGNBQWMsRUFBRTtnQkFDbEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7YUFDdkI7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUMzRjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzt3R0ExRFUsYUFBYTs0RkFBYixhQUFhOzs0RkFBYixhQUFhO2tCQUh6QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxVQUFVO2lCQUNyQjtzSUFFd0IsTUFBTTtzQkFBNUIsS0FBSzt1QkFBQyxjQUFjO2dCQUVJLFFBQVE7c0JBQWhDLEtBQUs7dUJBQUMsZ0JBQWdCO2dCQUVBLE1BQU07c0JBQTVCLEtBQUs7dUJBQUMsY0FBYztnQkFFSSxRQUFRO3NCQUFoQyxLQUFLO3VCQUFDLGdCQUFnQjtnQkFFTixLQUFLO3NCQUFyQixLQUFLO3VCQUFDLFFBQVE7Z0JBSzJCLHlCQUF5QjtzQkFBbEUsS0FBSzt1QkFBQyxpQ0FBaUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7XHJcbiAgRGlyZWN0aXZlLFxyXG4gIElucHV0LFxyXG4gIE9uQ2hhbmdlcyxcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG4gIFRlbXBsYXRlUmVmLFxyXG4gIFR5cGUsXHJcbiAgVmlld0NvbnRhaW5lclJlZixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRGF0ZUZpZWxkIH0gZnJvbSAnLi9yZW5kZXJpbmctZmllbGQnO1xyXG5pbXBvcnQgeyBCYXNlRmllbGREaXJlY3RpdmUgfSBmcm9tICcuL2Jhc2UtZmllbGQuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgRGVmYXVsdEVtcHR5RmllbGRFZGl0aW5nQ29tcG9uZW50IH0gZnJvbSAnLi9kZWZhdWx0LWVtcHR5LXRleHQtZmllbGQtZWRpdGluZy1wbGFjZWhvbGRlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNZXRhZGF0YUtpbmQgfSBmcm9tICdAc2l0ZWNvcmUtanNzL3NpdGVjb3JlLWpzcy9lZGl0aW5nJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW3NjRGF0ZV0nLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGF0ZURpcmVjdGl2ZSBleHRlbmRzIEJhc2VGaWVsZERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XHJcbiAgQElucHV0KCdzY0RhdGVGb3JtYXQnKSBmb3JtYXQ/OiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgnc2NEYXRlVGltZXpvbmUnKSB0aW1lem9uZT86IHN0cmluZztcclxuXHJcbiAgQElucHV0KCdzY0RhdGVMb2NhbGUnKSBsb2NhbGU/OiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgnc2NEYXRlRWRpdGFibGUnKSBlZGl0YWJsZSA9IHRydWU7XHJcblxyXG4gIEBJbnB1dCgnc2NEYXRlJykgZmllbGQ6IERhdGVGaWVsZDtcclxuXHJcbiAgLyoqXHJcbiAgICogQ3VzdG9tIHRlbXBsYXRlIHRvIHJlbmRlciBpbiBQYWdlcyBpbiBNZXRhZGF0YSBlZGl0IG1vZGUgaWYgZmllbGQgdmFsdWUgaXMgZW1wdHlcclxuICAgKi9cclxuICBASW5wdXQoJ3NjRGF0ZUVtcHR5RmllbGRFZGl0aW5nVGVtcGxhdGUnKSBlbXB0eUZpZWxkRWRpdGluZ1RlbXBsYXRlOiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcclxuXHJcbiAgLyoqXHJcbiAgICogRGVmYXVsdCBjb21wb25lbnQgdG8gcmVuZGVyIGluIFBhZ2VzIGluIE1ldGFkYXRhIGVkaXQgbW9kZSBpZiBmaWVsZCB2YWx1ZSBpcyBlbXB0eSBhbmQgZW1wdHlGaWVsZEVkaXRpbmdUZW1wbGF0ZSBpcyBub3QgcHJvdmlkZWRcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgZGVmYXVsdEZpZWxkRWRpdGluZ0NvbXBvbmVudDogVHlwZTx1bmtub3duPjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICB2aWV3Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmLFxyXG4gICAgcHJpdmF0ZSB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8dW5rbm93bj4sXHJcbiAgICBwcml2YXRlIGRhdGVQaXBlOiBEYXRlUGlwZVxyXG4gICkge1xyXG4gICAgc3VwZXIodmlld0NvbnRhaW5lcik7XHJcbiAgICB0aGlzLmRlZmF1bHRGaWVsZEVkaXRpbmdDb21wb25lbnQgPSBEZWZhdWx0RW1wdHlGaWVsZEVkaXRpbmdDb21wb25lbnQ7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICBpZiAoY2hhbmdlcy5maWVsZCB8fCBjaGFuZ2VzLmZvcm1hdCkge1xyXG4gICAgICB0aGlzLnZpZXdDb250YWluZXIuY2xlYXIoKTtcclxuICAgICAgdGhpcy51cGRhdGVWaWV3KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHVwZGF0ZVZpZXcoKSB7XHJcbiAgICBpZiAoIXRoaXMuc2hvdWxkUmVuZGVyKCkpIHtcclxuICAgICAgc3VwZXIucmVuZGVyRW1wdHkoKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMucmVuZGVyTWV0YWRhdGEoTWV0YWRhdGFLaW5kLk9wZW4pO1xyXG4gICAgdGhpcy52aWV3UmVmID0gdGhpcy52aWV3Q29udGFpbmVyLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLnRlbXBsYXRlUmVmKTtcclxuICAgIHRoaXMucmVuZGVyTWV0YWRhdGEoTWV0YWRhdGFLaW5kLkNsb3NlKTtcclxuXHJcbiAgICBjb25zdCBmaWVsZCA9IHRoaXMuZmllbGQ7XHJcblxyXG4gICAgY29uc3QgaHRtbCA9IGZpZWxkLmVkaXRhYmxlICYmIHRoaXMuZWRpdGFibGUgPyBmaWVsZC5lZGl0YWJsZSA6IGZpZWxkLnZhbHVlO1xyXG4gICAgY29uc3Qgc2V0RGFuZ2Vyb3VzbHkgPSBmaWVsZC5lZGl0YWJsZSAmJiB0aGlzLmVkaXRhYmxlO1xyXG4gICAgdGhpcy52aWV3UmVmLnJvb3ROb2Rlcy5mb3JFYWNoKChub2RlKSA9PiB7XHJcbiAgICAgIGlmIChzZXREYW5nZXJvdXNseSkge1xyXG4gICAgICAgIG5vZGUuaW5uZXJIVE1MID0gaHRtbDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBub2RlLnRleHRDb250ZW50ID0gdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0oaHRtbCwgdGhpcy5mb3JtYXQsIHRoaXMudGltZXpvbmUsIHRoaXMubG9jYWxlKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
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"], emptyFieldEditingTemplate: ["scGenericLinkEmptyFieldEditingTemplate", "emptyFieldEditingTemplate"] }, usesInheritance: true, ngImport: i0 });
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy1saW5rLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2dlbmVyaWMtbGluay5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxLQUFLLEdBSU4sTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7O0FBSWpELE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxhQUFhO0lBcUIzQztJQXBCc0IsUUFBUSxHQUFHLElBQUksQ0FBQztJQUVuQixLQUFLLEdBQThCLEVBQUUsQ0FBQztJQUVuQyxLQUFLLENBQVk7SUFFbkIsTUFBTSxDQUFvQjtJQUV4RDs7T0FFRztJQUNzRCx5QkFBeUIsQ0FFaEY7SUFFRixZQUNFLGFBQStCLEVBQy9CLFdBQWlDLEVBQ2pDLFFBQW1CLEVBQ25CLFVBQXNCLEVBQ2QsTUFBYztRQUV0QixLQUFLLENBQUMsYUFBYSxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFGaEQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtJQUd4QixDQUFDO0lBRVMsY0FBYyxDQUFDLEtBQWdDLEVBQUUsUUFBZ0I7UUFDekUsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFeEUsT0FBTyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNqQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLFNBQVMsQ0FBbUIsRUFBRSxFQUFFO2dCQUNuRSxJQUFJLEdBQUcsS0FBSyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEVBQUU7b0JBQy9DLE1BQU0sU0FBUyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7b0JBQ3ZDLE1BQU0sR0FBRyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDekIsTUFBTSxNQUFNLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUM1QixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFO3dCQUMvQyxRQUFRLEVBQUUsTUFBTTt3QkFDaEIsR0FBRyxJQUFJLENBQUMsTUFBTTtxQkFDZixDQUFDLENBQUM7b0JBQ0gsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7b0JBQ25FLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTt3QkFDNUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRTs0QkFDMUIsUUFBUSxFQUFFLE1BQU07NEJBQ2hCLEdBQUcsSUFBSSxDQUFDLE1BQU07eUJBQ2YsQ0FBQyxDQUFDO3dCQUVILDREQUE0RDt3QkFDNUQsSUFBSSxDQUFDLE1BQU0sRUFBRTs0QkFDWCxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7eUJBQ3hCO29CQUNILENBQUMsQ0FBQyxDQUFDO2lCQUNKO3FCQUFNO29CQUNMLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxTQUFTLENBQUMsQ0FBQztpQkFDNUM7WUFDSCxDQUFDLENBQUMsQ0FBQztZQUVILElBQUksSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksUUFBUSxFQUFFO2dCQUMvRCxJQUFJLENBQUMsV0FBVyxHQUFHLFFBQVEsQ0FBQzthQUM3QjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzt3R0E1RFUsb0JBQW9COzRGQUFwQixvQkFBb0I7OzRGQUFwQixvQkFBb0I7a0JBRGhDLFNBQVM7bUJBQUMsRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUU7cUxBRVIsUUFBUTtzQkFBdkMsS0FBSzt1QkFBQyx1QkFBdUI7Z0JBRUQsS0FBSztzQkFBakMsS0FBSzt1QkFBQyxvQkFBb0I7Z0JBRUssS0FBSztzQkFBcEMsS0FBSzt1QkFBQyxlQUFlO2dCQUVRLE1BQU07c0JBQW5DLEtBQUs7dUJBQUMscUJBQXFCO2dCQUs2Qix5QkFBeUI7c0JBQWpGLEtBQUs7dUJBQUMsd0NBQXdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBEaXJlY3RpdmUsXHJcbiAgRWxlbWVudFJlZixcclxuICBJbnB1dCxcclxuICBSZW5kZXJlcjIsXHJcbiAgVGVtcGxhdGVSZWYsXHJcbiAgVmlld0NvbnRhaW5lclJlZixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUm91dGVyLCBOYXZpZ2F0aW9uRXh0cmFzIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgaXNBYnNvbHV0ZVVybCB9IGZyb20gJ0BzaXRlY29yZS1qc3Mvc2l0ZWNvcmUtanNzL3V0aWxzJztcclxuaW1wb3J0IHsgTGlua0RpcmVjdGl2ZSB9IGZyb20gJy4vbGluay5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBMaW5rRmllbGQgfSBmcm9tICcuL3JlbmRlcmluZy1maWVsZCc7XHJcblxyXG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICdbc2NHZW5lcmljTGlua10nIH0pXHJcbmV4cG9ydCBjbGFzcyBHZW5lcmljTGlua0RpcmVjdGl2ZSBleHRlbmRzIExpbmtEaXJlY3RpdmUge1xyXG4gIEBJbnB1dCgnc2NHZW5lcmljTGlua0VkaXRhYmxlJykgZWRpdGFibGUgPSB0cnVlO1xyXG5cclxuICBASW5wdXQoJ3NjR2VuZXJpY0xpbmtBdHRycycpIGF0dHJzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge307XHJcblxyXG4gIEBJbnB1dCgnc2NHZW5lcmljTGluaycpIGRlY2xhcmUgZmllbGQ6IExpbmtGaWVsZDtcclxuXHJcbiAgQElucHV0KCdzY0dlbmVyaWNMaW5rRXh0cmFzJykgZXh0cmFzPzogTmF2aWdhdGlvbkV4dHJhcztcclxuXHJcbiAgLyoqXHJcbiAgICogQ3VzdG9tIHRlbXBsYXRlIHRvIHJlbmRlciBpbiBQYWdlcyBpbiBNZXRhZGF0YSBlZGl0IG1vZGUgaWYgZmllbGQgdmFsdWUgaXMgZW1wdHlcclxuICAgKi9cclxuICBASW5wdXQoJ3NjR2VuZXJpY0xpbmtFbXB0eUZpZWxkRWRpdGluZ1RlbXBsYXRlJykgZGVjbGFyZSBlbXB0eUZpZWxkRWRpdGluZ1RlbXBsYXRlOiBUZW1wbGF0ZVJlZjxcclxuICAgIHVua25vd25cclxuICA+O1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHZpZXdDb250YWluZXI6IFZpZXdDb250YWluZXJSZWYsXHJcbiAgICB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8dW5rbm93bj4sXHJcbiAgICByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgZWxlbWVudFJlZjogRWxlbWVudFJlZixcclxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXJcclxuICApIHtcclxuICAgIHN1cGVyKHZpZXdDb250YWluZXIsIHRlbXBsYXRlUmVmLCByZW5kZXJlciwgZWxlbWVudFJlZik7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgcmVuZGVyVGVtcGxhdGUocHJvcHM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0sIGxpbmtUZXh0OiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IHZpZXdSZWYgPSB0aGlzLnZpZXdDb250YWluZXIuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMudGVtcGxhdGVSZWYpO1xyXG5cclxuICAgIHZpZXdSZWYucm9vdE5vZGVzLmZvckVhY2goKG5vZGUpID0+IHtcclxuICAgICAgT2JqZWN0LmVudHJpZXMocHJvcHMpLmZvckVhY2goKFtrZXksIHByb3BWYWx1ZV06IFtzdHJpbmcsIHN0cmluZ10pID0+IHtcclxuICAgICAgICBpZiAoa2V5ID09PSAnaHJlZicgJiYgIWlzQWJzb2x1dGVVcmwocHJvcFZhbHVlKSkge1xyXG4gICAgICAgICAgY29uc3QgZnJhZ21lbnRzID0gcHJvcFZhbHVlLnNwbGl0KCcjJyk7XHJcbiAgICAgICAgICBjb25zdCB1cmwgPSBmcmFnbWVudHNbMF07XHJcbiAgICAgICAgICBjb25zdCBhbmNob3IgPSBmcmFnbWVudHNbMV07XHJcbiAgICAgICAgICBjb25zdCB1cmxUcmVlID0gdGhpcy5yb3V0ZXIuY3JlYXRlVXJsVHJlZShbdXJsXSwge1xyXG4gICAgICAgICAgICBmcmFnbWVudDogYW5jaG9yLFxyXG4gICAgICAgICAgICAuLi50aGlzLmV4dHJhcyxcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgdGhpcy51cGRhdGVBdHRyaWJ1dGUobm9kZSwga2V5LCB0aGlzLnJvdXRlci5zZXJpYWxpemVVcmwodXJsVHJlZSkpO1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5saXN0ZW4obm9kZSwgJ2NsaWNrJywgKGV2ZW50KSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFt1cmxdLCB7XHJcbiAgICAgICAgICAgICAgZnJhZ21lbnQ6IGFuY2hvcixcclxuICAgICAgICAgICAgICAuLi50aGlzLmV4dHJhcyxcclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAvLyBzaG91bGRuJ3QgcHJldmVudCBkZWZhdWx0IGlmIHRoZSBsaW5rIGluY2x1ZGVzIGEgZnJhZ21lbnRcclxuICAgICAgICAgICAgaWYgKCFhbmNob3IpIHtcclxuICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy51cGRhdGVBdHRyaWJ1dGUobm9kZSwga2V5LCBwcm9wVmFsdWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcblxyXG4gICAgICBpZiAobm9kZS5jaGlsZE5vZGVzICYmIG5vZGUuY2hpbGROb2Rlcy5sZW5ndGggPT09IDAgJiYgbGlua1RleHQpIHtcclxuICAgICAgICBub2RlLnRleHRDb250ZW50ID0gbGlua1RleHQ7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iXX0=
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy1saW5rLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2dlbmVyaWMtbGluay5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxLQUFLLEdBSU4sTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7O0FBSWpELE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxhQUFhO0lBYzNDO0lBYnNCLFFBQVEsR0FBRyxJQUFJLENBQUM7SUFFbkIsS0FBSyxHQUE4QixFQUFFLENBQUM7SUFFbkMsS0FBSyxDQUFZO0lBRW5CLE1BQU0sQ0FBb0I7SUFFeEQsWUFDRSxhQUErQixFQUMvQixXQUFpQyxFQUNqQyxRQUFtQixFQUNuQixVQUFzQixFQUNkLE1BQWM7UUFFdEIsS0FBSyxDQUFDLGFBQWEsRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRmhELFdBQU0sR0FBTixNQUFNLENBQVE7SUFHeEIsQ0FBQztJQUVTLGNBQWMsQ0FBQyxLQUFnQyxFQUFFLFFBQWdCO1FBQ3pFLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRXhFLE9BQU8sQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDakMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxTQUFTLENBQW1CLEVBQUUsRUFBRTtnQkFDbkUsSUFBSSxHQUFHLEtBQUssTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxFQUFFO29CQUMvQyxNQUFNLFNBQVMsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUN2QyxNQUFNLEdBQUcsR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ3pCLE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDNUIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRTt3QkFDL0MsUUFBUSxFQUFFLE1BQU07d0JBQ2hCLEdBQUcsSUFBSSxDQUFDLE1BQU07cUJBQ2YsQ0FBQyxDQUFDO29CQUNILElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO29CQUNuRSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7d0JBQzVDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUU7NEJBQzFCLFFBQVEsRUFBRSxNQUFNOzRCQUNoQixHQUFHLElBQUksQ0FBQyxNQUFNO3lCQUNmLENBQUMsQ0FBQzt3QkFFSCw0REFBNEQ7d0JBQzVELElBQUksQ0FBQyxNQUFNLEVBQUU7NEJBQ1gsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO3lCQUN4QjtvQkFDSCxDQUFDLENBQUMsQ0FBQztpQkFDSjtxQkFBTTtvQkFDTCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsU0FBUyxDQUFDLENBQUM7aUJBQzVDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7WUFFSCxJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLFFBQVEsRUFBRTtnQkFDL0QsSUFBSSxDQUFDLFdBQVcsR0FBRyxRQUFRLENBQUM7YUFDN0I7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7d0dBckRVLG9CQUFvQjs0RkFBcEIsb0JBQW9COzs0RkFBcEIsb0JBQW9CO2tCQURoQyxTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFFO3FMQUVSLFFBQVE7c0JBQXZDLEtBQUs7dUJBQUMsdUJBQXVCO2dCQUVELEtBQUs7c0JBQWpDLEtBQUs7dUJBQUMsb0JBQW9CO2dCQUVLLEtBQUs7c0JBQXBDLEtBQUs7dUJBQUMsZUFBZTtnQkFFUSxNQUFNO3NCQUFuQyxLQUFLO3VCQUFDLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgRGlyZWN0aXZlLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgSW5wdXQsXHJcbiAgUmVuZGVyZXIyLFxyXG4gIFRlbXBsYXRlUmVmLFxyXG4gIFZpZXdDb250YWluZXJSZWYsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJvdXRlciwgTmF2aWdhdGlvbkV4dHJhcyB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IGlzQWJzb2x1dGVVcmwgfSBmcm9tICdAc2l0ZWNvcmUtanNzL3NpdGVjb3JlLWpzcy91dGlscyc7XHJcbmltcG9ydCB7IExpbmtEaXJlY3RpdmUgfSBmcm9tICcuL2xpbmsuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgTGlua0ZpZWxkIH0gZnJvbSAnLi9yZW5kZXJpbmctZmllbGQnO1xyXG5cclxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnW3NjR2VuZXJpY0xpbmtdJyB9KVxyXG5leHBvcnQgY2xhc3MgR2VuZXJpY0xpbmtEaXJlY3RpdmUgZXh0ZW5kcyBMaW5rRGlyZWN0aXZlIHtcclxuICBASW5wdXQoJ3NjR2VuZXJpY0xpbmtFZGl0YWJsZScpIGVkaXRhYmxlID0gdHJ1ZTtcclxuXHJcbiAgQElucHV0KCdzY0dlbmVyaWNMaW5rQXR0cnMnKSBhdHRyczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHt9O1xyXG5cclxuICBASW5wdXQoJ3NjR2VuZXJpY0xpbmsnKSBkZWNsYXJlIGZpZWxkOiBMaW5rRmllbGQ7XHJcblxyXG4gIEBJbnB1dCgnc2NHZW5lcmljTGlua0V4dHJhcycpIGV4dHJhcz86IE5hdmlnYXRpb25FeHRyYXM7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgdmlld0NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZixcclxuICAgIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjx1bmtub3duPixcclxuICAgIHJlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxyXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlclxyXG4gICkge1xyXG4gICAgc3VwZXIodmlld0NvbnRhaW5lciwgdGVtcGxhdGVSZWYsIHJlbmRlcmVyLCBlbGVtZW50UmVmKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCByZW5kZXJUZW1wbGF0ZShwcm9wczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSwgbGlua1RleHQ6IHN0cmluZykge1xyXG4gICAgY29uc3Qgdmlld1JlZiA9IHRoaXMudmlld0NvbnRhaW5lci5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy50ZW1wbGF0ZVJlZik7XHJcblxyXG4gICAgdmlld1JlZi5yb290Tm9kZXMuZm9yRWFjaCgobm9kZSkgPT4ge1xyXG4gICAgICBPYmplY3QuZW50cmllcyhwcm9wcykuZm9yRWFjaCgoW2tleSwgcHJvcFZhbHVlXTogW3N0cmluZywgc3RyaW5nXSkgPT4ge1xyXG4gICAgICAgIGlmIChrZXkgPT09ICdocmVmJyAmJiAhaXNBYnNvbHV0ZVVybChwcm9wVmFsdWUpKSB7XHJcbiAgICAgICAgICBjb25zdCBmcmFnbWVudHMgPSBwcm9wVmFsdWUuc3BsaXQoJyMnKTtcclxuICAgICAgICAgIGNvbnN0IHVybCA9IGZyYWdtZW50c1swXTtcclxuICAgICAgICAgIGNvbnN0IGFuY2hvciA9IGZyYWdtZW50c1sxXTtcclxuICAgICAgICAgIGNvbnN0IHVybFRyZWUgPSB0aGlzLnJvdXRlci5jcmVhdGVVcmxUcmVlKFt1cmxdLCB7XHJcbiAgICAgICAgICAgIGZyYWdtZW50OiBhbmNob3IsXHJcbiAgICAgICAgICAgIC4uLnRoaXMuZXh0cmFzLFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICB0aGlzLnVwZGF0ZUF0dHJpYnV0ZShub2RlLCBrZXksIHRoaXMucm91dGVyLnNlcmlhbGl6ZVVybCh1cmxUcmVlKSk7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLmxpc3Rlbihub2RlLCAnY2xpY2snLCAoZXZlbnQpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3VybF0sIHtcclxuICAgICAgICAgICAgICBmcmFnbWVudDogYW5jaG9yLFxyXG4gICAgICAgICAgICAgIC4uLnRoaXMuZXh0cmFzLFxyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIC8vIHNob3VsZG4ndCBwcmV2ZW50IGRlZmF1bHQgaWYgdGhlIGxpbmsgaW5jbHVkZXMgYSBmcmFnbWVudFxyXG4gICAgICAgICAgICBpZiAoIWFuY2hvcikge1xyXG4gICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnVwZGF0ZUF0dHJpYnV0ZShub2RlLCBrZXksIHByb3BWYWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIGlmIChub2RlLmNoaWxkTm9kZXMgJiYgbm9kZS5jaGlsZE5vZGVzLmxlbmd0aCA9PT0gMCAmJiBsaW5rVGV4dCkge1xyXG4gICAgICAgIG5vZGUudGV4dENvbnRlbnQgPSBsaW5rVGV4dDtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==