@yuuvis/app-drive 2.1.21 → 2.1.23

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.
@@ -9,7 +9,7 @@ const OC_DEFAULTS = {
9
9
  'io.yuuvis.app.drive.file': {
10
10
  actions: [{ id: 'yuv.base.download' }, { id: 'yuv.base.delete' }],
11
11
  title: { label: 'Filename', propertyName: FS_PROPERTIES.name },
12
- description: { label: 'Size', propertyName: ContentStreamField.LENGTH },
12
+ description: { label: 'File size', propertyName: ContentStreamField.LENGTH },
13
13
  aside: { label: 'Modified', propertyName: BaseObjectTypeField.MODIFICATION_DATE },
14
14
  icon: { svg: APP_TYPES['file'].icon },
15
15
  badges: [],
@@ -1 +1 @@
1
- {"version":3,"file":"yuuvis-app-drive-extensions.mjs","sources":["../../../../../libs/apps/drive/extensions/src/lib/object-config.defaults.ts","../../../../../libs/apps/drive/extensions/src/lib/extensions.service.ts","../../../../../libs/apps/drive/extensions/src/yuuvis-app-drive-extensions.ts"],"sourcesContent":["import { APP_ID, APP_TYPES, FS_PROPERTIES } from '@yuuvis/app-drive';\nimport { BaseObjectTypeField, ContentStreamField, ObjectConfigRecord } from '@yuuvis/client-core';\n\nexport const OC_DEFAULTS: ObjectConfigRecord = {\n 'io.yuuvis.app.drive.file': {\n actions: [{ id: 'yuv.base.download' }, { id: 'yuv.base.delete' }],\n title: { label: 'Filename', propertyName: FS_PROPERTIES.name },\n description: { label: 'Size', propertyName: ContentStreamField.LENGTH },\n aside: { label: 'Modified', propertyName: BaseObjectTypeField.MODIFICATION_DATE },\n icon: { svg: APP_TYPES['file'].icon! },\n badges: [],\n\n objectTypeId: `${APP_ID}.file`\n },\n 'io.yuuvis.app.drive.folder': {\n icon: { svg: APP_TYPES['folder'].icon! },\n objectTypeId: `${APP_ID}.folder`,\n title: { label: 'Name', propertyName: FS_PROPERTIES.name }\n } \n};\n","import { Injectable, inject } from '@angular/core';\nimport { APP_ID } from '@yuuvis/app-drive';\nimport { ObjectConfigService } from '@yuuvis/client-core';\nimport { ActionsService } from '@yuuvis/client-framework/actions';\nimport { ManageFlavorsAction } from '@yuuvis/client-shell';\nimport { ClientShellExtension } from '@yuuvis/client-shell-core';\nimport { OC_DEFAULTS } from './object-config.defaults';\n\n@Injectable()\nexport class AppDriveExtension implements ClientShellExtension {\n #actionsService = inject(ActionsService);\n #objectConfig = inject(ObjectConfigService);\n\n init(): Promise<any> {\n // TODO: Dummy setting for drive app to integrate into shell settings page\n // this.#shell.registerAppSettings(APP_SCHEMA.id, {\n // appID: APP_SCHEMA.id,\n // label: APP_SCHEMA.name,\n // properties: [\n // {\n // label: 'Max items',\n // name: 'maxItems',\n // type: 'number',\n // value: 10\n // }\n // ]\n // });\n\n // register a default object config for the types handled by the drive app\n this.#objectConfig.registerDefaults(OC_DEFAULTS, APP_ID);\n this.#actionsService.registerActions([\n {\n id: 'yuv.base.manage-flavor',\n action: ManageFlavorsAction\n }\n ]);\n return Promise.resolve();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;AAGO,MAAM,WAAW,GAAuB;AAC7C,IAAA,0BAA0B,EAAE;AAC1B,QAAA,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,mBAAmB,EAAE,EAAE,EAAE,EAAE,EAAE,iBAAiB,EAAE,CAAC;QACjE,KAAK,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,CAAC,IAAI,EAAE;QAC9D,WAAW,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,kBAAkB,CAAC,MAAM,EAAE;QACvE,KAAK,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,mBAAmB,CAAC,iBAAiB,EAAE;QACjF,IAAI,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,IAAK,EAAE;AACtC,QAAA,MAAM,EAAE,EAAE;QAEV,YAAY,EAAE,CAAG,EAAA,MAAM,CAAO,KAAA;AAC/B,KAAA;AACD,IAAA,4BAA4B,EAAE;QAC5B,IAAI,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC,IAAK,EAAE;QACxC,YAAY,EAAE,CAAG,EAAA,MAAM,CAAS,OAAA,CAAA;QAChC,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,aAAa,CAAC,IAAI;AACzD;CACF;;MCVY,iBAAiB,CAAA;AAC5B,IAAA,eAAe,GAAG,MAAM,CAAC,cAAc,CAAC;AACxC,IAAA,aAAa,GAAG,MAAM,CAAC,mBAAmB,CAAC;IAE3C,IAAI,GAAA;;;;;;;;;;;;;;;QAgBF,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,WAAW,EAAE,MAAM,CAAC;AACxD,QAAA,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC;AACnC,YAAA;AACE,gBAAA,EAAE,EAAE,wBAAwB;AAC5B,gBAAA,MAAM,EAAE;AACT;AACF,SAAA,CAAC;AACF,QAAA,OAAO,OAAO,CAAC,OAAO,EAAE;;+GA3Bf,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHAAjB,iBAAiB,EAAA,CAAA,CAAA;;4FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAD7B;;;ACRD;;AAEG;;;;"}
1
+ {"version":3,"file":"yuuvis-app-drive-extensions.mjs","sources":["../../../../../libs/apps/drive/extensions/src/lib/object-config.defaults.ts","../../../../../libs/apps/drive/extensions/src/lib/extensions.service.ts","../../../../../libs/apps/drive/extensions/src/yuuvis-app-drive-extensions.ts"],"sourcesContent":["import { APP_ID, APP_TYPES, FS_PROPERTIES } from '@yuuvis/app-drive';\nimport { BaseObjectTypeField, ContentStreamField, ObjectConfigRecord } from '@yuuvis/client-core';\n\nexport const OC_DEFAULTS: ObjectConfigRecord = {\n 'io.yuuvis.app.drive.file': {\n actions: [{ id: 'yuv.base.download' }, { id: 'yuv.base.delete' }],\n title: { label: 'Filename', propertyName: FS_PROPERTIES.name },\n description: { label: 'File size', propertyName: ContentStreamField.LENGTH },\n aside: { label: 'Modified', propertyName: BaseObjectTypeField.MODIFICATION_DATE },\n icon: { svg: APP_TYPES['file'].icon! },\n badges: [],\n\n objectTypeId: `${APP_ID}.file`\n },\n 'io.yuuvis.app.drive.folder': {\n icon: { svg: APP_TYPES['folder'].icon! },\n objectTypeId: `${APP_ID}.folder`,\n title: { label: 'Name', propertyName: FS_PROPERTIES.name }\n } \n};\n","import { Injectable, inject } from '@angular/core';\nimport { APP_ID } from '@yuuvis/app-drive';\nimport { ObjectConfigService } from '@yuuvis/client-core';\nimport { ActionsService } from '@yuuvis/client-framework/actions';\nimport { ManageFlavorsAction } from '@yuuvis/client-shell';\nimport { ClientShellExtension } from '@yuuvis/client-shell-core';\nimport { OC_DEFAULTS } from './object-config.defaults';\n\n@Injectable()\nexport class AppDriveExtension implements ClientShellExtension {\n #actionsService = inject(ActionsService);\n #objectConfig = inject(ObjectConfigService);\n\n init(): Promise<any> {\n // TODO: Dummy setting for drive app to integrate into shell settings page\n // this.#shell.registerAppSettings(APP_SCHEMA.id, {\n // appID: APP_SCHEMA.id,\n // label: APP_SCHEMA.name,\n // properties: [\n // {\n // label: 'Max items',\n // name: 'maxItems',\n // type: 'number',\n // value: 10\n // }\n // ]\n // });\n\n // register a default object config for the types handled by the drive app\n this.#objectConfig.registerDefaults(OC_DEFAULTS, APP_ID);\n this.#actionsService.registerActions([\n {\n id: 'yuv.base.manage-flavor',\n action: ManageFlavorsAction\n }\n ]);\n return Promise.resolve();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;AAGO,MAAM,WAAW,GAAuB;AAC7C,IAAA,0BAA0B,EAAE;AAC1B,QAAA,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,mBAAmB,EAAE,EAAE,EAAE,EAAE,EAAE,iBAAiB,EAAE,CAAC;QACjE,KAAK,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,CAAC,IAAI,EAAE;QAC9D,WAAW,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,kBAAkB,CAAC,MAAM,EAAE;QAC5E,KAAK,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,mBAAmB,CAAC,iBAAiB,EAAE;QACjF,IAAI,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,IAAK,EAAE;AACtC,QAAA,MAAM,EAAE,EAAE;QAEV,YAAY,EAAE,CAAG,EAAA,MAAM,CAAO,KAAA;AAC/B,KAAA;AACD,IAAA,4BAA4B,EAAE;QAC5B,IAAI,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC,IAAK,EAAE;QACxC,YAAY,EAAE,CAAG,EAAA,MAAM,CAAS,OAAA,CAAA;QAChC,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,aAAa,CAAC,IAAI;AACzD;CACF;;MCVY,iBAAiB,CAAA;AAC5B,IAAA,eAAe,GAAG,MAAM,CAAC,cAAc,CAAC;AACxC,IAAA,aAAa,GAAG,MAAM,CAAC,mBAAmB,CAAC;IAE3C,IAAI,GAAA;;;;;;;;;;;;;;;QAgBF,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,WAAW,EAAE,MAAM,CAAC;AACxD,QAAA,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC;AACnC,YAAA;AACE,gBAAA,EAAE,EAAE,wBAAwB;AAC5B,gBAAA,MAAM,EAAE;AACT;AACF,SAAA,CAAC;AACF,QAAA,OAAO,OAAO,CAAC,OAAO,EAAE;;+GA3Bf,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHAAjB,iBAAiB,EAAA,CAAA,CAAA;;4FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAD7B;;;ACRD;;AAEG;;;;"}
@@ -1874,7 +1874,7 @@ class DriveSearchOverlayComponent {
1874
1874
  ]);
1875
1875
  }
1876
1876
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.12", ngImport: i0, type: DriveSearchOverlayComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1877
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.12", type: DriveSearchOverlayComponent, isStandalone: true, selector: "ymd-drive-search-overlay", viewQueries: [{ propertyName: "objectForms", predicate: ObjectFormComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<h2 matDialogTitle class=\"yuv-dialog-title\">{{ 'yuv.app.drive.search.extended.dialog.title' | translate }}</h2>\n<mat-dialog-content class=\"yuv-dialog-content\">\n <yuv-split-view [gutterSize]=\"1\" [layoutSettingsID]=\"'yuv.app.drive.search.meta.splitview'\">\n <!-- search options -->\n <ng-template yuvSplitArea [size]=\"40\">\n <form class=\"options\" role=\"search\" [formGroup]=\"filterForm\">\n <!-- term and scope -->\n <mat-form-field class=\"yuv-form-field\">\n <mat-label>{{ 'yuv.app.drive.search.meta.options.term' | translate }}</mat-label>\n <input matInput class=\"term\" type=\"search\" formControlName=\"term\" />\n <mat-icon matSuffix>search</mat-icon>\n </mat-form-field>\n\n <mat-form-field class=\"yuv-form-field\">\n <mat-label>{{ 'yuv.app.drive.search.meta.options.where' | translate }}</mat-label>\n <mat-select formControlName=\"scope\" [disabled]=\"!filterForm.value.term\">\n @for (food of scopeOptions(); track food) {\n <mat-option [value]=\"food.value\">{{ food.label }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n\n <!-- types -->\n <div class=\"options-type-list\">\n <h2>{{ 'yuv.app.drive.search.meta.options.type' | translate }}</h2>\n <yuv-list (itemSelect)=\"typeSelected($event)\" [selfHandleSelection]=\"true\">\n @for (t of flavors; track t.id) {\n <div class=\"type\" yuvListItem [ngClass]=\"{ selected: !!selectedFlavorsRec[t.id] }\">\n <mat-pseudo-checkbox [state]=\"!!selectedFlavorsRec[t.id] ? 'checked' : 'unchecked'\"></mat-pseudo-checkbox>\n {{ t.label }}\n </div>\n }\n </yuv-list>\n </div>\n\n <!-- created -->\n <mat-form-field class=\"yuv-form-field\">\n <mat-label>{{ 'yuv.app.drive.search.meta.options.created' | translate }}</mat-label>\n <yuv-range-select-date formControlName=\"created\"></yuv-range-select-date>\n </mat-form-field>\n\n <!-- modified -->\n <mat-form-field class=\"yuv-form-field\">\n <mat-label>{{ 'yuv.app.drive.search.meta.options.modified' | translate }}</mat-label>\n <yuv-range-select-date formControlName=\"modified\"></yuv-range-select-date>\n </mat-form-field>\n\n <!-- content length -->\n <mat-form-field class=\"yuv-form-field\">\n <mat-label>{{ 'yuv.app.drive.search.meta.options.contentlength' | translate }}</mat-label>\n <yuv-range-select-filesize formControlName=\"contentlength\"></yuv-range-select-filesize>\n </mat-form-field>\n </form>\n </ng-template>\n\n <ng-template yuvSplitArea [size]=\"60\">\n <div class=\"query\">\n <h1>{{ 'yuv.app.drive.search.meta.headline.query' | translate }}</h1>\n\n <div class=\"tokens\">\n @if (flavorForms().length === 0 && !filterForm.value.term) {\n <p>{{ 'yuv.app.drive.search.meta.query.for-everything' | translate }}</p>\n }\n @for (o of flavorForms(); track o.id) {\n <details class=\"token\">\n <summary [ngClass]=\"{ dirty: formStates[o.id]?.dirty }\">\n @if (o.icon && o.svgIcon) {\n <mat-icon [svgIcon]=\"o.icon\"></mat-icon>\n } @else {\n <mat-icon>{{ o.icon }}</mat-icon>\n }\n {{ o.label }}\n <mat-icon class=\"arr\">arrow_drop_down</mat-icon>\n </summary>\n <yuv-object-form [formOptions]=\"o.formOptions\" (statusChanged)=\"onFormStatusChanged(o.id, $event)\"></yuv-object-form>\n </details>\n }\n @for (t of searchTokens; track $index) {\n <div class=\"searchToken token\">\n {{ t.label }}\n <button mat-icon-button class=\"ymt-icon-button--size-s\" (click)=\"removeSearchToken(t)\">\n <mat-icon>close</mat-icon>\n </button>\n </div>\n }\n </div>\n </div>\n </ng-template>\n </yuv-split-view>\n</mat-dialog-content>\n<mat-dialog-actions align=\"end\" class=\"yuv-dialog-actions\">\n <button ymtButton=\"secondary\" mat-dialog-close type=\"button\" (click)=\"cancel()\">{{ 'yuv.app.drive.search.meta.button.cancel' | translate }}</button>\n <button ymtButton=\"primary\" mat-dialog-close type=\"submit\" (click)=\"submit()\">{{ 'yuv.app.drive.search.meta.button.search' | translate }}</button>\n</mat-dialog-actions>\n", styles: [".yuv-dialog-title{border-bottom:1px solid var(--ymt-outline-variant);margin:0}.yuv-dialog-content{flex-grow:1;flex-basis:1px;max-height:inherit}.yuv-dialog-content yuv-split-view{--split-gutter-background-color: var(--ymt-outline-variant);display:contents}.yuv-dialog-content form.options{padding:var(--ymt-spacing-m);display:flex;flex-flow:column}.yuv-dialog-content form.options [aria-disabled=true]{cursor:default;opacity:.5}.yuv-dialog-content form.options h2{font:var(--ymt-font-subhead);margin-top:0}.yuv-dialog-content form.options .type:hover{background-color:var(--ymt-surface-container-low)}.yuv-dialog-content form.options .yuv-form-field{cursor:pointer}.yuv-dialog-content form.options .options-type-list,.yuv-dialog-content form.options .yuv-form-field{margin:var(--ymt-spacing-xs) 0}.yuv-dialog-content form.options .options-type-list{margin-bottom:var(--ymt-spacing-3xl)}.yuv-dialog-content form.options .type{display:flex;gap:var(--ymt-spacing-m);align-items:center;padding:var(--ymt-spacing-xs);cursor:pointer}.yuv-dialog-content .query{background-color:var(--ymt-surface);height:100%;box-sizing:border-box;overflow-y:auto;padding:var(--ymt-spacing-m)}.yuv-dialog-content .query h1{font:var(--yuv-font-display);margin:.5rem 0 1rem;color:var(--ymt-text-color-subtle)}.yuv-dialog-content .query .tokens{display:flex;flex-flow:row wrap;align-items:start;gap:var(--ymt-spacing-m)}.yuv-dialog-content .query .tokens>.token{background-color:var(--ymt-surface-container);border:1px solid var(--ymt-outline-variant);animation:searchTokenEnter .2s ease-in-out forwards;box-sizing:border-box;color:var(--ymt-text-color-subtle);border-radius:4px}.yuv-dialog-content .query .tokens details{width:var(--om-section-max-width);max-width:100%}.yuv-dialog-content .query .tokens details[open]{width:100%}.yuv-dialog-content .query .tokens details[open] mat-icon.arr{transform:rotate(180deg)}.yuv-dialog-content .query .tokens details summary{padding:var(--ymt-spacing-xs);padding-inline-end:var(--ymt-spacing-3xl);cursor:pointer;display:flex;align-items:center;position:relative;font-weight:700}.yuv-dialog-content .query .tokens details summary.dirty:after{content:\"\";width:.5em;height:.5em;border-radius:50%;background-color:var(--ymt-primary);margin-inline-start:.5em;align-self:start}.yuv-dialog-content .query .tokens details summary::marker{display:none}.yuv-dialog-content .query .tokens details summary mat-icon{margin-inline-end:var(--ymt-spacing-xs)}.yuv-dialog-content .query .tokens details summary mat-icon.arr{position:absolute;inset-inline-end:0}.yuv-dialog-content .query .tokens .searchToken{padding:var(--ymt-spacing-xs);gap:var(--ymt-spacing-xs);cursor:pointer;display:flex;align-items:center;line-height:1em;font-weight:700}.yuv-dialog-actions{border-top:1px solid var(--ymt-outline-variant)}@keyframes searchTokenEnter{0%{opacity:0;transform:translateY(.5em)}to{opacity:1;transform:translateY(0)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: TranslateModule$1 }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "component", type: ObjectFormComponent, selector: "yuv-object-form", inputs: ["formOptions", "inert", "elementExtensions", "isInnerTableForm"], outputs: ["statusChanged", "onFormReady"] }, { kind: "ngmodule", type: YuvSplitViewModule }, { kind: "directive", type: i1$2.SplitAreaDirective, selector: "[yuvSplitArea]", inputs: ["size", "minSize", "maxSize", "panelClass", "visible"] }, { kind: "component", type: i1$2.SplitViewComponent, selector: "yuv-split-view", inputs: ["direction", "gutterSize", "restrictMove", "disabled", "layoutSettingsID"], outputs: ["layoutSettingsChange", "dragStart", "dragEnd", "gutterClick", "gutterDblClick"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { 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.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: YuvListModule }, { kind: "component", type: i5.ListComponent, selector: "yuv-list", inputs: ["multiselect", "selfHandleSelection", "disableSelection"], outputs: ["itemSelect", "itemFocus"] }, { kind: "directive", type: i5.ListItemDirective, selector: "[yuvListItem]", inputs: ["disabled", "active", "selected"] }, { kind: "component", type: RangeSelectDateComponent, selector: "yuv-range-select-date", inputs: ["ranges", "customRange"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i2$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2$1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i7.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i7.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "directive", type: MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "component", type: MatPseudoCheckbox, selector: "mat-pseudo-checkbox", inputs: ["state", "disabled", "appearance"] }, { kind: "directive", type: YmtButtonDirective, selector: "button[ymtButton], a[ymtButton]", inputs: ["ymtButton", "disabled", "aria-disabled", "disableRipple", "disabledInteractive", "button-size"] }, { kind: "component", type: RangeSelectFilesizeComponent, selector: "yuv-range-select-filesize", inputs: ["ranges"] }] }); }
1877
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.12", type: DriveSearchOverlayComponent, isStandalone: true, selector: "ymd-drive-search-overlay", viewQueries: [{ propertyName: "objectForms", predicate: ObjectFormComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<h2 matDialogTitle class=\"yuv-dialog-title\">{{ 'yuv.app.drive.search.extended.dialog.title' | translate }}</h2>\n<mat-dialog-content class=\"yuv-dialog-content\">\n <yuv-split-view [gutterSize]=\"1\" [layoutSettingsID]=\"'yuv.app.drive.search.meta.splitview'\">\n <!-- search options -->\n <ng-template yuvSplitArea [size]=\"40\">\n <form class=\"options\" role=\"search\" [formGroup]=\"filterForm\">\n <!-- term and scope -->\n <mat-form-field class=\"yuv-form-field\">\n <mat-label>{{ 'yuv.app.drive.search.meta.options.term' | translate }}</mat-label>\n <input matInput class=\"term\" type=\"search\" formControlName=\"term\" />\n <mat-icon matSuffix>search</mat-icon>\n </mat-form-field>\n\n <mat-form-field class=\"yuv-form-field\">\n <mat-label>{{ 'yuv.app.drive.search.meta.options.where' | translate }}</mat-label>\n <mat-select formControlName=\"scope\" [disabled]=\"!filterForm.value.term\">\n @for (food of scopeOptions(); track food) {\n <mat-option [value]=\"food.value\">{{ food.label }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n\n <!-- types -->\n <div class=\"options-type-list\">\n <h2>{{ 'yuv.app.drive.search.meta.options.type' | translate }}</h2>\n <yuv-list (itemSelect)=\"typeSelected($event)\" [selfHandleSelection]=\"true\">\n @for (t of flavors; track t.id) {\n <div class=\"type\" yuvListItem [ngClass]=\"{ selected: !!selectedFlavorsRec[t.id] }\">\n <mat-pseudo-checkbox [state]=\"!!selectedFlavorsRec[t.id] ? 'checked' : 'unchecked'\"></mat-pseudo-checkbox>\n {{ t.label }}\n </div>\n }\n </yuv-list>\n </div>\n\n <!-- created -->\n <mat-form-field class=\"yuv-form-field\">\n <mat-label>{{ 'yuv.app.drive.search.meta.options.created' | translate }}</mat-label>\n <yuv-range-select-date formControlName=\"created\"></yuv-range-select-date>\n </mat-form-field>\n\n <!-- modified -->\n <mat-form-field class=\"yuv-form-field\">\n <mat-label>{{ 'yuv.app.drive.search.meta.options.modified' | translate }}</mat-label>\n <yuv-range-select-date formControlName=\"modified\"></yuv-range-select-date>\n </mat-form-field>\n\n <!-- content length -->\n <mat-form-field class=\"yuv-form-field\">\n <mat-label>{{ 'yuv.app.drive.search.meta.options.contentlength' | translate }}</mat-label>\n <yuv-range-select-filesize formControlName=\"contentlength\"></yuv-range-select-filesize>\n </mat-form-field>\n </form>\n </ng-template>\n\n <ng-template yuvSplitArea [size]=\"60\">\n <div class=\"query\">\n <h1>{{ 'yuv.app.drive.search.meta.headline.query' | translate }}</h1>\n\n <div class=\"tokens\">\n @if (flavorForms().length === 0 && !filterForm.value.term) {\n <p>{{ 'yuv.app.drive.search.meta.query.for-everything' | translate }}</p>\n }\n @for (o of flavorForms(); track o.id) {\n <details class=\"token\">\n <summary [ngClass]=\"{ dirty: formStates[o.id]?.dirty }\">\n @if (o.icon && o.svgIcon) {\n <mat-icon [svgIcon]=\"o.icon\"></mat-icon>\n } @else {\n <mat-icon>{{ o.icon }}</mat-icon>\n }\n {{ o.label }}\n <mat-icon class=\"arr\">arrow_drop_down</mat-icon>\n </summary>\n <yuv-object-form [formOptions]=\"o.formOptions\" (statusChanged)=\"onFormStatusChanged(o.id, $event)\"></yuv-object-form>\n </details>\n }\n @for (t of searchTokens; track $index) {\n <div class=\"searchToken token\">\n {{ t.label }}\n <button mat-icon-button class=\"ymt-icon-button--size-s\" (click)=\"removeSearchToken(t)\">\n <mat-icon>close</mat-icon>\n </button>\n </div>\n }\n </div>\n </div>\n </ng-template>\n </yuv-split-view>\n</mat-dialog-content>\n<mat-dialog-actions align=\"end\" class=\"yuv-dialog-actions\">\n <button ymtButton=\"secondary\" mat-dialog-close type=\"button\" (click)=\"cancel()\">{{ 'yuv.app.drive.search.meta.button.cancel' | translate }}</button>\n <button ymtButton=\"primary\" mat-dialog-close type=\"submit\" (click)=\"submit()\">{{ 'yuv.app.drive.search.meta.button.search' | translate }}</button>\n</mat-dialog-actions>\n", styles: [".yuv-dialog-title{border-bottom:1px solid var(--ymt-outline-variant);margin:0}.yuv-dialog-content{flex-grow:1;flex-basis:1px;max-height:inherit}.yuv-dialog-content yuv-split-view{--split-gutter-background-color: var(--ymt-outline-variant);display:contents}.yuv-dialog-content form.options{padding:var(--ymt-spacing-m);display:flex;flex-flow:column}.yuv-dialog-content form.options [aria-disabled=true]{cursor:default;opacity:.5}.yuv-dialog-content form.options h2{font:var(--ymt-font-subhead);margin-top:0}.yuv-dialog-content form.options .type:hover{background-color:var(--ymt-surface-container-low)}.yuv-dialog-content form.options .yuv-form-field{cursor:pointer}.yuv-dialog-content form.options .options-type-list,.yuv-dialog-content form.options .yuv-form-field{margin:var(--ymt-spacing-xs) 0}.yuv-dialog-content form.options .options-type-list{margin-bottom:var(--ymt-spacing-3xl)}.yuv-dialog-content form.options .type{display:flex;gap:var(--ymt-spacing-m);align-items:center;padding:var(--ymt-spacing-xs);cursor:pointer}.yuv-dialog-content .query{background-color:var(--ymt-surface);height:100%;box-sizing:border-box;overflow-y:auto;padding:var(--ymt-spacing-m)}.yuv-dialog-content .query h1{font:var(--yuv-font-display);margin:.5rem 0 1rem;color:var(--ymt-text-color-subtle)}.yuv-dialog-content .query .tokens{display:flex;flex-flow:row wrap;align-items:start;gap:var(--ymt-spacing-m)}.yuv-dialog-content .query .tokens>.token{background-color:var(--ymt-surface-container);border:1px solid var(--ymt-outline-variant);animation:searchTokenEnter .2s ease-in-out forwards;box-sizing:border-box;color:var(--ymt-text-color-subtle);border-radius:4px}.yuv-dialog-content .query .tokens details{width:var(--om-section-max-width);max-width:100%}.yuv-dialog-content .query .tokens details[open]{width:100%}.yuv-dialog-content .query .tokens details[open] mat-icon.arr{transform:rotate(180deg)}.yuv-dialog-content .query .tokens details summary{padding:var(--ymt-spacing-xs);padding-inline-end:var(--ymt-spacing-3xl);cursor:pointer;display:flex;align-items:center;position:relative;font-weight:700}.yuv-dialog-content .query .tokens details summary.dirty:after{content:\"\";width:.5em;height:.5em;border-radius:50%;background-color:var(--ymt-primary);margin-inline-start:.5em;align-self:start}.yuv-dialog-content .query .tokens details summary::marker{display:none}.yuv-dialog-content .query .tokens details summary mat-icon{margin-inline-end:var(--ymt-spacing-xs)}.yuv-dialog-content .query .tokens details summary mat-icon.arr{position:absolute;inset-inline-end:0}.yuv-dialog-content .query .tokens .searchToken{padding:var(--ymt-spacing-xs);gap:var(--ymt-spacing-xs);cursor:pointer;display:flex;align-items:center;line-height:1em;font-weight:700}.yuv-dialog-actions{border-top:1px solid var(--ymt-outline-variant)}@keyframes searchTokenEnter{0%{opacity:0;transform:translateY(.5em)}to{opacity:1;transform:translateY(0)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: TranslateModule$1 }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "component", type: ObjectFormComponent, selector: "yuv-object-form", inputs: ["formOptions", "inert", "elementExtensions", "isInnerTableForm"], outputs: ["statusChanged", "onFormReady"] }, { kind: "ngmodule", type: YuvSplitViewModule }, { kind: "directive", type: i1$2.SplitAreaDirective, selector: "[yuvSplitArea]", inputs: ["size", "minSize", "maxSize", "panelClass", "visible"] }, { kind: "component", type: i1$2.SplitViewComponent, selector: "yuv-split-view", inputs: ["direction", "gutterSize", "restrictMove", "disabled", "layoutSettingsID"], outputs: ["layoutSettingsChange", "dragStart", "dragEnd", "gutterClick", "gutterDblClick"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { 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.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: YuvListModule }, { kind: "component", type: i5.ListComponent, selector: "yuv-list", inputs: ["multiselect", "selfHandleSelection", "autoSelect", "disableSelection"], outputs: ["itemSelect", "itemFocus"] }, { kind: "directive", type: i5.ListItemDirective, selector: "[yuvListItem]", inputs: ["disabled", "active", "selected"] }, { kind: "component", type: RangeSelectDateComponent, selector: "yuv-range-select-date", inputs: ["ranges", "customRange"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i2$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2$1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i7.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i7.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "directive", type: MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "component", type: MatPseudoCheckbox, selector: "mat-pseudo-checkbox", inputs: ["state", "disabled", "appearance"] }, { kind: "directive", type: YmtButtonDirective, selector: "button[ymtButton], a[ymtButton]", inputs: ["ymtButton", "disabled", "aria-disabled", "disableRipple", "disabledInteractive", "button-size"] }, { kind: "component", type: RangeSelectFilesizeComponent, selector: "yuv-range-select-filesize", inputs: ["ranges"] }] }); }
1878
1878
  }
1879
1879
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.12", ngImport: i0, type: DriveSearchOverlayComponent, decorators: [{
1880
1880
  type: Component,