@timum/booking 0.8.1 → 0.8.2
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 +162 -56
- package/build/{index-cbd0a1b2.js → index-16bddaba.js} +1 -1
- package/build/{index-c8837ddb.js → index-21fc58fc.js} +1 -1
- package/build/{index-afebd373.js → index-2b2afb5d.js} +1 -1
- package/build/{index-7ab8be5b.js → index-43723220.js} +1 -1
- package/build/{index-43f4920d.js → index-8a846f8e.js} +1 -1
- package/build/{index-1b10e9aa.js → index-c23c879e.js} +1 -1
- package/build/{index-0480e070.js → index-eb6e32c7.js} +1 -1
- package/build/{index-404c5e68.js → index-eddc9c92.js} +1 -1
- package/build/{index-87eebe34.js → index-eec841ad.js} +1 -1
- package/build/{index-553c5952.js → index-f01854a3.js} +9112 -9056
- package/build/{index-e4302b79.js → index-f262ad1f.js} +1 -1
- package/build/timum-booking.js +1 -1
- package/build/timum-booking.umd.cjs +86 -86
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,12 +1,25 @@
|
|
|
1
1
|
# timum booking
|
|
2
2
|
|
|
3
|
+
## Introduction
|
|
4
|
+
|
|
5
|
+
timum BookingJs is a fully customizable appointment booking frontend app, intended to be integrated into every web page or web app or mobile app. It is ready to use out-of-the-box. And it provides the ability to customize it.
|
|
6
|
+
This documentation guides you through all the customization capabilities.
|
|
7
|
+
|
|
3
8
|
## Content
|
|
4
9
|
|
|
5
10
|
- [Features](#features)
|
|
6
|
-
- [
|
|
11
|
+
- [How to Integrate](#how_to_integrate)
|
|
7
12
|
- [In a Script Tag](#in_a_script_tag)
|
|
8
13
|
- [As ESM import](#as_esm_import)
|
|
9
|
-
- [
|
|
14
|
+
- [Entity Referencing](#entity_referencing)
|
|
15
|
+
- [Channel Reference](#channel_reference)
|
|
16
|
+
- [Resource Reference](#resource_reference)
|
|
17
|
+
- [Resource Reference + `channelKey`](#channel_reference_channel_key)
|
|
18
|
+
- [Example](#example)
|
|
19
|
+
- [Customer pre-identification](#customer_pre_identification)
|
|
20
|
+
- [Identification via pData](#identification_via_pdata)
|
|
21
|
+
- [Identification via logged-in User](#identification_via_logged_in_user)
|
|
22
|
+
- [Advanced Customisation](#advanced_usage)
|
|
10
23
|
- [muiTheme](#mui_theme)
|
|
11
24
|
- [fcConfig](#fc_config)
|
|
12
25
|
- [appConfig](#app_config)
|
|
@@ -23,11 +36,6 @@
|
|
|
23
36
|
|
|
24
37
|
<a name=”features”></a>
|
|
25
38
|
|
|
26
|
-
## Introduction
|
|
27
|
-
|
|
28
|
-
timum BookingJs is a fully customizable appointment booking frontend app, intended to be integrated into every web page or web app or mobile app. It is ready to use out-of-the-box. And it provides the ability to customize it.
|
|
29
|
-
This documentation guides you through all the customization capabilities.
|
|
30
|
-
|
|
31
39
|
## Features
|
|
32
40
|
|
|
33
41
|
- Real time availability and booking
|
|
@@ -46,9 +54,9 @@ This documentation guides you through all the customization capabilities.
|
|
|
46
54
|
- Support for multiple languages (English and German included) - add your own language
|
|
47
55
|
- Callbacks for custom code execution and event response (e.g. booking created, appointments loaded, booking canceled)
|
|
48
56
|
|
|
49
|
-
<a name=”
|
|
57
|
+
<a name=”how_to_integrate”></a>
|
|
50
58
|
|
|
51
|
-
##
|
|
59
|
+
## How to Integrate
|
|
52
60
|
|
|
53
61
|
<a name=”in_a_script_tag”></a>
|
|
54
62
|
|
|
@@ -101,6 +109,83 @@ init({ ref: 'booking-widget-demo-resource@timum' });
|
|
|
101
109
|
|
|
102
110
|
A example project can be found [here](https://stackblitz.com/edit/react-8q6r8b?file=src/index.js)
|
|
103
111
|
|
|
112
|
+
<a name="entity_referencing"></a>
|
|
113
|
+
|
|
114
|
+
### Entity Referencing
|
|
115
|
+
|
|
116
|
+
As shown in [How to Integrate](#how_to_integrate), there are two ways in which to provide bookingjs with the necessary references to retrieve public appointments from the backend.
|
|
117
|
+
|
|
118
|
+
Additionally, there are three different kinds of references you can provide, each having their own implications concerning the delivered appointments or whether the booking frontend is shown at all.
|
|
119
|
+
|
|
120
|
+
<a name="channel_reference"></a>
|
|
121
|
+
|
|
122
|
+
#### Channel Reference
|
|
123
|
+
|
|
124
|
+
Resource channels are entities in Timum, each storing a configuration that changes the booking experience for customers. Each individual resource has four channels that users can distribute to their customers through a link.
|
|
125
|
+
To use these channels in an embed scenario, provide a channel reference in the ref property (either in the URL or as part of the config). In this case, nothing else is required.
|
|
126
|
+
|
|
127
|
+
<a name="resource_reference"></a>
|
|
128
|
+
|
|
129
|
+
#### Resource Reference
|
|
130
|
+
|
|
131
|
+
A reference that refers to a plain resource, where the channel is unknown. The default channel (and its corresponding configuration) is used instead.
|
|
132
|
+
|
|
133
|
+
<a name="channel_reference_channel_key"></a>
|
|
134
|
+
|
|
135
|
+
#### Resource Reference + `ChannelKey`
|
|
136
|
+
|
|
137
|
+
If you don't have a channel reference but still want to use a different channel than the default one, you can provide a combination of resource reference and `channelKey` to uniquely identify the channel (and resource) to be used.
|
|
138
|
+
|
|
139
|
+
The following table gives an overview of the different permutations and how bookingjs behaves when encountering each of them:
|
|
140
|
+
|
|
141
|
+
| url RESref OR CHref | timum.init RESref OR CHref | timum.init chKey | show OR hide |
|
|
142
|
+
| :-----------------: | :------------------------: | :--------------: | :----------------------------: |
|
|
143
|
+
| - | - | ignored | **HIDE** |
|
|
144
|
+
| ResourceReference | ignored | YES | **show widget for channelKey** |
|
|
145
|
+
| ResourceReference | ignored | - | **show default Channel** |
|
|
146
|
+
| - | ResourceReference | - | **show default Channel** |
|
|
147
|
+
| - | ResourceReference | YES | **show widget for channelKey** |
|
|
148
|
+
| ChannelReference | ignored | ignored | **show Channel** |
|
|
149
|
+
| - | ChannelReference | ignored | **show Channel** |
|
|
150
|
+
|
|
151
|
+
- RESref: short for resource reference.
|
|
152
|
+
- CHref: short for channel reference.
|
|
153
|
+
|
|
154
|
+
<a name="example"></a>
|
|
155
|
+
|
|
156
|
+
##### Example
|
|
157
|
+
|
|
158
|
+
- First row: If neither a resource reference nor a channel reference is provided, not in the URL nor in the config object, any given channel key is ignored, and bookingjs is hidden.
|
|
159
|
+
|
|
160
|
+
- Third row: If a resource reference is given in the URL and in the config object, and no channelKey is provided, the ref in the URL takes priority. Since it is a resource reference and no channel key is provided, the default channel is used.
|
|
161
|
+
|
|
162
|
+
- Fifth row: If a resource reference and a `channelKey` are provided in the config object, and there is nothing in the URL, the config object is used. BookingJs gets displayed using the channel uniquely identified by the resource reference and the `channelKey`.
|
|
163
|
+
|
|
164
|
+
<a name="customer_pre_identification"></a>
|
|
165
|
+
|
|
166
|
+
#### Customer pre-identification
|
|
167
|
+
|
|
168
|
+
BookingJs can identify customers automatically if configured correctly.
|
|
169
|
+
This means they don't need to input their personal data prior to booking.
|
|
170
|
+
|
|
171
|
+
<a name="identification_via_pdata"></a>
|
|
172
|
+
|
|
173
|
+
##### Identification via pDataId (personId)
|
|
174
|
+
|
|
175
|
+
Detection method: Is there a valid pDataId paired with a supported pDataPlatform (platform) in parent url matching an entity (contact, customer) in given CRM?
|
|
176
|
+
<em>
|
|
177
|
+
General behaviour: If there is, then visitor is pre identified. If not: provide standard booking dialog.
|
|
178
|
+
</em>
|
|
179
|
+
See [appConfig](#appconfig) for more information about pData.
|
|
180
|
+
|
|
181
|
+
<a name="identification_via_logged_in_user"></a>
|
|
182
|
+
|
|
183
|
+
##### Identification via Logged-in User
|
|
184
|
+
|
|
185
|
+
Even customers can register at timum and become registered and logged-in users. If the booking system identifies a logged-in user, the booking dialog does not provide personal data input fields but informs the visitor that they are identified.
|
|
186
|
+
|
|
187
|
+
> Note that if the customer is logged in to timum and there is a pData config/url param as well then the auth cookie takes priority.
|
|
188
|
+
|
|
104
189
|
---
|
|
105
190
|
|
|
106
191
|
<a name=”advanced_usage”></a>
|
|
@@ -127,6 +212,8 @@ See [here](https://mui.com/) for a general overview. <br> See [here](https://mui
|
|
|
127
212
|
|
|
128
213
|
When you open the file `config.js` in [this](https://stackblitz.com/edit/react-8q6r8b?file=src/index.js) example, you can find an elaborate custom configuration which includes a redesign of the standard timum theme.
|
|
129
214
|
|
|
215
|
+
Needs premium plan.
|
|
216
|
+
|
|
130
217
|
<a name=”fc_config”></a>
|
|
131
218
|
|
|
132
219
|
### fcConfig
|
|
@@ -143,53 +230,72 @@ See [here](https://fullcalendar.io/docs#toc) for a full list of configuration op
|
|
|
143
230
|
This object's options directly affect timum's behaviour or allow you to react to it.
|
|
144
231
|
|
|
145
232
|
<table>
|
|
146
|
-
<tr>
|
|
147
|
-
<th>Property</th>
|
|
148
|
-
<th>Description</th>
|
|
149
|
-
</tr>
|
|
150
|
-
<tr>
|
|
151
|
-
<td>ref</td>
|
|
152
|
-
<td>string, Reference of the resource to show the appointments of. <br><em> This is the only prop that is mandatory.</em><br> Everything else is optional. <br>Can also be a url parameter
|
|
153
|
-
</
|
|
154
|
-
|
|
155
|
-
<
|
|
156
|
-
<td>
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
<
|
|
160
|
-
<td>
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
<
|
|
168
|
-
<td>
|
|
169
|
-
<
|
|
170
|
-
|
|
171
|
-
<
|
|
172
|
-
<
|
|
173
|
-
|
|
174
|
-
</tr>
|
|
175
|
-
<tr>
|
|
176
|
-
<td>
|
|
177
|
-
<td>
|
|
178
|
-
|
|
179
|
-
<
|
|
180
|
-
</
|
|
181
|
-
<
|
|
182
|
-
|
|
183
|
-
<
|
|
184
|
-
</
|
|
185
|
-
<
|
|
186
|
-
<
|
|
187
|
-
<
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
</
|
|
233
|
+
<tr>
|
|
234
|
+
<th>Property</th>
|
|
235
|
+
<th>Description</th>
|
|
236
|
+
</tr>
|
|
237
|
+
<tr>
|
|
238
|
+
<td>ref</td>
|
|
239
|
+
<td>string, Reference of the resource to show the appointments of. <br><em> This is the only prop that is mandatory.</em><br> Everything else is optional. <br>Can also be a url parameter.</td>
|
|
240
|
+
</tr>
|
|
241
|
+
<tr>
|
|
242
|
+
<td>height</td>
|
|
243
|
+
<td> string, Height of timum on your page. `500px` is standard.</td>
|
|
244
|
+
</tr>
|
|
245
|
+
<tr>
|
|
246
|
+
<td>allowCloseOnBooking</td>
|
|
247
|
+
<td>boolean, whether the confirmation view is closeable once the booking was successfull.</td>
|
|
248
|
+
</tr>
|
|
249
|
+
<tr>
|
|
250
|
+
<td>hideTimumFooter</td>
|
|
251
|
+
<td>boolean, whether 'powered by timum' can be hidden or not. Needs premium plan.</td>
|
|
252
|
+
</tr>
|
|
253
|
+
<tr>
|
|
254
|
+
<td>channelKey</td>
|
|
255
|
+
<td>string, timum has, as of now, 4 different channels through which you can share your resource's appointments. <br> You can find them in the timum frontend under <resource name> -> Calendar Sharing (Terminbuchung freigeben). <br> Every channel has its own settings allowing you to control whom of your customers can see certain appointments, whether they book directly or create a request first and other settings. <br> Valid values for this attribute are: <br>
|
|
256
|
+
- RESOURCE_PUBLIC <br> referring to "Public Booking Link" (Öffentlicher Buchungs-Link) <br>
|
|
257
|
+
- RESOURCE_EXCLUSIVE <br> referring to "Exclusive Booking Access" (Exklusiver Buchungs-Zugang) <br>
|
|
258
|
+
- RESOURCE_REFERENCE <br> referring to "Embedded booking calendars" (Eingebettete Buchungskalender) <br>
|
|
259
|
+
- CALENDAR_PUBLIC <br> referring to "In all Website Plugin Views and your General Calendar" (In Website-Plugin Ansichten sowie Ihrem Gesamtkalender) <br>RESOURCE_PUBLIC is the default, used if you specify nothing else. <br><br>Can also be a url parameter.
|
|
260
|
+
</td>
|
|
261
|
+
</tr>
|
|
262
|
+
<tr>
|
|
263
|
+
<td>calendarFrontend</td>
|
|
264
|
+
<td>string, one of <code>fullCalendar</code> (that's what `init`'s 3rd parameter is for), <code>pureListView</code> or <code>detailsListView</code></td>
|
|
265
|
+
</tr>
|
|
266
|
+
<tr>
|
|
267
|
+
<td>culture</td>
|
|
268
|
+
<td>string, The localisation to use. If not specified the browser language is used. Can also be a url parameter.</td>
|
|
269
|
+
</tr>
|
|
270
|
+
<tr>
|
|
271
|
+
<td>pData</td>
|
|
272
|
+
<td>object, <br> Data indentifying the customer, so that they don't have to input their data again. <br> Works in conjunction with timum and select, supported plaforms like OnOffice, Immosolve etc. <br> Properties: <br>
|
|
273
|
+
<code>{ platform: string, personId: string }</code>
|
|
274
|
+
<br> Can also be a url parameter. -> the params are named differently though: pDataPlatform, pDataId
|
|
275
|
+
<blockquote>
|
|
276
|
+
Note: pData is ignored in favor of a timum auth cookie.
|
|
277
|
+
Use incognito mode, another browser or sign out to circumvent this.
|
|
278
|
+
</blockquote>
|
|
279
|
+
</td>
|
|
280
|
+
</tr>
|
|
281
|
+
<tr>
|
|
282
|
+
<td>callbacks</td>
|
|
283
|
+
<td>object, may contain various functions which allow to to run custom code in reaction to certain events. See below for a guide on how to do this. </td>
|
|
284
|
+
</tr>
|
|
285
|
+
<tr>
|
|
286
|
+
<td>fields</td>
|
|
287
|
+
<td>object, You can customise what information is demanded of your customers prior to booking. timum requires certain fields to work and has some optional fields it can parse. Fields other than those supported by timum can be evaluated in a callback (see the callback guide below for further info). All fields (yours too!) support localization and input validation.
|
|
288
|
+
<br>
|
|
289
|
+
Needs premium plan.
|
|
290
|
+
</td>
|
|
291
|
+
</tr>
|
|
292
|
+
<tr>
|
|
293
|
+
<td>localization</td>
|
|
294
|
+
<td>object. Contains all localization variables and their standard texts. timum nativly supports English and German. Use this to override the standard text and/or add translations for your custom field labels and input validations (see the localisation guide for mor info.)
|
|
295
|
+
<br>
|
|
296
|
+
Needs premium plan.
|
|
297
|
+
</td>
|
|
298
|
+
</tr>
|
|
193
299
|
</table>
|
|
194
300
|
|
|
195
301
|
<a name=”how_to_use_callbacks”></a>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { r as b, s as f, u as m, v as F, w as d, _ as C, x as l, y as n, z as T, A as v, C as x } from "./index-
|
|
1
|
+
import { r as b, s as f, u as m, v as F, w as d, _ as C, x as l, y as n, z as T, A as v, C as x } from "./index-f01854a3.js";
|
|
2
2
|
function y(o) {
|
|
3
3
|
return b("MuiTableFooter", o);
|
|
4
4
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { r as p, s as b, u as m, v as H, w as C, _ as T, x as r, y as n, z as f, A as h, C as v } from "./index-
|
|
1
|
+
import { r as p, s as b, u as m, v as H, w as C, _ as T, x as r, y as n, z as f, A as h, C as v } from "./index-f01854a3.js";
|
|
2
2
|
function x(e) {
|
|
3
3
|
return p("MuiTableHead", e);
|
|
4
4
|
}
|