@efficiency-point/design-system 0.1.37 → 0.1.39

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/README.md CHANGED
@@ -193,6 +193,76 @@ export function Example() {
193
193
  />
194
194
  ```
195
195
 
196
+ Чтобы показать компактный выбор размера страницы сверху и снизу таблицы,
197
+ передайте `onPageSizeChange`. Доступны значения `10`, `30`, `50` и `-1`
198
+ (`-1` отображается как «Все»). Выбор остаётся черновым до нажатия
199
+ «Применить», после чего таблица вызывает `onPageChange(1)` и
200
+ `onPageSizeChange`. В client-режиме `-1` показывает весь массив; в
201
+ server-режиме таблица предупреждает о загрузке всех записей.
202
+
203
+ ```tsx
204
+ <DSDataTable
205
+ columns={columns}
206
+ data={currentPageRows}
207
+ pagination
208
+ paginationMode="server"
209
+ page={page}
210
+ pageSize={pageSize}
211
+ totalCount={totalCount}
212
+ onPageChange={setPage}
213
+ onPageSizeChange={setPageSize}
214
+ />
215
+ ```
216
+
217
+ Если размер страницы должен применяться общей кнопкой фильтров, используйте
218
+ controlled-черновик и `pageSizeApplyMode="external"`. В этом режиме собственная
219
+ кнопка таблицы скрыта, а `pageSize` остаётся последним применённым значением.
220
+
221
+ ```tsx
222
+ <DSDataTable
223
+ columns={columns}
224
+ data={currentPageRows}
225
+ pagination
226
+ pageSize={appliedPageSize}
227
+ pageSizeDraft={draftPageSize}
228
+ pageSizeApplyMode="external"
229
+ onPageSizeDraftChange={setDraftPageSize}
230
+ />
231
+ ```
232
+
233
+ Для полностью встроенной панели передайте `filterBar`. Поля описываются
234
+ декларативно (`search`/`text`, `multi-select`, `switch`) либо через `custom`.
235
+ Опции multi-select могут быть массивом или асинхронной функцией. Таблица не
236
+ владеет бизнес-состоянием: `draftValues` и `appliedValues` контролируются
237
+ потребителем, а единый `onApply` получает `{ filters, pageSize }`. Validation
238
+ errors блокируют применение; `applying` включает loading-состояние. При наличии
239
+ `filterBar` отдельная кнопка применения размера страницы скрывается.
240
+
241
+ ```tsx
242
+ <DSDataTable
243
+ columns={columns}
244
+ data={rows}
245
+ pagination
246
+ pageSize={appliedPageSize}
247
+ pageSizeDraft={draftPageSize}
248
+ onPageSizeDraftChange={setDraftPageSize}
249
+ filterBar={{
250
+ fields: [
251
+ { key: 'search', label: 'Поиск', type: 'search' },
252
+ { key: 'places', label: 'Места работы', type: 'multi-select', options: loadPlaces },
253
+ { key: 'attention', label: 'Только требующие внимания', type: 'switch' },
254
+ ],
255
+ draftValues: draftFilters,
256
+ appliedValues: appliedFilters,
257
+ onDraftValuesChange: setDraftFilters,
258
+ onApply: ({ filters, pageSize }) => applyFilters(filters, pageSize),
259
+ resetValues: emptyFilters,
260
+ onReset: ({ filters, pageSize }) => resetFilters(filters, pageSize),
261
+ applying: isLoading,
262
+ }}
263
+ />
264
+ ```
265
+
196
266
  Для данных, уже разбитых сервером на страницы, используется явный controlled-режим.
197
267
  `page` нумеруется с единицы, `totalCount` содержит общее число строк, а
198
268
  `onPageChange` запускает загрузку выбранной страницы. В этом режиме `data` не
@@ -242,6 +312,27 @@ Enter вызывают `onRowDoubleClick`, Space меняет selection. Без
242
312
 
243
313
  `DSSort` можно использовать отдельно для сортировки по полям объектов или строковым значениям.
244
314
 
315
+ `totalCountVariant="highlighted"` добавляет компактный виджет «Всего» над строками:
316
+ `totalCountLabel` меняет его подпись и доступное имя (по умолчанию «Всего»).
317
+ в server-режиме он использует `totalCount`, в client-режиме — весь массив до пагинации.
318
+ По умолчанию (`default`) оформление не меняется. `toolbarContent` — свободный слот
319
+ рядом с виджетом, после фильтров; счётчики и действия определяет приложение.
320
+ `getRowClassName(row)` и `getRowStyle(row)` применяются к строкам и оболочкам
321
+ мобильных карточек (включая `renderMobileCard`). Для фона задавайте CSS variables
322
+ `--ds-table-row-background` и `--ds-table-row-hover-background` через класс или style.
323
+ Фон sticky-ячеек использует те же переменные; используйте непрозрачный цвет
324
+ или `color-mix` с `var(--color-surface)`. Обводка выбранной строки сохраняется.
325
+
326
+ ```tsx
327
+ <DSDataTable
328
+ columns={columns}
329
+ data={rows}
330
+ totalCountVariant="highlighted"
331
+ toolbarContent={<DSButton onClick={exportRows}>Выгрузить</DSButton>}
332
+ getRowClassName={(row) => row.needsAttention ? styles.attention : undefined}
333
+ />
334
+ ```
335
+
245
336
  ### DSFilters
246
337
 
247
338
  Контролируемая композиция фильтров типов `input`, `dropdown`, `multiple`, `checkbox`, `radio` и `dateRange`, построенная из компонентов дизайн-системы.
@@ -1,5 +1,6 @@
1
1
  import { CSSProperties, ReactNode } from 'react';
2
2
  import { SortFn, SortingState } from '@tanstack/react-table';
3
+ import { DropDownOption } from '../DSDropDown/DSDropDown';
3
4
  declare const dataTableFeatures: {
4
5
  rowSortingFeature: import('@tanstack/table-core').TableFeature;
5
6
  sortedRowModel: (table: import('@tanstack/table-core').Table<any, any>) => () => import('@tanstack/table-core').RowModel<any, any>;
@@ -12,6 +13,48 @@ export type DSDataTableBreakpoint = 'default' | 'wide';
12
13
  export type DSDataTableMobileView = 'cards' | 'table';
13
14
  export type DSDataTableDensity = 'comfortable' | 'compact';
14
15
  export type DSDataTableData = Record<string, unknown>;
16
+ export type DSDataTablePageSize = 10 | 30 | 50 | -1;
17
+ export type DSDataTableFilterValues = Record<string, unknown>;
18
+ export type DSDataTableFilterField = {
19
+ key: string;
20
+ label: string;
21
+ disabled?: boolean;
22
+ } & ({
23
+ type: 'search' | 'text';
24
+ placeholder?: string;
25
+ } | {
26
+ type: 'multi-select';
27
+ options: DropDownOption[] | (() => Promise<DropDownOption[]>);
28
+ placeholder?: string;
29
+ } | {
30
+ type: 'switch';
31
+ } | {
32
+ type: 'custom';
33
+ render: (context: {
34
+ value: unknown;
35
+ setValue: (value: unknown) => void;
36
+ disabled: boolean;
37
+ error?: string;
38
+ }) => ReactNode;
39
+ });
40
+ export type DSDataTableFilterBarApplyPayload<TValues extends DSDataTableFilterValues = DSDataTableFilterValues> = {
41
+ filters: TValues;
42
+ pageSize: DSDataTablePageSize;
43
+ };
44
+ export type DSDataTableFilterBarConfig<TValues extends DSDataTableFilterValues = DSDataTableFilterValues> = {
45
+ fields: DSDataTableFilterField[];
46
+ draftValues: TValues;
47
+ appliedValues: TValues;
48
+ onDraftValuesChange: (values: TValues) => void;
49
+ onApply: (payload: DSDataTableFilterBarApplyPayload<TValues>) => void;
50
+ onReset?: (payload: DSDataTableFilterBarApplyPayload<TValues>) => void;
51
+ resetValues?: TValues;
52
+ resetPageSize?: DSDataTablePageSize;
53
+ validation?: Partial<Record<keyof TValues, string>> | ((values: TValues) => Partial<Record<keyof TValues, string>>);
54
+ applying?: boolean;
55
+ applyLabel?: string;
56
+ resetLabel?: string;
57
+ };
15
58
  export type DSDataTableMobileColumnMeta<TData> = {
16
59
  hideOnMobile?: boolean;
17
60
  primary?: boolean;
@@ -63,6 +106,12 @@ export type DSDataTableProps<TData extends object> = {
63
106
  onSortingChange?: (sorting: SortingState) => void;
64
107
  renderMobileCard?: (context: DSDataTableMobileRowContext<TData>) => ReactNode;
65
108
  getRowId?: (row: TData, index: number) => string;
109
+ /** Applied to desktop rows and mobile card shells. */
110
+ getRowClassName?: (row: TData) => string | undefined;
111
+ getRowStyle?: (row: TData) => CSSProperties | undefined;
112
+ toolbarContent?: ReactNode;
113
+ totalCountVariant?: 'default' | 'highlighted';
114
+ totalCountLabel?: string;
66
115
  caption?: string;
67
116
  ariaLabel?: string;
68
117
  loading?: boolean;
@@ -84,6 +133,12 @@ export type DSDataTableProps<TData extends object> = {
84
133
  paginationMode?: 'client' | 'server';
85
134
  page?: number;
86
135
  pageSize?: number;
136
+ /** Shows the shared top and bottom page-size selector when provided. Use -1 to request all rows. */
137
+ onPageSizeChange?: (pageSize: DSDataTablePageSize) => void;
138
+ pageSizeOptions?: readonly DSDataTablePageSize[];
139
+ pageSizeDraft?: DSDataTablePageSize;
140
+ onPageSizeDraftChange?: (pageSize: DSDataTablePageSize) => void;
141
+ pageSizeApplyMode?: 'table' | 'external';
87
142
  totalCount?: number;
88
143
  onPageChange?: (page: number) => void;
89
144
  visibleColumnIds?: string[];
@@ -98,6 +153,7 @@ export type DSDataTableProps<TData extends object> = {
98
153
  totalCount: number;
99
154
  selectedCount: number;
100
155
  }) => string;
156
+ filterBar?: DSDataTableFilterBarConfig;
101
157
  };
102
158
  export type DSDataTablePaginationItem = number | 'ellipsis-start' | 'ellipsis-end';
103
159
  export declare const getNextDSDataTablePageSelection: (selectedRowIds: Iterable<string>, currentPageRowIds: readonly string[], selectCurrentPage: boolean) => string[];
@@ -105,6 +161,6 @@ export declare const getDSDataTableColumnStyle: <TData extends object>(column: D
105
161
  export declare const getDSDataTableStickyColumnStyle: <TData extends object>(column: DSDataTableColumn<TData> | undefined) => CSSProperties | undefined;
106
162
  export declare const getDSDataTablePaginationItems: (currentPage: number, pageCount: number) => DSDataTablePaginationItem[];
107
163
  export declare const validateDSDataTableData: <TData extends object>(columns: DSDataTableColumn<TData>[], data: TData[]) => string | null;
108
- export declare const DSDataTable: <TData extends object>({ columns, data, tableOnMobile, mobileView, breakpoint, sorting: controlledSorting, onSortingChange, renderMobileCard, getRowId, caption, ariaLabel, loading, error, emptyState, stickyHeader, maxHeight, className, onRowClick, selectable, selectedRowIds, onSelectedRowIdsChange, onRowDoubleClick, getRowSelectionLabel, selectAllRowsLabel, resetSelectionLabel, openRowLabel, pagination, paginationMode, page, pageSize, totalCount, onPageChange, visibleColumnIds, density, renderBulkActions, renderExpandedRow, expandedRowIds, onExpandedRowIdsChange, getRowExpansionLabel, resultsAnnouncement, }: DSDataTableProps<TData>) => import("react").JSX.Element;
164
+ export declare const DSDataTable: <TData extends object>({ columns, data, tableOnMobile, mobileView, breakpoint, sorting: controlledSorting, onSortingChange, renderMobileCard, getRowId, getRowClassName, getRowStyle, toolbarContent, totalCountVariant, totalCountLabel, caption, ariaLabel, loading, error, emptyState, stickyHeader, maxHeight, className, onRowClick, selectable, selectedRowIds, onSelectedRowIdsChange, onRowDoubleClick, getRowSelectionLabel, selectAllRowsLabel, resetSelectionLabel, openRowLabel, pagination, paginationMode, page, pageSize, onPageSizeChange, pageSizeOptions, pageSizeDraft, onPageSizeDraftChange, pageSizeApplyMode, totalCount, onPageChange, visibleColumnIds, density, renderBulkActions, renderExpandedRow, expandedRowIds, onExpandedRowIdsChange, getRowExpansionLabel, resultsAnnouncement, filterBar, }: DSDataTableProps<TData>) => import("react").JSX.Element;
109
165
  export {};
110
166
  //# sourceMappingURL=DSDataTable.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DSDataTable.d.ts","sourceRoot":"","sources":["../../../src/components/DSDataTable/DSDataTable.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA0C,KAAK,aAAa,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACnG,OAAO,EAQH,KAAK,MAAM,EACX,KAAK,YAAY,EACpB,MAAM,uBAAuB,CAAC;AAQ/B,QAAA,MAAM,iBAAiB;;;CAGrB,CAAC;AAEH,KAAK,mBAAmB,GAAG,OAAO,iBAAiB,CAAC;AAEpD,KAAK,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAC;AACpE,KAAK,mBAAmB,CAAC,KAAK,SAAS,MAAM,IACvC,OAAO,CAAC,MAAM,KAAK,EAAE,MAAM,CAAC,GAC5B,CAAC,CAAC,GAAG,EAAE,KAAK,KAAK,OAAO,CAAC,CAAC;AAEhC,KAAK,cAAc,CAAC,KAAK,SAAS,MAAM,IAAI,MAAM,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;AAE/E,MAAM,MAAM,qBAAqB,GAAG,SAAS,GAAG,MAAM,CAAC;AACvD,MAAM,MAAM,qBAAqB,GAAG,OAAO,GAAG,OAAO,CAAC;AACtD,MAAM,MAAM,kBAAkB,GAAG,aAAa,GAAG,SAAS,CAAC;AAC3D,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEtD,MAAM,MAAM,2BAA2B,CAAC,KAAK,IAAI;IAC7C,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IACnB,aAAa,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS,CAAC;IAC9C,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,KAAK,SAAS,CAAC;CAC5D,CAAC;AAEF,MAAM,MAAM,iBAAiB,CAAC,KAAK,SAAS,MAAM,IAAI;IAClD,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,SAAS,CAAC;IAClB,QAAQ,EAAE,mBAAmB,CAAC,KAAK,CAAC,CAAC;IACrC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,KAAK,SAAS,CAAC;IACjD,QAAQ,CAAC,EAAE,UAAU,CAAC;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,MAAM,CAAC,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC;IAC/B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,KAAK,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;IAC/B,QAAQ,CAAC,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IACrC,QAAQ,CAAC,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IACrC,MAAM,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC;IACzB,YAAY,CAAC,EAAE,aAAa,CAAC,kBAAkB,CAAC,CAAC;IACjD,MAAM,CAAC,EAAE,2BAA2B,CAAC,KAAK,CAAC,CAAC;CAC/C,CAAC;AAEF,MAAM,MAAM,2BAA2B,CAAC,KAAK,SAAS,MAAM,IAAI;IAC5D,GAAG,EAAE,KAAK,CAAC;IACX,OAAO,EAAE,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,6BAA6B,CAAC,KAAK,SAAS,MAAM,IAAI;IAC9D,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,YAAY,EAAE,KAAK,EAAE,CAAC;IACtB,cAAc,EAAE,MAAM,IAAI,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,6BAA6B,CAAC,KAAK,SAAS,MAAM,IAAI;IAC9D,GAAG,EAAE,KAAK,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,IAAI,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,gBAAgB,CAAC,KAAK,SAAS,MAAM,IAAI;IACjD,OAAO,EAAE,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC;IACpC,IAAI,EAAE,KAAK,EAAE,CAAC;IACd,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,mGAAmG;IACnG,UAAU,CAAC,EAAE,qBAAqB,CAAC;IACnC,UAAU,CAAC,EAAE,qBAAqB,CAAC;IACnC,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,CAAC;IAClD,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,2BAA2B,CAAC,KAAK,CAAC,KAAK,SAAS,CAAC;IAC9E,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACjD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,CAAC;IAClC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,cAAc,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,SAAS,MAAM,EAAE,CAAC;IACzD,sBAAsB,CAAC,EAAE,CAAC,cAAc,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAC5D,gBAAgB,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,CAAC;IACxC,oBAAoB,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,MAAM,CAAC;IAC9C,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,cAAc,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAC7B,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,6BAA6B,CAAC,KAAK,CAAC,KAAK,SAAS,CAAC;IACjF,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,6BAA6B,CAAC,KAAK,CAAC,KAAK,SAAS,CAAC;IACjF,cAAc,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,SAAS,MAAM,EAAE,CAAC;IACzD,sBAAsB,CAAC,EAAE,CAAC,cAAc,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAC5D,oBAAoB,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,KAAK,MAAM,CAAC;IACjE,mBAAmB,CAAC,EAAE,CAAC,OAAO,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,KAAK,MAAM,CAAC;CAClH,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG,MAAM,GAAG,gBAAgB,GAAG,cAAc,CAAC;AAEnF,eAAO,MAAM,+BAA+B,GACxC,gBAAgB,QAAQ,CAAC,MAAM,CAAC,EAChC,mBAAmB,SAAS,MAAM,EAAE,EACpC,mBAAmB,OAAO,KAC3B,MAAM,EAOR,CAAC;AAEF,eAAO,MAAM,yBAAyB,GAAI,KAAK,SAAS,MAAM,EAC1D,QAAQ,iBAAiB,CAAC,KAAK,CAAC,GAAG,SAAS,KAC7C,aAAa,GAAG,SAUlB,CAAC;AAEF,eAAO,MAAM,+BAA+B,GAAI,KAAK,SAAS,MAAM,EAChE,QAAQ,iBAAiB,CAAC,KAAK,CAAC,GAAG,SAAS,KAC7C,aAAa,GAAG,SAMlB,CAAC;AAEF,eAAO,MAAM,6BAA6B,GACtC,aAAa,MAAM,EACnB,WAAW,MAAM,KAClB,yBAAyB,EAc3B,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAI,KAAK,SAAS,MAAM,EACxD,SAAS,iBAAiB,CAAC,KAAK,CAAC,EAAE,EACnC,MAAM,KAAK,EAAE,KACd,MAAM,GAAG,IAoBX,CAAC;AA6IF,eAAO,MAAM,WAAW,GAAI,KAAK,SAAS,MAAM,EAAE,ilBAyC/C,gBAAgB,CAAC,KAAK,CAAC,gCAuhBzB,CAAC"}
1
+ {"version":3,"file":"DSDataTable.d.ts","sourceRoot":"","sources":["../../../src/components/DSDataTable/DSDataTable.tsx"],"names":[],"mappings":"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"}