@progress/kendo-vue-scheduler 3.10.2 → 3.11.0-dev.202305230751

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 (38) hide show
  1. package/dist/cdn/js/kendo-vue-scheduler.js +1 -1
  2. package/dist/es/Scheduler.js +17 -9
  3. package/dist/es/components/SchedulerActionButtons.js +34 -5
  4. package/dist/es/components/SchedulerForm.js +1 -1
  5. package/dist/es/components/header/view-selector/SchedulerViewSelector.js +1 -13
  6. package/dist/es/components/header/view-selector/ViewSelectorItem.js +1 -0
  7. package/dist/es/components/header/view-selector/ViewSelectorList.js +31 -80
  8. package/dist/es/editors/SchedulerFormEditor.js +869 -169
  9. package/dist/es/items/SchedulerItem.js +48 -28
  10. package/dist/es/package-metadata.js +1 -1
  11. package/dist/es/recurrence/RecurrenceEditor.js +313 -100
  12. package/dist/es/recurrence/RecurrenceFrequencyEditor.js +1 -0
  13. package/dist/es/views/agenda/AgendaViewBody.js +8 -8
  14. package/dist/esm/Scheduler.js +17 -9
  15. package/dist/esm/components/SchedulerActionButtons.js +34 -5
  16. package/dist/esm/components/SchedulerForm.js +1 -1
  17. package/dist/esm/components/header/view-selector/SchedulerViewSelector.js +1 -13
  18. package/dist/esm/components/header/view-selector/ViewSelectorItem.js +1 -0
  19. package/dist/esm/components/header/view-selector/ViewSelectorList.js +31 -80
  20. package/dist/esm/editors/SchedulerFormEditor.js +869 -169
  21. package/dist/esm/items/SchedulerItem.js +48 -28
  22. package/dist/esm/package-metadata.js +1 -1
  23. package/dist/esm/recurrence/RecurrenceEditor.js +313 -100
  24. package/dist/esm/recurrence/RecurrenceFrequencyEditor.js +1 -0
  25. package/dist/esm/views/agenda/AgendaViewBody.js +8 -8
  26. package/dist/npm/Scheduler.js +16 -8
  27. package/dist/npm/components/SchedulerActionButtons.js +34 -5
  28. package/dist/npm/components/SchedulerForm.js +1 -1
  29. package/dist/npm/components/header/view-selector/SchedulerViewSelector.js +1 -12
  30. package/dist/npm/components/header/view-selector/ViewSelectorItem.js +1 -0
  31. package/dist/npm/components/header/view-selector/ViewSelectorList.js +30 -79
  32. package/dist/npm/editors/SchedulerFormEditor.js +868 -168
  33. package/dist/npm/items/SchedulerItem.js +48 -28
  34. package/dist/npm/package-metadata.js +1 -1
  35. package/dist/npm/recurrence/RecurrenceEditor.js +313 -100
  36. package/dist/npm/recurrence/RecurrenceFrequencyEditor.js +1 -0
  37. package/dist/npm/views/agenda/AgendaViewBody.js +8 -8
  38. package/package.json +12 -12
@@ -25,15 +25,15 @@ var allVue = Vue;
25
25
  var gh = allVue.h;
26
26
  var isV3 = allVue.version && allVue.version[0] === '3';
27
27
  import { getModelFields, getField, findMaster, setField, toSchedulerGroups, getToday } from './utils/main';
28
- import { clone, getListeners, getTemplate, templateRendering } from '@progress/kendo-vue-common';
29
- import { provideIntlService, provideLocalizationService } from '@progress/kendo-vue-intl';
28
+ import { clone, getListeners, getTemplate, isRtl, templateRendering } from '@progress/kendo-vue-common';
30
29
  import { SchedulerHeader } from './components/header/SchedulerHeader';
30
+ import { provideIntlService, provideLocalizationService } from '@progress/kendo-vue-intl';
31
31
  import { SchedulerNavigation } from './components/header/navigation/SchedulerNavigation';
32
- import { SchedulerViewSelector } from './components/header/view-selector/SchedulerViewSelector';
33
32
  import { addDays, addMonths } from '@progress/kendo-date-math';
34
33
  import { SchedulerFooter } from './components/footer/SchedulerFooter';
35
34
  import { ToolbarSpacer } from '@progress/kendo-vue-buttons';
36
35
  import { NavigationDatePicker } from './components/header/navigation/NavigationDatePicker';
36
+ import { ViewSelectorList } from './components/header/view-selector/ViewSelectorList';
37
37
  import { BusinessHours } from './components/footer/bussiness-hours/BusinessHours';
38
38
  import { DayView } from './views/day/DayView';
39
39
  import { validatePackage } from '@progress/kendo-vue-common';
@@ -121,9 +121,12 @@ var SchedulerVue2 = {
121
121
  timeHeaderCell: [String, Function, Object]
122
122
  },
123
123
  computed: {
124
+ isRtl: function isRtl() {
125
+ return this.$props.rtl !== undefined ? this.$props.rtl : this.currentRtl;
126
+ },
124
127
  wrapperClassName: function wrapperClassName() {
125
128
  return {
126
- 'k-rtl': this.$props.rtl !== undefined ? this.$props.rtl : this.dir === 'rtl',
129
+ 'k-rtl': this.isRtl,
127
130
  'k-widget': true,
128
131
  'k-scheduler': true,
129
132
  'k-floatwrap': true
@@ -133,6 +136,9 @@ var SchedulerVue2 = {
133
136
  return getModelFields(this.$props.modelFields).fields;
134
137
  }
135
138
  },
139
+ mounted: function mounted() {
140
+ this.currentRtl = isRtl(this.$el);
141
+ },
136
142
  provide: function provide() {
137
143
  return {
138
144
  ks: this.ks,
@@ -195,6 +201,9 @@ var SchedulerVue2 = {
195
201
  };
196
202
  },
197
203
  watch: {
204
+ isRtl: function isRtl(newRtl) {
205
+ this.ks.isRtl = newRtl;
206
+ },
198
207
  view: function view(newName) {
199
208
  this.updatePassedState(newName);
200
209
  },
@@ -224,7 +233,6 @@ var SchedulerVue2 = {
224
233
  var h = gh || createElement;
225
234
  validatePackage(packageMetadata);
226
235
  var timezone = this.$props.timezone;
227
- // const dir = useDir(element);
228
236
  var view = this.views.find(function (currentView) {
229
237
  return currentView.name === _this.ks.activeViewName;
230
238
  }) || this.views[0] || h(DayView);
@@ -243,7 +251,6 @@ var SchedulerVue2 = {
243
251
  this.ks.dialogProps = view.dialogProps || this.$props.dialogProps;
244
252
  this.ks.formProps = view.formProps || this.$props.formProps;
245
253
  var currentEditable = useEditable(view.editable !== undefined ? view.editable : this.$props.editable);
246
- var ViewSelector = SchedulerViewSelector;
247
254
  var viewComponent = this.getViewComponentByName(this.ks.activeViewName || view.name);
248
255
  var viewProps = __assign(__assign(__assign({}, this.$props), this.ks.view), {
249
256
  showWorkHours: this.ks.showWorkHours,
@@ -283,7 +290,7 @@ var SchedulerVue2 = {
283
290
  on: _this2.v3 ? undefined : {
284
291
  "change": _this2.handleDatePickerChange
285
292
  }
286
- }), h(ToolbarSpacer), h(ViewSelector)];
293
+ }), h(ToolbarSpacer), h(ViewSelectorList)];
287
294
  } : [h(SchedulerNavigation, {
288
295
  onPrevclick: _this2.handlePrevClick,
289
296
  on: _this2.v3 ? undefined : {
@@ -302,7 +309,7 @@ var SchedulerVue2 = {
302
309
  on: _this2.v3 ? undefined : {
303
310
  "change": _this2.handleDatePickerChange
304
311
  }
305
- }), h(ToolbarSpacer), h(ViewSelector)]);
312
+ }), h(ToolbarSpacer), h(ViewSelectorList)]);
306
313
  headerRender = getTemplate.call(this, {
307
314
  h: h,
308
315
  template: header,
@@ -360,8 +367,8 @@ var SchedulerVue2 = {
360
367
  id: this.$props.id,
361
368
  tabindex: this.$props.tabIndex
362
369
  // Aria
363
- // dir={dir}
364
370
  ,
371
+ dir: this.isRtl && 'rtl',
365
372
  role: this.$props.role || 'application',
366
373
  "aria-label": this.$props.ariaLabel,
367
374
  "aria-labelledby": this.$props.ariaLabelledby
@@ -372,6 +379,7 @@ var SchedulerVue2 = {
372
379
  },
373
380
  "class": this.wrapperClassName,
374
381
  tabindex: this.$props.tabIndex,
382
+ dir: this.isRtl && 'rtl',
375
383
  role: this.$props.role || 'application',
376
384
  "aria-label": this.$props.ariaLabel,
377
385
  "aria-labelledby": this.$props.ariaLabelledby,
@@ -5,6 +5,7 @@ var gh = allVue.h;
5
5
  var isV3 = allVue.version && allVue.version[0] === '3';
6
6
  import { Button } from '@progress/kendo-vue-buttons';
7
7
  import { DialogActionsBar } from '@progress/kendo-vue-dialogs';
8
+ import { cancelIcon, saveIcon } from '@progress/kendo-svg-icons';
8
9
  /**
9
10
  * @hidden
10
11
  */
@@ -33,7 +34,11 @@ var SchedulerActionButtonsVue2 = {
33
34
  return (
34
35
  // @ts-ignore function children
35
36
  h(DialogActionsBar, {
36
- "class": 'k-form-buttons'
37
+ "class": 'k-form-buttons',
38
+ layout: 'start',
39
+ attrs: this.v3 ? undefined : {
40
+ layout: 'start'
41
+ }
37
42
  }, this.v3 ? function () {
38
43
  return [
39
44
  // @ts-ignore function children
@@ -41,9 +46,15 @@ var SchedulerActionButtonsVue2 = {
41
46
  type: "submit",
42
47
  attrs: _this.v3 ? undefined : {
43
48
  type: "submit",
44
- disabled: !_this.kendoForm.allowSubmit
49
+ themeColor: 'primary',
50
+ disabled: !_this.kendoForm.allowSubmit,
51
+ icon: 'save',
52
+ svgIcon: saveIcon
45
53
  },
54
+ themeColor: 'primary',
46
55
  disabled: !_this.kendoForm.allowSubmit,
56
+ icon: 'save',
57
+ svgIcon: saveIcon,
47
58
  onClick: _this.onSubmit,
48
59
  on: _this.v3 ? undefined : {
49
60
  "click": _this.onSubmit
@@ -56,7 +67,13 @@ var SchedulerActionButtonsVue2 = {
56
67
  onClick: _this.handleCancel,
57
68
  on: _this.v3 ? undefined : {
58
69
  "click": _this.handleCancel
59
- }
70
+ },
71
+ icon: 'cancel',
72
+ attrs: _this.v3 ? undefined : {
73
+ icon: 'cancel',
74
+ svgIcon: cancelIcon
75
+ },
76
+ svgIcon: cancelIcon
60
77
  }, _this.v3 ? function () {
61
78
  return [_this.editCancelMessage];
62
79
  } : [_this.editCancelMessage])];
@@ -64,9 +81,15 @@ var SchedulerActionButtonsVue2 = {
64
81
  type: "submit",
65
82
  attrs: _this.v3 ? undefined : {
66
83
  type: "submit",
67
- disabled: !_this.kendoForm.allowSubmit
84
+ themeColor: 'primary',
85
+ disabled: !_this.kendoForm.allowSubmit,
86
+ icon: 'save',
87
+ svgIcon: saveIcon
68
88
  },
89
+ themeColor: 'primary',
69
90
  disabled: !_this.kendoForm.allowSubmit,
91
+ icon: 'save',
92
+ svgIcon: saveIcon,
70
93
  onClick: _this.onSubmit,
71
94
  on: _this.v3 ? undefined : {
72
95
  "click": _this.onSubmit
@@ -77,7 +100,13 @@ var SchedulerActionButtonsVue2 = {
77
100
  onClick: _this.handleCancel,
78
101
  on: _this.v3 ? undefined : {
79
102
  "click": _this.handleCancel
80
- }
103
+ },
104
+ icon: 'cancel',
105
+ attrs: _this.v3 ? undefined : {
106
+ icon: 'cancel',
107
+ svgIcon: cancelIcon
108
+ },
109
+ svgIcon: cancelIcon
81
110
  }, _this.v3 ? function () {
82
111
  return [_this.editCancelMessage];
83
112
  } : [_this.editCancelMessage])])
@@ -134,7 +134,7 @@ var SchedulerFormVue2 = {
134
134
  var dialogProps = __assign({
135
135
  title: editorTitleMessage,
136
136
  appendTo: 'body',
137
- minWidth: this.media === 'desktop' ? 600 : '85%',
137
+ minWidth: this.media === 'desktop' ? 400 : '85%',
138
138
  wrapperId: this.dialogId
139
139
  }, this.ks.dialogProps);
140
140
  var formProps = __assign({
@@ -3,8 +3,6 @@ import * as Vue from 'vue';
3
3
  var allVue = Vue;
4
4
  var gh = allVue.h;
5
5
  var isV3 = allVue.version && allVue.version[0] === '3';
6
- import { ToolbarItem } from '@progress/kendo-vue-buttons';
7
- import { getDefaultSlots } from '@progress/kendo-vue-common';
8
6
  import { ViewSelectorList } from './ViewSelectorList';
9
7
  /**
10
8
  * @hidden
@@ -22,17 +20,7 @@ var SchedulerViewSelectorVue2 = {
22
20
  // @ts-ignore
23
21
  render: function render(createElement) {
24
22
  var h = gh || createElement;
25
- var defaultSlot = getDefaultSlots(this);
26
- return (
27
- // @ts-ignore function children
28
- h(ToolbarItem
29
- // ref={(item) => { if (item) { element.current = item.element; } }}
30
- , {
31
- "class": 'k-scheduler-views'
32
- }, this.v3 ? function () {
33
- return [h(ViewSelectorList)];
34
- } : [h(ViewSelectorList)])
35
- );
23
+ return h(ViewSelectorList);
36
24
  }
37
25
  };
38
26
  /**
@@ -42,6 +42,7 @@ var ViewSelectorItemVue2 = {
42
42
  return (
43
43
  // @ts-ignore function children
44
44
  h(Button, {
45
+ "class": "k-toolbar-button",
45
46
  role: "button",
46
47
  attrs: this.v3 ? undefined : {
47
48
  role: "button",
@@ -1,26 +1,12 @@
1
- var __assign = this && this.__assign || function () {
2
- __assign = Object.assign || function (t) {
3
- for (var s, i = 1, n = arguments.length; i < n; i++) {
4
- s = arguments[i];
5
- for (var p in s) {
6
- if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
7
- }
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
1
  // @ts-ignore
14
2
  import * as Vue from 'vue';
15
3
  var allVue = Vue;
16
4
  var gh = allVue.h;
17
5
  var isV3 = allVue.version && allVue.version[0] === '3';
18
- import { DropDownButton, ButtonGroup } from '@progress/kendo-vue-buttons';
6
+ import { ButtonGroup } from '@progress/kendo-vue-buttons';
19
7
  import { ViewSelectorItem } from './ViewSelectorItem';
20
8
  import { provideLocalizationService } from '@progress/kendo-vue-intl';
21
9
  import { messages, dropdownlistSelectViewAriaLabel } from '../../../messages/main';
22
- import { Icon } from '@progress/kendo-vue-common';
23
- import { caretAltDownIcon } from '@progress/kendo-svg-icons';
24
10
  /**
25
11
  * @hidden
26
12
  */
@@ -40,7 +26,9 @@ var ViewSelectorListVue2 = {
40
26
  mounted: function mounted() {
41
27
  this.calculateMedia();
42
28
  this.observer = new window.ResizeObserver(this.calculateMedia);
43
- this.observer.observe(this.$el);
29
+ if (this.ks.scheduler) {
30
+ this.observer.observe(this.ks.scheduler.$el);
31
+ }
44
32
  },
45
33
  destroyed: !!isV3 ? undefined : function () {
46
34
  if (this.observer) {
@@ -77,70 +65,36 @@ var ViewSelectorListVue2 = {
77
65
  });
78
66
  var activeNameTitle = 'scheduler.' + activeView.name + 'ViewTitle';
79
67
  var activeName = this.localization.toLanguageString(activeNameTitle, messages[activeNameTitle]) || activeView.name;
80
- return h("div", {
81
- "class": "k-scheduler-views-wrapper"
82
- }, [activeView && this.media === 'mobile' &&
83
- // @ts-ignore function children
84
- h(DropDownButton, {
85
- "class": "k-views-dropdown",
86
- "aria-label": this.localization.toLanguageString(dropdownlistSelectViewAriaLabel, messages[dropdownlistSelectViewAriaLabel]),
87
- attrs: this.v3 ? undefined : {
88
- "aria-label": this.localization.toLanguageString(dropdownlistSelectViewAriaLabel, messages[dropdownlistSelectViewAriaLabel]),
68
+ var dropdown = function dropdown() {
69
+ return h("select", {
89
70
  tabIndex: -1,
90
- popupSettings: {
91
- popupClass: 'k-scheduler-toolbar'
71
+ attrs: this.v3 ? undefined : {
72
+ tabIndex: -1,
73
+ ariaLabel: this.localization.toLanguageString(dropdownlistSelectViewAriaLabel, messages[dropdownlistSelectViewAriaLabel])
92
74
  },
93
- textField: "title",
94
- items: views.map(function (v) {
95
- var nameTitle = 'scheduler.' + v.name + 'ViewTitle';
96
- var name = this.localization.toLanguageString(nameTitle, messages[nameTitle]) || v.name;
97
- return __assign(__assign({}, v.props), {
98
- selected: v.name === this.ks.activeViewName,
99
- name: v.name,
100
- title: v.title || name
101
- });
102
- }, this),
103
- text: activeView.title || activeName
104
- },
105
- tabIndex: -1,
106
- onItemclick: this.handleItemClick,
107
- on: this.v3 ? undefined : {
108
- "itemclick": this.handleItemClick
109
- },
110
- popupSettings: {
111
- popupClass: 'k-scheduler-toolbar'
112
- },
113
- textField: "title",
114
- items: views.map(function (v) {
75
+ "class": 'k-views-dropdown k-dropdown k-picker k-picker-solid k-rounded-md k-picker-md',
76
+ ariaLabel: this.localization.toLanguageString(dropdownlistSelectViewAriaLabel, messages[dropdownlistSelectViewAriaLabel]),
77
+ onChange: this.ddlChange,
78
+ on: this.v3 ? undefined : {
79
+ "change": this.ddlChange
80
+ }
81
+ }, [views.map(function (v) {
115
82
  var nameTitle = 'scheduler.' + v.name + 'ViewTitle';
116
83
  var name = this.localization.toLanguageString(nameTitle, messages[nameTitle]) || v.name;
117
- return __assign(__assign({}, v.props), {
118
- selected: v.name === this.ks.activeViewName,
119
- name: v.name,
120
- title: v.title || name
121
- });
122
- }, this),
123
- text: activeView.title || activeName
124
- }, this.v3 ? function () {
125
- return [h(Icon, {
126
- name: "caret-alt-down",
127
- attrs: _this2.v3 ? undefined : {
128
- name: "caret-alt-down",
129
- icon: caretAltDownIcon
130
- },
131
- icon: caretAltDownIcon
132
- })];
133
- } : [h(Icon, {
134
- name: "caret-alt-down",
135
- attrs: _this2.v3 ? undefined : {
136
- name: "caret-alt-down",
137
- icon: caretAltDownIcon
138
- },
139
- icon: caretAltDownIcon
140
- })]), this.media === 'desktop' &&
84
+ return h("option", {
85
+ value: this.v3 ? v.name || v.title || name : null,
86
+ domProps: this.v3 ? undefined : {
87
+ "value": v.name || v.title || name,
88
+ "selected": v.name === this.ks.activeViewName
89
+ },
90
+ selected: this.v3 ? v.name === this.ks.activeViewName : null
91
+ }, [v.title || name]);
92
+ }, this)]);
93
+ };
94
+ return activeView && this.media === 'mobile' ? dropdown.call(this) :
141
95
  // @ts-ignore function children
142
96
  h(ButtonGroup, {
143
- "class": "k-scheduler-views"
97
+ "class": "k-toolbar-button-group k-scheduler-views"
144
98
  }, this.v3 ? function () {
145
99
  return [views.map(function (view) {
146
100
  return h(ViewSelectorItem, {
@@ -159,14 +113,11 @@ var ViewSelectorListVue2 = {
159
113
  view: view
160
114
  }
161
115
  });
162
- }, _this2)])]);
116
+ }, _this2)]);
163
117
  },
164
118
  methods: {
165
- handleItemClick: function handleItemClick(event) {
166
- event.event.preventDefault();
167
- if (event.item.name || event.item.title) {
168
- this.setActiveViewName(event.item.name || event.item.title);
169
- }
119
+ ddlChange: function ddlChange(event) {
120
+ this.setActiveViewName(event.target.value);
170
121
  },
171
122
  calculateMedia: function calculateMedia() {
172
123
  this.media = window.matchMedia('(min-width: 1024px)').matches ? 'desktop' : 'mobile';