PluginProbe ʕ •ᴥ•ʔ
Booking for Appointments and Events Calendar – Amelia / 1.2.20
Booking for Appointments and Events Calendar – Amelia v1.2.20
2.4.4 2.4.3 2.4.2 2.4.1 2.4 trunk 1.2.1 1.2.10 1.2.11 1.2.12 1.2.13 1.2.14 1.2.15 1.2.16 1.2.17 1.2.18 1.2.19 1.2.2 1.2.20 1.2.21 1.2.22 1.2.23 1.2.24 1.2.25 1.2.26 1.2.27 1.2.28 1.2.29 1.2.3 1.2.30 1.2.31 1.2.32 1.2.33 1.2.34 1.2.35 1.2.36 1.2.37 1.2.38 1.2.4 1.2.5 1.2.6 1.2.7 1.2.8 1.2.9 2.0 2.0.1 2.0.2 2.1 2.1.1 2.1.2 2.1.3 2.2 2.2.1 2.3
ameliabooking / v3 / src / assets / js / common / helper.js
ameliabooking / v3 / src / assets / js / common Last commit date
appointments.js 1 year ago attendees.js 1 year ago colorManipulation.js 3 years ago customer.js 1 year ago date.js 1 year ago defaultCustomize.js 1 year ago employee.js 1 year ago events.js 1 year ago formFieldsTemplates.js 3 years ago formatting.js 1 year ago helper.js 1 year ago image.js 1 year ago integrationApple.js 1 year ago integrationGoogle.js 1 year ago integrationOutlook.js 1 year ago integrationStripe.js 1 year ago integrationZoom.js 1 year ago licence.js 2 years ago objectAndArrayManipulation.js 3 years ago pricing.js 1 year ago recurring.js 1 year ago responsive.js 1 year ago scrollElements.js 4 years ago settings.js 1 year ago translationsElementPlus.js 1 year ago
helper.js
127 lines
1 import { settings } from "../../../plugins/settings.js"
2
3 function useCurrentTimeZone () {
4 return Intl.DateTimeFormat().resolvedOptions().timeZone
5 }
6
7 function useRemoveUrlParameter (url, parameter) {
8 let urlParts = url.split('?')
9
10 if (urlParts.length >= 2) {
11 let prefix = encodeURIComponent(parameter) + '='
12 let pars = urlParts[1].split(/[&;]/g)
13
14 for (let i = pars.length; i-- > 0;) {
15 if (pars[i].lastIndexOf(prefix, 0) !== -1) {
16 pars.splice(i, 1)
17 }
18 }
19
20 url = urlParts[0] + (pars.length > 0 ? '?' + pars.join('&') : '')
21 }
22
23 return url
24 }
25
26 function useUrlParams (params) {
27 if (!settings.activation.disableUrlParams) {
28 return params
29 }
30
31 let names = [
32 'categories',
33 'services',
34 'packages',
35 'employees',
36 'providers',
37 'providerIds',
38 'extras',
39 'locations',
40 'events',
41 'types',
42 'dates',
43 'customers',
44 'providers',
45 'services',
46 'locations',
47 'status',
48 ]
49
50 let convertedParams = JSON.parse(JSON.stringify(params))
51
52 names.forEach((name) => {
53 if (name === 'extras' && name in convertedParams && convertedParams['extras']) {
54 convertedParams['extras'] = JSON.parse(convertedParams['extras'])
55
56 let extras = []
57
58 convertedParams['extras'].forEach((item) => {
59 extras.push(item.id + '-' + item.quantity)
60 })
61
62 convertedParams['extras'] = extras.length ? extras : null
63 }
64
65 if (name in convertedParams && Array.isArray(convertedParams[name]) && convertedParams[name].length) {
66 convertedParams[name] = convertedParams[name].join(',')
67 }
68 })
69
70 return convertedParams
71 }
72
73 function useSortedDateStrings (dates) {
74 return dates.sort((a,b) => new Date(a) - new Date(b))
75 }
76
77 function useSortedTimeStrings (times) {
78 return times.sort((a,b) => new Date(`2000-01-01T${a}`) - new Date(`2000-01-01T${b}`))
79 }
80
81 function useUrlQueryParams (url) {
82 let queryString = url.indexOf('#') > 0
83 ? url.substring(0, url.indexOf('#')).split('?')[1]
84 : url.split('?')[1]
85
86 if (queryString) {
87 let keyValuePairs = queryString.split('&')
88 let keyValue = []
89 let queryParams = {}
90
91 keyValuePairs.forEach(function (pair) {
92 keyValue = pair.split('=')
93 queryParams[keyValue[0]] = decodeURIComponent(keyValue[1]).replace(/\+/g, ' ')
94 })
95
96 return queryParams
97 }
98
99 // ! return null
100 return {}
101 }
102
103 function useUrlQueryParam (param) {
104 let queryParams = useUrlQueryParams(window.location.href)
105
106 return param in queryParams ? queryParams[param] : null
107 }
108
109 function useDescriptionVisibility (text) {
110 if (text && text.length) {
111 return !text.includes('<!-- Content -->') || (text.includes('<!-- Content -->') && text.length > 16)
112 }
113
114 return false
115 }
116
117 export {
118 useRemoveUrlParameter,
119 useSortedDateStrings,
120 useUrlParams,
121 useUrlQueryParams,
122 useUrlQueryParam,
123 useCurrentTimeZone,
124 useSortedTimeStrings,
125 useDescriptionVisibility
126 }
127