@robot-admin/naive-ui-components 0.24.2 → 0.24.3

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 (94) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/README.md +4 -2
  3. package/README_EN.md +4 -2
  4. package/SECURITY.md +12 -2
  5. package/dist/C_AntV2.cjs +1 -1
  6. package/dist/C_AntV2.js +3 -3
  7. package/dist/C_Form.base.css +40 -40
  8. package/dist/C_Form.css +40 -40
  9. package/dist/C_Map2.cjs +1 -1
  10. package/dist/C_Map2.js +1 -1
  11. package/dist/C_Table.base.css +150 -150
  12. package/dist/C_Table.css +110 -110
  13. package/dist/C_Table2.cjs +2 -2
  14. package/dist/C_Table2.js +2 -2
  15. package/dist/C_Upload2.cjs +1 -1
  16. package/dist/C_Upload2.js +1 -1
  17. package/dist/C_VideoPlayer.css +30 -20
  18. package/dist/C_VideoPlayer2.cjs +2 -2
  19. package/dist/C_VideoPlayer2.js +3 -3
  20. package/dist/Steps.cjs +1 -1
  21. package/dist/Steps.js +1 -1
  22. package/dist/Tabs.cjs +1 -1
  23. package/dist/Tabs.js +1 -1
  24. package/dist/constants2.d.cts +6 -6
  25. package/dist/constants2.d.ts +6 -6
  26. package/dist/constants3.d.cts +2 -2
  27. package/dist/constants3.d.ts +2 -2
  28. package/dist/data2.cjs +1 -1
  29. package/dist/data2.d.cts +4 -4
  30. package/dist/data2.d.ts +4 -4
  31. package/dist/data2.js +1 -1
  32. package/dist/index.cjs +1 -1
  33. package/dist/index.js +1 -1
  34. package/dist/index.vue.d.cts +4 -4
  35. package/dist/index.vue.d.ts +4 -4
  36. package/dist/index10.vue.d.cts +2 -2
  37. package/dist/index10.vue.d.ts +5 -5
  38. package/dist/index11.vue.d.cts +5 -5
  39. package/dist/index13.vue.d.ts +3 -3
  40. package/dist/index14.vue.d.cts +3 -3
  41. package/dist/index15.vue.d.ts +8 -8
  42. package/dist/index16.vue.d.cts +8 -8
  43. package/dist/index16.vue.d.ts +1 -1
  44. package/dist/index17.vue.d.cts +1 -1
  45. package/dist/index17.vue.d.ts +1 -1
  46. package/dist/index18.vue.d.cts +1 -1
  47. package/dist/index18.vue.d.ts +2 -2
  48. package/dist/index19.vue.d.cts +2 -2
  49. package/dist/index19.vue.d.ts +1 -1
  50. package/dist/index2.vue.d.cts +2 -2
  51. package/dist/index2.vue.d.ts +2 -2
  52. package/dist/index20.vue.d.cts +1 -1
  53. package/dist/index22.vue.d.ts +2 -2
  54. package/dist/index23.vue.d.cts +2 -2
  55. package/dist/index26.vue.d.cts +4 -4
  56. package/dist/index26.vue.d.ts +4 -4
  57. package/dist/index28.vue.d.cts +2 -2
  58. package/dist/index28.vue.d.ts +2 -2
  59. package/dist/index29.vue.d.cts +2 -2
  60. package/dist/index29.vue.d.ts +2 -2
  61. package/dist/index3.vue.d.cts +3 -3
  62. package/dist/index3.vue.d.ts +3 -3
  63. package/dist/index9.vue.d.ts +2 -2
  64. package/dist/mapUtils.d.cts +1 -1
  65. package/dist/mapUtils.d.ts +1 -1
  66. package/dist/serializeSearch.cjs +1 -1
  67. package/dist/serializeSearch.js +1 -1
  68. package/dist/style.css +180 -170
  69. package/dist/useCollapsePanel.d.cts +2 -2
  70. package/dist/useCollapsePanel.d.ts +2 -2
  71. package/dist/useCropperCore.d.cts +6 -6
  72. package/dist/useCropperCore.d.ts +6 -6
  73. package/dist/useDictionary.cjs +1 -1
  74. package/dist/useDictionary.js +1 -1
  75. package/dist/useDynamicFormState.d.cts +2 -2
  76. package/dist/useDynamicFormState.d.ts +2 -2
  77. package/dist/useEdgeInteraction.d.cts +3 -3
  78. package/dist/useEdgeInteraction.d.ts +3 -3
  79. package/dist/useInfiniteScroll.d.cts +2 -2
  80. package/dist/useInfiniteScroll.d.ts +2 -2
  81. package/dist/useQRCode.d.cts +3 -3
  82. package/dist/useQRCode.d.ts +3 -3
  83. package/dist/useSignatureHistory.d.cts +4 -4
  84. package/dist/useSignatureHistory.d.ts +4 -4
  85. package/dist/useSplitResize.d.cts +6 -6
  86. package/dist/useSplitResize.d.ts +6 -6
  87. package/dist/useWorkflowValidation.d.cts +97 -97
  88. package/dist/useWorkflowValidation.d.ts +97 -97
  89. package/dist/verification.d.cts +2 -2
  90. package/dist/verification.d.ts +2 -2
  91. package/docs/engineering.en.md +1 -1
  92. package/docs/engineering.md +1 -1
  93. package/docs/stability-review-20261031.md +46 -0
  94. package/package.json +4 -2
@@ -817,53 +817,53 @@
817
817
  .blur[data-v-711f6c00]{--un-blur:blur(8px);filter:var(--un-blur) var(--un-brightness) var(--un-contrast) var(--un-drop-shadow) var(--un-grayscale) var(--un-hue-rotate) var(--un-invert) var(--un-saturate) var(--un-sepia);}
818
818
 
819
819
  /* Steps 布局样式 */
820
- .c-form-steps[data-v-52fc924a] {
820
+ .c-form-steps[data-v-c3e3e8d7] {
821
821
  display: flex;
822
822
  flex-direction: column;
823
823
  gap: var(--c-form-gap, 24px);
824
824
  }
825
- .single-panel[data-v-52fc924a] {
825
+ .single-panel[data-v-c3e3e8d7] {
826
826
  width: 100%;
827
827
  }
828
- .steps-container[data-v-52fc924a] {
828
+ .steps-container[data-v-c3e3e8d7] {
829
829
  display: flex;
830
830
  flex-direction: column;
831
831
  gap: var(--c-form-gap, 24px);
832
832
  }
833
- .steps-indicator[data-v-52fc924a] {
833
+ .steps-indicator[data-v-c3e3e8d7] {
834
834
  padding: var(--c-form-padding, 24px);
835
835
  border-radius: 8px;
836
836
  }
837
- .steps-content[data-v-52fc924a] {
837
+ .steps-content[data-v-c3e3e8d7] {
838
838
  min-height: 400px;
839
839
  }
840
- .step-panel[data-v-52fc924a] {
841
- animation: fadeIn-52fc924a 0.3s ease-in-out;
840
+ .step-panel[data-v-c3e3e8d7] {
841
+ animation: fadeIn-c3e3e8d7 0.3s ease-in-out;
842
842
  }
843
- .step-header[data-v-52fc924a] {
843
+ .step-header[data-v-c3e3e8d7] {
844
844
  margin-bottom: var(--c-form-row-gap, 24px);
845
845
  padding-bottom: var(--c-form-row-gap, 16px);
846
846
  border-bottom: 1px solid var(--n-border-color);
847
847
  }
848
- .step-title[data-v-52fc924a] {
848
+ .step-title[data-v-c3e3e8d7] {
849
849
  margin: 0 0 8px 0;
850
850
  font-size: 18px;
851
851
  font-weight: 600;
852
852
  }
853
- .step-description[data-v-52fc924a] {
853
+ .step-description[data-v-c3e3e8d7] {
854
854
  margin: 0;
855
855
  font-size: 14px;
856
856
  line-height: 1.5;
857
857
  }
858
- .step-form-items[data-v-52fc924a] {
858
+ .step-form-items[data-v-c3e3e8d7] {
859
859
  width: 100%;
860
860
  }
861
- .steps-actions[data-v-52fc924a] {
861
+ .steps-actions[data-v-c3e3e8d7] {
862
862
  margin-top: var(--c-form-row-gap, 24px);
863
863
  padding-top: var(--c-form-row-gap, 16px);
864
864
  border-top: 1px solid var(--n-border-color);
865
865
  }
866
- @keyframes fadeIn-52fc924a {
866
+ @keyframes fadeIn-c3e3e8d7 {
867
867
  from {
868
868
  opacity: 0;
869
869
  transform: translateY(8px);
@@ -874,79 +874,79 @@ to {
874
874
  }
875
875
  }
876
876
  /* 垂直步骤样式:由组件状态驱动,避免 scoped CSS 生成无效的 :has/:deep 组合。 */
877
- .steps-container.is-vertical[data-v-52fc924a] {
877
+ .steps-container.is-vertical[data-v-c3e3e8d7] {
878
878
  flex-direction: row;
879
879
  align-items: flex-start;
880
880
  }
881
- .steps-container.is-vertical .steps-indicator[data-v-52fc924a] {
881
+ .steps-container.is-vertical .steps-indicator[data-v-c3e3e8d7] {
882
882
  flex-shrink: 0;
883
883
  width: 250px;
884
884
  margin-right: 24px;
885
885
  }
886
- .steps-container.is-vertical .steps-content[data-v-52fc924a] {
886
+ .steps-container.is-vertical .steps-content[data-v-c3e3e8d7] {
887
887
  flex: 1;
888
888
  }
889
889
 
890
890
  /* 响应式设计 */
891
891
  @media (max-width: 768px) {
892
- .steps-container.is-vertical[data-v-52fc924a] {
892
+ .steps-container.is-vertical[data-v-c3e3e8d7] {
893
893
  flex-direction: column !important;
894
894
  }
895
- .steps-container.is-vertical .steps-indicator[data-v-52fc924a] {
895
+ .steps-container.is-vertical .steps-indicator[data-v-c3e3e8d7] {
896
896
  width: 100% !important;
897
897
  margin-right: 0 !important;
898
898
  margin-bottom: var(--c-form-row-gap, 16px);
899
899
  }
900
900
  }
901
901
  @media (prefers-reduced-motion: reduce) {
902
- .step-panel[data-v-52fc924a] {
902
+ .step-panel[data-v-c3e3e8d7] {
903
903
  animation: none !important;
904
904
  }
905
905
  }
906
906
 
907
907
  /* layer: default */
908
- .visible[data-v-52fc924a]{visibility:visible;}
909
- .grid[data-v-52fc924a]{display:grid;}
910
- .inline[data-v-52fc924a]{display:inline;}
911
- .blur[data-v-52fc924a]{--un-blur:blur(8px);filter:var(--un-blur) var(--un-brightness) var(--un-contrast) var(--un-drop-shadow) var(--un-grayscale) var(--un-hue-rotate) var(--un-invert) var(--un-saturate) var(--un-sepia);}
908
+ .visible[data-v-c3e3e8d7]{visibility:visible;}
909
+ .grid[data-v-c3e3e8d7]{display:grid;}
910
+ .inline[data-v-c3e3e8d7]{display:inline;}
911
+ .blur[data-v-c3e3e8d7]{--un-blur:blur(8px);filter:var(--un-blur) var(--un-brightness) var(--un-contrast) var(--un-drop-shadow) var(--un-grayscale) var(--un-hue-rotate) var(--un-invert) var(--un-saturate) var(--un-sepia);}
912
912
 
913
913
  /* Tabs 布局样式 */
914
- .c-form-tabs[data-v-a597a3d1] {
914
+ .c-form-tabs[data-v-7c7a9bd4] {
915
915
  width: 100%;
916
916
  }
917
- .single-panel[data-v-a597a3d1] {
917
+ .single-panel[data-v-7c7a9bd4] {
918
918
  width: 100%;
919
919
  }
920
- .tabs-container[data-v-a597a3d1] {
920
+ .tabs-container[data-v-7c7a9bd4] {
921
921
  width: 100%;
922
922
  }
923
- .form-tabs[data-v-a597a3d1] {
923
+ .form-tabs[data-v-7c7a9bd4] {
924
924
  width: 100%;
925
925
  }
926
- .tab-icon[data-v-a597a3d1] {
926
+ .tab-icon[data-v-7c7a9bd4] {
927
927
  font-size: 16px;
928
928
  display: inline-flex;
929
929
  align-items: center;
930
930
  justify-content: center;
931
931
  }
932
- .tab-header[data-v-a597a3d1] {
932
+ .tab-header[data-v-7c7a9bd4] {
933
933
  margin-bottom: var(--c-form-row-gap, 16px);
934
934
  padding-bottom: 12px;
935
935
  border-bottom: 1px solid var(--n-border-color);
936
936
  }
937
- .tab-description[data-v-a597a3d1] {
937
+ .tab-description[data-v-7c7a9bd4] {
938
938
  margin: 0;
939
939
  font-size: 14px;
940
940
  line-height: 1.5;
941
941
  opacity: 0.8;
942
942
  }
943
- .tab-form-items[data-v-a597a3d1] {
943
+ .tab-form-items[data-v-7c7a9bd4] {
944
944
  width: 100%;
945
945
  }
946
- .tab-empty[data-v-a597a3d1] {
946
+ .tab-empty[data-v-7c7a9bd4] {
947
947
  padding: 40px 0;
948
948
  }
949
- .tabs-actions[data-v-a597a3d1] {
949
+ .tabs-actions[data-v-7c7a9bd4] {
950
950
  margin-top: var(--c-form-row-gap, 16px);
951
951
  padding-top: 12px;
952
952
  border-top: 1px solid var(--n-border-color);
@@ -954,18 +954,18 @@ to {
954
954
 
955
955
  /* 响应式设计 */
956
956
  @media (max-width: 768px) {
957
- .tabs-actions[data-v-a597a3d1] {
957
+ .tabs-actions[data-v-7c7a9bd4] {
958
958
  margin-top: 12px;
959
959
  padding-top: 8px;
960
960
  }
961
- .tabs-actions[data-v-a597a3d1] .n-space {
961
+ .tabs-actions[data-v-7c7a9bd4] .n-space {
962
962
  flex-wrap: wrap;
963
963
  }
964
964
  }
965
965
 
966
966
  /* layer: default */
967
- .visible[data-v-a597a3d1]{visibility:visible;}
968
- .grid[data-v-a597a3d1]{display:grid;}
969
- .inline[data-v-a597a3d1]{display:inline;}
970
- .tab[data-v-a597a3d1]{-moz-tab-size:4;-o-tab-size:4;tab-size:4;}
971
- .blur[data-v-a597a3d1]{--un-blur:blur(8px);filter:var(--un-blur) var(--un-brightness) var(--un-contrast) var(--un-drop-shadow) var(--un-grayscale) var(--un-hue-rotate) var(--un-invert) var(--un-saturate) var(--un-sepia);}
967
+ .visible[data-v-7c7a9bd4]{visibility:visible;}
968
+ .grid[data-v-7c7a9bd4]{display:grid;}
969
+ .inline[data-v-7c7a9bd4]{display:inline;}
970
+ .tab[data-v-7c7a9bd4]{-moz-tab-size:4;-o-tab-size:4;tab-size:4;}
971
+ .blur[data-v-7c7a9bd4]{--un-blur:blur(8px);filter:var(--un-blur) var(--un-brightness) var(--un-contrast) var(--un-drop-shadow) var(--un-grayscale) var(--un-hue-rotate) var(--un-invert) var(--un-saturate) var(--un-sepia);}
package/dist/C_Form.css CHANGED
@@ -816,53 +816,53 @@
816
816
  .blur[data-v-711f6c00]{--un-blur:blur(8px);filter:var(--un-blur) var(--un-brightness) var(--un-contrast) var(--un-drop-shadow) var(--un-grayscale) var(--un-hue-rotate) var(--un-invert) var(--un-saturate) var(--un-sepia);}
817
817
 
818
818
  /* Steps 布局样式 */
819
- .c-form-steps[data-v-52fc924a] {
819
+ .c-form-steps[data-v-c3e3e8d7] {
820
820
  display: flex;
821
821
  flex-direction: column;
822
822
  gap: var(--c-form-gap, 24px);
823
823
  }
824
- .single-panel[data-v-52fc924a] {
824
+ .single-panel[data-v-c3e3e8d7] {
825
825
  width: 100%;
826
826
  }
827
- .steps-container[data-v-52fc924a] {
827
+ .steps-container[data-v-c3e3e8d7] {
828
828
  display: flex;
829
829
  flex-direction: column;
830
830
  gap: var(--c-form-gap, 24px);
831
831
  }
832
- .steps-indicator[data-v-52fc924a] {
832
+ .steps-indicator[data-v-c3e3e8d7] {
833
833
  padding: var(--c-form-padding, 24px);
834
834
  border-radius: 8px;
835
835
  }
836
- .steps-content[data-v-52fc924a] {
836
+ .steps-content[data-v-c3e3e8d7] {
837
837
  min-height: 400px;
838
838
  }
839
- .step-panel[data-v-52fc924a] {
840
- animation: fadeIn-52fc924a 0.3s ease-in-out;
839
+ .step-panel[data-v-c3e3e8d7] {
840
+ animation: fadeIn-c3e3e8d7 0.3s ease-in-out;
841
841
  }
842
- .step-header[data-v-52fc924a] {
842
+ .step-header[data-v-c3e3e8d7] {
843
843
  margin-bottom: var(--c-form-row-gap, 24px);
844
844
  padding-bottom: var(--c-form-row-gap, 16px);
845
845
  border-bottom: 1px solid var(--n-border-color);
846
846
  }
847
- .step-title[data-v-52fc924a] {
847
+ .step-title[data-v-c3e3e8d7] {
848
848
  margin: 0 0 8px 0;
849
849
  font-size: 18px;
850
850
  font-weight: 600;
851
851
  }
852
- .step-description[data-v-52fc924a] {
852
+ .step-description[data-v-c3e3e8d7] {
853
853
  margin: 0;
854
854
  font-size: 14px;
855
855
  line-height: 1.5;
856
856
  }
857
- .step-form-items[data-v-52fc924a] {
857
+ .step-form-items[data-v-c3e3e8d7] {
858
858
  width: 100%;
859
859
  }
860
- .steps-actions[data-v-52fc924a] {
860
+ .steps-actions[data-v-c3e3e8d7] {
861
861
  margin-top: var(--c-form-row-gap, 24px);
862
862
  padding-top: var(--c-form-row-gap, 16px);
863
863
  border-top: 1px solid var(--n-border-color);
864
864
  }
865
- @keyframes fadeIn-52fc924a {
865
+ @keyframes fadeIn-c3e3e8d7 {
866
866
  from {
867
867
  opacity: 0;
868
868
  transform: translateY(8px);
@@ -873,79 +873,79 @@ to {
873
873
  }
874
874
  }
875
875
  /* 垂直步骤样式:由组件状态驱动,避免 scoped CSS 生成无效的 :has/:deep 组合。 */
876
- .steps-container.is-vertical[data-v-52fc924a] {
876
+ .steps-container.is-vertical[data-v-c3e3e8d7] {
877
877
  flex-direction: row;
878
878
  align-items: flex-start;
879
879
  }
880
- .steps-container.is-vertical .steps-indicator[data-v-52fc924a] {
880
+ .steps-container.is-vertical .steps-indicator[data-v-c3e3e8d7] {
881
881
  flex-shrink: 0;
882
882
  width: 250px;
883
883
  margin-right: 24px;
884
884
  }
885
- .steps-container.is-vertical .steps-content[data-v-52fc924a] {
885
+ .steps-container.is-vertical .steps-content[data-v-c3e3e8d7] {
886
886
  flex: 1;
887
887
  }
888
888
 
889
889
  /* 响应式设计 */
890
890
  @media (max-width: 768px) {
891
- .steps-container.is-vertical[data-v-52fc924a] {
891
+ .steps-container.is-vertical[data-v-c3e3e8d7] {
892
892
  flex-direction: column !important;
893
893
  }
894
- .steps-container.is-vertical .steps-indicator[data-v-52fc924a] {
894
+ .steps-container.is-vertical .steps-indicator[data-v-c3e3e8d7] {
895
895
  width: 100% !important;
896
896
  margin-right: 0 !important;
897
897
  margin-bottom: var(--c-form-row-gap, 16px);
898
898
  }
899
899
  }
900
900
  @media (prefers-reduced-motion: reduce) {
901
- .step-panel[data-v-52fc924a] {
901
+ .step-panel[data-v-c3e3e8d7] {
902
902
  animation: none !important;
903
903
  }
904
904
  }
905
905
 
906
906
  /* layer: default */
907
- .visible[data-v-52fc924a]{visibility:visible;}
908
- .grid[data-v-52fc924a]{display:grid;}
909
- .inline[data-v-52fc924a]{display:inline;}
910
- .blur[data-v-52fc924a]{--un-blur:blur(8px);filter:var(--un-blur) var(--un-brightness) var(--un-contrast) var(--un-drop-shadow) var(--un-grayscale) var(--un-hue-rotate) var(--un-invert) var(--un-saturate) var(--un-sepia);}
907
+ .visible[data-v-c3e3e8d7]{visibility:visible;}
908
+ .grid[data-v-c3e3e8d7]{display:grid;}
909
+ .inline[data-v-c3e3e8d7]{display:inline;}
910
+ .blur[data-v-c3e3e8d7]{--un-blur:blur(8px);filter:var(--un-blur) var(--un-brightness) var(--un-contrast) var(--un-drop-shadow) var(--un-grayscale) var(--un-hue-rotate) var(--un-invert) var(--un-saturate) var(--un-sepia);}
911
911
 
912
912
  /* Tabs 布局样式 */
913
- .c-form-tabs[data-v-a597a3d1] {
913
+ .c-form-tabs[data-v-7c7a9bd4] {
914
914
  width: 100%;
915
915
  }
916
- .single-panel[data-v-a597a3d1] {
916
+ .single-panel[data-v-7c7a9bd4] {
917
917
  width: 100%;
918
918
  }
919
- .tabs-container[data-v-a597a3d1] {
919
+ .tabs-container[data-v-7c7a9bd4] {
920
920
  width: 100%;
921
921
  }
922
- .form-tabs[data-v-a597a3d1] {
922
+ .form-tabs[data-v-7c7a9bd4] {
923
923
  width: 100%;
924
924
  }
925
- .tab-icon[data-v-a597a3d1] {
925
+ .tab-icon[data-v-7c7a9bd4] {
926
926
  font-size: 16px;
927
927
  display: inline-flex;
928
928
  align-items: center;
929
929
  justify-content: center;
930
930
  }
931
- .tab-header[data-v-a597a3d1] {
931
+ .tab-header[data-v-7c7a9bd4] {
932
932
  margin-bottom: var(--c-form-row-gap, 16px);
933
933
  padding-bottom: 12px;
934
934
  border-bottom: 1px solid var(--n-border-color);
935
935
  }
936
- .tab-description[data-v-a597a3d1] {
936
+ .tab-description[data-v-7c7a9bd4] {
937
937
  margin: 0;
938
938
  font-size: 14px;
939
939
  line-height: 1.5;
940
940
  opacity: 0.8;
941
941
  }
942
- .tab-form-items[data-v-a597a3d1] {
942
+ .tab-form-items[data-v-7c7a9bd4] {
943
943
  width: 100%;
944
944
  }
945
- .tab-empty[data-v-a597a3d1] {
945
+ .tab-empty[data-v-7c7a9bd4] {
946
946
  padding: 40px 0;
947
947
  }
948
- .tabs-actions[data-v-a597a3d1] {
948
+ .tabs-actions[data-v-7c7a9bd4] {
949
949
  margin-top: var(--c-form-row-gap, 16px);
950
950
  padding-top: 12px;
951
951
  border-top: 1px solid var(--n-border-color);
@@ -953,18 +953,18 @@ to {
953
953
 
954
954
  /* 响应式设计 */
955
955
  @media (max-width: 768px) {
956
- .tabs-actions[data-v-a597a3d1] {
956
+ .tabs-actions[data-v-7c7a9bd4] {
957
957
  margin-top: 12px;
958
958
  padding-top: 8px;
959
959
  }
960
- .tabs-actions[data-v-a597a3d1] .n-space {
960
+ .tabs-actions[data-v-7c7a9bd4] .n-space {
961
961
  flex-wrap: wrap;
962
962
  }
963
963
  }
964
964
 
965
965
  /* layer: default */
966
- .visible[data-v-a597a3d1]{visibility:visible;}
967
- .grid[data-v-a597a3d1]{display:grid;}
968
- .inline[data-v-a597a3d1]{display:inline;}
969
- .tab[data-v-a597a3d1]{-moz-tab-size:4;-o-tab-size:4;tab-size:4;}
970
- .blur[data-v-a597a3d1]{--un-blur:blur(8px);filter:var(--un-blur) var(--un-brightness) var(--un-contrast) var(--un-drop-shadow) var(--un-grayscale) var(--un-hue-rotate) var(--un-invert) var(--un-saturate) var(--un-sepia);}
966
+ .visible[data-v-7c7a9bd4]{visibility:visible;}
967
+ .grid[data-v-7c7a9bd4]{display:grid;}
968
+ .inline[data-v-7c7a9bd4]{display:inline;}
969
+ .tab[data-v-7c7a9bd4]{-moz-tab-size:4;-o-tab-size:4;tab-size:4;}
970
+ .blur[data-v-7c7a9bd4]{--un-blur:blur(8px);filter:var(--un-blur) var(--un-brightness) var(--un-contrast) var(--un-drop-shadow) var(--un-grayscale) var(--un-hue-rotate) var(--un-invert) var(--un-saturate) var(--un-sepia);}
package/dist/C_Map2.cjs CHANGED
@@ -1 +1 @@
1
- require(`./chunk.cjs`);const e=require(`./export-helper.cjs`);let t=require(`vue`),n=require(`naive-ui`);const r=[{label:`OpenStreetMap`,value:`osm`},{label:`高德地图`,value:`amap`}],i={height:`400px`,center:[39.9042,116.4074],zoom:10,mapType:`osm`},a={url:`https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png`,attribution:`© OpenStreetMap contributors`,maxZoom:19,minZoom:1,tileSize:256,detectRetina:!0},o={apiUrl:`https://webapi.amap.com/maps?v=2.0&key=`,note:`高德地图需要API Key,如需使用请申请:https://lbs.amap.com/api/javascript-api/guide/create/`},s=15e3;let c=null,l=null;function u(e){if(!e)return;let t=e.serviceHost?.trim(),n=e.securityJsCode?.trim();if(t&&n)throw Error(`高德地图安全配置只能选择 serviceHost 或 securityJsCode`);if(t){if(!t.endsWith(`/_AMapService`))throw Error(`高德地图 serviceHost 必须以 /_AMapService 结尾`);return{serviceHost:t}}if(n)return{securityJsCode:n};throw Error(`高德地图安全配置不能为空`)}const d=e=>{if(e)return e;if(typeof window>`u`||typeof document>`u`)throw Error(`高德地图 API 只能在浏览器环境加载`);return{clearTimeout:window.clearTimeout.bind(window),document,host:window,setTimeout:window.setTimeout.bind(window)}},f=(e,t,n)=>{let r=e.trim();if(!r)throw Error(`高德地图 API Key 不能为空`);let i=u(t);return{identity:JSON.stringify([r,i]),normalizedKey:r,normalizedSecurityConfig:i,platform:d(n)}};function p(e,t=s,n,r){let i;try{i=f(e,n,r)}catch(e){return Promise.reject(e)}let{identity:a,normalizedKey:u,normalizedSecurityConfig:d}=i,{clearTimeout:p,document:m,host:h,setTimeout:g}=i.platform;return l&&l!==a?Promise.reject(Error(`同一页面不能使用不同的高德地图 Key 或安全配置`)):h.AMap?Promise.resolve(h.AMap):c||(l=a,d&&(h._AMapSecurityConfig={...d}),c=new Promise((e,n)=>{let r=m.querySelector(`script[data-c-map-amap="true"]`),i=r||m.createElement(`script`),a=!1,d=Number.isFinite(t)&&t>0?t:s,f=()=>{p(b),i.removeEventListener(`load`,v),i.removeEventListener(`error`,y)},_=e=>{a||(a=!0,f(),i.remove(),c=null,l=null,n(e))},v=()=>{if(!a){if(!h.AMap){_(Error(`高德地图 API 加载完成但未找到全局对象`));return}a=!0,f(),e(h.AMap)}},y=()=>_(Error(`高德地图 API 加载失败`)),b=g(()=>_(Error(`高德地图 API 加载超时(${d}ms)`)),d);i.addEventListener(`load`,v,{once:!0}),i.addEventListener(`error`,y,{once:!0}),!r&&(i.async=!0,i.dataset.cMapAmap=`true`,i.src=`${o.apiUrl}${encodeURIComponent(u)}`,m.head.appendChild(i))}),c)}const m=e=>{if(!e||typeof e!=`object`)return!1;let t=e;return typeof t.map==`function`&&typeof t.marker==`function`&&typeof t.tileLayer==`function`},h=e=>{if(m(e))return e;let t=e&&typeof e==`object`?e.default:void 0;if(m(t))return t;throw Error(`Leaflet 模块加载失败:未找到 map、marker 和 tileLayer API`)},g=async()=>h(await import(`leaflet`));function _(e){if(!e||e.length!==2)return!1;let[t,n]=e;return Number.isFinite(t)&&Number.isFinite(n)&&t>=-90&&t<=90&&n>=-180&&n<=180}function v(e){return[e[1],e[0]]}function y(e){return e.filter(e=>_([e.lat,e.lng]))}function b(e,t=a.minZoom,n=a.maxZoom){return Number.isFinite(e)?Math.min(Math.max(e,t),n):i.zoom}function x(e={}){let{url:t,...n}={...a,...e};return{url:t,options:n}}const S=[`aria-label`,`aria-busy`],C={key:0,class:`map-loading`,role:`status`,"aria-live":`polite`,"aria-label":`地图加载中`},w=(0,t.defineComponent)({name:`C_Map`,__name:`index`,props:{ariaLabel:{default:`地图`},height:{default:i.height},center:{default:()=>[...i.center]},zoom:{default:i.zoom},markers:{default:()=>[]},mapType:{default:i.mapType},amapKey:{default:``},amapSecurityConfig:{},amapLoadTimeout:{default:15e3},amapOptions:{default:()=>({})},tileConfig:{default:()=>({})},zoomControl:{type:Boolean,default:!0},preferCanvas:{type:Boolean,default:!0},fitMarkersOnInit:{type:Boolean,default:!1}},emits:[`ready`,`markerClick`,`error`],setup(e,{expose:r,emit:i}){let a=e,o=i,s=(0,t.ref)(),c=(0,t.ref)(!0),l=null,u=null,d=[],f=null,m=null,h=[],w=[],T=0,E=!1,D=e=>e instanceof Error?e:Error(String(e)),O=()=>{d.forEach(e=>e.remove()),d=[]},k=()=>{w.forEach(e=>e.close?.()),w=[],h.forEach(e=>e.setMap?.(null)),h=[]},A=()=>{O(),k();let e=u;if(u=null,e){let t=e;t._animatingZoom=!1}e?.stop(),e?.remove(),m?.destroy(),m=null,s.value?.replaceChildren()},j=()=>{let e=++T;return A(),c.value=!0,e},M=e=>!E&&e===T,N=()=>{if(_(a.center))return a.center;throw Error(`地图中心坐标无效,应使用 [纬度, 经度] 且处于合法范围`)},P=(e,t)=>{M(e)&&(A(),c.value=!1,o(`error`,D(t)))},F=()=>{let e=l,t=u;if(!t||!e||a.mapType!==`osm`)return;O();let n=e.icon({iconUrl:`data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2228%22%20height%3D%2240%22%20viewBox%3D%220%200%2028%2040%22%3E%3Cpath%20d%3D%22M14%2039S1%2024%201%2014a13%2013%200%200%201%2026%200c0%2010-13%2025-13%2025Z%22%20fill%3D%22%23287be8%22%20stroke%3D%22white%22%20stroke-width%3D%222%22%2F%3E%3Ccircle%20cx%3D%2214%22%20cy%3D%2214%22%20r%3D%225%22%20fill%3D%22white%22%2F%3E%3C%2Fsvg%3E`,iconSize:[28,40],iconAnchor:[14,40],popupAnchor:[0,-35]});y(a.markers).forEach(r=>{let i=e.marker([r.lat,r.lng],{icon:n,title:r.title||r.popup||``});if(r.popup){let e=document.createElement(`span`);e.textContent=r.popup,i.bindPopup(e)}i.on(`click`,e=>{o(`markerClick`,r,e)}),i.addTo(t),d.push(i)})},I=()=>{let e=f,t=m;!t||!e||a.mapType!==`amap`||(k(),y(a.markers).forEach(n=>{let r=new e.Marker({position:v([n.lat,n.lng]),title:n.title||n.popup||``});if(n.popup){let i=document.createElement(`span`);i.textContent=n.popup;let a=new e.InfoWindow({content:i,offset:new e.Pixel(0,-30)});w.push(a),r.on(`click`,e=>{a.open(t,r.getPosition()),o(`markerClick`,n,e)})}else r.on(`click`,e=>o(`markerClick`,n,e));r.setMap(t),h.push(r)}))},L=()=>u||m,R=()=>{u?.invalidateSize({pan:!1}),m?.resize?.()},z=(e={})=>{let t=y(a.markers);if(t.length===0)return!1;if(u){let n=t.map(e=>[e.lat,e.lng]);return u.fitBounds(n,{maxZoom:e.maxZoom,padding:e.padding}),!0}if(m&&h.length>0){let[t=0,n=0]=e.padding||[];return m.setFitView?.(h,!1,[n,t,n,t],e.maxZoom),!0}return!1},B=async()=>{if(!s.value)return;let e=j();try{let n=await g();if(!M(e)||!s.value)return;l=n;let{url:r,options:i}=x(a.tileConfig),d=b(a.zoom,i.minZoom,i.maxZoom);if(u=n.map(s.value,{center:N(),zoom:d,zoomControl:a.zoomControl,preferCanvas:a.preferCanvas}),n.tileLayer(r,i).addTo(u),F(),a.fitMarkersOnInit&&z(),await(0,t.nextTick)(),requestAnimationFrame(()=>{M(e)&&R()}),!M(e)||!u)return;c.value=!1,o(`ready`,u)}catch(t){P(e,t)}},V=async()=>{if(!s.value)return;let e=j();try{let t=await p(a.amapKey,a.amapLoadTimeout,a.amapSecurityConfig);if(!M(e)||!s.value)return;f=t,m=new t.Map(s.value,{...a.amapOptions,zoom:b(a.zoom,1,20),center:v(N())}),I(),a.fitMarkersOnInit&&z(),c.value=!1,o(`ready`,m)}catch(t){P(e,t)}},H=async()=>{a.mapType===`amap`?await V():await B()};return(0,t.watch)(()=>a.markers,()=>{a.mapType===`osm`?F():I()},{deep:!0}),(0,t.watch)([()=>a.mapType,()=>a.amapKey,()=>a.amapSecurityConfig,()=>a.amapLoadTimeout,()=>a.amapOptions,()=>a.tileConfig,()=>a.zoomControl,()=>a.preferCanvas],()=>void H(),{deep:!0}),(0,t.watch)([()=>a.center,()=>a.zoom],()=>{if(!_(a.center)){o(`error`,Error(`地图中心坐标无效,应使用 [纬度, 经度]`));return}u?.setView(a.center,b(a.zoom)),m?.setCenter(v(a.center)),m?.setZoom(b(a.zoom,1,20))},{deep:!0}),(0,t.onMounted)(async()=>{await(0,t.nextTick)(),await H()}),(0,t.onUnmounted)(()=>{E=!0,T+=1,A()}),r({fitToMarkers:z,getMap:L,refresh:R}),(r,i)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:`c-map`,role:`region`,"aria-label":e.ariaLabel,"aria-busy":c.value},[(0,t.createElementVNode)(`div`,{ref_key:`mapContainer`,ref:s,class:`map-container`,style:(0,t.normalizeStyle)({height:e.height})},null,4),c.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,C,[(0,t.createVNode)((0,t.unref)(n.NSpin),{size:`large`})])):(0,t.createCommentVNode)(`v-if`,!0)],8,S))}});var T=e.t(w,[[`__scopeId`,`data-v-7db70bf0`]]);Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return x}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return r}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return b}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return T}});
1
+ require(`./chunk.cjs`);const e=require(`./export-helper.cjs`);let t=require(`vue`),n=require(`naive-ui`);const r=[{label:`OpenStreetMap`,value:`osm`},{label:`高德地图`,value:`amap`}],i={height:`400px`,center:[39.9042,116.4074],zoom:10,mapType:`osm`},a={url:`https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png`,attribution:`© OpenStreetMap contributors`,maxZoom:19,minZoom:1,tileSize:256,detectRetina:!0},o={apiUrl:`https://webapi.amap.com/maps?v=2.0&key=`,note:`高德地图需要API Key,如需使用请申请:https://lbs.amap.com/api/javascript-api/guide/create/`},s=15e3;let c=null,l=null;function u(e){if(!e)return;let t=e.serviceHost?.trim(),n=e.securityJsCode?.trim();if(t&&n)throw Error(`高德地图安全配置只能选择 serviceHost 或 securityJsCode`);if(t){if(!t.endsWith(`/_AMapService`))throw Error(`高德地图 serviceHost 必须以 /_AMapService 结尾`);return{serviceHost:t}}if(n)return{securityJsCode:n};throw Error(`高德地图安全配置不能为空`)}const d=e=>{if(e)return e;if(typeof window>`u`||typeof document>`u`)throw Error(`高德地图 API 只能在浏览器环境加载`);return{clearTimeout:window.clearTimeout.bind(window),document,host:window,setTimeout:window.setTimeout.bind(window)}},f=(e,t,n)=>{let r=e.trim();if(!r)throw Error(`高德地图 API Key 不能为空`);let i=u(t);return{identity:JSON.stringify([r,i]),normalizedKey:r,normalizedSecurityConfig:i,platform:d(n)}};function p(e,t=s,n,r){let i;try{i=f(e,n,r)}catch(e){return Promise.reject(e)}let{identity:a,normalizedKey:u,normalizedSecurityConfig:d}=i,{clearTimeout:p,document:m,host:h,setTimeout:g}=i.platform;if(l&&l!==a)return Promise.reject(Error(`同一页面不能使用不同的高德地图 Key 或安全配置`));if(h.AMap)return Promise.resolve(h.AMap);if(c)return c;l=a;let _=h._AMapSecurityConfig,v=d?{...d}:void 0;return v&&(h._AMapSecurityConfig=v),c=new Promise((e,n)=>{let r=m.querySelector(`script[data-c-map-amap="true"]`),i=r||m.createElement(`script`),a=!1,d=Number.isFinite(t)&&t>0?t:s,f=()=>{p(S),i.removeEventListener(`load`,b),i.removeEventListener(`error`,x)},y=e=>{a||(a=!0,f(),i.remove(),c=null,l=null,v&&h._AMapSecurityConfig===v&&(_===void 0?delete h._AMapSecurityConfig:h._AMapSecurityConfig=_),n(e))},b=()=>{if(!a){if(!h.AMap){y(Error(`高德地图 API 加载完成但未找到全局对象`));return}a=!0,f(),e(h.AMap)}},x=()=>y(Error(`高德地图 API 加载失败`)),S=g(()=>y(Error(`高德地图 API 加载超时(${d}ms)`)),d);i.addEventListener(`load`,b,{once:!0}),i.addEventListener(`error`,x,{once:!0}),!r&&(i.async=!0,i.dataset.cMapAmap=`true`,i.src=`${o.apiUrl}${encodeURIComponent(u)}`,m.head.appendChild(i))}),c}const m=e=>{if(!e||typeof e!=`object`)return!1;let t=e;return typeof t.map==`function`&&typeof t.marker==`function`&&typeof t.tileLayer==`function`},h=e=>{if(m(e))return e;let t=e&&typeof e==`object`?e.default:void 0;if(m(t))return t;throw Error(`Leaflet 模块加载失败:未找到 map、marker 和 tileLayer API`)},g=async()=>h(await import(`leaflet`));function _(e){if(!e||e.length!==2)return!1;let[t,n]=e;return Number.isFinite(t)&&Number.isFinite(n)&&t>=-90&&t<=90&&n>=-180&&n<=180}function v(e){return[e[1],e[0]]}function y(e){return e.filter(e=>_([e.lat,e.lng]))}function b(e,t=a.minZoom,n=a.maxZoom){return Number.isFinite(e)?Math.min(Math.max(e,t),n):i.zoom}function x(e={}){let{url:t,...n}={...a,...e};return{url:t,options:n}}const S=[`aria-label`,`aria-busy`],C={key:0,class:`map-loading`,role:`status`,"aria-live":`polite`,"aria-label":`地图加载中`},w=(0,t.defineComponent)({name:`C_Map`,__name:`index`,props:{ariaLabel:{default:`地图`},height:{default:i.height},center:{default:()=>[...i.center]},zoom:{default:i.zoom},markers:{default:()=>[]},mapType:{default:i.mapType},amapKey:{default:``},amapSecurityConfig:{},amapLoadTimeout:{default:15e3},amapOptions:{default:()=>({})},tileConfig:{default:()=>({})},zoomControl:{type:Boolean,default:!0},preferCanvas:{type:Boolean,default:!0},fitMarkersOnInit:{type:Boolean,default:!1}},emits:[`ready`,`markerClick`,`error`],setup(e,{expose:r,emit:i}){let a=e,o=i,s=(0,t.ref)(),c=(0,t.ref)(!0),l=null,u=null,d=[],f=null,m=null,h=[],w=[],T=0,E=!1,D=e=>e instanceof Error?e:Error(String(e)),O=()=>{d.forEach(e=>e.remove()),d=[]},k=()=>{w.forEach(e=>e.close?.()),w=[],h.forEach(e=>e.setMap?.(null)),h=[]},A=()=>{O(),k();let e=u;if(u=null,e){let t=e;t._animatingZoom=!1}e?.stop(),e?.remove(),m?.destroy(),m=null,s.value?.replaceChildren()},j=()=>{let e=++T;return A(),c.value=!0,e},M=e=>!E&&e===T,N=()=>{if(_(a.center))return a.center;throw Error(`地图中心坐标无效,应使用 [纬度, 经度] 且处于合法范围`)},P=(e,t)=>{M(e)&&(A(),c.value=!1,o(`error`,D(t)))},F=()=>{let e=l,t=u;if(!t||!e||a.mapType!==`osm`)return;O();let n=e.icon({iconUrl:`data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2228%22%20height%3D%2240%22%20viewBox%3D%220%200%2028%2040%22%3E%3Cpath%20d%3D%22M14%2039S1%2024%201%2014a13%2013%200%200%201%2026%200c0%2010-13%2025-13%2025Z%22%20fill%3D%22%23287be8%22%20stroke%3D%22white%22%20stroke-width%3D%222%22%2F%3E%3Ccircle%20cx%3D%2214%22%20cy%3D%2214%22%20r%3D%225%22%20fill%3D%22white%22%2F%3E%3C%2Fsvg%3E`,iconSize:[28,40],iconAnchor:[14,40],popupAnchor:[0,-35]});y(a.markers).forEach(r=>{let i=e.marker([r.lat,r.lng],{icon:n,title:r.title||r.popup||``});if(r.popup){let e=document.createElement(`span`);e.textContent=r.popup,i.bindPopup(e)}i.on(`click`,e=>{o(`markerClick`,r,e)}),i.addTo(t),d.push(i)})},I=()=>{let e=f,t=m;!t||!e||a.mapType!==`amap`||(k(),y(a.markers).forEach(n=>{let r=new e.Marker({position:v([n.lat,n.lng]),title:n.title||n.popup||``});if(n.popup){let i=document.createElement(`span`);i.textContent=n.popup;let a=new e.InfoWindow({content:i,offset:new e.Pixel(0,-30)});w.push(a),r.on(`click`,e=>{a.open(t,r.getPosition()),o(`markerClick`,n,e)})}else r.on(`click`,e=>o(`markerClick`,n,e));r.setMap(t),h.push(r)}))},L=()=>u||m,R=()=>{u?.invalidateSize({pan:!1}),m?.resize?.()},z=(e={})=>{let t=y(a.markers);if(t.length===0)return!1;if(u){let n=t.map(e=>[e.lat,e.lng]);return u.fitBounds(n,{maxZoom:e.maxZoom,padding:e.padding}),!0}if(m&&h.length>0){let[t=0,n=0]=e.padding||[];return m.setFitView?.(h,!1,[n,t,n,t],e.maxZoom),!0}return!1},B=async()=>{if(!s.value)return;let e=j();try{let n=await g();if(!M(e)||!s.value)return;l=n;let{url:r,options:i}=x(a.tileConfig),d=b(a.zoom,i.minZoom,i.maxZoom);if(u=n.map(s.value,{center:N(),zoom:d,zoomControl:a.zoomControl,preferCanvas:a.preferCanvas}),n.tileLayer(r,i).addTo(u),F(),a.fitMarkersOnInit&&z(),await(0,t.nextTick)(),requestAnimationFrame(()=>{M(e)&&R()}),!M(e)||!u)return;c.value=!1,o(`ready`,u)}catch(t){P(e,t)}},V=async()=>{if(!s.value)return;let e=j();try{let t=await p(a.amapKey,a.amapLoadTimeout,a.amapSecurityConfig);if(!M(e)||!s.value)return;f=t,m=new t.Map(s.value,{...a.amapOptions,zoom:b(a.zoom,1,20),center:v(N())}),I(),a.fitMarkersOnInit&&z(),c.value=!1,o(`ready`,m)}catch(t){P(e,t)}},H=async()=>{a.mapType===`amap`?await V():await B()};return(0,t.watch)(()=>a.markers,()=>{a.mapType===`osm`?F():I()},{deep:!0}),(0,t.watch)([()=>a.mapType,()=>a.amapKey,()=>a.amapSecurityConfig,()=>a.amapLoadTimeout,()=>a.amapOptions,()=>a.tileConfig,()=>a.zoomControl,()=>a.preferCanvas],()=>void H(),{deep:!0}),(0,t.watch)([()=>a.center,()=>a.zoom],()=>{if(!_(a.center)){o(`error`,Error(`地图中心坐标无效,应使用 [纬度, 经度]`));return}u?.setView(a.center,b(a.zoom)),m?.setCenter(v(a.center)),m?.setZoom(b(a.zoom,1,20))},{deep:!0}),(0,t.onMounted)(async()=>{await(0,t.nextTick)(),await H()}),(0,t.onUnmounted)(()=>{E=!0,T+=1,A()}),r({fitToMarkers:z,getMap:L,refresh:R}),(r,i)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:`c-map`,role:`region`,"aria-label":e.ariaLabel,"aria-busy":c.value},[(0,t.createElementVNode)(`div`,{ref_key:`mapContainer`,ref:s,class:`map-container`,style:(0,t.normalizeStyle)({height:e.height})},null,4),c.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,C,[(0,t.createVNode)((0,t.unref)(n.NSpin),{size:`large`})])):(0,t.createCommentVNode)(`v-if`,!0)],8,S))}});var T=e.t(w,[[`__scopeId`,`data-v-7db70bf0`]]);Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return x}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return r}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return b}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return T}});
package/dist/C_Map2.js CHANGED
@@ -1 +1 @@
1
- import{t as e}from"./export-helper.js";import{createCommentVNode as t,createElementBlock as n,createElementVNode as r,createVNode as i,defineComponent as a,nextTick as o,normalizeStyle as s,onMounted as c,onUnmounted as l,openBlock as u,ref as d,unref as f,watch as p}from"vue";import{NSpin as m}from"naive-ui";const h=[{label:`OpenStreetMap`,value:`osm`},{label:`高德地图`,value:`amap`}],g={height:`400px`,center:[39.9042,116.4074],zoom:10,mapType:`osm`},_={url:`https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png`,attribution:`© OpenStreetMap contributors`,maxZoom:19,minZoom:1,tileSize:256,detectRetina:!0},v={apiUrl:`https://webapi.amap.com/maps?v=2.0&key=`,note:`高德地图需要API Key,如需使用请申请:https://lbs.amap.com/api/javascript-api/guide/create/`},y=15e3;let b=null,x=null;function S(e){if(!e)return;let t=e.serviceHost?.trim(),n=e.securityJsCode?.trim();if(t&&n)throw Error(`高德地图安全配置只能选择 serviceHost 或 securityJsCode`);if(t){if(!t.endsWith(`/_AMapService`))throw Error(`高德地图 serviceHost 必须以 /_AMapService 结尾`);return{serviceHost:t}}if(n)return{securityJsCode:n};throw Error(`高德地图安全配置不能为空`)}const C=e=>{if(e)return e;if(typeof window>`u`||typeof document>`u`)throw Error(`高德地图 API 只能在浏览器环境加载`);return{clearTimeout:window.clearTimeout.bind(window),document,host:window,setTimeout:window.setTimeout.bind(window)}},w=(e,t,n)=>{let r=e.trim();if(!r)throw Error(`高德地图 API Key 不能为空`);let i=S(t);return{identity:JSON.stringify([r,i]),normalizedKey:r,normalizedSecurityConfig:i,platform:C(n)}};function T(e,t=y,n,r){let i;try{i=w(e,n,r)}catch(e){return Promise.reject(e)}let{identity:a,normalizedKey:o,normalizedSecurityConfig:s}=i,{clearTimeout:c,document:l,host:u,setTimeout:d}=i.platform;return x&&x!==a?Promise.reject(Error(`同一页面不能使用不同的高德地图 Key 或安全配置`)):u.AMap?Promise.resolve(u.AMap):b||(x=a,s&&(u._AMapSecurityConfig={...s}),b=new Promise((e,n)=>{let r=l.querySelector(`script[data-c-map-amap="true"]`),i=r||l.createElement(`script`),a=!1,s=Number.isFinite(t)&&t>0?t:y,f=()=>{c(g),i.removeEventListener(`load`,m),i.removeEventListener(`error`,h)},p=e=>{a||(a=!0,f(),i.remove(),b=null,x=null,n(e))},m=()=>{if(!a){if(!u.AMap){p(Error(`高德地图 API 加载完成但未找到全局对象`));return}a=!0,f(),e(u.AMap)}},h=()=>p(Error(`高德地图 API 加载失败`)),g=d(()=>p(Error(`高德地图 API 加载超时(${s}ms)`)),s);i.addEventListener(`load`,m,{once:!0}),i.addEventListener(`error`,h,{once:!0}),!r&&(i.async=!0,i.dataset.cMapAmap=`true`,i.src=`${v.apiUrl}${encodeURIComponent(o)}`,l.head.appendChild(i))}),b)}const E=e=>{if(!e||typeof e!=`object`)return!1;let t=e;return typeof t.map==`function`&&typeof t.marker==`function`&&typeof t.tileLayer==`function`},D=e=>{if(E(e))return e;let t=e&&typeof e==`object`?e.default:void 0;if(E(t))return t;throw Error(`Leaflet 模块加载失败:未找到 map、marker 和 tileLayer API`)},O=async()=>D(await import(`leaflet`));function k(e){if(!e||e.length!==2)return!1;let[t,n]=e;return Number.isFinite(t)&&Number.isFinite(n)&&t>=-90&&t<=90&&n>=-180&&n<=180}function A(e){return[e[1],e[0]]}function j(e){return e.filter(e=>k([e.lat,e.lng]))}function M(e,t=_.minZoom,n=_.maxZoom){return Number.isFinite(e)?Math.min(Math.max(e,t),n):g.zoom}function N(e={}){let{url:t,...n}={..._,...e};return{url:t,options:n}}const P=[`aria-label`,`aria-busy`],F={key:0,class:`map-loading`,role:`status`,"aria-live":`polite`,"aria-label":`地图加载中`};var I=e(a({name:`C_Map`,__name:`index`,props:{ariaLabel:{default:`地图`},height:{default:g.height},center:{default:()=>[...g.center]},zoom:{default:g.zoom},markers:{default:()=>[]},mapType:{default:g.mapType},amapKey:{default:``},amapSecurityConfig:{},amapLoadTimeout:{default:15e3},amapOptions:{default:()=>({})},tileConfig:{default:()=>({})},zoomControl:{type:Boolean,default:!0},preferCanvas:{type:Boolean,default:!0},fitMarkersOnInit:{type:Boolean,default:!1}},emits:[`ready`,`markerClick`,`error`],setup(e,{expose:a,emit:h}){let g=e,_=h,v=d(),y=d(!0),b=null,x=null,S=[],C=null,w=null,E=[],D=[],I=0,L=!1,R=e=>e instanceof Error?e:Error(String(e)),z=()=>{S.forEach(e=>e.remove()),S=[]},B=()=>{D.forEach(e=>e.close?.()),D=[],E.forEach(e=>e.setMap?.(null)),E=[]},V=()=>{z(),B();let e=x;if(x=null,e){let t=e;t._animatingZoom=!1}e?.stop(),e?.remove(),w?.destroy(),w=null,v.value?.replaceChildren()},H=()=>{let e=++I;return V(),y.value=!0,e},U=e=>!L&&e===I,W=()=>{if(k(g.center))return g.center;throw Error(`地图中心坐标无效,应使用 [纬度, 经度] 且处于合法范围`)},G=(e,t)=>{U(e)&&(V(),y.value=!1,_(`error`,R(t)))},K=()=>{let e=b,t=x;if(!t||!e||g.mapType!==`osm`)return;z();let n=e.icon({iconUrl:`data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2228%22%20height%3D%2240%22%20viewBox%3D%220%200%2028%2040%22%3E%3Cpath%20d%3D%22M14%2039S1%2024%201%2014a13%2013%200%200%201%2026%200c0%2010-13%2025-13%2025Z%22%20fill%3D%22%23287be8%22%20stroke%3D%22white%22%20stroke-width%3D%222%22%2F%3E%3Ccircle%20cx%3D%2214%22%20cy%3D%2214%22%20r%3D%225%22%20fill%3D%22white%22%2F%3E%3C%2Fsvg%3E`,iconSize:[28,40],iconAnchor:[14,40],popupAnchor:[0,-35]});j(g.markers).forEach(r=>{let i=e.marker([r.lat,r.lng],{icon:n,title:r.title||r.popup||``});if(r.popup){let e=document.createElement(`span`);e.textContent=r.popup,i.bindPopup(e)}i.on(`click`,e=>{_(`markerClick`,r,e)}),i.addTo(t),S.push(i)})},q=()=>{let e=C,t=w;!t||!e||g.mapType!==`amap`||(B(),j(g.markers).forEach(n=>{let r=new e.Marker({position:A([n.lat,n.lng]),title:n.title||n.popup||``});if(n.popup){let i=document.createElement(`span`);i.textContent=n.popup;let a=new e.InfoWindow({content:i,offset:new e.Pixel(0,-30)});D.push(a),r.on(`click`,e=>{a.open(t,r.getPosition()),_(`markerClick`,n,e)})}else r.on(`click`,e=>_(`markerClick`,n,e));r.setMap(t),E.push(r)}))},J=()=>x||w,Y=()=>{x?.invalidateSize({pan:!1}),w?.resize?.()},X=(e={})=>{let t=j(g.markers);if(t.length===0)return!1;if(x){let n=t.map(e=>[e.lat,e.lng]);return x.fitBounds(n,{maxZoom:e.maxZoom,padding:e.padding}),!0}if(w&&E.length>0){let[t=0,n=0]=e.padding||[];return w.setFitView?.(E,!1,[n,t,n,t],e.maxZoom),!0}return!1},Z=async()=>{if(!v.value)return;let e=H();try{let t=await O();if(!U(e)||!v.value)return;b=t;let{url:n,options:r}=N(g.tileConfig),i=M(g.zoom,r.minZoom,r.maxZoom);if(x=t.map(v.value,{center:W(),zoom:i,zoomControl:g.zoomControl,preferCanvas:g.preferCanvas}),t.tileLayer(n,r).addTo(x),K(),g.fitMarkersOnInit&&X(),await o(),requestAnimationFrame(()=>{U(e)&&Y()}),!U(e)||!x)return;y.value=!1,_(`ready`,x)}catch(t){G(e,t)}},Q=async()=>{if(!v.value)return;let e=H();try{let t=await T(g.amapKey,g.amapLoadTimeout,g.amapSecurityConfig);if(!U(e)||!v.value)return;C=t,w=new t.Map(v.value,{...g.amapOptions,zoom:M(g.zoom,1,20),center:A(W())}),q(),g.fitMarkersOnInit&&X(),y.value=!1,_(`ready`,w)}catch(t){G(e,t)}},$=async()=>{g.mapType===`amap`?await Q():await Z()};return p(()=>g.markers,()=>{g.mapType===`osm`?K():q()},{deep:!0}),p([()=>g.mapType,()=>g.amapKey,()=>g.amapSecurityConfig,()=>g.amapLoadTimeout,()=>g.amapOptions,()=>g.tileConfig,()=>g.zoomControl,()=>g.preferCanvas],()=>void $(),{deep:!0}),p([()=>g.center,()=>g.zoom],()=>{if(!k(g.center)){_(`error`,Error(`地图中心坐标无效,应使用 [纬度, 经度]`));return}x?.setView(g.center,M(g.zoom)),w?.setCenter(A(g.center)),w?.setZoom(M(g.zoom,1,20))},{deep:!0}),c(async()=>{await o(),await $()}),l(()=>{L=!0,I+=1,V()}),a({fitToMarkers:X,getMap:J,refresh:Y}),(a,o)=>(u(),n(`div`,{class:`c-map`,role:`region`,"aria-label":e.ariaLabel,"aria-busy":y.value},[r(`div`,{ref_key:`mapContainer`,ref:v,class:`map-container`,style:s({height:e.height})},null,4),y.value?(u(),n(`div`,F,[i(f(m),{size:`large`})])):t(`v-if`,!0)],8,P))}}),[[`__scopeId`,`data-v-7db70bf0`]]);export{N as a,h as c,M as i,_ as l,j as n,A as o,k as r,g as s,I as t};
1
+ import{t as e}from"./export-helper.js";import{createCommentVNode as t,createElementBlock as n,createElementVNode as r,createVNode as i,defineComponent as a,nextTick as o,normalizeStyle as s,onMounted as c,onUnmounted as l,openBlock as u,ref as d,unref as f,watch as p}from"vue";import{NSpin as m}from"naive-ui";const h=[{label:`OpenStreetMap`,value:`osm`},{label:`高德地图`,value:`amap`}],g={height:`400px`,center:[39.9042,116.4074],zoom:10,mapType:`osm`},_={url:`https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png`,attribution:`© OpenStreetMap contributors`,maxZoom:19,minZoom:1,tileSize:256,detectRetina:!0},v={apiUrl:`https://webapi.amap.com/maps?v=2.0&key=`,note:`高德地图需要API Key,如需使用请申请:https://lbs.amap.com/api/javascript-api/guide/create/`},y=15e3;let b=null,x=null;function S(e){if(!e)return;let t=e.serviceHost?.trim(),n=e.securityJsCode?.trim();if(t&&n)throw Error(`高德地图安全配置只能选择 serviceHost 或 securityJsCode`);if(t){if(!t.endsWith(`/_AMapService`))throw Error(`高德地图 serviceHost 必须以 /_AMapService 结尾`);return{serviceHost:t}}if(n)return{securityJsCode:n};throw Error(`高德地图安全配置不能为空`)}const C=e=>{if(e)return e;if(typeof window>`u`||typeof document>`u`)throw Error(`高德地图 API 只能在浏览器环境加载`);return{clearTimeout:window.clearTimeout.bind(window),document,host:window,setTimeout:window.setTimeout.bind(window)}},w=(e,t,n)=>{let r=e.trim();if(!r)throw Error(`高德地图 API Key 不能为空`);let i=S(t);return{identity:JSON.stringify([r,i]),normalizedKey:r,normalizedSecurityConfig:i,platform:C(n)}};function T(e,t=y,n,r){let i;try{i=w(e,n,r)}catch(e){return Promise.reject(e)}let{identity:a,normalizedKey:o,normalizedSecurityConfig:s}=i,{clearTimeout:c,document:l,host:u,setTimeout:d}=i.platform;if(x&&x!==a)return Promise.reject(Error(`同一页面不能使用不同的高德地图 Key 或安全配置`));if(u.AMap)return Promise.resolve(u.AMap);if(b)return b;x=a;let f=u._AMapSecurityConfig,p=s?{...s}:void 0;return p&&(u._AMapSecurityConfig=p),b=new Promise((e,n)=>{let r=l.querySelector(`script[data-c-map-amap="true"]`),i=r||l.createElement(`script`),a=!1,s=Number.isFinite(t)&&t>0?t:y,m=()=>{c(S),i.removeEventListener(`load`,g),i.removeEventListener(`error`,_)},h=e=>{a||(a=!0,m(),i.remove(),b=null,x=null,p&&u._AMapSecurityConfig===p&&(f===void 0?delete u._AMapSecurityConfig:u._AMapSecurityConfig=f),n(e))},g=()=>{if(!a){if(!u.AMap){h(Error(`高德地图 API 加载完成但未找到全局对象`));return}a=!0,m(),e(u.AMap)}},_=()=>h(Error(`高德地图 API 加载失败`)),S=d(()=>h(Error(`高德地图 API 加载超时(${s}ms)`)),s);i.addEventListener(`load`,g,{once:!0}),i.addEventListener(`error`,_,{once:!0}),!r&&(i.async=!0,i.dataset.cMapAmap=`true`,i.src=`${v.apiUrl}${encodeURIComponent(o)}`,l.head.appendChild(i))}),b}const E=e=>{if(!e||typeof e!=`object`)return!1;let t=e;return typeof t.map==`function`&&typeof t.marker==`function`&&typeof t.tileLayer==`function`},D=e=>{if(E(e))return e;let t=e&&typeof e==`object`?e.default:void 0;if(E(t))return t;throw Error(`Leaflet 模块加载失败:未找到 map、marker 和 tileLayer API`)},O=async()=>D(await import(`leaflet`));function k(e){if(!e||e.length!==2)return!1;let[t,n]=e;return Number.isFinite(t)&&Number.isFinite(n)&&t>=-90&&t<=90&&n>=-180&&n<=180}function A(e){return[e[1],e[0]]}function j(e){return e.filter(e=>k([e.lat,e.lng]))}function M(e,t=_.minZoom,n=_.maxZoom){return Number.isFinite(e)?Math.min(Math.max(e,t),n):g.zoom}function N(e={}){let{url:t,...n}={..._,...e};return{url:t,options:n}}const P=[`aria-label`,`aria-busy`],F={key:0,class:`map-loading`,role:`status`,"aria-live":`polite`,"aria-label":`地图加载中`};var I=e(a({name:`C_Map`,__name:`index`,props:{ariaLabel:{default:`地图`},height:{default:g.height},center:{default:()=>[...g.center]},zoom:{default:g.zoom},markers:{default:()=>[]},mapType:{default:g.mapType},amapKey:{default:``},amapSecurityConfig:{},amapLoadTimeout:{default:15e3},amapOptions:{default:()=>({})},tileConfig:{default:()=>({})},zoomControl:{type:Boolean,default:!0},preferCanvas:{type:Boolean,default:!0},fitMarkersOnInit:{type:Boolean,default:!1}},emits:[`ready`,`markerClick`,`error`],setup(e,{expose:a,emit:h}){let g=e,_=h,v=d(),y=d(!0),b=null,x=null,S=[],C=null,w=null,E=[],D=[],I=0,L=!1,R=e=>e instanceof Error?e:Error(String(e)),z=()=>{S.forEach(e=>e.remove()),S=[]},B=()=>{D.forEach(e=>e.close?.()),D=[],E.forEach(e=>e.setMap?.(null)),E=[]},V=()=>{z(),B();let e=x;if(x=null,e){let t=e;t._animatingZoom=!1}e?.stop(),e?.remove(),w?.destroy(),w=null,v.value?.replaceChildren()},H=()=>{let e=++I;return V(),y.value=!0,e},U=e=>!L&&e===I,W=()=>{if(k(g.center))return g.center;throw Error(`地图中心坐标无效,应使用 [纬度, 经度] 且处于合法范围`)},G=(e,t)=>{U(e)&&(V(),y.value=!1,_(`error`,R(t)))},K=()=>{let e=b,t=x;if(!t||!e||g.mapType!==`osm`)return;z();let n=e.icon({iconUrl:`data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2228%22%20height%3D%2240%22%20viewBox%3D%220%200%2028%2040%22%3E%3Cpath%20d%3D%22M14%2039S1%2024%201%2014a13%2013%200%200%201%2026%200c0%2010-13%2025-13%2025Z%22%20fill%3D%22%23287be8%22%20stroke%3D%22white%22%20stroke-width%3D%222%22%2F%3E%3Ccircle%20cx%3D%2214%22%20cy%3D%2214%22%20r%3D%225%22%20fill%3D%22white%22%2F%3E%3C%2Fsvg%3E`,iconSize:[28,40],iconAnchor:[14,40],popupAnchor:[0,-35]});j(g.markers).forEach(r=>{let i=e.marker([r.lat,r.lng],{icon:n,title:r.title||r.popup||``});if(r.popup){let e=document.createElement(`span`);e.textContent=r.popup,i.bindPopup(e)}i.on(`click`,e=>{_(`markerClick`,r,e)}),i.addTo(t),S.push(i)})},q=()=>{let e=C,t=w;!t||!e||g.mapType!==`amap`||(B(),j(g.markers).forEach(n=>{let r=new e.Marker({position:A([n.lat,n.lng]),title:n.title||n.popup||``});if(n.popup){let i=document.createElement(`span`);i.textContent=n.popup;let a=new e.InfoWindow({content:i,offset:new e.Pixel(0,-30)});D.push(a),r.on(`click`,e=>{a.open(t,r.getPosition()),_(`markerClick`,n,e)})}else r.on(`click`,e=>_(`markerClick`,n,e));r.setMap(t),E.push(r)}))},J=()=>x||w,Y=()=>{x?.invalidateSize({pan:!1}),w?.resize?.()},X=(e={})=>{let t=j(g.markers);if(t.length===0)return!1;if(x){let n=t.map(e=>[e.lat,e.lng]);return x.fitBounds(n,{maxZoom:e.maxZoom,padding:e.padding}),!0}if(w&&E.length>0){let[t=0,n=0]=e.padding||[];return w.setFitView?.(E,!1,[n,t,n,t],e.maxZoom),!0}return!1},Z=async()=>{if(!v.value)return;let e=H();try{let t=await O();if(!U(e)||!v.value)return;b=t;let{url:n,options:r}=N(g.tileConfig),i=M(g.zoom,r.minZoom,r.maxZoom);if(x=t.map(v.value,{center:W(),zoom:i,zoomControl:g.zoomControl,preferCanvas:g.preferCanvas}),t.tileLayer(n,r).addTo(x),K(),g.fitMarkersOnInit&&X(),await o(),requestAnimationFrame(()=>{U(e)&&Y()}),!U(e)||!x)return;y.value=!1,_(`ready`,x)}catch(t){G(e,t)}},Q=async()=>{if(!v.value)return;let e=H();try{let t=await T(g.amapKey,g.amapLoadTimeout,g.amapSecurityConfig);if(!U(e)||!v.value)return;C=t,w=new t.Map(v.value,{...g.amapOptions,zoom:M(g.zoom,1,20),center:A(W())}),q(),g.fitMarkersOnInit&&X(),y.value=!1,_(`ready`,w)}catch(t){G(e,t)}},$=async()=>{g.mapType===`amap`?await Q():await Z()};return p(()=>g.markers,()=>{g.mapType===`osm`?K():q()},{deep:!0}),p([()=>g.mapType,()=>g.amapKey,()=>g.amapSecurityConfig,()=>g.amapLoadTimeout,()=>g.amapOptions,()=>g.tileConfig,()=>g.zoomControl,()=>g.preferCanvas],()=>void $(),{deep:!0}),p([()=>g.center,()=>g.zoom],()=>{if(!k(g.center)){_(`error`,Error(`地图中心坐标无效,应使用 [纬度, 经度]`));return}x?.setView(g.center,M(g.zoom)),w?.setCenter(A(g.center)),w?.setZoom(M(g.zoom,1,20))},{deep:!0}),c(async()=>{await o(),await $()}),l(()=>{L=!0,I+=1,V()}),a({fitToMarkers:X,getMap:J,refresh:Y}),(a,o)=>(u(),n(`div`,{class:`c-map`,role:`region`,"aria-label":e.ariaLabel,"aria-busy":y.value},[r(`div`,{ref_key:`mapContainer`,ref:v,class:`map-container`,style:s({height:e.height})},null,4),y.value?(u(),n(`div`,F,[i(f(m),{size:`large`})])):t(`v-if`,!0)],8,P))}}),[[`__scopeId`,`data-v-7db70bf0`]]);export{N as a,h as c,M as i,_ as l,j as n,A as o,k as r,g as s,I as t};