{
  "schemaVersion": "1.0.0",
  "readme": "",
  "modules": [
    {
      "kind": "javascript-module",
      "path": "src/furo-api-fetch.js",
      "declarations": [
        {
          "kind": "class",
          "description": "Use `furo-api-fetch` to fetch data from the network.\n\n\n```html\n<furo-api-fetch fn-invoke-request=\"--Request\"></furo-api-fetch>\n```",
          "name": "FuroApiFetch",
          "members": [
            {
              "kind": "method",
              "name": "invokeRequest",
              "parameters": [
                {
                  "name": "request",
                  "description": "(The Request interface of the Fetch API represents a resource request.) https://developer.mozilla.org/en-US/docs/Web/API/Request",
                  "type": {
                    "text": "Request"
                  }
                }
              ],
              "description": "Sends a HTTP request to the server",
              "privacy": "public"
            },
            {
              "kind": "method",
              "name": "abortRequest",
              "parameters": [
                {
                  "name": "controller",
                  "description": "(The AbortController interface represents a controller object that allows you to abort one or more DOM requests as and when desired.)\nhttps://developer.mozilla.org/en-US/docs/Web/API/AbortController",
                  "type": {
                    "text": "AbortController"
                  }
                }
              ],
              "description": "Aborts a pending request\nYou have to submit an AbortController"
            },
            {
              "kind": "method",
              "name": "_executeRequest",
              "parameters": [
                {
                  "name": "request"
                }
              ],
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "_reworkRequest",
              "parameters": [
                {
                  "name": "response"
                }
              ],
              "description": "Errorhandling according to Google rest-api-v3 Status Codes\n(https://developers.google.com/maps-booking/reference/rest-api-v3/status_codes)\n\nDispatches event `response-error` and a specific error event with status code",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "_parseResponse",
              "parameters": [
                {
                  "name": "response"
                }
              ],
              "description": "parses response object according to lastRequest heaader informationen `content-type`\nyou will find the supported content-types in the declaration area\nresponse Fetch API response object [https://developer.mozilla.org/en-US/docs/Web/API/Response]\nDefault response handler is json!",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "lastRequest",
              "type": {
                "text": "Object"
              },
              "description": "LastRequest's response.\n\nNote that lastResponse is set when ongoing request finishes, so if loading is true,\nthen lastResponse will correspond to the result of the previous request.",
              "default": "{}"
            },
            {
              "kind": "field",
              "name": "isLoading",
              "type": {
                "text": "boolean"
              },
              "description": "True while request is in flight.",
              "default": "false"
            }
          ],
          "events": [
            {
              "name": "fatal-error",
              "type": {
                "text": "Request"
              },
              "description": "Requests are made via the Fetch API if possible.Fallback XMLHttpRequest"
            },
            {
              "name": "request-started",
              "type": {
                "text": "Request"
              },
              "description": "Fired when a request is sent."
            },
            {
              "name": "request-aborted",
              "type": {
                "text": "Request"
              },
              "description": "Fired when a request was canceled."
            },
            {
              "name": "response-raw",
              "type": {
                "text": "Object"
              },
              "description": "Fired when a response is received."
            },
            {
              "name": "response",
              "type": {
                "text": "Object"
              },
              "description": "Fired when a response is received. Here you will get the parsed response Format depends on request header `content-type` supported types: - text/plain - application/json - image/jpeg (Blob) - application/octet-stream (ArrayBuffer) - application/pdf (Blob)"
            },
            {
              "name": "parse-error",
              "type": {
                "text": "CustomEvent"
              }
            },
            {
              "name": "response-error-raw",
              "type": {
                "text": "Object"
              },
              "description": "Fired when a error has occoured."
            },
            {
              "name": "response-error",
              "type": {
                "text": "Object"
              },
              "description": "Fired when an error has occoured. This is a general error event. The specific error events are fired additionally."
            },
            {
              "type": {
                "text": "CustomEvent"
              }
            },
            {
              "type": {
                "text": "Object"
              },
              "description": "Fired when an error has occoured. This is a specific error event.",
              "name": "response-error-[status-code]"
            },
            {
              "type": {
                "text": "Object"
              },
              "description": "Fired when an error has occoured. This is a group error event. E.g. response-error-5xx, response-error-4xx",
              "name": "response-error-4xx"
            },
            {
              "type": {
                "text": "Object"
              },
              "description": "Fired when an error has occoured. This is a group error event. E.g. response-error-5xx, response-error-4xx",
              "name": "response-error-5xx"
            }
          ],
          "superclass": {
            "name": "HTMLElement"
          },
          "summary": "fetch data from network",
          "tagName": "furo-api-fetch",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "FuroApiFetch",
          "declaration": {
            "name": "FuroApiFetch",
            "module": "src/furo-api-fetch.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "furo-api-fetch",
          "declaration": {
            "name": "FuroApiFetch",
            "module": "src/furo-api-fetch.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/furo-collection-agent.js",
      "declarations": [
        {
          "kind": "class",
          "description": "`furo-collection-agent` is an interface component to handle collection requests.\n\n\n```html\n<furo-collection-agent\n   service=\"Servicename\"\n   fn-hts-in=\"--hts\"></furo-collection-agent>\n\n<!-- produces a hateoas link array -->\n<furo-deep-link\n    service=\"Servicename\" at-hts-out=\"--hts\"></furo-deep-link>\n\n```\n\n\n\n*before you can do any requests, the service and the HATEOAS must be defined*",
          "name": "FuroCollectionAgent",
          "members": [
            {
              "kind": "method",
              "name": "_attachListeners",
              "parameters": [
                {
                  "name": "eventPrefix"
                }
              ],
              "description": "Attaches temporary listeners to fire load-success, load-fail, delete-success,...",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "view",
              "privacy": "public",
              "type": {
                "text": "String"
              },
              "description": "Parameter for contextual representations\n\nTo reduce network traffic, it is sometimes useful to allow the client to limit which parts of the resource the server should return in its responses,\nreturning a view of the resource (i.e. specialized version for dropdowns ) instead of the full resource representation.\n\nhttps://cloud.google.com/apis/design/design_patterns#resource_view\n\nview=smallcards\n\nOnly useable if your service has implemented this feature.",
              "attribute": "view"
            },
            {
              "kind": "method",
              "name": "setFields",
              "parameters": [
                {
                  "name": "fields",
                  "description": "Comma separated list of fields",
                  "type": {
                    "text": "String"
                  }
                }
              ],
              "description": "\nComma separated list of fields (like a fieldmask)\nused for partial representation / partial responses.\n\nIf your services supports this feature, you will receive a subset of the fields."
            },
            {
              "kind": "method",
              "name": "bindRequestData",
              "parameters": [
                {
                  "name": "dataObject"
                }
              ],
              "description": "Binds a furo-data-object type. Use this if you want save data."
            },
            {
              "kind": "method",
              "name": "setOrderBy",
              "parameters": [
                {
                  "name": "order",
                  "description": "Comma separated list of sort orders",
                  "type": {
                    "text": "String"
                  }
                }
              ],
              "description": "Sorting order\n\norder-by=\"foo,-bar\"  means foo asc and bar desc\n\nhttps://cloud.google.com/apis/design/design_patterns#sorting_order\n\nTo avoid sql injection errors we do not send any sql like syntax!\n\nOnly useable if your service has implemented this feature."
            },
            {
              "kind": "method",
              "name": "clearFilter",
              "description": "clear the setted filter"
            },
            {
              "kind": "method",
              "name": "setFilter",
              "parameters": [
                {
                  "name": "filterstring",
                  "description": "String for your filter.",
                  "type": {
                    "text": "String"
                  }
                }
              ],
              "description": "Set the filter.\n\nHint: use the FieldNode._base64 property to send complex objects as a filter and decode it on the server side.\n\nOnly useable if your service has implemented this feature."
            },
            {
              "kind": "field",
              "name": "filter",
              "privacy": "public",
              "type": {
                "text": "String"
              },
              "description": "Set the filter.\n\nHint: use the FieldNode._base64 property to send complex objects as a filter and decode it on the server side.\n\nOnly useable if your service has implemented this feature.",
              "parameters": [
                {
                  "description": "String for your filter.",
                  "name": "filterstring",
                  "type": {
                    "text": "String"
                  }
                }
              ],
              "attribute": "filter"
            },
            {
              "kind": "method",
              "name": "setPageSize",
              "parameters": [
                {
                  "name": "size",
                  "description": "requested size of a page.",
                  "type": {
                    "text": "Number"
                  }
                }
              ],
              "description": "Sets pagination size in the List request.\n\nOnly useful if your service supports pagination."
            },
            {
              "kind": "field",
              "name": "service",
              "privacy": "public",
              "type": {
                "text": "String"
              },
              "description": "Setze den Service",
              "parameters": [
                {
                  "description": "-",
                  "name": "service",
                  "type": {
                    "text": "String"
                  }
                }
              ],
              "attribute": "service"
            },
            {
              "kind": "method",
              "name": "updateQp",
              "parameters": [
                {
                  "name": "qp"
                },
                {
                  "description": "value pairs",
                  "name": "key",
                  "type": {
                    "text": "Object"
                  }
                }
              ],
              "description": "Update query params\na qp like {\"active\":true} will just update the qp *active*\n\nIf the current value of the qp is not the same like the injected value, a qp-changed event will be fired"
            },
            {
              "kind": "method",
              "name": "setQp",
              "parameters": [
                {
                  "name": "qp"
                },
                {
                  "description": "value pairs",
                  "name": "key",
                  "type": {
                    "text": "Object"
                  }
                }
              ],
              "description": "Set query params\nAll existing query params are replaced by the transferred parameters\nIf the transferred object is empty, all the values will be removed!\nThe AgentHelper fires a qp-set event after the query params are replaced."
            },
            {
              "kind": "method",
              "name": "clearQp",
              "description": "clear the query params that you have setted before"
            },
            {
              "kind": "method",
              "name": "_makeRequest",
              "parameters": [
                {
                  "name": "link"
                },
                {
                  "name": "dataObject"
                },
                {
                  "name": "body"
                }
              ],
              "return": {
                "type": {
                  "text": "Request"
                }
              },
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "_prepareRequestPaylod",
              "parameters": [
                {
                  "name": "link"
                },
                {
                  "name": "dataObject"
                }
              ],
              "description": "Prepare request body depending from method",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "_evaluateLinksField",
              "parameters": [
                {
                  "name": "fields"
                }
              ],
              "description": "find the first field of type furo.Link and use this for hts-out",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "_followRelService",
              "parameters": [
                {
                  "name": "rel"
                },
                {
                  "name": "serviceName"
                }
              ],
              "description": "If HATEOAS is present, the wire --triggerLoad is fired with the\ncorresponding request object as payload.",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "list",
              "description": "loads the entity if hts is available"
            },
            {
              "kind": "method",
              "name": "load",
              "description": "loads the entity if hts is available"
            },
            {
              "kind": "method",
              "name": "loadRel",
              "description": "loads the entity following the link which is specified on the attribute **rel** if it is available."
            },
            {
              "kind": "method",
              "name": "searchRel",
              "parameters": [
                {
                  "name": "term"
                }
              ],
              "description": "search for a term following the link which is specified on the attribute **rel**\n\nThis will set the query param q and execute the query."
            },
            {
              "kind": "method",
              "name": "search",
              "parameters": [
                {
                  "name": "term"
                }
              ],
              "description": "search for a term.\n\nThis will set the query param q and triggers a list()"
            },
            {
              "kind": "method",
              "name": "first",
              "description": "loads the entity if hts is available"
            },
            {
              "kind": "method",
              "name": "prev",
              "description": "loads the entity if hts is available"
            },
            {
              "kind": "method",
              "name": "next",
              "description": "loads the entity if hts is available"
            },
            {
              "kind": "method",
              "name": "last",
              "description": "loads the entity if hts is available"
            },
            {
              "kind": "method",
              "name": "_updateInternalHTS",
              "parameters": [
                {
                  "name": "hts"
                }
              ],
              "return": {
                "type": {
                  "text": "boolean"
                }
              },
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "htsIn",
              "parameters": [
                {
                  "name": "hts"
                }
              ],
              "description": "Inject HATEOAS links."
            },
            {
              "kind": "method",
              "name": "abortPendingRequest",
              "description": "Aborts a pending request"
            },
            {
              "kind": "field",
              "name": "_servicedefinitions",
              "description": "easy access to the services",
              "type": {
                "text": "{}"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "_ApiEnvironment",
              "type": {
                "text": "*|{headers: [[string, string]], specs: {}, services: {}}"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "_pendingRequests",
              "type": {
                "text": "*[]"
              },
              "privacy": "private",
              "default": "[]"
            },
            {
              "kind": "field",
              "name": "_linkField",
              "type": {
                "text": "string"
              },
              "description": "This field contains the hts links",
              "privacy": "private",
              "default": "'links'"
            },
            {
              "kind": "field",
              "name": "_singleElementQueue",
              "type": {
                "text": "*[]"
              },
              "description": "queue for calls, before hts is set",
              "privacy": "private",
              "default": "[]"
            },
            {
              "kind": "field",
              "name": "_queryParams",
              "type": {
                "text": "{}"
              },
              "privacy": "private",
              "default": "{}"
            },
            {
              "kind": "field",
              "name": "pageSize",
              "privacy": "public",
              "type": {
                "text": "Number"
              },
              "description": "Sets pagination size in the List request.\n\nOnly useful if your service supports pagination.",
              "attribute": "page-size"
            },
            {
              "kind": "field",
              "name": "fields",
              "privacy": "public",
              "type": {
                "text": "String"
              },
              "description": "Comma separated list of fields (like a fieldmask)\nused for partial representation / partial responses.\n\nIf your services supports this feature, you will receive a subset of the fields.",
              "attribute": "fields"
            },
            {
              "kind": "field",
              "name": "orderBy",
              "privacy": "public",
              "type": {
                "text": "String"
              },
              "description": "Sorting order\n\norder-by=\"foo,-bar\"  means foo asc and bar desc\n\nhttps://cloud.google.com/apis/design/design_patterns#sorting_order\n\nTo avoid sql injection errors we do not send any sql like syntax!\n\nOnly useable if your service has implemented this feature.",
              "attribute": "order-by"
            },
            {
              "kind": "field",
              "name": "listOnHtsIn",
              "privacy": "public",
              "type": {
                "text": "Boolean"
              },
              "description": "Executes a list when a rel=\"list\" is injected.",
              "attribute": "list-on-hts-in"
            },
            {
              "kind": "field",
              "name": "loadRelOnHtsIn",
              "privacy": "public",
              "type": {
                "text": "Boolean"
              },
              "description": "Executes a loadRel when a rel=\"XXXX\" is injected.\n\nYou have to set the attributes *rel* and *method* to have this working.\n\nThis is useful for getting \"custom\" collections.",
              "attribute": "load-rel-on-hts-in"
            },
            {
              "kind": "field",
              "name": "rel",
              "privacy": "public",
              "type": {
                "text": "String"
              },
              "description": "rel which should be used on load rel",
              "attribute": "rel"
            },
            {
              "kind": "field",
              "name": "method",
              "privacy": "public",
              "type": {
                "text": "String"
              },
              "description": "for compatibility reasons you have to specify the method inside of the service.\n\nThis attribute should not be needed in future versions, because the rel already contains all relevant information.",
              "attribute": "method"
            }
          ],
          "events": [
            {
              "type": {
                "text": "Request"
              },
              "description": "Fired if the request was successfully cancelled",
              "name": "request-aborted"
            },
            {
              "type": {
                "text": "Request"
              },
              "description": "Fired when a request is sent.",
              "name": "request-started"
            },
            {
              "type": {
                "text": "Object"
              },
              "description": "Fired when a response is received.",
              "name": "response-raw"
            },
            {
              "type": {
                "text": "Object"
              },
              "description": "Fired when an error has occoured. This is a general error event. The specific error events are fired additionally.",
              "name": "response-error"
            },
            {
              "type": {
                "text": "Object"
              },
              "description": "Fired when an error has occoured. This is a specific error event.",
              "name": "response-error-[status-code]"
            },
            {
              "type": {
                "text": "Request"
              },
              "description": "Requests are made via the Fetch API if possible.Fallback XMLHttpRequest",
              "name": "fatal-error"
            },
            {
              "type": {
                "text": "Object"
              },
              "description": "Fired when an error has occoured. This is a group error event. E.g. response-error-5xx, response-error-4xx",
              "name": "response-error-4xx"
            },
            {
              "type": {
                "text": "Object"
              },
              "description": "Fired when an error has occoured. This is a group error event. E.g. response-error-5xx, response-error-4xx",
              "name": "response-error-5xx"
            },
            {
              "type": {
                "text": "Object"
              },
              "description": "Fired when a error has occoured.",
              "name": "response-error-raw"
            },
            {
              "type": {
                "text": "Object"
              },
              "description": "Fired when a response is received.",
              "name": "response"
            },
            {
              "type": {
                "text": "hts"
              },
              "description": " Fired when the hts was updated by the received response.",
              "name": "response-hts-updated"
            },
            {
              "description": " Fired when filter was updated with `fn-set-filter`.",
              "name": "filter-changed"
            },
            {
              "type": {
                "text": "Array|HATEOAS"
              },
              "description": " Fired when hateoas was updated from response.",
              "name": "hts-updated"
            },
            {
              "type": {
                "text": "Hateoas links"
              },
              "description": " Fired when hateoas was updated",
              "name": "hts-injected"
            }
          ],
          "attributes": [
            {
              "name": "service",
              "type": {
                "text": "String"
              },
              "description": "Setze den Service",
              "parameters": [
                {
                  "description": "-",
                  "name": "service",
                  "type": {
                    "text": "String"
                  }
                }
              ],
              "fieldName": "service"
            },
            {
              "name": "page-size",
              "type": {
                "text": "Number"
              },
              "description": "Sets pagination size in the List request.\n\nOnly useful if your service supports pagination.",
              "fieldName": "pageSize"
            },
            {
              "name": "fields",
              "type": {
                "text": "String"
              },
              "description": "Comma separated list of fields (like a fieldmask)\nused for partial representation / partial responses.\n\nIf your services supports this feature, you will receive a subset of the fields.",
              "fieldName": "fields"
            },
            {
              "name": "order-by",
              "type": {
                "text": "String"
              },
              "description": "Sorting order\n\norder-by=\"foo,-bar\"  means foo asc and bar desc\n\nhttps://cloud.google.com/apis/design/design_patterns#sorting_order\n\nTo avoid sql injection errors we do not send any sql like syntax!\n\nOnly useable if your service has implemented this feature.",
              "fieldName": "orderBy"
            },
            {
              "name": "filter",
              "type": {
                "text": "String"
              },
              "description": "Set the filter.\n\nHint: use the FieldNode._base64 property to send complex objects as a filter and decode it on the server side.\n\nOnly useable if your service has implemented this feature.",
              "parameters": [
                {
                  "description": "String for your filter.",
                  "name": "filterstring",
                  "type": {
                    "text": "String"
                  }
                }
              ],
              "fieldName": "filter"
            },
            {
              "name": "view",
              "type": {
                "text": "String"
              },
              "description": "Parameter for contextual representations\n\nTo reduce network traffic, it is sometimes useful to allow the client to limit which parts of the resource the server should return in its responses,\nreturning a view of the resource (i.e. specialized version for dropdowns ) instead of the full resource representation.\n\nhttps://cloud.google.com/apis/design/design_patterns#resource_view\n\nview=smallcards\n\nOnly useable if your service has implemented this feature.",
              "fieldName": "view"
            },
            {
              "name": "list-on-hts-in",
              "type": {
                "text": "Boolean"
              },
              "description": "Executes a list when a rel=\"list\" is injected.",
              "fieldName": "listOnHtsIn"
            },
            {
              "name": "load-rel-on-hts-in",
              "type": {
                "text": "Boolean"
              },
              "description": "Executes a loadRel when a rel=\"XXXX\" is injected.\n\nYou have to set the attributes *rel* and *method* to have this working.\n\nThis is useful for getting \"custom\" collections.",
              "fieldName": "loadRelOnHtsIn"
            },
            {
              "name": "rel",
              "type": {
                "text": "String"
              },
              "description": "rel which should be used on load rel",
              "fieldName": "rel"
            },
            {
              "name": "method",
              "type": {
                "text": "String"
              },
              "description": "for compatibility reasons you have to specify the method inside of the service.\n\nThis attribute should not be needed in future versions, because the rel already contains all relevant information.",
              "fieldName": "method"
            }
          ],
          "mixins": [
            {
              "name": "FBP",
              "package": "@furo/fbp"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "summary": "interface component to handle collection requests",
          "tagName": "furo-collection-agent",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "FuroCollectionAgent",
          "declaration": {
            "name": "FuroCollectionAgent",
            "module": "src/furo-collection-agent.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "furo-collection-agent",
          "declaration": {
            "name": "FuroCollectionAgent",
            "module": "src/furo-collection-agent.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/furo-custom-method.js",
      "declarations": [
        {
          "kind": "class",
          "description": "`furo-custom-method` is a interface component to handle custom methods.\n\n```html\n<furo-custom-method\n    service=\"Servicename\"\n    method=\"release\"\n    fn-hts-in=\"--hts\"\n    fn-trigger=\"--customClick\"></furo-custom-method>\n\n<!-- produces a hateoas link array -->\n<furo-deep-link\n    service=\"Servicename\" at-hts-out=\"--hts\"></furo-deep-link>\n\n```\n* *before you can do any requests, the service, method and the HATEOAS must be known*",
          "name": "FuroCustomMethod",
          "members": [
            {
              "kind": "field",
              "name": "service",
              "privacy": "public",
              "type": {
                "text": "String"
              },
              "description": "Setze den Service",
              "parameters": [
                {
                  "name": "service"
                }
              ],
              "attribute": "service"
            },
            {
              "kind": "method",
              "name": "updateQp",
              "parameters": [
                {
                  "name": "qp"
                },
                {
                  "description": "value pairs",
                  "name": "key",
                  "type": {
                    "text": "Object"
                  }
                }
              ],
              "description": "Update query params\na qp like {\"active\":true} will just update the qp *active*\n\nIf the current value of the qp is not the same like the injected value, a qp-changed event will be fired"
            },
            {
              "kind": "method",
              "name": "bindRequestData",
              "parameters": [
                {
                  "name": "dataObject"
                }
              ],
              "description": "Binds a furo-data-object type."
            },
            {
              "kind": "method",
              "name": "clearQp",
              "description": "clear the query params that you have setted before"
            },
            {
              "kind": "method",
              "name": "_makeRequest",
              "parameters": [
                {
                  "name": "link"
                },
                {
                  "name": "dataObject"
                }
              ],
              "return": {
                "type": {
                  "text": "Request"
                }
              },
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "_checkServiceAndHateoasLinkError",
              "parameters": [
                {
                  "name": "rel"
                },
                {
                  "name": "serviceName"
                }
              ],
              "return": {
                "type": {
                  "text": "boolean"
                }
              },
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "trigger",
              "description": "trigger the method with respect for binded-requset-object"
            },
            {
              "kind": "method",
              "name": "triggerEmpty"
            },
            {
              "kind": "method",
              "name": "triggerWithBody",
              "parameters": [
                {
                  "name": "body"
                }
              ],
              "description": "trigger the method with data"
            },
            {
              "kind": "method",
              "name": "htsIn",
              "parameters": [
                {
                  "name": "hts"
                }
              ]
            },
            {
              "kind": "method",
              "name": "abortPendingRequest",
              "description": "Aborts a pending request"
            },
            {
              "kind": "field",
              "name": "_servicedefinitions",
              "type": {
                "text": "{}"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "_ApiEnvironment",
              "type": {
                "text": "*|{headers: [[string, string]], specs: {}, services: {}}"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "_pendingRequests",
              "type": {
                "text": "*[]"
              },
              "privacy": "private",
              "default": "[]"
            },
            {
              "kind": "field",
              "name": "_queryParams",
              "type": {
                "text": "{}"
              },
              "privacy": "private",
              "default": "{}"
            },
            {
              "kind": "field",
              "name": "method",
              "privacy": "public",
              "type": {
                "text": "String"
              },
              "description": "Name of the custom method / rel.",
              "attribute": "method"
            }
          ],
          "events": [
            {
              "type": {
                "text": "HTS"
              },
              "description": " Fired when hts was updated by `fn-hts-in`.",
              "name": "hts-updated"
            },
            {
              "description": "Fired when a request was canceled.",
              "name": "request-aborted",
              "type": {
                "text": "Request"
              }
            },
            {
              "type": {
                "text": "Request"
              },
              "description": "Fired when a request is sent.",
              "name": "request-started"
            },
            {
              "type": {
                "text": "Object"
              },
              "description": "Fired when a response is received.",
              "name": "response-raw"
            },
            {
              "type": {
                "text": "Object"
              },
              "description": "Fired when an error has occoured. This is a general error event. The specific error events are fired additionally.",
              "name": "response-error"
            },
            {
              "type": {
                "text": "Object"
              },
              "description": "Fired when an error has occoured. This is a specific error event.",
              "name": "response-error-[status-code]"
            },
            {
              "type": {
                "text": "Request"
              },
              "description": "Requests are made via the Fetch API if possible.Fallback XMLHttpRequest",
              "name": "fatal-error"
            },
            {
              "type": {
                "text": "Object"
              },
              "description": "Fired when an error has occoured. This is a group error event. E.g. response-error-5xx, response-error-4xx",
              "name": "response-error-4xx"
            },
            {
              "type": {
                "text": "Object"
              },
              "description": "Fired when an error has occoured. This is a group error event. E.g. response-error-5xx, response-error-4xx",
              "name": "response-error-5xx"
            },
            {
              "type": {
                "text": "Object"
              },
              "description": "Fired when a error has occoured.",
              "name": "response-error-raw"
            },
            {
              "type": {
                "text": "Object"
              },
              "description": "Fired when a response is received.",
              "name": "response"
            }
          ],
          "attributes": [
            {
              "name": "service",
              "type": {
                "text": "String"
              },
              "description": "Setze den Service",
              "parameters": [
                {
                  "name": "service"
                }
              ],
              "fieldName": "service"
            },
            {
              "name": "method",
              "type": {
                "text": "String"
              },
              "description": "Name of the custom method / rel.",
              "fieldName": "method"
            }
          ],
          "mixins": [
            {
              "name": "FBP",
              "package": "@furo/fbp"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "summary": "interface component to handle custom methods",
          "tagName": "furo-custom-method",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "FuroCustomMethod",
          "declaration": {
            "name": "FuroCustomMethod",
            "module": "src/furo-custom-method.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "furo-custom-method",
          "declaration": {
            "name": "FuroCustomMethod",
            "module": "src/furo-custom-method.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/furo-data-flow-repeat.js",
      "declarations": [
        {
          "kind": "class",
          "description": "`furo-data-flow-repeat` Is a bindable repeater.\n\n\n ```html\n <furo-data-flow-repeat identity-path=\"id\" fn-bind-data=\"--data(*.repeaterfield)\">\n   <template>\n     <furo-ui5-data-text-input-labeled\n         fn-bind-data=\"--init\"></furo-ui5-data-text-input-labeled>\n   </template>\n </furo-data-flow-repeat>\n ```\n *The wire `--init` is fired from furo-data-flow-repeat*\n\n If you want to delete a repeated item, implement something which triggers the `deleteNode` method on the fieldNode itself.\n\n ## Available wires in the template:\n\n-  `--init` : contains the repeated item, fired only once on creation of the repeated node\n-  `--item` : contains the repeated item, fired on every inject\n-  `--firstItem` : contains the repeated item, fired on the first element.\n-  `--lastItem` : contains the repeated item, fired on the last element.\n-  `--index` : contains a number with the index of the element.\n-  `--host` : contains a reference to the host component.\n-  `--trigger` : contains what was passed in to the triggering method.\n-  `--triggerFirst` : contains what was passed in to the triggering method.\n-  `--triggerLast` : contains what was passed in to the triggering method.\n-  `--itemSelected` : contains nothing, is triggered with select(index).\n-  `--itemDeSelected` : contains nothing, is triggered when another item is selected with select(index).\n\n## Available attributes\n**index** contains the current index of the item. Use this to fire a event with an index like `at-click=\"^^item-clicked(index)\"`\n**item** contains the current index of the item. Use this to fire a event with the repeated item like `at-click=\"^^item-selected(item)\"`",
          "name": "FuroDataFlowRepeat",
          "members": [
            {
              "kind": "method",
              "name": "bindData",
              "parameters": [
                {
                  "name": "fieldNode",
                  "description": "Must be a repeater node.",
                  "type": {
                    "text": "RepeaterNode"
                  }
                }
              ],
              "description": "Bind a repeater node.\n\nIf `identity-path` is not set, the list will be cleared every time it receives new data.",
              "privacy": "public",
              "return": {
                "type": {
                  "text": "boolean"
                }
              },
              "inheritedFrom": {
                "name": "FieldNodeAdapter",
                "module": "src/lib/FieldNodeAdapter.js"
              }
            },
            {
              "kind": "method",
              "name": "onFnaRepeatedFieldChanged",
              "description": "Notifies when a repeater node changes",
              "privacy": "private",
              "inheritedFrom": {
                "name": "FieldNodeAdapter",
                "module": "src/lib/FieldNodeAdapter.js"
              }
            },
            {
              "kind": "method",
              "name": "add",
              "parameters": [
                {
                  "name": "data",
                  "description": "Object that match the type of the repeated node.",
                  "type": {
                    "text": "Object"
                  }
                }
              ],
              "description": "Adds a repeated item of the same type.\n\nIf  no object is set, a initial FieldNode of the same type is added to the repeats."
            },
            {
              "kind": "field",
              "name": "selectAddedItem",
              "type": {
                "text": "boolean"
              },
              "description": "Enable this to select the created item. This will trigger a wire `--itemSelected` which can be wired to\n`fn-focus=\"--itemSelected\"`.",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "identityPath",
              "type": {
                "text": "String"
              },
              "description": "By setting this param, the repeater has not to rebuild the list on new data. It only updates the parts that have changed.\n\nThe path is a field, relative to the root of the repeated item.",
              "default": "false"
            },
            {
              "kind": "method",
              "name": "getDataType",
              "description": "Returns the type name of the bounded fieldNode",
              "return": {
                "type": {
                  "text": ""
                }
              },
              "privacy": "private",
              "inheritedFrom": {
                "name": "FieldNodeAdapter",
                "module": "src/lib/FieldNodeAdapter.js"
              }
            },
            {
              "kind": "method",
              "name": "isFat",
              "description": "Check if bounded type is a fat type",
              "return": {
                "type": {
                  "text": ""
                }
              },
              "privacy": "private",
              "inheritedFrom": {
                "name": "FieldNodeAdapter",
                "module": "src/lib/FieldNodeAdapter.js"
              }
            },
            {
              "kind": "method",
              "name": "isWrapper",
              "description": "Check if bounded type is a wrapper type",
              "return": {
                "type": {
                  "text": ""
                }
              },
              "privacy": "private",
              "inheritedFrom": {
                "name": "FieldNodeAdapter",
                "module": "src/lib/FieldNodeAdapter.js"
              }
            },
            {
              "kind": "method",
              "name": "setFnaFieldValue",
              "parameters": [
                {
                  "name": "value",
                  "description": "the raw json value for the fieldNode."
                }
              ],
              "description": "Sets the value on the fieldNode. When you set the value, the changes you made will not trigger\nthe `onFnaFieldValueChanged`.",
              "privacy": "private",
              "inheritedFrom": {
                "name": "FieldNodeAdapter",
                "module": "src/lib/FieldNodeAdapter.js"
              }
            },
            {
              "kind": "method",
              "name": "onFnaFieldValueChanged",
              "parameters": [
                {
                  "name": "value",
                  "description": "the raw json value for the fieldNode."
                }
              ],
              "description": "Notifies a field value change event. This event is debounced with 1ms, if you have bound a complex type, only one change event\nwill be triggered (this is what you want). If you need all change events or more control for your component,\nuse the listener on the fieldNode itself.",
              "privacy": "private",
              "inheritedFrom": {
                "name": "FieldNodeAdapter",
                "module": "src/lib/FieldNodeAdapter.js"
              }
            },
            {
              "kind": "method",
              "name": "onFnaConstraintsChanged",
              "parameters": [
                {
                  "name": "constraints"
                }
              ],
              "description": "Notifies changes on the constraints.\n\nreturns an object like:\n```json\n {\n \"min\":\n   {\n     is:33,\n     message:\"must be bigger\"\n   }\n }\n```\n\n```javascript\n  // example callback\n  onFnaConstraintsChanged(constraints) {\n    if (constraints.min !== undefined) {\n      this._constraintsFromFNA.min = constraints.min;\n      if (this._privilegedAttributes.min === null && this._attributesFromFAT.min === undefined) {\n        this.min = constraints.min.is;\n      }\n    }\n }\n```",
              "privacy": "private",
              "inheritedFrom": {
                "name": "FieldNodeAdapter",
                "module": "src/lib/FieldNodeAdapter.js"
              }
            },
            {
              "kind": "method",
              "name": "onFnaOptionsChanged",
              "parameters": [
                {
                  "name": "options"
                }
              ],
              "description": "Notifies when the options for the field is changed or set.",
              "privacy": "private",
              "inheritedFrom": {
                "name": "FieldNodeAdapter",
                "module": "src/lib/FieldNodeAdapter.js"
              }
            },
            {
              "kind": "method",
              "name": "onFnaReadonlyChanged",
              "parameters": [
                {
                  "name": "readonly"
                }
              ],
              "description": "Notifies when the readonly flag for the field is changed or set.",
              "privacy": "private",
              "inheritedFrom": {
                "name": "FieldNodeAdapter",
                "module": "src/lib/FieldNodeAdapter.js"
              }
            },
            {
              "kind": "method",
              "name": "onFnaHintChanged",
              "parameters": [
                {
                  "name": "hint"
                }
              ],
              "description": "Notifies when the hint for the field is changed or set.",
              "privacy": "private",
              "inheritedFrom": {
                "name": "FieldNodeAdapter",
                "module": "src/lib/FieldNodeAdapter.js"
              }
            },
            {
              "kind": "method",
              "name": "onFnaLabelChanged",
              "parameters": [
                {
                  "name": "label"
                }
              ],
              "description": "Notifies when the label for the field is changed or set.",
              "privacy": "private",
              "inheritedFrom": {
                "name": "FieldNodeAdapter",
                "module": "src/lib/FieldNodeAdapter.js"
              }
            },
            {
              "kind": "method",
              "name": "onFnaPlaceholderChanged",
              "parameters": [
                {
                  "name": "placeholder"
                }
              ],
              "description": "Notifies when the placeholder for the field is changed or set.",
              "privacy": "private",
              "inheritedFrom": {
                "name": "FieldNodeAdapter",
                "module": "src/lib/FieldNodeAdapter.js"
              }
            },
            {
              "kind": "method",
              "name": "onFnaFieldNodeBecameValid",
              "description": "Notifies that a field gets valid.",
              "privacy": "private",
              "inheritedFrom": {
                "name": "FieldNodeAdapter",
                "module": "src/lib/FieldNodeAdapter.js"
              }
            },
            {
              "kind": "method",
              "name": "onFnaFieldStateChanged",
              "description": "Notifies that a field has changed its state",
              "privacy": "private",
              "inheritedFrom": {
                "name": "FieldNodeAdapter",
                "module": "src/lib/FieldNodeAdapter.js"
              }
            },
            {
              "kind": "method",
              "name": "onFnaFieldNodeBecameInvalid",
              "parameters": [
                {
                  "name": "validity",
                  "description": "Object like {constraint: \"min\", description: \"too small\", field: \"\"}"
                }
              ],
              "description": "Notifies that a field gets invalid.",
              "privacy": "private",
              "inheritedFrom": {
                "name": "FieldNodeAdapter",
                "module": "src/lib/FieldNodeAdapter.js"
              }
            },
            {
              "kind": "method",
              "name": "onFnaFieldNewDataInjected",
              "description": "Notifies that new data was injected",
              "privacy": "private",
              "inheritedFrom": {
                "name": "FieldNodeAdapter",
                "module": "src/lib/FieldNodeAdapter.js"
              }
            },
            {
              "kind": "method",
              "name": "__registerHandlers",
              "description": "This is done to be able to remove the event-listeners as a protection for multiple calls for bindData and for cleanup",
              "privacy": "private",
              "inheritedFrom": {
                "name": "FieldNodeAdapter",
                "module": "src/lib/FieldNodeAdapter.js"
              }
            },
            {
              "kind": "method",
              "name": "__detachEventListeners",
              "description": "remove all listeners on the fieldnode",
              "privacy": "private",
              "inheritedFrom": {
                "name": "FieldNodeAdapter",
                "module": "src/lib/FieldNodeAdapter.js"
              }
            },
            {
              "kind": "field",
              "name": "__fieldNode",
              "type": {
                "text": "object"
              },
              "description": "This is a reference for the Adapter, DO NOT USE this attribute in your components",
              "privacy": "private",
              "default": "{}",
              "inheritedFrom": {
                "name": "FieldNodeAdapter",
                "module": "src/lib/FieldNodeAdapter.js"
              }
            },
            {
              "kind": "field",
              "name": "__internalUpdateInProgress",
              "type": {
                "text": "boolean"
              },
              "description": "used to suppress change events which are triggered by the component itself",
              "privacy": "private",
              "default": "false",
              "inheritedFrom": {
                "name": "FieldNodeAdapter",
                "module": "src/lib/FieldNodeAdapter.js"
              }
            }
          ],
          "mixins": [
            {
              "name": "FieldNodeAdapter",
              "module": "/src/lib/FieldNodeAdapter.js"
            }
          ],
          "superclass": {
            "name": "FlowRepeat",
            "package": "@furo/fbp/src/flow-repeat"
          },
          "summary": "automatic display of repeated fields",
          "tagName": "furo-data-flow-repeat",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "FuroDataFlowRepeat",
          "declaration": {
            "name": "FuroDataFlowRepeat",
            "module": "src/furo-data-flow-repeat.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "furo-data-flow-repeat",
          "declaration": {
            "name": "FuroDataFlowRepeat",
            "module": "src/furo-data-flow-repeat.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/furo-data-hide-content.js",
      "declarations": [
        {
          "kind": "class",
          "description": "`furo-data-hide-content` hides content in dependency to a boolean field value.\n\nIt is also possible to call the `hide()` and `show()` methods to show and hide the content and update the value.\nTODO:  support furo.fat.Bool and google.protobuf.BoolValue\n\n```html\n<furo-data-hide-content animated fn-bind-data=\"--bind(*.bool)\">\n  <div>some content</div>\n</furo-collapsible-box>\n```\n\nThe attribute animated will add a slide in slide out animation.",
          "name": "FuroDataHideContent",
          "slots": [
            {
              "type": {
                "text": "HTMLElement [0..n]"
              },
              "description": "default slot to add content.",
              "name": ""
            }
          ],
          "members": [
            {
              "kind": "method",
              "name": "bindData",
              "parameters": [
                {
                  "name": "fieldNode",
                  "description": "a Field object",
                  "type": {
                    "text": "Object|FieldNode"
                  }
                }
              ],
              "description": "Bind a entity field to the date-input. You can use the entity even when no data was received.\nWhen you use `at-object-ready` from a `furo-data-object` which emits a EntityNode, just bind the field with `--entity(*.fields.fieldname)`"
            },
            {
              "kind": "method",
              "name": "_checkInversedState",
              "parameters": [
                {
                  "name": "bool"
                }
              ],
              "description": "inverses the bool based on hideOnFalse",
              "return": {
                "type": {
                  "text": "boolean|*"
                }
              },
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "hide",
              "description": "hides the content"
            },
            {
              "kind": "method",
              "name": "show",
              "description": "shows the content"
            },
            {
              "kind": "method",
              "name": "toggle",
              "description": "Toggle the current visibility state."
            },
            {
              "kind": "field",
              "name": "hidden",
              "type": {
                "text": "boolean"
              },
              "default": "false"
            },
            {
              "kind": "method",
              "name": "_notify",
              "parameters": [
                {
                  "name": "eventname"
                },
                {
                  "name": "state"
                }
              ],
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "_hidden",
              "privacy": "private",
              "type": {
                "text": "boolean"
              },
              "description": "Internal variable to update the attribute, which triggers the css",
              "attribute": "hidden",
              "reflects": true
            },
            {
              "kind": "field",
              "name": "hideOnFalse",
              "privacy": "public",
              "type": {
                "text": "Boolean"
              },
              "description": "Hide element on false instead of true",
              "attribute": "hide-on-false"
            },
            {
              "kind": "field",
              "name": "animated",
              "privacy": "public",
              "type": {
                "text": "boolean"
              },
              "description": "Set this to animate the collapse and expand.",
              "attribute": "animated"
            }
          ],
          "events": [
            {
              "type": {
                "text": "Boolean"
              },
              "description": " Fired when the visibility changed, contains the current visibility state",
              "name": "value-changed"
            },
            {
              "type": {
                "text": "void"
              },
              "description": " Fired when the content gets hid",
              "name": "hid"
            },
            {
              "type": {
                "text": "void"
              },
              "description": " Fired when the content gets visible",
              "name": "showed"
            }
          ],
          "attributes": [
            {
              "name": "hidden",
              "type": {
                "text": "boolean"
              },
              "description": "Internal variable to update the attribute, which triggers the css",
              "fieldName": "_hidden"
            },
            {
              "name": "hide-on-false",
              "type": {
                "text": "Boolean"
              },
              "description": "Hide element on false instead of true",
              "fieldName": "hideOnFalse"
            },
            {
              "name": "animated",
              "type": {
                "text": "boolean"
              },
              "description": "Set this to animate the collapse and expand.",
              "fieldName": "animated"
            }
          ],
          "mixins": [
            {
              "name": "FBP",
              "package": "@furo/fbp"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "summary": "hide content with a boolean fieldnode",
          "tagName": "furo-data-hide-content",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "FuroDataHideContent",
          "declaration": {
            "name": "FuroDataHideContent",
            "module": "src/furo-data-hide-content.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "furo-data-hide-content",
          "declaration": {
            "name": "FuroDataHideContent",
            "module": "src/furo-data-hide-content.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/furo-data-object.js",
      "declarations": [
        {
          "kind": "class",
          "description": "`furo-data-object` gives you a object which is built based on the **type** spec.\nThe types must be available in the {Env}, learn more about setting up the environment in the guide.\n\nThe data will mostly be used in a [data-ui]/(../../data-input/doc) component or in component that yoh build, which contains one or more of them.\n\n`furo-data-object` receives its data regularly from a [collection-aget](furo-collection-agent) or a  [entity-aget](furo-entity-agent).\nBut you can also send json data which is formed like the raw-data of this type.\n\n`furo-data-object` will not do any validation or data manipulation neither will send the data. It is just responsible to\ntransform incomming data to an object and vice versa. You can access the manipulated data structure on the property\n`.data.rawData` with javascript (if needed).\n\n```html\n <!-- The furo-data-object will send a initial dataObject of type project.Project on at-response-ready -->\n <furo-data-object\n     type=\"project.Project\"\n     fn-inject-raw=\"--response(*.data)\" at-object-ready=\"--dataObject\"></furo-data-object>\n\n <!-- The furo-entity-agent will fetch the data from ProjectService and pass it in at-response to the furo-data-object.  -->\n <furo-entity-agent\n     service=\"ProjectService\"\n     fn-save=\"--saveClicked\"\n     fn-bind-request-data=\"--dataObject\" at-response=\"--response\" ></furo-entity-agent>\n```",
          "name": "FuroDataObject",
          "members": [
            {
              "kind": "method",
              "name": "injectRaw",
              "parameters": [
                {
                  "name": "jsonObj"
                }
              ],
              "description": "inject a raw data response from the corresonding agent.\n\nInput may look something like this:\n\n**Entity data**\n\n```json\n{\n \"data\": {},\n \"links\": [],\n \"meta\": {}\n}\n```\n\n**Collection data**\n\n```json\n{\n \"data\": {},\n \"links\": [],\n \"meta\": {},\n \"entities\": []\n}\n```"
            },
            {
              "kind": "method",
              "name": "setPristine",
              "description": "Set all nodes to pristine\n\nUseful for working with deltas"
            },
            {
              "kind": "method",
              "name": "clearAllErrors",
              "description": "Clears all errors on children without any validation!"
            },
            {
              "kind": "method",
              "name": "validateAllFields",
              "description": "Triggers the validation of all fields in the data object.\n\nUse this before you submit some data to a server.\n\nWill cause a `data-object-became-valid` or `data-object-became-invalid` and a validation-success or validation-failed event."
            },
            {
              "kind": "method",
              "name": "appendErrors",
              "parameters": [
                {
                  "name": "grpcStatus"
                }
              ],
              "description": "Append errors from custom methods or other agents or sources to the data object.\nThe error object must have a grpc status error signature like:\n```json\n{\n \"code\":3,\n \"message\":\"invalid username\",\n \"details\":[{\n         \"@type\":\"type.googleapis.com/google.rpc.BadRequest\",\n         \"field_violations\":[{\n             \"field\":\"user.name\",\n             \"description\":\"The username must only contain alphanumeric characters\"\n          }]\n    }]\n}\n```"
            },
            {
              "kind": "field",
              "name": "type",
              "privacy": "public",
              "type": {
                "text": "String"
              },
              "description": "Set the type. The type must be available in the environment",
              "parameters": [
                {
                  "name": "type"
                }
              ],
              "attribute": "type"
            },
            {
              "kind": "field",
              "name": "json",
              "description": "get the data from the data object as raw json",
              "readonly": true
            },
            {
              "kind": "method",
              "name": "reset",
              "description": "Reset the model to the last injected state.\n\nTo set the model to the initial state use init"
            },
            {
              "kind": "method",
              "name": "init",
              "description": "Sets the model to an initial state according to the given type.\n\nfires *init-completed*\n\nTo reset changed data to the last injected state, please use reset();"
            },
            {
              "kind": "method",
              "name": "getData",
              "description": "get the data of the data object"
            },
            {
              "kind": "method",
              "name": "_checkType",
              "parameters": [
                {
                  "name": "type"
                }
              ],
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "_specs",
              "type": {
                "text": "{}"
              },
              "privacy": "private"
            }
          ],
          "events": [
            {
              "description": " Fired when injected data was processed (**bubbles**).",
              "name": "data-injected"
            },
            {
              "type": {
                "text": "{Object|CollectionNode}"
              },
              "description": " Fired when data in furo-data-object has changed  (**bubbles**). This event fires a lot, consider using a de-bounce with the event.",
              "name": "data-changed"
            },
            {
              "type": {
                "text": "{Object|CollectionNode}"
              },
              "description": " Fired when data in furo-data-object has changed after injectRaw is complete (**bubbles**). This event fires a lot, consider using a de-bounce with the event.",
              "name": "data-changed-after-inject"
            },
            {
              "type": {
                "text": "{Object} the field node"
              },
              "description": " Fired when a field has changed.",
              "name": "field-value-changed"
            },
            {
              "type": {
                "text": "DataObject"
              },
              "description": " Fired when validation results in a valid state.",
              "name": "validation-success"
            },
            {
              "type": {
                "text": "DataObject"
              },
              "description": " Fired when validation results in a invalid state.",
              "name": "validation-failed"
            },
            {
              "type": {
                "text": "{Object|EntityNode} reference to entity"
              },
              "description": " Fired when the data object switches from ininvalid to invalid state (**bubbles**).",
              "name": "data-object-became-invalid"
            },
            {
              "type": {
                "text": "{Object|EntityNode} reference to entity"
              },
              "description": " Fired when the data object switches from invalid to valid state (**bubbles**).",
              "name": "data-object-became-valid"
            },
            {
              "type": {
                "text": "A EntityNode object"
              },
              "description": " Fired when the object defined by `type` is built (**bubbles**).",
              "name": "object-ready"
            },
            {
              "type": {
                "text": "A EntityNode object"
              },
              "description": " Fired when the object init was done (**bubbles**).",
              "name": "init-completed"
            }
          ],
          "attributes": [
            {
              "name": "type",
              "type": {
                "text": "String"
              },
              "description": "Set the type. The type must be available in the environment",
              "parameters": [
                {
                  "name": "type"
                }
              ],
              "fieldName": "type"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "summary": "Typed data object",
          "tagName": "furo-data-object",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "FuroDataObject",
          "declaration": {
            "name": "FuroDataObject",
            "module": "src/furo-data-object.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "furo-data-object",
          "declaration": {
            "name": "FuroDataObject",
            "module": "src/furo-data-object.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/furo-deep-link.js",
      "declarations": [
        {
          "kind": "class",
          "description": "`furo-deep-link`\nResolve deep links HATEOAS based on the query params and the selected service.\n\n```html\n<furo-deep-link\n service=\"TaskService\"\n fn-qp-in=\"--pageQueryChanged(*.query)\" at-hts-out=\"--serviceHTS\">\n </furo-deep-link>\n```\n*Deeplink inside of a furo-page*\n\n\nThe services must be registered in the Env:\n\n```html\nimport {Services,Types} from \"./furo-spec.js\"\nInit.registerApiServices(Services);\nInit.registerApiTypes(Types);\n```\n\n\nUsually this is done in your src/configs/init.js",
          "name": "FuroDeepLink",
          "members": [
            {
              "kind": "method",
              "name": "_buildHTS",
              "parameters": [
                {
                  "name": "qp"
                },
                {
                  "name": "service"
                }
              ],
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "qpIn",
              "parameters": [
                {
                  "name": "queryParams"
                }
              ],
              "description": "Furo-deep-link consumes a object literal with key value pairs.\n\nThis can come from the `*.query` part of an event from furo-location.\n\nOr from a furo-pages wire.\n\nRelevant wires from furo-pages:\n- --pageQueryChanged(*.query)\n- --pageActivated(*.query)\n- --pageHashChanged(*.query)"
            },
            {
              "kind": "method",
              "name": "trigger",
              "description": "Evaluates hts. Use qpIn(qp) if you have a qp object in your event.detail\nThis method have no effect as long _qp is not set."
            },
            {
              "kind": "method",
              "name": "setService",
              "parameters": [
                {
                  "name": "serviceName"
                }
              ],
              "description": "Sets the service by wire"
            },
            {
              "kind": "field",
              "name": "service",
              "privacy": "public",
              "type": {
                "text": "String"
              },
              "description": "Set the service name like `TaskService`.\n\nServices must be registered before.",
              "parameters": [
                {
                  "name": "service"
                }
              ],
              "attribute": "service"
            },
            {
              "kind": "field",
              "name": "_servicedefinitions",
              "type": {
                "text": "{}"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "_qp",
              "type": {
                "text": "{}"
              },
              "privacy": "private",
              "default": "{}"
            }
          ],
          "events": [
            {
              "type": {
                "text": "[]HTSLinks"
              },
              "description": "Fired when hateoas is available",
              "name": "hts-out"
            }
          ],
          "attributes": [
            {
              "name": "service",
              "type": {
                "text": "String"
              },
              "description": "Set the service name like `TaskService`.\n\nServices must be registered before.",
              "parameters": [
                {
                  "name": "service"
                }
              ],
              "fieldName": "service"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "summary": "Resolve deep links HATEOAS based on  query params",
          "tagName": "furo-deep-link",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "FuroDeepLink",
          "declaration": {
            "name": "FuroDeepLink",
            "module": "src/furo-deep-link.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "furo-deep-link",
          "declaration": {
            "name": "FuroDeepLink",
            "module": "src/furo-deep-link.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/furo-entity-agent.js",
      "declarations": [
        {
          "kind": "class",
          "description": "`furo-entity-agent` is an interface component to handle entity requests.\n\n> **Note** When you trigger the save method and there is a HTS wich allows to PATCH the record, only the deltas (changes) of\n> the values are sent.\n\n> **Hint** PUT will send all fields which are not marked as **readonly**.\n> If you want to send all data on PUT (without filtering readonly fields) set `Env.api.sendAllDataOnMethodPut = true;`\n\n```html\n<!-- The furo-entity-agent will fetch the data from ProjectService and pass it in at-response to the furo-data-object.  -->\n<furo-entity-agent\n  service=\"ProjectService\"\n  fn-hts-in=\"--hts\" at-response=\"--response\"\n  ></furo-entity-agent>\n\n\n<!-- The furo-data-object will send a initial dataObject of type project.Project on at-response-ready -->\n<furo-data-object\n  type=\"project.ProjectEntity\"\n  fn-inject-raw=\"--response\"\n  ></furo-data-object>\n```",
          "name": "FuroEntityAgent",
          "members": [
            {
              "kind": "field",
              "name": "service",
              "privacy": "public",
              "type": {
                "text": "String"
              },
              "description": "Setze den Service",
              "parameters": [
                {
                  "name": "service"
                }
              ],
              "attribute": "service"
            },
            {
              "kind": "method",
              "name": "updateQp",
              "parameters": [
                {
                  "name": "qp"
                },
                {
                  "description": "value pairs",
                  "name": "key",
                  "type": {
                    "text": "Object"
                  }
                }
              ],
              "description": "Update query params\na qp like {\"active\":true} will just update the qp *active*\n\nIf the current value of the qp is not the same like the injected value, a qp-changed event will be fired"
            },
            {
              "kind": "method",
              "name": "bindRequestData",
              "parameters": [
                {
                  "name": "dataObject"
                }
              ],
              "description": "Binds a furo-data-object type. Use this if you want save data."
            },
            {
              "kind": "method",
              "name": "_prepareRequestPaylod",
              "parameters": [
                {
                  "name": "link"
                },
                {
                  "name": "dataObject"
                }
              ],
              "description": "Prepare request body depending from method",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "_removeNullValues",
              "parameters": [
                {
                  "name": "data"
                }
              ],
              "description": "remove null value in payload",
              "return": {
                "type": {
                  "text": "*"
                }
              },
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "clearQp",
              "description": "clear the query params that you have setted before"
            },
            {
              "kind": "method",
              "name": "_makeRequest",
              "parameters": [
                {
                  "name": "link"
                },
                {
                  "name": "dataObject"
                },
                {
                  "name": "abortController"
                }
              ],
              "description": "Creates a Request object with header and body data\n- special treatment for method PATCH\n- body object only includes writeable fields",
              "return": {
                "type": {
                  "text": "Request"
                }
              },
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "_getFieldMask",
              "parameters": [
                {
                  "name": "obj"
                }
              ],
              "description": "Creates an array with the path information of the object attributes (deep dive)\naccording to https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto\n\n`{\"paths\":[\"attr1\",\"attr2.sub_attr\"]}`",
              "return": {
                "type": {
                  "text": "Array"
                }
              },
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "_flattenObject",
              "parameters": [
                {
                  "name": "obj"
                }
              ],
              "description": "Object flattening method",
              "return": {
                "type": {
                  "text": "{}"
                }
              },
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "_evaluateLinksField",
              "parameters": [
                {
                  "name": "fields"
                }
              ],
              "description": "find the first field of type furo.Link and use this for hts-out",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "load",
              "description": "loads the entity if hts is available"
            },
            {
              "kind": "method",
              "name": "delete",
              "description": "delete the entity if hts is available"
            },
            {
              "kind": "method",
              "name": "save",
              "description": "loads the entity if hts is available"
            },
            {
              "kind": "method",
              "name": "put",
              "description": "saves the entity with method put if hts is available"
            },
            {
              "kind": "method",
              "name": "create",
              "description": "creating the entity if hts rel=\"create\" is available"
            },
            {
              "kind": "method",
              "name": "_attachListeners",
              "parameters": [
                {
                  "name": "eventPrefix"
                }
              ],
              "description": "Attaches temporary listeners to fire load-success, load-fail, delete-success,...",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "_updateInternalHTS",
              "parameters": [
                {
                  "name": "hts"
                }
              ],
              "return": {
                "type": {
                  "text": "boolean"
                }
              },
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "htsIn",
              "parameters": [
                {
                  "name": "hts"
                }
              ]
            },
            {
              "kind": "method",
              "name": "abortPendingRequest",
              "description": "Aborts a pending request"
            },
            {
              "kind": "field",
              "name": "_servicedefinitions",
              "description": "Reference to the services",
              "type": {
                "text": "{}"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "_ApiEnvironment",
              "type": {
                "text": "*|{headers: [[string, string]], specs: {}, services: {}}"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "_pendingRequests",
              "type": {
                "text": "*[]"
              },
              "privacy": "private",
              "default": "[]"
            },
            {
              "kind": "field",
              "name": "_linkField",
              "type": {
                "text": "string"
              },
              "description": "This field contains the hts links",
              "privacy": "private",
              "default": "'links'"
            },
            {
              "kind": "field",
              "name": "_singleElementQueue",
              "type": {
                "text": "*[]"
              },
              "description": "queue for calls, before hts is set",
              "privacy": "private",
              "default": "[]"
            },
            {
              "kind": "field",
              "name": "_queryParams",
              "type": {
                "text": "{}"
              },
              "privacy": "private",
              "default": "{}"
            },
            {
              "kind": "field",
              "name": "loadOnHtsIn",
              "privacy": "public",
              "type": {
                "text": "Boolean"
              },
              "description": "triggers a load when link rel=\"self\" is in the injected hts (after hts-injected is fired)",
              "attribute": "load-on-hts-in"
            },
            {
              "kind": "field",
              "name": "appendUpdateMaskQP",
              "privacy": "public",
              "type": {
                "text": "Boolean"
              },
              "description": "Creates the query param update mask according to the google api design guidelines.\n\nYour update service must have a query param **update_mask** to use this feature.\n\nhttps://cloud.google.com/apis/design/standard_methods#update\n\nYou may not need it if your server can handle PATCHes without a update_mask\nhttps://grpc-ecosystem.github.io/grpc-gateway/docs/patch.html",
              "attribute": "with-update-mask"
            }
          ],
          "events": [
            {
              "type": {
                "text": "hts"
              },
              "description": " Fired when hts was updated from the response.",
              "name": "response-hts-updated"
            },
            {
              "type": {
                "text": "response"
              },
              "description": " Fired when `load()` was successful.",
              "name": "load-success"
            },
            {
              "type": {
                "text": "response"
              },
              "description": " Fired when `load()` was **not** successful.",
              "name": "load-failed"
            },
            {
              "type": {
                "text": "response"
              },
              "description": " Fired when `delete()` was successful.",
              "name": "delete-success"
            },
            {
              "type": {
                "text": "response"
              },
              "description": " Fired when `delete()` was **not** successful.",
              "name": "delete-failed"
            },
            {
              "type": {
                "text": "response"
              },
              "description": " Fired when `save()` was successful.",
              "name": "save-success"
            },
            {
              "type": {
                "text": "response"
              },
              "description": " Fired when `save()` was **not** successful.",
              "name": "save-failed"
            },
            {
              "type": {
                "text": "response"
              },
              "description": " Fired when `update()` was successful.",
              "name": "put-success"
            },
            {
              "type": {
                "text": "response"
              },
              "description": " Fired when `update()` was **not** successful.",
              "name": "put-failed"
            },
            {
              "type": {
                "text": "response"
              },
              "description": " Fired when `create()` was successful.",
              "name": "create-success"
            },
            {
              "type": {
                "text": "response"
              },
              "description": " Fired when `create()` was **not** successful.",
              "name": "create-failed"
            },
            {
              "type": {
                "text": "{Array|HATEOAS}"
              },
              "description": " Fired when hateoas is updated from response.",
              "name": "hts-updated"
            },
            {
              "type": {
                "text": "Hateoas links"
              },
              "description": " Fired when hateoas is updated.",
              "name": "hts-injected"
            },
            {
              "description": "Fired when a request was canceled.",
              "name": "request-aborted",
              "type": {
                "text": "Request"
              }
            },
            {
              "type": {
                "text": "Request"
              },
              "description": "Fired when a request is sent.",
              "name": "request-started"
            },
            {
              "type": {
                "text": "Object"
              },
              "description": "Fired when a response is received.",
              "name": "response-raw"
            },
            {
              "type": {
                "text": "Object"
              },
              "description": "Fired when an error has occoured. This is a general error event. The specific error events are fired additionally.",
              "name": "response-error"
            },
            {
              "type": {
                "text": "Object"
              },
              "description": "Fired when an error has occoured. This is a specific error event.",
              "name": "response-error-[status-code]"
            },
            {
              "type": {
                "text": "Request"
              },
              "description": "Requests are made via the Fetch API if possible.Fallback XMLHttpRequest",
              "name": "fatal-error"
            },
            {
              "type": {
                "text": "Object"
              },
              "description": "Fired when an error has occoured. This is a group error event. E.g. response-error-5xx, response-error-4xx",
              "name": "response-error-4xx"
            },
            {
              "type": {
                "text": "Object"
              },
              "description": "Fired when an error has occoured. This is a group error event. E.g. response-error-5xx, response-error-4xx",
              "name": "response-error-5xx"
            },
            {
              "type": {
                "text": "Object"
              },
              "description": "Fired when a error has occoured.",
              "name": "response-error-raw"
            },
            {
              "type": {
                "text": "Object"
              },
              "description": "Fired when a response is received.",
              "name": "response"
            }
          ],
          "attributes": [
            {
              "name": "service",
              "type": {
                "text": "String"
              },
              "description": "Setze den Service",
              "parameters": [
                {
                  "name": "service"
                }
              ],
              "fieldName": "service"
            },
            {
              "name": "load-on-hts-in",
              "type": {
                "text": "Boolean"
              },
              "description": "triggers a load when link rel=\"self\" is in the injected hts (after hts-injected is fired)",
              "fieldName": "loadOnHtsIn"
            },
            {
              "name": "with-update-mask",
              "type": {
                "text": "Boolean"
              },
              "description": "Creates the query param update mask according to the google api design guidelines.\n\nYour update service must have a query param **update_mask** to use this feature.\n\nhttps://cloud.google.com/apis/design/standard_methods#update\n\nYou may not need it if your server can handle PATCHes without a update_mask\nhttps://grpc-ecosystem.github.io/grpc-gateway/docs/patch.html",
              "fieldName": "appendUpdateMaskQP"
            }
          ],
          "mixins": [
            {
              "name": "FBP",
              "package": "@furo/fbp"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "summary": "interface component to handle entity requests",
          "tagName": "furo-entity-agent",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "FuroEntityAgent",
          "declaration": {
            "name": "FuroEntityAgent",
            "module": "src/furo-entity-agent.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "furo-entity-agent",
          "declaration": {
            "name": "FuroEntityAgent",
            "module": "src/furo-entity-agent.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/furo-entity-field.js",
      "declarations": [
        {
          "kind": "class",
          "description": "Use this component to interact with fields from a furo-data-object.\n\nYou can update the field value or listen to changes of a field.\n\n```html\n<furo-entity-field fn-bind-data=\"--dataObject(*.field)\"></furo-entity-field>\n```",
          "name": "FuroEntityField",
          "members": [
            {
              "kind": "method",
              "name": "setValue",
              "parameters": [
                {
                  "name": "value",
                  "type": {
                    "text": "*"
                  }
                }
              ],
              "description": "Set the value of the field."
            },
            {
              "kind": "field",
              "name": "value",
              "description": "Set a value to update the fieldnode",
              "parameters": [
                {
                  "name": "v",
                  "type": {
                    "text": "*"
                  }
                }
              ]
            },
            {
              "kind": "method",
              "name": "bindData",
              "parameters": [
                {
                  "name": "fieldNode",
                  "description": "a Field object",
                  "type": {
                    "text": "Object|FieldNode"
                  }
                }
              ],
              "description": "Bind a FieldNode to the date-input.\n\n`--personDO(*.person.firstname)`"
            },
            {
              "kind": "method",
              "name": "deleteNode",
              "description": "Trigger deleteNode on the `FieldNode`."
            }
          ],
          "events": [
            {
              "type": {
                "text": "*"
              },
              "description": " Fired when the field value or a child value of it was changed.",
              "name": "value-changed"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "summary": "interact with single field of a data object",
          "tagName": "furo-entity-field",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "FuroEntityField",
          "declaration": {
            "name": "FuroEntityField",
            "module": "src/furo-entity-field.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "furo-entity-field",
          "declaration": {
            "name": "FuroEntityField",
            "module": "src/furo-entity-field.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/furo-hateoas-state.js",
      "declarations": [
        {
          "kind": "class",
          "description": "`furo-hateoas-state` is an invisible component with a binding of type furo.Link or injection of a link array.\n\nIt disables / enables or hides / shows components according to the injected HATEOAS links. `furo-hateoas-state` only\nsets or remove the attributes **hidden** and **disabled** on the nodes.\n\nAll nodes inside the same parent are taken in to control.\n\nElements inside a shadow root are not selected.\n\nSet the attribute **data-rel=\"list\"** on any element you want to control with `furo-hateoas-state`.\n\nSet the attribute **hide-no-rel** if you want to hide the node instead of being disabled.\n\n```html\n<div>\n  <button data-rel='list'>list</button>\n  <button hide-no-rel data-rel='list'>hide no rel</button>\n  <button data-rel='add'>add</button>\n  <furo-hateoas-state fn-bind-hts='--collection(*.links)'></furo-hateoas-state>\n</div>\n```\n*all elements with a data-rel=\"something\" attribute inside the div are controlled*",
          "name": "FuroHateoasState",
          "members": [
            {
              "kind": "method",
              "name": "onFnaFieldValueChanged",
              "parameters": [
                {
                  "name": "value"
                }
              ],
              "description": "Notifies a field value change event. This event is debounced with 1ms, if you have bound a complex type, only one change event\nwill be triggered (this is what you want). If you need all change events or more control for your component,\nuse the listener on the fieldNode itself.",
              "privacy": "private",
              "inheritedFrom": {
                "name": "FieldNodeAdapter",
                "module": "src/lib/FieldNodeAdapter.js"
              }
            },
            {
              "kind": "method",
              "name": "enable",
              "description": "Enable or show all nodes."
            },
            {
              "kind": "method",
              "name": "disable",
              "description": "Disable or hide all nodes."
            },
            {
              "kind": "method",
              "name": "bindData",
              "parameters": [
                {
                  "name": "fieldNode"
                }
              ],
              "description": "Binds a fieldNode. Make sure the type of your field is accepted by the implemented component.",
              "privacy": "public",
              "return": {
                "type": {
                  "text": "boolean"
                }
              },
              "inheritedFrom": {
                "name": "FieldNodeAdapter",
                "module": "src/lib/FieldNodeAdapter.js"
              }
            },
            {
              "kind": "method",
              "name": "bindHts",
              "parameters": [
                {
                  "name": "Links"
                }
              ],
              "description": "Bind a `RepeaterNode` of type `furo.Link`."
            },
            {
              "kind": "method",
              "name": "injectHts",
              "parameters": [
                {
                  "name": "value",
                  "description": "Array with raw `furo.Link` like",
                  "type": {
                    "text": "[json]"
                  }
                }
              ],
              "description": "Inject a link array directly.\n\n```json\n[\n  {\n    \"href\": \"/mockdata/persons/list\",\n    \"method\": \"GET\",\n    \"rel\": \"list\",\n    \"type\": \"person.PersonCollection\",\n    \"service\": \"PersonService\"\n  }\n]\n```"
            },
            {
              "kind": "method",
              "name": "getDataType",
              "description": "Returns the type name of the bounded fieldNode",
              "return": {
                "type": {
                  "text": ""
                }
              },
              "privacy": "private",
              "inheritedFrom": {
                "name": "FieldNodeAdapter",
                "module": "src/lib/FieldNodeAdapter.js"
              }
            },
            {
              "kind": "method",
              "name": "isFat",
              "description": "Check if bounded type is a fat type",
              "return": {
                "type": {
                  "text": ""
                }
              },
              "privacy": "private",
              "inheritedFrom": {
                "name": "FieldNodeAdapter",
                "module": "src/lib/FieldNodeAdapter.js"
              }
            },
            {
              "kind": "method",
              "name": "isWrapper",
              "description": "Check if bounded type is a wrapper type",
              "return": {
                "type": {
                  "text": ""
                }
              },
              "privacy": "private",
              "inheritedFrom": {
                "name": "FieldNodeAdapter",
                "module": "src/lib/FieldNodeAdapter.js"
              }
            },
            {
              "kind": "method",
              "name": "setFnaFieldValue",
              "parameters": [
                {
                  "name": "value",
                  "description": "the raw json value for the fieldNode."
                }
              ],
              "description": "Sets the value on the fieldNode. When you set the value, the changes you made will not trigger\nthe `onFnaFieldValueChanged`.",
              "privacy": "private",
              "inheritedFrom": {
                "name": "FieldNodeAdapter",
                "module": "src/lib/FieldNodeAdapter.js"
              }
            },
            {
              "kind": "method",
              "name": "onFnaConstraintsChanged",
              "parameters": [
                {
                  "name": "constraints"
                }
              ],
              "description": "Notifies changes on the constraints.\n\nreturns an object like:\n```json\n {\n \"min\":\n   {\n     is:33,\n     message:\"must be bigger\"\n   }\n }\n```\n\n```javascript\n  // example callback\n  onFnaConstraintsChanged(constraints) {\n    if (constraints.min !== undefined) {\n      this._constraintsFromFNA.min = constraints.min;\n      if (this._privilegedAttributes.min === null && this._attributesFromFAT.min === undefined) {\n        this.min = constraints.min.is;\n      }\n    }\n }\n```",
              "privacy": "private",
              "inheritedFrom": {
                "name": "FieldNodeAdapter",
                "module": "src/lib/FieldNodeAdapter.js"
              }
            },
            {
              "kind": "method",
              "name": "onFnaOptionsChanged",
              "parameters": [
                {
                  "name": "options"
                }
              ],
              "description": "Notifies when the options for the field is changed or set.",
              "privacy": "private",
              "inheritedFrom": {
                "name": "FieldNodeAdapter",
                "module": "src/lib/FieldNodeAdapter.js"
              }
            },
            {
              "kind": "method",
              "name": "onFnaReadonlyChanged",
              "parameters": [
                {
                  "name": "readonly"
                }
              ],
              "description": "Notifies when the readonly flag for the field is changed or set.",
              "privacy": "private",
              "inheritedFrom": {
                "name": "FieldNodeAdapter",
                "module": "src/lib/FieldNodeAdapter.js"
              }
            },
            {
              "kind": "method",
              "name": "onFnaHintChanged",
              "parameters": [
                {
                  "name": "hint"
                }
              ],
              "description": "Notifies when the hint for the field is changed or set.",
              "privacy": "private",
              "inheritedFrom": {
                "name": "FieldNodeAdapter",
                "module": "src/lib/FieldNodeAdapter.js"
              }
            },
            {
              "kind": "method",
              "name": "onFnaLabelChanged",
              "parameters": [
                {
                  "name": "label"
                }
              ],
              "description": "Notifies when the label for the field is changed or set.",
              "privacy": "private",
              "inheritedFrom": {
                "name": "FieldNodeAdapter",
                "module": "src/lib/FieldNodeAdapter.js"
              }
            },
            {
              "kind": "method",
              "name": "onFnaPlaceholderChanged",
              "parameters": [
                {
                  "name": "placeholder"
                }
              ],
              "description": "Notifies when the placeholder for the field is changed or set.",
              "privacy": "private",
              "inheritedFrom": {
                "name": "FieldNodeAdapter",
                "module": "src/lib/FieldNodeAdapter.js"
              }
            },
            {
              "kind": "method",
              "name": "onFnaFieldNodeBecameValid",
              "description": "Notifies that a field gets valid.",
              "privacy": "private",
              "inheritedFrom": {
                "name": "FieldNodeAdapter",
                "module": "src/lib/FieldNodeAdapter.js"
              }
            },
            {
              "kind": "method",
              "name": "onFnaFieldStateChanged",
              "description": "Notifies that a field has changed its state",
              "privacy": "private",
              "inheritedFrom": {
                "name": "FieldNodeAdapter",
                "module": "src/lib/FieldNodeAdapter.js"
              }
            },
            {
              "kind": "method",
              "name": "onFnaFieldNodeBecameInvalid",
              "parameters": [
                {
                  "name": "validity",
                  "description": "Object like {constraint: \"min\", description: \"too small\", field: \"\"}"
                }
              ],
              "description": "Notifies that a field gets invalid.",
              "privacy": "private",
              "inheritedFrom": {
                "name": "FieldNodeAdapter",
                "module": "src/lib/FieldNodeAdapter.js"
              }
            },
            {
              "kind": "method",
              "name": "onFnaFieldNewDataInjected",
              "description": "Notifies that new data was injected",
              "privacy": "private",
              "inheritedFrom": {
                "name": "FieldNodeAdapter",
                "module": "src/lib/FieldNodeAdapter.js"
              }
            },
            {
              "kind": "method",
              "name": "onFnaRepeatedFieldChanged",
              "description": "Notifies when a repeater node changes",
              "privacy": "private",
              "inheritedFrom": {
                "name": "FieldNodeAdapter",
                "module": "src/lib/FieldNodeAdapter.js"
              }
            },
            {
              "kind": "method",
              "name": "__registerHandlers",
              "description": "This is done to be able to remove the event-listeners as a protection for multiple calls for bindData and for cleanup",
              "privacy": "private",
              "inheritedFrom": {
                "name": "FieldNodeAdapter",
                "module": "src/lib/FieldNodeAdapter.js"
              }
            },
            {
              "kind": "method",
              "name": "__detachEventListeners",
              "description": "remove all listeners on the fieldnode",
              "privacy": "private",
              "inheritedFrom": {
                "name": "FieldNodeAdapter",
                "module": "src/lib/FieldNodeAdapter.js"
              }
            },
            {
              "kind": "field",
              "name": "__fieldNode",
              "type": {
                "text": "object"
              },
              "description": "This is a reference for the Adapter, DO NOT USE this attribute in your components",
              "privacy": "private",
              "default": "{}",
              "inheritedFrom": {
                "name": "FieldNodeAdapter",
                "module": "src/lib/FieldNodeAdapter.js"
              }
            },
            {
              "kind": "field",
              "name": "__internalUpdateInProgress",
              "type": {
                "text": "boolean"
              },
              "description": "used to suppress change events which are triggered by the component itself",
              "privacy": "private",
              "default": "false",
              "inheritedFrom": {
                "name": "FieldNodeAdapter",
                "module": "src/lib/FieldNodeAdapter.js"
              }
            }
          ],
          "mixins": [
            {
              "name": "FieldNodeAdapter",
              "module": "/src/lib/FieldNodeAdapter.js"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "summary": "disables or hide nodes based on hts",
          "tagName": "furo-hateoas-state",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "FuroHateoasState",
          "declaration": {
            "name": "FuroHateoasState",
            "module": "src/furo-hateoas-state.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "furo-hateoas-state",
          "declaration": {
            "name": "FuroHateoasState",
            "module": "src/furo-hateoas-state.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/furo-message-container-handler.js",
      "declarations": [
        {
          "kind": "class",
          "description": "`furo-message-container-handler`\n will update the 'value states' of all fields of your data object from the injected `furo.MessageContainer` message.",
          "name": "FuroMessageContainerHandler",
          "members": [
            {
              "kind": "method",
              "name": "injectRaw",
              "parameters": [
                {
                  "name": "messageContainer",
                  "description": "with `furo.MessageContainer` signature",
                  "type": {
                    "text": "JSON"
                  }
                }
              ],
              "description": "This will set the corresponding value-states on the sibling nodes of the bounded `furo.MessageContainer` field."
            },
            {
              "kind": "method",
              "name": "_updateCountersAndFireEvents"
            },
            {
              "kind": "method",
              "name": "_applyValueState"
            },
            {
              "kind": "method",
              "name": "_clearValueStates"
            },
            {
              "kind": "method",
              "name": "bindMessageContainer",
              "parameters": [
                {
                  "name": "fieldNode",
                  "description": "Messagecontainer fieldnode",
                  "type": {
                    "text": "FieldNode"
                  }
                }
              ],
              "description": "bindMc Bind a `furo.MessageContainer` fieldnode.\n\nThe updates from the injected raw messagecontainer are applied to the siblings of the bounded node.",
              "privacy": "public"
            },
            {
              "kind": "method",
              "name": "bindRootNode",
              "parameters": [
                {
                  "name": "fieldNode",
                  "description": "Messagecontainer fieldnode",
                  "type": {
                    "text": "FieldNode"
                  }
                }
              ],
              "description": "bindMc Bind a `furo.MessageContainer` fieldnode.\n\nThe updates from the injected raw messagecontainer are applied to the siblings of the bounded node.",
              "privacy": "public"
            },
            {
              "kind": "method",
              "name": "_getStateFromMessageType",
              "parameters": [
                {
                  "name": "messageType"
                }
              ],
              "return": {
                "type": {
                  "text": "string|undefined"
                }
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "messageDO",
              "type": {
                "text": "object"
              },
              "description": "the Message Container Data Object",
              "privacy": "private",
              "default": "{}"
            }
          ],
          "events": [
            {
              "type": {
                "text": "void"
              },
              "description": "Fired when success field was set on the received `furo.MessageContainer`.",
              "name": "success"
            },
            {
              "type": {
                "text": "void"
              },
              "description": "Fired when the success field on the `furo.MessageContainer` was not set or is set to false.",
              "name": "no-success"
            },
            {
              "type": {
                "text": "[]furo.ConfirmationMessage"
              },
              "description": "Fired when the message container contains any confirmation field, with list with all `furo.ConfirmationMessage`.",
              "name": "has-confirmation"
            },
            {
              "type": {
                "text": "[]furo.MCFieldViolation"
              },
              "description": "Fired when the message container contains any error field, with list with all error fields.",
              "name": "has-errors"
            },
            {
              "type": {
                "text": "[]furo.MCFieldViolation"
              },
              "description": "Fired when the message container contains any success field, with list with all success fields.",
              "name": "has-success"
            },
            {
              "type": {
                "text": "[]furo.MCFieldViolation"
              },
              "description": "Fired when the message container contains any warning field, with list with all warning fields.",
              "name": "has-warnings"
            },
            {
              "type": {
                "text": "[]furo.MCFieldViolation"
              },
              "description": "Fired when the message container contains any info field, with list with all info fields.",
              "name": "has-infos"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "summary": "furo.MessageContainer handler",
          "tagName": "furo-message-container-handler",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "FuroMessageContainerHandler",
          "declaration": {
            "name": "FuroMessageContainerHandler",
            "module": "src/furo-message-container-handler.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "furo-message-container-handler",
          "declaration": {
            "name": "FuroMessageContainerHandler",
            "module": "src/furo-message-container-handler.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/furo-rel-exists.js",
      "declarations": [
        {
          "kind": "class",
          "description": "`furo-rel-exists`\nChecks if a hateoas relation exists in a given hateaos Links array.\n\n```html\n<furo-rel-exists rel=\"update\" service=\"person.Personservice\" fn-inject=\"--HTS-array\"></furo-rel-exists>\n```",
          "name": "FuroRelExists",
          "members": [
            {
              "kind": "method",
              "name": "inject",
              "parameters": [
                {
                  "name": "linkArray",
                  "description": "Array of furo links",
                  "type": {
                    "text": "[furo.Link]"
                  }
                }
              ],
              "description": "Inject a HTS Link Array to receive a `rel-exist` or a `rel-dont-exist` event.\n\ninject returns true for existing links and false for non existing links.\nTODO: implement bind data too\nTODO: emit a event with bool which is triggered on any change of the hts array or binded data",
              "return": {
                "type": {
                  "text": "boolean"
                }
              }
            },
            {
              "kind": "field",
              "name": "rel",
              "privacy": "public",
              "description": "Name of the rel",
              "type": {
                "text": "String"
              },
              "attribute": "rel"
            },
            {
              "kind": "field",
              "name": "service",
              "privacy": "public",
              "description": "define the service if you want a specific check on the service also",
              "type": {
                "text": "String"
              },
              "attribute": "service"
            }
          ],
          "events": [
            {
              "type": {
                "text": "Object Hateoas Link"
              },
              "description": " Fired when rel exists in `linkArray`.",
              "name": "furo-rel-exists"
            },
            {
              "type": {
                "text": "void"
              },
              "description": " Fired when rel does not exists in `linkArray`.",
              "name": "rel-dont-exist"
            }
          ],
          "attributes": [
            {
              "name": "rel",
              "description": "Name of the rel",
              "type": {
                "text": "String"
              },
              "fieldName": "rel"
            },
            {
              "name": "service",
              "description": "define the service if you want a specific check on the service also",
              "type": {
                "text": "String"
              },
              "fieldName": "service"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "summary": "checks for a specific rel",
          "tagName": "furo-rel-exists",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "FuroRelExists",
          "declaration": {
            "name": "FuroRelExists",
            "module": "src/furo-rel-exists.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "furo-rel-exists",
          "declaration": {
            "name": "FuroRelExists",
            "module": "src/furo-rel-exists.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/furo-reverse-deep-link.js",
      "declarations": [
        {
          "kind": "class",
          "description": "Converts hateoas to queryParams, which is useful for routing with app-flow\n\n\n```html\n<furo-reverse-deep-link\n   service=\"TaskService\"\n   rel=\"self\" at-converted=\"--queryParams\"\n   fn-convert=\"--rawEntityOrCollection, --linksArray, --linkObject\"\n></furo-reverse-deep-link>\n```",
          "name": "FuroReverseDeepLink",
          "members": [
            {
              "kind": "method",
              "name": "convert",
              "parameters": [
                {
                  "name": "data",
                  "description": "rawEntity|rawCollection",
                  "type": {
                    "text": "object"
                  }
                }
              ],
              "description": "converts the href of a LinkObject\n\nreturns Error on undefined service",
              "return": {
                "type": {
                  "text": "object"
                }
              }
            },
            {
              "kind": "method",
              "name": "_convert",
              "parameters": [
                {
                  "name": "link"
                }
              ],
              "return": {
                "type": {
                  "text": "{}"
                }
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "service",
              "privacy": "public",
              "type": {
                "text": "string"
              },
              "description": "Name of service",
              "default": "''",
              "attribute": "service"
            },
            {
              "kind": "field",
              "name": "_services",
              "type": {
                "text": "{}"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "rel",
              "privacy": "public",
              "type": {
                "text": "String"
              },
              "description": "Optional rel to convert.\n\nNot needed if you inject a link object.\n\nIf you insert an entity rel self is taken. If you insert a collection, rel list is used.",
              "attribute": "rel"
            }
          ],
          "events": [
            {
              "type": {
                "text": "QueryParams"
              },
              "description": " Fired when input was converted.",
              "name": "converted"
            }
          ],
          "attributes": [
            {
              "name": "service",
              "type": {
                "text": "string"
              },
              "description": "Name of service",
              "default": "''",
              "fieldName": "service"
            },
            {
              "name": "rel",
              "type": {
                "text": "String"
              },
              "description": "Optional rel to convert.\n\nNot needed if you inject a link object.\n\nIf you insert an entity rel self is taken. If you insert a collection, rel list is used.",
              "fieldName": "rel"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "summary": "create query param object from HATEOAS",
          "tagName": "furo-reverse-deep-link",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "FuroReverseDeepLink",
          "declaration": {
            "name": "FuroReverseDeepLink",
            "module": "src/furo-reverse-deep-link.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "furo-reverse-deep-link",
          "declaration": {
            "name": "FuroReverseDeepLink",
            "module": "src/furo-reverse-deep-link.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/furo-type-renderer.js",
      "declarations": [
        {
          "kind": "class",
          "description": "The furo-type-renderer is used to display type specific data. It uses **display** as default context and will warn you\non the console if the requested `context-[type-name]` does not exist or was not imported.\n\nThere is a standard set of display components @furo/ui5/src/standard-type-renderers for rendering the individual types.\n\nThe standard ui5 set can be integrated with the import\n- import '@furo/ui5/src/standard-type-renderers/display-registry.js'.\n\nThe standard material set can be integrated with the import\n- import '@furo/data-ui/src/standard-type-renderers/display-registry.js'.\n\nIf you want to implement an individual display of a type, you need your own `context-[type-name]` component and import it.\n\nfor repeated fields you should write your own context-[type-name]-repeated component and import it.\nIf no context-[type-name]-repeated exists, the renderer will use the display-[type] component as fallback and\ndisplay it repeatedly, this is ok for a lot of cases.\n\n## Naming convention\n\n```\ndisplay-google-type-timeofday\n------- ---------------------\n   |             |\ncontext      type-name\n\n# examples:\ncell-string\ncelledit-string\ndisplay-string\nyourcontext-string\n\nThe method to evaluate the renderer is built as following:\n\ncontext-[(package.type).replaceAll('.', '-').toLocaleLowerCase()]\n```\n\n\n\n## Basic Usage\n```html\n  <furo-type-renderer fn-bind-data=\"--dao(*.data.fieldname)\"></furo-type-renderer>\n```\n\n## Writing your own renderer\nThe only API you need to implement in your component is the `bindData()` method.\nYou just have to follow the naming convention for your renderer.",
          "name": "FuroTypeRenderer",
          "members": [
            {
              "kind": "method",
              "name": "bindData",
              "parameters": [
                {
                  "name": "fieldNode",
                  "description": "Fieldnode of any type",
                  "type": {
                    "text": "FieldNode"
                  }
                }
              ],
              "description": "Bind a fieldnode of any type"
            },
            {
              "kind": "method",
              "name": "_createDisplay",
              "description": "Creates the component for single fields",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "_createRepeatedDisplay",
              "description": "Creates the component for repeated fields\nComponent naming: [package-type]-repeated\n\nFallback: if no -repeated component is available, a flow-repeat is used...",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "_addElement",
              "parameters": [
                {
                  "name": "el"
                }
              ],
              "description": "Attribute handling\nAdding to DOM",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "focus",
              "description": "forward the focus to the created element"
            },
            {
              "kind": "method",
              "name": "_warning",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "context",
              "privacy": "public",
              "type": {
                "text": "string"
              },
              "description": "Set the context if you need another then display.\nPrebuilt context renderers exist for display, cell, celledit.",
              "default": "'display'",
              "attribute": "context"
            },
            {
              "kind": "field",
              "name": "disabled",
              "privacy": "public",
              "type": {
                "text": "Boolean"
              },
              "description": "A Boolean attribute which, if present, means this field is displayed in disabled state.",
              "attribute": "disabled"
            }
          ],
          "attributes": [
            {
              "name": "disabled",
              "type": {
                "text": "Boolean"
              },
              "description": "A Boolean attribute which, if present, means this field is displayed in disabled state.",
              "fieldName": "disabled"
            },
            {
              "name": "context",
              "type": {
                "text": "string"
              },
              "description": "Set the context if you need another then display.\nPrebuilt context renderers exist for display, cell, celledit.",
              "default": "'display'",
              "fieldName": "context"
            }
          ],
          "mixins": [
            {
              "name": "FBP",
              "package": "@furo/fbp/src/fbp.js"
            }
          ],
          "superclass": {
            "name": "LitElement",
            "package": "lit"
          },
          "summary": "dynamic type rendering",
          "tagName": "furo-type-renderer",
          "customElement": true
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "FuroTypeRenderer",
          "declaration": {
            "name": "FuroTypeRenderer",
            "module": "src/furo-type-renderer.js"
          }
        },
        {
          "kind": "custom-element-definition",
          "name": "furo-type-renderer",
          "declaration": {
            "name": "FuroTypeRenderer",
            "module": "src/furo-type-renderer.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/lib/AgentHelper.js",
      "declarations": [
        {
          "kind": "class",
          "description": "## This is a helper class for the agents\n\nUpdate query params\na qp like {\"active\":true} will just update the qp *active*\n\nIf the current value of the qp is not the same like the injected value, a qp-changed event will be fired",
          "name": "AgentHelper",
          "members": [
            {
              "kind": "method",
              "name": "updateQp",
              "static": true,
              "parameters": [
                {
                  "name": "caller"
                },
                {
                  "name": "qp"
                }
              ]
            },
            {
              "kind": "method",
              "name": "setQp",
              "static": true,
              "parameters": [
                {
                  "name": "caller",
                  "description": "caller",
                  "type": {
                    "text": "Object"
                  }
                },
                {
                  "name": "qp",
                  "description": "Queryparam Object",
                  "type": {
                    "text": "QueryParams"
                  }
                }
              ],
              "description": "Set query params\nAll existing query params are replaced by the transferred parameters\nIf the transferred object is empty or undefined, all the values will be removed!"
            },
            {
              "kind": "method",
              "name": "getParams",
              "static": true,
              "parameters": [
                {
                  "name": "caller"
                },
                {
                  "name": "link",
                  "type": {
                    "text": ""
                  }
                }
              ],
              "description": "get existing params from href and append query params",
              "return": {
                "type": {
                  "text": "Object"
                }
              }
            },
            {
              "kind": "method",
              "name": "rebuildQPFromParams",
              "static": true,
              "parameters": [
                {
                  "name": "params"
                }
              ],
              "description": "rebuild qp from params",
              "return": {
                "type": {
                  "text": "[]"
                }
              }
            },
            {
              "kind": "method",
              "name": "generateHeaderAccept",
              "static": true,
              "parameters": [
                {
                  "name": "caller"
                },
                {
                  "name": "services"
                },
                {
                  "name": "rel"
                }
              ],
              "description": "generate accept field for header",
              "return": {
                "type": {
                  "text": "string"
                }
              }
            },
            {
              "kind": "method",
              "name": "generateReq",
              "static": true,
              "parameters": [
                {
                  "name": "link"
                },
                {
                  "name": "qp"
                }
              ],
              "description": "generate request url from original link and qp",
              "return": {
                "type": {
                  "text": "string"
                }
              }
            },
            {
              "kind": "method",
              "name": "checkServiceAndHateoasLinkError",
              "static": true,
              "parameters": [
                {
                  "name": "caller"
                },
                {
                  "name": "rel"
                },
                {
                  "name": "serviceName"
                }
              ],
              "return": {
                "type": {
                  "text": "undefined|object"
                }
              },
              "privacy": "private"
            }
          ],
          "events": [
            {
              "type": {
                "text": "qp"
              },
              "description": " Fired when query params changed",
              "name": "qp-changed"
            },
            {
              "type": {
                "text": "qp"
              },
              "description": " Fired when query params are replaced",
              "name": "qp-set"
            },
            {
              "type": {
                "text": "hts"
              },
              "description": " Fired when the request for a rel was rejected because the hts was not available TODO: convert to a base class, so the agents can extend this class",
              "name": "xxx-rejected"
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "AgentHelper",
          "declaration": {
            "name": "AgentHelper",
            "module": "src/lib/AgentHelper.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/lib/DataObject.js",
      "declarations": [
        {
          "kind": "class",
          "description": "EntityNode is usually the root node of an eventTree",
          "name": "DataObject",
          "members": [
            {
              "kind": "method",
              "name": "validateAllFields"
            },
            {
              "kind": "method",
              "name": "clearAllErrors",
              "description": "clears all errors on every fieldnode"
            },
            {
              "kind": "method",
              "name": "setAllToPristine",
              "description": "set all children to pristine\nuseful for deltas"
            },
            {
              "kind": "method",
              "name": "injectRaw",
              "parameters": [
                {
                  "name": "rawEntity"
                }
              ],
              "description": "injects a raw model e.g. body data of a collection or entity"
            },
            {
              "kind": "method",
              "name": "reset",
              "description": "Resete zum letzten injected state zurück"
            },
            {
              "kind": "method",
              "name": "_hasAncestorOfType",
              "parameters": [
                {
                  "name": "type"
                }
              ]
            },
            {
              "kind": "field",
              "name": "rawEntity",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "_value",
              "description": "This setter aliases to injectRaw. Added for compatibility reasons for the FieldNodeAdapter",
              "return": {
                "type": {
                  "text": "*"
                }
              },
              "parameters": [
                {
                  "name": "rawEntity"
                }
              ]
            },
            {
              "kind": "field",
              "name": "_base64",
              "description": "Set the value of the data object with a base64 encoded string",
              "return": {
                "type": {
                  "text": "string"
                }
              },
              "privacy": "private",
              "parameters": [
                {
                  "name": "encodedData"
                }
              ]
            },
            {
              "kind": "method",
              "name": "getJson",
              "description": "Returns a json representation of your Data Object",
              "return": {
                "type": {
                  "text": "*"
                }
              }
            },
            {
              "kind": "method",
              "name": "getValidityMessage",
              "description": "Returns a json representation of all field validity messages",
              "return": {
                "type": {
                  "text": "{}"
                }
              }
            },
            {
              "kind": "method",
              "name": "_updateFieldValuesAndMetaFromRawEntity",
              "parameters": [
                {
                  "name": "node"
                },
                {
                  "name": "data"
                }
              ]
            },
            {
              "kind": "method",
              "name": "__updateMetaAndConstraints",
              "parameters": [
                {
                  "name": "metaAndConstraints"
                }
              ],
              "description": "Update meta and constraint fields",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "_setInvalid",
              "parameters": [
                {
                  "name": "error"
                }
              ]
            },
            {
              "kind": "method",
              "name": "_getPath",
              "parameters": [
                {
                  "name": "deeppath",
                  "description": "Path like data.name",
                  "type": {
                    "text": "string"
                  }
                }
              ],
              "description": "Resolve `Fieldnodes` by path.",
              "return": {
                "type": {
                  "text": "FieldNode|*|FieldNode"
                }
              },
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "_initFieldsFromSpec",
              "parameters": [
                {
                  "name": "node"
                },
                {
                  "name": "fieldSpec"
                }
              ],
              "description": "Baut die Felder aufgrund der spec auf",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "toString"
            },
            {
              "kind": "method",
              "name": "_pathSet",
              "static": true,
              "parameters": [
                {
                  "name": "root"
                },
                {
                  "name": "path",
                  "description": "String a.b.c.d"
                },
                {
                  "name": "value"
                }
              ],
              "description": "helper to set deep paths",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "__specdefinitions",
              "description": "reference to the specs",
              "privacy": "private",
              "default": "specs"
            },
            {
              "kind": "field",
              "name": "_spec",
              "default": "this.__specdefinitions[type]"
            },
            {
              "kind": "field",
              "name": "_type",
              "default": "type"
            },
            {
              "kind": "field",
              "name": "_pristine",
              "type": {
                "text": "boolean"
              },
              "default": "true"
            },
            {
              "kind": "field",
              "name": "_isValid",
              "type": {
                "text": "boolean"
              },
              "default": "true"
            }
          ],
          "superclass": {
            "name": "EventTreeNode",
            "package": "@furo/framework/src/EventTreeNode.js"
          }
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "DataObject",
          "declaration": {
            "name": "DataObject",
            "module": "src/lib/DataObject.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/lib/FieldNode.js",
      "declarations": [
        {
          "kind": "class",
          "description": "\n## internal events\n- *this-field-became-invalid*, when a field gets invalid\n- *field-became-invalid* **bubbles**, when a field gets invalid\n- *this-field-became-valid*, when a field gets valid\n- *field-became-valid* **bubbles**, when a field gets valid\n- *this-field-value-changed*, when the value of a field changed\n- *field-value-changed* **bubbles**, when the value of a field changed\n- *this-metas-changed*, when the metas of a field changed\n- *metas-changed* **bubbles**, when the meta of a field changed\n- *oneof-field-cleared*, when a field in a oneof group was cleared\n- *oneof-field-changed*, when a field in a oneof group was changed\n- *this-node-field-added*, when a sub field was added to a field\n- *node-field-added* **bubbles**, when a sub field was added to a field\n- *this-node-field-deleted*, when a sub field was added to a field\n- *node-field-deleted* **bubbles**, when a sub field was added to a field\n- *any-type-removed*, fired before a node of type any changes its inner type\n- *any-type-created*, fired when a node of type any is created or the type was changed\n\n\n## internal broadcasted events\n- *parent-readonly-meta-set*, when readonly was set on a parent field",
          "name": "FieldNode",
          "members": [
            {
              "kind": "method",
              "name": "createField",
              "parameters": [
                {
                  "name": "options",
                  "description": ":\"name\",\"type\":\"string\", \"spec\":{..}}  spec is optional",
                  "type": {
                    "text": "\"fieldName\""
                  }
                }
              ],
              "description": "create a field in a FieldNode, this is useful when using map<string,something>\n  set the value option to init with values"
            },
            {
              "kind": "method",
              "name": "_hasAncestorOfType",
              "parameters": [
                {
                  "name": "type"
                }
              ],
              "description": "infinite recursive element protection",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "moveNode",
              "parameters": [
                {
                  "name": "oldIndex"
                },
                {
                  "name": "newIndex"
                }
              ]
            },
            {
              "kind": "method",
              "name": "reinit",
              "description": "sets the field to the initial values from the spec\ndefault values are applied"
            },
            {
              "kind": "method",
              "name": "reset",
              "description": "resets the field to empty values\nno default values are applied",
              "parameters": [
                {
                  "name": "type"
                }
              ],
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "_createVendorType",
              "parameters": [
                {
                  "name": "type"
                }
              ]
            },
            {
              "kind": "field",
              "name": "_value",
              "description": "returns the raw value of the field node",
              "return": {
                "type": {
                  "text": "null"
                }
              },
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "_checkConstraints",
              "parameters": [
                {
                  "name": "event"
                }
              ]
            },
            {
              "kind": "method",
              "name": "__updateMetaAndConstraints",
              "parameters": [
                {
                  "name": "metaAndConstraints"
                },
                {
                  "name": "level"
                }
              ],
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "_triggerDeepNodeEvent",
              "parameters": [
                {
                  "name": "event"
                }
              ],
              "description": "fires a NodeEvent recursively\nstarting point is caller",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "_createAnyType",
              "parameters": [
                {
                  "name": "val"
                }
              ]
            },
            {
              "kind": "method",
              "name": "_updateKeyValueMap",
              "parameters": [
                {
                  "name": "val"
                },
                {
                  "name": "spec"
                }
              ]
            },
            {
              "kind": "method",
              "name": "deleteNode",
              "description": "deletes the fieldnode"
            },
            {
              "kind": "field",
              "name": "defaultvalue",
              "description": "Set the value of the field to the specified defaults.",
              "parameters": [
                {
                  "name": "val"
                }
              ]
            },
            {
              "kind": "field",
              "name": "_base64",
              "description": "Set the value of the data object with a base64 encoded string",
              "return": {
                "type": {
                  "text": "string"
                }
              },
              "privacy": "private",
              "parameters": [
                {
                  "name": "encodedData"
                }
              ]
            },
            {
              "kind": "field",
              "name": "_transmitValue",
              "description": "Returns all not readonly fields values with deep dive\nMandatory fields (required is true) MUST always be transmitted\n!readonly || required",
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "_deltaValue",
              "description": "Returns all modified fields values with deep dive (! _pristine)\nmodified || required",
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "_requiredValue",
              "description": "Returns required fields with all children",
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "_validityMessage",
              "description": "Returns all validation messages",
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "method",
              "name": "_clearInvalidity"
            },
            {
              "kind": "method",
              "name": "_setInvalid",
              "parameters": [
                {
                  "name": "error",
                  "description": ":\"error description / message\"} => used in data-input-type for hints",
                  "type": {
                    "text": "\"description\""
                  }
                }
              ],
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "_getPath",
              "parameters": [
                {
                  "name": "deeppath",
                  "description": "Path like data.name",
                  "type": {
                    "text": "string"
                  }
                }
              ],
              "description": "Resolve `Fieldnodes` by path.",
              "return": {
                "type": {
                  "text": "FieldNode|*|FieldNode"
                }
              },
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "_setState",
              "parameters": [
                {
                  "name": "state"
                }
              ]
            },
            {
              "kind": "method",
              "name": "toString"
            },
            {
              "kind": "field",
              "name": "__specdefinitions",
              "description": "ref to the specs",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "_spec",
              "description": "Reference to the current spec definition of the fieldNode",
              "default": "{type: vType}",
              "type": {
                "text": "object"
              }
            },
            {
              "kind": "field",
              "name": "_name",
              "description": "Name of the field",
              "privacy": "private",
              "default": "fieldName"
            },
            {
              "kind": "field",
              "name": "__index",
              "privacy": "private",
              "default": "fieldName"
            },
            {
              "kind": "field",
              "name": "__value",
              "type": {
                "text": "null"
              },
              "description": "getter setter store",
              "privacy": "private",
              "default": "null"
            },
            {
              "kind": "field",
              "name": "_pristine",
              "type": {
                "text": "boolean"
              },
              "description": "Pristine state of the fieldNode, this is always set to true when new data is injected and is false if the value itself or the value of a child node gets changed.",
              "default": "true"
            },
            {
              "kind": "field",
              "name": "_isValid",
              "type": {
                "text": "boolean"
              },
              "description": "Validity of the fieldNode, this is always set to true when new data is injected and is false if the value itself validates to false or the value of a child node validates to false.",
              "default": "true"
            },
            {
              "kind": "field",
              "name": "_validationDisabled",
              "description": "\nalso inherit _validationDisabled from parent",
              "type": {
                "text": "boolean|*"
              },
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "__initialValue",
              "description": "store __initialValue value for setting the field back to the defaults",
              "type": {
                "text": "string"
              },
              "privacy": "private"
            }
          ],
          "superclass": {
            "name": "EventTreeNode",
            "package": "@furo/framework/src/EventTreeNode.js"
          }
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "FieldNode",
          "declaration": {
            "name": "FieldNode",
            "module": "src/lib/FieldNode.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/lib/FieldNodeAdapter.js",
      "declarations": [
        {
          "kind": "mixin",
          "description": "Use this class to make your component bindable without handling with the internals of FieldNode.\n\nRead more in the GUIDE section please.",
          "name": "FieldNodeAdapter",
          "members": [
            {
              "kind": "method",
              "name": "getDataType",
              "description": "Returns the type name of the bounded fieldNode",
              "return": {
                "type": {
                  "text": ""
                }
              },
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "isFat",
              "description": "Check if bounded type is a fat type",
              "return": {
                "type": {
                  "text": ""
                }
              },
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "isWrapper",
              "description": "Check if bounded type is a wrapper type",
              "return": {
                "type": {
                  "text": ""
                }
              },
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "bindData",
              "parameters": [
                {
                  "name": "fieldNode",
                  "description": "FieldNode or RepeaterNode",
                  "type": {
                    "text": "FieldNode|RepeaterNode"
                  }
                }
              ],
              "description": "Binds a fieldNode. Make sure the type of your field is accepted by the implemented component.",
              "privacy": "public"
            },
            {
              "kind": "method",
              "name": "setFnaFieldValue",
              "parameters": [
                {
                  "name": "value",
                  "description": "the raw json value for the fieldNode."
                }
              ],
              "description": "Sets the value on the fieldNode. When you set the value, the changes you made will not trigger\nthe `onFnaFieldValueChanged`.",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "onFnaFieldValueChanged",
              "parameters": [
                {
                  "name": "value",
                  "description": "the raw json value for the fieldNode."
                }
              ],
              "description": "Notifies a field value change event. This event is debounced with 1ms, if you have bound a complex type, only one change event\nwill be triggered (this is what you want). If you need all change events or more control for your component,\nuse the listener on the fieldNode itself.",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "onFnaConstraintsChanged",
              "parameters": [
                {
                  "name": "constraints"
                }
              ],
              "description": "Notifies changes on the constraints.\n\nreturns an object like:\n```json\n {\n \"min\":\n   {\n     is:33,\n     message:\"must be bigger\"\n   }\n }\n```\n\n```javascript\n  // example callback\n  onFnaConstraintsChanged(constraints) {\n    if (constraints.min !== undefined) {\n      this._constraintsFromFNA.min = constraints.min;\n      if (this._privilegedAttributes.min === null && this._attributesFromFAT.min === undefined) {\n        this.min = constraints.min.is;\n      }\n    }\n }\n```",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "onFnaOptionsChanged",
              "parameters": [
                {
                  "name": "options"
                }
              ],
              "description": "Notifies when the options for the field is changed or set.",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "onFnaReadonlyChanged",
              "parameters": [
                {
                  "name": "readonly"
                }
              ],
              "description": "Notifies when the readonly flag for the field is changed or set.",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "onFnaHintChanged",
              "parameters": [
                {
                  "name": "hint"
                }
              ],
              "description": "Notifies when the hint for the field is changed or set.",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "onFnaLabelChanged",
              "parameters": [
                {
                  "name": "label"
                }
              ],
              "description": "Notifies when the label for the field is changed or set.",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "onFnaPlaceholderChanged",
              "parameters": [
                {
                  "name": "placeholder"
                }
              ],
              "description": "Notifies when the placeholder for the field is changed or set.",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "onFnaFieldNodeBecameValid",
              "description": "Notifies that a field gets valid.",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "onFnaFieldStateChanged",
              "description": "Notifies that a field has changed its state",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "onFnaFieldNodeBecameInvalid",
              "parameters": [
                {
                  "name": "validity",
                  "description": "Object like {constraint: \"min\", description: \"too small\", field: \"\"}"
                }
              ],
              "description": "Notifies that a field gets invalid.",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "onFnaFieldNewDataInjected",
              "description": "Notifies that new data was injected",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "onFnaRepeatedFieldChanged",
              "description": "Notifies when a repeater node changes",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "__registerHandlers",
              "description": "This is done to be able to remove the event-listeners as a protection for multiple calls for bindData and for cleanup",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "__detachEventListeners",
              "description": "remove all listeners on the fieldnode",
              "privacy": "private"
            },
            {
              "kind": "field",
              "name": "__fieldNode",
              "type": {
                "text": "object"
              },
              "description": "This is a reference for the Adapter, DO NOT USE this attribute in your components",
              "privacy": "private",
              "default": "{}"
            },
            {
              "kind": "field",
              "name": "__internalUpdateInProgress",
              "type": {
                "text": "boolean"
              },
              "description": "used to suppress change events which are triggered by the component itself",
              "privacy": "private",
              "default": "false"
            }
          ],
          "parameters": [
            {
              "name": "superClass"
            }
          ],
          "summary": "Binding methods for fieldNodes"
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "FieldNodeAdapter",
          "declaration": {
            "name": "FieldNodeAdapter",
            "module": "src/lib/FieldNodeAdapter.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/lib/RepeaterNode.js",
      "declarations": [
        {
          "kind": "class",
          "description": "\n## internal events\n- *before-repeated-field-changed*, fired before new data is injected\n- *this-metas-changed*, when the metas of a field changed\n- *repeat-became-valid*, fired when all sub items are valid, after one was invalid before\n- *repeat-became-invalid*, fired when one sub item switches to a invalid state\n- *repeated-fields-changed*, fired when this or any child repeaters was changed (new data, add, remove)\n- *this-repeated-field-changed*, fired when this repeater was changed (new data, add, remove)\n- *repeated-fields-all-removed* fired when all nodes of a repeater was deleted\n- *this-repeated-field-removed*, fired whe a node of this repeater was deleted\n- *this-node-field-deleted*, fired when this node was deleted\n- *node-field-deleted, fired when a child node was deleted\n- *repeated-fields-added*, fired when a node on this or any child repeater was added\n- *this-repeated-field-added*, fired when a node on this repeater was added",
          "name": "RepeaterNode",
          "members": [
            {
              "kind": "method",
              "name": "moveNode",
              "parameters": [
                {
                  "name": "oldIndex"
                },
                {
                  "name": "newIndex"
                }
              ]
            },
            {
              "kind": "method",
              "name": "reinit",
              "description": "resets the field to the initial _values from the spec"
            },
            {
              "kind": "method",
              "name": "reset",
              "description": "removes all children"
            },
            {
              "kind": "method",
              "name": "removeAllChildren",
              "description": "deletes all repeated fields on this node"
            },
            {
              "kind": "method",
              "name": "_hasAncestorOfType",
              "description": "infinite recursive element protection\nwe can return false here, because a repeater node is not created automatically"
            },
            {
              "kind": "method",
              "name": "deleteNode"
            },
            {
              "kind": "field",
              "name": "_value",
              "default": "tmp"
            },
            {
              "kind": "method",
              "name": "__updateMetaAndConstraints",
              "parameters": [
                {
                  "name": "metaAndConstraints"
                }
              ]
            },
            {
              "kind": "field",
              "name": "_transmitValue",
              "description": "Returns all not readonly field values with deep dive",
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "_deltaValue",
              "description": "Returns all modified field values with deep dive (! _pristine)",
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "_requiredValue",
              "description": "Returns required fields with all children which are modified or\nnot readonly",
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "field",
              "name": "_validityMessage",
              "description": "Returns all validation messages",
              "return": {
                "type": {
                  "text": "undefined|*"
                }
              },
              "privacy": "private",
              "readonly": true
            },
            {
              "kind": "method",
              "name": "_triggerDeepNodeEvent",
              "parameters": [
                {
                  "name": "event"
                }
              ],
              "description": "delegates the trigger to all repeats",
              "privacy": "private"
            },
            {
              "kind": "method",
              "name": "deleteChild",
              "parameters": [
                {
                  "name": "index"
                }
              ],
              "description": "Deletes a repeated item by index"
            },
            {
              "kind": "method",
              "name": "_addSilent"
            },
            {
              "kind": "method",
              "name": "_setInvalid",
              "parameters": [
                {
                  "name": "error"
                }
              ]
            },
            {
              "kind": "method",
              "name": "_getPath",
              "parameters": [
                {
                  "name": "deeppath"
                }
              ]
            },
            {
              "kind": "method",
              "name": "_setState",
              "parameters": [
                {
                  "name": "state"
                }
              ]
            },
            {
              "kind": "method",
              "name": "add",
              "parameters": [
                {
                  "name": "data"
                }
              ]
            },
            {
              "kind": "field",
              "name": "__specdefinitions"
            },
            {
              "kind": "field",
              "name": "_isRepeater",
              "type": {
                "text": "boolean"
              },
              "default": "true"
            },
            {
              "kind": "field",
              "name": "repeats",
              "type": {
                "text": "array"
              },
              "default": "[]"
            },
            {
              "kind": "field",
              "name": "_spec",
              "default": "spec"
            },
            {
              "kind": "field",
              "name": "_name",
              "default": "fieldName"
            },
            {
              "kind": "field",
              "name": "clearListOnNewData",
              "type": {
                "text": "boolean"
              },
              "description": "Set this to true to clear the list on new data instead updating the current list.",
              "default": "false"
            },
            {
              "kind": "field",
              "name": "_pristine",
              "type": {
                "text": "boolean"
              },
              "default": "true"
            },
            {
              "kind": "field",
              "name": "_isValid",
              "type": {
                "text": "boolean"
              },
              "default": "true"
            },
            {
              "kind": "field",
              "name": "_validationDisabled"
            },
            {
              "kind": "field",
              "name": "__initialValue"
            }
          ],
          "superclass": {
            "name": "EventTreeNode",
            "package": "@furo/framework/src/EventTreeNode.js"
          }
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "RepeaterNode",
          "declaration": {
            "name": "RepeaterNode",
            "module": "src/lib/RepeaterNode.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/lib/ScalarTypeHelper.js",
      "declarations": [
        {
          "kind": "class",
          "description": "",
          "name": "ScalarTypeHelper",
          "members": [
            {
              "kind": "method",
              "name": "defaultForType",
              "static": true,
              "parameters": [
                {
                  "name": "type"
                }
              ]
            },
            {
              "kind": "method",
              "name": "indeterminateDefault",
              "static": true
            },
            {
              "kind": "method",
              "name": "isNumericType",
              "static": true,
              "parameters": [
                {
                  "name": "type"
                }
              ],
              "description": "checks if a type is numeric (usefull when you want to compare min or max constraints)",
              "return": {
                "type": {
                  "text": "boolean"
                }
              }
            },
            {
              "kind": "method",
              "name": "isScalarType",
              "static": true,
              "parameters": [
                {
                  "name": "type"
                }
              ],
              "description": "checks if a type is scalar",
              "return": {
                "type": {
                  "text": "boolean"
                }
              }
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "ScalarTypeHelper",
          "declaration": {
            "name": "ScalarTypeHelper",
            "module": "src/lib/ScalarTypeHelper.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/lib/ValidatorDefaultTypes.js",
      "declarations": [
        {
          "kind": "class",
          "description": "A class to validate constraints on type <code>string</code",
          "name": "ValidatorDefaultTypes",
          "members": [
            {
              "kind": "method",
              "name": "validateConstraints",
              "static": true,
              "parameters": [
                {
                  "name": "field"
                }
              ],
              "return": {
                "type": {
                  "text": "Promise<unknown>"
                }
              }
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "ValidatorDefaultTypes",
          "declaration": {
            "name": "ValidatorDefaultTypes",
            "module": "src/lib/ValidatorDefaultTypes.js"
          }
        }
      ]
    },
    {
      "kind": "javascript-module",
      "path": "src/lib/ValidatorNumericTypes.js",
      "declarations": [
        {
          "kind": "class",
          "description": "A class to validate constraints on numeric types",
          "name": "ValidatorNumericTypes",
          "members": [
            {
              "kind": "method",
              "name": "validateConstraints",
              "static": true,
              "parameters": [
                {
                  "name": "field"
                }
              ],
              "return": {
                "type": {
                  "text": "Promise<unknown>"
                }
              }
            }
          ]
        }
      ],
      "exports": [
        {
          "kind": "js",
          "name": "ValidatorNumericTypes",
          "declaration": {
            "name": "ValidatorNumericTypes",
            "module": "src/lib/ValidatorNumericTypes.js"
          }
        }
      ]
    }
  ]
}
