@webitel/ui-sdk 25.10.69 → 25.10.71

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 (32) hide show
  1. package/dist/{install-CjvoevkY.js → install-CmFVS7yR.js} +938 -936
  2. package/dist/ui-sdk.css +1 -1
  3. package/dist/ui-sdk.js +1 -1
  4. package/dist/ui-sdk.umd.cjs +7 -2
  5. package/dist/{vidstack-Bq6c3Bam-CWFzKZjp.js → vidstack-Bq6c3Bam-o0qVSW6w.js} +2 -2
  6. package/dist/{vidstack-D2pY00kU-Dciejh67.js → vidstack-D2pY00kU-_3feyDFg.js} +2 -2
  7. package/dist/{vidstack-DDXt6fpN-BKvZvG7_.js → vidstack-DDXt6fpN-C4FQk2VS.js} +1 -1
  8. package/dist/{vidstack-D_-9AA6_-D8BoTZaT.js → vidstack-D_-9AA6_-BedLfxWj.js} +1 -1
  9. package/dist/{vidstack-DqAw8m9J-Dfgc_T0v.js → vidstack-DqAw8m9J-BMgghFj2.js} +1 -1
  10. package/dist/{vidstack-audio-ShtBWti0.js → vidstack-audio-KNFRmkTL.js} +2 -2
  11. package/dist/{vidstack-dash-_LMRaHVf.js → vidstack-dash-C9cWKfZ-.js} +3 -3
  12. package/dist/{vidstack-google-cast-yIg-MfbM.js → vidstack-google-cast-CvUl_R-i.js} +3 -3
  13. package/dist/{vidstack-hls-DLyeImmL.js → vidstack-hls-u3LTms9q.js} +3 -3
  14. package/dist/{vidstack-video-Dp1ZjLt9.js → vidstack-video-CEm5Q20S.js} +2 -2
  15. package/dist/{vidstack-vimeo-I2_5Xgn3.js → vidstack-vimeo-D5hdGCLN.js} +3 -3
  16. package/dist/{vidstack-youtube-B68cnZDv.js → vidstack-youtube-B6nxw4pX.js} +2 -2
  17. package/package.json +1 -1
  18. package/src/components/wt-vidstack-player/components/layouts/video-layout.vue +11 -30
  19. package/src/components/wt-vidstack-player/components/panels/media-control-panel/components/buttons/play-button.vue +24 -3
  20. package/src/components/wt-vidstack-player/components/panels/media-control-panel/media-control-panel.vue +22 -9
  21. package/src/components/wt-vidstack-player/components/panels/screen-sharing-control-panel/screen-sharing-control-panel.vue +15 -42
  22. package/src/components/wt-vidstack-player/components/panels/video-display-panel/video-display-panel.vue +6 -7
  23. package/src/components/wt-vidstack-player/types/ScreenshotStatus.ts +1 -0
  24. package/src/components/wt-vidstack-player/wt-vidstack-player.vue +10 -19
  25. package/src/enums/index.ts +2 -0
  26. package/src/modules/Userinfo/v2/stores/accessStore.ts +1 -1
  27. package/src/plugins/primevue/theme/extend/player/player.js +6 -1
  28. package/types/components/wt-vidstack-player/components/layouts/video-layout.vue.d.ts +6 -0
  29. package/types/components/wt-vidstack-player/components/panels/screen-sharing-control-panel/screen-sharing-control-panel.vue.d.ts +6 -0
  30. package/types/components/wt-vidstack-player/types/ScreenshotStatus.d.ts +1 -0
  31. package/types/components/wt-vidstack-player/wt-vidstack-player.vue.d.ts +6 -0
  32. package/types/enums/index.d.ts +2 -1
@@ -1,5 +1,8 @@
1
1
  <template>
2
- <media-controls-group class="screen-sharing-control-panel" :class="`screen-sharing-control-panel--${size}`">
2
+ <media-controls-group
3
+ class="screen-sharing-control-panel controls-group"
4
+ :class="`screen-sharing-control-panel--${size}`"
5
+ >
3
6
  <div
4
7
  class="screen-sharing-control-panel__actions"
5
8
  >
@@ -10,7 +13,7 @@
10
13
  color="secondary"
11
14
  :size="size"
12
15
  :icon="screenShotIcon"
13
- @click="makeScreenshot"
16
+ @click="emit('make-screenshot')"
14
17
  />
15
18
 
16
19
  <wt-button
@@ -20,7 +23,7 @@
20
23
  color="secondary"
21
24
  :size="size"
22
25
  :icon="recordIcon"
23
- @click="toggleRecordAction"
26
+ @click="emit('toggle-record')"
24
27
  />
25
28
 
26
29
  <wt-button
@@ -52,25 +55,28 @@
52
55
  import convertDuration from '@webitel/ui-sdk/src/scripts/convertDuration';
53
56
  import {computed, defineEmits, inject, onUnmounted, ref, watch} from 'vue';
54
57
 
58
+ import {ScreenshotStatus} from "../../../types/ScreenshotStatus";
55
59
  import {WtVidstackPlayerSession} from "../../../types/WtVidstackPlayerSession";
56
60
 
57
- type ScreenshotStatus = 'done' | 'error'
58
-
59
61
  interface Props {
60
62
  session: WtVidstackPlayerSession
63
+ screenshotStatus: ScreenshotStatus | null
61
64
  }
65
+
62
66
  const props = defineProps<Props>();
63
67
 
64
68
  const emit = defineEmits<{
65
69
  'close-session': [],
70
+ 'make-screenshot': [],
71
+ 'toggle-record': [],
66
72
  }>()
67
73
 
68
74
  const {size} = inject('size');
69
- const screenshotStatus = ref<ScreenshotStatus | null>(null)
70
75
 
71
76
  const recordIcon = computed(() => (props.session.recordings ? 'record-stop' : 'record-start'));
72
- const getScreenshotIcon = (status?: ScreenshotStatus) => {
73
- switch (status) {
77
+
78
+ const screenShotIcon = computed(() => {
79
+ switch (props.screenshotStatus) {
74
80
  case 'done':
75
81
  return 'screenshot-done';
76
82
  case 'error':
@@ -78,9 +84,7 @@ const getScreenshotIcon = (status?: ScreenshotStatus) => {
78
84
  default:
79
85
  return 'screenshot';
80
86
  }
81
- }
82
-
83
- const screenShotIcon = computed(() => getScreenshotIcon(screenshotStatus.value));
87
+ });
84
88
  const isRecording = computed(() => props.session.recordings);
85
89
 
86
90
  const secondsElapsed = ref(0);
@@ -101,32 +105,7 @@ function stopTimer() {
101
105
  }
102
106
  }
103
107
 
104
- const toggleRecordAction = () => {
105
- if (isRecording.value) {
106
- props.session.stopRecord();
107
- } else {
108
- props.session.startRecord();
109
- }
110
- };
111
-
112
- const makeScreenshot = async () => {
113
- try {
114
- await props.session.screenshot()
115
- changeScreenshotStatus('done')
116
- } catch {
117
- changeScreenshotStatus('error')
118
- }
119
- };
120
-
121
- const changeScreenshotStatus = (status: ScreenshotStatus) => {
122
- screenshotStatus.value = status;
123
- setTimeout(() => {
124
- screenshotStatus.value = null;
125
- }, 2000);
126
- }
127
-
128
108
  const closeSession = () => {
129
- props.session.close()
130
109
  emit('close-session')
131
110
  };
132
111
 
@@ -152,8 +131,6 @@ watch(isRecording, (newVal) => {
152
131
  justify-content: center;
153
132
 
154
133
  &--sm {
155
- padding: var(--p-player-control-bar-position-padding-sm);
156
-
157
134
  .screen-sharing-control-panel__actions {
158
135
  width: 100%;
159
136
  border-top-left-radius: 0 !important;
@@ -167,8 +144,6 @@ watch(isRecording, (newVal) => {
167
144
  }
168
145
 
169
146
  &--md {
170
- padding: var(--p-player-control-bar-position-padding-md);
171
-
172
147
  .screen-sharing-control-panel__indicator {
173
148
  right: var(--p-player-counter-position-padding-md);
174
149
  bottom: var(--p-player-counter-position-padding-md);
@@ -176,8 +151,6 @@ watch(isRecording, (newVal) => {
176
151
  }
177
152
 
178
153
  &--lg {
179
- padding: var(--p-player-control-bar-position-padding-lg);
180
-
181
154
  .screen-sharing-control-panel__indicator {
182
155
  right: var(--p-player-counter-position-padding-lg);
183
156
  bottom: var(--p-player-counter-position-padding-lg);
@@ -15,16 +15,16 @@
15
15
  </span>
16
16
  </div>
17
17
  <div class="video-display-panel__controls">
18
+ <fullscreen-button
19
+ @toggle="handleFullscreen"
20
+ />
18
21
  <toggle-button
19
22
  v-if="size !== ComponentSize.LG"
20
- primary-icon="collapse"
21
- secondary-icon="expand"
23
+ primary-icon="expand"
24
+ secondary-icon="collapse"
22
25
  color="on-dark"
23
26
  @toggle="handlePlayerSize"
24
27
  />
25
- <fullscreen-button
26
- @toggle="handleFullscreen"
27
- />
28
28
  <wt-icon-btn
29
29
  v-if="props.closable"
30
30
  icon="close"
@@ -73,11 +73,10 @@ const handlePlayerSize = (value: boolean) => {
73
73
  display: flex;
74
74
  justify-content: space-between;
75
75
  padding: var(--p-player-headline-sm-padding);
76
- background: var(--p-player-head-line-background);
76
+ background: var(--p-player-head-line-hover-background);
77
77
  color: var(--p-player-head-line-color);
78
78
  transition: all var(--transition) ease-in-out;
79
79
  backdrop-filter: blur(var(--p-player-head-line-blur));
80
- opacity: 0;
81
80
 
82
81
  &__title {
83
82
  @extend %typo-body-1-bold;
@@ -0,0 +1 @@
1
+ export type ScreenshotStatus = 'done' | 'error';
@@ -23,9 +23,12 @@
23
23
  :title="props.title"
24
24
  :username="props.username"
25
25
  :session="props.session"
26
+ :screenshot-status="props.screenshotStatus"
26
27
  :mode="mode"
27
28
  @close-player="emit('close')"
28
29
  @close-session="emit('close-session')"
30
+ @make-screenshot="emit('make-screenshot')"
31
+ @toggle-record="emit('toggle-record')"
29
32
  />
30
33
 
31
34
  </media-player>
@@ -41,17 +44,16 @@ import {
41
44
  computed,
42
45
  defineEmits,
43
46
  defineProps,
44
- nextTick,
45
47
  onBeforeUnmount,
46
48
  onMounted,
47
49
  provide,
48
50
  ref,
49
- useTemplateRef,
50
- watch
51
+ useTemplateRef
51
52
  } from 'vue';
52
53
 
53
54
  import {ComponentSize} from '../../enums';
54
55
  import VideoLayout from './components/layouts/video-layout.vue';
56
+ import {ScreenshotStatus} from "./types/ScreenshotStatus";
55
57
  import {WtVidstakPlayerControlsMode} from "./types/WtVidstackPlayerControlsMode";
56
58
  import {WtVidstackPlayerSession} from "./types/WtVidstackPlayerSession";
57
59
 
@@ -66,6 +68,7 @@ interface Props {
66
68
  stream?: MediaStream
67
69
  mode: WtVidstakPlayerControlsMode;
68
70
  session?: WtVidstackPlayerSession
71
+ screenshotStatus: ScreenshotStatus
69
72
  }
70
73
 
71
74
  const props = withDefaults(defineProps<Props>(), {
@@ -81,6 +84,8 @@ const props = withDefaults(defineProps<Props>(), {
81
84
  const emit = defineEmits<{
82
85
  'close': [],
83
86
  'close-session': [],
87
+ 'make-screenshot': [],
88
+ 'toggle-record': [],
84
89
  }>()
85
90
 
86
91
  const player = useTemplateRef<MediaPlayerElement>('player');
@@ -205,29 +210,15 @@ onBeforeUnmount(() => {
205
210
  }
206
211
  }
207
212
  }
208
-
209
- media-player[data-hocus] { // hover or focus within https://vidstack.io/docs/wc/player/components/core/player/?styling=css#player.attrs
210
- .controls-group {
211
- opacity: 1;
212
- }
213
-
214
- .video-display-panel {
215
- background: var(--p-player-head-line-hover-background);
216
-
217
- :deep(.video-display-panel) { // show panel buttons on hover
218
- opacity: 1;
219
- }
220
- }
221
- }
222
213
  </style>
223
214
 
224
215
  <style lang="scss">
225
216
  .wt-vidstack-player {
226
217
  video {
227
218
  height: 100%;
228
- object-fit: fill;width: 100%;
219
+ object-fit: contain;
220
+ width: 100%;
229
221
  min-width: 0;
230
-
231
222
  }
232
223
  }
233
224
  </style>
@@ -20,6 +20,7 @@ import { AuditorSections } from './WebitelApplications/AuditorSections';
20
20
  import { CrmSections } from './WebitelApplications/CrmSections';
21
21
  import { SupervisorSections } from './WebitelApplications/SupervisorSections';
22
22
  import WebitelApplications from './WebitelApplications/WebitelApplications.enum.js';
23
+ import { WfmSections } from './WebitelApplications/WfmSections';
23
24
  import { WtApplication } from './WebitelApplications/WtApplication';
24
25
  import { WtObject } from './WtObject/WtObject';
25
26
  import { WtTypeExtensionFieldKind } from './WtTypeExtensionFieldKind/WtTypeExtensionFieldKind';
@@ -46,6 +47,7 @@ export {
46
47
  SupervisorSections,
47
48
  TypesExportedSettings,
48
49
  WebitelApplications,
50
+ WfmSections,
49
51
  WtApplication,
50
52
  WtObject,
51
53
  WtTypeExtensionFieldKind,
@@ -129,7 +129,7 @@ export const createUserAccessStore = ({
129
129
  access: rawVisibilityAccess,
130
130
  }: CreateUserAccessStoreRawAccess) => {
131
131
  // Enable bypass mode if access data is null/undefined
132
- bypassMode.value = rawVisibilityAccess === null;
132
+ // bypassMode.value = rawVisibilityAccess === null;
133
133
 
134
134
  globalAccess.value = makeGlobalAccessMap(rawGlobalAccess);
135
135
  scopeAccess.value = makeScopeAccessMap(rawScopeAccess);
@@ -1,5 +1,10 @@
1
1
  const generateCustomSharingPanelSizeCss = ({ size, dt }) => `
2
- .screen-sharing-control-panel--${size} .screen-sharing-control-panel__actions {
2
+ .screen-sharing-control-panel--${size}, .media-control-panel--${size} {
3
+ padding: ${dt(`player-control-bar-position-padding-${size}`)};
4
+ }
5
+
6
+ .screen-sharing-control-panel--${size} .screen-sharing-control-panel__actions,
7
+ .media-control-panel--${size} .media-control-panel__actions {
3
8
  gap: ${dt(`player-control-bar-${size}-gap`)};
4
9
  border-radius: ${dt(`player-control-bar-${size}-border-radius`)};
5
10
  padding: ${dt(`player-control-bar-${size}-padding`)};
@@ -1,3 +1,4 @@
1
+ import { ScreenshotStatus } from "../../types/ScreenshotStatus";
1
2
  import { WtVidstakPlayerControlsMode } from "../../types/WtVidstackPlayerControlsMode";
2
3
  import { WtVidstackPlayerSession } from "../../types/WtVidstackPlayerSession";
3
4
  type __VLS_Props = {
@@ -6,12 +7,17 @@ type __VLS_Props = {
6
7
  closable?: boolean;
7
8
  mode: WtVidstakPlayerControlsMode;
8
9
  session: WtVidstackPlayerSession;
10
+ screenshotStatus: ScreenshotStatus;
9
11
  };
10
12
  declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
11
13
  "close-session": () => any;
14
+ "make-screenshot": () => any;
15
+ "toggle-record": () => any;
12
16
  "close-player": () => any;
13
17
  }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
14
18
  "onClose-session"?: () => any;
19
+ "onMake-screenshot"?: () => any;
20
+ "onToggle-record"?: () => any;
15
21
  "onClose-player"?: () => any;
16
22
  }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
17
23
  export default _default;
@@ -1,10 +1,16 @@
1
+ import { ScreenshotStatus } from "../../../types/ScreenshotStatus";
1
2
  import { WtVidstackPlayerSession } from "../../../types/WtVidstackPlayerSession";
2
3
  interface Props {
3
4
  session: WtVidstackPlayerSession;
5
+ screenshotStatus: ScreenshotStatus | null;
4
6
  }
5
7
  declare const _default: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
6
8
  "close-session": () => any;
9
+ "make-screenshot": () => any;
10
+ "toggle-record": () => any;
7
11
  }, string, import("vue").PublicProps, Readonly<Props> & Readonly<{
8
12
  "onClose-session"?: () => any;
13
+ "onMake-screenshot"?: () => any;
14
+ "onToggle-record"?: () => any;
9
15
  }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
10
16
  export default _default;
@@ -0,0 +1 @@
1
+ export type ScreenshotStatus = 'done' | 'error';
@@ -1,5 +1,6 @@
1
1
  import 'vidstack/player';
2
2
  import 'vidstack/player/ui';
3
+ import { ScreenshotStatus } from "./types/ScreenshotStatus";
3
4
  import { WtVidstakPlayerControlsMode } from "./types/WtVidstackPlayerControlsMode";
4
5
  import { WtVidstackPlayerSession } from "./types/WtVidstackPlayerSession";
5
6
  interface Props {
@@ -16,13 +17,18 @@ interface Props {
16
17
  stream?: MediaStream;
17
18
  mode: WtVidstakPlayerControlsMode;
18
19
  session?: WtVidstackPlayerSession;
20
+ screenshotStatus: ScreenshotStatus;
19
21
  }
20
22
  declare const _default: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
21
23
  close: () => any;
22
24
  "close-session": () => any;
25
+ "make-screenshot": () => any;
26
+ "toggle-record": () => any;
23
27
  }, string, import("vue").PublicProps, Readonly<Props> & Readonly<{
24
28
  onClose?: () => any;
25
29
  "onClose-session"?: () => any;
30
+ "onMake-screenshot"?: () => any;
31
+ "onToggle-record"?: () => any;
26
32
  }>, {
27
33
  title: string;
28
34
  mode: WtVidstakPlayerControlsMode;
@@ -19,7 +19,8 @@ import { AuditorSections } from './WebitelApplications/AuditorSections';
19
19
  import { CrmSections } from './WebitelApplications/CrmSections';
20
20
  import { SupervisorSections } from './WebitelApplications/SupervisorSections';
21
21
  import WebitelApplications from './WebitelApplications/WebitelApplications.enum.js';
22
+ import { WfmSections } from './WebitelApplications/WfmSections';
22
23
  import { WtApplication } from './WebitelApplications/WtApplication';
23
24
  import { WtObject } from './WtObject/WtObject';
24
25
  import { WtTypeExtensionFieldKind } from './WtTypeExtensionFieldKind/WtTypeExtensionFieldKind';
25
- export { AbstractUserStatus, AdminSections, AgentStatus, AuditorSections, ButtonColor, ButtonVariant, ChatGatewayProvider, ChipColor, ComponentSize, CrmSections, CrudAction, EmptyCause, IconAction, IconColor, ProcessingTableColumnType, ProviderIconType, QueueType, RelativeDatetimeValue, SupervisorSections, TypesExportedSettings, WebitelApplications, WtApplication, WtObject, WtTypeExtensionFieldKind, };
26
+ export { AbstractUserStatus, AdminSections, AgentStatus, AuditorSections, ButtonColor, ButtonVariant, ChatGatewayProvider, ChipColor, ComponentSize, CrmSections, CrudAction, EmptyCause, IconAction, IconColor, ProcessingTableColumnType, ProviderIconType, QueueType, RelativeDatetimeValue, SupervisorSections, TypesExportedSettings, WebitelApplications, WfmSections, WtApplication, WtObject, WtTypeExtensionFieldKind, };