@usssa/component-library 1.0.0-alpha.38 → 1.0.0-alpha.39

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 CHANGED
@@ -1,4 +1,4 @@
1
- # Component Library v1.0.0
1
+ # Component Library
2
2
 
3
3
  This library provides custom UI components for USSSA applications.
4
4
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@usssa/component-library",
3
- "version": "1.0.0-alpha.38",
3
+ "version": "1.0.0-alpha.39",
4
4
  "description": "A Quasar component library project",
5
5
  "productName": "Quasar component library App",
6
6
  "author": "Troy Moreland <troy.moreland@usssa.com>",
@@ -29,8 +29,10 @@ import UMenuButtonStd from './core/UMenuButtonStd.vue'
29
29
  import UBreadCrumbs from './core/UBreadCrumbs.vue'
30
30
 
31
31
  import { useNotify } from '../composables/useNotify.js'
32
+ import { useOverlayLoader } from '../composables/useOverlayLoader.js'
32
33
 
33
34
  export {
35
+ useOverlayLoader,
34
36
  useNotify,
35
37
  UAvatar,
36
38
  UAvatarGroup,
@@ -0,0 +1,23 @@
1
+ import { Loading, QSpinnerGears } from 'quasar'
2
+
3
+ export const useOverlayLoader = () => {
4
+
5
+ const showLoader = (props) => {
6
+
7
+ Loading.show({
8
+ backgroundColor: props?.backgroundColor,
9
+ customClass: props.customClass ? props.customClass : '',
10
+ message: props?.message,
11
+ messageColor: props.messageColor ? props.messageColor: 'dark',
12
+ spinner: props.spinner ? props.spinner : QSpinnerGears,
13
+ spinnerSize: props.spinnerSize ? props.spinnerSize : '6rem',
14
+ spinnerColor: props?.spinnerColor
15
+ })
16
+ }
17
+
18
+ const hideLoader = () =>{
19
+ Loading.hide()
20
+ }
21
+
22
+ return { showLoader, hideLoader }
23
+ }
@@ -126,6 +126,10 @@ const components = [
126
126
  title: 'Inner Loader',
127
127
  path: '/inner-loader',
128
128
  },
129
+ {
130
+ title: 'Overlay Loader',
131
+ path: '/overlay-loader',
132
+ },
129
133
  ]
130
134
 
131
135
  const leftDrawerOpen = ref(true)
@@ -0,0 +1,128 @@
1
+ <script setup>
2
+ import { ref } from 'vue'
3
+ import { useOverlayLoader } from '../composables/useOverlayLoader'
4
+ import ComponentBase from './ComponentBase.vue'
5
+ import UBtnStd from 'src/components/core/UBtnStd.vue'
6
+ import {
7
+ QSpinnerGears,
8
+ QSpinnerFacebook,
9
+ QSpinnerBars,
10
+ QSpinnerDots,
11
+ } from 'quasar'
12
+
13
+ defineOptions({
14
+ name: 'OverlayLoader',
15
+ })
16
+
17
+ const { showLoader, hideLoader } = useOverlayLoader()
18
+ const messageColors = ['dark', 'white', 'primary', 'positive', 'warning']
19
+ const backgroundColors = ['dark', 'white', 'primary', 'positive', 'warning']
20
+ const spinnerColors = ['dark', 'white', 'primary', 'positive', 'warning']
21
+ const spinnerOptions = [
22
+ {
23
+ label: 'QSpinnerGears',
24
+ value: QSpinnerGears,
25
+ },
26
+ {
27
+ label: 'QSpinnerBars',
28
+ value: QSpinnerBars,
29
+ },
30
+ {
31
+ label: 'QSpinnerDots',
32
+ value: QSpinnerDots,
33
+ },
34
+ {
35
+ label: 'QSpinnerFacebook',
36
+ value: QSpinnerFacebook,
37
+ },
38
+ ]
39
+ const customProps = ref({
40
+ backgroundColor: 'dark',
41
+ message: 'Authenticating User',
42
+ messageColor: 'white',
43
+ spinner: spinnerOptions[0],
44
+ spinnerSize: '6rem',
45
+ spinnerColor: 'white',
46
+ })
47
+
48
+ const htmlContent = `
49
+ const { showLoader, hideLoader } = useOverlayLoader()
50
+
51
+ --To show the loader--
52
+
53
+ showLoader({
54
+ backgroundColor:props.backgroundColor,
55
+ message: props..message,
56
+ messageColor: props.messageColor
57
+ spinner: props.spinner
58
+ spinnerSize: props.spinnerSize,
59
+ spinnerColor: props.spinnerColor,
60
+ })
61
+
62
+ --To hide the loader--
63
+
64
+ hideLoader()`
65
+
66
+ const showOverlayLoader = () => {
67
+ showLoader({
68
+ backgroundColor: customProps.value?.backgroundColor,
69
+ message: customProps.value?.message,
70
+ messageColor: customProps.value.messageColor,
71
+ spinner: customProps.value.spinner.value,
72
+ spinnerSize: customProps.value.spinnerSize,
73
+ spinnerColor: customProps.value.spinnerColor,
74
+ })
75
+
76
+ setTimeout(() => {
77
+ hideLoader()
78
+ }, 2000)
79
+ }
80
+
81
+ </script>
82
+
83
+ <template>
84
+ <q-page class="flex flex-center">
85
+ <ComponentBase figmaUrl="#">
86
+ <template v-slot:component>
87
+ <UBtnStd label="Show loader" color="primary" @on-click="showOverlayLoader" />
88
+ </template>
89
+
90
+ <template v-slot:properties>
91
+ <div class="column q-gutter-y-lg">
92
+ <q-input label="Message" v-model="customProps.message" />
93
+ <q-input
94
+ label="Spinner size (In rem)"
95
+ v-model="customProps.spinnerSize"
96
+ />
97
+
98
+ <q-select
99
+ v-model="customProps.messageColor"
100
+ :options="messageColors"
101
+ label="Message color"
102
+ />
103
+ <q-select
104
+ v-model="customProps.backgroundColor"
105
+ :options="backgroundColors"
106
+ label="Background color"
107
+ />
108
+ <q-select
109
+ v-model="customProps.spinnerColor"
110
+ :options="spinnerColors"
111
+ label="Spinner color"
112
+ />
113
+ <q-select
114
+ v-model="customProps.spinner"
115
+ :options="spinnerOptions"
116
+ option-value="value"
117
+ option-label="label"
118
+ label="Spinner"
119
+ />
120
+ </div>
121
+ </template>
122
+
123
+ <template v-slot:code>
124
+ <pre><code>{{ htmlContent }}</code></pre>
125
+ </template>
126
+ </ComponentBase>
127
+ </q-page>
128
+ </template>
@@ -127,6 +127,10 @@ const routes = [
127
127
  path: 'bread-crumbs',
128
128
  component: () => import('src/pages/BreadCrumbs.vue'),
129
129
  },
130
+ {
131
+ path: 'overlay-loader',
132
+ component: () => import('src/pages/OverlayLoader.vue'),
133
+ },
130
134
  ],
131
135
  },
132
136