@yuuvis/client-framework 2.3.13 → 2.3.14
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-object-preview.mjs +5 -2
- package/fesm2022/yuuvis-client-framework-object-preview.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-simple-search.mjs +2 -2
- package/fesm2022/yuuvis-client-framework-simple-search.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-sort.mjs +12 -2
- package/fesm2022/yuuvis-client-framework-sort.mjs.map +1 -1
- package/lib/assets/i18n/de.json +1 -0
- package/lib/assets/i18n/en.json +3 -2
- package/object-preview/lib/services/object-preview.service.d.ts +1 -0
- package/package.json +8 -8
|
@@ -5,7 +5,7 @@ import * as i1 from '@yuuvis/client-core';
|
|
|
5
5
|
import { DmsService, UserService, ContentStreamField, EventService, YuvEventType, TranslateModule } from '@yuuvis/client-core';
|
|
6
6
|
import { MediaViewerService, defaultViewers, DASHLET_MESSAGE_EVENTS, YuvMediaViewerComponent, MailComponent } from '@yuuvis/media-viewer';
|
|
7
7
|
import { tap } from 'rxjs/operators';
|
|
8
|
-
import {
|
|
8
|
+
import { tap as tap$1 } from 'rxjs';
|
|
9
9
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
10
10
|
|
|
11
11
|
class ObjectPreviewService {
|
|
@@ -58,6 +58,7 @@ class ObjectPreviewService {
|
|
|
58
58
|
editable: true,
|
|
59
59
|
user: this.#userService.getCurrentUser(),
|
|
60
60
|
theme: 'light',
|
|
61
|
+
version,
|
|
61
62
|
sendEvent: (object.content?.mimeType &&
|
|
62
63
|
defaultViewers.filter((v) => v.type === 'OFFICE').map((v) => v.mimeType.includes(object.content?.mimeType || '')).length) ||
|
|
63
64
|
false
|
|
@@ -140,7 +141,9 @@ class ObjectPreviewComponent {
|
|
|
140
141
|
});
|
|
141
142
|
this.#event
|
|
142
143
|
.on(DASHLET_MESSAGE_EVENTS.OFFICE_DOCUMENT_UPDATE)
|
|
143
|
-
.pipe(takeUntilDestroyed(),
|
|
144
|
+
.pipe(takeUntilDestroyed(),
|
|
145
|
+
// delay(2000),
|
|
146
|
+
tap$1(() => this.#event.trigger(YuvEventType.DMS_OBJECT_CONTENT_UPDATED, { externalUpdate: true })))
|
|
144
147
|
.subscribe();
|
|
145
148
|
}
|
|
146
149
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: ObjectPreviewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"yuuvis-client-framework-object-preview.mjs","sources":["../../../../../libs/yuuvis/client-framework/object-preview/src/lib/services/object-preview.service.ts","../../../../../libs/yuuvis/client-framework/object-preview/src/lib/components/object-preview/object-preview.component.ts","../../../../../libs/yuuvis/client-framework/object-preview/src/lib/components/object-email-preview/object-email-preview.component.ts","../../../../../libs/yuuvis/client-framework/object-preview/src/yuuvis-client-framework-object-preview.ts"],"sourcesContent":["import { inject, Injectable, signal } from '@angular/core';\nimport { ContentStreamField, DmsObject, DmsService, UserService } from '@yuuvis/client-core';\nimport { defaultViewers, EmailMetadata, MediaViewerService } from '@yuuvis/media-viewer';\nimport { tap } from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ObjectPreviewService {\n readonly #dms = inject(DmsService);\n readonly #userService = inject(UserService);\n readonly #mediaViewerService = inject(MediaViewerService);\n\n #dmsObject = signal<DmsObject | undefined>(undefined);\n\n dmsObject = this.#dmsObject.asReadonly();\n\n setDmsObject(object: DmsObject) {\n this.#dmsObject.set(object);\n }\n\n getDmsObject(id: string) {\n return this.#dms.getDmsObject(id).pipe(tap((dmsObject) => this.#dmsObject.set(dmsObject)));\n }\n\n getMediaViewerSrc(id: string, mimeType: string | undefined, version?: number) {\n if (mimeType) {\n if (mimeType === 'image/tiff') {\n return version\n ? `/api/dms/objects/${id}/versions/${version}/contents/renditions/slide?timeout=50000`\n : `/api/dms/objects/${id}/contents/renditions/slide`;\n }\n return version ? `/api/dms/objects/${id}/versions/${version}/contents/file` : `/api/dms/objects/${id}/contents/file`;\n }\n return '';\n }\n\n #isEmailViewer(object: DmsObject) {\n return defaultViewers.filter((viewer) => viewer.type === 'EMAIL')[0].mimeType.includes(object.data[ContentStreamField.MIME_TYPE] as string);\n }\n\n getViewerDetails(object: DmsObject, version: number | undefined) {\n if (object) {\n const type = object?.content && this.#mediaViewerService.getComponentType(object.content.mimeType);\n\n // console.log('type', type);\n\n return this.#isEmailViewer(object)\n ? this.getEmailViewerDetails(object)\n : {\n mediaViewerSrc: this.getMediaViewerSrc(object.id, object.content?.mimeType, version),\n id: object.id,\n mimeType: object.content?.mimeType,\n metadata: {\n type,\n name: object.data[ContentStreamField.FILENAME] as string,\n dmsObject: object?.data,\n id: object?.id,\n editable: true,\n user: this.#userService.getCurrentUser(),\n theme: 'light',\n sendEvent:\n (object.content?.mimeType &&\n defaultViewers.filter((v) => v.type === 'OFFICE').map((v) => v.mimeType.includes(object.content?.mimeType || '')).length) ||\n false\n // ...(object.content?.mimeType === 'application/pdf'\n }\n };\n }\n return undefined;\n }\n\n getEmailViewerDetails(object: DmsObject, MAIL_APP_ID = 'appSystemmail:') {\n return {\n mediaViewerSrc: this.getMediaViewerSrc(object.id, object.content?.mimeType),\n id: object.id,\n mimeType: object.content?.mimeType,\n metadata: this.getEmailMetadata(object, MAIL_APP_ID)\n };\n }\n\n getEmailMetadata(object: DmsObject, MAIL_APP_ID = 'appSystemmail:'): EmailMetadata {\n return {\n type: 'EMAIL',\n header: {\n subject: object.data[`${MAIL_APP_ID}subject`] as string,\n sent: new Date(object.data[`${MAIL_APP_ID}sent`] as string),\n from: object.data[`${MAIL_APP_ID}from`] as string,\n to: object.data[`${MAIL_APP_ID}to`] as string[],\n cc: object.data[`${MAIL_APP_ID}cc`] as string[],\n bcc: object.data[`${MAIL_APP_ID}bcc`] as string[]\n },\n theme: 'light',\n attachments: object.data[`${MAIL_APP_ID}attachments`] as string[]\n };\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, computed, effect, inject, input, signal, untracked } from '@angular/core';\nimport { DmsObject, EventService, TranslateModule, YuvEventType } from '@yuuvis/client-core';\nimport { DASHLET_MESSAGE_EVENTS, Metadata, YuvMediaViewerComponent } from '@yuuvis/media-viewer';\nimport { ObjectPreviewService } from '../../services/object-preview.service';\nimport { delay, tap } from 'rxjs';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Component({\n selector: 'yuv-object-preview',\n standalone: true,\n imports: [CommonModule, YuvMediaViewerComponent, TranslateModule],\n template: `\n @let viewerDetailsObj = viewerDetails();\n @if (viewerDetailsObj) {\n <yuv-media-viewer\n class=\"viewer\"\n [id]=\"viewerDetailsObj.id\"\n [type]=\"viewerDetailsObj.mimeType\"\n [src]=\"viewerDetailsObj.mediaViewerSrc\"\n [metadata]=\"viewerDetailsObj.metadata\"\n ></yuv-media-viewer>\n }\n @if (isTiff()) {\n <div class=\"tiff-warning\">\n <div class=\"tiff-warning-text\">{{ 'yuv.object-preview.tiff-warning' | translate }}</div>\n </div>\n }\n `,\n styles: [\n `\n :host {\n height: 100%;\n overflow: hidden;\n display: grid;\n grid-auto-columns: 1fr;\n grid-auto-rows: 1fr;\n grid-template-columns: 1fr;\n grid-template-rows: 1fr max-content;\n gap: 0px 0px;\n grid-template-areas:\n 'viewer'\n 'message';\n }\n .viewer {\n grid-area: viewer;\n ::ng-deep {\n pdf-paging-area {\n display: flex;\n align-items: center;\n\n .paging-right,\n .paging-left {\n display: flex;\n align-items: center;\n }\n }\n pdf-zoom-toolbar {\n div {\n display: flex;\n align-items: center;\n }\n }\n }\n }\n .tiff-warning {\n grid-area: message;\n text-align: center;\n padding: var(--ymt-spacing-xs) 0;\n\n &-text {\n margin: var(--ymt-spacing-m);\n }\n }\n `\n ]\n})\nexport class ObjectPreviewComponent {\n #objectPreviewService = inject(ObjectPreviewService);\n #event = inject(EventService);\n\n #formerContentstreamId?: string;\n objectId = input<string | undefined>(undefined);\n dmsObjectInput = input<DmsObject | undefined>(undefined, { alias: 'dmsObject' });\n version = input<number | undefined>(undefined);\n dmsObject = this.#objectPreviewService.dmsObject;\n #dmsObjectEffect = effect(() => {\n const version = this.version();\n let object = this.dmsObject();\n object = Array.isArray(object) ? object[0] : object;\n if (object && this.#formerContentstreamId !== object.content?.contentStreamId) {\n untracked(() => {\n const details = object && this.#objectPreviewService.getViewerDetails(object, version);\n if (details) {\n this.viewerDetails.set({ ...details, metadata: { ...details.metadata, ...this.metadata() } });\n }\n });\n\n this.#formerContentstreamId = object.content?.contentStreamId;\n }\n });\n\n metadata = input<Partial<Metadata>>({});\n\n viewerDetails = signal<any | undefined>(undefined);\n\n isTiff = computed(() => this.dmsObject()?.content?.mimeType === 'image/tiff');\n\n #objectIdEffect = effect(() => {\n const objectId = this.objectId();\n const dmsObject = this.dmsObjectInput();\n untracked(() => {\n dmsObject && this.#objectPreviewService.setDmsObject(dmsObject);\n objectId && !dmsObject && this.#objectPreviewService.getDmsObject(objectId).subscribe();\n });\n });\n\n constructor() {\n this.#event\n .on(DASHLET_MESSAGE_EVENTS.OFFICE_DOCUMENT_UPDATE)\n .pipe(\n takeUntilDestroyed(),\n delay(2000),\n tap(() => this.#event.trigger(YuvEventType.DMS_OBJECT_UPDATED, { objectId: this.objectId() }))\n )\n .subscribe();\n }\n}\n","import { Component, computed, effect, inject, input, untracked } from '@angular/core';\nimport { DmsObject } from '@yuuvis/client-core';\nimport { MailComponent } from '@yuuvis/media-viewer';\nimport { ObjectPreviewService } from '../../services/object-preview.service';\n\n@Component({\n selector: 'yuv-object-email-preview',\n standalone: true,\n imports: [MailComponent],\n template: `\n @let viewerDetailsObj = viewerDetails();\n @if (viewerDetailsObj) {\n <yuv-mail [id]=\"viewerDetailsObj.id\" [src]=\"viewerDetailsObj.mediaViewerSrc\" [metadata]=\"viewerDetailsObj.metadata\"></yuv-mail>\n }\n `,\n styles: `\n :host {\n height: 100%;\n }\n `\n})\nexport class ObjectEmailPreviewComponent {\n #objectPreviwService = inject(ObjectPreviewService);\n\n objectId = input<string | undefined>(undefined);\n dmsObjectInput = input<DmsObject | undefined>(undefined, { alias: 'dmsObject' });\n dmsObject = this.#objectPreviwService.dmsObject;\n\n #objectIdEffect = effect(() => {\n const objectId = this.objectId();\n const dmsObject = this.dmsObjectInput();\n\n untracked(() => {\n dmsObject && this.#objectPreviwService.setDmsObject(dmsObject);\n if (objectId && !dmsObject) {\n this.#objectPreviwService.getDmsObject(objectId).subscribe();\n }\n });\n });\n\n viewerDetails = computed(() => {\n const object = this.dmsObject();\n return object ? this.#objectPreviwService.getEmailViewerDetails(object) : undefined;\n });\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["tap"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"yuuvis-client-framework-object-preview.mjs","sources":["../../../../../libs/yuuvis/client-framework/object-preview/src/lib/services/object-preview.service.ts","../../../../../libs/yuuvis/client-framework/object-preview/src/lib/components/object-preview/object-preview.component.ts","../../../../../libs/yuuvis/client-framework/object-preview/src/lib/components/object-email-preview/object-email-preview.component.ts","../../../../../libs/yuuvis/client-framework/object-preview/src/yuuvis-client-framework-object-preview.ts"],"sourcesContent":["import { inject, Injectable, signal } from '@angular/core';\nimport { ContentStreamField, DmsObject, DmsService, UserService } from '@yuuvis/client-core';\nimport { defaultViewers, EmailMetadata, MediaViewerService } from '@yuuvis/media-viewer';\nimport { tap } from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ObjectPreviewService {\n readonly #dms = inject(DmsService);\n readonly #userService = inject(UserService);\n readonly #mediaViewerService = inject(MediaViewerService);\n\n #dmsObject = signal<DmsObject | undefined>(undefined);\n\n dmsObject = this.#dmsObject.asReadonly();\n\n setDmsObject(object: DmsObject) {\n this.#dmsObject.set(object);\n }\n\n getDmsObject(id: string) {\n return this.#dms.getDmsObject(id).pipe(tap((dmsObject) => this.#dmsObject.set(dmsObject)));\n }\n\n getMediaViewerSrc(id: string, mimeType: string | undefined, version?: number) {\n if (mimeType) {\n if (mimeType === 'image/tiff') {\n return version\n ? `/api/dms/objects/${id}/versions/${version}/contents/renditions/slide?timeout=50000`\n : `/api/dms/objects/${id}/contents/renditions/slide`;\n }\n return version ? `/api/dms/objects/${id}/versions/${version}/contents/file` : `/api/dms/objects/${id}/contents/file`;\n }\n return '';\n }\n\n #isEmailViewer(object: DmsObject) {\n return defaultViewers.filter((viewer) => viewer.type === 'EMAIL')[0].mimeType.includes(object.data[ContentStreamField.MIME_TYPE] as string);\n }\n\n getViewerDetails(object: DmsObject, version: number | undefined) {\n if (object) {\n const type = object?.content && this.#mediaViewerService.getComponentType(object.content.mimeType);\n\n // console.log('type', type);\n\n return this.#isEmailViewer(object)\n ? this.getEmailViewerDetails(object)\n : {\n mediaViewerSrc: this.getMediaViewerSrc(object.id, object.content?.mimeType, version),\n id: object.id,\n mimeType: object.content?.mimeType,\n metadata: {\n type,\n name: object.data[ContentStreamField.FILENAME] as string,\n dmsObject: object?.data,\n id: object?.id,\n editable: true,\n user: this.#userService.getCurrentUser(),\n theme: 'light',\n version,\n sendEvent:\n (object.content?.mimeType &&\n defaultViewers.filter((v) => v.type === 'OFFICE').map((v) => v.mimeType.includes(object.content?.mimeType || '')).length) ||\n false\n // ...(object.content?.mimeType === 'application/pdf'\n }\n };\n }\n return undefined;\n }\n\n getEmailViewerDetails(object: DmsObject, MAIL_APP_ID = 'appSystemmail:') {\n return {\n mediaViewerSrc: this.getMediaViewerSrc(object.id, object.content?.mimeType),\n id: object.id,\n mimeType: object.content?.mimeType,\n metadata: this.getEmailMetadata(object, MAIL_APP_ID)\n };\n }\n\n getEmailMetadata(object: DmsObject, MAIL_APP_ID = 'appSystemmail:'): EmailMetadata {\n return {\n type: 'EMAIL',\n header: {\n subject: object.data[`${MAIL_APP_ID}subject`] as string,\n sent: new Date(object.data[`${MAIL_APP_ID}sent`] as string),\n from: object.data[`${MAIL_APP_ID}from`] as string,\n to: object.data[`${MAIL_APP_ID}to`] as string[],\n cc: object.data[`${MAIL_APP_ID}cc`] as string[],\n bcc: object.data[`${MAIL_APP_ID}bcc`] as string[]\n },\n theme: 'light',\n attachments: object.data[`${MAIL_APP_ID}attachments`] as string[]\n };\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, computed, effect, inject, input, signal, untracked } from '@angular/core';\nimport { DmsObject, EventService, TranslateModule, YuvEventType } from '@yuuvis/client-core';\nimport { DASHLET_MESSAGE_EVENTS, Metadata, YuvMediaViewerComponent } from '@yuuvis/media-viewer';\nimport { ObjectPreviewService } from '../../services/object-preview.service';\nimport { delay, tap } from 'rxjs';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Component({\n selector: 'yuv-object-preview',\n standalone: true,\n imports: [CommonModule, YuvMediaViewerComponent, TranslateModule],\n template: `\n @let viewerDetailsObj = viewerDetails();\n @if (viewerDetailsObj) {\n <yuv-media-viewer\n class=\"viewer\"\n [id]=\"viewerDetailsObj.id\"\n [type]=\"viewerDetailsObj.mimeType\"\n [src]=\"viewerDetailsObj.mediaViewerSrc\"\n [metadata]=\"viewerDetailsObj.metadata\"\n ></yuv-media-viewer>\n }\n @if (isTiff()) {\n <div class=\"tiff-warning\">\n <div class=\"tiff-warning-text\">{{ 'yuv.object-preview.tiff-warning' | translate }}</div>\n </div>\n }\n `,\n styles: [\n `\n :host {\n height: 100%;\n overflow: hidden;\n display: grid;\n grid-auto-columns: 1fr;\n grid-auto-rows: 1fr;\n grid-template-columns: 1fr;\n grid-template-rows: 1fr max-content;\n gap: 0px 0px;\n grid-template-areas:\n 'viewer'\n 'message';\n }\n .viewer {\n grid-area: viewer;\n ::ng-deep {\n pdf-paging-area {\n display: flex;\n align-items: center;\n\n .paging-right,\n .paging-left {\n display: flex;\n align-items: center;\n }\n }\n pdf-zoom-toolbar {\n div {\n display: flex;\n align-items: center;\n }\n }\n }\n }\n .tiff-warning {\n grid-area: message;\n text-align: center;\n padding: var(--ymt-spacing-xs) 0;\n\n &-text {\n margin: var(--ymt-spacing-m);\n }\n }\n `\n ]\n})\nexport class ObjectPreviewComponent {\n #objectPreviewService = inject(ObjectPreviewService);\n #event = inject(EventService);\n\n #formerContentstreamId?: string;\n objectId = input<string | undefined>(undefined);\n dmsObjectInput = input<DmsObject | undefined>(undefined, { alias: 'dmsObject' });\n version = input<number | undefined>(undefined);\n dmsObject = this.#objectPreviewService.dmsObject;\n #dmsObjectEffect = effect(() => {\n const version = this.version();\n let object = this.dmsObject();\n object = Array.isArray(object) ? object[0] : object;\n if (object && this.#formerContentstreamId !== object.content?.contentStreamId) {\n untracked(() => {\n const details = object && this.#objectPreviewService.getViewerDetails(object, version);\n if (details) {\n this.viewerDetails.set({ ...details, metadata: { ...details.metadata, ...this.metadata() } });\n }\n });\n\n this.#formerContentstreamId = object.content?.contentStreamId;\n }\n });\n\n metadata = input<Partial<Metadata>>({});\n\n viewerDetails = signal<any | undefined>(undefined);\n\n isTiff = computed(() => this.dmsObject()?.content?.mimeType === 'image/tiff');\n\n #objectIdEffect = effect(() => {\n const objectId = this.objectId();\n const dmsObject = this.dmsObjectInput();\n untracked(() => {\n dmsObject && this.#objectPreviewService.setDmsObject(dmsObject);\n objectId && !dmsObject && this.#objectPreviewService.getDmsObject(objectId).subscribe();\n });\n });\n\n constructor() {\n this.#event\n .on(DASHLET_MESSAGE_EVENTS.OFFICE_DOCUMENT_UPDATE)\n .pipe(\n takeUntilDestroyed(),\n // delay(2000),\n tap(() => this.#event.trigger(YuvEventType.DMS_OBJECT_CONTENT_UPDATED, { externalUpdate: true }))\n )\n .subscribe();\n }\n}\n","import { Component, computed, effect, inject, input, untracked } from '@angular/core';\nimport { DmsObject } from '@yuuvis/client-core';\nimport { MailComponent } from '@yuuvis/media-viewer';\nimport { ObjectPreviewService } from '../../services/object-preview.service';\n\n@Component({\n selector: 'yuv-object-email-preview',\n standalone: true,\n imports: [MailComponent],\n template: `\n @let viewerDetailsObj = viewerDetails();\n @if (viewerDetailsObj) {\n <yuv-mail [id]=\"viewerDetailsObj.id\" [src]=\"viewerDetailsObj.mediaViewerSrc\" [metadata]=\"viewerDetailsObj.metadata\"></yuv-mail>\n }\n `,\n styles: `\n :host {\n height: 100%;\n }\n `\n})\nexport class ObjectEmailPreviewComponent {\n #objectPreviwService = inject(ObjectPreviewService);\n\n objectId = input<string | undefined>(undefined);\n dmsObjectInput = input<DmsObject | undefined>(undefined, { alias: 'dmsObject' });\n dmsObject = this.#objectPreviwService.dmsObject;\n\n #objectIdEffect = effect(() => {\n const objectId = this.objectId();\n const dmsObject = this.dmsObjectInput();\n\n untracked(() => {\n dmsObject && this.#objectPreviwService.setDmsObject(dmsObject);\n if (objectId && !dmsObject) {\n this.#objectPreviwService.getDmsObject(objectId).subscribe();\n }\n });\n });\n\n viewerDetails = computed(() => {\n const object = this.dmsObject();\n return object ? this.#objectPreviwService.getEmailViewerDetails(object) : undefined;\n });\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["tap"],"mappings":";;;;;;;;;;MAQa,oBAAoB,CAAA;AAHjC,IAAA,WAAA,GAAA;AAIW,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC;AACzB,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,WAAW,CAAC;AAClC,QAAA,IAAA,CAAA,mBAAmB,GAAG,MAAM,CAAC,kBAAkB,CAAC;AAEzD,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAwB,SAAS,CAAC;AAErD,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE;AAkFzC;AAxFU,IAAA,IAAI;AACJ,IAAA,YAAY;AACZ,IAAA,mBAAmB;AAE5B,IAAA,UAAU;AAIV,IAAA,YAAY,CAAC,MAAiB,EAAA;AAC5B,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC;;AAG7B,IAAA,YAAY,CAAC,EAAU,EAAA;AACrB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;;AAG5F,IAAA,iBAAiB,CAAC,EAAU,EAAE,QAA4B,EAAE,OAAgB,EAAA;QAC1E,IAAI,QAAQ,EAAE;AACZ,YAAA,IAAI,QAAQ,KAAK,YAAY,EAAE;AAC7B,gBAAA,OAAO;AACL,sBAAE,CAAA,iBAAA,EAAoB,EAAE,CAAA,UAAA,EAAa,OAAO,CAA0C,wCAAA;AACtF,sBAAE,CAAA,iBAAA,EAAoB,EAAE,CAAA,0BAAA,CAA4B;;AAExD,YAAA,OAAO,OAAO,GAAG,oBAAoB,EAAE,CAAA,UAAA,EAAa,OAAO,CAAA,cAAA,CAAgB,GAAG,CAAoB,iBAAA,EAAA,EAAE,gBAAgB;;AAEtH,QAAA,OAAO,EAAE;;AAGX,IAAA,cAAc,CAAC,MAAiB,EAAA;AAC9B,QAAA,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAW,CAAC;;IAG7I,gBAAgB,CAAC,MAAiB,EAAE,OAA2B,EAAA;QAC7D,IAAI,MAAM,EAAE;AACV,YAAA,MAAM,IAAI,GAAG,MAAM,EAAE,OAAO,IAAI,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC;;AAIlG,YAAA,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM;AAC/B,kBAAE,IAAI,CAAC,qBAAqB,CAAC,MAAM;AACnC,kBAAE;AACE,oBAAA,cAAc,EAAE,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC;oBACpF,EAAE,EAAE,MAAM,CAAC,EAAE;AACb,oBAAA,QAAQ,EAAE,MAAM,CAAC,OAAO,EAAE,QAAQ;AAClC,oBAAA,QAAQ,EAAE;wBACR,IAAI;wBACJ,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAW;wBACxD,SAAS,EAAE,MAAM,EAAE,IAAI;wBACvB,EAAE,EAAE,MAAM,EAAE,EAAE;AACd,wBAAA,QAAQ,EAAE,IAAI;AACd,wBAAA,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE;AACxC,wBAAA,KAAK,EAAE,OAAO;wBACd,OAAO;AACP,wBAAA,SAAS,EACP,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ;AACvB,4BAAA,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM;4BAC1H;;AAEH;iBACF;;AAEP,QAAA,OAAO,SAAS;;AAGlB,IAAA,qBAAqB,CAAC,MAAiB,EAAE,WAAW,GAAG,gBAAgB,EAAA;QACrE,OAAO;AACL,YAAA,cAAc,EAAE,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC;YAC3E,EAAE,EAAE,MAAM,CAAC,EAAE;AACb,YAAA,QAAQ,EAAE,MAAM,CAAC,OAAO,EAAE,QAAQ;YAClC,QAAQ,EAAE,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,WAAW;SACpD;;AAGH,IAAA,gBAAgB,CAAC,MAAiB,EAAE,WAAW,GAAG,gBAAgB,EAAA;QAChE,OAAO;AACL,YAAA,IAAI,EAAE,OAAO;AACb,YAAA,MAAM,EAAE;gBACN,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,CAAG,EAAA,WAAW,SAAS,CAAW;AACvD,gBAAA,IAAI,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAG,EAAA,WAAW,CAAM,IAAA,CAAA,CAAW,CAAC;gBAC3D,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAG,EAAA,WAAW,MAAM,CAAW;gBACjD,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,CAAG,EAAA,WAAW,IAAI,CAAa;gBAC/C,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,CAAG,EAAA,WAAW,IAAI,CAAa;gBAC/C,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,CAAG,EAAA,WAAW,KAAK;AACrC,aAAA;AACD,YAAA,KAAK,EAAE,OAAO;YACd,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,CAAG,EAAA,WAAW,aAAa;SACrD;;+GAvFQ,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAApB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,cAFnB,MAAM,EAAA,CAAA,CAAA;;4FAEP,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAHhC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;MCsEY,sBAAsB,CAAA;AACjC,IAAA,qBAAqB;AACrB,IAAA,MAAM;AAEN,IAAA,sBAAsB;AAKtB,IAAA,gBAAgB;AAsBhB,IAAA,eAAe;AASf,IAAA,WAAA,GAAA;AAvCA,QAAA,IAAA,CAAA,qBAAqB,GAAG,MAAM,CAAC,oBAAoB,CAAC;AACpD,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC;AAG7B,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAqB,SAAS,CAAC;QAC/C,IAAc,CAAA,cAAA,GAAG,KAAK,CAAwB,SAAS,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;AAChF,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAAqB,SAAS,CAAC;AAC9C,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,CAAC,qBAAqB,CAAC,SAAS;AAChD,QAAA,IAAA,CAAA,gBAAgB,GAAG,MAAM,CAAC,MAAK;AAC7B,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE;AAC9B,YAAA,IAAI,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE;AAC7B,YAAA,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM;AACnD,YAAA,IAAI,MAAM,IAAI,IAAI,CAAC,sBAAsB,KAAK,MAAM,CAAC,OAAO,EAAE,eAAe,EAAE;gBAC7E,SAAS,CAAC,MAAK;AACb,oBAAA,MAAM,OAAO,GAAG,MAAM,IAAI,IAAI,CAAC,qBAAqB,CAAC,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC;oBACtF,IAAI,OAAO,EAAE;wBACX,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,GAAG,OAAO,EAAE,QAAQ,EAAE,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,EAAE,EAAE,CAAC;;AAEjG,iBAAC,CAAC;gBAEF,IAAI,CAAC,sBAAsB,GAAG,MAAM,CAAC,OAAO,EAAE,eAAe;;AAEjE,SAAC,CAAC;AAEF,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAoB,EAAE,CAAC;AAEvC,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAkB,SAAS,CAAC;AAElD,QAAA,IAAA,CAAA,MAAM,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,QAAQ,KAAK,YAAY,CAAC;AAE7E,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAC,MAAK;AAC5B,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE;AAChC,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,EAAE;YACvC,SAAS,CAAC,MAAK;gBACb,SAAS,IAAI,IAAI,CAAC,qBAAqB,CAAC,YAAY,CAAC,SAAS,CAAC;AAC/D,gBAAA,QAAQ,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,qBAAqB,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE;AACzF,aAAC,CAAC;AACJ,SAAC,CAAC;AAGA,QAAA,IAAI,CAAC;AACF,aAAA,EAAE,CAAC,sBAAsB,CAAC,sBAAsB;aAChD,IAAI,CACH,kBAAkB,EAAE;;QAEpBA,KAAG,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,0BAA0B,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC;AAElG,aAAA,SAAS,EAAE;;+GAhDL,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,EAjEvB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;;;;;;;;;AAgBT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,ujBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAjBS,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,uBAAuB,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,MAAA,EAAA,UAAA,EAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAkErD,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBArElC,SAAS;+BACE,oBAAoB,EAAA,UAAA,EAClB,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,EAAE,uBAAuB,EAAE,eAAe,CAAC,EACvD,QAAA,EAAA;;;;;;;;;;;;;;;;AAgBT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,ujBAAA,CAAA,EAAA;;;MCPU,2BAA2B,CAAA;AAhBxC,IAAA,WAAA,GAAA;AAiBE,QAAA,IAAA,CAAA,oBAAoB,GAAG,MAAM,CAAC,oBAAoB,CAAC;AAEnD,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAqB,SAAS,CAAC;QAC/C,IAAc,CAAA,cAAA,GAAG,KAAK,CAAwB,SAAS,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;AAChF,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,CAAC,oBAAoB,CAAC,SAAS;AAE/C,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAC,MAAK;AAC5B,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE;AAChC,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,EAAE;YAEvC,SAAS,CAAC,MAAK;gBACb,SAAS,IAAI,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC,SAAS,CAAC;AAC9D,gBAAA,IAAI,QAAQ,IAAI,CAAC,SAAS,EAAE;oBAC1B,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE;;AAEhE,aAAC,CAAC;AACJ,SAAC,CAAC;AAEF,QAAA,IAAA,CAAA,aAAa,GAAG,QAAQ,CAAC,MAAK;AAC5B,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE;AAC/B,YAAA,OAAO,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAC,qBAAqB,CAAC,MAAM,CAAC,GAAG,SAAS;AACrF,SAAC,CAAC;AACH;AAtBC,IAAA,oBAAoB;AAMpB,IAAA,eAAe;+GAPJ,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,2BAA2B,EAZ5B,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;AAKT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,sBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EANS,aAAa,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAaZ,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAhBvC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,0BAA0B,cACxB,IAAI,EAAA,OAAA,EACP,CAAC,aAAa,CAAC,EACd,QAAA,EAAA;;;;;AAKT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,sBAAA,CAAA,EAAA;;;ACdH;;AAEG;;;;"}
|
|
@@ -108,7 +108,7 @@ class SimpleSearchComponent {
|
|
|
108
108
|
subscriptSizing: 'dynamic'
|
|
109
109
|
}
|
|
110
110
|
}
|
|
111
|
-
], ngImport: i0, template: "<form [formGroup]=\"form\">\n <!-- Todo: String Translations-->\n <mat-form-field appearance=\"outline\">\n <label>\n <span class=\"ymt-hide-sr\">{{'yuv.simple-search.label'|translate}}</span>\n <input matInput type=\"text\" [placeholder]=\"'yuv.simple-search.label'|translate\" formControlName=\"term\" />\n </label>\n <mat-icon matPrefix>search</mat-icon>\n <button type=\"button\"\n mat-icon-button\n matSuffix\n [disabled]=\"!!!form.value.term\"\n class=\"clear-input-action ymt-icon-button--size-s\"\n (click)=\"clear($event)\">\n @if(form.value.term){ <mat-icon>close</mat-icon>}\n </button>\n </mat-form-field>\n <button class=\"ymt-hide-sr\" mat-icon-button (click)=\"search()\" [attr.aria-label]=\"'yuv.simple-search.submit'|translate\" [disabled]=\"form.invalid\">\n <mat-icon>search</mat-icon>\n </button>\n</form>\n", styles: [":host .clear-input-action{margin-inline-end:4px}\n"], dependencies: [{ 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: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i5.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: "directive", type: i5.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i5.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }] }); }
|
|
111
|
+
], ngImport: i0, template: "<form [formGroup]=\"form\">\n <!-- Todo: String Translations-->\n <mat-form-field appearance=\"outline\">\n <label>\n <span class=\"ymt-hide-sr\">{{'yuv.simple-search.label'|translate}}</span>\n <input matInput type=\"text\" [placeholder]=\"'yuv.simple-search.label'|translate\" formControlName=\"term\" />\n </label>\n <mat-icon matPrefix>search</mat-icon>\n <button type=\"button\"\n mat-icon-button\n matSuffix\n [disabled]=\"!!!form.value.term\"\n class=\"clear-input-action ymt-icon-button--size-s\"\n (click)=\"clear($event)\"\n [attr.aria-label]=\"'yuv.simple-search.clear'|translate\"\n [attr.title]=\"'yuv.simple-search.clear'|translate\">\n @if(form.value.term){ <mat-icon>close</mat-icon>}\n </button>\n </mat-form-field>\n <button class=\"ymt-hide-sr\" mat-icon-button (click)=\"search()\" [attr.aria-label]=\"'yuv.simple-search.submit'|translate\" [disabled]=\"form.invalid\">\n <mat-icon>search</mat-icon>\n </button>\n</form>\n", styles: [":host .clear-input-action{margin-inline-end:4px}\n"], dependencies: [{ 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: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i5.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: "directive", type: i5.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i5.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }] }); }
|
|
112
112
|
}
|
|
113
113
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: SimpleSearchComponent, decorators: [{
|
|
114
114
|
type: Component,
|
|
@@ -119,7 +119,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
|
|
|
119
119
|
subscriptSizing: 'dynamic'
|
|
120
120
|
}
|
|
121
121
|
}
|
|
122
|
-
], template: "<form [formGroup]=\"form\">\n <!-- Todo: String Translations-->\n <mat-form-field appearance=\"outline\">\n <label>\n <span class=\"ymt-hide-sr\">{{'yuv.simple-search.label'|translate}}</span>\n <input matInput type=\"text\" [placeholder]=\"'yuv.simple-search.label'|translate\" formControlName=\"term\" />\n </label>\n <mat-icon matPrefix>search</mat-icon>\n <button type=\"button\"\n mat-icon-button\n matSuffix\n [disabled]=\"!!!form.value.term\"\n class=\"clear-input-action ymt-icon-button--size-s\"\n (click)=\"clear($event)\">\n @if(form.value.term){ <mat-icon>close</mat-icon>}\n </button>\n </mat-form-field>\n <button class=\"ymt-hide-sr\" mat-icon-button (click)=\"search()\" [attr.aria-label]=\"'yuv.simple-search.submit'|translate\" [disabled]=\"form.invalid\">\n <mat-icon>search</mat-icon>\n </button>\n</form>\n", styles: [":host .clear-input-action{margin-inline-end:4px}\n"] }]
|
|
122
|
+
], template: "<form [formGroup]=\"form\">\n <!-- Todo: String Translations-->\n <mat-form-field appearance=\"outline\">\n <label>\n <span class=\"ymt-hide-sr\">{{'yuv.simple-search.label'|translate}}</span>\n <input matInput type=\"text\" [placeholder]=\"'yuv.simple-search.label'|translate\" formControlName=\"term\" />\n </label>\n <mat-icon matPrefix>search</mat-icon>\n <button type=\"button\"\n mat-icon-button\n matSuffix\n [disabled]=\"!!!form.value.term\"\n class=\"clear-input-action ymt-icon-button--size-s\"\n (click)=\"clear($event)\"\n [attr.aria-label]=\"'yuv.simple-search.clear'|translate\"\n [attr.title]=\"'yuv.simple-search.clear'|translate\">\n @if(form.value.term){ <mat-icon>close</mat-icon>}\n </button>\n </mat-form-field>\n <button class=\"ymt-hide-sr\" mat-icon-button (click)=\"search()\" [attr.aria-label]=\"'yuv.simple-search.submit'|translate\" [disabled]=\"form.invalid\">\n <mat-icon>search</mat-icon>\n </button>\n</form>\n", styles: [":host .clear-input-action{margin-inline-end:4px}\n"] }]
|
|
123
123
|
}], ctorParameters: () => [], propDecorators: { query: [{
|
|
124
124
|
type: Input
|
|
125
125
|
}], querySubmit: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"yuuvis-client-framework-simple-search.mjs","sources":["../../../../../libs/yuuvis/client-framework/simple-search/src/lib/simple-search/simple-search.component.ts","../../../../../libs/yuuvis/client-framework/simple-search/src/lib/simple-search/simple-search.component.html","../../../../../libs/yuuvis/client-framework/simple-search/src/yuuvis-client-framework-simple-search.ts"],"sourcesContent":["import { Component, EventEmitter, Input, Output, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FormBuilder, FormGroup, ReactiveFormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { AggregateResult, BaseObjectTypeField, SearchQuery, SearchService, SystemService, TranslateModule, TranslateService, Utils } from '@yuuvis/client-core';\nimport { debounceTime, tap } from 'rxjs';\nimport { MatFormField, MAT_FORM_FIELD_DEFAULT_OPTIONS } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\n\nexport interface ObjectTypeAggregation {\n /**\n * id of a found object type\n */\n objectTypeId: string;\n /**\n * label of an object\n */\n label: string;\n /**\n * number of objects found\n */\n count: number;\n}\n\n@Component({\n selector: 'yuv-simple-search',\n standalone: true,\n imports: [ReactiveFormsModule, TranslateModule, MatIconModule, MatButtonModule, MatFormField, MatInputModule],\n templateUrl: './simple-search.component.html',\n styleUrls: ['./simple-search.component.scss'],\n providers: [\n {\n provide: MAT_FORM_FIELD_DEFAULT_OPTIONS,\n useValue: {\n subscriptSizing: 'dynamic'\n }\n }\n ]\n})\nexport class SimpleSearchComponent {\n #fb = inject(FormBuilder);\n readonly translate = inject(TranslateService);\n #searchService = inject(SearchService);\n #systemService = inject(SystemService);\n\n private _query: SearchQuery = {};\n /**\n * The search query\n */\n @Input() set query(q: SearchQuery | null) {\n this._query = structuredClone(q) || {};\n if (this._query.term) {\n this.form.patchValue({ term: this._query.term });\n // this.aggregate();\n } else this.form.reset();\n }\n get query() {\n return this._query;\n }\n\n form: FormGroup = this.#fb.group({\n term: [''],\n targets: []\n });\n\n /**\n * Emitted once the user submits the search\n */\n @Output() querySubmit = new EventEmitter<SearchQuery>();\n\n /**\n * Emitted once the user hits clear input button\n */\n @Output() clearInput = new EventEmitter<void>();\n /**\n * Emitted once selected targets change\n */\n @Output() targetSelectionChanged = new EventEmitter<(string | number)[]>();\n @Output() queryChange = new EventEmitter<SearchQuery>();\n @Output() typeAggregation = new EventEmitter<ObjectTypeAggregation[]>();\n\n constructor() {\n this.form.controls['targets'].valueChanges.pipe(takeUntilDestroyed()).subscribe((v) => {\n this._query.types = v;\n this.targetSelectionChanged.emit(v);\n });\n this.form.valueChanges\n .pipe(\n debounceTime(500),\n takeUntilDestroyed(),\n tap((v: any) => {\n this._query.term = v.term;\n this.queryChange.emit(this._query);\n if (this.typeAggregation.observed) this.aggregate();\n })\n )\n .subscribe();\n }\n\n search() {\n if (this.form.valid) {\n this._query.term = this.form.value.term;\n this.querySubmit.emit(this._query);\n }\n }\n\n aggregate(all?: boolean) {\n if (all || this._query.term) {\n this.#searchService.aggregate(structuredClone(this._query), [BaseObjectTypeField.OBJECT_TYPE_ID]).subscribe((res: AggregateResult) => {\n this._processAggregateResult(res);\n });\n }\n }\n\n clear($event: Event) {\n if (this.form.value.term) {\n this.form.controls['term'].setValue(null);\n this.clearInput.emit();\n }\n $event.stopPropagation();\n }\n\n private _processAggregateResult(res: AggregateResult) {\n if (res.aggregations && res.aggregations.length) {\n this.typeAggregation.emit(\n res.aggregations[0].entries\n .map((r) => ({ objectTypeId: r.key, label: this.#systemService.getLocalizedLabel(r.key) || r.key, count: r.count }))\n .sort(Utils.sortValues('label'))\n );\n } else {\n this.typeAggregation.emit([]);\n }\n }\n}\n","<form [formGroup]=\"form\">\n <!-- Todo: String Translations-->\n <mat-form-field appearance=\"outline\">\n <label>\n <span class=\"ymt-hide-sr\">{{'yuv.simple-search.label'|translate}}</span>\n <input matInput type=\"text\" [placeholder]=\"'yuv.simple-search.label'|translate\" formControlName=\"term\" />\n </label>\n <mat-icon matPrefix>search</mat-icon>\n <button type=\"button\"\n mat-icon-button\n matSuffix\n [disabled]=\"!!!form.value.term\"\n class=\"clear-input-action ymt-icon-button--size-s\"\n (click)=\"clear($event)\">\n @if(form.value.term){ <mat-icon>close</mat-icon>}\n </button>\n </mat-form-field>\n <button class=\"ymt-hide-sr\" mat-icon-button (click)=\"search()\" [attr.aria-label]=\"'yuv.simple-search.submit'|translate\" [disabled]=\"form.invalid\">\n <mat-icon>search</mat-icon>\n </button>\n</form>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"yuuvis-client-framework-simple-search.mjs","sources":["../../../../../libs/yuuvis/client-framework/simple-search/src/lib/simple-search/simple-search.component.ts","../../../../../libs/yuuvis/client-framework/simple-search/src/lib/simple-search/simple-search.component.html","../../../../../libs/yuuvis/client-framework/simple-search/src/yuuvis-client-framework-simple-search.ts"],"sourcesContent":["import { Component, EventEmitter, Input, Output, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FormBuilder, FormGroup, ReactiveFormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { AggregateResult, BaseObjectTypeField, SearchQuery, SearchService, SystemService, TranslateModule, TranslateService, Utils } from '@yuuvis/client-core';\nimport { debounceTime, tap } from 'rxjs';\nimport { MatFormField, MAT_FORM_FIELD_DEFAULT_OPTIONS } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\n\nexport interface ObjectTypeAggregation {\n /**\n * id of a found object type\n */\n objectTypeId: string;\n /**\n * label of an object\n */\n label: string;\n /**\n * number of objects found\n */\n count: number;\n}\n\n@Component({\n selector: 'yuv-simple-search',\n standalone: true,\n imports: [ReactiveFormsModule, TranslateModule, MatIconModule, MatButtonModule, MatFormField, MatInputModule],\n templateUrl: './simple-search.component.html',\n styleUrls: ['./simple-search.component.scss'],\n providers: [\n {\n provide: MAT_FORM_FIELD_DEFAULT_OPTIONS,\n useValue: {\n subscriptSizing: 'dynamic'\n }\n }\n ]\n})\nexport class SimpleSearchComponent {\n #fb = inject(FormBuilder);\n readonly translate = inject(TranslateService);\n #searchService = inject(SearchService);\n #systemService = inject(SystemService);\n\n private _query: SearchQuery = {};\n /**\n * The search query\n */\n @Input() set query(q: SearchQuery | null) {\n this._query = structuredClone(q) || {};\n if (this._query.term) {\n this.form.patchValue({ term: this._query.term });\n // this.aggregate();\n } else this.form.reset();\n }\n get query() {\n return this._query;\n }\n\n form: FormGroup = this.#fb.group({\n term: [''],\n targets: []\n });\n\n /**\n * Emitted once the user submits the search\n */\n @Output() querySubmit = new EventEmitter<SearchQuery>();\n\n /**\n * Emitted once the user hits clear input button\n */\n @Output() clearInput = new EventEmitter<void>();\n /**\n * Emitted once selected targets change\n */\n @Output() targetSelectionChanged = new EventEmitter<(string | number)[]>();\n @Output() queryChange = new EventEmitter<SearchQuery>();\n @Output() typeAggregation = new EventEmitter<ObjectTypeAggregation[]>();\n\n constructor() {\n this.form.controls['targets'].valueChanges.pipe(takeUntilDestroyed()).subscribe((v) => {\n this._query.types = v;\n this.targetSelectionChanged.emit(v);\n });\n this.form.valueChanges\n .pipe(\n debounceTime(500),\n takeUntilDestroyed(),\n tap((v: any) => {\n this._query.term = v.term;\n this.queryChange.emit(this._query);\n if (this.typeAggregation.observed) this.aggregate();\n })\n )\n .subscribe();\n }\n\n search() {\n if (this.form.valid) {\n this._query.term = this.form.value.term;\n this.querySubmit.emit(this._query);\n }\n }\n\n aggregate(all?: boolean) {\n if (all || this._query.term) {\n this.#searchService.aggregate(structuredClone(this._query), [BaseObjectTypeField.OBJECT_TYPE_ID]).subscribe((res: AggregateResult) => {\n this._processAggregateResult(res);\n });\n }\n }\n\n clear($event: Event) {\n if (this.form.value.term) {\n this.form.controls['term'].setValue(null);\n this.clearInput.emit();\n }\n $event.stopPropagation();\n }\n\n private _processAggregateResult(res: AggregateResult) {\n if (res.aggregations && res.aggregations.length) {\n this.typeAggregation.emit(\n res.aggregations[0].entries\n .map((r) => ({ objectTypeId: r.key, label: this.#systemService.getLocalizedLabel(r.key) || r.key, count: r.count }))\n .sort(Utils.sortValues('label'))\n );\n } else {\n this.typeAggregation.emit([]);\n }\n }\n}\n","<form [formGroup]=\"form\">\n <!-- Todo: String Translations-->\n <mat-form-field appearance=\"outline\">\n <label>\n <span class=\"ymt-hide-sr\">{{'yuv.simple-search.label'|translate}}</span>\n <input matInput type=\"text\" [placeholder]=\"'yuv.simple-search.label'|translate\" formControlName=\"term\" />\n </label>\n <mat-icon matPrefix>search</mat-icon>\n <button type=\"button\"\n mat-icon-button\n matSuffix\n [disabled]=\"!!!form.value.term\"\n class=\"clear-input-action ymt-icon-button--size-s\"\n (click)=\"clear($event)\"\n [attr.aria-label]=\"'yuv.simple-search.clear'|translate\"\n [attr.title]=\"'yuv.simple-search.clear'|translate\">\n @if(form.value.term){ <mat-icon>close</mat-icon>}\n </button>\n </mat-form-field>\n <button class=\"ymt-hide-sr\" mat-icon-button (click)=\"search()\" [attr.aria-label]=\"'yuv.simple-search.submit'|translate\" [disabled]=\"form.invalid\">\n <mat-icon>search</mat-icon>\n </button>\n</form>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -87,7 +87,12 @@ class SortComponent {
|
|
|
87
87
|
this.sortChanged.emit(fields);
|
|
88
88
|
}
|
|
89
89
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: SortComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
90
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.14", type: SortComponent, isStandalone: true, selector: "yuv-sort", inputs: { sortOptions: { classPropertyName: "sortOptions", publicName: "sortOptions", isSignal: true, isRequired: false, transformFunction: null }, selectedSortOption: { classPropertyName: "selectedSortOption", publicName: "selectedSortOption", isSignal: true, isRequired: false, transformFunction: null }, storageKey: { classPropertyName: "storageKey", publicName: "storageKey", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { sortChanged: "sortChanged" }, ngImport: i0, template: `<button
|
|
90
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.14", type: SortComponent, isStandalone: true, selector: "yuv-sort", inputs: { sortOptions: { classPropertyName: "sortOptions", publicName: "sortOptions", isSignal: true, isRequired: false, transformFunction: null }, selectedSortOption: { classPropertyName: "selectedSortOption", publicName: "selectedSortOption", isSignal: true, isRequired: false, transformFunction: null }, storageKey: { classPropertyName: "storageKey", publicName: "storageKey", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { sortChanged: "sortChanged" }, ngImport: i0, template: `<button
|
|
91
|
+
mat-icon-button
|
|
92
|
+
[matMenuTriggerFor]="menu"
|
|
93
|
+
[attr.title]="'yuv.sort.tooltip' | translate"
|
|
94
|
+
[attr.aria-label]="'yuv.sort.tooltip' | translate"
|
|
95
|
+
>
|
|
91
96
|
<mat-icon>swap_vert</mat-icon>
|
|
92
97
|
</button>
|
|
93
98
|
|
|
@@ -112,7 +117,12 @@ class SortComponent {
|
|
|
112
117
|
}
|
|
113
118
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: SortComponent, decorators: [{
|
|
114
119
|
type: Component,
|
|
115
|
-
args: [{ selector: 'yuv-sort', imports: [TranslateModule, ...MATERIAL_MODULES], template: `<button
|
|
120
|
+
args: [{ selector: 'yuv-sort', imports: [TranslateModule, ...MATERIAL_MODULES], template: `<button
|
|
121
|
+
mat-icon-button
|
|
122
|
+
[matMenuTriggerFor]="menu"
|
|
123
|
+
[attr.title]="'yuv.sort.tooltip' | translate"
|
|
124
|
+
[attr.aria-label]="'yuv.sort.tooltip' | translate"
|
|
125
|
+
>
|
|
116
126
|
<mat-icon>swap_vert</mat-icon>
|
|
117
127
|
</button>
|
|
118
128
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"yuuvis-client-framework-sort.mjs","sources":["../../../../../libs/yuuvis/client-framework/sort/src/lib/sort/sort.component.ts","../../../../../libs/yuuvis/client-framework/sort/src/yuuvis-client-framework-sort.ts"],"sourcesContent":["import { Component, effect, inject, input, linkedSignal, output, signal } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDivider } from '@angular/material/divider';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { SystemService, TranslateModule, TranslateService } from '@yuuvis/client-core';\nimport { SortMenuOption, SortType } from './models';\n\nconst MATERIAL_MODULES = [MatIconModule, MatMenuModule, MatButtonModule, MatDivider];\n\n@Component({\n selector: 'yuv-sort',\n imports: [TranslateModule, ...MATERIAL_MODULES],\n template: `<button mat-icon-button [matMenuTriggerFor]=\"menu\" title=\"{{ 'yuv.sort.tooltip' | translate }}\">\n <mat-icon>swap_vert</mat-icon>\n </button>\n\n <mat-menu #menu=\"matMenu\" class=\"sort-menu\" [ariaLabel]=\"'yuv.sort.tooltip' | translate\">\n @for (option of sortFields(); track $index) {\n <button\n mat-menu-item\n class=\"sort-menu-item\"\n [class.selected]=\"option.selected\"\n (click)=\"selectSort(option)\"\n [attr.aria-label]=\"option.label\"\n [attr.title]=\"option.label\"\n >\n <mat-icon>{{ option.selected ? 'radio_button_checked' : '' }}</mat-icon>\n <span>{{ option.label }}</span>\n </button>\n @if (sortFields().length - 3 === $index) {\n <mat-divider></mat-divider>\n }\n }\n </mat-menu>`,\n styleUrl: './sort.component.scss'\n})\nexport class SortComponent {\n readonly #systemService = inject(SystemService);\n readonly translate = inject(TranslateService);\n\n sortOptions = input<string[]>([]);\n selectedSortOption = input<{ field: string; order: SortType } | undefined>(undefined);\n storageKey = input<string>();\n sortChanged = output<{ field: string; order: SortType }>();\n\n orderOptions = signal<SortMenuOption[]>([\n { label: this.translate.instant('yuv.sort.ascending'), value: 'asc', type: 'order', selected: true },\n { label: this.translate.instant('yuv.sort.descending'), value: 'desc', type: 'order', selected: false }\n ]);\n\n #rememberSort = effect(() => {\n const storageKey = this.storageKey();\n if (storageKey) {\n const storage = localStorage.getItem(storageKey);\n if (storage) {\n try {\n const data = JSON.parse(storage);\n this.sortFields.update((fields) =>\n fields.map((field) =>\n field.type === 'sort' && field.value === data.field\n ? { ...field, selected: true }\n : field.type === 'order' && field.value === data.order\n ? { ...field, selected: true }\n : { ...field, selected: false }\n )\n );\n } catch (error) {\n console.error('Error parsing sort data from localStorage:', error);\n }\n }\n }\n });\n\n #reEvaluate = signal<Date | null>(null);\n sortFields = linkedSignal({\n source: () => ({\n sortOptions: this.sortOptions(),\n orderOptions: this.orderOptions(),\n selectedSortOption: this.selectedSortOption(),\n evaluate: this.#reEvaluate()\n }),\n computation: ({ sortOptions, orderOptions, selectedSortOption }) => {\n // Ensure selectedSortOption.field is present in sortOptions\n if (selectedSortOption && selectedSortOption.field && !sortOptions.includes(selectedSortOption.order)) {\n orderOptions = orderOptions.map((order) => (order.value === selectedSortOption.order ? { ...order, selected: true } : { ...order, selected: false }));\n }\n\n return [\n ...sortOptions.map((f, index) => ({\n label: this.#systemService.getLocalizedLabel(f) || f,\n value: f,\n type: 'sort' as const,\n selected: index === 0 // first sort option is default\n })),\n ...orderOptions\n ];\n }\n });\n\n constructor() {\n this.translate.onLangChange.pipe(takeUntilDestroyed()).subscribe({ next: () => this.#reEvaluate.set(new Date()) });\n }\n\n selectSort(option: SortMenuOption) {\n this.sortFields.update((fields) => fields.map((field) => (field.type === option.type ? { ...field, selected: field.value === option.value } : field)));\n const selectedFields = this.sortFields().filter((field) => field.selected);\n const fields = selectedFields.reduce(\n (acc, field) => {\n if (field.type === 'sort') acc.field = field.value;\n if (field.type === 'order') acc.order = field.value as SortType;\n return acc;\n },\n { field: '', order: 'asc' as SortType }\n );\n\n const storageKey = this.storageKey();\n storageKey && localStorage.setItem(storageKey, JSON.stringify(fields));\n this.sortChanged.emit(fields);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"yuuvis-client-framework-sort.mjs","sources":["../../../../../libs/yuuvis/client-framework/sort/src/lib/sort/sort.component.ts","../../../../../libs/yuuvis/client-framework/sort/src/yuuvis-client-framework-sort.ts"],"sourcesContent":["import { Component, effect, inject, input, linkedSignal, output, signal } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDivider } from '@angular/material/divider';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { SystemService, TranslateModule, TranslateService } from '@yuuvis/client-core';\nimport { SortMenuOption, SortType } from './models';\n\nconst MATERIAL_MODULES = [MatIconModule, MatMenuModule, MatButtonModule, MatDivider];\n\n@Component({\n selector: 'yuv-sort',\n imports: [TranslateModule, ...MATERIAL_MODULES],\n template: `<button\n mat-icon-button\n [matMenuTriggerFor]=\"menu\"\n [attr.title]=\"'yuv.sort.tooltip' | translate\"\n [attr.aria-label]=\"'yuv.sort.tooltip' | translate\"\n >\n <mat-icon>swap_vert</mat-icon>\n </button>\n\n <mat-menu #menu=\"matMenu\" class=\"sort-menu\" [ariaLabel]=\"'yuv.sort.tooltip' | translate\">\n @for (option of sortFields(); track $index) {\n <button\n mat-menu-item\n class=\"sort-menu-item\"\n [class.selected]=\"option.selected\"\n (click)=\"selectSort(option)\"\n [attr.aria-label]=\"option.label\"\n [attr.title]=\"option.label\"\n >\n <mat-icon>{{ option.selected ? 'radio_button_checked' : '' }}</mat-icon>\n <span>{{ option.label }}</span>\n </button>\n @if (sortFields().length - 3 === $index) {\n <mat-divider></mat-divider>\n }\n }\n </mat-menu>`,\n styleUrl: './sort.component.scss'\n})\nexport class SortComponent {\n readonly #systemService = inject(SystemService);\n readonly translate = inject(TranslateService);\n\n sortOptions = input<string[]>([]);\n selectedSortOption = input<{ field: string; order: SortType } | undefined>(undefined);\n storageKey = input<string>();\n sortChanged = output<{ field: string; order: SortType }>();\n\n orderOptions = signal<SortMenuOption[]>([\n { label: this.translate.instant('yuv.sort.ascending'), value: 'asc', type: 'order', selected: true },\n { label: this.translate.instant('yuv.sort.descending'), value: 'desc', type: 'order', selected: false }\n ]);\n\n #rememberSort = effect(() => {\n const storageKey = this.storageKey();\n if (storageKey) {\n const storage = localStorage.getItem(storageKey);\n if (storage) {\n try {\n const data = JSON.parse(storage);\n this.sortFields.update((fields) =>\n fields.map((field) =>\n field.type === 'sort' && field.value === data.field\n ? { ...field, selected: true }\n : field.type === 'order' && field.value === data.order\n ? { ...field, selected: true }\n : { ...field, selected: false }\n )\n );\n } catch (error) {\n console.error('Error parsing sort data from localStorage:', error);\n }\n }\n }\n });\n\n #reEvaluate = signal<Date | null>(null);\n sortFields = linkedSignal({\n source: () => ({\n sortOptions: this.sortOptions(),\n orderOptions: this.orderOptions(),\n selectedSortOption: this.selectedSortOption(),\n evaluate: this.#reEvaluate()\n }),\n computation: ({ sortOptions, orderOptions, selectedSortOption }) => {\n // Ensure selectedSortOption.field is present in sortOptions\n if (selectedSortOption && selectedSortOption.field && !sortOptions.includes(selectedSortOption.order)) {\n orderOptions = orderOptions.map((order) => (order.value === selectedSortOption.order ? { ...order, selected: true } : { ...order, selected: false }));\n }\n\n return [\n ...sortOptions.map((f, index) => ({\n label: this.#systemService.getLocalizedLabel(f) || f,\n value: f,\n type: 'sort' as const,\n selected: index === 0 // first sort option is default\n })),\n ...orderOptions\n ];\n }\n });\n\n constructor() {\n this.translate.onLangChange.pipe(takeUntilDestroyed()).subscribe({ next: () => this.#reEvaluate.set(new Date()) });\n }\n\n selectSort(option: SortMenuOption) {\n this.sortFields.update((fields) => fields.map((field) => (field.type === option.type ? { ...field, selected: field.value === option.value } : field)));\n const selectedFields = this.sortFields().filter((field) => field.selected);\n const fields = selectedFields.reduce(\n (acc, field) => {\n if (field.type === 'sort') acc.field = field.value;\n if (field.type === 'order') acc.order = field.value as SortType;\n return acc;\n },\n { field: '', order: 'asc' as SortType }\n );\n\n const storageKey = this.storageKey();\n storageKey && localStorage.setItem(storageKey, JSON.stringify(fields));\n this.sortChanged.emit(fields);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;AASA,MAAM,gBAAgB,GAAG,CAAC,aAAa,EAAE,aAAa,EAAE,eAAe,EAAE,UAAU,CAAC;MAkCvE,aAAa,CAAA;AACf,IAAA,cAAc;AAavB,IAAA,aAAa;AAuBb,IAAA,WAAW;AA0BX,IAAA,WAAA,GAAA;AA9DS,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,aAAa,CAAC;AACtC,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAE7C,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAW,EAAE,CAAC;AACjC,QAAA,IAAA,CAAA,kBAAkB,GAAG,KAAK,CAAiD,SAAS,CAAC;QACrF,IAAU,CAAA,UAAA,GAAG,KAAK,EAAU;QAC5B,IAAW,CAAA,WAAA,GAAG,MAAM,EAAsC;QAE1D,IAAY,CAAA,YAAA,GAAG,MAAM,CAAmB;YACtC,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,oBAAoB,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE;YACpG,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,qBAAqB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK;AACtG,SAAA,CAAC;AAEF,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,MAAK;AAC1B,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE;YACpC,IAAI,UAAU,EAAE;gBACd,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC;gBAChD,IAAI,OAAO,EAAE;AACX,oBAAA,IAAI;wBACF,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;AAChC,wBAAA,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,KAC5B,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,KACf,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC;8BAC1C,EAAE,GAAG,KAAK,EAAE,QAAQ,EAAE,IAAI;AAC5B,8BAAE,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC;kCAC7C,EAAE,GAAG,KAAK,EAAE,QAAQ,EAAE,IAAI;kCAC1B,EAAE,GAAG,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CACpC,CACF;;oBACD,OAAO,KAAK,EAAE;AACd,wBAAA,OAAO,CAAC,KAAK,CAAC,4CAA4C,EAAE,KAAK,CAAC;;;;AAI1E,SAAC,CAAC;AAEF,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAc,IAAI,CAAC;QACvC,IAAU,CAAA,UAAA,GAAG,YAAY,CAAC;AACxB,YAAA,MAAM,EAAE,OAAO;AACb,gBAAA,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE;AAC/B,gBAAA,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE;AACjC,gBAAA,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,EAAE;AAC7C,gBAAA,QAAQ,EAAE,IAAI,CAAC,WAAW;aAC3B,CAAC;YACF,WAAW,EAAE,CAAC,EAAE,WAAW,EAAE,YAAY,EAAE,kBAAkB,EAAE,KAAI;;AAEjE,gBAAA,IAAI,kBAAkB,IAAI,kBAAkB,CAAC,KAAK,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE;AACrG,oBAAA,YAAY,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,KAAK,KAAK,kBAAkB,CAAC,KAAK,GAAG,EAAE,GAAG,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;;gBAGvJ,OAAO;oBACL,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM;wBAChC,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC;AACpD,wBAAA,KAAK,EAAE,CAAC;AACR,wBAAA,IAAI,EAAE,MAAe;AACrB,wBAAA,QAAQ,EAAE,KAAK,KAAK,CAAC;AACtB,qBAAA,CAAC,CAAC;AACH,oBAAA,GAAG;iBACJ;;AAEJ,SAAA,CAAC;AAGA,QAAA,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC;;AAGpH,IAAA,UAAU,CAAC,MAAsB,EAAA;QAC/B,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,GAAG,EAAE,GAAG,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC;AACtJ,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,QAAQ,CAAC;QAC1E,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,CAClC,CAAC,GAAG,EAAE,KAAK,KAAI;AACb,YAAA,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM;AAAE,gBAAA,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;AAClD,YAAA,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO;AAAE,gBAAA,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC,KAAiB;AAC/D,YAAA,OAAO,GAAG;SACX,EACD,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,KAAiB,EAAE,CACxC;AAED,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE;AACpC,QAAA,UAAU,IAAI,YAAY,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;AACtE,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC;;+GAjFpB,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAb,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,aAAa,EA7Bd,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,kBAAA,EAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;gBA0BI,EA3BJ,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,sFAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,eAAe,2FAJD,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,aAAa,EAAE,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,WAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,OAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,WAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,6CAAA,EAAA,MAAA,EAAA,CAAA,sBAAA,EAAA,mBAAA,EAAA,oBAAA,EAAA,4BAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,eAAe,4IAAE,UAAU,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,OAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAkCtE,aAAa,EAAA,UAAA,EAAA,CAAA;kBAhCzB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,UAAU,WACX,CAAC,eAAe,EAAE,GAAG,gBAAgB,CAAC,EACrC,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BI,eAAA,CAAA,EAAA,MAAA,EAAA,CAAA,sFAAA,CAAA,EAAA;;;ACxChB;;AAEG;;;;"}
|
package/lib/assets/i18n/de.json
CHANGED
|
@@ -130,6 +130,7 @@
|
|
|
130
130
|
"yuv.table.renderer.moreEntries": "Es werden nur die ersten 10 Einträge angezeigt. Insgesamt: {{ count }}",
|
|
131
131
|
"yuv.sequence-list.form.nextAssignee": "Empfänger",
|
|
132
132
|
"yuv.sequence-list.form.task": "Aufgabe",
|
|
133
|
+
"yuv.simple-search.clear": "Löschen",
|
|
133
134
|
"yuv.simple-search.label": "Suchen",
|
|
134
135
|
"yuv.simple-search.submit": "Suche starten",
|
|
135
136
|
"yuv.sort.ascending": "Aufsteigend",
|
package/lib/assets/i18n/en.json
CHANGED
|
@@ -124,12 +124,13 @@
|
|
|
124
124
|
"yuv.object-versions.actions.restore": "Restore version",
|
|
125
125
|
"yuv.object-versions.actions.restore.confirm.message": "Do you really want to restore version {{version}}?",
|
|
126
126
|
"yuv.object-versions.error.fetch-versions": "Unable to load versions",
|
|
127
|
-
"yuv.object-versions.list.version": "
|
|
127
|
+
"yuv.object-versions.list.version": "Version {{version}}",
|
|
128
128
|
"yuv.object-versions.tabs.content.title": "Content",
|
|
129
129
|
"yuv.object-versions.tabs.indexdata.title": "Metadata",
|
|
130
130
|
"yuv.table.renderer.moreEntries": "Only the first ten entries are shown. Total: {{ count }}",
|
|
131
131
|
"yuv.sequence-list.form.nextAssignee": "Recipient",
|
|
132
132
|
"yuv.sequence-list.form.task": "Task",
|
|
133
|
+
"yuv.simple-search.clear": "Clear",
|
|
133
134
|
"yuv.simple-search.label": "Search",
|
|
134
135
|
"yuv.simple-search.submit": "Start search",
|
|
135
136
|
"yuv.sort.ascending": "Ascending",
|
|
@@ -153,7 +154,7 @@
|
|
|
153
154
|
"yuv.upload-progress.header.uploading": "Upload of {{count}} file(s)",
|
|
154
155
|
"yuv.widget-grid.button.cancel": "Cancel",
|
|
155
156
|
"yuv.widget-grid.button.save": "Save",
|
|
156
|
-
"yuv.widget-grid.empty": "No widgets have been added to this workspace
|
|
157
|
+
"yuv.widget-grid.empty": "No widgets have been added to this workspace.",
|
|
157
158
|
"yuv.widget-grid.empty.create": "Edit workspace",
|
|
158
159
|
"yuv.widget-grid.widget-picker.empty": "No widgets available.",
|
|
159
160
|
"yuv.widget-grid.widget-picker.title": "Widgets",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@yuuvis/client-framework",
|
|
3
|
-
"version": "2.3.
|
|
3
|
+
"version": "2.3.14",
|
|
4
4
|
"author": "OPTIMAL SYSTEMS GmbH <npm@optimal-systems.de>",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"peerDependencies": {
|
|
@@ -8,15 +8,15 @@
|
|
|
8
8
|
"@angular/common": "^19.2.1",
|
|
9
9
|
"@angular/core": "^19.2.1",
|
|
10
10
|
"angular-gridster2": "^19.0.0",
|
|
11
|
-
"@yuuvis/client-core": "^2.3.
|
|
12
|
-
"@yuuvis/client-shell-core": "^2.3.
|
|
11
|
+
"@yuuvis/client-core": "^2.3.14",
|
|
12
|
+
"@yuuvis/client-shell-core": "^2.3.14",
|
|
13
13
|
"ng-dynamic-component": "^10.8.2",
|
|
14
14
|
"modern-normalize": "^3.0.1"
|
|
15
15
|
},
|
|
16
16
|
"dependencies": {
|
|
17
17
|
"@angular/material": "^19.2.15",
|
|
18
18
|
"@ngrx/signals": "^19.2.0",
|
|
19
|
-
"@yuuvis/material": "2.3.
|
|
19
|
+
"@yuuvis/material": "2.3.14",
|
|
20
20
|
"@yuuvis/media-viewer": "^2.0.10",
|
|
21
21
|
"angular-split": "^19.0.0",
|
|
22
22
|
"tslib": "^2.3.0"
|
|
@@ -55,14 +55,14 @@
|
|
|
55
55
|
"types": "./datepicker/index.d.ts",
|
|
56
56
|
"default": "./fesm2022/yuuvis-client-framework-datepicker.mjs"
|
|
57
57
|
},
|
|
58
|
-
"./forms": {
|
|
59
|
-
"types": "./forms/index.d.ts",
|
|
60
|
-
"default": "./fesm2022/yuuvis-client-framework-forms.mjs"
|
|
61
|
-
},
|
|
62
58
|
"./icons": {
|
|
63
59
|
"types": "./icons/index.d.ts",
|
|
64
60
|
"default": "./fesm2022/yuuvis-client-framework-icons.mjs"
|
|
65
61
|
},
|
|
62
|
+
"./forms": {
|
|
63
|
+
"types": "./forms/index.d.ts",
|
|
64
|
+
"default": "./fesm2022/yuuvis-client-framework-forms.mjs"
|
|
65
|
+
},
|
|
66
66
|
"./list": {
|
|
67
67
|
"types": "./list/index.d.ts",
|
|
68
68
|
"default": "./fesm2022/yuuvis-client-framework-list.mjs"
|