import { ref, type Ref } from "vue" import L, {Control as LeafletControl} from 'leaflet' import type { IPointPrompt, IRectanglePrompt } from "./types" export const prefix = " © leaflet" export const OpenStreetMap = "OpenStreetMap" export const Satellite = "OpenStreetMap.HOT" export const maxZoom = 20 export const minZoom = 2 export const waitingString = "waiting..." export const durationRef = ref(0) export const numberOfPolygonsRef = ref(0) export const numberOfPredictedMasksRef = ref(0) export const responseMessageRef = ref("-") export const geojsonRef = ref("geojsonOutput-placeholder") export const currentBaseMapNameRef = ref("") export const currentMapBBoxRef = ref() export const currentZoomRef = ref() export const promptsArrayRef: Ref> = ref([]) export const mapOptionsDefaultRef = ref() export const layerControlGroupLayersRef = ref(new LeafletControl.Layers()); export const mapNavigationLocked = ref(false) // modified from https://github.com/for-GET/know-your-http-well/blob/master/json/status-codes.json export const htmlStatusMessages = [ { code: 100, phrase: 'Continue' }, { code: 101, phrase: 'Switching Protocols' }, { code: 200, phrase: 'OK' }, { code: 201, phrase: 'Created' }, { code: 202, phrase: 'Accepted' }, { code: 203, phrase: 'Non-Authoritative Information' }, { code: 204, phrase: 'No Content' }, { code: 205, phrase: 'Reset Content' }, { code: 206, phrase: 'Partial Content' }, { code: 300, phrase: 'Multiple Choices' }, { code: 302, phrase: 'Found' }, { code: 303, phrase: 'See Other' }, { code: 304, phrase: 'Not Modified' }, { code: 305, phrase: 'Use Proxy' }, { code: 307, phrase: 'Temporary Redirect' }, { code: 400, phrase: 'Bad Request' }, { code: 401, phrase: 'Unauthorized' }, { code: 402, phrase: 'Payment Required' }, { code: 403, phrase: 'Forbidden' }, { code: 404, phrase: 'Not Found' }, { code: 405, phrase: 'Method Not Allowed' }, { code: 406, phrase: 'Not Acceptable' }, { code: 407, phrase: 'Proxy Authentication Required' }, { code: 408, phrase: 'Request Timeout' }, { code: 409, phrase: 'Conflict' }, { code: 410, phrase: 'Gone' }, { code: 411, phrase: 'Length Required' }, { code: 412, phrase: 'Precondition Failed' }, { code: 413, phrase: 'Payload Too Large' }, { code: 414, phrase: 'URI Too Long' }, { code: 415, phrase: 'Unsupported Media Type' }, { code: 416, phrase: 'Range Not Satisfiable' }, { code: 417, phrase: 'Expectation Failed' }, { code: 418, phrase: "I'm a teapot" }, { code: 426, phrase: 'Upgrade Required' }, { code: 500, phrase: 'Internal Server Error' }, { code: 501, phrase: 'Not Implemented' }, { code: 502, phrase: 'Bad Gateway' }, { code: 503, phrase: 'Service Unavailable' }, { code: 504, phrase: 'Gateway Time-out' }, { code: 505, phrase: 'HTTP Version Not Supported' }, { code: 102, phrase: 'Processing' }, { code: 207, phrase: 'Multi-Status' }, { code: 226, phrase: 'IM Used' }, { code: 308, phrase: 'Permanent Redirect' }, { code: 422, phrase: 'Unprocessable Entity' }, { code: 423, phrase: 'Locked' }, { code: 424, phrase: 'Failed Dependency' }, { code: 428, phrase: 'Precondition Required' }, { code: 429, phrase: 'Too Many Requests' }, { code: 431, phrase: 'Request Header Fields Too Large' }, { code: 451, phrase: 'Unavailable For Legal Reasons' }, { code: 506, phrase: 'Variant Also Negotiates' }, { code: 507, phrase: 'Insufficient Storage' }, { code: 511, phrase: 'Network Authentication Required' } ] export const driverSteps = [ { element: 'id-prediction-map-container', popover: { title: 'SamGIS', description: 'A quick tour about SamGIS functionality' } }, { element: '#map', popover: { title: 'Webmap for ML prompt', description: 'Add here your machine learning prompt. Pay attention about markers and polygons outside the map bounds: you could get unexpected results' } }, { element: '.leaflet-pm-icon-marker-include', popover: { title: '"Include" point prompt', description: 'add "include" points prompt (label 1) for machine learning request' } }, { element: '.leaflet-pm-icon-marker-exclude', popover: { title: '"Exclude" point prompt', description: 'add "exclude" points prompt (label 0) for machine learning request' } }, { element: '.leaflet-pm-icon-rectangle', popover: { title: '"Include" rectangle prompt', description: 'add "include" rectangles prompt for machine learning request' } }, { element: "#id-button-submit", popover: { title: 'ML submit button', description: 'Machine learning submit button' } }, { element: '.leaflet-control-layers-toggle', popover: { title: 'Map provider selector', description: 'select a different map provider' } }, { element: '#id-map-info', popover: { title: 'map info', description: 'Section about various map info' } }, { element: '#id-ml-request-prompt', popover: { title: 'ML prompt quest', description: 'Empty at beginning, this table will contain the machine learning prompt (points and rectangles) section' } } ]