# Framework related code

- layer
    - Flash Service (transient messages)
    - Panel Service (floating panels)
    - Quick Help Service (key bindings, mouse gestures)
    - Veil Service (loss of server connection)

- mast
    - Masthead Service

- nav
    - Navigation Service (navigation menu)

- remote
    - REST Service
    - URL functin Service
    - Web Socket Service
    - Web Socket Event Service
    - Web Socket encapsulation

    - (Login Service) << planned

- svg
    - GeoData Service (TopoJSON map functions)
    - Glyph Service
    - Icon Service
    - Map Service
    - SVG Utilities Service
    - Zoom Service

- util
    - General Functions
    - Key Handler
    - User Preference Service
    - Randomization Service
    - Theme Service

- widget
    - Button Service
    - Table Service (table styling directives)
    - Table Builder Service
    - Toolbar Service
    - Tooltip Service
