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

ngx-tooltip-selectable

v0.1.22

Published

Simple tooltip control for your angular2 applications using bootstrap3 with posibility to copy text. MODIFIED

Downloads

30

Readme

This repository is for demonstration purposes of how it can be implemented in Angular and is not maintaned. Please fork and maintain your own version of this repository.

It is a fork of ngx-tooltip of Umed Khudoiberdiev made by me for my specific case.

ngx-tooltip-selectable

Simple tooltip control for your angular2 applications using bootstrap3. Does not depend of jquery. If you want to use it without bootstrap - simply create proper css classes.

Installation

  1. Install npm module:

    npm install ngx-tooltip --save

  2. If you are using system.js you may want to add this into map and package config:

    {
        "map": {
            "ngx-tooltip": "node_modules/ngx-tooltip"
        },
        "packages": {
            "ngx-tooltip": { "main": "index.js", "defaultExtension": "js" }
        }
    }

Usage

Example of usage with dynamic html content (the only way for now):

<tooltip-content #myTooltip 
[animation]="true" 
[hideTimeoutMs]="150"
placement="left"
[changeSize]="expandedTooltip"
(clickOutside)="tooltipVisibility={value: false, clickOutside: true}"
>
    <b>Very</b> <span style="color: #C21F39">Dynamic</span> <span style="color: #00b3ee">Reusable</span>
    <b><i><span style="color: #ffc520">Tooltip With</span></i></b> <small>Html support</small>.
</tooltip-content>

<button [tooltip]="myTooltip"
         [tooltipPlacement]="tooltipPosition"
         [visibility]="tooltipVisibility" 
         [keepOnMouseHover]="false"
>element on which this tooltip is applied.</button>
  • <span tooltip>:
    • tooltip="tamplateID" templateID of tooltip-content container to be shown in the tooltip.
    • [visibility]="boolean" Manually show/hide tooltips in some specific cases.
    • [tooltipDisabled]="true|false" Indicates if tooltip should be disabled. If tooltip is disabled then it will not be shown. Default is false
    • [tooltipAnimation]="true|false" Indicates if all tooltip will have animation class from bootstrap applied or not. Default is true.
    • tooltipPlacement="top|bottom|left|right" Indicates where the tooltip should be placed. Default is "bottom".
  • <tooltip-content>:
    • [animation]="true|false" Indicates if all tooltip should be shown with bootstrap animation or not. Default is true. Possibly will be Deprecated soon.
    • placement="top|bottom|left|right" Indicates where the tooltip should be placed. Default is "bottom".
    • [hideTimeoutMs]="150" Indicates tooltip auto-hide timespan after mouse-leaving of tooltip area. Default is "150".
    • [keepOnMouseHover]="false" Switchs on and off tooltip keeping being displayed on its area mouse hover (and text copy). Default is "true".
    • [changeSize]="variable" If you plan to place some cotrols on tooltip area that change its size - then you should feed some variable change (from false to true and vice-versa) in this INPUT to recalculate tooltip position.
    • [correctionAbsolute]="variable" Turn off absolute positioned tooltip calculation (use to correct top and left coordinates to fit parent borders).
    • (clickOutside)="tooltipVisibility={value: false, clickOutside: true}" . Since you are able to copy text from tooltip area and change its size - then auto-hiding is disabled after size-change of tooltip - use (clickOutside) to hide tooltip (clickOutside is not part of the module, install it by yourself separately)
    • (tooltipOnMouseEnter)="handler()" . Handle mouseenter event for tooltip element.
    • (tooltipOnMouseLeave)="handler()" . Handle mouseleave event for tooltip element.

Sample

import {Component} from "@angular/core";
import {TooltipModule} from "ngx-tooltip-selectable";

@Component({
    selector: "app",
    template: `
<div class="container">

    <div class="tooltip-spot"
         [tooltipPlacement]="tooltipPosition"
         [tooltip]="myTooltip"
         [visibility]="tooltipVisibility"
         (mouseenter)="tooltipVisibility=true"
         (mouseleave)="tooltipVisibility=false"
    >
    </div>

    <tooltip-content #myTooltip class="tooltip-area"
                     [ngClass]="{expanded: expandedTooltip}"
                     (clickOutside)="tooltipVisibility={value: false, clickOutside: true}"
                     [hideTimeoutMs]="250"
                     [changeSize]="expandedTooltip">
        <div class="base-info" >
            Main info {{variable}}
        </div>
        <div *ngIf="expandedTooltip">
            More info {{moreINfoVariable}}
        </div>

        <button class="expand-button" (click)="expandedTooltip=!expandedTooltip">More info...</button>
    </tooltip-content>

</div>
`
})
export class App implements {
    
    public tooltipPosition: string = 'bottom';
    public tooltipVisibility: {value: boolean, clickOutside?: boolean} = {value: false};
    public expandedTooltip: boolean = false;

}

@NgModule({
    imports: [
        // ...
        TooltipModule
    ],
    declarations: [
        App
    ],
    bootstrap: [
        App
    ]
})
export class AppModule {

}

*One more note - tooltip-content component apply 'tooltip' class on its template wrapper div. You can set css rules to this class. And don't forget "position: absolute" since I've tested it only with this positioning.

Publishing

  1. Make a fork on github

  2. npm install

    npm install

  3. Do the changes (src, README.md and package.json) and then publish:

    gulp publish

Development

  1. Build the package:

    gulp publish

  2. go to package dir:

    cd ./build/package

  3. Run 'npm link' in that dir

  4. Go to your project root dir and run 'npm link ngx-tooltip-selectable'

  5. Now to can import this module to your NG2 app.

  6. In case of any changes in module - just run step 1 again (sometimes steps 2 and 3 if smth)