blob: 9a3d89560948788cadd0ea599d3fb435a7eea8c3 [file] [log] [blame]
{"version":3,"sources":["node_modules/tslib/tslib.es6.js","ng://@covalent/core/search/search-input/search-input.component.ts","ng://@covalent/core/search/search-box/search-box.component.ts","ng://@covalent/core/search/search.module.ts"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__extends","__","this","constructor","prototype","create","_changeDetectorRef","_super","_TdSearchInputMixinBase","mixinControlValueAccessor","TdSearchInputBase","TdSearchInputComponent","tslib_1.__extends","defineProperty","_dir","dir","ngOnInit","_this","_input","ngControl","valueChanges","pipe","debounceTime","debounce","skip","subscribe","value","_searchTermChanged","focus","handleBlur","onBlur","emit","undefined","stopPropagation","event","handleSearch","onSearch","clearSearch","markForCheck","onClear","onSearchDebounce","Component","args","providers","provide","NG_VALUE_ACCESSOR","useExisting","forwardRef","multi","selector","template","changeDetection","ChangeDetectionStrategy","OnPush","inputs","animations","trigger","state","style","transform","display","transition","animate","Dir","decorators","type","Optional","ChangeDetectorRef","ViewChild","MatInput","Input","Output","call","showUnderline","clearIcon","EventEmitter","_TdSearchBoxMixinBase","TdSearchBoxBase","TdSearchBoxComponent","_searchVisible","searchClicked","alwaysVisible","handleClear","_searchInput","toggleVisibility","handleSearchDebounce","width","margin","AUTO_STYLE","backIcon","searchIcon","CovalentSearchModule","NgModule","imports","FormsModule","CommonModule","MatInputModule","MatIconModule","MatButtonModule","declarations","exports"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\r\n t[p[i]] = s[p[i]];\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","import { Component, ViewChild, OnInit, Input, Output, EventEmitter, Optional,\n ChangeDetectionStrategy, ChangeDetectorRef, forwardRef } from '@angular/core';\nimport { trigger, state, style, transition, animate } from '@angular/animations';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Dir } from '@angular/cdk/bidi';\nimport { MatInput } from '@angular/material/input';\nimport { MatFormFieldAppearance } from '@angular/material/form-field';\n\nimport { debounceTime, skip } from 'rxjs/operators';\n\nimport { IControlValueAccessor, mixinControlValueAccessor } from '@covalent/core/common';\n\nexport class TdSearchInputBase {\n constructor(public _changeDetectorRef: ChangeDetectorRef) { }\n}\n\n/* tslint:disable-next-line */\nexport const _TdSearchInputMixinBase = mixinControlValueAccessor(TdSearchInputBase);\n\n@Component({\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TdSearchInputComponent),\n multi: true,\n }],\n selector: 'td-search-input',\n templateUrl: './search-input.component.html',\n styleUrls: ['./search-input.component.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n inputs: ['value'],\n animations: [\n trigger('searchState', [\n state('hide-left', style({\n transform: 'translateX(-150%)',\n display: 'none',\n })),\n state('hide-right', style({\n transform: 'translateX(150%)',\n display: 'none',\n })),\n state('show', style({\n transform: 'translateX(0%)',\n display: 'block',\n })),\n transition('* => show', animate('200ms ease-in')),\n transition('show => *', animate('200ms ease-out')),\n ]),\n ],\n})\nexport class TdSearchInputComponent extends _TdSearchInputMixinBase implements IControlValueAccessor, OnInit {\n\n @ViewChild(MatInput) _input: MatInput;\n\n /**\n * appearance?: MatFormFieldAppearance\n * Appearance style for the underlying input component.\n */\n @Input('appearance') appearance: MatFormFieldAppearance;\n\n /**\n * showUnderline?: boolean\n * Sets if the input underline should be visible. Defaults to 'false'.\n */\n @Input('showUnderline') showUnderline: boolean = false;\n\n /**\n * debounce?: number\n * Debounce timeout between keypresses. Defaults to 400.\n */\n @Input('debounce') debounce: number = 400;\n\n /**\n * placeholder?: string\n * Placeholder for the underlying input component.\n */\n @Input('placeholder') placeholder: string;\n\n /**\n * clearIcon?: string\n * The icon used to clear the search input.\n * Defaults to 'cancel' icon.\n */\n @Input('clearIcon') clearIcon: string = 'cancel';\n\n /**\n * searchDebounce: function($event)\n * Event emitted after the [debounce] timeout.\n */\n @Output('searchDebounce') onSearchDebounce: EventEmitter<string> = new EventEmitter<string>();\n\n /**\n * search: function($event)\n * Event emitted after the key enter has been pressed.\n */\n @Output('search') onSearch: EventEmitter<string> = new EventEmitter<string>();\n\n /**\n * clear: function()\n * Event emitted after the clear icon has been clicked.\n */\n @Output('clear') onClear: EventEmitter<void> = new EventEmitter<void>();\n\n /**\n * blur: function()\n * Event emitted after the blur event has been called in underlying input.\n */\n @Output('blur') onBlur: EventEmitter<void> = new EventEmitter<void>();\n\n get isRTL(): boolean {\n if (this._dir) {\n return this._dir.dir === 'rtl';\n }\n return false;\n }\n\n constructor(@Optional() private _dir: Dir,\n _changeDetectorRef: ChangeDetectorRef) {\n super(_changeDetectorRef);\n }\n\n ngOnInit(): void {\n this._input.ngControl.valueChanges.pipe(\n debounceTime(this.debounce),\n skip(1), // skip first change when value is set to undefined\n ).subscribe((value: string) => {\n this._searchTermChanged(value);\n });\n }\n\n /**\n * Method to focus to underlying input.\n */\n focus(): void {\n this._input.focus();\n }\n\n handleBlur(): void {\n this.onBlur.emit(undefined);\n }\n\n stopPropagation(event: Event): void {\n event.stopPropagation();\n }\n\n handleSearch(event: Event): void {\n this.stopPropagation(event);\n this.onSearch.emit(this.value);\n }\n\n /**\n * Method to clear the underlying input.\n */\n clearSearch(): void {\n this.value = '';\n this._changeDetectorRef.markForCheck();\n this.onClear.emit(undefined);\n }\n\n private _searchTermChanged(value: string): void {\n this.onSearchDebounce.emit(value);\n }\n\n}\n","import { Component, ViewChild, Input, Output, EventEmitter, ChangeDetectionStrategy, ChangeDetectorRef, forwardRef } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { trigger, state, style, transition, animate, AUTO_STYLE } from '@angular/animations';\n\nimport { TdSearchInputComponent } from '../search-input/search-input.component';\nimport { IControlValueAccessor, mixinControlValueAccessor } from '@covalent/core/common';\n\nexport class TdSearchBoxBase {\n constructor(public _changeDetectorRef: ChangeDetectorRef) { }\n}\n\n/* tslint:disable-next-line */\nexport const _TdSearchBoxMixinBase = mixinControlValueAccessor(TdSearchBoxBase);\n\n@Component({\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TdSearchBoxComponent),\n multi: true,\n }],\n selector: 'td-search-box',\n templateUrl: './search-box.component.html',\n styleUrls: ['./search-box.component.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n inputs: ['value'],\n animations: [\n trigger('inputState', [\n state('0', style({\n width: '0%',\n margin: '0px',\n })),\n state('1', style({\n width: '100%',\n margin: AUTO_STYLE,\n })),\n transition('0 => 1', animate('200ms ease-in')),\n transition('1 => 0', animate('200ms ease-out')),\n ]),\n ],\n})\nexport class TdSearchBoxComponent extends _TdSearchBoxMixinBase implements IControlValueAccessor {\n\n private _searchVisible: boolean = false;\n @ViewChild(TdSearchInputComponent) _searchInput: TdSearchInputComponent;\n\n get searchVisible(): boolean {\n return this._searchVisible;\n }\n\n /**\n * backIcon?: string\n * The icon used to close the search toggle, only shown when [alwaysVisible] is false.\n * Defaults to 'search' icon.\n */\n @Input('backIcon') backIcon: string = 'search';\n\n /**\n * searchIcon?: string\n * The icon used to open/focus the search toggle.\n * Defaults to 'search' icon.\n */\n @Input('searchIcon') searchIcon: string = 'search';\n\n /**\n * clearIcon?: string\n * The icon used to clear the search input.\n * Defaults to 'cancel' icon.\n */\n @Input('clearIcon') clearIcon: string = 'cancel';\n\n /**\n * showUnderline?: boolean\n * Sets if the input underline should be visible. Defaults to 'false'.\n */\n @Input('showUnderline') showUnderline: boolean = false;\n\n /**\n * debounce?: number\n * Debounce timeout between keypresses. Defaults to 400.\n */\n @Input('debounce') debounce: number = 400;\n\n /**\n * alwaysVisible?: boolean\n * Sets if the input should always be visible. Defaults to 'false'.\n */\n @Input('alwaysVisible') alwaysVisible: boolean = false;\n\n /**\n * placeholder?: string\n * Placeholder for the underlying input component.\n */\n @Input('placeholder') placeholder: string;\n\n /**\n * searchDebounce: function($event)\n * Event emitted after the [debounce] timeout.\n */\n @Output('searchDebounce') onSearchDebounce: EventEmitter<string> = new EventEmitter<string>();\n\n /**\n * search: function($event)\n * Event emitted after the key enter has been pressed.\n */\n @Output('search') onSearch: EventEmitter<string> = new EventEmitter<string>();\n\n /**\n * clear: function()\n * Event emitted after the clear icon has been clicked.\n */\n @Output('clear') onClear: EventEmitter<void> = new EventEmitter<void>();\n\n /**\n * blur: function()\n * Event emitted after the blur event has been called in underlying input.\n */\n @Output('blur') onBlur: EventEmitter<void> = new EventEmitter<void>();\n\n constructor(_changeDetectorRef: ChangeDetectorRef) {\n super(_changeDetectorRef);\n }\n\n /**\n * Method executed when the search icon is clicked.\n */\n searchClicked(): void {\n if (!this.alwaysVisible && this._searchVisible) {\n this.value = '';\n this.handleClear();\n } else if (this.alwaysVisible || !this._searchVisible) {\n this._searchInput.focus();\n }\n this.toggleVisibility();\n }\n\n toggleVisibility(): void {\n this._searchVisible = !this._searchVisible;\n this._changeDetectorRef.markForCheck();\n }\n\n handleSearchDebounce(value: string): void {\n this.onSearchDebounce.emit(value);\n }\n\n handleSearch(value: string): void {\n this.onSearch.emit(value);\n }\n\n handleClear(): void {\n this.onClear.emit(undefined);\n }\n\n handleBlur(): void {\n this.onBlur.emit(undefined);\n }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\n\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { MatInputModule } from '@angular/material/input';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\n\nimport { TdSearchInputComponent } from './search-input/search-input.component';\nimport { TdSearchBoxComponent } from './search-box/search-box.component';\n\n@NgModule({\n imports: [\n FormsModule,\n CommonModule,\n MatInputModule,\n MatIconModule,\n MatButtonModule,\n ],\n declarations: [\n TdSearchInputComponent,\n TdSearchBoxComponent,\n ],\n exports: [\n TdSearchInputComponent,\n TdSearchBoxComponent,\n ],\n})\nexport class CovalentSearchModule {\n\n}\n"]}