Something went wrong on our end
Select Git revision
-
Volker Schukai authoredVolker Schukai authored
form.mjs 13.41 KiB
/**
* Copyright schukai GmbH and contributors 2023. All Rights Reserved.
* Node module: @schukai/monster
* This file is licensed under the AGPLv3 License.
* License text available at https://www.gnu.org/licenses/agpl-3.0.en.html
*/
import { instanceSymbol } from "../../constants.mjs";
import { internalSymbol } from "../../constants.mjs";
import { Datasource } from "../../data/datasource.mjs";
import { RestAPI } from "../../data/datasource/server/restapi.mjs";
import { WebConnect } from "../../data/datasource/server/webconnect.mjs";
import { WriteError } from "../../data/datasource/server/restapi/writeerror.mjs";
import { LocalStorage } from "../../data/datasource/storage/localstorage.mjs";
import { SessionStorage } from "../../data/datasource/storage/sessionstorage.mjs";
import {
ATTRIBUTE_DISABLED,
ATTRIBUTE_ERRORMESSAGE,
ATTRIBUTE_PREFIX,
ATTRIBUTE_UPDATER_ATTRIBUTES,
ATTRIBUTE_UPDATER_INSERT,
ATTRIBUTE_UPDATER_REMOVE,
ATTRIBUTE_UPDATER_REPLACE,
} from "../../dom/constants.mjs";
import {
assembleMethodSymbol,
CustomElement,
registerCustomElement,
} from "../../dom/customelement.mjs";
import { addObjectWithUpdaterToElement } from "../../dom/updater.mjs";
import { isFunction, isString } from "../../types/is.mjs";
import { Observer } from "../../types/observer.mjs";
import { ProxyObserver } from "../../types/proxyobserver.mjs";
import { Processing } from "../../util/processing.mjs";
import { MessageStateButton } from "./message-state-button.mjs";
import {
ATTRIBUTE_FORM_DATASOURCE,
ATTRIBUTE_FORM_DATASOURCE_ARGUMENTS,
} from "./constants.mjs";
import { StateButton } from "./state-button.mjs";
import { getSlottedElements } from "../../dom/customelement.mjs";
import { FormStyleSheet } from "./stylesheet/form.mjs";
export { Form };
/**
* @private
* @since 3.1.0
* @type {string}
*/
const ATTRIBUTE_FORM_DATASOURCE_ACTION = `${ATTRIBUTE_PREFIX}datasource-action`;
/**
* Form data is the internal representation of the form data
*
* @private
* @type {symbol}
* @since 1.7.0
*/
const formDataSymbol = Symbol.for("@schukai/component-form/form@@formdata");
/**
* @private
* @type {symbol}
* @since 2.8.0
*/
const formDataUpdaterSymbol = Symbol.for(
"@schukai/component-form/form@@formdata-updater-link",
);
/**