@datarailsshared/datarailsshared 1.5.393 → 1.5.399

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (145) hide show
  1. package/datarailsshared-datarailsshared-1.5.399.tgz +0 -0
  2. package/esm2022/lib/date-tags/any-tag.component.mjs +18 -18
  3. package/esm2022/lib/date-tags/date-tag.component.mjs +99 -23
  4. package/esm2022/lib/date-tags/date-tag.module.mjs +27 -26
  5. package/esm2022/lib/date-tags/day-tag/day-tag.component.mjs +40 -26
  6. package/esm2022/lib/date-tags/forecast-tag/forecast-tag.component.mjs +43 -25
  7. package/esm2022/lib/date-tags/month-tag/month-tag.component.mjs +40 -26
  8. package/esm2022/lib/date-tags/quarter-tag/quarter-tag.component.mjs +26 -12
  9. package/esm2022/lib/date-tags/week-tag/week-tag.component.mjs +40 -26
  10. package/esm2022/lib/date-tags/year-tag/year-tag.component.mjs +40 -26
  11. package/esm2022/lib/directives/click-outside/click-outside.directive.mjs +16 -16
  12. package/esm2022/lib/directives/click-outside/click-outside.module.mjs +13 -12
  13. package/esm2022/lib/dr-accordion/accordion-item-body.component.mjs +18 -15
  14. package/esm2022/lib/dr-accordion/accordion-item-header.component.mjs +112 -60
  15. package/esm2022/lib/dr-accordion/accordion-item.component.mjs +37 -32
  16. package/esm2022/lib/dr-accordion/accordion.component.mjs +24 -11
  17. package/esm2022/lib/dr-accordion/accordion.module.mjs +20 -19
  18. package/esm2022/lib/dr-alert/dr-alert.component.mjs +44 -16
  19. package/esm2022/lib/dr-alert/dr-alert.module.mjs +14 -13
  20. package/esm2022/lib/dr-avatar/dr-avatar.component.mjs +98 -23
  21. package/esm2022/lib/dr-avatar/dr-avatar.module.mjs +13 -12
  22. package/esm2022/lib/dr-avatar/dr-avatar.pipe.mjs +9 -9
  23. package/esm2022/lib/dr-badge-status/dr-badge-status.component.mjs +43 -17
  24. package/esm2022/lib/dr-badge-status/dr-badge-status.module.mjs +14 -13
  25. package/esm2022/lib/dr-chat/chat.component.mjs +115 -38
  26. package/esm2022/lib/dr-chat/chat.module.mjs +27 -26
  27. package/esm2022/lib/dr-chat/dr-chat-alert/dr-chat-alert.component.mjs +21 -11
  28. package/esm2022/lib/dr-chat/dr-chat-form/chat-form.component.mjs +128 -37
  29. package/esm2022/lib/dr-chat/dr-chat-message/chat-message.component.mjs +126 -41
  30. package/esm2022/lib/dr-chat/dr-chat-message/dr-chat-message-custom/chat-custom-message.directive.mjs +11 -11
  31. package/esm2022/lib/dr-chat/dr-chat-message/dr-chat-message-custom/chat-custom-message.service.mjs +6 -6
  32. package/esm2022/lib/dr-chat/dr-chat-message/dr-chat-message-file/chat-message-file.component.mjs +40 -11
  33. package/esm2022/lib/dr-chat/dr-chat-message/dr-chat-message-text/chat-message-text.component.mjs +22 -9
  34. package/esm2022/lib/dr-chat/dr-chat-suggestions/chat-suggestions.component.mjs +86 -20
  35. package/esm2022/lib/dr-chat/dr-dot-flashing/dr-dot-flashing.component.mjs +9 -7
  36. package/esm2022/lib/dr-chip/dr-chip.component.mjs +49 -15
  37. package/esm2022/lib/dr-code-editor/components/code-editor-hint-wrapper.component.mjs +14 -10
  38. package/esm2022/lib/dr-code-editor/components/dr-codemirror.component.mjs +62 -57
  39. package/esm2022/lib/dr-code-editor/dr-code-editor.component.mjs +48 -20
  40. package/esm2022/lib/dr-code-editor/dr-code-editor.module.mjs +14 -13
  41. package/esm2022/lib/dr-details-list/dr-details-list.component.mjs +69 -41
  42. package/esm2022/lib/dr-details-list/dr-details-list.module.mjs +14 -13
  43. package/esm2022/lib/dr-dialog/components/dialog-modal-wrapper/dialog-modal-wrapper.component.mjs +265 -13
  44. package/esm2022/lib/dr-dialog/components/dialog-wrapper/dialog-wrapper.component.mjs +154 -16
  45. package/esm2022/lib/dr-dialog/dialog.module.mjs +14 -13
  46. package/esm2022/lib/dr-dialog/services/dialog.service.mjs +9 -9
  47. package/esm2022/lib/dr-dropdown/dr-dropdown-item/dr-dropdown-item.component.mjs +29 -0
  48. package/esm2022/lib/dr-dropdown/dr-dropdown-item-show.pipe.mjs +9 -9
  49. package/esm2022/lib/dr-dropdown/dr-dropdown.component.mjs +175 -56
  50. package/esm2022/lib/dr-dropdown/dr-dropdown.directive.mjs +98 -87
  51. package/esm2022/lib/dr-dropdown/dr-dropdown.module.mjs +32 -15
  52. package/esm2022/lib/dr-dropdown/dr-dropdown.service.mjs +55 -18
  53. package/esm2022/lib/dr-dynamic-tag/dr-dynamic-tag.component.mjs +92 -25
  54. package/esm2022/lib/dr-dynamic-tag/dr-dynamic-tag.module.mjs +13 -12
  55. package/esm2022/lib/dr-error/dr-error.component.mjs +48 -24
  56. package/esm2022/lib/dr-error/dr-error.module.mjs +14 -13
  57. package/esm2022/lib/dr-inputs/button/button.component.mjs +88 -45
  58. package/esm2022/lib/dr-inputs/checkbox/checkbox.component.mjs +53 -28
  59. package/esm2022/lib/dr-inputs/date-pickers/directives/dr-date-picker-format.directive.mjs +32 -32
  60. package/esm2022/lib/dr-inputs/date-pickers/dr-date-picker/dr-date-picker.component.mjs +67 -42
  61. package/esm2022/lib/dr-inputs/date-pickers/dr-date-picker-range/dr-date-picker-range.component.mjs +72 -32
  62. package/esm2022/lib/dr-inputs/date-pickers/dr-date-picker-with-timeframe/dr-date-picker-with-timeframe.component.mjs +111 -42
  63. package/esm2022/lib/dr-inputs/date-pickers/dr-date-picker_custom-header/dr-date-picker_custom-header.component.mjs +99 -10
  64. package/esm2022/lib/dr-inputs/date-pickers/dr-show-timeframe.pipe.mjs +9 -9
  65. package/esm2022/lib/dr-inputs/date-pickers/services/dr-date-picker.service.mjs +6 -6
  66. package/esm2022/lib/dr-inputs/dr-input/dr-input.component.mjs +168 -84
  67. package/esm2022/lib/dr-inputs/dr-inputs.module.mjs +64 -63
  68. package/esm2022/lib/dr-inputs/dr-link/dr-link.component.mjs +26 -16
  69. package/esm2022/lib/dr-inputs/dr-model-debounce-change.directive.mjs +13 -13
  70. package/esm2022/lib/dr-inputs/dr-select/dr-select.component.mjs +243 -104
  71. package/esm2022/lib/dr-inputs/dr-select-add-item/dr-select-add-item.component.mjs +77 -20
  72. package/esm2022/lib/dr-inputs/dr-slider/dr-slider.component.mjs +23 -17
  73. package/esm2022/lib/dr-inputs/dr-toggle/dr-toggle.component.mjs +64 -22
  74. package/esm2022/lib/dr-inputs/dr-toggle-button/dr-toggle-button.component.mjs +53 -21
  75. package/esm2022/lib/dr-inputs/radio-button/radio-button.component.mjs +40 -28
  76. package/esm2022/lib/dr-inputs/radio-button/radio-group.component.mjs +51 -41
  77. package/esm2022/lib/dr-layout/dr-layout-body.component.mjs +14 -10
  78. package/esm2022/lib/dr-layout/dr-layout-header.component.mjs +16 -14
  79. package/esm2022/lib/dr-layout/dr-layout.component.mjs +16 -7
  80. package/esm2022/lib/dr-layout/dr-layout.module.mjs +13 -12
  81. package/esm2022/lib/dr-popover/dr-popover-ref.mjs +4 -1
  82. package/esm2022/lib/dr-popover/dr-popover.component.mjs +71 -40
  83. package/esm2022/lib/dr-popover/dr-popover.directive.mjs +51 -49
  84. package/esm2022/lib/dr-popover/dr-popover.module.mjs +13 -12
  85. package/esm2022/lib/dr-popover/dr-popover.service.mjs +25 -13
  86. package/esm2022/lib/dr-scenario/components/dr-scenario-configuration/dr-scenario-configuration.component.mjs +41 -17
  87. package/esm2022/lib/dr-scenario/components/dr-scenario-tag-configuration/dr-scenario-tag-configuration.component.mjs +42 -27
  88. package/esm2022/lib/dr-scenario/dr-scenario.module.mjs +14 -13
  89. package/esm2022/lib/dr-scenario/services/scenario.service.mjs +6 -6
  90. package/esm2022/lib/dr-spinner/dr-spinner.component.mjs +17 -7
  91. package/esm2022/lib/dr-spinner/dr-spinner.directive.mjs +25 -20
  92. package/esm2022/lib/dr-spinner/dr-spinner.module.mjs +13 -12
  93. package/esm2022/lib/dr-tabs/dr-tab.component.mjs +33 -25
  94. package/esm2022/lib/dr-tabs/dr-tabs.component.mjs +118 -30
  95. package/esm2022/lib/dr-tabs/dr-tabs.module.mjs +14 -13
  96. package/esm2022/lib/dr-tags/dr-tag.component.mjs +74 -33
  97. package/esm2022/lib/dr-tags/dr-tag.module.mjs +14 -13
  98. package/esm2022/lib/dr-tags-constructor/dr-tags-constructor.component.mjs +72 -19
  99. package/esm2022/lib/dr-tags-constructor/dr-tags-constructor.module.mjs +14 -13
  100. package/esm2022/lib/dr-tags-constructor/tags-constructor.service.mjs +6 -6
  101. package/esm2022/lib/dr-toastr/default-toastr/default-toastr.component.mjs +48 -10
  102. package/esm2022/lib/dr-toastr/dr-toastr.module.mjs +19 -18
  103. package/esm2022/lib/dr-toastr/dr-toastr.service.mjs +9 -9
  104. package/esm2022/lib/dr-tooltip/components/tooltip-default/tooltip-default.component.mjs +23 -14
  105. package/esm2022/lib/dr-tooltip/components/tooltip-info/tooltip-info.component.mjs +76 -9
  106. package/esm2022/lib/dr-tooltip/dr-tooltip.component.mjs +63 -25
  107. package/esm2022/lib/dr-tooltip/dr-tooltip.directive.mjs +41 -39
  108. package/esm2022/lib/dr-tooltip/dr-tooltip.module.mjs +14 -13
  109. package/esm2022/lib/dr-treeview/components/treeview/treeview.component.mjs +211 -19
  110. package/esm2022/lib/dr-treeview/components/treeview-item/treeview-item.component.mjs +52 -15
  111. package/esm2022/lib/dr-treeview/dr-tree-view.module.mjs +14 -13
  112. package/esm2022/lib/dr-treeview/helpers/treeview-event-parser.mjs +21 -21
  113. package/esm2022/lib/dr-treeview/models/treeview-config.mjs +6 -6
  114. package/esm2022/lib/dr-treeview/models/treeview-i18n.mjs +11 -11
  115. package/esm2022/lib/dr-treeview/pipes/treeview.pipe.mjs +9 -9
  116. package/esm2022/lib/image-cropper/dr-image-cropper-canvas.service.mjs +6 -6
  117. package/esm2022/lib/image-cropper/dr-image-cropper.component.mjs +67 -28
  118. package/esm2022/lib/list-tags/list-tag.component.mjs +57 -17
  119. package/esm2022/lib/list-tags/list-tag.module.mjs +14 -13
  120. package/esm2022/lib/models/dropdown.mjs +1 -1
  121. package/esm2022/lib/models/popover.mjs +1 -1
  122. package/esm2022/lib/stepper/stepper.component.mjs +225 -28
  123. package/esm2022/lib/stepper/stepper.module.mjs +13 -12
  124. package/esm2022/lib/utils/decorators.mjs +12 -0
  125. package/esm2022/public-api.mjs +2 -2
  126. package/fesm2022/datarailsshared-datarailsshared.mjs +5834 -2729
  127. package/fesm2022/datarailsshared-datarailsshared.mjs.map +1 -1
  128. package/lib/dr-accordion/accordion-item-header.component.d.ts +12 -2
  129. package/lib/dr-accordion/accordion-item.component.d.ts +1 -1
  130. package/lib/dr-accordion/accordion.component.d.ts +3 -1
  131. package/lib/dr-dropdown/dr-dropdown-item/dr-dropdown-item.component.d.ts +8 -0
  132. package/lib/dr-dropdown/dr-dropdown.component.d.ts +24 -22
  133. package/lib/dr-dropdown/dr-dropdown.directive.d.ts +16 -15
  134. package/lib/dr-dropdown/dr-dropdown.module.d.ts +5 -4
  135. package/lib/dr-dropdown/dr-dropdown.service.d.ts +23 -8
  136. package/lib/dr-popover/dr-popover-ref.d.ts +1 -0
  137. package/lib/dr-popover/dr-popover.service.d.ts +2 -1
  138. package/lib/models/dropdown.d.ts +13 -21
  139. package/lib/models/popover.d.ts +6 -3
  140. package/lib/utils/decorators.d.ts +1 -0
  141. package/package.json +5 -2
  142. package/public-api.d.ts +2 -2
  143. package/datarailsshared-datarailsshared-1.5.393.tgz +0 -0
  144. package/esm2022/lib/dr-dropdown/dr-dropdown-position.directive.mjs +0 -113
  145. package/lib/dr-dropdown/dr-dropdown-position.directive.d.ts +0 -15
@@ -1,19 +1,29 @@
1
1
  import { ChangeDetectorRef, OnDestroy, OnInit } from '@angular/core';
2
2
  import { DrAccordionItemComponent } from './accordion-item.component';
3
3
  import * as i0 from "@angular/core";
4
+ export type TDrAccordionChevronPosition = 'right' | 'left';
5
+ export type TDrAccordionChevronOrientation = 'vertical' | 'horizontal';
4
6
  export declare class DrAccordionItemHeaderComponent implements OnInit, OnDestroy {
5
- private accordionItem;
7
+ accordionItem: DrAccordionItemComponent;
6
8
  private cd;
7
9
  private destroy$;
10
+ chevronOrientation: TDrAccordionChevronOrientation;
11
+ chevronPosition: TDrAccordionChevronPosition;
12
+ icon: string;
13
+ toggleOnChevronClick: boolean;
8
14
  get isCollapsed(): boolean;
9
15
  get expanded(): boolean;
10
16
  get tabbable(): string;
11
17
  get disabled(): boolean;
18
+ private theme;
12
19
  toggle(): void;
13
20
  get state(): string;
21
+ chevronIconClass: string;
22
+ chevronRotationDegree: number;
14
23
  constructor(accordionItem: DrAccordionItemComponent, cd: ChangeDetectorRef);
15
24
  ngOnInit(): void;
16
25
  ngOnDestroy(): void;
26
+ private getChevronIconClass;
17
27
  static ɵfac: i0.ɵɵFactoryDeclaration<DrAccordionItemHeaderComponent, [{ host: true; }, null]>;
18
- static ɵcmp: i0.ɵɵComponentDeclaration<DrAccordionItemHeaderComponent, "dr-accordion-item-header", never, {}, {}, never, ["dr-accordion-item-title", "dr-accordion-item-description", "*"], false, never>;
28
+ static ɵcmp: i0.ɵɵComponentDeclaration<DrAccordionItemHeaderComponent, "dr-accordion-item-header", never, { "chevronOrientation": { "alias": "chevronOrientation"; "required": false; }; "chevronPosition": { "alias": "chevronPosition"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "toggleOnChevronClick": { "alias": "toggleOnChevronClick"; "required": false; }; }, {}, never, ["dr-accordion-item-title", "dr-accordion-item-description", "*"], false, never>;
19
29
  }
@@ -3,7 +3,7 @@ import { Subject } from 'rxjs';
3
3
  import { DrAccordionComponent } from './accordion.component';
4
4
  import * as i0 from "@angular/core";
5
5
  export declare class DrAccordionItemComponent implements OnInit, OnChanges, OnDestroy {
6
- private accordion;
6
+ accordion: DrAccordionComponent;
7
7
  private cd;
8
8
  /**
9
9
  * Item is collapse (`true` by default)
@@ -1,5 +1,6 @@
1
1
  import { Subject } from 'rxjs';
2
2
  import * as i0 from "@angular/core";
3
+ export type TDrAccordionTheme = 'regular' | 'borderless';
3
4
  export declare class DrAccordionComponent {
4
5
  static ngAcceptInputType_multi: any;
5
6
  openCloseItems: Subject<boolean>;
@@ -7,6 +8,7 @@ export declare class DrAccordionComponent {
7
8
  * Allow multiple items to be expanded at the same time.
8
9
  */
9
10
  get multi(): boolean;
11
+ theme: TDrAccordionTheme;
10
12
  set multi(val: boolean);
11
13
  private multiValue;
12
14
  /**
@@ -18,5 +20,5 @@ export declare class DrAccordionComponent {
18
20
  */
19
21
  closeAll(): void;
20
22
  static ɵfac: i0.ɵɵFactoryDeclaration<DrAccordionComponent, never>;
21
- static ɵcmp: i0.ɵɵComponentDeclaration<DrAccordionComponent, "dr-accordion", never, { "multi": { "alias": "multi"; "required": false; }; }, {}, never, ["dr-accordion-item"], false, never>;
23
+ static ɵcmp: i0.ɵɵComponentDeclaration<DrAccordionComponent, "dr-accordion", never, { "multi": { "alias": "multi"; "required": false; }; "theme": { "alias": "theme"; "required": false; }; }, {}, never, ["dr-accordion-item"], false, never>;
22
24
  }
@@ -0,0 +1,8 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class DrDropdownItemComponent {
3
+ selected: boolean;
4
+ disabled: boolean;
5
+ divider: boolean;
6
+ static ɵfac: i0.ɵɵFactoryDeclaration<DrDropdownItemComponent, never>;
7
+ static ɵcmp: i0.ɵɵComponentDeclaration<DrDropdownItemComponent, "dr-dropdown-item", never, { "selected": { "alias": "selected"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "divider": { "alias": "divider"; "required": false; }; }, {}, never, ["[dropdownItemContent]", "[dropdownItemActions]"], false, never>;
8
+ }
@@ -1,31 +1,33 @@
1
- import { ChangeDetectorRef } from '@angular/core';
2
- import { ElPosition, IDropdown, IDropdownActionIcon, IDropdownCoordinate, IDropdownItem } from '../models/dropdown';
3
- import { DrDropdownService } from './dr-dropdown.service';
1
+ import { ElementRef, EventEmitter, SimpleChanges } from '@angular/core';
2
+ import { IDropdown, IDropdownAction, IDropdownActionIcon, IDropdownItem } from '../models/dropdown';
3
+ import { DropdownInstanceRef } from './dr-dropdown.service';
4
4
  import * as i0 from "@angular/core";
5
- export declare class DrDropdownComponent {
6
- protected menuService: DrDropdownService;
7
- private cdr;
8
- viewMenu: HTMLElement;
9
- menuContainer: HTMLElement;
10
- option: any;
11
- position: ElPosition | IDropdownCoordinate;
5
+ export declare class DrDropdownComponent implements DropdownInstanceRef {
6
+ private readonly cdr;
7
+ private readonly popoverRef;
8
+ private readonly dropdownInstanceService;
9
+ private readonly destroy$;
10
+ private _active;
11
+ menuContainer: ElementRef<HTMLDivElement>;
12
12
  drDropdownInHover: boolean;
13
+ private readonly drDropdownInHoverChange$;
13
14
  list: IDropdownItem<unknown>[];
14
15
  containerClass: string;
15
16
  wasHovered: boolean;
16
- private firstInit;
17
- constructor(menuService: DrDropdownService, cdr: ChangeDetectorRef);
18
- set options(data: IDropdown<IDropdownItem<any>>);
19
- onMouseEnter(): void;
20
- onMouseLeave(): void;
21
- onClickedOutside(): void;
22
- hide(): void;
23
- disabled(act: IDropdownItem<unknown> | IDropdownActionIcon<any>): boolean;
17
+ asChild: boolean;
18
+ set options(data: IDropdown<IDropdownItem<unknown>>);
19
+ onAction: EventEmitter<IDropdownAction<unknown>>;
20
+ constructor();
21
+ ngOnChanges(changes: SimpleChanges): void;
22
+ disabled(act: IDropdownItem<unknown>): boolean;
24
23
  selected(act: IDropdownItem<unknown>): boolean;
25
24
  tooltipToShow(act: IDropdownItem<unknown>): string;
26
- tooltipPosition(widthMoreRight: boolean): "left" | "right";
27
- action(act: IDropdownItem<any>): void;
28
- onActionIconClick($event: any, actionIcon: IDropdownActionIcon<any>, data: any): void;
25
+ action(act: IDropdownItem<unknown>): void;
26
+ onActionIconClick($event: MouseEvent, actionIcon: IDropdownActionIcon<unknown>, data: unknown): void;
27
+ hasChildren(item: IDropdownItem<unknown>): boolean;
28
+ onMouseenter(): void;
29
+ onMouseleave(): void;
30
+ active(): boolean;
29
31
  static ɵfac: i0.ɵɵFactoryDeclaration<DrDropdownComponent, never>;
30
- static ɵcmp: i0.ɵɵComponentDeclaration<DrDropdownComponent, "dr-dropdown", never, { "options": { "alias": "options"; "required": false; }; }, {}, never, never, false, never>;
32
+ static ɵcmp: i0.ɵɵComponentDeclaration<DrDropdownComponent, "dr-dropdown", never, { "options": { "alias": "options"; "required": false; }; }, { "onAction": "action"; }, never, ["dr-dropdown-item"], false, never>;
31
33
  }
@@ -1,28 +1,29 @@
1
- import { ComponentFactoryResolver, ElementRef, OnDestroy, ViewContainerRef } from '@angular/core';
2
- import { ElPosition, IDropdownItem } from '../models/dropdown';
3
- import { DrDropdownService } from './dr-dropdown.service';
1
+ import { EventEmitter, OnDestroy } from '@angular/core';
2
+ import { ElPosition, IDropdownAction, IDropdownItem } from '../models/dropdown';
4
3
  import * as i0 from "@angular/core";
5
4
  export declare class DrDropdownDirective<T> implements OnDestroy {
6
- private componentFactoryResolver;
7
- private viewContainerRef;
8
- private service;
9
- private el;
10
- private _document;
11
- position: ElPosition;
5
+ private readonly elementRef;
6
+ private readonly service;
7
+ private readonly child;
8
+ private readonly dropdownInstanceService;
12
9
  drDropdown: IDropdownItem<T>[];
10
+ drDropdownPosition: ElPosition;
13
11
  drDropdownClass: string;
14
12
  drDropdownInHover: boolean;
15
- contentCmpRef: any;
13
+ drDropdownAction: EventEmitter<IDropdownAction<T>>;
14
+ private ref;
16
15
  private readonly mouseleaveTimeout;
17
- constructor(componentFactoryResolver: ComponentFactoryResolver, viewContainerRef: ViewContainerRef, service: DrDropdownService, el: ElementRef, _document: any);
18
16
  elementHover(): void;
19
17
  elementClick(): void;
20
18
  leaveDropdownTriggerElement(): void;
21
- documentClick(e: any): void;
19
+ documentClick(): void;
22
20
  private openDropdown;
23
- private closeDropdown;
24
- private showMenu;
21
+ private close;
25
22
  ngOnDestroy(): void;
26
23
  static ɵfac: i0.ɵɵFactoryDeclaration<DrDropdownDirective<any>, never>;
27
- static ɵdir: i0.ɵɵDirectiveDeclaration<DrDropdownDirective<any>, "[drDropdown]", never, { "position": { "alias": "position"; "required": false; }; "drDropdown": { "alias": "drDropdown"; "required": false; }; "drDropdownClass": { "alias": "drDropdownClass"; "required": false; }; "drDropdownInHover": { "alias": "drDropdownInHover"; "required": false; }; }, {}, never, never, false, never>;
24
+ static ɵdir: i0.ɵɵDirectiveDeclaration<DrDropdownDirective<any>, "[drDropdown]", never, { "drDropdown": { "alias": "drDropdown"; "required": true; }; "drDropdownPosition": { "alias": "drDropdownPosition"; "required": false; }; "drDropdownClass": { "alias": "drDropdownClass"; "required": false; }; "drDropdownInHover": { "alias": "drDropdownInHover"; "required": false; }; }, { "drDropdownAction": "drDropdownAction"; }, never, never, false, never>;
25
+ }
26
+ export declare class DrDropdownChildDirective {
27
+ static ɵfac: i0.ɵɵFactoryDeclaration<DrDropdownChildDirective, never>;
28
+ static ɵdir: i0.ɵɵDirectiveDeclaration<DrDropdownChildDirective, "[drDropdownChild]", never, {}, {}, never, never, false, never>;
28
29
  }
@@ -1,12 +1,13 @@
1
1
  import * as i0 from "@angular/core";
2
2
  import * as i1 from "./dr-dropdown.directive";
3
- import * as i2 from "./dr-dropdown-position.directive";
4
- import * as i3 from "./dr-dropdown.component";
5
- import * as i4 from "./dr-dropdown-item-show.pipe";
3
+ import * as i2 from "./dr-dropdown.component";
4
+ import * as i3 from "./dr-dropdown-item-show.pipe";
5
+ import * as i4 from "./dr-dropdown-item/dr-dropdown-item.component";
6
6
  import * as i5 from "@angular/common";
7
7
  import * as i6 from "../dr-tooltip/dr-tooltip.module";
8
+ import * as i7 from "../dr-popover/dr-popover.module";
8
9
  export declare class DrDropdownModule {
9
10
  static ɵfac: i0.ɵɵFactoryDeclaration<DrDropdownModule, never>;
10
- static ɵmod: i0.ɵɵNgModuleDeclaration<DrDropdownModule, [typeof i1.DrDropdownDirective, typeof i2.DrDropdownPositionDirective, typeof i3.DrDropdownComponent, typeof i4.DrDropdownItemShowPipe], [typeof i5.CommonModule, typeof i6.DrTooltipModule], [typeof i1.DrDropdownDirective, typeof i2.DrDropdownPositionDirective, typeof i3.DrDropdownComponent, typeof i4.DrDropdownItemShowPipe]>;
11
+ static ɵmod: i0.ɵɵNgModuleDeclaration<DrDropdownModule, [typeof i1.DrDropdownDirective, typeof i2.DrDropdownComponent, typeof i3.DrDropdownItemShowPipe, typeof i1.DrDropdownChildDirective, typeof i4.DrDropdownItemComponent], [typeof i5.CommonModule, typeof i6.DrTooltipModule, typeof i7.DrPopoverModule], [typeof i1.DrDropdownDirective, typeof i2.DrDropdownComponent, typeof i3.DrDropdownItemShowPipe, typeof i4.DrDropdownItemComponent]>;
11
12
  static ɵinj: i0.ɵɵInjectorDeclaration<DrDropdownModule>;
12
13
  }
@@ -1,14 +1,29 @@
1
- import { ComponentRef } from '@angular/core';
2
- import { Subject } from 'rxjs';
1
+ import { EventEmitter, Injector, StaticProvider } from '@angular/core';
3
2
  import { DrDropdownComponent } from './dr-dropdown.component';
4
- import { IDropdownAction } from '../models/dropdown';
3
+ import { IDropdown, IDropdownAction, IDropdownItem } from '../models/dropdown';
4
+ import { IDrPopoverComponentModel } from '../models/popover';
5
5
  import * as i0 from "@angular/core";
6
6
  export declare class DrDropdownService {
7
- readonly actionItem: Subject<IDropdownAction<unknown>>;
8
- protected menuInView: ComponentRef<DrDropdownComponent>;
9
- constructor();
10
- set addMenu(item: ComponentRef<DrDropdownComponent>);
11
- destroy(): void;
7
+ private readonly popoverService;
8
+ open({ hostRef, options, position, asChild, providers, action$, }: Pick<IDrPopoverComponentModel, 'hostRef' | 'position'> & {
9
+ options: IDropdown<IDropdownItem<unknown>>;
10
+ asChild?: boolean;
11
+ providers?: StaticProvider[];
12
+ action$?: EventEmitter<IDropdownAction<unknown>>;
13
+ }): import("../dr-popover/dr-popover-ref").DrPopoverRef<DrDropdownComponent>;
12
14
  static ɵfac: i0.ɵɵFactoryDeclaration<DrDropdownService, never>;
13
15
  static ɵprov: i0.ɵɵInjectableDeclaration<DrDropdownService>;
14
16
  }
17
+ export interface DropdownInstanceRef {
18
+ active(): boolean;
19
+ }
20
+ export declare class DropdownInstanceService {
21
+ private readonly instances$;
22
+ private get instances();
23
+ private readonly destroy$;
24
+ constructor(injector: Injector);
25
+ register(ref: DropdownInstanceRef): void;
26
+ unregister(ref: DropdownInstanceRef): void;
27
+ getSequence(ref: DropdownInstanceRef): DropdownInstanceRef[];
28
+ inactive(ref: DropdownInstanceRef): import("rxjs").Observable<DropdownInstanceRef[]>;
29
+ }
@@ -5,6 +5,7 @@ import { DrPopoverComponent } from './dr-popover.component';
5
5
  export declare class DrPopoverRef<T = any> {
6
6
  private overlayRef;
7
7
  componentRef: ComponentRef<DrPopoverComponent<T>>;
8
+ get instance(): T;
8
9
  protected onClose$: Subject<any>;
9
10
  /**
10
11
  * Correct type is @type {Observable<any>}
@@ -1,4 +1,5 @@
1
1
  import { DrPopoverRef } from './dr-popover-ref';
2
+ import { ComponentType } from '@angular/cdk/portal';
2
3
  import { Injector, TemplateRef, Type } from '@angular/core';
3
4
  import { Overlay, OverlayPositionBuilder } from '@angular/cdk/overlay';
4
5
  import { IDrPopoverComponentModel } from '../models/popover';
@@ -8,7 +9,7 @@ export declare class DrPopoverService {
8
9
  private overlayPositionBuilder;
9
10
  private injector;
10
11
  constructor(overlay: Overlay, overlayPositionBuilder: OverlayPositionBuilder, injector: Injector);
11
- open<T>(content: Type<T> | TemplateRef<unknown>, popoverModel: IDrPopoverComponentModel): DrPopoverRef<T>;
12
+ open<T>(content: Type<T> | TemplateRef<unknown> | ComponentType<T>, popoverModel: IDrPopoverComponentModel<T>): DrPopoverRef<T>;
12
13
  private attachOverlayContainer;
13
14
  private createOverlay;
14
15
  private getOverlayConfig;
@@ -1,12 +1,13 @@
1
- export type ElPosition = 'left' | 'right' | 'top' | 'bottom' | 'child' | 'top-left' | 'left-center' | 'left-top' | 'left-bottom' | 'bottom-left' | 'over' | 'right-bottom' | 'right-top' | 'bottom-right';
1
+ import { TemplateRef } from '@angular/core';
2
+ export type ElPosition = 'left' | 'right' | 'top' | 'bottom' | 'top-left' | 'top-right' | 'left-top' | 'left-bottom' | 'bottom-left' | 'right-bottom' | 'right-top' | 'bottom-right';
2
3
  export interface IDropdown<T> {
3
- option?: DOMRect;
4
4
  drDropdownInHover?: boolean;
5
- position: ElPosition | IDropdownCoordinate;
5
+ position?: ElPosition;
6
6
  list: IDropdownItem<T>[];
7
- tag?: string;
8
7
  class?: string | undefined;
9
8
  }
9
+ export interface IDropdownChild<T> extends Omit<IDropdown<T>, 'list'> {
10
+ }
10
11
  export interface IDropdownItem<T> {
11
12
  title?: string;
12
13
  icon?: string;
@@ -15,35 +16,26 @@ export interface IDropdownItem<T> {
15
16
  event?: string;
16
17
  data?: T;
17
18
  show?: (p: any) => boolean;
18
- disabled?: (p: T) => boolean;
19
+ disabled?: ((p: T) => boolean) | boolean;
19
20
  toolTip?: string;
20
21
  customTooltip?: (p: any) => string;
21
22
  toolTipIfDisabled?: boolean;
22
- children?: T[];
23
- childOptions?: IDropdown<T>;
23
+ children?: IDropdownItem<T>[];
24
+ childOptions?: IDropdownChild<T>;
24
25
  actionIcons?: IDropdownActionIcon<T>[];
25
- selected?: (p: T) => boolean;
26
+ selected?: ((p: T) => boolean) | boolean;
26
27
  separateLine?: boolean;
27
- class?: string | undefined;
28
+ class?: string | null;
29
+ templateRef?: TemplateRef<{
30
+ $implicit: T;
31
+ }>;
28
32
  }
29
33
  export interface IDropdownActionIcon<T> {
30
34
  icon: string;
31
35
  action: (p: T) => void;
32
- disabled?: boolean;
33
36
  data?: any;
34
37
  showOnHover?: boolean;
35
38
  }
36
- export interface IDropdownCoordinate {
37
- x: number;
38
- y: number;
39
- clientX?: number;
40
- clientY?: number;
41
- }
42
- export interface IDropdownCallEvent {
43
- id: number;
44
- event: any;
45
- itemsList: any[];
46
- }
47
39
  export interface IDropdownAction<T> {
48
40
  event: string;
49
41
  data?: T;
@@ -1,5 +1,5 @@
1
1
  import { ElPosition } from './dropdown';
2
- import { ElementRef } from '@angular/core';
2
+ import { ElementRef, StaticProvider } from '@angular/core';
3
3
  import { OverlayConfig } from '@angular/cdk/overlay';
4
4
  export { DrPopoverRef } from '../dr-popover/dr-popover-ref';
5
5
  export interface Point {
@@ -9,10 +9,10 @@ export interface Point {
9
9
  export interface IPopoverManualClosing {
10
10
  enabled: boolean;
11
11
  }
12
- export interface IDrPopoverComponentModel {
12
+ export interface IDrPopoverComponentModel<C = any> {
13
13
  hostRef: ElementRef | HTMLElement | Point;
14
14
  position?: ElPosition;
15
- contentContext?: any;
15
+ contentContext?: Partial<C>;
16
16
  class?: string;
17
17
  overlayConfig?: DrPopoverConfig;
18
18
  manualClosing?: IPopoverManualClosing;
@@ -23,6 +23,9 @@ export interface IDrPopoverComponentModel {
23
23
  export interface DrPopoverConfig extends OverlayConfig {
24
24
  closeOnBackdropClick?: boolean;
25
25
  noPadding?: boolean;
26
+ positionOffsetY?: number;
27
+ positionOffsetX?: number;
28
+ providers?: StaticProvider[];
26
29
  }
27
30
  export type DrPopoverAlignment = 'host';
28
31
  export declare enum DrPopoverAlignmentDimension {
@@ -0,0 +1 @@
1
+ export declare function Debounce(ms: number): MethodDecorator;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@datarailsshared/datarailsshared",
3
- "version": "1.5.393",
3
+ "version": "1.5.399",
4
4
  "description": "DataRails shared components",
5
5
  "keywords": [
6
6
  "angular",
@@ -54,5 +54,8 @@
54
54
  "fesm2015": "fesm2015/ng-datarails.js",
55
55
  "typings": "index.d.ts",
56
56
  "metadata": "ng-datarails.metadata.json",
57
- "sideEffects": false
57
+ "sideEffects": false,
58
+ "scripts": {
59
+ "prepublishOnly": "node --eval \"console.error('ERROR: Trying to publish a package that has been compiled by Ivy in full compilation mode. This is not allowed.\\nPlease delete and rebuild the package with Ivy partial compilation mode, before attempting to publish.\\n')\" && exit 1"
60
+ }
58
61
  }
package/public-api.d.ts CHANGED
@@ -55,8 +55,8 @@ export * from './lib/dr-popover/dr-popover.directive';
55
55
  export * from './lib/dr-popover/dr-popover.component';
56
56
  export * from './lib/dr-popover/dr-popover.service';
57
57
  export * from './lib/dr-dropdown/dr-dropdown.directive';
58
- export * from './lib/dr-dropdown/dr-dropdown-position.directive';
59
58
  export * from './lib/dr-dropdown/dr-dropdown.component';
59
+ export * from './lib/dr-dropdown/dr-dropdown-item/dr-dropdown-item.component';
60
60
  export * from './lib/dr-dropdown/dr-dropdown.service';
61
61
  export * from './lib/dr-dropdown/dr-dropdown-item-show.pipe';
62
62
  export * from './lib/dr-tabs/dr-tabs.component';
@@ -97,7 +97,7 @@ export * from './lib/directives/click-outside/click-outside.directive';
97
97
  export * from './lib/models/datePicker';
98
98
  export { TAG_TYPES, ITag, IDateTag, IListTag, ITagForServer, IDynamicTag, TDynamicTagValue, TDynamicTag, TagTypes, TagsConfigSubType, TConnectedTags, } from './lib/models/serverTags';
99
99
  export { ISpinnerOptions, SpinnerType, SpinnerSize } from './lib/models/spinnerOptions';
100
- export { ElPosition, IDropdown, IDropdownItem, IDropdownActionIcon, IDropdownCoordinate, IDropdownCallEvent, IDropdownAction, } from './lib/models/dropdown';
100
+ export { ElPosition, IDropdown, IDropdownItem, IDropdownActionIcon, IDropdownAction } from './lib/models/dropdown';
101
101
  export { DrPopoverRef, IDrPopoverComponentModel, Point, DrPopoverConfig, IPopoverManualClosing, DrPopoverAlignment, DrPopoverAlignmentDimension, } from './lib/models/popover';
102
102
  export { IValidationError } from './lib/models/validationError';
103
103
  export * from './lib/models/chat';
@@ -1,113 +0,0 @@
1
- import { Directive, ElementRef, Input, Renderer2 } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class DrDropdownPositionDirective {
4
- constructor(el, renderer) {
5
- this.el = el;
6
- this.renderer = renderer;
7
- this.position = 'left';
8
- }
9
- ngOnInit() {
10
- setTimeout(this.calculatePosition.bind(this), 1);
11
- }
12
- calculatePosition() {
13
- let xDifference = 0;
14
- let defaultDelta = 10;
15
- let defaultPadding = 0;
16
- const originalPosition = this.position;
17
- if (this.position === 'child') {
18
- defaultDelta = 0;
19
- defaultPadding = 10;
20
- xDifference = this.el.nativeElement.parentElement.parentElement.offsetWidth - this.el.nativeElement.offsetWidth;
21
- const parentRect = this.el.nativeElement.parentElement.parentElement.getBoundingClientRect();
22
- this.position = {
23
- x: this.el.nativeElement.offsetWidth,
24
- y: this.el.nativeElement.parentElement.parentElement.offsetTop - 9,
25
- clientX: parentRect.x + this.el.nativeElement.parentElement.parentElement.offsetWidth,
26
- clientY: parentRect.y,
27
- };
28
- }
29
- if (typeof this.position === 'string') {
30
- this.renderer.setStyle(this.el.nativeElement, 'top', this.position === 'bottom'
31
- ? this.drDropdownPosition.y - this.drDropdownPosition.height + 'px'
32
- : this.drDropdownPosition.y + 'px');
33
- this.renderer.setStyle(this.el.nativeElement, 'left', this.position === 'right'
34
- ? this.drDropdownPosition.x + this.drDropdownPosition.width + 'px'
35
- : this.drDropdownPosition.x + 'px');
36
- const menuHeight = this.el.nativeElement.offsetHeight;
37
- const heightMoreWindowBottom = menuHeight + this.drDropdownPosition.y > window.innerHeight;
38
- const heightMoreWindowTop = menuHeight - this.drDropdownPosition.y + this.drDropdownPosition.height / 2 > 48; // header height;
39
- const widthMoreWindowRight = this.drDropdownPosition.x + 250 > window.innerWidth;
40
- const spaceBetweenElAndRightBorder = window.innerWidth - (this.drDropdownPosition.x + this.el.nativeElement.offsetWidth);
41
- this.widthMoreRight = this.drDropdownPosition.x < spaceBetweenElAndRightBorder;
42
- if (heightMoreWindowBottom) {
43
- this.position = 'top';
44
- }
45
- if ((heightMoreWindowBottom && widthMoreWindowRight && !heightMoreWindowTop) || this.position === 'top-left') {
46
- this.position = 'top-left';
47
- const translateX = `calc(-100% + ${this.drDropdownPosition.width}px)`;
48
- const translateY = 'calc(-100% - 8px)';
49
- this.renderer.setStyle(this.el.nativeElement, 'transform', `translate(${translateX}, ${translateY})`);
50
- }
51
- if (heightMoreWindowTop && heightMoreWindowBottom) {
52
- this.position = 'left-center';
53
- }
54
- if (this.position === 'bottom-left') {
55
- this.renderer.setStyle(this.el.nativeElement, 'transform', `translate(calc(-100% + ${this.drDropdownPosition.width}px), ${this.drDropdownPosition.height + 8}px)`);
56
- }
57
- const className = this.position === 'top'
58
- ? 'content-top'
59
- : this.position === 'top-left'
60
- ? 'content-top-left'
61
- : this.position === 'bottom'
62
- ? 'content-bottom'
63
- : this.position === 'bottom-left'
64
- ? 'content-bottom-left'
65
- : this.position === 'left'
66
- ? 'content-left'
67
- : this.position === 'left-center'
68
- ? 'content-left-center'
69
- : this.position === 'right'
70
- ? 'content-right'
71
- : this.position === 'bottom-right'
72
- ? 'content-bottom-right'
73
- : '';
74
- this.renderer.addClass(this.el.nativeElement, className);
75
- this.renderer.setStyle(this.el.nativeElement, 'z-index', '10010');
76
- }
77
- else {
78
- const defaultChildPadding = 3;
79
- const widthMoreWindowRight = originalPosition !== 'child'
80
- ? window.innerWidth - (this.position.clientX - this.el.nativeElement.offsetWidth - defaultPadding)
81
- : window.innerWidth - this.position.clientX - this.el.nativeElement.offsetWidth - defaultPadding;
82
- const widthMoreWindowBottom = originalPosition !== 'child'
83
- ? window.innerHeight - (this.position.clientY - this.el.nativeElement.offsetHeight - defaultPadding)
84
- : window.innerHeight - this.position.clientY - this.el.nativeElement.offsetHeight - defaultPadding;
85
- const spaceRightAmount = window.innerWidth - (this.position.clientX + this.el.nativeElement.offsetWidth + defaultPadding);
86
- this.widthMoreRight = !(widthMoreWindowRight < 0);
87
- let calculatedHorizantallyPos = widthMoreWindowRight < 0
88
- ? -this.position.x + -defaultChildPadding
89
- : this.position.x + defaultChildPadding + xDifference;
90
- if (spaceRightAmount <= 0 && originalPosition !== 'child') {
91
- calculatedHorizantallyPos -= this.el.nativeElement.offsetWidth;
92
- }
93
- const deltaHeight = widthMoreWindowBottom < 0 ? widthMoreWindowBottom : defaultDelta;
94
- this.renderer.setStyle(this.el.nativeElement, 'top', this.position.y + deltaHeight + 'px');
95
- this.renderer.setStyle(this.el.nativeElement, 'left', calculatedHorizantallyPos + 'px');
96
- this.renderer.setStyle(this.el.nativeElement, 'z-index', '10010');
97
- }
98
- }
99
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DrDropdownPositionDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
100
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: DrDropdownPositionDirective, selector: "[drDropdownPosition]", inputs: { drDropdownPosition: "drDropdownPosition", position: "position" }, exportAs: ["dropdownPosition"], ngImport: i0 }); }
101
- }
102
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DrDropdownPositionDirective, decorators: [{
103
- type: Directive,
104
- args: [{
105
- selector: '[drDropdownPosition]',
106
- exportAs: 'dropdownPosition',
107
- }]
108
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { drDropdownPosition: [{
109
- type: Input
110
- }], position: [{
111
- type: Input
112
- }] } });
113
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItZHJvcGRvd24tcG9zaXRpb24uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItZHJvcGRvd24vZHItZHJvcGRvd24tcG9zaXRpb24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBVSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBT2hGLE1BQU0sT0FBTywyQkFBMkI7SUFNcEMsWUFDWSxFQUFjLEVBQ2QsUUFBbUI7UUFEbkIsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUNkLGFBQVEsR0FBUixRQUFRLENBQVc7UUFOdEIsYUFBUSxHQUFxQyxNQUFNLENBQUM7SUFPMUQsQ0FBQztJQUVKLFFBQVE7UUFDSixVQUFVLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsaUJBQWlCO1FBQ2IsSUFBSSxXQUFXLEdBQUcsQ0FBQyxDQUFDO1FBQ3BCLElBQUksWUFBWSxHQUFHLEVBQUUsQ0FBQztRQUN0QixJQUFJLGNBQWMsR0FBRyxDQUFDLENBQUM7UUFDdkIsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBRXZDLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxPQUFPLEVBQUU7WUFDM0IsWUFBWSxHQUFHLENBQUMsQ0FBQztZQUNqQixjQUFjLEdBQUcsRUFBRSxDQUFDO1lBQ3BCLFdBQVcsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUM7WUFDaEgsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLEVB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QUFRLEVBQUUsa0JBQWtCO2lCQUMvQjt5SEFFWSxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5wdXQsIE9uSW5pdCwgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFbFBvc2l0aW9uLCBJRHJvcGRvd25Db29yZGluYXRlIH0gZnJvbSAnLi4vbW9kZWxzL2Ryb3Bkb3duJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbZHJEcm9wZG93blBvc2l0aW9uXScsXG4gICAgZXhwb3J0QXM6ICdkcm9wZG93blBvc2l0aW9uJyxcbn0pXG5leHBvcnQgY2xhc3MgRHJEcm9wZG93blBvc2l0aW9uRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBASW5wdXQoKSBkckRyb3Bkb3duUG9zaXRpb247XG4gICAgQElucHV0KCkgcG9zaXRpb246IEVsUG9zaXRpb24gfCBJRHJvcGRvd25Db29yZGluYXRlID0gJ2xlZnQnO1xuXG4gICAgd2lkdGhNb3JlUmlnaHQ6IGJvb2xlYW47XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBlbDogRWxlbWVudFJlZixcbiAgICAgICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgICkge31cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBzZXRUaW1lb3V0KHRoaXMuY2FsY3VsYXRlUG9zaXRpb24uYmluZCh0aGlzKSwgMSk7XG4gICAgfVxuXG4gICAgY2FsY3VsYXRlUG9zaXRpb24oKSB7XG4gICAgICAgIGxldCB4RGlmZmVyZW5jZSA9IDA7XG4gICAgICAgIGxldCBkZWZhdWx0RGVsdGEgPSAxMDtcbiAgICAgICAgbGV0IGRlZmF1bHRQYWRkaW5nID0gMDtcbiAgICAgICAgY29uc3Qgb3JpZ2luYWxQb3NpdGlvbiA9IHRoaXMucG9zaXRpb247XG5cbiAgICAgICAgaWYgKHRoaXMucG9zaXRpb24gPT09ICdjaGlsZCcpIHtcbiAgICAgICAgICAgIGRlZmF1bHREZWx0YSA9IDA7XG4gICAgICAgICAgICBkZWZhdWx0UGFkZGluZyA9IDEwO1xuICAgICAgICAgICAgeERpZmZlcmVuY2UgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudC5wYXJlbnRFbGVtZW50Lm9mZnNldFdpZHRoIC0gdGhpcy5lbC5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoO1xuICAgICAgICAgICAgY29uc3QgcGFyZW50UmVjdCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50LnBhcmVudEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICAgICAgICAgIHRoaXMucG9zaXRpb24gPSB7XG4gICAgICAgICAgICAgICAgeDogdGhpcy5lbC5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoLFxuICAgICAgICAgICAgICAgIHk6IHRoaXMuZWwubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50LnBhcmVudEVsZW1lbnQub2Zmc2V0VG9wIC0gOSxcbiAgICAgICAgICAgICAgICBjbGllbnRYOiBwYXJlbnRSZWN0LnggKyB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudC5wYXJlbnRFbGVtZW50Lm9mZnNldFdpZHRoLFxuICAgICAgICAgICAgICAgIGNsaWVudFk6IHBhcmVudFJlY3QueSxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodHlwZW9mIHRoaXMucG9zaXRpb24gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICAgICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICAgICAndG9wJyxcbiAgICAgICAgICAgICAgICB0aGlzLnBvc2l0aW9uID09PSAnYm90dG9tJ1xuICAgICAgICAgICAgICAgICAgICA/IHRoaXMuZHJEcm9wZG93blBvc2l0aW9uLnkgLSB0aGlzLmRyRHJvcGRvd25Qb3NpdGlvbi5oZWlnaHQgKyAncHgnXG4gICAgICAgICAgICAgICAgICAgIDogdGhpcy5kckRyb3Bkb3duUG9zaXRpb24ueSArICdweCcsXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcbiAgICAgICAgICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICAgICAgJ2xlZnQnLFxuICAgICAgICAgICAgICAgIHRoaXMucG9zaXRpb24gPT09ICdyaWdodCdcbiAgICAgICAgICAgICAgICAgICAgPyB0aGlzLmRyRHJvcGRvd25Qb3NpdGlvbi54ICsgdGhpcy5kckRyb3Bkb3duUG9zaXRpb24ud2lkdGggKyAncHgnXG4gICAgICAgICAgICAgICAgICAgIDogdGhpcy5kckRyb3Bkb3duUG9zaXRpb24ueCArICdweCcsXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgY29uc3QgbWVudUhlaWdodCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQ7XG4gICAgICAgICAgICBjb25zdCBoZWlnaHRNb3JlV2luZG93Qm90dG9tID0gbWVudUhlaWdodCArIHRoaXMuZHJEcm9wZG93blBvc2l0aW9uLnkgPiB3aW5kb3cuaW5uZXJIZWlnaHQ7XG4gICAgICAgICAgICBjb25zdCBoZWlnaHRNb3JlV2luZG93VG9wID0gbWVudUhlaWdodCAtIHRoaXMuZHJEcm9wZG93blBvc2l0aW9uLnkgKyB0aGlzLmRyRHJvcGRvd25Qb3NpdGlvbi5oZWlnaHQgLyAyID4gNDg7IC8vIGhlYWRlciBoZWlnaHQ7XG4gICAgICAgICAgICBjb25zdCB3aWR0aE1vcmVXaW5kb3dSaWdodCA9IHRoaXMuZHJEcm9wZG93blBvc2l0aW9uLnggKyAyNTAgPiB3aW5kb3cuaW5uZXJXaWR0aDtcblxuICAgICAgICAgICAgY29uc3Qgc3BhY2VCZXR3ZWVuRWxBbmRSaWdodEJvcmRlciA9XG4gICAgICAgICAgICAgICAgd2luZG93LmlubmVyV2lkdGggLSAodGhpcy5kckRyb3Bkb3duUG9zaXRpb24ueCArIHRoaXMuZWwubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCk7XG4gICAgICAgICAgICB0aGlzLndpZHRoTW9yZVJpZ2h0ID0gdGhpcy5kckRyb3Bkb3duUG9zaXRpb24ueCA8IHNwYWNlQmV0d2VlbkVsQW5kUmlnaHRCb3JkZXI7XG5cbiAgICAgICAgICAgIGlmIChoZWlnaHRNb3JlV2luZG93Qm90dG9tKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wb3NpdGlvbiA9ICd0b3AnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKChoZWlnaHRNb3JlV2luZG93Qm90dG9tICYmIHdpZHRoTW9yZVdpbmRvd1JpZ2h0ICYmICFoZWlnaHRNb3JlV2luZG93VG9wKSB8fCB0aGlzLnBvc2l0aW9uID09PSAndG9wLWxlZnQnKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wb3NpdGlvbiA9ICd0b3AtbGVmdCc7XG4gICAgICAgICAgICAgICAgY29uc3QgdHJhbnNsYXRlWCA9IGBjYWxjKC0xMDAlICsgJHt0aGlzLmRyRHJvcGRvd25Qb3NpdGlvbi53aWR0aH1weClgO1xuICAgICAgICAgICAgICAgIGNvbnN0IHRyYW5zbGF0ZVkgPSAnY2FsYygtMTAwJSAtIDhweCknO1xuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbC5uYXRpdmVFbGVtZW50LCAndHJhbnNmb3JtJywgYHRyYW5zbGF0ZSgke3RyYW5zbGF0ZVh9LCAke3RyYW5zbGF0ZVl9KWApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGhlaWdodE1vcmVXaW5kb3dUb3AgJiYgaGVpZ2h0TW9yZVdpbmRvd0JvdHRvbSkge1xuICAgICAgICAgICAgICAgIHRoaXMucG9zaXRpb24gPSAnbGVmdC1jZW50ZXInO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMucG9zaXRpb24gPT09ICdib3R0b20tbGVmdCcpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICAgICAgICAgICd0cmFuc2Zvcm0nLFxuICAgICAgICAgICAgICAgICAgICBgdHJhbnNsYXRlKGNhbGMoLTEwMCUgKyAke3RoaXMuZHJEcm9wZG93blBvc2l0aW9uLndpZHRofXB4KSwgJHt0aGlzLmRyRHJvcGRvd25Qb3NpdGlvbi5oZWlnaHQgKyA4fXB4KWAsXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGNsYXNzTmFtZSA9XG4gICAgICAgICAgICAgICAgdGhpcy5wb3NpdGlvbiA9PT0gJ3RvcCdcbiAgICAgICAgICAgICAgICAgICAgPyAnY29udGVudC10b3AnXG4gICAgICAgICAgICAgICAgICAgIDogdGhpcy5wb3NpdGlvbiA9PT0gJ3RvcC1sZWZ0J1xuICAgICAgICAgICAgICAgICAgICAgID8gJ2NvbnRlbnQtdG9wLWxlZnQnXG4gICAgICAgICAgICAgICAgICAgICAgOiB0aGlzLnBvc2l0aW9uID09PSAnYm90dG9tJ1xuICAgICAgICAgICAgICAgICAgICAgICAgPyAnY29udGVudC1ib3R0b20nXG4gICAgICAgICAgICAgICAgICAgICAgICA6IHRoaXMucG9zaXRpb24gPT09ICdib3R0b20tbGVmdCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPyAnY29udGVudC1ib3R0b20tbGVmdCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0aGlzLnBvc2l0aW9uID09PSAnbGVmdCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICdjb250ZW50LWxlZnQnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0aGlzLnBvc2l0aW9uID09PSAnbGVmdC1jZW50ZXInXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICdjb250ZW50LWxlZnQtY2VudGVyJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0aGlzLnBvc2l0aW9uID09PSAncmlnaHQnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gJ2NvbnRlbnQtcmlnaHQnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogdGhpcy5wb3NpdGlvbiA9PT0gJ2JvdHRvbS1yaWdodCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICdjb250ZW50LWJvdHRvbS1yaWdodCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICcnO1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsIGNsYXNzTmFtZSk7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgJ3otaW5kZXgnLCAnMTAwMTAnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGRlZmF1bHRDaGlsZFBhZGRpbmcgPSAzO1xuICAgICAgICAgICAgY29uc3Qgd2lkdGhNb3JlV2luZG93UmlnaHQgPVxuICAgICAgICAgICAgICAgIG9yaWdpbmFsUG9zaXRpb24gIT09ICdjaGlsZCdcbiAgICAgICAgICAgICAgICAgICAgPyB3aW5kb3cuaW5uZXJXaWR0aCAtICh0aGlzLnBvc2l0aW9uLmNsaWVudFggLSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGggLSBkZWZhdWx0UGFkZGluZylcbiAgICAgICAgICAgICAgICAgICAgOiB3aW5kb3cuaW5uZXJXaWR0aCAtIHRoaXMucG9zaXRpb24uY2xpZW50WCAtIHRoaXMuZWwubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCAtIGRlZmF1bHRQYWRkaW5nO1xuXG4gICAgICAgICAgICBjb25zdCB3aWR0aE1vcmVXaW5kb3dCb3R0b20gPVxuICAgICAgICAgICAgICAgIG9yaWdpbmFsUG9zaXRpb24gIT09ICdjaGlsZCdcbiAgICAgICAgICAgICAgICAgICAgPyB3aW5kb3cuaW5uZXJIZWlnaHQgLSAodGhpcy5wb3NpdGlvbi5jbGllbnRZIC0gdGhpcy5lbC5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodCAtIGRlZmF1bHRQYWRkaW5nKVxuICAgICAgICAgICAgICAgICAgICA6IHdpbmRvdy5pbm5lckhlaWdodCAtIHRoaXMucG9zaXRpb24uY2xpZW50WSAtIHRoaXMuZWwubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQgLSBkZWZhdWx0UGFkZGluZztcblxuICAgICAgICAgICAgY29uc3Qgc3BhY2VSaWdodEFtb3VudCA9XG4gICAgICAgICAgICAgICAgd2luZG93LmlubmVyV2lkdGggLSAodGhpcy5wb3NpdGlvbi5jbGllbnRYICsgdGhpcy5lbC5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoICsgZGVmYXVsdFBhZGRpbmcpO1xuICAgICAgICAgICAgdGhpcy53aWR0aE1vcmVSaWdodCA9ICEod2lkdGhNb3JlV2luZG93UmlnaHQgPCAwKTtcblxuICAgICAgICAgICAgbGV0IGNhbGN1bGF0ZWRIb3JpemFudGFsbHlQb3MgPVxuICAgICAgICAgICAgICAgIHdpZHRoTW9yZVdpbmRvd1JpZ2h0IDwgMFxuICAgICAgICAgICAgICAgICAgICA/IC10aGlzLnBvc2l0aW9uLnggKyAtZGVmYXVsdENoaWxkUGFkZGluZ1xuICAgICAgICAgICAgICAgICAgICA6IHRoaXMucG9zaXRpb24ueCArIGRlZmF1bHRDaGlsZFBhZGRpbmcgKyB4RGlmZmVyZW5jZTtcblxuICAgICAgICAgICAgaWYgKHNwYWNlUmlnaHRBbW91bnQgPD0gMCAmJiBvcmlnaW5hbFBvc2l0aW9uICE9PSAnY2hpbGQnKSB7XG4gICAgICAgICAgICAgICAgY2FsY3VsYXRlZEhvcml6YW50YWxseVBvcyAtPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IGRlbHRhSGVpZ2h0ID0gd2lkdGhNb3JlV2luZG93Qm90dG9tIDwgMCA/IHdpZHRoTW9yZVdpbmRvd0JvdHRvbSA6IGRlZmF1bHREZWx0YTtcblxuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsICd0b3AnLCB0aGlzLnBvc2l0aW9uLnkgKyBkZWx0YUhlaWdodCArICdweCcpO1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsICdsZWZ0JywgY2FsY3VsYXRlZEhvcml6YW50YWxseVBvcyArICdweCcpO1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsICd6LWluZGV4JywgJzEwMDEwJyk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
@@ -1,15 +0,0 @@
1
- import { ElementRef, OnInit, Renderer2 } from '@angular/core';
2
- import { ElPosition, IDropdownCoordinate } from '../models/dropdown';
3
- import * as i0 from "@angular/core";
4
- export declare class DrDropdownPositionDirective implements OnInit {
5
- private el;
6
- private renderer;
7
- drDropdownPosition: any;
8
- position: ElPosition | IDropdownCoordinate;
9
- widthMoreRight: boolean;
10
- constructor(el: ElementRef, renderer: Renderer2);
11
- ngOnInit(): void;
12
- calculatePosition(): void;
13
- static ɵfac: i0.ɵɵFactoryDeclaration<DrDropdownPositionDirective, never>;
14
- static ɵdir: i0.ɵɵDirectiveDeclaration<DrDropdownPositionDirective, "[drDropdownPosition]", ["dropdownPosition"], { "drDropdownPosition": { "alias": "drDropdownPosition"; "required": false; }; "position": { "alias": "position"; "required": false; }; }, {}, never, never, false, never>;
15
- }