ng-zorro-antd
Version:
An enterprise-class UI components based on Ant Design and Angular
1 lines • 43.6 kB
Source Map (JSON)
{"version":3,"file":"ng-zorro-antd-form.mjs","sources":["../../components/form/form-item.component.ts","../../components/form/form.directive.ts","../../components/form/form-control.component.ts","../../components/form/form-label.component.ts","../../components/form/form-split.component.ts","../../components/form/form-text.component.ts","../../components/form/form.module.ts","../../components/form/public-api.ts","../../components/form/ng-zorro-antd-form.ts"],"sourcesContent":["/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, ViewEncapsulation } from '@angular/core';\nimport { Subject } from 'rxjs';\n\nexport type NzFormControlStatusType = 'success' | 'error' | 'warning' | 'validating' | '';\n\n/** should add nz-row directive to host, track https://github.com/angular/angular/issues/8785 **/\n@Component({\n selector: 'nz-form-item',\n exportAs: 'nzFormItem',\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'ant-form-item',\n '[class.ant-form-item-has-success]': 'status === \"success\"',\n '[class.ant-form-item-has-warning]': 'status === \"warning\"',\n '[class.ant-form-item-has-error]': 'status === \"error\"',\n '[class.ant-form-item-is-validating]': 'status === \"validating\"',\n '[class.ant-form-item-has-feedback]': 'hasFeedback && status',\n '[class.ant-form-item-with-help]': 'withHelpClass'\n },\n template: `<ng-content></ng-content>`\n})\nexport class NzFormItemComponent implements OnDestroy, OnDestroy {\n status: NzFormControlStatusType = '';\n hasFeedback = false;\n withHelpClass = false;\n\n private destroy$ = new Subject<boolean>();\n\n setWithHelpViaTips(value: boolean): void {\n this.withHelpClass = value;\n this.cdr.markForCheck();\n }\n\n setStatus(status: NzFormControlStatusType): void {\n this.status = status;\n this.cdr.markForCheck();\n }\n\n setHasFeedback(hasFeedback: boolean): void {\n this.hasFeedback = hasFeedback;\n this.cdr.markForCheck();\n }\n\n constructor(private cdr: ChangeDetectorRef) {}\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.complete();\n }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { Direction, Directionality } from '@angular/cdk/bidi';\nimport { Directive, Input, OnChanges, OnDestroy, SimpleChange, SimpleChanges, booleanAttribute } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { filter, map, takeUntil } from 'rxjs/operators';\n\nimport { ThemeType } from '@ant-design/icons-angular';\n\nimport { NzConfigKey, NzConfigService, WithConfig } from 'ng-zorro-antd/core/config';\nimport { InputObservable } from 'ng-zorro-antd/core/types';\n\nconst NZ_CONFIG_MODULE_NAME: NzConfigKey = 'form';\n\nexport type NzFormLayoutType = 'horizontal' | 'vertical' | 'inline';\n\nexport type NzLabelAlignType = 'left' | 'right';\n\nexport const DefaultTooltipIcon = {\n type: 'question-circle',\n theme: 'outline'\n} as const;\n\n@Directive({\n selector: '[nz-form]',\n exportAs: 'nzForm',\n host: {\n class: 'ant-form',\n '[class.ant-form-horizontal]': `nzLayout === 'horizontal'`,\n '[class.ant-form-vertical]': `nzLayout === 'vertical'`,\n '[class.ant-form-inline]': `nzLayout === 'inline'`,\n '[class.ant-form-rtl]': `dir === 'rtl'`\n }\n})\nexport class NzFormDirective implements OnChanges, OnDestroy, InputObservable {\n readonly _nzModuleName: NzConfigKey = NZ_CONFIG_MODULE_NAME;\n\n @Input() nzLayout: NzFormLayoutType = 'horizontal';\n @Input({ transform: booleanAttribute }) @WithConfig() nzNoColon: boolean = false;\n @Input() @WithConfig() nzAutoTips: Record<string, Record<string, string>> = {};\n @Input({ transform: booleanAttribute }) nzDisableAutoTips = false;\n @Input() @WithConfig() nzTooltipIcon: string | { type: string; theme: ThemeType } = DefaultTooltipIcon;\n @Input() nzLabelAlign: NzLabelAlignType = 'right';\n @Input({ transform: booleanAttribute }) @WithConfig() nzLabelWrap: boolean = false;\n\n dir: Direction = 'ltr';\n destroy$ = new Subject<boolean>();\n private inputChanges$ = new Subject<SimpleChanges>();\n\n getInputObservable<K extends keyof this>(changeType: K): Observable<SimpleChange> {\n return this.inputChanges$.pipe(\n filter(changes => changeType in changes),\n map(value => value[changeType as string])\n );\n }\n\n constructor(\n public nzConfigService: NzConfigService,\n private directionality: Directionality\n ) {\n this.dir = this.directionality.value;\n this.directionality.change?.pipe(takeUntil(this.destroy$)).subscribe((direction: Direction) => {\n this.dir = direction;\n });\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.inputChanges$.next(changes);\n }\n\n ngOnDestroy(): void {\n this.inputChanges$.complete();\n this.destroy$.next(true);\n this.destroy$.complete();\n }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n SimpleChanges,\n TemplateRef,\n ViewEncapsulation,\n booleanAttribute,\n inject\n} from '@angular/core';\nimport { AbstractControl, FormControlDirective, FormControlName, NgControl, NgModel } from '@angular/forms';\nimport { Observable, Subject, Subscription } from 'rxjs';\nimport { filter, startWith, takeUntil, tap } from 'rxjs/operators';\n\nimport { helpMotion } from 'ng-zorro-antd/core/animation';\nimport { NzFormStatusService } from 'ng-zorro-antd/core/form';\nimport { NzOutletModule } from 'ng-zorro-antd/core/outlet';\nimport { NzSafeAny } from 'ng-zorro-antd/core/types';\nimport { toBoolean } from 'ng-zorro-antd/core/util';\nimport { NzI18nService } from 'ng-zorro-antd/i18n';\n\nimport { NzFormControlStatusType, NzFormItemComponent } from './form-item.component';\nimport { NzFormDirective } from './form.directive';\n\n@Component({\n selector: 'nz-form-control',\n exportAs: 'nzFormControl',\n preserveWhitespaces: false,\n animations: [helpMotion],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <div class=\"ant-form-item-control-input\">\n <div class=\"ant-form-item-control-input-content\">\n <ng-content></ng-content>\n </div>\n </div>\n @if (innerTip) {\n <div @helpMotion class=\"ant-form-item-explain ant-form-item-explain-connected\">\n <div role=\"alert\" [class]=\"['ant-form-item-explain-' + status]\">\n <ng-container *nzStringTemplateOutlet=\"innerTip; context: { $implicit: validateControl }\">{{\n innerTip\n }}</ng-container>\n </div>\n </div>\n }\n\n @if (nzExtra) {\n <div class=\"ant-form-item-extra\">\n <ng-container *nzStringTemplateOutlet=\"nzExtra\">{{ nzExtra }}</ng-container>\n </div>\n }\n `,\n providers: [NzFormStatusService],\n host: {\n class: 'ant-form-item-control'\n },\n imports: [NzOutletModule]\n})\nexport class NzFormControlComponent implements OnChanges, OnDestroy, OnInit, AfterContentInit, OnDestroy {\n private _hasFeedback = false;\n private validateChanges: Subscription = Subscription.EMPTY;\n private validateString: string | null = null;\n private destroyed$ = new Subject<void>();\n private localeId!: string;\n private autoErrorTip?: string;\n\n private get disableAutoTips(): boolean {\n return this.nzDisableAutoTips !== undefined\n ? toBoolean(this.nzDisableAutoTips)\n : !!this.nzFormDirective?.nzDisableAutoTips;\n }\n\n status: NzFormControlStatusType = '';\n validateControl: AbstractControl | NgModel | null = null;\n innerTip: string | TemplateRef<{ $implicit: AbstractControl | NgModel }> | null = null;\n\n @ContentChild(NgControl, { static: false }) defaultValidateControl?: FormControlName | FormControlDirective;\n @Input() nzSuccessTip?: string | TemplateRef<{ $implicit: AbstractControl | NgModel }>;\n @Input() nzWarningTip?: string | TemplateRef<{ $implicit: AbstractControl | NgModel }>;\n @Input() nzErrorTip?: string | TemplateRef<{ $implicit: AbstractControl | NgModel }>;\n @Input() nzValidatingTip?: string | TemplateRef<{ $implicit: AbstractControl | NgModel }>;\n @Input() nzExtra?: string | TemplateRef<void>;\n @Input() nzAutoTips: Record<string, Record<string, string>> = {};\n @Input({ transform: booleanAttribute }) nzDisableAutoTips?: boolean;\n\n @Input({ transform: booleanAttribute })\n set nzHasFeedback(value: boolean) {\n this._hasFeedback = value;\n this.nzFormStatusService.formStatusChanges.next({ status: this.status, hasFeedback: this._hasFeedback });\n if (this.nzFormItemComponent) {\n this.nzFormItemComponent.setHasFeedback(this._hasFeedback);\n }\n }\n\n get nzHasFeedback(): boolean {\n return this._hasFeedback;\n }\n\n @Input()\n set nzValidateStatus(value: string | AbstractControl | FormControlName | NgModel) {\n if (value instanceof AbstractControl || value instanceof NgModel) {\n this.validateControl = value;\n this.validateString = null;\n this.watchControl();\n } else if (value instanceof FormControlName) {\n this.validateControl = value.control;\n this.validateString = null;\n this.watchControl();\n } else {\n this.validateString = value;\n this.validateControl = null;\n this.setStatus();\n }\n }\n\n private watchControl(): void {\n this.validateChanges.unsubscribe();\n /** miss detect https://github.com/angular/angular/issues/10887 **/\n if (this.validateControl && this.validateControl.statusChanges) {\n this.validateChanges = (this.validateControl.statusChanges as Observable<NzSafeAny>)\n .pipe(startWith(null), takeUntil(this.destroyed$))\n .subscribe(() => {\n if (!this.disableAutoTips) {\n this.updateAutoErrorTip();\n }\n this.setStatus();\n this.cdr.markForCheck();\n });\n }\n }\n\n private setStatus(): void {\n this.status = this.getControlStatus(this.validateString);\n this.innerTip = this.getInnerTip(this.status);\n this.nzFormStatusService.formStatusChanges.next({ status: this.status, hasFeedback: this.nzHasFeedback });\n if (this.nzFormItemComponent) {\n this.nzFormItemComponent.setWithHelpViaTips(!!this.innerTip);\n this.nzFormItemComponent.setStatus(this.status);\n }\n }\n\n private getControlStatus(validateString: string | null): NzFormControlStatusType {\n let status: NzFormControlStatusType;\n\n if (validateString === 'warning' || this.validateControlStatus('INVALID', 'warning')) {\n status = 'warning';\n } else if (validateString === 'error' || this.validateControlStatus('INVALID')) {\n status = 'error';\n } else if (\n validateString === 'validating' ||\n validateString === 'pending' ||\n this.validateControlStatus('PENDING')\n ) {\n status = 'validating';\n } else if (validateString === 'success' || this.validateControlStatus('VALID')) {\n status = 'success';\n } else {\n status = '';\n }\n\n return status;\n }\n\n private validateControlStatus(validStatus: string, statusType?: NzFormControlStatusType): boolean {\n if (!this.validateControl) {\n return false;\n } else {\n const { dirty, touched, status } = this.validateControl;\n return (\n (!!dirty || !!touched) && (statusType ? this.validateControl.hasError(statusType) : status === validStatus)\n );\n }\n }\n\n private getInnerTip(\n status: NzFormControlStatusType\n ): string | TemplateRef<{ $implicit: AbstractControl | NgModel }> | null {\n switch (status) {\n case 'error':\n return (!this.disableAutoTips && this.autoErrorTip) || this.nzErrorTip || null;\n case 'validating':\n return this.nzValidatingTip || null;\n case 'success':\n return this.nzSuccessTip || null;\n case 'warning':\n return this.nzWarningTip || null;\n default:\n return null;\n }\n }\n\n private updateAutoErrorTip(): void {\n if (this.validateControl) {\n const errors = this.validateControl.errors || {};\n let autoErrorTip = '';\n for (const key in errors) {\n if (errors.hasOwnProperty(key)) {\n autoErrorTip =\n errors[key]?.[this.localeId] ??\n this.nzAutoTips?.[this.localeId]?.[key] ??\n this.nzAutoTips.default?.[key] ??\n this.nzFormDirective?.nzAutoTips?.[this.localeId]?.[key] ??\n this.nzFormDirective?.nzAutoTips.default?.[key];\n }\n if (autoErrorTip) {\n break;\n }\n }\n this.autoErrorTip = autoErrorTip;\n }\n }\n\n private subscribeAutoTips(observable?: Observable<NzSafeAny>): void {\n observable?.pipe(takeUntil(this.destroyed$)).subscribe(() => {\n if (!this.disableAutoTips) {\n this.updateAutoErrorTip();\n this.setStatus();\n this.cdr.markForCheck();\n }\n });\n }\n\n private nzFormItemComponent = inject(NzFormItemComponent, { host: true, optional: true });\n private nzFormDirective = inject(NzFormDirective, { optional: true });\n\n constructor(\n private cdr: ChangeDetectorRef,\n i18n: NzI18nService,\n private nzFormStatusService: NzFormStatusService\n ) {\n this.subscribeAutoTips(i18n.localeChange.pipe(tap(locale => (this.localeId = locale.locale))));\n this.subscribeAutoTips(this.nzFormDirective?.getInputObservable('nzAutoTips'));\n this.subscribeAutoTips(\n this.nzFormDirective\n ?.getInputObservable('nzDisableAutoTips')\n .pipe(filter(() => this.nzDisableAutoTips === undefined))\n );\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n const { nzDisableAutoTips, nzAutoTips, nzSuccessTip, nzWarningTip, nzErrorTip, nzValidatingTip } = changes;\n\n if (nzDisableAutoTips || nzAutoTips) {\n this.updateAutoErrorTip();\n this.setStatus();\n } else if (nzSuccessTip || nzWarningTip || nzErrorTip || nzValidatingTip) {\n this.setStatus();\n }\n }\n\n ngOnInit(): void {\n this.setStatus();\n }\n\n ngOnDestroy(): void {\n this.destroyed$.next();\n this.destroyed$.complete();\n }\n\n ngAfterContentInit(): void {\n if (!this.validateControl && !this.validateString) {\n if (this.defaultValidateControl instanceof FormControlDirective) {\n this.nzValidateStatus = this.defaultValidateControl.control;\n } else {\n this.nzValidateStatus = this.defaultValidateControl!;\n }\n }\n }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Input,\n OnDestroy,\n ViewEncapsulation,\n booleanAttribute,\n inject\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\n\nimport { ThemeType } from '@ant-design/icons-angular';\n\nimport { NzOutletModule } from 'ng-zorro-antd/core/outlet';\nimport { NzTSType } from 'ng-zorro-antd/core/types';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\nimport { NzTooltipDirective } from 'ng-zorro-antd/tooltip';\n\nimport { DefaultTooltipIcon, NzFormDirective, NzLabelAlignType } from './form.directive';\n\nexport interface NzFormTooltipIcon {\n type: NzTSType;\n theme: ThemeType;\n}\n\nfunction toTooltipIcon(value: string | NzFormTooltipIcon): Required<NzFormTooltipIcon> {\n const icon = typeof value === 'string' ? { type: value } : value;\n return { ...DefaultTooltipIcon, ...icon };\n}\n\n@Component({\n selector: 'nz-form-label',\n exportAs: 'nzFormLabel',\n preserveWhitespaces: false,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <label [attr.for]=\"nzFor\" [class.ant-form-item-no-colon]=\"nzNoColon\" [class.ant-form-item-required]=\"nzRequired\">\n <ng-content></ng-content>\n @if (nzTooltipTitle) {\n <span class=\"ant-form-item-tooltip\" nz-tooltip [nzTooltipTitle]=\"nzTooltipTitle\">\n <ng-container *nzStringTemplateOutlet=\"tooltipIcon.type; let tooltipIconType\">\n <nz-icon [nzType]=\"tooltipIconType\" [nzTheme]=\"tooltipIcon.theme\" />\n </ng-container>\n </span>\n }\n </label>\n `,\n host: {\n class: 'ant-form-item-label',\n '[class.ant-form-item-label-left]': `nzLabelAlign === 'left'`,\n '[class.ant-form-item-label-wrap]': `nzLabelWrap`\n },\n imports: [NzOutletModule, NzTooltipDirective, NzIconModule]\n})\nexport class NzFormLabelComponent implements OnDestroy {\n @Input() nzFor?: string;\n @Input({ transform: booleanAttribute }) nzRequired = false;\n @Input({ transform: booleanAttribute })\n set nzNoColon(value: boolean) {\n this.noColon = value;\n }\n get nzNoColon(): boolean {\n return this.noColon !== 'default' ? this.noColon : !!this.nzFormDirective?.nzNoColon;\n }\n\n private noColon: boolean | 'default' = 'default';\n\n @Input() nzTooltipTitle?: NzTSType;\n @Input()\n set nzTooltipIcon(value: string | NzFormTooltipIcon) {\n this._tooltipIcon = toTooltipIcon(value);\n }\n // due to 'get' and 'set' accessor must have the same type, so it was renamed to `tooltipIcon`\n get tooltipIcon(): NzFormTooltipIcon {\n return this._tooltipIcon !== 'default'\n ? this._tooltipIcon\n : toTooltipIcon(this.nzFormDirective?.nzTooltipIcon || DefaultTooltipIcon);\n }\n private _tooltipIcon: NzFormTooltipIcon | 'default' = 'default';\n\n @Input()\n set nzLabelAlign(value: NzLabelAlignType) {\n this.labelAlign = value;\n }\n\n get nzLabelAlign(): NzLabelAlignType {\n return this.labelAlign !== 'default' ? this.labelAlign : this.nzFormDirective?.nzLabelAlign || 'right';\n }\n\n private labelAlign: NzLabelAlignType | 'default' = 'default';\n\n @Input({ transform: booleanAttribute })\n set nzLabelWrap(value: boolean) {\n this.labelWrap = value;\n }\n\n get nzLabelWrap(): boolean {\n return this.labelWrap !== 'default' ? this.labelWrap : !!this.nzFormDirective?.nzLabelWrap;\n }\n\n private labelWrap: boolean | 'default' = 'default';\n\n private destroy$ = new Subject<boolean>();\n\n private nzFormDirective = inject(NzFormDirective, { skipSelf: true, optional: true });\n\n constructor(private cdr: ChangeDetectorRef) {\n if (this.nzFormDirective) {\n this.nzFormDirective\n .getInputObservable('nzNoColon')\n .pipe(\n filter(() => this.noColon === 'default'),\n takeUntil(this.destroy$)\n )\n .subscribe(() => this.cdr.markForCheck());\n\n this.nzFormDirective\n .getInputObservable('nzTooltipIcon')\n .pipe(\n filter(() => this._tooltipIcon === 'default'),\n takeUntil(this.destroy$)\n )\n .subscribe(() => this.cdr.markForCheck());\n\n this.nzFormDirective\n .getInputObservable('nzLabelAlign')\n .pipe(\n filter(() => this.labelAlign === 'default'),\n takeUntil(this.destroy$)\n )\n .subscribe(() => this.cdr.markForCheck());\n\n this.nzFormDirective\n .getInputObservable('nzLabelWrap')\n .pipe(\n filter(() => this.labelWrap === 'default'),\n takeUntil(this.destroy$)\n )\n .subscribe(() => this.cdr.markForCheck());\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.complete();\n }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'nz-form-split',\n exportAs: 'nzFormSplit',\n preserveWhitespaces: false,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: ` <ng-content></ng-content> `,\n host: {\n class: 'ant-form-split'\n }\n})\nexport class NzFormSplitComponent {}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'nz-form-text',\n exportAs: 'nzFormText',\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: ` <ng-content></ng-content> `,\n host: {\n class: 'ant-form-text'\n }\n})\nexport class NzFormTextComponent {}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { NgModule } from '@angular/core';\n\nimport { NzGridModule } from 'ng-zorro-antd/grid';\n\nimport { NzFormControlComponent } from './form-control.component';\nimport { NzFormItemComponent } from './form-item.component';\nimport { NzFormLabelComponent } from './form-label.component';\nimport { NzFormSplitComponent } from './form-split.component';\nimport { NzFormTextComponent } from './form-text.component';\nimport { NzFormDirective } from './form.directive';\n\n@NgModule({\n imports: [\n NzFormDirective,\n NzFormItemComponent,\n NzFormLabelComponent,\n NzFormControlComponent,\n NzFormTextComponent,\n NzFormSplitComponent\n ],\n exports: [\n NzGridModule,\n NzFormDirective,\n NzFormItemComponent,\n NzFormLabelComponent,\n NzFormControlComponent,\n NzFormTextComponent,\n NzFormSplitComponent\n ]\n})\nexport class NzFormModule {}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nexport * from './form.module';\nexport * from './form.directive';\nexport * from './form-item.component';\nexport * from './form-label.component';\nexport * from './form-control.component';\nexport * from './form-text.component';\nexport * from './form-split.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2"],"mappings":"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"}