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 |