blob: e2b9ab985758db6fdcac02c3154659b3ce03bbd0 [file] [log] [blame]
{"version":3,"file":"covalent-core-search.js","sources":["../../../src/platform/core/search/search-input/search-input.component.ts","../../../src/platform/core/search/search-box/search-box.component.ts","../../../../src/platform/core/search/search.module.ts"],"sourcesContent":["import {\n Component,\n ViewChild,\n OnInit,\n Input,\n Output,\n EventEmitter,\n Optional,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n forwardRef,\n} 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 {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TdSearchInputComponent),\n multi: true,\n },\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(\n 'hide-left',\n style({\n transform: 'translateX(-150%)',\n display: 'none',\n }),\n ),\n state(\n 'hide-right',\n style({\n transform: 'translateX(150%)',\n display: 'none',\n }),\n ),\n state(\n 'show',\n style({\n transform: 'translateX(0%)',\n display: 'block',\n }),\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 @ViewChild(MatInput, { static: true }) _input: MatInput;\n\n /**\n * appearance?: MatFormFieldAppearance\n * Appearance style for the underlying input component.\n */\n @Input() appearance: MatFormFieldAppearance;\n\n /**\n * showUnderline?: boolean\n * Sets if the input underline should be visible. Defaults to 'false'.\n */\n @Input() showUnderline: boolean = false;\n\n /**\n * debounce?: number\n * Debounce timeout between keypresses. Defaults to 400.\n */\n @Input() debounce: number = 400;\n\n /**\n * placeholder?: string\n * Placeholder for the underlying input component.\n */\n @Input() 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: string = 'cancel';\n\n /**\n * searchDebounce: function($event)\n * Event emitted after the [debounce] timeout.\n */\n @Output() searchDebounce: 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: EventEmitter<string> = new EventEmitter<string>();\n\n /**\n * clear: function()\n * Event emitted after the clear icon has been clicked.\n */\n @Output() clear: 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: 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, _changeDetectorRef: ChangeDetectorRef) {\n super(_changeDetectorRef);\n }\n\n ngOnInit(): void {\n this._input.ngControl.valueChanges\n .pipe(\n debounceTime(this.debounce),\n skip(1), // skip first change when value is set to undefined\n )\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.blur.emit();\n }\n\n stopPropagation(event: Event): void {\n event.stopPropagation();\n }\n\n handleSearch(event: Event): void {\n this.stopPropagation(event);\n this.search.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.clear.emit();\n }\n\n private _searchTermChanged(value: string): void {\n this.searchDebounce.emit(value);\n }\n}\n","import {\n Component,\n ViewChild,\n Input,\n Output,\n EventEmitter,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n forwardRef,\n} 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 {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TdSearchBoxComponent),\n multi: true,\n },\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(\n '0',\n style({\n width: '0%',\n margin: '0px',\n }),\n ),\n state(\n '1',\n style({\n width: '100%',\n margin: AUTO_STYLE,\n }),\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 private _searchVisible: boolean = false;\n @ViewChild(TdSearchInputComponent, { static: true }) _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: 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: 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: string = 'cancel';\n\n /**\n * showUnderline?: boolean\n * Sets if the input underline should be visible. Defaults to 'false'.\n */\n @Input() showUnderline: boolean = false;\n\n /**\n * debounce?: number\n * Debounce timeout between keypresses. Defaults to 400.\n */\n @Input() debounce: number = 400;\n\n /**\n * alwaysVisible?: boolean\n * Sets if the input should always be visible. Defaults to 'false'.\n */\n @Input() alwaysVisible: boolean = false;\n\n /**\n * placeholder?: string\n * Placeholder for the underlying input component.\n */\n @Input() placeholder: string;\n\n /**\n * searchDebounce: function($event)\n * Event emitted after the [debounce] timeout.\n */\n @Output() searchDebounce: 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: EventEmitter<string> = new EventEmitter<string>();\n\n /**\n * clear: function()\n * Event emitted after the clear icon has been clicked.\n */\n @Output() clear: 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: 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.searchDebounce.emit(value);\n }\n\n handleSearch(value: string): void {\n this.search.emit(value);\n }\n\n handleClear(): void {\n this.clear.emit();\n }\n\n handleBlur(): void {\n this.blur.emit();\n }\n}\n","import { NgModule } 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: [FormsModule, CommonModule, MatInputModule, MatIconModule, MatButtonModule],\n declarations: [TdSearchInputComponent, TdSearchBoxComponent],\n exports: [TdSearchInputComponent, TdSearchBoxComponent],\n})\nexport class CovalentSearchModule {}\n"],"names":[],"mappings":"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"}