@fmdevui/fm-dev 1.0.17 → 1.0.19

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 (29) hide show
  1. package/es/core/ui/components/dragVerify/dragVerifyImgRotate.vue.d.ts +247 -0
  2. package/es/core/ui/components/index.d.ts +246 -1
  3. package/es/index.d.ts +3 -0
  4. package/es/index.mjs +4 -1
  5. package/es/packages/core/index.mjs +1 -1
  6. package/es/packages/core/ui/components/dragVerify/dragVerifyImgRotate.vue.mjs +118 -0
  7. package/es/packages/core/ui/components/dragVerify/dragVerifyImgRotate.vue2.mjs +266 -0
  8. package/es/packages/core/ui/components/dragVerify/dragVerifyImgRotate.vue3.mjs +3 -0
  9. package/es/packages/core/ui/components/dragVerify/dragVerifyImgRotate.vue4.mjs +3 -0
  10. package/es/packages/core/ui/components/index.mjs +3 -1
  11. package/{lib/index.css → es/version.css} +3 -1
  12. package/index.css +113 -1
  13. package/index.js +669 -25
  14. package/index.min.css +1 -0
  15. package/index.min.js +28 -24
  16. package/index.min.mjs +29 -25
  17. package/index.mjs +656 -23
  18. package/lib/core/ui/components/dragVerify/dragVerifyImgRotate.vue.d.ts +247 -0
  19. package/lib/core/ui/components/index.d.ts +246 -1
  20. package/{es → lib}/defaults.css +5 -4
  21. package/lib/index.d.ts +3 -0
  22. package/lib/index.js +14 -0
  23. package/lib/packages/core/index.js +1 -0
  24. package/lib/packages/core/ui/components/dragVerify/dragVerifyImgRotate.vue.js +122 -0
  25. package/lib/packages/core/ui/components/dragVerify/dragVerifyImgRotate.vue2.js +270 -0
  26. package/lib/packages/core/ui/components/dragVerify/dragVerifyImgRotate.vue3.js +7 -0
  27. package/lib/packages/core/ui/components/dragVerify/dragVerifyImgRotate.vue4.js +7 -0
  28. package/lib/packages/core/ui/components/index.js +3 -0
  29. package/package.json +1 -1
package/index.js CHANGED
@@ -1,21 +1,21 @@
1
- /*! fm-dev v1.0.17 */
1
+ /*! fm-dev v1.0.19 */
2
2
  (function (global, factory) {
3
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('vue'), require('crypto'), require('url'), require('http'), require('https'), require('util'), require('stream'), require('assert'), require('zlib'), require('element-plus')) :
4
- typeof define === 'function' && define.amd ? define(['exports', 'vue', 'crypto', 'url', 'http', 'https', 'util', 'stream', 'assert', 'zlib', 'element-plus'], factory) :
5
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.FmPlus = {}, global.Vue, global.crypto, global.require$$0, global.require$$1, global.require$$2, global.util, global.stream, global.require$$4, global.zlib, global.ElementPlus));
6
- })(this, (function (exports, vue, crypto, require$$0, require$$1, require$$2, util, stream, require$$4, zlib, elementPlus) { 'use strict';
7
-
8
- const _hoisted_1$2 = { class: "fm-transfer-panel" };
9
- const _hoisted_2$1 = { class: "fm-transfer-panel__header" };
10
- const _hoisted_3 = { class: "fm-transfer-panel__body" };
11
- const _hoisted_4 = { class: "fm-transfer-buttons__item" };
3
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('vue'), require('element-plus'), require('crypto'), require('url'), require('http'), require('https'), require('util'), require('stream'), require('assert'), require('zlib')) :
4
+ typeof define === 'function' && define.amd ? define(['exports', 'vue', 'element-plus', 'crypto', 'url', 'http', 'https', 'util', 'stream', 'assert', 'zlib'], factory) :
5
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.FmPlus = {}, global.Vue, global.ElementPlus, global.crypto, global.require$$0, global.require$$1, global.require$$2, global.util, global.stream, global.require$$4, global.zlib));
6
+ })(this, (function (exports, vue, elementPlus, crypto, require$$0, require$$1, require$$2, util, stream, require$$4, zlib) { 'use strict';
7
+
8
+ const _hoisted_1$3 = { class: "fm-transfer-panel" };
9
+ const _hoisted_2$2 = { class: "fm-transfer-panel__header" };
10
+ const _hoisted_3$1 = { class: "fm-transfer-panel__body" };
11
+ const _hoisted_4$1 = { class: "fm-transfer-buttons__item" };
12
12
  const _hoisted_5 = { class: "fm-transfer-buttons__item" };
13
13
  const _hoisted_6 = { class: "fm-transfer-buttons__item" };
14
14
  const _hoisted_7 = { class: "fm-transfer-buttons__item" };
15
15
  const _hoisted_8 = { class: "fm-transfer-panel" };
16
16
  const _hoisted_9 = { class: "fm-transfer-panel__header" };
17
17
  const _hoisted_10 = { class: "fm-transfer-panel__body" };
18
- var _sfc_main$3 = /* @__PURE__ */ vue.defineComponent({
18
+ var _sfc_main$4 = /* @__PURE__ */ vue.defineComponent({
19
19
  ...{
20
20
  name: "FmTransfer"
21
21
  },
@@ -175,8 +175,8 @@
175
175
  default: vue.withCtx(() => [
176
176
  vue.createVNode(_component_el_col, { span: 10 }, {
177
177
  default: vue.withCtx(() => [
178
- vue.createElementVNode("div", _hoisted_1$2, [
179
- vue.createElementVNode("p", _hoisted_2$1, [
178
+ vue.createElementVNode("div", _hoisted_1$3, [
179
+ vue.createElementVNode("p", _hoisted_2$2, [
180
180
  vue.createVNode(_component_el_checkbox, {
181
181
  modelValue: state.leftAllChecked,
182
182
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => state.leftAllChecked = $event),
@@ -202,7 +202,7 @@
202
202
  /* TEXT */
203
203
  )
204
204
  ]),
205
- vue.createElementVNode("div", _hoisted_3, [
205
+ vue.createElementVNode("div", _hoisted_3$1, [
206
206
  vue.createVNode(_component_el_input, {
207
207
  class: "transfer-panel__filter",
208
208
  modelValue: state.leftKeyword,
@@ -253,7 +253,7 @@
253
253
  class: "fm-transfer-buttons"
254
254
  }, {
255
255
  default: vue.withCtx(() => [
256
- vue.createElementVNode("div", _hoisted_4, [
256
+ vue.createElementVNode("div", _hoisted_4$1, [
257
257
  vue.createVNode(_component_el_button, {
258
258
  type: "primary",
259
259
  style: {},
@@ -372,9 +372,9 @@
372
372
  }
373
373
  });
374
374
 
375
- const _hoisted_1$1 = { class: "notice-bar-warp-text-box" };
376
- const _hoisted_2 = ["innerHTML"];
377
- var _sfc_main$2 = /* @__PURE__ */ vue.defineComponent({
375
+ const _hoisted_1$2 = { class: "notice-bar-warp-text-box" };
376
+ const _hoisted_2$1 = ["innerHTML"];
377
+ var _sfc_main$3 = /* @__PURE__ */ vue.defineComponent({
378
378
  ...{
379
379
  name: "FmNoticeBar"
380
380
  },
@@ -465,7 +465,7 @@
465
465
  2
466
466
  /* CLASS */
467
467
  )) : vue.createCommentVNode("v-if", true),
468
- vue.createElementVNode("div", _hoisted_1$1, [
468
+ vue.createElementVNode("div", _hoisted_1$2, [
469
469
  vue.createElementVNode(
470
470
  "div",
471
471
  {
@@ -477,7 +477,7 @@
477
477
  vue.createElementVNode("div", {
478
478
  innerHTML: props.text,
479
479
  "data-slate-editor": ""
480
- }, null, 8, _hoisted_2)
480
+ }, null, 8, _hoisted_2$1)
481
481
  ],
482
482
  512
483
483
  /* NEED_PATCH */
@@ -497,6 +497,390 @@
497
497
  }
498
498
  });
499
499
 
500
+ var _sfc_main$2 = {
501
+ name: "dragVerify",
502
+ props: {
503
+ isPassing: {
504
+ type: Boolean,
505
+ default: false
506
+ },
507
+ width: {
508
+ type: Number,
509
+ default: 250
510
+ },
511
+ height: {
512
+ type: Number,
513
+ default: 40
514
+ },
515
+ text: {
516
+ type: String,
517
+ default: "swiping to the right side"
518
+ },
519
+ successText: {
520
+ type: String,
521
+ default: "success"
522
+ },
523
+ background: {
524
+ type: String,
525
+ default: "#eee"
526
+ },
527
+ progressBarBg: {
528
+ type: String,
529
+ default: "#76c61d"
530
+ },
531
+ completedBg: {
532
+ type: String,
533
+ default: "#76c61d"
534
+ },
535
+ circle: {
536
+ type: Boolean,
537
+ default: false
538
+ },
539
+ radius: {
540
+ type: String,
541
+ default: "4px"
542
+ },
543
+ handlerIcon: {
544
+ type: String
545
+ },
546
+ successIcon: {
547
+ type: String
548
+ },
549
+ handlerBg: {
550
+ type: String,
551
+ default: "#fff"
552
+ },
553
+ textSize: {
554
+ type: String,
555
+ default: "14px"
556
+ },
557
+ textColor: {
558
+ type: String,
559
+ default: "#333"
560
+ },
561
+ imgsrc: {
562
+ type: String
563
+ },
564
+ showTips: {
565
+ type: Boolean,
566
+ default: true
567
+ },
568
+ successTip: {
569
+ type: String,
570
+ default: "\u9A8C\u8BC1\u901A\u8FC7"
571
+ },
572
+ failTip: {
573
+ type: String,
574
+ default: "\u9A8C\u8BC1\u5931\u8D25"
575
+ },
576
+ diffDegree: {
577
+ type: Number,
578
+ default: 10
579
+ },
580
+ minDegree: {
581
+ type: Number,
582
+ default: 90
583
+ },
584
+ maxDegree: {
585
+ type: Number,
586
+ default: 270
587
+ }
588
+ },
589
+ mounted: function() {
590
+ const dragEl = this.$refs.dragVerify;
591
+ dragEl.style.setProperty("--textColor", this.textColor);
592
+ dragEl.style.setProperty("--width", Math.floor(this.width / 2) + "px");
593
+ dragEl.style.setProperty("--pwidth", -Math.floor(this.width / 2) + "px");
594
+ },
595
+ computed: {
596
+ handlerStyle: function() {
597
+ return {
598
+ width: this.height + "px",
599
+ height: this.height + "px",
600
+ background: this.handlerBg
601
+ };
602
+ },
603
+ message: function() {
604
+ return this.isPassing ? "" : this.text;
605
+ },
606
+ successMessage: function() {
607
+ return this.isPassing ? this.successText : "";
608
+ },
609
+ dragVerifyStyle: function() {
610
+ return {
611
+ width: this.width + "px",
612
+ height: this.height + "px",
613
+ lineHeight: this.height + "px",
614
+ marginTop: "20px",
615
+ background: this.background,
616
+ borderRadius: this.circle ? this.height / 2 + "px" : this.radius
617
+ };
618
+ },
619
+ dragVerifyImgStyle: function() {
620
+ return {
621
+ width: this.width + "px",
622
+ height: this.width + "px",
623
+ position: "relative",
624
+ overflow: "hidden",
625
+ "border-radius": "50%"
626
+ };
627
+ },
628
+ progressBarStyle: function() {
629
+ return {
630
+ background: this.progressBarBg,
631
+ height: this.height + "px",
632
+ borderRadius: this.circle ? this.height / 2 + "px 0 0 " + this.height / 2 + "px" : this.radius
633
+ };
634
+ },
635
+ textStyle: function() {
636
+ return {
637
+ height: this.height + "px",
638
+ width: this.width + "px",
639
+ fontSize: this.textSize
640
+ };
641
+ },
642
+ factor: function() {
643
+ if (this.minDegree == this.maxDegree) {
644
+ return Math.floor(1 + Math.random() * 6) / 10 + 1;
645
+ }
646
+ return 1;
647
+ }
648
+ },
649
+ data() {
650
+ return {
651
+ isMoving: false,
652
+ x: 0,
653
+ isOk: false,
654
+ showBar: false,
655
+ showErrorTip: false,
656
+ ranRotate: 0,
657
+ cRotate: 0,
658
+ imgStyle: {}
659
+ };
660
+ },
661
+ methods: {
662
+ checkimgLoaded: function() {
663
+ var minDegree = this.minDegree;
664
+ var maxDegree = this.maxDegree;
665
+ var ranRotate = Math.floor(minDegree + Math.random() * (maxDegree - minDegree));
666
+ this.ranRotate = ranRotate;
667
+ this.imgStyle = {
668
+ transform: `rotateZ(${ranRotate}deg)`
669
+ };
670
+ },
671
+ dragStart: function(e) {
672
+ if (!this.isPassing) {
673
+ this.isMoving = true;
674
+ this.x = e.pageX || e.touches[0].pageX;
675
+ }
676
+ this.showBar = true;
677
+ this.showErrorTip = false;
678
+ this.$emit("handlerMove");
679
+ },
680
+ dragMoving: function(e) {
681
+ if (this.isMoving && !this.isPassing) {
682
+ var _x = (e.pageX || e.touches[0].pageX) - this.x;
683
+ var handler = this.$refs.handler;
684
+ handler.style.left = _x + "px";
685
+ var progressBar = this.$refs.progressBar;
686
+ progressBar.style.width = _x + this.height / 2 + "px";
687
+ var cRotate = Math.ceil(_x / (this.width - this.height) * this.maxDegree * this.factor);
688
+ this.cRotate = cRotate;
689
+ var rotate = this.ranRotate - cRotate;
690
+ this.imgStyle = {
691
+ transform: `rotateZ(${rotate}deg)`
692
+ };
693
+ }
694
+ },
695
+ dragFinish: function(e) {
696
+ if (this.isMoving && !this.isPassing) {
697
+ if (Math.abs(this.ranRotate - this.cRotate) > this.diffDegree) {
698
+ this.isOk = true;
699
+ this.imgStyle = {
700
+ transform: `rotateZ(${this.ranRotate}deg)`
701
+ };
702
+ var that = this;
703
+ setTimeout(function() {
704
+ var handler = that.$refs.handler;
705
+ var progressBar = that.$refs.progressBar;
706
+ handler.style.left = "0";
707
+ progressBar.style.width = "0";
708
+ that.isOk = false;
709
+ }, 500);
710
+ this.showErrorTip = true;
711
+ this.$emit("passfail");
712
+ } else {
713
+ this.passVerify();
714
+ }
715
+ this.isMoving = false;
716
+ }
717
+ },
718
+ passVerify: function() {
719
+ this.$emit("update:isPassing", true);
720
+ this.isMoving = false;
721
+ var handler = this.$refs.handler;
722
+ handler.children[0].className = this.successIcon;
723
+ this.$refs.progressBar.style.background = this.completedBg;
724
+ this.$refs.message.style["-webkit-text-fill-color"] = "unset";
725
+ this.$refs.message.style.animation = "slidetounlock2 3s infinite";
726
+ this.$refs.progressBar.style.color = "#fff";
727
+ this.$refs.progressBar.style.fontSize = this.textSize;
728
+ this.$emit("passcallback");
729
+ },
730
+ reset: function() {
731
+ this.reImg();
732
+ this.checkimgLoaded();
733
+ },
734
+ reImg: function() {
735
+ this.$emit("update:isPassing", false);
736
+ const oriData = this.$options.data();
737
+ for (const key in oriData) {
738
+ if (Object.prototype.hasOwnProperty.call(oriData, key)) {
739
+ this[key] = oriData[key];
740
+ }
741
+ }
742
+ var handler = this.$refs.handler;
743
+ var message = this.$refs.message;
744
+ handler.style.left = "0";
745
+ this.$refs.progressBar.style.width = "0";
746
+ handler.children[0].className = this.handlerIcon;
747
+ message.style["-webkit-text-fill-color"] = "transparent";
748
+ message.style.animation = "slidetounlock 3s infinite";
749
+ message.style.color = this.background;
750
+ },
751
+ refreshimg: function() {
752
+ this.$emit("refresh");
753
+ }
754
+ },
755
+ watch: {
756
+ imgsrc: {
757
+ immediate: false,
758
+ handler: function() {
759
+ this.reImg();
760
+ }
761
+ }
762
+ }
763
+ };
764
+
765
+ var _export_sfc = (sfc, props) => {
766
+ const target = sfc.__vccOpts || sfc;
767
+ for (const [key, val] of props) {
768
+ target[key] = val;
769
+ }
770
+ return target;
771
+ };
772
+
773
+ const _hoisted_1$1 = { class: "drag-verify-container" };
774
+ const _hoisted_2 = ["src"];
775
+ const _hoisted_3 = {
776
+ key: 0,
777
+ class: "tips success"
778
+ };
779
+ const _hoisted_4 = {
780
+ key: 1,
781
+ class: "tips danger"
782
+ };
783
+ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
784
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$1, [
785
+ vue.createElementVNode(
786
+ "div",
787
+ {
788
+ style: vue.normalizeStyle([$options.dragVerifyImgStyle, { "background-color": "var(--el-color-primary)" }])
789
+ },
790
+ [
791
+ vue.createElementVNode("img", {
792
+ ref: "checkImg",
793
+ src: $props.imgsrc,
794
+ class: vue.normalizeClass(["check-img", { goOrigin: $data.isOk }]),
795
+ onLoad: _cache[0] || (_cache[0] = (...args) => $options.checkimgLoaded && $options.checkimgLoaded(...args)),
796
+ style: vue.normalizeStyle($data.imgStyle),
797
+ alt: ""
798
+ }, null, 46, _hoisted_2),
799
+ $props.showTips && $props.isPassing ? (vue.openBlock(), vue.createElementBlock(
800
+ "div",
801
+ _hoisted_3,
802
+ vue.toDisplayString($props.successTip),
803
+ 1
804
+ /* TEXT */
805
+ )) : vue.createCommentVNode("v-if", true),
806
+ $props.showTips && !$props.isPassing && $data.showErrorTip ? (vue.openBlock(), vue.createElementBlock(
807
+ "div",
808
+ _hoisted_4,
809
+ vue.toDisplayString($props.failTip),
810
+ 1
811
+ /* TEXT */
812
+ )) : vue.createCommentVNode("v-if", true)
813
+ ],
814
+ 4
815
+ /* STYLE */
816
+ ),
817
+ vue.createElementVNode(
818
+ "div",
819
+ {
820
+ ref: "dragVerify",
821
+ class: "drag_verify",
822
+ style: vue.normalizeStyle($options.dragVerifyStyle),
823
+ onMousemove: _cache[3] || (_cache[3] = (...args) => $options.dragMoving && $options.dragMoving(...args)),
824
+ onMouseup: _cache[4] || (_cache[4] = (...args) => $options.dragFinish && $options.dragFinish(...args)),
825
+ onMouseleave: _cache[5] || (_cache[5] = (...args) => $options.dragFinish && $options.dragFinish(...args)),
826
+ onTouchmove: _cache[6] || (_cache[6] = vue.withModifiers((...args) => $options.dragMoving && $options.dragMoving(...args), ["prevent"])),
827
+ onTouchend: _cache[7] || (_cache[7] = vue.withModifiers((...args) => $options.dragFinish && $options.dragFinish(...args), ["prevent"]))
828
+ },
829
+ [
830
+ vue.createElementVNode(
831
+ "div",
832
+ {
833
+ class: vue.normalizeClass(["dv_progress_bar", { goFirst2: $data.isOk }]),
834
+ ref: "progressBar",
835
+ style: vue.normalizeStyle($options.progressBarStyle)
836
+ },
837
+ vue.toDisplayString($options.successMessage),
838
+ 7
839
+ /* TEXT, CLASS, STYLE */
840
+ ),
841
+ vue.createElementVNode(
842
+ "div",
843
+ {
844
+ class: "dv_text",
845
+ style: vue.normalizeStyle($options.textStyle),
846
+ ref: "message"
847
+ },
848
+ vue.toDisplayString($options.message),
849
+ 5
850
+ /* TEXT, STYLE */
851
+ ),
852
+ vue.createElementVNode(
853
+ "div",
854
+ {
855
+ class: vue.normalizeClass(["dv_handler dv_handler_bg", { goFirst: $data.isOk }]),
856
+ onMousedown: _cache[1] || (_cache[1] = (...args) => $options.dragStart && $options.dragStart(...args)),
857
+ onTouchstart: _cache[2] || (_cache[2] = vue.withModifiers((...args) => $options.dragStart && $options.dragStart(...args), ["prevent"])),
858
+ ref: "handler",
859
+ style: vue.normalizeStyle([$options.handlerStyle, { "background-color": "var(--el-color-primary)" }])
860
+ },
861
+ [
862
+ vue.createElementVNode(
863
+ "i",
864
+ {
865
+ class: vue.normalizeClass($props.handlerIcon),
866
+ style: { "color": "#fff" }
867
+ },
868
+ null,
869
+ 2
870
+ /* CLASS */
871
+ )
872
+ ],
873
+ 38
874
+ /* CLASS, STYLE, NEED_HYDRATION */
875
+ )
876
+ ],
877
+ 36
878
+ /* STYLE, NEED_HYDRATION */
879
+ )
880
+ ]);
881
+ }
882
+ var dragimg = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["render", _sfc_render], ["__scopeId", "data-v-9e8c9ed2"]]);
883
+
500
884
  /*! Element Plus Icons Vue v2.3.1 */
501
885
 
502
886
  var add_location_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ vue.defineComponent({
@@ -6654,8 +7038,9 @@
6654
7038
  }
6655
7039
  }
6656
7040
 
6657
- const FmTransfer = _sfc_main$3;
6658
- const FmNoticeBar = _sfc_main$2;
7041
+ const FmTransfer = _sfc_main$4;
7042
+ const FmNoticeBar = _sfc_main$3;
7043
+ const FmDragImg = dragimg;
6659
7044
 
6660
7045
  const makeInstaller = (components = []) => {
6661
7046
  const install = (app) => {
@@ -29788,7 +30173,7 @@
29788
30173
  return baseNameWithExt.substring(0, extIndex);
29789
30174
  }
29790
30175
  }
29791
- var deepClone = (0, import_rfdc.default)({ circles: true });
30176
+ var deepClone$1 = (0, import_rfdc.default)({ circles: true });
29792
30177
 
29793
30178
  const DEBOUNCE_DEFAULTS = {
29794
30179
  trailing: true
@@ -32950,8 +33335,8 @@
32950
33335
  console.warn = () => {
32951
33336
  };
32952
33337
  target[ROUTER_INFO_KEY] = {
32953
- currentRoute: currentRoute ? deepClone(currentRoute) : {},
32954
- routes: deepClone(routes)
33338
+ currentRoute: currentRoute ? deepClone$1(currentRoute) : {},
33339
+ routes: deepClone$1(routes)
32955
33340
  };
32956
33341
  target[ROUTER_KEY] = router;
32957
33342
  console.warn = c;
@@ -35706,6 +36091,42 @@
35706
36091
  return useStore;
35707
36092
  }
35708
36093
 
36094
+ /**
36095
+ * Creates an object of references with all the state, getters, and plugin-added
36096
+ * state properties of the store. Similar to `toRefs()` but specifically
36097
+ * designed for Pinia stores so methods and non reactive properties are
36098
+ * completely ignored.
36099
+ *
36100
+ * @param store - store to extract the refs from
36101
+ */
36102
+ function storeToRefs(store) {
36103
+ const rawStore = vue.toRaw(store);
36104
+ const refs = {};
36105
+ for (const key in rawStore) {
36106
+ const value = rawStore[key];
36107
+ // There is no native method to check for a computed
36108
+ // https://github.com/vuejs/core/pull/4165
36109
+ if (value.effect) {
36110
+ // @ts-expect-error: too hard to type correctly
36111
+ refs[key] =
36112
+ // ...
36113
+ vue.computed({
36114
+ get: () => store[key],
36115
+ set(value) {
36116
+ store[key] = value;
36117
+ },
36118
+ });
36119
+ }
36120
+ else if (vue.isRef(value) || vue.isReactive(value)) {
36121
+ // @ts-expect-error: the key is state or getter
36122
+ refs[key] =
36123
+ // ---
36124
+ vue.toRef(store, key);
36125
+ }
36126
+ }
36127
+ return refs;
36128
+ }
36129
+
35709
36130
  const pinia = createPinia();
35710
36131
 
35711
36132
  const useKeepALiveNames = defineStore("keepALiveNames", {
@@ -51682,10 +52103,223 @@
51682
52103
  return extras ? merge(options, extras) : options;
51683
52104
  };
51684
52105
 
52106
+ /*!
52107
+ * vue-router v4.5.1
52108
+ * (c) 2025 Eduardo San Martin Morote
52109
+ * @license MIT
52110
+ */
52111
+
52112
+ var NavigationType;
52113
+ (function (NavigationType) {
52114
+ NavigationType["pop"] = "pop";
52115
+ NavigationType["push"] = "push";
52116
+ })(NavigationType || (NavigationType = {}));
52117
+ var NavigationDirection;
52118
+ (function (NavigationDirection) {
52119
+ NavigationDirection["back"] = "back";
52120
+ NavigationDirection["forward"] = "forward";
52121
+ NavigationDirection["unknown"] = "";
52122
+ })(NavigationDirection || (NavigationDirection = {}));
52123
+
52124
+ Symbol((process.env.NODE_ENV !== 'production') ? 'navigation failure' : '');
52125
+ /**
52126
+ * Enumeration with all possible types for navigation failures. Can be passed to
52127
+ * {@link isNavigationFailure} to check for specific failures.
52128
+ */
52129
+ var NavigationFailureType;
52130
+ (function (NavigationFailureType) {
52131
+ /**
52132
+ * An aborted navigation is a navigation that failed because a navigation
52133
+ * guard returned `false` or called `next(false)`
52134
+ */
52135
+ NavigationFailureType[NavigationFailureType["aborted"] = 4] = "aborted";
52136
+ /**
52137
+ * A cancelled navigation is a navigation that failed because a more recent
52138
+ * navigation finished started (not necessarily finished).
52139
+ */
52140
+ NavigationFailureType[NavigationFailureType["cancelled"] = 8] = "cancelled";
52141
+ /**
52142
+ * A duplicated navigation is a navigation that failed because it was
52143
+ * initiated while already being at the exact same location.
52144
+ */
52145
+ NavigationFailureType[NavigationFailureType["duplicated"] = 16] = "duplicated";
52146
+ })(NavigationFailureType || (NavigationFailureType = {}));
52147
+
52148
+ /**
52149
+ * RouteRecord being rendered by the closest ancestor Router View. Used for
52150
+ * `onBeforeRouteUpdate` and `onBeforeRouteLeave`. rvlm stands for Router View
52151
+ * Location Matched
52152
+ *
52153
+ * @internal
52154
+ */
52155
+ Symbol((process.env.NODE_ENV !== 'production') ? 'router view location matched' : '');
52156
+ /**
52157
+ * Allows overriding the router view depth to control which component in
52158
+ * `matched` is rendered. rvd stands for Router View Depth
52159
+ *
52160
+ * @internal
52161
+ */
52162
+ Symbol((process.env.NODE_ENV !== 'production') ? 'router view depth' : '');
52163
+ /**
52164
+ * Allows overriding the router instance returned by `useRouter` in tests. r
52165
+ * stands for router
52166
+ *
52167
+ * @internal
52168
+ */
52169
+ const routerKey = Symbol((process.env.NODE_ENV !== 'production') ? 'router' : '');
52170
+ /**
52171
+ * Allows overriding the current route returned by `useRoute` in tests. rl
52172
+ * stands for route location
52173
+ *
52174
+ * @internal
52175
+ */
52176
+ Symbol((process.env.NODE_ENV !== 'production') ? 'route location' : '');
52177
+ /**
52178
+ * Allows overriding the current route used by router-view. Internally this is
52179
+ * used when the `route` prop is passed.
52180
+ *
52181
+ * @internal
52182
+ */
52183
+ Symbol((process.env.NODE_ENV !== 'production') ? 'router view location' : '');
52184
+
52185
+ /**
52186
+ * Returns the router instance. Equivalent to using `$router` inside
52187
+ * templates.
52188
+ */
52189
+ function useRouter() {
52190
+ return vue.inject(routerKey);
52191
+ }
52192
+
52193
+ function useTitle() {
52194
+ const stores = useThemeConfig(pinia);
52195
+ const { themeConfig } = storeToRefs(stores);
52196
+ const router = useRouter();
52197
+ vue.nextTick(() => {
52198
+ let webTitle = "";
52199
+ let globalTitle = themeConfig.value.globalTitle;
52200
+ const { path, meta } = router.currentRoute.value;
52201
+ if (path === "/login") {
52202
+ webTitle = meta.title;
52203
+ } else {
52204
+ webTitle = setTagsViewNameI18n(router.currentRoute.value);
52205
+ }
52206
+ document.title = `${webTitle} - ${globalTitle}` || globalTitle;
52207
+ });
52208
+ }
52209
+ function setTagsViewNameI18n(item) {
52210
+ let tagsViewName = "";
52211
+ const { query, params, meta } = item;
52212
+ const i18n = useI18n();
52213
+ const pattern = /^\{("(zh-CN|en|zh-TW)":"[^,]+",?){1,3}}$/;
52214
+ if (query?.tagsViewName || params?.tagsViewName) {
52215
+ if (pattern.test(query?.tagsViewName) || pattern.test(params?.tagsViewName)) {
52216
+ const urlTagsParams = query?.tagsViewName && JSON.parse(query?.tagsViewName) || params?.tagsViewName && JSON.parse(params?.tagsViewName);
52217
+ tagsViewName = urlTagsParams[i18n.locale.value];
52218
+ } else {
52219
+ tagsViewName = query?.tagsViewName || params?.tagsViewName;
52220
+ }
52221
+ } else {
52222
+ tagsViewName = i18n.t(`message.menu.${meta.title}`);
52223
+ }
52224
+ return tagsViewName;
52225
+ }
52226
+ const lazyImg = (el, arr) => {
52227
+ const io = new IntersectionObserver((res) => {
52228
+ res.forEach((v) => {
52229
+ if (v.isIntersecting) {
52230
+ const { img, key } = v.target.dataset;
52231
+ v.target.src = img;
52232
+ v.target.onload = () => {
52233
+ io.unobserve(v.target);
52234
+ arr[key]["loading"] = false;
52235
+ };
52236
+ }
52237
+ });
52238
+ });
52239
+ vue.nextTick(() => {
52240
+ document.querySelectorAll(el).forEach((img) => io.observe(img));
52241
+ });
52242
+ };
52243
+ const globalComponentSize = () => {
52244
+ const stores = useThemeConfig(pinia);
52245
+ const { themeConfig } = storeToRefs(stores);
52246
+ return Local.get("themeConfig")?.globalComponentSize || themeConfig.value?.globalComponentSize;
52247
+ };
52248
+ function deepClone(obj) {
52249
+ let newObj;
52250
+ try {
52251
+ newObj = obj.push ? [] : {};
52252
+ } catch (error) {
52253
+ newObj = {};
52254
+ }
52255
+ for (let attr in obj) {
52256
+ if (obj[attr] && typeof obj[attr] === "object") {
52257
+ newObj[attr] = deepClone(obj[attr]);
52258
+ } else {
52259
+ newObj[attr] = obj[attr];
52260
+ }
52261
+ }
52262
+ return newObj;
52263
+ }
52264
+ function isMobile() {
52265
+ if (navigator.userAgent.match(/('phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone')/i)) {
52266
+ return true;
52267
+ } else {
52268
+ return false;
52269
+ }
52270
+ }
52271
+ function handleEmpty(list) {
52272
+ const arr = [];
52273
+ for (const i in list) {
52274
+ const d = [];
52275
+ for (const j in list[i]) {
52276
+ d.push(list[i][j]);
52277
+ }
52278
+ const leng = d.filter((item) => item === "").length;
52279
+ if (leng !== d.length) {
52280
+ arr.push(list[i]);
52281
+ }
52282
+ }
52283
+ return arr;
52284
+ }
52285
+ function handleOpenLink(val) {
52286
+ const { origin, pathname } = window.location;
52287
+ const router = useRouter();
52288
+ router.push(val.path);
52289
+ if (verifyUrl(val.meta?.isLink)) window.open(val.meta?.isLink);
52290
+ else window.open(`${origin}${pathname}#${val.meta?.isLink}`);
52291
+ }
52292
+
52293
+ const cssCdnUrlList = [
52294
+ // 调整为从本地引入,注释下面的 url
52295
+ // '//at.alicdn.com/t/c/font_2298093_rnp72ifj3ba.css',
52296
+ // '//netdna.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css',
52297
+ ];
52298
+ const jsCdnUrlList = [];
52299
+ function setCssCdn() {
52300
+ if (cssCdnUrlList.length <= 0) return false;
52301
+ cssCdnUrlList.map((v) => {
52302
+ let link = document.createElement("link");
52303
+ link.rel = "stylesheet";
52304
+ link.href = v;
52305
+ link.crossOrigin = "anonymous";
52306
+ document.getElementsByTagName("head")[0].appendChild(link);
52307
+ });
52308
+ }
52309
+ function setJsCdn() {
52310
+ if (jsCdnUrlList.length <= 0) return false;
52311
+ jsCdnUrlList.map((v) => {
52312
+ let link = document.createElement("script");
52313
+ link.src = v;
52314
+ document.body.appendChild(link);
52315
+ });
52316
+ }
52317
+
51685
52318
  const version = "1.0.0";
51686
52319
 
51687
52320
  const install = installer.install;
51688
52321
 
52322
+ exports.FmDragImg = FmDragImg;
51689
52323
  exports.FmLogin = FmLogin;
51690
52324
  exports.FmNoticeBar = FmNoticeBar;
51691
52325
  exports.FmTransfer = FmTransfer;
@@ -51708,6 +52342,7 @@
51708
52342
  exports.clone = clone;
51709
52343
  exports.dataURLtoBlob = dataURLtoBlob;
51710
52344
  exports.decryptJWT = decryptJWT;
52345
+ exports.deepClone = deepClone;
51711
52346
  exports.default = installer;
51712
52347
  exports.directive = directive;
51713
52348
  exports.downloadByBase64 = downloadByBase64;
@@ -51727,16 +52362,21 @@
51727
52362
  exports.getJWTDate = getJWTDate;
51728
52363
  exports.getToken = getToken;
51729
52364
  exports.getWeek = getWeek;
52365
+ exports.globalComponentSize = globalComponentSize;
51730
52366
  exports.hAuth = hAuth;
51731
52367
  exports.hAuthAll = hAuthAll;
51732
52368
  exports.hAuths = hAuths;
52369
+ exports.handleEmpty = handleEmpty;
52370
+ exports.handleOpenLink = handleOpenLink;
51733
52371
  exports.i18n = i18n;
51734
52372
  exports.install = install;
52373
+ exports.isMobile = isMobile;
51735
52374
  exports.isObjectValueEqual = isObjectValueEqual;
51736
52375
  exports.iso_3166_1_CountryList = iso_3166_1_CountryList;
51737
52376
  exports.judgementIdCard = judgementIdCard;
51738
52377
  exports.judgementSameArr = judgementSameArr;
51739
52378
  exports.languageList = languageList;
52379
+ exports.lazyImg = lazyImg;
51740
52380
  exports.mergMessage = mergMessage;
51741
52381
  exports.openWindow = openWindow;
51742
52382
  exports.pinia = pinia;
@@ -51744,6 +52384,9 @@
51744
52384
  exports.removeDuplicate = removeDuplicate;
51745
52385
  exports.request2 = request2;
51746
52386
  exports.service = service;
52387
+ exports.setCssCdn = setCssCdn;
52388
+ exports.setJsCdn = setJsCdn;
52389
+ exports.setTagsViewNameI18n = setTagsViewNameI18n;
51747
52390
  exports.setupI18n = setupI18n;
51748
52391
  exports.signatureByKSort = signatureByKSort;
51749
52392
  exports.tansParams = tansParams;
@@ -51758,6 +52401,7 @@
51758
52401
  exports.useSysApi = useSysApi;
51759
52402
  exports.useTagsViewRoutes = useTagsViewRoutes;
51760
52403
  exports.useThemeConfig = useThemeConfig;
52404
+ exports.useTitle = useTitle;
51761
52405
  exports.useUserInfo = useUserInfo;
51762
52406
  exports.useVxeTable = useVxeTable;
51763
52407
  exports.verifiyNumberInteger = verifiyNumberInteger;