From 8471fe40a54b65a6b4cc66a1c32a46cbfb2bb510 Mon Sep 17 00:00:00 2001 From: Cilibiu Bogdan Date: Fri, 15 Jan 2021 13:35:39 +0200 Subject: [PATCH] [ADF-5311] Extract infinite select scroll loading logic to a reusable component (#6536) * move translation to core * select scroll directive * register directive * add infinite scroll directive * clean up component and aditional logic * use waitForAsync over async * update docs * change output emitter name * revert to async * restore default value; * test --- docs/README.md | 1 + .../infinite-select-scroll.directive.md | 30 +++++++ lib/content-services/src/lib/i18n/en.json | 3 - .../sites-dropdown.component.html | 2 + .../sites-dropdown.component.spec.ts | 4 +- .../site-dropdown/sites-dropdown.component.ts | 42 ++-------- lib/core/directives/directive.module.ts | 7 +- .../infinite-select-scroll.directive.spec.ts | 82 +++++++++++++++++++ .../infinite-select-scroll.directive.ts | 66 +++++++++++++++ lib/core/directives/public-api.ts | 1 + lib/core/i18n/en.json | 3 + 11 files changed, 200 insertions(+), 41 deletions(-) create mode 100644 docs/core/directives/infinite-select-scroll.directive.md create mode 100644 lib/core/directives/infinite-select-scroll.directive.spec.ts create mode 100644 lib/core/directives/infinite-select-scroll.directive.ts diff --git a/docs/README.md b/docs/README.md index cc8ea2c26f..d5991cf2f7 100644 --- a/docs/README.md +++ b/docs/README.md @@ -138,6 +138,7 @@ The main purpose of the Notification history component is list all the notificat | [Node Restore directive](core/directives/node-restore.directive.md) | Restores deleted nodes to their original location. | [Source](../lib/core/directives/node-restore.directive.ts) | | [Upload Directive](core/directives/upload.directive.md) | Uploads content in response to file drag and drop. | [Source](../lib/core/directives/upload.directive.ts) | | [Version Compatibility Directive](core/directives/version-compatibility.directive.md) | Enables/disables components based on ACS version in use. | [Source](../lib/core/directives/version-compatibility.directive.ts) | +| [Infinite Select Scroll](core/directives/infinite-select-scroll.directive.md) | Load more options to select component if API returns more items. | [Source](../lib/core/directives/infinite-select-scroll.directive.ts) | ### Dialogs diff --git a/docs/core/directives/infinite-select-scroll.directive.md b/docs/core/directives/infinite-select-scroll.directive.md new file mode 100644 index 0000000000..3c9d911789 --- /dev/null +++ b/docs/core/directives/infinite-select-scroll.directive.md @@ -0,0 +1,30 @@ +--- +Title: Infinite Select Scroll directive +Added: v4.3.0 +Status: Active +Last reviewed: 2020-01-14 +--- + +# [Infinite Select Scroll](../../../lib/core/directives/infinite-select-scroll.directive.ts "Defined in infinite-select-scroll.directive.ts") + +Load more options to select component if API returns more items + +## Basic Usage + +```html + + + {{ option }} + +` +``` + +## Class members + +### Events + +| Name | Type | Description | +| --- | --- | --- | +| scrollEnd | [`EventEmitter`](https://angular.io/api/core/EventEmitter)`<`[`Event`](https://developer.mozilla.org/en-US/docs/Web/API/Event)`>` | Emitted when scroll reaches the last item. | diff --git a/lib/content-services/src/lib/i18n/en.json b/lib/content-services/src/lib/i18n/en.json index 1218374c7f..f5f9dddc4b 100644 --- a/lib/content-services/src/lib/i18n/en.json +++ b/lib/content-services/src/lib/i18n/en.json @@ -30,9 +30,6 @@ "ARROW_ICON": "Arrow right icon" } }, - "ADF_DROPDOWN": { - "LOADING": "Loading..." - }, "ADF_CONFIRM_DIALOG": { "TITLE": "Confirm", "ACTION": "Do you want to proceed?", diff --git a/lib/content-services/src/lib/site-dropdown/sites-dropdown.component.html b/lib/content-services/src/lib/site-dropdown/sites-dropdown.component.html index 43ed4f552a..ed95b31ae7 100644 --- a/lib/content-services/src/lib/site-dropdown/sites-dropdown.component.html +++ b/lib/content-services/src/lib/site-dropdown/sites-dropdown.component.html @@ -1,6 +1,8 @@