UNPKG

@xmagic/nz-formly

Version:

基于ng-zorro-antd UI 扩展的ngx-formly组件库

1 lines 11.3 kB
{"version":3,"file":"xmagic-nz-formly-button-group.mjs","sources":["../../../lib/button-group/button-group.component.ts","../../../lib/button-group/button-group.module.ts","../../../lib/button-group/xmagic-nz-formly-button-group.ts"],"sourcesContent":["import { AfterViewInit, ChangeDetectionStrategy, Component, OnDestroy, QueryList, ViewChildren } from '@angular/core';\r\nimport { FieldType } from '@ngx-formly/core';\r\nimport { NzDropDownDirective } from 'ng-zorro-antd/dropdown';\r\nimport { Subject } from 'rxjs';\r\nimport { getRootFiled } from '@xmagic/nz-formly/common';\r\n\r\n@Component({\r\n selector: 'nz-formly-button-group',\r\n template: `\r\n <nz-button-group [nzSize]=\"props.nzSize\" [formlyAttributes]=\"field\">\r\n <ng-container *ngFor=\"let item of props.buttons\">\r\n <ng-container *ngIf=\"item.dropdown?.ref; else innerTemplateRef\">\r\n <ng-container *ngTemplateOutlet=\"btnDropdownTemplate; context: { $implicit: item }\"></ng-container>\r\n </ng-container>\r\n\r\n <ng-template #innerTemplateRef>\r\n <ng-container *ngTemplateOutlet=\"btnTemplate; context: { $implicit: item }\"></ng-container>\r\n </ng-template>\r\n </ng-container>\r\n </nz-button-group>\r\n\r\n <ng-template #btnTemplate let-item>\r\n <button\r\n nz-button\r\n [type]=\"item.type || 'button'\"\r\n [formlyAttributes]=\"{ props: item }\"\r\n [nzBlock]=\"item.nzBlock\"\r\n [nzDanger]=\"item.nzDanger\"\r\n [nzGhost]=\"item.nzGhost\"\r\n [nzSize]=\"item.nzSize || 'default'\"\r\n [nzLoading]=\"item.nzLoading\"\r\n [nzSearch]=\"item.nzSearch\"\r\n [nzShape]=\"item.nzShape\"\r\n [nzType]=\"item.nzType\"\r\n [nzWaveExtraNode]=\"item.nzWaveExtraNode\"\r\n >\r\n <i *ngIf=\"item.beforeIcon\" nz-icon [nzType]=\"item.beforeIcon\"></i>\r\n <span *ngIf=\"item.text\">{{ item.text }}</span>\r\n <formly-field [field]=\"child\" *ngFor=\"let child of item.fieldGroup\"></formly-field>\r\n <i *ngIf=\"item.afterIcon\" nz-icon [nzType]=\"item.afterIcon\"></i>\r\n </button>\r\n </ng-template>\r\n\r\n <ng-template #btnDropdownTemplate let-item>\r\n <button\r\n nz-button\r\n nz-dropdown\r\n #dropdownDirective=\"nzDropdown\"\r\n [nzDropdownMenu]=\"item.dropdown.nzDropdownMenu\"\r\n [nzDisabled]=\"item.dropdown.nzDisabled\"\r\n [nzPlacement]=\"item.dropdown.nzPlacement || 'bottomLeft'\"\r\n [nzBackdrop]=\"item.dropdown.nzBackdrop\"\r\n [nzClickHide]=\"item.dropdown.nzClickHide !== false\"\r\n [nzTrigger]=\"item.dropdown.nzTrigger || 'hover'\"\r\n [nzMatchWidthElement]=\"item.dropdown.nzMatchWidthElement\"\r\n [nzOverlayClassName]=\"item.dropdown.nzOverlayClassName\"\r\n [nzOverlayStyle]=\"item.dropdown.nzOverlayStyle\"\r\n (nzVisibleChange)=\"item.dropdown.nzVisibleChange?.($event, field, this)\"\r\n [type]=\"item.type || 'button'\"\r\n [formlyAttributes]=\"{ props: item }\"\r\n [nzBlock]=\"item.nzBlock\"\r\n [nzDanger]=\"item.nzDanger\"\r\n [nzGhost]=\"item.nzGhost\"\r\n [nzSize]=\"item.nzSize || 'default'\"\r\n [nzLoading]=\"item.nzLoading\"\r\n [nzSearch]=\"item.nzSearch\"\r\n [nzShape]=\"item.nzShape\"\r\n [nzType]=\"item.nzType\"\r\n [nzWaveExtraNode]=\"item.nzWaveExtraNode\"\r\n >\r\n <i *ngIf=\"item.beforeIcon\" nz-icon [nzType]=\"item.beforeIcon\"></i>\r\n <span *ngIf=\"item.text\">{{ item.text }}</span>\r\n <formly-field [field]=\"child\" *ngFor=\"let child of item.fieldGroup\"></formly-field>\r\n <i *ngIf=\"item.afterIcon\" nz-icon [nzType]=\"item.afterIcon\"></i>\r\n </button>\r\n </ng-template>\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class FormlyFieldButtonGroupComponent extends FieldType implements OnDestroy, AfterViewInit {\r\n @ViewChildren('dropdownDirective', { read: NzDropDownDirective }) dropdownDirectives!: QueryList<NzDropDownDirective>;\r\n destroy$ = new Subject<void>();\r\n override defaultOptions = {\r\n props: { nzSize: 'default', buttons: [] }\r\n };\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.dropdownChange();\r\n this.dropdownDirectives.changes.subscribe(() => this.dropdownChange());\r\n }\r\n\r\n dropdownChange() {\r\n const dropdownBtn = this.props.buttons.filter((btn: any) => btn.dropdown?.ref);\r\n if (!dropdownBtn.length) {\r\n return;\r\n }\r\n\r\n const rootField = getRootFiled(this.field);\r\n this.subjectDestroy();\r\n\r\n dropdownBtn.forEach((btn: any, i: number) => {\r\n if (btn.dropdown?.nzDropdownMenu) {\r\n return;\r\n }\r\n const dropdownField = rootField.get!(btn.dropdown.ref);\r\n const dropdownDir = this.dropdownDirectives.get(i);\r\n if (dropdownField && dropdownDir) {\r\n const instance = dropdownField.props!.instance;\r\n btn.dropdown.nzDropdownMenu = instance;\r\n dropdownDir.nzDropdownMenu = instance;\r\n dropdownDir.ngAfterViewInit();\r\n }\r\n });\r\n }\r\n\r\n subjectDestroy(): void {\r\n this.destroy$.next();\r\n this.destroy$.complete();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subjectDestroy();\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormlyFieldButtonGroupComponent } from './button-group.component';\nimport { NzButtonModule } from 'ng-zorro-antd/button';\nimport { FormlyModule } from '@ngx-formly/core';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\nimport { NzDropDownModule } from 'ng-zorro-antd/dropdown';\n\nconst COMPONENT = FormlyFieldButtonGroupComponent;\n\n@NgModule({\n declarations: [COMPONENT],\n imports: [\n CommonModule,\n NzButtonModule,\n NzIconModule,\n FormlyModule.forChild({\n types: [\n {\n name: 'button-group',\n component: COMPONENT\n }\n ]\n }),\n NzDropDownModule\n ]\n})\nexport class FormlyNzButtonGroupModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}