@yuuvis/client-framework 3.0.0-beta.21.2 → 3.0.0
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.
- package/fesm2022/yuuvis-client-framework-actions.mjs +82 -53
- package/fesm2022/yuuvis-client-framework-actions.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-object-relationship.mjs +4 -4
- package/fesm2022/yuuvis-client-framework-object-relationship.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-tile-list.mjs +74 -75
- package/fesm2022/yuuvis-client-framework-tile-list.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework.mjs +75 -19
- package/fesm2022/yuuvis-client-framework.mjs.map +1 -1
- package/package.json +6 -6
- package/types/yuuvis-client-framework-actions.d.ts +37 -10
- package/types/yuuvis-client-framework-tile-list.d.ts +76 -75
- package/types/yuuvis-client-framework.d.ts +22 -16
|
@@ -183,7 +183,7 @@ class RelationshipTargetSearchComponent {
|
|
|
183
183
|
useExisting: forwardRef(() => RelationshipTargetSearchComponent),
|
|
184
184
|
multi: true
|
|
185
185
|
}
|
|
186
|
-
], ngImport: i0, template: "<mat-form-field>\n <mat-label>{{ 'yuv.object-relationship.add-relationship.target-search.label' | translate }}</mat-label>\n\n <yuv-autocomplete\n [required]=\"true\"\n [busy]=\"busy()\"\n [formControl]=\"acFormControl\"\n [autocompleteValues]=\"autocompleteRes\"\n [forceSelection]=\"true\"\n (autocompleteFnc)=\"autocompleteFn($event)\"\n [multiple]=\"false\"\n >\n <!-- template for option -->\n <ng-template #optionTemplate let-item>\n <div class=\"label\">{{ item.label }}</div>\n <div class=\"meta\" style=\"font: var(--ymt-font-body-subtle); color: var(--ymt-text-color-subtle)\">{{ item.value.description }}</div>\n </ng-template>\n </yuv-autocomplete>\n\n @let v = mappedValue();\n @if (v) {\n <div class=\"value-node\" aria-live=\"polite\">\n @if (v.icon) {\n <div class=\"icon\" aria-hidden=\"true\">\n <mat-icon>{{ v.icon }}</mat-icon>\n </div>\n }\n <strong class=\"label\">{{ v.title }}</strong>\n <div class=\"description\">{{ v.description }}</div>\n\n <button\n type=\"button\"\n ymtIconButton\n icon-button-size=\"small\"\n [attr.aria-label]=\"'yuv.object-relationship.add-relationship.target-search.clear' | translate\"\n (click)=\"reset()\"\n >\n <mat-icon>close</mat-icon>\n </button>\n </div>\n }\n</mat-form-field>\n", styles: [":host mat-form-field{width:100%}:host.has-value yuv-autocomplete{display:none}:host .value-node{display:grid;grid-template-columns:auto 1fr auto;grid-template-rows:auto auto;grid-template-areas:\"icon label button\" \"icon description description\";column-gap:var(--ymt-spacing-xs);align-items:center}:host .value-node .icon{grid-area:icon}:host .value-node .label{grid-area:label}:host .value-node .description{grid-area:description;font:var(--ymt-font-body-subtle);color:var(--ymt-text-color-subtle)}\n"], dependencies: [{ kind: "ngmodule", type: YuvAutocompleteModule }, { kind: "component", type: i1.AutocompleteComponent, selector: "yuv-autocomplete", inputs: ["ariaLabel", "busy", "multiple", "distinctValues", "addOnBlur", "minLength", "maxItems", "forceSelection", "autocompleteValues"], outputs: ["autocompleteFnc", "acBlur"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: YmtIconButtonDirective, selector: "button[ymtIconButton],button[ymt-icon-button],a[ymtIconButton],a[ymt-icon-button]", inputs: ["disabled", "disableRipple", "aria-disabled", "disabledInteractive", "icon-button-size"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
|
|
186
|
+
], ngImport: i0, template: "<mat-form-field>\n <mat-label>{{ 'yuv.object-relationship.add-relationship.target-search.label' | translate }}</mat-label>\n\n <yuv-autocomplete\n [required]=\"true\"\n [busy]=\"busy()\"\n [formControl]=\"acFormControl\"\n [autocompleteValues]=\"autocompleteRes\"\n [forceSelection]=\"true\"\n (autocompleteFnc)=\"autocompleteFn($event)\"\n [multiple]=\"false\"\n >\n <!-- template for option -->\n <ng-template #optionTemplate let-item>\n <div class=\"label\">{{ item.label }}</div>\n <div class=\"meta\" style=\"font: var(--ymt-font-body-subtle); color: var(--ymt-text-color-subtle)\">{{ item.value.description }}</div>\n </ng-template>\n </yuv-autocomplete>\n\n @let v = mappedValue();\n @if (v) {\n <div class=\"value-node\" aria-live=\"polite\">\n @if (v.icon) {\n <div class=\"icon\" aria-hidden=\"true\">\n <mat-icon>{{ v.icon }}</mat-icon>\n </div>\n }\n <strong class=\"label\">{{ v.title }}</strong>\n <div class=\"description\">{{ v.description }}</div>\n\n <button\n type=\"button\"\n ymtIconButton\n icon-button-size=\"small\"\n [attr.aria-label]=\"'yuv.object-relationship.add-relationship.target-search.clear' | translate\"\n (click)=\"reset()\"\n >\n <mat-icon>close</mat-icon>\n </button>\n </div>\n }\n</mat-form-field>\n", styles: [":host mat-form-field{width:100%}:host.has-value yuv-autocomplete{display:none}:host .value-node{display:grid;grid-template-columns:auto 1fr auto;grid-template-rows:auto auto;grid-template-areas:\"icon label button\" \"icon description description\";column-gap:var(--ymt-spacing-xs);padding:var(--ymt-spacing-2xs) 0;align-items:center}:host .value-node .icon{grid-area:icon}:host .value-node .label{grid-area:label;min-width:0;overflow-wrap:anywhere}:host .value-node .description{grid-area:description;min-width:0;overflow-wrap:anywhere;font:var(--ymt-font-body-subtle);color:var(--ymt-text-color-subtle)}\n"], dependencies: [{ kind: "ngmodule", type: YuvAutocompleteModule }, { kind: "component", type: i1.AutocompleteComponent, selector: "yuv-autocomplete", inputs: ["ariaLabel", "busy", "multiple", "distinctValues", "addOnBlur", "minLength", "maxItems", "forceSelection", "autocompleteValues"], outputs: ["autocompleteFnc", "acBlur"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: YmtIconButtonDirective, selector: "button[ymtIconButton],button[ymt-icon-button],a[ymtIconButton],a[ymt-icon-button]", inputs: ["disabled", "disableRipple", "aria-disabled", "disabledInteractive", "icon-button-size"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
|
|
187
187
|
}
|
|
188
188
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: RelationshipTargetSearchComponent, decorators: [{
|
|
189
189
|
type: Component,
|
|
@@ -202,7 +202,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
202
202
|
}
|
|
203
203
|
], host: {
|
|
204
204
|
'[class.has-value]': '!!mappedValue()'
|
|
205
|
-
}, template: "<mat-form-field>\n <mat-label>{{ 'yuv.object-relationship.add-relationship.target-search.label' | translate }}</mat-label>\n\n <yuv-autocomplete\n [required]=\"true\"\n [busy]=\"busy()\"\n [formControl]=\"acFormControl\"\n [autocompleteValues]=\"autocompleteRes\"\n [forceSelection]=\"true\"\n (autocompleteFnc)=\"autocompleteFn($event)\"\n [multiple]=\"false\"\n >\n <!-- template for option -->\n <ng-template #optionTemplate let-item>\n <div class=\"label\">{{ item.label }}</div>\n <div class=\"meta\" style=\"font: var(--ymt-font-body-subtle); color: var(--ymt-text-color-subtle)\">{{ item.value.description }}</div>\n </ng-template>\n </yuv-autocomplete>\n\n @let v = mappedValue();\n @if (v) {\n <div class=\"value-node\" aria-live=\"polite\">\n @if (v.icon) {\n <div class=\"icon\" aria-hidden=\"true\">\n <mat-icon>{{ v.icon }}</mat-icon>\n </div>\n }\n <strong class=\"label\">{{ v.title }}</strong>\n <div class=\"description\">{{ v.description }}</div>\n\n <button\n type=\"button\"\n ymtIconButton\n icon-button-size=\"small\"\n [attr.aria-label]=\"'yuv.object-relationship.add-relationship.target-search.clear' | translate\"\n (click)=\"reset()\"\n >\n <mat-icon>close</mat-icon>\n </button>\n </div>\n }\n</mat-form-field>\n", styles: [":host mat-form-field{width:100%}:host.has-value yuv-autocomplete{display:none}:host .value-node{display:grid;grid-template-columns:auto 1fr auto;grid-template-rows:auto auto;grid-template-areas:\"icon label button\" \"icon description description\";column-gap:var(--ymt-spacing-xs);align-items:center}:host .value-node .icon{grid-area:icon}:host .value-node .label{grid-area:label}:host .value-node .description{grid-area:description;font:var(--ymt-font-body-subtle);color:var(--ymt-text-color-subtle)}\n"] }]
|
|
205
|
+
}, template: "<mat-form-field>\n <mat-label>{{ 'yuv.object-relationship.add-relationship.target-search.label' | translate }}</mat-label>\n\n <yuv-autocomplete\n [required]=\"true\"\n [busy]=\"busy()\"\n [formControl]=\"acFormControl\"\n [autocompleteValues]=\"autocompleteRes\"\n [forceSelection]=\"true\"\n (autocompleteFnc)=\"autocompleteFn($event)\"\n [multiple]=\"false\"\n >\n <!-- template for option -->\n <ng-template #optionTemplate let-item>\n <div class=\"label\">{{ item.label }}</div>\n <div class=\"meta\" style=\"font: var(--ymt-font-body-subtle); color: var(--ymt-text-color-subtle)\">{{ item.value.description }}</div>\n </ng-template>\n </yuv-autocomplete>\n\n @let v = mappedValue();\n @if (v) {\n <div class=\"value-node\" aria-live=\"polite\">\n @if (v.icon) {\n <div class=\"icon\" aria-hidden=\"true\">\n <mat-icon>{{ v.icon }}</mat-icon>\n </div>\n }\n <strong class=\"label\">{{ v.title }}</strong>\n <div class=\"description\">{{ v.description }}</div>\n\n <button\n type=\"button\"\n ymtIconButton\n icon-button-size=\"small\"\n [attr.aria-label]=\"'yuv.object-relationship.add-relationship.target-search.clear' | translate\"\n (click)=\"reset()\"\n >\n <mat-icon>close</mat-icon>\n </button>\n </div>\n }\n</mat-form-field>\n", styles: [":host mat-form-field{width:100%}:host.has-value yuv-autocomplete{display:none}:host .value-node{display:grid;grid-template-columns:auto 1fr auto;grid-template-rows:auto auto;grid-template-areas:\"icon label button\" \"icon description description\";column-gap:var(--ymt-spacing-xs);padding:var(--ymt-spacing-2xs) 0;align-items:center}:host .value-node .icon{grid-area:icon}:host .value-node .label{grid-area:label;min-width:0;overflow-wrap:anywhere}:host .value-node .description{grid-area:description;min-width:0;overflow-wrap:anywhere;font:var(--ymt-font-body-subtle);color:var(--ymt-text-color-subtle)}\n"] }]
|
|
206
206
|
}], ctorParameters: () => [], propDecorators: { supportedRelationships: [{ type: i0.Input, args: [{ isSignal: true, alias: "supportedRelationships", required: true }] }], sourceNode: [{ type: i0.Input, args: [{ isSignal: true, alias: "sourceNode", required: true }] }], targetTypes: [{ type: i0.Input, args: [{ isSignal: true, alias: "targetTypes", required: false }] }], config: [{ type: i0.Input, args: [{ isSignal: true, alias: "config", required: true }] }] } });
|
|
207
207
|
|
|
208
208
|
class AddRelationshipComponent {
|
|
@@ -316,7 +316,7 @@ class AddRelationshipComponent {
|
|
|
316
316
|
this.#dialogRef.close();
|
|
317
317
|
}
|
|
318
318
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AddRelationshipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
319
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: AddRelationshipComponent, isStandalone: true, selector: "yuv-add-relationship", inputs: { object: { classPropertyName: "object", publicName: "object", isSignal: true, isRequired: false, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<yuv-dialog class=\"not-separated\" [headertitle]=\"'yuv.object-relationship.add-relationship.headline' | translate\">\n <main [yuvBusyOverlay]=\"busy()\">\n @let sn = sourceNode();\n <form id=\"addRelationshipForm\" [formGroup]=\"form\" (ngSubmit)=\"submit()\">\n <section class=\"source\">\n @if (sn) {\n <div class=\"source-node ymt-panel\">\n @if (sn.icon) {\n <div class=\"icon\">\n <mat-icon>{{ sn.icon }}</mat-icon>\n </div>\n }\n <strong class=\"label\">{{ sn.title }}</strong>\n <div class=\"description\">{{ sn.description }}</div>\n </div>\n }\n </section>\n\n <section class=\"connect\" aria-hidden=\"true\">\n <div class=\"link\"></div>\n <div class=\"dot\"></div>\n <div class=\"link\"></div>\n </section>\n\n <!-- available relationships -->\n <section class=\"relationships ymt-panel\">\n <h3>{{ 'yuv.object-relationship.action.add-link.search.relation.label' | translate }}</h3>\n\n @let tt = labeledTargetTypes();\n @if (tt.length > 1) {\n <div class=\"target-filter\">\n <span>{{ 'yuv.object-relationship.add-relationship.target-type.filter.label' | translate }}</span>\n\n <mat-chip-listbox\n [multiple]=\"true\"\n [formControl]=\"targetTypeFilterControl\"\n [attr.aria-label]=\"'yuv.object-relationship.add-relationship.target-type.filter.label' | translate\"\n >\n @for (t of tt; track t) {\n <mat-chip-option [value]=\"t.id\">{{ t.label }}</mat-chip-option>\n }\n </mat-chip-listbox>\n </div>\n }\n <!-- list of filtered relationships -->\n <yuv-list (itemSelect)=\"onRelationSelect($event)\">\n @for (r of filteredRelationships(); track r.id) {\n <div class=\"relationship\" yuvListItem>\n {{ r.label }}\n\n <div class=\"targets\">\n @for (t of r.allowedTargetTypes; track t) {\n <span>{{ targetTypeLabels[t] }}</span>\n }\n </div>\n </div>\n }\n </yuv-list>\n </section>\n\n <!-- relationship target select -->\n <section class=\"target\">\n <yuv-relationship-target-search\n class=\"ymt-panel\"\n formControlName=\"targetObject\"\n [sourceNode]=\"object().id\"\n [config]=\"config()\"\n [targetTypes]=\"form.get('relation')!.value?.allowedTargetTypes || []\"\n [supportedRelationships]=\"supportedRelationships()\"\n ></yuv-relationship-target-search>\n </section>\n\n <section class=\"error\">\n @if (form.hasError('invalidRelationTargetCombination') && (form.touched || form.dirty)) {\n <mat-error class=\"error\">{{ 'yuv.object-relationship.add-relationship.error.invalidRelationTargetCombination' | translate }}</mat-error>\n }\n @if (error()) {\n <mat-error class=\"error\">{{ error() }}</mat-error>\n }\n </section>\n </form>\n </main>\n\n <footer>\n <button ymtButton=\"secondary\" type=\"button\" (click)=\"close()\" [disabled]=\"busy()\">\n {{ 'yuv.object-relationship.add-relationship.action.cancel' | translate }}\n </button>\n <button ymtButton=\"primary\" type=\"submit\" form=\"addRelationshipForm\" [disabled]=\"form.invalid || busy()\">\n {{ 'yuv.object-relationship.add-relationship.action.submit' | translate }}\n </button>\n </footer>\n</yuv-dialog>\n", styles: ["@charset \"UTF-8\";:host main form{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto auto auto;grid-template-areas:\"source relationships\" \"connect relationships\" \"target relationships\" \"error error\";background-color:var(--ymt-surface-container-highest);padding:var(--ymt-spacing-m)}@media(width<750px){:host main form{grid-template-columns:1fr;grid-template-areas:\"source\" \"relationships\" \"target\" \"error\"}:host main form .connect{display:none!important}:host main form .relationships{margin:var(--ymt-spacing-xl)}}:host main form .source{grid-area:source;padding:0 var(--ymt-spacing-xl);display:flex;flex-direction:column;align-items:center;justify-content:end}:host main form .source .source-node{min-width:31ch;border:2px solid var(--ymt-outline);border-radius:var(--ymt-corner-s);padding:var(--ymt-spacing-xs);outline:4px solid rgb(from var(--ymt-outline) r g b/.3);display:grid;grid-template-columns:auto 1fr auto;grid-template-rows:auto auto;grid-template-areas:\"icon label button\" \"icon description description\";column-gap:var(--ymt-spacing-xs);align-items:center}:host main form .source .source-node .icon{grid-area:icon}:host main form .source .source-node .label{grid-area:label}:host main form .source .source-node .description{grid-area:description;font:var(--ymt-font-body-subtle);color:var(--ymt-text-color-subtle)}:host main form .connect{grid-area:connect;display:flex;flex-flow:column;align-items:center}:host main form .connect .dot{width:100%;height:2rem;position:relative;flex:0 0 auto}:host main form .connect .dot:after{content:\"\";position:absolute;width:calc(50% - .5rem);height:calc(1rem + 1px);inset-inline-end:0;border-block-end:2px dotted var(--ymt-outline)}:host main form .connect .dot:before{content:\"\";position:absolute;width:1rem;height:1rem;border-radius:50%;margin:auto;inset-inline-end:calc(50% - .5rem);inset-block-start:calc(50% - .5rem);border:2px solid var(--ymt-outline);outline:4px solid rgb(from var(--ymt-outline) r g b/.3)}:host main form .relationships{grid-area:relationships;border-radius:var(--ymt-corner-s);border:1px solid var(--ymt-outline);outline:3px solid rgb(from var(--ymt-outline) r g b/.3);overflow:hidden;max-height:300px;min-width:300px;display:flex;flex-direction:column}:host main form .relationships h3{margin:0;padding:var(--ymt-spacing-m);font:var(--ymt-font-title-small)}:host main form .relationships .target-filter{flex:0 0 auto;font:var(--ymt-font-body-subtle);color:var(--ymt-text-color-subtle);padding:0 var(--ymt-spacing-m);display:flex;gap:var(--ymt-spacing-m);align-items:center;justify-content:space-between;border-block-end:1px solid var(--ymt-outline-variant)}:host main form .relationships yuv-list{flex:1;overflow-y:auto}:host main form .relationships .relationship{display:flex;flex-flow:row nowrap;align-items:center;justify-content:space-between;padding:var(--ymt-spacing-s) var(--ymt-spacing-m);border-block-end:1px solid var(--ymt-outline-variant)}:host main form .relationships .relationship span{font:var(--ymt-font-body-subtle);color:var(--ymt-text-color-subtle);outline:1px solid var(--ymt-text-color-subtle);border-radius:var(--ymt-corner-xs);padding:0 var(--ymt-spacing-2xs);display:inline-flex;align-items:center;gap:var(--ymt-spacing-2xs)}:host main form .relationships .relationship span:before{content:\"\\bb\"}:host main form .target{grid-area:target;padding:0 var(--ymt-spacing-xl)}:host main form .target yuv-relationship-target-search{min-width:31ch;display:block;margin-block-start:2px;padding:var(--ymt-spacing-xs);border-radius:var(--ymt-corner-s);border:1px solid var(--ymt-outline);outline:3px solid rgb(from var(--ymt-outline) r g b/.3)}:host main form .error{grid-area:error}:host main form .error mat-error{margin-block-start:var(--ymt-spacing-m);background-color:var(--ymt-danger-container);color:var(--ymt-on-danger-container);width:100%;padding:var(--ymt-spacing-m);border-radius:var(--ymt-spacing-xs)}:host main .link{width:2px;flex:1;background-color:var(--ymt-outline);margin-block-end:3px;min-height:2em;position:relative}:host main .link:before{content:\"\";position:absolute;transform:rotate(135deg);width:8px;inset-block-end:0;translate:-3px 2px;height:8px;border:4px solid transparent;border-block-start-color:var(--ymt-outline);border-inline-end-color:var(--ymt-outline)}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: DialogComponent, selector: "yuv-dialog", inputs: ["headertitle", "headertitel"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "directive", type: i4.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "ngmodule", type: MatButtonToggleModule }, { kind: "directive", type: YmtButtonDirective, selector: "button[ymtButton], a[ymtButton]", inputs: ["ymtButton", "disabled", "aria-disabled", "disableRipple", "disabledInteractive", "button-size"] }, { kind: "component", type: RelationshipTargetSearchComponent, selector: "yuv-relationship-target-search", inputs: ["supportedRelationships", "sourceNode", "targetTypes", "config"] }, { kind: "directive", type: BusyOverlayDirective, selector: "[yuvBusyOverlay]", inputs: ["yuvBusyOverlay", "yuvBusyOverlayConfig", "yuvBusyError"], outputs: ["yuvBusyErrorDismiss"] }, { kind: "ngmodule", type: YuvListModule }, { kind: "component", type: i4$1.ListComponent, selector: "yuv-list", inputs: ["preventChangeUntil", "multiselect", "selfHandleSelection", "selfHandleClick", "autoSelect", "disableSelection"], outputs: ["itemSelect", "itemFocus"] }, { kind: "directive", type: i4$1.ListItemDirective, selector: "[yuvListItem]", inputs: ["disabled", "active", "selected"] }, { kind: "ngmodule", type: MatChipsModule }, { kind: "component", type: i5.MatChipListbox, selector: "mat-chip-listbox", inputs: ["multiple", "aria-orientation", "selectable", "compareWith", "required", "hideSingleSelectionIndicator", "value"], outputs: ["change"] }, { kind: "component", type: i5.MatChipOption, selector: "mat-basic-chip-option, [mat-basic-chip-option], mat-chip-option, [mat-chip-option]", inputs: ["selectable", "selected"], outputs: ["selectionChange"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
|
|
319
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: AddRelationshipComponent, isStandalone: true, selector: "yuv-add-relationship", inputs: { object: { classPropertyName: "object", publicName: "object", isSignal: true, isRequired: false, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<yuv-dialog class=\"not-separated\" [headertitle]=\"'yuv.object-relationship.add-relationship.headline' | translate\">\n <main [yuvBusyOverlay]=\"busy()\">\n @let sn = sourceNode();\n <form id=\"addRelationshipForm\" [formGroup]=\"form\" (ngSubmit)=\"submit()\">\n <section class=\"source\">\n @if (sn) {\n <div class=\"source-node ymt-panel\">\n @if (sn.icon) {\n <div class=\"icon\">\n <mat-icon>{{ sn.icon }}</mat-icon>\n </div>\n }\n <strong class=\"label\">{{ sn.title }}</strong>\n <div class=\"description\">{{ sn.description }}</div>\n </div>\n }\n </section>\n\n <section class=\"connect\" aria-hidden=\"true\">\n <div class=\"link\"></div>\n <div class=\"dot\"></div>\n <div class=\"link\"></div>\n </section>\n\n <!-- available relationships -->\n <section class=\"relationships ymt-panel\">\n <h3>{{ 'yuv.object-relationship.action.add-link.search.relation.label' | translate }}</h3>\n\n @let tt = labeledTargetTypes();\n @if (tt.length > 1) {\n <div class=\"target-filter\">\n <span>{{ 'yuv.object-relationship.add-relationship.target-type.filter.label' | translate }}</span>\n\n <mat-chip-listbox\n [multiple]=\"true\"\n [formControl]=\"targetTypeFilterControl\"\n [attr.aria-label]=\"'yuv.object-relationship.add-relationship.target-type.filter.label' | translate\"\n >\n @for (t of tt; track t) {\n <mat-chip-option [value]=\"t.id\">{{ t.label }}</mat-chip-option>\n }\n </mat-chip-listbox>\n </div>\n }\n <!-- list of filtered relationships -->\n <yuv-list (itemSelect)=\"onRelationSelect($event)\">\n @for (r of filteredRelationships(); track r.id) {\n <div class=\"relationship\" yuvListItem>\n {{ r.label }}\n\n <div class=\"targets\">\n @for (t of r.allowedTargetTypes; track t) {\n <span>{{ targetTypeLabels[t] }}</span>\n }\n </div>\n </div>\n }\n </yuv-list>\n </section>\n\n <!-- relationship target select -->\n <section class=\"target\">\n <yuv-relationship-target-search\n class=\"ymt-panel\"\n formControlName=\"targetObject\"\n [sourceNode]=\"object().id\"\n [config]=\"config()\"\n [targetTypes]=\"form.get('relation')!.value?.allowedTargetTypes || []\"\n [supportedRelationships]=\"supportedRelationships()\"\n />\n </section>\n\n <section class=\"error\">\n @if (form.hasError('invalidRelationTargetCombination') && (form.touched || form.dirty)) {\n <mat-error class=\"error\">\n {{ 'yuv.object-relationship.add-relationship.error.invalidRelationTargetCombination' | translate }}\n </mat-error>\n }\n @if (error()) {\n <mat-error class=\"error\">{{ error() }}</mat-error>\n }\n </section>\n </form>\n </main>\n\n <footer>\n <button ymtButton=\"secondary\" type=\"button\" (click)=\"close()\" [disabled]=\"busy()\">\n {{ 'yuv.object-relationship.add-relationship.action.cancel' | translate }}\n </button>\n <button ymtButton=\"primary\" type=\"submit\" form=\"addRelationshipForm\" [disabled]=\"form.invalid || busy()\">\n {{ 'yuv.object-relationship.add-relationship.action.submit' | translate }}\n </button>\n </footer>\n</yuv-dialog>\n", styles: ["@charset \"UTF-8\";:host main form{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto auto auto;grid-template-areas:\"source relationships\" \"connect relationships\" \"target relationships\" \"error error\";background-color:var(--ymt-surface-container-highest);padding:var(--ymt-spacing-m)}@media(width<750px){:host main form{grid-template-columns:1fr;grid-template-areas:\"source\" \"relationships\" \"target\" \"error\"}:host main form .connect{display:none!important}:host main form .relationships{margin:var(--ymt-spacing-xl)}}:host main form .source{grid-area:source;padding:0 var(--ymt-spacing-xl);display:flex;flex-direction:column;align-items:center;justify-content:end}:host main form .source .source-node{min-width:31ch;border:2px solid var(--ymt-outline);border-radius:var(--ymt-corner-s);padding:var(--ymt-spacing-xs);outline:4px solid rgb(from var(--ymt-outline) r g b/.3);display:grid;grid-template-columns:auto 1fr auto;grid-template-rows:auto auto;grid-template-areas:\"icon label button\" \"icon description description\";column-gap:var(--ymt-spacing-xs);align-items:center}:host main form .source .source-node .icon{grid-area:icon}:host main form .source .source-node .label{grid-area:label;min-width:0;overflow-wrap:anywhere}:host main form .source .source-node .description{grid-area:description;min-width:0;overflow-wrap:anywhere;font:var(--ymt-font-body-subtle);color:var(--ymt-text-color-subtle)}:host main form .connect{grid-area:connect;display:flex;flex-flow:column;align-items:center}:host main form .connect .dot{width:100%;height:2rem;position:relative;flex:0 0 auto}:host main form .connect .dot:after{content:\"\";position:absolute;width:calc(50% - .5rem);height:calc(1rem + 1px);inset-inline-end:0;border-block-end:2px dotted var(--ymt-outline)}:host main form .connect .dot:before{content:\"\";position:absolute;width:1rem;height:1rem;border-radius:50%;margin:auto;inset-inline-end:calc(50% - .5rem);inset-block-start:calc(50% - .5rem);border:2px solid var(--ymt-outline);outline:4px solid rgb(from var(--ymt-outline) r g b/.3)}:host main form .relationships{grid-area:relationships;border-radius:var(--ymt-corner-s);border:1px solid var(--ymt-outline);outline:3px solid rgb(from var(--ymt-outline) r g b/.3);overflow:hidden;max-height:300px;min-width:300px;display:flex;flex-direction:column}:host main form .relationships h3{margin:0;padding:var(--ymt-spacing-m);font:var(--ymt-font-title-small)}:host main form .relationships .target-filter{flex:0 0 auto;font:var(--ymt-font-body-subtle);color:var(--ymt-text-color-subtle);padding:0 var(--ymt-spacing-m);display:flex;gap:var(--ymt-spacing-m);align-items:center;justify-content:space-between;border-block-end:1px solid var(--ymt-outline-variant)}:host main form .relationships yuv-list{flex:1;overflow-y:auto}:host main form .relationships .relationship{display:flex;flex-flow:row nowrap;align-items:center;justify-content:space-between;padding:var(--ymt-spacing-s) var(--ymt-spacing-m);border-block-end:1px solid var(--ymt-outline-variant)}:host main form .relationships .relationship span{font:var(--ymt-font-body-subtle);color:var(--ymt-text-color-subtle);outline:1px solid var(--ymt-text-color-subtle);border-radius:var(--ymt-corner-xs);padding:0 var(--ymt-spacing-2xs);display:inline-flex;align-items:center;gap:var(--ymt-spacing-2xs)}:host main form .relationships .relationship span:before{content:\"\\bb\"}:host main form .target{grid-area:target;padding:0 var(--ymt-spacing-xl)}:host main form .target yuv-relationship-target-search{min-width:31ch;display:block;margin-block-start:2px;padding:var(--ymt-spacing-xs);border-radius:var(--ymt-corner-s);border:1px solid var(--ymt-outline);outline:3px solid rgb(from var(--ymt-outline) r g b/.3)}:host main form .error{grid-area:error}:host main form .error mat-error{margin-block-start:var(--ymt-spacing-m);background-color:var(--ymt-danger-container);color:var(--ymt-on-danger-container);width:100%;padding:var(--ymt-spacing-m);border-radius:var(--ymt-spacing-xs)}:host main .link{width:2px;flex:1;background-color:var(--ymt-outline);margin-block-end:3px;min-height:2em;position:relative}:host main .link:before{content:\"\";position:absolute;transform:rotate(135deg);width:8px;inset-block-end:0;translate:-3px 2px;height:8px;border:4px solid transparent;border-block-start-color:var(--ymt-outline);border-inline-end-color:var(--ymt-outline)}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: DialogComponent, selector: "yuv-dialog", inputs: ["headertitle", "headertitel"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "directive", type: i4.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "ngmodule", type: MatButtonToggleModule }, { kind: "directive", type: YmtButtonDirective, selector: "button[ymtButton], a[ymtButton]", inputs: ["ymtButton", "disabled", "aria-disabled", "disableRipple", "disabledInteractive", "button-size"] }, { kind: "component", type: RelationshipTargetSearchComponent, selector: "yuv-relationship-target-search", inputs: ["supportedRelationships", "sourceNode", "targetTypes", "config"] }, { kind: "directive", type: BusyOverlayDirective, selector: "[yuvBusyOverlay]", inputs: ["yuvBusyOverlay", "yuvBusyOverlayConfig", "yuvBusyError"], outputs: ["yuvBusyErrorDismiss"] }, { kind: "ngmodule", type: YuvListModule }, { kind: "component", type: i4$1.ListComponent, selector: "yuv-list", inputs: ["preventChangeUntil", "multiselect", "selfHandleSelection", "selfHandleClick", "autoSelect", "disableSelection"], outputs: ["itemSelect", "itemFocus"] }, { kind: "directive", type: i4$1.ListItemDirective, selector: "[yuvListItem]", inputs: ["disabled", "active", "selected"] }, { kind: "ngmodule", type: MatChipsModule }, { kind: "component", type: i5.MatChipListbox, selector: "mat-chip-listbox", inputs: ["multiple", "aria-orientation", "selectable", "compareWith", "required", "hideSingleSelectionIndicator", "value"], outputs: ["change"] }, { kind: "component", type: i5.MatChipOption, selector: "mat-basic-chip-option, [mat-basic-chip-option], mat-chip-option, [mat-chip-option]", inputs: ["selectable", "selected"], outputs: ["selectionChange"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
|
|
320
320
|
}
|
|
321
321
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AddRelationshipComponent, decorators: [{
|
|
322
322
|
type: Component,
|
|
@@ -334,7 +334,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
334
334
|
BusyOverlayDirective,
|
|
335
335
|
YuvListModule,
|
|
336
336
|
MatChipsModule
|
|
337
|
-
], template: "<yuv-dialog class=\"not-separated\" [headertitle]=\"'yuv.object-relationship.add-relationship.headline' | translate\">\n <main [yuvBusyOverlay]=\"busy()\">\n @let sn = sourceNode();\n <form id=\"addRelationshipForm\" [formGroup]=\"form\" (ngSubmit)=\"submit()\">\n <section class=\"source\">\n @if (sn) {\n <div class=\"source-node ymt-panel\">\n @if (sn.icon) {\n <div class=\"icon\">\n <mat-icon>{{ sn.icon }}</mat-icon>\n </div>\n }\n <strong class=\"label\">{{ sn.title }}</strong>\n <div class=\"description\">{{ sn.description }}</div>\n </div>\n }\n </section>\n\n <section class=\"connect\" aria-hidden=\"true\">\n <div class=\"link\"></div>\n <div class=\"dot\"></div>\n <div class=\"link\"></div>\n </section>\n\n <!-- available relationships -->\n <section class=\"relationships ymt-panel\">\n <h3>{{ 'yuv.object-relationship.action.add-link.search.relation.label' | translate }}</h3>\n\n @let tt = labeledTargetTypes();\n @if (tt.length > 1) {\n <div class=\"target-filter\">\n <span>{{ 'yuv.object-relationship.add-relationship.target-type.filter.label' | translate }}</span>\n\n <mat-chip-listbox\n [multiple]=\"true\"\n [formControl]=\"targetTypeFilterControl\"\n [attr.aria-label]=\"'yuv.object-relationship.add-relationship.target-type.filter.label' | translate\"\n >\n @for (t of tt; track t) {\n <mat-chip-option [value]=\"t.id\">{{ t.label }}</mat-chip-option>\n }\n </mat-chip-listbox>\n </div>\n }\n <!-- list of filtered relationships -->\n <yuv-list (itemSelect)=\"onRelationSelect($event)\">\n @for (r of filteredRelationships(); track r.id) {\n <div class=\"relationship\" yuvListItem>\n {{ r.label }}\n\n <div class=\"targets\">\n @for (t of r.allowedTargetTypes; track t) {\n <span>{{ targetTypeLabels[t] }}</span>\n }\n </div>\n </div>\n }\n </yuv-list>\n </section>\n\n <!-- relationship target select -->\n <section class=\"target\">\n <yuv-relationship-target-search\n class=\"ymt-panel\"\n formControlName=\"targetObject\"\n [sourceNode]=\"object().id\"\n [config]=\"config()\"\n [targetTypes]=\"form.get('relation')!.value?.allowedTargetTypes || []\"\n [supportedRelationships]=\"supportedRelationships()\"\n
|
|
337
|
+
], template: "<yuv-dialog class=\"not-separated\" [headertitle]=\"'yuv.object-relationship.add-relationship.headline' | translate\">\n <main [yuvBusyOverlay]=\"busy()\">\n @let sn = sourceNode();\n <form id=\"addRelationshipForm\" [formGroup]=\"form\" (ngSubmit)=\"submit()\">\n <section class=\"source\">\n @if (sn) {\n <div class=\"source-node ymt-panel\">\n @if (sn.icon) {\n <div class=\"icon\">\n <mat-icon>{{ sn.icon }}</mat-icon>\n </div>\n }\n <strong class=\"label\">{{ sn.title }}</strong>\n <div class=\"description\">{{ sn.description }}</div>\n </div>\n }\n </section>\n\n <section class=\"connect\" aria-hidden=\"true\">\n <div class=\"link\"></div>\n <div class=\"dot\"></div>\n <div class=\"link\"></div>\n </section>\n\n <!-- available relationships -->\n <section class=\"relationships ymt-panel\">\n <h3>{{ 'yuv.object-relationship.action.add-link.search.relation.label' | translate }}</h3>\n\n @let tt = labeledTargetTypes();\n @if (tt.length > 1) {\n <div class=\"target-filter\">\n <span>{{ 'yuv.object-relationship.add-relationship.target-type.filter.label' | translate }}</span>\n\n <mat-chip-listbox\n [multiple]=\"true\"\n [formControl]=\"targetTypeFilterControl\"\n [attr.aria-label]=\"'yuv.object-relationship.add-relationship.target-type.filter.label' | translate\"\n >\n @for (t of tt; track t) {\n <mat-chip-option [value]=\"t.id\">{{ t.label }}</mat-chip-option>\n }\n </mat-chip-listbox>\n </div>\n }\n <!-- list of filtered relationships -->\n <yuv-list (itemSelect)=\"onRelationSelect($event)\">\n @for (r of filteredRelationships(); track r.id) {\n <div class=\"relationship\" yuvListItem>\n {{ r.label }}\n\n <div class=\"targets\">\n @for (t of r.allowedTargetTypes; track t) {\n <span>{{ targetTypeLabels[t] }}</span>\n }\n </div>\n </div>\n }\n </yuv-list>\n </section>\n\n <!-- relationship target select -->\n <section class=\"target\">\n <yuv-relationship-target-search\n class=\"ymt-panel\"\n formControlName=\"targetObject\"\n [sourceNode]=\"object().id\"\n [config]=\"config()\"\n [targetTypes]=\"form.get('relation')!.value?.allowedTargetTypes || []\"\n [supportedRelationships]=\"supportedRelationships()\"\n />\n </section>\n\n <section class=\"error\">\n @if (form.hasError('invalidRelationTargetCombination') && (form.touched || form.dirty)) {\n <mat-error class=\"error\">\n {{ 'yuv.object-relationship.add-relationship.error.invalidRelationTargetCombination' | translate }}\n </mat-error>\n }\n @if (error()) {\n <mat-error class=\"error\">{{ error() }}</mat-error>\n }\n </section>\n </form>\n </main>\n\n <footer>\n <button ymtButton=\"secondary\" type=\"button\" (click)=\"close()\" [disabled]=\"busy()\">\n {{ 'yuv.object-relationship.add-relationship.action.cancel' | translate }}\n </button>\n <button ymtButton=\"primary\" type=\"submit\" form=\"addRelationshipForm\" [disabled]=\"form.invalid || busy()\">\n {{ 'yuv.object-relationship.add-relationship.action.submit' | translate }}\n </button>\n </footer>\n</yuv-dialog>\n", styles: ["@charset \"UTF-8\";:host main form{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto auto auto;grid-template-areas:\"source relationships\" \"connect relationships\" \"target relationships\" \"error error\";background-color:var(--ymt-surface-container-highest);padding:var(--ymt-spacing-m)}@media(width<750px){:host main form{grid-template-columns:1fr;grid-template-areas:\"source\" \"relationships\" \"target\" \"error\"}:host main form .connect{display:none!important}:host main form .relationships{margin:var(--ymt-spacing-xl)}}:host main form .source{grid-area:source;padding:0 var(--ymt-spacing-xl);display:flex;flex-direction:column;align-items:center;justify-content:end}:host main form .source .source-node{min-width:31ch;border:2px solid var(--ymt-outline);border-radius:var(--ymt-corner-s);padding:var(--ymt-spacing-xs);outline:4px solid rgb(from var(--ymt-outline) r g b/.3);display:grid;grid-template-columns:auto 1fr auto;grid-template-rows:auto auto;grid-template-areas:\"icon label button\" \"icon description description\";column-gap:var(--ymt-spacing-xs);align-items:center}:host main form .source .source-node .icon{grid-area:icon}:host main form .source .source-node .label{grid-area:label;min-width:0;overflow-wrap:anywhere}:host main form .source .source-node .description{grid-area:description;min-width:0;overflow-wrap:anywhere;font:var(--ymt-font-body-subtle);color:var(--ymt-text-color-subtle)}:host main form .connect{grid-area:connect;display:flex;flex-flow:column;align-items:center}:host main form .connect .dot{width:100%;height:2rem;position:relative;flex:0 0 auto}:host main form .connect .dot:after{content:\"\";position:absolute;width:calc(50% - .5rem);height:calc(1rem + 1px);inset-inline-end:0;border-block-end:2px dotted var(--ymt-outline)}:host main form .connect .dot:before{content:\"\";position:absolute;width:1rem;height:1rem;border-radius:50%;margin:auto;inset-inline-end:calc(50% - .5rem);inset-block-start:calc(50% - .5rem);border:2px solid var(--ymt-outline);outline:4px solid rgb(from var(--ymt-outline) r g b/.3)}:host main form .relationships{grid-area:relationships;border-radius:var(--ymt-corner-s);border:1px solid var(--ymt-outline);outline:3px solid rgb(from var(--ymt-outline) r g b/.3);overflow:hidden;max-height:300px;min-width:300px;display:flex;flex-direction:column}:host main form .relationships h3{margin:0;padding:var(--ymt-spacing-m);font:var(--ymt-font-title-small)}:host main form .relationships .target-filter{flex:0 0 auto;font:var(--ymt-font-body-subtle);color:var(--ymt-text-color-subtle);padding:0 var(--ymt-spacing-m);display:flex;gap:var(--ymt-spacing-m);align-items:center;justify-content:space-between;border-block-end:1px solid var(--ymt-outline-variant)}:host main form .relationships yuv-list{flex:1;overflow-y:auto}:host main form .relationships .relationship{display:flex;flex-flow:row nowrap;align-items:center;justify-content:space-between;padding:var(--ymt-spacing-s) var(--ymt-spacing-m);border-block-end:1px solid var(--ymt-outline-variant)}:host main form .relationships .relationship span{font:var(--ymt-font-body-subtle);color:var(--ymt-text-color-subtle);outline:1px solid var(--ymt-text-color-subtle);border-radius:var(--ymt-corner-xs);padding:0 var(--ymt-spacing-2xs);display:inline-flex;align-items:center;gap:var(--ymt-spacing-2xs)}:host main form .relationships .relationship span:before{content:\"\\bb\"}:host main form .target{grid-area:target;padding:0 var(--ymt-spacing-xl)}:host main form .target yuv-relationship-target-search{min-width:31ch;display:block;margin-block-start:2px;padding:var(--ymt-spacing-xs);border-radius:var(--ymt-corner-s);border:1px solid var(--ymt-outline);outline:3px solid rgb(from var(--ymt-outline) r g b/.3)}:host main form .error{grid-area:error}:host main form .error mat-error{margin-block-start:var(--ymt-spacing-m);background-color:var(--ymt-danger-container);color:var(--ymt-on-danger-container);width:100%;padding:var(--ymt-spacing-m);border-radius:var(--ymt-spacing-xs)}:host main .link{width:2px;flex:1;background-color:var(--ymt-outline);margin-block-end:3px;min-height:2em;position:relative}:host main .link:before{content:\"\";position:absolute;transform:rotate(135deg);width:8px;inset-block-end:0;translate:-3px 2px;height:8px;border:4px solid transparent;border-block-start-color:var(--ymt-outline);border-inline-end-color:var(--ymt-outline)}\n"] }]
|
|
338
338
|
}], propDecorators: { object: [{ type: i0.Input, args: [{ isSignal: true, alias: "object", required: false }] }], config: [{ type: i0.Input, args: [{ isSignal: true, alias: "config", required: false }] }] } });
|
|
339
339
|
|
|
340
340
|
/**
|