@ebuilding/form 2.0.8 → 2.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -870,7 +870,7 @@ class DeonNzFieldDimIndicatorAssess extends FieldType {
|
|
|
870
870
|
}
|
|
871
871
|
}
|
|
872
872
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: DeonNzFieldDimIndicatorAssess, deps: [{ token: i1$5.NzModalService }, { token: i2$1.NzMessageService }, { token: i1$4.GramGlobalService }], target: i0.ɵɵFactoryTarget.Component });
|
|
873
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: DeonNzFieldDimIndicatorAssess, isStandalone: true, selector: "deon-nz-field-indicator-assess", usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"props && props['isTable']==true;else tmpDefault\">\n <div class=\"ind-list\">\n <div class=\"ind-item\">\n <ng-container *ngFor=\"let f of field.fieldGroup;let i=index;\">\n\n\n <ng-container *ngIf=\"f?.key!='indScoreSelect' && f?.key!='indScoreEnter';else tmpScore\">\n <div style=\"padding: 0 8px;\"\n [ngStyle]=\"props?.['tableConfig']?.[i]?.widthAuto ? {'flex': '1'} : {'width': props['tableConfig'][i]?.width+'px'}\">\n <formly-field [field]=\"f\" [hideLabel]=\"true\"></formly-field>\n </div>\n </ng-container>\n\n <ng-template #tmpScore>\n <ng-container *ngIf=\"props?.['expandInfo'] && props?.['expandInfo']?.length>0\">\n <ng-container *ngFor=\"let item of props?.['expandInfo']\">\n <div style=\"padding: 0 8px; width: 150px;\">{{item?.nodeData}}</div>\n </ng-container>\n </ng-container>\n <div style=\"padding: 0 8px; width: 150px;\">\n <formly-field [field]=\"f\" [hideLabel]=\"true\"></formly-field>\n </div>\n </ng-template>\n\n\n </ng-container>\n <ng-container *ngIf=\"props['tableConfig'].length > totalRenderedColumns\">\n <ng-container *ngFor=\"let f of props['tableConfig'].slice(totalRenderedColumns);let j=index;\">\n <div style=\"padding: 0 8px; width: 150px;\">\n <ng-container\n *ngIf=\"totalRenderedColumns==(field?.fieldGroup?.length ?? 0) &&props?.['expandInfo'] && props?.['expandInfo']?.length>j;else tmpEmptyData\">\n {{props?.[\"expandInfo\"]?.[j]?.nodeData}}\n </ng-container>\n <ng-template #tmpEmptyData>---</ng-template>\n </div>\n </ng-container>\n </ng-container>\n </div>\n </div>\n</ng-container>\n\n<ng-template #tmpDefault>\n <div class=\"ind-content\">\n <ng-container *ngIf=\"field?.fieldGroup && (field?.fieldGroup?.length ?? 0) > 0\">\n <div class=\"table-box\" *ngIf=\"props?.['indConfig']?.['izIndTable'] == true; else
|
|
873
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: DeonNzFieldDimIndicatorAssess, isStandalone: true, selector: "deon-nz-field-indicator-assess", usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"props && props['isTable']==true;else tmpDefault\">\n <div class=\"ind-list\">\n <div class=\"ind-item\">\n <ng-container *ngFor=\"let f of field.fieldGroup;let i=index;\">\n\n\n <ng-container *ngIf=\"f?.key!='indScoreSelect' && f?.key!='indScoreEnter';else tmpScore\">\n <div style=\"padding: 0 8px;\"\n [ngStyle]=\"props?.['tableConfig']?.[i]?.widthAuto ? {'flex': '1'} : {'width': props['tableConfig'][i]?.width+'px'}\">\n <formly-field [field]=\"f\" [hideLabel]=\"true\"></formly-field>\n </div>\n </ng-container>\n\n <ng-template #tmpScore>\n <ng-container *ngIf=\"props?.['expandInfo'] && props?.['expandInfo']?.length>0\">\n <ng-container *ngFor=\"let item of props?.['expandInfo']\">\n <div style=\"padding: 0 8px; width: 150px;\">{{item?.nodeData}}</div>\n </ng-container>\n </ng-container>\n <div style=\"padding: 0 8px; width: 150px;\">\n <formly-field [field]=\"f\" [hideLabel]=\"true\"></formly-field>\n </div>\n </ng-template>\n\n\n </ng-container>\n <ng-container *ngIf=\"props['tableConfig'].length > totalRenderedColumns\">\n <ng-container *ngFor=\"let f of props['tableConfig'].slice(totalRenderedColumns);let j=index;\">\n <div style=\"padding: 0 8px; width: 150px;\">\n <ng-container\n *ngIf=\"totalRenderedColumns==(field?.fieldGroup?.length ?? 0) &&props?.['expandInfo'] && props?.['expandInfo']?.length>j;else tmpEmptyData\">\n {{props?.[\"expandInfo\"]?.[j]?.nodeData}}\n </ng-container>\n <ng-template #tmpEmptyData>---</ng-template>\n </div>\n </ng-container>\n </ng-container>\n </div>\n </div>\n</ng-container>\n\n<ng-template #tmpDefault>\n <div class=\"ind-content\">\n <ng-container *ngIf=\"field?.fieldGroup && (field?.fieldGroup?.length ?? 0) > 0\">\n <div class=\"table-box\" *ngIf=\"props?.['indConfig']?.['izIndTable'] == true; else tmpCard\">\n <table>\n <thead>\n <tr>\n <ng-container *ngFor=\"let f of field.fieldGroup\">\n <th [attr.width]=\"\n f?.key == 'name'\n ? '300px'\n : f?.key == 'desc'\n ? ''\n : '130px'\n \" *ngIf=\"f?.key != 'indScoreEnter' && f?.key != 'indScoreSelect'\">\n <ng-container *ngIf=\"f?.props?.required == true\">\n <label class=\"label-required\">*</label>\n </ng-container>\n {{ f.props?.label }}\n </th>\n </ng-container>\n </tr>\n </thead>\n <tbody>\n <tr>\n <ng-container *ngFor=\"let f of field.fieldGroup\">\n <td *ngIf=\"f?.key != 'indScoreEnter' && f?.key != 'indScoreSelect'\">\n <formly-field [field]=\"f\" [hideLabel]=\"true\"></formly-field>\n </td>\n </ng-container>\n </tr>\n <tr>\n <td [attr.colspan]=\"(field?.fieldGroup?.length ?? 0)\">\n <div class=\"ind-assess\">\n <div class=\"assess-nodes\" *ngIf=\"\n props?.['expandInfo'] &&\n props?.['expandInfo']?.length > 0\n \">\n <div class=\"node-title\">\n <label><span nz-icon nzType=\"bars\"></span>\u8BC4\u4F30\u8BB0\u5F55</label>\n </div>\n <div class=\"node-box\" *ngFor=\"let item of props?.['expandInfo']\">\n <label class=\"title\">{{ item?.nodeName }}</label>\n <label class=\"value\">{{ item?.nodeData }}</label>\n </div>\n </div>\n <div class=\"assess-info\">\n <ng-container *ngFor=\"let f of field.fieldGroup\">\n <ng-container *ngIf=\"\n f?.key == 'indScoreEnter' || f?.key == 'indScoreSelect'\n \">\n <formly-field [field]=\"f\"></formly-field>\n </ng-container>\n </ng-container>\n </div>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n </ng-container>\n </div>\n</ng-template>\n\n<ng-template #tmpCard>\n <div class=\"card-ind\">\n <div class=\"ind-info\">\n <ng-container *ngFor=\"let f of field.fieldGroup\">\n <formly-field [field]=\"f\" *ngIf=\"f?.key != 'indScoreEnter' && f?.key != 'indScoreSelect'\"></formly-field>\n </ng-container>\n </div>\n <div class=\"ind-assess\">\n <div class=\"assess-nodes\" *ngIf=\"\n props?.['expandInfo'] && props?.['expandInfo']?.length > 0\n \">\n <div class=\"node-title\">\n <label><span nz-icon nzType=\"bars\"></span>\u8BC4\u4F30\u8BB0\u5F55</label>\n </div>\n <div class=\"node-box\" *ngFor=\"let item of props?.['expandInfo']\">\n <label class=\"title\">{{ item?.nodeName }}</label>\n <label class=\"value\">{{ item?.nodeData }}</label>\n </div>\n </div>\n <div class=\"assess-info\">\n <ng-container *ngFor=\"let f of field.fieldGroup\">\n <ng-container *ngIf=\"f?.key == 'indScoreEnter' || f?.key == 'indScoreSelect'\">\n <formly-field [field]=\"f\"></formly-field>\n </ng-container>\n </ng-container>\n </div>\n </div>\n </div>\n</ng-template>", styles: [":host ::ng-deep{width:100%;border:0;border-radius:4px;padding:0;display:flex;flex-direction:column}:host ::ng-deep .ind-finish{padding:8px 15px 6px;border-bottom:1px solid #eaeaea}:host ::ng-deep .ind-finish nz-form-label{width:auto!important;max-width:none!important}:host ::ng-deep .ind-finish nz-form-item{margin-bottom:0!important}:host ::ng-deep .ind-finish nz-input-number{max-width:150px}:host ::ng-deep .ind-content{flex:1;padding:15px 15px 0}:host ::ng-deep .ind-assess{padding:0 15px 0 0;display:flex;flex-direction:column}:host ::ng-deep .ind-assess .assess-nodes{display:flex;flex-direction:row;align-items:center;padding:0;margin:0}:host ::ng-deep .ind-assess .assess-nodes .node-title{display:flex;flex-direction:row;align-items:center;padding:0 20px 0 0}:host ::ng-deep .ind-assess .assess-nodes .node-title label{line-height:normal}:host ::ng-deep .ind-assess .assess-nodes .node-box{display:flex;flex-direction:row;align-items:center;padding:0 15px 0 0}:host ::ng-deep .ind-assess .assess-nodes .node-box label{line-height:normal}:host ::ng-deep .ind-assess .assess-nodes .node-box .title:after{content:\":\";padding:0 5px 0 3px}:host ::ng-deep .ind-assess .assess-nodes .node-box .value{font-size:14px;font-weight:600}:host ::ng-deep .ind-assess .assess-info{display:flex;padding:0}:host ::ng-deep .ind-assess .assess-info nz-form-label{width:auto!important;max-width:none!important;padding:0 15px 0 0!important}:host ::ng-deep .ind-assess .assess-info nz-form-item{margin-bottom:0!important}:host ::ng-deep .ind-assess .assess-info nz-input-number{max-width:150px;height:26px;min-height:26px}:host ::ng-deep .ind-assess .assess-info nz-input-number .ant-input-number-input{height:24px;line-height:24px}:host ::ng-deep .ind-assess .assess-nodes+.assess-info{padding:8px 0 0}:host ::ng-deep .table-box{padding:0 0 20px}:host ::ng-deep .table-box table tr th{padding:0 8px}:host ::ng-deep .table-box table tr td{padding:10px 8px;vertical-align:top}:host ::ng-deep .table-box .ant-form-item{margin-bottom:0}:host ::ng-deep .table-box .label-required{color:red;margin-right:2px}:host ::ng-deep .card-ind{padding:10px 15px;border:1px solid #eaeaea;border-radius:4px;margin-bottom:15px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: NzIconModule }, { kind: "directive", type: i5$1.NzIconDirective, selector: "nz-icon,[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "ngmodule", type: NzButtonModule }, { kind: "directive", type: i5$2.ɵNzTransitionPatchDirective, selector: "[nz-button], nz-button-group, [nz-icon], nz-icon, [nz-menu-item], [nz-submenu], nz-select-top-control, nz-select-placeholder, nz-input-group", inputs: ["hidden"] }, { kind: "ngmodule", type: FormlyModule }, { kind: "component", type: i1$1.FormlyField, selector: "formly-field", inputs: ["field", "hideLabel", "isTable", "dimConfig", "tableConfig", "editor"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
874
874
|
}
|
|
875
875
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: DeonNzFieldDimIndicatorAssess, decorators: [{
|
|
876
876
|
type: Component,
|
|
@@ -880,7 +880,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
|
|
|
880
880
|
NzIconModule,
|
|
881
881
|
NzButtonModule,
|
|
882
882
|
FormlyModule
|
|
883
|
-
], template: "<ng-container *ngIf=\"props && props['isTable']==true;else tmpDefault\">\n <div class=\"ind-list\">\n <div class=\"ind-item\">\n <ng-container *ngFor=\"let f of field.fieldGroup;let i=index;\">\n\n\n <ng-container *ngIf=\"f?.key!='indScoreSelect' && f?.key!='indScoreEnter';else tmpScore\">\n <div style=\"padding: 0 8px;\"\n [ngStyle]=\"props?.['tableConfig']?.[i]?.widthAuto ? {'flex': '1'} : {'width': props['tableConfig'][i]?.width+'px'}\">\n <formly-field [field]=\"f\" [hideLabel]=\"true\"></formly-field>\n </div>\n </ng-container>\n\n <ng-template #tmpScore>\n <ng-container *ngIf=\"props?.['expandInfo'] && props?.['expandInfo']?.length>0\">\n <ng-container *ngFor=\"let item of props?.['expandInfo']\">\n <div style=\"padding: 0 8px; width: 150px;\">{{item?.nodeData}}</div>\n </ng-container>\n </ng-container>\n <div style=\"padding: 0 8px; width: 150px;\">\n <formly-field [field]=\"f\" [hideLabel]=\"true\"></formly-field>\n </div>\n </ng-template>\n\n\n </ng-container>\n <ng-container *ngIf=\"props['tableConfig'].length > totalRenderedColumns\">\n <ng-container *ngFor=\"let f of props['tableConfig'].slice(totalRenderedColumns);let j=index;\">\n <div style=\"padding: 0 8px; width: 150px;\">\n <ng-container\n *ngIf=\"totalRenderedColumns==(field?.fieldGroup?.length ?? 0) &&props?.['expandInfo'] && props?.['expandInfo']?.length>j;else tmpEmptyData\">\n {{props?.[\"expandInfo\"]?.[j]?.nodeData}}\n </ng-container>\n <ng-template #tmpEmptyData>---</ng-template>\n </div>\n </ng-container>\n </ng-container>\n </div>\n </div>\n</ng-container>\n\n<ng-template #tmpDefault>\n <div class=\"ind-content\">\n <ng-container *ngIf=\"field?.fieldGroup && (field?.fieldGroup?.length ?? 0) > 0\">\n <div class=\"table-box\" *ngIf=\"props?.['indConfig']?.['izIndTable'] == true; else
|
|
883
|
+
], template: "<ng-container *ngIf=\"props && props['isTable']==true;else tmpDefault\">\n <div class=\"ind-list\">\n <div class=\"ind-item\">\n <ng-container *ngFor=\"let f of field.fieldGroup;let i=index;\">\n\n\n <ng-container *ngIf=\"f?.key!='indScoreSelect' && f?.key!='indScoreEnter';else tmpScore\">\n <div style=\"padding: 0 8px;\"\n [ngStyle]=\"props?.['tableConfig']?.[i]?.widthAuto ? {'flex': '1'} : {'width': props['tableConfig'][i]?.width+'px'}\">\n <formly-field [field]=\"f\" [hideLabel]=\"true\"></formly-field>\n </div>\n </ng-container>\n\n <ng-template #tmpScore>\n <ng-container *ngIf=\"props?.['expandInfo'] && props?.['expandInfo']?.length>0\">\n <ng-container *ngFor=\"let item of props?.['expandInfo']\">\n <div style=\"padding: 0 8px; width: 150px;\">{{item?.nodeData}}</div>\n </ng-container>\n </ng-container>\n <div style=\"padding: 0 8px; width: 150px;\">\n <formly-field [field]=\"f\" [hideLabel]=\"true\"></formly-field>\n </div>\n </ng-template>\n\n\n </ng-container>\n <ng-container *ngIf=\"props['tableConfig'].length > totalRenderedColumns\">\n <ng-container *ngFor=\"let f of props['tableConfig'].slice(totalRenderedColumns);let j=index;\">\n <div style=\"padding: 0 8px; width: 150px;\">\n <ng-container\n *ngIf=\"totalRenderedColumns==(field?.fieldGroup?.length ?? 0) &&props?.['expandInfo'] && props?.['expandInfo']?.length>j;else tmpEmptyData\">\n {{props?.[\"expandInfo\"]?.[j]?.nodeData}}\n </ng-container>\n <ng-template #tmpEmptyData>---</ng-template>\n </div>\n </ng-container>\n </ng-container>\n </div>\n </div>\n</ng-container>\n\n<ng-template #tmpDefault>\n <div class=\"ind-content\">\n <ng-container *ngIf=\"field?.fieldGroup && (field?.fieldGroup?.length ?? 0) > 0\">\n <div class=\"table-box\" *ngIf=\"props?.['indConfig']?.['izIndTable'] == true; else tmpCard\">\n <table>\n <thead>\n <tr>\n <ng-container *ngFor=\"let f of field.fieldGroup\">\n <th [attr.width]=\"\n f?.key == 'name'\n ? '300px'\n : f?.key == 'desc'\n ? ''\n : '130px'\n \" *ngIf=\"f?.key != 'indScoreEnter' && f?.key != 'indScoreSelect'\">\n <ng-container *ngIf=\"f?.props?.required == true\">\n <label class=\"label-required\">*</label>\n </ng-container>\n {{ f.props?.label }}\n </th>\n </ng-container>\n </tr>\n </thead>\n <tbody>\n <tr>\n <ng-container *ngFor=\"let f of field.fieldGroup\">\n <td *ngIf=\"f?.key != 'indScoreEnter' && f?.key != 'indScoreSelect'\">\n <formly-field [field]=\"f\" [hideLabel]=\"true\"></formly-field>\n </td>\n </ng-container>\n </tr>\n <tr>\n <td [attr.colspan]=\"(field?.fieldGroup?.length ?? 0)\">\n <div class=\"ind-assess\">\n <div class=\"assess-nodes\" *ngIf=\"\n props?.['expandInfo'] &&\n props?.['expandInfo']?.length > 0\n \">\n <div class=\"node-title\">\n <label><span nz-icon nzType=\"bars\"></span>\u8BC4\u4F30\u8BB0\u5F55</label>\n </div>\n <div class=\"node-box\" *ngFor=\"let item of props?.['expandInfo']\">\n <label class=\"title\">{{ item?.nodeName }}</label>\n <label class=\"value\">{{ item?.nodeData }}</label>\n </div>\n </div>\n <div class=\"assess-info\">\n <ng-container *ngFor=\"let f of field.fieldGroup\">\n <ng-container *ngIf=\"\n f?.key == 'indScoreEnter' || f?.key == 'indScoreSelect'\n \">\n <formly-field [field]=\"f\"></formly-field>\n </ng-container>\n </ng-container>\n </div>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n </ng-container>\n </div>\n</ng-template>\n\n<ng-template #tmpCard>\n <div class=\"card-ind\">\n <div class=\"ind-info\">\n <ng-container *ngFor=\"let f of field.fieldGroup\">\n <formly-field [field]=\"f\" *ngIf=\"f?.key != 'indScoreEnter' && f?.key != 'indScoreSelect'\"></formly-field>\n </ng-container>\n </div>\n <div class=\"ind-assess\">\n <div class=\"assess-nodes\" *ngIf=\"\n props?.['expandInfo'] && props?.['expandInfo']?.length > 0\n \">\n <div class=\"node-title\">\n <label><span nz-icon nzType=\"bars\"></span>\u8BC4\u4F30\u8BB0\u5F55</label>\n </div>\n <div class=\"node-box\" *ngFor=\"let item of props?.['expandInfo']\">\n <label class=\"title\">{{ item?.nodeName }}</label>\n <label class=\"value\">{{ item?.nodeData }}</label>\n </div>\n </div>\n <div class=\"assess-info\">\n <ng-container *ngFor=\"let f of field.fieldGroup\">\n <ng-container *ngIf=\"f?.key == 'indScoreEnter' || f?.key == 'indScoreSelect'\">\n <formly-field [field]=\"f\"></formly-field>\n </ng-container>\n </ng-container>\n </div>\n </div>\n </div>\n</ng-template>", styles: [":host ::ng-deep{width:100%;border:0;border-radius:4px;padding:0;display:flex;flex-direction:column}:host ::ng-deep .ind-finish{padding:8px 15px 6px;border-bottom:1px solid #eaeaea}:host ::ng-deep .ind-finish nz-form-label{width:auto!important;max-width:none!important}:host ::ng-deep .ind-finish nz-form-item{margin-bottom:0!important}:host ::ng-deep .ind-finish nz-input-number{max-width:150px}:host ::ng-deep .ind-content{flex:1;padding:15px 15px 0}:host ::ng-deep .ind-assess{padding:0 15px 0 0;display:flex;flex-direction:column}:host ::ng-deep .ind-assess .assess-nodes{display:flex;flex-direction:row;align-items:center;padding:0;margin:0}:host ::ng-deep .ind-assess .assess-nodes .node-title{display:flex;flex-direction:row;align-items:center;padding:0 20px 0 0}:host ::ng-deep .ind-assess .assess-nodes .node-title label{line-height:normal}:host ::ng-deep .ind-assess .assess-nodes .node-box{display:flex;flex-direction:row;align-items:center;padding:0 15px 0 0}:host ::ng-deep .ind-assess .assess-nodes .node-box label{line-height:normal}:host ::ng-deep .ind-assess .assess-nodes .node-box .title:after{content:\":\";padding:0 5px 0 3px}:host ::ng-deep .ind-assess .assess-nodes .node-box .value{font-size:14px;font-weight:600}:host ::ng-deep .ind-assess .assess-info{display:flex;padding:0}:host ::ng-deep .ind-assess .assess-info nz-form-label{width:auto!important;max-width:none!important;padding:0 15px 0 0!important}:host ::ng-deep .ind-assess .assess-info nz-form-item{margin-bottom:0!important}:host ::ng-deep .ind-assess .assess-info nz-input-number{max-width:150px;height:26px;min-height:26px}:host ::ng-deep .ind-assess .assess-info nz-input-number .ant-input-number-input{height:24px;line-height:24px}:host ::ng-deep .ind-assess .assess-nodes+.assess-info{padding:8px 0 0}:host ::ng-deep .table-box{padding:0 0 20px}:host ::ng-deep .table-box table tr th{padding:0 8px}:host ::ng-deep .table-box table tr td{padding:10px 8px;vertical-align:top}:host ::ng-deep .table-box .ant-form-item{margin-bottom:0}:host ::ng-deep .table-box .label-required{color:red;margin-right:2px}:host ::ng-deep .card-ind{padding:10px 15px;border:1px solid #eaeaea;border-radius:4px;margin-bottom:15px}\n"] }]
|
|
884
884
|
}], ctorParameters: () => [{ type: i1$5.NzModalService }, { type: i2$1.NzMessageService }, { type: i1$4.GramGlobalService }] });
|
|
885
885
|
|
|
886
886
|
class DeonNzDimIndicatorModule {
|