import { ClassComponent, GlobalComponentConstructor, HintedString } from '../.././components/ts-helpers'; import { TableColumn } from '../.././components/datatable/DataTable.vue.d'; import { FilterField } from '../.././components/filtercontainer/FilterContainer.vue.d'; import { ChangelogFilterQuery } from '@tagsamurai/acts-api-services/src/dto/changelog.dto'; export type ChangelogTemplateColumn = { index: number; column: TableColumn }; export type ChangelogTemplateFilter = { index: number; filter: FilterField }; export type ChangelogDefaultField = | 'createdAt' | 'action' | 'object' | 'objectName' | 'field' | 'oldValue' | 'newValue' | 'modifiedBy'; export type ChangelogFilter = { object?: string[]; objectName?: string[]; field?: string[]; action?: string[]; modifiedBy?: number[]; createdAt?: number[]; }; /** * Props for Changelog component */ export interface ChangelogProps { /** * Props to determine whether this component should using button or not * For ChangelogPage * @ignore */ useButton?: boolean; /** * To set custom name for specific column in changelog table */ objectNameColumn?: string; /** * Title content of the dialog. * @example 'Changelog: Roles > Transfer' */ header?: string | undefined; /** * To give additional columns in changelog table */ additionalTemplateColumns?: ChangelogTemplateColumn[]; /** * To give additional filters in changelog filter */ additionalTemplateFilters?: ChangelogTemplateFilter[]; /** * Array to determine that these columns will be hidden */ removedColumns?: ChangelogDefaultField[]; /** * Array to determine that these filter fields will be hidden */ removedFilters?: Omit[]; /** * Changelog object. * Note: Even if this props is mandatory, if you fill props `objects` then props `object` will not be processed in component. */ object: string; /** * Changelog object ID. */ objectId?: string; /** * Changelog custom params, contains stringified filter query needed. */ customParams?: ChangelogFilterQuery; /** * Use this props if changelog need button download * @default false */ useButtonDownload?: boolean; /** * Text of the button. */ label?: string; /** * Position of the icon. * @defaultValue left */ iconPos?: 'left' | 'right'; /** * Defines the style of the button. */ severity?: | HintedString< | 'secondary' | 'success' | 'info' | 'warning' | 'help' | 'danger' | 'contrast' > | undefined; /** * To determine whether changelog button use outlined appearance or not * * @default true */ outlined?: boolean; /** * To determine whether changelog button use text only appearance or not * * @default false */ text?: boolean; /** * File name is a must if there's button download * @default 'Changelog' only */ fileName?: string; /** * Now changelog support custom table name from outside */ tableName?: string; } /** * Emits for Changelog component */ export type ChangelogEmits = { hide: []; }; /** * **WangsVue - Changelog** * * _Changelog is a component for to show changelog dialog. * You need to install vee-validate while using this component._ * * --- --- * ![WangsVue](https://www.wangs.id/wp-content/uploads/2023/12/cropped-Logo_Wangsid-removebg-preview-192x192.png) * * @group components */ declare class Changelog extends ClassComponent< ChangelogProps, unknown, ChangelogEmits > {} declare module '@vue/runtime-core' { interface GlobalComponents { Changelog: GlobalComponentConstructor; } } export default Changelog;