diff --git a/it/apps/src/main/content/jcr_root/apps/forms-core-components-it/clientlibs/custom-forms-components-runtime-all/.content.xml b/it/apps/src/main/content/jcr_root/apps/forms-core-components-it/clientlibs/custom-forms-components-runtime-all/.content.xml
index 157dfad222..c862537b53 100644
--- a/it/apps/src/main/content/jcr_root/apps/forms-core-components-it/clientlibs/custom-forms-components-runtime-all/.content.xml
+++ b/it/apps/src/main/content/jcr_root/apps/forms-core-components-it/clientlibs/custom-forms-components-runtime-all/.content.xml
@@ -5,4 +5,4 @@
cssProcessor="[default:none,min:none]"
jsProcessor="[default:none,min:none]"
categories="[core.forms.components.it.runtime.all]"
- embed="[core.forms.components.runtime.base,core.forms.components.container.v2.runtime,core.forms.components.datePicker.v1.runtime,core.forms.components.textinput.v1.runtime,core.forms.components.numberinput.v1.runtime,core.forms.components.panelcontainer.v1.runtime,core.forms.components.radiobutton.v1.runtime,core.forms.components.text.v1.runtime,core.forms.components.checkboxgroup.v1.runtime,core.forms.components.button.v1.runtime,core.forms.components.image.v1.runtime,core.forms.components.dropdown.v1.runtime,core.forms.components.fileinput.v2.runtime,core.forms.components.accordion.v1.runtime,core.forms.components.tabs.v1.runtime,core.forms.components.wizard.v1.runtime,core.forms.components.verticaltabs.v1.runtime,core.forms.components.recaptcha.v1.runtime,core.forms.components.checkbox.v1.runtime,core.forms.components.fragment.v1.runtime,core.forms.components.switch.v1.runtime,core.forms.components.termsandconditions.v1.runtime, core.forms.components.it.textinput.v1.runtime, core.forms.components.hcaptcha.v1.runtime]"/>
+ embed="[core.forms.components.runtime.base,core.forms.components.it.container.v1.runtime,core.forms.components.datePicker.v1.runtime,core.forms.components.textinput.v1.runtime,core.forms.components.numberinput.v1.runtime,core.forms.components.panelcontainer.v1.runtime,core.forms.components.radiobutton.v1.runtime,core.forms.components.text.v1.runtime,core.forms.components.checkboxgroup.v1.runtime,core.forms.components.button.v1.runtime,core.forms.components.image.v1.runtime,core.forms.components.dropdown.v1.runtime,core.forms.components.fileinput.v2.runtime,core.forms.components.accordion.v1.runtime,core.forms.components.tabs.v1.runtime,core.forms.components.wizard.v1.runtime,core.forms.components.verticaltabs.v1.runtime,core.forms.components.recaptcha.v1.runtime,core.forms.components.checkbox.v1.runtime,core.forms.components.fragment.v1.runtime,core.forms.components.switch.v1.runtime,core.forms.components.termsandconditions.v1.runtime, core.forms.components.it.textinput.v1.runtime, core.forms.components.hcaptcha.v1.runtime]"/>
diff --git a/it/apps/src/main/content/jcr_root/apps/forms-core-components-it/components/container/.content.xml b/it/apps/src/main/content/jcr_root/apps/forms-core-components-it/components/container/.content.xml
new file mode 100644
index 0000000000..491392d539
--- /dev/null
+++ b/it/apps/src/main/content/jcr_root/apps/forms-core-components-it/components/container/.content.xml
@@ -0,0 +1,3 @@
+
+
diff --git a/it/apps/src/main/content/jcr_root/apps/forms-core-components-it/components/container/v1/.content.xml b/it/apps/src/main/content/jcr_root/apps/forms-core-components-it/components/container/v1/.content.xml
new file mode 100644
index 0000000000..2b3b612037
--- /dev/null
+++ b/it/apps/src/main/content/jcr_root/apps/forms-core-components-it/components/container/v1/.content.xml
@@ -0,0 +1,5 @@
+
+
+
+
diff --git a/it/apps/src/main/content/jcr_root/apps/forms-core-components-it/components/container/v1/container/.content.xml b/it/apps/src/main/content/jcr_root/apps/forms-core-components-it/components/container/v1/container/.content.xml
new file mode 100644
index 0000000000..de9d9c936b
--- /dev/null
+++ b/it/apps/src/main/content/jcr_root/apps/forms-core-components-it/components/container/v1/container/.content.xml
@@ -0,0 +1,9 @@
+
+
diff --git a/it/apps/src/main/content/jcr_root/apps/forms-core-components-it/components/container/v1/container/README.md b/it/apps/src/main/content/jcr_root/apps/forms-core-components-it/components/container/v1/container/README.md
new file mode 100644
index 0000000000..025dfc7cd1
--- /dev/null
+++ b/it/apps/src/main/content/jcr_root/apps/forms-core-components-it/components/container/v1/container/README.md
@@ -0,0 +1,19 @@
+
+Adaptive Form Container (loader)
+====
+Adaptive Form container extending OOTB form container
+and additionally added support for loader icon during submit
\ No newline at end of file
diff --git a/it/apps/src/main/content/jcr_root/apps/forms-core-components-it/components/container/v1/container/_cq_template/.content.xml b/it/apps/src/main/content/jcr_root/apps/forms-core-components-it/components/container/v1/container/_cq_template/.content.xml
new file mode 100644
index 0000000000..e7d2c5f64c
--- /dev/null
+++ b/it/apps/src/main/content/jcr_root/apps/forms-core-components-it/components/container/v1/container/_cq_template/.content.xml
@@ -0,0 +1,8 @@
+
+
+
+
diff --git a/it/apps/src/main/content/jcr_root/apps/forms-core-components-it/components/container/v1/container/clientlibs/.content.xml b/it/apps/src/main/content/jcr_root/apps/forms-core-components-it/components/container/v1/container/clientlibs/.content.xml
new file mode 100644
index 0000000000..491392d539
--- /dev/null
+++ b/it/apps/src/main/content/jcr_root/apps/forms-core-components-it/components/container/v1/container/clientlibs/.content.xml
@@ -0,0 +1,3 @@
+
+
diff --git a/it/apps/src/main/content/jcr_root/apps/forms-core-components-it/components/container/v1/container/clientlibs/site/.content.xml b/it/apps/src/main/content/jcr_root/apps/forms-core-components-it/components/container/v1/container/clientlibs/site/.content.xml
new file mode 100644
index 0000000000..1c67f20890
--- /dev/null
+++ b/it/apps/src/main/content/jcr_root/apps/forms-core-components-it/components/container/v1/container/clientlibs/site/.content.xml
@@ -0,0 +1,7 @@
+
+
diff --git a/it/apps/src/main/content/jcr_root/apps/forms-core-components-it/components/container/v1/container/clientlibs/site/css.txt b/it/apps/src/main/content/jcr_root/apps/forms-core-components-it/components/container/v1/container/clientlibs/site/css.txt
new file mode 100644
index 0000000000..bf43e90391
--- /dev/null
+++ b/it/apps/src/main/content/jcr_root/apps/forms-core-components-it/components/container/v1/container/clientlibs/site/css.txt
@@ -0,0 +1,18 @@
+###############################################################################
+# Copyright 2022 Adobe
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+###############################################################################
+
+#base=css
+formcontainerview.css
\ No newline at end of file
diff --git a/it/apps/src/main/content/jcr_root/apps/forms-core-components-it/components/container/v1/container/clientlibs/site/css/formcontainerview.css b/it/apps/src/main/content/jcr_root/apps/forms-core-components-it/components/container/v1/container/clientlibs/site/css/formcontainerview.css
new file mode 100644
index 0000000000..b8972351c9
--- /dev/null
+++ b/it/apps/src/main/content/jcr_root/apps/forms-core-components-it/components/container/v1/container/clientlibs/site/css/formcontainerview.css
@@ -0,0 +1,22 @@
+/*******************************************************************************
+ * Copyright 2022 Adobe
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ ******************************************************************************/
+
+form:not(.cmp-adaptiveform-container--edit) [data-cmp-visible="false"] {
+ display: none !important;
+}
+.cmp-adaptiveform-container--loading{
+
+}
\ No newline at end of file
diff --git a/it/apps/src/main/content/jcr_root/apps/forms-core-components-it/components/container/v1/container/clientlibs/site/js.txt b/it/apps/src/main/content/jcr_root/apps/forms-core-components-it/components/container/v1/container/clientlibs/site/js.txt
new file mode 100644
index 0000000000..270bfbdbaf
--- /dev/null
+++ b/it/apps/src/main/content/jcr_root/apps/forms-core-components-it/components/container/v1/container/clientlibs/site/js.txt
@@ -0,0 +1,18 @@
+###############################################################################
+# Copyright 2022 Adobe
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+###############################################################################
+
+#base=js
+formcontainerview.js
\ No newline at end of file
diff --git a/it/apps/src/main/content/jcr_root/apps/forms-core-components-it/components/container/v1/container/clientlibs/site/js/formcontainerview.js b/it/apps/src/main/content/jcr_root/apps/forms-core-components-it/components/container/v1/container/clientlibs/site/js/formcontainerview.js
new file mode 100644
index 0000000000..d0c75703c2
--- /dev/null
+++ b/it/apps/src/main/content/jcr_root/apps/forms-core-components-it/components/container/v1/container/clientlibs/site/js/formcontainerview.js
@@ -0,0 +1,167 @@
+/*******************************************************************************
+ * Copyright 2022 Adobe
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ ******************************************************************************/
+
+(function() {
+
+ "use strict";
+ class FormContainerV2 extends FormView.FormContainer {
+ static NS = FormView.Constants.NS;
+ static IS = "adaptiveFormContainer";
+ static bemBlock = 'cmp-adaptiveform-container';
+ static selectors = {
+ self: "[data-" + this.NS + '-is="' + this.IS + '"]',
+ };
+ static loadingClass = `${FormContainerV2.bemBlock}--loading`;
+ constructor(params) {
+ super(params);
+ let self = this;
+ // Function to add the loading class
+ const addLoadingClass = (formId) => {
+ const formContainer = document.querySelector(`[data-cmp-adaptiveform-container-loader='${formId}']`);
+ if (formContainer) {
+ formContainer.classList.add('cmp-adaptiveform-container--loading');
+ }
+ };
+ // Function to remove the loading class
+ const removeLoadingClass = (formId) => {
+ const formContainer = document.querySelector(`[data-cmp-adaptiveform-container-loader='${formId}']`);
+ if (formContainer) {
+ formContainer.classList.remove('cmp-adaptiveform-container--loading');
+ }
+ };
+ this._model.subscribe((action) => {
+ addLoadingClass(action.target.id);
+ }, "submit");
+ this._model.subscribe((action) => {
+ removeLoadingClass(self.getModel().id);
+ let state = action.target.getState();
+ // execute the handler only if there are no rules configured on submitSuccess event.
+ if (!state.events.submitSuccess || state.events.submitSuccess.length === 0) {
+ const globals = {
+ form: self.getModel().getRuleNode(),
+ event: {
+ type: action.type,
+ payload: action.payload,
+ }
+ };
+ FormView.customFunctions.defaultSubmitSuccessHandler(globals);
+ }
+ }, "submitSuccess");
+ this._model.subscribe((action) => {
+ removeLoadingClass(self.getModel().id);
+ let state = action.target.getState();
+ // execute the handler only if there are no rules configured on submitError event.
+ if (!state.events.submitError || state.events.submitError.length === 0) {
+ let defaultSubmissionError = FormView.LanguageUtils.getTranslatedString(self.getLang(), "InternalFormSubmissionError");
+ const globals = {
+ form: self.getModel().getRuleNode(),
+ event: {
+ type: action.type,
+ payload: action.payload,
+ }
+ };
+ FormView.customFunctions.defaultSubmitErrorHandler(defaultSubmissionError, globals);
+ }
+ }, "submitError");
+ this._model.subscribe((action) => {
+ let state = action.target.getState();
+ // execute the handler only if there are no rules configured on custom:saveSuccess event.
+ if (!state.events['custom:saveSuccess'] || state.events['custom:saveSuccess'].length === 0) {
+ console.log("Draft id = " + action?.payload?.body?.draftId);
+ window.alert("Draft has been saved successfully");
+ }
+ }, "saveSuccess");
+ this._model.subscribe((action) => {
+ let state = action.target.getState();
+ // execute the handler only if there are no rules configured on custom:saveError event.
+ if (!state.events['custom:saveError'] || state.events['custom:saveError'].length === 0) {
+ window.alert("Issue while saving draft");
+ }
+ }, "saveError");
+ this.#setupAutoSave(self.getModel());
+ }
+
+ /**
+ * Register time based auto save
+ * @param formModel.
+ */
+ #setupAutoSave(formModel) {
+ const autoSaveProperties = formModel?.properties?.['fd:autoSave'];
+ const enableAutoSave = autoSaveProperties?.['fd:enableAutoSave'];
+ if (enableAutoSave) {
+ const autoSaveStrategyType = autoSaveProperties['fd:autoSaveStrategyType'];
+ const autoSaveInterval = autoSaveProperties['fd:autoSaveInterval'];
+ const saveEndPoint = FormView.Utils.getContextPath() + '/adobe/forms/af/save/' + formModel.id;
+ if (autoSaveStrategyType === 'time' && autoSaveInterval) {
+ console.log("Registering time based auto save");
+ setInterval(() => {
+ formModel.dispatch(new FormView.Actions.Save({
+ 'action': saveEndPoint
+ }));
+ }, parseInt(autoSaveInterval) * 1000);
+ }
+ }
+ }
+ }
+
+ async function onDocumentReady() {
+ const startTime = new Date().getTime();
+ let elements = document.querySelectorAll(FormContainerV2.selectors.self);
+ for (let i = 0; i < elements.length; i++) {
+ let loaderToAdd = document.querySelector("[data-cmp-adaptiveform-container-loader='"+ elements[i].id + "']");
+ if(loaderToAdd){
+ loaderToAdd.classList.add(FormContainerV2.loadingClass);
+ }
+ console.debug("Form loading started", elements[i].id);
+ }
+ function onInit(e) {
+ let formContainer = e.detail;
+ let formEl = formContainer.getFormElement();
+ setTimeout(() => {
+ let loaderToRemove = document.querySelector("[data-cmp-adaptiveform-container-loader='"+ formEl.id + "']");
+ if(loaderToRemove){
+ loaderToRemove.classList.remove(FormContainerV2.loadingClass);
+ }
+ const timeTaken = new Date().getTime() - startTime;
+ console.debug("Form loading complete", formEl.id, timeTaken);
+ }, 10);
+ }
+ document.addEventListener(FormView.Constants.FORM_CONTAINER_INITIALISED, onInit);
+ await FormView.Utils.setupFormContainer(async ({
+ _formJson, _prefillData, _path, _element
+ }) => {
+ let formContainer = new FormContainerV2({_formJson, _prefillData, _path, _element});
+ // before initializing the form container load all the locale specific json resources
+ // for runtime
+ const formLanguage = formContainer.getLang();
+ const aemLangUrl = `/etc.clientlibs/core/fd/af-clientlibs/core-forms-components-runtime-all/resources/i18n/${formLanguage}.json`;
+ await FormView.LanguageUtils.loadLang(formLanguage, aemLangUrl, true);
+ formContainer.subscribe();
+ return formContainer;
+ }, FormContainerV2.selectors.self, FormContainerV2.IS);
+ }
+
+ // This is to ensure that the there is no WCM Mode cookie when Form Container is rendered.
+ // max-age=0 ensures that the cookie is deleted.
+ document.cookie="wcmmode=disabled; max-age=0; path=/";
+
+ if (document.readyState !== "loading") {
+ onDocumentReady();
+ } else {
+ document.addEventListener("DOMContentLoaded", onDocumentReady);
+ }
+
+})();
diff --git a/it/apps/src/main/content/jcr_root/apps/forms-core-components-it/components/container/v1/container/clientlibs/site/resources/busy-state.gif b/it/apps/src/main/content/jcr_root/apps/forms-core-components-it/components/container/v1/container/clientlibs/site/resources/busy-state.gif
new file mode 100644
index 0000000000..16544649ec
Binary files /dev/null and b/it/apps/src/main/content/jcr_root/apps/forms-core-components-it/components/container/v1/container/clientlibs/site/resources/busy-state.gif differ
diff --git a/it/apps/src/main/content/jcr_root/apps/forms-core-components-it/components/textinput/v1/textinput/clientlibs/site/.content.xml b/it/apps/src/main/content/jcr_root/apps/forms-core-components-it/components/textinput/v1/textinput/clientlibs/site/.content.xml
index ad64efd81c..d6e407b6d7 100644
--- a/it/apps/src/main/content/jcr_root/apps/forms-core-components-it/components/textinput/v1/textinput/clientlibs/site/.content.xml
+++ b/it/apps/src/main/content/jcr_root/apps/forms-core-components-it/components/textinput/v1/textinput/clientlibs/site/.content.xml
@@ -3,4 +3,4 @@
jcr:primaryType="cq:ClientLibraryFolder"
allowProxy="{Boolean}true"
categories="[core.forms.components.it.textinput.v1.runtime]"
- dependencies="[core.forms.components.runtime.base, core.forms.components.container.v2.runtime, core.forms.components.textinput.v1.runtime]"/>
+ dependencies="[core.forms.components.runtime.base, core.forms.components.textinput.v1.runtime]"/>
diff --git a/it/content/src/main/content/jcr_root/content/forms/af/core-components-it/samples/container/.content.xml b/it/content/src/main/content/jcr_root/content/forms/af/core-components-it/samples/container/.content.xml
new file mode 100644
index 0000000000..3edadd6c63
--- /dev/null
+++ b/it/content/src/main/content/jcr_root/content/forms/af/core-components-it/samples/container/.content.xml
@@ -0,0 +1,5 @@
+
+
diff --git a/it/content/src/main/content/jcr_root/content/forms/af/core-components-it/samples/container/custom/.content.xml b/it/content/src/main/content/jcr_root/content/forms/af/core-components-it/samples/container/custom/.content.xml
new file mode 100644
index 0000000000..c7b906523f
--- /dev/null
+++ b/it/content/src/main/content/jcr_root/content/forms/af/core-components-it/samples/container/custom/.content.xml
@@ -0,0 +1,73 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/accordion/v1/accordion/clientlibs/site/.content.xml b/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/accordion/v1/accordion/clientlibs/site/.content.xml
index b9ceb86eb4..eadfdc7f28 100644
--- a/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/accordion/v1/accordion/clientlibs/site/.content.xml
+++ b/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/accordion/v1/accordion/clientlibs/site/.content.xml
@@ -19,4 +19,4 @@
allowProxy="{Boolean}true"
categories="[core.forms.components.accordion.v1.runtime]"
jsProcessor="[default:none,min:none]"
- dependencies="[core.wcm.components.commons.site.container,core.forms.components.runtime.base,core.forms.components.container.v2.runtime,core.forms.components.accordion.v1.commons]"/>
+ dependencies="[core.wcm.components.commons.site.container,core.forms.components.runtime.base,core.forms.components.accordion.v1.commons]"/>
diff --git a/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/button/v1/button/clientlibs/site/.content.xml b/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/button/v1/button/clientlibs/site/.content.xml
index 5960e617f7..d53f9c8394 100644
--- a/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/button/v1/button/clientlibs/site/.content.xml
+++ b/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/button/v1/button/clientlibs/site/.content.xml
@@ -4,4 +4,4 @@
allowProxy="{Boolean}true"
categories="[core.forms.components.button.v1.runtime]"
jsProcessor="[default:none,min:none]"
- dependencies="[core.forms.components.runtime.base,core.forms.components.container.v2.runtime]"/>
+ dependencies="[core.forms.components.runtime.base]"/>
diff --git a/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/checkbox/v1/checkbox/clientlibs/site/.content.xml b/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/checkbox/v1/checkbox/clientlibs/site/.content.xml
index bfdeb3bc69..852730da77 100644
--- a/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/checkbox/v1/checkbox/clientlibs/site/.content.xml
+++ b/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/checkbox/v1/checkbox/clientlibs/site/.content.xml
@@ -3,4 +3,4 @@
jcr:primaryType="cq:ClientLibraryFolder"
allowProxy="{Boolean}true"
categories="[core.forms.components.checkbox.v1.runtime]"
- dependencies="[core.forms.components.runtime.base,core.forms.components.container.v2.runtime]"/>
+ dependencies="[core.forms.components.runtime.base]"/>
diff --git a/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/checkboxgroup/v1/checkboxgroup/clientlibs/site/.content.xml b/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/checkboxgroup/v1/checkboxgroup/clientlibs/site/.content.xml
index a96ac6fc43..b17a18fcf4 100644
--- a/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/checkboxgroup/v1/checkboxgroup/clientlibs/site/.content.xml
+++ b/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/checkboxgroup/v1/checkboxgroup/clientlibs/site/.content.xml
@@ -3,4 +3,4 @@
jcr:primaryType="cq:ClientLibraryFolder"
allowProxy="{Boolean}true"
categories="[core.forms.components.checkboxgroup.v1.runtime]"
- dependencies="[core.forms.components.runtime.base,core.forms.components.container.v2.runtime]"/>
+ dependencies="[core.forms.components.runtime.base]"/>
diff --git a/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/datepicker/v1/datepicker/clientlibs/site/.content.xml b/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/datepicker/v1/datepicker/clientlibs/site/.content.xml
index 0332605352..3b6a9dbaad 100644
--- a/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/datepicker/v1/datepicker/clientlibs/site/.content.xml
+++ b/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/datepicker/v1/datepicker/clientlibs/site/.content.xml
@@ -3,4 +3,4 @@
jcr:primaryType="cq:ClientLibraryFolder"
allowProxy="{Boolean}true"
categories="[core.forms.components.datePicker.v1.runtime]"
- dependencies="[core.forms.components.runtime.base,core.forms.components.container.v2.runtime]"/>
+ dependencies="[core.forms.components.runtime.base]"/>
diff --git a/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/dropdown/v1/dropdown/clientlibs/site/.content.xml b/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/dropdown/v1/dropdown/clientlibs/site/.content.xml
index 2dcdfe6f0c..54f67b2e1f 100644
--- a/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/dropdown/v1/dropdown/clientlibs/site/.content.xml
+++ b/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/dropdown/v1/dropdown/clientlibs/site/.content.xml
@@ -3,4 +3,4 @@
jcr:primaryType="cq:ClientLibraryFolder"
allowProxy="{Boolean}true"
categories="[core.forms.components.dropdown.v1.runtime]"
- dependencies="[core.forms.components.runtime.base,core.forms.components.container.v2.runtime]"/>
+ dependencies="[core.forms.components.runtime.base]"/>
diff --git a/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/emailinput/v1/emailinput/clientlibs/site/.content.xml b/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/emailinput/v1/emailinput/clientlibs/site/.content.xml
index 6c54081483..914ab5b3f7 100644
--- a/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/emailinput/v1/emailinput/clientlibs/site/.content.xml
+++ b/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/emailinput/v1/emailinput/clientlibs/site/.content.xml
@@ -3,4 +3,4 @@
jcr:primaryType="cq:ClientLibraryFolder"
allowProxy="{Boolean}true"
categories="[core.forms.components.textinput.v1.runtime]"
- dependencies="[core.forms.components.runtime.base,core.forms.components.container.v2.runtime]"/>
+ dependencies="[core.forms.components.runtime.base]"/>
diff --git a/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/fileinput/v1/fileinput/clientlibs/site/.content.xml b/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/fileinput/v1/fileinput/clientlibs/site/.content.xml
index cfc2e08b1b..4481282417 100644
--- a/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/fileinput/v1/fileinput/clientlibs/site/.content.xml
+++ b/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/fileinput/v1/fileinput/clientlibs/site/.content.xml
@@ -3,4 +3,4 @@
jcr:primaryType="cq:ClientLibraryFolder"
allowProxy="{Boolean}true"
categories="[core.forms.components.fileinput.v1.runtime]"
- dependencies="[core.forms.components.runtime.base,core.forms.components.container.v2.runtime]"/>
+ dependencies="[core.forms.components.runtime.base]"/>
diff --git a/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/fileinput/v2/fileinput/clientlibs/site/.content.xml b/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/fileinput/v2/fileinput/clientlibs/site/.content.xml
index e6e76b00f6..14e11cdb93 100644
--- a/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/fileinput/v2/fileinput/clientlibs/site/.content.xml
+++ b/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/fileinput/v2/fileinput/clientlibs/site/.content.xml
@@ -4,4 +4,4 @@
allowProxy="{Boolean}true"
categories="[core.forms.components.fileinput.v2.runtime]"
jsProcessor="[default:none,min:none]"
- dependencies="[core.forms.components.runtime.base,core.forms.components.container.v2.runtime]"/>
+ dependencies="[core.forms.components.runtime.base]"/>
diff --git a/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/fileinput/v3/fileinput/clientlibs/site/.content.xml b/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/fileinput/v3/fileinput/clientlibs/site/.content.xml
index 9b7c036cb6..8c9529c9ee 100644
--- a/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/fileinput/v3/fileinput/clientlibs/site/.content.xml
+++ b/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/fileinput/v3/fileinput/clientlibs/site/.content.xml
@@ -3,4 +3,4 @@
jcr:primaryType="cq:ClientLibraryFolder"
allowProxy="{Boolean}true"
categories="[core.forms.components.fileinput.v3.runtime]"
- dependencies="[core.forms.components.runtime.base,core.forms.components.container.v2.runtime]"/>
+ dependencies="[core.forms.components.runtime.base]"/>
diff --git a/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/fragment/v1/fragment/clientlibs/site/.content.xml b/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/fragment/v1/fragment/clientlibs/site/.content.xml
index b219452f7d..fe858dc62b 100644
--- a/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/fragment/v1/fragment/clientlibs/site/.content.xml
+++ b/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/fragment/v1/fragment/clientlibs/site/.content.xml
@@ -3,4 +3,4 @@
jcr:primaryType="cq:ClientLibraryFolder"
allowProxy="{Boolean}true"
categories="[core.forms.components.fragment.v1.runtime]"
- dependencies="[core.forms.components.runtime.base,core.forms.components.container.v2.runtime]"/>
+ dependencies="[core.forms.components.runtime.base]"/>
diff --git a/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/hcaptcha/v1/hcaptcha/clientlibs/site/.content.xml b/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/hcaptcha/v1/hcaptcha/clientlibs/site/.content.xml
index 7dcd041bc6..079775ffcc 100644
--- a/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/hcaptcha/v1/hcaptcha/clientlibs/site/.content.xml
+++ b/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/hcaptcha/v1/hcaptcha/clientlibs/site/.content.xml
@@ -3,4 +3,4 @@
jcr:primaryType="cq:ClientLibraryFolder"
allowProxy="{Boolean}true"
categories="[core.forms.components.hcaptcha.v1.runtime]"
- dependencies="[core.forms.components.runtime.base,core.forms.components.container.v2.runtime]"/>
+ dependencies="[core.forms.components.runtime.base]"/>
diff --git a/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/image/v1/image/clientlibs/site/.content.xml b/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/image/v1/image/clientlibs/site/.content.xml
index 82e99bf9f2..2c715a789c 100644
--- a/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/image/v1/image/clientlibs/site/.content.xml
+++ b/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/image/v1/image/clientlibs/site/.content.xml
@@ -3,4 +3,4 @@
jcr:primaryType="cq:ClientLibraryFolder"
allowProxy="{Boolean}true"
categories="[core.forms.components.image.v1.runtime]"
- dependencies="[core.forms.components.runtime.base,core.forms.components.container.v2.runtime]"/>
+ dependencies="[core.forms.components.runtime.base]"/>
diff --git a/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/numberinput/v1/numberinput/clientlibs/site/.content.xml b/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/numberinput/v1/numberinput/clientlibs/site/.content.xml
index 17e7752cd7..ef122b735a 100644
--- a/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/numberinput/v1/numberinput/clientlibs/site/.content.xml
+++ b/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/numberinput/v1/numberinput/clientlibs/site/.content.xml
@@ -3,4 +3,4 @@
jcr:primaryType="cq:ClientLibraryFolder"
allowProxy="{Boolean}true"
categories="[core.forms.components.numberinput.v1.runtime]"
- dependencies="[core.forms.components.runtime.base,core.forms.components.container.v2.runtime]"/>
+ dependencies="[core.forms.components.runtime.base]"/>
diff --git a/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/panelcontainer/v1/panelcontainer/clientlibs/site/.content.xml b/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/panelcontainer/v1/panelcontainer/clientlibs/site/.content.xml
index a885269952..784504a6f0 100644
--- a/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/panelcontainer/v1/panelcontainer/clientlibs/site/.content.xml
+++ b/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/panelcontainer/v1/panelcontainer/clientlibs/site/.content.xml
@@ -3,4 +3,4 @@
jcr:primaryType="cq:ClientLibraryFolder"
allowProxy="{Boolean}true"
categories="[core.forms.components.panelcontainer.v1.runtime]"
- dependencies="[core.forms.components.runtime.base,core.forms.components.container.v2.runtime]"/>
+ dependencies="[core.forms.components.runtime.base]"/>
diff --git a/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/radiobutton/v1/radiobutton/clientlibs/site/.content.xml b/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/radiobutton/v1/radiobutton/clientlibs/site/.content.xml
index 44a4f49ac2..2196efc652 100644
--- a/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/radiobutton/v1/radiobutton/clientlibs/site/.content.xml
+++ b/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/radiobutton/v1/radiobutton/clientlibs/site/.content.xml
@@ -3,4 +3,4 @@
jcr:primaryType="cq:ClientLibraryFolder"
allowProxy="{Boolean}true"
categories="[core.forms.components.radiobutton.v1.runtime]"
- dependencies="[core.forms.components.runtime.base,core.forms.components.container.v2.runtime]" />
+ dependencies="[core.forms.components.runtime.base]" />
diff --git a/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/recaptcha/v1/recaptcha/clientlibs/site/.content.xml b/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/recaptcha/v1/recaptcha/clientlibs/site/.content.xml
index defaa09787..713f93cca4 100644
--- a/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/recaptcha/v1/recaptcha/clientlibs/site/.content.xml
+++ b/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/recaptcha/v1/recaptcha/clientlibs/site/.content.xml
@@ -3,4 +3,4 @@
jcr:primaryType="cq:ClientLibraryFolder"
allowProxy="{Boolean}true"
categories="[core.forms.components.recaptcha.v1.runtime]"
- dependencies="[core.forms.components.runtime.base,core.forms.components.container.v2.runtime]"/>
+ dependencies="[core.forms.components.runtime.base]"/>
diff --git a/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/switch/v1/switch/clientlibs/site/.content.xml b/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/switch/v1/switch/clientlibs/site/.content.xml
index b647b06ae5..cff27f2b8c 100644
--- a/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/switch/v1/switch/clientlibs/site/.content.xml
+++ b/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/switch/v1/switch/clientlibs/site/.content.xml
@@ -3,4 +3,4 @@
jcr:primaryType="cq:ClientLibraryFolder"
allowProxy="{Boolean}true"
categories="[core.forms.components.switch.v1.runtime]"
- dependencies="[core.forms.components.runtime.base,core.forms.components.container.v2.runtime]"/>
+ dependencies="[core.forms.components.runtime.base]"/>
diff --git a/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/tabsontop/v1/tabsontop/clientlibs/site/.content.xml b/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/tabsontop/v1/tabsontop/clientlibs/site/.content.xml
index 3000fb9654..1830c83b63 100644
--- a/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/tabsontop/v1/tabsontop/clientlibs/site/.content.xml
+++ b/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/tabsontop/v1/tabsontop/clientlibs/site/.content.xml
@@ -4,4 +4,4 @@
allowProxy="{Boolean}true"
categories="[core.forms.components.tabs.v1.runtime]"
jsProcessor="[default:none,min:none]"
- dependencies="[core.wcm.components.commons.site.container,core.forms.components.runtime.base,core.forms.components.container.v2.runtime,core.wcm.components.tabs.v1]"/>
+ dependencies="[core.wcm.components.commons.site.container,core.forms.components.runtime.base,core.wcm.components.tabs.v1]"/>
diff --git a/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/telephoneinput/v1/telephoneinput/clientlibs/site/.content.xml b/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/telephoneinput/v1/telephoneinput/clientlibs/site/.content.xml
index 6c54081483..914ab5b3f7 100644
--- a/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/telephoneinput/v1/telephoneinput/clientlibs/site/.content.xml
+++ b/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/telephoneinput/v1/telephoneinput/clientlibs/site/.content.xml
@@ -3,4 +3,4 @@
jcr:primaryType="cq:ClientLibraryFolder"
allowProxy="{Boolean}true"
categories="[core.forms.components.textinput.v1.runtime]"
- dependencies="[core.forms.components.runtime.base,core.forms.components.container.v2.runtime]"/>
+ dependencies="[core.forms.components.runtime.base]"/>
diff --git a/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/termsandconditions/v1/termsandconditions/clientlibs/site/.content.xml b/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/termsandconditions/v1/termsandconditions/clientlibs/site/.content.xml
index 124dfb0e20..9ab04cb9da 100644
--- a/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/termsandconditions/v1/termsandconditions/clientlibs/site/.content.xml
+++ b/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/termsandconditions/v1/termsandconditions/clientlibs/site/.content.xml
@@ -2,4 +2,4 @@
+ dependencies="[core.forms.components.runtime.base]"/>
diff --git a/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/text/v1/text/clientlibs/site/.content.xml b/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/text/v1/text/clientlibs/site/.content.xml
index 566caaede2..0b44cc96a7 100644
--- a/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/text/v1/text/clientlibs/site/.content.xml
+++ b/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/text/v1/text/clientlibs/site/.content.xml
@@ -2,5 +2,4 @@
+ categories="[core.forms.components.text.v1.runtime]"/>
diff --git a/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/textinput/v1/textinput/clientlibs/site/.content.xml b/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/textinput/v1/textinput/clientlibs/site/.content.xml
index 6c54081483..914ab5b3f7 100644
--- a/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/textinput/v1/textinput/clientlibs/site/.content.xml
+++ b/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/textinput/v1/textinput/clientlibs/site/.content.xml
@@ -3,4 +3,4 @@
jcr:primaryType="cq:ClientLibraryFolder"
allowProxy="{Boolean}true"
categories="[core.forms.components.textinput.v1.runtime]"
- dependencies="[core.forms.components.runtime.base,core.forms.components.container.v2.runtime]"/>
+ dependencies="[core.forms.components.runtime.base]"/>
diff --git a/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/verticaltabs/v1/verticaltabs/clientlibs/site/.content.xml b/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/verticaltabs/v1/verticaltabs/clientlibs/site/.content.xml
index 1deae5c883..a770602eab 100644
--- a/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/verticaltabs/v1/verticaltabs/clientlibs/site/.content.xml
+++ b/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/verticaltabs/v1/verticaltabs/clientlibs/site/.content.xml
@@ -4,4 +4,4 @@
allowProxy="{Boolean}true"
categories="[core.forms.components.verticaltabs.v1.runtime]"
jsProcessor="[default:none,min:none]"
- dependencies="[core.wcm.components.commons.site.container,core.forms.components.runtime.base,core.forms.components.container.v2.runtime,core.wcm.components.tabs.v1]"/>
+ dependencies="[core.wcm.components.commons.site.container,core.forms.components.runtime.base,core.wcm.components.tabs.v1]"/>
diff --git a/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/wizard/v1/wizard/clientlibs/site/.content.xml b/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/wizard/v1/wizard/clientlibs/site/.content.xml
index f783007439..1e68df7172 100644
--- a/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/wizard/v1/wizard/clientlibs/site/.content.xml
+++ b/ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/wizard/v1/wizard/clientlibs/site/.content.xml
@@ -19,5 +19,5 @@
allowProxy="{Boolean}true"
categories="[core.forms.components.wizard.v1.runtime]"
jsProcessor="[default:none,min:none]"
- dependencies="[core.forms.components.runtime.base,core.forms.components.container.v2.runtime,core.wcm.components.commons.site.container,core.forms.components.wizard.v1.commons]"
+ dependencies="[core.forms.components.runtime.base,core.wcm.components.commons.site.container,core.forms.components.wizard.v1.commons]"
/>
diff --git a/ui.tests/test-module/package-lock.json b/ui.tests/test-module/package-lock.json
index 5c54673beb..11fbffd3e0 100644
--- a/ui.tests/test-module/package-lock.json
+++ b/ui.tests/test-module/package-lock.json
@@ -14913,7 +14913,8 @@
"version": "10.0.0",
"resolved": "https://registry.npmjs.org/babelify/-/babelify-10.0.0.tgz",
"integrity": "sha512-X40FaxyH7t3X+JFAKvb1H9wooWKLRCi8pg3m8poqtdZaIng+bjzp9RvKQCvRjF9isHiPkXspbbXT/zwXLtwgwg==",
- "dev": true
+ "dev": true,
+ "requires": {}
},
"backo2": {
"version": "1.0.2",
@@ -15926,7 +15927,8 @@
"version": "5.0.8",
"resolved": "https://registry.npmjs.org/cypress-file-upload/-/cypress-file-upload-5.0.8.tgz",
"integrity": "sha512-+8VzNabRk3zG6x8f8BWArF/xA/W0VK4IZNx3MV0jFWrJS/qKn8eHfa5nU73P9fOQAgwHFJx7zjg4lwOnljMO8g==",
- "dev": true
+ "dev": true,
+ "requires": {}
},
"cypress-iframe": {
"version": "1.0.1",
@@ -20786,7 +20788,8 @@
"version": "7.4.6",
"resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz",
"integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==",
- "dev": true
+ "dev": true,
+ "requires": {}
},
"xhr": {
"version": "2.6.0",
diff --git a/ui.tests/test-module/specs/customformcontainer/customformcontainer.spec.js b/ui.tests/test-module/specs/customformcontainer/customformcontainer.spec.js
new file mode 100644
index 0000000000..96db7d415c
--- /dev/null
+++ b/ui.tests/test-module/specs/customformcontainer/customformcontainer.spec.js
@@ -0,0 +1,38 @@
+/*
+ *
+ * ADOBE CONFIDENTIAL
+ * ___________________
+ *
+ * Copyright 2023 Adobe Systems Incorporated
+ * All Rights Reserved.
+ *
+ * NOTICE: All information contained herein is, and remains
+ * the property of Adobe Systems Incorporated and its suppliers,
+ * if any. The intellectual and technical concepts contained
+ * herein are proprietary to Adobe Systems Incorporated and its
+ * suppliers and are protected by trade secret or copyright law.
+ * Dissemination of this information or reproduction of this material
+ * is strictly forbidden unless prior written permission is obtained
+ * from Adobe Systems Incorporated.
+ */
+
+describe('Custom form container with loader Test', () => {
+ const formPath = "/content/forms/af/core-components-it/samples/container/custom.html";
+ let formContainer = null;
+
+ it("should show loading icon during submit", () => {
+ cy.previewForm(formPath).then(p => {
+ formContainer = p;
+ expect(formContainer, "formcontainer is initialized").to.not.be.null;
+ });
+
+ // Intercept the form submission
+ cy.intercept('POST', '**af/submit**').as('formSubmit');
+
+ // Click the button and verify that the loading icon is added
+ cy.get(`.cmp-adaptiveform-button__widget`).click();
+
+ // Verify that the loading class is removed from the form container after submission success or failure
+ cy.get('[data-cmp-adaptiveform-container-loader]').should('not.have.class', 'cmp-adaptiveform-container--loading');
+ });
+})