@icvdeveloper/common-module 0.0.127 → 0.0.128
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -6
- package/dist/module.json +1 -1
- package/dist/runtime/assets/svg/answer.svg +14 -14
- package/dist/runtime/assets/svg/avatar.svg +1 -1
- package/dist/runtime/assets/svg/bell-icon.svg +3 -3
- package/dist/runtime/assets/svg/checkmark-icon.svg +1 -1
- package/dist/runtime/assets/svg/close-icon.svg +1 -1
- package/dist/runtime/assets/svg/icon-avatar.svg +1 -1
- package/dist/runtime/assets/svg/icon-chevron.svg +4 -4
- package/dist/runtime/assets/svg/icon-circle-plus.svg +1 -1
- package/dist/runtime/assets/svg/icon-close.svg +1 -1
- package/dist/runtime/assets/svg/icon-info.svg +2 -2
- package/dist/runtime/assets/svg/icon-new-window.svg +11 -11
- package/dist/runtime/assets/svg/icon-offline.svg +3 -3
- package/dist/runtime/assets/svg/icon-online.svg +3 -3
- package/dist/runtime/assets/svg/icon-person.svg +2 -2
- package/dist/runtime/assets/svg/icon-play.svg +2 -2
- package/dist/runtime/assets/svg/icon-star-filled.svg +29 -29
- package/dist/runtime/assets/svg/icon-star.svg +24 -24
- package/dist/runtime/assets/svg/icon-video-chat.svg +14 -14
- package/dist/runtime/assets/svg/icon-website.svg +2 -2
- package/dist/runtime/assets/svg/icon-zoom.svg +10 -10
- package/dist/runtime/assets/svg/notification-icon.svg +32 -32
- package/dist/runtime/assets/svg/offline-icon.svg +1 -1
- package/dist/runtime/assets/svg/online-icon.svg +3 -3
- package/dist/runtime/assets/svg/peer2peer.svg +3 -3
- package/dist/runtime/assets/svg/phone.svg +1 -1
- package/dist/runtime/assets/svg/plus-icon.svg +1 -1
- package/dist/runtime/assets/svg/red-icon.svg +3 -3
- package/dist/runtime/assets/svg/reject.svg +14 -14
- package/dist/runtime/assets/svg/search-icon.svg +3 -3
- package/dist/runtime/components/affiliates/AffiliatePage.vue +329 -329
- package/dist/runtime/components/agenda/AgendaList.vue +259 -259
- package/dist/runtime/components/agenda/AgendaTabbed.vue +305 -305
- package/dist/runtime/components/agenda/components/AgendaListAccordion.vue +67 -67
- package/dist/runtime/components/agenda/components/Calendar.vue +67 -67
- package/dist/runtime/components/agenda/components/InfoLink.vue +56 -56
- package/dist/runtime/components/agenda/components/PlayIcon.vue +49 -49
- package/dist/runtime/components/agenda/components/PresentationLink.vue +137 -137
- package/dist/runtime/components/agenda/components/Sponsor.vue +132 -132
- package/dist/runtime/components/auth/LoginFullWidth.vue +78 -78
- package/dist/runtime/components/auth/PasswordReset.vue +60 -60
- package/dist/runtime/components/auth/Registration.vue +27 -27
- package/dist/runtime/components/auth/Ucc.vue +129 -129
- package/dist/runtime/components/core/Accordion.vue +97 -97
- package/dist/runtime/components/core/CountdownTimer.vue +336 -336
- package/dist/runtime/components/core/DynamicHtml.vue +1 -1
- package/dist/runtime/components/core/Modal.vue +111 -111
- package/dist/runtime/components/core/Navbar.vue +154 -154
- package/dist/runtime/components/core/SvgIcon.vue +157 -157
- package/dist/runtime/components/core/ZoomModal.vue +37 -37
- package/dist/runtime/components/events/EventHeader.vue +133 -133
- package/dist/runtime/components/events/ListEvents.vue +554 -554
- package/dist/runtime/components/forms/AlertBox.vue +21 -21
- package/dist/runtime/components/forms/ErrorField.vue +17 -17
- package/dist/runtime/components/forms/Message.vue +27 -27
- package/dist/runtime/components/forms/SearchInput.vue +38 -38
- package/dist/runtime/components/forms/SupportForm.vue +112 -112
- package/dist/runtime/components/forms/SwitchInput.vue +42 -42
- package/dist/runtime/components/forms/TextArea.vue +26 -26
- package/dist/runtime/components/forms/TextInput.vue +28 -28
- package/dist/runtime/components/layouts/Accordion.vue +78 -78
- package/dist/runtime/components/media/ArchivePlayerAndContentContainer.vue +160 -160
- package/dist/runtime/components/media/ArchiveVideoPlayer.vue +186 -186
- package/dist/runtime/components/media/PlayerAndContentContainer.vue +183 -183
- package/dist/runtime/components/media/WebcastVideoPlayer.vue +140 -140
- package/dist/runtime/components/media/components/AgendaPanel.vue +43 -43
- package/dist/runtime/components/media/components/ArchiveMediaContainer.vue +91 -91
- package/dist/runtime/components/media/components/CeCreditNotification.vue +95 -95
- package/dist/runtime/components/media/components/ContentAccordion.vue +63 -63
- package/dist/runtime/components/media/components/ContentArea.vue +158 -158
- package/dist/runtime/components/media/components/ContentTabs.vue +231 -231
- package/dist/runtime/components/media/components/DocumentsPanel.vue +31 -31
- package/dist/runtime/components/media/components/JsonApi.vue +31 -31
- package/dist/runtime/components/media/components/MediaContainer.vue +63 -63
- package/dist/runtime/components/media/components/OverviewPanel.vue +52 -52
- package/dist/runtime/components/media/components/PresentersPanel.vue +52 -52
- package/dist/runtime/components/media/components/SessionReporting.vue +102 -102
- package/dist/runtime/components/media/components/SponsorsPanel.vue +71 -71
- package/dist/runtime/components/media/components/WindowContent.vue +92 -92
- package/dist/runtime/components/media/components/WindowSlide.vue +72 -72
- package/dist/runtime/components/presenters/PresenterListing.vue +164 -164
- package/dist/runtime/components/presenters/PresenterModal.vue +223 -223
- package/dist/runtime/components/profile/Profile.vue +149 -149
- package/dist/runtime/components/profile/components/Sidebar.vue +27 -27
- package/dist/runtime/components/profile/components/SidebarNavItem.vue +39 -39
- package/dist/runtime/components/profile/tabs/Favorites.vue +21 -21
- package/dist/runtime/components/profile/tabs/GeneralInformation.vue +122 -122
- package/dist/runtime/components/profile/tabs/ProfileImage.vue +75 -75
- package/dist/runtime/components/support/FAQAccordion.vue +140 -140
- package/dist/runtime/composables/useApi.mjs +3 -1
- package/package.json +1 -1
|
@@ -1,122 +1,122 @@
|
|
|
1
|
-
<script lang="ts" setup>
|
|
2
|
-
import { storeToRefs } from "pinia";
|
|
3
|
-
import { ref, reactive } from "vue";
|
|
4
|
-
import { useAuthStore } from "../../../store/auth";
|
|
5
|
-
|
|
6
|
-
const { user } = storeToRefs(useAuthStore());
|
|
7
|
-
const formData = reactive({
|
|
8
|
-
title: user.value.title,
|
|
9
|
-
name: user.value.name,
|
|
10
|
-
company: user.value.company,
|
|
11
|
-
linkedin_url: user.value.linkedin_url,
|
|
12
|
-
twitter_url: user.value.twitter_url,
|
|
13
|
-
video_chat: user.value.video_chat ?? false,
|
|
14
|
-
});
|
|
15
|
-
const errors = ref<[]>([]);
|
|
16
|
-
const wasSaved = ref<boolean>(false);
|
|
17
|
-
|
|
18
|
-
// methods
|
|
19
|
-
const { update } = useAuthStore();
|
|
20
|
-
|
|
21
|
-
const toggleChat = (value: boolean) => {
|
|
22
|
-
formData.video_chat = value;
|
|
23
|
-
};
|
|
24
|
-
|
|
25
|
-
const handleForm = () => {
|
|
26
|
-
errors.value = [];
|
|
27
|
-
|
|
28
|
-
update(formData)
|
|
29
|
-
.then(() => {
|
|
30
|
-
wasSaved.value = true;
|
|
31
|
-
})
|
|
32
|
-
.catch((error) => {
|
|
33
|
-
if (error.response === 422) {
|
|
34
|
-
errors.value = error.response.data.errors;
|
|
35
|
-
}
|
|
36
|
-
});
|
|
37
|
-
};
|
|
38
|
-
</script>
|
|
39
|
-
|
|
40
|
-
<template>
|
|
41
|
-
<div class="flex justify-between flex-col">
|
|
42
|
-
<CommonAlertBox v-if="errors" :errors="errors" />
|
|
43
|
-
|
|
44
|
-
<div>
|
|
45
|
-
<div class="mb-4">
|
|
46
|
-
<label class="block text-grey-darker text-sm font-bold mb-2">
|
|
47
|
-
Title
|
|
48
|
-
</label>
|
|
49
|
-
<CommonTextInput
|
|
50
|
-
v-model="formData.title"
|
|
51
|
-
class="shadow appearance-none border rounded w-full py-2 px-3 text-grey-darker leading-tight focus:outline-none focus:shadow-outline"
|
|
52
|
-
type="text"
|
|
53
|
-
placeholder="Title"
|
|
54
|
-
/>
|
|
55
|
-
</div>
|
|
56
|
-
<div class="mb-4">
|
|
57
|
-
<label class="block text-grey-darker text-sm font-bold mb-2">
|
|
58
|
-
Name
|
|
59
|
-
</label>
|
|
60
|
-
<CommonTextInput
|
|
61
|
-
v-model="formData.name"
|
|
62
|
-
class="shadow appearance-none border rounded w-full py-2 px-3 text-grey-darker leading-tight focus:outline-none focus:shadow-outline"
|
|
63
|
-
type="text"
|
|
64
|
-
placeholder="Name"
|
|
65
|
-
/>
|
|
66
|
-
</div>
|
|
67
|
-
<div class="mb-4">
|
|
68
|
-
<label class="block text-grey-darker text-sm font-bold mb-2">
|
|
69
|
-
Company
|
|
70
|
-
</label>
|
|
71
|
-
<CommonTextInput
|
|
72
|
-
v-model="formData.company"
|
|
73
|
-
class="shadow appearance-none border rounded w-full py-2 px-3 text-grey-darker leading-tight focus:outline-none focus:shadow-outline"
|
|
74
|
-
type="text"
|
|
75
|
-
placeholder="Company"
|
|
76
|
-
/>
|
|
77
|
-
</div>
|
|
78
|
-
<div class="mb-4">
|
|
79
|
-
<label class="block text-grey-darker text-sm font-bold mb-2">
|
|
80
|
-
LinkedIn
|
|
81
|
-
</label>
|
|
82
|
-
<CommonTextInput
|
|
83
|
-
v-model="formData.linkedin_url"
|
|
84
|
-
class="shadow appearance-none border rounded w-full py-2 px-3 text-grey-darker leading-tight focus:outline-none focus:shadow-outline"
|
|
85
|
-
type="text"
|
|
86
|
-
placeholder="LinkedIn URL"
|
|
87
|
-
/>
|
|
88
|
-
</div>
|
|
89
|
-
<div class="mb-4">
|
|
90
|
-
<label class="block text-grey-darker text-sm font-bold mb-2">
|
|
91
|
-
Twitter
|
|
92
|
-
</label>
|
|
93
|
-
<CommonTextInput
|
|
94
|
-
v-model="formData.twitter_url"
|
|
95
|
-
class="shadow appearance-none border rounded w-full py-2 px-3 text-grey-darker leading-tight focus:outline-none focus:shadow-outline"
|
|
96
|
-
type="text"
|
|
97
|
-
placeholder="Twitter URL"
|
|
98
|
-
/>
|
|
99
|
-
</div>
|
|
100
|
-
|
|
101
|
-
<div class="mb-4">
|
|
102
|
-
<CommonSwitchInput
|
|
103
|
-
:is-enabled="formData.video_chat"
|
|
104
|
-
@toggle="toggleChat"
|
|
105
|
-
>
|
|
106
|
-
Enable Video Chat
|
|
107
|
-
</CommonSwitchInput>
|
|
108
|
-
</div>
|
|
109
|
-
</div>
|
|
110
|
-
<div>
|
|
111
|
-
<p v-if="wasSaved" class="text-green">Your profile was saved!</p>
|
|
112
|
-
|
|
113
|
-
<button
|
|
114
|
-
class="bg-blue hover:bg-blue-dark text-white font-bold py-2 px-4 rounded focus:outline-none focus:shadow-outline"
|
|
115
|
-
type="button"
|
|
116
|
-
@click="handleForm"
|
|
117
|
-
>
|
|
118
|
-
Save
|
|
119
|
-
</button>
|
|
120
|
-
</div>
|
|
121
|
-
</div>
|
|
122
|
-
</template>
|
|
1
|
+
<script lang="ts" setup>
|
|
2
|
+
import { storeToRefs } from "pinia";
|
|
3
|
+
import { ref, reactive } from "vue";
|
|
4
|
+
import { useAuthStore } from "../../../store/auth";
|
|
5
|
+
|
|
6
|
+
const { user } = storeToRefs(useAuthStore());
|
|
7
|
+
const formData = reactive({
|
|
8
|
+
title: user.value.title,
|
|
9
|
+
name: user.value.name,
|
|
10
|
+
company: user.value.company,
|
|
11
|
+
linkedin_url: user.value.linkedin_url,
|
|
12
|
+
twitter_url: user.value.twitter_url,
|
|
13
|
+
video_chat: user.value.video_chat ?? false,
|
|
14
|
+
});
|
|
15
|
+
const errors = ref<[]>([]);
|
|
16
|
+
const wasSaved = ref<boolean>(false);
|
|
17
|
+
|
|
18
|
+
// methods
|
|
19
|
+
const { update } = useAuthStore();
|
|
20
|
+
|
|
21
|
+
const toggleChat = (value: boolean) => {
|
|
22
|
+
formData.video_chat = value;
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
const handleForm = () => {
|
|
26
|
+
errors.value = [];
|
|
27
|
+
|
|
28
|
+
update(formData)
|
|
29
|
+
.then(() => {
|
|
30
|
+
wasSaved.value = true;
|
|
31
|
+
})
|
|
32
|
+
.catch((error) => {
|
|
33
|
+
if (error.response === 422) {
|
|
34
|
+
errors.value = error.response.data.errors;
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
};
|
|
38
|
+
</script>
|
|
39
|
+
|
|
40
|
+
<template>
|
|
41
|
+
<div class="flex justify-between flex-col">
|
|
42
|
+
<CommonAlertBox v-if="errors" :errors="errors" />
|
|
43
|
+
|
|
44
|
+
<div>
|
|
45
|
+
<div class="mb-4">
|
|
46
|
+
<label class="block text-grey-darker text-sm font-bold mb-2">
|
|
47
|
+
Title
|
|
48
|
+
</label>
|
|
49
|
+
<CommonTextInput
|
|
50
|
+
v-model="formData.title"
|
|
51
|
+
class="shadow appearance-none border rounded w-full py-2 px-3 text-grey-darker leading-tight focus:outline-none focus:shadow-outline"
|
|
52
|
+
type="text"
|
|
53
|
+
placeholder="Title"
|
|
54
|
+
/>
|
|
55
|
+
</div>
|
|
56
|
+
<div class="mb-4">
|
|
57
|
+
<label class="block text-grey-darker text-sm font-bold mb-2">
|
|
58
|
+
Name
|
|
59
|
+
</label>
|
|
60
|
+
<CommonTextInput
|
|
61
|
+
v-model="formData.name"
|
|
62
|
+
class="shadow appearance-none border rounded w-full py-2 px-3 text-grey-darker leading-tight focus:outline-none focus:shadow-outline"
|
|
63
|
+
type="text"
|
|
64
|
+
placeholder="Name"
|
|
65
|
+
/>
|
|
66
|
+
</div>
|
|
67
|
+
<div class="mb-4">
|
|
68
|
+
<label class="block text-grey-darker text-sm font-bold mb-2">
|
|
69
|
+
Company
|
|
70
|
+
</label>
|
|
71
|
+
<CommonTextInput
|
|
72
|
+
v-model="formData.company"
|
|
73
|
+
class="shadow appearance-none border rounded w-full py-2 px-3 text-grey-darker leading-tight focus:outline-none focus:shadow-outline"
|
|
74
|
+
type="text"
|
|
75
|
+
placeholder="Company"
|
|
76
|
+
/>
|
|
77
|
+
</div>
|
|
78
|
+
<div class="mb-4">
|
|
79
|
+
<label class="block text-grey-darker text-sm font-bold mb-2">
|
|
80
|
+
LinkedIn
|
|
81
|
+
</label>
|
|
82
|
+
<CommonTextInput
|
|
83
|
+
v-model="formData.linkedin_url"
|
|
84
|
+
class="shadow appearance-none border rounded w-full py-2 px-3 text-grey-darker leading-tight focus:outline-none focus:shadow-outline"
|
|
85
|
+
type="text"
|
|
86
|
+
placeholder="LinkedIn URL"
|
|
87
|
+
/>
|
|
88
|
+
</div>
|
|
89
|
+
<div class="mb-4">
|
|
90
|
+
<label class="block text-grey-darker text-sm font-bold mb-2">
|
|
91
|
+
Twitter
|
|
92
|
+
</label>
|
|
93
|
+
<CommonTextInput
|
|
94
|
+
v-model="formData.twitter_url"
|
|
95
|
+
class="shadow appearance-none border rounded w-full py-2 px-3 text-grey-darker leading-tight focus:outline-none focus:shadow-outline"
|
|
96
|
+
type="text"
|
|
97
|
+
placeholder="Twitter URL"
|
|
98
|
+
/>
|
|
99
|
+
</div>
|
|
100
|
+
|
|
101
|
+
<div class="mb-4">
|
|
102
|
+
<CommonSwitchInput
|
|
103
|
+
:is-enabled="formData.video_chat"
|
|
104
|
+
@toggle="toggleChat"
|
|
105
|
+
>
|
|
106
|
+
Enable Video Chat
|
|
107
|
+
</CommonSwitchInput>
|
|
108
|
+
</div>
|
|
109
|
+
</div>
|
|
110
|
+
<div>
|
|
111
|
+
<p v-if="wasSaved" class="text-green">Your profile was saved!</p>
|
|
112
|
+
|
|
113
|
+
<button
|
|
114
|
+
class="bg-blue hover:bg-blue-dark text-white font-bold py-2 px-4 rounded focus:outline-none focus:shadow-outline"
|
|
115
|
+
type="button"
|
|
116
|
+
@click="handleForm"
|
|
117
|
+
>
|
|
118
|
+
Save
|
|
119
|
+
</button>
|
|
120
|
+
</div>
|
|
121
|
+
</div>
|
|
122
|
+
</template>
|
|
@@ -1,75 +1,75 @@
|
|
|
1
|
-
<script lang="ts" setup>
|
|
2
|
-
import { ref, reactive } from "vue";
|
|
3
|
-
import { storeToRefs } from "pinia";
|
|
4
|
-
import { useAuthStore } from "../../../store/auth";
|
|
5
|
-
|
|
6
|
-
const { user } = storeToRefs(useAuthStore());
|
|
7
|
-
const wasSaved = ref<boolean>(false);
|
|
8
|
-
const errors = ref<[]>([]);
|
|
9
|
-
const formData = reactive({
|
|
10
|
-
profile_image: null,
|
|
11
|
-
});
|
|
12
|
-
|
|
13
|
-
// methods
|
|
14
|
-
const { update } = useAuthStore();
|
|
15
|
-
|
|
16
|
-
const onFileChanged = (e) => {
|
|
17
|
-
errors.value = [];
|
|
18
|
-
|
|
19
|
-
const files = e.target.files || e.dataTransfer.files;
|
|
20
|
-
|
|
21
|
-
formData.profile_image = files[0];
|
|
22
|
-
|
|
23
|
-
update(formData)
|
|
24
|
-
.then(() => {
|
|
25
|
-
wasSaved.value = true;
|
|
26
|
-
})
|
|
27
|
-
.catch((error) => {
|
|
28
|
-
if (error.response.status === 422) {
|
|
29
|
-
errors.value = error.response.data.errors;
|
|
30
|
-
}
|
|
31
|
-
});
|
|
32
|
-
};
|
|
33
|
-
</script>
|
|
34
|
-
|
|
35
|
-
<template>
|
|
36
|
-
<div>
|
|
37
|
-
<div>
|
|
38
|
-
<CommonAlertBox :errors="errors" />
|
|
39
|
-
|
|
40
|
-
<img
|
|
41
|
-
v-if="user.profile_image"
|
|
42
|
-
:src="user.profile_image"
|
|
43
|
-
width="100"
|
|
44
|
-
height="100"
|
|
45
|
-
alt=""
|
|
46
|
-
/>
|
|
47
|
-
|
|
48
|
-
<div class="overflow-hidden relative w-64 mt-4 mb-4">
|
|
49
|
-
<p v-if="wasSaved" class="text-green">Your profile Image was saved!</p>
|
|
50
|
-
|
|
51
|
-
<button
|
|
52
|
-
class="rounded bg-blue hover:bg-blue-light text-white font-bold py-2 px-4 w-full inline-flex items-center"
|
|
53
|
-
>
|
|
54
|
-
<svg
|
|
55
|
-
fill="#FFF"
|
|
56
|
-
height="18"
|
|
57
|
-
viewBox="0 0 24 24"
|
|
58
|
-
width="18"
|
|
59
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
60
|
-
>
|
|
61
|
-
<path d="M0 0h24v24H0z" fill="none" />
|
|
62
|
-
<path d="M9 16h6v-6h4l-7-7-7 7h4zm-4 2h14v2H5z" />
|
|
63
|
-
</svg>
|
|
64
|
-
<span class="ml-2">Change Profile Image</span>
|
|
65
|
-
</button>
|
|
66
|
-
<input
|
|
67
|
-
class="cursor-pointer absolute block py-2 px-4 w-full opacity-0 pin-r pin-t"
|
|
68
|
-
type="file"
|
|
69
|
-
accept="image/*"
|
|
70
|
-
@change="onFileChanged"
|
|
71
|
-
/>
|
|
72
|
-
</div>
|
|
73
|
-
</div>
|
|
74
|
-
</div>
|
|
75
|
-
</template>
|
|
1
|
+
<script lang="ts" setup>
|
|
2
|
+
import { ref, reactive } from "vue";
|
|
3
|
+
import { storeToRefs } from "pinia";
|
|
4
|
+
import { useAuthStore } from "../../../store/auth";
|
|
5
|
+
|
|
6
|
+
const { user } = storeToRefs(useAuthStore());
|
|
7
|
+
const wasSaved = ref<boolean>(false);
|
|
8
|
+
const errors = ref<[]>([]);
|
|
9
|
+
const formData = reactive({
|
|
10
|
+
profile_image: null,
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
// methods
|
|
14
|
+
const { update } = useAuthStore();
|
|
15
|
+
|
|
16
|
+
const onFileChanged = (e) => {
|
|
17
|
+
errors.value = [];
|
|
18
|
+
|
|
19
|
+
const files = e.target.files || e.dataTransfer.files;
|
|
20
|
+
|
|
21
|
+
formData.profile_image = files[0];
|
|
22
|
+
|
|
23
|
+
update(formData)
|
|
24
|
+
.then(() => {
|
|
25
|
+
wasSaved.value = true;
|
|
26
|
+
})
|
|
27
|
+
.catch((error) => {
|
|
28
|
+
if (error.response.status === 422) {
|
|
29
|
+
errors.value = error.response.data.errors;
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
};
|
|
33
|
+
</script>
|
|
34
|
+
|
|
35
|
+
<template>
|
|
36
|
+
<div>
|
|
37
|
+
<div>
|
|
38
|
+
<CommonAlertBox :errors="errors" />
|
|
39
|
+
|
|
40
|
+
<img
|
|
41
|
+
v-if="user.profile_image"
|
|
42
|
+
:src="user.profile_image"
|
|
43
|
+
width="100"
|
|
44
|
+
height="100"
|
|
45
|
+
alt=""
|
|
46
|
+
/>
|
|
47
|
+
|
|
48
|
+
<div class="overflow-hidden relative w-64 mt-4 mb-4">
|
|
49
|
+
<p v-if="wasSaved" class="text-green">Your profile Image was saved!</p>
|
|
50
|
+
|
|
51
|
+
<button
|
|
52
|
+
class="rounded bg-blue hover:bg-blue-light text-white font-bold py-2 px-4 w-full inline-flex items-center"
|
|
53
|
+
>
|
|
54
|
+
<svg
|
|
55
|
+
fill="#FFF"
|
|
56
|
+
height="18"
|
|
57
|
+
viewBox="0 0 24 24"
|
|
58
|
+
width="18"
|
|
59
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
60
|
+
>
|
|
61
|
+
<path d="M0 0h24v24H0z" fill="none" />
|
|
62
|
+
<path d="M9 16h6v-6h4l-7-7-7 7h4zm-4 2h14v2H5z" />
|
|
63
|
+
</svg>
|
|
64
|
+
<span class="ml-2">Change Profile Image</span>
|
|
65
|
+
</button>
|
|
66
|
+
<input
|
|
67
|
+
class="cursor-pointer absolute block py-2 px-4 w-full opacity-0 pin-r pin-t"
|
|
68
|
+
type="file"
|
|
69
|
+
accept="image/*"
|
|
70
|
+
@change="onFileChanged"
|
|
71
|
+
/>
|
|
72
|
+
</div>
|
|
73
|
+
</div>
|
|
74
|
+
</div>
|
|
75
|
+
</template>
|