@acorex/components 18.5.12 → 18.5.14

Sign up to get free protection for your applications and to get access to all the features.
Files changed (59) hide show
  1. package/README.md +29 -4
  2. package/calendar/lib/calendar-range.component.d.ts +2 -1
  3. package/comment/index.d.ts +1 -1
  4. package/comment/lib/comment-container/comment-container.component.d.ts +1 -1
  5. package/comment/lib/comment-item/comment-item.component.d.ts +1 -1
  6. package/comment/lib/comment-reply-text/comment-reply-text.component.d.ts +5 -0
  7. package/comment/lib/comment.module.d.ts +6 -6
  8. package/datetime-box/lib/datetime-box.component.d.ts +1 -1
  9. package/dialog/lib/dialog.class.d.ts +1 -0
  10. package/esm2022/calendar/lib/calendar-range.component.mjs +7 -7
  11. package/esm2022/calendar/lib/calendar.component.mjs +3 -3
  12. package/esm2022/comment/index.mjs +2 -2
  13. package/esm2022/comment/lib/comment-container/comment-container.component.mjs +3 -3
  14. package/esm2022/comment/lib/comment-item/comment-item.component.mjs +4 -5
  15. package/esm2022/comment/lib/comment-reply-text/comment-reply-text.component.mjs +12 -0
  16. package/esm2022/comment/lib/comment.module.mjs +7 -7
  17. package/esm2022/datetime-box/lib/datetime-box.component.mjs +2 -2
  18. package/esm2022/datetime-picker/lib/datetime-picker.component.mjs +4 -1
  19. package/esm2022/dialog/lib/dialog.class.mjs +1 -1
  20. package/esm2022/dialog/lib/dialog.component.mjs +3 -3
  21. package/esm2022/number-box/lib/number-box.component.mjs +1 -1
  22. package/esm2022/uploader/index.mjs +2 -1
  23. package/esm2022/uploader/lib/uploader-browse-handle.directive.mjs +3 -3
  24. package/esm2022/uploader/lib/uploader-drop-zone.component.mjs +1 -1
  25. package/esm2022/uploader/lib/uploader-zone.directive.mjs +41 -12
  26. package/esm2022/uploader/lib/uploader.models.mjs +37 -31
  27. package/esm2022/uploader/lib/uploader.module.mjs +3 -8
  28. package/esm2022/uploader/lib/uploader.service.mjs +20 -5
  29. package/esm2022/wysiwyg/lib/wysiwyg/wysiwyg-container/wysiwyg-container.component.mjs +2 -2
  30. package/esm2022/wysiwyg/lib/wysiwyg/wysiwyg-toolbar/wysiwyg-toolbar.component.mjs +62 -19
  31. package/esm2022/wysiwyg/lib/wysiwyg/wysiwyg-view/wysiwyg-view.component.mjs +24 -5
  32. package/esm2022/wysiwyg/lib/wysiwyg/wysiwyg.service.mjs +2 -1
  33. package/fesm2022/acorex-components-calendar.mjs +8 -8
  34. package/fesm2022/acorex-components-calendar.mjs.map +1 -1
  35. package/fesm2022/acorex-components-comment.mjs +27 -48
  36. package/fesm2022/acorex-components-comment.mjs.map +1 -1
  37. package/fesm2022/acorex-components-datetime-box.mjs +1 -1
  38. package/fesm2022/acorex-components-datetime-box.mjs.map +1 -1
  39. package/fesm2022/acorex-components-datetime-picker.mjs +3 -0
  40. package/fesm2022/acorex-components-datetime-picker.mjs.map +1 -1
  41. package/fesm2022/acorex-components-dialog.mjs +2 -2
  42. package/fesm2022/acorex-components-dialog.mjs.map +1 -1
  43. package/fesm2022/acorex-components-number-box.mjs.map +1 -1
  44. package/fesm2022/acorex-components-uploader.mjs +101 -54
  45. package/fesm2022/acorex-components-uploader.mjs.map +1 -1
  46. package/fesm2022/acorex-components-wysiwyg.mjs +84 -22
  47. package/fesm2022/acorex-components-wysiwyg.mjs.map +1 -1
  48. package/number-box/lib/number-box.component.d.ts +1 -1
  49. package/package.json +43 -43
  50. package/uploader/index.d.ts +1 -0
  51. package/uploader/lib/uploader-zone.directive.d.ts +9 -5
  52. package/uploader/lib/uploader.models.d.ts +26 -9
  53. package/uploader/lib/uploader.module.d.ts +10 -11
  54. package/uploader/lib/uploader.service.d.ts +8 -4
  55. package/wysiwyg/lib/wysiwyg/wysiwyg-toolbar/wysiwyg-toolbar.component.d.ts +19 -4
  56. package/wysiwyg/lib/wysiwyg/wysiwyg-view/wysiwyg-view.component.d.ts +6 -1
  57. package/wysiwyg/lib/wysiwyg/wysiwyg.service.d.ts +1 -0
  58. package/comment/lib/comment-input/comment-input.component.d.ts +0 -10
  59. package/esm2022/comment/lib/comment-input/comment-input.component.mjs +0 -33
package/README.md CHANGED
@@ -1,7 +1,32 @@
1
- # components
1
+ <p style="text-align: center;">
2
+ <picture>
3
+ <source media="(prefers-color-scheme: dark)" srcset="https://acorexui.com/acorex-slang-dark.svg">
4
+ <img alt="Acorex - Design System, UI Framework, App Builder" src="https://acorexui.com/acorex-slang.svg" width="100%">
5
+ </picture>
6
+ </p>
2
7
 
3
- This library was generated with [Nx](https://nx.dev).
8
+ <div style="text-align: center;">
4
9
 
5
- ## Running unit tests
10
+ [![License](https://img.shields.io/npm/l/nx.svg?style=flat-square)]()
6
11
 
7
- Run `nx test components` to execute the unit tests.
12
+ </div>
13
+
14
+ # ACoreX Components
15
+
16
+ ACoreX is an UI framework based on angular. With over 50+ beautiful fully responsive and accessible components for everyone.
17
+
18
+ A few links to help you get started:
19
+
20
+ - [ACoreX: Documentation, Guides](https://acorexui.com)
21
+
22
+ ## Core Team
23
+
24
+ | Arash Oshnoudi | Ali Safari | Matin Givi | Reza Safari |
25
+ | ------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- |
26
+ | ![Arash Oshnoudi](https://gravatar.com/avatar/df151090660e3842ec1ff788bb5a650e939e45784f01513a9b9f8107311e4e78?size=180) | ![Ali Safari](https://gravatar.com/avatar/555280ee36f23bedcfcfec6e068d1a85d7e1fd14676ca07e05958fc762199def?size=180) | ![Matin Givi](https://gravatar.com/avatar/9a477829fc2ecdbce20a26af33d24baf63d24f042a551af8147eef1c99d2315a?size=180) | ![Reza Safari](https://gravatar.com/avatar/0d419926e9e86bbb4b47ca6ae3ca6a2cde30fb01a6ddedefb97d043a350d11f0?size=180) |
27
+
28
+ <br/>
29
+
30
+ | Shahin Kahrizi | Mohamad Parsaeifard | Mohamad Hasanzade | Meysa Aghili |
31
+ | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------ |
32
+ | ![Shahin Kahrizi](https://gravatar.com/avatar/e699eeae86920ea44f9dd18f8bb01b5f0d28cdbd816032c4387f1f036c5977c0?size=180) | ![Mohammad Parsaeifard](https://gravatar.com/avatar/c0d9a0143f2dbbcea46e037d12ccad8f0fdaaeeaeb5089c1ae4a0c4ad131df88?size=180) | ![Mohammad Hasanzade](https://gravatar.com/avatar/ca346e55701bbf079140cb04edea9e3c?size=180) | ![Meysa Aghili](https://0.gravatar.com/avatar/bf607792c9fac9e5f4e53d141d331abd11fa56e56f42da8b69cf9ede2ffff289?size=180) |
@@ -1,4 +1,5 @@
1
1
  import { AXRange, MXInteractiveComponent, MXValueComponent } from '@acorex/components/common';
2
+ import { AXDateTime } from '@acorex/core/date-time';
2
3
  import { AfterViewInit } from '@angular/core';
3
4
  import { AXCalendarSlotClick, MXCalendarBaseComponent } from './calendar.class';
4
5
  import * as i0 from "@angular/core";
@@ -16,7 +17,7 @@ export declare class AXCalendarRangeComponent extends AXCalendarRangeComponent_b
16
17
  constructor();
17
18
  protected ngOnInit(): void;
18
19
  ngAfterViewInit(): void;
19
- getCellClass: (date: Date) => "ax-range-start" | "ax-range-end" | "ax-range-between";
20
+ getCellClass: (date: AXDateTime) => "ax-range-start" | "ax-range-end" | "ax-range-between";
20
21
  protected handleSlotClick(e: AXCalendarSlotClick): void;
21
22
  protected handlePrevClick(): void;
22
23
  protected handleNextClick(): void;
@@ -1,7 +1,7 @@
1
1
  export * from './lib/comment-container/comment-container.component';
2
- export * from './lib/comment-input/comment-input.component';
3
2
  export * from './lib/comment-item/comment-item.component';
4
3
  export * from './lib/comment-like/comment-like.component';
4
+ export * from './lib/comment-reply-text/comment-reply-text.component';
5
5
  export * from './lib/comment-reply/comment-reply.component';
6
6
  export * from './lib/comment-view/comment-view.component';
7
7
  export * from './lib/comment.module';
@@ -1,5 +1,5 @@
1
1
  import * as i0 from "@angular/core";
2
2
  export declare class AXCommentContainerComponent {
3
3
  static ɵfac: i0.ɵɵFactoryDeclaration<AXCommentContainerComponent, never>;
4
- static ɵcmp: i0.ɵɵComponentDeclaration<AXCommentContainerComponent, "ax-comment-container", never, {}, {}, never, ["ax-comment-view", "ax-comment-input", "*"], false, never>;
4
+ static ɵcmp: i0.ɵɵComponentDeclaration<AXCommentContainerComponent, "ax-comment-container", never, {}, {}, never, ["*"], false, never>;
5
5
  }
@@ -5,5 +5,5 @@ export declare class AxCommentItemComponent {
5
5
  commentItems: import("@angular/core").Signal<readonly AxCommentItemComponent[]>;
6
6
  constructor();
7
7
  static ɵfac: i0.ɵɵFactoryDeclaration<AxCommentItemComponent, never>;
8
- static ɵcmp: i0.ɵɵComponentDeclaration<AxCommentItemComponent, "ax-comment-item", never, {}, {}, ["avatar", "commentItems"], ["ax-avatar", "ax-title", "ax-content", "ax-comment-like", "ax-comment-reply", "ax-comment-item"], false, never>;
8
+ static ɵcmp: i0.ɵɵComponentDeclaration<AxCommentItemComponent, "ax-comment-item", never, {}, {}, ["avatar", "commentItems"], ["ax-avatar", "ax-title", "ax-content", "ax-comment-like", "ax-comment-reply", "ax-comment-reply-text", "ax-comment-item"], false, never>;
9
9
  }
@@ -0,0 +1,5 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class AXCommentReplyTextComponent {
3
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXCommentReplyTextComponent, never>;
4
+ static ɵcmp: i0.ɵɵComponentDeclaration<AXCommentReplyTextComponent, "ax-comment-reply-text", never, {}, {}, never, never, false, never>;
5
+ }
@@ -1,10 +1,10 @@
1
1
  import * as i0 from "@angular/core";
2
2
  import * as i1 from "./comment-view/comment-view.component";
3
- import * as i2 from "./comment-input/comment-input.component";
4
- import * as i3 from "./comment-container/comment-container.component";
5
- import * as i4 from "./comment-item/comment-item.component";
6
- import * as i5 from "./comment-like/comment-like.component";
7
- import * as i6 from "./comment-reply/comment-reply.component";
3
+ import * as i2 from "./comment-container/comment-container.component";
4
+ import * as i3 from "./comment-item/comment-item.component";
5
+ import * as i4 from "./comment-like/comment-like.component";
6
+ import * as i5 from "./comment-reply/comment-reply.component";
7
+ import * as i6 from "./comment-reply-text/comment-reply-text.component";
8
8
  import * as i7 from "@acorex/components/decorators";
9
9
  import * as i8 from "@acorex/components/wysiwyg";
10
10
  import * as i9 from "@acorex/components/collapse";
@@ -12,6 +12,6 @@ import * as i10 from "@acorex/components/button";
12
12
  import * as i11 from "@acorex/components/text-area";
13
13
  export declare class AXCommentModule {
14
14
  static ɵfac: i0.ɵɵFactoryDeclaration<AXCommentModule, never>;
15
- static ɵmod: i0.ɵɵNgModuleDeclaration<AXCommentModule, [typeof i1.AXCommentViewComponent, typeof i2.AXCommentInputComponent, typeof i3.AXCommentContainerComponent, typeof i4.AxCommentItemComponent, typeof i5.AXCommentLikeComponent, typeof i6.AXCommentReplyComponent], [typeof i7.AXDecoratorModule, typeof i8.AXWysiwygModule, typeof i9.AXCollapseModule, typeof i10.AXButtonModule, typeof i11.AXTextAreaModule], [typeof i1.AXCommentViewComponent, typeof i2.AXCommentInputComponent, typeof i3.AXCommentContainerComponent, typeof i4.AxCommentItemComponent, typeof i5.AXCommentLikeComponent, typeof i6.AXCommentReplyComponent]>;
15
+ static ɵmod: i0.ɵɵNgModuleDeclaration<AXCommentModule, [typeof i1.AXCommentViewComponent, typeof i2.AXCommentContainerComponent, typeof i3.AxCommentItemComponent, typeof i4.AXCommentLikeComponent, typeof i5.AXCommentReplyComponent, typeof i6.AXCommentReplyTextComponent], [typeof i7.AXDecoratorModule, typeof i8.AXWysiwygModule, typeof i9.AXCollapseModule, typeof i10.AXButtonModule, typeof i11.AXTextAreaModule], [typeof i1.AXCommentViewComponent, typeof i2.AXCommentContainerComponent, typeof i3.AxCommentItemComponent, typeof i4.AXCommentLikeComponent, typeof i5.AXCommentReplyComponent, typeof i6.AXCommentReplyTextComponent]>;
16
16
  static ɵinj: i0.ɵɵInjectorDeclaration<AXCommentModule>;
17
17
  }
@@ -31,7 +31,7 @@ export declare class AXDateTimeBoxComponent extends AXDateTimeBoxComponent_base
31
31
  protected _handleInputOnFocusEvent(e: AXFocusEvent): void;
32
32
  protected _handleInputOnBlurEvent(e: AXFocusEvent): void;
33
33
  protected _handleCalendarOnNavigate(e: AXCalendarNavigateEvent): void;
34
- internalValueChanged(): void;
34
+ internalValueChanged(value: any): void;
35
35
  protected _handleInputOnClick(): void;
36
36
  static ɵfac: i0.ɵɵFactoryDeclaration<AXDateTimeBoxComponent, never>;
37
37
  static ɵcmp: i0.ɵɵComponentDeclaration<AXDateTimeBoxComponent, "ax-datetime-box", never, { "disabled": { "alias": "disabled"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "minValue": { "alias": "minValue"; "required": false; }; "maxValue": { "alias": "maxValue"; "required": false; }; "value": { "alias": "value"; "required": false; }; "state": { "alias": "state"; "required": false; }; "name": { "alias": "name"; "required": false; }; "depth": { "alias": "depth"; "required": false; }; "id": { "alias": "id"; "required": false; }; "type": { "alias": "type"; "required": false; }; "look": { "alias": "look"; "required": false; }; "holidayDates": { "alias": "holidayDates"; "required": false; }; "allowTyping": { "alias": "allowTyping"; "required": false; "isSignal": true; }; "format": { "alias": "format"; "required": false; }; }, { "valueChange": "valueChange"; "stateChange": "stateChange"; "onValueChanged": "onValueChanged"; "onBlur": "onBlur"; "onFocus": "onFocus"; "onOpened": "onOpened"; "onClosed": "onClosed"; "readonlyChange": "readonlyChange"; "disabledChange": "disabledChange"; "formatChange": "formatChange"; }, never, ["ax-prefix", "ax-clear-button", "ax-suffix", "ax-validation-rule"], false, never>;
@@ -33,4 +33,5 @@ export interface AXDialogData {
33
33
  closeButton: boolean;
34
34
  orientation: 'horizontal' | 'vertical';
35
35
  icon?: string | 'none';
36
+ draggable?: boolean;
36
37
  }
@@ -14,15 +14,15 @@ export class AXCalendarRangeComponent extends classes((MXValueComponent), MXInte
14
14
  this._calendarService = inject(AXCalendarService);
15
15
  this._navText = '';
16
16
  this.getCellClass = (date) => {
17
- const d = this._calendarService.create(date, this.type);
17
+ //const d = this._calendarService.create(date, this.type);
18
18
  const from = this._calendarService.create(this.value.from, this.type);
19
19
  const end = this._calendarService.create(this.value.end, this.type);
20
- if (this.value.from && d.equal(from, 'day')) {
20
+ if (this.value.from && date.equal(from, 'day')) {
21
21
  return 'ax-range-start';
22
22
  }
23
- if (this.value.end && d.equal(end, 'day'))
23
+ if (this.value.end && date.equal(end, 'day'))
24
24
  return 'ax-range-end';
25
- if (this.value.from && this.value.end && d.compare(from, 'day') > 0 && d.compare(end, 'day') < 0)
25
+ if (this.value.from && this.value.end && date.compare(from, 'day') > 0 && date.compare(end, 'day') < 0)
26
26
  return 'ax-range-between';
27
27
  return null;
28
28
  };
@@ -133,7 +133,7 @@ export class AXCalendarRangeComponent extends classes((MXValueComponent), MXInte
133
133
  }
134
134
  }
135
135
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXCalendarRangeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
136
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.2", type: AXCalendarRangeComponent, selector: "ax-calendar-range", inputs: { rtl: "rtl", readonly: "readonly", value: "value", name: "name", disabled: "disabled", depth: "depth", activeView: "activeView", minValue: "minValue", maxValue: "maxValue", disabledDates: "disabledDates", holidayDates: "holidayDates", type: "type", cellTemplate: "cellTemplate", cellClass: "cellClass", showNavigation: "showNavigation" }, outputs: { onOptionChanged: "onOptionChanged", valueChange: "valueChange", onValueChanged: "onValueChanged", onBlur: "onBlur", onFocus: "onFocus", depthChange: "depthChange", typeChange: "typeChange", activeViewChange: "activeViewChange", disabledDatesChange: "disabledDatesChange", holidayDatesChange: "holidayDatesChange", onNavigate: "onNavigate", onSlotClick: "onSlotClick" }, viewQueries: [{ propertyName: "_c1", first: true, predicate: ["c1"], descendants: true, static: true }, { propertyName: "_c2", first: true, predicate: ["c2"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"ax-calendar-range-header\">\n <ng-content></ng-content>\n <div class=\"ax-calendar-header-range-info\">\n <button type=\"button\" [attr.disabled]=\"disabled ? '' : null\" class=\"ax-general-button\"\n (click)=\"handleNavClick()\">\n {{ _navText }}\n </button>\n </div>\n <div class=\"ax-calendar-header-range-buttons\">\n <button type=\"button\" [attr.disabled]=\"disabled ? '' : null\" class=\"ax-general-button ax-button-icon\"\n (click)=\"handlePrevClick()\">\n <i class=\"ax-icon\" [ngClass]=\"{\n 'ax-icon-chevron-left': !rtl,\n 'ax-icon-chevron-right': rtl\n }\"></i>\n </button>\n <button type=\"button\" [attr.disabled]=\"disabled ? '' : null\" class=\"ax-general-button ax-button-icon\"\n (click)=\"handleNextClick()\">\n <i class=\"ax-icon\" [ngClass]=\"{\n 'ax-icon-chevron-left': rtl,\n 'ax-icon-chevron-right': !rtl\n }\"></i>\n </button>\n </div>\n</div>\n<div class=\"ax-calendar-range-body\">\n <ax-calendar #c1 style=\"width: 50%;\" [showNavigation]=\"false\" [cellClass]=\"getCellClass\" [type]=\"type\"\n [cellTemplate]=\"cellTemplate\" [minValue]=\"minValue\" [maxValue]=\"maxValue\" [readonly]=\"true\" [depth]=\"depth\"\n (onSlotClick)=\"handleSlotClick($event)\" (onNavigate)=\"handleNavigate()\"\n (activeViewChange)=\"handleActiveViewChange1()\">\n </ax-calendar>\n <ax-calendar #c2 style=\"width: 50%;\" [showNavigation]=\"false\" [cellClass]=\"getCellClass\" [type]=\"type\"\n [cellTemplate]=\"cellTemplate\" [minValue]=\"minValue\" [maxValue]=\"maxValue\" [readonly]=\"true\" [depth]=\"depth\"\n (onSlotClick)=\"handleSlotClick($event)\" (activeViewChange)=\"handleActiveViewChange2()\">\n </ax-calendar>\n</div>", styles: [".ax-dark ax-calendar-range{background-color:rgba(var(--ax-color-background-default))}.ax-dark ax-calendar-range ax-calendar .ax-calendar-body .ax-calendar-slots .ax-calendar-slot.ax-range-between{background-color:rgba(var(--ax-color-primary-800));color:rgba(var(--ax-color-primary-fore))}ax-calendar-range{background-color:rgba(var(--ax-color-surface));padding:.5rem;color:rgb(var(--ax-color-text-default))}ax-calendar-range .ax-calendar-range-header{display:flex;justify-content:space-between;padding-left:.25rem;padding-right:.25rem;padding-top:.25rem}ax-calendar-range .ax-calendar-range-header .ax-calendar-header-range-info{font-weight:500}ax-calendar-range .ax-calendar-range-header .ax-calendar-header-range-buttons{display:flex}ax-calendar-range .ax-calendar-range-body{display:flex;flex-direction:row}ax-calendar-range ax-calendar{margin:0;padding:0}ax-calendar-range ax-calendar .ax-calendar-body{margin-top:0;padding-top:0}ax-calendar-range ax-calendar .ax-calendar-body .ax-calendar-slots .ax-calendar-slot.ax-range-between{background-color:rgba(var(--ax-color-primary-200));color:rgba(var(--ax-color-primary-fore-tint))}ax-calendar-range ax-calendar .ax-calendar-body .ax-calendar-slots .ax-calendar-slot.ax-range-start,ax-calendar-range ax-calendar .ax-calendar-body .ax-calendar-slots .ax-calendar-slot.ax-range-end{background-color:rgba(var(--ax-color-primary-500));color:rgba(var(--ax-color-primary-fore))}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i2.AXCalendarComponent, selector: "ax-calendar", inputs: ["rtl", "readonly", "value", "name", "disabled", "depth", "activeView", "minValue", "maxValue", "disabledDates", "holidayDates", "type", "cellTemplate", "cellClass", "showNavigation", "count", "id"], outputs: ["onOptionChanged", "valueChange", "onValueChanged", "minValueChange", "maxValueChange", "onBlur", "onFocus", "depthChange", "typeChange", "activeViewChange", "disabledDatesChange", "holidayDatesChange", "onNavigate", "onSlotClick", "countChange"] }], encapsulation: i0.ViewEncapsulation.None }); }
136
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.2", type: AXCalendarRangeComponent, selector: "ax-calendar-range", inputs: { rtl: "rtl", readonly: "readonly", value: "value", name: "name", disabled: "disabled", depth: "depth", activeView: "activeView", minValue: "minValue", maxValue: "maxValue", disabledDates: "disabledDates", holidayDates: "holidayDates", type: "type", cellTemplate: "cellTemplate", cellClass: "cellClass", showNavigation: "showNavigation" }, outputs: { onOptionChanged: "onOptionChanged", valueChange: "valueChange", onValueChanged: "onValueChanged", onBlur: "onBlur", onFocus: "onFocus", depthChange: "depthChange", typeChange: "typeChange", activeViewChange: "activeViewChange", disabledDatesChange: "disabledDatesChange", holidayDatesChange: "holidayDatesChange", onNavigate: "onNavigate", onSlotClick: "onSlotClick" }, viewQueries: [{ propertyName: "_c1", first: true, predicate: ["c1"], descendants: true, static: true }, { propertyName: "_c2", first: true, predicate: ["c2"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"ax-calendar-range-header\">\n <ng-content></ng-content>\n <div class=\"ax-calendar-header-range-info\">\n <button type=\"button\" [attr.disabled]=\"disabled ? '' : null\" class=\"ax-general-button\"\n (click)=\"handleNavClick()\">\n {{ _navText }}\n </button>\n </div>\n <div class=\"ax-calendar-header-range-buttons\">\n <button type=\"button\" [attr.disabled]=\"disabled ? '' : null\" class=\"ax-general-button ax-button-icon\"\n (click)=\"handlePrevClick()\">\n <i class=\"ax-icon\" [ngClass]=\"{\n 'ax-icon-chevron-left': !rtl,\n 'ax-icon-chevron-right': rtl\n }\"></i>\n </button>\n <button type=\"button\" [attr.disabled]=\"disabled ? '' : null\" class=\"ax-general-button ax-button-icon\"\n (click)=\"handleNextClick()\">\n <i class=\"ax-icon\" [ngClass]=\"{\n 'ax-icon-chevron-left': rtl,\n 'ax-icon-chevron-right': !rtl\n }\"></i>\n </button>\n </div>\n</div>\n<div class=\"ax-calendar-range-body\">\n <ax-calendar #c1 [showNavigation]=\"false\" [cellClass]=\"getCellClass\" [type]=\"type\" [cellTemplate]=\"cellTemplate\"\n [minValue]=\"minValue\" [maxValue]=\"maxValue\" [depth]=\"depth\" (onSlotClick)=\"handleSlotClick($event)\"\n (onNavigate)=\"handleNavigate()\" (activeViewChange)=\"handleActiveViewChange1()\">\n </ax-calendar>\n <ax-calendar #c2 [showNavigation]=\"false\" [cellClass]=\"getCellClass\" [type]=\"type\" [cellTemplate]=\"cellTemplate\"\n [minValue]=\"minValue\" [maxValue]=\"maxValue\" [depth]=\"depth\" (onSlotClick)=\"handleSlotClick($event)\"\n (activeViewChange)=\"handleActiveViewChange2()\">\n </ax-calendar>\n</div>", styles: [".ax-dark ax-calendar-range{background-color:rgba(var(--ax-color-background-default))}.ax-dark ax-calendar-range ax-calendar .ax-calendar-body .ax-calendar-slots .ax-calendar-slot.ax-range-between{background-color:rgba(var(--ax-color-primary-800));color:rgba(var(--ax-color-primary-fore))}ax-calendar-range{background-color:rgba(var(--ax-color-surface));padding:.5rem;color:rgb(var(--ax-color-text-default));display:block}ax-calendar-range .ax-calendar-range-header{display:flex;justify-content:space-between;padding-left:.25rem;padding-right:.25rem;padding-top:.25rem}ax-calendar-range .ax-calendar-range-header .ax-calendar-header-range-info{font-weight:500}ax-calendar-range .ax-calendar-range-header .ax-calendar-header-range-buttons{display:flex}ax-calendar-range .ax-calendar-range-body{display:flex;flex-direction:row}@media (min-width: 320px) and (max-width: 600px){ax-calendar-range .ax-calendar-range-body{flex-direction:column}}ax-calendar-range ax-calendar{margin:0;padding:0}ax-calendar-range ax-calendar .ax-calendar-body{margin-top:0;padding-top:0}ax-calendar-range ax-calendar .ax-calendar-body .ax-calendar-slots .ax-calendar-slot.ax-range-between{background-color:rgba(var(--ax-color-primary-200));color:rgba(var(--ax-color-primary-fore-tint))}ax-calendar-range ax-calendar .ax-calendar-body .ax-calendar-slots .ax-calendar-slot.ax-range-start,ax-calendar-range ax-calendar .ax-calendar-body .ax-calendar-slots .ax-calendar-slot.ax-range-end{background-color:rgba(var(--ax-color-primary-500));color:rgba(var(--ax-color-primary-fore))}@media (min-width: 768px){ax-calendar-range ax-calendar .ax-calendar-body>div{width:100%!important}}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i2.AXCalendarComponent, selector: "ax-calendar", inputs: ["rtl", "readonly", "value", "name", "disabled", "depth", "activeView", "minValue", "maxValue", "disabledDates", "holidayDates", "type", "cellTemplate", "cellClass", "showNavigation", "count", "id"], outputs: ["onOptionChanged", "valueChange", "onValueChanged", "minValueChange", "maxValueChange", "onBlur", "onFocus", "depthChange", "typeChange", "activeViewChange", "disabledDatesChange", "holidayDatesChange", "onNavigate", "onSlotClick", "countChange"] }], encapsulation: i0.ViewEncapsulation.None }); }
137
137
  }
138
138
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXCalendarRangeComponent, decorators: [{
139
139
  type: Component,
@@ -166,7 +166,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
166
166
  'holidayDatesChange',
167
167
  'onNavigate',
168
168
  'onSlotClick',
169
- ], template: "<div class=\"ax-calendar-range-header\">\n <ng-content></ng-content>\n <div class=\"ax-calendar-header-range-info\">\n <button type=\"button\" [attr.disabled]=\"disabled ? '' : null\" class=\"ax-general-button\"\n (click)=\"handleNavClick()\">\n {{ _navText }}\n </button>\n </div>\n <div class=\"ax-calendar-header-range-buttons\">\n <button type=\"button\" [attr.disabled]=\"disabled ? '' : null\" class=\"ax-general-button ax-button-icon\"\n (click)=\"handlePrevClick()\">\n <i class=\"ax-icon\" [ngClass]=\"{\n 'ax-icon-chevron-left': !rtl,\n 'ax-icon-chevron-right': rtl\n }\"></i>\n </button>\n <button type=\"button\" [attr.disabled]=\"disabled ? '' : null\" class=\"ax-general-button ax-button-icon\"\n (click)=\"handleNextClick()\">\n <i class=\"ax-icon\" [ngClass]=\"{\n 'ax-icon-chevron-left': rtl,\n 'ax-icon-chevron-right': !rtl\n }\"></i>\n </button>\n </div>\n</div>\n<div class=\"ax-calendar-range-body\">\n <ax-calendar #c1 style=\"width: 50%;\" [showNavigation]=\"false\" [cellClass]=\"getCellClass\" [type]=\"type\"\n [cellTemplate]=\"cellTemplate\" [minValue]=\"minValue\" [maxValue]=\"maxValue\" [readonly]=\"true\" [depth]=\"depth\"\n (onSlotClick)=\"handleSlotClick($event)\" (onNavigate)=\"handleNavigate()\"\n (activeViewChange)=\"handleActiveViewChange1()\">\n </ax-calendar>\n <ax-calendar #c2 style=\"width: 50%;\" [showNavigation]=\"false\" [cellClass]=\"getCellClass\" [type]=\"type\"\n [cellTemplate]=\"cellTemplate\" [minValue]=\"minValue\" [maxValue]=\"maxValue\" [readonly]=\"true\" [depth]=\"depth\"\n (onSlotClick)=\"handleSlotClick($event)\" (activeViewChange)=\"handleActiveViewChange2()\">\n </ax-calendar>\n</div>", styles: [".ax-dark ax-calendar-range{background-color:rgba(var(--ax-color-background-default))}.ax-dark ax-calendar-range ax-calendar .ax-calendar-body .ax-calendar-slots .ax-calendar-slot.ax-range-between{background-color:rgba(var(--ax-color-primary-800));color:rgba(var(--ax-color-primary-fore))}ax-calendar-range{background-color:rgba(var(--ax-color-surface));padding:.5rem;color:rgb(var(--ax-color-text-default))}ax-calendar-range .ax-calendar-range-header{display:flex;justify-content:space-between;padding-left:.25rem;padding-right:.25rem;padding-top:.25rem}ax-calendar-range .ax-calendar-range-header .ax-calendar-header-range-info{font-weight:500}ax-calendar-range .ax-calendar-range-header .ax-calendar-header-range-buttons{display:flex}ax-calendar-range .ax-calendar-range-body{display:flex;flex-direction:row}ax-calendar-range ax-calendar{margin:0;padding:0}ax-calendar-range ax-calendar .ax-calendar-body{margin-top:0;padding-top:0}ax-calendar-range ax-calendar .ax-calendar-body .ax-calendar-slots .ax-calendar-slot.ax-range-between{background-color:rgba(var(--ax-color-primary-200));color:rgba(var(--ax-color-primary-fore-tint))}ax-calendar-range ax-calendar .ax-calendar-body .ax-calendar-slots .ax-calendar-slot.ax-range-start,ax-calendar-range ax-calendar .ax-calendar-body .ax-calendar-slots .ax-calendar-slot.ax-range-end{background-color:rgba(var(--ax-color-primary-500));color:rgba(var(--ax-color-primary-fore))}\n"] }]
169
+ ], template: "<div class=\"ax-calendar-range-header\">\n <ng-content></ng-content>\n <div class=\"ax-calendar-header-range-info\">\n <button type=\"button\" [attr.disabled]=\"disabled ? '' : null\" class=\"ax-general-button\"\n (click)=\"handleNavClick()\">\n {{ _navText }}\n </button>\n </div>\n <div class=\"ax-calendar-header-range-buttons\">\n <button type=\"button\" [attr.disabled]=\"disabled ? '' : null\" class=\"ax-general-button ax-button-icon\"\n (click)=\"handlePrevClick()\">\n <i class=\"ax-icon\" [ngClass]=\"{\n 'ax-icon-chevron-left': !rtl,\n 'ax-icon-chevron-right': rtl\n }\"></i>\n </button>\n <button type=\"button\" [attr.disabled]=\"disabled ? '' : null\" class=\"ax-general-button ax-button-icon\"\n (click)=\"handleNextClick()\">\n <i class=\"ax-icon\" [ngClass]=\"{\n 'ax-icon-chevron-left': rtl,\n 'ax-icon-chevron-right': !rtl\n }\"></i>\n </button>\n </div>\n</div>\n<div class=\"ax-calendar-range-body\">\n <ax-calendar #c1 [showNavigation]=\"false\" [cellClass]=\"getCellClass\" [type]=\"type\" [cellTemplate]=\"cellTemplate\"\n [minValue]=\"minValue\" [maxValue]=\"maxValue\" [depth]=\"depth\" (onSlotClick)=\"handleSlotClick($event)\"\n (onNavigate)=\"handleNavigate()\" (activeViewChange)=\"handleActiveViewChange1()\">\n </ax-calendar>\n <ax-calendar #c2 [showNavigation]=\"false\" [cellClass]=\"getCellClass\" [type]=\"type\" [cellTemplate]=\"cellTemplate\"\n [minValue]=\"minValue\" [maxValue]=\"maxValue\" [depth]=\"depth\" (onSlotClick)=\"handleSlotClick($event)\"\n (activeViewChange)=\"handleActiveViewChange2()\">\n </ax-calendar>\n</div>", styles: [".ax-dark ax-calendar-range{background-color:rgba(var(--ax-color-background-default))}.ax-dark ax-calendar-range ax-calendar .ax-calendar-body .ax-calendar-slots .ax-calendar-slot.ax-range-between{background-color:rgba(var(--ax-color-primary-800));color:rgba(var(--ax-color-primary-fore))}ax-calendar-range{background-color:rgba(var(--ax-color-surface));padding:.5rem;color:rgb(var(--ax-color-text-default));display:block}ax-calendar-range .ax-calendar-range-header{display:flex;justify-content:space-between;padding-left:.25rem;padding-right:.25rem;padding-top:.25rem}ax-calendar-range .ax-calendar-range-header .ax-calendar-header-range-info{font-weight:500}ax-calendar-range .ax-calendar-range-header .ax-calendar-header-range-buttons{display:flex}ax-calendar-range .ax-calendar-range-body{display:flex;flex-direction:row}@media (min-width: 320px) and (max-width: 600px){ax-calendar-range .ax-calendar-range-body{flex-direction:column}}ax-calendar-range ax-calendar{margin:0;padding:0}ax-calendar-range ax-calendar .ax-calendar-body{margin-top:0;padding-top:0}ax-calendar-range ax-calendar .ax-calendar-body .ax-calendar-slots .ax-calendar-slot.ax-range-between{background-color:rgba(var(--ax-color-primary-200));color:rgba(var(--ax-color-primary-fore-tint))}ax-calendar-range ax-calendar .ax-calendar-body .ax-calendar-slots .ax-calendar-slot.ax-range-start,ax-calendar-range ax-calendar .ax-calendar-body .ax-calendar-slots .ax-calendar-slot.ax-range-end{background-color:rgba(var(--ax-color-primary-500));color:rgba(var(--ax-color-primary-fore))}@media (min-width: 768px){ax-calendar-range ax-calendar .ax-calendar-body>div{width:100%!important}}\n"] }]
170
170
  }], ctorParameters: () => [], propDecorators: { _c1: [{
171
171
  type: ViewChild,
172
172
  args: ['c1', { static: true }]
@@ -174,4 +174,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
174
174
  type: ViewChild,
175
175
  args: ['c2', { static: true }]
176
176
  }] } });
177
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItcmFuZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NhbGVuZGFyL3NyYy9saWIvY2FsZW5kYXItcmFuZ2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NhbGVuZGFyL3NyYy9saWIvY2FsZW5kYXItcmFuZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFXLHNCQUFzQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDOUYsT0FBTyxFQUFFLGlCQUFpQixFQUFjLE1BQU0sd0JBQXdCLENBQUM7QUFDdkUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2hELE9BQU8sRUFBaUIsU0FBUyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0YsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNuQyxPQUFPLEVBQXVCLHVCQUF1QixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDaEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7QUF1QzNELE1BQU0sT0FBTyx3QkFDWCxTQUFRLE9BQU8sQ0FBQyxDQUFBLGdCQUErQixDQUFBLEVBQUUsc0JBQXNCLEVBQUUsdUJBQXVCLENBQUM7SUFlakc7UUFDRSxLQUFLLEVBQUUsQ0FBQztRQWJGLHFCQUFnQixHQUFzQixNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQVF4RSxhQUFRLEdBQUcsRUFBRSxDQUFDO1FBa0JkLGlCQUFZLEdBQUcsQ0FBQyxJQUFVLEVBQUUsRUFBRTtZQUM1QixNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxJ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dUJBQUMsSUFBSSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUmFuZ2UsIE1YSW50ZXJhY3RpdmVDb21wb25lbnQsIE1YVmFsdWVDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvY29tbW9uJztcbmltcG9ydCB7IEFYQ2FsZW5kYXJTZXJ2aWNlLCBBWERhdGVUaW1lIH0gZnJvbSAnQGFjb3JleC9jb3JlL2RhdGUtdGltZSc7XG5pbXBvcnQgeyBBWEh0bWxVdGlsIH0gZnJvbSAnQGFjb3JleC9jb3JlL3V0aWxzJztcbmltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgVmlld0NoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbiwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjbGFzc2VzIH0gZnJvbSAncG9seXR5cGUnO1xuaW1wb3J0IHsgQVhDYWxlbmRhclNsb3RDbGljaywgTVhDYWxlbmRhckJhc2VDb21wb25lbnQgfSBmcm9tICcuL2NhbGVuZGFyLmNsYXNzJztcbmltcG9ydCB7IEFYQ2FsZW5kYXJDb21wb25lbnQgfSBmcm9tICcuL2NhbGVuZGFyLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LWNhbGVuZGFyLXJhbmdlJyxcbiAgdGVtcGxhdGVVcmw6ICdjYWxlbmRhci1yYW5nZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWydjYWxlbmRhci1yYW5nZS5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBpbnB1dHM6IFtcbiAgICAncnRsJyxcbiAgICAncmVhZG9ubHknLFxuICAgICd2YWx1ZScsXG4gICAgJ25hbWUnLFxuICAgICdkaXNhYmxlZCcsXG4gICAgJ2RlcHRoJyxcbiAgICAnYWN0aXZlVmlldycsXG4gICAgJ21pblZhbHVlJyxcbiAgICAnbWF4VmFsdWUnLFxuICAgICdkaXNhYmxlZERhdGVzJyxcbiAgICAnaG9saWRheURhdGVzJyxcbiAgICAndHlwZScsXG4gICAgJ2NlbGxUZW1wbGF0ZScsXG4gICAgJ2NlbGxDbGFzcycsXG4gICAgJ3Nob3dOYXZpZ2F0aW9uJyxcbiAgXSxcbiAgb3V0cHV0czogW1xuICAgICdvbk9wdGlvbkNoYW5nZWQnLFxuICAgICd2YWx1ZUNoYW5nZScsXG4gICAgJ29uVmFsdWVDaGFuZ2VkJyxcbiAgICAnb25CbHVyJyxcbiAgICAnb25Gb2N1cycsXG4gICAgJ2RlcHRoQ2hhbmdlJyxcbiAgICAndHlwZUNoYW5nZScsXG4gICAgJ2FjdGl2ZVZpZXdDaGFuZ2UnLFxuICAgICdkaXNhYmxlZERhdGVzQ2hhbmdlJyxcbiAgICAnaG9saWRheURhdGVzQ2hhbmdlJyxcbiAgICAnb25OYXZpZ2F0ZScsXG4gICAgJ29uU2xvdENsaWNrJyxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhDYWxlbmRhclJhbmdlQ29tcG9uZW50XG4gIGV4dGVuZHMgY2xhc3NlcyhNWFZhbHVlQ29tcG9uZW50PEFYUmFuZ2U8RGF0ZT4+LCBNWEludGVyYWN0aXZlQ29tcG9uZW50LCBNWENhbGVuZGFyQmFzZUNvbXBvbmVudClcbiAgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0XG57XG4gIHByaXZhdGUgX2NhbGVuZGFyU2VydmljZTogQVhDYWxlbmRhclNlcnZpY2UgPSBpbmplY3QoQVhDYWxlbmRhclNlcnZpY2UpO1xuXG4gIEBWaWV3Q2hpbGQoJ2MxJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgcHJpdmF0ZSBfYzE6IEFYQ2FsZW5kYXJDb21wb25lbnQ7XG5cbiAgQFZpZXdDaGlsZCgnYzInLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBwcml2YXRlIF9jMjogQVhDYWxlbmRhckNvbXBvbmVudDtcblxuICBfbmF2VGV4dCA9ICcnO1xuXG4gIHByb3RlY3RlZCBydGwhOiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5kZWZhdWx0VmFsdWUgPSB7IGZyb206IG51bGwsIGVuZDogbnVsbCB9O1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgdGhpcy5ydGwgPSBBWEh0bWxVdGlsLmlzUnRsKHRoaXMuZ2V0SG9zdEVsZW1lbnQoKSk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5fc3luY05hdjEoKTtcbiAgfVxuXG4gIGdldENlbGxDbGFzcyA9IChkYXRlOiBEYXRlKSA9PiB7XG4gICAgY29uc3QgZCA9IHRoaXMuX2NhbGVuZGFyU2VydmljZS5jcmVhdGUoZGF0ZSwgdGhpcy50eXBlKTtcbiAgICBjb25zdCBmcm9tID0gdGhpcy5fY2FsZW5kYXJTZXJ2aWNlLmNyZWF0ZSh0aGlzLnZhbHVlLmZyb20sIHRoaXMudHlwZSk7XG4gICAgY29uc3QgZW5kID0gdGhpcy5fY2FsZW5kYXJTZXJ2aWNlLmNyZWF0ZSh0aGlzLnZhbHVlLmVuZCwgdGhpcy50eXBlKTtcbiAgICBpZiAodGhpcy52YWx1ZS5mcm9tICYmIGQuZXF1YWwoZnJvbSwgJ2RheScpKSB7XG4gICAgICByZXR1cm4gJ2F4LXJhbmdlLXN0YXJ0JztcbiAgICB9XG4gICAgaWYgKHRoaXMudmFsdWUuZW5kICYmIGQuZXF1YWwoZW5kLCAnZGF5JykpIHJldHVybiAnYXgtcmFuZ2UtZW5kJztcbiAgICBpZiAodGhpcy52YWx1ZS5mcm9tICYmIHRoaXMudmFsdWUuZW5kICYmIGQuY29tcGFyZShmcm9tLCAnZGF5JykgPiAwICYmIGQuY29tcGFyZShlbmQsICdkYXknKSA8IDApIHJldHVybiAnYXgtcmFuZ2UtYmV0d2Vlbic7XG4gICAgcmV0dXJuIG51bGw7XG4gIH07XG5cbiAgcHJvdGVjdGVkIGhhbmRsZVNsb3RDbGljayhlOiBBWENhbGVuZGFyU2xvdENsaWNrKSB7XG4gICAgaWYgKHRoaXMuX2MxLmFjdGl2ZVZpZXcgPT0gdGhpcy5kZXB0aCkge1xuICAgICAgaWYgKCF0aGlzLnZhbHVlLmZyb20gfHwgKHRoaXMudmFsdWUuZnJvbSAmJiB0aGlzLnZhbHVlLmVuZCkpIHtcbiAgICAgICAgdGhpcy52YWx1ZS5mcm9tID0gZS5pdGVtO1xuICAgICAgICB0aGlzLnZhbHVlLmVuZCA9IG51bGw7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy52YWx1ZS5mcm9tICYmIGUuaXRlbSA8PSB0aGlzLnZhbHVlLmZyb20pIHtcbiAgICAgICAgdGhpcy52YWx1ZS5mcm9tID0gZS5pdGVtO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLnZhbHVlLmZyb20gJiYgIXRoaXMudmFsdWUuZW5kKSB7XG4gICAgICAgIHRoaXMudmFsdWUuZW5kID0gZS5pdGVtO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoZS5jb21wb25lbnQgPT0gdGhpcy5fYzEpIHRoaXMuX3N5bmNOYXYxKCk7XG4gICAgICBpZiAoZS5jb21wb25lbnQgPT0gdGhpcy5fYzIpIHtcbiAgICAgICAgdGhpcy5fc3luY05hdjIodGhpcy5fY2FsZW5kYXJTZXJ2aWNlLmNyZWF0ZShlLml0ZW0sIHRoaXMudHlwZSkpO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLl9jMS5yZW5kZXIoKTtcbiAgICB0aGlzLl9jMi5yZW5kZXIoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVQcmV2Q2xpY2soKSB7XG4gICAgY29uc3QgdmlldyA9IHRoaXMuX2MxLmFjdGl2ZVZpZXc7XG4gICAgY29uc3QgZDEgPSB0aGlzLl9jMS5kaXNwbGF5UmFuZ2Uuc3RhcnRUaW1lO1xuICAgIGlmICh2aWV3ID09ICdkYXknIHx8IHZpZXcgPT0gJ21vbnRoJykge1xuICAgICAgdGhpcy5fYzEucHJldigpO1xuICAgIH0gZWxzZSBpZiAodmlldyA9PSAneWVhcicpIHtcbiAgICAgIHRoaXMuX2MxLm5hdlRvKGQxLmFkZCgneWVhcicsIC0yMCkpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVOZXh0Q2xpY2soKSB7XG4gICAgY29uc3QgdmlldyA9IHRoaXMuX2MxLmFjdGl2ZVZpZXc7XG4gICAgY29uc3QgZDEgPSB0aGlzLl9jMS5kaXNwbGF5UmFuZ2Uuc3RhcnRUaW1lO1xuICAgIGlmICh2aWV3ID09ICdkYXknIHx8IHZpZXcgPT0gJ21vbnRoJykge1xuICAgICAgdGhpcy5fYzEubmV4dCgpO1xuICAgIH0gZWxzZSBpZiAodmlldyA9PSAneWVhcicpIHtcbiAgICAgIHRoaXMuX2MxLm5hdlRvKGQxLmFkZCgneWVhcicsIDIwKSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZU5hdkNsaWNrKCkge1xuICAgIHRoaXMuX2MxLnRvZ2dsZVZpZXcoKTtcbiAgfVxuXG4gIHByaXZhdGUgX3N5bmNOYXZUZXh0KCkge1xuICAgIGNvbnN0IHZpZXcgPSB0aGlzLl9jMS5hY3RpdmVWaWV3O1xuICAgIGNvbnN0IGQxID0gdGhpcy5fYzEuZGlzcGxheVJhbmdlLnN0YXJ0VGltZTtcbiAgICBpZiAodmlldyA9PSAnZGF5Jykge1xuICAgICAgY29uc3QgZDIgPSB0aGlzLl9jMi5kaXNwbGF5UmFuZ2UuZW5kVGltZTtcbiAgICAgIHRoaXMuX25hdlRleHQgPSBgJHtkMS5mb3JtYXQoJ01NTSB5eXl5Jyl9IC0gJHtkMi5mb3JtYXQoJ01NTSB5eXl5Jyl9YDtcbiAgICB9IGVsc2UgaWYgKHZpZXcgPT0gJ21vbnRoJykge1xuICAgICAgY29uc3QgZDIgPSB0aGlzLl9jMi5kaXNwbGF5UmFuZ2UuZW5kVGltZTtcbiAgICAgIHRoaXMuX25hdlRleHQgPSBgJHtkMS5mb3JtYXQoJ3l5eXknKX0gLSAke2QyLmZvcm1hdCgneXl5eScpfWA7XG4gICAgfSBlbHNlIGlmICh2aWV3ID09ICd5ZWFyJykge1xuICAgICAgY29uc3QgZDIgPSB0aGlzLl9jMi5kaXNwbGF5UmFuZ2UuZW5kVGltZTtcbiAgICAgIHRoaXMuX25hdlRleHQgPSBgJHtkMS5mb3JtYXQoJ3l5eXknKX0gLSAke2QyLmZvcm1hdCgneXl5eScpfWA7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZU5hdmlnYXRlKCkge1xuICAgIHRoaXMuX3N5bmNOYXYxKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlQWN0aXZlVmlld0NoYW5nZTEoKSB7XG4gICAgdGhpcy5fYzIuYWN0aXZlVmlldyA9IHRoaXMuX2MxLmFjdGl2ZVZpZXc7XG4gICAgdGhpcy5fc3luY05hdjEoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVBY3RpdmVWaWV3Q2hhbmdlMigpIHtcbiAgICBpZiAodGhpcy5fYzIuYWN0aXZlVmlldyAhPSB0aGlzLl9jMS5hY3RpdmVWaWV3KSB7XG4gICAgICB0aGlzLl9jMS5hY3RpdmVWaWV3ID0gdGhpcy5fYzIuYWN0aXZlVmlldztcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9zeW5jTmF2MSgpIHtcbiAgICBjb25zdCB2aWV3ID0gKHRoaXMuX2MyLmFjdGl2ZVZpZXcgPSB0aGlzLl9jMS5hY3RpdmVWaWV3KTtcbiAgICBjb25zdCByYW5nZSA9IHRoaXMuX2MxLmRpc3BsYXlSYW5nZTtcbiAgICBpZiAodmlldyA9PSAnZGF5Jykge1xuICAgICAgdGhpcy5fYzIubmF2VG8ocmFuZ2Uuc3RhcnRUaW1lLmFkZCgnbW9udGgnLCAxKSk7XG4gICAgfSBlbHNlIGlmICh2aWV3ID09ICdtb250aCcpIHtcbiAgICAgIHRoaXMuX2MyLm5hdlRvKHJhbmdlLnN0YXJ0VGltZS5hZGQoJ3llYXInLCAxKSk7XG4gICAgfSBlbHNlIGlmICh2aWV3ID09ICd5ZWFyJykge1xuICAgICAgdGhpcy5fYzIubmF2VG8ocmFuZ2UuZW5kVGltZS5hZGQoJ3llYXInLCA0KSk7XG4gICAgfVxuICAgIHRoaXMuX3N5bmNOYXZUZXh0KCk7XG4gIH1cblxuICBwcml2YXRlIF9zeW5jTmF2MihlOiBBWERhdGVUaW1lKSB7XG4gICAgY29uc3QgdmlldyA9IHRoaXMuX2MyLmFjdGl2ZVZpZXc7XG4gICAgaWYgKHZpZXcgPT0gJ21vbnRoJykge1xuICAgICAgdGhpcy5fYzEubmF2VG8oZS5hZGQoJ21vbnRoJywgLTEpKTtcbiAgICB9IGVsc2UgaWYgKHZpZXcgPT0gJ3llYXInKSB7XG4gICAgICB0aGlzLl9jMS5uYXZUbyhlLnN0YXJ0T2YoJ3llYXInKSk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiYXgtY2FsZW5kYXItcmFuZ2UtaGVhZGVyXCI+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDxkaXYgY2xhc3M9XCJheC1jYWxlbmRhci1oZWFkZXItcmFuZ2UtaW5mb1wiPlxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBbYXR0ci5kaXNhYmxlZF09XCJkaXNhYmxlZCA/ICcnIDogbnVsbFwiIGNsYXNzPVwiYXgtZ2VuZXJhbC1idXR0b25cIlxuICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZU5hdkNsaWNrKClcIj5cbiAgICAgICAgICAgIHt7IF9uYXZUZXh0IH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJheC1jYWxlbmRhci1oZWFkZXItcmFuZ2UtYnV0dG9uc1wiPlxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBbYXR0ci5kaXNhYmxlZF09XCJkaXNhYmxlZCA/ICcnIDogbnVsbFwiIGNsYXNzPVwiYXgtZ2VuZXJhbC1idXR0b24gYXgtYnV0dG9uLWljb25cIlxuICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZVByZXZDbGljaygpXCI+XG4gICAgICAgICAgICA8aSBjbGFzcz1cImF4LWljb25cIiBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgJ2F4LWljb24tY2hldnJvbi1sZWZ0JzogIXJ0bCxcbiAgICAgICAgICAgICAgICAnYXgtaWNvbi1jaGV2cm9uLXJpZ2h0JzogcnRsXG4gICAgICAgICAgICAgIH1cIj48L2k+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBbYXR0ci5kaXNhYmxlZF09XCJkaXNhYmxlZCA/ICcnIDogbnVsbFwiIGNsYXNzPVwiYXgtZ2VuZXJhbC1idXR0b24gYXgtYnV0dG9uLWljb25cIlxuICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZU5leHRDbGljaygpXCI+XG4gICAgICAgICAgICA8aSBjbGFzcz1cImF4LWljb25cIiBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgJ2F4LWljb24tY2hldnJvbi1sZWZ0JzogcnRsLFxuICAgICAgICAgICAgICAgICdheC1pY29uLWNoZXZyb24tcmlnaHQnOiAhcnRsXG4gICAgICAgICAgICAgIH1cIj48L2k+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwiYXgtY2FsZW5kYXItcmFuZ2UtYm9keVwiPlxuICAgIDxheC1jYWxlbmRhciAjYzEgc3R5bGU9XCJ3aWR0aDogNTAlO1wiIFtzaG93TmF2aWdhdGlvbl09XCJmYWxzZVwiIFtjZWxsQ2xhc3NdPVwiZ2V0Q2VsbENsYXNzXCIgW3R5cGVdPVwidHlwZVwiXG4gICAgICAgIFtjZWxsVGVtcGxhdGVdPVwiY2VsbFRlbXBsYXRlXCIgW21pblZhbHVlXT1cIm1pblZhbHVlXCIgW21heFZhbHVlXT1cIm1heFZhbHVlXCIgW3JlYWRvbmx5XT1cInRydWVcIiBbZGVwdGhdPVwiZGVwdGhcIlxuICAgICAgICAob25TbG90Q2xpY2spPVwiaGFuZGxlU2xvdENsaWNrKCRldmVudClcIiAob25OYXZpZ2F0ZSk9XCJoYW5kbGVOYXZpZ2F0ZSgpXCJcbiAgICAgICAgKGFjdGl2ZVZpZXdDaGFuZ2UpPVwiaGFuZGxlQWN0aXZlVmlld0NoYW5nZTEoKVwiPlxuICAgIDwvYXgtY2FsZW5kYXI+XG4gICAgPGF4LWNhbGVuZGFyICNjMiBzdHlsZT1cIndpZHRoOiA1MCU7XCIgW3Nob3dOYXZpZ2F0aW9uXT1cImZhbHNlXCIgW2NlbGxDbGFzc109XCJnZXRDZWxsQ2xhc3NcIiBbdHlwZV09XCJ0eXBlXCJcbiAgICAgICAgW2NlbGxUZW1wbGF0ZV09XCJjZWxsVGVtcGxhdGVcIiBbbWluVmFsdWVdPVwibWluVmFsdWVcIiBbbWF4VmFsdWVdPVwibWF4VmFsdWVcIiBbcmVhZG9ubHldPVwidHJ1ZVwiIFtkZXB0aF09XCJkZXB0aFwiXG4gICAgICAgIChvblNsb3RDbGljayk9XCJoYW5kbGVTbG90Q2xpY2soJGV2ZW50KVwiIChhY3RpdmVWaWV3Q2hhbmdlKT1cImhhbmRsZUFjdGl2ZVZpZXdDaGFuZ2UyKClcIj5cbiAgICA8L2F4LWNhbGVuZGFyPlxuPC9kaXY+Il19
177
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItcmFuZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NhbGVuZGFyL3NyYy9saWIvY2FsZW5kYXItcmFuZ2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NhbGVuZGFyL3NyYy9saWIvY2FsZW5kYXItcmFuZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFXLHNCQUFzQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDOUYsT0FBTyxFQUFFLGlCQUFpQixFQUFjLE1BQU0sd0JBQXdCLENBQUM7QUFDdkUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2hELE9BQU8sRUFBaUIsU0FBUyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0YsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNuQyxPQUFPLEVBQXVCLHVCQUF1QixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDaEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7QUF1QzNELE1BQU0sT0FBTyx3QkFDWCxTQUFRLE9BQU8sQ0FBQyxDQUFBLGdCQUErQixDQUFBLEVBQUUsc0JBQXNCLEVBQUUsdUJBQXVCLENBQUM7SUFlakc7UUFDRSxLQUFLLEVBQUUsQ0FBQztRQWJGLHFCQUFnQixHQUFzQixNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQVF4RSxhQUFRLEdBQUcsRUFBRSxDQUFDO1FBa0JkLGlCQUFZLEdBQUcsQ0FBQyxJQUFnQixFQUFFLEVBQUU7WUFDbEMsMERBQTBEO1lBQzFELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENB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bmdlLCBNWEludGVyYWN0aXZlQ29tcG9uZW50LCBNWFZhbHVlQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2NvbW1vbic7XG5pbXBvcnQgeyBBWENhbGVuZGFyU2VydmljZSwgQVhEYXRlVGltZSB9IGZyb20gJ0BhY29yZXgvY29yZS9kYXRlLXRpbWUnO1xuaW1wb3J0IHsgQVhIdG1sVXRpbCB9IGZyb20gJ0BhY29yZXgvY29yZS91dGlscyc7XG5pbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb24sIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY2xhc3NlcyB9IGZyb20gJ3BvbHl0eXBlJztcbmltcG9ydCB7IEFYQ2FsZW5kYXJTbG90Q2xpY2ssIE1YQ2FsZW5kYXJCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi9jYWxlbmRhci5jbGFzcyc7XG5pbXBvcnQgeyBBWENhbGVuZGFyQ29tcG9uZW50IH0gZnJvbSAnLi9jYWxlbmRhci5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1jYWxlbmRhci1yYW5nZScsXG4gIHRlbXBsYXRlVXJsOiAnY2FsZW5kYXItcmFuZ2UuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnY2FsZW5kYXItcmFuZ2UuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaW5wdXRzOiBbXG4gICAgJ3J0bCcsXG4gICAgJ3JlYWRvbmx5JyxcbiAgICAndmFsdWUnLFxuICAgICduYW1lJyxcbiAgICAnZGlzYWJsZWQnLFxuICAgICdkZXB0aCcsXG4gICAgJ2FjdGl2ZVZpZXcnLFxuICAgICdtaW5WYWx1ZScsXG4gICAgJ21heFZhbHVlJyxcbiAgICAnZGlzYWJsZWREYXRlcycsXG4gICAgJ2hvbGlkYXlEYXRlcycsXG4gICAgJ3R5cGUnLFxuICAgICdjZWxsVGVtcGxhdGUnLFxuICAgICdjZWxsQ2xhc3MnLFxuICAgICdzaG93TmF2aWdhdGlvbicsXG4gIF0sXG4gIG91dHB1dHM6IFtcbiAgICAnb25PcHRpb25DaGFuZ2VkJyxcbiAgICAndmFsdWVDaGFuZ2UnLFxuICAgICdvblZhbHVlQ2hhbmdlZCcsXG4gICAgJ29uQmx1cicsXG4gICAgJ29uRm9jdXMnLFxuICAgICdkZXB0aENoYW5nZScsXG4gICAgJ3R5cGVDaGFuZ2UnLFxuICAgICdhY3RpdmVWaWV3Q2hhbmdlJyxcbiAgICAnZGlzYWJsZWREYXRlc0NoYW5nZScsXG4gICAgJ2hvbGlkYXlEYXRlc0NoYW5nZScsXG4gICAgJ29uTmF2aWdhdGUnLFxuICAgICdvblNsb3RDbGljaycsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFYQ2FsZW5kYXJSYW5nZUNvbXBvbmVudFxuICBleHRlbmRzIGNsYXNzZXMoTVhWYWx1ZUNvbXBvbmVudDxBWFJhbmdlPERhdGU+PiwgTVhJbnRlcmFjdGl2ZUNvbXBvbmVudCwgTVhDYWxlbmRhckJhc2VDb21wb25lbnQpXG4gIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdFxue1xuICBwcml2YXRlIF9jYWxlbmRhclNlcnZpY2U6IEFYQ2FsZW5kYXJTZXJ2aWNlID0gaW5qZWN0KEFYQ2FsZW5kYXJTZXJ2aWNlKTtcblxuICBAVmlld0NoaWxkKCdjMScsIHsgc3RhdGljOiB0cnVlIH0pXG4gIHByaXZhdGUgX2MxOiBBWENhbGVuZGFyQ29tcG9uZW50O1xuXG4gIEBWaWV3Q2hpbGQoJ2MyJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgcHJpdmF0ZSBfYzI6IEFYQ2FsZW5kYXJDb21wb25lbnQ7XG5cbiAgX25hdlRleHQgPSAnJztcblxuICBwcm90ZWN0ZWQgcnRsITogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuZGVmYXVsdFZhbHVlID0geyBmcm9tOiBudWxsLCBlbmQ6IG51bGwgfTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgIHRoaXMucnRsID0gQVhIdG1sVXRpbC5pc1J0bCh0aGlzLmdldEhvc3RFbGVtZW50KCkpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX3N5bmNOYXYxKCk7XG4gIH1cblxuICBnZXRDZWxsQ2xhc3MgPSAoZGF0ZTogQVhEYXRlVGltZSkgPT4ge1xuICAgIC8vY29uc3QgZCA9IHRoaXMuX2NhbGVuZGFyU2VydmljZS5jcmVhdGUoZGF0ZSwgdGhpcy50eXBlKTtcbiAgICBjb25zdCBmcm9tID0gdGhpcy5fY2FsZW5kYXJTZXJ2aWNlLmNyZWF0ZSh0aGlzLnZhbHVlLmZyb20sIHRoaXMudHlwZSk7XG4gICAgY29uc3QgZW5kID0gdGhpcy5fY2FsZW5kYXJTZXJ2aWNlLmNyZWF0ZSh0aGlzLnZhbHVlLmVuZCwgdGhpcy50eXBlKTtcbiAgICBpZiAodGhpcy52YWx1ZS5mcm9tICYmIGRhdGUuZXF1YWwoZnJvbSwgJ2RheScpKSB7XG4gICAgICByZXR1cm4gJ2F4LXJhbmdlLXN0YXJ0JztcbiAgICB9XG4gICAgaWYgKHRoaXMudmFsdWUuZW5kICYmIGRhdGUuZXF1YWwoZW5kLCAnZGF5JykpIHJldHVybiAnYXgtcmFuZ2UtZW5kJztcbiAgICBpZiAodGhpcy52YWx1ZS5mcm9tICYmIHRoaXMudmFsdWUuZW5kICYmIGRhdGUuY29tcGFyZShmcm9tLCAnZGF5JykgPiAwICYmIGRhdGUuY29tcGFyZShlbmQsICdkYXknKSA8IDApIHJldHVybiAnYXgtcmFuZ2UtYmV0d2Vlbic7XG4gICAgcmV0dXJuIG51bGw7XG4gIH07XG5cbiAgcHJvdGVjdGVkIGhhbmRsZVNsb3RDbGljayhlOiBBWENhbGVuZGFyU2xvdENsaWNrKSB7XG4gICAgaWYgKHRoaXMuX2MxLmFjdGl2ZVZpZXcgPT0gdGhpcy5kZXB0aCkge1xuICAgICAgaWYgKCF0aGlzLnZhbHVlLmZyb20gfHwgKHRoaXMudmFsdWUuZnJvbSAmJiB0aGlzLnZhbHVlLmVuZCkpIHtcbiAgICAgICAgdGhpcy52YWx1ZS5mcm9tID0gZS5pdGVtO1xuICAgICAgICB0aGlzLnZhbHVlLmVuZCA9IG51bGw7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy52YWx1ZS5mcm9tICYmIGUuaXRlbSA8PSB0aGlzLnZhbHVlLmZyb20pIHtcbiAgICAgICAgdGhpcy52YWx1ZS5mcm9tID0gZS5pdGVtO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLnZhbHVlLmZyb20gJiYgIXRoaXMudmFsdWUuZW5kKSB7XG4gICAgICAgIHRoaXMudmFsdWUuZW5kID0gZS5pdGVtO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoZS5jb21wb25lbnQgPT0gdGhpcy5fYzEpIHRoaXMuX3N5bmNOYXYxKCk7XG4gICAgICBpZiAoZS5jb21wb25lbnQgPT0gdGhpcy5fYzIpIHtcbiAgICAgICAgdGhpcy5fc3luY05hdjIodGhpcy5fY2FsZW5kYXJTZXJ2aWNlLmNyZWF0ZShlLml0ZW0sIHRoaXMudHlwZSkpO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLl9jMS5yZW5kZXIoKTtcbiAgICB0aGlzLl9jMi5yZW5kZXIoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVQcmV2Q2xpY2soKSB7XG4gICAgY29uc3QgdmlldyA9IHRoaXMuX2MxLmFjdGl2ZVZpZXc7XG4gICAgY29uc3QgZDEgPSB0aGlzLl9jMS5kaXNwbGF5UmFuZ2Uuc3RhcnRUaW1lO1xuICAgIGlmICh2aWV3ID09ICdkYXknIHx8IHZpZXcgPT0gJ21vbnRoJykge1xuICAgICAgdGhpcy5fYzEucHJldigpO1xuICAgIH0gZWxzZSBpZiAodmlldyA9PSAneWVhcicpIHtcbiAgICAgIHRoaXMuX2MxLm5hdlRvKGQxLmFkZCgneWVhcicsIC0yMCkpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVOZXh0Q2xpY2soKSB7XG4gICAgY29uc3QgdmlldyA9IHRoaXMuX2MxLmFjdGl2ZVZpZXc7XG4gICAgY29uc3QgZDEgPSB0aGlzLl9jMS5kaXNwbGF5UmFuZ2Uuc3RhcnRUaW1lO1xuICAgIGlmICh2aWV3ID09ICdkYXknIHx8IHZpZXcgPT0gJ21vbnRoJykge1xuICAgICAgdGhpcy5fYzEubmV4dCgpO1xuICAgIH0gZWxzZSBpZiAodmlldyA9PSAneWVhcicpIHtcbiAgICAgIHRoaXMuX2MxLm5hdlRvKGQxLmFkZCgneWVhcicsIDIwKSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZU5hdkNsaWNrKCkge1xuICAgIHRoaXMuX2MxLnRvZ2dsZVZpZXcoKTtcbiAgfVxuXG4gIHByaXZhdGUgX3N5bmNOYXZUZXh0KCkge1xuICAgIGNvbnN0IHZpZXcgPSB0aGlzLl9jMS5hY3RpdmVWaWV3O1xuICAgIGNvbnN0IGQxID0gdGhpcy5fYzEuZGlzcGxheVJhbmdlLnN0YXJ0VGltZTtcbiAgICBpZiAodmlldyA9PSAnZGF5Jykge1xuICAgICAgY29uc3QgZDIgPSB0aGlzLl9jMi5kaXNwbGF5UmFuZ2UuZW5kVGltZTtcbiAgICAgIHRoaXMuX25hdlRleHQgPSBgJHtkMS5mb3JtYXQoJ01NTSB5eXl5Jyl9IC0gJHtkMi5mb3JtYXQoJ01NTSB5eXl5Jyl9YDtcbiAgICB9IGVsc2UgaWYgKHZpZXcgPT0gJ21vbnRoJykge1xuICAgICAgY29uc3QgZDIgPSB0aGlzLl9jMi5kaXNwbGF5UmFuZ2UuZW5kVGltZTtcbiAgICAgIHRoaXMuX25hdlRleHQgPSBgJHtkMS5mb3JtYXQoJ3l5eXknKX0gLSAke2QyLmZvcm1hdCgneXl5eScpfWA7XG4gICAgfSBlbHNlIGlmICh2aWV3ID09ICd5ZWFyJykge1xuICAgICAgY29uc3QgZDIgPSB0aGlzLl9jMi5kaXNwbGF5UmFuZ2UuZW5kVGltZTtcbiAgICAgIHRoaXMuX25hdlRleHQgPSBgJHtkMS5mb3JtYXQoJ3l5eXknKX0gLSAke2QyLmZvcm1hdCgneXl5eScpfWA7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZU5hdmlnYXRlKCkge1xuICAgIHRoaXMuX3N5bmNOYXYxKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlQWN0aXZlVmlld0NoYW5nZTEoKSB7XG4gICAgdGhpcy5fYzIuYWN0aXZlVmlldyA9IHRoaXMuX2MxLmFjdGl2ZVZpZXc7XG4gICAgdGhpcy5fc3luY05hdjEoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVBY3RpdmVWaWV3Q2hhbmdlMigpIHtcbiAgICBpZiAodGhpcy5fYzIuYWN0aXZlVmlldyAhPSB0aGlzLl9jMS5hY3RpdmVWaWV3KSB7XG4gICAgICB0aGlzLl9jMS5hY3RpdmVWaWV3ID0gdGhpcy5fYzIuYWN0aXZlVmlldztcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9zeW5jTmF2MSgpIHtcbiAgICBjb25zdCB2aWV3ID0gKHRoaXMuX2MyLmFjdGl2ZVZpZXcgPSB0aGlzLl9jMS5hY3RpdmVWaWV3KTtcbiAgICBjb25zdCByYW5nZSA9IHRoaXMuX2MxLmRpc3BsYXlSYW5nZTtcbiAgICBpZiAodmlldyA9PSAnZGF5Jykge1xuICAgICAgdGhpcy5fYzIubmF2VG8ocmFuZ2Uuc3RhcnRUaW1lLmFkZCgnbW9udGgnLCAxKSk7XG4gICAgfSBlbHNlIGlmICh2aWV3ID09ICdtb250aCcpIHtcbiAgICAgIHRoaXMuX2MyLm5hdlRvKHJhbmdlLnN0YXJ0VGltZS5hZGQoJ3llYXInLCAxKSk7XG4gICAgfSBlbHNlIGlmICh2aWV3ID09ICd5ZWFyJykge1xuICAgICAgdGhpcy5fYzIubmF2VG8ocmFuZ2UuZW5kVGltZS5hZGQoJ3llYXInLCA0KSk7XG4gICAgfVxuICAgIHRoaXMuX3N5bmNOYXZUZXh0KCk7XG4gIH1cblxuICBwcml2YXRlIF9zeW5jTmF2MihlOiBBWERhdGVUaW1lKSB7XG4gICAgY29uc3QgdmlldyA9IHRoaXMuX2MyLmFjdGl2ZVZpZXc7XG4gICAgaWYgKHZpZXcgPT0gJ21vbnRoJykge1xuICAgICAgdGhpcy5fYzEubmF2VG8oZS5hZGQoJ21vbnRoJywgLTEpKTtcbiAgICB9IGVsc2UgaWYgKHZpZXcgPT0gJ3llYXInKSB7XG4gICAgICB0aGlzLl9jMS5uYXZUbyhlLnN0YXJ0T2YoJ3llYXInKSk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiYXgtY2FsZW5kYXItcmFuZ2UtaGVhZGVyXCI+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDxkaXYgY2xhc3M9XCJheC1jYWxlbmRhci1oZWFkZXItcmFuZ2UtaW5mb1wiPlxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBbYXR0ci5kaXNhYmxlZF09XCJkaXNhYmxlZCA/ICcnIDogbnVsbFwiIGNsYXNzPVwiYXgtZ2VuZXJhbC1idXR0b25cIlxuICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZU5hdkNsaWNrKClcIj5cbiAgICAgICAgICAgIHt7IF9uYXZUZXh0IH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJheC1jYWxlbmRhci1oZWFkZXItcmFuZ2UtYnV0dG9uc1wiPlxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBbYXR0ci5kaXNhYmxlZF09XCJkaXNhYmxlZCA/ICcnIDogbnVsbFwiIGNsYXNzPVwiYXgtZ2VuZXJhbC1idXR0b24gYXgtYnV0dG9uLWljb25cIlxuICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZVByZXZDbGljaygpXCI+XG4gICAgICAgICAgICA8aSBjbGFzcz1cImF4LWljb25cIiBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgJ2F4LWljb24tY2hldnJvbi1sZWZ0JzogIXJ0bCxcbiAgICAgICAgICAgICAgICAnYXgtaWNvbi1jaGV2cm9uLXJpZ2h0JzogcnRsXG4gICAgICAgICAgICAgIH1cIj48L2k+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBbYXR0ci5kaXNhYmxlZF09XCJkaXNhYmxlZCA/ICcnIDogbnVsbFwiIGNsYXNzPVwiYXgtZ2VuZXJhbC1idXR0b24gYXgtYnV0dG9uLWljb25cIlxuICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZU5leHRDbGljaygpXCI+XG4gICAgICAgICAgICA8aSBjbGFzcz1cImF4LWljb25cIiBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgJ2F4LWljb24tY2hldnJvbi1sZWZ0JzogcnRsLFxuICAgICAgICAgICAgICAgICdheC1pY29uLWNoZXZyb24tcmlnaHQnOiAhcnRsXG4gICAgICAgICAgICAgIH1cIj48L2k+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwiYXgtY2FsZW5kYXItcmFuZ2UtYm9keVwiPlxuICAgIDxheC1jYWxlbmRhciAjYzEgW3Nob3dOYXZpZ2F0aW9uXT1cImZhbHNlXCIgW2NlbGxDbGFzc109XCJnZXRDZWxsQ2xhc3NcIiBbdHlwZV09XCJ0eXBlXCIgW2NlbGxUZW1wbGF0ZV09XCJjZWxsVGVtcGxhdGVcIlxuICAgICAgICBbbWluVmFsdWVdPVwibWluVmFsdWVcIiBbbWF4VmFsdWVdPVwibWF4VmFsdWVcIiBbZGVwdGhdPVwiZGVwdGhcIiAob25TbG90Q2xpY2spPVwiaGFuZGxlU2xvdENsaWNrKCRldmVudClcIlxuICAgICAgICAob25OYXZpZ2F0ZSk9XCJoYW5kbGVOYXZpZ2F0ZSgpXCIgKGFjdGl2ZVZpZXdDaGFuZ2UpPVwiaGFuZGxlQWN0aXZlVmlld0NoYW5nZTEoKVwiPlxuICAgIDwvYXgtY2FsZW5kYXI+XG4gICAgPGF4LWNhbGVuZGFyICNjMiBbc2hvd05hdmlnYXRpb25dPVwiZmFsc2VcIiBbY2VsbENsYXNzXT1cImdldENlbGxDbGFzc1wiIFt0eXBlXT1cInR5cGVcIiBbY2VsbFRlbXBsYXRlXT1cImNlbGxUZW1wbGF0ZVwiXG4gICAgICAgIFttaW5WYWx1ZV09XCJtaW5WYWx1ZVwiIFttYXhWYWx1ZV09XCJtYXhWYWx1ZVwiIFtkZXB0aF09XCJkZXB0aFwiIChvblNsb3RDbGljayk9XCJoYW5kbGVTbG90Q2xpY2soJGV2ZW50KVwiXG4gICAgICAgIChhY3RpdmVWaWV3Q2hhbmdlKT1cImhhbmRsZUFjdGl2ZVZpZXdDaGFuZ2UyKClcIj5cbiAgICA8L2F4LWNhbGVuZGFyPlxuPC9kaXY+Il19