@fishawack/lab-velocity 1.11.0 → 2.0.0-beta.1

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.
Files changed (95) hide show
  1. package/README.md +13 -7
  2. package/_base.scss +1 -1
  3. package/_defaults.scss +2 -3
  4. package/_variables.scss +16 -18
  5. package/components/_alert.scss +2 -2
  6. package/components/_basic.scss +5 -4
  7. package/components/_breadcrumbs.scss +7 -8
  8. package/components/_button.scss +11 -12
  9. package/components/_cascader.scss +1 -1
  10. package/components/_checkbox.scss +27 -26
  11. package/components/_chip.scss +24 -0
  12. package/components/_collapse.scss +2 -3
  13. package/components/_datepicker.scss +7 -6
  14. package/components/_footer.scss +1 -1
  15. package/components/_form.scss +6 -4
  16. package/components/_header.scss +4 -5
  17. package/components/_icon.scss +4 -3
  18. package/components/_inputNumber.scss +4 -3
  19. package/components/_link.scss +7 -7
  20. package/components/_loader.scss +3 -4
  21. package/components/_menu.scss +22 -22
  22. package/components/_pageTitle.scss +3 -3
  23. package/components/_permissionLegend.scss +18 -0
  24. package/components/_select.scss +3 -2
  25. package/components/_sidebar.scss +5 -6
  26. package/components/_switch.scss +2 -2
  27. package/components/_table.scss +3 -3
  28. package/components/_tooltip.scss +2 -2
  29. package/components/_typography.scss +71 -62
  30. package/components/_upload.scss +1 -1
  31. package/components/_wysiwyg.scss +3 -2
  32. package/components/_wysiwyg2.scss +37 -31
  33. package/general.scss +1 -2
  34. package/index.js +38 -30
  35. package/modules/_AuthModule.scss +32 -29
  36. package/modules/_AuthVariables.scss +3 -3
  37. package/modules/_modal.scss +3 -3
  38. package/package.json +109 -102
  39. package/vendor.scss +2 -2
  40. package/AuthModule/components/AuthModal.vue +0 -110
  41. package/AuthModule/components/VPasswordValidation.vue +0 -66
  42. package/AuthModule/js/AuthAxios.js +0 -59
  43. package/AuthModule/js/AuthRoutes.js +0 -186
  44. package/AuthModule/js/AuthStore.js +0 -99
  45. package/AuthModule/js/FakeAPI.js +0 -84
  46. package/AuthModule/routes/account-exists.vue +0 -35
  47. package/AuthModule/routes/change-password.vue +0 -162
  48. package/AuthModule/routes/container.vue +0 -38
  49. package/AuthModule/routes/expired-reset.vue +0 -76
  50. package/AuthModule/routes/expired-verification.vue +0 -100
  51. package/AuthModule/routes/force-reset.vue +0 -142
  52. package/AuthModule/routes/forgot.vue +0 -87
  53. package/AuthModule/routes/login.vue +0 -138
  54. package/AuthModule/routes/logincallback.vue +0 -46
  55. package/AuthModule/routes/loginheadless.vue +0 -16
  56. package/AuthModule/routes/loginsso.vue +0 -127
  57. package/AuthModule/routes/logout.vue +0 -21
  58. package/AuthModule/routes/register.vue +0 -151
  59. package/AuthModule/routes/reset.vue +0 -123
  60. package/AuthModule/routes/success-forgot.vue +0 -117
  61. package/AuthModule/routes/success-reset.vue +0 -35
  62. package/AuthModule/routes/success-verify.vue +0 -29
  63. package/AuthModule/routes/verify.vue +0 -110
  64. package/Icon.vue +0 -33
  65. package/Svg.vue +0 -40
  66. package/basic/Button.vue +0 -111
  67. package/basic/link.vue +0 -63
  68. package/form/Cascader.vue +0 -85
  69. package/form/Checkbox.vue +0 -39
  70. package/form/CheckboxGroup.vue +0 -69
  71. package/form/DatePicker.vue +0 -100
  72. package/form/InputNumber.vue +0 -90
  73. package/form/Select.vue +0 -110
  74. package/form/Switch.vue +0 -63
  75. package/form/Upload.vue +0 -103
  76. package/form/Wysiwyg.vue +0 -127
  77. package/form/Wysiwyg2.vue +0 -278
  78. package/form/basic.vue +0 -88
  79. package/form/color.vue +0 -22
  80. package/form/file.vue +0 -89
  81. package/form/input.js +0 -79
  82. package/form/input.vue +0 -85
  83. package/layout/Alert.vue +0 -38
  84. package/layout/Footer.vue +0 -35
  85. package/layout/Header.vue +0 -15
  86. package/layout/Loader.vue +0 -39
  87. package/layout/Tooltip.vue +0 -46
  88. package/layout/pageTitle.vue +0 -18
  89. package/layout/sideBar.vue +0 -27
  90. package/navigation/Breadcrumbs.vue +0 -32
  91. package/navigation/BreadcrumbsItem.vue +0 -19
  92. package/navigation/Menu.vue +0 -16
  93. package/navigation/MenuItem.vue +0 -20
  94. package/navigation/MenuItemGroup.vue +0 -20
  95. package/navigation/SubMenu.vue +0 -20
@@ -1,100 +0,0 @@
1
- <template>
2
- <h1 class="h2 h2--small">Verification link expired</h1>
3
-
4
- <form class="form" @submit.prevent="submit">
5
- <p class="AM-mt-2 AM-mb-0 AM-color-highlight">
6
- <strong class="">Email: {{ form?.email }}</strong>
7
- </p>
8
- <p class="AM-mt-0.5">
9
- This email verification link has expired. Not to worry, we can email you a new one.
10
- </p>
11
-
12
- <el-input
13
- class="AM-mt-2 AM-mb-2.5 hidden"
14
- v-model="form.email"
15
- label="Email address"
16
- name="email"
17
- :error="form.errors"
18
- type="email"
19
- placeholder="Email "
20
- required
21
- />
22
-
23
- <elButton
24
- type="primary"
25
- :disabled="form.processing"
26
- :loading="form.processing"
27
- @click="onSubmit"
28
- >
29
- Re-send verification link
30
- </elButton>
31
- </form>
32
-
33
- <p class="disclaimer AM-mt-3">
34
- Having trouble singing in?
35
- <a :href="contact" class="underline">Contact us</a>
36
- </p>
37
- </template>
38
-
39
- <script>
40
- import Form from "form-backend-validation";
41
-
42
- export default {
43
- components: {
44
- elInput: require('../../form/basic.vue').default,
45
- elButton: require('../../basic/Button.vue').default,
46
- },
47
- data: () => ({
48
- form: new Form(
49
- {
50
- email: "",
51
- },
52
- { resetOnSuccess: false }
53
- ),
54
- notification: null,
55
- contact: process.env.HYDRATE_CONTACT ?? 'mailto:EP@avalerehealth.com',
56
- }),
57
-
58
- methods: {
59
- async onSubmit() {
60
- try {
61
- if (this.notification) {
62
- this.notification.close();
63
- this.notification = null;
64
- }
65
-
66
- await this.form.post("/email/verification-notification");
67
-
68
- this.$notify.success({
69
- message: "Email has been re-sent",
70
- duration: 10000,
71
- class: 'el-notification--success el-notification--right-override'
72
- });
73
- } catch (e) {
74
- if (e.response && e.response.status === 429) {
75
- this.notification = this.$notify({
76
- type: "warning",
77
- message: 'Please allow 10 minutes before re-requesting',
78
- duration: 0,
79
- class: 'el-notification--warning el-notification--right-override'
80
- });
81
- } else if (e.response && e.response.status === 422) {
82
- this.notification = this.$notify({
83
- type: "error",
84
- message: e.response.data.message,
85
- duration: 0,
86
- class: 'el-notification--error el-notification--right-override'
87
- });
88
- }
89
- else {
90
- this.$root.errors(e);
91
- }
92
- }
93
- },
94
- },
95
-
96
- async mounted() {
97
- this.form.email = this.$route.query.email;
98
- },
99
- };
100
- </script>
@@ -1,142 +0,0 @@
1
- <template>
2
- <div class="relative">
3
- <section id="resetPasswordForm">
4
- <h1 class="h2 h2--small" v-html="!form.successful ? 'Welcome' : 'Success'" />
5
- <form class="form" @submit.prevent="submit">
6
- <div v-if="!form.successful">
7
- <p class="AM-mt-2 AM-mb-0 AM-color-highlight">
8
- <strong class="">Email: {{ $store.state?.auth?.user?.email }}</strong>
9
- </p>
10
- <p class="AM-mt-0.5">
11
- <strong>Hello {{ $store.state?.auth?.user?.name }}</strong>, and welcome to Policy 360. To maintain security, anyone signing in with a one-time-password must <strong>create a new password</strong> the first time they access the Policy 360 portal.
12
- </p>
13
- <el-input
14
- v-model="form.password"
15
- class="AM-mt-2"
16
- label="New Password"
17
- placeholder="Enter new password"
18
- name="password"
19
- :error="form.errors"
20
- type="password"
21
- autocomplete="new-password"
22
- required
23
- />
24
-
25
- <VPasswordValidation :password="form.password" @passwordValid="updatePasswordValidity" />
26
-
27
- <elButton
28
- class="AM-mt-3"
29
- type="primary"
30
- :disabled="form.processing || !isPasswordValid"
31
- :loading="form.processing"
32
- @click="onSubmit"
33
- >
34
- <span v-text="'Update password'" />
35
- </elButton>
36
- </div>
37
- <div v-else>
38
- <strong class="">Email: {{ $store.state.auth?.user?.email }}</strong>
39
- <p v-text="`Your password has been updated.`" />
40
- <elButton
41
- type="primary"
42
- @click="handleButton"
43
- >
44
- Continue
45
- </elButton>
46
- </div>
47
- </form>
48
- </section>
49
- </div>
50
- </template>
51
-
52
- <script>
53
- import Form from "form-backend-validation";
54
-
55
- export default {
56
- data() {
57
- return {
58
- form: new Form(
59
- {
60
- email: this.$store.state.auth.user?.email,
61
- password: '',
62
- otp: true,
63
- },
64
- { resetOnSuccess: false }
65
- ),
66
- isPasswordValid: false,
67
- };
68
- },
69
-
70
- mounted() {
71
-
72
- this.$store.dispatch("getUser", {
73
- errors: this.$root.errors,
74
- });
75
- },
76
-
77
- methods: {
78
- async onSubmit() {
79
- this.loading = true;
80
-
81
- try {
82
- await this.form.put('/user/password');
83
- await this.login();
84
- } catch (e) {
85
- this.$root.errors(e);
86
- } finally {
87
- this.loading = false;
88
- }
89
- },
90
- async login() {
91
- this.loading = true;
92
-
93
- try {
94
- const res = await this.form.post("/login");
95
-
96
- if(res['logged-in']){
97
- try{
98
- await this.$store.dispatch("logout", {
99
- errors: this.$root.errors,
100
- });
101
- } catch(e){}
102
-
103
- await this.form.post("/login");
104
- }
105
-
106
- } catch (e) {
107
- this.$root.errors(e);
108
- } finally {
109
- this.loading = false;
110
- await this.postLogin();
111
- }
112
- },
113
-
114
- async postLogin() {
115
- this.$store.commit("setAuth", true);
116
-
117
- const { data: user } = await this.$store.dispatch("getUser", {
118
- errors: this.$root.errors,
119
- });
120
- },
121
-
122
- updatePasswordValidity(isValid) {
123
- this.isPasswordValid = isValid;
124
- },
125
- handleButton() {
126
- this.$emit('close');
127
- }
128
- },
129
-
130
- metaInfo() {
131
- return {
132
- title: "Reset Password",
133
- };
134
- },
135
-
136
- components: {
137
- VPasswordValidation: require("./../components/VPasswordValidation.vue").default,
138
- elInput: require('../../form/basic.vue').default,
139
- elButton: require('../../basic/Button.vue').default,
140
- },
141
- };
142
- </script>
@@ -1,87 +0,0 @@
1
- <template>
2
- <div class="relative">
3
- <section id="forgotPasswordForm">
4
- <h1 class="h2 h2--small">Reset password</h1>
5
- <form class="form" @submit.prevent="submit">
6
- <p class="AM-mt-2">
7
- Enter the email address associated with your account to continue.
8
- </p>
9
-
10
- <el-input
11
- v-if="!form.successful"
12
- class="AM-mt-3 AM-mb-3"
13
- v-model="form.email"
14
- label="Email "
15
- placeholder="Enter email address"
16
- name="email"
17
- :error="form.errors"
18
- type="email"
19
- required
20
- />
21
-
22
- <elButton
23
- type="primary"
24
- :disabled="form.processing || !form.email || form.email?.length < 5"
25
- :loading="form.processing"
26
- @click="onSubmit"
27
- >
28
- Continue
29
- </elButton>
30
-
31
- <p class="disclaimer AM-mt-3">
32
- <router-link
33
- class="color-1 underline"
34
- :to="{ name: `${$store.state.auth.authBase}.login` }"
35
- >
36
- Back to Sign in
37
- </router-link>
38
- </p>
39
- </form>
40
- </section>
41
- </div>
42
- </template>
43
-
44
- <script>
45
- import Form from "form-backend-validation";
46
-
47
- export default {
48
- components: {
49
- elInput: require('../../form/basic.vue').default,
50
- elButton: require('../../basic/Button.vue').default,
51
- },
52
-
53
- data: () => ({
54
- form: new Form(
55
- {
56
- email: "",
57
- },
58
- { resetOnSuccess: false }
59
- ),
60
- }),
61
-
62
- methods: {
63
- async onSubmit() {
64
- try {
65
- await this.form.post("/forgot-password");
66
-
67
- this.$router.push({
68
- name: `${this.$store.state.auth.authBase}.success-forgot`,
69
- query: { email: this.form.email },
70
- });
71
- } catch (e) {
72
- this.$root.errors(e);
73
- }
74
- },
75
- },
76
-
77
- mounted() {
78
- this.form.email = this.$route.query.email;
79
- },
80
-
81
- metaInfo() {
82
- return {
83
- title: "Forgot Password",
84
- };
85
- },
86
- };
87
- </script>
@@ -1,138 +0,0 @@
1
- <template>
2
- <h1 class="h2 h2--small">Sign in</h1>
3
- <p class="AM-mb-3 AM-mt-2">Enter your password to continue.</p>
4
-
5
- <form @submit.prevent="submit" class="form" id="memberLoginForm">
6
- <el-input
7
- class="AM-mb-3"
8
- label="Email"
9
- placeholder="Enter your email address"
10
- name="email"
11
- type="email"
12
- required
13
- v-model="form.email"
14
- :error="form.errors"
15
- />
16
-
17
- <el-input
18
- class="AM-mb-3"
19
- label="Password"
20
- placeholder="Enter your password"
21
- name="password"
22
- type="password"
23
- required
24
- v-model="form.password"
25
- :error="form.errors"
26
- />
27
-
28
- <!-- real people should not fill this in and expect good things - do not remove this or risk form bot signups-->
29
- <div style="position: absolute; left: -5000px" aria-hidden="true">
30
- <input
31
- ref="honeypot"
32
- type="text"
33
- name="b_0e1715593ad9366bc5d3ad8be_7aca058f12"
34
- tabindex="-1"
35
- value=""
36
- />
37
- </div>
38
-
39
- <el-button
40
- type="primary"
41
- :disabled="loading || (form.email?.length < 5 || form.password?.length < 8 )"
42
- @click="onSubmit"
43
- >
44
- Continue
45
- </el-button>
46
-
47
- <p class="disclaimer AM-mt-3">
48
- Having trouble signing in?
49
- <router-link class="color-1 underline" :to="{ name: `${$store.state.auth.authBase}.forgot` }">
50
- Reset password
51
- </router-link>
52
- or
53
- <a :href="contact" class="underline">Contact us</a>
54
- </p>
55
- </form>
56
- </template>
57
-
58
- <script>
59
- import Form from "form-backend-validation";
60
-
61
- export default {
62
- components: {
63
- elInput: require('../../form/basic.vue').default,
64
- elButton: require('../../basic/Button.vue').default,
65
- },
66
- data() {
67
- return {
68
- form: new Form(
69
- {
70
- email: this.$route.query.email ?? '',
71
- password: '',
72
- device_name: "Mobile device",
73
- remember: true,
74
- },
75
- { resetOnSuccess: false }
76
- ),
77
- loading: false,
78
- contact: process.env.HYDRATE_CONTACT ?? 'mailto:EP@avalerehealth.com',
79
- };
80
- },
81
-
82
- methods: {
83
- async onSubmit() {
84
- if (this.loading) return;
85
-
86
- this.loading = true;
87
-
88
- try {
89
- const res = await this.form.post("/login");
90
-
91
- if (res["logged-in"]) {
92
- try {
93
- await this.$store.dispatch("logout", {
94
- errors: this.$root.errors,
95
- });
96
- } catch (e) {}
97
-
98
- await this.form.post("/login");
99
- }
100
-
101
- await this.postLogin();
102
- } catch (e) {
103
- this.$root.errors(e);
104
- } finally {
105
- this.loading = false;
106
- }
107
- },
108
-
109
- async postLogin() {
110
- this.$store.commit("setAuth", true);
111
-
112
- const { data: user } = await this.$store.dispatch("getUser", {
113
- errors: this.$root.errors,
114
- });
115
-
116
- if (window.dataLayer) {
117
- window.dataLayer.push({ event: "login", user });
118
- }
119
-
120
- if (this.$store.state.auth.intended) {
121
- this.$router.push(this.$store.state.auth.intended);
122
- } else {
123
- this.$router.push({ name: this.$store.state.auth.postLoginRedirect });
124
- // this.$router.push({ name: "members" });
125
- // Problem here
126
- }
127
-
128
- this.$store.commit("setIntended", null);
129
- },
130
- },
131
-
132
- mounted() {
133
- if (this.$route.query.authenticated) {
134
- this.postLogin();
135
- }
136
- },
137
- };
138
- </script>
@@ -1,46 +0,0 @@
1
- <template>
2
- <!-- Set Spinner -->
3
- <div class="mx-auto">
4
- <VLoader class="mx-auto" />
5
- </div>
6
- </template>
7
-
8
- <script>
9
-
10
- export default {
11
- components: {
12
- VLoader: require("../../layout/Loader.vue").default
13
- },
14
- data() {
15
- return {
16
-
17
- }
18
- },
19
-
20
- methods: {
21
- async postLogin() {
22
- this.$store.commit("setAuth", true);
23
-
24
- const { data: user } = await this.$store.dispatch("getUser", {
25
- errors: this.$root.errors,
26
- });
27
-
28
- if (window.dataLayer) {
29
- window.dataLayer.push({ event: "login", user });
30
- }
31
-
32
- if (this.$store.state.auth.intended) {
33
- this.$router.push(this.$store.state.auth.intended);
34
- } else {
35
- this.$router.push({ name: this.$store.state.auth.redirect });
36
- }
37
-
38
- this.$store.commit("setIntended", null);
39
- },
40
- },
41
-
42
- mounted() {
43
- this.postLogin();
44
- },
45
- };
46
- </script>
@@ -1,16 +0,0 @@
1
- <template>
2
- <!-- Set Spinner -->
3
- <div class="mx-auto">
4
- <VLoader class="mx-auto" />
5
- <p v-text="`Logging in...`"/>
6
- </div>
7
- </template>
8
-
9
-
10
- <script>
11
- export default {
12
- mounted(){
13
- window.location = '/login';
14
- }
15
- }
16
- </script>
@@ -1,127 +0,0 @@
1
- <template>
2
- <template v-if="stage === 1">
3
- <h1 class="h2 h2--small">Sign in</h1>
4
- <p class="AM-mb-3 AM-mt-2">Enter your email address to continue. </p>
5
-
6
- <form @submit.prevent="submit" class="form" id="memberLoginForm">
7
- <el-input
8
- class="AM-mb-3"
9
- label="Email"
10
- placeholder="Enter your email address"
11
- name="email"
12
- type="email"
13
- required
14
- v-model="form.email"
15
- :error="form.errors"
16
- />
17
-
18
- <!-- real people should not fill this in and expect good things - do not remove this or risk form bot signups-->
19
- <div style="position: absolute; left: -5000px" aria-hidden="true">
20
- <input
21
- ref="honeypot"
22
- type="text"
23
- name="b_0e1715593ad9366bc5d3ad8be_7aca058f12"
24
- tabindex="-1"
25
- value=""
26
- />
27
- </div>
28
-
29
- <el-button
30
- type="primary"
31
- :disabled="loading || (!isValidEmail(form.email))"
32
- @click="onSubmit"
33
- >
34
- Continue
35
- </el-button>
36
-
37
- <p class="disclaimer AM-mt-3">
38
- Having trouble signing in?
39
- <a :href="contact" class="underline">Contact us</a>
40
- </p>
41
- </form>
42
- </template>
43
- <template v-else>
44
- <h1 class="h2 h2--small">Sign in with SSO</h1>
45
- <p class="AM-mt-2">Redirecting you to your organisation’s Single Sign-On (SSO) gateway <span class="AM-color-highlight">in {{ countdown }} seconds...</span></p>
46
- <p class="disclaimer AM-mt-3">
47
- <a :href="redirect_url" class="underline">Go to SSO gateway</a>
48
- </p>
49
- </template>
50
- </template>
51
-
52
- <script>
53
- import Form from "form-backend-validation";
54
-
55
- export default {
56
- components: {
57
- elInput: require('../../form/basic.vue').default,
58
- elButton: require('../../basic/Button.vue').default,
59
- },
60
- data() {
61
- return {
62
- form: new Form(
63
- {
64
- email: '',
65
- device_name: "Mobile device",
66
- remember: true,
67
- },
68
- { resetOnSuccess: false }
69
- ),
70
- countdown: 3,
71
- loading: false,
72
- redirect_url: null,
73
- stage: 1,
74
- contact: process.env.HYDRATE_CONTACT ?? 'mailto:EP@avalerehealth.com',
75
- };
76
- },
77
-
78
- methods: {
79
- async onSubmit() {
80
- if (this.loading) return;
81
-
82
- this.loading = true;
83
-
84
- try {
85
- const res = await this.form.post(`/sso`);
86
- if(res['redirect_url']) {
87
- this.redirect_url = res['redirect_url'];
88
- this.setRedirect();
89
- } else {
90
- this.$router.push({name: `${this.$store.state.auth.authBase}.logincreds`,query: {email: this.form.email}});
91
- }
92
- } catch (e) {
93
- this.$root.errors(e);
94
- } finally {
95
- this.loading = false;
96
- }
97
- },
98
- setRedirect(){
99
- this.stage = 2;
100
- let vue = this;
101
- setTimeout(function() {
102
- vue.setCountdown();
103
- },1000);
104
- },
105
- setCountdown() {
106
- this.countdown--;
107
- if(this.countdown === 0) {
108
- window.location = this.redirect_url;
109
- } else {
110
- let vue = this;
111
- setTimeout(function() {
112
- vue.setCountdown();
113
- },1000);
114
- }
115
- },
116
- isValidEmail(email) {
117
- const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
118
- return emailRegex.test(email);
119
- }
120
-
121
- },
122
-
123
- mounted() {
124
-
125
- },
126
- };
127
- </script>
@@ -1,21 +0,0 @@
1
- <script>
2
- export default {
3
- metaInfo() {
4
- return {
5
- title: "Logout",
6
- };
7
- },
8
-
9
- mounted() {
10
- try {
11
- this.$store.dispatch("logout", {
12
- errors: this.$root.errors,
13
- });
14
- } catch(e){
15
-
16
- }
17
-
18
- this.$router.push({ name: `${this.$store.state.auth.authBase}.login` });
19
- },
20
- };
21
- </script>