@clr/angular 18.0.0-beta.1 → 18.0.0-beta.2

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 (76) hide show
  1. package/fesm2022/clr-angular-button.mjs +2 -2
  2. package/fesm2022/clr-angular-button.mjs.map +1 -1
  3. package/fesm2022/clr-angular-data-datagrid.mjs +12 -26
  4. package/fesm2022/clr-angular-data-datagrid.mjs.map +1 -1
  5. package/fesm2022/clr-angular-data-tree-view.mjs +2 -2
  6. package/fesm2022/clr-angular-data-tree-view.mjs.map +1 -1
  7. package/fesm2022/clr-angular-data.mjs +13 -27
  8. package/fesm2022/clr-angular-data.mjs.map +1 -1
  9. package/fesm2022/clr-angular-emphasis-alert.mjs +2 -2
  10. package/fesm2022/clr-angular-emphasis-alert.mjs.map +1 -1
  11. package/fesm2022/clr-angular-emphasis.mjs +2 -2
  12. package/fesm2022/clr-angular-emphasis.mjs.map +1 -1
  13. package/fesm2022/clr-angular-forms-checkbox.mjs +13 -44
  14. package/fesm2022/clr-angular-forms-checkbox.mjs.map +1 -1
  15. package/fesm2022/clr-angular-forms-combobox.mjs +94 -61
  16. package/fesm2022/clr-angular-forms-combobox.mjs.map +1 -1
  17. package/fesm2022/clr-angular-forms-common.mjs +61 -58
  18. package/fesm2022/clr-angular-forms-common.mjs.map +1 -1
  19. package/fesm2022/clr-angular-forms-datalist.mjs +2 -14
  20. package/fesm2022/clr-angular-forms-datalist.mjs.map +1 -1
  21. package/fesm2022/clr-angular-forms-datepicker.mjs +16 -24
  22. package/fesm2022/clr-angular-forms-datepicker.mjs.map +1 -1
  23. package/fesm2022/clr-angular-forms-file-input.mjs +72 -55
  24. package/fesm2022/clr-angular-forms-file-input.mjs.map +1 -1
  25. package/fesm2022/clr-angular-forms-input.mjs +4 -18
  26. package/fesm2022/clr-angular-forms-input.mjs.map +1 -1
  27. package/fesm2022/clr-angular-forms-number-input.mjs +2 -14
  28. package/fesm2022/clr-angular-forms-number-input.mjs.map +1 -1
  29. package/fesm2022/clr-angular-forms-password.mjs +2 -14
  30. package/fesm2022/clr-angular-forms-password.mjs.map +1 -1
  31. package/fesm2022/clr-angular-forms-radio.mjs +13 -44
  32. package/fesm2022/clr-angular-forms-radio.mjs.map +1 -1
  33. package/fesm2022/clr-angular-forms-range.mjs +3 -16
  34. package/fesm2022/clr-angular-forms-range.mjs.map +1 -1
  35. package/fesm2022/clr-angular-forms-select.mjs +3 -16
  36. package/fesm2022/clr-angular-forms-select.mjs.map +1 -1
  37. package/fesm2022/clr-angular-forms-textarea.mjs +4 -17
  38. package/fesm2022/clr-angular-forms-textarea.mjs.map +1 -1
  39. package/fesm2022/clr-angular-forms.mjs +258 -358
  40. package/fesm2022/clr-angular-forms.mjs.map +1 -1
  41. package/fesm2022/clr-angular-modal.mjs +2 -2
  42. package/fesm2022/clr-angular-modal.mjs.map +1 -1
  43. package/fesm2022/clr-angular-popover-common.mjs +151 -85
  44. package/fesm2022/clr-angular-popover-common.mjs.map +1 -1
  45. package/fesm2022/clr-angular-popover-dropdown.mjs +7 -4
  46. package/fesm2022/clr-angular-popover-dropdown.mjs.map +1 -1
  47. package/fesm2022/clr-angular-popover-signpost.mjs +27 -12
  48. package/fesm2022/clr-angular-popover-signpost.mjs.map +1 -1
  49. package/fesm2022/clr-angular-popover-tooltip.mjs +4 -4
  50. package/fesm2022/clr-angular-popover-tooltip.mjs.map +1 -1
  51. package/fesm2022/clr-angular-popover.mjs +186 -102
  52. package/fesm2022/clr-angular-popover.mjs.map +1 -1
  53. package/fesm2022/clr-angular-stepper.mjs +4 -4
  54. package/fesm2022/clr-angular-stepper.mjs.map +1 -1
  55. package/fesm2022/clr-angular-utils.mjs +12 -47
  56. package/fesm2022/clr-angular-utils.mjs.map +1 -1
  57. package/fesm2022/clr-angular-wizard.mjs +19 -11
  58. package/fesm2022/clr-angular-wizard.mjs.map +1 -1
  59. package/fesm2022/clr-angular.mjs +491 -548
  60. package/fesm2022/clr-angular.mjs.map +1 -1
  61. package/package.json +2 -2
  62. package/popover/common/README.md +14 -12
  63. package/types/clr-angular-data-datagrid.d.ts +0 -10
  64. package/types/clr-angular-data.d.ts +0 -10
  65. package/types/clr-angular-forms-combobox.d.ts +11 -4
  66. package/types/clr-angular-forms-common.d.ts +9 -9
  67. package/types/clr-angular-forms-datepicker.d.ts +7 -0
  68. package/types/clr-angular-forms-file-input.d.ts +5 -2
  69. package/types/clr-angular-forms.d.ts +31 -15
  70. package/types/clr-angular-popover-common.d.ts +38 -13
  71. package/types/clr-angular-popover-dropdown.d.ts +2 -1
  72. package/types/clr-angular-popover-signpost.d.ts +14 -6
  73. package/types/clr-angular-popover.d.ts +52 -18
  74. package/types/clr-angular-utils.d.ts +4 -14
  75. package/types/clr-angular-wizard.d.ts +7 -4
  76. package/types/clr-angular.d.ts +91 -59
package/package.json CHANGED
@@ -21,7 +21,7 @@
21
21
  "@angular/cdk": "^21",
22
22
  "@angular/common": "^21",
23
23
  "@angular/core": "^21",
24
- "@clr/ui": "18.0.0-beta.1"
24
+ "@clr/ui": "18.0.0-beta.2"
25
25
  },
26
26
  "module": "fesm2022/clr-angular.mjs",
27
27
  "typings": "types/clr-angular.d.ts",
@@ -226,5 +226,5 @@
226
226
  "dependencies": {
227
227
  "tslib": "^2.3.0"
228
228
  },
229
- "version": "18.0.0-beta.1"
229
+ "version": "18.0.0-beta.2"
230
230
  }
@@ -25,10 +25,12 @@ The service is responsible for:
25
25
  - **`toggleWithEvent(event: any)`**: A helper method used by triggers. It toggles the `open` state, stores the triggering event (to prevent conflicts like "click outside" closing immediately), and prevents default scrolling behavior for arrow keys.
26
26
  - **`openEvent`**: Stores the specific browser event that triggered the opening of the popover.
27
27
 
28
- - **Focus & Anchor Management**:
29
- - **`anchorElementRef`**: Holds the `ElementRef` of the anchor/trigger element. This is used by the CDK to calculate where the overlay should appear.
28
+ - **Focus & Origin Management**:
29
+ - **`origin`**: Holds the `FlexibleConnectedPositionStrategyOrigin` — either an `ElementRef` (trigger element) or a `ClrPopoverPoint` (`{ x, y }` coordinate). This is used by the CDK to calculate where the overlay should appear.
30
+ - **`originElement`**: Convenience getter that returns the origin as `ElementRef<HTMLElement>` when element-based, or `null` when point-based.
31
+ - **`originPoint`**: Convenience getter that returns the origin as `ClrPopoverPoint` when point-based, or `null` when element-based.
30
32
  - **`closeButtonRef`**: Holds the `ElementRef` of the internal close button (if applicable).
31
- - **`focusAnchor()`**: A utility method to return focus to the anchor element (e.g., when the menu closes), ensuring accessibility compliance.
33
+ - **`focusOrigin()`**: A utility method to return focus to the origin element (e.g., when the menu closes), ensuring accessibility compliance. No-op for point-based origins.
32
34
  - **`focusCloseButton()`**: Moves focus to the close button inside the content when appropriate.
33
35
 
34
36
  - **Reactive Streams**:
@@ -38,10 +40,10 @@ The service is responsible for:
38
40
 
39
41
  ### Directives
40
42
 
41
- 1. **`[clrPopoverAnchor]`**:
43
+ 1. **`[clrPopoverOrigin]`**:
42
44
 
43
- - Used on the element that serves as the reference point for positioning (the anchor).
44
- - Passes an `ElementRef` to the service, which is used for focus management and positioning calculations.
45
+ - Used on the element that serves as the reference point for positioning.
46
+ - Passes an `ElementRef` to the service as the `origin`, which is used for focus management and positioning calculations.
45
47
 
46
48
  2. **`*clrPopoverContent`**:
47
49
 
@@ -52,7 +54,7 @@ The service is responsible for:
52
54
  3. **`[clrPopoverCloseButton]`**:
53
55
 
54
56
  - Should only be used inside popover content containers.
55
- - Calls the toggle method on the service and restores focus to the anchor element.
57
+ - Calls the toggle method on the service and restores focus to the origin element.
56
58
 
57
59
  4. **`[clrPopoverOpenCloseButton]`**:
58
60
 
@@ -66,7 +68,7 @@ The `*clrPopoverContent` directive is the "workhorse" of the utility. It accepts
66
68
  - **`clrPopoverContent`** (boolean):
67
69
  - Controls the open/closed state of the popover. When true, the overlay is created and attached; when false, it is detached.
68
70
  - **`clrPopoverContentAt`** (`ClrPopoverPosition | ConnectedPosition`):
69
- - Defines the preferred position of the content relative to the anchor (e.g., `top-right`, `bottom-left`). It sets the `preferredPosition` for the CDK overlay.
71
+ - Defines the preferred position of the content relative to the origin (e.g., `top-right`, `bottom-left`). It sets the `preferredPosition` for the CDK overlay.
70
72
  - **`clrPopoverContentAvailablePositions`** (`ConnectedPosition[]`):
71
73
  - A prioritized list of fallback positions the overlay can attempt to use if the preferred position does not fit within the viewport.
72
74
  - **`clrPopoverContentType`** (`ClrPopoverType`):
@@ -79,8 +81,8 @@ The `*clrPopoverContent` directive is the "workhorse" of the utility. It accepts
79
81
  ## Enums
80
82
 
81
83
  1. **`ClrPopoverType`**: Describes the popover variation: `SIGNPOST`, `TOOLTIP`, `DROPDOWN`, and `DEFAULT`.
82
- 2. **`ClrPopoverPosition`**: Describes the popover position relative to the anchor (e.g., `top-left`, `bottom-right`).
83
- 3. **`ClrPosition`**: Describes the specific point of contact on both the anchor and content elements.
84
+ 2. **`ClrPopoverPosition`**: Describes the popover position relative to the origin (e.g., `top-left`, `bottom-right`).
85
+ 3. **`ClrPosition`**: Describes the specific point of contact on both the origin and content elements.
84
86
 
85
87
  ---
86
88
 
@@ -89,8 +91,8 @@ The `*clrPopoverContent` directive is the "workhorse" of the utility. It accepts
89
91
  To use the popover utility, a host component must provide the `ClrPopoverService`. Components generally provide a `ClrPopoverPosition` via the `at` input to describe the preferred content position.
90
92
 
91
93
  ```html
92
- <button class="btn" clrPopoverOpenCloseButton clrPopoverAnchor [attr.aria-owns]="popoverId">
93
- <cds-icon shape="home"></cds-icon> Popover Anchor
94
+ <button class="btn" clrPopoverOpenCloseButton clrPopoverOrigin [attr.aria-owns]="popoverId">
95
+ <cds-icon shape="home"></cds-icon> Popover Origin
94
96
  </button>
95
97
  <div
96
98
  [id]="popoverId"
@@ -1751,16 +1751,6 @@ declare class DatagridMainRenderer implements AfterContentInit, AfterViewInit, A
1751
1751
  toggleDetailPane(state: boolean): void;
1752
1752
  private setupColumns;
1753
1753
  private shouldComputeHeight;
1754
- /**
1755
- * Computes the height of the datagrid.
1756
- *
1757
- * NOTE: We had to choose to set the height instead of the min-height because
1758
- * IE 11 requires the height on the parent for the children flex grow/shrink properties to work.
1759
- * When we used min-height, 1 1 auto doesn't used to work in IE11 :-(
1760
- * But this doesn't affect the fix. It works in both fixed & variable height datagrids.
1761
- *
1762
- * Refer: http://stackoverflow.com/questions/24396205/flex-grow-not-working-in-internet-explorer-11-0
1763
- */
1764
1754
  private computeDatagridHeight;
1765
1755
  private resetDatagridHeight;
1766
1756
  /**
@@ -1760,16 +1760,6 @@ declare class DatagridMainRenderer implements AfterContentInit, AfterViewInit, A
1760
1760
  toggleDetailPane(state: boolean): void;
1761
1761
  private setupColumns;
1762
1762
  private shouldComputeHeight;
1763
- /**
1764
- * Computes the height of the datagrid.
1765
- *
1766
- * NOTE: We had to choose to set the height instead of the min-height because
1767
- * IE 11 requires the height on the parent for the children flex grow/shrink properties to work.
1768
- * When we used min-height, 1 1 auto doesn't used to work in IE11 :-(
1769
- * But this doesn't affect the fix. It works in both fixed & variable height datagrids.
1770
- *
1771
- * Refer: http://stackoverflow.com/questions/24396205/flex-grow-not-working-in-internet-explorer-11-0
1772
- */
1773
1763
  private computeDatagridHeight;
1774
1764
  private resetDatagridHeight;
1775
1765
  /**
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { AfterContentInit, AfterViewInit, ElementRef, TemplateRef, ChangeDetectorRef, RendererFactory2, Renderer2, EventEmitter, ViewContainerRef, Injector, OnInit, OnDestroy, QueryList, DoCheck, IterableDiffers, TrackByFunction } from '@angular/core';
2
+ import { AfterContentInit, AfterViewInit, ElementRef, TemplateRef, RendererFactory2, Renderer2, EventEmitter, ViewContainerRef, Injector, ChangeDetectorRef, OnInit, OnDestroy, QueryList, DoCheck, IterableDiffers, TrackByFunction } from '@angular/core';
3
3
  import * as rxjs from 'rxjs';
4
4
  import { Observable } from 'rxjs';
5
5
  import * as i9 from '@angular/forms';
@@ -33,9 +33,11 @@ declare class ClrComboboxContainer extends ClrAbstractContainer implements After
33
33
  static ɵcmp: i0.ɵɵComponentDeclaration<ClrComboboxContainer, "clr-combobox-container", never, {}, {}, never, ["label", "clr-combobox", "clr-control-helper", "clr-control-error", "clr-control-success"], false, never>;
34
34
  }
35
35
 
36
+ type ClrComboboxIdentityFunction<T> = (item: T) => any;
36
37
  declare abstract class ComboboxModel<T> {
37
38
  model: T | T[];
38
39
  displayField?: string;
40
+ identityFn: ClrComboboxIdentityFunction<T>;
39
41
  abstract containsItem(item: T): boolean;
40
42
  abstract select(item: T): void;
41
43
  abstract unselect(item: T): void;
@@ -74,16 +76,20 @@ declare class OptionSelectionService<T> {
74
76
  set currentInput(input: string);
75
77
  get selectionChanged(): Observable<ComboboxModel<T>>;
76
78
  get multiselectable(): boolean;
79
+ get identityFn(): ClrComboboxIdentityFunction<T>;
80
+ set identityFn(value: ClrComboboxIdentityFunction<T>);
77
81
  select(item: T): void;
78
82
  toggle(item: T): void;
79
83
  unselect(item: T): void;
80
84
  setSelectionValue(value: T | T[]): void;
81
85
  parseStringToModel(value: string): T;
86
+ private _identityFn;
87
+ private valuesEqualByIdentity;
82
88
  static ɵfac: i0.ɵɵFactoryDeclaration<OptionSelectionService<any>, never>;
83
89
  static ɵprov: i0.ɵɵInjectableDeclaration<OptionSelectionService<any>>;
84
90
  }
85
91
 
86
- declare class SingleSelectComboboxModel<T> implements ComboboxModel<T> {
92
+ declare class SingleSelectComboboxModel<T> extends ComboboxModel<T> {
87
93
  model: T;
88
94
  containsItem(item: T): boolean;
89
95
  select(item: T): void;
@@ -103,7 +109,6 @@ declare class ComboboxFocusHandler<T> {
103
109
  private popoverService;
104
110
  private selectionService;
105
111
  private platformId;
106
- componentCdRef: ChangeDetectorRef;
107
112
  pseudoFocus: PseudoFocusModel<OptionData<T>>;
108
113
  private renderer;
109
114
  private _trigger;
@@ -171,6 +176,7 @@ declare class ClrCombobox<T> extends WrappedFormControl<ClrComboboxContainer> im
171
176
  constructor(vcr: ViewContainerRef, injector: Injector, control: NgControl, renderer: Renderer2, el: ElementRef<HTMLElement>, optionSelectionService: OptionSelectionService<T>, commonStrings: ClrCommonStringsService, popoverService: ClrPopoverService, containerService: ComboboxContainerService, platformId: any, focusHandler: ComboboxFocusHandler<T>, cdr: ChangeDetectorRef);
172
177
  get editable(): boolean;
173
178
  set editable(value: boolean);
179
+ set identityFn(value: ClrComboboxIdentityFunction<T>);
174
180
  get multiSelect(): boolean | string;
175
181
  set multiSelect(value: boolean | string);
176
182
  get id(): string;
@@ -206,7 +212,7 @@ declare class ClrCombobox<T> extends WrappedFormControl<ClrComboboxContainer> im
206
212
  private updateControlValue;
207
213
  private getDisplayNames;
208
214
  static ɵfac: i0.ɵɵFactoryDeclaration<ClrCombobox<any>, [null, null, { optional: true; self: true; }, null, null, null, null, null, { optional: true; }, null, null, null]>;
209
- static ɵcmp: i0.ɵɵComponentDeclaration<ClrCombobox<any>, "clr-combobox", never, { "placeholder": { "alias": "placeholder"; "required": false; }; "editable": { "alias": "clrEditable"; "required": false; }; "multiSelect": { "alias": "clrMulti"; "required": false; }; }, { "clrInputChange": "clrInputChange"; "clrOpenChange": "clrOpenChange"; "clrSelectionChange": "clrSelectionChange"; }, ["optionSelected", "options"], ["*"], false, [{ directive: typeof i1.ClrPopoverHostDirective; inputs: {}; outputs: {}; }]>;
215
+ static ɵcmp: i0.ɵɵComponentDeclaration<ClrCombobox<any>, "clr-combobox", never, { "placeholder": { "alias": "placeholder"; "required": false; }; "editable": { "alias": "clrEditable"; "required": false; }; "identityFn": { "alias": "clrComboboxIdentityFn"; "required": false; }; "multiSelect": { "alias": "clrMulti"; "required": false; }; }, { "clrInputChange": "clrInputChange"; "clrOpenChange": "clrOpenChange"; "clrSelectionChange": "clrSelectionChange"; }, ["optionSelected", "options"], ["*"], false, [{ directive: typeof i1.ClrPopoverHostDirective; inputs: {}; outputs: {}; }]>;
210
216
  }
211
217
 
212
218
  declare class ClrOption<T> implements OnInit {
@@ -298,3 +304,4 @@ declare class ClrComboboxModule {
298
304
  }
299
305
 
300
306
  export { ClrCombobox, ClrComboboxContainer, ClrComboboxModule, ClrOption, ClrOptionGroup, ClrOptionItems, ClrOptionSelected, ClrOptions };
307
+ export type { ClrComboboxIdentityFunction };
@@ -63,6 +63,15 @@ declare class ClrControlHelper extends ClrAbstractControl {
63
63
  static ɵcmp: i0.ɵɵComponentDeclaration<ClrControlHelper, "clr-control-helper", never, {}, {}, never, ["*"], false, never>;
64
64
  }
65
65
 
66
+ declare class ClrControlSuccess extends ClrAbstractControl {
67
+ protected controlIdService: ControlIdService;
68
+ protected containerIdService: ContainerIdService;
69
+ controlIdSuffix: string;
70
+ constructor(controlIdService: ControlIdService, containerIdService: ContainerIdService);
71
+ static ɵfac: i0.ɵɵFactoryDeclaration<ClrControlSuccess, [{ optional: true; }, { optional: true; }]>;
72
+ static ɵcmp: i0.ɵɵComponentDeclaration<ClrControlSuccess, "clr-control-success", never, {}, {}, never, ["*"], false, never>;
73
+ }
74
+
66
75
  declare enum ClrFormLayout {
67
76
  VERTICAL = "vertical",
68
77
  HORIZONTAL = "horizontal",
@@ -143,15 +152,6 @@ declare class ControlClassService {
143
152
  static ɵprov: i0.ɵɵInjectableDeclaration<ControlClassService>;
144
153
  }
145
154
 
146
- declare class ClrControlSuccess extends ClrAbstractControl {
147
- protected controlIdService: ControlIdService;
148
- protected containerIdService: ContainerIdService;
149
- controlIdSuffix: string;
150
- constructor(controlIdService: ControlIdService, containerIdService: ContainerIdService);
151
- static ɵfac: i0.ɵɵFactoryDeclaration<ClrControlSuccess, [{ optional: true; }, { optional: true; }]>;
152
- static ɵcmp: i0.ɵɵComponentDeclaration<ClrControlSuccess, "clr-control-success", never, {}, {}, never, ["*"], false, never>;
153
- }
154
-
155
155
  declare abstract class ClrAbstractContainer implements OnDestroy {
156
156
  protected layoutService: LayoutService;
157
157
  protected controlClassService: ControlClassService;
@@ -121,6 +121,13 @@ interface DateRangeOption {
121
121
  }
122
122
 
123
123
  declare class DateIOService {
124
+ /**
125
+ * This is the default range. It approximates the beginning of time to the end of time.
126
+ * The disabled dates are the dates that are not allowed to be selected.
127
+ * The min date is the earliest date that can be selected.
128
+ * The max date is the latest date that can be selected.
129
+ * Unless a minDate or maxDate is set with the native HTML5 api the range is all dates
130
+ */
124
131
  disabledDates: DateRange;
125
132
  cldrLocaleDateFormat: string;
126
133
  minDateChange: Subject<DayModel>;
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { TemplateRef, ElementRef, Injector, Renderer2, ViewContainerRef, InjectionToken } from '@angular/core';
2
+ import { TemplateRef, Injector, ElementRef, Renderer2, ViewContainerRef, InjectionToken } from '@angular/core';
3
3
  import { NgControl, Validator, AbstractControl, ValidationErrors, ControlValueAccessor } from '@angular/forms';
4
4
  import * as i10 from '@clr/angular/forms/common';
5
5
  import { ClrAbstractContainer, WrappedFormControl } from '@clr/angular/forms/common';
@@ -79,6 +79,8 @@ declare class ClrFileMessagesTemplate {
79
79
 
80
80
  declare class ClrFileList {
81
81
  protected readonly fileMessagesTemplate: ClrFileMessagesTemplate;
82
+ protected injectorCache: Map<File, Injector>;
83
+ private contextCache;
82
84
  private readonly injector;
83
85
  private readonly commonStrings;
84
86
  private readonly ngControlService;
@@ -88,7 +90,8 @@ declare class ClrFileList {
88
90
  protected getClearFileLabel(filename: string): string;
89
91
  protected clearFile(fileToRemove: File): void;
90
92
  protected createFileMessagesTemplateContext(file: File): ClrFileMessagesTemplateContext;
91
- protected createFileMessagesTemplateInjector(fileMessagesTemplateContext: ClrFileMessagesTemplateContext): i0.DestroyableInjector;
93
+ private createFileMessagesTemplateInjector;
94
+ private errorsEqual;
92
95
  static ɵfac: i0.ɵɵFactoryDeclaration<ClrFileList, never>;
93
96
  static ɵcmp: i0.ɵɵComponentDeclaration<ClrFileList, "clr-file-list", never, {}, {}, ["fileMessagesTemplate"], never, false, never>;
94
97
  }
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { OnInit, OnDestroy, Renderer2, ElementRef, TemplateRef, ViewContainerRef, QueryList, DoCheck, Type, Injector, InjectionToken, AfterContentInit, AfterViewInit, ChangeDetectorRef, RendererFactory2, EventEmitter, IterableDiffers, TrackByFunction, NgZone } from '@angular/core';
2
+ import { OnInit, OnDestroy, Renderer2, ElementRef, TemplateRef, ViewContainerRef, QueryList, DoCheck, Type, Injector, InjectionToken, AfterContentInit, AfterViewInit, RendererFactory2, EventEmitter, ChangeDetectorRef, IterableDiffers, TrackByFunction, NgZone } from '@angular/core';
3
3
  import * as i4 from '@angular/forms';
4
4
  import { NgControl, ControlValueAccessor, Validator, AbstractControl, ValidationErrors, SelectMultipleControlValueAccessor } from '@angular/forms';
5
5
  import * as rxjs from 'rxjs';
@@ -86,6 +86,15 @@ declare class ClrControlHelper extends ClrAbstractControl {
86
86
  static ɵcmp: i0.ɵɵComponentDeclaration<ClrControlHelper, "clr-control-helper", never, {}, {}, never, ["*"], false, never>;
87
87
  }
88
88
 
89
+ declare class ClrControlSuccess extends ClrAbstractControl {
90
+ protected controlIdService: ControlIdService;
91
+ protected containerIdService: ContainerIdService;
92
+ controlIdSuffix: string;
93
+ constructor(controlIdService: ControlIdService, containerIdService: ContainerIdService);
94
+ static ɵfac: i0.ɵɵFactoryDeclaration<ClrControlSuccess, [{ optional: true; }, { optional: true; }]>;
95
+ static ɵcmp: i0.ɵɵComponentDeclaration<ClrControlSuccess, "clr-control-success", never, {}, {}, never, ["*"], false, never>;
96
+ }
97
+
89
98
  declare enum ClrFormLayout {
90
99
  VERTICAL = "vertical",
91
100
  HORIZONTAL = "horizontal",
@@ -166,15 +175,6 @@ declare class ControlClassService {
166
175
  static ɵprov: i0.ɵɵInjectableDeclaration<ControlClassService>;
167
176
  }
168
177
 
169
- declare class ClrControlSuccess extends ClrAbstractControl {
170
- protected controlIdService: ControlIdService;
171
- protected containerIdService: ContainerIdService;
172
- controlIdSuffix: string;
173
- constructor(controlIdService: ControlIdService, containerIdService: ContainerIdService);
174
- static ɵfac: i0.ɵɵFactoryDeclaration<ClrControlSuccess, [{ optional: true; }, { optional: true; }]>;
175
- static ɵcmp: i0.ɵɵComponentDeclaration<ClrControlSuccess, "clr-control-success", never, {}, {}, never, ["*"], false, never>;
176
- }
177
-
178
178
  declare abstract class ClrAbstractContainer implements OnDestroy {
179
179
  protected layoutService: LayoutService;
180
180
  protected controlClassService: ControlClassService;
@@ -431,9 +431,11 @@ declare class ClrComboboxContainer extends ClrAbstractContainer$1 implements Aft
431
431
  static ɵcmp: i0.ɵɵComponentDeclaration<ClrComboboxContainer, "clr-combobox-container", never, {}, {}, never, ["label", "clr-combobox", "clr-control-helper", "clr-control-error", "clr-control-success"], false, never>;
432
432
  }
433
433
 
434
+ type ClrComboboxIdentityFunction<T> = (item: T) => any;
434
435
  declare abstract class ComboboxModel<T> {
435
436
  model: T | T[];
436
437
  displayField?: string;
438
+ identityFn: ClrComboboxIdentityFunction<T>;
437
439
  abstract containsItem(item: T): boolean;
438
440
  abstract select(item: T): void;
439
441
  abstract unselect(item: T): void;
@@ -472,16 +474,20 @@ declare class OptionSelectionService<T> {
472
474
  set currentInput(input: string);
473
475
  get selectionChanged(): Observable<ComboboxModel<T>>;
474
476
  get multiselectable(): boolean;
477
+ get identityFn(): ClrComboboxIdentityFunction<T>;
478
+ set identityFn(value: ClrComboboxIdentityFunction<T>);
475
479
  select(item: T): void;
476
480
  toggle(item: T): void;
477
481
  unselect(item: T): void;
478
482
  setSelectionValue(value: T | T[]): void;
479
483
  parseStringToModel(value: string): T;
484
+ private _identityFn;
485
+ private valuesEqualByIdentity;
480
486
  static ɵfac: i0.ɵɵFactoryDeclaration<OptionSelectionService<any>, never>;
481
487
  static ɵprov: i0.ɵɵInjectableDeclaration<OptionSelectionService<any>>;
482
488
  }
483
489
 
484
- declare class SingleSelectComboboxModel<T> implements ComboboxModel<T> {
490
+ declare class SingleSelectComboboxModel<T> extends ComboboxModel<T> {
485
491
  model: T;
486
492
  containsItem(item: T): boolean;
487
493
  select(item: T): void;
@@ -501,7 +507,6 @@ declare class ComboboxFocusHandler<T> {
501
507
  private popoverService;
502
508
  private selectionService;
503
509
  private platformId;
504
- componentCdRef: ChangeDetectorRef;
505
510
  pseudoFocus: PseudoFocusModel<OptionData<T>>;
506
511
  private renderer;
507
512
  private _trigger;
@@ -569,6 +574,7 @@ declare class ClrCombobox<T> extends WrappedFormControl$1<ClrComboboxContainer>
569
574
  constructor(vcr: ViewContainerRef, injector: Injector, control: NgControl, renderer: Renderer2, el: ElementRef<HTMLElement>, optionSelectionService: OptionSelectionService<T>, commonStrings: ClrCommonStringsService, popoverService: ClrPopoverService, containerService: ComboboxContainerService, platformId: any, focusHandler: ComboboxFocusHandler<T>, cdr: ChangeDetectorRef);
570
575
  get editable(): boolean;
571
576
  set editable(value: boolean);
577
+ set identityFn(value: ClrComboboxIdentityFunction<T>);
572
578
  get multiSelect(): boolean | string;
573
579
  set multiSelect(value: boolean | string);
574
580
  get id(): string;
@@ -604,7 +610,7 @@ declare class ClrCombobox<T> extends WrappedFormControl$1<ClrComboboxContainer>
604
610
  private updateControlValue;
605
611
  private getDisplayNames;
606
612
  static ɵfac: i0.ɵɵFactoryDeclaration<ClrCombobox<any>, [null, null, { optional: true; self: true; }, null, null, null, null, null, { optional: true; }, null, null, null]>;
607
- static ɵcmp: i0.ɵɵComponentDeclaration<ClrCombobox<any>, "clr-combobox", never, { "placeholder": { "alias": "placeholder"; "required": false; }; "editable": { "alias": "clrEditable"; "required": false; }; "multiSelect": { "alias": "clrMulti"; "required": false; }; }, { "clrInputChange": "clrInputChange"; "clrOpenChange": "clrOpenChange"; "clrSelectionChange": "clrSelectionChange"; }, ["optionSelected", "options"], ["*"], false, [{ directive: typeof i1.ClrPopoverHostDirective; inputs: {}; outputs: {}; }]>;
613
+ static ɵcmp: i0.ɵɵComponentDeclaration<ClrCombobox<any>, "clr-combobox", never, { "placeholder": { "alias": "placeholder"; "required": false; }; "editable": { "alias": "clrEditable"; "required": false; }; "identityFn": { "alias": "clrComboboxIdentityFn"; "required": false; }; "multiSelect": { "alias": "clrMulti"; "required": false; }; }, { "clrInputChange": "clrInputChange"; "clrOpenChange": "clrOpenChange"; "clrSelectionChange": "clrSelectionChange"; }, ["optionSelected", "options"], ["*"], false, [{ directive: typeof i1.ClrPopoverHostDirective; inputs: {}; outputs: {}; }]>;
608
614
  }
609
615
 
610
616
  declare class ClrOption<T> implements OnInit {
@@ -852,6 +858,13 @@ interface DateRangeOption {
852
858
  }
853
859
 
854
860
  declare class DateIOService {
861
+ /**
862
+ * This is the default range. It approximates the beginning of time to the end of time.
863
+ * The disabled dates are the dates that are not allowed to be selected.
864
+ * The min date is the earliest date that can be selected.
865
+ * The max date is the latest date that can be selected.
866
+ * Unless a minDate or maxDate is set with the native HTML5 api the range is all dates
867
+ */
855
868
  disabledDates: DateRange;
856
869
  cldrLocaleDateFormat: string;
857
870
  minDateChange: Subject<DayModel>;
@@ -1751,6 +1764,8 @@ declare class ClrFileMessagesTemplate {
1751
1764
 
1752
1765
  declare class ClrFileList {
1753
1766
  protected readonly fileMessagesTemplate: ClrFileMessagesTemplate;
1767
+ protected injectorCache: Map<File, Injector>;
1768
+ private contextCache;
1754
1769
  private readonly injector;
1755
1770
  private readonly commonStrings;
1756
1771
  private readonly ngControlService;
@@ -1760,7 +1775,8 @@ declare class ClrFileList {
1760
1775
  protected getClearFileLabel(filename: string): string;
1761
1776
  protected clearFile(fileToRemove: File): void;
1762
1777
  protected createFileMessagesTemplateContext(file: File): ClrFileMessagesTemplateContext;
1763
- protected createFileMessagesTemplateInjector(fileMessagesTemplateContext: ClrFileMessagesTemplateContext): i0.DestroyableInjector;
1778
+ private createFileMessagesTemplateInjector;
1779
+ private errorsEqual;
1764
1780
  static ɵfac: i0.ɵɵFactoryDeclaration<ClrFileList, never>;
1765
1781
  static ɵcmp: i0.ɵɵComponentDeclaration<ClrFileList, "clr-file-list", never, {}, {}, ["fileMessagesTemplate"], never, false, never>;
1766
1782
  }
@@ -2069,4 +2085,4 @@ declare class ClrFormsModule {
2069
2085
  }
2070
2086
 
2071
2087
  export { AbstractIfState, CHANGE_KEYS, CLR_DATEPICKER_DIRECTIVES, CLR_FILE_MESSAGES_TEMPLATE_CONTEXT, ClrAbstractContainer, ClrCalendar, ClrCheckbox, ClrCheckboxContainer, ClrCheckboxModule, ClrCheckboxWrapper, ClrCombobox, ClrComboboxContainer, ClrComboboxModule, ClrCommonFormsModule, ClrControl, ClrControlContainer, ClrControlError, ClrControlHelper, ClrControlLabel, ClrControlSuccess, ClrDatalist, ClrDatalistContainer, ClrDatalistInput, ClrDatalistModule, ClrDateContainer, ClrDateInput, ClrDateInputBase, ClrDateInputValidator, ClrDatepickerActions, ClrDatepickerModule, ClrDatepickerViewManager, ClrDay, ClrDaypicker, ClrEndDateInput, ClrEndDateInputValidator, ClrFileError, ClrFileInfo, ClrFileInput, ClrFileInputContainer, ClrFileInputModule, ClrFileInputValidator, ClrFileInputValueAccessor, ClrFileList, ClrFileMessagesTemplate, ClrFileSuccess, ClrForm, ClrFormLayout, ClrFormsModule, ClrIfError, ClrIfSuccess, ClrInput, ClrInputContainer, ClrInputModule, ClrLayout, ClrMonthpicker, ClrNumberInput, ClrNumberInputContainer, ClrNumberInputModule, ClrOption, ClrOptionGroup, ClrOptionItems, ClrOptionSelected, ClrOptions, ClrPassword, ClrPasswordContainer, ClrPasswordModule, ClrRadio, ClrRadioContainer, ClrRadioModule, ClrRadioWrapper, ClrRange, ClrRangeContainer, ClrRangeModule, ClrSelect, ClrSelectContainer, ClrSelectModule, ClrStartDateInput, ClrStartDateInputValidator, ClrTextarea, ClrTextareaContainer, ClrTextareaModule, ClrYearpicker, ContainerIdService, ControlClassService, ControlIdService, DatalistIdService, FormsFocusService, IS_TOGGLE, IS_TOGGLE_PROVIDER, LayoutService, MarkControlService, NgControlService, TOGGLE_SERVICE, TOGGLE_SERVICE_PROVIDER, ToggleServiceFactory, WrappedFormControl, buildFileList, clearFiles, isToggleFactory, selectFiles };
2072
- export type { ClrFileAcceptError, ClrFileInputSelection, ClrFileListValidationErrors, ClrFileMaxFileSizeError, ClrFileMessagesTemplateContext, ClrFileMinFileSizeError, ClrSingleFileValidationErrors, Helpers };
2088
+ export type { ClrComboboxIdentityFunction, ClrFileAcceptError, ClrFileInputSelection, ClrFileListValidationErrors, ClrFileMaxFileSizeError, ClrFileMessagesTemplateContext, ClrFileMinFileSizeError, ClrSingleFileValidationErrors, Helpers };
@@ -1,4 +1,4 @@
1
- import { ConnectedPosition, OverlayContainer, Overlay } from '@angular/cdk/overlay';
1
+ import { ConnectedPosition, FlexibleConnectedPositionStrategyOrigin, OverlayContainer, Overlay } from '@angular/cdk/overlay';
2
2
  import * as i0 from '@angular/core';
3
3
  import { ElementRef, OnDestroy, AfterViewInit, ViewContainerRef, TemplateRef, NgZone, OnInit, InjectionToken, EventEmitter } from '@angular/core';
4
4
  import { Observable } from 'rxjs';
@@ -32,11 +32,15 @@ declare const SIGNPOST_POSITIONS: ClrPopoverPosition[];
32
32
  declare function getPositionsArray(type: ClrPopoverType): ClrPopoverPosition[];
33
33
  declare function getConnectedPositions(type: ClrPopoverType): ConnectedPosition[];
34
34
  declare function mapPopoverKeyToPosition(key: ClrPopoverPosition, type: ClrPopoverType): ConnectedPosition;
35
- declare function getAnchorPosition(key: ClrPosition): Partial<ConnectedPosition>;
35
+ declare function getOriginPosition(key: ClrPosition): Partial<ConnectedPosition>;
36
36
  declare function getContentPosition(key: ClrPosition): Partial<ConnectedPosition>;
37
37
 
38
+ interface ClrPopoverPoint {
39
+ x: number;
40
+ y: number;
41
+ }
38
42
  declare class ClrPopoverService {
39
- anchorElementRef: ElementRef<HTMLElement>;
43
+ origin: FlexibleConnectedPositionStrategyOrigin;
40
44
  closeButtonRef: ElementRef;
41
45
  panelClass: string[];
42
46
  private _open;
@@ -47,6 +51,8 @@ declare class ClrPopoverService {
47
51
  private _resetPositions;
48
52
  private _updatePosition;
49
53
  private _popoverVisible;
54
+ get originElement(): ElementRef<HTMLElement> | null;
55
+ get originPoint(): ClrPopoverPoint | null;
50
56
  get openChange(): Observable<boolean>;
51
57
  get popoverVisible(): Observable<boolean>;
52
58
  get openEvent(): Event;
@@ -63,11 +69,16 @@ declare class ClrPopoverService {
63
69
  * This is for instance the case of components that open on a click, but close on a click outside.
64
70
  */
65
71
  toggleWithEvent(event: any): void;
72
+ /**
73
+ * Opens the popover at a specific screen coordinate.
74
+ * Useful for context menus where the popover should appear at the cursor position.
75
+ */
76
+ openAtPoint(point: ClrPopoverPoint): void;
66
77
  popoverVisibleEmit(visible: boolean): void;
67
78
  resetPositions(): void;
68
79
  updatePosition(): void;
69
80
  focusCloseButton(): void;
70
- focusAnchor(): void;
81
+ focusOrigin(): void;
71
82
  static ɵfac: i0.ɵɵFactoryDeclaration<ClrPopoverService, never>;
72
83
  static ɵprov: i0.ɵɵInjectableDeclaration<ClrPopoverService>;
73
84
  }
@@ -107,31 +118,44 @@ declare class ClrPopoverContent implements OnDestroy, AfterViewInit {
107
118
  set outsideClickClose(clickToClose: boolean);
108
119
  get scrollToClose(): boolean;
109
120
  set scrollToClose(scrollToClose: boolean);
121
+ set contentOrigin(origin: FlexibleConnectedPositionStrategyOrigin);
110
122
  private get positionStrategy();
111
123
  private get preferredPosition();
112
124
  ngAfterViewInit(): void;
113
125
  ngOnDestroy(): void;
114
126
  private _createOverlayRef;
127
+ /**
128
+ * Point-based origins (context menus) delay the subscription to avoid the
129
+ * mouseup from the same right-click that opened the popover.
130
+ */
131
+ private createPointBasedOutsideClickSubscription;
132
+ /**
133
+ * Element-based origins close on outside clicks and suppress toggle-button
134
+ * re-clicks so the popover doesn't immediately reopen.
135
+ */
136
+ private createElementBasedOutsideClickSubscription;
115
137
  private resetPosition;
116
138
  private closePopover;
117
139
  private showOverlay;
118
140
  private removeOverlay;
119
141
  private getScrollableParents;
120
142
  /**
121
- * Uses IntersectionObserver to detect when the anchor leaves the screen.
143
+ * Uses IntersectionObserver to detect when the origin element leaves the screen.
122
144
  * This handles the "Close on Scroll" logic much cheaper than getBoundingClientRect.
123
145
  */
124
146
  private setupIntersectionObserver;
125
- private listenToMouseEvents;
147
+ private listenToScrollEvents;
148
+ private listenToScrollForPointOrigin;
149
+ private listenToScrollForElementOrigin;
126
150
  private getRootPopover;
127
151
  static ɵfac: i0.ɵɵFactoryDeclaration<ClrPopoverContent, [null, null, { optional: true; }, null, { optional: true; skipSelf: true; }, null, null, null, null]>;
128
- static ɵdir: i0.ɵɵDirectiveDeclaration<ClrPopoverContent, "[clrPopoverContent]", never, { "open": { "alias": "clrPopoverContent"; "required": false; }; "contentAt": { "alias": "clrPopoverContentAt"; "required": false; }; "availablePositions": { "alias": "clrPopoverContentAvailablePositions"; "required": false; }; "contentType": { "alias": "clrPopoverContentType"; "required": false; }; "outsideClickClose": { "alias": "clrPopoverContentOutsideClickToClose"; "required": false; }; "scrollToClose": { "alias": "clrPopoverContentScrollToClose"; "required": false; }; }, {}, never, never, true, never>;
152
+ static ɵdir: i0.ɵɵDirectiveDeclaration<ClrPopoverContent, "[clrPopoverContent]", never, { "open": { "alias": "clrPopoverContent"; "required": false; }; "contentAt": { "alias": "clrPopoverContentAt"; "required": false; }; "availablePositions": { "alias": "clrPopoverContentAvailablePositions"; "required": false; }; "contentType": { "alias": "clrPopoverContentType"; "required": false; }; "outsideClickClose": { "alias": "clrPopoverContentOutsideClickToClose"; "required": false; }; "scrollToClose": { "alias": "clrPopoverContentScrollToClose"; "required": false; }; "contentOrigin": { "alias": "clrPopoverContentOrigin"; "required": false; }; }, {}, never, never, true, never>;
129
153
  }
130
154
 
131
- declare class ClrPopoverAnchor {
155
+ declare class ClrPopoverOrigin {
132
156
  constructor(popoverService: ClrPopoverService, element: ElementRef<HTMLButtonElement>);
133
- static ɵfac: i0.ɵɵFactoryDeclaration<ClrPopoverAnchor, never>;
134
- static ɵdir: i0.ɵɵDirectiveDeclaration<ClrPopoverAnchor, "[clrPopoverAnchor]", never, {}, {}, never, never, false, never>;
157
+ static ɵfac: i0.ɵɵFactoryDeclaration<ClrPopoverOrigin, never>;
158
+ static ɵdir: i0.ɵɵDirectiveDeclaration<ClrPopoverOrigin, "[clrPopoverOrigin]", never, {}, {}, never, never, false, never>;
135
159
  }
136
160
 
137
161
  declare class ClrStopEscapePropagationDirective implements OnInit, OnDestroy {
@@ -151,7 +175,7 @@ declare class ClrPopoverHostDirective {
151
175
  static ɵdir: i0.ɵɵDirectiveDeclaration<ClrPopoverHostDirective, never, never, {}, {}, never, never, true, [{ directive: typeof ClrStopEscapePropagationDirective; inputs: {}; outputs: {}; }]>;
152
176
  }
153
177
 
154
- declare const POPOVER_HOST_ANCHOR: InjectionToken<ElementRef<any>>;
178
+ declare const POPOVER_HOST_ORIGIN: InjectionToken<ElementRef<any>>;
155
179
 
156
180
  /**********
157
181
  *
@@ -223,8 +247,9 @@ declare class ClrPopoverOpenCloseButton implements OnDestroy {
223
247
 
224
248
  declare class ClrPopoverModuleNext {
225
249
  static ɵfac: i0.ɵɵFactoryDeclaration<ClrPopoverModuleNext, never>;
226
- static ɵmod: i0.ɵɵNgModuleDeclaration<ClrPopoverModuleNext, [typeof ClrPopoverAnchor, typeof ClrPopoverCloseButton, typeof ClrPopoverOpenCloseButton], [typeof ClrPopoverContent, typeof ClrIfOpen], [typeof ClrPopoverAnchor, typeof ClrPopoverCloseButton, typeof ClrPopoverOpenCloseButton, typeof ClrPopoverContent, typeof ClrIfOpen]>;
250
+ static ɵmod: i0.ɵɵNgModuleDeclaration<ClrPopoverModuleNext, [typeof ClrPopoverOrigin, typeof ClrPopoverCloseButton, typeof ClrPopoverOpenCloseButton], [typeof ClrPopoverContent, typeof ClrIfOpen], [typeof ClrPopoverOrigin, typeof ClrPopoverCloseButton, typeof ClrPopoverOpenCloseButton, typeof ClrPopoverContent, typeof ClrIfOpen]>;
227
251
  static ɵinj: i0.ɵɵInjectorDeclaration<ClrPopoverModuleNext>;
228
252
  }
229
253
 
230
- export { ClrIfOpen, ClrPopoverAnchor, ClrPopoverContent, ClrPopoverHostDirective, ClrPopoverPosition, ClrPopoverService, ClrPopoverType, ClrStopEscapePropagationDirective, DROPDOWN_POSITIONS, POPOVER_HOST_ANCHOR, SIGNPOST_POSITIONS, TOOLTIP_POSITIONS, getAnchorPosition, getConnectedPositions, getContentPosition, getPositionsArray, mapPopoverKeyToPosition, ClrPopoverCloseButton as ÇlrClrPopoverCloseButton, ClrPopoverModuleNext as ÇlrClrPopoverModuleNext, ClrPopoverOpenCloseButton as ÇlrClrPopoverOpenCloseButton };
254
+ export { ClrIfOpen, ClrPopoverContent, ClrPopoverHostDirective, ClrPopoverOrigin, ClrPopoverPosition, ClrPopoverService, ClrPopoverType, ClrStopEscapePropagationDirective, DROPDOWN_POSITIONS, POPOVER_HOST_ORIGIN, SIGNPOST_POSITIONS, TOOLTIP_POSITIONS, getConnectedPositions, getContentPosition, getOriginPosition, getPositionsArray, mapPopoverKeyToPosition, ClrPopoverCloseButton as ÇlrClrPopoverCloseButton, ClrPopoverModuleNext as ÇlrClrPopoverModuleNext, ClrPopoverOpenCloseButton as ÇlrClrPopoverOpenCloseButton };
255
+ export type { ClrPopoverPoint };
@@ -1,7 +1,7 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { OnDestroy, Renderer2, ChangeDetectorRef, AfterContentInit, QueryList, ElementRef, Type } from '@angular/core';
3
3
  import * as i1 from '@clr/angular/popover/common';
4
- import { ClrPopoverService, ClrPopoverContent, ClrPopoverPosition } from '@clr/angular/popover/common';
4
+ import { ClrPopoverService, ClrPopoverPoint, ClrPopoverContent, ClrPopoverPosition } from '@clr/angular/popover/common';
5
5
  import { FocusableItem, FocusService } from '@clr/angular/utils';
6
6
  import { Observable } from 'rxjs';
7
7
  import * as i5 from '@angular/common';
@@ -57,6 +57,7 @@ declare class ClrDropdown implements OnDestroy {
57
57
  isMenuClosable: boolean;
58
58
  private subscriptions;
59
59
  constructor(parent: ClrDropdown, popoverService: ClrPopoverService, focusHandler: DropdownFocusHandler, cdr: ChangeDetectorRef, dropdownService: RootDropdownService);
60
+ openAtPoint(point: ClrPopoverPoint): void;
60
61
  ngOnDestroy(): void;
61
62
  static ɵfac: i0.ɵɵFactoryDeclaration<ClrDropdown, [{ optional: true; skipSelf: true; }, null, null, null, null]>;
62
63
  static ɵcmp: i0.ɵɵComponentDeclaration<ClrDropdown, "clr-dropdown", never, { "isMenuClosable": { "alias": "clrCloseMenuOnItemClick"; "required": false; }; }, {}, never, ["*"], false, [{ directive: typeof i1.ClrPopoverHostDirective; inputs: {}; outputs: {}; }]>;
@@ -1,9 +1,9 @@
1
+ import * as i8 from '@clr/angular/popover/common';
2
+ import { ClrPopoverService, ClrPopoverPoint, ClrPopoverContent, ClrPopoverPosition } from '@clr/angular/popover/common';
1
3
  import * as i7 from '@clr/angular/utils';
2
4
  import { ClrCommonStringsService } from '@clr/angular/utils';
3
5
  import * as i0 from '@angular/core';
4
6
  import { OnDestroy, ElementRef, AfterViewInit, Type } from '@angular/core';
5
- import * as i8 from '@clr/angular/popover/common';
6
- import { ClrPopoverService, ClrPopoverContent, ClrPopoverPosition } from '@clr/angular/popover/common';
7
7
  import { Observable } from 'rxjs';
8
8
  import * as i5 from '@angular/common';
9
9
  import * as i6 from '@clr/angular/icon';
@@ -51,6 +51,7 @@ declare class ClrSignpostTrigger implements OnDestroy {
51
51
 
52
52
  declare class ClrSignpost {
53
53
  commonStrings: ClrCommonStringsService;
54
+ private popoverService;
54
55
  /**********
55
56
  * @property useCustomTrigger
56
57
  *
@@ -60,7 +61,12 @@ declare class ClrSignpost {
60
61
  */
61
62
  useCustomTrigger: boolean;
62
63
  signpostTriggerAriaLabel: string;
63
- constructor(commonStrings: ClrCommonStringsService);
64
+ /**
65
+ * Hides the default trigger button. Use when the signpost is opened
66
+ * programmatically via `openAtPoint()` and no trigger icon is needed.
67
+ */
68
+ hideTrigger: boolean;
69
+ constructor(commonStrings: ClrCommonStringsService, popoverService: ClrPopoverService);
64
70
  /**********
65
71
  * @property signPostTrigger
66
72
  *
@@ -69,8 +75,10 @@ declare class ClrSignpost {
69
75
  *
70
76
  */
71
77
  set customTrigger(trigger: ClrSignpostTrigger);
78
+ get showDefaultTrigger(): boolean;
79
+ openAtPoint(point: ClrPopoverPoint): void;
72
80
  static ɵfac: i0.ɵɵFactoryDeclaration<ClrSignpost, never>;
73
- static ɵcmp: i0.ɵɵComponentDeclaration<ClrSignpost, "clr-signpost", never, { "signpostTriggerAriaLabel": { "alias": "clrSignpostTriggerAriaLabel"; "required": false; }; }, {}, ["customTrigger"], ["*"], false, [{ directive: typeof i8.ClrPopoverHostDirective; inputs: {}; outputs: {}; }]>;
81
+ static ɵcmp: i0.ɵɵComponentDeclaration<ClrSignpost, "clr-signpost", never, { "signpostTriggerAriaLabel": { "alias": "clrSignpostTriggerAriaLabel"; "required": false; }; "hideTrigger": { "alias": "clrSignpostHideTrigger"; "required": false; }; }, {}, ["customTrigger"], ["*"], false, [{ directive: typeof i8.ClrPopoverHostDirective; inputs: {}; outputs: {}; }]>;
74
82
  }
75
83
 
76
84
  declare class ClrSignpostContent implements OnDestroy, AfterViewInit {
@@ -90,8 +98,8 @@ declare class ClrSignpostContent implements OnDestroy, AfterViewInit {
90
98
  *
91
99
  * @description
92
100
  * A setter for the position of the ClrSignpostContent popover. This is a combination of the following:
93
- * - anchorPoint - where on the trigger to anchor the ClrSignpostContent
94
- * - popoverPoint - where on the ClrSignpostContent container to align with the anchorPoint
101
+ * - originPoint - where on the trigger to position the content
102
+ * - popoverPoint - where on the content container to align with the origin
95
103
  * - offsetY - where on the Y axis to align the ClrSignpostContent so it meets specs
96
104
  * - offsetX - where on the X axis to align the ClrSignpostContent so it meets specs
97
105
  * There are 12 possible positions to place a ClrSignpostContent container: