@yuuvis/client-framework 2.13.0 → 2.15.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/common/lib/common.module.d.ts +4 -2
- package/common/lib/components/index.d.ts +1 -0
- package/common/lib/components/scroll-buttons/scroll-buttons.component.d.ts +25 -0
- package/common/lib/directives/index.d.ts +1 -0
- package/common/lib/directives/scroll-buttons.directive.d.ts +20 -0
- package/fesm2022/yuuvis-client-framework-autocomplete.mjs +13 -4
- package/fesm2022/yuuvis-client-framework-autocomplete.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-common.mjs +249 -7
- package/fesm2022/yuuvis-client-framework-common.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-forms.mjs +21 -9
- package/fesm2022/yuuvis-client-framework-forms.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-object-flavor.mjs +3 -1
- package/fesm2022/yuuvis-client-framework-object-flavor.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-object-preview.mjs +7 -3
- package/fesm2022/yuuvis-client-framework-object-preview.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-object-relationship.mjs +1 -1
- package/fesm2022/yuuvis-client-framework-object-relationship.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-popout.mjs +9 -3
- package/fesm2022/yuuvis-client-framework-popout.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-split-view.mjs +107 -8
- package/fesm2022/yuuvis-client-framework-split-view.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-upload-progress.mjs +42 -6
- package/fesm2022/yuuvis-client-framework-upload-progress.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-widget-grid.mjs +3 -0
- package/fesm2022/yuuvis-client-framework-widget-grid.mjs.map +1 -1
- package/lib/assets/i18n/de.json +2 -0
- package/lib/assets/i18n/en.json +2 -0
- package/package.json +5 -5
- package/popout/index.d.ts +1 -0
- package/popout/lib/fullscreen.directive.d.ts +4 -0
- package/popout/lib/popout.module.d.ts +2 -1
- package/split-view/lib/split-view.component.d.ts +91 -9
- package/upload-progress/lib/upload-progress/upload-progress.component.d.ts +24 -3
- package/widget-grid/lib/widget-grid-workspaces/widget-grid-workspaces.interface.d.ts +1 -1
- package/widget-grid/lib/widget-grid.component.d.ts +1 -1
- package/widget-grid/lib/widget-grid.interface.d.ts +2 -1
|
@@ -22,7 +22,7 @@ import { RendererDirective } from '@yuuvis/client-framework/renderer';
|
|
|
22
22
|
import { YmtButtonDirective, YmtIconButtonDirective } from '@yuuvis/material';
|
|
23
23
|
import { map, timer, take, of, forkJoin } from 'rxjs';
|
|
24
24
|
import { MatFormFieldModule, MatFormFieldControl } from '@angular/material/form-field';
|
|
25
|
-
import { FormTranslateService, DialogComponent, AbstractMatFormField, injectNgControl } from '@yuuvis/client-framework/common';
|
|
25
|
+
import { FormTranslateService, DialogComponent, AbstractMatFormField, injectNgControl, ScrollButtonsComponent } from '@yuuvis/client-framework/common';
|
|
26
26
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
27
27
|
import { MatDatepickerModule } from '@angular/material/datepicker';
|
|
28
28
|
import { MatInputModule } from '@angular/material/input';
|
|
@@ -1334,7 +1334,9 @@ class OrganizationSetComponent extends AbstractMatFormField {
|
|
|
1334
1334
|
const types = this.types();
|
|
1335
1335
|
if (c?.length) {
|
|
1336
1336
|
const classifications = this.#system.getClassifications(c);
|
|
1337
|
-
return classifications.has(Classification.STRING_ORGANIZATION_SET)
|
|
1337
|
+
return classifications.has(Classification.STRING_ORGANIZATION_SET)
|
|
1338
|
+
? classifications.get(Classification.STRING_ORGANIZATION_SET).options
|
|
1339
|
+
: [];
|
|
1338
1340
|
}
|
|
1339
1341
|
else if (types) {
|
|
1340
1342
|
return types;
|
|
@@ -1354,7 +1356,11 @@ class OrganizationSetComponent extends AbstractMatFormField {
|
|
|
1354
1356
|
#dRef;
|
|
1355
1357
|
#targetTypes;
|
|
1356
1358
|
writeValue(value) {
|
|
1357
|
-
const val = Array.isArray(value)
|
|
1359
|
+
const val = Array.isArray(value)
|
|
1360
|
+
? value.map((v) => (typeof v === 'string' ? JSON.parse(v) : v))
|
|
1361
|
+
: value
|
|
1362
|
+
? [JSON.parse(value)]
|
|
1363
|
+
: [];
|
|
1358
1364
|
this.innerValue = val;
|
|
1359
1365
|
this.value = val.map((v) => JSON.stringify(v));
|
|
1360
1366
|
if (!this.multiselect) {
|
|
@@ -1391,8 +1397,6 @@ class OrganizationSetComponent extends AbstractMatFormField {
|
|
|
1391
1397
|
}
|
|
1392
1398
|
autocompleteFn(query) {
|
|
1393
1399
|
if (query.length >= this.autocompleteMinLength()) {
|
|
1394
|
-
console.log(this.#targetTypes());
|
|
1395
|
-
console.log(query);
|
|
1396
1400
|
this.#idmService.queryOrganizationEntity(query, this.#targetTypes()).subscribe({
|
|
1397
1401
|
next: (entries) => {
|
|
1398
1402
|
this.autocompleteRes = entries
|
|
@@ -1436,7 +1440,15 @@ class OrganizationSetComponent extends AbstractMatFormField {
|
|
|
1436
1440
|
}
|
|
1437
1441
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: OrganizationSetComponent, decorators: [{
|
|
1438
1442
|
type: Component,
|
|
1439
|
-
args: [{ selector: 'yuv-organization-set', imports: [
|
|
1443
|
+
args: [{ selector: 'yuv-organization-set', imports: [
|
|
1444
|
+
CommonModule,
|
|
1445
|
+
FormsModule,
|
|
1446
|
+
YuvAutocompleteModule,
|
|
1447
|
+
MatTooltipModule,
|
|
1448
|
+
MatIconModule,
|
|
1449
|
+
ReactiveFormsModule,
|
|
1450
|
+
TranslateModule$1
|
|
1451
|
+
], providers: [{ provide: MatFormFieldControl, useExisting: OrganizationSetComponent }], template: "<yuv-autocomplete\n [busy]=\"busy()\"\n [formControl]=\"acFormControl\"\n #autocomplete\n [placeholder]=\"placeholder\"\n [disabled]=\"readonly()\"\n [autocompleteValues]=\"autocompleteRes\"\n [forceSelection]=\"true\"\n (autocompleteFnc)=\"autocompleteFn($event)\"\n [multiple]=\"true\"\n [maxItems]=\"multiselect() ? -1 : 1\"\n>\n <!-- template for item inside the dropdown -->\n <ng-template #optionTemplate let-item>\n <span class=\"chip\">{{ item.value.title }}</span>\n </ng-template>\n\n <!-- template for chip -->\n <ng-template #chipTemplate let-item>\n <span class=\"chip\">\n {{ item.value.title || '...' }}\n </span>\n </ng-template>\n</yuv-autocomplete>\n\n<mat-icon class=\"ymt-icon--size-s\" [matTooltip]=\"'yuv.form.element.organization-set.classify.icon.title' | translate\">\n {{ multiselect() ? 'group' : 'person' }}\n</mat-icon>\n", styles: [":host{display:flex;align-items:center}:host yuv-autocomplete{flex:1}:host mat-icon{color:var(--ymt-text-color-subtle)}\n"] }]
|
|
1440
1452
|
}] });
|
|
1441
1453
|
|
|
1442
1454
|
class DateRangePickerComponent {
|
|
@@ -1986,13 +1998,13 @@ class StringComponent extends AbstractMatFormField {
|
|
|
1986
1998
|
super.onNgOnDestroy();
|
|
1987
1999
|
}
|
|
1988
2000
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: StringComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
1989
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.20", type: StringComponent, isStandalone: true, selector: "yuv-string", inputs: { multiselect: "multiselect", rows: "rows", readonly: "readonly", autofocus: "autofocus", classifications: "classifications", situation: "situation", regex: "regex", minLength: "minLength", maxLength: "maxLength" }, host: { properties: { "class.readonly": "readonly" } }, providers: [{ provide: MatFormFieldControl, useExisting: StringComponent }], usesInheritance: true, ngImport: i0, template: "@if ((!rows || rows <= 1) && !multiselect) {\n <input matInput type=\"text\" (blur)=\"onBlur()\" [readonly]=\"readonly\" [formControl]=\"fc\" />\n} @else if ((!rows || rows <= 1) && multiselect) {\n <!-- single line input with multiselect-->\n <mat-chip-grid #chipGrid [formControl]=\"fc\">\n
|
|
2001
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.20", type: StringComponent, isStandalone: true, selector: "yuv-string", inputs: { multiselect: "multiselect", rows: "rows", readonly: "readonly", autofocus: "autofocus", classifications: "classifications", situation: "situation", regex: "regex", minLength: "minLength", maxLength: "maxLength" }, host: { properties: { "class.readonly": "readonly" } }, providers: [{ provide: MatFormFieldControl, useExisting: StringComponent }], usesInheritance: true, ngImport: i0, template: "@if ((!rows || rows <= 1) && !multiselect) {\n <input matInput type=\"text\" (blur)=\"onBlur()\" [readonly]=\"readonly\" [formControl]=\"fc\" />\n} @else if ((!rows || rows <= 1) && multiselect) {\n <!-- single line input with multiselect-->\n <yuv-scroll-buttons>\n <mat-chip-grid #chipGrid [formControl]=\"fc\">\n @for (v of value; track v) {\n <mat-chip-row (removed)=\"chipsRemove(v)\" [editable]=\"true\" (edited)=\"chipsEdit(v, $event)\">\n {{ v }}\n <button matChipRemove>\n <mat-icon>cancel</mat-icon>\n </button>\n </mat-chip-row>\n }\n <input\n [matChipInputFor]=\"chipGrid\"\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\n [matChipInputAddOnBlur]=\"true\"\n (matChipInputTokenEnd)=\"chipsAdd($event)\"\n />\n </mat-chip-grid>\n </yuv-scroll-buttons>\n} @else if (rows && rows > 1) {\n <!-- multi line text inputs -->\n <textarea matInput class=\"input-textarea\" (blur)=\"onBlur()\" [rows]=\"rows\" [readonly]=\"readonly\" [formControl]=\"fc\"></textarea>\n}\n\n@if (classify) {\n <div class=\"classify\">\n @if (value && !validationErrors.length && (classify.hrefPrefix !== '' || !multiselect || value.length <= 1)) {\n <a href=\"{{ classify.hrefPrefix + formatedValue }}\">\n <mat-icon>{{ classify.icon }}</mat-icon>\n </a>\n } @else {\n <mat-icon>{{ classify.icon }}</mat-icon>\n }\n </div>\n}\n", styles: [":host{display:flex;flex-flow:row nowrap;flex:1;align-items:center}:host:has(mat-chip-grid){min-width:0}:host mat-chip-grid{flex:1}:host textarea.input-textarea{width:100%;resize:none;background-color:transparent;border:0;outline:0}:host input{display:flex;flex-wrap:wrap;align-items:center;width:100%;border:0;outline:0;background:transparent}:host.readonly .classify{pointer-events:all}:host .classify a{color:var(--ymt-text-color-subtle);text-decoration:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatChipsModule }, { kind: "component", type: i1$3.MatChipGrid, selector: "mat-chip-grid", inputs: ["disabled", "placeholder", "required", "value", "errorStateMatcher"], outputs: ["change", "valueChange"] }, { kind: "directive", type: i1$3.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: i1$3.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i1$3.MatChipRow, selector: "mat-chip-row, [mat-chip-row], mat-basic-chip-row, [mat-basic-chip-row]", inputs: ["editable"], outputs: ["edited"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FormsModule }, { kind: "component", type: ScrollButtonsComponent, selector: "yuv-scroll-buttons", inputs: ["scrollAmount"] }] }); }
|
|
1990
2002
|
}
|
|
1991
2003
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: StringComponent, decorators: [{
|
|
1992
2004
|
type: Component,
|
|
1993
|
-
args: [{ selector: 'yuv-string', standalone: true, imports: [CommonModule, MatChipsModule, MatIconModule, ReactiveFormsModule, FormsModule], providers: [{ provide: MatFormFieldControl, useExisting: StringComponent }], host: {
|
|
2005
|
+
args: [{ selector: 'yuv-string', standalone: true, imports: [CommonModule, MatChipsModule, MatIconModule, ReactiveFormsModule, FormsModule, ScrollButtonsComponent], providers: [{ provide: MatFormFieldControl, useExisting: StringComponent }], host: {
|
|
1994
2006
|
'[class.readonly]': 'readonly'
|
|
1995
|
-
}, template: "@if ((!rows || rows <= 1) && !multiselect) {\n <input matInput type=\"text\" (blur)=\"onBlur()\" [readonly]=\"readonly\" [formControl]=\"fc\" />\n} @else if ((!rows || rows <= 1) && multiselect) {\n <!-- single line input with multiselect-->\n <mat-chip-grid #chipGrid [formControl]=\"fc\">\n
|
|
2007
|
+
}, template: "@if ((!rows || rows <= 1) && !multiselect) {\n <input matInput type=\"text\" (blur)=\"onBlur()\" [readonly]=\"readonly\" [formControl]=\"fc\" />\n} @else if ((!rows || rows <= 1) && multiselect) {\n <!-- single line input with multiselect-->\n <yuv-scroll-buttons>\n <mat-chip-grid #chipGrid [formControl]=\"fc\">\n @for (v of value; track v) {\n <mat-chip-row (removed)=\"chipsRemove(v)\" [editable]=\"true\" (edited)=\"chipsEdit(v, $event)\">\n {{ v }}\n <button matChipRemove>\n <mat-icon>cancel</mat-icon>\n </button>\n </mat-chip-row>\n }\n <input\n [matChipInputFor]=\"chipGrid\"\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\n [matChipInputAddOnBlur]=\"true\"\n (matChipInputTokenEnd)=\"chipsAdd($event)\"\n />\n </mat-chip-grid>\n </yuv-scroll-buttons>\n} @else if (rows && rows > 1) {\n <!-- multi line text inputs -->\n <textarea matInput class=\"input-textarea\" (blur)=\"onBlur()\" [rows]=\"rows\" [readonly]=\"readonly\" [formControl]=\"fc\"></textarea>\n}\n\n@if (classify) {\n <div class=\"classify\">\n @if (value && !validationErrors.length && (classify.hrefPrefix !== '' || !multiselect || value.length <= 1)) {\n <a href=\"{{ classify.hrefPrefix + formatedValue }}\">\n <mat-icon>{{ classify.icon }}</mat-icon>\n </a>\n } @else {\n <mat-icon>{{ classify.icon }}</mat-icon>\n }\n </div>\n}\n", styles: [":host{display:flex;flex-flow:row nowrap;flex:1;align-items:center}:host:has(mat-chip-grid){min-width:0}:host mat-chip-grid{flex:1}:host textarea.input-textarea{width:100%;resize:none;background-color:transparent;border:0;outline:0}:host input{display:flex;flex-wrap:wrap;align-items:center;width:100%;border:0;outline:0;background:transparent}:host.readonly .classify{pointer-events:all}:host .classify a{color:var(--ymt-text-color-subtle);text-decoration:none}\n"] }]
|
|
1996
2008
|
}], propDecorators: { multiselect: [{
|
|
1997
2009
|
type: Input
|
|
1998
2010
|
}], rows: [{
|