@yuuvis/client-framework 2.6.3 → 2.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/common/lib/components/busy-overlay/busy-overlay.component.d.ts +0 -1
- package/datepicker/lib/calendar/calendar.component.d.ts +1 -2
- package/datepicker/lib/date-input/date-input.component.d.ts +1 -1
- package/fesm2022/yuuvis-client-framework-common.mjs +1 -4
- package/fesm2022/yuuvis-client-framework-common.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-datepicker.mjs +32 -29
- package/fesm2022/yuuvis-client-framework-datepicker.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-forms.mjs +7 -4
- package/fesm2022/yuuvis-client-framework-forms.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-list.mjs +96 -62
- package/fesm2022/yuuvis-client-framework-list.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-object-flavor.mjs +2 -2
- package/fesm2022/yuuvis-client-framework-object-flavor.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-object-versions.mjs +1 -1
- package/fesm2022/yuuvis-client-framework-object-versions.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-query-list.mjs +284 -0
- package/fesm2022/yuuvis-client-framework-query-list.mjs.map +1 -0
- package/fesm2022/yuuvis-client-framework-tile-list.mjs +92 -203
- package/fesm2022/yuuvis-client-framework-tile-list.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-tree.mjs +8 -5
- package/fesm2022/yuuvis-client-framework-tree.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework.mjs +716 -160
- package/fesm2022/yuuvis-client-framework.mjs.map +1 -1
- package/lib/config/halo-focus-defaults/halo-excluded-elements.const.d.ts +26 -0
- package/lib/config/halo-focus-defaults/halo-focus-navigation-keys.const.d.ts +25 -0
- package/lib/config/halo-focus-defaults/halo-focus-offset.const.d.ts +25 -0
- package/lib/config/halo-focus-defaults/halo-focus-styles.const.d.ts +26 -0
- package/lib/config/halo-focus-defaults/index.d.ts +4 -0
- package/lib/config/index.d.ts +1 -0
- package/lib/models/halo-focus-config/halo-focus-config.model.d.ts +48 -0
- package/lib/models/halo-focus-config/index.d.ts +1 -0
- package/lib/models/index.d.ts +1 -0
- package/lib/providers/halo-focus/index.d.ts +1 -0
- package/lib/providers/halo-focus/provide-halo-focus.d.ts +58 -6
- package/lib/providers/index.d.ts +1 -1
- package/lib/services/halo-focus/halo-focus.service.d.ts +80 -17
- package/lib/services/halo-utility/halo-utility.service.d.ts +230 -0
- package/lib/services/index.d.ts +1 -0
- package/list/lib/list.component.d.ts +35 -6
- package/package.json +19 -15
- package/query-list/README.md +3 -0
- package/query-list/index.d.ts +2 -0
- package/query-list/lib/query-list.component.d.ts +152 -0
- package/query-list/lib/query-list.module.d.ts +7 -0
- package/tile-list/lib/tile-list/tile-list.component.d.ts +60 -34
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"yuuvis-client-framework-query-list.mjs","sources":["../../../../../libs/yuuvis/client-framework/query-list/src/lib/query-list.component.ts","../../../../../libs/yuuvis/client-framework/query-list/src/lib/query-list.component.html","../../../../../libs/yuuvis/client-framework/query-list/src/lib/query-list.module.ts","../../../../../libs/yuuvis/client-framework/query-list/src/yuuvis-client-framework-query-list.ts"],"sourcesContent":["import { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { CommonModule } from '@angular/common';\nimport { Component, computed, contentChild, effect, HostBinding, inject, input, output, signal, TemplateRef, untracked, viewChild } from '@angular/core';\nimport { MatPaginatorModule, PageEvent } from '@angular/material/paginator';\nimport { SearchQuery, SearchResult, SearchResultItem, SearchService } from '@yuuvis/client-core';\nimport { ClickDoubleDirective, DragSelectDirective, DragSelectItemDirective } from '@yuuvis/client-framework/common';\nimport { ListComponent, YuvListModule } from '@yuuvis/client-framework/list';\nimport { Pagination } from '@yuuvis/client-framework/pagination';\nimport { DeviceService } from '@yuuvis/material';\n\n/**\n * Component to display a list of items based on a search query. \n * It will execute the query and render the results using the provided item template.\n * \n * The component supports pagination, multi-selection, and drag selection.\n * \n * If you don't provide a transformer function, the raw SearchResultItem objects will be \n * used as items and passed to the template. The transformer function allows you to map\n * the SearchResultItem objects to a custom format before rendering. \n *\n * Example usage:\n * ```html\n * <yuv-query-list [transformer]=\"transformResult\" [query]=\"query\" (itemSelect)=\"onItemSelect($event)\">\n \n <!-- template used to render result item -->\n <ng-template #yuvQueryListItem let-item>\n <yuv-list-tile>\n <ng-template #titleSlot>{{ item.id }}</ng-template>\n <ng-template #descriptionSlot>{{ item.modified }}</ng-template>\n </yuv-list-tile>\n </ng-template>\n\n <!-- Content to display when the list is empty -->\n <ng-template #yuvQueryListEmpty>\n <div>No documents found.</div>\n </ng-template>\n\n </yuv-query-list>\n * ```\n *\n * ```ts\n * @Component({...})\n * export class TestQueryListComponent {\n * query = 'SELECT * FROM system:document';\n * \n * transformResult = (items: SearchResultItem[]) =>\n * items.map((item) => ({\n * id: item.fields.get(BaseObjectTypeField.OBJECT_ID),\n * modified: item.fields.get(BaseObjectTypeField.MODIFICATION_DATE)\n * }));\n * } * \n * ```\n */\n@Component({\n selector: 'yuv-query-list',\n imports: [CommonModule, YuvListModule, ClickDoubleDirective, DragSelectDirective, DragSelectItemDirective, MatPaginatorModule],\n templateUrl: './query-list.component.html',\n styleUrl: './query-list.component.scss'\n})\nexport class QueryListComponent {\n #device = inject(DeviceService);\n #searchService = inject(SearchService);\n list = viewChild.required<ListComponent>('list');\n itemTemplate = contentChild<TemplateRef<any>>('yuvQueryListItem');\n emptyTemplate = contentChild<TemplateRef<any>>('yuvQueryListEmpty');\n\n isTouchDevice = this.#device.isTouchEnabled;\n /**\n * The query to execute (SearchQuery object or CMIS query string).\n */\n query = input<SearchQuery | string | null>();\n\n /**\n * Optional transformer function to map SearchResultItem to a custom format.\n */\n transformer = input<((items: SearchResultItem[]) => unknown[]) | null>();\n /**\n * Function that returns `true` if selection changes should be prevented.\n * This can be used to temporarily block selection changes, e.g. while\n * there is a pending change inside another component that refers to the\n * current selection.\n */\n preventChangeUntil = input<() => boolean>(() => false);\n /**\n * If `true`, the list will select an item automatically on initialization.\n * First, list will search for an item item that has the \"selected\"-attribute\n * and is not disabled. If no such item exists, the first item will be selected.\n * @default false\n */\n autoSelect = input<boolean, BooleanInput>(false, { transform: (value: BooleanInput) => coerceBooleanProperty(value) });\n\n /**\n * Event emitted when items are selected. Emits an array of selected item indices.\n *\n */\n itemSelect = output<number[]>();\n /**\n * Event emitted during drag selection, providing the current selection of item indices.\n */\n dragSelectChange = output<number[]>();\n /**\n * Event emitted when an item is double-clicked, providing the index of the item.\n */\n itemDoubleClick = output<number>();\n /**\n * Event emitted when the query result is available, providing total count of items.\n */\n queryResult = output<{ totalCount: number }>();\n\n #items = signal<SearchResultItem[]>([]);\n /**\n * The list of result items after applying the optional transformer.\n */\n resultItems = computed(() => {\n const items = this.#items();\n const transformer = this.transformer();\n return transformer ? transformer(items) : items;\n });\n\n /**\n * Number of items to fetch per page when executing the query.\n * @default SearchService.DEFAULT_QUERY_SIZE\n */\n pageSize = input<number>(SearchService.DEFAULT_QUERY_SIZE);\n\n /**\n * Enables or disables drag selection of items. If `true`, users can select multiple items by dragging the mouse.\n * @default true\n */\n enableDragSelect = input<boolean>(true);\n\n /**\n * Sets up the ability to select multiple tiles\n * @default false\n */\n multiselect = input<boolean>(false);\n /**\n * If `true`, the component will handle selection itself. This means that\n * the parent component will be responsible for styling the selected and\n * focused items. If `false`, the component will take care of visualizing\n * the selection and focus states.\n * @default false\n */\n selfHandleSelection = input<boolean>(false);\n\n /**\n * Indicator signal whether a query is currently being executed.\n * You could use this to show a loading indicator in the UI.\n */\n busy = signal<boolean>(false);\n\n // state of pagination\n @HostBinding('class.pagination') pagination?: Pagination;\n\n #executeQueryEffect = effect(() => {\n // execute the query each time it changes\n const query = this.query();\n if (query)\n untracked(() => {\n this.#executeQuery(query || null);\n });\n });\n\n onItemClick(idx: number, event: MouseEvent) {\n this.list().select(idx, event.shiftKey, event.ctrlKey);\n this.list().focus();\n }\n\n onItemDoubleClick(idx: number, event: MouseEvent) {\n this.itemDoubleClick.emit(idx);\n }\n\n onDragSelectChange(sel: number[]) {\n this.list().multiSelect(sel);\n this.dragSelectChange.emit(sel);\n }\n\n onDragSelect(sel: number[]) {\n this.list().focus();\n this.itemSelect.emit(sel);\n }\n\n /**\n * Selects multiple items in the list.\n */\n multiSelect(index: number[]): void {\n this.list().multiSelect(index);\n }\n\n /**\n * Clear the current selection.\n * @param silent If `true`, the `itemSelect` event will not be emitted.\n */\n clear(silent = false) {\n this.list().clear(silent);\n }\n\n /**\n * Refreshes the list by re-executing the current query/page.\n */\n refresh() {\n const query = this.query();\n if (query) {\n if (this.pagination) {\n this.goToPage(this.pagination.page);\n } else this.#executeQuery(query || null);\n }\n }\n\n changePage(pe: PageEvent) {\n this.goToPage(pe.pageIndex + 1);\n }\n\n goToPage(page: number) {\n const query = this.query();\n if (!query) return;\n this.busy.set(true);\n this.#searchService\n .getPage(query, page, this.pageSize())\n\n .subscribe({\n next: (res: SearchResult) => {\n this.#setupPagination(res);\n this.#items.set(res.items);\n this.busy.set(false);\n },\n error: (err) => {\n // TODO: how should errors be handles in case hat loading pages fail\n this.busy.set(false);\n console.error(err);\n }\n });\n }\n\n /**\n * Executes a search query.\n * @param query The search query to execute. This may be a SearchQuery object or a string. If it's a string, it is supposed to\n * be a CMIS query statement.\n */\n #executeQuery(query: SearchQuery | string | null) {\n if (query && !this.busy()) {\n // reset items to avoid old data being shown while new stuff is loaded\n this.#items.set([]);\n this.busy.set(true);\n\n (typeof query === 'string'\n ? this.#searchService.searchCmis(query as string, this.pageSize())\n : this.#searchService.search(query as SearchQuery)\n ).subscribe({\n next: (res: SearchResult) => {\n this.#setupPagination(res);\n this.#items.set(res.items);\n this.queryResult.emit({ totalCount: res.totalNumItems });\n this.busy.set(false);\n },\n error: (err) => {\n this.busy.set(false);\n console.error(err);\n }\n });\n }\n }\n\n #setupPagination(searchResult: SearchResult) {\n this.pagination = undefined;\n this.pagination = searchResult.paging\n ? {\n total: searchResult.totalNumItems,\n pages: searchResult.paging.totalPages,\n page: searchResult.paging.page\n }\n : undefined;\n }\n}\n","<yuv-list\n #list\n [multiselect]=\"multiselect()\"\n [autoSelect]=\"autoSelect()\"\n [preventChangeUntil]=\"preventChangeUntil()\"\n [selfHandleClick]=\"true\"\n [selfHandleSelection]=\"selfHandleSelection()\"\n [yuvDragSelect]=\"{ disabled: !enableDragSelect() || !multiselect() || isTouchDevice }\"\n (dragSelectChange)=\"onDragSelectChange($event)\"\n (dragSelect)=\"onDragSelect($event)\"\n (itemSelect)=\"itemSelect.emit($event)\"\n>\n @for (i of resultItems(); track $index) {\n <div yuvListItem yuvDragSelectItem \n (click.single)=\"onItemClick($index, $event)\"\n (click.double)=\"onItemDoubleClick($index, $event)\" >\n <ng-container *ngTemplateOutlet=\"itemTemplate() || null; context: { $implicit: i, index: $index }\"></ng-container>\n </div>\n } @empty {\n <ng-container *ngTemplateOutlet=\"emptyTemplate() || null\"></ng-container>\n }\n</yuv-list>\n@if (pagination) {\n <mat-paginator class=\"paginator\" [length]=\"pagination.total\" [pageSize]=\"pageSize()\" (page)=\"changePage($event)\" hidePageSize> </mat-paginator>\n}\n","import { NgModule } from '@angular/core';\nimport { QueryListComponent } from './query-list.component';\n\nconst cmp = [QueryListComponent];\n@NgModule({\n imports: cmp,\n exports: cmp\n})\nexport class YuvQueryListModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|