Socket
Socket
Sign inDemoInstall

ng2-completer

Package Overview
Dependencies
Maintainers
1
Versions
52
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

ng2-completer - npm Package Compare versions

Comparing version 0.2.3 to 0.3.0

components/ng2-completer/completer-cmp.d.ts

107

package.json
{
"name": "ng2-completer",
"version": "0.2.3",
"description": "ng2 autocomplete/typeahead component",
"main": "bundles/ng2-completer.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"clean": "./node_modules/.bin/del bundles \"src/**/*.+(js|d.ts|js.map)\" \"demo/**/*.+(js|js.map)\"",
"build:dev": "webpack --progress --color",
"build:prod": "NODE_ENV=production webpack --progress --color",
"build:demo:dev": "NG2_COMPLETER_DEMO=y webpack --progress --color",
"build:demo:prod": "NG2_COMPLETER_DEMO=y NODE_ENV=production webpack --progress --color",
"start": "NG2_COMPLETER_DEMO=y webpack-dev-server --progress",
"deploy:gh-pages": "npm run build:demo:prod && ./node_modules/.bin/gh-pages -d bundles",
"prepublish": "npm run clean && npm run build:prod && npm run build:dev",
"postpublish": "npm run deploy:gh-pages"
},
"keywords": [
"angular2",
"autcomplete",
"typeahead",
"word completion",
"ng2"
],
"author": "Ofer Herman <oferhe@gmail.com>",
"bugs": {
"url": "https://github.com/oferh/ng2-completer/issues"
},
"license": "Apache-2.0",
"typings": "./bundles/src/index.d.ts",
"repository": "oferh/ng2-completer",
"peerDependencies": {
"@angular/common": "^2.0.1",
"@angular/core": "^2.0.1",
"@angular/forms": "^2.0.1",
"@angular/http": "^2.0.1",
"rxjs": "^5.0.0-beta.6"
},
"devDependencies": {
"@angular/common": "^2.0.1",
"@angular/compiler": "^2.0.1",
"@angular/compiler-cli": "^0.6.2",
"@angular/core": "^2.0.1",
"@angular/forms": "^2.0.1",
"@angular/http": "^2.0.1",
"@angular/material": "^2.0.0-alpha.9-3",
"@angular/platform-browser": "^2.0.1",
"@angular/platform-browser-dynamic": "^2.0.1",
"@angular/platform-server": "^2.0.1",
"@angular/router": "^3.0.0-rc.2",
"@types/core-js": "^0.9.33",
"@types/es6-collections": "^0.5.29",
"@types/node": "^6.0.41",
"@types/webpack": "^1.12.34",
"angular2-template-loader": "^0.5.0",
"awesome-typescript-loader": "^2.2.4",
"compression-webpack-plugin": "^0.3.1",
"copy-webpack-plugin": "^3.0.1",
"core-js": "^2.4.1",
"del-cli": "^0.2.0",
"ejs": "^2.5.2",
"gh-pages": "^0.11.0",
"html-webpack-plugin": "^2.19.0",
"json-loader": "^0.5.4",
"object.assign": "^4.0.3",
"raw-loader": "^0.5.1",
"reflect-metadata": "^0.1.3",
"run-sequence": "^1.2.2",
"rxjs": "^5.0.0-beta.6",
"ts-loader": "^0.8.1",
"tslint": "^3.13.0",
"typescript": "^2.0.2",
"uglify-js": "^2.6.2",
"unminified-webpack-plugin": "^1.1.1",
"webpack": "^2.1.0-beta.25",
"webpack-dev-server": "^2.1.0-beta.8",
"webpack-node-externals": "^1.2.0",
"zone.js": "^0.6.12"
}
"name": "ng2-completer",
"version": "0.3.0",
"description": "ng2 autocomplete/typeahead component",
"main": "ng2-completer.umd.js",
"keywords": [
"angular2",
"autcomplete",
"typeahead",
"word completion",
"ng2"
],
"author": "Ofer Herman <oferhe@gmail.com>",
"bugs": {
"url": "https://github.com/oferh/ng2-completer/issues"
},
"license": "Apache-2.0",
"typings": "index.d.ts",
"repository": "oferh/ng2-completer",
"dependencies": {},
"peerDependencies": {
"@angular/common": "^2.2.2",
"@angular/compiler": "^2.2.2",
"@angular/core": "^2.2.2",
"@angular/forms": "^2.2.2",
"@angular/platform-browser": "^2.2.2",
"@angular/platform-browser-dynamic": "^2.2.2",
"rxjs": "5.0.0-beta.12"
},
"module": "index.js"
}

@@ -24,4 +24,78 @@ "use strict";

selector: "ng2-completer",
templateUrl: "./completer-cmp.html",
styleUrls: ["./completer-cmp.css"],
template: `
<div class="completer-holder" ctrCompleter>
<input class="completer-input" ctrInput [(ngModel)]="searchStr" [attr.name]="inputName" [placeholder]="placeholder" [attr.maxlength]="maxChars"
[tabindex]="fieldTabindex" [disabled]="disableInput" [clearSelected]="clearSelected" [overrideSuggested]="overrideSuggested" (blur)="onBlur()"
autocomplete="off" autocorrect="off" autocapitalize="off" />
<div class="completer-dropdown-holder" *ctrList="dataService; minSearchLength: minSearchLength; pause: pause; autoMatch: autoMatch; let items = results; let searchActive = searching; let isInitialized = searchInitialized;">
<div class="completer-dropdown" ctrDropdown *ngIf="isInitialized">
<div *ngIf="searchActive && displaySearching" class="completer-searching">{{textSearching}}</div>
<div *ngIf="!searchActive && (!items || items.length === 0)" class="completer-no-results">{{textNoResults}}</div>
<div class="completer-row-wrapper" *ngFor="let item of items; let rowIndex=index">
<div class="completer-row" [ctrRow]="rowIndex" [dataItem]="item">
<div *ngIf="item.image || item.image === ''" class="completer-image-holder">
<img *ngIf="item.image != ''" src="{{item.image}}" class="completer-image" />
<div *ngIf="item.image === ''" class="completer-image-default"></div>
</div>
<div class="completer-item-text" [ngClass]="{'completer-item-text-image': item.image || item.image === '' }">
<completer-list-item class="completer-title" [text]="item.title" [matchClass]="matchClass" [searchStr]="searchStr" [type]="'title'"></completer-list-item>
<completer-list-item *ngIf="item.description && item.description != ''" class="completer-description" [text]="item.description"
[matchClass]="matchClass" [searchStr]="searchStr" [type]="'description'">
</completer-list-item>
</div>
</div>
</div>
</div>
</div>
</div>
`,
styles: [`
.completer-dropdown {
border-color: #ececec;
border-width: 1px;
border-style: solid;
border-radius: 2px;
width: 250px;
padding: 6px;
cursor: pointer;
z-index: 9999;
position: absolute;
margin-top: -6px;
background-color: #ffffff;
}
.completer-row {
padding: 5px;
color: #000000;
margin-bottom: 4px;
clear: both;
display: inline-block;
width: 103%;
}
.completer-selected-row {
background-color: lightblue;
color: #ffffff;
}
.completer-description {
font-size: 14px;
}
.completer-image-default {
width: 16px;
height: 16px;
background-image: url("demo/res/img/default.png");
}
.completer-image-holder {
float: left;
width: 10%;
}
.completer-item-text-image {
float: right;
width: 90%;
}
`],
providers: [COMPLETER_CONTROL_VALUE_ACCESSOR]

@@ -48,6 +122,7 @@ })

@ViewChild(CtrCompleter) private completer: CtrCompleter;
@ViewChild(CtrCompleter) public completer: CtrCompleter;
public searchStr = "";
private displaySearching = true;
private searchStr = "";
private _onTouchedCallback: () => void = noop;

@@ -54,0 +129,0 @@ private _onChangeCallback: (_: any) => void = noop;

@@ -11,3 +11,7 @@ "use strict";

selector: "completer-list-item",
templateUrl: "./completer-list-item-cmp.html"
template: `
<span class="completer-list-item-holder" [ngClass]="{'completer-title': type === 'title', 'completer-description': type === 'description'}" >
<span class="completer-list-item" *ngFor="let part of parts" [ngClass]="part.isMatch ? matchClass : null">{{part.text}}</span>
</span>
`
})

@@ -20,3 +24,3 @@ export class CompleterListItemCmp implements OnInit {

private parts: MatchPart[] = [];
public parts: MatchPart[] = [];
public ngOnInit() {

@@ -23,0 +27,0 @@ let matchStr = this.text.toLowerCase();

import { Directive, Host, Input, OnInit, TemplateRef, ViewContainerRef } from "@angular/core";
import { Observable } from "rxjs/Observable";
import { Observable, Subscription } from "rxjs/Rx";

@@ -31,3 +31,3 @@

// private searching = false;
private searchTimer: NodeJS.Timer = null;
private searchTimer: Subscription = null;
private ctx = new CtrListContext([], false, false);

@@ -58,3 +58,3 @@

this.ctx.results = results;
if (this.ctrListAutoMatch && results.length === 1 &&
if (this.ctrListAutoMatch && results.length === 1 && results[0].title && this.term &&
results[0].title.toLocaleLowerCase() === this.term.toLocaleLowerCase()) {

@@ -72,7 +72,8 @@ // Do automatch

// Clear selected value
this.completer.onSelected(null);
this.completer.clear();
}
if (term && term.length >= this.ctrListMinSearchLength && this.term !== term) {
if (this.searchTimer) {
clearTimeout(this.searchTimer);
this.searchTimer.unsubscribe();
this.searchTimer = null;
}

@@ -86,10 +87,5 @@ if (!this.ctx.searching) {

this.searchTimer = setTimeout(
() => {
this.searchTimerComplete(term);
},
this.ctrListPause
);
this.searchTimer = Observable.timer(this.ctrListPause).subscribe(() => {
this.searchTimerComplete(term);
});
}

@@ -100,3 +96,4 @@ }

if (this.searchTimer) {
clearTimeout(this.searchTimer);
this.searchTimer.unsubscribe();
this.searchTimer = null;
}

@@ -103,0 +100,0 @@ if (this.dataService) {

@@ -28,3 +28,3 @@ import { NgModule } from "@angular/core";

CtrRow,
CompleterCmp,
CompleterCmp
],

@@ -31,0 +31,0 @@ exports: [

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc