@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 +1 -0
- package/fesm2022/lucca-front-ng-activity-feed.mjs +2 -2
- package/fesm2022/lucca-front-ng-activity-feed.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-core-select.mjs +55 -53
- package/fesm2022/lucca-front-ng-core-select.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-dialog.mjs +5 -2
- package/fesm2022/lucca-front-ng-dialog.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-dropdown.mjs +3 -0
- package/fesm2022/lucca-front-ng-dropdown.mjs.map +1 -1
- package/package.json +4 -4
- package/schematics/collection.json +5 -0
- package/schematics/deprecated-resolver/index.js +1 -4
- package/schematics/file-upload/index.js +22 -0
- package/schematics/file-upload/migration.js +230 -0
- package/schematics/file-upload/migration.spec.js +56 -0
- package/schematics/file-upload/schema.json +23 -0
- package/schematics/lib/angular-component-ast.js +3 -1
- package/schematics/lib/deprecated-mapper.js +2 -10
- package/schematics/lib/html-ast.js +26 -0
- package/types/lucca-front-ng-core-select.d.ts +7 -0
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,
|
|
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 {
|
|
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
|
-
|
|
615
|
-
return
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
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: (
|
|
725
|
-
|
|
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
|