inl-ui 0.1.36 → 0.1.38

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.
@@ -8715,6 +8715,10 @@ const props$8 = {
8715
8715
  baseUrl: {
8716
8716
  type: String,
8717
8717
  default: ""
8718
+ },
8719
+ domId: {
8720
+ type: String,
8721
+ default: ""
8718
8722
  }
8719
8723
  };
8720
8724
  const VideoPlayerV2 = vue.defineComponent({
@@ -8722,7 +8726,7 @@ const VideoPlayerV2 = vue.defineComponent({
8722
8726
  emits: ["changeStream"],
8723
8727
  setup(_prop, _context) {
8724
8728
  let play;
8725
- const uuid = UUID();
8729
+ const uuid = _prop.domId;
8726
8730
  const videoFull = id => {
8727
8731
  const elm = document.getElementById(`videoPlayer_${uuid}`);
8728
8732
  if (elm.requestFullScreen) {
@@ -8732,11 +8736,13 @@ const VideoPlayerV2 = vue.defineComponent({
8732
8736
  } else if (elm.webkitRequestFullScreen) {
8733
8737
  elm.webkitRequestFullScreen();
8734
8738
  }
8735
- setTimeout(() => {
8736
- window.onresize = () => {
8737
- _context.emit("changeStream");
8738
- };
8739
- }, 500);
8739
+ if (videoInfo2.value.brandTypeCode !== "MP4") {
8740
+ setTimeout(() => {
8741
+ window.onresize = () => {
8742
+ _context.emit("changeStream");
8743
+ };
8744
+ }, 500);
8745
+ }
8740
8746
  };
8741
8747
  const videoInfo2 = vue.ref({});
8742
8748
  const stopPlay = () => {
@@ -8766,14 +8772,6 @@ const VideoPlayerV2 = vue.defineComponent({
8766
8772
  }
8767
8773
  });
8768
8774
  };
8769
- const stopV = id => {
8770
- const videoElement = document.getElementById(id);
8771
- if (videoElement) {
8772
- videoElement.pause();
8773
- videoElement.removeAttribute("src");
8774
- videoElement.load();
8775
- }
8776
- };
8777
8775
  const releaseUrl = vue.ref("");
8778
8776
  const release = async () => {
8779
8777
  const res = await axios__default["default"].get(releaseUrl.value);
@@ -8823,7 +8821,6 @@ const VideoPlayerV2 = vue.defineComponent({
8823
8821
  };
8824
8822
  vue.watch([() => _prop.camera, () => _prop.cameraConfig], ([camera, cameraConfig]) => {
8825
8823
  stopPlay();
8826
- stopV(`videoPlayer_${uuid}`);
8827
8824
  getVideoDetail(camera);
8828
8825
  }, {
8829
8826
  immediate: true,
@@ -8831,26 +8828,27 @@ const VideoPlayerV2 = vue.defineComponent({
8831
8828
  });
8832
8829
  vue.onBeforeUnmount(() => {
8833
8830
  stopPlay();
8834
- const videoElement = document.getElementById(`videoPlayer_${uuid}`);
8835
- if (videoElement) {
8836
- videoElement.pause();
8837
- videoElement.src = null;
8838
- videoElement.srcObject = null;
8839
- videoElement.remove();
8840
- }
8841
8831
  });
8842
- return () => videoInfo2.value.brandTypeCode !== "MP4" ? vue.createVNode("video", {
8843
- "id": `videoPlayer_${uuid}`,
8844
- "class": `videoComponent ${_prop.fill}`,
8845
- "muted": true,
8846
- "autoplay": true
8847
- }, null) : vue.createVNode("video", {
8848
- "class": "videoComponent fill",
8849
- "src": videoInfo2.value.mp4ResourcesPath,
8850
- "autoplay": true,
8851
- "loop": true,
8852
- "muted": true
8853
- }, null);
8832
+ const renderVideo = () => {
8833
+ if (videoInfo2.value.brandTypeCode === "MP4") {
8834
+ return vue.createVNode("video", {
8835
+ "id": `mp4Player_${uuid}`,
8836
+ "class": "videoComponent fill",
8837
+ "src": videoInfo2.value.mp4ResourcesPath,
8838
+ "autoplay": true,
8839
+ "loop": true,
8840
+ "muted": true
8841
+ }, null);
8842
+ } else {
8843
+ return vue.createVNode("video", {
8844
+ "id": `videoPlayer_${uuid}`,
8845
+ "class": `videoComponent ${_prop.fill}`,
8846
+ "muted": true,
8847
+ "autoplay": true
8848
+ }, null);
8849
+ }
8850
+ };
8851
+ return () => vue.createVNode(vue.Fragment, null, [renderVideo()]);
8854
8852
  }
8855
8853
  });
8856
8854
  var videoPlayerV2 = installComponent(VideoPlayerV2, "video-player-v2");
@@ -9204,6 +9202,7 @@ const VideoBoxV2 = vue.defineComponent({
9204
9202
  signal: 28
9205
9203
  }]];
9206
9204
  const infos = vue.ref([]);
9205
+ const uuid = vue.ref(UUID());
9207
9206
  vue.onMounted(() => {
9208
9207
  showInfo.value = _prop.showInfo;
9209
9208
  });
@@ -9250,12 +9249,12 @@ const VideoBoxV2 = vue.defineComponent({
9250
9249
  }
9251
9250
  });
9252
9251
  };
9253
- const getVideoParams = async uuid => {
9252
+ const getVideoParams = async uuid2 => {
9254
9253
  const arr = infos.value.map(info => {
9255
9254
  return {};
9256
9255
  });
9257
9256
  const res = await axios__default["default"].post("/api/vms/v1/cameraRelThing/getByParam", {
9258
- cameraUuid: uuid
9257
+ cameraUuid: uuid2
9259
9258
  }, {
9260
9259
  headers: {
9261
9260
  token: sessionStorage.getItem("token")
@@ -9280,7 +9279,7 @@ const VideoBoxV2 = vue.defineComponent({
9280
9279
  }
9281
9280
  });
9282
9281
  camera.value = res.data.data;
9283
- streams.value = JSON.parse(camera.value.brandTypePo?.streamTypeDict || "[]");
9282
+ streams.value = JSON.parse(camera.value?.brandTypePo?.streamTypeDict || "[]");
9284
9283
  };
9285
9284
  let timeout;
9286
9285
  vue.ref(true);
@@ -9288,6 +9287,7 @@ const VideoBoxV2 = vue.defineComponent({
9288
9287
  const fill = vue.ref("fill");
9289
9288
  vue.watch(() => _prop.camera, val => {
9290
9289
  if (val && Object.keys(val).length != 0) {
9290
+ camera.value = void 0;
9291
9291
  getVideoParams(val);
9292
9292
  getVideoDetail(val);
9293
9293
  const fillVal = localStorage.getItem(val);
@@ -9305,25 +9305,27 @@ const VideoBoxV2 = vue.defineComponent({
9305
9305
  token: sessionStorage.getItem("token") || ""
9306
9306
  },
9307
9307
  params: {
9308
- uuid: camera.value.uuid,
9308
+ uuid: camera.value?.uuid,
9309
9309
  chosenStreamType: code
9310
9310
  }
9311
9311
  });
9312
9312
  cameraConfig.value.webrtcTemplateMerged = res.data.data[0];
9313
9313
  };
9314
9314
  return () => vue.createVNode("div", {
9315
+ "id": "videoBox_" + uuid.value,
9315
9316
  "class": ["videoBox", _prop.alarm ? "alarm" : ""]
9316
- }, [vue.createVNode(VideoPlayerV2, {
9317
+ }, [camera.value ? vue.createVNode(VideoPlayerV2, {
9317
9318
  "ref": player,
9319
+ "domId": uuid.value,
9318
9320
  "camera": camera.value,
9319
9321
  "cameraConfig": cameraConfig.value,
9320
9322
  "fill": fill.value,
9321
9323
  "onChangeStream": () => {
9322
9324
  cameraConfig.value = {
9323
- streamType: streamHistory.value || camera.value.streamType
9325
+ streamType: streamHistory.value || camera.value?.streamType
9324
9326
  };
9325
9327
  }
9326
- }, null), camera.value.brandTypeCode !== "MP4" && showInfo.value ? vue.createVNode("div", {
9328
+ }, null) : "", showInfo.value ? vue.createVNode("div", {
9327
9329
  "class": "selectFields"
9328
9330
  }, [[0, 1, 2, 3, 4, 5].map(index => {
9329
9331
  let info = {};
@@ -9344,7 +9346,7 @@ const VideoBoxV2 = vue.defineComponent({
9344
9346
  }, [vue.createVNode("span", null, [camera.value?.name])]), vue.createVNode("div", {
9345
9347
  "class": "tool"
9346
9348
  }, [_prop.btns.map(btn => {
9347
- if (!(camera.value.brandTypeCode === "MP4" && btn !== "close" && btn !== "look")) {
9349
+ if (!(camera.value?.brandTypeCode === "MP4" && btn !== "close" && btn !== "fullScreen" && btn !== "look")) {
9348
9350
  switch (btn) {
9349
9351
  case "fill":
9350
9352
  return vue.createVNode("img", {
@@ -9352,10 +9354,10 @@ const VideoBoxV2 = vue.defineComponent({
9352
9354
  "onClick": e => {
9353
9355
  if (fill.value === "fill") {
9354
9356
  fill.value = "contain";
9355
- localStorage.setItem(camera.value.uuid, fill.value);
9357
+ localStorage.setItem(camera.value?.uuid, fill.value);
9356
9358
  } else {
9357
9359
  fill.value = "fill";
9358
- localStorage.setItem(camera.value.uuid, fill.value);
9360
+ localStorage.setItem(camera.value?.uuid, fill.value);
9359
9361
  }
9360
9362
  },
9361
9363
  "src": "/micro-assets/inl/video/controls/fill.svg"
@@ -9493,13 +9495,13 @@ const PollingPlay = vue.defineComponent({
9493
9495
  fullScreen: false,
9494
9496
  name: ""
9495
9497
  });
9496
- const setCurrentVideos = team => {
9498
+ const setCurrentVideos = async team => {
9497
9499
  data.name = team.pollingGroupName;
9498
9500
  data.showType = `type${team.amount}`;
9499
- data.pointList.length = 0;
9501
+ data.pointList = [];
9500
9502
  for (let i = 0; i < parseInt(team.amount, 10); i++) {
9501
9503
  const video = team.monitorPointPoList[i];
9502
- data.pointList.push(video?.cameraUuid || {});
9504
+ data.pointList.push(video?.cameraUuid || "");
9503
9505
  }
9504
9506
  };
9505
9507
  const findShouldPlay = () => {
@@ -9585,16 +9587,18 @@ const PollingPlay = vue.defineComponent({
9585
9587
  }, null), "\u5168\u5C4F\u663E\u793A"])]) : "", vue.createVNode("div", {
9586
9588
  "id": "grid",
9587
9589
  "class": ["grid", data.showType, data.fullScreen ? "full" : ""]
9588
- }, [data.pointList.map((item, index) => vue.createVNode("div", {
9589
- "class": "video"
9590
- }, [_props.version === "V2" ? vue.createVNode(VideoBoxV2, {
9591
- "camera": item,
9592
- "btns": _props.btns,
9593
- "alarm": alarmList.value[index]
9594
- }, null) : vue.createVNode(VideoBox, {
9595
- "camera": item,
9596
- "btns": _props.btns
9597
- }, null)]))])]);
9590
+ }, [data.pointList.map((item, index) => {
9591
+ return vue.createVNode("div", {
9592
+ "class": "video"
9593
+ }, [_props.version === "V2" ? vue.createVNode(VideoBoxV2, {
9594
+ "camera": item,
9595
+ "btns": _props.btns,
9596
+ "alarm": alarmList.value[index]
9597
+ }, null) : vue.createVNode(VideoBox, {
9598
+ "camera": item,
9599
+ "btns": _props.btns
9600
+ }, null)]);
9601
+ })])]);
9598
9602
  }
9599
9603
  });
9600
9604
  var pollingPlay = installComponent(PollingPlay, "polling-play");
@@ -472,6 +472,10 @@ declare const _default$a: vue.DefineComponent<{
472
472
  type: StringConstructor;
473
473
  default: string;
474
474
  };
475
+ domId: {
476
+ type: StringConstructor;
477
+ default: string;
478
+ };
475
479
  }, () => vue_jsx_runtime.JSX.Element, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, "changeStream"[], "changeStream", vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, Readonly<vue.ExtractPropTypes<{
476
480
  camera: {
477
481
  require: boolean;
@@ -493,6 +497,10 @@ declare const _default$a: vue.DefineComponent<{
493
497
  type: StringConstructor;
494
498
  default: string;
495
499
  };
500
+ domId: {
501
+ type: StringConstructor;
502
+ default: string;
503
+ };
496
504
  }>> & {
497
505
  onChangeStream?: ((...args: any[]) => any) | undefined;
498
506
  }, {
@@ -500,6 +508,7 @@ declare const _default$a: vue.DefineComponent<{
500
508
  cameraConfig: Record<string, any>;
501
509
  token: string;
502
510
  baseUrl: string;
511
+ domId: string;
503
512
  }, {}>;
504
513
 
505
514
  interface videoInfo {
@@ -8704,6 +8704,10 @@ const props$8 = {
8704
8704
  baseUrl: {
8705
8705
  type: String,
8706
8706
  default: ""
8707
+ },
8708
+ domId: {
8709
+ type: String,
8710
+ default: ""
8707
8711
  }
8708
8712
  };
8709
8713
  const VideoPlayerV2 = defineComponent({
@@ -8711,7 +8715,7 @@ const VideoPlayerV2 = defineComponent({
8711
8715
  emits: ["changeStream"],
8712
8716
  setup(_prop, _context) {
8713
8717
  let play;
8714
- const uuid = UUID();
8718
+ const uuid = _prop.domId;
8715
8719
  const videoFull = id => {
8716
8720
  const elm = document.getElementById(`videoPlayer_${uuid}`);
8717
8721
  if (elm.requestFullScreen) {
@@ -8721,11 +8725,13 @@ const VideoPlayerV2 = defineComponent({
8721
8725
  } else if (elm.webkitRequestFullScreen) {
8722
8726
  elm.webkitRequestFullScreen();
8723
8727
  }
8724
- setTimeout(() => {
8725
- window.onresize = () => {
8726
- _context.emit("changeStream");
8727
- };
8728
- }, 500);
8728
+ if (videoInfo2.value.brandTypeCode !== "MP4") {
8729
+ setTimeout(() => {
8730
+ window.onresize = () => {
8731
+ _context.emit("changeStream");
8732
+ };
8733
+ }, 500);
8734
+ }
8729
8735
  };
8730
8736
  const videoInfo2 = ref({});
8731
8737
  const stopPlay = () => {
@@ -8755,14 +8761,6 @@ const VideoPlayerV2 = defineComponent({
8755
8761
  }
8756
8762
  });
8757
8763
  };
8758
- const stopV = id => {
8759
- const videoElement = document.getElementById(id);
8760
- if (videoElement) {
8761
- videoElement.pause();
8762
- videoElement.removeAttribute("src");
8763
- videoElement.load();
8764
- }
8765
- };
8766
8764
  const releaseUrl = ref("");
8767
8765
  const release = async () => {
8768
8766
  const res = await axios$2.get(releaseUrl.value);
@@ -8812,7 +8810,6 @@ const VideoPlayerV2 = defineComponent({
8812
8810
  };
8813
8811
  watch([() => _prop.camera, () => _prop.cameraConfig], ([camera, cameraConfig]) => {
8814
8812
  stopPlay();
8815
- stopV(`videoPlayer_${uuid}`);
8816
8813
  getVideoDetail(camera);
8817
8814
  }, {
8818
8815
  immediate: true,
@@ -8820,26 +8817,27 @@ const VideoPlayerV2 = defineComponent({
8820
8817
  });
8821
8818
  onBeforeUnmount(() => {
8822
8819
  stopPlay();
8823
- const videoElement = document.getElementById(`videoPlayer_${uuid}`);
8824
- if (videoElement) {
8825
- videoElement.pause();
8826
- videoElement.src = null;
8827
- videoElement.srcObject = null;
8828
- videoElement.remove();
8829
- }
8830
8820
  });
8831
- return () => videoInfo2.value.brandTypeCode !== "MP4" ? createVNode("video", {
8832
- "id": `videoPlayer_${uuid}`,
8833
- "class": `videoComponent ${_prop.fill}`,
8834
- "muted": true,
8835
- "autoplay": true
8836
- }, null) : createVNode("video", {
8837
- "class": "videoComponent fill",
8838
- "src": videoInfo2.value.mp4ResourcesPath,
8839
- "autoplay": true,
8840
- "loop": true,
8841
- "muted": true
8842
- }, null);
8821
+ const renderVideo = () => {
8822
+ if (videoInfo2.value.brandTypeCode === "MP4") {
8823
+ return createVNode("video", {
8824
+ "id": `mp4Player_${uuid}`,
8825
+ "class": "videoComponent fill",
8826
+ "src": videoInfo2.value.mp4ResourcesPath,
8827
+ "autoplay": true,
8828
+ "loop": true,
8829
+ "muted": true
8830
+ }, null);
8831
+ } else {
8832
+ return createVNode("video", {
8833
+ "id": `videoPlayer_${uuid}`,
8834
+ "class": `videoComponent ${_prop.fill}`,
8835
+ "muted": true,
8836
+ "autoplay": true
8837
+ }, null);
8838
+ }
8839
+ };
8840
+ return () => createVNode(Fragment, null, [renderVideo()]);
8843
8841
  }
8844
8842
  });
8845
8843
  var videoPlayerV2 = installComponent(VideoPlayerV2, "video-player-v2");
@@ -9193,6 +9191,7 @@ const VideoBoxV2 = defineComponent({
9193
9191
  signal: 28
9194
9192
  }]];
9195
9193
  const infos = ref([]);
9194
+ const uuid = ref(UUID());
9196
9195
  onMounted(() => {
9197
9196
  showInfo.value = _prop.showInfo;
9198
9197
  });
@@ -9239,12 +9238,12 @@ const VideoBoxV2 = defineComponent({
9239
9238
  }
9240
9239
  });
9241
9240
  };
9242
- const getVideoParams = async uuid => {
9241
+ const getVideoParams = async uuid2 => {
9243
9242
  const arr = infos.value.map(info => {
9244
9243
  return {};
9245
9244
  });
9246
9245
  const res = await axios$2.post("/api/vms/v1/cameraRelThing/getByParam", {
9247
- cameraUuid: uuid
9246
+ cameraUuid: uuid2
9248
9247
  }, {
9249
9248
  headers: {
9250
9249
  token: sessionStorage.getItem("token")
@@ -9269,7 +9268,7 @@ const VideoBoxV2 = defineComponent({
9269
9268
  }
9270
9269
  });
9271
9270
  camera.value = res.data.data;
9272
- streams.value = JSON.parse(camera.value.brandTypePo?.streamTypeDict || "[]");
9271
+ streams.value = JSON.parse(camera.value?.brandTypePo?.streamTypeDict || "[]");
9273
9272
  };
9274
9273
  let timeout;
9275
9274
  ref(true);
@@ -9277,6 +9276,7 @@ const VideoBoxV2 = defineComponent({
9277
9276
  const fill = ref("fill");
9278
9277
  watch(() => _prop.camera, val => {
9279
9278
  if (val && Object.keys(val).length != 0) {
9279
+ camera.value = void 0;
9280
9280
  getVideoParams(val);
9281
9281
  getVideoDetail(val);
9282
9282
  const fillVal = localStorage.getItem(val);
@@ -9294,25 +9294,27 @@ const VideoBoxV2 = defineComponent({
9294
9294
  token: sessionStorage.getItem("token") || ""
9295
9295
  },
9296
9296
  params: {
9297
- uuid: camera.value.uuid,
9297
+ uuid: camera.value?.uuid,
9298
9298
  chosenStreamType: code
9299
9299
  }
9300
9300
  });
9301
9301
  cameraConfig.value.webrtcTemplateMerged = res.data.data[0];
9302
9302
  };
9303
9303
  return () => createVNode("div", {
9304
+ "id": "videoBox_" + uuid.value,
9304
9305
  "class": ["videoBox", _prop.alarm ? "alarm" : ""]
9305
- }, [createVNode(VideoPlayerV2, {
9306
+ }, [camera.value ? createVNode(VideoPlayerV2, {
9306
9307
  "ref": player,
9308
+ "domId": uuid.value,
9307
9309
  "camera": camera.value,
9308
9310
  "cameraConfig": cameraConfig.value,
9309
9311
  "fill": fill.value,
9310
9312
  "onChangeStream": () => {
9311
9313
  cameraConfig.value = {
9312
- streamType: streamHistory.value || camera.value.streamType
9314
+ streamType: streamHistory.value || camera.value?.streamType
9313
9315
  };
9314
9316
  }
9315
- }, null), camera.value.brandTypeCode !== "MP4" && showInfo.value ? createVNode("div", {
9317
+ }, null) : "", showInfo.value ? createVNode("div", {
9316
9318
  "class": "selectFields"
9317
9319
  }, [[0, 1, 2, 3, 4, 5].map(index => {
9318
9320
  let info = {};
@@ -9333,7 +9335,7 @@ const VideoBoxV2 = defineComponent({
9333
9335
  }, [createVNode("span", null, [camera.value?.name])]), createVNode("div", {
9334
9336
  "class": "tool"
9335
9337
  }, [_prop.btns.map(btn => {
9336
- if (!(camera.value.brandTypeCode === "MP4" && btn !== "close" && btn !== "look")) {
9338
+ if (!(camera.value?.brandTypeCode === "MP4" && btn !== "close" && btn !== "fullScreen" && btn !== "look")) {
9337
9339
  switch (btn) {
9338
9340
  case "fill":
9339
9341
  return createVNode("img", {
@@ -9341,10 +9343,10 @@ const VideoBoxV2 = defineComponent({
9341
9343
  "onClick": e => {
9342
9344
  if (fill.value === "fill") {
9343
9345
  fill.value = "contain";
9344
- localStorage.setItem(camera.value.uuid, fill.value);
9346
+ localStorage.setItem(camera.value?.uuid, fill.value);
9345
9347
  } else {
9346
9348
  fill.value = "fill";
9347
- localStorage.setItem(camera.value.uuid, fill.value);
9349
+ localStorage.setItem(camera.value?.uuid, fill.value);
9348
9350
  }
9349
9351
  },
9350
9352
  "src": "/micro-assets/inl/video/controls/fill.svg"
@@ -9482,13 +9484,13 @@ const PollingPlay = defineComponent({
9482
9484
  fullScreen: false,
9483
9485
  name: ""
9484
9486
  });
9485
- const setCurrentVideos = team => {
9487
+ const setCurrentVideos = async team => {
9486
9488
  data.name = team.pollingGroupName;
9487
9489
  data.showType = `type${team.amount}`;
9488
- data.pointList.length = 0;
9490
+ data.pointList = [];
9489
9491
  for (let i = 0; i < parseInt(team.amount, 10); i++) {
9490
9492
  const video = team.monitorPointPoList[i];
9491
- data.pointList.push(video?.cameraUuid || {});
9493
+ data.pointList.push(video?.cameraUuid || "");
9492
9494
  }
9493
9495
  };
9494
9496
  const findShouldPlay = () => {
@@ -9574,16 +9576,18 @@ const PollingPlay = defineComponent({
9574
9576
  }, null), "\u5168\u5C4F\u663E\u793A"])]) : "", createVNode("div", {
9575
9577
  "id": "grid",
9576
9578
  "class": ["grid", data.showType, data.fullScreen ? "full" : ""]
9577
- }, [data.pointList.map((item, index) => createVNode("div", {
9578
- "class": "video"
9579
- }, [_props.version === "V2" ? createVNode(VideoBoxV2, {
9580
- "camera": item,
9581
- "btns": _props.btns,
9582
- "alarm": alarmList.value[index]
9583
- }, null) : createVNode(VideoBox, {
9584
- "camera": item,
9585
- "btns": _props.btns
9586
- }, null)]))])]);
9579
+ }, [data.pointList.map((item, index) => {
9580
+ return createVNode("div", {
9581
+ "class": "video"
9582
+ }, [_props.version === "V2" ? createVNode(VideoBoxV2, {
9583
+ "camera": item,
9584
+ "btns": _props.btns,
9585
+ "alarm": alarmList.value[index]
9586
+ }, null) : createVNode(VideoBox, {
9587
+ "camera": item,
9588
+ "btns": _props.btns
9589
+ }, null)]);
9590
+ })])]);
9587
9591
  }
9588
9592
  });
9589
9593
  var pollingPlay = installComponent(PollingPlay, "polling-play");