@lucca-front/ng 22.0.3-rc.1 → 22.0.3-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.
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":"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"}
@@ -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, concatMap, catchError, tap, 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 } = 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,42 +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
- return nextPage$.pipe(
619
- // Only one page in flight at a time: scrolling to the bottom of the panel can ask for the
620
- // next page twice (Firefox emits two scroll events where Chrome emits one), and asking for
621
- // page n+1 before page n has answered would leave two pending pages behind.
622
- filter(() => !isPageLoading), map(() => ++lastPage), startWith(0), concatMap((page) => {
623
- isPageLoading = true;
624
- setLoading(true);
625
- const pageLoaded = () => {
626
- isPageLoading = false;
627
- setLoading(false);
628
- };
629
- return ds.getOptions({ clue, page }).pipe(catchError(() => of([])), tap(pageLoaded), map((items) => ({ page, status: 'loaded', items })), startWith({ page, status: 'pending', items: [] }),
630
- // A request completing without emitting (or erroring) must not keep pagination locked
631
- finalize(pageLoaded));
632
- }), scan((acc, { page, status, items }) => {
633
- acc[page] = { status, items };
634
- return acc;
635
- }, {}),
636
- // Stop calling pages when the last two *loaded* pages are empty
637
- takeWhile((pages) => {
638
- const lastLoadedPages = Object.values(pages)
639
- .filter(({ status }) => status === 'loaded')
640
- .slice(-2);
641
- return lastLoadedPages.length < 2 || !lastLoadedPages.every(({ items }) => items.length === 0);
642
- }), map((pages) => Object.values(pages).flatMap(({ items }) => items)),
643
- // Applied on the accumulated list so cross-page decorations (eg. homonyms) can be computed
644
- // Falls back to the raw accumulated options so a failing decoration doesn't kill the whole stream
645
- switchMap((options) => defer(() => ds.transformOptions?.(options) ?? of(options)).pipe(catchError(() => of(options)))), finalize(() => setLoading(false)));
646
- });
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)))));
647
619
  }));
648
620
  }));
649
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
+ }
650
668
 
651
669
  const coreSelectDefaultOptionComparer = (option1, option2) => JSON.stringify(option1) === JSON.stringify(option2);
652
670
  const coreSelectDefaultOptionKey = (option) => option;
@@ -713,15 +731,9 @@ class ALuSelectInputComponent {
713
731
  }
714
732
  }
715
733
  getDefaultDataSource() {
716
- let emittedKeys = new Set();
717
734
  return {
718
- getOptions: (_params) => {
719
- let lastEmittedThisPage = [];
720
- return this.manualOptions$.pipe(tap((options) => (lastEmittedThisPage = options)), takeUntil(this.nextPage$), finalize(() => (emittedKeys = new Set(lastEmittedThisPage.map((p) => this.optionKey()(p))))), map((options) => options.filter((c) => !emittedKeys.has(this.optionKey()(c)))));
721
- },
722
- reset() {
723
- emittedKeys.clear();
724
- },
735
+ getOptions: () => this.manualOptions$,
736
+ paginated: false,
725
737
  };
726
738
  }
727
739
  get panelRef() {