From 6db85d94c1c9db204ecf9285b5c468c57a29a96f Mon Sep 17 00:00:00 2001 From: Patrizio Bekerle <patrizio@bekerle.com> Date: Thu, 11 Mar 2021 08:10:45 +0100 Subject: [PATCH] Add provider example sequence diagram and provider tag name fixes --- packages/provider/README.md | 39 +++++++++++++++++++++++++++++++------ 1 file changed, 33 insertions(+), 6 deletions(-) diff --git a/packages/provider/README.md b/packages/provider/README.md index 69a64ba0..dfe7eb0e 100644 --- a/packages/provider/README.md +++ b/packages/provider/README.md @@ -34,10 +34,10 @@ Jump to <http://localhost:8002> and you should get a demo page. You can provide attributes (e.g. `global-name`) for components inside the provider: ```html -<provider global-name="value" global-name2="value2"> +<dbp-provider global-name="value" global-name2="value2"> <dbp-person-select subscribe="local-name:global-name"></dbp-person-select> <dbp-person-profile subscribe="local-name:global-name,local-name2:global-name2"></dbp-person-profile> -</provider> +</dbp-provider> <script type="module" src="node_modules/@dbp-toolkit/provider/dist/dbp-provider.js"></script> ``` @@ -45,12 +45,39 @@ All other components are also inherent providers (see below), so you don't reall of other components. The use of `dbp-provider` is mainly suggested being used for namespacing (e.g. different languages or entry point urls on the same page) or to deliver attribute changes across different components. +### Flow + +#### Example 1 + +```html +<dbp-provider lang> + <dbp-language-select></dbp-language-select> + <dbp-person-select subscribe="lang"></dbp-person-select> +</dbp-provider> +``` + +There is a provider, a language selector and a person selector. +The flow looks like this: + +```mermaid +sequenceDiagram + participant P as Provider + participant LS as LanguageSelect + participant PS as PersonSelect + Note over P,PS: Initialization + P-->P: Has attribute "lang" + PS->>P: Subscribe to "lang" + Note over P,PS: Communication + LS->>P: "lang" should be "en" + P->>PS: "lang" was updated to "en" +``` + ### Attributes - `init` (optional): set your vars to values - - example `<provider init="foo=bar"></provider>` + - example `<dbp-provider init="foo=bar"></dbp-provider>` - `id` (optional): set an id, useful for debugging - - example `<provider id="p-1"></provider>` + - example `<dbp-provider id="p-1"></dbp-provider>` ## AdapterLitElement @@ -100,11 +127,11 @@ You can locally "subscribe" to attributes (e.g. `local-name`) that can be provid Multiple attributes can be subscribed when separated by a comma (`,`). ```html -<provider global-name="value" global-name2="value2"> +<dbp-provider global-name="value" global-name2="value2"> <dbp-provider-adapter subscribe="local-name:global-name"> <third-party-webcomponent> </third-party-webcomponent> </dbp-provider-adapter> -</provider> +</dbp-provider> <script type="module" src="node_modules/@dbp-toolkit/provider/dist/dbp-provider.js"></script> <script type="module" src="node_modules/@dbp-toolkit/provider/dist/dbp-adapter.js"></script> ``` \ No newline at end of file -- GitLab