uomtiles 0.1.0 → 0.1.2
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/.output/nitro.json +1 -1
- package/.output/public/_nuxt/{BQlj8Xoe.js → 0hm88Oke.js} +1 -1
- package/.output/public/_nuxt/BNfSclJ4.js +1 -0
- package/.output/public/_nuxt/BYzlinOr2.js +1 -0
- package/.output/public/_nuxt/{BiWblTbb2.js → Bd1EvHmY.js} +1 -1
- package/.output/public/_nuxt/Be4dNlar.js +1 -0
- package/.output/public/_nuxt/{C4qlzA4o.js → C7fHMLd7.js} +1 -1
- package/.output/public/_nuxt/CQ8inUdm.js +1 -0
- package/.output/public/_nuxt/{C_0VY3Cv2.js → CU486JdV2.js} +2 -2
- package/.output/public/_nuxt/Cc_JfSB1.js +1 -0
- package/.output/public/_nuxt/CgcnoKpi.js +1 -0
- package/.output/public/_nuxt/{CgdzV712.js → CovBj6WN.js} +1 -1
- package/.output/public/_nuxt/CyZDc0eO2.js +1 -0
- package/.output/public/_nuxt/{DtFVCXI9.js → CzFefJH0.js} +1 -1
- package/.output/public/_nuxt/{DL1MZZLI.js → D-t0hXHB.js} +1 -1
- package/.output/public/_nuxt/D3Pl7yw22.js +1 -0
- package/.output/public/_nuxt/D4gbGuiW.js +1 -0
- package/.output/public/_nuxt/{DkcySee1.js → DDp9lK3g.js} +1 -1
- package/.output/public/_nuxt/DIIXHC50.js +1 -0
- package/.output/public/_nuxt/DWFUvzz0.js +1 -0
- package/.output/public/_nuxt/D_VoD6-f.js +1 -0
- package/.output/public/_nuxt/{q7DkoVkj.js → DaQqwE3R.js} +6 -6
- package/.output/public/_nuxt/DfXX-x_z.js +1 -0
- package/.output/public/_nuxt/Dgyf2aNY.js +1 -0
- package/.output/public/_nuxt/DpIPeY5m.js +1 -0
- package/.output/public/_nuxt/GM5myUL22.js +1 -0
- package/.output/public/_nuxt/IC4wc76W.js +1 -0
- package/.output/public/_nuxt/IfL46N3Z.js +1 -0
- package/.output/public/_nuxt/{Oxy7pKSk.js → KEU2l6zJ.js} +1 -1
- package/.output/public/_nuxt/{DC3bhq63.js → Q79ec-Ro.js} +1 -1
- package/.output/public/_nuxt/SEETjfdJ.js +1 -0
- package/.output/public/_nuxt/builds/latest.json +1 -1
- package/.output/public/_nuxt/builds/meta/2c4adba2-91b5-44e4-91d3-50a61695207b.json +1 -0
- package/.output/public/_nuxt/entry.CZ_dkjcs.css +1 -0
- package/.output/public/_nuxt/{ByRlKR9F.js → nGp0t_eD.js} +1 -1
- package/.output/server/chunks/_/config.mjs +58 -6
- package/.output/server/chunks/_/config.mjs.map +1 -1
- package/.output/server/chunks/_/export.mjs +7 -0
- package/.output/server/chunks/_/export.mjs.map +1 -0
- package/.output/server/chunks/_/file-workspace.mjs +153 -58
- package/.output/server/chunks/_/file-workspace.mjs.map +1 -1
- package/.output/server/chunks/_/map-service.mjs +7 -7
- package/.output/server/chunks/_/map-service.mjs.map +1 -1
- package/.output/server/chunks/_/pixel-diff.mjs +1 -1
- package/.output/server/chunks/_/uom-auth.mjs +7 -7
- package/.output/server/chunks/_/uom-auth.mjs.map +1 -1
- package/.output/server/chunks/_/uom-map.mjs +6 -6
- package/.output/server/chunks/_/uom-map.mjs.map +1 -1
- package/.output/server/chunks/build/Alert-DHVVSgdD.mjs +1074 -0
- package/.output/server/chunks/build/Alert-DHVVSgdD.mjs.map +1 -0
- package/.output/server/chunks/build/{Alert-0ngTJXxP.mjs → CompletedTaskSelect-CKTpyHS3.mjs} +31 -725
- package/.output/server/chunks/build/CompletedTaskSelect-CKTpyHS3.mjs.map +1 -0
- package/.output/server/chunks/build/{PopperArrow-Bqfdf2Et.mjs → DashboardSidebarToggle-CUI9NSow.mjs} +567 -5
- package/.output/server/chunks/build/DashboardSidebarToggle-CUI9NSow.mjs.map +1 -0
- package/.output/server/chunks/build/{Empty-CkW3mADt.mjs → Empty-BGIn09cL.mjs} +2 -2
- package/.output/server/chunks/build/{Empty-CkW3mADt.mjs.map → Empty-BGIn09cL.mjs.map} +1 -1
- package/.output/server/chunks/build/{FocusScope-Cf0lg0zt.mjs → FocusScope-DNZVMnza.mjs} +2 -2
- package/.output/server/chunks/build/{FocusScope-Cf0lg0zt.mjs.map → FocusScope-DNZVMnza.mjs.map} +1 -1
- package/.output/server/chunks/build/{FormField-CEUZHcv7.mjs → FormField-DnJWfrKE.mjs} +2 -2
- package/.output/server/chunks/build/{FormField-CEUZHcv7.mjs.map → FormField-DnJWfrKE.mjs.map} +1 -1
- package/.output/server/chunks/build/{Input-BeNavYXb.mjs → Input-AdlINKtJ.mjs} +1 -1
- package/.output/server/chunks/build/{Input-BeNavYXb.mjs.map → Input-AdlINKtJ.mjs.map} +1 -1
- package/.output/server/chunks/build/{MapBaseLayerTabs-4445J6yh.mjs → MapBaseLayerTabs-CRl5Zwlr.mjs} +15 -9
- package/.output/server/chunks/build/{MapBaseLayerTabs-4445J6yh.mjs.map → MapBaseLayerTabs-CRl5Zwlr.mjs.map} +1 -1
- package/.output/server/chunks/build/{Modal-DNZtVxca.mjs → Modal-CozaqIp1.mjs} +13 -5
- package/.output/server/chunks/build/{Modal-DNZtVxca.mjs.map → Modal-CozaqIp1.mjs.map} +1 -1
- package/.output/server/chunks/build/{OnlineMap-CKwiuqUY.mjs → OnlineMap-cFSicmkV.mjs} +1 -1
- package/.output/server/chunks/build/{OnlineMap-CKwiuqUY.mjs.map → OnlineMap-cFSicmkV.mjs.map} +1 -1
- package/.output/server/chunks/build/{Pagination-CDHx4HTZ.mjs → Pagination-GvNCxmOW.mjs} +1 -1
- package/.output/server/chunks/build/{Pagination-CDHx4HTZ.mjs.map → Pagination-GvNCxmOW.mjs.map} +1 -1
- package/.output/server/chunks/build/{Slider-D-n8Y0CX.mjs → Slider-zQx1c7hB.mjs} +10 -25
- package/.output/server/chunks/build/Slider-zQx1c7hB.mjs.map +1 -0
- package/.output/server/chunks/build/{Tooltip-CkpSktvJ.mjs → Tooltip-DNUdH4oF.mjs} +3 -4
- package/.output/server/chunks/build/{Tooltip-CkpSktvJ.mjs.map → Tooltip-DNUdH4oF.mjs.map} +1 -1
- package/.output/server/chunks/build/{advanced-D1onodoF.mjs → advanced-5ZGMUBqC.mjs} +17 -18
- package/.output/server/chunks/build/advanced-5ZGMUBqC.mjs.map +1 -0
- package/.output/server/chunks/build/clamp-CdZXprXk.mjs +65 -0
- package/.output/server/chunks/build/clamp-CdZXprXk.mjs.map +1 -0
- package/.output/server/chunks/build/{compare-DmSAW8oA.mjs → compare-CtgF4Anj.mjs} +17 -17
- package/.output/server/chunks/build/{compare-DmSAW8oA.mjs.map → compare-CtgF4Anj.mjs.map} +1 -1
- package/.output/server/chunks/build/{dashboard-BJxrZ19n.mjs → dashboard-GneN-WPG.mjs} +25 -10
- package/.output/server/chunks/build/{dashboard-BJxrZ19n.mjs.map → dashboard-GneN-WPG.mjs.map} +1 -1
- package/.output/server/chunks/build/{details-CBMqXYyo.mjs → details-CgufnL1d.mjs} +4 -4
- package/.output/server/chunks/build/{details-CBMqXYyo.mjs.map → details-CgufnL1d.mjs.map} +1 -1
- package/.output/server/chunks/build/error-404-D9aQjJRn.mjs +1 -1
- package/.output/server/chunks/build/error-500-BNyA3wrb.mjs +1 -1
- package/.output/server/chunks/build/{interval-BxUMpo78.mjs → interval-9B2MrM2e.mjs} +2 -2
- package/.output/server/chunks/build/{interval-BxUMpo78.mjs.map → interval-9B2MrM2e.mjs.map} +1 -1
- package/.output/server/chunks/build/{login-lbtjN0MV.mjs → login-Cf5EiCE4.mjs} +8 -8
- package/.output/server/chunks/build/{login-lbtjN0MV.mjs.map → login-Cf5EiCE4.mjs.map} +1 -1
- package/.output/server/chunks/build/{pages-Ba0Eixbd.mjs → pages-0c5sp_lv.mjs} +8 -9
- package/.output/server/chunks/build/pages-0c5sp_lv.mjs.map +1 -0
- package/.output/server/chunks/build/{services-DuJwjAB8.mjs → services-BB49kSpd.mjs} +16 -16
- package/.output/server/chunks/build/{services-DuJwjAB8.mjs.map → services-BB49kSpd.mjs.map} +1 -1
- package/.output/server/chunks/build/{tasks-D_Q5EDnn.mjs → tasks-Aa8PwjVL.mjs} +5 -5
- package/.output/server/chunks/build/{tasks-D_Q5EDnn.mjs.map → tasks-Aa8PwjVL.mjs.map} +1 -1
- package/.output/server/chunks/build/tasks-BRcMLuRW.mjs +6121 -0
- package/.output/server/chunks/build/tasks-BRcMLuRW.mjs.map +1 -0
- package/.output/server/chunks/nitro/nitro.mjs +254 -257
- package/.output/server/chunks/routes/api/auth/login.post.mjs +1 -1
- package/.output/server/chunks/routes/api/auth/login.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/auth/send-sms.post.mjs +2 -2
- package/.output/server/chunks/routes/api/auth/send-sms.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/map/base/_baseLayer/_zoom/_tileX/_tileY_.get.mjs +2 -2
- package/.output/server/chunks/routes/api/map/base/_baseLayer/_zoom/_tileX/_tileY_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/map/base/status.get.mjs +24 -0
- package/.output/server/chunks/routes/api/map/base/status.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/map/live/status.get.mjs +1 -1
- package/.output/server/chunks/routes/api/map/live/status.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/map/online/_layerGroup/_zoom/_tileX/_tileY_.get.mjs +3 -3
- package/.output/server/chunks/routes/api/map/online/_layerGroup/_zoom/_tileX/_tileY_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/map/online-root/_layerGroup/_rootX/_rootY_.get.mjs +3 -3
- package/.output/server/chunks/routes/api/map/online-root/_layerGroup/_rootX/_rootY_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/map-service/config.post.mjs +1 -0
- package/.output/server/chunks/routes/api/map-service/config.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/map-service/file.post.mjs +4 -3
- package/.output/server/chunks/routes/api/map-service/file.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/map-service/source.post.mjs +1 -0
- package/.output/server/chunks/routes/api/map-service/source.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/map-service/status.get.mjs +1 -0
- package/.output/server/chunks/routes/api/map-service/status.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workspace/_filename/analysis.get.mjs +4 -3
- package/.output/server/chunks/routes/api/workspace/_filename/analysis.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workspace/_filename/download.get.mjs +2 -1
- package/.output/server/chunks/routes/api/workspace/_filename/download.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workspace/_filename/export/_format_.get.mjs +11 -4
- package/.output/server/chunks/routes/api/workspace/_filename/export/_format_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workspace/_filename/export-estimate.get.mjs +39 -0
- package/.output/server/chunks/routes/api/workspace/_filename/export-estimate.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workspace/_filename/tile.get.mjs +3 -2
- package/.output/server/chunks/routes/api/workspace/_filename/tile.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workspace/_filename/tiles.get.mjs +2 -1
- package/.output/server/chunks/routes/api/workspace/_filename/tiles.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workspace/_filename_.delete.mjs +2 -1
- package/.output/server/chunks/routes/api/workspace/_filename_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workspace/compare/batch.get.mjs +1 -0
- package/.output/server/chunks/routes/api/workspace/compare/batch.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workspace/compare.post.mjs +1 -0
- package/.output/server/chunks/routes/api/workspace/compare.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workspace/fetch.post.mjs +1 -0
- package/.output/server/chunks/routes/api/workspace/fetch.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workspace/files.get.mjs +1 -0
- package/.output/server/chunks/routes/api/workspace/files.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workspace/files.post.mjs +4 -3
- package/.output/server/chunks/routes/api/workspace/files.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workspace/stop.post.mjs +2 -1
- package/.output/server/chunks/routes/api/workspace/stop.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workspace/tasks.post.mjs +2 -1
- package/.output/server/chunks/routes/api/workspace/tasks.post.mjs.map +1 -1
- package/.output/server/chunks/routes/renderer.mjs +2 -2
- package/.output/server/chunks/routes/services/wms.get.mjs +3 -2
- package/.output/server/chunks/routes/services/wms.get.mjs.map +1 -1
- package/.output/server/chunks/routes/services/wmts.get.mjs +3 -2
- package/.output/server/chunks/routes/services/wmts.get.mjs.map +1 -1
- package/.output/server/chunks/virtual/entry.mjs +149 -149
- package/.output/server/chunks/virtual/entry.mjs.map +1 -1
- package/.output/server/chunks/virtual/precomputed.mjs +1 -1
- package/.output/server/chunks/virtual/styles.mjs +1 -1
- package/.output/server/package.json +1 -1
- package/README.md +7 -1
- package/dist/package.json +68 -0
- package/dist/shared/export.js +4 -0
- package/dist/shared/types/export.js +1 -0
- package/dist/src/cli.js +20 -3
- package/dist/src/config.js +2 -0
- package/dist/src/core/grid-renderer.js +29 -15
- package/dist/src/core/png.js +59 -6
- package/dist/src/core/shell.js +37 -0
- package/dist/src/core/uomtiles.js +98 -14
- package/package.json +1 -1
- package/.output/public/_nuxt/1d1PDhA4.js +0 -1
- package/.output/public/_nuxt/981KwFWf.js +0 -1
- package/.output/public/_nuxt/B30dSvM4.js +0 -1
- package/.output/public/_nuxt/BRkljK8J.js +0 -1
- package/.output/public/_nuxt/B_MqTg2k2.js +0 -1
- package/.output/public/_nuxt/BrPwntMr.js +0 -1
- package/.output/public/_nuxt/BskybydR.js +0 -1
- package/.output/public/_nuxt/C7HxHbxA.js +0 -1
- package/.output/public/_nuxt/CPuhwLY1.js +0 -1
- package/.output/public/_nuxt/Ce26t8_Y.js +0 -1
- package/.output/public/_nuxt/CfW544W5.js +0 -1
- package/.output/public/_nuxt/D1wVNWS0.js +0 -1
- package/.output/public/_nuxt/Dz7VMlHR.js +0 -1
- package/.output/public/_nuxt/NL65vbjG2.js +0 -1
- package/.output/public/_nuxt/Pik8or8N2.js +0 -1
- package/.output/public/_nuxt/XZ59tThl.js +0 -1
- package/.output/public/_nuxt/ZpWjFsgV.js +0 -1
- package/.output/public/_nuxt/builds/meta/9f85104e-738d-4a74-8daa-40b136ce17d5.json +0 -1
- package/.output/public/_nuxt/dXz6dFgW2.js +0 -1
- package/.output/public/_nuxt/entry.P6tFNE31.css +0 -1
- package/.output/public/_nuxt/j0MRD-c3.js +0 -1
- package/.output/public/_nuxt/zZ1EGR7Y.js +0 -1
- package/.output/server/chunks/build/Alert-0ngTJXxP.mjs.map +0 -1
- package/.output/server/chunks/build/DashboardSidebarToggle-pncTaIJq.mjs +0 -569
- package/.output/server/chunks/build/DashboardSidebarToggle-pncTaIJq.mjs.map +0 -1
- package/.output/server/chunks/build/PopperArrow-Bqfdf2Et.mjs.map +0 -1
- package/.output/server/chunks/build/ScrollArea-BQK3em8b.mjs +0 -379
- package/.output/server/chunks/build/ScrollArea-BQK3em8b.mjs.map +0 -1
- package/.output/server/chunks/build/Slider-D-n8Y0CX.mjs.map +0 -1
- package/.output/server/chunks/build/advanced-D1onodoF.mjs.map +0 -1
- package/.output/server/chunks/build/pages-Ba0Eixbd.mjs.map +0 -1
- package/.output/server/chunks/build/tasks-CyN9x492.mjs +0 -915
- package/.output/server/chunks/build/tasks-CyN9x492.mjs.map +0 -1
package/dist/src/config.js
CHANGED
|
@@ -120,30 +120,44 @@ export class GeographicGridRenderer {
|
|
|
120
120
|
return;
|
|
121
121
|
}
|
|
122
122
|
const scale = 2 ** (z - SOURCE_ZOOM);
|
|
123
|
-
|
|
123
|
+
const worldMax = 2 ** z - 1;
|
|
124
|
+
const roots = [...this.roots.values()].sort((left, right) => left.x - right.x || left.y - right.y);
|
|
125
|
+
for (const root of roots) {
|
|
126
|
+
const rows = new Map();
|
|
127
|
+
const sourceX0 = root.x * sourceRootSize;
|
|
128
|
+
const sourceY0 = root.y * sourceRootSize;
|
|
124
129
|
for (const rect of root.rects) {
|
|
125
|
-
const sourceX0 = root.x * sourceRootSize;
|
|
126
|
-
const sourceY0 = root.y * sourceRootSize;
|
|
127
130
|
const pixelX0 = Math.round((sourceX0 + root.xLines[rect.col0]) * scale);
|
|
128
131
|
const pixelY0 = Math.round((sourceY0 + root.yLines[rect.row0]) * scale);
|
|
129
132
|
const pixelX1 = Math.round((sourceX0 + root.xLines[rect.col1]) * scale);
|
|
130
133
|
const pixelY1 = Math.round((sourceY0 + root.yLines[rect.row1]) * scale);
|
|
131
134
|
if (pixelX0 >= pixelX1 || pixelY0 >= pixelY1)
|
|
132
135
|
continue;
|
|
133
|
-
const x0 = Math.
|
|
134
|
-
const
|
|
135
|
-
const
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
136
|
+
const x0 = Math.max(0, Math.floor(pixelX0 / 256));
|
|
137
|
+
const y0 = Math.max(0, Math.floor(pixelY0 / 256));
|
|
138
|
+
const x1 = Math.min(worldMax, Math.floor((pixelX1 - 1) / 256));
|
|
139
|
+
const y1 = Math.min(worldMax, Math.floor((pixelY1 - 1) / 256));
|
|
140
|
+
for (let tileY = y0; tileY <= y1; tileY++) {
|
|
141
|
+
const intervals = rows.get(tileY) || [];
|
|
142
|
+
intervals.push([x0, x1]);
|
|
143
|
+
rows.set(tileY, intervals);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
for (const tileY of [...rows.keys()].sort((left, right) => left - right)) {
|
|
147
|
+
const intervals = rows.get(tileY).sort((left, right) => left[0] - right[0] || left[1] - right[1]);
|
|
148
|
+
let [start, end] = intervals[0];
|
|
149
|
+
for (let index = 1; index <= intervals.length; index++) {
|
|
150
|
+
const next = intervals[index];
|
|
151
|
+
if (next && next[0] <= end + 1) {
|
|
152
|
+
end = Math.max(end, next[1]);
|
|
153
|
+
continue;
|
|
154
|
+
}
|
|
155
|
+
for (let tileX = start; tileX <= end; tileX++)
|
|
156
|
+
yield { z, x: tileX, y: tileY };
|
|
157
|
+
if (next)
|
|
158
|
+
[start, end] = next;
|
|
139
159
|
}
|
|
140
160
|
}
|
|
141
|
-
for (const coordinate of [...coordinates].sort((left, right) => {
|
|
142
|
-
const [leftX, leftY] = left.split('/').map(Number), [rightX, rightY] = right.split('/').map(Number);
|
|
143
|
-
return leftX - rightX || leftY - rightY;
|
|
144
|
-
})) {
|
|
145
|
-
const [x, y] = coordinate.split('/').map(Number);
|
|
146
|
-
yield { z, x: x, y: y };
|
|
147
161
|
}
|
|
148
162
|
}
|
|
149
163
|
}
|
package/dist/src/core/png.js
CHANGED
|
@@ -167,20 +167,73 @@ export function decodeUomAlphaMask(png, expectedWidth, expectedHeight = expected
|
|
|
167
167
|
export function decodeCanonicalAlphaMask(png, expectedWidth, expectedHeight = expectedWidth) {
|
|
168
168
|
return alphaMask(decodeIndexedPng(png, true), expectedWidth, expectedHeight);
|
|
169
169
|
}
|
|
170
|
+
function paeth(left, up, upLeft) {
|
|
171
|
+
const estimate = left + up - upLeft;
|
|
172
|
+
const leftDistance = Math.abs(estimate - left);
|
|
173
|
+
const upDistance = Math.abs(estimate - up);
|
|
174
|
+
const cornerDistance = Math.abs(estimate - upLeft);
|
|
175
|
+
return leftDistance <= upDistance && leftDistance <= cornerDistance ? left : upDistance <= cornerDistance ? up : upLeft;
|
|
176
|
+
}
|
|
177
|
+
function filterRows(rows, rowBytes, height) {
|
|
178
|
+
const output = Buffer.allocUnsafe((rowBytes + 1) * height);
|
|
179
|
+
for (let y = 0; y < height; y++) {
|
|
180
|
+
const rowOffset = y * rowBytes;
|
|
181
|
+
const outputOffset = y * (rowBytes + 1);
|
|
182
|
+
let bestFilter = 0;
|
|
183
|
+
let bestScore = Number.POSITIVE_INFINITY;
|
|
184
|
+
let best = Buffer.allocUnsafe(rowBytes);
|
|
185
|
+
for (let filter = 0; filter <= 4; filter++) {
|
|
186
|
+
const candidate = Buffer.allocUnsafe(rowBytes);
|
|
187
|
+
let score = 0;
|
|
188
|
+
for (let x = 0; x < rowBytes; x++) {
|
|
189
|
+
const current = rows[rowOffset + x];
|
|
190
|
+
const left = x > 0 ? rows[rowOffset + x - 1] : 0;
|
|
191
|
+
const up = y > 0 ? rows[rowOffset - rowBytes + x] : 0;
|
|
192
|
+
const upLeft = x > 0 && y > 0 ? rows[rowOffset - rowBytes + x - 1] : 0;
|
|
193
|
+
const prediction = filter === 0 ? 0
|
|
194
|
+
: filter === 1 ? left
|
|
195
|
+
: filter === 2 ? up
|
|
196
|
+
: filter === 3 ? Math.floor((left + up) / 2)
|
|
197
|
+
: paeth(left, up, upLeft);
|
|
198
|
+
const value = (current - prediction) & 0xff;
|
|
199
|
+
candidate[x] = value;
|
|
200
|
+
score += value < 128 ? value : 256 - value;
|
|
201
|
+
}
|
|
202
|
+
if (score < bestScore) {
|
|
203
|
+
bestFilter = filter;
|
|
204
|
+
bestScore = score;
|
|
205
|
+
best = candidate;
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
output[outputOffset] = bestFilter;
|
|
209
|
+
best.copy(output, outputOffset + 1);
|
|
210
|
+
}
|
|
211
|
+
return output;
|
|
212
|
+
}
|
|
170
213
|
export function encodeIndexedPng(width, height, indexes, palette, alpha) {
|
|
171
214
|
if (indexes.length !== width * height)
|
|
172
215
|
throw new RangeError('indexed PNG dimensions do not match pixels');
|
|
173
216
|
if (palette.length === 0 || palette.length % 3 !== 0 || palette.length / 3 > 256)
|
|
174
217
|
throw new RangeError('invalid indexed PNG palette');
|
|
175
|
-
const
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
218
|
+
const paletteEntries = palette.length / 3;
|
|
219
|
+
const bitDepth = paletteEntries <= 2 ? 1 : paletteEntries <= 4 ? 2 : paletteEntries <= 16 ? 4 : 8;
|
|
220
|
+
const rowBytes = Math.ceil(width * bitDepth / 8);
|
|
221
|
+
const pixelsPerByte = 8 / bitDepth;
|
|
222
|
+
const rows = Buffer.alloc(rowBytes * height);
|
|
223
|
+
for (let y = 0; y < height; y++)
|
|
224
|
+
for (let x = 0; x < width; x++) {
|
|
225
|
+
const index = indexes[y * width + x];
|
|
226
|
+
if (index >= paletteEntries)
|
|
227
|
+
throw new RangeError('indexed PNG pixel exceeds palette');
|
|
228
|
+
const byte = y * rowBytes + Math.floor(x / pixelsPerByte);
|
|
229
|
+
const shift = 8 - bitDepth * (x % pixelsPerByte + 1);
|
|
230
|
+
rows[byte] = rows[byte] | index << shift;
|
|
231
|
+
}
|
|
232
|
+
const raw = filterRows(rows, rowBytes, height);
|
|
180
233
|
const ihdr = Buffer.alloc(13);
|
|
181
234
|
ihdr.writeUInt32BE(width, 0);
|
|
182
235
|
ihdr.writeUInt32BE(height, 4);
|
|
183
|
-
ihdr[8] =
|
|
236
|
+
ihdr[8] = bitDepth;
|
|
184
237
|
ihdr[9] = 3;
|
|
185
238
|
ihdr[10] = 0;
|
|
186
239
|
ihdr[11] = 0;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { basename, win32 as windowsPath } from 'node:path';
|
|
2
|
+
function shellExecutable(platform, env) {
|
|
3
|
+
const configured = env.SHELL?.trim() || env.npm_config_script_shell?.trim() || '';
|
|
4
|
+
const executable = platform === 'win32' ? windowsPath.basename(configured) : basename(configured);
|
|
5
|
+
return executable.toLowerCase().replace(/\.exe$/, '');
|
|
6
|
+
}
|
|
7
|
+
export function shellEnvironmentHint(platform, env) {
|
|
8
|
+
const shell = shellExecutable(platform, env);
|
|
9
|
+
if (shell === 'pwsh' || shell === 'powershell') {
|
|
10
|
+
return { name: shell === 'pwsh' ? 'PowerShell (pwsh)' : 'Windows PowerShell', command: "$env:NUXT_TIANDITU_TOKEN='你的天地图令牌'" };
|
|
11
|
+
}
|
|
12
|
+
if (shell === 'cmd') {
|
|
13
|
+
return { name: 'cmd.exe', command: 'set "NUXT_TIANDITU_TOKEN=你的天地图令牌"' };
|
|
14
|
+
}
|
|
15
|
+
if (shell === 'fish') {
|
|
16
|
+
return { name: 'fish', command: "set -x NUXT_TIANDITU_TOKEN '你的天地图令牌'" };
|
|
17
|
+
}
|
|
18
|
+
if (shell === 'csh' || shell === 'tcsh') {
|
|
19
|
+
return { name: shell, command: "setenv NUXT_TIANDITU_TOKEN '你的天地图令牌'" };
|
|
20
|
+
}
|
|
21
|
+
if (shell) {
|
|
22
|
+
return { name: shell, command: "export NUXT_TIANDITU_TOKEN='你的天地图令牌'" };
|
|
23
|
+
}
|
|
24
|
+
if (platform === 'win32') {
|
|
25
|
+
if (env.PROMPT !== undefined) {
|
|
26
|
+
return { name: 'cmd.exe', command: 'set "NUXT_TIANDITU_TOKEN=你的天地图令牌"' };
|
|
27
|
+
}
|
|
28
|
+
if (env.PSModulePath) {
|
|
29
|
+
return { name: 'PowerShell', command: "$env:NUXT_TIANDITU_TOKEN='你的天地图令牌'" };
|
|
30
|
+
}
|
|
31
|
+
return {
|
|
32
|
+
name: 'Windows shell(未能确定)',
|
|
33
|
+
command: "PowerShell: $env:NUXT_TIANDITU_TOKEN='你的天地图令牌';cmd.exe: set \"NUXT_TIANDITU_TOKEN=你的天地图令牌\"",
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
return { name: 'POSIX shell', command: "export NUXT_TIANDITU_TOKEN='你的天地图令牌'" };
|
|
37
|
+
}
|
|
@@ -4,12 +4,15 @@ import { dirname, extname, resolve } from 'node:path';
|
|
|
4
4
|
import { execFile } from 'node:child_process';
|
|
5
5
|
import { promisify } from 'node:util';
|
|
6
6
|
import { DatabaseSync } from 'node:sqlite';
|
|
7
|
+
import { UOMTILES_VERSION } from "../config.js";
|
|
8
|
+
import { DEFAULT_EXPORT_MAX_ZOOM, DEFAULT_EXPORT_MIN_ZOOM, EXPORT_MAX_ZOOM, EXPORT_MIN_ZOOM, } from "../../shared/export.js";
|
|
7
9
|
import { acquireSqliteLease } from "./lease.js";
|
|
8
10
|
import { decodeCanonicalAlphaMask } from "./png.js";
|
|
9
|
-
import { GeographicGridRenderer
|
|
11
|
+
import { GeographicGridRenderer } from "./grid-renderer.js";
|
|
10
12
|
import { xyzYToTmsY } from "../bbox.js";
|
|
11
13
|
const execFileAsync = promisify(execFile);
|
|
12
14
|
const UOMTILES_SCHEMA_VERSION = 1;
|
|
15
|
+
const MIN_NONEMPTY_PNG_BYTES = 120;
|
|
13
16
|
function tables(db) {
|
|
14
17
|
return new Set(db.prepare("SELECT name FROM sqlite_master WHERE type='table'").all().map(row => row.name));
|
|
15
18
|
}
|
|
@@ -18,6 +21,63 @@ function metadata(db) {
|
|
|
18
21
|
return {};
|
|
19
22
|
return Object.fromEntries(db.prepare('SELECT name,value FROM metadata').all().map(row => [row.name, row.value]));
|
|
20
23
|
}
|
|
24
|
+
export function exportZoomRange(options = {}) {
|
|
25
|
+
const minZoom = options.minZoom ?? DEFAULT_EXPORT_MIN_ZOOM;
|
|
26
|
+
const maxZoom = options.maxZoom ?? DEFAULT_EXPORT_MAX_ZOOM;
|
|
27
|
+
if (!Number.isInteger(minZoom) || minZoom < EXPORT_MIN_ZOOM || minZoom > EXPORT_MAX_ZOOM) {
|
|
28
|
+
throw new RangeError(`最小导出层级必须是 z${EXPORT_MIN_ZOOM}–z${EXPORT_MAX_ZOOM} 的整数`);
|
|
29
|
+
}
|
|
30
|
+
if (!Number.isInteger(maxZoom) || maxZoom < EXPORT_MIN_ZOOM || maxZoom > EXPORT_MAX_ZOOM) {
|
|
31
|
+
throw new RangeError(`最大导出层级必须是 z${EXPORT_MIN_ZOOM}–z${EXPORT_MAX_ZOOM} 的整数`);
|
|
32
|
+
}
|
|
33
|
+
if (minZoom > maxZoom)
|
|
34
|
+
throw new RangeError('最小导出层级不能大于最大导出层级');
|
|
35
|
+
return { minZoom, maxZoom };
|
|
36
|
+
}
|
|
37
|
+
function projectedLevel(summary, zoom) {
|
|
38
|
+
const reencodedPngRatio = zoom <= 8 ? 0.93 : Math.max(0.58, 0.93 - (zoom - 8) * 0.075);
|
|
39
|
+
const known = new Map(summary.tiles.map(level => [level.z, level]));
|
|
40
|
+
const exact = known.get(zoom);
|
|
41
|
+
if (exact)
|
|
42
|
+
return {
|
|
43
|
+
tileCount: exact.count,
|
|
44
|
+
pngBytes: Math.max(exact.count * MIN_NONEMPTY_PNG_BYTES, Math.round(exact.bytes * reencodedPngRatio)),
|
|
45
|
+
tileCountExact: true,
|
|
46
|
+
};
|
|
47
|
+
const levels = [...known.values()].sort((left, right) => left.z - right.z);
|
|
48
|
+
const base = levels.reduce((nearest, level) => Math.abs(level.z - zoom) < Math.abs(nearest.z - zoom) ? level : nearest, levels[0]);
|
|
49
|
+
if (!base)
|
|
50
|
+
return { tileCount: 0, pngBytes: 0, tileCountExact: false };
|
|
51
|
+
const baseRatio = base.z <= 8 ? 0.93 : Math.max(0.58, 0.93 - (base.z - 8) * 0.075);
|
|
52
|
+
const baseAverage = Math.max(MIN_NONEMPTY_PNG_BYTES, base.bytes / Math.max(1, base.count) * baseRatio);
|
|
53
|
+
const distance = Math.abs(zoom - base.z);
|
|
54
|
+
if (zoom > base.z) {
|
|
55
|
+
const tileCount = Math.max(1, Math.round(base.count * 3.75 ** distance));
|
|
56
|
+
const average = MIN_NONEMPTY_PNG_BYTES + (baseAverage - MIN_NONEMPTY_PNG_BYTES) * 0.55 ** distance;
|
|
57
|
+
return { tileCount, pngBytes: Math.round(tileCount * average), tileCountExact: false };
|
|
58
|
+
}
|
|
59
|
+
const tileCount = Math.max(1, Math.round(base.count / 3.5 ** distance));
|
|
60
|
+
const average = Math.min(1_600, baseAverage * 1.25 ** distance);
|
|
61
|
+
return { tileCount, pngBytes: Math.round(tileCount * average), tileCountExact: false };
|
|
62
|
+
}
|
|
63
|
+
export function estimateExport(source, format, options = {}) {
|
|
64
|
+
const range = exportZoomRange(options);
|
|
65
|
+
const summary = inspectUomtiles(source);
|
|
66
|
+
const levels = [];
|
|
67
|
+
let tileCount = 0;
|
|
68
|
+
let pngBytes = 0;
|
|
69
|
+
for (let zoom = range.minZoom; zoom <= range.maxZoom; zoom++) {
|
|
70
|
+
const level = projectedLevel(summary, zoom);
|
|
71
|
+
tileCount += level.tileCount;
|
|
72
|
+
pngBytes += level.pngBytes;
|
|
73
|
+
levels.push({ zoom, tileCount: level.tileCount, estimatedBytes: level.pngBytes, tileCountExact: level.tileCountExact });
|
|
74
|
+
}
|
|
75
|
+
// Fresh MBTiles files pay for SQLite B-trees; PMTiles deduplicates PNG blobs and has compact varint directories.
|
|
76
|
+
const estimatedBytes = format === 'mbtiles'
|
|
77
|
+
? pngBytes + tileCount * 80 + 128 * 1024
|
|
78
|
+
: Math.round(pngBytes * 0.82 + tileCount * 16 + 64 * 1024);
|
|
79
|
+
return { ...range, format, estimatedBytes, tileCount, levels, omitsEmptyTiles: true };
|
|
80
|
+
}
|
|
21
81
|
export function initializeUomtiles(path, publisher) {
|
|
22
82
|
mkdirSync(dirname(path), { recursive: true });
|
|
23
83
|
const db = new DatabaseSync(path);
|
|
@@ -55,7 +115,7 @@ export function initializeUomtiles(path, publisher) {
|
|
|
55
115
|
const createdAt = meta.crawl_started_at || new Date().toISOString();
|
|
56
116
|
const finishedAt = meta.crawl_finished_at || null;
|
|
57
117
|
db.prepare(`INSERT INTO uomtiles_task(id,schema_version,state,publisher,created_at,started_at,finished_at,tool_version)
|
|
58
|
-
VALUES(?,?,?,?,?,?,?,?)`).run(randomUUID(), UOMTILES_SCHEMA_VERSION, finishedAt ? 'completed' : 'incomplete', publisher || null, createdAt, meta.crawl_started_at || null, finishedAt,
|
|
118
|
+
VALUES(?,?,?,?,?,?,?,?)`).run(randomUUID(), UOMTILES_SCHEMA_VERSION, finishedAt ? 'completed' : 'incomplete', publisher || null, createdAt, meta.crawl_started_at || null, finishedAt, UOMTILES_VERSION);
|
|
59
119
|
}
|
|
60
120
|
const upsert = db.prepare('INSERT OR REPLACE INTO metadata(name,value) VALUES(?,?)');
|
|
61
121
|
upsert.run('uomtiles_schema_version', String(UOMTILES_SCHEMA_VERSION));
|
|
@@ -130,9 +190,10 @@ export function inspectUomtiles(path) {
|
|
|
130
190
|
db.close();
|
|
131
191
|
}
|
|
132
192
|
}
|
|
133
|
-
export function exportMbtiles(source, target) {
|
|
193
|
+
export function exportMbtiles(source, target, options = {}) {
|
|
134
194
|
const input = resolve(source);
|
|
135
195
|
const output = resolve(target);
|
|
196
|
+
const range = exportZoomRange(options);
|
|
136
197
|
if (extname(output).toLowerCase() !== '.mbtiles')
|
|
137
198
|
throw new Error('MBTiles 输出文件必须使用 .mbtiles 扩展名');
|
|
138
199
|
const lock = acquireSqliteLease(input, 'writer');
|
|
@@ -142,29 +203,45 @@ export function exportMbtiles(source, target) {
|
|
|
142
203
|
mkdirSync(dirname(output), { recursive: true });
|
|
143
204
|
const sourceDb = new DatabaseSync(input, { readOnly: true });
|
|
144
205
|
const outputDb = new DatabaseSync(temporary);
|
|
206
|
+
let complete = false;
|
|
145
207
|
try {
|
|
146
208
|
outputDb.exec(`PRAGMA journal_mode=OFF; PRAGMA synchronous=OFF;
|
|
147
209
|
CREATE TABLE metadata(name TEXT PRIMARY KEY,value TEXT NOT NULL);
|
|
148
210
|
CREATE TABLE tiles(zoom_level INTEGER NOT NULL,tile_column INTEGER NOT NULL,tile_row INTEGER NOT NULL,tile_data BLOB NOT NULL,
|
|
149
211
|
PRIMARY KEY(zoom_level,tile_column,tile_row));`);
|
|
150
212
|
const insertMeta = outputDb.prepare('INSERT INTO metadata(name,value) VALUES(?,?)');
|
|
151
|
-
const standard = new Set(['name', 'type', 'version', 'description', 'format', 'bounds', 'center', 'minzoom', 'attribution']);
|
|
152
213
|
const meta = metadata(sourceDb);
|
|
153
214
|
outputDb.exec('BEGIN');
|
|
154
|
-
for (const name of standard)
|
|
155
|
-
if (meta[name])
|
|
156
|
-
insertMeta.run(name, meta[name]);
|
|
157
215
|
const summary = inspectUomtiles(input);
|
|
216
|
+
const bounds = meta.bounds || '73,17.5,135.5,54';
|
|
217
|
+
const [west, south, east, north] = bounds.split(',').map(Number);
|
|
218
|
+
const sourceCenter = meta.center?.split(',').map(Number);
|
|
219
|
+
const centerZoom = Math.min(range.maxZoom, Math.max(range.minZoom, Number.isFinite(sourceCenter?.[2]) ? sourceCenter[2] : 9));
|
|
220
|
+
const center = `${Number.isFinite(sourceCenter?.[0]) ? sourceCenter[0] : (west + east) / 2},${Number.isFinite(sourceCenter?.[1]) ? sourceCenter[1] : (south + north) / 2},${centerZoom}`;
|
|
221
|
+
const standard = {
|
|
222
|
+
name: meta.name || 'UOM适飞地图',
|
|
223
|
+
format: 'png',
|
|
224
|
+
bounds,
|
|
225
|
+
center,
|
|
226
|
+
minzoom: String(range.minZoom),
|
|
227
|
+
maxzoom: String(range.maxZoom),
|
|
228
|
+
type: 'overlay',
|
|
229
|
+
version: UOMTILES_VERSION,
|
|
230
|
+
description: meta.description || 'UOM适飞空域',
|
|
231
|
+
attribution: meta.attribution || 'CAAC UOM',
|
|
232
|
+
};
|
|
233
|
+
for (const [name, value] of Object.entries(standard))
|
|
234
|
+
insertMeta.run(name, value);
|
|
158
235
|
insertMeta.run('uomtiles:publisher', summary.publisher || 'unknown');
|
|
159
236
|
insertMeta.run('uomtiles:fetched_at', summary.finishedAt || summary.startedAt || 'unknown');
|
|
160
237
|
insertMeta.run('uomtiles:source_zoom', String(summary.sourceZoom ?? 'unknown'));
|
|
161
238
|
insertMeta.run('uomtiles:grid_level', String(summary.gridLevel ?? 'unknown'));
|
|
239
|
+
insertMeta.run('uomtiles:tool_version', UOMTILES_VERSION);
|
|
162
240
|
const renderer = new GeographicGridRenderer(input);
|
|
163
|
-
insertMeta.run('maxzoom', String(renderer.available ? PUBLISH_MAX_ZOOM : Math.max(0, ...summary.tiles.map(tile => tile.z))));
|
|
164
241
|
const insertTile = outputDb.prepare('INSERT INTO tiles VALUES(?,?,?,?)');
|
|
165
242
|
let copied = 0;
|
|
166
243
|
if (renderer.available) {
|
|
167
|
-
for (let z =
|
|
244
|
+
for (let z = range.minZoom; z <= range.maxZoom; z++)
|
|
168
245
|
for (const coordinate of renderer.contentCoordinates(z)) {
|
|
169
246
|
const tile = renderer.renderTile(z, coordinate.x, coordinate.y);
|
|
170
247
|
if (!tile)
|
|
@@ -176,7 +253,10 @@ export function exportMbtiles(source, target) {
|
|
|
176
253
|
}
|
|
177
254
|
}
|
|
178
255
|
else {
|
|
179
|
-
for (const row of sourceDb.prepare(
|
|
256
|
+
for (const row of sourceDb.prepare(`SELECT zoom_level,tile_column,tile_row,tile_data FROM tiles
|
|
257
|
+
WHERE zoom_level BETWEEN ? AND ? ORDER BY zoom_level,tile_column,tile_row`).iterate(range.minZoom, range.maxZoom)) {
|
|
258
|
+
if (!decodeCanonicalAlphaMask(row.tile_data, 256).some(Boolean))
|
|
259
|
+
continue;
|
|
180
260
|
insertTile.run(row.zoom_level, row.tile_column, row.tile_row, row.tile_data);
|
|
181
261
|
copied++;
|
|
182
262
|
if (copied % 1_000 === 0)
|
|
@@ -185,7 +265,8 @@ export function exportMbtiles(source, target) {
|
|
|
185
265
|
}
|
|
186
266
|
lock.heartbeat();
|
|
187
267
|
outputDb.exec('COMMIT');
|
|
188
|
-
outputDb.exec('
|
|
268
|
+
outputDb.exec('PRAGMA optimize;');
|
|
269
|
+
complete = true;
|
|
189
270
|
}
|
|
190
271
|
catch (error) {
|
|
191
272
|
try {
|
|
@@ -198,23 +279,26 @@ export function exportMbtiles(source, target) {
|
|
|
198
279
|
outputDb.close();
|
|
199
280
|
sourceDb.close();
|
|
200
281
|
lock.release();
|
|
282
|
+
if (!complete && existsSync(temporary))
|
|
283
|
+
unlinkSync(temporary);
|
|
201
284
|
}
|
|
202
285
|
if (existsSync(output))
|
|
203
286
|
unlinkSync(output);
|
|
204
287
|
renameSync(temporary, output);
|
|
205
288
|
return inspectUomtiles(output);
|
|
206
289
|
}
|
|
207
|
-
export async function exportTiles(source, target,
|
|
290
|
+
export async function exportTiles(source, target, options = {}) {
|
|
208
291
|
const extension = extname(target).toLowerCase();
|
|
209
292
|
if (extension === '.mbtiles') {
|
|
210
|
-
exportMbtiles(source, target);
|
|
293
|
+
exportMbtiles(source, target, options);
|
|
211
294
|
return;
|
|
212
295
|
}
|
|
213
296
|
if (extension !== '.pmtiles')
|
|
214
297
|
throw new Error('输出文件必须使用 .mbtiles 或 .pmtiles 扩展名');
|
|
215
298
|
const intermediate = `${resolve(target)}.${process.pid}.mbtiles`;
|
|
299
|
+
const pmtilesCommand = options.pmtilesCommand || process.env.UOMTILES_PMTILES_COMMAND || 'pmtiles';
|
|
216
300
|
try {
|
|
217
|
-
exportMbtiles(source, intermediate);
|
|
301
|
+
exportMbtiles(source, intermediate, options);
|
|
218
302
|
await execFileAsync(pmtilesCommand, ['convert', intermediate, resolve(target), '--force', '--quiet'], { timeout: 30 * 60_000 });
|
|
219
303
|
}
|
|
220
304
|
catch (error) {
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{Bn as e,En as t,M as n,Pn as r,Wn as i,ut as a}from"./C97TfNgP.js";import{ot as o}from"./CgMd2Y5s.js";import{L as s,S as c,ot as l}from"./ByRlKR9F.js";var u=l;function d(){return u}function f(e){return(t,n)=>p(t,n,i(e))}function p(e,t,n){return c(n,`messages.${e}`,e).replace(/\{(\w+)\}/g,(e,n)=>`${t?.[n]??`{${n}}`}`)}function m(e){return{lang:n(()=>i(e).name),code:n(()=>i(e).code),dir:n(()=>i(e).dir),locale:t(e)?e:r(e),t:f(e)}}function h(e){return o(e,{dir:`ltr`})}var g=h({name:`English`,code:`en`,messages:{alert:{close:`Close`},authForm:{hidePassword:`Hide password`,showPassword:`Show password`,submit:`Continue`},banner:{close:`Close`},calendar:{nextMonth:`Next month`,nextYear:`Next year`,prevMonth:`Previous month`,prevYear:`Previous year`},carousel:{dots:`Choose slide to display`,goto:`Go to slide {slide}`,next:`Next`,prev:`Prev`},chatPrompt:{placeholder:`Type your message here…`},chatPromptSubmit:{label:`Send prompt`},colorMode:{dark:`Dark`,light:`Light`,switchToDark:`Switch to dark mode`,switchToLight:`Switch to light mode`,system:`System`},commandPalette:{back:`Back`,close:`Close`,noData:`No data`,noMatch:`No matching data`,placeholder:`Type a command or search…`},contentSearch:{links:`Links`,search:`Results`,theme:`Theme`},contentSearchButton:{label:`Search…`},contentToc:{title:`On this page`},dropdownMenu:{noMatch:`No matching data`,search:`Search…`},dashboardSearch:{theme:`Theme`},dashboardSearchButton:{label:`Search…`},dashboardSidebarCollapse:{collapse:`Collapse sidebar`,expand:`Expand sidebar`},dashboardSidebarToggle:{close:`Close sidebar`,open:`Open sidebar`},drawer:{close:`Close`},error:{clear:`Back to home`},fileUpload:{removeFile:`Remove {filename}`},header:{close:`Close menu`,open:`Open menu`},inputMenu:{create:`Create "{label}"`,noData:`No data`,noMatch:`No matching data`},inputNumber:{decrement:`Decrement`,increment:`Increment`},listbox:{noData:`No data`,noMatch:`No matching data`,search:`Search…`},modal:{close:`Close`},pricingTable:{caption:`Pricing plan comparison`},prose:{codeCollapse:{closeText:`Collapse`,name:`code`,openText:`Expand`},collapsible:{closeText:`Hide`,name:`properties`,openText:`Show`},pre:{copy:`Copy code to clipboard`},prompt:{copy:`Copy prompt`,openIn:`Open in {name}`}},chatReasoning:{thinking:`Thinking…`,thought:`Thought`,thoughtFor:`Thought for {duration}`},sidebar:{close:`Close`,toggle:`Toggle`},selectMenu:{create:`Create "{label}"`,noData:`No data`,noMatch:`No matching data`,search:`Search…`},slideover:{close:`Close`},table:{noData:`No data`},toast:{close:`Close`}}}),_=Symbol.for(`nuxt-ui.locale-context`),v=s(t=>{let r=t||e(a(_,g));return m(n(()=>r.value||g))});export{v as n,d as r,_ as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{At as e,B as t,En as n,F as r,G as i,I as a,It as o,Ln as s,M as c,N as l,P as u,Pn as d,S as f,U as p,Wn as m,_r as h,bt as g,en as ee,gr as te,in as _,ln as v,wt as y}from"./C97TfNgP.js";import{_ as ne,t as re}from"./ByRlKR9F.js";import{r as ie}from"./3B2XYGg4.js";import{n as ae,r as oe,t as se}from"./BskybydR.js";import{i as ce,n as le,r as ue,t as de}from"./C7HxHbxA.js";import{t as fe}from"./C4qlzA4o.js";import{n as pe,r as b}from"#entry";import{n as me,t as he}from"./ZpWjFsgV.js";import{t as ge}from"./DC3bhq63.js";import{n as x,r as _e,t as ve}from"./DkcySee1.js";import{n as ye,t as be}from"./DtFVCXI9.js";import{t as S}from"./CNs_Ozdc.js";function C(){let e=d(`idle`),t=s([]),n=d(0),r=d(0),i=d(0),a=d(!1),o=d(null),l=c(()=>r.value===0?0:n.value/r.value*100),u=null;function f(){u?.terminate(),u=null,e.value=`idle`,t.value=[],n.value=0,r.value=0,i.value=0,a.value=!1,o.value=null}async function p(s){f(),e.value=`running`,await new Promise((e,o)=>{u=new Worker(new URL(``+new URL(`nearest-area.worker-iSLH0Y_s.js`,import.meta.url).href,``+import.meta.url),{type:`module`}),u.onerror=e=>o(Error(e.message||`适飞区分析 Worker 异常退出`)),u.onmessage=c=>{let l=c.data;if(l.type===`error`){o(Error(l.message));return}if(n.value=l.processedTiles,r.value=l.totalTiles,l.type===`progress`){i.value=Math.min(l.foundAreas,s.resultCount);return}t.value=l.areas,i.value=Math.min(l.areas.length,s.resultCount),a.value=l.truncated,e()},u.postMessage({type:`search`,...s})}).then(()=>{e.value=`completed`}).catch(t=>{throw o.value=t instanceof Error?t.message:String(t),e.value=`error`,t}).finally(()=>{u?.terminate(),u=null})}return g(f),{state:e,areas:t,processedTiles:n,totalTiles:r,foundAreas:i,truncated:a,error:o,progress:l,run:p,cancel:f}}var xe={key:0,class:`grid min-h-[32rem] flex-1 place-items-center`},Se={class:`flex flex-col items-center gap-3 text-sm text-muted`},Ce={key:1,class:`grid min-h-[32rem] flex-1 place-items-center overflow-y-auto p-6`},we={class:`w-full max-w-2xl space-y-4`},Te={class:`flex justify-end`},Ee={key:2,class:`grid min-h-0 flex-1 xl:grid-cols-[minmax(0,1fr)_24rem]`},De={class:`relative min-h-[520px] border-r border-default`},Oe={class:`flex min-h-0 flex-col overflow-hidden bg-default`},ke={class:`border-b border-default p-4`},Ae={class:`space-y-6 p-5`},je={class:`space-y-3`},Me={class:`grid grid-cols-2 gap-3`},Ne={key:0,class:`sr-only`,role:`status`},Pe={class:`space-y-3`},Fe={class:`grid grid-cols-2 gap-3`},Ie={key:1,class:`grid grid-cols-2 gap-3`},Le={key:0,class:`space-y-2`},Re={class:`flex items-center justify-between text-xs text-muted`},ze={key:3,class:`space-y-2`},Be={class:`flex w-full items-center gap-3`},Ve={class:`min-w-0 flex-1`},He={class:`block text-sm font-medium text-highlighted`},Ue={class:`mt-0.5 block text-xs text-muted`},We={class:`mt-0.5 block text-xs text-muted`},w=i({__name:`advanced`,setup(i){S({layout:`dashboard`}),ie({title:`地图高级功能`});let g=_e(),w=b(),T=d(`select`),E=d(),D=s(null),O=d(`tianditu`),k=d(`nearest-area`),A=ee(`map`),j=d(`manual`),M=d(``),N=d(``),P=d(!1),F=d(`area`),I=d(1),L=d(),R=d(),z=d(),B=d(0),V=d(5),H=d(null),{state:U,areas:W,processedTiles:Ge,totalTiles:Ke,foundAreas:qe,truncated:Je,error:Ye,progress:Xe,run:G,cancel:K}=C(),q=c(()=>g.files.value.find(e=>e.filename===E.value)),J=c(()=>q.value||D.value),Ze=c(()=>q.value?g.displayWorkspaceName(q.value.filename):D.value?x(D.value.filename):void 0),Qe=c(()=>q.value?`/api/workspace/${encodeURIComponent(q.value.filename)}/tile?z={z}&x={x}&y={y}`:D.value?`local:${D.value.id}/{z}/{x}/{y}`:void 0),$e=c(()=>q.value?.minZoom??0),et=c(()=>q.value?.maxZoom??(D.value?.kind===`uomtiles`?18:24)),tt=[{label:`寻找离我最近的适飞区`,value:`nearest-area`,icon:`i-lucide-map-pin-check`}],nt=[{label:`最小面积`,value:`area`},{label:`自定义尺寸`,value:`size`}],rt=[{label:`至少 1 平方千米`,value:1},{label:`至少 5 平方千米`,value:5},{label:`至少 10 平方千米`,value:10},{label:`至少 50 平方千米`,value:50},{label:`至少 100 平方千米`,value:100},{label:`自定义面积`,value:`custom`}],it=[3,5,10].map(e=>({label:`${e} 个`,value:e})),at=c(()=>[{label:P.value?`定位中`:`我的位置`,value:`geolocation`,icon:P.value?`i-lucide-loader-circle`:`i-lucide-locate-fixed`,ui:{leadingIcon:P.value?`animate-spin`:void 0}},{label:`地图选点`,value:`map`,icon:`i-lucide-map-pin`},{label:`手动输入`,value:`manual`,icon:`i-lucide-keyboard`}]),Y=c(()=>U.value===`running`),X=c(()=>M.value.trim()===``?null:Number(M.value)),Z=c(()=>N.value.trim()===``?null:Number(N.value)),ot=c(()=>X.value!==null&&Number.isFinite(X.value)&&X.value>=-180&&X.value<=180),st=c(()=>Z.value!==null&&Number.isFinite(Z.value)&&Z.value>=-85.05112878&&Z.value<=85.05112878),Q=c(()=>ot.value&&st.value?[X.value,Z.value]:void 0),ct=c(()=>M.value&&!ot.value?`经度应在 -180 到 180 之间`:void 0),lt=c(()=>N.value&&!st.value?`纬度应在 -85.051129 到 85.051129 之间`:void 0),ut=c(()=>F.value===`area`?(I.value===`custom`?L.value||0:I.value)*1e6:0),dt=c(()=>F.value===`size`?(R.value||0)*1e3:0),ft=c(()=>F.value===`size`?(z.value||0)*1e3:0),pt=c(()=>F.value===`area`?I.value!==`custom`||Number(L.value)>=1:Number(R.value)>0&&Number(z.value)>0),mt=c(()=>Number.isFinite(Number(B.value))&&Number(B.value)>=0);y(g.refresh),_(E,e=>{e&&(D.value=null)}),_(E,()=>{K(),H.value=null}),_([F,I,L,R,z,B,V],()=>{K(),H.value=null});function ht(e){let t=e.name.split(`.`).pop()?.toLowerCase();if(t!==`uomtiles`&&t!==`mbtiles`&&t!==`pmtiles`){w.add({title:`不支持的地图文件`,description:`请选择 .uomtiles、.mbtiles 或 .pmtiles。`,color:`error`,icon:`i-lucide-file-x-2`});return}E.value=void 0,D.value={id:`advanced-${crypto.randomUUID()}`,file:e,filename:e.name,kind:t}}function gt(){J.value&&(T.value=`use`)}function _t(){K(),H.value=null,T.value=`select`}function $(){K(),H.value=null}function vt(e,t){(t!==`geolocation`||j.value===`geolocation`)&&(P.value=!1,bt(e,t))}function yt(){$(),j.value=`geolocation`}function bt(e,t){$(),j.value=t,M.value=e[0].toFixed(6),N.value=e[1].toFixed(6)}function xt(e){A.value?.stopActiveLocationTracking(),P.value=!1,$(),j.value=`manual`,M.value=String(e)}function St(e){A.value?.stopActiveLocationTracking(),P.value=!1,$(),j.value=`manual`,N.value=String(e)}function Ct(e){(e===`geolocation`||e===`map`||e===`manual`)&&(e!==`geolocation`&&A.value?.stopActiveLocationTracking(),P.value=!1,$(),j.value=e,e===`geolocation`&&!A.value?.locate()&&w.add({title:`定位功能尚未就绪`,color:`error`,icon:`i-lucide-map-pin-off`}))}function wt(e){P.value=e}function Tt(e){P.value=!1,w.add({title:e===1?`定位权限未开启`:`无法获取当前位置`,color:`error`,icon:`i-lucide-map-pin-off`})}async function Et(){if(!(!J.value||!Q.value)){H.value=null;try{await G({source:D.value?{kind:`local`,file:D.value.file}:{kind:`workspace`,filename:E.value},longitude:Q.value[0],latitude:Q.value[1],minimumAreaSquareMeters:ut.value,minimumWidthMeters:dt.value,minimumHeightMeters:ft.value,gapMeters:Number(B.value),resultCount:V.value})}catch{}}}function Dt(e){return e<1e3?`${Math.round(e)} 米`:`${(e/1e3).toFixed(+(e<1e4))} 公里`}function Ot(e){return`${At(e/1e6)} km²`}function kt(e){return`${At(e/1e3)} km`}function At(e){let t=Math.abs(e),n=t>=100?0:t>=10?1:2;return e.toFixed(n).replace(/(\.\d*?[1-9])0+$|\.0+$/,`$1`).replace(/\.$/,``)}return(i,s)=>{let c=re,d=ue,ee=le,_=ne,y=me,ie=ae,b=be,x=oe,_e=ce,S=ge,C=fe,w=pe,G=se,K=ve,X=he,Z=de;return e(),u(Z,{id:`advanced-map`,class:`min-w-0`,ui:{body:`gap-0 overflow-hidden p-0 sm:gap-0 sm:p-0`}},{header:v(()=>[p(ee,{title:`地图高级功能`},t({_:2},[m(T)===`use`?{name:`right`,fn:v(()=>[p(c,{icon:`i-lucide-files`,label:`重新选择`,color:`neutral`,variant:`outline`,onClick:_t}),p(d,{modelValue:m(O),"onUpdate:modelValue":s[0]||=e=>n(O)?O.value=e:null},null,8,[`modelValue`])]),key:`0`}:void 0]),1024)]),body:v(()=>[m(g).ready.value?m(T)===`select`?(e(),a(`div`,Ce,[l(`div`,we,[p(y,{accept:`.uomtiles,.mbtiles,.pmtiles`,title:`选择地图文件`,"file-name":m(Ze),onSelect:ht},null,8,[`file-name`]),p(ie,{modelValue:m(E),"onUpdate:modelValue":s[1]||=e=>n(E)?E.value=e:null,class:`w-full`},null,8,[`modelValue`]),l(`div`,Te,[p(c,{icon:`i-lucide-map`,label:`打开地图`,size:`lg`,disabled:!m(J),onClick:gt},null,8,[`disabled`])])])])):m(J)?(e(),a(`div`,Ee,[l(`div`,De,[(e(),u(b,{ref_key:`map`,ref:A,key:m(q)?.filename||m(D)?.id,"tile-url":m(Qe),"local-sources":m(D)?[{id:m(D).id,file:m(D).file}]:[],"base-map":m(O),"min-zoom":m($e),"max-zoom":m(et),"map-min-zoom":3,"map-max-zoom":24,"initial-zoom":9,center:m(Q)||[116.4,39.9],location:m(Q),areas:m(W),"selected-area-id":m(H),"enable-location-picking":m(j)===`map`,"enable-area-analysis":``,"raster-resampling":`nearest`,onLocationActivate:yt,onLocationChange:vt,onLocationLoading:wt,onLocationError:Tt},null,8,[`tile-url`,`local-sources`,`base-map`,`min-zoom`,`max-zoom`,`center`,`location`,`areas`,`selected-area-id`,`enable-location-picking`]))]),l(`aside`,Oe,[l(`div`,ke,[p(x,{modelValue:m(k),"onUpdate:modelValue":s[2]||=e=>n(k)?k.value=e:null,items:tt,"value-key":`value`,"label-key":`label`,class:`w-full`},null,8,[`modelValue`])]),p(X,{class:`min-h-0 flex-1`},{default:v(()=>[l(`div`,Ae,[l(`section`,je,[p(_e,{"model-value":m(j),items:m(at),content:!1,size:`sm`,class:`w-full`,ui:{list:`grid grid-cols-3`,trigger:`px-2`},"onUpdate:modelValue":Ct},null,8,[`model-value`,`items`]),l(`div`,Me,[p(C,{label:`经度`,error:m(ct)},{default:v(()=>[p(S,{"model-value":m(M),type:`number`,inputmode:`decimal`,min:`-180`,max:`180`,step:`0.000001`,placeholder:`116.400000`,class:`w-full`,"onUpdate:modelValue":xt},null,8,[`model-value`])]),_:1},8,[`error`]),p(C,{label:`纬度`,error:m(lt)},{default:v(()=>[p(S,{"model-value":m(N),type:`number`,inputmode:`decimal`,min:`-85.05112878`,max:`85.05112878`,step:`0.000001`,placeholder:`39.900000`,class:`w-full`,"onUpdate:modelValue":St},null,8,[`model-value`])]),_:1},8,[`error`])]),m(P)?(e(),a(`span`,Ne,`正在获取当前位置`)):r(``,!0)]),l(`section`,Pe,[l(`div`,Fe,[p(C,{label:`筛选方式`},{default:v(()=>[p(x,{modelValue:m(F),"onUpdate:modelValue":s[3]||=e=>n(F)?F.value=e:null,items:nt,"value-key":`value`,"label-key":`label`,class:`w-full`},null,8,[`modelValue`])]),_:1}),p(C,{label:`结果数量`},{default:v(()=>[p(x,{modelValue:m(V),"onUpdate:modelValue":s[4]||=e=>n(V)?V.value=e:null,items:m(it),"value-key":`value`,"label-key":`label`,class:`w-full`},null,8,[`modelValue`,`items`])]),_:1})]),m(F)===`area`?(e(),a(f,{key:0},[p(C,{label:`最小面积`},{default:v(()=>[p(x,{modelValue:m(I),"onUpdate:modelValue":s[5]||=e=>n(I)?I.value=e:null,items:rt,"value-key":`value`,"label-key":`label`,class:`w-full`},null,8,[`modelValue`])]),_:1}),m(I)===`custom`?(e(),u(C,{key:0,label:`自定义面积(平方千米)`},{default:v(()=>[p(S,{modelValue:m(L),"onUpdate:modelValue":s[6]||=e=>n(L)?L.value=e:null,modelModifiers:{number:!0},type:`number`,min:`1`,step:`0.1`,placeholder:`至少 1`,class:`w-full`},null,8,[`modelValue`])]),_:1})):r(``,!0)],64)):(e(),a(`div`,Ie,[p(C,{label:`最小宽(公里)`},{default:v(()=>[p(S,{modelValue:m(R),"onUpdate:modelValue":s[7]||=e=>n(R)?R.value=e:null,modelModifiers:{number:!0},type:`number`,min:`0.1`,step:`0.1`,placeholder:`例如 2`,class:`w-full`},null,8,[`modelValue`])]),_:1}),p(C,{label:`最小高(公里)`},{default:v(()=>[p(S,{modelValue:m(z),"onUpdate:modelValue":s[8]||=e=>n(z)?z.value=e:null,modelModifiers:{number:!0},type:`number`,min:`0.1`,step:`0.1`,placeholder:`例如 2`,class:`w-full`},null,8,[`modelValue`])]),_:1})])),p(C,{label:`区域合并间隙(米)`,description:`边缘间隔不超过此值的区域合并`},{default:v(()=>[p(S,{modelValue:m(B),"onUpdate:modelValue":s[9]||=e=>n(B)?B.value=e:null,modelModifiers:{number:!0},type:`number`,min:`0`,step:`1`,placeholder:`0`,class:`w-full`},null,8,[`modelValue`])]),_:1})]),p(c,{icon:`i-lucide-search`,label:`寻找适飞区`,block:``,loading:m(Y),disabled:!m(Q)||!m(pt)||!m(mt)||m(Y),onClick:Et},null,8,[`loading`,`disabled`]),m(Y)?(e(),a(`section`,Le,[p(w,{"model-value":m(Xe),max:100,size:`sm`},null,8,[`model-value`]),l(`div`,Re,[l(`span`,null,h(m(Ge))+` / `+h(m(Ke))+` 瓦片`,1),l(`span`,null,`已发现 `+h(m(qe))+` 个`,1)])])):m(U)===`error`?(e(),u(G,{key:1,color:`error`,icon:`i-lucide-circle-x`,title:`分析失败`,description:m(Ye)||void 0},null,8,[`description`])):m(U)===`completed`&&m(Je)?(e(),u(G,{key:2,color:`warning`,icon:`i-lucide-triangle-alert`,title:`结果可能不完整`,description:`已达到本次分析的瓦片上限。`})):r(``,!0),m(U)===`completed`?(e(),a(`section`,ze,[(e(!0),a(f,null,o(m(W),(t,n)=>(e(),u(c,{key:t.id,color:`neutral`,variant:m(H)===t.id?`soft`:`ghost`,block:``,ui:{base:`h-auto justify-start px-3 py-3 text-left`,label:`w-full`},onClick:e=>H.value=t.id},{default:v(()=>[l(`span`,Be,[l(`span`,{class:`grid size-7 shrink-0 place-items-center text-xs font-semibold`,style:te({backgroundColor:m(ye)(n).fillHex,color:m(ye)(n).accentHex})},h(n+1),5),l(`span`,Ve,[l(`span`,He,h(Dt(t.distanceMeters)),1),l(`span`,Ue,h(Ot(t.areaSquareMeters)),1),l(`span`,We,`宽 `+h(kt(t.widthMeters))+` · 高 `+h(kt(t.heightMeters)),1)]),p(_,{name:`i-lucide-chevron-right`,class:`size-4 shrink-0 text-muted`})])]),_:2},1032,[`variant`,`onClick`]))),128)),m(W).length===0?(e(),u(K,{key:0,icon:`i-lucide-map-pin-x`,title:`未找到符合条件的适飞区`})):r(``,!0)])):r(``,!0)])]),_:1})])])):r(``,!0):(e(),a(`div`,xe,[l(`div`,Se,[p(_,{name:`i-lucide-loader-circle`,class:`size-5 animate-spin text-primary`}),s[10]||=l(`span`,null,`加载地图文件`,-1)])]))]),_:1})}}});export{w as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{At as e,Bt as t,F as n,G as r,I as i,It as a,Lt as o,M as s,Ot as c,P as l,Pn as u,S as d,U as f,Vn as p,Wn as m,Zt as h,gr as g,gt as _,ht as v,ln as y,pr as b,wt as x,zn as S}from"./C97TfNgP.js";import{s as C}from"./zZ1EGR7Y.js";import{D as w,K as T,at as E,b as D,u as O,v as k,y as A}from"./ByRlKR9F.js";import{o as j}from"./BQlj8Xoe.js";import{a as M,i as N}from"./BskybydR.js";import{h as P,l as F,t as I}from"./Dz7VMlHR.js";import{a as L}from"./BrPwntMr.js";import{t as R}from"./BRkljK8J.js";import{a as z}from"#entry";function B(e,t=-1/0,n=1/0){return Math.min(n,Math.max(t,e))}function ee(e=[],t,n){let r=[...e];return r[n]=t,r.sort((e,t)=>e-t)}function V(e,t,n){return B(100/(n-t)*(e-t),0,100)}function H(e,t){if(t>2)return`Value ${e+1} of ${t}`;if(t===2)return[`Minimum`,`Maximum`][e]}function te(e,t){if(e.length===1)return 0;let n=e.map(e=>Math.abs(e-t)),r=Math.min(...n);return n.indexOf(r)}function U(e,t,n){let r=e/2;return(r-G([0,50],[0,r])(t)*n)*n}function W(e){return e.slice(0,-1).map((t,n)=>e[n+1]-t)}function ne(e,t){if(t>0){let n=W(e);return Math.min(...n)>=t}return!0}function G(e,t){return n=>{if(e[0]===e[1]||t[0]===t[1])return t[0];let r=(t[1]-t[0])/(e[1]-e[0]);return t[0]+r*(n-e[0])}}function re(e){return(String(e).split(`.`)[1]||``).length}function ie(e,t){let n=10**t;return Math.round(e*n)/n}var K=[`PageUp`,`PageDown`],q=[`ArrowUp`,`ArrowDown`,`ArrowLeft`,`ArrowRight`],J={"from-left":[`Home`,`PageDown`,`ArrowDown`,`ArrowLeft`],"from-right":[`Home`,`PageDown`,`ArrowDown`,`ArrowRight`],"from-bottom":[`Home`,`PageDown`,`ArrowDown`,`ArrowLeft`],"from-top":[`Home`,`PageUp`,`ArrowUp`,`ArrowLeft`]},[Y,X]=E([`SliderVertical`,`SliderHorizontal`]),ae=r({__name:`SliderHorizontal`,props:{dir:{type:String,required:!1},min:{type:Number,required:!0},max:{type:Number,required:!0},inverted:{type:Boolean,required:!0}},emits:[`slideEnd`,`slideStart`,`slideMove`,`homeKeyDown`,`endKeyDown`,`stepKeyDown`],setup(t,{emit:n}){let r=t,i=n,{max:a,min:c,dir:d,inverted:f}=p(r),{forwardRef:h,currentElement:_}=I(),v=Z(),b=u(),x=u(),S=s(()=>d?.value!==`rtl`&&!f.value||d?.value!==`ltr`&&f.value);function C(e,t){let n=x.value||_.value.getBoundingClientRect(),r=[...v.thumbElements.value][v.valueIndexToChangeRef.value],i=v.thumbAlignment.value===`contain`?r.clientWidth:0;!b.value&&!t&&v.thumbAlignment.value===`contain`&&(b.value=e.clientX-r.getBoundingClientRect().left);let o=G([0,n.width-i],S.value?[c.value,a.value]:[a.value,c.value]);return x.value=n,o(t?e.clientX-n.left-i/2:e.clientX-n.left-(b.value??0))}return X({startEdge:s(()=>S.value?`left`:`right`),endEdge:s(()=>S.value?`right`:`left`),direction:s(()=>S.value?1:-1),size:`width`}),(t,n)=>(e(),l(Q,{ref:m(h),dir:m(d),"data-orientation":`horizontal`,style:g({"--reka-slider-thumb-transform":!S.value&&m(v).thumbAlignment.value===`overflow`?`translateX(50%)`:`translateX(-50%)`}),onSlideStart:n[0]||=e=>{let t=C(e,!0);i(`slideStart`,t)},onSlideMove:n[1]||=e=>{let t=C(e);i(`slideMove`,t)},onSlideEnd:n[2]||=()=>{x.value=void 0,b.value=void 0,i(`slideEnd`)},onStepKeyDown:n[3]||=e=>{let t=S.value?`from-left`:`from-right`,n=m(J)[t].includes(e.key);i(`stepKeyDown`,e,n?-1:1)},onEndKeyDown:n[4]||=e=>i(`endKeyDown`,e),onHomeKeyDown:n[5]||=e=>i(`homeKeyDown`,e)},{default:y(()=>[o(t.$slots,`default`)]),_:3},8,[`dir`,`style`]))}}),oe=r({__name:`SliderVertical`,props:{min:{type:Number,required:!0},max:{type:Number,required:!0},inverted:{type:Boolean,required:!0}},emits:[`slideEnd`,`slideStart`,`slideMove`,`homeKeyDown`,`endKeyDown`,`stepKeyDown`],setup(t,{emit:n}){let r=t,i=n,{max:a,min:c,inverted:d}=p(r),f=Z(),{forwardRef:h,currentElement:_}=I(),v=u(),b=u(),x=s(()=>!d.value);function S(e,t){let n=b.value||_.value.getBoundingClientRect(),r=[...f.thumbElements.value][f.valueIndexToChangeRef.value],i=f.thumbAlignment.value===`contain`?r.clientHeight:0;!v.value&&!t&&f.thumbAlignment.value===`contain`&&(v.value=e.clientY-r.getBoundingClientRect().top);let o=G([0,n.height-i],x.value?[a.value,c.value]:[c.value,a.value]),s=t?e.clientY-n.top-i/2:e.clientY-n.top-(v.value??0);return b.value=n,o(s)}return X({startEdge:s(()=>x.value?`bottom`:`top`),endEdge:s(()=>x.value?`top`:`bottom`),direction:s(()=>x.value?1:-1),size:`height`}),(t,n)=>(e(),l(Q,{ref:m(h),"data-orientation":`vertical`,style:g({"--reka-slider-thumb-transform":!x.value&&m(f).thumbAlignment.value===`overflow`?`translateY(-50%)`:`translateY(50%)`}),onSlideStart:n[0]||=e=>{let t=S(e,!0);i(`slideStart`,t)},onSlideMove:n[1]||=e=>{let t=S(e);i(`slideMove`,t)},onSlideEnd:n[2]||=()=>{b.value=void 0,v.value=void 0,i(`slideEnd`)},onStepKeyDown:n[3]||=e=>{let t=x.value?`from-bottom`:`from-top`,n=m(J)[t].includes(e.key);i(`stepKeyDown`,e,n?-1:1)},onEndKeyDown:n[4]||=e=>i(`endKeyDown`,e),onHomeKeyDown:n[5]||=e=>i(`homeKeyDown`,e)},{default:y(()=>[o(t.$slots,`default`)]),_:3},8,[`style`]))}}),[Z,se]=E(`SliderRoot`),ce=r({inheritAttrs:!1,__name:`SliderRoot`,props:{defaultValue:{type:Array,required:!1,default:()=>[0]},modelValue:{type:[Array,null],required:!1},disabled:{type:Boolean,required:!1,default:!1},orientation:{type:String,required:!1,default:`horizontal`},dir:{type:String,required:!1},inverted:{type:Boolean,required:!1,default:!1},min:{type:Number,required:!1,default:0},max:{type:Number,required:!1,default:100},step:{type:Number,required:!1,default:1},minStepsBetweenThumbs:{type:Number,required:!1,default:0},thumbAlignment:{type:String,required:!1,default:`contain`},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`},name:{type:String,required:!1},required:{type:Boolean,required:!1}},emits:[`update:modelValue`,`valueCommit`],setup(r,{emit:i}){let a=r,c=i,{min:d,max:f,step:h,minStepsBetweenThumbs:g,orientation:v,disabled:b,thumbAlignment:x,dir:w}=p(a),T=C(w),{forwardRef:E,currentElement:D}=I(),O=M(D),{CollectionSlot:k}=z({isProvider:!0}),A=P(a,`modelValue`,c,{defaultValue:a.defaultValue,passive:a.modelValue===void 0}),j=s(()=>Array.isArray(A.value)?[...A.value]:[]),F=u(0),L=u(j.value);function R(e){U(e,te(j.value,e))}function V(e){U(e,F.value)}function H(){let e=L.value[F.value];j.value[F.value]!==e&&c(`valueCommit`,S(j.value))}function U(e,t,{commit:n}={commit:!1}){let r=re(h.value),i=B(ie(Math.round((e-d.value)/h.value)*h.value+d.value,r),d.value,f.value),a=ee(j.value,i,t);if(ne(a,g.value*h.value)){F.value=a.indexOf(i);let e=String(a)!==String(A.value);e&&n&&c(`valueCommit`,a),e&&(W.value[F.value]?.focus(),A.value=a)}}let W=u([]);return se({modelValue:A,currentModelValue:j,valueIndexToChangeRef:F,thumbElements:W,orientation:v,min:d,max:f,disabled:b,thumbAlignment:x}),(r,i)=>(e(),l(m(k),null,{default:y(()=>[(e(),l(t(m(v)===`horizontal`?ae:oe),_(r.$attrs,{ref:m(E),"as-child":r.asChild,as:r.as,min:m(d),max:m(f),dir:m(T),inverted:r.inverted,"aria-disabled":m(b),"data-disabled":m(b)?``:void 0,onPointerdown:i[0]||=()=>{m(b)||(L.value=j.value)},onSlideStart:i[1]||=e=>!m(b)&&R(e),onSlideMove:i[2]||=e=>!m(b)&&V(e),onSlideEnd:i[3]||=e=>!m(b)&&H(),onHomeKeyDown:i[4]||=e=>!m(b)&&U(m(d),0,{commit:!0}),onEndKeyDown:i[5]||=e=>!m(b)&&U(m(f),j.value.length-1,{commit:!0}),onStepKeyDown:i[6]||=(e,t)=>{if(!m(b)){let n=m(K).includes(e.key)||e.shiftKey&&m(q).includes(e.key)?10:1,r=F.value,i=j.value[r];U(i+m(h)*n*t,r,{commit:!0})}}}),{default:y(()=>[o(r.$slots,`default`,{modelValue:m(A)}),m(O)&&r.name?(e(),l(m(N),{key:0,type:`number`,value:m(A),name:r.name,required:r.required,disabled:m(b),step:m(h)},null,8,[`value`,`name`,`required`,`disabled`,`step`])):n(`v-if`,!0)]),_:3},16,[`as-child`,`as`,`min`,`max`,`dir`,`inverted`,`aria-disabled`,`data-disabled`]))]),_:3}))}}),Q=r({__name:`SliderImpl`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},emits:[`slideStart`,`slideMove`,`slideEnd`,`homeKeyDown`,`endKeyDown`,`stepKeyDown`],setup(t,{emit:n}){let r=t,i=n,a=Z();return(t,n)=>(e(),l(m(w),_({"data-slider-impl":``},r,{onKeydown:n[0]||=e=>{e.key===`Home`?(i(`homeKeyDown`,e),e.preventDefault()):e.key===`End`?(i(`endKeyDown`,e),e.preventDefault()):m(K).concat(m(q)).includes(e.key)&&(i(`stepKeyDown`,e),e.preventDefault())},onPointerdown:n[1]||=e=>{let t=e.target;t.setPointerCapture(e.pointerId),e.preventDefault(),m(a).thumbElements.value.includes(t)?t.focus():i(`slideStart`,e)},onPointermove:n[2]||=e=>{e.target.hasPointerCapture(e.pointerId)&&i(`slideMove`,e)},onPointerup:n[3]||=e=>{let t=e.target;t.hasPointerCapture(e.pointerId)&&(t.releasePointerCapture(e.pointerId),i(`slideEnd`,e))}}),{default:y(()=>[o(t.$slots,`default`)]),_:3},16))}}),le=r({__name:`SliderRange`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(t){let n=Z(),r=Y();I();let i=s(()=>n.currentModelValue.value.map(e=>V(e,n.min.value,n.max.value))),a=s(()=>n.currentModelValue.value.length>1?Math.min(...i.value):0),c=s(()=>100-Math.max(...i.value,0));return(t,i)=>(e(),l(m(w),{"data-disabled":m(n).disabled.value?``:void 0,"data-orientation":m(n).orientation.value,"as-child":t.asChild,as:t.as,style:g({[m(r).startEdge.value]:`${a.value}%`,[m(r).endEdge.value]:`${c.value}%`})},{default:y(()=>[o(t.$slots,`default`)]),_:3},8,[`data-disabled`,`data-orientation`,`as-child`,`as`,`style`]))}}),ue=r({inheritAttrs:!1,__name:`SliderThumbImpl`,props:{index:{type:Number,required:!0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(t){let n=t,r=Z(),i=Y(),{forwardRef:a,currentElement:u}=I(),{CollectionItem:d}=z(),p=s(()=>r.modelValue?.value?.[n.index]),h=s(()=>p.value===void 0?0:V(p.value,r.min.value??0,r.max.value??100)),g=s(()=>H(n.index,r.modelValue?.value?.length??0)),v=L(u),b=s(()=>v[i.size].value),S=s(()=>r.thumbAlignment.value===`overflow`||!b.value?0:U(b.value,h.value,i.direction.value)),C=F();return x(()=>{r.thumbElements.value.push(u.value)}),c(()=>{let e=r.thumbElements.value.findIndex(e=>e===u.value)??-1;r.thumbElements.value.splice(e,1)}),(t,n)=>(e(),l(m(d),null,{default:y(()=>[f(m(w),_(t.$attrs,{ref:m(a),role:`slider`,tabindex:m(r).disabled.value?void 0:0,"aria-label":t.$attrs[`aria-label`]||g.value,"data-disabled":m(r).disabled.value?``:void 0,"data-orientation":m(r).orientation.value,"aria-valuenow":p.value,"aria-valuemin":m(r).min.value,"aria-valuemax":m(r).max.value,"aria-orientation":m(r).orientation.value,"as-child":t.asChild,as:t.as,style:{transform:`var(--reka-slider-thumb-transform)`,position:`absolute`,[m(i).startEdge.value]:`calc(${h.value}% + ${S.value}px)`,display:!m(C)&&p.value===void 0?`none`:void 0},onFocus:n[0]||=()=>{m(r).valueIndexToChangeRef.value=t.index}}),{default:y(()=>[o(t.$slots,`default`)]),_:3},16,[`tabindex`,`aria-label`,`data-disabled`,`data-orientation`,`aria-valuenow`,`aria-valuemin`,`aria-valuemax`,`aria-orientation`,`as-child`,`as`,`style`])]),_:3}))}}),$=r({__name:`SliderThumb`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(t){let n=t,{getItems:r}=z(),{forwardRef:i,currentElement:a}=I(),c=s(()=>a.value?r(!0).findIndex(e=>e.ref===a.value):-1);return(t,r)=>(e(),l(ue,_({ref:m(i)},n,{index:c.value}),{default:y(()=>[o(t.$slots,`default`)]),_:3},16,[`index`]))}}),de=r({__name:`SliderTrack`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(t){let n=Z();return I(),(t,r)=>(e(),l(m(w),{"as-child":t.asChild,as:t.as,"data-disabled":m(n).disabled.value?``:void 0,"data-orientation":m(n).orientation.value},{default:y(()=>[o(t.$slots,`default`)]),_:3},8,[`as-child`,`as`,`data-disabled`,`data-orientation`]))}}),fe={slots:{root:`relative flex items-center select-none touch-none`,track:`relative bg-accented overflow-hidden rounded-full grow`,range:`absolute rounded-full`,thumb:`rounded-full bg-default ring-2 focus-visible:outline-3 focus-visible:outline-offset-2`},variants:{color:{primary:{range:`bg-primary`,thumb:`ring-primary outline-primary/25`},secondary:{range:`bg-secondary`,thumb:`ring-secondary outline-secondary/25`},success:{range:`bg-success`,thumb:`ring-success outline-success/25`},info:{range:`bg-info`,thumb:`ring-info outline-info/25`},warning:{range:`bg-warning`,thumb:`ring-warning outline-warning/25`},error:{range:`bg-error`,thumb:`ring-error outline-error/25`},neutral:{range:`bg-inverted`,thumb:`ring-inverted outline-inverted/25`}},size:{xs:{thumb:`size-3`},sm:{thumb:`size-3.5`},md:{thumb:`size-4`},lg:{thumb:`size-4.5`},xl:{thumb:`size-5`}},orientation:{horizontal:{root:`w-full`,range:`h-full`},vertical:{root:`flex-col h-full`,range:`w-full`}},disabled:{true:{root:`opacity-75 cursor-not-allowed`}}},compoundVariants:[{orientation:`horizontal`,size:`xs`,class:{track:`h-[6px]`}},{orientation:`horizontal`,size:`sm`,class:{track:`h-[7px]`}},{orientation:`horizontal`,size:`md`,class:{track:`h-[8px]`}},{orientation:`horizontal`,size:`lg`,class:{track:`h-[9px]`}},{orientation:`horizontal`,size:`xl`,class:{track:`h-[10px]`}},{orientation:`vertical`,size:`xs`,class:{track:`w-[6px]`}},{orientation:`vertical`,size:`sm`,class:{track:`w-[7px]`}},{orientation:`vertical`,size:`md`,class:{track:`w-[8px]`}},{orientation:`vertical`,size:`lg`,class:{track:`w-[9px]`}},{orientation:`vertical`,size:`xl`,class:{track:`w-[10px]`}}],defaultVariants:{size:`md`,color:`primary`}},pe={__name:`USlider`,props:v({as:{type:null,required:!1},size:{type:null,required:!1},color:{type:null,required:!1},orientation:{type:null,required:!1,default:`horizontal`},tooltip:{type:[Boolean,Object],required:!1},defaultValue:{type:[Number,Array],required:!1},class:{type:null,required:!1},ui:{type:Object,required:!1},name:{type:String,required:!1},disabled:{type:Boolean,required:!1},inverted:{type:Boolean,required:!1},min:{type:Number,required:!1,default:0},max:{type:Number,required:!1,default:100},step:{type:Number,required:!1,default:1},minStepsBetweenThumbs:{type:Number,required:!1}},{modelValue:{type:null},modelModifiers:{}}),emits:v([`change`],[`update:modelValue`]),setup(t,{emit:n}){let r=t,o=n,c=D(`slider`,r),u=h(t,`modelValue`),p=j(),g=A(T(c,`as`,`orientation`,`min`,`max`,`step`,`minStepsBetweenThumbs`,`inverted`),o),{id:v,emitFormChange:x,emitFormInput:S,size:C,color:w,name:E,disabled:M,ariaAttrs:N}=O(r),P=s(()=>typeof c.defaultValue==`number`?[c.defaultValue]:c.defaultValue),F=s({get(){return typeof u.value==`number`?[u.value]:u.value??P.value},set(e){u.value=e?.length===1?e[0]:e}}),I=s(()=>F.value?.length??1),L=s(()=>k({extend:fe,...p.ui?.slider||{}})({disabled:M.value,size:C.value??c.size,color:w.value??c.color,orientation:c.orientation}));function z(e){let t=new Event(`change`,{target:{value:e}});o(`change`,t),x()}return(t,n)=>(e(),l(m(ce),_({...m(g),...m(N)},{id:m(v),modelValue:F.value,"onUpdate:modelValue":[n[0]||=e=>F.value=e,n[1]||=e=>m(S)()],name:m(E),disabled:m(M),"data-slot":`root`,class:L.value.root({class:[m(c).ui?.root,m(c).class]}),"default-value":P.value,onValueCommit:z}),{default:y(()=>[f(m(de),{"data-slot":`track`,class:b(L.value.track({class:m(c).ui?.track}))},{default:y(()=>[f(m(le),{"data-slot":`range`,class:b(L.value.range({class:m(c).ui?.range}))},null,8,[`class`])]),_:1},8,[`class`]),(e(!0),i(d,null,a(I.value,t=>(e(),i(d,{key:t},[m(c).tooltip?(e(),l(R,_({key:0,text:I.value>1?String(F.value?.[t-1]):String(F.value),"disable-closing-trigger":``},{ref_for:!0},typeof m(c).tooltip==`object`?m(c).tooltip:{}),{default:y(()=>[f(m($),{"data-slot":`thumb`,class:b(L.value.thumb({class:m(c).ui?.thumb})),"aria-label":I.value===1?`Thumb`:`Thumb ${t} of ${I.value}`},null,8,[`class`,`aria-label`])]),_:2},1040,[`text`])):(e(),l(m($),{key:1,"data-slot":`thumb`,class:b(L.value.thumb({class:m(c).ui?.thumb})),"aria-label":I.value===1?`Thumb`:`Thumb ${t} of ${I.value}`},null,8,[`class`,`aria-label`]))],64))),128))]),_:1},16,[`id`,`modelValue`,`name`,`disabled`,`class`,`default-value`]))}};export{pe as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{$t as e,At as t,Bn as n,Bt as r,F as i,G as a,H as o,I as s,It as c,Lt as l,M as u,Mn as d,P as f,Pn as p,S as m,U as h,Wn as g,_r as _,an as v,gt as y,hr as b,in as x,ln as S,pr as C,qt as w,tt as T,wt as E}from"./C97TfNgP.js";import{Yt as D,ot as O}from"./CgMd2Y5s.js";import{o as k}from"./zZ1EGR7Y.js";import{D as A,K as j,L as M,P as ee,Z as te,at as N,b as P,d as ne,k as re,q as ie,tt as ae,v as F,y as oe}from"./ByRlKR9F.js";import{o as I}from"./BQlj8Xoe.js";import{a as L,i as R,n as z,r as B,s as V}from"./Oxy7pKSk.js";import{c as H,h as U,t as W}from"./Dz7VMlHR.js";import{i as G,n as K,o as q,r as se,t as ce}from"./BrPwntMr.js";import{i as J}from"#entry";function le(e,t){let n=ie(!1,300);te(()=>{n.value=!1});let r=p(null),i=ee();function a(){r.value=null,n.value=!1}function o(e,t){if(!t)return;let i=e.currentTarget,a={x:e.clientX,y:e.clientY},o=de(a,ue(a,i.getBoundingClientRect()),1),s=fe(t.getBoundingClientRect()),c=me([...o,...s]);r.value=c,n.value=!0}return v(n=>{if(e.value&&t.value){let r=e=>o(e,t.value),i=t=>o(t,e.value);e.value.addEventListener(`pointerleave`,r),t.value.addEventListener(`pointerleave`,i),n(()=>{e.value?.removeEventListener(`pointerleave`,r),t.value?.removeEventListener(`pointerleave`,i)})}}),v(n=>{if(r.value){let o=n=>{if(!r.value||!(n.target instanceof Element))return;let o=n.target,s={x:n.clientX,y:n.clientY},c=e.value?.contains(o)||t.value?.contains(o),l=!pe(s,r.value),u=!!o.closest(`[data-grace-area-trigger]`);c?a():(l||u)&&(a(),i.trigger())};e.value?.ownerDocument.addEventListener(`pointermove`,o),n(()=>e.value?.ownerDocument.removeEventListener(`pointermove`,o))}}),{isPointerInTransit:n,onPointerExit:i.on}}function ue(e,t){let n=Math.abs(t.top-e.y),r=Math.abs(t.bottom-e.y),i=Math.abs(t.right-e.x),a=Math.abs(t.left-e.x);switch(Math.min(n,r,i,a)){case a:return`left`;case i:return`right`;case n:return`top`;case r:return`bottom`;default:throw Error(`unreachable`)}}function de(e,t,n=5){let r=[];switch(t){case`top`:r.push({x:e.x-n,y:e.y+n},{x:e.x+n,y:e.y+n});break;case`bottom`:r.push({x:e.x-n,y:e.y-n},{x:e.x+n,y:e.y-n});break;case`left`:r.push({x:e.x+n,y:e.y-n},{x:e.x+n,y:e.y+n});break;case`right`:r.push({x:e.x-n,y:e.y-n},{x:e.x-n,y:e.y+n})}return r}function fe(e){let{top:t,right:n,bottom:r,left:i}=e;return[{x:i,y:t},{x:n,y:t},{x:n,y:r},{x:i,y:r}]}function pe(e,t){let{x:n,y:r}=e,i=!1;for(let e=0,a=t.length-1;e<t.length;a=e++){let o=t[e].x,s=t[e].y,c=t[a].x,l=t[a].y;s>r!=l>r&&n<(c-o)*(r-s)/(l-s)+o&&(i=!i)}return i}function me(e){let t=e.slice();return t.sort((e,t)=>e.x<t.x?-1:e.x>t.x?1:e.y<t.y?-1:+(e.y>t.y)),he(t)}function he(e){if(e.length<=1)return e.slice();let t=[];for(let n=0;n<e.length;n++){let r=e[n];for(;t.length>=2;){let e=t.at(-1),n=t[t.length-2];if((e.x-n.x)*(r.y-n.y)>=(e.y-n.y)*(r.x-n.x))t.pop();else break}t.push(r)}t.pop();let n=[];for(let t=e.length-1;t>=0;t--){let r=e[t];for(;n.length>=2;){let e=n.at(-1),t=n[n.length-2];if((e.x-t.x)*(r.y-t.y)>=(e.y-t.y)*(r.x-t.x))n.pop();else break}n.push(r)}return n.pop(),t.length===1&&n.length===1&&t[0].x===n[0].x&&t[0].y===n[0].y?t:t.concat(n)}var ge=a({__name:`TooltipArrow`,props:{width:{type:Number,required:!1,default:10},height:{type:Number,required:!1,default:5},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`svg`}},setup(e){let n=e;return W(),(e,r)=>(t(),f(g(ce),b(T(n)),{default:S(()=>[l(e.$slots,`default`)]),_:3},16))}}),Y=`tooltip.open`,[X,_e]=N(`TooltipRoot`),ve=a({__name:`TooltipRoot`,props:{defaultOpen:{type:Boolean,required:!1,default:!1},open:{type:Boolean,required:!1,default:void 0},delayDuration:{type:Number,required:!1,default:void 0},disableHoverableContent:{type:Boolean,required:!1,default:void 0},disableClosingTrigger:{type:Boolean,required:!1,default:void 0},disabled:{type:Boolean,required:!1,default:void 0},ignoreNonKeyboardFocus:{type:Boolean,required:!1,default:void 0}},emits:[`update:open`],setup(e,{emit:n}){let r=e,i=n;W();let a=J(),o=u(()=>r.disableHoverableContent??a.disableHoverableContent.value),s=u(()=>r.disableClosingTrigger??a.disableClosingTrigger.value),c=u(()=>r.disabled??a.disabled.value),d=u(()=>r.delayDuration??a.delayDuration.value),m=u(()=>r.ignoreNonKeyboardFocus??a.ignoreNonKeyboardFocus.value),h=U(r,`open`,i,{defaultValue:r.defaultOpen,passive:r.open===void 0});x(h,e=>{a.onClose&&(e?(a.onOpen(),document.dispatchEvent(new CustomEvent(Y))):a.onClose())});let _=p(!1),v=p(),y=u(()=>h.value?_.value?`delayed-open`:`instant-open`:`closed`),{start:b,stop:C}=ae(()=>{_.value=!0,h.value=!0},d,{immediate:!1});function w(){C(),_.value=!1,h.value=!0}function T(){C(),h.value=!1}function E(){b()}return _e({contentId:``,open:h,stateAttribute:y,trigger:v,onTriggerChange(e){v.value=e},onTriggerEnter(){a.isOpenDelayed.value?E():w()},onTriggerLeave(){o.value?T():C()},onOpen:w,onClose:T,disableHoverableContent:o,disableClosingTrigger:s,disabled:c,ignoreNonKeyboardFocus:m}),(e,n)=>(t(),f(g(G),null,{default:S(()=>[l(e.$slots,`default`,{open:g(h)})]),_:3}))}}),Z=a({__name:`TooltipContentImpl`,props:{ariaLabel:{type:String,required:!1},asChild:{type:Boolean,required:!1,default:void 0},as:{type:null,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},avoidCollisions:{type:Boolean,required:!1,default:void 0},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1,default:void 0},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`],setup(e,{emit:n}){let r=e,i=n,a=X(),s=J(),{forwardRef:c,currentElement:d}=W(),p=u(()=>r.ariaLabel||d.value?.textContent),m=u(()=>{let{ariaLabel:e,...t}=r;return O(t,s.content.value??{},{side:`top`,sideOffset:0,align:`center`,avoidCollisions:!0,collisionBoundary:[],collisionPadding:0,arrowPadding:0,sticky:`partial`,hideWhenDetached:!1})});return E(()=>{H(window,`scroll`,e=>{e.target?.contains(a.trigger.value)&&a.onClose()},{capture:!0}),H(window,Y,a.onClose)}),(e,n)=>(t(),f(g(L),{"as-child":``,"disable-outside-pointer-events":!1,onEscapeKeyDown:n[0]||=e=>i(`escapeKeyDown`,e),onPointerDownOutside:n[1]||=e=>{g(a).disableClosingTrigger.value&&g(a).trigger.value?.contains(e.target)&&e.preventDefault(),i(`pointerDownOutside`,e)},onFocusOutside:n[2]||=D(()=>{},[`prevent`]),onDismiss:n[3]||=e=>g(a).onClose()},{default:S(()=>[h(g(K),y({ref:g(c),"data-state":g(a).stateAttribute.value},{...e.$attrs,...m.value},{style:{"--reka-tooltip-content-transform-origin":`var(--reka-popper-transform-origin)`,"--reka-tooltip-content-available-width":`var(--reka-popper-available-width)`,"--reka-tooltip-content-available-height":`var(--reka-popper-available-height)`,"--reka-tooltip-trigger-width":`var(--reka-popper-anchor-width)`,"--reka-tooltip-trigger-height":`var(--reka-popper-anchor-height)`}}),{default:S(()=>[l(e.$slots,`default`),h(g(B),{id:g(a).contentId,role:`tooltip`},{default:S(()=>[o(_(p.value),1)]),_:1},8,[`id`])]),_:3},16,[`data-state`])]),_:3}))}}),ye=a({__name:`TooltipContentHoverable`,props:{ariaLabel:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1}},setup(e){let n=re(e),{forwardRef:r,currentElement:i}=W(),{trigger:a,onClose:o}=X(),s=J(),{isPointerInTransit:c,onPointerExit:u}=le(a,i);return s.isPointerInTransitRef=c,u(()=>{o()}),(e,i)=>(t(),f(Z,y({ref:g(r)},g(n)),{default:S(()=>[l(e.$slots,`default`)]),_:3},16))}}),be=a({__name:`TooltipContent`,props:{forceMount:{type:Boolean,required:!1},ariaLabel:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`],setup(e,{emit:n}){let i=e,a=n,o=X(),s=q(i,a),{forwardRef:c}=W();return(e,n)=>(t(),f(g(V),{present:e.forceMount||g(o).open.value},{default:S(()=>[(t(),f(r(g(o).disableHoverableContent.value?Z:ye),y({ref:g(c)},g(s)),{default:S(()=>[l(e.$slots,`default`)]),_:3},16))]),_:3},8,[`present`]))}}),xe=a({__name:`TooltipPortal`,props:{to:{type:null,required:!1},disabled:{type:Boolean,required:!1},defer:{type:Boolean,required:!1},forceMount:{type:Boolean,required:!1}},setup(e){let n=e;return(e,r)=>(t(),f(g(R),b(T(n)),{default:S(()=>[l(e.$slots,`default`)]),_:3},16))}}),Se=a({__name:`TooltipTrigger`,props:{reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`button`}},setup(e){let n=e,r=X(),i=J();r.contentId||=k(void 0,`reka-tooltip-content`);let{forwardRef:a,currentElement:o}=W(),s=p(!1),c=p(!1),d=u(()=>r.disabled.value?{}:{click:T,focus:x,pointermove:v,pointerleave:b,pointerdown:_,blur:C});E(()=>{r.onTriggerChange(o.value)});function m(){setTimeout(()=>{s.value=!1},1)}function _(){r.open&&!r.disableClosingTrigger.value&&r.onClose(),s.value=!0,document.addEventListener(`pointerup`,m,{once:!0})}function v(e){e.pointerType!==`touch`&&!c.value&&!i.isPointerInTransitRef.value&&(r.onTriggerEnter(),c.value=!0)}function b(){r.onTriggerLeave(),c.value=!1}function x(e){s.value||r.ignoreNonKeyboardFocus.value&&!e.target.matches?.(`:focus-visible`)||r.onOpen()}function C(){r.onClose()}function T(){r.disableClosingTrigger.value||r.onClose()}return(e,i)=>(t(),f(g(se),{"as-child":``,reference:e.reference},{default:S(()=>[h(g(A),y({ref:g(a),"aria-describedby":g(r).open.value?g(r).contentId:void 0,"data-state":g(r).stateAttribute.value,as:e.as,"as-child":n.asChild,"data-grace-area-trigger":``},w(d.value)),{default:S(()=>[l(e.$slots,`default`)]),_:3},16,[`aria-describedby`,`data-state`,`as`,`as-child`])]),_:3},8,[`reference`]))}}),Q={meta:``,ctrl:``,alt:``,win:`⊞`,command:`⌘`,shift:`⇧`,control:`⌃`,option:`⌥`,enter:`↵`,delete:`⌦`,backspace:`⌫`,escape:`Esc`,tab:`⇥`,capslock:`⇪`,arrowup:`↑`,arrowright:`→`,arrowdown:`↓`,arrowleft:`←`,pageup:`⇞`,pagedown:`⇟`,home:`↖`,end:`↘`},Ce=M(()=>{let e=u(()=>navigator&&navigator.userAgent&&navigator.userAgent.match(/Macintosh;/)),t=d({meta:` `,alt:` `,ctrl:` `});E(()=>{t.meta=e.value?Q.command:`Ctrl`,t.ctrl=e.value?Q.control:`Ctrl`,t.alt=e.value?Q.option:`Alt`});function n(e){if(e)return[`meta`,`alt`,`ctrl`].includes(e)?t[e]:Q[e]||e}return{macOS:e,getKbdKey:n}}),$={base:`inline-flex items-center justify-center px-1 rounded-sm font-medium font-sans uppercase`,variants:{color:{primary:``,secondary:``,success:``,info:``,warning:``,error:``,neutral:``},variant:{solid:``,outline:``,soft:``,subtle:``},size:{sm:`h-4 min-w-[16px] text-[10px]`,md:`h-5 min-w-[20px] text-[11px]`,lg:`h-6 min-w-[24px] text-[12px]`}},compoundVariants:[{color:`primary`,variant:`solid`,class:`text-inverted bg-primary`},{color:`secondary`,variant:`solid`,class:`text-inverted bg-secondary`},{color:`success`,variant:`solid`,class:`text-inverted bg-success`},{color:`info`,variant:`solid`,class:`text-inverted bg-info`},{color:`warning`,variant:`solid`,class:`text-inverted bg-warning`},{color:`error`,variant:`solid`,class:`text-inverted bg-error`},{color:`primary`,variant:`outline`,class:`ring ring-inset ring-primary/50 text-primary`},{color:`secondary`,variant:`outline`,class:`ring ring-inset ring-secondary/50 text-secondary`},{color:`success`,variant:`outline`,class:`ring ring-inset ring-success/50 text-success`},{color:`info`,variant:`outline`,class:`ring ring-inset ring-info/50 text-info`},{color:`warning`,variant:`outline`,class:`ring ring-inset ring-warning/50 text-warning`},{color:`error`,variant:`outline`,class:`ring ring-inset ring-error/50 text-error`},{color:`primary`,variant:`soft`,class:`text-primary bg-primary/10`},{color:`secondary`,variant:`soft`,class:`text-secondary bg-secondary/10`},{color:`success`,variant:`soft`,class:`text-success bg-success/10`},{color:`info`,variant:`soft`,class:`text-info bg-info/10`},{color:`warning`,variant:`soft`,class:`text-warning bg-warning/10`},{color:`error`,variant:`soft`,class:`text-error bg-error/10`},{color:`primary`,variant:`subtle`,class:`text-primary ring ring-inset ring-primary/25 bg-primary/10`},{color:`secondary`,variant:`subtle`,class:`text-secondary ring ring-inset ring-secondary/25 bg-secondary/10`},{color:`success`,variant:`subtle`,class:`text-success ring ring-inset ring-success/25 bg-success/10`},{color:`info`,variant:`subtle`,class:`text-info ring ring-inset ring-info/25 bg-info/10`},{color:`warning`,variant:`subtle`,class:`text-warning ring ring-inset ring-warning/25 bg-warning/10`},{color:`error`,variant:`subtle`,class:`text-error ring ring-inset ring-error/25 bg-error/10`},{color:`neutral`,variant:`solid`,class:`text-inverted bg-inverted`},{color:`neutral`,variant:`outline`,class:`ring ring-inset ring-accented text-default bg-default`},{color:`neutral`,variant:`soft`,class:`text-default bg-elevated`},{color:`neutral`,variant:`subtle`,class:`ring ring-inset ring-accented text-default bg-elevated`}],defaultVariants:{variant:`outline`,color:`neutral`,size:`md`}},we={__name:`UKbd`,props:{as:{type:null,required:!1,default:`kbd`},value:{type:null,required:!1},color:{type:null,required:!1},variant:{type:null,required:!1},size:{type:null,required:!1},class:{type:null,required:!1},ui:{type:Object,required:!1}},setup(e){let n=P(`kbd`,e),{getKbdKey:r}=Ce(),i=I(),a=u(()=>F({extend:$,...i.ui?.kbd||{}}));return(e,i)=>(t(),f(g(A),{as:g(n).as,class:C(a.value({class:[g(n).ui?.base,g(n).class],color:g(n).color,variant:g(n).variant,size:g(n).size}))},{default:S(()=>[l(e.$slots,`default`,{},()=>[o(_(g(r)(g(n).value)),1)])]),_:3},8,[`as`,`class`]))}},Te={slots:{content:`flex items-center gap-1 bg-default text-highlighted shadow-sm rounded-sm ring ring-default h-6 px-2.5 py-1 text-xs select-none data-[state=delayed-open]:animate-[scale-in_100ms_ease-out] data-[state=closed]:animate-[scale-out_100ms_ease-in] origin-(--reka-tooltip-content-transform-origin) pointer-events-auto`,arrow:`fill-bg stroke-default`,text:`truncate`,kbds:`hidden lg:inline-flex items-center shrink-0 gap-0.5 not-first-of-type:before:content-['·'] not-first-of-type:before:me-0.5`,kbdsSize:`sm`}},Ee={__name:`UTooltip`,props:{text:{type:String,required:!1},kbds:{type:Array,required:!1},content:{type:Object,required:!1},arrow:{type:[Boolean,Object],required:!1},portal:{type:[Boolean,String],required:!1,skipCheck:!0,default:!0},reference:{type:null,required:!1},class:{type:null,required:!1},ui:{type:Object,required:!1},defaultOpen:{type:Boolean,required:!1},open:{type:Boolean,required:!1},delayDuration:{type:Number,required:!1},disableHoverableContent:{type:Boolean,required:!1},disableClosingTrigger:{type:Boolean,required:!1},disabled:{type:Boolean,required:!1},ignoreNonKeyboardFocus:{type:Boolean,required:!1}},emits:[`update:open`],setup(r,{emit:a}){let o=r,d=a,p=e(),v=P(`tooltip`,o),x=I(),w=J(),E=oe(j(v,`defaultOpen`,`open`,`delayDuration`,`disableHoverableContent`,`disableClosingTrigger`,`ignoreNonKeyboardFocus`),d),D=z(n(()=>v.portal)),k=n(()=>O(v.content,w.content.value,{side:`bottom`,sideOffset:8,collisionPadding:8})),A=n(()=>O(v.arrow,{rounded:!0})),M=u(()=>F({extend:Te,...x.ui?.tooltip||{}})({side:k.value.side}));return(e,n)=>(t(),f(g(ve),y(g(E),{disabled:!(g(v).text||g(v).kbds?.length||p.content)||g(v).disabled}),{default:S(({open:n})=>[p.default||g(v).reference?(t(),f(g(Se),y({key:0},e.$attrs,{"as-child":``,reference:g(v).reference,class:g(v).class}),{default:S(()=>[l(e.$slots,`default`,{open:n})]),_:2},1040,[`reference`,`class`])):i(``,!0),h(g(xe),b(T(g(D))),{default:S(()=>[h(g(ne),null,{default:S(()=>[h(g(be),y(k.value,{"data-slot":`content`,class:M.value.content({class:[!p.default&&g(v).class,g(v).ui?.content]})}),{default:S(()=>[l(e.$slots,`content`,{ui:M.value},()=>[g(v).text?(t(),s(`span`,{key:0,"data-slot":`text`,class:C(M.value.text({class:g(v).ui?.text}))},_(g(v).text),3)):i(``,!0),g(v).kbds?.length?(t(),s(`span`,{key:1,"data-slot":`kbds`,class:C(M.value.kbds({class:g(v).ui?.kbds}))},[(t(!0),s(m,null,c(g(v).kbds,(e,n)=>(t(),f(we,y({key:n,size:g(v).ui?.kbdsSize||M.value.kbdsSize()},{ref_for:!0},typeof e==`string`?{value:e}:e),null,16,[`size`]))),128))],2)):i(``,!0)]),g(v).arrow?(t(),f(g(ge),y({key:0},A.value,{"data-slot":`arrow`,class:M.value.arrow({class:g(v).ui?.arrow})}),null,16,[`class`])):i(``,!0)]),_:3},16,[`class`])]),_:3})]),_:3},16)]),_:3},16,[`disabled`]))}};export{Ee as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{At as e,G as t,I as n,N as r,P as i,Pn as a,U as o,Wn as s,_r as c,in as l}from"./C97TfNgP.js";import{_ as u}from"./ByRlKR9F.js";import{t as d}from"./DmN-PKW1.js";import{r as f,t as p}from"./DkcySee1.js";import{t as m}from"./DtFVCXI9.js";var h={key:0,class:`grid h-full min-h-[360px] place-items-center`},g={class:`flex flex-col items-center gap-3 text-sm text-muted`},_={key:1,class:`flex h-full min-h-0 flex-col`},v={class:`grid grid-cols-2 border-b border-default bg-elevated sm:grid-cols-4`},y={class:`px-5 py-3`},b={class:`mt-1 truncate text-sm font-medium`},x={class:`border-l border-default px-5 py-3`},S={class:`uom-mono mt-1 text-sm`},C={class:`border-l border-default px-5 py-3`},w={class:`mt-1 text-sm`},T={class:`relative min-h-[480px] flex-1`},E={key:2,class:`grid h-full min-h-[360px] place-items-center`},D=t({__name:`index`,setup(t){let D=f(),O=d(`tasks-base-map`,()=>`tianditu`),k=a(0);return l(()=>D.selected.value?.summary,()=>{k.value=Date.now()}),(t,a)=>{let l=u,d=m,f=p;return s(D).ready.value?s(D).selected.value?.kind===`uomtiles`?(e(),n(`div`,_,[r(`div`,v,[r(`div`,y,[a[1]||=r(`p`,{class:`text-xs text-muted`},`工作文件`,-1),r(`p`,b,c(s(D).displayWorkspaceName(s(D).selected.value.filename)),1)]),r(`div`,x,[a[2]||=r(`p`,{class:`text-xs text-muted`},`抓取进度`,-1),r(`p`,S,c(s(D).selected.value.summary?.roots.completed||0)+` / 6030`,1)]),a[4]||=r(`div`,{class:`border-l border-default px-5 py-3`},[r(`p`,{class:`text-xs text-muted`},`源瓦片层级`),r(`p`,{class:`uom-mono mt-1 text-sm`},`z12`)],-1),r(`div`,C,[a[3]||=r(`p`,{class:`text-xs text-muted`},`发布者`,-1),r(`p`,w,c(s(D).selected.value.summary?.publisher||`未记录`),1)])]),r(`div`,T,[(e(),i(d,{key:s(D).selected.value.filename,"tile-url":`/api/workspace/${encodeURIComponent(s(D).selected.value.filename)}/tile?z={z}&x={x}&y={y}`,"base-map":s(O),"min-zoom":0,"map-min-zoom":3,"max-zoom":18,"map-max-zoom":24,"refresh-version":s(k),"raster-resampling":`nearest`},null,8,[`tile-url`,`base-map`,`refresh-version`]))])])):(e(),n(`div`,E,[o(f,{icon:`i-lucide-file-up`,title:`尚未选择任务文件`})])):(e(),n(`div`,h,[r(`div`,g,[o(l,{name:`i-lucide-loader-circle`,class:`size-5 animate-spin text-primary`}),a[0]||=r(`span`,null,`加载任务`,-1)])]))}}});export{D as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{At as e,G as t,I as n,In as r,Ln as i,Lt as a,M as o,Ot as s,P as c,Pn as l,U as u,Wn as d,an as f,fn as p,gr as m,gt as h,in as g,kn as _,ln as v,mt as y,on as b,wt as x,xn as S}from"./C97TfNgP.js";import{s as C}from"./zZ1EGR7Y.js";import{A as w,D as T,at as E,k as D}from"./ByRlKR9F.js";import{a as O,t as k}from"./Dz7VMlHR.js";function A(e,t){let n=D(e),r=t?w(t):{};return o(()=>({...n.value,...r}))}function ee(e){let t=l(),n=o(()=>t.value?.width??0),r=o(()=>t.value?.height??0),i;return x(()=>{let n=O(e);n?(t.value={width:n.offsetWidth,height:n.offsetHeight},i=new ResizeObserver(e=>{if(!Array.isArray(e)||!e.length)return;let r=e[0],i,a;if(`borderBoxSize`in r){let e=r.borderBoxSize,t=Array.isArray(e)?e[0]:e;i=t.inlineSize,a=t.blockSize}else i=n.offsetWidth,a=n.offsetHeight;t.value={width:i,height:a}}),i.observe(n,{box:`border-box`})):t.value=void 0}),s(()=>{i?.disconnect(),i=void 0}),{width:n,height:r}}var[te,j]=E(`PopperRoot`),ne=t({inheritAttrs:!1,__name:`PopperRoot`,setup(e){let t=l();return j({anchor:t,onAnchorChange:e=>t.value=e}),(e,t)=>a(e.$slots,`default`)}}),re=t({__name:`PopperAnchor`,props:{reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(t){let n=t,{forwardRef:r,currentElement:i}=k(),o=te();return b(()=>{o.onAnchorChange(n.reference??i.value)}),(t,n)=>(e(),c(d(T),{ref:d(r),as:t.as,"as-child":t.asChild},{default:v(()=>[a(t.$slots,`default`)]),_:3},8,[`as`,`as-child`]))}}),ie={key:0,d:`M0 0L6 6L12 0`},ae={key:1,d:`M0 0L4.58579 4.58579C5.36683 5.36683 6.63316 5.36684 7.41421 4.58579L12 0`},M=t({__name:`Arrow`,props:{width:{type:Number,required:!1,default:10},height:{type:Number,required:!1,default:5},rounded:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`svg`}},setup(t){let r=t;return k(),(t,i)=>(e(),c(d(T),h(r,{width:t.width,height:t.height,viewBox:t.asChild?void 0:`0 0 12 6`,preserveAspectRatio:t.asChild?void 0:`none`}),{default:v(()=>[a(t.$slots,`default`,{},()=>[t.rounded?(e(),n(`path`,ae)):(e(),n(`path`,ie))])]),_:3},16,[`width`,`height`,`viewBox`,`preserveAspectRatio`]))}});function oe(e){return e!==null}function se(e){return{name:`transformOrigin`,options:e,fn(t){let{placement:n,rects:r,middlewareData:i}=t,a=i.arrow?.centerOffset!==0,o=a?0:e.arrowWidth,s=a?0:e.arrowHeight,[c,l]=ce(n),u={start:e.dir===`rtl`?`100%`:`0%`,center:`50%`,end:e.dir===`rtl`?`0%`:`100%`}[l],d={start:`0%`,center:`50%`,end:`100%`}[l],f=(i.arrow?.x??0)+o/2,p=(i.arrow?.y??0)+s/2,m=``,h=``;return c===`bottom`?(m=a?u:`${f}px`,h=`${-s}px`):c===`top`?(m=a?u:`${f}px`,h=`${r.floating.height+s}px`):c===`right`?(m=`${-s}px`,h=a?d:`${p}px`):c===`left`&&(m=`${r.floating.width+s}px`,h=a?d:`${p}px`),{data:{x:m,y:h}}}}}function ce(e){let[t,n=`center`]=e.split(`-`);return[t,n]}var N=[`top`,`right`,`bottom`,`left`],P=Math.min,F=Math.max,I=Math.round,L=Math.floor,R=e=>({x:e,y:e}),le={left:`right`,right:`left`,bottom:`top`,top:`bottom`};function ue(e,t,n){return F(e,P(t,n))}function z(e,t){return typeof e==`function`?e(t):e}function B(e){return e.split(`-`)[0]}function V(e){return e.split(`-`)[1]}function de(e){return e===`x`?`y`:`x`}function fe(e){return e===`y`?`height`:`width`}function H(e){let t=e[0];return t===`t`||t===`b`?`y`:`x`}function pe(e){return de(H(e))}function me(e,t,n){n===void 0&&(n=!1);let r=V(e),i=pe(e),a=fe(i),o=i===`x`?r===(n?`end`:`start`)?`right`:`left`:r===`start`?`bottom`:`top`;return t.reference[a]>t.floating[a]&&(o=Ce(o)),[o,Ce(o)]}function he(e){let t=Ce(e);return[ge(e),t,ge(t)]}function ge(e){return e.includes(`start`)?e.replace(`start`,`end`):e.replace(`end`,`start`)}var _e=[`left`,`right`],ve=[`right`,`left`],ye=[`top`,`bottom`],be=[`bottom`,`top`];function xe(e,t,n){switch(e){case`top`:case`bottom`:return n?t?ve:_e:t?_e:ve;case`left`:case`right`:return t?ye:be;default:return[]}}function Se(e,t,n,r){let i=V(e),a=xe(B(e),n===`start`,r);return i&&(a=a.map(e=>e+`-`+i),t&&(a=a.concat(a.map(ge)))),a}function Ce(e){let t=B(e);return le[t]+e.slice(t.length)}function we(e){return{top:e.top??0,right:e.right??0,bottom:e.bottom??0,left:e.left??0}}function Te(e){return typeof e==`number`?{top:e,right:e,bottom:e,left:e}:we(e)}function Ee(e){let{x:t,y:n,width:r,height:i}=e;return{width:r,height:i,top:n,left:t,right:t+r,bottom:n+i,x:t,y:n}}function De(e,t,n){let{reference:r,floating:i}=e,a=H(t),o=pe(t),s=fe(o),c=B(t),l=a===`y`,u=r.x+r.width/2-i.width/2,d=r.y+r.height/2-i.height/2,f=r[s]/2-i[s]/2,p;switch(c){case`top`:p={x:u,y:r.y-i.height};break;case`bottom`:p={x:u,y:r.y+r.height};break;case`right`:p={x:r.x+r.width,y:d};break;case`left`:p={x:r.x-i.width,y:d};break;default:p={x:r.x,y:r.y}}let m=V(t);return m&&(p[o]+=f*(m===`end`?1:-1)*(n&&l?-1:1)),p}async function Oe(e,t){t===void 0&&(t={});let{x:n,y:r,platform:i,rects:a,elements:o,strategy:s}=e,{boundary:c=`clippingAncestors`,rootBoundary:l=`viewport`,elementContext:u=`floating`,altBoundary:d=!1,padding:f=0}=z(t,e),p=Te(f),m=o[d?u===`floating`?`reference`:`floating`:u],h=Ee(await i.getClippingRect({element:await(i.isElement==null?void 0:i.isElement(m))??!0?m:m.contextElement||await(i.getDocumentElement==null?void 0:i.getDocumentElement(o.floating)),boundary:c,rootBoundary:l,strategy:s})),g=u===`floating`?{x:n,y:r,width:a.floating.width,height:a.floating.height}:a.reference,_=await(i.getOffsetParent==null?void 0:i.getOffsetParent(o.floating)),v=await(i.isElement==null?void 0:i.isElement(_))&&await(i.getScale==null?void 0:i.getScale(_))||{x:1,y:1},y=Ee(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({elements:o,rect:g,offsetParent:_,strategy:s}):g);return{top:(h.top-y.top+p.top)/v.y,bottom:(y.bottom-h.bottom+p.bottom)/v.y,left:(h.left-y.left+p.left)/v.x,right:(y.right-h.right+p.right)/v.x}}var ke=50,Ae=async(e,t,n)=>{let{placement:r=`bottom`,strategy:i=`absolute`,middleware:a=[],platform:o}=n,s=o.detectOverflow?o:{...o,detectOverflow:Oe},c=await(o.isRTL==null?void 0:o.isRTL(t)),l=await o.getElementRects({reference:e,floating:t,strategy:i}),{x:u,y:d}=De(l,r,c),f=r,p=0,m={};for(let n=0;n<a.length;n++){let h=a[n];if(!h)continue;let{name:g,fn:_}=h,{x:v,y,data:b,reset:x}=await _({x:u,y:d,initialPlacement:r,placement:f,strategy:i,middlewareData:m,rects:l,platform:s,elements:{reference:e,floating:t}});u=v??u,d=y??d,m[g]={...m[g],...b},x&&p<ke&&(p++,typeof x==`object`&&(x.placement&&(f=x.placement),x.rects&&(l=x.rects===!0?await o.getElementRects({reference:e,floating:t,strategy:i}):x.rects),{x:u,y:d}=De(l,f,c)),n=-1)}return{x:u,y:d,placement:f,strategy:i,middlewareData:m}},je=e=>({name:`arrow`,options:e,async fn(t){let{x:n,y:r,placement:i,rects:a,platform:o,elements:s,middlewareData:c}=t,{element:l,padding:u=0}=z(e,t)||{};if(l==null)return{};let d=Te(u),f={x:n,y:r},p=pe(i),m=fe(p),h=await o.getDimensions(l),g=p===`y`,_=g?`top`:`left`,v=g?`bottom`:`right`,y=g?`clientHeight`:`clientWidth`,b=a.reference[m]+a.reference[p]-f[p]-a.floating[m],x=f[p]-a.reference[p],S=await(o.getOffsetParent==null?void 0:o.getOffsetParent(l)),C=S?S[y]:0;(!C||!await(o.isElement==null?void 0:o.isElement(S)))&&(C=s.floating[y]||a.floating[m]);let w=b/2-x/2,T=C/2-h[m]/2-1,E=P(d[_],T),D=P(d[v],T),O=C-h[m]-D,k=C/2-h[m]/2+w,A=ue(E,k,O),ee=!c.arrow&&V(i)!=null&&k!==A&&a.reference[m]/2-(k<E?E:D)-h[m]/2<0,te=ee?k<E?k-E:k-O:0;return{[p]:f[p]+te,data:{[p]:A,centerOffset:k-A-te,...ee&&{alignmentOffset:te}},reset:ee}}}),Me=function(e){return e===void 0&&(e={}),{name:`flip`,options:e,async fn(t){var n;let{placement:r,middlewareData:i,rects:a,initialPlacement:o,platform:s,elements:c}=t,{mainAxis:l=!0,crossAxis:u=!0,fallbackPlacements:d,fallbackStrategy:f=`bestFit`,fallbackAxisSideDirection:p=`none`,flipAlignment:m=!0,...h}=z(e,t);if((n=i.arrow)!=null&&n.alignmentOffset)return{};let g=B(r),_=H(o),v=B(o)===o,y=await(s.isRTL==null?void 0:s.isRTL(c.floating)),b=d||(v||!m?[Ce(o)]:he(o)),x=p!==`none`;!d&&x&&b.push(...Se(o,m,p,y));let S=[o,...b],C=await s.detectOverflow(t,h),w=[],T=i.flip?.overflows||[];if(l&&w.push(C[g]),u){let e=me(r,a,y);w.push(C[e[0]],C[e[1]])}if(T=[...T,{placement:r,overflows:w}],!w.every(e=>e<=0)){let e=(i.flip?.index||0)+1,t=S[e];if(t&&(u!==`alignment`||_===H(t)||T.every(e=>H(e.placement)!==_||e.overflows[0]>0)))return{data:{index:e,overflows:T},reset:{placement:t}};let n=T.filter(e=>e.overflows[0]<=0).sort((e,t)=>e.overflows[1]-t.overflows[1])[0]?.placement;if(!n)switch(f){case`bestFit`:{let e=T.filter(e=>{if(x){let t=H(e.placement);return t===_||t===`y`}return!0}).map(e=>[e.placement,e.overflows.filter(e=>e>0).reduce((e,t)=>e+t,0)]).sort((e,t)=>e[1]-t[1])[0]?.[0];e&&(n=e);break}case`initialPlacement`:n=o}if(r!==n)return{reset:{placement:n}}}return{}}}};function Ne(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function Pe(e){return N.some(t=>e[t]>=0)}var Fe=function(e){return e===void 0&&(e={}),{name:`hide`,options:e,async fn(t){let{rects:n,platform:r}=t,{strategy:i=`referenceHidden`,...a}=z(e,t);switch(i){case`referenceHidden`:{let e=Ne(await r.detectOverflow(t,{...a,elementContext:`reference`}),n.reference);return{data:{referenceHiddenOffsets:e,referenceHidden:Pe(e)}}}case`escaped`:{let e=Ne(await r.detectOverflow(t,{...a,altBoundary:!0}),n.floating);return{data:{escapedOffsets:e,escaped:Pe(e)}}}default:return{}}}}},Ie=new Set([`left`,`top`]);async function Le(e,t){let{placement:n,platform:r,elements:i}=e,a=await(r.isRTL==null?void 0:r.isRTL(i.floating)),o=B(n),s=V(n),c=H(n)===`y`,l=Ie.has(o)?-1:1,u=a&&c?-1:1,d=z(t,e),{mainAxis:f,crossAxis:p,alignmentAxis:m}=typeof d==`number`?{mainAxis:d,crossAxis:0,alignmentAxis:null}:{mainAxis:d.mainAxis||0,crossAxis:d.crossAxis||0,alignmentAxis:d.alignmentAxis};return s&&typeof m==`number`&&(p=s===`end`?m*-1:m),c?{x:p*u,y:f*l}:{x:f*l,y:p*u}}var Re=function(e){return e===void 0&&(e=0),{name:`offset`,options:e,async fn(t){var n;let{x:r,y:i,placement:a,middlewareData:o}=t,s=await Le(t,e);return a===o.offset?.placement&&(n=o.arrow)!=null&&n.alignmentOffset?{}:{x:r+s.x,y:i+s.y,data:{...s,placement:a}}}}},ze=function(e){return e===void 0&&(e={}),{name:`shift`,options:e,async fn(t){let{x:n,y:r,placement:i,platform:a}=t,{mainAxis:o=!0,crossAxis:s=!1,limiter:c={fn:e=>{let{x:t,y:n}=e;return{x:t,y:n}}},...l}=z(e,t),u={x:n,y:r},d=await a.detectOverflow(t,l),f=H(i),p=de(f),m=u[p],h=u[f],g=(e,t)=>ue(t+d[e===`y`?`top`:`left`],t,t-d[e===`y`?`bottom`:`right`]);o&&(m=g(p,m)),s&&(h=g(f,h));let _=c.fn({...t,[p]:m,[f]:h});return{..._,data:{x:_.x-n,y:_.y-r,enabled:{[p]:o,[f]:s}}}}}},Be=function(e){return e===void 0&&(e={}),{options:e,fn(t){let{x:n,y:r,placement:i,rects:a,middlewareData:o}=t,{offset:s=0,mainAxis:c=!0,crossAxis:l=!0}=z(e,t),u={x:n,y:r},d=H(i),f=de(d),p=u[f],m=u[d],h=z(s,t),g=typeof h==`number`?{mainAxis:h,crossAxis:0}:{mainAxis:h.mainAxis??0,crossAxis:h.crossAxis??0};if(c){let e=f===`y`?`height`:`width`,t=a.reference[f]-a.floating[e]+g.mainAxis,n=a.reference[f]+a.reference[e]-g.mainAxis;p<t?p=t:p>n&&(p=n)}if(l){let e=f===`y`?`width`:`height`,t=Ie.has(B(i)),n=a.reference[d]-a.floating[e]+(t&&o.offset?.[d]||0)+(t?0:g.crossAxis),r=a.reference[d]+a.reference[e]+(t?0:o.offset?.[d]||0)-(t?g.crossAxis:0);m<n?m=n:m>r&&(m=r)}return{[f]:p,[d]:m}}}},Ve=function(e){return e===void 0&&(e={}),{name:`size`,options:e,async fn(t){let{placement:n,rects:r,platform:i,elements:a}=t,{apply:o=()=>{},...s}=z(e,t),c=await i.detectOverflow(t,s),l=B(n),u=V(n),d=H(n)===`y`,{width:f,height:p}=r.floating,m,h;l===`top`||l===`bottom`?(m=l,h=u===(await(i.isRTL==null?void 0:i.isRTL(a.floating))?`start`:`end`)?`left`:`right`):(h=l,m=u===`end`?`top`:`bottom`);let g=p-c.top-c.bottom,_=f-c.left-c.right,v=P(p-c[m],g),y=P(f-c[h],_),b=t.middlewareData.shift,x=!b,S=v,C=y;b!=null&&b.enabled.x&&(C=_),b!=null&&b.enabled.y&&(S=g),x&&!u&&(d?C=f-2*F(c.left,c.right):S=p-2*F(c.top,c.bottom)),await o({...t,availableWidth:C,availableHeight:S});let w=await i.getDimensions(a.floating);return f!==w.width||p!==w.height?{reset:{rects:!0}}:{}}}};function He(){return typeof window<`u`}function U(e){return Ue(e)?(e.nodeName||``).toLowerCase():`#document`}function W(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function G(e){return((Ue(e)?e.ownerDocument:e.document)||window.document)?.documentElement}function Ue(e){return He()?e instanceof Node||e instanceof W(e).Node:!1}function K(e){return He()?e instanceof Element||e instanceof W(e).Element:!1}function q(e){return He()?e instanceof HTMLElement||e instanceof W(e).HTMLElement:!1}function We(e){return!He()||typeof ShadowRoot>`u`?!1:e instanceof ShadowRoot||e instanceof W(e).ShadowRoot}function Ge(e){let{overflow:t,overflowX:n,overflowY:r,display:i}=Y(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&i!==`inline`&&i!==`contents`}function Ke(e){return/^(table|td|th)$/.test(U(e))}function qe(e){try{if(e.matches(`:popover-open`))return!0}catch{}try{return e.matches(`:modal`)}catch{return!1}}var Je=/transform|translate|scale|rotate|perspective|filter/,Ye=/paint|layout|strict|content/,J=e=>!!e&&e!==`none`,Xe;function Ze(e){let t=K(e)?Y(e):e;return J(t.transform)||J(t.translate)||J(t.scale)||J(t.rotate)||J(t.perspective)||!$e()&&(J(t.backdropFilter)||J(t.filter))||Je.test(t.willChange||``)||Ye.test(t.contain||``)}function Qe(e){let t=X(e);for(;q(t)&&!et(t);){if(Ze(t))return t;if(qe(t))return null;t=X(t)}return null}function $e(){return Xe??=typeof CSS<`u`&&CSS.supports&&CSS.supports(`-webkit-backdrop-filter`,`none`),Xe}function et(e){return/^(html|body|#document)$/.test(U(e))}function Y(e){return W(e).getComputedStyle(e)}function tt(e){return K(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function X(e){if(U(e)===`html`)return e;let t=e.assignedSlot||e.parentNode||We(e)&&e.host||G(e);return We(t)?t.host:t}function nt(e){let t=X(e);return et(t)?(e.ownerDocument||e).body:q(t)&&Ge(t)?t:nt(t)}function rt(e,t,n){t===void 0&&(t=[]),n===void 0&&(n=!0);let r=nt(e),i=r===e.ownerDocument?.body,a=W(r);if(i){let e=it(a);return t.concat(a,a.visualViewport||[],Ge(r)?r:[],e&&n?rt(e):[])}return t.concat(r,rt(r,[],n))}function it(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function at(e){let t=Y(e),n=parseFloat(t.width)||0,r=parseFloat(t.height)||0,i=q(e),a=i?e.offsetWidth:n,o=i?e.offsetHeight:r,s=I(n)!==a||I(r)!==o;return s&&(n=a,r=o),{width:n,height:r,$:s}}function ot(e){return K(e)?e:e.contextElement}function Z(e){let t=ot(e);if(!q(t))return R(1);let n=t.getBoundingClientRect(),{width:r,height:i,$:a}=at(t),o=(a?I(n.width):n.width)/r,s=(a?I(n.height):n.height)/i;return(!o||!Number.isFinite(o))&&(o=1),(!s||!Number.isFinite(s))&&(s=1),{x:o,y:s}}var st=R(0);function ct(e){let t=W(e);return!$e()||!t.visualViewport?st:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function lt(e,t,n){return t===void 0&&(t=!1),!!n&&t&&n===W(e)}function Q(e,t,n,r){t===void 0&&(t=!1),n===void 0&&(n=!1);let i=e.getBoundingClientRect(),a=ot(e),o=R(1);t&&(r?K(r)&&(o=Z(r)):o=Z(e));let s=lt(a,n,r)?ct(a):R(0),c=(i.left+s.x)/o.x,l=(i.top+s.y)/o.y,u=i.width/o.x,d=i.height/o.y;if(a&&r){let e=W(a),t=K(r)?W(r):r,n=e,i=it(n);for(;i&&t!==n;){let e=Z(i),t=i.getBoundingClientRect(),r=Y(i),a=t.left+(i.clientLeft+parseFloat(r.paddingLeft))*e.x,o=t.top+(i.clientTop+parseFloat(r.paddingTop))*e.y;c*=e.x,l*=e.y,u*=e.x,d*=e.y,c+=a,l+=o,n=W(i),i=it(n)}}return Ee({width:u,height:d,x:c,y:l})}function ut(e,t){let n=tt(e).scrollLeft;return t?t.left+n:Q(G(e)).left+n}function dt(e,t){let n=e.getBoundingClientRect();return{x:n.left+t.scrollLeft-ut(e,n),y:n.top+t.scrollTop}}function ft(e){let{elements:t,rect:n,offsetParent:r,strategy:i}=e,a=i===`fixed`,o=G(r),s=t?qe(t.floating):!1;if(r===o||s&&a)return n;let c={scrollLeft:0,scrollTop:0},l=R(1),u=R(0),d=q(r);if((d||!a)&&((U(r)!==`body`||Ge(o))&&(c=tt(r)),d)){let e=Q(r);l=Z(r),u.x=e.x+r.clientLeft,u.y=e.y+r.clientTop}let f=o&&!d&&!a?dt(o,c):R(0);return{width:n.width*l.x,height:n.height*l.y,x:n.x*l.x-c.scrollLeft*l.x+u.x+f.x,y:n.y*l.y-c.scrollTop*l.y+u.y+f.y}}function pt(e){return e.getClientRects?Array.from(e.getClientRects()):[]}function mt(e){let t=tt(e),n=e.ownerDocument.body,r=F(e.scrollWidth,e.clientWidth,n.scrollWidth,n.clientWidth),i=F(e.scrollHeight,e.clientHeight,n.scrollHeight,n.clientHeight),a=-t.scrollLeft+ut(e),o=-t.scrollTop;return Y(n).direction===`rtl`&&(a+=F(e.clientWidth,n.clientWidth)-r),{width:r,height:i,x:a,y:o}}var ht=25;function gt(e,t,n){n===void 0&&(n=`viewport`);let r=n===`layoutViewport`,i=W(e),a=G(e),o=i.visualViewport,s=a.clientWidth,c=a.clientHeight,l=0,u=0;if(o){let e=!$e()||t===`fixed`;r?e||(l=-o.offsetLeft,u=-o.offsetTop):(s=o.width,c=o.height,e&&(l=o.offsetLeft,u=o.offsetTop))}if(ut(a)<=0){let e=a.ownerDocument,t=e.body,n=getComputedStyle(t),r=e.compatMode===`CSS1Compat`&&parseFloat(n.marginLeft)+parseFloat(n.marginRight)||0,i=Math.abs(a.clientWidth-t.clientWidth-r),o=getComputedStyle(a).scrollbarGutter===`stable both-edges`?i/2:i;o<=ht&&(s-=o)}return{width:s,height:c,x:l,y:u}}function _t(e,t){let n=Q(e,!0,t===`fixed`),r=n.top+e.clientTop,i=n.left+e.clientLeft,a=Z(e);return{width:e.clientWidth*a.x,height:e.clientHeight*a.y,x:i*a.x,y:r*a.y}}function vt(e,t,n){let r;if(t===`viewport`||t===`layoutViewport`)r=gt(e,n,t);else if(t===`document`)r=mt(G(e));else if(K(t))r=_t(t,n);else{let n=ct(e);r={x:t.x-n.x,y:t.y-n.y,width:t.width,height:t.height}}return Ee(r)}function yt(e,t){let n=t.get(e);if(n)return n;let r=rt(e,[],!1).filter(e=>K(e)&&U(e)!==`body`),i=null,a=Y(e).position===`fixed`,o=a?X(e):e;for(;K(o)&&!et(o);){let e=Y(o),t=Ze(o),n=i?i.position:a?`fixed`:``;!t&&(n===`fixed`||n===`absolute`&&e.position===`static`)?r=r.filter(e=>e!==o):i=e,o=X(o)}return t.set(e,r),r}function bt(e){let{element:t,boundary:n,rootBoundary:r,strategy:i}=e,a=[...n===`clippingAncestors`?qe(t)?[]:yt(t,this._c):[].concat(n),r],o=vt(t,a[0],i),s=o.top,c=o.right,l=o.bottom,u=o.left;for(let e=1;e<a.length;e++){let n=vt(t,a[e],i);s=F(n.top,s),c=P(n.right,c),l=P(n.bottom,l),u=F(n.left,u)}return{width:c-u,height:l-s,x:u,y:s}}function xt(e){let{width:t,height:n}=at(e);return{width:t,height:n}}function St(e,t,n){let r=q(t),i=G(t),a=n===`fixed`,o=Q(e,!0,a,t),s={scrollLeft:0,scrollTop:0},c=R(0);if((r||!a)&&((U(t)!==`body`||Ge(i))&&(s=tt(t)),r)){let e=Q(t,!0,a,t);c.x=e.x+t.clientLeft,c.y=e.y+t.clientTop}!r&&i&&(c.x=ut(i));let l=i&&!r&&!a?dt(i,s):R(0);return{x:o.left+s.scrollLeft-c.x-l.x,y:o.top+s.scrollTop-c.y-l.y,width:o.width,height:o.height}}function Ct(e){return Y(e).position===`static`}function wt(e,t){if(!q(e)||Y(e).position===`fixed`)return null;if(t)return t(e);let n=e.offsetParent;return G(e)===n&&(n=n.ownerDocument.body),n}function Tt(e,t){let n=W(e);if(qe(e))return n;if(!q(e)){let t=X(e);for(;t&&!et(t);){if(K(t)&&!Ct(t))return t;t=X(t)}return n}let r=wt(e,t);for(;r&&Ke(r)&&Ct(r);)r=wt(r,t);return r&&et(r)&&Ct(r)&&!Ze(r)?n:r||Qe(e)||n}var Et=async function(e){let t=this.getOffsetParent||Tt,n=this.getDimensions,r=await n(e.floating);return{reference:St(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}};function Dt(e){return Y(e).direction===`rtl`}var Ot={convertOffsetParentRelativeRectToViewportRelativeRect:ft,getDocumentElement:G,getClippingRect:bt,getOffsetParent:Tt,getElementRects:Et,getClientRects:pt,getDimensions:xt,getScale:Z,isElement:K,isRTL:Dt};function kt(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function At(e,t,n){let r=null,i,a=G(e);function o(){var e;clearTimeout(i),(e=r)==null||e.disconnect(),r=null}function s(n,c){n===void 0&&(n=!1),c===void 0&&(c=1),o();let l=e.getBoundingClientRect(),{left:u,top:d,width:f,height:p}=l;if(n||t(),!f||!p)return;let m=L(d),h=L(a.clientWidth-(u+f)),g=L(a.clientHeight-(d+p)),_=L(u),v={rootMargin:-m+`px `+-h+`px `+-g+`px `+-_+`px`,threshold:F(0,P(1,c))||1},y=!0;function b(t){let n=t[0].intersectionRatio;if(!kt(l,e.getBoundingClientRect()))return s();if(n!==c){if(!y)return s();n?s(!1,n):i=setTimeout(()=>{s(!1,1e-7)},1e3)}y=!1}try{r=new IntersectionObserver(b,{...v,root:a.ownerDocument})}catch{r=new IntersectionObserver(b,v)}r.observe(e)}let c=W(e),l=()=>s(n);return c.addEventListener(`resize`,l),s(!0),()=>{c.removeEventListener(`resize`,l),o()}}function jt(e,t,n,r){r===void 0&&(r={});let{ancestorScroll:i=!0,ancestorResize:a=!0,elementResize:o=typeof ResizeObserver==`function`,layoutShift:s=typeof IntersectionObserver==`function`,animationFrame:c=!1}=r,l=ot(e),u=i||a?[...l?rt(l):[],...t?rt(t):[]]:[];u.forEach(e=>{i&&e.addEventListener(`scroll`,n),a&&e.addEventListener(`resize`,n)});let d=l&&s?At(l,n,a):null,f=-1,p=null;o&&(p=new ResizeObserver(e=>{let[r]=e;r&&r.target===l&&p&&t&&(p.unobserve(t),cancelAnimationFrame(f),f=requestAnimationFrame(()=>{var e;(e=p)==null||e.observe(t)})),n()}),l&&!c&&p.observe(l),t&&p.observe(t));let m,h=c?Q(e):null;c&&g();function g(){let t=Q(e);h&&!kt(h,t)&&n(),h=t,m=requestAnimationFrame(g)}return n(),()=>{var e;u.forEach(e=>{i&&e.removeEventListener(`scroll`,n),a&&e.removeEventListener(`resize`,n)}),d?.(),(e=p)==null||e.disconnect(),p=null,c&&cancelAnimationFrame(m)}}var Mt=Re,Nt=ze,Pt=Me,Ft=Ve,It=Fe,Lt=je,Rt=Be,zt=(e,t,n)=>{let r=new Map,i=n??{},a={...Ot,...i.platform,_c:r};return Ae(e,t,{...i,platform:a})};function Bt(e){return typeof e==`object`&&!!e&&`$el`in e}function Vt(e){if(Bt(e)){let t=e.$el;return Ue(t)&&U(t)===`#comment`?null:t}return e}function $(e){return typeof e==`function`?e():d(e)}function Ht(e){return{name:`arrow`,options:e,fn(t){let n=Vt($(e.element));return n==null?{}:Lt({element:n,padding:e.padding}).fn(t)}}}function Ut(e){return typeof window>`u`?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function Wt(e,t){let n=Ut(e);return Math.round(t*n)/n}function Gt(e,t,n){n===void 0&&(n={});let a=n.whileElementsMounted,s=o(()=>$(n.open)??!0),c=o(()=>$(n.middleware)),u=o(()=>$(n.placement)??`bottom`),d=o(()=>$(n.strategy)??`absolute`),f=o(()=>$(n.transform)??!0),p=o(()=>Vt(e.value)),m=o(()=>Vt(t.value)),h=l(0),v=l(0),y=l(d.value),b=l(u.value),x=i({}),C=l(!1),w=o(()=>{let e={position:y.value,left:`0`,top:`0`};if(!m.value)return e;let t=Wt(m.value,h.value),n=Wt(m.value,v.value);return f.value?{...e,transform:`translate(`+t+`px, `+n+`px)`,...Ut(m.value)>=1.5&&{willChange:`transform`}}:{position:y.value,left:t+`px`,top:n+`px`}}),T;function E(){if(p.value==null||m.value==null)return;let e=s.value;zt(p.value,m.value,{middleware:c.value,placement:u.value,strategy:d.value}).then(t=>{h.value=t.x,v.value=t.y,y.value=t.strategy,b.value=t.placement,x.value=t.middlewareData,C.value=e!==!1})}function D(){typeof T==`function`&&(T(),T=void 0)}function O(){if(D(),a===void 0){E();return}if(p.value!=null&&m.value!=null){T=a(p.value,m.value,E);return}}function k(){s.value||(C.value=!1)}return g([c,u,d,s],E,{flush:`sync`}),g([p,m],O,{flush:`sync`}),g(s,k,{flush:`sync`}),S()&&_(D),{x:r(h),y:r(v),strategy:r(y),placement:r(b),middlewareData:r(x),isPositioned:r(C),floatingStyles:w,update:E}}var Kt=[`dir`],qt={side:`bottom`,sideOffset:0,sideFlip:!0,align:`center`,alignOffset:0,alignFlip:!0,arrowPadding:0,hideShiftedArrow:!0,avoidCollisions:!0,collisionBoundary:()=>[],collisionPadding:0,sticky:`partial`,hideWhenDetached:!1,positionStrategy:`fixed`,updatePositionStrategy:`optimized`,prioritizePosition:!1},[Jt,Yt]=E(`PopperContent`),Xt=t({inheritAttrs:!1,__name:`PopperContent`,props:y({memoDependencies:{type:Array,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},hideShiftedArrow:{type:Boolean,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},dir:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},{...qt}),emits:[`placed`],setup(t,{emit:r}){let i=t,s=r,u=te(),{forwardRef:g,currentElement:_}=k(),y=C(o(()=>i.dir)),x=l(),S=l(),{width:w,height:E}=ee(S),D=o(()=>i.side+(i.align===`center`?``:`-${i.align}`)),O=o(()=>typeof i.collisionPadding==`number`?i.collisionPadding:{top:0,right:0,bottom:0,left:0,...i.collisionPadding}),A=o(()=>Array.isArray(i.collisionBoundary)?i.collisionBoundary:[i.collisionBoundary]),j=o(()=>({padding:O.value,boundary:A.value.filter(oe),altBoundary:A.value.length>0})),ne=o(()=>({mainAxis:i.sideFlip,crossAxis:i.alignFlip})),re=o(()=>[Mt({mainAxis:i.sideOffset+E.value,alignmentAxis:i.alignOffset}),i.prioritizePosition&&i.avoidCollisions&&Pt({...j.value,...ne.value}),i.avoidCollisions&&Nt({mainAxis:!0,crossAxis:!!i.prioritizePosition,limiter:i.sticky===`partial`?Rt():void 0,...j.value}),!i.prioritizePosition&&i.avoidCollisions&&Pt({...j.value,...ne.value}),Ft({...j.value,apply:({elements:e,rects:t,availableWidth:n,availableHeight:r})=>{let{width:i,height:a}=t.reference,o=e.floating.style;o.setProperty(`--reka-popper-available-width`,`${n}px`),o.setProperty(`--reka-popper-available-height`,`${r}px`),o.setProperty(`--reka-popper-anchor-width`,`${i}px`),o.setProperty(`--reka-popper-anchor-height`,`${a}px`)}}),S.value&&Ht({element:S.value,padding:i.arrowPadding}),se({arrowWidth:w.value,arrowHeight:E.value,dir:y.value}),i.hideWhenDetached&&It({strategy:`referenceHidden`,...j.value})]),{floatingStyles:ie,placement:ae,isPositioned:M,middlewareData:N,update:P}=Gt(o(()=>i.reference??u.anchor.value),x,{strategy:i.positionStrategy,placement:D,whileElementsMounted:(...e)=>jt(...e,{layoutShift:!i.disableUpdateOnLayoutShift,animationFrame:i.updatePositionStrategy===`always`}),middleware:re}),F=o(()=>ce(ae.value)[0]),I=o(()=>ce(ae.value)[1]);b(()=>{M.value&&s(`placed`)});let L=o(()=>{let e=N.value.arrow?.centerOffset!==0;return i.hideShiftedArrow&&e}),R=l(``);return f(()=>{_.value&&(R.value=window.getComputedStyle(_.value).zIndex)}),Yt({placedSide:F,onArrowChange:e=>S.value=e,arrowX:o(()=>N.value.arrow?.x??0),arrowY:o(()=>N.value.arrow?.y??0),shouldHideArrow:L}),(t,r)=>(e(),n(`div`,{ref_key:`floatingRef`,ref:x,"data-reka-popper-content-wrapper":``,dir:d(y),style:m({...d(ie),transform:d(M)?d(ie).transform:`translate(0, -200%)`,minWidth:`max-content`,zIndex:R.value,"--reka-popper-transform-origin":[d(N).transformOrigin?.x,d(N).transformOrigin?.y].join(` `),...d(N).hide?.referenceHidden&&{visibility:`hidden`,pointerEvents:`none`}})},[i.memoDependencies?p([i.asChild,i.as,F.value,I.value,d(M),...Object.values(t.$attrs),...i.memoDependencies],()=>(e(),c(d(T),h({key:0,ref:d(g)},t.$attrs,{"as-child":i.asChild,as:i.as,"data-side":F.value,"data-align":I.value,style:{animation:d(M)?void 0:`none`}}),{default:v(()=>[a(t.$slots,`default`)]),_:3},16,[`as-child`,`as`,`data-side`,`data-align`,`style`])),r,0):(e(),c(d(T),h({key:1,ref:d(g)},t.$attrs,{"as-child":i.asChild,as:i.as,"data-side":F.value,"data-align":I.value,dir:d(y),style:{animation:d(M)?void 0:`none`}}),{default:v(()=>[a(t.$slots,`default`)]),_:3},16,[`as-child`,`as`,`data-side`,`data-align`,`dir`,`style`]))],12,Kt))}}),Zt={top:`bottom`,right:`left`,bottom:`top`,left:`right`},Qt=t({inheritAttrs:!1,__name:`PopperArrow`,props:{width:{type:Number,required:!1},height:{type:Number,required:!1},rounded:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`svg`}},setup(t){let{forwardRef:r}=k(),i=Jt(),s=o(()=>Zt[i.placedSide.value]);return(t,o)=>(e(),n(`span`,{ref:e=>{d(i).onArrowChange(e??void 0)},style:m({position:`absolute`,left:d(i).arrowX?.value?`${d(i).arrowX?.value}px`:void 0,top:d(i).arrowY?.value?`${d(i).arrowY?.value}px`:void 0,[s.value]:0,transformOrigin:{top:``,right:`0 0`,bottom:`center 0`,left:`100% 0`}[d(i).placedSide.value],transform:{top:`translateY(100%)`,right:`translateY(50%) rotate(90deg) translateX(-50%)`,bottom:`rotate(180deg)`,left:`translateY(50%) rotate(-90deg) translateX(50%)`}[d(i).placedSide.value],visibility:d(i).shouldHideArrow.value?`hidden`:void 0})},[u(M,h(t.$attrs,{ref:d(r),style:{display:`block`},as:t.as,"as-child":t.asChild,rounded:t.rounded,width:t.width,height:t.height}),{default:v(()=>[a(t.$slots,`default`)]),_:3},16,[`as`,`as-child`,`rounded`,`width`,`height`])],4))}});export{ee as a,ne as i,Xt as n,A as o,re as r,Qt as t};
|