@vuu-ui/vuu-table-extras 4.1.0 → 5.0.0-alpha.1
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/package.json +18 -18
- package/src/calculated-column/useEditCalculatedColumn.js +1 -1
- package/src/cell-renderers/dropdown-cell/DropdownCell.css.js +29 -5
- package/src/cell-renderers/dropdown-cell/DropdownCell.js +4 -1
- package/src/column-expression-input/column-language-parser/column-expression-parse-utils.js +1 -1
- package/src/column-expression-input/useColumnExpressionEditor.js +0 -1
- package/src/column-picker/ColumnPicker.js +3 -1
- package/src/csv-upload/data-upload-preview/DataUploadPreview.js +1 -1
- package/types/column-expression-input/column-language-parser/column-expression-parse-utils.d.ts +1 -1
- package/types/column-expression-input/useColumnExpressionEditor.d.ts +4 -4
- package/types/column-picker/ColumnPicker.d.ts +4 -4
- package/types/inline-add-row/useInlineAddRow.d.ts +1 -0
- package/types/tabbed-table-config-panel/TabbedTableConfigPanel.d.ts +4 -4
- package/types/src/calculated-column/CalculatedColumnPanel.d.ts +0 -12
- package/types/src/calculated-column/useCalculatedColumnPanel.d.ts +0 -10
- package/types/src/calculated-column/useEditCalculatedColumn.d.ts +0 -13
- package/types/src/cell-edit-validators/CaseValidator.d.ts +0 -2
- package/types/src/cell-edit-validators/PatternValidator.d.ts +0 -2
- package/types/src/cell-edit-validators/index.d.ts +0 -2
- package/types/src/cell-renderers/background-cell/BackgroundCell.d.ts +0 -2
- package/types/src/cell-renderers/background-cell/BackgroundCellConfigurationEditor.d.ts +0 -2
- package/types/src/cell-renderers/background-cell/index.d.ts +0 -2
- package/types/src/cell-renderers/background-cell/useDirection.d.ts +0 -3
- package/types/src/cell-renderers/button-cell/IconButtonCell.d.ts +0 -6
- package/types/src/cell-renderers/dropdown-cell/DropdownCell.d.ts +0 -2
- package/types/src/cell-renderers/dropdown-cell/index.d.ts +0 -1
- package/types/src/cell-renderers/index.d.ts +0 -6
- package/types/src/cell-renderers/lookup-cell/LookupCell.d.ts +0 -2
- package/types/src/cell-renderers/lookup-cell/index.d.ts +0 -1
- package/types/src/cell-renderers/pct-progress-cell/PctProgressCell.d.ts +0 -2
- package/types/src/cell-renderers/pct-progress-cell/index.d.ts +0 -1
- package/types/src/cell-renderers/progress-cell/ProgressCell.d.ts +0 -1
- package/types/src/cell-renderers/progress-cell/index.d.ts +0 -1
- package/types/src/column-expression-input/ColumnExpressionInput.d.ts +0 -10
- package/types/src/column-expression-input/column-function-descriptors.d.ts +0 -15
- package/types/src/column-expression-input/column-language-parser/ColumnExpressionLanguage.d.ts +0 -2
- package/types/src/column-expression-input/column-language-parser/ColumnExpressionTreeWalker.d.ts +0 -57
- package/types/src/column-expression-input/column-language-parser/column-expression-parse-utils.d.ts +0 -5
- package/types/src/column-expression-input/column-language-parser/generated/column-parser.d.ts +0 -2
- package/types/src/column-expression-input/column-language-parser/generated/column-parser.terms.d.ts +0 -1
- package/types/src/column-expression-input/column-language-parser/index.d.ts +0 -3
- package/types/src/column-expression-input/column-language-parser/test.d.mts +0 -1
- package/types/src/column-expression-input/functionDocInfo.d.ts +0 -2
- package/types/src/column-expression-input/highlighting.d.ts +0 -1
- package/types/src/column-expression-input/index.d.ts +0 -4
- package/types/src/column-expression-input/theme.d.ts +0 -1
- package/types/src/column-expression-input/useColumnAutoComplete.d.ts +0 -6
- package/types/src/column-expression-input/useColumnExpressionEditor.d.ts +0 -25
- package/types/src/column-expression-input/useColumnExpressionSuggestionProvider.d.ts +0 -8
- package/types/src/column-formatting-settings/BaseNumericFormattingSettings.d.ts +0 -2
- package/types/src/column-formatting-settings/ColumnFormattingPanel.d.ts +0 -9
- package/types/src/column-formatting-settings/DateTimeFormattingSettings.d.ts +0 -3
- package/types/src/column-formatting-settings/LongTypeFormattingSettings.d.ts +0 -3
- package/types/src/column-formatting-settings/index.d.ts +0 -3
- package/types/src/column-menu/ColumnMenu.d.ts +0 -10
- package/types/src/column-menu/column-action-types.d.ts +0 -11
- package/types/src/column-menu/column-menu-utils.d.ts +0 -19
- package/types/src/column-menu/useColumnActions.d.ts +0 -16
- package/types/src/column-picker/ColumnModel.d.ts +0 -81
- package/types/src/column-picker/ColumnPicker.d.ts +0 -10
- package/types/src/column-picker/ColumnPickerAction.d.ts +0 -5
- package/types/src/column-picker/useColumnPicker.d.ts +0 -16
- package/types/src/column-picker/useTableColumnPicker.d.ts +0 -7
- package/types/src/column-picker/useTableColumnPickerDeprecated.d.ts +0 -14
- package/types/src/column-settings-panel/ColumnNameLabel.d.ts +0 -7
- package/types/src/column-settings-panel/ColumnSettingsPanel.d.ts +0 -5
- package/types/src/column-settings-panel/useColumnSettings.d.ts +0 -30
- package/types/src/csv-export/export-utils.d.ts +0 -42
- package/types/src/csv-export/index.d.ts +0 -2
- package/types/src/csv-export/useCsvExport.d.ts +0 -14
- package/types/src/csv-upload/CsvUpload.d.ts +0 -69
- package/types/src/csv-upload/data-upload-preview/DataUploadPreview.d.ts +0 -10
- package/types/src/csv-upload/data-upload-preview/useDataUploadPreview.d.ts +0 -17
- package/types/src/csv-upload/index.d.ts +0 -7
- package/types/src/csv-upload/parse/csv-constants.d.ts +0 -3
- package/types/src/csv-upload/parse/csv-errors.d.ts +0 -47
- package/types/src/csv-upload/parse/csv-parse.d.ts +0 -11
- package/types/src/csv-upload/parse/csv-schema-validation.d.ts +0 -18
- package/types/src/csv-upload/parse/csv-upload-utils.d.ts +0 -21
- package/types/src/csv-upload/parse/index.d.ts +0 -5
- package/types/src/csv-upload/useCsvUpload.d.ts +0 -43
- package/types/src/datasource-stats/DatasourceStats.d.ts +0 -17
- package/types/src/datasource-stats/useDatasourceStats.d.ts +0 -15
- package/types/src/freeze-control/FreezeControl.d.ts +0 -15
- package/types/src/freeze-control/FrozenBanner.d.ts +0 -6
- package/types/src/freeze-control/freezeControlBadge.d.ts +0 -11
- package/types/src/freeze-control/useFreezeControl.d.ts +0 -10
- package/types/src/index.d.ts +0 -26
- package/types/src/inline-add-row/InlineAddRow.d.ts +0 -3
- package/types/src/inline-add-row/index.d.ts +0 -2
- package/types/src/inline-add-row/useInlineAddRow.d.ts +0 -59
- package/types/src/tabbed-table-config-panel/TabbedTableConfigPanel.d.ts +0 -17
- package/types/src/tabbed-table-config-panel/TabbedTableSettingsAction.d.ts +0 -7
- package/types/src/tabbed-table-config-panel/useTabbedTableConfigPanel.d.ts +0 -13
- package/types/src/table-footer/TableFooter.d.ts +0 -10
- package/types/src/table-provider/TableProvider.d.ts +0 -18
- package/types/src/table-settings-panel/TableSettingsPanel.d.ts +0 -22
- package/types/src/table-settings-panel/useTableSettings.d.ts +0 -14
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { DataSource } from "@vuu-ui/vuu-data-types";
|
|
2
|
-
import { SyntheticEvent } from "react";
|
|
3
|
-
export interface FreezeProps {
|
|
4
|
-
dataSource: DataSource;
|
|
5
|
-
}
|
|
6
|
-
export declare const useFreezeControl: ({ dataSource }: FreezeProps) => {
|
|
7
|
-
isFrozen: boolean;
|
|
8
|
-
newRecordCount: number;
|
|
9
|
-
onToggleChange: (evt: SyntheticEvent<HTMLButtonElement>) => void;
|
|
10
|
-
};
|
package/types/src/index.d.ts
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
export { CalculatedColumnPanel } from "./calculated-column/CalculatedColumnPanel";
|
|
2
|
-
export * from "./csv-export";
|
|
3
|
-
export * from "./csv-upload";
|
|
4
|
-
export * from "./cell-edit-validators";
|
|
5
|
-
export * from "./cell-renderers";
|
|
6
|
-
export * from "./column-expression-input";
|
|
7
|
-
export * from "./column-formatting-settings";
|
|
8
|
-
export type { ColumnDisplayActionHandler, TableSettingsActionHandler, } from "./column-menu/column-action-types";
|
|
9
|
-
export { ColumnMenu } from "./column-menu/ColumnMenu";
|
|
10
|
-
export { useColumnActions } from "./column-menu/useColumnActions";
|
|
11
|
-
export { ColumnChangeSource, ColumnModel, isColumnAdded, isColumnRemoved, isColumnsReordered, SelectedColumnChangeType, type ColumnEvents, type ColumnsChangeHandler, } from "./column-picker/ColumnModel";
|
|
12
|
-
export { ColumnPicker, type ColumnPickerProps, } from "./column-picker/ColumnPicker";
|
|
13
|
-
export { ColumnPickerAction } from "./column-picker/ColumnPickerAction";
|
|
14
|
-
export type { SelectedColumnsChangeHandler } from "./column-picker/useColumnPicker";
|
|
15
|
-
export { useTableColumnPicker } from "./column-picker/useTableColumnPicker";
|
|
16
|
-
export { ColumnSettingsPanel } from "./column-settings-panel/ColumnSettingsPanel";
|
|
17
|
-
export { useColumnSettings } from "./column-settings-panel/useColumnSettings";
|
|
18
|
-
export { DataSourceStats, type DataSourceStatsProps, } from "./datasource-stats/DatasourceStats";
|
|
19
|
-
export { FreezeControl } from "./freeze-control/FreezeControl";
|
|
20
|
-
export { FrozenBanner } from "./freeze-control/FrozenBanner";
|
|
21
|
-
export * from "./inline-add-row";
|
|
22
|
-
export { TabbedTableConfigPanel } from "./tabbed-table-config-panel/TabbedTableConfigPanel";
|
|
23
|
-
export { TabbedTableSettingsAction } from "./tabbed-table-config-panel/TabbedTableSettingsAction";
|
|
24
|
-
export { TableFooter, TableFooterTray } from "./table-footer/TableFooter";
|
|
25
|
-
export { TableProvider, useTableContext } from "./table-provider/TableProvider";
|
|
26
|
-
export { defaultTableSettingsPermissions, TableSettingsPanel, type TableDisplayAttributeChangeHandler, } from "./table-settings-panel/TableSettingsPanel";
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import type { DataRow, RuntimeColumnDescriptor } from "@vuu-ui/vuu-table-types";
|
|
2
|
-
export interface UseInlineAddRowProps {
|
|
3
|
-
columns: RuntimeColumnDescriptor[];
|
|
4
|
-
}
|
|
5
|
-
export declare const useInlineAddRow: ({ columns }: UseInlineAddRowProps) => {
|
|
6
|
-
containerRef: import("react").RefObject<HTMLDivElement | null>;
|
|
7
|
-
dataRow: DataRow;
|
|
8
|
-
draftRevision: number;
|
|
9
|
-
inlineAddColumns: {
|
|
10
|
-
editableBulk?: import("@vuu-ui/vuu-data-types").BulkEdit;
|
|
11
|
-
name: string;
|
|
12
|
-
required?: boolean;
|
|
13
|
-
serverDataType?: import("@vuu-ui/vuu-protocol-types").VuuColumnDataType;
|
|
14
|
-
type?: import("@vuu-ui/vuu-data-types").DataValueType;
|
|
15
|
-
aggregate?: import("@vuu-ui/vuu-protocol-types").VuuAggType;
|
|
16
|
-
allowColumnHeaderMenu?: false;
|
|
17
|
-
colHeaderContentRenderer?: string;
|
|
18
|
-
colHeaderLabelRenderer?: string;
|
|
19
|
-
exportFormatter?: (value: unknown) => string;
|
|
20
|
-
getIcon?: (row: DataRow) => string | undefined;
|
|
21
|
-
groupable?: boolean;
|
|
22
|
-
hidden?: boolean;
|
|
23
|
-
locked?: Exclude<import("@vuu-ui/vuu-table-types").PinLocation, "left"> | false;
|
|
24
|
-
maxWidth?: number;
|
|
25
|
-
minWidth?: number;
|
|
26
|
-
pin?: import("@vuu-ui/vuu-table-types").PinLocation | false;
|
|
27
|
-
removeable?: boolean;
|
|
28
|
-
selected?: boolean;
|
|
29
|
-
source?: "client" | "server";
|
|
30
|
-
status?: import("@salt-ds/core").ValidationStatus;
|
|
31
|
-
align?: "left" | "right";
|
|
32
|
-
ariaColIndex: number;
|
|
33
|
-
HeaderCellContentRenderer?: import("react").FunctionComponent<Omit<import("@vuu-ui/vuu-table-types").HeaderCellProps, "id" | "index">>;
|
|
34
|
-
HeaderCellLabelRenderer?: import("react").FunctionComponent<Omit<import("@vuu-ui/vuu-table-types").HeaderCellProps, "id" | "index">>;
|
|
35
|
-
canStretch?: boolean;
|
|
36
|
-
className?: string;
|
|
37
|
-
clientSideEditValidationCheck?: import("@vuu-ui/vuu-data-types").DataValueValidationChecker;
|
|
38
|
-
draggable?: boolean;
|
|
39
|
-
filter?: import("@vuu-ui/vuu-filter-types").Filter;
|
|
40
|
-
flex?: number;
|
|
41
|
-
heading?: [...string[]];
|
|
42
|
-
isGroup?: boolean;
|
|
43
|
-
isSystemColumn?: boolean;
|
|
44
|
-
label: string;
|
|
45
|
-
marginLeft?: number;
|
|
46
|
-
moving?: boolean;
|
|
47
|
-
originalIdx?: number;
|
|
48
|
-
pinnedOffset?: number;
|
|
49
|
-
pinnedWidth?: number;
|
|
50
|
-
resizeable?: boolean;
|
|
51
|
-
resizing?: boolean;
|
|
52
|
-
sortable?: boolean;
|
|
53
|
-
sorted?: import("@vuu-ui/vuu-table-types").ColumnSort;
|
|
54
|
-
valueFormatter: import("@vuu-ui/vuu-table-types").ValueFormatter;
|
|
55
|
-
width: number;
|
|
56
|
-
editable: boolean;
|
|
57
|
-
CellRenderer: import("react").FunctionComponent<import("@vuu-ui/vuu-table-types").TableCellRendererProps> | undefined;
|
|
58
|
-
}[];
|
|
59
|
-
};
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { VuuTable } from "@vuu-ui/vuu-protocol-types";
|
|
2
|
-
import type { TableProps } from "@vuu-ui/vuu-table";
|
|
3
|
-
import { HTMLAttributes } from "react";
|
|
4
|
-
import { ColumnPickerProps } from "../column-picker/ColumnPicker";
|
|
5
|
-
import { TableSettingsPanelProps } from "../table-settings-panel/TableSettingsPanel";
|
|
6
|
-
declare const TabLabels: {
|
|
7
|
-
readonly "table-settings": "Table";
|
|
8
|
-
readonly "table-columns": "Columns";
|
|
9
|
-
};
|
|
10
|
-
type TabName = keyof typeof TabLabels;
|
|
11
|
-
export interface TabbedTableConfigPanelProps extends ColumnPickerProps, Pick<TableSettingsPanelProps, "onDisplayAttributeChange">, Pick<TableProps, "config">, HTMLAttributes<HTMLDivElement> {
|
|
12
|
-
allowCreateCalculatedColumn?: boolean;
|
|
13
|
-
selectedTab?: TabName;
|
|
14
|
-
vuuTable?: VuuTable;
|
|
15
|
-
}
|
|
16
|
-
export declare const TabbedTableConfigPanel: ({ allowCreateCalculatedColumn, className, columnModel, config, onDisplayAttributeChange, selectedTab, vuuTable, ...htmlAttributes }: TabbedTableConfigPanelProps) => import("react").JSX.Element;
|
|
17
|
-
export {};
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { IconButtonProps } from "@vuu-ui/vuu-ui-controls";
|
|
2
|
-
import { TabbedTableConfigPanelHookProps } from "./useTabbedTableConfigPanel";
|
|
3
|
-
import { TableDisplayAttributeChangeHandler } from "../table-settings-panel/TableSettingsPanel";
|
|
4
|
-
export interface TabbedTableSettingsActionProps extends Partial<IconButtonProps>, TabbedTableConfigPanelHookProps {
|
|
5
|
-
onDisplayAttributeChange: TableDisplayAttributeChangeHandler;
|
|
6
|
-
}
|
|
7
|
-
export declare const TabbedTableSettingsAction: ({ allowCreateCalculatedColumn, appearance, columnModel, config, icon, onDisplayAttributeChange, sentiment, vuuTable, ...IconButtonProps }: TabbedTableSettingsActionProps) => import("react").JSX.Element;
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { TableSettingsPanelProps } from "../table-settings-panel/TableSettingsPanel";
|
|
2
|
-
import { TableProps } from "@vuu-ui/vuu-table";
|
|
3
|
-
import { ColumnPickerProps } from "../column-picker/ColumnPicker";
|
|
4
|
-
import { VuuTable } from "@vuu-ui/vuu-protocol-types";
|
|
5
|
-
export interface TabbedTableConfigPanelHookProps extends Pick<ColumnPickerProps, "allowCreateCalculatedColumn" | "columnModel">, Pick<TableSettingsPanelProps, "onDisplayAttributeChange">, Pick<TableProps, "config"> {
|
|
6
|
-
/**
|
|
7
|
-
* only required for calculated columns
|
|
8
|
-
*/
|
|
9
|
-
vuuTable?: VuuTable;
|
|
10
|
-
}
|
|
11
|
-
export declare const useTabbedTableConfigPanel: ({ allowCreateCalculatedColumn, columnModel, config, onDisplayAttributeChange, vuuTable, }: TabbedTableConfigPanelHookProps) => {
|
|
12
|
-
showTabbedTableConfigPanel: (title?: string) => void;
|
|
13
|
-
};
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import type { HTMLAttributes, ReactNode } from "react";
|
|
2
|
-
export interface TableFooterProps extends HTMLAttributes<HTMLDivElement> {
|
|
3
|
-
onInvokeAction?: (action: string) => void;
|
|
4
|
-
tooltrayActions?: ReactNode;
|
|
5
|
-
}
|
|
6
|
-
export declare const TableFooterTray: ({ children, position }: {
|
|
7
|
-
children: ReactNode;
|
|
8
|
-
position?: 'center' | 'end';
|
|
9
|
-
}) => import("react").JSX.Element;
|
|
10
|
-
export declare const TableFooter: ({ children, className, onInvokeAction, tooltrayActions, ...htmlAttributes }: TableFooterProps) => import("react").JSX.Element;
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import type { MenuActionHandler } from "@vuu-ui/vuu-context-menu";
|
|
2
|
-
import type { DataSource } from "@vuu-ui/vuu-data-types";
|
|
3
|
-
import type { TableProps } from "@vuu-ui/vuu-table";
|
|
4
|
-
import type { ColumnDescriptor } from "@vuu-ui/vuu-table-types";
|
|
5
|
-
import { ReactNode } from "react";
|
|
6
|
-
import type { ColumnMenuActionType } from "../column-menu/column-menu-utils";
|
|
7
|
-
export interface TableContextProps extends Pick<TableProps, "dataSource" | "rowActionHandlers"> {
|
|
8
|
-
menuActionHandler: MenuActionHandler<ColumnMenuActionType, ColumnDescriptor>;
|
|
9
|
-
}
|
|
10
|
-
export declare const TableContext: import("react").Context<TableContextProps>;
|
|
11
|
-
export declare const TableProvider: ({ children, dataSource, menuActionHandler, rowActionHandlers, }: TableContextProps & {
|
|
12
|
-
children: ReactNode;
|
|
13
|
-
}) => import("react").JSX.Element;
|
|
14
|
-
export declare function useTableContext(throwIfNoDataSource?: boolean): {
|
|
15
|
-
dataSource: DataSource;
|
|
16
|
-
menuActionHandler: MenuActionHandler<ColumnMenuActionType, ColumnDescriptor>;
|
|
17
|
-
};
|
|
18
|
-
export declare const useRowAction: (actionId: string) => import("@vuu-ui/vuu-table-types").RowActionHandler;
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { TableDisplayAttributes, TableSettingsPermissions } from "@vuu-ui/vuu-table-types";
|
|
2
|
-
export declare const defaultTableSettingsPermissions: Readonly<TableSettingsPermissions>;
|
|
3
|
-
export declare const noTableSettingsPermissions: Readonly<TableSettingsPermissions>;
|
|
4
|
-
export type TableDisplayAttributeChangeHandler = (displayAttributes: TableDisplayAttributes) => void;
|
|
5
|
-
/**
|
|
6
|
-
* Describes the props for a Table Configuration Editor, for which
|
|
7
|
-
* an implementation is provided in vuu-table-extras
|
|
8
|
-
*/
|
|
9
|
-
export interface TableSettingsPanelProps {
|
|
10
|
-
allowColumnLabelCase?: boolean;
|
|
11
|
-
allowColumnDefaultWidth?: boolean;
|
|
12
|
-
allowGridRowStyling?: boolean;
|
|
13
|
-
onDisplayAttributeChange: TableDisplayAttributeChangeHandler;
|
|
14
|
-
tableDisplayAttributes: TableDisplayAttributes;
|
|
15
|
-
permissions?: TableSettingsPermissions | boolean;
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
The TableSettingsPanel assumes 'ownership' of the tableSettings.
|
|
19
|
-
It updates the settings in state locally and notifies caller of
|
|
20
|
-
every change via onChange callback
|
|
21
|
-
*/
|
|
22
|
-
export declare const TableSettingsPanel: ({ onDisplayAttributeChange, tableDisplayAttributes: tableDisplayAttributesProp, permissions: permissionsProp, }: TableSettingsPanelProps) => import("react").JSX.Element;
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { TableDisplayAttributes } from "@vuu-ui/vuu-table-types";
|
|
2
|
-
import { CommitHandler } from "@vuu-ui/vuu-utils";
|
|
3
|
-
import { MouseEvent, SyntheticEvent } from "react";
|
|
4
|
-
import { TableSettingsPanelProps } from "./TableSettingsPanel";
|
|
5
|
-
export type ColumnLike = {
|
|
6
|
-
name: string;
|
|
7
|
-
};
|
|
8
|
-
export declare const useTableSettings: ({ onDisplayAttributeChange, tableDisplayAttributes: tableDisplayAttributesProp, }: TableSettingsPanelProps) => {
|
|
9
|
-
columnLabelsValue: number;
|
|
10
|
-
onChangeColumnLabels: (evt: SyntheticEvent) => void;
|
|
11
|
-
onChangeTableAttribute: (evt: MouseEvent<HTMLButtonElement>) => void;
|
|
12
|
-
onCommitColumnWidth: CommitHandler;
|
|
13
|
-
tableDisplayAttributes: TableDisplayAttributes;
|
|
14
|
-
};
|