1.0.4 • Published 5 years ago
@standuply/angular-walkthrough v1.0.4
Walkthrough
This Angular model is inspired in part by ng-walkthrough for AngularJS.
Installation
npm i angular-walkthrough --saveRequirements
- Angular 7.0.0 and more
- Angular/cdk 7.0.0 and more
Demo
Usage
ng-walkthrough attributes
All attributes are optional.
id: HTML id.
Output events
ready: fired when the walkthrough is completely readyclosed: fired when the walkthrough has been closed. It sends a boolean value set to true if the walkthrough has been closed with the "finishButton" button.finished: fired when the walkthrough has been finished, which means : closed on last step.
Focus zone:
focusElementSelector: CSS selector for focus a HTML element. If the selector detect more that one, the only the first will be chosen.focusElementCSSClass: Add a class on focusElementfocusHighlightAnimation:truefor show highlight animation on the focus element. By defautfalse.focusBackdrop:truefor show a dark backdrop around the focus element. By defautfalse.focusGlow:truefor show a glow on the focus element. By defautfalse.focusAction: add an actionclickon the highlight zone.typeSelector: type of selection. Two modes possible:element(one unique HMLT element),zone(a zone with contains the first and last element). By defaut :element.radius: apply a “borderRadius” on highlight zone. Ifnumberthe value as change in percent. Ifautouse the focused element borderRadius. If it's a simplestring, use it without changes. By defaut, no radius.marginZone: add a maring of focus zone in px. . e.g.12 15 12 13for CSS12px 15px 12px 13px,12 15for12px 15px 12px 15px,12for12px 12px 12px 12px.scrollOnTarget: if the walkthrough detects thatfocusElementSelectoris outside of the current view, scrolls automatically. By default :truevisibilityCallback: callback to check iffocusElementSelectoris hidden, only if the walkthrough needs specific verification. By default :optional
Content:
contentTemplate: add ang-templatewith your description.contentText: show a simple description without formating in content.contentStyle: background style for content container. Possible values:none,darken. By defaut :darken.alignContent: align thecontentTemplatehorizontally. Possible values:left,centerorright. By defaut :left.verticalAlignContent: align thecontentTemplatevertically. Possible values:above,top,center,bottomorbelow. By defaut :top.contentSpacing: The max space which separates the content to the focus zone horizontally, default is 0 (opposite of the focusZone)verticalContentSpacing: The max space which separates the content to the focus zone vertically, default is 50rootElement: root element on which walkthrough will scroll to after each positioning, as to avoid hidden zones
Navigation:
previousStep: add a ling to go to the previousng-walkthrough.nextStep: add a ling to go to the nextng-walkthrough.closeButton:truefor show the button. By defautfalse.closeAnywhere:falsefor click anywhere to close. By defauttrue.finishButton:truefor show a link to exit. By defautfalse.disabled:truefor ignoring the walkthrough based on a boolean flag. By defautfalse.texts: change texts. It's a overlay ofWalkthroughText.
Arrow:
showArrow:truefor show the arrow. By defautfalse.arrowColor: change the arrow color. By defaut#FFF.
ng-walkthrough-flow attributes
All attributes are optional and not overriding the subcomponents attributes except previousStep, nextStep that will be ignored.
id: HTML id.
Output events
closed: fired when a walkthrough has been closed. It sends a boolean value set to true if the walkthrough has been closed with the "finishButton" button.finished: fired when the last walkthrough has been closed.
Focus zone:
focusHighlightAnimation:truefor show highlight animation on the focus element.focusBackdrop:truefor show a dark backdrop around the focus element.focusGlow:truefor show a glow on the focus element.radius: apply a “borderRadius” on highlight zone. Ifnumberthe value as change in percent. Ifautouse the focused element borderRadius. If it's a simplestring, use it without changes.marginZone: add a maring of focus zone in px. . e.g.12 15 12 13for CSS12px 15px 12px 13px,12 15for12px 15px 12px 15px,12for12px 12px 12px 12px.
Content:
contentStyle: background style for content container. Possible values:none,darken.rootElement: root element on which walkthrough will scroll to after each positioning, as to avoid hidden zones (facultative)
Navigation:
closeButton:truefor show the button.closeAnywhere:falsefor for click anywhere to close.texts: change texts. It's a overlay ofWalkthroughText.finishButton:truefor show a link to exit. By defautfalse. Alwaystrueon the last step.
Arrow:
showArrow:truefor show the arrow. By defautfalse.arrowColor: change the arrow color. By defaut#FFF.
Change texts
It's possible to change all texts. With the texts directive attribute.
WalkthroughText {
previous = 'Previous';
next = 'Next';
close = 'Close';
}Statics methods
WalkthroughComponent.walkthroughStop(): hide and stop the current walkthrough (impossible to open a new walkthrough). Does not work if no walkthrough is showed.WalkthroughComponent.walkthroughContinue(): show and continue the current walkthrough. Does not work if no walkthrough is paused.WalkthroughComponent.walkthroughHasShow(): if the a walkthrough is currently showing.WalkthroughComponent.walkthroughNext(): to load the next walkthrough.WalkthroughComponent.walkthroughPrevious(): to load the previous walkthrough.
Statics observable
WalkthroughComponent.onOpen: on openWalkthroughComponent.onRefresh: on reshowing the current stepWalkthroughComponent.onClose: on closeWalkthroughComponent.onFinish: on close in the last stepWalkthroughComponent.onNavigate: on navigateWalkthroughComponent.onNavigatePrevious: on navigate on the previous stepWalkthroughComponent.onNavigateNext: on navigate on the next step
Example
Highlighting #selectorId element with example text in ng-template.
<ng-walkthrough
id="wt-test"
focusElementSelector="#selectorId"
focusBackdrop="true"
[contentTemplate]="template"
closeButton="true">
<ng-template #template>
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit...
</p>
</ng-template>
</ng-walkthrough>Example of scenario with ng-walkthrough-flow:
<ng-walkthrough-flow #walkFlow
id="wt-test-flow"
focusBackdrop="true"
focusHighlightAnimation="true"
closeButton="true"
closeAnywhere="false"
showArrow="true"
radius="auto"
[texts]="frenchText">
<ng-walkthrough
id="wt-test1-flow"
focusElementSelector="#test1"
[contentText]="Lorem ipsum dolor sit amet, consectetur adipiscing elit...">
</ng-walkthrough>
<ng-walkthrough
id="wt-test2-flow"
focusElementSelector="#test2"
[contentText]="Lorem ipsum dolor sit amet, consectetur adipiscing elit...">
</ng-walkthrough>
<ng-walkthrough
id="wt-test3-flow"
focusElementSelector="#test3"
closeButton="true"
[contentText]="Lorem ipsum dolor sit amet, consectetur adipiscing elit...">
</ng-walkthrough>
</ng-walkthrough-flow>For more examples, see examples/example.component.html.
Publishing the library
ng build angular-walkthrough --prod
cp *.md dist/angular-walkthrough
cd dist/angular-walkthrough
npm publishLicense
Like Angular, this module is released under the permissive MIT license. Your contributions are always welcome.