@slotted/angular 0.1.0-beta.4 → 0.1.0-beta.5

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/docs/AGENTS.snippet.md +2 -0
  2. package/docs/app-shell.examples.md +1 -1
  3. package/docs/app-shell.json +4 -4
  4. package/docs/app-shell.md +2 -2
  5. package/docs/guidelines/README.md +2 -2
  6. package/docs/guidelines/index.md +1 -1
  7. package/docs/guidelines/own-elements.md +1 -1
  8. package/docs/page-header.json +1 -0
  9. package/docs/page-header.md +1 -1
  10. package/docs/skills/build-own-element/SKILL.md +6 -6
  11. package/docs/skills/compose-screen/SKILL.md +6 -6
  12. package/docs/skills/review-screen/SKILL.md +6 -6
  13. package/docs/skills/theme-app/SKILL.md +1 -1
  14. package/docs/skills/waiting-states/SKILL.md +2 -2
  15. package/docs/tabs.json +13 -3
  16. package/docs/tabs.md +3 -2
  17. package/fesm2022/slotted-angular-app-shell.mjs +15 -9
  18. package/fesm2022/slotted-angular-app-shell.mjs.map +1 -1
  19. package/fesm2022/slotted-angular-cascader.mjs +7 -1
  20. package/fesm2022/slotted-angular-cascader.mjs.map +1 -1
  21. package/fesm2022/slotted-angular-chart.mjs +13 -3
  22. package/fesm2022/slotted-angular-chart.mjs.map +1 -1
  23. package/fesm2022/slotted-angular-date-picker.mjs +4 -6
  24. package/fesm2022/slotted-angular-date-picker.mjs.map +1 -1
  25. package/fesm2022/slotted-angular-date-range-picker.mjs +4 -6
  26. package/fesm2022/slotted-angular-date-range-picker.mjs.map +1 -1
  27. package/fesm2022/slotted-angular-datetime-picker.mjs +4 -6
  28. package/fesm2022/slotted-angular-datetime-picker.mjs.map +1 -1
  29. package/fesm2022/slotted-angular-datetime-range-picker.mjs +4 -6
  30. package/fesm2022/slotted-angular-datetime-range-picker.mjs.map +1 -1
  31. package/fesm2022/slotted-angular-entity-picker.mjs +7 -1
  32. package/fesm2022/slotted-angular-entity-picker.mjs.map +1 -1
  33. package/fesm2022/slotted-angular-page-header.mjs +2 -2
  34. package/fesm2022/slotted-angular-page-header.mjs.map +1 -1
  35. package/fesm2022/slotted-angular-popover.mjs +7 -1
  36. package/fesm2022/slotted-angular-popover.mjs.map +1 -1
  37. package/fesm2022/slotted-angular-scroll-area.mjs +6 -2
  38. package/fesm2022/slotted-angular-scroll-area.mjs.map +1 -1
  39. package/fesm2022/slotted-angular-select.mjs +49 -17
  40. package/fesm2022/slotted-angular-select.mjs.map +1 -1
  41. package/fesm2022/slotted-angular-stat-card.mjs +2 -2
  42. package/fesm2022/slotted-angular-stat-card.mjs.map +1 -1
  43. package/fesm2022/slotted-angular-table.mjs +11 -4
  44. package/fesm2022/slotted-angular-table.mjs.map +1 -1
  45. package/fesm2022/slotted-angular-tabs.mjs +13 -6
  46. package/fesm2022/slotted-angular-tabs.mjs.map +1 -1
  47. package/fesm2022/slotted-angular-time-picker.mjs +4 -6
  48. package/fesm2022/slotted-angular-time-picker.mjs.map +1 -1
  49. package/fesm2022/slotted-angular-time-range-picker.mjs +4 -6
  50. package/fesm2022/slotted-angular-time-range-picker.mjs.map +1 -1
  51. package/fesm2022/slotted-angular-tooltip.mjs +7 -1
  52. package/fesm2022/slotted-angular-tooltip.mjs.map +1 -1
  53. package/package.json +3 -3
  54. package/types/slotted-angular-app-shell.d.ts +5 -3
  55. package/types/slotted-angular-app-shell.d.ts.map +1 -1
  56. package/types/slotted-angular-cascader.d.ts.map +1 -1
  57. package/types/slotted-angular-chart.d.ts +1 -0
  58. package/types/slotted-angular-chart.d.ts.map +1 -1
  59. package/types/slotted-angular-date-picker.d.ts +0 -1
  60. package/types/slotted-angular-date-picker.d.ts.map +1 -1
  61. package/types/slotted-angular-date-range-picker.d.ts +0 -1
  62. package/types/slotted-angular-date-range-picker.d.ts.map +1 -1
  63. package/types/slotted-angular-datetime-picker.d.ts +0 -1
  64. package/types/slotted-angular-datetime-picker.d.ts.map +1 -1
  65. package/types/slotted-angular-datetime-range-picker.d.ts +0 -1
  66. package/types/slotted-angular-datetime-range-picker.d.ts.map +1 -1
  67. package/types/slotted-angular-entity-picker.d.ts.map +1 -1
  68. package/types/slotted-angular-popover.d.ts.map +1 -1
  69. package/types/slotted-angular-scroll-area.d.ts.map +1 -1
  70. package/types/slotted-angular-select.d.ts +12 -2
  71. package/types/slotted-angular-select.d.ts.map +1 -1
  72. package/types/slotted-angular-table.d.ts +1 -0
  73. package/types/slotted-angular-table.d.ts.map +1 -1
  74. package/types/slotted-angular-tabs.d.ts +3 -4
  75. package/types/slotted-angular-tabs.d.ts.map +1 -1
  76. package/types/slotted-angular-time-picker.d.ts +0 -1
  77. package/types/slotted-angular-time-picker.d.ts.map +1 -1
  78. package/types/slotted-angular-time-range-picker.d.ts +0 -1
  79. package/types/slotted-angular-time-range-picker.d.ts.map +1 -1
  80. package/types/slotted-angular-tooltip.d.ts.map +1 -1
@@ -422,6 +422,11 @@ class SlSelect {
422
422
  constructor() {
423
423
  const destroyRef = inject(DestroyRef);
424
424
  const host = inject((ElementRef));
425
+ /* Every press resets the record in the capture phase; one on the frame sets it after. */
426
+ const doc = host.nativeElement.ownerDocument;
427
+ const resetPress = () => (this.pressedFrame = false);
428
+ doc.addEventListener('pointerdown', resetPress, true);
429
+ destroyRef.onDestroy(() => doc.removeEventListener('pointerdown', resetPress, true));
425
430
  effect(() => {
426
431
  const row = this.tags()?.nativeElement ?? null;
427
432
  const trigger = this.chipOverflow()?.nativeElement ?? null;
@@ -516,10 +521,26 @@ class SlSelect {
516
521
  * Whether a click landed on the control's frame. A click a `label` elsewhere
517
522
  * forwards to the button carries the label's coordinates, which lie outside it.
518
523
  */
519
- pressedOnFrame(x, y) {
520
- const button = this.triggerRef().nativeElement;
521
- const box = (button.parentElement ?? button).getBoundingClientRect();
522
- return x >= box.left && x <= box.right && y >= box.top && y <= box.bottom;
524
+ /** The last press went down on the frame; see `onTriggerClick`. */
525
+ pressedFrame = false;
526
+ onFramePointerDown() {
527
+ this.pressedFrame = true;
528
+ this.prepare();
529
+ }
530
+ /**
531
+ * The reader is about to open the popup: the control took focus or a press.
532
+ * The portal's layer is made then, because making it reads the trigger's
533
+ * computed style, and a read in the open's own task is a style recalculation
534
+ * the first frame waits for. A press focuses before it clicks, in a task of
535
+ * its own.
536
+ */
537
+ prepare() {
538
+ if (this.portalRoot !== null)
539
+ return;
540
+ this.portalRoot = createPortalRoot({
541
+ origin: this.triggerRef().nativeElement,
542
+ disabled: this.portal() === false,
543
+ });
523
544
  }
524
545
  scrollToKey(value) {
525
546
  const option = this.options().find((candidate) => candidate.dataset['value'] === value);
@@ -613,11 +634,16 @@ class SlSelect {
613
634
  }
614
635
  onTriggerClick(event) {
615
636
  /* A press on the field's label arrives here as the click the label
616
- forwards: a pointer click at the label's coordinates, outside the frame.
617
- It focuses the control and does not open the list — the select-only
618
- example's label only focuses, and so does a native select's. A keyboard
619
- or assistive-technology click carries detail 0 and opens. */
620
- if (event.detail > 0 && !this.pressedOnFrame(event.clientX, event.clientY)) {
637
+ forwards: a pointer click whose press went down on the label, not on
638
+ the frame. It focuses the control and does not open the list — the
639
+ select-only example's label only focuses, and so does a native
640
+ select's. A keyboard or assistive-technology click carries detail 0 and
641
+ opens. The press is recorded rather than the click's coordinates
642
+ compared with the frame's box: that box is a layout read in the click's
643
+ own task, after the release changed the frame's style. */
644
+ const fromFrame = this.pressedFrame;
645
+ this.pressedFrame = false;
646
+ if (event.detail > 0 && !fromFrame) {
621
647
  this.focus();
622
648
  return;
623
649
  }
@@ -856,17 +882,14 @@ class SlSelect {
856
882
  this.view.detectChanges();
857
883
  return;
858
884
  }
859
- this.portalRoot = createPortalRoot({
860
- origin: this.triggerRef().nativeElement,
861
- disabled: this.portal() === false,
862
- });
885
+ this.prepare();
863
886
  this.view = this.viewContainer.createEmbeddedView(this.template());
864
887
  this.view.detectChanges();
865
888
  this.layerNode = this.view.rootNodes.find((node) => node instanceof HTMLElement);
866
889
  this.surfaceNode = this.layerNode?.querySelector("[data-part='content']") ?? null;
867
890
  if (this.layerNode === null)
868
891
  return;
869
- this.portalRoot.container?.append(this.layerNode);
892
+ this.portalRoot?.container?.append(this.layerNode);
870
893
  this.presence = createPresence({ present: this.isOpen() });
871
894
  this.presence.setNode(this.layerNode);
872
895
  this.recount();
@@ -892,8 +915,15 @@ class SlSelect {
892
915
  strategy: this.strategy() ?? this.defaults.strategy,
893
916
  });
894
917
  /* The height that bounds the list arrives with the position, after the
895
- highlight has landed, so the highlighted row is revealed again. */
896
- void this.positioner.update().then(() => this.reveal(this.highlightedValue()));
918
+ highlight has landed, so the highlighted row is revealed again — in the
919
+ next frame, whose layout the browser computes anyway, rather than by a
920
+ read here after the position's writes. */
921
+ void this.positioner.update().then(() => {
922
+ const view = this.layerNode?.ownerDocument.defaultView;
923
+ if (view === null || view === undefined)
924
+ return;
925
+ view.requestAnimationFrame(() => this.reveal(this.highlightedValue()));
926
+ });
897
927
  }
898
928
  bind() {
899
929
  if (this.layerNode === null)
@@ -1020,7 +1050,7 @@ class SlSelect {
1020
1050
  return this.selection().length === 0 ? { required: true } : null;
1021
1051
  }
1022
1052
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlSelect, deps: [], target: i0.ɵɵFactoryTarget.Component });
1023
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.7", type: SlSelect, isStandalone: true, selector: "sl-select", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, highlightedValue: { classPropertyName: "highlightedValue", publicName: "highlightedValue", isSignal: true, isRequired: false, transformFunction: null }, searchValue: { classPropertyName: "searchValue", publicName: "searchValue", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "aria-label", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, form: { classPropertyName: "form", publicName: "form", isSignal: true, isRequired: false, transformFunction: null }, items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, total: { classPropertyName: "total", publicName: "total", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, side: { classPropertyName: "side", publicName: "side", isSignal: true, isRequired: false, transformFunction: null }, align: { classPropertyName: "align", publicName: "align", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, mount: { classPropertyName: "mount", publicName: "mount", isSignal: true, isRequired: false, transformFunction: null }, strategy: { classPropertyName: "strategy", publicName: "strategy", isSignal: true, isRequired: false, transformFunction: null }, messages: { classPropertyName: "messages", publicName: "messages", isSignal: true, isRequired: false, transformFunction: null }, filter: { classPropertyName: "filter", publicName: "filter", isSignal: true, isRequired: false, transformFunction: null }, locale: { classPropertyName: "locale", publicName: "locale", isSignal: true, isRequired: false, transformFunction: null }, sideOffset: { classPropertyName: "sideOffset", publicName: "sideOffset", isSignal: true, isRequired: false, transformFunction: null }, alignOffset: { classPropertyName: "alignOffset", publicName: "alignOffset", isSignal: true, isRequired: false, transformFunction: null }, collisionPadding: { classPropertyName: "collisionPadding", publicName: "collisionPadding", isSignal: true, isRequired: false, transformFunction: null }, typeaheadTimeout: { classPropertyName: "typeaheadTimeout", publicName: "typeaheadTimeout", isSignal: true, isRequired: false, transformFunction: null }, multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: true, isRequired: false, transformFunction: null }, clearable: { classPropertyName: "clearable", publicName: "clearable", isSignal: true, isRequired: false, transformFunction: null }, loop: { classPropertyName: "loop", publicName: "loop", isSignal: true, isRequired: false, transformFunction: null }, search: { classPropertyName: "search", publicName: "search", isSignal: true, isRequired: false, transformFunction: null }, highlightMatch: { classPropertyName: "highlightMatch", publicName: "highlightMatch", isSignal: true, isRequired: false, transformFunction: null }, typeahead: { classPropertyName: "typeahead", publicName: "typeahead", isSignal: true, isRequired: false, transformFunction: null }, closeOnSelect: { classPropertyName: "closeOnSelect", publicName: "closeOnSelect", isSignal: true, isRequired: false, transformFunction: null }, closeOnEscape: { classPropertyName: "closeOnEscape", publicName: "closeOnEscape", isSignal: true, isRequired: false, transformFunction: null }, closeOnOutsidePress: { classPropertyName: "closeOnOutsidePress", publicName: "closeOnOutsidePress", isSignal: true, isRequired: false, transformFunction: null }, flip: { classPropertyName: "flip", publicName: "flip", isSignal: true, isRequired: false, transformFunction: null }, shift: { classPropertyName: "shift", publicName: "shift", isSignal: true, isRequired: false, transformFunction: null }, hideWhenDetached: { classPropertyName: "hideWhenDetached", publicName: "hideWhenDetached", isSignal: true, isRequired: false, transformFunction: null }, portal: { classPropertyName: "portal", publicName: "portal", isSignal: true, isRequired: false, transformFunction: null }, fullWidth: { classPropertyName: "fullWidth", publicName: "fullWidth", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, readOnly: { classPropertyName: "readOnly", publicName: "readOnly", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, invalid: { classPropertyName: "invalid", publicName: "invalid", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", valueChangeRequest: "valueChangeRequest", open: "openChange", openChangeRequest: "openChangeRequest", highlightedValue: "highlightedValueChange", highlightedValueChangeRequest: "highlightedValueChangeRequest", searchValue: "searchValueChange", searchValueChangeRequest: "searchValueChangeRequest" }, host: { attributes: { "data-ui": "select", "data-part": "root" }, properties: { "attr.aria-label": "null", "attr.aria-labelledby": "null", "attr.data-size": "resolvedSize()", "attr.data-variant": "resolvedVariant()", "attr.data-full-width": "resolvedFullWidth() ? '' : null", "attr.data-multiple": "resolvedMultiple() ? '' : null", "attr.data-open": "isOpen() ? '' : null", "attr.data-disabled": "resolvedDisabled() ? '' : null", "attr.data-readonly": "resolvedReadOnly() ? '' : null", "attr.data-invalid": "resolvedInvalid() ? '' : null", "attr.data-required": "resolvedRequired() ? '' : null", "attr.data-loading": "loading() ? '' : null", "attr.data-narrow": "narrow() ? '' : null" } }, providers: [
1053
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.7", type: SlSelect, isStandalone: true, selector: "sl-select", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, highlightedValue: { classPropertyName: "highlightedValue", publicName: "highlightedValue", isSignal: true, isRequired: false, transformFunction: null }, searchValue: { classPropertyName: "searchValue", publicName: "searchValue", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "aria-label", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, form: { classPropertyName: "form", publicName: "form", isSignal: true, isRequired: false, transformFunction: null }, items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, total: { classPropertyName: "total", publicName: "total", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, side: { classPropertyName: "side", publicName: "side", isSignal: true, isRequired: false, transformFunction: null }, align: { classPropertyName: "align", publicName: "align", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, mount: { classPropertyName: "mount", publicName: "mount", isSignal: true, isRequired: false, transformFunction: null }, strategy: { classPropertyName: "strategy", publicName: "strategy", isSignal: true, isRequired: false, transformFunction: null }, messages: { classPropertyName: "messages", publicName: "messages", isSignal: true, isRequired: false, transformFunction: null }, filter: { classPropertyName: "filter", publicName: "filter", isSignal: true, isRequired: false, transformFunction: null }, locale: { classPropertyName: "locale", publicName: "locale", isSignal: true, isRequired: false, transformFunction: null }, sideOffset: { classPropertyName: "sideOffset", publicName: "sideOffset", isSignal: true, isRequired: false, transformFunction: null }, alignOffset: { classPropertyName: "alignOffset", publicName: "alignOffset", isSignal: true, isRequired: false, transformFunction: null }, collisionPadding: { classPropertyName: "collisionPadding", publicName: "collisionPadding", isSignal: true, isRequired: false, transformFunction: null }, typeaheadTimeout: { classPropertyName: "typeaheadTimeout", publicName: "typeaheadTimeout", isSignal: true, isRequired: false, transformFunction: null }, multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: true, isRequired: false, transformFunction: null }, clearable: { classPropertyName: "clearable", publicName: "clearable", isSignal: true, isRequired: false, transformFunction: null }, loop: { classPropertyName: "loop", publicName: "loop", isSignal: true, isRequired: false, transformFunction: null }, search: { classPropertyName: "search", publicName: "search", isSignal: true, isRequired: false, transformFunction: null }, highlightMatch: { classPropertyName: "highlightMatch", publicName: "highlightMatch", isSignal: true, isRequired: false, transformFunction: null }, typeahead: { classPropertyName: "typeahead", publicName: "typeahead", isSignal: true, isRequired: false, transformFunction: null }, closeOnSelect: { classPropertyName: "closeOnSelect", publicName: "closeOnSelect", isSignal: true, isRequired: false, transformFunction: null }, closeOnEscape: { classPropertyName: "closeOnEscape", publicName: "closeOnEscape", isSignal: true, isRequired: false, transformFunction: null }, closeOnOutsidePress: { classPropertyName: "closeOnOutsidePress", publicName: "closeOnOutsidePress", isSignal: true, isRequired: false, transformFunction: null }, flip: { classPropertyName: "flip", publicName: "flip", isSignal: true, isRequired: false, transformFunction: null }, shift: { classPropertyName: "shift", publicName: "shift", isSignal: true, isRequired: false, transformFunction: null }, hideWhenDetached: { classPropertyName: "hideWhenDetached", publicName: "hideWhenDetached", isSignal: true, isRequired: false, transformFunction: null }, portal: { classPropertyName: "portal", publicName: "portal", isSignal: true, isRequired: false, transformFunction: null }, fullWidth: { classPropertyName: "fullWidth", publicName: "fullWidth", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, readOnly: { classPropertyName: "readOnly", publicName: "readOnly", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, invalid: { classPropertyName: "invalid", publicName: "invalid", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", valueChangeRequest: "valueChangeRequest", open: "openChange", openChangeRequest: "openChangeRequest", highlightedValue: "highlightedValueChange", highlightedValueChangeRequest: "highlightedValueChangeRequest", searchValue: "searchValueChange", searchValueChangeRequest: "searchValueChangeRequest" }, host: { attributes: { "data-ui": "select", "data-part": "root" }, listeners: { "pointerdown": "onFramePointerDown()", "focusin": "prepare()" }, properties: { "attr.aria-label": "null", "attr.aria-labelledby": "null", "attr.data-size": "resolvedSize()", "attr.data-variant": "resolvedVariant()", "attr.data-full-width": "resolvedFullWidth() ? '' : null", "attr.data-multiple": "resolvedMultiple() ? '' : null", "attr.data-open": "isOpen() ? '' : null", "attr.data-disabled": "resolvedDisabled() ? '' : null", "attr.data-readonly": "resolvedReadOnly() ? '' : null", "attr.data-invalid": "resolvedInvalid() ? '' : null", "attr.data-required": "resolvedRequired() ? '' : null", "attr.data-loading": "loading() ? '' : null", "attr.data-narrow": "narrow() ? '' : null" } }, providers: [
1024
1054
  { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => SlSelect), multi: true },
1025
1055
  { provide: NG_VALIDATORS, useExisting: forwardRef(() => SlSelect), multi: true },
1026
1056
  ], queries: [{ propertyName: "summaryTemplate", first: true, predicate: SlSelectValue, descendants: true, read: TemplateRef, isSignal: true }], viewQueries: [{ propertyName: "template", first: true, predicate: ["layer"], descendants: true, isSignal: true }, { propertyName: "triggerRef", first: true, predicate: ["trigger"], descendants: true, isSignal: true }, { propertyName: "tags", first: true, predicate: ["tags"], descendants: true, isSignal: true }, { propertyName: "chipOverflow", first: true, predicate: ["chipOverflow"], descendants: true, isSignal: true }], exportAs: ["slSelect"], ngImport: i0, template: `
@@ -1305,6 +1335,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
1305
1335
  '[attr.data-full-width]': "resolvedFullWidth() ? '' : null",
1306
1336
  '[attr.data-multiple]': "resolvedMultiple() ? '' : null",
1307
1337
  '[attr.data-open]': "isOpen() ? '' : null",
1338
+ '(pointerdown)': 'onFramePointerDown()',
1339
+ '(focusin)': 'prepare()',
1308
1340
  '[attr.data-disabled]': "resolvedDisabled() ? '' : null",
1309
1341
  '[attr.data-readonly]': "resolvedReadOnly() ? '' : null",
1310
1342
  '[attr.data-invalid]': "resolvedInvalid() ? '' : null",