@delon/form
Version:
Angular form generation based on JSON-Schema.
1 lines • 10.5 kB
Source Map (JSON)
{"version":3,"file":"widgets-mention.mjs","sources":["../../../../packages/form/widgets/mention/widget.ts","../../../../packages/form/widgets/mention/module.ts","../../../../packages/form/widgets/mention/index.ts","../../../../packages/form/widgets/mention/widgets-mention.ts"],"sourcesContent":["import { Component, OnInit, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { map, tap } from 'rxjs';\n\nimport { ControlUIWidget, DelonFormModule, SFSchemaEnum, getData, getEnum } from '@delon/form';\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\nimport { NzInputModule } from 'ng-zorro-antd/input';\nimport { MentionOnSearchTypes, NzMentionComponent, NzMentionModule } from 'ng-zorro-antd/mention';\n\nimport type { SFMentionWidgetSchema } from './schema';\n\n@Component({\n selector: 'sf-mention',\n template: `<sf-item-wrap\n [id]=\"id\"\n [schema]=\"schema\"\n [ui]=\"ui\"\n [showError]=\"showError\"\n [error]=\"error\"\n [showTitle]=\"schema.title\"\n >\n <nz-mention\n #mentions\n [nzSuggestions]=\"data\"\n [nzValueWith]=\"i.valueWith\"\n [nzLoading]=\"loading\"\n [nzNotFoundContent]=\"i.notFoundContent\"\n [nzPlacement]=\"i.placement\"\n [nzPrefix]=\"i.prefix\"\n (nzOnSelect)=\"_select($event)\"\n (nzOnSearchChange)=\"_search($event)\"\n >\n @if (ui.inputStyle === 'textarea') {\n <textarea\n nzMentionTrigger\n nz-input\n [attr.id]=\"id\"\n [disabled]=\"disabled\"\n [attr.disabled]=\"disabled\"\n [nzSize]=\"ui.size!\"\n [ngModel]=\"value\"\n (ngModelChange)=\"setValue($event)\"\n [attr.maxLength]=\"schema.maxLength || null\"\n [attr.placeholder]=\"ui.placeholder\"\n [nzAutosize]=\"i.autosize\"\n >\n </textarea>\n } @else {\n <input\n nzMentionTrigger\n nz-input\n [attr.id]=\"id\"\n [disabled]=\"disabled\"\n [attr.disabled]=\"disabled\"\n [nzSize]=\"ui.size!\"\n [ngModel]=\"value\"\n (ngModelChange)=\"setValue($event)\"\n [attr.maxLength]=\"schema.maxLength || null\"\n [attr.placeholder]=\"ui.placeholder\"\n autocomplete=\"off\"\n />\n }\n </nz-mention>\n </sf-item-wrap>`,\n preserveWhitespaces: false,\n encapsulation: ViewEncapsulation.None,\n imports: [FormsModule, DelonFormModule, NzInputModule, NzMentionModule]\n})\nexport class MentionWidget extends ControlUIWidget<SFMentionWidgetSchema> implements OnInit {\n static readonly KEY = 'mention';\n\n @ViewChild('mentions', { static: true }) private mentionChild!: NzMentionComponent;\n data: SFSchemaEnum[] = [];\n i: NzSafeAny;\n loading = false;\n\n ngOnInit(): void {\n const { valueWith, notFoundContent, placement, prefix, autosize } = this.ui;\n this.i = {\n valueWith: valueWith || (item => item.label),\n notFoundContent: notFoundContent || '无匹配结果,轻敲空格完成输入',\n placement: placement || 'bottom',\n prefix: prefix || '@',\n autosize: typeof autosize === 'undefined' ? true : this.ui.autosize\n };\n\n const { minimum, maximum } = this.schema;\n const min = typeof minimum !== 'undefined' ? minimum : -1;\n const max = typeof maximum !== 'undefined' ? maximum : -1;\n\n if (!this.ui.validator && (min !== -1 || max !== -1)) {\n this.ui.validator = (() => {\n const count = this.mentionChild.getMentions().length;\n if (min !== -1 && count < min) {\n return [{ keyword: 'mention', message: `最少提及 ${min} 次` }];\n }\n if (max !== -1 && count > max) {\n return [{ keyword: 'mention', message: `最多提及 ${max} 次` }];\n }\n return null;\n }) as NzSafeAny;\n }\n }\n\n reset(): void {\n getData(this.schema, this.ui, null).subscribe(list => {\n this.data = list;\n this.detectChanges();\n });\n }\n\n _select(options: NzSafeAny): void {\n if (this.ui.select) this.ui.select(options);\n }\n\n _search(option: MentionOnSearchTypes): void {\n if (typeof this.ui.loadData !== 'function') return;\n\n this.loading = true;\n this.ui\n .loadData(option)\n .pipe(\n tap(() => (this.loading = false)),\n map(res => getEnum(res, null, this.schema.readOnly!))\n )\n .subscribe(res => {\n this.data = res;\n this.detectChanges(true);\n });\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { DelonFormModule, WidgetRegistry } from '@delon/form';\nimport { NzInputModule } from 'ng-zorro-antd/input';\nimport { NzMentionModule } from 'ng-zorro-antd/mention';\n\nimport { MentionWidget } from './widget';\n\n@NgModule({\n imports: [FormsModule, DelonFormModule, NzMentionModule, NzInputModule, CommonModule, MentionWidget]\n})\nexport class MentionWidgetModule {\n constructor(widgetRegistry: WidgetRegistry) {\n widgetRegistry.register(MentionWidget.KEY, MentionWidget);\n }\n}\n","import type { SFWidgetProvideConfig } from '@delon/form';\n\nimport { MentionWidget } from './widget';\n\nexport * from './widget';\nexport * from './schema';\nexport * from './module';\n\nexport function withMentionWidget(): SFWidgetProvideConfig {\n return { KEY: MentionWidget.KEY, type: MentionWidget };\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2","i1"],"mappings":"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"}