From 7235d2f94119bc7050c625ced56b78abe8434351 Mon Sep 17 00:00:00 2001 From: Serhii Pylypchuk Date: Wed, 20 May 2026 22:36:48 +0300 Subject: [PATCH 01/40] [add] Working with server guide - new guide covering backend round-trip: loading raw data, saving update-config payload, and persisting render-table snapshots - sidebar entry and cross-link from loading-data guide --- docs/guides/loading-data.md | 4 + docs/guides/working-with-server.md | 169 +++++++++++++++++++++++++++++ sidebars.js | 1 + 3 files changed, 174 insertions(+) create mode 100644 docs/guides/working-with-server.md diff --git a/docs/guides/loading-data.md b/docs/guides/loading-data.md index 1b055c2..ecfd4c9 100644 --- a/docs/guides/loading-data.md +++ b/docs/guides/loading-data.md @@ -157,6 +157,10 @@ Promise.all([ }); ~~~ +:::info +See [Working with server](/guides/working-with-server) for a full round-trip: loading rows, saving the layout, and storing aggregated results. +::: + ## Loading CSV data You can load CSV data and convert it to JSON and then continue working with this data in the Pivot table. diff --git a/docs/guides/working-with-server.md b/docs/guides/working-with-server.md new file mode 100644 index 0000000..5db7c19 --- /dev/null +++ b/docs/guides/working-with-server.md @@ -0,0 +1,169 @@ +--- +sidebar_label: Working with server +title: Working with server +description: You can explore how to integrate Pivot with a backend in the documentation of the DHTMLX JavaScript Pivot library. Browse developer guides and API reference, try out code examples and live demos, and download a free 30-day evaluation version of DHTMLX Pivot. +--- + +Pivot runs entirely in the browser. The widget takes an array of raw rows plus a [`config`](/api/config/config-property) (rows / columns / values) and aggregates the rows on the client. There is no built-in transport layer, but the public API exposes hooks for a round-trip with any backend. + +A typical integration includes three parts: + +1. **Load** raw, non-aggregated data from the server on init. +2. **Save the config** when the user changes the layout, so the session resumes later. +3. **Save the aggregated table** when the server needs a snapshot of the rolled-up result. + +## Load raw data from the server + +The [`data`](/api/config/data-property) property expects an array of raw row objects. Pivot aggregates the rows itself, so the server returns un-rolled data. + +Pull data and fields with `fetch` (or any HTTP client), then construct the widget once the response arrives: + +~~~html +
+ + +~~~ + +If the server returns date fields as ISO strings, convert them to `Date` instances before passing the array to Pivot. Aggregation methods for date-typed fields rely on real `Date` values: + +~~~jsx +data.forEach(row => { + if (typeof row.when === "string") row.when = new Date(row.when); +}); +~~~ + +:::info +See also: [Loading data](/guides/loading-data), [Date formatting](/guides/localization#date-formatting). +::: + +## Save the user's layout to resume the session + +To let users return to the layout they left, persist the [`config`](/api/config/config-property) object on every change. The [`update-config`](/api/events/update-config-event) event fires when the user edits the layout via the UI. The payload is the processed config with the shape `{ rows, columns, values, filters }`. + +Use [`api.on()`](/api/internal/on-method) to observe the event without modifying it. Switch to [`api.intercept()`](/api/internal/intercept-method) when the handler needs to alter the event payload. + +The example below subscribes to the `update-config` event and posts the new layout to the server: + +~~~html +
+ + +~~~ + +On the next visit, return the saved config from `/config` and pass the config as the `config` property at init. The widget starts in the previous layout. If the layout arrives after the widget already exists, apply the saved config with the [`setConfig()`](/api/methods/setconfig-method) method. + +Frequent updates can flood the server when the user drags fields around the configuration panel. Wrap the POST in a timer to debounce the calls: + +~~~jsx +let saveTimer; +table.api.on("update-config", newConfig => { + clearTimeout(saveTimer); + saveTimer = setTimeout(() => { + fetch(server + "/config", { + method: "POST", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify(newConfig), + }); + }, 300); +}); +~~~ + +:::note +The `update-config` payload is the *processed* configuration: Pivot may normalize field references to the `{ field, method }` form. Send the processed shape back as the `config` property at init. No extra conversion is required. +::: + +:::tip +Return `false` from the handler to block the layout change. Use this to gate persistence on server-side validation. +::: + +## Save the aggregated table + +Sometimes the *result* itself is the value: a server-side cache of the rendered table, a periodic report, or an export pipeline. The [`render-table`](/api/events/render-table-event) event fires after Pivot finishes aggregation and carries the full rolled-up table: `columns`, `data` rows, `footer`, `split`, and so on. + +The example below subscribes to `render-table` and posts the snapshot to the server, skipping the initial render: + +~~~jsx +const table = new pivot.Pivot("#root", { data, fields, config }); + +let firstRender = true; +let saveTimer; + +table.api.on("render-table", ({ config: tableConfig }) => { + // skip the initial render triggered by the first aggregation + if (firstRender) { + firstRender = false; + return; + } + + clearTimeout(saveTimer); + saveTimer = setTimeout(() => { + fetch(server + "/snapshot", { + method: "POST", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify({ + columns: tableConfig.columns, + data: tableConfig.data, + footer: tableConfig.footer, + split: tableConfig.split, + }), + }); + }, 300); +}); +~~~ + +:::note +The `render-table` event fires more often than `update-config`. The event runs on every recompute, including sort and expand/collapse. Debounce the handler and skip the first render to keep one POST per real change. +::: + +:::tip +Return `false` from the handler to prevent rendering. Use this when the server rejects the snapshot or for read-only modes. +::: + +### Reload an aggregated snapshot + +Pivot produces aggregated tables and does not display pre-aggregated ones. The [`data`](/api/config/data-property) property always takes raw rows. A snapshot saved from `render-table` therefore fits these cases: + +- a downstream export pipeline (CSV, XLSX) on the server, +- a read-only view rendered by a plain data table from the saved `columns` and `data`, +- a cached report served to other users without re-running the aggregation. + +--- + +**Related articles**: + +- [Loading data](/guides/loading-data) +- [Exporting data](/guides/exporting-data) +- [`api.on()`](/api/internal/on-method) +- [`update-config` event](/api/events/update-config-event) +- [`render-table` event](/api/events/render-table-event) diff --git a/sidebars.js b/sidebars.js index 273cbeb..8e8f763 100644 --- a/sidebars.js +++ b/sidebars.js @@ -220,6 +220,7 @@ module.exports = { "guides/stylization", "guides/typescript-support", "guides/working-with-data", + "guides/working-with-server", ] } From c9fe643318177dabb0667cae05205e8dbec75c57 Mon Sep 17 00:00:00 2001 From: Serhii Pylypchuk Date: Mon, 25 May 2026 14:10:42 +0300 Subject: [PATCH 02/40] [update] rewrite initialization guide via article-guide skill MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - imperative headings (gerund → infinitive) - active voice, present simple - backticks for API identifiers (replaced bold) - added intro sentences for code blocks - added section on Pivot instance methods (getTable, setConfig, setLocale, showConfigPanel) --- docs/guides/initialization.md | 41 ++++++++++++++++++++++------------- 1 file changed, 26 insertions(+), 15 deletions(-) diff --git a/docs/guides/initialization.md b/docs/guides/initialization.md index a7252f8..50423ae 100644 --- a/docs/guides/initialization.md +++ b/docs/guides/initialization.md @@ -6,47 +6,49 @@ description: You can learn about the initialization in the documentation of the # Initialization -This guide will give you detailed instructions on how to create Pivot on a page to enrich your application with features of the Pivot table. Take the following steps to get a ready-to-use component: +This guide explains how to create Pivot on a page and enrich your application with Pivot table features. Take the following steps to get a ready-to-use component: -1. [Include the Pivot source files on a page](#including-source-files). -2. [Create a container for Pivot](#creating-container). -3. [Initialize Pivot with a constructor](#initializing-pivot). +1. [Include the Pivot source files on a page](#include-source-files). +2. [Create a container for Pivot](#create-a-container). +3. [Initialize Pivot with a constructor](#initialize-pivot). -## Including source files +## Include source files -See also how to download packages: [Downloading packages](/how-to-start#step-1-downloading-and-installing-packages). +A Pivot app requires two source files on the page. See also how to download packages: [Downloading packages](/how-to-start#step-1-downloading-and-installing-packages). -To create a Pivot app, you need to include 2 source files on your page: +Include the following files: - *pivot.js* - *pivot.css* -Make sure that you set correct relative paths to the source files: +Set the correct relative paths to the source files: ~~~html title="index.html" ~~~ -## Creating container +## Create a container -Add a container for Pivot and give it an ID, for example *"root"*: +Pivot renders into an HTML container element. Add a container and assign an ID, for example *"root"*: ~~~html title="index.html"
~~~ -## Initializing Pivot +## Initialize Pivot -Initialize Pivot with the **pivot.Pivot** constructor. It takes two parameters: +Initialize Pivot with the `pivot.Pivot` constructor. The constructor takes two parameters: - an HTML container (the ID of the HTML container) - an object with configuration properties +The following code snippet creates a Pivot instance in the *"root"* container with initial fields, data, and structure: + ~~~jsx // create Pivot const table = new pivot.Pivot("#root", { - //configuration properties + // configuration properties fields, data, config: { @@ -62,14 +64,23 @@ const table = new pivot.Pivot("#root", { }); ~~~ +The constructor returns a Pivot instance. Use the instance to call API methods on the widget: + +- [`getTable`](api/methods/gettable-method.md) — get access to the underlying Table widget instance +- [`setConfig`](api/methods/setconfig-method.md) — update the current Pivot configuration +- [`setLocale`](api/methods/setlocale-method.md) — apply a new locale to Pivot +- [`showConfigPanel`](api/methods/showconfigpanel-method.md) — show or hide the Configuration panel + ## Configuration properties +The Pivot constructor accepts an object with configuration properties that control data, layout, and behavior. + :::info -The full list of properties to configure **Pivot** can be found [**here**](api/overview/properties-overview.md). +For the full list of properties to configure Pivot, see [Properties overview](api/overview/properties-overview.md). ::: ## Example -In this snippet you can see how to initialize **Pivot** with the initial data: +The snippet below initializes Pivot with the initial data: From 2ac5d653f5e0e02229f3374ae81df2da6414c924 Mon Sep 17 00:00:00 2001 From: Serhii Pylypchuk Date: Mon, 25 May 2026 14:11:19 +0300 Subject: [PATCH 03/40] [update] rewrite exporting-data guide via article-guide skill MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - corrected method chain: widget.api.getTable().exec → widget.getTable().api.exec, per API docs - active voice, approved code-block intro template - added tip about getTable wait parameter - formatting fixes (spaces in inline code, comma cleanups) --- docs/guides/exporting-data.md | 38 ++++++++++++++++++++--------------- 1 file changed, 22 insertions(+), 16 deletions(-) diff --git a/docs/guides/exporting-data.md b/docs/guides/exporting-data.md index effed77..d70429d 100644 --- a/docs/guides/exporting-data.md +++ b/docs/guides/exporting-data.md @@ -6,34 +6,40 @@ description: You can explore how to export data in the documentation of the DHTM # Exporting data -To export the table data to the XLSX or CSV format, it's necessary to get access to the underlying Table widget instance inside Pivot and apply its API to export data. To do this, you should use the [`getTable`](/api/methods/gettable-method) method and execute the [`export`](/api/table/export) event. +Pivot exports table data to the XLSX or CSV format through the underlying Table widget. Access the Table instance with the [`getTable`](/api/methods/gettable-method) method, then trigger the [`export`](/api/table/export) event with the Table's [`api.exec`](/api/internal/exec-method) method. -In the example below we get access to the Table instance and trigger the `export`action using the [`api.exec()`](/api/internal/exec-method) method. +The example below accesses the Table instance and triggers the `export` event in CSV and XLSX formats: ~~~jsx -const widget = new pivot.Pivot("#root", { /*setting*/}); -widget.api.getTable().exec("export", { - options: { - format: "csv", - cols: ";" - } +const widget = new pivot.Pivot("#root", { /* settings */ }); + +widget.getTable().api.exec("export", { + options: { + format: "csv", + cols: ";" + } }); -widget.api.getTable().exec("export", { - options: { - format: "xlsx", - fileName: "My Report", - sheetName: "Quarter 1", - } + +widget.getTable().api.exec("export", { + options: { + format: "xlsx", + fileName: "My Report", + sheetName: "Quarter 1" + } }); ~~~ +:::tip +The [`getTable`](/api/methods/gettable-method) method accepts an optional `wait` boolean parameter. Pass `true` to receive a promise that resolves once the Table API is available. This form is useful when calling the Table API during Pivot initialization. +::: + ## Example -In this snippet you can see how to export data: +The snippet below demonstrates exporting data: **Related articles**: - [Date formatting](/guides/localization#date-formatting) -- [`export`](/api/table/export) \ No newline at end of file +- [`export`](/api/table/export) From 3a812a6b0591018f7bd74a37bc52b7d21ec8995a Mon Sep 17 00:00:00 2001 From: Serhii Pylypchuk Date: Mon, 25 May 2026 14:11:39 +0300 Subject: [PATCH 04/40] [update] rewrite loading-data guide via article-guide skill - added missing H1 (consistent with sibling guides) - split "Loading data" into "Load data from a file" and "Load data from a server" - imperative headings, active voice - introduced setConfig method (used in code without explanation before) - removed awkward single-item API list, replaced with prose - approved code-block intro templates, normalized inline comments --- docs/guides/loading-data.md | 58 +++++++++++++++++++------------------ 1 file changed, 30 insertions(+), 28 deletions(-) diff --git a/docs/guides/loading-data.md b/docs/guides/loading-data.md index 1b055c2..b74c5f9 100644 --- a/docs/guides/loading-data.md +++ b/docs/guides/loading-data.md @@ -4,15 +4,15 @@ title: Loading data description: You can explore how to load data in the documentation of the DHTMLX JavaScript Pivot library. Browse developer guides and API reference, try out code examples and live demos, and download a free 30-day evaluation version of DHTMLX Pivot. --- -## Preparing data for loading +# Loading data -Pivot supports JSON data format. You can also load CSV data that will be converted to JSON. +Pivot accepts data in JSON format via the [`data`](/api/config/data-property) property. CSV data is also supported after conversion to JSON. -The following types of information can be loaded into Pivot: +## Prepare data for loading -- [`data`](/api/config/data-property) - an array of objects, where each object represents the data row +The [`data`](/api/config/data-property) property accepts an array of objects, where each object represents one data row. The keys of each object define the dimensions and values used in the Pivot table. -**Example:** +The following code snippet defines a sample `data` array: ~~~jsx const data = [ @@ -66,21 +66,19 @@ const data = [ balance: 7.544, when: new Date("8/17/2014") }, - //other data + // other data ]; ~~~ :::info -See also how to define fields and Pivot structure: [Working with data](/guides/working-with-data) +See also how to define fields and Pivot structure: [Working with data](/guides/working-with-data). ::: -## Loading data +## Load data from a file -You can load JSON data into Pivot from an external file or the server-side script after the component has been initialized. +Pivot loads JSON data from an external file after initialization. First, prepare the source file with the data, fields, and configuration. -To load local data from a separate file, first prepare the source file with data. - -Example: +The following code snippet defines `data`, `fields`, and a `getData()` accessor in a separate file: ~~~jsx function getData() { @@ -123,11 +121,11 @@ const data = [ balance: 4.699, when: new Date("4/21/2015") }, - //other data + // other data ]; ~~~ -Second, add the path to the source data file: +Add the path to the source data file in the page markup: ~~~html title="index.html" @@ -136,38 +134,42 @@ Second, add the path to the source data file: ~~~ -Create Pivot and load data: +The following code snippet creates Pivot and loads data from the prepared file: ~~~jsx const { data, config, fields } = getData(); const table = new pivot.Pivot("#root", { data, config, fields }); ~~~ -To get server data, you can send the request for data using the native **fetch** method (or any other way): +## Load data from a server + +To load data from a server endpoint, send a request with the native `fetch` method (or any equivalent), then pass the response to the [`setConfig`](/api/methods/setconfig-method) method. The `setConfig` method updates the Pivot configuration and preserves previously set options. + +The following code snippet initializes Pivot with empty data, fetches data and fields from a server, then applies them with `setConfig`: ~~~jsx -const table = new pivot.Pivot("#root", {fields:[], data: []}); +const table = new pivot.Pivot("#root", { fields: [], data: [] }); const server = "https://some-backend-url"; Promise.all([ fetch(server + "/data").then((res) => res.json()), fetch(server + "/fields").then((res) => res.json()) ]).then(([data, fields]) => { - table.setConfig({data, fields}); + table.setConfig({ data, fields }); }); ~~~ -## Loading CSV data +## Load CSV data -You can load CSV data and convert it to JSON and then continue working with this data in the Pivot table. +Pivot accepts CSV data after conversion to JSON. Use an external JS parsing library to convert CSV to JSON, then work with the converted data the same way as native JSON. -To convert data, you should use an external parsing library for JS to convert data from CSV to JSON. +The example below uses the external [PapaParse](https://cdnjs.cloudflare.com/ajax/libs/PapaParse/5.4.1/papaparse.min.js) library to load and convert data on a button click. The `convert()` helper takes the following parameters: -In the example below we apply the external [PapaParse](https://cdnjs.cloudflare.com/ajax/libs/PapaParse/5.4.1/papaparse.min.js) library and enable loading and converting data on a button click. In this example we use the `convert()` function which takes the following parameters: +- `data` — a string with CSV data +- `headers` — an array with the names of fields for CSV data +- `meta` — an object where keys are the names of fields and values are the data types -- `data` - a string with CSV data -- `headers` - an array with the names of fields for CSV data -- `meta` - an object where keys are the names of fields and values are the data types +The following code snippet creates Pivot, defines the `convert()` helper, and applies parsed CSV data through [`setConfig`](/api/methods/setconfig-method) on a button click: ~~~jsx const table = new pivot.Pivot("#root", { @@ -238,7 +240,7 @@ function fromCSV() { "when" ]; - // date fields must be explicitly marked for proper conversion + // mark date fields explicitly for proper conversion const meta = { when: "date" }; const dataURL = "https://some-backend-url"; @@ -263,7 +265,7 @@ document.body.appendChild(importButton); ## Example -In this snippet you can see how to load JSON and CSV data: +The snippet below demonstrates loading JSON and CSV data: @@ -272,4 +274,4 @@ In this snippet you can see how to load JSON and CSV data: - [Pivot 2. Different datasets](https://snippet.dhtmlx.com/6xtqge4i) - [Pivot 2. Large dataset](https://snippet.dhtmlx.com/e6qwqrys) -**Related articles**: [Date formatting](/guides/localization#date-formatting) \ No newline at end of file +**Related articles**: [Date formatting](/guides/localization#date-formatting) From c3482189ba1e9849c1ea935aa6ea1b5ed079448c Mon Sep 17 00:00:00 2001 From: Serhii Pylypchuk Date: Mon, 25 May 2026 14:11:59 +0300 Subject: [PATCH 05/40] [update] rewrite localization guide via article-guide skill MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - imperative headings, active voice - added tip about setLocale() reset behavior (null arg) - fixed incomplete constructor: pivot.Pivot({...}) → pivot.Pivot("#root", {...}) - fixed self-contradictory date example (June vs September, undocumented %u → %S) - fixed missing comma in en locale object, "the the" typo, comment spacing - approved code-block intro templates --- docs/guides/localization.md | 76 +++++++++++++++++++++---------------- 1 file changed, 43 insertions(+), 33 deletions(-) diff --git a/docs/guides/localization.md b/docs/guides/localization.md index 2c3be82..133e8aa 100644 --- a/docs/guides/localization.md +++ b/docs/guides/localization.md @@ -6,15 +6,15 @@ description: You can learn about the localization in the documentation of the DH # Localization -You can localize all labels in the interface of JavaScript Pivot. For this purpose you need to create a new locale or modify a built-in one and apply it to Pivot. +Pivot lets you localize every label in the interface. Create a new locale or modify a built-in one, then apply the locale to Pivot via the [`locale`](/api/config/locale-property) property or the [`setLocale`](/api/methods/setlocale-method) method. ## Default locale -The **English** locale is applied by default: +Pivot applies the English locale by default. The following code snippet shows the structure of the built-in `en` locale: ~~~jsx const en = { - //pivot + // pivot pivot: { sum: "Sum", min: "Min", @@ -49,7 +49,7 @@ const en = { "Hide settings": "Hide settings" }, - //query + // query query: { "Add filter": "Add filter", "Add Filter": "Add Filter", @@ -84,7 +84,7 @@ const en = { "not between": "not between" }, - //calendar + // calendar calendar: { monthFull: [ "January", @@ -138,65 +138,73 @@ const en = { clockFormat: 24, }, - //core + // core core: { - ok:"OK", - cancel:"Cancel", + ok: "OK", + cancel: "Cancel", select: "Select", "No data": "No data" }, - //formats + // formats formats: { dateFormat: "%d.%m.%Y", timeFormat: "%H:%i" - } + }, lang: "en-US", }; ~~~ -## Applying locales +## Apply a locale -You can access built-in locales via the pivot object. Pivot provides three built-in locales: en, de, cn. +Pivot exposes three built-in locales through the `pivot.locales` object: `en`, `de`, and `cn`. Pass a built-in locale to the [`locale`](/api/config/locale-property) property during initialization. -Example: +The following code snippet initializes Pivot with the German locale: ~~~jsx -new pivot.Pivot({ +new pivot.Pivot("#root", { // other properties locale: pivot.locales.de, }); ~~~ -To apply a custom locale, you need to: +To apply a custom locale: + +- create a custom locale object (or modify a built-in one) and provide translations for all text labels (in any language) +- apply the locale to Pivot via the [`locale`](/api/config/locale-property) property or the [`setLocale`](/api/methods/setlocale-method) method -- create a custom locale object (or modify the default one) and provide translations for all text labels (it can be any language you need) -- apply the new locale to Pivot via its [`locale`](/api/config/locale-property) property or use the [`setLocale()`](/api/methods/setlocale-method) method +The following code snippet creates Pivot and then applies a custom Korean locale at runtime with `setLocale`: ~~~jsx // create Pivot const widget = new pivot.Pivot("#root", { - data, -//other configuration properties + data, + // other configuration properties }); -const ko = {...} //object with locale +const ko = { /* object with locale */ }; widget.setLocale(ko); ~~~ -## Date formatting +:::tip +Call [`setLocale`](/api/methods/setlocale-method) without arguments (or with `null`) to reset Pivot to the default English locale. +::: -Pivot accepts a date as a Date object (make sure to parse a date to a Date object). By default, the `dateFormat` of the current locale is applied. To redefine the format for all date fields in Pivot, change the value of the `dateFormat` parameter in the `formats` object of the [`locale`](/api/config/locale-property). The default format is "%d.%m.%Y". +## Format dates -Example: +Pivot accepts dates as `Date` objects. Parse string values to `Date` before passing data to Pivot. By default, Pivot applies the `dateFormat` from the current locale, which is `"%d.%m.%Y"`. + +To change the format for all date fields, set a new value for `dateFormat` in the `formats` object of the [`locale`](/api/config/locale-property) property. + +The following code snippet parses string dates into `Date` objects, then initializes Pivot with a custom `dateFormat` and updates the format at runtime via `setConfig`: ~~~jsx {17} function setFormat(value) { table.setConfig({ locale: { formats: { dateFormat: value } } }); } -// date string to Date +// convert date strings to Date objects const dateFields = fields.filter((f) => f.type == "date"); if (dateFields.length) { dataset.forEach((item) => { @@ -232,11 +240,11 @@ const table = new pivot.Pivot("#root", { }); ~~~ -In case you need to set a custom format to a specific field, use the `format` parameter of the [`fields`](/api/config/fields-property) property. Refer to [Applying formats to fields](/guides/working-with-data/#applying-formats-to-fields). +To set a custom format for a specific field, use the `format` parameter of the [`fields`](/api/config/fields-property) property. See [Applying formats to fields](/guides/working-with-data/#applying-formats-to-fields). -## Date and time format specification +## Date and time format characters -Pivot uses the following characters for setting the date and time format: +Pivot uses the following characters to define the date and time format: | Character | Definition |Example | | :-------- | :------------------------------------------------ |:------------------------| @@ -262,22 +270,24 @@ Pivot uses the following characters for setting the date and time format: | %A | AM or PM | AM (for time from midnight until noon) and PM (for time from noon until midnight)| | %c | displays date and time in the ISO 8601 date format| 2024-10-04T05:04:09 | +To present September 20, 2024 at 16:47:08.128 as *2024-09-20 16:47:08.128*, use the format `"%Y-%m-%d %H:%i:%s.%S"`. + +## Format numbers -To present the 20th of June, 2024 with the exact time as *2024-09-20 16:47:08.128*, specify "%Y-%m-%d-%H:%i:%s.%u". +Pivot localizes all `number` fields according to the locale (the value in the `lang` field of the locale). The widget uses the [`Intl.NumberFormat`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat) specification. By default, Pivot limits fraction digits to 3 and applies group separation to the integer part. -## Number formatting +To skip formatting for a specific numeric field or to set a custom format, use the `format` parameter of the [`fields`](/api/config/fields-property) property. Set `format` to `false` to disable formatting, or to an object with format settings (see [Applying formats to fields](/guides/working-with-data/#applying-formats-to-fields)). -By default, all fields with the number type are localized according to the locale (the value in the `lang` field of the locale). Pivot uses [`Intl.NumberFormat`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat) specification. By default the fraction digits are limited to 3 and group separation is applied for the integer part. -In case you do not need to format specific fields with numeric values or need to set a custom format, use the the `format` parameter of the [`fields`](/api/config/fields-property) property. It can be either *false* to cancel formatting or an object with format settings (refer to [Applying formats to fields](/guides/working-with-data/#applying-formats-to-fields)). +The following code snippet disables number formatting for the `year` field: ~~~jsx const fields = [ - { id: "year", label: "Year", type: "number", format: false}, + { id: "year", label: "Year", type: "number", format: false }, ]; ~~~ ## Example -In this snippet you can see how to switch between several locales: +The snippet below demonstrates switching between several locales: From 6d6a396bde46de6045d526687a9b554c0cce2d80 Mon Sep 17 00:00:00 2001 From: Serhii Pylypchuk Date: Mon, 25 May 2026 14:17:59 +0300 Subject: [PATCH 06/40] [update] rewrite styling guide via article-guide skill MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - imperative headings, active voice, approved code-block intros - fixed wrong link target: headerShape cellStyle linked to tableshape-property → headershape-property - added full marks() function signature (value, columnData, rowData) per API docs - restructured marks section, removed awkward single-item "built-in theme" list - added missing intro descriptions for sections that jumped straight into code --- docs/guides/stylization.md | 63 ++++++++++++++++++++++++-------------- 1 file changed, 40 insertions(+), 23 deletions(-) diff --git a/docs/guides/stylization.md b/docs/guides/stylization.md index 3b2967c..2e5ac24 100644 --- a/docs/guides/stylization.md +++ b/docs/guides/stylization.md @@ -6,8 +6,12 @@ description: You can learn about the styling in the documentation of the DHTMLX # Styling +Pivot ships with a default theme and exposes CSS variables and utility classes for customization. Override the variables on the widget container (or any ancestor) to change colors, borders, and other visual properties. + ## Default style +The default Pivot theme is **Material**. The following CSS snippet shows the variables that the Material theme sets on the widget container: + ~~~css .wx-material-theme { --wx-theme-name: material; @@ -21,22 +25,21 @@ description: You can learn about the styling in the documentation of the DHTMLX ~~~ :::tip Note -Next versions of Pivot can bring some changes for the variables and their names. Please, do not forget to check the names after updating to the newer versions and modify them in your code to avoid problems with display of the component. +Future versions of Pivot may rename CSS variables. Check the variable names after upgrading and update them in your code to avoid display issues. ::: ## Built-in theme -The widget provides one built-in theme which is the **Material** theme. +Pivot provides one built-in theme: **Material**. Apply the theme either by adding the theme class to the widget container or by including the prebuilt skin stylesheet on the page. -You can apply the theme via adding the corresponding *CSS* classes to the widget container: +The following code snippet applies the Material theme by adding the `wx-material-theme` class to the widget container: -- **Material theme** ~~~html {}
~~~ -or just include the theme on the page from the skins folder: +The following code snippet includes the Material skin stylesheet directly: ~~~html {} @@ -44,7 +47,9 @@ or just include the theme on the page from the skins folder: ## Customize built-in theme -The example below demonstrates how to customize the **Material** theme that is applied to the Pivot table: +Override the Material theme variables on the `.wx-material-theme` selector to change colors, borders, and other visual properties. + +The example below overrides Material theme variables to render Pivot in a dark color scheme: ~~~html @@ -70,9 +75,9 @@ The example below demonstrates how to customize the **Material** theme that is a ## Custom style -You can change the appearance of Pivot by applying the corresponding CSS variables. +Change the appearance of Pivot by overriding the Pivot CSS variables on a custom class applied to the widget container. -The example below shows how to apply a custom style to Pivot: +The example below applies a custom style to Pivot via the `.demo` class: ~~~html
@@ -91,20 +96,23 @@ The example below shows how to apply a custom style to Pivot: ## Scroll style -You can also apply a custom style to the scroll bar of Pivot. For this, you can use the `.wx-styled-scroll` CSS class. Before using it, check compatibility with the modern browsers [here](https://caniuse.com/css-scrollbar). +Apply a custom style to the Pivot scroll bar with the `.wx-styled-scroll` CSS class. Check browser compatibility before use: [caniuse: CSS Scrollbar](https://caniuse.com/css-scrollbar). + +The following code snippet enables the styled scroll bar on the widget container: ~~~html {} title="index.html" - +
~~~ ## Cell style -To apply a CSS class to the table body or footer cells, use the `cellStyle` parameter of the [`tableShape`](/api/config/tableshape-property) property. The style of the header cells can be customized via the `cellStyle` parameter of the [`headerShape`](/api/config/tableshape-property) property. In both cases the `cellStyle` function returns a string, which can be used as a CSS class name to apply specific styles to a cell. +To style body or footer cells, use the `cellStyle` parameter of the [`tableShape`](/api/config/tableshape-property) property. To style header cells, use the `cellStyle` parameter of the [`headerShape`](/api/config/headershape-property) property. In both cases the `cellStyle` function returns a string, and Pivot uses the returned string as a CSS class name on the cell. + +The example below applies styles to body and header cells: -In the example below the styles of cells in the table body and headers are customized in the following way: -- for the table body cells, styles are applied dynamically based on cell values (e.g., "Down", "Up", "Idle") in the "status" field and on total values (greater than 40 or less than 5) -- the style of header cells is determined by the value in the "streaming" field, with specific styles applied for "no" or other values (the CSS class "status-down" is applied for the "no" value and "status-up" is applied for the not "no" value) +- body cells receive a class based on cell values (e.g. `"Down"`, `"Up"`, `"Idle"` in the `status` field) and on total values (greater than 40 or less than 5) +- header cells receive a class based on the value of the `streaming` field — `status-down` for `"no"` and `status-up` for any other value ~~~jsx const widget = new pivot.Pivot("#pivot", { @@ -155,14 +163,15 @@ const widget = new pivot.Pivot("#pivot", { }); ~~~ -## Marking values in cells +## Mark values in cells + +Use the `marks` parameter of the [`tableShape`](/api/config/tableshape-property) property to apply a CSS class to cells that meet a condition. Each entry in `marks` pairs a CSS class name (the key) with a rule (the value). -The widget API allows marking required values in cells. You can do it by applying the `marks` parameter of the [`tableShape`](/api/config/tableshape-property) property. You need to do the following: -- create a CSS class to be applied to the marked cell -- add the CSS class name as the parameter of the `marks` object -- set its value which can be a custom function or one of the predefined strings ("max", "min"). The function should return boolean for the checked value; if **true** is returned, the css class is assigned to the cell. +The rule is either a predefined string (`"max"` or `"min"`) or a custom function `(value, columnData, rowData) => boolean`. When the function returns `true`, Pivot adds the CSS class to the cell. -In the example below, cells with min and max values are marked, and custom function is used to mark cells with values that are non-integer and greater than 2. +Before applying `marks`, create the CSS classes in your stylesheet. + +The example below highlights cells with the minimum and maximum values, and uses a custom function to mark non-integer values greater than 2: ~~~jsx {18-26} const table = new pivot.Pivot("#root", { @@ -194,6 +203,8 @@ const table = new pivot.Pivot("#root", { }); ~~~ +The following code snippet defines the CSS classes referenced by the `marks` object above: + ~~~html title="index.html" ~~~ -It's also possible to customize the style of total columns via the ` .wx-total` CSS class: +To style total columns, override the `.wx-total` CSS class. + +The following code snippet styles total cells with a light background and a heavier font weight: ~~~html +~~~ + +## Benutzerdefinierter Style {#custom-style} + +Ändern Sie das Erscheinungsbild von Pivot, indem Sie die CSS-Variablen mit einer benutzerdefinierten Klasse am Widget-Container überschreiben. + +Das folgende Beispiel wendet über die Klasse `.demo` einen benutzerdefinierten Style auf Pivot an: + +~~~html +
+ +~~~ + +## Scroll-Style {#scroll-style} + +Wenden Sie mit der CSS-Klasse `.wx-styled-scroll` einen benutzerdefinierten Style auf die Pivot-Scrollleiste an. Prüfen Sie die Browser-Kompatibilität vor der Verwendung: [caniuse: CSS Scrollbar](https://caniuse.com/css-scrollbar). + +Der folgende Code-Ausschnitt aktiviert die gestaltete Scrollleiste am Widget-Container: + +~~~html {} title="index.html" + +
+~~~ + +## Zellen-Style {#cell-style} + +Um Body- oder Footer-Zellen zu gestalten, verwenden Sie den Parameter `cellStyle` der Eigenschaft [`tableShape`](api/config/tableshape-property.md). Um Header-Zellen zu gestalten, verwenden Sie den Parameter `cellStyle` der Eigenschaft [`headerShape`](api/config/headershape-property.md). In beiden Fällen gibt die Funktion `cellStyle` einen CSS-Klassenamen zurück, den Pivot auf die Zelle anwendet. + +Das folgende Beispiel wendet Styles auf Body- und Header-Zellen an: + +- Body-Zellen erhalten eine Klasse basierend auf Zellwerten (z. B. `"Down"`, `"Up"`, `"Idle"` im Feld `status`) und auf Gesamtwerten (größer als 40 oder kleiner als 5) +- Header-Zellen erhalten eine Klasse basierend auf dem Wert des Feldes `streaming` — `status-down` für `"no"` und `status-up` für jeden anderen Wert + +~~~jsx +const widget = new pivot.Pivot("#pivot", { + tableShape: { + totalColumn: true, + totalRow:true, + cellStyle: (field, value, area, method, isTotal) => { + if (field === "status" && area === "rows" && value) { + if (value === "Down") { + return "status-down"; + } else if (value === "Up") { + return "status-up"; + } else if (value === "Idle") { + return "status-idle"; + } + } + if(isTotal ==="column" && area == "values"){ + if(value > 40) + return "status-up"; + else if (value < 5) + return "status-down"; + } + } + }, + headerShape:{ + cellStyle:(field, value, area, method, isTotal) => { + if(field == "streaming") + return value ==="no"?"status-down":"status-up"; + } + }, + fields, + data: dataset, + config: { + rows: [ + "protocol", + "status", + ], + columns: [ + "streaming" + ], + values: [ + { + field: "id", + method: "count" + } + ] + } +}); +~~~ + +## Werte in Zellen markieren {#mark-values-in-cells} + +Verwenden Sie den Parameter `marks` der Eigenschaft [`tableShape`](api/config/tableshape-property.md), um eine CSS-Klasse auf Zellen anzuwenden, die eine Bedingung erfüllen. Jeder Eintrag in `marks` verknüpft einen CSS-Klassenamen (den Schlüssel) mit einer Regel (dem Wert). + +Die Regel ist entweder ein vordefinierter String (`"max"` oder `"min"`) oder eine benutzerdefinierte Funktion `(value, columnData, rowData) => boolean`. Wenn die Funktion `true` zurückgibt, fügt Pivot die CSS-Klasse zur Zelle hinzu. + +Erstellen Sie die CSS-Klassen in Ihrem Stylesheet, bevor Sie `marks` anwenden. + +Das folgende Beispiel hebt Zellen mit den minimalen und maximalen Werten hervor und verwendet eine benutzerdefinierte Funktion, um Nicht-Ganzzahlen größer als 2 zu markieren: + +~~~jsx {18-26} +const table = new pivot.Pivot("#root", { + fields, + data, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + }, + tableShape: { + marks: { + // integrierte Markierungen (Min/Max-Hervorhebung) + min_cell: "min", + max_cell: "max", + // benutzerdefinierte Markierung + g_avg: v => (v % 1 !== 0) && v > 2 + } + } +}); +~~~ + +Der folgende Code-Ausschnitt definiert die CSS-Klassen, auf die das `marks`-Objekt oben verweist: + +~~~html title="index.html" + +~~~ + +## Spezifische CSS-Klassen {#specific-css-classes} + +Pivot enthält mehrere CSS-Hilfsklassen, die Sie überschreiben können, um einzelne Tabellenelemente präzise zu steuern. + +Pivot richtet Zahlen in Body-Zellen über die integrierte CSS-Klasse `.wx-number` rechtsbündig aus. Ausnahme ist die hierarchische Spalte im Baumstruktur-Modus (wenn `tree: true` in [`tableShape`](api/config/tableshape-property.md) gesetzt ist). Um die Standard-Ausrichtung von Zahlen zurückzusetzen, überschreiben Sie die Klasse. + +Der folgende Code-Ausschnitt richtet Zahlen in Body-Zellen linksbündig aus: + +~~~html + +~~~ + +Um Gesamtspalten zu gestalten, überschreiben Sie die CSS-Klasse `.wx-total`. + +Der folgende Code-Ausschnitt gestaltet Gesamtzellen mit einem hellen Hintergrund und einer stärkeren Schriftgewichtung: + +~~~html + +~~~ + +## Beispiel {#example} + +Der folgende Ausschnitt wendet einen benutzerdefinierten Style auf Pivot an: + + + +**Verwandte Beispiele**: + +- [Pivot 2. Gestaltung (benutzerdefiniertes CSS) für die Gesamtspalte](https://snippet.dhtmlx.com/9lkdbzmm) +- [Pivot 2. Min/Max- und benutzerdefinierte Markierungen für Zellen (bedingte Formatierung)](https://snippet.dhtmlx.com/4cm4asbd) +- [Pivot 2. Alternierende Zeilenfarbe (gestreifte Zeilen, Zebra-Streifen)](https://snippet.dhtmlx.com/0cm0uko2) diff --git a/i18n/de/docusaurus-plugin-content-docs/current/guides/typescript-support.md b/i18n/de/docusaurus-plugin-content-docs/current/guides/typescript-support.md new file mode 100644 index 0000000..5bea14a --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/guides/typescript-support.md @@ -0,0 +1,17 @@ +--- +sidebar_label: TypeScript-Unterstützung +title: TypeScript-Unterstützung +description: Sie können in der Dokumentation erfahren, wie TypeScript mit der DHTMLX JavaScript Pivot-Bibliothek verwendet wird. Durchsuchen Sie Entwicklerhandbücher und API-Referenzen, probieren Sie Codebeispiele und Live-Demos aus und laden Sie eine kostenlose 30-Tage-Evaluierungsversion von DHTMLX Pivot herunter. +--- + +# TypeScript-Unterstützung {#typescript-support} + +DHTMLX Pivot wird ab v2.0 mit TypeScript-Definitionen geliefert. Die Definitionen sind sofort einsatzbereit – keine zusätzliche Konfiguration erforderlich. + +:::info +Testen Sie Pivot live im [Snippet-Tool](https://snippet.dhtmlx.com/y2buoahe). +::: + +## Vorteile von TypeScript {#advantages-of-typescript} + +Typprüfung und Autovervollständigung erkennen Fehler frühzeitig, und die mitgelieferten Definitionen zeigen Ihnen genau, welche Datentypen die DHTMLX Pivot-API erwartet. diff --git a/i18n/de/docusaurus-plugin-content-docs/current/guides/working-with-data.md b/i18n/de/docusaurus-plugin-content-docs/current/guides/working-with-data.md new file mode 100644 index 0000000..6d6ad18 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/guides/working-with-data.md @@ -0,0 +1,687 @@ +--- +sidebar_label: Arbeiten mit Daten +title: Arbeiten mit Daten +description: In der Dokumentation der DHTMLX JavaScript Pivot-Bibliothek erfahren Sie, wie Sie mit Daten arbeiten. Durchsuchen Sie Entwicklerhandbücher und API-Referenzen, probieren Sie Codebeispiele und Live-Demos aus und laden Sie eine kostenlose 30-Tage-Evaluierungsversion von DHTMLX Pivot herunter. +--- + +# Arbeiten mit Daten + +Diese Seite beschreibt, wie Sie Daten in Pivot aggregieren, formatieren, sortieren, filtern und vorverarbeiten können. Anweisungen zum Laden und Exportieren von Daten finden Sie unter [Daten laden](guides/loading-data.md) und [Daten exportieren](guides/exporting-data.md). + +## Felder definieren {#define-fields} + +Verwenden Sie die Eigenschaft [`fields`](api/config/fields-property.md), um die Felder zu deklarieren, die Pivot in Zeilen, Spalten und Werten platzieren kann. Jedes Element im `fields`-Array beschreibt ein Feld — seine ID, sein Label und seinen Datentyp. + +Der folgende Code-Ausschnitt initialisiert Pivot mit fünf Feldern: + +~~~jsx +const table = new pivot.Pivot("#root", { + fields: [ + { id: "year", label: "Year", type: "number" }, + { id: "continent", label: "Continent", type: "text" }, + { id: "form", label: "Form", type: "text" }, + { id: "oil", label: "Oil", type: "number" }, + { id: "balance", label: "Balance", type: "number" } + ], + data, + config: {...} +}); +~~~ + +## Formate auf Felder anwenden {#applying-formats-to-fields} + +Pivot wendet ein Standardformat auf numerische Felder und Datumsfelder basierend auf der aktuellen Locale an. Weitere Informationen finden Sie unter [Datumsformatierung](guides/localization.md#date-formatting) und [Zahlenformatierung](guides/localization.md#number-formatting). + +Um den Standard für ein bestimmtes Feld zu überschreiben, legen Sie den Parameter `format` der Eigenschaft [`fields`](api/config/fields-property.md) fest. + +### Numerische Felder formatieren {#format-numeric-fields} + +Verwenden Sie `prefix` und `suffix`, um Text um numerische Werte hinzuzufügen, und `maximumFractionDigits`, um die Dezimalgenauigkeit zu steuern. Um beispielsweise `12.345` als `"12.35 EUR"` darzustellen, setzen Sie das Suffix auf `" EUR"` und `maximumFractionDigits` auf `2`: + +~~~js +const fields = [ + { id: "sales", type: "number", format: { suffix: " EUR", maximumFractionDigits: 2 } }, +]; +~~~ + +Die Standardformatierung begrenzt numerische Felder auf 3 Nachkommastellen und wendet eine Gruppentrennzeichenformatierung auf den ganzzahligen Teil an. Um die Formatierung vollständig zu deaktivieren, setzen Sie `format` auf `false`: + +~~~js +const fields = [ + { id: "year", label: "Year", type: "number", format: false }, +]; +~~~ + +Das folgende Beispiel markiert `marketing`, `profit` und `sales` als Währungsfelder mit einem `$`-Präfix und fixen 2-stelligen Dezimalstellen: + +~~~jsx +// Pivot mit einem vordefinierten Datensatz und Feldern initialisieren +new pivot.Pivot("#pivot", { + data, + config: { + rows: ["state", "product_type"], + columns: [], + values: [ + { field: "marketing", method: "sum" }, + // weitere Werte + + ], + }, + fields:[ + // benutzerdefiniertes Format + { id: "marketing", label: "Marketing", type:"number", format:{ + prefix: "$", minimumFractionDigits: 2, maximumFractionDigits: 2 } + } + ] +}); +~~~ + +### Datumsfelder formatieren {#format-date-fields} + +Um das locale-weite `dateFormat` für ein einzelnes Feld zu überschreiben, setzen Sie den Parameter `format` von [`fields`](api/config/fields-property.md) auf einen Datumsformat-String. + +Der folgende Code-Ausschnitt setzt `"%M %d, %Y"` als Format für das Feld `date`: + +~~~jsx +const fields = [ + { id: "date", type: "date", format: "%M %d, %Y" }, +]; +~~~ + +Das folgende Beispiel konvertiert String-Datumsangaben in `Date`-Objekte und initialisiert dann Pivot mit dem Format `"%d %M %Y %H:%i"` für das Feld `date`. Feldwerte werden als Labels wie `"24 April 2025 14:30"` dargestellt. + +~~~jsx +// Datums-Strings in Date-Objekte konvertieren +const dateFields = fields.filter(f => f.type === "date"); +dataset.forEach(item => { + dateFields.forEach(f => { + const v = item[f.id]; + if (typeof v === "string") { + item[f.id] = new Date(v); + } + }); +}); + +// Pivot mit einem feldspezifischen Datumsformat initialisieren +new pivot.Pivot("#pivot", { + data, + config: { + rows: ["state"], + columns: ["product_type"], + values: [ + { field: "date", method: "min" }, + { field: "profit", method: "sum" }, + { field: "sales", method: "sum" } + ] + }, + fields:[ + // benutzerdefiniertes Format: Tag Monat Jahr Stunde:Minute + { id: "date", label: "Date", type: "date", format: "%d %M %Y %H:%i" } + ] +}); +~~~ + +:::note +Für das `xlsx`-Exportformat exportiert Pivot Datums- und Zahlenfelder als Rohwerte mit ihrem Standardformat (oder dem über die Eigenschaft [`fields`](api/config/fields-property.md) definierten Format). Wenn für ein Feld ein Template definiert ist (siehe die Eigenschaft [`tableShape`](api/config/tableshape-property.md)), exportiert Pivot den vom Template erzeugten gerenderten Wert. Wenn sowohl `template` als auch `format` gesetzt sind, überschreibt das Template das Format. +::: + +## Pivot-Struktur definieren {#define-pivot-structure} + +Verwenden Sie die Eigenschaft [`config`](api/config/config-property.md), um zu deklarieren, welche Felder als Zeilen, Spalten und aggregierte Werte erscheinen und wie die Daten gefiltert werden. Die Eigenschaft `config` hat keine vordefinierten Werte — Sie müssen sie setzen, um Daten zu rendern. Die vollständige Parameterliste finden Sie in der Referenz zu [`config`](api/config/config-property.md). + +Der folgende Code-Ausschnitt platziert `continent` und `name` in Zeilen, `year` in Spalten, drei Aggregationen in Werten und einen Filter auf `name`: + +~~~jsx {4-18} +const table = new pivot.Pivot("#root", { + fields, + data, + config: { + rows: ["continent", "name"], + columns: ["year"], + values: [ + "count(oil)", + { field: "oil", method: "sum" }, + { field: "gdp", method: "sum" } + ] + }, + fields, + filters: { + name: { + contains: "B" + } + } +}); +~~~ + +## Daten sortieren {#sorting-data} + +Pivot unterstützt die Sortierung in allen drei Bereichen (Werte, Spalten, Zeilen) während der Aggregation. In der Benutzeroberfläche klicken Benutzer auf einen Spalten-Header, um zu sortieren. + +Um eine Standardsortierung festzulegen, verwenden Sie den Parameter `sort` der Eigenschaft [`fields`](api/config/fields-property.md). Der Parameter akzeptiert `"asc"`, `"desc"` oder eine benutzerdefinierte Vergleichsfunktion. + +Das folgende Beispiel rendert anklickbare Feld-Labels über Pivot und schaltet die Sortierreihenfolge beim Klicken um: + +~~~jsx +const bar = document.getElementById("bar"); + +let sorted = ["studio", "genre"]; +setFields(); +bar.addEventListener('click', (e) => switchSort(e.target.id), false); + +function setFields(){ + let html = ""; + let sortedFields = fields.filter(f => (sorted.indexOf(f.id) != -1)); + + sortedFields.forEach((f) =>{ + const order = f.sort || "asc"; + html += `
+ ${f.label} +
`; + }); + bar.innerHTML = html; +} + +function switchSort(id){ + fields.forEach(f => { + if(f.id == id){ + f.sort = f.sort != "desc" ? "desc" : "asc"; + } + }); + // Pivot-Felder aktualisieren + table.setConfig({ fields }); + // Icons aktualisieren + setFields(bar, fields); +} + +const table = new pivot.Pivot("#root", { + fields, + data: dataset, + config: { + rows: [ + "studio", + "genre" + ], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + } +}); +~~~ + +Die Sortierung in der Benutzeroberfläche ist standardmäßig aktiviert. Um sie zu deaktivieren, setzen Sie den Parameter `sort` der Eigenschaft [`columnShape`](api/config/columnshape-property.md) auf `false`. + +Der folgende Code-Ausschnitt deaktiviert die UI-Sortierung: + +~~~jsx {19} +const table = new pivot.Pivot("#root", { + fields, + data, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + }, + columnShape: { + sort: false + } +}); +~~~ + +## Daten filtern {#filtering-data} + +Pivot unterstützt Filter, die an Felddatentypen gebunden sind. Sie können Filter über die Pivot-Benutzeroberfläche nach der Initialisierung oder deklarativ über das `filters`-Objekt der Eigenschaft [`config`](api/config/config-property.md) setzen. + +In der Benutzeroberfläche erscheinen Filter als Dropdown-Listen für jedes Feld. + +#### Filtertypen {#filter-types} + +Pivot unterstützt die folgenden Filterbedingungen je Datentyp: + +- Textfelder — `equal`, `notEqual`, `contains`, `notContains`, `beginsWith`, `notBeginsWith`, `endsWith`, `notEndsWith`, `includes` +- Numerische Felder — `equal`, `notEqual`, `greater`, `greaterOrEqual`, `less`, `lessOrEqual`, `contains`, `notContains`, `beginsWith`, `notBeginsWith`, `endsWith`, `notEndsWith` +- Datumsfelder — `equal`, `notEqual`, `greater`, `greaterOrEqual`, `less`, `lessOrEqual`, `between`, `notBetween`, `includes` + +Die Regel `includes` schränkt einen Filter auf eine bestimmte Menge zulässiger Werte ein. + +#### Filter hinzufügen {#add-a-filter} + +Um einen Filter zu deklarieren, fügen Sie das `filters`-Objekt zur Eigenschaft [`config`](api/config/config-property.md) hinzu, mit der Feld-ID als Schlüssel. Jeder Wert ist ein Objekt mit Filterbedingungen. + +Der folgende Code-Ausschnitt wendet zwei Filter an — einen auf `genre` (Werte, die `"D"` enthalten, eingeschränkt auf `"Drama"`) und einen auf `title` (Werte, die `"A"` enthalten): + +~~~jsx +const table = new pivot.Pivot("#root", { + fields, + data: dataset, + config: { + rows: ["studio", "genre"], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ], + filters: { + genre: { + contains: "D", + includes: ["Drama"] + }, + title: { + // Filter für ein weiteres Feld ("title") + contains: "A" + } + } + } +}); +~~~ + +:::info +Um Daten stattdessen über die Table-Widget-API zu filtern, greifen Sie mit der Methode [`getTable`](api/methods/gettable-method.md) auf die Table-Instanz zu und verwenden Sie das Event [`filter-rows`](api/table/filter-rows.md). +::: + +## Geladene Daten begrenzen {#limiting-loaded-data} + +Um zu verhindern, dass die Komponente bei sehr großen Datensätzen hängt, begrenzen Sie die Anzahl der Zeilen und Spalten im finalen Datensatz mit der Eigenschaft [`limits`](api/config/limits-property.md). Pivot unterbricht das Rendering, sobald das Limit erreicht ist. Die Standardobergrenze liegt bei 10000 für Zeilen und 5000 für Spalten. + +:::note +Limits gelten für große Datensätze. Die Zahlen sind ungefähr — Pivot garantiert keine exakte Zeilen-/Spaltenanzahl. +::: + +Der folgende Code-Ausschnitt begrenzt den Datensatz auf 10 Zeilen und 3 Spalten: + +~~~jsx +const table = new pivot.Pivot("#root", { + fields, + data: dataset, + config: { + rows: ["studio"], + columns: ["genre"], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + }, + limits: { rows: 10, columns: 3 } +}); +~~~ + +## Mathematische Methoden anwenden {#applying-maths-methods} + +### Standardmethoden {#default-methods} + +Pivot enthält die folgenden integrierten Aggregationsmethoden: + +- `sum` (nur numerische Werte) — summiert alle ausgewählten Werte; ignoriert leere Zellen, logische Werte wie `TRUE` und Text +- `min` (numerische Werte und Datumswerte) — gibt den Minimalwert zurück; ignoriert leere Zellen, logische Werte und Text. Gibt `0` zurück, wenn die Eingabe keine Zahlen enthält +- `max` (numerische Werte und Datumswerte) — gibt den Maximalwert zurück; ignoriert leere Zellen, logische Werte und Text. Gibt `0` zurück, wenn die Eingabe keine Zahlen enthält +- `count` (numerische, Text- und Datumswerte) — zählt nicht leere Zellen; dies ist die Standardmethode, die jedem neu hinzugefügten Feld zugewiesen wird +- `countunique` (numerische Werte und Textwerte) — zählt die Anzahl eindeutiger Werte in der Eingabe +- `average` (nur numerische Werte) — berechnet das arithmetische Mittel der Eingabe; ignoriert leere Zellen, logische Werte und Text. Berücksichtigt Zellen mit dem Wert null +- `counta` (numerische, Text- und Datumswerte) — zählt alle nicht leeren Werte, einschließlich Zahlen, Datumsangaben und Text +- `median` (nur numerische Werte) — gibt den Median der Eingabe zurück +- `product` (nur numerische Werte) — gibt das Produkt aller Zahlen in der Eingabe zurück +- `stdev` (nur numerische Werte) — Standardabweichung, wobei die Eingabe als Stichprobe einer größeren Menge behandelt wird +- `stdevp` (nur numerische Werte) — Standardabweichung, wobei die Eingabe als die gesamte Population behandelt wird +- `var` (nur numerische Werte) — Varianz, wobei die Eingabe als Stichprobe einer größeren Menge behandelt wird +- `varp` (nur numerische Werte) — Varianz, wobei die Eingabe als die gesamte Population behandelt wird + +Der folgende Code-Ausschnitt zeigt die integrierten Methodendefinitionen: + +~~~jsx +const defaultMethods = { + sum: { type: "number", label: "sum" }, + min: { type: ["number", "date"], label: "min" }, + max: { type: ["number", "date"], label: "max" }, + count: { + type: ["number", "date", "text"], + label: "count", + branchMath: "sum" + }, + counta: { + type: ["number", "date", "text"], + label: "counta", + branchMath: "sum" + }, + countunique: { + type: ["number", "text"], + label: "countunique", + branchMath: "sum" + }, + average: { type: "number", label: "average", branchMode: "raw" }, + median: { type: "number", label: "median", branchMode: "raw" }, + product: { type: "number", label: "product" }, + stdev: { type: "number", label: "stdev", branchMode: "raw" }, + stdevp: { type: "number", label: "stdevp", branchMode: "raw" }, + var: { type: "number", label: "var", branchMode: "raw" }, + varp: { type: "number", label: "varp", branchMode: "raw" } +}; +~~~ + +Wenden Sie eine Standardmethode über den Parameter `values` der Eigenschaft [`config`](api/config/config-property.md) an. Siehe [Werte definieren](#options-for-defining-values). + +Der folgende Code-Ausschnitt weist dem Feld `title` die Methode `count` und dem Feld `score` die Methode `max` zu: + +~~~jsx +const table = new pivot.Pivot("#root", { + fields, + data, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + // Feld-ID + field: "title", + // Methode + method: "count" + }, + { + id: "score", + method: "max" + } + ] + } +}); +~~~ + +### Werte definieren {#options-for-defining-values} + +Definieren Sie jeden Eintrag in `values` in einer von zwei äquivalenten Formen: + +- ein String der Form `"operation(fieldID)"` +- ein Objekt `{ field: string, method: string }` (beide Felder erforderlich) + +Der folgende Code-Ausschnitt verwendet beide Formen im selben `values`-Array: + +~~~jsx +values: [ + "sum(sales)", // Option eins + { field: "sales", method: "sum" } // Option zwei +] +~~~ + +### Die Standardmethode überschreiben {#override-the-default-method} + +Für jedes neu hinzugefügte Feld weist Pivot die erste verfügbare Methode für den Datentyp zu. Um dieses Verhalten zu ändern, fangen Sie das Event `add-field` mit der Methode [`api.intercept`](api/internal/intercept-method.md) ab. + +Das folgende Beispiel fängt `add-field` ab und erzwingt die Methode `max`, sobald ein numerisches Feld hinzugefügt wird: + +~~~jsx {20-27} +const table = new pivot.Pivot("#root", { + fields, + data: dataset, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count", + }, + { + field: "score", + method: "max", + }, + ], + }, +}); +// Standardmethode für neu hinzugefügte numerische Felder überschreiben +table.api.intercept("add-field", (ev) => { + const { fields } = table.api.getState(); + const type = fields.find((f) => f.id == ev.field).type; + + if (ev.area == "values" && type == "number") { + ev.method = "max"; + } +}); +~~~ + +### Benutzerdefinierte mathematische Methoden hinzufügen {#add-custom-math-methods} + +Um eine benutzerdefinierte Aggregationsmethode hinzuzufügen, verwenden Sie die Eigenschaft [`methods`](api/config/methods-property.md). Jeder Eintrag verknüpft einen Methodennamen (den Schlüssel) mit einem Konfigurationsobjekt, das eine `handler`-Funktion und Metadaten enthält. Der `handler` nimmt ein Array von Werten entgegen und gibt einen einzelnen aggregierten Wert zurück. + +Das folgende Beispiel fügt zwei datumsspezifische Methoden hinzu. `countunique_date` zählt eindeutige Datumsangaben anhand ihrer numerischen Zeitstempel. `average_date` gibt das durchschnittliche Datum zurück, indem Zeitstempel gemittelt werden: + +~~~jsx +function countUnique(values, converter) { + const valueMap = {}; + return values.reduce((acc, d) => { + if (converter) d = converter(d); + if (!valueMap[d]) { + acc++; + valueMap[d] = true; + } + return acc; + }, 0); +} + +const methods = { + countunique_date: { + handler: values => countUnique(values, v => new Date(v).getTime()), + type: "date", + label: "CountUnique", + }, + average_date: { + type: "date", + label: "Average", + branchMode: "raw", + handler: values => { + if (!values.length) return null; + const sum = values.reduce((acc, d) => acc + d.getTime(), 0); + const avgTime = sum / values.length; + return new Date(avgTime); + } + } +}; + +// Ganzzahlen für "count"- und "unique count"-Ergebnisse anzeigen +const templates = {}; +fields.forEach(f => { + if (f.type == "number") + templates[f.id] = (v, method) => + v && method.indexOf("count") < 0 ? parseFloat(v).toFixed(3) : v; +}); + +// Datums-Strings in Date-Objekte konvertieren +const dateFields = fields.filter(f => f.type == "date"); +if (dateFields.length) { + dataset.forEach(item => { + dateFields.forEach(f => { + const v = item[f.id]; + if (typeof v == "string") item[f.id] = new Date(v); + }); + }); +} + +const table = new pivot.Pivot("#root", { + fields, + data: dataset, + tableShape: { templates }, + methods: { ...pivot.defaultMethods, ...methods }, + config:{ + rows: ["state"], + columns: [ + "product_line", + "product_type" + ], + values: [ + { + field: "sales", + method: "sum" + }, + { + field: "sales", + method: "count" + }, + { + field: "date", + method: "countunique_date" + }, + { + field: "date", + method: "average_date" + } + ] + } +}); +~~~ + +## Daten mit Prädikaten verarbeiten {#processing-data-with-predicates} + +Prädikate sind Vorverarbeitungsfunktionen, die Rohfelddaten transformieren, bevor Pivot die Daten in Zeilen oder Spalten verwendet. Ein Prädikat kann beispielsweise Datumsangaben vor der Aggregation nach Monat gruppieren. + +Der folgende Code-Ausschnitt zeigt die integrierten Datumspr­ädikate, die Pivot standardmäßig anwendet: + +~~~jsx +const defaultPredicates = { + year: { label: "Year", type: "date", filter: { type: "number" } }, + quarter: { label: "Quarter", type: "date", filter: { type: "tuple" } }, + month: { label: "Month", type: "date", filter: { type: "tuple" } }, + week: { label: "Week", type: "date", filter: { type: "tuple" } }, + day: { label: "Day", type: "date", filter: { type: "number" } }, + hour: { label: "Hour", type: "date", filter: { type: "number" } }, + minute: { label: "Minute", type: "date", filter: { type: "number" } } +}; +~~~ + +Um ein benutzerdefiniertes Prädikat hinzuzufügen, konfigurieren Sie die Eigenschaft [`predicates`](api/config/predicates-property.md). Jeder Eintrag verknüpft eine Prädikat-ID (den Schlüssel) mit einem Konfigurationsobjekt: + +- `type` — die Feldtypen, die dieses Prädikat akzeptiert (`"number"`, `"date"`, `"text"` oder ein Array) +- `label` — das Prädikat-Label, das im GUI-Dropdown für eine Zeile/Spalte angezeigt wird +- `handler` — Funktion, die einen Wert transformiert und den verarbeiteten Wert zurückgibt +- `template` — optionale Funktion, die steuert, wie der verarbeitete Wert angezeigt wird +- `field` — optionale Funktion, die das Prädikat auf bestimmte Felder beschränkt +- `filter` — optionale Filter-Konfiguration, wenn der Filtertyp vom `type` abweichen soll oder wenn das Datenformat vom `template` abweichen soll + +Um ein benutzerdefiniertes Prädikat zu verwenden, setzen Sie seine ID als `method` der Zeile oder Spalte, auf die das Prädikat angewendet werden soll. + +Der folgende Code-Ausschnitt registriert zwei benutzerdefinierte Prädikate (`monthYear` und `profitSign`) und wendet sie in der `columns`-Konfiguration an: + +~~~jsx +const predicates = { + monthYear: { + label: "Month-year", + type: "date", + handler: (d) => new Date(d.getFullYear(), d.getMonth(), 1), + template: (date, locale) => { + const months = locale.getRaw().calendar.monthFull; + return months[date.getMonth()] + " " + date.getFullYear(); + }, + }, + profitSign: { + label: "Profit Sign", + type: "number", + filter: { + type: "tuple", + format: (v) => (v < 0 ? "Negative" : "Positive"), + }, + field: (f) => f === "profit", + handler: (v) => (v < 0 ? -1 : 1), + template: (v) => (v < 0 ? "Negative profit" : "Positive profit"), + }, +}; + +// Datums-Strings in Date-Objekte konvertieren +const dateFields = fields.filter((f) => f.type == "date"); +if (dateFields.length) { + dataset.forEach((item) => { + dateFields.forEach((f) => { + const v = item[f.id]; + if (typeof v == "string") item[f.id] = new Date(v); + }); + }); +} + +const table = new pivot.Pivot("#pivot", { + fields, + data: dataset, + predicates: { ...pivot.defaultPredicates, ...predicates }, + tableShape: { tree: true }, + config: { + rows: ["product_type", "product"], + columns: [ + { field: "profit", method: "profitSign" }, + { field: "date", method: "monthYear" }, + ], + values: ["sales", "expenses"], + }, +}); +~~~ + +## Spalten und Zeilen mit Gesamtwerten hinzufügen {#add-columns-and-rows-with-total-values} + +Verwenden Sie die Eigenschaft [`tableShape`](api/config/tableshape-property.md), um eine Gesamtspalte rechts (`totalColumn: true`) oder eine Gesamtzeile als Fußzeile (`totalRow: true`) zu rendern. + +Der folgende Code-Ausschnitt aktiviert sowohl die Gesamtspalte als auch die Gesamtzeile: + +~~~jsx {2-5} +const table = new pivot.Pivot("#root", { + tableShape: { + totalRow: true, + totalColumn: true + }, + fields, + data, + config: { + rows: ["studio"], + columns: ["type"], + values: [ + { + field: "score", + method: "max" + }, + { + field: "episodes", + method: "count" + }, + { + field: "rank", + method: "min" + }, + { + field: "members", + method: "sum" + } + ] + } +}); +~~~ + +## Beispiel {#example} + +Der folgende Ausschnitt wendet benutzerdefinierte mathematische Operationen an: + + + +**Verwandte Beispiele**: + +- [Pivot 2. Datensatz mit Aliasen](https://snippet.dhtmlx.com/7vc68rqd) +- [Pivot 2. Feldformate definieren](https://snippet.dhtmlx.com/77nc4j8v) +- [Pivot 2. Externer Filter](https://snippet.dhtmlx.com/s7tc9g4z) +- [Pivot 2. Gesamtsumme für Spalten und Zeilen](https://snippet.dhtmlx.com/f0ag0t9t) diff --git a/i18n/de/docusaurus-plugin-content-docs/current/guides/working-with-server.md b/i18n/de/docusaurus-plugin-content-docs/current/guides/working-with-server.md new file mode 100644 index 0000000..2e19094 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/guides/working-with-server.md @@ -0,0 +1,172 @@ +--- +sidebar_label: Mit dem Server arbeiten +title: Mit dem Server arbeiten +description: In der Dokumentation der DHTMLX JavaScript Pivot-Bibliothek erfahren Sie, wie Sie Pivot in ein Backend integrieren. Erkunden Sie Entwicklerleitfäden und die API-Referenz, testen Sie Code-Beispiele und Live-Demos, und laden Sie eine kostenlose 30-Tage-Evaluierungsversion von DHTMLX Pivot herunter. +--- + +Pivot läuft vollständig im Browser. Das Widget nimmt ein Array aus rohen Zeilen sowie eine [`config`](/api/config/config-property) (Rows / Columns / Values) entgegen und aggregiert die Zeilen clientseitig. Es gibt keine integrierte Transport-Schicht, aber die öffentliche API stellt Hooks für die Kommunikation mit einem beliebigen Backend bereit. + +Eine typische Integration umfasst drei Teile: + +1. **Laden** von rohen, nicht aggregierten Daten vom Server bei der Initialisierung +2. **Speichern der Config**, wenn der Benutzer das Layout ändert, damit die Sitzung später fortgesetzt werden kann +3. **Speichern der aggregierten Tabelle**, wenn der Server einen Snapshot des zusammengefassten Ergebnisses benötigt + +## Rohdaten vom Server laden {#load-raw-data-from-the-server} + +Die [`data`](/api/config/data-property)-Eigenschaft erwartet ein Array aus rohen Zeilenobjekten. Pivot aggregiert die Zeilen selbst, daher gibt der Server nicht aufbereitete Daten zurück. + +Rufen Sie Daten und Felder mit `fetch` (oder einem beliebigen HTTP-Client) ab und erstellen Sie das Widget, sobald die Antwort eintrifft: + +~~~html +
+ + +~~~ + +Wenn der Server Datumsfelder als ISO-Strings zurückgibt, konvertieren Sie diese in `Date`-Instanzen, bevor Sie das Array an Pivot übergeben. Aggregationsmethoden für datumsbasierte Felder erfordern echte `Date`-Werte: + +~~~jsx +data.forEach(row => { + if (typeof row.when === "string") row.when = new Date(row.when); +}); +~~~ + +:::info +**Siehe auch**: +- [Daten laden](/guides/loading-data) +- [Datumsformatierung](/guides/localization#date-formatting) +::: + +## Layout des Benutzers speichern, um die Sitzung fortzusetzen {#save-the-users-layout-to-resume-the-session} + +Damit Benutzer zu dem Layout zurückkehren können, das sie zuletzt verwendet haben, speichern Sie das [`config`](/api/config/config-property)-Objekt bei jeder Änderung. Das [`update-config`](/api/events/update-config-event)-Event wird ausgelöst, wenn der Benutzer das Layout über die Benutzeroberfläche bearbeitet. Der Payload ist die verarbeitete Config mit der Struktur `{ rows, columns, values, filters }`. + +Verwenden Sie [`api.on()`](/api/internal/on-method), um das Event zu beobachten, ohne es zu modifizieren. Wechseln Sie zu [`api.intercept()`](/api/internal/intercept-method), wenn der Handler den Event-Payload ändern muss. + +Das folgende Beispiel abonniert das `update-config`-Event und sendet das neue Layout an den Server: + +~~~html +
+ + +~~~ + +Beim nächsten Besuch geben Sie die gespeicherte Config von `/config` zurück und übergeben sie beim Start als `config`-Eigenschaft. Das Widget startet mit dem vorherigen Layout. Falls das Layout nach der Erstellung des Widgets eintrifft, wenden Sie die gespeicherte Config mit der Methode [`setConfig()`](/api/methods/setconfig-method) an. + +Häufige Aktualisierungen können den Server überlasten, wenn der Benutzer Felder im Konfigurationspanel verschiebt. Schließen Sie den POST in einen Timer ein, um die Aufrufe zu entprellen: + +~~~jsx +let saveTimer; +table.api.on("update-config", newConfig => { + clearTimeout(saveTimer); + saveTimer = setTimeout(() => { + fetch(server + "/config", { + method: "POST", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify(newConfig), + }); + }, 300); +}); +~~~ + +:::note +Der `update-config`-Payload ist die *verarbeitete* Konfiguration: Pivot kann Feldreferenzen in die Form `{ field, method }` normalisieren. Senden Sie die verarbeitete Struktur beim Start als `config`-Eigenschaft zurück. Eine zusätzliche Konvertierung ist nicht erforderlich. +::: + +:::tip +Geben Sie `false` aus dem Handler zurück, um die Layout-Änderung zu blockieren. Nutzen Sie dies, um die Persistenz an eine serverseitige Validierung zu knüpfen. +::: + +## Aggregierte Tabelle speichern {#save-the-aggregated-table} + +Manchmal ist das *Ergebnis* selbst der Wert: ein serverseitiger Cache der gerenderten Tabelle, ein regelmäßiger Bericht oder eine Export-Pipeline. Das [`render-table`](/api/events/render-table-event)-Event wird ausgelöst, nachdem Pivot die Aggregation abgeschlossen hat, und enthält die vollständig zusammengefasste Tabelle: `columns`, `data`-Zeilen, `footer`, `split` und weitere Felder. + +Das folgende Beispiel abonniert `render-table` und sendet den Snapshot an den Server, wobei das erste Rendering übersprungen wird: + +~~~jsx +const table = new pivot.Pivot("#root", { data, fields, config }); + +let firstRender = true; +let saveTimer; + +table.api.on("render-table", ({ config: tableConfig }) => { + // erstes Rendering überspringen, das durch die erste Aggregation ausgelöst wird + if (firstRender) { + firstRender = false; + return; + } + + clearTimeout(saveTimer); + saveTimer = setTimeout(() => { + fetch(server + "/snapshot", { + method: "POST", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify({ + columns: tableConfig.columns, + data: tableConfig.data, + footer: tableConfig.footer, + split: tableConfig.split, + }), + }); + }, 300); +}); +~~~ + +:::note +Das `render-table`-Event wird häufiger ausgelöst als `update-config`. Das Event läuft bei jeder Neuberechnung, einschließlich Sortierung und Auf-/Zuklappen. Entprellen Sie den Handler und überspringen Sie das erste Rendering, um nur einen POST pro tatsächlicher Änderung zu senden. +::: + +:::tip +Geben Sie `false` aus dem Handler zurück, um das Rendering zu verhindern. Nutzen Sie dies, wenn der Server den Snapshot ablehnt oder für Nur-Lese-Modi. +::: + +### Aggregierten Snapshot neu laden {#reload-an-aggregated-snapshot} + +Pivot erstellt aggregierte Tabellen und zeigt keine voraggregtierten an. Die [`data`](/api/config/data-property)-Eigenschaft akzeptiert immer rohe Zeilen. Ein aus `render-table` gespeicherter Snapshot eignet sich daher für folgende Anwendungsfälle: + +- eine nachgelagerte Export-Pipeline (CSV, XLSX) auf dem Server +- eine Nur-Lese-Ansicht, die von einer einfachen Datentabelle aus den gespeicherten `columns` und `data` gerendert wird +- ein zwischengespeicherter Bericht, der anderen Benutzern bereitgestellt wird, ohne die Aggregation erneut auszuführen + +**Verwandte Artikel**: + +- [Daten laden](/guides/loading-data) +- [Daten exportieren](/guides/exporting-data) + +**Verwandte API**: + +- [`api.on()`](/api/internal/on-method) +- [`update-config`](/api/events/update-config-event) +- [`render-table`](/api/events/render-table-event) diff --git a/i18n/de/docusaurus-plugin-content-docs/current/how-to-start.md b/i18n/de/docusaurus-plugin-content-docs/current/how-to-start.md new file mode 100644 index 0000000..5a413b9 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/how-to-start.md @@ -0,0 +1,122 @@ +--- +sidebar_label: Erste Schritte +title: Erste Schritte +description: Erfahren Sie, wie Sie mit DHTMLX Pivot arbeiten – in der Dokumentation der DHTMLX JavaScript Pivot-Bibliothek. Durchsuchen Sie Entwicklerleitfäden und API-Referenzen, probieren Sie Codebeispiele und Live-Demos aus und laden Sie eine kostenlose 30-Tage-Evaluierungsversion von DHTMLX Pivot herunter. +--- + +# Erste Schritte {#how-to-start} + +Dieses klare und umfassende Tutorial führt Sie durch die Schritte, die erforderlich sind, um ein voll funktionsfähiges Pivot auf einer Seite einzurichten. + +![pivot-main](/assets/pivot_main.png) + +## Schritt 1. Pakete herunterladen und installieren {#step-1-downloading-and-installing-packages} + +[Laden Sie das Paket herunter](https://dhtmlx.com/docs/products/dhtmlxPivot/download.shtml) und entpacken Sie es in einen Ordner Ihres Projekts. + +Sie können JavaScript Pivot mit dem Paketmanager `yarn` oder `npm` in Ihr Projekt importieren. + +:::info +Wenn Sie Pivot in React-, Angular-, Svelte- oder Vue-Projekte integrieren möchten, lesen Sie die entsprechenden [**Integrationsleitfäden**](/category/integration-with-frameworks/) für weitere Informationen. +::: + +### Trial-Version von Pivot über npm oder yarn installieren {#installing-trial-pivot-via-npm-or-yarn} + +:::info +Wenn Sie die Trial-Version von Pivot verwenden möchten, laden Sie das [**Trial-Pivot-Paket**](https://dhtmlx.com/docs/products/dhtmlxPivot/download.shtml) herunter und folgen Sie den im *README*-Datei beschriebenen Schritten. Beachten Sie, dass die Trial-Version von Pivot nur 30 Tage lang verfügbar ist. +::: + +### PRO-Version von Pivot über npm oder yarn installieren {#installing-pro-pivot-via-npm-or-yarn} + +:::info +Sie können direkt im [Kundenbereich](https://dhtmlx.com/clients/) auf das private DHTMLX-**npm** zugreifen, indem Sie Ihre Anmeldedaten für **npm** generieren. Eine detaillierte Installationsanleitung ist dort ebenfalls verfügbar. Bitte beachten Sie, dass der Zugriff auf das private **npm** nur während einer aktiven proprietären Pivot-Lizenz möglich ist. +::: + +## Schritt 2. Quelldateien einbinden {#step-2-including-source-files} + +Erstellen Sie zunächst eine HTML-Datei und nennen Sie sie *index.html*. Binden Sie anschließend die Pivot-Quelldateien in die erstellte Datei ein. + +Zwei Dateien sind erforderlich: + +- die JS-Datei von Pivot +- die CSS-Datei von Pivot + +~~~html {5-6} title="index.html" + + + + How to Start with Pivot + + + + + + + +~~~ + +## Schritt 3. Pivot erstellen {#step-3-creating-pivot} + +Jetzt können Sie Pivot zur Seite hinzufügen. Erstellen Sie zunächst den DIV-Container für Pivot. + +~~~html {} title="index.html" + + + + How to Start with Pivot + + + + +
+ + + +~~~ + +## Schritt 4. Pivot konfigurieren {#step-4-configuring-pivot} + +Als Nächstes können Sie die Konfigurationseigenschaften festlegen, die die Pivot-Komponente bei der Initialisierung haben soll. + +Um mit Pivot zu arbeiten, müssen Sie zunächst die Ausgangsdaten bereitstellen. Das folgende Beispiel erstellt ein Pivot mit: + +- Zeilen für *studio* und *genre* +- der Spalte *title* +- der Wertaggregation für *score* mit der Methode *max* + +Das Array **fields** ist erforderlich, um die Feld-IDs, Anzeigelabels und Datentypen zu definieren. + +Das Array **data** soll die tatsächlichen Daten enthalten, die im Pivot-Widget angezeigt werden. Jedes Objekt im Array repräsentiert eine Zeile in der Tabelle. + +Das Objekt **config** definiert die Struktur der Pivot-Tabelle, d. h. welche Felder als Zeilen und Spalten der Tabelle verwendet werden und welche Datenaggregationsmethoden auf die Felder angewendet werden sollen. + +~~~jsx +const table = new pivot.Pivot("#root", { + //Konfigurationseigenschaften + fields, + data, + config: { + rows: ["studio", "genre"], + columns: ["title"], + values: [ + { + field: "score", + method: "max" + } + ] + } +}); +~~~ + +## Wie geht es weiter {#whats-next} + +Das war's. Mit diesen einfachen Schritten verfügen Sie über ein praktisches Werkzeug zur Datenanalyse. Jetzt können Sie mit Ihren Aufgaben beginnen oder die Welt von JavaScript Pivot weiter erkunden: + +- Die Seiten [Leitfäden](/category/guides) enthalten Anleitungen zur Installation, zum Laden von Daten, zur Gestaltung und weitere hilfreiche Tipps für eine reibungslose Pivot-Konfiguration +- Die [API-Referenz](api/overview/main-overview.md) beschreibt die Funktionalität von Pivot diff --git a/i18n/de/docusaurus-plugin-content-docs/current/index.md b/i18n/de/docusaurus-plugin-content-docs/current/index.md new file mode 100644 index 0000000..bddb34c --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/index.md @@ -0,0 +1,103 @@ +--- +sidebar_label: Pivot-Übersicht +title: JavaScript Pivot – Übersicht +slug: / +description: In dieser Dokumentation erhalten Sie einen Überblick über die DHTMLX JavaScript Pivot-Bibliothek. Durchsuchen Sie Entwicklerhandbücher und die API-Referenz, probieren Sie Code-Beispiele und Live-Demos aus und laden Sie eine kostenlose 30-Tage-Evaluierungsversion von DHTMLX Pivot herunter. +--- + +# DHTMLX Pivot – Übersicht {#dhtmlx-pivot-overview} + +Die JavaScript Pivot-Bibliothek ist eine fertige Komponente zur Erstellung von Pivot-Tabellen aus großen Datensätzen. Die Widget-API lässt sich problemlos an die Anforderungen Ihrer Webanwendung anpassen. Sie bietet dem Endbenutzer Funktionen zum Vergleichen und Analysieren komplexer Daten innerhalb einer einzigen Tabelle. + +## Aufbau von Pivot {#pivot-structure} + +Die Pivot-Oberfläche besteht aus zwei Hauptkomponenten: dem Konfigurationsbereich und der Datentabelle. + +![Main](assets/pivot-main.png) + +## Konfigurationsbereich {#configuration-panel} + +Im Konfigurationsbereich können Sie der Tabelle Spalten und Zeilen sowie Wertefelder hinzufügen, die die Datenaggregationsmethoden festlegen. Jedes Element lässt sich über die folgenden Bereiche im Panel hinzufügen: + +- Werte: Sie können Werte hinzufügen, die bestimmen, wie Daten aggregiert werden (z. B. Summe, Minimum, Maximum) +- Spalten: Sie können die Spalten der Tabelle konfigurieren (festlegen, welche Felder als Spalten verwendet werden) +- Zeilen: Sie können festlegen, welche Felder als Zeilen der Tabelle verwendet werden sollen + +Um den Konfigurationsbereich auszublenden, klicken Sie auf die Schaltfläche **Einstellungen ausblenden**: + +![config_panel](assets/config_panel.png) + +### Wertebereich {#values-area} + +Im **Wertebereich** können Sie festlegen, welche Aggregationsmethoden (z. B. Minimum, Maximum, Anzahl) auf die Zellen der Pivot-Tabelle angewendet werden. Sie können folgende Operationen ausführen: + +- Felder zum Wertebereich hinzufügen und daraus entfernen +- Reihenfolge und Priorität der Werte in der Tabelle ändern +- Daten filtern +- Operationen festlegen, die auf die Felder der Tabelle angewendet werden + +Weitere Einzelheiten finden Sie in den Abschnitten [Operationen in Bereichen](#operations-in-areas) und [Filter](#filters). + +### Spaltenbereich {#columns-area} + +Im **Spaltenbereich** können Sie folgende Operationen ausführen: + +- Spalten hinzufügen und entfernen (d. h. als Spalten verwendete Felder hinzufügen/entfernen) +- Reihenfolge und Priorität der Spalten in der Tabelle ändern +- Daten filtern + +Weitere Einzelheiten finden Sie in den Abschnitten [Operationen in Bereichen](#operations-in-areas) und [Filter](#filters). + +### Zeilenbereich {#rows-area} + +Im Konfigurationsbereich für den **Zeilenbereich** können Sie folgende Operationen ausführen: + +- Zeilen hinzufügen und entfernen (d. h. als Zeilen verwendete Felder hinzufügen/entfernen) +- Reihenfolge und Priorität der Zeilen in der Tabelle ändern +- Daten filtern + +Weitere Einzelheiten finden Sie in den Abschnitten [Operationen in Bereichen](#operations-in-areas) und [Filter](#filters). + +### Operationen in Bereichen {#operations-in-areas} + +In allen drei Bereichen des Konfigurationsbereichs können Sie Felder zur Tabelle hinzufügen und daraus entfernen. Wenn ein Feld als Zeile oder Spalte verwendet werden soll, wählen Sie es im entsprechenden Bereich (Spalten oder Zeilen) aus. + +Um ein neues Feld hinzuzufügen, klicken Sie im gewünschten Bereich auf die Schaltfläche „+" und wählen Sie den Namen aus der Dropdown-Liste aus. + +Um ein Element zu entfernen, klicken Sie auf die Löschen-Schaltfläche („x"). + +![add_remove](assets/add_remove.png) + +Um die Reihenfolge von Werten, Zeilen oder Spalten in der Tabelle zu ändern, ziehen Sie ein Element an die gewünschte Position. Je weiter links sich ein Element in der Symbolleistenliste des Bereichs befindet, desto höher ist seine Priorität und Position in der Tabelle. + +![priority](assets/priority.png) + +Um Operationen festzulegen, die auf alle Daten einer Tabellenspalte angewendet werden, klicken Sie im **Wertebereich** auf die Wertoperation des gewünschten Felds in der Dropdown-Liste und wählen Sie die gewünschte Option aus der Liste aus. + +![operations](assets/operations.png) + +### Filter {#filters} + +Filter werden als Dropdown-Listen für jedes Feld in allen Bereichen angezeigt. Pivot unterstützt die folgenden Bedingungstypen zum Filtern: + +- für Textwerte: equal, notEqual, contains, notContains, beginsWith, notBeginsWith, endsWith, notEndsWith +- für numerische Werte: greater, less, greaterOrEqual, lessOrEqual, equal, notEqual, contains, notContains, begins with, not begins with, ends with, not ends with +- für Datumstypen: greater, less, greaterOrEqual, lessOrEqual, equal, notEqual, between, notBetween + +Um Daten in der Tabelle zu filtern, klicken Sie auf das Filtersymbol eines der Elemente im gewünschten Bereich, wählen Sie dann den Operator aus, legen Sie den Filterwert fest und klicken Sie auf **Anwenden**. Felder, auf die eine Filterung angewendet wird, werden mit einem speziellen Filtersymbol markiert. + +![filters](assets/filter.png) + +## Tabelle {#table} + +Die Daten in der Tabelle werden so angezeigt, wie sie im Konfigurationsbereich eingestellt wurden. Die **Sortierung** in Spalten wird durch Klicken auf den Spaltenheader aktiviert: + +![table](assets/table.png) + +## Nächste Schritte {#whats-next} + +Jetzt können Sie mit der Integration von Pivot in Ihre Anwendung beginnen. Folgen Sie den Anweisungen im Tutorial [Erste Schritte](how-to-start.md). + +Wenn Sie die vom Widget-API bereitgestellten Funktionen nutzen, erhalten Sie eine ansprechende Pivot-Tabelle mit weiteren Features, wie in dem folgenden Beispiel zu sehen: + + diff --git a/i18n/de/docusaurus-plugin-content-docs/current/news/migration.md b/i18n/de/docusaurus-plugin-content-docs/current/news/migration.md new file mode 100644 index 0000000..d4ef74f --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/news/migration.md @@ -0,0 +1,57 @@ +--- +sidebar_label: Migration zu neueren Versionen +title: Migration zu neueren Versionen +description: In der Dokumentation der DHTMLX JavaScript Pivot-Bibliothek erfahren Sie mehr über die Migration zu neueren Versionen. Erkunden Sie Entwicklerleitfäden und API-Referenzen, probieren Sie Code-Beispiele und Live-Demos aus, und laden Sie eine kostenlose 30-Tage-Evaluierungsversion von DHTMLX Pivot herunter. +--- + +# Migration zu neueren Versionen + +## 2.0 -> 2.1 + +- Der Parameter `colWidth` des `sizes`-Objekts in der Eigenschaft `tableShape` wurde in `columnWidth` umbenannt + +## 1.5 -> 2.0 + +Diese Liste der Änderungen hilft Ihnen bei der Migration von der vorherigen Version Pivot 1.5 zur vollständig erneuerten Version Pivot 2.0 + +:::note +Prüfen Sie unseren [Konverter für die Datenmigration von v.1.5](https://snippet.dhtmlx.com/s4sfdhq4) +::: + +### Geänderte API {#changed-api} + +#### Eigenschaften {#properties} + +Neue Eigenschaften sind keine vollständige Duplikate der vorherigen, sondern bieten erweiterte Funktionalität. + +- [fieldList](https://docs.dhtmlx.com/pivot/1-5/api__pivot_fieldlist_config.html) -> [fields](api/config/fields-property.md) +- [fields](https://docs.dhtmlx.com/pivot/1-5/api__pivot_fields_config.html) -> [config](api/config/config-property.md) +- [mark](https://docs.dhtmlx.com/pivot/1-5/api__pivot_mark_config.html) -> der Parameter `marks` der Eigenschaft [tableShape](api/config/tableshape-property.md) +- [types](https://docs.dhtmlx.com/pivot/1-5/api__pivot_types_config.html) -> [methods](api/config/methods-property.md) +- [layout](https://docs.dhtmlx.com/pivot/1-5/api__pivot_layout_config.html) -> [columnShape](api/config/columnshape-property.md), [headerShape](api/config/headershape-property.md), [readonly](api/config/readonly-property.md) +- [customFormat](https://docs.dhtmlx.com/pivot/1-5/api__pivot_customformat_config.html) -> [predicates](api/config/predicates-property.md) - benutzerdefinierte Vorverarbeitungsfunktionen für Daten + +#### Events {#events} + +- [filterApply](https://docs.dhtmlx.com/pivot/1-5/api__pivot_filterapply_event.html) -> [apply-filter](api/events/apply-filter-event.md) +- [fieldClick](https://docs.dhtmlx.com/pivot/1-5/api__pivot_fieldclick_event.html) -> es gibt kein identisches Event, aber Sie können [update-field](api/events/update-field-event.md) verwenden + +### Entfernte API {#removed-api} + +- [Methoden aus Version 1.5](https://docs.dhtmlx.com/pivot/1-5/api__refs__pivot_methods.html) sind veraltet; alle neuen Methoden finden Sie hier: [Methoden](api/overview/main-overview.md#pivot-methods) +- [Pivot-1.5-Events](https://docs.dhtmlx.com/pivot/1-5/api__refs__pivot_events.html) (`change`, `fieldClick`, `applyButtonClick`) sind in Pivot 2.0 nicht mehr verfügbar, aber Sie finden in der neuen Version erweiterte Funktionalität (siehe [Pivot-Events](api/overview/events-overview.md)) + +### Wichtige Features {#important-features} + +- Datenexport: [frühere Export-Option](https://docs.dhtmlx.com/pivot/1-5/guides__export.html) -> [neue Export-Option](guides/exporting-data.md) +- Sortierung: [Felder sortieren](https://docs.dhtmlx.com/pivot/1-5/guides__configuration.html#configuringfields) -> [Daten sortieren](guides/working-with-data.md#sorting-data) +- Baumstruktur-Modus: [gridMode](https://docs.dhtmlx.com/pivot/1-5/guides__configuration.html#gridmode) -> [Baumstruktur-Modus aktivieren](guides/configuration.md#enabling-the-tree-mode) +- Datumsformat: [Datumsfelder konfigurieren](https://docs.dhtmlx.com/pivot/1-5/guides__configuration.html#configuringdatefields) -> +[Datumsformat festlegen](guides/localization.md#date-formatting) +- Anpassung: + - [Zellenformatierung](https://docs.dhtmlx.com/pivot/1-5/guides__customization.html#conditionalformattingofcells) -> [Zellenstil](guides/stylization.md#cell-style) + - [Vorlagen für Kopfzeilen](https://docs.dhtmlx.com/pivot/1-5/guides__customization.html#settingtemplatesforheaders) -> + [Vorlagen auf Kopfzeilen anwenden](guides/configuration.md#applying-templates-to-headers) + - [Vorlagen für Zellen](https://docs.dhtmlx.com/pivot/1-5/guides__customization.html#settingtemplatesforcells) -> + [Vorlagen auf Zellen anwenden](guides/configuration.md#applying-templates-to-cells) +- Filterung: [Arbeiten mit Filtern](https://docs.dhtmlx.com/pivot/1-5/guides__using_filters.html) -> [Daten filtern](guides/working-with-data.md#filtering-data) diff --git a/i18n/de/docusaurus-plugin-content-docs/current/news/whats-new.md b/i18n/de/docusaurus-plugin-content-docs/current/news/whats-new.md new file mode 100644 index 0000000..2a7ce40 --- /dev/null +++ b/i18n/de/docusaurus-plugin-content-docs/current/news/whats-new.md @@ -0,0 +1,114 @@ +--- +sidebar_label: Was ist neu +title: Was ist neu +description: Sie können erkunden, was neu in DHTMLX Pivot ist, und die Release-Historie in der Dokumentation der DHTMLX JavaScript-UI-Bibliothek nachschlagen. Durchsuchen Sie Entwicklerhandbücher und API-Referenz, probieren Sie Code-Beispiele und Live-Demos aus und laden Sie eine kostenlose 30-Tage-Evaluierungsversion von DHTMLX Pivot herunter. +--- + +# Was ist neu {#whats-new} + +Wenn Sie Pivot von einer älteren Version aktualisieren, lesen Sie [Migration zu neueren Versionen](news/migration.md) für Details. + +## Version 2.1.1 {#version-211} + +Veröffentlicht am 10. Juni 2026 + +### Fehlerbehebungen {#fixes} + +- Der Fehler „getMonth" tritt auf, wenn Zeilenfilter auf Datensätze mit fehlenden oder leeren Werten angewendet werden + +## Version 2.1 {#version-21} + +Veröffentlicht am 6. Mai 2025 + +### Neue Funktionalität {#new-functionality} + +- [Möglichkeit, Spalten rechts einzufrieren](guides/configuration.md#freezing-columns-on-the-right) +- [Standardausrichtung](guides/stylization.md#specific-css-classes) und [gebietsschemabasierte Formatierung](guides/localization.md#number-formatting) für numerische Werte +- [Möglichkeit, benutzerdefinierte Zahlenformate zu definieren](guides/working-with-data.md#applying-formats-to-fields) (für Datums- und Zahlenfelder) über `format` in der Eigenschaft [`fields`](api/config/fields-property.md) +- [Möglichkeit, Header- und Tabellenzellen zu gestalten](guides/stylization.md#cell-style) über den Parameter `cellStyle` der Eigenschaften [`tableShape`](api/config/tableshape-property.md) und [`headerShape`](api/config/headershape-property.md) +- Möglichkeit, HTML-Inhalt in Header- und Tabellenzellen über den Helfer [`pivot.template`](api/helpers/template.md) einzufügen, indem ein Template als `cell`-Eigenschaft der Header- und Spaltenobjekte definiert wird (Tabellenanpassung durch Abfangen des Events [render-table](api/events/render-table-event.md)) +- [Excel- und CSV-Exporteinstellungen erweitert](guides/exporting-data.md): + - Für das Format „xlsx" werden Datums- und Zahlenfelder als Rohwerte mit Standardformat oder dem über die Eigenschaft [`fields`](api/config/fields-property.md) definierten Format exportiert + - Möglichkeit, Datei- und Sheetnamen zu definieren und Header/Footer aus einer exportierten Datei auszuschließen + - Möglichkeit, Stile und Templates für exportierte Zellen hinzuzufügen +- [Möglichkeit, Daten über eine externe Eingabe zu filtern](api/table/filter-rows.md) +- Visueller Rahmen für die Zellennavigation +- [Integration mit Frameworks](/category/integration-with-frameworks) + +### Neue API {#new-api} + +- Einstellung `right` innerhalb des Objekts `split` der Eigenschaft [`tableShape`](api/config/tableshape-property.md) +- Einstellung `cellStyle` innerhalb der Eigenschaften [`tableShape`](api/config/tableshape-property.md) und [`headerShape`](api/config/headershape-property.md) +- Einstellung `format` innerhalb des Arrays [`fields`](api/config/fields-property.md) +- Event [`filter-rows`](api/table/filter-rows.md) der internen Tabelle +- [`pivot.template`](api/helpers/template.md) zur Definition von HTML-Inhalt für Tabellenzellen + +### Fehlerbehebungen {#fixes-21} + +- Gesamtspalten werden nicht sortiert +- Zeichenfolgenwerte mit führender 0 werden beim Export in Zahlen umgewandelt +- Das Predicate-Template wird nicht auf Zeilen/Spalten angewendet +- Resize-Observer-Fehler in Grenzfällen + +### Breaking Changes {#breaking-changes} + +- Der Parameter `colWidth` des Objekts `sizes` in der Eigenschaft `tableShape` wurde in `columnWidth` umbenannt + +## Version 2.0.3 {#version-203} + +Veröffentlicht am 29. November 2024 + +### Fehlerbehebungen {#fixes-203} + +- Export von Baumstrukturen nach Excel/CSV enthält nur die obersten Ebenen +- Exportierte Spalten mit Autobreite sind in der resultierenden Excel-Datei zu schmal +- Falsche Position eines Popups mit Filtern +- Falsches Verhalten nach dem Ändern der Konfiguration mit der Methode setConfig +- Präzisere Typdefinitionen + +## Version 2.0.2 {#version-202} + +Veröffentlicht am 22. Oktober 2024 + +### Fehlerbehebungen {#fixes-202} + +- Typdefinition `columnShape` +- Korrekter Paketinhalt + +## Version 2.0 {#version-20} + +Veröffentlicht am 26. August 2024 + +Bitte lesen Sie die Übersicht der Version auf [der Blog-Seite](https://dhtmlx.com/blog/) + +### Breaking Change {#breaking-change} + +:::note +Die API von Version 1.5 ist nicht kompatibel mit API v.2.0. +::: + +Tipps zur Migration auf die neue Version finden Sie auf der Seite [Migration](news/migration.md). + +### Neue Funktionalität {#new-functionality-20} + +- Pivot 2.0 ist schnell beim Rendern und Generieren großer Datensätze ([Beispiel](https://snippet.dhtmlx.com/e6qwqrys)) +- Neue Funktionen zur Konfiguration von Aussehen und Verhalten der Spalten sind über die Eigenschaft [`columnShape`](api/config/columnshape-property.md) verfügbar: + - Einstellung von **autowidth** mit der Möglichkeit, die maximalen Zeilen für die **autoWidth**-Berechnung festzulegen ([Beispiel](https://snippet.dhtmlx.com/tn1yw14m)) + - Das Feature **firstOnly**, bei dem jedes Feld der gleichen Daten nur einmal analysiert wird, um die Spaltenbreite zu berechnen (standardmäßig) +- Jetzt können Sie das Aussehen und das Verhalten von Headern über die Eigenschaft [`headerShape`](api/config/headershape-property.md) konfigurieren, die Folgendes ermöglicht: + - Anwenden eines Templates auf den Text in Headern ([Beispiel](https://snippet.dhtmlx.com/g89r9ryw)) + - Ändern der Textausrichtung ([Beispiel](https://snippet.dhtmlx.com/4qroi8ka)) + - Spalten einklappbar machen ([Beispiel](https://snippet.dhtmlx.com/pt2ljmcm)) +- Form und Größen der Tabelle können über die Eigenschaft [`tableShape`](api/config/tableshape-property.md) konfiguriert werden, die Folgendes ermöglicht: + - Konfigurieren der Höhe von Zeilen, Headern, Footer: rowHeight, headerHeight, footerHeight ([Größenänderung der Tabelle](guides/configuration.md#resizing-the-table)) + - Generieren von Gesamtwerten nicht nur für Spalten, sondern auch für Zeilen, was über den Parameter **totalColumn** der Eigenschaft `tableShape` ermöglicht wird ([Beispiel](https://snippet.dhtmlx.com/f0ag0t9t)) + - Ausblenden doppelter Werte in der Tabellenansicht (der Parameter **cleanRows** der Eigenschaft [`tableShape`](api/config/tableshape-property.md)) + - Spalten von links fixieren, sodass sie beim Scrollen statisch bleiben ([Beispiel](https://snippet.dhtmlx.com/lahf729o)) + - Alle Zeilen auf- oder zuklappen ([Beispiel](https://snippet.dhtmlx.com/i4mi6ejn)) +- Weitere Funktionen zum Aggregieren von Daten wurden hinzugefügt: + - [Begrenzen geladener Daten](guides/working-with-data.md#limiting-loaded-data) + - Mehr [Operationen mit Daten](guides/working-with-data.md#applying-maths-methods) sind verfügbar + - [Daten mit Predicates verarbeiten](guides/working-with-data.md#processing-data-with-predicates) – Anwenden benutzerdefinierter Vorverarbeitungsfunktionen für Daten + - [Datumsformat über Gebietsschema festlegen](guides/localization.md#date-formatting) +- Neue Methoden wurden hinzugefügt: [`getTable()`](api/methods/gettable-method.md), [`setConfig()`](api/methods/setconfig-method.md), [`setLocale()`](api/methods/setlocale-method.md), [`showConfigPanel()`](api/methods/showconfigpanel-method.md) +- Neue Events wurden hinzugefügt: [`add-field`](api/events/add-field-event.md), [`delete-field`](api/events/delete-field-event.md), [`open-filter`](api/events/open-filter-event.md), [`render-table`](api/events/render-table-event.md), [`move-field`](api/events/move-field-event.md), [`show-config-panel`](api/events/show-config-panel-event.md), [`show-config-panel`](api/events/show-config-panel-event.md), [`update-config`](api/events/update-config-event.md), [`update-field`](api/events/update-field-event.md). From 05469ebe9355e2393701b28c3c5126da9be5d566 Mon Sep 17 00:00:00 2001 From: Serhii Pylypchuk Date: Thu, 11 Jun 2026 21:31:14 +0300 Subject: [PATCH 34/40] [add] Simplified Chinese (zh) documentation translation - translate all 62 docs/*.md into i18n/zh current/ - API (45), guides (13), news (2), root pages (2) - copy image assets into the locale tree for build resolution - add .sync marker at source HEAD 34a2b62 for future updates - formal written Chinese, CJK/Latin spacing, English anchors kept - add a space after a link in news/migration so the dhx loader normalizes both links (CJK adjacency broke link resolution) --- .../current/.sync | 1 + .../api/config/columnshape-property.md | 82 ++ .../current/api/config/config-property.md | 146 ++++ .../api/config/configpanel-property.md | 58 ++ .../current/api/config/data-property.md | 128 +++ .../current/api/config/fields-property.md | 112 +++ .../api/config/headershape-property.md | 83 ++ .../current/api/config/limits-property.md | 61 ++ .../current/api/config/locale-property.md | 51 ++ .../current/api/config/methods-property.md | 163 ++++ .../current/api/config/predicates-property.md | 117 +++ .../current/api/config/readonly-property.md | 52 ++ .../current/api/config/tableshape-property.md | 131 ++++ .../current/api/events/add-field-event.md | 74 ++ .../current/api/events/apply-filter-event.md | 65 ++ .../current/api/events/delete-field-event.md | 82 ++ .../current/api/events/move-field-event.md | 65 ++ .../current/api/events/open-filter-event.md | 95 +++ .../current/api/events/render-table-event.md | 178 +++++ .../api/events/show-config-panel-event.md | 60 ++ .../current/api/events/update-config-event.md | 78 ++ .../current/api/events/update-field-event.md | 67 ++ .../current/api/helpers/template.md | 89 +++ .../current/api/internal/detach-method.md | 69 ++ .../current/api/internal/exec-method.md | 83 ++ .../api/internal/getreactivestate-method.md | 71 ++ .../current/api/internal/getstate-method.md | 67 ++ .../current/api/internal/getstores-method.md | 54 ++ .../current/api/internal/intercept-method.md | 68 ++ .../current/api/internal/on-method.md | 72 ++ .../current/api/internal/setnext-method.md | 45 ++ .../current/api/methods/gettable-method.md | 75 ++ .../current/api/methods/setconfig-method.md | 73 ++ .../current/api/methods/setlocale-method.md | 56 ++ .../api/methods/showconfigpanel-method.md | 55 ++ .../current/api/overview/events-overview.md | 19 + .../overview/internal-eventbus-overview.md | 15 + .../api/overview/internal-state-overview.md | 13 + .../current/api/overview/main-overview.md | 80 ++ .../current/api/overview/methods-overview.md | 14 + .../api/overview/properties-overview.md | 24 + .../api/overview/table-events-overview.md | 16 + .../current/api/table/close-row.md | 43 + .../current/api/table/export.md | 109 +++ .../current/api/table/filter-rows.md | 35 + .../current/api/table/open-row.md | 43 + .../current/assets/add_remove.png | Bin 0 -> 22594 bytes .../current/assets/apply_filter.png | Bin 0 -> 133304 bytes .../current/assets/config_panel.png | Bin 0 -> 21843 bytes .../current/assets/filter.png | Bin 0 -> 20846 bytes .../current/assets/filter_applied.png | Bin 0 -> 120103 bytes .../current/assets/operations.png | Bin 0 -> 25098 bytes .../current/assets/pivot-main.png | Bin 0 -> 21456 bytes .../current/assets/priority.png | Bin 0 -> 61453 bytes .../current/assets/table.png | Bin 0 -> 61265 bytes .../current/assets/trial_pivot.png | Bin 0 -> 295044 bytes .../current/guides/configuration.md | 740 ++++++++++++++++++ .../current/guides/exporting-data.md | 45 ++ .../current/guides/initialization.md | 86 ++ .../guides/integration-with-angular.md | 325 ++++++++ .../current/guides/integration-with-react.md | 289 +++++++ .../current/guides/integration-with-svelte.md | 302 +++++++ .../current/guides/integration-with-vue.md | 312 ++++++++ .../current/guides/loading-data.md | 279 +++++++ .../current/guides/localization.md | 293 +++++++ .../current/guides/stylization.md | 266 +++++++ .../current/guides/typescript-support.md | 17 + .../current/guides/working-with-data.md | 687 ++++++++++++++++ .../current/guides/working-with-server.md | 172 ++++ .../current/how-to-start.md | 122 +++ .../current/index.md | 103 +++ .../current/news/migration.md | 57 ++ .../current/news/whats-new.md | 114 +++ 73 files changed, 7446 insertions(+) create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/.sync create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/api/config/columnshape-property.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/api/config/config-property.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/api/config/configpanel-property.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/api/config/data-property.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/api/config/fields-property.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/api/config/headershape-property.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/api/config/limits-property.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/api/config/locale-property.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/api/config/methods-property.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/api/config/predicates-property.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/api/config/readonly-property.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/api/config/tableshape-property.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/api/events/add-field-event.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/api/events/apply-filter-event.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/api/events/delete-field-event.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/api/events/move-field-event.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/api/events/open-filter-event.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/api/events/render-table-event.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/api/events/show-config-panel-event.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/api/events/update-config-event.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/api/events/update-field-event.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/api/helpers/template.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/api/internal/detach-method.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/api/internal/exec-method.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/api/internal/getreactivestate-method.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/api/internal/getstate-method.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/api/internal/getstores-method.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/api/internal/intercept-method.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/api/internal/on-method.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/api/internal/setnext-method.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/api/methods/gettable-method.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/api/methods/setconfig-method.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/api/methods/setlocale-method.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/api/methods/showconfigpanel-method.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/api/overview/events-overview.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/api/overview/internal-eventbus-overview.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/api/overview/internal-state-overview.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/api/overview/main-overview.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/api/overview/methods-overview.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/api/overview/properties-overview.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/api/overview/table-events-overview.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/api/table/close-row.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/api/table/export.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/api/table/filter-rows.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/api/table/open-row.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/assets/add_remove.png create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/assets/apply_filter.png create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/assets/config_panel.png create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/assets/filter.png create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/assets/filter_applied.png create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/assets/operations.png create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/assets/pivot-main.png create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/assets/priority.png create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/assets/table.png create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/assets/trial_pivot.png create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/guides/configuration.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/guides/exporting-data.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/guides/initialization.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/guides/integration-with-angular.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/guides/integration-with-react.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/guides/integration-with-svelte.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/guides/integration-with-vue.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/guides/loading-data.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/guides/localization.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/guides/stylization.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/guides/typescript-support.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/guides/working-with-data.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/guides/working-with-server.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/how-to-start.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/index.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/news/migration.md create mode 100644 i18n/zh/docusaurus-plugin-content-docs/current/news/whats-new.md diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/.sync b/i18n/zh/docusaurus-plugin-content-docs/current/.sync new file mode 100644 index 0000000..0edad02 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/.sync @@ -0,0 +1 @@ +34a2b627cae6efda9e5b5b63191ac878cc868f7e diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/api/config/columnshape-property.md b/i18n/zh/docusaurus-plugin-content-docs/current/api/config/columnshape-property.md new file mode 100644 index 0000000..7d8411c --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/api/config/columnshape-property.md @@ -0,0 +1,82 @@ +--- +sidebar_label: columnShape +title: columnShape 配置项 +description: 您可以在 DHTMLX JavaScript Pivot 库的文档中了解 columnShape 配置项。浏览开发指南和 API 参考,查看代码示例和在线演示,并下载 DHTMLX Pivot 的 30 天免费评估版本。 +--- + +# columnShape + +### 描述 {#description} + +@short: 可选。配置 Pivot 列的外观和行为 + +### 用法 {#usage} + +~~~jsx +columnShape?: { + sort?: boolean, + width?: { + [field: string]: number + }, + autoWidth?: { + columns: { + [field: string]: boolean + }, + auto?: boolean | "header" | "data", + maxRows?: number, + firstOnly?: boolean + } +}; +~~~ + +### 参数 {#parameters} + +- `sort` - (可选)若为 **true**(默认值),则在 UI 中单击列标题时启用排序;若为 **false**,则禁用排序 +- `width` - (可选)定义列的宽度;该对象的每个键为字段 id,值为该列的宽度(单位:像素) +- `autoWidth` - (可选)定义如何自动计算列宽的对象。默认配置使用 20 行,宽度基于标题和数据计算,每个字段只分析一次。该对象的参数如下: + - `columns` - (必填)一个对象,每个键为字段 id,布尔值定义是否自动计算该列的宽度 + - `auto` - (可选)若设为 **header**,则根据标题文本调整宽度;若设为 **data**,则根据内容最宽的单元格调整宽度;若设为 **true**,则同时根据标题和单元格的内容调整宽度。 + 若 autowidth 设为 **false**,则使用 `width` 值,或应用 [`tableShape`](api/config/tableshape-property.md) 属性中 `columnWidth` 的值。 + - `maxRows` - (可选)用于计算 autoWidth 的处理行数 + - `firstOnly` - (可选)若设为 **true**(默认值),则对同一数据的每个字段只分析一次以计算列宽;若同一数据对应多个列(例如 *oil* 字段使用 *count* 操作,以及 *oil* 字段使用 *sum* 操作),则只分析第一列中的数据,其他列继承该宽度 + +## 示例 {#example} + +~~~jsx {18-31} +const table = new pivot.Pivot("#root", { + fields, + data, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + }, + columnShape: { + autoWidth: { + // 为这些字段计算列宽 + columns: { + studio: true, + genre: true, + title: true, + score: true + }, + auto: true, + // 分析所有字段 + firstOnly: false + } + } +}); +~~~ + +**相关示例:** +- [Pivot 2. 自动宽度:根据内容调整列宽](https://snippet.dhtmlx.com/tn1yw14m) +- [Pivot 2. 设置列宽](https://snippet.dhtmlx.com/ceu34kkn) diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/api/config/config-property.md b/i18n/zh/docusaurus-plugin-content-docs/current/api/config/config-property.md new file mode 100644 index 0000000..780e00b --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/api/config/config-property.md @@ -0,0 +1,146 @@ +--- +sidebar_label: config +title: config 配置项 +description: 您可以在 DHTMLX JavaScript Pivot 库的文档中了解 config 配置项的相关信息。浏览开发者指南和 API 参考,查看代码示例和在线演示,并下载 DHTMLX Pivot 的 30 天免费评估版本。 +--- + +# config + +### 描述 {#description} + +@short: 可选。定义 Pivot 表格的结构以及数据的聚合方式 + +### 用法 {#usage} + +~~~jsx +config?: { + rows?: string | {field: string, method?: string}[], + columns?: string | {field: string, method?: string}[], + values?: string | {field: string, method?: string}[], + filters?: {} +}; +~~~ + +### 参数 {#parameters} + +`config` 参数用于定义哪些字段将作为行和列,以及应对行/列应用哪些额外的数据聚合方法。 + +- `rows` - (可选)定义 Pivot 表格的行。默认值为空数组。可以是代表单个字段 ID 的字符串,也可以是包含字段 ID 和数据提取方法的对象;对象参数如下: + - `field` - (必填)字段的 ID + - `method` - (可选)定义字段数据聚合的方法;时间类数据字段默认提供以下方法:"year"、"quarter"、"month"、"week"、"day"、"hour"、"minute",分别按对应粒度对数据进行分组;此处也可添加自定义方法的名称([参见 `predicates`](api/config/predicates-property.md)),适用于任意数据类型的字段 +- `columns` - (可选)定义 Pivot 表格的列。默认为空数组。可以是单个字段 ID 的字符串,也可以是包含字段 ID 和数据提取方法的对象;对象参数如下: + - `field` - (必填)字段的 ID + - `method` - (可选)定义数据处理方法(适用于时间类数据字段)。 + 默认情况下,**date** 类型的时间类字段支持以下方法:"year"、"quarter"、"month"、"week"、"day"、"hour"、"minute"。此处也可添加自定义方法的名称([参见 `predicates`](api/config/predicates-property.md)),适用于任意数据类型的字段 +- `values` - (可选)定义 Pivot 表格单元格的数据聚合方式。默认为空数组。每个元素可以是表示数据字段 ID 和聚合方法的字符串,也可以是包含字段 ID 和数据聚合方法的对象。对象参数如下: + - `field` - (必填)字段的 ID + - `method` - (必填)定义数据提取方法;有关方法类型及其说明,请参阅[应用方法](guides/working-with-data.md#default-methods) + +
+ +定义 values 的选项 + +您可以使用以下两种等效方式定义 `values`: +- 选项一:表示字段 ID 的字符串 +- 选项二:包含字段 ID 和数据聚合方法的对象 + +### 示例 {#example-values} + +~~~jsx +values: [ + "sum(sales)", // 选项一 + { field: "sales", method: "sum" }, // 选项二 +] +~~~ + +
+ +- `filters` - (可选)定义表格中数据的筛选方式;它是一个包含字段 ID 和筛选规则的对象,默认值为空对象。对象参数如下: + - `field` - (可选)筛选键,即字段的 ID 或带有筛选条件的 ID 数组: + - `equal` - (可选)接受数字、字符串和 Date 值 + - `notEqual` - (可选)接受数字、字符串和 Date 值 + - `greater` - (可选)接受数字和 Date 值 + - `greaterOrEqual` - (可选)接受数字和 Date 值 + - `less` - (可选)接受数字和 Date 值 + - `lessOrEqual` - 接受数字和 Date 值 + - `between` - 包含以下参数的对象: + - `start` - Date + - `end` - Date + - `notBetween` - 包含以下参数的对象: + - `start` - Date + - `end` - Date + - `contains` - 接受字符串值和数字 + - `notContains` - 接受字符串值和数字 + - `beginsWith` - 接受字符串值和数字 + - `notBeginsWith` - 接受字符串值和数字 + - `endsWith` - 接受字符串值和数字 + - `notEndsWith` - 接受字符串值和数字 + - `includes` - (可选)从已筛选的值中指定要显示的值数组;适用于文本和日期值 + +:::info +当 config 被 Pivot 处理后,其属性会接收额外数据。如果您尝试通过 [`api.getState()`](api/internal/getstate-method.md) 方法返回 config 状态,完整对象的形式如下: + +~~~jsx +interface IParsedField { + id: string, + field: string, + method: string | null, + area: 'rows'|'columns'|'values', + base?: string, + label: string, + type: 'number'|'date'|'text' +} + +interface IParsedConfig { + rows: IParsedField[], + columns: IParsedField[], + values: IParsedField[], + filters: { + [field: string]: number | string | [] | + { [operation: string]: number | string | [] | { start:Date, end: Date} } + } +} +~~~ + +参数: + +- `id` - 已处理字段的唯一 id +- `field` - 字段名称 +- `method` - 用于聚合的操作名称。对于行和列,method 是可选参数;若提供,则作为 predicate,定义字段数据在聚合前的预处理方式。对于 values,method 是必填参数。 +- `area` - 字段所属的区域 +- `base` - 用于带有 predicate 的列和行字段。定义原始字段名称,而字段名称则按照 "field_by_predicate" 的模式生成 +- `label` - 文本标签 +- `type` - 数据类型 +::: + +### 示例 {#example} + +~~~jsx {4-26} +const table = new pivot.Pivot("#root", { + fields, + data: dataset, + config: { + rows: ["studio", "genre"], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ], + filters: { + genre: { + contains: "D", + includes: ["Drama"] + }, + title: { + // 针对另一个字段("title")的筛选条件 + contains: "A" + } + } + } +}); +~~~ diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/api/config/configpanel-property.md b/i18n/zh/docusaurus-plugin-content-docs/current/api/config/configpanel-property.md new file mode 100644 index 0000000..260b4a6 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/api/config/configpanel-property.md @@ -0,0 +1,58 @@ +--- +sidebar_label: configPanel +title: configPanel 配置项 +description: 您可以在 DHTMLX JavaScript Pivot 库的文档中了解 configPanel 配置项。浏览开发者指南和 API 参考,尝试代码示例和在线演示,并下载 DHTMLX Pivot 的免费 30 天评估版本。 +--- + +# configPanel + +### 描述 {#description} + +@short: 可选。控制 UI 中配置面板的显示状态 + +在 UI 中,可通过点击 **Hide Settings** 按钮来隐藏或显示该面板。 + +### 用法 {#usage} + +~~~jsx +configPanel?: boolean; +~~~ + +### 参数 {#parameters} + +该属性可设置为 **true** 或 **false**: + +- `true` - 默认值,显示配置面板 +- `false` - 隐藏配置面板 + +## 示例 {#example} + +~~~jsx {5} +// 初始化时隐藏配置面板 +const table = new pivot.Pivot("#root", { + fields, + data: dataset, + configPanel: false, + config: { + rows: ["hobbies"], + columns: ["relationship_status"], + values: [ + { + field: "age", + method: "min" + }, + { + field: "age", + method: "max" + } + ] + } +}); +~~~ + +**相关示例:** [Pivot 2.0:切换配置面板的显示状态](https://snippet.dhtmlx.com/1xq1x5bo) + +**相关文章:** +- [`show-config-panel` 事件](api/events/show-config-panel-event.md) +- [`showConfigPanel()` 方法](api/methods/showconfigpanel-method.md) +- [控制配置面板的显示状态](guides/configuration.md#controlling-visibility-of-configuration-panel) diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/api/config/data-property.md b/i18n/zh/docusaurus-plugin-content-docs/current/api/config/data-property.md new file mode 100644 index 0000000..00ac883 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/api/config/data-property.md @@ -0,0 +1,128 @@ +--- +sidebar_label: data +title: data 配置项 +description: 您可以在 DHTMLX JavaScript Pivot 库的文档中了解 data 配置项。浏览开发指南和 API 参考,试用代码示例和在线演示,并下载 DHTMLX Pivot 的 30 天免费评估版本。 +--- + +# data + +### 描述 {#description} + +@short: 可选。一个对象数组,包含 Pivot 表格的数据 + +### 用法 {#usage} + +~~~jsx +data?: []; +~~~ + +### 参数 {#parameters} + +`data` 数组中的每个对象代表一行数据,默认值为空数组。`data` 属性没有直接的子属性,但数组中的每个对象可以包含任意数量的属性,这些属性将作为 Pivot 表格的维度和值。 + +`data` 数组示例: + +~~~jsx +const data = [ + { + name: "Argentina", + year: 2015, + continent: "South America", + form: "Republic", + gdp: 181.357, + oil: 1.545, + balance: 4.699, + when: new Date("4/21/2015") + }, + { + name: "Argentina", + year: 2017, + continent: "South America", + form: "Republic", + gdp: 212.507, + oil: 1.732, + balance: 7.167, + when: new Date("1/15/2017") + }, + { + name: "Argentina", + year: 2014, + continent: "South America", + form: "Republic", + gdp: 260.071, + oil: 2.845, + balance: 6.728, + when: new Date("6/16/2014") + }, + { + name: "Argentina", + year: 2014, + continent: "South America", + form: "Republic", + gdp: 324.405, + oil: 4.333, + balance: 5.99, + when: new Date("2/20/2014") + }, + { + name: "Argentina", + year: 2014, + continent: "South America", + form: "Republic", + gdp: 305.763, + oil: 2.626, + balance: 7.544, + when: new Date("8/17/2014") + }, + //其他数据 +]; +~~~ + +### 示例 {#example} + +~~~jsx {3-29} +const table = new pivot.Pivot("#root", { + fields, + data: [ + { + rank: 1, + title: "Shingeki no Kyojin: The Final Season - Kanketsu-hen", + popularity: 609, + genre: "Action", + studio: "MAPPA", + type: "Special", + episodes: 2, + duration: 61, + members: 347875, + score: 9.17, + }, + { + rank: 2, + title: "Fullmetal Alchemist: Brotherhood", + popularity: 3, + genre: "Action", + studio: "Bones", + type: "TV", + episodes: 64, + duration: 24, + members: 3109951, + score: 9.11 + }, + //其他数据对象 + ], + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + } +}); +~~~ diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/api/config/fields-property.md b/i18n/zh/docusaurus-plugin-content-docs/current/api/config/fields-property.md new file mode 100644 index 0000000..640539c --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/api/config/fields-property.md @@ -0,0 +1,112 @@ +--- +sidebar_label: fields +title: fields 配置项 +description: 您可以在 DHTMLX JavaScript Pivot 库的文档中了解 fields 配置项。浏览开发者指南和 API 参考,查看代码示例和在线演示,并下载免费的 30 天评估版 DHTMLX Pivot。 +--- + +# fields + +### 描述 {#description} + +@short: 可选。包含 Pivot 表格字段对象的数组 + +`fields` 属性在配置对象中控制 widget 如何解析其接收到的数据字段类型,并允许为字段定义排序顺序。 + +### 用法 {#usage} + +~~~jsx +fields?: [{ + id: string, + label?: string, + type: "number" | "date" | "text", + sort?: "asc" | "desc" | ((a: any, b: any) => number), + format?: string | boolean | numberFormatOptions{} +}]; +~~~ + +### 参数 {#parameters} + +默认情况下,如果未设置该属性,widget 将自动分析传入数据并相应地填充 `fields` 对象。 + +`fields` 数组中的每个对象应包含以下属性: + +- `id` - (必填)字段的 ID +- `label` - (可选)在图形界面中显示的字段标签 +- `type` - (必填)字段中的数据类型("number"、"date" 或 "text") +- `sort` - (可选)定义字段的默认排序顺序。接受 "asc"、"desc" 或自定义排序函数 +- `format` - (可选)允许自定义字段中数字和日期的格式;该格式也将在[导出](guides/exporting-data.md)时生效 + - `string` - (可选)日期的格式(默认情况下,Pivot 使用语言环境中的 `dateFormat`) + - `boolean` - (可选)如果设置为 **false**,数字将按原样显示,不进行任何格式化 + - `numberFormatOptions` - (可选)用于格式化数字字段的选项对象;默认情况下,数字最多显示 3 位小数,并对整数部分应用千位分组。 + - `minimumIntegerDigits`(number)- (可选)整数的最小位数(例如,如果该值设置为 2,数字 1 将显示为 "01");默认值为 1; + - `minimumFractionDigits`(number)- (可选)要使用的最小小数位数(例如,如果该值设置为 2,数字 10.5 将显示为 "10.50");默认值为 0; + - `maximumFractionDigits`(number)- (可选)要使用的最大小数位数(例如,如果该值设置为 2,数字 10.3333... 将显示为 "10.33");默认值为 3; + 有关数字位数选项的更多详情,请参阅 [数字位数选项](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/NumberFormat#minimumintegerdigits) + - `prefix`(string)- (可选)数字前的字符串,用于货币等附加符号 + - `suffix`(string)- (可选)数字后的字符串,用于货币等附加符号 + +:::info +如果通过 [`tableShape`](api/config/tableshape-property.md) 属性应用了模板,它将覆盖 `format` 设置。 +::: + +### 示例 {#example} + +~~~jsx {2-34} +const table = new pivot.Pivot("#root", { + fields: [ + { + id: "rank", + label: "Rank", + type: "number" + }, + { + id: "title", + label: "Title", + type: "text" + }, + { + id: "genre", + label: "Genre", + type: "text" + }, + { + id: "studio", + label: "Studio", + type: "text" + }, + { + id: "type", + label: "Type", + type: "text" + }, + { + id: "score", + label: "Score", + type: "number" + }, + //其他字段 + ], + data, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + } +}); +~~~ + +**相关文章**: + +- [数字格式化](guides/localization.md#number-formatting) +- [为字段应用格式](guides/working-with-data.md#applying-formats-to-fields) + +**相关示例:** [Pivot 2. 定义字段格式](https://snippet.dhtmlx.com/77nc4j8v) diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/api/config/headershape-property.md b/i18n/zh/docusaurus-plugin-content-docs/current/api/config/headershape-property.md new file mode 100644 index 0000000..2a361cf --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/api/config/headershape-property.md @@ -0,0 +1,83 @@ +--- +sidebar_label: headerShape +title: headerShape 配置项 +description: 您可以在 DHTMLX JavaScript Pivot 库的文档中了解 headerShape 配置项。浏览开发者指南和 API 参考,查看代码示例和在线演示,并下载 DHTMLX Pivot 的 30 天免费评估版本。 +--- + +# headerShape + +### 描述 {#description} + +@short: 可选。配置 Pivot 表格中表头的外观与行为 + +### 用法 {#usage} + +~~~jsx +headerShape?: { + collapsible?: boolean, + vertical?: boolean, + template?: (label: string, field: string, subLabel?: string) => string, + cellStyle?: ( + field: string, + value: any, + area: "rows"|"columns"|"values", + method?: string, + isTotal?: boolean) + => string, +}; +~~~ + +### 参数 {#parameters} + +- `collapsible` - (可选)若设置为 **true**,表格中的维度分组可折叠。默认值为 **false** +- `vertical` - (可选)若设置为 **true**,将所有表头的文字方向从水平改为垂直。默认值为 **false** +- `cellStyle` - (可选)一个为表头单元格应用自定义样式的函数。该函数返回 CSS 类名,并接受以下参数: + - `field` (string) - (必填)表示单元格对应字段名称的字符串。树形列的表头对应的字段为 "" + - `value` (string | number | date) - (必填)单元格的值 + - `area` - (必填)表示单元格所在区域的字符串("rows"、"columns" 或 "values" 区域) + - `method` (string) - (可选)一个字符串,可表示对 "values" 区域字段执行的操作(例如 "sum"、"count" 等),或对 "columns" 区域字段设置的谓词名称 + - `isTotal` - (可选)定义单元格是否属于汇总列 +- `template` - (可选)定义表头文字的格式。默认情况下,作为行字段时显示 `label` 参数的值,作为值字段时显示标签和方法(例如 *Oil(count)*)。该函数接受字段 id、标签以及方法或谓词 id(如有),并返回处理后的值。默认模板如下: +~~~js +template: (label, id, subLabel) => + label + (subLabel ? ` (${subLabel})` : "") +~~~ + +## 示例 {#example} + +在以下示例中,**values** 字段的表头将显示标签和方法名称(subLabel),并将结果转换为小写(例如 *profit (sum)*): + +~~~jsx {3-6} +new pivot.Pivot("#pivot", { + data, + headerShape: { + // 自定义表头文字模板 + template: (label, id, subLabel) => (label + (subLabel ? ` (${subLabel})` : "")).toLowerCase(), + }, + config: { + rows: ["state", "product_type"], + columns: [], + values: [ + { + field: "profit", + method: "sum" + }, + { + field: "sales", + method: "sum" + }, + // 其他值 + ], + }, + fields, +}); +~~~ + +**相关示例**: +- [Pivot 2. 网格表头中文字的垂直方向](https://snippet.dhtmlx.com/4qroi8ka) +- [Pivot 2. 可折叠列](https://snippet.dhtmlx.com/pt2ljmcm) +- [Pivot 2. 为表格和表头单元格添加自定义 CSS](https://snippet.dhtmlx.com/nfdcs4i2) + +**相关文章**: +- [配置](guides/configuration.md) +- [单元格样式](guides/stylization.md#cell-style) diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/api/config/limits-property.md b/i18n/zh/docusaurus-plugin-content-docs/current/api/config/limits-property.md new file mode 100644 index 0000000..f88daa6 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/api/config/limits-property.md @@ -0,0 +1,61 @@ +--- +sidebar_label: limits +title: limits 配置项 +description: 您可以在 DHTMLX JavaScript Pivot 库的文档中了解 limits 配置项。浏览开发者指南和 API 参考,尝试代码示例和在线演示,并下载 DHTMLX Pivot 的免费 30 天试用版本。 +--- + +# limits + +### 描述 {#description} + +@short: 可选。定义最终数据集中行数和列数的最大限制 + +另请参阅 [限制数据](guides/working-with-data.md#limiting-loaded-data)。 + +### 用法 {#usage} + +~~~jsx +limits?: { + rows?: number, + columns?: number, + raws?: number +}; +~~~ + +### 参数 {#parameters} + +以下参数定义了何时中断数据渲染: + +- `rows` - (可选)设置最终数据集中的最大行数;默认值为 10000。 +- `columns` - (可选)设置最终数据集中的最大列数;默认值为 5000。 +- `raws` - (可选)数据分组前源数据的最大行数(用于聚合的原始数据记录);默认值为无穷大。 + +:::note +limits 适用于大型数据集。limits 的值为近似值,并不反映行数和列数的精确值。 +::: + +## 示例 {#example} + +~~~jsx {18} +const table = new pivot.Pivot("#root", { + fields, + data: dataset, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + }, + ], + }, + limits:{ rows: 25, columns: 4 } +}); +~~~ + +**相关示例:** [Pivot 2. 数据限制](https://snippet.dhtmlx.com/7ryns8oe) diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/api/config/locale-property.md b/i18n/zh/docusaurus-plugin-content-docs/current/api/config/locale-property.md new file mode 100644 index 0000000..e04edeb --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/api/config/locale-property.md @@ -0,0 +1,51 @@ +--- +sidebar_label: locale +title: locale 配置项 +description: 您可以在 DHTMLX JavaScript Pivot 库的文档中了解 locale 配置项的相关信息。浏览开发指南和 API 参考,查看代码示例和在线演示,并下载 DHTMLX Pivot 免费 30 天评估版本。 +--- + +# locale + +### 描述 {#description} + +@short: 可选。Pivot 自定义语言包对象 + +### 用法 {#usage} + +~~~jsx +locale?: object; +~~~ + +### 默认配置 {#default-config} + +默认情况下,Pivot 使用[英语](guides/localization.md#default-locale)语言包。您也可以将其设置为自定义语言包。 + +:::tip +如需动态切换当前语言包,可以使用 Pivot 的 [`setLocale()`](api/methods/setlocale-method.md) 方法 +::: + +### 示例 {#example} + +~~~jsx {19} +const table = new pivot.Pivot("#root", { + fields, + data: dataset, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + }, + + locale: pivot.locales.cn, // 初始将设置 "cn" 语言包 + // 其他参数 +}); +~~~ diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/api/config/methods-property.md b/i18n/zh/docusaurus-plugin-content-docs/current/api/config/methods-property.md new file mode 100644 index 0000000..d0089b6 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/api/config/methods-property.md @@ -0,0 +1,163 @@ +--- +sidebar_label: methods +title: methods 配置项 +description: 您可以在 DHTMLX JavaScript Pivot 库的文档中了解 methods 配置项。浏览开发者指南和 API 参考,试用代码示例和在线演示,并下载 DHTMLX Pivot 的 30 天免费评估版本。 +--- + +# methods + +### 描述 {#description} + +@short: 可选。为数据聚合定义自定义数学方法 + +### 用法 {#usage} + +~~~jsx +methods?: { + [method: string]: { + type?: 'number' | 'date' | 'text' | [], + label?: string, + handler?: (values: number[]) => number, + branchMode?: "raw"|"result", + branchMath?: string + } +}; +~~~ + +### 参数 {#parameters} + +每个方法由一个键值对表示,其中 `method` 是方法的名称,值是描述该方法行为的对象。每个对象具有以下参数: + +- `handler` - (自定义方法必填)一个从数字数组中计算聚合值的函数;该函数接收一个值数组作为输入,并返回单个值作为输出 +- `type` - (可选)该方法适用的数据类型;可以是 "number"、"date" 或 "text",或这些值的数组 +- `label` - (可选)在 GUI 中显示的方法标签 +- `branchMode` - (可选)定义树形表格中总计值的计算模式;`branchMode` 可设置为 `raw`,基于所有原始数据进行计算;`result`(默认值)在树形模式下基于已处理的数据进行计算 +- `branchMath` - (可选)在树形模式下用于计算总计值的方法名称;默认与方法名称相同(对于 "max" 方法,`branchMath` 也是 "max") + +默认情况下,`methods` 属性是一个空对象 {},表示未定义任何自定义方法。methods 对象中可定义的子属性数量没有限制。 + +预定义方法: + +~~~jsx +defaultMethods = { + sum: { type: "number", label: "sum" }, + min: { type: ["number", "date"], label: "min" }, + max: { type: ["number", "date"], label: "max" }, + count: { + type: ["number", "date", "text"], + label: "count", + branchMath: "sum" + }, + counta: { + type: ["number", "date", "text"], + label: "counta", + branchMath: "sum" + }, + countunique: { + type: ["number", "text"], + label: "countunique", + branchMath: "sum" + }, + average: { type: "number", label: "average", branchMode: "raw" }, + median: { type: "number", label: "median", branchMode: "raw" }, + product: { type: "number", label: "product" }, + stdev: { type: "number", label: "stdev", branchMode: "raw" }, + stdevp: { type: "number", label: "stdevp", branchMode: "raw" }, + var: { type: "number", label: "var", branchMode: "raw" }, + varp: { type: "number", label: "varp", branchMode: "raw" } +}; +~~~ + +每个方法的定义请参见:[应用方法](guides/working-with-data.md#default-methods) + +## 示例 {#example} + +以下示例展示了如何为 date 类型计算唯一值计数和平均值。**countUnique** 函数接收一个数字数组(values)作为输入,并使用 **reduce** 方法计算唯一值的精确数量。**countunique_date** 子属性包含一个 handler 函数,用于从日期值数组中获取唯一值。**average_date** 子属性包含一个 handler,用于计算日期值数组的平均值。 + +~~~jsx +function countUnique(values, converter) { + const valueMap = {}; + return values.reduce((acc, d) => { + if (converter) d = converter(d); + if (!valueMap[d]) { + acc++; + valueMap[d] = true; + } + return acc; + }, 0); +} + +const methods = { + countunique_date: { + handler: values => countUnique(values, v => new Date(v).getTime()), + type: "date", + label: "CountUnique" + }, + average_date: { + type: "date", + label: "Average", + branchMode: "raw", + handler: values => { + if (!values.length) return null; + const sum = values.reduce((acc, d) => acc + d.getTime(), 0); + const avgTime = sum / values.length; + return new Date(avgTime); + } + } +}; + +// 对 "count" 和 "unique count" 结果显示整数 +const templates = {}; +fields.forEach(f => { + if (f.type == "number") + templates[f.id] = (v, method) => + v && method.indexOf("count") < 0 ? parseFloat(v).toFixed(3) : v; +}); + +// 将日期字符串转换为 Date 对象 +const dateFields = fields.filter(f => f.type == "date"); +if (dateFields.length) { + dataset.forEach(item => { + dateFields.forEach(f => { + const v = item[f.id]; + if (typeof v == "string") item[f.id] = new Date(v); + }); + }); +} + +const table = new pivot.Pivot("#root", { + fields, + data: dataset, + tableShape: { templates }, + methods: { ...pivot.defaultMethods, ...methods }, + config:{ + rows: ["state"], + columns: [ + "product_line", + "product_type" + ], + values: [ + { + field: "sales", + method: "sum" + }, + { + field: "sales", + method: "count" + }, + { + field: "date", + method: "countunique_date" + }, + { + field: "date", + method: "average_date" + } + ] + } +}); +~~~ + +**相关示例:** [Pivot 2. 自定义数学方法](https://snippet.dhtmlx.com/lv90d8q2) + +**相关文章**:[应用数学方法](guides/working-with-data.md#applying-maths-methods) diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/api/config/predicates-property.md b/i18n/zh/docusaurus-plugin-content-docs/current/api/config/predicates-property.md new file mode 100644 index 0000000..5bf1727 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/api/config/predicates-property.md @@ -0,0 +1,117 @@ +--- +sidebar_label: predicates +title: predicates 配置项 +description: 您可以在 DHTMLX JavaScript Pivot 库的文档中了解 predicates 配置项。浏览开发者指南和 API 参考,查看代码示例和在线演示,并下载 DHTMLX Pivot 的 30 天免费评估版本。 +--- + +# predicates + +### 描述 {#description} + +@short: 可选。为数据维度(行、列)提供自定义预处理函数 + +它定义了数据在应用之前应如何被修改。 + +### 用法 {#usage} + +~~~jsx +predicates?: { + [key: string]: { + handler: (value: any) => any, + type: 'number' | 'date' | 'text' | [], + label?: string | (type: 'number' | 'date' | 'text') => string, + template?: (value: any, locale?: any) => string, + field?: (value:string) => boolean, + filter?: { + type: "number"|"text"|"date"|"tuple", + format?:(any) => string + } + } +}; +~~~ + +### 参数 {#parameters} + +该属性是一个对象,其中键为自定义函数的名称,值为包含实际函数定义的对象。predicate 对象可包含多个键值对,所有键值对均可在 Pivot 配置中使用。每个对象具有以下参数: + +- `label` - (可选)predicate 的标签,在 GUI 的下拉菜单中显示于行/列的数据修改选项里 +- `type` - (必填)定义该 predicate 可应用于哪些字段类型;可为 "number"、"date"、"text" 或这些值的数组 +- `field` - (可选)定义指定字段数据处理方式的函数,接收字段 id 作为参数,若该 predicate 应添加到指定字段则返回 **true** +- `filter` - (可选)默认情况下,过滤器类型取自 `type` 参数,但如需使用其他类型,可使用此 `filter` 对象。它包含以下参数: + - `type` - (可选)定义所应用的字段类型:"number"|"text"|"date"|"tuple"。"tuple" 是一种用于数值的组合过滤器(数据按数值过滤,但过滤器中显示文本值) + - `format` - (可选)定义过滤选项显示格式的函数;若未定义 format,则使用 template 参数中的格式;若此处(`filter` 对象)未指定 type,则 format 将应用于 predicate 的 `type` 参数所设置的类型 +- `handler` - (自定义 predicate 必填)定义数据处理方式的函数;该函数应接收单个参数作为待处理的值,并返回处理后的值 +- `template` - (可选)定义数据显示方式的函数;该函数返回处理后的值,接收 `handler` 返回的值,必要时可使用 [`locale`](api/config/locale-property.md) 对文本值进行本地化。 + +若未通过 `predicates` 属性指定 predicate,则应用以下默认 predicate: + +~~~jsx +const defaultPredicates = { + // 表示原始(未处理)值的服务 predicate + $empty: { label: (type) => `Raw ${type}`, type: ["number", "date", "text"] }, + year: { label: "Year", type: "date", filter: { type: "number" } }, + quarter: { label: "Quarter", type: "date", filter: { type: "tuple" } }, + month: { label: "Month", type: "date", filter: { type: "tuple" } }, + week: { label: "Week", type: "date", filter: { type: "tuple" } }, + day: { label: "Day", type: "date", filter: { type: "number" } }, + hour: { label: "Hour", type: "date", filter: { type: "number" } }, + minute: { label: "Minute", type: "date", filter: { type: "number" } } +}; +~~~ + +## 示例 {#example} + +~~~jsx +const predicates = { + monthYear: { + label: "Month-year", + type: "date", + handler: (d) => new Date(d.getFullYear(), d.getMonth(), 1), + template: (date, locale) => { + const months = locale.getRaw().calendar.monthFull; + return months[date.getMonth()] + " " + date.getFullYear(); + }, + }, + profitSign: { + label: "Profit Sign", + type: "number", + filter: { + type: "tuple", + format: (v) => (v < 0 ? "Negative" : "Positive"), + }, + field: (f) => f === "profit", + handler: (v) => (v < 0 ? -1 : 1), + template: (v) => (v < 0 ? "Negative profit" : "Positive profit"), + }, +}; + +// 将日期字符串转换为 Date 对象 +const dateFields = fields.filter((f) => f.type == "date"); +if (dateFields.length) { + dataset.forEach((item) => { + dateFields.forEach((f) => { + const v = item[f.id]; + if (typeof v == "string") item[f.id] = new Date(v); + }); + }); +} + +const table = new pivot.Pivot("#pivot", { + fields, + data: dataset, + predicates: { ...pivot.defaultPredicates, ...predicates }, + tableShape: { tree: true }, + config: { + rows: ["product_type", "product"], + columns: [ + { field: "profit", method: "profitSign" }, + { field: "date", method: "monthYear" }, + ], + values: ["sales", "expenses"], + }, +}); +~~~ + +**相关文章**:[使用 predicate 处理数据](guides/working-with-data.md#processing-data-with-predicates) + +**相关示例**:[Pivot 2. 自定义 predicate](https://snippet.dhtmlx.com/mhymus00) diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/api/config/readonly-property.md b/i18n/zh/docusaurus-plugin-content-docs/current/api/config/readonly-property.md new file mode 100644 index 0000000..737d8b3 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/api/config/readonly-property.md @@ -0,0 +1,52 @@ +--- +sidebar_label: readonly +title: readonly 配置项 +description: 您可以在 DHTMLX JavaScript Pivot 库的文档中了解 readonly 配置项。浏览开发指南和 API 参考,查看代码示例和在线演示,并下载 DHTMLX Pivot 的 30 天免费评估版本。 +--- + +# readonly + +### 描述 {#description} + +@short: 可选。启用/禁用只读模式 + +在只读模式下,无法通过 UI 配置 Pivot 的结构。 + +### 用法 {#usage} + +~~~jsx + readonly?: boolean; +~~~ + +### 参数 {#parameters} + +该属性可设置为 **true** 或 **false**: + +- `true` - 启用只读模式 +- `false` - 默认值,禁用只读模式 + +## 示例 {#example} + +~~~jsx {18} +const table = new pivot.Pivot("#root", { + fields, + data: dataset, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + }, + readonly: true +}); +~~~ + +**相关示例:** [Pivot 2. 只读模式](https://snippet.dhtmlx.com/0k0mvycv) diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/api/config/tableshape-property.md b/i18n/zh/docusaurus-plugin-content-docs/current/api/config/tableshape-property.md new file mode 100644 index 0000000..cce962d --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/api/config/tableshape-property.md @@ -0,0 +1,131 @@ +--- +sidebar_label: tableShape +title: tableShape 配置项 +description: 您可以在 DHTMLX JavaScript Pivot 库的文档中了解 tableShape 配置项。浏览开发者指南和 API 参考,查看代码示例和在线演示,并下载 DHTMLX Pivot 的免费 30 天试用版。 +--- + +# tableShape + +### 描述 {#description} + +@short: 可选。配置 Pivot 表格的外观 + +### 用法 {#usage} + +~~~jsx +tableShape?: { + templates?: { + [field: string]: ( + value: any, + operation: string + ) => any; + }, + totalRow?: boolean | "sumOnly", + totalColumn?: boolean | "sumOnly", + marks?: { + [cssClass: string]: ((v: any, columnData: any, rowData: any) => boolean) + | "max" + | "min" + }, + sizes?: { + rowHeight?: number, + headerHeight?: number, + columnWidth?: number, + footerHeight?: number + }, + tree?:boolean, + cleanRows?: boolean, + split?: { + left?: boolean, + right?: boolean, + }, + cellStyle?: ( + field: string, + value: any, + area: "rows"|"columns"|"values", + method?: string, + isTotal?: "row"|"column"|"both") + => string, +}; +~~~ + +### 参数 {#parameters} + +- `templates` - (可选)允许为单元格设置模板;它是一个对象,其中: + - 每个键是字段 id + - 值是一个函数,该函数返回字符串并接收单元格的值和操作类型。基于指定字段的所有列都将应用对应的模板。例如,可以设置计量单位,或对数值返回指定小数位数等。详见下方示例。 +- `marks` - (可选)允许为满足条件的单元格标记样式。它是一个对象,键为 CSS 类名,值为函数或预定义字符串("max"、"min")之一。函数应为被检查的值返回布尔值,若返回 **true**,则将该 CSS 类应用到单元格上。更多信息及示例请参阅 [单元格样式](guides/stylization.md#cell-style)。 +- `sizes` - (可选)定义表格的以下尺寸参数: + - `rowHeight` - (可选)Pivot 表格中行的高度,单位为像素,默认值为 34 + - `headerHeight` - (可选)表头高度,单位为像素,默认值为 30 + - `footerHeight` - (可选)表尾高度,单位为像素,默认值为 30 + - `columnWidth` - (可选)列宽度,单位为像素,默认值为 150 +- `cellStyle` - (可选)为单元格应用自定义样式的函数。该函数包含以下参数: + - `field` - (必填)表示所应用样式的字段名的字符串 + - `value` - (必填)单元格的值(该行列对应的实际数据) + - `area` - (必填)指示单元格所在表格区域的字符串("rows"、"columns" 或 "values" 区域) + - `method` - (可选)表示单元格所执行操作的字符串(如 "sum"、"count" 等) + - `isTotal` - (可选)定义单元格是否属于总计行、总计列或两者兼属:"row"|"column"|"both" + `cellStyle` 函数返回一个字符串,可作为 CSS 类名用于为单元格应用特定样式。 +- `tree` - (可选)若设为 **true**,则启用树形模式,数据将以可展开的行形式呈现,默认值为 **false**。更多信息及示例请参阅 [切换到树形模式](guides/configuration.md#enabling-the-tree-mode) +- `totalColumn` - (可选)若为 **true**,则启用总计列,显示各行的汇总值(默认值为 **false**)。若值设为 "sumOnly",则仅生成包含总和值的列(仅适用于求和操作) +- `totalRow` - (可选)若为 **true**,则启用总计行,在表尾显示汇总值(默认值为 **false**)。若值设为 "sumOnly",则仅生成包含总计值的行(仅适用于求和操作) +- `cleanRows` - (可选)若设为 **true**,则在表格视图中隐藏比例列中的重复值,默认值为 **false** +- `split` - (可选)根据指定参数冻结左侧或右侧的列(参阅 [冻结列](guides/configuration.md#freezing-columns)): + - `left`(boolean)- 若设为 **true**(默认值为 **false**),则固定左侧列,使列在滚动时保持静止可见。被固定的列数等于 [`config`](api/config/config-property.md) 属性中定义的行字段数量 + - `right`(boolean)- 在右侧固定总计列,默认值为 **false** + +默认情况下,`tableShape` 为 undefined,即不显示总计行和总计列,不应用任何模板和标记,数据以普通表格形式展示(而非树形),且列在滚动时不会固定。 + +## 示例 {#example} + +在以下示例中,我们对 *state* 单元格应用模板,以显示州的完整名称与缩写的组合。 + +~~~jsx {10-15} +const states = { + "California": "CA", + "Colorado": "CO", + "Connecticut": "CT", + "Florida": "FL", +// 其他值, +}; + +const table = new pivot.Pivot("#root", { + tableShape: { + templates: { + // 设置模板以自定义 "state" 单元格的值 + state: v => v+ ` (${states[v]})`, + } + }, + fields, + data, + config: { + rows: ["state", "product_type"], + columns: [], + values: [ + { + field: "profit", + method: "sum" + }, + { + field: "sales", + method: "sum" + }, + // 其他值 + ], + }, + fields, +}); +~~~ + +**相关示例:** + +- [Pivot 2. 树形模式](https://snippet.dhtmlx.com/6ylkoukn) +- [Pivot 2. 冻结(固定)列](https://snippet.dhtmlx.com/lahf729o) +- [Pivot 2. 设置行高、表头高、表尾高及所有列宽](https://snippet.dhtmlx.com/x46uyfy9) +- [Pivot 2. 清除重复行](https://snippet.dhtmlx.com/rwwhgv2w?tag=pivot) +- [Pivot 2. 为表格和表头单元格添加自定义 CSS](https://snippet.dhtmlx.com/nfdcs4i2) + +**相关文章**: +- [配置](guides/configuration.md) +- [单元格样式](guides/stylization.md#cell-style) diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/api/events/add-field-event.md b/i18n/zh/docusaurus-plugin-content-docs/current/api/events/add-field-event.md new file mode 100644 index 0000000..167bf2b --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/api/events/add-field-event.md @@ -0,0 +1,74 @@ +--- +sidebar_label: add-field +title: add-field 事件 +description: 您可以在 DHTMLX JavaScript Pivot 库的文档中了解 add-field 事件。浏览开发指南和 API 参考,查看代码示例和在线演示,并下载 DHTMLX Pivot 的 30 天免费评估版本。 +--- + +# add-field + +### 描述 {#description} + +@short: 当新字段添加到行、列或值区域时触发 + +### 用法 {#usage} + +~~~jsx +"add-field": ({ + id?: string | number, + area: string, + field: string | number, + method?: string +}) => boolean; +~~~ + +### 参数 {#parameters} + +该操作的回调函数接收一个包含以下参数的对象: + +- `id` - (可选)新字段的指定 id;如果未设置,则使用自动生成的 id +- `area` - (必填)添加新字段的区域名称,可以是 "rows"、"columns" 或 "values" 区域 +- `field` - (必填)字段名称 +- `method` - (可选)定义数据聚合的方法(如果未指定,则使用适合该数据类型的第一个方法);方法可以是以下之一: + - 对于 **values** 区域为必填项,是一个包含数据操作类型的字符串:[默认方法](guides/working-with-data.md#default-methods) + - 对于 **rows** 和 **columns** 区域为可选项,如果设置了值则为谓词;可以是自定义谓词,也可以是默认值之一:"year"、"quarter"、"month"、"week"、"day"、"hour"、"minute"。默认情况下使用原始值。 + 如果设置了自定义谓词或方法,应为 [predicates](api/config/predicates-property.md) 或 [methods](api/config/methods-property.md) 属性指定 id。 + +:::info +如需处理内部事件,可以使用 [Event Bus 方法](api/overview/internal-eventbus-overview.md) +::: + +### 示例 {#example} + +以下示例中,我们使用 [`api.intercept()`](api/internal/intercept-method.md) 方法为 **number** 数据类型的值字段添加新方法: + +~~~jsx {20-27} +const table = new pivot.Pivot("#root", { + fields, + data: dataset, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + } +}); +//使用预定义方法添加值 +table.api.intercept("add-field", (ev) => { + const { fields } = table.api.getState(); + const type = fields.find((f) => f.id == ev.field).type; + + if (ev.area == "values" && type == "number") { + ev.method = "min"; + } +}); +~~~ + +**相关文章**:[api.intercept()](api/internal/intercept-method.md) diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/api/events/apply-filter-event.md b/i18n/zh/docusaurus-plugin-content-docs/current/api/events/apply-filter-event.md new file mode 100644 index 0000000..651c0f4 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/api/events/apply-filter-event.md @@ -0,0 +1,65 @@ +--- +sidebar_label: apply-filter +title: apply-filter 事件 +description: 您可以在 DHTMLX JavaScript Pivot 库的文档中了解 apply-filter 事件。浏览开发者指南和 API 参考,查看代码示例和在线演示,并下载 DHTMLX Pivot 的 30 天免费评估版本。 +--- + +# apply-filter + +### 描述 {#description} + +@short: 在筛选器被应用时触发 + +### 用法 {#usage} + +~~~jsx +"apply-filter": ({ + rule: {} +}) => boolean | void; +~~~ + +### 参数 {#parameters} + +该操作的回调函数接收一个包含以下参数的对象: + +- `rule` - 任意筛选器配置对象,包含如下参数: + - `field` - (必填)要应用筛选器的字段 id + - `filter` - (必填)筛选器类型: + - 文本值:equal、notEqual、contains、notContains、beginsWith、notBeginsWith、endsWith、notEndsWith + - 数值:greater、less、greaterOrEqual、lessOrEqual、equal、notEqual、contains、notContains + - 日期类型:greater、less、greaterOrEqual、lessOrEqual、equal、notEqual、between、notBetween + - `value` - (可选)用于筛选的值 + - `includes` - (可选)一个值数组,用于从已筛选的结果中指定要显示的值;适用于文本和日期类型的值 + +:::info +如需处理内部事件,可以使用 [Event Bus 方法](api/overview/internal-eventbus-overview.md) +::: + +### 示例 {#example} + +~~~jsx {20-23} +const table = new pivot.Pivot("#root", { + fields, + data, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + } +}); +//将应用筛选器的字段标签输出到控制台 +table.api.on("apply-filter", (ev) => { + console.log("The field to which filter was applied:", ev.rule.field); +}); +~~~ + +**相关文章**:[api.on()](api/internal/on-method.md) diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/api/events/delete-field-event.md b/i18n/zh/docusaurus-plugin-content-docs/current/api/events/delete-field-event.md new file mode 100644 index 0000000..5a5248a --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/api/events/delete-field-event.md @@ -0,0 +1,82 @@ +--- +sidebar_label: delete-field +title: delete-field 事件 +description: 您可以在 DHTMLX JavaScript Pivot 库的文档中了解 delete-field 事件。浏览开发者指南和 API 参考,试用代码示例和在线演示,并下载 DHTMLX Pivot 的 30 天免费评估版本。 +--- + +# delete-field + +### 描述 {#description} + +@short: 移除字段时触发 + +### 用法 {#usage} + +~~~jsx +"delete-field": ({ + area: string, + id: string | number +}) => boolean | void; +~~~ + +### 参数 {#parameters} + +该操作的回调函数接收一个包含以下参数的对象: + +- `area` - (必填)移除字段所在区域的名称,可以是 "rows"、"columns" 或 "values" 区域 +- `id` - (必填)被移除字段的 id + +:::info +处理内部事件可使用 [Event Bus 方法](api/overview/internal-eventbus-overview.md) +::: + +### 示例 {#example} + +在以下示例中,`delete-field` 操作通过 [`api.exec()`](api/internal/exec-method.md) 方法触发。最后一个字段将从 **values** 区域中移除。[`api.getState()`](api/internal/getstate-method.md) 方法用于获取 Pivot [`config`](api/config/config-property.md) 的当前状态。点击按钮将触发该操作。 + +~~~jsx {31-34} +const table = new pivot.Pivot("#root", { + fields, + data, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + } +}); + +//调用 API 方法:从 config 的 values 中移除指定值 +function removeLastField() { + if (table.api) { + const state = table.api.getState(); + const config = state.config; + + const count = config.values.length; + + if (count) { + const lastValue = config.values[count - 1]; + + table.api.exec("delete-field", { + area: "values", + id: lastValue.id, // 自动生成的 config.values 中条目的 ID + }); + } + } +} + +const button = document.createElement("button"); + +button.addEventListener("click", removeLastField); +button.textContent = "Remove"; + +document.body.appendChild(button); +~~~ diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/api/events/move-field-event.md b/i18n/zh/docusaurus-plugin-content-docs/current/api/events/move-field-event.md new file mode 100644 index 0000000..4677eb4 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/api/events/move-field-event.md @@ -0,0 +1,65 @@ +--- +sidebar_label: move-field +title: move-field 事件 +description: 您可以在 DHTMLX JavaScript Pivot 库的文档中了解 move-field 事件。浏览开发者指南和 API 参考,查看代码示例和在线演示,并下载 DHTMLX Pivot 的 30 天免费评估版本。 +--- + +# move-field + +### 描述 {#description} + +@short: 当字段重新排序时触发 + +### 用法 {#usage} + +~~~jsx +"move-field": ({ + area: string, + id: string | number, + before?: string, + after?: string +}) => void | boolean; +~~~ + +### 参数 {#parameters} + +该操作的回调函数接受一个包含以下参数的对象: + +- `area` - (必填)发生重新排序的区域名称,可以是 "rows"、"columns" 或 "values" 区域 +- `id` - (必填)被移动字段的 id +- `before` - (可选)移动字段被放置到其之前的字段 id +- `after` - (可选)移动字段被放置到其之后的字段 id + +:::info +处理内部 events 时,您可以使用 [Event Bus 方法](api/overview/internal-eventbus-overview.md) +::: + +### 示例 {#example} + +~~~jsx {20-23} +const table = new pivot.Pivot("#root", { + fields, + data: dataset, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + } +}); + +//将重新排序字段的 id 输出到控制台 +table.api.on("move-field", (ev) => { + console.log("The id of the reordered field:", ev.id); +}); +~~~ + +**相关文章**:[api.on()](api/internal/on-method.md) diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/api/events/open-filter-event.md b/i18n/zh/docusaurus-plugin-content-docs/current/api/events/open-filter-event.md new file mode 100644 index 0000000..800591d --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/api/events/open-filter-event.md @@ -0,0 +1,95 @@ +--- +sidebar_label: open-filter +title: open-filter 事件 +description: 您可以在 DHTMLX JavaScript Pivot 库的文档中了解 open-filter 事件。浏览开发者指南和 API 参考,查看代码示例和在线演示,并下载 DHTMLX Pivot 的免费 30 天评估版本。 +--- + +# open-filter + +### 描述 {#description} + +@short: 当字段的过滤器被激活时触发 + +### 用法 {#usage} + +~~~jsx +"open-filter": ({ + id: string | null, + area?: "values" | "rows" | "columns" +}) => boolean | void; +~~~ + +### 参数 {#parameters} + +该操作的回调函数接受以下参数: + +- `area` - 字段所在的区域("rows"、"columns"、"values") +- `id` - 字段的 id;如果只传入一个值为 null 的 `id` 参数,则过滤器将被关闭。 + +:::info +如需处理内部事件,可以使用 [Event Bus 方法](api/overview/internal-eventbus-overview.md) +::: + +### 返回值 {#returns} + +该函数可以返回布尔值或 void。当返回 **false** 时,相应的事件操作将被中止。 + +### 示例 {#example} + +以下示例展示了如何在关闭过滤框时隐藏配置面板: + +~~~jsx {20-27} +const table = new pivot.Pivot("#root", { + fields, + data: dataset, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + } +}); + +table.api.on("open-filter", (ev) => { + if(!ev.id) { + table.api.exec("show-config-panel", { + mode: false + }); + } +}); +~~~ + +以下示例将激活过滤器的字段 id 输出到控制台: + +~~~jsx {20-22} +const table = new pivot.Pivot("#root", { + fields, + data, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + } +}); + +table.api.on("open-filter", (ev) => { + console.log("The field id for which filter is activated:", ev.id); +}); +~~~ diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/api/events/render-table-event.md b/i18n/zh/docusaurus-plugin-content-docs/current/api/events/render-table-event.md new file mode 100644 index 0000000..c9a9739 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/api/events/render-table-event.md @@ -0,0 +1,178 @@ +--- +sidebar_label: render-table +title: render-table 事件 +description: 您可以在 DHTMLX JavaScript Pivot 库的文档中了解 render-table 事件。浏览开发者指南和 API 参考,查看代码示例和在线演示,并下载 DHTMLX Pivot 30 天免费评估版本。 +--- + +# render-table + +### 描述 {#description} + +@short: 在处理完 widget 配置之后、渲染表格之前触发 + +该事件允许您动态修改最终的表格配置,或完全阻止表格的渲染。 + +### 用法 {#usage} + +~~~jsx +"render-table": ({ + config: { + columns?: any[], + data?: any[], + footer?: boolean, + sizes?: { + rowHeight?: number, + headerHeight?: number, + columnWidth?: number, + footerHeight?: number + }, + split?: { + left?: number; + right?: number; + }, + tree?: boolean, + cellStyle?: (row: any, col: any) => string, + } +}) => boolean | void; +~~~ + +### 参数 {#parameters} + +该动作的回调函数接收包含以下参数的 `config` 对象: + +- `columns` - (可选)列数组,每个对象包含以下参数: + - `id` (number) - (必填)列的 id + - `cell` (any) - (可选)包含单元格内容的模板(请参阅[通过 template 辅助函数添加模板](guides/configuration.md#adding-a-template-via-the-template-helper)) + - `template` - (可选)通过 [`tableShape`](api/config/tableshape-property.md) 属性定义的模板 + - `fields` (array) - (可选)在树模式下定义层级列中的字段,反映该列在不同层级上显示的字段 + - `field` - (可选)字段 id 字符串 + - `method` (string) - (可选)为该列中某个字段定义的方法 + - `methods` (array) - (可选)定义在树模式下层级列中字段所应用的方法 + - `format` (string 或 object) - (必填)日期格式或数字格式(参阅[对字段应用格式](guides/working-with-data.md#applying-formats-to-fields)) + - `isNumeric` (boolean) - (可选)定义列是否包含数值 + - `isTotal` (boolean) - (可选)定义是否为汇总列 + - `area` (string) - (可选)列渲染所在的区域:"rows"、"columns"、"values" + - `header` - (可选)表头单元格数组,每个单元格包含以下属性: + - `text` (string) - (可选)单元格文本、格式化值或经谓词模板处理的值 + - `rowspan` (number) - (可选)表头跨越的行数 + - `colspan` (number) - (可选)表头跨越的列数 + - `value` (any) - (必填)原始值,适用于属于 "columns" 区域的单元格 + - `field` (string) - (必填)显示值的字段,适用于属于 "columns" 区域的单元格 + - `method` (string) - (必填)字段谓词,适用于属于 "columns" 区域且定义了谓词的单元格 + - `format` (string 或 object) - 日期格式或数字格式(参阅[对字段应用格式](guides/working-with-data.md#applying-formats-to-fields)) + - `footer` - (可选)表尾标签或与表头设置相同的表尾设置对象 + - `data` - (可选)表格数据对象数组,每个对象代表一行: + - `id` (number) - (必填)行 id + - `values` (array) - (必填)包含行数据的数组 + - `open` (boolean) - (可选)分支展开状态 + - `$level` (boolean) - (可选)分支索引 +- `footer` - (可选)设置为 **true** 时,在表格底部显示表尾;默认设置为 **false** 且不可见 +- `sizes` - (可选)包含表格尺寸设置的对象,具体包括 columnWidth、footerHeight、headerHeight、rowHeight +- `split` (object) - (可选)包含以下属性的对象: + - `left` (number) - 从左侧固定的列数 + - `right` (number) - 从右侧固定的列数 +- `tree` - (可选)定义是否启用树模式(启用时为 **true**) +- `cellStyle` - (可选)为单元格应用自定义样式的函数,接收行对象和列对象,返回 CSS 类名字符串:`(row, col) => string` + +:::info +如需处理内部事件,可以使用 [Event Bus 方法](api/overview/internal-eventbus-overview.md) +::: + +### 返回值 {#returns} + +回调函数可返回 boolean 或 void。 +若事件处理函数返回 **false**,将阻止相关操作。在此情况下,将阻止表格的渲染。 + +### 示例 {#example} + +以下示例展示如何将 [`config`](api/config/config-property.md) 对象输出到控制台并添加表尾。 + +~~~jsx {20-28} +const table = new pivot.Pivot("#root", { + fields, + data: dataset, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + } +}); + +table.api.intercept("render-table", (ev) => { + console.log(ev.config); //输出 config 对象 + console.log(ev.config.columns); //输出 columns 数组 + + ev.config.footer = true; + ev.config.columns[0].footer = ["Custom footer"]; + + // 在此处返回 "false" 将阻止表格渲染 +}); +~~~ + +以下示例展示如何通过按钮点击展开/折叠所有行。树模式需通过 [`tableShape`](api/config/tableshape-property.md) 属性启用。 + +~~~jsx +const table = new pivot.Pivot("#root", { + tableShape: { + tree: true, + }, + fields, + data: dataset, + config: { + rows: ["type", "studio"], + columns: [], + values: [ + { + field: "score", + method: "max" + }, + { + field: "rank", + method: "min" + }, + { + field: "members", + method: "sum" + }, + { + field: "episodes", + method: "count" + } + ] + } +}); + +const api = table.api; +const tableApi = api.getTable(); + +// 在表格配置更新时关闭所有分支 +api.intercept("render-table", (ev) => { + ev.config.data.forEach((r) => (r.open = false)); + + // 在此处返回 "false" 将阻止表格渲染 + // return false; +}); + +function openAll() { + tableApi.exec("open-row", { id: 0, nested: true }); +} + +function closeAll() { + tableApi.exec("close-row", { id: 0, nested: true }); +} +~~~ + +另请参阅如何使用 `render-table` 事件配置拆分功能:[冻结列](guides/configuration.md#freezing-columns)。 + +**相关文章:** [pivot.template 辅助函数](api/helpers/template.md) + +**相关示例:** [Pivot 2. 自定义冻结(固定)列(自定义数量)](https://snippet.dhtmlx.com/53erlmgp) diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/api/events/show-config-panel-event.md b/i18n/zh/docusaurus-plugin-content-docs/current/api/events/show-config-panel-event.md new file mode 100644 index 0000000..34e099d --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/api/events/show-config-panel-event.md @@ -0,0 +1,60 @@ +--- +sidebar_label: show-config-panel +title: show-config-panel 事件 +description: 您可以在 DHTMLX JavaScript Pivot 库的文档中了解 show-config-panel 事件。浏览开发者指南和 API 参考,查看代码示例和在线演示,并下载 DHTMLX Pivot 免费 30 天评估版本。 +--- + +# show-config-panel + +### 描述 {#description} + +@short: 当配置面板的可见性发生变化时触发 + +### 用法 {#usage} + +~~~jsx +"show-config-panel": ({ + mode: boolean +}) +~~~ + +### 参数 {#parameters} + +该操作的回调函数接收一个包含以下参数的对象: + +- `mode` - (必填)如果值设为 **true**(默认值),则显示配置面板;设为 **false** 时隐藏配置面板 + +:::info +处理内部事件可使用 [Event Bus 方法](api/overview/internal-eventbus-overview.md) +::: + +### 示例 {#example} + +~~~jsx {19-22} +const table = new pivot.Pivot("#root", { + fields, + data: dataset, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + } +}); +//隐藏配置面板 +table.api.exec("show-config-panel", { + mode: false +}); +~~~ + +**相关文章**: +- [`showConfigPanel()` 方法](api/methods/showconfigpanel-method.md) +- [`configPanel` 属性](api/config/configpanel-property.md) diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/api/events/update-config-event.md b/i18n/zh/docusaurus-plugin-content-docs/current/api/events/update-config-event.md new file mode 100644 index 0000000..c86f3f8 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/api/events/update-config-event.md @@ -0,0 +1,78 @@ +--- +sidebar_label: update-config +title: update-config 事件 +description: 您可以在 DHTMLX JavaScript Pivot 库的文档中了解 update-config 事件。浏览开发者指南和 API 参考文档,尝试代码示例和在线演示,并下载 DHTMLX Pivot 的免费 30 天评估版本。 +--- + +# update-config + +### 描述 {#description} + +@short: 通过 Pivot UI 修改行、列或聚合函数时触发 + +该操作可用于保存用户的聚合配置,以便在下次使用 widget 时应用该配置,使用户能够从上次离开的地方继续操作。 + +### 用法 {#usage} + +~~~jsx +"update-config": ({ + rows: string[], + columns: string[], + values: [], + filters: {} +}) => boolean | void; +~~~ + +### 参数 {#parameters} + +该操作的回调函数接收一个包含已处理的 [`config`](api/config/config-property.md) 参数的对象: + +- `rows` - Pivot 表格的行。一个包含字段 ID 和数据提取方法的对象;对象参数如下: + - `field` - 字段的 ID + - `method` - 数据提取方法(适用于基于时间的数据字段) +- `columns` - 定义 Pivot 表格的列。一个包含字段 ID 和数据提取方法的对象;对象参数如下: + - `field` - 字段的 ID + - `method` - 定义数据提取方法(适用于基于时间的数据字段)。 + 默认情况下,方法适用于基于时间的字段(**date** 类型),可选值为:"year"、"quarter"、"month"、"week"、"day"、"hour"、"minute" +- `values` - 定义 Pivot 表格单元格的数据聚合。一个包含字段 ID 和数据聚合方法的对象,对象参数如下: + - `field` - 字段的 ID + - `method` - 定义数据提取方法;关于方法及可选项,请参阅[应用方法](guides/working-with-data.md#default-methods) +- `filters` - (可选)定义表格中数据的过滤方式;一个包含字段 ID 和数据聚合方法的对象。`filter` 对象的说明请参见:[`config`](api/config/config-property.md) + +:::info +处理内部事件时,您可以使用 [Event Bus 方法](api/overview/internal-eventbus-overview.md) +::: + +### 返回值 {#returns} + +回调函数可返回布尔值或 void。 +如果事件处理函数返回 *false*,则触发该事件的操作将被阻止,`update-config` 操作将停止执行。 + +### 示例 {#example} + +~~~jsx {19-22} +const table = new pivot.Pivot("#root", { + fields, + data: dataset, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + } +}); +//将 config 对象输出到控制台 +table.api.on("update-config", (config) => { + console.log("Config has changed", config); +}); +~~~ + +**相关文章**:[api.intercept()](api/internal/intercept-method.md) diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/api/events/update-field-event.md b/i18n/zh/docusaurus-plugin-content-docs/current/api/events/update-field-event.md new file mode 100644 index 0000000..2ab1629 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/api/events/update-field-event.md @@ -0,0 +1,67 @@ +--- +sidebar_label: update-field +title: update-field 事件 +description: 您可以在 DHTMLX JavaScript Pivot 库的文档中了解 update-field 事件。浏览开发者指南和 API 参考,查看代码示例和在线演示,并下载 DHTMLX Pivot 免费 30 天评估版本。 +--- + +# update-field + +### 描述 {#description} + +@short: 在更新字段时触发 + +### 用法 {#usage} + +~~~jsx +"update-field": ({ + id: string | number, + method: string, + area: string +}) => boolean; +~~~ + +### 参数 {#parameters} + +该操作的回调函数接收一个包含以下参数的对象: + +- `id` - (必填)被更新字段的 id +- `method` - (必填)方法可以是以下值之一: + - 对于 **values** 区域,为包含某种数据操作类型的字符串:[默认方法](guides/working-with-data.md#default-methods) + - 对于 **rows** 和 **columns** 区域,可以是数据谓词值,取以下值之一:"year"、"quarter"、"month"、"week"、"day"、"hour"、"minute"。默认情况下使用原始值。 + 如果设置了自定义谓词或方法,则应在 [predicate](api/config/predicates-property.md) 或 [methods](api/config/methods-property.md) 属性中指定 id。 +- `area` - (必填)字段所在区域的名称,可以是 "rows"、"columns" 或 "values" 区域 + +:::info +要处理内部事件,可以使用 [Event Bus 方法](api/overview/internal-eventbus-overview.md) +::: + +### 示例 {#example} + +~~~jsx {19-22} +const table = new pivot.Pivot("#root", { + fields, + data: dataset, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + } +}); +//将被更新字段的 id 输出到控制台 +table.api.on("update-field", (ev) => { + console.log("The id of the field that was updated:", ev.id); +}); +~~~ + +**相关文章**: +- [api.on()](api/internal/on-method.md) +- [methods](api/config/methods-property.md) diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/api/helpers/template.md b/i18n/zh/docusaurus-plugin-content-docs/current/api/helpers/template.md new file mode 100644 index 0000000..8d57030 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/api/helpers/template.md @@ -0,0 +1,89 @@ +--- +sidebar_label: template +title: template +description: 您可以在 DHTMLX JavaScript Pivot 库的文档中了解 Pivot template 辅助函数。浏览开发者指南和 API 参考,试用代码示例和在线演示,并下载 DHTMLX Pivot 的免费 30 天评估版本。 +--- + +### 描述 {#description} + +`template` 函数用于为表格的表头单元格和主体单元格应用模板。 + +### 用法 {#usage} + +用于主体单元格: + +~~~jsx +pivot.template({value, method, row, column}) => string; +~~~ + +用于表头单元格: + +~~~jsx +pivot.template({value, field, method, cell, column}) => string; +~~~ + +### 参数 {#parameters} + +主体单元格的函数接受以下参数: + +- `value` (any) - (必填)单元格原始值 +- `method` (string) - (必填)用于该列的方法或谓词 +- `row` - (必填)包含行数据的对象: + - `id` (number) - (必填)行 id + - `values` (array) - (必填)包含行数据的数组 + - `open` (boolean) - (可选)分支展开状态 + - `$level` (boolean) - (可选)分支层级索引 +- `column` - (必填)包含列数据的对象: + - `id` (number) - (必填)列的 id + - `cell` (any) - (可选)包含单元格内容的模板(请参阅[通过 template 辅助函数添加模板](guides/configuration.md#adding-a-template-via-the-template-helper)) + - `template` - (可选)通过 [`tableShape`](api/config/tableshape-property.md) 属性定义的模板 + - `fields` (array) - (可选)在树形模式下定义层次列中的字段,反映该列在不同层级上显示的字段 + - `field` - (可选)字段 id 字符串 + - `method` (string) - (可选)为该列中某字段定义的方法 + - `methods` (array) - (可选)定义在树形模式下应用于层次列中各字段的方法 + - `format` (string or object) - (必填)日期格式或数字格式(请参阅[为字段应用格式](guides/working-with-data.md#applying-formats-to-fields)) + - `isNumeric` (boolean) - (可选)定义该列是否包含数值 + - `isTotal` (boolean) - (可选)定义该列是否为汇总列 + - `area` (string) - (可选)列所在的区域:"rows"、"columns"、"values" + - `header` - (可选)表头单元格数组,每个单元格具有以下属性: + - `text` (string) - (可选)单元格文本、格式化值或经谓词模板处理后的值 + - `rowspan` (number) - (可选)表头跨越的行数 + - `colspan` (number) - (可选)表头跨越的列数 + - `value` (any) - (必填)原始值,当单元格属于 "columns" 区域时使用 + - `field` (string) - (必填)所显示值对应的字段,当单元格属于 "columns" 区域时使用 + - `method` (string) - (必填)字段谓词,当单元格属于 "columns" 区域且定义了谓词时使用 + - `format` (string or object) - 日期格式或数字格式(请参阅[为字段应用格式](guides/working-with-data.md#applying-formats-to-fields)) + +表头单元格的函数参数如下: + +- `value` (any) - (必填)单元格原始值 +- `method` (string) - (可选)用于该列的谓词 +- `field` (string) - (可选)在单元格中显示值的字段 +- `cell` - (必填)包含单元格数据的对象: + - `text` (string) - (可选)单元格文本、格式化值或经谓词模板处理后的值 + - `rowspan` (number) - (可选)表头跨越的行数 + - `colspan` (number) - (可选)表头跨越的列数 + - `value` (any) - (必填)原始值,当单元格属于 "columns" 区域时使用 + - `field` (string) - (必填)所显示值对应的字段,当单元格属于 "columns" 区域时使用 + - `method` (string) - (必填)字段谓词,当单元格属于 "columns" 区域且定义了谓词时使用 + - `format` (string or object) - (必填)日期格式或数字格式(请参阅[为字段应用格式](guides/working-with-data.md#applying-formats-to-fields)) +- `column` - (必填)包含列数据的对象(与主体单元格相同) + +### 示例 {#example} + +以下代码片段演示了如何通过 `pivot.template` 辅助函数定义模板。该辅助函数在表格渲染前生效,通过使用 [api.intercept()](api/internal/intercept-method.md) 方法拦截 [render-table](api/events/render-table-event.md) 事件来实现。 + +该代码片段展示了如何为以下内容添加图标: + +- 基于字段(id、user_score)的主体单元格(模板添加旗帜和星形图标) +- 基于字段名称的表头标签(例如,若字段为 "id",则在表头值旁添加地球图标) +- 基于值的列表头(添加彩色箭头指示器) + + + + +**相关文章:** + +- [`render-table`](api/events/render-table-event.md) +- [为单元格应用模板](guides/configuration.md#applying-templates-to-cells) +- [为表头应用模板](guides/configuration.md#applying-templates-to-headers) diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/api/internal/detach-method.md b/i18n/zh/docusaurus-plugin-content-docs/current/api/internal/detach-method.md new file mode 100644 index 0000000..5d36a0d --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/api/internal/detach-method.md @@ -0,0 +1,69 @@ +--- +sidebar_label: api.detach() +title: detach 方法 +description: 您可以在 DHTMLX JavaScript Pivot 库的文档中了解 detach 方法。浏览开发者指南和 API 参考,尝试代码示例和在线演示,并下载 DHTMLX Pivot 的免费 30 天评估版本。 +--- + +# api.detach() + +## 描述 {#description} + +@short: 用于移除/解绑动作处理器 + +## 用法 {#usage} + +~~~jsx +api.detach(tag: number | string ): void; +~~~ + +## 参数 {#parameters} + +- `tag` - 动作标签的名称 + +### 示例 {#example} + +在下面的示例中,我们向 [`api.on()`](api/internal/on-method.md) 处理器添加一个包含 **tag** 属性的对象,然后使用 `api.detach()` 方法停止记录 [`open-filter`](api/events/open-filter-event.md) 动作。 + +~~~jsx {31-34} +// 创建 Pivot +const table = new pivot.Pivot("#root", { + fields, + data: dataset, + config: { + rows: ["studio", "genre"], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + } +}); + +// 添加处理器 +if (table.api) { + table.api.on( + "open-filter", + ({ area }) => { + console.log("Opened: " + area); + }, + { tag: "track" } + ); +} + +// 解绑处理器 +function stop() { + table.api.detach("track"); +} + +const button = document.createElement("button"); + +button.addEventListener("click", stop); +button.textContent = "Stop logging"; + +document.body.appendChild(button); +~~~ diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/api/internal/exec-method.md b/i18n/zh/docusaurus-plugin-content-docs/current/api/internal/exec-method.md new file mode 100644 index 0000000..5d20768 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/api/internal/exec-method.md @@ -0,0 +1,83 @@ +--- +sidebar_label: api.exec() +title: exec 方法 +description: 您可以在 DHTMLX JavaScript Pivot 库的文档中了解 exec 方法。浏览开发者指南和 API 参考,查看代码示例和在线演示,并下载 DHTMLX Pivot 的免费 30 天评估版本。 +--- + +# api.exec() + +### 描述 {#description} + +@short: 允许触发内部事件 + +## 用法 {#usage} + +~~~jsx +api.exec( + event: string, + config: object +): Promise; +~~~ + +## 参数 {#parameters} + +- `event` - (必填)要触发的事件 +- `config` - (必填)包含参数的配置对象(参见要触发的事件) + +## 操作 {#actions} + +:::info +Pivot 事件的完整列表可在[**此处**](api/overview/events-overview.md)查看 +::: + +## 示例 {#example} + +在下面的示例中,[`delete-field`](api/events/delete-field-event.md) 事件通过 `api.exec()` 方法触发。最后一个字段将从 **values** 区域中移除。[`api.getState()`](api/internal/getstate-method.md) 方法用于获取 Pivot [`config`](api/config/config-property.md) 的当前状态。点击按钮后将触发该事件。 + +~~~jsx {32-35} +// 创建 Pivot +const table = new pivot.Pivot("#root", { + fields, + data: dataset, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + } +}); + +// 调用 API 方法:从 config 的 values 中移除指定值 +function removeLastField() { + if (table.api) { + const state = table.api.getState(); + const config = state.config; + + const count = config.values.length; + + if (count) { + const lastValue = config.values[count - 1]; + + table.api.exec("delete-field", { + area: "values", + id: lastValue.id, // 自动生成的 config.values 中已添加项目的 ID + }); + } + } +} + +const button = document.createElement("button"); + +button.addEventListener("click", removeLastField); +button.textContent = "Remove"; + +document.body.appendChild(button); +~~~ diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/api/internal/getreactivestate-method.md b/i18n/zh/docusaurus-plugin-content-docs/current/api/internal/getreactivestate-method.md new file mode 100644 index 0000000..011cef3 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/api/internal/getreactivestate-method.md @@ -0,0 +1,71 @@ +--- +sidebar_label: api.getReactiveState() +title: getReactiveState 方法 +description: 您可以在 DHTMLX JavaScript Pivot 库的文档中了解 getReactiveState 方法。浏览开发者指南和 API 参考,查看代码示例和在线演示,并下载 DHTMLX Pivot 的 30 天免费评估版本。 +--- + +# api.getReactiveState() + +### 描述 {#description} + +@short: 获取包含 Pivot 响应式属性的对象 + +### 用法 {#usage} + +~~~jsx +api.getReactiveState(): object; +~~~ + +### 返回值 {#returns} + +该方法返回一个包含以下参数的对象: + +~~~jsx +{ + config: {}, // 当前配置(rows、columns、values、filters) + activeFilter: {}, // 活动过滤器对象(若有过滤器处于打开状态) + columnShape: {}, // pivot 列配置 + data: [], // 源数据 + fields: [], // 字段数组 + filters: {}, // 过滤规则 + headerShape: {}, // 表头设置 + predicates: {}, // 各字段可用的断言 + limits: {}, // 数据集中行数和列数的最大限制 + methods: {}, // 数据聚合方法 + tableShape: {}, // 表格设置(尺寸、合计行、模板) + tableConfig: {}, // 表格配置设置(列、数据、尺寸、树形模式、页脚) + configPanel: boolean, // 配置面板的可见状态 + readonly: boolean, // 是否启用只读模式 +} +~~~ + +### 示例 {#example} + +~~~jsx {21-26} +// 创建 Pivot +const table = new pivot.Pivot("#root", { + fields, + data: dataset, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + } +}); + +// 订阅响应式 config store,并在每次变更时输出日志 +const state = table.api.getReactiveState(); + +state.config.subscribe((config) => { + console.log("Pivot config changed. Its current state:", config); +}); +~~~ diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/api/internal/getstate-method.md b/i18n/zh/docusaurus-plugin-content-docs/current/api/internal/getstate-method.md new file mode 100644 index 0000000..bc9602b --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/api/internal/getstate-method.md @@ -0,0 +1,67 @@ +--- +sidebar_label: api.getState() +title: getState 方法 +description: 您可以在 DHTMLX JavaScript Pivot 库的文档中了解 getState 方法。浏览开发者指南和 API 参考,查看代码示例和在线演示,并下载 DHTMLX Pivot 的免费 30 天评估版本。 +--- + +# api.getState() + +### 描述 {#description} + +@short: 获取包含 Pivot 的 StateStore 属性的对象 + +### 用法 {#usage} + +~~~jsx +api.getState(): object; +~~~ + +### 返回值 {#returns} + +该方法返回一个包含以下参数的对象: + +~~~jsx +{ + config: {}, // 当前配置(rows、columns、values、filters) + activeFilter: {}, // 活动过滤器对象(如果有过滤器处于打开状态) + columnShape: {}, // 透视列配置 + data: [], // 源数据 + fields: [], // 字段数组 + filters: {}, // 过滤规则 + headerShape: {}, // 表头设置 + predicates: {}, // 各字段可用的断言 + limits: {}, // 数据集中行和列数量的最大限制 + methods: {}, // 数据聚合方法 + tableShape: {}, // 表格设置(尺寸、合计行、模板) + tableConfig: {}, // 表格配置设置(列、数据、尺寸、树形模式、页脚) + configPanel: boolean, // 配置面板的可见状态 + readonly: boolean, // 是否启用只读模式 +} +~~~ + +### 示例 {#example} + +~~~jsx {21-22} +// 创建 Pivot +const table = new pivot.Pivot("#root", { + fields, + data: dataset, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + } +}); + +const { config } = table.api.getState(); +console.log(config); //将 config 状态输出到控制台 +~~~ diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/api/internal/getstores-method.md b/i18n/zh/docusaurus-plugin-content-docs/current/api/internal/getstores-method.md new file mode 100644 index 0000000..3a2edfa --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/api/internal/getstores-method.md @@ -0,0 +1,54 @@ +--- +sidebar_label: api.getStores() +title: getStores 方法 +description: 您可以在 DHTMLX JavaScript Pivot 库的文档中了解 getStores 方法。浏览开发指南和 API 参考,查看代码示例和在线演示,并下载 DHTMLX Pivot 的 30 天免费评估版本。 +--- + +# api.getStores() + +### 描述 {#description} + +@short: 获取包含 Pivot 的 DataStore 属性的对象 + +### 用法 {#usage} + +~~~jsx +api.getStores(): object; +~~~ + +### 返回值 {#returns} + +该方法返回一个包含 **DataStore** 参数的对象: + +~~~jsx +{ + data: DataStore // (参数对象) +} +~~~ + +### 示例 {#example} + +~~~jsx {21-22} +// 创建 Pivot +const table = new pivot.Pivot("#root", { + fields, + data: dataset, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + } +}); + +const stores = table.api.getStores(); +console.log("DataStore:", stores); +~~~ diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/api/internal/intercept-method.md b/i18n/zh/docusaurus-plugin-content-docs/current/api/internal/intercept-method.md new file mode 100644 index 0000000..aa48c5c --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/api/internal/intercept-method.md @@ -0,0 +1,68 @@ +--- +sidebar_label: api.intercept() +title: intercept 方法 +description: 您可以在 DHTMLX JavaScript Pivot 库的文档中了解 intercept 方法。浏览开发者指南和 API 参考,查看代码示例和在线演示,并下载 DHTMLX Pivot 的免费 30 天评估版本。 +--- + +# api.intercept() + +### 描述 {#description} + +@short: 用于拦截并阻止内部事件 + +### 用法 {#usage} + +~~~jsx +api.intercept( + event: string, + callback: function, + config?: { tag?: number | string | symbol } +): void; +~~~ + +### 参数 {#parameters} + +- `event` - (必填)要触发的事件 +- `callback` - (必填)要执行的回调函数(回调参数取决于所触发的事件) +- `config` - (可选)存储以下参数的对象: + - `tag` - (可选)操作标签。您可以使用标签名称通过 [`detach`](api/internal/detach-method.md) 方法移除操作处理器 + +### 事件 {#events} + +:::info +Pivot 内部事件的完整列表可在[**此处**](api/overview/main-overview.md#pivot-events)查看。 +如果您只想监听操作而不修改,请使用 [`api.on()`](api/internal/on-method.md) 方法。若要对操作进行修改,请使用 `api.intercept()` 方法。 +::: + +### 示例 {#example} + +以下示例展示了如何在初始化时关闭所有可折叠行。 + +~~~jsx {21-24} +// 创建 Pivot +const table = new pivot.Pivot("#root", { + fields, + data: dataset, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + } +}); + +// 在初始化时关闭所有行 +table.api.intercept("render-table", (ev) => { + ev.config.data.forEach((row) => (row.open = false)); +}, {tag: "render-table-tag"}); +~~~ + +**相关文章**:[`render-table`](api/events/render-table-event.md) diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/api/internal/on-method.md b/i18n/zh/docusaurus-plugin-content-docs/current/api/internal/on-method.md new file mode 100644 index 0000000..0dd1f71 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/api/internal/on-method.md @@ -0,0 +1,72 @@ +--- +sidebar_label: api.on() +title: on 方法 +description: 您可以在 DHTMLX JavaScript Pivot 库的文档中了解 on 方法。浏览开发者指南和 API 参考,查看代码示例和在线演示,并下载 DHTMLX Pivot 的免费 30 天评估版本。 +--- + +# api.on() + +### 描述 {#description} + +@short: 允许为内部事件附加处理函数 + +### 用法 {#usage} + +~~~jsx +api.on( + event: string, + handler: function, + config?: { intercept?: boolean, tag?: number | string | symbol } +): void; +~~~ + +### 参数 {#parameters} + +- `event` - (必填)要触发的事件 +- `handler` - (必填)要附加的处理函数(处理函数的参数取决于所触发的事件) +- `config` - (可选)存储以下参数的对象: + - `intercept` - (可选)如果在创建事件监听器时设置 `intercept: true`,则该事件监听器将在所有其他监听器之前执行 + - `tag` - (可选)操作标签。您可以使用标签名称通过 [`detach`](api/internal/detach-method.md) 方法移除操作处理函数 + +### 事件 {#events} + +:::info +Pivot 内部事件的完整列表可在[**此处**](api/overview/main-overview.md#pivot-events)查看。 +如果您只想监听操作而不对其进行修改,请使用 `api.on()` 方法。若要对操作进行更改,请使用 [`api.intercept()`](api/internal/intercept-method.md) 方法。 +::: + +### 示例 {#example} + +以下示例演示如何输出激活过滤器的字段标签: + +~~~jsx {21-29} +// 创建 Pivot +const table = new pivot.Pivot("#root", { + fields, + data: dataset, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + } +}); + +table.api.on("open-filter", (ev) => { + if (ev.id) { + const { config } = table.api.getState(); + const fieldObj = config[ev.area].find((f) => f.id === ev.id); + if (fieldObj) { + console.log("The field for which filter was activated:", fieldObj.label); + } + } +}, {tag: "open-filter-tag"}); +~~~ diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/api/internal/setnext-method.md b/i18n/zh/docusaurus-plugin-content-docs/current/api/internal/setnext-method.md new file mode 100644 index 0000000..c237ab2 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/api/internal/setnext-method.md @@ -0,0 +1,45 @@ +--- +sidebar_label: api.setNext() +title: setNext 方法 +description: 您可以在 DHTMLX JavaScript Pivot 库的文档中了解 setNext 方法。浏览开发者指南和 API 参考,查看代码示例和在线演示,并下载 DHTMLX Pivot 的免费 30 天评估版本。 +--- + +# api.setNext() + +### 描述 {#description} + +@short: 用于将某个操作添加到 Event Bus 的执行顺序中 + +### 用法 {#usage} + +~~~jsx +api.setNext(next: any): void; +~~~ + +### 参数 {#parameters} + +- `next` - (必填)要加入 **Event Bus** 执行顺序的操作 + +### 示例 {#example} + +以下示例展示了如何使用 `api.setNext()` 方法将自定义类集成到 Event Bus 的执行顺序中: + +~~~jsx {13-14} +const table = new pivot.Pivot("#root", { fields: [], data: [] }); +const server = "https://some-backend-url"; + +// 假设您有一个名为 someServerService 的自定义服务器服务类 +const someServerService = new ServerDataService(server); + +Promise.all([ + fetch(server + "/data").then((res) => res.json()), + fetch(server + "/fields").then((res) => res.json()) +]).then(([data, fields]) => { + table.setConfig({ data, fields }); + + // 将 serverDataService 集成到 widget 的 Event Bus 执行顺序中 + table.api.setNext(someServerService); +}); +~~~ + +**相关文章**:[`setConfig`](api/methods/setconfig-method.md) diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/api/methods/gettable-method.md b/i18n/zh/docusaurus-plugin-content-docs/current/api/methods/gettable-method.md new file mode 100644 index 0000000..df45088 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/api/methods/gettable-method.md @@ -0,0 +1,75 @@ +--- +sidebar_label: getTable() +title: getTable 方法 +description: 您可以在 DHTMLX JavaScript Pivot 库的文档中了解 getTable 方法。浏览开发者指南和 API 参考,尝试代码示例和在线演示,并下载免费的 30 天评估版 DHTMLX Pivot。 +--- + +# getTable() + +### 描述 {#description} + +@short: 获取对 Pivot 表格中底层 Table widget 实例的访问权限 + +此方法用于访问 Pivot 中底层的 Table widget 实例。它提供对 Table 功能的直接访问,支持数据序列化和以各种格式导出等操作。Table API 拥有自己的 `api.exec()` 方法,可以调用 [`open-row`](api/table/open-row.md)、[`close-row`](api/table/close-row.md)、[`export`](api/table/export.md) 和 [`filter-rows`](api/table/filter-rows.md) 事件。 + +### 用法 {#usage} + +~~~jsx +getTable(wait:boolean): Table | Promise; +~~~ + +### 参数 {#parameters} + +`wait` - 定义是否等待 Table API 在 Pivot 中就绪(当 Table API 在 Pivot 初始化期间使用时为必需)。如果值设置为 **true**,该方法将返回一个包含 Table API 的 promise。 + +### 示例 {#example} + +在下面的示例中,我们通过 [`api.exec()`](api/internal/exec-method.md) 方法获取 Table widget API 的访问权限,并在点击按钮时触发 Table 的 `export` 事件。 + +~~~jsx +// 创建 Pivot +const table = new pivot.Pivot("#root", { + fields, + data, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + } +}); + +// 访问 table 实例 +let table_instance = table.getTable(); + +function toCSV() { + table_instance.exec("export", { + options: { + format: "csv", + cols: ";" + } + }); +} + +const exportButton = document.createElement("button"); + +exportButton.addEventListener("click", toCSV); +exportButton.textContent = "Export"; + +document.body.appendChild(exportButton); +~~~ + +**相关文章:** + +- [`close-row`](api/table/close-row.md) +- [`export`](api/table/export.md) +- [`filter-rows`](api/table/filter-rows.md) +- [`open-row`](api/table/open-row.md) diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/api/methods/setconfig-method.md b/i18n/zh/docusaurus-plugin-content-docs/current/api/methods/setconfig-method.md new file mode 100644 index 0000000..d5bb3b0 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/api/methods/setconfig-method.md @@ -0,0 +1,73 @@ +--- +sidebar_label: setConfig() +title: setConfig() +description: 您可以在 DHTMLX JavaScript Pivot 库的文档中了解 setConfig() 方法。浏览开发指南和 API 参考,查看代码示例和在线演示,并下载 DHTMLX Pivot 的 30 天免费评估版本。 +--- + +# setConfig() + +### 描述 {#description} + +@short: 更新 Pivot widget 的当前配置 + +该方法用于更新 Pivot widget 的当前配置。当需要更新 widget 的底层数据集时,此方法非常有用。该方法会保留所有之前设置的、未在 `setConfig` 调用中显式传入的选项。 + +### 用法 {#usage} + +~~~jsx +setConfig(config: { [key:any]: any }): void; +~~~ + +### 参数 {#parameters} + +- `config` - (必填)Pivot 配置对象。完整属性列表请参见[此处](api/overview/properties-overview.md) + +:::important +该方法仅更改您传入的参数。它会销毁当前组件并初始化一个新组件。 +::: + +### 示例 {#example} + +~~~jsx {21-41} +// 创建 Pivot +const table = new pivot.Pivot("#root", { + fields, + data: dataset, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + } +}); + +// 更新配置参数 +table.setConfig({ + config: { + rows: ["studio", "genre", "duration"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + }, + { + field: "type", + method: "count" + } + ] + } +}); +~~~ diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/api/methods/setlocale-method.md b/i18n/zh/docusaurus-plugin-content-docs/current/api/methods/setlocale-method.md new file mode 100644 index 0000000..e84e830 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/api/methods/setlocale-method.md @@ -0,0 +1,56 @@ +--- +sidebar_label: setLocale() +title: setLocale() +description: 您可以在 DHTMLX JavaScript Pivot 库的文档中了解 setLocale() 方法。浏览开发者指南和 API 参考,查看代码示例和在线演示,并下载 DHTMLX Pivot 的免费 30 天评估版本。 +--- + +# setLocale() + +### 描述 {#description} + +@short: 为 Pivot 应用新的语言环境 + +### 用法 {#usage} + +~~~jsx +setLocale(null | locale?: object): void; +~~~ + +### 参数 {#parameters} + +- `null` - (可选)重置为默认语言环境(英语) +- `locale` - (可选)要应用的新语言环境的数据对象 + +### 示例 {#example} + +~~~jsx +// 创建 Pivot +const table = new pivot.Pivot("#root", { + fields, + data: dataset, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + } +}); + +// 为 Pivot 应用 "de" 语言环境 +table.setLocale(pivot.locales.de); + +// 为 Pivot 应用默认语言环境 +table.setLocale(); // 或 setLocale(null); +~~~ + +**相关文章**: +- [本地化](guides/localization.md) +- [`locale`](api/config/locale-property.md) diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/api/methods/showconfigpanel-method.md b/i18n/zh/docusaurus-plugin-content-docs/current/api/methods/showconfigpanel-method.md new file mode 100644 index 0000000..0b9d7fb --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/api/methods/showconfigpanel-method.md @@ -0,0 +1,55 @@ +--- +sidebar_label: showConfigPanel() +title: showConfigPanel() +description: 您可以在 DHTMLX JavaScript Pivot 库的文档中了解 showConfigPanel() 方法。浏览开发者指南和 API 参考,查看代码示例和在线演示,并下载 DHTMLX Pivot 30 天免费评估版本。 +--- + +# showConfigPanel() + +### 描述 {#description} + +@short: 显示或隐藏配置面板 + +当需要在不依赖用户交互的情况下控制配置面板的可见性时,此方法非常有用。例如,您可以根据应用程序中的其他交互或状态来隐藏或显示该面板。 + +### 用法 {#usage} + +~~~jsx +showConfigPanel({mode: boolean}): void; +~~~ + +### 参数 {#parameters} + +- `mode`(boolean)—(必填)若值设置为 **true**(默认值),则显示配置面板;若值设置为 **false**,则隐藏配置面板 + +### 示例 {#example} + +~~~jsx {21-23} +// 创建 Pivot +const table = new pivot.Pivot("#root", { + fields, + data: dataset, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + } +}); + +table.showConfigPanel ({ + mode: false +}) +~~~ + +**相关文章**: +- [`show-config-panel` 事件](api/events/show-config-panel-event.md) +- [`configPanel` 属性](api/config/configpanel-property.md) diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/api/overview/events-overview.md b/i18n/zh/docusaurus-plugin-content-docs/current/api/overview/events-overview.md new file mode 100644 index 0000000..8c36287 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/api/overview/events-overview.md @@ -0,0 +1,19 @@ +--- +sidebar_label: 事件概览 +title: 事件概览 +description: 您可以在 DHTMLX JavaScript Pivot 库的文档中查看 JavaScript Pivot 的事件概览。浏览开发者指南和 API 参考,试用代码示例和在线演示,并下载 DHTMLX Pivot 30 天免费评估版本。 +--- + +# 事件概览 + +| 名称 | 描述 | +| ------------------------------------------------- | ----------------------------------------------- | +| [](api/events/add-field-event.md) | @getshort(../events/add-field-event.md) | +| [](api/events/apply-filter-event.md) | @getshort(../events/apply-filter-event.md) | +| [](api/events/delete-field-event.md) | @getshort(../events/delete-field-event.md) | +| [](api/events/move-field-event.md) | @getshort(../events/move-field-event.md) | +| [](api/events/open-filter-event.md) | @getshort(../events/open-filter-event.md) | +| [](api/events/render-table-event.md) | @getshort(../events/render-table-event.md) | +| [](api/events/show-config-panel-event.md) | @getshort(../events/show-config-panel-event.md) | +| [](api/events/update-config-event.md) | @getshort(../events/update-config-event.md) | +| [](api/events/update-field-event.md) | @getshort(../events/update-field-event.md) | diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/api/overview/internal-eventbus-overview.md b/i18n/zh/docusaurus-plugin-content-docs/current/api/overview/internal-eventbus-overview.md new file mode 100644 index 0000000..945dad5 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/api/overview/internal-eventbus-overview.md @@ -0,0 +1,15 @@ +--- +sidebar_label: Event Bus 方法 +title: Event Bus 方法 +description: 您可以在 DHTMLX JavaScript Pivot 库的文档中查看 JavaScript Pivot 内部 Event Bus 方法概览。浏览开发者指南和 API 参考,尝试代码示例和在线演示,并下载 DHTMLX Pivot 的免费 30 天评估版本。 +--- + +# Event Bus 方法概览 {#event-bus-methods-overview} + +| 名称 | 描述 | +| ---------------------------------------------- | ------------------------------------------------- | +| [](api/internal/detach-method.md) | @getshort(../internal/detach-method.md) | +| [](api/internal/exec-method.md) | @getshort(../internal/exec-method.md) | +| [](api/internal/intercept-method.md) | @getshort(../internal/intercept-method.md) | +| [](api/internal/on-method.md) | @getshort(../internal/on-method.md) | +| [](api/internal/setnext-method.md) | @getshort(../internal/setnext-method.md) | diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/api/overview/internal-state-overview.md b/i18n/zh/docusaurus-plugin-content-docs/current/api/overview/internal-state-overview.md new file mode 100644 index 0000000..bded89f --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/api/overview/internal-state-overview.md @@ -0,0 +1,13 @@ +--- +sidebar_label: State methods +title: State Methods +description: 您可以在 DHTMLX JavaScript Pivot 库的文档中查看 JavaScript Pivot 内部 State 方法概述。浏览开发者指南和 API 参考,试用代码示例和在线演示,并下载 DHTMLX Pivot 免费 30 天评估版本。 +--- + +# State methods 概述 {#state-methods-overview} + +| 名称 | 描述 | +| ---------------------------------------------- | -------------------------------------------------- | +| [](api/internal/getreactivestate-method.md) | @getshort(../internal/getreactivestate-method.md) | +| [](api/internal/getstate-method.md) | @getshort(../internal/getstate-method.md) | +| [](api/internal/getstores-method.md) | @getshort(../internal/getstores-method.md) | diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/api/overview/main-overview.md b/i18n/zh/docusaurus-plugin-content-docs/current/api/overview/main-overview.md new file mode 100644 index 0000000..1f9897e --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/api/overview/main-overview.md @@ -0,0 +1,80 @@ +--- +sidebar_label: API 概览 +title: API 概览 +description: 您可以在 DHTMLX JavaScript Pivot 库的文档中查阅 JavaScript Pivot 的 API 概览。浏览开发者指南和 API 参考,体验代码示例和在线演示,并下载 DHTMLX Pivot 的 30 天免费评估版本。 +--- + +# API 概览 {#api-overview} + +## Pivot 构造函数 {#pivot-constructor} + +~~~jsx +new pivot.Pivot("#root", { + // 配置参数 +}); +~~~ + +**参数**: + +- HTML 容器(HTML 容器的 ID) +- 配置参数对象([请参阅此处](#pivot-properties)) + +## Pivot 方法 {#pivot-methods} + +| 名称 | 描述 | +| ------------------------------------------- | ---------------------------------- | +| [](api/methods/gettable-method.md) | @getshort(../methods/gettable-method.md) | +| [](api/methods/setconfig-method.md) | @getshort(../methods/setconfig-method.md) | +| [](api/methods/setlocale-method.md) | @getshort(../methods/setlocale-method.md) | +| [](api/methods/showconfigpanel-method.md) | @getshort(../methods/showconfigpanel-method.md) | + +## Pivot 内部 API {#pivot-internal-api} + +### Event Bus 方法 {#event-bus-methods} + +| 名称 | 描述 | +| :------------------------------------ | :------------------------------------------- | +| [](api/internal/detach-method.md) | @getshort(../internal/detach-method.md) | +| [](api/internal/exec-method.md) | @getshort(../internal/exec-method.md) | +| [](api/internal/intercept-method.md) | @getshort(../internal/intercept-method.md) | +| [](api/internal/on-method.md) | @getshort(../internal/on-method.md) | +| [](api/internal/setnext-method.md) | @getshort(../internal/setnext-method.md) | + +### 状态方法 {#state-methods} + +| 名称 | 描述 | +| :---------------------------------------------- | :------------------------------------------------- | +| [](api/internal/getreactivestate-method.md) | @getshort(../internal/getreactivestate-method.md) | +| [](api/internal/getstate-method.md) | @getshort(../internal/getstate-method.md) | +| [](api/internal/getstores-method.md) | @getshort(../internal/getstores-method.md) | + +## Pivot 事件 {#pivot-events} + +| 名称 | 描述 | +| :------------------------------------------------ | :---------------------------------------------- | +| [](api/events/add-field-event.md) | @getshort(../events/add-field-event.md) | +| [](api/events/apply-filter-event.md) | @getshort(../events/apply-filter-event.md) | +| [](api/events/delete-field-event.md) | @getshort(../events/delete-field-event.md) | +| [](api/events/move-field-event.md) | @getshort(../events/move-field-event.md) | +| [](api/events/open-filter-event.md) | @getshort(../events/open-filter-event.md) | +| [](api/events/render-table-event.md) | @getshort(../events/render-table-event.md) | +| [](api/events/show-config-panel-event.md) | @getshort(../events/show-config-panel-event.md) | +| [](api/events/update-config-event.md) | @getshort(../events/update-config-event.md) | +| [](api/events/update-field-event.md) | @getshort(../events/update-field-event.md) | + +## Pivot 属性 {#pivot-properties} + +| 名称 | 描述 | +| :------------------------------------------------- | :----------------------------------------------- | +| [](api/config/columnshape-property.md) | @getshort(../config/columnshape-property.md) | +| [](api/config/config-property.md) | @getshort(../config/config-property.md) | +| [](api/config/configpanel-property.md) | @getshort(../config/configpanel-property.md) | +| [](api/config/data-property.md) | @getshort(../config/data-property.md) | +| [](api/config/fields-property.md) | @getshort(../config/fields-property.md) | +| [](api/config/headershape-property.md) | @getshort(../config/headershape-property.md) | +| [](api/config/limits-property.md) | @getshort(../config/limits-property.md) | +| [](api/config/locale-property.md) | @getshort(../config/locale-property.md) | +| [](api/config/methods-property.md) | @getshort(../config/methods-property.md) | +| [](api/config/predicates-property.md) | @getshort(../config/predicates-property.md) | +| [](api/config/readonly-property.md) | @getshort(../config/readonly-property.md) | +| [](api/config/tableshape-property.md) | @getshort(../config/tableshape-property.md) | diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/api/overview/methods-overview.md b/i18n/zh/docusaurus-plugin-content-docs/current/api/overview/methods-overview.md new file mode 100644 index 0000000..2dbd4b5 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/api/overview/methods-overview.md @@ -0,0 +1,14 @@ +--- +sidebar_label: 方法概览 +title: 方法概览 +description: 您可以在 DHTMLX JavaScript Pivot 库的文档中查看 JavaScript Pivot 的方法概览。浏览开发者指南和 API 参考,尝试代码示例和在线演示,并下载 DHTMLX Pivot 的免费 30 天评估版本。 +--- + +# 方法概览 {#methods-overview} + +| 名称 | 描述 | +| ------------------------------------------- | ----------------------------------------------- | +| [](api/methods/gettable-method.md) | @getshort(../methods/gettable-method.md) | +| [](api/methods/setconfig-method.md) | @getshort(../methods/setconfig-method.md) | +| [](api/methods/setlocale-method.md) | @getshort(../methods/setlocale-method.md) | +| [](api/methods/showconfigpanel-method.md) | @getshort(../methods/showconfigpanel-method.md) | diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/api/overview/properties-overview.md b/i18n/zh/docusaurus-plugin-content-docs/current/api/overview/properties-overview.md new file mode 100644 index 0000000..b22e9d4 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/api/overview/properties-overview.md @@ -0,0 +1,24 @@ +--- +sidebar_label: 属性概览 +title: 属性概览 +description: 您可以在 DHTMLX JavaScript Pivot 库的文档中查看 JavaScript Pivot 的属性概览。浏览开发指南和 API 参考,试用代码示例和在线演示,并下载 DHTMLX Pivot 免费 30 天评估版本。 +--- + +# 属性概览 + +如需配置 **Pivot**,请参阅[配置](guides/configuration.md)章节。 + +| 名称 | 描述 | +| -------------------------------------------------- | ------------------------------------------------ | +| [](api/config/columnshape-property.md) | @getshort(../config/columnshape-property.md) | +| [](api/config/config-property.md) | @getshort(../config/config-property.md) | +| [](api/config/configpanel-property.md) | @getshort(../config/configpanel-property.md) | +| [](api/config/data-property.md) | @getshort(../config/data-property.md) | +| [](api/config/fields-property.md) | @getshort(../config/fields-property.md) | +| [](api/config/headershape-property.md) | @getshort(../config/headershape-property.md) | +| [](api/config/limits-property.md) | @getshort(../config/limits-property.md) | +| [](api/config/locale-property.md) | @getshort(../config/locale-property.md) | +| [](api/config/methods-property.md) | @getshort(../config/methods-property.md) | +| [](api/config/predicates-property.md) | @getshort(../config/predicates-property.md) | +| [](api/config/readonly-property.md) | @getshort(../config/readonly-property.md) | +| [](api/config/tableshape-property.md) | @getshort(../config/tableshape-property.md) | diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/api/overview/table-events-overview.md b/i18n/zh/docusaurus-plugin-content-docs/current/api/overview/table-events-overview.md new file mode 100644 index 0000000..c49b86f --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/api/overview/table-events-overview.md @@ -0,0 +1,16 @@ +--- +sidebar_label: Table 事件概览 +title: Table 事件概览 +description: 您可以在 DHTMLX JavaScript Pivot 库的文档中查阅 JavaScript Pivot 的 Table 事件概览。浏览开发者指南和 API 参考,试用代码示例和在线演示,并下载 DHTMLX Pivot 的免费 30 天评估版本。 +--- + +# Table 事件概览 {#table-events-overview} + +Pivot API 的 [`getTable`](api/methods/gettable-method.md) 方法允许访问 Pivot 内部底层 Table widget 实例,并执行以下 Table 事件: + +| 名称 | 描述 | +| ------------------------------------------------- | ----------------------------------------------- | +| [](api/table/close-row.md) | @getshort(../table/close-row.md) | +| [](api/table/export.md) | @getshort(../table/export.md) | +| [](api/table/filter-rows.md) | @getshort(../table/filter-rows.md) | +| [](api/table/open-row.md) | @getshort(../table/open-row.md) | diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/api/table/close-row.md b/i18n/zh/docusaurus-plugin-content-docs/current/api/table/close-row.md new file mode 100644 index 0000000..c8c1dbf --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/api/table/close-row.md @@ -0,0 +1,43 @@ +--- +sidebar_label: close-row +title: close-row +description: 您可以在 DHTMLX JavaScript Pivot 库的文档中了解 close-row 事件。浏览开发者指南和 API 参考,查看代码示例和在线演示,并下载 DHTMLX Pivot 免费 30 天评估版本 +--- + +# close-row + +### 描述 {#description} + +@short: 在折叠行时触发 + +若要触发 Table 事件,需要通过 [`getTable`](api/methods/gettable-method.md) 方法获取 Pivot 内部的 Table 组件实例。树形模式需通过 [`tableShape`](api/config/tableshape-property.md) 属性启用。 + +### 用法 {#usage} + +```jsx {} +"close-row": ({ + id: string | number, + nested?: boolean +}) => boolean|void; +``` + +### 参数 {#parameters} + +该操作的回调函数接收一个包含以下参数的对象: + +- `id` - (必填)具有嵌套行的行 id +- `nested` - (可选)若设置为 **true**,所有嵌套项将被折叠 + +:::note +若 `id` 设为 0 且 `nested` 设为 **true**,表格中的所有行都将被折叠 +::: + +### 示例 {#example} + +以下代码片段演示了如何通过按钮点击展开/折叠所有行: + + + +**相关文章**: +- [`getTable`](api/methods/gettable-method.md) +- [展开/折叠所有行](guides/configuration.md#expandingcollapsing-all-rows) diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/api/table/export.md b/i18n/zh/docusaurus-plugin-content-docs/current/api/table/export.md new file mode 100644 index 0000000..6669e04 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/api/table/export.md @@ -0,0 +1,109 @@ +--- +sidebar_label: export +title: export +description: 您可以在 DHTMLX JavaScript Pivot 库的文档中了解 export 事件。浏览开发者指南和 API 参考,查看代码示例和在线演示,并下载 DHTMLX Pivot 的免费 30 天评估版本 +--- + +# export + +### 描述 {#description} + +@short: 在导出数据时触发 + +要触发 Table 事件,需要通过 [`getTable`](api/methods/gettable-method.md) 方法访问 Pivot 内部的 Table 实例。 + +### 用法 {#usage} + +```jsx +"export": ({ + options: { + format: "csv" | "xlsx", + fileName?: string, + header?: boolean, + footer?: boolean, + download?: boolean, + + /* XLSX 设置*/ + styles?: boolean | { + header?: { + fontWeight?: "bold", + color?: string, + background?: string, + align?: "left"|"right"|"center", + borderBottom?: string, + borderRight?: string, + } + lastHeaderCell?: { /* 与 header 相同 */ }, + cell?: { /* 与 header 相同 */ }; + firstFooterCell?: { /* 与 header 相同 */ }, + footer?: {/* 与 header 相同 */}, + } + cellTemplate?: (value: any, row: any, column: object ) + => string | null, + headerCellTemplate?: (text: string, cell: object, column: object, type: "header"| "footer") + => string | null, + cellStyle?: (value: any, row: any, column: object) + => { format: string; align: "left"|"right"|"center" } | null, + headerCellStyle?: (text: string, cell: object, column: object, type: "header"| "footer") + => { format: string; align: "left"|"right"|"center" } | null, + sheetName?: string, + + /* CSV 设置 */ + rows: string, + cols: string, + }, + result?: any, +}) => boolean|void; +``` + +Table widget 的 `export` 动作具有以下可配置参数: + +- `options` - 包含导出选项的对象;选项因格式类型而异 +- `result` - 导出的 Excel 或 CSV 数据的结果(通常为 Blob 或文件,取决于 `download` 选项) + + **两种格式("csv" 和 "xlsx")的通用选项:** + + - `format` (string) - (可选)导出格式,可以是 "csv" 或 "xlsx" + - `fileName` (string) - (可选)文件名(默认为 "data") + - `header` (boolean) - (可选)定义是否导出表头(默认为 **true**) + - `footer` (boolean) - (可选)定义是否导出表尾(默认为 **true**) + - `download` (boolean) - (可选)定义是否下载文件。默认设置为 **true**。若设置为 **false**,文件将不会被下载,Excel 或 CSV 数据(Blob)将通过 `ev.result` 获取 + + **"xlsx" 格式专有选项:** + + - `sheetName` (string) - Excel 工作表的名称(默认为 "data") + - `styles` (boolean 或对象) - 若设置为 **false**,表格将不带任何样式导出;可通过样式属性的哈希对象进行配置: + - `header` - 包含表头单元格设置的对象: + - `fontWeight` (string) - (可选)可设置为 "bold";若未设置,字体将为普通样式 + - `color` (string) - (可选)表头的文字颜色 + - `background` (string) - (可选)表头的背景颜色 + - `align` - (可选)文字对齐方式,可为 "left"|"right"|"center"。若未设置,将应用 Excel 中设置的对齐方式 + - `borderBottom` (string) - (可选)底部边框的样式 + - `borderRight` (string) - (可选)右侧边框的样式(例如,*borderRight: "0.5px solid #dfdfdf"*) + - `lastHeaderCell` - 表头最后一行单元格的样式属性,与 *header* 的属性相同 + - `cell` - 表体单元格的样式属性,与 *header* 的属性相同 + - `firstFooterCell` - 表尾第一行单元格的样式属性,与 *header* 的属性相同 + - `footer` - 表尾单元格的样式属性,与 *header* 的属性相同 + - `cellTemplate` - 用于自定义每个单元格导出值的函数。接受 value、row 和 column 对象作为参数,返回要导出的自定义值 + - `headerCellTemplate` - 在导出时自定义表头或表尾单元格值的函数。调用时传入文本、表头单元格对象、列对象以及单元格类型("header" 或 "footer"),允许用户修改导出的表头/表尾值 + - `cellStyle` - 在导出时自定义各单元格样式和格式的函数。接受 value、row 和 column 对象作为参数,应返回包含样式属性(如对齐方式或格式)的对象 + - `headerCellStyle` - 与 cellStyle 类似,但专用于表头和表尾单元格。该函数接受文本、表头单元格对象、列对象以及类型("header" 或 "footer"),并返回样式属性 + :::note + 默认情况下,对于 "xlsx" 格式,日期和数字字段将以原始值导出,使用默认格式或通过 [`fields`](api/config/fields-property.md) 属性定义的格式。但如果为某个字段定义了模板(参见 [`tableShape`](api/config/tableshape-property.md) 属性),则会导出该模板定义的渲染值。若同时设置了模板和 `format`,模板设置将覆盖格式设置。 + ::: + + **"csv" 格式专有选项:** + + - `rows` (string) - (可选)行分隔符,默认为 "\n" + - `cols` (string) - (可选)列分隔符,默认为 "\t" + +## 示例 {#example} + +以下代码片段展示了如何导出数据: + + + +**相关文章**: +- [`getTable`](api/methods/gettable-method.md) +- [导出数据](guides/exporting-data.md) +- [为字段应用格式](guides/working-with-data.md#applying-formats-to-fields) diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/api/table/filter-rows.md b/i18n/zh/docusaurus-plugin-content-docs/current/api/table/filter-rows.md new file mode 100644 index 0000000..e8c435b --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/api/table/filter-rows.md @@ -0,0 +1,35 @@ +--- +sidebar_label: filter-rows +title: filter-rows +description: 您可以在 DHTMLX JavaScript Pivot 库的文档中了解 filter-rows 事件。浏览开发者指南和 API 参考,查看代码示例和在线演示,并下载 DHTMLX Pivot 的免费 30 天评估版本 +--- + +# filter-rows + +### 描述 {#description} + +@short: 在过滤数据时触发 + +要触发 Table 事件,需要通过 [`getTable`](api/methods/gettable-method.md) 方法获取 Pivot 内部 Table 实例的访问权限。 + +### 用法 {#usage} + +```jsx {} +"filter-rows": ({ + filter?: any +}) => boolean|void; +``` + +### 参数 {#parameters} + +该动作的回调函数接收一个包含以下参数的对象: + +- `filter` - (可选)任意过滤函数,对数据数组中的每个条目进行处理,并为每个条目返回 **true** 或 **false** + +### 示例 {#example} + +以下代码片段演示了如何根据输入值过滤表格正文中已聚合(可见)的数据: + + + +**相关文章**:[`getTable`](api/methods/gettable-method.md) diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/api/table/open-row.md b/i18n/zh/docusaurus-plugin-content-docs/current/api/table/open-row.md new file mode 100644 index 0000000..4dc0653 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/api/table/open-row.md @@ -0,0 +1,43 @@ +--- +sidebar_label: open-row +title: open-row +description: 您可以在 DHTMLX JavaScript Pivot 库的文档中了解 open-row 事件。浏览开发者指南和 API 参考,查看代码示例和在线演示,并下载 DHTMLX Pivot 免费 30 天评估版本 +--- + +# open-row + +### 描述 {#description} + +@short: 在展开行时触发 + +要触发 Table 事件,需要通过 [`getTable`](api/methods/gettable-method.md) 方法访问 Pivot 内部的 Table 实例。树形模式应通过 [`tableShape`](api/config/tableshape-property.md) 属性启用。 + +### 用法 {#usage} + +```jsx {} +"open-row": ({ + id: string | number, + nested?: boolean +}) => boolean|void; +``` + +### 参数 {#parameters} + +该操作的回调接收一个包含以下参数的对象: + +- `id` - (必填)具有嵌套行的行的 id +- `nested` - (可选)若设置为 **true**,所有嵌套项将被展开 + +:::note +若 `id` 设置为 0 且 `nested` 设置为 **true**,表格中所有行都将被展开 +::: + +### 示例 {#example} + +以下代码片段演示了如何通过按钮点击展开/折叠所有行: + + + +**相关文章**: +- [`getTable`](api/methods/gettable-method.md) +- [展开/折叠所有行](guides/configuration.md#expandingcollapsing-all-rows) diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/assets/add_remove.png b/i18n/zh/docusaurus-plugin-content-docs/current/assets/add_remove.png new file mode 100644 index 0000000000000000000000000000000000000000..81dcb52eec4258eb730f611a33e6916fa6969fa8 GIT binary patch literal 22594 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 literal 0 HcmV?d00001 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/assets/apply_filter.png b/i18n/zh/docusaurus-plugin-content-docs/current/assets/apply_filter.png new file mode 100644 index 0000000000000000000000000000000000000000..53905a71bd47736b88a58f83e4d20325092ed85a GIT binary patch literal 133304 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 z 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 Qzef?It*NI`rDh%RA2V27vH$=8 literal 0 HcmV?d00001 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/assets/filter_applied.png b/i18n/zh/docusaurus-plugin-content-docs/current/assets/filter_applied.png new file mode 100644 index 0000000000000000000000000000000000000000..9ed747904e49d464d5a04c9f943a6302ea354668 GIT binary patch literal 120103 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�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 literal 0 HcmV?d00001 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/assets/operations.png b/i18n/zh/docusaurus-plugin-content-docs/current/assets/operations.png new file mode 100644 index 0000000000000000000000000000000000000000..80f6f7998d8189377f2528cdbf0d941c32d4449a GIT binary patch literal 25098 zcmafZ1yGw^*DYFFpg>D;Z;=*&mQchM%9R&p)jDmuC^Bn!j zQvS{PpAWaHiki}E|Gpj{A8&4M5D28C2LuX*9v`1vU0p*Ukfo)iqobqy`}?e>BLxM8 z%gZaF??W)yB@&6exPZaoh_kcv+grG#``#oSYmJ6AJ_aK_HO5y}euJUUzr5xw-lN{=T@& z!Yt$ldU+Qb8WtQJVrps%M?M@J9RB*1pOloOp`kIheC_Dyq^+%OXlR((eCp%ltLVE? zR#p~PcBC7!Rn>o9Q&VG`yqnhs-8eu*R~@hJ!c!Yg+S@w@7A{o-HdAXiHGlqvUEe4C zK9=@`1Qj24&%mOhqK?k*G8zy43J!yUg6f7Y*4H70;Iq9`WcwuSiH-F79mDXg(w_6S zwl)d(^`y#`#lJV#@cZV`bBEO3=;&zgyn`=M+jHv|0R?;8M~H&+8z%}+Rl6l^K(>psvBtcM zct-Dc=y3cxYo&n=+tPC9eDoIy^S3|yzB!4Iba*&T>;RaQCN|+ttG*F?qmGZ24{&4B zHz>~o1NmIo(4w~AV#6BXznx(ahy}-!x=#Y+qXnd_OF__k`fV0_(fFbT*$Xf>R@66id0Q2g zx}hya=-n>gnKl4-(Rmer)S94Q+%4~m}i zmDzdj1R7cFQ%D%to$Rft2k9F~mys*mc78cE2xdHbI0Py2;_@-PV_(di-J|fX zr!+7km++uNTE`W}>>|^Yl$C@hX}RFv9O<4#Zy|OvaBj;mQo?KG@LXWFIy+*97aK^a zaHA=Sb!8TlxXQr~Kz!AHJlT%BwPMmbjn7@h7JJLLjiNCC3sg=j6cK17k2? z32TFlu9E16xl7FVu!$u2th#)~*mKe(BBq(r&EUaDBe+h>1tj8>8k(OB%s zH>-8zMSq$*8|(^%UJ}vE`F&2NRh!=5zBnr#P!_80%}xHYT@Sn%M<)++HC;`vddzgBl_d_NZ;AYeA0Be%8^P;#)eiAbk=t}77y#N$x27DdPtZ4u}V9`WS0Ih z=(Jii_u+J3)fv-(bI2ij`-uDvKvtro@Dt7eqpxG1qwnW^EJ63kWlr26M{f_Ip$i8| z`)TJ}losiu@kCV|8?0aAYiDdo!aN6I$---T$CzPorifr}Jc8M)><8X;M{}-6Dc|s(H1!zz!XO?B`SQKf4j}kJI-D% z7K(Nu4Q3Dr;|!6&A8PCYZB}M#lwF1S{4=bEAJWIS$vp5x{Q%d0?b>Tt%{Dofx`Dr0 zM;p7;Z3z^03BLKWE-z-b^4daXJ8i9u zL_wpVULz_SD_eL69Tec>R6%pZDZFu|PyQ^YQwI4rOn&>ECmL zC#D8LyTbX{vaNh|WBBSiM2a#n(#xK-T#q8&b`o0Us6E z)JDE6ZlgD{{#LIWAx(CW-^+LHyqF7G4hSgT&5{yPet}Be`%NfJ%IJN^Km}HV0&h0& z>D^QDX-#OCU5=2YAI2^|5WnL1nP~srBC|S4B2h&eEkGbjYP*gz+zAUE@r5hC$|eNo zqyM66xD%zcmE`+9`^9{!FNVlM&jZh`wsHKu6`TM+jstFyQTO#1+-Gl0dL%GE&WrCz z4HeKmhrJ2?iR85&QjEO8OSVdF{c(`?}HMbh*Aj4ZVuYru%+R>a%mmnR7u z*!Jb>dXF4#$8#w*2Lj8gmgOvB+eLSzcPU9rrjF{Z(sy zH|`s^XL*cW`>k#l)&*Kx?(75+%^lBFlkz?1Z#_PfYP1-1G^JFz!8g4-IC1Mj*%$c1 zk+w%B0@zXtgF%0Ex}_6%|cZj?}TGS0%1h7nu-KWw7OR08+6Y+_(my(_@U4K_(;u= zfIlwKDVn*2=nMEN{tZrGVl?+}ArjNX+<^M4fdB#O@?hs*?+V;(I+}E{Z{XeDf{v6h1|v^Pc(|#q zqADsO$VAs1Rry@n)C}+V1Gs#CF$A*|>}^4PsuSr&!;RjGbL0MTcXaK3RP^u$ecp=? zY=7Plp5P?T?w+Djj*>9pN&G%*?pF!tj{Si3}ScB(|5@jZQ^1i z7}HWpShhyjby<6oawxnMM}zkB_#`Ud!e`zFa_;eAE1IMC@`HgB17zCNwG+|D`hJBN z;x%&PLo;&ce<)lqp3=b1pF+eR;)J(U^EO$+_%@pUgPMST++l3{*L5UaD#14<_+QoK zqmGAT13Wn?3z2&#>;%09|LP$rvyrAmdaYmH9gIM{pKK7D6}c!}p-fdUYUBNar@bX) z^nwLe*+d28p;MFTg2G3{{=&T7_ofi^Z5}?^Tr||FoxC*4=as0{CF_ikMq@AU2YGIc zb=B`1DPm|bsKvWBJ?}Z=YXJ(3LW%ZiH>atn;yytfcsC)7KxA?vqwFV+7Zx#?njGFt z{Gs*ev(I0n+YSl71cQ2HQBRIr-I!|XDit76`2w_b-)e zZ#66`idUDXopANmHX&bxZE{Oaj`k8w4u;G(7>Gf|wnI3v(z$voTKcVdlE{}IG9=F( zn72tMQ}y0B3TGt-m~7A~4DBrLt>viE3W5{RA+raD`i>d)CP_S_oa?PcbDLh$n6>^Ge@mqn`*Rk?ZpF>4k2P3t zrIO*slmC$FyIJGa(`dRR00TpHKdLTNAoBDy)#qn;^f^PmS>ZiPmlhRQV#7klA6^~g z6%MZy=Y3TFgj#X5oF;$C)zCG|IApaD^whh_pl=}SH@15ucUgP(TP7?Okx?!Q@_ged z79H#MDSHQ#AfC3mHN6-hFC2^_qMkO(3T~jPh(P=BSlr1cf3k*ZlLTA5ZQL3i1YaH7 z!D{2)E*6C2R@;7l$mkFR$-l+j;1hufp_Whe(%Rzbyie5+AkC9_^HrOf+3JQrPD$F0 z#tq18q%phZGI3etTW<+SmcYx${NnCILvBmT{o_1~X6WyF#VvKmikE0xkC#0i1j3VG zuh$NdOb+nY8lD8e8m^jhGypr3^5D#Hd*m_K?*!{jA)&z9ir2Fn8*RR zS+A*wI|T%gKP)06WngTs?y=RupT_K0zS+*pfNyOnhMF9C7IB4nQhtNbuN=AE-DANnKtzt*F~iljarCusu69r@2N%WP zBv)-WyVoUXX1o*Z6f&;h*ca=#*xB3`cH6yr7;Y*R{(E(Dsb7}O0RJQw(ZbEQO(39`X&ZODiowv$M zw7-Q8ab({G*v;94lDut$;QDu4pwj#`-;1b*SjI;GvrbJWV1`y# zOtv^uewXE#7l&t%?6}McERp7Iz^bg`WSJwJVjn;tX!DMqQ=`zk7MzP!cwt0!7K8@V ztQBl*7`fVAKeVYM+4izd=Qv|r5E`%eDOH|Ry%r3h@~2K5YGSFip$B<)rdhQ75t|ITZf3YVG6+)5&Q20?{)-7mP_J-tiq*bW?6a3O+}W6XY!GHe$jPW6u+!2cQ}y5 z<0%GT;8Yjb>SDHFkIg65dVo{XQbrc=sa=+ox$J$w<2=KR7%-E>JwXMprRQstGCKCD zm9)SrPKf@;tsvl3lKK(S&)3D}cz`FrtjCX(7JL!hJBJ!F}u)Nr4vHC!B=v zqIc~JOKCCD1D+=QXr-mLr z;kbe;ZEn}jk_4S>NpJ#Bu5*l~U@XZ5Tw$taL6-m#dtMiGH~W1$lK$?C)uhC!8J>)L zg08#4nb4!fAMk6pMuOV9u-I{*-{4txm)7U!-+K^fcb~zNH0;^-!Lbp0K&sYwE>@Qa zLmpNKUnoC6gfO|o2`nly1Sjqhj7HJiMc$5dZhP%N+$$i5qQ-(sXNzB^#Q>Bi&&wB$ zn;oL}kP#rHo+DxSUp~BI%Kg7?(=%YH?B3%#u88l37%i_JrQRqd8obb#Az|!pB$h~! zD3;8rb7w?P=nhD9v3Q#e{VPwuf-j2Jl9X?9ni^WPbv$*MdViG&y&0eCd|2C%0Ytw) zY`GnA#ygiS(GxaU+WMZf)kP7}vTcA()1v$3*NaVl=^@6$50DGayC0!>uPQmDvw9aJ zf621#)Y|T}QAm-o^3^nRnq)7VY+%ceCVNXhcfd}!>t)O`j~h7b{{UI64hGnZ@-$B) z)aUfPNgOFHC8+HvfV)4`%O=H-?+M}=LI^N5zX_jxqRadcOrn?;{1Obz{ZAbCSo$#i zk>2k+@V)uxE;7*XtG#{yGqdyk^_ty{05zPO*aVMoc(K!q zD|qsozqY>^C4YDSS>aV->+0in#P4^&%-(Q&v3~N%p#%<1_?%cqW!k6$*VY&{6?_5k z8(0s1bEWC6u?2+7kc~3B1t||566{{IG%n_Tsl}@sF8)dl)`;0s>8estSfn}ptnH-fI^E;jsDGMowPQrT%M+&Yj z*|2}oFr0+XAk>Yj_Pif!+@G<$ME^qiQ(E>tT?heox~9CwFWP6N^Ad&2s;Yq!VJZ4U z{R%)y#O{CwN%CWR8)t$B^@f@3pRY9>w~+}^?w) zC(xRYN+(Z%#;9b!wFitcF?pj&N|_9cndHXyNtr%p9|WUZ@2!YlcwhCH@Cphgi2~%B zXpS4nt}$ywf!$z>FPz`XrzJDXH{g{M@M}y56L0`%yvO9$XDR71XiBSH84knU=<>!y zrU!MK*0z#g!jzbh)$jhdC!q?|ev4#&Vf;JE6E-A_=-7t%8L%lP0ou=KFgfeEX7WGQ z{9h~EA#aa>lgVuVhMxvA%Jr18prq`wEa`+$d`3~8Xc`QHn*z_$MBOH;m~7uiZjtOM zo}~)+(bCHs80)`(L5tz9KAQ16)Fcm;!*ApH>mE#ZW9KjJX90o1u91FNC*S-op0=b7qrguBG3E>*bw9ynjH$@4%d9DM$b+!D}oQngxDi&g43M0a#8sRM4|uVCnvP$wq4~=&!I+ zqPbt%r!B8XRhu|}s#V#mS$TaP*;qZ?Q=BUNKX#~0n#;kJw4l0}Zig~x%kjQ~9SjPQd*Ue&_U%7}o>zlQZ7C1R2O;}`7t_K1D3Asd4kuCLiKlFOHHJiW!X__{qEK| zH#Y(rq4As0mNOQiG{pfUk-o$$^EeFXIW}o&HOtypqo$a1H@W~-3@2?bbg6nHn}WaO z_Abb0a9X;I0()6dWhq6y|AH*lml6HnvH{fXtOG|j9MP9%1@C|LI_$RF%^R_M637!b z5xnkA<23u&2-2(K|3;kv>G4u5t}dS!@TPjG-55rVas2!xl+Y|>=s6ZCVPP-QozpGY zqp>dJ1B;16z(>%ehl(taooE;Di<+ZpM$TQT+Z&OexU=pect@FGTqhKl4GL_PvY;<40xB9eJ^zxh*)A(3yMPM>h-uVHX`mS7KOftjgP68hi+sxR!GF6$4QIR3<>UV z#;(gwc5%jETUjyAIml%6Mt{DK5U2qHKc7pSB$|v^lXl*WOCqitr=b}6_|s@LUbQyj z-1t*g`zqm%-SQ ztz4ihk%u{e_|SO*BoYC3ou7J%T4)^bTX>BP2aqXgzm<#Kp9cP1`@U3?TtmC-7K2Ed z?|3AVv+Q_yL(Q|bIm@O*;OwT<+0eAVY;K7jwAWaTXupYK9BL@4cFIUB`*}NF2{mY@ z%Q~_OqZ0a1kF{JGm^91v^7TiM?Ur?EGPUUlHffFtJ3z)zt7^EvLtZf3MvQFhjd!01 zudtn$#zDxM(v15hK3CkJBJj6|)Vg-G$8S-RkRz^G=WLt{U zLvF#?XmCtN!fSBil|{#ELqmuPaD8%flu0Vb^=sq5-N_Lo>gxdr!OuBJU{oUcw;5Gc z+d&O|t&r*L-r-AxPlMcj{TizedWyZjLcjZ}19~~L>)ly@wY=0%f4`%Y8}BcRtzR<| z!MK6L@v07mEX2fFg8Sy{@#ycC$d++)dWGGb_Tq0bGh73TX8Ow2&NI{!QJq5WJ}og} zo_e4Fis)(@;eMCcwP7KsY;) zjLvIXfj6{Kw~X@120^&>b?UQp8rBbPIDyUZ3$Ppn>U(!S2=RHFVt;aieEco6L{FMx zl{y4s$zVH1DWEpwRQ{FxjD+Jm5~d;iH@-JDPP4+>>&MKEA2FQ)nh{S~Z$1vKBNY{< zN$mB$U!+L+xuapM3V&P=YP<4rHdX#upir8JO5^rF8IXuR-ogIK003#riS_*NYecHHr47&erhI&-4@g%-oe~eFV$LH;jcMi*qGVY;%rlW!-?AZ zO%qd7d*CbDexNsZ5jyv6#S~88bIc>oS8MiTR}IZvBSJ$7VPBmov@>&E!Pl;l$~WG5 zT8EIHf`O)$I<1I(FVbWcF02XJFqPT@_vpx#m0s^-x^29svl z_Mk9@41e~JRmd70P2tO(osZAc6e-S3Y!?gp0Ugl=8Zl+dNE>!N{dcWNV*bVI!)qMa z3w?BMeF%0-6v0srImwR0Z8#%hW_^gU`Nau23xKnS;7x4Sjd$X{>}Pn^PN)s}Z|%F3 z&;q|OKDwB8BBpPQAWJ(S-y6}}(W}>2_WaT1iwx4tdQuP+E;NP(4qhC=S2Kc(*y4o| zUmvu+_v_UtQROoCd$r>r0rz}$95P>&+A%tBQ_CSQ8azK@6ZEwEYZ3|FV{dx|wB4uT zo)&6?T(dmLiQdpN42#QK5t1NGKhPD~1O@s%Ge6U7NP6QS?uxXIifD1-KkC74%Me^% zJ)Ar2zFn?~z)}wA3E$D?Si<5{A&zG|_xuMr$!p9;4&&~kx%$5tkP2uuuoHUi%3L7J zH+>fO=@?haDx8_&z4h8rQBSti2C8<)aBE6oiGTbn)?d&T%O5n-*Y9?f+kZK^s2^8G zmU(On^}MI)%YPq>+eU$MZ+HJ~5uMfqgO?MF=A50~RJ^%Q7zJM&w;;TJWn~YalGF68 zF<`F@j8GPeDx=kEz2WRpxGar1F}a$H`SkKh?yY^VRuxvHfR&D~YF)Rx6zMZwbd?Cc zaRN-6Va5n!1W6xAePdC`Zgkq#sNs33$MVp|m{oW39XHqLD;r-o;0W0dfVP3~rzNZQ z&b0(YycMzW%6ui%Y+ByWd#{#L8dhdol!=fuP%Gk)g?zeH($-I7R*@ldz&f+*UF#tT z-ACc}KHJ1A88#md3Zr?S_8D5fDcZ$m=bW*|in4Y>CMyjs{y4uGYB2$e!=WrQJ`_CX zDMK51@6dgiRAirET<*qCG;~|nsveN(XZ)*rp*gf4`I0!o)V)grk7HXQQj&_F^vJ;I z?@VfQ&n2-@?~La5-e1w?LkoIWrR3@R2SW3?7Xqyv{g2suE@oMVR4nD*=d2q?#%e3# z;mbV)^WV17hu2#(S%+8~SckW(KV6O&LfI#c%oB0RcDTCeb|1O!tnvITk~87h&x|;F zEouEgex|Qb?6?QiYR4?TJN)9Irj&5@q6jR*ZGEC3yt&K#Of`cQheY#3CGGFaD z+Ygx^IR7PJelj3*4WkC&!Kug$CIR7~6z_NR8~E`g7rhlFdGs&$pJ!9eG57&_aq$PM zu>_@ilJzI}W0O4_{4ORCS7CbTA_APGWewENKegT-uM0LaQmodOfOxYuzTl+(O1*_r z>~Up%YpklFqkDTOnTe@Fl!DwwZ88R?B=V>NA9sjZ8_v9oGgfwTF0=OgSXiwz`!L;U zMoIDZFB!xJafl zbvt2~wO7~wr+D+G7K$3r*y>+OeB*v=%|+aGvR`WqdF{ig3LziZk$qi_#uvG6s*)tW z7*?!S%HG$i>#%>Nmlld6LdC={R>HnC#9 za6Zo|XMneT0yxNTbugAJx|50ir;e1u+n#h47I;JV`Lad}AFSny?J+XEybdzjlP=lb zq1OXTNtPWEvu7RhyQH%0oVX5#lZ^d{596Wp`UK9ZK9w9X=;)=}`tO*C^%qMG8= zL=WXc`({f*alVtqycjvM0}npe{knyHHs7l zq@+&tAvAtjZxM=){Bt`Z#?0#}j*UBPqjwhbmx_H#?%h^`cHN0QlUIAOcDA99w}Jy@fC^>*FJM=4%n1O~0=< z6E1$15viQu)14;mGOGoov(+)!q0c7G=8Jnek7ue`y1q;yazsIgIMwE$2@iQAheEi! zs6&JGlF-r7EbFd+=ysm)^$Cj6_TRi(O?`j5rf2#tPaQfbnM^D=Cn-1&|Hw4Qju1cl zd7xzJn3DJc$z#8#96~bn9xRzl#DTExxG3$3L`2x{QlhyjU1mK64@KU zDF3rgZmlmK&{+RMk z)h5;>ONUDdOwUzthBUC&eYZIpe3-&JMj2IXXQysm#P>c=-4Yf7UvI90pw3PsLRwr0 z2C=6{HyPvB4W8fjuWduN+>-K{gLoA9CyNO+l03^yXPRi&Qd}2#xXfF6J&#-!GT1(S zl6=K>LX~?k5ZcN;(=||%$HdCR_DOTY zxQrhM3d{_NT(=il*=#dZUOy{zA!kD}3T zX!m2gCM566vjT(3Pw`mBR{b5y1^79U*mqqsE4uRzke6a3h8PZ8*=lRE3|c}yoZW}z z7`b1}H*g@DOG&=u52fq?J*$__{B_tUkJ#j&$j8kFOoJ?yPWD^=hWr->z|H2wB5dBL zvZ{Jz@?g|RwvyAR^VOkUaKi%ifpfNW!H%*#1P74*9dOK%XaAeuOE69#)Bc*@?JIscgCw_vQZNT&8z zXG9Yc-~#L@{yYl)5hw@Imy-qg5hM-gw8SDL>J}+Vo>}crW6pOiP~l{gqBxgN%*dLY zPU)o!&V<0&z&(F@_vK1oACVdvPZJW;+yLYyyFI&Y{WSHJuIRr&KKhY%Qxh(kAn zBs(?(2Hm5kbdOr8CVd+=?jv@5J`3|9lB86`D;G+JS=V&#qx=fGRrSta ztFxgpj~_q)%zdXUMa+Sk4EfM7MqG=_m#q@KI{4yknC8FS08X3sVgyLg1zqb){!3j8G}E&Bf)tr#DRNNZ>~8DjJ`-Z zSL39RVLE8x_XcYBE?3g20lBmeiUpFuU}2i8&y69@w>^>&p{KxCREc8a-!u?-hGb~9 zmRB81<+jf`)6J?{Uv~9;HVxmVR(0S&$;VJ|AUl zTX=sKtuVh5zW>=hHD7;F0ao(MoG!S$x_-U!LmOfcNUc)hypif_BtF+fN}%x~uiD<# z5_YmL8@WuHoyYg9w|q`TNdJ$Xv0^QNI43`P0l?+9VejJopr8$zRUy4}%fd`-%4|VA zYtys>VUhAr{Teih=r);3?f<8K_nPn{K_wX`QTiH@4!@JnM}I?5Q|h9+=uvyp^wdiu z&w9~s`QzgH$6(X48I`0?FqErx(;zc#Dca1%gMmx*_oFqmSD>baucMWpnEx^%0}T z_*c@G8avfcQ*QpW)IkY-$o}=8W7fY`AW@Wz3_*JFuVgEEjMKiE;JF!A0z&UWHNME+ z&@~-Jt!Jedi|!X%k@{&Eaz}!4yk@mDh->tZTU#6m-{}U_K|#qMw}5m-#eNG5?ULfKlfr!`Q|n#yq~7hJKXZ-<_88V0 z(Zc(CeOi!Y-V~MGA1_^?T}I9NJKb}NtH{b%v|3k;q9zN)rC8?VqZla8U0YPD{`hwq z;-%-FXx3uOc zBe2se)g#@WF&kOM>l#eeKdr8f%51k?qD1vNN0*D4*s1#8+X7L~0({HF6xL2nuyRce zc{6Nrga|h3xN!x9b>7iywB*8;rxQM4S3$!z?u3;gPY0mgi=FDUprsC(nR@WNj8b4G zfp4K!zO@a8=F4a0qy1Gffm+v#5%%VXJNg4C?p`d;uV|Tx-K)`q+r;Z|ORQU2OIviX zM9x%#T9cX6QuvvC2};SFj2SjiA2rR-g3b1Kb20FWqSlCtFz_*MD_Wsx92n5`3C)S! zsKj<~MJLYi-%c&6a{Gqi1`9wIL**L4Uc1R4H?_odS>I4KEi+$n)95xj<&ZY2r&O05tD+w5nZCBVT`=w&T^6TFyw$?Sxrv61ii2v7kI1~% z$Kv7j^>ssWAhe_8YN0tL5;Nb}S&IaBlig-ila2KONw?S${&=@g-rU@6GKLmAv*^fy zW#~{~)4cGkOWmxxPJ;MCgI~t(hyGw_hWj%*W}A=O#WPWZ&nxCouwLTo{CI9hdeHFq z+soYi4iYzZ!b>fr@0*n!mqr|f+gvTB!J_y8LRZ2AB;4J$5pI(Qt*oC{J@V~<*GS({ zWwqiU($hnpV_VfNt_Vr`sRMycsJ~-#%ACr;%+0dj>&YE7a0=7}v~opGv+`8VcmDic z6ude88ysiMQfI>cxx-Sh_`vJq)5A0i+jaIgF9zchM7VdESXS2#VW79wV$**vsE^GF(W62T%#xsVjJS2jnG%Ru(i5a>Xn>ITa7gx~sp-Yoj zJK48NV$>%X^55DDgE0qMUlgeE5xoGQJtHs6waX1orwzL(Wu`4D-G_%r#6 zB&-_Mre^1KFrdudthu6<^;qt}rts5zl50cg?2I*sEo$!fn2s;2*nYS7&m!#0hBz-= zzeo?-qFKFBmX@(*!QSeYZ=76wsCRok^FD`pWkGKd&9&($=Opv+a(p}boiSu&MWWM3 zS|0L?$#o*(RKNaaP9P*utw6P8a9z(HLuJW)P`Ny08!H$DUSWt0y3<>S!s!Um$ zn_;AobXq!BTz#$&QgX6`)Wg8~Wn&73j3Bs5Jc51TIR>{GqU<@FR%?-Z0(fSYWJ#mj z?d;pEj>6T1xd-#70~TRWEw9!d8mk>$18PlTP?`S>w)=b6_a&T~rXMJQ2b z{|=vNTF>ZsBAohBb*OL*9C>AP34^l|z7%6hN~)0eONztI`jsJy98QC1{$Db9K@FN> z!NvcE1Tc~Q747A=llGk|J8E8|pb5*fH?NfvdZS4k$!}UuI1To&cjPKo0hFu2AK9+9Iq=V>e4@WPpuT z;KD*a!>DzKYg;DI13CH`t}rmEdPsn$8_L~WnnL;8xU2>2|N7fq8tKe<$Nep*&%qHZ zh{S_?`+KnsWgk*Db;}Fmh0N3KX9&ERn?;Q^DbB`wK@|Xxl`7v`P%rdlCWHRaM%x?; z==w|px;!7G@x2&k;tRxW@PS_*%q~;oF@Zp=tea9^{#%;Bb5+%?L?xh%U`w{Cq?#3B z@ly>)CeAdmGx^k|Agd1O9+dU3dC4*PbS71Q<;zR~o+|D%1I3wAzEpOT3Vxe;eOz8B z@l?T$_G)fKE34d+A-@TnLrhJHhkSDI*UP73WM0jFLyzj+-VnrOTkb?!m-^wVB(WpF zn9*$)%GdLntV?E=4lW*{2dT9*eq)S3|0lk6ULvaWZN;@}Q}NY{6ey-g^%NRw z$6uS`>m|`JHHg?{-m($xWjzJ~0m~imSeXM&)5Xqa3vN}XN{@=B(;_$ZXYvQ5z8&F% z?rvCkz;P%CKJ}@nrHCQTs?pBXy~PdP$ELQ)W2NKMs%lDGQx`wE3*1Rk3t#sz_^CtM zV^a0A6q++em18{Rb|L!{pn&l==6FiQZ71dZLm%GCcQq?<`UnrbmCFjcS~1=kX}tF>CY8MRT^%hAxqbc{L9j; zM1OSz_`v~5VBky}6GL3%SrdtAK?7lBgCXop1Jefjj=7B~BdP6FHs%*FK{{vQ{9Rp? zGWf=^-Jd6cQP`cR34b>u#!v8lNWB}+rJ| zk6jwao14R=KpB=(%6|orzv^UjM~kUC$8>sGhntjM-+E} zG#rG85aVP@t#C;1XIR^<1LmN?EXEi=#4$$n&z`Zb!xrN34zDVYceCO?F}BUD*FTy( zKnA~zFszmk@DIx9YeaAkxgWCoQ^<--sg@|yvEQ4KLhjaVG@I`4wXmEFd55BCIoW&{ z=Gvo2m+`q==*j}NL!^tkq&3sm+(a-TVN8rMw{v@CjM#E2uOHp^t2$5>l+yTI6xO@M zg5W0PBNfgj@?rSshc(IR>A@$TibGlLdlrD)65dy^X|By3jU!zoL=KrkCuH%;TBo?z zkM?E7(9+h987;Nq&U73ZNuO(eGP0hx|NfOOD4^8i!qOu24;)_yQhW_29}@R@!X?^b z0R=*i7MK_9egDfcU=rekJYsb&D;bR-3NLCb$+0K1u+* zeBE*A)i{YvF3!69CVV{tAF^v+&b-f(KSrojEg}CQ@$YfM{K*`OQfB1Jwyms%#39TxG3c{A>|!?r;@CoG~n|E^EYreIzbQ8`7&# z3k2!*S57I(8x@ZISM9FbgvU=Wa;smjNn#MyA4>q*ET!<}5*08V*j(A@=i!rx5Q*qr zCXAW)ng5`veA2!Fi$Qbks=^krBNHSb{Bli%J|usXBP~hk!kV!B?#csBN;o!szPq_! z_jwX9>{kNC*}NdlupOh6Nx?c#wesR^Z4pAGwsdVA-XRxsR7g;HDG4vfKX9C1jyc4N zX#?6SefVDI`QUpB_<56yLMvR`>Tf5^jY}JW?K_2n7C!mHMY+_*##f=dS9n zRo_UXxikYB61Y_*AWMZ-jKfETM8Q9Jn(Axn2RUu=qob+MID}RO1UzbZ2EPmO@umAr zaNlf*9Pf zN#Tk!n^JGj8~(uU<>xN0h%T`IZWqhD-or{ZmYyW^njjn0pXE)Mbb!Rab&c)J+hyV+ zYrgKX(K`#o6(1|Fg(}h9Ak^H*2F| zR;|`$X+qknwmCa5Hv}Ip)-JEF_CR|i*;&~)M0|@)!3#$yu_&&8-?F_iOi>C3%Uq8W ze(u9~#g1d2s~FRvCj)3REk*hCzdHHusHVE@TR;#55kvxr6crHx0qMPnBGRRV4xvbI z(rW-wqzSPh0#c+HNrXrZH6VznNGF6IFj51Ck^~6t1@*gkyfS|Gj`vr_*khly=9+u0 zxz{;4XO~{&`&qPStB0^r!S5P(krYwUO(=^eHJVo!yXTaAZ^iTQ{W{KU=1P0@O}_)( z^YRbPpR^CMQ7b@jZ5UX-uvGsBm|?nta5tVN%^YmZPPk`P?!f4yTaI{@AeZ$PB zTBbFkRSZFZH>LU*3$Ky@|8NoC;cH7b&yX5#;GPC~GuT5Z^HIZEE25hC@Wue%5 zHLEBdl+HPpw9CZ62*bv|hJFMVQCm;6Ftz0o+XYK;?l}%~JB~A5#};WphLl~;lTq>2 zB4tvQCMrqGUem2ZnD<5?KvAiFR~UH2Q*M4v1WzJS?2|1Tl{o8z;$L#K4SGRrlowT3 z1rRKsNWv6c7zFKh*MX~Tga{$3^P|Rzz;m`RISld+qD%f&N<_ojx7Jy0RitHKxmb-w z93+)E$1oyHa!Zeld`8h10%2D;vs-p-VId~errsw19A+y(Gbr;T(((6@B)D_QC#Ha+ zJ!A#&EE_Zek&94zac|`GqNSEu{3x(v62P3LXv&%or)F4aFeRso+RUreSa`i9h~5%d zpGC6k3r(x0QM9AUz!SDG;-J;5Rx3jOi5H1XWPNpt`^LOa*`RtRjOZ3AiBr${O7A-Q&t*&bvr(SjyTC{;p?u+0kxuYz_SuvD|M~numh&jBT#l zy~E&xgM;Cbzcz@i;=fjq=56K{FZ!N)$W^W6c39=2#I74;`csxAA=uzJ69z8MSgT2f z0BEv^Xh8l`^=d0V6yX|J7XIgM=fH(vAH`wQe(iM(&(cTzvv%hPj{7#~waYUVU5vP3 zdY!LW^2KA`E*|b*_D!$q@6GzhZoE;B0iQ~L={cqzVx;b8wi02ERTJfF1b69!HnTvR z+d6SA=ALWsO6HTUhemJkl8sHG5=H{jUy;Yr6_BZw-n!-LbGYaT&U>6>N29)j9nDi) zpXsIZ#$YC#4=Q(LS5K~}#13FlZC^Yoy{9-95swZj>d+H7NV!BUSl~tdSVt&jFc?iVTXbgEY zrfm=y7ubz*$vHH~n#M_$xp~Dv?4!>SqxO?y*1q>$KWxDoc=y3oC;qXNBOe_63WKxcS=J3lj(BGJ_A`}P8rS}Ckl&GI?HC>T8%CYnXK^-eJMJ0I z6^nd0nC`;zu~RF#=ikcOk+>_0kkKmEr){zMOd%8_AL+_N+Ge#5k7> z)l`AYo`twMIQY<;_*;pPA<0`x+>%4=C!Ov7iC~CFP-zsV7VrAOJaZ&x%#K3;dkvDx zDR1)J{nl?Yh->3jLk`Fc`D{FEOLivK{tYrj^-{Kn?-a920)OtFMZ}0-zCH%AzvOlH z(FcTsVAGhgEy>U8@zyS}#fRZ_LY|lvB@1M8Ty8sApL*lHncapovG&bB#yuZzy^xQ0 zh21y*V1D1yLB-nq{;}Q5$xGiY_i-XLg5?Q-S(1Doh_l|~nu^**<-_xRX+X^!pTaO{ zA_;`SL2LChuPAEfmV^Z_-oKnK<*{_xy0Y@$#;r!UVhvXXdymY2yjx$Zq5$Hv`C~p$ z*Dtbl1Cxh()R;V{mpI1uB$wyYxqK~)W5ZdC804x;?4u`UI>*X4m_9_;aHu2XobGN< z{5#(V>w9#qWM=qQS{e_50rc_5&WZd+eeVMAR3owDS`j|2ONx@l9QW`wMdMP7rpX>f zr)1{=I|oWg>z5hLrLX~}sZJ-JiGNBc=N9EDz%<`qU14$f`3iJaITkz%P zuPkStkEG5`ZiZNZF*rs4;0CL00MZQjf!0THSMU(}gsZ_%kGywV1{M=^dKPHH@Wy+MRa!udA;8=-!pNHbZb1F|Yh7IWw+v z!tGZ){LkeNG>1pMs7>5T%W^5jy~6mTvD>fHCy*D1ri8(K>(tjpsD|=bI* zL}Mb6Cr)lRjkylA=+m{?tAEv2J!U_(vRC#2FWBxgkQk-M0Cge&pHzfw{T#E;OUPs1 zN`ApodW@kE2s8gYS%NAU3`YvMFT#OmylCPgj-OwBpfz-C+5bC~#=<<_Z8uN?s%b*= z#QrK^8|F_Q|EwZk(+O<#E(OdiyDyj|Ivlb)*i{vYy8TN z8_|iJ);MMYZBh3Nln8N&%2*4n-h{SS99Byt-W97pQb~=R9cB&`9m3qaP@ATLPM#6~8%LGWcbsziQOk&rQWl zrgaI)kW-X=me++?az`#l>-*5KSvgX(?!aP{RDfkpEVgsJ#~dambE43pp*Hsc(f^aayLB6ParYS3sZYE!I;?dBuZ1<+8BKRSyuO+zA1wr{AXw}83nK+i*19rONY zo9Jj+Rp;d0WcMEQh0(I_>f_i7WBH|L!x%2`G0_MkEOx-NMn^{1!=p2rj-@kZ=>s%i z#>!bFYE_olSp~jhOn5pGcyVnA?naq{3 zf;vIl)%CGl#k#^e%lJtLtA>(~$G$hqNmdEO6WuSFPd}Xdc~z}kcjOGcKuERkp~lHV zVf7h1h+KEM6yDwH8E5Q&x ze~;vmf(?huJ&dunpemr)|5Jv#Z~aly|5nw0EUPMKe6f(pe82FL^39_7LWEc#DKYTo z+h=7zsTzqel;=(OZ-ntsklZ^jk}l7T`+DP8^7E_^`ZN4(r#TI2q*IwwH=Hk0|5f^+ zh0|?*RDZ9lkp=fdvN0GFw-t8PW5w@>_|~Jd*-MdJ>R&^0_BQe(Im+4~Ws}C8q|C0N zZVxe}c_4Uhowz~WVl3=Ik!me5Z-Z0;nDCm2!Jb|Ve<-CI4?o4fs(&rvsZ2Q>N98d= z^R&AL4r>WU^O1Fo0r{qnf;mt_>xxY%4l?}SwIH!zFPP5OFDv69aF-`0pyT_X_DLZ( zah2FIxx|zR%z_Utm6Qn7<@{C8+Z}!0@5fyfV=;6m6M+aXEF320c7c7~i zd`cP+1W#f2O?wRk>T86<3YQ{&hJjnmeP3ug+NqS#C8$>(OY6;YRQ)=;dhZA!_dMF) z;gUoOYH+IOJM9``B@BQUYd0u+@7>6RYoeXG2e^Y9z~su7iN<6Eh-6uE-;Bwa+#@uO zpp(+*1i^irrLDjf)9B0lf&NQ!toN z{jf;P#a%Tp70+ufQL@hnMS@dUJL+S5t*tt&>=K_F)g(Hrak<~a(zNf2 zhinoKClFlW|uRVtqxejRgcPUYqUdPfMpE$6BqhbSBBETtPS8TNm?|QY* zep#iYmT5I}1}XuR0jIiEvEf=F)=jsUst5rKl#GFjRvUs#U0BO2s&|OIdfZE0(%W)H zR{ZjeWVxawou6s{)+d=~X>HB72YMLuETaPlTARRC9I)gmnuZgHUNvKjlC3pw|cf|^ib3bX~D9c5q2E`F_ztVZ2Lf&+t4fG)dPO2$xy zCOGPGJ=4@>iIjt^ocwgRdvVV}JvHU<{ZK$~roWx%9m1dmcDCnfQ|#p-cG{R$MukMW zpiRh3C4{$jm6qma5ck<9K#(H=n$9gkmwW*s)F_}l>} zDVn6!-op7v_@J{U_ksZ02}{}XuB5*9uHClwOnoQMpD|g1 zNTp@xlvd(YM$e7Ky1O-f&<}B_WIX9l_t&q-jR`b`ruLE^Q8UqUoDu3}SY8t30Y;nQ zxoJbcnvmpsXf*51ahS zPLZ=gl*N!!Wg98;TZ~^}t(<9{0uR9)cFKSmh+r0MTUm3DTeo$B6pb_(H&v%ex(FR~ z(X4W?zpUa0Rxbhkn*RsJMJX{Y2|W(5+icw(>j39_WM3j{<}d}G=7RyH7L=iqJQfml zpBCj#AbV~h-u!3`Ni1tx5DwaGrE32vO5#t;Q{T#!6i?zN5SHKt&@KmHZLL0zox!M! zNHo=TsQyYGpJ`!CBFn=W;p8OUX@BQuBVjqw#W88UrLznSEMJVtq zpKyk}VJWb%)>nTGv9WY@if;gPz!e9YE3D&yQ@O|X2%v+l8U^(!!j+(M$^cQ0DkjW3 z>gr7WA=HvaMQ*3GC@XO(XJ+pT@9Bs4=X6a_)7ln$=rMXo42BgfiZu)gD~dnG#L2?@ z1&iy)fB?><_mm(QTim$=ChDU#x-KD2_`p&QNgJ zQ9FinVPX{swR}en^M<@syf_4!)koFiACzynr8(LEG;PBly#Ji%t&7-5a4Vu!a-0g;+Aw02N*eE53*aKT>qHtJ)Z;+{^r@ z#kUp6N}hlJ!y8Y{%Q`>Bd@xIGeocJ_nx(*`wM0~CT;MOLYmu!U7uDvfK&Xf9L-*V6 zq?+``fPSqQj~E)Nkq8o_`B=^DsRB^Wg!$Y#LrRWx ze{KrGzrV?noU&4(ME|%k#LpfSy+RS!KBvF_HCqraxRjDxC%n08uU5h-%>&QnkBH>_ z%3~4+&QZ8!%&?CT?GKR*g3Zjp!Wd|t-vOmDuTAlZCa3hLCf_Jysz7XpfvZtBL^V#3 zk@}~%zx7}!8sdeNjITY$kc($=Un>HPb}vFxSGG8Rn|WtCAz-KvPO`|(%M+u1GJ}%J zclYjzfroUELZ>SNM#8UjihMj+IuZZ8*9Q#IBJpSC<_YNhS%sq>f%|Oy+u*0>I@(d2 z3Q8A9{ANp!0^`v?T;GTm>HET8sfpjG)Qr{)aZELlUk(BLy>AQgDlHm<8wj7B0fw2|Jc9u+o9>YVul1D|xu4lJ=tZs?c#xhYb?ra667Lec zdLLW2emZPFo%sEC7PyIKDLE#V4#p)P)29%mo5mh^vA&efU!lmYroHx-I!+_UpY~b| zwonnGx%izgeX;_wmoFga(Fm}*z=pw~AXlH9&wIU7{R}ypG1g;j95#m(?JID@9D<_P zHf#dHx@jU)E5CJvaAkcFs`G#JbpK-+|GV}3zo$haQ3rY_&7}eOh6a?Oyset?+!V!y zqr<|mQ&a75Xu5%T`E;VQHRz<_>`xxXOQw>g5)2%k24XL?%OvDZUjfib#(Nt1@pAua zba%E7neBBrtO!zm ze7Bqy{`O=8y4nQ2e4Y0m^%%Hp_D>88FUel0a0RRyLY;Q6`N0m~J*KN()#ub56Bb7a z=^E9E!dJAXE4k4Tz%S)DfuLqt>hGv&AiQ}>_B4JT)@goOQVCIGvf0wTvjJAfM$D#n z8gZ@D-ulEA9<-Wy;#$B}n;$e2_6F*;?|SmF5--lHkmn(6R+>KAr#CWM-hIAtI!N3U zUC>+|T|gLK4lLbS3CxSWqiUe38GC4Hf6w2mV19RNlk`xec|R0Y&}4<%IWF7q+_K|4 znC_WWL5q@u->D9*`nu}c_WS7v5YU?4pnDwfszX-n@~9Nh2Hm0S zGm(Yg@0i)_Seg5LR<{sYdq4t@rYb}`$?xtp63x3%F`in0e}(e&^10UP-2%dQ=7TgA z_YJj~AN+wIy{JJ%b8qUvIuH97dV?`@p{{b+1N`l(j~#)rbG$Fsgqv$n-@&2+$2s`! z-xC9<2H2WDW@CF+FFCa`+8PO_ar?c9Y&u`cKgDzrRt^?atC{b{GBN0O%kMm@pQ)kp zzfagn-FJV!4MtT=`acW5wrC0O=`b#QmCQZJl!+%8M?_5~Xv{dJZ!~>!Vw#N1-S^vd zlL3y7HxE?yom9K?=wCd24=49pTtLdOg|YD%#-89&yDF*FdgLH!=VEP6yWo6U=@c)a zu<2Y{XS>(kR5ajG_ygnSk3-V23@gD8kN33nkoyx9qDw{*mOEkYBbDLdkV5vzE=LO- z-~y6kGp|LK8ph}?X&jxk@Ue#xW`Eb%WHXU1?zI#z!}Rr?n7%xXFdWeN31igM9nb8z z6X17mZ-6tTVz6h<5+yvVliD?}{2cM%-@PTw8cL<+x%Xa6+^na!@VsiYN9q&1a)61p zKl1*xjhY1_;-3`XP88yHB1STTY$tl2^DBPO0tohto=TEHbrnrbdgpe$EB7TG_d6<{ zP_L0n#ZyTqm!E{M=*T+)g5bG8Fzdmp_%!+~K{2-nk<8~9BaU+Yk??#_V;{+yHZQ(R z!7XrDtDWvCp?M$Y(uPYfrr5fi$j5oQ3(-ax4BR>xg(>WIZNGO7xTNsr)NeL2scZnj z>qlI>q)0ozsth04_ZVW)*WZ-`8KB(mH}JTtxoD!vHfVaub~vdpt>5`{Y|KU6d1 zJgfhx39>yKE1~~eMZN_R*N;Tx|67tWgBS24r>icCe+wRp`MMmYH2JMzGcn@{z-9oH z?}fS>s>=7DlWk@=0!f3Cz_r?>a>s> zCp`5$iJnD;e6^rQp7ou!zkKb$```0esPm>bg^)hg=lHuw=92V61S=sNp^$-+DwrHHa5~w zG??k?@+hw8Nw?e98|DV|@U7O27UNK`g!Rf!UDc}()#u{j*2f|QaJn;l7qj07_0=@8 z-3RjTPJN7x*d9Mpfrsf~{L$sh)UzB$H&F#ZBc5VMUH%&3}0Dr)B%C z>Wmi0KT%YDA48T~;u&5_TGrXBE{(+uD8qr#Ky!;N2FuWuA?^wI>TBBHaX9iv_bgLv zsc|G$nnE(PSFh%$2n5jGPS!nd2@y!T847Z8=+bb6yd3=B`Q478l}(nunhbKfpNj^I ztCF>~sC9Z+XY-;Fb^LoaqK~{t+KgaOd>?}sKwf^5=@-|#S#a=E^E^}gTeZDYH7uTk Vm&BX6s0aJg=;;{Wtk8B!_+M3sL<#@^ literal 0 HcmV?d00001 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/assets/pivot-main.png b/i18n/zh/docusaurus-plugin-content-docs/current/assets/pivot-main.png new file mode 100644 index 0000000000000000000000000000000000000000..5eaa9537ccd2c169f921a0fe89b45aff99151fe7 GIT binary patch literal 21456 zcmb?>by!qy*Y42LDj-Nmqk@EVmy~oP5<`Qebj=VVA{`1yBS?3b3?*Fx(lPW%4loQb zGsMB)?|a|(`>u1&7uPxS*K_SX&%M^V*S*$W&z_0Y)>I}Xq9p;US<*Kc&uXuBFbAEn~Mq^(1L2p0m>gsB0YWw>KmzP)9*VhIH25&xX zjf{+#nwlOTAJ5OvmzI`(`}XbP0)<4L!Qn^a?WQ;AHIXXJNe*Jo54^vrL**k;O4_{XSt+tIJ^z`(KI*(v5 z*wQxY)2Gif>lX_C(9F!N&dJlPmP4C_t(KOS-@kWujxKX@a=tVix}JV`mQL-0PzE|<%D7o&SuKy^sV8=J>_Z0Lzza9SJ!-vG`{oTW} z)!*l!uRDWtXHCP1%*@QTwze-HuA2Y=U51wma{7J?`%_qi0KlD2K0J)QaKGhVwHTA5 zYbYC-Sq(TaNnLvy{_H|@;a5OMfNT2+Az+I&JlQl)bJUyWMB zSz(x%RQDX}w|i@PnQP;12(wM0J$_)?+Nb7#9h~=f1Gmbg7>n_`o{Wh&Mp(xx*wX*v zmc@K+3QbhonhtTU;ycY7C~JBF#7U$^=gWa+Q>w@lt0MJm{T{puIQmT{vyug;cY~O~ zoVHKKqS@~-pN)v*J#tjg$O9x=7v@`%4Ehw~lu^L-{CwJ)&6kfU8 zVzUZqE6Y7>UVy*TjyVww z#rFR0)QQVk>`Mrlaj~|A9h7)fP?9r_%e}&OJU>-tbCJNbHo%UwF;-k?!}E;!q@na! z#?Y@zWL)20Y|O}j&VFiS=8dal$LuTVvFUJXNpj{N(h>HGWa}WR3ALWEuM0dnAIZe* z3Iv3p6sO{Y)JO`2Lrb!8zcEihoEtxM(=?O!L0#rxb@=e(G|#HHJl2h_vUh56#Ltos7d-jcR*JZH7xb7nD}0-TY)xgg&L1z3SPW z=hKX1MyZjS+5jO3U4d!~1%^CbhGGeYtUHNLjf)Bs4_w$#DFaa*5jOeNiu(IQbjtFV z?62Xb7Rqv3hUHZ+*wxw^o|%2+2NZ0D%Q0Vb0q2@tFyMzWMdews<xUBrWjtgCw@mVGkPJ`1l-*CD*ZqnQyKn|E2&5d3J(llgP^y4Z(Iw%_?h15%PuW#k}?vXh0Ff1TgVz(NIt+kJAw-`t~0*ML0yx0^@yP*)Sm@bxDl zIa}Y4*PEJwFOI@_-$y@Xjv~zakRV0(e0mnz(3sX%v9RAbzWDG7Ee-re{aiUtPYV)o zonMm!x(UC;hm;+g7zW4UI2FZ$FP!=wsf*7fNu#d8C`-`Bsh;XeUtB3#MJlD!8Bc}eJn)C(|C5YK2`)G_4mMwA`sSif0<`w zDX?ilyvB~-=ZmV`Ue%M5P!y->YSk5_~b=^D?v zW>F;Lr+bGVEpmDL2Ao`3qg0cKLLbIvd{E3=`ivl{>x?T{L7YCcVLm>$XUbt)ugS4Hv{9|{6D*2K^mUt6?0C3rizsC9; z3HfXiVYNxbhICF!VBLlBI)4yP+uuFCTs%)jnE7X?PUpCCoL|sJw?9r8vm7}fc`PH> zN6+K(3--yLn*i6;Y9*MAa3lrNH@ii~!cF>WLGC+g#Z>FQ&(F!_hJXl$ANMT$gg3+y z+?GGMf#J4GtDj#yPkjWf{qgRrI;L-hR<>~#Rr%T;lAjunV6#o%d>(in5R~8a2~K#= z_YRX-rSECA4e9JNW>%Z)25fdvHY%#SN_(GKLv0syr8395QLw*PkE8J00i?LA)@<6t zuxnGBKZTf_jsTANGUCdmfLo21Hv-2ZJ>P$meMy`b&s)$B2!du?X3ol*L5`QR;=4)6 zygLvLm8l$VmnR}(F~p*-!;vRI%w_f<8+ z+H?c4KeX)P{-yo+6VNxn+#j+@F6A%G@d@?O9wJS`|KLIzay-LK9BC#3Ty`rvXNL67 z!1S4IVoO_&VzE$9Ny$}ZomWO@7YaAAt0PeSW9^dL`Jl&-Gjj_QGG7#{Z$v+@qH;wA zyb7iR21?{H%AO&nZ;N$hm~q6Yb~KHb^vhBnS`&i(biPxqx=^Y!RkQ5;>n9kAHNSF0 zZ_HV?x79#-mDjSMgKx*T2{k!@d6)GBD-y%E$O?vE@Ao-e)`>O zdRydZxeAh81;C4;` zt2k1c`_U;?!IXEujw{H1e+7yr6{1~rYQJ;G+aetc$pwU)T%;dp7B$WiTvWdO7W=RW zwpD5bagW`6ZOP6zbI};jg@dl4KEl7KEyj8{pQ=dQ6Zk6R;Prvij%Ff`|QfUa9JZ1%%okguamM41y<42^t;fgOoqhW?Zn%L{Eju;@8CjZS7$(ofy3IWfp4qBt zrJik%D??dG!-B)y<|5HRlOY{x2FL^pHRG6X`N@ro3HsVa(D}p#@0pHanOMZ=eOrrA z?FV;U(m}>dpSN0W7L4RPS5ujQxyy;XtGBa3rXnPyZh-pj0~Gcc3$XKcMi9Ln73}}h zn?fTZ{_867mr1Ss+<3&*a%q&aNr?5X|LQFQILyI;Qjgi9pXSoij%*b zFmbBKzG!0_)aDzpIfIZ$nm-Un9L;rZT(3M5YYYr%?vQxOFA6G@-~q@hF z!Y0cg2=@%Q^+B@UH37LkacTb*rk<^|s(&k1)9jZt)?F4fC})?rMD@Yxj}oqcCTXZO ze<@f>`80{mOTM)MI4RB|GG2r$`*8pP&d=BN?$InU3n-9=Vm+JS43j;!m<9s*g6!LKFw9xt=O$| ztw9Yb$YD-(%^+20Ck!p$0@{oK?>|Zdxu{Z0FLdUqgV{)XwFpCcR+I1m|D9~$!P*jq z2nJl=AJDdIdRE6{*MDCHy+|7Quusd02KD1Q_;;bw?^?DgRZYFWo4fUY&a6hZ+Zp20 zO=6Q+Aqj3Z-{gp`??G1>I(?#Mec+sKAz>bicY=2<4n-Cmfq(%sTSABk^2WA+t@bpp zK`vUZ?a?&ZXlOg?vBB0kgLM~b%w^;--ZKI;p-GnP7PQTW>N_d0@eR__p3l*3p1zP*@66^H}t4Igy)+Ino*_W`V_QN7@E#xo3EBlUxmAP8!` z6s2z}Vh6UgbaA(x4>T$r^|hPSk5VgG>Mw6+VlgUDQyflBt@E)$s*>KcE;L>(1bEhs zKpY<5h(fvDw!@@8RQ`~>5w@F=yqODvF}UxR@s^Nx5R^7pU_@*W5Th|TezLrc^_ku>iPA8DV87RI{%4;~WQ4L2ud&uaG+_jufxvyVgX-cP(-Hor~^o{ znQ?hiP*=4Xg_@*{VFAv%4d8?+Y>XIb3T&$hPJ;YRb3UT(UonlOI@EvRop5*#%$ryT zex8syJIuug+yz*@`WbVB%OLTZJTU%QnDzkevL_S=ql5@&9H6e;0p;hY_o*{^A$&Mg%vSV0KSoKPyED5_ z{jQ|*IcS0>s5t4VGKZg*wwk4 zFF;uyEs`wOzr9BT`lt)3O+k=*?>$5aZ1CGFjmIy#Pu~rXh`inKCK(_JFssWx4&T8` zO>;|ekdaMmH9xjXEw9qZYo@+FeR87zeR|);xXNip0K(V4dV+|3Mfx5z^b{ubD~K9~ z!LbRY+)?<)U4BF?*n{{<1I_8`lEF57Jh9Ti=| zHU#9)d-?e%*A`Le3m+Xh1C_`B^!0K- zFr1*Zhe9WWb1PJpbU?ebp&>Y$<&P`ok`N)<*raD(4JvXGu!|f-!@WA^;{HCHa&BBr zYQH?GUpe9qpET9Kz{hxQwjX`{FfOkZO)0r4b`1l)AxU+_(yvj~mrMUm&ziRgkn3m3 z`oahO)hNRnRFq~YYW=kUN<_;Kon4U-&^)#32F*jy?EBz7){PX3@n0e;)IERfHym7F z5eg_`2r*xJiOOqMf0)ZK*lw$~>6M-IE3Y5si%5~~o#m6=aG{2}CHLaSg|@~&%9Q4J z>&SlnkxImvOV0x!`uLWXk@EF3Lklq8V`HlCY8$PG(%*8Niqg7F;->Vd=LYRVORS zTK%Yhw&f);sl;Ph_Z^ci36;5C+n_t->SXeAVEz5se6$JUhbvkADildY(tD3Y{snbd z5KhTabL1jpk%TM5lOd2sHk|S1V0G<~0egLeIrZ+=UJio0KmU6)O*GXjV3#&2`?g~$ z)w4s^Ug40nQ?JL@om)#j#@kLuAp4g7W+QA(znJfVr5|`SW$=G%!7>z9TO9r}w~t(M zBzY*3Atl{A`-mf2I^8BvY`G+Vi@HLu!*D9c|@jw#HPh0Jz{@mk{hDM8cn*E0hBEfP2 z6MN~%7+!VW{~d%M3g6FK)>^Qj>7AmGTnZt&^O1=WtHFR^OHD*K?>)D$N$rO(35xx( zk@Mk3hmP0hPFzG$d$j&dbK6(!Ni;Z_k}%Xm9>MWoc9z6D3cDEU?#nilLZSf9lB&mR zJiz~QRcf>sh|t)jJ3X;2%`FOOfB-vGz+vVPb*fW+U7%LC**{h*vM5$~4y0Fqu)XQY z5D@?206wq)KAOr4gxpj!LSBM_ElG#$ayY~!o)xbtJiYY$BML*Qb;|JzKi+5Wh<-@j zGVg=ZYOs6MtvFZSxK{1{u$RJ-LegHM(DKnu7>QL_)#N#BwhGu0+{Ebm4N_$`_}r!Z zC6Sgxg1cR)9V=0)gpb9qXS%`j`M6UodT%1{zZo+>$<&bSGUBYTdic)XwzE){K`S@P z--?t}$gVo1Q!dKwEjzc2B!M>6T;d+=v7}|h^IudJ{ATh6rryFHu)|FD?+Q|tPS|?O zI&h9>agwLVPo;x|fJAiTve8vEMEsM(p_?UEP8f-Km@csEg16&N=Fje4whSl7-lBqwt)dSbybor3>eeVQYOMY&Uq z#s}(RvR>s=Y>^aCGV^*RtkaoV-`wnB5K6mkORAOjAK;>WA(0bU$o9mc7xiD>nO$!v zS4HheKGj^Y+aA{1peP$6*^D_w*{())eVn_3p8GToxne!^hZ6!4+l&-OD7zsYq;u8o4egjO*Mj)1KmC1DHp2SrdyW4y* zAIezyfk@kZ50ke~p5fj~5Bzof);*CEkhJ|kd;3DPe<}@vxB6vAI6j2_pZ3brIQAow zeu?;@IjnXlI=OE?`pRZxg`W(IYsWj|Jmg28%oyXjm(&jsR-3H86&hPSZif)x()umx z?K3aKd7icr7ww2ZcXv%7+1EtP?rTr*IcjCvH|>uUb%13|NYZSGB4Fx-PLjZ5WF$G~ z!;55E7JZ@IUiAoHzHGOwE{0Ha`gdIPl3N}5hB>q)!!Q57?^OY9Ew>?*H0ezk`gDCg z3^IdNp;jCNV3jT6uW}2MT1`O}5Ilu+`GfP964Cgtp#hogw9^&+CvD%o7op$UlBbch zY9)83$17kasg^*CQtQ$y-~;k>eF^StF@8zYAy2n;;}0GBdohvI)M6<@%FvzO-Vz9B zYq_IK%B+^LLR>#e3~ad>3BVY238<0U2(OgNF=-`@0Cob4kh; zpV4Gh<0TpYM^aUAFG~>n-il0e39cg9X8C3$zt&0!Bzi#qn$VxqpXt}9x2e2(cv8ud z;|DLBhf_=5WvlM){UR^bLm-@v9W>4w*Q{bvT$#Bs1}|23N^H|yJcdS zVyr2f=}=3=Y`>r`A_DVMB;3MBpIZNzBxo|Y4z zyXTiV43k`B@|VOC%il*q1nO2nD%wu$c5HS&lKEb|v{qYzXwX5dr}|x;S78vAbv*q@%|&G9QG(OfMS+I38SaY{db(3hD#JPS$zJQViw(spTQ(^ zFEBRQFSXuvC*=N69l3K>BIg0f7uOjg*rZSh7i250zb|lKfI@&sF;co!Cq5Yt++36i z4+zMg@VvesuDQK;4w$mR^fXW2IH1UO2T!$S&hm+C(y;v`)5k{=4unbjIZR(1wQ%`) z)9Eue5$Sy{MTvV2VND!^__DFrKMTd%CFpiNSJAd)x5JhGCbJ7W+6h0cw=|*&&h({X zlKXla{Fk&ZiQ__h<9nZq`-jfmP73g^%nO)83UJ?6+B^C+4Er$C9A9trwG#xANSE&u|A5M6FI!5&+7T&** zezWbkL8hYZz;36XQzalr-N&@%d?MvXXmRi`&~Hz4DApwB73uK8a0G%Q;v%5Q9Ri2e za_&Ke$Jn6E^!K=UcqY0BLGT^gw~0%NwODJ!vW%oO=M%8Z^nxA3)OfG=>p{8jbw2KH z6^I9Qk_B^ulgUAZE?Hmduq6*8gGE$7Dec7 zCsFMjH*!b9sXHO{p9maeM38}y#Nw97{sxrz>2dZ>3gVy+D?49XZ4;n$-&lro$)`Y& z<{7EnUu=cd!;zEfZ{DFp@5V;v8?(u*vXc=K-SUNR1duTMF@QMgeVdnurvEZ^kdQm3 zI#MhQ{G|Wj{w)`?eqD2tvp$W->(X3MQw%zs+wC3HzmKf4BJ1*500nu>(rgmTTq|fe zWA6E0h3RKlAffkVE>p;l`}YZ%E&?H`1LW_$%`@D{kzFeukVIkte$VxLiaXkmUJoV9 z;RS>G%&&4N--&M;u0IjiqjK;*<~PIgINfsyi0K$_Ws(a|{xYFUKR`2z9n}6lx8}#2 zD7kmyx4bQYa0m(bikuQ|-(^ zAr1Jz1Bliyzg(~R;$q5JVcH+E);u&iT=7FkaKf`w9kg1?b-Cwo;vjr#3Jk@?Gqh5= zGvPZ9Ni6eJ12S}dk=`Jz>=R>ql0`);C0X<|iM(Z-X-)maHUa=OwcGANoD4hdQ_Yl; zkJAs2pB-giSp~UeFsx>5(kUyoMkuupA+{Xe=gWQr67VPQJ)qLsj_zdIiKdO(#Bc*$ zqMsDFH8g`T-qaJBAFhqFSYVxlZ2YPm@vFJ_DOs9IhtH2iCz3E1U3{OIRFU%Uuy6He zku*SsEjuB`2+)c;t-!mj3}g{#?ODR!ONr~bz8)v~x#tMmwg}(G8vAVwD`;_jtwpN3{8?Gu=s9!$S*%of&AAFhO!nlOm~Gx{ z44&Fl<9ov{6Pykj&N-e@@#`OI@_$ygz2i|f1sl$W;3oNQKV1CKC;fKc-MN~svu9Z- zB-r|Kb0otX$d(4E)O1G1`gY5kzqjaZam{_P=V%+}3|^7qbU**CG@5_RU<_frc$|0~ zn(S8h%5ZdQ%W&7cmIuee(7Q~6AxyZqoZ9b2 znQY$6Ckhi$ZN8{*kXShDfFJZ~IOwK?Subub;OWwD*!#3v`Wu1y!nBB=JSMRJK-&U6p zW}cPY^KejWdLpz{Keb2?t?D#Oj`#K{1zXi~X?fwPJNH>fF#83}nzncI=^}%;%;;zy z67g4HMk#Rz)O$^ksPfEF6%WppQef)tq?ant{{U?TzBRjd@WAZzi_hXMAWr#-?b!0_|P$V<-K*aL}aVC3=** zeh>4Q|LYMom^GM3DfEZe;?O;}<=MyldU`*`UpmCtkHlg5Q#_cK4t)7h&$#C`Am10) zPd!7{e*Dgq@9SS&OcGRX)37=ZVb=K)zp@~gQm#oMI4f~eB|Hh^bMytQPsTzsfeXymIEqk})b8>fkUuEjn1c^jdvVRX7go*t z`U+RQ2>J1s_o^o`nQ*45CZ1`kTkk{V2(@ThU1x#cblyMhJ4H@$t==O=zbTz;?T}?Y zv*(1lwm;8)zMPLE^Yc}TT^abS_HNPZLVaFi_xmsTpAz6cJtxI;k8rU2P{=H6eoO4Q z{g#(flAb%*NzW`>bH^m?*7;2*0AmgxIA74YX%GEW_sufg&WS=_%oh`TEc=cF%ZseD zS&iXuVo>GDceakctWVi3(G2xu>`~&AR^*lEqI9DB=E|hp zbC-$tZ_-6s2TPhE4JABUMW+>O4;GL)02QPFxUHD3S&Lg8xY7z$)UimqC8Oi{qZgsn z)fdeqhScMKDUIqimiSI`{HSxtVXza`z_>Qhyojb+9p|6e;;b#V*g_?^JD(v!&2F>7 z>N0Uv+MjpIWCneF?fbn7dEJ)Jk&=;0*nd+Z%3`wNhLdPom9`2#o4i{zG|`hngEuit z!Eh)7pF`v`9d&1Zlzh4SPXm8D|1Sd~92&cWVLQ>I=6Ud*YUEZ0W<$y*?yk(^{O8h( z|3)o?y1SvLe_n* zS~IZVB%yk5mfb`y#0Ho5(GCsc<{az#mzZfMT@rRCS)WqJGDz9Omy2@QstIFlXb9MF z>%jZeWk~q}ZEl8Hf#aF}?5wZ-__{2H`pgJwX6RLKWM@XfXP+DO9OezCyOUgMtY-#< z0y|Z5-gswPmHE7Z&p-BglB+I9aZDeM;>VNh*xbcro>TFFwb7;eM(fA=A``Pu4pS`l ziIEkwZ*rbKP}Y#EXFcTNLd6Y^UL;t+xD0nUnV8s1@T!TfY&kv3 z;O1i1Joc!3S54grj9jgauY4V!)-kfe?u|4ksr<1~;#vw9%g)ADfzwq7alf$-!BT_1 zC|^unGCM>1=tStW=DJOYBe*m*=UU`M><~FpA zKcN}PU=B(`+x31IA=oc#YNC@G!+j;%48XJ81>|wDVsG-2W@Gs&nMjJ4wKd@m zQi|qvvepwvx3{HcmAr`a0^2I|Z`A^ikbb>o1z?8EkefFty@My8AOoFq=pKekHO0Yx zPYCV!_?7AgH740aG%#!f;mNRoH>uUYBCLRZoofCq_1EKZ&SVP7>|G@zC~RD7R%mgC z^mlrrwM7I2?{5qp#jiX=sK}gB$+IA=@$7CDlPBP+2-Pk6_@dUGK;X4pU7X>86j{Ya zc3-Ac7vu~p-0&N>QPY_t(v0A!{Bnq5M8WKC;EMP3}P!VCP)j$gJ*Z3i2xCe&E(IbBusSV6bT*j>^+^ zwqH%j^TTY0H}2nb#X4_|LlNHvfYO!YV6jJ^<2^e*yT}x`2yFNpU-DL^n^b|VGgj{Z zZVMXNZ@4mOaw+~RUpEJ=#E3E#x6jCm2n_MW^tlTc5L8kL;hawPlbjANgG1ae2E{?D z!85qmyXwGk8TVhZ#rmV^rHPMdHXE-?pMn*O^~a9=O7VXgO?`&Q>vO{VB$FqNVv0n7 ze`-e+_&j?Blw3Nm_Y~ag7l1G*wbLp%rP|mTH7ZG$nl{qYnV}Ih{I|zy`a5l%w(EwY zCbi#o1TkGH%$TwV*XK=i36Y`(7mrH0G2fp;rrZQ@pC>IM{W+z%s8#0WI$`HntvM5X zcwb3};Y~j);R%g+ZHUI8c^46hZo|6**h?ajkQ@9XMWEi}O=isoKKWmC<@NiB!V6^^ zig24B2WUyEoMc?neJ0iya!e`@V)gDW*qBzCL7DCDI6S;awQXA7_p?-@w!?;K3@y=- zpJF{7Qk^!+-1YWYTN%0IH!STI1$St=ljh6x(7jDstJj_#i(29ile{|g30}o#@m*~+ z(c9Td=#>%M16te}7MamU&%rFwTw;K*PcjN%87)0H?IUS?@%SLWxwwfP4JL6*-nIif zcqC2_<#(-&a!R`2nvy9cRie|{9N3cIaGmC>4$!lD@l168&YIU*O!bTFBpX#A7SAHm z`j-IR9U2uKeoc3acS?Ov-gSkDIh~Py&t18T=08H}NIG!{r(JTr44k(WX_NaT`>wT% z26cyc9v!7;>A;4!QX5?J6q0e75Zi2)Q?y=}6jH`uIv6Ja2I6s8`7{0%(Czdi&@(V0 zsw*HaU&yQOBYAm@<0z3uIU@hS~EZ8e%cb(>5>hTY5ErtG3B3>C`)W2&!zS zR$zN$rFZ#?e)3+^9zq{vc>ir(nB363x9eX|Yn_NmqmW^rtGTcfnXe_vvY#PN`EzAP z?Ht)Q01_V$un{((+foF5;(8VUj(9`#2bJ@A;#b9^lq+J5V>3arosWNugRpt7>#H+K zBP0ul?@*V(QRlBb0L$Q7zZm2D1^9+}x6plzAv*b08LmEIC$bWXp`)@LJQ_e)Nr)uM zfA~7Q@B)ruV*D4)qJKYzajZkLN)&gvIt|)_Dj+^(5X;=z*Jl+CZ^3Z>x|GH4U!>1G zz{}os_SB(Fq^z0g$8r$Jy8haVFq3@GciWByN~pZffbvr1xZbhx%g$c1phYND<^|Xv zWQyNfOziyxjMwaV`$w4B)KQ;cfsC$u8V%(?$5kMYY|uQ~pv#XbiJ1>Ov|d*K5hinb z3|n1a)^mZ`$w_`r6QDb1{^NP7{XoD*o%2ej`~A&>25jOTLeS-?~GT1Pm^CT{H?*g7EhQ}RUm;;sTnUL z31q)D1MEOK>7G3#@}om1KQv(9J5uEH$~D<;ezEe7iL#z_?N7k+{$FD|TD&ViKBMIS zK8ODq*n{hQh1*{$=+FeINv2tL19XWfYq;0iR4N`gt2w{U*P!t2%jz@3;4JNQ%t|0h z8U#f|x>(1Mk{QptdOwLl>+~8BrECXOM zqMFtA?|7su_9d90HTGOV_B;b71*wZ~Ak!$KX=Ey_?f0JYr!Y%fjd54yEu=n}eJ|2G`X0TXVXA_Uc#XK{siB2XB+s+X6&(`Ql*ew z3EkU5gX&RN(G}tvIj?|pzXuDaCji~Kie})r7Ef!}%{<{Cb?2orfgt%>N$1_0Hb_ zl>;Wo58}Yk*4vyc-R20A$HJGk`dlb+12xnz|2(P#aHj<8d;Ybd1Yj)huFw1OzXS2K zh2o*&q)d(_!f;M*b&^$OVHWHU@x`E<@U8|gC^WQ-<}W_1;M{eo+epXXK4uqRXmtz+ zF9aFJk28fYM`4hco4S%lXJ!fTxjL#20Z}G5K|m-H{Q|`>(3@zgu|! z)&WowK*eK5H&}G=y#`&btFviTX);~*|F~ED=T^;*>i>!X-2syzlGmG&fg4URu1U+? zi?PX&VsvKuN>k`^Hp*m)`*<_@81=ZT{YFz{_C4Oq+rn_JJKPSQy8$rWwgVQFdmJz7 zt~gXif3|AM-m8^HFF35QSt}4*qO572bhh5@GVc6|%HqELXYB~$limw=gcu_SexS?brds%v_R*y?m5)q$SGiCAr#<% zB&{-Z^19a01ionkZ=dp~>&TkTIB;yhCFI#1<6{Zy45aW4qOHO{OmE@NXs@Fn{z#JA z4m+bPtj+2VBC3vh4h5NhLO!DAFC;Q=KQ$Mu4=LXQs5H!nnoBGY5a~Aqr^$WCSKoo2 z2dT5Kj`AJM!N^Ujnf|nvx$+K_Os=nNR(2(LbRnbP z{gL%T`&Ugr%-}aQTRv=;GY0Yav(N*F4$SUqQ|UDs-di~cO~(ry3swKaxtyuXTAh%; zIPGwrfnE|6>U>mybB7GC5&xk<9@ZwGy(kVXj(XnSSxsRTot>ez{rs(0mso~E*sgWRb1b^ z$uAB}LqXIbPElUC?6QZ*o5mu6ZBxX^C<*p* z-^Ne7{CU_*yl180;m|~uFeZbHK9RRCzLHKk)@R{5SkoX^-TzfW-5=0B*X#I&9!?T? z3E}rV-Yqpp%8R7o-yoy%y+xQro*GjwD`K#X)`PUPlWD?^_cTb}h}y4?nB;fBgk7+L zwut7tm=;7hpsFILUK4ikLvf%v#5%sa|F`4k#v4S1<&}8rpXb(}0@&WZ z!IKI;{XL<#nvTC?q(}%F#QX-`n3{EHh7oMHJ%8*NYbjl#`B7Zx)vKD(u@1`T>`{Bs z!hx~^&8%iI1Px=Hz6&>D!a8mg4>rsFAb$XZv+p;CT9W&22L`^pa-!S2kQi^___D-7 zGcO$Y%Jl0fk7*3h^+trNn#rZ18kL%UL;NiD7wXyq?i`T*F^}((f9;z9#ZbgqPm0yz zX_%FXtdq+dHra$P)lMp=7E3f&ScjJ=JI66u`u4QBM-t}&*`o@}k}Z$j-oAJw5@gGa zyIFuZCxPf42=-BNq6$#~g$|EVoyTd;F{mcNHZ>Zp3 zJlJ}r*+1zo?y``cP@m=zLUlvS(3f_EUXZf#Jx{d`1+$nPVxHoTEco&%t#pDyY2~=f z8G9)@i2*Z?ny9NuP23LtF;N|d*W;!Vc8N#qg{@!=uG~druuq^WdB#V%!SRL7dCY}h zo2JIry6?tQ7w>syfFnyG7X6QWy%zF~mC|oyD;3wqgWC)5>oNy-fgX1{?RpyIK%Yg9 z`GzB6P0(4I$x8J)C4lLQ!I(l7Cc}SHEtTzaZ-3&Gv*1nWZm~uxfG<}>CE^kfUgD!D z2>V0$Z4_MPd;Q#3ylXFe$a7#&X6o!ijZcW=+tB{u#69Zz?hPq zt@8{M_l%GmB5Jn@vow=&-GLP!6OKFTcRn&$W8da_{cj$0#YsWhqZ>_!ln@<1m$0J* zWxob(GjpF%$dCvNoV}{S90DZyi18Z zO}_|SkAKO?i1$V5dEMkCG$&ktULohf5-ZgSHT~HF!C$(2=>>T@cbSnQ?O7j+dpp_2 zByFcd}ny*_?vk9WcEAG()0Mie(9EnvwVlX{mAv*0J* zU<4>WD(F($j4!X(@A|<>!wJ@pe;Ch^ICE+wdcAfP1ZaG5;H6#aYoWBXo8sePzuD{K zy}JWq-$j2wJ?H?Ygl-JdKZ!qbuZ@j``R3zT1dzrZKp(*Ef!WyCr>?%i(+q*vn#BOw z@1w4bx91X(n-=R1b1r9Y^E=MIDtZgd#eHM(4@K%Vx!agRMaxkfvWC#lSCm zgv}*iwamOuQsF(EuU+0ccW5>c8H8B+&F39P-NsC65?EKmyJ9EuXQI!zS*iin8L)#U zf;>qY7r&;;rV;V6x*(ZH{11Kx+Y}*^M?4?HGV;ee#Tca1;U?+p%?5GX!!=jvwD{$p zWsPb_h)>fGHc)MHUOq|`JHl=Ax8wEFB`of$wZeP?LzdO&qbLqg6^yudOJ%J5Ze7;c zIdr^9JxsCnYyuSa`l5u9DV?|fY!4Fgj@mfO3vqD?R7hESfaX*77HJ%Kh`uUEYP#Ka6l8* ze^w=~pP*#8~jb zZ|$5LJ-n&gw{+!|&xvI_BfWoQnU@M1o!OD!{>9a+ zI(W|@H`}Ll!Sd&u=BI@e;2Sfuo2b0$qf%8bJ?wW0OGTbw_q{~l0|m5)^Nj_CpFDeJ zAf+L>k!cLqw)fxfQMy`#^cpq)NS1sPm zulmiUKWHbG{JSiBI+a(yP%jd)YYaxo+lv1`T*|OXX`H|HxAevY7|a^(uoKI`_8O8s zGg(8Bxm^ZCBk$?cq6-TH9_Y}!o8{arE-6R_9(aQf=RFZJU4nYHBD%+Eqrp{u_rXTr z;3f-7^>UNW=JC4P`-8ZCO*hmGfnEy=YuCJ2Xz{JDZoAtuii@yTY3dE{v;9xA$QJwC ztRPSIuo!nlr3F@vd!$0F^5DCtSs6(#RVu(HfT@lTDh_|HMeN2$h+ek27r=&S z%0oPes-kO;DfZD8ugrNU^^4AqrS{;9b#HPwPYL?u;3JR3(ze!8joSqG-Jgfx4v62} zba7QWQJWx^8|VS`2F2OF&_A56*Tae}4UD-M;VHr0Qh*j94@4kUmu-;buxHf_aeeLz z9kLtulHKK(#i`bfOtK|>oPH;^G3Zik&?e-EFpf>lGq?yt^&0r-Co-g)P^r6f)~n*@ zSLiowReC@ngS0WOaQa(Qi}_9VIo~VCr2<{A%Zf6HFoKb%TLPX=85>{2!YRP1v(){R z2Vz09O&>*qOEvHP z4E<*KENsWds0iX%Y9d}d`L)LzJR{;iZti536L_|CX{04GU1AgxNS|XImBQZ$j1EQH+UcCZ=#Inbxv-V($^L^y)Eb*5Fy!6_$3s}LZk@UpY@%CpA zG)~QQfoDx25ok2yjxmOIO*HPeeW34VO6aFq9@2HAWeo+4#;qZ(;?^sd(N{oM1n)$R z%>QcT%EO_2*YJcAWv3}(WG%8()?$<;r6M#lSx3pzf@}#hNSh^1sSaaFQMQ?kCHoj6 z$(9DwpbS}u5o4K{&oF0H=bYT`WZLTZ?}L1UJGlh~ zXH)sCfQJ7rNHx``Jo!*bp5c81_)_@#sWTfi)(}iqQypYBiiHuK^P*RTLLpfBC)k8LtDxzVM5`=>->?G8STx$Eg>;VtWF5!ln-b9qr~ve0mEjf~H* zT=VcEMj1&c@@EuhXuQ(oVVv#rxlHn#r4mjea~s;j%7o!+}E9-U})_Y!9C=>-Jc62L(|XNn!)y|q?I!>CboTX zrFKnd&PsuvXxr=8ckGHMnU_{?m;{_jiv{HXj5Mq+fDuSCX9BfH5spcvC_X7 zGKq4smwFP~&sXY`>9FfAHRDsGPS`sR^EN|XG1s8Ba2gkc%3a*fTSan>Rm>NvKVg?e zV;Hbgiqs5MH|lbh7gi9+6u$mxjUJ!^$XdVhao3gK=^WB_CJf_V!Fl{6o!RcD3%NUC ze_u=RKzTn5hI}^4FYGRoZx?18;YN>-gke30wHJmw45n(J;&i!gh(0x3nM~DFGF=Qw zkO7+L2yzF6udz1yML#OZmSzDG;E4Lq6M_)@@th4%)M`nDS+sD!6%4C z(Rqa6bIXZ8z*mVp74Mede*F*^LfAC|aRSVK}8L^60BjP@1z&^{T|;w90QPk%&A{4gQm52AV7p_b{8^%O)t`Fgm!?NL66E1Xw9;TlyQJ0BHsL1Mcv6 zlFQLoKD5?*itbCzH(?aS_)VkDmMXI~QHSM96Pc@*Rotl2k<=BzjBCPIU;@7-khL?` zhz$NMn)wQbfrKWR0m$4VZix|1JW*5B6|)6|`VP7RleR=Q#pTa&m`vTooxg72jRW~} znqpz8MyrV`Vs6W_P}HrCyTbrB+djl#mTyA>5deHI0KI|^6Hnf!#nC%xmynnyrl&R; zxti~~|K2iW&k;7$AAEFt)haajPs2p-U4c?{YzT8gx?z?a*ZhhB2xfR%RgR0oah6Cj z*y7>g{TEIXM!T((X6a)Oavb5k)@XwJ;y{DGi_XfW-)YtqD%Zw3RqmgUr*Xu5>iCQ4 zralLzYDisW&IOfGPSi5aaX95{4BADmz9^)y`M?Z9--mdTwJ zqGiO*-l&R#i^RfdO|;`!NEIej)>+|puar*---;OiA?x655{sAsU0KKkucgHOa3~c6x@-L_WRHQdETvSQwsvD$l z^3;nV+#Ye&@4Qj*pEG)Y-%EB@(Uq6cpU2%n&hWyx&5&g9EmBtB+B3>rK86|oWz-$W zP`~AiNZ0s)D zI+?av*IT1JG16fl%RVM&dU>sL$7pag{qvCZB?ULP`r%`3`KFU9 z;LpDcZx_|ylGTSoIe7uR7cdN^B?XpCkVLc2qyJtgk|iUsS^`I2Q!cfEw`P&D3HXG2 z<2*r|!XZdFmSnR;@np?=J)8QAAxhWJPrm9&dlRz13LQBV%y02hNmu5Uk;WAnVZJK^ ziuM;9T`Wc{AVM4qvwGRogjZhI_@*-3osh-Jk?^MirKA3;?4l3!7BH?VU_Bs=

Q@ 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

$UM&EJ)%pLxRgTeLt8D3 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

LIwaKDj7?dc3$`~5t6!zH#l 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

mJYTQe$*9xVk>(RR7L)J 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 v + ` (${states[v]})`, + } + }, + fields, + data, + config: { + rows: ["state", "product_type"], + columns: [], + values: [ + { + field: "profit", + method: "sum" + }, + { + field: "sales", + method: "sum" + }, + // 其他值 + ], + }, + fields, +}); +~~~ + +### 通过 template 辅助函数添加模板 {#adding-a-template-via-the-template-helper} + +要在正文单元格中插入 HTML 内容,请使用 [`pivot.template`](api/helpers/template.md) 辅助函数,并将结果赋值给列对象的 `cell` 属性。通过 [`api.intercept`](api/internal/intercept-method.md) 方法拦截 [`render-table`](api/events/render-table-event.md) 事件,在表格渲染前应用模板。 + +以下示例根据字段(`id`、`user_score`)为正文单元格添加图标(星形或旗帜形): + +~~~js +function cellTemplate(value, method, row, column) { + const field = column.fields ? column.fields[row.$level] : column.field; + + if (field === "id") { + return idTemplate(value); + } + + if (field === "user_score") { + return scoreTemplate(value); + } + + return value; +} + +function idTemplate(value) { + const name = value?.toString().split("-")[0]; + return ` ${value}`; +} + +function scoreTemplate(value) { + return ` ${value}`; +} + +widget.api.intercept("render-table", ({ config: tableConfig }) => { + tableConfig.columns = tableConfig.columns.map((c) => { + if (c.area === "rows") { + // 为 "rows" 区域的列单元格应用模板 + c.cell = pivot.template(({ value, method, row, column }) => cellTemplate(value, method, row, column)); + } + return c; + }); +}); +~~~ + +## 为表头应用模板 {#applying-templates-to-headers} + +### 通过 headerShape 添加模板 {#add-templates-via-headershape} + +要控制表头中的文本格式,请使用 [`headerShape`](api/config/headershape-property.md) 属性的 `template` 参数。该参数为一个函数,其: + +- 接收字段标签、ID 和子标签(方法名,如有) +- 返回处理后的值 + +默认模板为: + +~~~js +template: (label, id, subLabel) => + label + (subLabel ? ` (${subLabel})` : "") +~~~ + +在没有自定义模板的情况下,`values` 区域的字段显示标签和方法(例如 `Oil(count)`),其他区域的字段显示 `label` 值。[`predicates`](api/config/predicates-property.md) 模板会覆盖 `headerShape` 模板。 + +以下示例将表头文本转换为小写,生成如 `profit (sum)` 的标签: + +~~~jsx {3-6} +new pivot.Pivot("#pivot", { + data, + headerShape: { + // 表头文本的自定义模板 + template: (label, id, subLabel) => (label + (subLabel ? ` (${subLabel})` : "")).toLowerCase(), + }, + config: { + rows: ["state", "product_type"], + columns: [], + values: [ + { + field: "profit", + method: "sum" + }, + { + field: "sales", + method: "sum" + }, + // 其他值 + ], + }, + fields, +}); +~~~ + +### 通过 template 辅助函数添加模板 {#add-templates-via-the-template-helper} + +要在表头单元格中插入 HTML 内容,请使用 [`pivot.template`](api/helpers/template.md) 辅助函数,并将结果赋值给表头单元格对象的 `cell` 属性。通过 [`api.intercept`](api/internal/intercept-method.md) 方法拦截 [`render-table`](api/events/render-table-event.md) 事件,在表格渲染前应用模板。 + +以下示例为以下位置添加图标: + +- 基于字段名称的表头标签(例如,`id` 字段显示地球图标) +- 基于单元格值的列表头(根据 `status` 值显示带颜色的箭头指示符) + +~~~jsx +function rowsHeaderTemplate(value, field) { + let icon = ""; + if (field === "id") icon = ""; + if (field === "user_score") icon = ""; + return `${value} ${icon}`; +} + +function statusTemplate(value) { + let icon = ""; + if (value === "Up") icon = ""; + if (value === "Down") icon = ""; + return `${value} ${icon}`; +} + +widget.api.intercept("render-table", ({ config: tableConfig }) => { + tableConfig.columns = tableConfig.columns.map((c) => { + if (c.area === "rows") { + // 为 "rows" 区域列的第一行表头应用模板 + c.header[0].cell = pivot.template(({ value, field }) => rowsHeaderTemplate(value, field)); + } else { + // 显示 "status" 字段值的表头单元格 + const headerCell = c.header.find((h) => h.field === "status"); + if (headerCell) { + headerCell.cell = pivot.template(({ value }) => statusTemplate(value)); + } + } + return c; + }); +}); +~~~ + +## 使列可折叠 {#make-columns-collapsible} + +要允许用户折叠和展开共享表头下的列,请将 [`headerShape`](api/config/headershape-property.md) 属性的 `collapsible` 参数设置为 `true`。 + +以下代码片段启用可折叠表头列: + +~~~jsx {4-6} +const table = new pivot.Pivot("#root", { + fields, + data, + headerShape: { + collapsible: true, + }, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + } +}); +~~~ + +## 冻结列 {#freezing-columns} + +将列冻结在左侧或右侧,使其在表格其余部分滚动时保持可见。使用 [`tableShape`](api/config/tableshape-property.md) 属性的 `split` 参数,并将 `left` 或 `right` 设置为 `true`。 + +### 在左侧冻结列 {#freeze-columns-on-the-left} + +当 `split.left` 为 `true` 时,冻结列数等于 [`config`](api/config/config-property.md) 属性中 `rows` 字段的数量。在树形模式下,无论 `rows` 字段数量多少,仅冻结一列。 + +以下代码片段在左侧冻结一列(定义了一个 `rows` 字段): + +~~~jsx {19} +const table = new pivot.Pivot("#root", { + fields, + data, + config: { + rows: ["studio"], + columns: ["genre"], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + }, + tableShape: { + split: {left: true } + } +}); +~~~ + +要设置自定义分割数量,请监听 [`render-table`](api/events/render-table-event.md) 事件并覆盖 `tableConfig.split`。请避免分割包含合并列的列。 + +以下代码片段在左侧冻结所有 `rows` 列以及两倍 `values` 字段数量的列: + +~~~jsx {19-26} +const table = new pivot.Pivot("#root", { + fields, + data, + config: { + rows: ["continent", "name"], + columns: ["year"], + values: [ + { + field: "oil", + method: "sum" + }, + { + field: "oil", + method: "count" + } + ] + } +}); +table.api.on("render-table", ({ config: tableConfig }) => { + const { config } = table.api.getState(); + + tableConfig.split = { + left: config.rows.length + config.values.length * 2 + }; +}); +~~~ + +### 在右侧冻结列 {#freezing-columns-on-the-right} + +将 `split.right` 设置为 `true` 以在右侧冻结合计列。 + +以下代码片段在右侧冻结合计列: + +~~~jsx {4-7} +const widget = new pivot.Pivot("#pivot", { + fields, + data: dataset, + tableShape:{ + split: {right: true}, + totalColumn: true, + }, + config: { + rows: ["hobbies"], + columns: ["relationship_status"], + values: [ + { + field: "age", + method: "min" + }, + { + field: "age", + method: "max" + } + ] + } +}); +~~~ + +要在右侧冻结自定义数量的列,请监听 [`render-table`](api/events/render-table-event.md) 事件并覆盖 `tableConfig.split`。请避免分割包含合并列的列。 + +以下代码片段在右侧冻结与 `values` 字段数量相同的列: + +~~~jsx {20-25} +const widget = new pivot.Pivot("#pivot", { + fields, + data: dataset, + config: { + rows: ["hobbies"], + columns: ["relationship_status"], + values: [ + { + field: "age", + method: "min" + }, + { + field: "age", + method: "max" + } + ] + } +}); + +widget.api.on("render-table", ({ config: tableConfig }) => { + const { config } = widget.api.getState(); + tableConfig.split = { + right: config.values.length, + } +}) +~~~ + +## 列排序 {#sort-in-columns} + +UI 中的排序功能默认启用——用户单击列表头即可排序。要禁用排序,请将 [`columnShape`](api/config/columnshape-property.md) 属性的 `sort` 参数设置为 `false`。 + +以下代码片段禁用 UI 排序: + +~~~jsx {19} +const table = new pivot.Pivot("#root", { + fields, + data, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + }, + columnShape: { + sort: false + } +}); +~~~ + +有关默认排序、自定义比较器和运行时更新的更多信息,请参见[数据排序](guides/working-with-data.md#sorting-data)。 + +## 启用树形模式 {#enabling-the-tree-mode} + +树形模式以层级结构展示数据,行可展开折叠。将 [`tableShape`](api/config/tableshape-property.md) 属性的 `tree` 参数设置为 `true`(默认值为 `false`)。[`config`](api/config/config-property.md) 中 `rows` 数组的第一个字段成为父行。 + +以下代码片段以 `studio` 为父级、`genre` 为嵌套行启用树形模式: + +~~~jsx {3} +const table = new pivot.Pivot("#root", { + tableShape: { + tree: true + }, + fields, + data: dataset, + config: { + rows: ["studio", "genre"], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + }, + { + field: "episodes", + method: "count" + }, + { + field: "rank", + method: "min" + }, + { + field: "members", + method: "max" + } + ] + } +}); +~~~ + +## 展开或折叠所有行 {#expandingcollapsing-all-rows} + +要以编程方式展开或折叠所有行,请通过 [`tableShape`](api/config/tableshape-property.md) 属性启用树形模式。然后使用 [`getTable`](api/methods/gettable-method.md) 方法获取 Table 组件实例,并通过 Table 的 `api.exec` 方法触发 [`open-row`](api/table/open-row.md) 或 [`close-row`](api/table/close-row.md) 事件。 + +以下示例渲染"展开全部"和"折叠全部"按钮,在树形模式下展开或折叠所有分支: + +~~~jsx +const table = new pivot.Pivot("#root", { + tableShape: { + tree: true + }, + fields, + data: dataset, + config: { + rows: ["type", "studio"], + columns: [], + values: [ + { + field: "score", + method: "max" + }, + { + field: "rank", + method: "min" + }, + { + field: "members", + method: "sum" + }, + { + field: "episodes", + method: "count" + } + ] + } +}); + +const api = table.api; +const tableInstance = api.getTable(); +// 渲染时保持所有表格分支关闭 +api.intercept("render-table", (ev) => { + ev.config.data.forEach((r) => (r.open = false)); + + // 在此返回 false 以阻止表格渲染 + // return false; +}); + +function openAll() { + tableInstance.exec("open-row", { id: 0, nested: true }); +} + +function closeAll() { + tableInstance.exec("close-row", { id: 0, nested: true }); +} + +const openAllButton = document.createElement("button"); +openAllButton.addEventListener("click", openAll); +openAllButton.textContent = "Open all"; + +const closeAllButton = document.createElement("button"); +closeAllButton.addEventListener("click", closeAll); +closeAllButton.textContent = "Close all"; + +document.body.appendChild(openAllButton); +document.body.appendChild(closeAllButton); +~~~ + +## 更改表头文本方向 {#change-header-text-orientation} + +要将表头文本从水平方向旋转为垂直方向,请将 [`headerShape`](api/config/headershape-property.md) 属性的 `vertical` 参数设置为 `true`。 + +以下代码片段渲染垂直表头文本: + +~~~jsx {4-6} +const table = new pivot.Pivot("#root", { + fields, + data, + headerShape: { + vertical: true + }, + config: { + rows: ["studio"], + columns: ["type"], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + } +}); +~~~ + +## 控制配置面板的显示状态 {#controlling-visibility-of-configuration-panel} + +配置面板默认显示。用户可通过**隐藏设置** / **显示设置**按钮切换显示状态。通过 [`configPanel`](api/config/configpanel-property.md) 属性、[`show-config-panel`](api/events/show-config-panel-event.md) 事件或 [`showConfigPanel`](api/methods/showconfigpanel-method.md) 方法以编程方式控制面板。 + +### 隐藏配置面板 {#hide-the-configuration-panel} + +要在初始化时隐藏面板,请将 [`configPanel`](api/config/configpanel-property.md) 属性设置为 `false`。 + +以下代码片段初始化时隐藏面板的 Pivot: + +~~~jsx +// 初始化时隐藏配置面板 +const table = new pivot.Pivot("#root", { + fields, + data: dataset, + configPanel: false, + config: { + rows: ["hobbies"], + columns: ["relationship_status"], + values: [ + { + field: "age", + method: "min" + }, + { + field: "age", + method: "max" + } + ] + } +}); +~~~ + +要在运行时切换面板,请使用 [`api.exec`](api/internal/exec-method.md) 方法触发 [`show-config-panel`](api/events/show-config-panel-event.md) 事件,并将 `mode` 参数设置为 `false`。 + +以下代码片段在初始化后隐藏面板: + +~~~jsx {19-22} +const table = new pivot.Pivot("#root", { + fields, + data, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + } +}); +// 隐藏配置面板 +table.api.exec("show-config-panel", { + mode: false +}); +~~~ + +### 禁用默认切换功能 {#disable-the-default-toggling} + +要完全阻止默认切换按钮,请使用 [`api.intercept`](api/internal/intercept-method.md) 方法拦截 [`show-config-panel`](api/events/show-config-panel-event.md) 事件并返回 `false`。 + +以下代码片段禁用切换按钮: + +~~~jsx {20-22} +const table = new pivot.Pivot("#root", { + fields, + data, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + } +}); + +table.api.intercept("show-config-panel", () => { + return false; +}); +~~~ + +如需使用其他 API,请使用 [`showConfigPanel`](api/methods/showconfigpanel-method.md) 方法。 + +### 面板中的字段操作 {#actions-with-fields-in-the-panel} + +配置面板支持以下字段操作: + +- [`add-field`](api/events/add-field-event.md) — 将字段添加到区域 +- [`delete-field`](api/events/delete-field-event.md) — 从区域移除字段 +- [`update-field`](api/events/update-field-event.md) — 更新字段的方法或设置 +- [`move-field`](api/events/move-field-event.md) — 在区域内对字段重新排序 + +**相关示例:** +- [Pivot 2. 为表格和表头单元格添加文本模板](https://snippet.dhtmlx.com/n9ylp6b2) +- [Pivot 2. 自定义冻结(固定)列(自定义数量)](https://snippet.dhtmlx.com/53erlmgp) +- [Pivot 2. 展开和折叠所有行](https://snippet.dhtmlx.com/i4mi6ejn) +- [Pivot 2. 左侧和右侧的冻结(固定)列](https://snippet.dhtmlx.com/lahf729o) +- [Pivot 2. 排序](https://snippet.dhtmlx.com/j7vtief6) diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/guides/exporting-data.md b/i18n/zh/docusaurus-plugin-content-docs/current/guides/exporting-data.md new file mode 100644 index 0000000..f4801ed --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/guides/exporting-data.md @@ -0,0 +1,45 @@ +--- +sidebar_label: 导出数据 +title: 导出数据 +description: 您可以在 DHTMLX JavaScript Pivot 库的文档中了解如何导出数据。浏览开发者指南和 API 参考,试用代码示例和在线演示,并下载 DHTMLX Pivot 的 30 天免费评估版本。 +--- + +# 导出数据 + +Pivot 通过底层 Table widget 将表格数据导出为 XLSX 或 CSV 格式。使用 [`getTable`](api/methods/gettable-method.md) 方法获取 Table 实例,然后通过 Table 的 [`api.exec`](api/internal/exec-method.md) 方法触发 [`export`](api/table/export.md) 事件。 + +以下示例获取 Table 实例并以 CSV 和 XLSX 格式触发 `export` 事件: + +~~~jsx +const widget = new pivot.Pivot("#root", { /* settings */ }); + +widget.getTable().exec("export", { + options: { + format: "csv", + cols: ";" + } +}); + +widget.getTable().exec("export", { + options: { + format: "xlsx", + fileName: "My Report", + sheetName: "Quarter 1" + } +}); +~~~ + +:::tip +[`getTable`](api/methods/gettable-method.md) 方法接受一个可选的布尔参数 `wait`。传入 `true` 可返回一个 Promise,该 Promise 在 Table API 可用后 resolve。适用于在 Pivot 初始化期间需要 Table API 就绪的场景。 +::: + +## 示例 {#example} + +以下代码片段演示了数据导出: + + + +**相关文章**: + +- [日期格式化](guides/localization.md#date-formatting) +- [`export`](api/table/export.md) diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/guides/initialization.md b/i18n/zh/docusaurus-plugin-content-docs/current/guides/initialization.md new file mode 100644 index 0000000..e79056f --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/guides/initialization.md @@ -0,0 +1,86 @@ +--- +sidebar_label: 初始化 +title: 初始化 +description: 您可以在 DHTMLX JavaScript Pivot 库的文档中了解初始化相关内容。浏览开发者指南和 API 参考,查看代码示例和在线演示,并下载 DHTMLX Pivot 的 30 天免费评估版本。 +--- + +# 初始化 {#initialization} + +本指南介绍如何在页面上创建 Pivot 并为您的应用程序添加 Pivot 表格功能。请按照以下步骤完成组件的初始化: + +1. [在页面中引入 Pivot 源文件](#include-source-files)。 +2. [为 Pivot 创建容器](#create-a-container)。 +3. [使用构造函数初始化 Pivot](#initialize-pivot)。 + +## 引入源文件 {#include-source-files} + +Pivot 应用需要在页面中引入两个源文件。有关下载软件包的说明,请参阅[下载软件包](how-to-start.md#step-1-downloading-and-installing-packages)。 + +请引入以下文件: + +- *pivot.js* +- *pivot.css* + +设置源文件的正确相对路径: + +~~~html title="index.html" + + +~~~ + +## 创建容器 {#create-a-container} + +Pivot 渲染到 HTML 容器元素中。添加一个容器并为其指定 ID,例如 *"root"*: + +~~~html title="index.html" +

+~~~ + +## 初始化 Pivot {#initialize-pivot} + +`pivot.Pivot` 构造函数接受两个参数: + +- HTML 容器的 ID +- 包含配置属性的对象 + +以下代码片段在 *"root"* 容器中创建一个 Pivot 实例,并设置初始字段、数据和结构: + +~~~jsx +// 创建 Pivot +const table = new pivot.Pivot("#root", { + // 配置属性 + fields, + data, + config: { + rows: ["studio", "genre"], + columns: ["title"], + values: [ + { + field: "score", + method: "max" + } + ] + } +}); +~~~ + +构造函数返回一个 Pivot 实例。可在返回的实例上调用以下 API 方法: + +- [`getTable`](api/methods/gettable-method.md) — 获取底层 Table 组件实例 +- [`setConfig`](api/methods/setconfig-method.md) — 更新当前 Pivot 配置 +- [`setLocale`](api/methods/setlocale-method.md) — 为 Pivot 应用新的语言环境 +- [`showConfigPanel`](api/methods/showconfigpanel-method.md) — 显示或隐藏配置面板 + +## 配置属性 {#configuration-properties} + +Pivot 构造函数接受一个包含配置属性的对象,用于控制数据、布局和行为。 + +:::info +有关配置 Pivot 的完整属性列表,请参阅[属性概览](api/overview/properties-overview.md)。 +::: + +## 示例 {#example} + +以下代码片段使用初始数据初始化 Pivot: + + diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/guides/integration-with-angular.md b/i18n/zh/docusaurus-plugin-content-docs/current/guides/integration-with-angular.md new file mode 100644 index 0000000..dfd3525 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/guides/integration-with-angular.md @@ -0,0 +1,325 @@ +--- +sidebar_label: 与 Angular 集成 +title: 与 Angular 集成 +description: 您可以在 DHTMLX JavaScript Pivot 库的文档中了解与 Angular 的集成方法。浏览开发指南和 API 参考,查看代码示例和在线演示,并下载免费 30 天评估版 DHTMLX Pivot。 +--- + +# 与 Angular 集成 {#integration-with-angular} + +:::tip +本文假设您已熟悉 **Angular** 的基本概念和使用模式。如需复习,请参阅 [**Angular 文档**](https://v17.angular.io/docs)。 +::: + +DHTMLX Pivot 可作为普通组件与 **Angular** 集成。完整的可运行示例请参见 [**GitHub 上的 Angular Pivot 演示**](https://github.com/DHTMLX/angular-pivot-demo)。 + +## 创建项目 {#create-a-project} + +:::info +开始之前,请先安装 [**Angular CLI**](https://v1.angular.io/cli) 和 [**Node.js**](https://nodejs.org/en/)。 +::: + +以下命令将创建一个名为 *my-angular-pivot-app* 的新 Angular 项目: + +~~~bash +ng new my-angular-pivot-app +~~~ + +:::note +当 Angular CLI 询问时,请禁用服务器端渲染(SSR)和静态站点生成(SSG/Prerendering)——本指南假设使用客户端渲染应用。 +::: + +该命令会安装所有必要的工具,无需执行其他命令。 + +### 安装依赖 {#install-dependencies} + +切换到新项目目录: + +~~~bash +cd my-angular-pivot-app +~~~ + +使用 [**yarn**](https://yarnpkg.com/) 包管理器安装依赖并启动开发服务器: + +~~~bash +yarn +yarn start # 或者:yarn dev +~~~ + +应用将在本地端口运行(例如 `http://localhost:3000`)。 + +## 创建 Pivot {#create-pivot} + +将 Pivot 包添加到项目中,然后将 Pivot 封装为 Angular 组件。 + +### 第一步:安装包 {#step-1-install-the-package} + +下载 [**试用版 Pivot 包**](how-to-start.md#installing-trial-pivot-via-npm-or-yarn) 并按照 README 中的步骤操作。试用版 Pivot 包有效期为 30 天。 + +### 第二步:创建组件 {#step-2-create-the-component} + +创建一个用于挂载 Pivot 的 Angular 组件。在 *src/app/* 下新建 *pivot* 文件夹,并创建 *src/app/pivot/pivot.component.ts*。然后按以下步骤操作: + +#### 导入源文件 {#import-source-files} + +打开 *src/app/pivot/pivot.component.ts* 并导入 Pivot 包。导入路径取决于所使用的版本: + +- **PRO 版本**(从本地文件夹安装): + +~~~jsx +import { Pivot } from 'dhx-pivot-package'; +~~~ + +- **试用版本**: + +~~~jsx +import { Pivot } from '@dhx/trial-pivot'; +~~~ + +本教程使用 Pivot 的试用版本。 + +#### 设置容器并挂载 Pivot {#set-up-the-container-and-mount-pivot} + +要在页面上显示 Pivot,需在组件模板中定义一个容器元素,然后在 `ngOnInit` 钩子中使用构造函数初始化 Pivot,并在 `ngOnDestroy` 钩子中销毁 Pivot。 + +以下代码片段定义了一个最小化的 Pivot Angular 组件: + +~~~jsx {1,8,12-13,18-19} title="pivot.component.ts" +import { Pivot } from '@dhx/trial-pivot'; +import { Component, ElementRef, OnInit, ViewChild, OnDestroy, ViewEncapsulation } from '@angular/core'; + +@Component({ + encapsulation: ViewEncapsulation.None, + selector: "pivot", // 模板名称,在 "app.component.ts" 文件中以 形式使用 + styleUrls: ["./pivot.component.css"], // 引入 CSS 文件 + template: `
`, +}) + +export class PivotComponent implements OnInit, OnDestroy { + // Pivot 的容器引用 + @ViewChild('container', { static: true }) pivot_container!: ElementRef; + + private _table!: Pivot; + + ngOnInit() { + // 初始化 Pivot 组件 + this._table = new Pivot(this.pivot_container.nativeElement, {}); + } + + ngOnDestroy(): void { + this._table.destructor(); // 卸载时销毁 Pivot + } +} +~~~ + +#### 添加样式 {#add-styles} + +要正确渲染 Pivot,请创建 *src/app/pivot/pivot.component.css*,为页面和 Pivot 容器添加样式: + +~~~css title="pivot.component.css" +/* 导入 Pivot 样式 */ +@import "@dhx/trial-pivot/dist/pivot.css"; + +/* 初始页面样式 */ +html, +body { + margin: 0; + padding: 0; + height: 100%; +} + +/* Pivot 容器样式 */ +.widget { + width: 100%; + height: 100%; +} +~~~ + +#### 加载数据 {#load-data} + +要向 Pivot 提供数据,请准备数据集。创建 *src/app/pivot/data.ts* 并导出数据和字段元数据: + +~~~jsx title="data.ts" +export function getData() { + const dataset = [ + { + "cogs": 51, + "date": "10/1/2018", + "inventory_margin": 503, + "margin": 71, + "market_size": "Major Market", + "market": "Central", + "marketing": 46, + "product_line": "Leaves", + "product_type": "Herbal Tea", + "product": "Lemon", + "profit": -5, + "sales": 122, + "state": "Colorado", + "expenses": 76, + "type": "Decaf" + }, + { + "cogs": 52, + "date": "10/1/2018", + "inventory_margin": 405, + "margin": 71, + "market_size": "Major Market", + "market": "Central", + "marketing": 17, + "product_line": "Leaves", + "product_type": "Herbal Tea", + "product": "Mint", + "profit": 26, + "sales": 123, + "state": "Colorado", + "expenses": 45, + "type": "Decaf" + }, // 其他数据项 + ]; + + const fields: any = [ + { + "id": "cogs", + "label": "Cogs", + "type": "number" + }, + { + "id": "date", + "label": "Date", + "type": "date" + }, // 其他字段 + ]; + + return { dataset, fields }; +}; +~~~ + +打开 *src/app/pivot/pivot.component.ts*,导入 `getData`,并在 `ngOnInit()` 中应用数据集: + +~~~jsx {2,18,20-21} title="pivot.component.ts" +import { Pivot } from '@dhx/trial-pivot'; +import { getData } from "./data"; // 导入数据 +import { Component, ElementRef, OnInit, ViewChild, OnDestroy, ViewEncapsulation } from '@angular/core'; + +@Component({ + encapsulation: ViewEncapsulation.None, + selector: "pivot", + styleUrls: ["./pivot.component.css"], + template: `
`, +}) + +export class PivotComponent implements OnInit, OnDestroy { + @ViewChild('container', { static: true }) pivot_container!: ElementRef; + + private _table!: Pivot; + + ngOnInit() { + const { dataset, fields } = getData(); // 解包数据和字段元数据 + this._table = new Pivot(this.pivot_container.nativeElement, { + fields, + data: dataset, + config: { + rows: ["state", "product_type"], + columns: ["product_line", "type"], + values: [ + { + field: "profit", + method: "sum" + }, // 其他值 + ] + }, + // 其他配置属性 + }); + } + + ngOnDestroy(): void { + this._table.destructor(); + } +} +~~~ + +组件现已可以使用。挂载时,Pivot 将使用提供的数据进行渲染。完整的配置属性列表请参见 [Pivot API 文档](api/overview/properties-overview.md)。 + +#### 处理事件 {#handle-events} + +用户在 Pivot 中的操作会触发相应事件,您可以对这些事件进行订阅。完整的事件列表请参见 [事件概览](api/overview/events-overview.md)。 + +以下代码片段在 `ngOnInit` 中扩展了一个 `open-filter` 事件监听器,当用户打开过滤器时记录字段 ID: + +~~~jsx {18-20} title="pivot.component.ts" +// ... +ngOnInit() { + const { dataset, fields } = getData(); + this._table = new Pivot(this.pivot_container.nativeElement, { + fields, + data: dataset, + config: { + rows: ["state", "product_type"], + columns: ["product_line", "type"], + values: [ + { + field: "profit", + method: "sum" + }, // 其他值 + ] + } + }); + + this._table.api.on("open-filter", (ev) => { + console.log("The field id for which the filter is activated:", ev.id); + }); +} + +ngOnDestroy(): void { + this._table.destructor(); +} +~~~ + +### 第三步:将 Pivot 添加到应用 {#step-3-add-pivot-to-the-app} + +要将 `PivotComponent` 嵌入应用,请打开 *src/app/app.component.ts* 并将默认代码替换为以下内容: + +~~~jsx {5} title="app.component.ts" +import { Component } from "@angular/core"; + +@Component({ + selector: "app-root", + template: `` // 在 "pivot.component.ts" 文件中创建的模板 +}) +export class AppComponent { + name = ""; +} +~~~ + +然后创建 *src/app/app.module.ts* 并注册 `PivotComponent`: + +~~~jsx {4-5,8} title="app.module.ts" +import { NgModule } from "@angular/core"; +import { BrowserModule } from "@angular/platform-browser"; + +import { AppComponent } from "./app.component"; +import { PivotComponent } from "./pivot/pivot.component"; + +@NgModule({ + declarations: [AppComponent, PivotComponent], + imports: [BrowserModule], + bootstrap: [AppComponent] +}) +export class AppModule {} +~~~ + +最后,打开 *src/main.ts* 并将其内容替换为以下引导代码: + +~~~jsx title="main.ts" +import { platformBrowserDynamic } from "@angular/platform-browser-dynamic"; +import { AppModule } from "./app/app.module"; +platformBrowserDynamic() + .bootstrapModule(AppModule) + .catch((err) => console.error(err)); +~~~ + +启动应用,查看 Pivot 在页面上渲染数据的效果。 + +![Pivot 初始化](../assets/trial_pivot.png) + +Pivot 现已与 Angular 集成完毕。您可以根据项目需求自定义配置。完整示例请参见 [**GitHub 上的 angular-pivot-demo**](https://github.com/DHTMLX/angular-pivot-demo)。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/guides/integration-with-react.md b/i18n/zh/docusaurus-plugin-content-docs/current/guides/integration-with-react.md new file mode 100644 index 0000000..57f36ab --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/guides/integration-with-react.md @@ -0,0 +1,289 @@ +--- +sidebar_label: 与 React 集成 +title: 与 React 集成 +description: 您可以在 DHTMLX JavaScript Pivot 库的文档中了解与 React 的集成方式。浏览开发者指南和 API 参考,尝试代码示例和在线演示,并下载 DHTMLX Pivot 的 30 天免费试用版。 +--- + +# 与 React 集成 {#integration-with-react} + +:::tip +本文假定您已熟悉 [**React**](https://react.dev) 的基本概念和模式。如需回顾,请参阅 [**React 文档**](https://react.dev/learn)。 +::: + +DHTMLX Pivot 可作为普通组件与 **React** 集成。完整的示例项目请参见 [**GitHub 上的 React Pivot 演示**](https://github.com/DHTMLX/react-pivot-demo)。 + +## 创建项目 {#create-a-project} + +:::info +开始前请先安装 [**Node.js**](https://nodejs.org/en/)。[**Vite**](https://vite.dev/) 为可选项。 +::: + +创建一个名为 *my-react-pivot-app* 的基础 **React** 项目(或基于 Vite 的项目)。 + +以下命令可引导创建一个 Create React App 项目: + +~~~bash +npx create-react-app my-react-pivot-app +~~~ + +### 安装依赖 {#install-dependencies} + +切换到新建的项目目录: + +~~~bash +cd my-react-pivot-app +~~~ + +使用包管理器安装依赖并启动开发服务器: + +- 使用 [**yarn**](https://yarnpkg.com/): + +~~~bash +yarn +yarn start # 或:yarn dev +~~~ + +- 使用 [**npm**](https://www.npmjs.com/): + +~~~bash +npm install +npm run dev +~~~ + +应用将运行在本地端口(例如 `http://localhost:3000`)。 + +## 创建 Pivot {#create-pivot} + +将 Pivot 包添加到项目中,然后将 Pivot 封装在 React 组件内。 + +### 第一步:安装包 {#step-1-install-the-package} + +下载 [**Pivot 试用包**](how-to-start.md#installing-trial-pivot-via-npm-or-yarn) 并按照 README 中的步骤操作。试用包有效期为 30 天。 + +### 第二步:创建组件 {#step-2-create-the-component} + +创建一个用于挂载 Pivot 的 React 组件。新建文件 *src/Pivot.jsx*。 + +#### 导入源文件 {#import-source-files} + +打开 *src/Pivot.jsx* 并导入 Pivot 源文件。导入路径取决于所使用的包版本: + +- **PRO 版本**(从本地文件夹安装): + +~~~jsx title="Pivot.jsx" +import { Pivot } from 'dhx-pivot-package'; +import 'dhx-pivot-package/dist/pivot.css'; +~~~ + +如果包中包含压缩资源,请导入 *pivot.min.css* 而非 *pivot.css*。 + +- **试用版本**: + +~~~jsx title="Pivot.jsx" +import { Pivot } from '@dhx/trial-pivot'; +import "@dhx/trial-pivot/dist/pivot.css"; +~~~ + +本教程使用 Pivot 的试用版本。 + +#### 设置容器并挂载 Pivot {#set-up-the-container-and-mount-pivot} + +要在页面上显示 Pivot,需创建一个容器 `div`,然后在 `useEffect` hook 中使用构造函数初始化 Pivot。 + +以下代码片段定义了一个最简的 Pivot React 组件: + +~~~jsx {2,6,9-10} title="Pivot.jsx" +import { useEffect, useRef } from "react"; +import { Pivot } from "@dhx/trial-pivot"; +import "@dhx/trial-pivot/dist/pivot.css"; // 引入 Pivot 样式 + +export default function PivotComponent(props) { + let container = useRef(); // Pivot 的容器 ref + + useEffect(() => { + // 初始化 Pivot 组件 + const table = new Pivot(container.current, {}); + + return () => { + table.destructor(); // 卸载时销毁 Pivot + }; + }, []); + + return
; +} +~~~ + +#### 添加样式 {#add-styles} + +为使 Pivot 正确渲染,请将以下样式添加到项目的主 CSS 文件中: + +~~~css title="index.css" +/* 初始页面的样式 */ +html, +body, +#root { + height: 100%; + padding: 0; + margin: 0; +} + +/* Pivot 容器的样式 */ +.widget { + height: 100%; + width: 100%; +} +~~~ + +#### 加载数据 {#load-data} + +要向 Pivot 传入数据,需准备一个数据集。创建 *src/data.js* 并导出数据和字段元数据: + +~~~jsx title="data.js" +export function getData() { + const dataset = [ + { + "cogs": 51, + "date": "10/1/2018", + "inventory_margin": 503, + "margin": 71, + "market_size": "Major Market", + "market": "Central", + "marketing": 46, + "product_line": "Leaves", + "product_type": "Herbal Tea", + "product": "Lemon", + "profit": -5, + "sales": 122, + "state": "Colorado", + "expenses": 76, + "type": "Decaf" + }, + { + "cogs": 52, + "date": "10/1/2018", + "inventory_margin": 405, + "margin": 71, + "market_size": "Major Market", + "market": "Central", + "marketing": 17, + "product_line": "Leaves", + "product_type": "Herbal Tea", + "product": "Mint", + "profit": 26, + "sales": 123, + "state": "Colorado", + "expenses": 45, + "type": "Decaf" + }, // 其他数据项 + ]; + + const fields = [ + { + "id": "cogs", + "label": "Cogs", + "type": "number" + }, + { + "id": "date", + "label": "Date", + "type": "date" + }, // 其他字段 + ]; + + return { dataset, fields }; +}; +~~~ + +打开 *src/App.js*,导入数据并将其作为 props 传递给 `` 组件: + +~~~jsx {2,5-6} title="App.js" +import Pivot from "./Pivot"; +import { getData } from "./data"; + +function App() { + const { fields, dataset } = getData(); + return ; +} + +export default App; +~~~ + +打开 *src/Pivot.jsx*,对 props 进行解构,并将其应用到 Pivot 的配置对象中: + +~~~jsx {5,10-11} title="Pivot.jsx" +import { useEffect, useRef } from "react"; +import { Pivot } from "@dhx/trial-pivot"; +import "@dhx/trial-pivot/dist/pivot.css"; + +export default function PivotComponent({ fields, dataset }) { + let container = useRef(); + + useEffect(() => { + const table = new Pivot(container.current, { + fields, + data: dataset, + config: { + rows: ["state", "product_type"], + columns: ["product_line", "type"], + values: [ + { + field: "profit", + method: "sum" + }, // 其他值 + ] + }, + // 其他配置属性 + }); + + return () => { + table.destructor(); + } + }, []); + + return
; +} +~~~ + +组件现已可以使用。挂载时,Pivot 将使用传入的数据进行渲染。完整的配置属性列表,请参见 [Pivot API 文档](api/overview/properties-overview.md)。 + +#### 处理事件 {#handle-events} + +用户在 Pivot 中的操作会触发相应事件,您可以订阅这些事件。完整的事件列表,请参见[事件概览](api/overview/events-overview.md)。 + +以下代码片段在 `useEffect` 中扩展了一个 `open-filter` 事件监听器,当用户打开过滤器时记录字段 ID: + +~~~jsx {19-21} title="Pivot.jsx" +// ... +useEffect(() => { + const table = new Pivot(container.current, { + fields, + data: dataset, + config: { + rows: ["state", "product_type"], + columns: ["product_line", "type"], + values: [ + { + field: "profit", + method: "sum" + }, // 其他值 + ] + }, + // 其他配置属性 + }); + + table.api.on("open-filter", (ev) => { + console.log("激活过滤器的字段 id:", ev.id); + }); + + return () => { + table.destructor(); + } +}, []); +// ... +~~~ + +启动应用,即可看到 Pivot 在页面上渲染数据。 + +![Pivot 初始化](../assets/trial_pivot.png) + +Pivot 现已成功与 React 集成。可根据项目需求自定义配置。完整示例请参见 [**GitHub 上的 react-pivot-demo**](https://github.com/DHTMLX/react-pivot-demo)。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/guides/integration-with-svelte.md b/i18n/zh/docusaurus-plugin-content-docs/current/guides/integration-with-svelte.md new file mode 100644 index 0000000..f76d1f9 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/guides/integration-with-svelte.md @@ -0,0 +1,302 @@ +--- +sidebar_label: 与 Svelte 集成 +title: 与 Svelte 集成 +description: 您可以在 DHTMLX JavaScript Pivot 库的文档中了解与 Svelte 的集成方式。浏览开发者指南和 API 参考,查看代码示例和在线演示,并下载 30 天免费评估版 DHTMLX Pivot。 +--- + +# 与 Svelte 集成 {#integration-with-svelte} + +:::tip +本文假设您已熟悉 **Svelte** 的基本概念和模式。如需回顾,请参阅 [**Svelte 文档**](https://svelte.dev/)。 +::: + +DHTMLX Pivot 可作为普通组件与 **Svelte** 集成。完整的可运行示例请参见 [**GitHub 上的 Svelte Pivot 演示**](https://github.com/DHTMLX/svelte-pivot-demo)。 + +## 创建项目 {#create-a-project} + +:::info +开始前请先安装 [**Node.js**](https://nodejs.org/en/)。[**Vite**](https://vite.dev/) 为可选项。 +::: + +以下命令将运行 Vite 项目脚手架工具,并允许您选择 Svelte 模板: + +~~~bash +npm create vite@latest +~~~ + +将项目命名为 *my-svelte-pivot-app*。 + +### 安装依赖 {#install-dependencies} + +切换至新建的项目目录: + +~~~bash +cd my-svelte-pivot-app +~~~ + +使用包管理器安装依赖并启动开发服务器: + +- 使用 [**yarn**](https://yarnpkg.com/): + +~~~bash +yarn +yarn start # 或:yarn dev +~~~ + +- 使用 [**npm**](https://www.npmjs.com/): + +~~~bash +npm install +npm run dev +~~~ + +应用将在本地端口运行(例如 `http://localhost:3000`)。 + +## 创建 Pivot {#create-pivot} + +将 Pivot 包添加到项目中,然后将 Pivot 封装为 Svelte 组件。 + +### 第一步:安装包 {#step-1-install-the-package} + +下载 [**Pivot 试用包**](how-to-start.md#installing-trial-pivot-via-npm-or-yarn) 并按照 README 中的步骤操作。试用版 Pivot 包有效期为 30 天。 + +### 第二步:创建组件 {#step-2-create-the-component} + +创建一个挂载 Pivot 的 Svelte 组件。新建文件 *src/Pivot.svelte*。 + +#### 导入源文件 {#import-source-files} + +打开 *src/Pivot.svelte* 并导入 Pivot 源文件。导入路径取决于包的版本: + +- **PRO 版本**(从本地文件夹安装): + +~~~html title="Pivot.svelte" + +~~~ + +如果包附带压缩资源,请将 *pivot.css* 替换为 *pivot.min.css*。 + +- **试用版本**: + +~~~html title="Pivot.svelte" + +~~~ + +本教程使用 Pivot 的试用版本。 + +#### 设置容器并挂载 Pivot {#set-up-the-container-and-mount-pivot} + +要在页面上显示 Pivot,请添加一个容器 `div`,然后在 `onMount` 生命周期钩子中使用构造函数初始化 Pivot,并在 `onDestroy` 钩子中销毁 Pivot。 + +以下代码片段定义了一个最简 Pivot Svelte 组件: + +~~~html {3,6,10-11,19} title="Pivot.svelte" + + +
+~~~ + +#### 添加样式 {#add-styles} + +要使 Pivot 正确渲染,请将以下样式添加到项目的主 CSS 文件中: + +~~~css title="main.css" +/* 初始页面的样式 */ +html, +body, +#app { /* 使用 #app 根容器 */ + height: 100%; + padding: 0; + margin: 0; +} + +/* Pivot 容器的样式 */ +.widget { + height: 100%; + width: 100%; +} +~~~ + +#### 加载数据 {#load-data} + +要向 Pivot 传入数据,请准备一个数据集。创建 *src/data.js* 并导出数据和字段元数据: + +~~~jsx title="data.js" +export function getData() { + const dataset = [ + { + "cogs": 51, + "date": "10/1/2018", + "inventory_margin": 503, + "margin": 71, + "market_size": "Major Market", + "market": "Central", + "marketing": 46, + "product_line": "Leaves", + "product_type": "Herbal Tea", + "product": "Lemon", + "profit": -5, + "sales": 122, + "state": "Colorado", + "expenses": 76, + "type": "Decaf" + }, + { + "cogs": 52, + "date": "10/1/2018", + "inventory_margin": 405, + "margin": 71, + "market_size": "Major Market", + "market": "Central", + "marketing": 17, + "product_line": "Leaves", + "product_type": "Herbal Tea", + "product": "Mint", + "profit": 26, + "sales": 123, + "state": "Colorado", + "expenses": 45, + "type": "Decaf" + }, // 其他数据项 + ]; + + const fields = [ + { + "id": "cogs", + "label": "Cogs", + "type": "number" + }, + { + "id": "date", + "label": "Date", + "type": "date" + }, // 其他字段 + ]; + + return { dataset, fields }; +}; +~~~ + +打开 *src/App.svelte*,导入数据并将其作为 props 传递给新的 `` 组件: + +~~~html {3,5,8} title="App.svelte" + + + +~~~ + +打开 *src/Pivot.svelte*,使用 `export let` 声明传入的 props,并将其应用到 Pivot 配置对象中: + +~~~html {6-7,14-15} title="Pivot.svelte" + + +
+~~~ + +组件现已准备好使用。挂载时,Pivot 将使用所提供的数据进行渲染。完整的配置属性列表请参见 [Pivot API 文档](api/overview/properties-overview.md)。 + +#### 处理事件 {#handle-events} + +用户在 Pivot 中的操作会触发可订阅的事件。完整的事件列表请参见 [事件概览](api/overview/events-overview.md)。 + +以下代码片段在 `onMount` 中扩展了一个 `open-filter` 事件监听器,当用户打开筛选器时记录字段 ID: + +~~~html {22-24} title="Pivot.svelte" + + +// ... +~~~ + +启动应用,即可看到 Pivot 在页面上渲染数据。 + +![Pivot 初始化](../assets/trial_pivot.png) + +Pivot 现已与 Svelte 集成完成。您可以根据项目需求自定义配置。完整示例请参见 [**GitHub 上的 svelte-pivot-demo**](https://github.com/DHTMLX/svelte-pivot-demo)。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/guides/integration-with-vue.md b/i18n/zh/docusaurus-plugin-content-docs/current/guides/integration-with-vue.md new file mode 100644 index 0000000..9d1d881 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/guides/integration-with-vue.md @@ -0,0 +1,312 @@ +--- +sidebar_label: 与 Vue 集成 +title: 与 Vue 集成 +description: 您可以在 DHTMLX JavaScript Pivot 库的文档中了解与 Vue 的集成方式。浏览开发指南和 API 参考,查看代码示例和在线演示,并下载 DHTMLX Pivot 免费 30 天评估版本。 +--- + +# 与 Vue 集成 {#integration-with-vue} + +:::tip +本文假设您已具备 [**Vue**](https://vuejs.org/) 基本概念和模式的相关知识。如需复习,请参阅 [**Vue 3 文档**](https://vuejs.org/guide/introduction.html#getting-started)。 +::: + +DHTMLX Pivot 可作为普通组件与 **Vue** 集成。完整的工作示例请参见 [**GitHub 上的 Vue Pivot 演示**](https://github.com/DHTMLX/vue-pivot-demo)。 + +## 创建项目 {#create-a-project} + +:::info +开始之前,请先安装 [**Node.js**](https://nodejs.org/en/)。 +::: + +以下命令将运行官方的 **Vue** 项目脚手架工具: + +~~~bash +npm create vue@latest +~~~ + +该命令会安装并执行 `create-vue`。详情请参阅 [Vue.js 快速入门](https://vuejs.org/guide/quick-start.html#creating-a-vue-application)。 + +将项目命名为 *my-vue-pivot-app*。 + +### 安装依赖 {#install-dependencies} + +进入新建的项目目录: + +~~~bash +cd my-vue-pivot-app +~~~ + +使用您的包管理器安装依赖并启动开发服务器: + +- 使用 [**yarn**](https://yarnpkg.com/): + +~~~bash +yarn +yarn start # 或:yarn dev +~~~ + +- 使用 [**npm**](https://www.npmjs.com/): + +~~~bash +npm install +npm run dev +~~~ + +应用将运行在本地端口上(例如 `http://localhost:3000`)。 + +## 创建 Pivot {#create-pivot} + +将 Pivot 包添加到项目中,然后将 Pivot 封装为一个 Vue 组件。 + +### 第一步:安装包 {#step-1-install-the-package} + +下载 [**Pivot 试用包**](how-to-start.md#installing-trial-pivot-via-npm-or-yarn) 并按照 README 中的步骤操作。Pivot 试用包有效期为 30 天。 + +### 第二步:创建组件 {#step-2-create-the-component} + +创建一个用于挂载 Pivot 的 Vue 组件。新建文件 *src/components/Pivot.vue*。 + +#### 导入源文件 {#import-source-files} + +打开 *src/components/Pivot.vue* 并导入 Pivot 源文件。导入路径取决于所使用的包版本: + +- **PRO 版本**(从本地文件夹安装): + +~~~html title="Pivot.vue" + +~~~ + +如果包附带的是压缩资源,请导入 *pivot.min.css* 而非 *pivot.css*。 + +- **试用版本**: + +~~~html title="Pivot.vue" + +~~~ + +本教程使用 Pivot 的试用版本。 + +#### 设置容器并挂载 Pivot {#set-up-the-container-and-mount-pivot} + +要在页面上显示 Pivot,需添加一个容器 `div`,然后在 `mounted` 钩子中使用构造函数初始化 Pivot,并在 `unmounted` 钩子中销毁 Pivot。 + +以下代码片段定义了一个最简化的 Pivot Vue 组件: + +~~~html {2,7-8,18} title="Pivot.vue" + + + +~~~ + +#### 添加样式 {#add-styles} + +为确保 Pivot 正确渲染,请将以下样式添加到项目的主 CSS 文件中: + +~~~css title="style.css" +/* 初始页面的样式 */ +html, +body, +#app { /* 使用 #app 根容器 */ + height: 100%; + padding: 0; + margin: 0; +} + +/* Pivot 容器的样式 */ +.widget { + width: 100%; + height: 100%; +} +~~~ + +#### 加载数据 {#load-data} + +要向 Pivot 传入数据,需准备一个数据集。创建 *src/data.js* 并导出数据及字段元数据: + +~~~jsx title="data.js" +export function getData() { + const dataset = [ + { + "cogs": 51, + "date": "10/1/2018", + "inventory_margin": 503, + "margin": 71, + "market_size": "Major Market", + "market": "Central", + "marketing": 46, + "product_line": "Leaves", + "product_type": "Herbal Tea", + "product": "Lemon", + "profit": -5, + "sales": 122, + "state": "Colorado", + "expenses": 76, + "type": "Decaf" + }, + { + "cogs": 52, + "date": "10/1/2018", + "inventory_margin": 405, + "margin": 71, + "market_size": "Major Market", + "market": "Central", + "marketing": 17, + "product_line": "Leaves", + "product_type": "Herbal Tea", + "product": "Mint", + "profit": 26, + "sales": 123, + "state": "Colorado", + "expenses": 45, + "type": "Decaf" + }, // 其他数据项 + ]; + + const fields = [ + { + "id": "cogs", + "label": "Cogs", + "type": "number" + }, + { + "id": "date", + "label": "Date", + "type": "date" + }, // 其他字段 + ]; + + return { dataset, fields }; +}; +~~~ + +打开 *src/App.vue*,导入数据并通过 `data()` 选项暴露数据,然后将值作为 props 传递给新的 `` 组件: + +~~~html {3,7-13,18} title="App.vue" + + + +~~~ + +打开 *src/components/Pivot.vue*,声明传入的 props 并将其应用到 Pivot 配置对象中: + +~~~html {6,10-11} title="Pivot.vue" + + + +~~~ + +组件现已可以使用。挂载后,Pivot 将使用所提供的数据进行渲染。完整的配置属性列表,请参阅 [Pivot API 文档](api/overview/properties-overview.md)。 + +#### 处理事件 {#handle-events} + +用户在 Pivot 中的操作会触发相应的事件,您可以订阅这些事件。完整的事件列表,请参阅[事件概览](api/overview/events-overview.md)。 + +以下代码片段在 `mounted` 中添加了一个 `open-filter` 事件监听器,当用户打开筛选器时,它会记录对应的字段 ID: + +~~~html {22-24} title="Pivot.vue" + + +// ... +~~~ + +启动应用,即可看到 Pivot 在页面上渲染数据。 + +![Pivot 初始化](../assets/trial_pivot.png) + +Pivot 现已与 Vue 完成集成。您可以根据项目需求自定义配置。完整示例请参见 [**GitHub 上的 vue-pivot-demo**](https://github.com/DHTMLX/vue-pivot-demo)。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/guides/loading-data.md b/i18n/zh/docusaurus-plugin-content-docs/current/guides/loading-data.md new file mode 100644 index 0000000..ee09b36 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/guides/loading-data.md @@ -0,0 +1,279 @@ +--- +sidebar_label: 加载数据 +title: 加载数据 +description: 您可以在 DHTMLX JavaScript Pivot 库的文档中了解如何加载数据。浏览开发者指南和 API 参考,试用代码示例和在线演示,并下载 DHTMLX Pivot 的 30 天免费评估版本。 +--- + +# 加载数据 {#loading-data} + +Pivot 通过 [`data`](api/config/data-property.md) 属性接受 JSON 格式的数据。Pivot 也支持将 CSV 数据转换为 JSON 后再加载。 + +## 准备加载数据 {#prepare-data-for-loading} + +[`data`](api/config/data-property.md) 属性接受一个对象数组,其中每个对象代表一行数据。每个对象的键定义了 Pivot 表中使用的维度和值。 + +以下代码片段定义了一个示例 `data` 数组: + +~~~jsx +const data = [ + { + name: "Argentina", + year: 2015, + continent: "South America", + form: "Republic", + gdp: 181.357, + oil: 1.545, + balance: 4.699, + when: new Date("4/21/2015") + }, + { + name: "Argentina", + year: 2017, + continent: "South America", + form: "Republic", + gdp: 212.507, + oil: 1.732, + balance: 7.167, + when: new Date("1/15/2017") + }, + { + name: "Argentina", + year: 2014, + continent: "South America", + form: "Republic", + gdp: 260.071, + oil: 2.845, + balance: 6.728, + when: new Date("6/16/2014") + }, + { + name: "Argentina", + year: 2014, + continent: "South America", + form: "Republic", + gdp: 324.405, + oil: 4.333, + balance: 5.99, + when: new Date("2/20/2014") + }, + { + name: "Argentina", + year: 2014, + continent: "South America", + form: "Republic", + gdp: 305.763, + oil: 2.626, + balance: 7.544, + when: new Date("8/17/2014") + }, + // 其他数据 +]; +~~~ + +:::info +有关定义字段和 Pivot 结构的信息,请参阅[数据操作](guides/working-with-data.md)。 +::: + +## 从文件加载数据 {#load-data-from-a-file} + +Pivot 在初始化后从外部文件加载 JSON 数据。请准备一个包含数据、字段和配置的源文件。 + +以下代码片段在单独的文件中定义了 `data`、`fields` 以及 `getData()` 访问器: + +~~~jsx +function getData() { + return { + data, + config: { + rows: ["continent", "name"], + columns: ["year"], + values: [ + "count(oil)", + { field: "oil", method: "sum" }, + { field: "gdp", method: "sum" } + ], + filters: { + genre: { + contains: "D", + includes: ["Drama"], + } + } + }, + fields + }; +} +const fields = [ + { id: "year", label: "Year", type: "number" }, + { id: "continent", label: "Continent", type: "text" }, + { id: "form", label: "Form", type: "text" }, + { id: "oil", label: "Oil", type: "number" }, + { id: "balance", label: "Balance", type: "number" } +]; + +const data = [ + { + name: "Argentina", + year: 2015, + continent: "South America", + form: "Republic", + gdp: 181.357, + oil: 1.545, + balance: 4.699, + when: new Date("4/21/2015") + }, + // 其他数据 +]; +~~~ + +在页面标记中添加源数据文件的路径: + +~~~html title="index.html" + + + + +~~~ + +以下代码片段创建 Pivot 并从准备好的文件中加载数据: + +~~~jsx +const { data, config, fields } = getData(); +const table = new pivot.Pivot("#root", { data, config, fields }); +~~~ + +## 从服务器加载数据 {#load-data-from-a-server} + +要从服务器端点加载数据,请使用原生 `fetch` 方法(或任何等效方法)发送请求,然后将响应传递给 [`setConfig`](api/methods/setconfig-method.md),该方法会更新 Pivot 配置并保留之前设置的选项。 + +以下代码片段以空数据初始化 Pivot,从服务器获取数据和字段,然后通过 `setConfig` 应用它们: + +~~~jsx +const table = new pivot.Pivot("#root", { fields: [], data: [] }); +const server = "https://some-backend-url"; + +Promise.all([ + fetch(server + "/data").then((res) => res.json()), + fetch(server + "/fields").then((res) => res.json()) +]).then(([data, fields]) => { + table.setConfig({ data, fields }); +}); +~~~ + +有关更多信息,请参阅以下主题:[与服务器协作](/guides/working-with-server) + +## 加载 CSV 数据 {#load-csv-data} + +Pivot 支持通过外部 JS 解析库将 CSV 数据转换为 JSON 后再加载。转换后的数据与原生 JSON 的行为相同。 + +以下示例使用外部 [PapaParse](https://cdnjs.cloudflare.com/ajax/libs/PapaParse/5.4.1/papaparse.min.js) 库在点击按钮时加载并转换数据。`convert()` 辅助函数接受以下参数: + +- `data` — 包含 CSV 数据的字符串 +- `headers` — CSV 字段名称的数组 +- `meta` — 将字段名称映射到数据类型的对象 + +以下代码片段创建 Pivot,定义 `convert()` 辅助函数,并在点击按钮时通过 [`setConfig`](api/methods/setconfig-method.md) 应用解析后的 CSV 数据: + +~~~jsx +const table = new pivot.Pivot("#root", { + fields, + data: dataset, + config: { + rows: [ + "studio", + "genre" + ], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + } +}); + +function convert(data, headers, meta) { + const header = headers.join(",") + "\n"; + const processedData = header + data; + + return Papa.parse(processedData, { + header: true, + dynamicTyping: true, + transform: (v, f) => { + return meta && meta[f] === "date" ? new Date(v) : v; + } + }); +} + +function fromCSV() { + const fields = [ + { id: "name", label: "Name", type: "text" }, + { id: "continent", label: "Continent", type: "text" }, + { id: "form", label: "Form", type: "text" }, + { id: "gdp", label: "GDP", type: "number" }, + { id: "oil", label: "Oil", type: "number" }, + { id: "balance", label: "Balance", type: "number" }, + { id: "year", label: "Year", type: "number" }, + { id: "when", label: "When", type: "date" } + ]; + + const config = { + rows: ["continent", "name"], + columns: ["year"], + values: [ + "count(oil)", + { field: "oil", method: "sum" }, + { field: "gdp", method: "sum" } + ] + }; + + const headers = [ + "name", + "year", + "continent", + "form", + "gdp", + "oil", + "balance", + "when" + ]; + + // 显式标记日期字段以进行正确转换 + const meta = { when: "date" }; + + const dataURL = "https://some-backend-url"; + fetch(dataURL) + .then(response => response.text()) + .then(text => convert(text, headers, meta)) + .then(data => { + table.setConfig({ + data: data.data, + fields, + config + }); + }); +} + +const importButton = document.createElement("button"); +importButton.addEventListener("click", fromCSV); +importButton.textContent = "Import"; + +document.body.appendChild(importButton); +~~~ + +## 示例 {#example} + +以下代码片段演示了如何加载 JSON 和 CSV 数据: + + + +**相关示例:** +- [Pivot 2. 日期格式](https://snippet.dhtmlx.com/shn1l794) +- [Pivot 2. 不同数据集](https://snippet.dhtmlx.com/6xtqge4i) +- [Pivot 2. 大型数据集](https://snippet.dhtmlx.com/e6qwqrys) + +**相关文章**:[日期格式化](guides/localization.md#date-formatting) diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/guides/localization.md b/i18n/zh/docusaurus-plugin-content-docs/current/guides/localization.md new file mode 100644 index 0000000..8e223cd --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/guides/localization.md @@ -0,0 +1,293 @@ +--- +sidebar_label: 本地化 +title: 本地化 +description: 您可以在 DHTMLX JavaScript Pivot 库的文档中了解本地化相关内容。浏览开发者指南和 API 参考,查看代码示例和在线演示,并下载 DHTMLX Pivot 的 30 天免费评估版本。 +--- + +# 本地化 {#localization} + +Pivot 支持对界面中的所有标签进行本地化。您可以创建新的语言区域设置,或修改内置区域设置,然后通过 [`locale`](api/config/locale-property.md) 属性或 [`setLocale`](api/methods/setlocale-method.md) 方法将其应用到 Pivot。 + +## 默认区域设置 {#default-locale} + +Pivot 默认使用英语区域设置。以下代码片段展示了内置 `en` 区域设置的结构: + +~~~jsx +const en = { + // pivot + pivot: { + sum: "Sum", + min: "Min", + max: "Max", + count: "Count", + counta: "CountA", + countunique: "CountUnique", + average: "Average", + median: "Median", + product: "Product", + stdev: "StDev", + stdevp: "StDevP", + var: "Var", + varp: "VarP", + "Raw date": "Raw date", + "Raw number": "Raw number", + "Raw text": "Raw text", + Year: "Year", + Month: "Month", + Day: "Day", + Hour: "Hour", + Minute: "Minute", + Total: "Total", + Values: "Values", + Rows: "Rows", + Columns: "Columns", + "Click on the plus icon(s) to add data": + "Click on the plus icon(s) to add data", + 'Click on "Show settings" to see the available configuration options': + 'Click on "Show settings" to see the available configuration options', + "Show settings": "Show settings", + "Hide settings": "Hide settings" + }, + + // query + query: { + "Add filter": "Add filter", + "Add Filter": "Add Filter", + "Add Group": "Add Group", + Edit: "Edit", + Delete: "Delete", + + "Select all": "Select all", + "Unselect all": "Unselect all", + + Cancel: "Cancel", + Apply: "Apply", + + and: "and", + or: "or", + in: "in", + + equal: "equal", + "not equal": "not equal", + contains: "contains", + "not contains": "not contains", + "begins with": "begins with", + "not begins with": "not begins with", + "ends with": "ends with", + "not ends with": "not ends with", + + greater: "greater", + "greater or equal": "greater or equal", + less: "less", + "less or equal": "less or equal", + between: "between", + "not between": "not between" + }, + + // calendar + calendar: { + monthFull: [ + "January", + "February", + "March", + "April", + "May", + "June", + "July", + "August", + "September", + "October", + "November", + "December", + ], + monthShort: [ + "Jan", + "Feb", + "Mar", + "Apr", + "May", + "Jun", + "Jul", + "Aug", + "Sep", + "Oct", + "Nov", + "Dec", + ], + + dayFull: [ + "Sunday", + "Monday", + "Tuesday", + "Wednesday", + "Thursday", + "Friday", + "Saturday", + ], + + dayShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], + hours: "Hours", + minutes: "Minutes", + done: "Done", + clear: "Clear", + today: "Today", + am: ["am", "AM"], + pm: ["pm", "PM"], + + weekStart: 7, + clockFormat: 24, + }, + + // core + core: { + ok: "OK", + cancel: "Cancel", + select: "Select", + "No data": "No data" + }, + + // formats + formats: { + dateFormat: "%d.%m.%Y", + timeFormat: "%H:%i" + }, + + lang: "en-US", +}; +~~~ + +## 应用区域设置 {#apply-a-locale} + +Pivot 通过 `pivot.locales` 对象提供三个内置区域设置:`en`、`de` 和 `cn`。在初始化时,将内置区域设置传入 [`locale`](api/config/locale-property.md) 属性即可。 + +以下代码片段展示了如何使用德语区域设置初始化 Pivot: + +~~~jsx +new pivot.Pivot("#root", { + // other properties + locale: pivot.locales.de, +}); +~~~ + +要应用自定义区域设置,请执行以下操作: + +- 创建一个区域设置对象(或修改内置区域设置),并为所有文本标签提供翻译(支持任何语言) +- 通过 [`locale`](api/config/locale-property.md) 属性或 [`setLocale`](api/methods/setlocale-method.md) 方法将区域设置应用到 Pivot + +以下代码片段创建了 Pivot,然后在运行时通过 `setLocale` 应用自定义的韩语区域设置: + +~~~jsx +// create Pivot +const widget = new pivot.Pivot("#root", { + data, + // other configuration properties +}); + +const ko = { /* object with locale */ }; +widget.setLocale(ko); +~~~ + +:::tip +调用 [`setLocale`](api/methods/setlocale-method.md) 时不传参数(或传入 `null`)可将 Pivot 重置为默认的英语区域设置。 +::: + +## 格式化日期 {#date-formatting} + +Pivot 接受 `Date` 对象形式的日期。在将数据传入 Pivot 之前,请先将字符串值解析为 `Date` 对象。默认的 `dateFormat` 为 `"%d.%m.%Y"`,取自当前区域设置。 + +若要更改所有日期字段的格式,请在 [`locale`](api/config/locale-property.md) 属性的 `formats` 对象中设置新的 `dateFormat` 值。 + +以下代码片段将字符串日期解析为 `Date` 对象,然后使用自定义 `dateFormat` 初始化 Pivot,并在运行时通过 `setConfig` 更新格式: + +~~~jsx {17} +function setFormat(value) { + table.setConfig({ locale: { formats: { dateFormat: value } } }); +} + +// convert date strings to Date objects +const dateFields = fields.filter((f) => f.type == "date"); +if (dateFields.length) { + dataset.forEach((item) => { + dateFields.forEach((f) => { + const v = item[f.id]; + if (typeof v == "string") item[f.id] = new Date(v); + }); + }); +} + +const table = new pivot.Pivot("#root", { + locale: { formats: { dateFormat: "%d %M %Y %H:%i" } }, + fields, + data: dataset, + config: { + rows: ["state"], + columns: ["product_line", "product_type"], + values: [ + { + field: "date", + method: "min" + }, + { + field: "profit", + method: "sum" + }, + { + field: "sales", + method: "sum" + } + ] + } +}); +~~~ + +要为特定字段设置自定义格式,请使用 [`fields`](api/config/fields-property.md) 属性的 `format` 参数。请参阅[为字段应用格式](guides/working-with-data.md#applying-formats-to-fields)。 + +## 日期和时间格式字符 {#date-and-time-format-characters} + +Pivot 使用以下字符定义日期和时间格式: + +| 字符 | 含义 | 示例 | +| :-------- | :------------------------------------------------ |:------------------------| +| %d | 带前导零的日期数字 | 从 01 到 31 | +| %j | 不带前导零的日期数字 | 从 1 到 31 | +| %D | 星期的缩写名称 | Su Mo Tu Sat | +| %l | 星期的完整名称 | Sunday Monday Tuesday | +| %W | 带前导零的周数(以周一为一周的第一天) | 从 01 到 52/53 | +| %m | 带前导零的月份数字 | 从 01 到 12 | +| %n | 不带前导零的月份数字 | 从 1 到 12 | +| %M | 月份的缩写名称 | Jan Feb Mar | +| %F | 月份的完整名称 | January February March | +| %y | 两位数年份 | 24 | +| %Y | 四位数年份 | 2024 | +| %h | 带前导零的 12 小时制小时数 | 从 01 到 12 | +| %g | 不带前导零的 12 小时制小时数 | 从 1 到 12 | +| %H | 带前导零的 24 小时制小时数 | 从 00 到 23 | +| %G | 不带前导零的 24 小时制小时数 | 从 0 到 23 | +| %i | 带前导零的分钟数 | 从 01 到 59 | +| %s | 带前导零的秒数 | 从 01 到 59 | +| %S | 毫秒数 | 128 | +| %a | am 或 pm | am(午夜到正午)和 pm(正午到午夜)| +| %A | AM 或 PM | AM(午夜到正午)和 PM(正午到午夜)| +| %c | 以 ISO 8601 格式显示日期和时间 | 2024-10-04T05:04:09 | + +要将 2024 年 9 月 20 日 16:47:08.128 表示为 *2024-09-20 16:47:08.128*,请使用格式 `"%Y-%m-%d %H:%i:%s.%S"`。 + +## 格式化数字 {#number-formatting} + +Pivot 根据当前区域设置的 `lang` 值对所有 `number` 类型字段进行本地化处理。该 widget 遵循 [`Intl.NumberFormat`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat) 规范。默认设置将小数位数限制为 3 位,并对整数部分应用千位分隔符。 + +若要跳过对特定数字字段的格式化,或设置自定义格式,请使用 [`fields`](api/config/fields-property.md) 属性的 `format` 参数。将 `format` 设置为 `false` 可禁用格式化,也可将其设置为包含格式配置的对象(请参阅[为字段应用格式](guides/working-with-data.md#applying-formats-to-fields))。 + +以下代码片段禁用了 `year` 字段的数字格式化: + +~~~jsx +const fields = [ + { id: "year", label: "Year", type: "number", format: false }, +]; +~~~ + +## 示例 {#example} + +以下代码片段演示了在多个区域设置之间切换: + + diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/guides/stylization.md b/i18n/zh/docusaurus-plugin-content-docs/current/guides/stylization.md new file mode 100644 index 0000000..544a596 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/guides/stylization.md @@ -0,0 +1,266 @@ +--- +sidebar_label: 样式 +title: 样式 +description: 您可以在 DHTMLX JavaScript Pivot 库的文档中了解有关样式的相关内容。浏览开发者指南和 API 参考,查看代码示例和在线演示,并下载免费的 30 天评估版 DHTMLX Pivot。 +--- + +# 样式 {#styling} + +Pivot 内置了默认主题,并提供 CSS 变量和工具类以供自定义。在 widget 容器(或任意祖先元素)上覆盖这些变量,即可更改颜色、边框等视觉属性。 + +## 默认样式 {#default-style} + +Pivot 的默认主题为 **Material**。以下 CSS 代码片段展示了 Material 主题在 widget 容器上设置的变量: + +~~~css +.wx-material-theme { + --wx-theme-name: material; + --wx-pivot-primary-hover: #194e9e; + --wx-pivot-border-color: var(--wx-color-font-disabled); + --wx-pivot-field-hover: linear-gradient( + rgba(0, 0, 0, 0.1) 0%, + rgba(0, 0, 0, 0.1) 100% + ); +} +~~~ + +:::tip 注意 +未来版本的 Pivot 可能会重命名 CSS 变量。升级后请检查变量名称,并在代码中更新,以避免显示问题。 +::: + +## 内置主题 {#built-in-theme} + +Pivot 提供一个内置主题:**Material**。可通过向 widget 容器添加主题类,或在页面中引入预构建的皮肤样式表来应用该主题。 + +以下代码片段通过向 widget 容器添加 `wx-material-theme` 类来应用 Material 主题: + +~~~html {} + +
+~~~ + +以下代码片段直接引入 Material 皮肤样式表: + +~~~html {} + +~~~ + +## 自定义内置主题 {#customize-built-in-theme} + +在 `.wx-material-theme` 选择器上覆盖 Material 主题变量,即可更改颜色、边框等视觉属性。 + +以下示例通过覆盖 Material 主题变量,将 Pivot 渲染为深色配色方案: + +~~~html + + +~~~ + +## 自定义样式 {#custom-style} + +通过在应用于 widget 容器的自定义类上覆盖 CSS 变量,来更改 Pivot 的外观。 + +以下示例通过 `.demo` 类为 Pivot 应用自定义样式: + +~~~html +
+ +~~~ + +## 滚动条样式 {#scroll-style} + +使用 `.wx-styled-scroll` CSS 类为 Pivot 滚动条应用自定义样式。使用前请检查浏览器兼容性:[caniuse: CSS Scrollbar](https://caniuse.com/css-scrollbar)。 + +以下代码片段在 widget 容器上启用自定义滚动条样式: + +~~~html {} title="index.html" + +
+~~~ + +## 单元格样式 {#cell-style} + +若要为正文或页脚单元格设置样式,请使用 [`tableShape`](api/config/tableshape-property.md) 属性的 `cellStyle` 参数。若要为表头单元格设置样式,请使用 [`headerShape`](api/config/headershape-property.md) 属性的 `cellStyle` 参数。两种情况下,`cellStyle` 函数均返回一个 CSS 类名,Pivot 会将其应用于对应单元格。 + +以下示例为正文和表头单元格应用样式: + +- 正文单元格根据单元格值(例如 `status` 字段中的 `"Down"`、`"Up"`、`"Idle"`)以及汇总值(大于 40 或小于 5)接收相应类名 +- 表头单元格根据 `streaming` 字段的值接收类名——值为 `"no"` 时使用 `status-down`,其他值使用 `status-up` + +~~~jsx +const widget = new pivot.Pivot("#pivot", { + tableShape: { + totalColumn: true, + totalRow:true, + cellStyle: (field, value, area, method, isTotal) => { + if (field === "status" && area === "rows" && value) { + if (value === "Down") { + return "status-down"; + } else if (value === "Up") { + return "status-up"; + } else if (value === "Idle") { + return "status-idle"; + } + } + if(isTotal ==="column" && area == "values"){ + if(value > 40) + return "status-up"; + else if (value < 5) + return "status-down"; + } + } + }, + headerShape:{ + cellStyle:(field, value, area, method, isTotal) => { + if(field == "streaming") + return value ==="no"?"status-down":"status-up"; + } + }, + fields, + data: dataset, + config: { + rows: [ + "protocol", + "status", + ], + columns: [ + "streaming" + ], + values: [ + { + field: "id", + method: "count" + } + ] + } +}); +~~~ + +## 标记单元格中的值 {#mark-values-in-cells} + +使用 [`tableShape`](api/config/tableshape-property.md) 属性的 `marks` 参数,对满足条件的单元格应用 CSS 类。`marks` 中的每个条目将 CSS 类名(键)与规则(值)配对。 + +规则可以是预定义字符串(`"max"` 或 `"min"`),也可以是自定义函数 `(value, columnData, rowData) => boolean`。当函数返回 `true` 时,Pivot 会将该 CSS 类添加到对应单元格。 + +在应用 `marks` 之前,请先在样式表中创建相应的 CSS 类。 + +以下示例高亮显示最小值和最大值所在的单元格,并使用自定义函数标记大于 2 的非整数值: + +~~~jsx {18-26} +const table = new pivot.Pivot("#root", { + fields, + data, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + }, + tableShape: { + marks: { + // 内置标记(最小值/最大值高亮) + min_cell: "min", + max_cell: "max", + // 自定义标记 + g_avg: v => (v % 1 !== 0) && v > 2 + } + } +}); +~~~ + +以下代码片段定义了上述 `marks` 对象所引用的 CSS 类: + +~~~html title="index.html" + +~~~ + +## 特定 CSS 类 {#specific-css-classes} + +Pivot 内置了若干工具 CSS 类,您可以覆盖它们以对表格元素进行精细控制。 + +Pivot 通过内置的 `.wx-number` CSS 类将正文单元格中的数字右对齐。树形模式下(在 [`tableShape`](api/config/tableshape-property.md) 中设置 `tree: true` 时)的层级列除外。若要重置默认的数字对齐方式,请覆盖该类。 + +以下代码片段将正文单元格中的数字左对齐: + +~~~html + +~~~ + +若要为汇总列设置样式,请覆盖 `.wx-total` CSS 类。 + +以下代码片段为汇总单元格设置浅色背景和较粗的字体粗细: + +~~~html + +~~~ + +## 示例 {#example} + +以下代码片段为 Pivot 应用自定义样式: + + + +**相关示例**: + +- [Pivot 2. 汇总列的样式(自定义 CSS)](https://snippet.dhtmlx.com/9lkdbzmm) +- [Pivot 2. 单元格的最小值/最大值与自定义标记(条件格式)](https://snippet.dhtmlx.com/4cm4asbd) +- [Pivot 2. 交替行颜色(条纹行/斑马线)](https://snippet.dhtmlx.com/0cm0uko2) diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/guides/typescript-support.md b/i18n/zh/docusaurus-plugin-content-docs/current/guides/typescript-support.md new file mode 100644 index 0000000..a4d8209 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/guides/typescript-support.md @@ -0,0 +1,17 @@ +--- +sidebar_label: TypeScript 支持 +title: TypeScript 支持 +description: 您可以在文档中了解如何在 DHTMLX JavaScript Pivot 库中使用 TypeScript。浏览开发者指南和 API 参考,试用代码示例和在线演示,并下载 DHTMLX Pivot 免费 30 天评估版本。 +--- + +# TypeScript 支持 {#typescript-support} + +DHTMLX Pivot 从 v2.0 起内置 TypeScript 类型定义,无需额外配置即可直接使用。 + +:::info +在 [Snippet Tool](https://snippet.dhtmlx.com/y2buoahe) 中在线体验 Pivot。 +::: + +## TypeScript 的优势 {#advantages-of-typescript} + +类型检查和自动补全能够在早期发现错误,内置的类型定义可以清晰地告知您 DHTMLX Pivot API 所期望的数据类型。 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/guides/working-with-data.md b/i18n/zh/docusaurus-plugin-content-docs/current/guides/working-with-data.md new file mode 100644 index 0000000..3b6ea07 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/guides/working-with-data.md @@ -0,0 +1,687 @@ +--- +sidebar_label: 数据处理 +title: 数据处理 +description: 您可以在 DHTMLX JavaScript Pivot 库的文档中了解如何处理数据。浏览开发指南和 API 参考,尝试代码示例和在线演示,并下载 DHTMLX Pivot 的 30 天免费评估版本。 +--- + +# 数据处理 + +本页介绍如何在 Pivot 中对数据进行聚合、格式化、排序、筛选和预处理。有关加载和导出数据的说明,请参阅[加载数据](guides/loading-data.md)和[导出数据](guides/exporting-data.md)。 + +## 定义字段 {#define-fields} + +使用 [`fields`](api/config/fields-property.md) 属性声明 Pivot 可放置在行、列和值中的字段。`fields` 数组中的每个条目描述一个字段——其 ID、标签和数据类型。 + +以下代码片段使用五个字段初始化 Pivot: + +~~~jsx +const table = new pivot.Pivot("#root", { + fields: [ + { id: "year", label: "Year", type: "number" }, + { id: "continent", label: "Continent", type: "text" }, + { id: "form", label: "Form", type: "text" }, + { id: "oil", label: "Oil", type: "number" }, + { id: "balance", label: "Balance", type: "number" } + ], + data, + config: {...} +}); +~~~ + +## 为字段应用格式 {#applying-formats-to-fields} + +Pivot 根据当前语言环境对数字和日期字段应用默认格式。详情请参阅[日期格式化](guides/localization.md#date-formatting)和[数字格式化](guides/localization.md#number-formatting)。 + +要覆盖特定字段的默认格式,请设置 [`fields`](api/config/fields-property.md) 属性的 `format` 参数。 + +### 格式化数字字段 {#format-numeric-fields} + +使用 `prefix` 和 `suffix` 在数值前后添加文本,并使用 `maximumFractionDigits` 控制小数精度。例如,要将 `12.345` 渲染为 `"12.35 EUR"`,请将 suffix 设置为 `" EUR"`,并将 `maximumFractionDigits` 设置为 `2`: + +~~~js +const fields = [ + { id: "sales", type: "number", format: { suffix: " EUR", maximumFractionDigits: 2 } }, +]; +~~~ + +默认格式将数字字段限制为 3 位小数,并对整数部分应用分组分隔符。要完全禁用格式化,请将 `format` 设置为 `false`: + +~~~js +const fields = [ + { id: "year", label: "Year", type: "number", format: false }, +]; +~~~ + +以下示例将 `marketing`、`profit` 和 `sales` 标记为带有 `$` 前缀和固定 2 位小数的货币字段: + +~~~jsx +// 使用预定义数据集和字段初始化 Pivot +new pivot.Pivot("#pivot", { + data, + config: { + rows: ["state", "product_type"], + columns: [], + values: [ + { field: "marketing", method: "sum" }, + // other values + + ], + }, + fields:[ + // 自定义格式 + { id: "marketing", label: "Marketing", type:"number", format:{ + prefix: "$", minimumFractionDigits: 2, maximumFractionDigits: 2 } + } + ] +}); +~~~ + +### 格式化日期字段 {#format-date-fields} + +要覆盖单个字段的全局 `dateFormat`,请将 [`fields`](api/config/fields-property.md) 的 `format` 参数设置为日期格式字符串。 + +以下代码片段将 `"%M %d, %Y"` 设置为 `date` 字段的格式: + +~~~jsx +const fields = [ + { id: "date", type: "date", format: "%M %d, %Y" }, +]; +~~~ + +以下示例将字符串日期转换为 `Date` 对象,然后使用格式 `"%d %M %Y %H:%i"` 初始化 `date` 字段的 Pivot。字段值渲染为诸如 `"24 April 2025 14:30"` 的标签。 + +~~~jsx +// 将日期字符串转换为 Date 对象 +const dateFields = fields.filter(f => f.type === "date"); +dataset.forEach(item => { + dateFields.forEach(f => { + const v = item[f.id]; + if (typeof v === "string") { + item[f.id] = new Date(v); + } + }); +}); + +// 使用字段特定日期格式初始化 Pivot +new pivot.Pivot("#pivot", { + data, + config: { + rows: ["state"], + columns: ["product_type"], + values: [ + { field: "date", method: "min" }, + { field: "profit", method: "sum" }, + { field: "sales", method: "sum" } + ] + }, + fields:[ + // 自定义格式:日 月 年 时:分 + { id: "date", label: "Date", type: "date", format: "%d %M %Y %H:%i" } + ] +}); +~~~ + +:::note +对于 `xlsx` 导出格式,Pivot 以原始值导出日期和数字字段,并使用其默认格式(或通过 [`fields`](api/config/fields-property.md) 属性定义的格式)。如果为某个字段定义了模板(参见 [`tableShape`](api/config/tableshape-property.md) 属性),Pivot 将导出该模板生成的渲染值。如果同时设置了 `template` 和 `format`,则模板优先于格式。 +::: + +## 定义 Pivot 结构 {#define-pivot-structure} + +使用 [`config`](api/config/config-property.md) 属性声明哪些字段作为行、列和聚合值显示,以及如何筛选数据。`config` 属性没有预定义值——您必须设置它才能渲染任何数据。完整参数列表请参阅 [`config`](api/config/config-property.md) 参考。 + +以下代码片段将 `continent` 和 `name` 放在行中,`year` 放在列中,三个聚合放在值中,并对 `name` 添加筛选器: + +~~~jsx {4-18} +const table = new pivot.Pivot("#root", { + fields, + data, + config: { + rows: ["continent", "name"], + columns: ["year"], + values: [ + "count(oil)", + { field: "oil", method: "sum" }, + { field: "gdp", method: "sum" } + ] + }, + fields, + filters: { + name: { + contains: "B" + } + } +}); +~~~ + +## 排序数据 {#sorting-data} + +Pivot 在聚合期间支持在所有三个区域(值、列、行)中进行排序。在 UI 中,用户单击列标题进行排序。 + +要设置默认排序,请使用 [`fields`](api/config/fields-property.md) 属性的 `sort` 参数。该参数接受 `"asc"`、`"desc"` 或自定义比较函数。 + +以下示例在 Pivot 上方渲染可单击的字段标签,并在单击时切换排序方向: + +~~~jsx +const bar = document.getElementById("bar"); + +let sorted = ["studio", "genre"]; +setFields(); +bar.addEventListener('click', (e) => switchSort(e.target.id), false); + +function setFields(){ + let html = ""; + let sortedFields = fields.filter(f => (sorted.indexOf(f.id) != -1)); + + sortedFields.forEach((f) =>{ + const order = f.sort || "asc"; + html += `
+ ${f.label} +
`; + }); + bar.innerHTML = html; +} + +function switchSort(id){ + fields.forEach(f => { + if(f.id == id){ + f.sort = f.sort != "desc" ? "desc" : "asc"; + } + }); + // 更新 Pivot 字段 + table.setConfig({ fields }); + // 刷新图标 + setFields(bar, fields); +} + +const table = new pivot.Pivot("#root", { + fields, + data: dataset, + config: { + rows: [ + "studio", + "genre" + ], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + } +}); +~~~ + +UI 中的排序默认启用。要禁用它,请将 [`columnShape`](api/config/columnshape-property.md) 属性的 `sort` 参数设置为 `false`。 + +以下代码片段禁用 UI 排序: + +~~~jsx {19} +const table = new pivot.Pivot("#root", { + fields, + data, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + }, + columnShape: { + sort: false + } +}); +~~~ + +## 筛选数据 {#filtering-data} + +Pivot 支持与字段数据类型绑定的筛选器。可以在初始化后通过 Pivot UI 设置筛选器,也可以通过 [`config`](api/config/config-property.md) 属性的 `filters` 对象以声明方式设置。 + +在 UI 中,筛选器以每个字段的下拉列表形式显示。 + +#### 筛选器类型 {#filter-types} + +Pivot 支持按数据类型划分的以下筛选条件: + +- 文本字段 — `equal`、`notEqual`、`contains`、`notContains`、`beginsWith`、`notBeginsWith`、`endsWith`、`notEndsWith`、`includes` +- 数字字段 — `equal`、`notEqual`、`greater`、`greaterOrEqual`、`less`、`lessOrEqual`、`contains`、`notContains`、`beginsWith`、`notBeginsWith`、`endsWith`、`notEndsWith` +- 日期字段 — `equal`、`notEqual`、`greater`、`greaterOrEqual`、`less`、`lessOrEqual`、`between`、`notBetween`、`includes` + +`includes` 规则将筛选器限制为一组特定的允许值。 + +#### 添加筛选器 {#add-a-filter} + +要声明筛选器,请将 `filters` 对象添加到 [`config`](api/config/config-property.md) 属性中,以字段 ID 为键。每个值是一个筛选条件对象。 + +以下代码片段应用两个筛选器——一个针对 `genre`(包含 `"D"` 的值,限制为 `"Drama"`),一个针对 `title`(包含 `"A"` 的值): + +~~~jsx +const table = new pivot.Pivot("#root", { + fields, + data: dataset, + config: { + rows: ["studio", "genre"], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ], + filters: { + genre: { + contains: "D", + includes: ["Drama"] + }, + title: { + // 另一个字段("title")的筛选器 + contains: "A" + } + } + } +}); +~~~ + +:::info +要通过 Table widget API 筛选数据,请使用 [`getTable`](api/methods/gettable-method.md) 方法访问 Table 实例,并使用 [`filter-rows`](api/table/filter-rows.md) 事件。 +::: + +## 限制加载的数据 {#limiting-loaded-data} + +为防止组件在非常大的数据集上挂起,请使用 [`limits`](api/config/limits-property.md) 属性限制最终数据集中的行数和列数。Pivot 在达到限制后中断渲染。默认上限为行 10000、列 5000。 + +:::note +限制适用于大型数据集。这些数值是近似值——Pivot 不保证精确的行/列数量。 +::: + +以下代码片段将数据集限制为 10 行和 3 列: + +~~~jsx +const table = new pivot.Pivot("#root", { + fields, + data: dataset, + config: { + rows: ["studio"], + columns: ["genre"], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + }, + limits: { rows: 10, columns: 3 } +}); +~~~ + +## 应用数学方法 {#applying-maths-methods} + +### 默认方法 {#default-methods} + +Pivot 包含以下内置聚合方法: + +- `sum`(仅限数值)— 对所有选定值求和;忽略空单元格、`TRUE` 等逻辑值和文本 +- `min`(数值和日期值)— 返回最小值;忽略空单元格、逻辑值和文本。如果输入不包含数字,则返回 `0` +- `max`(数值和日期值)— 返回最大值;忽略空单元格、逻辑值和文本。如果输入不包含数字,则返回 `0` +- `count`(数值、文本和日期值)— 计算非空白单元格数量;这是分配给每个新添加字段的默认方法 +- `countunique`(数值和文本值)— 计算输入中唯一值的数量 +- `average`(仅限数值)— 计算输入的算术平均值;忽略空单元格、逻辑值和文本。包含值为零的单元格 +- `counta`(数值、文本和日期值)— 计算所有非空白值,包括数字、日期和文本 +- `median`(仅限数值)— 返回输入的中位数 +- `product`(仅限数值)— 返回输入中所有数字的乘积 +- `stdev`(仅限数值)— 标准差,将输入视为较大集合的样本 +- `stdevp`(仅限数值)— 标准差,将输入视为整体总体 +- `var`(仅限数值)— 方差,将输入视为较大集合的样本 +- `varp`(仅限数值)— 方差,将输入视为整体总体 + +以下代码片段显示内置方法定义: + +~~~jsx +const defaultMethods = { + sum: { type: "number", label: "sum" }, + min: { type: ["number", "date"], label: "min" }, + max: { type: ["number", "date"], label: "max" }, + count: { + type: ["number", "date", "text"], + label: "count", + branchMath: "sum" + }, + counta: { + type: ["number", "date", "text"], + label: "counta", + branchMath: "sum" + }, + countunique: { + type: ["number", "text"], + label: "countunique", + branchMath: "sum" + }, + average: { type: "number", label: "average", branchMode: "raw" }, + median: { type: "number", label: "median", branchMode: "raw" }, + product: { type: "number", label: "product" }, + stdev: { type: "number", label: "stdev", branchMode: "raw" }, + stdevp: { type: "number", label: "stdevp", branchMode: "raw" }, + var: { type: "number", label: "var", branchMode: "raw" }, + varp: { type: "number", label: "varp", branchMode: "raw" } +}; +~~~ + +通过 [`config`](api/config/config-property.md) 属性的 `values` 参数应用默认方法。请参阅[定义值](#options-for-defining-values)。 + +以下代码片段将 `count` 分配给 `title` 字段,将 `max` 分配给 `score` 字段: + +~~~jsx +const table = new pivot.Pivot("#root", { + fields, + data, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + // 字段 id + field: "title", + // 方法 + method: "count" + }, + { + id: "score", + method: "max" + } + ] + } +}); +~~~ + +### 定义值 {#options-for-defining-values} + +`values` 中的每个条目可以用以下两种等效形式之一定义: + +- 形如 `"operation(fieldID)"` 的字符串 +- 对象 `{ field: string, method: string }`(两个字段均为必填) + +以下代码片段在同一个 `values` 数组中使用了两种形式: + +~~~jsx +values: [ + "sum(sales)", // 选项一 + { field: "sales", method: "sum" } // 选项二 +] +~~~ + +### 覆盖默认方法 {#override-the-default-method} + +对于每个新添加的字段,Pivot 会分配该数据类型的第一个可用方法。要更改此行为,请使用 [`api.intercept`](api/internal/intercept-method.md) 方法拦截 `add-field` 事件。 + +以下示例拦截 `add-field` 事件,并在添加数字字段时强制使用 `max` 方法: + +~~~jsx {20-27} +const table = new pivot.Pivot("#root", { + fields, + data: dataset, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count", + }, + { + field: "score", + method: "max", + }, + ], + }, +}); +// 覆盖新添加的数字字段的默认方法 +table.api.intercept("add-field", (ev) => { + const { fields } = table.api.getState(); + const type = fields.find((f) => f.id == ev.field).type; + + if (ev.area == "values" && type == "number") { + ev.method = "max"; + } +}); +~~~ + +### 添加自定义数学方法 {#add-custom-math-methods} + +要添加自定义聚合方法,请使用 [`methods`](api/config/methods-property.md) 属性。每个条目将方法名(键)与包含 `handler` 函数和元数据的配置对象配对。`handler` 接受一个值数组并返回单个聚合值。 + +以下示例添加了两个特定于日期的方法。`countunique_date` 通过数字时间戳计算不同日期数量。`average_date` 通过平均时间戳返回平均日期: + +~~~jsx +function countUnique(values, converter) { + const valueMap = {}; + return values.reduce((acc, d) => { + if (converter) d = converter(d); + if (!valueMap[d]) { + acc++; + valueMap[d] = true; + } + return acc; + }, 0); +} + +const methods = { + countunique_date: { + handler: values => countUnique(values, v => new Date(v).getTime()), + type: "date", + label: "CountUnique", + }, + average_date: { + type: "date", + label: "Average", + branchMode: "raw", + handler: values => { + if (!values.length) return null; + const sum = values.reduce((acc, d) => acc + d.getTime(), 0); + const avgTime = sum / values.length; + return new Date(avgTime); + } + } +}; + +// 对 "count" 和 "unique count" 结果显示整数 +const templates = {}; +fields.forEach(f => { + if (f.type == "number") + templates[f.id] = (v, method) => + v && method.indexOf("count") < 0 ? parseFloat(v).toFixed(3) : v; +}); + +// 将日期字符串转换为 Date 对象 +const dateFields = fields.filter(f => f.type == "date"); +if (dateFields.length) { + dataset.forEach(item => { + dateFields.forEach(f => { + const v = item[f.id]; + if (typeof v == "string") item[f.id] = new Date(v); + }); + }); +} + +const table = new pivot.Pivot("#root", { + fields, + data: dataset, + tableShape: { templates }, + methods: { ...pivot.defaultMethods, ...methods }, + config:{ + rows: ["state"], + columns: [ + "product_line", + "product_type" + ], + values: [ + { + field: "sales", + method: "sum" + }, + { + field: "sales", + method: "count" + }, + { + field: "date", + method: "countunique_date" + }, + { + field: "date", + method: "average_date" + } + ] + } +}); +~~~ + +## 使用谓词处理数据 {#processing-data-with-predicates} + +谓词是预处理函数,在 Pivot 将原始字段数据用于行或列之前对其进行转换。例如,谓词可以在聚合之前按月对日期进行分组。 + +以下代码片段显示 Pivot 默认应用的内置日期谓词: + +~~~jsx +const defaultPredicates = { + year: { label: "Year", type: "date", filter: { type: "number" } }, + quarter: { label: "Quarter", type: "date", filter: { type: "tuple" } }, + month: { label: "Month", type: "date", filter: { type: "tuple" } }, + week: { label: "Week", type: "date", filter: { type: "tuple" } }, + day: { label: "Day", type: "date", filter: { type: "number" } }, + hour: { label: "Hour", type: "date", filter: { type: "number" } }, + minute: { label: "Minute", type: "date", filter: { type: "number" } } +}; +~~~ + +要添加自定义谓词,请配置 [`predicates`](api/config/predicates-property.md) 属性。每个条目将谓词 ID(键)与配置对象配对: + +- `type` — 此谓词接受的字段类型(`"number"`、`"date"`、`"text"` 或数组) +- `label` — 在行/列的 GUI 下拉列表中显示的谓词标签 +- `handler` — 转换值并返回处理结果的函数 +- `template` — 可选函数,控制处理后值的显示方式 +- `field` — 可选函数,将谓词限制为特定字段 +- `filter` — 可选筛选器配置,当筛选器类型应与 `type` 不同,或数据格式应与 `template` 不同时使用 + +要使用自定义谓词,请将其 ID 设置为应应用谓词的行或列的 `method`。 + +以下代码片段注册两个自定义谓词(`monthYear` 和 `profitSign`),并在 `columns` 配置中应用它们: + +~~~jsx +const predicates = { + monthYear: { + label: "Month-year", + type: "date", + handler: (d) => new Date(d.getFullYear(), d.getMonth(), 1), + template: (date, locale) => { + const months = locale.getRaw().calendar.monthFull; + return months[date.getMonth()] + " " + date.getFullYear(); + }, + }, + profitSign: { + label: "Profit Sign", + type: "number", + filter: { + type: "tuple", + format: (v) => (v < 0 ? "Negative" : "Positive"), + }, + field: (f) => f === "profit", + handler: (v) => (v < 0 ? -1 : 1), + template: (v) => (v < 0 ? "Negative profit" : "Positive profit"), + }, +}; + +// 将日期字符串转换为 Date 对象 +const dateFields = fields.filter((f) => f.type == "date"); +if (dateFields.length) { + dataset.forEach((item) => { + dateFields.forEach((f) => { + const v = item[f.id]; + if (typeof v == "string") item[f.id] = new Date(v); + }); + }); +} + +const table = new pivot.Pivot("#pivot", { + fields, + data: dataset, + predicates: { ...pivot.defaultPredicates, ...predicates }, + tableShape: { tree: true }, + config: { + rows: ["product_type", "product"], + columns: [ + { field: "profit", method: "profitSign" }, + { field: "date", method: "monthYear" }, + ], + values: ["sales", "expenses"], + }, +}); +~~~ + +## 添加包含汇总值的列和行 {#add-columns-and-rows-with-total-values} + +使用 [`tableShape`](api/config/tableshape-property.md) 属性在右侧渲染汇总列(`totalColumn: true`)或汇总页脚行(`totalRow: true`)。 + +以下代码片段同时启用汇总列和汇总行: + +~~~jsx {2-5} +const table = new pivot.Pivot("#root", { + tableShape: { + totalRow: true, + totalColumn: true + }, + fields, + data, + config: { + rows: ["studio"], + columns: ["type"], + values: [ + { + field: "score", + method: "max" + }, + { + field: "episodes", + method: "count" + }, + { + field: "rank", + method: "min" + }, + { + field: "members", + method: "sum" + } + ] + } +}); +~~~ + +## 示例 {#example} + +以下代码片段应用了自定义数学运算: + + + +**相关示例:** + +- [Pivot 2. 带别名的数据集](https://snippet.dhtmlx.com/7vc68rqd) +- [Pivot 2. 定义字段格式](https://snippet.dhtmlx.com/77nc4j8v) +- [Pivot 2. 外部筛选器](https://snippet.dhtmlx.com/s7tc9g4z) +- [Pivot 2. 列和行的总计](https://snippet.dhtmlx.com/f0ag0t9t) diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/guides/working-with-server.md b/i18n/zh/docusaurus-plugin-content-docs/current/guides/working-with-server.md new file mode 100644 index 0000000..f04ce5a --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/guides/working-with-server.md @@ -0,0 +1,172 @@ +--- +sidebar_label: 与服务器配合使用 +title: 与服务器配合使用 +description: 您可以在 DHTMLX JavaScript Pivot 库的文档中了解如何将 Pivot 与后端集成。浏览开发者指南和 API 参考,试用代码示例和在线演示,并下载 DHTMLX Pivot 的免费 30 天评估版本。 +--- + +Pivot 完全在浏览器中运行。该 widget 接收一个原始行数组和一个 [`config`](/api/config/config-property)(rows / columns / values),并在客户端对行进行聚合。它没有内置的传输层,但公共 API 提供了与任何后端进行往返通信的钩子。 + +典型的集成包含三个部分: + +1. **加载**:初始化时从服务器加载原始的未聚合数据 +2. **保存配置**:当用户更改布局时保存 `config`,以便后续会话可以恢复 +3. **保存聚合表格**:当服务器需要汇总结果的快照时保存 + +## 从服务器加载原始数据 {#load-raw-data-from-the-server} + +[`data`](/api/config/data-property) 属性期望接收一个原始行对象数组。Pivot 自身完成行的聚合,因此服务器返回未汇总的数据。 + +使用 `fetch`(或任意 HTTP 客户端)拉取数据和字段,待响应到达后再构建 widget: + +~~~html +
+ + +~~~ + +如果服务器以 ISO 字符串形式返回日期字段,请在将数组传递给 Pivot 之前将其转换为 `Date` 实例。日期类型字段的聚合方法依赖真实的 `Date` 值: + +~~~jsx +data.forEach(row => { + if (typeof row.when === "string") row.when = new Date(row.when); +}); +~~~ + +:::info +**另请参阅**: +- [加载数据](/guides/loading-data) +- [日期格式化](/guides/localization#date-formatting) +::: + +## 保存用户布局以恢复会话 {#save-the-users-layout-to-resume-the-session} + +要让用户返回上次离开时的布局,需在每次更改时持久化 [`config`](/api/config/config-property) 对象。当用户通过 UI 编辑布局时,[`update-config`](/api/events/update-config-event) 事件会触发。其 payload 为经过处理的配置,结构为 `{ rows, columns, values, filters }`。 + +使用 [`api.on()`](/api/internal/on-method) 监听事件而不修改它。若处理函数需要更改事件 payload,则改用 [`api.intercept()`](/api/internal/intercept-method)。 + +以下示例订阅 `update-config` 事件,并将新布局 POST 到服务器: + +~~~html +
+ + +~~~ + +下次访问时,从 `/config` 返回已保存的配置,并在初始化时将其作为 `config` 属性传入。widget 将从上次的布局开始。如果布局在 widget 已存在后才到达,请使用 [`setConfig()`](/api/methods/setconfig-method) 方法应用已保存的配置。 + +当用户在配置面板中拖动字段时,频繁的更新可能会淹没服务器。可将 POST 包裹在定时器中以对调用进行防抖处理: + +~~~jsx +let saveTimer; +table.api.on("update-config", newConfig => { + clearTimeout(saveTimer); + saveTimer = setTimeout(() => { + fetch(server + "/config", { + method: "POST", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify(newConfig), + }); + }, 300); +}); +~~~ + +:::note +`update-config` 的 payload 是*经过处理*的配置:Pivot 可能会将字段引用规范化为 `{ field, method }` 形式。初始化时将处理后的结构作为 `config` 属性传回即可,无需额外转换。 +::: + +:::tip +在处理函数中返回 `false` 可阻止布局更改。可利用此方式将持久化操作限制在服务器端验证通过后执行。 +::: + +## 保存聚合表格 {#save-the-aggregated-table} + +有时*结果本身*才是价值所在:渲染表格的服务器端缓存、定期报告或导出流水线。[`render-table`](/api/events/render-table-event) 事件在 Pivot 完成聚合后触发,携带完整的汇总表格:`columns`、`data` 行、`footer`、`split` 等。 + +以下示例订阅 `render-table` 事件并将快照 POST 到服务器,跳过首次渲染: + +~~~jsx +const table = new pivot.Pivot("#root", { data, fields, config }); + +let firstRender = true; +let saveTimer; + +table.api.on("render-table", ({ config: tableConfig }) => { + // 跳过首次聚合触发的初始渲染 + if (firstRender) { + firstRender = false; + return; + } + + clearTimeout(saveTimer); + saveTimer = setTimeout(() => { + fetch(server + "/snapshot", { + method: "POST", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify({ + columns: tableConfig.columns, + data: tableConfig.data, + footer: tableConfig.footer, + split: tableConfig.split, + }), + }); + }, 300); +}); +~~~ + +:::note +`render-table` 事件比 `update-config` 触发更频繁。该事件在每次重新计算时运行,包括排序和展开/折叠操作。请对处理函数进行防抖处理并跳过首次渲染,以确保每次真实更改只发出一次 POST。 +::: + +:::tip +在处理函数中返回 `false` 可阻止渲染。可在服务器拒绝快照或用于只读模式时使用此方式。 +::: + +### 重新加载聚合快照 {#reload-an-aggregated-snapshot} + +Pivot 生成聚合表格,不显示预聚合的数据。[`data`](/api/config/data-property) 属性始终接收原始行。因此,从 `render-table` 保存的快照适用于以下场景: + +- 服务器端的下游导出流水线(CSV、XLSX) +- 使用已保存的 `columns` 和 `data` 通过普通数据表渲染的只读视图 +- 缓存的报告,可提供给其他用户而无需重新运行聚合 + +**相关文章**: + +- [加载数据](/guides/loading-data) +- [导出数据](/guides/exporting-data) + +**相关 API**: + +- [`api.on()`](/api/internal/on-method) +- [`update-config`](/api/events/update-config-event) +- [`render-table`](/api/events/render-table-event) diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/how-to-start.md b/i18n/zh/docusaurus-plugin-content-docs/current/how-to-start.md new file mode 100644 index 0000000..09ec3ed --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/how-to-start.md @@ -0,0 +1,122 @@ +--- +sidebar_label: 快速入门 +title: 快速入门 +description: 您可以在 DHTMLX JavaScript Pivot 库的文档中了解如何开始使用 DHTMLX Pivot。浏览开发者指南和 API 参考,试用代码示例和在线演示,并下载免费 30 天评估版本的 DHTMLX Pivot。 +--- + +# 快速入门 {#how-to-start} + +本清晰全面的教程将引导您完成在页面上构建完整功能 Pivot 所需的步骤。 + +![pivot-main](/assets/pivot_main.png) + +## 步骤 1:下载并安装软件包 {#step-1-downloading-and-installing-packages} + +[下载软件包](https://dhtmlx.com/docs/products/dhtmlxPivot/download.shtml)并将其解压到您的项目文件夹中。 + +您可以使用 `yarn` 或 `npm` 包管理器将 JavaScript Pivot 导入到您的项目中。 + +:::info +如果您想将 Pivot 集成到 React、Angular、Svelte 或 Vue 项目中,请参阅相应的[**集成指南**](/category/integration-with-frameworks/)以获取更多信息。 +::: + +### 通过 npm 或 yarn 安装试用版 Pivot {#installing-trial-pivot-via-npm-or-yarn} + +:::info +如果您想使用试用版 Pivot,请下载[**试用版 Pivot 软件包**](https://dhtmlx.com/docs/products/dhtmlxPivot/download.shtml)并按照 *README* 文件中的步骤操作。请注意,试用版 Pivot 仅可使用 30 天。 +::: + +### 通过 npm 或 yarn 安装 PRO 版 Pivot {#installing-pro-pivot-via-npm-or-yarn} + +:::info +您可以通过在[客户专区](https://dhtmlx.com/clients/)生成 **npm** 登录名和密码,直接访问 DHTMLX 私有 **npm**。详细的安装指南也可在该页面找到。请注意,访问私有 **npm** 仅在您的专有 Pivot 许可证有效期间可用。 +::: + +## 步骤 2:引入源文件 {#step-2-including-source-files} + +首先创建一个 HTML 文件,将其命名为 *index.html*,然后将 Pivot 源文件引入到该文件中。 + +需要引入两个必要文件: + +- Pivot 的 JS 文件 +- Pivot 的 CSS 文件 + +~~~html {5-6} title="index.html" + + + + How to Start with Pivot + + + + + + + +~~~ + +## 步骤 3:创建 Pivot {#step-3-creating-pivot} + +现在您可以将 Pivot 添加到页面中。首先,为 Pivot 创建一个 DIV 容器。 + +~~~html {} title="index.html" + + + + How to Start with Pivot + + + + +
+ + + +~~~ + +## 步骤 4:配置 Pivot {#step-4-configuring-pivot} + +接下来,您可以指定 Pivot 组件在初始化时所需的配置属性。 + +要开始使用 Pivot,首先需要提供初始数据。以下示例创建了一个包含以下内容的 Pivot: + +- *studio* 和 *genre* 的行 +- *title* 列 +- 使用 *max* 方法对 *score* 进行值聚合 + +**fields** 数组用于定义字段 ID、显示标签和数据类型。 + +**data** 数组应包含在 Pivot widget 中显示的实际数据,数组中的每个对象代表表格中的一行。 + +**config** 对象定义 Pivot 表格的结构,即哪些字段将作为表格的行和列,以及应对字段应用哪些数据聚合方法。 + +~~~jsx +const table = new pivot.Pivot("#root", { + //configuration properties + fields, + data, + config: { + rows: ["studio", "genre"], + columns: ["title"], + values: [ + { + field: "score", + method: "max" + } + ] + } +}); +~~~ + +## 下一步 {#whats-next} + +就这些。只需这几个简单步骤,您便拥有了一个便捷的数据分析工具。现在您可以开始处理自己的任务,或继续深入探索 JavaScript Pivot 的世界: + +- [指南](/category/guides)页面提供有关安装、加载数据、样式设置及其他有用技巧的说明,帮助您顺畅地完成 Pivot 配置 +- [API 参考](api/overview/main-overview.md)提供 Pivot 功能的详细说明 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/index.md b/i18n/zh/docusaurus-plugin-content-docs/current/index.md new file mode 100644 index 0000000..c4a53b6 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/index.md @@ -0,0 +1,103 @@ +--- +sidebar_label: Pivot 概述 +title: JavaScript Pivot 概述 +slug: / +description: 您可以在文档中了解 DHTMLX JavaScript Pivot 库的概述。浏览开发者指南和 API 参考,尝试代码示例和在线演示,并下载 DHTMLX Pivot 的 30 天免费试用版本。 +--- + +# DHTMLX Pivot 概述 + +JavaScript Pivot 库是一个现成的组件,用于从大型数据集创建透视表。该 widget API 可以轻松适配您的 Web 应用程序需求。它为最终用户提供了在同一张表中比较和分析复杂数据的功能。 + +## Pivot 结构 {#pivot-structure} + +Pivot 界面由两个主要组件组成:配置面板和数据表格。 + +![Main](assets/pivot-main.png) + +## 配置面板 {#configuration-panel} + +配置面板允许向表格添加列和行,以及定义数据聚合方法的值字段。您可以通过面板中的以下区域添加各项内容: + +- 值:您可以添加定义数据聚合方式的值(例如求和、最小值、最大值) +- 列:您可以配置表格的列(定义哪些字段将作为列使用) +- 行:您可以配置哪些字段应作为表格的行使用 + +要隐藏配置面板,请点击**隐藏设置**按钮: + +![config_panel](assets/config_panel.png) + +### 值区域 {#values-area} + +在**值**区域,您可以定义将对透视表单元格应用哪些聚合方法(例如 min、max、count)。您可以执行以下操作: + +- 在值区域中添加和移除字段 +- 更改表格中值的顺序和优先级 +- 筛选数据 +- 设置将应用于表格字段的操作 + +有关更多详情,请参阅[区域操作](#operations-in-areas)和[筛选器](#filters)章节。 + +### 列区域 {#columns-area} + +在**列**区域,您可以执行以下操作: + +- 添加和移除列(即添加/移除作为列使用的字段) +- 更改表格中列的顺序和优先级 +- 筛选数据 + +有关更多详情,请参阅[区域操作](#operations-in-areas)和[筛选器](#filters)章节。 + +### 行区域 {#rows-area} + +在配置面板的**行**区域,您可以执行以下操作: + +- 添加和移除行(即添加/移除作为行使用的字段) +- 更改表格中行的顺序和优先级 +- 筛选数据 + +有关更多详情,请参阅[区域操作](#operations-in-areas)和[筛选器](#filters)章节。 + +### 区域操作 {#operations-in-areas} + +在配置面板的所有三个区域中,您都可以向表格添加或从表格中移除字段。如果您希望某个字段作为行或列使用,请在相应区域(列或行)中选择它。 + +要添加新字段,请在所需区域中点击"+"按钮,然后从下拉列表中选择名称。 + +要移除某项,请点击删除按钮("x")。 + +![add_remove](assets/add_remove.png) + +要更改表格中值/行/列的顺序,请将某项拖动到所需位置。在区域工具栏列表中,某项越靠左,其在表格中的优先级和位置越高。 + +![priority](assets/priority.png) + +要设置将应用于表格列所有数据的操作,请在**值**区域中,点击所需字段的值操作下拉列表,然后从列表中选择所需选项。 + +![operations](assets/operations.png) + +### 筛选器 {#filters} + +筛选器以下拉列表的形式出现在所有区域的每个字段中。Pivot 提供以下条件类型用于筛选: + +- 文本值:equal、notEqual、contains、notContains、beginsWith、notBeginsWith、endsWith、notEndsWith +- 数值:greater、less、greaterOrEqual、lessOrEqual、equal、notEqual、contains、notContains、begins with、not begins with、ends with、not ends with +- 日期类型:greater、less、greaterOrEqual、lessOrEqual、equal、notEqual、between、notBetween + +要筛选表格中的数据,请点击所需区域中某项的筛选标志,然后选择运算符并设置筛选值,最后点击**应用**。已应用筛选的字段将带有特殊的筛选标志。 + +![filters](assets/filter.png) + +## 表格 {#table} + +表格中的数据按照配置面板中的设置显示。点击列标题可启用列的**排序**功能: + +![table](assets/table.png) + +## 下一步 {#whats-next} + +现在您可以开始将 Pivot 集成到您的应用程序中。请参照[快速开始](how-to-start.md)教程的指引进行操作。 + +如果您使用 widget API 提供的功能,可以获得如下示例所示的具有更多特性的精美透视表: + + diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/news/migration.md b/i18n/zh/docusaurus-plugin-content-docs/current/news/migration.md new file mode 100644 index 0000000..5cdb0b5 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/news/migration.md @@ -0,0 +1,57 @@ +--- +sidebar_label: 迁移至新版本 +title: 迁移至新版本 +description: 您可以在 DHTMLX JavaScript Pivot 库的文档中了解迁移至新版本的相关信息。浏览开发者指南和 API 参考,查看代码示例和在线演示,并下载 DHTMLX Pivot 的 30 天免费评估版本。 +--- + +# 迁移至新版本 {#migration-to-newer-versions} + +## 2.0 -> 2.1 {#20---21} + +- `tableShape` 属性中 `sizes` 对象的 `colWidth` 参数已重命名为 `columnWidth` + +## 1.5 -> 2.0 {#15---20} + +以下变更列表将帮助您从 Pivot 1.5 的旧版本迁移至全面焕新的 Pivot 2.0 版本。 + +:::note +请查看我们的[数据迁移转换工具(从 v.1.5 迁移)](https://snippet.dhtmlx.com/s4sfdhq4) +::: + +### 变更的 API {#changed-api} + +#### 属性 {#properties} + +新属性并非完全复刻旧属性,而是提供了更为丰富的功能。 + +- [fieldList](https://docs.dhtmlx.com/pivot/1-5/api__pivot_fieldlist_config.html) -> [fields](api/config/fields-property.md) +- [fields](https://docs.dhtmlx.com/pivot/1-5/api__pivot_fields_config.html) -> [config](api/config/config-property.md) +- [mark](https://docs.dhtmlx.com/pivot/1-5/api__pivot_mark_config.html) -> [tableShape](api/config/tableshape-property.md) 属性的 `marks` 参数 +- [types](https://docs.dhtmlx.com/pivot/1-5/api__pivot_types_config.html) -> [methods](api/config/methods-property.md) +- [layout](https://docs.dhtmlx.com/pivot/1-5/api__pivot_layout_config.html) -> [columnShape](api/config/columnshape-property.md)、[headerShape](api/config/headershape-property.md)、[readonly](api/config/readonly-property.md) +- [customFormat](https://docs.dhtmlx.com/pivot/1-5/api__pivot_customformat_config.html) -> [predicates](api/config/predicates-property.md) - 用于数据的自定义预处理函数 + +#### Events {#events} + +- [filterApply](https://docs.dhtmlx.com/pivot/1-5/api__pivot_filterapply_event.html) -> [apply-filter](api/events/apply-filter-event.md) +- [fieldClick](https://docs.dhtmlx.com/pivot/1-5/api__pivot_fieldclick_event.html) -> 没有完全对应的 event,但您可以参考 [update-field](api/events/update-field-event.md) + +### 已移除的 API {#removed-api} + +- [1.5 版本的方法](https://docs.dhtmlx.com/pivot/1-5/api__refs__pivot_methods.html) 已被废弃,所有新方法请参见:[方法](api/overview/main-overview.md#pivot-methods) +- [Pivot 1.5 事件](https://docs.dhtmlx.com/pivot/1-5/api__refs__pivot_events.html)(`change`、`fieldClick`、`applyButtonClick`)在 Pivot 2.0 中不再可用,但新版本提供了更丰富的功能(请参考 [Pivot 事件](api/overview/events-overview.md)) + +### 重要功能 {#important-features} + +- 数据导出:[旧版导出选项](https://docs.dhtmlx.com/pivot/1-5/guides__export.html) -> [新版导出选项](guides/exporting-data.md) +- 排序:[字段排序](https://docs.dhtmlx.com/pivot/1-5/guides__configuration.html#configuringfields) -> [数据排序](guides/working-with-data.md#sorting-data) +- 树形模式:[gridMode](https://docs.dhtmlx.com/pivot/1-5/guides__configuration.html#gridmode) -> [启用树形模式](guides/configuration.md#enabling-the-tree-mode) +- 日期格式:[配置日期字段](https://docs.dhtmlx.com/pivot/1-5/guides__configuration.html#configuringdatefields) -> +[设置日期格式](guides/localization.md#date-formatting) +- 自定义: + - [单元格格式化](https://docs.dhtmlx.com/pivot/1-5/guides__customization.html#conditionalformattingofcells) -> [单元格样式](guides/stylization.md#cell-style) + - [表头模板](https://docs.dhtmlx.com/pivot/1-5/guides__customization.html#settingtemplatesforheaders) -> + [为表头应用模板](guides/configuration.md#applying-templates-to-headers) + - [单元格模板](https://docs.dhtmlx.com/pivot/1-5/guides__customization.html#settingtemplatesforcells) -> + [为单元格应用模板](guides/configuration.md#applying-templates-to-cells) +- 过滤:[操作过滤器](https://docs.dhtmlx.com/pivot/1-5/guides__using_filters.html) -> [数据过滤](guides/working-with-data.md#filtering-data) diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/news/whats-new.md b/i18n/zh/docusaurus-plugin-content-docs/current/news/whats-new.md new file mode 100644 index 0000000..b608f2c --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/current/news/whats-new.md @@ -0,0 +1,114 @@ +--- +sidebar_label: 最新动态 +title: 最新动态 +description: 您可以在 DHTMLX JavaScript UI 库的文档中查阅 DHTMLX Pivot 的最新功能和版本发布历史。浏览开发者指南和 API 参考,体验代码示例与在线演示,并下载 DHTMLX Pivot 的 30 天免费评估版本。 +--- + +# 最新动态 {#whats-new} + +如果您正从旧版本升级 Pivot,请查阅[迁移到新版本](news/migration.md)了解详情。 + +## 版本 2.1.1 {#version-211} + +发布于 2026 年 6 月 10 日 + +### 修复 {#fixes} + +- 当对包含缺失或空值的数据集应用行过滤器时,出现 "getMonth" 错误 + +## 版本 2.1 {#version-21} + +发布于 2025 年 5 月 6 日 + +### 新功能 {#new-functionality} + +- [支持从右侧冻结列](guides/configuration.md#freezing-columns-on-the-right) +- 数值的[默认对齐方式](guides/stylization.md#specific-css-classes)和[基于语言环境的格式化](guides/localization.md#number-formatting) +- 通过添加到 [`fields`](api/config/fields-property.md) 属性的 `format` 参数,[支持自定义数字格式](guides/working-with-data.md#applying-formats-to-fields)(适用于日期和数值字段) +- 通过 [`tableShape`](api/config/tableshape-property.md) 和 [`headerShape`](api/config/headershape-property.md) 属性的 `cellStyle` 参数,[支持设置表头和表格单元格的样式](guides/stylization.md#cell-style) +- 支持通过 [`pivot.template`](api/helpers/template.md) 辅助函数向表头和表格单元格插入 HTML 内容,方法是将模板定义为表头和列对象的 `cell` 属性(通过拦截 [render-table](api/events/render-table-event.md) 事件自定义表格) +- [Excel 和 CSV 导出设置增强](guides/exporting-data.md): + - 对于 "xlsx" 格式,日期和数字字段将以原始值导出,使用默认格式或通过 [`fields`](api/config/fields-property.md) 属性定义的格式 + - 支持定义文件名和工作表名称,并可从导出文件中排除表头/表尾 + - 支持为导出的单元格添加样式和模板 +- [支持通过外部输入过滤数据](api/table/filter-rows.md) +- 单元格导航的视觉边框 +- [与框架集成](/category/integration-with-frameworks) + +### 新增 API {#new-api} + +- [`tableShape`](api/config/tableshape-property.md) 中 `split` 对象的 `right` 设置 +- [`tableShape`](api/config/tableshape-property.md) 和 [`headerShape`](api/config/headershape-property.md) 属性中的 `cellStyle` 设置 +- [`fields`](api/config/fields-property.md) 数组中的 `format` 设置 +- 内部 Table 的 [`filter-rows`](api/table/filter-rows.md) 事件 +- 用于定义表格单元格 HTML 内容的 [`pivot.template`](api/helpers/template.md) + +### 修复 {#fixes-21} + +- 汇总列未按正确顺序排序 +- 导出时,以 0 开头的字符串值被转换为数字 +- 谓词模板未应用于行/列 +- 特定情况下出现 Resize observer 错误 + +### 破坏性变更 {#breaking-changes} + +- `tableShape` 属性中 `sizes` 对象的 `colWidth` 参数已重命名为 `columnWidth` + +## 版本 2.0.3 {#version-203} + +发布于 2024 年 11 月 29 日 + +### 修复 {#fixes-203} + +- 树形结构导出到 Excel/CSV 时仅包含最顶层分支 +- 自动宽度列导出后在 Excel 文件中显示过窄 +- 过滤器弹出窗口位置不正确 +- 使用 setConfig 方法更改配置后出现行为异常 +- 更精确的类型定义 + +## 版本 2.0.2 {#version-202} + +发布于 2024 年 10 月 22 日 + +### 修复 {#fixes-202} + +- `columnShape` 类型定义 +- 正确的包内容 + +## 版本 2.0 {#version-20} + +发布于 2024 年 8 月 26 日 + +请查阅[博客页面](https://dhtmlx.com/blog/)了解本次版本发布的详细介绍。 + +### 破坏性变更 {#breaking-change} + +:::note +版本 1.5 的 API 与 API v.2.0 不兼容。 +::: + +有关迁移到新版本的建议,请查阅[迁移](news/migration.md)页面。 + +### 新功能 {#new-functionality-20} + +- Pivot 2.0 在渲染和生成大型数据集方面速度更快([示例](https://snippet.dhtmlx.com/e6qwqrys)) +- 通过 [`columnShape`](api/config/columnshape-property.md) 属性可使用以下新的列外观和行为配置功能: + - 设置 **autowidth**,并可指定用于计算 **autoWidth** 的最大处理行数([示例](https://snippet.dhtmlx.com/tn1yw14m)) + - **firstOnly** 功能:在计算列宽时,每个相同数据字段仅分析一次(默认行为) +- 现在可以通过 [`headerShape`](api/config/headershape-property.md) 属性配置表头的外观和行为,包括: + - 为表头文本应用模板([示例](https://snippet.dhtmlx.com/g89r9ryw)) + - 更改文本方向([示例](https://snippet.dhtmlx.com/4qroi8ka)) + - 使列可折叠([示例](https://snippet.dhtmlx.com/pt2ljmcm)) +- 可通过 [`tableShape`](api/config/tableshape-property.md) 属性配置表格的外观和尺寸,支持: + - 配置行、表头、表尾的高度:rowHeight、headerHeight、footerHeight([调整表格尺寸](guides/configuration.md#resizing-the-table)) + - 不仅为列生成汇总值,也可为行生成汇总值,这通过 `tableShape` 属性的 **totalColumn** 参数实现([示例](https://snippet.dhtmlx.com/f0ag0t9t)) + - 在表格视图中隐藏重复值([`tableShape`](api/config/tableshape-property.md) 属性的 **cleanRows** 参数) + - 从左侧固定列,使其在滚动时保持静止([示例](https://snippet.dhtmlx.com/lahf729o)) + - 展开或折叠所有行([示例](https://snippet.dhtmlx.com/i4mi6ejn)) +- 数据聚合新增更多功能: + - [限制加载的数据量](guides/working-with-data.md#limiting-loaded-data) + - 支持更多[数据操作](guides/working-with-data.md#applying-maths-methods) + - [使用谓词处理数据](guides/working-with-data.md#processing-data-with-predicates) — 为数据应用自定义预处理函数 + - [通过语言环境设置日期格式](guides/localization.md#date-formatting) +- 新增方法:[`getTable()`](api/methods/gettable-method.md)、[`setConfig()`](api/methods/setconfig-method.md)、[`setLocale()`](api/methods/setlocale-method.md)、[`showConfigPanel()`](api/methods/showconfigpanel-method.md) +- 新增事件:[`add-field`](api/events/add-field-event.md)、[`delete-field`](api/events/delete-field-event.md)、[`open-filter`](api/events/open-filter-event.md)、[`render-table`](api/events/render-table-event.md)、[`move-field`](api/events/move-field-event.md)、[`show-config-panel`](api/events/show-config-panel-event.md)、[`show-config-panel`](api/events/show-config-panel-event.md)、[`update-config`](api/events/update-config-event.md)、[`update-field`](api/events/update-field-event.md)。 From 44e03f98ab2c058ad802e8e3e08c689d0efdde69 Mon Sep 17 00:00:00 2001 From: Serhii Pylypchuk Date: Thu, 11 Jun 2026 22:21:47 +0300 Subject: [PATCH 35/40] [add] Korean (ko) documentation translation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - translate all 62 docs/*.md into i18n/ko current/ - API (45), guides (13), news (2), root pages (2) - copy image assets into the locale tree for build resolution - add .sync marker at source HEAD 05469eb for future updates - formal 합니다체 register, English heading anchors preserved - keep a space after a link in news/migration so the dhx loader resolves it (Korean particle adjacency breaks link resolution) --- .../current/.sync | 1 + .../api/config/columnshape-property.md | 82 ++ .../current/api/config/config-property.md | 146 ++++ .../api/config/configpanel-property.md | 58 ++ .../current/api/config/data-property.md | 129 +++ .../current/api/config/fields-property.md | 112 +++ .../api/config/headershape-property.md | 83 ++ .../current/api/config/limits-property.md | 61 ++ .../current/api/config/locale-property.md | 51 ++ .../current/api/config/methods-property.md | 163 ++++ .../current/api/config/predicates-property.md | 117 +++ .../current/api/config/readonly-property.md | 52 ++ .../current/api/config/tableshape-property.md | 131 ++++ .../current/api/events/add-field-event.md | 74 ++ .../current/api/events/apply-filter-event.md | 65 ++ .../current/api/events/delete-field-event.md | 82 ++ .../current/api/events/move-field-event.md | 65 ++ .../current/api/events/open-filter-event.md | 95 +++ .../current/api/events/render-table-event.md | 178 +++++ .../api/events/show-config-panel-event.md | 60 ++ .../current/api/events/update-config-event.md | 78 ++ .../current/api/events/update-field-event.md | 67 ++ .../current/api/helpers/template.md | 89 +++ .../current/api/internal/detach-method.md | 69 ++ .../current/api/internal/exec-method.md | 83 ++ .../api/internal/getreactivestate-method.md | 71 ++ .../current/api/internal/getstate-method.md | 67 ++ .../current/api/internal/getstores-method.md | 54 ++ .../current/api/internal/intercept-method.md | 68 ++ .../current/api/internal/on-method.md | 72 ++ .../current/api/internal/setnext-method.md | 45 ++ .../current/api/methods/gettable-method.md | 75 ++ .../current/api/methods/setconfig-method.md | 73 ++ .../current/api/methods/setlocale-method.md | 56 ++ .../api/methods/showconfigpanel-method.md | 55 ++ .../current/api/overview/events-overview.md | 19 + .../overview/internal-eventbus-overview.md | 15 + .../api/overview/internal-state-overview.md | 13 + .../current/api/overview/main-overview.md | 80 ++ .../current/api/overview/methods-overview.md | 14 + .../api/overview/properties-overview.md | 24 + .../api/overview/table-events-overview.md | 16 + .../current/api/table/close-row.md | 43 + .../current/api/table/export.md | 109 +++ .../current/api/table/filter-rows.md | 35 + .../current/api/table/open-row.md | 43 + .../current/assets/add_remove.png | Bin 0 -> 22594 bytes .../current/assets/apply_filter.png | Bin 0 -> 133304 bytes .../current/assets/config_panel.png | Bin 0 -> 21843 bytes .../current/assets/filter.png | Bin 0 -> 20846 bytes .../current/assets/filter_applied.png | Bin 0 -> 120103 bytes .../current/assets/operations.png | Bin 0 -> 25098 bytes .../current/assets/pivot-main.png | Bin 0 -> 21456 bytes .../current/assets/priority.png | Bin 0 -> 61453 bytes .../current/assets/table.png | Bin 0 -> 61265 bytes .../current/assets/trial_pivot.png | Bin 0 -> 295044 bytes .../current/guides/configuration.md | 740 ++++++++++++++++++ .../current/guides/exporting-data.md | 45 ++ .../current/guides/initialization.md | 86 ++ .../guides/integration-with-angular.md | 325 ++++++++ .../current/guides/integration-with-react.md | 289 +++++++ .../current/guides/integration-with-svelte.md | 302 +++++++ .../current/guides/integration-with-vue.md | 312 ++++++++ .../current/guides/loading-data.md | 279 +++++++ .../current/guides/localization.md | 293 +++++++ .../current/guides/stylization.md | 266 +++++++ .../current/guides/typescript-support.md | 17 + .../current/guides/working-with-data.md | 687 ++++++++++++++++ .../current/guides/working-with-server.md | 172 ++++ .../current/how-to-start.md | 122 +++ .../current/index.md | 103 +++ .../current/news/migration.md | 57 ++ .../current/news/whats-new.md | 114 +++ 73 files changed, 7447 insertions(+) create mode 100644 i18n/ko/docusaurus-plugin-content-docs/current/.sync create mode 100644 i18n/ko/docusaurus-plugin-content-docs/current/api/config/columnshape-property.md create mode 100644 i18n/ko/docusaurus-plugin-content-docs/current/api/config/config-property.md create mode 100644 i18n/ko/docusaurus-plugin-content-docs/current/api/config/configpanel-property.md create mode 100644 i18n/ko/docusaurus-plugin-content-docs/current/api/config/data-property.md create mode 100644 i18n/ko/docusaurus-plugin-content-docs/current/api/config/fields-property.md create mode 100644 i18n/ko/docusaurus-plugin-content-docs/current/api/config/headershape-property.md create mode 100644 i18n/ko/docusaurus-plugin-content-docs/current/api/config/limits-property.md create mode 100644 i18n/ko/docusaurus-plugin-content-docs/current/api/config/locale-property.md create mode 100644 i18n/ko/docusaurus-plugin-content-docs/current/api/config/methods-property.md create mode 100644 i18n/ko/docusaurus-plugin-content-docs/current/api/config/predicates-property.md create mode 100644 i18n/ko/docusaurus-plugin-content-docs/current/api/config/readonly-property.md create mode 100644 i18n/ko/docusaurus-plugin-content-docs/current/api/config/tableshape-property.md create mode 100644 i18n/ko/docusaurus-plugin-content-docs/current/api/events/add-field-event.md create mode 100644 i18n/ko/docusaurus-plugin-content-docs/current/api/events/apply-filter-event.md create mode 100644 i18n/ko/docusaurus-plugin-content-docs/current/api/events/delete-field-event.md create mode 100644 i18n/ko/docusaurus-plugin-content-docs/current/api/events/move-field-event.md create mode 100644 i18n/ko/docusaurus-plugin-content-docs/current/api/events/open-filter-event.md create mode 100644 i18n/ko/docusaurus-plugin-content-docs/current/api/events/render-table-event.md create mode 100644 i18n/ko/docusaurus-plugin-content-docs/current/api/events/show-config-panel-event.md create mode 100644 i18n/ko/docusaurus-plugin-content-docs/current/api/events/update-config-event.md create mode 100644 i18n/ko/docusaurus-plugin-content-docs/current/api/events/update-field-event.md create mode 100644 i18n/ko/docusaurus-plugin-content-docs/current/api/helpers/template.md create mode 100644 i18n/ko/docusaurus-plugin-content-docs/current/api/internal/detach-method.md create mode 100644 i18n/ko/docusaurus-plugin-content-docs/current/api/internal/exec-method.md create mode 100644 i18n/ko/docusaurus-plugin-content-docs/current/api/internal/getreactivestate-method.md create mode 100644 i18n/ko/docusaurus-plugin-content-docs/current/api/internal/getstate-method.md create mode 100644 i18n/ko/docusaurus-plugin-content-docs/current/api/internal/getstores-method.md create mode 100644 i18n/ko/docusaurus-plugin-content-docs/current/api/internal/intercept-method.md create mode 100644 i18n/ko/docusaurus-plugin-content-docs/current/api/internal/on-method.md create mode 100644 i18n/ko/docusaurus-plugin-content-docs/current/api/internal/setnext-method.md create mode 100644 i18n/ko/docusaurus-plugin-content-docs/current/api/methods/gettable-method.md create mode 100644 i18n/ko/docusaurus-plugin-content-docs/current/api/methods/setconfig-method.md create mode 100644 i18n/ko/docusaurus-plugin-content-docs/current/api/methods/setlocale-method.md create mode 100644 i18n/ko/docusaurus-plugin-content-docs/current/api/methods/showconfigpanel-method.md create mode 100644 i18n/ko/docusaurus-plugin-content-docs/current/api/overview/events-overview.md create mode 100644 i18n/ko/docusaurus-plugin-content-docs/current/api/overview/internal-eventbus-overview.md create mode 100644 i18n/ko/docusaurus-plugin-content-docs/current/api/overview/internal-state-overview.md create mode 100644 i18n/ko/docusaurus-plugin-content-docs/current/api/overview/main-overview.md create mode 100644 i18n/ko/docusaurus-plugin-content-docs/current/api/overview/methods-overview.md create mode 100644 i18n/ko/docusaurus-plugin-content-docs/current/api/overview/properties-overview.md create mode 100644 i18n/ko/docusaurus-plugin-content-docs/current/api/overview/table-events-overview.md create mode 100644 i18n/ko/docusaurus-plugin-content-docs/current/api/table/close-row.md create mode 100644 i18n/ko/docusaurus-plugin-content-docs/current/api/table/export.md create mode 100644 i18n/ko/docusaurus-plugin-content-docs/current/api/table/filter-rows.md create mode 100644 i18n/ko/docusaurus-plugin-content-docs/current/api/table/open-row.md create mode 100644 i18n/ko/docusaurus-plugin-content-docs/current/assets/add_remove.png create mode 100644 i18n/ko/docusaurus-plugin-content-docs/current/assets/apply_filter.png create mode 100644 i18n/ko/docusaurus-plugin-content-docs/current/assets/config_panel.png create mode 100644 i18n/ko/docusaurus-plugin-content-docs/current/assets/filter.png create mode 100644 i18n/ko/docusaurus-plugin-content-docs/current/assets/filter_applied.png create mode 100644 i18n/ko/docusaurus-plugin-content-docs/current/assets/operations.png create mode 100644 i18n/ko/docusaurus-plugin-content-docs/current/assets/pivot-main.png create mode 100644 i18n/ko/docusaurus-plugin-content-docs/current/assets/priority.png create mode 100644 i18n/ko/docusaurus-plugin-content-docs/current/assets/table.png create mode 100644 i18n/ko/docusaurus-plugin-content-docs/current/assets/trial_pivot.png create mode 100644 i18n/ko/docusaurus-plugin-content-docs/current/guides/configuration.md create mode 100644 i18n/ko/docusaurus-plugin-content-docs/current/guides/exporting-data.md create mode 100644 i18n/ko/docusaurus-plugin-content-docs/current/guides/initialization.md create mode 100644 i18n/ko/docusaurus-plugin-content-docs/current/guides/integration-with-angular.md create mode 100644 i18n/ko/docusaurus-plugin-content-docs/current/guides/integration-with-react.md create mode 100644 i18n/ko/docusaurus-plugin-content-docs/current/guides/integration-with-svelte.md create mode 100644 i18n/ko/docusaurus-plugin-content-docs/current/guides/integration-with-vue.md create mode 100644 i18n/ko/docusaurus-plugin-content-docs/current/guides/loading-data.md create mode 100644 i18n/ko/docusaurus-plugin-content-docs/current/guides/localization.md create mode 100644 i18n/ko/docusaurus-plugin-content-docs/current/guides/stylization.md create mode 100644 i18n/ko/docusaurus-plugin-content-docs/current/guides/typescript-support.md create mode 100644 i18n/ko/docusaurus-plugin-content-docs/current/guides/working-with-data.md create mode 100644 i18n/ko/docusaurus-plugin-content-docs/current/guides/working-with-server.md create mode 100644 i18n/ko/docusaurus-plugin-content-docs/current/how-to-start.md create mode 100644 i18n/ko/docusaurus-plugin-content-docs/current/index.md create mode 100644 i18n/ko/docusaurus-plugin-content-docs/current/news/migration.md create mode 100644 i18n/ko/docusaurus-plugin-content-docs/current/news/whats-new.md diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/.sync b/i18n/ko/docusaurus-plugin-content-docs/current/.sync new file mode 100644 index 0000000..ef543cf --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/.sync @@ -0,0 +1 @@ +05469ebe9355e2393701b28c3c5126da9be5d566 diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/api/config/columnshape-property.md b/i18n/ko/docusaurus-plugin-content-docs/current/api/config/columnshape-property.md new file mode 100644 index 0000000..62d00c7 --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/api/config/columnshape-property.md @@ -0,0 +1,82 @@ +--- +sidebar_label: columnShape +title: columnShape Config +description: DHTMLX JavaScript Pivot 라이브러리 문서에서 columnShape config에 대해 알아볼 수 있습니다. 개발자 가이드와 API 레퍼런스를 살펴보고, 코드 예제와 라이브 데모를 체험하며, DHTMLX Pivot 30일 무료 평가판을 다운로드하세요. +--- + +# columnShape + +### 설명 {#description} + +@short: 선택 사항. Pivot 열의 외관과 동작을 구성합니다 + +### 사용법 {#usage} + +~~~jsx +columnShape?: { + sort?: boolean, + width?: { + [field: string]: number + }, + autoWidth?: { + columns: { + [field: string]: boolean + }, + auto?: boolean | "header" | "data", + maxRows?: number, + firstOnly?: boolean + } +}; +~~~ + +### 매개변수 {#parameters} + +- `sort` - (선택 사항) **true**(기본값)이면 열 헤더 클릭 시 UI에서 정렬이 활성화됩니다. **false**이면 정렬이 비활성화됩니다 +- `width` - (선택 사항) 열의 너비를 정의합니다. 각 키가 필드 id이고 값이 픽셀 단위의 열 너비인 객체입니다 +- `autoWidth` - (선택 사항) 열 너비를 자동으로 계산하는 방법을 정의하는 객체입니다. 기본 구성은 20개의 행을 사용하며, 헤더와 데이터를 기반으로 너비를 계산하고 각 필드는 한 번만 분석됩니다. 객체의 매개변수는 다음과 같습니다: + - `columns` - (필수) 각 키가 필드 id이고 boolean 값이 해당 열 너비를 자동으로 계산할지 여부를 정의하는 객체입니다 + - `auto` - (선택 사항) **header**로 설정하면 헤더 텍스트에 맞게 너비를 조정하고, **data**로 설정하면 콘텐츠가 가장 넓은 셀에 맞게 너비를 조정하며, **true**로 설정하면 헤더와 셀의 콘텐츠 모두에 맞게 너비를 조정합니다. + autowidth가 **false**로 설정된 경우, `width` 값이 설정되거나 [`tableShape`](api/config/tableshape-property.md) 속성의 `columnWidth` 값이 적용됩니다. + - `maxRows` - (선택 사항) autoWidth 계산 시 처리할 행의 수입니다 + - `firstOnly` - (선택 사항) **true**(기본값)로 설정하면 동일한 데이터의 각 필드는 열 너비 계산을 위해 한 번만 분석됩니다. 동일한 데이터를 기반으로 여러 열이 있는 경우(예: *count* 연산의 *oil* 필드와 *sum* 연산의 *oil* 필드), 첫 번째 열의 데이터만 분석되고 나머지는 해당 너비를 상속합니다 + +## 예제 {#example} + +~~~jsx {18-31} +const table = new pivot.Pivot("#root", { + fields, + data, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + }, + columnShape: { + autoWidth: { + // 이 필드들의 열 너비를 계산합니다 + columns: { + studio: true, + genre: true, + title: true, + score: true + }, + auto: true, + // 모든 필드를 분석합니다 + firstOnly: false + } + } +}); +~~~ + +**관련 샘플:** +- [Pivot 2. 자동 너비 - 콘텐츠에 맞게 열 크기 조정](https://snippet.dhtmlx.com/tn1yw14m) +- [Pivot 2. 열 너비 설정](https://snippet.dhtmlx.com/ceu34kkn) diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/api/config/config-property.md b/i18n/ko/docusaurus-plugin-content-docs/current/api/config/config-property.md new file mode 100644 index 0000000..2f15c85 --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/api/config/config-property.md @@ -0,0 +1,146 @@ +--- +sidebar_label: config +title: config Config +description: DHTMLX JavaScript Pivot 라이브러리 문서에서 config 설정에 대해 알아볼 수 있습니다. 개발자 가이드와 API 레퍼런스를 살펴보고, 코드 예제와 라이브 데모를 체험해 보세요. DHTMLX Pivot 30일 무료 평가판도 다운로드할 수 있습니다. +--- + +# config + +### 설명 {#description} + +@short: 선택 사항. Pivot 테이블의 구조와 데이터 집계 방식을 정의합니다 + +### 사용법 {#usage} + +~~~jsx +config?: { + rows?: string | {field: string, method?: string}[], + columns?: string | {field: string, method?: string}[], + values?: string | {field: string, method?: string}[], + filters?: {} +}; +~~~ + +### 매개변수 {#parameters} + +`config` 매개변수는 행과 열에 적용할 필드 및 행/열에 대한 추가 데이터 집계 방법을 정의하는 데 사용됩니다. + +- `rows` - (선택 사항) Pivot 테이블의 행을 정의합니다. 기본값은 빈 배열입니다. 단일 필드 ID를 나타내는 문자열이나 필드 ID와 데이터 추출 방법을 포함하는 객체를 사용할 수 있습니다. 객체의 매개변수는 다음과 같습니다: + - `field` - (필수) 필드의 ID + - `method` - (선택 사항) 해당 필드에서 데이터 집계에 사용할 방법을 정의합니다. 시간 기반 데이터 필드에는 기본적으로 "year", "quarter", "month", "week", "day", "hour", "minute" 방법이 제공되며, 이를 통해 데이터를 그룹화할 수 있습니다. 또한 임의의 데이터 유형 필드에 사용자 정의 방법의 이름을 추가할 수 있습니다([`predicates` 참고](api/config/predicates-property.md)). +- `columns` - (선택 사항) Pivot 테이블의 열을 정의합니다. 기본값은 빈 배열입니다. 단일 필드 ID나 필드 ID와 데이터 추출 방법을 포함하는 객체를 사용할 수 있습니다. 객체의 매개변수는 다음과 같습니다: + - `field` - (필수) 필드의 ID + - `method` - (선택 사항) 데이터 처리에 사용할 방법을 정의합니다(시간 기반 데이터 필드의 경우). + 기본적으로 시간 기반 필드(**date** 타입)에는 "year", "quarter", "month", "week", "day", "hour", "minute" 값의 방법이 제공됩니다. 또한 임의의 데이터 유형 필드에 사용자 정의 방법의 이름을 추가할 수 있습니다([`predicates` 참고](api/config/predicates-property.md)). +- `values` - (선택 사항) Pivot 테이블 셀의 데이터 집계를 정의합니다. 기본값은 빈 배열입니다. 각 요소는 데이터 필드 ID와 집계 방법을 나타내는 문자열이거나, 필드 ID와 데이터 집계 방법을 포함하는 객체일 수 있습니다. 객체의 매개변수는 다음과 같습니다: + - `field` - (필수) 필드의 ID + - `method` - (필수) 데이터 추출에 사용할 방법을 정의합니다. 방법의 유형 및 설명은 [방법 적용하기](guides/working-with-data.md#default-methods)를 참고하세요. + +
+ +values 정의 옵션 + +`values`는 동일하게 유효한 두 가지 방법 중 하나로 정의할 수 있습니다: +- 옵션 1: 필드 ID를 나타내는 문자열 +- 옵션 2: 필드 ID와 데이터 집계 방법을 포함하는 객체 + +### 예제 {#example} + +~~~jsx +values: [ + "sum(sales)", // 옵션 1 + { field: "sales", method: "sum" }, // 옵션 2 +] +~~~ + +
+ +- `filters` - (선택 사항) 테이블에서 데이터를 필터링하는 방식을 정의합니다. 필드 ID와 필터링 규칙을 포함하는 객체입니다. 기본값은 빈 객체입니다. 객체의 매개변수는 다음과 같습니다: + - `field` - (선택 사항) 필드의 ID 또는 필터링 기준이 있는 ID 배열을 키로 사용하는 필터: + - `equal` - (선택 사항) 숫자, 문자열, Date 값을 허용합니다 + - `notEqual` - (선택 사항) 숫자, 문자열, Date 값을 허용합니다 + - `greater` - (선택 사항) 숫자 및 Date 값을 허용합니다 + - `greaterOrEqual` - (선택 사항) 숫자 및 Date 값을 허용합니다 + - `less` - (선택 사항) 숫자 및 Date 값을 허용합니다 + - `lessOrEqual` - 숫자 및 Date 값을 허용합니다 + - `between` - 다음 매개변수를 포함하는 객체: + - `start` - Date + - `end` - Date + - `notBetween` - 다음 매개변수를 포함하는 객체: + - `start` - Date + - `end` - Date + - `contains` - 문자열 값과 숫자를 허용합니다 + - `notContains` - 문자열 값과 숫자를 허용합니다 + - `beginsWith` - 문자열 값과 숫자를 허용합니다 + - `notBeginsWith` - 문자열 값과 숫자를 허용합니다 + - `endsWith` - 문자열 값과 숫자를 허용합니다 + - `notEndsWith` - 문자열 값과 숫자를 허용합니다 + - `includes` - (선택 사항) 이미 필터링된 값 중에서 표시할 값의 배열. 텍스트 및 날짜 값에 사용 가능합니다 + +:::info +config가 Pivot에 의해 처리되면 해당 속성에 추가 데이터가 포함됩니다. [`api.getState()`](api/internal/getstate-method.md) 메서드를 통해 config 상태를 반환하려고 하면 전체 객체는 다음과 같이 표시됩니다: + +~~~jsx +interface IParsedField { + id: string, + field: string, + method: string | null, + area: 'rows'|'columns'|'values', + base?: string, + label: string, + type: 'number'|'date'|'text' +} + +interface IParsedConfig { + rows: IParsedField[], + columns: IParsedField[], + values: IParsedField[], + filters: { + [field: string]: number | string | [] | + { [operation: string]: number | string | [] | { start:Date, end: Date} } + } +} +~~~ + +매개변수: + +- `id` - 처리된 필드의 고유 ID +- `field` - 필드 이름 +- `method` - 집계에 사용되는 작업 이름. rows 및 columns의 경우 method는 선택 사항이며, 제공된 경우 predicate로 작동하여 집계 전에 필드 데이터를 사전 처리하는 방식을 정의합니다. values의 경우 method는 필수 매개변수입니다. +- `area` - 필드가 추가되는 영역 +- `base` - predicate가 있는 필드의 columns 및 rows에서 사용됩니다. 원본 필드 이름을 정의하며, 필드 이름은 "field_by_predicate" 패턴에 따라 구성됩니다. +- `label` - 텍스트 레이블 +- `type` - 데이터 유형 +::: + +### 예제 {#example} + +~~~jsx {4-26} +const table = new pivot.Pivot("#root", { + fields, + data: dataset, + config: { + rows: ["studio", "genre"], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ], + filters: { + genre: { + contains: "D", + includes: ["Drama"] + }, + title: { + // 다른 필드("title")에 대한 필터 + contains: "A" + } + } + } +}); +~~~ diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/api/config/configpanel-property.md b/i18n/ko/docusaurus-plugin-content-docs/current/api/config/configpanel-property.md new file mode 100644 index 0000000..d3aa082 --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/api/config/configpanel-property.md @@ -0,0 +1,58 @@ +--- +sidebar_label: configPanel +title: configPanel 설정 +description: DHTMLX JavaScript Pivot 라이브러리 문서에서 configPanel 설정에 대해 알아볼 수 있습니다. 개발자 가이드와 API 레퍼런스를 살펴보고, 코드 예제와 라이브 데모를 사용해 보고, DHTMLX Pivot 30일 무료 평가판을 다운로드하세요. +--- + +# configPanel + +### 설명 {#description} + +@short: 선택 사항. UI에서 구성 패널의 표시 여부를 제어합니다 + +UI에서 **Hide Settings** 버튼을 클릭하면 패널이 숨겨지거나 표시됩니다. + +### 사용법 {#usage} + +~~~jsx +configPanel?: boolean; +~~~ + +### 매개변수 {#parameters} + +이 속성은 **true** 또는 **false**로 설정할 수 있습니다: + +- `true` - 기본값, 구성 패널을 표시합니다 +- `false` - 구성 패널을 숨깁니다 + +## 예제 {#example} + +~~~jsx {5} +// 초기화 시 구성 패널이 숨겨집니다 +const table = new pivot.Pivot("#root", { + fields, + data: dataset, + configPanel: false, + config: { + rows: ["hobbies"], + columns: ["relationship_status"], + values: [ + { + field: "age", + method: "min" + }, + { + field: "age", + method: "max" + } + ] + } +}); +~~~ + +**관련 샘플:** [Pivot 2.0: 구성 패널 표시 여부 전환](https://snippet.dhtmlx.com/1xq1x5bo) + +**관련 문서:** +- [`show-config-panel` 이벤트](api/events/show-config-panel-event.md) +- [`showConfigPanel()` 메서드](api/methods/showconfigpanel-method.md) +- [구성 패널 표시 여부 제어](guides/configuration.md#controlling-visibility-of-configuration-panel) diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/api/config/data-property.md b/i18n/ko/docusaurus-plugin-content-docs/current/api/config/data-property.md new file mode 100644 index 0000000..40774de --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/api/config/data-property.md @@ -0,0 +1,129 @@ +--- +sidebar_label: data +title: data Config +description: DHTMLX JavaScript Pivot 라이브러리 문서에서 data config에 대해 알아볼 수 있습니다. 개발자 가이드 및 API 참조를 살펴보고, 코드 예제와 라이브 데모를 체험해 보세요. 또한 DHTMLX Pivot의 무료 30일 평가판을 다운로드할 수 있습니다. +--- + +# data + +### 설명 {#description} + +@short: 선택 사항. Pivot 테이블의 데이터를 포함하는 객체 배열 + +### 사용법 {#usage} + +~~~jsx +data?: []; +~~~ + +### 매개변수 {#parameters} + +`data` 배열의 각 객체는 하나의 행을 나타냅니다. 기본값은 빈 배열입니다. +`data` 속성의 직접적인 하위 속성은 없습니다. 그러나 배열의 각 객체는 Pivot 테이블의 차원과 값을 나타내는 임의 개수의 속성을 가질 수 있습니다. + +`data` 배열 예시: + +~~~jsx +const data = [ + { + name: "Argentina", + year: 2015, + continent: "South America", + form: "Republic", + gdp: 181.357, + oil: 1.545, + balance: 4.699, + when: new Date("4/21/2015") + }, + { + name: "Argentina", + year: 2017, + continent: "South America", + form: "Republic", + gdp: 212.507, + oil: 1.732, + balance: 7.167, + when: new Date("1/15/2017") + }, + { + name: "Argentina", + year: 2014, + continent: "South America", + form: "Republic", + gdp: 260.071, + oil: 2.845, + balance: 6.728, + when: new Date("6/16/2014") + }, + { + name: "Argentina", + year: 2014, + continent: "South America", + form: "Republic", + gdp: 324.405, + oil: 4.333, + balance: 5.99, + when: new Date("2/20/2014") + }, + { + name: "Argentina", + year: 2014, + continent: "South America", + form: "Republic", + gdp: 305.763, + oil: 2.626, + balance: 7.544, + when: new Date("8/17/2014") + }, + //다른 데이터 +]; +~~~ + +### 예제 {#example} + +~~~jsx {3-29} +const table = new pivot.Pivot("#root", { + fields, + data: [ + { + rank: 1, + title: "Shingeki no Kyojin: The Final Season - Kanketsu-hen", + popularity: 609, + genre: "Action", + studio: "MAPPA", + type: "Special", + episodes: 2, + duration: 61, + members: 347875, + score: 9.17, + }, + { + rank: 2, + title: "Fullmetal Alchemist: Brotherhood", + popularity: 3, + genre: "Action", + studio: "Bones", + type: "TV", + episodes: 64, + duration: 24, + members: 3109951, + score: 9.11 + }, + //다른 데이터 객체 + ], + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + } +}); +~~~ diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/api/config/fields-property.md b/i18n/ko/docusaurus-plugin-content-docs/current/api/config/fields-property.md new file mode 100644 index 0000000..76536c9 --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/api/config/fields-property.md @@ -0,0 +1,112 @@ +--- +sidebar_label: fields +title: fields Config +description: DHTMLX JavaScript Pivot 라이브러리 문서에서 fields 설정에 대해 알아볼 수 있습니다. 개발자 가이드와 API 레퍼런스를 살펴보고, 코드 예제와 라이브 데모를 체험해 보세요. DHTMLX Pivot의 무료 30일 평가판도 다운로드할 수 있습니다. +--- + +# fields + +### 설명 {#description} + +@short: 선택 사항. Pivot 테이블의 필드를 정의하는 객체 배열 + +`fields` 속성은 구성 객체에서 위젯이 수신하는 데이터 필드의 타입을 해석하는 방법을 제어하고, 필드의 정렬 순서를 정의할 수 있게 합니다. + +### 사용법 {#usage} + +~~~jsx +fields?: [{ + id: string, + label?: string, + type: "number" | "date" | "text", + sort?: "asc" | "desc" | ((a: any, b: any) => number), + format?: string | boolean | numberFormatOptions{} +}]; +~~~ + +### 매개변수 {#parameters} + +기본적으로 이 속성이 설정되지 않은 경우, 위젯은 수신된 데이터를 자동으로 분석하고 그에 따라 `fields` 객체를 채웁니다. + +`fields` 배열의 각 객체에는 다음 속성이 있어야 합니다: + +- `id` - (필수) 필드의 ID +- `label` - (선택 사항) GUI에 표시될 필드 레이블 +- `type` - (필수) 필드의 데이터 타입 ("number", "date", 또는 "text") +- `sort` - (선택 사항) 필드의 기본 정렬 순서를 정의합니다. "asc", "desc" 또는 사용자 정의 정렬 함수를 허용합니다 +- `format` - (선택 사항) 필드에서 숫자와 날짜의 형식을 사용자 정의할 수 있습니다; 형식은 [내보내기](guides/exporting-data.md) 중에도 적용됩니다 + - `string` - (선택 사항) 날짜 형식 (기본적으로 Pivot은 로케일의 `dateFormat`을 사용합니다) + - `boolean` - (선택 사항) **false**로 설정하면 숫자가 형식 없이 그대로 표시됩니다 + - `numberFormatOptions` - (선택 사항) 숫자 필드 형식 지정을 위한 옵션 객체; 기본적으로 숫자는 최대 3자리 소수 자릿수로 표시되고 정수 부분에 그룹 구분이 적용됩니다. + - `minimumIntegerDigits`(number) - (선택 사항) 최소 정수 자릿수 (예: 값이 2로 설정되면 숫자 1이 "01"로 표시됨); 기본값은 1; + - `minimumFractionDigits`(number) - (선택 사항) 사용할 최소 소수 자릿수 (예: 값이 2로 설정되면 숫자 10.5가 "10.50"으로 표시됨); 기본값은 0; + - `maximumFractionDigits`(number) - (선택 사항) 사용할 최대 소수 자릿수 (예: 값이 2로 설정되면 숫자 10.3333...이 "10.33"으로 표시됨); 기본값은 3; + 자릿수 옵션에 대한 자세한 내용은 [자릿수 옵션](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/NumberFormat#minimumintegerdigits)을 참조하세요 + - `prefix` (string) - (선택 사항) 통화 기호 등의 추가 기호를 위해 숫자 앞에 붙는 문자열 + - `suffix` (string) - (선택 사항) 통화 기호 등의 추가 기호를 위해 숫자 뒤에 붙는 문자열 + +:::info +[`tableShape`](api/config/tableshape-property.md) 속성을 통해 템플릿이 적용되면 `format` 설정이 재정의됩니다. +::: + +### 예제 {#example} + +~~~jsx {2-34} +const table = new pivot.Pivot("#root", { + fields: [ + { + id: "rank", + label: "Rank", + type: "number" + }, + { + id: "title", + label: "Title", + type: "text" + }, + { + id: "genre", + label: "Genre", + type: "text" + }, + { + id: "studio", + label: "Studio", + type: "text" + }, + { + id: "type", + label: "Type", + type: "text" + }, + { + id: "score", + label: "Score", + type: "number" + }, + //다른 필드들 + ], + data, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + } +}); +~~~ + +**관련 문서**: + +- [숫자 형식 지정](guides/localization.md#number-formatting) +- [필드에 형식 적용하기](guides/working-with-data.md#applying-formats-to-fields) + +**관련 샘플:** [Pivot 2. 필드 형식 정의하기](https://snippet.dhtmlx.com/77nc4j8v) diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/api/config/headershape-property.md b/i18n/ko/docusaurus-plugin-content-docs/current/api/config/headershape-property.md new file mode 100644 index 0000000..6bf4656 --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/api/config/headershape-property.md @@ -0,0 +1,83 @@ +--- +sidebar_label: headerShape +title: headerShape Config +description: DHTMLX JavaScript Pivot 라이브러리 문서에서 headerShape config에 대해 알아볼 수 있습니다. 개발자 가이드와 API 레퍼런스를 살펴보고, 코드 예제와 라이브 데모를 체험해 보세요. DHTMLX Pivot 30일 무료 평가판을 다운로드하실 수 있습니다. +--- + +# headerShape + +### 설명 {#description} + +@short: 선택 사항입니다. Pivot 테이블 헤더의 외관과 동작을 구성합니다 + +### 사용법 {#usage} + +~~~jsx +headerShape?: { + collapsible?: boolean, + vertical?: boolean, + template?: (label: string, field: string, subLabel?: string) => string, + cellStyle?: ( + field: string, + value: any, + area: "rows"|"columns"|"values", + method?: string, + isTotal?: boolean) + => string, +}; +~~~ + +### 매개변수 {#parameters} + +- `collapsible` - (선택 사항) **true**로 설정하면 테이블의 차원 그룹을 접을 수 있습니다. 기본값은 **false**입니다 +- `vertical` - (선택 사항) **true**로 설정하면 모든 헤더의 텍스트 방향이 가로에서 세로로 변경됩니다. 기본값은 **false**입니다 +- `cellStyle` - (선택 사항) 헤더 셀에 사용자 정의 스타일을 적용하는 함수입니다. 이 함수는 css 클래스 이름을 반환하며 다음 매개변수를 받습니다: + - `field` (string) - (필수) 셀이 해당하는 필드 이름을 나타내는 문자열입니다. 트리 열의 헤더인 경우 field는 ""입니다 + - `value` (string | number | date) - (필수) 셀의 값입니다 + - `area` - (필수) 셀이 위치한 테이블 영역을 나타내는 문자열입니다("rows", "columns" 또는 "values" 영역) + - `method` (string) - (선택 사항) "values" 영역의 필드에 대해 수행되는 연산(예: "sum", "count" 등)이나 "columns" 영역의 필드에 설정된 predicate 이름을 나타낼 수 있는 문자열입니다 + - `isTotal` - (선택 사항) 셀이 합계 열에 속하는지 여부를 정의합니다 +- `template` - (선택 사항) 헤더의 텍스트 형식을 정의합니다. 기본적으로 행으로 적용된 필드에는 `label` 매개변수 값이 표시되고, 값으로 적용된 필드에는 label과 method가 함께 표시됩니다(예: *Oil(count)*). 이 함수는 필드 id, label, 그리고 method 또는 predicate id(있는 경우)를 받아 처리된 값을 반환합니다. 기본 template은 다음과 같습니다: +~~~js +template: (label, id, subLabel) => + label + (subLabel ? ` (${subLabel})` : "") +~~~ + +## 예제 {#example} + +아래 예제에서 **values** 필드의 헤더는 label과 method 이름(subLabel)을 표시하고 결과를 소문자로 변환합니다(예: *profit (sum)*): + +~~~jsx {3-6} +new pivot.Pivot("#pivot", { + data, + headerShape: { + // 헤더 텍스트의 사용자 정의 template + template: (label, id, subLabel) => (label + (subLabel ? ` (${subLabel})` : "")).toLowerCase(), + }, + config: { + rows: ["state", "product_type"], + columns: [], + values: [ + { + field: "profit", + method: "sum" + }, + { + field: "sales", + method: "sum" + }, + // other values + ], + }, + fields, +}); +~~~ + +**관련 샘플**: +- [Pivot 2. 그리드 헤더의 세로 텍스트 방향](https://snippet.dhtmlx.com/4qroi8ka) +- [Pivot 2. 접을 수 있는 열](https://snippet.dhtmlx.com/pt2ljmcm) +- [Pivot 2. 테이블 및 헤더 셀에 사용자 정의 CSS 추가](https://snippet.dhtmlx.com/nfdcs4i2) + +**관련 문서**: +- [구성](guides/configuration.md) +- [셀 스타일](guides/stylization.md#cell-style) diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/api/config/limits-property.md b/i18n/ko/docusaurus-plugin-content-docs/current/api/config/limits-property.md new file mode 100644 index 0000000..efbc9ee --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/api/config/limits-property.md @@ -0,0 +1,61 @@ +--- +sidebar_label: limits +title: limits Config +description: DHTMLX JavaScript Pivot 라이브러리 문서에서 limits config에 대해 알아볼 수 있습니다. 개발자 가이드와 API 레퍼런스를 살펴보고, 코드 예제와 라이브 데모를 직접 사용해 보세요. DHTMLX Pivot 30일 무료 평가판도 다운로드하실 수 있습니다. +--- + +# limits + +### 설명 {#description} + +@short: 선택 사항입니다. 최종 데이터셋의 행과 열 수에 대한 최대 제한을 정의합니다. + +[데이터 제한](guides/working-with-data.md#limiting-loaded-data)도 함께 참고하시기 바랍니다. + +### 사용법 {#usage} + +~~~jsx +limits?: { + rows?: number, + columns?: number, + raws?: number +}; +~~~ + +### 파라미터 {#parameters} + +각 파라미터는 데이터 렌더링을 중단할 시점을 정의합니다: + +- `rows` - (선택 사항) 최종 데이터셋의 최대 행 수를 설정합니다. 기본값은 10000입니다. +- `columns` - (선택 사항) 최종 데이터셋의 최대 열 수를 설정합니다. 기본값은 5000입니다. +- `raws` - (선택 사항) 데이터 그룹화 전 소스 데이터의 최대 행 수입니다(집계에 사용되는 원시 데이터 레코드). 기본값은 무한대입니다. + +:::note +Limits는 대용량 데이터셋에 사용됩니다. Limits 값은 근사치이며 행과 열의 정확한 값을 나타내지 않습니다. +::: + +## 예제 {#example} + +~~~jsx {18} +const table = new pivot.Pivot("#root", { + fields, + data: dataset, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + }, + ], + }, + limits:{ rows: 25, columns: 4 } +}); +~~~ + +**관련 샘플:** [Pivot 2. 데이터 제한](https://snippet.dhtmlx.com/7ryns8oe) diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/api/config/locale-property.md b/i18n/ko/docusaurus-plugin-content-docs/current/api/config/locale-property.md new file mode 100644 index 0000000..877a58c --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/api/config/locale-property.md @@ -0,0 +1,51 @@ +--- +sidebar_label: locale +title: locale 설정 +description: DHTMLX JavaScript Pivot 라이브러리 문서에서 locale 설정에 대해 알아볼 수 있습니다. 개발자 가이드와 API 레퍼런스를 살펴보고, 코드 예제와 라이브 데모를 직접 실행해 보세요. 또한 DHTMLX Pivot 30일 무료 평가판을 다운로드할 수 있습니다. +--- + +# locale + +### 설명 {#description} + +@short: 선택 사항. Pivot의 사용자 정의 로케일 객체 + +### 사용법 {#usage} + +~~~jsx +locale?: object; +~~~ + +### 기본 설정 {#default-config} + +기본적으로 Pivot은 [영어](guides/localization.md#default-locale) 로케일을 사용합니다. 사용자 정의 로케일로 변경할 수도 있습니다. + +:::tip +현재 로케일을 동적으로 변경하려면 Pivot의 [`setLocale()`](api/methods/setlocale-method.md) 메서드를 사용할 수 있습니다. +::: + +### 예제 {#example} + +~~~jsx {19} +const table = new pivot.Pivot("#root", { + fields, + data: dataset, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + }, + + locale: pivot.locales.cn, // 처음에 "cn" 로케일이 설정됩니다 + // 기타 매개변수 +}); +~~~ diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/api/config/methods-property.md b/i18n/ko/docusaurus-plugin-content-docs/current/api/config/methods-property.md new file mode 100644 index 0000000..b745e2f --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/api/config/methods-property.md @@ -0,0 +1,163 @@ +--- +sidebar_label: methods +title: methods Config +description: DHTMLX JavaScript Pivot 라이브러리 문서에서 methods 설정에 대해 알아볼 수 있습니다. 개발자 가이드와 API 레퍼런스를 살펴보고, 코드 예제와 라이브 데모를 체험하며, DHTMLX Pivot 30일 무료 평가판을 다운로드하세요. +--- + +# methods + +### 설명 {#description} + +@short: 선택 사항. 데이터 집계를 위한 사용자 정의 수학 메서드를 정의합니다 + +### 사용법 {#usage} + +~~~jsx +methods?: { + [method: string]: { + type?: 'number' | 'date' | 'text' | [], + label?: string, + handler?: (values: number[]) => number, + branchMode?: "raw"|"result", + branchMath?: string + } +}; +~~~ + +### 파라미터 {#parameters} + +각 메서드는 키-값 쌍으로 표현되며, `method`는 메서드의 이름이고 값은 해당 메서드의 동작을 설명하는 객체입니다. 각 객체에는 다음과 같은 파라미터가 있습니다: + +- `handler` - (사용자 정의 메서드에 필수) 숫자 배열에서 집계 값을 계산하는 함수로, 값 배열을 입력으로 받아 단일 값을 반환합니다 +- `type` - (선택 사항) 이 메서드가 적용되는 데이터 타입으로, "number", "date", "text" 또는 이들의 배열로 지정할 수 있습니다 +- `label` - (선택 사항) GUI에 표시될 메서드 레이블 +- `branchMode` - (선택 사항) 트리 테이블에서 합계 값 계산 방식을 정의합니다. `raw`로 설정하면 모든 원시 데이터를 기반으로 계산하고, `result`(기본값)는 트리 모드에서 이미 처리된 데이터를 기반으로 계산합니다 +- `branchMath` - (선택 사항) 트리 모드에서 합계 값을 계산할 메서드 이름으로, 기본적으로 메서드 이름과 동일합니다 ("max" 메서드의 경우 branchMath도 "max") + +기본적으로 `methods` 속성은 빈 객체 {}이며, 사용자 정의 메서드가 정의되지 않음을 의미합니다. methods 객체에 정의할 수 있는 하위 속성의 수에는 제한이 없습니다. + +미리 정의된 메서드: + +~~~jsx +defaultMethods = { + sum: { type: "number", label: "sum" }, + min: { type: ["number", "date"], label: "min" }, + max: { type: ["number", "date"], label: "max" }, + count: { + type: ["number", "date", "text"], + label: "count", + branchMath: "sum" + }, + counta: { + type: ["number", "date", "text"], + label: "counta", + branchMath: "sum" + }, + countunique: { + type: ["number", "text"], + label: "countunique", + branchMath: "sum" + }, + average: { type: "number", label: "average", branchMode: "raw" }, + median: { type: "number", label: "median", branchMode: "raw" }, + product: { type: "number", label: "product" }, + stdev: { type: "number", label: "stdev", branchMode: "raw" }, + stdevp: { type: "number", label: "stdevp", branchMode: "raw" }, + var: { type: "number", label: "var", branchMode: "raw" }, + varp: { type: "number", label: "varp", branchMode: "raw" } +}; +~~~ + +각 메서드의 정의는 여기에서 확인할 수 있습니다: [메서드 적용하기](guides/working-with-data.md#default-methods) + +## 예제 {#example} + +아래 예제는 날짜 타입에 대해 고유 값 개수와 평균 값을 계산하는 방법을 보여줍니다. **countUnique** 함수는 숫자(값) 배열을 입력으로 받아 **reduce** 메서드를 사용하여 정확한 고유 값의 개수를 계산합니다. **countunique_date** 하위 속성에는 날짜 값 배열에서 고유 값을 가져오는 함수가 포함된 handler가 있습니다. **average_date** 하위 속성에는 날짜 값 배열에서 평균 값을 계산하는 handler가 있습니다. + +~~~jsx +function countUnique(values, converter) { + const valueMap = {}; + return values.reduce((acc, d) => { + if (converter) d = converter(d); + if (!valueMap[d]) { + acc++; + valueMap[d] = true; + } + return acc; + }, 0); +} + +const methods = { + countunique_date: { + handler: values => countUnique(values, v => new Date(v).getTime()), + type: "date", + label: "CountUnique" + }, + average_date: { + type: "date", + label: "Average", + branchMode: "raw", + handler: values => { + if (!values.length) return null; + const sum = values.reduce((acc, d) => acc + d.getTime(), 0); + const avgTime = sum / values.length; + return new Date(avgTime); + } + } +}; + +// "count" 및 "unique count" 결과에 정수를 표시합니다 +const templates = {}; +fields.forEach(f => { + if (f.type == "number") + templates[f.id] = (v, method) => + v && method.indexOf("count") < 0 ? parseFloat(v).toFixed(3) : v; +}); + +// 날짜 문자열을 Date로 변환합니다 +const dateFields = fields.filter(f => f.type == "date"); +if (dateFields.length) { + dataset.forEach(item => { + dateFields.forEach(f => { + const v = item[f.id]; + if (typeof v == "string") item[f.id] = new Date(v); + }); + }); +} + +const table = new pivot.Pivot("#root", { + fields, + data: dataset, + tableShape: { templates }, + methods: { ...pivot.defaultMethods, ...methods }, + config:{ + rows: ["state"], + columns: [ + "product_line", + "product_type" + ], + values: [ + { + field: "sales", + method: "sum" + }, + { + field: "sales", + method: "count" + }, + { + field: "date", + method: "countunique_date" + }, + { + field: "date", + method: "average_date" + } + ] + } +}); +~~~ + +**관련 샘플:** [Pivot 2. 사용자 정의 수학 메서드](https://snippet.dhtmlx.com/lv90d8q2) + +**관련 문서**: [수학 메서드 적용하기](guides/working-with-data.md#applying-maths-methods) diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/api/config/predicates-property.md b/i18n/ko/docusaurus-plugin-content-docs/current/api/config/predicates-property.md new file mode 100644 index 0000000..09a8ce8 --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/api/config/predicates-property.md @@ -0,0 +1,117 @@ +--- +sidebar_label: predicates +title: predicates Config +description: DHTMLX JavaScript Pivot 라이브러리 문서에서 predicates config에 대해 알아볼 수 있습니다. 개발자 가이드와 API 레퍼런스를 살펴보고, 코드 예제와 라이브 데모를 체험해 보세요. DHTMLX Pivot 30일 무료 평가판도 다운로드할 수 있습니다. +--- + +# predicates + +### 설명 {#description} + +@short: 선택 사항. 데이터 차원(행, 열)에 대한 사용자 정의 전처리 함수를 제공합니다 + +데이터가 적용되기 전에 어떻게 수정되어야 하는지를 정의합니다. + +### 사용법 {#usage} + +~~~jsx +predicates?: { + [key: string]: { + handler: (value: any) => any, + type: 'number' | 'date' | 'text' | [], + label?: string | (type: 'number' | 'date' | 'text') => string, + template?: (value: any, locale?: any) => string, + field?: (value:string) => boolean, + filter?: { + type: "number"|"text"|"date"|"tuple", + format?:(any) => string + } + } +}; +~~~ + +### 매개변수 {#parameters} + +이 속성은 키가 사용자 정의 함수의 이름이고, 값이 실제 함수 정의를 담은 객체인 객체입니다. predicate 객체는 여러 키-함수 쌍을 가질 수 있으며, 그 모두는 Pivot 구성에서 사용 가능합니다. 각 객체는 다음의 매개변수를 가집니다: + +- `label` - (선택 사항) 행/열의 데이터 수정 옵션 드롭다운 GUI에 표시되는 predicate의 레이블 +- `type` - (필수) 이 predicate가 적용될 수 있는 필드 유형을 정의합니다; "number", "date", "text" 또는 이들 값의 배열을 사용할 수 있습니다 +- `field` - (선택 사항) 지정한 필드의 데이터 처리 방법을 정의하는 함수로, 필드의 id를 매개변수로 받아 해당 필드에 predicate를 추가해야 하는 경우 **true**를 반환합니다 +- `filter` - (선택 사항) 기본적으로 필터 유형은 `type` 매개변수에서 가져오지만, 다른 유형이 필요한 경우 이 `filter` 객체를 사용할 수 있습니다. 다음 매개변수를 가집니다: + - `type` - (선택 사항) 적용될 필드 유형을 정의합니다: "number"|"text"|"date"|"tuple". "tuple"은 숫자 값에 적용되는 콤보 필터로, 데이터는 숫자 값으로 필터링되지만 필터에는 텍스트 값이 표시됩니다 + - `format` - (선택 사항) 필터 옵션 표시 형식을 정의하는 함수입니다; 형식이 정의되지 않은 경우 template 매개변수의 형식이 적용됩니다; 여기서(`filter` 객체의) `type`이 지정되지 않으면, predicate의 `type` 매개변수에 설정된 유형에 형식이 적용됩니다 +- `handler` - (사용자 정의 predicates에 필수) 데이터 처리 방법을 정의하는 함수입니다; 처리할 값을 단일 인수로 받아 처리된 값을 반환해야 합니다 +- `template` - (선택 사항) 데이터 표시 방법을 정의하는 함수입니다; 함수는 처리된 값을 반환하며, `handler`가 반환한 값을 받고, 필요한 경우 [`locale`](api/config/locale-property.md)을 사용하여 텍스트 값을 현지화할 수 있습니다 + +`predicates` 속성으로 predicate가 지정되지 않은 경우 다음의 기본 predicates가 적용됩니다: + +~~~jsx +const defaultPredicates = { + // 원시(처리되지 않은) 값을 나타내는 서비스 predicate + $empty: { label: (type) => `Raw ${type}`, type: ["number", "date", "text"] }, + year: { label: "Year", type: "date", filter: { type: "number" } }, + quarter: { label: "Quarter", type: "date", filter: { type: "tuple" } }, + month: { label: "Month", type: "date", filter: { type: "tuple" } }, + week: { label: "Week", type: "date", filter: { type: "tuple" } }, + day: { label: "Day", type: "date", filter: { type: "number" } }, + hour: { label: "Hour", type: "date", filter: { type: "number" } }, + minute: { label: "Minute", type: "date", filter: { type: "number" } } +}; +~~~ + +## 예제 {#example} + +~~~jsx +const predicates = { + monthYear: { + label: "Month-year", + type: "date", + handler: (d) => new Date(d.getFullYear(), d.getMonth(), 1), + template: (date, locale) => { + const months = locale.getRaw().calendar.monthFull; + return months[date.getMonth()] + " " + date.getFullYear(); + }, + }, + profitSign: { + label: "Profit Sign", + type: "number", + filter: { + type: "tuple", + format: (v) => (v < 0 ? "Negative" : "Positive"), + }, + field: (f) => f === "profit", + handler: (v) => (v < 0 ? -1 : 1), + template: (v) => (v < 0 ? "Negative profit" : "Positive profit"), + }, +}; + +// 날짜 문자열을 Date로 변환 +const dateFields = fields.filter((f) => f.type == "date"); +if (dateFields.length) { + dataset.forEach((item) => { + dateFields.forEach((f) => { + const v = item[f.id]; + if (typeof v == "string") item[f.id] = new Date(v); + }); + }); +} + +const table = new pivot.Pivot("#pivot", { + fields, + data: dataset, + predicates: { ...pivot.defaultPredicates, ...predicates }, + tableShape: { tree: true }, + config: { + rows: ["product_type", "product"], + columns: [ + { field: "profit", method: "profitSign" }, + { field: "date", method: "monthYear" }, + ], + values: ["sales", "expenses"], + }, +}); +~~~ + +**관련 문서**: [predicates로 데이터 처리하기](guides/working-with-data.md#processing-data-with-predicates) + +**관련 샘플**: [Pivot 2. 사용자 정의 predicates](https://snippet.dhtmlx.com/mhymus00) diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/api/config/readonly-property.md b/i18n/ko/docusaurus-plugin-content-docs/current/api/config/readonly-property.md new file mode 100644 index 0000000..ce17bef --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/api/config/readonly-property.md @@ -0,0 +1,52 @@ +--- +sidebar_label: readonly +title: readonly Config +description: DHTMLX JavaScript Pivot 라이브러리 문서에서 readonly 설정에 대해 알아볼 수 있습니다. 개발자 가이드와 API 레퍼런스를 살펴보고, 코드 예제와 라이브 데모를 체험해 보세요. DHTMLX Pivot 30일 무료 평가판도 다운로드하실 수 있습니다. +--- + +# readonly + +### 설명 {#description} + +@short: 선택 사항입니다. 읽기 전용 모드를 활성화하거나 비활성화합니다. + +읽기 전용 모드에서는 UI를 통해 Pivot 구조를 구성할 수 없습니다. + +### 사용법 {#usage} + +~~~jsx + readonly?: boolean; +~~~ + +### 파라미터 {#parameters} + +이 속성은 **true** 또는 **false**로 설정할 수 있습니다: + +- `true` - 읽기 전용 모드를 활성화합니다 +- `false` - 기본값으로, 읽기 전용 모드를 비활성화합니다 + +## 예제 {#example} + +~~~jsx {18} +const table = new pivot.Pivot("#root", { + fields, + data: dataset, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + }, + readonly: true +}); +~~~ + +**관련 샘플:** [Pivot 2. 읽기 전용 모드](https://snippet.dhtmlx.com/0k0mvycv) diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/api/config/tableshape-property.md b/i18n/ko/docusaurus-plugin-content-docs/current/api/config/tableshape-property.md new file mode 100644 index 0000000..da888d4 --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/api/config/tableshape-property.md @@ -0,0 +1,131 @@ +--- +sidebar_label: tableShape +title: tableShape Config +description: DHTMLX JavaScript Pivot 라이브러리 문서에서 tableShape config에 대해 알아볼 수 있습니다. 개발자 가이드와 API 레퍼런스를 살펴보고, 코드 예제와 라이브 데모를 직접 실행해 보세요. DHTMLX Pivot 30일 무료 평가판을 다운로드할 수도 있습니다. +--- + +# tableShape + +### 설명 {#description} + +@short: 선택 사항. Pivot 테이블의 외관을 구성합니다 + +### 사용법 {#usage} + +~~~jsx +tableShape?: { + templates?: { + [field: string]: ( + value: any, + operation: string + ) => any; + }, + totalRow?: boolean | "sumOnly", + totalColumn?: boolean | "sumOnly", + marks?: { + [cssClass: string]: ((v: any, columnData: any, rowData: any) => boolean) + | "max" + | "min" + }, + sizes?: { + rowHeight?: number, + headerHeight?: number, + columnWidth?: number, + footerHeight?: number + }, + tree?:boolean, + cleanRows?: boolean, + split?: { + left?: boolean, + right?: boolean, + }, + cellStyle?: ( + field: string, + value: any, + area: "rows"|"columns"|"values", + method?: string, + isTotal?: "row"|"column"|"both") + => string, +}; +~~~ + +### 매개변수 {#parameters} + +- `templates` - (선택 사항) 셀에 템플릿을 설정할 수 있습니다. 다음과 같은 구조의 객체입니다: + - 각 키는 필드 id입니다 + - 값은 셀 값과 연산을 인수로 받아 문자열을 반환하는 함수입니다. 지정된 필드를 기반으로 하는 모든 열에 해당 템플릿이 적용됩니다. 예를 들어 측정 단위를 설정하거나 숫자 값의 소수점 이하 자릿수를 지정하는 데 사용할 수 있습니다. 아래 예제를 참고하세요. +- `marks` - (선택 사항) 셀에 필요한 값을 표시할 수 있습니다. 키는 CSS 클래스 이름이고, 값은 함수 또는 미리 정의된 문자열("max", "min") 중 하나인 객체입니다. 함수는 검사된 값에 대해 boolean을 반환해야 합니다. **true**가 반환되면 해당 CSS 클래스가 셀에 적용됩니다. 예제를 포함한 자세한 내용은 [셀 스타일](guides/stylization.md#cell-style)을 참고하세요. +- `sizes` - (선택 사항) 테이블의 다음 크기 매개변수를 정의합니다: + - `rowHeight` - (선택 사항) Pivot 테이블의 행 높이(픽셀). 기본값은 34입니다 + - `headerHeight` - (선택 사항) 헤더 높이(픽셀). 기본값은 30입니다 + - `footerHeight` - (선택 사항) 푸터 높이(픽셀). 기본값은 30입니다 + - `columnWidth` - (선택 사항) 열 너비(픽셀). 기본값은 150입니다 +- `cellStyle` - (선택 사항) 셀에 사용자 정의 스타일을 적용하는 함수입니다. 함수의 매개변수는 다음과 같습니다: + - `field` - (필수) 스타일이 적용될 필드 이름을 나타내는 문자열 + - `value` - (필수) 셀의 값 (해당 행과 열의 실제 데이터) + - `area` - (필수) 셀이 속한 테이블 영역을 나타내는 문자열("rows", "columns" 또는 "values" 영역) + - `method` - (선택 사항) 셀에 수행되는 연산을 나타내는 문자열 (예: "sum", "count" 등) + - `isTotal` - (선택 사항) 셀이 합계 행, 합계 열 또는 둘 다에 속하는지 정의합니다: "row"|"column"|"both" + `cellStyle` 함수는 셀에 특정 스타일을 적용하는 CSS 클래스 이름으로 사용할 수 있는 문자열을 반환합니다. +- `tree` - (선택 사항) **true**로 설정하면 데이터를 확장 가능한 행으로 표시하는 트리 모드를 활성화합니다. 기본값은 **false**입니다. 예제를 포함한 자세한 내용은 [트리 모드로 전환](guides/configuration.md#enabling-the-tree-mode)을 참고하세요 +- `totalColumn` - (선택 사항) **true**이면 행의 합계 값이 포함된 합계 열을 생성합니다(기본값은 **false**). "sumOnly"로 설정하면 합계 값 열만 생성됩니다(sum 연산에서만 사용 가능합니다) +- `totalRow` - (선택 사항) **true**이면 합계 값이 포함된 푸터를 생성합니다(기본값은 **false**). "sumOnly"로 설정하면 합계 행 값만 포함된 행이 생성됩니다(sum 연산에서만 사용 가능합니다) +- `cleanRows` - (선택 사항) **true**로 설정하면 테이블 뷰에서 스케일 열의 중복 값이 숨겨집니다. 기본값은 **false**입니다 +- `split` - (선택 사항) 지정된 매개변수에 따라 오른쪽 또는 왼쪽 열을 고정할 수 있습니다([열 고정](guides/configuration.md#freezing-columns) 참고): + - `left` (boolean) - **true**(**false**가 기본값)로 설정하면 왼쪽 열이 고정되어 스크롤 중에도 열이 정적으로 표시됩니다. 분할되는 열의 수는 [`config`](api/config/config-property.md) 속성에 정의된 행 필드의 수와 동일합니다 + - `right` (boolean) - 오른쪽에 합계 열을 고정합니다. 기본값은 **false**입니다 + +기본적으로 `tableShape`는 undefined이며, 합계 행과 합계 열이 없고, 템플릿과 marks가 적용되지 않으며, 데이터는 트리가 아닌 테이블로 표시되고, 스크롤 중 열이 고정되지 않음을 의미합니다. + +## 예제 {#example} + +아래 예제에서는 *state* 셀에 템플릿을 적용하여 주의 전체 이름과 약어를 결합한 이름을 표시합니다. + +~~~jsx {10-15} +const states = { + "California": "CA", + "Colorado": "CO", + "Connecticut": "CT", + "Florida": "FL", +// other values, +}; + +const table = new pivot.Pivot("#root", { + tableShape: { + templates: { + // "state" 셀 값을 커스터마이즈하는 템플릿 설정 + state: v => v+ ` (${states[v]})`, + } + }, + fields, + data, + config: { + rows: ["state", "product_type"], + columns: [], + values: [ + { + field: "profit", + method: "sum" + }, + { + field: "sales", + method: "sum" + }, + // other values + ], + }, + fields, +}); +~~~ + +**관련 샘플:** + +- [Pivot 2. 트리 모드](https://snippet.dhtmlx.com/6ylkoukn) +- [Pivot 2. 고정 열](https://snippet.dhtmlx.com/lahf729o) +- [Pivot 2. 행, 헤더, 푸터 높이 및 모든 열 너비 설정](https://snippet.dhtmlx.com/x46uyfy9) +- [Pivot 2. 행 정리](https://snippet.dhtmlx.com/rwwhgv2w?tag=pivot) +- [Pivot 2. 테이블 및 헤더 셀에 사용자 정의 CSS 추가](https://snippet.dhtmlx.com/nfdcs4i2) + +**관련 문서**: +- [구성](guides/configuration.md) +- [셀 스타일](guides/stylization.md#cell-style) diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/api/events/add-field-event.md b/i18n/ko/docusaurus-plugin-content-docs/current/api/events/add-field-event.md new file mode 100644 index 0000000..a0e72ec --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/api/events/add-field-event.md @@ -0,0 +1,74 @@ +--- +sidebar_label: add-field +title: add-field 이벤트 +description: DHTMLX JavaScript Pivot 라이브러리 문서에서 add-field 이벤트에 대해 학습할 수 있습니다. 개발자 가이드와 API 레퍼런스를 살펴보고, 코드 예제와 라이브 데모를 체험해 보세요. DHTMLX Pivot의 무료 30일 평가판도 다운로드할 수 있습니다. +--- + +# add-field + +### 설명 {#description} + +@short: 행, 열 또는 값 영역에 새 필드가 추가될 때 발생합니다 + +### 사용법 {#usage} + +~~~jsx +"add-field": ({ + id?: string | number, + area: string, + field: string | number, + method?: string +}) => boolean; +~~~ + +### 매개변수 {#parameters} + +이 액션의 callback은 다음 매개변수를 포함하는 객체를 받습니다: + +- `id` - (선택) 새 필드의 원하는 id; 설정하지 않으면 자동 생성된 id가 추가됩니다 +- `area` - (필수) 새 필드가 추가되는 영역의 이름으로, "rows", "columns" 또는 "values" 중 하나입니다 +- `field` - (필수) 필드의 이름 +- `method` - (선택) 데이터 집계 방법을 정의합니다 (지정하지 않으면 해당 데이터 유형에 적합한 첫 번째 방법이 설정됩니다); 다음 중 하나를 사용할 수 있습니다: + - **values** 영역에서는 필수이며, 데이터 연산 유형 중 하나를 나타내는 문자열입니다: [기본 메서드](guides/working-with-data.md#default-methods) + - **rows** 및 **columns** 영역에서는 선택 사항이며, 값이 설정된 경우 predicate입니다; 커스텀 predicate이거나 기본값 중 하나인 "year", "quarter", "month", "week", "day", "hour", "minute"를 사용할 수 있습니다. 기본적으로 원시 값이 설정됩니다. + 커스텀 predicate이나 method가 설정된 경우, [predicates](api/config/predicates-property.md) 또는 [methods](api/config/methods-property.md) 속성에 id를 지정해야 합니다. + +:::info +내부 이벤트를 처리하려면 [Event Bus 메서드](api/overview/internal-eventbus-overview.md)를 사용할 수 있습니다 +::: + +### 예제 {#example} + +아래 예제에서는 [`api.intercept()`](api/internal/intercept-method.md) 메서드를 사용하여 **number** 데이터 유형의 값 필드에 새 메서드를 추가합니다: + +~~~jsx {20-27} +const table = new pivot.Pivot("#root", { + fields, + data: dataset, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + } +}); +//미리 정의된 method로 values 추가 +table.api.intercept("add-field", (ev) => { + const { fields } = table.api.getState(); + const type = fields.find((f) => f.id == ev.field).type; + + if (ev.area == "values" && type == "number") { + ev.method = "min"; + } +}); +~~~ + +**관련 문서**: [api.intercept()](api/internal/intercept-method.md) diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/api/events/apply-filter-event.md b/i18n/ko/docusaurus-plugin-content-docs/current/api/events/apply-filter-event.md new file mode 100644 index 0000000..526018d --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/api/events/apply-filter-event.md @@ -0,0 +1,65 @@ +--- +sidebar_label: apply-filter +title: apply-filter 이벤트 +description: DHTMLX JavaScript Pivot 라이브러리 문서에서 apply-filter 이벤트에 대해 알아볼 수 있습니다. 개발자 가이드와 API 레퍼런스를 살펴보고, 코드 예제와 라이브 데모를 직접 체험해 보세요. DHTMLX Pivot 30일 무료 평가판도 다운로드할 수 있습니다. +--- + +# apply-filter + +### 설명 {#description} + +@short: 필터가 적용될 때 발생합니다 + +### 사용법 {#usage} + +~~~jsx +"apply-filter": ({ + rule: {} +}) => boolean | void; +~~~ + +### 매개변수 {#parameters} + +액션의 callback은 다음 매개변수를 포함하는 객체를 받습니다: + +- `rule` - 아래와 같은 매개변수를 포함하는 필터 구성 객체: + - `field` - (필수) 필터가 적용될 필드 id + - `filter` - (필수) 필터 유형: + - 텍스트 값의 경우: equal, notEqual, contains, notContains, beginsWith, notBeginsWith, endsWith, notEndsWith + - 숫자 값의 경우: greater, less, greaterOrEqual, lessOrEqual, equal, notEqual, contains, notContains + - 날짜 유형의 경우: greater, less, greaterOrEqual, lessOrEqual, equal, notEqual, between, notBetween + - `value` - (선택) 필터링 기준으로 사용할 값 + - `includes` - (선택) 이미 필터링된 값 중에서 표시할 값의 배열; 텍스트 및 날짜 값에 사용 가능 + +:::info +내부 이벤트를 처리하려면 [Event Bus 메서드](api/overview/internal-eventbus-overview.md)를 사용할 수 있습니다 +::: + +### 예제 {#example} + +~~~jsx {20-23} +const table = new pivot.Pivot("#root", { + fields, + data, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + } +}); +//필터가 적용된 필드의 레이블을 콘솔에 출력합니다 +table.api.on("apply-filter", (ev) => { + console.log("The field to which filter was applied:", ev.rule.field); +}); +~~~ + +**관련 문서**: [api.on()](api/internal/on-method.md) diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/api/events/delete-field-event.md b/i18n/ko/docusaurus-plugin-content-docs/current/api/events/delete-field-event.md new file mode 100644 index 0000000..ea0b2cb --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/api/events/delete-field-event.md @@ -0,0 +1,82 @@ +--- +sidebar_label: delete-field +title: delete-field 이벤트 +description: DHTMLX JavaScript Pivot 라이브러리 문서에서 delete-field 이벤트에 대해 알아볼 수 있습니다. 개발자 가이드와 API 레퍼런스를 살펴보고, 코드 예제와 라이브 데모를 체험해 보세요. DHTMLX Pivot의 무료 30일 평가판도 다운로드할 수 있습니다. +--- + +# delete-field + +### 설명 {#description} + +@short: 필드를 제거할 때 발생합니다 + +### 사용법 {#usage} + +~~~jsx +"delete-field": ({ + area: string, + id: string | number +}) => boolean | void; +~~~ + +### 파라미터 {#parameters} + +액션의 콜백은 다음 파라미터를 포함하는 객체를 받습니다: + +- `area` - (필수) 필드가 제거되는 영역의 이름으로, "rows", "columns" 또는 "values" 영역이 될 수 있습니다 +- `id` - (필수) 제거되는 필드의 id + +:::info +내부 이벤트를 처리하려면 [Event Bus 메서드](api/overview/internal-eventbus-overview.md)를 사용할 수 있습니다 +::: + +### 예제 {#example} + +아래 예제에서는 [`api.exec()`](api/internal/exec-method.md) 메서드를 통해 `delete-field` 액션이 실행됩니다. **values** 영역에서 마지막 필드가 제거됩니다. [`api.getState()`](api/internal/getstate-method.md) 메서드는 Pivot [`config`](api/config/config-property.md)의 현재 상태를 가져오는 데 사용됩니다. 버튼을 클릭하면 액션이 실행됩니다. + +~~~jsx {31-34} +const table = new pivot.Pivot("#root", { + fields, + data, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + } +}); + +// API 메서드 호출: config의 values에서 특정 값 제거 +function removeLastField() { + if (table.api) { + const state = table.api.getState(); + const config = state.config; + + const count = config.values.length; + + if (count) { + const lastValue = config.values[count - 1]; + + table.api.exec("delete-field", { + area: "values", + id: lastValue.id, // config.values에 추가된 항목의 자동 생성 ID + }); + } + } +} + +const button = document.createElement("button"); + +button.addEventListener("click", removeLastField); +button.textContent = "Remove"; + +document.body.appendChild(button); +~~~ diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/api/events/move-field-event.md b/i18n/ko/docusaurus-plugin-content-docs/current/api/events/move-field-event.md new file mode 100644 index 0000000..d2b9dd6 --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/api/events/move-field-event.md @@ -0,0 +1,65 @@ +--- +sidebar_label: move-field +title: move-field 이벤트 +description: DHTMLX JavaScript Pivot 라이브러리의 move-field 이벤트에 대한 내용을 문서에서 확인할 수 있습니다. 개발자 가이드와 API 레퍼런스를 살펴보고, 코드 예제와 라이브 데모를 체험해 보세요. DHTMLX Pivot 30일 무료 평가판도 다운로드할 수 있습니다. +--- + +# move-field + +### 설명 {#description} + +@short: 필드 순서를 변경할 때 발생합니다 + +### 사용법 {#usage} + +~~~jsx +"move-field": ({ + area: string, + id: string | number, + before?: string, + after?: string +}) => void | boolean; +~~~ + +### 매개변수 {#parameters} + +action의 callback은 다음 매개변수를 포함하는 객체를 받습니다: + +- `area` - (필수) 순서 변경이 이루어지는 영역의 이름으로, "rows", "columns" 또는 "values" 영역이 될 수 있습니다 +- `id` - (필수) 이동되는 필드의 id +- `before` - (선택) 이동된 필드가 앞에 배치될 필드의 id +- `after` - (선택) 이동된 필드가 뒤에 배치될 필드의 id + +:::info +내부 이벤트를 처리하려면 [Event Bus 메서드](api/overview/internal-eventbus-overview.md)를 사용할 수 있습니다 +::: + +### 예제 {#example} + +~~~jsx {20-23} +const table = new pivot.Pivot("#root", { + fields, + data: dataset, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + } +}); + +//순서가 변경된 필드의 id를 콘솔에 출력합니다 +table.api.on("move-field", (ev) => { + console.log("The id of the reordered field:", ev.id); +}); +~~~ + +**관련 문서**: [api.on()](api/internal/on-method.md) diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/api/events/open-filter-event.md b/i18n/ko/docusaurus-plugin-content-docs/current/api/events/open-filter-event.md new file mode 100644 index 0000000..1624a46 --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/api/events/open-filter-event.md @@ -0,0 +1,95 @@ +--- +sidebar_label: open-filter +title: open-filter 이벤트 +description: DHTMLX JavaScript Pivot 라이브러리 문서에서 open-filter 이벤트에 대해 알아볼 수 있습니다. 개발자 가이드와 API 레퍼런스를 탐색하고, 코드 예제와 라이브 데모를 체험해 보세요. DHTMLX Pivot의 무료 30일 평가판을 다운로드할 수도 있습니다. +--- + +# open-filter + +### 설명 {#description} + +@short: 필드에 대한 필터가 활성화될 때 발생합니다 + +### 사용법 {#usage} + +~~~jsx +"open-filter": ({ + id: string | null, + area?: "values" | "rows" | "columns" +}) => boolean | void; +~~~ + +### 매개변수 {#parameters} + +해당 action의 callback은 다음 매개변수를 받습니다: + +- `area` - 필드가 적용되는 영역("rows", "columns", "values") +- `id` - 필드의 id. null 값을 가진 단일 id 인수가 전달되면 필터가 닫힙니다. + +:::info +내부 이벤트를 처리하려면 [Event Bus 메서드](api/overview/internal-eventbus-overview.md)를 사용할 수 있습니다. +::: + +### 반환값 {#returns} + +함수는 boolean 값 또는 void를 반환할 수 있습니다. **false**를 반환하면 해당 이벤트 동작이 중단됩니다. + +### 예제 {#example} + +아래 예제는 필터 박스를 닫을 때 Configuration 패널을 숨기는 방법을 보여줍니다: + +~~~jsx {20-27} +const table = new pivot.Pivot("#root", { + fields, + data: dataset, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + } +}); + +table.api.on("open-filter", (ev) => { + if(!ev.id) { + table.api.exec("show-config-panel", { + mode: false + }); + } +}); +~~~ + +다음 예제에서는 필터가 활성화된 필드의 id를 콘솔에 출력합니다: + +~~~jsx {20-22} +const table = new pivot.Pivot("#root", { + fields, + data, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + } +}); + +table.api.on("open-filter", (ev) => { + console.log("The field id for which filter is activated:", ev.id); +}); +~~~ diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/api/events/render-table-event.md b/i18n/ko/docusaurus-plugin-content-docs/current/api/events/render-table-event.md new file mode 100644 index 0000000..6b6e7ba --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/api/events/render-table-event.md @@ -0,0 +1,178 @@ +--- +sidebar_label: render-table +title: render-table 이벤트 +description: DHTMLX JavaScript Pivot 라이브러리의 문서에서 render-table 이벤트에 대해 알아볼 수 있습니다. 개발자 가이드와 API 레퍼런스를 살펴보고, 코드 예제와 라이브 데모를 체험하며, DHTMLX Pivot의 무료 30일 평가판을 다운로드하세요. +--- + +# render-table + +### 설명 {#description} + +@short: 위젯 구성이 처리된 후, 테이블이 렌더링되기 직전에 발생합니다 + +이 이벤트를 사용하면 최종 테이블 구성을 즉석에서 변경하거나 테이블 렌더링을 완전히 차단할 수 있습니다. + +### 사용법 {#usage} + +~~~jsx +"render-table": ({ + config: { + columns?: any[], + data?: any[], + footer?: boolean, + sizes?: { + rowHeight?: number, + headerHeight?: number, + columnWidth?: number, + footerHeight?: number + }, + split?: { + left?: number; + right?: number; + }, + tree?: boolean, + cellStyle?: (row: any, col: any) => string, + } +}) => boolean | void; +~~~ + +### 매개변수 {#parameters} + +액션의 callback은 다음 매개변수를 가진 `config` 객체를 받습니다: + +- `columns` - (선택) 각 객체에 대해 다음 매개변수를 포함하는 열 배열: + - `id` (number) - (필수) 열의 id + - `cell` (any) - (선택) 셀 내용이 담긴 템플릿 ([template 헬퍼를 통한 템플릿 추가](guides/configuration.md#adding-a-template-via-the-template-helper) 참조) + - `template` - (선택) [`tableShape`](api/config/tableshape-property.md) 속성을 통해 정의된 템플릿 + - `fields` (array) - (선택) 트리 모드의 계층형 열에서 필드를 정의합니다. 각 레벨에서 이 열에 표시되는 필드를 반영합니다 + - `field` - (선택) 필드의 id인 문자열 + - `method` (string) - (선택) 이 열의 필드에 대해 정의된 메서드 + - `methods` (array) - (선택) 트리 모드의 계층형 열에서 필드에 적용되는 메서드를 정의합니다 + - `format` (string or object) - (필수) 날짜 형식 또는 숫자 형식 ([필드에 형식 적용](guides/working-with-data.md#applying-formats-to-fields) 참조) + - `isNumeric` (boolean) - (선택) 열에 숫자 값이 포함되어 있는지 여부를 정의합니다 + - `isTotal` (boolean) - (선택) 합계 열인지 여부를 정의합니다 + - `area` (string) - (선택) 열이 렌더링되는 영역: "rows", "columns", "values" + - `header` - (선택) 각 셀에 대해 다음 속성을 포함하는 헤더 셀 배열: + - `text` (string) - (선택) 셀 텍스트, 또는 형식화된 값, 또는 predicate 템플릿으로 처리된 값 + - `rowspan` (number) - (선택) 헤더가 차지할 행 수 + - `colspan` (number) - (선택) 헤더가 차지할 열 수 + - `value` (any) - (필수) 셀이 "columns" 영역에 속하는 경우 원시 값 + - `field` (string) - (필수) 셀이 "columns" 영역에 속하는 경우 값이 표시되는 필드 + - `method` (string) - (필수) 셀이 "columns" 영역에 속하고 predicate가 정의된 경우 필드 predicate + - `format` (string or object) - 날짜 형식 또는 숫자 형식 ([필드에 형식 적용](guides/working-with-data.md#applying-formats-to-fields) 참조) + - `footer` - (선택) 헤더 레이블 또는 헤더 설정과 동일한 footer 설정을 포함하는 객체 + - `data` - (선택) 테이블 데이터를 포함하는 객체 배열; 각 객체는 하나의 행을 나타냅니다: + - `id` (number) - (필수) 행 id + - `values` (array) - (필수) 행 데이터를 포함하는 배열 + - `open` (boolean) - (선택) 브랜치 상태 + - `$level` (boolean) - (선택) 브랜치 인덱스 +- `footer` - (선택) **true**로 설정하면 테이블 하단에 footer가 표시됩니다; 기본값은 **false**이며 보이지 않습니다 +- `sizes` - (선택) 테이블 크기 설정을 포함하는 객체 (columnWidth, footerHeight, headerHeight, rowHeight) +- `split` (object) - (선택) 다음 속성을 포함하는 객체: + - `left` (number) - 왼쪽에서 고정할 열 수 + - `right` (number) - 오른쪽에서 고정할 열 수 +- `tree` - (선택) 트리 모드 활성화 여부를 정의합니다 (활성화된 경우 **true**) +- `cellStyle` - (선택) 셀에 커스텀 스타일을 적용하는 함수입니다. 행과 열 객체를 받아 CSS 클래스 이름 문자열을 반환합니다: `(row, col) => string` + +:::info +내부 이벤트를 처리하려면 [Event Bus 메서드](api/overview/internal-eventbus-overview.md)를 사용할 수 있습니다 +::: + +### 반환값 {#returns} + +callback은 boolean 또는 void를 반환할 수 있습니다. +이벤트 핸들러가 **false**를 반환하면 해당 작업이 차단됩니다. 이 경우 테이블 렌더링이 방지됩니다. + +### 예제 {#example} + +다음 예제는 [`config`](api/config/config-property.md) 객체를 콘솔에 출력하고 footer를 추가하는 방법을 보여줍니다. + +~~~jsx {20-28} +const table = new pivot.Pivot("#root", { + fields, + data: dataset, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + } +}); + +table.api.intercept("render-table", (ev) => { + console.log(ev.config); //config 객체 출력 + console.log(ev.config.columns); //columns 배열 출력 + + ev.config.footer = true; + ev.config.columns[0].footer = ["Custom footer"]; + + // 여기서 "false"를 반환하면 테이블 렌더링이 방지됩니다 +}); +~~~ + +다음 예제는 버튼 클릭으로 모든 행을 펼치거나 접는 방법을 보여줍니다. 트리 모드는 [`tableShape`](api/config/tableshape-property.md) 속성을 통해 활성화해야 합니다. + +~~~jsx +const table = new pivot.Pivot("#root", { + tableShape: { + tree: true, + }, + fields, + data: dataset, + config: { + rows: ["type", "studio"], + columns: [], + values: [ + { + field: "score", + method: "max" + }, + { + field: "rank", + method: "min" + }, + { + field: "members", + method: "sum" + }, + { + field: "episodes", + method: "count" + } + ] + } +}); + +const api = table.api; +const tableApi = api.getTable(); + +// 테이블 구성 업데이트 시 모든 테이블 브랜치를 닫힌 상태로 설정 +api.intercept("render-table", (ev) => { + ev.config.data.forEach((r) => (r.open = false)); + + // 여기서 "false"를 반환하면 테이블 렌더링이 방지됩니다 + // return false; +}); + +function openAll() { + tableApi.exec("open-row", { id: 0, nested: true }); +} + +function closeAll() { + tableApi.exec("close-row", { id: 0, nested: true }); +} +~~~ + +`render-table` 이벤트를 사용하여 열 고정 기능을 구성하는 방법도 참조하세요: [열 고정](guides/configuration.md#freezing-columns). + +**관련 글:** [pivot.template 헬퍼](api/helpers/template.md) + +**관련 샘플:** [Pivot 2. 커스텀 고정(고정) 열 (사용자 지정 수)](https://snippet.dhtmlx.com/53erlmgp) diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/api/events/show-config-panel-event.md b/i18n/ko/docusaurus-plugin-content-docs/current/api/events/show-config-panel-event.md new file mode 100644 index 0000000..f0dc2a5 --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/api/events/show-config-panel-event.md @@ -0,0 +1,60 @@ +--- +sidebar_label: show-config-panel +title: show-config-panel 이벤트 +description: DHTMLX JavaScript Pivot 라이브러리 문서에서 show-config-panel 이벤트에 대해 알아볼 수 있습니다. 개발자 가이드와 API 레퍼런스를 살펴보고, 코드 예제와 라이브 데모를 사용해 보세요. DHTMLX Pivot 무료 30일 평가판을 다운로드할 수 있습니다. +--- + +# show-config-panel + +### 설명 {#description} + +@short: 구성 패널의 표시 여부가 변경될 때 발생합니다 + +### 사용법 {#usage} + +~~~jsx +"show-config-panel": ({ + mode: boolean +}) +~~~ + +### 매개변수 {#parameters} + +이 액션의 콜백은 다음 매개변수를 포함하는 객체를 받습니다: + +- `mode` - (필수) 값이 **true**(기본값)로 설정되면 구성 패널이 표시되고, **false**로 설정되면 구성 패널이 숨겨집니다 + +:::info +내부 이벤트를 처리하려면 [Event Bus 메서드](api/overview/internal-eventbus-overview.md)를 사용할 수 있습니다 +::: + +### 예제 {#example} + +~~~jsx {19-22} +const table = new pivot.Pivot("#root", { + fields, + data: dataset, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + } +}); +//구성 패널 숨기기 +table.api.exec("show-config-panel", { + mode: false +}); +~~~ + +**관련 문서**: +- [`showConfigPanel()` 메서드](api/methods/showconfigpanel-method.md) +- [`configPanel` 속성](api/config/configpanel-property.md) diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/api/events/update-config-event.md b/i18n/ko/docusaurus-plugin-content-docs/current/api/events/update-config-event.md new file mode 100644 index 0000000..f432a3c --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/api/events/update-config-event.md @@ -0,0 +1,78 @@ +--- +sidebar_label: update-config +title: update-config 이벤트 +description: DHTMLX JavaScript Pivot 라이브러리의 update-config 이벤트에 대해 알아볼 수 있습니다. 개발자 가이드와 API 레퍼런스를 살펴보고, 코드 예제와 라이브 데모를 체험해 보세요. DHTMLX Pivot의 30일 무료 평가판을 다운로드할 수도 있습니다. +--- + +# update-config + +### 설명 {#description} + +@short: Pivot UI를 통해 행, 열 또는 집계 함수를 수정할 때 발생합니다 + +이 액션은 사용자의 집계 구성을 저장하는 데 유용하며, 다음에 위젯을 사용할 때 해당 구성을 적용하여 사용자가 이전 작업을 이어서 진행할 수 있도록 합니다. + +### 사용법 {#usage} + +~~~jsx +"update-config": ({ + rows: string[], + columns: string[], + values: [], + filters: {} +}) => boolean | void; +~~~ + +### 매개변수 {#parameters} + +이 액션의 콜백은 처리된 [`config`](api/config/config-property.md) 매개변수를 포함하는 객체를 받습니다: + +- `rows` - Pivot 테이블의 행. 필드 ID와 데이터 추출 메서드를 포함하는 객체이며, 객체의 매개변수는 다음과 같습니다: + - `field` - 필드의 ID + - `method` - 데이터 추출 메서드 (시간 기반 데이터 필드에 사용) +- `columns` - Pivot 테이블의 열을 정의합니다. 필드 ID와 데이터 추출 메서드를 포함하는 객체이며, 객체의 매개변수는 다음과 같습니다: + - `field` - 필드의 ID + - `method` - 데이터 추출 메서드를 정의합니다 (시간 기반 데이터 필드에 사용). + 기본적으로 시간 기반 필드(**date** 타입)에 대해 "year", "quarter", "month", "week", "day", "hour", "minute" 값을 가진 메서드를 사용할 수 있습니다 +- `values` - Pivot 테이블 셀의 데이터 집계를 정의합니다. 필드 ID와 데이터 집계 메서드를 포함하는 객체이며, 객체의 매개변수는 다음과 같습니다: + - `field` - 필드의 ID + - `method` - 데이터 추출 메서드를 정의합니다. 메서드와 가능한 옵션에 대해서는 [메서드 적용](guides/working-with-data.md#default-methods)을 참조하세요 +- `filters` - (선택 사항) 테이블에서 데이터가 필터링되는 방식을 정의합니다. 필드 ID와 데이터 집계 메서드를 포함하는 객체입니다. `filter` 객체에 대한 설명은 [`config`](api/config/config-property.md)를 참조하세요 + +:::info +내부 이벤트를 처리하려면 [Event Bus 메서드](api/overview/internal-eventbus-overview.md)를 사용할 수 있습니다 +::: + +### 반환값 {#returns} + +콜백은 boolean 또는 void를 반환할 수 있습니다. +이벤트 핸들러 함수가 *false*를 반환하면, 이벤트를 트리거한 작업이 차단되고 `update-config` 작업이 중단됩니다. + +### 예제 {#example} + +~~~jsx {19-22} +const table = new pivot.Pivot("#root", { + fields, + data: dataset, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + } +}); +//config 객체를 콘솔에 출력합니다 +table.api.on("update-config", (config) => { + console.log("Config has changed", config); +}); +~~~ + +**관련 문서**: [api.intercept()](api/internal/intercept-method.md) diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/api/events/update-field-event.md b/i18n/ko/docusaurus-plugin-content-docs/current/api/events/update-field-event.md new file mode 100644 index 0000000..dec534f --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/api/events/update-field-event.md @@ -0,0 +1,67 @@ +--- +sidebar_label: update-field +title: update-field 이벤트 +description: DHTMLX JavaScript Pivot 라이브러리의 update-field 이벤트에 대한 문서를 확인할 수 있습니다. 개발자 가이드 및 API 레퍼런스를 살펴보고, 코드 예제와 라이브 데모를 직접 체험해 보세요. DHTMLX Pivot 무료 30일 평가판도 다운로드할 수 있습니다. +--- + +# update-field + +### 설명 {#description} + +@short: 필드가 업데이트될 때 발생합니다 + +### 사용법 {#usage} + +~~~jsx +"update-field": ({ + id: string | number, + method: string, + area: string +}) => boolean; +~~~ + +### 매개변수 {#parameters} + +액션의 callback은 다음 매개변수를 포함하는 객체를 받습니다: + +- `id` - (필수) 업데이트되는 필드의 id +- `method` - (필수) 다음 중 하나의 method를 사용할 수 있습니다: + - **values** 영역의 경우, 데이터 연산 유형 중 하나를 나타내는 문자열입니다: [기본 메서드](guides/working-with-data.md#default-methods) + - **rows** 및 **columns** 영역의 경우, 데이터 predicate 값으로 "year", "quarter", "month", "week", "day", "hour", "minute" 중 하나를 사용할 수 있습니다. 기본적으로 원시 값이 설정됩니다. + 커스텀 predicate 또는 method가 설정된 경우, [predicate](api/config/predicates-property.md) 또는 [methods](api/config/methods-property.md) 속성에 id를 지정해야 합니다. +- `area` - (필수) 필드가 업데이트되는 영역의 이름으로, "rows", "columns" 또는 "values" 영역을 지정합니다 + +:::info +내부 이벤트를 처리하려면 [Event Bus 메서드](api/overview/internal-eventbus-overview.md)를 사용할 수 있습니다 +::: + +### 예제 {#example} + +~~~jsx {19-22} +const table = new pivot.Pivot("#root", { + fields, + data: dataset, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + } +}); +//업데이트된 필드의 id를 콘솔에 출력합니다 +table.api.on("update-field", (ev) => { + console.log("The id of the field that was updated:", ev.id); +}); +~~~ + +**관련 문서**: +- [api.on()](api/internal/on-method.md) +- [methods](api/config/methods-property.md) diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/api/helpers/template.md b/i18n/ko/docusaurus-plugin-content-docs/current/api/helpers/template.md new file mode 100644 index 0000000..78807de --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/api/helpers/template.md @@ -0,0 +1,89 @@ +--- +sidebar_label: template +title: template +description: DHTMLX JavaScript Pivot 라이브러리 문서에서 Pivot template 헬퍼에 대해 알아볼 수 있습니다. 개발자 가이드와 API 레퍼런스를 탐색하고, 코드 예제와 라이브 데모를 체험해 보세요. DHTMLX Pivot 무료 30일 평가판도 다운로드할 수 있습니다. +--- + +### 설명 {#description} + +`template` 함수는 테이블 헤더 셀과 본문 셀에 템플릿을 적용할 수 있게 합니다. + +### 사용법 {#usage} + +본문 셀의 경우: + +~~~jsx +pivot.template({value, method, row, column}) => string; +~~~ + +헤더 셀의 경우: + +~~~jsx +pivot.template({value, field, method, cell, column}) => string; +~~~ + +### 파라미터 {#parameters} + +본문 셀의 경우 함수는 다음 파라미터를 받습니다: + +- `value` (any) - (필수) 셀의 원시 값 +- `method` (string) - (필수) 열에 사용되는 메서드 또는 predicate +- `row` - (필수) 행 데이터를 담은 객체: + - `id` (number) - (필수) 행 id + - `values` (array) - (필수) 행 데이터를 담은 배열 + - `open` (boolean)- (선택) 브랜치 상태 + - `$level` (boolean)- (선택) 브랜치 인덱스 +- `column` - (필수) 열 데이터를 담은 객체: + - `id` (number) - (필수) 열의 id + - `cell` (any) - (선택) 셀 콘텐츠를 가진 템플릿 ([template 헬퍼를 통한 템플릿 추가](guides/configuration.md#adding-a-template-via-the-template-helper) 참조) + - `template` - (선택) [`tableShape`](api/config/tableshape-property.md) 프로퍼티를 통해 정의된 템플릿 + - `fields` (array) - (선택) 트리 모드에서 계층형 열의 필드를 정의합니다. 서로 다른 레벨에서 이 열에 표시되는 필드를 반영합니다 + - `field` - (선택) 필드 id인 문자열 + - `method` (string) - (선택) 이 열의 필드에 대해 정의된 경우의 메서드 + - `methods` (array) - (선택) 트리 모드에서 계층형 열의 필드에 적용되는 메서드를 정의합니다 + - `format` (string or object) - (필수) 날짜 형식 또는 숫자 형식 ([필드에 형식 적용](guides/working-with-data.md#applying-formats-to-fields) 참조) + - `isNumeric` (boolean) - (선택) 열이 숫자 값을 포함하는지 여부를 정의합니다 + - `isTotal` (boolean) - (선택) 합계 열인지 여부를 정의합니다 + - `area` (string) - (선택) 열이 렌더링되는 영역: "rows", "columns", "values" + - `header`- (선택) 각 셀에 대해 다음 프로퍼티를 가진 헤더 셀 배열: + - `text` (string) - (선택) 셀 텍스트, 형식화된 값, 또는 predicate 템플릿으로 처리된 값 + - `rowspan` (number) - (선택) 헤더가 걸쳐야 하는 행 수 + - `colspan` (number) - (선택) 헤더가 걸쳐야 하는 열 수 + - `value` (any) - (필수) 셀이 "columns" 영역에 속하는 경우의 원시 값 + - `field` (string) - (필수) 셀이 "columns" 영역에 속하는 경우 표시되는 값의 필드 + - `method` (string) - (필수) 셀이 "columns" 영역에 속하고 predicate가 정의된 경우의 필드 predicate + - `format` (string or object) - 날짜 형식 또는 숫자 형식 ([필드에 형식 적용](guides/working-with-data.md#applying-formats-to-fields) 참조) + +헤더 셀의 경우 함수 파라미터는 다음과 같습니다: + +- `value` (any) - (필수) 셀의 원시 값 +- `method` (string) - (선택) 열에 사용되는 predicate +- `field` (string) - (선택) 셀에 표시되는 값의 필드 +- `cell` - (필수) 셀 데이터를 담은 객체: + - `text` (string) - (선택) 셀 텍스트, 형식화된 값, 또는 predicate 템플릿으로 처리된 값 + - `rowspan` (number) - (선택) 헤더가 걸쳐야 하는 행 수 + - `colspan` (number) - (선택) 헤더가 걸쳐야 하는 열 수 + - `value` (any) - (필수) 셀이 "columns" 영역에 속하는 경우의 원시 값 + - `field` (string) - (필수) 셀이 "columns" 영역에 속하는 경우 표시되는 값의 필드 + - `method` (string) - (필수) 셀이 "columns" 영역에 속하고 predicate가 정의된 경우의 필드 predicate + - `format` (string or object) - (필수) 날짜 형식 또는 숫자 형식 ([필드에 형식 적용](guides/working-with-data.md#applying-formats-to-fields) 참조) +- `column` - (필수) 열 데이터를 담은 객체 (본문 셀과 동일) + +### 예제 {#example} + +아래 스니펫은 `pivot.template` 헬퍼를 통해 템플릿을 정의하는 방법을 보여줍니다. 헬퍼는 테이블이 렌더링되기 직전에 적용되며, 이는 [api.intercept()](api/internal/intercept-method.md) 메서드를 사용하여 [render-table](api/events/render-table-event.md) 이벤트를 인터셉트함으로써 이루어집니다. + +스니펫은 다음 항목에 아이콘을 추가하는 방법을 보여줍니다: + +- 필드(id, user_score)를 기반으로 한 본문 셀 (템플릿이 깃발 및 별 아이콘을 추가) +- 필드 이름을 기반으로 한 헤더 레이블 (예: 필드가 "id"인 경우 헤더 값 옆에 지구본 아이콘 추가) +- 값을 기반으로 한 열 헤더 (색상이 있는 화살표 표시기 추가) + + + + +**관련 문서:** + +- [`render-table`](api/events/render-table-event.md) +- [셀에 템플릿 적용](guides/configuration.md#applying-templates-to-cells) +- [헤더에 템플릿 적용](guides/configuration.md#applying-templates-to-headers) diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/api/internal/detach-method.md b/i18n/ko/docusaurus-plugin-content-docs/current/api/internal/detach-method.md new file mode 100644 index 0000000..8da55e7 --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/api/internal/detach-method.md @@ -0,0 +1,69 @@ +--- +sidebar_label: api.detach() +title: detach 메서드 +description: DHTMLX JavaScript Pivot 라이브러리 문서에서 detach 메서드에 대해 알아볼 수 있습니다. 개발자 가이드와 API 레퍼런스를 살펴보고, 코드 예제와 라이브 데모를 체험해 보세요. DHTMLX Pivot의 무료 30일 평가판을 다운로드할 수 있습니다. +--- + +# api.detach() + +## 설명 {#description} + +@short: 액션 핸들러를 제거하거나 분리할 수 있습니다 + +## 사용법 {#usage} + +~~~jsx +api.detach(tag: number | string ): void; +~~~ + +## 매개변수 {#parameters} + +- `tag` - 액션 태그의 이름 + +### 예제 {#example} + +아래 예제에서는 [`api.on()`](api/internal/on-method.md) 핸들러에 **tag** 속성을 포함한 객체를 추가한 후, `api.detach()` 메서드를 사용하여 [`open-filter`](api/events/open-filter-event.md) 액션의 로깅을 중지합니다. + +~~~jsx {31-34} +// Pivot 생성 +const table = new pivot.Pivot("#root", { + fields, + data: dataset, + config: { + rows: ["studio", "genre"], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + } +}); + +// 핸들러 추가 +if (table.api) { + table.api.on( + "open-filter", + ({ area }) => { + console.log("Opened: " + area); + }, + { tag: "track" } + ); +} + +// 핸들러 분리 +function stop() { + table.api.detach("track"); +} + +const button = document.createElement("button"); + +button.addEventListener("click", stop); +button.textContent = "Stop logging"; + +document.body.appendChild(button); +~~~ diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/api/internal/exec-method.md b/i18n/ko/docusaurus-plugin-content-docs/current/api/internal/exec-method.md new file mode 100644 index 0000000..3dc1458 --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/api/internal/exec-method.md @@ -0,0 +1,83 @@ +--- +sidebar_label: api.exec() +title: exec 메서드 +description: DHTMLX JavaScript Pivot 라이브러리 문서에서 exec 메서드에 대해 알아볼 수 있습니다. 개발자 가이드와 API 레퍼런스를 살펴보고, 코드 예제와 라이브 데모를 체험해 보세요. DHTMLX Pivot의 무료 30일 평가판을 다운로드할 수 있습니다. +--- + +# api.exec() + +### 설명 {#description} + +@short: 내부 이벤트를 트리거할 수 있습니다 + +## 사용법 {#usage} + +~~~jsx +api.exec( + event: string, + config: object +): Promise; +~~~ + +## 매개변수 {#parameters} + +- `event` - (필수) 발생시킬 이벤트 +- `config` - (필수) 매개변수가 포함된 config 객체 (발생시킬 이벤트 참조) + +## 액션 {#actions} + +:::info +Pivot 이벤트의 전체 목록은 [**여기**](api/overview/events-overview.md)에서 확인할 수 있습니다 +::: + +## 예제 {#example} + +아래 예제에서는 `api.exec()` 메서드를 통해 [`delete-field`](api/events/delete-field-event.md) 이벤트가 트리거됩니다. **values** 영역에서 마지막 필드가 제거됩니다. [`api.getState()`](api/internal/getstate-method.md) 메서드는 Pivot [`config`](api/config/config-property.md)의 현재 상태를 가져오는 데 사용됩니다. 버튼 클릭 시 이벤트가 트리거됩니다. + +~~~jsx {32-35} +// Pivot 생성 +const table = new pivot.Pivot("#root", { + fields, + data: dataset, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + } +}); + +//API 메서드 호출: config의 values에서 특정 값 제거 +function removeLastField() { + if (table.api) { + const state = table.api.getState(); + const config = state.config; + + const count = config.values.length; + + if (count) { + const lastValue = config.values[count - 1]; + + table.api.exec("delete-field", { + area: "values", + id: lastValue.id, // config.values에 추가된 항목의 자동 생성 ID + }); + } + } +} + +const button = document.createElement("button"); + +button.addEventListener("click", removeLastField); +button.textContent = "Remove"; + +document.body.appendChild(button); +~~~ diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/api/internal/getreactivestate-method.md b/i18n/ko/docusaurus-plugin-content-docs/current/api/internal/getreactivestate-method.md new file mode 100644 index 0000000..3e8f6c1 --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/api/internal/getreactivestate-method.md @@ -0,0 +1,71 @@ +--- +sidebar_label: api.getReactiveState() +title: getReactiveState 메서드 +description: DHTMLX JavaScript Pivot 라이브러리 문서에서 getReactiveState 메서드에 대해 학습할 수 있습니다. 개발자 가이드와 API 레퍼런스를 살펴보고, 코드 예제와 라이브 데모를 사용해 보세요. DHTMLX Pivot의 무료 30일 평가판을 다운로드할 수 있습니다. +--- + +# api.getReactiveState() + +### 설명 {#description} + +@short: Pivot의 반응형 속성을 담은 객체를 가져옵니다 + +### 사용법 {#usage} + +~~~jsx +api.getReactiveState(): object; +~~~ + +### 반환값 {#returns} + +이 메서드는 다음 매개변수를 포함하는 객체를 반환합니다: + +~~~jsx +{ + config: {}, // 현재 설정 (행, 열, 값, 필터) + activeFilter: {}, // 활성 필터 객체 (필터가 열려 있는 경우) + columnShape: {}, // Pivot 열 구성 + data: [], // 소스 데이터 + fields: [], // 필드 배열 + filters: {}, // 필터링 규칙 + headerShape: {}, // 테이블 헤더 설정 + predicates: {}, // 필드별 사용 가능한 조건자 + limits: {}, // 데이터셋의 행과 열 최대 개수 제한 + methods: {}, // 데이터 집계 메서드 + tableShape: {}, // 테이블 설정 (크기, 합계 행, 템플릿) + tableConfig: {}, // 테이블 구성 설정 (열, 데이터, 크기, 트리 모드, 푸터) + configPanel: boolean, // 구성 패널의 표시 상태 + readonly: boolean, // 읽기 전용 모드 활성화 여부 +} +~~~ + +### 예제 {#example} + +~~~jsx {21-26} +// Pivot 생성 +const table = new pivot.Pivot("#root", { + fields, + data: dataset, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + } +}); + +// 반응형 config 스토어를 구독하고 변경될 때마다 로그를 출력합니다 +const state = table.api.getReactiveState(); + +state.config.subscribe((config) => { + console.log("Pivot config changed. Its current state:", config); +}); +~~~ diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/api/internal/getstate-method.md b/i18n/ko/docusaurus-plugin-content-docs/current/api/internal/getstate-method.md new file mode 100644 index 0000000..1317e2a --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/api/internal/getstate-method.md @@ -0,0 +1,67 @@ +--- +sidebar_label: api.getState() +title: getState 메서드 +description: DHTMLX JavaScript Pivot 라이브러리 문서에서 getState 메서드에 대해 알아볼 수 있습니다. 개발자 가이드와 API 레퍼런스를 살펴보고, 코드 예제와 라이브 데모를 체험해 보세요. DHTMLX Pivot 30일 무료 평가판도 다운로드할 수 있습니다. +--- + +# api.getState() + +### 설명 {#description} + +@short: Pivot의 StateStore 프로퍼티가 담긴 객체를 반환합니다 + +### 사용법 {#usage} + +~~~jsx +api.getState(): object; +~~~ + +### 반환값 {#returns} + +이 메서드는 다음 파라미터를 포함하는 객체를 반환합니다: + +~~~jsx +{ + config: {}, // 현재 config (rows, columns, values, filters) + activeFilter: {}, // 활성 필터 객체 (필터가 열려 있는 경우) + columnShape: {}, // pivot 열 구성 + data: [], // 소스 데이터 + fields: [], // fields 배열 + filters: {}, // 필터링 규칙 + headerShape: {}, // 테이블 헤더 설정 + predicates: {}, // 필드별 사용 가능한 predicates + limits: {}, // 데이터셋의 행과 열 최대 개수 제한 + methods: {}, // 데이터 집계 메서드 + tableShape: {}, // 테이블 설정 (크기, 합계 행, 템플릿) + tableConfig: {}, // 테이블 구성 설정 (columns, data, 크기, 트리 모드, footer) + configPanel: boolean, // 구성 패널 표시 여부 상태 + readonly: boolean, // 읽기 전용 모드 활성화 여부 +} +~~~ + +### 예제 {#example} + +~~~jsx {21-22} +// Pivot 생성 +const table = new pivot.Pivot("#root", { + fields, + data: dataset, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + } +}); + +const { config } = table.api.getState(); +console.log(config); //config 상태를 콘솔에 출력 +~~~ diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/api/internal/getstores-method.md b/i18n/ko/docusaurus-plugin-content-docs/current/api/internal/getstores-method.md new file mode 100644 index 0000000..8eb55f5 --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/api/internal/getstores-method.md @@ -0,0 +1,54 @@ +--- +sidebar_label: api.getStores() +title: getStores 메서드 +description: DHTMLX JavaScript Pivot 라이브러리 문서에서 getStores 메서드에 대해 알아볼 수 있습니다. 개발자 가이드와 API 레퍼런스를 살펴보고, 코드 예제와 라이브 데모를 체험해 보세요. DHTMLX Pivot의 무료 30일 평가판을 다운로드할 수 있습니다. +--- + +# api.getStores() + +### 설명 {#description} + +@short: Pivot의 DataStore 속성을 담은 객체를 반환합니다 + +### 사용법 {#usage} + +~~~jsx +api.getStores(): object; +~~~ + +### 반환값 {#returns} + +이 메서드는 **DataStore** 매개변수를 담은 객체를 반환합니다: + +~~~jsx +{ + data: DataStore // ( 매개변수 객체 ) +} +~~~ + +### 예제 {#example} + +~~~jsx {21-22} +// Pivot 생성 +const table = new pivot.Pivot("#root", { + fields, + data: dataset, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + } +}); + +const stores = table.api.getStores(); +console.log("DataStore:", stores); +~~~ diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/api/internal/intercept-method.md b/i18n/ko/docusaurus-plugin-content-docs/current/api/internal/intercept-method.md new file mode 100644 index 0000000..4b49dad --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/api/internal/intercept-method.md @@ -0,0 +1,68 @@ +--- +sidebar_label: api.intercept() +title: intercept 메서드 +description: DHTMLX JavaScript Pivot 라이브러리의 intercept 메서드에 대해 알아볼 수 있습니다. 개발자 가이드와 API 레퍼런스를 살펴보고, 코드 예제와 라이브 데모를 체험해 보세요. DHTMLX Pivot 30일 무료 평가판을 다운로드하실 수 있습니다. +--- + +# api.intercept() + +### 설명 {#description} + +@short: 내부 이벤트를 가로채고 차단할 수 있습니다 + +### 사용법 {#usage} + +~~~jsx +api.intercept( + event: string, + callback: function, + config?: { tag?: number | string | symbol } +): void; +~~~ + +### 매개변수 {#parameters} + +- `event` - (필수) 발생시킬 이벤트 +- `callback` - (필수) 실행할 callback (callback 인수는 발생하는 이벤트에 따라 달라집니다) +- `config` - (선택) 다음 매개변수를 저장하는 객체: + - `tag` - (선택) 액션 태그. [`detach`](api/internal/detach-method.md) 메서드를 통해 액션 핸들러를 제거할 때 태그 이름을 사용할 수 있습니다 + +### 이벤트 {#events} + +:::info +Pivot 내부 이벤트의 전체 목록은 [**여기**](api/overview/main-overview.md#pivot-events)에서 확인할 수 있습니다. +액션을 수정하지 않고 수신만 하려면 [`api.on()`](api/internal/on-method.md) 메서드를 사용하세요. 액션을 변경하려면 `api.intercept()` 메서드를 적용하세요. +::: + +### 예제 {#example} + +아래 예제는 초기화 시 모든 접을 수 있는 행을 닫는 방법을 보여줍니다. + +~~~jsx {21-24} +// create Pivot +const table = new pivot.Pivot("#root", { + fields, + data: dataset, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + } +}); + +//make all rows close at the initialization +table.api.intercept("render-table", (ev) => { + ev.config.data.forEach((row) => (row.open = false)); +}, {tag: "render-table-tag"}); +~~~ + +**관련 아티클**: [`render-table`](api/events/render-table-event.md) diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/api/internal/on-method.md b/i18n/ko/docusaurus-plugin-content-docs/current/api/internal/on-method.md new file mode 100644 index 0000000..81c5208 --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/api/internal/on-method.md @@ -0,0 +1,72 @@ +--- +sidebar_label: api.on() +title: on 메서드 +description: DHTMLX JavaScript Pivot 라이브러리의 on 메서드에 대한 문서에서 자세한 내용을 확인할 수 있습니다. 개발자 가이드와 API 레퍼런스를 살펴보고, 코드 예제와 라이브 데모를 체험해 보세요. DHTMLX Pivot의 무료 30일 평가판도 다운로드할 수 있습니다. +--- + +# api.on() + +### 설명 {#description} + +@short: 내부 이벤트에 핸들러를 연결할 수 있습니다 + +### 사용법 {#usage} + +~~~jsx +api.on( + event: string, + handler: function, + config?: { intercept?: boolean, tag?: number | string | symbol } +): void; +~~~ + +### 파라미터 {#parameters} + +- `event` - (필수) 발생시킬 이벤트 +- `handler` - (필수) 연결할 핸들러 (핸들러 인수는 발생하는 이벤트에 따라 달라집니다) +- `config` - (선택) 다음 파라미터를 저장하는 객체: + - `intercept` - (선택) 이벤트 리스너 생성 시 `intercept: true`를 설정하면, 해당 이벤트 리스너가 다른 모든 리스너보다 먼저 실행됩니다 + - `tag` - (선택) 액션 태그. 태그 이름을 사용하여 [`detach`](api/internal/detach-method.md) 메서드로 액션 핸들러를 제거할 수 있습니다 + +### Events {#events} + +:::info +Pivot 내부 이벤트의 전체 목록은 [**여기**](api/overview/main-overview.md#pivot-events)에서 확인할 수 있습니다. +액션을 수정하지 않고 리스닝만 하려면 `api.on()` 메서드를 사용하세요. 액션을 변경하려면 [`api.intercept()`](api/internal/intercept-method.md) 메서드를 적용하세요. +::: + +### 예제 {#example} + +아래 예제는 필터가 활성화된 필드의 레이블을 출력하는 방법을 보여줍니다: + +~~~jsx {21-29} +// Pivot 생성 +const table = new pivot.Pivot("#root", { + fields, + data: dataset, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + } +}); + +table.api.on("open-filter", (ev) => { + if (ev.id) { + const { config } = table.api.getState(); + const fieldObj = config[ev.area].find((f) => f.id === ev.id); + if (fieldObj) { + console.log("The field for which filter was activated:", fieldObj.label); + } + } +}, {tag: "open-filter-tag"}); +~~~ diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/api/internal/setnext-method.md b/i18n/ko/docusaurus-plugin-content-docs/current/api/internal/setnext-method.md new file mode 100644 index 0000000..7cafbec --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/api/internal/setnext-method.md @@ -0,0 +1,45 @@ +--- +sidebar_label: api.setNext() +title: setNext 메서드 +description: DHTMLX JavaScript Pivot 라이브러리의 setNext 메서드에 대해 알아볼 수 있습니다. 개발자 가이드와 API 레퍼런스를 참고하고, 코드 예제와 라이브 데모를 체험해 보세요. DHTMLX Pivot 무료 30일 평가판도 다운로드할 수 있습니다. +--- + +# api.setNext() + +### 설명 {#description} + +@short: Event Bus 순서에 특정 액션을 추가할 수 있습니다 + +### 사용법 {#usage} + +~~~jsx +api.setNext(next: any): void; +~~~ + +### 매개변수 {#parameters} + +- `next` - (필수) **Event Bus** 순서에 포함할 액션 + +### 예제 {#example} + +아래 예제는 `api.setNext()` 메서드를 사용하여 사용자 정의 클래스를 Event Bus 순서에 통합하는 방법을 보여줍니다: + +~~~jsx {13-14} +const table = new pivot.Pivot("#root", { fields: [], data: [] }); +const server = "https://some-backend-url"; + +// ServerDataService라는 사용자 정의 서버 서비스 클래스가 있다고 가정합니다 +const someServerService = new ServerDataService(server); + +Promise.all([ + fetch(server + "/data").then((res) => res.json()), + fetch(server + "/fields").then((res) => res.json()) +]).then(([data, fields]) => { + table.setConfig({ data, fields }); + + // serverDataService를 위젯의 Event Bus 순서에 통합합니다 + table.api.setNext(someServerService); +}); +~~~ + +**관련 문서**: [`setConfig`](api/methods/setconfig-method.md) diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/api/methods/gettable-method.md b/i18n/ko/docusaurus-plugin-content-docs/current/api/methods/gettable-method.md new file mode 100644 index 0000000..bbec0f8 --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/api/methods/gettable-method.md @@ -0,0 +1,75 @@ +--- +sidebar_label: getTable() +title: getTable 메서드 +description: DHTMLX JavaScript Pivot 라이브러리 문서에서 getTable 메서드에 대해 알아볼 수 있습니다. 개발자 가이드와 API 레퍼런스를 살펴보고, 코드 예제와 라이브 데모를 체험해 보세요. DHTMLX Pivot 30일 무료 평가판도 다운로드할 수 있습니다. +--- + +# getTable() + +### 설명 {#description} + +@short: Pivot 테이블의 내부 Table 위젯 인스턴스에 접근합니다 + +이 메서드는 Pivot 내부의 Table 위젯 인스턴스에 접근해야 할 때 사용됩니다. Table 기능에 직접 접근하여 데이터 직렬화 및 다양한 형식으로의 내보내기 등의 작업을 수행할 수 있습니다. Table API에는 자체 `api.exec()` 메서드가 있으며, [`open-row`](api/table/open-row.md), [`close-row`](api/table/close-row.md), [`export`](api/table/export.md), [`filter-rows`](api/table/filter-rows.md) 이벤트를 호출할 수 있습니다. + +### 사용법 {#usage} + +~~~jsx +getTable(wait:boolean): Table | Promise; +~~~ + +### 매개변수 {#parameters} + +`wait` - Table API가 Pivot에서 사용 가능해질 때까지 기다릴지 여부를 정의합니다(Pivot 초기화 중에 Table API를 사용할 때 필요합니다). 값이 **true**로 설정되면, 메서드는 Table API와 함께 promise를 반환합니다. + +### 예제 {#example} + +아래 예제에서는 Table 위젯 API에 접근하고, [`api.exec()`](api/internal/exec-method.md) 메서드를 사용하여 버튼 클릭으로 Table `export` 이벤트를 트리거합니다. + +~~~jsx +// Pivot 생성 +const table = new pivot.Pivot("#root", { + fields, + data, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + } +}); + +// table 인스턴스에 접근 +let table_instance = table.getTable(); + +function toCSV() { + table_instance.exec("export", { + options: { + format: "csv", + cols: ";" + } + }); +} + +const exportButton = document.createElement("button"); + +exportButton.addEventListener("click", toCSV); +exportButton.textContent = "Export"; + +document.body.appendChild(exportButton); +~~~ + +**관련 문서:**: + +- [`close-row`](api/table/close-row.md) +- [`export`](api/table/export.md) +- [`filter-rows`](api/table/filter-rows.md) +- [`open-row`](api/table/open-row.md) diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/api/methods/setconfig-method.md b/i18n/ko/docusaurus-plugin-content-docs/current/api/methods/setconfig-method.md new file mode 100644 index 0000000..7053800 --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/api/methods/setconfig-method.md @@ -0,0 +1,73 @@ +--- +sidebar_label: setConfig() +title: setConfig() +description: DHTMLX JavaScript Pivot 라이브러리 문서에서 setConfig() 메서드에 대해 알아볼 수 있습니다. 개발자 가이드와 API 레퍼런스를 살펴보고, 코드 예제와 라이브 데모를 체험하며, DHTMLX Pivot 30일 무료 평가판을 다운로드하세요. +--- + +# setConfig() + +### 설명 {#description} + +@short: Pivot 위젯의 현재 구성을 업데이트합니다 + +이 메서드는 Pivot 위젯의 현재 구성을 업데이트하는 데 사용됩니다. 위젯의 기본 데이터 세트를 업데이트해야 할 때 유용합니다. 이 메서드는 `setConfig` 호출에서 명시적으로 제공되지 않은 이전에 설정된 모든 옵션을 보존합니다. + +### 사용법 {#usage} + +~~~jsx +setConfig(config: { [key:any]: any }): void; +~~~ + +### 매개변수 {#parameters} + +- `config` - (필수) Pivot 구성 객체입니다. 전체 속성 목록은 [여기](api/overview/properties-overview.md)를 참조하세요 + +:::important +이 메서드는 전달한 매개변수만 변경합니다. 현재 컴포넌트를 삭제하고 새 컴포넌트를 초기화합니다. +::: + +### 예제 {#example} + +~~~jsx {21-41} +// Pivot 생성 +const table = new pivot.Pivot("#root", { + fields, + data: dataset, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + } +}); + +// 구성 매개변수 업데이트 +table.setConfig({ + config: { + rows: ["studio", "genre", "duration"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + }, + { + field: "type", + method: "count" + } + ] + } +}); +~~~ diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/api/methods/setlocale-method.md b/i18n/ko/docusaurus-plugin-content-docs/current/api/methods/setlocale-method.md new file mode 100644 index 0000000..32ace82 --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/api/methods/setlocale-method.md @@ -0,0 +1,56 @@ +--- +sidebar_label: setLocale() +title: setLocale() +description: DHTMLX JavaScript Pivot 라이브러리의 공식 문서에서 setLocale() 메서드에 대해 알아볼 수 있습니다. 개발자 가이드와 API 레퍼런스를 살펴보고, 코드 예제와 라이브 데모를 직접 확인하거나 DHTMLX Pivot 무료 30일 평가판을 다운로드하세요. +--- + +# setLocale() + +### 설명 {#description} + +@short: Pivot에 새 로케일을 적용합니다 + +### 사용법 {#usage} + +~~~jsx +setLocale(null | locale?: object): void; +~~~ + +### 매개변수 {#parameters} + +- `null` - (선택 사항) 기본 로케일(영어)로 초기화합니다 +- `locale` - (선택 사항) 적용할 새 로케일의 데이터 객체 + +### 예제 {#example} + +~~~jsx +// Pivot 생성 +const table = new pivot.Pivot("#root", { + fields, + data: dataset, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + } +}); + +// Pivot에 "de" 로케일 적용 +table.setLocale(pivot.locales.de); + +// Pivot에 기본 로케일 적용 +table.setLocale(); // 또는 setLocale(null); +~~~ + +**관련 문서**: +- [로컬라이제이션](guides/localization.md) +- [`locale`](api/config/locale-property.md) diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/api/methods/showconfigpanel-method.md b/i18n/ko/docusaurus-plugin-content-docs/current/api/methods/showconfigpanel-method.md new file mode 100644 index 0000000..d488c1b --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/api/methods/showconfigpanel-method.md @@ -0,0 +1,55 @@ +--- +sidebar_label: showConfigPanel() +title: showConfigPanel() +description: DHTMLX JavaScript Pivot 라이브러리 문서에서 showConfigPanel() 메서드에 대해 알아볼 수 있습니다. 개발자 가이드와 API 레퍼런스를 살펴보고, 코드 예제와 라이브 데모를 직접 확인하며, DHTMLX Pivot 30일 무료 평가판을 다운로드하세요. +--- + +# showConfigPanel() + +### 설명 {#description} + +@short: 구성 패널을 표시하거나 숨깁니다. + +이 메서드는 사용자 상호작용 없이 구성 패널의 표시 여부를 제어해야 할 때 유용합니다. 예를 들어, 애플리케이션의 다른 상호작용이나 상태에 따라 패널을 숨기거나 표시할 수 있습니다. + +### 사용법 {#usage} + +~~~jsx +showConfigPanel({mode: boolean}): void; +~~~ + +### 매개변수 {#parameters} + +- `mode` (boolean) - (필수) 값이 **true**(기본값)로 설정되면 구성 패널이 표시되고, **false**로 설정되면 구성 패널이 숨겨집니다. + +### 예제 {#example} + +~~~jsx {21-23} +// Pivot 생성 +const table = new pivot.Pivot("#root", { + fields, + data: dataset, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + } +}); + +table.showConfigPanel ({ + mode: false +}) +~~~ + +**관련 문서**: +- [`show-config-panel` 이벤트](api/events/show-config-panel-event.md) +- [`configPanel` 속성](api/config/configpanel-property.md) diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/api/overview/events-overview.md b/i18n/ko/docusaurus-plugin-content-docs/current/api/overview/events-overview.md new file mode 100644 index 0000000..37c1fbf --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/api/overview/events-overview.md @@ -0,0 +1,19 @@ +--- +sidebar_label: Events 개요 +title: Events 개요 +description: DHTMLX JavaScript Pivot 라이브러리 문서에서 JavaScript Pivot의 Events 개요를 확인할 수 있습니다. 개발자 가이드와 API 레퍼런스를 살펴보고, 코드 예제와 라이브 데모를 체험해 보세요. DHTMLX Pivot 30일 무료 평가판을 다운로드할 수도 있습니다. +--- + +# Events 개요 + +| 이름 | 설명 | +| ------------------------------------------------- | ----------------------------------------------- | +| [](api/events/add-field-event.md) | @getshort(../events/add-field-event.md) | +| [](api/events/apply-filter-event.md) | @getshort(../events/apply-filter-event.md) | +| [](api/events/delete-field-event.md) | @getshort(../events/delete-field-event.md) | +| [](api/events/move-field-event.md) | @getshort(../events/move-field-event.md) | +| [](api/events/open-filter-event.md) | @getshort(../events/open-filter-event.md) | +| [](api/events/render-table-event.md) | @getshort(../events/render-table-event.md) | +| [](api/events/show-config-panel-event.md) | @getshort(../events/show-config-panel-event.md) | +| [](api/events/update-config-event.md) | @getshort(../events/update-config-event.md) | +| [](api/events/update-field-event.md) | @getshort(../events/update-field-event.md) | diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/api/overview/internal-eventbus-overview.md b/i18n/ko/docusaurus-plugin-content-docs/current/api/overview/internal-eventbus-overview.md new file mode 100644 index 0000000..5f3be78 --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/api/overview/internal-eventbus-overview.md @@ -0,0 +1,15 @@ +--- +sidebar_label: Event Bus 메서드 +title: Event Bus 메서드 +description: DHTMLX JavaScript Pivot 라이브러리 문서에서 JavaScript Pivot의 내부 Event Bus 메서드 개요를 확인할 수 있습니다. 개발자 가이드와 API 레퍼런스를 살펴보고, 코드 예제와 라이브 데모를 체험하며, DHTMLX Pivot 30일 무료 평가판을 다운로드하세요. +--- + +# Event Bus 메서드 개요 {#event-bus-methods-overview} + +| 이름 | 설명 | +| ------------------------------------------------- | ------------------------------------------------- | +| [](api/internal/detach-method.md) | @getshort(../internal/detach-method.md) | +| [](api/internal/exec-method.md) | @getshort(../internal/exec-method.md) | +| [](api/internal/intercept-method.md) | @getshort(../internal/intercept-method.md) | +| [](api/internal/on-method.md) | @getshort(../internal/on-method.md) | +| [](api/internal/setnext-method.md) | @getshort(../internal/setnext-method.md) | diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/api/overview/internal-state-overview.md b/i18n/ko/docusaurus-plugin-content-docs/current/api/overview/internal-state-overview.md new file mode 100644 index 0000000..60f90cd --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/api/overview/internal-state-overview.md @@ -0,0 +1,13 @@ +--- +sidebar_label: State 메서드 +title: State 메서드 +description: DHTMLX JavaScript Pivot 라이브러리 문서에서 JavaScript Pivot의 내부 State 메서드 개요를 확인할 수 있습니다. 개발자 가이드와 API 레퍼런스를 살펴보고, 코드 예제와 라이브 데모를 체험하며, DHTMLX Pivot 30일 무료 평가판을 다운로드하세요. +--- + +# State 메서드 개요 {#state-methods-overview} + +| 이름 | 설명 | +| ---------------------------------------------- | -------------------------------------------------- | +| [](api/internal/getreactivestate-method.md) | @getshort(../internal/getreactivestate-method.md) | +| [](api/internal/getstate-method.md) | @getshort(../internal/getstate-method.md) | +| [](api/internal/getstores-method.md) | @getshort(../internal/getstores-method.md) | diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/api/overview/main-overview.md b/i18n/ko/docusaurus-plugin-content-docs/current/api/overview/main-overview.md new file mode 100644 index 0000000..8619b68 --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/api/overview/main-overview.md @@ -0,0 +1,80 @@ +--- +sidebar_label: API 개요 +title: API 개요 +description: DHTMLX JavaScript Pivot 라이브러리 문서에서 JavaScript Pivot의 API 개요를 확인할 수 있습니다. 개발자 가이드와 API 참조를 살펴보고, 코드 예제와 라이브 데모를 직접 실행해 보세요. DHTMLX Pivot의 30일 무료 평가판도 다운로드할 수 있습니다. +--- + +# API 개요 {#api-overview} + +## Pivot 생성자 {#pivot-constructor} + +~~~jsx +new pivot.Pivot("#root", { + // 구성 파라미터 +}); +~~~ + +**파라미터**: + +- HTML 컨테이너 (HTML 컨테이너의 ID) +- 구성 파라미터 객체 ([여기서 확인](#pivot-properties)) + +## Pivot 메서드 {#pivot-methods} + +| 이름 | 설명 | +| ------------------------------------------- | ------------------------------------------ | +| [](api/methods/gettable-method.md) | @getshort(../methods/gettable-method.md) | +| [](api/methods/setconfig-method.md) | @getshort(../methods/setconfig-method.md) | +| [](api/methods/setlocale-method.md) | @getshort(../methods/setlocale-method.md) | +| [](api/methods/showconfigpanel-method.md) | @getshort(../methods/showconfigpanel-method.md) | + +## Pivot 내부 API {#pivot-internal-api} + +### Event Bus 메서드 {#event-bus-methods} + +| 이름 | 설명 | +| :------------------------------------ | :------------------------------------------- | +| [](api/internal/detach-method.md) | @getshort(../internal/detach-method.md) | +| [](api/internal/exec-method.md) | @getshort(../internal/exec-method.md) | +| [](api/internal/intercept-method.md) | @getshort(../internal/intercept-method.md) | +| [](api/internal/on-method.md) | @getshort(../internal/on-method.md) | +| [](api/internal/setnext-method.md) | @getshort(../internal/setnext-method.md) | + +### State 메서드 {#state-methods} + +| 이름 | 설명 | +| :---------------------------------------------- | :------------------------------------------------- | +| [](api/internal/getreactivestate-method.md) | @getshort(../internal/getreactivestate-method.md) | +| [](api/internal/getstate-method.md) | @getshort(../internal/getstate-method.md) | +| [](api/internal/getstores-method.md) | @getshort(../internal/getstores-method.md) | + +## Pivot 이벤트 {#pivot-events} + +| 이름 | 설명 | +| :------------------------------------------------ | :---------------------------------------------- | +| [](api/events/add-field-event.md) | @getshort(../events/add-field-event.md) | +| [](api/events/apply-filter-event.md) | @getshort(../events/apply-filter-event.md) | +| [](api/events/delete-field-event.md) | @getshort(../events/delete-field-event.md) | +| [](api/events/move-field-event.md) | @getshort(../events/move-field-event.md) | +| [](api/events/open-filter-event.md) | @getshort(../events/open-filter-event.md) | +| [](api/events/render-table-event.md) | @getshort(../events/render-table-event.md) | +| [](api/events/show-config-panel-event.md) | @getshort(../events/show-config-panel-event.md) | +| [](api/events/update-config-event.md) | @getshort(../events/update-config-event.md) | +| [](api/events/update-field-event.md) | @getshort(../events/update-field-event.md) | + +## Pivot 속성 {#pivot-properties} + +| 이름 | 설명 | +| :------------------------------------------------- | :----------------------------------------------- | +| [](api/config/columnshape-property.md) | @getshort(../config/columnshape-property.md) | +| [](api/config/config-property.md) | @getshort(../config/config-property.md) | +| [](api/config/configpanel-property.md) | @getshort(../config/configpanel-property.md) | +| [](api/config/data-property.md) | @getshort(../config/data-property.md) | +| [](api/config/fields-property.md) | @getshort(../config/fields-property.md) | +| [](api/config/headershape-property.md) | @getshort(../config/headershape-property.md) | +| [](api/config/limits-property.md) | @getshort(../config/limits-property.md) | +| [](api/config/locale-property.md) | @getshort(../config/locale-property.md) | +| [](api/config/methods-property.md) | @getshort(../config/methods-property.md) | +| [](api/config/predicates-property.md) | @getshort(../config/predicates-property.md) | +| [](api/config/readonly-property.md) | @getshort(../config/readonly-property.md) | +| [](api/config/tableshape-property.md) | @getshort(../config/tableshape-property.md) | diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/api/overview/methods-overview.md b/i18n/ko/docusaurus-plugin-content-docs/current/api/overview/methods-overview.md new file mode 100644 index 0000000..284bf03 --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/api/overview/methods-overview.md @@ -0,0 +1,14 @@ +--- +sidebar_label: Methods overview +title: 메서드 개요 +description: DHTMLX JavaScript Pivot 라이브러리 문서에서 JavaScript Pivot의 메서드 개요를 확인할 수 있습니다. 개발자 가이드 및 API 레퍼런스를 살펴보고, 코드 예제와 라이브 데모를 체험해 보세요. DHTMLX Pivot의 무료 30일 평가판을 다운로드할 수도 있습니다. +--- + +# 메서드 개요 {#methods-overview} + +| 이름 | 설명 | +| ------------------------------------------- | ----------------------------------------------- | +| [](api/methods/gettable-method.md) | @getshort(../methods/gettable-method.md) | +| [](api/methods/setconfig-method.md) | @getshort(../methods/setconfig-method.md) | +| [](api/methods/setlocale-method.md) | @getshort(../methods/setlocale-method.md) | +| [](api/methods/showconfigpanel-method.md) | @getshort(../methods/showconfigpanel-method.md) | diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/api/overview/properties-overview.md b/i18n/ko/docusaurus-plugin-content-docs/current/api/overview/properties-overview.md new file mode 100644 index 0000000..646458f --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/api/overview/properties-overview.md @@ -0,0 +1,24 @@ +--- +sidebar_label: Properties overview +title: Properties 개요 +description: DHTMLX JavaScript Pivot 라이브러리 문서에서 JavaScript Pivot의 Properties 개요를 확인할 수 있습니다. 개발자 가이드와 API 레퍼런스를 살펴보고, 코드 예제와 라이브 데모를 체험해 보세요. DHTMLX Pivot 30일 무료 평가판도 다운로드할 수 있습니다. +--- + +# Properties 개요 + +**Pivot**을 구성하려면 [구성](guides/configuration.md) 섹션을 참조하십시오. + +| 이름 | 설명 | +| -------------------------------------------------- | ------------------------------------------------ | +| [](api/config/columnshape-property.md) | @getshort(../config/columnshape-property.md) | +| [](api/config/config-property.md) | @getshort(../config/config-property.md) | +| [](api/config/configpanel-property.md) | @getshort(../config/configpanel-property.md) | +| [](api/config/data-property.md) | @getshort(../config/data-property.md) | +| [](api/config/fields-property.md) | @getshort(../config/fields-property.md) | +| [](api/config/headershape-property.md) | @getshort(../config/headershape-property.md) | +| [](api/config/limits-property.md) | @getshort(../config/limits-property.md) | +| [](api/config/locale-property.md) | @getshort(../config/locale-property.md) | +| [](api/config/methods-property.md) | @getshort(../config/methods-property.md) | +| [](api/config/predicates-property.md) | @getshort(../config/predicates-property.md) | +| [](api/config/readonly-property.md) | @getshort(../config/readonly-property.md) | +| [](api/config/tableshape-property.md) | @getshort(../config/tableshape-property.md) | diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/api/overview/table-events-overview.md b/i18n/ko/docusaurus-plugin-content-docs/current/api/overview/table-events-overview.md new file mode 100644 index 0000000..5f8963b --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/api/overview/table-events-overview.md @@ -0,0 +1,16 @@ +--- +sidebar_label: Table 이벤트 개요 +title: Table 이벤트 개요 +description: DHTMLX JavaScript Pivot 라이브러리 문서에서 JavaScript Pivot의 Table 이벤트 개요를 확인할 수 있습니다. 개발자 가이드와 API 참조를 살펴보고, 코드 예제와 라이브 데모를 체험해 보세요. DHTMLX Pivot의 무료 30일 평가판을 다운로드할 수도 있습니다. +--- + +# Table 이벤트 개요 {#table-events-overview} + +Pivot API의 [`getTable`](api/methods/gettable-method.md) 메서드를 사용하면 Pivot 내부의 기본 Table 위젯 인스턴스에 접근하고 다음 Table 이벤트를 실행할 수 있습니다: + +| 이름 | 설명 | +| ------------------------------------------------- | ----------------------------------------------- | +| [](api/table/close-row.md) | @getshort(../table/close-row.md) | +| [](api/table/export.md) | @getshort(../table/export.md) | +| [](api/table/filter-rows.md) | @getshort(../table/filter-rows.md) | +| [](api/table/open-row.md) | @getshort(../table/open-row.md) | diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/api/table/close-row.md b/i18n/ko/docusaurus-plugin-content-docs/current/api/table/close-row.md new file mode 100644 index 0000000..8b2f409 --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/api/table/close-row.md @@ -0,0 +1,43 @@ +--- +sidebar_label: close-row +title: close-row +description: DHTMLX JavaScript Pivot 라이브러리 문서에서 close-row 이벤트에 대해 알아볼 수 있습니다. 개발자 가이드와 API 레퍼런스를 살펴보고, 코드 예제와 라이브 데모를 체험해 보세요. DHTMLX Pivot의 무료 30일 평가판도 다운로드할 수 있습니다 +--- + +# close-row + +### 설명 {#description} + +@short: 행을 닫을(축소할) 때 발생합니다 + +Table 이벤트를 트리거하려면 [`getTable`](api/methods/gettable-method.md) 메서드를 통해 Pivot 내부의 기본 Table 위젯 인스턴스에 접근해야 합니다. 트리 모드는 [`tableShape`](api/config/tableshape-property.md) 속성을 통해 활성화해야 합니다. + +### 사용법 {#usage} + +```jsx {} +"close-row": ({ + id: string | number, + nested?: boolean +}) => boolean|void; +``` + +### 매개변수 {#parameters} + +액션의 callback은 다음 매개변수를 포함하는 객체를 받습니다: + +- `id` - (필수) 중첩 행을 가진 행의 id +- `nested` - (선택) **true**로 설정하면 중첩된 모든 항목이 축소됩니다 + +:::note +`id`가 0으로 설정되고 `nested`가 **true**로 설정되면 테이블의 모든 행이 축소됩니다 +::: + +### 예제 {#example} + +아래 스니펫은 버튼 클릭으로 모든 행을 열거나 닫는 방법을 보여줍니다: + + + +**관련 문서**: +- [`getTable`](api/methods/gettable-method.md) +- [모든 행 펼치기/접기](guides/configuration.md#expandingcollapsing-all-rows) diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/api/table/export.md b/i18n/ko/docusaurus-plugin-content-docs/current/api/table/export.md new file mode 100644 index 0000000..55748f0 --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/api/table/export.md @@ -0,0 +1,109 @@ +--- +sidebar_label: export +title: export +description: DHTMLX JavaScript Pivot 라이브러리의 export 이벤트에 대해 알아보실 수 있습니다. 개발자 가이드와 API 레퍼런스를 살펴보고, 코드 예제와 라이브 데모를 직접 체험해 보세요. DHTMLX Pivot 30일 무료 평가판도 다운로드하실 수 있습니다 +--- + +# export + +### 설명 {#description} + +@short: 데이터를 내보낼 때 발생합니다 + +Table 이벤트를 트리거하려면 [`getTable`](api/methods/gettable-method.md) 메서드를 통해 Pivot 내부의 Table 인스턴스에 접근해야 합니다. + +### 사용법 {#usage} + +```jsx +"export": ({ + options: { + format: "csv" | "xlsx", + fileName?: string, + header?: boolean, + footer?: boolean, + download?: boolean, + + /* XLSX 설정*/ + styles?: boolean | { + header?: { + fontWeight?: "bold", + color?: string, + background?: string, + align?: "left"|"right"|"center", + borderBottom?: string, + borderRight?: string, + } + lastHeaderCell?: { /* header와 동일 */ }, + cell?: { /* header와 동일 */ }; + firstFooterCell?: { /* header와 동일 */ }, + footer?: {/* header와 동일 */}, + } + cellTemplate?: (value: any, row: any, column: object ) + => string | null, + headerCellTemplate?: (text: string, cell: object, column: object, type: "header"| "footer") + => string | null, + cellStyle?: (value: any, row: any, column: object) + => { format: string; align: "left"|"right"|"center" } | null, + headerCellStyle?: (text: string, cell: object, column: object, type: "header"| "footer") + => { format: string; align: "left"|"right"|"center" } | null, + sheetName?: string, + + /* CSV 설정 */ + rows: string, + cols: string, + }, + result?: any, +}) => boolean|void; +``` + +Table 위젯의 `export` 액션에는 필요에 따라 구성할 수 있는 다음과 같은 파라미터가 있습니다: + +- `options` - 내보내기 옵션이 담긴 객체입니다. 옵션은 형식 유형에 따라 다릅니다 +- `result` - 내보낸 Excel 또는 CSV 데이터의 결과값입니다 (일반적으로 `download` 옵션에 따라 Blob 또는 파일 형태입니다) + + **두 형식 모두에 적용되는 공통 옵션 ("csv" 및 "xlsx"):** + + - `format` (string) - (선택) 내보내기 형식으로 "csv" 또는 "xlsx"를 지정할 수 있습니다 + - `fileName` (string) - (선택) 파일 이름입니다 (기본값: "data") + - `header` (boolean) - (선택) 헤더를 내보낼지 여부를 지정합니다 (기본값: **true**) + - `footer` (boolean) - (선택) 푸터를 내보낼지 여부를 지정합니다 (기본값: **true**) + - `download` (boolean) - (선택) 파일 다운로드 여부를 지정합니다. 기본값은 **true**입니다. **false**로 설정하면 파일이 다운로드되지 않으며, Excel 또는 CSV 데이터(Blob)는 `ev.result`로 접근할 수 있습니다 + + **"xlsx" 형식에 특화된 옵션:** + + - `sheetName` (string) - Excel 시트 이름입니다 (기본값: "data") + - `styles` (boolean 또는 object) - **false**로 설정하면 스타일 없이 그리드를 내보냅니다. 스타일 속성 해시를 사용하여 구성할 수 있습니다: + - `header` - 헤더 셀에 대한 다음 설정이 담긴 객체입니다: + - `fontWeight` (string) - (선택) "bold"로 설정할 수 있으며, 설정하지 않으면 기본 폰트 두께가 적용됩니다 + - `color` (string) - (선택) 헤더의 텍스트 색상입니다 + - `background` (string) - (선택) 헤더의 배경 색상입니다 + - `align` - (선택) "left"|"right"|"center" 중 하나로 설정할 수 있는 텍스트 정렬입니다. 설정하지 않으면 Excel에서 설정된 정렬이 적용됩니다 + - `borderBottom` (string) - (선택) 하단 테두리 스타일입니다 + - `borderRight` (string) - (선택) 우측 테두리 스타일입니다 (예: *borderRight: "0.5px solid #dfdfdf"*) + - `lastHeaderCell` - 헤더 셀의 마지막 행에 대한 스타일 속성입니다. *header*와 동일한 속성을 사용합니다 + - `cell` - 본문 셀에 대한 스타일 속성입니다. *header*와 동일한 속성을 사용합니다 + - `firstFooterCell` - 푸터 셀의 첫 번째 행에 대한 스타일 속성입니다. *header*와 동일한 속성을 사용합니다 + - `footer` - 푸터 셀에 대한 스타일 속성입니다. *header*와 동일한 속성을 사용합니다 + - `cellTemplate` - 각 셀의 내보내기 값을 커스터마이즈하는 함수입니다. value, row, column 객체를 파라미터로 받아 내보낼 커스텀 값을 반환합니다 + - `headerCellTemplate` - 내보내기 시 헤더 또는 푸터 셀의 값을 커스터마이즈하는 함수입니다. text, 헤더 셀 객체, column 객체, 셀 유형("header" 또는 "footer")을 인수로 받아 내보낼 헤더/푸터 값을 수정할 수 있습니다 + - `cellStyle` - 내보내기 시 개별 셀의 스타일과 형식을 커스터마이즈할 수 있는 함수입니다. value, row, column 객체를 파라미터로 받아 스타일 속성(예: 정렬 또는 형식)이 담긴 객체를 반환해야 합니다 + - `headerCellStyle` - `cellStyle`과 유사하지만 헤더 및 푸터 셀에 특화된 함수입니다. text, 헤더 셀 객체, column 객체, 유형("header" 또는 "footer")을 받아 스타일 속성을 반환합니다 + :::note + 기본적으로 "xlsx" 형식의 경우 날짜 및 숫자 필드는 기본 형식 또는 [`fields`](api/config/fields-property.md) 속성을 통해 정의된 형식의 원시 값으로 내보내집니다. 단, 필드에 템플릿이 정의된 경우([`tableShape`](api/config/tableshape-property.md) 속성 참고) 해당 템플릿에서 정의된 렌더링 값으로 내보냅니다. 템플릿과 `format`이 모두 설정된 경우, 템플릿 설정이 형식 설정보다 우선 적용됩니다. + ::: + + **"csv" 형식에 특화된 옵션:** + + - `rows` (string) - (선택) 행 구분자입니다 (기본값: "\n") + - `cols` (string) - (선택) 열 구분자입니다 (기본값: "\t") + +## 예제 {#example} + +다음 스니펫에서 데이터 내보내기 방법을 확인할 수 있습니다: + + + +**관련 문서**: +- [`getTable`](api/methods/gettable-method.md) +- [데이터 내보내기](guides/exporting-data.md) +- [필드에 형식 적용하기](guides/working-with-data.md#applying-formats-to-fields) diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/api/table/filter-rows.md b/i18n/ko/docusaurus-plugin-content-docs/current/api/table/filter-rows.md new file mode 100644 index 0000000..40dcf58 --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/api/table/filter-rows.md @@ -0,0 +1,35 @@ +--- +sidebar_label: filter-rows +title: filter-rows +description: DHTMLX JavaScript Pivot 라이브러리 문서에서 filter-rows 이벤트에 대해 알아볼 수 있습니다. 개발자 가이드와 API 레퍼런스를 살펴보고, 코드 예제와 라이브 데모를 사용해 보세요. DHTMLX Pivot 무료 30일 평가판을 다운로드할 수 있습니다. +--- + +# filter-rows + +### 설명 {#description} + +@short: 데이터 필터링 시 발생합니다 + +Table 이벤트를 발생시키려면 [`getTable`](api/methods/gettable-method.md) 메서드를 통해 Pivot 내부의 Table 인스턴스에 접근해야 합니다. + +### 사용법 {#usage} + +```jsx {} +"filter-rows": ({ + filter?: any +}) => boolean|void; +``` + +### 매개변수 {#parameters} + +액션의 callback은 다음 매개변수를 가진 객체를 받습니다: + +- `filter` - (선택 사항) 데이터 배열의 각 항목을 받아 각 항목에 대해 **true** 또는 **false**를 반환하는 필터링 함수 + +### 예제 {#example} + +아래 코드 조각은 입력값으로 테이블 본문의 집계된(표시되는) 데이터를 필터링하는 방법을 보여줍니다: + + + +**관련 글**: [`getTable`](api/methods/gettable-method.md) diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/api/table/open-row.md b/i18n/ko/docusaurus-plugin-content-docs/current/api/table/open-row.md new file mode 100644 index 0000000..2f5766c --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/api/table/open-row.md @@ -0,0 +1,43 @@ +--- +sidebar_label: open-row +title: open-row +description: DHTMLX JavaScript Pivot 라이브러리의 문서에서 open-row 이벤트에 대해 알아볼 수 있습니다. 개발자 가이드와 API 레퍼런스를 살펴보고, 코드 예제와 라이브 데모를 체험해 보세요. DHTMLX Pivot의 30일 무료 평가판도 다운로드할 수 있습니다. +--- + +# open-row + +### 설명 {#description} + +@short: 행을 열 때(펼칠 때) 발생합니다 + +Table 이벤트를 트리거하려면 [`getTable`](api/methods/gettable-method.md) 메서드를 사용하여 Pivot 내부의 Table 인스턴스에 접근해야 합니다. 트리 모드는 [`tableShape`](api/config/tableshape-property.md) 속성을 통해 활성화해야 합니다. + +### 사용법 {#usage} + +```jsx {} +"open-row": ({ + id: string | number, + nested?: boolean +}) => boolean|void; +``` + +### 매개변수 {#parameters} + +액션의 callback은 다음 매개변수를 포함하는 객체를 받습니다: + +- `id` - (필수) 중첩 행을 가진 행의 id +- `nested` - (선택) **true**로 설정하면 모든 중첩 항목이 펼쳐집니다 + +:::note +`id`가 0으로 설정되고 `nested`가 **true**이면 테이블의 모든 행이 펼쳐집니다 +::: + +### 예제 {#example} + +아래 코드 조각은 버튼 클릭으로 모든 행을 열거나 닫는 방법을 보여줍니다: + + + +**관련 아티클**: +- [`getTable`](api/methods/gettable-method.md) +- [모든 행 펼치기/접기](guides/configuration.md#expandingcollapsing-all-rows) diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/assets/add_remove.png b/i18n/ko/docusaurus-plugin-content-docs/current/assets/add_remove.png new file mode 100644 index 0000000000000000000000000000000000000000..81dcb52eec4258eb730f611a33e6916fa6969fa8 GIT binary patch literal 22594 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 literal 0 HcmV?d00001 diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/assets/apply_filter.png b/i18n/ko/docusaurus-plugin-content-docs/current/assets/apply_filter.png new file mode 100644 index 0000000000000000000000000000000000000000..53905a71bd47736b88a58f83e4d20325092ed85a GIT binary patch literal 133304 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
>e1&B?t%T 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 z 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 Qzef?It*NI`rDh%RA2V27vH$=8 literal 0 HcmV?d00001 diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/assets/filter_applied.png b/i18n/ko/docusaurus-plugin-content-docs/current/assets/filter_applied.png new file mode 100644 index 0000000000000000000000000000000000000000..9ed747904e49d464d5a04c9f943a6302ea354668 GIT binary patch literal 120103 zcmdRVWmJ^kx9|`mNK5B{w4ijiNJ)o;ba!_nNXO6}Dvd}=cQ;6PcgN5$@D9Jg|6S{S zzua{{-1jVIG0%R^oY;Gx-6up|Rvh&O;R^r&fGR2RUJ(Fz4g>(;tPl~P5aGni1L!{_ zTM2as0N|zL;|FHZ80ZQGK6jLq5q-XmfQ*bmeS^=P^%qD~%~9CN(bUEsP*6M|0R^Er zLP77191QHuY#q&PtN~a^nSXIy7+RWMn z&_c8s1cg2S`}a=v21bDM2mif)yNTFXSs7V70xkv;nxQa+$8O4Ij+RD%{KHWi0Duf2 z`CeGrHEn;v!*Sv~{pew* zdwPn)3IzS>YTtIO@bsi8i!bou>8TH?UHsn>DJ8k}u4td0=x9)YR8LPEUskf7hR;s> z-!hrLP!MP?Bct=z5BizOr2vVijq&8n2ZHA4lkLteGiDdB+dZ`J2*--OlOoQ!`G5S` z2n<>E%38->5|PzLr|Qz)dTXPln;o8}pg*1HfA$*}rjHjiTS?W3g=qD-QFV_M%j#|> zQc!C91f`PzXTfh7o6uQHGQ(&7;3%>{=6LX}e;cKsM`eJzO;wdw`U*s+>bP?1<@mW# zgqM+Anum_r3SK2dOJaE4bFf>IwOQh-li=)zVpGk+Lc}P z$DeTCt%xxAI5D1N2s%B{^E`lU-+buz?q^|$E?%B@-zbUA4`WB| z-)^l?VA(83#-OX$??9Z1=5jS5r>L5CzYdsZCA1a{t-a2;@2~SLu5RmTO1ElnufTZd zX?92_2lQ8Kg6=81beG_EpHKaQ_k*aE-nKv;pNmGz8hoFiyoYVf!WTBHHa-mrnUJx| z>&)s%L&p^+eG^aTKkLf?Br2omLn4^P&Ryv8sCqqucxKW*l+~8S9%LEZ>0Xdo-x%6V zP4KqW3a(RWGGD&S@H)|%aoeK`_cu@~9)irSudQfXvLH9{Ur%dyR^XK`=an2E?;R=d zR)1L~&20W0@nf>|GUfU8Ok2SWop#t381J&N{YdZ>Hq{z}JBIZpL0|TgukZLN<#SA(LN$Y3j|rwo5qv zSDwr>bY`46$qJ;#)6Fz)cTB{vfnso;d#ALqK~?<2$}uh+z!Es!{Sitg-1TUSEbM!6 zKb#3OZL>hJuVjd`wVaZdTADsG=94+$J>04~8^-UeeN;tW~7BwEWOhuw?KXL4 zSIzJEZjvzqPT=JlQ#Tj<0HA~*0s_ej3!4sa)9T3GDtA3QBx`j%=rT! zvI^#d%=_O>nY@bAY7V|Vx_uRkLjEL~Z#s)_*e)kB-RDDMEU(`D3WU3xU|0AsTO~^y z3?8}|IMFLm(JuI`*Zywa$BnYyN-_8r)KObc-FX|^t~q-0JE9a$jq7z={we@twJydP zbR>BKfuCn)?!pr{;l(IPML2>mbYA|@s4af=ZeghWM7*0H{d)jp%Soqk*f8UHbbcN(kHK0h}nQ%mRr>Jw~C1>!8WJ=|TqqfS7{ zqE+dx^RQW2VdZyPVfyfyo>a3vwjwCqaG8mEP;1~Jqdqw0=P)?&QeZH1yhZT7gi+Bw zm;Fg46wC=|5N?jpk*xiI%4GIlEUg1a%0XU9d=I^-i(0Zw6ecT=&1vjx&m?0JLIDl@ z>=lXK=~4+436p76j#eEM9D6WVn_QTlRr3t&&&6Y^gq}tKdw;s4J@!R3vW&rY;yb7R3lOPtyfH02+tjq7wj6b1xVA~o!|toM@%OcV^n;I$vzb865P`<|rMm`^;aG>bMy) zR_gvy?v7Qa0SLOLrR{{EZ)iH4?QeCb7F8w>AXj=kTKG(YZQpV8!fqK=rPw`j`<#=xu0K}l zUqNox5+Xz{KV|3f+F^CdjS08rY|LMct%|6dF`TLLRU7D&QbY64cyaU5dF}Y+PK)o@ z9ROH9R^F~JtgbJ(N0K(<-D|eW@pbOr7r(JGM)2C-&2yu8f^Fa)*T?1dBaNUT^yNcifab{Y zOLWKxY?J*I*fQN!Q1EW@7gk^=^QKarl?m!WMjUR@~+izK8_gW%OQs3+Oql>DF=`a*ao3+(~+HOlNG9 zAWH0PL(g!VcvwlUxYQTEi~FANT?=)goHhq{Wvg^xx6_C8CB40BSBIOE66%GD49+8N zyZ1%=)TFmQ*1M%k@QZheXlr6R-K*jy26iSij43UC;+Y1m1(|+N_8G!2#Id*13blfR zoJ-QS!+C!4iTVdVhEtlvZjNfSZFgac4Zj3C8*Pl$*r0gkR7b8(V_f<~tw%3W26F_}d}9NMkM8p%<({+&d)l!H`IafD zc`ywQU;JVrM;(!SPfPGpm-2YjMx)kRBFc|Ko<$(WDtj+P4x!dSHMDsaUr-Nh5(Hnn z6-rALgjICq6j+vt!cxm6u__-r0enZvXnV)r_gNeDj}@K0$YE*!WouND^nq!x?TuMr zARI#j+kiE0JVfiu%zcV60K?APF^HmouY1iF=TbI94(MJ9UrjC}Qgvb;rX?9Kc@P|W z@QMmEwPdaB%$)r!ptMoWam@f+Mj*+La$K4%M6=O9unxA{&|J%^`?eXTm@G-z1!Dse zai6&zo|+EB4a>quj&r&!uF*XiXJ*TDI3^c1Eb~6+WW~ICvlD*{)NArdxxMU)3cRz` zl>cx)+%>dB0##tKyLkAb`fO>D@GkUTZU6f5?-`UFRkxg`@%ME0Nip$BUTz!yf{*+8 zy+|l(vm_Y8#-}#PsRdg8FWnhWfJm=hvS*@}uWsV}{Rc8J^xA&Eo&2@`?7wngxD6NU-kPFs2oa{uDK*@0_!xobTD*VYiKixNVg}wQw2Vh74pm+onKa;h=}ZS z#qA!k3~|HlI34uzuR@~PqZYeATaz`aXoI~>$QqB}W`x|+-ETZ%|K|5`g&|&`s!BCl zFuIw`-P`uQ-AU`Ct)KxOowIe)ll$K@0~Xr5pX7XO{=pnipV^ff-f-!fEl*+)9|bR3 zUV+ulVo+E8E+k5Q3v{?hu?XauJK##om!d-amZQI~{8t}lhDVQTJ#20wP^w7_|GJ{?NkK~ob% zg(zItMxG-S=Z8bByEor|3Enxk13j498kKAlymvyu1-D-LM=a7pkUZJBnHXYC0K!u@8Xz5 z4fAK_dhP~$-v+5lzgaB{6Y1zFHS)l+NU3`msCy&W$0>kkpkf#NJu5RLmt~yT+UR_e zdUE_+7Rrh%hDTFzc-!EOa%y$X*#Mp(Bv9gr|P z-%5io+IaXgZo)^ZSs53?jWTYxIGRsxx?Wfsb#57jh18R%bh<;!fNVwOrqSQ$PMN^0 z(?GsH5e&hY<+8%!qnxxJQ0bL}+W>*xs)f8#s_ymPn+5OUt%f^VkXEAjGs%n_Q3?yW zQ^=1qrDw{rNLY~k0A3vsdU$~_n1Z3nQ~m;iR(V_dJ1y5;2RUrf`q`PSRmE*Sz1ield4PpYPZr;clP(of*V=-;BTTC6qNdk< zNf_fk<89@;+8K2o5^+X2Zqh*F1oLLoqJ$4 zIMIqY+J3oK#Z^?Fyx%~@Kz&C0c6(;VypTxkMmUrUrb|=v_saA^IGwJU#&ON9zZmZM zMNn51cLiCy5Yq1Nn`1IFr=yf}{5bO?q141YywdbG%-BYr|6L7xH#Npgj z8nO0d!~be3@2khpqY-07q%j=>_^yX5BX~01{Y>3+f~+q~=#}I~S1ddeH>UB?;(yKbyO{Wod$xIkEJG&EMIH708v zzg}^J{A_>`RamOoG zCY!3AWoSkI>()c;4g_&^4vI<9ZqqoLJY)avt7v#B&NJtHqAYtcfeHi>EvpMsw}UKf zCwN-4TJ4kWX9WC|?=fMhBcPi%(t@C>YaFW)`e(Ggx-+%d=|E678SLKZ{B(!3P0Yel_F%lfS2<2eVk1=NS?T_)X2gs2!n6DO3dJk zXyUU1cV1LVwbNmf>6LM86NQhob7kyYeQ-EPn@-#2MM)iq>EbH>QXyCa$u{M4)cS^%-bd37h9j@L}|m`S;?@1wX6G2#z%{0rgO` z84wgfuAX7jQDw)Ov zakR(!Lf!VPK}279sE7BW2|aun6CaqvhrU{QB3oyp#CPsY&km38GD6k|6Rf~}*>PDT zj>cBDzCd{{w3Cm;`$ek%g}QSQeN9M?*By_Om!R{>JZ~|whDy&(D&tps&v2S8&EL+0 z=z5SeSX>mO3fC^(Nnm|7g3^qU_;_#ne%<|9r$RAzgpv91^k?eLX1fL{8|ZO0u4?4V zp@5p<4p!-IaMZ3}M*Fkk#4CKRM!;WbI{Q%HSV{?>1k)nRa{MYt-W4Mw)K%mhl2=-2 z8ErHp6S~fM#$Yuiqs3h5D@sxR`D3QcjF;t3oAi`H-PQGVnUmflDI75S#Wqjw=8+>I znreddpkxxC`++z5GkNZ(^zu=RTExbtCg`1Qo;#~eSCy}cgaob?0{3s#BsQ+H7}rMt zbIbpPr6JwNW#X^G-vUyUiUg;xgX4ilc@l3(GWH6FVi+JF>(Mt#`be8S%}H73ChIk( zXh^iwH}C>z5uAYnA62JL3eL^VUpAD|w`xQ%87m9KYso&iyztMuJ5M5Ge_q}_H;R}; zq0c9eiJ(~IRUI-#*c)hX!+wef{U}#Y&Y@J;dVbl-BSSjWKnW zeQ~(U;LE_x?0Rk2#klh1`p7dsdWe%H|sbf&aBU^3&H6Yh-1`c1~4bc zqA0!BaefB(t2~bYpAe$g*cT>;{lU~Kmr64)NO#Ep}QuveaL`r!&DcYLxUG%)LF%m;qm6i5lE zQOlURi&11z#&gA21f+CBRTM(B64$-Cazn#eMF3M-unOm}{KtuoItl{BfF#yR-()~L zSe>sBl(&zNFRKviw~Fbetc|-fGwg@;CF#7DRy0UM{ZiPkI#OulH@;NKuz@?J=tMCW z-l`5K}jlA%M z;zi4W_LC$6*EORBGsRyQfNU%e=hO)gg&|aoQ{XmoT0%^Nk>iXs{`Mg))cI?%3)e93 zXk8k49?BQlGpBPZgtNxqf6Pqv{kZ*9z$2PY^Wk(qk`kEXA8v&w1l1fEqC0G@t^j%S5iiSY+-7^ew9!oq69> z)wZNWZ%UgU-7>O*6;pR0-&1AL6Xr)rufb5V;{ZohxuX|FKL_VY%kY||oDf6Y%FpUO z_43-}jZ`8vXEIcH0tW?7&;rJm&x1$krfyWh!9V0h_J1EkcW>sA)@UN{T}^DN-^)1n zEb73&8%?R~qIxxJ3HdVpy3G7j#b-s!-yw5BP;FZDD${5RyZj;$f9)NCGcec%;*c*T znP6o(xcK}Vpc5eChaKeGH7S6y1(V{oyf9hS(%@UELofiwVeT9Lip1kx6W~UaqE=NK zLPex8gWB=VY!cG&`MLMRz$xdhx<=~f1`M19zTv%x$+pd06j3}VmgfAr%SKRuUej$A z%?EA=3$ez7fe1}=Z+$I+d>LFg|KwA~U2ePvyKM&Qe7XJSY>+VELdCRNEDq)@KE?1= z7N49=R`Q^aXY*u!f19zJWgTyw!pSvO4Sp$ne2I!A|4&YR`D`%xT$$tG;+;c4wpt?c4rr034mG z^7H2@wFjN>;M`5Seo?)yxGpuGS8W3>L~5h{hvhe2*cy>uIC;5L=n_hmw^vDTLQpUa z)zIG!i8NcS*bsF1JSYbjtbv1x{p8SXkV&hnj&G7VE}WDGo2V0T;R_nr=4wB@>J2UY zjKk+_W{&w0FDTN-i&D6=pZ^VCOVTKfpnbiDPLk* z^SR<{y@R|D{L_6mjYyM6Rz@zIr|#j&^NQ-7?`-M#Nm1j1rb2kB$KZ5(|Sr>7GG&gzdLgNr$|d1b0R+SRn}4T~QcOx$Z9YgCl^fxqufr zi2<^NmKln{`zgjIyS8Z?A0haBi@%|(ha;KvO;hMujq%R^$vS~l#V%6BCAQIB9EK6b z7$*NAF#T3zR)*ZY2~mlM_V{El8sISNrOy0n8hKC8dHCB>)$xJOh0bx!O(E8lt7dh5 zJ7Lrm4wH>9d=&d!?7p1LWh3KY${QKz%5clpzp#_W7VVcJtcUjBcsYCh9jr(Xx>GI;GGDYdJ~)Qm zM2|QfpU2QZ%gvV&))P*W>=X`FG+Ueisk^o7#t_2prg zSzCr$1&vX{r$`e0TMK|FuZeBw$kUsa$*BbX0k0vpsUT43I}xo?#U{LSjHrqhcmrBh zu5!9+_?T%tw2V=ai`Q~Ui7j4JMftucXyU-K*AT=>fo=|mT}7#;?Uf+&ahlxK^E4h| zk~qET!ZuB`qb zc$>?~pbPP-_o&R^F3-v4d8s_^`0{s?T7<9cxO%I)EXm|GiE|qOyMiA|VSTxHiJmJ6 zunm0Q0~0g~%A6b{j)|vr`w)#nSFpT6T{ufxI5X98r&12Wd#~oH1#|a3x)RceV5r23 z-axc^O{Zt9rT+f91FD(Gd1&9OW1H@j%2D=|hg!N5l3?pA+6Av-j8ApBnL7ZzGD8Dv zt;E73Zf`dofvlCmg<-J!0%_mts60U7q@>20wC#tDZ)OP4(XtB~xjJg1pYcihz4=mm zfu+}#ULD~@;@AE2oPh_|Hy0}DGTzUv#dhJ8`iUKS-ZI?Q()>lV52xcd z?xb_^hMdBEjG-(R%5n5zaFl43rwg2srP-YIgiUK)NZjfmhMW~sZZqw@wqXO$enT1ghG`rT%Ch&JDd!uThBLd}+|8!JXT?J*wJLteH#2Cp-PS1Q za(F8%*z8F7D)Se2;-a)5!|9ooI-lK$eWy>F#2Zyo&zbY^t1NALoAS0&W8p#FP~+jA z$ciM&3T9ns+qbB|dbtYZ#TagX5KK1mJ|#Vfcc3u^&$|9?WTfQDtVhKB1$eQ6Gtzvu z09~=;Gt?R^!k?2{B0|rbmhm0M>^_Pf`Nn2*V5#3b0&v!$=y%S^M-Qm6wfA1ItVHcW7-q4_16Pl{Jsl`NkNMZD1kJxe=7C zO-!b+^x-2~ZndUheHi;zoo(0oWdW0v4FfcOw5G&$c)!d9=FGf~?nXx~Tl>B9Rxx*M z0y4$k;YSeQ*+|_hVH2L8>CZt2kHLsS#4@-+26qZOh5`O~hwGH1;?M$7K4-i7 z!&3^R*V+PL4#lJBv9Z{x0!vTw_(X()#o6DI$J5%*GCfoxqeX{e;+`&lVz7j+J};Ky z3=MqbGF>Jm%J(9ZlS^vFFt>rmQmDxY6gx?2Mu54LPw-pw3GM0Tkgh zl<1{6Co>nFJfU8?AgcRd=I6q}b3UQRcc0E95v=EkvU7Ko(=#6(UEQ^vKLNvShE#t= zU?M76g;J@p#IFk%{=Prf-ioo z7h_yXmV}Sg==kqKpX?^iV;%UI6#vQ2q;H@AhY8I5#di$Ri1i`SCMDhTH0O{1#A+!e|GNc8 z?}ysEPec%8GiG8xL8I*30UxqI7t~({Uj_|1Yl9W15Jrz||DJ@$W8+RK_nA>N%!%H? z6*4RXZJ47+vqpa#+;{JS>hu45@cadFfz8mF3+B^0V}`tkO8$)t$58%%QU3HlU)Y6z zys}o6XTp52`=RRGh5Qe8WM9vF1Qi?1$*EM>PtZ3sRbvJ-?Z*^IXL?|{cvNZ&>?EFxhMN}_Rh*@^)+K5G!6SmZ0msa( z2_}a|6Sq|Jca2+We9Z3q(Wi7%%#4>bPX#0~Y=Cv|!R{MQHL%>zIM0JtEWhrdi87-J zk%4AA+_B<}PE?;O4EpNHbkD?p%AqpkW4-2_R z;H}|>?$ek`K8}jx>EcvqEtOQ@;BusmV0&Aeh$W=8ozH7Z1pEGqcYywxx%TSt(I=RP zgSoro5hN5T;;-go^zvN$1A7Ti)ERomjSeK*6@aH^y-}W7xtQQ;LvZ0d z&~4kKi&Zs0sNWt}zbDamW#HqJIu+*7!iYtDzcK`MQD2 z?M64Sc%4-ajczAd^RL5kSgbD~o@?l2cFWK-fO_Z?F~{Yg6>x^+W6jQjQrq|RVBMm{jRz{V}Kw9#j5ee*cVIc^mlAV&4z__=(twOg~=dL7qY z$90$AI}lmCaSJN>x_-~d65^!{*;b!q(@eU}vuBypS!LuDOX7E6!IJtu-uUo>{sBpB zLEvJ2tnxp|m=CQT`#iemy5CKq{@@>9bh9&dcj;sL>=jDA;p;IQ;4FtJe#N~pPUnvd z<7+IJib9wd;xY!UE-GcZeWk@9Ek~S79~<&>bpBxxpI->;%&=SI#=4G(Ud0)lO zd@1bJ`G@;cV8&ONU^JqBoNB>V7aM-F{@f>II1c^a#Coj`_)q=os9W#<%4%55p>r4? zH>UQ!bR_4yx3PO7F8zna9wGs|>YR)&AX}tiwcRRfV*RrJOpUdsJ6&5tVhKJg3bEGR!$0xK$ zzM?w%IyF`ctt9DFhXGztaI{|k1@+{a@BvODPPwIKFh4I*E%>0=!vCKHYYJZBuDbWv zON)O}{7`G?5*3=`xMLa<7t6EB_Bp_?eH}y2B94 z&iY_+6QK%S>&JC9ZXw|})Aw;X?I7!j(}-wt{Q}B8?|816L$5+}2MTEL-50Qd1+JxP zZuh;zk54q33M_ia51^vii5&RJX2CHIHq@|!`eO3jO>5XiEzsA|3RCVCN7CJqpOz{VG-f*K*6qSRC5 z#}t;kRj~ziTLFj_jyHd$EPF$Bx(a$n=pAn=C)&ebC4?i&dz+ERvz3~Phgu%1^-PHq zqm#-Bu>Yw7znN><^W@XmH(i;a5U&ShU84PvFrbG&+f=k=^;kM%h(fCj2t!lX`P=J-KE~PV(9CFp#b#vOu2%q?lMpUyQxoi{qLnRyR(6UDljiWg!!l8@|arCdMw zMl$2mlq+925n`dnG*?v=x4(asM0s7ImdoNXqQNPdb}F?1OWQ!zVC7E&G6^%J(vk}Q zt^%`Oe_;%(X6|TxFFF5i4)y}+yt%akR$goC|5scyhH{5t^fAD7;CgA$-ikZ<%g0p0 z_Z^uE@mdM5^tV~X6CkRKY-}BmXqf%8$W`DaG)thKZ8~ZXrc}FHTvB3)Aa_& zs_n~TyX%{!vIa;XG*}{sq*QwO(2TPfL* zXbE4gBoudrBQaCMvp*+vTV8tE;7;}oJ~;5EbjTZTJ%K=!fg6{P1Inc_@kE4IhvEce zL_)o*u6&g?G#@j~6p00sP} z^!(!1oH!i11X7snkH>k8Y;j;L-k`OvP2M<@MAE5P=Wq2^0UjN8IEjCU&xWxkqmi6%0M>$rEDIBE7E?QzLtwS^P6JavPAf|F1_a-76>l^nXqO{j#I7{7EO&nu|= ztUjS7sCn*80bV-X9bvQh0Zl+m*m?Llb>9mPeaEX;V=bSHVeqKMw0?{bkQv;tdrDVq z2!-BY3Kv#$IKJc~1y&o2@DI=$_C~SIp;6Z3{~Z^C&X#@80hN5YltigF^}!D6w*Z#k zCGpBfrpr~0!saQm6FbR|Neqt7yn>V2r)xBXrD@LR4RKGdwGLGt8Yzgy^@*f}+X&iQ zSvL|fMvPMx)~>#9p5NBv{)<4$bY!SYYyowNpCB9IW5s_gr2p=1n;y3-F7KX}URDpq zN28!oKICRrs1EH(s}JFE%bDWFi6XrB<-GR;AosmmSUj36KlaVn;h!42)P7QVCe*gs zP26KkqE8xLlIND2Gw11)|L?ik^FQy}KGvR%3QfxU-GU2fEl~Xjpl8sX9<~sX0~>%j2NviIOoll9@lR@##}ruyy5RwCaC4 zS*o97fNj#CSD{So+JOQceLuT_OBZLBxnAc~7r*8VwhA>KUD*Uxsz{q62!T|j)enPy z5a}kUnJv{!by$Dar#4y8+mv0y+~XSQ56^DZ3Lpd5CXUKOkm-Q@MOIQIdq<7&f*KPo zX}1|GM-RiS^MduC<6Rc|Vls&VU-v_amLZ(e&J0}h{THf&+1cywyvxm0>kXQ_sRjBw z%4yjd1v)bMU3}@#1-b6pii z=U(zaZ!9GU*6#`2?-$>?ZYR6Y-u_@OYBGT>s|vdO+f{|82tkCLMue2w-*&yey26ez zuBas%Kqfh79D6^;>9BsLN3+zuCG~Aowz0}F+;kO#Gh*Fh-i4T4uhqZ4ewe90s$ux? z09s>&x321wZ-ue$jIU{LG%22^AM-AV=OEtb87cjit6p%KHml%Lct!eJ-?IOJ5kr@58J-t8AMScQy@`5!I%)<|c|U~6ap z#)G1sLoP4OgX{SnW6myOIEwU+JX^MhJs+I`H9y@_Ho)%Q1c~y+14+Fi4}n%=f$Ay4 z94KIc1l3H2KQjg}9p~f!@Fq#Zrk#Ttbz7z#S0uTLmuv2=()<5xiiQs*SYy_)cJFyE79Er{QjOE(Bvwv+*6KyjF9ltlG*#$Wsxki2N>fDLvCo={1KVK4 zJqB3pB5S76fZB>`n|y~Pi8~6xDdqHVwsgGyaB)k=Y;JeNEd)Aq@0S}!gZ(`%Q~5l) zCa2jkt92A-L02qLV^4~tzuDOKB6B~fyARqY-nTjY$LAs9n?xR#2n)Mxoi5v%d{^6y zuQuZ$=^$UF#>ED$!@30R&P!9h zYL95z6e;4bKsRp^q9Yo$e=WH;Vlx)t>gV^peD4&xr**pyQvFX`!r>bBhs&SjwoBKYJ?(+Dp6Ea54wS_jYG-~V;EsVeQS8IFHj>%V*t>QCt^)D^) zSUUoa7Q2ZdWq9fW<#;x4xKf9@2keN`Su^bD<#dnDL`pKWb`+-qe4qa{d@Rx@-nc}B zVM7mFq)+GjA4;4T-(SDkYRt$iUzo1NA4pMvyLQ~5YWU=wqq?;_eKoj#4pYIMV!rT; z$=QcL>JZE2B+~|LAjbqA+t3_{40{>fZG3K6ev&;gN0P*;i!jD<%~BbH9B1D3HN}B| z(~&kZYw>Fc9{kOq@n{i~dE~BGyhnP7?BaM4QtajcRq=^w-_o3RInPi0Zji$&9eXx> zu?r_q>x6C&bTJ%V_tkIGaIshOZW*qad{-)kMI?GVGV)VVG==>b4SdK%<&Rsk*G55Yf2XW zfk3oeq9GL{6y?k$a32w5H-EUl9Y4LktZn#MpnaCko+#5@r%=cD#X6&ZHEi-%CSN*c zrQ+s0^VN~CrV4LED;iL;5oi{8I`$$2@+0@u0eTm@5Ue)Mei+JZ`ZH+nvDN%b0Q6ZhWHUF&t;m*FEBS z_X_vcDeE17cN}_n7rI_dCU2t{>MPw<={wRC3u18-8T~SGxReengE6ccSb($Zc9L}(k9qS5U)y(^xcwb5R=(YipJ*T;c=D2%k-Uh0d-WtVPSca zYk1)}_#BJl=EQQEnlLGGmu#d5yNKPJJ|C8bNK6;4$qYCNwjT!9F&-qq4I=z$XPxna*~&xHhZNO~v?u{wGPJ>~qUQ>>MQZyt%C-nEn<-O`n)P=b|@` zEG?ZRY5#@3Plw92C2N>1y;(wi5A%)J85c{U#8jpm;3E&uyp%yxSj$shVFup_82@iP z?LH|(MC>G_$p%FamR)b{bg!Z~YWNJB-f%(mWy2% z@-cEl`e{W3r;YT9?DYdmvnk42OQe^ssZ3+cgV!%8s`#3|`eOOAlafXP-Un#Ig)VQq zE(y!NtpUIXVLqE)mfb_jQo7(bhv}Yf^yGKs*3Q}-X{Apyo3Vp=bvm8#`_~UBzr7;B z=^o+MsdzP%LfuHX41?i}>+>~N^|P`#PhIvMF+M)RMg>c!JI|v;m8c5k=SXB!?J_W( zkDw+6tiWHvv4>?h;qgMddY-)c=4x_B@oic+lC)V&ep&mDv&2|bh-&fvKEfx_1&W*K zeXP28#=K1U;rm~g%m6)jEqGc#@xs(vIBhDJ<_dUWgd?!seuh9KjzGKGY##|Cr`?KZ zhw}I}Ep(mSAAaY`x!JT*@$t%;IP!Nt2&~ZcKI#bHuRp^{>Vm^ENUrpht8n9plK{=BA#fHD;B*zB4wsU&vd#CxGS9x{HNrv8H@;>?%~J3I@1Cv6 zKsY{|05V?^)DMdvuJ4`91%oYxmP2O-0Lz5k0NCo2wE?Md^9RE7aeBHKiggwjm`5cK z&<71}p11ZR6?2E{2v{WD(2L>WHTc%#=f?$XAH6`WhmWhN*NzK$WJt_0sOAWV5m6`B zj2ID=`D(UH#9y2tq=~I?xwPHhh6Mk?joXA$|*Wm;L-l}>T#4=&*k-Xwa#%n#F zJ$JWc6K!(AV%Ouq+Zy+HKwC&?osEGZz8)asEkSB3+1t?HT+0I-n~Z9Xm(5mm>7dqI zwK84I=WWss?5|F*{wB9E9#KsSIs)UX-zNCYGLj}Y*hDs-yRduCt2Ul=ZV1gdQ!R}! z8;#OQf5{A$ebEFEVc%UCBa?fp$z{ZsnrGq1eiw+zr|nyVI-^;y|L28lAogSXT_}L zFxg!qnu*_S-f@J<=MERVU+m%Cka3iR9woMe!bh^HZmS5mo?G0le)yfePL(j6mTq1x z-e~PednD1Qt#vYA7L1NCpX)UU+d-l;7^-Vw9%++s;zY^v_ZB|j6N#f5#^~_n5GK~x zr2MMqGasvOcrnxmMjk9JH^Ll2F(3EEm?e4_1%S%luLrm>~8wp;LPckKuj6TRx@URJLbTteG(ULySc>Xf0Z z28STl^6*{oy0Sv_3Kx%&mlss&FRq-Vr81RYRu!^$a69d9)icuHABra9|T>lCzbDfsqkX zOH?%i1~AjNRhP-FDUnfUrK4BLtm^hkS$}Ysih7u_LiRbl?OGSA1D?pCQiT}%1@PEp zurA{4a0Uk%c_RAX=^ia6>LX8VH&U%8&twu_=ha*NH!18^hWoDYJ@NE-92^hMd|gn) z8t#0+Wz?2cQ^PmvkIVJAlx4G&A9h^~Pp&{hL(8>U(!RR`!&V(l2mFjcP3Lv_>QOB_ zJvUe8H0PWvmnrJ#h+>0A`a-B87uD?na>?bk$_9Pz%SR6!&6PpcKb&6)V{B?09E=x3 z-2=DpXL8#vlNG;xdv>@GQN;+EQ%{MD>(H5dFkWmBP2+P)d6f~cGg}L1^{Ki=m&uU! zjjs{C3iDRC+k9wvws^^uZ`{aN8x;40kh@fgn?lu+(1-|BdX+ojMjl4RU-_za-Bgs6 zQ3AlGqF1zH~WCi*p+H?56$Yw zt#0Xf8*TKlPtQ*O-ps*0+nXcu@Zeo;Hjw$lpcw)Q6ygyCHhu70&nS~vYP%=%;%-!_ z_EuL9bxX@`hu6@qfcg`_z3tyks2>X(j(@Lx&oW55n{Z5cbL-y~v8#03nKB>V(CPOq ztk);n#c6us)(i$mU)gg0|D_m^)&-Q5&_h_SD}Tve}khPyz!P%c!<$X+*miG{^& zf5s)UNGNo9sFlA8hP^)BSi3nVD$=U{T<7FTr&ULZgoLy|e~r%Ta-g>*=&ekv8d>=9 zwF5*9ac{~d+f;!u6p#Lcy*-P?l=X5LW8SI$Pr^s65R>dDL)J7)OTQ|1zM!O{f|z^~ zZR9H}|3%5i=XZRJxahGZqwQVGk3*l(-Z?Y#<>B3Mb$Azz(EARV`}xx3PwYRyt6}VF z&E8le%*@Iq+RvndjFOf_Yn(0 zXr*SYv;b=jpI&l^0#xR>)olwfLS>ibSflp(wLxFA$N4}=lF@DM>diTCj5EU^% zLOKKq>F!eL5Tv_fM4F+7RFN*}W>mVnOS%W?4ymEL^IZJ*v+up{&-3D(!>f^D)~t2K z@As{>JlZBinK`HtIj9!%4==SCR=;SN^4GXXMWEp`fJLN)wm>bfs5_0H)1$G704$Hot>#(3^@4t`yZYc@1KnoK6o=L zz{=s#=ASI^;?0ueF&KQa^B~b|tuz7K#&dy_6KB;tZQmr`SCi!yB+QAt&F$^{Viqv> zxaQdg6rRe5461uxYmWqB2Mp>=iih~`HOtI}k2gj$)%!Or!b*yZ7goZoVF{HT)(V&> zPu*|D6jFuWcSp8|PTS5m_Qwyl=I9qZM)7@I%V~WfzcE_SFKFBJB_@Uj6brMpfI(70 zudh4>I(D051-Bs;?;Z%3-o{Z*vM_MW%t$=H!_~ho>jMJ1%HE&4VRthCEGP6$=jE(({Vbpkpfx+!8 za-*TGMGqGuQdf_4w3_#u^>Wv${zyM()@!;ZBWpHwR#KBvRjo z{IB!ybV#T}p&GcSIM6bZtCf;ccVl!IYfVj)A^IuLaa|eZ?2>|(pP%US+8W`>uBbHj zK#Qvz%$)xATidt%7gwkcglFj0O7EjzVcjBMBSK^qWNFuTDr6Chi(B%ig{;u^A+wt+ zC@un~BG6<48bDV>T6G;VOJ_VRnn^3U9(I^mzQiwR{9l!|Pw^FnggmJDe;Rb?!pKCM zA#m^ZsS1*8-5MMeI)&7hI(dtSPuHYYdR|zJ<+DS*5_?DU-YyRyI|i5NCdwe9*O#YY zYrV-lI6h$d+R#8Y?{$i{Jzdd(7z^tN-GrPA%*^Pn|GA-QOcn}t@elj8EyvsyMaK)4 z{VNuhFK>M=APf!48M18N%~YA*oWY=1MbIhQY>ekctsDfdpQ{$gmzjrxqU>Xz1iGL^ zFuqyu*fx_^>DSt04}K?x&t%@av{g}2G6((A`4+Pu{tbt)BeKE;z?G$Iva>dxU&zI> z=(NMVZC2xInvBiNWF|{9=#@(OP@F3(pL(7$3ke4oyY4%*w6wg|$>hTA2>)f|tJ@?bW^l9Jn$r5U|Vpi!uoxy-*KtOGkkpf@=v279_O?1yxx>iS@LuMQ$zxB zu*5_szaT$QF<`*Xt-{lCFwLFL%b+&M2R(dmBd?*$Z9Ll)9c*-ghM6#7_Y+(koX6>H zZ~dJMFv0^2K_AT5s`}!*t<7mPBMk~@#Xyov+)Os_^Eysxk1qGK%yxdRN-TI`Sdb+SN>+tm3k-MLgEtCyp z?G2s{s%C#+5oCF#;(WQiQZ~@EI2{R)+w^J@G`t!I3AdBAcNMuJSfRto>d0Jj?xui%M`QVuzjHx& z&vCz$J+{_mQ~dao8oLq_)gFf+9O zrWC2fV$j(0`R#7{#jirwl3(REqhDc%1P%bn9KP7$e?dmp>cVNxx#&}(TjO!ZWA&$0YPDt@i6MojI{PZH{GHO>$&5eq+i3P?OtI)#T=D zySSueLLJ}1BQQfA{1(K!&&b*nIFS~!x%_u0EE&o`%I}t(#A{1za5giXt0t>AU1ZC8 zK+x5BdYjbxnRjkwq6F7sh*iBWSfrtL5WJUrrfS+hbsRz}eDm{INg*Gq7M?iXEGFe@ zx%a_Kulif5ncUr<5%cB_%r)H9ix@t#9J`VM5Ecc$hKX&$^k$_?wC;4ld*QkDbS1}S zZ>m%c>=56_|7qv^ZLxh4XaXq)HUoFay6W^Zk=&_=oBs5#Tmm?GcXxNbK~vzICwj5X zwPa5mqg+#C!^io?XH~XR(2FCY{Cp;r6qOQV{w2>wFFk`wn^{EO^}`aYa|&u|>P&&L zxw)_~vZ*0(ZlDbJgFzq?u)@3DI&lA(@UL}We-Dk7-LcKzgZI$8dbz)s(bMfuqbJEd zR^8>sZ1BgbW7*^82h&goufYt z#|oyU!5;61&ofUKw&VT7GbJ|&-hje1lA{-F)~m69itu)=G11|S**QNN*b!zjC<$8a zC*eGrZRQgYK%q~g9?QRul8I_EpZhBD)C-CNFdhKUcg!`R$K)2(8$c3;+s20BdLa%1 zpXN89i4h8$-;)YYS!mZD?boB0kperciTNUB)N*VX^sI~1&8Sb*Hpa%rwa5yaNm2^9 z?3;}X=dn}hkjG!0TvL1f^=Vwt$0DPmv`QTx3}^QLp1*z0tj#48<@~QTHPD|_b#@;2 zKzu&zZ!fDzrg`Y6j<7fpPq)3nPWT-orPs>k1I!m-g;@49KL|s(PDI4jey28|m$LiD z67RjSX&uiGUMM6B#hAMXMz-(o!@h`urDz5xD6XoKLt1rX4p{zEmX;QpUwH_7(gHqd z+}CA4Xdmf*ynTCf%Gnw#DlbtEmeDwLG=v)h}^-{1pf_;ZNlD_V!HL_0gY)QA4g4gaN&>xmw$< z@bZl3I3`&|+=e>Lne7$mJz->&yJ(t9x+ywAsEQ<2S-qlU$DY^bhPI)TV&M|KXm9rM zf2~)mn!CNT^B{X$CrWhO_LtFh?Q(A%=gxxxA7l;lC&a(YQ$8q9lcm;zgY1Jx8>9Va zrRd7~0e94f_C0Z_?JX*ce*Jw@>+5=zECnb~Byu(6gq=QsQa_wIkS@_12KuP%IC)X2 z*EQ|SmA5x%`%(3WbLb;(TtWr#lQ z$eU;y#!M0M^ixU`{q;6&?Cz}L8V`Xk@_2D+sSM8@9gFOz!7cB8!Ep4Pr#_@=UccoP zRs6;AQ(~@9?}KB>&Ye53au)NfCYA5-ZNueB*14>{gWtk}rPV~WFQDPWbsDF4&P{A= ztfsa|t=M!+%hyEi+`$4Jx)Tb%E-)h$FsmFK8Wd^pa~glNF_VPNdp^Gfw-~NuY;;N- z%Cy#?eSeV%;DSlANOf3G10RK`5f!`34hsEnYbe<%2EfP)YH@`+RT0_Q(|svT-@yP6 z{ZO*(@IE3k`un%zNHsjMb00U052!B%+PrDnqYODatq&eAr&*4Nef#!p5m|-RHFW`t zW6@t-E5RMfRbw8FTV-cw2ghPlo4Kysb6H$c5eVL~{b%~B{GOWZHllT~&X?gNArS_K zTh)r8#~b0$RiY*9&C2bN^F0%weYisRK6q?$ac3IY+Dci^C*Bd$JPjZ6C0>>UBSdBP zhD3Kjbv55u!MyZ4<9oKxE}Fn7eaFedau&+Wdh^BOsYe3^Mj*yjjZs+%xqP_$m#gIg zI6S>gJTfwBXiKpO(Ez23l?aXSu-oeFIMZuz^Q_%oLLXN;JQbDq4-@8d zJK~#1oHY~HsWhd&brru~cYQKcH?Vp4siqrShqXN=6YX57{-wqC-m3;EZ-u8px_#Qi z9P?>AN5>zBz1#Kebsw}eY9Wt+&^ppZ6DWkgt2Wz`hvXlP0{;ldq|>~s__|T+J#t_RY6-ul&*>wBT=iv#R_m`{c+RPA<(z1#S&5~dFw@}W%*w`15rx<`t zEWBHgsPBz!ZfzCrznM``h-T4B))RDrUQa!H{G#s)?@fe~(*66%&7D~|3SnU=Gu7BF z1O^H;l=4OVAL(2L$OSg(QnmDS_(8C`nS zE+2j2TD!eHY_Dr44Dy|wjzO$2OiVmh^$;*pxMaBRZRoP(k<62u#tRZGdi8z1+Xim= z$0k6X+S||h1_ltQyMMBcE;hYsXlU$z-#$kgpc1 zGBXKHe$3}nQQ?%?TMLTFJw$SrTLnWji&|uX_qJirh^=Ph0T#fZ>qicPh!iYSAYg%I ze%SH*wza26`8YcvS%mBj=yRhU3|WGub=h$QzK>ycH&+i#AhPBu{O*`^Qc_FVWM?k3 zDesdihkkgG2?gW*mHqIXhv#8_K|$#D=ik9`7IXC&Kxo>UMGpKiN+UeK`6FL2={}Gu zjLv7z@cEOPN60@L(%8B<(`BI0)eZlr{nEwN#q{n|m?cWP9A0PlAgX0vbd!&9dwoDy z*y>`294KExa!pUVNud=IYOJ!75;OJPIm4)`1&d<)IPK(&%!)-+(XW+~IUxhk%ad)@ zO`-YSE8k$=E9hljplt6#r7TqJ5hG|7-uBGc`tyUukT z2O!lm)xvliGG!nsJtm+(g4>_I2EV-jQ2&=vt6PTv2cQHMmb`l_%NEfrdWjkrM=w_q zWWQ{sOl)m!tNb2Wzl<& z?T+VLMET_)0>i?LCQC)TmXiJVO+?vP%nh;>m?guA2gaNoNNZ&D7w`Ch!^;=yzip4NQxyZ(P4tDtr)TTqb=Nzd7afcHW+vZ4Y|i^uc*}~Sp-~}qMxnZ< z#^L(nSQTpy6sY~)fhWaXF~L6QSWr-!bJcU?S9&a#gc}5SMJQ8?|F8uSu*%j|7IY=? zvU2BYu%|{%`d=mPu#G%c>|`;M-7fa73DPDmZ{^ zG3m_T7^K@h+5U*KwY5Dw3m2?<1v^+?IfyYd-koV)6;e| zI1zv?WScZD_rPpeWPX$@BKxzxQt82WqB2%E{kh1tU%u!R`v0yeJJ_gsS+@#wRO;%z266f)Gw5M}I>-6|~VA5Qv;YB93}cWtad`cC4hhdDscdtOvtSK#W9kRb{YUzm+JIxvmTW4@>#59YU>8fA1jJA+TlKVkbvC|cIS zCL!q^{jmuk!u;8yFb_|dNvGn6?CdkP+ z@!gdGYpD0=96;OUp5xs$IKUCH%m(eraAcYLsfae0ZA%}K%J6mej**j10!K!*^R@se z73M%!0*Zp!_Tml$Qg7_+)S<}c==Iv$=DIY0W+o;(s1qenPtx1Gm$Z)8%GR~_oMvVZ zm$s5StG7RWU;`CGxx~1}5pv7tu>AU=59O%iIM7h08lE0lfDIJQT*9RLai`m#|V zpc(`CX}9Op(rSBytf^sw8bKgpEw3_#W3$3H+K*Q1BffwKO9Mbp6awoR_yXap z{Yj<*!X!FqJbvY`hB%<`55gDAe0=GSU)#j9Zi~G))$w?3B|kLkPRe^*+`PuX2n3}$ zlFnrcd-`+=6%!MaFP&3D*H!$RJ++j%5EBn4BQ^C=6BbSsn+71kzf4CODnE*g_Z<4i z#E@ZPo;Yq_aG==l?*lJ|Tg;-pt<7$I=!LGXuCmjZspIl;8Zes)q@>Vqc->iWMd2;W zMU8()8->@WR?MudtvOQk-O|>`JxXq0gPN1KZ9H{UV8MnF)TQk5h#%|r}6pH zvhq}vl!JUv`h9S4lv9zr6=LL$wkO~F+$J6k^i>n5U!2HrXy_cliU^={UH=Hgg%i`0 zD)r**2zb-)$ua`KCZwg80rLUQwo<<47=<52bT1V_4HI*X=Os_oFj2GXE~O|nSMR#tW?j0OZ-+HE*z6Xw=?-#Vo!_FRwrz8ULhe)&p_9gF`de~-QXDZl!>xH{? zt4OW%M>aNvTXPMpa<58vK~cJ+9Y9i1&DU)HMk5bI&yQo}luiBcR^DMcrQgD$Dorm{Y7%b;~E zsp{mMXlWZ;T6Xp)Vb9ba?`o`p76?pX;!PoF8||B&nM`+n#&Gk(%GcTY(IGYC_`x^SDyfEx@SjfoxyeXrBB%ZHMgVx#No`%fU}bJ@VL0D403bjt6S&X zTFnZ;q30!5F>r!&HS%PEXIU2Q5Ac}=0a8^ZX=;LS?||u@;erGvDW9~1gF`NKM|hb+ z&?}OJ_g%=eB3wjlpK?A!~b8p)C*Do8AQ@|_s#|^y8I&E258#PnzogYG&vCsvR4_85p z&0F7bad1c%yNvrdoXOujUTA-~T3{92a3n4zm1M;g9-o>8G1?d@Y)9zb0@bp^ks|vR z^d1~Rm+RJ2Gw%->vSvN7xNZm7P#$y_0tR4|A%^JeA`fWnb}OImc*BgYUSI=m+(yP| z!Z3v2`{rG2ZzTC>nxa0i)m3wp0e0pow!QtLdO8Cl0>vK(fmy7Zvz=7oWL;2@-<=|; zn3(fkE|y6FhOw9bk3OFML}2hn?fxG9mZ-c+v5z?$qi7n`!2r+2jz}B1C8n)Ze!0oE$U+{cP1QXKnXmi!?)%k{D^^@X?jW#I>r| zTpHuK`ZbX|b7kYp_E~@(_5vUG+F-l28UxO;c#V~#ltyeO7e@v1EB!h*R6r`hZk_un z9%!s3JKxh2+2Sj72C1T`vXO}3we6Ai%T@EpR!U=NV$p3G{qYjCc}gLndte~yPo@~T ztTf}Sr=8i%dU#3s9Z1p9-A{H7kw@#pAs*h@`@6qKO4e7j?t|PzNULu&PTR>fo$xdT|Y7iw4Dx%V${cO)x)J`D(3wc5fMNUb>pT0Ag9K0{qb(N zYf?`P<50eq$v<2`!>0>A5SrGhSPYcai_=}7I(O9HMW{c~wO$^*<^K%!<1V~}!+Mzyc?msERJ_MMYLOp{_U4C197VVxyCz8AH z)(?Nd26v|=5Qnk1@4o1L4#aH+jl$on{nL*co%_!?O6>lA^*BH8^tf#$y^|4jbxDDg zznT%Jje6(pH70UIP?+ELeKjC3vV|!6JamF(C}If-DU+*$U9~n+Lbh+ef442tK;bGX zWHs>M`2zP&g=ZX$ofJrf@1&f0t}|eg3$^4Go%|Ac4n<;iDki79mKeM7AAOsgoZ>j^ zM;*yl_npVTMwFT{f(Dn}2Tuxw9(@Bz!FN~8d?KiFlGBU#w}%XC$myjIAE;H&JMqT$$PXtJ$!aBJW>*u+LbM>kSZWC$zdihA{-YV1^{2<^@W^zp>FGx z6G=joA@=tJ<<)j=?vI1N=*QG^nz#%=SnT^jOIMwhg`_82GzdJ1sxygQI2FcZ(D(-9 z8G|fhpHA_kyRlQt{oP3s$}X}zUZmmgGUw$3EVI&uaf!PQU~e)9=^bm5uM`Q~P&&-f zEFtBD$eW#)ifT4Eqt!W|M@)AIZj5@aO_nj5$;JU)fU0*rj&-*m3wWFd8NIGjxq>~E`Bjra#yz2ZC9Zp{Bv@SjETtL4TapIHS2TBXGZuRq~o62wV zafSDPfT)=~p=c1$;OAxyzDMjfb-HlgbneP&d;smh)BW`KBn_*9LgLAUS*_G@HVltm zIUq-c_MkJ@DPOxR%wY83SbBDtNa=-@l#VJH0xdYjllCBtF2t;*9=rT&4Eh{ z+pf@v7lH|h-tZCZmS*HA39sxf^sKzRgQ}m$FYflvT}8RuJK7)?DI*9UH~Co0vt6tV zoto%zgdX)A(lKz5O3``#W#x|oNsHQK{IvfQ4J)^riv~G3?|jLO8c>$QfJ43*BO-if z=|KsQIdQ|rj!T&Z9{Ve*nF=={K`}i^b$pVyTXVf@?6_w~QTFwkd9^jchq~Ps?1@DG z@}&g$nMG{p>f7V7L_1nrQ;fvWOUF|t|99+%jZ$Jo4TWE1C>HBhv7~T*s6Ux@l1~~8#@qsUR<_=_W|I5 z5=hC*9~*1`la7u+eg$02TAR0XY%JEv+eWr*&t1U<*!pAndWz!+GN8%8Yl2@*z66vI z^p+IRaqJG3>7fMZpV4mo@1o6xdIF2f%O7_ZyHu#@{`q=OP($w^b#H7D6$=YuroB7* zj&}n9lv2yOs8UgScfdEtzl1FRaiotXHNZGExI5k@TtQfQ^zH*d*H$mmm-6D}P2{rq zZX($fY>}fc|9-eINa&pcNh7m^=>MIj`%i)=<)646b>< zr@Z+;BJ6*T(nif>Bhf*fRQH^UUrp7tx+eJLe;qS&8$^`eM~217C`UZC5M7(Ra4L#V zFx;UM0(^bT78X-#|C9Z? zd%=$J&#f~5b30z=cKCDA zOogd77&Pv`ZUOk`4ukM*LIc%8xpv1Jl4^#L8DCr(8s~Y_Ty^r_i+QUo-Fg~mnx&># z$XES(&%0$1tVD0xd&IP`jdvmg(jRGYbIo2}5%_bu$ZMA*8*nG2hLWh1IOut}E1I{T zqZ5>4n(Zb>)T>spykO+bd@Imt%4`ce`Br+miK+^o6GcSyyH@6OF^A=aW#8fl^Wnf} zrtNfSA3vmlKd(wh(pk#jR%&$#n$8>ho!Ur^_BiEerjZHH8#Movs=zY7KFgNWV^9!? z{nAGx74X!seIivgUr0Em8kZeJgyy_OZA2p}PK7VDZpL7us}0^oEctSy9cYA&%Y;?r z_6m|y)t}Ji+}>dptpvNcFS=KSBB#Bm4Yr=TExf$FG%jU-<`xdw|2x7v#8g4_KGBAn zZd?%}eHrT#ZqcV&p#ewzNviF1+hi%H@8%-ljf_53po;i%)nHh^F9QDw2|Z+7J2%)p zd7rYwIiX&8cl%T7ixlu|LBSaEiH~+1a$4d;1l|s;qMm?5M+9Y(_Ln8iFk*Z2B$t*=G znD?BqIX>5O*qQr7XR-&3nSUBzrh^m-Avu5igI+16KYos3-P&^pR)NAzvEia;eo+s4 zm9~t~eXWe8{RgV2oT-Q7!hiip!WHi@j>>VQn&haYppe2eZ=UMLD-T@U8*g1ZV#!Y& z40@;4cR7X#EKkAQ4M}bHZzrYXiDw?}9Nv7U$z9|rU>0cFJF%`?pw3~^^pd^qyXPU% z&Cb2#+?dNSPT{?vfxJ~Zkyh0U;LcdqXc39Q^v`3VagLi(XbRT(`ia3 z!lgjm=Ppj@!*di}FY(J>HX!pu%I!xnV~@UBEvA(u!Hmwt)jgNLq6P?6e8#ptT1+Fd zB+}`BNOes(Y=r-m$eEXRsk-*q-S3p>VQ*7b?=|mGU-{iEzTTYMZU?INx#@<72>qI@ z4OQTKq@sK(3*{yqr@1F=4lV#!oO${NFKaafVtCozH^m;ZalwmU7PRswIj}FpsyhHC zM!zba3kf|woXR?Uiu*f!cjtHaX?MnDer3$)`5E3p7vw!`nkktO-j=x_9u+60Ji*5w zp~HGkO&5G*(hd)WA?qULFC97Q1W$kE=NtwIBj&x|W&F)l&`iZby*j%QAa0nA%B$l^ zs$-*))IdLuAkdhoNDj%$;Y3P$y2& z8!aD2=klzrSySjZdB@RTv^B@wc%~KRfmmthn{v$YzlY}y*%WA1nHt`brDj8r=8u=G8Ma%If0U?_fYebog$pe2!=&Y=ooCcU0~unxSIouTK4sv zwuDYQo+B!m!Ul@MKD+5oN3y#sKi|XVQcgWLtj)C9v*!i0^H1s0%g}S0TKl9)G`0<4 zkE&?p4F;)4GiOF09w;Cm98J6Vm5lcIsJs`MRN_2lw?;qg7*m&@CVmrVobj0n%yRrr zLBTxRs;ZnhGlhczBpP=k&h4V6;w(f|d#0&9aKjdB89YMa@<%p8X!q7uqAu-cLI_*z zn*!PQk8DT-1+s}EW`CH!S|z7Zd7JfEKIWs^chwIJR73>V_D}5n3}wwMAF0!;OJoOq zclYTNmZl}1c^e|hOHAs}y1=p#9m+k-r#0oDe6oHj#jDuw^XwPb8B9$HBdZ9S^5kmB z6LFrp>0U4aZy|U_lCUJAB(_|_aoBPpjOQ|ETJk&zZ{TN!6u)&a&4l%VxTg`V*`Q2* ziI>ER$-2vODr4T(h8?GukYE~|_7Z}2c0p%wAm)F8?)q+Y^_b6WO8o|tGm_CxUDe_z z)1+4HqU;LhV%o2Gb|`x1bdTmFiC|3iM$T5E+C zxYt-CCuT(^jxcGoVUW-g$slR+mNZlvn&I#K0FdXW_adEK4q|fO$(A}(vjF^~aPHfX9 z&ravs)ZceQ21;qY)G2t+$!Ed~ekS^z2geW7(28M%JAY7dKc@_v9k#o|SY_Zjg`!Mj z^H}?CCAXhd>252AbC|x-tJuKs%iQJx9Mjg776YQXDQcu{60#fsu~Wu9S) z;YR6b6jV0_UCw*5M2oU(eng7o3F=!zYkNm4;%I2cm!s(xf()sIN&$tkg;cx~{6e-s zlxz3ks#1g2pa-H=gxsH=NHd00x?CTkUA`gz(Ddq5SF5}8@9L^vAwT&{zLd-E;MMGp zu+=Z`;QRZ<8CX9Dgob_!Irz;g^k+!-qwdHE?5VWnmzdif|m4W}&0cw7PDYMD-l*%^HRU`K$u*r`WDm`n4>@eTWK#tx>Pw3`9({R__wEEp?lfCo=pFK;if7HCE((AL? zv>+2HYU2Lg)i3cwCJ=^79Rj3tH8$0Nr`#2)_K6`~e8A*+AYuS@3ISO_SuDtwJ znW?fRe}l5QA&=8SUJvhDGAf@hYEssblyqY^YJ!z*a{DTE78Z=QtsZ45&!la*n0`30 zpJ103Szj=2%FCKVZcdSyUT-UfMwv9+QHHZ$~{li;W^!(e+DEkn5b;>o!zpeg9_;uL;j9K z8q!#rbkhFkea*gj<}XZLU8Z8cDT72T?T^*^SUQuI&HG+WJdH=wD)!=zpgXb4{(0$Y z`t75DgiNbLY+cXK_c}NOJG<@v+Z+{d%i?iYcas|oE1#2!6g7|<8n^{*@ASzB z>-Ri)TX?`2`$4^pwbT9vM?25sKIg_nMMapJAiN%zod~ngq^xCq=Kgrd*6Y>Io1o+# zxfJrCz4TB)^afEy^Q=*nmemsD4N3(qB}=gfL^b}Xx}I3e69?%fRa~tj7fMFwv#9!A_O$&hFvt!o?<4cCM#h@_9=ETaID&86N1n=w^{*1$}7& zPjPzXjrD8f6>Nx(3-6~J3HKtlj1w=e@*hq^5(+JEUr^(<=FZztXCC_CrzS6L2x$r( zy-(fLA6~rAL2Mpzo#d*&W}==@Q2N z;9RrgFWFR?;up}rOsk-wrMFLBnP%nCz81+VOX-EK6X)plvSlHuetV?DcDHi5_4|?F zyQkZU;Y;tW5-nHFyeXKhahG@Ivd-(KJv>fm(Tjw`-o|&qoJh;as$_1jXbnWe#6)SpWGkB)xK6k77}Rk~WP$(rnaHkMj9ELO*E zrFq2FbVTtWWR)(eqh)kD+&h(%A} z;)C(ZfVFkK)bej1sD2q~w5t7vXL3qW3KVYohSEeoFw!{xmE+58UG#8zBw!9?N$g(y9s@AUsH$-F0@|Am4dd(?W{&qva(=w(D!HRLr11sps8k0 zm*=J6n#!J=$;8|Kd4QBxjLmQE>!-=AqsdJF`vAeDN9IpH(Go zX)-bP+jZH!cNebiPc=_ak#VSm6U1SqjKZ;KgAY7Py#&m|5%x~xOsVda1&N0iC=WFd zTae)%P1(wr55?)1!lY?AAt41CS|u*-S@&03;hdP&2AgII&==D?pLk619E`JwwnC%R z>Gm(wpQ!OG*_@V`o+T(;)O;F34KY_BFg>{V#Zk&A^0K4B)UWHqBTd=nnhX@eN=Zzl z8IB&Q#9%YEK3iSxbFOxk?_&d-NU71?N9>NA6m+4;rTG0T<6l@F-u|qtf@fC;);CAO zcdFWEIMqI1Yus(Xv028n`S6;OW-4*}Hz_-5MHT|HyRn%B=?7V~XL}IuIa^t7mw`dm zDwKr(DYGc?mYItiwOs~rd^XjD)Ai}I2*qZ!QGP_CV&RZ-eZ<;HLXFH;?V}91>M3gu zBvs*)77+!DPtVAGs$X|IJWa~eF?>69!XlTR(t7)ozCn2x5!^QV1oDlej}UTFoa4;D zxq9gwU0`ExxbS<>I7{uAx}D_yeH<(M!fC@w%}1Du3)j|9vipT+O3VxBtZUhh&jV+@ z)Ct*wL1#+I$Zir4x9?E?x<&Bu(MGwSY*RS1B5~7?ZbL0ZESJX0li#dNvCKpRDq3zm zheMZ{jlU|9;}`B*j4Mg72EOmJ?kWPa6IPi_?pUasOOK$AO!kJnC`%Wg;{=~$qy851 zod^*oz06HKL}DJ+rC{{2C+3(vMkSx+;>CSl8NHRvYrn;s(XlhhUx@HAGwi!BMZN#G zvSwtNY)2EVKD6TNF{2#DRDzUS^|WV)KR?7H-itZvQFGi2B6_Ar4%?O(W)dBO-@Mf& zL&s2vwfesFX*Kz5brnsh&GC(-VXt?PK9}99l;`0Kq8BhiUt+48D=?855@Oo!&CzT9 zi_%)Xx?j-&dJ!MVuY_=uu8W+&9FfzS2}d7;R4<{xl9(Hjc>5xajhDwRVk!3Qhq%43 z*T&sKPWfE79u6?W5;d+RkLUXA{jWslmX}*G?cXG0Nb8q=7qG`GYxV3#3UnX4*wd1G z!YqxY7E6!`5wDVF_o#b!6zv|3RGYJi1oT(W73fKQ6TEyJ^m>`IfNsBy4M9pZe}K7y zG_FGkm8*R(KYPu6(%yD-A-?NG%Dgju1vAom{GeC4cr>v9C;9 z%)nyn)z`4#$SEQ7`u#t8!Ew1o4DD{@IQX|ZRpW?!UD>fK1ErXz^63j>DzSdn*TuUy z(O92wkC>o*A)^mj9WnQU39{LJOAEt)6p7jssyOPyS0;ss;6nUYXqj)mi|$aIqTZ;i z4Gcq?jW~bS6Ojzp)wA+)d-&2bm2{qN+>l<%jygv^zV7ay@A`^JnM5eV7Kyp()a|kX zti(C*UQnaN#zrkpDatgup=!D0WS{ZAM_D+u4jRr4k2tcK!_MpN7sH0J}vMyh7V5oKzx^*J?ZT- zZ_oMtv)N1CdWT?UI&iWvqkfu;trwzg@Pn4bED-Cr1P8<8k5>v1jdcD#< zv!@rj`l&7$54&6)lqXzG*!SJcH3!G=3U3vKVih&;r7ka2mX_>TCwuyPxdeyXB%Phk zJN2nvok`&4(2;T7wz`U>S{mnKvDuT-X@sEd99-fEYGGYT%u#NJ&*Pr4F2&C-`E;C~ zT`fCd&UqM0g?~`Q=pympUtd3ITNq!?pU5&W}P{o{_?Z$TbmR|2FS=HZ;cZ5hu`Prjko0D;ur1NCI)}` zWAg{LG!_Rwp2ZGlz8TXL67JN?Jv1aL&h!(A#~#K`J1JYHh8W8+{dzfdXnBa9%84o2 z6q~>lf>?GfXl_CDHfpje$-R715qrGN68;)uiM#w>xmRJbbHUBkb>l3FNvuK%tz0& z|7xd9G%JSnJW>S46}C%yb<&&UG2#Ko!0k7!iBYVOC+(b~aN73TShhEPkETt!?Cq3f z{(H{&`~J!^j>h`-POK~D+8M5{+&Z6z=_hvuE{a)0czaE$wzJt}{JbFV{^pk5Ja&RB z*A^MgkEtf`*vH2S?GD3~Cow$6oG59&7en%;pDq~mMw?j$QlDiCr<=hSgJw}$5iyBm z=_?5n-zO?~ygsyg@l;S`B`i%QY;BYiRvS3p3p~M+p45KZP+*Ug2qc{vJRmpCJ*=Rc^SDucjY)gR0ju;uciO8JE2OfUr`4 zL2dwBWYp=M1qOAOV^|L^qJ1UQOSpwE@H>%R?JASTQ@cVlr8f%e6(VxD;0{^kN|h}} zk#`Lh+ni;-nLR={Rr<7l4NQ`;oLz_fRD>2T6peEc~&cQPsR z<>*X{%uM5%20cEwxG9iu_3n?U?x+5CY~n!``+BSmZsz%k=$HqswHUf0k4jWWM$MA6 zeoh?pmfb3#>5ZgY!luxWQ{nn8Pac(S16R!6VM1_McB#9ERT@wDS%p*nL|uX}{wefR zzyI?HseU`XI+BS*g%YUsW16?S#XmjYYYQ4!>9vJS;3T4aV(g+9UAfxge)_a7g|UJr zy}>GV$(lpPy*(44_ zLu8)MSdp)9-V$F*?If(JneAgmsu^-jm@v=eh?g_J!mhsfTWdvJ@#HqbTW6XE6KNg^ zwdW^^754CDittyF(z1EbNs^dCGw@8XU`znBKB@cXp29dA`Nx7Ogd(H^`oqHRlC0a$ zbk$@{6SBBIh1L`D5W&tq{Y}SWY|zSWGTcC(E9&Z%53{$Wr6*kUcH9X-apaZr6`#n3 zfqANX$NiaQ%S~bZXXqX84h?Le%U{yA@|pzMyhw`_NFR9fYPyfah+p@TUB#X4Z;0cP zuuY84jSDNJmZOnvrc|&6(MR=tu-)rSqK))^*yyrrzs!1Va9CWkFQ7wvQNmdLD$dH4 zBk!oBw)cw(uj`JQfxg#NO~&~_D0Yi|a*C7}4V#9r zR2q7E)l~|b(mzpiVp`DRN4GQEZLAlu`2HBTMC?{)<=-`{>Vha`lC(@1O^+9sbjy?W z;7y4w4H#sWtMOS;Zp8r>um|Z4CzdQzsJ*6CtDO<#*MFKG?sF7yOXVbDi`8B}y+_d0 zmB9q#4e#;O920L6+rN+>8taHOL+=fdu##r{xlop|WjWuf@cu3NF1#j$jO|=>pe6mD zh*c85MQXcWL*8U`qI8@3o?`cs<}b)*46yJlVAQt#rjzxzp{-nBy3*xK53|HZCjBpj z0|K7Lo8eH7ad4<#C;H)|FZ7PA5k_L+J;yaaseeYxgqq1>$(i&@`SnbKl={KrQf*Sr zOcujgDM8J_^|D#@7@4Cw160~8h1VTzd$DvcK2%Vb4~sR@GU4N9R#x?Xr@#M#;CsoX&N!rKlhX}? zkw+zY!}JhV&-7NMcy;^bO2ZSxCGR%UjfM>A_DqVt_R%secFN|QPhS4~8-xaWfdQL8 zol<>ONdDISQbgTOFwM51_m$%S#aA5GWjVVpHRr~vg#3p{Pb#LUK>f&9cG%QyX zVy)hIgr-c_G7h=*UluW^pap!w_G}(`cstz_i^vc|YVr{+E-@r+Fhp%2^>fSP9C8(B zjUbawm?GJ;J{L)Ud%drg2n+RUy8j>6-U2F)rR^3@AXu;LYcXyj4 zxVu}BKyY_=hrr+(7~BUNoPUyY-t*?%@2-E{b=R%6y1ROqX}Y>gp4xjqPua1!-8~1M zF1h>eV(MjG17aT+Yca=+9#&Ufr~pusSALIrc92sx_*dio400K5fG4xZc@g&pH+#J` zfSZ$~sJ>bt5WGEmTj{pVMYH_|_zB+T{GN62CM!3_>RXjp|`ai+%R^VZgu0dCeQ zm2!A!y~m_M@O$TeR=78&<98Q6Pux*C$5B--2@&hb3b|U3TjmU zaL5wD?3xoiI;P(yjQ`vT9>j13LWHlJZ!T}Wh@X+3fFt#DHLjJnm5WKNg!y4hQ}TUN z`;&LeG!~8Z7Cf!@vPK~ujR!o}*i%!P1>IIb3yDgEw&hI>|NIBAu#F-OgOu-&f9`AP zKV*k6Ww&CkfsT)!=3Yy?ZxipDa|?mtmvSNNPa+TD{gk6m+m9yDb5 z_PL#`D{>F*;b1cydFy2G+0RS(tweW0t7Fb?2s2XT{QR|=*_UhDaiP(b6wz2z{69#_ zn78a=^Q1_}vuSezR%q2`8dvvG$EO9yM{D}H4~Y|Ujc!3|Q7bvuA|&4TnBZigYYSmg zue5TzcR!>0PB}y>9;eA3?d}EkvfA6ni+zP#?k0K72?CCx7%Rs{ql3cBErSI>5?NRu z$tNoT>1U|F#xY91567&QAA@)uG0zgSUJ&41iv);7kctoYY7rl7kIxpHjcl~@CW>S= zkCmyy=B{-p2SA=Vmm8%7fkSf0ocnm`s1OEewO{eFVy0JWt2yFE$2Crxp8Uak%s&WG zu}pPQjx#KC+m^8f7W6i21if~)yE9`P7Dduw>-GuWHal5m0;rz?&f;N zGXukt>|(t~c51b)>@a*Ug!EQEb%dC%TuI_Q3hu7?-ud+(Y-qQIfeR~JZlb`_kCL#< z5l7qydc_{TMXTDg1&x@SK3>tUAQKFSCHlHL5QXdNY6^~yIK%$;sW>XYO-9i6`fi4j zvC%WCynLm1tW_5~isTShn(DK1Xoo|Rh|b6LKZ$JP2Eu8}b{8P4fOq5iZRdfln8%G< z+u`G{CWO=oohb1hOqvQA^DnwDuXn#ro;b6DmlIUD&Bg>?n`_@fGw;wogC#-Upg7|L zbGZK1+{P>`FWKiFSFLCadX!X|K3J%v;N8d`V4j+ zCE?`6(Uu6nkkJ$6K2t(mguRC5qx84Pytb?RkXlI*a3#YycGQ!5MM0Ri<$seKK@JyS zbHbj6fQU9CzftRY5{6jJ40Vzd{0g-APZC6l_a=5Yf?P~Ll=0F3$%UVud~p5vUtt0) zhZqq1?|^#jbg-{%JcX4b$P<~ORr!DP6#r|_;mJb{5GN&LWwrkvL^hebwPo5{;Lg?i z-Cf}CjRSW6pZu>QNAGqnTQZ7Hg3hmCwEv`-x7i#2j;(?g`c_d`;kNU8=aF)rBq&qq zNc)d_?@2@Ryrdy_4#$o@9gx56q*D!uB-u0g=PAH4QnW^h&D|b2KFK^2W);mOScbq^ z$YU0ZkL3>H=?g=Vy{pHy8;(DJF_4?xl=`94+()zNRL^*noUiGc0CrqdmS${0c8g zq4?a3(xfrPnm$W%q7hg3)gC0cp)!M>+{}$lFTFhwKKM?a072HXJ+nT8-cZYx?IV7< z(P@^fW%u+&1zRNN*P=2np zo)3oZ_9EY?-#}#$?7{^_Wv?RV$v@$7`mAJpt3KpVhkh) zC1c)VLl>WOH)Q=tan7M$F{IJLur-s8-q!*Xav`K?;NLPeN10Z=&;Au&nj$LrP!7wY zuveWT6R?*ZeBSXht&0j9s%Y44hdPIi7o0W!b$SO(J{m}&S}rt_zKW-ea}?I?86Whj_%mxD#kU>}X=y##TUPcW>wnkVDbB~f}EjzXwC zDCQ$8Z1$COr4|*g>rj%Pc!{#5#p28*>UGWp*YVn{*;~R9%)F{{!;2x=hyu8JVj2nP z<&~3-K5+MD+0qQ4T`mYwl`f%~0A4J*9{+rMzn~Zc(R`X`?c7@lZ#7LixiW{Gbz~qu zKzX+et3PTgr%J}r$xL{6@f}#@CS4n=^b$;XhV0zRx6;r1t$@8Pv?a1;f43R2h-$_x&qbtH!BxydvnL-sGQ2Y-`_iAz_sf%|B3DQvZz|+zud+PVl zJyd~Hk=#<%tHXUQPE|=>mfTZ>Y8{b`@y2SpJ!ayCXlDWah((kRYHMKS1>LQ1nyjk} zBS;&Ha!0`vn{-K2j-N?QV}xg_cvCw<+3cx13t{p~+bH^WP-JN=F16ErcTPdU9**vL z3YpS7R-SSXx_N9AnbQdyhM7d~AEC{nLTFF&@AYwuGdb9xlDUDNbStIYQ3Q5BN?W2! z??`eO@L>R1{1Z(&*~o9?g{jZ>F}PdZf;Dd)g#~M45KPleLS2vb)jYHaP@#^m%I@-2$E0=}erD&ELq)Ffnl0eghF7QrZ0MI?TMgiJ`1elk0@~Uu4eatt zzDDN^m7AM8eA@I#%(JEvV4iYeo0Qb%aX)o?DgnZB-8^(lNM>6Da3^hA5J^Y8mp1y< z;E(ZPn15Qvqn1DoCD!gB&*p7qTbp0!4v|u;KMJwxvzwGiaG(r2C#n78lA_8Gd!%%&%a$m;*F`ue*`bcprm3Os+HJ1K5mlx%-HF2OV zuV$E?(KO zA)!~puJ2vSQqKy8t~Pio8Bf&y9{EXUs0qh-)n8p(A9M69&8J$}k5KgpX%KJ*SWHbA zBmCw|4cx526-HpD5Lg@p$*51>!{jCXulc%&6gelZfqmcQv@B zhBq+pA4are$wJ+;XJ72~-P#>C8zPq{f~UDVe4m=<)jdxXlRMh>h1JtoG*~@tKY%?) zi@o+{$zkY?8w+eo8l#la&dw+J$yztTg{E=Q(1U#7OO};{rqxHRfUWw$;bh5*-tc*A za$ZNuMtTg_m#Uxzi^ni>2jl(#Y<)JPx@T2nlyT@!gXnHbdZ*Rcnu+aV(_o}1hdzdJ z=gqWO=3IAn;1M_`W}R4rL7;bg{h8x|1Fo%>Tt#v3C&O;yp)L~;ifeC?-kc-0uG{-X z=UUn7%=HDzOVg4_vlJYxofZNZ^Z9~3icgd0-S0t-bipN+Q0`eunNs3C4a;bRVc*Cr z-%QP(UET8S+tg8)muXMcO|j30OdK7Dzq?VBq3>(Bn&N}}b7e8>#@TgdEf}Qe0zbAd z&qZk@pXOcBl!G;ea}Dt3+e5YkE?w~dp%^o-IdYTP-1s2#FF7wRKX}gxs>%t8DIC$4 zH7wL{e~6Cpdew2wdjIAI!8!q9BW+zexx6++Of1vbFVnll$F9OFey!t?K0!zR>N|{& z;0OA=Ie3C+j;zIv3T=_;z6QTwYhApwz*0Jy*GT2J2@B3Vy7V`u!hY$x}`Xa&BMPbPqdvWdv|2^?_?rImNyZp)uu(+>_@ywh~? zO2?(`YD=i3`q)$kDox@W{TS-1hLfl|5aKkQF4E+;IfLo$W97m!JCR*7pC)N7OX_fz zF5T<$t%8Oc1NHMWb;OzSi4PKeGsPuybxo9fut8EW?=5USM=?@`PxG@jvZ!jQWR8PW zQI|Z>Ms_h&dHIeIDpOoHAeZvyRTdduK9g6_`9g2W?FJ*mBn>7b_dyb`Zd;bmW|FyO z)0^8^42VveOO%!3HBOvfUrlQF20j(UwkI zU;!*Fu?wo-cw_&4pY55F%g$|j=Eqvs`*YM27(ckl&BPk zCoZSRhX0!q(*Rk-DOLLgewBWf{Q2S1s#O1eNcoHFRt#wwj7cAeQ-E0+nnNM6X+B%P!&vq>%H-M z`nh);k$9JAc+u@@KtS}s%MFP#eOVBeu(um!xw@M@g;C=6{@*g?1`b6sUUN8SEkZ*$ za)U_bkAVva&#+DTx3w25W!E>cFGh^T0n{os+r<{i?ZGE)v7rw*$ejwsPwB4dT2D}) zKilWpMw@>Ee79iA;JS6Jh`mDTWb!q)&R?CYL&eJsmwUZHH0kw}5FDWPqr>4)1~ID&fdo@ZNdENwVR@k=>! z6=eM%4>nD^JsC#V{7o(qn|Go}ak0^xsIw`sprH7u4aF3Z;1 z-|DihJf<+ltMmyzWLg|l)z;Rfa&Y7zAD4=SDfPE?IWdNW?Nx_{O`I?l$bWvu0HO0S zxBTu$5SLMDoHE$8V`&TLiS-{XK;&%GH-gfn?}zjrb3|4MfJ6lfk9p^9Xy&Drh^&Gm zO}#Au0U(39}{mz#YJzJyzcy(s-(a|ljbxa6WwBjLh~B)fx$-X{y_W0b zt6pwo`bYYyzReht!^Ok4gg<=h41^l)=Y6YR5WppBeCqWkU3&NFQ`Ked;o7v~>2R zHED2KttmGxUN`=pRZ#em>9Zl2;5k;s1^ez3Vt}4efLFHSfI0`M+2&n_YzBMYPqAy_ zmyt+}jcKtx9{6b8>IgG*yF2>&Mx3SL|L2mU0~B>n`$pOs4HHM)wB6H0MuWq;t7 zcnC;&9Dg|@Ty|l~^8V_dToLKc@h99_RvzbCA>!M#zcBAl-QnK|O8r(>B$u;#A9^`A zOh>uMbV)jA*R2%F4A&?vw%ruv`FKHNN;kuPzGy3D^I+#QA= zcGC%OO6R?LX;<*~mVbr&PyW|u`B&bYFk}HzduRXtW^$yzlNHppvh9t?jkWY4u{O3$sjFhAFn)g-N%BJQm50vdl_^Nmr>c)4ij<_qj!$HaoQw{u(EEQ*+;$hVt&@{XzA11Jt-z9q%A zaZB#yNqsQ*GB#i;q+_}H?m@&(IB)~}iks0hRZsKi6f(Gf(6k^4k_OM+=A_W`pw)T% z?z2%#{5kJ8rh2uW5|w*37}a0xXpY22r;yq9_CfC$J~x@qZAmIU{$jS5&_>3+;BTn8Ly>Hy}vM&WiD*yX(UopFkCi4G}h##HdO` z90WG>&SEU!L>Di~RtOu>tR}ekI0Qv0F3evf^>YaR=kmXf1O$QK4~pV;`)t~XZMMul zE5>jPzV$4xe$rpT?nrERXU_SMuQVnf>E-PMp&8sh;)SW5HqSJKIcI#MV6Mei^Pn-; zOQQPg?|mJ>EqC1vUP9E4WiRi0y^Ko)xJLtGtuFZy*F!VjqtpHcBJ1np2P)*_=!^bi zl)EH{5#I%|8Cf?EaPnJ@4tI`gmek}uc!^@a^f))tsrjEx7SVS|1COxpaYw9`CV8*T zxnOt)aX_vnc}?qSNdfOu|AlbnA&F|cUXT`ExK(hZ;+sX9xt1Ru=@SY(zjbrFg2F_J zQ~V7B=B6S%nI!-hTb|JQHAP4|7^B_J@dUsGWfc-itPRWDN*Z6(!kvZyx|Vhm@ahwpc*1>2mym|lJIv79 zujXI*POMg9N{;i+W}#WHvZf~Koo|k({tn&nS7Bg#%ua#WsE)z7)w9j0zO(9%f`Ljm zrq-rYYCUDzce2Aamk-z6E=={;o=pL9M1_8&|D*9DDTVvdIyh!F1RFT`0{sW9Jw8^1{t|xt%xzk9YL4}URm2G zf?jWj2;Vu;5nB`I*|tu=TEycdJ!D6QlazPH0(~IK8zSP7p|fn7CEN(>TLDW_#=&&L zy^Hh`|7>aW|Kq$h4WAnD`9BpbL$;Xz>MQ~>@{o;LE-oAZKJ|H5km~MXxDC_u@u|C| z&ECn6U_gzIdlv8dH@%)AMj7mJA(tQN*GSzpU47OM!G+J^LJ02{_S z)5>PsIHVrn%VzsehVgygq71lx{`?u!mWut^{~1c&r%&T7iK(gRw@!Mk2fM%JGA*|Z zo~s)~IdtF9^Q;K)$M)O1w!Y49o%{!@wx`2{F!@C|1?Sv|mIzTl3r!Tc^MMaDI;-8) zuG;F^1ye_VkQybE96&(bkK|Juc9e}RA&j=b(-U~22IttFNB*k#zql-nP}LIUJcH1* zGdhg>*0wr_@jQ%|mMxa8P+UXno9dZ%Yf2&fEYSDtT*apXRZBdXb!Y1q^)_mDF`Dz; zY>0dLZ%>s5^f)8u!QRRIwkJ(TkLpJ!n{Ln)o5ta>Tp=pb#l=R`H_U{RJEP6%QzL(N z?^wG?$FH0DC!M9=U~IlQa{QT`K?y#dSkhXr9EG*R+C%{~Yg zgJgMaxkw?MVhaSE3CCo<6FHHu zm;}R0op8J;gPef9Ujp4o!so!p>o>q;HBOJd=$?R+DgdB+9dsk?* zq#VkjSQICofl`!4lAF`7&e_{0ICj>>!}Fil)%NcEjkPczd$lgDDwh3xY8OS4Iuv}o zdp7Ty=wovn=?@hl6&hnWL>F*4uDOOfB#9Tk29N^C- zwZ)jsFY?8(VV=Fme4puFcRI?*fVR;M|B?}z-AH{rHmfaW`Vxj8ijZ(5@m6pLu;>m_ z9fL-%(mGe(kK}JWt2->ww=z~#68z*t7%EkGN?ld(R-#38cTD`5%S!$&x+1clonxGo zWoW?_NG>1YQ|TIA^CXUj-Ro@q5Rs?l#>zO$K8jwWNQ{GCi55@Yr}DSE^>Pkc^&mULua7WlM@qe9}+!CH(Hm z_aSGMFrN|xZ1gJ9&bi1{2lZc? z%D|SF!DuasGh+Z2fX)x`hGKIE3IiAt1cIYNVPGZ+vE4B0JQ4k{ZJK9maFXib*OEe~ z$${EO0)bWB`UJ3gkL;iaaeWiX+_c)F^YPWe^VE2t=ev{&=Lgn(JL^|TO?{g~(=A6g z{O?h19OjiAJMM3}$4(LXYRl}b&XQxa->Rq}EUNZ8$0rtAx(b-0LFT7lFH*y74EA(& zniu{VsycoH(Pz|T$Oo>HNu{NAroqW__5d$UIGWGPk-1UanTJLvqepT>i6*i9en%(- zNH4IZ>~KKFd1usAXa^FrJaWy4uk+j1yFBA_iV&z6Q4U(IFc+@G?MxqUH15Mi1h^TV zU8gP8)!Xy>2v`qO^*s_E)fX8*tGvP)`DlHUj?bbG!F+amQI^&E%Xup<`cfkjL;v|( z_^XQlx^68C_w0`o_ni-wlwrE7=U20?Ybo$F5YCd)tTv@{m7ha=h2-e3>DZ-UYBtsS z^3UFVy7Xhl_aSEU&J|x$_v$tD5ySai%VdlJA-Djct`rp$T-wgIS?u}kOWX;_LBs(E zbyfR1vRP5s00w_=)0~2|9O3--Uh(+{uI*w}bxF4J0*pug$w_>q$V3H*MRU*E0SR&F z!%K#RVFV}-H=4pWO{_^2IIg^i4|qh^3&An38l||;y)SWO5na+Vdx)4m)}f&(@aHIa zeP!Ir5~R#?dP9^lC1Iwl>*LSyGQ~e*ek6Yqsigk51*n_*3!-{k?a6XRdpeh_@dCG>O#ZVlpzGi0I%9Fk^&b6D(( z%n#q}n7-8vCpH?BTz{JL)qSs~Vdh#KvZDD>Ec@DKh-0fUvxO6fxG`oao_GCuama9p zWx0qC8&%|b!~0q2Z$GQ<5V25UthVUtA`;p-wu5cs`T$IDRN_x3#g!5m%^cFWB>eC&* z3lUT`V4xG$r(p6xI6I^vPNZ8AX~;_cy5h!W88%p+G8_mz*}^V*(6HQ^Cl6{KLut6gh=Q0L*2Mj(bRk=(&$$k{iYd`VvX3>khSEMdL?vsn1amG zbMl_VVvg+jw6ZELoOknh$V$_>KD0mHxmUr~2DBjI>VP@i*peLsLQd`PISJY{d0V_h z@~1t-UXL^ClE;4pywvw~qm<1lGjhDDI^hZMp7fZhzh_4$Hr4q+?<%05`o`T^kZ4ks zwO|%g%g^q#PKBsFV_o;C0LsNSxUilcHtz|6%O}HO+7wW)zh$ju!eCUvuYipjRurB^ zZbIJXTe$;d(tnd67a|bk7j@RE^}WeNV}PLG-Q_yPu;4G_W0O-BT4LwU^*D_%x2Np< z&I``ol-w7G!pj1`e4hB0H*}w?NJPTw#x8NzOI$Hu*@YY)dIyAPXm20myQXLN&+ZD| zNp<)$myR?fIsP`yj;FdHONY1!t=);F_^>$ta4?bXLKBkJhQPtfH3kZK!GP5A7=G)t ze@zC3nH7B}0g-^IoV$Ja(Jil?CO5TdRZi6WTb8_drE3e61emubu;|P9WuF1P{93|+ z3Vcx=Rd>|HhrT+uD45{mQK{lkK9Tpbnz`2hMi=gqRO-?=swc?}|){`k<8fwm9B@A5Ha47E1aYV8H>1e#0E=Bk_o zwAN`=s$Dn;K4uhs4``SED2|l?b0!5IA#=U-pi;+(X{d4H>MZ-!(m8w2e3#;b2-9j& z;EJ9P@+4L_uhVUhlVo#_W>wX~cwtfu9@w06-2`r=%~ngZVe(mw>{5X_wB%S!?hk6E zN+j�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 literal 0 HcmV?d00001 diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/assets/operations.png b/i18n/ko/docusaurus-plugin-content-docs/current/assets/operations.png new file mode 100644 index 0000000000000000000000000000000000000000..80f6f7998d8189377f2528cdbf0d941c32d4449a GIT binary patch literal 25098 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 Vm&BX6s0aJg=;;{Wtk8B!_+M3sL<#@^ literal 0 HcmV?d00001 diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/assets/pivot-main.png b/i18n/ko/docusaurus-plugin-content-docs/current/assets/pivot-main.png new file mode 100644 index 0000000000000000000000000000000000000000..5eaa9537ccd2c169f921a0fe89b45aff99151fe7 GIT binary patch literal 21456 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

Q@ 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

$UM&EJ)%pLxRgTeLt8D3 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

LIwaKDj7?dc3$`~5t6!zH#l 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

mJYTQe$*9xVk>(RR7L)J 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 v + ` (${states[v]})`, + } + }, + fields, + data, + config: { + rows: ["state", "product_type"], + columns: [], + values: [ + { + field: "profit", + method: "sum" + }, + { + field: "sales", + method: "sum" + }, + // 다른 값들 + ], + }, + fields, +}); +~~~ + +### template 헬퍼를 통해 템플릿 추가 {#adding-a-template-via-the-template-helper} + +본문 셀에 HTML 콘텐츠를 삽입하려면 [`pivot.template`](api/helpers/template.md) 헬퍼를 사용하여 결과를 열 객체의 `cell` 속성에 할당합니다. [`api.intercept`](api/internal/intercept-method.md) 메서드로 [`render-table`](api/events/render-table-event.md) 이벤트를 가로채어 테이블이 렌더링되기 직전에 템플릿을 적용합니다. + +아래 예제는 필드(`id`, `user_score`)에 따라 본문 셀에 아이콘(별 또는 깃발)을 추가합니다: + +~~~js +function cellTemplate(value, method, row, column) { + const field = column.fields ? column.fields[row.$level] : column.field; + + if (field === "id") { + return idTemplate(value); + } + + if (field === "user_score") { + return scoreTemplate(value); + } + + return value; +} + +function idTemplate(value) { + const name = value?.toString().split("-")[0]; + return ` ${value}`; +} + +function scoreTemplate(value) { + return ` ${value}`; +} + +widget.api.intercept("render-table", ({ config: tableConfig }) => { + tableConfig.columns = tableConfig.columns.map((c) => { + if (c.area === "rows") { + // "rows" 영역 열의 셀에 템플릿을 적용합니다 + c.cell = pivot.template(({ value, method, row, column }) => cellTemplate(value, method, row, column)); + } + return c; + }); +}); +~~~ + +## 헤더에 템플릿 적용 {#applying-templates-to-headers} + +### headerShape를 통해 템플릿 추가 {#add-templates-via-headershape} + +헤더의 텍스트 형식을 제어하려면 [`headerShape`](api/config/headershape-property.md) 속성의 `template` 파라미터를 사용합니다. 이 파라미터는 다음 역할을 하는 함수입니다: + +- 필드 레이블, ID, 서브레이블(메서드 이름, 있는 경우)을 받습니다 +- 처리된 값을 반환합니다 + +기본 템플릿은 다음과 같습니다: + +~~~js +template: (label, id, subLabel) => + label + (subLabel ? ` (${subLabel})` : "") +~~~ + +사용자 정의 템플릿이 없으면 `values` 영역 필드는 레이블과 메서드를 표시하고(예: `Oil(count)`), 다른 영역 필드는 `label` 값을 표시합니다. [`predicates`](api/config/predicates-property.md) 템플릿은 `headerShape` 템플릿을 재정의합니다. + +아래 예제는 헤더 텍스트를 소문자로 변환하여 `profit (sum)`과 같은 레이블을 생성합니다: + +~~~jsx {3-6} +new pivot.Pivot("#pivot", { + data, + headerShape: { + // 헤더 텍스트에 대한 사용자 정의 템플릿 + template: (label, id, subLabel) => (label + (subLabel ? ` (${subLabel})` : "")).toLowerCase(), + }, + config: { + rows: ["state", "product_type"], + columns: [], + values: [ + { + field: "profit", + method: "sum" + }, + { + field: "sales", + method: "sum" + }, + // 다른 값들 + ], + }, + fields, +}); +~~~ + +### template 헬퍼를 통해 템플릿 추가 {#add-templates-via-the-template-helper} + +헤더 셀에 HTML 콘텐츠를 삽입하려면 [`pivot.template`](api/helpers/template.md) 헬퍼를 사용하여 결과를 헤더 셀 객체의 `cell` 속성에 할당합니다. [`api.intercept`](api/internal/intercept-method.md) 메서드로 [`render-table`](api/events/render-table-event.md) 이벤트를 가로채어 테이블이 렌더링되기 직전에 템플릿을 적용합니다. + +아래 예제는 다음에 아이콘을 추가합니다: + +- 필드 이름에 따른 헤더 레이블(예: `id`에는 지구 아이콘) +- 셀 값에 따른 열 헤더(`status` 값에 따른 색상 화살표 표시기) + +~~~jsx +function rowsHeaderTemplate(value, field) { + let icon = ""; + if (field === "id") icon = ""; + if (field === "user_score") icon = ""; + return `${value} ${icon}`; +} + +function statusTemplate(value) { + let icon = ""; + if (value === "Up") icon = ""; + if (value === "Down") icon = ""; + return `${value} ${icon}`; +} + +widget.api.intercept("render-table", ({ config: tableConfig }) => { + tableConfig.columns = tableConfig.columns.map((c) => { + if (c.area === "rows") { + // "rows" 영역 열의 첫 번째 헤더 행에 템플릿을 적용합니다 + c.header[0].cell = pivot.template(({ value, field }) => rowsHeaderTemplate(value, field)); + } else { + // "status" 필드의 값을 표시하는 헤더 셀 + const headerCell = c.header.find((h) => h.field === "status"); + if (headerCell) { + headerCell.cell = pivot.template(({ value }) => statusTemplate(value)); + } + } + return c; + }); +}); +~~~ + +## 열 축소 활성화 {#make-columns-collapsible} + +공유 헤더 아래의 열을 사용자가 축소하고 펼칠 수 있도록 하려면 [`headerShape`](api/config/headershape-property.md) 속성의 `collapsible` 파라미터를 `true`로 설정합니다. + +다음 코드 스니펫은 헤더 열을 축소 가능하도록 활성화합니다: + +~~~jsx {4-6} +const table = new pivot.Pivot("#root", { + fields, + data, + headerShape: { + collapsible: true, + }, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + } +}); +~~~ + +## 열 고정 {#freezing-columns} + +나머지 테이블이 스크롤될 때 왼쪽 또는 오른쪽 열이 표시되도록 고정합니다. [`tableShape`](api/config/tableshape-property.md) 속성의 `split` 파라미터를 사용하여 `left` 또는 `right`를 `true`로 설정합니다. + +### 왼쪽에 열 고정 {#freeze-columns-on-the-left} + +`split.left`가 `true`이면, 고정된 열 수는 [`config`](api/config/config-property.md) 속성의 `rows` 필드 수와 같습니다. 트리 모드에서는 `rows` 필드 수에 관계없이 열이 하나만 고정됩니다. + +다음 코드 스니펫은 왼쪽에 열 하나를 고정합니다(`rows` 필드가 하나 정의된 경우): + +~~~jsx {19} +const table = new pivot.Pivot("#root", { + fields, + data, + config: { + rows: ["studio"], + columns: ["genre"], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + }, + tableShape: { + split: {left: true } + } +}); +~~~ + +사용자 정의 분할 수를 설정하려면 [`render-table`](api/events/render-table-event.md) 이벤트를 수신하여 `tableConfig.split`을 재정의합니다. colspan이 있는 열은 분할하지 마세요. + +다음 코드 스니펫은 모든 `rows` 열과 `values` 필드 수의 두 배만큼 왼쪽에 고정합니다: + +~~~jsx {19-26} +const table = new pivot.Pivot("#root", { + fields, + data, + config: { + rows: ["continent", "name"], + columns: ["year"], + values: [ + { + field: "oil", + method: "sum" + }, + { + field: "oil", + method: "count" + } + ] + } +}); +table.api.on("render-table", ({ config: tableConfig }) => { + const { config } = table.api.getState(); + + tableConfig.split = { + left: config.rows.length + config.values.length * 2 + }; +}); +~~~ + +### 오른쪽에 열 고정 {#freezing-columns-on-the-right} + +`split.right`를 `true`로 설정하면 합계 열이 오른쪽에 고정됩니다. + +다음 코드 스니펫은 오른쪽에 합계 열을 고정합니다: + +~~~jsx {4-7} +const widget = new pivot.Pivot("#pivot", { + fields, + data: dataset, + tableShape:{ + split: {right: true}, + totalColumn: true, + }, + config: { + rows: ["hobbies"], + columns: ["relationship_status"], + values: [ + { + field: "age", + method: "min" + }, + { + field: "age", + method: "max" + } + ] + } +}); +~~~ + +오른쪽에 사용자 정의 수의 열을 고정하려면 [`render-table`](api/events/render-table-event.md) 이벤트를 수신하여 `tableConfig.split`을 재정의합니다. colspan이 있는 열은 분할하지 마세요. + +다음 코드 스니펫은 `values` 필드 수만큼 오른쪽에 열을 고정합니다: + +~~~jsx {20-25} +const widget = new pivot.Pivot("#pivot", { + fields, + data: dataset, + config: { + rows: ["hobbies"], + columns: ["relationship_status"], + values: [ + { + field: "age", + method: "min" + }, + { + field: "age", + method: "max" + } + ] + } +}); + +widget.api.on("render-table", ({ config: tableConfig }) => { + const { config } = widget.api.getState(); + tableConfig.split = { + right: config.values.length, + } +}) +~~~ + +## 열 정렬 {#sort-in-columns} + +UI에서의 정렬은 기본적으로 활성화되어 있으며, 사용자가 열 헤더를 클릭하면 정렬됩니다. 비활성화하려면 [`columnShape`](api/config/columnshape-property.md) 속성의 `sort` 파라미터를 `false`로 설정합니다. + +다음 코드 스니펫은 UI 정렬을 비활성화합니다: + +~~~jsx {19} +const table = new pivot.Pivot("#root", { + fields, + data, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + }, + columnShape: { + sort: false + } +}); +~~~ + +기본 정렬, 사용자 정의 비교자, 런타임 업데이트에 대한 자세한 내용은 [데이터 정렬](guides/working-with-data.md#sorting-data)을 참조하세요. + +## 트리 모드 활성화 {#enabling-the-tree-mode} + +트리 모드는 확장 가능한 행으로 데이터를 계층적으로 표시합니다. [`tableShape`](api/config/tableshape-property.md) 속성의 `tree` 파라미터를 `true`(기본값 `false`)로 설정합니다. [`config`](api/config/config-property.md)의 `rows` 배열에서 첫 번째 필드가 상위 행이 됩니다. + +다음 코드 스니펫은 `studio`를 상위로, `genre`를 중첩 행으로 하는 트리 모드를 활성화합니다: + +~~~jsx {3} +const table = new pivot.Pivot("#root", { + tableShape: { + tree: true + }, + fields, + data: dataset, + config: { + rows: ["studio", "genre"], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + }, + { + field: "episodes", + method: "count" + }, + { + field: "rank", + method: "min" + }, + { + field: "members", + method: "max" + } + ] + } +}); +~~~ + +## 모든 행 펼치기 또는 축소하기 {#expandingcollapsing-all-rows} + +모든 행을 프로그래밍 방식으로 펼치거나 축소하려면 [`tableShape`](api/config/tableshape-property.md) 속성을 통해 트리 모드를 활성화합니다. 그런 다음 [`getTable`](api/methods/gettable-method.md) 메서드로 Table 위젯 인스턴스에 접근하고, Table의 `api.exec` 메서드를 통해 [`open-row`](api/table/open-row.md) 또는 [`close-row`](api/table/close-row.md) 이벤트를 트리거합니다. + +아래 예제는 트리 모드에서 모든 분기를 펼치거나 축소하는 "모두 열기"와 "모두 닫기" 버튼을 렌더링합니다: + +~~~jsx +const table = new pivot.Pivot("#root", { + tableShape: { + tree: true + }, + fields, + data: dataset, + config: { + rows: ["type", "studio"], + columns: [], + values: [ + { + field: "score", + method: "max" + }, + { + field: "rank", + method: "min" + }, + { + field: "members", + method: "sum" + }, + { + field: "episodes", + method: "count" + } + ] + } +}); + +const api = table.api; +const tableInstance = api.getTable(); +// 렌더링 시 모든 테이블 분기를 닫힌 상태로 유지합니다 +api.intercept("render-table", (ev) => { + ev.config.data.forEach((r) => (r.open = false)); + + // 테이블 렌더링을 방지하려면 여기서 false를 반환합니다 + // return false; +}); + +function openAll() { + tableInstance.exec("open-row", { id: 0, nested: true }); +} + +function closeAll() { + tableInstance.exec("close-row", { id: 0, nested: true }); +} + +const openAllButton = document.createElement("button"); +openAllButton.addEventListener("click", openAll); +openAllButton.textContent = "Open all"; + +const closeAllButton = document.createElement("button"); +closeAllButton.addEventListener("click", closeAll); +closeAllButton.textContent = "Close all"; + +document.body.appendChild(openAllButton); +document.body.appendChild(closeAllButton); +~~~ + +## 헤더 텍스트 방향 변경 {#change-header-text-orientation} + +헤더 텍스트를 가로에서 세로로 회전하려면 [`headerShape`](api/config/headershape-property.md) 속성의 `vertical` 파라미터를 `true`로 설정합니다. + +다음 코드 스니펫은 헤더 텍스트를 세로로 렌더링합니다: + +~~~jsx {4-6} +const table = new pivot.Pivot("#root", { + fields, + data, + headerShape: { + vertical: true + }, + config: { + rows: ["studio"], + columns: ["type"], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + } +}); +~~~ + +## 구성 패널 표시 여부 제어 {#controlling-visibility-of-configuration-panel} + +구성 패널은 기본적으로 표시됩니다. 사용자는 **설정 숨기기** / **설정 표시** 버튼으로 패널을 토글할 수 있습니다. [`configPanel`](api/config/configpanel-property.md) 속성, [`show-config-panel`](api/events/show-config-panel-event.md) 이벤트, 또는 [`showConfigPanel`](api/methods/showconfigpanel-method.md) 메서드를 통해 패널을 프로그래밍 방식으로 제어합니다. + +### 구성 패널 숨기기 {#hide-the-configuration-panel} + +초기화 시 패널을 숨기려면 [`configPanel`](api/config/configpanel-property.md) 속성을 `false`로 설정합니다. + +다음 코드 스니펫은 패널이 숨겨진 상태로 Pivot을 초기화합니다: + +~~~jsx +// 초기화 시 구성 패널이 숨겨집니다 +const table = new pivot.Pivot("#root", { + fields, + data: dataset, + configPanel: false, + config: { + rows: ["hobbies"], + columns: ["relationship_status"], + values: [ + { + field: "age", + method: "min" + }, + { + field: "age", + method: "max" + } + ] + } +}); +~~~ + +런타임에 패널을 토글하려면 [`api.exec`](api/internal/exec-method.md) 메서드로 [`show-config-panel`](api/events/show-config-panel-event.md) 이벤트를 트리거하고 `mode` 파라미터를 `false`로 설정합니다. + +다음 코드 스니펫은 초기화 후 패널을 숨깁니다: + +~~~jsx {19-22} +const table = new pivot.Pivot("#root", { + fields, + data, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + } +}); +// 구성 패널을 숨깁니다 +table.api.exec("show-config-panel", { + mode: false +}); +~~~ + +### 기본 토글 비활성화 {#disable-the-default-toggling} + +기본 토글 버튼을 완전히 차단하려면 [`api.intercept`](api/internal/intercept-method.md) 메서드로 [`show-config-panel`](api/events/show-config-panel-event.md) 이벤트를 가로채고 `false`를 반환합니다. + +다음 코드 스니펫은 토글 버튼을 비활성화합니다: + +~~~jsx {20-22} +const table = new pivot.Pivot("#root", { + fields, + data, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + } +}); + +table.api.intercept("show-config-panel", () => { + return false; +}); +~~~ + +대안 API로는 [`showConfigPanel`](api/methods/showconfigpanel-method.md) 메서드를 사용합니다. + +### 패널에서 필드 작업 {#actions-with-fields-in-the-panel} + +구성 패널은 다음 필드 작업을 지원합니다: + +- [`add-field`](api/events/add-field-event.md) — 영역에 필드를 추가합니다 +- [`delete-field`](api/events/delete-field-event.md) — 영역에서 필드를 제거합니다 +- [`update-field`](api/events/update-field-event.md) — 필드의 메서드 또는 설정을 업데이트합니다 +- [`move-field`](api/events/move-field-event.md) — 영역 내 필드의 순서를 변경합니다 + +**관련 샘플:** +- [Pivot 2. 테이블 및 헤더 셀에 텍스트 템플릿 추가](https://snippet.dhtmlx.com/n9ylp6b2) +- [Pivot 2. 사용자 정의 고정(fixed) 열 (원하는 수)](https://snippet.dhtmlx.com/53erlmgp) +- [Pivot 2. 모든 행 펼치기 및 축소하기](https://snippet.dhtmlx.com/i4mi6ejn) +- [Pivot 2. 왼쪽 및 오른쪽에 고정(fixed) 열](https://snippet.dhtmlx.com/lahf729o) +- [Pivot 2. 정렬](https://snippet.dhtmlx.com/j7vtief6) diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/guides/exporting-data.md b/i18n/ko/docusaurus-plugin-content-docs/current/guides/exporting-data.md new file mode 100644 index 0000000..06407b9 --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/guides/exporting-data.md @@ -0,0 +1,45 @@ +--- +sidebar_label: 데이터 내보내기 +title: 데이터 내보내기 +description: DHTMLX JavaScript Pivot 라이브러리 문서에서 데이터를 내보내는 방법을 살펴볼 수 있습니다. 개발자 가이드와 API 레퍼런스를 참고하고, 코드 예제와 라이브 데모를 체험해 보세요. DHTMLX Pivot 30일 무료 평가판도 다운로드할 수 있습니다. +--- + +# 데이터 내보내기 {#exporting-data} + +Pivot은 내부 Table 위젯을 통해 테이블 데이터를 XLSX 또는 CSV 형식으로 내보냅니다. [`getTable`](api/methods/gettable-method.md) 메서드로 Table 인스턴스에 접근한 후, Table의 [`api.exec`](api/internal/exec-method.md) 메서드로 [`export`](api/table/export.md) 이벤트를 실행합니다. + +아래 예제는 Table 인스턴스에 접근하여 CSV 및 XLSX 형식으로 `export` 이벤트를 실행하는 방법을 보여줍니다: + +~~~jsx +const widget = new pivot.Pivot("#root", { /* settings */ }); + +widget.getTable().exec("export", { + options: { + format: "csv", + cols: ";" + } +}); + +widget.getTable().exec("export", { + options: { + format: "xlsx", + fileName: "My Report", + sheetName: "Quarter 1" + } +}); +~~~ + +:::tip +[`getTable`](api/methods/gettable-method.md) 메서드는 선택적 `wait` boolean 파라미터를 받습니다. `true`를 전달하면 Table API가 사용 가능해질 때 resolve되는 promise를 반환합니다. Pivot 초기화 중에 Table API가 준비되어야 할 때 유용합니다. +::: + +## 예제 {#example} + +아래 스니펫은 데이터를 내보내는 방법을 보여줍니다: + + + +**관련 문서**: + +- [날짜 형식 지정](guides/localization.md#date-formatting) +- [`export`](api/table/export.md) diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/guides/initialization.md b/i18n/ko/docusaurus-plugin-content-docs/current/guides/initialization.md new file mode 100644 index 0000000..e1109a1 --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/guides/initialization.md @@ -0,0 +1,86 @@ +--- +sidebar_label: 초기화 +title: 초기화 +description: DHTMLX JavaScript Pivot 라이브러리 문서에서 초기화에 대해 알아볼 수 있습니다. 개발자 가이드와 API 레퍼런스를 살펴보고, 코드 예제와 라이브 데모를 체험해 보세요. DHTMLX Pivot의 무료 30일 평가판도 다운로드할 수 있습니다. +--- + +# 초기화 {#initialization} + +이 가이드는 페이지에 Pivot을 생성하고 애플리케이션에 Pivot 테이블 기능을 추가하는 방법을 설명합니다. 다음 단계를 따라 사용 가능한 컴포넌트를 준비하세요: + +1. [페이지에 Pivot 소스 파일 포함하기](#include-source-files). +2. [Pivot을 위한 컨테이너 생성하기](#create-a-container). +3. [생성자로 Pivot 초기화하기](#initialize-pivot). + +## 소스 파일 포함 {#include-source-files} + +Pivot 앱은 페이지에 두 개의 소스 파일이 필요합니다. 패키지 다운로드 방법은 [패키지 다운로드](how-to-start.md#step-1-downloading-and-installing-packages)를 참조하세요. + +다음 파일을 포함하세요: + +- *pivot.js* +- *pivot.css* + +소스 파일에 대한 올바른 상대 경로를 설정하세요: + +~~~html title="index.html" + + +~~~ + +## 컨테이너 생성 {#create-a-container} + +Pivot은 HTML 컨테이너 요소에 렌더링됩니다. 컨테이너를 추가하고 ID를 지정하세요. 예를 들어 *"root"*: + +~~~html title="index.html" +

+~~~ + +## Pivot 초기화 {#initialize-pivot} + +`pivot.Pivot` 생성자는 두 개의 매개변수를 받습니다: + +- HTML 컨테이너의 ID +- 구성 속성이 담긴 객체 + +다음 코드 스니펫은 초기 필드, 데이터, 구조를 포함한 Pivot 인스턴스를 *"root"* 컨테이너에 생성합니다: + +~~~jsx +// Pivot 생성 +const table = new pivot.Pivot("#root", { + // 구성 속성 + fields, + data, + config: { + rows: ["studio", "genre"], + columns: ["title"], + values: [ + { + field: "score", + method: "max" + } + ] + } +}); +~~~ + +생성자는 Pivot 인스턴스를 반환합니다. 반환된 인스턴스에서 API 메서드를 호출하세요: + +- [`getTable`](api/methods/gettable-method.md) — 기반 Table 위젯 인스턴스에 접근합니다 +- [`setConfig`](api/methods/setconfig-method.md) — 현재 Pivot 구성을 업데이트합니다 +- [`setLocale`](api/methods/setlocale-method.md) — Pivot에 새 로케일을 적용합니다 +- [`showConfigPanel`](api/methods/showconfigpanel-method.md) — 구성 패널을 표시하거나 숨깁니다 + +## 구성 속성 {#configuration-properties} + +Pivot 생성자는 데이터, 레이아웃, 동작을 제어하는 구성 속성이 담긴 객체를 받습니다. + +:::info +Pivot을 구성하기 위한 전체 속성 목록은 [속성 개요](api/overview/properties-overview.md)를 참조하세요. +::: + +## 예제 {#example} + +아래 스니펫은 초기 데이터로 Pivot을 초기화합니다: + + diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/guides/integration-with-angular.md b/i18n/ko/docusaurus-plugin-content-docs/current/guides/integration-with-angular.md new file mode 100644 index 0000000..30c198e --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/guides/integration-with-angular.md @@ -0,0 +1,325 @@ +--- +sidebar_label: Angular와의 통합 +title: Angular와의 통합 +description: DHTMLX JavaScript Pivot 라이브러리 문서에서 Angular와의 통합에 대해 알아볼 수 있습니다. 개발자 가이드와 API 참조를 살펴보고, 코드 예제와 라이브 데모를 체험해 보세요. DHTMLX Pivot의 30일 무료 평가판도 다운로드할 수 있습니다. +--- + +# Angular와의 통합 {#integration-with-angular} + +:::tip +**Angular**의 기본 개념과 패턴에 익숙하다고 가정합니다. 복습이 필요하다면 [**Angular 문서**](https://v17.angular.io/docs)를 참조하세요. +::: + +DHTMLX Pivot은 일반 컴포넌트로서 **Angular**와 통합됩니다. 완전한 동작 예제는 [**GitHub의 Angular Pivot 데모**](https://github.com/DHTMLX/angular-pivot-demo)를 참조하세요. + +## 프로젝트 생성 {#create-a-project} + +:::info +시작하기 전에 [**Angular CLI**](https://v1.angular.io/cli)와 [**Node.js**](https://nodejs.org/en/)를 설치하세요. +::: + +다음 명령어로 *my-angular-pivot-app*이라는 새 Angular 프로젝트를 생성합니다: + +~~~bash +ng new my-angular-pivot-app +~~~ + +:::note +Angular CLI의 안내에 따라 서버 사이드 렌더링(SSR)과 정적 사이트 생성(SSG/Prerendering)을 비활성화하세요 — 이 가이드는 클라이언트 렌더링 앱을 기준으로 합니다. +::: + +명령어를 실행하면 필요한 모든 도구가 설치됩니다. 추가 명령어는 필요하지 않습니다. + +### 의존성 설치 {#install-dependencies} + +새 프로젝트 디렉토리로 이동합니다: + +~~~bash +cd my-angular-pivot-app +~~~ + +[**yarn**](https://yarnpkg.com/) 패키지 매니저로 의존성을 설치하고 개발 서버를 시작합니다: + +~~~bash +yarn +yarn start # 또는: yarn dev +~~~ + +앱이 로컬 포트(예: `http://localhost:3000`)에서 실행됩니다. + +## Pivot 생성 {#create-pivot} + +프로젝트에 Pivot 패키지를 추가한 후, Angular 컴포넌트로 Pivot을 감쌉니다. + +### 1단계. 패키지 설치 {#step-1-install-the-package} + +[**Pivot 체험판 패키지**](how-to-start.md#installing-trial-pivot-via-npm-or-yarn)를 다운로드하고 README의 단계를 따르세요. Pivot 체험판 패키지는 30일간 유효합니다. + +### 2단계. 컴포넌트 생성 {#step-2-create-the-component} + +Pivot을 마운트하는 Angular 컴포넌트를 생성합니다. *src/app/* 아래에 *pivot* 폴더를 추가하고 *src/app/pivot/pivot.component.ts*를 생성합니다. 그런 다음 아래 단계를 따르세요: + +#### 소스 파일 가져오기 {#import-source-files} + +*src/app/pivot/pivot.component.ts*를 열고 Pivot 패키지를 가져옵니다. 가져오기 경로는 패키지 버전에 따라 다릅니다: + +- **PRO 버전** (로컬 폴더에서 설치): + +~~~jsx +import { Pivot } from 'dhx-pivot-package'; +~~~ + +- **체험판 버전**: + +~~~jsx +import { Pivot } from '@dhx/trial-pivot'; +~~~ + +이 튜토리얼은 Pivot 체험판을 사용합니다. + +#### 컨테이너 설정 및 Pivot 마운트 {#set-up-the-container-and-mount-pivot} + +페이지에 Pivot을 표시하려면 컴포넌트 템플릿에 컨테이너 요소를 정의한 후, 생성자를 사용하여 `ngOnInit` 훅에서 Pivot을 초기화합니다. `ngOnDestroy` 훅에서 Pivot을 소멸시킵니다. + +다음 코드 스니펫은 최소한의 Pivot Angular 컴포넌트를 정의합니다: + +~~~jsx {1,8,12-13,18-19} title="pivot.component.ts" +import { Pivot } from '@dhx/trial-pivot'; +import { Component, ElementRef, OnInit, ViewChild, OnDestroy, ViewEncapsulation } from '@angular/core'; + +@Component({ + encapsulation: ViewEncapsulation.None, + selector: "pivot", // "app.component.ts" 파일에서 으로 사용되는 템플릿 이름 + styleUrls: ["./pivot.component.css"], // CSS 파일 포함 + template: `
`, +}) + +export class PivotComponent implements OnInit, OnDestroy { + // Pivot의 컨테이너 참조 + @ViewChild('container', { static: true }) pivot_container!: ElementRef; + + private _table!: Pivot; + + ngOnInit() { + // Pivot 컴포넌트 초기화 + this._table = new Pivot(this.pivot_container.nativeElement, {}); + } + + ngOnDestroy(): void { + this._table.destructor(); // 언마운트 시 Pivot 소멸 + } +} +~~~ + +#### 스타일 추가 {#add-styles} + +Pivot을 올바르게 렌더링하려면 *src/app/pivot/pivot.component.css*를 생성하고 페이지와 Pivot 컨테이너에 대한 스타일을 작성합니다: + +~~~css title="pivot.component.css" +/* Pivot 스타일 가져오기 */ +@import "@dhx/trial-pivot/dist/pivot.css"; + +/* 초기 페이지 스타일 */ +html, +body { + margin: 0; + padding: 0; + height: 100%; +} + +/* Pivot 컨테이너 스타일 */ +.widget { + width: 100%; + height: 100%; +} +~~~ + +#### 데이터 로드 {#load-data} + +Pivot에 데이터를 제공하려면 데이터셋을 준비합니다. *src/app/pivot/data.ts*를 생성하고 데이터와 필드 메타데이터를 내보냅니다: + +~~~jsx title="data.ts" +export function getData() { + const dataset = [ + { + "cogs": 51, + "date": "10/1/2018", + "inventory_margin": 503, + "margin": 71, + "market_size": "Major Market", + "market": "Central", + "marketing": 46, + "product_line": "Leaves", + "product_type": "Herbal Tea", + "product": "Lemon", + "profit": -5, + "sales": 122, + "state": "Colorado", + "expenses": 76, + "type": "Decaf" + }, + { + "cogs": 52, + "date": "10/1/2018", + "inventory_margin": 405, + "margin": 71, + "market_size": "Major Market", + "market": "Central", + "marketing": 17, + "product_line": "Leaves", + "product_type": "Herbal Tea", + "product": "Mint", + "profit": 26, + "sales": 123, + "state": "Colorado", + "expenses": 45, + "type": "Decaf" + }, // 다른 데이터 항목 + ]; + + const fields: any = [ + { + "id": "cogs", + "label": "Cogs", + "type": "number" + }, + { + "id": "date", + "label": "Date", + "type": "date" + }, // 다른 필드 + ]; + + return { dataset, fields }; +}; +~~~ + +*src/app/pivot/pivot.component.ts*를 열고 `getData`를 가져온 후 `ngOnInit()`에서 데이터셋을 적용합니다: + +~~~jsx {2,18,20-21} title="pivot.component.ts" +import { Pivot } from '@dhx/trial-pivot'; +import { getData } from "./data"; // 데이터 가져오기 +import { Component, ElementRef, OnInit, ViewChild, OnDestroy, ViewEncapsulation } from '@angular/core'; + +@Component({ + encapsulation: ViewEncapsulation.None, + selector: "pivot", + styleUrls: ["./pivot.component.css"], + template: `
`, +}) + +export class PivotComponent implements OnInit, OnDestroy { + @ViewChild('container', { static: true }) pivot_container!: ElementRef; + + private _table!: Pivot; + + ngOnInit() { + const { dataset, fields } = getData(); // 데이터와 필드 메타데이터 가져오기 + this._table = new Pivot(this.pivot_container.nativeElement, { + fields, + data: dataset, + config: { + rows: ["state", "product_type"], + columns: ["product_line", "type"], + values: [ + { + field: "profit", + method: "sum" + }, // 다른 값 + ] + }, + // 다른 구성 속성 + }); + } + + ngOnDestroy(): void { + this._table.destructor(); + } +} +~~~ + +이제 컴포넌트를 사용할 준비가 되었습니다. 마운트 시 Pivot은 제공된 데이터로 렌더링됩니다. 구성 속성의 전체 목록은 [Pivot API 문서](api/overview/properties-overview.md)를 참조하세요. + +#### 이벤트 처리 {#handle-events} + +Pivot에서의 사용자 동작은 구독할 수 있는 이벤트를 발생시킵니다. 이벤트의 전체 목록은 [이벤트 개요](api/overview/events-overview.md)를 참조하세요. + +다음 코드 스니펫은 사용자가 필터를 열 때 필드 ID를 로그에 출력하는 `open-filter` 이벤트 리스너를 `ngOnInit`에 추가합니다: + +~~~jsx {18-20} title="pivot.component.ts" +// ... +ngOnInit() { + const { dataset, fields } = getData(); + this._table = new Pivot(this.pivot_container.nativeElement, { + fields, + data: dataset, + config: { + rows: ["state", "product_type"], + columns: ["product_line", "type"], + values: [ + { + field: "profit", + method: "sum" + }, // 다른 값 + ] + } + }); + + this._table.api.on("open-filter", (ev) => { + console.log("The field id for which the filter is activated:", ev.id); + }); +} + +ngOnDestroy(): void { + this._table.destructor(); +} +~~~ + +### 3단계. 앱에 Pivot 추가 {#step-3-add-pivot-to-the-app} + +`PivotComponent`를 앱에 포함하려면 *src/app/app.component.ts*를 열고 기본 코드를 다음으로 교체합니다: + +~~~jsx {5} title="app.component.ts" +import { Component } from "@angular/core"; + +@Component({ + selector: "app-root", + template: `` // "pivot.component.ts" 파일에서 생성된 템플릿 +}) +export class AppComponent { + name = ""; +} +~~~ + +그런 다음 *src/app/app.module.ts*를 생성하고 `PivotComponent`를 등록합니다: + +~~~jsx {4-5,8} title="app.module.ts" +import { NgModule } from "@angular/core"; +import { BrowserModule } from "@angular/platform-browser"; + +import { AppComponent } from "./app.component"; +import { PivotComponent } from "./pivot/pivot.component"; + +@NgModule({ + declarations: [AppComponent, PivotComponent], + imports: [BrowserModule], + bootstrap: [AppComponent] +}) +export class AppModule {} +~~~ + +마지막으로, *src/main.ts*를 열고 내용을 다음 부트스트랩 코드로 교체합니다: + +~~~jsx title="main.ts" +import { platformBrowserDynamic } from "@angular/platform-browser-dynamic"; +import { AppModule } from "./app/app.module"; +platformBrowserDynamic() + .bootstrapModule(AppModule) + .catch((err) => console.error(err)); +~~~ + +앱을 시작하면 Pivot이 페이지에 데이터를 렌더링하는 것을 확인할 수 있습니다. + +![Pivot 초기화](../assets/trial_pivot.png) + +이제 Pivot이 Angular와 통합되었습니다. 프로젝트 요구 사항에 맞게 구성을 커스터마이즈하세요. 최종 예제는 [**GitHub의 angular-pivot-demo**](https://github.com/DHTMLX/angular-pivot-demo)를 참조하세요. diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/guides/integration-with-react.md b/i18n/ko/docusaurus-plugin-content-docs/current/guides/integration-with-react.md new file mode 100644 index 0000000..1ebe91c --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/guides/integration-with-react.md @@ -0,0 +1,289 @@ +--- +sidebar_label: React와의 통합 +title: React와의 통합 +description: DHTMLX JavaScript Pivot 라이브러리 문서에서 React와의 통합에 대해 알아볼 수 있습니다. 개발자 가이드와 API 레퍼런스를 살펴보고, 코드 예제와 라이브 데모를 체험하며, DHTMLX Pivot 30일 무료 평가판을 다운로드하세요. +--- + +# React와의 통합 {#integration-with-react} + +:::tip +[**React**](https://react.dev)의 기본 개념과 패턴에 익숙하다고 가정합니다. 복습이 필요하다면 [**React 문서**](https://react.dev/learn)를 참고하세요. +::: + +DHTMLX Pivot은 일반 컴포넌트로 **React**와 통합됩니다. 완전한 동작 예제는 [**GitHub의 React Pivot 데모**](https://github.com/DHTMLX/react-pivot-demo)를 참고하세요. + +## 프로젝트 생성 {#create-a-project} + +:::info +시작하기 전에 [**Node.js**](https://nodejs.org/en/)를 설치하세요. [**Vite**](https://vite.dev/)는 선택 사항입니다. +::: + +*my-react-pivot-app*이라는 이름으로 기본 **React** 프로젝트(또는 Vite 기반 프로젝트)를 생성합니다. + +다음 명령어로 Create React App 프로젝트를 부트스트랩합니다: + +~~~bash +npx create-react-app my-react-pivot-app +~~~ + +### 의존성 설치 {#install-dependencies} + +새 프로젝트 디렉토리로 이동합니다: + +~~~bash +cd my-react-pivot-app +~~~ + +패키지 매니저로 의존성을 설치하고 개발 서버를 시작합니다: + +- [**yarn**](https://yarnpkg.com/) 사용 시: + +~~~bash +yarn +yarn start # 또는: yarn dev +~~~ + +- [**npm**](https://www.npmjs.com/) 사용 시: + +~~~bash +npm install +npm run dev +~~~ + +앱이 로컬 포트(예: `http://localhost:3000`)에서 실행됩니다. + +## Pivot 생성 {#create-pivot} + +프로젝트에 Pivot 패키지를 추가한 후 Pivot을 React 컴포넌트로 래핑합니다. + +### 1단계. 패키지 설치 {#step-1-install-the-package} + +[**Pivot 평가판 패키지**](how-to-start.md#installing-trial-pivot-via-npm-or-yarn)를 다운로드하고 README의 단계를 따르세요. Pivot 평가판 패키지는 30일간 유효합니다. + +### 2단계. 컴포넌트 생성 {#step-2-create-the-component} + +Pivot을 마운트하는 React 컴포넌트를 생성합니다. *src/Pivot.jsx* 파일을 새로 추가합니다. + +#### 소스 파일 가져오기 {#import-source-files} + +*src/Pivot.jsx*를 열고 Pivot 소스 파일을 가져옵니다. 가져오기 경로는 패키지 에디션에 따라 다릅니다: + +- **PRO 버전** (로컬 폴더에서 설치): + +~~~jsx title="Pivot.jsx" +import { Pivot } from 'dhx-pivot-package'; +import 'dhx-pivot-package/dist/pivot.css'; +~~~ + +패키지에 최소화된 에셋이 포함된 경우 *pivot.css* 대신 *pivot.min.css*를 가져옵니다. + +- **평가판**: + +~~~jsx title="Pivot.jsx" +import { Pivot } from '@dhx/trial-pivot'; +import "@dhx/trial-pivot/dist/pivot.css"; +~~~ + +이 튜토리얼에서는 Pivot 평가판을 사용합니다. + +#### 컨테이너 설정 및 Pivot 마운트 {#set-up-the-container-and-mount-pivot} + +페이지에 Pivot을 표시하려면 컨테이너 `div`를 생성한 후 생성자를 사용하여 `useEffect` hook에서 Pivot을 초기화합니다. + +다음 코드 스니펫은 최소한의 Pivot React 컴포넌트를 정의합니다: + +~~~jsx {2,6,9-10} title="Pivot.jsx" +import { useEffect, useRef } from "react"; +import { Pivot } from "@dhx/trial-pivot"; +import "@dhx/trial-pivot/dist/pivot.css"; // Pivot 스타일 포함 + +export default function PivotComponent(props) { + let container = useRef(); // Pivot용 컨테이너 ref + + useEffect(() => { + // Pivot 컴포넌트 초기화 + const table = new Pivot(container.current, {}); + + return () => { + table.destructor(); // 언마운트 시 Pivot 제거 + }; + }, []); + + return
; +} +~~~ + +#### 스타일 추가 {#add-styles} + +Pivot을 올바르게 렌더링하려면 프로젝트의 메인 CSS 파일에 다음 스타일을 추가합니다: + +~~~css title="index.css" +/* 초기 페이지 스타일 */ +html, +body, +#root { + height: 100%; + padding: 0; + margin: 0; +} + +/* Pivot 컨테이너 스타일 */ +.widget { + height: 100%; + width: 100%; +} +~~~ + +#### 데이터 로드 {#load-data} + +Pivot에 데이터를 공급하려면 데이터셋을 준비합니다. *src/data.js*를 생성하고 데이터와 필드 메타데이터를 내보냅니다: + +~~~jsx title="data.js" +export function getData() { + const dataset = [ + { + "cogs": 51, + "date": "10/1/2018", + "inventory_margin": 503, + "margin": 71, + "market_size": "Major Market", + "market": "Central", + "marketing": 46, + "product_line": "Leaves", + "product_type": "Herbal Tea", + "product": "Lemon", + "profit": -5, + "sales": 122, + "state": "Colorado", + "expenses": 76, + "type": "Decaf" + }, + { + "cogs": 52, + "date": "10/1/2018", + "inventory_margin": 405, + "margin": 71, + "market_size": "Major Market", + "market": "Central", + "marketing": 17, + "product_line": "Leaves", + "product_type": "Herbal Tea", + "product": "Mint", + "profit": 26, + "sales": 123, + "state": "Colorado", + "expenses": 45, + "type": "Decaf" + }, // 다른 데이터 항목 + ]; + + const fields = [ + { + "id": "cogs", + "label": "Cogs", + "type": "number" + }, + { + "id": "date", + "label": "Date", + "type": "date" + }, // 다른 필드 + ]; + + return { dataset, fields }; +}; +~~~ + +*src/App.js*를 열고 데이터를 가져온 후 `` 컴포넌트에 props로 전달합니다: + +~~~jsx {2,5-6} title="App.js" +import Pivot from "./Pivot"; +import { getData } from "./data"; + +function App() { + const { fields, dataset } = getData(); + return ; +} + +export default App; +~~~ + +*src/Pivot.jsx*를 열고 props를 구조 분해하여 Pivot 설정 객체에 적용합니다: + +~~~jsx {5,10-11} title="Pivot.jsx" +import { useEffect, useRef } from "react"; +import { Pivot } from "@dhx/trial-pivot"; +import "@dhx/trial-pivot/dist/pivot.css"; + +export default function PivotComponent({ fields, dataset }) { + let container = useRef(); + + useEffect(() => { + const table = new Pivot(container.current, { + fields, + data: dataset, + config: { + rows: ["state", "product_type"], + columns: ["product_line", "type"], + values: [ + { + field: "profit", + method: "sum" + }, // 다른 값 + ] + }, + // 다른 설정 속성 + }); + + return () => { + table.destructor(); + } + }, []); + + return
; +} +~~~ + +이제 컴포넌트를 사용할 준비가 되었습니다. 마운트 시 Pivot은 제공된 데이터로 렌더링됩니다. 전체 설정 속성 목록은 [Pivot API 문서](api/overview/properties-overview.md)를 참고하세요. + +#### 이벤트 처리 {#handle-events} + +Pivot에서 발생하는 사용자 동작은 구독할 수 있는 이벤트를 발생시킵니다. 전체 이벤트 목록은 [이벤트 개요](api/overview/events-overview.md)를 참고하세요. + +다음 코드 스니펫은 사용자가 필터를 열 때 필드 ID를 로그에 기록하는 `open-filter` 이벤트 리스너를 `useEffect`에 추가합니다: + +~~~jsx {19-21} title="Pivot.jsx" +// ... +useEffect(() => { + const table = new Pivot(container.current, { + fields, + data: dataset, + config: { + rows: ["state", "product_type"], + columns: ["product_line", "type"], + values: [ + { + field: "profit", + method: "sum" + }, // 다른 값 + ] + }, + // 다른 설정 속성 + }); + + table.api.on("open-filter", (ev) => { + console.log("필터가 활성화된 필드 id:", ev.id); + }); + + return () => { + table.destructor(); + } +}, []); +// ... +~~~ + +앱을 시작하면 페이지에 Pivot이 데이터를 렌더링하는 것을 확인할 수 있습니다. + +![Pivot 초기화](../assets/trial_pivot.png) + +이제 Pivot이 React와 통합되었습니다. 프로젝트 요구 사항에 맞게 설정을 사용자 정의하세요. 최종 예제는 [**GitHub의 react-pivot-demo**](https://github.com/DHTMLX/react-pivot-demo)를 참고하세요. diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/guides/integration-with-svelte.md b/i18n/ko/docusaurus-plugin-content-docs/current/guides/integration-with-svelte.md new file mode 100644 index 0000000..0669523 --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/guides/integration-with-svelte.md @@ -0,0 +1,302 @@ +--- +sidebar_label: Svelte와의 통합 +title: Svelte와의 통합 +description: DHTMLX JavaScript Pivot 라이브러리의 문서에서 Svelte와의 통합에 대해 알아볼 수 있습니다. 개발자 가이드와 API 참조를 살펴보고, 코드 예제와 라이브 데모를 사용해 보고, DHTMLX Pivot의 무료 30일 평가판을 다운로드하세요. +--- + +# Svelte와의 통합 {#integration-with-svelte} + +:::tip +**Svelte**의 기본 개념과 패턴에 익숙하다고 가정합니다. 복습이 필요하다면 [**Svelte 문서**](https://svelte.dev/)를 참조하세요. +::: + +DHTMLX Pivot은 일반 컴포넌트로서 **Svelte**와 통합됩니다. 완전한 동작 예제는 [**GitHub의 Svelte Pivot 데모**](https://github.com/DHTMLX/svelte-pivot-demo)를 참조하세요. + +## 프로젝트 만들기 {#create-a-project} + +:::info +시작하기 전에 [**Node.js**](https://nodejs.org/en/)를 설치하세요. [**Vite**](https://vite.dev/)는 선택 사항입니다. +::: + +다음 명령어는 Vite 프로젝트 스캐폴딩 도구를 실행하고 Svelte 템플릿을 선택할 수 있게 해줍니다: + +~~~bash +npm create vite@latest +~~~ + +프로젝트 이름을 *my-svelte-pivot-app*으로 지정하세요. + +### 의존성 설치 {#install-dependencies} + +새 프로젝트 디렉토리로 이동하세요: + +~~~bash +cd my-svelte-pivot-app +~~~ + +패키지 매니저로 의존성을 설치하고 개발 서버를 시작하세요: + +- [**yarn**](https://yarnpkg.com/) 사용 시: + +~~~bash +yarn +yarn start # 또는: yarn dev +~~~ + +- [**npm**](https://www.npmjs.com/) 사용 시: + +~~~bash +npm install +npm run dev +~~~ + +앱은 로컬 포트(예: `http://localhost:3000`)에서 실행됩니다. + +## Pivot 만들기 {#create-pivot} + +프로젝트에 Pivot 패키지를 추가한 다음, Svelte 컴포넌트로 Pivot을 감싸세요. + +### 1단계. 패키지 설치 {#step-1-install-the-package} + +[**Pivot 체험판 패키지**](how-to-start.md#installing-trial-pivot-via-npm-or-yarn)를 다운로드하고 README의 단계를 따르세요. Pivot 체험판 패키지는 30일 동안 유효합니다. + +### 2단계. 컴포넌트 만들기 {#step-2-create-the-component} + +Pivot을 마운트하는 Svelte 컴포넌트를 만드세요. 새 파일 *src/Pivot.svelte*를 추가하세요. + +#### 소스 파일 가져오기 {#import-source-files} + +*src/Pivot.svelte*를 열고 Pivot 소스 파일을 가져오세요. 가져오기 경로는 패키지 에디션에 따라 다릅니다: + +- **PRO 버전** (로컬 폴더에서 설치): + +~~~html title="Pivot.svelte" + +~~~ + +패키지가 최소화된 에셋을 포함하는 경우, *pivot.css* 대신 *pivot.min.css*를 가져오세요. + +- **체험판 버전**: + +~~~html title="Pivot.svelte" + +~~~ + +이 튜토리얼에서는 Pivot 체험판 버전을 사용합니다. + +#### 컨테이너 설정 및 Pivot 마운트 {#set-up-the-container-and-mount-pivot} + +페이지에 Pivot을 표시하려면 컨테이너 `div`를 추가한 다음, 생성자를 사용해 `onMount` 라이프사이클 훅에서 Pivot을 초기화하세요. `onDestroy` 훅에서 Pivot을 소멸시키세요. + +다음 코드 스니펫은 최소한의 Pivot Svelte 컴포넌트를 정의합니다: + +~~~html {3,6,10-11,19} title="Pivot.svelte" + + +
+~~~ + +#### 스타일 추가 {#add-styles} + +Pivot을 올바르게 렌더링하려면 프로젝트의 메인 CSS 파일에 다음 스타일을 추가하세요: + +~~~css title="main.css" +/* 초기 페이지 스타일 */ +html, +body, +#app { /* #app 루트 컨테이너 사용 */ + height: 100%; + padding: 0; + margin: 0; +} + +/* Pivot 컨테이너 스타일 */ +.widget { + height: 100%; + width: 100%; +} +~~~ + +#### 데이터 로드 {#load-data} + +Pivot에 데이터를 제공하려면 데이터셋을 준비하세요. *src/data.js*를 만들고 데이터와 필드 메타데이터를 내보내세요: + +~~~jsx title="data.js" +export function getData() { + const dataset = [ + { + "cogs": 51, + "date": "10/1/2018", + "inventory_margin": 503, + "margin": 71, + "market_size": "Major Market", + "market": "Central", + "marketing": 46, + "product_line": "Leaves", + "product_type": "Herbal Tea", + "product": "Lemon", + "profit": -5, + "sales": 122, + "state": "Colorado", + "expenses": 76, + "type": "Decaf" + }, + { + "cogs": 52, + "date": "10/1/2018", + "inventory_margin": 405, + "margin": 71, + "market_size": "Major Market", + "market": "Central", + "marketing": 17, + "product_line": "Leaves", + "product_type": "Herbal Tea", + "product": "Mint", + "profit": 26, + "sales": 123, + "state": "Colorado", + "expenses": 45, + "type": "Decaf" + }, // 다른 데이터 항목 + ]; + + const fields = [ + { + "id": "cogs", + "label": "Cogs", + "type": "number" + }, + { + "id": "date", + "label": "Date", + "type": "date" + }, // 다른 필드 + ]; + + return { dataset, fields }; +}; +~~~ + +*src/App.svelte*를 열고 데이터를 가져온 다음 새 `` 컴포넌트에 props로 전달하세요: + +~~~html {3,5,8} title="App.svelte" + + + +~~~ + +*src/Pivot.svelte*를 열고 `export let`으로 들어오는 props를 선언하고 Pivot 설정 객체에 적용하세요: + +~~~html {6-7,14-15} title="Pivot.svelte" + + +
+~~~ + +이제 컴포넌트를 사용할 준비가 되었습니다. 마운트 시 Pivot은 제공된 데이터로 렌더링됩니다. 전체 설정 속성 목록은 [Pivot API 문서](api/overview/properties-overview.md)를 참조하세요. + +#### 이벤트 처리 {#handle-events} + +Pivot에서의 사용자 동작은 구독할 수 있는 이벤트를 발생시킵니다. 전체 이벤트 목록은 [이벤트 개요](api/overview/events-overview.md)를 참조하세요. + +다음 코드 스니펫은 사용자가 필터를 열 때 필드 ID를 기록하는 `open-filter` 이벤트 리스너로 `onMount`를 확장합니다: + +~~~html {22-24} title="Pivot.svelte" + + +// ... +~~~ + +앱을 시작하면 Pivot이 페이지에 데이터를 렌더링하는 것을 확인할 수 있습니다. + +![Pivot 초기화](../assets/trial_pivot.png) + +이제 Pivot이 Svelte와 통합되었습니다. 프로젝트 요구사항에 맞게 설정을 커스터마이즈하세요. 최종 예제는 [**GitHub의 svelte-pivot-demo**](https://github.com/DHTMLX/svelte-pivot-demo)를 참조하세요. diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/guides/integration-with-vue.md b/i18n/ko/docusaurus-plugin-content-docs/current/guides/integration-with-vue.md new file mode 100644 index 0000000..34f50d9 --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/guides/integration-with-vue.md @@ -0,0 +1,312 @@ +--- +sidebar_label: Vue와의 통합 +title: Vue와의 통합 +description: DHTMLX JavaScript Pivot 라이브러리 문서에서 Vue와의 통합에 대해 알아볼 수 있습니다. 개발자 가이드와 API 레퍼런스를 살펴보고, 코드 예제와 라이브 데모를 체험해 보세요. DHTMLX Pivot의 무료 30일 평가판을 다운로드할 수도 있습니다. +--- + +# Vue와의 통합 {#integration-with-vue} + +:::tip +[**Vue**](https://vuejs.org/)의 기본 개념과 패턴에 익숙하다고 가정합니다. 복습이 필요하다면 [**Vue 3 문서**](https://vuejs.org/guide/introduction.html#getting-started)를 참고하세요. +::: + +DHTMLX Pivot은 일반 컴포넌트로서 **Vue**와 통합됩니다. 완전한 작동 설정 예시는 [**GitHub의 Vue Pivot 데모**](https://github.com/DHTMLX/vue-pivot-demo)를 참고하세요. + +## 프로젝트 생성 {#create-a-project} + +:::info +시작하기 전에 [**Node.js**](https://nodejs.org/en/)를 설치하세요. +::: + +다음 명령어는 공식 **Vue** 프로젝트 스캐폴딩 도구를 실행합니다: + +~~~bash +npm create vue@latest +~~~ + +이 명령어는 `create-vue`를 설치하고 실행합니다. 자세한 내용은 [Vue.js 빠른 시작](https://vuejs.org/guide/quick-start.html#creating-a-vue-application)을 참고하세요. + +프로젝트 이름을 *my-vue-pivot-app*으로 지정하세요. + +### 의존성 설치 {#install-dependencies} + +새 프로젝트 디렉터리로 이동합니다: + +~~~bash +cd my-vue-pivot-app +~~~ + +패키지 매니저로 의존성을 설치하고 개발 서버를 시작합니다: + +- [**yarn**](https://yarnpkg.com/) 사용 시: + +~~~bash +yarn +yarn start # 또는: yarn dev +~~~ + +- [**npm**](https://www.npmjs.com/) 사용 시: + +~~~bash +npm install +npm run dev +~~~ + +앱은 로컬 포트(예: `http://localhost:3000`)에서 실행됩니다. + +## Pivot 생성 {#create-pivot} + +프로젝트에 Pivot 패키지를 추가한 다음 Pivot을 Vue 컴포넌트로 래핑합니다. + +### 1단계. 패키지 설치 {#step-1-install-the-package} + +[**Pivot 평가판 패키지**](how-to-start.md#installing-trial-pivot-via-npm-or-yarn)를 다운로드하고 README의 단계를 따르세요. Pivot 평가판 패키지는 30일간 유효합니다. + +### 2단계. 컴포넌트 생성 {#step-2-create-the-component} + +Pivot을 마운트하는 Vue 컴포넌트를 생성합니다. *src/components/Pivot.vue* 파일을 새로 추가하세요. + +#### 소스 파일 가져오기 {#import-source-files} + +*src/components/Pivot.vue*를 열고 Pivot 소스 파일을 가져옵니다. 가져오기 경로는 패키지 에디션에 따라 다릅니다: + +- **PRO 버전** (로컬 폴더에서 설치한 경우): + +~~~html title="Pivot.vue" + +~~~ + +패키지가 압축된 에셋을 제공하는 경우 *pivot.css* 대신 *pivot.min.css*를 가져옵니다. + +- **평가판 버전**: + +~~~html title="Pivot.vue" + +~~~ + +이 튜토리얼에서는 Pivot 평가판을 사용합니다. + +#### 컨테이너 설정 및 Pivot 마운트 {#set-up-the-container-and-mount-pivot} + +페이지에 Pivot을 표시하려면 컨테이너 `div`를 추가한 다음 생성자를 사용하여 `mounted` 훅에서 Pivot을 초기화합니다. `unmounted` 훅에서 Pivot을 제거합니다. + +다음 코드 스니펫은 최소한의 Pivot Vue 컴포넌트를 정의합니다: + +~~~html {2,7-8,18} title="Pivot.vue" + + + +~~~ + +#### 스타일 추가 {#add-styles} + +Pivot을 올바르게 렌더링하려면 프로젝트의 메인 CSS 파일에 다음 스타일을 추가합니다: + +~~~css title="style.css" +/* 초기 페이지 스타일 */ +html, +body, +#app { /* #app 루트 컨테이너 사용 */ + height: 100%; + padding: 0; + margin: 0; +} + +/* Pivot 컨테이너 스타일 */ +.widget { + width: 100%; + height: 100%; +} +~~~ + +#### 데이터 로드 {#load-data} + +Pivot에 데이터를 공급하려면 데이터셋을 준비합니다. *src/data.js*를 생성하고 데이터와 필드 메타데이터를 내보냅니다: + +~~~jsx title="data.js" +export function getData() { + const dataset = [ + { + "cogs": 51, + "date": "10/1/2018", + "inventory_margin": 503, + "margin": 71, + "market_size": "Major Market", + "market": "Central", + "marketing": 46, + "product_line": "Leaves", + "product_type": "Herbal Tea", + "product": "Lemon", + "profit": -5, + "sales": 122, + "state": "Colorado", + "expenses": 76, + "type": "Decaf" + }, + { + "cogs": 52, + "date": "10/1/2018", + "inventory_margin": 405, + "margin": 71, + "market_size": "Major Market", + "market": "Central", + "marketing": 17, + "product_line": "Leaves", + "product_type": "Herbal Tea", + "product": "Mint", + "profit": 26, + "sales": 123, + "state": "Colorado", + "expenses": 45, + "type": "Decaf" + }, // 다른 데이터 항목 + ]; + + const fields = [ + { + "id": "cogs", + "label": "Cogs", + "type": "number" + }, + { + "id": "date", + "label": "Date", + "type": "date" + }, // 다른 필드 + ]; + + return { dataset, fields }; +}; +~~~ + +*src/App.vue*를 열고 데이터를 가져온 다음 `data()` 옵션을 통해 노출합니다. 그런 다음 값을 새 `` 컴포넌트에 props로 전달합니다: + +~~~html {3,7-13,18} title="App.vue" + + + +~~~ + +*src/components/Pivot.vue*를 열고 들어오는 props를 선언한 다음 Pivot 구성 객체에 적용합니다: + +~~~html {6,10-11} title="Pivot.vue" + + + +~~~ + +이제 컴포넌트를 사용할 준비가 되었습니다. 마운트 시 Pivot은 제공된 데이터로 렌더링됩니다. 구성 속성의 전체 목록은 [Pivot API 문서](api/overview/properties-overview.md)를 참고하세요. + +#### 이벤트 처리 {#handle-events} + +Pivot에서 사용자 동작이 발생하면 구독할 수 있는 이벤트가 발생합니다. 이벤트의 전체 목록은 [이벤트 개요](api/overview/events-overview.md)를 참고하세요. + +다음 코드 스니펫은 `mounted`를 `open-filter` 이벤트 리스너로 확장하여 사용자가 필터를 열 때 필드 ID를 로그에 기록합니다: + +~~~html {22-24} title="Pivot.vue" + + +// ... +~~~ + +앱을 시작하면 페이지에서 Pivot이 데이터를 렌더링하는 것을 확인할 수 있습니다. + +![Pivot 초기화](../assets/trial_pivot.png) + +이제 Pivot이 Vue와 통합되었습니다. 프로젝트 요구 사항에 맞게 구성을 사용자 정의하세요. 최종 예제는 [**GitHub의 vue-pivot-demo**](https://github.com/DHTMLX/vue-pivot-demo)를 참고하세요. diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/guides/loading-data.md b/i18n/ko/docusaurus-plugin-content-docs/current/guides/loading-data.md new file mode 100644 index 0000000..fe2a85f --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/guides/loading-data.md @@ -0,0 +1,279 @@ +--- +sidebar_label: 데이터 로드 +title: 데이터 로드 +description: DHTMLX JavaScript Pivot 라이브러리 문서에서 데이터를 로드하는 방법을 살펴볼 수 있습니다. 개발자 가이드와 API 레퍼런스를 참조하고, 코드 예제와 라이브 데모를 사용해 보세요. DHTMLX Pivot의 무료 30일 평가판을 다운로드할 수도 있습니다. +--- + +# 데이터 로드 {#loading-data} + +Pivot은 [`data`](api/config/data-property.md) 속성을 통해 JSON 형식의 데이터를 받습니다. CSV 데이터는 JSON으로 변환한 후 사용할 수 있습니다. + +## 데이터 로드 준비 {#prepare-data-for-loading} + +[`data`](api/config/data-property.md) 속성은 객체 배열을 받으며, 각 객체는 하나의 데이터 행을 나타냅니다. 각 객체의 키는 Pivot 테이블에서 사용되는 차원과 값을 정의합니다. + +다음 코드 스니펫은 샘플 `data` 배열을 정의합니다: + +~~~jsx +const data = [ + { + name: "Argentina", + year: 2015, + continent: "South America", + form: "Republic", + gdp: 181.357, + oil: 1.545, + balance: 4.699, + when: new Date("4/21/2015") + }, + { + name: "Argentina", + year: 2017, + continent: "South America", + form: "Republic", + gdp: 212.507, + oil: 1.732, + balance: 7.167, + when: new Date("1/15/2017") + }, + { + name: "Argentina", + year: 2014, + continent: "South America", + form: "Republic", + gdp: 260.071, + oil: 2.845, + balance: 6.728, + when: new Date("6/16/2014") + }, + { + name: "Argentina", + year: 2014, + continent: "South America", + form: "Republic", + gdp: 324.405, + oil: 4.333, + balance: 5.99, + when: new Date("2/20/2014") + }, + { + name: "Argentina", + year: 2014, + continent: "South America", + form: "Republic", + gdp: 305.763, + oil: 2.626, + balance: 7.544, + when: new Date("8/17/2014") + }, + // 기타 데이터 +]; +~~~ + +:::info +필드 및 Pivot 구조 정의에 대한 자세한 내용은 [데이터 작업](guides/working-with-data.md)을 참조하십시오. +::: + +## 파일에서 데이터 로드 {#load-data-from-a-file} + +Pivot은 초기화 후 외부 파일에서 JSON 데이터를 로드합니다. 데이터, 필드, 구성이 포함된 소스 파일을 준비하십시오. + +다음 코드 스니펫은 별도 파일에서 `data`, `fields`, `getData()` 접근자를 정의합니다: + +~~~jsx +function getData() { + return { + data, + config: { + rows: ["continent", "name"], + columns: ["year"], + values: [ + "count(oil)", + { field: "oil", method: "sum" }, + { field: "gdp", method: "sum" } + ], + filters: { + genre: { + contains: "D", + includes: ["Drama"], + } + } + }, + fields + }; +} +const fields = [ + { id: "year", label: "Year", type: "number" }, + { id: "continent", label: "Continent", type: "text" }, + { id: "form", label: "Form", type: "text" }, + { id: "oil", label: "Oil", type: "number" }, + { id: "balance", label: "Balance", type: "number" } +]; + +const data = [ + { + name: "Argentina", + year: 2015, + continent: "South America", + form: "Republic", + gdp: 181.357, + oil: 1.545, + balance: 4.699, + when: new Date("4/21/2015") + }, + // 기타 데이터 +]; +~~~ + +페이지 마크업에 소스 데이터 파일 경로를 추가하십시오: + +~~~html title="index.html" + + + + +~~~ + +다음 코드 스니펫은 Pivot을 생성하고 준비된 파일에서 데이터를 로드합니다: + +~~~jsx +const { data, config, fields } = getData(); +const table = new pivot.Pivot("#root", { data, config, fields }); +~~~ + +## 서버에서 데이터 로드 {#load-data-from-a-server} + +서버 엔드포인트에서 데이터를 로드하려면 네이티브 `fetch` 메서드(또는 동등한 방법)로 요청을 보낸 후, 응답을 [`setConfig`](api/methods/setconfig-method.md)에 전달합니다. `setConfig`는 Pivot 구성을 업데이트하고 이전에 설정된 옵션을 유지합니다. + +다음 코드 스니펫은 빈 데이터로 Pivot을 초기화하고, 서버에서 데이터와 필드를 가져온 후 `setConfig`로 적용합니다: + +~~~jsx +const table = new pivot.Pivot("#root", { fields: [], data: [] }); +const server = "https://some-backend-url"; + +Promise.all([ + fetch(server + "/data").then((res) => res.json()), + fetch(server + "/fields").then((res) => res.json()) +]).then(([data, fields]) => { + table.setConfig({ data, fields }); +}); +~~~ + +추가 정보는 다음 항목을 참조하십시오: [서버 작업](/guides/working-with-server) + +## CSV 데이터 로드 {#load-csv-data} + +Pivot은 외부 JS 파싱 라이브러리로 CSV 데이터를 JSON으로 변환한 후 사용할 수 있습니다. 변환된 데이터는 네이티브 JSON과 동일하게 동작합니다. + +아래 예제는 외부 [PapaParse](https://cdnjs.cloudflare.com/ajax/libs/PapaParse/5.4.1/papaparse.min.js) 라이브러리를 사용하여 버튼 클릭 시 데이터를 로드하고 변환합니다. `convert()` 헬퍼는 다음 파라미터를 받습니다: + +- `data` — CSV 데이터 문자열 +- `headers` — CSV 필드 이름 배열 +- `meta` — 필드 이름을 데이터 타입에 매핑하는 객체 + +다음 코드 스니펫은 Pivot을 생성하고, `convert()` 헬퍼를 정의하며, 버튼 클릭 시 [`setConfig`](api/methods/setconfig-method.md)를 통해 파싱된 CSV 데이터를 적용합니다: + +~~~jsx +const table = new pivot.Pivot("#root", { + fields, + data: dataset, + config: { + rows: [ + "studio", + "genre" + ], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + } +}); + +function convert(data, headers, meta) { + const header = headers.join(",") + "\n"; + const processedData = header + data; + + return Papa.parse(processedData, { + header: true, + dynamicTyping: true, + transform: (v, f) => { + return meta && meta[f] === "date" ? new Date(v) : v; + } + }); +} + +function fromCSV() { + const fields = [ + { id: "name", label: "Name", type: "text" }, + { id: "continent", label: "Continent", type: "text" }, + { id: "form", label: "Form", type: "text" }, + { id: "gdp", label: "GDP", type: "number" }, + { id: "oil", label: "Oil", type: "number" }, + { id: "balance", label: "Balance", type: "number" }, + { id: "year", label: "Year", type: "number" }, + { id: "when", label: "When", type: "date" } + ]; + + const config = { + rows: ["continent", "name"], + columns: ["year"], + values: [ + "count(oil)", + { field: "oil", method: "sum" }, + { field: "gdp", method: "sum" } + ] + }; + + const headers = [ + "name", + "year", + "continent", + "form", + "gdp", + "oil", + "balance", + "when" + ]; + + // 날짜 필드를 명시적으로 표시하여 올바른 변환 적용 + const meta = { when: "date" }; + + const dataURL = "https://some-backend-url"; + fetch(dataURL) + .then(response => response.text()) + .then(text => convert(text, headers, meta)) + .then(data => { + table.setConfig({ + data: data.data, + fields, + config + }); + }); +} + +const importButton = document.createElement("button"); +importButton.addEventListener("click", fromCSV); +importButton.textContent = "Import"; + +document.body.appendChild(importButton); +~~~ + +## 예제 {#example} + +아래 스니펫은 JSON과 CSV 데이터를 로드합니다: + + + +**관련 샘플:** +- [Pivot 2. 날짜 형식](https://snippet.dhtmlx.com/shn1l794) +- [Pivot 2. 다양한 데이터셋](https://snippet.dhtmlx.com/6xtqge4i) +- [Pivot 2. 대용량 데이터셋](https://snippet.dhtmlx.com/e6qwqrys) + +**관련 문서**: [날짜 형식 지정](guides/localization.md#date-formatting) diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/guides/localization.md b/i18n/ko/docusaurus-plugin-content-docs/current/guides/localization.md new file mode 100644 index 0000000..359c1c9 --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/guides/localization.md @@ -0,0 +1,293 @@ +--- +sidebar_label: 로컬라이제이션 +title: 로컬라이제이션 +description: DHTMLX JavaScript Pivot 라이브러리 문서에서 로컬라이제이션에 대해 알아볼 수 있습니다. 개발자 가이드와 API 레퍼런스를 살펴보고, 코드 예제와 라이브 데모를 체험해 보세요. DHTMLX Pivot 무료 30일 평가판도 다운로드할 수 있습니다. +--- + +# 로컬라이제이션 {#localization} + +Pivot를 사용하면 인터페이스의 모든 레이블을 로컬라이즈할 수 있습니다. 새 로케일을 생성하거나 기본 제공 로케일을 수정한 후, [`locale`](api/config/locale-property.md) 속성 또는 [`setLocale`](api/methods/setlocale-method.md) 메서드를 통해 Pivot에 로케일을 적용합니다. + +## 기본 로케일 {#default-locale} + +Pivot는 기본적으로 영어 로케일을 적용합니다. 다음 코드 스니펫은 내장 `en` 로케일의 구조를 보여줍니다: + +~~~jsx +const en = { + // pivot + pivot: { + sum: "Sum", + min: "Min", + max: "Max", + count: "Count", + counta: "CountA", + countunique: "CountUnique", + average: "Average", + median: "Median", + product: "Product", + stdev: "StDev", + stdevp: "StDevP", + var: "Var", + varp: "VarP", + "Raw date": "Raw date", + "Raw number": "Raw number", + "Raw text": "Raw text", + Year: "Year", + Month: "Month", + Day: "Day", + Hour: "Hour", + Minute: "Minute", + Total: "Total", + Values: "Values", + Rows: "Rows", + Columns: "Columns", + "Click on the plus icon(s) to add data": + "Click on the plus icon(s) to add data", + 'Click on "Show settings" to see the available configuration options': + 'Click on "Show settings" to see the available configuration options', + "Show settings": "Show settings", + "Hide settings": "Hide settings" + }, + + // query + query: { + "Add filter": "Add filter", + "Add Filter": "Add Filter", + "Add Group": "Add Group", + Edit: "Edit", + Delete: "Delete", + + "Select all": "Select all", + "Unselect all": "Unselect all", + + Cancel: "Cancel", + Apply: "Apply", + + and: "and", + or: "or", + in: "in", + + equal: "equal", + "not equal": "not equal", + contains: "contains", + "not contains": "not contains", + "begins with": "begins with", + "not begins with": "not begins with", + "ends with": "ends with", + "not ends with": "not ends with", + + greater: "greater", + "greater or equal": "greater or equal", + less: "less", + "less or equal": "less or equal", + between: "between", + "not between": "not between" + }, + + // calendar + calendar: { + monthFull: [ + "January", + "February", + "March", + "April", + "May", + "June", + "July", + "August", + "September", + "October", + "November", + "December", + ], + monthShort: [ + "Jan", + "Feb", + "Mar", + "Apr", + "May", + "Jun", + "Jul", + "Aug", + "Sep", + "Oct", + "Nov", + "Dec", + ], + + dayFull: [ + "Sunday", + "Monday", + "Tuesday", + "Wednesday", + "Thursday", + "Friday", + "Saturday", + ], + + dayShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], + hours: "Hours", + minutes: "Minutes", + done: "Done", + clear: "Clear", + today: "Today", + am: ["am", "AM"], + pm: ["pm", "PM"], + + weekStart: 7, + clockFormat: 24, + }, + + // core + core: { + ok: "OK", + cancel: "Cancel", + select: "Select", + "No data": "No data" + }, + + // formats + formats: { + dateFormat: "%d.%m.%Y", + timeFormat: "%H:%i" + }, + + lang: "en-US", +}; +~~~ + +## 로케일 적용 {#apply-a-locale} + +Pivot는 `pivot.locales` 객체를 통해 `en`, `de`, `cn` 세 가지 내장 로케일을 제공합니다. 초기화 시 [`locale`](api/config/locale-property.md) 속성에 내장 로케일을 전달하십시오. + +다음 코드 스니펫은 독일어 로케일로 Pivot를 초기화합니다: + +~~~jsx +new pivot.Pivot("#root", { + // other properties + locale: pivot.locales.de, +}); +~~~ + +커스텀 로케일을 적용하려면: + +- 로케일 객체를 생성하거나(또는 내장 로케일을 수정하여) 모든 텍스트 레이블에 대한 번역을 제공합니다(어떤 언어든 가능) +- [`locale`](api/config/locale-property.md) 속성 또는 [`setLocale`](api/methods/setlocale-method.md) 메서드를 통해 Pivot에 로케일을 적용합니다 + +다음 코드 스니펫은 Pivot를 생성한 후 `setLocale`을 사용하여 런타임에 커스텀 한국어 로케일을 적용합니다: + +~~~jsx +// Pivot 생성 +const widget = new pivot.Pivot("#root", { + data, + // other configuration properties +}); + +const ko = { /* object with locale */ }; +widget.setLocale(ko); +~~~ + +:::tip +인수 없이(또는 `null`을 인수로) [`setLocale`](api/methods/setlocale-method.md)을 호출하면 Pivot가 기본 영어 로케일로 초기화됩니다. +::: + +## 날짜 형식 지정 {#date-formatting} + +Pivot는 날짜를 `Date` 객체로 받습니다. 데이터를 Pivot에 전달하기 전에 문자열 값을 `Date`로 파싱하십시오. 기본 `dateFormat`은 현재 로케일에서 가져온 `"%d.%m.%Y"`입니다. + +모든 날짜 필드의 형식을 변경하려면 [`locale`](api/config/locale-property.md) 속성의 `formats` 객체에서 `dateFormat`에 새 값을 설정하십시오. + +다음 코드 스니펫은 문자열 날짜를 `Date` 객체로 파싱한 후, 커스텀 `dateFormat`으로 Pivot를 초기화하고 `setConfig`를 통해 런타임에 형식을 업데이트합니다: + +~~~jsx {17} +function setFormat(value) { + table.setConfig({ locale: { formats: { dateFormat: value } } }); +} + +// 날짜 문자열을 Date 객체로 변환 +const dateFields = fields.filter((f) => f.type == "date"); +if (dateFields.length) { + dataset.forEach((item) => { + dateFields.forEach((f) => { + const v = item[f.id]; + if (typeof v == "string") item[f.id] = new Date(v); + }); + }); +} + +const table = new pivot.Pivot("#root", { + locale: { formats: { dateFormat: "%d %M %Y %H:%i" } }, + fields, + data: dataset, + config: { + rows: ["state"], + columns: ["product_line", "product_type"], + values: [ + { + field: "date", + method: "min" + }, + { + field: "profit", + method: "sum" + }, + { + field: "sales", + method: "sum" + } + ] + } +}); +~~~ + +특정 필드에 커스텀 형식을 설정하려면 [`fields`](api/config/fields-property.md) 속성의 `format` 파라미터를 사용하십시오. [필드에 형식 적용](guides/working-with-data.md#applying-formats-to-fields)을 참조하십시오. + +## 날짜 및 시간 형식 문자 {#date-and-time-format-characters} + +Pivot는 날짜 및 시간 형식을 정의하기 위해 다음 문자들을 사용합니다: + +| 문자 | 정의 | 예시 | +| :-------- | :------------------------------------------------ |:------------------------| +| %d | 앞에 0이 붙는 숫자로 표시된 일 | 01부터 31까지 | +| %j | 숫자로 표시된 일 | 1부터 31까지 | +| %D | 요일의 약어(단축 이름) | Su Mo Tu Sat | +| %l | 요일의 전체 이름 | Sunday Monday Tuesday | +| %W | 앞에 0이 붙는 숫자로 표시된 주(월요일을 첫째 날로 사용) | 01부터 52/53까지 | +| %m | 앞에 0이 붙는 숫자로 표시된 월 | 01부터 12까지 | +| %n | 숫자로 표시된 월 | 1부터 12까지 | +| %M | 월의 약어(단축 이름) | Jan Feb Mar | +| %F | 월의 전체 이름 | January February March | +| %y | 2자리 숫자로 표시된 연도 | 24 | +| %Y | 4자리 숫자로 표시된 연도 | 2024 | +| %h | 앞에 0이 붙는 12시간 형식의 시 | 01부터 12까지 | +| %g | 12시간 형식의 시 | 1부터 12까지 | +| %H | 앞에 0이 붙는 24시간 형식의 시 | 00부터 23까지 | +| %G | 24시간 형식의 시 | 0부터 23까지 | +| %i | 앞에 0이 붙는 분 | 01부터 59까지 | +| %s | 앞에 0이 붙는 초 | 01부터 59까지 | +| %S | 밀리초 | 128 | +| %a | am 또는 pm | am(자정부터 정오까지) 및 pm(정오부터 자정까지)| +| %A | AM 또는 PM | AM(자정부터 정오까지) 및 PM(정오부터 자정까지)| +| %c | ISO 8601 날짜 형식으로 날짜와 시간 표시 | 2024-10-04T05:04:09 | + +2024년 9월 20일 16:47:08.128을 *2024-09-20 16:47:08.128*로 표시하려면 `"%Y-%m-%d %H:%i:%s.%S"` 형식을 사용하십시오. + +## 숫자 형식 지정 {#number-formatting} + +Pivot는 현재 로케일의 `lang` 값을 기반으로 모든 `number` 필드를 로컬라이즈합니다. 위젯은 [`Intl.NumberFormat`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat) 사양을 사용합니다. 기본 설정은 소수 자릿수를 3자리로 제한하고 정수 부분에 그룹 구분자를 적용합니다. + +특정 숫자 필드의 형식 지정을 건너뛰거나 커스텀 형식을 설정하려면 [`fields`](api/config/fields-property.md) 속성의 `format` 파라미터를 사용하십시오. `format`을 `false`로 설정하면 형식 지정이 비활성화되고, 형식 설정이 담긴 객체로 설정할 수도 있습니다([필드에 형식 적용](guides/working-with-data.md#applying-formats-to-fields) 참조). + +다음 코드 스니펫은 `year` 필드의 숫자 형식 지정을 비활성화합니다: + +~~~jsx +const fields = [ + { id: "year", label: "Year", type: "number", format: false }, +]; +~~~ + +## 예제 {#example} + +아래 스니펫은 여러 로케일 간 전환을 보여줍니다: + + diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/guides/stylization.md b/i18n/ko/docusaurus-plugin-content-docs/current/guides/stylization.md new file mode 100644 index 0000000..53786da --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/guides/stylization.md @@ -0,0 +1,266 @@ +--- +sidebar_label: 스타일링 +title: 스타일링 +description: DHTMLX JavaScript Pivot 라이브러리 문서에서 스타일링에 대해 알아볼 수 있습니다. 개발자 가이드와 API 레퍼런스를 살펴보고, 코드 예제와 라이브 데모를 체험해 보세요. DHTMLX Pivot 무료 30일 평가판도 다운로드할 수 있습니다. +--- + +# 스타일링 {#styling} + +Pivot은 기본 테마를 제공하며, 사용자 정의를 위한 CSS 변수와 유틸리티 클래스를 노출합니다. 위젯 컨테이너(또는 상위 요소)에서 변수를 재정의하여 색상, 테두리 및 기타 시각적 속성을 변경할 수 있습니다. + +## 기본 스타일 {#default-style} + +Pivot의 기본 테마는 **Material**입니다. 다음 CSS 코드는 Material 테마가 위젯 컨테이너에 설정하는 변수를 보여줍니다: + +~~~css +.wx-material-theme { + --wx-theme-name: material; + --wx-pivot-primary-hover: #194e9e; + --wx-pivot-border-color: var(--wx-color-font-disabled); + --wx-pivot-field-hover: linear-gradient( + rgba(0, 0, 0, 0.1) 0%, + rgba(0, 0, 0, 0.1) 100% + ); +} +~~~ + +:::tip 참고 +Pivot의 향후 버전에서는 CSS 변수 이름이 변경될 수 있습니다. 업그레이드 후 변수 이름을 확인하고, 표시 문제가 발생하지 않도록 코드에서 업데이트하십시오. +::: + +## 내장 테마 {#built-in-theme} + +Pivot은 하나의 내장 테마인 **Material**을 제공합니다. 위젯 컨테이너에 테마 클래스를 추가하거나, 페이지에 미리 빌드된 스킨 스타일시트를 포함하여 테마를 적용할 수 있습니다. + +다음 코드는 위젯 컨테이너에 `wx-material-theme` 클래스를 추가하여 Material 테마를 적용합니다: + +~~~html {} + +
+~~~ + +다음 코드는 Material 스킨 스타일시트를 직접 포함합니다: + +~~~html {} + +~~~ + +## 내장 테마 사용자 정의 {#customize-built-in-theme} + +`.wx-material-theme` 선택자에서 Material 테마 변수를 재정의하여 색상, 테두리 및 기타 시각적 속성을 변경할 수 있습니다. + +아래 예제는 Material 테마 변수를 재정의하여 Pivot을 어두운 색상 구성표로 렌더링합니다: + +~~~html + + +~~~ + +## 사용자 정의 스타일 {#custom-style} + +위젯 컨테이너에 적용된 사용자 정의 클래스에서 CSS 변수를 재정의하여 Pivot의 외관을 변경할 수 있습니다. + +아래 예제는 `.demo` 클래스를 통해 Pivot에 사용자 정의 스타일을 적용합니다: + +~~~html +
+ +~~~ + +## 스크롤 스타일 {#scroll-style} + +`.wx-styled-scroll` CSS 클래스를 사용하여 Pivot 스크롤 바에 사용자 정의 스타일을 적용하십시오. 사용 전에 브라우저 호환성을 확인하십시오: [caniuse: CSS Scrollbar](https://caniuse.com/css-scrollbar). + +다음 코드는 위젯 컨테이너에 스타일이 적용된 스크롤 바를 활성화합니다: + +~~~html {} title="index.html" + +
+~~~ + +## 셀 스타일 {#cell-style} + +본문 또는 푸터 셀에 스타일을 적용하려면 [`tableShape`](api/config/tableshape-property.md) 속성의 `cellStyle` 파라미터를 사용하십시오. 헤더 셀에 스타일을 적용하려면 [`headerShape`](api/config/headershape-property.md) 속성의 `cellStyle` 파라미터를 사용하십시오. 두 경우 모두 `cellStyle` 함수는 Pivot이 셀에 적용할 CSS 클래스 이름을 반환합니다. + +아래 예제는 본문 셀과 헤더 셀에 스타일을 적용합니다: + +- 본문 셀은 셀 값(예: `status` 필드의 `"Down"`, `"Up"`, `"Idle"`)과 합계 값(40보다 크거나 5보다 작은 경우)에 따라 클래스를 받습니다. +- 헤더 셀은 `streaming` 필드의 값에 따라 클래스를 받습니다 — `"no"`이면 `status-down`, 다른 값이면 `status-up` + +~~~jsx +const widget = new pivot.Pivot("#pivot", { + tableShape: { + totalColumn: true, + totalRow:true, + cellStyle: (field, value, area, method, isTotal) => { + if (field === "status" && area === "rows" && value) { + if (value === "Down") { + return "status-down"; + } else if (value === "Up") { + return "status-up"; + } else if (value === "Idle") { + return "status-idle"; + } + } + if(isTotal ==="column" && area == "values"){ + if(value > 40) + return "status-up"; + else if (value < 5) + return "status-down"; + } + } + }, + headerShape:{ + cellStyle:(field, value, area, method, isTotal) => { + if(field == "streaming") + return value ==="no"?"status-down":"status-up"; + } + }, + fields, + data: dataset, + config: { + rows: [ + "protocol", + "status", + ], + columns: [ + "streaming" + ], + values: [ + { + field: "id", + method: "count" + } + ] + } +}); +~~~ + +## 셀의 값 표시 {#mark-values-in-cells} + +[`tableShape`](api/config/tableshape-property.md) 속성의 `marks` 파라미터를 사용하여 조건을 충족하는 셀에 CSS 클래스를 적용하십시오. `marks`의 각 항목은 CSS 클래스 이름(키)과 규칙(값)을 쌍으로 연결합니다. + +규칙은 사전 정의된 문자열(`"max"` 또는 `"min"`)이거나 사용자 정의 함수 `(value, columnData, rowData) => boolean`입니다. 함수가 `true`를 반환하면 Pivot은 해당 셀에 CSS 클래스를 추가합니다. + +`marks`를 적용하기 전에 스타일시트에 CSS 클래스를 미리 생성하십시오. + +아래 예제는 최솟값과 최댓값이 있는 셀을 강조 표시하고, 사용자 정의 함수를 사용하여 2보다 큰 비정수 값을 표시합니다: + +~~~jsx {18-26} +const table = new pivot.Pivot("#root", { + fields, + data, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + }, + tableShape: { + marks: { + // 내장 marks (최솟값/최댓값 강조 표시) + min_cell: "min", + max_cell: "max", + // 사용자 정의 mark + g_avg: v => (v % 1 !== 0) && v > 2 + } + } +}); +~~~ + +다음 코드는 위의 `marks` 객체에서 참조하는 CSS 클래스를 정의합니다: + +~~~html title="index.html" + +~~~ + +## 특정 CSS 클래스 {#specific-css-classes} + +Pivot은 테이블 요소를 세밀하게 제어할 수 있는 여러 유틸리티 CSS 클래스를 제공하며, 이를 재정의할 수 있습니다. + +Pivot은 내장 `.wx-number` CSS 클래스를 통해 본문 셀의 숫자를 오른쪽으로 정렬합니다. 단, [`tableShape`](api/config/tableshape-property.md)에서 `tree: true`가 설정된 경우(트리 모드)의 계층적 열은 예외입니다. 기본 숫자 정렬을 초기화하려면 해당 클래스를 재정의하십시오. + +다음 코드는 본문 셀의 숫자를 왼쪽으로 정렬합니다: + +~~~html + +~~~ + +합계 열에 스타일을 적용하려면 `.wx-total` CSS 클래스를 재정의하십시오. + +다음 코드는 합계 셀에 밝은 배경과 굵은 글꼴 두께를 적용합니다: + +~~~html + +~~~ + +## 예제 {#example} + +아래 코드는 Pivot에 사용자 정의 스타일을 적용합니다: + + + +**관련 샘플**: + +- [Pivot 2. 합계 열에 대한 스타일링 (사용자 정의 CSS)](https://snippet.dhtmlx.com/9lkdbzmm) +- [Pivot 2. 셀에 대한 최솟값/최댓값 및 사용자 정의 marks (조건부 형식)](https://snippet.dhtmlx.com/4cm4asbd) +- [Pivot 2. 교대 행 색상 (줄무늬 행, 얼룩말 줄무늬)](https://snippet.dhtmlx.com/0cm0uko2) diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/guides/typescript-support.md b/i18n/ko/docusaurus-plugin-content-docs/current/guides/typescript-support.md new file mode 100644 index 0000000..4af2dd4 --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/guides/typescript-support.md @@ -0,0 +1,17 @@ +--- +sidebar_label: TypeScript 지원 +title: TypeScript 지원 +description: DHTMLX JavaScript Pivot 라이브러리와 함께 TypeScript를 사용하는 방법을 문서에서 확인하실 수 있습니다. 개발자 가이드와 API 레퍼런스를 살펴보고, 코드 예제와 라이브 데모를 체험해 보세요. DHTMLX Pivot 무료 30일 평가판도 다운로드할 수 있습니다. +--- + +# TypeScript 지원 {#typescript-support} + +DHTMLX Pivot은 v2.0부터 TypeScript 정의를 제공합니다. 별도의 추가 설정 없이 바로 사용할 수 있습니다. + +:::info +[Snippet Tool](https://snippet.dhtmlx.com/y2buoahe)에서 Pivot을 직접 체험해 보세요. +::: + +## TypeScript의 장점 {#advantages-of-typescript} + +타입 검사와 자동 완성 기능을 통해 오류를 조기에 발견할 수 있으며, 번들로 제공되는 정의 파일을 통해 DHTMLX Pivot API가 요구하는 데이터 타입을 정확히 확인할 수 있습니다. diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/guides/working-with-data.md b/i18n/ko/docusaurus-plugin-content-docs/current/guides/working-with-data.md new file mode 100644 index 0000000..bd18f7a --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/guides/working-with-data.md @@ -0,0 +1,687 @@ +--- +sidebar_label: 데이터 작업 +title: 데이터 작업 +description: DHTMLX JavaScript Pivot 라이브러리 문서에서 데이터 작업 방법을 살펴볼 수 있습니다. 개발자 가이드와 API 참조를 확인하고, 코드 예제와 라이브 데모를 직접 실행해 보세요. 또한 DHTMLX Pivot의 무료 30일 평가판을 다운로드할 수 있습니다. +--- + +# 데이터 작업 + +이 페이지에서는 Pivot에서 데이터를 집계, 포맷, 정렬, 필터링 및 전처리하는 방법을 설명합니다. 데이터 로드 및 내보내기에 관한 안내는 [데이터 로드](guides/loading-data.md)와 [데이터 내보내기](guides/exporting-data.md)를 참조하십시오. + +## 필드 정의 {#define-fields} + +[`fields`](api/config/fields-property.md) 속성을 사용하여 Pivot이 행, 열, 값에 배치할 수 있는 필드를 선언합니다. `fields` 배열의 각 항목은 하나의 필드를 설명하며, 해당 필드의 ID, 레이블, 데이터 타입을 포함합니다. + +다음 코드 예제는 다섯 개의 필드로 Pivot을 초기화합니다: + +~~~jsx +const table = new pivot.Pivot("#root", { + fields: [ + { id: "year", label: "Year", type: "number" }, + { id: "continent", label: "Continent", type: "text" }, + { id: "form", label: "Form", type: "text" }, + { id: "oil", label: "Oil", type: "number" }, + { id: "balance", label: "Balance", type: "number" } + ], + data, + config: {...} +}); +~~~ + +## 필드에 포맷 적용 {#applying-formats-to-fields} + +Pivot은 현재 로케일을 기준으로 숫자 및 날짜 필드에 기본 포맷을 적용합니다. 자세한 내용은 [날짜 포맷](guides/localization.md#date-formatting) 및 [숫자 포맷](guides/localization.md#number-formatting)을 참조하십시오. + +특정 필드의 기본값을 재정의하려면 [`fields`](api/config/fields-property.md) 속성의 `format` 파라미터를 설정합니다. + +### 숫자 필드 포맷 {#format-numeric-fields} + +`prefix`와 `suffix`를 사용하여 숫자 값 앞뒤에 텍스트를 추가하고, `maximumFractionDigits`로 소수점 자릿수를 제어합니다. 예를 들어 `12.345`를 `"12.35 EUR"`로 표시하려면 suffix를 `" EUR"`로, `maximumFractionDigits`를 `2`로 설정합니다: + +~~~js +const fields = [ + { id: "sales", type: "number", format: { suffix: " EUR", maximumFractionDigits: 2 } }, +]; +~~~ + +기본 포맷은 숫자 필드의 소수점 자릿수를 3자리로 제한하고 정수 부분에 천 단위 구분자를 적용합니다. 포맷을 완전히 비활성화하려면 `format`을 `false`로 설정합니다: + +~~~js +const fields = [ + { id: "year", label: "Year", type: "number", format: false }, +]; +~~~ + +아래 예제는 `marketing`, `profit`, `sales`를 `$` 접두사와 고정 2자리 소수점이 있는 통화 필드로 지정합니다: + +~~~jsx +// 사전 정의된 데이터셋과 필드로 Pivot 초기화 +new pivot.Pivot("#pivot", { + data, + config: { + rows: ["state", "product_type"], + columns: [], + values: [ + { field: "marketing", method: "sum" }, + // 다른 값들 + + ], + }, + fields:[ + // 커스텀 포맷 + { id: "marketing", label: "Marketing", type:"number", format:{ + prefix: "$", minimumFractionDigits: 2, maximumFractionDigits: 2 } + } + ] +}); +~~~ + +### 날짜 필드 포맷 {#format-date-fields} + +단일 필드에 대해 로케일 전체의 `dateFormat`을 재정의하려면 [`fields`](api/config/fields-property.md)의 `format` 파라미터를 날짜 포맷 문자열로 설정합니다. + +다음 코드 예제는 `date` 필드의 포맷을 `"%M %d, %Y"`로 설정합니다: + +~~~jsx +const fields = [ + { id: "date", type: "date", format: "%M %d, %Y" }, +]; +~~~ + +아래 예제는 문자열 날짜를 `Date` 객체로 변환한 다음, `date` 필드에 대해 `"%d %M %Y %H:%i"` 포맷으로 Pivot을 초기화합니다. 필드 값은 `"24 April 2025 14:30"`과 같은 레이블로 표시됩니다. + +~~~jsx +// 날짜 문자열을 Date 객체로 변환 +const dateFields = fields.filter(f => f.type === "date"); +dataset.forEach(item => { + dateFields.forEach(f => { + const v = item[f.id]; + if (typeof v === "string") { + item[f.id] = new Date(v); + } + }); +}); + +// 필드별 날짜 포맷으로 Pivot 초기화 +new pivot.Pivot("#pivot", { + data, + config: { + rows: ["state"], + columns: ["product_type"], + values: [ + { field: "date", method: "min" }, + { field: "profit", method: "sum" }, + { field: "sales", method: "sum" } + ] + }, + fields:[ + // 커스텀 포맷: 일 월 년 시:분 + { id: "date", label: "Date", type: "date", format: "%d %M %Y %H:%i" } + ] +}); +~~~ + +:::note +`xlsx` 내보내기 포맷의 경우, Pivot은 날짜 및 숫자 필드를 기본 포맷(또는 [`fields`](api/config/fields-property.md) 속성으로 정의된 포맷)과 함께 원시 값으로 내보냅니다. 필드에 템플릿이 정의된 경우([`tableShape`](api/config/tableshape-property.md) 속성 참조), Pivot은 해당 템플릿이 생성한 렌더링된 값을 내보냅니다. `template`과 `format`이 모두 설정된 경우, 템플릿이 포맷보다 우선합니다. +::: + +## Pivot 구조 정의 {#define-pivot-structure} + +[`config`](api/config/config-property.md) 속성을 사용하여 행, 열, 집계 값으로 표시할 필드와 데이터 필터링 방식을 선언합니다. `config` 속성에는 사전 정의된 값이 없으므로 데이터를 렌더링하려면 반드시 설정해야 합니다. 전체 파라미터 목록은 [`config`](api/config/config-property.md) 참조를 확인하십시오. + +다음 코드 예제는 `continent`와 `name`을 행에, `year`를 열에, 세 개의 집계를 값에, `name`에 대한 필터를 배치합니다: + +~~~jsx {4-18} +const table = new pivot.Pivot("#root", { + fields, + data, + config: { + rows: ["continent", "name"], + columns: ["year"], + values: [ + "count(oil)", + { field: "oil", method: "sum" }, + { field: "gdp", method: "sum" } + ] + }, + fields, + filters: { + name: { + contains: "B" + } + } +}); +~~~ + +## 데이터 정렬 {#sorting-data} + +Pivot은 집계 중에 세 영역(값, 열, 행) 모두에서 정렬을 지원합니다. UI에서 사용자는 열 헤더를 클릭하여 정렬합니다. + +기본 정렬을 설정하려면 [`fields`](api/config/fields-property.md) 속성의 `sort` 파라미터를 사용합니다. 이 파라미터는 `"asc"`, `"desc"`, 또는 커스텀 비교 함수를 받습니다. + +아래 예제는 Pivot 위에 클릭 가능한 필드 레이블을 렌더링하고 클릭 시 정렬 방향을 전환합니다: + +~~~jsx +const bar = document.getElementById("bar"); + +let sorted = ["studio", "genre"]; +setFields(); +bar.addEventListener('click', (e) => switchSort(e.target.id), false); + +function setFields(){ + let html = ""; + let sortedFields = fields.filter(f => (sorted.indexOf(f.id) != -1)); + + sortedFields.forEach((f) =>{ + const order = f.sort || "asc"; + html += `
+ ${f.label} +
`; + }); + bar.innerHTML = html; +} + +function switchSort(id){ + fields.forEach(f => { + if(f.id == id){ + f.sort = f.sort != "desc" ? "desc" : "asc"; + } + }); + // Pivot fields 업데이트 + table.setConfig({ fields }); + // 아이콘 새로고침 + setFields(bar, fields); +} + +const table = new pivot.Pivot("#root", { + fields, + data: dataset, + config: { + rows: [ + "studio", + "genre" + ], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + } +}); +~~~ + +UI에서의 정렬은 기본적으로 활성화되어 있습니다. 비활성화하려면 [`columnShape`](api/config/columnshape-property.md) 속성의 `sort` 파라미터를 `false`로 설정합니다. + +다음 코드 예제는 UI 정렬을 비활성화합니다: + +~~~jsx {19} +const table = new pivot.Pivot("#root", { + fields, + data, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + }, + columnShape: { + sort: false + } +}); +~~~ + +## 데이터 필터링 {#filtering-data} + +Pivot은 필드 데이터 타입에 연결된 필터를 지원합니다. 초기화 후 Pivot UI를 통해 필터를 설정하거나, [`config`](api/config/config-property.md) 속성의 `filters` 객체를 통해 선언적으로 설정할 수 있습니다. + +UI에서 필터는 각 필드의 드롭다운 목록으로 표시됩니다. + +#### 필터 타입 {#filter-types} + +Pivot은 데이터 타입별로 다음과 같은 필터 조건을 지원합니다: + +- 텍스트 필드 — `equal`, `notEqual`, `contains`, `notContains`, `beginsWith`, `notBeginsWith`, `endsWith`, `notEndsWith`, `includes` +- 숫자 필드 — `equal`, `notEqual`, `greater`, `greaterOrEqual`, `less`, `lessOrEqual`, `contains`, `notContains`, `beginsWith`, `notBeginsWith`, `endsWith`, `notEndsWith` +- 날짜 필드 — `equal`, `notEqual`, `greater`, `greaterOrEqual`, `less`, `lessOrEqual`, `between`, `notBetween`, `includes` + +`includes` 규칙은 필터를 특정 허용 값 집합으로 제한합니다. + +#### 필터 추가 {#add-a-filter} + +필터를 선언하려면 [`config`](api/config/config-property.md) 속성에 `filters` 객체를 추가하고 필드 ID를 키로 사용합니다. 각 값은 필터 조건 객체입니다. + +다음 코드 예제는 두 개의 필터를 적용합니다 — `genre`에 하나(`"D"`를 포함하는 값, `"Drama"`로 제한)와 `title`에 하나(`"A"`를 포함하는 값): + +~~~jsx +const table = new pivot.Pivot("#root", { + fields, + data: dataset, + config: { + rows: ["studio", "genre"], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ], + filters: { + genre: { + contains: "D", + includes: ["Drama"] + }, + title: { + // 다른 필드("title")에 대한 필터 + contains: "A" + } + } + } +}); +~~~ + +:::info +Table widget API를 통해 데이터를 필터링하려면, [`getTable`](api/methods/gettable-method.md) 메서드로 Table 인스턴스에 접근하고 [`filter-rows`](api/table/filter-rows.md) 이벤트를 사용합니다. +::: + +## 로드되는 데이터 제한 {#limiting-loaded-data} + +매우 큰 데이터셋에서 컴포넌트가 멈추는 것을 방지하기 위해, [`limits`](api/config/limits-property.md) 속성으로 최종 데이터셋의 행과 열 수를 제한합니다. Pivot은 제한에 도달하면 렌더링을 중단합니다. 기본 제한은 행 10000개, 열 5000개입니다. + +:::note +제한은 대규모 데이터셋에 적용됩니다. 이 숫자는 근사값이며, Pivot은 정확한 행/열 수를 보장하지 않습니다. +::: + +다음 코드 예제는 데이터셋을 행 10개, 열 3개로 제한합니다: + +~~~jsx +const table = new pivot.Pivot("#root", { + fields, + data: dataset, + config: { + rows: ["studio"], + columns: ["genre"], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + }, + limits: { rows: 10, columns: 3 } +}); +~~~ + +## 수학 메서드 적용 {#applying-maths-methods} + +### 기본 메서드 {#default-methods} + +Pivot에는 다음과 같은 기본 집계 메서드가 포함되어 있습니다: + +- `sum` (숫자 값만) — 선택된 모든 값을 합산하며, 빈 셀, `TRUE`와 같은 논리 값, 텍스트는 무시합니다 +- `min` (숫자 및 날짜 값) — 최솟값을 반환하며, 빈 셀, 논리 값, 텍스트는 무시합니다. 입력에 숫자가 없으면 `0`을 반환합니다 +- `max` (숫자 및 날짜 값) — 최댓값을 반환하며, 빈 셀, 논리 값, 텍스트는 무시합니다. 입력에 숫자가 없으면 `0`을 반환합니다 +- `count` (숫자, 텍스트, 날짜 값) — 비어 있지 않은 셀을 계산하며, 새로 추가된 모든 필드에 기본으로 할당되는 메서드입니다 +- `countunique` (숫자 및 텍스트 값) — 입력에서 고유한 값의 수를 계산합니다 +- `average` (숫자 값만) — 입력의 산술 평균을 계산하며, 빈 셀, 논리 값, 텍스트는 무시합니다. 값이 0인 셀은 포함합니다 +- `counta` (숫자, 텍스트, 날짜 값) — 숫자, 날짜, 텍스트를 포함한 모든 비어 있지 않은 값을 계산합니다 +- `median` (숫자 값만) — 입력의 중앙값을 반환합니다 +- `product` (숫자 값만) — 입력의 모든 숫자의 곱을 반환합니다 +- `stdev` (숫자 값만) — 표준 편차이며, 입력을 더 큰 집합의 표본으로 처리합니다 +- `stdevp` (숫자 값만) — 표준 편차이며, 입력을 전체 모집단으로 처리합니다 +- `var` (숫자 값만) — 분산이며, 입력을 더 큰 집합의 표본으로 처리합니다 +- `varp` (숫자 값만) — 분산이며, 입력을 전체 모집단으로 처리합니다 + +다음 코드 예제는 내장 메서드 정의를 보여줍니다: + +~~~jsx +const defaultMethods = { + sum: { type: "number", label: "sum" }, + min: { type: ["number", "date"], label: "min" }, + max: { type: ["number", "date"], label: "max" }, + count: { + type: ["number", "date", "text"], + label: "count", + branchMath: "sum" + }, + counta: { + type: ["number", "date", "text"], + label: "counta", + branchMath: "sum" + }, + countunique: { + type: ["number", "text"], + label: "countunique", + branchMath: "sum" + }, + average: { type: "number", label: "average", branchMode: "raw" }, + median: { type: "number", label: "median", branchMode: "raw" }, + product: { type: "number", label: "product" }, + stdev: { type: "number", label: "stdev", branchMode: "raw" }, + stdevp: { type: "number", label: "stdevp", branchMode: "raw" }, + var: { type: "number", label: "var", branchMode: "raw" }, + varp: { type: "number", label: "varp", branchMode: "raw" } +}; +~~~ + +[`config`](api/config/config-property.md) 속성의 `values` 파라미터를 통해 기본 메서드를 적용합니다. [값 정의](#options-for-defining-values)를 참조하십시오. + +다음 코드 예제는 `title` 필드에 `count`를, `score` 필드에 `max`를 할당합니다: + +~~~jsx +const table = new pivot.Pivot("#root", { + fields, + data, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + // 필드 id + field: "title", + // 메서드 + method: "count" + }, + { + id: "score", + method: "max" + } + ] + } +}); +~~~ + +### 값 정의 {#options-for-defining-values} + +`values`의 각 항목을 다음 두 가지 동등한 형식 중 하나로 정의합니다: + +- `"operation(fieldID)"` 형식의 문자열 +- `{ field: string, method: string }` 객체 (두 필드 모두 필수) + +다음 코드 예제는 같은 `values` 배열에서 두 형식을 모두 사용합니다: + +~~~jsx +values: [ + "sum(sales)", // 방법 1 + { field: "sales", method: "sum" } // 방법 2 +] +~~~ + +### 기본 메서드 재정의 {#override-the-default-method} + +새로 추가된 각 필드에 대해 Pivot은 해당 데이터 타입에 사용 가능한 첫 번째 메서드를 할당합니다. 이 동작을 변경하려면 [`api.intercept`](api/internal/intercept-method.md) 메서드로 `add-field` 이벤트를 인터셉트합니다. + +아래 예제는 `add-field`를 인터셉트하여 숫자 필드가 추가될 때마다 `max` 메서드를 강제로 적용합니다: + +~~~jsx {20-27} +const table = new pivot.Pivot("#root", { + fields, + data: dataset, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count", + }, + { + field: "score", + method: "max", + }, + ], + }, +}); +// 새로 추가된 숫자 필드에 대한 기본 메서드 재정의 +table.api.intercept("add-field", (ev) => { + const { fields } = table.api.getState(); + const type = fields.find((f) => f.id == ev.field).type; + + if (ev.area == "values" && type == "number") { + ev.method = "max"; + } +}); +~~~ + +### 커스텀 수학 메서드 추가 {#add-custom-math-methods} + +커스텀 집계 메서드를 추가하려면 [`methods`](api/config/methods-property.md) 속성을 사용합니다. 각 항목은 메서드 이름(키)과 `handler` 함수 및 메타데이터를 포함하는 구성 객체를 쌍으로 구성합니다. `handler`는 값 배열을 받아 단일 집계 값을 반환합니다. + +아래 예제는 두 개의 날짜별 메서드를 추가합니다. `countunique_date`는 숫자 타임스탬프를 기준으로 고유한 날짜를 계산합니다. `average_date`는 타임스탬프의 평균을 구해 평균 날짜를 반환합니다: + +~~~jsx +function countUnique(values, converter) { + const valueMap = {}; + return values.reduce((acc, d) => { + if (converter) d = converter(d); + if (!valueMap[d]) { + acc++; + valueMap[d] = true; + } + return acc; + }, 0); +} + +const methods = { + countunique_date: { + handler: values => countUnique(values, v => new Date(v).getTime()), + type: "date", + label: "CountUnique", + }, + average_date: { + type: "date", + label: "Average", + branchMode: "raw", + handler: values => { + if (!values.length) return null; + const sum = values.reduce((acc, d) => acc + d.getTime(), 0); + const avgTime = sum / values.length; + return new Date(avgTime); + } + } +}; + +// "count" 및 "unique count" 결과에 대해 정수 표시 +const templates = {}; +fields.forEach(f => { + if (f.type == "number") + templates[f.id] = (v, method) => + v && method.indexOf("count") < 0 ? parseFloat(v).toFixed(3) : v; +}); + +// 날짜 문자열을 Date 객체로 변환 +const dateFields = fields.filter(f => f.type == "date"); +if (dateFields.length) { + dataset.forEach(item => { + dateFields.forEach(f => { + const v = item[f.id]; + if (typeof v == "string") item[f.id] = new Date(v); + }); + }); +} + +const table = new pivot.Pivot("#root", { + fields, + data: dataset, + tableShape: { templates }, + methods: { ...pivot.defaultMethods, ...methods }, + config:{ + rows: ["state"], + columns: [ + "product_line", + "product_type" + ], + values: [ + { + field: "sales", + method: "sum" + }, + { + field: "sales", + method: "count" + }, + { + field: "date", + method: "countunique_date" + }, + { + field: "date", + method: "average_date" + } + ] + } +}); +~~~ + +## 프레디케이트로 데이터 처리 {#processing-data-with-predicates} + +프레디케이트(predicate)는 Pivot이 행이나 열에서 데이터를 사용하기 전에 원시 필드 데이터를 변환하는 전처리 함수입니다. 예를 들어, 프레디케이트는 집계 전에 날짜를 월별로 그룹화할 수 있습니다. + +다음 코드 예제는 Pivot이 기본적으로 적용하는 내장 날짜 프레디케이트를 보여줍니다: + +~~~jsx +const defaultPredicates = { + year: { label: "Year", type: "date", filter: { type: "number" } }, + quarter: { label: "Quarter", type: "date", filter: { type: "tuple" } }, + month: { label: "Month", type: "date", filter: { type: "tuple" } }, + week: { label: "Week", type: "date", filter: { type: "tuple" } }, + day: { label: "Day", type: "date", filter: { type: "number" } }, + hour: { label: "Hour", type: "date", filter: { type: "number" } }, + minute: { label: "Minute", type: "date", filter: { type: "number" } } +}; +~~~ + +커스텀 프레디케이트를 추가하려면 [`predicates`](api/config/predicates-property.md) 속성을 구성합니다. 각 항목은 프레디케이트 ID(키)와 구성 객체를 쌍으로 구성합니다: + +- `type` — 이 프레디케이트가 받는 필드 타입 (`"number"`, `"date"`, `"text"` 또는 배열) +- `label` — 행/열의 GUI 드롭다운에 표시되는 프레디케이트 레이블 +- `handler` — 값을 변환하고 처리된 값을 반환하는 함수 +- `template` — 처리된 값의 표시 방식을 제어하는 선택적 함수 +- `field` — 프레디케이트를 특정 필드로 제한하는 선택적 함수 +- `filter` — 필터 타입이 `type`과 달라야 하거나, 데이터 포맷이 `template`과 달라야 할 때 사용하는 선택적 필터 구성 + +커스텀 프레디케이트를 사용하려면 해당 ID를 프레디케이트가 적용될 행 또는 열의 `method`로 설정합니다. + +다음 코드 예제는 두 개의 커스텀 프레디케이트(`monthYear`와 `profitSign`)를 등록하고 `columns` 구성에 적용합니다: + +~~~jsx +const predicates = { + monthYear: { + label: "Month-year", + type: "date", + handler: (d) => new Date(d.getFullYear(), d.getMonth(), 1), + template: (date, locale) => { + const months = locale.getRaw().calendar.monthFull; + return months[date.getMonth()] + " " + date.getFullYear(); + }, + }, + profitSign: { + label: "Profit Sign", + type: "number", + filter: { + type: "tuple", + format: (v) => (v < 0 ? "Negative" : "Positive"), + }, + field: (f) => f === "profit", + handler: (v) => (v < 0 ? -1 : 1), + template: (v) => (v < 0 ? "Negative profit" : "Positive profit"), + }, +}; + +// 날짜 문자열을 Date 객체로 변환 +const dateFields = fields.filter((f) => f.type == "date"); +if (dateFields.length) { + dataset.forEach((item) => { + dateFields.forEach((f) => { + const v = item[f.id]; + if (typeof v == "string") item[f.id] = new Date(v); + }); + }); +} + +const table = new pivot.Pivot("#pivot", { + fields, + data: dataset, + predicates: { ...pivot.defaultPredicates, ...predicates }, + tableShape: { tree: true }, + config: { + rows: ["product_type", "product"], + columns: [ + { field: "profit", method: "profitSign" }, + { field: "date", method: "monthYear" }, + ], + values: ["sales", "expenses"], + }, +}); +~~~ + +## 합계 값이 있는 열과 행 추가 {#add-columns-and-rows-with-total-values} + +[`tableShape`](api/config/tableshape-property.md) 속성을 사용하여 오른쪽에 합계 열(`totalColumn: true`)이나 합계 푸터 행(`totalRow: true`)을 렌더링합니다. + +다음 코드 예제는 합계 열과 합계 행을 모두 활성화합니다: + +~~~jsx {2-5} +const table = new pivot.Pivot("#root", { + tableShape: { + totalRow: true, + totalColumn: true + }, + fields, + data, + config: { + rows: ["studio"], + columns: ["type"], + values: [ + { + field: "score", + method: "max" + }, + { + field: "episodes", + method: "count" + }, + { + field: "rank", + method: "min" + }, + { + field: "members", + method: "sum" + } + ] + } +}); +~~~ + +## 예제 {#example} + +아래 코드 예제는 커스텀 수학 연산을 적용합니다: + + + +**관련 샘플:** + +- [Pivot 2. 별칭이 있는 데이터셋](https://snippet.dhtmlx.com/7vc68rqd) +- [Pivot 2. 필드 포맷 정의](https://snippet.dhtmlx.com/77nc4j8v) +- [Pivot 2. 외부 필터](https://snippet.dhtmlx.com/s7tc9g4z) +- [Pivot 2. 열과 행의 총합계](https://snippet.dhtmlx.com/f0ag0t9t) diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/guides/working-with-server.md b/i18n/ko/docusaurus-plugin-content-docs/current/guides/working-with-server.md new file mode 100644 index 0000000..c65cbcd --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/guides/working-with-server.md @@ -0,0 +1,172 @@ +--- +sidebar_label: 서버와 연동하기 +title: 서버와 연동하기 +description: DHTMLX JavaScript Pivot 라이브러리 문서에서 Pivot을 백엔드와 통합하는 방법을 살펴볼 수 있습니다. 개발자 가이드와 API 레퍼런스를 참고하고, 코드 예제와 라이브 데모를 직접 체험해 보세요. DHTMLX Pivot 30일 무료 평가판도 다운로드할 수 있습니다. +--- + +Pivot은 전적으로 브라우저에서 실행됩니다. 위젯은 원시 행 배열과 [`config`](/api/config/config-property)(rows / columns / values)를 받아 클라이언트 측에서 행을 집계합니다. 내장된 전송 계층은 없지만, 공개 API에는 백엔드와의 왕복 통신을 위한 훅이 노출되어 있습니다. + +일반적인 통합은 세 부분으로 구성됩니다. + +1. **데이터 로드** — 초기화 시 서버에서 집계되지 않은 원시 데이터를 불러옵니다 +2. **config 저장** — 사용자가 레이아웃을 변경할 때 저장하여 세션을 나중에 재개할 수 있도록 합니다 +3. **집계된 테이블 저장** — 서버에서 집계 결과의 스냅샷이 필요할 때 저장합니다 + +## 서버에서 원시 데이터 로드하기 {#load-raw-data-from-the-server} + +[`data`](/api/config/data-property) 프로퍼티는 원시 행 객체의 배열을 받습니다. Pivot이 행을 직접 집계하므로 서버는 집계되지 않은 데이터를 반환합니다. + +`fetch`(또는 다른 HTTP 클라이언트)를 사용하여 데이터와 필드를 가져온 뒤, 응답이 도착하면 위젯을 생성합니다. + +~~~html +
+ + +~~~ + +서버가 날짜 필드를 ISO 문자열로 반환하는 경우, 배열을 Pivot에 전달하기 전에 `Date` 인스턴스로 변환하세요. 날짜 타입 필드의 집계 메서드는 실제 `Date` 값을 필요로 합니다. + +~~~jsx +data.forEach(row => { + if (typeof row.when === "string") row.when = new Date(row.when); +}); +~~~ + +:::info +**참고 항목**: +- [데이터 로드하기](/guides/loading-data) +- [날짜 포맷](/guides/localization#date-formatting) +::: + +## 세션 재개를 위한 사용자 레이아웃 저장하기 {#save-the-users-layout-to-resume-the-session} + +사용자가 이전에 사용하던 레이아웃으로 돌아올 수 있도록 하려면, 변경이 있을 때마다 [`config`](/api/config/config-property) 객체를 저장하세요. [`update-config`](/api/events/update-config-event) 이벤트는 사용자가 UI를 통해 레이아웃을 편집할 때 발생합니다. 페이로드는 `{ rows, columns, values, filters }` 형태의 처리된 config입니다. + +이벤트를 수정 없이 관찰하려면 [`api.on()`](/api/internal/on-method)을 사용하세요. 핸들러에서 이벤트 페이로드를 변경해야 할 경우에는 [`api.intercept()`](/api/internal/intercept-method)로 전환하세요. + +아래 예제는 `update-config` 이벤트를 구독하고 새 레이아웃을 서버에 POST합니다. + +~~~html +
+ + +~~~ + +다음 방문 시, `/config`에서 저장된 config를 반환하고 초기화 시 `config` 프로퍼티로 전달하세요. 위젯이 이전 레이아웃으로 시작됩니다. 위젯이 이미 존재한 후 레이아웃이 도착한다면, [`setConfig()`](/api/methods/setconfig-method) 메서드로 저장된 config를 적용하세요. + +사용자가 구성 패널에서 필드를 드래그할 때 빈번한 업데이트로 서버에 부하가 걸릴 수 있습니다. 타이머로 POST 요청을 디바운스하세요. + +~~~jsx +let saveTimer; +table.api.on("update-config", newConfig => { + clearTimeout(saveTimer); + saveTimer = setTimeout(() => { + fetch(server + "/config", { + method: "POST", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify(newConfig), + }); + }, 300); +}); +~~~ + +:::note +`update-config` 페이로드는 *처리된* 구성입니다. Pivot은 필드 참조를 `{ field, method }` 형태로 정규화할 수 있습니다. 처리된 형태를 초기화 시 `config` 프로퍼티로 그대로 전달하세요. 별도의 변환은 필요하지 않습니다. +::: + +:::tip +핸들러에서 `false`를 반환하면 레이아웃 변경을 차단할 수 있습니다. 서버 측 유효성 검사를 통과한 경우에만 저장하도록 제어할 때 활용하세요. +::: + +## 집계된 테이블 저장하기 {#save-the-aggregated-table} + +때로는 *결과* 자체가 핵심 값이 됩니다. 렌더링된 테이블의 서버 측 캐시, 주기적인 보고서, 또는 내보내기 파이프라인이 그 예입니다. [`render-table`](/api/events/render-table-event) 이벤트는 Pivot이 집계를 완료한 후 발생하며, `columns`, `data` 행, `footer`, `split` 등 완전히 집계된 테이블 정보를 담고 있습니다. + +아래 예제는 `render-table`을 구독하고 스냅샷을 서버에 POST하며, 초기 렌더링은 건너뜁니다. + +~~~jsx +const table = new pivot.Pivot("#root", { data, fields, config }); + +let firstRender = true; +let saveTimer; + +table.api.on("render-table", ({ config: tableConfig }) => { + // 첫 번째 집계에 의해 트리거되는 초기 렌더링을 건너뜁니다 + if (firstRender) { + firstRender = false; + return; + } + + clearTimeout(saveTimer); + saveTimer = setTimeout(() => { + fetch(server + "/snapshot", { + method: "POST", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify({ + columns: tableConfig.columns, + data: tableConfig.data, + footer: tableConfig.footer, + split: tableConfig.split, + }), + }); + }, 300); +}); +~~~ + +:::note +`render-table` 이벤트는 `update-config`보다 더 자주 발생합니다. 정렬이나 확장/축소를 포함한 모든 재계산 시 이벤트가 실행됩니다. 핸들러를 디바운스하고 첫 번째 렌더링을 건너뛰어 실제 변경 사항당 POST가 한 번만 전송되도록 하세요. +::: + +:::tip +핸들러에서 `false`를 반환하면 렌더링을 방지할 수 있습니다. 서버에서 스냅샷을 거부하거나 읽기 전용 모드에서 활용하세요. +::: + +### 집계된 스냅샷 재사용하기 {#reload-an-aggregated-snapshot} + +Pivot은 집계된 테이블을 생성하며, 이미 집계된 데이터는 표시하지 않습니다. [`data`](/api/config/data-property) 프로퍼티는 항상 원시 행을 받습니다. 따라서 `render-table`에서 저장한 스냅샷은 다음과 같은 경우에 적합합니다. + +- 서버에서의 다운스트림 내보내기 파이프라인(CSV, XLSX) +- 저장된 `columns`와 `data`를 사용하는 일반 데이터 테이블로 렌더링하는 읽기 전용 뷰 +- 집계를 다시 실행하지 않고 다른 사용자에게 제공하는 캐시된 보고서 + +**관련 문서**: + +- [데이터 로드하기](/guides/loading-data) +- [데이터 내보내기](/guides/exporting-data) + +**관련 API**: + +- [`api.on()`](/api/internal/on-method) +- [`update-config`](/api/events/update-config-event) +- [`render-table`](/api/events/render-table-event) diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/how-to-start.md b/i18n/ko/docusaurus-plugin-content-docs/current/how-to-start.md new file mode 100644 index 0000000..555901a --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/how-to-start.md @@ -0,0 +1,122 @@ +--- +sidebar_label: 시작하는 방법 +title: 시작하는 방법 +description: DHTMLX JavaScript Pivot 라이브러리 문서에서 DHTMLX Pivot 작업을 시작하는 방법을 알아보세요. 개발자 가이드와 API 레퍼런스를 탐색하고, 코드 예제와 라이브 데모를 체험하며, DHTMLX Pivot의 무료 30일 평가판을 다운로드하세요. +--- + +# 시작하는 방법 + +이 명확하고 포괄적인 튜토리얼은 페이지에 완전한 기능을 갖춘 Pivot를 구성하기 위해 필요한 단계를 안내합니다. + +![pivot-main](/assets/pivot_main.png) + +## 1단계. 패키지 다운로드 및 설치 {#step-1-downloading-and-installing-packages} + +[패키지를 다운로드](https://dhtmlx.com/docs/products/dhtmlxPivot/download.shtml)하여 프로젝트 폴더에 압축을 푸세요. + +`yarn` 또는 `npm` 패키지 매니저를 사용하여 JavaScript Pivot을 프로젝트에 가져올 수 있습니다. + +:::info +Pivot을 React, Angular, Svelte 또는 Vue 프로젝트에 통합하려면 해당 [**통합 가이드**](/category/integration-with-frameworks/)를 참조하세요. +::: + +### npm 또는 yarn을 통한 체험판 Pivot 설치 {#installing-trial-pivot-via-npm-or-yarn} + +:::info +체험판 Pivot을 사용하려면 [**체험판 Pivot 패키지**](https://dhtmlx.com/docs/products/dhtmlxPivot/download.shtml)를 다운로드하고 *README* 파일에 안내된 단계를 따르세요. 체험판 Pivot은 30일 동안만 사용 가능합니다. +::: + +### npm 또는 yarn을 통한 PRO Pivot 설치 {#installing-pro-pivot-via-npm-or-yarn} + +:::info +[고객 전용 영역](https://dhtmlx.com/clients/)에서 **npm** 로그인 및 비밀번호를 생성하여 DHTMLX 개인 **npm**에 직접 접근할 수 있습니다. 자세한 설치 가이드도 해당 페이지에서 확인할 수 있습니다. 개인 **npm** 접근은 독점 Pivot 라이선스가 활성 상태인 동안에만 가능합니다. +::: + +## 2단계. 소스 파일 포함 {#step-2-including-source-files} + +HTML 파일을 생성하고 *index.html*로 이름을 지정하는 것부터 시작하세요. 그런 다음 Pivot 소스 파일을 생성한 파일에 포함합니다. + +두 가지 필수 파일이 있습니다: + +- Pivot의 JS 파일 +- Pivot의 CSS 파일 + +~~~html {5-6} title="index.html" + + + + How to Start with Pivot + + + + + + + +~~~ + +## 3단계. Pivot 생성 {#step-3-creating-pivot} + +이제 페이지에 Pivot을 추가할 준비가 되었습니다. 먼저 Pivot을 위한 DIV 컨테이너를 생성합니다. + +~~~html {} title="index.html" + + + + How to Start with Pivot + + + + +
+ + + +~~~ + +## 4단계. Pivot 구성 {#step-4-configuring-pivot} + +다음으로 Pivot 컴포넌트가 초기화될 때 가질 구성 속성을 지정할 수 있습니다. + +Pivot 작업을 시작하려면 먼저 초기 데이터를 제공해야 합니다. 아래 예제는 다음과 같은 Pivot을 생성합니다: + +- *studio* 및 *genre*에 대한 행 +- *title* 열 +- *max* 방법을 사용한 *score*의 값 집계 + +**fields** 배열은 필드 ID, 표시 레이블, 데이터 타입을 정의하는 데 필요합니다. + +**data** 배열은 Pivot 위젯에 표시될 실제 데이터를 포함해야 합니다. 배열의 각 객체는 테이블의 행을 나타냅니다. + +**config** 객체는 Pivot 테이블의 구조를 정의합니다. 즉, 어떤 필드가 테이블의 행과 열로 적용되고 어떤 데이터 집계 방법이 필드에 적용되어야 하는지를 지정합니다. + +~~~jsx +const table = new pivot.Pivot("#root", { + //configuration properties + fields, + data, + config: { + rows: ["studio", "genre"], + columns: ["title"], + values: [ + { + field: "score", + method: "max" + } + ] + } +}); +~~~ + +## 다음 단계 {#whats-next} + +이것으로 완료입니다. 이 간단한 단계만으로 데이터 분석에 유용한 도구를 갖추게 되었습니다. 이제 작업을 시작하거나 JavaScript Pivot의 내부 세계를 계속 탐색할 수 있습니다: + +- [가이드](/category/guides) 페이지는 설치, 데이터 로딩, 스타일링 및 Pivot 구성을 원활하게 진행하는 데 도움이 되는 기타 유용한 팁에 대한 지침을 제공합니다 +- [API 레퍼런스](api/overview/main-overview.md)는 Pivot 기능에 대한 설명을 제공합니다 diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/index.md b/i18n/ko/docusaurus-plugin-content-docs/current/index.md new file mode 100644 index 0000000..3198541 --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/index.md @@ -0,0 +1,103 @@ +--- +sidebar_label: Pivot 개요 +title: JavaScript Pivot 개요 +slug: / +description: DHTMLX JavaScript Pivot 라이브러리의 개요를 문서에서 확인할 수 있습니다. 개발자 가이드와 API 레퍼런스를 탐색하고, 코드 예제와 라이브 데모를 직접 사용해 보세요. DHTMLX Pivot 30일 무료 평가판도 다운로드할 수 있습니다. +--- + +# DHTMLX Pivot 개요 + +JavaScript Pivot 라이브러리는 대용량 데이터셋으로 피벗 테이블을 생성하기 위한 즉시 사용 가능한 컴포넌트입니다. 위젯 API는 웹 애플리케이션의 요구에 맞게 손쉽게 조정할 수 있습니다. 하나의 테이블 안에서 복잡한 데이터를 비교하고 분석하는 기능을 최종 사용자에게 제공합니다. + +## Pivot 구조 {#pivot-structure} + +Pivot UI는 구성 패널과 데이터 테이블, 두 가지 주요 컴포넌트로 구성됩니다. + +![Main](assets/pivot-main.png) + +## 구성 패널 {#configuration-panel} + +구성 패널에서는 테이블에 열과 행을 추가하고, 데이터 집계 방식을 정의하는 값 필드를 설정할 수 있습니다. 패널의 다음 영역을 통해 각 항목을 추가할 수 있습니다: + +- Values: 데이터 집계 방식(합계, 최솟값, 최댓값 등)을 정의하는 값을 추가할 수 있습니다 +- Columns: 테이블의 열을 구성합니다(어떤 필드를 열로 적용할지 정의) +- Rows: 테이블의 행으로 적용할 필드를 구성합니다 + +구성 패널을 숨기려면 **설정 숨기기** 버튼을 클릭하십시오: + +![config_panel](assets/config_panel.png) + +### Values 영역 {#values-area} + +**Values** 영역에서는 피벗 테이블 셀에 적용할 집계 방식(min, max, count 등)을 정의할 수 있습니다. 다음 작업을 수행할 수 있습니다: + +- Values 영역에 필드 추가 및 제거 +- 테이블 내 값의 순서와 우선순위 변경 +- 데이터 필터링 +- 테이블 필드에 적용할 연산 설정 + +자세한 내용은 [영역 내 연산](#operations-in-areas) 및 [필터](#filters) 섹션을 참조하십시오. + +### Columns 영역 {#columns-area} + +**Columns** 영역에서는 다음 작업을 수행할 수 있습니다: + +- 열 추가 및 제거(열로 적용된 필드 추가/제거) +- 테이블 내 열의 순서와 우선순위 변경 +- 데이터 필터링 + +자세한 내용은 [영역 내 연산](#operations-in-areas) 및 [필터](#filters) 섹션을 참조하십시오. + +### Rows 영역 {#rows-area} + +**Rows** 영역에 대한 구성 패널에서는 다음 작업을 수행할 수 있습니다: + +- 행 추가 및 제거(행으로 적용된 필드 추가/제거) +- 테이블 내 행의 순서와 우선순위 변경 +- 데이터 필터링 + +자세한 내용은 [영역 내 연산](#operations-in-areas) 및 [필터](#filters) 섹션을 참조하십시오. + +### 영역 내 연산 {#operations-in-areas} + +구성 패널의 세 영역 모두에서 테이블에 필드를 추가하거나 제거할 수 있습니다. 특정 필드를 행 또는 열로 적용하려면 해당 영역(Columns 또는 Rows)에서 선택하십시오. + +새 필드를 추가하려면 원하는 영역에서 "+" 버튼을 클릭한 후 드롭다운 목록에서 이름을 선택하십시오. + +항목을 제거하려면 삭제 버튼("x")을 클릭하십시오. + +![add_remove](assets/add_remove.png) + +테이블에서 값/행/열의 순서를 변경하려면 항목을 원하는 위치로 드래그하십시오. 영역 툴바 목록에서 항목이 왼쪽에 위치할수록 테이블 내 우선순위와 위치가 높아집니다. + +![priority](assets/priority.png) + +테이블 열의 모든 데이터에 적용할 연산을 설정하려면 **Values** 영역에서 원하는 필드의 값 연산을 클릭한 후 목록에서 필요한 옵션을 선택하십시오. + +![operations](assets/operations.png) + +### 필터 {#filters} + +필터는 모든 영역의 각 필드에 대해 드롭다운 목록으로 표시됩니다. Pivot은 다음 조건 유형의 필터링을 제공합니다: + +- 텍스트 값: equal, notEqual, contains, notContains, beginsWith, notBeginsWith, endsWith, notEndsWith +- 숫자 값: greater, less, greaterOrEqual, lessOrEqual, equal, notEqual, contains, notContains, begins with, not begins with, ends with, not ends with +- 날짜 유형: greater, less, greaterOrEqual, lessOrEqual, equal, notEqual, between, notBetween + +테이블에서 데이터를 필터링하려면 원하는 영역의 항목에서 필터 아이콘을 클릭한 후 연산자를 선택하고 필터링 기준값을 설정한 다음 **적용**을 클릭하십시오. 필터링이 적용된 필드에는 특별한 필터 아이콘이 표시됩니다. + +![filters](assets/filter.png) + +## 테이블 {#table} + +테이블의 데이터는 구성 패널에서 설정한 대로 표시됩니다. 열 헤더를 클릭하면 열 **정렬**이 활성화됩니다: + +![table](assets/table.png) + +## 다음 단계 {#whats-next} + +이제 Pivot을 애플리케이션에 통합하는 작업을 시작할 수 있습니다. [시작하기](how-to-start.md) 튜토리얼의 안내를 따르십시오. + +위젯 API에서 제공하는 기능을 활용하면 아래 샘플과 같이 더 많은 기능을 갖춘 멋진 피벗 테이블을 구현할 수 있습니다: + + diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/news/migration.md b/i18n/ko/docusaurus-plugin-content-docs/current/news/migration.md new file mode 100644 index 0000000..ff281d0 --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/news/migration.md @@ -0,0 +1,57 @@ +--- +sidebar_label: 최신 버전으로 마이그레이션 +title: 최신 버전으로 마이그레이션 +description: DHTMLX JavaScript Pivot 라이브러리 문서에서 최신 버전으로의 마이그레이션 방법을 알아볼 수 있습니다. 개발자 가이드와 API 레퍼런스를 탐색하고, 코드 예제 및 라이브 데모를 사용해 보세요. DHTMLX Pivot의 무료 30일 평가판을 다운로드할 수 있습니다. +--- + +# 최신 버전으로 마이그레이션 + +## 2.0 -> 2.1 + +- `tableShape` 속성의 `sizes` 객체에 있는 `colWidth` 파라미터가 `columnWidth`로 이름이 변경되었습니다. + +## 1.5 -> 2.0 + +이 변경 사항 목록은 이전 버전인 Pivot 1.5에서 완전히 새롭게 개선된 Pivot 2.0으로 마이그레이션하는 데 도움을 드립니다. + +:::note +[v.1.5에서의 데이터 마이그레이션을 위한 변환기](https://snippet.dhtmlx.com/s4sfdhq4) 를 확인하세요. +::: + +### 변경된 API {#changed-api} + +#### 속성 {#properties} + +새 속성은 이전 속성을 완전히 대체하지 않지만 더 확장된 기능을 제공합니다. + +- [fieldList](https://docs.dhtmlx.com/pivot/1-5/api__pivot_fieldlist_config.html) -> [fields](api/config/fields-property.md) +- [fields](https://docs.dhtmlx.com/pivot/1-5/api__pivot_fields_config.html) -> [config](api/config/config-property.md) +- [mark](https://docs.dhtmlx.com/pivot/1-5/api__pivot_mark_config.html) -> [tableShape](api/config/tableshape-property.md) 속성의 `marks` 파라미터 +- [types](https://docs.dhtmlx.com/pivot/1-5/api__pivot_types_config.html) -> [methods](api/config/methods-property.md) +- [layout](https://docs.dhtmlx.com/pivot/1-5/api__pivot_layout_config.html) -> [columnShape](api/config/columnshape-property.md), [headerShape](api/config/headershape-property.md), [readonly](api/config/readonly-property.md) +- [customFormat](https://docs.dhtmlx.com/pivot/1-5/api__pivot_customformat_config.html) -> [predicates](api/config/predicates-property.md) - 데이터를 위한 사용자 정의 전처리 함수 + +#### 이벤트 {#events} + +- [filterApply](https://docs.dhtmlx.com/pivot/1-5/api__pivot_filterapply_event.html) -> [apply-filter](api/events/apply-filter-event.md) +- [fieldClick](https://docs.dhtmlx.com/pivot/1-5/api__pivot_fieldclick_event.html) -> 동일한 이벤트는 없지만 [update-field](api/events/update-field-event.md) 를 참조할 수 있습니다. + +### 제거된 API {#removed-api} + +- [버전 1.5의 메서드](https://docs.dhtmlx.com/pivot/1-5/api__refs__pivot_methods.html) 는 더 이상 사용되지 않으며, 새로운 메서드는 여기서 확인할 수 있습니다: [메서드](api/overview/main-overview.md#pivot-methods) +- [Pivot 1.5 이벤트](https://docs.dhtmlx.com/pivot/1-5/api__refs__pivot_events.html) (`change`, `fieldClick`, `applyButtonClick`)는 Pivot 2.0에서 더 이상 사용할 수 없지만, 새 버전에서 더 확장된 기능을 제공합니다([Pivot 이벤트](api/overview/events-overview.md) 참조). + +### 중요 기능 {#important-features} + +- 데이터 내보내기: [이전 내보내기 옵션](https://docs.dhtmlx.com/pivot/1-5/guides__export.html) -> [새 내보내기 옵션](guides/exporting-data.md) +- 정렬: [필드 정렬](https://docs.dhtmlx.com/pivot/1-5/guides__configuration.html#configuringfields) -> [데이터 정렬](guides/working-with-data.md#sorting-data) +- 트리 모드: [gridMode](https://docs.dhtmlx.com/pivot/1-5/guides__configuration.html#gridmode) -> [트리 모드 활성화](guides/configuration.md#enabling-the-tree-mode) +- 날짜 형식: [날짜 필드 구성](https://docs.dhtmlx.com/pivot/1-5/guides__configuration.html#configuringdatefields) -> +[날짜 형식 설정](guides/localization.md#date-formatting) +- 커스터마이징: + - [셀 서식 지정](https://docs.dhtmlx.com/pivot/1-5/guides__customization.html#conditionalformattingofcells) -> [셀 스타일](guides/stylization.md#cell-style) + - [헤더 템플릿](https://docs.dhtmlx.com/pivot/1-5/guides__customization.html#settingtemplatesforheaders) -> + [헤더에 템플릿 적용](guides/configuration.md#applying-templates-to-headers) + - [셀 템플릿](https://docs.dhtmlx.com/pivot/1-5/guides__customization.html#settingtemplatesforcells) -> + [셀에 템플릿 적용](guides/configuration.md#applying-templates-to-cells) +- 필터링: [필터 조작](https://docs.dhtmlx.com/pivot/1-5/guides__using_filters.html) -> [데이터 필터링](guides/working-with-data.md#filtering-data) diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/news/whats-new.md b/i18n/ko/docusaurus-plugin-content-docs/current/news/whats-new.md new file mode 100644 index 0000000..9842221 --- /dev/null +++ b/i18n/ko/docusaurus-plugin-content-docs/current/news/whats-new.md @@ -0,0 +1,114 @@ +--- +sidebar_label: 새로운 기능 +title: 새로운 기능 +description: DHTMLX JavaScript UI 라이브러리 문서에서 DHTMLX Pivot의 새로운 기능과 릴리스 이력을 확인하세요. 개발자 가이드와 API 레퍼런스를 살펴보고, 코드 예제와 라이브 데모를 체험해 보세요. DHTMLX Pivot 무료 30일 평가판도 다운로드할 수 있습니다. +--- + +# 새로운 기능 {#whats-new} + +이전 버전에서 Pivot을 업그레이드하는 경우 자세한 내용은 [최신 버전으로의 마이그레이션](news/migration.md) 을 확인하세요. + +## 버전 2.1.1 {#version-211} + +2026년 6월 10일 릴리스 + +### 수정 사항 {#fixes} + +- 행 필터를 값이 누락되거나 비어 있는 데이터셋에 적용할 때 "getMonth" 오류가 발생하는 문제 + +## 버전 2.1 {#version-21} + +2025년 5월 6일 릴리스 + +### 새로운 기능 {#new-functionality} + +- [오른쪽 열 고정 기능](guides/configuration.md#freezing-columns-on-the-right) +- 숫자 값에 대한 [기본 정렬](guides/stylization.md#specific-css-classes) 및 [로케일 기반 서식](guides/localization.md#number-formatting) +- [`fields`](api/config/fields-property.md) 속성에 추가된 `format`을 통해 날짜 및 숫자 필드에 대한 [사용자 정의 숫자 형식 정의 기능](guides/working-with-data.md#applying-formats-to-fields) +- [`tableShape`](api/config/tableshape-property.md) 및 [`headerShape`](api/config/headershape-property.md) 속성의 `cellStyle` 매개변수를 통해 [헤더 및 테이블 셀 스타일 지정 기능](guides/stylization.md#cell-style) +- 헤더 및 열 객체의 `cell` 속성으로 템플릿을 정의하여 [`pivot.template`](api/helpers/template.md) 헬퍼를 통해 헤더 및 테이블 셀에 HTML 콘텐츠를 삽입하는 기능([render-table](api/events/render-table-event.md) 이벤트를 가로채어 테이블 사용자 정의) +- [Excel 및 CSV 내보내기 설정 개선](guides/exporting-data.md): + - "xlsx" 형식의 경우, 날짜 및 숫자 필드는 기본 형식 또는 [`fields`](api/config/fields-property.md) 속성으로 정의된 형식의 원시 값으로 내보내집니다 + - 파일 및 시트 이름 정의와 내보낸 파일에서 헤더/푸터 제외 기능 + - 내보낸 셀에 스타일 및 템플릿 추가 기능 +- [외부 입력을 통한 데이터 필터링 기능](api/table/filter-rows.md) +- 셀 탐색을 위한 시각적 프레임 +- [프레임워크와의 통합](/category/integration-with-frameworks) + +### 새로운 API {#new-api} + +- [`tableShape`](api/config/tableshape-property.md)의 `split` 객체 내 `right` 설정 +- [`tableShape`](api/config/tableshape-property.md) 및 [`headerShape`](api/config/headershape-property.md) 속성 내 `cellStyle` 설정 +- [`fields`](api/config/fields-property.md) 배열 내 `format` 설정 +- 내부 Table의 [`filter-rows`](api/table/filter-rows.md) 이벤트 +- 테이블 셀에 HTML 콘텐츠를 정의하는 [`pivot.template`](api/helpers/template.md) + +### 수정 사항 {#fixes-21} + +- 합계 열이 정렬되지 않는 문제 +- 앞에 0이 있는 문자열 값이 내보내기 중 숫자로 변환되는 문제 +- Predicate 템플릿이 행/열에 적용되지 않는 문제 +- 특수한 경우 resize observer 오류 + +### 주요 변경 사항 {#breaking-changes} + +- `tableShape` 속성의 `sizes` 객체 내 `colWidth` 매개변수가 `columnWidth`로 이름 변경됨 + +## 버전 2.0.3 {#version-203} + +2024년 11월 29일 릴리스 + +### 수정 사항 {#fixes-203} + +- 트리 구조를 Excel/CSV로 내보낼 때 최상위 브랜치만 포함되는 문제 +- autowidth가 적용된 내보낸 열이 결과 Excel 파일에서 너무 좁게 표시되는 문제 +- 필터 팝업의 위치가 잘못 표시되는 문제 +- `setConfig` 메서드로 구성을 변경한 후 동작이 올바르지 않은 문제 +- 더 정확한 타입 정의 + +## 버전 2.0.2 {#version-202} + +2024년 10월 22일 릴리스 + +### 수정 사항 {#fixes-202} + +- `columnShape` 타입 정의 +- 올바른 패키지 내용 + +## 버전 2.0 {#version-20} + +2024년 8월 26일 릴리스 + +[블로그 페이지](https://dhtmlx.com/blog/) 에서 이번 릴리스 리뷰를 확인하세요. + +### 주요 변경 사항 {#breaking-change} + +:::note +버전 1.5의 API는 API v.2.0과 호환되지 않습니다. +::: + +새 버전으로의 마이그레이션 팁은 [마이그레이션](news/migration.md) 페이지를 확인하세요. + +### 새로운 기능 {#new-functionality-20} + +- Pivot 2.0은 대용량 데이터셋 렌더링 및 생성 속도가 빠릅니다 ([샘플](https://snippet.dhtmlx.com/e6qwqrys)) +- [`columnShape`](api/config/columnshape-property.md) 속성을 통해 열의 모양과 동작을 구성하는 다음 새 기능을 사용할 수 있습니다: + - **autoWidth** 계산에 처리할 maxRows를 설정하는 기능이 포함된 **autowidth** 설정 ([샘플](https://snippet.dhtmlx.com/tn1yw14m)) + - 열 너비 계산 시 동일한 데이터의 각 필드를 한 번만 분석하는 **firstOnly** 기능 (기본값) +- 이제 [`headerShape`](api/config/headershape-property.md) 속성을 사용하여 헤더의 모양과 동작을 구성할 수 있습니다: + - 헤더 텍스트에 템플릿 적용 ([샘플](https://snippet.dhtmlx.com/g89r9ryw)) + - 텍스트 방향 변경 ([샘플](https://snippet.dhtmlx.com/4qroi8ka)) + - 열 접기 가능하게 만들기 ([샘플](https://snippet.dhtmlx.com/pt2ljmcm)) +- [`tableShape`](api/config/tableshape-property.md) 속성을 통해 테이블의 모양과 크기를 구성할 수 있습니다: + - 행, 헤더, 푸터 높이 구성: rowHeight, headerHeight, footerHeight ([테이블 크기 조정](guides/configuration.md#resizing-the-table)) + - `tableShape` 속성의 **totalColumn** 매개변수를 통해 열뿐만 아니라 행에 대해서도 합계 값 생성 ([샘플](https://snippet.dhtmlx.com/f0ag0t9t)) + - 테이블 뷰에서 중복 값 숨기기([`tableShape`](api/config/tableshape-property.md) 속성의 **cleanRows** 매개변수) + - 스크롤 시 왼쪽 열을 고정하여 정적으로 유지 ([샘플](https://snippet.dhtmlx.com/lahf729o)) + - 모든 행 펼치기 또는 접기 ([샘플](https://snippet.dhtmlx.com/i4mi6ejn)) +- 데이터 집계에 더 많은 기능이 추가되었습니다: + - [불러온 데이터 제한](guides/working-with-data.md#limiting-loaded-data) + - 더 많은 [데이터 연산](guides/working-with-data.md#applying-maths-methods) 사용 가능 + - [Predicate를 사용한 데이터 처리](guides/working-with-data.md#processing-data-with-predicates) - 데이터에 사용자 정의 전처리 함수 적용 + - [로케일을 통한 날짜 형식 설정](guides/localization.md#date-formatting) +- 새로운 메서드 추가: [`getTable()`](api/methods/gettable-method.md), [`setConfig()`](api/methods/setconfig-method.md), [`setLocale()`](api/methods/setlocale-method.md), [`showConfigPanel()`](api/methods/showconfigpanel-method.md) +- 새로운 이벤트 추가: [`add-field`](api/events/add-field-event.md), [`delete-field`](api/events/delete-field-event.md), [`open-filter`](api/events/open-filter-event.md), [`render-table`](api/events/render-table-event.md), [`move-field`](api/events/move-field-event.md), [`show-config-panel`](api/events/show-config-panel-event.md), [`show-config-panel`](api/events/show-config-panel-event.md), [`update-config`](api/events/update-config-event.md), [`update-field`](api/events/update-field-event.md). From 41e955c232d247ccf7fc31f4cd33da0f8bd52533 Mon Sep 17 00:00:00 2001 From: Serhii Pylypchuk Date: Thu, 11 Jun 2026 22:59:59 +0300 Subject: [PATCH 36/40] [add] Russian (ru) documentation translation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - translate all 62 docs/*.md into i18n/ru current/ - API (45), guides (13), news (2), root pages (2) - copy image assets into the locale tree for build resolution - add .sync marker at source HEAD 44e03f9 for future updates - natural technical Russian, transliterated terms (АПИ, виджет), English heading anchors preserved --- .../current/.sync | 1 + .../api/config/columnshape-property.md | 82 ++ .../current/api/config/config-property.md | 146 ++++ .../api/config/configpanel-property.md | 58 ++ .../current/api/config/data-property.md | 129 +++ .../current/api/config/fields-property.md | 112 +++ .../api/config/headershape-property.md | 83 ++ .../current/api/config/limits-property.md | 61 ++ .../current/api/config/locale-property.md | 51 ++ .../current/api/config/methods-property.md | 163 ++++ .../current/api/config/predicates-property.md | 117 +++ .../current/api/config/readonly-property.md | 52 ++ .../current/api/config/tableshape-property.md | 131 ++++ .../current/api/events/add-field-event.md | 74 ++ .../current/api/events/apply-filter-event.md | 65 ++ .../current/api/events/delete-field-event.md | 82 ++ .../current/api/events/move-field-event.md | 65 ++ .../current/api/events/open-filter-event.md | 95 +++ .../current/api/events/render-table-event.md | 178 +++++ .../api/events/show-config-panel-event.md | 60 ++ .../current/api/events/update-config-event.md | 78 ++ .../current/api/events/update-field-event.md | 67 ++ .../current/api/helpers/template.md | 89 +++ .../current/api/internal/detach-method.md | 69 ++ .../current/api/internal/exec-method.md | 83 ++ .../api/internal/getreactivestate-method.md | 71 ++ .../current/api/internal/getstate-method.md | 67 ++ .../current/api/internal/getstores-method.md | 54 ++ .../current/api/internal/intercept-method.md | 68 ++ .../current/api/internal/on-method.md | 72 ++ .../current/api/internal/setnext-method.md | 45 ++ .../current/api/methods/gettable-method.md | 75 ++ .../current/api/methods/setconfig-method.md | 73 ++ .../current/api/methods/setlocale-method.md | 56 ++ .../api/methods/showconfigpanel-method.md | 55 ++ .../current/api/overview/events-overview.md | 19 + .../overview/internal-eventbus-overview.md | 15 + .../api/overview/internal-state-overview.md | 13 + .../current/api/overview/main-overview.md | 80 ++ .../current/api/overview/methods-overview.md | 14 + .../api/overview/properties-overview.md | 24 + .../api/overview/table-events-overview.md | 16 + .../current/api/table/close-row.md | 43 + .../current/api/table/export.md | 109 +++ .../current/api/table/filter-rows.md | 35 + .../current/api/table/open-row.md | 43 + .../current/assets/add_remove.png | Bin 0 -> 22594 bytes .../current/assets/apply_filter.png | Bin 0 -> 133304 bytes .../current/assets/config_panel.png | Bin 0 -> 21843 bytes .../current/assets/filter.png | Bin 0 -> 20846 bytes .../current/assets/filter_applied.png | Bin 0 -> 120103 bytes .../current/assets/operations.png | Bin 0 -> 25098 bytes .../current/assets/pivot-main.png | Bin 0 -> 21456 bytes .../current/assets/priority.png | Bin 0 -> 61453 bytes .../current/assets/table.png | Bin 0 -> 61265 bytes .../current/assets/trial_pivot.png | Bin 0 -> 295044 bytes .../current/guides/configuration.md | 740 ++++++++++++++++++ .../current/guides/exporting-data.md | 45 ++ .../current/guides/initialization.md | 86 ++ .../guides/integration-with-angular.md | 325 ++++++++ .../current/guides/integration-with-react.md | 289 +++++++ .../current/guides/integration-with-svelte.md | 302 +++++++ .../current/guides/integration-with-vue.md | 312 ++++++++ .../current/guides/loading-data.md | 279 +++++++ .../current/guides/localization.md | 293 +++++++ .../current/guides/stylization.md | 266 +++++++ .../current/guides/typescript-support.md | 17 + .../current/guides/working-with-data.md | 687 ++++++++++++++++ .../current/guides/working-with-server.md | 172 ++++ .../current/how-to-start.md | 122 +++ .../current/index.md | 103 +++ .../current/news/migration.md | 57 ++ .../current/news/whats-new.md | 114 +++ 73 files changed, 7447 insertions(+) create mode 100644 i18n/ru/docusaurus-plugin-content-docs/current/.sync create mode 100644 i18n/ru/docusaurus-plugin-content-docs/current/api/config/columnshape-property.md create mode 100644 i18n/ru/docusaurus-plugin-content-docs/current/api/config/config-property.md create mode 100644 i18n/ru/docusaurus-plugin-content-docs/current/api/config/configpanel-property.md create mode 100644 i18n/ru/docusaurus-plugin-content-docs/current/api/config/data-property.md create mode 100644 i18n/ru/docusaurus-plugin-content-docs/current/api/config/fields-property.md create mode 100644 i18n/ru/docusaurus-plugin-content-docs/current/api/config/headershape-property.md create mode 100644 i18n/ru/docusaurus-plugin-content-docs/current/api/config/limits-property.md create mode 100644 i18n/ru/docusaurus-plugin-content-docs/current/api/config/locale-property.md create mode 100644 i18n/ru/docusaurus-plugin-content-docs/current/api/config/methods-property.md create mode 100644 i18n/ru/docusaurus-plugin-content-docs/current/api/config/predicates-property.md create mode 100644 i18n/ru/docusaurus-plugin-content-docs/current/api/config/readonly-property.md create mode 100644 i18n/ru/docusaurus-plugin-content-docs/current/api/config/tableshape-property.md create mode 100644 i18n/ru/docusaurus-plugin-content-docs/current/api/events/add-field-event.md create mode 100644 i18n/ru/docusaurus-plugin-content-docs/current/api/events/apply-filter-event.md create mode 100644 i18n/ru/docusaurus-plugin-content-docs/current/api/events/delete-field-event.md create mode 100644 i18n/ru/docusaurus-plugin-content-docs/current/api/events/move-field-event.md create mode 100644 i18n/ru/docusaurus-plugin-content-docs/current/api/events/open-filter-event.md create mode 100644 i18n/ru/docusaurus-plugin-content-docs/current/api/events/render-table-event.md create mode 100644 i18n/ru/docusaurus-plugin-content-docs/current/api/events/show-config-panel-event.md create mode 100644 i18n/ru/docusaurus-plugin-content-docs/current/api/events/update-config-event.md create mode 100644 i18n/ru/docusaurus-plugin-content-docs/current/api/events/update-field-event.md create mode 100644 i18n/ru/docusaurus-plugin-content-docs/current/api/helpers/template.md create mode 100644 i18n/ru/docusaurus-plugin-content-docs/current/api/internal/detach-method.md create mode 100644 i18n/ru/docusaurus-plugin-content-docs/current/api/internal/exec-method.md create mode 100644 i18n/ru/docusaurus-plugin-content-docs/current/api/internal/getreactivestate-method.md create mode 100644 i18n/ru/docusaurus-plugin-content-docs/current/api/internal/getstate-method.md create mode 100644 i18n/ru/docusaurus-plugin-content-docs/current/api/internal/getstores-method.md create mode 100644 i18n/ru/docusaurus-plugin-content-docs/current/api/internal/intercept-method.md create mode 100644 i18n/ru/docusaurus-plugin-content-docs/current/api/internal/on-method.md create mode 100644 i18n/ru/docusaurus-plugin-content-docs/current/api/internal/setnext-method.md create mode 100644 i18n/ru/docusaurus-plugin-content-docs/current/api/methods/gettable-method.md create mode 100644 i18n/ru/docusaurus-plugin-content-docs/current/api/methods/setconfig-method.md create mode 100644 i18n/ru/docusaurus-plugin-content-docs/current/api/methods/setlocale-method.md create mode 100644 i18n/ru/docusaurus-plugin-content-docs/current/api/methods/showconfigpanel-method.md create mode 100644 i18n/ru/docusaurus-plugin-content-docs/current/api/overview/events-overview.md create mode 100644 i18n/ru/docusaurus-plugin-content-docs/current/api/overview/internal-eventbus-overview.md create mode 100644 i18n/ru/docusaurus-plugin-content-docs/current/api/overview/internal-state-overview.md create mode 100644 i18n/ru/docusaurus-plugin-content-docs/current/api/overview/main-overview.md create mode 100644 i18n/ru/docusaurus-plugin-content-docs/current/api/overview/methods-overview.md create mode 100644 i18n/ru/docusaurus-plugin-content-docs/current/api/overview/properties-overview.md create mode 100644 i18n/ru/docusaurus-plugin-content-docs/current/api/overview/table-events-overview.md create mode 100644 i18n/ru/docusaurus-plugin-content-docs/current/api/table/close-row.md create mode 100644 i18n/ru/docusaurus-plugin-content-docs/current/api/table/export.md create mode 100644 i18n/ru/docusaurus-plugin-content-docs/current/api/table/filter-rows.md create mode 100644 i18n/ru/docusaurus-plugin-content-docs/current/api/table/open-row.md create mode 100644 i18n/ru/docusaurus-plugin-content-docs/current/assets/add_remove.png create mode 100644 i18n/ru/docusaurus-plugin-content-docs/current/assets/apply_filter.png create mode 100644 i18n/ru/docusaurus-plugin-content-docs/current/assets/config_panel.png create mode 100644 i18n/ru/docusaurus-plugin-content-docs/current/assets/filter.png create mode 100644 i18n/ru/docusaurus-plugin-content-docs/current/assets/filter_applied.png create mode 100644 i18n/ru/docusaurus-plugin-content-docs/current/assets/operations.png create mode 100644 i18n/ru/docusaurus-plugin-content-docs/current/assets/pivot-main.png create mode 100644 i18n/ru/docusaurus-plugin-content-docs/current/assets/priority.png create mode 100644 i18n/ru/docusaurus-plugin-content-docs/current/assets/table.png create mode 100644 i18n/ru/docusaurus-plugin-content-docs/current/assets/trial_pivot.png create mode 100644 i18n/ru/docusaurus-plugin-content-docs/current/guides/configuration.md create mode 100644 i18n/ru/docusaurus-plugin-content-docs/current/guides/exporting-data.md create mode 100644 i18n/ru/docusaurus-plugin-content-docs/current/guides/initialization.md create mode 100644 i18n/ru/docusaurus-plugin-content-docs/current/guides/integration-with-angular.md create mode 100644 i18n/ru/docusaurus-plugin-content-docs/current/guides/integration-with-react.md create mode 100644 i18n/ru/docusaurus-plugin-content-docs/current/guides/integration-with-svelte.md create mode 100644 i18n/ru/docusaurus-plugin-content-docs/current/guides/integration-with-vue.md create mode 100644 i18n/ru/docusaurus-plugin-content-docs/current/guides/loading-data.md create mode 100644 i18n/ru/docusaurus-plugin-content-docs/current/guides/localization.md create mode 100644 i18n/ru/docusaurus-plugin-content-docs/current/guides/stylization.md create mode 100644 i18n/ru/docusaurus-plugin-content-docs/current/guides/typescript-support.md create mode 100644 i18n/ru/docusaurus-plugin-content-docs/current/guides/working-with-data.md create mode 100644 i18n/ru/docusaurus-plugin-content-docs/current/guides/working-with-server.md create mode 100644 i18n/ru/docusaurus-plugin-content-docs/current/how-to-start.md create mode 100644 i18n/ru/docusaurus-plugin-content-docs/current/index.md create mode 100644 i18n/ru/docusaurus-plugin-content-docs/current/news/migration.md create mode 100644 i18n/ru/docusaurus-plugin-content-docs/current/news/whats-new.md diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/.sync b/i18n/ru/docusaurus-plugin-content-docs/current/.sync new file mode 100644 index 0000000..a5b7004 --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/.sync @@ -0,0 +1 @@ +44e03f98ab2c058ad802e8e3e08c689d0efdde69 diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/api/config/columnshape-property.md b/i18n/ru/docusaurus-plugin-content-docs/current/api/config/columnshape-property.md new file mode 100644 index 0000000..f04e073 --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/api/config/columnshape-property.md @@ -0,0 +1,82 @@ +--- +sidebar_label: columnShape +title: columnShape Config +description: Вы можете узнать о конфигурации columnShape в документации библиотеки DHTMLX JavaScript Pivot. Изучайте руководства разработчика и справочник АПИ, просматривайте примеры кода и живые демо, а также скачайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +--- + +# columnShape + +### Описание {#description} + +@short: Необязательный. Настраивает внешний вид и поведение колонок Pivot + +### Использование {#usage} + +~~~jsx +columnShape?: { + sort?: boolean, + width?: { + [field: string]: number + }, + autoWidth?: { + columns: { + [field: string]: boolean + }, + auto?: boolean | "header" | "data", + maxRows?: number, + firstOnly?: boolean + } +}; +~~~ + +### Параметры {#parameters} + +- `sort` - (необязательный) если **true** (по умолчанию), сортировка включена в интерфейсе по клику на заголовок колонки; если **false**, сортировка отключена +- `width` - (необязательный) определяет ширину колонки; это объект, где каждый ключ — идентификатор поля, а значение — ширина колонки в пикселях +- `autoWidth` - (необязательный) объект, определяющий, как ширина колонки должна рассчитываться автоматически. По умолчанию используется 20 строк, а ширина рассчитывается на основе заголовка и данных, при этом каждое поле анализируется только один раз. Параметры объекта следующие: + - `columns` - (обязательный) объект, где каждый ключ — идентификатор поля, а булево значение определяет, должна ли ширина колонки рассчитываться автоматически + - `auto` - (необязательный) если установлено **header**, подстраивает ширину под текст заголовка; если установлено **data**, подстраивает ширину под ячейку с наибольшим содержимым; если установлено **true**, ширина подстраивается под содержимое как заголовков, так и ячеек. + Если autoWidth установлено в **false**, применяется значение `width` или значение `columnWidth` из свойства [`tableShape`](api/config/tableshape-property.md). + - `maxRows` - (необязательный) количество строк, обрабатываемых при расчёте autoWidth + - `firstOnly` - (необязательный) если установлено **true** (по умолчанию), каждое поле с одинаковыми данными анализируется только один раз для расчёта ширины колонки; в случае нескольких колонок на основе одних и тех же данных (например, поле *oil* с операцией *count* и поле *oil* с операцией *sum*) анализируются только данные первой колонки, остальные наследуют её ширину + +## Пример {#example} + +~~~jsx {18-31} +const table = new pivot.Pivot("#root", { + fields, + data, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + }, + columnShape: { + autoWidth: { + // рассчитать ширину колонки для этих полей + columns: { + studio: true, + genre: true, + title: true, + score: true + }, + auto: true, + // анализировать все поля + firstOnly: false + } + } +}); +~~~ + +**Связанные примеры**: +- [Pivot 2. Автоматическая ширина. Подстройка колонок под содержимое](https://snippet.dhtmlx.com/tn1yw14m) +- [Pivot 2. Установка ширины колонок](https://snippet.dhtmlx.com/ceu34kkn) diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/api/config/config-property.md b/i18n/ru/docusaurus-plugin-content-docs/current/api/config/config-property.md new file mode 100644 index 0000000..ce5d27b --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/api/config/config-property.md @@ -0,0 +1,146 @@ +--- +sidebar_label: config +title: config Config +description: Вы можете узнать о свойстве config в документации библиотеки DHTMLX JavaScript Pivot. Изучите руководства разработчика и справочник по АПИ, попробуйте примеры кода и живые демо, а также загрузите бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +--- + +# config + +### Описание {#description} + +@short: Опциональный. Определяет структуру таблицы Pivot и способ агрегации данных + +### Использование {#usage} + +~~~jsx +config?: { + rows?: string | {field: string, method?: string}[], + columns?: string | {field: string, method?: string}[], + values?: string | {field: string, method?: string}[], + filters?: {} +}; +~~~ + +### Параметры {#parameters} + +Параметры `config` используются для определения того, какие поля будут применяться в качестве строк и столбцов, а также какие дополнительные методы агрегации данных должны применяться к строкам/столбцам. + +- `rows` - (опциональный) определяет строки таблицы Pivot. Значение по умолчанию — пустой массив. Может быть строкой, представляющей идентификатор одного поля, или объектом с идентификатором поля и методом извлечения данных; параметры объекта следующие: + - `field` - (обязательный) идентификатор поля + - `method` - (опциональный) определяет метод агрегации данных в поле; по умолчанию доступны методы для полей с данными времени: "year", "quarter", "month", "week", "day", "hour", "minute", которые группируют данные соответствующим образом; здесь также можно указать имя пользовательского метода ([см. `predicates`](api/config/predicates-property.md)) для поля любого типа данных +- `columns` - (опциональный) определяет столбцы таблицы Pivot. По умолчанию — пустой массив. Может быть идентификатором одного поля или объектом с идентификатором поля и методом извлечения данных; параметры объекта следующие: + - `field` - (обязательный) идентификатор поля + - `method` - (опциональный) определяет метод обработки данных (для полей с данными времени). + По умолчанию методы доступны для полей с данными времени (тип **date**) со следующими значениями: "year", "quarter", "month", "week", "day", "hour", "minute". Здесь также можно указать имя пользовательского метода ([см. `predicates`](api/config/predicates-property.md)) для поля любого типа данных +- `values` - (опциональный) определяет агрегацию данных для ячеек таблицы Pivot. По умолчанию — пустой массив. Каждый элемент может быть строкой, представляющей идентификатор поля данных и метод агрегации, или объектом, содержащим идентификатор поля и метод агрегации данных. Параметры объекта следующие: + - `field` - (обязательный) идентификатор поля + - `method` - (обязательный) определяет метод извлечения данных; описание типов методов см. в разделе [Применение методов](guides/working-with-data.md#default-methods) + +
+ +Варианты определения values + +Можно определить `values` одним из двух равнозначных способов: +- первый вариант — строка, представляющая идентификатор поля +- второй вариант — объект, содержащий идентификатор поля и метод агрегации данных + +### Пример {#example} + +~~~jsx +values: [ + "sum(sales)", // первый вариант + { field: "sales", method: "sum" }, // второй вариант +] +~~~ + +
+ +- `filters` - (опциональный) определяет способ фильтрации данных в таблице; это объект с идентификаторами полей и правилом фильтрации. Значение по умолчанию — пустой объект. Параметры объекта следующие: + - `field` - (опциональный) ключ фильтра, который является идентификатором поля или массивом идентификаторов с критериями фильтрации: + - `equal` - (опциональный) принимает числа, строки и значения Date + - `notEqual` - (опциональный) принимает числа, строки и значения Date + - `greater` - (опциональный) принимает числа и значения Date + - `greaterOrEqual` - (опциональный) принимает числа и значения Date + - `less` - (опциональный) принимает числа и значения Date + - `lessOrEqual` - принимает числа и значения Date + - `between` - объект со следующими параметрами: + - `start` - Date + - `end` - Date + - `notBetween` - объект со следующими параметрами: + - `start` - Date + - `end` - Date + - `contains` - принимает строки и числа + - `notContains` - принимает строки и числа + - `beginsWith` - принимает строки и числа + - `notBeginsWith` - принимает строки и числа + - `endsWith` - принимает строки и числа + - `notEndsWith` - принимает строки и числа + - `includes` - (опциональный) массив значений для отображения из уже отфильтрованных; доступен для текстовых значений и дат + +:::info +Когда config обрабатывается Pivot, его свойства получают дополнительные данные, и если попытаться вернуть состояние конфигурации через метод [`api.getState()`](api/internal/getstate-method.md), полный объект будет выглядеть следующим образом: + +~~~jsx +interface IParsedField { + id: string, + field: string, + method: string | null, + area: 'rows'|'columns'|'values', + base?: string, + label: string, + type: 'number'|'date'|'text' +} + +interface IParsedConfig { + rows: IParsedField[], + columns: IParsedField[], + values: IParsedField[], + filters: { + [field: string]: number | string | [] | + { [operation: string]: number | string | [] | { start:Date, end: Date} } + } +} +~~~ + +Параметры: + +- `id` - уникальный идентификатор обработанного поля +- `field` - название поля +- `method` - название операции, используемой для агрегации. Метод является опциональным для строк и столбцов, и если указан, действует как предикат и определяет способ предварительной обработки данных поля перед агрегацией. Для values метод является обязательным параметром. +- `area` - область, в которую добавляется поле +- `base` - используется в столбцах и строках для полей с предикатом. Определяет исходное название поля, тогда как название поля формируется по шаблону "field_by_predicate" +- `label` - текстовая метка +- `type` - тип данных +::: + +### Пример {#example-1} + +~~~jsx {4-26} +const table = new pivot.Pivot("#root", { + fields, + data: dataset, + config: { + rows: ["studio", "genre"], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ], + filters: { + genre: { + contains: "D", + includes: ["Drama"] + }, + title: { + // фильтр для другого поля ("title") + contains: "A" + } + } + } +}); +~~~ diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/api/config/configpanel-property.md b/i18n/ru/docusaurus-plugin-content-docs/current/api/config/configpanel-property.md new file mode 100644 index 0000000..fa46095 --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/api/config/configpanel-property.md @@ -0,0 +1,58 @@ +--- +sidebar_label: configPanel +title: Конфигурация configPanel +description: В документации библиотеки DHTMLX JavaScript Pivot вы можете узнать о конфигурации configPanel. Изучайте руководства разработчика и справочник по АПИ, пробуйте примеры кода и живые демо, скачайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +--- + +# configPanel + +### Описание {#description} + +@short: Необязательный. Управляет видимостью панели конфигурации в интерфейсе + +В интерфейсе панель скрывается/отображается нажатием кнопки **Hide Settings**. + +### Использование {#usage} + +~~~jsx +configPanel?: boolean; +~~~ + +### Параметры {#parameters} + +Свойство может принимать значение **true** или **false**: + +- `true` — по умолчанию, показывает панель конфигурации +- `false` — скрывает панель конфигурации + +## Пример {#example} + +~~~jsx {5} +// Панель конфигурации скрыта при инициализации +const table = new pivot.Pivot("#root", { + fields, + data: dataset, + configPanel: false, + config: { + rows: ["hobbies"], + columns: ["relationship_status"], + values: [ + { + field: "age", + method: "min" + }, + { + field: "age", + method: "max" + } + ] + } +}); +~~~ + +**Связанный пример**: [Pivot 2.0: Переключение видимости панели конфигурации](https://snippet.dhtmlx.com/1xq1x5bo) + +**Связанные статьи**: +- [Событие `show-config-panel`](api/events/show-config-panel-event.md) +- [Метод `showConfigPanel()`](api/methods/showconfigpanel-method.md) +- [Управление видимостью панели конфигурации](guides/configuration.md#controlling-visibility-of-configuration-panel) diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/api/config/data-property.md b/i18n/ru/docusaurus-plugin-content-docs/current/api/config/data-property.md new file mode 100644 index 0000000..8dbe498 --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/api/config/data-property.md @@ -0,0 +1,129 @@ +--- +sidebar_label: data +title: data Config +description: Вы можете узнать о конфигурации data в документации библиотеки DHTMLX JavaScript Pivot. Изучайте руководства разработчика и справочник АПИ, пробуйте примеры кода и живые демо, а также скачайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +--- + +# data + +### Описание {#description} + +@short: Необязательный. Массив объектов с данными для таблицы Pivot + +### Использование {#usage} + +~~~jsx +data?: []; +~~~ + +### Параметры {#parameters} + +Каждый объект массива `data` представляет собой строку. Значение по умолчанию — пустой массив. +У свойства `data` нет прямых вложенных свойств. Однако каждый объект в массиве может содержать любое количество свойств, которые будут представлять измерения и значения для таблицы Pivot. + +Пример массива `data`: + +~~~jsx +const data = [ + { + name: "Argentina", + year: 2015, + continent: "South America", + form: "Republic", + gdp: 181.357, + oil: 1.545, + balance: 4.699, + when: new Date("4/21/2015") + }, + { + name: "Argentina", + year: 2017, + continent: "South America", + form: "Republic", + gdp: 212.507, + oil: 1.732, + balance: 7.167, + when: new Date("1/15/2017") + }, + { + name: "Argentina", + year: 2014, + continent: "South America", + form: "Republic", + gdp: 260.071, + oil: 2.845, + balance: 6.728, + when: new Date("6/16/2014") + }, + { + name: "Argentina", + year: 2014, + continent: "South America", + form: "Republic", + gdp: 324.405, + oil: 4.333, + balance: 5.99, + when: new Date("2/20/2014") + }, + { + name: "Argentina", + year: 2014, + continent: "South America", + form: "Republic", + gdp: 305.763, + oil: 2.626, + balance: 7.544, + when: new Date("8/17/2014") + }, + //другие данные +]; +~~~ + +### Пример {#example} + +~~~jsx {3-29} +const table = new pivot.Pivot("#root", { + fields, + data: [ + { + rank: 1, + title: "Shingeki no Kyojin: The Final Season - Kanketsu-hen", + popularity: 609, + genre: "Action", + studio: "MAPPA", + type: "Special", + episodes: 2, + duration: 61, + members: 347875, + score: 9.17, + }, + { + rank: 2, + title: "Fullmetal Alchemist: Brotherhood", + popularity: 3, + genre: "Action", + studio: "Bones", + type: "TV", + episodes: 64, + duration: 24, + members: 3109951, + score: 9.11 + }, + //другие объекты данных + ], + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + } +}); +~~~ diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/api/config/fields-property.md b/i18n/ru/docusaurus-plugin-content-docs/current/api/config/fields-property.md new file mode 100644 index 0000000..028a9c0 --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/api/config/fields-property.md @@ -0,0 +1,112 @@ +--- +sidebar_label: fields +title: fields Config +description: Вы можете узнать о конфиге fields в документации библиотеки DHTMLX JavaScript Pivot. Изучайте руководства разработчика и справочник АПИ, пробуйте примеры кода и живые демо, загружайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +--- + +# fields + +### Описание {#description} + +@short: Необязательный. Массив объектов с полями для таблицы Pivot + +Свойство `fields` в объекте конфигурации управляет тем, как виджет интерпретирует типы полей данных, которые он получает, и позволяет задать порядок сортировки для поля. + +### Использование {#usage} + +~~~jsx +fields?: [{ + id: string, + label?: string, + type: "number" | "date" | "text", + sort?: "asc" | "desc" | ((a: any, b: any) => number), + format?: string | boolean | numberFormatOptions{} +}]; +~~~ + +### Параметры {#parameters} + +По умолчанию, если свойство не задано, виджет автоматически анализирует входящие данные и заполняет объект `fields` соответствующим образом. + +Каждый объект в массиве `fields` должен содержать следующие свойства: + +- `id` - (обязательный) идентификатор поля +- `label` - (необязательный) метка поля, отображаемая в интерфейсе +- `type` - (обязательный) тип данных в поле ( "number", "date" или "text") +- `sort` - (необязательный) определяет порядок сортировки по умолчанию для поля. Принимает "asc", "desc" или пользовательскую функцию сортировки +- `format` - (необязательный) позволяет настроить формат чисел и дат в поле; формат также будет применяться при [экспорте](guides/exporting-data.md) + - `string` - (необязательный) формат для дат (по умолчанию Pivot использует `dateFormat` из локали) + - `boolean` - (необязательный) если установлено значение **false**, число отображается как есть, без какого-либо форматирования + - `numberFormatOptions` - (необязательный) объект с параметрами форматирования числовых полей; по умолчанию числа отображаются с максимум 3 знаками после запятой и применяется разделение групп для целой части. + - `minimumIntegerDigits`(number) - (необязательный) минимальное количество целых цифр (например, если значение равно 2, число 1 будет отображено как "01"); по умолчанию 1; + - `minimumFractionDigits`(number) - (необязательный) минимальное количество дробных знаков (например, если значение равно 2, число 10.5 будет отображено как "10.50"); по умолчанию 0; + - `maximumFractionDigits`(number) - (необязательный) максимальное количество дробных знаков (например, если значение равно 2, число 10.3333... будет отображено как "10.33"); по умолчанию 3; + Подробнее о параметрах цифр см. в [Параметры цифр](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/NumberFormat#minimumintegerdigits) + - `prefix` (string) - (необязательный) строка (перед числом) для дополнительных символов, например обозначения валюты + - `suffix` (string) - (необязательный) строка (после числа) для дополнительных символов, например обозначения валюты + +:::info +Если шаблон применяется через свойство [`tableShape`](api/config/tableshape-property.md), он переопределит настройки `format`. +::: + +### Пример {#example} + +~~~jsx {2-34} +const table = new pivot.Pivot("#root", { + fields: [ + { + id: "rank", + label: "Rank", + type: "number" + }, + { + id: "title", + label: "Title", + type: "text" + }, + { + id: "genre", + label: "Genre", + type: "text" + }, + { + id: "studio", + label: "Studio", + type: "text" + }, + { + id: "type", + label: "Type", + type: "text" + }, + { + id: "score", + label: "Score", + type: "number" + }, + //другие поля + ], + data, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + } +}); +~~~ + +**Связанные статьи**: + +- [Форматирование чисел](guides/localization.md#number-formatting) +- [Применение форматов к полям](guides/working-with-data.md#applying-formats-to-fields) + +**Связанный пример**: [Pivot 2. Определение форматов полей](https://snippet.dhtmlx.com/77nc4j8v) diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/api/config/headershape-property.md b/i18n/ru/docusaurus-plugin-content-docs/current/api/config/headershape-property.md new file mode 100644 index 0000000..40cd0ff --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/api/config/headershape-property.md @@ -0,0 +1,83 @@ +--- +sidebar_label: headerShape +title: headerShape Config +description: В документации библиотеки DHTMLX JavaScript Pivot вы можете узнать о конфигурации headerShape. Изучайте руководства разработчика и справочник АПИ, пробуйте примеры кода и живые демо, а также скачайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +--- + +# headerShape + +### Описание {#description} + +@short: Необязательный. Настраивает внешний вид и поведение заголовков в таблице Pivot + +### Использование {#usage} + +~~~jsx +headerShape?: { + collapsible?: boolean, + vertical?: boolean, + template?: (label: string, field: string, subLabel?: string) => string, + cellStyle?: ( + field: string, + value: any, + area: "rows"|"columns"|"values", + method?: string, + isTotal?: boolean) + => string, +}; +~~~ + +### Параметры {#parameters} + +- `collapsible` - (необязательный) если задано значение **true**, группы измерений в таблице становятся сворачиваемыми. По умолчанию установлено значение **false** +- `vertical` - (необязательный) если задано значение **true**, изменяет ориентацию текста во всех заголовках с горизонтальной на вертикальную. Значение по умолчанию — **false** +- `cellStyle` - (необязательный) функция, применяющая пользовательский стиль к ячейке заголовка. Функция возвращает имя CSS-класса и принимает следующие параметры: + - `field` (string) - (обязательный) строка, представляющая имя поля, которому соответствует ячейка. Для заголовка столбца дерева поле равно "" + - `value` (string | number | date) - (обязательный) значение ячейки + - `area` - (обязательный) строка, указывающая область таблицы, в которой находится ячейка ("rows", "columns" или "values") + - `method` (string) - (необязательный) строка, представляющая операцию, выполняемую для поля из области "values" (например, "sum", "count" и т.д.), или имя предиката, заданного для поля из области "columns" + - `isTotal` - (необязательный) определяет, принадлежит ли ячейка итоговому столбцу +- `template` - (необязательный) определяет формат текста в заголовках. По умолчанию для полей, применяемых как строки, отображается значение параметра `label`, а для полей, применяемых как значения, — метка и метод (например, *Oil(count)*). Функция принимает идентификатор поля, метку и метод или идентификатор предиката (если есть) и возвращает обработанное значение. Шаблон по умолчанию выглядит следующим образом: +~~~js +template: (label, id, subLabel) => + label + (subLabel ? ` (${subLabel})` : "") +~~~ + +## Пример {#example} + +В примере ниже для полей **values** заголовок будет отображать метку, название метода (subLabel) и переводить результат в нижний регистр (например, *profit (sum)*): + +~~~jsx {3-6} +new pivot.Pivot("#pivot", { + data, + headerShape: { + // пользовательский шаблон для текста заголовка + template: (label, id, subLabel) => (label + (subLabel ? ` (${subLabel})` : "")).toLowerCase(), + }, + config: { + rows: ["state", "product_type"], + columns: [], + values: [ + { + field: "profit", + method: "sum" + }, + { + field: "sales", + method: "sum" + }, + // другие значения + ], + }, + fields, +}); +~~~ + +**Связанные примеры**: +- [Pivot 2. Вертикальная ориентация текста в заголовках сетки](https://snippet.dhtmlx.com/4qroi8ka) +- [Pivot 2. Сворачиваемые столбцы](https://snippet.dhtmlx.com/pt2ljmcm) +- [Pivot 2. Добавление пользовательского CSS для ячеек таблицы и заголовков](https://snippet.dhtmlx.com/nfdcs4i2) + +**Связанные статьи**: +- [Конфигурация](guides/configuration.md) +- [Стиль ячеек](guides/stylization.md#cell-style) diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/api/config/limits-property.md b/i18n/ru/docusaurus-plugin-content-docs/current/api/config/limits-property.md new file mode 100644 index 0000000..5171fca --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/api/config/limits-property.md @@ -0,0 +1,61 @@ +--- +sidebar_label: limits +title: limits Config +description: Вы можете узнать о конфиге limits в документации библиотеки DHTMLX JavaScript Pivot. Изучайте руководства разработчика и справочник АПИ, пробуйте примеры кода и живые демо, а также скачайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +--- + +# limits + +### Описание {#description} + +@short: Необязательный. Определяет максимальный лимит количества строк и столбцов в итоговом наборе данных + +Смотрите также [Ограничение данных](guides/working-with-data.md#limiting-loaded-data). + +### Использование {#usage} + +~~~jsx +limits?: { + rows?: number, + columns?: number, + raws?: number +}; +~~~ + +### Параметры {#parameters} + +Параметры определяют, когда следует прерывать отрисовку данных: + +- `rows` - (необязательный) задаёт максимальное количество строк в итоговом наборе данных; значение по умолчанию — 10000. +- `columns` - (необязательный) задаёт максимальное количество столбцов в итоговом наборе данных; значение по умолчанию — 5000. +- `raws` - (необязательный) максимальное количество строк исходных данных до их группировки (необработанные записи, используемые для агрегации); значение по умолчанию — бесконечность. + +:::note +Лимиты применяются для больших наборов данных. Значения лимитов являются приблизительными и не отражают точное количество строк и столбцов. +::: + +## Пример {#example} + +~~~jsx {18} +const table = new pivot.Pivot("#root", { + fields, + data: dataset, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + }, + ], + }, + limits:{ rows: 25, columns: 4 } +}); +~~~ + +**Связанный пример**: [Pivot 2. Ограничения данных](https://snippet.dhtmlx.com/7ryns8oe) diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/api/config/locale-property.md b/i18n/ru/docusaurus-plugin-content-docs/current/api/config/locale-property.md new file mode 100644 index 0000000..8a11b25 --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/api/config/locale-property.md @@ -0,0 +1,51 @@ +--- +sidebar_label: locale +title: locale Config +description: Вы можете узнать о конфиге locale в документации библиотеки DHTMLX JavaScript Pivot. Просматривайте руководства разработчика и справочник АПИ, изучайте примеры кода и живые демо, а также загрузите бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +--- + +# locale + +### Описание {#description} + +@short: Необязательный. Объект пользовательской локали Pivot + +### Использование {#usage} + +~~~jsx +locale?: object; +~~~ + +### Конфигурация по умолчанию {#default-config} + +По умолчанию Pivot использует локаль [английского](guides/localization.md#default-locale) языка. Вы также можете задать пользовательскую локаль. + +:::tip +Чтобы изменить текущую локаль динамически, используйте метод [`setLocale()`](api/methods/setlocale-method.md) компонента Pivot +::: + +### Пример {#example} + +~~~jsx {19} +const table = new pivot.Pivot("#root", { + fields, + data: dataset, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + }, + + locale: pivot.locales.cn, // локаль "cn" будет установлена изначально + // другие параметры +}); +~~~ diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/api/config/methods-property.md b/i18n/ru/docusaurus-plugin-content-docs/current/api/config/methods-property.md new file mode 100644 index 0000000..fab9b1d --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/api/config/methods-property.md @@ -0,0 +1,163 @@ +--- +sidebar_label: methods +title: methods Config +description: Вы можете узнать о конфигурационном параметре methods в документации библиотеки DHTMLX JavaScript Pivot. Изучайте руководства разработчика и справочник АПИ, пробуйте примеры кода и живые демо, а также загружайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +--- + +# methods + +### Описание {#description} + +@short: Необязательный. Задаёт пользовательские математические методы для агрегации данных + +### Использование {#usage} + +~~~jsx +methods?: { + [method: string]: { + type?: 'number' | 'date' | 'text' | [], + label?: string, + handler?: (values: number[]) => number, + branchMode?: "raw"|"result", + branchMath?: string + } +}; +~~~ + +### Параметры {#parameters} + +Каждый метод представлен парой «ключ-значение», где `method` — это имя метода, а значение — объект, описывающий поведение метода. Каждый объект имеет следующие параметры: + +- `handler` - (обязателен для пользовательских методов) функция, которая вычисляет агрегированное значение из массива чисел; функция принимает массив значений на вход и возвращает одно значение на выходе +- `type` - (необязательный) тип данных, для которого подходит данный метод; может быть "number", "date" или "text" или массивом этих значений +- `label` - (необязательный) метка метода, отображаемая в интерфейсе +- `branchMode` - (необязательный) определяет режим вычисления итоговых значений для древовидной таблицы; `branchMode` может быть задан как `raw` для вычисления на основе всех исходных данных; `result` (по умолчанию) задаётся для вычисления на основе уже обработанных данных в режиме дерева +- `branchMath` - (необязательный) имя метода для вычисления итоговых значений в режиме дерева; по умолчанию совпадает с именем метода (для метода "max" параметр `branchMath` также равен "max") + +По умолчанию свойство `methods` является пустым объектом {}, что означает отсутствие пользовательских методов. Количество вложенных свойств, которые можно определить в объекте methods, не ограничено. + +Предопределённые методы: + +~~~jsx +defaultMethods = { + sum: { type: "number", label: "sum" }, + min: { type: ["number", "date"], label: "min" }, + max: { type: ["number", "date"], label: "max" }, + count: { + type: ["number", "date", "text"], + label: "count", + branchMath: "sum" + }, + counta: { + type: ["number", "date", "text"], + label: "counta", + branchMath: "sum" + }, + countunique: { + type: ["number", "text"], + label: "countunique", + branchMath: "sum" + }, + average: { type: "number", label: "average", branchMode: "raw" }, + median: { type: "number", label: "median", branchMode: "raw" }, + product: { type: "number", label: "product" }, + stdev: { type: "number", label: "stdev", branchMode: "raw" }, + stdevp: { type: "number", label: "stdevp", branchMode: "raw" }, + var: { type: "number", label: "var", branchMode: "raw" }, + varp: { type: "number", label: "varp", branchMode: "raw" } +}; +~~~ + +Определение каждого метода можно посмотреть здесь: [Применение методов](guides/working-with-data.md#default-methods) + +## Пример {#example} + +В приведённом ниже примере показано, как вычислить количество уникальных и средних значений для типа date. Функция **countUnique** принимает массив чисел (значений) на вход и вычисляет точное количество уникальных значений с помощью метода **reduce**. Вложенное свойство **countunique_date** содержит обработчик с функцией, которая получает уникальные значения из массива дат. Вложенное свойство **average_date** содержит обработчик, который вычисляет средние значения из массива дат. + +~~~jsx +function countUnique(values, converter) { + const valueMap = {}; + return values.reduce((acc, d) => { + if (converter) d = converter(d); + if (!valueMap[d]) { + acc++; + valueMap[d] = true; + } + return acc; + }, 0); +} + +const methods = { + countunique_date: { + handler: values => countUnique(values, v => new Date(v).getTime()), + type: "date", + label: "CountUnique" + }, + average_date: { + type: "date", + label: "Average", + branchMode: "raw", + handler: values => { + if (!values.length) return null; + const sum = values.reduce((acc, d) => acc + d.getTime(), 0); + const avgTime = sum / values.length; + return new Date(avgTime); + } + } +}; + +// показывать целые числа для результатов "count" и "unique count" +const templates = {}; +fields.forEach(f => { + if (f.type == "number") + templates[f.id] = (v, method) => + v && method.indexOf("count") < 0 ? parseFloat(v).toFixed(3) : v; +}); + +// строку даты в Date +const dateFields = fields.filter(f => f.type == "date"); +if (dateFields.length) { + dataset.forEach(item => { + dateFields.forEach(f => { + const v = item[f.id]; + if (typeof v == "string") item[f.id] = new Date(v); + }); + }); +} + +const table = new pivot.Pivot("#root", { + fields, + data: dataset, + tableShape: { templates }, + methods: { ...pivot.defaultMethods, ...methods }, + config:{ + rows: ["state"], + columns: [ + "product_line", + "product_type" + ], + values: [ + { + field: "sales", + method: "sum" + }, + { + field: "sales", + method: "count" + }, + { + field: "date", + method: "countunique_date" + }, + { + field: "date", + method: "average_date" + } + ] + } +}); +~~~ + +**Связанный пример**: [Pivot 2. Пользовательские математические методы](https://snippet.dhtmlx.com/lv90d8q2) + +**Связанная статья**: [Применение математических методов](guides/working-with-data.md#applying-maths-methods) diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/api/config/predicates-property.md b/i18n/ru/docusaurus-plugin-content-docs/current/api/config/predicates-property.md new file mode 100644 index 0000000..5facf91 --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/api/config/predicates-property.md @@ -0,0 +1,117 @@ +--- +sidebar_label: predicates +title: predicates Config +description: В документации библиотеки DHTMLX JavaScript Pivot вы можете узнать о конфиге predicates. Изучайте руководства разработчика и справочник АПИ, просматривайте примеры кода и живые демо, скачайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +--- + +# predicates + +### Описание {#description} + +@short: Необязательный. Предоставляет пользовательские функции предварительной обработки для измерений данных (строки, столбцы) + +Определяет, как данные должны быть изменены перед применением. + +### Использование {#usage} + +~~~jsx +predicates?: { + [key: string]: { + handler: (value: any) => any, + type: 'number' | 'date' | 'text' | [], + label?: string | (type: 'number' | 'date' | 'text') => string, + template?: (value: any, locale?: any) => string, + field?: (value:string) => boolean, + filter?: { + type: "number"|"text"|"date"|"tuple", + format?:(any) => string + } + } +}; +~~~ + +### Параметры {#parameters} + +Свойство является объектом, где ключ — это имя пользовательской функции, а значение — объект с определениями самих функций. Объект предиката может содержать несколько пар ключ-функция, и все они будут доступны для использования в конфигурации Pivot. Каждый объект имеет следующие параметры: + +- `label` - (необязательный) метка предиката, отображаемая в GUI в выпадающем списке среди опций модификаторов данных для строки/столбца +- `type` - (обязательный) определяет, для каких типов полей можно применять данный предикат; допустимые значения: "number", "date", "text" или массив этих значений +- `field` - (необязательный) функция, определяющая порядок обработки данных для указанного поля; принимает идентификатор поля в качестве параметра и возвращает **true**, если предикат должен быть добавлен к указанному полю +- `filter` - (необязательный) по умолчанию тип фильтра берётся из параметра `type`, но если требуется другой, можно использовать этот объект `filter`. Он имеет следующие параметры: + - `type` - (необязательный) определяет, какой тип поля будет применён: "number"|"text"|"date"|"tuple". "tuple" — это комбинированный фильтр для числовых значений (данные фильтруются по числовому значению, но в фильтре отображается текстовое значение) + - `format` - (необязательный) функция, определяющая формат отображения вариантов фильтрации; если формат не задан, применяется формат из параметра `template`; если `type` (для объекта `filter`) не указан, формат будет применён для типа, заданного в параметре `type` предиката +- `handler` - (обязательный для пользовательских предикатов) функция, определяющая порядок обработки данных; функция принимает единственный аргумент — обрабатываемое значение — и возвращает обработанное значение +- `template` - (необязательный) функция, определяющая способ отображения данных; функция возвращает обработанное значение, принимает значение, возвращённое `handler`, и при необходимости позволяет локализовать текстовые значения с помощью [`locale`](api/config/locale-property.md) + +Следующие предикаты применяются по умолчанию, если через свойство `predicates` не задан ни один предикат: + +~~~jsx +const defaultPredicates = { + // служебный предикат, представляющий исходное (необработанное) значение + $empty: { label: (type) => `Raw ${type}`, type: ["number", "date", "text"] }, + year: { label: "Year", type: "date", filter: { type: "number" } }, + quarter: { label: "Quarter", type: "date", filter: { type: "tuple" } }, + month: { label: "Month", type: "date", filter: { type: "tuple" } }, + week: { label: "Week", type: "date", filter: { type: "tuple" } }, + day: { label: "Day", type: "date", filter: { type: "number" } }, + hour: { label: "Hour", type: "date", filter: { type: "number" } }, + minute: { label: "Minute", type: "date", filter: { type: "number" } } +}; +~~~ + +## Пример {#example} + +~~~jsx +const predicates = { + monthYear: { + label: "Month-year", + type: "date", + handler: (d) => new Date(d.getFullYear(), d.getMonth(), 1), + template: (date, locale) => { + const months = locale.getRaw().calendar.monthFull; + return months[date.getMonth()] + " " + date.getFullYear(); + }, + }, + profitSign: { + label: "Profit Sign", + type: "number", + filter: { + type: "tuple", + format: (v) => (v < 0 ? "Negative" : "Positive"), + }, + field: (f) => f === "profit", + handler: (v) => (v < 0 ? -1 : 1), + template: (v) => (v < 0 ? "Negative profit" : "Positive profit"), + }, +}; + +// строку с датой в объект Date +const dateFields = fields.filter((f) => f.type == "date"); +if (dateFields.length) { + dataset.forEach((item) => { + dateFields.forEach((f) => { + const v = item[f.id]; + if (typeof v == "string") item[f.id] = new Date(v); + }); + }); +} + +const table = new pivot.Pivot("#pivot", { + fields, + data: dataset, + predicates: { ...pivot.defaultPredicates, ...predicates }, + tableShape: { tree: true }, + config: { + rows: ["product_type", "product"], + columns: [ + { field: "profit", method: "profitSign" }, + { field: "date", method: "monthYear" }, + ], + values: ["sales", "expenses"], + }, +}); +~~~ + +**Связанная статья**: [Обработка данных с помощью предикатов](guides/working-with-data.md#processing-data-with-predicates) + +**Связанный пример**: [Pivot 2. Пользовательские предикаты](https://snippet.dhtmlx.com/mhymus00) diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/api/config/readonly-property.md b/i18n/ru/docusaurus-plugin-content-docs/current/api/config/readonly-property.md new file mode 100644 index 0000000..e42cad3 --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/api/config/readonly-property.md @@ -0,0 +1,52 @@ +--- +sidebar_label: readonly +title: readonly Config +description: В документации библиотеки DHTMLX JavaScript Pivot вы можете узнать о конфигурационном параметре readonly. Изучайте руководства разработчика и справочник АПИ, запускайте примеры кода и живые демо, а также скачайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +--- + +# readonly + +### Описание {#description} + +@short: Необязательный. Включает/отключает режим только для чтения + +В режиме только для чтения настройка структуры Pivot через интерфейс недоступна. + +### Использование {#usage} + +~~~jsx + readonly?: boolean; +~~~ + +### Параметры {#parameters} + +Свойство может принимать значения **true** или **false**: + +- `true` — включает режим только для чтения +- `false` — значение по умолчанию, отключает режим только для чтения + +## Пример {#example} + +~~~jsx {18} +const table = new pivot.Pivot("#root", { + fields, + data: dataset, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + }, + readonly: true +}); +~~~ + +**Связанный пример**: [Pivot 2. Режим только для чтения](https://snippet.dhtmlx.com/0k0mvycv) diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/api/config/tableshape-property.md b/i18n/ru/docusaurus-plugin-content-docs/current/api/config/tableshape-property.md new file mode 100644 index 0000000..a191e4d --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/api/config/tableshape-property.md @@ -0,0 +1,131 @@ +--- +sidebar_label: tableShape +title: Конфигурация tableShape +description: Вы можете узнать о конфигурации tableShape в документации библиотеки DHTMLX JavaScript Pivot. Изучите руководства разработчика и справочник АПИ, ознакомьтесь с примерами кода и живыми демо, скачайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +--- + +# tableShape + +### Описание {#description} + +@short: Необязательный. Настраивает внешний вид таблицы Pivot + +### Использование {#usage} + +~~~jsx +tableShape?: { + templates?: { + [field: string]: ( + value: any, + operation: string + ) => any; + }, + totalRow?: boolean | "sumOnly", + totalColumn?: boolean | "sumOnly", + marks?: { + [cssClass: string]: ((v: any, columnData: any, rowData: any) => boolean) + | "max" + | "min" + }, + sizes?: { + rowHeight?: number, + headerHeight?: number, + columnWidth?: number, + footerHeight?: number + }, + tree?:boolean, + cleanRows?: boolean, + split?: { + left?: boolean, + right?: boolean, + }, + cellStyle?: ( + field: string, + value: any, + area: "rows"|"columns"|"values", + method?: string, + isTotal?: "row"|"column"|"both") + => string, +}; +~~~ + +### Параметры {#parameters} + +- `templates` - (необязательный) позволяет задавать шаблоны для ячеек; это объект, где: + - каждый ключ — это идентификатор поля + - значение — функция, которая возвращает строку и принимает значение ячейки и операцию. Ко всем столбцам, основанным на указанном поле, будет применён соответствующий шаблон. Например, это позволяет задавать единицы измерения или возвращать необходимое количество знаков после запятой для числовых значений и т. д. Смотрите пример ниже. +- `marks` - (необязательный) позволяет отмечать ячейку с необходимыми значениями. Это объект, где ключи — имена CSS-классов, а значения — либо функция, либо одна из предопределённых строк ("max", "min"). Функция должна возвращать булево значение для проверяемого значения. Если возвращается **true**, CSS-класс присваивается ячейке. Подробнее с примерами смотрите здесь: [Стилизация ячеек](guides/stylization.md#cell-style). +- `sizes` - (необязательный) определяет следующие параметры размеров таблицы: + - `rowHeight` - (необязательный) высота строки в таблице Pivot в пикселях. Значение по умолчанию — 34 + - `headerHeight` - (необязательный) высота заголовка в пикселях; значение по умолчанию — 30 + - `footerHeight` - (необязательный) высота подвала в пикселях; значение по умолчанию — 30 + - `columnWidth` - (необязательный) ширина столбца в пикселях; значение по умолчанию — 150 +- `cellStyle` - (необязательный) функция, применяющая пользовательский стиль к ячейке. Функция принимает следующие параметры: + - `field` - (обязательный) строка, представляющая имя поля, к которому применяется стиль + - `value` - (обязательный) значение ячейки (фактические данные для данной строки и столбца) + - `area` - (обязательный) строка, указывающая область таблицы, в которой находится ячейка ("rows", "columns" или "values") + - `method` - (необязательный) строка, представляющая операцию, выполняемую над ячейкой (например, "sum", "count" и т. д.) + - `isTotal` - (необязательный) определяет, принадлежит ли ячейка итоговой строке, итоговому столбцу или и тому, и другому: "row"|"column"|"both" + Функция `cellStyle` возвращает строку, которая может использоваться как имя CSS-класса для применения определённых стилей к ячейке. +- `tree` - (необязательный) если установлено значение **true**, включает режим дерева, при котором данные отображаются с раскрываемыми строками; значение по умолчанию — **false**. Подробнее с примерами смотрите здесь: [Переключение в режим дерева](guides/configuration.md#enabling-the-tree-mode) +- `totalColumn` - (необязательный) если **true**, включает генерацию итогового столбца с итоговыми значениями для строк (по умолчанию установлено **false**). Если установлено значение "sumOnly", будет сгенерирован столбец с итоговой суммой (доступно только для операции sum) +- `totalRow` - (необязательный) если **true**, включает генерацию подвала с итоговыми значениями (по умолчанию установлено **false**). Если установлено значение "sumOnly", будет сгенерирована строка с итоговым значением (доступно только для операции sum) +- `cleanRows` - (необязательный) если установлено значение **true**, дублирующиеся значения в масштабных столбцах скрываются в табличном представлении. Значение по умолчанию — **false** +- `split` - (необязательный) позволяет закреплять столбцы справа или слева в зависимости от указанного параметра (смотрите [Закрепление столбцов](guides/configuration.md#freezing-columns)): + - `left` (boolean) - если установлено значение **true** (по умолчанию **false**), фиксирует столбцы слева, делая их статичными и видимыми при прокрутке. Количество закреплённых столбцов равно числу полей строк, определённых в свойстве [`config`](api/config/config-property.md) + - `right` (boolean) - фиксирует итоговые столбцы справа; значение по умолчанию — **false** + +По умолчанию `tableShape` не определён, что означает отсутствие итоговой строки и итогового столбца, отсутствие применённых шаблонов и маркировок, данные отображаются в виде таблицы, а не дерева, и столбцы не фиксируются при прокрутке. + +## Пример {#example} + +В приведённом ниже примере мы применяем шаблон к ячейкам *state*, чтобы отображать составное название штата (полное название и аббревиатуру). + +~~~jsx {10-15} +const states = { + "California": "CA", + "Colorado": "CO", + "Connecticut": "CT", + "Florida": "FL", +// другие значения, +}; + +const table = new pivot.Pivot("#root", { + tableShape: { + templates: { + // задаём шаблон для настройки значений ячеек "state" + state: v => v+ ` (${states[v]})`, + } + }, + fields, + data, + config: { + rows: ["state", "product_type"], + columns: [], + values: [ + { + field: "profit", + method: "sum" + }, + { + field: "sales", + method: "sum" + }, + // другие значения + ], + }, + fields, +}); +~~~ + +**Связанные примеры**: + +- [Pivot 2. Режим дерева](https://snippet.dhtmlx.com/6ylkoukn) +- [Pivot 2. Замороженные (фиксированные) столбцы](https://snippet.dhtmlx.com/lahf729o) +- [Pivot 2. Задать высоту строки, заголовка, подвала и ширину всех столбцов](https://snippet.dhtmlx.com/x46uyfy9) +- [Pivot 2. Чистые строки](https://snippet.dhtmlx.com/rwwhgv2w?tag=pivot) +- [Pivot 2. Добавление пользовательского CSS для ячеек таблицы и заголовка](https://snippet.dhtmlx.com/nfdcs4i2) + +**Связанные статьи**: +- [Конфигурация](guides/configuration.md) +- [Стиль ячеек](guides/stylization.md#cell-style) diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/api/events/add-field-event.md b/i18n/ru/docusaurus-plugin-content-docs/current/api/events/add-field-event.md new file mode 100644 index 0000000..a7b222d --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/api/events/add-field-event.md @@ -0,0 +1,74 @@ +--- +sidebar_label: add-field +title: Событие add-field +description: Вы можете узнать о событии add-field в документации библиотеки DHTMLX JavaScript Pivot. Ознакомьтесь с руководствами разработчика и справочником АПИ, изучите примеры кода и живые демо, а также загрузите бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +--- + +# add-field + +### Описание {#description} + +@short: Срабатывает, когда новое поле добавляется в область строк, столбцов или значений + +### Использование {#usage} + +~~~jsx +"add-field": ({ + id?: string | number, + area: string, + field: string | number, + method?: string +}) => boolean; +~~~ + +### Параметры {#parameters} + +Колбэк действия принимает объект со следующими параметрами: + +- `id` - (необязательный) желаемый идентификатор нового поля; если не задан, добавляется автоматически сгенерированный id +- `area` - (обязательный) название области, в которую добавляется новое поле: "rows", "columns" или "values" +- `field` - (обязательный) название поля +- `method` - (необязательный) определяет метод агрегации данных (если не указан, устанавливается первый метод, подходящий для данного типа данных); метод может быть одним из следующих: + - для области **values** является обязательным — это строка с одним из типов операций над данными: [Методы по умолчанию](guides/working-with-data.md#default-methods) + - для областей **rows** и **columns** является необязательным; если значение задано, это предикат — пользовательский или один из встроенных: "year", "quarter", "month", "week", "day", "hour", "minute". По умолчанию используется исходное значение. + Если задан пользовательский предикат или метод, необходимо указать id для свойства [predicates](api/config/predicates-property.md) или [methods](api/config/methods-property.md). + +:::info +Для обработки внутренних событий можно использовать [методы Event Bus](api/overview/internal-eventbus-overview.md) +::: + +### Пример {#example} + +В приведённом ниже примере используется метод [`api.intercept()`](api/internal/intercept-method.md) для добавления нового метода к полю значений с типом данных **number**: + +~~~jsx {20-27} +const table = new pivot.Pivot("#root", { + fields, + data: dataset, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + } +}); +//добавление значений с заранее заданным методом +table.api.intercept("add-field", (ev) => { + const { fields } = table.api.getState(); + const type = fields.find((f) => f.id == ev.field).type; + + if (ev.area == "values" && type == "number") { + ev.method = "min"; + } +}); +~~~ + +**Связанные статьи**: [api.intercept()](api/internal/intercept-method.md) diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/api/events/apply-filter-event.md b/i18n/ru/docusaurus-plugin-content-docs/current/api/events/apply-filter-event.md new file mode 100644 index 0000000..1512daf --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/api/events/apply-filter-event.md @@ -0,0 +1,65 @@ +--- +sidebar_label: apply-filter +title: apply-filter Event +description: Вы можете узнать о событии apply-filter в документации библиотеки DHTMLX JavaScript Pivot. Изучайте руководства разработчика и справочник АПИ, пробуйте примеры кода и живые демо, а также скачайте бесплатную 30-дневную пробную версию DHTMLX Pivot. +--- + +# apply-filter + +### Описание {#description} + +@short: Срабатывает при применении фильтра + +### Использование {#usage} + +~~~jsx +"apply-filter": ({ + rule: {} +}) => boolean | void; +~~~ + +### Параметры {#parameters} + +Калбэк действия принимает объект со следующими параметрами: + +- `rule` - любой объект конфигурации фильтра со следующими параметрами: + - `field` - (обязательный) идентификатор поля, к которому будет применён фильтр + - `filter` - (обязательный) тип фильтра: + - для текстовых значений: equal, notEqual, contains, notContains, beginsWith, notBeginsWith, endsWith, notEndsWith + - для числовых значений: greater, less, greaterOrEqual, lessOrEqual, equal, notEqual, contains, notContains + - для типов дат: greater, less, greaterOrEqual, lessOrEqual, equal, notEqual, between, notBetween + - `value` - (необязательный) значение для фильтрации + - `includes` - (необязательный) массив значений для отображения из тех, что уже отфильтрованы; доступно для текстовых и датовых значений + +:::info +Для обработки внутренних событий можно использовать [методы Event Bus](api/overview/internal-eventbus-overview.md) +::: + +### Пример {#example} + +~~~jsx {20-23} +const table = new pivot.Pivot("#root", { + fields, + data, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + } +}); +//вывод в консоль метки поля, к которому был применён фильтр +table.api.on("apply-filter", (ev) => { + console.log("The field to which filter was applied:", ev.rule.field); +}); +~~~ + +**Связанные статьи**: [api.on()](api/internal/on-method.md) diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/api/events/delete-field-event.md b/i18n/ru/docusaurus-plugin-content-docs/current/api/events/delete-field-event.md new file mode 100644 index 0000000..115c609 --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/api/events/delete-field-event.md @@ -0,0 +1,82 @@ +--- +sidebar_label: delete-field +title: delete-field Event +description: В документации библиотеки DHTMLX JavaScript Pivot вы можете узнать о событии delete-field. Изучайте руководства разработчика и справочник АПИ, пробуйте примеры кода и живые демо, загружайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +--- + +# delete-field + +### Описание {#description} + +@short: Срабатывает при удалении поля + +### Использование {#usage} + +~~~jsx +"delete-field": ({ + area: string, + id: string | number +}) => boolean | void; +~~~ + +### Параметры {#parameters} + +Колбэк действия принимает объект со следующими параметрами: + +- `area` - (обязательный) название области, из которой удаляется поле; может быть областью "rows", "columns" или "values" +- `id` - (обязательный) идентификатор удаляемого поля + +:::info +Для обработки внутренних событий можно использовать [методы Event Bus](api/overview/internal-eventbus-overview.md) +::: + +### Пример {#example} + +В примере ниже действие `delete-field` вызывается через метод [`api.exec()`](api/internal/exec-method.md). Последнее поле удаляется из области **values**. Метод [`api.getState()`](api/internal/getstate-method.md) здесь используется для получения текущего состояния [`config`](api/config/config-property.md) Pivot. Действие будет вызвано по нажатию кнопки. + +~~~jsx {31-34} +const table = new pivot.Pivot("#root", { + fields, + data, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + } +}); + +//вызов методов АПИ: удаление определённого значения из values в config +function removeLastField() { + if (table.api) { + const state = table.api.getState(); + const config = state.config; + + const count = config.values.length; + + if (count) { + const lastValue = config.values[count - 1]; + + table.api.exec("delete-field", { + area: "values", + id: lastValue.id, // автоматически сгенерированный ID элемента, добавленного в config.values + }); + } + } +} + +const button = document.createElement("button"); + +button.addEventListener("click", removeLastField); +button.textContent = "Remove"; + +document.body.appendChild(button); +~~~ diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/api/events/move-field-event.md b/i18n/ru/docusaurus-plugin-content-docs/current/api/events/move-field-event.md new file mode 100644 index 0000000..9ca4b32 --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/api/events/move-field-event.md @@ -0,0 +1,65 @@ +--- +sidebar_label: move-field +title: move-field Event +description: Документация по событию move-field в библиотеке DHTMLX JavaScript Pivot. Руководства разработчика и справочник по АПИ, примеры кода и живые демо, а также бесплатная 30-дневная ознакомительная версия DHTMLX Pivot. +--- + +# move-field + +### Описание {#description} + +@short: Срабатывает при изменении порядка полей + +### Использование {#usage} + +~~~jsx +"move-field": ({ + area: string, + id: string | number, + before?: string, + after?: string +}) => void | boolean; +~~~ + +### Параметры {#parameters} + +Колбэк действия принимает объект со следующими параметрами: + +- `area` - (обязательный) название области, в которой выполняется изменение порядка: "rows", "columns" или "values" +- `id` - (обязательный) идентификатор перемещаемого поля +- `before` - (необязательный) идентификатор поля, перед которым размещается перемещаемое поле +- `after` - (необязательный) идентификатор поля, после которого размещается перемещаемое поле + +:::info +Для обработки внутренних событий можно использовать [методы Event Bus](api/overview/internal-eventbus-overview.md) +::: + +### Пример {#example} + +~~~jsx {20-23} +const table = new pivot.Pivot("#root", { + fields, + data: dataset, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + } +}); + +//вывести в консоль идентификатор поля, порядок которого изменился +table.api.on("move-field", (ev) => { + console.log("The id of the reordered field:", ev.id); +}); +~~~ + +**Связанные статьи**: [api.on()](api/internal/on-method.md) diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/api/events/open-filter-event.md b/i18n/ru/docusaurus-plugin-content-docs/current/api/events/open-filter-event.md new file mode 100644 index 0000000..dad42aa --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/api/events/open-filter-event.md @@ -0,0 +1,95 @@ +--- +sidebar_label: open-filter +title: open-filter Событие +description: Вы можете узнать о событии open-filter в документации библиотеки DHTMLX JavaScript Pivot. Изучите руководства разработчика и справочник АПИ, ознакомьтесь с примерами кода и живыми демо, а также скачайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +--- + +# open-filter + +### Описание {#description} + +@short: Срабатывает при активации фильтра для поля + +### Использование {#usage} + +~~~jsx +"open-filter": ({ + id: string | null, + area?: "values" | "rows" | "columns" +}) => boolean | void; +~~~ + +### Параметры {#parameters} + +Калбэк действия принимает следующие параметры: + +- `area` - область, в которой применяется поле ("rows", "columns", "values") +- `id` - идентификатор поля; если передан единственный аргумент `id` со значением null, фильтр будет закрыт. + +:::info +Для обработки внутренних событий можно использовать [методы Event Bus](api/overview/internal-eventbus-overview.md) +::: + +### Возвращает {#returns} + +Функция может возвращать булево значение или void. При возврате **false** соответствующая операция события будет прервана. + +### Пример {#example} + +Пример ниже показывает, как скрыть панель конфигурации при закрытии блока фильтра: + +~~~jsx {20-27} +const table = new pivot.Pivot("#root", { + fields, + data: dataset, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + } +}); + +table.api.on("open-filter", (ev) => { + if(!ev.id) { + table.api.exec("show-config-panel", { + mode: false + }); + } +}); +~~~ + +В следующем примере идентификатор поля, для которого активирован фильтр, выводится в консоль: + +~~~jsx {20-22} +const table = new pivot.Pivot("#root", { + fields, + data, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + } +}); + +table.api.on("open-filter", (ev) => { + console.log("The field id for which filter is activated:", ev.id); +}); +~~~ diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/api/events/render-table-event.md b/i18n/ru/docusaurus-plugin-content-docs/current/api/events/render-table-event.md new file mode 100644 index 0000000..60ad98a --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/api/events/render-table-event.md @@ -0,0 +1,178 @@ +--- +sidebar_label: render-table +title: render-table Event +description: Вы можете узнать о событии render-table в документации библиотеки DHTMLX JavaScript Pivot. Просматривайте руководства разработчика и справочник АПИ, пробуйте примеры кода и живые демо, а также скачайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +--- + +# render-table + +### Описание {#description} + +@short: Срабатывает после обработки конфигурации виджета и непосредственно перед рендерингом таблицы + +Позволяет изменить итоговую конфигурацию таблицы на лету или полностью предотвратить её рендеринг. + +### Использование {#usage} + +~~~jsx +"render-table": ({ + config: { + columns?: any[], + data?: any[], + footer?: boolean, + sizes?: { + rowHeight?: number, + headerHeight?: number, + columnWidth?: number, + footerHeight?: number + }, + split?: { + left?: number; + right?: number; + }, + tree?: boolean, + cellStyle?: (row: any, col: any) => string, + } +}) => boolean | void; +~~~ + +### Параметры {#parameters} + +Калбэк события принимает объект `config` со следующими параметрами: + +- `columns` - (опционально) массив столбцов, где каждый объект содержит следующие параметры: + - `id` (number) - (обязательно) идентификатор столбца + - `cell` (any) - (опционально) шаблон с содержимым ячейки (см. [Добавление шаблонов через хелпер template](guides/configuration.md#adding-a-template-via-the-template-helper)) + - `template` - (опционально) шаблон, определённый через свойство [`tableShape`](api/config/tableshape-property.md) + - `fields` (array) - (опционально) определяет поля в иерархическом столбце в режиме дерева. Отражает поля, отображаемые в данном столбце на разных уровнях + - `field` - (опционально) строка, являющаяся идентификатором поля + - `method` (string) - (опционально) метод, если он задан для поля в данном столбце + - `methods` (array) - (опционально) определяет методы, применяемые к полям в иерархическом столбце в режиме дерева + - `format` (string or object) - (обязательно) формат даты или числа (см. [Применение форматов к полям](guides/working-with-data.md#applying-formats-to-fields)) + - `isNumeric` (boolean) - (опционально) определяет, содержит ли столбец числовые значения + - `isTotal` (boolean) - (опционально) определяет, является ли столбец итоговым + - `area` (string) - (опционально) область, в которой отображается столбец: "rows", "columns", "values" + - `header` - (опционально) массив ячеек заголовка со следующими свойствами для каждой ячейки: + - `text` (string) - (опционально) текст ячейки, форматированное значение или значение, обработанное шаблоном предиката + - `rowspan` (number) - (опционально) количество строк, которые должен охватывать заголовок + - `colspan` (number) - (опционально) количество столбцов, которые должен охватывать заголовок + - `value` (any) - (обязательно) исходное значение, если ячейка принадлежит области "columns" + - `field` (string) - (обязательно) поле, значение которого отображается, если ячейка принадлежит области "columns" + - `method` (string) - (обязательно) предикат поля, если ячейка принадлежит области "columns" и предикат задан + - `format` (string or object) - формат даты или числа (см. [Применение форматов к полям](guides/working-with-data.md#applying-formats-to-fields)) + - `footer` - (опционально) метка заголовка или объект с настройками футера, аналогичными настройкам заголовка + - `data` - (опционально) массив объектов с данными для таблицы; каждый объект представляет строку: + - `id` (number) - (обязательно) идентификатор строки + - `values` (array) - (обязательно) массив с данными строки + - `open` (boolean) - (опционально) состояние ветки + - `$level` (boolean) - (опционально) индекс ветки +- `footer` - (опционально) если установлено значение **true**, футер таблицы отображается внизу таблицы; по умолчанию установлено значение **false** и футер не виден +- `sizes` - (опционально) объект с настройками размеров таблицы: columnWidth, footerHeight, headerHeight, rowHeight +- `split` (object) - (опционально) объект со следующими свойствами: + - `left` (number) - количество фиксированных столбцов слева + - `right` (number) - количество фиксированных столбцов справа +- `tree` - (опционально) определяет, включён ли режим дерева (**true**, если включён) +- `cellStyle` - (опционально) функция, применяющая пользовательский стиль к ячейке. Принимает объекты строки и столбца и возвращает строку с именем CSS-класса: `(row, col) => string` + +:::info +Для обработки внутренних событий можно использовать [методы Event Bus](api/overview/internal-eventbus-overview.md) +::: + +### Возвращаемое значение {#returns} + +Калбэк может возвращать boolean или void. +Если обработчик события возвращает **false**, операция будет заблокирована. В данном случае это предотвратит рендеринг таблицы. + +### Пример {#example} + +Следующий пример показывает, как вывести объект [`config`](api/config/config-property.md) в консоль и добавить футер. + +~~~jsx {20-28} +const table = new pivot.Pivot("#root", { + fields, + data: dataset, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + } +}); + +table.api.intercept("render-table", (ev) => { + console.log(ev.config); //вывести объект config + console.log(ev.config.columns); //вывести массив columns + + ev.config.footer = true; + ev.config.columns[0].footer = ["Custom footer"]; + + // возврат "false" здесь предотвратит рендеринг таблицы +}); +~~~ + +Следующий пример показывает, как раскрывать/сворачивать все строки по нажатию кнопки. Режим дерева должен быть включён через свойство [`tableShape`](api/config/tableshape-property.md). + +~~~jsx +const table = new pivot.Pivot("#root", { + tableShape: { + tree: true, + }, + fields, + data: dataset, + config: { + rows: ["type", "studio"], + columns: [], + values: [ + { + field: "score", + method: "max" + }, + { + field: "rank", + method: "min" + }, + { + field: "members", + method: "sum" + }, + { + field: "episodes", + method: "count" + } + ] + } +}); + +const api = table.api; +const tableApi = api.getTable(); + +// закрываем все ветки таблицы при обновлении конфигурации таблицы +api.intercept("render-table", (ev) => { + ev.config.data.forEach((r) => (r.open = false)); + + // возврат "false" здесь предотвратит рендеринг таблицы + // return false; +}); + +function openAll() { + tableApi.exec("open-row", { id: 0, nested: true }); +} + +function closeAll() { + tableApi.exec("close-row", { id: 0, nested: true }); +} +~~~ + +Смотрите также, как настроить функцию разделения с помощью события `render-table`: [Фиксация столбцов](guides/configuration.md#freezing-columns). + +**Связанная статья**: [Хелпер pivot.template](api/helpers/template.md) + +**Связанный пример**: [Pivot 2. Пользовательские фиксированные столбцы (ваше число)](https://snippet.dhtmlx.com/53erlmgp) diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/api/events/show-config-panel-event.md b/i18n/ru/docusaurus-plugin-content-docs/current/api/events/show-config-panel-event.md new file mode 100644 index 0000000..5ec9e81 --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/api/events/show-config-panel-event.md @@ -0,0 +1,60 @@ +--- +sidebar_label: show-config-panel +title: Событие show-config-panel +description: Вы можете узнать о событии show-config-panel в документации библиотеки DHTMLX JavaScript Pivot. Изучайте руководства разработчика и справочник АПИ, пробуйте примеры кода и живые демо, а также скачайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +--- + +# show-config-panel + +### Описание {#description} + +@short: Срабатывает при изменении видимости панели конфигурации + +### Использование {#usage} + +~~~jsx +"show-config-panel": ({ + mode: boolean +}) +~~~ + +### Параметры {#parameters} + +Колбэк действия принимает объект со следующим параметром: + +- `mode` - (обязательный) если значение установлено в **true** (по умолчанию), панель конфигурации отображается; если в **false** — панель конфигурации скрыта + +:::info +Для обработки внутренних событий вы можете использовать [методы Event Bus](api/overview/internal-eventbus-overview.md) +::: + +### Пример {#example} + +~~~jsx {19-22} +const table = new pivot.Pivot("#root", { + fields, + data: dataset, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + } +}); +//скрыть панель конфигурации +table.api.exec("show-config-panel", { + mode: false +}); +~~~ + +**Связанные статьи**: +- [метод `showConfigPanel()`](api/methods/showconfigpanel-method.md) +- [свойство `configPanel`](api/config/configpanel-property.md) diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/api/events/update-config-event.md b/i18n/ru/docusaurus-plugin-content-docs/current/api/events/update-config-event.md new file mode 100644 index 0000000..03016f4 --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/api/events/update-config-event.md @@ -0,0 +1,78 @@ +--- +sidebar_label: update-config +title: update-config Event +description: Вы можете узнать о событии update-config в документации библиотеки DHTMLX JavaScript Pivot. Изучите руководства разработчика и справочник АПИ, ознакомьтесь с примерами кода и живыми демо, загрузите бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +--- + +# update-config + +### Описание {#description} + +@short: Срабатывает при изменении строк, столбцов или функций агрегации через интерфейс Pivot + +Это действие удобно для сохранения пользовательской конфигурации агрегации, чтобы её можно было применить при следующем использовании виджета — позволяя пользователю продолжить с того места, где он остановился. + +### Использование {#usage} + +~~~jsx +"update-config": ({ + rows: string[], + columns: string[], + values: [], + filters: {} +}) => boolean | void; +~~~ + +### Параметры {#parameters} + +Колбэк события принимает объект с обработанными параметрами [`config`](api/config/config-property.md): + +- `rows` - строки таблицы Pivot. Объект с идентификатором поля и методом извлечения данных; параметры объекта: + - `field` - идентификатор поля + - `method` - метод извлечения данных (для полей с данными на основе времени) +- `columns` - определяет столбцы таблицы Pivot. Объект с идентификатором поля и методом извлечения данных; параметры объекта: + - `field` - идентификатор поля + - `method` - определяет метод извлечения данных (для полей с данными на основе времени). + По умолчанию методы доступны для полей на основе времени (тип **date**) со следующими значениями: "year", "quarter", "month", "week", "day", "hour", "minute" +- `values` - определяет агрегацию данных для ячеек таблицы Pivot. Объект, содержащий идентификатор поля и метод агрегации данных. Параметры объекта: + - `field` - идентификатор поля + - `method` - определяет метод извлечения данных; о методах и доступных вариантах см. [Применение методов](guides/working-with-data.md#default-methods) +- `filters` - (необязательный) определяет способ фильтрации данных в таблице; объект с идентификаторами полей и методом агрегации данных. Описание объекта `filter` смотрите здесь: [`config`](api/config/config-property.md) + +:::info +Для обработки внутренних событий можно использовать [методы Event Bus](api/overview/internal-eventbus-overview.md) +::: + +### Возвращает {#returns} + +Колбэк может возвращать boolean или void. +Если функция-обработчик события возвращает *false*, операция, вызвавшая событие, блокируется и выполнение `update-config` прерывается. + +### Пример {#example} + +~~~jsx {19-22} +const table = new pivot.Pivot("#root", { + fields, + data: dataset, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + } +}); +//вывести объект config в консоль +table.api.on("update-config", (config) => { + console.log("Config has changed", config); +}); +~~~ + +**Связанные статьи**: [api.intercept()](api/internal/intercept-method.md) diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/api/events/update-field-event.md b/i18n/ru/docusaurus-plugin-content-docs/current/api/events/update-field-event.md new file mode 100644 index 0000000..1b8b902 --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/api/events/update-field-event.md @@ -0,0 +1,67 @@ +--- +sidebar_label: update-field +title: update-field Event +description: Вы можете узнать о событии update-field в документации библиотеки DHTMLX JavaScript Pivot. Изучайте руководства разработчика и справочник АПИ, просматривайте примеры кода и живые демо, а также загрузите бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +--- + +# update-field + +### Описание {#description} + +@short: Срабатывает при обновлении поля + +### Использование {#usage} + +~~~jsx +"update-field": ({ + id: string | number, + method: string, + area: string +}) => boolean; +~~~ + +### Параметры {#parameters} + +Колбэк действия принимает объект со следующими параметрами: + +- `id` - (обязательный) идентификатор обновляемого поля +- `method` - (обязательный) метод может принимать одно из следующих значений: + - для области **values** — строка с одним из типов операций над данными: [Методы по умолчанию](guides/working-with-data.md#default-methods) + - для областей **rows** и **columns** — значение предиката данных, которое может быть одним из следующих: "year", "quarter", "month", "week", "day", "hour", "minute". По умолчанию устанавливается исходное значение. + Если задан пользовательский предикат или метод, идентификатор должен быть указан для свойства [predicate](api/config/predicates-property.md) или [methods](api/config/methods-property.md). +- `area` - (обязательный) название области, в которой обновляется поле: "rows", "columns" или "values" + +:::info +Для обработки внутренних событий можно использовать [методы Event Bus](api/overview/internal-eventbus-overview.md) +::: + +### Пример {#example} + +~~~jsx {19-22} +const table = new pivot.Pivot("#root", { + fields, + data: dataset, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + } +}); +//вывести id обновлённого поля в консоль +table.api.on("update-field", (ev) => { + console.log("The id of the field that was updated:", ev.id); +}); +~~~ + +**Связанные статьи**: +- [api.on()](api/internal/on-method.md) +- [methods](api/config/methods-property.md) diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/api/helpers/template.md b/i18n/ru/docusaurus-plugin-content-docs/current/api/helpers/template.md new file mode 100644 index 0000000..4f3aaf6 --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/api/helpers/template.md @@ -0,0 +1,89 @@ +--- +sidebar_label: template +title: template +description: В документации по библиотеке DHTMLX JavaScript Pivot вы можете узнать о хелпере template. Изучайте руководства разработчика и справочник АПИ, пробуйте примеры кода и живые демо, а также загрузите бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +--- + +### Описание {#description} + +Функция `template` позволяет применять шаблон к ячейкам заголовка и тела таблицы. + +### Использование {#usage} + +Для ячеек тела: + +~~~jsx +pivot.template({value, method, row, column}) => string; +~~~ + +Для ячеек заголовка: + +~~~jsx +pivot.template({value, field, method, cell, column}) => string; +~~~ + +### Параметры {#parameters} + +Для ячеек тела функция принимает следующие параметры: + +- `value` (any) - (обязательный) необработанное значение ячейки +- `method` (string) - (обязательный) метод или предикат, используемый для столбца +- `row` - (обязательный) объект с данными строки: + - `id` (number) - (обязательный) идентификатор строки + - `values` (array) - (обязательный) массив с данными строки + - `open` (boolean)- (необязательный) состояние ветки + - `$level` (boolean)- (необязательный) индекс ветки +- `column` - (обязательный) объект с данными столбца: + - `id` (number) - (обязательный) идентификатор столбца + - `cell` (any) - (необязательный) шаблон с содержимым ячейки (см. [Добавление шаблонов через хелпер template](guides/configuration.md#adding-a-template-via-the-template-helper)) + - `template` - (необязательный) шаблон, определённый через свойство [`tableShape`](api/config/tableshape-property.md) + - `fields` (array) - (необязательный) определяет поля в иерархическом столбце в режиме дерева. Отражает поля, отображаемые в этом столбце на разных уровнях + - `field` - (необязательный) строка, являющаяся идентификатором поля + - `method` (string) - (необязательный) метод, если он определён для поля в данном столбце + - `methods` (array) - (необязательный) определяет методы, применяемые к полям в иерархическом столбце в режиме дерева + - `format` (string or object) - (обязательный) формат даты или числовой формат (см. [Применение форматов к полям](guides/working-with-data.md#applying-formats-to-fields)) + - `isNumeric` (boolean) - (необязательный) определяет, содержит ли столбец числовые значения + - `isTotal` (boolean) - (необязательный) определяет, является ли столбец итоговым + - `area` (string) - (необязательный) область, в которой отрисовывается столбец: "rows", "columns", "values" + - `header`- (необязательный) массив ячеек заголовка со следующими свойствами для каждой ячейки: + - `text` (string) - (необязательный) текст ячейки, отформатированное значение или значение, обработанное шаблоном предиката + - `rowspan` (number) - (необязательный) количество строк, которые должен охватывать заголовок + - `colspan` (number) - (необязательный) количество столбцов, которые должен охватывать заголовок + - `value` (any) - (обязательный) необработанное значение, если ячейка принадлежит области "columns" + - `field` (string) - (обязательный) поле, значение которого отображается, если ячейка принадлежит области "columns" + - `method` (string) - (обязательный) предикат поля, если ячейка принадлежит области "columns" и предикат определён + - `format` (string or object) - формат даты или числовой формат (см. [Применение форматов к полям](guides/working-with-data.md#applying-formats-to-fields)) + +Для ячеек заголовка параметры функции следующие: + +- `value` (any) - (обязательный) необработанное значение ячейки +- `method` (string) - (необязательный) предикат, используемый для столбца +- `field` (string) - (необязательный) поле, значение которого отображается в ячейке +- `cell` - (обязательный) объект с данными ячейки: + - `text` (string) - (необязательный) текст ячейки, отформатированное значение или значение, обработанное шаблоном предиката + - `rowspan` (number) - (необязательный) количество строк, которые должен охватывать заголовок + - `colspan` (number) - (необязательный) количество столбцов, которые должен охватывать заголовок + - `value` (any) - (обязательный) необработанное значение, если ячейка принадлежит области "columns" + - `field` (string) - (обязательный) поле, значение которого отображается, если ячейка принадлежит области "columns" + - `method` (string) - (обязательный) предикат поля, если ячейка принадлежит области "columns" и предикат определён + - `format` (string or object) - (обязательный) формат даты или числовой формат (см. [Применение форматов к полям](guides/working-with-data.md#applying-formats-to-fields)) +- `column` - (обязательный) объект с данными столбца (аналогичен объекту для ячейки тела) + +### Пример {#example} + +Фрагмент ниже показывает, как определять шаблоны с помощью хелпера `pivot.template`. Хелпер применяется непосредственно перед отрисовкой таблицы — путём перехвата события [render-table](api/events/render-table-event.md) с помощью метода [api.intercept()](api/internal/intercept-method.md). + +Фрагмент демонстрирует, как добавлять иконки к: + +- ячейкам тела на основе их поля (id, user_score) (шаблон добавляет иконки флага и звезды) +- подписям заголовков на основе имени поля (например, если поле — "id", рядом со значением заголовка добавляется иконка глобуса) +- заголовкам столбцов на основе значения (добавляются цветные индикаторы-стрелки) + + + + +**Связанные статьи**: + +- [`render-table`](api/events/render-table-event.md) +- [Применение шаблонов к ячейкам](guides/configuration.md#applying-templates-to-cells) +- [Применение шаблонов к заголовкам](guides/configuration.md#applying-templates-to-headers) diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/api/internal/detach-method.md b/i18n/ru/docusaurus-plugin-content-docs/current/api/internal/detach-method.md new file mode 100644 index 0000000..395a69e --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/api/internal/detach-method.md @@ -0,0 +1,69 @@ +--- +sidebar_label: api.detach() +title: Метод detach +description: Вы можете узнать о методе detach в документации библиотеки DHTMLX JavaScript Pivot. Просматривайте руководства разработчика и справочник АПИ, изучайте примеры кода и живые демо, а также загрузите бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +--- + +# api.detach() + +## Описание {#description} + +@short: Позволяет удалять/отсоединять обработчики действий + +## Использование {#usage} + +~~~jsx +api.detach(tag: number | string ): void; +~~~ + +## Параметры {#parameters} + +- `tag` - имя тега действия + +### Пример {#example} + +В примере ниже мы добавляем объект со свойством **tag** в обработчик [`api.on()`](api/internal/on-method.md), а затем используем метод `api.detach()`, чтобы прекратить логирование действия [`open-filter`](api/events/open-filter-event.md). + +~~~jsx {31-34} +// создаём Pivot +const table = new pivot.Pivot("#root", { + fields, + data: dataset, + config: { + rows: ["studio", "genre"], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + } +}); + +// добавляем обработчик +if (table.api) { + table.api.on( + "open-filter", + ({ area }) => { + console.log("Opened: " + area); + }, + { tag: "track" } + ); +} + +// отсоединяем обработчик +function stop() { + table.api.detach("track"); +} + +const button = document.createElement("button"); + +button.addEventListener("click", stop); +button.textContent = "Stop logging"; + +document.body.appendChild(button); +~~~ diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/api/internal/exec-method.md b/i18n/ru/docusaurus-plugin-content-docs/current/api/internal/exec-method.md new file mode 100644 index 0000000..a5ef006 --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/api/internal/exec-method.md @@ -0,0 +1,83 @@ +--- +sidebar_label: api.exec() +title: Метод exec +description: Вы можете узнать о методе exec в документации библиотеки DHTMLX JavaScript Pivot. Просматривайте руководства разработчика и справочник АПИ, изучайте примеры кода и демонстрации, а также загружайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +--- + +# api.exec() + +### Описание {#description} + +@short: Позволяет инициировать внутренние события + +## Использование {#usage} + +~~~jsx +api.exec( + event: string, + config: object +): Promise; +~~~ + +## Параметры {#parameters} + +- `event` - (обязательный) событие, которое необходимо вызвать +- `config` - (обязательный) объект конфигурации с параметрами (см. вызываемое событие) + +## Действия {#actions} + +:::info +Полный список событий Pivot можно найти [**здесь**](api/overview/events-overview.md) +::: + +## Пример {#example} + +В приведённом ниже примере событие [`delete-field`](api/events/delete-field-event.md) инициируется через метод `api.exec()`. Последнее поле удаляется из области **values**. Метод [`api.getState()`](api/internal/getstate-method.md) используется здесь для получения текущего состояния [`config`](api/config/config-property.md) компонента Pivot. Событие будет вызвано по нажатию кнопки. + +~~~jsx {32-35} +// создание Pivot +const table = new pivot.Pivot("#root", { + fields, + data: dataset, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + } +}); + +//вызов методов АПИ: удаление конкретного значения из values в config +function removeLastField() { + if (table.api) { + const state = table.api.getState(); + const config = state.config; + + const count = config.values.length; + + if (count) { + const lastValue = config.values[count - 1]; + + table.api.exec("delete-field", { + area: "values", + id: lastValue.id, // автоматически сгенерированный ID элемента, добавленного в config.values + }); + } + } +} + +const button = document.createElement("button"); + +button.addEventListener("click", removeLastField); +button.textContent = "Remove"; + +document.body.appendChild(button); +~~~ diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/api/internal/getreactivestate-method.md b/i18n/ru/docusaurus-plugin-content-docs/current/api/internal/getreactivestate-method.md new file mode 100644 index 0000000..b34bb5e --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/api/internal/getreactivestate-method.md @@ -0,0 +1,71 @@ +--- +sidebar_label: api.getReactiveState() +title: Метод getReactiveState +description: В документации библиотеки DHTMLX JavaScript Pivot вы можете узнать о методе getReactiveState. Изучайте руководства разработчика и справочник АПИ, просматривайте примеры кода и живые демо, а также скачайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +--- + +# api.getReactiveState() + +### Описание {#description} + +@short: Возвращает объект с реактивными свойствами Pivot + +### Использование {#usage} + +~~~jsx +api.getReactiveState(): object; +~~~ + +### Возвращает {#returns} + +Метод возвращает объект со следующими параметрами: + +~~~jsx +{ + config: {}, // текущая конфигурация (строки, столбцы, значения, фильтры) + activeFilter: {}, // объект активного фильтра (если открыт какой-либо фильтр) + columnShape: {}, // конфигурация столбцов сводной таблицы + data: [], // исходные данные + fields: [], // массив полей + filters: {}, // правила фильтрации + headerShape: {}, // настройки заголовка таблицы + predicates: {}, // доступные предикаты по полям + limits: {}, // максимальный лимит на количество строк и столбцов в наборе данных + methods: {}, // методы агрегации данных + tableShape: {}, // настройки таблицы (размеры, итоговая строка, шаблоны) + tableConfig: {}, // параметры конфигурации таблицы (столбцы, данные, размеры, режим дерева, подвал) + configPanel: boolean, // состояние видимости панели конфигурации + readonly: boolean, // включён ли режим только для чтения +} +~~~ + +### Пример {#example} + +~~~jsx {21-26} +// создание Pivot +const table = new pivot.Pivot("#root", { + fields, + data: dataset, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + } +}); + +// подписка на реактивное хранилище конфигурации и вывод его в лог при каждом изменении +const state = table.api.getReactiveState(); + +state.config.subscribe((config) => { + console.log("Pivot config changed. Its current state:", config); +}); +~~~ diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/api/internal/getstate-method.md b/i18n/ru/docusaurus-plugin-content-docs/current/api/internal/getstate-method.md new file mode 100644 index 0000000..5cad391 --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/api/internal/getstate-method.md @@ -0,0 +1,67 @@ +--- +sidebar_label: api.getState() +title: Метод getState +description: В документации библиотеки DHTMLX JavaScript Pivot вы можете узнать о методе getState. Изучайте руководства разработчика и справочник АПИ, пробуйте примеры кода и живые демо, а также скачайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +--- + +# api.getState() + +### Описание {#description} + +@short: Возвращает объект со свойствами StateStore компонента Pivot + +### Использование {#usage} + +~~~jsx +api.getState(): object; +~~~ + +### Возвращает {#returns} + +Метод возвращает объект со следующими параметрами: + +~~~jsx +{ + config: {}, // текущая конфигурация (строки, столбцы, значения, фильтры) + activeFilter: {}, // объект активного фильтра (если фильтр открыт) + columnShape: {}, // конфигурация столбцов сводной таблицы + data: [], // исходные данные + fields: [], // массив полей + filters: {}, // правила фильтрации + headerShape: {}, // настройки заголовка таблицы + predicates: {}, // доступные предикаты по полям + limits: {}, // максимальное ограничение на количество строк и столбцов в наборе данных + methods: {}, // методы агрегации данных + tableShape: {}, // настройки таблицы (размеры, итоговая строка, шаблоны) + tableConfig: {}, // параметры конфигурации таблицы (столбцы, данные, размеры, режим дерева, подвал) + configPanel: boolean, // состояние видимости панели конфигурации + readonly: boolean, // включён ли режим только для чтения +} +~~~ + +### Пример {#example} + +~~~jsx {21-22} +// создание Pivot +const table = new pivot.Pivot("#root", { + fields, + data: dataset, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + } +}); + +const { config } = table.api.getState(); +console.log(config); //вывод состояния конфигурации в консоль +~~~ diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/api/internal/getstores-method.md b/i18n/ru/docusaurus-plugin-content-docs/current/api/internal/getstores-method.md new file mode 100644 index 0000000..94c8f9d --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/api/internal/getstores-method.md @@ -0,0 +1,54 @@ +--- +sidebar_label: api.getStores() +title: Метод getStores +description: Вы можете узнать о методе getStores в документации библиотеки DHTMLX JavaScript Pivot. Изучайте руководства разработчика и справочник АПИ, просматривайте примеры кода и живые демо, а также загружайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +--- + +# api.getStores() + +### Описание {#description} + +@short: Возвращает объект со свойствами DataStore компонента Pivot + +### Использование {#usage} + +~~~jsx +api.getStores(): object; +~~~ + +### Возвращает {#returns} + +Метод возвращает объект с параметрами **DataStore**: + +~~~jsx +{ + data: DataStore // ( объект параметров ) +} +~~~ + +### Пример {#example} + +~~~jsx {21-22} +// создаём Pivot +const table = new pivot.Pivot("#root", { + fields, + data: dataset, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + } +}); + +const stores = table.api.getStores(); +console.log("DataStore:", stores); +~~~ diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/api/internal/intercept-method.md b/i18n/ru/docusaurus-plugin-content-docs/current/api/internal/intercept-method.md new file mode 100644 index 0000000..68b1c8a --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/api/internal/intercept-method.md @@ -0,0 +1,68 @@ +--- +sidebar_label: api.intercept() +title: Метод intercept +description: Вы можете узнать о методе intercept в документации библиотеки DHTMLX JavaScript Pivot. Изучайте руководства разработчика и справочник АПИ, пробуйте примеры кода и живые демо, и скачайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +--- + +# api.intercept() + +### Описание {#description} + +@short: Позволяет перехватывать и предотвращать внутренние события + +### Использование {#usage} + +~~~jsx +api.intercept( + event: string, + callback: function, + config?: { tag?: number | string | symbol } +): void; +~~~ + +### Параметры {#parameters} + +- `event` - (обязательный) событие, которое будет вызвано +- `callback` - (обязательный) калбэк для выполнения (аргументы калбэка зависят от вызываемого события) +- `config` - (необязательный) объект, содержащий следующий параметр: + - `tag` - (необязательный) тег действия. Вы можете использовать имя тега для удаления обработчика действия с помощью метода [`detach`](api/internal/detach-method.md) + +### События {#events} + +:::info +Полный список внутренних событий Pivot можно найти [**здесь**](api/overview/main-overview.md#pivot-events). +Используйте метод [`api.on()`](api/internal/on-method.md), если хотите отслеживать действия без их изменения. Чтобы вносить изменения в действия, применяйте метод `api.intercept()`. +::: + +### Пример {#example} + +В примере показано, как сделать так, чтобы все сворачиваемые строки закрывались при инициализации. + +~~~jsx {21-24} +// создаём Pivot +const table = new pivot.Pivot("#root", { + fields, + data: dataset, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + } +}); + +//закрываем все строки при инициализации +table.api.intercept("render-table", (ev) => { + ev.config.data.forEach((row) => (row.open = false)); +}, {tag: "render-table-tag"}); +~~~ + +**Связанные статьи**: [`render-table`](api/events/render-table-event.md) diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/api/internal/on-method.md b/i18n/ru/docusaurus-plugin-content-docs/current/api/internal/on-method.md new file mode 100644 index 0000000..ae61920 --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/api/internal/on-method.md @@ -0,0 +1,72 @@ +--- +sidebar_label: api.on() +title: Метод on +description: В документации библиотеки DHTMLX JavaScript Pivot вы можете узнать о методе on. Изучайте руководства разработчика и справочник АПИ, пробуйте примеры кода и живые демо, а также загрузите бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +--- + +# api.on() + +### Описание {#description} + +@short: Позволяет прикрепить обработчик к внутренним событиям + +### Использование {#usage} + +~~~jsx +api.on( + event: string, + handler: function, + config?: { intercept?: boolean, tag?: number | string | symbol } +): void; +~~~ + +### Параметры {#parameters} + +- `event` - (обязательный) событие, которое необходимо отслеживать +- `handler` - (обязательный) прикрепляемый обработчик (аргументы обработчика зависят от вызываемого события) +- `config` - (необязательный) объект со следующими параметрами: + - `intercept` - (необязательный) если при создании слушателя событий задать `intercept: true`, этот слушатель будет выполняться раньше всех остальных + - `tag` - (необязательный) тег действия. Имя тега можно использовать для удаления обработчика действия через метод [`detach`](api/internal/detach-method.md) + +### События {#events} + +:::info +Полный список внутренних событий Pivot можно найти [**здесь**](api/overview/main-overview.md#pivot-events). +Используйте метод `api.on()`, если хотите прослушивать действия без их изменения. Чтобы вносить изменения в действия, применяйте метод [`api.intercept()`](api/internal/intercept-method.md). +::: + +### Пример {#example} + +В примере ниже показано, как вывести метку поля, для которого был активирован фильтр: + +~~~jsx {21-29} +// создание Pivot +const table = new pivot.Pivot("#root", { + fields, + data: dataset, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + } +}); + +table.api.on("open-filter", (ev) => { + if (ev.id) { + const { config } = table.api.getState(); + const fieldObj = config[ev.area].find((f) => f.id === ev.id); + if (fieldObj) { + console.log("The field for which filter was activated:", fieldObj.label); + } + } +}, {tag: "open-filter-tag"}); +~~~ diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/api/internal/setnext-method.md b/i18n/ru/docusaurus-plugin-content-docs/current/api/internal/setnext-method.md new file mode 100644 index 0000000..406f1ba --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/api/internal/setnext-method.md @@ -0,0 +1,45 @@ +--- +sidebar_label: api.setNext() +title: Метод setNext +description: Вы можете узнать о методе setNext в документации библиотеки DHTMLX JavaScript Pivot. Изучайте руководства разработчика и справочник АПИ, пробуйте примеры кода и живые демо, а также загружайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +--- + +# api.setNext() + +### Описание {#description} + +@short: Позволяет добавить действие в цепочку Event Bus + +### Использование {#usage} + +~~~jsx +api.setNext(next: any): void; +~~~ + +### Параметры {#parameters} + +- `next` - (обязательный) действие, которое нужно включить в цепочку **Event Bus** + +### Пример {#example} + +Пример ниже показывает, как использовать метод `api.setNext()` для интеграции пользовательского класса в цепочку Event Bus: + +~~~jsx {13-14} +const table = new pivot.Pivot("#root", { fields: [], data: [] }); +const server = "https://some-backend-url"; + +// Предположим, у вас есть пользовательский класс серверного сервиса someServerService +const someServerService = new ServerDataService(server); + +Promise.all([ + fetch(server + "/data").then((res) => res.json()), + fetch(server + "/fields").then((res) => res.json()) +]).then(([data, fields]) => { + table.setConfig({ data, fields }); + + // Интегрируем serverDataService в цепочку Event Bus виджета + table.api.setNext(someServerService); +}); +~~~ + +**Связанные статьи**: [`setConfig`](api/methods/setconfig-method.md) diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/api/methods/gettable-method.md b/i18n/ru/docusaurus-plugin-content-docs/current/api/methods/gettable-method.md new file mode 100644 index 0000000..59715d4 --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/api/methods/gettable-method.md @@ -0,0 +1,75 @@ +--- +sidebar_label: getTable() +title: Метод getTable +description: В документации по библиотеке DHTMLX JavaScript Pivot вы можете узнать о методе getTable. Изучайте руководства разработчика и справочник АПИ, просматривайте примеры кода и живые демо, а также загрузите бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +--- + +# getTable() + +### Описание {#description} + +@short: Предоставляет доступ к базовому экземпляру виджета Table в таблице Pivot + +Этот метод используется, когда необходимо получить доступ к базовому экземпляру виджета Table в Pivot. Он обеспечивает прямой доступ к функциональности Table, позволяя выполнять такие операции, как сериализация данных и экспорт в различных форматах. АПИ Table имеет собственный метод `api.exec()`, который может вызывать события [`open-row`](api/table/open-row.md), [`close-row`](api/table/close-row.md), [`export`](api/table/export.md) и [`filter-rows`](api/table/filter-rows.md). + +### Использование {#usage} + +~~~jsx +getTable(wait:boolean): Table | Promise; +~~~ + +### Параметры {#parameters} + +`wait` — определяет, нужно ли ожидать, пока АПИ Table станет доступным в Pivot (необходимо, когда АПИ Table используется в процессе инициализации Pivot). Если значение установлено в **true**, метод возвращает промис с АПИ Table. + +### Пример {#example} + +В приведённом ниже примере мы получаем доступ к АПИ виджета Table и вызываем событие `export` Table по нажатию кнопки с помощью метода [`api.exec()`](api/internal/exec-method.md). + +~~~jsx +// создание Pivot +const table = new pivot.Pivot("#root", { + fields, + data, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + } +}); + +// доступ к экземпляру таблицы +let table_instance = table.getTable(); + +function toCSV() { + table_instance.exec("export", { + options: { + format: "csv", + cols: ";" + } + }); +} + +const exportButton = document.createElement("button"); + +exportButton.addEventListener("click", toCSV); +exportButton.textContent = "Export"; + +document.body.appendChild(exportButton); +~~~ + +**Связанные статьи**: + +- [`close-row`](api/table/close-row.md) +- [`export`](api/table/export.md) +- [`filter-rows`](api/table/filter-rows.md) +- [`open-row`](api/table/open-row.md) diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/api/methods/setconfig-method.md b/i18n/ru/docusaurus-plugin-content-docs/current/api/methods/setconfig-method.md new file mode 100644 index 0000000..c46f67c --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/api/methods/setconfig-method.md @@ -0,0 +1,73 @@ +--- +sidebar_label: setConfig() +title: setConfig() +description: В документации библиотеки DHTMLX JavaScript Pivot вы можете узнать о методе setConfig(). Изучайте руководства разработчика и справочник АПИ, пробуйте примеры кода и живые демо, а также скачайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +--- + +# setConfig() + +### Описание {#description} + +@short: Обновляет текущую конфигурацию виджета Pivot + +Метод используется для обновления текущей конфигурации виджета Pivot. Он полезен, когда необходимо обновить базовый набор данных виджета. Метод сохраняет все ранее заданные параметры, которые явно не указаны в вызове `setConfig`. + +### Использование {#usage} + +~~~jsx +setConfig(config: { [key:any]: any }): void; +~~~ + +### Параметры {#parameters} + +- `config` - (обязательный) объект конфигурации Pivot. Полный список свойств см. [здесь](api/overview/properties-overview.md) + +:::important +Метод изменяет только переданные параметры. Он уничтожает текущий компонент и инициализирует новый. +::: + +### Пример {#example} + +~~~jsx {21-41} +// создание Pivot +const table = new pivot.Pivot("#root", { + fields, + data: dataset, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + } +}); + +// обновление параметров конфигурации +table.setConfig({ + config: { + rows: ["studio", "genre", "duration"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + }, + { + field: "type", + method: "count" + } + ] + } +}); +~~~ diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/api/methods/setlocale-method.md b/i18n/ru/docusaurus-plugin-content-docs/current/api/methods/setlocale-method.md new file mode 100644 index 0000000..c841f38 --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/api/methods/setlocale-method.md @@ -0,0 +1,56 @@ +--- +sidebar_label: setLocale() +title: setLocale() +description: Вы можете узнать о методе setLocale() в документации библиотеки DHTMLX JavaScript Pivot. Просматривайте руководства разработчика и справочник по АПИ, изучайте примеры кода и живые демо, а также скачайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +--- + +# setLocale() + +### Описание {#description} + +@short: Применяет новую локаль к Pivot + +### Использование {#usage} + +~~~jsx +setLocale(null | locale?: object): void; +~~~ + +### Параметры {#parameters} + +- `null` - (необязательный) сбрасывает локаль на значение по умолчанию (английский) +- `locale` - (необязательный) объект с данными новой применяемой локали + +### Пример {#example} + +~~~jsx +// создаём Pivot +const table = new pivot.Pivot("#root", { + fields, + data: dataset, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + } +}); + +// применяем локаль "de" к Pivot +table.setLocale(pivot.locales.de); + +// применяем локаль по умолчанию к Pivot +table.setLocale(); // или setLocale(null); +~~~ + +**Связанные статьи**: +- [Локализация](guides/localization.md) +- [`locale`](api/config/locale-property.md) diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/api/methods/showconfigpanel-method.md b/i18n/ru/docusaurus-plugin-content-docs/current/api/methods/showconfigpanel-method.md new file mode 100644 index 0000000..5f86d1e --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/api/methods/showconfigpanel-method.md @@ -0,0 +1,55 @@ +--- +sidebar_label: showConfigPanel() +title: showConfigPanel() +description: Вы можете узнать о методе showConfigPanel() в документации библиотеки DHTMLX JavaScript Pivot. Просматривайте руководства разработчика и справочник АПИ, изучайте примеры кода и живые демо, а также скачайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +--- + +# showConfigPanel() + +### Описание {#description} + +@short: Показывает или скрывает панель настройки + +Этот метод может быть полезен, когда необходимо управлять видимостью панели настройки без участия пользователя. Например, можно скрывать или отображать панель в зависимости от какого-либо другого взаимодействия или состояния в приложении. + +### Использование {#usage} + +~~~jsx +showConfigPanel({mode: boolean}): void; +~~~ + +### Параметры {#parameters} + +- `mode` (boolean) - (обязательный) если значение установлено в **true** (по умолчанию), панель настройки отображается; если установлено в **false**, панель настройки скрыта + +### Пример {#example} + +~~~jsx {21-23} +// создаём Pivot +const table = new pivot.Pivot("#root", { + fields, + data: dataset, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + } +}); + +table.showConfigPanel ({ + mode: false +}) +~~~ + +**Связанные статьи**: +- [событие `show-config-panel`](api/events/show-config-panel-event.md) +- [свойство `configPanel`](api/config/configpanel-property.md) diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/api/overview/events-overview.md b/i18n/ru/docusaurus-plugin-content-docs/current/api/overview/events-overview.md new file mode 100644 index 0000000..877101b --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/api/overview/events-overview.md @@ -0,0 +1,19 @@ +--- +sidebar_label: Обзор событий +title: Обзор событий +description: Вы можете ознакомиться с обзором событий JavaScript Pivot в документации библиотеки DHTMLX JavaScript Pivot. Изучите руководства для разработчиков и справочник АПИ, попробуйте примеры кода и живые демо, а также загрузите бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +--- + +# Обзор событий {#events-overview} + +| Название | Описание | +| ------------------------------------------------- | ----------------------------------------------- | +| [](api/events/add-field-event.md) | @getshort(../events/add-field-event.md) | +| [](api/events/apply-filter-event.md) | @getshort(../events/apply-filter-event.md) | +| [](api/events/delete-field-event.md) | @getshort(../events/delete-field-event.md) | +| [](api/events/move-field-event.md) | @getshort(../events/move-field-event.md) | +| [](api/events/open-filter-event.md) | @getshort(../events/open-filter-event.md) | +| [](api/events/render-table-event.md) | @getshort(../events/render-table-event.md) | +| [](api/events/show-config-panel-event.md) | @getshort(../events/show-config-panel-event.md) | +| [](api/events/update-config-event.md) | @getshort(../events/update-config-event.md) | +| [](api/events/update-field-event.md) | @getshort(../events/update-field-event.md) | diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/api/overview/internal-eventbus-overview.md b/i18n/ru/docusaurus-plugin-content-docs/current/api/overview/internal-eventbus-overview.md new file mode 100644 index 0000000..666bd0e --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/api/overview/internal-eventbus-overview.md @@ -0,0 +1,15 @@ +--- +sidebar_label: Методы Event Bus +title: Методы Event Bus +description: В документации библиотеки DHTMLX JavaScript Pivot вы найдёте обзор методов внутренней шины событий. Изучайте руководства разработчика и справочник АПИ, пробуйте примеры кода и живые демо, а также скачайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +--- + +# Обзор методов Event Bus {#event-bus-methods-overview} + +| Название | Описание | +| ---------------------------------------------- | ------------------------------------------------- | +| [](api/internal/detach-method.md) | @getshort(../internal/detach-method.md) | +| [](api/internal/exec-method.md) | @getshort(../internal/exec-method.md) | +| [](api/internal/intercept-method.md) | @getshort(../internal/intercept-method.md) | +| [](api/internal/on-method.md) | @getshort(../internal/on-method.md) | +| [](api/internal/setnext-method.md) | @getshort(../internal/setnext-method.md) | diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/api/overview/internal-state-overview.md b/i18n/ru/docusaurus-plugin-content-docs/current/api/overview/internal-state-overview.md new file mode 100644 index 0000000..0fe4aec --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/api/overview/internal-state-overview.md @@ -0,0 +1,13 @@ +--- +sidebar_label: State methods +title: Методы состояния +description: В документации библиотеки DHTMLX JavaScript Pivot можно найти обзор методов внутреннего состояния JavaScript Pivot. Изучайте руководства для разработчиков и справочник АПИ, пробуйте примеры кода и живые демо, скачайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +--- + +# Обзор методов состояния {#state-methods-overview} + +| Название | Описание | +| ---------------------------------------------- | -------------------------------------------------- | +| [](api/internal/getreactivestate-method.md) | @getshort(../internal/getreactivestate-method.md) | +| [](api/internal/getstate-method.md) | @getshort(../internal/getstate-method.md) | +| [](api/internal/getstores-method.md) | @getshort(../internal/getstores-method.md) | diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/api/overview/main-overview.md b/i18n/ru/docusaurus-plugin-content-docs/current/api/overview/main-overview.md new file mode 100644 index 0000000..724d803 --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/api/overview/main-overview.md @@ -0,0 +1,80 @@ +--- +sidebar_label: Обзор АПИ +title: Обзор АПИ +description: Вы можете ознакомиться с обзором АПИ JavaScript Pivot в документации библиотеки DHTMLX JavaScript Pivot. Изучайте руководства разработчика и справочник АПИ, пробуйте примеры кода и живые демо, а также скачайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +--- + +# Обзор АПИ {#api-overview} + +## Конструктор Pivot {#pivot-constructor} + +~~~jsx +new pivot.Pivot("#root", { + // параметры конфигурации +}); +~~~ + +**Параметры**: + +- HTML-контейнер (идентификатор HTML-контейнера) +- объект параметров конфигурации ([смотрите здесь](#pivot-properties)) + +## Методы Pivot {#pivot-methods} + +| Название | Описание | +| ------------------------------------------- | ------------------------------------------ | +| [](api/methods/gettable-method.md) | @getshort(../methods/gettable-method.md) | +| [](api/methods/setconfig-method.md) | @getshort(../methods/setconfig-method.md) | +| [](api/methods/setlocale-method.md) | @getshort(../methods/setlocale-method.md) | +| [](api/methods/showconfigpanel-method.md) | @getshort(../methods/showconfigpanel-method.md) | + +## Внутреннее АПИ Pivot {#pivot-internal-api} + +### Методы Event Bus {#event-bus-methods} + +| Название | Описание | +| :------------------------------------ | :------------------------------------------- | +| [](api/internal/detach-method.md) | @getshort(../internal/detach-method.md) | +| [](api/internal/exec-method.md) | @getshort(../internal/exec-method.md) | +| [](api/internal/intercept-method.md) | @getshort(../internal/intercept-method.md) | +| [](api/internal/on-method.md) | @getshort(../internal/on-method.md) | +| [](api/internal/setnext-method.md) | @getshort(../internal/setnext-method.md) | + +### Методы состояния {#state-methods} + +| Название | Описание | +| :---------------------------------------------- | :------------------------------------------------- | +| [](api/internal/getreactivestate-method.md) | @getshort(../internal/getreactivestate-method.md) | +| [](api/internal/getstate-method.md) | @getshort(../internal/getstate-method.md) | +| [](api/internal/getstores-method.md) | @getshort(../internal/getstores-method.md) | + +## События Pivot {#pivot-events} + +| Название | Описание | +| :------------------------------------------------ | :---------------------------------------------- | +| [](api/events/add-field-event.md) | @getshort(../events/add-field-event.md) | +| [](api/events/apply-filter-event.md) | @getshort(../events/apply-filter-event.md) | +| [](api/events/delete-field-event.md) | @getshort(../events/delete-field-event.md) | +| [](api/events/move-field-event.md) | @getshort(../events/move-field-event.md) | +| [](api/events/open-filter-event.md) | @getshort(../events/open-filter-event.md) | +| [](api/events/render-table-event.md) | @getshort(../events/render-table-event.md) | +| [](api/events/show-config-panel-event.md) | @getshort(../events/show-config-panel-event.md) | +| [](api/events/update-config-event.md) | @getshort(../events/update-config-event.md) | +| [](api/events/update-field-event.md) | @getshort(../events/update-field-event.md) | + +## Свойства Pivot {#pivot-properties} + +| Название | Описание | +| :------------------------------------------------- | :----------------------------------------------- | +| [](api/config/columnshape-property.md) | @getshort(../config/columnshape-property.md) | +| [](api/config/config-property.md) | @getshort(../config/config-property.md) | +| [](api/config/configpanel-property.md) | @getshort(../config/configpanel-property.md) | +| [](api/config/data-property.md) | @getshort(../config/data-property.md) | +| [](api/config/fields-property.md) | @getshort(../config/fields-property.md) | +| [](api/config/headershape-property.md) | @getshort(../config/headershape-property.md) | +| [](api/config/limits-property.md) | @getshort(../config/limits-property.md) | +| [](api/config/locale-property.md) | @getshort(../config/locale-property.md) | +| [](api/config/methods-property.md) | @getshort(../config/methods-property.md) | +| [](api/config/predicates-property.md) | @getshort(../config/predicates-property.md) | +| [](api/config/readonly-property.md) | @getshort(../config/readonly-property.md) | +| [](api/config/tableshape-property.md) | @getshort(../config/tableshape-property.md) | diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/api/overview/methods-overview.md b/i18n/ru/docusaurus-plugin-content-docs/current/api/overview/methods-overview.md new file mode 100644 index 0000000..8400f5b --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/api/overview/methods-overview.md @@ -0,0 +1,14 @@ +--- +sidebar_label: Обзор методов +title: Обзор методов +description: В документации библиотеки DHTMLX JavaScript Pivot доступен обзор методов JavaScript Pivot. Изучайте руководства разработчика и справочник АПИ, пробуйте примеры кода и живые демо, а также загрузите бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +--- + +# Обзор методов + +| Название | Описание | +| ------------------------------------------- | ----------------------------------------------- | +| [](api/methods/gettable-method.md) | @getshort(../methods/gettable-method.md) | +| [](api/methods/setconfig-method.md) | @getshort(../methods/setconfig-method.md) | +| [](api/methods/setlocale-method.md) | @getshort(../methods/setlocale-method.md) | +| [](api/methods/showconfigpanel-method.md) | @getshort(../methods/showconfigpanel-method.md) | diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/api/overview/properties-overview.md b/i18n/ru/docusaurus-plugin-content-docs/current/api/overview/properties-overview.md new file mode 100644 index 0000000..5c6c3f1 --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/api/overview/properties-overview.md @@ -0,0 +1,24 @@ +--- +sidebar_label: Обзор свойств +title: Обзор свойств +description: В документации библиотеки DHTMLX JavaScript Pivot доступен обзор свойств JavaScript Pivot. Изучите руководства разработчика и справочник по АПИ, ознакомьтесь с примерами кода и живыми демо, а также загрузите бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +--- + +# Обзор свойств {#properties-overview} + +Для настройки **Pivot** обратитесь к разделу [Конфигурация](guides/configuration.md). + +| Название | Описание | +| -------------------------------------------------- | ------------------------------------------------ | +| [](api/config/columnshape-property.md) | @getshort(../config/columnshape-property.md) | +| [](api/config/config-property.md) | @getshort(../config/config-property.md) | +| [](api/config/configpanel-property.md) | @getshort(../config/configpanel-property.md) | +| [](api/config/data-property.md) | @getshort(../config/data-property.md) | +| [](api/config/fields-property.md) | @getshort(../config/fields-property.md) | +| [](api/config/headershape-property.md) | @getshort(../config/headershape-property.md) | +| [](api/config/limits-property.md) | @getshort(../config/limits-property.md) | +| [](api/config/locale-property.md) | @getshort(../config/locale-property.md) | +| [](api/config/methods-property.md) | @getshort(../config/methods-property.md) | +| [](api/config/predicates-property.md) | @getshort(../config/predicates-property.md) | +| [](api/config/readonly-property.md) | @getshort(../config/readonly-property.md) | +| [](api/config/tableshape-property.md) | @getshort(../config/tableshape-property.md) | diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/api/overview/table-events-overview.md b/i18n/ru/docusaurus-plugin-content-docs/current/api/overview/table-events-overview.md new file mode 100644 index 0000000..c630bd5 --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/api/overview/table-events-overview.md @@ -0,0 +1,16 @@ +--- +sidebar_label: Обзор событий таблицы +title: Обзор событий таблицы +description: В документации библиотеки DHTMLX JavaScript Pivot вы найдёте обзор событий таблицы. Изучайте руководства разработчика и справочник АПИ, пробуйте примеры кода и живые демо, скачайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +--- + +# Обзор событий таблицы + +Метод [`getTable`](api/methods/gettable-method.md) АПИ Pivot позволяет получить доступ к экземпляру виджета Table внутри Pivot и выполнить следующие события таблицы: + +| Название | Описание | +| ------------------------------------------------- | ----------------------------------------------- | +| [](api/table/close-row.md) | @getshort(../table/close-row.md) | +| [](api/table/export.md) | @getshort(../table/export.md) | +| [](api/table/filter-rows.md) | @getshort(../table/filter-rows.md) | +| [](api/table/open-row.md) | @getshort(../table/open-row.md) | diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/api/table/close-row.md b/i18n/ru/docusaurus-plugin-content-docs/current/api/table/close-row.md new file mode 100644 index 0000000..6374a4c --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/api/table/close-row.md @@ -0,0 +1,43 @@ +--- +sidebar_label: close-row +title: close-row +description: Вы можете узнать о событии close-row в документации библиотеки DHTMLX JavaScript Pivot. Изучайте руководства разработчика и справочник АПИ, пробуйте примеры кода и живые демо, а также скачайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot +--- + +# close-row + +### Описание {#description} + +@short: Срабатывает при закрытии (сворачивании) строки + +Чтобы вызвать событие Table, необходимо получить доступ к базовому экземпляру виджета Table внутри Pivot через метод [`getTable`](api/methods/gettable-method.md). Режим дерева должен быть включён через свойство [`tableShape`](api/config/tableshape-property.md). + +### Использование {#usage} + +```jsx {} +"close-row": ({ + id: string | number, + nested?: boolean +}) => boolean|void; +``` + +### Параметры {#parameters} + +Колбэк действия принимает объект со следующими параметрами: + +- `id` - (обязательный) идентификатор строки, содержащей вложенные строки +- `nested` - (необязательный) если задано значение **true**, все вложенные элементы будут свёрнуты + +:::note +Если `id` равно 0, а `nested` — **true**, все строки в таблице будут свёрнуты +::: + +### Пример {#example} + +Приведённый ниже сниппет демонстрирует, как открывать/закрывать все строки по нажатию кнопки: + + + +**Связанные статьи**: +- [`getTable`](api/methods/gettable-method.md) +- [Разворачивание/сворачивание всех строк](guides/configuration.md#expandingcollapsing-all-rows) diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/api/table/export.md b/i18n/ru/docusaurus-plugin-content-docs/current/api/table/export.md new file mode 100644 index 0000000..4a74ce2 --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/api/table/export.md @@ -0,0 +1,109 @@ +--- +sidebar_label: export +title: export +description: Вы можете узнать о событии export в документации библиотеки DHTMLX JavaScript Pivot. Просматривайте руководства разработчика и справочник АПИ, изучайте примеры кода и живые демо, загружайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot +--- + +# export + +### Описание {#description} + +@short: Срабатывает при экспорте данных + +Чтобы вызвать событие Table, необходимо получить доступ к экземпляру Table внутри Pivot через метод [`getTable`](api/methods/gettable-method.md). + +### Использование {#usage} + +```jsx +"export": ({ + options: { + format: "csv" | "xlsx", + fileName?: string, + header?: boolean, + footer?: boolean, + download?: boolean, + + /* XLSX settings*/ + styles?: boolean | { + header?: { + fontWeight?: "bold", + color?: string, + background?: string, + align?: "left"|"right"|"center", + borderBottom?: string, + borderRight?: string, + } + lastHeaderCell?: { /* same as header */ }, + cell?: { /* same as header */ }; + firstFooterCell?: { /* same as header */ }, + footer?: {/* same as header */}, + } + cellTemplate?: (value: any, row: any, column: object ) + => string | null, + headerCellTemplate?: (text: string, cell: object, column: object, type: "header"| "footer") + => string | null, + cellStyle?: (value: any, row: any, column: object) + => { format: string; align: "left"|"right"|"center" } | null, + headerCellStyle?: (text: string, cell: object, column: object, type: "header"| "footer") + => { format: string; align: "left"|"right"|"center" } | null, + sheetName?: string, + + /* CSV settings */ + rows: string, + cols: string, + }, + result?: any, +}) => boolean|void; +``` + +Действие `export` виджета Table имеет следующие параметры, которые можно настроить под свои нужды: + +- `options` - объект с параметрами экспорта; параметры различаются в зависимости от типа формата +- `result` - результат экспортированных данных Excel или CSV (обычно Blob или файл в зависимости от параметра `download`) + + **Общие параметры для обоих форматов ("csv" и "xlsx")**: + + - `format` (string) - (необязательный) формат экспорта: "csv" или "xlsx" + - `fileName` (string) - (необязательный) имя файла (по умолчанию "data") + - `header` (boolean) - (необязательный) определяет, нужно ли экспортировать заголовок (по умолчанию **true**) + - `footer` (boolean) - (необязательный) определяет, нужно ли экспортировать подвал (по умолчанию **true**) + - `download` (boolean) - (необязательный) определяет, загружать ли файл. По умолчанию **true**. Если задано **false**, файл не будет загружен, а данные Excel или CSV (Blob) будут доступны как `ev.result` + + **Параметры, специфичные для формата "xlsx"**: + + - `sheetName` (string) - имя листа Excel (по умолчанию "data") + - `styles` (boolean или объект) - если задано **false**, таблица экспортируется без стилей; можно настроить с помощью набора свойств стиля: + - `header` - объект со следующими настройками для ячеек заголовка: + - `fontWeight` (string) - (необязательный) может быть задано "bold"; если не задано, шрифт будет обычным + - `color` (string) - (необязательный) цвет текста в заголовке + - `background` (string) - (необязательный) цвет фона заголовка + - `align` - (необязательный) выравнивание текста: "left"|"right"|"center". Если не задано, применяется выравнивание, установленное в Excel + - `borderBottom` (string) - (необязательный) стиль нижней границы + - `borderRight` (string) - (необязательный) стиль правой границы (например, *borderRight: "0.5px solid #dfdfdf"*) + - `lastHeaderCell` - свойства стиля для последней строки ячеек заголовка. Свойства аналогичны *header* + - `cell` - свойства стиля для ячеек тела таблицы. Свойства аналогичны *header* + - `firstFooterCell` - свойства стиля для первой строки ячеек подвала. Свойства аналогичны *header* + - `footer` - свойства стиля для ячеек подвала. Свойства аналогичны *header* + - `cellTemplate` - функция для настройки экспортируемого значения каждой ячейки. Принимает значение, объекты строки и столбца в качестве параметров и возвращает пользовательское значение для экспорта + - `headerCellTemplate` - функция, настраивающая значение ячейки заголовка или подвала при экспорте. Вызывается с текстом, объектом ячейки заголовка, объектом столбца и типом ячейки ("header" или "footer"). Позволяет изменять экспортируемые значения заголовка/подвала + - `cellStyle` - функция для настройки стиля и формата отдельных ячеек при экспорте. Принимает значение, объекты строки и столбца в качестве параметров и должна возвращать объект со свойствами стиля (например, выравниванием или форматом) + - `headerCellStyle` - аналогична `cellStyle`, но предназначена для ячеек заголовка и подвала. Принимает текст, объект ячейки заголовка, объект столбца и тип ("header" или "footer") и возвращает свойства стиля + :::note + По умолчанию для формата "xlsx" поля дат и чисел экспортируются как необработанные значения с форматом по умолчанию или форматом, заданным через свойство [`fields`](api/config/fields-property.md). Однако если для поля задан шаблон (см. свойство [`tableShape`](api/config/tableshape-property.md)), экспортируется отображаемое значение, определённое этим шаблоном. Если заданы и шаблон, и `format`, настройки шаблона переопределяют настройки формата. + ::: + + **Параметры, специфичные для формата "csv"**: + + - `rows` (string) - (необязательный) разделитель строк, по умолчанию "\n" + - `cols` (string) - (необязательный) разделитель столбцов, по умолчанию "\t" + +## Пример {#example} + +В этом примере показано, как экспортировать данные: + + + +**Связанные статьи**: +- [`getTable`](api/methods/gettable-method.md) +- [Экспорт данных](guides/exporting-data.md) +- [Применение форматов к полям](guides/working-with-data.md#applying-formats-to-fields) diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/api/table/filter-rows.md b/i18n/ru/docusaurus-plugin-content-docs/current/api/table/filter-rows.md new file mode 100644 index 0000000..1d2ae44 --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/api/table/filter-rows.md @@ -0,0 +1,35 @@ +--- +sidebar_label: filter-rows +title: filter-rows +description: Вы можете узнать о событии filter-rows в документации библиотеки DHTMLX JavaScript Pivot. Изучайте руководства разработчика и справочник АПИ, пробуйте примеры кода и живые демо, загружайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot +--- + +# filter-rows + +### Описание {#description} + +@short: Срабатывает при фильтрации данных + +Чтобы вызвать событие Table, необходимо получить доступ к экземпляру Table внутри Pivot с помощью метода [`getTable`](api/methods/gettable-method.md). + +### Использование {#usage} + +```jsx {} +"filter-rows": ({ + filter?: any +}) => boolean|void; +``` + +### Параметры {#parameters} + +Калбэк действия принимает объект со следующими параметрами: + +- `filter` - (необязательный) любая функция фильтрации, которая принимает каждый элемент из массива данных и возвращает **true** или **false** для каждого элемента + +### Пример {#example} + +Фрагмент ниже демонстрирует, как фильтровать агрегированные (видимые) данные в теле таблицы по значению ввода: + + + +**Связанная статья**: [`getTable`](api/methods/gettable-method.md) diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/api/table/open-row.md b/i18n/ru/docusaurus-plugin-content-docs/current/api/table/open-row.md new file mode 100644 index 0000000..2497aeb --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/api/table/open-row.md @@ -0,0 +1,43 @@ +--- +sidebar_label: open-row +title: open-row +description: В документации JavaScript-библиотеки DHTMLX Pivot вы можете узнать о событии open-row. Изучайте руководства разработчика и справочник АПИ, пробуйте примеры кода и живые демо, скачивайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot +--- + +# open-row + +### Описание {#description} + +@short: Срабатывает при открытии (разворачивании) строки + +Чтобы вызвать событие Table, необходимо получить доступ к экземпляру Table внутри Pivot через метод [`getTable`](api/methods/gettable-method.md). Режим дерева должен быть включён через свойство [`tableShape`](api/config/tableshape-property.md). + +### Использование {#usage} + +```jsx {} +"open-row": ({ + id: string | number, + nested?: boolean +}) => boolean|void; +``` + +### Параметры {#parameters} + +Колбэк действия принимает объект со следующими параметрами: + +- `id` - (обязательный) идентификатор строки, содержащей вложенные строки +- `nested` - (необязательный) если установлено значение **true**, все вложенные элементы будут развёрнуты + +:::note +Если `id` равен 0, а `nested` установлено в **true**, все строки в таблице будут развёрнуты +::: + +### Пример {#example} + +Фрагмент кода ниже демонстрирует, как открывать/закрывать все строки по нажатию кнопки: + + + +**Связанные статьи**: +- [`getTable`](api/methods/gettable-method.md) +- [Разворачивание/сворачивание всех строк](guides/configuration.md#expandingcollapsing-all-rows) diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/assets/add_remove.png b/i18n/ru/docusaurus-plugin-content-docs/current/assets/add_remove.png new file mode 100644 index 0000000000000000000000000000000000000000..81dcb52eec4258eb730f611a33e6916fa6969fa8 GIT binary patch literal 22594 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 literal 0 HcmV?d00001 diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/assets/apply_filter.png b/i18n/ru/docusaurus-plugin-content-docs/current/assets/apply_filter.png new file mode 100644 index 0000000000000000000000000000000000000000..53905a71bd47736b88a58f83e4d20325092ed85a GIT binary patch literal 133304 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
>e1&B?t%T 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 z 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 Qzef?It*NI`rDh%RA2V27vH$=8 literal 0 HcmV?d00001 diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/assets/filter_applied.png b/i18n/ru/docusaurus-plugin-content-docs/current/assets/filter_applied.png new file mode 100644 index 0000000000000000000000000000000000000000..9ed747904e49d464d5a04c9f943a6302ea354668 GIT binary patch literal 120103 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�IQk7LY13Txz0$F;#d`h&FK?EBX%cUwip%N(bN+x`Q+33`;a9@g$b&<~4ZLyCg#SP8M$0P#;(^hn z-U9oni7FnfGuN5;d{J{(&tnZ$2IjTIJR1mDab8Se)%ZSD2_78i@uY~!DVk=q2bz!Z z4wt#@t3%S<8C?ZRpTIm}Vg5f7#moNl@3K(b<4`*AWnavFi5-YUb*Xhz6 zR+|o8O*fURwjPUudSb&KpS{~@PEQMe0h7R1G3C(ZINi&jI<134)IH-tb>DQbfApn@ zZY(CM{OE5A&8+cI|LtxQ_!jjdL2trwogp#a&90t#??n&3y|B&IiZ*@$!^cJG*XOi6 zKuXl}_x|n?c#&$p;u}??I)FN4Sp2gFy|@o9pU+QLR)Fa*=XNaKNr-ZZ&)BU+sIRyI z59KIgj`@;|P*FG>ng;JPeL3XOS+_5wdE+wUkUQ!ZJ;Xbv%pA1OuaGWeei>jAI;+M1 zrJTs1j29N5=J=ix5f$|EJZJj;1^b+snFjg{nR0GrEd<#~8iCu?$|qJ1B=RBI%R>!A zaea}~&+}ne`ICGY-{$Z@_wAuQ=T!SKQ+VN8J_V#5&#<$9!0z!0oW#OkB~WECWKV`k$~x+8^r3%B7Hu7geA2lc)LyesQ{6!rhex_Q@*md z^y%kO&TGkl_kKena-E|r32W>6`b@l+{c=bxU%I&-(~kihiIMFRZkm!_OZvQvoBN(R z<@}1}jb-~Dt(h!X^ThdHuN^KA3NB2AZ{ywLzZ*WiOU}l`lNX^82=*Z<=Wxzq%D?>- zmW7Jb4TAod739^oLir?9(5G!VwPZ{?ah)x5vg8UaEVc&54pt`x#hlpHCMrm z%;@JuQa`7*G8ihMMFwMa`5MVZ`4o4Af#`d=EDAW@v6hZD_I zRK%&AybnOp?-;hP6X!19an3gJu{$99Bvi(B+}^RzG2yfcD<2(4&TluHW=IEb43}BE zWbw!rTs+&KvgWIUp2VbZs$$dGc1q9b`!%mA3FUZ6-7I+ruu+NC2*eEG?wk~Is@(M% zyJs-@fZn3mOZ%C}dj^LHN3_18w;$_4$PNt&HyANZ%rBh#idb-2j(Ac)4 zH9AvoGv4wo(j|L?T84CNZXA8rGA%LKndkCUe+cTix?8Crqfm#Xw?B0QBWU1L(pNy@ zHp|GM&JH#q%*GG*l=&P+vj`@|U(OwejP;h8r4yOSny;Lpi(7nVS)BjuDJ}ZW=rF!1JI)gLwUCQW`W5$;j7h|8-1V=$r$9_ zn{{3t^2JF@KRf=pNj@OhX^25);Ogk*+zM@Rp8vyEb6#yA$O}%KXEDU0q(9}FLAX62 zInR3RuKA_p0B-Hox=d(GDXzD3mRVo`EKZB&c2Z}}(e}Zp>t&-R-Qz7(kmJcBv$C>N z;lS1MBN}!sslyrwtnGfkZF4XK^M3$)H^u2j%>~oVK_ci~}FC)I{QxwvD`%mcGT}WH6h-#tGyghd$ zm-FQ0g4lF{$ol1VXI)r04#M5tq2%YD5GeV5x3BjHW({ukM?Jp}#1;D08WkhUZb7w* zyx>Lgme#OgGobPLJVVDjIc0wFB>rnglM53KV+N_OI}!|RYTCHK4}Bc)jBLkFB^4pu z+YcTbmhz;|wQJXTAx6V(BrTdmsCDY7s$E`6q#dTK5&hF*gKmoO<1fC96Dq9kPzfl_ zL)5X|q_N*(D-^*t6C!724huvUIM;#wfsRzfR;?6geUQ?2leviY%=} zF*BXtH~aRIXWZt-CF7CP>JADd5<-qKzZkm0bZ{_Wrf6ToQ#?#8wJ|j{6$OKct@^K* z?KXV0-l*Pb6Fd>g{0yKk<>sx`EF_yh<>r?VSIvEuU=CYX(LDbu{`c`${;zXy0oXO> zOmAhyZj|R?amh52LKfB5aA-Y{*5_=i5k%MyZh6x~ims5edGC~DcQ;P_A;FC? z&xXk*{!G|du)*vvr1Y=7lo(8m@#i-vu>MyavzY&{^8AthuP)M)Wg7ALV3&(Tj$Nut z@HoFi{^xD9xGY)&L!?B2ky0!aTI$-`OA?rGjios_I6@UeEJKw-T>suoVdwwJ|2mq6 zj@KKRn$j5hzzF(3uNeIQ=C=Qzl>L8ykpV!5By`s~)XSSlD0<-JQaRl_()M_0l$0kw zZi@H8v_2b;@FuH$v-7{}ty>erq}smq4ur8FY0dR&6Ktj`@hkTqN}``B1zzRO-yMSN z%wM@jHcp6Y&8)AMW3r>tS+sP2ILGkR03B&LV?6d9NMKUQj5c`{Ix@=5g^D2oFg4rP z>~?plsLf7i$5VH7LDB;ozB)A0gUqBXi+20~V_yZEahdIn&6^mv47ZxN({aZuGQNzw zZa!XyCJ*b9TKS*i*}bzhR>3?@{tMk<<6s7WS0flvq`*sKQwK257%tsZoWUO?J@tHB z)4B7SkuPKYA>sJCHTN+7*>St@fMEZ{#E(lF6(M`J9B;TXR(dY@epn20dYR8`n?ypg&+i>PmgyX}HlOH7Qr zUc~PFiCA6e67bS->&<{fn2l&3MOCm_bP*_FDQtAJctN$S#|~b1jeu|?(W0|y0<6`0 zx60BERkQt|b~>ohuzZJANhDCi#iu^k{|KwISP9;O=B3#+HbnH&L_&Bm?-8M|Pw9Bt z^1!PJbEW#>I^V89GCL1XgM2PXO_ACPI^*Qlzm(EM5rxrbI!;242`_uU%=#n^zYK`i zfh|~m%q?qkv)s7Q}L~X*BZJd62gt4_IF~kJZ-2=?y7_G zo{i&;(e_m?Te4e~+0$;?7W^~@03NCnvf&p`ypEJFG*DKoN8P#oKGEfz`Z)cXyeaNv~gmYrf2Axq?JcYU={>wZHpXf+IY8b&%ydd3yZB> zDSvev?z$jf=X)xpPDwW%YM)EHohH>U;5XW=65zR{1W9pKSPx+T@eJ5*2#&I^yOdoI z5@_J5ouG^hwuesKF{aI|9Mfx_nra%udmK65UmENY5+8)2rw6&_C#<~&_6E!Z6^|41 zAU3|YvFC@rK&8zQ`qmCc@Cd-T?A3hAP#MzC_wh)W>JOwGE_BG0sg%7ULwA+cMPOfC?V7S1s({hfC!NuAmwpH2Zj9@y#dM zf}H4dKTud?|KK8fYP#&Um5?>KWk)OEaaVRPOtS@2^-A|iWn`WhxFs^`F~AHNzlyhB z_mY6aL`>SuEzcpfv>J%?80;zs+w{@xzFm!DI~;cM&r$?sNmo7G9sI(v=nM@e6nL3W3!8%LdrWvL{z= zSU9miD)aN=&WxkkroZ{pT91FvD?R^ln($=Cr`7W3#V4V@s=Lm6U*T}zF*L%iwI2^F zMqVDK3`Ax__nVI%_dG=ck#NOh9B&q4k|I|M>_3RzbjLb>R%QJk8}npq0K(( z4!A(O?vG~^9F~=(w2nz6kQNK8qwI&+SV9J=X8n9zBG68aD*{xUPX^}&G!@OlQVE;G zXsLs0UfRV&RUqckv`$$uc&AYH0T)w5J2E&E?NCXOMWet#oMZ-PzHr`^@o<`$2CG6^ zgfrpe^6(FR79I2e;t1fG!iHZHwr>^gq^nspE#-1eX7XBBfyk+TX**-)ww!%3eEFk- zLEnWr(zoe$$CB)fwHN_3?cqLi#;p&tXIvOheq!Ml*%>gnPKY=LWgih@BMsSe2eRS3 z9w4^rytW{ckU$smgO$5(Qr+9%eKZv>gmi{v4r1j0V0f!%a77C#Ioae}RvAaoqTc36 z^h|9`D_OTb$|%j_IC+MB{2pi1#;efjNKaIRLe@UYDN0UQ+k)G}oak&C<^!6U-F$;& zUAxVTXB%9`-zI&tm>Ih-hgrQ*96YdiP7M8?Wn|&ityk71;OA9{&wtQ7-_NT;`h-E! zsokF;VG3hZAFleyw(aH!A)vSOmbDn2hy@aqD0D*P?$P7FB89EKcu_>)ZMyk;TBv=( z+qk1$HuR~nVSLp{{?}_B{iWvpJ&m#0Jrm(NFQrW5`6-=WIn(*}HjQ1a8vd|Gv%Tk| zi+=_;gR0e6e+i?Itl?6>GgF(+>MQL%N1WhVjmm{}Ud@l)DRWvitCtA3dq1llod}B~ zD?rcH!MvK9Zx&8I+BV`xNpiQ(n<AtWy_J)Pk~aD6~#4AE*E^l0vp+xxt|c- zI)?Eb9)I=WwWk#n_@Ph?yN*>Z^U04Hvy}7U`xahORQ97Mws(?+EO<}QRk#u71%l*rjx|o9I zBbXmBWE5zpA?WD$Mob(LH2 z<%KkJYWvVWd0*a-@2g$lMCM?yx~MWKeI{aNIm&`c<#h1ITqo_`dw`{(+Y|np-U!~F zQQXcmRIDD>T{hZZX>X9C#H$NWBZyNs&IMDt4sHyhExVBP=sj0uRS)EwmOq?z3t_qj znit-uGXjYU#$4GA%1Qw-JaYL>dxfVP@6}p>DFpn(H6cO@I(7p0t;^xUP2E5A8C;~t z3vawoGKNbl4|X@-?c0{c15li}-}8dg)>Ma?E?*j#xyzGNoCZP0SbH&!YHQZUOSdms z`~(RszER{yb;TVP$Ls5r9%C`9>Gj6BMlvLg#Q;R!P0xECwYFtdIKbk;o?Qxua==TE zD-!neX=;uH9q63o6toO?wd)G03qwctFh~OI?^Td`?}vp@Lpzlgr4{XH;VJ#XF)k-R zHfI&?c|V_35;C{>-Mo*+iG-eDY0%9yF&T$N?b1sPYc}>h5Hm1L4@23w5YX`BrYf%r zEIe%-Wf$7aSe7ykQbmi$eL4Fr%8m^6M4?|MEkH+l`d9euvF&;-Q8--@paig!$Mqv& z-ujacs#%f%L3MjzRb4~mQYd!f>THTzAU%c^6GO}>+2sou2tb!wKS*rZWdmekjT7i` zR>Vm%3fq-B=MbomR5<~nck9m>8VP{4A9DOMlK2ayP}1#1MuxWD8nHE+)wBKZCgw=@ zjgOD_fFXw0d6bb1voeVp(iO^S>RwCxk9DwqM_pZXIS%~cB0Ns5NhGg;plQDhTWjH6 z&Z@pEvzYuRwGl!@)ij&8U)a(iYi+|9w32)v;(9rFtQe8x(ZGzPIoWn{7B=_Osy>IB zqVT&7_M5)bc{eiWf&^P!#?Gvpoib*ly*LHmG4%Aa$b1so_HANXg(mZRw-arP<%rz9 z*O5gYI&vL;{!_PL;0d zHG9IO+jvg)I)3P9zs%J_7%N=$8STvERjJ_|fe4Qio9Xn7?%8yXtDPgu=e7g-(k138 z>tZ)??{#vk;Dua4IU?Kig3+67sckqWjX+7S3MR-ltcDo?%QRQ#U=RS}A z?t)TWY=wIt!*#*!6BDOjwcnK(%s&AmDuQz2l&+!G(T+bmaGowJRCA0OsQP+GQ)(%M?rx0!LW z#=@Ex{N=KZS#vTuqHlO*p?*u9Z`{?{?jy9>wy54PcpvR$d}?4G zu|bV6JQJx92vQfz2`Na*YFYuGhkU~Zvhk*h%2r~YZs;|>VLpsP^g|Iv#e2jyDUcUI zua&4w~=4XA@+H3UDD1NjvN) z1Hj^|jlOZOLOMZQQvx+u?SBVnk=4;!8Oxta-b38toz()wB&3zOy)yA&&@FFc+awLj)3FNurZJ92b#$}5A5;E& z_T>SCd$7s#4Ooe8Qij8O{sVY_4%n0j;OKB^zj|J73cf_6HDgqxFDEisVD02gCbi62 zGFg*b>k^AuUhY#XkK*XQZz5#YO5Z40_~NsvVt)5V+JyyYrLl61bwXso$SA~b7%%#b zZ})bOYeKX`RfaHB?&Q%8pkn0Kz+>9NT;EiEIsDCxkjm7F=3CTc9FyS5E4xd;;ij*> zQ0!b3>R`S0x0WLemCm_Sg@_a0k_*gP3Pj1>ZFPR_rRSzZ-I4pRc1mp5+xk0tdiIaD ziud%S7zQ!g&FJ?4vooi)(wQOFNp^>&NG=U_a%}sbXk%!gS3ktus{Sy9%9c%*zm{Vz#BTn8_7)Po>OSe z5pLfzi0_n`>}{=URRtDL&{P+gaaWrE0p!T z0`L3SFOfX}k3#`XwlpoBXD$`1T7?M4t!-nhe&cv@Eh?1S{2K2H?upIVoh!-CN*r4W zuQCCcOT}q4`D;c+tKuGDyNyIdBlh#u8G){gNCCMKAmWeXoQfNs)AmuC5;xm!;kw{p zYp&PLud&H>^oR=>jI}gvc$jDnI}*pPiLz95mEQHam3LeUYfw|4^Q=;ra;2}}&^65~ z$QcQZjp#wHnR=*9oVHd=dEb>?u7@$upVld#O!#CH;2A2TnztrCn(C13`;M(xn`IRT zoVEkUIp8Y}DX6)ULc>?@$H|n2Qj--WkIDJ9G|h!Q63Wp&*&ImA^+67?>{q{CqyXAn zqt7o|NL1PlzFzZI_Q0@WY3u$d?T3-hy+^Yh5Z_NzPn zMW^`k)Tk0ClHiwATgnh=q5?uMz8UZIIeYLz(%7|?SEE{t;%;2hmCbRS*0hZHOqz1# z|Hs~2hgI2qd%r3QDzOw4q@|_1q#mVPLb|)VQ$Rpkx)(|+-QBThmNbj*MK>&(bK~># zsr}pM?0292p7)<~UzfP98`fen=e*|}<1@Zv%>4n%LaEVrE2ppa>f(|FXR@3yMphOu zaQ!xk>uQuW#WwaNFDo?-o>iOBP7|M4pl|wMzP=vq_lIEeU!PNWRhCdKNvaL8C5w|M zxuBSJou1?T&g9?EjAZpOGF!G_o2xF>Rz7+*V?wbS9I_bE<6`uIV%0PJImh5CptdGu zv8@X+Ztl3Tw_!dCY}wskXPTVYs@t#LuvHT1fTLK{b#cl4))^KtfjEC{hhGv`QQ%52 zaH@B=FVLZ~{$-Wx8Rjl2DL&;1nOdzS+sO0i{SL{?IG|FRS2uLd>sd;LVT)0jPU6i2 zD}jO7WUt(f$Kvh>k0tvqmPaZTQaQ%EASD4ZYHG>f&W}W=`ENGucY(JZQIfEZi9l`~ z=c#PGV-==be^c@uh%Ie48_)CEJ)@LpbjPdKHo|vjDdqOeh~BEHkP<91wcLHWyPmyK zwu`iX=9U)cdXdjiuOITMOX)C2b*brQYVFM@p*&@XH*k)XdV{VaFk2?ycq=h2P^-`O z_4QE(LtinilCIx;xsnrKj{aIo-tkQcsL=8AA5gX9kJq>NfT|r+%&e?!98=n)L-9R@ z|H}}(J&n`t4k;!zu=b~MhAwrj? zW2d_}9BxlY2RCB()53^+|MKlF^{W1p_)kZN@J~mirT!fq9hOH=gyPs(Su;*!zGeR_ z{_%ek6CoY@@ATn+q1pc*MI(N;q}2a(jXzb!HUc2Le}*>>WaJOzmYwl)NC3)B!7uSa zOc7x71bAudGLLCqyUx$7{Q=~=j8+J@GcU^s_{C(X)@?8bf~|<~@%d;XpFqfGMrER+ zGj#mZz-a7lV7-Y*B>41| z=(r(Wdfh2asr=m-oJC5b=&IjqkHOJ;`sr!~^y z1B3?qa#{cwA7hcz?E~ot=knBpGQtV@Sy09?`8X6qPg1iXi+e2m&;aFRi1KyrN$Idr z2b)yBxkVXR-x?X1x|k$N$zj`H)3Ttz`q1o4VWed-iCB7d6M1be>S9wFAOjVNko^^c z;)vchjYXTwC*S=|W8PKaPiopQn1OXS;V(FJbPTJ2-NBfvOU+SckbHYoIjF#_V`UmD zqyF-#PKE0Dgb`ooECC>5IU@_LiAx#U-sTn^TA!U~+iX^IMAv7Unfu7fmzuduxs%)i z0eaTaez=VFY|~iUK{oNw4RuGrY_EC=|2mGy!g;de>PNeLanVSP-9yI)x;2Se+$kV# zEO8aPc@=$FdG7MVjp2nk5Gb*@Xg$cE)e4T*-zX2s}mNsQwq_758MM;(8o10B!tepOs|Ke zMVU2j+)2g-XGv?dl_8FjB$f@%F97-gFU)>{fT} zUp7;PfpFTd{2-WSIV?33?tz0XN&^$;ulO`S9ByiJkNp_f>moeAi7Ylb$r`;^iDg(m zgS*_F!E>b8VY?gh12>7aTv?GNM&<3e4x`|TD0Vy@Q>Q7{72ma8Y}~IpO0JvJOVec0 zp!fDbrC0lu-cdg;yaO1H$RRaC@Df*4Oylc;E*Ic4Z1unWPqA2C*meu`#NWYKURbKB zAzR#O&GhT8t@^994!C@L@^AV5!K2ungSmJE?X&4um5dY0DDhWm!zutwQ)M zSY5PzEpx1`?e$7t?srGC0`J+HPlaWa-?=DLHW-fsKt2GzN?H5G<$8*y@l&fl+ig81 zFs%!!xTgY3jFgmHERv#2NOvcel|Xl_xq#IeBrf6BLgQ=%`a5E={>+D|*W^DhEZ3#( zqOc5!36F91>DE`~(;sjP#%!C?KY=OGIiWU!DN_;?$tiN8H%A(nc*D*(ua(*l?oL9EH8LjfOX)4139MB2y4O;JM2kV8Oh$#JOX_SqZt-5;7&&%upu!xZ zO+>()=%r6Xd(>}ohn!m$dGG^~YyV$cROPon-EgD1wZTvMgFaE8vqq3z556U%e*dgA z)vz^Wb}?k9Gsx-`y-p=7K3zs%&#}pSVg!gF#6Bhjv{liM?W$39T6~3y9KRH)4F9F3Vu(&i=*OLkh`FCO zo}3*K1SU3F6OfXF?Cech=>88lc#Aldp^Sx@T~iV*q6k+bl~3aIUyjwTlhroIu2LFc z1N_RUE8aI?V`QBvVF@#a=eSK5X>ZcU$QV4_Qczn2U?*D?6!h_9vr7aTd&tsgu>RC` zr^~JtC;=dd(Sg0uQ=>F)yz&c3N|2P?M$K)sv4P!Dm&ec^9aG@^3|(<_s5%tFg zPO6zxGa>s`ESXs@?gK!q8)ui;N$AgUQl$lk;17L|!t~M<;B0&Vl(mL><+^BlQbVK1 zs0t7fkm7A0R}w67BY4bgjEs;A-+`HUlyKnhEG~5$)Czp=FD!%et}dLYOQE?XC&c zO4`bvPa~Xy23P8+?v<@U(;2@Nfv(&4?AbunM*C=)IaN>0kIdrE715anI1$R`JfmUu zK`B1mqmtXxyYK8cym_Vu{OFl37H=aYkp-lPw1yP!C#8dWQ=dyd(Z%(hB_A8WaI7jO z?;PM>8haQ_~^!L}Kt>F!R$ zJ&4yS%jw2#R;A}gG^8OX;9b|DE@&ja0 zb5hEPy*K-{@|*#scXJ)carJj)o}89+lz2G_$b{h0ul<7YQ!fpw{;D9_XKtR?5++)K z#5-KpVb;ZFA(;Q7xe2mrB}lW7DHA+Sv1v)PR_7vavTQ+kK+#bo{XcdQo91SGZ1s_1 z&@#(m7`q2iC{&KIO)ms54Dm`GR{Kz z)Vj3P7Wd4F_N5dWDI*IVtGGog{yLbb`ohyieI!dDK4ahLf}+XSM8}FW*m-rWEk^BN zH$qgsSvm=_tz-){CiIi)W4HfP2DI_WQ)MZdzQ4A;j1oU|rm@$@SL)<$yVu9O3zXm? zCoFS!tPEqjD+hF5bf=?~>$tki(Xr3*FR)Cal|=OStu;(MyQ1uI`J8LKez)%XJG|6z z3lEf0PZ9}t=9Q!#@p1Nc1*@i~6+@_!M^DNn0<4vyoL}zrBRpL1;>y0RhR?1I2K`oF z7Per1Mi2%{xu~21TAKS|BJJXZ8=s(a)X7F(yHdrX-Hve%{ppOQ`g->|d6k+M8C;F3 z(03*;TtB@cU2Ie8j@0QO7AQR(Py#rM3)X?8 zpE3}vb4g*$Na#HqsFB9wR2v-?ZabqA0*toBbBHAGnxS-%RsiC`goTQdiGGMD2o32b zN?=ALpAb!dLDsl|^>gWFf9PDh$D~}dYN?VpX!(=CFbXnA46p;vDMLd zTz!=SPSd@F&|G*ac`9?o}YI4 zwZFr3L))4dCt-)p)vmt=$Q5bPOA~jT-oN~KR@b38_4UQW9D>8B1Svbd3FYywm$Jy} zT*4@6Dd-si74@Dinsraxhglp*xSfy(ieD7_i zFVX`B9(3>i8yEa=wwz7$8=n@Wp&idn1liTDv%^%9*55H=c2Qg9c2AfkIy~kZI#S_$ z|D2HgddWWAH1=^2_Ug3fC0az?2DSB6Z^w{BC1agm%S1ET7WJcEa*cd~{wvHvMR^`J zzejzwb!QuOIM1++3z@~s!28`w9D{Q$?NqKI(69Eki+{>gq#j=O9mb$+L5T1?+)tub zU4xCkAD`v(6fbo?^sHX-_FqVAFB=OKqYVRw2*HKuS{5ADh<(Klgs;9`z5C+8&a~q7 zNnq(=ko8gr*DqHescckGW!UaCI4@=-jLGsIggo`Rz&!OUa`%25v_WBWV2H%VaXQ!4 zidUF$b}m2YhfxLHl|4vLTKnDK&&=5n+d~&O|H3OG&QMd}x6Dyrv+jbOCMjz5b`NSx zP>{ROXG5}Gh05hd8UXXbV7L&-*>u#lC7`E&NqpA(U@#1-|ko>18qeMKWhndePlZ8bf_*;^vI+EEvqid*xHVwIKI(ART^t4NHx zh{SrQ;HCLJSAT8|F1}WwQ4)-Mvs0-K9o{ms>tA(3A;pYUQANlEDK~^S_ineX(l_^Rxy}fEZoqTcLnp#)w$dP+@L|n)`JHRdE14Q^Rnl4giTHzAyjw{PDXARU2^W3KMdlz6dnWI9 zsh%5p7Ma39V78(l%&>%VdUQSoksdJ}u?Hd5FI7kroLlyu@VEw-2ZLS2{WyK@KSVHLL0Mf9vgr}s zipqTN!2}z@2u6v|Ar`#E2>eacs6&-Ep`%3Z@rMYVo>V}d&^Y7Gc z)NFCLo=G03IPd6vtBuO_S;>Q1V&76;L%o8jx0R;}VBhlmJxs>2=gOXYe^Hy5chh!L zmYpP4n`^nY{0)D6bX8LlE24F(_o(lL?5J&ix?OU}djRBRGcq>Mqa}7x9PNjjgiSKo zE@81~yMd>5u%Dxe_IyWMWpaohXTgAi$e31HCZCNA5dAvhDx^6a*js&>87yB~Mx-pY zi{ljBFsQ;qi{3-1)Tha>ESsX_hK`J8eo&~w66O13E1=@`$IOwjP<}cUC6`1Om`y03 z&|nru@Tw(CV3N($9GTNhVpbOL<`xH8iZq9I+m%T-s4b~=boUYjQ-ZJN(qsL!{&0=M z!f9_ZOL`MIctPE)#0AL%3U4`)9D(TD9X-qM8h#JdYuKdXz19ZkLIBVs~pxOyc=V}!E*HS1MB zV3X15Zwa9m)YK`12bT!HdY>|JSD<3W{6%a55_0hiKgnZifG+(ph+uNov7u<1;Nh7&5w(eQ^tWND33J4dFHG&*Pu zQzp!C*tY-8r7xo`ZOIAZli^hQ?#Tq7`@VoWoMgtY+}+FnX8_VT!#~s0IRVv~=Iag4 zkc=XO$M<%xl=SIcY9bej4j)Hy{)~@6xb4yhdsYqqFBqsxsO#iU3S_V+9n2jaivF9D zgwB|X-jEzG(h{mfMewCoS%&jE0&YXYsXIFr0q~x}2F438Lf0Z{{egPhjpwcJ6#2@S z-_T;jcZNvqSeX2E!j879PLMu)lK_e~V;r*1|3k=J_w9?U`$&>X3180~haepY^9^qWxa`4qRo3@hA)rby6x6U60$A{8A|Wm;7VyhRLJl z)IcHmU)hN@QTl2TO6fm<88-mFx^$pV^OQ^xL}aZrr^8n$hh@Q0)yApgc_sL)}sgJypuDQ9>?cgtkXq#3#A?6Ub*xW z%KZKiP>dpiWg!)R6AkOikC!8kt6JrE=7A}nWFaqgghjEcn^m_U60pO>UygzdQUjU*B`D;gF zlpcFOaWHPJEZm;EG9YeIGi2uqsp<+Dk;^J>=YUM40U;vUUDB?3H{Sn|^GEBE%+OV8 z2q0IGEF7=8-tXpV@eEn@$yhd~XFzNMQgD$QE``||u6^dw-Sql>PCLmmzcSOsF6#ac zO-;d^sm^?6goY`~^8vw@kLUl=Y3%h&ZW}Q{r2W=Qta4?%p$=9QXA2OUiKXcN9s>IX zUT&G$3W;zaw>r#BE6<|-Z|Rlb87d=t$O#!mi}7yux_&ww1@9cB5c5=}$kyo#7!;K{ z{b?-}{9?$C6*td3eRvxcZ0*;%!`=5izhATF9e_MZGdDw)9Q-XL^R}~BgwXz%GY>CY zb9xjT2*cgLbmOuRpfbjkUKwX2SX zIX-R@N6~X(zVvQoCP8CvL5|hSv|jV=-Z&Y3XFhaCLyyZDK$(E(rlDTSnY7fs{(Z@D znE06;II4_m-_#CL(VK;<=<-#i2C_{Fb7);!Z4uHdYMwo>f`R~yCy}!zPnDK+Ki+4L zKht|6B0{3n4cj^Lrsxd~hDtGvPDP6f$&$c)Ei-r>PFPeTK zRCe|*C8&0C&ts^38840F!iu->r!>F?(#COOU|@ePLIn%5W*Hfa!Bk_cskV6?fyysX z$tTKvTts=GC7@iY6H=kG(jRg#>x0MAcyoK^yV1%~SG&jFecJK;hh(+u- zeA&EEW2mW&eAe`vPbf();MtTup3HOBX^C*3e;uo>)Lb;)t-kgG_AVQRF=`ae_ zd0)L55p~gD@hs*oVw=D>ule#MHz;A=`*=EI>yX&S*i-Vb2wtK}uXFmasHJxm%PP@> ztR^5es9f&2qVpgYXHz5@rqsPit z8I@Db(P+?c2aB6SZ9V9nkjH9yNkf9))< zna5?PzF37nUtk^vP1Rtjiy)vpF7M7iH12uO1%7iTc-&95X)b{hZttj*Qh&;q*PwRx zTYDxLu50!K2OE_;)_=N68{SA8xOo3VycAk;aSYukHdFQ7DNuE-$<4j zx2mvn>6R7+dDNx0FH;ho-U|w|t=;ew%w->BUqJ1lx4A5C89sr1R$9NTaqxME;!}?S z4am>kB_XGUX{7X%$DJ^lhT7FRP{zQ525|12P76*Kp1Uy!O;WAH-wNJyb9*IjwHnDR zA^QG{423a+N=~*W!nYOG=m7Q|1B{%tk5(lY1?IT+;iUysxV4SQpSOVjB^Q&O6_^Nid1vyY2BteZ9(>L*n>E`M#q zId?hT_GQUDJmK!#D`gpM+i23si(O{k5n=a7)0g$1k_&$<5sxU_3@f%5fZfq}Ccjmo z+rFkU!Hl-GLO$3auwz;@Szy~v;i~(Mz!b(?-(-7i!3w@K+Ij6}(m(m=1MGfW{$r~d zd!~bBqM1?K=^IIULXwP~h8TGH+d<*;fE{L!qC^XXp$r>8_yT{ATfOUM5nDu!ekPm< znXrH@j)0W^$CFf|Z!5z?odgYI9bH%`p6G!tKxX0d91$#G1J8u5#;ymwu8orF=_R|U z<#%}*UH0@J;7p%s^k^HcESQC>j&Tj#?Gl6S$DMVd^s@JO4skQ#hm0WHU{2qm$Bf99 zPEm15Dxoja-mlbs-ZNLR#JlxST;WEY!hBeQ8q^J;b;WV_gtI?~weK}WmmEGC*S|Ck z6r1=kHUY)^r3HvSehjE=DN?<;WsJKxQEF^0ej!^i)f7qlCf-Bs3AD+1+ zVzdKY9G+9;Z=UU;2J%+17M3V?S-;xH&Tci5H_rR8(9w@|&Myn+X#-j4Dyvau8EQx3 zx?pwf$+Q$k=v0T5o;x9fn;_3Fp2Ak(-+Lyx%gmU4Jz9lhtjWiVbJ=cff`gqfyHTyT z_;=LB>3L=K2ODFB8=k1{hR)dz_L{m=1>8-jjEaeaCid`Rh<=l3sozCpPkcRN z#zJ@E$MA@cs${g#aR5=9+Ke7!elpanCLXeb;it5h29iButPxnq;#z2H{NAkxwpj>S z(s+2r5MN1U=u;crJs2aFybgRYTg&Kw2GzQ`W=o!@t15#6N^$~rzmT{?t} zv4qp&buZmg>s=C3T<+~CYY@I#s7rG<XYR+8<6j`{;fyj@vHkr4 z5IB)LZh!OqgLSYdeMO4cZh9k}CDEFhnyj>t+_U31S$@i1Y&|-rZP#v{Uf1C8n*jlW z=e^-LbbTT2_wsj?3Sl&-B{}!OtnMr9T9RSS7{_I3@$UJGajX$@U!0MAk|q zm3W}fun5TYOKi+{jL{D8fx{g=ICndzDOj+dx*{m+lB><=zw)&}%b&WuL%ueBfjmr! z%6zz!W>lFIvlmf|lgWW#iIaPBJ_PkuvX^?{3|i54(5oAgdLNao&ymr+bC_ZhvDArg zcu1L6P|4~3DS_VBLqk#Ws>?RFPPChLPBhdKMWytt(2nCZM2g&ZH}|4@jUb(7`^DJ9 zgGV@~jgcB{5<|E9e-|E8r|p;epmTU<%_N_U(cqL7HA$&fLdoQ;1HWEAPj`M{$5rvC zN}spk`5O-w=~XP|OJd)p)lu!quSm7GC3)~rcxF7K>f6=#d<7Wir2%Mjc@O0~O8JP8 zk!W$^m-ZXL@jLw~i&9#ZF-kid3yi(Y1d2pO9p5azW?9JUWY{ojW^o@CkQ18|>|X}- zqSLXRna)T*UQcltu~XC?7BbM>KlrxGSr76i%W%Ig%Gq{)+2kMD10n;sFNZyv#nVl(%MLj@6??0RaZ?D)R~AO&K_=mheh70Z#mZG zKBD;*7A<|f#p~g=tE00r?o=M0{fB#)<9ibJlW$ses|9!)_n?)01SQ-q^BVi_>OOVx zU`r0LqmaqA^566sQaV)V4+e>Tcr^Zsd`D%kA;g5pZ$BYmNR3xmdL*ZVK23`wWqrX& zBDemTHV<^LgA~0_f8I&3wJ`A;J~Oqb82$^=OWQ3k{@VHF1--M6A#8JEg}RR8KTpBj z9Y@uW5u2=VEI=ha2ybY;Ah0MwMfj7JaI)jChK*h%5V%&F5N`?sZr1M`^FkWzP2A~~ zLGq4GnLR-SXwMaQGk>LZUcQ88?vr>gJaqka?6IH}9{(P$6b6SJ%wkb0lFuMQGkgGPzZ}Rts(5KyNF_dg1{zPp>76v= zl)@w>q5_v<#<;#H4XOT$k>iGD{TEXBT9nA5iT8CtFvIR?ZgoiP!uOgcVraX5Epkq} zrz(Ko;kXt{PIIrYi2O{`Kxqqx=|zb>khyMpDB8y)kCtr$p0p9Jgz(dZho>T@T&e-A zRf*^2^oNtAZUy>Fhuq2C0_+mAVTS}2AFD)-&6=e=@r~_H+@Yv$_`To2T`P6@sjRrF zThHJE*_ReL`b5P1X)Vh(sG|bs)IAaq0#kl0LXWrj*iGadU%R%O*F5vz|x`r3j_?^Q$MzsOPo$Tn@Ga1wT>W~V}Ir)^=WoG(r^Q39y zaC>)(JTFWZZvC^M(&p+WDBLjrf(6|Zg<59n%!*-^Pj2FUC)=+jp|UsUj|J2xVo%uVzq8T? ztqBaAQOS1u%(M^;0W|{W{k|Vp@pMTgc-~1a zR*|-MXBBmly039n&WD00DFz%AU|VzLWk~j-ZmQdUekh(>q-aQK@-hwn)0z0N6Ow`VC1G!Z&WsM2A7u#3{* zal1Mi+&5Jmy``12IrJ70-rcdgQ2Ul+9^`sc;*r`*oFrV;*41Hdeg#{#lSf-aAO6K!wWV2W2B;eDWbzr#S&C4n2w&9|TO zm5ai>v2YMy>$9*XLKw+_G!*>Vk&zJ;MFB%rdBWIZ8Aru29>9r$0yi2I{(fUF?E81> zN|ozpvHvZWaC+;>3Z+xTrI=&bjn%&R3*Z3isjU3{+*zUjbD-h>M=^gHnO{&X(y^0u z;;rCZNCiW{?Kb}VmH!zq9skK--k?Fw)xPn@LKk3eX3(7CTz{?jk}-c&=Ji^^&bGNk ztxex9clN)s8S>DGpdHEsplFL!rTwV^mL^uCVK}f2AFK11O^Hj%z@d@^OSo1fH}gZ= z0b)a4M(~xv2UK!2n`m(4+Lez{YG zmu*I^Hd;B$A%{O46A7l?ioTdG>d6>7O*+wr>a&*ZF*o8kcxv}jjB`XS;&8i?n;Hxs zN*~!Q6bUdJU3^-}3u?JaGMc8Yi2KjEeaq@*cStGpK999`d$XDuOLLqYegd`5M16zJHDz_Z~tCIl6M*8KK}= ziUti+%8go`*_svO7KO(;yiK~dpns<~dw;*Y;$yn{6xSgFyHWBJ8DvX;vZ~$H@G$5L zU-jZiF0;@voc^8C8~0-jx>H+_M$SR+^Kb_) z3;cH%t3K>fAd=0gU-|D$aX&4W7M^Vwtq_hr+kuA|eB^HrQq^tbH^x89nJkIr9Moz^ z-o|F-Z|gL288TnV5Q_oM@YQP-NM2wdCBEZ#!ERXI0nWI9tH~H`>AHUjS6f0vD`>p| zyCIjx{bEa?XL-h?n**rlYUknwc@&H!aW6vrx4%DUi@O}~AM2z$<*%trOLhjy&wXyw z$}`+aSnU}n>68+%fXi6m&Il-fepz4rya zkaat!R3>ezZ4Pn&Ncdr$CumIBeil_>tMw3;t@m0lLLl`TBka981QOYx}Ia5kx~OU~U` zvWQr_!x*6keXyZMnU-p~G+3{4r)A;(Ho?G|la@((PMDKKZBBxd)4M3JjGi3{A=VQj zjMeC)w=y12Ps<|)2=NIX55S2Qokqv);kPRTK!@{gtVuT|-`=g-2rqN?q;GznxPS|9 z+lw@;e zJTey8iLsC;+xRi?@i8542U9NwQy~b0kaIhP99-Pf~S`5X?J<03F z2a<*yJ`{Pr>Ii~R-WouxL4dfCmke}cBRwdrN!vI1D$`jwlUbX#pk?xIsQx*=SLj~A zha2_)Z-OeK>Qc(=wcMJ}tQ`VT6q zBSUq;bt4~m5+St&{FM!=J$!sWMDotelkz|%GkOpUjE_HF9okonwmAIQhc4NFhtBwo z0=I*f#2o33^PNrVHqn~;1FY~XIku0amp^S?X z+_%i@^P7X%)lK~RHulHelCVrZo2RPAacT<{r@5)?aOjshJ<6narKz$*P3fgqwq3ui z9GGgcF0kmbHarftD_2>@jm*kVZ>YT^tBpD?b@q%v>oT!X2hSOVgSS+zn1d5?zgcoO zqKfJHYE*8G$=N&Hrls`wVV{QNGb5?TjY0mSNqy6147j?_4wEqW=C zWk~QR4;_An&Gg-IjPn43P_$zkga||201JNsaguwt35*R`=_h)w;?z&=8SN09C}e^K ziXA8N4!QKpSu&B%{hWisj{TAc8;{RiA_LD`O@T+tn(A8OrCq#*9Y5u3M)~c5>_&q$ zCCA=C+I3oFx5>55n$E6hceE2W1)Unf!TtF)-`@R2@SV-yXvaNZmlMNK;JXe=kRiuh z3oW*`u%E`&(?^Ev){ibAz03DAjVwaeTv)RyypCCz@AA@-lz3hjeV1%Fq9)Ey(5ze7 zL8XKtjE*zdQzbEY?(8%kE@Sk0@U5St6J3j_9e@s5d(zGVJCE-#N|H`__thI}>9g`v z5Gv?1B2W>wBaf@yt6?>MzW8-G(9XZmI8Up?^N~=o$3Sf+4ylAVmw1msj0#7A4&_N| zjPoAOiI2UN&0emgyCcsukH<^msy@$iCSWMS6N{UR5;@TNeAezuviu#6#l^xmH{h#X zPX{!nQry9xy4=bYZ(!x8MXM8uVsG!L6hnwJvKJ`)v>j}kmVZda#IFpg&`r4b7hI|z z7%i0~-U9SDZ|oj44BR`RY`A*fV^rL8vO)JJ-WwwQjw8+rn`wV<{%HG=S9TZ-(%dHi z6iu2mAQ7>glh!Z2;H8>eI^7q6rAJSY5+k!JO(jbZ=+B57InwU{WFGyQ9XT0?FK?wz ziBG4}ThASEbHha6$;e}~gYB53F!_|?y%PoeTW@ac9r=aOZ*)^j#>xx~-uj29T2M(u z_M_L)@$^}-b;9mSN-AeM9aLMLM-50hwkg~8d6s?lx}I07oSJ6lZ&^H&I(6C>7v%FF zb^k!z16`0Ne?Y^EKA|rdzQl4$lOrnPC`N%aMVRb?3Zs?ZpFq@@Sk! zoMm~vDoiNL!l>VHLRINZ<#W1)t1kuZRHuTZ1VMD`mXmo_D5F{1D)>p?#5E22Ob6Mt zh>ouU5DV4@4p4!u@+*wxDkk}w5|nX6$a1r=gqpr-y;4i$C>nN9zPozROvljEDM0|2 zR_YpFx1wzp&YY%+mRW2@w-yH1i+)8=`jrGqZrS3HlTZ*M6G2hySU9#m$O^WV*Aj&X zZr#Og#C3VQ_;ea6W24K0QXHm8!9Q=-yHs4uJa_U@Z~{5NhG9^D7HsoyN)RQYm7^dH z@N7(`ptCD@iH+Wah+ZXzqrQ)}?i0sI9n>MR`LZCyFdVw-umk=w`j*iaozb4?X{1T< z&XUQZ^$|wk>=7gdLrOJ}G)>F_u@^C58DnI+Cp^o#X{!eQXbqbGLZ6m+w}mQFhWB25 z^UB9eO?72((Zc)*W8HU}$)YD3q^03ot76zk=n;V)JlhUTDJE2=6i92c%2ISVT72aF zMDnuDp74+#Y>n|;nsq_rA$XYIM=O=XI@w~z7OBnB`7I;A-IvS`qJU3cRyKDD*!yTq zg1OlCtHq^2oC@+QS*Me(;f2dt=#iiv+InaUHa<~>jjg*vneHrCeMEPpG5J<7ZyG4} zHbByD{6Z?w+lb0$5fN=!+txp@pNPKcsRem$Uc*$a_$i)KZ|HzqzgEWZ>Pd6}$OAdr zPg;>9nM>hW?c4s<+73>8c;ez4PkLoP4x|Wi+Am$zQmWD*eK4$4hItG=|GlKS+Yo6& zT&wMdsgnIs1eg;$8EjsHXzV+nQ7_w^CQmO zyxJGZ-%VUJG(8j!@o{5ey`c8GfVJW+G&TR4@)uK97NIO#M~g@vVB1(Ro zR2Le1&WaK|@N`Z?a%Nsiz_ijjT0IJPqOx_~OZs&XH=$2Un_MlPy9?Vw>ZY>vYo1p; zjv=SDm(7jNk(oY#{WD_L3sxIt4$|=#-&5}~nKayja z$O&EvVGFZx<2PnK%Mt0Wvju0w?Ul%lVxBQcfi#w*mp!adj2@*qaSpTd4&x+op#7D4 z*7_<_WBm(tCN%y7bs7==PoU0^j$(_F0}5NFS$h*mV0=nF5YCWW#=LaC<01dR^)zI5 z6`Mxj#s`iJWQO)EXygvfo(uTpD_82XA+|EBDpD)U9(cf0RRhg~XQVxb_#3-tI{P$q z=n}_Y7gyf2k4AHIHFz;uQjoBxvU(@?_q7fNVB8kBxx8e7hQWS(Cw!J8#FUW`BR*Ql z61?@sn>o86a}^A)>k+g*$x4a+EGao7nR^q}_8y5Y23w^Y$krOY5gH+0?30L)f{0g=}|Z6PXy3r z;=QRfOI`O%$wCirFlw1Qz4}is>JDW-DRfv*-(@DGXY6jMbWw4B8p*EDGY}zg@x73d z)Nz?Tdm^H%&^*J)%4YCmhh8h2^X}A}`hw^@V{g6FGxJsOvGQv!ZbW_rIl2y?h-AEf zz&Ym7^}*vNQ`+w}+K0V!;RR+PsIYpaX)VX&;S&NAI+6lr-YP$hYUe}(XMnTHaW<6H zrShUMcqX=G?Gb~#dz&kkYSX%FjVmo$EZm0EBIYW>DpwCR@WAV+iFyKyCWFE|tGn8| zp5YXSYWQ&wfK|~NL5@Ji3de^viC14as|BR+Z_akraNZg;xLIB%S69b2!5TR3xz8Kk zr{pzkOHN8U|FB{F!8#^cn}gXl-FFz5Cm}WWsE&{=9OQgk&I0rvqzBj4=QR=>9W@sdRwYlcPF1jmy7|$F<~A!B zzWxGqfZpc8tv;>mLLUZUP-a9RU2xu;KV%t1V4*j82x;{|BAglizxB$umVvx|kuOs6%h{SgKDtXJ`!<^yXTb#W-=)z-N5OP~Q zB#Lnk{g)QtU%z4Z1F%W`@qXZi*ndka_ivS8w*ik|7x{ldwio>O5pypHdHF{_0DU`P zS#n8Db9Tv0Q}f9}$JW-?T=Rb918HgL?_NE%*?`dQ*WiGG8$XqIf4R|!ub`kH*DI;3 z{HqMa&zAjHn)N@UCj1}ip?}+y<$|!G&lXg+KCS zd1`BpxaOK%PqQ`o6yX!%76h7`>7V-c9n#eIa0L#zMdPWsDq2*uSq-@peddO17ByUF z(L;!qmfm>24(jgb)npq7054>5#njoRp?A5gte@AWhz)(-{f+XK^5xmQRMO=+5v7Oq z!5WR`mUWAao+*eZZt*7$?yhf2z5~^_0;8A9VHk;?O_yee;_#XjQ3&vPuHF>=uGmxT zmsO?8rV6OmWOv^!I}|@xR&)wyA&eWiCBej3KS^-g#RandjI_PumCZmEYUU#WgOpi_ z^;w@)8c(*a4GmjZnd{kpfY?DK2y9&Kf9V$z#(tLYu+W<-dCl$cWh(b9Ot1~cxpcR8 zJX&}%7To#9oAq}Y;eeRc2CXSAqsLCHwqL#b(@Iw1F{z1$POz-%(vxUOLY6_{>wEea z!-Yf}GDe5p7W@SfWSfB>r#ZLD<7QD`TSeCR&+`wUOoFffttjwRq~^d7*K&eeL8Uj5 zcB=S}7nGIA0ipk;md3pMZxTVwo^w-rKhwh|PGrXD!TRKeF_?Az5t#nVWUBa8EXRgr zNxRNGE2F(HmNZ(N_p^go*GTn)qh=6Wb+ot&Y2D8e`pfoU_ayFbMVEi&CTZ8h== zJM4Tclj6T)-U*YTOGM`*NLBV7M;n9Nvg?AzT$}p${v^_;{+KT?Xd=e-6f1vdR-t1J z@>J!s6U(YI9)QTAt*z3?X78P9*)`R~`O2@=rT$;Eopo50?Yj0=M5G0zB&Ct=1`+8F z>5}g56zT3RX;8Xz0Ffbwp>ybx?ym3QeOJ6|?fo6c`o3fD`4=Xhd*-?0Jb%}Db)DBS z=33c+6m2GJ4U7^2UDvQMdd z_&q;0_)gstv1$J1s%MWej-Eb+Y8=@n``zk&Q62k(N0vGpUbzd1mf_pJ6go$Va8G_l z-iZ`%{ZiK^m_Riq+AGD2>Gw4#NxIycg5i=h(;P0Vn5(#XzEjAG3T4w-3dD`BliXMJ zG|O{*;`GFRU9@?p-hiw)OB*0BjeP_(Ds{|J6z|-T6Fxn^H@R&@C|ABRhJWNyMEe^? z>yN)~>UMMVw%}^;DI4v{)Fvyk#|#zB@LKS%ntX!SIKy>U_YS%G3-dt3iH7XqtSqp=cjpKCvRa8ke)yrMZq17t%-tz$G4yg2SByojBRN$D_!mZhm{liqxeoGRcq=G8aOF>mnoMbFUyI$soogVTLms*e{ zclrn})e&oH6~?do(`X(O&I2sazne+8)g+f?-T53=!2=yD)g0P?le?xagnz*pkHxOV zJ#&SPkM4-y>Oeo-`NB=Or;iNWzqkQAW-J5wJliKmioS>^QpNq4yJfxo+vsA-=+v0i zZjW2li@#V146jA!8h$=lkh*`9G=46^=I;aQ8J}UQzH_1O7OtTLbyA@<>=t^$!}%MQ zHLW%G<5^W=!MR-z#ZG4SbpT`SF+#>qqTx$cmNy26OY3Sfst)o;0H_mVr;#{pf`k=# zBE8p#-ztMQBDid;BI`Ed4g{fH+jrq;VL}$Q%C!m)mZE$8sr5$_zlPgmhb`5GwcG=( zXGJT77iL=kF{U-M!6LkQ_VP5`RE5Wa=gs-?fx4w&q8MWL{>f><(1NWu|92s|x-!aB z!A*kPp@sg1^6qQ$RoEcyilQO{gGPA5gkyA^VVluni_C@;@##UafB*+a_aBIP^5ZcQ zeP{!|E8D#p3eS*}g-AWI6wn8vI^J`^j8AuCCZO!XLr3yY9LnAd9DYeCWOZ2U%?Xp@ z^<~r{9Tz682<+1A3tDX!>6)Kc`6SMJ^m|=#r>QB%@==Rdv_p9+k4_29^TuHdGaf2J z0k-96K_rWvDYiZ-xpU=9Qk#YjmE<%OyU(1bW@LcLJ%0b~8!5QAXlN$Nthg)s8RHK`+@#@G)t=U_U9H)%e`n|ceSX5Ii!a5Crj%-rb3>`j%w#76^l^6 zOKS{@(@`yFjBSg)2=DHn7!hQE_Y$;h9A~Yb{5={tWiTR?cWn{AY{ETwOACR1JGl_8 zN!{HsB4yy(Wti8;iJH9oHIp#ijk)B0&s5nRh#GaU_I?s=A4SkJ+;O1Uxb+^7UtS3;naceSiN+%^ssy?~?UM%ew`ZCMs2c(?4s-|*P@d7IyO<$*nadtSF zQEqGWF8wYWu`3RWSB#C0JG8=k9%r$Kw z`+2dVR>!>40IBd znq)(^+s@=L++ZIeIq;*=TqQA>uEYd>Y0GUr6diKF``+WveEzs_crbF$(B5B%=3*|N=bbMS`?(<6bLi{!EdlPv}bjL@hmkPBFDt<7Cz z^a5qG%bHMDvrj8oFybWvQv5t_lRgjB)jS+JEFLGuSwB->Y-$ifSCDLvJE;`&$~{eT zDjpu8VHFE)#icEy;bJDj{@O->oa%syXmtBZtrUM3bs~zq*`_tt>D^IR*onLuAdVDWBii54eRG5htWPRgbulUp} zPrJ-MW=x@D!CgEhqzWiU=H2xa3c@9B(q(kZ`kPUqeq5m78(?@$qU)&%6uc;oUL~*Q z&-x41ot7JL+ID2h80w&r%+dc+H`$l@8~)n_;J*wegC@vx%5-M*kFEs}&khi5*X@d;((O zbyw}X^1xqH6JdQWXq#Tr09P@L2tb#ASPu=qo=XFMp+CX8#W&Qn^D9wp+D&tMq(xVw zRQ7wyNico21DMM#*z$GUMUp4|o-D*O3y$}#Aa%5sx#$wdZ8NrmraO=-$ndF!3lfDF{}_GJNX! zpmxr0jTWInME7mBF8lf+9oo|wJ^HDZPQaT%n+*W)++r~fCFc4uvOH%jV>n((YN;4y z9!5IUtaB+1u=-Qsd-Gd^Lf9S*BrZ?6=<|*8*+!;if-TR5g}U=dm>eAqj>^aXK{2lt z6+zE#Y|#+P64-ruM45{A*q~Q`*5m|;<@lpl3zR+bgS3}L{;|}Z*%RGba=o+im-n#p zScI5r+l32HsIP$NQ@eI({cu3rTI-H3^$T&X^C^PoX= z(#4A3b6oZnDDP=RpX>TizDK&u3`0k3s!!id$V4{DjH@Nj_ru3(!4B!di8FovR*{~n zRAw2`-E&$_Nu9hSBDCr0Q!QS2b9A$vbfjAg=4tQXfDbp%Y#BmBN?}H>beV`(M$Z?+ zVeKa&$+dUCNpq?bgXIY$PPtv`Y2$}7V&Gy`~jH$!eb1Cd?Sy>le6`i%(ykuOJEp^I1;hn$& zN*i?CO0h_(_OyITqE_Y1hXyHDa3S2v?JF`!6uYz4OHD8=eIm2(eus;aZ=-3(qv#N?6WsH#-Uu!QS)QN8bYf2hXj^y0ODEB`mTT zEDIMh6Bb=6sxRkpT=8;1@mV}_WDyx^gBN~rgr zzS4V5i92ramfp|Bm6C7d{oi6zURL9;ZDsnF?IFe0~EUCCqFbPbv#{sE$3pO zV}m&iNVg>?jVD@HEOfgICQ-&M9IvdwR-JErBhrE@D(^=-?+!V^N>{xvOf;*L82OV; zO+2L#ABy>U^&OcEOLKL$_H%B-<*d}wN~AOmz|3FkkGE%QPb!2b{Ul~{$t-{NjDcDE z=bLUF)-Tfq+YVUN9(bj6``*$!USz9X-YuQ9AhxI7*1{k@WX)LGeBCDYXN48c5#kMt_d$m_q3I1Q zAjh4tv|{nLFx@~_B1rxO&&sVm=cW+B;;Od)+qMgqDdw{rH35MH!W}((U6$aQzA_6F zJF?)2&AU@d69=l?J4VruNgD*9E)IE4hGoxTbweP2#PU)azpCn2SJ?TNsH$%Gh4aII zqU=7+W9NJ^iyeWX>!Y>IN+kleTqJ+ETGDMAIB6!HA6T8_mp|+E-s@wPFEUfU4&1}v z_?y|auuM!2#oOhyKNWLJKl9GeT4*c#wg0SZcrLnHuG@yvhf}+NBkK8Bd}zmI2M#&<{+RrvoGC~irrUPCH zv6T<#9)O9-S!$JfAyfYcXRoxL38*q{3TAf=MI69smpE_%2?b0n82-C4Ai>GZYfyb1 z6f>-3*oAgkOHV=gV`rIrtclN`D(V@5uiB8+ZDx$ybJrUhEK$#mK>I}0ceLr>e?2R& z=clT3c!-M+o5Mo;{Db7@R!w`)q4$d}@4HJ!tzPMu+qI3^M=yKT&0RL`j5hCw0+$s_ zyYBKge28XzlF7)VSsNF9g4+^_2w%1fX~yxSsSdyuMdy_W3pML4QP_xLQH<@=N^pNf z`J<8uc&i7e8O-G>v2~k94yv0DQx6i)-v|H#MX+6E@T6xC~K|rQ@;VKOo}z|E$op`IySYZhO<;3 zA@(B(!vNa#Ajk!~J=dW1MMF3hf*_Ymw4g=$AWw zbB~TVZ)}udQ8>VJRv6`>yW|94)*;)wCL_hPUZm-^mQ_ZgOBLklw&bI>UZXEP{bH!+ z_F;G4RwCi*{^4lTuWK-qikpXP^cyCUAvxV7662vf1}1}a-+0B2Wsr@lpJ6#<)P2OYPzIRA=kkuG&UhHo+Us zxy{_-4K5_m&?xc;%z`ICB=K(|@1RBI4^^AKVz!11sPc~7=|m*!g6}`zm=ehsm+vAq zV07*EHZpOivR)v11JQJTr~ItA&5E9Umu`A5Cg27v)zgCT?;XR$GjZ)F`Kj9(ZFPgU z;x>~$nMIU?iT6DUfmB&d{jQbz<-GenRDQz?>|^ltaEuXsTx-!`!GG z-+iNcKs5)+zN1|i!9q+zx5nH>Lcq3NrwI9dxY;bkRa~5;V z$ziIDbj!2n72Jsy#tgtz2t*``@jkd@424*iI4?JlTbXCH+oy%~V~)1FKdndarKim~ z&=e{u8%Y4gD+|?QO}Sx+gDakY#aTHw0tz@(9mqYXu`)kp95*Pr?J~-vBHITeo8RRu zP5fM(oKLu$9%58u!_M{^P=>3trd+opPTcan%obMt5n$NpQ9m-bUD#Ior_` zg6d#npmjcgICQnQdD3tGPC!j=gZ0hJuf|xCCHNV4*L$CAlk-B6LE#xZE=2yQ6xo+w zuLnNCuJW%SNHYCPucw+~?jIyRNpWIab$u`=_Lk0fuchL%e;Do#yne>WkG8mzDO=0q z5^PEWWPmVKOm^2tG=Jjekn{)SMLmV!<}ueN?Zexk zr}}eJ9xiY9vkaFTJo07`I{N*PaMcLX?TFhyk~aG7Z3Wiq4P^4+*$C$6UGcb2;Yg0y z%zv3TaGxiGU_67B46YA&elf=C+d{LjQL`sKMqQc8)KbkUqo8tfDA?f5%UVQymeh#O zt?3l26?K!DQDbT!Ss#0!nog=e=Mz9^$_AIpXR1>{KW&9W&lY@1GV01C@#Q{!bVb(7@awr}{ z;uVC32kK3Gj%Ty7d}gzsMaqp5khf<@%HoaeQ>N7)?{x2)#^8n3XVO+HeK61Te+p!o z@ICApGbpoy>rkl6gmt^!A6Q%<+vJtAoceWxKCi;acQpCx!Bm9!>p6mVT|6rHZc(Ln zBHZ>jCbK%9ytpv0iP9ETbz1=KT9)A9Zc$3@gHfHw=iA`R%evzvIrgzmV}aDPG))-kZe@}S%4&OZM9|_^L@?er@us{V7TvaPTyn3JKPh-D}9`-y1cwhEdSd36&SqN z+120wKAu4Hl?j<6+J6i<(Cl0T@;ckLXM9{`@XrB$tStZABlLgiN&;T|TV@FrF!FyH z4KlL-xk0_^0-H@IgR|fThxR+9)Z~nC{Et8;?*v`#+^FQn2w$smj_t6hHan2XczP5M z$r{S9PD`nY8VTRWnh+x7HMOV1%AopCLEPvh7*mJ;WW^;ngOlt%^D4XZJd`Tyt)iHJ3+sW~<8H__pTUL+`L}oLnPz>s~-dTCKZwR|6c0 zFn~rg*d^h;{2O@5LUcKq>_a${4(G=vR_})&0$S$p@Mu(xDdF9QHKonxUMQWHI_Z4G z(HG3yN!J9OSW)pDowdlLdrAA-l1NJ9_UDOF%T>T#KRSoBl* zU7lvp=w`AFiVoRWoxjfc)RfvJr>`E?gm+6xD@?9!9)Q=zG{e~%LN_`c(9}PB{3e@W zVn#_AZ6l%^W7iwT?15`ij$gv(WUc|;KQTQ9rA<$y|@ zbreh!+w?7J2|>uP{_?G1E0?_&XT4o|*O**i#|x#!U4%pqn&$ef&dh$VcM(i>589$% zu_H!yxP{8TmP@ZuJpnUMWV4G%x^qYQU%n_;KGNX1^~$_0m~Es^!+Uq9KSZ^&%NSrb z+dp6>KQMa)ww8#+W)YU2A+7I1wt8p{C{Li`MG)#R0lLY7B|mp`%VW3b3C;~JoA(@< zGa=m148C`uIZqZeiFIUZ$*6mrN?8o*W~Pge2s9E=_Qw;3iCt}c5VEX=nhI{zz8jFe z&C)FwfaC%#j!hijz|rZD#J(K6fWac@a&CIcU<@GXMI}B0|HlZJ@;PXtXFF5XD%Ld& z+V}AGV*N>uz!tY@m`C3(kmY)U=Lkl{rJJ%aTx~7F@Xyh@qrlBFnPT;k(@5V>B1Ycugjg+jU``Wi@5X6;N9a#sp#b&8(}bzQW@iA$KPrq^(EOjN|uvjtT>OE^o+b>4RHi7jt4ZP6Mz<)I(W_uDISnT?>HcCZ`HhEsc`qi88_Pe24M@ScqJr0sn3`bUXWV$oqoBGb;($+)eLrQ&owsk z;Z5vKAf&cw2K*N&v!w zH)5!9gdPeZq@xZP@ICi)zc`&@CK(+;>2{Bu`V=p&X1Ud0USNezlfLZ9SY5XH5UIE# z8RC{DCDTV%<(YCMid_9!{)rxG<7LxVVKfRG-D=*E+Qd9t`GMwFvV6*GL~P>eCBKJq zt4{shxkis-b?Hg=vTu&dt+~XNebzg_N`Gq8AH}5@0h#Zc>NaZ?7N`+M$FtANXymq9|W@_h{yL;Z;OUZEJE`D=V zuom;?tn2jkUg9Sd%EV!w=`MxtoMHcpBBGum8@qbe;{nnOo7cjY7zH&`AMlIU^Hzc% zgK<{%UTj%%|MFkKWQ+z~TOVFzuI8=yU`nOqCrFu3h=b zUQi${_SD*lx2929RaE@)GgxT+qv#ykHc`vN`zGdvO%uR$e8xs)B#>?%e%;ok%?Jvp zs7(4=u)uy1VIPcwMxThh!*P?6rH3yiLGIpUyDFAo899ft5$h z5=$f8%WWQ&9Tk$>;idf1!NyN643r4D-ATXR7_7N}9SxL3jMV!dNR8p7PP`0iQh5;& zD2whioVrHJwsLJ9rCa1d8V=44G%f18G1k?BHitg{iWkc@x`Z6D^c*B=n~xQN_THp_ zQWV6snM{irX*Qcmb`Zw{PD~SaAV9+DMSI<`sqtGh+zm5cfBeSF?-_$tt>2;-MwLJa z#utPvjUIaUedC0h7v_h5I{}W@&SYzPEPg98>S%}tH*23$P3sowrxKeLO?hr0-m2MN%Jw7j65KpiUkcHlzOH4VO|BUtE!)3Y=FVIy+z~8smQ5)5RWo8@nCDG^ z5ck0{omNoP2y%R8m&1~Eu#IyN5K+t07Pdcd1OuX%Nr(qY+uYgC1Qv%f-K$^@kY!O5 zncizoaH1Un`(1pvo6>hPdQA)Om?v#&bCs_*Vw-<2L3b`#o+(#)V@1>|$F(?_1Qhho zC#H3sXKS;g$OcBU;T?b^M7RP9(fZOh4>kwvB20WH5u>Oq*!i?n199C1a4_lHq5bR$ zz{YKlAGl>N7Qdqk?QAM91;szm>p9e~osLlt>k#+<#smqfHj*$NeduPphPg_*8V!28 zu=O-5v4Q&rkexOAJxz1!bw}SGH!SAo*r)UzqPoqFi8veD{*Dn1JHFs>gsgm9Iy8v% z!@cxA{8mMpP)Cz7Uz}rGa?>io4(JH3eQU8hWO-5H;e}6ix6|qmckKvhQ}NvhbeQz0 zz!@u@6VkPAZ!eEyrZV|v9VV%O^TscU&UOU%+kssurNbg=_D7}jd-re_PvXVEg!z;D z11U*=E%c+I*`zoSU#_DAHSHGjYaivGe52@Fv17fi4isBF=&hEX?;7a++YwAJmp?;6 zwHjN#PhDc-s~J|lEV|htM->iwkGU9*zK!!jKe~SU@EqL>fhUc%!8tX>>E#RX2m9^x zrTu3&g9=_@y|e71YHjJi29_h>6NF1N#riPdQYM#$Ewu!qk@aPGlmO6LVfpT&5HxVd+xpCH;7FIo^)k`(a}=8-p8 zO1gW+p2AFsOD;53(|nPb(i_KMV$26*4g2WFZjFikjk;liw%PIJqgmdxx23-6enH+5 zlWWIE6IG&o^cP7^BNvVc-d+Cu#QV#W=!;dN&&4%-O0O;2&%gFg%;XKV#1Q@T%w^nf}d$4>#U;3VU=`NKKm>`(-GL%IKc z7TSv-1bqD6oEjUhg|ug3yxHCN!ST+d&7AqYEk?lPGP|?X(%K6e5;8HoR=ZUpfBkEA#+Esk^)bOdCKXHE? zW(R#{w${+sVRMY2^L4CQcR)y720FYMnH+r^k<^`e@uHllN86$L7p%0qID)ud&h z*)VeRy*bvIe6(YM=hxDZ*WU5-pEB%v9M6K|MEM8+6-VFjr)uT89cX2EAZ0EkVc=@p zhm|k5L`I0y)Vipkzpm)@()PQQy6!cbJ1k60&XQG&%&J+}I4w2lB{z({3&Pz<)`Hqz ztF9S0N%KB7KKmlnXAN;vbt-}G-0G3cu~tO={`O7@i4US>uM?im%EUHqgCD6`M8 zV$8w%EYB|{+vOM}xVIE_@=C)oD->nF(bmAV-a&s-6iV1Ml$^)orPkCBDsJdU3<2B!{a;yDbYwD%%S2(L@s^0x07=^CWpz`QY_;mdpo_VmpNcz zDDCicaUwESb8H}wpW5@G7l2LWYJt7FE7+?yu{}EW0Ud#}>!qpjO{V@UnG@GSR3Mg5 zTF_P~|!!N5ckR>nl4tsH4NiAjGp{l2_ z`sxnnmM$TKG}On+E)S!^WJ%$CyG=W5pDtnKcWMLjnMDv>Qt5_SE?mB+2K6Y|?cTVH zMm}~03vM@9nzdgb-HIy}9XI55=g1qWQ#Wg{yX z*j!l)#JYB{NwgfOUD78XkhK%glAWakg$&-IzbKH=TVuTsl-&gEmOeUReSLBmZQtV< zGbm7B3~kfj_%*X$`We`sxd(4>LQud50-@WD`3WdyUcGMJ`#h20qgdg~Vk0?TRcISx z;YmG2s_l*L`&P2rFK(k*D6~TDh_Cgo=A}@n#jUU(+R^;Bq)A4j0H4 zzG0#aZ^f|b#6%g=gAAb<=yzE}l3Qx52bsw1e*c}qX82)24SE>y!QuP|mvND}Ha8ty z#&+|s5z$GSaFgsA&O*YsZ4N1lY}RrX`io;M5)z&>xa}~9w+X7{CGMcn1V)BOjzsdU-1&Z-XAhm0S^1vs-?@$@IX^yEl#S$W8ULTs6z_ z-?IH)3{-InIkwt^zaw7{R_byvkp%k3yHyxo9LBNcR3%O1=!4+ z>KBnC6VqKf(AQ&PG-8F`hOkRd2Cn$_C8Mx~q!@rWxnZvdzuOK13?o^YhvzzrjlTtU zm(0kRXGKIVm{$eKPuo5-^UMl&FM3Lr_adV|$A^{l>C4-QyVV=foRhf0F;%$7=Mg1% zEr=Op8t!Wjfk_!43K%yVbl z9^)F^X-Aq5B%l3p|5+2(AW~%uWR5*;^=1sS@X1@+p>JcRe}4*01`~s6D@(WMsUTN> z^M~g|iHodGxgi;cU#?F(LwEye>YZub$e?&E z-q!7$Jui8E!DQf~L1lscJ=px+J86lB4ftt6(i$LO!tyS^UQGE~PVR16PJ3095WgMs zr6%AobkAgK^+lTPQS$!aUbh8`*mSbq;H;qGj$Vs&{?Oj}e{gfyt^VoeR6t%E$+{em zLHQb2zEieraG`Y6dy|wzVMYaARGI3oB(?bm{g4|ad60XBY%ht>_s%`B!Ats_vUydT zef+ik`WAAf71@m9K)aG6unXih=`?8=)J%7$F0!e`be#x1QRk6I1zeDhkzA@-!j|Nj zD>FcSKwS(i>>kq{;H~px2!%G?%3|a4=XkQ!m*tz{uI%%G%k4-b7q{1F59dG7`u?Q7 zp~{=?`NOYSp1@pHJx}5sn{^LG&ek>x><3MVEEqM~<)El>JV{h#hmYMuULOM7>BIP@N$KOLH0mbdZVd#98<+%40` zIAn^oXSZ;5`44x3OonC6;ny=&8(T$pw8OtC+E|W%r;ht#?0uRu!SvQq$-d2GzgonXcP4JyuVwxxO`@1)8+0He-_gm_P#%q5)}Sy))0b{Dlq z|EtH6Fd_FZCJeN}(83}NwZ8pVKK-Mw@|Q>KfAuB)tD1k`I*R=&Ry~ybVwSXtP6zcb z&v&;q-}pCQC=7Nhu=ud0V93k^QWUmyc-I@VL~Jlo1Y=tt(bkM1(>FU`GsC zmOB-E)IE-NQm|(YM!zVi+SEsj>My@yx&bUurH!RS5c~P=z*0p;xS?Z8v%mSSIbrzp zeMI^7*zKAA8_#p&<>G_STYAAyqMLOR)=UED-fDPhZ>*FbSnrZQesVhU4*wrTS9Xg$ z&Ep5;KOnoNIsQD{T8sACzdfZMCG5BhC~?q>O&`z=jZMK1O3eD`6CqF-WT+XXG?VhR zF41bHbM{>Ha`VB4(Mk(%PAMw1@yH#K$iAu32d&5Sj8kj?shD7NDXJ803~tdO*C#B) zk|+ny`NKfbCnxh^5mmpfoNyy9!R7a&Y;gVpC}-@krhEC{8j%kMH{cgiM$i8m{#;kJe$Pe(uD)c*og5vFQLJ3of#5+pdhqu8)itIv-Va3i;^C zEeQ0wceTl_xe*+r(-FYP8kvI0Tj(%cN!sV&$ubm;ToK@El5Bq#RfRo@?|15=J`P^L z1#K54ZA9O0MbE>I0$h(z$My%7RTkuSAG@HJ?|zV@Tm(`yZe@tZ;F60uk^1D_SuT)m zg{EwX@S;qp?*r#SDoohJGei* zAMfEc9X33R9m?|D%xut52WWHxBUB%4eog9-J#r#=8q-I&-}W->V?%hlN6uy0=u%#9 z3-h+Yqp3&6dD8-|Dr%(Whw!~uvwwq{$2>C?K+X^;aFf=^Hx_LuGbm+Wr|`Y>@QD0H zG>mNvneEc@=-F2BPh*G-hp%@ty+(8?qSnmNYack16;q$@OA4CHK_jW{2yRQ|-l-mT z@@f7*`_+yNJ#5FA`3mNW^z7XWmB$wS9p$c3Z-U(*cJ$yKNcR-o$&4%})GqF4* z#P=&-mcLQK^oG?!Vusk^!t{?+W3nHi3{edHJwjuk8f(f>+!V)IPo|fb^b}MdjkXUL zHwNAm+j5I(FI~YZ`2F3`OzrfCD!Sz2#{5wt?{U2EBA&!sp`iwV_Wm3$hHCrTeb0WS zggaT)qCX{O)2ZD^AdExyDiI;8x9%N95-?w2k{1GHD@X3}N3D{s3yb&v^w>_9ZLA=kcs|Ql@rar~ zjh)c|rKOT5gK?+cL8skRW)Uk((n|rl=ZBZc!eSn2-05xc+;sYa z`O9NFDKoMtx2(OZ%ZxtP;*8=eIF?^DtE&AnDs-0b=1L^-)?|#Qa!cmcygxJZ9wH;s z@|{iQm+~)S5m!bA^yGDv(4#l{;4qMH`GM`Q8@kb z`Jww)LJ1gQl|a@n3cNExy+fMNNTCWR_>Ys}L+wOGjzdX*oDX5f=Nagi=OfK2uN6PM6wDNF*lCW2?OV%Wo01x0>B z4IO`Xhef!lt;MCZA(EaQ0uSwxx`>{EJb&%lQmnukx46l@LF8s}m+&aH{9#(9Xbs+i z)<$un&sA<8k)GqJRSx0 z7$8;;%*g1S?I&AHd;t=oK+?s=q~5XL&=^@ry!&Rh4Yeg5N6|W{l#qXz(a%PnmHjzK zlVMhmuaWA#zp7uLdhFj9`_&iy_%eAWdmWws8HMpdb^~|K=8=xXjDYP;c>;UmnVnpJ zL&9lOrbK0Yf)n0xz{1*L)TxNan#xHgp`^zU+`%n}uTk4&AaXV_H3!3KA3ee9??}cp zw&Y|S!zpnz`f^Mp0#CQK@J8=B^jODB!HMiC2gBbp>17k9HTu4(NU96c_n+Tb@Xjdd z$R!mDgoV%pT@L=HMb;p!%d}?7dbwL-nLdns^frHC;>c65AF77F3L<8#wOO_3&S_vy zX-Mx+B>s2Z~mp@C@lP)>GOd&UB z=A2#Y`XDtfJ!L4b&mvm;xo2lOza+{UN$mzHFfjf+X+-_t+7e25O$!kKFUQL|wGBoS zi%-@u`nan798~>54p+D4$%J70Okx;8&u5|(L0 zqV%?ALjp9CT5Bx8iKSGds1UlpvjG1P-7wFGkmMXsd57xV%Fn%^C4+ZHJQi0a4`eO8 z;WT?_Pn4Y|^m=sD#FY*wFrNh>rZDL;Q0r@KH@xk43FOFvD*!0=g-xl8Uvu-~e{8ZA zETsi%n6BK&eN#ru!%9iJZUw^HR;J^)*&L6~YQ}E?N9LyOjWSANV$5iN8Ce0Fm+j0b zO}QC$OI7l1$m{l#6ei}-M#VYTcrE)-SlE+jm~6&XZH7M7`55bo6-D93SV|hy{lNPE z?7~6tn8Uup$4eO9E96s;_I^UV`UsAV(%(}l;rq2xPFFmD^6bLl2; z(5T-0F>UnT&_)IPp%~q5|4lK9_g;gTZRGXxu{UV_(!X7ZFOHIy>igms93gH+LV_O< zy-{d>21^f-aOLUz{luuy3N^8A^Cifyil;<#{VqO5=Y#MPChEMS@?Ki(m|nIVJqs2~ zR9h4#NahOr;Mo`f7Zq_{HCgaC+psGQ6;!e7Ys3xgSRuBabV_5B*vZ;Q{X_%Vw2 z?czJ&;1?SExPY-4Xj$msLT2psrB`nw$5d33V(uZxmEP}7BoV!*t|hG_3r{mMuB$Q| z!QtGjK9sL&Uo}vN*9bMl5yY~wjc9b!`qBmV>>rO;zH)7hnIu8dExQ5I9A={Tb{#mB zkNO(;IiAd^0(s(!srSJ^o;WJt@k`T*bk`dKCLc9AQ-T!BjEZF3^YOrNx{XPBOZ_G^Gza#<;j) zCrz(j8UTnU+k*|6Z(r*K*#Y>nOfKu$qIc4OYpfpeeVCtRPZc%x(!D*F+M5B%hdEok zWzWkJOGY^=CexSm{|$GVo(P_Ae%jKFsr$?UP75>J@hbftqni)1@dtpo6=-?o3T1K8 zFl_pBZy}NY-yQ#Bbg6s>?%AzxFMR2A5Mw8{1CK~nR;T*YAJGiQtpOBtxBg}>4vxB@ z73Br-e?6%7TRakge?RTBb#KlAt;o7x%;^~@B?0sDzeK_OC)A>^?iNyrMCm`6$-lfn zYXkeq{{Z#)Kcf!(ns<)FnT3TEfJ&zQ zjZOUMs5N(n^#N;{p~^bh^G2Z^@l!T-rLIA2N1>}!xOuGTor91Fv$+q71i(E z*667a=g#VKe5_MWpY9%WwxcU-R1sx59lBWeTXG0D8l#u*MfCZw!sB_~Y;}6g#`}fm zd6Qf1ng$%dS?1MU?@|R2({h|9y&De>#xE+_@ey0o9S~|L#lDY4duOtL0_k)shPQy$lTO}jFgqiRO^$;gZoSb?maNUcBgY?l{y*m{EqVw`ltY!csBcqu**f>8PIO9|!(S^{^D(^ya?> zC#^Qj*rK2>W^T?zn=7ol#bUmgrZ7gsOP9(gX?L{UR57YdHkiULTLbt=CRVPS!no=1 zh`ID|a1~seg40xXq|_9i51Kl8D-XD4K`5vh58EC%fp&AdWsMT9^HlVMVXKw`R# zJmfP!c=ZcaUvM+(N77e=-=J7&vM<0!({$YpIeqKCM{f5yUb}Nj^l)*6o16KBD&bwX12!sp&OFWiXW zx%XqZOy`3LU1A^Gg?qesnOxW`r{j4xBtt&TG;hLaRy$uH-777p^XJuE+aqv!UJW^# zbrjc#Dn$>kU)7z`ja(NT5CG#9UdNlz(DvvMZO0#?Y8S24I9y)wUWK+QdTOdhuh*@9 zR2_ZJVC+AQ##DKCg4wK;_M7nbN%~a==nZw?Q(U1>yC%zY3hX_tJ|q<_0l9uCpmcXM zwya?#4LO%P(fv;(nrkpif0KWRGNufAL`L&?B)`|TLNSLn_e{beU@&bX~guFn;rm=&2CVxW~9;^P{b@y^~#EYEt$>-?(jsq~&gp&c+;eNY7B4cGIrzBp7-=9eqVEL+@fE z$R6JGk@HbxYymWzus@hgLH%M+zXrxUfre6i0_7i#7lznZeMdRxMc&j+*n#;%E{;7| z3w?m)%M`5a&W9K%N!U^iwBz&2PG6p3J0G;YYPW0ajko|ZxRB8U;%<#g1fs0cL);P-Q6`naA@2u2^QSl-6goYTjPy$ zXR_Abd#!iB``))s-E->jr9V*BJ$ufsXFhZM#u)!neDaEz-}cH;Qs(t#(|_trf-{tN zvVggg=;zV8u_0NK5gytwUkHfp_<`YolSYr1Pk9fAb?OdgiEPHAcOhVNqnmtm0y4woOvty2{?_cS)^xVAkI% zQ)!rXw2PjBJGxcQUE<9&09D>7f#Nr8mZwwZp{EktY#x$D-o`x&Phm6KjLt-7;p>q@Zd1gS@7gBeO zh~J_U%VV_tv-{ec3YdLd5DKO%ftns@+DlGN@@;dPR06R@;3+rXMMZ8Asswb^6u!xf zzQ1G7+m==3bs{?X={Od90%Rr}?=rW^r9iOob2T`huXNi&Tq)l;Y6W#^KJJpuu5Dm!3Yl|JF!>G@6*_^5!kWUP;cyGE&QZIUvT; zbD+xFIsLo%6=rgL`u`<8~aV z5Fpno#xnFJ118dQpx8=Id+uHS)X^et%kW1PbhstbIA`-C7`5>B-8OoX?88Zo*ovB@ zHMY-B*e<0B4(&Uu+`S{5jlX-$i$l-%W<|5V6=RoQfNWey-n z4)xclEgkBwV-j>mGyx$%vqRbC7>I zEn!`z%x(V@tSU?x`(S_OK?ShZPOgc!m*G)m zZrsE}X^7UVN?H^$QB&qd z1|9EZ(T@xqb=Ta3ld`N!5b-xHYY3Q(tlTzV*FFcKe>|F#d*H`AOkaZ9J6IDm;8~f< z5lOt_+Iw@eU^70(F=Tkn#SQFWfJXM!Eh$;tiNf6$ywM1`$n&*!gz;2%#g+4;#bnGu zV3pQ;?p|7>M>#}%Y4nsGk>zxxDYHvLPwS72ynR;sh3b}$Fih3PCY*Y$#`2aN^E6xO zrz(p_M6BsxvPDH>2pH8o|H&Uex135$`EzR~eP?<6jT$*e%8&kVojvss;oh3aqDb$o zZ+6?=@C;ta^_t)wDTcKC4QTDifR}^dN+t}WQ#-Xgrg3=wtWmE-N3otl3v;C%(04qw zg=szRk(HSt)-Zp+P6zN_sg+zsTc<0;``ec8eh|S>CMs#?JZ@DyG{L(@)*=t8B+a zrZ+5@CM!eDPN604>>-JrYKY$}fDC3`A7Wh}_ghH~uUs_Q_)R@x0*|`V9>4<#fp{O1 zK1FUfOc=r}a41fgA4VEASi%n-* z%1HW{jD?{r)(lC>WlT2EbhSO-H%t>z(~qaZ8(3nJ>3F)ZA#82@0f{n;X4b?>F3}ng zST~+UNh3{qk<8j4#T@!!yuIx9*v@`VdR1Y&;~xXj)fNxc8`3tIQ>>%?rPOKcWp$1o z>cWOMLq89cJn%geYprq$Q3Ia2;L?w0*n-Y~(ls@PKKx1x5jo5i;}X@pOu7&>H{N`E z6c7O8gn`y}0Da6kw~_H=RnX%%&2GWtQ7L6QLTA`ii6M4MdUZ9^BJEP`c=+X7%)`{| zVAB`EnUP1|p@AH8ld@4I=r7z2csI_eJVDAO#ujW}ij0(NvN>*4mY5ZQ#tah--2?0O z(4`P=%DyU;mbJhq76gB@K_ZLHIf%o4MXF*YTe6UhD{9BVNwR_FO=>D_BKHqzIIS_{ zzgZSNCmaS-nCG;*;aqrBd?=D9l1)I`y>l3&QyHj8v(K(#;~$~|V@2ZT8%#&ESKFs? zMt#T0_A?0p9rUG|2=~g@G@ury)PUZKjM9{W7tNcj4L%nUs&E*iTUWnmAbP6J96)AT zw7wgFpGhvaK*=20)>FoVz z-!rl~MpXMra~PN5Sh~Mk2rCb8{HB&TrSHV+Hq^@RaIj;pw&QyBIjwiy1BS^DASv$>^H=1j23;;3gU7`$`-(8Ql0 z0>et|Haf7+>NfdNa8HSkUx%lPt^yO7Vw@>PWWR%gsshJT+Y<{f`cH>g%SaR2mFeyv~(S zV3T2AxXxz_bgy44_8;T+cwDa%c^uB$axCY*RJY?@*1J7!)<0R6Z@`$;61^RLJbaHX zh14fjP7v}wHFyCg@LL|?*29(;&u0@I3`(}oGM09hFEmWwHimp5(fL^Oy)4&yV*ZIy zWGi|p50=p5@>0Agb*_jg zBo9HnY0XZ)ztm_l!QSP(ywP#V229fm9W%t7RS$7u9bDLNCpNSC zz!cZh^SX!26T!=gaS70fo#F9d1ov?ZOVek3)Nqo$`}OQ2mXFhJd(2R&u8DW-r?QgE zqe=@DXaOPc<8=eDT^D*~oV)rpjw_5<`;8Iwt;tyu=X6Pma&FHCO8`hR&yt>}>6lx0 zQ_moe7Fl5}?JD}76PDY~bDZUawy7@)d%uq0K_@C-NY!{g!Q)(c^7?^;zcdC-3xfw= zG9QAaYO&p>@WCuRP;4 zLM;3|RbTJ30uf%Tw(FWz?MKh*@fjKR`DHP%9EA0Gbl`274+>RCS-e2jB8l;SIRfIz zqcGD}XFn$;&NzZ6hZ73FtY&o1j!CfHIWdZC9&q2}eIvH)9AS`hV7P+ zT6yPuj+di1Y;qeZGvIRS&@>QutNL|SDCgny`rqZO8;omti`0g z&Frn$TTYN<7HI}VGFV(n7Yz3W92*Y-| z#Q}?f7Zi`W{R*EO|FCUsPWp26jw{r|IJaG9n9is1M)1q}^DBML2JoyciB({<9>ER# z>gC19DW33Si>=z^+{(JoQdc-BT79KCDYU~5IF2T?*6E{$OJ;u?W=|T< zw*KV`WBN@tb?RD!38>D_n|0u4CKabHe1zCT`g-i)hNXo?wzDmltu|{io_TITyO^&7 zGOo}%G~i&oSm`cSg z%_j>)Ey@*p8Y}#Wl0GgIm}Bs8+k+C^5eUq|NpE!m>Lf2?RZ`&QIEsXA+Hiba&2`C) zg@Stq<5Ey5K4O8a4QGa6Ta6uh?m~O^X8EiaR74PM`U>$|ipM#6Is}8FX2va`Tl@2vZ!3aQ9428gg}khxQEv1Oy`Ug^Ynh44UD zcFEKzs4@AhHEk#P`79ril@1?za_i0LJH}qW;oC2T{8jQ>ZUM-Ek#ESiL)4nf1)7() zPIF~$&2sZ_lCy=+71|#$8}BBeAuN9JM(SMMlR=HXsq4RbEEHy^ZwET#}^mI$D`<{-||9gS#{`fY(TeA4i zON@28Mmv0(jpWlS9-rZQMgK^`&*iE3JW$>UiIS!(X1A$GdU8}>k9x@HSmUB^hT+5O zA161rRdri)Xn~p7*FvNwyz~suED59Ct~soDVORLPa0Pf(*>!7GtJW%CdJ6kx`Abcy zV8MlojM4^+i0IGvu`;z&J zJl`l2XEcS;UKil@kGlHl%?S^zO*pC?c{#{gRa>>;RLO6gfz?{V`I~EOU?h<*=`5%3 z;?%jr`G;_R)!VZRk|;N`J<51`ZtlICp6(#ssA!RqlM~DLDFF91qBQeSomu~glq^yt zj91Nlq%4>9QqoVq{n5pBDIa3Ap9$`{xM0Dx^a+*Jl5C{1GXc;;rYgy4pp5B`@}E$(Rgf71-nqSMT$5+`C|{V9u$6^o^pfBACJ zE&u?Klh5CYl+XVY03477e_`e2EqwN!jL?#=am`?BLS% zUmpXel;I1#H_n>OGmgUB?w#VToQ^X_|d+@B70t zym8jNBuZ-t2#qAqTWrUi`-k{jx5id@j|j+9(^1}XG{L?c=Nx34$0Oyoeb0!BaNE5b z?y-s7e{+)N(X%M<3WYd(3;|hP_S`M7by==b_T$0>9>8ThKgZX5$FB zzgz8Rf7V!uAzxmlbxG^iYSDonk){|^&z_a*!cGi?1(u*C`CFxHIam;;zneF#2OXt) zlzV8Z9z2$@*u4PRK3~jpmV@a>%!+=9Hax=Ka8%~L{E*mHq$Y>_$xUyBn)sMh-xpzD zjHu8jAB%mLCppEp(1xs_HvzJse`-4R^c1{4a3g&@ZA9xM3sP_5YL&+D;hPrUiNSPt z%M^Zl5YiPIBAYfCu^^^kEIa1L|6thM_auf) zt|+KoH9MV6OLU$L@RU}()!5ebtj0ZJ%j=}m#k>iF_KE>6e#*nGr|niL&zXUP5OW;c3?Vx8Bx?*WzP7k)J_D6BcF!|QbZpqRYXa*pt zpriT0N)dU=Y?=XmF>jxK_@jcTM*Pzv&y-KV8U5gDA~l}OGX}TG)ehFR?4v{+=h^my z`r({VK}p&p7L(qa1E$Q08zDq~cedD=ljBDW)Kp{GQM*}0a-jS-`3s_M%OFYdnCXU zll4M|#i&|k^>-4hkBh@%g9-lO)$?pC$edvyb+2S8JV0a~64;(@&aP;-kafl$=Q7GY zDS4C6W@$!P>ZB;#k+dctg_twL7L|avJwr*3g~!oyav4IGrUMdnKGI_80Uk5fzn{z- z%RXi$GfSLWR;3K3Oz+}rOa~E1ASA$K3KcsD$)a?}w;SJ$D)Prmjw|$rt2de3=B-m~ z_0(29D1>yr?&(9<)KL=Lfj+~Nzk%<^38BG24?*A1R4~$7 ze5fq2zGXpobK6P*WKs^*=KaQH2Rd}TRv$TTE@pe(uq6`on74LNeUxLpisN)XGR%$S zBW1UZR&o^y`JzgrJDM z_{B!~{-1HKK2KHTF)H3^L%mjur!Qa2EavWQ6YTH*dW-U(7^9B`IH8$ZtNUY%1yKIn zh&!iv*4f4P@8FzqmD|icaK{28T(EN>+r4j%$V(c$V!etlax%Aj@4MPuC^8;C?fhWa zt_2s*J;Ezt_j0COak=}5y9M>^nR^Qy%N^B4+Grj01k-HpIs?*Q=BsW#~ zt;&c2f^E(GR}LRcDLUCOn$P<>SCGArJE*gmH{mGWtYlO@)*%_H*Pq~}Ubf)sGhil2Q`?)fZ+=&%=z zK%mJd08DPP1@k1IkGBfP;Phl7v6)0q(hPc%`(cGUHB#Q_(|wXh8VQx{*^c*`jPfn? zNa+_~FDWW&V{F~n|0w=C;DdTY?MkGEG~Fe690jABV}0OACu^Fd@m{KKbTyk(>h$Bo zTf<&@`Mx%8Xi!~z5o4{MOWWkoqJ#+)oP=&tJ2_wH9jcVzed;G;TxRNeR%btg(2TzGwI(pF zPNm3G(*ymq00K?iweji(M4G)7HRhFBj$SLEuPt6gjtV~%Z9LHEU`p}e`cnY7(oKxx zQWHvaBAK*|bZ-Qb%fD&UWFDRI&+_!v#6p?LxvsjkiuL{;O$oSbanCAKEDjAd5OW|k z=MNDCFt9B~t>_G5^{z!xg>T25?=XZQ+-45#Q>}09SvM)aH#!+3`-oX%pDxTy# zK6hHahfB39f!W`$<8RyWHEzj`AkOR9%t~<56Emhu$XuF44jfb@=mk{`BY=3k7IY$l zE|wR=J9pRHo924UJ(^XSgy;fiXSLh|j^}yHz$_2Qu&(#EpF`i45w^5#wE6IRb9~S_ zBB1GCv2Ezd*W!L(X6*V|ot1}VW5lzN}z)qaFh7v+*;AIsapkbv8qyG%-aI8(YaTpg%m`=Snu@QbD$cXUbM1_n0y07=PuAl5uq9t~p4f~a2Ad9dS;29FTps#l zXz5Wj7<}yPB8tm74zHPv81Rs)8e2frmD&cI|BbuAp(Re~sax(&_m2rjWt}$VyL7;} z*O!uVWRpkSFL4#aNu3yGm$`v`X7|qPE|d&~n75_~ldPwJ%vNwivbF!%A+7q8J()u_ z=J=c=l#?nD+Ncv}jW&)hDd-*2Q)(=d;IF~QQ=){aT2 z3#QjG4y2T;gOy&F5ci7?f!ygy0V{;CL@#@g_-N9Tq7azs#gE5)B^>kf>n=S516{Z) zOCM_5X&XD0Bcrh4(5Zbn`JW%xHxve+Rh}7h5t9uC6k-#S6Hc*)A3kY9-782p ziajq|EKJT+AmyZj+Z2ffVw}#570=`hWs)J7T2?20_`%PSFg|Y0i7Y*F-55e=g)Fxi zr_jj0zG}utm`_rZfONZ-_}B%@K@6kknvxqb&Z#xtzb8z>cBj|rwCBmZs4uBf!g$%) z28+c!QD%jPP^}PCtE%j$yRC~UgSTT^=Ov>u)`GuRZ+SN-^RVi;stRMUwDSWDw z05$b+LnGt7exc^gG@Iy>a@*2fI{JpM#IPW!67lq2wXq{8Fd^S%&Xv`SUaZzhe#JJk z|3j7uFRv2o#S4m~{RT8LU;uz3S>)ml7BEWB^e3zf5ha@C)tn*?5`V&vlu`SEMB8WydEfu<$(BGZ(Kw_Pw#)k8x8ZSIOUMZ+T)%D%^0F zT36d;IHEA_U!L@2HbZ6s^dzyN*-5;vL%wqZ4bb+;k}B`tj=#oNN~WLT3C(@#54LB8g`CbvogpVRt#X(!u! z{^(HLW*%U*^HD@nbP7n{L&4_k% zcUQpC+FYKR6N&KG_ov#$w$8LR_s`&eREmj=a6Q}~Iq2IrkdJoh#;X^c`Vvccj=AE& z6T{SQoRsp+!v|i*m@d)7`uuv0mTO>R_r8E6DxV>S>0p6yrr|je>X7x)o3jCgShT1N zd^K+$YN;by*3Pb%wxc5U3mq%Dtt-fiefCACp7wQLwmW;V4}P?(dHTv(&)BwIG2Zce zNH&@TW&zU5!~;q_JJ5KxBDbA?7d~lRws8KXJzI%N*-mlwh+AxG(r$h`59f@}dXT-4?K^?B!!cxW~FN+l@jJN%}2hp zG^l#TROp`PPVw*^s#k;^{haU&xVc`);A+s-C`NDdKL?MDtO@vs-7Dhm+Hhri5s>y7 zx{!*^uh-uzN}LpEgc&`)=y>yJu_4+kraQPLeY4E|;9;OZU{YWmyJVLcI^^H}Fzk?8 z7zuHxFw1Y2Beo>em7{K3Qeyz4$2L02*>SMx8KsOgP|r%GN}OR2!SIFgdo5TP|KdKm z&*@NZ@Ua%n4mys_^&qI^>3#Z|xJcS-6uiSf>pd-}U9VK)<)hR^!Q#)k6}D$^=E{xm zD|%Zac#GL;vfrK<98v5|HS-L(oc7;WgmuNoE=6coG@44CF$X|F7l4$5#QZDrT9m<;-!`s@|WUDbp!XI4!rGg9Wl<^R$0qH6xFXMuQQRQ&(SLb zp$oV6&Wtb?EiBu%pOtosXnE_ex&TxyQT}MC4Vd*QKYsOUz*75+pr_)3!FcEw6~JK{ zQbCCeHIV999O$kylJfXXX7DY}ev_Hpt50{I=VqgI+I|vBx-!Uj`o6`5Gh4vMa}P~s z7{T|zNJM+)Y^S^OWNWgkVJXzi!Dpd;^I8~8TTq~*;K^&axF4Hf4rj*{3@-jD!=?G2l7b?X5_+v(sZBN)?d`mwGBpes-)N0)$SC{ia8yts z8Z{ROxTB;r$XGn}zKy5%;>TADPwm6#B~v~5x}QZ(JQ_tpQrQ5PmBoo z10St_L|qVG*-ke*-7wV(GUKV2bF&$kbo%uR-PIgjXNahiA&JEVz@mNIc$|=S)rCa& zVGwsy{d!CR`E?5VmwU(&yXz>ZW3V7FD-)zK+5drkQr?^`;+nAe95hW9`VO}ZKBW4R zlY&hOtl~mCx<2Jp#5r{U*eCf*+Z6qKQh2dW1}zE5nz+%|%2(6-ry+Gvkm?>UcIqY>-R*Yx}j|EQS=3KAHRDZylkOvL*d0vlv;A-RWVt z>}GX^*DxDFsC6Im>)z3*(;dFh)9ozC3nA5Y?u#hY5Bxp?kN2vQ@CPrce_ZSGwy#}O z8oPl%u<_LBE4~EpG%;H7C!<5K8JYdY%Vl_Rp~XZ`va=c6E;DNte^%OpC#I_C)B2Aw z=J9*Yq@HsKpLYtu5Ac}xef>-dBPAmI-Lj}OqMSIsipGI1jHO40|AmPVIAka>+_fea z^~_c*yEg&3^Kg=deE&e6Jtd*B4YLmNtiwkggWkJeAV0+Lv$K#3gUL$bzxR9Tp&6s8Jy&uPkM&Q4V^L=#wI z4T);TiGGPe^nrt8X0s$+9BCvrh2t9A3I^9K+n^nsl~&FX7MBC_Iu;w|lZa&Kw>X#- z`Nw)g+%wZ=J-0BfZ>_lr-A4ZdVseP}lW62<48lj#Xx#NfQNAQKN3 z9+IWD4HM_2v{!E-dg-UC+%1K}-S0Je%Pv+wl5-j4fK<=*B4ViwEiSMCsRNo^QHgx7zC_Kq}c-3osa80e9<()KT4W#NPOdb7Mk@d}fF4LV`1`>LER*&9&KVgkjpt_qK)it&w#^T{!D-f3lUs#v@GSvfVuO z2(xQ;)FQ-_NrxKXnAsbtLXKaW60~t$xjGWslMl!#N-5r-2hHf-B^}0~-lkZ`E~82u zg}hxdB`sOQ8z~|mx~AzO-LXAO#5fa7peL)NqCBgyy6w|t;vZwrdewX<;#kI+OiHUwBTrh`24~|#|7U?%*YK9 zN`H`vXYaZ**Ko1lV9PPkq>7K0Zc0yxVFeLsv1V>*7Bbk z24HH8wm*6{r>E8Prj_YdYAhcQAJ)qpFn?_qF%~k7a4^$CrEFLhTr^@Y@i*dOUe4$& z<#aJWk$;BOIM>d++G}g(x13#4Q_;9MycH;_8AQjhvCvjCv{A*jHSFHZ36q;0I|gif(zBz^&^4qoUmkW z?7l|);q<->N(fMYQ4G{yaAG@GbomV%w^xjZRX)5MPG{Rc&@}WuAMl}%{YA=XT{D+* ze*N;SnBf%DmGHSEO?rA4I4W>Um4S-||i>My>^U~Tl7nRic*1v3{8@oTrzCx+s#3`?=&OC-CV(bcRLT6;2MB->xJ zEPe7=x$}7ZH)d8>g<5WUv$a~$0wA1Lu?Iyy;r*~mAKb>P2XS+HkW)!Ev7d=L@pl&X-vUO*$^GBW?SBDo{|!q7 zoIU^Bu-5o_OM84{RbhFbPyhZmb9 z&-ir5fVC7nic$!d#l&}hK1FCleeCOn#=7XH}$&oa!r3~a}psY%;Q8TGa$Q| z>4FI9h1tT-5`YK-o**9E3wilMX!r=D(s1y|lhAl4Tk5@cPHys*2|VAe zMDv$8K>^|Ud!GwiCelrjFe{mPBGf{@UyN(I0R`0{!{MP2_1II{A0R~QMY^u@*DZCQ z=filF@-$`|e2H}V^3H>Bye}-tNZ(sNCt$6!1x7I5ha4NB0wY?O64G2Vs)CO&>C#7>*S$6M@J_R`LEX%(mYuc#~*!GKdZ$6IP8Z zvZ(am;W!M8^|9EN?to#?vG3Iq5@2-H8721Ru;2IKC|gZ0#V+C=$jKHyM43VhWc+aR z4JZ7}xWR(mV2zbHagf9QbwesrIq5jlHpQh*0;641^6`^Q*9d|Ed+EnV5z^@l_|4gs zEuD|v$jjf92jr^tr0!gcQ;AS}0RCxC(OlzOwYj2TOyCe#I7N#UB=us(_CyBJHov2L zrfMRAkWdZV$B4(=PTtjunf&SJP;#~_o4Sm#Om{zFI7RpO!cgo)&YFix92jQI7Hb6U zcMHww_{{YHKLM!4Nk6fW}gD9e-P# zdZcvTHjZsvxjLPejXGCvz4i8ZbMphT4!!FPJQt|mHSRw8iNBdQ?lA|kmp`RGksxv^ zZCk(rv7}Uc!oIVc{NP@pBpw(^`Kv`7>$Y-44w&`cx}*$R+TBuL(?&gfbl6D%{Ir^> zyStB{3JpoghL$a|s7t;a;~IU*6!VnSS&#x@Y?pUhLl@1)BAq&|^&&VU)1R?yIozh$ z#A<7F{>5dD+)c z!`K|-!A`}Qf(nl0KML85CnP_&!*$_#WYXJE65VUQVHBAQL771_uPBXgxtO?5$_!rm zh2Q>wQgpUXec^Qo84FdiTMBWR!B5n0dqJJOl#(~`CGU$5-JT*QrtbX~Gw1CHR~n`x zP}KS+q$Voy)ZIrEt7d<=kr-`P9&b)wQY*FA2QIuQ7oZ}3@SS}Z!}KfzsbDdc!(oG` zS79A$13@{0-SfkDw6GF7W6i7CX$HnXL{aNyvMpB(ZoxrZsI+1>ijkFW`+oFaWf-o- ziFIen-j5m>?#9ykAeR(4n%Q;1(N9uZ;=N|YEq=`f(6tWa8ZV5B&zI4z2rSH#uJScO zMz@$GZr~+jhG7Ys-N(Cscmd?yn|#K{aYm07FvT*RXxt;KGk{fc6T+~Llq%ct3tN#c zKgOy44O@+feD2{$cRHUa3CQhz)#TH+D!-sv5JB^(dANP7)aMK3M4NmoNupZ;X1O~X zu_GUgBw#gM-On&~&c;_!#^}%QHOqX)fOX)kc-Fn3^x`*{x-1q$Y|n??-cP}Egxwzi zWH@jgj`7!@+>^JtLoH1cdV_tpdX+XXoo%&1%ffRuV`ckd#~D=iaa?in7o7+#NjS@i zs;KLot)tu{_@e~&<9?MShvNNhE;ex?B9TU&$Di}DS8R%a#q>9natXP%t|;|?9J-In z^HEWbgv_DYb_MY;HpMRm@qf2CG3zoa^Abiag?oJ6Y-~Ir=tq1%py!rJqHqE9y-Ezc zCT66{|7=kmG+VBO8Idjh5&g)o!A@#pQ?O_hzd3{ozEe|FB4~L zrr+Upl+MtYh8>c*MPG=A$nMAZrcz719}nDl<8Lb^iq4*E*cELGv;9e#0y26N^v}L- z;MCdA;U{HPb$9!pa=BU#Ch5f}q4Iq`XaFWA{$UvOR%Xs*pHmjvYd-Sy$qH)swVAVl z9+Iacpx&eks9I|29($0T*R;K)570z(lU%pf!d9UT&^)N`9{WJ;1iJG~XSYF({jaFW znl^JsosVNX7+0k_5}ZoK$pHSoi{B(@)=B-^+uX#qO$NvkLR&6SHp~t*2SM==*v49E zw#}7Y45Y#$2E<)~x1>#wg&-cgB@ub&g_83-OCdv7Gbd`N46rF&ZUBgCxozg5pj%rH zHXfcK_m6%I;uuH0oXl<_uZcMtSR2WgoacQsscZI+h|^h+O?NQ4u9fE95~#!dYPBGd z={_*|J<>0dc^rApjPRky-B9a1+&+lLnZAL`B(23luHVI&CfVGy-o3~!wcWFMmCNQg z_c;|+4g5kAij4fxy&#qmN;mMAT~dZiMqsxFhKLA^=3woqn<9q4Ljj;BLMfq zkV#*!@5Pbnw=5buKh+DDaO~dOc`R=GIH>orm$6Gb92SL}(zyhpDA6m?YZ|9XkUxQs zvi&J5Ox@%86??MLv!cCv&rx*Aec-A3MGwajI%X1=_O*Z|Envoqrr5jQezS*t?qj~I z)orQ$q(p^S?dG}e+Ia6#(;AO)P+M1c1(*W5%@MPEDNgP3jowkvu2p{V+&@DrUno+w zIz22cSj%n>n@(l+ZJ4jy#(d+bFP+ZP|@)W#!12an2AsWJlz-^QQ5n)p_bgW0f;j#vF&8YCf&M$vo~S zs&r#^;@wG9%~{pZH!5vE)TbW4O);zBpqyoAH?3@N2m0N=LC#odde0?v3@u0T4!?(N z;K^w0Tf5)5J7@1y9GS3R`cL@wi};rxJ50Jj`DOqZ{t4~8Sku`tDl@t}&*SVmFDs@c z4EDi8Ff_O+uZi8_#RilZrK!Kc6NSbbTpF$Ie~_Exs6WWf#YNdrr6iaCb;W2<<7~lnSk|b*wr^kyJe*Bof{pzuE<@?%+EO!xpEGgAxHN0a0d7V z;n^Xk5WG7T=3e8G=yc#Xu#I>)7CT0BxcP&FLjS>MR!=)`_%Zu5y3r6Mf?Q~4)8@{v z>9UVBPi_JDR>z4KM?g&LU?To5QCyu2!Cm_W1EV7@lMD3DQY~o({~jqaSzM383u73H z(MC~0MP_tLJ-VPE=H=`+s-aWH&qu>@$X_wL1Rg@^0aT@zxOsyoX};4p>Vg4I!sD9` zCG-qF*lWL#dsgAol>jiB^dN}yr^JztjRF0Q56eu(y9JksQn_l_oD5J8BOt`uS6y8< ztR!hG4;p^o!26_FKUt5__$@uRus#fb?MhEwp7(m<&10N@?YF3^Nd&%Osw{kR@^sub zlpxx1rX*=cma~UpnY8;A(S6BEhSWg{E8Llu9HKMrO2U>mScG*VK3-JBQ*NH#ZY;Zt zHHO$=7BtIs*>hIUo1MCwgJ+T8+K(tRQfn&3;l)39VrI`hy1qvz9a?__pse%wy-MC* zkp=OZ{=3G+;65K1ku|6RF||1|6Zcgtk{St1-xaFO{uE(=w09 zc4RR0%-=njx8vCACM`K@GzI&BL@_f5va|OHBxhqV~lQP zN@8Swy;|Jf-*`x~RKMrJmFInaRrO*q9r|3Gv0el6HppNi^|4kH+hOx{iN&erF{NHD zqAn(9P!J$?cG;$ZNAB{*lMSF^>quS-e%Jx*vmbp0P((QtsGOBM6#a zS#L?9ZAzIIR%C-7IPl*m8#OKMT)Pt`w&1!wp6lOgpQZ8Eok{+9%4fazi*ynOY?2mz z3_2nosX(-F4%C>5gs!J4rI>LZxZ1Y|_Sx08l^^#I_-Xh$R!m-MBPTyCXe|p?Hz$s^ z{@B!4fX^eU!va;;^?{eW`BPKo_+8`)?PBk@Y%CkRxXldhEWeTsAvP4@ZvV1#8Eo1z z)81&X>Jfo4N3GPG)v924i}Va?CnV;-E%2NWsMp2Jl&3FUFl`0MZ9g5)DZRi1bJn&*G<+ zSK6)xcr7@4jtUOSP0Tna#%+)S7r?k~0YbeOMD1T2V~h8l;)$o^F;6MG2<(svl#2lD zVAKT00Fohk(UM(7vrDKQrC{`n9Kg#?0C^FDn05QKXzxDRyFMM2Gw6NiwJn>}yqz4pA3A-qz4-QAh>IJ1IrgKWP8wij0eit1ZHsl1)!Ie9$ z%?}{qD{h!N?(ba|2QzR~&}FH4;UuzTRi?dMVfRbMMmt?3tMt$JY=s6g8;Q zBsUmP-5A0bZ|-r2PRmO}rkiU@i3P#sjr!qFa&+XKh9?y-w*Bt#&?a6sT0N|60h@FZ zN$E~qwhI&M5)wVk`UJWX=kN{I=MI78Ae<2-QRkSs{}2{QlbT{>^(LC0ur#lNs>llRa`lxdJPpAvYC)Q?o{w4OlZQUMQ1rg z512+3j<?k#tywWMc6e*rUazD$a;7cb|J_vsw%Q2-wex`?FR)(q!A07HZ;$Qs zj^^m#>cqZpn~>n?X2SMHe#y5b<_&&&WPnU83kNVWFdBjse2TtAd$Kzv<6?AS8)pL# ze#U>#lK78)H^86S9UUU)9&+OU?oKv;!^0X@@K`I5g?*iFCVl>61FvL15wCa{8K+CL zWQcsOcW!!G{AktjtIpjN{8}G4~(fmeJX`_98QV z9GF<*qqwK)#JDrhr%h=RqtEz3a=I2jfbhz^&d5Kt`KU7C*v(E9c^VvvAuOEIlFxZz zxxdVH7Iz3JA+(VVOO8mqz1%J~%&Y^Kili)7+%obFPlxOaJ|H>8bj{3EE9n8irVEaH z*|RPKTT_$>x%c!t zZpP1QBE=UHA@L)`?$)plPOW$c^~gCLK{e1l};TC9_-M_=4?tdrjuNfT0HoSe;}j==B?^LDVY-DhPZ{i)v|eiT!A~&&Xj?z8*-Nf6%e86 zaEy>kn!?1y6NrKA9Qd%>J08y;|5JV6WrWyXO+%j@qD&GW z%+C%ZWjyEi{++K|bh$ms$l7K&8m8~J8FzS zTunX&JD?<{3H;@=3=V!h(z9zgVT3IjNj&MEUSc`grs7%IuV|&&UJ%y7J(?gAN|2Oz|uZj-7G* zP47BnOTliVah3K{uC>GEwsWXtryPm(P|=#PB6amtz@&%vngP@TlLJM|DL!Z65X(8= zP3PZ27hS!r^m10iV`^z)I?lQsiqp+|dwY-{J_AAG|AUA{W&2g$kI9^>!oR4wL`46S zutWDBHWymEO;*IH+UeoHsN2!V3CjOvSf|o|FaQ4KQ~xKQ82~(W|5eW>p#paMe|Zlg zBKgxGwGI9!tpm~Eu7a7K)|m#lzy2S*2(ys+U15|kOChX}3xklb6_DlOEZp7I9~AXd z{*3TA0k~ptlK)?ElwY_)`r&*jDI)`<{=byz`9JmT{|E7+--n_+;*lAKSexW(0*jTy z$LfC@y`miEQkHz%vh&kSfu#4~5wy8Z(A2ts@~`u)9|oL#Z{{Zw3Hu~M708e}yX?y* z-a3WWEat=TS%mcN!rel}4M)fOfiEZ#FeN?uv9S}57$&D~ofKpYf2LJtz6Mm-S7s0t zoH2=8V`&}a27duU1cPRLqbE8m{KH%VRuG4wuS{fUfcdVnLR@xOccomEi+o6AAN~Z% zp?UqK&vLAQy*ZHmP!_rqKM9#yc+i@~BEG(7Z}n2U=ZrBJY*@!P&%0Np%gi;7Y9hxp z5h0KCYlwMrZ!M#*cVj6X%CcrBb>sA1**dwQWOvC^b}wQW+Hss7zP!XsbK<3$6B)jn zJcer~5I(~u$^9dz@+7T47|ea>#CCt_9B^8|C~MQXaIL4aY_<=Z*NLIku)K;z%-Ja+ zF<3_6dLJeHhWQpd{BpQ8!NiVnEC@4<@`3-n7haiQ!X3C{@oyRG>??SA?YXj^T}jZW zfAXX_<7Ogv|B-%>mCxzvT@Vi|m99d@Whcs11IFLpU%auAqbnIZs60(;v|_a>T?_N# zPbl2sz3i>F{@mvt{S-+coBO57w7ghCLwLD9?#1x~*AuiqH#+N3g3i0q7Uc*gAnVK%}yo~{9oc2dIhZiQPCfw_Q;NIACL53w)R5P2cS8JWIYf} zX;oS;tGF*W(n`kX>D6OTyVqbgL1p`V6T^Ls^J{phJHdJ5c!%p$M^9U;+Z|5+{(?kz zxAOiW#wu$@0*x+dWxa%e7Oe@vR)6qX>(9Zxf=p!ax z<|X5reT1X#5mi1^igFTyS6KT2zqgFV4ci-#&QpYLlgv*RI2$ZN$p!%w5ov-}=`2-nHKI>&%=zduGp`v-h5vea_A?E}uK$u3xd^fB<1NSLk6;8Y@Z5!l>l+ zIg6}>6bcDbt+Rt}97L^Ma3d~-sTib_E|m!TL1|iz<{FIiB!nvRc!i}V{0}w8#0g$# z_nmyzk~Qm}y=J8J>(*^KI47r_81`4Q4`O#M=DeC$ss`Z*FZ)&H$WHn4xjf0P23&Qa zonX3vyV>_jr*TwZnfbuCvVkq`vc9#c`xEMG!L)C4J#UU$IKwi}i6i|Tk_04Yw%5w} z{Z(s%$O*yPN+z3xnyAV+z2NDthd2-CZ?6X22Y0_CaN$svjIRs_?q#eO`^HB0{jKH*NTUKJ z-UtK1s-mOP^V@q3C1*NMmh~D!0WIcv>UzV{y861H6b0zWA!=8pSXZPOXmh{LLQ*R2 zy*oK9RX@j~x0L)VUiP-eK(1Sx@tze4W@%kNjO%nC3`+$KS2Y98X+fj&d|6|U9tE4R z{lJ6d+k; z>`P4C>DECNPK|U*2koLq_no2jCV~SWWE)(maIQO=VcwpcIdG>#RVwv%aGiZ8>&qJB z!K#OLU9QT*vSl|t;-!nTn1=yjoy*nbP7G_Guh1oFVsyLSa7Qz~uYa_U0OoL5P93Lc zyR9nES<`bn=HuHra78~QBHk(MG&hGhZblVRt0JQ5)newMfN_cZAyi16C?9V98x-(< z)(hO|{d52EU+xiPRrU42Um;}Kl%&slH)nFI8_l+NA4gkQ0PYXk+Q1*Nb3;0?D(abU zmK#N`&Z2)xqImcBpV^q^+&2JS=#hO7Ad!hy%Q}Y6lhcz6X>RW=lbTu~$`{pie@Z6t z1{#@i-Tof3{nl>t!5lYxSHX+4(`#pLcgkB=iOmU&UV0@B`cs;I&LVO)ak!<>FA17P z7^}8VsEcpal~yn3T9u zI(&iEQ1NmN>Qm^`-jqL5vB`s6L2&>3CQA}D;=EUhWRgdBTJRzt0%_z}(Vnpp<(cq+ zKNo$dbm z{mA*N6s;C#*g3`CqqBW-{1&-WBE5){K5^$%c0+IMR4QcQ^!;Z}DL*kfCRH@&J6}_5E~%ciup+ru}vtzt!NoeCm0GL3|olr2J#OIFW`{cD>A6W}Mm~$?r|lq9XU+l@}fy8F^|LaJnk{PWzJ14F}b8vVeI{cTEkD?YFrD^OKd zzn90hJ4{?m_6zr;B)mGy&yDV#kNbknfirIR4;P}hBL(|T=|6;ME5-QYwiq;!|MSE$ zke=!2-W7gIM4IZPC~%o8DWk%vy`H!?()w-F#4Qj88o&NCrsxsa1kJM#)9aT%49U;5>F_P ztnVJehcsAu^Rki)2x`bZeIDBU3aJ`q!o$b!QNjOq-v0R`=i7#fY?~Y7KeV1qgm>*0 z+}J~hezcVO zq|)W72Y(*&Th*vKPn*tlgUSPV^u(fMl3f6gfS>6}OmGdnpSQ_Iy^LTOBhtit+asHr2 zej1-uBOrhb2#C}b{C;4E2cikh0Xw3`cxv$0l)#YS%Zz?54e7J;$d#fvAwMg-wZW8N zIehl!wcxmwhHo{^6Ad@}eAGXM=w2LAi~t*++4s%*MZ+ArF4>A|oE#H(GpOyQ;op?) z0)D2>2%2}*cLiSjEB$O((>f;|5?T=mSwm*}s$Z@1!A5@#V7|t2y7$>Fc8h~p-R}EJ zs!}k8Em1s;wK7F;+{+n}KSj!;daMXv`VkzXp!U-(LJV0F(8Rcd%iZESESu=HZ`WHD zL3LLkc%8{;me`_0-2A^A3M^RP!=eMvd&u*7oXNncczfIY7=7(x-*d~dJ|X38fXd?n ztsC4GW$?g1l0}=+aiX@KZC+^uDWz(#+I_>kySEC+R8)#gbV=-{zOu@~YFT9{n%Mu* z4uX(sn5hX&=~f_=ZvNV{I`j<*Zg@&Uop-LKrEey4X)B-q>R*MDTy&^H_3t_`UdB`l ztD6QN4LQwv`f_8hdJGEX7?WQ%@pI(;$ZL>+7;hU`i-)lHiB#9lX3#Kz;LGVY41dKg zTZ{6wv`?Rpx==xbQI1Ms_wq*e1*|v9@582y75I$}z6X{{99|4fO6v_*j6`rOHQXky zyGpBYV#Mf{hNJ*7le*^bL@cE~kSV*&c;+fujiA-{l&e;vcIgl+#)Qfgt_rwUDH951MEACr; zwtDd9_zE*?ni{9hfgsC-VrXeX9{KGq(6<-P0{PuGuKxWYEhW|gf+?2_dEk~(k+Jy5_@?!HyDr)b(ZDn!vMQHIT)Qjq4-*I ze*l$xsw9xX>U3MsKb<2!$ipI6T5UDTJ)GaS9GInQZ=IO@(%Y~Yt&&3|4HZX!fzjx` zR-{CV6dZD~d<<`n z29iEiK_4|o|JgOWU}GFwrkD;th445#3$Dm;ey=)PgLPCc-+vLA4o8y@0L@$%GQho= z0|)U!^aN%yOA=LR&dm$3Qw7hUj%hkwb?)H`CvvG2ox-1^)ARg0AnbEJMi_F_MCc zo47^(+{6JwSW5v)?wV@G$fvb9FL1H^0hY(cZ}+@t*DXrhU?syiDjx?vyoW@l2&vQ{ zL${nQ$y+WQ-;8eZF|Z?Yq!K-vYPi`P_&{E1Rk+WP(<|OYSL0cZqPF!tiMm5PN4Z69 z7__j_#FyMf00pznTyySCDOIXp zQZb0keW!1C*0zW_x9?Iseer_@L0`UHfDPW-_(aYhv7{3%5jWz`C`jLoaUFQ+_oT!m zd;q;IWde`SZF6~@lNIWE+uJg*xw-5z&|pVUy$9-5A_@vATQ#WWxZf~pBW|;Q&1ZA+ z`7N?J8rc(o-un911A8o=pV=7vzEtTv@BJp@|`s+AETZp>W+%H}0#n=Cw4zTgaO z+Xx=J#nbL$>+&q=?%*dX8rv0Ea92OF;`;MpHiPOWQXxeO*(o|5*nEOT`n3%sXV@d) zwyf`HW7~F|^|}XYq*m9l%Z^5co`*7U`^xwt@zv-| zInUd^Rx#uo6_}^R*OG6ThkBGi#jA}Y#Mnhr#zbiN9S2k!^z5zhart6SKU^oRpF6!G zeX0?8apB8atl=A*Il3^gp>+D+&Ycx~+p8AuH+K?yKnM+F8sa#QZm*aeLzP7n}{f~e#p6@r-Icv(sQp@AM z^EI!W`=M(qEG%9h<@hmoBK#Mv@t_r5yJ36bsqpoU5A=5yRR*o&JndlgO-9OPbvdX> z6C_ac{b4S0<(j63iw&Wz3IABG>T5pemp+@iP(rxU9jy8Lnz{LVsjrTcdK;aNRBNku z%|m#eCVd@`f4Vs}*;T6X-d$aEQ!NWOHWnZ4wD90*7Ld~V?o|r^Vr!R&&rPfrPZMO1I~YGkyNd>1d;8sy7xUNX1g3=a9@P~^q$p>^18=)(9pAgFg$@cE;yB@l|d0AXqju z%#F=s)wWcui*z;5KO9t-74uD$s22J#r)wnPBarEKq=gkJFay?FX2KW{4{w9)!EdK3flRa#)|s2Z0Z8J za=$JuJz;q^-#8B;$0NBs^dbZuyFXD)l!+M*CAzRFg)VM3^2=2nwrd(K;nWYC-O{^v zq;hun~XCW8GLKAb%U25g?&eo~b^d6NwznIT+AtgCm&&z+9RUV#ePeoc&BSG-O% zqgA3)$)~2kR0H8I&sR7z1?s!j$2J`7+LC55q_{E&8MaU;Y&g3@Z)(N2`~?G!8**}9 zx**)LJW2(fc%X4yeri1oz_)XYhat8Itj%{+veTRSrN3r8uj3OdyP=~r`X~ZzEY3-> zwjfo=SD3Da0?0Nc=SuF1FR`~eX|y-^(H1u%+c!U;@7dhvz2=O_mTO>Cz3Ecj{CbN- z322(9kt|m(t9GzoF&Pr8=Vy*@Rb2zQiRmA6vEYr@)ZLiZX48JN%8Fjn?J_}uU_JEGIXK?d+$al;+7NrZ2=u`0BLk9YZ^0_^ujbn?EpUzZYnoo*@Ecz zdT+V4=A3rq+ul7P;`|uq{2ixWXSIWQw{E`5sqC>AXd9}TA=z_*FNuxI&eS>851L@q z!IGLs!CTs6ss9Hd49xzi=JQt6+SXQ|joA3iycxIQKJX8A1_GVw!h?I!k z>3`zjtFwcLpv<1Ttz#Ih=5p)qLnVzOeb9Wgv7B18>5iHRq+#A_@9;Reb?=h)`CEj- znivOl4Quqj^r5jFSs*n_nU(tfhv`&3)p|TgYiA*dGu%GRNZ^wuw-0feRM;o(eA7t= zb)Zu(uHfm(ufsIoznI}9^R}0t-^fdeF_PoZwBr=L8{1qfRS=ae+S9NN64!MYdUHrN z$Bz}faj9GpKCZIaJXWUP_sXu<(PG>jwyIA5NQJ0wegJKvB=2Teu-rtE3NKgH<*&_yN6`QBab2;*Zjnnh)z0<^Pw?m_H=yV7iKU(P9 z%a$GMusUvq|x$AM;Sn-mu(NARKj5 zzxcuTE49F;Lmo2kyW30-H1|S4gK~6ikq&@z*&t%8jCmMeZjB9J8@N~#-!t~%`VWr? zhE8!Jj4493k*BELC;Tp)?Pe*g?rbl7#l7|yLBKfK<7KhMB3Z|;Ez5C>v>130P z2xOxu(p{yLS_>gr!3W;Ow-EeytrptA8~11Nt3fI^oHY*`?*eAOtO!d_QUg>iPgQT7 zc7YmLO_u9sRVdHi3D;$|?aMxDa1o049@dCBxNR3tdfJ9MtrLpBIr*O1F2N%(e683t zg!ymK)^2Jy)(_B>VnsKD_|9lN_i!{4NT2Yt9I7-7G~N~~|3N06;TeUP=?-?M5C5>t zC$^}kxF?5p+~vu@p$Pa|y$9FA@rIon(eO=p;`yks4HK^+8uO6km z@Zfq8siri)(!|3#T=*4x45bCptlk~=RQS2qL*00Hqma^_4n@aO0woswg<+Do`qX-D zA%JdNpG59yxJ|HdqkcZ9H)*@*%r+)x+)*ae^~&briZBpSI@QV;mvN!)5;;c8{VhD| z9RXP9Sp?o>RHOW@m?-0IF;pQ==If=BT&aY$_mmrqiJ(wUfwbJs1Qo&-Yehp&`k&+I zvRMjXW*6|0mcCd)u|E41ghY>qIUqF6s!DVO> z`}w@>iG-x2iu~!IrPbgFB(lfe$~vpez01n%7Z4lAF=Ss?wqRZvg7xC2a3z{!LM|h1 zm+t6RW(R~n#7$pngLKHhAtkz9DC6sx^LGmmcc2?Zz16o*b7W<4p)zC8YG&C;E%tNW zcK!;iQByT@UU4b=k>-GtEPr1=_14a^Jo9ENue(H~43rHlh$5Nexa(-?ffG`XyJ}wj zKjoyK0fdjSWO`aq>k`(K1+2oikGe6ScQuCW9Q?%8yiY&rU*Z){J z%f~^W!ZCejVCU?)-v;c0vqha0?bN%%_CW0)6M9DS6g!v9bk?3|PyH4c16)!47x7a) z5D4_&m_1WIm=->ITCpd>WX5vp!9P-eq&BX6L;fp_#CI%WmV{u{EW+-k}^ zB~oeOpfAei(aL8@26<2JV3IrPRcHfKKl1+Pneyj75))t;{L|bvF^(!_HGy5g#QbvuVbQ(z2_41Unbg0YXATM literal 0 HcmV?d00001 diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/assets/operations.png b/i18n/ru/docusaurus-plugin-content-docs/current/assets/operations.png new file mode 100644 index 0000000000000000000000000000000000000000..80f6f7998d8189377f2528cdbf0d941c32d4449a GIT binary patch literal 25098 zcmafZ1yGw^*DYFFpg>D;Z;=*&mQchM%9R&p)jDmuC^Bn!j zQvS{PpAWaHiki}E|Gpj{A8&4M5D28C2LuX*9v`1vU0p*Ukfo)iqobqy`}?e>BLxM8 z%gZaF??W)yB@&6exPZaoh_kcv+grG#``#oSYmJ6AJ_aK_HO5y}euJUUzr5xw-lN{=T@& z!Yt$ldU+Qb8WtQJVrps%M?M@J9RB*1pOloOp`kIheC_Dyq^+%OXlR((eCp%ltLVE? zR#p~PcBC7!Rn>o9Q&VG`yqnhs-8eu*R~@hJ!c!Yg+S@w@7A{o-HdAXiHGlqvUEe4C zK9=@`1Qj24&%mOhqK?k*G8zy43J!yUg6f7Y*4H70;Iq9`WcwuSiH-F79mDXg(w_6S zwl)d(^`y#`#lJV#@cZV`bBEO3=;&zgyn`=M+jHv|0R?;8M~H&+8z%}+Rl6l^K(>psvBtcM zct-Dc=y3cxYo&n=+tPC9eDoIy^S3|yzB!4Iba*&T>;RaQCN|+ttG*F?qmGZ24{&4B zHz>~o1NmIo(4w~AV#6BXznx(ahy}-!x=#Y+qXnd_OF__k`fV0_(fFbT*$Xf>R@66id0Q2g zx}hya=-n>gnKl4-(Rmer)S94Q+%4~m}i zmDzdj1R7cFQ%D%to$Rft2k9F~mys*mc78cE2xdHbI0Py2;_@-PV_(di-J|fX zr!+7km++uNTE`W}>>|^Yl$C@hX}RFv9O<4#Zy|OvaBj;mQo?KG@LXWFIy+*97aK^a zaHA=Sb!8TlxXQr~Kz!AHJlT%BwPMmbjn7@h7JJLLjiNCC3sg=j6cK17k2? z32TFlu9E16xl7FVu!$u2th#)~*mKe(BBq(r&EUaDBe+h>1tj8>8k(OB%s zH>-8zMSq$*8|(^%UJ}vE`F&2NRh!=5zBnr#P!_80%}xHYT@Sn%M<)++HC;`vddzgBl_d_NZ;AYeA0Be%8^P;#)eiAbk=t}77y#N$x27DdPtZ4u}V9`WS0Ih z=(Jii_u+J3)fv-(bI2ij`-uDvKvtro@Dt7eqpxG1qwnW^EJ63kWlr26M{f_Ip$i8| z`)TJ}losiu@kCV|8?0aAYiDdo!aN6I$---T$CzPorifr}Jc8M)><8X;M{}-6Dc|s(H1!zz!XO?B`SQKf4j}kJI-D% z7K(Nu4Q3Dr;|!6&A8PCYZB}M#lwF1S{4=bEAJWIS$vp5x{Q%d0?b>Tt%{Dofx`Dr0 zM;p7;Z3z^03BLKWE-z-b^4daXJ8i9u zL_wpVULz_SD_eL69Tec>R6%pZDZFu|PyQ^YQwI4rOn&>ECmL zC#D8LyTbX{vaNh|WBBSiM2a#n(#xK-T#q8&b`o0Us6E z)JDE6ZlgD{{#LIWAx(CW-^+LHyqF7G4hSgT&5{yPet}Be`%NfJ%IJN^Km}HV0&h0& z>D^QDX-#OCU5=2YAI2^|5WnL1nP~srBC|S4B2h&eEkGbjYP*gz+zAUE@r5hC$|eNo zqyM66xD%zcmE`+9`^9{!FNVlM&jZh`wsHKu6`TM+jstFyQTO#1+-Gl0dL%GE&WrCz z4HeKmhrJ2?iR85&QjEO8OSVdF{c(`?}HMbh*Aj4ZVuYru%+R>a%mmnR7u z*!Jb>dXF4#$8#w*2Lj8gmgOvB+eLSzcPU9rrjF{Z(sy zH|`s^XL*cW`>k#l)&*Kx?(75+%^lBFlkz?1Z#_PfYP1-1G^JFz!8g4-IC1Mj*%$c1 zk+w%B0@zXtgF%0Ex}_6%|cZj?}TGS0%1h7nu-KWw7OR08+6Y+_(my(_@U4K_(;u= zfIlwKDVn*2=nMEN{tZrGVl?+}ArjNX+<^M4fdB#O@?hs*?+V;(I+}E{Z{XeDf{v6h1|v^Pc(|#q zqADsO$VAs1Rry@n)C}+V1Gs#CF$A*|>}^4PsuSr&!;RjGbL0MTcXaK3RP^u$ecp=? zY=7Plp5P?T?w+Djj*>9pN&G%*?pF!tj{Si3}ScB(|5@jZQ^1i z7}HWpShhyjby<6oawxnMM}zkB_#`Ud!e`zFa_;eAE1IMC@`HgB17zCNwG+|D`hJBN z;x%&PLo;&ce<)lqp3=b1pF+eR;)J(U^EO$+_%@pUgPMST++l3{*L5UaD#14<_+QoK zqmGAT13Wn?3z2&#>;%09|LP$rvyrAmdaYmH9gIM{pKK7D6}c!}p-fdUYUBNar@bX) z^nwLe*+d28p;MFTg2G3{{=&T7_ofi^Z5}?^Tr||FoxC*4=as0{CF_ikMq@AU2YGIc zb=B`1DPm|bsKvWBJ?}Z=YXJ(3LW%ZiH>atn;yytfcsC)7KxA?vqwFV+7Zx#?njGFt z{Gs*ev(I0n+YSl71cQ2HQBRIr-I!|XDit76`2w_b-)e zZ#66`idUDXopANmHX&bxZE{Oaj`k8w4u;G(7>Gf|wnI3v(z$voTKcVdlE{}IG9=F( zn72tMQ}y0B3TGt-m~7A~4DBrLt>viE3W5{RA+raD`i>d)CP_S_oa?PcbDLh$n6>^Ge@mqn`*Rk?ZpF>4k2P3t zrIO*slmC$FyIJGa(`dRR00TpHKdLTNAoBDy)#qn;^f^PmS>ZiPmlhRQV#7klA6^~g z6%MZy=Y3TFgj#X5oF;$C)zCG|IApaD^whh_pl=}SH@15ucUgP(TP7?Okx?!Q@_ged z79H#MDSHQ#AfC3mHN6-hFC2^_qMkO(3T~jPh(P=BSlr1cf3k*ZlLTA5ZQL3i1YaH7 z!D{2)E*6C2R@;7l$mkFR$-l+j;1hufp_Whe(%Rzbyie5+AkC9_^HrOf+3JQrPD$F0 z#tq18q%phZGI3etTW<+SmcYx${NnCILvBmT{o_1~X6WyF#VvKmikE0xkC#0i1j3VG zuh$NdOb+nY8lD8e8m^jhGypr3^5D#Hd*m_K?*!{jA)&z9ir2Fn8*RR zS+A*wI|T%gKP)06WngTs?y=RupT_K0zS+*pfNyOnhMF9C7IB4nQhtNbuN=AE-DANnKtzt*F~iljarCusu69r@2N%WP zBv)-WyVoUXX1o*Z6f&;h*ca=#*xB3`cH6yr7;Y*R{(E(Dsb7}O0RJQw(ZbEQO(39`X&ZODiowv$M zw7-Q8ab({G*v;94lDut$;QDu4pwj#`-;1b*SjI;GvrbJWV1`y# zOtv^uewXE#7l&t%?6}McERp7Iz^bg`WSJwJVjn;tX!DMqQ=`zk7MzP!cwt0!7K8@V ztQBl*7`fVAKeVYM+4izd=Qv|r5E`%eDOH|Ry%r3h@~2K5YGSFip$B<)rdhQ75t|ITZf3YVG6+)5&Q20?{)-7mP_J-tiq*bW?6a3O+}W6XY!GHe$jPW6u+!2cQ}y5 z<0%GT;8Yjb>SDHFkIg65dVo{XQbrc=sa=+ox$J$w<2=KR7%-E>JwXMprRQstGCKCD zm9)SrPKf@;tsvl3lKK(S&)3D}cz`FrtjCX(7JL!hJBJ!F}u)Nr4vHC!B=v zqIc~JOKCCD1D+=QXr-mLr z;kbe;ZEn}jk_4S>NpJ#Bu5*l~U@XZ5Tw$taL6-m#dtMiGH~W1$lK$?C)uhC!8J>)L zg08#4nb4!fAMk6pMuOV9u-I{*-{4txm)7U!-+K^fcb~zNH0;^-!Lbp0K&sYwE>@Qa zLmpNKUnoC6gfO|o2`nly1Sjqhj7HJiMc$5dZhP%N+$$i5qQ-(sXNzB^#Q>Bi&&wB$ zn;oL}kP#rHo+DxSUp~BI%Kg7?(=%YH?B3%#u88l37%i_JrQRqd8obb#Az|!pB$h~! zD3;8rb7w?P=nhD9v3Q#e{VPwuf-j2Jl9X?9ni^WPbv$*MdViG&y&0eCd|2C%0Ytw) zY`GnA#ygiS(GxaU+WMZf)kP7}vTcA()1v$3*NaVl=^@6$50DGayC0!>uPQmDvw9aJ zf621#)Y|T}QAm-o^3^nRnq)7VY+%ceCVNXhcfd}!>t)O`j~h7b{{UI64hGnZ@-$B) z)aUfPNgOFHC8+HvfV)4`%O=H-?+M}=LI^N5zX_jxqRadcOrn?;{1Obz{ZAbCSo$#i zk>2k+@V)uxE;7*XtG#{yGqdyk^_ty{05zPO*aVMoc(K!q zD|qsozqY>^C4YDSS>aV->+0in#P4^&%-(Q&v3~N%p#%<1_?%cqW!k6$*VY&{6?_5k z8(0s1bEWC6u?2+7kc~3B1t||566{{IG%n_Tsl}@sF8)dl)`;0s>8estSfn}ptnH-fI^E;jsDGMowPQrT%M+&Yj z*|2}oFr0+XAk>Yj_Pif!+@G<$ME^qiQ(E>tT?heox~9CwFWP6N^Ad&2s;Yq!VJZ4U z{R%)y#O{CwN%CWR8)t$B^@f@3pRY9>w~+}^?w) zC(xRYN+(Z%#;9b!wFitcF?pj&N|_9cndHXyNtr%p9|WUZ@2!YlcwhCH@Cphgi2~%B zXpS4nt}$ywf!$z>FPz`XrzJDXH{g{M@M}y56L0`%yvO9$XDR71XiBSH84knU=<>!y zrU!MK*0z#g!jzbh)$jhdC!q?|ev4#&Vf;JE6E-A_=-7t%8L%lP0ou=KFgfeEX7WGQ z{9h~EA#aa>lgVuVhMxvA%Jr18prq`wEa`+$d`3~8Xc`QHn*z_$MBOH;m~7uiZjtOM zo}~)+(bCHs80)`(L5tz9KAQ16)Fcm;!*ApH>mE#ZW9KjJX90o1u91FNC*S-op0=b7qrguBG3E>*bw9ynjH$@4%d9DM$b+!D}oQngxDi&g43M0a#8sRM4|uVCnvP$wq4~=&!I+ zqPbt%r!B8XRhu|}s#V#mS$TaP*;qZ?Q=BUNKX#~0n#;kJw4l0}Zig~x%kjQ~9SjPQd*Ue&_U%7}o>zlQZ7C1R2O;}`7t_K1D3Asd4kuCLiKlFOHHJiW!X__{qEK| zH#Y(rq4As0mNOQiG{pfUk-o$$^EeFXIW}o&HOtypqo$a1H@W~-3@2?bbg6nHn}WaO z_Abb0a9X;I0()6dWhq6y|AH*lml6HnvH{fXtOG|j9MP9%1@C|LI_$RF%^R_M637!b z5xnkA<23u&2-2(K|3;kv>G4u5t}dS!@TPjG-55rVas2!xl+Y|>=s6ZCVPP-QozpGY zqp>dJ1B;16z(>%ehl(taooE;Di<+ZpM$TQT+Z&OexU=pect@FGTqhKl4GL_PvY;<40xB9eJ^zxh*)A(3yMPM>h-uVHX`mS7KOftjgP68hi+sxR!GF6$4QIR3<>UV z#;(gwc5%jETUjyAIml%6Mt{DK5U2qHKc7pSB$|v^lXl*WOCqitr=b}6_|s@LUbQyj z-1t*g`zqm%-SQ ztz4ihk%u{e_|SO*BoYC3ou7J%T4)^bTX>BP2aqXgzm<#Kp9cP1`@U3?TtmC-7K2Ed z?|3AVv+Q_yL(Q|bIm@O*;OwT<+0eAVY;K7jwAWaTXupYK9BL@4cFIUB`*}NF2{mY@ z%Q~_OqZ0a1kF{JGm^91v^7TiM?Ur?EGPUUlHffFtJ3z)zt7^EvLtZf3MvQFhjd!01 zudtn$#zDxM(v15hK3CkJBJj6|)Vg-G$8S-RkRz^G=WLt{U zLvF#?XmCtN!fSBil|{#ELqmuPaD8%flu0Vb^=sq5-N_Lo>gxdr!OuBJU{oUcw;5Gc z+d&O|t&r*L-r-AxPlMcj{TizedWyZjLcjZ}19~~L>)ly@wY=0%f4`%Y8}BcRtzR<| z!MK6L@v07mEX2fFg8Sy{@#ycC$d++)dWGGb_Tq0bGh73TX8Ow2&NI{!QJq5WJ}og} zo_e4Fis)(@;eMCcwP7KsY;) zjLvIXfj6{Kw~X@120^&>b?UQp8rBbPIDyUZ3$Ppn>U(!S2=RHFVt;aieEco6L{FMx zl{y4s$zVH1DWEpwRQ{FxjD+Jm5~d;iH@-JDPP4+>>&MKEA2FQ)nh{S~Z$1vKBNY{< zN$mB$U!+L+xuapM3V&P=YP<4rHdX#upir8JO5^rF8IXuR-ogIK003#riS_*NYecHHr47&erhI&-4@g%-oe~eFV$LH;jcMi*qGVY;%rlW!-?AZ zO%qd7d*CbDexNsZ5jyv6#S~88bIc>oS8MiTR}IZvBSJ$7VPBmov@>&E!Pl;l$~WG5 zT8EIHf`O)$I<1I(FVbWcF02XJFqPT@_vpx#m0s^-x^29svl z_Mk9@41e~JRmd70P2tO(osZAc6e-S3Y!?gp0Ugl=8Zl+dNE>!N{dcWNV*bVI!)qMa z3w?BMeF%0-6v0srImwR0Z8#%hW_^gU`Nau23xKnS;7x4Sjd$X{>}Pn^PN)s}Z|%F3 z&;q|OKDwB8BBpPQAWJ(S-y6}}(W}>2_WaT1iwx4tdQuP+E;NP(4qhC=S2Kc(*y4o| zUmvu+_v_UtQROoCd$r>r0rz}$95P>&+A%tBQ_CSQ8azK@6ZEwEYZ3|FV{dx|wB4uT zo)&6?T(dmLiQdpN42#QK5t1NGKhPD~1O@s%Ge6U7NP6QS?uxXIifD1-KkC74%Me^% zJ)Ar2zFn?~z)}wA3E$D?Si<5{A&zG|_xuMr$!p9;4&&~kx%$5tkP2uuuoHUi%3L7J zH+>fO=@?haDx8_&z4h8rQBSti2C8<)aBE6oiGTbn)?d&T%O5n-*Y9?f+kZK^s2^8G zmU(On^}MI)%YPq>+eU$MZ+HJ~5uMfqgO?MF=A50~RJ^%Q7zJM&w;;TJWn~YalGF68 zF<`F@j8GPeDx=kEz2WRpxGar1F}a$H`SkKh?yY^VRuxvHfR&D~YF)Rx6zMZwbd?Cc zaRN-6Va5n!1W6xAePdC`Zgkq#sNs33$MVp|m{oW39XHqLD;r-o;0W0dfVP3~rzNZQ z&b0(YycMzW%6ui%Y+ByWd#{#L8dhdol!=fuP%Gk)g?zeH($-I7R*@ldz&f+*UF#tT z-ACc}KHJ1A88#md3Zr?S_8D5fDcZ$m=bW*|in4Y>CMyjs{y4uGYB2$e!=WrQJ`_CX zDMK51@6dgiRAirET<*qCG;~|nsveN(XZ)*rp*gf4`I0!o)V)grk7HXQQj&_F^vJ;I z?@VfQ&n2-@?~La5-e1w?LkoIWrR3@R2SW3?7Xqyv{g2suE@oMVR4nD*=d2q?#%e3# z;mbV)^WV17hu2#(S%+8~SckW(KV6O&LfI#c%oB0RcDTCeb|1O!tnvITk~87h&x|;F zEouEgex|Qb?6?QiYR4?TJN)9Irj&5@q6jR*ZGEC3yt&K#Of`cQheY#3CGGFaD z+Ygx^IR7PJelj3*4WkC&!Kug$CIR7~6z_NR8~E`g7rhlFdGs&$pJ!9eG57&_aq$PM zu>_@ilJzI}W0O4_{4ORCS7CbTA_APGWewENKegT-uM0LaQmodOfOxYuzTl+(O1*_r z>~Up%YpklFqkDTOnTe@Fl!DwwZ88R?B=V>NA9sjZ8_v9oGgfwTF0=OgSXiwz`!L;U zMoIDZFB!xJafl zbvt2~wO7~wr+D+G7K$3r*y>+OeB*v=%|+aGvR`WqdF{ig3LziZk$qi_#uvG6s*)tW z7*?!S%HG$i>#%>Nmlld6LdC={R>HnC#9 za6Zo|XMneT0yxNTbugAJx|50ir;e1u+n#h47I;JV`Lad}AFSny?J+XEybdzjlP=lb zq1OXTNtPWEvu7RhyQH%0oVX5#lZ^d{596Wp`UK9ZK9w9X=;)=}`tO*C^%qMG8= zL=WXc`({f*alVtqycjvM0}npe{knyHHs7l zq@+&tAvAtjZxM=){Bt`Z#?0#}j*UBPqjwhbmx_H#?%h^`cHN0QlUIAOcDA99w}Jy@fC^>*FJM=4%n1O~0=< z6E1$15viQu)14;mGOGoov(+)!q0c7G=8Jnek7ue`y1q;yazsIgIMwE$2@iQAheEi! zs6&JGlF-r7EbFd+=ysm)^$Cj6_TRi(O?`j5rf2#tPaQfbnM^D=Cn-1&|Hw4Qju1cl zd7xzJn3DJc$z#8#96~bn9xRzl#DTExxG3$3L`2x{QlhyjU1mK64@KU zDF3rgZmlmK&{+RMk z)h5;>ONUDdOwUzthBUC&eYZIpe3-&JMj2IXXQysm#P>c=-4Yf7UvI90pw3PsLRwr0 z2C=6{HyPvB4W8fjuWduN+>-K{gLoA9CyNO+l03^yXPRi&Qd}2#xXfF6J&#-!GT1(S zl6=K>LX~?k5ZcN;(=||%$HdCR_DOTY zxQrhM3d{_NT(=il*=#dZUOy{zA!kD}3T zX!m2gCM566vjT(3Pw`mBR{b5y1^79U*mqqsE4uRzke6a3h8PZ8*=lRE3|c}yoZW}z z7`b1}H*g@DOG&=u52fq?J*$__{B_tUkJ#j&$j8kFOoJ?yPWD^=hWr->z|H2wB5dBL zvZ{Jz@?g|RwvyAR^VOkUaKi%ifpfNW!H%*#1P74*9dOK%XaAeuOE69#)Bc*@?JIscgCw_vQZNT&8z zXG9Yc-~#L@{yYl)5hw@Imy-qg5hM-gw8SDL>J}+Vo>}crW6pOiP~l{gqBxgN%*dLY zPU)o!&V<0&z&(F@_vK1oACVdvPZJW;+yLYyyFI&Y{WSHJuIRr&KKhY%Qxh(kAn zBs(?(2Hm5kbdOr8CVd+=?jv@5J`3|9lB86`D;G+JS=V&#qx=fGRrSta ztFxgpj~_q)%zdXUMa+Sk4EfM7MqG=_m#q@KI{4yknC8FS08X3sVgyLg1zqb){!3j8G}E&Bf)tr#DRNNZ>~8DjJ`-Z zSL39RVLE8x_XcYBE?3g20lBmeiUpFuU}2i8&y69@w>^>&p{KxCREc8a-!u?-hGb~9 zmRB81<+jf`)6J?{Uv~9;HVxmVR(0S&$;VJ|AUl zTX=sKtuVh5zW>=hHD7;F0ao(MoG!S$x_-U!LmOfcNUc)hypif_BtF+fN}%x~uiD<# z5_YmL8@WuHoyYg9w|q`TNdJ$Xv0^QNI43`P0l?+9VejJopr8$zRUy4}%fd`-%4|VA zYtys>VUhAr{Teih=r);3?f<8K_nPn{K_wX`QTiH@4!@JnM}I?5Q|h9+=uvyp^wdiu z&w9~s`QzgH$6(X48I`0?FqErx(;zc#Dca1%gMmx*_oFqmSD>baucMWpnEx^%0}T z_*c@G8avfcQ*QpW)IkY-$o}=8W7fY`AW@Wz3_*JFuVgEEjMKiE;JF!A0z&UWHNME+ z&@~-Jt!Jedi|!X%k@{&Eaz}!4yk@mDh->tZTU#6m-{}U_K|#qMw}5m-#eNG5?ULfKlfr!`Q|n#yq~7hJKXZ-<_88V0 z(Zc(CeOi!Y-V~MGA1_^?T}I9NJKb}NtH{b%v|3k;q9zN)rC8?VqZla8U0YPD{`hwq z;-%-FXx3uOc zBe2se)g#@WF&kOM>l#eeKdr8f%51k?qD1vNN0*D4*s1#8+X7L~0({HF6xL2nuyRce zc{6Nrga|h3xN!x9b>7iywB*8;rxQM4S3$!z?u3;gPY0mgi=FDUprsC(nR@WNj8b4G zfp4K!zO@a8=F4a0qy1Gffm+v#5%%VXJNg4C?p`d;uV|Tx-K)`q+r;Z|ORQU2OIviX zM9x%#T9cX6QuvvC2};SFj2SjiA2rR-g3b1Kb20FWqSlCtFz_*MD_Wsx92n5`3C)S! zsKj<~MJLYi-%c&6a{Gqi1`9wIL**L4Uc1R4H?_odS>I4KEi+$n)95xj<&ZY2r&O05tD+w5nZCBVT`=w&T^6TFyw$?Sxrv61ii2v7kI1~% z$Kv7j^>ssWAhe_8YN0tL5;Nb}S&IaBlig-ila2KONw?S${&=@g-rU@6GKLmAv*^fy zW#~{~)4cGkOWmxxPJ;MCgI~t(hyGw_hWj%*W}A=O#WPWZ&nxCouwLTo{CI9hdeHFq z+soYi4iYzZ!b>fr@0*n!mqr|f+gvTB!J_y8LRZ2AB;4J$5pI(Qt*oC{J@V~<*GS({ zWwqiU($hnpV_VfNt_Vr`sRMycsJ~-#%ACr;%+0dj>&YE7a0=7}v~opGv+`8VcmDic z6ude88ysiMQfI>cxx-Sh_`vJq)5A0i+jaIgF9zchM7VdESXS2#VW79wV$**vsE^GF(W62T%#xsVjJS2jnG%Ru(i5a>Xn>ITa7gx~sp-Yoj zJK48NV$>%X^55DDgE0qMUlgeE5xoGQJtHs6waX1orwzL(Wu`4D-G_%r#6 zB&-_Mre^1KFrdudthu6<^;qt}rts5zl50cg?2I*sEo$!fn2s;2*nYS7&m!#0hBz-= zzeo?-qFKFBmX@(*!QSeYZ=76wsCRok^FD`pWkGKd&9&($=Opv+a(p}boiSu&MWWM3 zS|0L?$#o*(RKNaaP9P*utw6P8a9z(HLuJW)P`Ny08!H$DUSWt0y3<>S!s!Um$ zn_;AobXq!BTz#$&QgX6`)Wg8~Wn&73j3Bs5Jc51TIR>{GqU<@FR%?-Z0(fSYWJ#mj z?d;pEj>6T1xd-#70~TRWEw9!d8mk>$18PlTP?`S>w)=b6_a&T~rXMJQ2b z{|=vNTF>ZsBAohBb*OL*9C>AP34^l|z7%6hN~)0eONztI`jsJy98QC1{$Db9K@FN> z!NvcE1Tc~Q747A=llGk|J8E8|pb5*fH?NfvdZS4k$!}UuI1To&cjPKo0hFu2AK9+9Iq=V>e4@WPpuT z;KD*a!>DzKYg;DI13CH`t}rmEdPsn$8_L~WnnL;8xU2>2|N7fq8tKe<$Nep*&%qHZ zh{S_?`+KnsWgk*Db;}Fmh0N3KX9&ERn?;Q^DbB`wK@|Xxl`7v`P%rdlCWHRaM%x?; z==w|px;!7G@x2&k;tRxW@PS_*%q~;oF@Zp=tea9^{#%;Bb5+%?L?xh%U`w{Cq?#3B z@ly>)CeAdmGx^k|Agd1O9+dU3dC4*PbS71Q<;zR~o+|D%1I3wAzEpOT3Vxe;eOz8B z@l?T$_G)fKE34d+A-@TnLrhJHhkSDI*UP73WM0jFLyzj+-VnrOTkb?!m-^wVB(WpF zn9*$)%GdLntV?E=4lW*{2dT9*eq)S3|0lk6ULvaWZN;@}Q}NY{6ey-g^%NRw z$6uS`>m|`JHHg?{-m($xWjzJ~0m~imSeXM&)5Xqa3vN}XN{@=B(;_$ZXYvQ5z8&F% z?rvCkz;P%CKJ}@nrHCQTs?pBXy~PdP$ELQ)W2NKMs%lDGQx`wE3*1Rk3t#sz_^CtM zV^a0A6q++em18{Rb|L!{pn&l==6FiQZ71dZLm%GCcQq?<`UnrbmCFjcS~1=kX}tF>CY8MRT^%hAxqbc{L9j; zM1OSz_`v~5VBky}6GL3%SrdtAK?7lBgCXop1Jefjj=7B~BdP6FHs%*FK{{vQ{9Rp? zGWf=^-Jd6cQP`cR34b>u#!v8lNWB}+rJ| zk6jwao14R=KpB=(%6|orzv^UjM~kUC$8>sGhntjM-+E} zG#rG85aVP@t#C;1XIR^<1LmN?EXEi=#4$$n&z`Zb!xrN34zDVYceCO?F}BUD*FTy( zKnA~zFszmk@DIx9YeaAkxgWCoQ^<--sg@|yvEQ4KLhjaVG@I`4wXmEFd55BCIoW&{ z=Gvo2m+`q==*j}NL!^tkq&3sm+(a-TVN8rMw{v@CjM#E2uOHp^t2$5>l+yTI6xO@M zg5W0PBNfgj@?rSshc(IR>A@$TibGlLdlrD)65dy^X|By3jU!zoL=KrkCuH%;TBo?z zkM?E7(9+h987;Nq&U73ZNuO(eGP0hx|NfOOD4^8i!qOu24;)_yQhW_29}@R@!X?^b z0R=*i7MK_9egDfcU=rekJYsb&D;bR-3NLCb$+0K1u+* zeBE*A)i{YvF3!69CVV{tAF^v+&b-f(KSrojEg}CQ@$YfM{K*`OQfB1Jwyms%#39TxG3c{A>|!?r;@CoG~n|E^EYreIzbQ8`7&# z3k2!*S57I(8x@ZISM9FbgvU=Wa;smjNn#MyA4>q*ET!<}5*08V*j(A@=i!rx5Q*qr zCXAW)ng5`veA2!Fi$Qbks=^krBNHSb{Bli%J|usXBP~hk!kV!B?#csBN;o!szPq_! z_jwX9>{kNC*}NdlupOh6Nx?c#wesR^Z4pAGwsdVA-XRxsR7g;HDG4vfKX9C1jyc4N zX#?6SefVDI`QUpB_<56yLMvR`>Tf5^jY}JW?K_2n7C!mHMY+_*##f=dS9n zRo_UXxikYB61Y_*AWMZ-jKfETM8Q9Jn(Axn2RUu=qob+MID}RO1UzbZ2EPmO@umAr zaNlf*9Pf zN#Tk!n^JGj8~(uU<>xN0h%T`IZWqhD-or{ZmYyW^njjn0pXE)Mbb!Rab&c)J+hyV+ zYrgKX(K`#o6(1|Fg(}h9Ak^H*2F| zR;|`$X+qknwmCa5Hv}Ip)-JEF_CR|i*;&~)M0|@)!3#$yu_&&8-?F_iOi>C3%Uq8W ze(u9~#g1d2s~FRvCj)3REk*hCzdHHusHVE@TR;#55kvxr6crHx0qMPnBGRRV4xvbI z(rW-wqzSPh0#c+HNrXrZH6VznNGF6IFj51Ck^~6t1@*gkyfS|Gj`vr_*khly=9+u0 zxz{;4XO~{&`&qPStB0^r!S5P(krYwUO(=^eHJVo!yXTaAZ^iTQ{W{KU=1P0@O}_)( z^YRbPpR^CMQ7b@jZ5UX-uvGsBm|?nta5tVN%^YmZPPk`P?!f4yTaI{@AeZ$PB zTBbFkRSZFZH>LU*3$Ky@|8NoC;cH7b&yX5#;GPC~GuT5Z^HIZEE25hC@Wue%5 zHLEBdl+HPpw9CZ62*bv|hJFMVQCm;6Ftz0o+XYK;?l}%~JB~A5#};WphLl~;lTq>2 zB4tvQCMrqGUem2ZnD<5?KvAiFR~UH2Q*M4v1WzJS?2|1Tl{o8z;$L#K4SGRrlowT3 z1rRKsNWv6c7zFKh*MX~Tga{$3^P|Rzz;m`RISld+qD%f&N<_ojx7Jy0RitHKxmb-w z93+)E$1oyHa!Zeld`8h10%2D;vs-p-VId~errsw19A+y(Gbr;T(((6@B)D_QC#Ha+ zJ!A#&EE_Zek&94zac|`GqNSEu{3x(v62P3LXv&%or)F4aFeRso+RUreSa`i9h~5%d zpGC6k3r(x0QM9AUz!SDG;-J;5Rx3jOi5H1XWPNpt`^LOa*`RtRjOZ3AiBr${O7A-Q&t*&bvr(SjyTC{;p?u+0kxuYz_SuvD|M~numh&jBT#l zy~E&xgM;Cbzcz@i;=fjq=56K{FZ!N)$W^W6c39=2#I74;`csxAA=uzJ69z8MSgT2f z0BEv^Xh8l`^=d0V6yX|J7XIgM=fH(vAH`wQe(iM(&(cTzvv%hPj{7#~waYUVU5vP3 zdY!LW^2KA`E*|b*_D!$q@6GzhZoE;B0iQ~L={cqzVx;b8wi02ERTJfF1b69!HnTvR z+d6SA=ALWsO6HTUhemJkl8sHG5=H{jUy;Yr6_BZw-n!-LbGYaT&U>6>N29)j9nDi) zpXsIZ#$YC#4=Q(LS5K~}#13FlZC^Yoy{9-95swZj>d+H7NV!BUSl~tdSVt&jFc?iVTXbgEY zrfm=y7ubz*$vHH~n#M_$xp~Dv?4!>SqxO?y*1q>$KWxDoc=y3oC;qXNBOe_63WKxcS=J3lj(BGJ_A`}P8rS}Ckl&GI?HC>T8%CYnXK^-eJMJ0I z6^nd0nC`;zu~RF#=ikcOk+>_0kkKmEr){zMOd%8_AL+_N+Ge#5k7> z)l`AYo`twMIQY<;_*;pPA<0`x+>%4=C!Ov7iC~CFP-zsV7VrAOJaZ&x%#K3;dkvDx zDR1)J{nl?Yh->3jLk`Fc`D{FEOLivK{tYrj^-{Kn?-a920)OtFMZ}0-zCH%AzvOlH z(FcTsVAGhgEy>U8@zyS}#fRZ_LY|lvB@1M8Ty8sApL*lHncapovG&bB#yuZzy^xQ0 zh21y*V1D1yLB-nq{;}Q5$xGiY_i-XLg5?Q-S(1Doh_l|~nu^**<-_xRX+X^!pTaO{ zA_;`SL2LChuPAEfmV^Z_-oKnK<*{_xy0Y@$#;r!UVhvXXdymY2yjx$Zq5$Hv`C~p$ z*Dtbl1Cxh()R;V{mpI1uB$wyYxqK~)W5ZdC804x;?4u`UI>*X4m_9_;aHu2XobGN< z{5#(V>w9#qWM=qQS{e_50rc_5&WZd+eeVMAR3owDS`j|2ONx@l9QW`wMdMP7rpX>f zr)1{=I|oWg>z5hLrLX~}sZJ-JiGNBc=N9EDz%<`qU14$f`3iJaITkz%P zuPkStkEG5`ZiZNZF*rs4;0CL00MZQjf!0THSMU(}gsZ_%kGywV1{M=^dKPHH@Wy+MRa!udA;8=-!pNHbZb1F|Yh7IWw+v z!tGZ){LkeNG>1pMs7>5T%W^5jy~6mTvD>fHCy*D1ri8(K>(tjpsD|=bI* zL}Mb6Cr)lRjkylA=+m{?tAEv2J!U_(vRC#2FWBxgkQk-M0Cge&pHzfw{T#E;OUPs1 zN`ApodW@kE2s8gYS%NAU3`YvMFT#OmylCPgj-OwBpfz-C+5bC~#=<<_Z8uN?s%b*= z#QrK^8|F_Q|EwZk(+O<#E(OdiyDyj|Ivlb)*i{vYy8TN z8_|iJ);MMYZBh3Nln8N&%2*4n-h{SS99Byt-W97pQb~=R9cB&`9m3qaP@ATLPM#6~8%LGWcbsziQOk&rQWl zrgaI)kW-X=me++?az`#l>-*5KSvgX(?!aP{RDfkpEVgsJ#~dambE43pp*Hsc(f^aayLB6ParYS3sZYE!I;?dBuZ1<+8BKRSyuO+zA1wr{AXw}83nK+i*19rONY zo9Jj+Rp;d0WcMEQh0(I_>f_i7WBH|L!x%2`G0_MkEOx-NMn^{1!=p2rj-@kZ=>s%i z#>!bFYE_olSp~jhOn5pGcyVnA?naq{3 zf;vIl)%CGl#k#^e%lJtLtA>(~$G$hqNmdEO6WuSFPd}Xdc~z}kcjOGcKuERkp~lHV zVf7h1h+KEM6yDwH8E5Q&x ze~;vmf(?huJ&dunpemr)|5Jv#Z~aly|5nw0EUPMKe6f(pe82FL^39_7LWEc#DKYTo z+h=7zsTzqel;=(OZ-ntsklZ^jk}l7T`+DP8^7E_^`ZN4(r#TI2q*IwwH=Hk0|5f^+ zh0|?*RDZ9lkp=fdvN0GFw-t8PW5w@>_|~Jd*-MdJ>R&^0_BQe(Im+4~Ws}C8q|C0N zZVxe}c_4Uhowz~WVl3=Ik!me5Z-Z0;nDCm2!Jb|Ve<-CI4?o4fs(&rvsZ2Q>N98d= z^R&AL4r>WU^O1Fo0r{qnf;mt_>xxY%4l?}SwIH!zFPP5OFDv69aF-`0pyT_X_DLZ( zah2FIxx|zR%z_Utm6Qn7<@{C8+Z}!0@5fyfV=;6m6M+aXEF320c7c7~i zd`cP+1W#f2O?wRk>T86<3YQ{&hJjnmeP3ug+NqS#C8$>(OY6;YRQ)=;dhZA!_dMF) z;gUoOYH+IOJM9``B@BQUYd0u+@7>6RYoeXG2e^Y9z~su7iN<6Eh-6uE-;Bwa+#@uO zpp(+*1i^irrLDjf)9B0lf&NQ!toN z{jf;P#a%Tp70+ufQL@hnMS@dUJL+S5t*tt&>=K_F)g(Hrak<~a(zNf2 zhinoKClFlW|uRVtqxejRgcPUYqUdPfMpE$6BqhbSBBETtPS8TNm?|QY* zep#iYmT5I}1}XuR0jIiEvEf=F)=jsUst5rKl#GFjRvUs#U0BO2s&|OIdfZE0(%W)H zR{ZjeWVxawou6s{)+d=~X>HB72YMLuETaPlTARRC9I)gmnuZgHUNvKjlC3pw|cf|^ib3bX~D9c5q2E`F_ztVZ2Lf&+t4fG)dPO2$xy zCOGPGJ=4@>iIjt^ocwgRdvVV}JvHU<{ZK$~roWx%9m1dmcDCnfQ|#p-cG{R$MukMW zpiRh3C4{$jm6qma5ck<9K#(H=n$9gkmwW*s)F_}l>} zDVn6!-op7v_@J{U_ksZ02}{}XuB5*9uHClwOnoQMpD|g1 zNTp@xlvd(YM$e7Ky1O-f&<}B_WIX9l_t&q-jR`b`ruLE^Q8UqUoDu3}SY8t30Y;nQ zxoJbcnvmpsXf*51ahS zPLZ=gl*N!!Wg98;TZ~^}t(<9{0uR9)cFKSmh+r0MTUm3DTeo$B6pb_(H&v%ex(FR~ z(X4W?zpUa0Rxbhkn*RsJMJX{Y2|W(5+icw(>j39_WM3j{<}d}G=7RyH7L=iqJQfml zpBCj#AbV~h-u!3`Ni1tx5DwaGrE32vO5#t;Q{T#!6i?zN5SHKt&@KmHZLL0zox!M! zNHo=TsQyYGpJ`!CBFn=W;p8OUX@BQuBVjqw#W88UrLznSEMJVtq zpKyk}VJWb%)>nTGv9WY@if;gPz!e9YE3D&yQ@O|X2%v+l8U^(!!j+(M$^cQ0DkjW3 z>gr7WA=HvaMQ*3GC@XO(XJ+pT@9Bs4=X6a_)7ln$=rMXo42BgfiZu)gD~dnG#L2?@ z1&iy)fB?><_mm(QTim$=ChDU#x-KD2_`p&QNgJ zQ9FinVPX{swR}en^M<@syf_4!)koFiACzynr8(LEG;PBly#Ji%t&7-5a4Vu!a-0g;+Aw02N*eE53*aKT>qHtJ)Z;+{^r@ z#kUp6N}hlJ!y8Y{%Q`>Bd@xIGeocJ_nx(*`wM0~CT;MOLYmu!U7uDvfK&Xf9L-*V6 zq?+``fPSqQj~E)Nkq8o_`B=^DsRB^Wg!$Y#LrRWx ze{KrGzrV?noU&4(ME|%k#LpfSy+RS!KBvF_HCqraxRjDxC%n08uU5h-%>&QnkBH>_ z%3~4+&QZ8!%&?CT?GKR*g3Zjp!Wd|t-vOmDuTAlZCa3hLCf_Jysz7XpfvZtBL^V#3 zk@}~%zx7}!8sdeNjITY$kc($=Un>HPb}vFxSGG8Rn|WtCAz-KvPO`|(%M+u1GJ}%J zclYjzfroUELZ>SNM#8UjihMj+IuZZ8*9Q#IBJpSC<_YNhS%sq>f%|Oy+u*0>I@(d2 z3Q8A9{ANp!0^`v?T;GTm>HET8sfpjG)Qr{)aZELlUk(BLy>AQgDlHm<8wj7B0fw2|Jc9u+o9>YVul1D|xu4lJ=tZs?c#xhYb?ra667Lec zdLLW2emZPFo%sEC7PyIKDLE#V4#p)P)29%mo5mh^vA&efU!lmYroHx-I!+_UpY~b| zwonnGx%izgeX;_wmoFga(Fm}*z=pw~AXlH9&wIU7{R}ypG1g;j95#m(?JID@9D<_P zHf#dHx@jU)E5CJvaAkcFs`G#JbpK-+|GV}3zo$haQ3rY_&7}eOh6a?Oyset?+!V!y zqr<|mQ&a75Xu5%T`E;VQHRz<_>`xxXOQw>g5)2%k24XL?%OvDZUjfib#(Nt1@pAua zba%E7neBBrtO!zm ze7Bqy{`O=8y4nQ2e4Y0m^%%Hp_D>88FUel0a0RRyLY;Q6`N0m~J*KN()#ub56Bb7a z=^E9E!dJAXE4k4Tz%S)DfuLqt>hGv&AiQ}>_B4JT)@goOQVCIGvf0wTvjJAfM$D#n z8gZ@D-ulEA9<-Wy;#$B}n;$e2_6F*;?|SmF5--lHkmn(6R+>KAr#CWM-hIAtI!N3U zUC>+|T|gLK4lLbS3CxSWqiUe38GC4Hf6w2mV19RNlk`xec|R0Y&}4<%IWF7q+_K|4 znC_WWL5q@u->D9*`nu}c_WS7v5YU?4pnDwfszX-n@~9Nh2Hm0S zGm(Yg@0i)_Seg5LR<{sYdq4t@rYb}`$?xtp63x3%F`in0e}(e&^10UP-2%dQ=7TgA z_YJj~AN+wIy{JJ%b8qUvIuH97dV?`@p{{b+1N`l(j~#)rbG$Fsgqv$n-@&2+$2s`! z-xC9<2H2WDW@CF+FFCa`+8PO_ar?c9Y&u`cKgDzrRt^?atC{b{GBN0O%kMm@pQ)kp zzfagn-FJV!4MtT=`acW5wrC0O=`b#QmCQZJl!+%8M?_5~Xv{dJZ!~>!Vw#N1-S^vd zlL3y7HxE?yom9K?=wCd24=49pTtLdOg|YD%#-89&yDF*FdgLH!=VEP6yWo6U=@c)a zu<2Y{XS>(kR5ajG_ygnSk3-V23@gD8kN33nkoyx9qDw{*mOEkYBbDLdkV5vzE=LO- z-~y6kGp|LK8ph}?X&jxk@Ue#xW`Eb%WHXU1?zI#z!}Rr?n7%xXFdWeN31igM9nb8z z6X17mZ-6tTVz6h<5+yvVliD?}{2cM%-@PTw8cL<+x%Xa6+^na!@VsiYN9q&1a)61p zKl1*xjhY1_;-3`XP88yHB1STTY$tl2^DBPO0tohto=TEHbrnrbdgpe$EB7TG_d6<{ zP_L0n#ZyTqm!E{M=*T+)g5bG8Fzdmp_%!+~K{2-nk<8~9BaU+Yk??#_V;{+yHZQ(R z!7XrDtDWvCp?M$Y(uPYfrr5fi$j5oQ3(-ax4BR>xg(>WIZNGO7xTNsr)NeL2scZnj z>qlI>q)0ozsth04_ZVW)*WZ-`8KB(mH}JTtxoD!vHfVaub~vdpt>5`{Y|KU6d1 zJgfhx39>yKE1~~eMZN_R*N;Tx|67tWgBS24r>icCe+wRp`MMmYH2JMzGcn@{z-9oH z?}fS>s>=7DlWk@=0!f3Cz_r?>a>s> zCp`5$iJnD;e6^rQp7ou!zkKb$```0esPm>bg^)hg=lHuw=92V61S=sNp^$-+DwrHHa5~w zG??k?@+hw8Nw?e98|DV|@U7O27UNK`g!Rf!UDc}()#u{j*2f|QaJn;l7qj07_0=@8 z-3RjTPJN7x*d9Mpfrsf~{L$sh)UzB$H&F#ZBc5VMUH%&3}0Dr)B%C z>Wmi0KT%YDA48T~;u&5_TGrXBE{(+uD8qr#Ky!;N2FuWuA?^wI>TBBHaX9iv_bgLv zsc|G$nnE(PSFh%$2n5jGPS!nd2@y!T847Z8=+bb6yd3=B`Q478l}(nunhbKfpNj^I ztCF>~sC9Z+XY-;Fb^LoaqK~{t+KgaOd>?}sKwf^5=@-|#S#a=E^E^}gTeZDYH7uTk Vm&BX6s0aJg=;;{Wtk8B!_+M3sL<#@^ literal 0 HcmV?d00001 diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/assets/pivot-main.png b/i18n/ru/docusaurus-plugin-content-docs/current/assets/pivot-main.png new file mode 100644 index 0000000000000000000000000000000000000000..5eaa9537ccd2c169f921a0fe89b45aff99151fe7 GIT binary patch literal 21456 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

Q@ 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

$UM&EJ)%pLxRgTeLt8D3 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

LIwaKDj7?dc3$`~5t6!zH#l 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

mJYTQe$*9xVk>(RR7L)J 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 v + ` (${states[v]})`, + } + }, + fields, + data, + config: { + rows: ["state", "product_type"], + columns: [], + values: [ + { + field: "profit", + method: "sum" + }, + { + field: "sales", + method: "sum" + }, + // другие значения + ], + }, + fields, +}); +~~~ + +### Добавление шаблона через хелпер template {#adding-a-template-via-the-template-helper} + +Чтобы вставить HTML-содержимое в ячейки тела таблицы, используйте хелпер [`pivot.template`](api/helpers/template.md) и присвойте результат свойству `cell` объекта столбца. Применяйте шаблон непосредственно перед отрисовкой таблицы, перехватывая событие [`render-table`](api/events/render-table-event.md) с помощью метода [`api.intercept`](api/internal/intercept-method.md). + +В примере ниже в ячейки тела добавляются иконки (звезда или флаг) в зависимости от поля (`id`, `user_score`): + +~~~js +function cellTemplate(value, method, row, column) { + const field = column.fields ? column.fields[row.$level] : column.field; + + if (field === "id") { + return idTemplate(value); + } + + if (field === "user_score") { + return scoreTemplate(value); + } + + return value; +} + +function idTemplate(value) { + const name = value?.toString().split("-")[0]; + return ` ${value}`; +} + +function scoreTemplate(value) { + return ` ${value}`; +} + +widget.api.intercept("render-table", ({ config: tableConfig }) => { + tableConfig.columns = tableConfig.columns.map((c) => { + if (c.area === "rows") { + // применить шаблон к ячейкам столбца из области "rows" + c.cell = pivot.template(({ value, method, row, column }) => cellTemplate(value, method, row, column)); + } + return c; + }); +}); +~~~ + +## Применение шаблонов к заголовкам {#applying-templates-to-headers} + +### Добавление шаблонов через headerShape + +Чтобы управлять форматом текста в заголовках, используйте параметр `template` свойства [`headerShape`](api/config/headershape-property.md). Параметр представляет собой функцию, которая: + +- принимает метку поля, его ID и подпись (название метода, если есть) +- возвращает обработанное значение + +Шаблон по умолчанию: + +~~~js +template: (label, id, subLabel) => + label + (subLabel ? ` (${subLabel})` : "") +~~~ + +Без пользовательского шаблона поля области `values` отображают метку и метод (например, `Oil(count)`), а поля других областей отображают значение `label`. Шаблон [`predicates`](api/config/predicates-property.md) переопределяет шаблон `headerShape`. + +В примере ниже текст заголовка преобразуется в нижний регистр, давая такие метки, как `profit (sum)`: + +~~~jsx {3-6} +new pivot.Pivot("#pivot", { + data, + headerShape: { + // пользовательский шаблон для текста заголовка + template: (label, id, subLabel) => (label + (subLabel ? ` (${subLabel})` : "")).toLowerCase(), + }, + config: { + rows: ["state", "product_type"], + columns: [], + values: [ + { + field: "profit", + method: "sum" + }, + { + field: "sales", + method: "sum" + }, + // другие значения + ], + }, + fields, +}); +~~~ + +### Добавление шаблонов через хелпер template + +Чтобы вставить HTML-содержимое в ячейки заголовков, используйте хелпер [`pivot.template`](api/helpers/template.md) и присвойте результат свойству `cell` объекта ячейки заголовка. Применяйте шаблон непосредственно перед отрисовкой таблицы, перехватывая событие [`render-table`](api/events/render-table-event.md) с помощью метода [`api.intercept`](api/internal/intercept-method.md). + +В примере ниже иконки добавляются к: + +- меткам заголовков на основе имени поля (например, `id` получает иконку глобуса) +- заголовкам столбцов на основе значения ячейки (цветные стрелки-индикаторы в зависимости от значения `status`) + +~~~jsx +function rowsHeaderTemplate(value, field) { + let icon = ""; + if (field === "id") icon = ""; + if (field === "user_score") icon = ""; + return `${value} ${icon}`; +} + +function statusTemplate(value) { + let icon = ""; + if (value === "Up") icon = ""; + if (value === "Down") icon = ""; + return `${value} ${icon}`; +} + +widget.api.intercept("render-table", ({ config: tableConfig }) => { + tableConfig.columns = tableConfig.columns.map((c) => { + if (c.area === "rows") { + // применить шаблон к первой строке заголовка столбцов из области "rows" + c.header[0].cell = pivot.template(({ value, field }) => rowsHeaderTemplate(value, field)); + } else { + // ячейки заголовка, отображающие значения из поля "status" + const headerCell = c.header.find((h) => h.field === "status"); + if (headerCell) { + headerCell.cell = pivot.template(({ value }) => statusTemplate(value)); + } + } + return c; + }); +}); +~~~ + +## Сворачиваемые столбцы + +Чтобы пользователи могли сворачивать и разворачивать столбцы под общим заголовком, установите параметр `collapsible` свойства [`headerShape`](api/config/headershape-property.md) в `true`. + +Следующий фрагмент кода включает сворачиваемые заголовки столбцов: + +~~~jsx {4-6} +const table = new pivot.Pivot("#root", { + fields, + data, + headerShape: { + collapsible: true, + }, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + } +}); +~~~ + +## Фиксация столбцов {#freezing-columns} + +Зафиксируйте столбцы слева или справа, чтобы они оставались видимыми при прокрутке остальной части таблицы. Используйте параметр `split` свойства [`tableShape`](api/config/tableshape-property.md) и установите `left` или `right` в `true`. + +### Фиксация столбцов слева + +Когда `split.left` равно `true`, количество зафиксированных столбцов соответствует количеству полей `rows` в свойстве [`config`](api/config/config-property.md). В древовидном режиме фиксируется только один столбец независимо от количества полей `rows`. + +Следующий фрагмент кода фиксирует один столбец слева (определено одно поле `rows`): + +~~~jsx {19} +const table = new pivot.Pivot("#root", { + fields, + data, + config: { + rows: ["studio"], + columns: ["genre"], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + }, + tableShape: { + split: {left: true } + } +}); +~~~ + +Чтобы задать пользовательское количество фиксированных столбцов, подпишитесь на событие [`render-table`](api/events/render-table-event.md) и переопределите `tableConfig.split`. Избегайте разделения столбцов с объединёнными ячейками (colspan). + +Следующий фрагмент кода фиксирует слева все столбцы `rows` плюс удвоенное количество полей `values`: + +~~~jsx {19-26} +const table = new pivot.Pivot("#root", { + fields, + data, + config: { + rows: ["continent", "name"], + columns: ["year"], + values: [ + { + field: "oil", + method: "sum" + }, + { + field: "oil", + method: "count" + } + ] + } +}); +table.api.on("render-table", ({ config: tableConfig }) => { + const { config } = table.api.getState(); + + tableConfig.split = { + left: config.rows.length + config.values.length * 2 + }; +}); +~~~ + +### Фиксация столбцов справа {#freezing-columns-on-the-right} + +Установите `split.right` в `true`, чтобы зафиксировать итоговые столбцы справа. + +Следующий фрагмент кода фиксирует итоговый столбец справа: + +~~~jsx {4-7} +const widget = new pivot.Pivot("#pivot", { + fields, + data: dataset, + tableShape:{ + split: {right: true}, + totalColumn: true, + }, + config: { + rows: ["hobbies"], + columns: ["relationship_status"], + values: [ + { + field: "age", + method: "min" + }, + { + field: "age", + method: "max" + } + ] + } +}); +~~~ + +Чтобы зафиксировать произвольное количество столбцов справа, подпишитесь на событие [`render-table`](api/events/render-table-event.md) и переопределите `tableConfig.split`. Избегайте разделения столбцов с объединёнными ячейками (colspan). + +Следующий фрагмент кода фиксирует справа столько столбцов, сколько полей в `values`: + +~~~jsx {20-25} +const widget = new pivot.Pivot("#pivot", { + fields, + data: dataset, + config: { + rows: ["hobbies"], + columns: ["relationship_status"], + values: [ + { + field: "age", + method: "min" + }, + { + field: "age", + method: "max" + } + ] + } +}); + +widget.api.on("render-table", ({ config: tableConfig }) => { + const { config } = widget.api.getState(); + tableConfig.split = { + right: config.values.length, + } +}) +~~~ + +## Сортировка в столбцах + +Сортировка в интерфейсе включена по умолчанию — пользователи нажимают на заголовок столбца для сортировки. Чтобы отключить её, установите параметр `sort` свойства [`columnShape`](api/config/columnshape-property.md) в `false`. + +Следующий фрагмент кода отключает сортировку в интерфейсе: + +~~~jsx {19} +const table = new pivot.Pivot("#root", { + fields, + data, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + }, + columnShape: { + sort: false + } +}); +~~~ + +Подробнее о сортировке по умолчанию, пользовательских компараторах и обновлениях во время выполнения см. в разделе [Сортировка данных](guides/working-with-data.md#sorting-data). + +## Включение древовидного режима {#enabling-the-tree-mode} + +Древовидный режим отображает данные иерархически с раскрываемыми строками. Установите параметр `tree` свойства [`tableShape`](api/config/tableshape-property.md) в `true` (по умолчанию `false`). Первое поле массива `rows` в [`config`](api/config/config-property.md) становится родительской строкой. + +Следующий фрагмент кода включает древовидный режим с `studio` в качестве родителя и `genre` в качестве вложенных строк: + +~~~jsx {3} +const table = new pivot.Pivot("#root", { + tableShape: { + tree: true + }, + fields, + data: dataset, + config: { + rows: ["studio", "genre"], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + }, + { + field: "episodes", + method: "count" + }, + { + field: "rank", + method: "min" + }, + { + field: "members", + method: "max" + } + ] + } +}); +~~~ + +## Развёртывание и свёртывание всех строк {#expandingcollapsing-all-rows} + +Чтобы программно развернуть или свернуть все строки, включите древовидный режим через свойство [`tableShape`](api/config/tableshape-property.md). Затем получите экземпляр виджета Table с помощью метода [`getTable`](api/methods/gettable-method.md) и вызовите событие [`open-row`](api/table/open-row.md) или [`close-row`](api/table/close-row.md) через метод `api.exec` таблицы. + +В примере ниже отрисовываются кнопки «Открыть все» и «Закрыть все», которые разворачивают или сворачивают все ветки в древовидном режиме: + +~~~jsx +const table = new pivot.Pivot("#root", { + tableShape: { + tree: true + }, + fields, + data: dataset, + config: { + rows: ["type", "studio"], + columns: [], + values: [ + { + field: "score", + method: "max" + }, + { + field: "rank", + method: "min" + }, + { + field: "members", + method: "sum" + }, + { + field: "episodes", + method: "count" + } + ] + } +}); + +const api = table.api; +const tableInstance = api.getTable(); +// держать все ветки таблицы закрытыми при отрисовке +api.intercept("render-table", (ev) => { + ev.config.data.forEach((r) => (r.open = false)); + + // вернуть false здесь, чтобы предотвратить отрисовку таблицы + // return false; +}); + +function openAll() { + tableInstance.exec("open-row", { id: 0, nested: true }); +} + +function closeAll() { + tableInstance.exec("close-row", { id: 0, nested: true }); +} + +const openAllButton = document.createElement("button"); +openAllButton.addEventListener("click", openAll); +openAllButton.textContent = "Open all"; + +const closeAllButton = document.createElement("button"); +closeAllButton.addEventListener("click", closeAll); +closeAllButton.textContent = "Close all"; + +document.body.appendChild(openAllButton); +document.body.appendChild(closeAllButton); +~~~ + +## Изменение ориентации текста заголовков + +Чтобы повернуть текст заголовков из горизонтального в вертикальное положение, установите параметр `vertical` свойства [`headerShape`](api/config/headershape-property.md) в `true`. + +Следующий фрагмент кода отрисовывает вертикальный текст заголовков: + +~~~jsx {4-6} +const table = new pivot.Pivot("#root", { + fields, + data, + headerShape: { + vertical: true + }, + config: { + rows: ["studio"], + columns: ["type"], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + } +}); +~~~ + +## Управление видимостью панели конфигурации {#controlling-visibility-of-configuration-panel} + +Панель конфигурации отображается по умолчанию. Пользователи могут переключать её с помощью кнопки **Скрыть настройки** / **Показать настройки**. Управляйте панелью программно через свойство [`configPanel`](api/config/configpanel-property.md), событие [`show-config-panel`](api/events/show-config-panel-event.md) или метод [`showConfigPanel`](api/methods/showconfigpanel-method.md). + +### Скрыть панель конфигурации + +Чтобы скрыть панель при инициализации, установите свойство [`configPanel`](api/config/configpanel-property.md) в `false`. + +Следующий фрагмент кода инициализирует Pivot со скрытой панелью: + +~~~jsx +// панель конфигурации скрыта при инициализации +const table = new pivot.Pivot("#root", { + fields, + data: dataset, + configPanel: false, + config: { + rows: ["hobbies"], + columns: ["relationship_status"], + values: [ + { + field: "age", + method: "min" + }, + { + field: "age", + method: "max" + } + ] + } +}); +~~~ + +Чтобы переключить панель во время выполнения, вызовите событие [`show-config-panel`](api/events/show-config-panel-event.md) с помощью метода [`api.exec`](api/internal/exec-method.md) и установите параметр `mode` в `false`. + +Следующий фрагмент кода скрывает панель после инициализации: + +~~~jsx {19-22} +const table = new pivot.Pivot("#root", { + fields, + data, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + } +}); +// скрыть панель конфигурации +table.api.exec("show-config-panel", { + mode: false +}); +~~~ + +### Отключение переключения по умолчанию + +Чтобы полностью заблокировать стандартную кнопку переключения, перехватите событие [`show-config-panel`](api/events/show-config-panel-event.md) с помощью метода [`api.intercept`](api/internal/intercept-method.md) и верните `false`. + +Следующий фрагмент кода отключает кнопку переключения: + +~~~jsx {20-22} +const table = new pivot.Pivot("#root", { + fields, + data, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + } +}); + +table.api.intercept("show-config-panel", () => { + return false; +}); +~~~ + +В качестве альтернативного АПИ используйте метод [`showConfigPanel`](api/methods/showconfigpanel-method.md). + +### Действия с полями на панели + +Панель конфигурации поддерживает следующие операции с полями: + +- [`add-field`](api/events/add-field-event.md) — добавить поле в область +- [`delete-field`](api/events/delete-field-event.md) — удалить поле из области +- [`update-field`](api/events/update-field-event.md) — обновить метод или настройки поля +- [`move-field`](api/events/move-field-event.md) — изменить порядок полей внутри области + +**Связанные примеры**: +- [Pivot 2. Добавление текстовых шаблонов для ячеек таблицы и заголовков](https://snippet.dhtmlx.com/n9ylp6b2) +- [Pivot 2. Пользовательские фиксированные столбцы (произвольное количество)](https://snippet.dhtmlx.com/53erlmgp) +- [Pivot 2. Развёртывание и свёртывание всех строк](https://snippet.dhtmlx.com/i4mi6ejn) +- [Pivot 2. Фиксированные столбцы слева и справа](https://snippet.dhtmlx.com/lahf729o) +- [Pivot 2. Сортировка](https://snippet.dhtmlx.com/j7vtief6) diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/guides/exporting-data.md b/i18n/ru/docusaurus-plugin-content-docs/current/guides/exporting-data.md new file mode 100644 index 0000000..1045c03 --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/guides/exporting-data.md @@ -0,0 +1,45 @@ +--- +sidebar_label: Экспорт данных +title: Экспорт данных +description: В документации библиотеки DHTMLX JavaScript Pivot вы можете изучить, как экспортировать данные. Просматривайте руководства разработчика и справочник АПИ, пробуйте примеры кода и живые демо, а также загрузите бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +--- + +# Экспорт данных {#exporting-data} + +Pivot экспортирует данные таблицы в форматах XLSX или CSV через встроенный виджет Table. Получите экземпляр Table с помощью метода [`getTable`](api/methods/gettable-method.md), затем вызовите событие [`export`](api/table/export.md) через метод [`api.exec`](api/internal/exec-method.md) таблицы. + +Пример ниже получает экземпляр Table и вызывает событие `export` в форматах CSV и XLSX: + +~~~jsx +const widget = new pivot.Pivot("#root", { /* settings */ }); + +widget.getTable().exec("export", { + options: { + format: "csv", + cols: ";" + } +}); + +widget.getTable().exec("export", { + options: { + format: "xlsx", + fileName: "My Report", + sheetName: "Quarter 1" + } +}); +~~~ + +:::tip +Метод [`getTable`](api/methods/gettable-method.md) принимает необязательный булев параметр `wait`. Передайте `true`, чтобы получить промис, который разрешится после того, как АПИ Table станет доступным. Это полезно, когда АПИ Table должен быть готов в процессе инициализации Pivot. +::: + +## Пример {#example} + +Фрагмент ниже выполняет экспорт данных: + + + +**Related articles**: + +- [Форматирование дат](guides/localization.md#date-formatting) +- [`export`](api/table/export.md) diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/guides/initialization.md b/i18n/ru/docusaurus-plugin-content-docs/current/guides/initialization.md new file mode 100644 index 0000000..7116cf3 --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/guides/initialization.md @@ -0,0 +1,86 @@ +--- +sidebar_label: Инициализация +title: Инициализация +description: В документации библиотеки DHTMLX JavaScript Pivot вы можете узнать об инициализации компонента. Изучите руководства разработчика и справочник АПИ, попробуйте примеры кода и живые демо, а также скачайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +--- + +# Инициализация + +В этом руководстве описано, как создать Pivot на странице и расширить приложение возможностями сводной таблицы. Выполните следующие шаги, чтобы получить готовый к использованию компонент: + +1. [Подключите исходные файлы Pivot на странице](#include-source-files). +2. [Создайте контейнер для Pivot](#create-a-container). +3. [Инициализируйте Pivot с помощью конструктора](#initialize-pivot). + +## Подключение исходных файлов {#include-source-files} + +Для работы приложения Pivot на странице необходимы два исходных файла. Инструкции по загрузке пакета см. в разделе [Загрузка пакетов](how-to-start.md#step-1-downloading-and-installing-packages). + +Подключите следующие файлы: + +- *pivot.js* +- *pivot.css* + +Укажите правильные относительные пути к исходным файлам: + +~~~html title="index.html" + + +~~~ + +## Создание контейнера {#create-a-container} + +Pivot отрисовывается внутри HTML-элемента-контейнера. Добавьте контейнер и задайте ему идентификатор, например *"root"*: + +~~~html title="index.html" +

+~~~ + +## Инициализация Pivot {#initialize-pivot} + +Конструктор `pivot.Pivot` принимает два параметра: + +- идентификатор HTML-контейнера +- объект с параметрами конфигурации + +Следующий фрагмент кода создаёт экземпляр Pivot в контейнере *"root"* с начальными полями, данными и структурой: + +~~~jsx +// создание Pivot +const table = new pivot.Pivot("#root", { + // параметры конфигурации + fields, + data, + config: { + rows: ["studio", "genre"], + columns: ["title"], + values: [ + { + field: "score", + method: "max" + } + ] + } +}); +~~~ + +Конструктор возвращает экземпляр Pivot. Вызывайте методы АПИ на возвращённом экземпляре: + +- [`getTable`](api/methods/gettable-method.md) — получить доступ к экземпляру виджета Table +- [`setConfig`](api/methods/setconfig-method.md) — обновить текущую конфигурацию Pivot +- [`setLocale`](api/methods/setlocale-method.md) — применить новую локаль к Pivot +- [`showConfigPanel`](api/methods/showconfigpanel-method.md) — показать или скрыть панель конфигурации + +## Параметры конфигурации {#configuration-properties} + +Конструктор Pivot принимает объект с параметрами конфигурации, управляющими данными, компоновкой и поведением компонента. + +:::info +Полный список параметров конфигурации Pivot см. в разделе [Обзор параметров](api/overview/properties-overview.md). +::: + +## Пример {#example} + +Фрагмент ниже инициализирует Pivot с начальными данными: + + diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/guides/integration-with-angular.md b/i18n/ru/docusaurus-plugin-content-docs/current/guides/integration-with-angular.md new file mode 100644 index 0000000..490d129 --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/guides/integration-with-angular.md @@ -0,0 +1,325 @@ +--- +sidebar_label: Интеграция с Angular +title: Интеграция с Angular +description: Вы можете узнать об интеграции с Angular в документации библиотеки DHTMLX JavaScript Pivot. Изучайте руководства разработчика и справочник АПИ, пробуйте примеры кода и живые демо, а также загрузите бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +--- + +# Интеграция с Angular {#integration-with-angular} + +:::tip +Предполагается знакомство с основными концепциями и паттернами **Angular**. Для повторения см. [**документацию Angular**](https://v17.angular.io/docs). +::: + +DHTMLX Pivot интегрируется с **Angular** как обычный компонент. Для полного рабочего примера см. [**демо Angular Pivot на GitHub**](https://github.com/DHTMLX/angular-pivot-demo). + +## Создание проекта {#create-a-project} + +:::info +Перед началом установите [**Angular CLI**](https://v1.angular.io/cli) и [**Node.js**](https://nodejs.org/en/). +::: + +Следующая команда создаёт новый Angular-проект с именем *my-angular-pivot-app*: + +~~~bash +ng new my-angular-pivot-app +~~~ + +:::note +При запросе Angular CLI отключите Server-Side Rendering (SSR) и Static Site Generation (SSG/Prerendering) — данное руководство предполагает клиентский рендеринг. +::: + +Команда установит все необходимые инструменты. Дополнительные команды не требуются. + +### Установка зависимостей {#install-dependencies} + +Перейдите в директорию нового проекта: + +~~~bash +cd my-angular-pivot-app +~~~ + +Установите зависимости и запустите сервер разработки с помощью менеджера пакетов [**yarn**](https://yarnpkg.com/): + +~~~bash +yarn +yarn start # или: yarn dev +~~~ + +Приложение должно запуститься на локальном порту (например, `http://localhost:3000`). + +## Создание Pivot {#create-pivot} + +Добавьте пакет Pivot в проект, затем оберните Pivot в Angular-компонент. + +### Шаг 1. Установка пакета {#step-1-install-the-package} + +Загрузите [**ознакомительный пакет Pivot**](how-to-start.md#installing-trial-pivot-via-npm-or-yarn) и следуйте инструкциям в README. Ознакомительный пакет Pivot действителен в течение 30 дней. + +### Шаг 2. Создание компонента {#step-2-create-the-component} + +Создайте Angular-компонент, который монтирует Pivot. Добавьте папку *pivot* в *src/app/* и создайте файл *src/app/pivot/pivot.component.ts*. Затем выполните следующие шаги: + +#### Импорт исходных файлов {#import-source-files} + +Откройте *src/app/pivot/pivot.component.ts* и импортируйте пакет Pivot. Путь импорта зависит от редакции пакета: + +- **PRO-версия** (установлена из локальной папки): + +~~~jsx +import { Pivot } from 'dhx-pivot-package'; +~~~ + +- **Ознакомительная версия**: + +~~~jsx +import { Pivot } from '@dhx/trial-pivot'; +~~~ + +В этом руководстве используется ознакомительная версия Pivot. + +#### Настройка контейнера и монтирование Pivot {#set-up-the-container-and-mount-pivot} + +Чтобы отобразить Pivot на странице, определите элемент-контейнер в шаблоне компонента, затем инициализируйте Pivot в хуке `ngOnInit` с помощью конструктора. Уничтожьте Pivot в хуке `ngOnDestroy`. + +Следующий фрагмент кода определяет минимальный Angular-компонент Pivot: + +~~~jsx {1,8,12-13,18-19} title="pivot.component.ts" +import { Pivot } from '@dhx/trial-pivot'; +import { Component, ElementRef, OnInit, ViewChild, OnDestroy, ViewEncapsulation } from '@angular/core'; + +@Component({ + encapsulation: ViewEncapsulation.None, + selector: "pivot", // имя шаблона, используемое в файле "app.component.ts" как + styleUrls: ["./pivot.component.css"], // подключение CSS-файла + template: `
`, +}) + +export class PivotComponent implements OnInit, OnDestroy { + // ссылка на контейнер для Pivot + @ViewChild('container', { static: true }) pivot_container!: ElementRef; + + private _table!: Pivot; + + ngOnInit() { + // инициализация компонента Pivot + this._table = new Pivot(this.pivot_container.nativeElement, {}); + } + + ngOnDestroy(): void { + this._table.destructor(); // уничтожение Pivot при размонтировании + } +} +~~~ + +#### Добавление стилей {#add-styles} + +Чтобы Pivot отображался корректно, создайте файл *src/app/pivot/pivot.component.css* со стилями для страницы и контейнера Pivot: + +~~~css title="pivot.component.css" +/* импорт стилей Pivot */ +@import "@dhx/trial-pivot/dist/pivot.css"; + +/* стили для начальной страницы */ +html, +body { + margin: 0; + padding: 0; + height: 100%; +} + +/* стили для контейнера Pivot */ +.widget { + width: 100%; + height: 100%; +} +~~~ + +#### Загрузка данных {#load-data} + +Чтобы передать данные в Pivot, подготовьте набор данных. Создайте файл *src/app/pivot/data.ts* и экспортируйте данные и метаданные полей: + +~~~jsx title="data.ts" +export function getData() { + const dataset = [ + { + "cogs": 51, + "date": "10/1/2018", + "inventory_margin": 503, + "margin": 71, + "market_size": "Major Market", + "market": "Central", + "marketing": 46, + "product_line": "Leaves", + "product_type": "Herbal Tea", + "product": "Lemon", + "profit": -5, + "sales": 122, + "state": "Colorado", + "expenses": 76, + "type": "Decaf" + }, + { + "cogs": 52, + "date": "10/1/2018", + "inventory_margin": 405, + "margin": 71, + "market_size": "Major Market", + "market": "Central", + "marketing": 17, + "product_line": "Leaves", + "product_type": "Herbal Tea", + "product": "Mint", + "profit": 26, + "sales": 123, + "state": "Colorado", + "expenses": 45, + "type": "Decaf" + }, // другие элементы данных + ]; + + const fields: any = [ + { + "id": "cogs", + "label": "Cogs", + "type": "number" + }, + { + "id": "date", + "label": "Date", + "type": "date" + }, // другие поля + ]; + + return { dataset, fields }; +}; +~~~ + +Откройте *src/app/pivot/pivot.component.ts*, импортируйте `getData` и примените набор данных в `ngOnInit()`: + +~~~jsx {2,18,20-21} title="pivot.component.ts" +import { Pivot } from '@dhx/trial-pivot'; +import { getData } from "./data"; // импорт данных +import { Component, ElementRef, OnInit, ViewChild, OnDestroy, ViewEncapsulation } from '@angular/core'; + +@Component({ + encapsulation: ViewEncapsulation.None, + selector: "pivot", + styleUrls: ["./pivot.component.css"], + template: `
`, +}) + +export class PivotComponent implements OnInit, OnDestroy { + @ViewChild('container', { static: true }) pivot_container!: ElementRef; + + private _table!: Pivot; + + ngOnInit() { + const { dataset, fields } = getData(); // извлечение данных и метаданных полей + this._table = new Pivot(this.pivot_container.nativeElement, { + fields, + data: dataset, + config: { + rows: ["state", "product_type"], + columns: ["product_line", "type"], + values: [ + { + field: "profit", + method: "sum" + }, // другие значения + ] + }, + // другие свойства конфигурации + }); + } + + ngOnDestroy(): void { + this._table.destructor(); + } +} +~~~ + +Компонент готов к использованию. При монтировании Pivot отрисовывается с переданными данными. Полный список свойств конфигурации см. в [документации АПИ Pivot](api/overview/properties-overview.md). + +#### Обработка событий {#handle-events} + +Действия пользователя в Pivot генерируют события, на которые можно подписаться. Полный список событий см. в [обзоре событий](api/overview/events-overview.md). + +Следующий фрагмент кода расширяет `ngOnInit` слушателем события `open-filter`, который выводит в консоль идентификатор поля при открытии фильтра пользователем: + +~~~jsx {18-20} title="pivot.component.ts" +// ... +ngOnInit() { + const { dataset, fields } = getData(); + this._table = new Pivot(this.pivot_container.nativeElement, { + fields, + data: dataset, + config: { + rows: ["state", "product_type"], + columns: ["product_line", "type"], + values: [ + { + field: "profit", + method: "sum" + }, // другие значения + ] + } + }); + + this._table.api.on("open-filter", (ev) => { + console.log("The field id for which the filter is activated:", ev.id); + }); +} + +ngOnDestroy(): void { + this._table.destructor(); +} +~~~ + +### Шаг 3. Добавление Pivot в приложение {#step-3-add-pivot-to-the-app} + +Чтобы встроить `PivotComponent` в приложение, откройте *src/app/app.component.ts* и замените код по умолчанию следующим: + +~~~jsx {5} title="app.component.ts" +import { Component } from "@angular/core"; + +@Component({ + selector: "app-root", + template: `` // шаблон, созданный в файле "pivot.component.ts" +}) +export class AppComponent { + name = ""; +} +~~~ + +Затем создайте файл *src/app/app.module.ts* и зарегистрируйте `PivotComponent`: + +~~~jsx {4-5,8} title="app.module.ts" +import { NgModule } from "@angular/core"; +import { BrowserModule } from "@angular/platform-browser"; + +import { AppComponent } from "./app.component"; +import { PivotComponent } from "./pivot/pivot.component"; + +@NgModule({ + declarations: [AppComponent, PivotComponent], + imports: [BrowserModule], + bootstrap: [AppComponent] +}) +export class AppModule {} +~~~ + +Наконец, откройте *src/main.ts* и замените его содержимое следующим кодом начальной загрузки: + +~~~jsx title="main.ts" +import { platformBrowserDynamic } from "@angular/platform-browser-dynamic"; +import { AppModule } from "./app/app.module"; +platformBrowserDynamic() + .bootstrapModule(AppModule) + .catch((err) => console.error(err)); +~~~ + +Запустите приложение, чтобы увидеть отрисовку данных в Pivot на странице. + +![Инициализация Pivot](../assets/trial_pivot.png) + +Pivot теперь интегрирован с Angular. Настройте конфигурацию в соответствии с требованиями проекта. Итоговый пример см. в [**angular-pivot-demo на GitHub**](https://github.com/DHTMLX/angular-pivot-demo). diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/guides/integration-with-react.md b/i18n/ru/docusaurus-plugin-content-docs/current/guides/integration-with-react.md new file mode 100644 index 0000000..0e25d92 --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/guides/integration-with-react.md @@ -0,0 +1,289 @@ +--- +sidebar_label: Интеграция с React +title: Интеграция с React +description: Вы можете узнать об интеграции с React в документации библиотеки DHTMLX JavaScript Pivot. Изучайте руководства разработчика и справочник АПИ, пробуйте примеры кода и живые демо, а также загрузите бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +--- + +# Интеграция с React {#integration-with-react} + +:::tip +Предполагается знакомство с базовыми концепциями и паттернами [**React**](https://react.dev). Для повторения см. [**документацию React**](https://react.dev/learn). +::: + +DHTMLX Pivot интегрируется с **React** как обычный компонент. Для полного рабочего примера см. [**демо React Pivot на GitHub**](https://github.com/DHTMLX/react-pivot-demo). + +## Создание проекта {#create-a-project} + +:::info +Перед началом работы установите [**Node.js**](https://nodejs.org/en/). [**Vite**](https://vite.dev/) опционален. +::: + +Создайте базовый проект **React** (или проект на основе Vite) с именем *my-react-pivot-app*. + +Следующая команда создаёт проект Create React App: + +~~~bash +npx create-react-app my-react-pivot-app +~~~ + +### Установка зависимостей {#install-dependencies} + +Перейдите в директорию нового проекта: + +~~~bash +cd my-react-pivot-app +~~~ + +Установите зависимости и запустите dev-сервер с помощью вашего пакетного менеджера: + +- с [**yarn**](https://yarnpkg.com/): + +~~~bash +yarn +yarn start # или: yarn dev +~~~ + +- с [**npm**](https://www.npmjs.com/): + +~~~bash +npm install +npm run dev +~~~ + +Приложение должно запуститься на локальном порту (например, `http://localhost:3000`). + +## Создание Pivot {#create-pivot} + +Добавьте пакет Pivot в проект, затем оберните Pivot в React-компонент. + +### Шаг 1. Установка пакета {#step-1-install-the-package} + +Загрузите [**ознакомительный пакет Pivot**](how-to-start.md#installing-trial-pivot-via-npm-or-yarn) и следуйте инструкциям в README. Ознакомительный пакет Pivot действителен в течение 30 дней. + +### Шаг 2. Создание компонента {#step-2-create-the-component} + +Создайте React-компонент, который монтирует Pivot. Добавьте новый файл *src/Pivot.jsx*. + +#### Импорт исходных файлов {#import-source-files} + +Откройте *src/Pivot.jsx* и импортируйте исходные файлы Pivot. Пути импорта зависят от редакции пакета: + +- **PRO-версия** (установлена из локальной папки): + +~~~jsx title="Pivot.jsx" +import { Pivot } from 'dhx-pivot-package'; +import 'dhx-pivot-package/dist/pivot.css'; +~~~ + +Если пакет поставляется с минифицированными ресурсами, импортируйте *pivot.min.css* вместо *pivot.css*. + +- **Ознакомительная версия**: + +~~~jsx title="Pivot.jsx" +import { Pivot } from '@dhx/trial-pivot'; +import "@dhx/trial-pivot/dist/pivot.css"; +~~~ + +В этом руководстве используется ознакомительная версия Pivot. + +#### Настройка контейнера и монтирование Pivot {#set-up-the-container-and-mount-pivot} + +Для отображения Pivot на странице создайте контейнер `div`, затем инициализируйте Pivot в хуке `useEffect` с помощью конструктора. + +Следующий фрагмент кода определяет минимальный React-компонент Pivot: + +~~~jsx {2,6,9-10} title="Pivot.jsx" +import { useEffect, useRef } from "react"; +import { Pivot } from "@dhx/trial-pivot"; +import "@dhx/trial-pivot/dist/pivot.css"; // подключение стилей Pivot + +export default function PivotComponent(props) { + let container = useRef(); // реф контейнера для Pivot + + useEffect(() => { + // инициализация компонента Pivot + const table = new Pivot(container.current, {}); + + return () => { + table.destructor(); // уничтожение Pivot при размонтировании + }; + }, []); + + return
; +} +~~~ + +#### Добавление стилей {#add-styles} + +Для корректного отображения Pivot добавьте следующие стили в основной CSS-файл проекта: + +~~~css title="index.css" +/* стили для начальной страницы */ +html, +body, +#root { + height: 100%; + padding: 0; + margin: 0; +} + +/* стили для контейнера Pivot */ +.widget { + height: 100%; + width: 100%; +} +~~~ + +#### Загрузка данных {#load-data} + +Для передачи данных в Pivot подготовьте набор данных. Создайте *src/data.js* и экспортируйте данные и метаданные полей: + +~~~jsx title="data.js" +export function getData() { + const dataset = [ + { + "cogs": 51, + "date": "10/1/2018", + "inventory_margin": 503, + "margin": 71, + "market_size": "Major Market", + "market": "Central", + "marketing": 46, + "product_line": "Leaves", + "product_type": "Herbal Tea", + "product": "Lemon", + "profit": -5, + "sales": 122, + "state": "Colorado", + "expenses": 76, + "type": "Decaf" + }, + { + "cogs": 52, + "date": "10/1/2018", + "inventory_margin": 405, + "margin": 71, + "market_size": "Major Market", + "market": "Central", + "marketing": 17, + "product_line": "Leaves", + "product_type": "Herbal Tea", + "product": "Mint", + "profit": 26, + "sales": 123, + "state": "Colorado", + "expenses": 45, + "type": "Decaf" + }, // другие элементы данных + ]; + + const fields = [ + { + "id": "cogs", + "label": "Cogs", + "type": "number" + }, + { + "id": "date", + "label": "Date", + "type": "date" + }, // другие поля + ]; + + return { dataset, fields }; +}; +~~~ + +Откройте *src/App.js*, импортируйте данные и передайте их в компонент `` как пропсы: + +~~~jsx {2,5-6} title="App.js" +import Pivot from "./Pivot"; +import { getData } from "./data"; + +function App() { + const { fields, dataset } = getData(); + return ; +} + +export default App; +~~~ + +Откройте *src/Pivot.jsx*, деструктурируйте пропсы и примените их к объекту конфигурации Pivot: + +~~~jsx {5,10-11} title="Pivot.jsx" +import { useEffect, useRef } from "react"; +import { Pivot } from "@dhx/trial-pivot"; +import "@dhx/trial-pivot/dist/pivot.css"; + +export default function PivotComponent({ fields, dataset }) { + let container = useRef(); + + useEffect(() => { + const table = new Pivot(container.current, { + fields, + data: dataset, + config: { + rows: ["state", "product_type"], + columns: ["product_line", "type"], + values: [ + { + field: "profit", + method: "sum" + }, // другие значения + ] + }, + // другие свойства конфигурации + }); + + return () => { + table.destructor(); + } + }, []); + + return
; +} +~~~ + +Компонент готов к использованию. При монтировании Pivot отображает переданные данные. Полный список свойств конфигурации см. в [документации АПИ Pivot](api/overview/properties-overview.md). + +#### Обработка событий {#handle-events} + +Действия пользователя в Pivot генерируют события, на которые можно подписаться. Полный список событий см. в [обзоре событий](api/overview/events-overview.md). + +Следующий фрагмент кода расширяет `useEffect` обработчиком события `open-filter`, который записывает в лог идентификатор поля при открытии фильтра пользователем: + +~~~jsx {19-21} title="Pivot.jsx" +// ... +useEffect(() => { + const table = new Pivot(container.current, { + fields, + data: dataset, + config: { + rows: ["state", "product_type"], + columns: ["product_line", "type"], + values: [ + { + field: "profit", + method: "sum" + }, // другие значения + ] + }, + // другие свойства конфигурации + }); + + table.api.on("open-filter", (ev) => { + console.log("The field id for which the filter is activated:", ev.id); + }); + + return () => { + table.destructor(); + } +}, []); +// ... +~~~ + +Запустите приложение, чтобы увидеть, как Pivot отображает данные на странице. + +![Инициализация Pivot](../assets/trial_pivot.png) + +Pivot теперь интегрирован с React. Настройте конфигурацию под требования проекта. Готовый пример см. в [**react-pivot-demo на GitHub**](https://github.com/DHTMLX/react-pivot-demo). diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/guides/integration-with-svelte.md b/i18n/ru/docusaurus-plugin-content-docs/current/guides/integration-with-svelte.md new file mode 100644 index 0000000..0207960 --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/guides/integration-with-svelte.md @@ -0,0 +1,302 @@ +--- +sidebar_label: Интеграция со Svelte +title: Интеграция со Svelte +description: Вы можете узнать об интеграции со Svelte в документации библиотеки DHTMLX JavaScript Pivot. Изучите руководства разработчика и справочник АПИ, ознакомьтесь с примерами кода и живыми демо, а также загрузите бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +--- + +# Интеграция со Svelte {#integration-with-svelte} + +:::tip +Предполагается знакомство с основными концепциями и паттернами **Svelte**. Для повторения см. [**документацию Svelte**](https://svelte.dev/). +::: + +DHTMLX Pivot интегрируется со **Svelte** как обычный компонент. Для полного рабочего примера см. [**демо Svelte Pivot на GitHub**](https://github.com/DHTMLX/svelte-pivot-demo). + +## Создание проекта {#create-a-project} + +:::info +Перед началом установите [**Node.js**](https://nodejs.org/en/). [**Vite**](https://vite.dev/) — опционально. +::: + +Следующая команда запускает инструмент создания проекта Vite и позволяет выбрать шаблон Svelte: + +~~~bash +npm create vite@latest +~~~ + +Назовите проект *my-svelte-pivot-app*. + +### Установка зависимостей {#install-dependencies} + +Перейдите в директорию нового проекта: + +~~~bash +cd my-svelte-pivot-app +~~~ + +Установите зависимости и запустите сервер разработки с помощью менеджера пакетов: + +- с [**yarn**](https://yarnpkg.com/): + +~~~bash +yarn +yarn start # или: yarn dev +~~~ + +- с [**npm**](https://www.npmjs.com/): + +~~~bash +npm install +npm run dev +~~~ + +Приложение должно запуститься на локальном порту (например, `http://localhost:3000`). + +## Создание Pivot {#create-pivot} + +Добавьте пакет Pivot в проект, затем оберните Pivot в компонент Svelte. + +### Шаг 1. Установка пакета {#step-1-install-the-package} + +Загрузите [**ознакомительный пакет Pivot**](how-to-start.md#installing-trial-pivot-via-npm-or-yarn) и следуйте инструкциям в README. Ознакомительный пакет Pivot действителен в течение 30 дней. + +### Шаг 2. Создание компонента {#step-2-create-the-component} + +Создайте компонент Svelte, который монтирует Pivot. Добавьте новый файл *src/Pivot.svelte*. + +#### Импорт исходных файлов {#import-source-files} + +Откройте *src/Pivot.svelte* и импортируйте исходные файлы Pivot. Пути импорта зависят от редакции пакета: + +- **PRO-версия** (установлена из локальной папки): + +~~~html title="Pivot.svelte" + +~~~ + +Если пакет поставляется с минифицированными ресурсами, импортируйте *pivot.min.css* вместо *pivot.css*. + +- **Ознакомительная версия**: + +~~~html title="Pivot.svelte" + +~~~ + +В этом руководстве используется ознакомительная версия Pivot. + +#### Настройка контейнера и монтирование Pivot {#set-up-the-container-and-mount-pivot} + +Чтобы отобразить Pivot на странице, добавьте контейнер `div`, затем инициализируйте Pivot в хуке жизненного цикла `onMount` с помощью конструктора. Уничтожьте Pivot в хуке `onDestroy`. + +Следующий фрагмент кода определяет минимальный компонент Svelte для Pivot: + +~~~html {3,6,10-11,19} title="Pivot.svelte" + + +
+~~~ + +#### Добавление стилей {#add-styles} + +Чтобы Pivot отображался корректно, добавьте следующие стили в основной CSS-файл проекта: + +~~~css title="main.css" +/* стили для начальной страницы */ +html, +body, +#app { /* используйте корневой контейнер #app */ + height: 100%; + padding: 0; + margin: 0; +} + +/* стили для контейнера Pivot */ +.widget { + height: 100%; + width: 100%; +} +~~~ + +#### Загрузка данных {#load-data} + +Чтобы передать данные в Pivot, подготовьте набор данных. Создайте *src/data.js* и экспортируйте данные и метаданные полей: + +~~~jsx title="data.js" +export function getData() { + const dataset = [ + { + "cogs": 51, + "date": "10/1/2018", + "inventory_margin": 503, + "margin": 71, + "market_size": "Major Market", + "market": "Central", + "marketing": 46, + "product_line": "Leaves", + "product_type": "Herbal Tea", + "product": "Lemon", + "profit": -5, + "sales": 122, + "state": "Colorado", + "expenses": 76, + "type": "Decaf" + }, + { + "cogs": 52, + "date": "10/1/2018", + "inventory_margin": 405, + "margin": 71, + "market_size": "Major Market", + "market": "Central", + "marketing": 17, + "product_line": "Leaves", + "product_type": "Herbal Tea", + "product": "Mint", + "profit": 26, + "sales": 123, + "state": "Colorado", + "expenses": 45, + "type": "Decaf" + }, // другие элементы данных + ]; + + const fields = [ + { + "id": "cogs", + "label": "Cogs", + "type": "number" + }, + { + "id": "date", + "label": "Date", + "type": "date" + }, // другие поля + ]; + + return { dataset, fields }; +}; +~~~ + +Откройте *src/App.svelte*, импортируйте данные и передайте их новому компоненту `` как пропсы: + +~~~html {3,5,8} title="App.svelte" + + + +~~~ + +Откройте *src/Pivot.svelte*, объявите входящие пропсы с помощью `export let` и примените их к объекту конфигурации Pivot: + +~~~html {6-7,14-15} title="Pivot.svelte" + + +
+~~~ + +Компонент готов к использованию. При монтировании Pivot отображает переданные данные. Полный список свойств конфигурации см. в [документации АПИ Pivot](api/overview/properties-overview.md). + +#### Обработка событий {#handle-events} + +Действия пользователя в Pivot вызывают события, на которые можно подписаться. Полный список событий см. в [обзоре событий](api/overview/events-overview.md). + +Следующий фрагмент кода расширяет `onMount` обработчиком события `open-filter`, который записывает в лог идентификатор поля при открытии пользователем фильтра: + +~~~html {22-24} title="Pivot.svelte" + + +// ... +~~~ + +Запустите приложение, чтобы увидеть, как Pivot отображает данные на странице. + +![Инициализация Pivot](../assets/trial_pivot.png) + +Pivot теперь интегрирован со Svelte. Настройте конфигурацию в соответствии с требованиями проекта. Финальный пример см. на [**svelte-pivot-demo на GitHub**](https://github.com/DHTMLX/svelte-pivot-demo). diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/guides/integration-with-vue.md b/i18n/ru/docusaurus-plugin-content-docs/current/guides/integration-with-vue.md new file mode 100644 index 0000000..720b62b --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/guides/integration-with-vue.md @@ -0,0 +1,312 @@ +--- +sidebar_label: Интеграция с Vue +title: Интеграция с Vue +description: Узнайте об интеграции с Vue в документации библиотеки DHTMLX JavaScript Pivot. Изучайте руководства разработчика и справочник АПИ, пробуйте примеры кода и живые демо, а также скачайте бесплатную 30-дневную пробную версию DHTMLX Pivot. +--- + +# Интеграция с Vue {#integration-with-vue} + +:::tip +Предполагается знакомство с базовыми концепциями и паттернами [**Vue**](https://vuejs.org/). Для повторения см. [**документацию Vue 3**](https://vuejs.org/guide/introduction.html#getting-started). +::: + +DHTMLX Pivot интегрируется с **Vue** как обычный компонент. Полный рабочий пример см. в [**демо Vue Pivot на GitHub**](https://github.com/DHTMLX/vue-pivot-demo). + +## Создание проекта {#create-a-project} + +:::info +Перед началом работы установите [**Node.js**](https://nodejs.org/en/). +::: + +Следующая команда запускает официальный инструмент создания проектов **Vue**: + +~~~bash +npm create vue@latest +~~~ + +Команда устанавливает и запускает `create-vue`. Подробнее см. [Быстрый старт Vue.js](https://vuejs.org/guide/quick-start.html#creating-a-vue-application). + +Назовите проект *my-vue-pivot-app*. + +### Установка зависимостей {#install-dependencies} + +Перейдите в директорию нового проекта: + +~~~bash +cd my-vue-pivot-app +~~~ + +Установите зависимости и запустите сервер разработки с помощью вашего пакетного менеджера: + +- с [**yarn**](https://yarnpkg.com/): + +~~~bash +yarn +yarn start # или: yarn dev +~~~ + +- с [**npm**](https://www.npmjs.com/): + +~~~bash +npm install +npm run dev +~~~ + +Приложение должно запуститься на локальном порту (например, `http://localhost:3000`). + +## Создание Pivot {#create-pivot} + +Добавьте пакет Pivot в проект, затем оберните Pivot в компонент Vue. + +### Шаг 1. Установка пакета {#step-1-install-the-package} + +Скачайте [**пробный пакет Pivot**](how-to-start.md#installing-trial-pivot-via-npm-or-yarn) и следуйте инструкциям в README. Пробный пакет Pivot действителен в течение 30 дней. + +### Шаг 2. Создание компонента {#step-2-create-the-component} + +Создайте компонент Vue, который монтирует Pivot. Добавьте новый файл *src/components/Pivot.vue*. + +#### Импорт исходных файлов {#import-source-files} + +Откройте *src/components/Pivot.vue* и импортируйте исходные файлы Pivot. Пути импорта зависят от редакции пакета: + +- **PRO версия** (установленная из локальной папки): + +~~~html title="Pivot.vue" + +~~~ + +Если пакет поставляется с минифицированными ресурсами, импортируйте *pivot.min.css* вместо *pivot.css*. + +- **Пробная версия**: + +~~~html title="Pivot.vue" + +~~~ + +В этом руководстве используется пробная версия Pivot. + +#### Настройка контейнера и монтирование Pivot {#set-up-the-container-and-mount-pivot} + +Чтобы отобразить Pivot на странице, добавьте контейнер `div`, затем инициализируйте Pivot в хуке `mounted` с помощью конструктора. Уничтожьте Pivot в хуке `unmounted`. + +Следующий фрагмент кода определяет минимальный компонент Pivot для Vue: + +~~~html {2,7-8,18} title="Pivot.vue" + + + +~~~ + +#### Добавление стилей {#add-styles} + +Для корректного отображения Pivot добавьте следующие стили в главный CSS-файл проекта: + +~~~css title="style.css" +/* стили для начальной страницы */ +html, +body, +#app { /* используем корневой контейнер #app */ + height: 100%; + padding: 0; + margin: 0; +} + +/* стили для контейнера Pivot */ +.widget { + width: 100%; + height: 100%; +} +~~~ + +#### Загрузка данных {#load-data} + +Чтобы передать данные в Pivot, подготовьте набор данных. Создайте *src/data.js* и экспортируйте данные и метаданные полей: + +~~~jsx title="data.js" +export function getData() { + const dataset = [ + { + "cogs": 51, + "date": "10/1/2018", + "inventory_margin": 503, + "margin": 71, + "market_size": "Major Market", + "market": "Central", + "marketing": 46, + "product_line": "Leaves", + "product_type": "Herbal Tea", + "product": "Lemon", + "profit": -5, + "sales": 122, + "state": "Colorado", + "expenses": 76, + "type": "Decaf" + }, + { + "cogs": 52, + "date": "10/1/2018", + "inventory_margin": 405, + "margin": 71, + "market_size": "Major Market", + "market": "Central", + "marketing": 17, + "product_line": "Leaves", + "product_type": "Herbal Tea", + "product": "Mint", + "profit": 26, + "sales": 123, + "state": "Colorado", + "expenses": 45, + "type": "Decaf" + }, // другие элементы данных + ]; + + const fields = [ + { + "id": "cogs", + "label": "Cogs", + "type": "number" + }, + { + "id": "date", + "label": "Date", + "type": "date" + }, // другие поля + ]; + + return { dataset, fields }; +}; +~~~ + +Откройте *src/App.vue*, импортируйте данные и передайте их через опцию `data()`. Затем передайте значения новому компоненту `` в качестве пропсов: + +~~~html {3,7-13,18} title="App.vue" + + + +~~~ + +Откройте *src/components/Pivot.vue*, объявите входящие пропсы и примените их к объекту конфигурации Pivot: + +~~~html {6,10-11} title="Pivot.vue" + + + +~~~ + +Компонент готов к использованию. При монтировании Pivot отображает данные. Полный список свойств конфигурации см. в [документации АПИ Pivot](api/overview/properties-overview.md). + +#### Обработка событий {#handle-events} + +Действия пользователя в Pivot генерируют события, на которые можно подписаться. Полный список событий см. в [Обзоре событий](api/overview/events-overview.md). + +Следующий фрагмент кода расширяет `mounted` обработчиком события `open-filter`, который выводит в консоль идентификатор поля при открытии фильтра пользователем: + +~~~html {22-24} title="Pivot.vue" + + +// ... +~~~ + +Запустите приложение, чтобы увидеть, как Pivot отображает данные на странице. + +![Инициализация Pivot](../assets/trial_pivot.png) + +Pivot теперь интегрирован с Vue. Настройте конфигурацию в соответствии с требованиями проекта. Финальный пример см. в [**vue-pivot-demo на GitHub**](https://github.com/DHTMLX/vue-pivot-demo). diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/guides/loading-data.md b/i18n/ru/docusaurus-plugin-content-docs/current/guides/loading-data.md new file mode 100644 index 0000000..b1e3a95 --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/guides/loading-data.md @@ -0,0 +1,279 @@ +--- +sidebar_label: Загрузка данных +title: Загрузка данных +description: Вы можете узнать, как загружать данные, в документации библиотеки DHTMLX JavaScript Pivot. Изучайте руководства для разработчиков и справочник АПИ, пробуйте примеры кода и живые демо, а также скачайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +--- + +# Загрузка данных + +Pivot принимает данные в формате JSON через свойство [`data`](api/config/data-property.md). Также Pivot принимает данные в формате CSV после их конвертации в JSON. + +## Подготовка данных для загрузки {#prepare-data-for-loading} + +Свойство [`data`](api/config/data-property.md) принимает массив объектов, где каждый объект представляет одну строку данных. Ключи каждого объекта определяют измерения и значения, используемые в таблице Pivot. + +Следующий фрагмент кода определяет пример массива `data`: + +~~~jsx +const data = [ + { + name: "Argentina", + year: 2015, + continent: "South America", + form: "Republic", + gdp: 181.357, + oil: 1.545, + balance: 4.699, + when: new Date("4/21/2015") + }, + { + name: "Argentina", + year: 2017, + continent: "South America", + form: "Republic", + gdp: 212.507, + oil: 1.732, + balance: 7.167, + when: new Date("1/15/2017") + }, + { + name: "Argentina", + year: 2014, + continent: "South America", + form: "Republic", + gdp: 260.071, + oil: 2.845, + balance: 6.728, + when: new Date("6/16/2014") + }, + { + name: "Argentina", + year: 2014, + continent: "South America", + form: "Republic", + gdp: 324.405, + oil: 4.333, + balance: 5.99, + when: new Date("2/20/2014") + }, + { + name: "Argentina", + year: 2014, + continent: "South America", + form: "Republic", + gdp: 305.763, + oil: 2.626, + balance: 7.544, + when: new Date("8/17/2014") + }, + // другие данные +]; +~~~ + +:::info +Информацию об определении полей и структуры Pivot см. в разделе [Работа с данными](guides/working-with-data.md). +::: + +## Загрузка данных из файла {#load-data-from-a-file} + +Pivot загружает данные JSON из внешнего файла после инициализации. Подготовьте исходный файл с данными, полями и конфигурацией. + +Следующий фрагмент кода определяет `data`, `fields` и метод доступа `getData()` в отдельном файле: + +~~~jsx +function getData() { + return { + data, + config: { + rows: ["continent", "name"], + columns: ["year"], + values: [ + "count(oil)", + { field: "oil", method: "sum" }, + { field: "gdp", method: "sum" } + ], + filters: { + genre: { + contains: "D", + includes: ["Drama"], + } + } + }, + fields + }; +} +const fields = [ + { id: "year", label: "Year", type: "number" }, + { id: "continent", label: "Continent", type: "text" }, + { id: "form", label: "Form", type: "text" }, + { id: "oil", label: "Oil", type: "number" }, + { id: "balance", label: "Balance", type: "number" } +]; + +const data = [ + { + name: "Argentina", + year: 2015, + continent: "South America", + form: "Republic", + gdp: 181.357, + oil: 1.545, + balance: 4.699, + when: new Date("4/21/2015") + }, + // другие данные +]; +~~~ + +Добавьте путь к исходному файлу данных в разметку страницы: + +~~~html title="index.html" + + + + +~~~ + +Следующий фрагмент кода создаёт Pivot и загружает данные из подготовленного файла: + +~~~jsx +const { data, config, fields } = getData(); +const table = new pivot.Pivot("#root", { data, config, fields }); +~~~ + +## Загрузка данных с сервера {#load-data-from-a-server} + +Чтобы загрузить данные с серверного эндпоинта, отправьте запрос с помощью нативного метода `fetch` (или любого аналога), а затем передайте ответ в [`setConfig`](api/methods/setconfig-method.md), который обновляет конфигурацию Pivot и сохраняет ранее установленные параметры. + +Следующий фрагмент кода инициализирует Pivot с пустыми данными, загружает данные и поля с сервера, а затем применяет их с помощью `setConfig`: + +~~~jsx +const table = new pivot.Pivot("#root", { fields: [], data: [] }); +const server = "https://some-backend-url"; + +Promise.all([ + fetch(server + "/data").then((res) => res.json()), + fetch(server + "/fields").then((res) => res.json()) +]).then(([data, fields]) => { + table.setConfig({ data, fields }); +}); +~~~ + +Дополнительную информацию см. в следующем разделе: [Работа с сервером](/guides/working-with-server) + +## Загрузка данных CSV {#load-csv-data} + +Pivot принимает данные CSV после их конвертации в JSON с помощью внешней библиотеки JS для парсинга. Сконвертированные данные ведут себя так же, как и нативный JSON. + +В примере ниже используется внешняя библиотека [PapaParse](https://cdnjs.cloudflare.com/ajax/libs/PapaParse/5.4.1/papaparse.min.js) для загрузки и конвертации данных по нажатию кнопки. Вспомогательная функция `convert()` принимает следующие параметры: + +- `data` — строка с данными CSV +- `headers` — массив названий полей CSV +- `meta` — объект, сопоставляющий названия полей с типами данных + +Следующий фрагмент кода создаёт Pivot, определяет вспомогательную функцию `convert()` и применяет спарсенные данные CSV через [`setConfig`](api/methods/setconfig-method.md) по нажатию кнопки: + +~~~jsx +const table = new pivot.Pivot("#root", { + fields, + data: dataset, + config: { + rows: [ + "studio", + "genre" + ], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + } +}); + +function convert(data, headers, meta) { + const header = headers.join(",") + "\n"; + const processedData = header + data; + + return Papa.parse(processedData, { + header: true, + dynamicTyping: true, + transform: (v, f) => { + return meta && meta[f] === "date" ? new Date(v) : v; + } + }); +} + +function fromCSV() { + const fields = [ + { id: "name", label: "Name", type: "text" }, + { id: "continent", label: "Continent", type: "text" }, + { id: "form", label: "Form", type: "text" }, + { id: "gdp", label: "GDP", type: "number" }, + { id: "oil", label: "Oil", type: "number" }, + { id: "balance", label: "Balance", type: "number" }, + { id: "year", label: "Year", type: "number" }, + { id: "when", label: "When", type: "date" } + ]; + + const config = { + rows: ["continent", "name"], + columns: ["year"], + values: [ + "count(oil)", + { field: "oil", method: "sum" }, + { field: "gdp", method: "sum" } + ] + }; + + const headers = [ + "name", + "year", + "continent", + "form", + "gdp", + "oil", + "balance", + "when" + ]; + + // явно помечаем поля с датами для корректной конвертации + const meta = { when: "date" }; + + const dataURL = "https://some-backend-url"; + fetch(dataURL) + .then(response => response.text()) + .then(text => convert(text, headers, meta)) + .then(data => { + table.setConfig({ + data: data.data, + fields, + config + }); + }); +} + +const importButton = document.createElement("button"); +importButton.addEventListener("click", fromCSV); +importButton.textContent = "Import"; + +document.body.appendChild(importButton); +~~~ + +## Пример {#example} + +Фрагмент ниже загружает данные JSON и CSV: + + + +**Связанные примеры**: +- [Pivot 2. Формат даты](https://snippet.dhtmlx.com/shn1l794) +- [Pivot 2. Разные наборы данных](https://snippet.dhtmlx.com/6xtqge4i) +- [Pivot 2. Большой набор данных](https://snippet.dhtmlx.com/e6qwqrys) + +**Связанные статьи**: [Форматирование дат](guides/localization.md#date-formatting) diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/guides/localization.md b/i18n/ru/docusaurus-plugin-content-docs/current/guides/localization.md new file mode 100644 index 0000000..76f85ed --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/guides/localization.md @@ -0,0 +1,293 @@ +--- +sidebar_label: Локализация +title: Локализация +description: Вы можете узнать о локализации в документации библиотеки DHTMLX JavaScript Pivot. Изучите руководства разработчика и справочник АПИ, попробуйте примеры кода и живые демо, а также загрузите бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +--- + +# Локализация + +Pivot позволяет локализовать каждую метку интерфейса. Создайте новую локаль или измените встроенную, затем примените локаль к Pivot через свойство [`locale`](api/config/locale-property.md) или метод [`setLocale`](api/methods/setlocale-method.md). + +## Локаль по умолчанию {#default-locale} + +По умолчанию Pivot использует английскую локаль. Следующий фрагмент кода показывает структуру встроенной локали `en`: + +~~~jsx +const en = { + // pivot + pivot: { + sum: "Sum", + min: "Min", + max: "Max", + count: "Count", + counta: "CountA", + countunique: "CountUnique", + average: "Average", + median: "Median", + product: "Product", + stdev: "StDev", + stdevp: "StDevP", + var: "Var", + varp: "VarP", + "Raw date": "Raw date", + "Raw number": "Raw number", + "Raw text": "Raw text", + Year: "Year", + Month: "Month", + Day: "Day", + Hour: "Hour", + Minute: "Minute", + Total: "Total", + Values: "Values", + Rows: "Rows", + Columns: "Columns", + "Click on the plus icon(s) to add data": + "Click on the plus icon(s) to add data", + 'Click on "Show settings" to see the available configuration options': + 'Click on "Show settings" to see the available configuration options', + "Show settings": "Show settings", + "Hide settings": "Hide settings" + }, + + // query + query: { + "Add filter": "Add filter", + "Add Filter": "Add Filter", + "Add Group": "Add Group", + Edit: "Edit", + Delete: "Delete", + + "Select all": "Select all", + "Unselect all": "Unselect all", + + Cancel: "Cancel", + Apply: "Apply", + + and: "and", + or: "or", + in: "in", + + equal: "equal", + "not equal": "not equal", + contains: "contains", + "not contains": "not contains", + "begins with": "begins with", + "not begins with": "not begins with", + "ends with": "ends with", + "not ends with": "not ends with", + + greater: "greater", + "greater or equal": "greater or equal", + less: "less", + "less or equal": "less or equal", + between: "between", + "not between": "not between" + }, + + // calendar + calendar: { + monthFull: [ + "January", + "February", + "March", + "April", + "May", + "June", + "July", + "August", + "September", + "October", + "November", + "December", + ], + monthShort: [ + "Jan", + "Feb", + "Mar", + "Apr", + "May", + "Jun", + "Jul", + "Aug", + "Sep", + "Oct", + "Nov", + "Dec", + ], + + dayFull: [ + "Sunday", + "Monday", + "Tuesday", + "Wednesday", + "Thursday", + "Friday", + "Saturday", + ], + + dayShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], + hours: "Hours", + minutes: "Minutes", + done: "Done", + clear: "Clear", + today: "Today", + am: ["am", "AM"], + pm: ["pm", "PM"], + + weekStart: 7, + clockFormat: 24, + }, + + // core + core: { + ok: "OK", + cancel: "Cancel", + select: "Select", + "No data": "No data" + }, + + // formats + formats: { + dateFormat: "%d.%m.%Y", + timeFormat: "%H:%i" + }, + + lang: "en-US", +}; +~~~ + +## Применение локали {#apply-a-locale} + +Pivot предоставляет три встроенные локали через объект `pivot.locales`: `en`, `de` и `cn`. Передайте встроенную локаль в свойство [`locale`](api/config/locale-property.md) при инициализации. + +Следующий фрагмент кода инициализирует Pivot с немецкой локалью: + +~~~jsx +new pivot.Pivot("#root", { + // other properties + locale: pivot.locales.de, +}); +~~~ + +Чтобы применить пользовательскую локаль: + +- создайте объект локали (или измените встроенный) и задайте переводы для всех текстовых меток (на любом языке) +- примените локаль к Pivot через свойство [`locale`](api/config/locale-property.md) или метод [`setLocale`](api/methods/setlocale-method.md) + +Следующий фрагмент кода создаёт Pivot, а затем применяет пользовательскую корейскую локаль во время выполнения с помощью `setLocale`: + +~~~jsx +// create Pivot +const widget = new pivot.Pivot("#root", { + data, + // other configuration properties +}); + +const ko = { /* object with locale */ }; +widget.setLocale(ko); +~~~ + +:::tip +Вызовите [`setLocale`](api/methods/setlocale-method.md) без аргументов (или с `null`), чтобы сбросить Pivot к локали по умолчанию (английской). +::: + +## Форматирование дат {#date-formatting} + +Pivot принимает даты в виде объектов `Date`. Перед передачей данных в Pivot преобразуйте строковые значения в `Date`. Значение `dateFormat` по умолчанию — `"%d.%m.%Y"`, оно берётся из текущей локали. + +Чтобы изменить формат для всех полей с датами, задайте новое значение для `dateFormat` в объекте `formats` свойства [`locale`](api/config/locale-property.md). + +Следующий фрагмент кода преобразует строковые даты в объекты `Date`, затем инициализирует Pivot с пользовательским `dateFormat` и обновляет формат во время выполнения через `setConfig`: + +~~~jsx {17} +function setFormat(value) { + table.setConfig({ locale: { formats: { dateFormat: value } } }); +} + +// convert date strings to Date objects +const dateFields = fields.filter((f) => f.type == "date"); +if (dateFields.length) { + dataset.forEach((item) => { + dateFields.forEach((f) => { + const v = item[f.id]; + if (typeof v == "string") item[f.id] = new Date(v); + }); + }); +} + +const table = new pivot.Pivot("#root", { + locale: { formats: { dateFormat: "%d %M %Y %H:%i" } }, + fields, + data: dataset, + config: { + rows: ["state"], + columns: ["product_line", "product_type"], + values: [ + { + field: "date", + method: "min" + }, + { + field: "profit", + method: "sum" + }, + { + field: "sales", + method: "sum" + } + ] + } +}); +~~~ + +Чтобы задать пользовательский формат для конкретного поля, используйте параметр `format` свойства [`fields`](api/config/fields-property.md). См. раздел [Применение форматов к полям](guides/working-with-data.md#applying-formats-to-fields). + +## Символы формата даты и времени {#date-and-time-format-characters} + +Pivot использует следующие символы для определения формата даты и времени: + +| Символ | Описание | Пример | +| :-------- | :------------------------------------------------------------ |:------------------------| +| %d | день в виде числа с ведущим нулём | от 01 до 31 | +| %j | день в виде числа | от 1 до 31 | +| %D | краткое название дня (аббревиатура) | Su Mo Tu Sat | +| %l | полное название дня | Sunday Monday Tuesday | +| %W | неделя в виде числа с ведущим нулём (понедельник — первый день недели) | от 01 до 52/53 | +| %m | месяц в виде числа с ведущим нулём | от 01 до 12 | +| %n | месяц в виде числа | от 1 до 12 | +| %M | краткое название месяца | Jan Feb Mar | +| %F | полное название месяца | January February March | +| %y | год в виде числа, 2 цифры | 24 | +| %Y | год в виде числа, 4 цифры | 2024 | +| %h | часы в 12-часовом формате с ведущим нулём | от 01 до 12 | +| %g | часы в 12-часовом формате | от 1 до 12 | +| %H | часы в 24-часовом формате с ведущим нулём | от 00 до 23 | +| %G | часы в 24-часовом формате | от 0 до 23 | +| %i | минуты с ведущим нулём | от 01 до 59 | +| %s | секунды с ведущим нулём | от 01 до 59 | +| %S | миллисекунды | 128 | +| %a | am или pm | am (время от полуночи до полудня) и pm (время от полудня до полуночи)| +| %A | AM или PM | AM (время от полуночи до полудня) и PM (время от полудня до полуночи)| +| %c | отображает дату и время в формате ISO 8601 | 2024-10-04T05:04:09 | + +Чтобы представить 20 сентября 2024 года в 16:47:08.128 как *2024-09-20 16:47:08.128*, используйте формат `"%Y-%m-%d %H:%i:%s.%S"`. + +## Форматирование чисел {#number-formatting} + +Pivot локализует все поля типа `number` на основе значения `lang` текущей локали. Виджет использует спецификацию [`Intl.NumberFormat`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat). По умолчанию ограничивается до 3 знаков после запятой и применяется разделение групп для целой части. + +Чтобы отключить форматирование для конкретного числового поля или задать пользовательский формат, используйте параметр `format` свойства [`fields`](api/config/fields-property.md). Установите `format` в `false`, чтобы отключить форматирование, или передайте объект с настройками формата (см. раздел [Применение форматов к полям](guides/working-with-data.md#applying-formats-to-fields)). + +Следующий фрагмент кода отключает числовое форматирование для поля `year`: + +~~~jsx +const fields = [ + { id: "year", label: "Year", type: "number", format: false }, +]; +~~~ + +## Пример {#example} + +Фрагмент ниже демонстрирует переключение между несколькими локалями: + + diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/guides/stylization.md b/i18n/ru/docusaurus-plugin-content-docs/current/guides/stylization.md new file mode 100644 index 0000000..8f77b7d --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/guides/stylization.md @@ -0,0 +1,266 @@ +--- +sidebar_label: Стилизация +title: Стилизация +description: В документации библиотеки DHTMLX JavaScript Pivot вы можете узнать о стилизации компонента. Изучайте руководства разработчика и справочник АПИ, пробуйте примеры кода и живые демо, а также загружайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +--- + +# Стилизация {#styling} + +Pivot поставляется с темой оформления по умолчанию и предоставляет CSS-переменные и вспомогательные классы для кастомизации. Переопределите переменные на контейнере виджета (или любом родительском элементе), чтобы изменить цвета, рамки и другие визуальные свойства. + +## Стиль по умолчанию {#default-style} + +Тема по умолчанию для Pivot — **Material**. Следующий CSS-фрагмент показывает переменные, которые тема Material устанавливает на контейнере виджета: + +~~~css +.wx-material-theme { + --wx-theme-name: material; + --wx-pivot-primary-hover: #194e9e; + --wx-pivot-border-color: var(--wx-color-font-disabled); + --wx-pivot-field-hover: linear-gradient( + rgba(0, 0, 0, 0.1) 0%, + rgba(0, 0, 0, 0.1) 100% + ); +} +~~~ + +:::tip Примечание +В будущих версиях Pivot CSS-переменные могут быть переименованы. После обновления проверяйте имена переменных и обновляйте их в коде, чтобы избежать проблем с отображением. +::: + +## Встроенная тема {#built-in-theme} + +Pivot предоставляет одну встроенную тему: **Material**. Применить тему можно двумя способами: добавить класс темы к контейнеру виджета или подключить готовую таблицу стилей скина на странице. + +Следующий фрагмент кода применяет тему Material, добавляя класс `wx-material-theme` к контейнеру виджета: + +~~~html {} + +
+~~~ + +Следующий фрагмент кода подключает таблицу стилей скина Material напрямую: + +~~~html {} + +~~~ + +## Настройка встроенной темы {#customize-built-in-theme} + +Переопределите переменные темы Material на селекторе `.wx-material-theme`, чтобы изменить цвета, рамки и другие визуальные свойства. + +Пример ниже переопределяет переменные темы Material для отображения Pivot в тёмной цветовой схеме: + +~~~html + + +~~~ + +## Пользовательский стиль {#custom-style} + +Измените внешний вид Pivot, переопределив CSS-переменные на пользовательском классе, применённом к контейнеру виджета. + +Пример ниже применяет пользовательский стиль к Pivot через класс `.demo`: + +~~~html +
+ +~~~ + +## Стиль полосы прокрутки {#scroll-style} + +Примените пользовательский стиль к полосе прокрутки Pivot с помощью CSS-класса `.wx-styled-scroll`. Перед использованием проверьте совместимость с браузерами: [caniuse: CSS Scrollbar](https://caniuse.com/css-scrollbar). + +Следующий фрагмент кода включает стилизованную полосу прокрутки на контейнере виджета: + +~~~html {} title="index.html" + +
+~~~ + +## Стиль ячеек {#cell-style} + +Для стилизации ячеек тела или подвала таблицы используйте параметр `cellStyle` свойства [`tableShape`](api/config/tableshape-property.md). Для стилизации ячеек заголовка используйте параметр `cellStyle` свойства [`headerShape`](api/config/headershape-property.md). В обоих случаях функция `cellStyle` возвращает имя CSS-класса, который Pivot применяет к ячейке. + +Пример ниже применяет стили к ячейкам тела и заголовка: + +- ячейки тела получают класс на основе значений ячейки (например, `"Down"`, `"Up"`, `"Idle"` в поле `status`) и итоговых значений (больше 40 или меньше 5) +- ячейки заголовка получают класс на основе значения поля `streaming` — `status-down` для `"no"` и `status-up` для любого другого значения + +~~~jsx +const widget = new pivot.Pivot("#pivot", { + tableShape: { + totalColumn: true, + totalRow:true, + cellStyle: (field, value, area, method, isTotal) => { + if (field === "status" && area === "rows" && value) { + if (value === "Down") { + return "status-down"; + } else if (value === "Up") { + return "status-up"; + } else if (value === "Idle") { + return "status-idle"; + } + } + if(isTotal ==="column" && area == "values"){ + if(value > 40) + return "status-up"; + else if (value < 5) + return "status-down"; + } + } + }, + headerShape:{ + cellStyle:(field, value, area, method, isTotal) => { + if(field == "streaming") + return value ==="no"?"status-down":"status-up"; + } + }, + fields, + data: dataset, + config: { + rows: [ + "protocol", + "status", + ], + columns: [ + "streaming" + ], + values: [ + { + field: "id", + method: "count" + } + ] + } +}); +~~~ + +## Отметка значений в ячейках {#mark-values-in-cells} + +Используйте параметр `marks` свойства [`tableShape`](api/config/tableshape-property.md), чтобы применить CSS-класс к ячейкам, удовлетворяющим условию. Каждая запись в `marks` связывает имя CSS-класса (ключ) с правилом (значение). + +Правило — это либо предопределённая строка (`"max"` или `"min"`), либо пользовательская функция `(value, columnData, rowData) => boolean`. Когда функция возвращает `true`, Pivot добавляет CSS-класс к ячейке. + +Создайте CSS-классы в вашей таблице стилей перед применением `marks`. + +Пример ниже выделяет ячейки с минимальными и максимальными значениями, а также использует пользовательскую функцию для отметки нецелых значений больше 2: + +~~~jsx {18-26} +const table = new pivot.Pivot("#root", { + fields, + data, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + }, + tableShape: { + marks: { + // встроенные метки (выделение min/max) + min_cell: "min", + max_cell: "max", + // пользовательская метка + g_avg: v => (v % 1 !== 0) && v > 2 + } + } +}); +~~~ + +Следующий фрагмент кода определяет CSS-классы, на которые ссылается объект `marks`: + +~~~html title="index.html" + +~~~ + +## Специфические CSS-классы {#specific-css-classes} + +Pivot включает несколько вспомогательных CSS-классов, которые можно переопределить для точного управления элементами таблицы. + +Pivot выравнивает числа в ячейках тела по правому краю с помощью встроенного CSS-класса `.wx-number`. Исключение составляет иерархическая колонка в режиме дерева (когда в [`tableShape`](api/config/tableshape-property.md) установлено `tree: true`). Чтобы сбросить выравнивание чисел по умолчанию, переопределите этот класс. + +Следующий фрагмент кода выравнивает числа в ячейках тела по левому краю: + +~~~html + +~~~ + +Для стилизации итоговых колонок переопределите CSS-класс `.wx-total`. + +Следующий фрагмент кода стилизует итоговые ячейки со светлым фоном и более жирным шрифтом: + +~~~html + +~~~ + +## Пример {#example} + +Фрагмент ниже применяет пользовательский стиль к Pivot: + + + +**Связанные примеры**: + +- [Pivot 2. Стилизация (пользовательский CSS) для итоговой колонки](https://snippet.dhtmlx.com/9lkdbzmm) +- [Pivot 2. Метки min/max и пользовательские метки для ячеек (условное форматирование)](https://snippet.dhtmlx.com/4cm4asbd) +- [Pivot 2. Чередование цвета строк (полосатые строки, зебра-стайп)](https://snippet.dhtmlx.com/0cm0uko2) diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/guides/typescript-support.md b/i18n/ru/docusaurus-plugin-content-docs/current/guides/typescript-support.md new file mode 100644 index 0000000..3367a06 --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/guides/typescript-support.md @@ -0,0 +1,17 @@ +--- +sidebar_label: Поддержка TypeScript +title: Поддержка TypeScript +description: Вы можете узнать об использовании TypeScript с библиотекой DHTMLX JavaScript Pivot в документации. Ознакомьтесь с руководствами разработчика и справочником АПИ, попробуйте примеры кода и живые демо, а также загрузите бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +--- + +# Поддержка TypeScript {#typescript-support} + +DHTMLX Pivot поставляется с определениями TypeScript начиная с версии v2.0. Определения готовы к использованию — дополнительная настройка не требуется. + +:::info +Попробуйте Pivot в [Snippet Tool](https://snippet.dhtmlx.com/y2buoahe). +::: + +## Преимущества TypeScript {#advantages-of-typescript} + +Проверка типов и автодополнение помогают выявлять ошибки на раннем этапе, а встроенные определения сообщают, какие именно типы данных ожидает АПИ DHTMLX Pivot. diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/guides/working-with-data.md b/i18n/ru/docusaurus-plugin-content-docs/current/guides/working-with-data.md new file mode 100644 index 0000000..20bf86f --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/guides/working-with-data.md @@ -0,0 +1,687 @@ +--- +sidebar_label: Работа с данными +title: Работа с данными +description: В документации библиотеки DHTMLX JavaScript Pivot вы найдёте информацию о работе с данными. Изучайте руководства разработчика и справочник АПИ, пробуйте примеры кода и живые демо, скачайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +--- + +# Работа с данными + +На этой странице описано, как агрегировать, форматировать, сортировать, фильтровать и предварительно обрабатывать данные в Pivot. Инструкции по загрузке и экспорту данных см. в разделах [Загрузка данных](guides/loading-data.md) и [Экспорт данных](guides/exporting-data.md). + +## Определение полей {#define-fields} + +Используйте свойство [`fields`](api/config/fields-property.md), чтобы объявить поля, которые Pivot может размещать в строках, столбцах и значениях. Каждый элемент массива `fields` описывает одно поле — его идентификатор, метку и тип данных. + +Следующий фрагмент кода инициализирует Pivot с пятью полями: + +~~~jsx +const table = new pivot.Pivot("#root", { + fields: [ + { id: "year", label: "Year", type: "number" }, + { id: "continent", label: "Continent", type: "text" }, + { id: "form", label: "Form", type: "text" }, + { id: "oil", label: "Oil", type: "number" }, + { id: "balance", label: "Balance", type: "number" } + ], + data, + config: {...} +}); +~~~ + +## Применение форматов к полям {#applying-formats-to-fields} + +Pivot применяет формат по умолчанию к числовым полям и полям дат на основе текущей локали. Подробнее см. в разделах [Форматирование дат](guides/localization.md#date-formatting) и [Форматирование чисел](guides/localization.md#number-formatting). + +Чтобы переопределить формат по умолчанию для конкретного поля, задайте параметр `format` свойства [`fields`](api/config/fields-property.md). + +### Форматирование числовых полей {#format-numeric-fields} + +Используйте `prefix` и `suffix`, чтобы добавить текст вокруг числовых значений, и `maximumFractionDigits`, чтобы управлять точностью десятичных знаков. Например, чтобы отображать `12.345` как `"12.35 EUR"`, задайте суффикс `" EUR"` и `maximumFractionDigits` равным `2`: + +~~~js +const fields = [ + { id: "sales", type: "number", format: { suffix: " EUR", maximumFractionDigits: 2 } }, +]; +~~~ + +Форматирование по умолчанию ограничивает числовые поля тремя знаками после запятой и применяет разделение групп к целой части. Чтобы полностью отключить форматирование, задайте `format` значение `false`: + +~~~js +const fields = [ + { id: "year", label: "Year", type: "number", format: false }, +]; +~~~ + +В примере ниже поля `marketing`, `profit` и `sales` помечены как денежные с префиксом `$` и фиксированными двумя десятичными знаками: + +~~~jsx +// инициализация Pivot с предопределённым набором данных и полями +new pivot.Pivot("#pivot", { + data, + config: { + rows: ["state", "product_type"], + columns: [], + values: [ + { field: "marketing", method: "sum" }, + // другие значения + + ], + }, + fields:[ + // пользовательский формат + { id: "marketing", label: "Marketing", type:"number", format:{ + prefix: "$", minimumFractionDigits: 2, maximumFractionDigits: 2 } + } + ] +}); +~~~ + +### Форматирование полей дат {#format-date-fields} + +Чтобы переопределить общий `dateFormat` локали для отдельного поля, задайте параметр `format` свойства [`fields`](api/config/fields-property.md) в виде строки формата даты. + +Следующий фрагмент кода задаёт `"%M %d, %Y"` в качестве формата для поля `date`: + +~~~jsx +const fields = [ + { id: "date", type: "date", format: "%M %d, %Y" }, +]; +~~~ + +В примере ниже строковые даты преобразуются в объекты `Date`, после чего Pivot инициализируется с форматом `"%d %M %Y %H:%i"` для поля `date`. Значения поля отображаются в виде меток, например `"24 April 2025 14:30"`. + +~~~jsx +// преобразование строковых дат в объекты Date +const dateFields = fields.filter(f => f.type === "date"); +dataset.forEach(item => { + dateFields.forEach(f => { + const v = item[f.id]; + if (typeof v === "string") { + item[f.id] = new Date(v); + } + }); +}); + +// инициализация Pivot с полевым форматом даты +new pivot.Pivot("#pivot", { + data, + config: { + rows: ["state"], + columns: ["product_type"], + values: [ + { field: "date", method: "min" }, + { field: "profit", method: "sum" }, + { field: "sales", method: "sum" } + ] + }, + fields:[ + // пользовательский формат: День Месяц Год Часы:Минуты + { id: "date", label: "Date", type: "date", format: "%d %M %Y %H:%i" } + ] +}); +~~~ + +:::note +Для формата экспорта `xlsx` Pivot экспортирует поля дат и числовые поля как необработанные значения с форматом по умолчанию (или форматом, заданным через свойство [`fields`](api/config/fields-property.md)). Если для поля задан шаблон (см. свойство [`tableShape`](api/config/tableshape-property.md)), Pivot экспортирует отрисованное значение, полученное этим шаблоном. Если заданы и `template`, и `format`, шаблон имеет приоритет над форматом. +::: + +## Определение структуры Pivot {#define-pivot-structure} + +Используйте свойство [`config`](api/config/config-property.md), чтобы объявить, какие поля отображаются как строки, столбцы и агрегированные значения, а также как фильтруются данные. Свойство `config` не имеет предопределённых значений — вы должны задать его для отображения любых данных. Полный список параметров см. в справочнике [`config`](api/config/config-property.md). + +Следующий фрагмент кода помещает `continent` и `name` в строки, `year` — в столбцы, три агрегации — в значения и добавляет фильтр по `name`: + +~~~jsx {4-18} +const table = new pivot.Pivot("#root", { + fields, + data, + config: { + rows: ["continent", "name"], + columns: ["year"], + values: [ + "count(oil)", + { field: "oil", method: "sum" }, + { field: "gdp", method: "sum" } + ] + }, + fields, + filters: { + name: { + contains: "B" + } + } +}); +~~~ + +## Сортировка данных {#sorting-data} + +Pivot поддерживает сортировку во всех трёх областях (значения, столбцы, строки) в процессе агрегации. В интерфейсе пользователи нажимают на заголовок столбца для сортировки. + +Чтобы задать сортировку по умолчанию, используйте параметр `sort` свойства [`fields`](api/config/fields-property.md). Параметр принимает `"asc"`, `"desc"` или пользовательскую функцию сравнения. + +В примере ниже над Pivot отображаются кликабельные метки полей, и при нажатии направление сортировки переключается: + +~~~jsx +const bar = document.getElementById("bar"); + +let sorted = ["studio", "genre"]; +setFields(); +bar.addEventListener('click', (e) => switchSort(e.target.id), false); + +function setFields(){ + let html = ""; + let sortedFields = fields.filter(f => (sorted.indexOf(f.id) != -1)); + + sortedFields.forEach((f) =>{ + const order = f.sort || "asc"; + html += `
+ ${f.label} +
`; + }); + bar.innerHTML = html; +} + +function switchSort(id){ + fields.forEach(f => { + if(f.id == id){ + f.sort = f.sort != "desc" ? "desc" : "asc"; + } + }); + // обновление полей Pivot + table.setConfig({ fields }); + // обновление иконок + setFields(bar, fields); +} + +const table = new pivot.Pivot("#root", { + fields, + data: dataset, + config: { + rows: [ + "studio", + "genre" + ], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + } +}); +~~~ + +Сортировка в интерфейсе включена по умолчанию. Чтобы отключить её, задайте параметр `sort` свойства [`columnShape`](api/config/columnshape-property.md) равным `false`. + +Следующий фрагмент кода отключает сортировку в интерфейсе: + +~~~jsx {19} +const table = new pivot.Pivot("#root", { + fields, + data, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + }, + columnShape: { + sort: false + } +}); +~~~ + +## Фильтрация данных {#filtering-data} + +Pivot поддерживает фильтры, привязанные к типам данных полей. Фильтры задаются через интерфейс Pivot после инициализации или декларативно через объект `filters` свойства [`config`](api/config/config-property.md). + +В интерфейсе фильтры отображаются в виде выпадающих списков для каждого поля. + +#### Типы фильтров {#filter-types} + +Pivot поддерживает следующие условия фильтрации по типам данных: + +- текстовые поля — `equal`, `notEqual`, `contains`, `notContains`, `beginsWith`, `notBeginsWith`, `endsWith`, `notEndsWith`, `includes` +- числовые поля — `equal`, `notEqual`, `greater`, `greaterOrEqual`, `less`, `lessOrEqual`, `contains`, `notContains`, `beginsWith`, `notBeginsWith`, `endsWith`, `notEndsWith` +- поля дат — `equal`, `notEqual`, `greater`, `greaterOrEqual`, `less`, `lessOrEqual`, `between`, `notBetween`, `includes` + +Правило `includes` ограничивает фильтр конкретным набором допустимых значений. + +#### Добавление фильтра {#add-a-filter} + +Чтобы объявить фильтр, добавьте объект `filters` в свойство [`config`](api/config/config-property.md), используя идентификатор поля в качестве ключа. Каждое значение — объект с условиями фильтрации. + +Следующий фрагмент кода применяет два фильтра — один по `genre` (значения, содержащие `"D"`, ограниченные значением `"Drama"`) и один по `title` (значения, содержащие `"A"`): + +~~~jsx +const table = new pivot.Pivot("#root", { + fields, + data: dataset, + config: { + rows: ["studio", "genre"], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ], + filters: { + genre: { + contains: "D", + includes: ["Drama"] + }, + title: { + // фильтр для другого поля ("title") + contains: "A" + } + } + } +}); +~~~ + +:::info +Чтобы фильтровать данные через АПИ виджета Table, получите экземпляр Table с помощью метода [`getTable`](api/methods/gettable-method.md) и используйте событие [`filter-rows`](api/table/filter-rows.md). +::: + +## Ограничение загружаемых данных {#limiting-loaded-data} + +Чтобы предотвратить зависание компонента на очень больших наборах данных, ограничьте количество строк и столбцов в итоговом наборе с помощью свойства [`limits`](api/config/limits-property.md). Pivot прерывает отрисовку по достижении лимита. По умолчанию лимит составляет 10000 строк и 5000 столбцов. + +:::note +Лимиты применяются к большим наборам данных. Числа приблизительны — Pivot не гарантирует точного количества строк/столбцов. +::: + +Следующий фрагмент кода ограничивает набор данных 10 строками и 3 столбцами: + +~~~jsx +const table = new pivot.Pivot("#root", { + fields, + data: dataset, + config: { + rows: ["studio"], + columns: ["genre"], + values: [ + { + field: "title", + method: "count" + }, + { + field: "score", + method: "max" + } + ] + }, + limits: { rows: 10, columns: 3 } +}); +~~~ + +## Применение математических методов {#applying-maths-methods} + +### Методы по умолчанию {#default-methods} + +Pivot включает следующие встроенные методы агрегации: + +- `sum` (только числовые значения) — суммирует все выбранные значения; игнорирует пустые ячейки, логические значения вроде `TRUE` и текст +- `min` (числовые значения и даты) — возвращает минимальное значение; игнорирует пустые ячейки, логические значения и текст. Возвращает `0`, если во входных данных нет чисел +- `max` (числовые значения и даты) — возвращает максимальное значение; игнорирует пустые ячейки, логические значения и текст. Возвращает `0`, если во входных данных нет чисел +- `count` (числовые, текстовые значения и даты) — считает непустые ячейки; это метод по умолчанию, назначаемый каждому вновь добавленному полю +- `countunique` (числовые и текстовые значения) — считает количество уникальных значений во входных данных +- `average` (только числовые значения) — вычисляет среднее арифметическое; игнорирует пустые ячейки, логические значения и текст. Включает ячейки со значением ноль +- `counta` (числовые, текстовые значения и даты) — считает все непустые значения, включая числа, даты и текст +- `median` (только числовые значения) — возвращает медиану входных данных +- `product` (только числовые значения) — возвращает произведение всех чисел во входных данных +- `stdev` (только числовые значения) — стандартное отклонение, при котором входные данные рассматриваются как выборка из большей совокупности +- `stdevp` (только числовые значения) — стандартное отклонение, при котором входные данные рассматриваются как вся генеральная совокупность +- `var` (только числовые значения) — дисперсия, при которой входные данные рассматриваются как выборка из большей совокупности +- `varp` (только числовые значения) — дисперсия, при которой входные данные рассматриваются как вся генеральная совокупность + +Следующий фрагмент кода показывает определения встроенных методов: + +~~~jsx +const defaultMethods = { + sum: { type: "number", label: "sum" }, + min: { type: ["number", "date"], label: "min" }, + max: { type: ["number", "date"], label: "max" }, + count: { + type: ["number", "date", "text"], + label: "count", + branchMath: "sum" + }, + counta: { + type: ["number", "date", "text"], + label: "counta", + branchMath: "sum" + }, + countunique: { + type: ["number", "text"], + label: "countunique", + branchMath: "sum" + }, + average: { type: "number", label: "average", branchMode: "raw" }, + median: { type: "number", label: "median", branchMode: "raw" }, + product: { type: "number", label: "product" }, + stdev: { type: "number", label: "stdev", branchMode: "raw" }, + stdevp: { type: "number", label: "stdevp", branchMode: "raw" }, + var: { type: "number", label: "var", branchMode: "raw" }, + varp: { type: "number", label: "varp", branchMode: "raw" } +}; +~~~ + +Применяйте метод по умолчанию через параметр `values` свойства [`config`](api/config/config-property.md). См. раздел [Определение значений](#options-for-defining-values). + +Следующий фрагмент кода назначает `count` полю `title` и `max` полю `score`: + +~~~jsx +const table = new pivot.Pivot("#root", { + fields, + data, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + // идентификатор поля + field: "title", + // метод + method: "count" + }, + { + id: "score", + method: "max" + } + ] + } +}); +~~~ + +### Определение значений {#options-for-defining-values} + +Каждую запись в `values` можно задать в одной из двух равнозначных форм: + +- строка вида `"operation(fieldID)"` +- объект `{ field: string, method: string }` (оба поля обязательны) + +Следующий фрагмент кода использует обе формы в одном массиве `values`: + +~~~jsx +values: [ + "sum(sales)", // первый вариант + { field: "sales", method: "sum" } // второй вариант +] +~~~ + +### Переопределение метода по умолчанию {#override-the-default-method} + +Для каждого вновь добавленного поля Pivot назначает первый доступный метод для данного типа данных. Чтобы изменить это поведение, перехватите событие `add-field` с помощью метода [`api.intercept`](api/internal/intercept-method.md). + +В примере ниже выполняется перехват `add-field` и принудительно устанавливается метод `max` при добавлении числового поля: + +~~~jsx {20-27} +const table = new pivot.Pivot("#root", { + fields, + data: dataset, + config: { + rows: ["studio", "genre"], + columns: [], + values: [ + { + field: "title", + method: "count", + }, + { + field: "score", + method: "max", + }, + ], + }, +}); +// переопределение метода по умолчанию для вновь добавляемых числовых полей +table.api.intercept("add-field", (ev) => { + const { fields } = table.api.getState(); + const type = fields.find((f) => f.id == ev.field).type; + + if (ev.area == "values" && type == "number") { + ev.method = "max"; + } +}); +~~~ + +### Добавление пользовательских математических методов {#add-custom-math-methods} + +Чтобы добавить пользовательский метод агрегации, используйте свойство [`methods`](api/config/methods-property.md). Каждая запись связывает имя метода (ключ) с объектом конфигурации, содержащим функцию `handler` и метаданные. Функция `handler` принимает массив значений и возвращает одно агрегированное значение. + +В примере ниже добавляются два метода, специфичных для дат. `countunique_date` считает уникальные даты по их числовым меткам времени. `average_date` возвращает среднюю дату путём усреднения меток времени: + +~~~jsx +function countUnique(values, converter) { + const valueMap = {}; + return values.reduce((acc, d) => { + if (converter) d = converter(d); + if (!valueMap[d]) { + acc++; + valueMap[d] = true; + } + return acc; + }, 0); +} + +const methods = { + countunique_date: { + handler: values => countUnique(values, v => new Date(v).getTime()), + type: "date", + label: "CountUnique", + }, + average_date: { + type: "date", + label: "Average", + branchMode: "raw", + handler: values => { + if (!values.length) return null; + const sum = values.reduce((acc, d) => acc + d.getTime(), 0); + const avgTime = sum / values.length; + return new Date(avgTime); + } + } +}; + +// показывать целые числа для результатов "count" и "unique count" +const templates = {}; +fields.forEach(f => { + if (f.type == "number") + templates[f.id] = (v, method) => + v && method.indexOf("count") < 0 ? parseFloat(v).toFixed(3) : v; +}); + +// преобразование строковых дат в объекты Date +const dateFields = fields.filter(f => f.type == "date"); +if (dateFields.length) { + dataset.forEach(item => { + dateFields.forEach(f => { + const v = item[f.id]; + if (typeof v == "string") item[f.id] = new Date(v); + }); + }); +} + +const table = new pivot.Pivot("#root", { + fields, + data: dataset, + tableShape: { templates }, + methods: { ...pivot.defaultMethods, ...methods }, + config:{ + rows: ["state"], + columns: [ + "product_line", + "product_type" + ], + values: [ + { + field: "sales", + method: "sum" + }, + { + field: "sales", + method: "count" + }, + { + field: "date", + method: "countunique_date" + }, + { + field: "date", + method: "average_date" + } + ] + } +}); +~~~ + +## Обработка данных с помощью предикатов {#processing-data-with-predicates} + +Предикаты — это функции предварительной обработки, которые преобразуют исходные данные полей до того, как Pivot использует их в строках или столбцах. Например, предикат может группировать даты по месяцам перед агрегацией. + +Следующий фрагмент кода показывает встроенные предикаты дат, применяемые Pivot по умолчанию: + +~~~jsx +const defaultPredicates = { + year: { label: "Year", type: "date", filter: { type: "number" } }, + quarter: { label: "Quarter", type: "date", filter: { type: "tuple" } }, + month: { label: "Month", type: "date", filter: { type: "tuple" } }, + week: { label: "Week", type: "date", filter: { type: "tuple" } }, + day: { label: "Day", type: "date", filter: { type: "number" } }, + hour: { label: "Hour", type: "date", filter: { type: "number" } }, + minute: { label: "Minute", type: "date", filter: { type: "number" } } +}; +~~~ + +Чтобы добавить пользовательский предикат, настройте свойство [`predicates`](api/config/predicates-property.md). Каждая запись связывает идентификатор предиката (ключ) с объектом конфигурации: + +- `type` — типы полей, которые принимает предикат (`"number"`, `"date"`, `"text"` или массив) +- `label` — метка предиката, отображаемая в выпадающем списке GUI для строки/столбца +- `handler` — функция, преобразующая значение и возвращающая обработанное значение +- `template` — необязательная функция, управляющая отображением обработанного значения +- `field` — необязательная функция, ограничивающая предикат конкретными полями +- `filter` — необязательная конфигурация фильтра, если тип фильтра должен отличаться от `type` или формат данных должен отличаться от `template` + +Чтобы использовать пользовательский предикат, задайте его идентификатор как `method` строки или столбца, к которым предикат должен применяться. + +Следующий фрагмент кода регистрирует два пользовательских предиката (`monthYear` и `profitSign`) и применяет их в конфигурации `columns`: + +~~~jsx +const predicates = { + monthYear: { + label: "Month-year", + type: "date", + handler: (d) => new Date(d.getFullYear(), d.getMonth(), 1), + template: (date, locale) => { + const months = locale.getRaw().calendar.monthFull; + return months[date.getMonth()] + " " + date.getFullYear(); + }, + }, + profitSign: { + label: "Profit Sign", + type: "number", + filter: { + type: "tuple", + format: (v) => (v < 0 ? "Negative" : "Positive"), + }, + field: (f) => f === "profit", + handler: (v) => (v < 0 ? -1 : 1), + template: (v) => (v < 0 ? "Negative profit" : "Positive profit"), + }, +}; + +// преобразование строковых дат в объекты Date +const dateFields = fields.filter((f) => f.type == "date"); +if (dateFields.length) { + dataset.forEach((item) => { + dateFields.forEach((f) => { + const v = item[f.id]; + if (typeof v == "string") item[f.id] = new Date(v); + }); + }); +} + +const table = new pivot.Pivot("#pivot", { + fields, + data: dataset, + predicates: { ...pivot.defaultPredicates, ...predicates }, + tableShape: { tree: true }, + config: { + rows: ["product_type", "product"], + columns: [ + { field: "profit", method: "profitSign" }, + { field: "date", method: "monthYear" }, + ], + values: ["sales", "expenses"], + }, +}); +~~~ + +## Добавление столбцов и строк с итоговыми значениями {#add-columns-and-rows-with-total-values} + +Используйте свойство [`tableShape`](api/config/tableshape-property.md), чтобы отрисовать итоговый столбец справа (`totalColumn: true`) или итоговую строку-футер (`totalRow: true`). + +Следующий фрагмент кода включает и итоговый столбец, и итоговую строку: + +~~~jsx {2-5} +const table = new pivot.Pivot("#root", { + tableShape: { + totalRow: true, + totalColumn: true + }, + fields, + data, + config: { + rows: ["studio"], + columns: ["type"], + values: [ + { + field: "score", + method: "max" + }, + { + field: "episodes", + method: "count" + }, + { + field: "rank", + method: "min" + }, + { + field: "members", + method: "sum" + } + ] + } +}); +~~~ + +## Пример {#example} + +Фрагмент ниже применяет пользовательские математические операции: + + + +**Связанные примеры**: + +- [Pivot 2. Набор данных с псевдонимами](https://snippet.dhtmlx.com/7vc68rqd) +- [Pivot 2. Определение форматов полей](https://snippet.dhtmlx.com/77nc4j8v) +- [Pivot 2. Внешний фильтр](https://snippet.dhtmlx.com/s7tc9g4z) +- [Pivot 2. Общий итог для столбцов и строк](https://snippet.dhtmlx.com/f0ag0t9t) diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/guides/working-with-server.md b/i18n/ru/docusaurus-plugin-content-docs/current/guides/working-with-server.md new file mode 100644 index 0000000..78e62a5 --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/guides/working-with-server.md @@ -0,0 +1,172 @@ +--- +sidebar_label: Работа с сервером +title: Работа с сервером +description: В документации библиотеки DHTMLX JavaScript Pivot вы можете узнать, как интегрировать Pivot с серверной частью. Изучайте руководства разработчика и справочник АПИ, пробуйте примеры кода и живые демо, скачайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +--- + +Pivot работает полностью в браузере. Виджет принимает массив исходных строк и объект [`config`](/api/config/config-property) (строки / столбцы / значения) и агрегирует данные на стороне клиента. Встроенного транспортного слоя нет, однако публичное АПИ предоставляет хуки для обмена данными с любым сервером. + +Типичная интеграция включает три части: + +1. **Загрузка** необработанных, неагрегированных данных с сервера при инициализации +2. **Сохранение конфига** при изменении макета пользователем, чтобы сессия восстанавливалась при следующем входе +3. **Сохранение агрегированной таблицы**, когда серверу нужен снимок свёрнутого результата + +## Загрузка необработанных данных с сервера {#load-raw-data-from-the-server} + +Свойство [`data`](/api/config/data-property) ожидает массив объектов-строк в исходном виде. Pivot самостоятельно агрегирует строки, поэтому сервер возвращает неразвёрнутые данные. + +Получите данные и поля с помощью `fetch` (или любого HTTP-клиента), а затем создайте виджет после получения ответа: + +~~~html +
+ + +~~~ + +Если сервер возвращает поля дат в виде строк ISO, преобразуйте их в экземпляры `Date` перед передачей массива в Pivot. Методы агрегации для полей типа дата требуют реальных значений `Date`: + +~~~jsx +data.forEach(row => { + if (typeof row.when === "string") row.when = new Date(row.when); +}); +~~~ + +:::info +**Смотрите также**: +- [Загрузка данных](/guides/loading-data) +- [Форматирование дат](/guides/localization#date-formatting) +::: + +## Сохранение макета пользователя для восстановления сессии {#save-the-users-layout-to-resume-the-session} + +Чтобы пользователи могли вернуться к оставленному макету, сохраняйте объект [`config`](/api/config/config-property) при каждом изменении. Событие [`update-config`](/api/events/update-config-event) срабатывает, когда пользователь редактирует макет через интерфейс. Полезная нагрузка — обработанный конфиг вида `{ rows, columns, values, filters }`. + +Используйте [`api.on()`](/api/internal/on-method) для наблюдения за событием без его изменения. Переключитесь на [`api.intercept()`](/api/internal/intercept-method), если обработчику необходимо изменить полезную нагрузку события. + +Пример ниже подписывается на событие `update-config` и отправляет новый макет на сервер: + +~~~html +
+ + +~~~ + +При следующем посещении верните сохранённый конфиг из `/config` и передайте его как свойство `config` при инициализации. Виджет запустится с предыдущим макетом. Если макет поступает уже после создания виджета, примените сохранённый конфиг с помощью метода [`setConfig()`](/api/methods/setconfig-method). + +Частые обновления могут перегружать сервер, когда пользователь перетаскивает поля в панели конфигурации. Оберните POST в таймер, чтобы дебаунсировать вызовы: + +~~~jsx +let saveTimer; +table.api.on("update-config", newConfig => { + clearTimeout(saveTimer); + saveTimer = setTimeout(() => { + fetch(server + "/config", { + method: "POST", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify(newConfig), + }); + }, 300); +}); +~~~ + +:::note +Полезная нагрузка `update-config` — это *обработанный* конфиг: Pivot может нормализовать ссылки на поля до формы `{ field, method }`. Передавайте обработанную форму обратно как свойство `config` при инициализации. Дополнительное преобразование не требуется. +::: + +:::tip +Верните `false` из обработчика, чтобы заблокировать изменение макета. Используйте это для управления сохранением через серверную валидацию. +::: + +## Сохранение агрегированной таблицы {#save-the-aggregated-table} + +Иногда ценен сам *результат*: серверный кэш отображённой таблицы, периодический отчёт или экспортный конвейер. Событие [`render-table`](/api/events/render-table-event) срабатывает после завершения агрегации в Pivot и содержит полную свёрнутую таблицу: `columns`, строки `data`, `footer`, `split` и т.д. + +Пример ниже подписывается на `render-table` и отправляет снимок на сервер, пропуская начальный рендер: + +~~~jsx +const table = new pivot.Pivot("#root", { data, fields, config }); + +let firstRender = true; +let saveTimer; + +table.api.on("render-table", ({ config: tableConfig }) => { + // пропускаем начальный рендер, вызванный первой агрегацией + if (firstRender) { + firstRender = false; + return; + } + + clearTimeout(saveTimer); + saveTimer = setTimeout(() => { + fetch(server + "/snapshot", { + method: "POST", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify({ + columns: tableConfig.columns, + data: tableConfig.data, + footer: tableConfig.footer, + split: tableConfig.split, + }), + }); + }, 300); +}); +~~~ + +:::note +Событие `render-table` срабатывает чаще, чем `update-config`. Оно запускается при каждом пересчёте, включая сортировку и раскрытие/сворачивание. Дебаунсируйте обработчик и пропускайте первый рендер, чтобы отправлять один POST на каждое реальное изменение. +::: + +:::tip +Верните `false` из обработчика, чтобы предотвратить рендеринг. Используйте это, когда сервер отклоняет снимок или для режимов только для чтения. +::: + +### Перезагрузка агрегированного снимка {#reload-an-aggregated-snapshot} + +Pivot создаёт агрегированные таблицы и не отображает предварительно агрегированные. Свойство [`data`](/api/config/data-property) всегда принимает исходные строки. Снимок, сохранённый из `render-table`, поэтому подходит для следующих случаев: + +- последующий экспортный конвейер (CSV, XLSX) на сервере +- представление только для чтения, отображаемое простой таблицей данных из сохранённых `columns` и `data` +- кэшированный отчёт, предоставляемый другим пользователям без повторного выполнения агрегации + +**Связанные статьи**: + +- [Загрузка данных](/guides/loading-data) +- [Экспорт данных](/guides/exporting-data) + +**Связанное АПИ**: + +- [`api.on()`](/api/internal/on-method) +- [`update-config`](/api/events/update-config-event) +- [`render-table`](/api/events/render-table-event) diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/how-to-start.md b/i18n/ru/docusaurus-plugin-content-docs/current/how-to-start.md new file mode 100644 index 0000000..a687e8a --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/how-to-start.md @@ -0,0 +1,122 @@ +--- +sidebar_label: Начало работы +title: Начало работы +description: Вы можете узнать, как начать работу с DHTMLX Pivot, в документации JavaScript-библиотеки DHTMLX Pivot. Изучайте руководства разработчика и справочник АПИ, запускайте примеры кода и живые демо, а также скачайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +--- + +# Начало работы {#how-to-start} + +Это понятное и подробное руководство проведёт вас через все шаги, необходимые для размещения полнофункционального Pivot на странице. + +![pivot-main](/assets/pivot_main.png) + +## Шаг 1. Загрузка и установка пакетов {#step-1-downloading-and-installing-packages} + +[Загрузите пакет](https://dhtmlx.com/docs/products/dhtmlxPivot/download.shtml) и распакуйте его в папку вашего проекта. + +Вы можете импортировать JavaScript Pivot в проект с помощью менеджера пакетов `yarn` или `npm`. + +:::info +Если вы хотите интегрировать Pivot в проекты React, Angular, Svelte или Vue, обратитесь к соответствующим [**руководствам по интеграции**](/category/integration-with-frameworks/) для получения дополнительной информации. +::: + +### Установка пробной версии Pivot через npm или yarn {#installing-trial-pivot-via-npm-or-yarn} + +:::info +Если вы хотите использовать пробную версию Pivot, загрузите [**пакет пробной версии Pivot**](https://dhtmlx.com/docs/products/dhtmlxPivot/download.shtml) и следуйте инструкциям из файла *README*. Обратите внимание, что пробная версия Pivot доступна только в течение 30 дней. +::: + +### Установка PRO-версии Pivot через npm или yarn {#installing-pro-pivot-via-npm-or-yarn} + +:::info +Вы можете получить доступ к приватному **npm** DHTMLX напрямую в [Личном кабинете](https://dhtmlx.com/clients/), сгенерировав логин и пароль для **npm**. Там же доступно подробное руководство по установке. Обратите внимание, что доступ к приватному **npm** предоставляется только при наличии активной лицензии на Pivot. +::: + +## Шаг 2. Подключение исходных файлов {#step-2-including-source-files} + +Начните с создания HTML-файла и назовите его *index.html*. Затем подключите исходные файлы Pivot к созданному файлу. + +Необходимы два файла: + +- JS-файл Pivot +- CSS-файл Pivot + +~~~html {5-6} title="index.html" + + + + How to Start with Pivot + + + + + + + +~~~ + +## Шаг 3. Создание Pivot {#step-3-creating-pivot} + +Теперь вы готовы добавить Pivot на страницу. Сначала создадим DIV-контейнер для Pivot. + +~~~html {} title="index.html" + + + + How to Start with Pivot + + + + +
+ + + +~~~ + +## Шаг 4. Настройка Pivot {#step-4-configuring-pivot} + +Далее вы можете задать свойства конфигурации, которые должен иметь компонент Pivot при инициализации. + +Для начала работы с Pivot необходимо предоставить исходные данные. Пример ниже создаёт Pivot с: + +- строками для полей *studio* и *genre* +- столбцом *title* +- агрегацией значений для *score* с методом *max* + +Массив **fields** необходим для определения идентификаторов полей, подписей для отображения и типов данных. + +Массив **data** должен содержать фактические данные, отображаемые в виджете Pivot. Каждый объект массива представляет строку таблицы. + +Объект **config** определяет структуру таблицы Pivot: какие поля будут использоваться в качестве строк и столбцов таблицы, а также какие методы агрегации данных применяются к полям. + +~~~jsx +const table = new pivot.Pivot("#root", { + //свойства конфигурации + fields, + data, + config: { + rows: ["studio", "genre"], + columns: ["title"], + values: [ + { + field: "score", + method: "max" + } + ] + } +}); +~~~ + +## Что дальше {#whats-next} + +Вот и всё. Всего несколько простых шагов — и у вас есть удобный инструмент для анализа данных. Теперь вы можете приступить к решению своих задач или продолжить изучение возможностей JavaScript Pivot: + +- Страницы раздела [Руководства](/category/guides) содержат инструкции по установке, загрузке данных, стилизации и другие полезные советы для работы с конфигурацией Pivot +- [Справочник АПИ](api/overview/main-overview.md) содержит описание функциональности Pivot diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/index.md b/i18n/ru/docusaurus-plugin-content-docs/current/index.md new file mode 100644 index 0000000..f62d250 --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/index.md @@ -0,0 +1,103 @@ +--- +sidebar_label: Обзор Pivot +title: Обзор JavaScript Pivot +slug: / +description: Ознакомьтесь с обзором библиотеки DHTMLX JavaScript Pivot в документации. Изучите руководства разработчика и справочник АПИ, опробуйте примеры кода и живые демо, а также загрузите бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +--- + +# Обзор DHTMLX Pivot + +JavaScript Pivot — готовый компонент для создания сводных таблиц из больших наборов данных. АПИ виджета легко адаптируется под нужды вашего веб-приложения. Компонент предоставляет конечному пользователю инструменты для сравнения и анализа сложных данных в рамках одной таблицы. + +## Структура Pivot {#pivot-structure} + +Интерфейс Pivot состоит из двух основных компонентов: панели настройки и таблицы с данными. + +![Main](assets/pivot-main.png) + +## Панель настройки {#configuration-panel} + +Панель настройки позволяет добавлять столбцы и строки в таблицу, а также поля значений, определяющих методы агрегации данных. Каждый элемент можно добавить через соответствующие области панели: + +- Значения: можно добавить значения, определяющие способ агрегации данных (например, сумма, минимум, максимум) +- Столбцы: можно настроить столбцы таблицы (указать, какие поля будут применяться в качестве столбцов) +- Строки: можно настроить, какие поля будут применяться в качестве строк таблицы + +Чтобы скрыть панель настройки, нажмите кнопку **Hide Settings**: + +![config_panel](assets/config_panel.png) + +### Область значений {#values-area} + +В области **Values** можно определить, какие методы агрегации (например, min, max, count) будут применяться к ячейкам сводной таблицы. Доступны следующие операции: + +- добавление и удаление полей из области значений +- изменение порядка и приоритета значений в таблице +- фильтрация данных +- настройка операций, применяемых к полям таблицы + +Подробнее см. в разделах [Операции в областях](#operations-in-areas) и [Фильтры](#filters). + +### Область столбцов {#columns-area} + +В области **Columns** доступны следующие операции: + +- добавление и удаление столбцов (то есть полей, применяемых в качестве столбцов) +- изменение порядка и приоритета столбцов в таблице +- фильтрация данных + +Подробнее см. в разделах [Операции в областях](#operations-in-areas) и [Фильтры](#filters). + +### Область строк {#rows-area} + +В панели настройки для области **Rows** доступны следующие операции: + +- добавление и удаление строк (то есть полей, применяемых в качестве строк) +- изменение порядка и приоритета строк в таблице +- фильтрация данных + +Подробнее см. в разделах [Операции в областях](#operations-in-areas) и [Фильтры](#filters). + +### Операции в областях {#operations-in-areas} + +Во всех трёх областях панели настройки можно добавлять и удалять поля из таблицы. Если нужно, чтобы поле применялось в качестве строки или столбца, выберите его в соответствующей области (столбцы или строки). + +Чтобы добавить новое поле, нажмите кнопку «+» в нужной области и выберите название из выпадающего списка. + +Чтобы удалить элемент, нажмите кнопку удаления («x»). + +![add_remove](assets/add_remove.png) + +Чтобы изменить порядок значений/строк/столбцов в таблице, перетащите элемент на нужную позицию. Чем левее элемент расположен в панели инструментов области, тем выше его приоритет и позиция в таблице. + +![priority](assets/priority.png) + +Чтобы задать операции, применяемые ко всем данным столбца таблицы, в области **Values** нажмите на операцию для нужного поля в выпадающем списке и выберите требуемый вариант. + +![operations](assets/operations.png) + +### Фильтры {#filters} + +Фильтры отображаются в виде выпадающих списков для каждого поля во всех областях. Pivot поддерживает следующие типы условий фильтрации: + +- для текстовых значений: equal, notEqual, contains, notContains, beginsWith, notBeginsWith, endsWith, notEndsWith +- для числовых значений: greater, less, greaterOrEqual, lessOrEqual, equal, notEqual, contains, notContains, begins with, not begins with, ends with, not ends with +- для дат: greater, less, greaterOrEqual, lessOrEqual, equal, notEqual, between, notBetween + +Чтобы отфильтровать данные в таблице, нажмите на значок фильтра нужного элемента в требуемой области, затем выберите оператор, задайте значение для фильтрации и нажмите **Apply**. Поля, к которым применена фильтрация, будут отмечены специальным значком фильтра. + +![filters](assets/filter.png) + +## Таблица {#table} + +Данные в таблице отображаются в соответствии с настройками, заданными в панели настройки. **Сортировка** по столбцам включается нажатием на заголовок столбца: + +![table](assets/table.png) + +## Что дальше {#whats-next} + +Теперь можно приступить к интеграции Pivot в ваше приложение. Следуйте инструкциям руководства [Как начать работу](how-to-start.md). + +Используя функциональность, предоставляемую АПИ виджета, вы можете создать привлекательную сводную таблицу с расширенными возможностями, как в примере ниже: + + diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/news/migration.md b/i18n/ru/docusaurus-plugin-content-docs/current/news/migration.md new file mode 100644 index 0000000..c15c423 --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/news/migration.md @@ -0,0 +1,57 @@ +--- +sidebar_label: Миграция на новые версии +title: Миграция на новые версии +description: В документации библиотеки DHTMLX JavaScript Pivot вы можете узнать о миграции на новые версии. Ознакомьтесь с руководствами разработчика и справочником по АПИ, изучите примеры кода и живые демо, а также загрузите бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +--- + +# Миграция на новые версии {#migration-to-newer-versions} + +## 2.0 -> 2.1 {#20---21} + +- Параметр `colWidth` объекта `sizes` в свойстве `tableShape` переименован в `columnWidth` + +## 1.5 -> 2.0 {#15---20} + +Этот список изменений поможет вам выполнить миграцию с предыдущей версии Pivot 1.5 на полностью обновлённую версию Pivot 2.0 + +:::note +Воспользуйтесь нашим [конвертером для миграции данных из версии 1.5](https://snippet.dhtmlx.com/s4sfdhq4) +::: + +### Изменённое АПИ {#changed-api} + +#### Свойства {#properties} + +Новые свойства не являются полными аналогами предыдущих, но предоставляют расширенную функциональность. + +- [fieldList](https://docs.dhtmlx.com/pivot/1-5/api__pivot_fieldlist_config.html) -> [fields](api/config/fields-property.md) +- [fields](https://docs.dhtmlx.com/pivot/1-5/api__pivot_fields_config.html) -> [config](api/config/config-property.md) +- [mark](https://docs.dhtmlx.com/pivot/1-5/api__pivot_mark_config.html) -> параметр `marks` свойства [tableShape](api/config/tableshape-property.md) +- [types](https://docs.dhtmlx.com/pivot/1-5/api__pivot_types_config.html) -> [methods](api/config/methods-property.md) +- [layout](https://docs.dhtmlx.com/pivot/1-5/api__pivot_layout_config.html) -> [columnShape](api/config/columnshape-property.md), [headerShape](api/config/headershape-property.md), [readonly](api/config/readonly-property.md) +- [customFormat](https://docs.dhtmlx.com/pivot/1-5/api__pivot_customformat_config.html) -> [predicates](api/config/predicates-property.md) - пользовательские функции предварительной обработки данных + +#### События {#events} + +- [filterApply](https://docs.dhtmlx.com/pivot/1-5/api__pivot_filterapply_event.html) -> [apply-filter](api/events/apply-filter-event.md) +- [fieldClick](https://docs.dhtmlx.com/pivot/1-5/api__pivot_fieldclick_event.html) -> идентичного события нет, но вы можете обратиться к [update-field](api/events/update-field-event.md) + +### Удалённое АПИ {#removed-api} + +- [Методы версии 1.5](https://docs.dhtmlx.com/pivot/1-5/api__refs__pivot_methods.html) являются устаревшими, все новые методы доступны здесь: [Методы](api/overview/main-overview.md#pivot-methods) +- [События Pivot 1.5](https://docs.dhtmlx.com/pivot/1-5/api__refs__pivot_events.html) (`change`, `fieldClick`, `applyButtonClick`) более не доступны в Pivot 2.0, однако в новой версии вы найдёте расширенную функциональность (см. [события Pivot](api/overview/events-overview.md)) + +### Важные возможности {#important-features} + +- Экспорт данных: [предыдущий вариант экспорта](https://docs.dhtmlx.com/pivot/1-5/guides__export.html) -> [новый вариант экспорта](guides/exporting-data.md) +- Сортировка: [сортировка полей](https://docs.dhtmlx.com/pivot/1-5/guides__configuration.html#configuringfields) -> [сортировка данных](guides/working-with-data.md#sorting-data) +- Режим дерева: [gridMode](https://docs.dhtmlx.com/pivot/1-5/guides__configuration.html#gridmode) -> [включение режима дерева](guides/configuration.md#enabling-the-tree-mode) +- Формат даты: [настройка полей с датами](https://docs.dhtmlx.com/pivot/1-5/guides__configuration.html#configuringdatefields) -> +[настройка формата даты](guides/localization.md#date-formatting) +- Кастомизация: + - [форматирование ячеек](https://docs.dhtmlx.com/pivot/1-5/guides__customization.html#conditionalformattingofcells) -> [стиль ячеек](guides/stylization.md#cell-style) + - [шаблоны для заголовков](https://docs.dhtmlx.com/pivot/1-5/guides__customization.html#settingtemplatesforheaders) -> + [применение шаблонов к заголовкам](guides/configuration.md#applying-templates-to-headers) + - [шаблоны для ячеек](https://docs.dhtmlx.com/pivot/1-5/guides__customization.html#settingtemplatesforcells) -> + [применение шаблонов к ячейкам](guides/configuration.md#applying-templates-to-cells) +- Фильтрация: [работа с фильтрами](https://docs.dhtmlx.com/pivot/1-5/guides__using_filters.html) -> [фильтрация данных](guides/working-with-data.md#filtering-data) diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/news/whats-new.md b/i18n/ru/docusaurus-plugin-content-docs/current/news/whats-new.md new file mode 100644 index 0000000..9fb04a6 --- /dev/null +++ b/i18n/ru/docusaurus-plugin-content-docs/current/news/whats-new.md @@ -0,0 +1,114 @@ +--- +sidebar_label: Что нового +title: Что нового +description: Вы можете ознакомиться с новыми возможностями DHTMLX Pivot и историей его выпусков в документации библиотеки DHTMLX JavaScript UI. Изучайте руководства для разработчиков и справочник по АПИ, пробуйте примеры кода и живые демо, а также загружайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +--- + +# Что нового {#whats-new} + +Если вы обновляете Pivot с более старой версии, ознакомьтесь со страницей [Миграция на новые версии](news/migration.md) для получения подробной информации. + +## Версия 2.1.1 {#version-211} + +Выпущена 10 июня 2026 г. + +### Исправления {#fixes} + +- Возникает ошибка "getMonth" при применении фильтров строк к наборам данных с отсутствующими или пустыми значениями + +## Версия 2.1 {#version-21} + +Выпущена 6 мая 2025 г. + +### Новая функциональность {#new-functionality} + +- [Возможность фиксировать столбцы справа](guides/configuration.md#freezing-columns-on-the-right) +- [Выравнивание по умолчанию](guides/stylization.md#specific-css-classes) и [форматирование на основе локали](guides/localization.md#number-formatting) для числовых значений +- [Возможность задавать пользовательские числовые форматы](guides/working-with-data.md#applying-formats-to-fields) (для полей дат и числовых полей) через параметр `format`, добавленный в свойство [`fields`](api/config/fields-property.md) +- [Возможность стилизовать ячейки заголовка и таблицы](guides/stylization.md#cell-style) с помощью параметра `cellStyle` свойств [`tableShape`](api/config/tableshape-property.md) и [`headerShape`](api/config/headershape-property.md) +- Возможность вставлять HTML-содержимое в ячейки заголовка и таблицы с помощью вспомогательного метода [`pivot.template`](api/helpers/template.md), определяя шаблон в свойстве `cell` объектов заголовка и столбца (настройка таблицы путём перехвата события [render-table](api/events/render-table-event.md)) +- [Расширены настройки экспорта в Excel и CSV](guides/exporting-data.md): + - для формата "xlsx" поля дат и числовые поля экспортируются как необработанные значения с форматом по умолчанию или форматом, заданным через свойство [`fields`](api/config/fields-property.md) + - возможность задавать имена файла и листа, а также исключать верхний/нижний колонтитул из экспортируемого файла + - возможность добавлять стили и шаблоны для экспортируемых ячеек +- [Возможность фильтровать данные через внешний элемент ввода](api/table/filter-rows.md) +- Визуальная рамка при навигации по ячейкам +- [Интеграция с фреймворками](/category/integration-with-frameworks) + +### Новый АПИ {#new-api} + +- Параметр `right` внутри объекта `split` свойства [`tableShape`](api/config/tableshape-property.md) +- Параметр `cellStyle` внутри свойств [`tableShape`](api/config/tableshape-property.md) и [`headerShape`](api/config/headershape-property.md) +- Параметр `format` внутри массива [`fields`](api/config/fields-property.md) +- Событие [`filter-rows`](api/table/filter-rows.md) внутреннего компонента Table +- [`pivot.template`](api/helpers/template.md) для определения HTML-содержимого ячеек таблицы + +### Исправления {#fixes-21} + +- Итоговые столбцы не сортируются +- Строковые значения с ведущим нулём преобразуются в числа при экспорте +- Шаблон предиката не применяется к строкам/столбцам +- Ошибка наблюдателя изменения размеров в граничных случаях + +### Критические изменения {#breaking-changes} + +- Параметр `colWidth` объекта `sizes` в свойстве `tableShape` переименован в `columnWidth` + +## Версия 2.0.3 {#version-203} + +Выпущена 29 ноября 2024 г. + +### Исправления {#fixes-203} + +- При экспорте в Excel/CSV древовидной структуры экспортируются только верхние ветви +- Экспортируемые столбцы с автоматической шириной оказываются слишком узкими в итоговом файле Excel +- Неверное положение всплывающего окна с фильтрами +- Некорректное поведение после изменения конфигурации с помощью метода setConfig +- Более точные определения типов + +## Версия 2.0.2 {#version-202} + +Выпущена 22 октября 2024 г. + +### Исправления {#fixes-202} + +- Определение типа `columnShape` +- Корректное содержимое пакета + +## Версия 2.0 {#version-20} + +Выпущена 26 августа 2024 г. + +Пожалуйста, ознакомьтесь с обзором выпуска на [странице блога](https://dhtmlx.com/blog/) + +### Критическое изменение {#breaking-change} + +:::note +АПИ версии 1.5 несовместим с АПИ версии 2.0. +::: + +Советы по миграции на новую версию смотрите на странице [Миграция](news/migration.md). + +### Новая функциональность {#new-functionality-20} + +- Pivot 2.0 быстро выполняет рендеринг и генерацию больших наборов данных ([пример](https://snippet.dhtmlx.com/e6qwqrys)) +- Новые возможности настройки внешнего вида и поведения столбцов доступны через свойство [`columnShape`](api/config/columnshape-property.md): + - настройка **autowidth** с возможностью задать maxRows для обработки при расчёте **autoWidth** ([пример](https://snippet.dhtmlx.com/tn1yw14m)) + - функция **firstOnly**, при которой каждое поле с одинаковыми данными анализируется только один раз для расчёта ширины столбца (по умолчанию) +- Теперь можно настраивать внешний вид и поведение заголовков с помощью свойства [`headerShape`](api/config/headershape-property.md), которое позволяет: + - применять шаблон к тексту в заголовках ([пример](https://snippet.dhtmlx.com/g89r9ryw)) + - изменять ориентацию текста ([пример](https://snippet.dhtmlx.com/4qroi8ka)) + - делать столбцы сворачиваемыми ([пример](https://snippet.dhtmlx.com/pt2ljmcm)) +- Форма и размеры таблицы настраиваются через свойство [`tableShape`](api/config/tableshape-property.md), которое позволяет: + - настраивать высоту строк, заголовков, нижнего колонтитула: rowHeight, headerHeight, footerHeight ([Изменение размеров таблицы](guides/configuration.md#resizing-the-table)) + - генерировать итоговые значения не только для столбцов, но и для строк — с помощью параметра **totalColumn** свойства `tableShape` ([пример](https://snippet.dhtmlx.com/f0ag0t9t)) + - скрывать дублирующиеся значения в представлении таблицы (параметр **cleanRows** свойства [`tableShape`](api/config/tableshape-property.md)) + - фиксировать столбцы слева, делая их статичными при прокрутке ([пример](https://snippet.dhtmlx.com/lahf729o)) + - разворачивать или сворачивать все строки ([пример](https://snippet.dhtmlx.com/i4mi6ejn)) +- Добавлены дополнительные возможности для агрегирования данных: + - [ограничение загружаемых данных](guides/working-with-data.md#limiting-loaded-data) + - доступно больше [операций с данными](guides/working-with-data.md#applying-maths-methods) + - [обработка данных с помощью предикатов](guides/working-with-data.md#processing-data-with-predicates) — применение пользовательских функций предварительной обработки данных + - [задание формата даты через локаль](guides/localization.md#date-formatting) +- Добавлены новые методы: [`getTable()`](api/methods/gettable-method.md), [`setConfig()`](api/methods/setconfig-method.md), [`setLocale()`](api/methods/setlocale-method.md), [`showConfigPanel()`](api/methods/showconfigpanel-method.md) +- Добавлены новые события: [`add-field`](api/events/add-field-event.md), [`delete-field`](api/events/delete-field-event.md), [`open-filter`](api/events/open-filter-event.md), [`render-table`](api/events/render-table-event.md), [`move-field`](api/events/move-field-event.md), [`show-config-panel`](api/events/show-config-panel-event.md), [`show-config-panel`](api/events/show-config-panel-event.md), [`update-config`](api/events/update-config-event.md), [`update-field`](api/events/update-field-event.md). From 48c3b63f890c17eaf046287f8253e13e37d48b68 Mon Sep 17 00:00:00 2001 From: Serhii Pylypchuk Date: Thu, 11 Jun 2026 23:01:36 +0300 Subject: [PATCH 37/40] [update] disable docs editUrl link - comment out editUrl in preset-classic docs options to remove the "Edit this page" links - minor indentation fix on the search language array --- docusaurus.config.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docusaurus.config.js b/docusaurus.config.js index a6cc2f7..ca262ee 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -175,7 +175,7 @@ const config = { ({ docs: { sidebarPath: require.resolve('./sidebars.js'), - editUrl: 'https://github.com/DHTMLX/docs-pivot/edit/master/', + // editUrl: 'https://github.com/DHTMLX/docs-pivot/edit/master/', routeBasePath: '/', }, theme: { @@ -219,7 +219,7 @@ const config = { removeDefaultStemmer: true, removeDefaultStopWordFilter: true, explicitSearchResultPath: true, - language: ["en", "de", "ru", "zh"] + language: ["en", "de", "ru", "zh"] } ] ], From 044f97257240e3508376b75ff38b8c98ae6815b9 Mon Sep 17 00:00:00 2001 From: Serhii Pylypchuk Date: Thu, 11 Jun 2026 23:01:42 +0300 Subject: [PATCH 38/40] [update] normalize bold label punctuation in docs - move the colon outside the bold markers in "Related ..." and export option labels: **Label:** -> **Label**: - fix a stray double colon (**Related articles:**: -> **Related articles**:) - applied to 14 English source files and their Korean translations --- docs/api/config/columnshape-property.md | 2 +- docs/api/config/configpanel-property.md | 4 ++-- docs/api/config/fields-property.md | 2 +- docs/api/config/limits-property.md | 2 +- docs/api/config/methods-property.md | 2 +- docs/api/config/readonly-property.md | 2 +- docs/api/config/tableshape-property.md | 2 +- docs/api/events/render-table-event.md | 4 ++-- docs/api/helpers/template.md | 2 +- docs/api/methods/gettable-method.md | 2 +- docs/api/table/export.md | 6 +++--- docs/guides/configuration.md | 2 +- docs/guides/loading-data.md | 2 +- docs/guides/working-with-data.md | 2 +- .../current/api/config/columnshape-property.md | 2 +- .../current/api/config/configpanel-property.md | 4 ++-- .../current/api/config/fields-property.md | 2 +- .../current/api/config/limits-property.md | 2 +- .../current/api/config/methods-property.md | 2 +- .../current/api/config/readonly-property.md | 2 +- .../current/api/config/tableshape-property.md | 2 +- .../current/api/events/render-table-event.md | 4 ++-- .../current/api/helpers/template.md | 2 +- .../current/api/methods/gettable-method.md | 2 +- .../current/api/table/export.md | 6 +++--- .../current/guides/configuration.md | 2 +- .../current/guides/loading-data.md | 2 +- .../current/guides/working-with-data.md | 2 +- 28 files changed, 36 insertions(+), 36 deletions(-) diff --git a/docs/api/config/columnshape-property.md b/docs/api/config/columnshape-property.md index ea6134a..ce45d68 100644 --- a/docs/api/config/columnshape-property.md +++ b/docs/api/config/columnshape-property.md @@ -77,6 +77,6 @@ const table = new pivot.Pivot("#root", { }); ~~~ -**Related samples:** +**Related samples**: - [Pivot 2. Auto width. Sizing columns to content](https://snippet.dhtmlx.com/tn1yw14m) - [Pivot 2. Set columns width](https://snippet.dhtmlx.com/ceu34kkn) diff --git a/docs/api/config/configpanel-property.md b/docs/api/config/configpanel-property.md index 4d0c92c..c9547ad 100644 --- a/docs/api/config/configpanel-property.md +++ b/docs/api/config/configpanel-property.md @@ -50,9 +50,9 @@ const table = new pivot.Pivot("#root", { }); ~~~ -**Related sample:** [Pivot 2.0: Toggle visibility of configuration panel](https://snippet.dhtmlx.com/1xq1x5bo) +**Related sample**: [Pivot 2.0: Toggle visibility of configuration panel](https://snippet.dhtmlx.com/1xq1x5bo) -**Related articles:** +**Related articles**: - [`show-config-panel` event](api/events/show-config-panel-event.md) - [`showConfigPanel()` method](api/methods/showconfigpanel-method.md) - [Controlling visibility of Configuration panel](guides/configuration.md#controlling-visibility-of-configuration-panel) diff --git a/docs/api/config/fields-property.md b/docs/api/config/fields-property.md index fc5cb21..996d257 100644 --- a/docs/api/config/fields-property.md +++ b/docs/api/config/fields-property.md @@ -109,4 +109,4 @@ const table = new pivot.Pivot("#root", { - [Number formatting](guides/localization.md#number-formatting) - [Applying formats to fields](guides/working-with-data.md#applying-formats-to-fields) -**Related sample:** [Pivot 2. Defining fields formats](https://snippet.dhtmlx.com/77nc4j8v) \ No newline at end of file +**Related sample**: [Pivot 2. Defining fields formats](https://snippet.dhtmlx.com/77nc4j8v) \ No newline at end of file diff --git a/docs/api/config/limits-property.md b/docs/api/config/limits-property.md index 4b6c54e..819b2d3 100644 --- a/docs/api/config/limits-property.md +++ b/docs/api/config/limits-property.md @@ -58,4 +58,4 @@ const table = new pivot.Pivot("#root", { }); ~~~ -**Related sample:** [Pivot 2. Data limits](https://snippet.dhtmlx.com/7ryns8oe) +**Related sample**: [Pivot 2. Data limits](https://snippet.dhtmlx.com/7ryns8oe) diff --git a/docs/api/config/methods-property.md b/docs/api/config/methods-property.md index d3702f7..4541b0c 100644 --- a/docs/api/config/methods-property.md +++ b/docs/api/config/methods-property.md @@ -158,6 +158,6 @@ const table = new pivot.Pivot("#root", { }); ~~~ -**Related sample:** [Pivot 2. Custom maths methods](https://snippet.dhtmlx.com/lv90d8q2) +**Related sample**: [Pivot 2. Custom maths methods](https://snippet.dhtmlx.com/lv90d8q2) **Related article**: [Applying maths methods](guides/working-with-data.md#applying-maths-methods) diff --git a/docs/api/config/readonly-property.md b/docs/api/config/readonly-property.md index f29b4ad..ac807ad 100644 --- a/docs/api/config/readonly-property.md +++ b/docs/api/config/readonly-property.md @@ -49,4 +49,4 @@ const table = new pivot.Pivot("#root", { }); ~~~ -**Related sample:** [Pivot 2. Readonly mode](https://snippet.dhtmlx.com/0k0mvycv) \ No newline at end of file +**Related sample**: [Pivot 2. Readonly mode](https://snippet.dhtmlx.com/0k0mvycv) \ No newline at end of file diff --git a/docs/api/config/tableshape-property.md b/docs/api/config/tableshape-property.md index fe1b8b0..afa57d1 100644 --- a/docs/api/config/tableshape-property.md +++ b/docs/api/config/tableshape-property.md @@ -118,7 +118,7 @@ const table = new pivot.Pivot("#root", { }); ~~~ -**Related samples:** +**Related samples**: - [Pivot 2. Tree mode](https://snippet.dhtmlx.com/6ylkoukn) - [Pivot 2. Frozen (fixed) columns](https://snippet.dhtmlx.com/lahf729o) diff --git a/docs/api/events/render-table-event.md b/docs/api/events/render-table-event.md index 324321e..2233ea2 100644 --- a/docs/api/events/render-table-event.md +++ b/docs/api/events/render-table-event.md @@ -173,6 +173,6 @@ function closeAll() { See also how to configure the split feature using the `render-table` event: [Freezing columns](guides/configuration.md#freezing-columns). -**Related article:** [pivot.template helper](api/helpers/template.md) +**Related article**: [pivot.template helper](api/helpers/template.md) -**Related sample:** [Pivot 2. Custom frozen (fixed) columns (your number)](https://snippet.dhtmlx.com/53erlmgp) +**Related sample**: [Pivot 2. Custom frozen (fixed) columns (your number)](https://snippet.dhtmlx.com/53erlmgp) diff --git a/docs/api/helpers/template.md b/docs/api/helpers/template.md index 1172023..be2dc08 100644 --- a/docs/api/helpers/template.md +++ b/docs/api/helpers/template.md @@ -82,7 +82,7 @@ The snippet demonstrates how you can add icons to: -**Related articles:** +**Related articles**: - [`render-table`](api/events/render-table-event.md) - [Applying templates to cells](guides/configuration.md#applying-templates-to-cells) diff --git a/docs/api/methods/gettable-method.md b/docs/api/methods/gettable-method.md index 803d2a8..a2c96f4 100644 --- a/docs/api/methods/gettable-method.md +++ b/docs/api/methods/gettable-method.md @@ -67,7 +67,7 @@ exportButton.textContent = "Export"; document.body.appendChild(exportButton); ~~~ -**Related articles:**: +**Related articles**: - [`close-row`](api/table/close-row.md) - [`export`](api/table/export.md) diff --git a/docs/api/table/export.md b/docs/api/table/export.md index a99f976..0653a71 100644 --- a/docs/api/table/export.md +++ b/docs/api/table/export.md @@ -61,7 +61,7 @@ The `export` action of the Table widget has the next parameters that you can con - `options` - an object with the export options; options differ depending on the format type - `result` - the result of the exported Excel or CSV data (usually Blob or file depending on the `download` option) - **Common options for both formats ("csv" "xlsx" ):** + **Common options for both formats ("csv" "xlsx" )**: - `format` (string) - (optional) the export format that can be "csv" or "xlsx" - `fileName` (string) - (optional) a file name ("data" by default) @@ -69,7 +69,7 @@ The `export` action of the Table widget has the next parameters that you can con - `footer` (boolean) - (optional) defines if a footer should be exported (**true** by default) - `download` (boolean) - (optional) defines whether to download a file. **true** is set by default. If set to **false**, the file will not be downloaded, Excel or CSV data (Blob) will be available as `ev.result` - **Options specific for "xlsx" format:** + **Options specific for "xlsx" format**: - `sheetName` (string) - a name of Excel sheet ( "data" by default) - `styles` (boolean or object) - if set to **false**, grid will be exported without any styling; can be configured using a hash of style properties: @@ -92,7 +92,7 @@ The `export` action of the Table widget has the next parameters that you can con By default, for the "xlsx" format, date and number fields are exported as raw values with default format or the format defined via the [`fields`](api/config/fields-property.md) property. But if a template is defined for a field (see the [`tableShape`](api/config/tableshape-property.md) property), it exports the rendered value defined by that template. In case both the template and `format` are set, the template settings will override the format ones. ::: - **Options specific for "csv" format:** + **Options specific for "csv" format**: - `rows` (string) - (optional) rows delimiter, "\n" by default - `cols` (string) - (optional) columns delimiter, "\t" by default diff --git a/docs/guides/configuration.md b/docs/guides/configuration.md index 01cb9aa..1f6437e 100644 --- a/docs/guides/configuration.md +++ b/docs/guides/configuration.md @@ -732,7 +732,7 @@ The Configuration panel supports the following field operations: - [`update-field`](api/events/update-field-event.md) — update a field's method or settings - [`move-field`](api/events/move-field-event.md) — reorder fields within an area -**Related samples:** +**Related samples**: - [Pivot 2. Adding text templates for table and header cells](https://snippet.dhtmlx.com/n9ylp6b2) - [Pivot 2. Custom frozen (fixed) columns (your number)](https://snippet.dhtmlx.com/53erlmgp) - [Pivot 2. Expand and collapse all rows](https://snippet.dhtmlx.com/i4mi6ejn) diff --git a/docs/guides/loading-data.md b/docs/guides/loading-data.md index 3f6d41e..86f08e8 100644 --- a/docs/guides/loading-data.md +++ b/docs/guides/loading-data.md @@ -271,7 +271,7 @@ The snippet below loads JSON and CSV data: -**Related samples:** +**Related samples**: - [Pivot 2. Date format](https://snippet.dhtmlx.com/shn1l794) - [Pivot 2. Different datasets](https://snippet.dhtmlx.com/6xtqge4i) - [Pivot 2. Large dataset](https://snippet.dhtmlx.com/e6qwqrys) diff --git a/docs/guides/working-with-data.md b/docs/guides/working-with-data.md index fea77dc..ab26158 100644 --- a/docs/guides/working-with-data.md +++ b/docs/guides/working-with-data.md @@ -679,7 +679,7 @@ The snippet below applies custom math operations: -**Related samples:** +**Related samples**: - [Pivot 2. Dataset with aliases](https://snippet.dhtmlx.com/7vc68rqd) - [Pivot 2. Defining fields formats](https://snippet.dhtmlx.com/77nc4j8v) diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/api/config/columnshape-property.md b/i18n/ko/docusaurus-plugin-content-docs/current/api/config/columnshape-property.md index 62d00c7..c3d15c6 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/api/config/columnshape-property.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/api/config/columnshape-property.md @@ -77,6 +77,6 @@ const table = new pivot.Pivot("#root", { }); ~~~ -**관련 샘플:** +**관련 샘플**: - [Pivot 2. 자동 너비 - 콘텐츠에 맞게 열 크기 조정](https://snippet.dhtmlx.com/tn1yw14m) - [Pivot 2. 열 너비 설정](https://snippet.dhtmlx.com/ceu34kkn) diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/api/config/configpanel-property.md b/i18n/ko/docusaurus-plugin-content-docs/current/api/config/configpanel-property.md index d3aa082..a4477fc 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/api/config/configpanel-property.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/api/config/configpanel-property.md @@ -50,9 +50,9 @@ const table = new pivot.Pivot("#root", { }); ~~~ -**관련 샘플:** [Pivot 2.0: 구성 패널 표시 여부 전환](https://snippet.dhtmlx.com/1xq1x5bo) +**관련 샘플**: [Pivot 2.0: 구성 패널 표시 여부 전환](https://snippet.dhtmlx.com/1xq1x5bo) -**관련 문서:** +**관련 문서**: - [`show-config-panel` 이벤트](api/events/show-config-panel-event.md) - [`showConfigPanel()` 메서드](api/methods/showconfigpanel-method.md) - [구성 패널 표시 여부 제어](guides/configuration.md#controlling-visibility-of-configuration-panel) diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/api/config/fields-property.md b/i18n/ko/docusaurus-plugin-content-docs/current/api/config/fields-property.md index 76536c9..65df258 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/api/config/fields-property.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/api/config/fields-property.md @@ -109,4 +109,4 @@ const table = new pivot.Pivot("#root", { - [숫자 형식 지정](guides/localization.md#number-formatting) - [필드에 형식 적용하기](guides/working-with-data.md#applying-formats-to-fields) -**관련 샘플:** [Pivot 2. 필드 형식 정의하기](https://snippet.dhtmlx.com/77nc4j8v) +**관련 샘플**: [Pivot 2. 필드 형식 정의하기](https://snippet.dhtmlx.com/77nc4j8v) diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/api/config/limits-property.md b/i18n/ko/docusaurus-plugin-content-docs/current/api/config/limits-property.md index efbc9ee..84d5543 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/api/config/limits-property.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/api/config/limits-property.md @@ -58,4 +58,4 @@ const table = new pivot.Pivot("#root", { }); ~~~ -**관련 샘플:** [Pivot 2. 데이터 제한](https://snippet.dhtmlx.com/7ryns8oe) +**관련 샘플**: [Pivot 2. 데이터 제한](https://snippet.dhtmlx.com/7ryns8oe) diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/api/config/methods-property.md b/i18n/ko/docusaurus-plugin-content-docs/current/api/config/methods-property.md index b745e2f..8e38088 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/api/config/methods-property.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/api/config/methods-property.md @@ -158,6 +158,6 @@ const table = new pivot.Pivot("#root", { }); ~~~ -**관련 샘플:** [Pivot 2. 사용자 정의 수학 메서드](https://snippet.dhtmlx.com/lv90d8q2) +**관련 샘플**: [Pivot 2. 사용자 정의 수학 메서드](https://snippet.dhtmlx.com/lv90d8q2) **관련 문서**: [수학 메서드 적용하기](guides/working-with-data.md#applying-maths-methods) diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/api/config/readonly-property.md b/i18n/ko/docusaurus-plugin-content-docs/current/api/config/readonly-property.md index ce17bef..faca09c 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/api/config/readonly-property.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/api/config/readonly-property.md @@ -49,4 +49,4 @@ const table = new pivot.Pivot("#root", { }); ~~~ -**관련 샘플:** [Pivot 2. 읽기 전용 모드](https://snippet.dhtmlx.com/0k0mvycv) +**관련 샘플**: [Pivot 2. 읽기 전용 모드](https://snippet.dhtmlx.com/0k0mvycv) diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/api/config/tableshape-property.md b/i18n/ko/docusaurus-plugin-content-docs/current/api/config/tableshape-property.md index da888d4..8dfae9b 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/api/config/tableshape-property.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/api/config/tableshape-property.md @@ -118,7 +118,7 @@ const table = new pivot.Pivot("#root", { }); ~~~ -**관련 샘플:** +**관련 샘플**: - [Pivot 2. 트리 모드](https://snippet.dhtmlx.com/6ylkoukn) - [Pivot 2. 고정 열](https://snippet.dhtmlx.com/lahf729o) diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/api/events/render-table-event.md b/i18n/ko/docusaurus-plugin-content-docs/current/api/events/render-table-event.md index 6b6e7ba..588c297 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/api/events/render-table-event.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/api/events/render-table-event.md @@ -173,6 +173,6 @@ function closeAll() { `render-table` 이벤트를 사용하여 열 고정 기능을 구성하는 방법도 참조하세요: [열 고정](guides/configuration.md#freezing-columns). -**관련 글:** [pivot.template 헬퍼](api/helpers/template.md) +**관련 글**: [pivot.template 헬퍼](api/helpers/template.md) -**관련 샘플:** [Pivot 2. 커스텀 고정(고정) 열 (사용자 지정 수)](https://snippet.dhtmlx.com/53erlmgp) +**관련 샘플**: [Pivot 2. 커스텀 고정(고정) 열 (사용자 지정 수)](https://snippet.dhtmlx.com/53erlmgp) diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/api/helpers/template.md b/i18n/ko/docusaurus-plugin-content-docs/current/api/helpers/template.md index 78807de..f69e40d 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/api/helpers/template.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/api/helpers/template.md @@ -82,7 +82,7 @@ pivot.template({value, field, method, cell, column}) => string; -**관련 문서:** +**관련 문서**: - [`render-table`](api/events/render-table-event.md) - [셀에 템플릿 적용](guides/configuration.md#applying-templates-to-cells) diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/api/methods/gettable-method.md b/i18n/ko/docusaurus-plugin-content-docs/current/api/methods/gettable-method.md index bbec0f8..07420b1 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/api/methods/gettable-method.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/api/methods/gettable-method.md @@ -67,7 +67,7 @@ exportButton.textContent = "Export"; document.body.appendChild(exportButton); ~~~ -**관련 문서:**: +**관련 문서**: - [`close-row`](api/table/close-row.md) - [`export`](api/table/export.md) diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/api/table/export.md b/i18n/ko/docusaurus-plugin-content-docs/current/api/table/export.md index 55748f0..3ca351e 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/api/table/export.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/api/table/export.md @@ -61,7 +61,7 @@ Table 위젯의 `export` 액션에는 필요에 따라 구성할 수 있는 다 - `options` - 내보내기 옵션이 담긴 객체입니다. 옵션은 형식 유형에 따라 다릅니다 - `result` - 내보낸 Excel 또는 CSV 데이터의 결과값입니다 (일반적으로 `download` 옵션에 따라 Blob 또는 파일 형태입니다) - **두 형식 모두에 적용되는 공통 옵션 ("csv" 및 "xlsx"):** + **두 형식 모두에 적용되는 공통 옵션 ("csv" 및 "xlsx")**: - `format` (string) - (선택) 내보내기 형식으로 "csv" 또는 "xlsx"를 지정할 수 있습니다 - `fileName` (string) - (선택) 파일 이름입니다 (기본값: "data") @@ -69,7 +69,7 @@ Table 위젯의 `export` 액션에는 필요에 따라 구성할 수 있는 다 - `footer` (boolean) - (선택) 푸터를 내보낼지 여부를 지정합니다 (기본값: **true**) - `download` (boolean) - (선택) 파일 다운로드 여부를 지정합니다. 기본값은 **true**입니다. **false**로 설정하면 파일이 다운로드되지 않으며, Excel 또는 CSV 데이터(Blob)는 `ev.result`로 접근할 수 있습니다 - **"xlsx" 형식에 특화된 옵션:** + **"xlsx" 형식에 특화된 옵션**: - `sheetName` (string) - Excel 시트 이름입니다 (기본값: "data") - `styles` (boolean 또는 object) - **false**로 설정하면 스타일 없이 그리드를 내보냅니다. 스타일 속성 해시를 사용하여 구성할 수 있습니다: @@ -92,7 +92,7 @@ Table 위젯의 `export` 액션에는 필요에 따라 구성할 수 있는 다 기본적으로 "xlsx" 형식의 경우 날짜 및 숫자 필드는 기본 형식 또는 [`fields`](api/config/fields-property.md) 속성을 통해 정의된 형식의 원시 값으로 내보내집니다. 단, 필드에 템플릿이 정의된 경우([`tableShape`](api/config/tableshape-property.md) 속성 참고) 해당 템플릿에서 정의된 렌더링 값으로 내보냅니다. 템플릿과 `format`이 모두 설정된 경우, 템플릿 설정이 형식 설정보다 우선 적용됩니다. ::: - **"csv" 형식에 특화된 옵션:** + **"csv" 형식에 특화된 옵션**: - `rows` (string) - (선택) 행 구분자입니다 (기본값: "\n") - `cols` (string) - (선택) 열 구분자입니다 (기본값: "\t") diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/guides/configuration.md b/i18n/ko/docusaurus-plugin-content-docs/current/guides/configuration.md index 60a0e51..fd4fa1e 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/guides/configuration.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/guides/configuration.md @@ -732,7 +732,7 @@ table.api.intercept("show-config-panel", () => { - [`update-field`](api/events/update-field-event.md) — 필드의 메서드 또는 설정을 업데이트합니다 - [`move-field`](api/events/move-field-event.md) — 영역 내 필드의 순서를 변경합니다 -**관련 샘플:** +**관련 샘플**: - [Pivot 2. 테이블 및 헤더 셀에 텍스트 템플릿 추가](https://snippet.dhtmlx.com/n9ylp6b2) - [Pivot 2. 사용자 정의 고정(fixed) 열 (원하는 수)](https://snippet.dhtmlx.com/53erlmgp) - [Pivot 2. 모든 행 펼치기 및 축소하기](https://snippet.dhtmlx.com/i4mi6ejn) diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/guides/loading-data.md b/i18n/ko/docusaurus-plugin-content-docs/current/guides/loading-data.md index fe2a85f..9eb37c3 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/guides/loading-data.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/guides/loading-data.md @@ -271,7 +271,7 @@ document.body.appendChild(importButton); -**관련 샘플:** +**관련 샘플**: - [Pivot 2. 날짜 형식](https://snippet.dhtmlx.com/shn1l794) - [Pivot 2. 다양한 데이터셋](https://snippet.dhtmlx.com/6xtqge4i) - [Pivot 2. 대용량 데이터셋](https://snippet.dhtmlx.com/e6qwqrys) diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/guides/working-with-data.md b/i18n/ko/docusaurus-plugin-content-docs/current/guides/working-with-data.md index bd18f7a..0afdb45 100644 --- a/i18n/ko/docusaurus-plugin-content-docs/current/guides/working-with-data.md +++ b/i18n/ko/docusaurus-plugin-content-docs/current/guides/working-with-data.md @@ -679,7 +679,7 @@ const table = new pivot.Pivot("#root", { -**관련 샘플:** +**관련 샘플**: - [Pivot 2. 별칭이 있는 데이터셋](https://snippet.dhtmlx.com/7vc68rqd) - [Pivot 2. 필드 포맷 정의](https://snippet.dhtmlx.com/77nc4j8v) From 682b473dff7cdf5a8fccfd74275bb732aed741ca Mon Sep 17 00:00:00 2001 From: Serhii Pylypchuk Date: Thu, 11 Jun 2026 23:10:58 +0300 Subject: [PATCH 39/40] [update] normalize bold label punctuation in zh docs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - move the full-width colon outside the bold markers in "Related ..." and export option labels: **标签:** -> **标签**: - aligns zh with the English source, de, ru and ko locales - 18 labels across 14 Chinese translation files --- .../current/api/config/columnshape-property.md | 2 +- .../current/api/config/configpanel-property.md | 4 ++-- .../current/api/config/fields-property.md | 2 +- .../current/api/config/limits-property.md | 2 +- .../current/api/config/methods-property.md | 2 +- .../current/api/config/readonly-property.md | 2 +- .../current/api/config/tableshape-property.md | 2 +- .../current/api/events/render-table-event.md | 4 ++-- .../current/api/helpers/template.md | 2 +- .../current/api/methods/gettable-method.md | 2 +- .../current/api/table/export.md | 6 +++--- .../current/guides/configuration.md | 2 +- .../current/guides/loading-data.md | 2 +- .../current/guides/working-with-data.md | 2 +- 14 files changed, 18 insertions(+), 18 deletions(-) diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/api/config/columnshape-property.md b/i18n/zh/docusaurus-plugin-content-docs/current/api/config/columnshape-property.md index 7d8411c..9a21511 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/api/config/columnshape-property.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/api/config/columnshape-property.md @@ -77,6 +77,6 @@ const table = new pivot.Pivot("#root", { }); ~~~ -**相关示例:** +**相关示例**: - [Pivot 2. 自动宽度:根据内容调整列宽](https://snippet.dhtmlx.com/tn1yw14m) - [Pivot 2. 设置列宽](https://snippet.dhtmlx.com/ceu34kkn) diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/api/config/configpanel-property.md b/i18n/zh/docusaurus-plugin-content-docs/current/api/config/configpanel-property.md index 260b4a6..55cb9ca 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/api/config/configpanel-property.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/api/config/configpanel-property.md @@ -50,9 +50,9 @@ const table = new pivot.Pivot("#root", { }); ~~~ -**相关示例:** [Pivot 2.0:切换配置面板的显示状态](https://snippet.dhtmlx.com/1xq1x5bo) +**相关示例**: [Pivot 2.0:切换配置面板的显示状态](https://snippet.dhtmlx.com/1xq1x5bo) -**相关文章:** +**相关文章**: - [`show-config-panel` 事件](api/events/show-config-panel-event.md) - [`showConfigPanel()` 方法](api/methods/showconfigpanel-method.md) - [控制配置面板的显示状态](guides/configuration.md#controlling-visibility-of-configuration-panel) diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/api/config/fields-property.md b/i18n/zh/docusaurus-plugin-content-docs/current/api/config/fields-property.md index 640539c..c820fdd 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/api/config/fields-property.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/api/config/fields-property.md @@ -109,4 +109,4 @@ const table = new pivot.Pivot("#root", { - [数字格式化](guides/localization.md#number-formatting) - [为字段应用格式](guides/working-with-data.md#applying-formats-to-fields) -**相关示例:** [Pivot 2. 定义字段格式](https://snippet.dhtmlx.com/77nc4j8v) +**相关示例**: [Pivot 2. 定义字段格式](https://snippet.dhtmlx.com/77nc4j8v) diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/api/config/limits-property.md b/i18n/zh/docusaurus-plugin-content-docs/current/api/config/limits-property.md index f88daa6..8996cf5 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/api/config/limits-property.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/api/config/limits-property.md @@ -58,4 +58,4 @@ const table = new pivot.Pivot("#root", { }); ~~~ -**相关示例:** [Pivot 2. 数据限制](https://snippet.dhtmlx.com/7ryns8oe) +**相关示例**: [Pivot 2. 数据限制](https://snippet.dhtmlx.com/7ryns8oe) diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/api/config/methods-property.md b/i18n/zh/docusaurus-plugin-content-docs/current/api/config/methods-property.md index d0089b6..9ece012 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/api/config/methods-property.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/api/config/methods-property.md @@ -158,6 +158,6 @@ const table = new pivot.Pivot("#root", { }); ~~~ -**相关示例:** [Pivot 2. 自定义数学方法](https://snippet.dhtmlx.com/lv90d8q2) +**相关示例**: [Pivot 2. 自定义数学方法](https://snippet.dhtmlx.com/lv90d8q2) **相关文章**:[应用数学方法](guides/working-with-data.md#applying-maths-methods) diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/api/config/readonly-property.md b/i18n/zh/docusaurus-plugin-content-docs/current/api/config/readonly-property.md index 737d8b3..53c8f6b 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/api/config/readonly-property.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/api/config/readonly-property.md @@ -49,4 +49,4 @@ const table = new pivot.Pivot("#root", { }); ~~~ -**相关示例:** [Pivot 2. 只读模式](https://snippet.dhtmlx.com/0k0mvycv) +**相关示例**: [Pivot 2. 只读模式](https://snippet.dhtmlx.com/0k0mvycv) diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/api/config/tableshape-property.md b/i18n/zh/docusaurus-plugin-content-docs/current/api/config/tableshape-property.md index cce962d..9bfbc15 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/api/config/tableshape-property.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/api/config/tableshape-property.md @@ -118,7 +118,7 @@ const table = new pivot.Pivot("#root", { }); ~~~ -**相关示例:** +**相关示例**: - [Pivot 2. 树形模式](https://snippet.dhtmlx.com/6ylkoukn) - [Pivot 2. 冻结(固定)列](https://snippet.dhtmlx.com/lahf729o) diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/api/events/render-table-event.md b/i18n/zh/docusaurus-plugin-content-docs/current/api/events/render-table-event.md index c9a9739..3c1b527 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/api/events/render-table-event.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/api/events/render-table-event.md @@ -173,6 +173,6 @@ function closeAll() { 另请参阅如何使用 `render-table` 事件配置拆分功能:[冻结列](guides/configuration.md#freezing-columns)。 -**相关文章:** [pivot.template 辅助函数](api/helpers/template.md) +**相关文章**: [pivot.template 辅助函数](api/helpers/template.md) -**相关示例:** [Pivot 2. 自定义冻结(固定)列(自定义数量)](https://snippet.dhtmlx.com/53erlmgp) +**相关示例**: [Pivot 2. 自定义冻结(固定)列(自定义数量)](https://snippet.dhtmlx.com/53erlmgp) diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/api/helpers/template.md b/i18n/zh/docusaurus-plugin-content-docs/current/api/helpers/template.md index 8d57030..c2bbf50 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/api/helpers/template.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/api/helpers/template.md @@ -82,7 +82,7 @@ pivot.template({value, field, method, cell, column}) => string; -**相关文章:** +**相关文章**: - [`render-table`](api/events/render-table-event.md) - [为单元格应用模板](guides/configuration.md#applying-templates-to-cells) diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/api/methods/gettable-method.md b/i18n/zh/docusaurus-plugin-content-docs/current/api/methods/gettable-method.md index df45088..eaff736 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/api/methods/gettable-method.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/api/methods/gettable-method.md @@ -67,7 +67,7 @@ exportButton.textContent = "Export"; document.body.appendChild(exportButton); ~~~ -**相关文章:** +**相关文章**: - [`close-row`](api/table/close-row.md) - [`export`](api/table/export.md) diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/api/table/export.md b/i18n/zh/docusaurus-plugin-content-docs/current/api/table/export.md index 6669e04..cb7fee5 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/api/table/export.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/api/table/export.md @@ -61,7 +61,7 @@ Table widget 的 `export` 动作具有以下可配置参数: - `options` - 包含导出选项的对象;选项因格式类型而异 - `result` - 导出的 Excel 或 CSV 数据的结果(通常为 Blob 或文件,取决于 `download` 选项) - **两种格式("csv" 和 "xlsx")的通用选项:** + **两种格式("csv" 和 "xlsx")的通用选项**: - `format` (string) - (可选)导出格式,可以是 "csv" 或 "xlsx" - `fileName` (string) - (可选)文件名(默认为 "data") @@ -69,7 +69,7 @@ Table widget 的 `export` 动作具有以下可配置参数: - `footer` (boolean) - (可选)定义是否导出表尾(默认为 **true**) - `download` (boolean) - (可选)定义是否下载文件。默认设置为 **true**。若设置为 **false**,文件将不会被下载,Excel 或 CSV 数据(Blob)将通过 `ev.result` 获取 - **"xlsx" 格式专有选项:** + **"xlsx" 格式专有选项**: - `sheetName` (string) - Excel 工作表的名称(默认为 "data") - `styles` (boolean 或对象) - 若设置为 **false**,表格将不带任何样式导出;可通过样式属性的哈希对象进行配置: @@ -92,7 +92,7 @@ Table widget 的 `export` 动作具有以下可配置参数: 默认情况下,对于 "xlsx" 格式,日期和数字字段将以原始值导出,使用默认格式或通过 [`fields`](api/config/fields-property.md) 属性定义的格式。但如果为某个字段定义了模板(参见 [`tableShape`](api/config/tableshape-property.md) 属性),则会导出该模板定义的渲染值。若同时设置了模板和 `format`,模板设置将覆盖格式设置。 ::: - **"csv" 格式专有选项:** + **"csv" 格式专有选项**: - `rows` (string) - (可选)行分隔符,默认为 "\n" - `cols` (string) - (可选)列分隔符,默认为 "\t" diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/guides/configuration.md b/i18n/zh/docusaurus-plugin-content-docs/current/guides/configuration.md index fd15c5d..40013c3 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/guides/configuration.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/guides/configuration.md @@ -732,7 +732,7 @@ table.api.intercept("show-config-panel", () => { - [`update-field`](api/events/update-field-event.md) — 更新字段的方法或设置 - [`move-field`](api/events/move-field-event.md) — 在区域内对字段重新排序 -**相关示例:** +**相关示例**: - [Pivot 2. 为表格和表头单元格添加文本模板](https://snippet.dhtmlx.com/n9ylp6b2) - [Pivot 2. 自定义冻结(固定)列(自定义数量)](https://snippet.dhtmlx.com/53erlmgp) - [Pivot 2. 展开和折叠所有行](https://snippet.dhtmlx.com/i4mi6ejn) diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/guides/loading-data.md b/i18n/zh/docusaurus-plugin-content-docs/current/guides/loading-data.md index ee09b36..2a04cd5 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/guides/loading-data.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/guides/loading-data.md @@ -271,7 +271,7 @@ document.body.appendChild(importButton); -**相关示例:** +**相关示例**: - [Pivot 2. 日期格式](https://snippet.dhtmlx.com/shn1l794) - [Pivot 2. 不同数据集](https://snippet.dhtmlx.com/6xtqge4i) - [Pivot 2. 大型数据集](https://snippet.dhtmlx.com/e6qwqrys) diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/guides/working-with-data.md b/i18n/zh/docusaurus-plugin-content-docs/current/guides/working-with-data.md index 3b6ea07..f7efc2b 100644 --- a/i18n/zh/docusaurus-plugin-content-docs/current/guides/working-with-data.md +++ b/i18n/zh/docusaurus-plugin-content-docs/current/guides/working-with-data.md @@ -679,7 +679,7 @@ const table = new pivot.Pivot("#root", { -**相关示例:** +**相关示例**: - [Pivot 2. 带别名的数据集](https://snippet.dhtmlx.com/7vc68rqd) - [Pivot 2. 定义字段格式](https://snippet.dhtmlx.com/77nc4j8v) From ed9f027a0074a8227818c0a872d073508b5c841b Mon Sep 17 00:00:00 2001 From: Serhii Pylypchuk Date: Thu, 11 Jun 2026 23:16:50 +0300 Subject: [PATCH 40/40] [update] normalize API term in ru docs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - replace Cyrillic "АПИ" with "API" in description frontmatter - affects ~62 localized ru documentation pages --- .../current/api/config/columnshape-property.md | 2 +- .../current/api/config/config-property.md | 2 +- .../current/api/config/configpanel-property.md | 2 +- .../current/api/config/data-property.md | 2 +- .../current/api/config/fields-property.md | 2 +- .../current/api/config/headershape-property.md | 2 +- .../current/api/config/limits-property.md | 2 +- .../current/api/config/locale-property.md | 2 +- .../current/api/config/methods-property.md | 2 +- .../current/api/config/predicates-property.md | 2 +- .../current/api/config/readonly-property.md | 2 +- .../current/api/config/tableshape-property.md | 2 +- .../current/api/events/add-field-event.md | 2 +- .../current/api/events/apply-filter-event.md | 2 +- .../current/api/events/delete-field-event.md | 4 ++-- .../current/api/events/move-field-event.md | 2 +- .../current/api/events/open-filter-event.md | 2 +- .../current/api/events/render-table-event.md | 2 +- .../current/api/events/show-config-panel-event.md | 2 +- .../current/api/events/update-config-event.md | 2 +- .../current/api/events/update-field-event.md | 2 +- .../current/api/helpers/template.md | 2 +- .../current/api/internal/detach-method.md | 2 +- .../current/api/internal/exec-method.md | 4 ++-- .../current/api/internal/getreactivestate-method.md | 2 +- .../current/api/internal/getstate-method.md | 2 +- .../current/api/internal/getstores-method.md | 2 +- .../current/api/internal/intercept-method.md | 2 +- .../current/api/internal/on-method.md | 2 +- .../current/api/internal/setnext-method.md | 2 +- .../current/api/methods/gettable-method.md | 8 ++++---- .../current/api/methods/setconfig-method.md | 2 +- .../current/api/methods/setlocale-method.md | 2 +- .../current/api/methods/showconfigpanel-method.md | 2 +- .../current/api/overview/events-overview.md | 2 +- .../current/api/overview/internal-eventbus-overview.md | 2 +- .../current/api/overview/internal-state-overview.md | 2 +- .../current/api/overview/main-overview.md | 10 +++++----- .../current/api/overview/methods-overview.md | 2 +- .../current/api/overview/properties-overview.md | 2 +- .../current/api/overview/table-events-overview.md | 4 ++-- .../current/api/table/close-row.md | 2 +- .../current/api/table/export.md | 2 +- .../current/api/table/filter-rows.md | 2 +- .../current/api/table/open-row.md | 2 +- .../current/guides/configuration.md | 6 +++--- .../current/guides/exporting-data.md | 4 ++-- .../current/guides/initialization.md | 4 ++-- .../current/guides/integration-with-angular.md | 4 ++-- .../current/guides/integration-with-react.md | 4 ++-- .../current/guides/integration-with-svelte.md | 4 ++-- .../current/guides/integration-with-vue.md | 4 ++-- .../current/guides/loading-data.md | 2 +- .../current/guides/localization.md | 2 +- .../current/guides/stylization.md | 2 +- .../current/guides/typescript-support.md | 4 ++-- .../current/guides/working-with-data.md | 4 ++-- .../current/guides/working-with-server.md | 6 +++--- .../current/how-to-start.md | 4 ++-- .../ru/docusaurus-plugin-content-docs/current/index.md | 6 +++--- .../current/news/migration.md | 6 +++--- .../current/news/whats-new.md | 6 +++--- 62 files changed, 91 insertions(+), 91 deletions(-) diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/api/config/columnshape-property.md b/i18n/ru/docusaurus-plugin-content-docs/current/api/config/columnshape-property.md index f04e073..d0fe77a 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/api/config/columnshape-property.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/api/config/columnshape-property.md @@ -1,7 +1,7 @@ --- sidebar_label: columnShape title: columnShape Config -description: Вы можете узнать о конфигурации columnShape в документации библиотеки DHTMLX JavaScript Pivot. Изучайте руководства разработчика и справочник АПИ, просматривайте примеры кода и живые демо, а также скачайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +description: Вы можете узнать о конфигурации columnShape в документации библиотеки DHTMLX JavaScript Pivot. Изучайте руководства разработчика и справочник API, просматривайте примеры кода и живые демо, а также скачайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. --- # columnShape diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/api/config/config-property.md b/i18n/ru/docusaurus-plugin-content-docs/current/api/config/config-property.md index ce5d27b..656d181 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/api/config/config-property.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/api/config/config-property.md @@ -1,7 +1,7 @@ --- sidebar_label: config title: config Config -description: Вы можете узнать о свойстве config в документации библиотеки DHTMLX JavaScript Pivot. Изучите руководства разработчика и справочник по АПИ, попробуйте примеры кода и живые демо, а также загрузите бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +description: Вы можете узнать о свойстве config в документации библиотеки DHTMLX JavaScript Pivot. Изучите руководства разработчика и справочник по API, попробуйте примеры кода и живые демо, а также загрузите бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. --- # config diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/api/config/configpanel-property.md b/i18n/ru/docusaurus-plugin-content-docs/current/api/config/configpanel-property.md index fa46095..8f4e45f 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/api/config/configpanel-property.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/api/config/configpanel-property.md @@ -1,7 +1,7 @@ --- sidebar_label: configPanel title: Конфигурация configPanel -description: В документации библиотеки DHTMLX JavaScript Pivot вы можете узнать о конфигурации configPanel. Изучайте руководства разработчика и справочник по АПИ, пробуйте примеры кода и живые демо, скачайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +description: В документации библиотеки DHTMLX JavaScript Pivot вы можете узнать о конфигурации configPanel. Изучайте руководства разработчика и справочник по API, пробуйте примеры кода и живые демо, скачайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. --- # configPanel diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/api/config/data-property.md b/i18n/ru/docusaurus-plugin-content-docs/current/api/config/data-property.md index 8dbe498..d1f4b73 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/api/config/data-property.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/api/config/data-property.md @@ -1,7 +1,7 @@ --- sidebar_label: data title: data Config -description: Вы можете узнать о конфигурации data в документации библиотеки DHTMLX JavaScript Pivot. Изучайте руководства разработчика и справочник АПИ, пробуйте примеры кода и живые демо, а также скачайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +description: Вы можете узнать о конфигурации data в документации библиотеки DHTMLX JavaScript Pivot. Изучайте руководства разработчика и справочник API, пробуйте примеры кода и живые демо, а также скачайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. --- # data diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/api/config/fields-property.md b/i18n/ru/docusaurus-plugin-content-docs/current/api/config/fields-property.md index 028a9c0..5a5118a 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/api/config/fields-property.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/api/config/fields-property.md @@ -1,7 +1,7 @@ --- sidebar_label: fields title: fields Config -description: Вы можете узнать о конфиге fields в документации библиотеки DHTMLX JavaScript Pivot. Изучайте руководства разработчика и справочник АПИ, пробуйте примеры кода и живые демо, загружайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +description: Вы можете узнать о конфиге fields в документации библиотеки DHTMLX JavaScript Pivot. Изучайте руководства разработчика и справочник API, пробуйте примеры кода и живые демо, загружайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. --- # fields diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/api/config/headershape-property.md b/i18n/ru/docusaurus-plugin-content-docs/current/api/config/headershape-property.md index 40cd0ff..b6c668c 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/api/config/headershape-property.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/api/config/headershape-property.md @@ -1,7 +1,7 @@ --- sidebar_label: headerShape title: headerShape Config -description: В документации библиотеки DHTMLX JavaScript Pivot вы можете узнать о конфигурации headerShape. Изучайте руководства разработчика и справочник АПИ, пробуйте примеры кода и живые демо, а также скачайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +description: В документации библиотеки DHTMLX JavaScript Pivot вы можете узнать о конфигурации headerShape. Изучайте руководства разработчика и справочник API, пробуйте примеры кода и живые демо, а также скачайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. --- # headerShape diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/api/config/limits-property.md b/i18n/ru/docusaurus-plugin-content-docs/current/api/config/limits-property.md index 5171fca..4a7e996 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/api/config/limits-property.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/api/config/limits-property.md @@ -1,7 +1,7 @@ --- sidebar_label: limits title: limits Config -description: Вы можете узнать о конфиге limits в документации библиотеки DHTMLX JavaScript Pivot. Изучайте руководства разработчика и справочник АПИ, пробуйте примеры кода и живые демо, а также скачайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +description: Вы можете узнать о конфиге limits в документации библиотеки DHTMLX JavaScript Pivot. Изучайте руководства разработчика и справочник API, пробуйте примеры кода и живые демо, а также скачайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. --- # limits diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/api/config/locale-property.md b/i18n/ru/docusaurus-plugin-content-docs/current/api/config/locale-property.md index 8a11b25..658f15d 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/api/config/locale-property.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/api/config/locale-property.md @@ -1,7 +1,7 @@ --- sidebar_label: locale title: locale Config -description: Вы можете узнать о конфиге locale в документации библиотеки DHTMLX JavaScript Pivot. Просматривайте руководства разработчика и справочник АПИ, изучайте примеры кода и живые демо, а также загрузите бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +description: Вы можете узнать о конфиге locale в документации библиотеки DHTMLX JavaScript Pivot. Просматривайте руководства разработчика и справочник API, изучайте примеры кода и живые демо, а также загрузите бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. --- # locale diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/api/config/methods-property.md b/i18n/ru/docusaurus-plugin-content-docs/current/api/config/methods-property.md index fab9b1d..db8e22d 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/api/config/methods-property.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/api/config/methods-property.md @@ -1,7 +1,7 @@ --- sidebar_label: methods title: methods Config -description: Вы можете узнать о конфигурационном параметре methods в документации библиотеки DHTMLX JavaScript Pivot. Изучайте руководства разработчика и справочник АПИ, пробуйте примеры кода и живые демо, а также загружайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +description: Вы можете узнать о конфигурационном параметре methods в документации библиотеки DHTMLX JavaScript Pivot. Изучайте руководства разработчика и справочник API, пробуйте примеры кода и живые демо, а также загружайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. --- # methods diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/api/config/predicates-property.md b/i18n/ru/docusaurus-plugin-content-docs/current/api/config/predicates-property.md index 5facf91..cdc5308 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/api/config/predicates-property.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/api/config/predicates-property.md @@ -1,7 +1,7 @@ --- sidebar_label: predicates title: predicates Config -description: В документации библиотеки DHTMLX JavaScript Pivot вы можете узнать о конфиге predicates. Изучайте руководства разработчика и справочник АПИ, просматривайте примеры кода и живые демо, скачайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +description: В документации библиотеки DHTMLX JavaScript Pivot вы можете узнать о конфиге predicates. Изучайте руководства разработчика и справочник API, просматривайте примеры кода и живые демо, скачайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. --- # predicates diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/api/config/readonly-property.md b/i18n/ru/docusaurus-plugin-content-docs/current/api/config/readonly-property.md index e42cad3..a3bd0e8 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/api/config/readonly-property.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/api/config/readonly-property.md @@ -1,7 +1,7 @@ --- sidebar_label: readonly title: readonly Config -description: В документации библиотеки DHTMLX JavaScript Pivot вы можете узнать о конфигурационном параметре readonly. Изучайте руководства разработчика и справочник АПИ, запускайте примеры кода и живые демо, а также скачайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +description: В документации библиотеки DHTMLX JavaScript Pivot вы можете узнать о конфигурационном параметре readonly. Изучайте руководства разработчика и справочник API, запускайте примеры кода и живые демо, а также скачайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. --- # readonly diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/api/config/tableshape-property.md b/i18n/ru/docusaurus-plugin-content-docs/current/api/config/tableshape-property.md index a191e4d..ae233f2 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/api/config/tableshape-property.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/api/config/tableshape-property.md @@ -1,7 +1,7 @@ --- sidebar_label: tableShape title: Конфигурация tableShape -description: Вы можете узнать о конфигурации tableShape в документации библиотеки DHTMLX JavaScript Pivot. Изучите руководства разработчика и справочник АПИ, ознакомьтесь с примерами кода и живыми демо, скачайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +description: Вы можете узнать о конфигурации tableShape в документации библиотеки DHTMLX JavaScript Pivot. Изучите руководства разработчика и справочник API, ознакомьтесь с примерами кода и живыми демо, скачайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. --- # tableShape diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/api/events/add-field-event.md b/i18n/ru/docusaurus-plugin-content-docs/current/api/events/add-field-event.md index a7b222d..501f8a2 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/api/events/add-field-event.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/api/events/add-field-event.md @@ -1,7 +1,7 @@ --- sidebar_label: add-field title: Событие add-field -description: Вы можете узнать о событии add-field в документации библиотеки DHTMLX JavaScript Pivot. Ознакомьтесь с руководствами разработчика и справочником АПИ, изучите примеры кода и живые демо, а также загрузите бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +description: Вы можете узнать о событии add-field в документации библиотеки DHTMLX JavaScript Pivot. Ознакомьтесь с руководствами разработчика и справочником API, изучите примеры кода и живые демо, а также загрузите бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. --- # add-field diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/api/events/apply-filter-event.md b/i18n/ru/docusaurus-plugin-content-docs/current/api/events/apply-filter-event.md index 1512daf..e66a8b0 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/api/events/apply-filter-event.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/api/events/apply-filter-event.md @@ -1,7 +1,7 @@ --- sidebar_label: apply-filter title: apply-filter Event -description: Вы можете узнать о событии apply-filter в документации библиотеки DHTMLX JavaScript Pivot. Изучайте руководства разработчика и справочник АПИ, пробуйте примеры кода и живые демо, а также скачайте бесплатную 30-дневную пробную версию DHTMLX Pivot. +description: Вы можете узнать о событии apply-filter в документации библиотеки DHTMLX JavaScript Pivot. Изучайте руководства разработчика и справочник API, пробуйте примеры кода и живые демо, а также скачайте бесплатную 30-дневную пробную версию DHTMLX Pivot. --- # apply-filter diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/api/events/delete-field-event.md b/i18n/ru/docusaurus-plugin-content-docs/current/api/events/delete-field-event.md index 115c609..e0d1191 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/api/events/delete-field-event.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/api/events/delete-field-event.md @@ -1,7 +1,7 @@ --- sidebar_label: delete-field title: delete-field Event -description: В документации библиотеки DHTMLX JavaScript Pivot вы можете узнать о событии delete-field. Изучайте руководства разработчика и справочник АПИ, пробуйте примеры кода и живые демо, загружайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +description: В документации библиотеки DHTMLX JavaScript Pivot вы можете узнать о событии delete-field. Изучайте руководства разработчика и справочник API, пробуйте примеры кода и живые демо, загружайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. --- # delete-field @@ -54,7 +54,7 @@ const table = new pivot.Pivot("#root", { } }); -//вызов методов АПИ: удаление определённого значения из values в config +//вызов методов API: удаление определённого значения из values в config function removeLastField() { if (table.api) { const state = table.api.getState(); diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/api/events/move-field-event.md b/i18n/ru/docusaurus-plugin-content-docs/current/api/events/move-field-event.md index 9ca4b32..09adc88 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/api/events/move-field-event.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/api/events/move-field-event.md @@ -1,7 +1,7 @@ --- sidebar_label: move-field title: move-field Event -description: Документация по событию move-field в библиотеке DHTMLX JavaScript Pivot. Руководства разработчика и справочник по АПИ, примеры кода и живые демо, а также бесплатная 30-дневная ознакомительная версия DHTMLX Pivot. +description: Документация по событию move-field в библиотеке DHTMLX JavaScript Pivot. Руководства разработчика и справочник по API, примеры кода и живые демо, а также бесплатная 30-дневная ознакомительная версия DHTMLX Pivot. --- # move-field diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/api/events/open-filter-event.md b/i18n/ru/docusaurus-plugin-content-docs/current/api/events/open-filter-event.md index dad42aa..659aae8 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/api/events/open-filter-event.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/api/events/open-filter-event.md @@ -1,7 +1,7 @@ --- sidebar_label: open-filter title: open-filter Событие -description: Вы можете узнать о событии open-filter в документации библиотеки DHTMLX JavaScript Pivot. Изучите руководства разработчика и справочник АПИ, ознакомьтесь с примерами кода и живыми демо, а также скачайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +description: Вы можете узнать о событии open-filter в документации библиотеки DHTMLX JavaScript Pivot. Изучите руководства разработчика и справочник API, ознакомьтесь с примерами кода и живыми демо, а также скачайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. --- # open-filter diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/api/events/render-table-event.md b/i18n/ru/docusaurus-plugin-content-docs/current/api/events/render-table-event.md index 60ad98a..085f580 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/api/events/render-table-event.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/api/events/render-table-event.md @@ -1,7 +1,7 @@ --- sidebar_label: render-table title: render-table Event -description: Вы можете узнать о событии render-table в документации библиотеки DHTMLX JavaScript Pivot. Просматривайте руководства разработчика и справочник АПИ, пробуйте примеры кода и живые демо, а также скачайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +description: Вы можете узнать о событии render-table в документации библиотеки DHTMLX JavaScript Pivot. Просматривайте руководства разработчика и справочник API, пробуйте примеры кода и живые демо, а также скачайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. --- # render-table diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/api/events/show-config-panel-event.md b/i18n/ru/docusaurus-plugin-content-docs/current/api/events/show-config-panel-event.md index 5ec9e81..e2e1d34 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/api/events/show-config-panel-event.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/api/events/show-config-panel-event.md @@ -1,7 +1,7 @@ --- sidebar_label: show-config-panel title: Событие show-config-panel -description: Вы можете узнать о событии show-config-panel в документации библиотеки DHTMLX JavaScript Pivot. Изучайте руководства разработчика и справочник АПИ, пробуйте примеры кода и живые демо, а также скачайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +description: Вы можете узнать о событии show-config-panel в документации библиотеки DHTMLX JavaScript Pivot. Изучайте руководства разработчика и справочник API, пробуйте примеры кода и живые демо, а также скачайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. --- # show-config-panel diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/api/events/update-config-event.md b/i18n/ru/docusaurus-plugin-content-docs/current/api/events/update-config-event.md index 03016f4..a21b5e1 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/api/events/update-config-event.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/api/events/update-config-event.md @@ -1,7 +1,7 @@ --- sidebar_label: update-config title: update-config Event -description: Вы можете узнать о событии update-config в документации библиотеки DHTMLX JavaScript Pivot. Изучите руководства разработчика и справочник АПИ, ознакомьтесь с примерами кода и живыми демо, загрузите бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +description: Вы можете узнать о событии update-config в документации библиотеки DHTMLX JavaScript Pivot. Изучите руководства разработчика и справочник API, ознакомьтесь с примерами кода и живыми демо, загрузите бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. --- # update-config diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/api/events/update-field-event.md b/i18n/ru/docusaurus-plugin-content-docs/current/api/events/update-field-event.md index 1b8b902..304cee9 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/api/events/update-field-event.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/api/events/update-field-event.md @@ -1,7 +1,7 @@ --- sidebar_label: update-field title: update-field Event -description: Вы можете узнать о событии update-field в документации библиотеки DHTMLX JavaScript Pivot. Изучайте руководства разработчика и справочник АПИ, просматривайте примеры кода и живые демо, а также загрузите бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +description: Вы можете узнать о событии update-field в документации библиотеки DHTMLX JavaScript Pivot. Изучайте руководства разработчика и справочник API, просматривайте примеры кода и живые демо, а также загрузите бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. --- # update-field diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/api/helpers/template.md b/i18n/ru/docusaurus-plugin-content-docs/current/api/helpers/template.md index 4f3aaf6..8595fbc 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/api/helpers/template.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/api/helpers/template.md @@ -1,7 +1,7 @@ --- sidebar_label: template title: template -description: В документации по библиотеке DHTMLX JavaScript Pivot вы можете узнать о хелпере template. Изучайте руководства разработчика и справочник АПИ, пробуйте примеры кода и живые демо, а также загрузите бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +description: В документации по библиотеке DHTMLX JavaScript Pivot вы можете узнать о хелпере template. Изучайте руководства разработчика и справочник API, пробуйте примеры кода и живые демо, а также загрузите бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. --- ### Описание {#description} diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/api/internal/detach-method.md b/i18n/ru/docusaurus-plugin-content-docs/current/api/internal/detach-method.md index 395a69e..1a71479 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/api/internal/detach-method.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/api/internal/detach-method.md @@ -1,7 +1,7 @@ --- sidebar_label: api.detach() title: Метод detach -description: Вы можете узнать о методе detach в документации библиотеки DHTMLX JavaScript Pivot. Просматривайте руководства разработчика и справочник АПИ, изучайте примеры кода и живые демо, а также загрузите бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +description: Вы можете узнать о методе detach в документации библиотеки DHTMLX JavaScript Pivot. Просматривайте руководства разработчика и справочник API, изучайте примеры кода и живые демо, а также загрузите бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. --- # api.detach() diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/api/internal/exec-method.md b/i18n/ru/docusaurus-plugin-content-docs/current/api/internal/exec-method.md index a5ef006..d4588b4 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/api/internal/exec-method.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/api/internal/exec-method.md @@ -1,7 +1,7 @@ --- sidebar_label: api.exec() title: Метод exec -description: Вы можете узнать о методе exec в документации библиотеки DHTMLX JavaScript Pivot. Просматривайте руководства разработчика и справочник АПИ, изучайте примеры кода и демонстрации, а также загружайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +description: Вы можете узнать о методе exec в документации библиотеки DHTMLX JavaScript Pivot. Просматривайте руководства разработчика и справочник API, изучайте примеры кода и демонстрации, а также загружайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. --- # api.exec() @@ -55,7 +55,7 @@ const table = new pivot.Pivot("#root", { } }); -//вызов методов АПИ: удаление конкретного значения из values в config +//вызов методов API: удаление конкретного значения из values в config function removeLastField() { if (table.api) { const state = table.api.getState(); diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/api/internal/getreactivestate-method.md b/i18n/ru/docusaurus-plugin-content-docs/current/api/internal/getreactivestate-method.md index b34bb5e..a255a4d 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/api/internal/getreactivestate-method.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/api/internal/getreactivestate-method.md @@ -1,7 +1,7 @@ --- sidebar_label: api.getReactiveState() title: Метод getReactiveState -description: В документации библиотеки DHTMLX JavaScript Pivot вы можете узнать о методе getReactiveState. Изучайте руководства разработчика и справочник АПИ, просматривайте примеры кода и живые демо, а также скачайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +description: В документации библиотеки DHTMLX JavaScript Pivot вы можете узнать о методе getReactiveState. Изучайте руководства разработчика и справочник API, просматривайте примеры кода и живые демо, а также скачайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. --- # api.getReactiveState() diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/api/internal/getstate-method.md b/i18n/ru/docusaurus-plugin-content-docs/current/api/internal/getstate-method.md index 5cad391..4fbc4c4 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/api/internal/getstate-method.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/api/internal/getstate-method.md @@ -1,7 +1,7 @@ --- sidebar_label: api.getState() title: Метод getState -description: В документации библиотеки DHTMLX JavaScript Pivot вы можете узнать о методе getState. Изучайте руководства разработчика и справочник АПИ, пробуйте примеры кода и живые демо, а также скачайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +description: В документации библиотеки DHTMLX JavaScript Pivot вы можете узнать о методе getState. Изучайте руководства разработчика и справочник API, пробуйте примеры кода и живые демо, а также скачайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. --- # api.getState() diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/api/internal/getstores-method.md b/i18n/ru/docusaurus-plugin-content-docs/current/api/internal/getstores-method.md index 94c8f9d..3730738 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/api/internal/getstores-method.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/api/internal/getstores-method.md @@ -1,7 +1,7 @@ --- sidebar_label: api.getStores() title: Метод getStores -description: Вы можете узнать о методе getStores в документации библиотеки DHTMLX JavaScript Pivot. Изучайте руководства разработчика и справочник АПИ, просматривайте примеры кода и живые демо, а также загружайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +description: Вы можете узнать о методе getStores в документации библиотеки DHTMLX JavaScript Pivot. Изучайте руководства разработчика и справочник API, просматривайте примеры кода и живые демо, а также загружайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. --- # api.getStores() diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/api/internal/intercept-method.md b/i18n/ru/docusaurus-plugin-content-docs/current/api/internal/intercept-method.md index 68b1c8a..74b96b4 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/api/internal/intercept-method.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/api/internal/intercept-method.md @@ -1,7 +1,7 @@ --- sidebar_label: api.intercept() title: Метод intercept -description: Вы можете узнать о методе intercept в документации библиотеки DHTMLX JavaScript Pivot. Изучайте руководства разработчика и справочник АПИ, пробуйте примеры кода и живые демо, и скачайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +description: Вы можете узнать о методе intercept в документации библиотеки DHTMLX JavaScript Pivot. Изучайте руководства разработчика и справочник API, пробуйте примеры кода и живые демо, и скачайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. --- # api.intercept() diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/api/internal/on-method.md b/i18n/ru/docusaurus-plugin-content-docs/current/api/internal/on-method.md index ae61920..f7595f8 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/api/internal/on-method.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/api/internal/on-method.md @@ -1,7 +1,7 @@ --- sidebar_label: api.on() title: Метод on -description: В документации библиотеки DHTMLX JavaScript Pivot вы можете узнать о методе on. Изучайте руководства разработчика и справочник АПИ, пробуйте примеры кода и живые демо, а также загрузите бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +description: В документации библиотеки DHTMLX JavaScript Pivot вы можете узнать о методе on. Изучайте руководства разработчика и справочник API, пробуйте примеры кода и живые демо, а также загрузите бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. --- # api.on() diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/api/internal/setnext-method.md b/i18n/ru/docusaurus-plugin-content-docs/current/api/internal/setnext-method.md index 406f1ba..59cf40c 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/api/internal/setnext-method.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/api/internal/setnext-method.md @@ -1,7 +1,7 @@ --- sidebar_label: api.setNext() title: Метод setNext -description: Вы можете узнать о методе setNext в документации библиотеки DHTMLX JavaScript Pivot. Изучайте руководства разработчика и справочник АПИ, пробуйте примеры кода и живые демо, а также загружайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +description: Вы можете узнать о методе setNext в документации библиотеки DHTMLX JavaScript Pivot. Изучайте руководства разработчика и справочник API, пробуйте примеры кода и живые демо, а также загружайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. --- # api.setNext() diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/api/methods/gettable-method.md b/i18n/ru/docusaurus-plugin-content-docs/current/api/methods/gettable-method.md index 59715d4..5c745a7 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/api/methods/gettable-method.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/api/methods/gettable-method.md @@ -1,7 +1,7 @@ --- sidebar_label: getTable() title: Метод getTable -description: В документации по библиотеке DHTMLX JavaScript Pivot вы можете узнать о методе getTable. Изучайте руководства разработчика и справочник АПИ, просматривайте примеры кода и живые демо, а также загрузите бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +description: В документации по библиотеке DHTMLX JavaScript Pivot вы можете узнать о методе getTable. Изучайте руководства разработчика и справочник API, просматривайте примеры кода и живые демо, а также загрузите бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. --- # getTable() @@ -10,7 +10,7 @@ description: В документации по библиотеке DHTMLX JavaSc @short: Предоставляет доступ к базовому экземпляру виджета Table в таблице Pivot -Этот метод используется, когда необходимо получить доступ к базовому экземпляру виджета Table в Pivot. Он обеспечивает прямой доступ к функциональности Table, позволяя выполнять такие операции, как сериализация данных и экспорт в различных форматах. АПИ Table имеет собственный метод `api.exec()`, который может вызывать события [`open-row`](api/table/open-row.md), [`close-row`](api/table/close-row.md), [`export`](api/table/export.md) и [`filter-rows`](api/table/filter-rows.md). +Этот метод используется, когда необходимо получить доступ к базовому экземпляру виджета Table в Pivot. Он обеспечивает прямой доступ к функциональности Table, позволяя выполнять такие операции, как сериализация данных и экспорт в различных форматах. API Table имеет собственный метод `api.exec()`, который может вызывать события [`open-row`](api/table/open-row.md), [`close-row`](api/table/close-row.md), [`export`](api/table/export.md) и [`filter-rows`](api/table/filter-rows.md). ### Использование {#usage} @@ -20,11 +20,11 @@ getTable(wait:boolean): Table | Promise; ### Параметры {#parameters} -`wait` — определяет, нужно ли ожидать, пока АПИ Table станет доступным в Pivot (необходимо, когда АПИ Table используется в процессе инициализации Pivot). Если значение установлено в **true**, метод возвращает промис с АПИ Table. +`wait` — определяет, нужно ли ожидать, пока API Table станет доступным в Pivot (необходимо, когда API Table используется в процессе инициализации Pivot). Если значение установлено в **true**, метод возвращает промис с API Table. ### Пример {#example} -В приведённом ниже примере мы получаем доступ к АПИ виджета Table и вызываем событие `export` Table по нажатию кнопки с помощью метода [`api.exec()`](api/internal/exec-method.md). +В приведённом ниже примере мы получаем доступ к API виджета Table и вызываем событие `export` Table по нажатию кнопки с помощью метода [`api.exec()`](api/internal/exec-method.md). ~~~jsx // создание Pivot diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/api/methods/setconfig-method.md b/i18n/ru/docusaurus-plugin-content-docs/current/api/methods/setconfig-method.md index c46f67c..18036e5 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/api/methods/setconfig-method.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/api/methods/setconfig-method.md @@ -1,7 +1,7 @@ --- sidebar_label: setConfig() title: setConfig() -description: В документации библиотеки DHTMLX JavaScript Pivot вы можете узнать о методе setConfig(). Изучайте руководства разработчика и справочник АПИ, пробуйте примеры кода и живые демо, а также скачайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +description: В документации библиотеки DHTMLX JavaScript Pivot вы можете узнать о методе setConfig(). Изучайте руководства разработчика и справочник API, пробуйте примеры кода и живые демо, а также скачайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. --- # setConfig() diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/api/methods/setlocale-method.md b/i18n/ru/docusaurus-plugin-content-docs/current/api/methods/setlocale-method.md index c841f38..7c8d785 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/api/methods/setlocale-method.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/api/methods/setlocale-method.md @@ -1,7 +1,7 @@ --- sidebar_label: setLocale() title: setLocale() -description: Вы можете узнать о методе setLocale() в документации библиотеки DHTMLX JavaScript Pivot. Просматривайте руководства разработчика и справочник по АПИ, изучайте примеры кода и живые демо, а также скачайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +description: Вы можете узнать о методе setLocale() в документации библиотеки DHTMLX JavaScript Pivot. Просматривайте руководства разработчика и справочник по API, изучайте примеры кода и живые демо, а также скачайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. --- # setLocale() diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/api/methods/showconfigpanel-method.md b/i18n/ru/docusaurus-plugin-content-docs/current/api/methods/showconfigpanel-method.md index 5f86d1e..ed6b768 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/api/methods/showconfigpanel-method.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/api/methods/showconfigpanel-method.md @@ -1,7 +1,7 @@ --- sidebar_label: showConfigPanel() title: showConfigPanel() -description: Вы можете узнать о методе showConfigPanel() в документации библиотеки DHTMLX JavaScript Pivot. Просматривайте руководства разработчика и справочник АПИ, изучайте примеры кода и живые демо, а также скачайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +description: Вы можете узнать о методе showConfigPanel() в документации библиотеки DHTMLX JavaScript Pivot. Просматривайте руководства разработчика и справочник API, изучайте примеры кода и живые демо, а также скачайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. --- # showConfigPanel() diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/api/overview/events-overview.md b/i18n/ru/docusaurus-plugin-content-docs/current/api/overview/events-overview.md index 877101b..16119a0 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/api/overview/events-overview.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/api/overview/events-overview.md @@ -1,7 +1,7 @@ --- sidebar_label: Обзор событий title: Обзор событий -description: Вы можете ознакомиться с обзором событий JavaScript Pivot в документации библиотеки DHTMLX JavaScript Pivot. Изучите руководства для разработчиков и справочник АПИ, попробуйте примеры кода и живые демо, а также загрузите бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +description: Вы можете ознакомиться с обзором событий JavaScript Pivot в документации библиотеки DHTMLX JavaScript Pivot. Изучите руководства для разработчиков и справочник API, попробуйте примеры кода и живые демо, а также загрузите бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. --- # Обзор событий {#events-overview} diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/api/overview/internal-eventbus-overview.md b/i18n/ru/docusaurus-plugin-content-docs/current/api/overview/internal-eventbus-overview.md index 666bd0e..fe0d9a9 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/api/overview/internal-eventbus-overview.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/api/overview/internal-eventbus-overview.md @@ -1,7 +1,7 @@ --- sidebar_label: Методы Event Bus title: Методы Event Bus -description: В документации библиотеки DHTMLX JavaScript Pivot вы найдёте обзор методов внутренней шины событий. Изучайте руководства разработчика и справочник АПИ, пробуйте примеры кода и живые демо, а также скачайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +description: В документации библиотеки DHTMLX JavaScript Pivot вы найдёте обзор методов внутренней шины событий. Изучайте руководства разработчика и справочник API, пробуйте примеры кода и живые демо, а также скачайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. --- # Обзор методов Event Bus {#event-bus-methods-overview} diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/api/overview/internal-state-overview.md b/i18n/ru/docusaurus-plugin-content-docs/current/api/overview/internal-state-overview.md index 0fe4aec..28e5d5d 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/api/overview/internal-state-overview.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/api/overview/internal-state-overview.md @@ -1,7 +1,7 @@ --- sidebar_label: State methods title: Методы состояния -description: В документации библиотеки DHTMLX JavaScript Pivot можно найти обзор методов внутреннего состояния JavaScript Pivot. Изучайте руководства для разработчиков и справочник АПИ, пробуйте примеры кода и живые демо, скачайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +description: В документации библиотеки DHTMLX JavaScript Pivot можно найти обзор методов внутреннего состояния JavaScript Pivot. Изучайте руководства для разработчиков и справочник API, пробуйте примеры кода и живые демо, скачайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. --- # Обзор методов состояния {#state-methods-overview} diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/api/overview/main-overview.md b/i18n/ru/docusaurus-plugin-content-docs/current/api/overview/main-overview.md index 724d803..0d6346d 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/api/overview/main-overview.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/api/overview/main-overview.md @@ -1,10 +1,10 @@ --- -sidebar_label: Обзор АПИ -title: Обзор АПИ -description: Вы можете ознакомиться с обзором АПИ JavaScript Pivot в документации библиотеки DHTMLX JavaScript Pivot. Изучайте руководства разработчика и справочник АПИ, пробуйте примеры кода и живые демо, а также скачайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +sidebar_label: Обзор API +title: Обзор API +description: Вы можете ознакомиться с обзором API JavaScript Pivot в документации библиотеки DHTMLX JavaScript Pivot. Изучайте руководства разработчика и справочник API, пробуйте примеры кода и живые демо, а также скачайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. --- -# Обзор АПИ {#api-overview} +# Обзор API {#api-overview} ## Конструктор Pivot {#pivot-constructor} @@ -28,7 +28,7 @@ new pivot.Pivot("#root", { | [](api/methods/setlocale-method.md) | @getshort(../methods/setlocale-method.md) | | [](api/methods/showconfigpanel-method.md) | @getshort(../methods/showconfigpanel-method.md) | -## Внутреннее АПИ Pivot {#pivot-internal-api} +## Внутреннее API Pivot {#pivot-internal-api} ### Методы Event Bus {#event-bus-methods} diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/api/overview/methods-overview.md b/i18n/ru/docusaurus-plugin-content-docs/current/api/overview/methods-overview.md index 8400f5b..51d4f9f 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/api/overview/methods-overview.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/api/overview/methods-overview.md @@ -1,7 +1,7 @@ --- sidebar_label: Обзор методов title: Обзор методов -description: В документации библиотеки DHTMLX JavaScript Pivot доступен обзор методов JavaScript Pivot. Изучайте руководства разработчика и справочник АПИ, пробуйте примеры кода и живые демо, а также загрузите бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +description: В документации библиотеки DHTMLX JavaScript Pivot доступен обзор методов JavaScript Pivot. Изучайте руководства разработчика и справочник API, пробуйте примеры кода и живые демо, а также загрузите бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. --- # Обзор методов diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/api/overview/properties-overview.md b/i18n/ru/docusaurus-plugin-content-docs/current/api/overview/properties-overview.md index 5c6c3f1..02c2c76 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/api/overview/properties-overview.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/api/overview/properties-overview.md @@ -1,7 +1,7 @@ --- sidebar_label: Обзор свойств title: Обзор свойств -description: В документации библиотеки DHTMLX JavaScript Pivot доступен обзор свойств JavaScript Pivot. Изучите руководства разработчика и справочник по АПИ, ознакомьтесь с примерами кода и живыми демо, а также загрузите бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +description: В документации библиотеки DHTMLX JavaScript Pivot доступен обзор свойств JavaScript Pivot. Изучите руководства разработчика и справочник по API, ознакомьтесь с примерами кода и живыми демо, а также загрузите бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. --- # Обзор свойств {#properties-overview} diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/api/overview/table-events-overview.md b/i18n/ru/docusaurus-plugin-content-docs/current/api/overview/table-events-overview.md index c630bd5..ec8271e 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/api/overview/table-events-overview.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/api/overview/table-events-overview.md @@ -1,12 +1,12 @@ --- sidebar_label: Обзор событий таблицы title: Обзор событий таблицы -description: В документации библиотеки DHTMLX JavaScript Pivot вы найдёте обзор событий таблицы. Изучайте руководства разработчика и справочник АПИ, пробуйте примеры кода и живые демо, скачайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +description: В документации библиотеки DHTMLX JavaScript Pivot вы найдёте обзор событий таблицы. Изучайте руководства разработчика и справочник API, пробуйте примеры кода и живые демо, скачайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. --- # Обзор событий таблицы -Метод [`getTable`](api/methods/gettable-method.md) АПИ Pivot позволяет получить доступ к экземпляру виджета Table внутри Pivot и выполнить следующие события таблицы: +Метод [`getTable`](api/methods/gettable-method.md) API Pivot позволяет получить доступ к экземпляру виджета Table внутри Pivot и выполнить следующие события таблицы: | Название | Описание | | ------------------------------------------------- | ----------------------------------------------- | diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/api/table/close-row.md b/i18n/ru/docusaurus-plugin-content-docs/current/api/table/close-row.md index 6374a4c..05ac7a9 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/api/table/close-row.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/api/table/close-row.md @@ -1,7 +1,7 @@ --- sidebar_label: close-row title: close-row -description: Вы можете узнать о событии close-row в документации библиотеки DHTMLX JavaScript Pivot. Изучайте руководства разработчика и справочник АПИ, пробуйте примеры кода и живые демо, а также скачайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot +description: Вы можете узнать о событии close-row в документации библиотеки DHTMLX JavaScript Pivot. Изучайте руководства разработчика и справочник API, пробуйте примеры кода и живые демо, а также скачайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot --- # close-row diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/api/table/export.md b/i18n/ru/docusaurus-plugin-content-docs/current/api/table/export.md index 4a74ce2..bdbde0c 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/api/table/export.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/api/table/export.md @@ -1,7 +1,7 @@ --- sidebar_label: export title: export -description: Вы можете узнать о событии export в документации библиотеки DHTMLX JavaScript Pivot. Просматривайте руководства разработчика и справочник АПИ, изучайте примеры кода и живые демо, загружайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot +description: Вы можете узнать о событии export в документации библиотеки DHTMLX JavaScript Pivot. Просматривайте руководства разработчика и справочник API, изучайте примеры кода и живые демо, загружайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot --- # export diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/api/table/filter-rows.md b/i18n/ru/docusaurus-plugin-content-docs/current/api/table/filter-rows.md index 1d2ae44..2f55806 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/api/table/filter-rows.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/api/table/filter-rows.md @@ -1,7 +1,7 @@ --- sidebar_label: filter-rows title: filter-rows -description: Вы можете узнать о событии filter-rows в документации библиотеки DHTMLX JavaScript Pivot. Изучайте руководства разработчика и справочник АПИ, пробуйте примеры кода и живые демо, загружайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot +description: Вы можете узнать о событии filter-rows в документации библиотеки DHTMLX JavaScript Pivot. Изучайте руководства разработчика и справочник API, пробуйте примеры кода и живые демо, загружайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot --- # filter-rows diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/api/table/open-row.md b/i18n/ru/docusaurus-plugin-content-docs/current/api/table/open-row.md index 2497aeb..872c11e 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/api/table/open-row.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/api/table/open-row.md @@ -1,7 +1,7 @@ --- sidebar_label: open-row title: open-row -description: В документации JavaScript-библиотеки DHTMLX Pivot вы можете узнать о событии open-row. Изучайте руководства разработчика и справочник АПИ, пробуйте примеры кода и живые демо, скачивайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot +description: В документации JavaScript-библиотеки DHTMLX Pivot вы можете узнать о событии open-row. Изучайте руководства разработчика и справочник API, пробуйте примеры кода и живые демо, скачивайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot --- # open-row diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/guides/configuration.md b/i18n/ru/docusaurus-plugin-content-docs/current/guides/configuration.md index 09fcfa1..8106fc9 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/guides/configuration.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/guides/configuration.md @@ -1,12 +1,12 @@ --- sidebar_label: Конфигурация title: Конфигурация -description: Вы можете узнать о конфигурации в документации библиотеки DHTMLX JavaScript Pivot. Просматривайте руководства разработчика и справочник АПИ, пробуйте примеры кода и живые демо, а также загружайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +description: Вы можете узнать о конфигурации в документации библиотеки DHTMLX JavaScript Pivot. Просматривайте руководства разработчика и справочник API, пробуйте примеры кода и живые демо, а также загружайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. --- # Конфигурация -Настройте таблицу Pivot и панель конфигурации с помощью следующего АПИ: +Настройте таблицу Pivot и панель конфигурации с помощью следующего API: - [`config`](api/config/config-property.md) — определяет структуру таблицы Pivot и способ агрегации данных - [`render-table`](api/events/render-table-event.md) — изменяет конфигурацию таблицы на лету @@ -721,7 +721,7 @@ table.api.intercept("show-config-panel", () => { }); ~~~ -В качестве альтернативного АПИ используйте метод [`showConfigPanel`](api/methods/showconfigpanel-method.md). +В качестве альтернативного API используйте метод [`showConfigPanel`](api/methods/showconfigpanel-method.md). ### Действия с полями на панели diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/guides/exporting-data.md b/i18n/ru/docusaurus-plugin-content-docs/current/guides/exporting-data.md index 1045c03..54c9192 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/guides/exporting-data.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/guides/exporting-data.md @@ -1,7 +1,7 @@ --- sidebar_label: Экспорт данных title: Экспорт данных -description: В документации библиотеки DHTMLX JavaScript Pivot вы можете изучить, как экспортировать данные. Просматривайте руководства разработчика и справочник АПИ, пробуйте примеры кода и живые демо, а также загрузите бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +description: В документации библиотеки DHTMLX JavaScript Pivot вы можете изучить, как экспортировать данные. Просматривайте руководства разработчика и справочник API, пробуйте примеры кода и живые демо, а также загрузите бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. --- # Экспорт данных {#exporting-data} @@ -30,7 +30,7 @@ widget.getTable().exec("export", { ~~~ :::tip -Метод [`getTable`](api/methods/gettable-method.md) принимает необязательный булев параметр `wait`. Передайте `true`, чтобы получить промис, который разрешится после того, как АПИ Table станет доступным. Это полезно, когда АПИ Table должен быть готов в процессе инициализации Pivot. +Метод [`getTable`](api/methods/gettable-method.md) принимает необязательный булев параметр `wait`. Передайте `true`, чтобы получить промис, который разрешится после того, как API Table станет доступным. Это полезно, когда API Table должен быть готов в процессе инициализации Pivot. ::: ## Пример {#example} diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/guides/initialization.md b/i18n/ru/docusaurus-plugin-content-docs/current/guides/initialization.md index 7116cf3..8ee085b 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/guides/initialization.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/guides/initialization.md @@ -1,7 +1,7 @@ --- sidebar_label: Инициализация title: Инициализация -description: В документации библиотеки DHTMLX JavaScript Pivot вы можете узнать об инициализации компонента. Изучите руководства разработчика и справочник АПИ, попробуйте примеры кода и живые демо, а также скачайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +description: В документации библиотеки DHTMLX JavaScript Pivot вы можете узнать об инициализации компонента. Изучите руководства разработчика и справочник API, попробуйте примеры кода и живые демо, а также скачайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. --- # Инициализация @@ -64,7 +64,7 @@ const table = new pivot.Pivot("#root", { }); ~~~ -Конструктор возвращает экземпляр Pivot. Вызывайте методы АПИ на возвращённом экземпляре: +Конструктор возвращает экземпляр Pivot. Вызывайте методы API на возвращённом экземпляре: - [`getTable`](api/methods/gettable-method.md) — получить доступ к экземпляру виджета Table - [`setConfig`](api/methods/setconfig-method.md) — обновить текущую конфигурацию Pivot diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/guides/integration-with-angular.md b/i18n/ru/docusaurus-plugin-content-docs/current/guides/integration-with-angular.md index 490d129..6e115fe 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/guides/integration-with-angular.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/guides/integration-with-angular.md @@ -1,7 +1,7 @@ --- sidebar_label: Интеграция с Angular title: Интеграция с Angular -description: Вы можете узнать об интеграции с Angular в документации библиотеки DHTMLX JavaScript Pivot. Изучайте руководства разработчика и справочник АПИ, пробуйте примеры кода и живые демо, а также загрузите бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +description: Вы можете узнать об интеграции с Angular в документации библиотеки DHTMLX JavaScript Pivot. Изучайте руководства разработчика и справочник API, пробуйте примеры кода и живые демо, а также загрузите бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. --- # Интеграция с Angular {#integration-with-angular} @@ -238,7 +238,7 @@ export class PivotComponent implements OnInit, OnDestroy { } ~~~ -Компонент готов к использованию. При монтировании Pivot отрисовывается с переданными данными. Полный список свойств конфигурации см. в [документации АПИ Pivot](api/overview/properties-overview.md). +Компонент готов к использованию. При монтировании Pivot отрисовывается с переданными данными. Полный список свойств конфигурации см. в [документации API Pivot](api/overview/properties-overview.md). #### Обработка событий {#handle-events} diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/guides/integration-with-react.md b/i18n/ru/docusaurus-plugin-content-docs/current/guides/integration-with-react.md index 0e25d92..a5f90a1 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/guides/integration-with-react.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/guides/integration-with-react.md @@ -1,7 +1,7 @@ --- sidebar_label: Интеграция с React title: Интеграция с React -description: Вы можете узнать об интеграции с React в документации библиотеки DHTMLX JavaScript Pivot. Изучайте руководства разработчика и справочник АПИ, пробуйте примеры кода и живые демо, а также загрузите бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +description: Вы можете узнать об интеграции с React в документации библиотеки DHTMLX JavaScript Pivot. Изучайте руководства разработчика и справочник API, пробуйте примеры кода и живые демо, а также загрузите бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. --- # Интеграция с React {#integration-with-react} @@ -244,7 +244,7 @@ export default function PivotComponent({ fields, dataset }) { } ~~~ -Компонент готов к использованию. При монтировании Pivot отображает переданные данные. Полный список свойств конфигурации см. в [документации АПИ Pivot](api/overview/properties-overview.md). +Компонент готов к использованию. При монтировании Pivot отображает переданные данные. Полный список свойств конфигурации см. в [документации API Pivot](api/overview/properties-overview.md). #### Обработка событий {#handle-events} diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/guides/integration-with-svelte.md b/i18n/ru/docusaurus-plugin-content-docs/current/guides/integration-with-svelte.md index 0207960..bef499b 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/guides/integration-with-svelte.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/guides/integration-with-svelte.md @@ -1,7 +1,7 @@ --- sidebar_label: Интеграция со Svelte title: Интеграция со Svelte -description: Вы можете узнать об интеграции со Svelte в документации библиотеки DHTMLX JavaScript Pivot. Изучите руководства разработчика и справочник АПИ, ознакомьтесь с примерами кода и живыми демо, а также загрузите бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +description: Вы можете узнать об интеграции со Svelte в документации библиотеки DHTMLX JavaScript Pivot. Изучите руководства разработчика и справочник API, ознакомьтесь с примерами кода и живыми демо, а также загрузите бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. --- # Интеграция со Svelte {#integration-with-svelte} @@ -252,7 +252,7 @@ onDestroy(() => {
~~~ -Компонент готов к использованию. При монтировании Pivot отображает переданные данные. Полный список свойств конфигурации см. в [документации АПИ Pivot](api/overview/properties-overview.md). +Компонент готов к использованию. При монтировании Pivot отображает переданные данные. Полный список свойств конфигурации см. в [документации API Pivot](api/overview/properties-overview.md). #### Обработка событий {#handle-events} diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/guides/integration-with-vue.md b/i18n/ru/docusaurus-plugin-content-docs/current/guides/integration-with-vue.md index 720b62b..ec18bac 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/guides/integration-with-vue.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/guides/integration-with-vue.md @@ -1,7 +1,7 @@ --- sidebar_label: Интеграция с Vue title: Интеграция с Vue -description: Узнайте об интеграции с Vue в документации библиотеки DHTMLX JavaScript Pivot. Изучайте руководства разработчика и справочник АПИ, пробуйте примеры кода и живые демо, а также скачайте бесплатную 30-дневную пробную версию DHTMLX Pivot. +description: Узнайте об интеграции с Vue в документации библиотеки DHTMLX JavaScript Pivot. Изучайте руководства разработчика и справочник API, пробуйте примеры кода и живые демо, а также скачайте бесплатную 30-дневную пробную версию DHTMLX Pivot. --- # Интеграция с Vue {#integration-with-vue} @@ -264,7 +264,7 @@ export default { ~~~ -Компонент готов к использованию. При монтировании Pivot отображает данные. Полный список свойств конфигурации см. в [документации АПИ Pivot](api/overview/properties-overview.md). +Компонент готов к использованию. При монтировании Pivot отображает данные. Полный список свойств конфигурации см. в [документации API Pivot](api/overview/properties-overview.md). #### Обработка событий {#handle-events} diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/guides/loading-data.md b/i18n/ru/docusaurus-plugin-content-docs/current/guides/loading-data.md index b1e3a95..68566ef 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/guides/loading-data.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/guides/loading-data.md @@ -1,7 +1,7 @@ --- sidebar_label: Загрузка данных title: Загрузка данных -description: Вы можете узнать, как загружать данные, в документации библиотеки DHTMLX JavaScript Pivot. Изучайте руководства для разработчиков и справочник АПИ, пробуйте примеры кода и живые демо, а также скачайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +description: Вы можете узнать, как загружать данные, в документации библиотеки DHTMLX JavaScript Pivot. Изучайте руководства для разработчиков и справочник API, пробуйте примеры кода и живые демо, а также скачайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. --- # Загрузка данных diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/guides/localization.md b/i18n/ru/docusaurus-plugin-content-docs/current/guides/localization.md index 76f85ed..cafbfd7 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/guides/localization.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/guides/localization.md @@ -1,7 +1,7 @@ --- sidebar_label: Локализация title: Локализация -description: Вы можете узнать о локализации в документации библиотеки DHTMLX JavaScript Pivot. Изучите руководства разработчика и справочник АПИ, попробуйте примеры кода и живые демо, а также загрузите бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +description: Вы можете узнать о локализации в документации библиотеки DHTMLX JavaScript Pivot. Изучите руководства разработчика и справочник API, попробуйте примеры кода и живые демо, а также загрузите бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. --- # Локализация diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/guides/stylization.md b/i18n/ru/docusaurus-plugin-content-docs/current/guides/stylization.md index 8f77b7d..d2e7b47 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/guides/stylization.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/guides/stylization.md @@ -1,7 +1,7 @@ --- sidebar_label: Стилизация title: Стилизация -description: В документации библиотеки DHTMLX JavaScript Pivot вы можете узнать о стилизации компонента. Изучайте руководства разработчика и справочник АПИ, пробуйте примеры кода и живые демо, а также загружайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +description: В документации библиотеки DHTMLX JavaScript Pivot вы можете узнать о стилизации компонента. Изучайте руководства разработчика и справочник API, пробуйте примеры кода и живые демо, а также загружайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. --- # Стилизация {#styling} diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/guides/typescript-support.md b/i18n/ru/docusaurus-plugin-content-docs/current/guides/typescript-support.md index 3367a06..9ddfca1 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/guides/typescript-support.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/guides/typescript-support.md @@ -1,7 +1,7 @@ --- sidebar_label: Поддержка TypeScript title: Поддержка TypeScript -description: Вы можете узнать об использовании TypeScript с библиотекой DHTMLX JavaScript Pivot в документации. Ознакомьтесь с руководствами разработчика и справочником АПИ, попробуйте примеры кода и живые демо, а также загрузите бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +description: Вы можете узнать об использовании TypeScript с библиотекой DHTMLX JavaScript Pivot в документации. Ознакомьтесь с руководствами разработчика и справочником API, попробуйте примеры кода и живые демо, а также загрузите бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. --- # Поддержка TypeScript {#typescript-support} @@ -14,4 +14,4 @@ DHTMLX Pivot поставляется с определениями TypeScript ## Преимущества TypeScript {#advantages-of-typescript} -Проверка типов и автодополнение помогают выявлять ошибки на раннем этапе, а встроенные определения сообщают, какие именно типы данных ожидает АПИ DHTMLX Pivot. +Проверка типов и автодополнение помогают выявлять ошибки на раннем этапе, а встроенные определения сообщают, какие именно типы данных ожидает API DHTMLX Pivot. diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/guides/working-with-data.md b/i18n/ru/docusaurus-plugin-content-docs/current/guides/working-with-data.md index 20bf86f..1b12863 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/guides/working-with-data.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/guides/working-with-data.md @@ -1,7 +1,7 @@ --- sidebar_label: Работа с данными title: Работа с данными -description: В документации библиотеки DHTMLX JavaScript Pivot вы найдёте информацию о работе с данными. Изучайте руководства разработчика и справочник АПИ, пробуйте примеры кода и живые демо, скачайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +description: В документации библиотеки DHTMLX JavaScript Pivot вы найдёте информацию о работе с данными. Изучайте руководства разработчика и справочник API, пробуйте примеры кода и живые демо, скачайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. --- # Работа с данными @@ -296,7 +296,7 @@ const table = new pivot.Pivot("#root", { ~~~ :::info -Чтобы фильтровать данные через АПИ виджета Table, получите экземпляр Table с помощью метода [`getTable`](api/methods/gettable-method.md) и используйте событие [`filter-rows`](api/table/filter-rows.md). +Чтобы фильтровать данные через API виджета Table, получите экземпляр Table с помощью метода [`getTable`](api/methods/gettable-method.md) и используйте событие [`filter-rows`](api/table/filter-rows.md). ::: ## Ограничение загружаемых данных {#limiting-loaded-data} diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/guides/working-with-server.md b/i18n/ru/docusaurus-plugin-content-docs/current/guides/working-with-server.md index 78e62a5..a02da6d 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/guides/working-with-server.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/guides/working-with-server.md @@ -1,10 +1,10 @@ --- sidebar_label: Работа с сервером title: Работа с сервером -description: В документации библиотеки DHTMLX JavaScript Pivot вы можете узнать, как интегрировать Pivot с серверной частью. Изучайте руководства разработчика и справочник АПИ, пробуйте примеры кода и живые демо, скачайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +description: В документации библиотеки DHTMLX JavaScript Pivot вы можете узнать, как интегрировать Pivot с серверной частью. Изучайте руководства разработчика и справочник API, пробуйте примеры кода и живые демо, скачайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. --- -Pivot работает полностью в браузере. Виджет принимает массив исходных строк и объект [`config`](/api/config/config-property) (строки / столбцы / значения) и агрегирует данные на стороне клиента. Встроенного транспортного слоя нет, однако публичное АПИ предоставляет хуки для обмена данными с любым сервером. +Pivot работает полностью в браузере. Виджет принимает массив исходных строк и объект [`config`](/api/config/config-property) (строки / столбцы / значения) и агрегирует данные на стороне клиента. Встроенного транспортного слоя нет, однако публичное API предоставляет хуки для обмена данными с любым сервером. Типичная интеграция включает три части: @@ -165,7 +165,7 @@ Pivot создаёт агрегированные таблицы и не ото - [Загрузка данных](/guides/loading-data) - [Экспорт данных](/guides/exporting-data) -**Связанное АПИ**: +**Связанное API**: - [`api.on()`](/api/internal/on-method) - [`update-config`](/api/events/update-config-event) diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/how-to-start.md b/i18n/ru/docusaurus-plugin-content-docs/current/how-to-start.md index a687e8a..b0130c3 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/how-to-start.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/how-to-start.md @@ -1,7 +1,7 @@ --- sidebar_label: Начало работы title: Начало работы -description: Вы можете узнать, как начать работу с DHTMLX Pivot, в документации JavaScript-библиотеки DHTMLX Pivot. Изучайте руководства разработчика и справочник АПИ, запускайте примеры кода и живые демо, а также скачайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +description: Вы можете узнать, как начать работу с DHTMLX Pivot, в документации JavaScript-библиотеки DHTMLX Pivot. Изучайте руководства разработчика и справочник API, запускайте примеры кода и живые демо, а также скачайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. --- # Начало работы {#how-to-start} @@ -119,4 +119,4 @@ const table = new pivot.Pivot("#root", { Вот и всё. Всего несколько простых шагов — и у вас есть удобный инструмент для анализа данных. Теперь вы можете приступить к решению своих задач или продолжить изучение возможностей JavaScript Pivot: - Страницы раздела [Руководства](/category/guides) содержат инструкции по установке, загрузке данных, стилизации и другие полезные советы для работы с конфигурацией Pivot -- [Справочник АПИ](api/overview/main-overview.md) содержит описание функциональности Pivot +- [Справочник API](api/overview/main-overview.md) содержит описание функциональности Pivot diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/index.md b/i18n/ru/docusaurus-plugin-content-docs/current/index.md index f62d250..9477c06 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/index.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/index.md @@ -2,12 +2,12 @@ sidebar_label: Обзор Pivot title: Обзор JavaScript Pivot slug: / -description: Ознакомьтесь с обзором библиотеки DHTMLX JavaScript Pivot в документации. Изучите руководства разработчика и справочник АПИ, опробуйте примеры кода и живые демо, а также загрузите бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +description: Ознакомьтесь с обзором библиотеки DHTMLX JavaScript Pivot в документации. Изучите руководства разработчика и справочник API, опробуйте примеры кода и живые демо, а также загрузите бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. --- # Обзор DHTMLX Pivot -JavaScript Pivot — готовый компонент для создания сводных таблиц из больших наборов данных. АПИ виджета легко адаптируется под нужды вашего веб-приложения. Компонент предоставляет конечному пользователю инструменты для сравнения и анализа сложных данных в рамках одной таблицы. +JavaScript Pivot — готовый компонент для создания сводных таблиц из больших наборов данных. API виджета легко адаптируется под нужды вашего веб-приложения. Компонент предоставляет конечному пользователю инструменты для сравнения и анализа сложных данных в рамках одной таблицы. ## Структура Pivot {#pivot-structure} @@ -98,6 +98,6 @@ JavaScript Pivot — готовый компонент для создания Теперь можно приступить к интеграции Pivot в ваше приложение. Следуйте инструкциям руководства [Как начать работу](how-to-start.md). -Используя функциональность, предоставляемую АПИ виджета, вы можете создать привлекательную сводную таблицу с расширенными возможностями, как в примере ниже: +Используя функциональность, предоставляемую API виджета, вы можете создать привлекательную сводную таблицу с расширенными возможностями, как в примере ниже: diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/news/migration.md b/i18n/ru/docusaurus-plugin-content-docs/current/news/migration.md index c15c423..6b225cb 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/news/migration.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/news/migration.md @@ -1,7 +1,7 @@ --- sidebar_label: Миграция на новые версии title: Миграция на новые версии -description: В документации библиотеки DHTMLX JavaScript Pivot вы можете узнать о миграции на новые версии. Ознакомьтесь с руководствами разработчика и справочником по АПИ, изучите примеры кода и живые демо, а также загрузите бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +description: В документации библиотеки DHTMLX JavaScript Pivot вы можете узнать о миграции на новые версии. Ознакомьтесь с руководствами разработчика и справочником по API, изучите примеры кода и живые демо, а также загрузите бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. --- # Миграция на новые версии {#migration-to-newer-versions} @@ -18,7 +18,7 @@ description: В документации библиотеки DHTMLX JavaScript Воспользуйтесь нашим [конвертером для миграции данных из версии 1.5](https://snippet.dhtmlx.com/s4sfdhq4) ::: -### Изменённое АПИ {#changed-api} +### Изменённое API {#changed-api} #### Свойства {#properties} @@ -36,7 +36,7 @@ description: В документации библиотеки DHTMLX JavaScript - [filterApply](https://docs.dhtmlx.com/pivot/1-5/api__pivot_filterapply_event.html) -> [apply-filter](api/events/apply-filter-event.md) - [fieldClick](https://docs.dhtmlx.com/pivot/1-5/api__pivot_fieldclick_event.html) -> идентичного события нет, но вы можете обратиться к [update-field](api/events/update-field-event.md) -### Удалённое АПИ {#removed-api} +### Удалённое API {#removed-api} - [Методы версии 1.5](https://docs.dhtmlx.com/pivot/1-5/api__refs__pivot_methods.html) являются устаревшими, все новые методы доступны здесь: [Методы](api/overview/main-overview.md#pivot-methods) - [События Pivot 1.5](https://docs.dhtmlx.com/pivot/1-5/api__refs__pivot_events.html) (`change`, `fieldClick`, `applyButtonClick`) более не доступны в Pivot 2.0, однако в новой версии вы найдёте расширенную функциональность (см. [события Pivot](api/overview/events-overview.md)) diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/news/whats-new.md b/i18n/ru/docusaurus-plugin-content-docs/current/news/whats-new.md index 9fb04a6..ee9c1e5 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/news/whats-new.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/news/whats-new.md @@ -1,7 +1,7 @@ --- sidebar_label: Что нового title: Что нового -description: Вы можете ознакомиться с новыми возможностями DHTMLX Pivot и историей его выпусков в документации библиотеки DHTMLX JavaScript UI. Изучайте руководства для разработчиков и справочник по АПИ, пробуйте примеры кода и живые демо, а также загружайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. +description: Вы можете ознакомиться с новыми возможностями DHTMLX Pivot и историей его выпусков в документации библиотеки DHTMLX JavaScript UI. Изучайте руководства для разработчиков и справочник по API, пробуйте примеры кода и живые демо, а также загружайте бесплатную 30-дневную ознакомительную версию DHTMLX Pivot. --- # Что нового {#whats-new} @@ -35,7 +35,7 @@ description: Вы можете ознакомиться с новыми возм - Визуальная рамка при навигации по ячейкам - [Интеграция с фреймворками](/category/integration-with-frameworks) -### Новый АПИ {#new-api} +### Новый API {#new-api} - Параметр `right` внутри объекта `split` свойства [`tableShape`](api/config/tableshape-property.md) - Параметр `cellStyle` внутри свойств [`tableShape`](api/config/tableshape-property.md) и [`headerShape`](api/config/headershape-property.md) @@ -84,7 +84,7 @@ description: Вы можете ознакомиться с новыми возм ### Критическое изменение {#breaking-change} :::note -АПИ версии 1.5 несовместим с АПИ версии 2.0. +API версии 1.5 несовместим с API версии 2.0. ::: Советы по миграции на новую версию смотрите на странице [Миграция](news/migration.md).

#GV#SKq3{xq;k(@iZTsiPalKR)ChVal@ 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 E1Ts%qjQ{`u literal 0 HcmV?d00001 diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/assets/table.png b/i18n/ru/docusaurus-plugin-content-docs/current/assets/table.png new file mode 100644 index 0000000000000000000000000000000000000000..f0fb3a9eed80198ddc997b4a72cbc5e968b74d3e GIT binary patch literal 61265 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

#GV#SKq3{xq;k(@iZTsiPalKR)ChVal@ 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 E1Ts%qjQ{`u literal 0 HcmV?d00001 diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/assets/table.png b/i18n/ko/docusaurus-plugin-content-docs/current/assets/table.png new file mode 100644 index 0000000000000000000000000000000000000000..f0fb3a9eed80198ddc997b4a72cbc5e968b74d3e GIT binary patch literal 61265 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

#GV#SKq3{xq;k(@iZTsiPalKR)ChVal@ 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 E1Ts%qjQ{`u literal 0 HcmV?d00001 diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/assets/table.png b/i18n/zh/docusaurus-plugin-content-docs/current/assets/table.png new file mode 100644 index 0000000000000000000000000000000000000000..f0fb3a9eed80198ddc997b4a72cbc5e968b74d3e GIT binary patch literal 61265 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