diff --git a/src/entries/vue-ui-model.ts b/src/entries/vue-ui-model.ts
index 54a346ddf0..249feaa231 100644
--- a/src/entries/vue-ui-model.ts
+++ b/src/entries/vue-ui-model.ts
@@ -94,6 +94,7 @@ export { BrandInfo } from "../vue/components/brand-info.vue";
export { NotifierComponent } from "../vue/components/notifier.vue";
export { ComponentsContainer } from "../vue/components/container.vue";
export { CharacterCounterComponent } from "../vue/components/character-counter.vue";
+export { LoadingIndicatorComponent } from "../vue/components/loading-indicator.vue";
import { SurveyModel } from "survey-core";
diff --git a/src/vue/components/loading-indicator.vue b/src/vue/components/loading-indicator.vue
new file mode 100644
index 0000000000..f4fe35fa18
--- /dev/null
+++ b/src/vue/components/loading-indicator.vue
@@ -0,0 +1,15 @@
+
+
+
+
+
+
diff --git a/src/vue/file.vue b/src/vue/file.vue
index 05d4c28512..f75541497f 100644
--- a/src/vue/file.vue
+++ b/src/vue/file.vue
@@ -11,7 +11,7 @@
:aria-label="question.ariaLabel"
:aria-invalid="question.ariaInvalid"
:aria-describedby="question.ariaDescribedBy"
- :multiple="question.multipleRendered"
+ :multiple="question.allowMultiple"
v-bind:title="question.inputTitle"
v-bind:accept="question.acceptedTypes"
:capture="question.renderCapture"
@@ -22,40 +22,50 @@
disabled
:id="question.inputId"
:class="question.getReadOnlyFileCss()"
- :multiple="question.multipleRendered"
+ :multiple="question.allowMultiple"
:placeholder="question.title"
style="color: transparent"
/>
-
-
-
{{ question.renderedPlaceholder }}
-
-
+
{{ question.noFileChosenCaption }}
+
+
-
+
-
+
@@ -87,26 +108,45 @@
-
-
-
{{ question.removeFileCaption }}
-
+
+
+ {{
+ question.removeFileCaption
+ }}
+
-
+
@@ -119,9 +159,17 @@
@click="question.doClean"
>
{{ question.clearButtonCaption }}
-
+
-
+