@robot-admin/naive-ui-components 0.24.2 → 0.24.4
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.
- package/CHANGELOG.md +20 -0
- package/README.md +4 -2
- package/README_EN.md +4 -2
- package/SECURITY.md +12 -2
- package/dist/C_AntV2.cjs +1 -1
- package/dist/C_AntV2.js +3 -3
- package/dist/C_Form.base.css +40 -40
- package/dist/C_Form.css +40 -40
- package/dist/C_Map2.cjs +1 -1
- package/dist/C_Map2.js +1 -1
- package/dist/C_Table.base.css +150 -150
- package/dist/C_Table.css +110 -110
- package/dist/C_Table2.cjs +2 -2
- package/dist/C_Table2.js +2 -2
- package/dist/C_Upload2.cjs +1 -1
- package/dist/C_Upload2.js +1 -1
- package/dist/C_VideoPlayer.css +30 -20
- package/dist/C_VideoPlayer2.cjs +2 -2
- package/dist/C_VideoPlayer2.js +3 -3
- package/dist/Steps.cjs +1 -1
- package/dist/Steps.js +1 -1
- package/dist/Tabs.cjs +1 -1
- package/dist/Tabs.js +1 -1
- package/dist/constants2.d.cts +3 -3
- package/dist/constants2.d.ts +3 -3
- package/dist/constants3.d.cts +4 -4
- package/dist/constants3.d.ts +4 -4
- package/dist/data2.cjs +1 -1
- package/dist/data2.d.cts +4 -4
- package/dist/data2.d.ts +4 -4
- package/dist/data2.js +1 -1
- package/dist/helpers.cjs +1 -1
- package/dist/helpers.js +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +1 -1
- package/dist/index.vue.d.cts +1 -1
- package/dist/index.vue.d.ts +1 -1
- package/dist/index10.vue.d.cts +3 -3
- package/dist/index10.vue.d.ts +2 -2
- package/dist/index11.vue.d.cts +2 -2
- package/dist/index15.vue.d.ts +5 -5
- package/dist/index16.vue.d.cts +5 -5
- package/dist/index16.vue.d.ts +1 -1
- package/dist/index17.vue.d.cts +1 -1
- package/dist/index17.vue.d.ts +2 -2
- package/dist/index18.vue.d.cts +2 -2
- package/dist/index18.vue.d.ts +1 -1
- package/dist/index19.vue.d.cts +1 -1
- package/dist/index19.vue.d.ts +1 -1
- package/dist/index2.vue.d.cts +1 -1
- package/dist/index2.vue.d.ts +1 -1
- package/dist/index20.vue.d.cts +1 -1
- package/dist/index22.vue.d.ts +1 -1
- package/dist/index23.vue.d.cts +1 -1
- package/dist/index23.vue.d.ts +2 -2
- package/dist/index24.vue.d.cts +1 -1
- package/dist/index24.vue.d.ts +1 -1
- package/dist/index26.vue.d.cts +2 -2
- package/dist/index26.vue.d.ts +2 -2
- package/dist/index29.vue.d.cts +2 -2
- package/dist/index29.vue.d.ts +2 -2
- package/dist/index3.vue.d.cts +3 -3
- package/dist/index3.vue.d.ts +3 -3
- package/dist/index5.vue.d.cts +2 -2
- package/dist/index7.vue.d.ts +2 -2
- package/dist/index8.vue.d.cts +2 -2
- package/dist/index9.vue.d.ts +3 -3
- package/dist/mapUtils.d.cts +1 -1
- package/dist/mapUtils.d.ts +1 -1
- package/dist/presets.d.cts +1 -1
- package/dist/presets.d.ts +1 -1
- package/dist/serializeSearch.cjs +1 -1
- package/dist/serializeSearch.js +1 -1
- package/dist/style.css +180 -170
- package/dist/useCalendarEvents.d.cts +1 -1
- package/dist/useCalendarEvents.d.ts +1 -1
- package/dist/useCollapsePanel.d.cts +3 -3
- package/dist/useCollapsePanel.d.ts +3 -3
- package/dist/useCropperCore.d.cts +6 -6
- package/dist/useCropperCore.d.ts +6 -6
- package/dist/useDictionary.cjs +1 -1
- package/dist/useDictionary.js +1 -1
- package/dist/useDynamicFormState.d.cts +10 -10
- package/dist/useDynamicFormState.d.ts +10 -10
- package/dist/useEdgeInteraction.d.cts +1 -1
- package/dist/useEdgeInteraction.d.ts +1 -1
- package/dist/useFullscreen.d.cts +2 -2
- package/dist/useFullscreen.d.ts +2 -2
- package/dist/useQRCode.d.cts +3 -3
- package/dist/useQRCode.d.ts +3 -3
- package/dist/useSignatureHistory.d.cts +3 -3
- package/dist/useSignatureHistory.d.ts +3 -3
- package/dist/useSplitResize.d.cts +5 -5
- package/dist/useSplitResize.d.ts +5 -5
- package/dist/useWorkflowValidation.d.cts +32 -32
- package/dist/useWorkflowValidation.d.ts +32 -32
- package/dist/verification.d.cts +4 -4
- package/dist/verification.d.ts +4 -4
- package/docs/engineering.en.md +1 -1
- package/docs/engineering.md +1 -1
- package/docs/stability-review-20261031.md +46 -0
- package/package.json +4 -2
package/dist/C_Form.base.css
CHANGED
|
@@ -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-
|
|
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-
|
|
825
|
+
.single-panel[data-v-c3e3e8d7] {
|
|
826
826
|
width: 100%;
|
|
827
827
|
}
|
|
828
|
-
.steps-container[data-v-
|
|
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-
|
|
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-
|
|
837
|
+
.steps-content[data-v-c3e3e8d7] {
|
|
838
838
|
min-height: 400px;
|
|
839
839
|
}
|
|
840
|
-
.step-panel[data-v-
|
|
841
|
-
animation: fadeIn-
|
|
840
|
+
.step-panel[data-v-c3e3e8d7] {
|
|
841
|
+
animation: fadeIn-c3e3e8d7 0.3s ease-in-out;
|
|
842
842
|
}
|
|
843
|
-
.step-header[data-v-
|
|
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-
|
|
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-
|
|
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-
|
|
858
|
+
.step-form-items[data-v-c3e3e8d7] {
|
|
859
859
|
width: 100%;
|
|
860
860
|
}
|
|
861
|
-
.steps-actions[data-v-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
909
|
-
.grid[data-v-
|
|
910
|
-
.inline[data-v-
|
|
911
|
-
.blur[data-v-
|
|
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-
|
|
914
|
+
.c-form-tabs[data-v-7c7a9bd4] {
|
|
915
915
|
width: 100%;
|
|
916
916
|
}
|
|
917
|
-
.single-panel[data-v-
|
|
917
|
+
.single-panel[data-v-7c7a9bd4] {
|
|
918
918
|
width: 100%;
|
|
919
919
|
}
|
|
920
|
-
.tabs-container[data-v-
|
|
920
|
+
.tabs-container[data-v-7c7a9bd4] {
|
|
921
921
|
width: 100%;
|
|
922
922
|
}
|
|
923
|
-
.form-tabs[data-v-
|
|
923
|
+
.form-tabs[data-v-7c7a9bd4] {
|
|
924
924
|
width: 100%;
|
|
925
925
|
}
|
|
926
|
-
.tab-icon[data-v-
|
|
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-
|
|
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-
|
|
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-
|
|
943
|
+
.tab-form-items[data-v-7c7a9bd4] {
|
|
944
944
|
width: 100%;
|
|
945
945
|
}
|
|
946
|
-
.tab-empty[data-v-
|
|
946
|
+
.tab-empty[data-v-7c7a9bd4] {
|
|
947
947
|
padding: 40px 0;
|
|
948
948
|
}
|
|
949
|
-
.tabs-actions[data-v-
|
|
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-
|
|
957
|
+
.tabs-actions[data-v-7c7a9bd4] {
|
|
958
958
|
margin-top: 12px;
|
|
959
959
|
padding-top: 8px;
|
|
960
960
|
}
|
|
961
|
-
.tabs-actions[data-v-
|
|
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-
|
|
968
|
-
.grid[data-v-
|
|
969
|
-
.inline[data-v-
|
|
970
|
-
.tab[data-v-
|
|
971
|
-
.blur[data-v-
|
|
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-
|
|
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-
|
|
824
|
+
.single-panel[data-v-c3e3e8d7] {
|
|
825
825
|
width: 100%;
|
|
826
826
|
}
|
|
827
|
-
.steps-container[data-v-
|
|
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-
|
|
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-
|
|
836
|
+
.steps-content[data-v-c3e3e8d7] {
|
|
837
837
|
min-height: 400px;
|
|
838
838
|
}
|
|
839
|
-
.step-panel[data-v-
|
|
840
|
-
animation: fadeIn-
|
|
839
|
+
.step-panel[data-v-c3e3e8d7] {
|
|
840
|
+
animation: fadeIn-c3e3e8d7 0.3s ease-in-out;
|
|
841
841
|
}
|
|
842
|
-
.step-header[data-v-
|
|
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-
|
|
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-
|
|
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-
|
|
857
|
+
.step-form-items[data-v-c3e3e8d7] {
|
|
858
858
|
width: 100%;
|
|
859
859
|
}
|
|
860
|
-
.steps-actions[data-v-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
908
|
-
.grid[data-v-
|
|
909
|
-
.inline[data-v-
|
|
910
|
-
.blur[data-v-
|
|
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-
|
|
913
|
+
.c-form-tabs[data-v-7c7a9bd4] {
|
|
914
914
|
width: 100%;
|
|
915
915
|
}
|
|
916
|
-
.single-panel[data-v-
|
|
916
|
+
.single-panel[data-v-7c7a9bd4] {
|
|
917
917
|
width: 100%;
|
|
918
918
|
}
|
|
919
|
-
.tabs-container[data-v-
|
|
919
|
+
.tabs-container[data-v-7c7a9bd4] {
|
|
920
920
|
width: 100%;
|
|
921
921
|
}
|
|
922
|
-
.form-tabs[data-v-
|
|
922
|
+
.form-tabs[data-v-7c7a9bd4] {
|
|
923
923
|
width: 100%;
|
|
924
924
|
}
|
|
925
|
-
.tab-icon[data-v-
|
|
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-
|
|
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-
|
|
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-
|
|
942
|
+
.tab-form-items[data-v-7c7a9bd4] {
|
|
943
943
|
width: 100%;
|
|
944
944
|
}
|
|
945
|
-
.tab-empty[data-v-
|
|
945
|
+
.tab-empty[data-v-7c7a9bd4] {
|
|
946
946
|
padding: 40px 0;
|
|
947
947
|
}
|
|
948
|
-
.tabs-actions[data-v-
|
|
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-
|
|
956
|
+
.tabs-actions[data-v-7c7a9bd4] {
|
|
957
957
|
margin-top: 12px;
|
|
958
958
|
padding-top: 8px;
|
|
959
959
|
}
|
|
960
|
-
.tabs-actions[data-v-
|
|
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-
|
|
967
|
-
.grid[data-v-
|
|
968
|
-
.inline[data-v-
|
|
969
|
-
.tab[data-v-
|
|
970
|
-
.blur[data-v-
|
|
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;
|
|
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;
|
|
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};
|