npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

laxar-accordion-widget

v3.0.0

Published

Provides multiple widget areas in the form of an accordion

Downloads

3

Readme

laxar-accordion-widget Build Status

LaxarJS widget written in AngularJS v1 that provides multiple widget areas in the form of an accordion

Content

Appearance

Illustration of the laxar-accordion-widget

A laxar-accordion-widget with three areas. The second area is selected and its widget area is visible.

Usage

Installation

For use within LaxarJS v1 projects:

npm install laxar-accordion-widget

Configuration Example

{
   "widget": "laxar-accordion-widget",
   "id": "outerAccordion",
   "features": {
      "areas": [
         {
            "name": "first",
            "flag": "firstArea",
            "i18nHtmlLabel": {
               "en": "First Area",
               "de": "Erster Bereich"
            }
         },
         {
            "name": "second",
            "flag": "secondArea",
            "i18nHtmlLabel": {
               "en": "Second Area",
               "de": "Zweiter Bereich"
            }
         },
         {
            "name": "third",
            "flag": "thirdArea",
            "i18nHtmlLabel": {
               "en": "Third Area",
               "de": "Dritter Bereich"
            }
         }
      ]
   }
}

Use this configuration on a page for a laxar-accordion-widget instance with three areas.

For full configuration options refer to the widget.json.

Features

1. Display Areas with Tabs (areas)

R1.1 The widget MUST display a configurable list of widget areas.

R1.2 The widget MUST display a panel with an internationalized title for each widget area.

R1.3 The widget MUST allow to configure a flag for each area. If an area is activated the flag MUST be published as true. The flag of the area which is deactivated now MUST be published as false.

R1.4 The widget MUST initially publish all configured visibility flags when receiving the beginLifecycleRequest event.

R1.5 For each title it MUST be configurable if it is marked as anonymized. By default titles are not marked as anonymized.

R1.6 For each area a flag MUST be configurable to indicate an error state for the given panel. An error state MUST be visualized through a CSS class.

R1.7 The widget MUST allow to disable an area though a flag. An area which is disabled does not react to user interaction or selection events and MUST use a special CSS class to display its state.

R1.8 It MUST be possible to tag an area. The tag MUST be controlled by a flag for each area and MUST be displayed through the CSS class is-tagged.

R1.9 The widget MUST handle visibility requests (changeAreaVisibilityRequest) for the provided widget areas in relation to its own visibility.

R1.10 When changing the selection, the widget MUST send new visibility requests for the affected widget areas.

R1.11 A panel MUST be selectable by a mouse click. The widget MUST handle the mouse click as a selection request and focus the area or may refuse the request depending on further validation.

R1.12 The accordion and the selected panel MUST be focusable (e.g. using the tab key). The focused panel MUST be emphasized graphically.

R1.13 If the accordion is focused, the previous panel and the next panel MUST be selectable by the "cursor up" key and the "cursor down" key respectively. The widget MUST handle this user interaction as a selection request and MUST refuse the request if applicable.

R1.14 The selected panel MUST be emphasized according to the theme.

R1.15 When the widget changes the selection, the widget MUST show the corresponding area and hide the former selected area.

R1.16 The widget MUST allow to configure a selection action. When the widget changes the selection it MUST publish the related willTakeAction and didTakeAction events for this action.

2. Ask for Selection Confirmation (areas.*.selectionRequest)

R2.1 The widget MUST allow the configuration of a selection request action. This selection request action allows other widgets and activities to have influence on the selection.

R2.2 If no selection request action is configured, every selection request MUST be fulfilled and the selection MUST be performed.

R2.3 If a selection request action was configured, the widget MUST trigger the action when a selection request happened (by publishing a takeActionRequest-Event). The further handling of the selection request MUST be interrupted until confirmation is received.

R2.4 The widget MUST allow the configuration of a confirm action. If a selection request action and a confirm action are configured, the widget MUST perform the selection when it receives a takeActionRequest for the confirm action.

R2.5 If the widget receives a takeActionRequest event for the confirm action but no selection request was triggered for the associated panel, the widget MUST ignore the event.

3. Allow to Change the Selection Using Actions (areas.*.selectionRequestTrigger)

R3.1 The widget MUST allow the configuration of a list of selection request trigger actions. These actions allow other widgets and activities to trigger a selection request.

R3.2 If no selection request action is configured (R1.15) the widget MUST perform the selection directly when one selection request trigger action event is received.

4. Support Internationalization (i18n)

R4.1 The widget MUST allow the configuration of a locale as described in the documentation to LaxarJS i18n. When displaying internationalized content, the widget MUST use the current language tag of the locale.

Integration

Patterns

The widget supports the following event patterns as specified by the LaxarJS Patterns document.

Actions

  • Action: areas[*].selectionRequest.action

    • Role: Sender
    • Description: Sending a selection request.
  • Action: areas[*].selection.action

    • Role: Sender
    • Description: Sending that a selection took place.
  • Action: areas[*].selectionRequestTrigger.action

    • Role: Receiver
    • Description: Receiving a selection request.
  • Action: areas[*].selectionRequest.confirmationAction

    • Role: Receiver
    • Description: Receiving the confirmation of the selection request.

Flags

  • Flag: areas[*].validOn

    • Role: Receiver
    • Description: Receiving a signal if an area has an error state.
  • Flag: areas[*].disabledOn

    • Role: Receiver
    • Description: Receiving a signal if an area should be deactivated.
  • Flag: areas[*].taggedOn

    • Role: Receiver
    • Description: Receiving a signal if an area should be tagged.
  • Flag: areas[*].flag

    • Role: Sender
    • Description: Sending a signal if an area changed it visibility.

References

The following resources are useful or necessary for the understanding of this document. The links refer to the latest version of the documentation. Refer to the bower.json for the specific version that is normative for this document.