@lucca-front/ng 22.0.3-rc.2 → 22.0.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.
package/README.md CHANGED
@@ -53,6 +53,7 @@ Schematics help automate migrations and updates when upgrading Lucca Front. They
53
53
 
54
54
  | Description | Version | Command |
55
55
  | ----------- | ------- | ------- |
56
+ | Migrate file upload usages: new `size` default, `FileEntry` rendered by the parent, `.fileEntryDisplayWrapper` as `<lu-file-entry-wrapper>` | 22.0.3+ | `ng g @lucca-front/ng:file-upload` |
56
57
  | Replace HTML loading with `<lu-loading>` | 21.1+ | `ng g @lucca-front/ng:lu-loading` |
57
58
  | Replace HTML containers with `<lu-container>` | 21.1+ | `ng g @lucca-front/ng:lu-container` |
58
59
  | Replace physical alignment utilities (e.g., `.pr-u-textRight`) with logical ones (e.g., `.pr-u-textAlignEnd`) | 21.0.1+ | `ng g @lucca-front/ng:alignment-utilities` |
@@ -151,11 +151,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImpor
151
151
 
152
152
  class ActivityFeedComponent {
153
153
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: ActivityFeedComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
154
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.4", type: ActivityFeedComponent, isStandalone: true, selector: "lu-activity-feed", ngImport: i0, template: "<ol class=\"activityFeed\">\n\t<ng-content />\n</ol>\n", styles: ["@charset \"UTF-8\";@layer components{.activityFeed{--components-activityFeed-content-update-item-display: flex;--components-activityFeed-content-update-item-icon-display: flex;--components-activityFeed-step-description-alignSelf: auto;--components-activityFeed-step-description-fontStyle: normal;--components-activityFeed-step-description-color: inherit;--components-activityFeed-step-description-lineHeight: inherit;--components-activityFeed-step-before-insetBlockStart: calc(var(--pr-t-spacings-500) + var(--pr-t-spacings-50));list-style-type:\"\";padding:0;font:var(--pr-t-font-body-M);color:var(--pr-t-color-text)}.activityFeed-step{position:relative;display:flex;gap:var(--pr-t-spacings-100)}.activityFeed-step:not(:last-child){padding-block-end:var(--pr-t-spacings-200)}.activityFeed-step:not(:last-child):before{content:\"\";inline-size:var(--pr-t-spacings-25);background-color:var(--palettes-neutral-100);position:absolute;inset-block-end:0;border-radius:var(--pr-t-border-radius-full);inset-block-start:var(--components-activityFeed-step-before-insetBlockStart);inset-inline-start:calc(var(--pr-t-spacings-200) - var(--pr-t-spacings-25) / 2)}.activityFeed-step-state,.activityFeed-step-avatar{margin-block:var(--pr-t-spacings-75)}.activityFeed-step-state{inline-size:var(--pr-t-spacings-400);block-size:var(--pr-t-spacings-400);border-radius:var(--pr-t-border-radius-full);position:relative;background-color:var(--palettes-100, var(--palettes-neutral-100))}.activityFeed-step-state:before{color:var(--palettes-700, var(--palettes-neutral-700));font-size:calc(1.5 * var(--pr-t-font-body-M-fontSize));block-size:var(--pr-t-font-body-M-lineHeight);inset:0;margin:auto;position:absolute;text-align:center}.activityFeed-step-description{flex-grow:1;align-self:var(--components-activityFeed-step-description-alignSelf);font-style:var(--components-activityFeed-step-description-fontStyle);color:var(--components-activityFeed-step-description-color);line-height:var(--components-activityFeed-step-description-lineHeight)}.activityFeed-step-description-time{font:var(--pr-t-font-body-S);color:var(--pr-t-color-text-subtle);display:block}.activityFeed-content-update-item-icon{display:var(--components-activityFeed-content-update-item-icon-display)}.activityFeed-content-update{margin:0;padding:0;list-style-type:none;padding:var(--pr-t-spacings-100) var(--pr-t-spacings-150);border-radius:var(--pr-t-border-radius-structure);border:1px solid var(--pr-t-color-input-border);display:flex;flex-direction:column;gap:var(--pr-t-spacings-50)}.activityFeed-content-update-item{display:var(--components-activityFeed-content-update-item-display);align-items:center;gap:var(--pr-t-spacings-75);min-block-size:var(--pr-t-spacings-300)}.activityFeed-content-update-item-object{margin-inline-end:calc(var(--pr-t-spacings-75) * -1);color:var(--pr-t-color-text-subtle);display:flex}.activityFeed-content-update-item-object:after{content:\"\\a0\"}.activityFeed-content-update-item-object:empty{display:none}.activityFeed-content-update-item-before,.activityFeed-content-update-item-after{display:flex}.activityFeed-content-update-item-before:empty,.activityFeed-content-update-item-after:empty{display:none}.activityFeed-content{margin-block-start:var(--pr-t-spacings-100);display:flex;flex-direction:column;gap:var(--pr-t-spacings-100);align-items:flex-start}.activityFeed-content:empty{display:none}}@layer mods{.activityFeed .readMore{--components-readMore-link-insetBlockEnd: 0;--components-readMore-link-backgroudColor: var(--pr-t-elevation-surface-sunken)}}@layer mods{.activityFeed-content>.button:only-child{--components-button-backgroundColor: var(--palettes-neutral-0);--components-button-color: var(--palettes-700, var(--palettes-neutral-700));--components-button-boxShadow: var(--pr-t-elevation-shadow-button), 0 0 0 var(--commons-divider-width) var(--palettes-neutral-200)}.activityFeed-content>.button:only-child:hover{--components-button-boxShadow: var(--pr-t-elevation-shadow-button), 0 0 0 var(--commons-divider-width) var(--palettes-300, var(--palettes-neutral-300));--components-button-color: var(--palettes-700, var(--palettes-neutral-700));--components-button-backgroundColor: var(--palettes-50, var(--palettes-neutral-50))}.activityFeed-content>.button:only-child:active{--components-button-backgroundColor: var(--palettes-100, var(--palettes-neutral-100))}.activityFeed-content>.button:only-child:focus-visible{outline:2px solid var(--palettes-700, var(--palettes-product-700));outline-offset:3px}.activityFeed-content>.button:only-child:disabled{--components-button-backgroundColor: var(--palettes-neutral-0);--components-button-boxShadow: 0 0 0 1px var(--palettes-neutral-100);--components-button-color: var(--pr-t-color-text-disabled)}.activityFeed-step-avatar{--components-avatar-size: 2rem;--components-avatar-fontSize: var(--pr-t-font-fontSize-175);--components-avatar-placeholder-size: 1rem}.activityFeed-step-state.mod-success{--palettes-text: var(--palettes-success-text);--palettes-0: var(--palettes-success-0);--palettes-25: var(--palettes-success-25);--palettes-50: var(--palettes-success-50);--palettes-100: var(--palettes-success-100);--palettes-200: var(--palettes-success-200);--palettes-300: var(--palettes-success-300);--palettes-400: var(--palettes-success-400);--palettes-500: var(--palettes-success-500);--palettes-600: var(--palettes-success-600);--palettes-700: var(--palettes-success-700);--palettes-800: var(--palettes-success-800);--palettes-900: var(--palettes-success-900)}.activityFeed-step-state.mod-success:before{--icon-content: \"\\e97d\";font-weight:var(--pr-t-font-fontWeight-regular);display:inline-block;vertical-align:text-bottom;font-style:normal;font-family:var(--icon-fontFamily);content:var(--icon-content)/\"\";-webkit-font-smoothing:antialiased;text-transform:none}.activityFeed-step-state.mod-critical{--palettes-text: var(--palettes-critical-text);--palettes-0: var(--palettes-critical-0);--palettes-25: var(--palettes-critical-25);--palettes-50: var(--palettes-critical-50);--palettes-100: var(--palettes-critical-100);--palettes-200: var(--palettes-critical-200);--palettes-300: var(--palettes-critical-300);--palettes-400: var(--palettes-critical-400);--palettes-500: var(--palettes-critical-500);--palettes-600: var(--palettes-critical-600);--palettes-700: var(--palettes-critical-700);--palettes-800: var(--palettes-critical-800);--palettes-900: var(--palettes-critical-900)}.activityFeed-step-state.mod-critical:before{--icon-content: \"\\e9bf\";font-weight:var(--pr-t-font-fontWeight-regular);display:inline-block;vertical-align:text-bottom;font-style:normal;font-family:var(--icon-fontFamily);content:var(--icon-content)/\"\";-webkit-font-smoothing:antialiased;text-transform:none}.activityFeed-content-update-item:has(.activityFeed-content-update-item-before:empty,.activityFeed-content-update-item-after:empty){--components-activityFeed-content-update-item-icon-display: none}.activityFeed-content-update-item:has(.activityFeed-content-update-item-before:empty):has(.activityFeed-content-update-item-after:empty){--components-activityFeed-content-update-item-display: none}.activityFeed-step.mod-pending{--components-activityFeed-step-description-alignSelf: center;--components-activityFeed-step-description-fontStyle: italic;--components-activityFeed-step-description-color: var(--pr-t-color-text-subtle);--components-activityFeed-step-description-lineHeight: var(--pr-t-font-body-S-lineHeight)}.activityFeed-step:has(.activityFeed-content>.button:only-child){--components-activityFeed-step-before-insetBlockStart: var(--pr-t-spacings-700)}}lu-activity-feed{display:contents}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
154
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.4", type: ActivityFeedComponent, isStandalone: true, selector: "lu-activity-feed", ngImport: i0, template: "<ol class=\"activityFeed\">\n\t<ng-content />\n</ol>\n", styles: ["@charset \"UTF-8\";@layer components{.activityFeed{--components-activityFeed-content-update-item-display: flex;--components-activityFeed-content-update-item-icon-display: flex;--components-activityFeed-step-description-alignSelf: auto;--components-activityFeed-step-description-fontStyle: normal;--components-activityFeed-step-description-color: inherit;--components-activityFeed-step-description-lineHeight: inherit;--components-activityFeed-step-before-insetBlockStart: calc(var(--pr-t-spacings-500) + var(--pr-t-spacings-50));list-style-type:\"\";padding:0;font:var(--pr-t-font-body-M);color:var(--pr-t-color-text)}.activityFeed-step{position:relative;display:flex;gap:var(--pr-t-spacings-100)}.activityFeed-step:not(:last-child){padding-block-end:var(--pr-t-spacings-200)}.activityFeed-step:not(:last-child):before{content:\"\";inline-size:var(--pr-t-spacings-25);background-color:var(--palettes-neutral-100);position:absolute;inset-block-end:0;border-radius:var(--pr-t-border-radius-full);inset-block-start:var(--components-activityFeed-step-before-insetBlockStart);inset-inline-start:calc(var(--pr-t-spacings-200) - var(--pr-t-spacings-25) / 2)}.activityFeed-step-state,.activityFeed-step-avatar{margin-block:var(--pr-t-spacings-75);flex-shrink:0}.activityFeed-step-state{inline-size:var(--pr-t-spacings-400);block-size:var(--pr-t-spacings-400);border-radius:var(--pr-t-border-radius-full);position:relative;background-color:var(--palettes-100, var(--palettes-neutral-100))}.activityFeed-step-state:before{color:var(--palettes-700, var(--palettes-neutral-700));font-size:calc(1.5 * var(--pr-t-font-body-M-fontSize));block-size:var(--pr-t-font-body-M-lineHeight);inset:0;margin:auto;position:absolute;text-align:center}.activityFeed-step-description{flex-grow:1;align-self:var(--components-activityFeed-step-description-alignSelf);font-style:var(--components-activityFeed-step-description-fontStyle);color:var(--components-activityFeed-step-description-color);line-height:var(--components-activityFeed-step-description-lineHeight)}.activityFeed-step-description-time{font:var(--pr-t-font-body-S);color:var(--pr-t-color-text-subtle);display:block}.activityFeed-content-update-item-icon{display:var(--components-activityFeed-content-update-item-icon-display)}.activityFeed-content-update{margin:0;padding:0;list-style-type:none;padding:var(--pr-t-spacings-100) var(--pr-t-spacings-150);border-radius:var(--pr-t-border-radius-structure);border:1px solid var(--pr-t-color-input-border);display:flex;flex-direction:column;gap:var(--pr-t-spacings-50)}.activityFeed-content-update-item{display:var(--components-activityFeed-content-update-item-display);align-items:center;gap:var(--pr-t-spacings-75);min-block-size:var(--pr-t-spacings-300)}.activityFeed-content-update-item-object{margin-inline-end:calc(var(--pr-t-spacings-75) * -1);color:var(--pr-t-color-text-subtle);display:flex}.activityFeed-content-update-item-object:after{content:\"\\a0\"}.activityFeed-content-update-item-object:empty{display:none}.activityFeed-content-update-item-before,.activityFeed-content-update-item-after{display:flex}.activityFeed-content-update-item-before:empty,.activityFeed-content-update-item-after:empty{display:none}.activityFeed-content{margin-block-start:var(--pr-t-spacings-100);display:flex;flex-direction:column;gap:var(--pr-t-spacings-100);align-items:flex-start}.activityFeed-content:empty{display:none}}@layer mods{.activityFeed .readMore{--components-readMore-link-insetBlockEnd: 0;--components-readMore-link-backgroudColor: var(--pr-t-elevation-surface-sunken)}}@layer mods{.activityFeed-content>.button:only-child{--components-button-backgroundColor: var(--palettes-neutral-0);--components-button-color: var(--palettes-700, var(--palettes-neutral-700));--components-button-boxShadow: var(--pr-t-elevation-shadow-button), 0 0 0 var(--commons-divider-width) var(--palettes-neutral-200)}.activityFeed-content>.button:only-child:hover{--components-button-boxShadow: var(--pr-t-elevation-shadow-button), 0 0 0 var(--commons-divider-width) var(--palettes-300, var(--palettes-neutral-300));--components-button-color: var(--palettes-700, var(--palettes-neutral-700));--components-button-backgroundColor: var(--palettes-50, var(--palettes-neutral-50))}.activityFeed-content>.button:only-child:active{--components-button-backgroundColor: var(--palettes-100, var(--palettes-neutral-100))}.activityFeed-content>.button:only-child:focus-visible{outline:2px solid var(--palettes-700, var(--palettes-product-700));outline-offset:3px}.activityFeed-content>.button:only-child:disabled{--components-button-backgroundColor: var(--palettes-neutral-0);--components-button-boxShadow: 0 0 0 1px var(--palettes-neutral-100);--components-button-color: var(--pr-t-color-text-disabled)}.activityFeed-step-avatar{--components-avatar-size: 2rem;--components-avatar-fontSize: var(--pr-t-font-fontSize-175);--components-avatar-placeholder-size: 1rem}.activityFeed-step-state.mod-success{--palettes-text: var(--palettes-success-text);--palettes-0: var(--palettes-success-0);--palettes-25: var(--palettes-success-25);--palettes-50: var(--palettes-success-50);--palettes-100: var(--palettes-success-100);--palettes-200: var(--palettes-success-200);--palettes-300: var(--palettes-success-300);--palettes-400: var(--palettes-success-400);--palettes-500: var(--palettes-success-500);--palettes-600: var(--palettes-success-600);--palettes-700: var(--palettes-success-700);--palettes-800: var(--palettes-success-800);--palettes-900: var(--palettes-success-900)}.activityFeed-step-state.mod-success:before{--icon-content: \"\\e97d\";font-weight:var(--pr-t-font-fontWeight-regular);display:inline-block;vertical-align:text-bottom;font-style:normal;font-family:var(--icon-fontFamily);content:var(--icon-content)/\"\";-webkit-font-smoothing:antialiased;text-transform:none}.activityFeed-step-state.mod-critical{--palettes-text: var(--palettes-critical-text);--palettes-0: var(--palettes-critical-0);--palettes-25: var(--palettes-critical-25);--palettes-50: var(--palettes-critical-50);--palettes-100: var(--palettes-critical-100);--palettes-200: var(--palettes-critical-200);--palettes-300: var(--palettes-critical-300);--palettes-400: var(--palettes-critical-400);--palettes-500: var(--palettes-critical-500);--palettes-600: var(--palettes-critical-600);--palettes-700: var(--palettes-critical-700);--palettes-800: var(--palettes-critical-800);--palettes-900: var(--palettes-critical-900)}.activityFeed-step-state.mod-critical:before{--icon-content: \"\\e9bf\";font-weight:var(--pr-t-font-fontWeight-regular);display:inline-block;vertical-align:text-bottom;font-style:normal;font-family:var(--icon-fontFamily);content:var(--icon-content)/\"\";-webkit-font-smoothing:antialiased;text-transform:none}.activityFeed-content-update-item:has(.activityFeed-content-update-item-before:empty,.activityFeed-content-update-item-after:empty){--components-activityFeed-content-update-item-icon-display: none}.activityFeed-content-update-item:has(.activityFeed-content-update-item-before:empty):has(.activityFeed-content-update-item-after:empty){--components-activityFeed-content-update-item-display: none}.activityFeed-step.mod-pending{--components-activityFeed-step-description-alignSelf: center;--components-activityFeed-step-description-fontStyle: italic;--components-activityFeed-step-description-color: var(--pr-t-color-text-subtle);--components-activityFeed-step-description-lineHeight: var(--pr-t-font-body-S-lineHeight)}.activityFeed-step:has(.activityFeed-content>.button:only-child){--components-activityFeed-step-before-insetBlockStart: var(--pr-t-spacings-700)}}lu-activity-feed{display:contents}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
155
155
  }
156
156
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: ActivityFeedComponent, decorators: [{
157
157
  type: Component,
158
- args: [{ selector: 'lu-activity-feed', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ol class=\"activityFeed\">\n\t<ng-content />\n</ol>\n", styles: ["@charset \"UTF-8\";@layer components{.activityFeed{--components-activityFeed-content-update-item-display: flex;--components-activityFeed-content-update-item-icon-display: flex;--components-activityFeed-step-description-alignSelf: auto;--components-activityFeed-step-description-fontStyle: normal;--components-activityFeed-step-description-color: inherit;--components-activityFeed-step-description-lineHeight: inherit;--components-activityFeed-step-before-insetBlockStart: calc(var(--pr-t-spacings-500) + var(--pr-t-spacings-50));list-style-type:\"\";padding:0;font:var(--pr-t-font-body-M);color:var(--pr-t-color-text)}.activityFeed-step{position:relative;display:flex;gap:var(--pr-t-spacings-100)}.activityFeed-step:not(:last-child){padding-block-end:var(--pr-t-spacings-200)}.activityFeed-step:not(:last-child):before{content:\"\";inline-size:var(--pr-t-spacings-25);background-color:var(--palettes-neutral-100);position:absolute;inset-block-end:0;border-radius:var(--pr-t-border-radius-full);inset-block-start:var(--components-activityFeed-step-before-insetBlockStart);inset-inline-start:calc(var(--pr-t-spacings-200) - var(--pr-t-spacings-25) / 2)}.activityFeed-step-state,.activityFeed-step-avatar{margin-block:var(--pr-t-spacings-75)}.activityFeed-step-state{inline-size:var(--pr-t-spacings-400);block-size:var(--pr-t-spacings-400);border-radius:var(--pr-t-border-radius-full);position:relative;background-color:var(--palettes-100, var(--palettes-neutral-100))}.activityFeed-step-state:before{color:var(--palettes-700, var(--palettes-neutral-700));font-size:calc(1.5 * var(--pr-t-font-body-M-fontSize));block-size:var(--pr-t-font-body-M-lineHeight);inset:0;margin:auto;position:absolute;text-align:center}.activityFeed-step-description{flex-grow:1;align-self:var(--components-activityFeed-step-description-alignSelf);font-style:var(--components-activityFeed-step-description-fontStyle);color:var(--components-activityFeed-step-description-color);line-height:var(--components-activityFeed-step-description-lineHeight)}.activityFeed-step-description-time{font:var(--pr-t-font-body-S);color:var(--pr-t-color-text-subtle);display:block}.activityFeed-content-update-item-icon{display:var(--components-activityFeed-content-update-item-icon-display)}.activityFeed-content-update{margin:0;padding:0;list-style-type:none;padding:var(--pr-t-spacings-100) var(--pr-t-spacings-150);border-radius:var(--pr-t-border-radius-structure);border:1px solid var(--pr-t-color-input-border);display:flex;flex-direction:column;gap:var(--pr-t-spacings-50)}.activityFeed-content-update-item{display:var(--components-activityFeed-content-update-item-display);align-items:center;gap:var(--pr-t-spacings-75);min-block-size:var(--pr-t-spacings-300)}.activityFeed-content-update-item-object{margin-inline-end:calc(var(--pr-t-spacings-75) * -1);color:var(--pr-t-color-text-subtle);display:flex}.activityFeed-content-update-item-object:after{content:\"\\a0\"}.activityFeed-content-update-item-object:empty{display:none}.activityFeed-content-update-item-before,.activityFeed-content-update-item-after{display:flex}.activityFeed-content-update-item-before:empty,.activityFeed-content-update-item-after:empty{display:none}.activityFeed-content{margin-block-start:var(--pr-t-spacings-100);display:flex;flex-direction:column;gap:var(--pr-t-spacings-100);align-items:flex-start}.activityFeed-content:empty{display:none}}@layer mods{.activityFeed .readMore{--components-readMore-link-insetBlockEnd: 0;--components-readMore-link-backgroudColor: var(--pr-t-elevation-surface-sunken)}}@layer mods{.activityFeed-content>.button:only-child{--components-button-backgroundColor: var(--palettes-neutral-0);--components-button-color: var(--palettes-700, var(--palettes-neutral-700));--components-button-boxShadow: var(--pr-t-elevation-shadow-button), 0 0 0 var(--commons-divider-width) var(--palettes-neutral-200)}.activityFeed-content>.button:only-child:hover{--components-button-boxShadow: var(--pr-t-elevation-shadow-button), 0 0 0 var(--commons-divider-width) var(--palettes-300, var(--palettes-neutral-300));--components-button-color: var(--palettes-700, var(--palettes-neutral-700));--components-button-backgroundColor: var(--palettes-50, var(--palettes-neutral-50))}.activityFeed-content>.button:only-child:active{--components-button-backgroundColor: var(--palettes-100, var(--palettes-neutral-100))}.activityFeed-content>.button:only-child:focus-visible{outline:2px solid var(--palettes-700, var(--palettes-product-700));outline-offset:3px}.activityFeed-content>.button:only-child:disabled{--components-button-backgroundColor: var(--palettes-neutral-0);--components-button-boxShadow: 0 0 0 1px var(--palettes-neutral-100);--components-button-color: var(--pr-t-color-text-disabled)}.activityFeed-step-avatar{--components-avatar-size: 2rem;--components-avatar-fontSize: var(--pr-t-font-fontSize-175);--components-avatar-placeholder-size: 1rem}.activityFeed-step-state.mod-success{--palettes-text: var(--palettes-success-text);--palettes-0: var(--palettes-success-0);--palettes-25: var(--palettes-success-25);--palettes-50: var(--palettes-success-50);--palettes-100: var(--palettes-success-100);--palettes-200: var(--palettes-success-200);--palettes-300: var(--palettes-success-300);--palettes-400: var(--palettes-success-400);--palettes-500: var(--palettes-success-500);--palettes-600: var(--palettes-success-600);--palettes-700: var(--palettes-success-700);--palettes-800: var(--palettes-success-800);--palettes-900: var(--palettes-success-900)}.activityFeed-step-state.mod-success:before{--icon-content: \"\\e97d\";font-weight:var(--pr-t-font-fontWeight-regular);display:inline-block;vertical-align:text-bottom;font-style:normal;font-family:var(--icon-fontFamily);content:var(--icon-content)/\"\";-webkit-font-smoothing:antialiased;text-transform:none}.activityFeed-step-state.mod-critical{--palettes-text: var(--palettes-critical-text);--palettes-0: var(--palettes-critical-0);--palettes-25: var(--palettes-critical-25);--palettes-50: var(--palettes-critical-50);--palettes-100: var(--palettes-critical-100);--palettes-200: var(--palettes-critical-200);--palettes-300: var(--palettes-critical-300);--palettes-400: var(--palettes-critical-400);--palettes-500: var(--palettes-critical-500);--palettes-600: var(--palettes-critical-600);--palettes-700: var(--palettes-critical-700);--palettes-800: var(--palettes-critical-800);--palettes-900: var(--palettes-critical-900)}.activityFeed-step-state.mod-critical:before{--icon-content: \"\\e9bf\";font-weight:var(--pr-t-font-fontWeight-regular);display:inline-block;vertical-align:text-bottom;font-style:normal;font-family:var(--icon-fontFamily);content:var(--icon-content)/\"\";-webkit-font-smoothing:antialiased;text-transform:none}.activityFeed-content-update-item:has(.activityFeed-content-update-item-before:empty,.activityFeed-content-update-item-after:empty){--components-activityFeed-content-update-item-icon-display: none}.activityFeed-content-update-item:has(.activityFeed-content-update-item-before:empty):has(.activityFeed-content-update-item-after:empty){--components-activityFeed-content-update-item-display: none}.activityFeed-step.mod-pending{--components-activityFeed-step-description-alignSelf: center;--components-activityFeed-step-description-fontStyle: italic;--components-activityFeed-step-description-color: var(--pr-t-color-text-subtle);--components-activityFeed-step-description-lineHeight: var(--pr-t-font-body-S-lineHeight)}.activityFeed-step:has(.activityFeed-content>.button:only-child){--components-activityFeed-step-before-insetBlockStart: var(--pr-t-spacings-700)}}lu-activity-feed{display:contents}\n"] }]
158
+ args: [{ selector: 'lu-activity-feed', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ol class=\"activityFeed\">\n\t<ng-content />\n</ol>\n", styles: ["@charset \"UTF-8\";@layer components{.activityFeed{--components-activityFeed-content-update-item-display: flex;--components-activityFeed-content-update-item-icon-display: flex;--components-activityFeed-step-description-alignSelf: auto;--components-activityFeed-step-description-fontStyle: normal;--components-activityFeed-step-description-color: inherit;--components-activityFeed-step-description-lineHeight: inherit;--components-activityFeed-step-before-insetBlockStart: calc(var(--pr-t-spacings-500) + var(--pr-t-spacings-50));list-style-type:\"\";padding:0;font:var(--pr-t-font-body-M);color:var(--pr-t-color-text)}.activityFeed-step{position:relative;display:flex;gap:var(--pr-t-spacings-100)}.activityFeed-step:not(:last-child){padding-block-end:var(--pr-t-spacings-200)}.activityFeed-step:not(:last-child):before{content:\"\";inline-size:var(--pr-t-spacings-25);background-color:var(--palettes-neutral-100);position:absolute;inset-block-end:0;border-radius:var(--pr-t-border-radius-full);inset-block-start:var(--components-activityFeed-step-before-insetBlockStart);inset-inline-start:calc(var(--pr-t-spacings-200) - var(--pr-t-spacings-25) / 2)}.activityFeed-step-state,.activityFeed-step-avatar{margin-block:var(--pr-t-spacings-75);flex-shrink:0}.activityFeed-step-state{inline-size:var(--pr-t-spacings-400);block-size:var(--pr-t-spacings-400);border-radius:var(--pr-t-border-radius-full);position:relative;background-color:var(--palettes-100, var(--palettes-neutral-100))}.activityFeed-step-state:before{color:var(--palettes-700, var(--palettes-neutral-700));font-size:calc(1.5 * var(--pr-t-font-body-M-fontSize));block-size:var(--pr-t-font-body-M-lineHeight);inset:0;margin:auto;position:absolute;text-align:center}.activityFeed-step-description{flex-grow:1;align-self:var(--components-activityFeed-step-description-alignSelf);font-style:var(--components-activityFeed-step-description-fontStyle);color:var(--components-activityFeed-step-description-color);line-height:var(--components-activityFeed-step-description-lineHeight)}.activityFeed-step-description-time{font:var(--pr-t-font-body-S);color:var(--pr-t-color-text-subtle);display:block}.activityFeed-content-update-item-icon{display:var(--components-activityFeed-content-update-item-icon-display)}.activityFeed-content-update{margin:0;padding:0;list-style-type:none;padding:var(--pr-t-spacings-100) var(--pr-t-spacings-150);border-radius:var(--pr-t-border-radius-structure);border:1px solid var(--pr-t-color-input-border);display:flex;flex-direction:column;gap:var(--pr-t-spacings-50)}.activityFeed-content-update-item{display:var(--components-activityFeed-content-update-item-display);align-items:center;gap:var(--pr-t-spacings-75);min-block-size:var(--pr-t-spacings-300)}.activityFeed-content-update-item-object{margin-inline-end:calc(var(--pr-t-spacings-75) * -1);color:var(--pr-t-color-text-subtle);display:flex}.activityFeed-content-update-item-object:after{content:\"\\a0\"}.activityFeed-content-update-item-object:empty{display:none}.activityFeed-content-update-item-before,.activityFeed-content-update-item-after{display:flex}.activityFeed-content-update-item-before:empty,.activityFeed-content-update-item-after:empty{display:none}.activityFeed-content{margin-block-start:var(--pr-t-spacings-100);display:flex;flex-direction:column;gap:var(--pr-t-spacings-100);align-items:flex-start}.activityFeed-content:empty{display:none}}@layer mods{.activityFeed .readMore{--components-readMore-link-insetBlockEnd: 0;--components-readMore-link-backgroudColor: var(--pr-t-elevation-surface-sunken)}}@layer mods{.activityFeed-content>.button:only-child{--components-button-backgroundColor: var(--palettes-neutral-0);--components-button-color: var(--palettes-700, var(--palettes-neutral-700));--components-button-boxShadow: var(--pr-t-elevation-shadow-button), 0 0 0 var(--commons-divider-width) var(--palettes-neutral-200)}.activityFeed-content>.button:only-child:hover{--components-button-boxShadow: var(--pr-t-elevation-shadow-button), 0 0 0 var(--commons-divider-width) var(--palettes-300, var(--palettes-neutral-300));--components-button-color: var(--palettes-700, var(--palettes-neutral-700));--components-button-backgroundColor: var(--palettes-50, var(--palettes-neutral-50))}.activityFeed-content>.button:only-child:active{--components-button-backgroundColor: var(--palettes-100, var(--palettes-neutral-100))}.activityFeed-content>.button:only-child:focus-visible{outline:2px solid var(--palettes-700, var(--palettes-product-700));outline-offset:3px}.activityFeed-content>.button:only-child:disabled{--components-button-backgroundColor: var(--palettes-neutral-0);--components-button-boxShadow: 0 0 0 1px var(--palettes-neutral-100);--components-button-color: var(--pr-t-color-text-disabled)}.activityFeed-step-avatar{--components-avatar-size: 2rem;--components-avatar-fontSize: var(--pr-t-font-fontSize-175);--components-avatar-placeholder-size: 1rem}.activityFeed-step-state.mod-success{--palettes-text: var(--palettes-success-text);--palettes-0: var(--palettes-success-0);--palettes-25: var(--palettes-success-25);--palettes-50: var(--palettes-success-50);--palettes-100: var(--palettes-success-100);--palettes-200: var(--palettes-success-200);--palettes-300: var(--palettes-success-300);--palettes-400: var(--palettes-success-400);--palettes-500: var(--palettes-success-500);--palettes-600: var(--palettes-success-600);--palettes-700: var(--palettes-success-700);--palettes-800: var(--palettes-success-800);--palettes-900: var(--palettes-success-900)}.activityFeed-step-state.mod-success:before{--icon-content: \"\\e97d\";font-weight:var(--pr-t-font-fontWeight-regular);display:inline-block;vertical-align:text-bottom;font-style:normal;font-family:var(--icon-fontFamily);content:var(--icon-content)/\"\";-webkit-font-smoothing:antialiased;text-transform:none}.activityFeed-step-state.mod-critical{--palettes-text: var(--palettes-critical-text);--palettes-0: var(--palettes-critical-0);--palettes-25: var(--palettes-critical-25);--palettes-50: var(--palettes-critical-50);--palettes-100: var(--palettes-critical-100);--palettes-200: var(--palettes-critical-200);--palettes-300: var(--palettes-critical-300);--palettes-400: var(--palettes-critical-400);--palettes-500: var(--palettes-critical-500);--palettes-600: var(--palettes-critical-600);--palettes-700: var(--palettes-critical-700);--palettes-800: var(--palettes-critical-800);--palettes-900: var(--palettes-critical-900)}.activityFeed-step-state.mod-critical:before{--icon-content: \"\\e9bf\";font-weight:var(--pr-t-font-fontWeight-regular);display:inline-block;vertical-align:text-bottom;font-style:normal;font-family:var(--icon-fontFamily);content:var(--icon-content)/\"\";-webkit-font-smoothing:antialiased;text-transform:none}.activityFeed-content-update-item:has(.activityFeed-content-update-item-before:empty,.activityFeed-content-update-item-after:empty){--components-activityFeed-content-update-item-icon-display: none}.activityFeed-content-update-item:has(.activityFeed-content-update-item-before:empty):has(.activityFeed-content-update-item-after:empty){--components-activityFeed-content-update-item-display: none}.activityFeed-step.mod-pending{--components-activityFeed-step-description-alignSelf: center;--components-activityFeed-step-description-fontStyle: italic;--components-activityFeed-step-description-color: var(--pr-t-color-text-subtle);--components-activityFeed-step-description-lineHeight: var(--pr-t-font-body-S-lineHeight)}.activityFeed-step:has(.activityFeed-content>.button:only-child){--components-activityFeed-step-before-insetBlockStart: var(--pr-t-spacings-700)}}lu-activity-feed{display:contents}\n"] }]
159
159
  }] });
160
160
 
161
161
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"lucca-front-ng-activity-feed.mjs","sources":["../../../packages/ng/activity-feed/activity-feed-step.type.ts","../../../packages/ng/activity-feed/translations.ts","../../../packages/ng/activity-feed/activity-feed.translate.ts","../../../packages/ng/activity-feed/activity-feed-step/activity-feed-step.component.ts","../../../packages/ng/activity-feed/activity-feed-step/activity-feed-step.component.html","../../../packages/ng/activity-feed/activity-feed-update-item/activity-feed-update-item.component.ts","../../../packages/ng/activity-feed/activity-feed-update-item/activity-feed-update-item.component.html","../../../packages/ng/activity-feed/activity-feed-update/activity-feed-update.component.ts","../../../packages/ng/activity-feed/activity-feed.component.ts","../../../packages/ng/activity-feed/activity-feed.component.html","../../../packages/ng/activity-feed/lucca-front-ng-activity-feed.ts"],"sourcesContent":["/**\n * Available ActivityFeedComponent Types\n */\n\nexport const ACTIVITY_FEED_STEP_STATUS = ['success', 'critical', 'pending'] as const;\nexport type ActivityFeedStepStatus = (typeof ACTIVITY_FEED_STEP_STATUS)[number];\n","export const Translations = {\n\t'nl-BE': {\n\t\treplaceByAlt: 'is vervangen door',\n\t},\n\tfr: {\n\t\treplaceByAlt: 'à été remplacé par',\n\t},\n\tde: {\n\t\treplaceByAlt: 'wurde ersetzt durch',\n\t},\n\ten: {\n\t\treplaceByAlt: 'was replaced by',\n\t},\n\tes: {\n\t\treplaceByAlt: 'se ha sustituido por',\n\t},\n\tit: {\n\t\treplaceByAlt: 'è stato sostituito da',\n\t},\n\tnl: {\n\t\treplaceByAlt: 'is vervangen door',\n\t},\n\tpt: {\n\t\treplaceByAlt: 'foi substituído por',\n\t},\n\tpl: {\n\t\treplaceByAlt: 'zastąpiono przez',\n\t},\n};\n","import { InjectionToken } from '@angular/core';\nimport { LuTranslation } from '@lucca-front/ng/core';\nimport { Translations } from './translations';\n\nexport const LU_ACTIVITY_FEED_TRANSLATIONS = new InjectionToken('luActivityFeedTranslations', {\n\tfactory: () => luActivityFeedTranslations,\n});\n\nexport interface ActivityFeedTranslate {\n\treplaceByAlt: string;\n}\n\nexport const luActivityFeedTranslations: LuTranslation<ActivityFeedTranslate> = Translations;\n","import { DatePipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, inject, input, LOCALE_ID, ViewEncapsulation } from '@angular/core';\nimport { intlInputOptions, PortalContent, PortalDirective } from '@lucca-front/ng/core';\nimport { ILuUser, LuUserPictureComponent } from '@lucca-front/ng/user';\nimport { ActivityFeedStepStatus } from '../activity-feed-step.type';\nimport { LU_ACTIVITY_FEED_TRANSLATIONS } from '../activity-feed.translate';\n\n@Component({\n\tselector: 'lu-activity-feed-step',\n\ttemplateUrl: './activity-feed-step.component.html',\n\tencapsulation: ViewEncapsulation.None,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [LuUserPictureComponent, DatePipe, PortalDirective],\n\thost: {\n\t\trole: 'listitem',\n\t\tclass: 'activityFeed-step',\n\t\t'[class.mod-pending]': 'status() === \"pending\"',\n\t},\n})\nexport class ActivityFeedStepComponent {\n\treadonly intl = input(...intlInputOptions(LU_ACTIVITY_FEED_TRANSLATIONS));\n\t#locale = inject(LOCALE_ID);\n\t#intlDateTimeFormat = new Intl.DateTimeFormat(this.#locale, {\n\t\tweekday: 'long',\n\t\tyear: 'numeric',\n\t\tmonth: 'short',\n\t\tday: 'numeric',\n\t\thour: 'numeric',\n\t\tminute: 'numeric',\n\t});\n\n\treadonly label = input<PortalContent | null>(null);\n\n\treadonly user = input<ILuUser | null>(null);\n\n\treadonly status = input<ActivityFeedStepStatus | null>(null);\n\n\treadonly date = input<Date | string | null>(null);\n\n\tprotected readonly preparedDate = computed(() => {\n\t\tconst date = this.date();\n\t\tif (typeof date === 'string') {\n\t\t\treturn new Date(date);\n\t\t}\n\t\treturn date;\n\t});\n\n\t/**\n\t * format given to the date pipe for display.\n\t *\n\t * See https://angular.dev/api/common/DatePipe#custom-format-options\n\t */\n\treadonly datePipeFormat = input<string>();\n\n\tprotected readonly dateDisplay = computed<string | null>(() => {\n\t\tconst date = this.preparedDate();\n\t\tif (!date) {\n\t\t\treturn null;\n\t\t}\n\t\treturn this.#intlDateTimeFormat.format(date);\n\t});\n}\n","@if (status() === \"critical\" || status() === \"success\") {\n\t<div class=\"activityFeed-step-state\" [class.mod-critical]=\"status() === 'critical'\" [class.mod-success]=\"status() === 'success'\"></div>\n} @else {\n\t@if (user(); as user) {\n\t\t<div class=\"activityFeed-step-avatar\">\n\t\t\t<lu-user-picture size=\"S\" [user]=\"user\" />\n\t\t</div>\n\t}\n}\n<div class=\"activityFeed-step-description\">\n\t@if (label(); as label) {\n\t\t<p class=\"activityFeed-step-description-content\">\n\t\t\t<ng-container *luPortal=\"label\" />\n\t\t</p>\n\t}\n\t@if (date()) {\n\t\t<time class=\"comment-infos-date activityFeed-step-description-time\" [attr.datetime]=\"preparedDate()?.toISOString()\">\n\t\t\t@if (datePipeFormat()) {\n\t\t\t\t{{ date() | date: datePipeFormat() }}\n\t\t\t} @else {\n\t\t\t\t{{ dateDisplay() }}\n\t\t\t}\n\t\t</time>\n\t}\n\t<div class=\"activityFeed-content\">\n\t\t<ng-content />\n\t</div>\n</div>\n","import { ChangeDetectionStrategy, Component, computed, inject, input, LOCALE_ID, ViewEncapsulation } from '@angular/core';\nimport { intlInputOptions } from '@lucca-front/ng/core';\nimport { IconComponent } from '@lucca/prisme/icon';\nimport { LU_ACTIVITY_FEED_TRANSLATIONS } from '../activity-feed.translate';\n\n@Component({\n\tselector: 'lu-activity-feed-update-item',\n\ttemplateUrl: './activity-feed-update-item.component.html',\n\tencapsulation: ViewEncapsulation.None,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [IconComponent],\n\thost: {\n\t\trole: 'listitem',\n\t\tclass: 'activityFeed-content-update-item',\n\t},\n})\nexport class ActivityFeedUpdateItemComponent {\n\t#locale = inject(LOCALE_ID);\n\n\treadonly intl = input(...intlInputOptions(LU_ACTIVITY_FEED_TRANSLATIONS));\n\n\treadonly label = input.required<string>();\n\n\treadonly colonDisplay = computed(() => {\n\t\tif (this.#locale === 'fr') {\n\t\t\treturn ' :';\n\t\t}\n\t\treturn ':';\n\t});\n}\n","<div class=\"activityFeed-content-update-item-object\">\n\t{{ label() }}\n\t{{ colonDisplay() }}\n</div>\n<div class=\"activityFeed-content-update-item-before\">\n\t<ng-content select=\"[activityFeedUpdateBefore]\" />\n</div>\n<lu-icon class=\"activityFeed-content-update-item-icon\" size=\"XS\" icon=\"arrowRight\" [alt]=\"intl().replaceByAlt\" />\n<div class=\"activityFeed-content-update-item-after\">\n\t<ng-content select=\"[activityFeedUpdateAfter]\" />\n</div>\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n\tselector: 'lu-activity-feed-update',\n\ttemplate: '<ng-content />',\n\tencapsulation: ViewEncapsulation.None,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thost: {\n\t\tclass: 'activityFeed-content-update',\n\t\trole: 'list',\n\t},\n})\nexport class ActivityFeedUpdateComponent {}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n\tselector: 'lu-activity-feed',\n\tstyleUrl: './activity-feed.component.scss',\n\ttemplateUrl: './activity-feed.component.html',\n\tencapsulation: ViewEncapsulation.None,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ActivityFeedComponent {}\n","<ol class=\"activityFeed\">\n\t<ng-content />\n</ol>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lucca-front-ng-activity-feed.mjs","sources":["../../../packages/ng/activity-feed/activity-feed-step.type.ts","../../../packages/ng/activity-feed/translations.ts","../../../packages/ng/activity-feed/activity-feed.translate.ts","../../../packages/ng/activity-feed/activity-feed-step/activity-feed-step.component.ts","../../../packages/ng/activity-feed/activity-feed-step/activity-feed-step.component.html","../../../packages/ng/activity-feed/activity-feed-update-item/activity-feed-update-item.component.ts","../../../packages/ng/activity-feed/activity-feed-update-item/activity-feed-update-item.component.html","../../../packages/ng/activity-feed/activity-feed-update/activity-feed-update.component.ts","../../../packages/ng/activity-feed/activity-feed.component.ts","../../../packages/ng/activity-feed/activity-feed.component.html","../../../packages/ng/activity-feed/lucca-front-ng-activity-feed.ts"],"sourcesContent":["/**\n * Available ActivityFeedComponent Types\n */\n\nexport const ACTIVITY_FEED_STEP_STATUS = ['success', 'critical', 'pending'] as const;\nexport type ActivityFeedStepStatus = (typeof ACTIVITY_FEED_STEP_STATUS)[number];\n","export const Translations = {\n\t'nl-BE': {\n\t\treplaceByAlt: 'is vervangen door',\n\t},\n\tfr: {\n\t\treplaceByAlt: 'à été remplacé par',\n\t},\n\tde: {\n\t\treplaceByAlt: 'wurde ersetzt durch',\n\t},\n\ten: {\n\t\treplaceByAlt: 'was replaced by',\n\t},\n\tes: {\n\t\treplaceByAlt: 'se ha sustituido por',\n\t},\n\tit: {\n\t\treplaceByAlt: 'è stato sostituito da',\n\t},\n\tnl: {\n\t\treplaceByAlt: 'is vervangen door',\n\t},\n\tpt: {\n\t\treplaceByAlt: 'foi substituído por',\n\t},\n\tpl: {\n\t\treplaceByAlt: 'zastąpiono przez',\n\t},\n};\n","import { InjectionToken } from '@angular/core';\nimport { LuTranslation } from '@lucca-front/ng/core';\nimport { Translations } from './translations';\n\nexport const LU_ACTIVITY_FEED_TRANSLATIONS = new InjectionToken('luActivityFeedTranslations', {\n\tfactory: () => luActivityFeedTranslations,\n});\n\nexport interface ActivityFeedTranslate {\n\treplaceByAlt: string;\n}\n\nexport const luActivityFeedTranslations: LuTranslation<ActivityFeedTranslate> = Translations;\n","import { DatePipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, inject, input, LOCALE_ID, ViewEncapsulation } from '@angular/core';\nimport { intlInputOptions, PortalContent, PortalDirective } from '@lucca-front/ng/core';\nimport { ILuUser, LuUserPictureComponent } from '@lucca-front/ng/user';\nimport { ActivityFeedStepStatus } from '../activity-feed-step.type';\nimport { LU_ACTIVITY_FEED_TRANSLATIONS } from '../activity-feed.translate';\n\n@Component({\n\tselector: 'lu-activity-feed-step',\n\ttemplateUrl: './activity-feed-step.component.html',\n\tencapsulation: ViewEncapsulation.None,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [LuUserPictureComponent, DatePipe, PortalDirective],\n\thost: {\n\t\trole: 'listitem',\n\t\tclass: 'activityFeed-step',\n\t\t'[class.mod-pending]': 'status() === \"pending\"',\n\t},\n})\nexport class ActivityFeedStepComponent {\n\treadonly intl = input(...intlInputOptions(LU_ACTIVITY_FEED_TRANSLATIONS));\n\t#locale = inject(LOCALE_ID);\n\t#intlDateTimeFormat = new Intl.DateTimeFormat(this.#locale, {\n\t\tweekday: 'long',\n\t\tyear: 'numeric',\n\t\tmonth: 'short',\n\t\tday: 'numeric',\n\t\thour: 'numeric',\n\t\tminute: 'numeric',\n\t});\n\n\treadonly label = input<PortalContent | null>(null);\n\n\treadonly user = input<ILuUser | null>(null);\n\n\treadonly status = input<ActivityFeedStepStatus | null>(null);\n\n\treadonly date = input<Date | string | null>(null);\n\n\tprotected readonly preparedDate = computed(() => {\n\t\tconst date = this.date();\n\t\tif (typeof date === 'string') {\n\t\t\treturn new Date(date);\n\t\t}\n\t\treturn date;\n\t});\n\n\t/**\n\t * format given to the date pipe for display.\n\t *\n\t * See https://angular.dev/api/common/DatePipe#custom-format-options\n\t */\n\treadonly datePipeFormat = input<string>();\n\n\tprotected readonly dateDisplay = computed<string | null>(() => {\n\t\tconst date = this.preparedDate();\n\t\tif (!date) {\n\t\t\treturn null;\n\t\t}\n\t\treturn this.#intlDateTimeFormat.format(date);\n\t});\n}\n","@if (status() === \"critical\" || status() === \"success\") {\n\t<div class=\"activityFeed-step-state\" [class.mod-critical]=\"status() === 'critical'\" [class.mod-success]=\"status() === 'success'\"></div>\n} @else {\n\t@if (user(); as user) {\n\t\t<div class=\"activityFeed-step-avatar\">\n\t\t\t<lu-user-picture size=\"S\" [user]=\"user\" />\n\t\t</div>\n\t}\n}\n<div class=\"activityFeed-step-description\">\n\t@if (label(); as label) {\n\t\t<p class=\"activityFeed-step-description-content\">\n\t\t\t<ng-container *luPortal=\"label\" />\n\t\t</p>\n\t}\n\t@if (date()) {\n\t\t<time class=\"comment-infos-date activityFeed-step-description-time\" [attr.datetime]=\"preparedDate()?.toISOString()\">\n\t\t\t@if (datePipeFormat()) {\n\t\t\t\t{{ date() | date: datePipeFormat() }}\n\t\t\t} @else {\n\t\t\t\t{{ dateDisplay() }}\n\t\t\t}\n\t\t</time>\n\t}\n\t<div class=\"activityFeed-content\">\n\t\t<ng-content />\n\t</div>\n</div>\n","import { ChangeDetectionStrategy, Component, computed, inject, input, LOCALE_ID, ViewEncapsulation } from '@angular/core';\nimport { intlInputOptions } from '@lucca-front/ng/core';\nimport { IconComponent } from '@lucca/prisme/icon';\nimport { LU_ACTIVITY_FEED_TRANSLATIONS } from '../activity-feed.translate';\n\n@Component({\n\tselector: 'lu-activity-feed-update-item',\n\ttemplateUrl: './activity-feed-update-item.component.html',\n\tencapsulation: ViewEncapsulation.None,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [IconComponent],\n\thost: {\n\t\trole: 'listitem',\n\t\tclass: 'activityFeed-content-update-item',\n\t},\n})\nexport class ActivityFeedUpdateItemComponent {\n\t#locale = inject(LOCALE_ID);\n\n\treadonly intl = input(...intlInputOptions(LU_ACTIVITY_FEED_TRANSLATIONS));\n\n\treadonly label = input.required<string>();\n\n\treadonly colonDisplay = computed(() => {\n\t\tif (this.#locale === 'fr') {\n\t\t\treturn ' :';\n\t\t}\n\t\treturn ':';\n\t});\n}\n","<div class=\"activityFeed-content-update-item-object\">\n\t{{ label() }}\n\t{{ colonDisplay() }}\n</div>\n<div class=\"activityFeed-content-update-item-before\">\n\t<ng-content select=\"[activityFeedUpdateBefore]\" />\n</div>\n<lu-icon class=\"activityFeed-content-update-item-icon\" size=\"XS\" icon=\"arrowRight\" [alt]=\"intl().replaceByAlt\" />\n<div class=\"activityFeed-content-update-item-after\">\n\t<ng-content select=\"[activityFeedUpdateAfter]\" />\n</div>\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n\tselector: 'lu-activity-feed-update',\n\ttemplate: '<ng-content />',\n\tencapsulation: ViewEncapsulation.None,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thost: {\n\t\tclass: 'activityFeed-content-update',\n\t\trole: 'list',\n\t},\n})\nexport class ActivityFeedUpdateComponent {}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n\tselector: 'lu-activity-feed',\n\tstyleUrl: './activity-feed.component.scss',\n\ttemplateUrl: './activity-feed.component.html',\n\tencapsulation: ViewEncapsulation.None,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ActivityFeedComponent {}\n","<ol class=\"activityFeed\">\n\t<ng-content />\n</ol>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;AAAA;;AAEG;AAEI,MAAM,yBAAyB,GAAG,CAAC,SAAS,EAAE,UAAU,EAAE,SAAS;;ACJnE,MAAM,YAAY,GAAG;AAC3B,IAAA,OAAO,EAAE;AACR,QAAA,YAAY,EAAE,mBAAmB;AACjC,KAAA;AACD,IAAA,EAAE,EAAE;AACH,QAAA,YAAY,EAAE,oBAAoB;AAClC,KAAA;AACD,IAAA,EAAE,EAAE;AACH,QAAA,YAAY,EAAE,qBAAqB;AACnC,KAAA;AACD,IAAA,EAAE,EAAE;AACH,QAAA,YAAY,EAAE,iBAAiB;AAC/B,KAAA;AACD,IAAA,EAAE,EAAE;AACH,QAAA,YAAY,EAAE,sBAAsB;AACpC,KAAA;AACD,IAAA,EAAE,EAAE;AACH,QAAA,YAAY,EAAE,uBAAuB;AACrC,KAAA;AACD,IAAA,EAAE,EAAE;AACH,QAAA,YAAY,EAAE,mBAAmB;AACjC,KAAA;AACD,IAAA,EAAE,EAAE;AACH,QAAA,YAAY,EAAE,qBAAqB;AACnC,KAAA;AACD,IAAA,EAAE,EAAE;AACH,QAAA,YAAY,EAAE,kBAAkB;AAChC,KAAA;CACD;;ACxBM,MAAM,6BAA6B,GAAG,IAAI,cAAc,CAAC,4BAA4B,EAAE;AAC7F,IAAA,OAAO,EAAE,MAAM,0BAA0B;AACzC,CAAA,CAAC;AAMK,MAAM,0BAA0B,GAAyC,YAAY;;MCO/E,yBAAyB,CAAA;AAZtC,IAAA,WAAA,GAAA;AAaU,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAC,GAAG,gBAAgB,CAAC,6BAA6B,CAAC;iFAAC;AACzE,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC;QAC3B,IAAA,CAAA,mBAAmB,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE;AAC3D,YAAA,OAAO,EAAE,MAAM;AACf,YAAA,IAAI,EAAE,SAAS;AACf,YAAA,KAAK,EAAE,OAAO;AACd,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,IAAI,EAAE,SAAS;AACf,YAAA,MAAM,EAAE,SAAS;AACjB,SAAA,CAAC;QAEO,IAAA,CAAA,KAAK,GAAG,KAAK,CAAuB,IAAI;kFAAC;QAEzC,IAAA,CAAA,IAAI,GAAG,KAAK,CAAiB,IAAI;iFAAC;QAElC,IAAA,CAAA,MAAM,GAAG,KAAK,CAAgC,IAAI;mFAAC;QAEnD,IAAA,CAAA,IAAI,GAAG,KAAK,CAAuB,IAAI;iFAAC;AAE9B,QAAA,IAAA,CAAA,YAAY,GAAG,QAAQ,CAAC,MAAK;AAC/C,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE;AACxB,YAAA,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAC7B,gBAAA,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC;YACtB;AACA,YAAA,OAAO,IAAI;QACZ,CAAC;yFAAC;AAEF;;;;AAIG;AACM,QAAA,IAAA,CAAA,cAAc,GAAG,KAAK;sGAAU;AAEtB,QAAA,IAAA,CAAA,WAAW,GAAG,QAAQ,CAAgB,MAAK;AAC7D,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,EAAE;YAChC,IAAI,CAAC,IAAI,EAAE;AACV,gBAAA,OAAO,IAAI;YACZ;YACA,OAAO,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC;QAC7C,CAAC;wFAAC;AACF,IAAA;AAxCA,IAAA,OAAO;AACP,IAAA,mBAAmB;8GAHP,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,yBAAyB,s9BCnBtC,s6BA4BA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDhBW,sBAAsB,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,MAAA,EAAA,IAAA,EAAA,aAAA,EAAA,aAAA,EAAA,MAAA,EAAA,uBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAY,eAAe,2FAAzB,QAAQ,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAO9B,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAZrC,SAAS;AACC,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,uBAAuB,iBAElB,iBAAiB,CAAC,IAAI,EAAA,eAAA,EACpB,uBAAuB,CAAC,MAAM,EAAA,OAAA,EACtC,CAAC,sBAAsB,EAAE,QAAQ,EAAE,eAAe,CAAC,EAAA,IAAA,EACtD;AACL,wBAAA,IAAI,EAAE,UAAU;AAChB,wBAAA,KAAK,EAAE,mBAAmB;AAC1B,wBAAA,qBAAqB,EAAE,wBAAwB;AAC/C,qBAAA,EAAA,QAAA,EAAA,s6BAAA,EAAA;;;MEDW,+BAA+B,CAAA;AAX5C,IAAA,WAAA,GAAA;AAYC,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC;AAElB,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAC,GAAG,gBAAgB,CAAC,6BAA6B,CAAC;iFAAC;QAEhE,IAAA,CAAA,KAAK,GAAG,KAAK,CAAC,QAAQ;kFAAU;AAEhC,QAAA,IAAA,CAAA,YAAY,GAAG,QAAQ,CAAC,MAAK;AACrC,YAAA,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE;AAC1B,gBAAA,OAAO,IAAI;YACZ;AACA,YAAA,OAAO,GAAG;QACX,CAAC;yFAAC;AACF,IAAA;AAZA,IAAA,OAAO;8GADK,+BAA+B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAA/B,+BAA+B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,UAAA,EAAA,EAAA,cAAA,EAAA,kCAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EChB5C,udAWA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDDW,aAAa,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,EAAA,OAAA,EAAA,IAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAMX,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAX3C,SAAS;AACC,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,8BAA8B,EAAA,aAAA,EAEzB,iBAAiB,CAAC,IAAI,EAAA,eAAA,EACpB,uBAAuB,CAAC,MAAM,EAAA,OAAA,EACtC,CAAC,aAAa,CAAC,EAAA,IAAA,EAClB;AACL,wBAAA,IAAI,EAAE,UAAU;AAChB,wBAAA,KAAK,EAAE,kCAAkC;AACzC,qBAAA,EAAA,QAAA,EAAA,udAAA,EAAA;;;MEFW,2BAA2B,CAAA;8GAA3B,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,2BAA2B,4KAR7B,gBAAgB,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAQd,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAVvC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,yBAAyB;AACnC,oBAAA,QAAQ,EAAE,gBAAgB;oBAC1B,aAAa,EAAE,iBAAiB,CAAC,IAAI;oBACrC,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,IAAI,EAAE;AACL,wBAAA,KAAK,EAAE,6BAA6B;AACpC,wBAAA,IAAI,EAAE,MAAM;AACZ,qBAAA;AACD,iBAAA;;;MCFY,qBAAqB,CAAA;8GAArB,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,4ECTlC,wDAGA,EAAA,MAAA,EAAA,CAAA,y+OAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FDMa,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAPjC,SAAS;AACC,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,iBAGb,iBAAiB,CAAC,IAAI,EAAA,eAAA,EACpB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,wDAAA,EAAA,MAAA,EAAA,CAAA,y+OAAA,CAAA,EAAA;;;AEPhD;;AAEG;;"}
@@ -4,7 +4,7 @@ import { syncInputSignal, ɵeffectWithDeps as _effectWithDeps, isNotNil, luBoole
4
4
  import { OverlayContainer } from '@angular/cdk/overlay';
5
5
  import { toObservable, toSignal, takeUntilDestroyed, outputFromObservable } from '@angular/core/rxjs-interop';
6
6
  import { FILTER_PILL_INPUT_COMPONENT, FILTER_PILL_HOST_COMPONENT } from '@lucca-front/ng/filter-pills';
7
- import { BehaviorSubject, skip, take, map, startWith, switchMap, of, distinctUntilChanged, observeOn, asyncScheduler, filter, timer, defer, tap, concatMap, catchError, finalize, scan, takeWhile, takeUntil, ReplaySubject, Subject } from 'rxjs';
7
+ import { BehaviorSubject, skip, take, map, startWith, switchMap, of, distinctUntilChanged, observeOn, asyncScheduler, filter, timer, defer, catchError, defaultIfEmpty, tap, expand, EMPTY, scan, takeWhile, finalize, ReplaySubject, Subject } from 'rxjs';
8
8
  import { AsyncPipe, NgTemplateOutlet } from '@angular/common';
9
9
  import { Treeitem, OptionComponent } from '@lucca-front/ng/listbox';
10
10
  import { LuTooltipTriggerDirective } from '@lucca-front/ng/tooltip';
@@ -599,7 +599,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImpor
599
599
  }], ctorParameters: () => [{ type: i0.TemplateRef }], propDecorators: { select: [{ type: i0.Input, args: [{ isSignal: true, alias: "luOptionSelect", required: false }] }] } });
600
600
 
601
601
  function buildOptionsFromDataSource(ds, deps) {
602
- const { nextPage$, clue$, isPanelOpen$, setLoading, onPageAccepted } = deps;
602
+ const { clue$, isPanelOpen$ } = deps;
603
603
  const normalizedClue$ = clue$.pipe(map((clue) => clue ?? ''), distinctUntilChanged());
604
604
  // If a debounce is specified:
605
605
  // - empty clue ('') passes through immediately (initial state / clear)
@@ -611,45 +611,60 @@ function buildOptionsFromDataSource(ds, deps) {
611
611
  }
612
612
  return debouncedClue$.pipe(switchMap((clue) => {
613
613
  ds.reset?.();
614
- // `defer` so the paging state below is rebuilt for each clue, alongside the accumulator
615
- return defer(() => {
616
- let isPageLoading = false;
617
- let lastPage = 0;
618
- // Only one page in flight at a time: scrolling to the bottom of the panel can ask for the
619
- // next page twice (Firefox emits two scroll events where Chrome emits one), and asking for
620
- // page n+1 before page n has answered would leave two pending pages behind.
621
- const page$ = nextPage$.pipe(filter(() => !isPageLoading), map(() => ++lastPage),
622
- // Emitted before `concatMap` subscribes to the new page, so a data source closing its current
623
- // page on this signal doesn't lose options that are still on their way
624
- tap(() => onPageAccepted?.()), startWith(0));
625
- return page$.pipe(concatMap((page) => {
626
- isPageLoading = true;
627
- setLoading(true);
628
- const pageLoaded = () => {
629
- isPageLoading = false;
630
- setLoading(false);
631
- };
632
- return ds.getOptions({ clue, page }).pipe(catchError(() => of([])), tap(pageLoaded), map((items) => ({ page, status: 'loaded', items })), startWith({ page, status: 'pending', items: [] }),
633
- // A request completing without emitting (or erroring) must not keep pagination locked
634
- finalize(pageLoaded));
635
- }), scan((acc, { page, status, items }) => {
636
- acc[page] = { status, items };
637
- return acc;
638
- }, {}),
639
- // Stop calling pages when the last two *loaded* pages are empty
640
- takeWhile((pages) => {
641
- const lastLoadedPages = Object.values(pages)
642
- .filter(({ status }) => status === 'loaded')
643
- .slice(-2);
644
- return lastLoadedPages.length < 2 || !lastLoadedPages.every(({ items }) => items.length === 0);
645
- }), map((pages) => Object.values(pages).flatMap(({ items }) => items)),
646
- // Applied on the accumulated list so cross-page decorations (eg. homonyms) can be computed
647
- // Falls back to the raw accumulated options so a failing decoration doesn't kill the whole stream
648
- switchMap((options) => defer(() => ds.transformOptions?.(options) ?? of(options)).pipe(catchError(() => of(options)))), finalize(() => setLoading(false)));
649
- });
614
+ const options$ = ds.paginated === false ? wholeList(ds, clue) : accumulatedPages(ds, clue, deps);
615
+ return options$.pipe(
616
+ // Applied on the accumulated list so cross-page decorations (eg. homonyms) can be computed
617
+ // Falls back to the raw accumulated options so a failing decoration doesn't kill the whole stream
618
+ switchMap((options) => defer(() => ds.transformOptions?.(options) ?? of(options)).pipe(catchError(() => of(options)))));
650
619
  }));
651
620
  }));
652
621
  }
622
+ /**
623
+ * Data source owning the whole list (`[options]` + `(nextPage)`): every emission is the complete list,
624
+ * so there is nothing to accumulate, no page to guard against, and no loading state to infer — the
625
+ * consumer owns the fetching, hence the loading row too, through the `loading` input.
626
+ */
627
+ function wholeList(ds, clue) {
628
+ const params = { clue, page: 0 };
629
+ return ds.getOptions(params).pipe(catchError(() => of([])));
630
+ }
631
+ /**
632
+ * Paginated data source: one request per page, accumulated in order until two consecutive pages come
633
+ * back empty.
634
+ *
635
+ * `expand` asks for the next page from the result of the previous one, so `nextPage$` is only listened
636
+ * to between two pages: a page can't be asked for while one is in flight, and the extra scroll events
637
+ * Firefox emits at the bottom of the panel fall on no subscriber instead of queueing pages. Pages also
638
+ * only ever enter the accumulator once they answered, so the guard below can't take one that is still
639
+ * loading for an empty one.
640
+ */
641
+ function accumulatedPages(ds, clue, { nextPage$, setLoading }) {
642
+ const loadPage = (page) => ds.getOptions({ clue, page }).pipe(catchError(() => of([])),
643
+ // A request completing without emitting still answers its page, rather than locking pagination
644
+ defaultIfEmpty([]),
645
+ // A long lived data source keeps refreshing its page: those later emissions update the
646
+ // accumulated list, but only the first one answers the page — it alone arms the request for
647
+ // the next page and clears the loading row, which a refresh must leave up while a page is in flight
648
+ map((items, index) => ({ page, items, isFirstAnswer: index === 0 })), tap({
649
+ subscribe: () => setLoading(true),
650
+ next: ({ isFirstAnswer }) => {
651
+ if (isFirstAnswer) {
652
+ setLoading(false);
653
+ }
654
+ },
655
+ }));
656
+ return loadPage(0).pipe(expand(({ page, isFirstAnswer }) => isFirstAnswer
657
+ ? nextPage$.pipe(take(1), switchMap(() => loadPage(page + 1)))
658
+ : EMPTY), scan((acc, { page, items }) => {
659
+ acc[page] = items;
660
+ return acc;
661
+ }, {}),
662
+ // Stop calling pages when the last two pages came back empty
663
+ takeWhile((pages) => {
664
+ const lastPages = Object.values(pages).slice(-2);
665
+ return lastPages.length < 2 || !lastPages.every((items) => items.length === 0);
666
+ }), map((pages) => Object.values(pages).flat()), finalize(() => setLoading(false)));
667
+ }
653
668
 
654
669
  const coreSelectDefaultOptionComparer = (option1, option2) => JSON.stringify(option1) === JSON.stringify(option2);
655
670
  const coreSelectDefaultOptionKey = (option) => option;
@@ -692,9 +707,6 @@ class ALuSelectInputComponent {
692
707
  // searchable is derived from clueChange$.observed, so internal consumers must use this stream instead:
693
708
  // subscribing to clueChange$ would make every select look searchable.
694
709
  #internalClueChange$;
695
- // Next page requests actually honoured by the pagination pipeline: `nextPage$` can emit twice for a
696
- // single scroll to the bottom of the panel (Firefox), and the duplicate must not close a pending page.
697
- #pageAccepted$;
698
710
  get value() {
699
711
  return this._value;
700
712
  }
@@ -719,15 +731,9 @@ class ALuSelectInputComponent {
719
731
  }
720
732
  }
721
733
  getDefaultDataSource() {
722
- let emittedKeys = new Set();
723
734
  return {
724
- getOptions: (_params) => {
725
- let lastEmittedThisPage = [];
726
- return this.manualOptions$.pipe(tap((options) => (lastEmittedThisPage = options)), takeUntil(this.#pageAccepted$), finalize(() => (emittedKeys = new Set(lastEmittedThisPage.map((p) => this.optionKey()(p))))), map((options) => options.filter((c) => !emittedKeys.has(this.optionKey()(c)))));
727
- },
728
- reset() {
729
- emittedKeys.clear();
730
- },
735
+ getOptions: () => this.manualOptions$,
736
+ paginated: false,
731
737
  };
732
738
  }
733
739
  get panelRef() {
@@ -808,9 +814,6 @@ class ALuSelectInputComponent {
808
814
  this.#internalClueChange$ = new Subject();
809
815
  this.nextPage$ = new Subject();
810
816
  this.nextPage = outputFromObservable(this.nextPage$);
811
- // Next page requests actually honoured by the pagination pipeline: `nextPage$` can emit twice for a
812
- // single scroll to the bottom of the panel (Firefox), and the duplicate must not close a pending page.
813
- this.#pageAccepted$ = new Subject();
814
817
  this.addOption = output();
815
818
  this.valueSignal = signal(null, /* @ts-ignore */
816
819
  ...(ngDevMode ? [{ debugName: "valueSignal" }] : /* istanbul ignore next */ []));
@@ -826,7 +829,6 @@ class ALuSelectInputComponent {
826
829
  clue$: this.clue$,
827
830
  isPanelOpen$: this.isPanelOpen$,
828
831
  setLoading: (v) => this.loading.set(v),
829
- onPageAccepted: () => this.#pageAccepted$.next(),
830
832
  }))), { initialValue: [] });
831
833
  this.clue = null;
832
834
  // This is the clue stored after we selected an option to know if we should emit an empty clue on open or not