{
  "schemaVersion": "1.0.0",
  "readme": "",
  "modules": [
    {
      "kind": "javascript-module",
      "path": "vaadin-crud.js",
      "declarations": [],
      "exports": [
        {
          "kind": "js",
          "name": "*",
          "declaration": {
            "name": "*",
            "module": "src/vaadin-crud.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "vaadin-crud-edit.js",
      "declarations": [],
      "exports": [
        {
          "kind": "js",
          "name": "*",
          "declaration": {
            "name": "*",
            "module": "src/vaadin-crud-edit.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "vaadin-crud-edit-column.js",
      "declarations": [],
      "exports": [
        {
          "kind": "js",
          "name": "*",
          "declaration": {
            "name": "*",
            "module": "src/vaadin-crud-edit-column.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/vaadin-crud-edit-column.js",
      "declarations": [
        {
          "kind": "class",
          "description": "`<vaadin-crud-edit-column>` is a helper element for the `<vaadin-grid>`\nthat provides a clickable and themable edit icon.\n\nTypical usage is in a custom `<vaadin-grid>` inside a `<vaadin-crud>`.\n\n#### Example:\n```html\n<vaadin-grid>\n <vaadin-crud-edit-column></vaadin-crud-edit-column>\n\n <vaadin-grid-column>\n   ...\n```",
          "name": "CrudEditColumn",
          "members": [
            {
              "kind": "field",
              "name": "ariaLabel",
              "privacy": "public",
              "type": {
                "text": "string"
              },
              "description": "The arial-label for the edit button",
              "attribute": "aria-label"
            },
            {
              "kind": "field",
              "name": "autoWidth",
              "privacy": "public",
              "type": {
                "text": "boolean"
              },
              "description": "Automatically sets the width of the column based on the column contents when this is set to `true`.",
              "attribute": "auto-width",
              "inheritedFrom": {
                "name": "GridColumnMixin",
                "package": "@vaadin/grid/src/vaadin-grid-column-mixin.js"
              }
            },
            {
              "kind": "field",
              "name": "flexGrow",
              "privacy": "public",
              "type": {
                "text": "number"
              },
              "description": "Flex grow ratio for the cell widths. When set to 0, cell width is fixed.",
              "attribute": "flex-grow",
              "inheritedFrom": {
                "name": "GridColumnMixin",
                "package": "@vaadin/grid/src/vaadin-grid-column-mixin.js"
              }
            },
            {
              "kind": "field",
              "name": "footerPartName",
              "privacy": "public",
              "type": {
                "text": "string"
              },
              "description": "Custom part name for the footer cell.",
              "attribute": "footer-part-name",
              "inheritedFrom": {
                "name": "ColumnBaseMixin",
                "package": "@vaadin/grid/src/vaadin-grid-column-mixin.js"
              }
            },
            {
              "kind": "field",
              "name": "footerRenderer",
              "privacy": "public",
              "type": {
                "text": "GridHeaderFooterRenderer | null | undefined"
              },
              "description": "Custom function for rendering the footer content.\nReceives two arguments:\n\n- `root` The footer cell content DOM element. Append your content to it.\n- `column` The `<vaadin-grid-column>` element.",
              "attribute": "footer-renderer",
              "inheritedFrom": {
                "name": "ColumnBaseMixin",
                "package": "@vaadin/grid/src/vaadin-grid-column-mixin.js"
              }
            },
            {
              "kind": "field",
              "name": "frozen",
              "privacy": "public",
              "type": {
                "text": "boolean"
              },
              "description": "When true, the column is frozen. When a column inside of a column group is frozen,\nall of the sibling columns inside the group will get frozen also.",
              "attribute": "frozen",
              "inheritedFrom": {
                "name": "ColumnBaseMixin",
                "package": "@vaadin/grid/src/vaadin-grid-column-mixin.js"
              }
            },
            {
              "kind": "field",
              "name": "frozenToEnd",
              "privacy": "public",
              "type": {
                "text": "boolean"
              },
              "description": "When true, the column is frozen to end of grid.\n\nWhen a column inside of a column group is frozen to end, all of the sibling columns\ninside the group will get frozen to end also.\n\nColumn can not be set as `frozen` and `frozenToEnd` at the same time.",
              "attribute": "frozen-to-end",
              "inheritedFrom": {
                "name": "ColumnBaseMixin",
                "package": "@vaadin/grid/src/vaadin-grid-column-mixin.js"
              }
            },
            {
              "kind": "field",
              "name": "header",
              "privacy": "public",
              "type": {
                "text": "string"
              },
              "description": "Text content to display in the header cell of the column.",
              "attribute": "header",
              "inheritedFrom": {
                "name": "ColumnBaseMixin",
                "package": "@vaadin/grid/src/vaadin-grid-column-mixin.js"
              }
            },
            {
              "kind": "field",
              "name": "headerPartName",
              "privacy": "public",
              "type": {
                "text": "string"
              },
              "description": "Custom part name for the header cell.",
              "attribute": "header-part-name",
              "inheritedFrom": {
                "name": "ColumnBaseMixin",
                "package": "@vaadin/grid/src/vaadin-grid-column-mixin.js"
              }
            },
            {
              "kind": "field",
              "name": "headerRenderer",
              "privacy": "public",
              "type": {
                "text": "GridHeaderFooterRenderer | null | undefined"
              },
              "description": "Custom function for rendering the header content.\nReceives two arguments:\n\n- `root` The header cell content DOM element. Append your content to it.\n- `column` The `<vaadin-grid-column>` element.",
              "attribute": "header-renderer",
              "inheritedFrom": {
                "name": "ColumnBaseMixin",
                "package": "@vaadin/grid/src/vaadin-grid-column-mixin.js"
              }
            },
            {
              "kind": "field",
              "name": "hidden",
              "privacy": "public",
              "type": {
                "text": "boolean"
              },
              "description": "When set to true, the cells for this column are hidden.",
              "attribute": "hidden",
              "inheritedFrom": {
                "name": "ColumnBaseMixin",
                "package": "@vaadin/grid/src/vaadin-grid-column-mixin.js"
              }
            },
            {
              "kind": "field",
              "name": "path",
              "privacy": "public",
              "type": {
                "text": "string"
              },
              "description": "Path to an item sub-property whose value gets displayed in the column body cells.\nThe property name is also shown in the column header if an explicit header or renderer isn't defined.",
              "attribute": "path",
              "inheritedFrom": {
                "name": "GridColumnMixin",
                "package": "@vaadin/grid/src/vaadin-grid-column-mixin.js"
              }
            },
            {
              "kind": "field",
              "name": "renderer",
              "privacy": "public",
              "type": {
                "text": "GridBodyRenderer | null | undefined"
              },
              "description": "Custom function for rendering the cell content.\nReceives three arguments:\n\n- `root` The cell content DOM element. Append your content to it.\n- `column` The `<vaadin-grid-column>` element.\n- `model` The object with the properties related with\n  the rendered item, contains:\n  - `model.index` The index of the item.\n  - `model.item` The item.\n  - `model.expanded` Sublevel toggle state.\n  - `model.level` Level of the tree represented with a horizontal offset of the toggle button.\n  - `model.selected` Selected state.\n  - `model.detailsOpened` Details opened state.\n  - `model.hasChildren` Whether the item has children.",
              "attribute": "renderer",
              "inheritedFrom": {
                "name": "GridColumnMixin",
                "package": "@vaadin/grid/src/vaadin-grid-column-mixin.js"
              }
            },
            {
              "kind": "field",
              "name": "resizable",
              "privacy": "public",
              "type": {
                "text": "boolean"
              },
              "description": "When set to true, the column is user-resizable.",
              "default": "false",
              "attribute": "resizable",
              "inheritedFrom": {
                "name": "ColumnBaseMixin",
                "package": "@vaadin/grid/src/vaadin-grid-column-mixin.js"
              }
            },
            {
              "kind": "field",
              "name": "rowHeader",
              "privacy": "public",
              "type": {
                "text": "boolean"
              },
              "description": "When true, the cells for this column will be rendered with the `role` attribute\nset as `rowheader`, instead of the `gridcell` role value used by default.\n\nWhen a column is set as row header, its cells will be announced by screen readers\nwhile navigating to help user identify the current row as uniquely as possible.",
              "attribute": "row-header",
              "inheritedFrom": {
                "name": "ColumnBaseMixin",
                "package": "@vaadin/grid/src/vaadin-grid-column-mixin.js"
              }
            },
            {
              "kind": "field",
              "name": "textAlign",
              "privacy": "public",
              "type": {
                "text": "string"
              },
              "description": "Aligns the columns cell content horizontally.\nSupported values: \"start\", \"center\" and \"end\".",
              "attribute": "text-align",
              "inheritedFrom": {
                "name": "ColumnBaseMixin",
                "package": "@vaadin/grid/src/vaadin-grid-column-mixin.js"
              }
            },
            {
              "kind": "field",
              "name": "width",
              "privacy": "public",
              "type": {
                "text": "string"
              },
              "description": "Width of the cells for this column.\n\nPlease note that using the `em` length unit is discouraged as\nit might lead to misalignment issues if the header, body, and footer\ncells have different font sizes. Instead, use `rem` if you need\na length unit relative to the font size.",
              "attribute": "width",
              "inheritedFrom": {
                "name": "GridColumnMixin",
                "package": "@vaadin/grid/src/vaadin-grid-column-mixin.js"
              }
            }
          ],
          "attributes": [
            {
              "name": "aria-label",
              "type": {
                "text": "string"
              },
              "description": "The arial-label for the edit button",
              "fieldName": "ariaLabel"
            },
            {
              "name": "auto-width",
              "type": {
                "text": "boolean"
              },
              "description": "Automatically sets the width of the column based on the column contents when this is set to `true`.",
              "fieldName": "autoWidth",
              "inheritedFrom": {
                "name": "GridColumnMixin",
                "package": "@vaadin/grid/src/vaadin-grid-column-mixin.js"
              }
            },
            {
              "name": "flex-grow",
              "type": {
                "text": "number"
              },
              "description": "Flex grow ratio for the cell widths. When set to 0, cell width is fixed.",
              "fieldName": "flexGrow",
              "inheritedFrom": {
                "name": "GridColumnMixin",
                "package": "@vaadin/grid/src/vaadin-grid-column-mixin.js"
              }
            },
            {
              "name": "footer-part-name",
              "type": {
                "text": "string"
              },
              "description": "Custom part name for the footer cell.",
              "fieldName": "footerPartName",
              "inheritedFrom": {
                "name": "ColumnBaseMixin",
                "package": "@vaadin/grid/src/vaadin-grid-column-mixin.js"
              }
            },
            {
              "name": "footer-renderer",
              "type": {
                "text": "GridHeaderFooterRenderer | null | undefined"
              },
              "description": "Custom function for rendering the footer content.\nReceives two arguments:\n\n- `root` The footer cell content DOM element. Append your content to it.\n- `column` The `<vaadin-grid-column>` element.",
              "fieldName": "footerRenderer",
              "inheritedFrom": {
                "name": "ColumnBaseMixin",
                "package": "@vaadin/grid/src/vaadin-grid-column-mixin.js"
              }
            },
            {
              "name": "frozen",
              "type": {
                "text": "boolean"
              },
              "description": "When true, the column is frozen. When a column inside of a column group is frozen,\nall of the sibling columns inside the group will get frozen also.",
              "fieldName": "frozen",
              "inheritedFrom": {
                "name": "ColumnBaseMixin",
                "package": "@vaadin/grid/src/vaadin-grid-column-mixin.js"
              }
            },
            {
              "name": "frozen-to-end",
              "type": {
                "text": "boolean"
              },
              "description": "When true, the column is frozen to end of grid.\n\nWhen a column inside of a column group is frozen to end, all of the sibling columns\ninside the group will get frozen to end also.\n\nColumn can not be set as `frozen` and `frozenToEnd` at the same time.",
              "fieldName": "frozenToEnd",
              "inheritedFrom": {
                "name": "ColumnBaseMixin",
                "package": "@vaadin/grid/src/vaadin-grid-column-mixin.js"
              }
            },
            {
              "name": "header",
              "type": {
                "text": "string"
              },
              "description": "Text content to display in the header cell of the column.",
              "fieldName": "header",
              "inheritedFrom": {
                "name": "ColumnBaseMixin",
                "package": "@vaadin/grid/src/vaadin-grid-column-mixin.js"
              }
            },
            {
              "name": "header-part-name",
              "type": {
                "text": "string"
              },
              "description": "Custom part name for the header cell.",
              "fieldName": "headerPartName",
              "inheritedFrom": {
                "name": "ColumnBaseMixin",
                "package": "@vaadin/grid/src/vaadin-grid-column-mixin.js"
              }
            },
            {
              "name": "header-renderer",
              "type": {
                "text": "GridHeaderFooterRenderer | null | undefined"
              },
              "description": "Custom function for rendering the header content.\nReceives two arguments:\n\n- `root` The header cell content DOM element. Append your content to it.\n- `column` The `<vaadin-grid-column>` element.",
              "fieldName": "headerRenderer",
              "inheritedFrom": {
                "name": "ColumnBaseMixin",
                "package": "@vaadin/grid/src/vaadin-grid-column-mixin.js"
              }
            },
            {
              "name": "hidden",
              "type": {
                "text": "boolean"
              },
              "description": "When set to true, the cells for this column are hidden.",
              "fieldName": "hidden",
              "inheritedFrom": {
                "name": "ColumnBaseMixin",
                "package": "@vaadin/grid/src/vaadin-grid-column-mixin.js"
              }
            },
            {
              "name": "path",
              "type": {
                "text": "string"
              },
              "description": "Path to an item sub-property whose value gets displayed in the column body cells.\nThe property name is also shown in the column header if an explicit header or renderer isn't defined.",
              "fieldName": "path",
              "inheritedFrom": {
                "name": "GridColumnMixin",
                "package": "@vaadin/grid/src/vaadin-grid-column-mixin.js"
              }
            },
            {
              "name": "renderer",
              "type": {
                "text": "GridBodyRenderer | null | undefined"
              },
              "description": "Custom function for rendering the cell content.\nReceives three arguments:\n\n- `root` The cell content DOM element. Append your content to it.\n- `column` The `<vaadin-grid-column>` element.\n- `model` The object with the properties related with\n  the rendered item, contains:\n  - `model.index` The index of the item.\n  - `model.item` The item.\n  - `model.expanded` Sublevel toggle state.\n  - `model.level` Level of the tree represented with a horizontal offset of the toggle button.\n  - `model.selected` Selected state.\n  - `model.detailsOpened` Details opened state.\n  - `model.hasChildren` Whether the item has children.",
              "fieldName": "renderer",
              "inheritedFrom": {
                "name": "GridColumnMixin",
                "package": "@vaadin/grid/src/vaadin-grid-column-mixin.js"
              }
            },
            {
              "name": "resizable",
              "type": {
                "text": "boolean"
              },
              "description": "When set to true, the column is user-resizable.",
              "default": "false",
              "fieldName": "resizable",
              "inheritedFrom": {
                "name": "ColumnBaseMixin",
                "package": "@vaadin/grid/src/vaadin-grid-column-mixin.js"
              }
            },
            {
              "name": "row-header",
              "type": {
                "text": "boolean"
              },
              "description": "When true, the cells for this column will be rendered with the `role` attribute\nset as `rowheader`, instead of the `gridcell` role value used by default.\n\nWhen a column is set as row header, its cells will be announced by screen readers\nwhile navigating to help user identify the current row as uniquely as possible.",
              "fieldName": "rowHeader",
              "inheritedFrom": {
                "name": "ColumnBaseMixin",
                "package": "@vaadin/grid/src/vaadin-grid-column-mixin.js"
              }
            },
            {
              "name": "text-align",
              "type": {
                "text": "string"
              },
              "description": "Aligns the columns cell content horizontally.\nSupported values: \"start\", \"center\" and \"end\".",
              "fieldName": "textAlign",
              "inheritedFrom": {
                "name": "ColumnBaseMixin",
                "package": "@vaadin/grid/src/vaadin-grid-column-mixin.js"
              }
            },
            {
              "name": "width",
              "type": {
                "text": "string"
              },
              "description": "Width of the cells for this column.\n\nPlease note that using the `em` length unit is discouraged as\nit might lead to misalignment issues if the header, body, and footer\ncells have different font sizes. Instead, use `rem` if you need\na length unit relative to the font size.",
              "fieldName": "width",
              "inheritedFrom": {
                "name": "GridColumnMixin",
                "package": "@vaadin/grid/src/vaadin-grid-column-mixin.js"
              }
            }
          ],
          "superclass": {
            "name": "GridColumn",
            "package": "@vaadin/grid/src/vaadin-grid-column.js"
          },
          "tagName": "vaadin-crud-edit-column",
          "customElement": true,
          "events": []
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "CrudEditColumn",
          "declaration": {
            "name": "CrudEditColumn",
            "module": "src/vaadin-crud-edit-column.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/vaadin-crud-edit.js",
      "declarations": [
        {
          "kind": "class",
          "description": "`<vaadin-crud-edit>` is a helper element for `<vaadin-grid-column>` that provides\nan easily themable button that fires an `edit` event with the row item as detail\nwhen clicked.\n\nTypical usage is in a `<vaadin-grid-column>` of a custom `<vaadin-grid>` inside\na `<vaadin-crud>` to enable editing.",
          "name": "CrudEdit",
          "members": [
            {
              "kind": "field",
              "name": "disabled",
              "privacy": "public",
              "type": {
                "text": "boolean"
              },
              "description": "When disabled, the button is rendered as \"dimmed\" and prevents all\nuser interactions (mouse and keyboard).\n\nSince disabled buttons are not focusable and cannot react to hover\nevents by default, it can cause accessibility issues by making them\nentirely invisible to assistive technologies, and prevents the use\nof Tooltips to explain why the action is not available. This can be\naddressed by enabling the feature flag `accessibleDisabledButtons`,\nwhich makes disabled buttons focusable and hoverable, while still\npreventing them from being triggered:\n\n```js\n// Set before any button is attached to the DOM.\nwindow.Vaadin.featureFlags.accessibleDisabledButtons = true\n```",
              "attribute": "disabled",
              "inheritedFrom": {
                "name": "Button",
                "package": "@vaadin/button/src/vaadin-button.js"
              }
            }
          ],
          "superclass": {
            "name": "Button",
            "package": "@vaadin/button/src/vaadin-button.js"
          },
          "tagName": "vaadin-crud-edit",
          "customElement": true,
          "attributes": [
            {
              "name": "disabled",
              "type": {
                "text": "boolean"
              },
              "description": "When disabled, the button is rendered as \"dimmed\" and prevents all\nuser interactions (mouse and keyboard).\n\nSince disabled buttons are not focusable and cannot react to hover\nevents by default, it can cause accessibility issues by making them\nentirely invisible to assistive technologies, and prevents the use\nof Tooltips to explain why the action is not available. This can be\naddressed by enabling the feature flag `accessibleDisabledButtons`,\nwhich makes disabled buttons focusable and hoverable, while still\npreventing them from being triggered:\n\n```js\n// Set before any button is attached to the DOM.\nwindow.Vaadin.featureFlags.accessibleDisabledButtons = true\n```",
              "fieldName": "disabled",
              "inheritedFrom": {
                "name": "Button",
                "package": "@vaadin/button/src/vaadin-button.js"
              }
            }
          ],
          "events": []
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "CrudEdit",
          "declaration": {
            "name": "CrudEdit",
            "module": "src/vaadin-crud-edit.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/vaadin-crud-grid-mixin.js",
      "declarations": [
        {
          "kind": "mixin",
          "description": "A mixin providing common crud-grid functionality.",
          "name": "CrudGridMixin",
          "members": [
            {
              "kind": "field",
              "name": "exclude",
              "privacy": "public",
              "type": {
                "text": "string | RegExp"
              },
              "description": "A list of item fields that should not be mapped to form fields.\n\nWhen [`include`](#/elements/vaadin-crud-form#property-include) is defined, this property is ignored.\n\nDefault is to exclude any private property.",
              "attribute": "exclude",
              "inheritedFrom": {
                "name": "IncludedMixin",
                "module": "src/vaadin-crud-include-mixin.js"
              }
            },
            {
              "kind": "field",
              "name": "hideEditColumn",
              "privacy": "public",
              "type": {
                "text": "boolean"
              },
              "description": "Determines whether the edit column should be hidden.",
              "attribute": "hide-edit-column"
            },
            {
              "kind": "field",
              "name": "include",
              "privacy": "public",
              "type": {
                "text": "string | !Array<string> | undefined"
              },
              "description": "A list of item properties that should be mapped to form fields.\n\nWhen it is defined [`exclude`](#/elements/vaadin-crud-form#property-exclude) is ignored.",
              "attribute": "include",
              "inheritedFrom": {
                "name": "IncludedMixin",
                "module": "src/vaadin-crud-include-mixin.js"
              }
            },
            {
              "kind": "field",
              "name": "noFilter",
              "privacy": "public",
              "type": {
                "text": "boolean"
              },
              "description": "Disable filtering in the generated columns.",
              "attribute": "no-filter"
            },
            {
              "kind": "field",
              "name": "noHead",
              "privacy": "public",
              "type": {
                "text": "boolean"
              },
              "description": "Do not add headers to columns.",
              "attribute": "no-head"
            },
            {
              "kind": "field",
              "name": "noSort",
              "privacy": "public",
              "type": {
                "text": "boolean"
              },
              "description": "Disable sorting in the generated columns.",
              "attribute": "no-sort"
            }
          ],
          "attributes": [
            {
              "name": "exclude",
              "type": {
                "text": "string | RegExp"
              },
              "description": "A list of item fields that should not be mapped to form fields.\n\nWhen [`include`](#/elements/vaadin-crud-form#property-include) is defined, this property is ignored.\n\nDefault is to exclude any private property.",
              "fieldName": "exclude",
              "inheritedFrom": {
                "name": "IncludedMixin",
                "module": "src/vaadin-crud-include-mixin.js"
              }
            },
            {
              "name": "hide-edit-column",
              "type": {
                "text": "boolean"
              },
              "description": "Determines whether the edit column should be hidden.",
              "fieldName": "hideEditColumn"
            },
            {
              "name": "no-filter",
              "type": {
                "text": "boolean"
              },
              "description": "Disable filtering in the generated columns.",
              "fieldName": "noFilter"
            },
            {
              "name": "no-head",
              "type": {
                "text": "boolean"
              },
              "description": "Do not add headers to columns.",
              "fieldName": "noHead"
            },
            {
              "name": "no-sort",
              "type": {
                "text": "boolean"
              },
              "description": "Disable sorting in the generated columns.",
              "fieldName": "noSort"
            }
          ],
          "mixins": [
            {
              "name": "IncludedMixin",
              "module": "src/vaadin-crud-include-mixin.js"
            }
          ],
          "parameters": [
            {
              "name": "superClass"
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "CrudGridMixin",
          "declaration": {
            "name": "CrudGridMixin",
            "module": "src/vaadin-crud-grid-mixin.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/vaadin-crud-helpers.js",
      "declarations": [
        {
          "kind": "function",
          "name": "capitalize",
          "parameters": [
            {
              "name": "path",
              "type": {
                "text": "string"
              }
            }
          ],
          "description": "Convenience utility for capitalizing a string, with\nreplacing non-alphanumeric characters with spaces.",
          "return": {
            "type": {
              "text": "string"
            }
          }
        },
        {
          "kind": "function",
          "name": "getProperty",
          "parameters": [
            {
              "name": "path",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "obj",
              "type": {
                "text": "Object"
              }
            }
          ],
          "description": "Convenience utility for reading a value from a path.",
          "return": {
            "type": {
              "text": "*"
            }
          }
        },
        {
          "kind": "function",
          "name": "setProperty",
          "parameters": [
            {
              "name": "path",
              "type": {
                "text": "string"
              }
            },
            {
              "name": "value",
              "type": {
                "text": "*"
              }
            },
            {
              "name": "obj",
              "type": {
                "text": "Object"
              }
            }
          ],
          "description": "Convenience utility for setting a value to a path.\n\nNote, if any part in the path is undefined, this\nfunction initializes it with an empty object."
        },
        {
          "kind": "function",
          "name": "isValidEditorPosition",
          "parameters": [
            {
              "name": "editorPosition"
            }
          ]
        },
        {
          "kind": "function",
          "name": "editColumnDefaultRenderer",
          "parameters": [
            {
              "name": "root"
            },
            {
              "name": "column"
            }
          ]
        },
        {
          "kind": "function",
          "name": "createField",
          "parameters": [
            {
              "name": "crudForm"
            },
            {
              "name": "parent"
            },
            {
              "name": "path"
            }
          ]
        },
        {
          "kind": "function",
          "name": "createFields",
          "parameters": [
            {
              "name": "crudForm"
            },
            {
              "name": "parent"
            },
            {
              "name": "object"
            },
            {
              "name": "path"
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "capitalize",
          "declaration": {
            "name": "capitalize",
            "module": "src/vaadin-crud-helpers.js"
          }
        },
        {
          "kind": "js",
          "name": "getProperty",
          "declaration": {
            "name": "getProperty",
            "module": "src/vaadin-crud-helpers.js"
          }
        },
        {
          "kind": "js",
          "name": "setProperty",
          "declaration": {
            "name": "setProperty",
            "module": "src/vaadin-crud-helpers.js"
          }
        },
        {
          "kind": "js",
          "name": "isValidEditorPosition",
          "declaration": {
            "name": "isValidEditorPosition",
            "module": "src/vaadin-crud-helpers.js"
          }
        },
        {
          "kind": "js",
          "name": "editColumnDefaultRenderer",
          "declaration": {
            "name": "editColumnDefaultRenderer",
            "module": "src/vaadin-crud-helpers.js"
          }
        },
        {
          "kind": "js",
          "name": "createField",
          "declaration": {
            "name": "createField",
            "module": "src/vaadin-crud-helpers.js"
          }
        },
        {
          "kind": "js",
          "name": "createFields",
          "declaration": {
            "name": "createFields",
            "module": "src/vaadin-crud-helpers.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/vaadin-crud-include-mixin.js",
      "declarations": [
        {
          "kind": "mixin",
          "description": "",
          "name": "IncludedMixin",
          "members": [
            {
              "kind": "field",
              "name": "exclude",
              "privacy": "public",
              "type": {
                "text": "string | RegExp"
              },
              "description": "A list of item fields that should not be mapped to form fields.\n\nWhen [`include`](#/elements/vaadin-crud-form#property-include) is defined, this property is ignored.\n\nDefault is to exclude any private property.",
              "attribute": "exclude"
            },
            {
              "kind": "field",
              "name": "include",
              "privacy": "public",
              "type": {
                "text": "string | !Array<string> | undefined"
              },
              "description": "A list of item properties that should be mapped to form fields.\n\nWhen it is defined [`exclude`](#/elements/vaadin-crud-form#property-exclude) is ignored.",
              "attribute": "include"
            }
          ],
          "attributes": [
            {
              "name": "exclude",
              "type": {
                "text": "string | RegExp"
              },
              "description": "A list of item fields that should not be mapped to form fields.\n\nWhen [`include`](#/elements/vaadin-crud-form#property-include) is defined, this property is ignored.\n\nDefault is to exclude any private property.",
              "fieldName": "exclude"
            }
          ],
          "parameters": [
            {
              "name": "superClass"
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "IncludedMixin",
          "declaration": {
            "name": "IncludedMixin",
            "module": "src/vaadin-crud-include-mixin.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/vaadin-crud-mixin.js",
      "declarations": [
        {
          "kind": "mixin",
          "description": "A mixin providing common crud functionality.",
          "name": "CrudMixin",
          "members": [
            {
              "kind": "field",
              "name": "dataProvider",
              "privacy": "public",
              "type": {
                "text": "CrudDataProvider | undefined"
              },
              "description": "Function that provides items lazily. Receives arguments `params`, `callback`\n\n`params.page` Requested page index\n`params.pageSize` Current page size\n`params.filters` Currently applied filters\n`params.sortOrders` Currently applied sorting orders\n\n`callback(items, size)` Callback function with arguments:\n  - `items` Current page of items\n  - `size` Total number of items",
              "attribute": "data-provider"
            },
            {
              "kind": "field",
              "name": "editedItem",
              "privacy": "public",
              "type": {
                "text": "object"
              },
              "description": "The item being edited in the dialog.",
              "attribute": "edited-item"
            },
            {
              "kind": "field",
              "name": "editOnClick",
              "privacy": "public",
              "type": {
                "text": "boolean"
              },
              "description": "Enables user to click on row to edit it.\nNote: When enabled, auto-generated grid won't show the edit column.",
              "attribute": "edit-on-click"
            },
            {
              "kind": "field",
              "name": "editorOpened",
              "privacy": "public",
              "type": {
                "text": "boolean"
              },
              "description": "Reflects the opened status of the editor.",
              "attribute": "editor-opened"
            },
            {
              "kind": "field",
              "name": "editorPosition",
              "privacy": "public",
              "type": {
                "text": "string"
              },
              "description": "Sets how editor will be presented on desktop screen.\n\nAccepted values are:\n  - `` (default) - form will open as overlay\n  - `bottom` - form will open below the grid\n  - `aside` - form will open on the grid side (_right_, if lft and _left_ if rtl)",
              "attribute": "editor-position"
            },
            {
              "kind": "field",
              "name": "exclude",
              "privacy": "public",
              "type": {
                "text": "string"
              },
              "description": "A comma-separated list of fields to be excluded from the generated grid and the generated editor.\n\nWhen [`include`](#/elements/vaadin-crud#property-include) is defined, this parameter is ignored.\n\nDefault is to exclude all private fields (those properties starting with underscore)",
              "attribute": "exclude"
            },
            {
              "kind": "field",
              "name": "i18n",
              "privacy": "public",
              "type": {
                "text": "Object"
              },
              "description": "The object used to localize this component. To change the default\nlocalization, replace this with an object that provides all properties, or\njust the individual properties you want to change.\n\nThe object has the following JSON structure and default values:\n\n```js\n{\n  newItem: 'New item',\n  editItem: 'Edit item',\n  saveItem: 'Save',\n  cancel: 'Cancel',\n  deleteItem: 'Delete...',\n  editLabel: 'Edit',\n  confirm: {\n    delete: {\n      title: 'Confirm delete',\n      content: 'Are you sure you want to delete the selected item? This action cannot be undone.',\n      button: {\n        confirm: 'Delete',\n        dismiss: 'Cancel'\n      }\n    },\n    cancel: {\n      title: 'Unsaved changes',\n      content: 'There are unsaved modifications to the item.',\n      button: {\n        confirm: 'Discard',\n        dismiss: 'Continue editing'\n      }\n    }\n  }\n}\n```",
              "attribute": "i18n",
              "inheritedFrom": {
                "name": "I18nMixin",
                "package": "@vaadin/component-base/src/i18n-mixin.js"
              }
            },
            {
              "kind": "field",
              "name": "include",
              "privacy": "public",
              "type": {
                "text": "string"
              },
              "description": "A comma-separated list of fields to include in the generated grid and the generated editor.\n\nIt can be used to explicitly define the field order.\n\nWhen it is defined [`exclude`](#/elements/vaadin-crud#property-exclude) is ignored.\n\nDefault is undefined meaning that all properties in the object should be mapped to fields.",
              "attribute": "include"
            },
            {
              "kind": "field",
              "name": "items",
              "privacy": "public",
              "type": {
                "text": "array"
              },
              "description": "An array containing the items which will be stamped to the column template instances.",
              "attribute": "items"
            },
            {
              "kind": "field",
              "name": "noFilter",
              "privacy": "public",
              "type": {
                "text": "boolean"
              },
              "description": "Disable filtering when grid is autoconfigured.",
              "attribute": "no-filter"
            },
            {
              "kind": "field",
              "name": "noHead",
              "privacy": "public",
              "type": {
                "text": "boolean"
              },
              "description": "Remove grid headers when it is autoconfigured.",
              "attribute": "no-head"
            },
            {
              "kind": "field",
              "name": "noSort",
              "privacy": "public",
              "type": {
                "text": "boolean"
              },
              "description": "Disable sorting when grid is autoconfigured.",
              "attribute": "no-sort"
            },
            {
              "kind": "field",
              "name": "noToolbar",
              "privacy": "public",
              "type": {
                "text": "boolean"
              },
              "description": "Controls visibility state of toolbar.\nWhen set to false toolbar is hidden and shown when set to true.",
              "attribute": "no-toolbar"
            },
            {
              "kind": "field",
              "name": "size",
              "privacy": "public",
              "type": {
                "text": "number"
              },
              "description": "Number of items in the data set which is reported by the grid.\nTypically it reflects the number of filtered items displayed in the grid.\n\nNote: As with `<vaadin-grid>`, this property updates automatically only\nif `items` is used for data.",
              "attribute": "size",
              "readonly": true
            }
          ],
          "attributes": [
            {
              "name": "data-provider",
              "type": {
                "text": "CrudDataProvider | undefined"
              },
              "description": "Function that provides items lazily. Receives arguments `params`, `callback`\n\n`params.page` Requested page index\n`params.pageSize` Current page size\n`params.filters` Currently applied filters\n`params.sortOrders` Currently applied sorting orders\n\n`callback(items, size)` Callback function with arguments:\n  - `items` Current page of items\n  - `size` Total number of items",
              "fieldName": "dataProvider"
            },
            {
              "name": "edit-on-click",
              "type": {
                "text": "boolean"
              },
              "description": "Enables user to click on row to edit it.\nNote: When enabled, auto-generated grid won't show the edit column.",
              "fieldName": "editOnClick"
            },
            {
              "name": "editor-opened",
              "type": {
                "text": "boolean"
              },
              "description": "Reflects the opened status of the editor.",
              "fieldName": "editorOpened"
            },
            {
              "name": "editor-position",
              "type": {
                "text": "string"
              },
              "description": "Sets how editor will be presented on desktop screen.\n\nAccepted values are:\n  - `` (default) - form will open as overlay\n  - `bottom` - form will open below the grid\n  - `aside` - form will open on the grid side (_right_, if lft and _left_ if rtl)",
              "fieldName": "editorPosition"
            },
            {
              "name": "exclude",
              "type": {
                "text": "string"
              },
              "description": "A comma-separated list of fields to be excluded from the generated grid and the generated editor.\n\nWhen [`include`](#/elements/vaadin-crud#property-include) is defined, this parameter is ignored.\n\nDefault is to exclude all private fields (those properties starting with underscore)",
              "fieldName": "exclude"
            },
            {
              "name": "i18n",
              "type": {
                "text": "Object"
              },
              "description": "The object used to localize this component. To change the default\nlocalization, replace this with an object that provides all properties, or\njust the individual properties you want to change.\n\nShould be overridden by subclasses to provide a custom JSDoc with the\ndefault I18N properties.",
              "fieldName": "i18n",
              "inheritedFrom": {
                "name": "I18nMixin",
                "package": "@vaadin/component-base/src/i18n-mixin.js"
              }
            },
            {
              "name": "include",
              "type": {
                "text": "string"
              },
              "description": "A comma-separated list of fields to include in the generated grid and the generated editor.\n\nIt can be used to explicitly define the field order.\n\nWhen it is defined [`exclude`](#/elements/vaadin-crud#property-exclude) is ignored.\n\nDefault is undefined meaning that all properties in the object should be mapped to fields.",
              "fieldName": "include"
            },
            {
              "name": "items",
              "type": {
                "text": "array"
              },
              "description": "An array containing the items which will be stamped to the column template instances.",
              "fieldName": "items"
            },
            {
              "name": "no-filter",
              "type": {
                "text": "boolean"
              },
              "description": "Disable filtering when grid is autoconfigured.",
              "fieldName": "noFilter"
            },
            {
              "name": "no-head",
              "type": {
                "text": "boolean"
              },
              "description": "Remove grid headers when it is autoconfigured.",
              "fieldName": "noHead"
            },
            {
              "name": "no-sort",
              "type": {
                "text": "boolean"
              },
              "description": "Disable sorting when grid is autoconfigured.",
              "fieldName": "noSort"
            },
            {
              "name": "no-toolbar",
              "type": {
                "text": "boolean"
              },
              "description": "Controls visibility state of toolbar.\nWhen set to false toolbar is hidden and shown when set to true.",
              "fieldName": "noToolbar"
            },
            {
              "name": "size",
              "type": {
                "text": "number"
              },
              "description": "Number of items in the data set which is reported by the grid.\nTypically it reflects the number of filtered items displayed in the grid.\n\nNote: As with `<vaadin-grid>`, this property updates automatically only\nif `items` is used for data.",
              "fieldName": "size"
            }
          ],
          "mixins": [
            {
              "name": "I18nMixin",
              "package": "@vaadin/component-base/src/i18n-mixin.js"
            }
          ],
          "parameters": [
            {
              "name": "superClass"
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "CrudMixin",
          "declaration": {
            "name": "CrudMixin",
            "module": "src/vaadin-crud-mixin.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/vaadin-crud.js",
      "declarations": [
        {
          "kind": "class",
          "description": "`<vaadin-crud>` is a Web Component for [CRUD](https://en.wikipedia.org/wiki/Create,_read,_update_and_delete) operations.\n\n### Quick Start\n\nAssign an array to the [`items`](#/elements/vaadin-crud#property-items) property.\n\nA grid and an editor will be automatically generated and configured based on the data structure provided.\n\n```html\n<vaadin-crud></vaadin-crud>\n```\n\n```js\nconst crud = document.querySelector('vaadin-crud');\n\ncrud.items = [\n  { name: 'John', surname: 'Lennon', role: 'singer' },\n  { name: 'Ringo', surname: 'Starr', role: 'drums' },\n  // ... more items\n];\n```\n\n### Data Provider Function\n\nOtherwise, you can provide a [`dataProvider`](#/elements/vaadin-crud#property-dataProvider) function.\n\n```js\nconst crud = document.querySelector('vaadin-crud');\n\nconst users = [\n  { name: 'John', surname: 'Lennon', role: 'singer' },\n  { name: 'Ringo', surname: 'Starr', role: 'drums' },\n  // ... more items\n];\n\ncrud.dataProvider = (params, callback) => {\n  const chunk = users.slice(params.page * params.pageSize, params.page * params.pageSize + params.pageSize);\n  callback(chunk, people.length);\n};\n```\n\nNOTE: The auto-generated editor only supports string types. If you need to handle special cases\ncustomizing the editor is discussed below.\n\n### Customization\n\nAlternatively you can fully configure the component by using `slot` names.\n\nSlot name      | Description\n---------------|----------------\n`grid`         | To replace the auto-generated grid with a custom one.\n`form`         | To replace the auto-generated form.\n`save-button`  | To replace the \"Save\" button.\n`cancel-button`| To replace the \"Cancel\" button.\n`delete-button`| To replace the \"Delete\" button.\n`toolbar`      | To provide the toolbar content (by default, it's empty).\n`new-button`   | To replace the \"New item\" button.\n\n#### Example:\n\n```html\n<vaadin-crud id=\"crud\">\n  <vaadin-grid slot=\"grid\">\n    <vaadin-crud-edit-column></vaadin-crud-edit-column>\n    <vaadin-grid-column id=\"column1\"></vaadin-grid-column>\n    <vaadin-grid-column id=\"column2\"></vaadin-grid-column>\n  </vaadin-grid>\n\n  <vaadin-form-layout slot=\"form\">\n    <vaadin-text-field label=\"First\" path=\"name\"></vaadin-text-field>\n    <vaadin-text-field label=\"Surname\" path=\"surname\"></vaadin-text-field>\n  </vaadin-form-layout>\n\n  <div slot=\"toolbar\">Total singers: 2</div>\n  <button slot=\"new-button\">New singer</button>\n\n  <button slot=\"save-button\">Save changes</button>\n  <button slot=\"cancel-button\">Discard changes</button>\n  <button slot=\"delete-button\">Delete singer</button>\n</vaadin-crud>\n```\n```js\nconst crud = document.querySelector('#crud');\n\nconst column1 = document.querySelector('#column1');\ncolumn1.headerRenderer = (root, column) => {\n  root.textContent = 'Name';\n};\ncolumn1.renderer = (root, column, model) => {\n  root.textContent = model.item.name;\n};\n\nconst column2 = document.querySelector('#column2');\ncolumn2.headerRenderer = (root, column) => {\n  root.textContent = 'Surname';\n};\ncolumn2.renderer = (root, column, model) => {\n  root.textContent = model.item.surname;\n};\n\ncrud.items = [\n  { name: 'John', surname: 'Lennon', role: 'singer' },\n  { name: 'Ringo', surname: 'Starr', role: 'drums' },\n  // ... more items\n];\n```\n\n### Helpers\n\nThe following elements are used to auto-configure the grid and the editor\n- [`<vaadin-crud-edit-column>`](#/elements/vaadin-crud-edit-column)\n- `<vaadin-crud-grid>` - can be replaced with custom [`<vaadin-grid>`](#/elements/vaadin-grid)\n- `<vaadin-crud-form>` - can be replaced with custom [`<vaadin-form-layout>`](#/elements/vaadin-form-layout)\n\n### Styling\n\nThe following shadow DOM parts are available for styling when the editor is rendered next to, or below, the grid:\n\nPart name | Description\n----------------|----------------\n`toolbar`  | Toolbar container at the bottom of the grid. By default, it contains the `new` button\n`editor`   | The editor container\n`scroller` | The wrapper for the header and the form\n`header`   | The header of the editor\n`footer`   | The footer of the editor\n\nThe following shadow DOM parts are available for styling when the editor renders as a dialog:\n\nPart name | Description\n----------------|----------------\n`toolbar`  | Toolbar container at the bottom of the grid. By default, it contains the `new` button\n`overlay`  | The dialog overlay\n`backdrop` | The dialog backdrop\n`header`   | The header of the dialog\n`footer`   | The footer of the dialog\n`content`  | The wrapper for the form\n\nThe following custom CSS properties are available for styling:\n\nCustom CSS property                    |\n:--------------------------------------|\n| `--vaadin-crud-background`           |\n| `--vaadin-crud-border-color`         |\n| `--vaadin-crud-border-radius`        |\n| `--vaadin-crud-border-width`         |\n| `--vaadin-crud-editor-max-height`    |\n| `--vaadin-crud-editor-max-width`     |\n| `--vaadin-crud-footer-background`    |\n| `--vaadin-crud-footer-gap`           |\n| `--vaadin-crud-footer-padding`       |\n| `--vaadin-crud-form-padding`         |\n| `--vaadin-crud-header-color`         |\n| `--vaadin-crud-header-font-size`     |\n| `--vaadin-crud-header-font-weight`   |\n| `--vaadin-crud-header-line-height`   |\n| `--vaadin-crud-header-padding`       |\n| `--vaadin-crud-toolbar-background`   |\n| `--vaadin-crud-toolbar-padding`      |\n\nSee [Styling Components](https://vaadin.com/docs/latest/styling/styling-components) documentation.",
          "name": "Crud",
          "members": [
            {
              "kind": "field",
              "name": "dataProvider",
              "privacy": "public",
              "type": {
                "text": "CrudDataProvider | undefined"
              },
              "description": "Function that provides items lazily. Receives arguments `params`, `callback`\n\n`params.page` Requested page index\n`params.pageSize` Current page size\n`params.filters` Currently applied filters\n`params.sortOrders` Currently applied sorting orders\n\n`callback(items, size)` Callback function with arguments:\n  - `items` Current page of items\n  - `size` Total number of items",
              "attribute": "data-provider",
              "inheritedFrom": {
                "name": "CrudMixin",
                "module": "src/vaadin-crud-mixin.js"
              }
            },
            {
              "kind": "field",
              "name": "editedItem",
              "privacy": "public",
              "type": {
                "text": "object"
              },
              "description": "The item being edited in the dialog.",
              "attribute": "edited-item",
              "inheritedFrom": {
                "name": "CrudMixin",
                "module": "src/vaadin-crud-mixin.js"
              }
            },
            {
              "kind": "field",
              "name": "editOnClick",
              "privacy": "public",
              "type": {
                "text": "boolean"
              },
              "description": "Enables user to click on row to edit it.\nNote: When enabled, auto-generated grid won't show the edit column.",
              "attribute": "edit-on-click",
              "inheritedFrom": {
                "name": "CrudMixin",
                "module": "src/vaadin-crud-mixin.js"
              }
            },
            {
              "kind": "field",
              "name": "editorOpened",
              "privacy": "public",
              "type": {
                "text": "boolean"
              },
              "description": "Reflects the opened status of the editor.",
              "attribute": "editor-opened",
              "inheritedFrom": {
                "name": "CrudMixin",
                "module": "src/vaadin-crud-mixin.js"
              }
            },
            {
              "kind": "field",
              "name": "editorPosition",
              "privacy": "public",
              "type": {
                "text": "string"
              },
              "description": "Sets how editor will be presented on desktop screen.\n\nAccepted values are:\n  - `` (default) - form will open as overlay\n  - `bottom` - form will open below the grid\n  - `aside` - form will open on the grid side (_right_, if lft and _left_ if rtl)",
              "attribute": "editor-position",
              "inheritedFrom": {
                "name": "CrudMixin",
                "module": "src/vaadin-crud-mixin.js"
              }
            },
            {
              "kind": "field",
              "name": "exclude",
              "privacy": "public",
              "type": {
                "text": "string"
              },
              "description": "A comma-separated list of fields to be excluded from the generated grid and the generated editor.\n\nWhen [`include`](#/elements/vaadin-crud#property-include) is defined, this parameter is ignored.\n\nDefault is to exclude all private fields (those properties starting with underscore)",
              "attribute": "exclude",
              "inheritedFrom": {
                "name": "CrudMixin",
                "module": "src/vaadin-crud-mixin.js"
              }
            },
            {
              "kind": "field",
              "name": "i18n",
              "privacy": "public",
              "type": {
                "text": "Object"
              },
              "description": "The object used to localize this component. To change the default\nlocalization, replace this with an object that provides all properties, or\njust the individual properties you want to change.\n\nThe object has the following JSON structure and default values:\n\n```js\n{\n  newItem: 'New item',\n  editItem: 'Edit item',\n  saveItem: 'Save',\n  cancel: 'Cancel',\n  deleteItem: 'Delete...',\n  editLabel: 'Edit',\n  confirm: {\n    delete: {\n      title: 'Confirm delete',\n      content: 'Are you sure you want to delete the selected item? This action cannot be undone.',\n      button: {\n        confirm: 'Delete',\n        dismiss: 'Cancel'\n      }\n    },\n    cancel: {\n      title: 'Unsaved changes',\n      content: 'There are unsaved modifications to the item.',\n      button: {\n        confirm: 'Discard',\n        dismiss: 'Continue editing'\n      }\n    }\n  }\n}\n```",
              "attribute": "i18n",
              "inheritedFrom": {
                "name": "I18nMixin",
                "package": "@vaadin/component-base/src/i18n-mixin.js"
              }
            },
            {
              "kind": "field",
              "name": "include",
              "privacy": "public",
              "type": {
                "text": "string"
              },
              "description": "A comma-separated list of fields to include in the generated grid and the generated editor.\n\nIt can be used to explicitly define the field order.\n\nWhen it is defined [`exclude`](#/elements/vaadin-crud#property-exclude) is ignored.\n\nDefault is undefined meaning that all properties in the object should be mapped to fields.",
              "attribute": "include",
              "inheritedFrom": {
                "name": "CrudMixin",
                "module": "src/vaadin-crud-mixin.js"
              }
            },
            {
              "kind": "field",
              "name": "items",
              "privacy": "public",
              "type": {
                "text": "array"
              },
              "description": "An array containing the items which will be stamped to the column template instances.",
              "attribute": "items",
              "inheritedFrom": {
                "name": "CrudMixin",
                "module": "src/vaadin-crud-mixin.js"
              }
            },
            {
              "kind": "field",
              "name": "noFilter",
              "privacy": "public",
              "type": {
                "text": "boolean"
              },
              "description": "Disable filtering when grid is autoconfigured.",
              "attribute": "no-filter",
              "inheritedFrom": {
                "name": "CrudMixin",
                "module": "src/vaadin-crud-mixin.js"
              }
            },
            {
              "kind": "field",
              "name": "noHead",
              "privacy": "public",
              "type": {
                "text": "boolean"
              },
              "description": "Remove grid headers when it is autoconfigured.",
              "attribute": "no-head",
              "inheritedFrom": {
                "name": "CrudMixin",
                "module": "src/vaadin-crud-mixin.js"
              }
            },
            {
              "kind": "field",
              "name": "noSort",
              "privacy": "public",
              "type": {
                "text": "boolean"
              },
              "description": "Disable sorting when grid is autoconfigured.",
              "attribute": "no-sort",
              "inheritedFrom": {
                "name": "CrudMixin",
                "module": "src/vaadin-crud-mixin.js"
              }
            },
            {
              "kind": "field",
              "name": "noToolbar",
              "privacy": "public",
              "type": {
                "text": "boolean"
              },
              "description": "Controls visibility state of toolbar.\nWhen set to false toolbar is hidden and shown when set to true.",
              "attribute": "no-toolbar",
              "inheritedFrom": {
                "name": "CrudMixin",
                "module": "src/vaadin-crud-mixin.js"
              }
            },
            {
              "kind": "field",
              "name": "size",
              "privacy": "public",
              "type": {
                "text": "number"
              },
              "description": "Number of items in the data set which is reported by the grid.\nTypically it reflects the number of filtered items displayed in the grid.\n\nNote: As with `<vaadin-grid>`, this property updates automatically only\nif `items` is used for data.",
              "attribute": "size",
              "readonly": true,
              "inheritedFrom": {
                "name": "CrudMixin",
                "module": "src/vaadin-crud-mixin.js"
              }
            }
          ],
          "events": [
            {
              "type": {
                "text": "CustomEvent"
              },
              "description": "Fired when user discards edition.",
              "name": "cancel"
            },
            {
              "type": {
                "text": "CustomEvent"
              },
              "description": "Fired when user wants to delete item.",
              "name": "delete"
            },
            {
              "type": {
                "text": "CustomEvent"
              },
              "description": "Fired when user wants to edit an existing item.",
              "name": "edit"
            },
            {
              "type": {
                "text": "CustomEvent"
              },
              "description": "Fired when `editedItem` property changes.",
              "name": "edited-item-changed"
            },
            {
              "type": {
                "text": "CustomEvent"
              },
              "description": "Fired when the `editorOpened` property changes.",
              "name": "editor-opened-changed"
            },
            {
              "type": {
                "text": "CustomEvent"
              },
              "description": "Fired when the `items` property changes.",
              "name": "items-changed"
            },
            {
              "type": {
                "text": "CustomEvent"
              },
              "description": "Fired when user wants to create a new item.",
              "name": "new"
            },
            {
              "type": {
                "text": "CustomEvent"
              },
              "description": "Fired when user wants to save a new or an existing item.",
              "name": "save"
            },
            {
              "type": {
                "text": "CustomEvent"
              },
              "description": "Fired when the `size` property changes.",
              "name": "size-changed"
            }
          ],
          "mixins": [
            {
              "name": "CrudMixin",
              "module": "src/vaadin-crud-mixin.js"
            },
            {
              "name": "ElementMixin",
              "package": "@vaadin/component-base/src/element-mixin.js"
            },
            {
              "name": "ThemableMixin",
              "package": "@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js"
            },
            {
              "name": "PolylitMixin",
              "package": "@vaadin/component-base/src/polylit-mixin.js"
            },
            {
              "name": "LumoInjectionMixin",
              "package": "@vaadin/vaadin-themable-mixin/lumo-injection-mixin.js"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "tagName": "vaadin-crud",
          "customElement": true,
          "attributes": [
            {
              "name": "data-provider",
              "type": {
                "text": "CrudDataProvider | undefined"
              },
              "description": "Function that provides items lazily. Receives arguments `params`, `callback`\n\n`params.page` Requested page index\n`params.pageSize` Current page size\n`params.filters` Currently applied filters\n`params.sortOrders` Currently applied sorting orders\n\n`callback(items, size)` Callback function with arguments:\n  - `items` Current page of items\n  - `size` Total number of items",
              "fieldName": "dataProvider",
              "inheritedFrom": {
                "name": "CrudMixin",
                "module": "src/vaadin-crud-mixin.js"
              }
            },
            {
              "name": "edit-on-click",
              "type": {
                "text": "boolean"
              },
              "description": "Enables user to click on row to edit it.\nNote: When enabled, auto-generated grid won't show the edit column.",
              "fieldName": "editOnClick",
              "inheritedFrom": {
                "name": "CrudMixin",
                "module": "src/vaadin-crud-mixin.js"
              }
            },
            {
              "name": "editor-opened",
              "type": {
                "text": "boolean"
              },
              "description": "Reflects the opened status of the editor.",
              "fieldName": "editorOpened",
              "inheritedFrom": {
                "name": "CrudMixin",
                "module": "src/vaadin-crud-mixin.js"
              }
            },
            {
              "name": "editor-position",
              "type": {
                "text": "string"
              },
              "description": "Sets how editor will be presented on desktop screen.\n\nAccepted values are:\n  - `` (default) - form will open as overlay\n  - `bottom` - form will open below the grid\n  - `aside` - form will open on the grid side (_right_, if lft and _left_ if rtl)",
              "fieldName": "editorPosition",
              "inheritedFrom": {
                "name": "CrudMixin",
                "module": "src/vaadin-crud-mixin.js"
              }
            },
            {
              "name": "exclude",
              "type": {
                "text": "string"
              },
              "description": "A comma-separated list of fields to be excluded from the generated grid and the generated editor.\n\nWhen [`include`](#/elements/vaadin-crud#property-include) is defined, this parameter is ignored.\n\nDefault is to exclude all private fields (those properties starting with underscore)",
              "fieldName": "exclude",
              "inheritedFrom": {
                "name": "CrudMixin",
                "module": "src/vaadin-crud-mixin.js"
              }
            },
            {
              "name": "i18n",
              "type": {
                "text": "Object"
              },
              "description": "The object used to localize this component. To change the default\nlocalization, replace this with an object that provides all properties, or\njust the individual properties you want to change.\n\nShould be overridden by subclasses to provide a custom JSDoc with the\ndefault I18N properties.",
              "fieldName": "i18n",
              "inheritedFrom": {
                "name": "I18nMixin",
                "package": "@vaadin/component-base/src/i18n-mixin.js"
              }
            },
            {
              "name": "include",
              "type": {
                "text": "string"
              },
              "description": "A comma-separated list of fields to include in the generated grid and the generated editor.\n\nIt can be used to explicitly define the field order.\n\nWhen it is defined [`exclude`](#/elements/vaadin-crud#property-exclude) is ignored.\n\nDefault is undefined meaning that all properties in the object should be mapped to fields.",
              "fieldName": "include",
              "inheritedFrom": {
                "name": "CrudMixin",
                "module": "src/vaadin-crud-mixin.js"
              }
            },
            {
              "name": "items",
              "type": {
                "text": "array"
              },
              "description": "An array containing the items which will be stamped to the column template instances.",
              "fieldName": "items",
              "inheritedFrom": {
                "name": "CrudMixin",
                "module": "src/vaadin-crud-mixin.js"
              }
            },
            {
              "name": "no-filter",
              "type": {
                "text": "boolean"
              },
              "description": "Disable filtering when grid is autoconfigured.",
              "fieldName": "noFilter",
              "inheritedFrom": {
                "name": "CrudMixin",
                "module": "src/vaadin-crud-mixin.js"
              }
            },
            {
              "name": "no-head",
              "type": {
                "text": "boolean"
              },
              "description": "Remove grid headers when it is autoconfigured.",
              "fieldName": "noHead",
              "inheritedFrom": {
                "name": "CrudMixin",
                "module": "src/vaadin-crud-mixin.js"
              }
            },
            {
              "name": "no-sort",
              "type": {
                "text": "boolean"
              },
              "description": "Disable sorting when grid is autoconfigured.",
              "fieldName": "noSort",
              "inheritedFrom": {
                "name": "CrudMixin",
                "module": "src/vaadin-crud-mixin.js"
              }
            },
            {
              "name": "no-toolbar",
              "type": {
                "text": "boolean"
              },
              "description": "Controls visibility state of toolbar.\nWhen set to false toolbar is hidden and shown when set to true.",
              "fieldName": "noToolbar",
              "inheritedFrom": {
                "name": "CrudMixin",
                "module": "src/vaadin-crud-mixin.js"
              }
            },
            {
              "name": "size",
              "type": {
                "text": "number"
              },
              "description": "Number of items in the data set which is reported by the grid.\nTypically it reflects the number of filtered items displayed in the grid.\n\nNote: As with `<vaadin-grid>`, this property updates automatically only\nif `items` is used for data.",
              "fieldName": "size",
              "inheritedFrom": {
                "name": "CrudMixin",
                "module": "src/vaadin-crud-mixin.js"
              }
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "Crud",
          "declaration": {
            "name": "Crud",
            "module": "src/vaadin-crud.js"
          }
        }
      ]
    }
  ]
}
