0.0.3 of ng select supports footer.

This commit is contained in:
David Lebee 2021-03-11 15:45:28 -05:00
parent 419c3e2383
commit f9cceadaa6
9 changed files with 30 additions and 2 deletions

View File

@ -1,6 +1,6 @@
{ {
"name": "@poweredsoft/ng-select", "name": "@poweredsoft/ng-select",
"version": "0.0.2", "version": "0.0.3",
"peerDependencies": { "peerDependencies": {
"@angular/common": "^9.1.9", "@angular/common": "^9.1.9",
"@angular/core": "^9.1.9" "@angular/core": "^9.1.9"

View File

@ -0,0 +1,10 @@
import { Directive, TemplateRef } from '@angular/core';
@Directive({
selector: '[psNgSelectFooter]'
})
export class SelectFooterTemplateDirective {
constructor(public template: TemplateRef<any>) { }
}

View File

@ -7,3 +7,5 @@ export class SelectLabelTemplateDirective {
constructor(public template: TemplateRef<any>) { } constructor(public template: TemplateRef<any>) { }
} }

View File

@ -28,3 +28,7 @@
</ng-template> </ng-template>
</ng-container> </ng-container>
</ng-select> </ng-select>
<ng-container *ngIf="footerTemplate">
<ng-container [ngTemplateOutlet]="footerTemplate.template" [ngTemplateOutletContext]="{ $implicit: selectedModel }">
</ng-container>
</ng-container>

View File

@ -6,6 +6,7 @@ import { map, distinctUntilChanged, debounceTime } from 'rxjs/operators';
import { NgSelectComponent as SelectComponent } from '@ng-select/ng-select'; import { NgSelectComponent as SelectComponent } from '@ng-select/ng-select';
import { NG_VALUE_ACCESSOR } from '@angular/forms'; import { NG_VALUE_ACCESSOR } from '@angular/forms';
import { SelectOptionTemplateDirective } from '../directives/select-option-template.directive'; import { SelectOptionTemplateDirective } from '../directives/select-option-template.directive';
import { SelectFooterTemplateDirective } from '../directives/select-footer-template.directive';
@Component({ @Component({
selector: 'ps-ng-multi-select', selector: 'ps-ng-multi-select',
@ -22,6 +23,7 @@ export class MultiSelectComponent implements OnInit,OnDestroy {
@ContentChild(SelectOptionTemplateDirective) optionTemplate: SelectOptionTemplateDirective; @ContentChild(SelectOptionTemplateDirective) optionTemplate: SelectOptionTemplateDirective;
@ContentChild(SelectLabelTemplateDirective) labelTemplate: SelectLabelTemplateDirective; @ContentChild(SelectLabelTemplateDirective) labelTemplate: SelectLabelTemplateDirective;
@ContentChild(SelectFooterTemplateDirective) footerTemplate: SelectFooterTemplateDirective;
@ViewChild(SelectComponent, { static: true }) selectComponent: SelectComponent; @ViewChild(SelectComponent, { static: true }) selectComponent: SelectComponent;
@Input() dataSource: IDataSource<any>; @Input() dataSource: IDataSource<any>;

View File

@ -35,3 +35,7 @@
</ng-template> </ng-template>
</ng-container> </ng-container>
</ng-select> </ng-select>
<ng-container *ngIf="footerTemplate">
<ng-container [ngTemplateOutlet]="footerTemplate.template" [ngTemplateOutletContext]="{ $implicit: selectedModel }">
</ng-container>
</ng-container>

View File

@ -7,6 +7,8 @@ import { NgSelectComponent as SelectComponent } from '@ng-select/ng-select';
import { NG_VALUE_ACCESSOR } from '@angular/forms'; import { NG_VALUE_ACCESSOR } from '@angular/forms';
import { SelectOptionTemplateDirective } from '../directives/select-option-template.directive'; import { SelectOptionTemplateDirective } from '../directives/select-option-template.directive';
import { NotFoundTemplateDirective } from '../directives/not-found-template.directive'; import { NotFoundTemplateDirective } from '../directives/not-found-template.directive';
import { NgFooterTemplateDirective } from '@ng-select/ng-select/lib/ng-templates.directive';
import { SelectFooterTemplateDirective } from '../directives/select-footer-template.directive';
@Component({ @Component({
@ -24,6 +26,7 @@ export class NgSelectComponent implements OnInit,OnDestroy {
@ContentChild(SelectOptionTemplateDirective) optionTemplate: SelectOptionTemplateDirective; @ContentChild(SelectOptionTemplateDirective) optionTemplate: SelectOptionTemplateDirective;
@ContentChild(SelectLabelTemplateDirective) labelTemplate: SelectLabelTemplateDirective; @ContentChild(SelectLabelTemplateDirective) labelTemplate: SelectLabelTemplateDirective;
@ContentChild(NotFoundTemplateDirective) notFoundTemplate: NotFoundTemplateDirective; @ContentChild(NotFoundTemplateDirective) notFoundTemplate: NotFoundTemplateDirective;
@ContentChild(SelectFooterTemplateDirective) footerTemplate: SelectFooterTemplateDirective;

View File

@ -7,11 +7,12 @@ import { NgSelectModule } from '@ng-select/ng-select';
import { SelectLabelTemplateDirective } from './directives/select-label-template.directive'; import { SelectLabelTemplateDirective } from './directives/select-label-template.directive';
import { SelectOptionTemplateDirective } from './directives/select-option-template.directive'; import { SelectOptionTemplateDirective } from './directives/select-option-template.directive';
import { NotFoundTemplateDirective } from './directives/not-found-template.directive'; import { NotFoundTemplateDirective } from './directives/not-found-template.directive';
import { SelectFooterTemplateDirective } from './directives/select-footer-template.directive';
@NgModule({ @NgModule({
declarations: [NgSelectComponent, MultiSelectComponent, SelectLabelTemplateDirective, SelectOptionTemplateDirective, NotFoundTemplateDirective], declarations: [NgSelectComponent, MultiSelectComponent, SelectLabelTemplateDirective, SelectOptionTemplateDirective, NotFoundTemplateDirective, SelectFooterTemplateDirective],
imports: [ imports: [
CommonModule, CommonModule,
FormsModule, FormsModule,
@ -22,6 +23,7 @@ import { NotFoundTemplateDirective } from './directives/not-found-template.direc
MultiSelectComponent, MultiSelectComponent,
SelectLabelTemplateDirective, SelectLabelTemplateDirective,
SelectOptionTemplateDirective, SelectOptionTemplateDirective,
SelectFooterTemplateDirective,
NotFoundTemplateDirective NotFoundTemplateDirective
] ]
}) })

View File

@ -7,4 +7,5 @@ export * from './lib/ps-ng-select/ng-select/ng-select.component';
export * from './lib/ps-ng-select/multi-select/multi-select.component'; export * from './lib/ps-ng-select/multi-select/multi-select.component';
export * from './lib/ps-ng-select/directives/select-label-template.directive'; export * from './lib/ps-ng-select/directives/select-label-template.directive';
export * from './lib/ps-ng-select/directives/select-option-template.directive'; export * from './lib/ps-ng-select/directives/select-option-template.directive';
export * from './lib/ps-ng-select/directives/select-footer-template.directive';
export * from './lib/ps-ng-select/directives/not-found-template.directive'; export * from './lib/ps-ng-select/directives/not-found-template.directive';