comand-component-library 4.0.2 → 4.0.4

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 (53) hide show
  1. package/README.md +32 -32
  2. package/dist/comand-component-library.js +3315 -1486
  3. package/dist/comand-component-library.umd.cjs +3 -4
  4. package/dist/index.html +16 -16
  5. package/dist/style.css +1 -1
  6. package/dist/styles/demopage-only.css +4 -0
  7. package/dist/styles/templates/casual.css +3 -0
  8. package/package.json +4 -4
  9. package/src/App.vue +2117 -0
  10. package/src/ComponentLibrary.vue +275 -610
  11. package/src/assets/data/fake-select-options.json +3 -2
  12. package/src/assets/data/form-elements.json +1 -1
  13. package/src/assets/styles/{global-styles.scss → component-library-global-styles.scss} +27 -14
  14. package/src/componentSettingsDataAndControls.vue +705 -0
  15. package/src/components/CmdAddressData.vue +1 -2
  16. package/src/components/CmdBox.vue +106 -52
  17. package/src/components/CmdCopyrightInformation.vue +5 -3
  18. package/src/components/CmdFakeSelect.vue +149 -78
  19. package/src/components/CmdFancyBox.vue +2 -2
  20. package/src/components/CmdFormElement.vue +62 -36
  21. package/src/components/CmdGoogleMaps.vue +5 -0
  22. package/src/components/CmdHeadline.vue +13 -5
  23. package/src/components/CmdIcon.vue +6 -2
  24. package/src/components/CmdImage.vue +6 -1
  25. package/src/components/CmdImageGallery.vue +15 -4
  26. package/src/components/CmdInputGroup.vue +87 -35
  27. package/src/components/CmdListOfLinks.vue +20 -7
  28. package/src/components/CmdListOfRequirements.vue +10 -18
  29. package/src/components/CmdLoginForm.vue +14 -2
  30. package/src/components/CmdMainNavigation.vue +5 -1
  31. package/src/components/CmdMultistepFormProgressBar.vue +13 -8
  32. package/src/components/CmdNewsletterSubscription.vue +18 -1
  33. package/src/components/CmdOpeningHoursItem.vue +1 -3
  34. package/src/components/CmdPagination.vue +5 -1
  35. package/src/components/CmdSiteFooter.vue +12 -2
  36. package/src/components/CmdSiteHeader.vue +2 -1
  37. package/src/components/CmdSlideButton.vue +7 -1
  38. package/src/components/CmdSlideshow.vue +33 -5
  39. package/src/components/CmdSocialNetworks.vue +18 -13
  40. package/src/components/CmdSocialNetworksItem.vue +5 -1
  41. package/src/components/CmdSystemMessage.vue +7 -1
  42. package/src/components/CmdTabs.vue +7 -7
  43. package/src/components/CmdTextImageBlock.vue +11 -2
  44. package/src/components/CmdThumbnailScroller.vue +23 -5
  45. package/src/components/CmdToggleDarkMode.vue +2 -2
  46. package/src/components/CmdTooltip.vue +50 -15
  47. package/src/components/CmdTooltipForFormElements.vue +96 -0
  48. package/src/components/CmdUploadForm.vue +29 -24
  49. package/src/components/CmdWidthLimitationWrapper.vue +1 -1
  50. package/src/components/ComponentSettings.vue +1 -1
  51. package/src/components/EditComponentWrapper.vue +1 -1
  52. package/src/main.js +2 -2
  53. package/src/assets/data/accordion.json +0 -45
@@ -1,7 +1,7 @@
1
1
  <template>
2
+ <!-- begin default-view -->
2
3
  <div v-if="!editModeContext || settingsContext || mainSidebarContext"
3
4
  :class="['cmd-headline', {'has-pre-headline-text': preHeadlineText, 'has-icon': headlineIcon?.iconClass}, getTextAlign]">
4
-
5
5
  <template v-if="preHeadlineText">
6
6
  <component v-if="headlineText" :is="headlineTag">
7
7
  <!-- begin CmdIcon -->
@@ -21,17 +21,20 @@
21
21
  </span>
22
22
  </component>
23
23
  </template>
24
- <component v-else-if="headlineText" :is="headlineTag">
24
+ <component v-else :is="headlineTag">
25
25
  <!-- begin CmdIcon -->
26
26
  <CmdIcon v-if="headlineIcon" :iconClass="headlineIcon?.iconClass" :type="headlineIcon?.iconType"/>
27
27
  <!-- end CmdIcon -->
28
+
28
29
  <span>
29
- <!-- being slot -->
30
- <slot>{{ headlineText }}</slot>
30
+ <!-- being slot -->
31
+ <slot>{{ headlineText }}</slot>
31
32
  <!-- end slot -->
32
33
  </span>
33
34
  </component>
34
35
  </div>
36
+ <!-- end default-view -->
37
+
35
38
  <!-- begin edit-mode -->
36
39
  <EditComponentWrapper
37
40
  v-else
@@ -142,7 +145,12 @@ export default {
142
145
  */
143
146
  textAlign: {
144
147
  type: String,
145
- default: null
148
+ default: null,
149
+ validator(value) {
150
+ return value === "left" ||
151
+ value === "center" ||
152
+ value === "right"
153
+ }
146
154
  }
147
155
  },
148
156
  computed: {
@@ -28,7 +28,11 @@ export default {
28
28
  */
29
29
  type: {
30
30
  type: String,
31
- default: "auto"
31
+ default: "auto",
32
+ validator(value) {
33
+ return value === "auto" ||
34
+ value === "iconify"
35
+ }
32
36
  },
33
37
  /**
34
38
  * icon-class for icon from local iconfont
@@ -65,7 +69,7 @@ export default {
65
69
 
66
70
  <style>
67
71
  .iconify {
68
- font-size: var(--icon-size);
72
+ font-size: var(--default-icon-size);
69
73
  vertical-align: text-bottom;
70
74
 
71
75
  & + span, span + & {
@@ -376,6 +376,11 @@ export default {
376
376
  display: block;
377
377
  }
378
378
 
379
+ figcaption {
380
+ border-bottom-left-radius: var(--default-border-radius);
381
+ border-bottom-right-radius: var(--default-border-radius);
382
+ }
383
+
379
384
  &.text-center {
380
385
  figcaption {
381
386
  text-align: center;
@@ -401,7 +406,7 @@ export default {
401
406
  transform: translateX(-50%) translateY(-50%);
402
407
  font-size: 10rem;
403
408
  color: var(--pure-white);
404
- text-shadow: var(--text-shadow);
409
+ text-shadow: var(--default-text-shadow);
405
410
  z-index: 10;
406
411
  }
407
412
 
@@ -15,13 +15,13 @@
15
15
  href="#"
16
16
  @click.prevent="showFancyBox(index)"
17
17
  :title="getMessage('cmdimagegallery.tooltip.open_large_image')">
18
- <CmdImage :image="image.image" :figcaption="image.figcaption"/>
18
+ <CmdImage :image="image.image" :figcaption="figcaption(image)"/>
19
19
  </a>
20
20
  <!-- end images linked to fancybox -->
21
21
 
22
22
  <!-- begin images not linked to fancybox -->
23
23
  <div v-else v-for="(image, index) in images" :key="`i${index}`" class="image-wrapper">
24
- <CmdImage :image="image.image" :figcaption="image.figcaption"/>
24
+ <CmdImage :image="image.image" :figcaption="figcaption(image)"/>
25
25
  </div>
26
26
  <!-- end images not linked to fancybox -->
27
27
  </template>
@@ -89,7 +89,11 @@ export default {
89
89
  */
90
90
  figcaptionPosition: {
91
91
  type: String,
92
- default: "bottom"
92
+ required: false,
93
+ validator(value) {
94
+ return value === "top" ||
95
+ value === "bottom"
96
+ }
93
97
  }
94
98
  },
95
99
  methods: {
@@ -107,6 +111,13 @@ export default {
107
111
  }
108
112
  }
109
113
  },
114
+ figcaption(image) {
115
+ const figcaption = {...image.figcaption}
116
+ if(this.figcaptionPosition) {
117
+ figcaption.position = this.figcaptionPosition
118
+ }
119
+ return figcaption
120
+ },
110
121
  onAddItem() {
111
122
  this.editModeContext.content.addContent(
112
123
  buildComponentPath(this, 'props', 'images', -1),
@@ -162,7 +173,7 @@ export default {
162
173
 
163
174
  img {
164
175
  border: var(--default-border);
165
- border-radius: var(--border-radius);
176
+ border-radius: var(--default-border-radius);
166
177
  max-height: 30rem;
167
178
  }
168
179
 
@@ -2,19 +2,36 @@
2
2
  <div :class="[
3
3
  'cmd-input-group label',
4
4
  validationStatus,
5
- {inline: labelInline,
6
- 'multiple-switch': multipleSwitch,
7
- disabled: disabled,
8
- 'toggle-switch': toggleSwitch,
9
- 'has-state': validationStatus
5
+ {
6
+ inline: labelInline,
7
+ 'multiple-switch': multipleSwitch,
8
+ disabled: disabled,
9
+ 'toggle-switch': toggleSwitch,
10
+ 'has-state': validationStatus
10
11
  }
11
12
  ]"
12
13
  :aria-labelledby="htmlId">
14
+
15
+ <!-- begin label -->
13
16
  <span v-show="showLabel" class="label-text">
14
- <span :id="htmlId">{{ labelText }}<sup v-if="required">*</sup></span>
17
+ <span :id="htmlId">{{ labelText }}<sup v-if="required">*</sup></span>
18
+
19
+ <!-- begin status-icon -->
20
+ <a v-if="(required || inputRequirements.length > 0) && showStatusIcon"
21
+ href="#"
22
+ @click.prevent
23
+ :title="validationTooltip"
24
+ :aria-errormessage="tooltipId"
25
+ aria-live="assertive"
26
+ :id="tooltipId">
27
+ <!-- begin CmdIcon -->
28
+ <CmdIcon :iconClass="getStatusIconClass"/>
29
+ <!-- end CmdIcon -->
30
+ </a>
31
+ <!-- end status-icon -->
15
32
 
16
- <!-- begin CmdTooltipForInputElements -->
17
- <CmdTooltipForInputElements
33
+ <!-- begin CmdTooltipForFormElements -->
34
+ <CmdTooltipForFormElements
18
35
  v-if="useCustomTooltip && (validationStatus === '' || validationStatus === 'error')"
19
36
  ref="tooltip"
20
37
  :showRequirements="showRequirements"
@@ -27,20 +44,11 @@
27
44
  :relatedId="tooltipId"
28
45
  :role="validationStatus === 'error' ? 'alert' : 'dialog'"
29
46
  />
30
- <!-- end CmdTooltipForInputElements -->
31
-
32
- <a v-if="required || inputRequirements.length"
33
- href="#"
34
- @click.prevent
35
- :title="validationTooltip"
36
- :aria-errormessage="tooltipId"
37
- aria-live="assertive"
38
- :id="tooltipId">
39
- <!-- begin CmdIcon -->
40
- <CmdIcon :iconClass="getStatusIconClass"/>
41
- <!-- end CmdIcon -->
42
- </a>
47
+ <!-- end CmdTooltipForFormElements -->
43
48
  </span>
49
+ <!-- end label -->
50
+
51
+ <!-- begin view without slot -->
44
52
  <span v-if="!useSlot" :class="['flex-container', {'no-flex': !stretchHorizontally, 'no-gap': multipleSwitch}]">
45
53
  <label v-for="(inputElement, index) in inputElements" :key="index" :for="inputElement.id">
46
54
  <input
@@ -53,12 +61,16 @@
53
61
  :class="{'replace-input-type': replaceInputType, 'toggle-switch': toggleSwitch}"
54
62
  />
55
63
  <!-- begin CmdIcon -->
56
- <CmdIcon v-if="multipleSwitch && inputElement.iconClass" :iconClass="inputElement.iconClass"
57
- :type="inputElement.iconType"/>
64
+ <CmdIcon
65
+ v-if="multipleSwitch && inputElement.iconClass"
66
+ :iconClass="inputElement.iconClass"
67
+ :type="inputElement.iconType"
68
+ />
58
69
  <!-- end CmdIcon -->
59
- <span v-if="inputElement.labelText">{{ inputElement.labelText }}</span>
70
+ <span v-if="inputElement.labelText" class="label-text">{{ inputElement.labelText }}</span>
60
71
  </label>
61
72
  </span>
73
+ <!-- end view without slot -->
62
74
 
63
75
  <!-- begin useSlot -->
64
76
  <div v-else class="flex-container no-flex">
@@ -82,11 +94,6 @@ export default {
82
94
  Identifier,
83
95
  Tooltip
84
96
  ],
85
- data() {
86
- return {
87
- value: ""
88
- }
89
- },
90
97
  props: {
91
98
  /**
92
99
  * set value for v-model (must be named modelValue in vue3 if default v-model should be used)
@@ -102,6 +109,13 @@ export default {
102
109
  type: Boolean,
103
110
  default: false
104
111
  },
112
+ /**
113
+ * activate if interactive status-icon (to show requirements) should be shown inline with label
114
+ */
115
+ showStatusIcon: {
116
+ type: Boolean,
117
+ default: true
118
+ },
105
119
  /**
106
120
  * list of input-elements inside group
107
121
  *
@@ -118,18 +132,29 @@ export default {
118
132
  */
119
133
  inputTypes: {
120
134
  type: String,
121
- default: "radio"
135
+ default: "radio",
136
+ validator(value) {
137
+ return value === "checkbox" ||
138
+ value === "radio"
139
+ }
122
140
  },
123
141
  /**
124
142
  * set status for label and inner form-elements
125
143
  *
126
- * @allowedValues: error, warning, success, info
144
+ * @allowedValues: "", error, warning, success, info
127
145
  *
128
146
  * @affectsStyling: true
129
147
  */
130
148
  status: {
131
149
  type: String,
132
- required: false
150
+ required: false,
151
+ validator(value) {
152
+ return value === "" ||
153
+ value === "error" ||
154
+ value === "warning" ||
155
+ value === "success" ||
156
+ value === "info"
157
+ }
133
158
  },
134
159
  /**
135
160
  * for replacing native checkboxes/radio-buttons by custom ones (based on frontend-framework)
@@ -267,6 +292,7 @@ export default {
267
292
  </script>
268
293
 
269
294
  <style>
295
+ /* begin cmd-input-group ------------------------------------------------------------------------------------------ */
270
296
  .cmd-input-group {
271
297
  &.inline {
272
298
  display: flex;
@@ -279,24 +305,50 @@ export default {
279
305
  }
280
306
 
281
307
  /* overwrite default behavior from frontend-framework */
282
- .label-text {
308
+ > .label-text {
283
309
  display: inline-flex;
310
+ margin-bottom: calc(var(--default-margin) / 2);
284
311
 
285
- > span + a [class*="icon-"] {
312
+ > span + a:has([class*="icon-"]) {
286
313
  margin-left: calc(var(--default-margin) / 2);
287
314
  }
315
+
316
+ &:hover, &:active, &:focus {
317
+ span {
318
+ color: var(--hyperlink-color-highlighted)
319
+ }
320
+
321
+ & + .flex-container {
322
+ label:not(:has(input:checked)) .label-text {
323
+ color: var(--default-text-color);
324
+ }
325
+
326
+ input {
327
+ border-color: var(--default-border-color);
328
+ }
329
+ }
330
+ }
288
331
  }
289
332
 
290
333
  &.has-state {
291
- label {
334
+ &.error {
335
+ --status-color: var(--error-color);
336
+ }
337
+
338
+ label, [class*="icon-"] {
292
339
  color: var(--status-color);
293
340
  }
294
341
 
295
342
  &.multiple-switch {
296
343
  label {
297
344
  border-color: var(--status-color);
345
+
346
+ > * {
347
+ color: var(--status-color);
348
+ }
298
349
  }
299
350
  }
300
351
  }
301
352
  }
353
+ /* end cmd-input-group ------------------------------------------------------------------------------------------ */
302
354
  </style>
@@ -8,7 +8,7 @@
8
8
  <!-- end cmd-headline -->
9
9
 
10
10
  <!-- begin list of links -->
11
- <ul :class="['flex-container', {'no-gap': !useGap},'align-' + align, setStretchClass]">
11
+ <ul :class="['flex-container', {'no-gap': !useGap}, 'align-' + align, setStretchClass]">
12
12
  <CmdListOfLinksItem
13
13
  v-if="!editModeContext"
14
14
  v-for="(link, index) in links"
@@ -106,7 +106,12 @@ export default {
106
106
  */
107
107
  align: {
108
108
  type: String,
109
- default: "left"
109
+ default: "left",
110
+ validator(value) {
111
+ return value === "left" ||
112
+ value === "center" ||
113
+ value === "right"
114
+ }
110
115
  },
111
116
  /**
112
117
  * properties for CmdHeadline-component
@@ -129,7 +134,11 @@ export default {
129
134
  */
130
135
  orientation: {
131
136
  type: String,
132
- default: "vertical"
137
+ default: "vertical",
138
+ validator(value) {
139
+ return value === "horizontal" ||
140
+ value === "vertical"
141
+ }
133
142
  }
134
143
  },
135
144
  computed: {
@@ -183,6 +192,14 @@ export default {
183
192
  list-style: none;
184
193
  margin-left: 0;
185
194
  }
195
+
196
+ &.align-center {
197
+ justify-content: center;
198
+ }
199
+
200
+ &.align-right li {
201
+ text-align: right;
202
+ }
186
203
  }
187
204
 
188
205
  &.horizontal {
@@ -195,10 +212,6 @@ export default {
195
212
  display: flex;
196
213
  }
197
214
 
198
- &.align-center {
199
- justify-content: center;
200
- }
201
-
202
215
  &.align-right {
203
216
  justify-content: flex-end;
204
217
  }
@@ -2,7 +2,7 @@
2
2
  <div class="cmd-list-of-requirements">
3
3
  <!-- begin CmdHeadline -->
4
4
  <CmdHeadline v-if="showHeadline" :headline-level="cmdHeadline.headlineLevel">
5
- {{ headlineRequirements }}<template v-if="labelText"><br/><em>{{ labelText }}</em></template>
5
+ {{ headlineRequirements }}<template v-if="labelText"><br/><em>{{ labelText }}</em></template>
6
6
  </CmdHeadline>
7
7
  <!-- end CmdHeadline -->
8
8
 
@@ -154,27 +154,23 @@ export default {
154
154
  /* begin cmd-list-of-requirements ------------------------------------------------------------------------------------------ */
155
155
  .cmd-list-of-requirements {
156
156
  dl {
157
- .error {
158
- --status-color: var(--error-color);
157
+ span[class*="icon-"] {
158
+ color: var(--status-color);
159
+ }
159
160
 
160
- [class*="icon-"] {
161
- color: var(--status-color);
162
- }
161
+ .error, .error span {
162
+ --status-color: var(--error-color);
163
163
  }
164
164
 
165
- .warning {
165
+ .warning, .warning span {
166
166
  --status-color: var(--warning-color);
167
167
  }
168
168
 
169
- .success {
170
- --status-color: var(--success-color) !important;
171
-
172
- [class*="icon-"] {
173
- color: var(--status-color);
174
- }
169
+ .success, .success span {
170
+ --status-color: var(--success-color);
175
171
  }
176
172
 
177
- .info {
173
+ .info, .info span {
178
174
  --status-color: var(--info-color);
179
175
  }
180
176
 
@@ -182,10 +178,6 @@ export default {
182
178
  color: var(--status-color);
183
179
  }
184
180
 
185
- [class*="icon-"] {
186
- color: var(--status-color);
187
- }
188
-
189
181
  & ~ a {
190
182
  display: flex;
191
183
  align-items: center;
@@ -15,6 +15,7 @@
15
15
  <CmdFormElement
16
16
  element="input"
17
17
  type="text"
18
+ ref="username"
18
19
  :name="cmdFormElementUsername.name"
19
20
  :id="cmdFormElementUsername.id"
20
21
  v-model="username"
@@ -46,7 +47,7 @@
46
47
  <div class="option-wrapper flex-container">
47
48
  <template v-if="options.forgotPassword || options.createAccount">
48
49
  <!-- begin link for 'forgot password' -->
49
- <a v-if="options.forgotPassword" href="#" @click.prevent="sendLogin = true">
50
+ <a v-if="options.forgotPassword" href="#" @click.prevent="toggleSendLoginView">
50
51
  <!-- begin CmdIcon -->
51
52
  <CmdIcon v-if="options.forgotPassword.icon?.show && options.forgotPassword.icon?.iconClass"
52
53
  :iconClass="options.forgotPassword.icon.iconClass"
@@ -134,7 +135,7 @@
134
135
  <!-- end CmdFormElement -->
135
136
 
136
137
  <div class="option-wrapper flex-container">
137
- <a href="#" @click.prevent="sendLogin = false">
138
+ <a href="#" @click.prevent="toggleSendLoginView">
138
139
  <!-- begin CmdIcon -->
139
140
  <CmdIcon
140
141
  v-if="options.backToLoginForm && options.backToLoginForm.icon && options.backToLoginForm.icon.show && options.backToLoginForm.icon.iconClass"
@@ -392,6 +393,17 @@ export default {
392
393
  }
393
394
  },
394
395
  methods: {
396
+ toggleSendLoginView() {
397
+ this.sendLogin = !this.sendLogin
398
+
399
+ this.$nextTick(() => {
400
+ if(this.sendLogin) {
401
+ this.$refs.sendPassword.setFocus()
402
+ } else {
403
+ this.$refs.username.setFocus()
404
+ }
405
+ })
406
+ },
395
407
  modelChange() {
396
408
  this.$emit("update:modelValue", { "username": this.username, "password": this.password })
397
409
  },
@@ -219,7 +219,11 @@ export default {
219
219
  */
220
220
  offcanvasPosition: {
221
221
  type: String,
222
- default: "right"
222
+ default: "right",
223
+ validator(value) {
224
+ return value === "right" ||
225
+ value === "left"
226
+ }
223
227
  },
224
228
  /**
225
229
  * button to open off-canvas-navigation
@@ -119,7 +119,8 @@ export default {
119
119
  gap: var(--default-gap);
120
120
 
121
121
  li {
122
- border: var(--default-border) !important;
122
+ border: var(--default-border);
123
+ border-color: var(--primary-color-reduced-opacity);
123
124
  border-radius: var(--default-border-radius);;
124
125
 
125
126
  a, a.active {
@@ -138,6 +139,14 @@ export default {
138
139
  color: var(--default-text-color) !important;
139
140
  }
140
141
  }
142
+
143
+ &.active {
144
+ border-color: var(--primary-color);
145
+
146
+ & ~li {
147
+ border-color: var(--border-color);
148
+ }
149
+ }
141
150
  }
142
151
  }
143
152
 
@@ -174,7 +183,7 @@ export default {
174
183
  border: var(--default-border);
175
184
  border-radius: var(--full-circle);
176
185
  background: var(--pure-white);
177
- color: var(--text-color);
186
+ color: var(--default-text-color);
178
187
  margin: 0;
179
188
  position: absolute;
180
189
  right: 0;
@@ -219,10 +228,6 @@ export default {
219
228
  }
220
229
  }
221
230
 
222
- &:not(:first-child) {
223
- border-left: .2rem solid var(--border-color);
224
- }
225
-
226
231
  &:last-child {
227
232
  a {
228
233
  [class*="icon-"] {
@@ -247,7 +252,7 @@ export default {
247
252
 
248
253
  & + [class*="icon-"] {
249
254
  &:last-child {
250
- color: var(--text-color);
255
+ color: var(--default-text-color);
251
256
  }
252
257
  }
253
258
  }
@@ -261,7 +266,7 @@ export default {
261
266
  }
262
267
 
263
268
  & ~ li {
264
- background: var(--default-background-color);
269
+ background: var(--default-background);
265
270
  border-left-color: var(--border-color);
266
271
 
267
272
  a {
@@ -34,7 +34,7 @@
34
34
  element="button"
35
35
  :type="buttonType"
36
36
  :disabled="buttonDisabled"
37
- :nativeButton="cmdFormElementSubmit"
37
+ :nativeButton="cmdFormElementSubmitDynamicLabel"
38
38
  @click="sendData"
39
39
  />
40
40
  <!-- end cmd-form-element -->
@@ -145,6 +145,14 @@ export default {
145
145
  }
146
146
  },
147
147
  computed: {
148
+ cmdFormElementSubmitDynamicLabel() {
149
+ return this.updateButtonLabelText
150
+ },
151
+ updateButtonLabelText() {
152
+ const button = {...this.cmdFormElementSubmit}
153
+ button.text = this.subscription === "subscribe" ? "Subscribe now" : "Unsubscribe from list"
154
+ return button
155
+ },
148
156
  subscription: {
149
157
  get() {
150
158
  return this.modelValue.subscription || "subscribe"
@@ -169,6 +177,15 @@ export default {
169
177
  checkValidationStatus(event) {
170
178
  this.buttonDisabled = event !== "success"
171
179
  }
180
+ },
181
+ watch: {
182
+ modelValue: {
183
+ handler() {
184
+ return this.updateButtonLabelText
185
+ },
186
+ deep: true,
187
+ immediate: true
188
+ }
172
189
  }
173
190
  }
174
191
  </script>
@@ -197,13 +197,11 @@ export default {
197
197
  toggleClosedStatus(period) {
198
198
  period === 'am' ? this.editableDay.amClosed = !this.editableDay.amClosed : this.editableDay.pmClosed = !this.editableDay.pmClosed
199
199
  },
200
- getTime(time, suffix) {
200
+ getTime(time) {
201
201
  if (this.timeFormatter) {
202
202
  return this.timeFormatter(time.hours, time.mins)
203
203
  }
204
204
 
205
- console.log("suffix", suffix)
206
-
207
205
  return timeFormatting(":", " " + this.abbreviationTextAm, " " + this.abbreviationTextPm, false)(time.hours, time.mins)
208
206
  },
209
207
  updateHandlerProvider() {
@@ -90,7 +90,11 @@ export default {
90
90
  */
91
91
  linkType: {
92
92
  type: String,
93
- default: "href"
93
+ default: "href",
94
+ validator(value) {
95
+ return value === "href" ||
96
+ value === "button"
97
+ }
94
98
  },
95
99
  /**
96
100
  * link to switch to previous page