@lucca-front/ng 22.0.0-rc.2 → 22.0.0-rc.3

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 (80) hide show
  1. package/fesm2022/lucca-front-ng-api.mjs +160 -85
  2. package/fesm2022/lucca-front-ng-api.mjs.map +1 -1
  3. package/fesm2022/lucca-front-ng-clear.mjs +7 -6
  4. package/fesm2022/lucca-front-ng-clear.mjs.map +1 -1
  5. package/fesm2022/lucca-front-ng-core-select-api.mjs +37 -21
  6. package/fesm2022/lucca-front-ng-core-select-api.mjs.map +1 -1
  7. package/fesm2022/lucca-front-ng-core-select-user.mjs +2 -2
  8. package/fesm2022/lucca-front-ng-core-select-user.mjs.map +1 -1
  9. package/fesm2022/lucca-front-ng-core-select.mjs +229 -135
  10. package/fesm2022/lucca-front-ng-core-select.mjs.map +1 -1
  11. package/fesm2022/lucca-front-ng-core.mjs +1 -12
  12. package/fesm2022/lucca-front-ng-core.mjs.map +1 -1
  13. package/fesm2022/lucca-front-ng-date.mjs +124 -100
  14. package/fesm2022/lucca-front-ng-date.mjs.map +1 -1
  15. package/fesm2022/lucca-front-ng-date2.mjs +37 -25
  16. package/fesm2022/lucca-front-ng-date2.mjs.map +1 -1
  17. package/fesm2022/lucca-front-ng-department.mjs +0 -2
  18. package/fesm2022/lucca-front-ng-department.mjs.map +1 -1
  19. package/fesm2022/lucca-front-ng-divider.mjs +6 -4
  20. package/fesm2022/lucca-front-ng-divider.mjs.map +1 -1
  21. package/fesm2022/lucca-front-ng-dropdown.mjs +34 -31
  22. package/fesm2022/lucca-front-ng-dropdown.mjs.map +1 -1
  23. package/fesm2022/lucca-front-ng-establishment.mjs +83 -49
  24. package/fesm2022/lucca-front-ng-establishment.mjs.map +1 -1
  25. package/fesm2022/lucca-front-ng-filter-pills.mjs +18 -8
  26. package/fesm2022/lucca-front-ng-filter-pills.mjs.map +1 -1
  27. package/fesm2022/lucca-front-ng-form-field.mjs +10 -7
  28. package/fesm2022/lucca-front-ng-form-field.mjs.map +1 -1
  29. package/fesm2022/lucca-front-ng-formly.mjs +2 -3
  30. package/fesm2022/lucca-front-ng-formly.mjs.map +1 -1
  31. package/fesm2022/lucca-front-ng-forms.mjs +46 -5
  32. package/fesm2022/lucca-front-ng-forms.mjs.map +1 -1
  33. package/fesm2022/lucca-front-ng-input.mjs +0 -1
  34. package/fesm2022/lucca-front-ng-input.mjs.map +1 -1
  35. package/fesm2022/lucca-front-ng-modal.mjs +15 -11
  36. package/fesm2022/lucca-front-ng-modal.mjs.map +1 -1
  37. package/fesm2022/lucca-front-ng-multi-select.mjs +115 -91
  38. package/fesm2022/lucca-front-ng-multi-select.mjs.map +1 -1
  39. package/fesm2022/lucca-front-ng-number-format.mjs +11 -7
  40. package/fesm2022/lucca-front-ng-number-format.mjs.map +1 -1
  41. package/fesm2022/lucca-front-ng-option.mjs +37 -30
  42. package/fesm2022/lucca-front-ng-option.mjs.map +1 -1
  43. package/fesm2022/lucca-front-ng-popover.mjs +238 -123
  44. package/fesm2022/lucca-front-ng-popover.mjs.map +1 -1
  45. package/fesm2022/lucca-front-ng-popover2.mjs +65 -37
  46. package/fesm2022/lucca-front-ng-popover2.mjs.map +1 -1
  47. package/fesm2022/lucca-front-ng-select.mjs +123 -76
  48. package/fesm2022/lucca-front-ng-select.mjs.map +1 -1
  49. package/fesm2022/lucca-front-ng-sidepanel.mjs.map +1 -1
  50. package/fesm2022/lucca-front-ng-simple-select.mjs +13 -13
  51. package/fesm2022/lucca-front-ng-simple-select.mjs.map +1 -1
  52. package/fesm2022/lucca-front-ng-time.mjs +8 -6
  53. package/fesm2022/lucca-front-ng-time.mjs.map +1 -1
  54. package/fesm2022/lucca-front-ng-user-popover.mjs +13 -9
  55. package/fesm2022/lucca-front-ng-user-popover.mjs.map +1 -1
  56. package/fesm2022/lucca-front-ng-user.mjs +93 -59
  57. package/fesm2022/lucca-front-ng-user.mjs.map +1 -1
  58. package/package.json +4 -4
  59. package/types/lucca-front-ng-api.d.ts +62 -62
  60. package/types/lucca-front-ng-clear.d.ts +2 -3
  61. package/types/lucca-front-ng-core-select-api.d.ts +22 -22
  62. package/types/lucca-front-ng-core-select.d.ts +139 -140
  63. package/types/lucca-front-ng-core.d.ts +2 -7
  64. package/types/lucca-front-ng-date.d.ts +26 -28
  65. package/types/lucca-front-ng-divider.d.ts +1 -1
  66. package/types/lucca-front-ng-dropdown.d.ts +4 -5
  67. package/types/lucca-front-ng-establishment.d.ts +19 -18
  68. package/types/lucca-front-ng-form-field.d.ts +3 -2
  69. package/types/lucca-front-ng-forms.d.ts +32 -12
  70. package/types/lucca-front-ng-modal.d.ts +2 -2
  71. package/types/lucca-front-ng-multi-select.d.ts +37 -36
  72. package/types/lucca-front-ng-option.d.ts +10 -10
  73. package/types/lucca-front-ng-popover.d.ts +46 -52
  74. package/types/lucca-front-ng-popover2.d.ts +11 -13
  75. package/types/lucca-front-ng-segmented-control.d.ts +4 -2
  76. package/types/lucca-front-ng-select.d.ts +28 -30
  77. package/types/lucca-front-ng-simple-select.d.ts +3 -3
  78. package/types/lucca-front-ng-time.d.ts +1 -1
  79. package/types/lucca-front-ng-user-popover.d.ts +3 -4
  80. package/types/lucca-front-ng-user.d.ts +20 -20
@@ -5,10 +5,9 @@ import * as i1$1 from '@angular/cdk/overlay';
5
5
  import { OverlayModule, OverlayConfig } from '@angular/cdk/overlay';
6
6
  import { NgTemplateOutlet } from '@angular/common';
7
7
  import * as i0 from '@angular/core';
8
- import { input, EventEmitter, viewChild, TemplateRef, ChangeDetectionStrategy, Component, NgModule, Directive } from '@angular/core';
9
- import { outputFromObservable } from '@angular/core/rxjs-interop';
10
- import { syncInputSignal, ɵeffectWithDeps as _effectWithDeps, isNotNil, generateId } from '@lucca-front/ng/core';
8
+ import { EventEmitter, TemplateRef, ViewChild, Output, Input, ChangeDetectionStrategy, Component, NgModule, Directive, HostListener, HostBinding } from '@angular/core';
11
9
  import { TemplatePortal } from '@angular/cdk/portal';
10
+ import { generateId } from '@lucca-front/ng/core';
12
11
  import { timer, Subject, Subscription } from 'rxjs';
13
12
  import { distinctUntilChanged, debounce, map } from 'rxjs/operators';
14
13
 
@@ -148,63 +147,69 @@ class ALuPopoverPanel {
148
147
 
149
148
  // import { standardPopoverTemplate } from './popover.template';
150
149
  class LuPopoverPanelComponent extends ALuPopoverPanel {
150
+ /** Template to Use for the popover */
151
+ get template() {
152
+ return this._template;
153
+ }
154
+ set template(value) {
155
+ this._template = value;
156
+ }
157
+ /** Template context to use for the popover when created using a template */
158
+ get templateContext() {
159
+ return this._templateContext;
160
+ }
161
+ set templateContext(value) {
162
+ this._templateContext = value;
163
+ }
164
+ /**
165
+ * Popover container close on click
166
+ * default: false
167
+ */
168
+ set inputCloseOnClick(v) {
169
+ this.closeOnClick = v;
170
+ }
171
+ /**
172
+ * Popover focus trap using cdkTrapFocus
173
+ * default: false
174
+ */
175
+ set inputTrapFocus(v) {
176
+ this.trapFocus = v;
177
+ }
178
+ /**
179
+ * Popover scrollStrategy
180
+ * default: reposition
181
+ */
182
+ set inputScrollStrategy(v) {
183
+ this.scrollStrategy = v;
184
+ }
185
+ /**
186
+ * This method takes classes set on the host lu-popover element and applies them on the
187
+ * popover template that displays in the overlay container. Otherwise, it's difficult
188
+ * to style the containing popover from outside the component.
189
+ * @param classes list of class names
190
+ */
191
+ set inputPanelClasses(classes) {
192
+ this.panelClasses = classes;
193
+ }
194
+ /**
195
+ * This method takes classes set on the host lu-popover element and applies them on the
196
+ * popover template that displays in the overlay container. Otherwise, it's difficult
197
+ * to style the containing popover from outside the component.
198
+ * @param classes list of class names
199
+ */
200
+ set inputContentClasses(classes) {
201
+ this.contentClasses = classes;
202
+ }
203
+ set vcTemplateRef(tr) {
204
+ this.templateRef = tr;
205
+ }
151
206
  constructor() {
152
207
  super();
153
- /** Template to Use for the popover */
154
- this.template = input(...(ngDevMode ? [undefined, { debugName: "template" }] : /* istanbul ignore next */ []));
155
- /** Template context to use for the popover when created using a template */
156
- this.templateContext = input(undefined, { ...(ngDevMode ? { debugName: "templateContext" } : /* istanbul ignore next */ {}), alias: 'template-context' });
157
- /**
158
- * Popover container close on click
159
- * default: false
160
- */
161
- this.inputCloseOnClick = input(false, { ...(ngDevMode ? { debugName: "inputCloseOnClick" } : /* istanbul ignore next */ {}), alias: 'close-on-click' });
162
- /**
163
- * Popover focus trap using cdkTrapFocus
164
- * default: false
165
- */
166
- this.inputTrapFocus = input(false, { ...(ngDevMode ? { debugName: "inputTrapFocus" } : /* istanbul ignore next */ {}), alias: 'trap-focus' });
167
- /**
168
- * Popover scrollStrategy
169
- * default: reposition
170
- */
171
- this.inputScrollStrategy = input('reposition', { ...(ngDevMode ? { debugName: "inputScrollStrategy" } : /* istanbul ignore next */ {}), alias: 'scroll-strategy' });
172
- /**
173
- * This method takes classes set on the host lu-popover element and applies them on the
174
- * popover template that displays in the overlay container. Otherwise, it's difficult
175
- * to style the containing popover from outside the component.
176
- * @param classes list of class names
177
- */
178
- this.inputPanelClasses = input('', { ...(ngDevMode ? { debugName: "inputPanelClasses" } : /* istanbul ignore next */ {}), alias: 'panel-classes' });
179
- /**
180
- * This method takes classes set on the host lu-popover element and applies them on the
181
- * popover template that displays in the overlay container. Otherwise, it's difficult
182
- * to style the containing popover from outside the component.
183
- * @param classes list of class names
184
- */
185
- this.inputContentClasses = input('', { ...(ngDevMode ? { debugName: "inputContentClasses" } : /* istanbul ignore next */ {}), alias: 'content-classes' });
208
+ /** Event emitted when the popover is closed. */
209
+ // eslint-disable-next-line @angular-eslint/no-output-native
186
210
  this.close = new EventEmitter();
187
211
  this.open = new EventEmitter();
188
212
  this.hovered = new EventEmitter();
189
- /** Event emitted when the popover is closed. */
190
- this.closeOutput = outputFromObservable(this.close, { alias: 'close' });
191
- /** Event emitted when the popover is open. */
192
- this.openOutput = outputFromObservable(this.open, { alias: 'open' });
193
- /** Event emitted when the popover is hovered. */
194
- this.hoveredOutput = outputFromObservable(this.hovered, { alias: 'hovered' });
195
- this.vcTemplateRef = viewChild(TemplateRef, ...(ngDevMode ? [{ debugName: "vcTemplateRef" }] : /* istanbul ignore next */ []));
196
- syncInputSignal(this.template, (template) => (this._template = template));
197
- syncInputSignal(this.templateContext, (templateContext) => (this._templateContext = templateContext));
198
- syncInputSignal(this.inputCloseOnClick, (closeOnClick) => (this.closeOnClick = closeOnClick));
199
- syncInputSignal(this.inputTrapFocus, (trapFocus) => (this.trapFocus = trapFocus));
200
- syncInputSignal(this.inputScrollStrategy, (scrollStrategy) => (this.scrollStrategy = scrollStrategy));
201
- syncInputSignal(this.inputPanelClasses, (panelClasses) => (this.panelClasses = panelClasses));
202
- syncInputSignal(this.inputContentClasses, (contentClasses) => (this.contentClasses = contentClasses));
203
- _effectWithDeps([this.vcTemplateRef], (vcTemplateRef) => {
204
- if (isNotNil(vcTemplateRef)) {
205
- this.templateRef = vcTemplateRef;
206
- }
207
- });
208
213
  }
209
214
  ngOnDestroy() {
210
215
  this.onClose();
@@ -220,12 +225,41 @@ class LuPopoverPanelComponent extends ALuPopoverPanel {
220
225
  this.hovered.emit(hovered);
221
226
  }
222
227
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: LuPopoverPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
223
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.14", type: LuPopoverPanelComponent, isStandalone: true, selector: "lu-popover", inputs: { template: { classPropertyName: "template", publicName: "template", isSignal: true, isRequired: false, transformFunction: null }, templateContext: { classPropertyName: "templateContext", publicName: "template-context", isSignal: true, isRequired: false, transformFunction: null }, inputCloseOnClick: { classPropertyName: "inputCloseOnClick", publicName: "close-on-click", isSignal: true, isRequired: false, transformFunction: null }, inputTrapFocus: { classPropertyName: "inputTrapFocus", publicName: "trap-focus", isSignal: true, isRequired: false, transformFunction: null }, inputScrollStrategy: { classPropertyName: "inputScrollStrategy", publicName: "scroll-strategy", isSignal: true, isRequired: false, transformFunction: null }, inputPanelClasses: { classPropertyName: "inputPanelClasses", publicName: "panel-classes", isSignal: true, isRequired: false, transformFunction: null }, inputContentClasses: { classPropertyName: "inputContentClasses", publicName: "content-classes", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { closeOutput: "close", openOutput: "open", hoveredOutput: "hovered" }, viewQueries: [{ propertyName: "vcTemplateRef", first: true, predicate: TemplateRef, descendants: true, isSignal: true }], exportAs: ["LuPopoverPanel"], usesInheritance: true, ngImport: i0, template: "<ng-template>\n\t<div\n\t\tclass=\"lu-popover-panel\"\n\t\t[class]=\"panelClassesMap\"\n\t\t(keydown)=\"_handleKeydown($event)\"\n\t\t(click)=\"onClick()\"\n\t\t(mouseover)=\"onMouseOver()\"\n\t\t(mouseleave)=\"onMouseLeave()\"\n\t\t(mousedown)=\"onMouseDown()\"\n\t\t[attr.id]=\"panelId\"\n\t\t[attr.aria-labelledby]=\"triggerId\"\n\t\t[@transformPopover]=\"'enter'\"\n\t>\n\t\t<div class=\"lu-popover-content\" [class]=\"contentClassesMap\" [cdkTrapFocus]=\"trapFocus\">\n\t\t\t<ng-content /><ng-container *ngTemplateOutlet=\"template(); context: templateContext()\" />\n\t\t</div>\n\t</div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: OverlayModule }, { kind: "ngmodule", type: A11yModule }, { kind: "directive", type: i1.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }], animations: [luTransformPopover], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
228
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.14", type: LuPopoverPanelComponent, isStandalone: true, selector: "lu-popover", inputs: { template: "template", templateContext: ["template-context", "templateContext"], inputCloseOnClick: ["close-on-click", "inputCloseOnClick"], inputTrapFocus: ["trap-focus", "inputTrapFocus"], inputScrollStrategy: ["scroll-strategy", "inputScrollStrategy"], inputPanelClasses: ["panel-classes", "inputPanelClasses"], inputContentClasses: ["content-classes", "inputContentClasses"] }, outputs: { close: "close", open: "open", hovered: "hovered" }, viewQueries: [{ propertyName: "vcTemplateRef", first: true, predicate: TemplateRef, descendants: true, static: true }], exportAs: ["LuPopoverPanel"], usesInheritance: true, ngImport: i0, template: "<ng-template>\n\t<div\n\t\tclass=\"lu-popover-panel\"\n\t\t[class]=\"panelClassesMap\"\n\t\t(keydown)=\"_handleKeydown($event)\"\n\t\t(click)=\"onClick()\"\n\t\t(mouseover)=\"onMouseOver()\"\n\t\t(mouseleave)=\"onMouseLeave()\"\n\t\t(mousedown)=\"onMouseDown()\"\n\t\t[attr.id]=\"panelId\"\n\t\t[attr.aria-labelledby]=\"triggerId\"\n\t\t[@transformPopover]=\"'enter'\"\n\t>\n\t\t<div class=\"lu-popover-content\" [class]=\"contentClassesMap\" [cdkTrapFocus]=\"trapFocus\">\n\t\t\t<ng-content /><ng-container *ngTemplateOutlet=\"template; context: templateContext\" />\n\t\t</div>\n\t</div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: OverlayModule }, { kind: "ngmodule", type: A11yModule }, { kind: "directive", type: i1.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }], animations: [luTransformPopover], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
224
229
  }
225
230
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: LuPopoverPanelComponent, decorators: [{
226
231
  type: Component,
227
- args: [{ selector: 'lu-popover', changeDetection: ChangeDetectionStrategy.OnPush, animations: [luTransformPopover], imports: [NgTemplateOutlet, OverlayModule, A11yModule], exportAs: 'LuPopoverPanel', template: "<ng-template>\n\t<div\n\t\tclass=\"lu-popover-panel\"\n\t\t[class]=\"panelClassesMap\"\n\t\t(keydown)=\"_handleKeydown($event)\"\n\t\t(click)=\"onClick()\"\n\t\t(mouseover)=\"onMouseOver()\"\n\t\t(mouseleave)=\"onMouseLeave()\"\n\t\t(mousedown)=\"onMouseDown()\"\n\t\t[attr.id]=\"panelId\"\n\t\t[attr.aria-labelledby]=\"triggerId\"\n\t\t[@transformPopover]=\"'enter'\"\n\t>\n\t\t<div class=\"lu-popover-content\" [class]=\"contentClassesMap\" [cdkTrapFocus]=\"trapFocus\">\n\t\t\t<ng-content /><ng-container *ngTemplateOutlet=\"template(); context: templateContext()\" />\n\t\t</div>\n\t</div>\n</ng-template>\n" }]
228
- }], ctorParameters: () => [], propDecorators: { template: [{ type: i0.Input, args: [{ isSignal: true, alias: "template", required: false }] }], templateContext: [{ type: i0.Input, args: [{ isSignal: true, alias: "template-context", required: false }] }], inputCloseOnClick: [{ type: i0.Input, args: [{ isSignal: true, alias: "close-on-click", required: false }] }], inputTrapFocus: [{ type: i0.Input, args: [{ isSignal: true, alias: "trap-focus", required: false }] }], inputScrollStrategy: [{ type: i0.Input, args: [{ isSignal: true, alias: "scroll-strategy", required: false }] }], inputPanelClasses: [{ type: i0.Input, args: [{ isSignal: true, alias: "panel-classes", required: false }] }], inputContentClasses: [{ type: i0.Input, args: [{ isSignal: true, alias: "content-classes", required: false }] }], closeOutput: [{ type: i0.Output, args: ["close"] }], openOutput: [{ type: i0.Output, args: ["open"] }], hoveredOutput: [{ type: i0.Output, args: ["hovered"] }], vcTemplateRef: [{ type: i0.ViewChild, args: [i0.forwardRef(() => TemplateRef), { isSignal: true }] }] } });
232
+ args: [{ selector: 'lu-popover', changeDetection: ChangeDetectionStrategy.OnPush, animations: [luTransformPopover], imports: [NgTemplateOutlet, OverlayModule, A11yModule], exportAs: 'LuPopoverPanel', template: "<ng-template>\n\t<div\n\t\tclass=\"lu-popover-panel\"\n\t\t[class]=\"panelClassesMap\"\n\t\t(keydown)=\"_handleKeydown($event)\"\n\t\t(click)=\"onClick()\"\n\t\t(mouseover)=\"onMouseOver()\"\n\t\t(mouseleave)=\"onMouseLeave()\"\n\t\t(mousedown)=\"onMouseDown()\"\n\t\t[attr.id]=\"panelId\"\n\t\t[attr.aria-labelledby]=\"triggerId\"\n\t\t[@transformPopover]=\"'enter'\"\n\t>\n\t\t<div class=\"lu-popover-content\" [class]=\"contentClassesMap\" [cdkTrapFocus]=\"trapFocus\">\n\t\t\t<ng-content /><ng-container *ngTemplateOutlet=\"template; context: templateContext\" />\n\t\t</div>\n\t</div>\n</ng-template>\n" }]
233
+ }], ctorParameters: () => [], propDecorators: { template: [{
234
+ type: Input
235
+ }], templateContext: [{
236
+ type: Input,
237
+ args: ['template-context']
238
+ }], inputCloseOnClick: [{
239
+ type: Input,
240
+ args: ['close-on-click']
241
+ }], inputTrapFocus: [{
242
+ type: Input,
243
+ args: ['trap-focus']
244
+ }], inputScrollStrategy: [{
245
+ type: Input,
246
+ args: ['scroll-strategy']
247
+ }], inputPanelClasses: [{
248
+ type: Input,
249
+ args: ['panel-classes']
250
+ }], inputContentClasses: [{
251
+ type: Input,
252
+ args: ['content-classes']
253
+ }], close: [{
254
+ type: Output
255
+ }], open: [{
256
+ type: Output
257
+ }], hovered: [{
258
+ type: Output
259
+ }], vcTemplateRef: [{
260
+ type: ViewChild,
261
+ args: [TemplateRef, { static: true }]
262
+ }] } });
229
263
 
230
264
  /**
231
265
  * @deprecated use `LuPopoverPanelComponent` instead
@@ -311,23 +345,28 @@ class LuPopoverTarget extends ALuPopoverTarget {
311
345
  class LuPopoverTargetDirective extends ALuPopoverTarget {
312
346
  constructor(ref) {
313
347
  super();
314
- /** how you want to position the panel relative to the target, allowed values: above, below, before, after */
315
- this.inputPosition = input(undefined, { ...(ngDevMode ? { debugName: "inputPosition" } : /* istanbul ignore next */ {}), alias: 'luPopoverPosition' });
316
- /** how the panel will be align with the target, allowed values: top, bottom, left, right */
317
- this.inputAlignment = input(undefined, { ...(ngDevMode ? { debugName: "inputAlignment" } : /* istanbul ignore next */ {}), alias: 'luPopoverAlignment' });
318
- /** set to true if you want the panel to appear on top of the target */
319
- this.inputOverlap = input(undefined, { ...(ngDevMode ? { debugName: "inputOverlap" } : /* istanbul ignore next */ {}), alias: 'luPopoverOverlap' });
320
- this.inputOffsetX = input(undefined, { ...(ngDevMode ? { debugName: "inputOffsetX" } : /* istanbul ignore next */ {}), alias: 'luPopoverOffsetX' });
321
- this.inputOffsetY = input(undefined, { ...(ngDevMode ? { debugName: "inputOffsetY" } : /* istanbul ignore next */ {}), alias: 'luPopoverOffsetY' });
322
348
  this.elementRef = ref;
323
- syncInputSignal(this.inputPosition, (inputPosition) => (this.position = inputPosition));
324
- syncInputSignal(this.inputAlignment, (inputAlignment) => (this.alignment = inputAlignment));
325
- syncInputSignal(this.inputOverlap, (inputOverlap) => (this.overlap = inputOverlap));
326
- syncInputSignal(this.inputOffsetX, (inputOffsetX) => (this.offsetX = inputOffsetX));
327
- syncInputSignal(this.inputOffsetY, (inputOffsetY) => (this.offsetY = inputOffsetY));
349
+ }
350
+ /** how you want to position the panel relative to the target, allowed values: above, below, before, after */
351
+ set inputPosition(pos) {
352
+ this.position = pos;
353
+ }
354
+ /** how the panel will be align with the target, allowed values: top, bottom, left, right */
355
+ set inputAlignment(al) {
356
+ this.alignment = al;
357
+ }
358
+ /** set to true if you want the panel to appear on top of the target */
359
+ set inputOverlap(ov) {
360
+ this.overlap = ov;
361
+ }
362
+ set inputOffsetX(ox) {
363
+ this.offsetX = ox;
364
+ }
365
+ set inputOffsetY(oy) {
366
+ this.offsetY = oy;
328
367
  }
329
368
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: LuPopoverTargetDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
330
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.14", type: LuPopoverTargetDirective, isStandalone: true, selector: "[luPopoverTarget]", inputs: { inputPosition: { classPropertyName: "inputPosition", publicName: "luPopoverPosition", isSignal: true, isRequired: false, transformFunction: null }, inputAlignment: { classPropertyName: "inputAlignment", publicName: "luPopoverAlignment", isSignal: true, isRequired: false, transformFunction: null }, inputOverlap: { classPropertyName: "inputOverlap", publicName: "luPopoverOverlap", isSignal: true, isRequired: false, transformFunction: null }, inputOffsetX: { classPropertyName: "inputOffsetX", publicName: "luPopoverOffsetX", isSignal: true, isRequired: false, transformFunction: null }, inputOffsetY: { classPropertyName: "inputOffsetY", publicName: "luPopoverOffsetY", isSignal: true, isRequired: false, transformFunction: null } }, exportAs: ["LuPopoverTarget"], usesInheritance: true, ngImport: i0 }); }
369
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.14", type: LuPopoverTargetDirective, isStandalone: true, selector: "[luPopoverTarget]", inputs: { inputPosition: ["luPopoverPosition", "inputPosition"], inputAlignment: ["luPopoverAlignment", "inputAlignment"], inputOverlap: ["luPopoverOverlap", "inputOverlap"], inputOffsetX: ["luPopoverOffsetX", "inputOffsetX"], inputOffsetY: ["luPopoverOffsetY", "inputOffsetY"] }, exportAs: ["LuPopoverTarget"], usesInheritance: true, ngImport: i0 }); }
331
370
  }
332
371
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: LuPopoverTargetDirective, decorators: [{
333
372
  type: Directive,
@@ -335,7 +374,22 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
335
374
  selector: '[luPopoverTarget]',
336
375
  exportAs: 'LuPopoverTarget',
337
376
  }]
338
- }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { inputPosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "luPopoverPosition", required: false }] }], inputAlignment: [{ type: i0.Input, args: [{ isSignal: true, alias: "luPopoverAlignment", required: false }] }], inputOverlap: [{ type: i0.Input, args: [{ isSignal: true, alias: "luPopoverOverlap", required: false }] }], inputOffsetX: [{ type: i0.Input, args: [{ isSignal: true, alias: "luPopoverOffsetX", required: false }] }], inputOffsetY: [{ type: i0.Input, args: [{ isSignal: true, alias: "luPopoverOffsetY", required: false }] }] } });
377
+ }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { inputPosition: [{
378
+ type: Input,
379
+ args: ['luPopoverPosition']
380
+ }], inputAlignment: [{
381
+ type: Input,
382
+ args: ['luPopoverAlignment']
383
+ }], inputOverlap: [{
384
+ type: Input,
385
+ args: ['luPopoverOverlap']
386
+ }], inputOffsetX: [{
387
+ type: Input,
388
+ args: ['luPopoverOffsetX']
389
+ }], inputOffsetY: [{
390
+ type: Input,
391
+ args: ['luPopoverOffsetY']
392
+ }] } });
339
393
 
340
394
  // tslint:disable-next-line: max-line-length
341
395
  class ALuPopoverTrigger {
@@ -811,6 +865,48 @@ class ALuPopoverTrigger {
811
865
  }
812
866
 
813
867
  class LuPopoverTriggerDirective extends ALuPopoverTrigger {
868
+ /** References the popover instance that the trigger is associated with. */
869
+ set inputPanel(p) {
870
+ this.panel = p;
871
+ }
872
+ /** References the popover target instance that the trigger is associated with. */
873
+ set inputTarget(t) {
874
+ this.target = t;
875
+ }
876
+ /** References the popover target instance that the trigger is associated with. */
877
+ set inputTriggerEvent(te) {
878
+ this.triggerEvent = te;
879
+ }
880
+ /** how you want to position the panel relative to the target, allowed values: above, below, before, after */
881
+ set inputPosition(pos) {
882
+ this.target.position = pos;
883
+ }
884
+ /** how the panel will be align with the target, allowed values: top, bottom, left, right */
885
+ set inputAlignment(al) {
886
+ this.target.alignment = al;
887
+ }
888
+ /** when trigger = hover, delay before the popover panel appears */
889
+ set inputEnterDelay(d) {
890
+ this.enterDelay = d;
891
+ }
892
+ /** when trigger = hover, delay before the popover panel disappears */
893
+ set inputLeaveDelay(d) {
894
+ this.leaveDelay = d;
895
+ }
896
+ /** disable popover apparition */
897
+ set inputDisabled(d) {
898
+ this.disabled = d;
899
+ }
900
+ /** set to true if you want the panel to appear on top of the target */
901
+ set inputOverlap(ov) {
902
+ this.target.overlap = ov;
903
+ }
904
+ set inputOffsetX(ox) {
905
+ this.target.offsetX = ox;
906
+ }
907
+ set inputOffsetY(oy) {
908
+ this.target.offsetY = oy;
909
+ }
814
910
  /** accessibility attribute - dont override */
815
911
  get _attrAriaExpanded() {
816
912
  return this._popoverOpen;
@@ -828,49 +924,15 @@ class LuPopoverTriggerDirective extends ALuPopoverTrigger {
828
924
  this._overlay = _overlay;
829
925
  this._elementRef = _elementRef;
830
926
  this._viewContainerRef = _viewContainerRef;
831
- /** References the popover instance that the trigger is associated with. */
832
- this.inputPanel = input(undefined, { ...(ngDevMode ? { debugName: "inputPanel" } : /* istanbul ignore next */ {}), alias: 'luPopover' });
833
- /** References the popover target instance that the trigger is associated with. */
834
- this.inputTarget = input(undefined, { ...(ngDevMode ? { debugName: "inputTarget" } : /* istanbul ignore next */ {}), alias: 'luPopoverTarget' });
835
- /** References the popover target instance that the trigger is associated with. */
836
- this.inputTriggerEvent = input(undefined, { ...(ngDevMode ? { debugName: "inputTriggerEvent" } : /* istanbul ignore next */ {}), alias: 'luPopoverTrigger' });
927
+ /** Event emitted when the associated popover is opened. */
928
+ // eslint-disable-next-line @angular-eslint/no-output-on-prefix
837
929
  this.onOpen = new EventEmitter();
838
- this.onClose = new EventEmitter();
839
930
  /** Event emitted when the associated popover is closed. */
840
- this.onCloseOutput = outputFromObservable(this.onClose, { alias: 'luPopoverOnClose' });
841
- /** Event emitted when the associated popover is opened. */
842
- this.onOpenOutput = outputFromObservable(this.onOpen, { alias: 'luPopoverOnOpen' });
843
- /** how you want to position the panel relative to the target, allowed values: above, below, before, after */
844
- this.inputPosition = input(undefined, { ...(ngDevMode ? { debugName: "inputPosition" } : /* istanbul ignore next */ {}), alias: 'luPopoverPosition' });
845
- /** how the panel will be align with the target, allowed values: top, bottom, left, right */
846
- this.inputAlignment = input(undefined, { ...(ngDevMode ? { debugName: "inputAlignment" } : /* istanbul ignore next */ {}), alias: 'luPopoverAlignment' });
847
- /** when trigger = hover, delay before the popover panel appears */
848
- this.inputEnterDelay = input(undefined, { ...(ngDevMode ? { debugName: "inputEnterDelay" } : /* istanbul ignore next */ {}), alias: 'luPopoverEnterDelay' });
849
- /** when trigger = hover, delay before the popover panel disappears */
850
- this.inputLeaveDelay = input(undefined, { ...(ngDevMode ? { debugName: "inputLeaveDelay" } : /* istanbul ignore next */ {}), alias: 'luPopoverLeaveDelay' });
851
- /** disable popover apparition */
852
- this.inputDisabled = input(undefined, { ...(ngDevMode ? { debugName: "inputDisabled" } : /* istanbul ignore next */ {}), alias: 'luPopoverDisabled' });
853
- /** set to true if you want the panel to appear on top of the target */
854
- this.inputOverlap = input(undefined, { ...(ngDevMode ? { debugName: "inputOverlap" } : /* istanbul ignore next */ {}), alias: 'luPopoverOverlap' });
855
- this.inputOffsetX = input(undefined, { ...(ngDevMode ? { debugName: "inputOffsetX" } : /* istanbul ignore next */ {}), alias: 'luPopoverOffsetX' });
856
- this.inputOffsetY = input(undefined, { ...(ngDevMode ? { debugName: "inputOffsetY" } : /* istanbul ignore next */ {}), alias: 'luPopoverOffsetY' });
931
+ // eslint-disable-next-line @angular-eslint/no-output-on-prefix
932
+ this.onClose = new EventEmitter();
857
933
  this.target = new LuPopoverTarget();
858
934
  this.target.elementRef = this._elementRef;
859
935
  this._triggerId = this._elementRef.nativeElement.getAttribute('id') || this._triggerId;
860
- this.#initTarget();
861
- syncInputSignal(this.inputPanel, (inputPanel) => (this.panel = inputPanel));
862
- syncInputSignal(this.inputTriggerEvent, (inputTriggerEvent) => (this.triggerEvent = inputTriggerEvent));
863
- syncInputSignal(this.inputEnterDelay, (inputEnterDelay) => (this.enterDelay = inputEnterDelay));
864
- syncInputSignal(this.inputLeaveDelay, (inputLeaveDelay) => (this.leaveDelay = inputLeaveDelay));
865
- syncInputSignal(this.inputDisabled, (inputDisabled) => (this.disabled = inputDisabled));
866
- }
867
- #initTarget() {
868
- syncInputSignal(this.inputTarget, (inputTarget) => (this.target = inputTarget));
869
- syncInputSignal(this.inputPosition, (inputPosition) => (this.target.position = inputPosition));
870
- syncInputSignal(this.inputAlignment, (inputAlignment) => (this.target.alignment = inputAlignment));
871
- syncInputSignal(this.inputOverlap, (inputOverlap) => (this.target.overlap = inputOverlap));
872
- syncInputSignal(this.inputOffsetX, (inputOffsetX) => (this.target.offsetX = inputOffsetX));
873
- syncInputSignal(this.inputOffsetY, (inputOffsetY) => (this.target.offsetY = inputOffsetY));
874
936
  }
875
937
  onClick() {
876
938
  super.onClick();
@@ -905,25 +967,78 @@ class LuPopoverTriggerDirective extends ALuPopoverTrigger {
905
967
  this.onClose.emit();
906
968
  }
907
969
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: LuPopoverTriggerDirective, deps: [{ token: i1$1.Overlay }, { token: i0.ElementRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); }
908
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.14", type: LuPopoverTriggerDirective, isStandalone: true, selector: "[luPopover]", inputs: { inputPanel: { classPropertyName: "inputPanel", publicName: "luPopover", isSignal: true, isRequired: false, transformFunction: null }, inputTarget: { classPropertyName: "inputTarget", publicName: "luPopoverTarget", isSignal: true, isRequired: false, transformFunction: null }, inputTriggerEvent: { classPropertyName: "inputTriggerEvent", publicName: "luPopoverTrigger", isSignal: true, isRequired: false, transformFunction: null }, inputPosition: { classPropertyName: "inputPosition", publicName: "luPopoverPosition", isSignal: true, isRequired: false, transformFunction: null }, inputAlignment: { classPropertyName: "inputAlignment", publicName: "luPopoverAlignment", isSignal: true, isRequired: false, transformFunction: null }, inputEnterDelay: { classPropertyName: "inputEnterDelay", publicName: "luPopoverEnterDelay", isSignal: true, isRequired: false, transformFunction: null }, inputLeaveDelay: { classPropertyName: "inputLeaveDelay", publicName: "luPopoverLeaveDelay", isSignal: true, isRequired: false, transformFunction: null }, inputDisabled: { classPropertyName: "inputDisabled", publicName: "luPopoverDisabled", isSignal: true, isRequired: false, transformFunction: null }, inputOverlap: { classPropertyName: "inputOverlap", publicName: "luPopoverOverlap", isSignal: true, isRequired: false, transformFunction: null }, inputOffsetX: { classPropertyName: "inputOffsetX", publicName: "luPopoverOffsetX", isSignal: true, isRequired: false, transformFunction: null }, inputOffsetY: { classPropertyName: "inputOffsetY", publicName: "luPopoverOffsetY", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onCloseOutput: "luPopoverOnClose", onOpenOutput: "luPopoverOnOpen" }, host: { listeners: { "click": "onClick()", "mouseenter": "onMouseEnter()", "mouseleave": "onMouseLeave()", "focus": "onFocus()", "blur": "onBlur()" }, properties: { "attr.aria-expanded": "_attrAriaExpanded", "attr.id": "_attrId", "attr.aria-controls": "_attrAriaControls" } }, exportAs: ["LuPopoverTrigger"], usesInheritance: true, ngImport: i0 }); }
970
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.14", type: LuPopoverTriggerDirective, isStandalone: true, selector: "[luPopover]", inputs: { inputPanel: ["luPopover", "inputPanel"], inputTarget: ["luPopoverTarget", "inputTarget"], inputTriggerEvent: ["luPopoverTrigger", "inputTriggerEvent"], inputPosition: ["luPopoverPosition", "inputPosition"], inputAlignment: ["luPopoverAlignment", "inputAlignment"], inputEnterDelay: ["luPopoverEnterDelay", "inputEnterDelay"], inputLeaveDelay: ["luPopoverLeaveDelay", "inputLeaveDelay"], inputDisabled: ["luPopoverDisabled", "inputDisabled"], inputOverlap: ["luPopoverOverlap", "inputOverlap"], inputOffsetX: ["luPopoverOffsetX", "inputOffsetX"], inputOffsetY: ["luPopoverOffsetY", "inputOffsetY"] }, outputs: { onOpen: "luPopoverOnOpen", onClose: "luPopoverOnClose" }, host: { listeners: { "click": "onClick()", "mouseenter": "onMouseEnter()", "mouseleave": "onMouseLeave()", "focus": "onFocus()", "blur": "onBlur()" }, properties: { "attr.aria-expanded": "this._attrAriaExpanded", "attr.id": "this._attrId", "attr.aria-controls": "this._attrAriaControls" } }, exportAs: ["LuPopoverTrigger"], usesInheritance: true, ngImport: i0 }); }
909
971
  }
910
972
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: LuPopoverTriggerDirective, decorators: [{
911
973
  type: Directive,
912
974
  args: [{
913
975
  selector: '[luPopover]',
914
976
  exportAs: 'LuPopoverTrigger',
915
- host: {
916
- '[attr.aria-expanded]': '_attrAriaExpanded',
917
- '[attr.id]': '_attrId',
918
- '[attr.aria-controls]': '_attrAriaControls',
919
- '(click)': 'onClick()',
920
- '(mouseenter)': 'onMouseEnter()',
921
- '(mouseleave)': 'onMouseLeave()',
922
- '(focus)': 'onFocus()',
923
- '(blur)': 'onBlur()',
924
- },
925
977
  }]
926
- }], ctorParameters: () => [{ type: i1$1.Overlay }, { type: i0.ElementRef }, { type: i0.ViewContainerRef }], propDecorators: { inputPanel: [{ type: i0.Input, args: [{ isSignal: true, alias: "luPopover", required: false }] }], inputTarget: [{ type: i0.Input, args: [{ isSignal: true, alias: "luPopoverTarget", required: false }] }], inputTriggerEvent: [{ type: i0.Input, args: [{ isSignal: true, alias: "luPopoverTrigger", required: false }] }], onCloseOutput: [{ type: i0.Output, args: ["luPopoverOnClose"] }], onOpenOutput: [{ type: i0.Output, args: ["luPopoverOnOpen"] }], inputPosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "luPopoverPosition", required: false }] }], inputAlignment: [{ type: i0.Input, args: [{ isSignal: true, alias: "luPopoverAlignment", required: false }] }], inputEnterDelay: [{ type: i0.Input, args: [{ isSignal: true, alias: "luPopoverEnterDelay", required: false }] }], inputLeaveDelay: [{ type: i0.Input, args: [{ isSignal: true, alias: "luPopoverLeaveDelay", required: false }] }], inputDisabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "luPopoverDisabled", required: false }] }], inputOverlap: [{ type: i0.Input, args: [{ isSignal: true, alias: "luPopoverOverlap", required: false }] }], inputOffsetX: [{ type: i0.Input, args: [{ isSignal: true, alias: "luPopoverOffsetX", required: false }] }], inputOffsetY: [{ type: i0.Input, args: [{ isSignal: true, alias: "luPopoverOffsetY", required: false }] }] } });
978
+ }], ctorParameters: () => [{ type: i1$1.Overlay }, { type: i0.ElementRef }, { type: i0.ViewContainerRef }], propDecorators: { inputPanel: [{
979
+ type: Input,
980
+ args: ['luPopover']
981
+ }], inputTarget: [{
982
+ type: Input,
983
+ args: ['luPopoverTarget']
984
+ }], inputTriggerEvent: [{
985
+ type: Input,
986
+ args: ['luPopoverTrigger']
987
+ }], onOpen: [{
988
+ type: Output,
989
+ args: ['luPopoverOnOpen']
990
+ }], onClose: [{
991
+ type: Output,
992
+ args: ['luPopoverOnClose']
993
+ }], inputPosition: [{
994
+ type: Input,
995
+ args: ['luPopoverPosition']
996
+ }], inputAlignment: [{
997
+ type: Input,
998
+ args: ['luPopoverAlignment']
999
+ }], inputEnterDelay: [{
1000
+ type: Input,
1001
+ args: ['luPopoverEnterDelay']
1002
+ }], inputLeaveDelay: [{
1003
+ type: Input,
1004
+ args: ['luPopoverLeaveDelay']
1005
+ }], inputDisabled: [{
1006
+ type: Input,
1007
+ args: ['luPopoverDisabled']
1008
+ }], inputOverlap: [{
1009
+ type: Input,
1010
+ args: ['luPopoverOverlap']
1011
+ }], inputOffsetX: [{
1012
+ type: Input,
1013
+ args: ['luPopoverOffsetX']
1014
+ }], inputOffsetY: [{
1015
+ type: Input,
1016
+ args: ['luPopoverOffsetY']
1017
+ }], _attrAriaExpanded: [{
1018
+ type: HostBinding,
1019
+ args: ['attr.aria-expanded']
1020
+ }], _attrId: [{
1021
+ type: HostBinding,
1022
+ args: ['attr.id']
1023
+ }], _attrAriaControls: [{
1024
+ type: HostBinding,
1025
+ args: ['attr.aria-controls']
1026
+ }], onClick: [{
1027
+ type: HostListener,
1028
+ args: ['click']
1029
+ }], onMouseEnter: [{
1030
+ type: HostListener,
1031
+ args: ['mouseenter']
1032
+ }], onMouseLeave: [{
1033
+ type: HostListener,
1034
+ args: ['mouseleave']
1035
+ }], onFocus: [{
1036
+ type: HostListener,
1037
+ args: ['focus']
1038
+ }], onBlur: [{
1039
+ type: HostListener,
1040
+ args: ['blur']
1041
+ }] } });
927
1042
 
928
1043
  /**
929
1044
  * @deprecated use `LuPopoverPanelComponent, LuPopoverTargetDirective, LuPopoverTriggerDirective` instead