UNPKG

mat-select-autocomplete

Version:

Angular material select component with autocomplete and select all features

1 lines 7.78 kB
{"__symbolic":"module","version":4,"metadata":{"SelectAutocompleteService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":2,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor"}]},"statics":{"ngInjectableDef":{}}},"SelectAutocompleteComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":11,"character":1},"arguments":[{"selector":"mat-select-autocomplete","template":"\n <mat-form-field appearance=\"{{ appearance }}\">\n <mat-select\n #selectElem\n [placeholder]=\"placeholder\"\n [formControl]=\"formControl\"\n [multiple]=\"multiple\"\n [(ngModel)]=\"selectedValue\"\n (selectionChange)=\"onSelectionChange($event)\"\n >\n <div class=\"box-search\">\n <mat-checkbox\n *ngIf=\"multiple\"\n color=\"primary\"\n class=\"box-select-all\"\n [(ngModel)]=\"selectAllChecked\"\n (change)=\"toggleSelectAll($event)\"\n ></mat-checkbox>\n <input\n #searchInput\n type=\"text\"\n [ngClass]=\"{ 'pl-1': !multiple }\"\n (input)=\"filterItem(searchInput.value)\"\n [placeholder]=\"selectPlaceholder\"\n />\n <div\n class=\"box-search-icon\"\n (click)=\"filterItem(''); searchInput.value = ''\"\n >\n <button mat-icon-button class=\"search-button\">\n <mat-icon class=\"mat-24\" aria-label=\"Search icon\">clear</mat-icon>\n </button>\n </div>\n </div>\n <mat-select-trigger>\n {{ onDisplayString() }}\n </mat-select-trigger>\n <mat-option\n *ngFor=\"let option of options; trackBy: trackByFn\"\n [disabled]=\"option.disabled\"\n [value]=\"option[value]\"\n [style.display]=\"hideOption(option) ? 'none' : 'flex'\"\n >{{ option[display] }}\n </mat-option>\n </mat-select>\n <mat-hint style=\"color:red\" *ngIf=\"showErrorMsg\">{{ errorMsg }}</mat-hint>\n </mat-form-field>\n ","styles":["\n .box-search {\n margin: 8px;\n border-radius: 2px;\n box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.16),\n 0 0 0 1px rgba(0, 0, 0, 0.08);\n transition: box-shadow 200ms cubic-bezier(0.4, 0, 0.2, 1);\n display: flex;\n }\n .box-search input {\n flex: 1;\n border: none;\n outline: none;\n }\n .box-select-all {\n width: 36px;\n line-height: 33px;\n color: #808080;\n text-align: center;\n }\n .search-button {\n width: 36px;\n height: 36px;\n line-height: 33px;\n color: #808080;\n }\n .pl-1 {\n padding-left: 1rem;\n }\n "]}]}],"members":{"selectPlaceholder":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":95,"character":3}}]}],"placeholder":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":96,"character":3}}]}],"options":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":97,"character":3}}]}],"disabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":98,"character":3}}]}],"display":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":99,"character":3}}]}],"value":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":100,"character":3}}]}],"formControl":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":101,"character":3}}]}],"errorMsg":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":102,"character":3}}]}],"showErrorMsg":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":103,"character":3}}]}],"selectedOptions":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":104,"character":3}}]}],"multiple":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":105,"character":3}}]}],"labelCount":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":108,"character":3}}]}],"appearance":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":109,"character":3}}]}],"selectionChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":111,"character":3}}]}],"selectElem":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":114,"character":3},"arguments":["selectElem"]}]}],"__ctor__":[{"__symbolic":"constructor"}],"ngOnChanges":[{"__symbolic":"method"}],"ngDoCheck":[{"__symbolic":"method"}],"toggleDropdown":[{"__symbolic":"method"}],"toggleSelectAll":[{"__symbolic":"method"}],"filterItem":[{"__symbolic":"method"}],"hideOption":[{"__symbolic":"method"}],"getFilteredOptionsValues":[{"__symbolic":"method"}],"onDisplayString":[{"__symbolic":"method"}],"onSelectionChange":[{"__symbolic":"method"}],"trackByFn":[{"__symbolic":"method"}]}},"SelectAutocompleteModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":9,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":11,"character":4},{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":12,"character":4},{"__symbolic":"reference","module":"@angular/material/icon","name":"MatIconModule","line":13,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatButtonModule","line":14,"character":4},{"__symbolic":"reference","module":"@angular/material/select","name":"MatSelectModule","line":15,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatCheckboxModule","line":16,"character":4},{"__symbolic":"reference","module":"@angular/material/form-field","name":"MatFormFieldModule","line":17,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"ReactiveFormsModule","line":18,"character":4}],"declarations":[{"__symbolic":"reference","name":"SelectAutocompleteComponent"}],"exports":[{"__symbolic":"reference","name":"SelectAutocompleteComponent"}]}]}],"members":{}}},"origins":{"SelectAutocompleteService":"./lib/select-autocomplete.service","SelectAutocompleteComponent":"./lib/select-autocomplete.component","SelectAutocompleteModule":"./lib/select-autocomplete.module"},"importAs":"mat-select-autocomplete"}