@acorex/components 17.0.10 → 17.0.12

Sign up to get free protection for your applications and to get access to all the features.
Files changed (79) hide show
  1. package/audio-wave/lib/audio-wave.component.d.ts +1 -0
  2. package/audio-wave/lib/audio-wave.module.d.ts +2 -1
  3. package/calendar/lib/calendar-range.component.d.ts +2 -0
  4. package/calendar/lib/calendar.class.d.ts +3 -2
  5. package/calendar/lib/calendar.component.d.ts +2 -1
  6. package/chat/lib/chat-message/chat-message.component.d.ts +5 -1
  7. package/chat/lib/chat-messages/chat-messages-voice/chat-message-voice.component.d.ts +5 -2
  8. package/chat/lib/chat.module.d.ts +3 -1
  9. package/common/lib/classes/events.class.d.ts +1 -1
  10. package/common/lib/components/base-component.class.d.ts +4 -4
  11. package/common/lib/components/input-base-value-component.class.d.ts +1 -0
  12. package/data-pager/lib/data-pager-next-buttons.components.d.ts +2 -0
  13. package/data-pager/lib/data-pager-prev-buttons.component.d.ts +2 -0
  14. package/data-table/lib/columns/data-table-column.d.ts +2 -3
  15. package/data-table/lib/columns/data-text-column.component.d.ts +8 -4
  16. package/data-table/lib/columns/row-command-column.component.d.ts +8 -4
  17. package/data-table/lib/columns/row-index-column.component.d.ts +4 -2
  18. package/data-table/lib/columns/row-select-column.component.d.ts +7 -2
  19. package/data-table/lib/data-table/data-table.component.d.ts +1 -0
  20. package/datetime-picker/lib/datetime-picker.component.d.ts +2 -0
  21. package/esm2022/audio-wave/lib/audio-wave.component.mjs +21 -17
  22. package/esm2022/audio-wave/lib/audio-wave.module.mjs +5 -4
  23. package/esm2022/calendar/lib/calendar-range.component.mjs +10 -8
  24. package/esm2022/calendar/lib/calendar.class.mjs +14 -27
  25. package/esm2022/calendar/lib/calendar.component.mjs +14 -2
  26. package/esm2022/chat/lib/chat-message/chat-message.component.mjs +24 -5
  27. package/esm2022/chat/lib/chat-messages/chat-messages-voice/chat-message-voice.component.mjs +25 -14
  28. package/esm2022/chat/lib/chat.module.mjs +10 -3
  29. package/esm2022/common/lib/classes/events.class.mjs +1 -1
  30. package/esm2022/common/lib/components/base-component.class.mjs +14 -26
  31. package/esm2022/common/lib/components/input-base-value-component.class.mjs +8 -1
  32. package/esm2022/data-pager/lib/data-pager-next-buttons.components.mjs +6 -2
  33. package/esm2022/data-pager/lib/data-pager-numeric-selector.component.mjs +13 -13
  34. package/esm2022/data-pager/lib/data-pager-prev-buttons.component.mjs +15 -47
  35. package/esm2022/data-pager/lib/data-pager.component.mjs +2 -2
  36. package/esm2022/data-table/lib/columns/data-table-column.mjs +2 -6
  37. package/esm2022/data-table/lib/columns/data-text-column.component.mjs +31 -25
  38. package/esm2022/data-table/lib/columns/row-command-column.component.mjs +97 -81
  39. package/esm2022/data-table/lib/columns/row-index-column.component.mjs +19 -11
  40. package/esm2022/data-table/lib/columns/row-select-column.component.mjs +61 -11
  41. package/esm2022/data-table/lib/data-table/data-table.component.mjs +5 -4
  42. package/esm2022/data-table/lib/infinite-scroll-data-table/infinite-scroll-data-table.component.mjs +3 -3
  43. package/esm2022/datetime-picker/lib/datetime-picker.component.mjs +21 -2
  44. package/esm2022/drawer/lib/drawer.component.mjs +2 -2
  45. package/esm2022/list/lib/list.component.mjs +13 -3
  46. package/esm2022/phone-box/lib/phone-box.component.mjs +29 -28
  47. package/esm2022/select-box/lib/select-box.component.mjs +29 -9
  48. package/esm2022/text-box/lib/mask-options.directive.mjs +16 -4
  49. package/esm2022/text-box/lib/text-box.component.mjs +8 -1
  50. package/fesm2022/acorex-components-audio-wave.mjs +24 -19
  51. package/fesm2022/acorex-components-audio-wave.mjs.map +1 -1
  52. package/fesm2022/acorex-components-calendar.mjs +31 -31
  53. package/fesm2022/acorex-components-calendar.mjs.map +1 -1
  54. package/fesm2022/acorex-components-chat.mjs +55 -21
  55. package/fesm2022/acorex-components-chat.mjs.map +1 -1
  56. package/fesm2022/acorex-components-common.mjs +21 -25
  57. package/fesm2022/acorex-components-common.mjs.map +1 -1
  58. package/fesm2022/acorex-components-data-pager.mjs +31 -59
  59. package/fesm2022/acorex-components-data-pager.mjs.map +1 -1
  60. package/fesm2022/acorex-components-data-table.mjs +210 -133
  61. package/fesm2022/acorex-components-data-table.mjs.map +1 -1
  62. package/fesm2022/acorex-components-datetime-picker.mjs +20 -1
  63. package/fesm2022/acorex-components-datetime-picker.mjs.map +1 -1
  64. package/fesm2022/acorex-components-drawer.mjs +2 -2
  65. package/fesm2022/acorex-components-drawer.mjs.map +1 -1
  66. package/fesm2022/acorex-components-list.mjs +13 -3
  67. package/fesm2022/acorex-components-list.mjs.map +1 -1
  68. package/fesm2022/acorex-components-phone-box.mjs +29 -29
  69. package/fesm2022/acorex-components-phone-box.mjs.map +1 -1
  70. package/fesm2022/acorex-components-select-box.mjs +28 -8
  71. package/fesm2022/acorex-components-select-box.mjs.map +1 -1
  72. package/fesm2022/acorex-components-text-box.mjs +22 -3
  73. package/fesm2022/acorex-components-text-box.mjs.map +1 -1
  74. package/list/lib/list.component.d.ts +3 -2
  75. package/package.json +1 -1
  76. package/phone-box/lib/phone-box.component.d.ts +4 -2
  77. package/select-box/lib/select-box.component.d.ts +5 -4
  78. package/text-box/lib/mask-options.directive.d.ts +6 -2
  79. package/text-box/lib/text-box.component.d.ts +1 -0
@@ -6,6 +6,7 @@ export declare class AXAudioWaveComponent {
6
6
  protected div: ElementRef<HTMLDivElement>;
7
7
  config: InputSignal<AXWaveConfig>;
8
8
  onStatusChanged: import("@angular/core").OutputEmitterRef<AXAudioWaveChangeEvent>;
9
+ audioIsReady: import("@angular/core").WritableSignal<boolean>;
9
10
  protected audio: WaveSurfer;
10
11
  private ngZone;
11
12
  constructor();
@@ -3,8 +3,9 @@ import * as i1 from "./audio-wave.component";
3
3
  import * as i2 from "@angular/common";
4
4
  import * as i3 from "@acorex/components/button";
5
5
  import * as i4 from "@acorex/components/decorators";
6
+ import * as i5 from "@acorex/components/skeleton";
6
7
  export declare class AXAudioWaveModule {
7
8
  static ɵfac: i0.ɵɵFactoryDeclaration<AXAudioWaveModule, never>;
8
- static ɵmod: i0.ɵɵNgModuleDeclaration<AXAudioWaveModule, [typeof i1.AXAudioWaveComponent], [typeof i2.CommonModule, typeof i3.AXButtonModule, typeof i4.AXDecoratorModule], [typeof i1.AXAudioWaveComponent]>;
9
+ static ɵmod: i0.ɵɵNgModuleDeclaration<AXAudioWaveModule, [typeof i1.AXAudioWaveComponent], [typeof i2.CommonModule, typeof i3.AXButtonModule, typeof i4.AXDecoratorModule, typeof i5.AXSkeletonModule], [typeof i1.AXAudioWaveComponent]>;
9
10
  static ɵinj: i0.ɵɵInjectorDeclaration<AXAudioWaveModule>;
10
11
  }
@@ -12,7 +12,9 @@ export declare class AXCalendarRangeComponent extends AXCalendarRangeComponent_b
12
12
  private _c1;
13
13
  private _c2;
14
14
  _navText: string;
15
+ protected rtl: boolean;
15
16
  constructor();
17
+ protected ngOnInit(): void;
16
18
  ngAfterViewInit(): void;
17
19
  getCellClass: (date: Date) => "ax-range-start" | "ax-range-end" | "ax-range-between";
18
20
  protected handleSlotClick(e: AXCalendarSlotClick): void;
@@ -57,11 +57,11 @@ export declare class MXCalendarBaseComponent extends MXBaseComponent {
57
57
  private _depth;
58
58
  get depth(): AXCalendarViewDepth;
59
59
  set depth(v: AXCalendarViewDepth);
60
- minChange: EventEmitter<Date>;
60
+ minValueChange: EventEmitter<Date>;
61
61
  private _minValue;
62
62
  get minValue(): Date;
63
63
  set minValue(v: Date);
64
- maxChange: EventEmitter<Date>;
64
+ maxValueChange: EventEmitter<Date>;
65
65
  private _maxValue;
66
66
  get maxValue(): Date;
67
67
  set maxValue(v: Date);
@@ -73,6 +73,7 @@ export declare class MXCalendarBaseComponent extends MXBaseComponent {
73
73
  private _holidayDates;
74
74
  get holidayDates(): AXCalendarHolidayDates;
75
75
  set holidayDates(v: AXCalendarHolidayDates);
76
+ render(): void;
76
77
  static ɵfac: i0.ɵɵFactoryDeclaration<MXCalendarBaseComponent, never>;
77
78
  static ɵprov: i0.ɵɵInjectableDeclaration<MXCalendarBaseComponent>;
78
79
  }
@@ -30,6 +30,7 @@ export declare class AXCalendarComponent extends AXCalendarComponent_base {
30
30
  protected _handleNavClick(e: AXClickEvent | any, view: AXCalendarViewType): void;
31
31
  toggleView(): void;
32
32
  protected internalOptionChanged(e: MXComponentOptionChanged): void;
33
+ protected internalSetValue(value: Date): Date | null;
33
34
  protected internalValueChanged(value?: Date): void;
34
35
  protected _handleGoToday(): void;
35
36
  next(): void;
@@ -46,6 +47,6 @@ export declare class AXCalendarComponent extends AXCalendarComponent_base {
46
47
  _handleOnKeydownEvent(e: KeyboardEvent): void;
47
48
  protected getMonthName(date: AXDateTime, style: 'short' | 'long'): string;
48
49
  static ɵfac: i0.ɵɵFactoryDeclaration<AXCalendarComponent, never>;
49
- static ɵcmp: i0.ɵɵComponentDeclaration<AXCalendarComponent, "ax-calendar", never, { "rtl": { "alias": "rtl"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "value": { "alias": "value"; "required": false; }; "name": { "alias": "name"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "depth": { "alias": "depth"; "required": false; }; "activeView": { "alias": "activeView"; "required": false; }; "minValue": { "alias": "minValue"; "required": false; }; "maxValue": { "alias": "maxValue"; "required": false; }; "disabledDates": { "alias": "disabledDates"; "required": false; }; "holidayDates": { "alias": "holidayDates"; "required": false; }; "type": { "alias": "type"; "required": false; }; "cellTemplate": { "alias": "cellTemplate"; "required": false; }; "cellClass": { "alias": "cellClass"; "required": false; }; "showNavigation": { "alias": "showNavigation"; "required": false; }; "count": { "alias": "count"; "required": false; }; "id": { "alias": "id"; "required": false; }; }, { "onOptionChanged": "onOptionChanged"; "valueChange": "valueChange"; "onValueChanged": "onValueChanged"; "onBlur": "onBlur"; "onFocus": "onFocus"; "depthChange": "depthChange"; "typeChange": "typeChange"; "activeViewChange": "activeViewChange"; "disabledDatesChange": "disabledDatesChange"; "holidayDatesChange": "holidayDatesChange"; "onNavigate": "onNavigate"; "onSlotClick": "onSlotClick"; "countChange": "countChange"; }, never, ["ax-header", "ax-footer"], false, never>;
50
+ static ɵcmp: i0.ɵɵComponentDeclaration<AXCalendarComponent, "ax-calendar", never, { "rtl": { "alias": "rtl"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "value": { "alias": "value"; "required": false; }; "name": { "alias": "name"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "depth": { "alias": "depth"; "required": false; }; "activeView": { "alias": "activeView"; "required": false; }; "minValue": { "alias": "minValue"; "required": false; }; "maxValue": { "alias": "maxValue"; "required": false; }; "disabledDates": { "alias": "disabledDates"; "required": false; }; "holidayDates": { "alias": "holidayDates"; "required": false; }; "type": { "alias": "type"; "required": false; }; "cellTemplate": { "alias": "cellTemplate"; "required": false; }; "cellClass": { "alias": "cellClass"; "required": false; }; "showNavigation": { "alias": "showNavigation"; "required": false; }; "count": { "alias": "count"; "required": false; }; "id": { "alias": "id"; "required": false; }; }, { "onOptionChanged": "onOptionChanged"; "valueChange": "valueChange"; "onValueChanged": "onValueChanged"; "minValueChange": "minValueChange"; "maxValueChange": "maxValueChange"; "onBlur": "onBlur"; "onFocus": "onFocus"; "depthChange": "depthChange"; "typeChange": "typeChange"; "activeViewChange": "activeViewChange"; "disabledDatesChange": "disabledDatesChange"; "holidayDatesChange": "holidayDatesChange"; "onNavigate": "onNavigate"; "onSlotClick": "onSlotClick"; "countChange": "countChange"; }, never, ["ax-header", "ax-footer"], false, never>;
50
51
  }
51
52
  export {};
@@ -1,12 +1,16 @@
1
1
  import { MXBaseComponent } from '@acorex/components/common';
2
+ import { CdkPortalOutletAttachedRef, ComponentPortal } from '@angular/cdk/portal';
2
3
  import { AXChatMessage } from '../chat.types';
3
4
  import { AXChatMessageTypeRegistryService } from '../services/chat-message-type-registry.service';
4
5
  import * as i0 from "@angular/core";
5
6
  export declare class AXChatMessageComponent extends MXBaseComponent {
6
7
  chatMessage: import("@angular/core").InputSignal<AXChatMessage<any>>;
8
+ protected _portal: ComponentPortal<any> | null;
7
9
  protected get isOwn(): boolean;
8
10
  protected registryService: AXChatMessageTypeRegistryService;
9
11
  get __hostClass(): string;
12
+ protected ngOnInit(): void;
13
+ protected _handleAttched(ref: CdkPortalOutletAttachedRef): void;
10
14
  static ɵfac: i0.ɵɵFactoryDeclaration<AXChatMessageComponent, never>;
11
- static ɵcmp: i0.ɵɵComponentDeclaration<AXChatMessageComponent, "ax-chat-message", never, { "chatMessage": { "alias": "chatMessage"; "required": false; "isSignal": true; }; }, {}, never, ["ax-prefix"], false, never>;
15
+ static ɵcmp: i0.ɵɵComponentDeclaration<AXChatMessageComponent, "ax-chat-message", never, { "chatMessage": { "alias": "chatMessage"; "required": false; "isSignal": true; }; }, {}, never, never, false, never>;
12
16
  }
@@ -6,11 +6,14 @@ export declare class AXChatAudioMessageComponent extends AXChatMessageBaseCompon
6
6
  audio: AXAudioWaveComponent;
7
7
  config: AXWaveConfig;
8
8
  audioState: WritableSignal<'playing' | 'paused' | 'loading' | 'ready'>;
9
- audioProgress: WritableSignal<number>;
9
+ protected audioProgress: WritableSignal<number>;
10
+ protected timeLeft: WritableSignal<number>;
11
+ protected currentTime: WritableSignal<number>;
12
+ protected duration: WritableSignal<number>;
10
13
  constructor();
11
14
  handlePauseClick(): void;
12
15
  handlePlayClick(): void;
13
- handleOnStatusChanged(event: AXAudioWaveChangeEvent): void;
16
+ handleOnStatusChanged(e: AXAudioWaveChangeEvent): void;
14
17
  static ɵfac: i0.ɵɵFactoryDeclaration<AXChatAudioMessageComponent, never>;
15
18
  static ɵcmp: i0.ɵɵComponentDeclaration<AXChatAudioMessageComponent, "ax-chat-message-audio", never, { "message": { "alias": "message"; "required": false; }; }, {}, never, never, false, never>;
16
19
  }
@@ -16,6 +16,8 @@ import * as i12 from "@acorex/components/dropdown";
16
16
  import * as i13 from "@acorex/core/format";
17
17
  import * as i14 from "@acorex/components/audio-wave";
18
18
  import * as i15 from "@acorex/components/circular-progress";
19
+ import * as i16 from "@acorex/core/date-time";
20
+ import * as i17 from "@angular/cdk/portal";
19
21
  export interface AXChatModuleConfig {
20
22
  types: AXChatMessageType[];
21
23
  }
@@ -27,6 +29,6 @@ export declare class AXChatModule {
27
29
  */
28
30
  constructor(instances: any[]);
29
31
  static ɵfac: i0.ɵɵFactoryDeclaration<AXChatModule, [{ optional: true; }]>;
30
- static ɵmod: i0.ɵɵNgModuleDeclaration<AXChatModule, [typeof i1.AXChatViewComponent, typeof i2.AXChatInputComponent, typeof i3.AXChatMessageComponent, typeof i4.AXChatTextMessageComponent, typeof i5.AXChatAudioMessageComponent], [typeof i6.CommonModule, typeof i7.FormsModule, typeof i6.AsyncPipe, typeof i8.AXRippleDirective, typeof i9.AXButtonModule, typeof i10.AXDecoratorModule, typeof i11.AXTranslationModule, typeof i12.AXDropdownModule, typeof i13.AXFormatModule, typeof i14.AXAudioWaveModule, typeof i15.AXCircularProgressModule], [typeof i1.AXChatViewComponent, typeof i2.AXChatInputComponent, typeof i3.AXChatMessageComponent, typeof i4.AXChatTextMessageComponent, typeof i5.AXChatAudioMessageComponent]>;
32
+ static ɵmod: i0.ɵɵNgModuleDeclaration<AXChatModule, [typeof i1.AXChatViewComponent, typeof i2.AXChatInputComponent, typeof i3.AXChatMessageComponent, typeof i4.AXChatTextMessageComponent, typeof i5.AXChatAudioMessageComponent], [typeof i6.CommonModule, typeof i7.FormsModule, typeof i6.AsyncPipe, typeof i8.AXRippleDirective, typeof i9.AXButtonModule, typeof i10.AXDecoratorModule, typeof i11.AXTranslationModule, typeof i12.AXDropdownModule, typeof i13.AXFormatModule, typeof i14.AXAudioWaveModule, typeof i15.AXCircularProgressModule, typeof i16.AXDateTimeModule, typeof i17.CdkPortalOutlet], [typeof i1.AXChatViewComponent, typeof i2.AXChatInputComponent, typeof i3.AXChatMessageComponent, typeof i4.AXChatTextMessageComponent, typeof i5.AXChatAudioMessageComponent]>;
31
33
  static ɵinj: i0.ɵɵInjectorDeclaration<AXChatModule>;
32
34
  }
@@ -60,7 +60,7 @@ export declare class AXButtonClickEvent extends AXClickEvent {
60
60
  * Fires each time the user click the element.
61
61
  * @category Events
62
62
  */
63
- export declare class AXItemClickEvent<T> extends AXClickEvent {
63
+ export declare class AXItemClickEvent<T = any> extends AXClickEvent {
64
64
  name?: string;
65
65
  item: T;
66
66
  }
@@ -26,13 +26,13 @@ export declare abstract class MXBaseComponent {
26
26
  protected getViewContainer(): ViewContainerRef;
27
27
  protected internalOptionChanging(option: MXComponentOptionChanging): any;
28
28
  protected internalOptionChanged(option: MXComponentOptionChanged): void;
29
+ /**
30
+ *
31
+ */
32
+ constructor();
29
33
  protected ngOnInit(): void;
30
34
  onOptionChanged: EventEmitter<AXOptionChangedEvent>;
31
35
  setOption<T = any>(option: MXComponentSetOption<T>): void;
32
- private _detectLayout;
33
- private _rtl;
34
- get rtl(): boolean;
35
- set rtl(value: boolean);
36
36
  static ɵfac: i0.ɵɵFactoryDeclaration<MXBaseComponent, never>;
37
37
  static ɵprov: i0.ɵɵInjectableDeclaration<MXBaseComponent>;
38
38
  }
@@ -22,6 +22,7 @@ export declare class MXInputBaseValueComponent<T = string> extends MXValueCompon
22
22
  protected emitOnKeydownEvent(e: KeyboardEvent): void;
23
23
  protected emitOnKeyupEvent(e: KeyboardEvent): void;
24
24
  protected emitOnKeypressEvent(e: KeyboardEvent): void;
25
+ focus(): void;
25
26
  static ɵfac: i0.ɵɵFactoryDeclaration<MXInputBaseValueComponent<any>, never>;
26
27
  static ɵprov: i0.ɵɵInjectableDeclaration<MXInputBaseValueComponent<any>>;
27
28
  }
@@ -2,6 +2,8 @@ import { AXClickEvent } from '@acorex/components/common';
2
2
  import { AXDataPagerChild } from './data-pager-base.component';
3
3
  import * as i0 from "@angular/core";
4
4
  export declare class AXDataPagerNextButtonsComponent extends AXDataPagerChild {
5
+ protected rtl: boolean;
6
+ ngOnInit(): void;
5
7
  protected applyParent(): void;
6
8
  _emitOnLastPageClick(e: AXClickEvent): void;
7
9
  _emitOnNextPageClick(e: AXClickEvent): void;
@@ -2,6 +2,8 @@ import { AXClickEvent } from '@acorex/components/common';
2
2
  import { AXDataPagerChild } from './data-pager-base.component';
3
3
  import * as i0 from "@angular/core";
4
4
  export declare class AXDataPagerPrevButtonsComponent extends AXDataPagerChild {
5
+ protected rtl: boolean;
6
+ ngOnInit(): void;
5
7
  protected applyParent(): void;
6
8
  _emitOnFirstPageClick(e: AXClickEvent): void;
7
9
  _emitOnPrevPageClick(e: AXClickEvent): void;
@@ -9,9 +9,8 @@ export declare abstract class AXDataTableColumnComponent {
9
9
  allowResizing: boolean;
10
10
  sortIndex: number | undefined;
11
11
  sortOrder: AXSortOrder | undefined;
12
- headerTemplate?: TemplateRef<unknown>;
13
- cellTemplate?: TemplateRef<unknown>;
14
- abstract get template(): TemplateRef<unknown>;
12
+ abstract get renderCellTemplate(): TemplateRef<unknown>;
13
+ abstract get renderHeaderTemplate(): TemplateRef<unknown>;
15
14
  abstract get loadingEnabled(): boolean;
16
15
  abstract get name(): string;
17
16
  get cssClass(): string | undefined;
@@ -1,12 +1,16 @@
1
+ import { AXFormatOptions } from '@acorex/core/format';
1
2
  import { TemplateRef } from '@angular/core';
2
3
  import { AXDataTableColumnComponent } from './data-table-column';
3
- import { AXFormatOptions } from '@acorex/core/format';
4
4
  import * as i0 from "@angular/core";
5
5
  export declare class AXDataTableTextColumnComponent extends AXDataTableColumnComponent {
6
6
  dataField: string;
7
7
  wrapText: boolean;
8
- private _template;
9
- get template(): TemplateRef<unknown>;
8
+ cellTemplate: TemplateRef<unknown>;
9
+ private _contentCellTemplate;
10
+ get renderCellTemplate(): TemplateRef<unknown>;
11
+ headerTemplate: TemplateRef<unknown>;
12
+ private _contentHeaderTemplate;
13
+ get renderHeaderTemplate(): TemplateRef<unknown>;
10
14
  get loadingEnabled(): boolean;
11
15
  get name(): string;
12
16
  private formatService;
@@ -14,5 +18,5 @@ export declare class AXDataTableTextColumnComponent extends AXDataTableColumnCom
14
18
  format: string;
15
19
  formatOptions: AXFormatOptions;
16
20
  static ɵfac: i0.ɵɵFactoryDeclaration<AXDataTableTextColumnComponent, never>;
17
- static ɵcmp: i0.ɵɵComponentDeclaration<AXDataTableTextColumnComponent, "ax-text-column", never, { "width": { "alias": "width"; "required": false; }; "caption": { "alias": "caption"; "required": false; }; "headerTemplate": { "alias": "headerTemplate"; "required": false; }; "cellTemplate": { "alias": "cellTemplate"; "required": false; }; "allowSorting": { "alias": "allowSorting"; "required": false; }; "allowResizing": { "alias": "allowResizing"; "required": false; }; "fixed": { "alias": "fixed"; "required": false; }; "dataField": { "alias": "dataField"; "required": false; }; "wrapText": { "alias": "wrapText"; "required": false; }; "format": { "alias": "format"; "required": false; }; "formatOptions": { "alias": "formatOptions"; "required": false; }; }, {}, never, never, false, never>;
21
+ static ɵcmp: i0.ɵɵComponentDeclaration<AXDataTableTextColumnComponent, "ax-text-column", never, { "width": { "alias": "width"; "required": false; }; "caption": { "alias": "caption"; "required": false; }; "allowSorting": { "alias": "allowSorting"; "required": false; }; "allowResizing": { "alias": "allowResizing"; "required": false; }; "fixed": { "alias": "fixed"; "required": false; }; "dataField": { "alias": "dataField"; "required": false; }; "wrapText": { "alias": "wrapText"; "required": false; }; "cellTemplate": { "alias": "cellTemplate"; "required": false; }; "headerTemplate": { "alias": "headerTemplate"; "required": false; }; "format": { "alias": "format"; "required": false; }; "formatOptions": { "alias": "formatOptions"; "required": false; }; }, {}, never, never, false, never>;
18
22
  }
@@ -17,8 +17,10 @@ export declare abstract class AXBaseRowCommandColumnComponent extends AXDataTabl
17
17
  onItemClick: EventEmitter<AXRowCommandItemClickEvent>;
18
18
  }
19
19
  export declare class AXRowDropdownCommandColumnComponent extends AXBaseRowCommandColumnComponent {
20
- private _template;
21
- get template(): TemplateRef<unknown>;
20
+ private _cellTemplate;
21
+ get renderCellTemplate(): TemplateRef<unknown>;
22
+ private _contentHeaderTemplate;
23
+ get renderHeaderTemplate(): TemplateRef<unknown>;
22
24
  get name(): string;
23
25
  protected _items: AXRowCommandItem[];
24
26
  items: AXRowCommandItem[] | ((rowData: unknown) => AXRowCommandItem[] | Promise<AXRowCommandItem[]>);
@@ -29,8 +31,10 @@ export declare class AXRowDropdownCommandColumnComponent extends AXBaseRowComman
29
31
  static ɵcmp: i0.ɵɵComponentDeclaration<AXRowDropdownCommandColumnComponent, "ax-dropdown-command-column", never, { "width": { "alias": "width"; "required": false; }; "caption": { "alias": "caption"; "required": false; }; "fixed": { "alias": "fixed"; "required": false; }; "items": { "alias": "items"; "required": false; }; }, { "onItemClick": "onItemClick"; }, never, never, false, never>;
30
32
  }
31
33
  export declare class AXRowCommandColumnComponent extends AXBaseRowCommandColumnComponent {
32
- private _template;
33
- get template(): TemplateRef<unknown>;
34
+ private _cellTemplate;
35
+ get renderCellTemplate(): TemplateRef<unknown>;
36
+ private _contentHeaderTemplate;
37
+ get renderHeaderTemplate(): TemplateRef<unknown>;
34
38
  get name(): string;
35
39
  items: AXRowCommandItem[] | ((rowData: unknown) => AXRowCommandItem[]);
36
40
  protected getItems(rowData: unknown): AXRowCommandItem[];
@@ -4,8 +4,10 @@ import * as i0 from "@angular/core";
4
4
  export declare class AXRowIndexColumnComponent extends AXDataTableColumnComponent implements OnInit {
5
5
  private grid;
6
6
  private unsubscriber;
7
- private _template;
8
- get template(): TemplateRef<unknown>;
7
+ private _cellTemplate;
8
+ get renderCellTemplate(): TemplateRef<unknown>;
9
+ private _contentHeaderTemplate;
10
+ get renderHeaderTemplate(): TemplateRef<unknown>;
9
11
  get name(): string;
10
12
  padZero: boolean;
11
13
  protected formatCount: number;
@@ -3,11 +3,16 @@ import { AXDataTableColumnComponent } from './data-table-column';
3
3
  import * as i0 from "@angular/core";
4
4
  export declare class AXRowSelectColumnComponent extends AXDataTableColumnComponent {
5
5
  private grid;
6
- private _template;
7
- get template(): TemplateRef<unknown>;
6
+ private _cellTemplate;
7
+ get renderCellTemplate(): TemplateRef<unknown>;
8
+ private _contentHeaderTemplate;
9
+ get renderHeaderTemplate(): TemplateRef<unknown>;
8
10
  get name(): string;
9
11
  protected isSelected(item: unknown): boolean;
12
+ protected checkAllSelected(rows: any): any;
13
+ protected checkAnySelected(rows: any): any;
10
14
  protected handleChange(item: unknown): void;
15
+ protected handleSelectAll(rows: any): void;
11
16
  get loadingEnabled(): boolean;
12
17
  static ɵfac: i0.ɵɵFactoryDeclaration<AXRowSelectColumnComponent, never>;
13
18
  static ɵcmp: i0.ɵɵComponentDeclaration<AXRowSelectColumnComponent, "ax-select-column", never, { "width": { "alias": "width"; "required": false; }; "caption": { "alias": "caption"; "required": false; }; "fixed": { "alias": "fixed"; "required": false; }; }, {}, never, never, false, never>;
@@ -7,6 +7,7 @@ import * as i0 from "@angular/core";
7
7
  export declare class AXDataTableComponent extends AXBaseDataTable implements OnInit, AfterViewInit {
8
8
  private _unsubscriber;
9
9
  private _zone;
10
+ protected rtl: boolean;
10
11
  protected displayedRows: WritableSignal<any[]>;
11
12
  protected page: WritableSignal<number>;
12
13
  protected pageSize: WritableSignal<number>;
@@ -43,6 +43,8 @@ export declare class AXDateTimePickerComponent extends AXDateTimePickerComponent
43
43
  private _detectParts;
44
44
  protected _handleSetClick(): void;
45
45
  protected _handleNowClick(): void;
46
+ protected isDisabled(date: AXDateTime): boolean;
47
+ protected internalSetValue(value: Date): Date | null;
46
48
  static ɵfac: i0.ɵɵFactoryDeclaration<AXDateTimePickerComponent, never>;
47
49
  static ɵcmp: i0.ɵɵComponentDeclaration<AXDateTimePickerComponent, "ax-datetime-picker", never, { "disabled": { "alias": "disabled"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "value": { "alias": "value"; "required": false; }; "state": { "alias": "state"; "required": false; }; "name": { "alias": "name"; "required": false; }; "id": { "alias": "id"; "required": false; }; "depth": { "alias": "depth"; "required": false; }; "activeView": { "alias": "activeView"; "required": false; }; "minValue": { "alias": "minValue"; "required": false; }; "maxValue": { "alias": "maxValue"; "required": false; }; "disabledDates": { "alias": "disabledDates"; "required": false; }; "holidayDates": { "alias": "holidayDates"; "required": false; }; "type": { "alias": "type"; "required": false; }; "cellTemplate": { "alias": "cellTemplate"; "required": false; }; "cellClass": { "alias": "cellClass"; "required": false; }; "showNavigation": { "alias": "showNavigation"; "required": false; }; "currentTimeButton": { "alias": "currentTimeButton"; "required": false; }; "format": { "alias": "format"; "required": false; }; }, { "valueChange": "valueChange"; "stateChange": "stateChange"; "onValueChanged": "onValueChanged"; "onBlur": "onBlur"; "onFocus": "onFocus"; "onClick": "onClick"; "readonlyChange": "readonlyChange"; "disabledChange": "disabledChange"; "depthChange": "depthChange"; "typeChange": "typeChange"; "activeViewChange": "activeViewChange"; "disabledDatesChange": "disabledDatesChange"; "holidayDatesChange": "holidayDatesChange"; "onNavigate": "onNavigate"; "onSlotClick": "onSlotClick"; "formatChange": "formatChange"; }, never, never, false, never>;
48
50
  }
@@ -1,14 +1,15 @@
1
- import { Component, ElementRef, NgZone, ViewChild, ViewEncapsulation, afterNextRender, inject, input, output, } from '@angular/core';
1
+ import { Component, ElementRef, NgZone, ViewChild, ViewEncapsulation, afterNextRender, inject, input, output, signal, } from '@angular/core';
2
2
  import WaveSurfer from 'wavesurfer.js';
3
3
  import * as i0 from "@angular/core";
4
4
  export class AXAudioWaveComponent {
5
5
  constructor() {
6
6
  this.config = input();
7
7
  this.onStatusChanged = output();
8
+ this.audioIsReady = signal(false);
8
9
  this.ngZone = inject(NgZone);
9
10
  afterNextRender(() => {
10
- const primary500 = getComputedStyle(document.body).getPropertyValue('--ax-color-primary-500');
11
- const primary700 = getComputedStyle(document.body).getPropertyValue('--ax-color-primary-700');
11
+ const primary500 = getComputedStyle(document.body).getPropertyValue('--ax-color-primary-200');
12
+ const primary700 = getComputedStyle(document.body).getPropertyValue('--ax-color-primary-500');
12
13
  this.audio = WaveSurfer.create({
13
14
  container: this.div.nativeElement,
14
15
  waveColor: this.config()?.waveColor || `rgba(${primary500})`,
@@ -20,6 +21,9 @@ export class AXAudioWaveComponent {
20
21
  height: this.config()?.height || 18,
21
22
  });
22
23
  this.audio.load(this.config()?.url);
24
+ this.audio.on('ready', () => {
25
+ this.audioIsReady.set(true);
26
+ });
23
27
  this.bindEvents();
24
28
  });
25
29
  }
@@ -30,7 +34,7 @@ export class AXAudioWaveComponent {
30
34
  this.audio.pause();
31
35
  }
32
36
  getDuration() {
33
- return this.audio?.getDuration();
37
+ return this.audio?.getDuration() ?? 0;
34
38
  }
35
39
  getMediaElement() {
36
40
  return this.audio?.getMediaElement();
@@ -57,7 +61,7 @@ export class AXAudioWaveComponent {
57
61
  handleLoad() {
58
62
  this.audio.on('load', (url) => {
59
63
  this.ngZone.run(() => {
60
- this.onStatusChanged.emit({ component: this, data: { url }, status: 'load', isUserInteraction: false });
64
+ this.onStatusChanged.emit({ component: this, data: { url: url }, status: 'load', isUserInteraction: false });
61
65
  });
62
66
  });
63
67
  }
@@ -65,7 +69,7 @@ export class AXAudioWaveComponent {
65
69
  handleLoading() {
66
70
  this.audio.on('loading', (percent) => {
67
71
  this.ngZone.run(() => {
68
- this.onStatusChanged.emit({ component: this, data: { percent }, status: 'loading', isUserInteraction: false });
72
+ this.onStatusChanged.emit({ component: this, data: { percent: percent }, status: 'loading', isUserInteraction: false });
69
73
  });
70
74
  });
71
75
  }
@@ -73,7 +77,7 @@ export class AXAudioWaveComponent {
73
77
  handleDecode() {
74
78
  this.audio.on('decode', (duration) => {
75
79
  this.ngZone.run(() => {
76
- this.onStatusChanged.emit({ component: this, data: { duration }, status: 'decode', isUserInteraction: false });
80
+ this.onStatusChanged.emit({ component: this, data: { duration: duration }, status: 'decode', isUserInteraction: false });
77
81
  });
78
82
  });
79
83
  }
@@ -81,7 +85,7 @@ export class AXAudioWaveComponent {
81
85
  handleReady() {
82
86
  this.audio.on('ready', (duration) => {
83
87
  this.ngZone.run(() => {
84
- this.onStatusChanged.emit({ component: this, data: { duration }, status: 'ready', isUserInteraction: false });
88
+ this.onStatusChanged.emit({ component: this, data: { duration: duration }, status: 'ready', isUserInteraction: false });
85
89
  });
86
90
  });
87
91
  }
@@ -121,7 +125,7 @@ export class AXAudioWaveComponent {
121
125
  handleTimeUpdate() {
122
126
  this.audio.on('timeupdate', (currentTime) => {
123
127
  this.ngZone.run(() => {
124
- this.onStatusChanged.emit({ component: this, data: { currentTime }, status: 'timeupdate', isUserInteraction: false });
128
+ this.onStatusChanged.emit({ component: this, data: { currentTime: currentTime }, status: 'timeupdate', isUserInteraction: false });
125
129
  });
126
130
  });
127
131
  }
@@ -129,7 +133,7 @@ export class AXAudioWaveComponent {
129
133
  handleSeeking() {
130
134
  this.audio.on('seeking', (currentTime) => {
131
135
  this.ngZone.run(() => {
132
- this.onStatusChanged.emit({ component: this, data: { currentTime }, status: 'seeking', isUserInteraction: false });
136
+ this.onStatusChanged.emit({ component: this, data: { currentTime: currentTime }, status: 'seeking', isUserInteraction: false });
133
137
  });
134
138
  });
135
139
  }
@@ -137,7 +141,7 @@ export class AXAudioWaveComponent {
137
141
  handleInteraction() {
138
142
  this.audio.on('interaction', (newTime) => {
139
143
  this.ngZone.run(() => {
140
- this.onStatusChanged.emit({ component: this, data: { newTime }, status: 'interaction', isUserInteraction: false });
144
+ this.onStatusChanged.emit({ component: this, data: { newTime: newTime }, status: 'interaction', isUserInteraction: false });
141
145
  });
142
146
  });
143
147
  }
@@ -145,7 +149,7 @@ export class AXAudioWaveComponent {
145
149
  handleClick() {
146
150
  this.audio.on('click', (relativeX) => {
147
151
  this.ngZone.run(() => {
148
- this.onStatusChanged.emit({ component: this, data: { relativeX }, status: 'click', isUserInteraction: false });
152
+ this.onStatusChanged.emit({ component: this, data: { relativeX: relativeX }, status: 'click', isUserInteraction: false });
149
153
  });
150
154
  });
151
155
  }
@@ -153,7 +157,7 @@ export class AXAudioWaveComponent {
153
157
  handleDrag() {
154
158
  this.audio.on('drag', (relativeX) => {
155
159
  this.ngZone.run(() => {
156
- this.onStatusChanged.emit({ component: this, data: { relativeX }, status: 'drag', isUserInteraction: false });
160
+ this.onStatusChanged.emit({ component: this, data: { relativeX: relativeX }, status: 'drag', isUserInteraction: false });
157
161
  });
158
162
  });
159
163
  }
@@ -174,7 +178,7 @@ export class AXAudioWaveComponent {
174
178
  handleZoom() {
175
179
  this.audio.on('zoom', (minPxPerSec) => {
176
180
  this.ngZone.run(() => {
177
- this.onStatusChanged.emit({ component: this, data: { minPxPerSec }, status: 'zoom', isUserInteraction: false });
181
+ this.onStatusChanged.emit({ component: this, data: { minPxPerSec: minPxPerSec }, status: 'zoom', isUserInteraction: false });
178
182
  });
179
183
  });
180
184
  }
@@ -187,13 +191,13 @@ export class AXAudioWaveComponent {
187
191
  });
188
192
  }
189
193
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: AXAudioWaveComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
190
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.3.2", type: AXAudioWaveComponent, selector: "ax-audio-wave", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onStatusChanged: "onStatusChanged" }, viewQueries: [{ propertyName: "div", first: true, predicate: ["d"], descendants: true }], ngImport: i0, template: "<div class=\"ax-audio-wave\" #d></div>", styles: ["ax-audio-wave{display:block;width:100%;flex:1}\n"], encapsulation: i0.ViewEncapsulation.None }); }
194
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.2", type: AXAudioWaveComponent, selector: "ax-audio-wave", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onStatusChanged: "onStatusChanged" }, viewQueries: [{ propertyName: "div", first: true, predicate: ["d"], descendants: true }], ngImport: i0, template: "@if(this.audioIsReady()){\n<div class=\"ax-audio-wave\" #d></div>\n} @else {\n<div class=\"ax-audio-skeleton\"></div>\n}", styles: ["ax-audio-wave{display:block;width:100%;flex:1;--ax-audio-skeleton-bg: rgba(var(--ax-color-primary-200))}ax-audio-wave .ax-audio-skeleton{position:relative;display:block;overflow:hidden;background-color:var(--ax-audio-skeleton-bg);height:1.125rem;border-radius:999rem}ax-audio-wave .ax-audio-skeleton:before{position:absolute;inset-inline-start:-13rem;top:0;display:block;height:100%;width:14rem;content:\"\";background:linear-gradient(to right,transparent 0%,rgba(var(--ax-color-black),20%) 50%,transparent 100%);animation:load 1s cubic-bezier(.4,0,.2,1) infinite}@keyframes load{0%{inset-inline-start:-13rem}to{inset-inline-start:100%}}\n"], encapsulation: i0.ViewEncapsulation.None }); }
191
195
  }
192
196
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: AXAudioWaveComponent, decorators: [{
193
197
  type: Component,
194
- args: [{ selector: 'ax-audio-wave', encapsulation: ViewEncapsulation.None, template: "<div class=\"ax-audio-wave\" #d></div>", styles: ["ax-audio-wave{display:block;width:100%;flex:1}\n"] }]
198
+ args: [{ selector: 'ax-audio-wave', encapsulation: ViewEncapsulation.None, template: "@if(this.audioIsReady()){\n<div class=\"ax-audio-wave\" #d></div>\n} @else {\n<div class=\"ax-audio-skeleton\"></div>\n}", styles: ["ax-audio-wave{display:block;width:100%;flex:1;--ax-audio-skeleton-bg: rgba(var(--ax-color-primary-200))}ax-audio-wave .ax-audio-skeleton{position:relative;display:block;overflow:hidden;background-color:var(--ax-audio-skeleton-bg);height:1.125rem;border-radius:999rem}ax-audio-wave .ax-audio-skeleton:before{position:absolute;inset-inline-start:-13rem;top:0;display:block;height:100%;width:14rem;content:\"\";background:linear-gradient(to right,transparent 0%,rgba(var(--ax-color-black),20%) 50%,transparent 100%);animation:load 1s cubic-bezier(.4,0,.2,1) infinite}@keyframes load{0%{inset-inline-start:-13rem}to{inset-inline-start:100%}}\n"] }]
195
199
  }], ctorParameters: () => [], propDecorators: { div: [{
196
200
  type: ViewChild,
197
201
  args: ['d']
198
202
  }] } });
199
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaW8td2F2ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYXVkaW8td2F2ZS9zcmMvbGliL2F1ZGlvLXdhdmUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2F1ZGlvLXdhdmUvc3JjL2xpYi9hdWRpby13YXZlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsVUFBVSxFQUVWLE1BQU0sRUFDTixTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLGVBQWUsRUFDZixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLFVBQVUsTUFBTSxlQUFlLENBQUM7O0FBU3ZDLE1BQU0sT0FBTyxvQkFBb0I7SUFTL0I7UUFQQSxXQUFNLEdBQThCLEtBQUssRUFBZ0IsQ0FBQztRQUUxRCxvQkFBZSxHQUFHLE1BQU0sRUFBMEIsQ0FBQztRQUczQyxXQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRzlCLGVBQWUsQ0FBQyxHQUFHLEVBQUU7WUFDbkIsTUFBTSxVQUFVLEdBQUcsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLGdCQUFnQixDQUFDLHdCQUF3QixDQUFDLENBQUM7WUFDOUYsTUFBTSxVQUFVLEdBQUcsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLGdCQUFnQixDQUFDLHdCQUF3QixDQUFDLENBQUM7WUFFOUYsSUFBSSxDQUFDLEtBQUssR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDO2dCQUM3QixTQUFTLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhO2dCQUNqQyxTQUFTLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLFNBQVMsSUFBSSxRQUFRLFVBQVUsR0FB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LENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRTtnQkFDbkIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1lBQzFHLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzhHQWxOVSxvQkFBb0I7a0dBQXBCLG9CQUFvQix1VUNyQmpDLHdDQUFvQzs7MkZEcUJ2QixvQkFBb0I7a0JBTmhDLFNBQVM7K0JBQ0UsZUFBZSxpQkFHVixpQkFBaUIsQ0FBQyxJQUFJO3dEQUdYLEdBQUc7c0JBQTVCLFNBQVM7dUJBQUMsR0FBRyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSW5wdXRTaWduYWwsXG4gIE5nWm9uZSxcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgYWZ0ZXJOZXh0UmVuZGVyLFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBvdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IFdhdmVTdXJmZXIgZnJvbSAnd2F2ZXN1cmZlci5qcyc7XG5pbXBvcnQgeyBBWEF1ZGlvV2F2ZUNoYW5nZUV2ZW50LCBBWFdhdmVDb25maWcgfSBmcm9tICcuL2ludGVyZmFjZXMvYXVkaW8td2F2ZS5pbnRlcmZhY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1hdWRpby13YXZlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2F1ZGlvLXdhdmUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hdWRpby13YXZlLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIEFYQXVkaW9XYXZlQ29tcG9uZW50IHtcbiAgQFZpZXdDaGlsZCgnZCcpIHByb3RlY3RlZCBkaXY6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuICBjb25maWc6IElucHV0U2lnbmFsPEFYV2F2ZUNvbmZpZz4gPSBpbnB1dDxBWFdhdmVDb25maWc+KCk7XG5cbiAgb25TdGF0dXNDaGFuZ2VkID0gb3V0cHV0PEFYQXVkaW9XYXZlQ2hhbmdlRXZlbnQ+KCk7XG5cbiAgcHJvdGVjdGVkIGF1ZGlvOiBXYXZlU3VyZmVyO1xuICBwcml2YXRlIG5nWm9uZSA9IGluamVjdChOZ1pvbmUpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGFmdGVyTmV4dFJlbmRlcigoKSA9PiB7XG4gICAgICBjb25zdCBwcmltYXJ5NTAwID0gZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5ib2R5KS5nZXRQcm9wZXJ0eVZhbHVlKCctLWF4LWNvbG9yLXByaW1hcnktNTAwJyk7XG4gICAgICBjb25zdCBwcmltYXJ5NzAwID0gZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5ib2R5KS5nZXRQcm9wZXJ0eVZhbHVlKCctLWF4LWNvbG9yLXByaW1hcnktNzAwJyk7XG5cbiAgICAgIHRoaXMuYXVkaW8gPSBXYXZlU3VyZmVyLmNyZWF0ZSh7XG4gICAgICAgIGNvbnRhaW5lcjogdGhpcy5kaXYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgd2F2ZUNvbG9yOiB0aGlzLmNvbmZpZygpPy53YXZlQ29sb3IgfHwgYHJnYmEoJHtwcmltYXJ5NTAwfSlgLFxuICAgICAgICBwcm9ncmVzc0NvbG9yOiB0aGlzLmNvbmZpZygpPy5wcm9ncmVzc0NvbG9yIHx8IGByZ2JhKCR7cHJpbWFyeTcwMH0pYCxcbiAgICAgICAgdXJsOiB0aGlzLmNvbmZpZygpPy51cmwgfHwgJycsXG4gICAgICAgIGJhcldpZHRoOiB0aGlzLmNvbmZpZygpPy5iYXJXaWR0aCB8fCAyLFxuICAgICAgICBiYXJSYWRpdXM6IHRoaXMuY29uZmlnKCk/LmJhclJhZGl1cyB8fCAyLFxuICAgICAgICBiYXJHYXA6IHRoaXMuY29uZmlnKCk/LmJhckdhcCB8fCAxLFxuICAgICAgICBoZWlnaHQ6IHRoaXMuY29uZmlnKCk/LmhlaWdodCB8fCAxOCxcbiAgICAgIH0pO1xuICAgICAgdGhpcy5hdWRpby5sb2FkKHRoaXMuY29uZmlnKCk/LnVybCk7XG4gICAgICB0aGlzLmJpbmRFdmVudHMoKTtcbiAgICB9KTtcbiAgfVxuXG4gIHBsYXkoKTogUHJvbWlzZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5hdWRpby5wbGF5KCk7XG4gIH1cblxuICBwYXVzZSgpOiB2b2lkIHtcbiAgICB0aGlzLmF1ZGlvLnBhdXNlKCk7XG4gIH1cblxuICBnZXREdXJhdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5hdWRpbz8uZ2V0RHVyYXRpb24oKTtcbiAgfVxuXG4gIGdldE1lZGlhRWxlbWVudCgpIHtcbiAgICByZXR1cm4gdGhpcy5hdWRpbz8uZ2V0TWVkaWFFbGVtZW50KCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYmluZEV2ZW50cygpIHtcbiAgICB0aGlzLmhhbmRsZUxvYWQoKTtcbiAgICB0aGlzLmhhbmRsZUxvYWRpbmcoKTtcbiAgICB0aGlzLmhhbmRsZURlY29kZSgpO1xuICAgIHRoaXMuaGFuZGxlUmVhZHkoKTtcbiAgICB0aGlzLmhhbmRsZVJlZFJhd0NvbXBsZXRlKCk7XG4gICAgdGhpcy5oYW5kbGVQbGF5KCk7XG4gICAgdGhpcy5oYW5kbGVQYXVzZSgpO1xuICAgIHRoaXMuaGFuZGxlRmluaXNoKCk7XG4gICAgdGhpcy5oYW5kbGVUaW1lVXBkYXRlKCk7XG4gICAgdGhpcy5oYW5kbGVTZWVraW5nKCk7XG4gICAgdGhpcy5oYW5kbGVJbnRlcmFjdGlvbigpO1xuICAgIHRoaXMuaGFuZGxlQ2xpY2soKTtcbiAgICB0aGlzLmhhbmRsZURyYWcoKTtcbiAgICB0aGlzLmhhbmRsZVNjcm9sbCgpO1xuICAgIHRoaXMuaGFuZGxlWm9vbSgpO1xuICAgIHRoaXMuaGFuZGxlRGVzdHJveSgpO1xuICB9XG4gIC8qKiBXaGVuIGF1ZGlvIHN0YXJ0cyBsb2FkaW5nICovXG4gIHByb3RlY3RlZCBoYW5kbGVMb2FkKCkge1xuICAgIHRoaXMuYXVkaW8ub24oJ2xvYWQnLCAodXJsKSA9PiB7XG4gICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICB0aGlzLm9uU3RhdHVzQ2hhbmdlZC5lbWl0KHsgY29tcG9uZW50OiB0aGlzLCBkYXRhOiB7IHVybCB9LCBzdGF0dXM6ICdsb2FkJywgaXNVc2VySW50ZXJhY3Rpb246IGZhbHNlIH0pO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICAvKiogRHVyaW5nIGF1ZGlvIGxvYWRpbmcgKi9cbiAgcHJvdGVjdGVkIGhhbmRsZUxvYWRpbmcoKSB7XG4gICAgdGhpcy5hdWRpby5vbignbG9hZGluZycsIChwZXJjZW50KSA9PiB7XG4gICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICB0aGlzLm9uU3RhdHVzQ2hhbmdlZC5lbWl0KHsgY29tcG9uZW50OiB0aGlzLCBkYXRhOiB7IHBlcmNlbnQgfSwgc3RhdHVzOiAnbG9hZGluZycsIGlzVXNlckludGVyYWN0aW9uOiBmYWxzZSB9KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqIFdoZW4gdGhlIGF1ZGlvIGhhcyBiZWVuIGRlY29kZWQgKi9cbiAgcHJvdGVjdGVkIGhhbmRsZURlY29kZSgpIHtcbiAgICB0aGlzLmF1ZGlvLm9uKCdkZWNvZGUnLCAoZHVyYXRpb24pID0+IHtcbiAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgIHRoaXMub25TdGF0dXNDaGFuZ2VkLmVtaXQoeyBjb21wb25lbnQ6IHRoaXMsIGRhdGE6IHsgZHVyYXRpb24gfSwgc3RhdHVzOiAnZGVjb2RlJywgaXNVc2VySW50ZXJhY3Rpb246IGZhbHNlIH0pO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICAvKiogV2hlbiB0aGUgYXVkaW8gaXMgYm90aCBkZWNvZGVkIGFuZCBjYW4gcGxheSAqL1xuICBwcm90ZWN0ZWQgaGFuZGxlUmVhZHkoKSB7XG4gICAgdGhpcy5hdWRpby5vbigncmVhZHknLCAoZHVyYXRpb24pID0+IHtcbiAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgIHRoaXMub25TdGF0dXNDaGFuZ2VkLmVtaXQoeyBjb21wb25lbnQ6IHRoaXMsIGRhdGE6IHsgZHVyYXRpb24gfSwgc3RhdHVzOiAncmVhZHknLCBpc1VzZXJJbnRlcmFjdGlvbjogZmFsc2UgfSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKiBXaGVuIGFsbCBhdWRpbyBjaGFubmVsIGNodW5rcyBvZiB0aGUgd2F2ZWZvcm0gaGF2ZSBkcmF3biAqL1xuICBwcm90ZWN0ZWQgaGFuZGxlUmVkUmF3Q29tcGxldGUoKSB7XG4gICAgdGhpcy5hdWRpby5vbigncmVkcmF3Y29tcGxldGUnLCAoKSA9PiB7XG4gICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICB0aGlzLm9uU3RhdHVzQ2hhbmdlZC5lbWl0KHsgY29tcG9uZW50OiB0aGlzLCBkYXRhOiBudWxsLCBzdGF0dXM6ICdyZWRyYXdjb21wbGV0ZScsIGlzVXNlckludGVyYWN0aW9uOiBmYWxzZSB9KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqIFdoZW4gdGhlIGF1ZGlvIHN0YXJ0cyBwbGF5aW5nICovXG4gIHByb3RlY3RlZCBoYW5kbGVQbGF5KCkge1xuICAgIHRoaXMuYXVkaW8ub24oJ3BsYXknLCAoKSA9PiB7XG4gICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICB0aGlzLm9uU3RhdHVzQ2hhbmdlZC5lbWl0KHsgY29tcG9uZW50OiB0aGlzLCBkYXRhOiBudWxsLCBzdGF0dXM6ICdwbGF5JywgaXNVc2VySW50ZXJhY3Rpb246IGZhbHNlIH0pO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICAvKiogV2hlbiB0aGUgYXVkaW8gcGF1c2VzICovXG4gIHByb3RlY3RlZCBoYW5kbGVQYXVzZSgpIHtcbiAgICB0aGlzLmF1ZGlvLm9uKCdwYXVzZScsICgpID0+IHtcbiAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgIHRoaXMub25TdGF0dXNDaGFuZ2VkLmVtaXQoeyBjb21wb25lbnQ6IHRoaXMsIGRhdGE6IG51bGwsIHN0YXR1czogJ3BhdXNlJywgaXNVc2VySW50ZXJhY3Rpb246IGZhbHNlIH0pO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICAvKiogV2hlbiB0aGUgYXVkaW8gZmluaXNoZXMgcGxheWluZyAqL1xuICBwcm90ZWN0ZWQgaGFuZGxlRmluaXNoKCkge1xuICAgIHRoaXMuYXVkaW8ub24oJ2ZpbmlzaCcsICgpID0+IHtcbiAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgIHRoaXMub25TdGF0dXNDaGFuZ2VkLmVtaXQoeyBjb21wb25lbnQ6IHRoaXMsIGRhdGE6IG51bGwsIHN0YXR1czogJ2ZpbmlzaCcsIGlzVXNlckludGVyYWN0aW9uOiBmYWxzZSB9KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqIE9uIGF1ZGlvIHBvc2l0aW9uIGNoYW5nZSwgZmlyZXMgY29udGludW91c2x5IGR1cmluZyBwbGF5YmFjayAqL1xuICBwcm90ZWN0ZWQgaGFuZGxlVGltZVVwZGF0ZSgpIHtcbiAgICB0aGlzLmF1ZGlvLm9uKCd0aW1ldXBkYXRlJywgKGN1cnJlbnRUaW1lKSA9PiB7XG4gICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICB0aGlzLm9uU3RhdHVzQ2hhbmdlZC5lbWl0KHsgY29tcG9uZW50OiB0aGlzLCBkYXRhOiB7IGN1cnJlbnRUaW1lIH0sIHN0YXR1czogJ3RpbWV1cGRhdGUnLCBpc1VzZXJJbnRlcmFjdGlvbjogZmFsc2UgfSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKiBXaGVuIHRoZSB1c2VyIHNlZWtzIHRvIGEgbmV3IHBvc2l0aW9uICovXG4gIHByb3RlY3RlZCBoYW5kbGVTZWVraW5nKCkge1xuICAgIHRoaXMuYXVkaW8ub24oJ3NlZWtpbmcnLCAoY3VycmVudFRpbWUpID0+IHtcbiAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgIHRoaXMub25TdGF0dXNDaGFuZ2VkLmVtaXQoeyBjb21wb25lbnQ6IHRoaXMsIGRhdGE6IHsgY3VycmVudFRpbWUgfSwgc3RhdHVzOiAnc2Vla2luZycsIGlzVXNlckludGVyYWN0aW9uOiBmYWxzZSB9KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqIFdoZW4gdGhlIHVzZXIgaW50ZXJhY3RzIHdpdGggdGhlIHdhdmVmb3JtIChpLmcuIGNsaWNrcyBvciBkcmFncyBvbiBpdCkgKi9cbiAgcHJvdGVjdGVkIGhhbmRsZUludGVyYWN0aW9uKCkge1xuICAgIHRoaXMuYXVkaW8ub24oJ2ludGVyYWN0aW9uJywgKG5ld1RpbWUpID0+IHtcbiAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgIHRoaXMub25TdGF0dXNDaGFuZ2VkLmVtaXQoeyBjb21wb25lbnQ6IHRoaXMsIGRhdGE6IHsgbmV3VGltZSB9LCBzdGF0dXM6ICdpbnRlcmFjdGlvbicsIGlzVXNlckludGVyYWN0aW9uOiBmYWxzZSB9KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqIFdoZW4gdGhlIHVzZXIgY2xpY2tzIG9uIHRoZSB3YXZlZm9ybSAqL1xuICBwcm90ZWN0ZWQgaGFuZGxlQ2xpY2soKSB7XG4gICAgdGhpcy5hdWRpby5vbignY2xpY2snLCAocmVsYXRpdmVYKSA9PiB7XG4gICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICB0aGlzLm9uU3RhdHVzQ2hhbmdlZC5lbWl0KHsgY29tcG9uZW50OiB0aGlzLCBkYXRhOiB7IHJlbGF0aXZlWCB9LCBzdGF0dXM6ICdjbGljaycsIGlzVXNlckludGVyYWN0aW9uOiBmYWxzZSB9KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqIFdoZW4gdGhlIHVzZXIgZHJhZ3MgdGhlIGN1cnNvciAqL1xuICBwcm90ZWN0ZWQgaGFuZGxlRHJhZygpIHtcbiAgICB0aGlzLmF1ZGlvLm9uKCdkcmFnJywgKHJlbGF0aXZlWCkgPT4ge1xuICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgdGhpcy5vblN0YXR1c0NoYW5nZWQuZW1pdCh7IGNvbXBvbmVudDogdGhpcywgZGF0YTogeyByZWxhdGl2ZVggfSwgc3RhdHVzOiAnZHJhZycsIGlzVXNlckludGVyYWN0aW9uOiBmYWxzZSB9KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqIFdoZW4gdGhlIHdhdmVmb3JtIGlzIHNjcm9sbGVkIChwYW5uZWQpICovXG4gIHByb3RlY3RlZCBoYW5kbGVTY3JvbGwoKSB7XG4gICAgdGhpcy5hdWRpby5vbignc2Nyb2xsJywgKHZpc2libGVTdGFydFRpbWUsIHZpc2libGVFbmRUaW1lKSA9PiB7XG4gICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICB0aGlzLm9uU3RhdHVzQ2hhbmdlZC5lbWl0KHtcbiAgICAgICAgICBjb21wb25lbnQ6IHRoaXMsXG4gICAgICAgICAgZGF0YTogeyB2aXNpYmxlU3RhcnRUaW1lLCB2aXNpYmxlRW5kVGltZSB9LFxuICAgICAgICAgIHN0YXR1czogJ3Njcm9sbCcsXG4gICAgICAgICAgaXNVc2VySW50ZXJhY3Rpb246IGZhbHNlLFxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqIFdoZW4gdGhlIHpvb20gbGV2ZWwgY2hhbmdlcyAqL1xuICBwcm90ZWN0ZWQgaGFuZGxlWm9vbSgpIHtcbiAgICB0aGlzLmF1ZGlvLm9uKCd6b29tJywgKG1pblB4UGVyU2VjKSA9PiB7XG4gICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICB0aGlzLm9uU3RhdHVzQ2hhbmdlZC5lbWl0KHsgY29tcG9uZW50OiB0aGlzLCBkYXRhOiB7IG1pblB4UGVyU2VjIH0sIHN0YXR1czogJ3pvb20nLCBpc1VzZXJJbnRlcmFjdGlvbjogZmFsc2UgfSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKiBKdXN0IGJlZm9yZSB0aGUgd2F2ZWZvcm0gaXMgZGVzdHJveWVkIHNvIHlvdSBjYW4gY2xlYW4gdXAgeW91ciBldmVudHMgKi9cbiAgcHJvdGVjdGVkIGhhbmRsZURlc3Ryb3koKSB7XG4gICAgdGhpcy5hdWRpby5vbignZGVzdHJveScsICgpID0+IHtcbiAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgIHRoaXMub25TdGF0dXNDaGFuZ2VkLmVtaXQoeyBjb21wb25lbnQ6IHRoaXMsIGRhdGE6IG51bGwsIHN0YXR1czogJ2Rlc3Ryb3knLCBpc1VzZXJJbnRlcmFjdGlvbjogZmFsc2UgfSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImF4LWF1ZGlvLXdhdmVcIiAjZD48L2Rpdj4iXX0=
203
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaW8td2F2ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYXVkaW8td2F2ZS9zcmMvbGliL2F1ZGlvLXdhdmUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2F1ZGlvLXdhdmUvc3JjL2xpYi9hdWRpby13YXZlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsVUFBVSxFQUVWLE1BQU0sRUFDTixTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLGVBQWUsRUFDZixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxVQUFVLE1BQU0sZUFBZSxDQUFDOztBQVN2QyxNQUFNLE9BQU8sb0JBQW9CO0lBVy9CO1FBVEEsV0FBTSxHQUE4QixLQUFLLEVBQWdCLENBQUM7UUFFMUQsb0JBQWUsR0FBRyxNQUFNLEVBQTBCLENBQUM7UUFFbkQsaUJBQVksR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFHckIsV0FBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUc5QixlQUFlLENBQUMsR0FBRyxFQUFFO1lBQ25CLE1BQU0sVUFBVSxHQUFHLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1lBQzlGLE1BQU0sVUFBVSxHQUFHLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1lBRTlGLElBQUksQ0FBQyxLQUFLLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQztnQkFDN0IsU0FBUyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYTtnQkFDakMsU0FBUyxF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QUMsZUFBZSxDQUFDLElBQUksQ0FBQyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUMvSCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELDRFQUE0RTtJQUNsRSxhQUFhO1FBQ3JCLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxHQUFHLEVBQUU7WUFDNUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFO2dCQUNuQixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7WUFDMUcsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OEdBdk5VLG9CQUFvQjtrR0FBcEIsb0JBQW9CLHVVQ3RCakMsMEhBSUM7OzJGRGtCWSxvQkFBb0I7a0JBTmhDLFNBQVM7K0JBQ0UsZUFBZSxpQkFHVixpQkFBaUIsQ0FBQyxJQUFJO3dEQUdYLEdBQUc7c0JBQTVCLFNBQVM7dUJBQUMsR0FBRyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSW5wdXRTaWduYWwsXG4gIE5nWm9uZSxcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgYWZ0ZXJOZXh0UmVuZGVyLFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBvdXRwdXQsXG4gIHNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgV2F2ZVN1cmZlciBmcm9tICd3YXZlc3VyZmVyLmpzJztcbmltcG9ydCB7IEFYQXVkaW9XYXZlQ2hhbmdlRXZlbnQsIEFYV2F2ZUNvbmZpZyB9IGZyb20gJy4vaW50ZXJmYWNlcy9hdWRpby13YXZlLmludGVyZmFjZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LWF1ZGlvLXdhdmUnLFxuICB0ZW1wbGF0ZVVybDogJy4vYXVkaW8td2F2ZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2F1ZGlvLXdhdmUuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgQVhBdWRpb1dhdmVDb21wb25lbnQge1xuICBAVmlld0NoaWxkKCdkJykgcHJvdGVjdGVkIGRpdjogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XG4gIGNvbmZpZzogSW5wdXRTaWduYWw8QVhXYXZlQ29uZmlnPiA9IGlucHV0PEFYV2F2ZUNvbmZpZz4oKTtcblxuICBvblN0YXR1c0NoYW5nZWQgPSBvdXRwdXQ8QVhBdWRpb1dhdmVDaGFuZ2VFdmVudD4oKTtcblxuICBhdWRpb0lzUmVhZHkgPSBzaWduYWwoZmFsc2UpO1xuXG4gIHByb3RlY3RlZCBhdWRpbzogV2F2ZVN1cmZlcjtcbiAgcHJpdmF0ZSBuZ1pvbmUgPSBpbmplY3QoTmdab25lKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBhZnRlck5leHRSZW5kZXIoKCkgPT4ge1xuICAgICAgY29uc3QgcHJpbWFyeTUwMCA9IGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuYm9keSkuZ2V0UHJvcGVydHlWYWx1ZSgnLS1heC1jb2xvci1wcmltYXJ5LTIwMCcpO1xuICAgICAgY29uc3QgcHJpbWFyeTcwMCA9IGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuYm9keSkuZ2V0UHJvcGVydHlWYWx1ZSgnLS1heC1jb2xvci1wcmltYXJ5LTUwMCcpO1xuXG4gICAgICB0aGlzLmF1ZGlvID0gV2F2ZVN1cmZlci5jcmVhdGUoe1xuICAgICAgICBjb250YWluZXI6IHRoaXMuZGl2Lm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgIHdhdmVDb2xvcjogdGhpcy5jb25maWcoKT8ud2F2ZUNvbG9yIHx8IGByZ2JhKCR7cHJpbWFyeTUwMH0pYCxcbiAgICAgICAgcHJvZ3Jlc3NDb2xvcjogdGhpcy5jb25maWcoKT8ucHJvZ3Jlc3NDb2xvciB8fCBgcmdiYSgke3ByaW1hcnk3MDB9KWAsXG4gICAgICAgIHVybDogdGhpcy5jb25maWcoKT8udXJsIHx8ICcnLFxuICAgICAgICBiYXJXaWR0aDogdGhpcy5jb25maWcoKT8uYmFyV2lkdGggfHwgMixcbiAgICAgICAgYmFyUmFkaXVzOiB0aGlzLmNvbmZpZygpPy5iYXJSYWRpdXMgfHwgMixcbiAgICAgICAgYmFyR2FwOiB0aGlzLmNvbmZpZygpPy5iYXJHYXAgfHwgMSxcbiAgICAgICAgaGVpZ2h0OiB0aGlzLmNvbmZpZygpPy5oZWlnaHQgfHwgMTgsXG4gICAgICB9KTtcbiAgICAgIHRoaXMuYXVkaW8ubG9hZCh0aGlzLmNvbmZpZygpPy51cmwpO1xuICAgICAgdGhpcy5hdWRpby5vbigncmVhZHknLCAoKSA9PiB7XG4gICAgICAgIHRoaXMuYXVkaW9Jc1JlYWR5LnNldCh0cnVlKTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5iaW5kRXZlbnRzKCk7XG4gICAgfSk7XG4gIH1cblxuICBwbGF5KCk6IFByb21pc2U8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuYXVkaW8ucGxheSgpO1xuICB9XG5cbiAgcGF1c2UoKTogdm9pZCB7XG4gICAgdGhpcy5hdWRpby5wYXVzZSgpO1xuICB9XG5cbiAgZ2V0RHVyYXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuYXVkaW8/LmdldER1cmF0aW9uKCkgPz8gMDtcbiAgfVxuXG4gIGdldE1lZGlhRWxlbWVudCgpIHtcbiAgICByZXR1cm4gdGhpcy5hdWRpbz8uZ2V0TWVkaWFFbGVtZW50KCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYmluZEV2ZW50cygpIHtcbiAgICB0aGlzLmhhbmRsZUxvYWQoKTtcbiAgICB0aGlzLmhhbmRsZUxvYWRpbmcoKTtcbiAgICB0aGlzLmhhbmRsZURlY29kZSgpO1xuICAgIHRoaXMuaGFuZGxlUmVhZHkoKTtcbiAgICB0aGlzLmhhbmRsZVJlZFJhd0NvbXBsZXRlKCk7XG4gICAgdGhpcy5oYW5kbGVQbGF5KCk7XG4gICAgdGhpcy5oYW5kbGVQYXVzZSgpO1xuICAgIHRoaXMuaGFuZGxlRmluaXNoKCk7XG4gICAgdGhpcy5oYW5kbGVUaW1lVXBkYXRlKCk7XG4gICAgdGhpcy5oYW5kbGVTZWVraW5nKCk7XG4gICAgdGhpcy5oYW5kbGVJbnRlcmFjdGlvbigpO1xuICAgIHRoaXMuaGFuZGxlQ2xpY2soKTtcbiAgICB0aGlzLmhhbmRsZURyYWcoKTtcbiAgICB0aGlzLmhhbmRsZVNjcm9sbCgpO1xuICAgIHRoaXMuaGFuZGxlWm9vbSgpO1xuICAgIHRoaXMuaGFuZGxlRGVzdHJveSgpO1xuICB9XG4gIC8qKiBXaGVuIGF1ZGlvIHN0YXJ0cyBsb2FkaW5nICovXG4gIHByb3RlY3RlZCBoYW5kbGVMb2FkKCkge1xuICAgIHRoaXMuYXVkaW8ub24oJ2xvYWQnLCAodXJsKSA9PiB7XG4gICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICB0aGlzLm9uU3RhdHVzQ2hhbmdlZC5lbWl0KHsgY29tcG9uZW50OiB0aGlzLCBkYXRhOiB7IHVybDogdXJsIH0sIHN0YXR1czogJ2xvYWQnLCBpc1VzZXJJbnRlcmFjdGlvbjogZmFsc2UgfSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKiBEdXJpbmcgYXVkaW8gbG9hZGluZyAqL1xuICBwcm90ZWN0ZWQgaGFuZGxlTG9hZGluZygpIHtcbiAgICB0aGlzLmF1ZGlvLm9uKCdsb2FkaW5nJywgKHBlcmNlbnQpID0+IHtcbiAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgIHRoaXMub25TdGF0dXNDaGFuZ2VkLmVtaXQoeyBjb21wb25lbnQ6IHRoaXMsIGRhdGE6IHsgcGVyY2VudDogcGVyY2VudCB9LCBzdGF0dXM6ICdsb2FkaW5nJywgaXNVc2VySW50ZXJhY3Rpb246IGZhbHNlIH0pO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICAvKiogV2hlbiB0aGUgYXVkaW8gaGFzIGJlZW4gZGVjb2RlZCAqL1xuICBwcm90ZWN0ZWQgaGFuZGxlRGVjb2RlKCkge1xuICAgIHRoaXMuYXVkaW8ub24oJ2RlY29kZScsIChkdXJhdGlvbikgPT4ge1xuICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgdGhpcy5vblN0YXR1c0NoYW5nZWQuZW1pdCh7IGNvbXBvbmVudDogdGhpcywgZGF0YTogeyBkdXJhdGlvbjogZHVyYXRpb24gfSwgc3RhdHVzOiAnZGVjb2RlJywgaXNVc2VySW50ZXJhY3Rpb246IGZhbHNlIH0pO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICAvKiogV2hlbiB0aGUgYXVkaW8gaXMgYm90aCBkZWNvZGVkIGFuZCBjYW4gcGxheSAqL1xuICBwcm90ZWN0ZWQgaGFuZGxlUmVhZHkoKSB7XG4gICAgdGhpcy5hdWRpby5vbigncmVhZHknLCAoZHVyYXRpb24pID0+IHtcbiAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgIHRoaXMub25TdGF0dXNDaGFuZ2VkLmVtaXQoeyBjb21wb25lbnQ6IHRoaXMsIGRhdGE6IHsgZHVyYXRpb246IGR1cmF0aW9uIH0sIHN0YXR1czogJ3JlYWR5JywgaXNVc2VySW50ZXJhY3Rpb246IGZhbHNlIH0pO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICAvKiogV2hlbiBhbGwgYXVkaW8gY2hhbm5lbCBjaHVua3Mgb2YgdGhlIHdhdmVmb3JtIGhhdmUgZHJhd24gKi9cbiAgcHJvdGVjdGVkIGhhbmRsZVJlZFJhd0NvbXBsZXRlKCkge1xuICAgIHRoaXMuYXVkaW8ub24oJ3JlZHJhd2NvbXBsZXRlJywgKCkgPT4ge1xuICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgdGhpcy5vblN0YXR1c0NoYW5nZWQuZW1pdCh7IGNvbXBvbmVudDogdGhpcywgZGF0YTogbnVsbCwgc3RhdHVzOiAncmVkcmF3Y29tcGxldGUnLCBpc1VzZXJJbnRlcmFjdGlvbjogZmFsc2UgfSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKiBXaGVuIHRoZSBhdWRpbyBzdGFydHMgcGxheWluZyAqL1xuICBwcm90ZWN0ZWQgaGFuZGxlUGxheSgpIHtcbiAgICB0aGlzLmF1ZGlvLm9uKCdwbGF5JywgKCkgPT4ge1xuICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgdGhpcy5vblN0YXR1c0NoYW5nZWQuZW1pdCh7IGNvbXBvbmVudDogdGhpcywgZGF0YTogbnVsbCwgc3RhdHVzOiAncGxheScsIGlzVXNlckludGVyYWN0aW9uOiBmYWxzZSB9KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqIFdoZW4gdGhlIGF1ZGlvIHBhdXNlcyAqL1xuICBwcm90ZWN0ZWQgaGFuZGxlUGF1c2UoKSB7XG4gICAgdGhpcy5hdWRpby5vbigncGF1c2UnLCAoKSA9PiB7XG4gICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICB0aGlzLm9uU3RhdHVzQ2hhbmdlZC5lbWl0KHsgY29tcG9uZW50OiB0aGlzLCBkYXRhOiBudWxsLCBzdGF0dXM6ICdwYXVzZScsIGlzVXNlckludGVyYWN0aW9uOiBmYWxzZSB9KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqIFdoZW4gdGhlIGF1ZGlvIGZpbmlzaGVzIHBsYXlpbmcgKi9cbiAgcHJvdGVjdGVkIGhhbmRsZUZpbmlzaCgpIHtcbiAgICB0aGlzLmF1ZGlvLm9uKCdmaW5pc2gnLCAoKSA9PiB7XG4gICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICB0aGlzLm9uU3RhdHVzQ2hhbmdlZC5lbWl0KHsgY29tcG9uZW50OiB0aGlzLCBkYXRhOiBudWxsLCBzdGF0dXM6ICdmaW5pc2gnLCBpc1VzZXJJbnRlcmFjdGlvbjogZmFsc2UgfSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKiBPbiBhdWRpbyBwb3NpdGlvbiBjaGFuZ2UsIGZpcmVzIGNvbnRpbnVvdXNseSBkdXJpbmcgcGxheWJhY2sgKi9cbiAgcHJvdGVjdGVkIGhhbmRsZVRpbWVVcGRhdGUoKSB7XG4gICAgdGhpcy5hdWRpby5vbigndGltZXVwZGF0ZScsIChjdXJyZW50VGltZSkgPT4ge1xuICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgdGhpcy5vblN0YXR1c0NoYW5nZWQuZW1pdCh7IGNvbXBvbmVudDogdGhpcywgZGF0YTogeyBjdXJyZW50VGltZTogY3VycmVudFRpbWUgfSwgc3RhdHVzOiAndGltZXVwZGF0ZScsIGlzVXNlckludGVyYWN0aW9uOiBmYWxzZSB9KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqIFdoZW4gdGhlIHVzZXIgc2Vla3MgdG8gYSBuZXcgcG9zaXRpb24gKi9cbiAgcHJvdGVjdGVkIGhhbmRsZVNlZWtpbmcoKSB7XG4gICAgdGhpcy5hdWRpby5vbignc2Vla2luZycsIChjdXJyZW50VGltZSkgPT4ge1xuICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgdGhpcy5vblN0YXR1c0NoYW5nZWQuZW1pdCh7IGNvbXBvbmVudDogdGhpcywgZGF0YTogeyBjdXJyZW50VGltZTogY3VycmVudFRpbWUgfSwgc3RhdHVzOiAnc2Vla2luZycsIGlzVXNlckludGVyYWN0aW9uOiBmYWxzZSB9KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqIFdoZW4gdGhlIHVzZXIgaW50ZXJhY3RzIHdpdGggdGhlIHdhdmVmb3JtIChpLmcuIGNsaWNrcyBvciBkcmFncyBvbiBpdCkgKi9cbiAgcHJvdGVjdGVkIGhhbmRsZUludGVyYWN0aW9uKCkge1xuICAgIHRoaXMuYXVkaW8ub24oJ2ludGVyYWN0aW9uJywgKG5ld1RpbWUpID0+IHtcbiAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgIHRoaXMub25TdGF0dXNDaGFuZ2VkLmVtaXQoeyBjb21wb25lbnQ6IHRoaXMsIGRhdGE6IHsgbmV3VGltZTogbmV3VGltZSB9LCBzdGF0dXM6ICdpbnRlcmFjdGlvbicsIGlzVXNlckludGVyYWN0aW9uOiBmYWxzZSB9KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqIFdoZW4gdGhlIHVzZXIgY2xpY2tzIG9uIHRoZSB3YXZlZm9ybSAqL1xuICBwcm90ZWN0ZWQgaGFuZGxlQ2xpY2soKSB7XG4gICAgdGhpcy5hdWRpby5vbignY2xpY2snLCAocmVsYXRpdmVYKSA9PiB7XG4gICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICB0aGlzLm9uU3RhdHVzQ2hhbmdlZC5lbWl0KHsgY29tcG9uZW50OiB0aGlzLCBkYXRhOiB7IHJlbGF0aXZlWDogcmVsYXRpdmVYIH0sIHN0YXR1czogJ2NsaWNrJywgaXNVc2VySW50ZXJhY3Rpb246IGZhbHNlIH0pO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICAvKiogV2hlbiB0aGUgdXNlciBkcmFncyB0aGUgY3Vyc29yICovXG4gIHByb3RlY3RlZCBoYW5kbGVEcmFnKCkge1xuICAgIHRoaXMuYXVkaW8ub24oJ2RyYWcnLCAocmVsYXRpdmVYKSA9PiB7XG4gICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICB0aGlzLm9uU3RhdHVzQ2hhbmdlZC5lbWl0KHsgY29tcG9uZW50OiB0aGlzLCBkYXRhOiB7IHJlbGF0aXZlWDogcmVsYXRpdmVYIH0sIHN0YXR1czogJ2RyYWcnLCBpc1VzZXJJbnRlcmFjdGlvbjogZmFsc2UgfSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKiBXaGVuIHRoZSB3YXZlZm9ybSBpcyBzY3JvbGxlZCAocGFubmVkKSAqL1xuICBwcm90ZWN0ZWQgaGFuZGxlU2Nyb2xsKCkge1xuICAgIHRoaXMuYXVkaW8ub24oJ3Njcm9sbCcsICh2aXNpYmxlU3RhcnRUaW1lLCB2aXNpYmxlRW5kVGltZSkgPT4ge1xuICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgdGhpcy5vblN0YXR1c0NoYW5nZWQuZW1pdCh7XG4gICAgICAgICAgY29tcG9uZW50OiB0aGlzLFxuICAgICAgICAgIGRhdGE6IHsgdmlzaWJsZVN0YXJ0VGltZSwgdmlzaWJsZUVuZFRpbWUgfSxcbiAgICAgICAgICBzdGF0dXM6ICdzY3JvbGwnLFxuICAgICAgICAgIGlzVXNlckludGVyYWN0aW9uOiBmYWxzZSxcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKiBXaGVuIHRoZSB6b29tIGxldmVsIGNoYW5nZXMgKi9cbiAgcHJvdGVjdGVkIGhhbmRsZVpvb20oKSB7XG4gICAgdGhpcy5hdWRpby5vbignem9vbScsIChtaW5QeFBlclNlYykgPT4ge1xuICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgdGhpcy5vblN0YXR1c0NoYW5nZWQuZW1pdCh7IGNvbXBvbmVudDogdGhpcywgZGF0YTogeyBtaW5QeFBlclNlYzogbWluUHhQZXJTZWMgfSwgc3RhdHVzOiAnem9vbScsIGlzVXNlckludGVyYWN0aW9uOiBmYWxzZSB9KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqIEp1c3QgYmVmb3JlIHRoZSB3YXZlZm9ybSBpcyBkZXN0cm95ZWQgc28geW91IGNhbiBjbGVhbiB1cCB5b3VyIGV2ZW50cyAqL1xuICBwcm90ZWN0ZWQgaGFuZGxlRGVzdHJveSgpIHtcbiAgICB0aGlzLmF1ZGlvLm9uKCdkZXN0cm95JywgKCkgPT4ge1xuICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgdGhpcy5vblN0YXR1c0NoYW5nZWQuZW1pdCh7IGNvbXBvbmVudDogdGhpcywgZGF0YTogbnVsbCwgc3RhdHVzOiAnZGVzdHJveScsIGlzVXNlckludGVyYWN0aW9uOiBmYWxzZSB9KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG59XG4iLCJAaWYodGhpcy5hdWRpb0lzUmVhZHkoKSl7XG48ZGl2IGNsYXNzPVwiYXgtYXVkaW8td2F2ZVwiICNkPjwvZGl2PlxufSBAZWxzZSB7XG48ZGl2IGNsYXNzPVwiYXgtYXVkaW8tc2tlbGV0b25cIj48L2Rpdj5cbn0iXX0=
@@ -1,20 +1,21 @@
1
1
  import { AXButtonModule } from '@acorex/components/button';
2
2
  import { AXDecoratorModule } from '@acorex/components/decorators';
3
+ import { AXSkeletonModule } from '@acorex/components/skeleton';
3
4
  import { CommonModule } from '@angular/common';
4
5
  import { NgModule } from '@angular/core';
5
6
  import { AXAudioWaveComponent } from './audio-wave.component';
6
7
  import * as i0 from "@angular/core";
7
8
  export class AXAudioWaveModule {
8
9
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: AXAudioWaveModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
9
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.2", ngImport: i0, type: AXAudioWaveModule, declarations: [AXAudioWaveComponent], imports: [CommonModule, AXButtonModule, AXDecoratorModule], exports: [AXAudioWaveComponent] }); }
10
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: AXAudioWaveModule, imports: [CommonModule, AXButtonModule, AXDecoratorModule] }); }
10
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.2", ngImport: i0, type: AXAudioWaveModule, declarations: [AXAudioWaveComponent], imports: [CommonModule, AXButtonModule, AXDecoratorModule, AXSkeletonModule], exports: [AXAudioWaveComponent] }); }
11
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: AXAudioWaveModule, imports: [CommonModule, AXButtonModule, AXDecoratorModule, AXSkeletonModule] }); }
11
12
  }
12
13
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: AXAudioWaveModule, decorators: [{
13
14
  type: NgModule,
14
15
  args: [{
15
16
  declarations: [AXAudioWaveComponent],
16
- imports: [CommonModule, AXButtonModule, AXDecoratorModule],
17
+ imports: [CommonModule, AXButtonModule, AXDecoratorModule, AXSkeletonModule],
17
18
  exports: [AXAudioWaveComponent],
18
19
  }]
19
20
  }] });
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaW8td2F2ZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYXVkaW8td2F2ZS9zcmMvbGliL2F1ZGlvLXdhdmUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7QUFPOUQsTUFBTSxPQUFPLGlCQUFpQjs4R0FBakIsaUJBQWlCOytHQUFqQixpQkFBaUIsaUJBSmIsb0JBQW9CLGFBQ3pCLFlBQVksRUFBRSxjQUFjLEVBQUUsaUJBQWlCLGFBQy9DLG9CQUFvQjsrR0FFbkIsaUJBQWlCLFlBSGxCLFlBQVksRUFBRSxjQUFjLEVBQUUsaUJBQWlCOzsyRkFHOUMsaUJBQWlCO2tCQUw3QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLG9CQUFvQixDQUFDO29CQUNwQyxPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsY0FBYyxFQUFFLGlCQUFpQixDQUFDO29CQUMxRCxPQUFPLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQztpQkFDaEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHsgQVhEZWNvcmF0b3JNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYQXVkaW9XYXZlQ29tcG9uZW50IH0gZnJvbSAnLi9hdWRpby13YXZlLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW0FYQXVkaW9XYXZlQ29tcG9uZW50XSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgQVhCdXR0b25Nb2R1bGUsIEFYRGVjb3JhdG9yTW9kdWxlXSxcbiAgZXhwb3J0czogW0FYQXVkaW9XYXZlQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgQVhBdWRpb1dhdmVNb2R1bGUge31cbiJdfQ==
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaW8td2F2ZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYXVkaW8td2F2ZS9zcmMvbGliL2F1ZGlvLXdhdmUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7QUFPOUQsTUFBTSxPQUFPLGlCQUFpQjs4R0FBakIsaUJBQWlCOytHQUFqQixpQkFBaUIsaUJBSmIsb0JBQW9CLGFBQ3pCLFlBQVksRUFBRSxjQUFjLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLGFBQ2pFLG9CQUFvQjsrR0FFbkIsaUJBQWlCLFlBSGxCLFlBQVksRUFBRSxjQUFjLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCOzsyRkFHaEUsaUJBQWlCO2tCQUw3QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLG9CQUFvQixDQUFDO29CQUNwQyxPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsY0FBYyxFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixDQUFDO29CQUM1RSxPQUFPLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQztpQkFDaEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHsgQVhEZWNvcmF0b3JNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBBWFNrZWxldG9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3NrZWxldG9uJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhBdWRpb1dhdmVDb21wb25lbnQgfSBmcm9tICcuL2F1ZGlvLXdhdmUuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbQVhBdWRpb1dhdmVDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBBWEJ1dHRvbk1vZHVsZSwgQVhEZWNvcmF0b3JNb2R1bGUsIEFYU2tlbGV0b25Nb2R1bGVdLFxuICBleHBvcnRzOiBbQVhBdWRpb1dhdmVDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBBWEF1ZGlvV2F2ZU1vZHVsZSB7fVxuIl19