{"version":3,"file":"store-C1O4TdnV.js","sources":["../../../node_modules/@experiments-labs/rise_ui/src/components/DataDisplay/ImageViewer/ImageViewer.vue","../../../node_modules/@experiments-labs/rise_ui/src/components/Modal/Modal.vue","../../../node_modules/@experiments-labs/rise_ui/src/components/Modal/ConfirmDialog.vue","../../../node_modules/@experiments-labs/rise_ui/src/components/DataDisplay/Thumbnails/Thumbnails.vue","../../../app/javascript/vue/classes/models/Model.js","../../../app/javascript/vue/classes/models/Comment.js","../../../app/javascript/vue/classes/models/Observation.js","../../../app/javascript/vue/classes/models/Task.js","../../../node_modules/@experiments-labs/rise_ui/src/components/Form/Field.vue","../../../node_modules/@experiments-labs/rise_ui/src/components/Inputs/SubmitButton/SubmitButton.vue","../../../app/javascript/vue/common/DataDisplay/Comments/Form.vue","../../../app/javascript/vue/common/DataDisplay/Comments/_Entry.vue","../../../app/javascript/vue/common/DataDisplay/Comments/List.vue","../../../app/javascript/vue/tools/IsSlotEmpty.js","../../../app/javascript/vue/shapeIcons.js","../../../node_modules/@experiments-labs/rise_ui/src/lib/String.js","../../../app/javascript/vue/classes/models/Placeable.js","../../../app/javascript/vue/classes/models/Element.js","../../../app/javascript/vue/classes/models/Family.js","../../../app/javascript/vue/classes/models/Genus.js","../../../app/javascript/vue/classes/models/Harvest.js","../../../node_modules/@experiments-labs/rise_ui/src/components/Menu/MenuItem.vue","../../../node_modules/@experiments-labs/rise_ui/src/components/Navbar/Navbar.vue","../../../app/javascript/vue/common/ThemeSwitcherMenuItem.vue","../../../app/javascript/vue/classes/models/Map.js","../../../app/javascript/vue/classes/models/User.js","../../../app/javascript/vue/classes/models/Notification.js","../../../app/javascript/vue/classes/models/Patch.js","../../../app/javascript/vue/classes/models/Path.js","../../../node_modules/@experiments-labs/rise_ui/src/components/IconText/IconText.vue","../../../app/javascript/vue/common/DataDisplay/Observation/Observation.vue","../../../app/javascript/vue/apps/garden/components/Observations/_Observations.vue","../../../app/javascript/vue/strokeStylePresets.js","../../../app/javascript/vue/classes/models/Resource.js","../../../node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs","../../../node_modules/@floating-ui/core/dist/floating-ui.core.mjs","../../../node_modules/floating-vue/node_modules/@floating-ui/dom/dist/floating-ui.dom.browser.min.mjs","../../../node_modules/floating-vue/dist/floating-vue.mjs","../../../node_modules/@experiments-labs/rise_ui/src/components/HelpButton/HelpButton.vue","../../../app/javascript/vue/classes/models/ResourceNote.js","../../../app/javascript/vue/classes/models/ResourceInteractionsGroup.js","../../../app/javascript/vue/classes/models/ResourceInteraction.js","../../../node_modules/@experiments-labs/rise_ui/src/components/ListItem/ListItem.vue","../../../app/javascript/vue/classes/models/Account.js","../../../app/javascript/vue/stores/modules/AccountModule.js","../../../app/javascript/vue/stores/modules/Base.js","../../../app/javascript/vue/stores/modules/CommentModule.js","../../../node_modules/mitt/dist/mitt.mjs","../../../app/javascript/vue/tools/EventBus.js","../../../app/javascript/vue/stores/modules/ElementModule.js","../../../app/javascript/vue/stores/modules/FamilyModule.js","../../../app/javascript/vue/stores/modules/GenusModule.js","../../../app/javascript/vue/stores/modules/HarvestModule.js","../../../app/javascript/vue/classes/models/Layer.js","../../../app/javascript/vue/stores/modules/LayerModule.js","../../../app/javascript/vue/stores/modules/LoaderModule.js","../../../app/javascript/vue/stores/modules/MapModule.js","../../../app/javascript/vue/stores/modules/NotificationModule.js","../../../app/javascript/vue/stores/modules/ObservationModule.js","../../../app/javascript/vue/stores/modules/PatchModule.js","../../../app/javascript/vue/stores/modules/PathModule.js","../../../app/javascript/vue/stores/modules/ResourceInteractionModule.js","../../../app/javascript/vue/stores/modules/ResourceInteractionsGroupModule.js","../../../app/javascript/vue/stores/modules/ResourceModule.js","../../../app/javascript/vue/stores/modules/ResourceNoteModule.js","../../../app/javascript/vue/stores/modules/TagModule.js","../../../app/javascript/vue/stores/modules/TaskModule.js","../../../app/javascript/vue/classes/models/TeamMate.js","../../../app/javascript/vue/stores/modules/TeamMateModule.js","../../../app/javascript/vue/stores/modules/UserModule.js","../../../app/javascript/vue/apps/garden/store.js"],"sourcesContent":["\n \n \n \n \n \n\n \n \n \n\n 1\" class=\"rui-image-viewer__controls\">\n \n \n\n \n \n \n \n\n\n","\n \n \n \n \n {{ caption }}\n \n \n \n \n \n \n \n \n \n \n\n\n","\n \n \n \n \n {{ message }}\n \n\n\n\n","\n \n \n \n \n \n \n\n\n\n","import api from '../../tools/api'\n\n/**\n * @typedef {import('vuex').Store} VueXStore\n */\n\nexport default class Model {\n /**\n * Update from another instance\n *\n * @param {Model|object} newInstance - Instance or object to merge data from\n */\n updateAttributes (newInstance) {\n this.constructor.updatableAttributes.forEach((attribute) => {\n if (newInstance[attribute] !== undefined) this[attribute] = newInstance[attribute]\n })\n }\n\n get className () { return this.constructor.getClassName() }\n\n static getClassName () { throw new Error('Class name not defined in model') }\n\n static set updatableAttributes (attributes) { this.UPDATABLE_ATTRIBUTES = attributes }\n\n static get updatableAttributes () { return this.UPDATABLE_ATTRIBUTES }\n\n /* eslint-disable accessor-pairs */\n static set urls (urls) {\n /**\n * @type {object}\n */\n this.urlsList = urls\n }\n /* eslint-enable accessor-pairs */\n\n /**\n * Assigns VueX Store to Store for usage in methods\n *\n * @param {VueXStore} store VueX Store instance\n */\n static set store (store) { this.VueXStore = store }\n\n /**\n * Reach the store\n *\n * @returns {VueXStore} store VueX Store instance\n */\n static get store () { return this.VueXStore }\n\n /**\n * Fetches the list\n *\n * @param {*} params - Parameters for API call\n * @returns {Promise} List of entities\n */\n static getIndex (params) {\n return api('get', this.urlsList.index(params))\n .then(entities => entities.map(entity => new this(entity)))\n }\n\n /**\n * Fetches one entity\n *\n * @param {*} params - Parameters for API call\n * @returns {Promise} Model instance\n */\n static get (params) {\n return api('get', this.urlsList.show(params))\n .then(entity => new this(entity))\n }\n\n /**\n * Creates a new entity\n *\n * @param {*} params - Parameters for API call\n * @returns {Promise} Model instance\n */\n static create (params) {\n return api('post', this.urlsList.create(params), params)\n .then(entity => new this(entity))\n }\n\n /**\n * Updates one entity\n *\n * @param {*} payload - Parameters for API call\n * @returns {Promise} Model instance\n */\n static update (payload) {\n return api('put', this.urlsList.update(payload), payload)\n .then(entity => new this(entity))\n }\n\n /**\n * Destroys one entity\n *\n * @param {*} params - Call parameters\n * @returns {Promise} Nothing on success\n */\n static destroy (params) {\n return api('delete', this.urlsList.destroy(params))\n }\n}\n","import api from '../../tools/api'\nimport Model from './Model'\n\n/**\n * List of attributes that can be updated in `updateAttributes()`\n *\n * @type {string[]}\n */\nconst ATTRIBUTES = ['content', 'removedAt', 'removedByMapOwner', 'userId', 'subjectType', 'subjectId', 'createdAt', 'updatedAt']\n\nclass Comment extends Model {\n /* eslint-disable camelcase, jsdoc/require-param-description */\n /**\n * @param {object} payload - Data from API\n * @param {null|number} payload.id\n * @param {string} payload.content\n * @param {Date|string} payload.removed_at\n * @param {boolean} payload.removed_by_map_owner\n * @param {string} payload.username\n * @param {number} payload.user_id\n * @param {string} payload.subject_type\n * @param {number} payload.subject_id\n * @param {Date|string} payload.created_at\n * @param {Date|string} payload.updated_at\n */\n constructor ({ id = null, content, removed_at, removed_by_map_owner, user_id, username, subject_type, subject_id, created_at, updated_at }) {\n super()\n this.id = id\n this.content = content\n this.removedAt = removed_at ? new Date(removed_at) : null\n this.removedByMapOwner = removed_by_map_owner\n this.userId = user_id\n this.username = username\n this.subjectType = subject_type\n this.subjectId = subject_id\n this.createdAt = created_at ? new Date(created_at) : null\n this.updatedAt = updated_at ? new Date(updated_at) : null\n }\n /* eslint-enable camelcase, jsdoc/require-param-description */\n\n /**\n * Fetches the list\n *\n * @param {*} params - Parameters for API call\n * @returns {Promise} List of entities\n */\n static getIndex ({ subject }) {\n let url\n switch (subject.className) {\n case 'Observation':\n url = this.urlsList.indexForObservation(subject.id)\n break\n case 'Task':\n url = this.urlsList.indexForTask(subject.id)\n break\n default:\n throw new Error(`Unhandled subject type \"${subject.className}\"`)\n }\n return api('get', url)\n .then(entities => entities.map(entity => new this(entity)))\n }\n\n /**\n * @returns {string} The hardcoded class name\n */\n static getClassName () { return 'Comment' }\n\n /**\n * Updates one entity\n *\n * @param {number} id - Comment identifier\n * @returns {Promise} Model instance\n */\n static remove (id) {\n return api('put', this.urlsList.remove(id))\n .then(entity => new this(entity))\n }\n}\n\nComment.updatableAttributes = ATTRIBUTES\nComment.urls = {\n indexForObservation (observationId) { return `/api/observations/${observationId}/comments` },\n indexForTask (taskId) { return `/api/tasks/${taskId}/comments` },\n show (id) { return `/api/comments/${id}` },\n create () { return '/api/comments' },\n update (payload) { return `/api/comments/${payload.id}` },\n remove (id) { return `/api/comments/${id}/remove` },\n}\n\nexport default Comment\n","import api from '../../tools/api'\nimport Model from './Model'\n\nconst OBSERVATION_BASE_URLS = {\n Element: '/api/elements',\n Map: '/api/maps',\n Patch: '/api/patches',\n Path: '/api/paths',\n}\n\n/**\n * List of attributes that can be updated in `updateAttributes()`\n *\n * @type {string[]}\n */\nconst ATTRIBUTES = ['title', 'content', 'subjectType', 'subjectId', 'userId', 'madeAt', 'createdAt', 'updatedAt', 'commentsCount', 'pictures']\n\nclass Observation extends Model {\n /* eslint-disable camelcase, jsdoc/require-param-description */\n /**\n * @param {object} payload - Data from API\n * @param {null|number} payload.id\n * @param {string} payload.title\n * @param {string} payload.content\n * @param {string} payload.subject_type\n * @param {number} payload.subject_id\n * @param {number} payload.user_id\n * @param {Date|string} payload.made_at\n * @param {Date|string} payload.created_at\n * @param {Date|string} payload.updated_at\n * @param {number} payload.comments_count\n * @param {{source: string, thumbnail: string}[]} payload.pictures\n */\n constructor ({ id = null, title, content, subject_type, subject_id, user_id, made_at, created_at, updated_at, comments_count, pictures }) {\n super()\n this.id = id\n this.title = title\n this.content = content\n this.subjectType = subject_type\n this.subjectId = subject_id\n this.userId = user_id\n this.madeAt = made_at ? new Date(made_at) : null\n this.createdAt = created_at ? new Date(created_at) : null\n this.updatedAt = updated_at ? new Date(updated_at) : null\n this.commentsCount = comments_count\n this.pictures = pictures\n }\n /* eslint-enable camelcase, jsdoc/require-param-description */\n\n get subject () {\n switch (this.subjectType) {\n case 'Element':\n return this.constructor.store.getters.element(this.subjectId)\n case 'Map':\n return this.constructor.store.getters.map(this.subjectId)\n case 'Patch':\n return this.constructor.store.getters.patch(this.subjectId)\n case 'Path':\n return this.constructor.store.getters.path(this.subjectId)\n default:\n return null\n }\n }\n\n /**\n * Fetches last observations for given element\n *\n * @param {string} subjectType - Subject type\n * @param {number} subjectId - Subject identifier\n * @returns {Promise} Filtered list of Observation instances\n */\n static getObservationsForSubject (subjectType, subjectId) {\n const baseUrl = OBSERVATION_BASE_URLS[subjectType] || null\n if (!baseUrl) throw new Error(`Unsupported observation type \"${subjectType}\"`)\n\n return api('get', `${baseUrl}/${subjectId}/observations`)\n .then(observations => observations.map(data => new Observation(data)))\n }\n\n /**\n * Fetches all observations for a given map\n *\n * @param {number} mapId - Map identifier\n * @returns {Promise} Filtered list of Observation instances\n */\n static getObservationsForMap (mapId) {\n return api('get', `/api/maps/${mapId}/all_observations`)\n .then(observations => observations.map(data => new Observation(data)))\n }\n\n /**\n * Creates a new observation\n *\n * @param {object} payload - Object with underscored keys\n * @returns {Promise} Observation instance\n */\n static create (payload) {\n const formData = new FormData()\n for (const key of Object.keys(payload)) {\n if (key === 'pictures') {\n for (const file of payload[key]) formData.append(`observation[${key}][]`, file)\n } else { formData.append(`observation[${key}]`, payload[key]) }\n }\n\n return api('post', '/api/observations', formData)\n .then(observation => new Observation(observation))\n }\n\n /**\n * @returns {string} The hardcoded class name\n */\n static getClassName () { return 'Observation' }\n}\n\nObservation.updatableAttributes = ATTRIBUTES\nObservation.urls = {\n index () { return '/api/observations' },\n show (id) { return `/api/observations/${id}` },\n update (payload) { return `/api/observations/${payload.id}` },\n destroy (id) { return `/api/observations/${id}` },\n}\n\nexport default Observation\n","import api from '../../tools/api'\nimport Model from './Model'\n\nconst TASKS_BASE_URLS = {\n Element: '/api/elements',\n Map: '/api/maps',\n Patch: '/api/patches',\n Path: '/api/paths',\n}\n\n/**\n * @typedef {import('./Placeable.js')} Placeable\n */\n\n/**\n * List of attributes that can be updated in `updateAttributes()`\n *\n * @type {string[]}\n */\nconst ATTRIBUTES = ['name', 'notes', 'createdAt', 'updatedAt', 'doneAt', 'plannedFor', 'subjectType', 'subjectId', 'assigneeId', 'updatedSubject', 'commentsCount']\n\nclass Task extends Model {\n /* eslint-disable camelcase, jsdoc/require-param-description */\n /**\n * @param {object} payload - Data from API\n * @param {null|number} payload.id\n * @param {string} payload.name\n * @param {string} payload.notes\n * @param {Date|string} payload.created_at\n * @param {Date|string} payload.updated_at\n * @param {Date|string} payload.done_at\n * @param {Date|string} payload.planned_for\n * @param {string} payload.subject_type\n * @param {number} payload.subject_id\n * @param {number} payload.assignee_id\n * @param {number} payload.comments_count\n * @param {string|null} payload.action\n * @param {object|null} payload.subject\n */\n constructor ({ id = null, name, notes, created_at, updated_at, done_at, planned_for, subject_type, subject_id, assignee_id, comments_count, subject, action }) {\n super()\n this.id = id\n this.name = name\n this.notes = notes\n this.createdAt = created_at ? new Date(created_at) : null\n this.updatedAt = updated_at ? new Date(updated_at) : null\n this.doneAt = done_at ? new Date(done_at) : null\n this.plannedFor = planned_for ? new Date(planned_for) : null\n this.subjectType = subject_type\n this.subjectId = subject_id\n this.assigneeId = assignee_id\n this.commentsCount = comments_count\n this.action = action\n this.updatedSubject = subject\n }\n /* eslint-enable camelcase, jsdoc/require-param-description */\n\n /**\n * Finds the subject in VueX store\n *\n * @returns {Placeable|Map|null} The subject\n */\n get subject () {\n switch (this.subjectType) {\n case 'Element':\n return this.constructor.store.getters.element(this.subjectId)\n case 'Map':\n return this.constructor.store.getters.map(this.subjectId)\n case 'Patch':\n return this.constructor.store.getters.patch(this.subjectId)\n case 'Path':\n return this.constructor.store.getters.path(this.subjectId)\n default:\n return null\n }\n }\n\n /**\n * Fetches last tasks filtered by action for given element\n *\n * @param {number} mapId - Target map identifier\n * @returns {Promise} List of used tasks names\n */\n static getNames (mapId) {\n return api('get', `/api/maps/${mapId}/tasks/names`)\n }\n\n /**\n * Fetches last tasks filtered by action for given element\n *\n * @param {string} subjectType - Subject type\n * @param {number} subjectId - Subject identifier\n * @param {object} filters - Additional filters\n * @param {?string} filters.status - Status filter: `pending`, `done`, `overdue`; default: 'pending'\n * @returns {Promise} Filtered list of Task instances\n */\n static getTasksForSubject (subjectType, subjectId, { status } = {}) {\n const filters = {}\n if (status) filters.status = status\n\n const baseUrl = TASKS_BASE_URLS[subjectType] || null\n if (!baseUrl) throw new Error(`Unsupported subject type \"${subjectType}\"`)\n\n return api('get', `${baseUrl}/${subjectId}/tasks`, { filters })\n .then(tasks => tasks.map(data => new Task(data)))\n }\n\n /**\n * Fetches all tasks for the given map (and its elements)\n *\n * @param {number} mapId - Target map identifier\n * @param {object} filters - Request filters\n * @param {string} filters.status - Filter by status (null for all)\n *\n * @returns {Promise} Filtered list of Task instances\n */\n static getAllForMap (mapId, { status } = {}) {\n const filters = {}\n if (status) filters.status = status\n\n return api('get', `/api/maps/${mapId}/all_tasks`, { filters })\n .then(tasks => tasks.map(data => new Task(data)))\n }\n\n /**\n * @returns {string} The hardcoded class name\n */\n static getClassName () { return 'Task' }\n}\n\nTask.updatableAttributes = ATTRIBUTES\nTask.urls = {\n index (elementId) { return `/api/elements/${elementId}/tasks` },\n show (id) { return `/api/tasks/${id}` },\n create () { return '/api/tasks' },\n update (payload) { return `/api/tasks/${payload.id}` },\n destroy (id) { return `/api/tasks/${id}` },\n}\n\nexport default Task\n","\n \n {{ label }}\n \n \n {{ append }}\n \n \n \n {{ help }}\n \n 0\">\n {{ message }}\n \n \n\n\n\n","\n \n \n \n \n {{ caption || $t('rui.generic.save') }}\n \n\n\n\n","\n \n \n \n \n \n\n \n \n \n \n\n\n\n","\n \n \n {{ comment.username }}\n \n {{ $d(comment.createdAt, 'compact') }}\n \n —\n {{ $t('activerecord.attributes.comment.updated_at') }}\n {{ $d(comment.updatedAt, 'compact') }}\n \n \n \n \n \n \n \n \n \n\n {{ comment.content }}\n\n \n \n\n\n\n","\n \n \n \n \n \n \n \n {{ $t('js.comments.no_comments') }}\n \n \n {{ $t('js.comments.no_comments_anonymous') }}\n \n \n\n \n \n \n {{ $t('js.comments.new_comment') }}\n \n \n \n \n\n\n","/**\n * Adapted from https://www.telerik.com/blogs/checking-vue-3-slots-emptiness,\n * Which was also adapted from https://github.com/vuejs/vue-next/blob/ca17162e377e0a0bf3fae9d92d0fdcb32084a9fe/packages/runtime-core/src/helpers/renderSlot.ts#L77\n */\n\nimport { Comment, Fragment, Text } from 'vue'\n\n/**\n * @typedef {import('vue').VNode} VNode\n */\n\n/**\n * Checks if a VNode and its children are considered empty\n *\n * @param {VNode[]} vNodes - List of VNodes\n * @returns {boolean} Whether the node is empty or not\n */\nfunction vNodeIsEmpty (vNodes) {\n return vNodes.every(node => {\n // Node is a comment\n if (node.type === Comment) return true\n // Node is an empty text\n if (node.type === Text && !node.children.trim()) return true\n\n return node.type === Fragment && vNodeIsEmpty(node.children)\n })\n}\n\n/**\n * Returns true if a slot has no content\n *\n * @param {Function} slot - A Vue 3 slot function\n * @returns {boolean} Whether the slot is empty or not\n */\nexport function isSlotEmpty (slot) {\n if (!slot) return true\n\n // if we get a slot that is not a function, we're in vue 2 and there is content, so it's not empty\n if (typeof slot !== 'function') return false\n\n return vNodeIsEmpty(slot())\n}\n","const base = {\n Point: 'point',\n Polygon: 'polygon',\n Circle: 'circle',\n LineString: 'multiline',\n Virtual: 'virtual',\n}\nexport const shapeIcons = {}\nObject.keys(base).forEach(k => {\n shapeIcons[k] = {\n base: base[k],\n add: `${base[k]}-add`,\n edit: `${base[k]}-edit`,\n }\n})\n\n/**\n * Gets the geometry icon for the given type\n *\n * @param {string} geometryType - Type\n * @returns {string} Icon name\n */\nexport function geometryIcon (geometryType) {\n return shapeIcons[geometryType].base\n}\n","const CHARS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'\nconst CHARS_LENGTH = CHARS.length\n\n/**\n * Replaces all non-alphanumeric character by a dash\n *\n * @param {string} string - String to parameterize\n * @returns {string} Parameterized string\n */\nexport function parameterize (string) {\n return string.replace(/[\\W\\s_]/g, '-').toLowerCase()\n}\n\n/**\n * Returns a random string\n *\n * @param {number} size - Output length\n * @returns {string} A random string\n */\nexport function randomString (size = 5) {\n let result = ''\n for (let i = 0; i < size; i++) result += CHARS[Math.floor(Math.random() * CHARS_LENGTH)]\n\n return result\n}\n","import Model from './Model'\n\n/**\n * @typedef {import('ol/Feature')} Feature\n * @typedef {import('./Layer')} Layer\n */\n\n/**\n * Represents an entity that can be placed on a map and represented by a Feature.\n * Thus, in addition to the methods defined in this class, models MUST have the\n * following properties:\n *\n * @property {object} geometry - GeoJSON geometry object\n * @property {number} layerId - GardenParty {Layer} identifier\n * @property {string} geometryType - Type of geometry, that may differ from the GeoJSON geometry type (typically, Circles, which are GeoJSON Points with a radius property)\n */\nexport default class Placeable extends Model {\n /**\n * Gets the layer on which the element is\n *\n * @returns {(Layer|null)} The layer\n */\n get layer () { return this.constructor.store.getters.layer(this.layerId) }\n\n /**\n * Assigns an OpenLayer feature to the element\n *\n * @param {Feature} feature - OpenLayer feature to assign\n */\n setFeature (feature) {\n feature.setProperties({ type: this.className.toLowerCase(), id: this.id })\n this.feature = feature\n }\n}\n","import Placeable from './Placeable'\nimport api from '../../tools/api'\nimport { isAfter } from '@experiments-labs/rise_ui/src/lib/Dates'\n\n/**\n * @typedef {import('./Activity')} Activity\n * @typedef {import('./Harvest')} Harvest\n * @typedef {import('./Observation')} Observation\n * @typedef {import('./Patch')} Patch\n * @typedef {import('./Resource')} Resource\n * @typedef {import('./Task')} Task\n */\n\n/**\n * List of attributes that can be updated in `updateAttributes()`\n *\n * @type {string[]}\n */\nconst ATTRIBUTES = ['implantedAt', 'resourceId', 'patchId', 'createdAt', 'updatedAt', 'removedAt', 'implantationPlannedFor', 'removalPlannedFor', 'diameter', 'name', 'geometry', 'mapId', 'layerId', 'implantationMode', 'observationsCount', 'status']\n\nclass Element extends Placeable {\n /* eslint-disable camelcase, jsdoc/require-param-description */\n /**\n * @param {object} payload - Data from API\n * @param {null|number} payload.id\n * @param {Date|string} payload.implanted_at\n * @param {number} payload.resource_id\n * @param {number} payload.patch_id\n * @param {Date|string} payload.created_at\n * @param {Date|string} payload.updated_at\n * @param {Date|string} payload.removed_at\n * @param {Date|string} payload.implantation_planned_for\n * @param {Date|string} payload.removal_planned_for\n * @param {number} payload.diameter\n * @param {string} payload.name\n * @param {object} payload.geometry\n * @param {number} payload.layer_id\n * @param {string} payload.implantation_mode\n * @param {number} payload.observations_count\n * @param {string} payload.status\n */\n constructor ({ id = null, implanted_at, resource_id, patch_id, created_at, updated_at, removed_at, implantation_planned_for, removal_planned_for, diameter, name, geometry, layer_id, implantation_mode, observations_count, status }) {\n super()\n this.id = id\n this.implantedAt = implanted_at ? new Date(implanted_at) : null\n this.resourceId = resource_id\n this.patchId = patch_id\n this.createdAt = created_at ? new Date(created_at) : null\n this.updatedAt = updated_at ? new Date(updated_at) : null\n this.removedAt = removed_at ? new Date(removed_at) : null\n this.implantationPlannedFor = implantation_planned_for ? new Date(implantation_planned_for) : null\n this.removalPlannedFor = removal_planned_for ? new Date(removal_planned_for) : null\n this.diameter = diameter\n this.name = name\n this.geometry = geometry\n this.layerId = layer_id\n this.implantationMode = implantation_mode\n this.observationsCount = observations_count\n this.status = status\n }\n /* eslint-enable camelcase, jsdoc/require-param-description */\n\n /** @returns {Resource} Resource from VueX store */\n get resource () { return this.constructor.store.getters.resource(this.resourceId) }\n /** @returns {Patch|null} Related patch from VueX store */\n get patch () { return this.constructor.store.getters.patch(this.patchId) }\n /** @returns {Activity[]} Related activities from VueX store */\n get activities () { return this.constructor.store.getters.activitiesBySubject(this) }\n /** @returns {Harvest[]} Related harvests from VueX store */\n get harvests () { return this.constructor.store.getters.harvestsForElement(this) }\n /** @returns {Observation[]} Related observations from VueX store */\n get observations () { return this.constructor.store.getters.observationsBySubject(this) }\n /** @returns {Task[]} Related tasks from VueX store */\n get tasks () { return this.constructor.store.getters.tasksBySubject(this) }\n\n get isRemoved () { return this.status === 'removed' }\n get isImplanted () { return this.status === 'implanted' }\n get isPlanned () { return this.status === 'planned' }\n get isImplantationPlanned () { return this.isPlanned && !!this.implantationPlannedFor }\n get isRemovalPlanned () { return this.isImplanted && !!this.removalPlannedFor }\n get isRemovalOverdue () { return this.isRemovalPlanned && !this.isRemoved && isAfter(this.removalPlannedFor, new Date()) }\n get isImplantationOverdue () { return this.isImplantationPlanned && !this.isImplanted && isAfter(this.implantationPlannedFor, new Date()) }\n get hasImplantationDetails () { return this.isRemoved || this.isImplanted }\n get hasImplantationPlan () { return this.isImplantationPlanned || this.isRemovalPlanned }\n\n /**\n * @returns {string} Element resource's name\n */\n get displayName () {\n const resourceName = this.resource.name\n\n if (this.name) return `${this.name} (${resourceName})`\n else return resourceName\n }\n\n get isPoint () { return this.geometry && this.layerId }\n\n /**\n * Fetches the list for a given patch\n *\n * @param {number} patchId - Target patch identifier\n * @returns {Promise} List of Element instances\n */\n static getPatchIndex (patchId) {\n return api('get', `/api/patches/${patchId}/elements`)\n .then(elements => elements.map(data => new Element(data)))\n }\n\n /**\n * Creates a duplicate of the element\n *\n * @param {number} id - Source element identifier\n * @returns {Promise} The new element\n */\n static duplicate (id) {\n return api('post', `/api/elements/${id}/duplicate`)\n .then(data => new Element(data))\n }\n\n /**\n * @returns {string} The hardcoded class name\n */\n static getClassName () { return 'Element' }\n}\n\nElement.updatableAttributes = ATTRIBUTES\nElement.urls = {\n index (mapId) { return `/api/maps/${mapId}/elements` },\n show (id) { return `/api/elements/${id}` },\n create () { return '/api/elements' },\n update (payload) { return `/api/elements/${payload.id}` },\n destroy (id) { return `/api/elements/${id}` },\n}\n\nexport default Element\n","import Model from './Model'\n\n/**\n * List of attributes that can be updated in `updateAttributes()`\n *\n * @type {string[]}\n */\nconst ATTRIBUTES = ['name', 'source', 'createdAt', 'updatedAt', 'kingdom', 'syncId']\n\nclass Family extends Model {\n /* eslint-disable camelcase, jsdoc/require-param-description */\n /**\n * @param {object} payload - Data from API\n * @param {null|number} payload.id\n * @param {string} payload.name\n * @param {string} payload.source\n * @param {Date|string} payload.created_at\n * @param {Date|string} payload.updated_at\n * @param {string} payload.kingdom\n * @param {string} payload.sync_id\n */\n constructor ({ id = null, name, source, created_at, updated_at, kingdom, sync_id }) {\n super()\n this.id = id\n this.name = name\n this.source = source\n this.createdAt = created_at ? new Date(created_at) : null\n this.updatedAt = updated_at ? new Date(updated_at) : null\n this.kingdom = kingdom\n this.syncId = sync_id\n }\n /* eslint-enable camelcase, jsdoc/require-param-description */\n\n get resources () { return this.constructor.store.getters.resourcesByFamily(this.id) }\n\n get genera () { return this.constructor.store.getters.generaByFamily(this.id) }\n\n /**\n * @returns {string} The hardcoded class name\n */\n static getClassName () { return 'Family' }\n}\n\nFamily.updatableAttributes = ATTRIBUTES\nFamily.urls = {\n index () { return '/api/families' },\n show (id) { return `/api/families/${id}` },\n create () { return '/api/families' },\n update (payload) { return `/api/families/${payload.id}` },\n destroy (id) { return `/api/families/${id}` },\n}\n\nexport default Family\n","import Model from './Model'\n\n/**\n * List of attributes that can be updated in `updateAttributes()`\n *\n * @type {string[]}\n */\nconst ATTRIBUTES = ['name', 'createdAt', 'updatedAt', 'source', 'familyId', 'syncId']\n\nclass Genus extends Model {\n /* eslint-disable camelcase, jsdoc/require-param-description */\n /**\n * @param {object} payload - Data from API\n * @param {null|number} payload.id\n * @param {string} payload.name\n * @param {Date|string} payload.created_at\n * @param {Date|string} payload.updated_at\n * @param {string} payload.source\n * @param {number} payload.family_id\n * @param {string} payload.sync_id\n */\n constructor ({ id = null, name, created_at, updated_at, source, family_id, sync_id }) {\n super()\n this.id = id\n this.name = name\n this.createdAt = created_at ? new Date(created_at) : null\n this.updatedAt = updated_at ? new Date(updated_at) : null\n this.source = source\n this.familyId = family_id\n this.syncId = sync_id\n }\n /* eslint-enable camelcase, jsdoc/require-param-description */\n\n get resources () { return this.constructor.store.getters.resourcesByGenus(this.id) }\n\n get family () { return this.constructor.store.getters.family(this.familyId) }\n\n /**\n * @returns {string} The hardcoded class name\n */\n static getClassName () { return 'Genus' }\n}\n\nGenus.updatableAttributes = ATTRIBUTES\nGenus.urls = {\n index () { return '/api/genera' },\n show (id) { return `/api/genera/${id}` },\n create () { return '/api/genera' },\n update (payload) { return `/api/genera/${payload.id}` },\n destroy (id) { return `/api/genera/${id}` },\n}\n\nexport default Genus\n","import Model from './Model'\nimport api from '@/vue/tools/api'\n\n/**\n * @typedef {import('./Element')} Element\n */\n\n/**\n * List of attributes that can be updated in `updateAttributes()`\n *\n * @type {string[]}\n */\nconst ATTRIBUTES = ['quantity', 'unit', 'elementId', 'userId', 'harvestedAt', 'createdAt', 'updatedAt']\n\n/**\n * Available units.\n *\n * FIXME: Find a way to sync this with Rails' model enum\n */\nexport const UNITS = [\n 'gram',\n 'kilogram',\n 'ton',\n 'piece',\n 'centilitre',\n 'litre',\n 'cubic_meter',\n]\n\nclass Harvest extends Model {\n /* eslint-disable camelcase, jsdoc/require-param-description */\n /**\n * @param {object} payload - Data from API\n * @param {null|number} payload.id\n * @param {number} payload.quantity\n * @param {string} payload.unit\n * @param {number} payload.element_id\n * @param {number} payload.user_id\n * @param {Date|string} payload.harvested_at\n * @param {Date|string} payload.created_at\n * @param {Date|string} payload.updated_at\n */\n constructor ({ id = null, quantity, unit, element_id, user_id, harvested_at, created_at, updated_at }) {\n super()\n this.id = id\n this.quantity = quantity\n this.unit = unit\n this.elementId = element_id\n this.userId = user_id\n this.harvestedAt = harvested_at ? new Date(harvested_at) : null\n this.createdAt = created_at ? new Date(created_at) : null\n this.updatedAt = updated_at ? new Date(updated_at) : null\n }\n /* eslint-enable camelcase, jsdoc/require-param-description */\n\n /** @returns {Element} Element from VueX store */\n get element () { return this.constructor.store.getters.element(this.elementId) }\n /** @returns {Element} Element from VueX store */\n get user () { return this.constructor.store.getters.user(this.userId) }\n\n /**\n * Fetches the list for all harvest associated to map elements\n *\n * @param {number} mapId - Map identifier\n * @returns {Promise} Harvest entities\n */\n static getMapIndex (mapId) {\n return api('get', this.urlsList.indexForMap(mapId))\n .then(entities => entities.map(entity => new this(entity)))\n }\n\n /**\n * Fetches the list for all harvest associated to an element\n *\n * @param {number} elementId - Map identifier\n * @returns {Promise} Harvest entities\n */\n static getElementIndex (elementId) {\n return api('get', this.urlsList.indexForElement(elementId))\n .then(entities => entities.map(entity => new this(entity)))\n }\n\n /**\n * @returns {string} The hardcoded class name\n */\n static getClassName () { return 'Harvest' }\n}\n\nHarvest.updatableAttributes = ATTRIBUTES\nHarvest.urls = {\n indexForMap (mapId) { return `/api/maps/${mapId}/all_harvests` },\n indexForElement (elementId) { return `/api/elements/${elementId}/harvests` },\n show (id) { return `/api/harvests/${id}` },\n create () { return '/api/harvests' },\n update (payload) { return `/api/harvests/${payload.id}` },\n destroy (id) { return `/api/harvests/${id}` },\n}\n\nexport default Harvest\n","\n \n \n \n \n {{ caption }}\n \n \n\n\n\n","\n \n \n \n \n \n \n {{ caption }}\n \n\n \n \n \n \n\n\n\n","\n {changeTheme()}\" />\n\n\n\n","import api from '../../tools/api'\nimport Model from './Model'\n\n/**\n * List of attributes that can be updated in `updateAttributes()`\n *\n * @type {string[]}\n */\nconst ATTRIBUTES = ['name', 'center', 'userId', 'createdAt', 'updatedAt', 'extentWidth', 'extentHeight', 'publiclyAvailable', 'notes', 'hideBackground', 'backgroundColor', 'picture']\n\nclass Map extends Model {\n /* eslint-disable camelcase, jsdoc/require-param-description */\n /**\n * @param {object} payload - Data from API\n * @param {null|number} payload.id\n * @param {string} payload.name\n * @param {{x:number, y:number}} payload.center\n * @param {number} payload.user_id\n * @param {Date|string} payload.created_at\n * @param {Date|string} payload.updated_at\n * @param {number} payload.extent_width\n * @param {number} payload.extent_height\n * @param {boolean} payload.publicly_available\n * @param {string} payload.notes\n * @param {boolean} payload.hide_background\n * @param {string} payload.background_color\n * @param {number} payload.observations_count\n * @param {({url: string, size: number[]}|null)} payload.picture\n */\n constructor ({ id = null, name, center, user_id, created_at, updated_at, extent_width, extent_height, publicly_available, notes, hide_background, background_color, observations_count, picture }) {\n super()\n this.id = id\n this.name = name\n this.center = [center.x, center.y]\n this.userId = user_id\n this.createdAt = created_at ? new Date(created_at) : null\n this.updatedAt = updated_at ? new Date(updated_at) : null\n this.extentWidth = extent_width\n this.extentHeight = extent_height\n this.publiclyAvailable = publicly_available\n this.notes = notes\n this.hideBackground = hide_background\n this.backgroundColor = background_color\n this.observationsCount = observations_count\n this.picture = picture\n }\n /* eslint-enable camelcase, jsdoc/require-param-description */\n\n get isOSM () {\n return this.picture === null\n }\n\n /**\n * Creates a new map\n *\n * @param {object} payload - Object with underscored keys\n * @returns {Promise} Map instance\n */\n static create (payload) {\n const formData = new FormData()\n formData.append('map[name]', payload.name)\n formData.append('map[center][]', payload.center[0])\n formData.append('map[center][]', payload.center[1])\n formData.append('map[picture]', payload.picture)\n formData.append('map[extent_height]', payload.extent_height)\n formData.append('map[extent_width]', payload.extent_width)\n formData.append('map[publicly_available]', payload.publicly_available)\n // We're in form-data, not a JSON object. Prevent sending \"null\" values.\n if (payload.background_color) formData.append('map[background_color]', payload.background_color)\n\n return api('post', '/api/maps', formData)\n .then(map => new Map(map))\n }\n\n /**\n * Checks in the Account VueX store if current user is the map owner\n *\n * @returns {boolean} True when the user is the map owner\n */\n get isOwned () {\n const account = this.constructor.store.getters.account\n return account && account.id === this.userId\n }\n\n /**\n * @returns {string} The hardcoded class name\n */\n static getClassName () { return 'Map' }\n}\n\nMap.updatableAttributes = ATTRIBUTES\nMap.urls = {\n index () { return '/api/maps' },\n show (id) { return `/api/maps/${id}` },\n update (payload) { return `/api/maps/${payload.id}` },\n destroy (id) { return `/api/maps/${id}` },\n}\n\nexport default Map\n","import Model from './Model'\nimport api from '../../tools/api'\n\n/**\n * List of attributes that can be updated in `updateAttributes()`\n *\n * @type {string[]}\n */\nconst ATTRIBUTES = ['role', 'username', 'accountState']\n\nclass User extends Model {\n /* eslint-disable camelcase, jsdoc/require-param-description */\n /**\n * @param {object} payload - Data from API\n * @param {null|number} payload.id\n * @param {string} payload.role\n * @param {string} payload.username\n * @param {string} payload.account_state\n */\n constructor ({ id = null, role, username, account_state }) {\n super()\n this.id = id\n this.role = role\n this.username = username\n this.accountState = account_state\n }\n /* eslint-enable camelcase, jsdoc/require-param-description */\n\n /**\n * @returns {string} The hardcoded class name\n */\n static getClassName () { return 'User' }\n\n /**\n * Search for users from partial username or email.\n * Only use one or the other, the server will only process one of them.\n *\n * @param {object} payload - Object with username or email\n * @param {string} [payload.email] - Email address\n * @param {string} [payload.username] - Partial username\n * @returns {Promise} List of User instances\n */\n static search (payload) {\n return api('post', '/api/users/search', payload)\n .then(entities => entities.map(e => new this(e)))\n }\n\n static sendInvitation (payload) {\n return api('post', '/api/users/invite', { user: payload })\n .then(entity => new this(entity))\n }\n}\n\nUser.updatableAttributes = ATTRIBUTES\nUser.urls = {\n show (id) { return `/api/users/${id}` },\n}\n\nexport default User\n","import Model from './Model'\nimport api from '../../tools/api'\nimport User from './User'\n\n/**\n * List of attributes that can be updated in `updateAttributes()`\n *\n * @type {string[]}\n */\nconst ATTRIBUTES = ['type', 'content', 'subjectType', 'subjectId', 'subject', 'mapId', 'mapName', 'recipientId', 'senderId', 'sender', 'archivedAt', 'createdAt', 'updatedAt']\n\nclass Notification extends Model {\n /* eslint-disable camelcase, jsdoc/require-param-description */\n /**\n * @param {object} payload - Data from API\n * @param {null|number} payload.id\n * @param {string} payload.type\n * @param {object} payload.content\n * @param {object|null} payload.subject\n * @param {string} payload.subject_type\n * @param {number} payload.subject_id\n * @param {number} payload.recipient_id\n * @param {number} payload.sender_id\n * @param {object|null} payload.sender\n * @param {Date|string} payload.archived_at\n * @param {Date|string} payload.created_at\n * @param {Date|string} payload.updated_at\n * @param {string} payload.map_name\n * @param {number} payload.map_id\n */\n constructor ({ id = null, type, content, subject, subject_type, subject_id, recipient_id, sender, sender_id, archived_at, created_at, updated_at, map_id, map_name }) {\n super()\n this.id = id\n this.type = type\n this.content = content\n this.subjectType = subject_type\n this.subjectId = subject_id\n this.recipientId = recipient_id\n this.senderId = sender_id\n this.archivedAt = archived_at ? new Date(archived_at) : null\n this.createdAt = created_at ? new Date(created_at) : null\n this.updatedAt = updated_at ? new Date(updated_at) : null\n this.mapId = map_id\n this.mapName = map_name\n\n this.sender = sender ? new User(sender) : null\n this.subject = subject\n }\n /* eslint-enable camelcase, jsdoc/require-param-description */\n\n /**\n * @returns {string} The hardcoded class name\n */\n static getClassName () { return 'Notification' }\n\n /**\n * Sets a notification as archive\n *\n * @param {number} id - Identifier\n * @returns {Promise} The new Notification instance\n */\n static archive (id) {\n return api('patch', `/api/notifications/${id}/archive`, {}).then((entity) => new this(entity))\n }\n\n static archiveAll () {\n return api('patch', '/api/notifications/archive_all').then((entities) => entities.map(entity => new this(entity)))\n }\n\n static destroyAllArchived () {\n return api('delete', '/api/notifications/destroy_all_archived').then((entities) => entities.map(entity => new this(entity)))\n }\n\n /** Override as there is no route in the api anyway */\n static create () { throw new Error('Not implemented') }\n /** Override as there is no route in the api anyway */\n static update () { throw new Error('Not implemented') }\n}\n\nNotification.updatableAttributes = ATTRIBUTES\nNotification.urls = {\n index () { return '/api/notifications' },\n show (id) { return `/api/notifications/${id}` },\n destroy (id) { return `/api/notifications/${id}` },\n}\n\nexport default Notification\n","import Placeable from './Placeable'\n\n/**\n * @typedef {import('./Layer')} Layer\n * @typedef {import('ol/Feature')} Feature\n * @typedef {import('ol/layer/Vector')} VectorLayer\n */\n\n/**\n * List of attributes that can be updated in `updateAttributes()`\n *\n * @type {string[]}\n */\nconst ATTRIBUTES = ['name', 'geometry', 'mapId', 'createdAt', 'updatedAt', 'layerId', 'geometryType']\n\nclass Patch extends Placeable {\n /* eslint-disable camelcase, jsdoc/require-param-description */\n /**\n * @param {object} payload - Data from API\n * @param {null|number} payload.id\n * @param {string} payload.name\n * @param {object} payload.geometry\n * @param {number} payload.map_id\n * @param {Date|string} payload.created_at\n * @param {Date|string} payload.updated_at\n * @param {number} payload.layer_id\n * @param {number} payload.observations_count\n * @param {string} payload.geometry_type\n */\n constructor ({ id = null, name, geometry, map_id, created_at, updated_at, layer_id, observations_count, geometry_type }) {\n super()\n this.id = id\n this.name = name\n this.geometry = geometry\n this.mapId = map_id\n this.createdAt = created_at ? new Date(created_at) : null\n this.updatedAt = updated_at ? new Date(updated_at) : null\n this.layerId = layer_id\n this.observationsCount = observations_count\n this.geometryType = geometry_type\n }\n /* eslint-enable camelcase, jsdoc/require-param-description */\n\n /**\n * @returns {boolean} True if patch contains no element.\n */\n get isEmpty () {\n return this.elements.length === 0\n }\n\n /**\n * Gets the patch elements from VueX store\n *\n * @returns {Element[]} List of elements on this patch\n */\n get elements () { return this.constructor.store.getters.elementsByPatchId(this.id) }\n\n get activeElements () { return this.constructor.store.getters.activeElementsByPatchId(this.id) }\n get lastYearElements () { return this.constructor.store.getters.lastYearElementsByPatchId(this.id) }\n\n /**\n * Determines the patch name from patch type and content\n *\n * @returns {string} Determined patch name\n */\n get displayName () {\n return this.name || I18n.t('generic.patch.name')\n }\n\n /**\n * Whether this patch is considered virtual\n *\n * @returns {boolean} True if the patch is virtual\n */\n get isVirtual () {\n return this.geometryType === 'Virtual'\n }\n\n /**\n * @returns {string} The hardcoded class name\n */\n static getClassName () { return 'Patch' }\n}\n\nPatch.updatableAttributes = ATTRIBUTES\nPatch.urls = {\n index (mapId) { return `/api/maps/${mapId}/patches` },\n show (id) { return `/api/patches/${id}` },\n create () { return '/api/patches' },\n update (payload) { return `/api/patches/${payload.id}` },\n destroy (id) { return `/api/patches/${id}` },\n}\n\nexport default Patch\n","import Placeable from './Placeable'\n\n/**\n * @typedef {import('ol/Feature')} Feature\n * @typedef {import('./Layer')} Layer\n */\n\n/**\n * List of attributes that can be updated in `updateAttributes()`\n *\n * @type {string[]}\n */\nconst ATTRIBUTES = ['name', 'strokeWidth', 'strokeColor', 'strokeStylePreset', 'backgroundColor', 'geometry', 'mapId', 'createdAt', 'updatedAt', 'layerId', 'geometryType']\n\nclass Path extends Placeable {\n /* eslint-disable camelcase, jsdoc/require-param-description */\n /**\n * @param {object} payload - Data from API\n * @param {null|number} payload.id\n * @param {string} payload.name\n * @param {number} payload.stroke_width\n * @param {string} payload.stroke_color\n * @param {string} payload.background_color\n * @param {object} payload.geometry\n * @param {number} payload.map_id\n * @param {Date|string} payload.created_at\n * @param {Date|string} payload.updated_at\n * @param {number} payload.layer_id\n * @param {string} payload.stroke_style_preset\n * @param {number} payload.observations_count\n * @param {string} payload.geometry_type\n */\n constructor ({ id = null, name, stroke_width, stroke_color, background_color, geometry, map_id, created_at, updated_at, layer_id, stroke_style_preset, observations_count, geometry_type }) {\n super()\n this.id = id\n this.name = name\n this.strokeWidth = stroke_width\n this.strokeColor = stroke_color\n this.backgroundColor = background_color\n this.geometry = geometry\n this.mapId = map_id\n this.createdAt = created_at ? new Date(created_at) : null\n this.updatedAt = updated_at ? new Date(updated_at) : null\n this.layerId = layer_id\n this.strokeStylePreset = stroke_style_preset || 'default'\n this.observationsCount = observations_count\n this.geometryType = geometry_type\n }\n /* eslint-enable camelcase, jsdoc/require-param-description */\n\n get displayName () { return this.name || I18n.t('js.path.default_name') }\n\n /**\n * @returns {string} The hardcoded class name\n */\n static getClassName () { return 'Path' }\n}\n\nPath.updatableAttributes = ATTRIBUTES\nPath.urls = {\n index (mapId) { return `/api/maps/${mapId}/paths` },\n show (id) { return `/api/paths/${id}` },\n create () { return '/api/paths' },\n update (payload) { return `/api/paths/${payload.id}` },\n destroy (id) { return `/api/paths/${id}` },\n}\n\nexport default Path\n","\n \n \n {{ text }}\n \n\n\n\n","\n \n \n \n {{ $d(observation.madeAt, 'date') }}\n \n \n 0\" icon=\"chat\" :title=\"$t('activerecord.attributes.observation.comments_count')\" class=\"-text--medium\">\n {{ observation.commentsCount }}\n \n \n \n \n {{ observation.title }}\n \n\n \n \n \n \n \n \n\n \n \n \n {{ observation.content }}\n \n\n \n \n\n \n \n {{ $t('js.observations.comments') }}\n \n \n \n \n \n \n\n\n\n","\n \n \n \n {{ $t('js.generic.loading_data_error') }}\n {{ $t('js.generic.retry') }}\n \n \n \n \n \n \n \n \n \n \n\n \n \n \n\n\n\n","class StrokeStylePreset {\n /**\n * @param {string} i18n - Translation path\n * @param {number[]} dashArray - Array of values for dashes.\n */\n constructor (i18n, dashArray = []) {\n this.dashArrayValues = dashArray\n this.i18n = i18n\n }\n\n dashArray (width) {\n return this.dashArrayValues.map(n => n * width)\n }\n\n style (width) {\n const style = {\n strokeWidth: `${width}px`,\n }\n if (this.dashArrayValues.length > 0) style.strokeDasharray = this.dashArray(width).join(',')\n\n return style\n }\n}\n\nexport default {\n // I18n use $t('js.stroke_style_presets.default')\n default: new StrokeStylePreset('js.stroke_style_presets.default'),\n // I18n use $t('js.stroke_style_presets.dotted')\n dotted: new StrokeStylePreset('js.stroke_style_presets.dotted', [1, 1]),\n // I18n use $t('js.stroke_style_presets.dashed')\n dashed: new StrokeStylePreset('js.stroke_style_presets.dashed', [4, 4]),\n // I18n use $t('js.stroke_style_presets.dashed2')\n dashed2: new StrokeStylePreset('js.stroke_style_presets.dashed2', [4, 4, 1, 4]),\n // I18n use $t('js.stroke_style_presets.dashed3')\n dashed3: new StrokeStylePreset('js.stroke_style_presets.dashed3', [4, 4, 1, 2, 1, 4]),\n // I18n use $t('js.stroke_style_presets.long_dashes')\n long_dashes: new StrokeStylePreset('js.stroke_style_presets.long_dashes', [8, 4]),\n // I18n use $t('js.stroke_style_presets.long_dashes2')\n long_dashes2: new StrokeStylePreset('js.stroke_style_presets.long_dashes2', [4, 8]),\n // I18n use $t('js.stroke_style_presets.long_dashes3')\n long_dashes3: new StrokeStylePreset('js.stroke_style_presets.long_dashes3', [4, 4, 8, 4]),\n}\n","import Model from './Model'\n\n/**\n * @typedef {import('./Genus')} Genus\n * @typedef {import('./ResourceNote')} ResourceNote\n * @typedef {import('./ResourceInteractionsGroup')} ResourceInteractionsGroup\n * @typedef {import('./ResourceInteraction')} ResourceInteraction\n */\n\n/**\n * List of attributes that can be updated in `updateAttributes()`\n *\n * @type {string[]}\n */\nconst ATTRIBUTES = ['name', 'description', 'parentId', 'createdAt', 'updatedAt', 'genusId', 'commonNames', 'color', 'latinName', 'diameter', 'shelteredSowingMonths', 'soilSowingMonths', 'harvestingMonths', 'sources', 'syncId', 'generic', 'childCount', 'resourceInteractionsGroupId', 'cropRotationGroup', 'tagList']\n\nclass Resource extends Model {\n /* eslint-disable camelcase, jsdoc/require-param-description */\n /**\n * @param {object} payload - Data from API\n * @param {null|number} payload.id\n * @param {string} payload.name\n * @param {string} payload.description\n * @param {number|null} payload.parent_id\n * @param {Date|string} payload.created_at\n * @param {Date|string} payload.updated_at\n * @param {number} payload.genus_id\n * @param {object} payload.common_names\n * @param {string} payload.color\n * @param {string} payload.latin_name\n * @param {number} payload.diameter\n * @param {boolean[]} payload.sheltered_sowing_months\n * @param {boolean[]} payload.soil_sowing_months\n * @param {boolean[]} payload.harvesting_months\n * @param {object} payload.sources\n * @param {string} payload.sync_id\n * @param {boolean} payload.generic\n * @param {number} payload.child_count\n * @param {number} payload.resource_interactions_group_id\n * @param {string} payload.crop_rotation_group\n * @param {string[]} payload.tag_list\n */\n constructor ({ id = null, name, description, parent_id, created_at, updated_at, genus_id, common_names, color, latin_name, diameter, sheltered_sowing_months, soil_sowing_months, harvesting_months, sources, sync_id, generic, child_count, resource_interactions_group_id, crop_rotation_group, tag_list }) {\n super()\n this.id = id\n this.name = name\n this.description = description || null\n this.parentId = parent_id\n this.createdAt = created_at ? new Date(created_at) : null\n this.updatedAt = updated_at ? new Date(updated_at) : null\n this.genusId = genus_id || null\n this.commonNames = common_names\n this.latinName = latin_name\n this.diameter = diameter || null\n this.shelteredSowingMonths = sheltered_sowing_months || []\n this.soilSowingMonths = soil_sowing_months || []\n this.harvestingMonths = harvesting_months || []\n this.sources = sources || []\n this.syncId = sync_id || null\n this.generic = generic\n this.childCount = child_count\n this.resourceInteractionsGroupId = resource_interactions_group_id\n this.cropRotationGroup = crop_rotation_group\n this.tagList = tag_list || []\n\n this.fillColor = `rgba(${color},0.2)`\n this.borderColor = `rgb(${color})`\n\n this.generatePicturePath()\n this.generatePatternPicturePath()\n }\n /* eslint-enable camelcase, jsdoc/require-param-description */\n\n /**\n * Gets child resources from VueX store\n *\n * @returns {Resource[]} The resource's child resources\n */\n get children () { return this.constructor.store.getters.childResources(this.id) }\n\n /**\n * Gets parent resource from VueX store\n *\n * @returns {(Resource|null)} The resource's parent resource\n */\n get parent () { return this.constructor.store.getters.resource(this.parentId) }\n\n /**\n * Gets genus from VueX store\n *\n * @returns {(Genus|null)} The resource's genus\n */\n get genus () { return this.constructor.store.getters.genus(this.genusId) }\n\n /**\n * Gets resources notes from VueX store\n *\n * @returns {ResourceNote[]} The resource's notes\n */\n get notes () { return this.constructor.store.getters.resourceNotesForResource(this.id) }\n\n /**\n * Gets resources interactions group from VueX store\n *\n * @returns {ResourceInteractionsGroup|null} The resource's group\n */\n get resourceInteractionsGroup () {\n if (!this.resourceInteractionsGroupId) return null\n\n return this.constructor.store.getters.resourceInteractionsGroup(this.resourceInteractionsGroupId)\n }\n\n /**\n * Returns the interactions between this resource and a list of interaction groups\n *\n * @param {ResourceInteractionsGroup[]} otherGroups - List of other groups\n * @returns {ResourceInteraction[]} List of interactions\n */\n resourceInteractionsWithGroups (otherGroups) {\n const group = this.resourceInteractionsGroup\n if (!group || group.interactions.length === 0) return []\n\n // Interactions in which current group is involved\n const finalInteractions = []\n\n // Find unique interactions with current resource\n otherGroups.forEach((otherGroup) => {\n otherGroup.interactions.forEach((interaction) => {\n if (interaction.targetId === group.id || interaction.subjectId === group.id) {\n finalInteractions.push(interaction)\n }\n })\n })\n\n return finalInteractions\n }\n\n /**\n * Builds an encoded source for picture\n */\n generatePicturePath () {\n const string = `\n \n \n ${this.name[0]}\n \n `\n const blob = new Blob([string], { type: 'image/svg+xml;charset=utf-8' })\n const domURL = self.URL || self.webkitURL || self\n\n this.picturePath = domURL.createObjectURL(blob)\n }\n\n /**\n * Builds an encoded source for pattern picture\n */\n generatePatternPicturePath () {\n const string = `\n \n \n ${this.name[0]}\n \n `\n const blob = new Blob([string], { type: 'image/svg+xml;charset=utf-8' })\n const domURL = self.URL || self.webkitURL || self\n\n this.patternPicturePath = domURL.createObjectURL(blob)\n }\n\n /**\n * @returns {string} The hardcoded class name\n */\n static getClassName () { return 'Resource' }\n}\n\nResource.updatableAttributes = ATTRIBUTES\nResource.urls = {\n index () { return '/api/resources' },\n show (id) { return `/api/resources/${id}` },\n create () { return '/api/resources' },\n update (payload) { return `/api/resources/${payload.id}` },\n destroy (id) { return `/api/resources/${id}` },\n}\n\nexport default Resource\n","/**\n * Custom positioning reference element.\n * @see https://floating-ui.com/docs/virtual-elements\n */\n\nconst sides = ['top', 'right', 'bottom', 'left'];\nconst alignments = ['start', 'end'];\nconst placements = /*#__PURE__*/sides.reduce((acc, side) => acc.concat(side, side + \"-\" + alignments[0], side + \"-\" + alignments[1]), []);\nconst min = Math.min;\nconst max = Math.max;\nconst round = Math.round;\nconst floor = Math.floor;\nconst createCoords = v => ({\n x: v,\n y: v\n});\nconst oppositeSideMap = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nconst oppositeAlignmentMap = {\n start: 'end',\n end: 'start'\n};\nfunction clamp(start, value, end) {\n return max(start, min(value, end));\n}\nfunction evaluate(value, param) {\n return typeof value === 'function' ? value(param) : value;\n}\nfunction getSide(placement) {\n return placement.split('-')[0];\n}\nfunction getAlignment(placement) {\n return placement.split('-')[1];\n}\nfunction getOppositeAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}\nfunction getAxisLength(axis) {\n return axis === 'y' ? 'height' : 'width';\n}\nfunction getSideAxis(placement) {\n return ['top', 'bottom'].includes(getSide(placement)) ? 'y' : 'x';\n}\nfunction getAlignmentAxis(placement) {\n return getOppositeAxis(getSideAxis(placement));\n}\nfunction getAlignmentSides(placement, rects, rtl) {\n if (rtl === void 0) {\n rtl = false;\n }\n const alignment = getAlignment(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const length = getAxisLength(alignmentAxis);\n let mainAlignmentSide = alignmentAxis === 'x' ? alignment === (rtl ? 'end' : 'start') ? 'right' : 'left' : alignment === 'start' ? 'bottom' : 'top';\n if (rects.reference[length] > rects.floating[length]) {\n mainAlignmentSide = getOppositePlacement(mainAlignmentSide);\n }\n return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)];\n}\nfunction getExpandedPlacements(placement) {\n const oppositePlacement = getOppositePlacement(placement);\n return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];\n}\nfunction getOppositeAlignmentPlacement(placement) {\n return placement.replace(/start|end/g, alignment => oppositeAlignmentMap[alignment]);\n}\nfunction getSideList(side, isStart, rtl) {\n const lr = ['left', 'right'];\n const rl = ['right', 'left'];\n const tb = ['top', 'bottom'];\n const bt = ['bottom', 'top'];\n switch (side) {\n case 'top':\n case 'bottom':\n if (rtl) return isStart ? rl : lr;\n return isStart ? lr : rl;\n case 'left':\n case 'right':\n return isStart ? tb : bt;\n default:\n return [];\n }\n}\nfunction getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {\n const alignment = getAlignment(placement);\n let list = getSideList(getSide(placement), direction === 'start', rtl);\n if (alignment) {\n list = list.map(side => side + \"-\" + alignment);\n if (flipAlignment) {\n list = list.concat(list.map(getOppositeAlignmentPlacement));\n }\n }\n return list;\n}\nfunction getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, side => oppositeSideMap[side]);\n}\nfunction expandPaddingObject(padding) {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...padding\n };\n}\nfunction getPaddingObject(padding) {\n return typeof padding !== 'number' ? expandPaddingObject(padding) : {\n top: padding,\n right: padding,\n bottom: padding,\n left: padding\n };\n}\nfunction rectToClientRect(rect) {\n const {\n x,\n y,\n width,\n height\n } = rect;\n return {\n width,\n height,\n top: y,\n left: x,\n right: x + width,\n bottom: y + height,\n x,\n y\n };\n}\n\nexport { alignments, clamp, createCoords, evaluate, expandPaddingObject, floor, getAlignment, getAlignmentAxis, getAlignmentSides, getAxisLength, getExpandedPlacements, getOppositeAlignmentPlacement, getOppositeAxis, getOppositeAxisPlacements, getOppositePlacement, getPaddingObject, getSide, getSideAxis, max, min, placements, rectToClientRect, round, sides };\n","import { getSideAxis, getAlignmentAxis, getAxisLength, getSide, getAlignment, evaluate, getPaddingObject, rectToClientRect, min, clamp, placements, getAlignmentSides, getOppositeAlignmentPlacement, getOppositePlacement, getExpandedPlacements, getOppositeAxisPlacements, sides, max, getOppositeAxis } from '@floating-ui/utils';\nexport { rectToClientRect } from '@floating-ui/utils';\n\nfunction computeCoordsFromPlacement(_ref, placement, rtl) {\n let {\n reference,\n floating\n } = _ref;\n const sideAxis = getSideAxis(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const alignLength = getAxisLength(alignmentAxis);\n const side = getSide(placement);\n const isVertical = sideAxis === 'y';\n const commonX = reference.x + reference.width / 2 - floating.width / 2;\n const commonY = reference.y + reference.height / 2 - floating.height / 2;\n const commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2;\n let coords;\n switch (side) {\n case 'top':\n coords = {\n x: commonX,\n y: reference.y - floating.height\n };\n break;\n case 'bottom':\n coords = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n case 'right':\n coords = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n case 'left':\n coords = {\n x: reference.x - floating.width,\n y: commonY\n };\n break;\n default:\n coords = {\n x: reference.x,\n y: reference.y\n };\n }\n switch (getAlignment(placement)) {\n case 'start':\n coords[alignmentAxis] -= commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n case 'end':\n coords[alignmentAxis] += commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n }\n return coords;\n}\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n *\n * This export does not have any `platform` interface logic. You will need to\n * write one for the platform you are using Floating UI with.\n */\nconst computePosition = async (reference, floating, config) => {\n const {\n placement = 'bottom',\n strategy = 'absolute',\n middleware = [],\n platform\n } = config;\n const validMiddleware = middleware.filter(Boolean);\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(floating));\n let rects = await platform.getElementRects({\n reference,\n floating,\n strategy\n });\n let {\n x,\n y\n } = computeCoordsFromPlacement(rects, placement, rtl);\n let statefulPlacement = placement;\n let middlewareData = {};\n let resetCount = 0;\n for (let i = 0; i < validMiddleware.length; i++) {\n const {\n name,\n fn\n } = validMiddleware[i];\n const {\n x: nextX,\n y: nextY,\n data,\n reset\n } = await fn({\n x,\n y,\n initialPlacement: placement,\n placement: statefulPlacement,\n strategy,\n middlewareData,\n rects,\n platform,\n elements: {\n reference,\n floating\n }\n });\n x = nextX != null ? nextX : x;\n y = nextY != null ? nextY : y;\n middlewareData = {\n ...middlewareData,\n [name]: {\n ...middlewareData[name],\n ...data\n }\n };\n if (reset && resetCount <= 50) {\n resetCount++;\n if (typeof reset === 'object') {\n if (reset.placement) {\n statefulPlacement = reset.placement;\n }\n if (reset.rects) {\n rects = reset.rects === true ? await platform.getElementRects({\n reference,\n floating,\n strategy\n }) : reset.rects;\n }\n ({\n x,\n y\n } = computeCoordsFromPlacement(rects, statefulPlacement, rtl));\n }\n i = -1;\n }\n }\n return {\n x,\n y,\n placement: statefulPlacement,\n strategy,\n middlewareData\n };\n};\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nasync function detectOverflow(state, options) {\n var _await$platform$isEle;\n if (options === void 0) {\n options = {};\n }\n const {\n x,\n y,\n platform,\n rects,\n elements,\n strategy\n } = state;\n const {\n boundary = 'clippingAncestors',\n rootBoundary = 'viewport',\n elementContext = 'floating',\n altBoundary = false,\n padding = 0\n } = evaluate(options, state);\n const paddingObject = getPaddingObject(padding);\n const altContext = elementContext === 'floating' ? 'reference' : 'floating';\n const element = elements[altBoundary ? altContext : elementContext];\n const clippingClientRect = rectToClientRect(await platform.getClippingRect({\n element: ((_await$platform$isEle = await (platform.isElement == null ? void 0 : platform.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || (await (platform.getDocumentElement == null ? void 0 : platform.getDocumentElement(elements.floating))),\n boundary,\n rootBoundary,\n strategy\n }));\n const rect = elementContext === 'floating' ? {\n x,\n y,\n width: rects.floating.width,\n height: rects.floating.height\n } : rects.reference;\n const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating));\n const offsetScale = (await (platform.isElement == null ? void 0 : platform.isElement(offsetParent))) ? (await (platform.getScale == null ? void 0 : platform.getScale(offsetParent))) || {\n x: 1,\n y: 1\n } : {\n x: 1,\n y: 1\n };\n const elementClientRect = rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({\n elements,\n rect,\n offsetParent,\n strategy\n }) : rect);\n return {\n top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,\n bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,\n left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,\n right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x\n };\n}\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = options => ({\n name: 'arrow',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n platform,\n elements,\n middlewareData\n } = state;\n // Since `element` is required, we don't Partial<> the type.\n const {\n element,\n padding = 0\n } = evaluate(options, state) || {};\n if (element == null) {\n return {};\n }\n const paddingObject = getPaddingObject(padding);\n const coords = {\n x,\n y\n };\n const axis = getAlignmentAxis(placement);\n const length = getAxisLength(axis);\n const arrowDimensions = await platform.getDimensions(element);\n const isYAxis = axis === 'y';\n const minProp = isYAxis ? 'top' : 'left';\n const maxProp = isYAxis ? 'bottom' : 'right';\n const clientProp = isYAxis ? 'clientHeight' : 'clientWidth';\n const endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length];\n const startDiff = coords[axis] - rects.reference[axis];\n const arrowOffsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(element));\n let clientSize = arrowOffsetParent ? arrowOffsetParent[clientProp] : 0;\n\n // DOM platform can return `window` as the `offsetParent`.\n if (!clientSize || !(await (platform.isElement == null ? void 0 : platform.isElement(arrowOffsetParent)))) {\n clientSize = elements.floating[clientProp] || rects.floating[length];\n }\n const centerToReference = endDiff / 2 - startDiff / 2;\n\n // If the padding is large enough that it causes the arrow to no longer be\n // centered, modify the padding so that it is centered.\n const largestPossiblePadding = clientSize / 2 - arrowDimensions[length] / 2 - 1;\n const minPadding = min(paddingObject[minProp], largestPossiblePadding);\n const maxPadding = min(paddingObject[maxProp], largestPossiblePadding);\n\n // Make sure the arrow doesn't overflow the floating element if the center\n // point is outside the floating element's bounds.\n const min$1 = minPadding;\n const max = clientSize - arrowDimensions[length] - maxPadding;\n const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;\n const offset = clamp(min$1, center, max);\n\n // If the reference is small enough that the arrow's padding causes it to\n // to point to nothing for an aligned placement, adjust the offset of the\n // floating element itself. To ensure `shift()` continues to take action,\n // a single reset is performed when this is true.\n const shouldAddOffset = !middlewareData.arrow && getAlignment(placement) != null && center !== offset && rects.reference[length] / 2 - (center < min$1 ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;\n const alignmentOffset = shouldAddOffset ? center < min$1 ? center - min$1 : center - max : 0;\n return {\n [axis]: coords[axis] + alignmentOffset,\n data: {\n [axis]: offset,\n centerOffset: center - offset - alignmentOffset,\n ...(shouldAddOffset && {\n alignmentOffset\n })\n },\n reset: shouldAddOffset\n };\n }\n});\n\nfunction getPlacementList(alignment, autoAlignment, allowedPlacements) {\n const allowedPlacementsSortedByAlignment = alignment ? [...allowedPlacements.filter(placement => getAlignment(placement) === alignment), ...allowedPlacements.filter(placement => getAlignment(placement) !== alignment)] : allowedPlacements.filter(placement => getSide(placement) === placement);\n return allowedPlacementsSortedByAlignment.filter(placement => {\n if (alignment) {\n return getAlignment(placement) === alignment || (autoAlignment ? getOppositeAlignmentPlacement(placement) !== placement : false);\n }\n return true;\n });\n}\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'autoPlacement',\n options,\n async fn(state) {\n var _middlewareData$autoP, _middlewareData$autoP2, _placementsThatFitOnE;\n const {\n rects,\n middlewareData,\n placement,\n platform,\n elements\n } = state;\n const {\n crossAxis = false,\n alignment,\n allowedPlacements = placements,\n autoAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n const placements$1 = alignment !== undefined || allowedPlacements === placements ? getPlacementList(alignment || null, autoAlignment, allowedPlacements) : allowedPlacements;\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const currentIndex = ((_middlewareData$autoP = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP.index) || 0;\n const currentPlacement = placements$1[currentIndex];\n if (currentPlacement == null) {\n return {};\n }\n const alignmentSides = getAlignmentSides(currentPlacement, rects, await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)));\n\n // Make `computeCoords` start from the right place.\n if (placement !== currentPlacement) {\n return {\n reset: {\n placement: placements$1[0]\n }\n };\n }\n const currentOverflows = [overflow[getSide(currentPlacement)], overflow[alignmentSides[0]], overflow[alignmentSides[1]]];\n const allOverflows = [...(((_middlewareData$autoP2 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP2.overflows) || []), {\n placement: currentPlacement,\n overflows: currentOverflows\n }];\n const nextPlacement = placements$1[currentIndex + 1];\n\n // There are more placements to check.\n if (nextPlacement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n const placementsSortedByMostSpace = allOverflows.map(d => {\n const alignment = getAlignment(d.placement);\n return [d.placement, alignment && crossAxis ?\n // Check along the mainAxis and main crossAxis side.\n d.overflows.slice(0, 2).reduce((acc, v) => acc + v, 0) :\n // Check only the mainAxis.\n d.overflows[0], d.overflows];\n }).sort((a, b) => a[1] - b[1]);\n const placementsThatFitOnEachSide = placementsSortedByMostSpace.filter(d => d[2].slice(0,\n // Aligned placements should not check their opposite crossAxis\n // side.\n getAlignment(d[0]) ? 2 : 3).every(v => v <= 0));\n const resetPlacement = ((_placementsThatFitOnE = placementsThatFitOnEachSide[0]) == null ? void 0 : _placementsThatFitOnE[0]) || placementsSortedByMostSpace[0][0];\n if (resetPlacement !== placement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: resetPlacement\n }\n };\n }\n return {};\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'flip',\n options,\n async fn(state) {\n var _middlewareData$arrow, _middlewareData$flip;\n const {\n placement,\n middlewareData,\n rects,\n initialPlacement,\n platform,\n elements\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true,\n fallbackPlacements: specifiedFallbackPlacements,\n fallbackStrategy = 'bestFit',\n fallbackAxisSideDirection = 'none',\n flipAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n\n // If a reset by the arrow was caused due to an alignment offset being\n // added, we should skip any logic now since `flip()` has already done its\n // work.\n // https://github.com/floating-ui/floating-ui/issues/2549#issuecomment-1719601643\n if ((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n const side = getSide(placement);\n const initialSideAxis = getSideAxis(initialPlacement);\n const isBasePlacement = getSide(initialPlacement) === initialPlacement;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));\n const hasFallbackAxisSideDirection = fallbackAxisSideDirection !== 'none';\n if (!specifiedFallbackPlacements && hasFallbackAxisSideDirection) {\n fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));\n }\n const placements = [initialPlacement, ...fallbackPlacements];\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const overflows = [];\n let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];\n if (checkMainAxis) {\n overflows.push(overflow[side]);\n }\n if (checkCrossAxis) {\n const sides = getAlignmentSides(placement, rects, rtl);\n overflows.push(overflow[sides[0]], overflow[sides[1]]);\n }\n overflowsData = [...overflowsData, {\n placement,\n overflows\n }];\n\n // One or more sides is overflowing.\n if (!overflows.every(side => side <= 0)) {\n var _middlewareData$flip2, _overflowsData$filter;\n const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;\n const nextPlacement = placements[nextIndex];\n if (nextPlacement) {\n // Try next placement and re-run the lifecycle.\n return {\n data: {\n index: nextIndex,\n overflows: overflowsData\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n\n // First, find the candidates that fit on the mainAxis side of overflow,\n // then find the placement that fits the best on the main crossAxis side.\n let resetPlacement = (_overflowsData$filter = overflowsData.filter(d => d.overflows[0] <= 0).sort((a, b) => a.overflows[1] - b.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement;\n\n // Otherwise fallback.\n if (!resetPlacement) {\n switch (fallbackStrategy) {\n case 'bestFit':\n {\n var _overflowsData$filter2;\n const placement = (_overflowsData$filter2 = overflowsData.filter(d => {\n if (hasFallbackAxisSideDirection) {\n const currentSideAxis = getSideAxis(d.placement);\n return currentSideAxis === initialSideAxis ||\n // Create a bias to the `y` side axis due to horizontal\n // reading directions favoring greater width.\n currentSideAxis === 'y';\n }\n return true;\n }).map(d => [d.placement, d.overflows.filter(overflow => overflow > 0).reduce((acc, overflow) => acc + overflow, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$filter2[0];\n if (placement) {\n resetPlacement = placement;\n }\n break;\n }\n case 'initialPlacement':\n resetPlacement = initialPlacement;\n break;\n }\n }\n if (placement !== resetPlacement) {\n return {\n reset: {\n placement: resetPlacement\n }\n };\n }\n }\n return {};\n }\n };\n};\n\nfunction getSideOffsets(overflow, rect) {\n return {\n top: overflow.top - rect.height,\n right: overflow.right - rect.width,\n bottom: overflow.bottom - rect.height,\n left: overflow.left - rect.width\n };\n}\nfunction isAnySideFullyClipped(overflow) {\n return sides.some(side => overflow[side] >= 0);\n}\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'hide',\n options,\n async fn(state) {\n const {\n rects\n } = state;\n const {\n strategy = 'referenceHidden',\n ...detectOverflowOptions\n } = evaluate(options, state);\n switch (strategy) {\n case 'referenceHidden':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n elementContext: 'reference'\n });\n const offsets = getSideOffsets(overflow, rects.reference);\n return {\n data: {\n referenceHiddenOffsets: offsets,\n referenceHidden: isAnySideFullyClipped(offsets)\n }\n };\n }\n case 'escaped':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n altBoundary: true\n });\n const offsets = getSideOffsets(overflow, rects.floating);\n return {\n data: {\n escapedOffsets: offsets,\n escaped: isAnySideFullyClipped(offsets)\n }\n };\n }\n default:\n {\n return {};\n }\n }\n }\n };\n};\n\nfunction getBoundingRect(rects) {\n const minX = min(...rects.map(rect => rect.left));\n const minY = min(...rects.map(rect => rect.top));\n const maxX = max(...rects.map(rect => rect.right));\n const maxY = max(...rects.map(rect => rect.bottom));\n return {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n}\nfunction getRectsByLine(rects) {\n const sortedRects = rects.slice().sort((a, b) => a.y - b.y);\n const groups = [];\n let prevRect = null;\n for (let i = 0; i < sortedRects.length; i++) {\n const rect = sortedRects[i];\n if (!prevRect || rect.y - prevRect.y > prevRect.height / 2) {\n groups.push([rect]);\n } else {\n groups[groups.length - 1].push(rect);\n }\n prevRect = rect;\n }\n return groups.map(rect => rectToClientRect(getBoundingRect(rect)));\n}\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'inline',\n options,\n async fn(state) {\n const {\n placement,\n elements,\n rects,\n platform,\n strategy\n } = state;\n // A MouseEvent's client{X,Y} coords can be up to 2 pixels off a\n // ClientRect's bounds, despite the event listener being triggered. A\n // padding of 2 seems to handle this issue.\n const {\n padding = 2,\n x,\n y\n } = evaluate(options, state);\n const nativeClientRects = Array.from((await (platform.getClientRects == null ? void 0 : platform.getClientRects(elements.reference))) || []);\n const clientRects = getRectsByLine(nativeClientRects);\n const fallback = rectToClientRect(getBoundingRect(nativeClientRects));\n const paddingObject = getPaddingObject(padding);\n function getBoundingClientRect() {\n // There are two rects and they are disjoined.\n if (clientRects.length === 2 && clientRects[0].left > clientRects[1].right && x != null && y != null) {\n // Find the first rect in which the point is fully inside.\n return clientRects.find(rect => x > rect.left - paddingObject.left && x < rect.right + paddingObject.right && y > rect.top - paddingObject.top && y < rect.bottom + paddingObject.bottom) || fallback;\n }\n\n // There are 2 or more connected rects.\n if (clientRects.length >= 2) {\n if (getSideAxis(placement) === 'y') {\n const firstRect = clientRects[0];\n const lastRect = clientRects[clientRects.length - 1];\n const isTop = getSide(placement) === 'top';\n const top = firstRect.top;\n const bottom = lastRect.bottom;\n const left = isTop ? firstRect.left : lastRect.left;\n const right = isTop ? firstRect.right : lastRect.right;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n const isLeftSide = getSide(placement) === 'left';\n const maxRight = max(...clientRects.map(rect => rect.right));\n const minLeft = min(...clientRects.map(rect => rect.left));\n const measureRects = clientRects.filter(rect => isLeftSide ? rect.left === minLeft : rect.right === maxRight);\n const top = measureRects[0].top;\n const bottom = measureRects[measureRects.length - 1].bottom;\n const left = minLeft;\n const right = maxRight;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n return fallback;\n }\n const resetRects = await platform.getElementRects({\n reference: {\n getBoundingClientRect\n },\n floating: elements.floating,\n strategy\n });\n if (rects.reference.x !== resetRects.reference.x || rects.reference.y !== resetRects.reference.y || rects.reference.width !== resetRects.reference.width || rects.reference.height !== resetRects.reference.height) {\n return {\n reset: {\n rects: resetRects\n }\n };\n }\n return {};\n }\n };\n};\n\n// For type backwards-compatibility, the `OffsetOptions` type was also\n// Derivable.\n\nasync function convertValueToCoords(state, options) {\n const {\n placement,\n platform,\n elements\n } = state;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isVertical = getSideAxis(placement) === 'y';\n const mainAxisMulti = ['left', 'top'].includes(side) ? -1 : 1;\n const crossAxisMulti = rtl && isVertical ? -1 : 1;\n const rawValue = evaluate(options, state);\n\n // eslint-disable-next-line prefer-const\n let {\n mainAxis,\n crossAxis,\n alignmentAxis\n } = typeof rawValue === 'number' ? {\n mainAxis: rawValue,\n crossAxis: 0,\n alignmentAxis: null\n } : {\n mainAxis: rawValue.mainAxis || 0,\n crossAxis: rawValue.crossAxis || 0,\n alignmentAxis: rawValue.alignmentAxis\n };\n if (alignment && typeof alignmentAxis === 'number') {\n crossAxis = alignment === 'end' ? alignmentAxis * -1 : alignmentAxis;\n }\n return isVertical ? {\n x: crossAxis * crossAxisMulti,\n y: mainAxis * mainAxisMulti\n } : {\n x: mainAxis * mainAxisMulti,\n y: crossAxis * crossAxisMulti\n };\n}\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = function (options) {\n if (options === void 0) {\n options = 0;\n }\n return {\n name: 'offset',\n options,\n async fn(state) {\n var _middlewareData$offse, _middlewareData$arrow;\n const {\n x,\n y,\n placement,\n middlewareData\n } = state;\n const diffCoords = await convertValueToCoords(state, options);\n\n // If the placement is the same and the arrow caused an alignment offset\n // then we don't need to change the positioning coordinates.\n if (placement === ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse.placement) && (_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n return {\n x: x + diffCoords.x,\n y: y + diffCoords.y,\n data: {\n ...diffCoords,\n placement\n }\n };\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'shift',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = false,\n limiter = {\n fn: _ref => {\n let {\n x,\n y\n } = _ref;\n return {\n x,\n y\n };\n }\n },\n ...detectOverflowOptions\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const crossAxis = getSideAxis(getSide(placement));\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n if (checkMainAxis) {\n const minSide = mainAxis === 'y' ? 'top' : 'left';\n const maxSide = mainAxis === 'y' ? 'bottom' : 'right';\n const min = mainAxisCoord + overflow[minSide];\n const max = mainAxisCoord - overflow[maxSide];\n mainAxisCoord = clamp(min, mainAxisCoord, max);\n }\n if (checkCrossAxis) {\n const minSide = crossAxis === 'y' ? 'top' : 'left';\n const maxSide = crossAxis === 'y' ? 'bottom' : 'right';\n const min = crossAxisCoord + overflow[minSide];\n const max = crossAxisCoord - overflow[maxSide];\n crossAxisCoord = clamp(min, crossAxisCoord, max);\n }\n const limitedCoords = limiter.fn({\n ...state,\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n });\n return {\n ...limitedCoords,\n data: {\n x: limitedCoords.x - x,\n y: limitedCoords.y - y,\n enabled: {\n [mainAxis]: checkMainAxis,\n [crossAxis]: checkCrossAxis\n }\n }\n };\n }\n };\n};\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n options,\n fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n middlewareData\n } = state;\n const {\n offset = 0,\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const crossAxis = getSideAxis(placement);\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n const rawOffset = evaluate(offset, state);\n const computedOffset = typeof rawOffset === 'number' ? {\n mainAxis: rawOffset,\n crossAxis: 0\n } : {\n mainAxis: 0,\n crossAxis: 0,\n ...rawOffset\n };\n if (checkMainAxis) {\n const len = mainAxis === 'y' ? 'height' : 'width';\n const limitMin = rects.reference[mainAxis] - rects.floating[len] + computedOffset.mainAxis;\n const limitMax = rects.reference[mainAxis] + rects.reference[len] - computedOffset.mainAxis;\n if (mainAxisCoord < limitMin) {\n mainAxisCoord = limitMin;\n } else if (mainAxisCoord > limitMax) {\n mainAxisCoord = limitMax;\n }\n }\n if (checkCrossAxis) {\n var _middlewareData$offse, _middlewareData$offse2;\n const len = mainAxis === 'y' ? 'width' : 'height';\n const isOriginSide = ['top', 'left'].includes(getSide(placement));\n const limitMin = rects.reference[crossAxis] - rects.floating[len] + (isOriginSide ? ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse[crossAxis]) || 0 : 0) + (isOriginSide ? 0 : computedOffset.crossAxis);\n const limitMax = rects.reference[crossAxis] + rects.reference[len] + (isOriginSide ? 0 : ((_middlewareData$offse2 = middlewareData.offset) == null ? void 0 : _middlewareData$offse2[crossAxis]) || 0) - (isOriginSide ? computedOffset.crossAxis : 0);\n if (crossAxisCoord < limitMin) {\n crossAxisCoord = limitMin;\n } else if (crossAxisCoord > limitMax) {\n crossAxisCoord = limitMax;\n }\n }\n return {\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n };\n }\n };\n};\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'size',\n options,\n async fn(state) {\n var _state$middlewareData, _state$middlewareData2;\n const {\n placement,\n rects,\n platform,\n elements\n } = state;\n const {\n apply = () => {},\n ...detectOverflowOptions\n } = evaluate(options, state);\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isYAxis = getSideAxis(placement) === 'y';\n const {\n width,\n height\n } = rects.floating;\n let heightSide;\n let widthSide;\n if (side === 'top' || side === 'bottom') {\n heightSide = side;\n widthSide = alignment === ((await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating))) ? 'start' : 'end') ? 'left' : 'right';\n } else {\n widthSide = side;\n heightSide = alignment === 'end' ? 'top' : 'bottom';\n }\n const maximumClippingHeight = height - overflow.top - overflow.bottom;\n const maximumClippingWidth = width - overflow.left - overflow.right;\n const overflowAvailableHeight = min(height - overflow[heightSide], maximumClippingHeight);\n const overflowAvailableWidth = min(width - overflow[widthSide], maximumClippingWidth);\n const noShift = !state.middlewareData.shift;\n let availableHeight = overflowAvailableHeight;\n let availableWidth = overflowAvailableWidth;\n if ((_state$middlewareData = state.middlewareData.shift) != null && _state$middlewareData.enabled.x) {\n availableWidth = maximumClippingWidth;\n }\n if ((_state$middlewareData2 = state.middlewareData.shift) != null && _state$middlewareData2.enabled.y) {\n availableHeight = maximumClippingHeight;\n }\n if (noShift && !alignment) {\n const xMin = max(overflow.left, 0);\n const xMax = max(overflow.right, 0);\n const yMin = max(overflow.top, 0);\n const yMax = max(overflow.bottom, 0);\n if (isYAxis) {\n availableWidth = width - 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : max(overflow.left, overflow.right));\n } else {\n availableHeight = height - 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : max(overflow.top, overflow.bottom));\n }\n }\n await apply({\n ...state,\n availableWidth,\n availableHeight\n });\n const nextDimensions = await platform.getDimensions(elements.floating);\n if (width !== nextDimensions.width || height !== nextDimensions.height) {\n return {\n reset: {\n rects: true\n }\n };\n }\n return {};\n }\n };\n};\n\nexport { arrow, autoPlacement, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, shift, size };\n","import{rectToClientRect as t,computePosition as e}from\"@floating-ui/core\";export{arrow,autoPlacement,detectOverflow,flip,hide,inline,limitShift,offset,shift,size}from\"@floating-ui/core\";function n(t){var e;return(null==(e=t.ownerDocument)?void 0:e.defaultView)||window}function o(t){return n(t).getComputedStyle(t)}const i=Math.min,r=Math.max,l=Math.round;function c(t){const e=o(t);let n=parseFloat(e.width),i=parseFloat(e.height);const r=t.offsetWidth,c=t.offsetHeight,s=l(n)!==r||l(i)!==c;return s&&(n=r,i=c),{width:n,height:i,fallback:s}}function s(t){return h(t)?(t.nodeName||\"\").toLowerCase():\"\"}let f;function u(){if(f)return f;const t=navigator.userAgentData;return t&&Array.isArray(t.brands)?(f=t.brands.map((t=>t.brand+\"/\"+t.version)).join(\" \"),f):navigator.userAgent}function a(t){return t instanceof n(t).HTMLElement}function d(t){return t instanceof n(t).Element}function h(t){return t instanceof n(t).Node}function p(t){if(\"undefined\"==typeof ShadowRoot)return!1;return t instanceof n(t).ShadowRoot||t instanceof ShadowRoot}function g(t){const{overflow:e,overflowX:n,overflowY:i,display:r}=o(t);return/auto|scroll|overlay|hidden|clip/.test(e+i+n)&&![\"inline\",\"contents\"].includes(r)}function m(t){return[\"table\",\"td\",\"th\"].includes(s(t))}function y(t){const e=/firefox/i.test(u()),n=o(t),i=n.backdropFilter||n.WebkitBackdropFilter;return\"none\"!==n.transform||\"none\"!==n.perspective||!!i&&\"none\"!==i||e&&\"filter\"===n.willChange||e&&!!n.filter&&\"none\"!==n.filter||[\"transform\",\"perspective\"].some((t=>n.willChange.includes(t)))||[\"paint\",\"layout\",\"strict\",\"content\"].some((t=>{const e=n.contain;return null!=e&&e.includes(t)}))}function x(){return!/^((?!chrome|android).)*safari/i.test(u())}function w(t){return[\"html\",\"body\",\"#document\"].includes(s(t))}function v(t){return d(t)?t:t.contextElement}const b={x:1,y:1};function L(t){const e=v(t);if(!a(e))return b;const n=e.getBoundingClientRect(),{width:o,height:i,fallback:r}=c(e);let s=(r?l(n.width):n.width)/o,f=(r?l(n.height):n.height)/i;return s&&Number.isFinite(s)||(s=1),f&&Number.isFinite(f)||(f=1),{x:s,y:f}}function E(t,e,o,i){var r,l;void 0===e&&(e=!1),void 0===o&&(o=!1);const c=t.getBoundingClientRect(),s=v(t);let f=b;e&&(i?d(i)&&(f=L(i)):f=L(t));const u=s?n(s):window,a=!x()&&o;let h=(c.left+(a&&(null==(r=u.visualViewport)?void 0:r.offsetLeft)||0))/f.x,p=(c.top+(a&&(null==(l=u.visualViewport)?void 0:l.offsetTop)||0))/f.y,g=c.width/f.x,m=c.height/f.y;if(s){const t=n(s),e=i&&d(i)?n(i):i;let o=t.frameElement;for(;o&&i&&e!==t;){const t=L(o),e=o.getBoundingClientRect(),i=getComputedStyle(o);e.x+=(o.clientLeft+parseFloat(i.paddingLeft))*t.x,e.y+=(o.clientTop+parseFloat(i.paddingTop))*t.y,h*=t.x,p*=t.y,g*=t.x,m*=t.y,h+=e.x,p+=e.y,o=n(o).frameElement}}return{width:g,height:m,top:p,right:h+g,bottom:p+m,left:h,x:h,y:p}}function R(t){return((h(t)?t.ownerDocument:t.document)||window.document).documentElement}function T(t){return d(t)?{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}:{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function C(t){return E(R(t)).left+T(t).scrollLeft}function F(t){if(\"html\"===s(t))return t;const e=t.assignedSlot||t.parentNode||p(t)&&t.host||R(t);return p(e)?e.host:e}function W(t){const e=F(t);return w(e)?e.ownerDocument.body:a(e)&&g(e)?e:W(e)}function D(t,e){var o;void 0===e&&(e=[]);const i=W(t),r=i===(null==(o=t.ownerDocument)?void 0:o.body),l=n(i);return r?e.concat(l,l.visualViewport||[],g(i)?i:[]):e.concat(i,D(i))}function S(e,i,l){return\"viewport\"===i?t(function(t,e){const o=n(t),i=R(t),r=o.visualViewport;let l=i.clientWidth,c=i.clientHeight,s=0,f=0;if(r){l=r.width,c=r.height;const t=x();(t||!t&&\"fixed\"===e)&&(s=r.offsetLeft,f=r.offsetTop)}return{width:l,height:c,x:s,y:f}}(e,l)):d(i)?t(function(t,e){const n=E(t,!0,\"fixed\"===e),o=n.top+t.clientTop,i=n.left+t.clientLeft,r=a(t)?L(t):{x:1,y:1};return{width:t.clientWidth*r.x,height:t.clientHeight*r.y,x:i*r.x,y:o*r.y}}(i,l)):t(function(t){const e=R(t),n=T(t),i=t.ownerDocument.body,l=r(e.scrollWidth,e.clientWidth,i.scrollWidth,i.clientWidth),c=r(e.scrollHeight,e.clientHeight,i.scrollHeight,i.clientHeight);let s=-n.scrollLeft+C(t);const f=-n.scrollTop;return\"rtl\"===o(i).direction&&(s+=r(e.clientWidth,i.clientWidth)-l),{width:l,height:c,x:s,y:f}}(R(e)))}function A(t){return a(t)&&\"fixed\"!==o(t).position?t.offsetParent:null}function H(t){const e=n(t);let i=A(t);for(;i&&m(i)&&\"static\"===o(i).position;)i=A(i);return i&&(\"html\"===s(i)||\"body\"===s(i)&&\"static\"===o(i).position&&!y(i))?e:i||function(t){let e=F(t);for(;a(e)&&!w(e);){if(y(e))return e;e=F(e)}return null}(t)||e}function O(t,e,n){const o=a(e),i=R(e),r=E(t,!0,\"fixed\"===n,e);let l={scrollLeft:0,scrollTop:0};const c={x:0,y:0};if(o||!o&&\"fixed\"!==n)if((\"body\"!==s(e)||g(i))&&(l=T(e)),a(e)){const t=E(e,!0);c.x=t.x+e.clientLeft,c.y=t.y+e.clientTop}else i&&(c.x=C(i));return{x:r.left+l.scrollLeft-c.x,y:r.top+l.scrollTop-c.y,width:r.width,height:r.height}}const P={getClippingRect:function(t){let{element:e,boundary:n,rootBoundary:l,strategy:c}=t;const f=\"clippingAncestors\"===n?function(t,e){const n=e.get(t);if(n)return n;let i=D(t).filter((t=>d(t)&&\"body\"!==s(t))),r=null;const l=\"fixed\"===o(t).position;let c=l?F(t):t;for(;d(c)&&!w(c);){const t=o(c),e=y(c);(l?e||r:e||\"static\"!==t.position||!r||![\"absolute\",\"fixed\"].includes(r.position))?r=t:i=i.filter((t=>t!==c)),c=F(c)}return e.set(t,i),i}(e,this._c):[].concat(n),u=[...f,l],a=u[0],h=u.reduce(((t,n)=>{const o=S(e,n,c);return t.top=r(o.top,t.top),t.right=i(o.right,t.right),t.bottom=i(o.bottom,t.bottom),t.left=r(o.left,t.left),t}),S(e,a,c));return{width:h.right-h.left,height:h.bottom-h.top,x:h.left,y:h.top}},convertOffsetParentRelativeRectToViewportRelativeRect:function(t){let{rect:e,offsetParent:n,strategy:o}=t;const i=a(n),r=R(n);if(n===r)return e;let l={scrollLeft:0,scrollTop:0},c={x:1,y:1};const f={x:0,y:0};if((i||!i&&\"fixed\"!==o)&&((\"body\"!==s(n)||g(r))&&(l=T(n)),a(n))){const t=E(n);c=L(n),f.x=t.x+n.clientLeft,f.y=t.y+n.clientTop}return{width:e.width*c.x,height:e.height*c.y,x:e.x*c.x-l.scrollLeft*c.x+f.x,y:e.y*c.y-l.scrollTop*c.y+f.y}},isElement:d,getDimensions:function(t){return a(t)?c(t):t.getBoundingClientRect()},getOffsetParent:H,getDocumentElement:R,getScale:L,async getElementRects(t){let{reference:e,floating:n,strategy:o}=t;const i=this.getOffsetParent||H,r=this.getDimensions;return{reference:O(e,await i(n),o),floating:{x:0,y:0,...await r(n)}}},getClientRects:t=>Array.from(t.getClientRects()),isRTL:t=>\"rtl\"===o(t).direction};function z(t,e,n,o){void 0===o&&(o={});const{ancestorScroll:i=!0,ancestorResize:r=!0,elementResize:l=!0,animationFrame:c=!1}=o,s=i&&!c,f=s||r?[...d(t)?D(t):t.contextElement?D(t.contextElement):[],...D(e)]:[];f.forEach((t=>{s&&t.addEventListener(\"scroll\",n,{passive:!0}),r&&t.addEventListener(\"resize\",n)}));let u,a=null;if(l){let o=!0;a=new ResizeObserver((()=>{o||n(),o=!1})),d(t)&&!c&&a.observe(t),d(t)||!t.contextElement||c||a.observe(t.contextElement),a.observe(e)}let h=c?E(t):null;return c&&function e(){const o=E(t);!h||o.x===h.x&&o.y===h.y&&o.width===h.width&&o.height===h.height||n();h=o,u=requestAnimationFrame(e)}(),n(),()=>{var t;f.forEach((t=>{s&&t.removeEventListener(\"scroll\",n),r&&t.removeEventListener(\"resize\",n)})),null==(t=a)||t.disconnect(),a=null,c&&cancelAnimationFrame(u)}}const B=(t,n,o)=>{const i=new Map,r={platform:P,...o},l={...r.platform,_c:i};return e(t,n,{...r,platform:l})};export{z as autoUpdate,B as computePosition,D as getOverflowAncestors,P as platform};\n","import { defineComponent as O, openBlock as f, createElementBlock as T, normalizeClass as J, renderSlot as A, normalizeProps as ke, guardReactiveProps as Le, pushScopeId as De, popScopeId as Ie, nextTick as Fe, createBlock as M, withScopeId as Re, resolveComponent as P, normalizeStyle as W, withKeys as je, createElementVNode as w, Fragment as Ve, createCommentVNode as se, mergeProps as $e, withCtx as N, createVNode as ve, toDisplayString as We, ref as U, createApp as Ge, h as qe } from \"vue\";\nimport { offset as xe, autoPlacement as Ue, shift as Ye, flip as Xe, arrow as Ke, size as Je, computePosition as Qe, getOverflowAncestors as ne } from \"@floating-ui/dom\";\nfunction ye(e, t) {\n for (const o in t)\n Object.prototype.hasOwnProperty.call(t, o) && (typeof t[o] == \"object\" && e[o] ? ye(e[o], t[o]) : e[o] = t[o]);\n}\nconst h = {\n // Disable popper components\n disabled: !1,\n // Default position offset along main axis (px)\n distance: 5,\n // Default position offset along cross axis (px)\n skidding: 0,\n // Default container where the tooltip will be appended\n container: \"body\",\n // Element used to compute position and size boundaries\n boundary: void 0,\n // Skip delay & CSS transitions when another popper is shown, so that the popper appear to instanly move to the new position.\n instantMove: !1,\n // Auto destroy tooltip DOM nodes (ms)\n disposeTimeout: 150,\n // Triggers on the popper itself\n popperTriggers: [],\n // Positioning strategy\n strategy: \"absolute\",\n // Prevent overflow\n preventOverflow: !0,\n // Flip to the opposite placement if needed\n flip: !0,\n // Shift on the cross axis to prevent the popper from overflowing\n shift: !0,\n // Overflow padding (px)\n overflowPadding: 0,\n // Arrow padding (px)\n arrowPadding: 0,\n // Compute arrow overflow (useful to hide it)\n arrowOverflow: !0,\n /**\n * By default, compute autohide on 'click'.\n */\n autoHideOnMousedown: !1,\n // Themes\n themes: {\n tooltip: {\n // Default tooltip placement relative to target element\n placement: \"top\",\n // Default events that trigger the tooltip\n triggers: [\"hover\", \"focus\", \"touch\"],\n // Close tooltip on click on tooltip target\n hideTriggers: (e) => [...e, \"click\"],\n // Delay (ms)\n delay: {\n show: 200,\n hide: 0\n },\n // Update popper on content resize\n handleResize: !1,\n // Enable HTML content in directive\n html: !1,\n // Displayed when tooltip content is loading\n loadingContent: \"...\"\n },\n dropdown: {\n // Default dropdown placement relative to target element\n placement: \"bottom\",\n // Default events that trigger the dropdown\n triggers: [\"click\"],\n // Delay (ms)\n delay: 0,\n // Update popper on content resize\n handleResize: !0,\n // Hide on clock outside\n autoHide: !0\n },\n menu: {\n $extend: \"dropdown\",\n triggers: [\"hover\", \"focus\"],\n popperTriggers: [\"hover\"],\n delay: {\n show: 0,\n hide: 400\n }\n }\n }\n};\nfunction S(e, t) {\n let o = h.themes[e] || {}, i;\n do\n i = o[t], typeof i > \"u\" ? o.$extend ? o = h.themes[o.$extend] || {} : (o = null, i = h[t]) : o = null;\n while (o);\n return i;\n}\nfunction Ze(e) {\n const t = [e];\n let o = h.themes[e] || {};\n do\n o.$extend && !o.$resetCss ? (t.push(o.$extend), o = h.themes[o.$extend] || {}) : o = null;\n while (o);\n return t.map((i) => `v-popper--theme-${i}`);\n}\nfunction re(e) {\n const t = [e];\n let o = h.themes[e] || {};\n do\n o.$extend ? (t.push(o.$extend), o = h.themes[o.$extend] || {}) : o = null;\n while (o);\n return t;\n}\nlet $ = !1;\nif (typeof window < \"u\") {\n $ = !1;\n try {\n const e = Object.defineProperty({}, \"passive\", {\n get() {\n $ = !0;\n }\n });\n window.addEventListener(\"test\", null, e);\n } catch {\n }\n}\nlet _e = !1;\ntypeof window < \"u\" && typeof navigator < \"u\" && (_e = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream);\nconst Te = [\"auto\", \"top\", \"bottom\", \"left\", \"right\"].reduce((e, t) => e.concat([\n t,\n `${t}-start`,\n `${t}-end`\n]), []), pe = {\n hover: \"mouseenter\",\n focus: \"focus\",\n click: \"click\",\n touch: \"touchstart\",\n pointer: \"pointerdown\"\n}, ae = {\n hover: \"mouseleave\",\n focus: \"blur\",\n click: \"click\",\n touch: \"touchend\",\n pointer: \"pointerup\"\n};\nfunction de(e, t) {\n const o = e.indexOf(t);\n o !== -1 && e.splice(o, 1);\n}\nfunction G() {\n return new Promise((e) => requestAnimationFrame(() => {\n requestAnimationFrame(e);\n }));\n}\nconst d = [];\nlet g = null;\nconst le = {};\nfunction he(e) {\n let t = le[e];\n return t || (t = le[e] = []), t;\n}\nlet Y = function() {\n};\ntypeof window < \"u\" && (Y = window.Element);\nfunction n(e) {\n return function(t) {\n return S(t.theme, e);\n };\n}\nconst q = \"__floating-vue__popper\", Q = () => O({\n name: \"VPopper\",\n provide() {\n return {\n [q]: {\n parentPopper: this\n }\n };\n },\n inject: {\n [q]: { default: null }\n },\n props: {\n theme: {\n type: String,\n required: !0\n },\n targetNodes: {\n type: Function,\n required: !0\n },\n referenceNode: {\n type: Function,\n default: null\n },\n popperNode: {\n type: Function,\n required: !0\n },\n shown: {\n type: Boolean,\n default: !1\n },\n showGroup: {\n type: String,\n default: null\n },\n // eslint-disable-next-line vue/require-prop-types\n ariaId: {\n default: null\n },\n disabled: {\n type: Boolean,\n default: n(\"disabled\")\n },\n positioningDisabled: {\n type: Boolean,\n default: n(\"positioningDisabled\")\n },\n placement: {\n type: String,\n default: n(\"placement\"),\n validator: (e) => Te.includes(e)\n },\n delay: {\n type: [String, Number, Object],\n default: n(\"delay\")\n },\n distance: {\n type: [Number, String],\n default: n(\"distance\")\n },\n skidding: {\n type: [Number, String],\n default: n(\"skidding\")\n },\n triggers: {\n type: Array,\n default: n(\"triggers\")\n },\n showTriggers: {\n type: [Array, Function],\n default: n(\"showTriggers\")\n },\n hideTriggers: {\n type: [Array, Function],\n default: n(\"hideTriggers\")\n },\n popperTriggers: {\n type: Array,\n default: n(\"popperTriggers\")\n },\n popperShowTriggers: {\n type: [Array, Function],\n default: n(\"popperShowTriggers\")\n },\n popperHideTriggers: {\n type: [Array, Function],\n default: n(\"popperHideTriggers\")\n },\n container: {\n type: [String, Object, Y, Boolean],\n default: n(\"container\")\n },\n boundary: {\n type: [String, Y],\n default: n(\"boundary\")\n },\n strategy: {\n type: String,\n validator: (e) => [\"absolute\", \"fixed\"].includes(e),\n default: n(\"strategy\")\n },\n autoHide: {\n type: [Boolean, Function],\n default: n(\"autoHide\")\n },\n handleResize: {\n type: Boolean,\n default: n(\"handleResize\")\n },\n instantMove: {\n type: Boolean,\n default: n(\"instantMove\")\n },\n eagerMount: {\n type: Boolean,\n default: n(\"eagerMount\")\n },\n popperClass: {\n type: [String, Array, Object],\n default: n(\"popperClass\")\n },\n computeTransformOrigin: {\n type: Boolean,\n default: n(\"computeTransformOrigin\")\n },\n /**\n * @deprecated\n */\n autoMinSize: {\n type: Boolean,\n default: n(\"autoMinSize\")\n },\n autoSize: {\n type: [Boolean, String],\n default: n(\"autoSize\")\n },\n /**\n * @deprecated\n */\n autoMaxSize: {\n type: Boolean,\n default: n(\"autoMaxSize\")\n },\n autoBoundaryMaxSize: {\n type: Boolean,\n default: n(\"autoBoundaryMaxSize\")\n },\n preventOverflow: {\n type: Boolean,\n default: n(\"preventOverflow\")\n },\n overflowPadding: {\n type: [Number, String],\n default: n(\"overflowPadding\")\n },\n arrowPadding: {\n type: [Number, String],\n default: n(\"arrowPadding\")\n },\n arrowOverflow: {\n type: Boolean,\n default: n(\"arrowOverflow\")\n },\n flip: {\n type: Boolean,\n default: n(\"flip\")\n },\n shift: {\n type: Boolean,\n default: n(\"shift\")\n },\n shiftCrossAxis: {\n type: Boolean,\n default: n(\"shiftCrossAxis\")\n },\n noAutoFocus: {\n type: Boolean,\n default: n(\"noAutoFocus\")\n },\n disposeTimeout: {\n type: Number,\n default: n(\"disposeTimeout\")\n }\n },\n emits: {\n show: () => !0,\n hide: () => !0,\n \"update:shown\": (e) => !0,\n \"apply-show\": () => !0,\n \"apply-hide\": () => !0,\n \"close-group\": () => !0,\n \"close-directive\": () => !0,\n \"auto-hide\": () => !0,\n resize: () => !0\n },\n data() {\n return {\n isShown: !1,\n isMounted: !1,\n skipTransition: !1,\n classes: {\n showFrom: !1,\n showTo: !1,\n hideFrom: !1,\n hideTo: !0\n },\n result: {\n x: 0,\n y: 0,\n placement: \"\",\n strategy: this.strategy,\n arrow: {\n x: 0,\n y: 0,\n centerOffset: 0\n },\n transformOrigin: null\n },\n randomId: `popper_${[Math.random(), Date.now()].map((e) => e.toString(36).substring(2, 10)).join(\"_\")}`,\n shownChildren: /* @__PURE__ */ new Set(),\n lastAutoHide: !0,\n pendingHide: !1,\n containsGlobalTarget: !1,\n isDisposed: !0,\n mouseDownContains: !1\n };\n },\n computed: {\n popperId() {\n return this.ariaId != null ? this.ariaId : this.randomId;\n },\n shouldMountContent() {\n return this.eagerMount || this.isMounted;\n },\n slotData() {\n return {\n popperId: this.popperId,\n isShown: this.isShown,\n shouldMountContent: this.shouldMountContent,\n skipTransition: this.skipTransition,\n autoHide: typeof this.autoHide == \"function\" ? this.lastAutoHide : this.autoHide,\n show: this.show,\n hide: this.hide,\n handleResize: this.handleResize,\n onResize: this.onResize,\n classes: {\n ...this.classes,\n popperClass: this.popperClass\n },\n result: this.positioningDisabled ? null : this.result,\n attrs: this.$attrs\n };\n },\n parentPopper() {\n var e;\n return (e = this[q]) == null ? void 0 : e.parentPopper;\n },\n hasPopperShowTriggerHover() {\n var e, t;\n return ((e = this.popperTriggers) == null ? void 0 : e.includes(\"hover\")) || ((t = this.popperShowTriggers) == null ? void 0 : t.includes(\"hover\"));\n }\n },\n watch: {\n shown: \"$_autoShowHide\",\n disabled(e) {\n e ? this.dispose() : this.init();\n },\n async container() {\n this.isShown && (this.$_ensureTeleport(), await this.$_computePosition());\n },\n triggers: {\n handler: \"$_refreshListeners\",\n deep: !0\n },\n positioningDisabled: \"$_refreshListeners\",\n ...[\n \"placement\",\n \"distance\",\n \"skidding\",\n \"boundary\",\n \"strategy\",\n \"overflowPadding\",\n \"arrowPadding\",\n \"preventOverflow\",\n \"shift\",\n \"shiftCrossAxis\",\n \"flip\"\n ].reduce((e, t) => (e[t] = \"$_computePosition\", e), {})\n },\n created() {\n this.autoMinSize && console.warn('[floating-vue] `autoMinSize` option is deprecated. Use `autoSize=\"min\"` instead.'), this.autoMaxSize && console.warn(\"[floating-vue] `autoMaxSize` option is deprecated. Use `autoBoundaryMaxSize` instead.\");\n },\n mounted() {\n this.init(), this.$_detachPopperNode();\n },\n activated() {\n this.$_autoShowHide();\n },\n deactivated() {\n this.hide();\n },\n beforeUnmount() {\n this.dispose();\n },\n methods: {\n show({ event: e = null, skipDelay: t = !1, force: o = !1 } = {}) {\n var i, s;\n (i = this.parentPopper) != null && i.lockedChild && this.parentPopper.lockedChild !== this || (this.pendingHide = !1, (o || !this.disabled) && (((s = this.parentPopper) == null ? void 0 : s.lockedChild) === this && (this.parentPopper.lockedChild = null), this.$_scheduleShow(e, t), this.$emit(\"show\"), this.$_showFrameLocked = !0, requestAnimationFrame(() => {\n this.$_showFrameLocked = !1;\n })), this.$emit(\"update:shown\", !0));\n },\n hide({ event: e = null, skipDelay: t = !1 } = {}) {\n var o;\n if (!this.$_hideInProgress) {\n if (this.shownChildren.size > 0) {\n this.pendingHide = !0;\n return;\n }\n if (this.hasPopperShowTriggerHover && this.$_isAimingPopper()) {\n this.parentPopper && (this.parentPopper.lockedChild = this, clearTimeout(this.parentPopper.lockedChildTimer), this.parentPopper.lockedChildTimer = setTimeout(() => {\n this.parentPopper.lockedChild === this && (this.parentPopper.lockedChild.hide({ skipDelay: t }), this.parentPopper.lockedChild = null);\n }, 1e3));\n return;\n }\n ((o = this.parentPopper) == null ? void 0 : o.lockedChild) === this && (this.parentPopper.lockedChild = null), this.pendingHide = !1, this.$_scheduleHide(e, t), this.$emit(\"hide\"), this.$emit(\"update:shown\", !1);\n }\n },\n init() {\n var e;\n this.isDisposed && (this.isDisposed = !1, this.isMounted = !1, this.$_events = [], this.$_preventShow = !1, this.$_referenceNode = ((e = this.referenceNode) == null ? void 0 : e.call(this)) ?? this.$el, this.$_targetNodes = this.targetNodes().filter((t) => t.nodeType === t.ELEMENT_NODE), this.$_popperNode = this.popperNode(), this.$_innerNode = this.$_popperNode.querySelector(\".v-popper__inner\"), this.$_arrowNode = this.$_popperNode.querySelector(\".v-popper__arrow-container\"), this.$_swapTargetAttrs(\"title\", \"data-original-title\"), this.$_detachPopperNode(), this.triggers.length && this.$_addEventListeners(), this.shown && this.show());\n },\n dispose() {\n this.isDisposed || (this.isDisposed = !0, this.$_removeEventListeners(), this.hide({ skipDelay: !0 }), this.$_detachPopperNode(), this.isMounted = !1, this.isShown = !1, this.$_updateParentShownChildren(!1), this.$_swapTargetAttrs(\"data-original-title\", \"title\"));\n },\n async onResize() {\n this.isShown && (await this.$_computePosition(), this.$emit(\"resize\"));\n },\n async $_computePosition() {\n if (this.isDisposed || this.positioningDisabled)\n return;\n const e = {\n strategy: this.strategy,\n middleware: []\n };\n (this.distance || this.skidding) && e.middleware.push(xe({\n mainAxis: this.distance,\n crossAxis: this.skidding\n }));\n const t = this.placement.startsWith(\"auto\");\n if (t ? e.middleware.push(Ue({\n alignment: this.placement.split(\"-\")[1] ?? \"\"\n })) : e.placement = this.placement, this.preventOverflow && (this.shift && e.middleware.push(Ye({\n padding: this.overflowPadding,\n boundary: this.boundary,\n crossAxis: this.shiftCrossAxis\n })), !t && this.flip && e.middleware.push(Xe({\n padding: this.overflowPadding,\n boundary: this.boundary\n }))), e.middleware.push(Ke({\n element: this.$_arrowNode,\n padding: this.arrowPadding\n })), this.arrowOverflow && e.middleware.push({\n name: \"arrowOverflow\",\n fn: ({ placement: i, rects: s, middlewareData: r }) => {\n let p;\n const { centerOffset: a } = r.arrow;\n return i.startsWith(\"top\") || i.startsWith(\"bottom\") ? p = Math.abs(a) > s.reference.width / 2 : p = Math.abs(a) > s.reference.height / 2, {\n data: {\n overflow: p\n }\n };\n }\n }), this.autoMinSize || this.autoSize) {\n const i = this.autoSize ? this.autoSize : this.autoMinSize ? \"min\" : null;\n e.middleware.push({\n name: \"autoSize\",\n fn: ({ rects: s, placement: r, middlewareData: p }) => {\n var u;\n if ((u = p.autoSize) != null && u.skip)\n return {};\n let a, l;\n return r.startsWith(\"top\") || r.startsWith(\"bottom\") ? a = s.reference.width : l = s.reference.height, this.$_innerNode.style[i === \"min\" ? \"minWidth\" : i === \"max\" ? \"maxWidth\" : \"width\"] = a != null ? `${a}px` : null, this.$_innerNode.style[i === \"min\" ? \"minHeight\" : i === \"max\" ? \"maxHeight\" : \"height\"] = l != null ? `${l}px` : null, {\n data: {\n skip: !0\n },\n reset: {\n rects: !0\n }\n };\n }\n });\n }\n (this.autoMaxSize || this.autoBoundaryMaxSize) && (this.$_innerNode.style.maxWidth = null, this.$_innerNode.style.maxHeight = null, e.middleware.push(Je({\n boundary: this.boundary,\n padding: this.overflowPadding,\n apply: ({ availableWidth: i, availableHeight: s }) => {\n this.$_innerNode.style.maxWidth = i != null ? `${i}px` : null, this.$_innerNode.style.maxHeight = s != null ? `${s}px` : null;\n }\n })));\n const o = await Qe(this.$_referenceNode, this.$_popperNode, e);\n Object.assign(this.result, {\n x: o.x,\n y: o.y,\n placement: o.placement,\n strategy: o.strategy,\n arrow: {\n ...o.middlewareData.arrow,\n ...o.middlewareData.arrowOverflow\n }\n });\n },\n $_scheduleShow(e, t = !1) {\n if (this.$_updateParentShownChildren(!0), this.$_hideInProgress = !1, clearTimeout(this.$_scheduleTimer), g && this.instantMove && g.instantMove && g !== this.parentPopper) {\n g.$_applyHide(!0), this.$_applyShow(!0);\n return;\n }\n t ? this.$_applyShow() : this.$_scheduleTimer = setTimeout(this.$_applyShow.bind(this), this.$_computeDelay(\"show\"));\n },\n $_scheduleHide(e, t = !1) {\n if (this.shownChildren.size > 0) {\n this.pendingHide = !0;\n return;\n }\n this.$_updateParentShownChildren(!1), this.$_hideInProgress = !0, clearTimeout(this.$_scheduleTimer), this.isShown && (g = this), t ? this.$_applyHide() : this.$_scheduleTimer = setTimeout(this.$_applyHide.bind(this), this.$_computeDelay(\"hide\"));\n },\n $_computeDelay(e) {\n const t = this.delay;\n return parseInt(t && t[e] || t || 0);\n },\n async $_applyShow(e = !1) {\n clearTimeout(this.$_disposeTimer), clearTimeout(this.$_scheduleTimer), this.skipTransition = e, !this.isShown && (this.$_ensureTeleport(), await G(), await this.$_computePosition(), await this.$_applyShowEffect(), this.positioningDisabled || this.$_registerEventListeners([\n ...ne(this.$_referenceNode),\n ...ne(this.$_popperNode)\n ], \"scroll\", () => {\n this.$_computePosition();\n }));\n },\n async $_applyShowEffect() {\n if (this.$_hideInProgress)\n return;\n if (this.computeTransformOrigin) {\n const t = this.$_referenceNode.getBoundingClientRect(), o = this.$_popperNode.querySelector(\".v-popper__wrapper\"), i = o.parentNode.getBoundingClientRect(), s = t.x + t.width / 2 - (i.left + o.offsetLeft), r = t.y + t.height / 2 - (i.top + o.offsetTop);\n this.result.transformOrigin = `${s}px ${r}px`;\n }\n this.isShown = !0, this.$_applyAttrsToTarget({\n \"aria-describedby\": this.popperId,\n \"data-popper-shown\": \"\"\n });\n const e = this.showGroup;\n if (e) {\n let t;\n for (let o = 0; o < d.length; o++)\n t = d[o], t.showGroup !== e && (t.hide(), t.$emit(\"close-group\"));\n }\n d.push(this), document.body.classList.add(\"v-popper--some-open\");\n for (const t of re(this.theme))\n he(t).push(this), document.body.classList.add(`v-popper--some-open--${t}`);\n this.$emit(\"apply-show\"), this.classes.showFrom = !0, this.classes.showTo = !1, this.classes.hideFrom = !1, this.classes.hideTo = !1, await G(), this.classes.showFrom = !1, this.classes.showTo = !0, this.noAutoFocus || this.$_popperNode.focus();\n },\n async $_applyHide(e = !1) {\n if (this.shownChildren.size > 0) {\n this.pendingHide = !0, this.$_hideInProgress = !1;\n return;\n }\n if (clearTimeout(this.$_scheduleTimer), !this.isShown)\n return;\n this.skipTransition = e, de(d, this), d.length === 0 && document.body.classList.remove(\"v-popper--some-open\");\n for (const o of re(this.theme)) {\n const i = he(o);\n de(i, this), i.length === 0 && document.body.classList.remove(`v-popper--some-open--${o}`);\n }\n g === this && (g = null), this.isShown = !1, this.$_applyAttrsToTarget({\n \"aria-describedby\": void 0,\n \"data-popper-shown\": void 0\n }), clearTimeout(this.$_disposeTimer);\n const t = this.disposeTimeout;\n t !== null && (this.$_disposeTimer = setTimeout(() => {\n this.$_popperNode && (this.$_detachPopperNode(), this.isMounted = !1);\n }, t)), this.$_removeEventListeners(\"scroll\"), this.$emit(\"apply-hide\"), this.classes.showFrom = !1, this.classes.showTo = !1, this.classes.hideFrom = !0, this.classes.hideTo = !1, await G(), this.classes.hideFrom = !1, this.classes.hideTo = !0;\n },\n $_autoShowHide() {\n this.shown ? this.show() : this.hide();\n },\n $_ensureTeleport() {\n if (this.isDisposed)\n return;\n let e = this.container;\n if (typeof e == \"string\" ? e = window.document.querySelector(e) : e === !1 && (e = this.$_targetNodes[0].parentNode), !e)\n throw new Error(\"No container for popover: \" + this.container);\n e.appendChild(this.$_popperNode), this.isMounted = !0;\n },\n $_addEventListeners() {\n const e = (o) => {\n this.isShown && !this.$_hideInProgress || (o.usedByTooltip = !0, !this.$_preventShow && this.show({ event: o }));\n };\n this.$_registerTriggerListeners(this.$_targetNodes, pe, this.triggers, this.showTriggers, e), this.$_registerTriggerListeners([this.$_popperNode], pe, this.popperTriggers, this.popperShowTriggers, e);\n const t = (o) => {\n o.usedByTooltip || this.hide({ event: o });\n };\n this.$_registerTriggerListeners(this.$_targetNodes, ae, this.triggers, this.hideTriggers, t), this.$_registerTriggerListeners([this.$_popperNode], ae, this.popperTriggers, this.popperHideTriggers, t);\n },\n $_registerEventListeners(e, t, o) {\n this.$_events.push({ targetNodes: e, eventType: t, handler: o }), e.forEach((i) => i.addEventListener(t, o, $ ? {\n passive: !0\n } : void 0));\n },\n $_registerTriggerListeners(e, t, o, i, s) {\n let r = o;\n i != null && (r = typeof i == \"function\" ? i(r) : i), r.forEach((p) => {\n const a = t[p];\n a && this.$_registerEventListeners(e, a, s);\n });\n },\n $_removeEventListeners(e) {\n const t = [];\n this.$_events.forEach((o) => {\n const { targetNodes: i, eventType: s, handler: r } = o;\n !e || e === s ? i.forEach((p) => p.removeEventListener(s, r)) : t.push(o);\n }), this.$_events = t;\n },\n $_refreshListeners() {\n this.isDisposed || (this.$_removeEventListeners(), this.$_addEventListeners());\n },\n $_handleGlobalClose(e, t = !1) {\n this.$_showFrameLocked || (this.hide({ event: e }), e.closePopover ? this.$emit(\"close-directive\") : this.$emit(\"auto-hide\"), t && (this.$_preventShow = !0, setTimeout(() => {\n this.$_preventShow = !1;\n }, 300)));\n },\n $_detachPopperNode() {\n this.$_popperNode.parentNode && this.$_popperNode.parentNode.removeChild(this.$_popperNode);\n },\n $_swapTargetAttrs(e, t) {\n for (const o of this.$_targetNodes) {\n const i = o.getAttribute(e);\n i && (o.removeAttribute(e), o.setAttribute(t, i));\n }\n },\n $_applyAttrsToTarget(e) {\n for (const t of this.$_targetNodes)\n for (const o in e) {\n const i = e[o];\n i == null ? t.removeAttribute(o) : t.setAttribute(o, i);\n }\n },\n $_updateParentShownChildren(e) {\n let t = this.parentPopper;\n for (; t; )\n e ? t.shownChildren.add(this.randomId) : (t.shownChildren.delete(this.randomId), t.pendingHide && t.hide()), t = t.parentPopper;\n },\n $_isAimingPopper() {\n const e = this.$_referenceNode.getBoundingClientRect();\n if (y >= e.left && y <= e.right && _ >= e.top && _ <= e.bottom) {\n const t = this.$_popperNode.getBoundingClientRect(), o = y - c, i = _ - m, r = t.left + t.width / 2 - c + (t.top + t.height / 2) - m + t.width + t.height, p = c + o * r, a = m + i * r;\n return C(c, m, p, a, t.left, t.top, t.left, t.bottom) || // Left edge\n C(c, m, p, a, t.left, t.top, t.right, t.top) || // Top edge\n C(c, m, p, a, t.right, t.top, t.right, t.bottom) || // Right edge\n C(c, m, p, a, t.left, t.bottom, t.right, t.bottom);\n }\n return !1;\n }\n },\n render() {\n return this.$slots.default(this.slotData);\n }\n});\nif (typeof document < \"u\" && typeof window < \"u\") {\n if (_e) {\n const e = $ ? {\n passive: !0,\n capture: !0\n } : !0;\n document.addEventListener(\"touchstart\", (t) => ue(t, !0), e), document.addEventListener(\"touchend\", (t) => fe(t, !0), e);\n } else\n window.addEventListener(\"mousedown\", (e) => ue(e, !1), !0), window.addEventListener(\"click\", (e) => fe(e, !1), !0);\n window.addEventListener(\"resize\", tt);\n}\nfunction ue(e, t) {\n if (h.autoHideOnMousedown)\n Pe(e, t);\n else\n for (let o = 0; o < d.length; o++) {\n const i = d[o];\n try {\n i.mouseDownContains = i.popperNode().contains(e.target);\n } catch {\n }\n }\n}\nfunction fe(e, t) {\n h.autoHideOnMousedown || Pe(e, t);\n}\nfunction Pe(e, t) {\n const o = {};\n for (let i = d.length - 1; i >= 0; i--) {\n const s = d[i];\n try {\n const r = s.containsGlobalTarget = s.mouseDownContains || s.popperNode().contains(e.target);\n s.pendingHide = !1, requestAnimationFrame(() => {\n if (s.pendingHide = !1, !o[s.randomId] && ce(s, r, e)) {\n if (s.$_handleGlobalClose(e, t), !e.closeAllPopover && e.closePopover && r) {\n let a = s.parentPopper;\n for (; a; )\n o[a.randomId] = !0, a = a.parentPopper;\n return;\n }\n let p = s.parentPopper;\n for (; p && ce(p, p.containsGlobalTarget, e); ) {\n p.$_handleGlobalClose(e, t);\n p = p.parentPopper;\n }\n }\n });\n } catch {\n }\n }\n}\nfunction ce(e, t, o) {\n return o.closeAllPopover || o.closePopover && t || et(e, o) && !t;\n}\nfunction et(e, t) {\n if (typeof e.autoHide == \"function\") {\n const o = e.autoHide(t);\n return e.lastAutoHide = o, o;\n }\n return e.autoHide;\n}\nfunction tt() {\n for (let e = 0; e < d.length; e++)\n d[e].$_computePosition();\n}\nfunction Nt() {\n for (let e = 0; e < d.length; e++)\n d[e].hide();\n}\nlet c = 0, m = 0, y = 0, _ = 0;\ntypeof window < \"u\" && window.addEventListener(\"mousemove\", (e) => {\n c = y, m = _, y = e.clientX, _ = e.clientY;\n}, $ ? {\n passive: !0\n} : void 0);\nfunction C(e, t, o, i, s, r, p, a) {\n const l = ((p - s) * (t - r) - (a - r) * (e - s)) / ((a - r) * (o - e) - (p - s) * (i - t)), u = ((o - e) * (t - r) - (i - t) * (e - s)) / ((a - r) * (o - e) - (p - s) * (i - t));\n return l >= 0 && l <= 1 && u >= 0 && u <= 1;\n}\nconst ot = {\n extends: Q()\n}, B = (e, t) => {\n const o = e.__vccOpts || e;\n for (const [i, s] of t)\n o[i] = s;\n return o;\n};\nfunction it(e, t, o, i, s, r) {\n return f(), T(\"div\", {\n ref: \"reference\",\n class: J([\"v-popper\", {\n \"v-popper--shown\": e.slotData.isShown\n }])\n }, [\n A(e.$slots, \"default\", ke(Le(e.slotData)))\n ], 2);\n}\nconst st = /* @__PURE__ */ B(ot, [[\"render\", it]]);\nfunction nt() {\n var e = window.navigator.userAgent, t = e.indexOf(\"MSIE \");\n if (t > 0)\n return parseInt(e.substring(t + 5, e.indexOf(\".\", t)), 10);\n var o = e.indexOf(\"Trident/\");\n if (o > 0) {\n var i = e.indexOf(\"rv:\");\n return parseInt(e.substring(i + 3, e.indexOf(\".\", i)), 10);\n }\n var s = e.indexOf(\"Edge/\");\n return s > 0 ? parseInt(e.substring(s + 5, e.indexOf(\".\", s)), 10) : -1;\n}\nlet z;\nfunction X() {\n X.init || (X.init = !0, z = nt() !== -1);\n}\nvar E = {\n name: \"ResizeObserver\",\n props: {\n emitOnMount: {\n type: Boolean,\n default: !1\n },\n ignoreWidth: {\n type: Boolean,\n default: !1\n },\n ignoreHeight: {\n type: Boolean,\n default: !1\n }\n },\n emits: [\n \"notify\"\n ],\n mounted() {\n X(), Fe(() => {\n this._w = this.$el.offsetWidth, this._h = this.$el.offsetHeight, this.emitOnMount && this.emitSize();\n });\n const e = document.createElement(\"object\");\n this._resizeObject = e, e.setAttribute(\"aria-hidden\", \"true\"), e.setAttribute(\"tabindex\", -1), e.onload = this.addResizeHandlers, e.type = \"text/html\", z && this.$el.appendChild(e), e.data = \"about:blank\", z || this.$el.appendChild(e);\n },\n beforeUnmount() {\n this.removeResizeHandlers();\n },\n methods: {\n compareAndNotify() {\n (!this.ignoreWidth && this._w !== this.$el.offsetWidth || !this.ignoreHeight && this._h !== this.$el.offsetHeight) && (this._w = this.$el.offsetWidth, this._h = this.$el.offsetHeight, this.emitSize());\n },\n emitSize() {\n this.$emit(\"notify\", {\n width: this._w,\n height: this._h\n });\n },\n addResizeHandlers() {\n this._resizeObject.contentDocument.defaultView.addEventListener(\"resize\", this.compareAndNotify), this.compareAndNotify();\n },\n removeResizeHandlers() {\n this._resizeObject && this._resizeObject.onload && (!z && this._resizeObject.contentDocument && this._resizeObject.contentDocument.defaultView.removeEventListener(\"resize\", this.compareAndNotify), this.$el.removeChild(this._resizeObject), this._resizeObject.onload = null, this._resizeObject = null);\n }\n }\n};\nconst rt = /* @__PURE__ */ Re(\"data-v-b329ee4c\");\nDe(\"data-v-b329ee4c\");\nconst pt = {\n class: \"resize-observer\",\n tabindex: \"-1\"\n};\nIe();\nconst at = /* @__PURE__ */ rt((e, t, o, i, s, r) => (f(), M(\"div\", pt)));\nE.render = at;\nE.__scopeId = \"data-v-b329ee4c\";\nE.__file = \"src/components/ResizeObserver.vue\";\nconst Z = (e = \"theme\") => ({\n computed: {\n themeClass() {\n return Ze(this[e]);\n }\n }\n}), dt = O({\n name: \"VPopperContent\",\n components: {\n ResizeObserver: E\n },\n mixins: [\n Z()\n ],\n props: {\n popperId: String,\n theme: String,\n shown: Boolean,\n mounted: Boolean,\n skipTransition: Boolean,\n autoHide: Boolean,\n handleResize: Boolean,\n classes: Object,\n result: Object\n },\n emits: [\n \"hide\",\n \"resize\"\n ],\n methods: {\n toPx(e) {\n return e != null && !isNaN(e) ? `${e}px` : null;\n }\n }\n}), lt = [\"id\", \"aria-hidden\", \"tabindex\", \"data-popper-placement\"], ht = {\n ref: \"inner\",\n class: \"v-popper__inner\"\n}, ut = /* @__PURE__ */ w(\"div\", { class: \"v-popper__arrow-outer\" }, null, -1), ft = /* @__PURE__ */ w(\"div\", { class: \"v-popper__arrow-inner\" }, null, -1), ct = [\n ut,\n ft\n];\nfunction mt(e, t, o, i, s, r) {\n const p = P(\"ResizeObserver\");\n return f(), T(\"div\", {\n id: e.popperId,\n ref: \"popover\",\n class: J([\"v-popper__popper\", [\n e.themeClass,\n e.classes.popperClass,\n {\n \"v-popper__popper--shown\": e.shown,\n \"v-popper__popper--hidden\": !e.shown,\n \"v-popper__popper--show-from\": e.classes.showFrom,\n \"v-popper__popper--show-to\": e.classes.showTo,\n \"v-popper__popper--hide-from\": e.classes.hideFrom,\n \"v-popper__popper--hide-to\": e.classes.hideTo,\n \"v-popper__popper--skip-transition\": e.skipTransition,\n \"v-popper__popper--arrow-overflow\": e.result && e.result.arrow.overflow,\n \"v-popper__popper--no-positioning\": !e.result\n }\n ]]),\n style: W(e.result ? {\n position: e.result.strategy,\n transform: `translate3d(${Math.round(e.result.x)}px,${Math.round(e.result.y)}px,0)`\n } : void 0),\n \"aria-hidden\": e.shown ? \"false\" : \"true\",\n tabindex: e.autoHide ? 0 : void 0,\n \"data-popper-placement\": e.result ? e.result.placement : void 0,\n onKeyup: t[2] || (t[2] = je((a) => e.autoHide && e.$emit(\"hide\"), [\"esc\"]))\n }, [\n w(\"div\", {\n class: \"v-popper__backdrop\",\n onClick: t[0] || (t[0] = (a) => e.autoHide && e.$emit(\"hide\"))\n }),\n w(\"div\", {\n class: \"v-popper__wrapper\",\n style: W(e.result ? {\n transformOrigin: e.result.transformOrigin\n } : void 0)\n }, [\n w(\"div\", ht, [\n e.mounted ? (f(), T(Ve, { key: 0 }, [\n w(\"div\", null, [\n A(e.$slots, \"default\")\n ]),\n e.handleResize ? (f(), M(p, {\n key: 0,\n onNotify: t[1] || (t[1] = (a) => e.$emit(\"resize\", a))\n })) : se(\"\", !0)\n ], 64)) : se(\"\", !0)\n ], 512),\n w(\"div\", {\n ref: \"arrow\",\n class: \"v-popper__arrow-container\",\n style: W(e.result ? {\n left: e.toPx(e.result.arrow.x),\n top: e.toPx(e.result.arrow.y)\n } : void 0)\n }, ct, 4)\n ], 4)\n ], 46, lt);\n}\nconst ee = /* @__PURE__ */ B(dt, [[\"render\", mt]]), te = {\n methods: {\n show(...e) {\n return this.$refs.popper.show(...e);\n },\n hide(...e) {\n return this.$refs.popper.hide(...e);\n },\n dispose(...e) {\n return this.$refs.popper.dispose(...e);\n },\n onResize(...e) {\n return this.$refs.popper.onResize(...e);\n }\n }\n};\nlet K = function() {\n};\ntypeof window < \"u\" && (K = window.Element);\nconst gt = O({\n name: \"VPopperWrapper\",\n components: {\n Popper: st,\n PopperContent: ee\n },\n mixins: [\n te,\n Z(\"finalTheme\")\n ],\n props: {\n theme: {\n type: String,\n default: null\n },\n referenceNode: {\n type: Function,\n default: null\n },\n shown: {\n type: Boolean,\n default: !1\n },\n showGroup: {\n type: String,\n default: null\n },\n // eslint-disable-next-line vue/require-prop-types\n ariaId: {\n default: null\n },\n disabled: {\n type: Boolean,\n default: void 0\n },\n positioningDisabled: {\n type: Boolean,\n default: void 0\n },\n placement: {\n type: String,\n default: void 0\n },\n delay: {\n type: [String, Number, Object],\n default: void 0\n },\n distance: {\n type: [Number, String],\n default: void 0\n },\n skidding: {\n type: [Number, String],\n default: void 0\n },\n triggers: {\n type: Array,\n default: void 0\n },\n showTriggers: {\n type: [Array, Function],\n default: void 0\n },\n hideTriggers: {\n type: [Array, Function],\n default: void 0\n },\n popperTriggers: {\n type: Array,\n default: void 0\n },\n popperShowTriggers: {\n type: [Array, Function],\n default: void 0\n },\n popperHideTriggers: {\n type: [Array, Function],\n default: void 0\n },\n container: {\n type: [String, Object, K, Boolean],\n default: void 0\n },\n boundary: {\n type: [String, K],\n default: void 0\n },\n strategy: {\n type: String,\n default: void 0\n },\n autoHide: {\n type: [Boolean, Function],\n default: void 0\n },\n handleResize: {\n type: Boolean,\n default: void 0\n },\n instantMove: {\n type: Boolean,\n default: void 0\n },\n eagerMount: {\n type: Boolean,\n default: void 0\n },\n popperClass: {\n type: [String, Array, Object],\n default: void 0\n },\n computeTransformOrigin: {\n type: Boolean,\n default: void 0\n },\n /**\n * @deprecated\n */\n autoMinSize: {\n type: Boolean,\n default: void 0\n },\n autoSize: {\n type: [Boolean, String],\n default: void 0\n },\n /**\n * @deprecated\n */\n autoMaxSize: {\n type: Boolean,\n default: void 0\n },\n autoBoundaryMaxSize: {\n type: Boolean,\n default: void 0\n },\n preventOverflow: {\n type: Boolean,\n default: void 0\n },\n overflowPadding: {\n type: [Number, String],\n default: void 0\n },\n arrowPadding: {\n type: [Number, String],\n default: void 0\n },\n arrowOverflow: {\n type: Boolean,\n default: void 0\n },\n flip: {\n type: Boolean,\n default: void 0\n },\n shift: {\n type: Boolean,\n default: void 0\n },\n shiftCrossAxis: {\n type: Boolean,\n default: void 0\n },\n noAutoFocus: {\n type: Boolean,\n default: void 0\n },\n disposeTimeout: {\n type: Number,\n default: void 0\n }\n },\n emits: {\n show: () => !0,\n hide: () => !0,\n \"update:shown\": (e) => !0,\n \"apply-show\": () => !0,\n \"apply-hide\": () => !0,\n \"close-group\": () => !0,\n \"close-directive\": () => !0,\n \"auto-hide\": () => !0,\n resize: () => !0\n },\n computed: {\n finalTheme() {\n return this.theme ?? this.$options.vPopperTheme;\n }\n },\n methods: {\n getTargetNodes() {\n return Array.from(this.$el.children).filter((e) => e !== this.$refs.popperContent.$el);\n }\n }\n});\nfunction wt(e, t, o, i, s, r) {\n const p = P(\"PopperContent\"), a = P(\"Popper\");\n return f(), M(a, $e({ ref: \"popper\" }, e.$props, {\n theme: e.finalTheme,\n \"target-nodes\": e.getTargetNodes,\n \"popper-node\": () => e.$refs.popperContent.$el,\n class: [\n e.themeClass\n ],\n onShow: t[0] || (t[0] = () => e.$emit(\"show\")),\n onHide: t[1] || (t[1] = () => e.$emit(\"hide\")),\n \"onUpdate:shown\": t[2] || (t[2] = (l) => e.$emit(\"update:shown\", l)),\n onApplyShow: t[3] || (t[3] = () => e.$emit(\"apply-show\")),\n onApplyHide: t[4] || (t[4] = () => e.$emit(\"apply-hide\")),\n onCloseGroup: t[5] || (t[5] = () => e.$emit(\"close-group\")),\n onCloseDirective: t[6] || (t[6] = () => e.$emit(\"close-directive\")),\n onAutoHide: t[7] || (t[7] = () => e.$emit(\"auto-hide\")),\n onResize: t[8] || (t[8] = () => e.$emit(\"resize\"))\n }), {\n default: N(({\n popperId: l,\n isShown: u,\n shouldMountContent: L,\n skipTransition: D,\n autoHide: I,\n show: F,\n hide: v,\n handleResize: R,\n onResize: j,\n classes: V,\n result: Ee\n }) => [\n A(e.$slots, \"default\", {\n shown: u,\n show: F,\n hide: v\n }),\n ve(p, {\n ref: \"popperContent\",\n \"popper-id\": l,\n theme: e.finalTheme,\n shown: u,\n mounted: L,\n \"skip-transition\": D,\n \"auto-hide\": I,\n \"handle-resize\": R,\n classes: V,\n result: Ee,\n onHide: v,\n onResize: j\n }, {\n default: N(() => [\n A(e.$slots, \"popper\", {\n shown: u,\n hide: v\n })\n ]),\n _: 2\n }, 1032, [\"popper-id\", \"theme\", \"shown\", \"mounted\", \"skip-transition\", \"auto-hide\", \"handle-resize\", \"classes\", \"result\", \"onHide\", \"onResize\"])\n ]),\n _: 3\n }, 16, [\"theme\", \"target-nodes\", \"popper-node\", \"class\"]);\n}\nconst k = /* @__PURE__ */ B(gt, [[\"render\", wt]]), Se = {\n ...k,\n name: \"VDropdown\",\n vPopperTheme: \"dropdown\"\n}, be = {\n ...k,\n name: \"VMenu\",\n vPopperTheme: \"menu\"\n}, Ce = {\n ...k,\n name: \"VTooltip\",\n vPopperTheme: \"tooltip\"\n}, $t = O({\n name: \"VTooltipDirective\",\n components: {\n Popper: Q(),\n PopperContent: ee\n },\n mixins: [\n te\n ],\n inheritAttrs: !1,\n props: {\n theme: {\n type: String,\n default: \"tooltip\"\n },\n html: {\n type: Boolean,\n default: (e) => S(e.theme, \"html\")\n },\n content: {\n type: [String, Number, Function],\n default: null\n },\n loadingContent: {\n type: String,\n default: (e) => S(e.theme, \"loadingContent\")\n },\n targetNodes: {\n type: Function,\n required: !0\n }\n },\n data() {\n return {\n asyncContent: null\n };\n },\n computed: {\n isContentAsync() {\n return typeof this.content == \"function\";\n },\n loading() {\n return this.isContentAsync && this.asyncContent == null;\n },\n finalContent() {\n return this.isContentAsync ? this.loading ? this.loadingContent : this.asyncContent : this.content;\n }\n },\n watch: {\n content: {\n handler() {\n this.fetchContent(!0);\n },\n immediate: !0\n },\n async finalContent() {\n await this.$nextTick(), this.$refs.popper.onResize();\n }\n },\n created() {\n this.$_fetchId = 0;\n },\n methods: {\n fetchContent(e) {\n if (typeof this.content == \"function\" && this.$_isShown && (e || !this.$_loading && this.asyncContent == null)) {\n this.asyncContent = null, this.$_loading = !0;\n const t = ++this.$_fetchId, o = this.content(this);\n o.then ? o.then((i) => this.onResult(t, i)) : this.onResult(t, o);\n }\n },\n onResult(e, t) {\n e === this.$_fetchId && (this.$_loading = !1, this.asyncContent = t);\n },\n onShow() {\n this.$_isShown = !0, this.fetchContent();\n },\n onHide() {\n this.$_isShown = !1;\n }\n }\n}), vt = [\"innerHTML\"], yt = [\"textContent\"];\nfunction _t(e, t, o, i, s, r) {\n const p = P(\"PopperContent\"), a = P(\"Popper\");\n return f(), M(a, $e({ ref: \"popper\" }, e.$attrs, {\n theme: e.theme,\n \"target-nodes\": e.targetNodes,\n \"popper-node\": () => e.$refs.popperContent.$el,\n onApplyShow: e.onShow,\n onApplyHide: e.onHide\n }), {\n default: N(({\n popperId: l,\n isShown: u,\n shouldMountContent: L,\n skipTransition: D,\n autoHide: I,\n hide: F,\n handleResize: v,\n onResize: R,\n classes: j,\n result: V\n }) => [\n ve(p, {\n ref: \"popperContent\",\n class: J({\n \"v-popper--tooltip-loading\": e.loading\n }),\n \"popper-id\": l,\n theme: e.theme,\n shown: u,\n mounted: L,\n \"skip-transition\": D,\n \"auto-hide\": I,\n \"handle-resize\": v,\n classes: j,\n result: V,\n onHide: F,\n onResize: R\n }, {\n default: N(() => [\n e.html ? (f(), T(\"div\", {\n key: 0,\n innerHTML: e.finalContent\n }, null, 8, vt)) : (f(), T(\"div\", {\n key: 1,\n textContent: We(e.finalContent)\n }, null, 8, yt))\n ]),\n _: 2\n }, 1032, [\"class\", \"popper-id\", \"theme\", \"shown\", \"mounted\", \"skip-transition\", \"auto-hide\", \"handle-resize\", \"classes\", \"result\", \"onHide\", \"onResize\"])\n ]),\n _: 1\n }, 16, [\"theme\", \"target-nodes\", \"popper-node\", \"onApplyShow\", \"onApplyHide\"]);\n}\nconst ze = /* @__PURE__ */ B($t, [[\"render\", _t]]), Ae = \"v-popper--has-tooltip\";\nfunction Tt(e, t) {\n let o = e.placement;\n if (!o && t)\n for (const i of Te)\n t[i] && (o = i);\n return o || (o = S(e.theme || \"tooltip\", \"placement\")), o;\n}\nfunction Ne(e, t, o) {\n let i;\n const s = typeof t;\n return s === \"string\" ? i = { content: t } : t && s === \"object\" ? i = t : i = { content: !1 }, i.placement = Tt(i, o), i.targetNodes = () => [e], i.referenceNode = () => e, i;\n}\nlet x, b, Pt = 0;\nfunction St() {\n if (x)\n return;\n b = U([]), x = Ge({\n name: \"VTooltipDirectiveApp\",\n setup() {\n return {\n directives: b\n };\n },\n render() {\n return this.directives.map((t) => qe(ze, {\n ...t.options,\n shown: t.shown || t.options.shown,\n key: t.id\n }));\n },\n devtools: {\n hide: !0\n }\n });\n const e = document.createElement(\"div\");\n document.body.appendChild(e), x.mount(e);\n}\nfunction bt(e, t, o) {\n St();\n const i = U(Ne(e, t, o)), s = U(!1), r = {\n id: Pt++,\n options: i,\n shown: s\n };\n return b.value.push(r), e.classList && e.classList.add(Ae), e.$_popper = {\n options: i,\n item: r,\n show() {\n s.value = !0;\n },\n hide() {\n s.value = !1;\n }\n };\n}\nfunction He(e) {\n if (e.$_popper) {\n const t = b.value.indexOf(e.$_popper.item);\n t !== -1 && b.value.splice(t, 1), delete e.$_popper, delete e.$_popperOldShown, delete e.$_popperMountTarget;\n }\n e.classList && e.classList.remove(Ae);\n}\nfunction me(e, { value: t, modifiers: o }) {\n const i = Ne(e, t, o);\n if (!i.content || S(i.theme || \"tooltip\", \"disabled\"))\n He(e);\n else {\n let s;\n e.$_popper ? (s = e.$_popper, s.options.value = i) : s = bt(e, t, o), typeof t.shown < \"u\" && t.shown !== e.$_popperOldShown && (e.$_popperOldShown = t.shown, t.shown ? s.show() : s.hide());\n }\n}\nconst oe = {\n beforeMount: me,\n updated: me,\n beforeUnmount(e) {\n He(e);\n }\n};\nfunction ge(e) {\n e.addEventListener(\"mousedown\", H), e.addEventListener(\"click\", H), e.addEventListener(\"touchstart\", Oe, $ ? {\n passive: !0\n } : !1);\n}\nfunction we(e) {\n e.removeEventListener(\"mousedown\", H), e.removeEventListener(\"click\", H), e.removeEventListener(\"touchstart\", Oe), e.removeEventListener(\"touchend\", Me), e.removeEventListener(\"touchcancel\", Be);\n}\nfunction H(e) {\n const t = e.currentTarget;\n e.closePopover = !t.$_vclosepopover_touch, e.closeAllPopover = t.$_closePopoverModifiers && !!t.$_closePopoverModifiers.all;\n}\nfunction Oe(e) {\n if (e.changedTouches.length === 1) {\n const t = e.currentTarget;\n t.$_vclosepopover_touch = !0;\n const o = e.changedTouches[0];\n t.$_vclosepopover_touchPoint = o, t.addEventListener(\"touchend\", Me), t.addEventListener(\"touchcancel\", Be);\n }\n}\nfunction Me(e) {\n const t = e.currentTarget;\n if (t.$_vclosepopover_touch = !1, e.changedTouches.length === 1) {\n const o = e.changedTouches[0], i = t.$_vclosepopover_touchPoint;\n e.closePopover = Math.abs(o.screenY - i.screenY) < 20 && Math.abs(o.screenX - i.screenX) < 20, e.closeAllPopover = t.$_closePopoverModifiers && !!t.$_closePopoverModifiers.all;\n }\n}\nfunction Be(e) {\n const t = e.currentTarget;\n t.$_vclosepopover_touch = !1;\n}\nconst ie = {\n beforeMount(e, { value: t, modifiers: o }) {\n e.$_closePopoverModifiers = o, (typeof t > \"u\" || t) && ge(e);\n },\n updated(e, { value: t, oldValue: o, modifiers: i }) {\n e.$_closePopoverModifiers = i, t !== o && (typeof t > \"u\" || t ? ge(e) : we(e));\n },\n beforeUnmount(e) {\n we(e);\n }\n}, Ht = h, Ot = oe, Mt = oe, Bt = ie, Et = ie, kt = Se, Lt = be, Dt = Q, It = ee, Ft = te, Rt = k, jt = Z, Vt = Ce, Wt = ze;\nfunction Ct(e, t = {}) {\n e.$_vTooltipInstalled || (e.$_vTooltipInstalled = !0, ye(h, t), e.directive(\"tooltip\", oe), e.directive(\"close-popper\", ie), e.component(\"VTooltip\", Ce), e.component(\"VDropdown\", Se), e.component(\"VMenu\", be));\n}\nconst Gt = {\n // eslint-disable-next-line no-undef\n version: \"5.2.2\",\n install: Ct,\n options: h\n};\nexport {\n kt as Dropdown,\n ae as HIDE_EVENT_MAP,\n Lt as Menu,\n Dt as Popper,\n It as PopperContent,\n Ft as PopperMethods,\n Rt as PopperWrapper,\n pe as SHOW_EVENT_MAP,\n jt as ThemeClass,\n Vt as Tooltip,\n Wt as TooltipDirective,\n Bt as VClosePopper,\n Ot as VTooltip,\n bt as createTooltip,\n Gt as default,\n He as destroyTooltip,\n Nt as hideAllPoppers,\n Ct as install,\n Ht as options,\n Te as placements,\n tt as recomputeAllPoppers,\n Et as vClosePopper,\n Mt as vTooltip\n};\n","\n \n \n \n \n \n {{ content }}\n \n \n \n\n\n\n","import Model from './Model'\n\n/**\n * List of attributes that can be updated in `updateAttributes()`\n *\n * @type {string[]}\n */\nconst ATTRIBUTES = ['content', 'visible', 'userId', 'resourceId', 'createdAt', 'updatedAt', 'username']\n\nclass ResourceNote extends Model {\n /* eslint-disable camelcase, jsdoc/require-param-description */\n /**\n * @param {object} payload - Data from API\n * @param {null|number} payload.id\n * @param {string} payload.content\n * @param {boolean} payload.visible\n * @param {number} payload.user_id\n * @param {number} payload.resource_id\n * @param {Date|string} payload.created_at\n * @param {Date|string} payload.updated_at\n * @param {string} payload.username\n */\n constructor ({ id = null, content, visible, user_id, resource_id, created_at, updated_at, username }) {\n super()\n this.id = id\n this.content = content\n this.visible = visible\n this.userId = user_id\n this.resourceId = resource_id\n this.createdAt = created_at ? new Date(created_at) : null\n this.updatedAt = updated_at ? new Date(updated_at) : null\n this.username = username\n }\n /* eslint-enable camelcase, jsdoc/require-param-description */\n\n /**\n * @returns {string} The hardcoded class name\n */\n static getClassName () { return 'ResourceNote' }\n}\n\nResourceNote.updatableAttributes = ATTRIBUTES\nResourceNote.urls = {\n index (resourceId) { return `/api/resources/${resourceId}/notes` },\n show (id) { return `/api/resource_notes/${id}` },\n create () { return '/api/resource_notes' },\n update (payload) { return `/api/resource_notes/${payload.id}` },\n destroy (id) { return `/api/resource_notes/${id}` },\n}\n\nexport default ResourceNote\n","import Model from './Model'\n\n/**\n * List of attributes that can be updated in `updateAttributes()`\n *\n * @type {string[]}\n */\nconst ATTRIBUTES = ['name', 'description', 'createdAt', 'updatedAt', 'syncId']\n\nclass ResourceInteractionsGroup extends Model {\n /* eslint-disable camelcase, jsdoc/require-param-description */\n /**\n * @param {object} payload - Data from API\n * @param {null|number} payload.id\n * @param {string} payload.name\n * @param {string} payload.description\n * @param {Date|string} payload.created_at\n * @param {Date|string} payload.updated_at\n * @param {string} payload.sync_id\n */\n constructor ({ id = null, name, description, created_at, updated_at, sync_id }) {\n super()\n this.id = id\n this.name = name\n this.description = description\n this.createdAt = created_at ? new Date(created_at) : null\n this.updatedAt = updated_at ? new Date(updated_at) : null\n this.syncId = sync_id\n }\n /* eslint-enable camelcase, jsdoc/require-param-description */\n\n get resources () { return this.constructor.store.getters.resourcesByResourceInteractionsGroup(this.id) }\n get interactions () { return this.constructor.store.getters.resourceInteractionsByGroup(this.id) }\n\n /**\n * @returns {string} The hardcoded class name\n */\n static getClassName () { return 'ResourceInteractionsGroup' }\n}\n\nResourceInteractionsGroup.updatableAttributes = ATTRIBUTES\nResourceInteractionsGroup.urls = {\n index () { return '/api/resource_interactions_groups' },\n show (id) { return `/api/resource_interactions_groups/${id}` },\n create () { return '/api/resource_interactions_groups' },\n update (payload) { return `/api/resource_interactions_groups/${payload.id}` },\n destroy (id) { return `/api/resource_interactions_groups/${id}` },\n}\n\nexport default ResourceInteractionsGroup\n","import Model from './Model'\n\n/**\n * @typedef {import('./Resource')} Resource\n * @typedef {import('./ResourceInteractionsGroup')} ResourceInteractionsGroup\n */\n\n/**\n * List of attributes that can be updated in `updateAttributes()`\n *\n * @type {string[]}\n */\nconst ATTRIBUTES = ['nature', 'notes', 'subjectId', 'targetId', 'sources', 'createdAt', 'updatedAt', 'syncId']\n\n/**\n * List of possible natures and the impact on subject and target.\n * Possible values are:\n * - true: positive impact\n * - false: negative impact\n * - null: neutral impact\n * - undefined: Unknown impact\n * The first entry in the array is the impact on subject, se second is the\n * impact on target.\n */\nexport const NATURES = {\n unspecified_positive: [true, undefined],\n unspecified_negative: [false, undefined],\n mutualism: [true, true],\n commensalism: [true, null],\n parasitism: [true, false],\n neutralism: [null, null],\n amensalism: [null, false],\n competition: [false, false],\n}\n\nexport const NATURE_KEYS = Object.keys(NATURES)\n\n// Some constants that can't be declared in model as JS don't support class-level\n// constants (as `static const foo = 'bar'`)\nconst POSITIVE_TO_SUBJECT = NATURE_KEYS.filter(k => NATURES[k][0] === true)\nconst POSITIVE_TO_TARGET = NATURE_KEYS.filter(k => NATURES[k][1] === true)\nconst NEGATIVE_TO_SUBJECT = NATURE_KEYS.filter(k => NATURES[k][0] === false)\nconst NEGATIVE_TO_TARGET = NATURE_KEYS.filter(k => NATURES[k][1] === false)\nconst NEUTRAL_TO_SUBJECT = NATURE_KEYS.filter(k => NATURES[k][0] === null)\nconst NEUTRAL_TO_TARGET = NATURE_KEYS.filter(k => NATURES[k][1] === null)\n\nclass ResourceInteraction extends Model {\n /* eslint-disable camelcase, jsdoc/require-param-description */\n /**\n * @param {object} payload - Data from API\n * @param {null|number} payload.id\n * @param {string} payload.nature\n * @param {string} payload.notes\n * @param {number} payload.subject_id\n * @param {number} payload.target_id\n * @param {string} payload.sources\n * @param {Date|string} payload.created_at\n * @param {Date|string} payload.updated_at\n * @param {string} payload.sync_id\n */\n constructor ({ id = null, nature, notes, subject_id, target_id, sources, created_at, updated_at, sync_id }) {\n super()\n this.id = id\n this.nature = nature\n this.notes = notes\n this.subjectId = subject_id\n this.targetId = target_id\n this.sources = sources\n this.createdAt = created_at ? new Date(created_at) : null\n this.updatedAt = updated_at ? new Date(updated_at) : null\n this.syncId = sync_id\n }\n /* eslint-enable camelcase, jsdoc/require-param-description */\n\n /**\n * Find the subject in VueX store\n *\n * @returns {ResourceInteractionsGroup} Subject group\n */\n get subject () { return this.constructor.store.getters.resourceInteractionsGroup(this.subjectId) }\n\n /**\n * Find the target in VueX store\n *\n * @returns {ResourceInteractionsGroup} Target group\n */\n get target () { return this.constructor.store.getters.resourceInteractionsGroup(this.targetId) }\n\n /**\n * Checks if the interaction is positive to one of the members\n *\n * @returns {boolean} True if the interaction is positive to one of the members\n */\n get isPositive () { return POSITIVE_TO_SUBJECT.includes(this.nature) || POSITIVE_TO_TARGET.includes(this.nature) }\n\n /**\n * Checks if the interaction is negative to one of the members\n *\n * @returns {boolean} True if the interaction is negative to one of the members\n */\n get isNegative () { return NEGATIVE_TO_SUBJECT.includes(this.nature) || NEGATIVE_TO_TARGET.includes(this.nature) }\n\n /**\n * Checks if the interaction is neutral to one of the members\n *\n * @returns {boolean} True if the interaction is neutral to one of the members\n */\n get isNeutral () { return NEUTRAL_TO_SUBJECT.includes(this.nature) || NEUTRAL_TO_TARGET.includes(this.nature) }\n\n /**\n * Returns the other group in this interaction\n *\n * @param {number} groupId - First group identifier\n * @returns {Resource|null} The other group\n */\n getOtherGroup (groupId) {\n if (groupId === this.subjectId) return this.target\n else if (groupId === this.targetId) return this.subject\n\n return null\n }\n\n /**\n * Returns true when given group is positively impacted by the other\n *\n * @param {number} groupId - Resource identifier\n * @returns {boolean} - True when group is positively impacted, false otherwise (negative, neutral or undefined)\n */\n isPositiveWith (groupId) {\n if (this.subjectId === groupId) return ResourceInteraction.positiveToSubject.includes(this.nature)\n if (this.targetId === groupId) return ResourceInteraction.positiveToTarget.includes(this.nature)\n\n // When neutral or not in the interaction\n return false\n }\n\n /**\n * Returns true when given group is negatively impacted by the other\n *\n * @param {number} groupId - Resource identifier\n * @returns {boolean} - True when group is negatively impacted, false otherwise (positive, neutral or undefined)\n */\n isNegativeWith (groupId) {\n if (this.subjectId === groupId) return ResourceInteraction.negativeToSubject.includes(this.nature)\n if (this.targetId === groupId) return ResourceInteraction.negativeToTarget.includes(this.nature)\n\n // When neutral or not in the interaction\n return false\n }\n\n /**\n * Returns true when given group is neutrally impacted by the other\n *\n * @param {number} groupId - Resource identifier\n * @returns {boolean} - True when group is negatively impacted, false otherwise (positive, neutral or undefined)\n */\n isNeutralWith (groupId) {\n if (this.subjectId === groupId) return ResourceInteraction.neutralToSubject.includes(this.nature)\n if (this.targetId === groupId) return ResourceInteraction.neutralToTarget.includes(this.nature)\n\n // When not neutral or not in the interaction\n return false\n }\n\n /**\n * @returns {string} The hardcoded class name\n */\n static getClassName () { return 'ResourceInteraction' }\n\n static get positiveToSubject () { return POSITIVE_TO_SUBJECT }\n\n static get positiveToTarget () { return POSITIVE_TO_TARGET }\n\n static get negativeToSubject () { return NEGATIVE_TO_SUBJECT }\n\n static get negativeToTarget () { return NEGATIVE_TO_TARGET }\n\n static get neutralToSubject () { return NEUTRAL_TO_SUBJECT }\n\n static get neutralToTarget () { return NEUTRAL_TO_TARGET }\n}\n\nResourceInteraction.updatableAttributes = ATTRIBUTES\nResourceInteraction.urls = {\n index () { return '/api/resource_interactions' },\n show (id) { return `/api/resource_interactions/${id}` },\n create () { return '/api/resource_interactions' },\n update (payload) { return `/api/resource_interactions/${payload.id}` },\n destroy (id) { return `/api/resource_interactions/${id}` },\n}\n\nexport default ResourceInteraction\n","\n \n \n \n \n \n \n \n\n \n \n \n\n \n \n {{ caption }}\n \n {{ subCaption }}\n \n \n \n\n \n \n \n \n \n \n \n\n\n\n","import Model from './Model'\nimport api from '../../tools/api'\nimport User from './User'\n\n/**\n * List of attributes that can be updated in `updateAttributes()`\n *\n * @type {string[]}\n */\nconst ATTRIBUTES = ['role', 'username', 'accountState', 'preferences']\n\nclass Account extends Model {\n /* eslint-disable camelcase, jsdoc/require-param-description */\n /**\n * @param {object} payload - Data from API\n * @param {null|number} payload.id\n * @param {string} payload.role\n * @param {string} payload.email\n * @param {string} payload.username\n * @param {object} payload.preferences\n * @param {string} payload.created_at\n * @param {string} payload.updated_at\n */\n constructor ({ id = null, role, email, username, preferences, created_at, updated_at }) {\n super()\n this.id = id\n this.role = role\n this.email = email\n this.username = username\n this.preferences = preferences\n this.createdAt = created_at ? new Date(created_at) : null\n this.updatedAt = updated_at ? new Date(updated_at) : null\n }\n /* eslint-enable camelcase, jsdoc/require-param-description */\n\n toUser () {\n return new User({\n id: this.id,\n role: this.role,\n username: this.username,\n account_state: 'active',\n })\n }\n\n /**\n * @returns {string} The hardcoded class name\n */\n static getClassName () { return 'Account' }\n\n /**\n * @param {boolean} failOnError - Whether to consider 401 responses as error. Useful when a login is not required.\n * @returns {Promise} Account instance\n */\n static getAccount (failOnError = true) {\n let url = '/api/account'\n if (!failOnError) url += '?fail_on_error=false'\n return api('get', url)\n .then((entity) => {\n if (entity) return new this(entity)\n return null\n })\n }\n\n /** Override as there is no route in the api anyway */\n static getIndex () { throw new Error('Not implemented') }\n /** Override as there is no route in the api anyway */\n static get () { throw new Error('Not implemented') }\n /** Override as there is no route in the api anyway */\n static create () { throw new Error('Not implemented') }\n /** Override as there is no route in the api anyway */\n static destroy () { throw new Error('Not implemented') }\n}\n\nAccount.updatableAttributes = ATTRIBUTES\nAccount.urls = {\n update () { return '/api/account' },\n}\n\nexport default Account\n","import Account from '../../classes/models/Account'\n\nexport default {\n state: {\n /** @type {Account} */\n account: null,\n },\n mutations: {\n setAccount (state, account) { state.account = account },\n deleteAccount (state) { state.account = null },\n },\n actions: {\n loadAccount: ({ commit }, failOnError = true) => Account.getAccount(failOnError)\n .then(account => { commit('setAccount', account) }),\n updateAccount: ({ commit }, payload) => Account.update(payload)\n .then(account => { commit('setAccount', account) }),\n },\n getters: {\n account: state => state.account,\n signedIn: state => !!state.account,\n },\n}\n","export default {\n mutations: {\n resetState (stateKey) { return (state) => { state[stateKey] = [] } },\n setEntity (stateKey) {\n return (state, item) => {\n const index = state[stateKey].findIndex(i => i.id === item.id)\n if (index > -1) state[stateKey][index].updateAttributes(item)\n else state[stateKey].push(item)\n }\n },\n deleteEntity (stateKey) {\n return (state, id) => {\n const index = state[stateKey].findIndex(i => i.id === id)\n if (index > -1) state[stateKey].splice(index, 1)\n else throw new Error(`can't remove entity with id ${id} (${stateKey})`)\n }\n },\n },\n actions: {\n loadEntities (klass, mutationName) {\n return ({ commit }, elementId) => klass.getIndex(elementId)\n .then(items => {\n items.forEach(item => { commit(mutationName, item) })\n\n return items\n })\n },\n loadEntity (klass, mutationName) {\n return ({ commit }, id) => klass.get(id)\n .then(item => { commit(mutationName, item) })\n },\n createEntity (klass, mutationName, getterForOne) {\n return ({ commit, getters }, payload) => klass.create(payload)\n .then(item => {\n commit(mutationName, item)\n // Return new instance\n return Promise.resolve(getters[getterForOne](item.id))\n })\n },\n updateEntity (klass, mutationName, getterForOne) {\n return ({ commit, getters }, payload) => klass.update(payload)\n .then(item => {\n commit(mutationName, item)\n // Return updated instance\n return Promise.resolve(getters[getterForOne](item.id))\n })\n },\n saveEntity (createAction, updateAction) {\n return ({ dispatch }, payload) => {\n let action = createAction\n if (payload.id) action = updateAction\n\n return dispatch(action, payload)\n }\n },\n destroyEntity (klass, mutationName) {\n return ({ commit }, id) => klass.destroy(id)\n .then(() => {\n commit(mutationName, id)\n return Promise.resolve()\n })\n },\n },\n getters: {\n entities (storeKey, sortAttribute) {\n return (state) => state[storeKey]\n .sort((a, b) => a[sortAttribute].localeCompare(b[sortAttribute]))\n },\n entity (storeKey) {\n return (state) => id => state[storeKey].find(e => e.id === id)\n },\n search (storeKey, attribute) {\n return (state) => (term, charsMin = 3) => {\n if (term.length < charsMin) return []\n\n const list = []\n term = term.toLowerCase()\n\n // Using \"for\" instead of \".filter\" for performance\n for (let i = 0, total = state[storeKey].length; i < total; i++) {\n if (state[storeKey][i][attribute].toLowerCase().includes(term)) list.push(state[storeKey][i])\n }\n\n return list\n .sort((a, b) => a[attribute].localeCompare(b[attribute]))\n }\n },\n },\n}\n","import Base from './Base'\nimport Comment from '../../classes/models/Comment'\n\nexport default {\n state: {\n /** @type {Comment[]} */\n comments: [],\n },\n mutations: {\n resetComments: Base.mutations.resetState('comments'),\n setComment: Base.mutations.setEntity('comments'),\n deleteComment: Base.mutations.deleteEntity('comments'),\n },\n actions: {\n loadComments ({ commit }, observationId) {\n return Comment.index(observationId)\n .then(items => { items.forEach(item => { commit('setComment', item) }) })\n },\n loadComment: Base.actions.loadEntity(Comment, 'setComment'),\n createComment: Base.actions.createEntity(Comment, 'setComment', 'comment'),\n updateComment: Base.actions.updateEntity(Comment, 'setComment', 'comment'),\n saveComment: Base.actions.saveEntity('createComment', 'updateComment'),\n destroyComment: Base.actions.destroyEntity(Comment, 'deleteComment'),\n },\n getters: {\n comments: Base.getters.entities('comments', 'id'),\n comment: Base.getters.entity('comments'),\n },\n}\n","export default function(n){return{all:n=n||new Map,on:function(t,e){var i=n.get(t);i?i.push(e):n.set(t,[e])},off:function(t,e){var i=n.get(t);i&&(e?i.splice(i.indexOf(e)>>>0,1):n.set(t,[]))},emit:function(t,e){var i=n.get(t);i&&i.slice().map(function(n){n(e)}),(i=n.get(\"*\"))&&i.slice().map(function(n){n(t,e)})}}}\n//# sourceMappingURL=mitt.mjs.map\n","import mitt from 'mitt'\n\nconst EventBus = mitt()\nconst listeners = {}\n\n/**\n * Fires an event on the event bus\n *\n * @param { string} eventName - Event name\n * @param {any} [payload] - Any payload\n */\nexport function $emitBus (eventName, payload = null) {\n EventBus.emit(eventName, payload)\n}\n\n/**\n * @callback $onBusCallback\n * @param {any} [payload] - The payload\n */\n/**\n * Listens for an event on the event bus\n *\n * The optional `key` parameter should be used by components that registers many\n * listeners and that are often created/destroyed. Application entrypoints are\n * not concerned as once the whole application dies (page reload), all listeners\n * dies with it.\n *\n * @param {string} eventName - Event name\n * @param {$onBusCallback} callback - Callback to deal with event payload\n * @param {string|null} key - Optional listener key\n * @example\n * // Without keeping track of the listener:\n * $onBus('something', (e) => doSomething)\n * // With a key\n * $onBus('something', (e) => doSomething, 'mainView')\n * $onBus('something-else', (e) => doSomethingElse, 'mainView')\n * $unKey('mainView') // Clears the listeners registered for this view\n */\nexport function $onBus (eventName, callback, key = null) {\n if (key) {\n if (!listeners[key]) listeners[key] = {}\n if (!listeners[key][eventName]) listeners[key][eventName] = []\n listeners[key][eventName].push(callback)\n }\n EventBus.on(eventName, callback)\n}\n\n/**\n * Remove all registered events listeners for a given key\n *\n * @param {string} key - Target key\n */\nexport function $unBusKey (key) {\n if (!listeners[key]) return\n\n for (const event in listeners[key]) {\n listeners[key][event].forEach((callback) => { EventBus.off(event, callback) })\n }\n delete listeners[key]\n}\n\nexport default EventBus\n","import Base from './Base'\nimport Element from '../../classes/models/Element'\nimport EventBus from '../../tools/EventBus'\n\n/**\n * Sort method for two elements\n *\n * @param {Element} a - First element\n * @param {Element} b - Second element\n *\n * @returns {number} Sorting order\n */\nfunction elementsSorter (a, b) {\n if (!a.isImplanted && !a.isRemoved && !b.isImplanted && !b.isRemoved) {\n return b.createdAt.valueOf() - a.createdAt.valueOf()\n }\n if (!a.isImplanted && !a.isRemoved) return -1\n if (!b.isImplanted && !b.isRemoved) return 1\n // Move implanted above removed\n if (a.isImplanted && b.isRemoved) return -1\n if (a.isRemoved && b.isImplanted) return 1\n\n if (a.isImplanted && b.isImplanted) return b.implantedAt.valueOf() - a.implantedAt.valueOf()\n if (a.isRemoved && b.isRemoved) return b.removedAt.valueOf() - a.removedAt.valueOf()\n\n return a.displayName.localeCompare(b.displayName)\n}\n\nexport default {\n state: {\n /** @type {Element[]} */\n elements: [],\n },\n mutations: {\n resetElements: Base.mutations.resetState('elements'),\n setElement: Base.mutations.setEntity('elements'),\n deleteElement: Base.mutations.deleteEntity('elements'),\n },\n actions: {\n loadElements: Base.actions.loadEntities(Element, 'setElement'),\n loadElement: Base.actions.loadEntity(Element, 'setElement'),\n createElement ({ commit, getters }, { payload, feature }) {\n return Element.create({ element: payload })\n .then(item => {\n commit('setElement', item)\n // Return new instance\n const element = getters.element(item.id)\n\n // Don't add feature when not given (i.e.: elements in a patch)\n if (feature) element.setFeature(feature)\n if (!element.isPoint) EventBus.emit('updated-patch', element.patch)\n return Promise.resolve(element)\n })\n },\n updateElement: ({ commit, getters }, payload) => Element.update(payload)\n .then(element => {\n const oldLayer = getters.element(element.id).layerId\n\n commit('setElement', element)\n const updatedElement = getters.element(element.id)\n\n if (oldLayer !== updatedElement.layerId) {\n EventBus.emit('change-element-layer', { element: updatedElement, fromLayerId: oldLayer })\n }\n EventBus.emit('updated-element', updatedElement)\n\n // Return updated instance\n return Promise.resolve(updatedElement)\n }),\n saveElement: Base.actions.saveEntity('createElement', 'updateElement'),\n destroyElement: ({ commit, getters }, id) => Element.destroy(id)\n .then(() => {\n const element = getters.element(id)\n\n commit('deleteElement', id)\n if (element.isPoint) EventBus.emit('destroyed-element', element)\n else EventBus.emit('destroyed-patch-element', element)\n\n return Promise.resolve()\n }),\n loadPatchElements ({ commit }, patchId) {\n return Element.getPatchIndex(patchId)\n .then(items => { items.forEach(item => { commit('setElement', item) }) })\n },\n implantElement ({ dispatch }, { id, date, implantationMode }) {\n const now = new Date()\n const dateObj = new Date(date)\n const payload = { id, implantation_mode: implantationMode }\n if (dateObj > now) payload.implantation_planned_for = date\n else payload.implanted_at = date\n return dispatch('updateElement', payload)\n },\n removeElement ({ dispatch }, { id, date }) {\n const now = new Date()\n const dateObj = new Date(date)\n const payload = { id }\n if (dateObj > now) payload.removal_planned_for = date\n else payload.removed_at = date\n return dispatch('updateElement', payload)\n },\n duplicateElement: ({ commit, getters }, id) => Element.duplicate(id)\n .then((item) => {\n commit('setElement', item)\n const element = getters.element(item.id)\n\n EventBus.emit('created-element', element)\n // Return new instance\n return Promise.resolve(element)\n }),\n },\n getters: {\n elements: state => state.elements,\n element: Base.getters.entity('elements'),\n activePointElements: state => state.elements.filter(e => !e.isRemoved && e.isPoint),\n pointElements: state => state.elements.filter(e => e.isPoint)\n .sort((a, b) => {\n // Sort by name when state is the same\n if (a.isRemoved === b.isRemoved) return a.displayName.localeCompare(b.displayName)\n // Move removed patches after\n return a.isRemoved ? 1 : -1\n }),\n activeElementsByPatchId: state => patchId => state.elements\n .filter(c => !c.isRemoved && c.patchId === patchId)\n .sort(elementsSorter),\n lastYearElementsByPatchId: state => patchId => {\n const lastYear = new Date().getFullYear() - 1\n return state.elements\n .filter(c => c.patchId === patchId && c.isRemoved && c.removedAt.getFullYear() === lastYear)\n .sort(elementsSorter)\n },\n elementsByPatchId: state => patchId => state.elements\n .filter(c => c.patchId === patchId)\n .sort(elementsSorter),\n },\n}\n","import Base from './Base'\nimport Family from '../../classes/models/Family'\n\nexport default {\n state: {\n /** @type {Family[]} */\n families: [],\n },\n mutations: {\n resetFamilies: Base.mutations.resetState('families'),\n setFamily: Base.mutations.setEntity('families'),\n deleteFamily: Base.mutations.deleteEntity('families'),\n },\n actions: {\n loadFamilies: Base.actions.loadEntities(Family, 'setFamily'),\n loadFamily: Base.actions.loadEntity(Family, 'setFamily'),\n createFamily: Base.actions.createEntity(Family, 'setFamily', 'family'),\n updateFamily: Base.actions.updateEntity(Family, 'setFamily', 'family'),\n saveFamily: Base.actions.saveEntity('createFamily', 'updateFamily'),\n destroyFamily: Base.actions.destroyEntity(Family, 'deleteFamily'),\n },\n getters: {\n families: Base.getters.entities('families', 'name'),\n family: Base.getters.entity('families'),\n familySearch: Base.getters.search('families', 'name'),\n },\n}\n","import Base from './Base'\nimport Genus from '../../classes/models/Genus'\n\nexport default {\n state: {\n /** @type {Genus[]} */\n genera: [],\n },\n mutations: {\n resetGenera: Base.mutations.resetState('genera'),\n setGenus: Base.mutations.setEntity('genera'),\n deleteGenus: Base.mutations.deleteEntity('genera'),\n },\n actions: {\n loadGenera: Base.actions.loadEntities(Genus, 'setGenus'),\n loadGenus: Base.actions.loadEntity(Genus, 'setGenus'),\n createGenus: Base.actions.createEntity(Genus, 'setGenus', 'genus'),\n updateGenus: Base.actions.updateEntity(Genus, 'setGenus', 'genus'),\n saveGenus: Base.actions.saveEntity('createGenus', 'updateGenus'),\n destroyGenus: Base.actions.destroyEntity(Genus, 'deleteGenus'),\n },\n getters: {\n genera: Base.getters.entities('genera', 'name'),\n genus: Base.getters.entity('genera'),\n genusSearch: Base.getters.search('genera', 'name'),\n generaByFamily: (state) => (familyId) => {\n const list = []\n\n // Using \"for\" instead of \".filter\" for performance\n for (let i = 0, total = state.genera.length; i < total; i++) {\n if (state.genera[i].familyId === familyId) list.push(state.genera[i])\n }\n\n return list\n .sort((a, b) => a.name.localeCompare(b.name))\n },\n },\n}\n","import Base from './Base'\nimport Harvest from '../../classes/models/Harvest'\n\nexport default {\n state: {\n /** @type {Harvest[]} */\n harvests: [],\n },\n mutations: {\n resetHarvests: Base.mutations.resetState('harvests'),\n setHarvest: Base.mutations.setEntity('harvests'),\n deleteHarvest: Base.mutations.deleteEntity('harvests'),\n },\n actions: {\n loadMapHarvests ({ commit }, mapId) {\n return Harvest.indexForMap(mapId)\n .then(items => { items.forEach(item => { commit('setHarvest', item) }) })\n },\n loadElementHarvests ({ commit }, elementId) {\n return Harvest.getElementIndex(elementId)\n .then(items => { items.forEach(item => { commit('setHarvest', item) }) })\n },\n loadHarvest: Base.actions.loadEntity(Harvest, 'setHarvest'),\n createHarvest: Base.actions.createEntity(Harvest, 'setHarvest', 'harvest'),\n updateHarvest: Base.actions.updateEntity(Harvest, 'setHarvest', 'harvest'),\n saveHarvest: Base.actions.saveEntity('createHarvest', 'updateHarvest'),\n destroyHarvest: Base.actions.destroyEntity(Harvest, 'deleteHarvest'),\n },\n getters: {\n harvests: Base.getters.entities('harvests', 'quantity'),\n harvestsForElement: state => elementId => state.harvests.filter(e => e.elementId === elementId)\n .sort((a, b) => b.harvestedAt.valueOf() - a.harvestedAt.valueOf()),\n harvest: Base.getters.entity('harvests'),\n },\n}\n","import Model from './Model'\n\n/**\n * @typedef {import('ol/layer/Vector')} VectorLayer\n */\n\n/**\n * List of attributes that can be updated in `updateAttributes()`\n *\n * @type {string[]}\n */\nconst ATTRIBUTES = ['name', 'visibleByDefault', 'position', 'createdAt', 'updatedAt']\n\nclass Layer extends Model {\n /* eslint-disable camelcase, jsdoc/require-param-description */\n /**\n * @param {object} payload - Data from API\n * @param {null|number} payload.id\n * @param {string} payload.name\n * @param {boolean} payload.visible_by_default\n * @param {number} payload.map_id\n * @param {Date|string} payload.created_at\n * @param {Date|string} payload.updated_at\n * @param {number} payload.position\n */\n constructor ({ id = null, name, visible_by_default, position, map_id, created_at, updated_at }) {\n super()\n this.id = id\n this.name = name\n this.visibleByDefault = visible_by_default\n this.position = position\n this.mapId = map_id\n this.createdAt = created_at ? new Date(created_at) : null\n this.updatedAt = updated_at ? new Date(updated_at) : null\n }\n /* eslint-enable camelcase, jsdoc/require-param-description */\n\n get patches () { return this.constructor.store.getters.patchesInLayer(this.id) }\n\n get paths () { return this.constructor.store.getters.pathsInLayer(this.id) }\n\n /**\n * Assigns an OpenLayers layer to the map\n *\n * @param {VectorLayer} layer - The layer to assign\n */\n setMapLayer (layer) {\n this.mapLayer = layer\n layer.set('layerId', this.id)\n }\n\n removeFromMap () {\n this.mapLayer.getSource().removeLayer(this.mapLayer)\n this.mapLayer = null\n }\n\n /**\n * @returns {string} The hardcoded class name\n */\n static getClassName () { return 'Layer' }\n}\n\nLayer.updatableAttributes = ATTRIBUTES\nLayer.urls = {\n index (mapId) { return `/api/maps/${mapId}/layers` },\n show (id) { return `/api/layers/${id}` },\n create () { return '/api/layers' },\n update (payload) { return `/api/layers/${payload.id}` },\n destroy (id) { return `/api/layers/${id}` },\n}\n\nexport default Layer\n","import Base from './Base'\nimport Layer from '../../classes/models/Layer'\nimport EventBus from '../../tools/EventBus'\n\nexport default {\n state: {\n /** @type {Layer[]} */\n layers: [],\n },\n mutations: {\n resetLayers: Base.mutations.resetState('layers'),\n setLayer: Base.mutations.setEntity('layers'),\n deleteLayer: Base.mutations.deleteEntity('layers'),\n },\n actions: {\n loadLayers: Base.actions.loadEntities(Layer, 'setLayer'),\n loadLayer: Base.actions.loadEntity(Layer, 'setLayer'),\n createLayer ({ commit, getters }, payload) {\n return Layer.create(payload)\n .then(layer => {\n commit('setLayer', layer)\n EventBus.emit('layer-created', layer)\n\n // Return new instance\n return Promise.resolve(getters.layer(layer.id))\n })\n },\n updateLayer ({ commit, getters }, payload) {\n return Layer.update(payload)\n .then(layer => {\n commit('setLayer', layer)\n\n // Return updated instance\n return Promise.resolve(getters.layer(layer.id))\n })\n },\n saveLayer: Base.actions.saveEntity('createLayer', 'updateLayer'),\n destroyLayer: Base.actions.destroyEntity(Layer, 'deleteLayer'),\n },\n getters: {\n layer: Base.getters.entity('layers'),\n layerSearch: Base.getters.search('layers', 'name'),\n layers: state => state.layers\n .sort((a, b) => b.position - a.position),\n },\n}\n","import { randomString } from '@experiments-labs/rise_ui/src/lib/String.js'\nimport { removeObjectByKey } from '@/helpers/Arrays'\n\nexport default {\n state: {\n loaders: [],\n },\n mutations: {\n addLoader (state, { key, group, message }) {\n state.loaders.push({ key, group, message })\n },\n removeLoader (state, key) {\n removeObjectByKey(state.loaders, key, 'key')\n },\n },\n actions: {\n load ({ commit }, { promise, message, group = null }) {\n group = group || randomString()\n const key = randomString(8)\n\n commit('addLoader', { key, group, message })\n return promise\n .then((result) => {\n return Promise.resolve(result)\n })\n .catch((err) => Promise.reject(err))\n .then(() => { commit('removeLoader', key) })\n },\n loadGroup ({ dispatch }, { name, loaders }) {\n return Promise.all(loaders.map((l) => {\n dispatch('load', {\n promise: l.promise,\n message: l.message,\n group: name,\n })\n return l.promise\n }))\n },\n },\n getters: {\n loader: state => group => state.loaders.filter(l => l.group === group),\n },\n}\n","import Base from './Base'\nimport Map from '../../classes/models/Map'\nimport EventBus from '../../tools/EventBus'\n\nexport default {\n state: {\n /** @type {Map[]} */\n maps: [],\n /** @type {Map} */\n currentMap: null,\n },\n mutations: {\n resetMaps: Base.mutations.resetState('maps'),\n setMap: Base.mutations.setEntity('maps'),\n deleteMap: Base.mutations.deleteEntity('maps'),\n setCurrentMap: (state, map) => { state.currentMap = map },\n },\n actions: {\n loadMaps: ({ commit, getters }) => Map.getIndex()\n .then(items => {\n const newIds = []\n items.forEach(item => {\n newIds.push(item.id)\n commit('setMap', item)\n })\n const existingIds = getters.maps.map(m => m.id)\n\n // Remove absents\n existingIds.forEach((id) => {\n if (!newIds.includes(id)) commit('deleteMap', id)\n })\n\n return items\n }),\n loadMap: Base.actions.loadEntity(Map, 'setMap'),\n createMap: Base.actions.createEntity(Map, 'setMap', 'map'),\n updateMap ({ commit, getters }, payload) {\n return Map.update(payload)\n .then(item => {\n const oldMapHideBackground = getters.map(item.id).hideBackground\n\n commit('setMap', item)\n const newMap = getters.map(item.id)\n\n if (oldMapHideBackground !== newMap.hideBackground) {\n EventBus.emit('change-background-layer-visibility')\n }\n\n // Return updated instance\n return Promise.resolve(newMap)\n })\n },\n saveMap: Base.actions.saveEntity('createMap', 'updateMap'),\n destroyMap: Base.actions.destroyEntity(Map, 'deleteMap'),\n setCurrentMap: ({ commit, getters }, mapId) => commit('setCurrentMap', getters.map(mapId)),\n },\n getters: {\n maps: Base.getters.entities('maps', 'name'),\n ownedMaps: (_state, getters) => getters.maps.filter(map => map.userId === getters.account.id),\n otherMaps: (_state, getters) => getters.maps.filter(map => map.userId !== getters.account.id),\n map: Base.getters.entity('maps'),\n currentMap: state => state.currentMap,\n isMapOwner: (state, getters) => getters.currentMap && getters.currentMap?.userId === getters.account?.id,\n },\n}\n","import Base from './Base'\nimport Notification from '../../classes/models/Notification'\n\nexport default {\n state: {\n /** @type {Notification[]} */\n notifications: [],\n },\n mutations: {\n resetNotifications: Base.mutations.resetState('notifications'),\n setNotification: Base.mutations.setEntity('notifications'),\n deleteNotification: Base.mutations.deleteEntity('notifications'),\n },\n actions: {\n loadNotifications: Base.actions.loadEntities(Notification, 'setNotification'),\n loadNotification: Base.actions.loadEntity(Notification, 'setNotification'),\n destroyNotification: Base.actions.destroyEntity(Notification, 'deleteNotification'),\n archiveNotification: ({ commit }, id) => Notification.archive(id).then(notification => commit('setNotification', notification)),\n archiveAllNotifications: ({ commit }) => Notification.archiveAll()\n .then((notifications) => {\n notifications.forEach((notification) => { commit('setNotification', notification) })\n }),\n destroyAllNotifications: ({ commit }) => Notification.destroyAllArchived()\n .then((notifications) => {\n commit('resetNotifications')\n notifications.forEach((notification) => { commit('setNotification', notification) })\n }),\n },\n getters: {\n notifications: state => state.notifications.sort((a, b) => b.createdAt - a.createdAt),\n unreadNotification: (state, getters) => getters.notifications.filter(n => !n.archivedAt),\n notification: Base.getters.entity('notifications'),\n searchNotifications: Base.getters.search('notifications', 'action'),\n },\n}\n","import Base from './Base'\nimport Observation from '../../classes/models/Observation'\n\nexport default {\n state: {\n /** @type {Observation[]} */\n observations: [],\n },\n mutations: {\n resetObservations: Base.mutations.resetState('observations'),\n setObservation: Base.mutations.setEntity('observations'),\n deleteObservation: Base.mutations.deleteEntity('observations'),\n },\n actions: {\n loadObservations: Base.actions.loadEntities(Observation, 'setObservation'),\n loadObservationsBySubject ({ commit }, subject) {\n return Observation.getObservationsForSubject(subject.className, subject.id)\n .then((observations) => {\n observations.forEach(observation => { commit('setObservation', observation) })\n })\n },\n loadObservationsByMap ({ commit }, mapId) {\n return Observation.getObservationsForMap(mapId)\n .then((observations) => {\n observations.forEach(observation => { commit('setObservation', observation) })\n })\n },\n loadObservation: Base.actions.loadEntity(Observation, 'setObservation'),\n createObservation ({ commit }, payload) {\n return Observation.create(payload)\n .then((item) => {\n commit('setObservation', item)\n // Update the subject's counter\n item.subject.observationsCount += 1\n\n // Return new instance\n return Promise.resolve(item)\n })\n },\n updateObservation: Base.actions.updateEntity(Observation, 'setObservation', 'observation'),\n saveObservation: Base.actions.saveEntity('createObservation', 'updateObservation'),\n destroyObservation: Base.actions.destroyEntity(Observation, 'deleteObservation'),\n },\n getters: {\n observation: Base.getters.entity('observations'),\n observations: state => state.observations\n .sort((a, b) => b.madeAt - a.madeAt),\n observationsBySubject: state => (subject) => state.observations\n .filter(a => a.subjectId === subject.id && a.subjectType === subject.className)\n .sort((a, b) => b.madeAt - a.madeAt),\n searchObservations: Base.getters.search('observations', 'title'),\n },\n}\n","import Base from './Base'\nimport Patch from '../../classes/models/Patch'\nimport EventBus from '../../tools/EventBus'\n\nexport default {\n state: {\n /** @type {Patch[]} */\n patches: [],\n },\n mutations: {\n resetPatches: Base.mutations.resetState('patches'),\n setPatch: Base.mutations.setEntity('patches'),\n deletePatch: Base.mutations.deleteEntity('patches'),\n },\n actions: {\n loadPatches: Base.actions.loadEntities(Patch, 'setPatch'),\n loadPatch: Base.actions.loadEntity(Patch, 'setPatch'),\n virtualizePatch: ({ commit, getters }, { payload, originalPatch }) => {\n payload.geometry = null\n payload.layer_id = null\n\n return Patch.update(payload)\n .then((patch) => {\n // Anyone listening may remove the old patch from its refs\n EventBus.emit('virtualize-patch', originalPatch)\n\n commit('setPatch', patch)\n const updatedPatch = getters.patch(patch.id)\n\n // Return updated instance\n return Promise.resolve(updatedPatch)\n })\n },\n updatePatch: ({ commit, getters }, { payload }) => Patch.update(payload)\n .then(patch => {\n const oldPatch = getters.patch(patch.id)\n const oldLayer = oldPatch.layerId\n const wasVirtual = oldPatch.isVirtual\n\n commit('setPatch', patch)\n const updatedPatch = getters.patch(patch.id)\n\n if (!wasVirtual && oldLayer !== updatedPatch.layerId) {\n EventBus.emit('change-patch-layer', { patch: updatedPatch, fromLayerId: oldLayer })\n }\n\n // Return updated instance\n return Promise.resolve(updatedPatch)\n }),\n savePatch: Base.actions.saveEntity('createPatch', 'updatePatch'),\n destroyPatch: ({ commit, getters }, id) => Patch.destroy(id)\n .then(() => {\n const patch = getters.patch(id)\n patch.elements.forEach(element => { commit('deleteElement', element.id) })\n\n commit('deletePatch', id)\n EventBus.emit('destroyed-patch', patch)\n\n return Promise.resolve()\n }),\n createPatch ({ commit, dispatch, getters }, { payload, feature }) {\n return Patch.create(payload)\n .then(item => {\n return dispatch('loadPatchElements', item.id)\n // Add and return the new patch once its elements are loaded\n .then(() => {\n commit('setPatch', item)\n // Return new instance\n const patch = getters.patch(item.id)\n if (feature) patch.setFeature(feature)\n\n return Promise.resolve(patch)\n })\n })\n },\n },\n getters: {\n patch: Base.getters.entity('patches'),\n patches: state => state.patches.sort((a, b) => {\n if (a.name && b.name) return a.name.localeCompare(b.name)\n if (a.name && !b.name) return -1\n if (!a.name && b.name) return 1\n\n return a.createdAt.valueOf() - b.createdAt.valueOf()\n }),\n placeablePatches: (_state, getters) => getters.patches.filter(p => p.geometryType !== 'Virtual'),\n virtualPatches: (_state, getters) => getters.patches.filter(p => p.geometryType === 'Virtual'),\n patchesByIds: state => ids => state.patches.filter(p => ids.indexOf(p.id) > -1),\n patchesInLayer: state => layerId => state.patches.filter(p => p.layerId === layerId),\n },\n}\n","import Base from './Base'\nimport Path from '../../classes/models/Path'\nimport EventBus from '../../tools/EventBus'\n\nexport default {\n state: {\n /** @type {Path[]} */\n paths: [],\n },\n mutations: {\n resetPaths: Base.mutations.resetState('paths'),\n setPath: Base.mutations.setEntity('paths'),\n deletePath: Base.mutations.deleteEntity('paths'),\n },\n actions: {\n loadPaths: Base.actions.loadEntities(Path, 'setPath'),\n loadPath: Base.actions.loadEntity(Path, 'setPath'),\n updatePath: ({ commit, getters }, payload) => Path.update(payload)\n .then(path => {\n const oldLayer = getters.path(path.id).layerId\n\n commit('setPath', path)\n const updatedPath = getters.path(path.id)\n\n if (oldLayer !== updatedPath.layerId) {\n EventBus.emit('change-path-layer', { path: updatedPath, fromPathId: oldLayer })\n }\n EventBus.emit('updated-path', updatedPath)\n\n // Return updated instance\n return Promise.resolve(updatedPath)\n }),\n savePath: Base.actions.saveEntity('createPath', 'updatePath'),\n destroyPath: ({ commit, getters }, id) =>\n Path.destroy(id)\n .then(() => {\n const path = getters.path(id)\n\n commit('deletePath', id)\n EventBus.emit('destroyed-path', path)\n\n return Promise.resolve()\n }),\n createPath ({ commit, getters }, { payload, feature }) {\n return Path.create(payload)\n .then(item => {\n commit('setPath', item)\n // Return new instance\n const path = getters.path(item.id)\n path.setFeature(feature)\n return Promise.resolve(path)\n })\n },\n },\n getters: {\n paths: state => state.paths,\n path: Base.getters.entity('paths'),\n pathsInLayer: state => layerId => state.paths.filter(p => p.layerId === layerId),\n },\n}\n","import Base from './Base'\nimport ResourceInteraction from '../../classes/models/ResourceInteraction'\n\nexport default {\n state: {\n /** @type {ResourceInteraction[]} */\n resourceInteractions: [],\n },\n mutations: {\n resetResourceInteractions: Base.mutations.resetState('resourceInteractions'),\n setResourceInteraction: Base.mutations.setEntity('resourceInteractions'),\n deleteResourceInteraction: Base.mutations.deleteEntity('resourceInteractions'),\n },\n actions: {\n loadResourceInteractions: Base.actions.loadEntities(ResourceInteraction, 'setResourceInteraction'),\n loadResourceInteraction: Base.actions.loadEntity(ResourceInteraction, 'setResourceInteraction'),\n createResourceInteraction: Base.actions.createEntity(ResourceInteraction, 'setResourceInteraction', 'resourceInteraction'),\n updateResourceInteraction: Base.actions.updateEntity(ResourceInteraction, 'setResourceInteraction', 'resourceInteraction'),\n saveResourceInteraction: Base.actions.saveEntity('createResourceInteraction', 'updateResourceInteraction'),\n destroyResourceInteraction: Base.actions.destroyEntity(ResourceInteraction, 'deleteResourceInteraction'),\n },\n getters: {\n resourceInteractions: state => state.resourceInteractions,\n resourceInteraction: Base.getters.entity('resourceInteractions'),\n resourceInteractionsByGroup: state => groupId => state.resourceInteractions\n .filter(interaction => interaction.subjectId === groupId || interaction.targetId === groupId),\n positiveInteractionsByGroup: (state) => (groupId = null) => {\n const list = []\n if (!groupId) return list\n\n // Using \"for\" instead of \".filter\" for performance\n for (let i = 0, total = state.resourceInteractions.length; i < total; i++) {\n if (state.resourceInteractions[i].isPositiveWith(groupId)) list.push(state.resourceInteractions[i])\n }\n\n return list\n },\n negativeInteractionsByGroup: (state) => (groupId) => {\n const list = []\n if (!groupId) return list\n\n // Using \"for\" instead of \".filter\" for performance\n for (let i = 0, total = state.resourceInteractions.length; i < total; i++) {\n if (state.resourceInteractions[i].isNegativeWith(groupId)) list.push(state.resourceInteractions[i])\n }\n\n return list\n },\n neutralInteractionsByGroup: (state) => (groupId) => {\n const list = []\n if (!groupId) return list\n\n // Using \"for\" instead of \".filter\" for performance\n for (let i = 0, total = state.resourceInteractions.length; i < total; i++) {\n if (state.resourceInteractions[i].isNeutralWith(groupId)) list.push(state.resourceInteractions[i])\n }\n\n return list\n },\n },\n}\n","import Base from './Base'\nimport ResourceInteractionsGroup from '../../classes/models/ResourceInteractionsGroup'\n\nexport default {\n state: {\n /** @type {ResourceInteractionsGroup[]} */\n resourceInteractionsGroups: [],\n },\n mutations: {\n resetResourceInteractionsGroups: Base.mutations.resetState('resourceInteractionsGroups'),\n setResourceInteractionsGroup: Base.mutations.setEntity('resourceInteractionsGroups'),\n deleteResourceInteractionsGroup: Base.mutations.deleteEntity('resourceInteractionsGroups'),\n },\n actions: {\n loadResourceInteractionsGroups: Base.actions.loadEntities(ResourceInteractionsGroup, 'setResourceInteractionsGroup', 'resetResourceInteractionsGroups'),\n loadResourceInteractionsGroup: Base.actions.loadEntity(ResourceInteractionsGroup, 'setResourceInteractionsGroup'),\n createResourceInteractionsGroup: Base.actions.createEntity(ResourceInteractionsGroup, 'setResourceInteractionsGroup', 'resourceInteractionsGroup'),\n updateResourceInteractionsGroup: Base.actions.updateEntity(ResourceInteractionsGroup, 'setResourceInteractionsGroup', 'resourceInteractionsGroup'),\n saveResourceInteractionsGroup: Base.actions.saveEntity('createResourceInteractionsGroup', 'updateResourceInteractionsGroup'),\n destroyResourceInteractionsGroup: Base.actions.destroyEntity(ResourceInteractionsGroup, 'deleteResourceInteractionsGroup'),\n },\n getters: {\n resourceInteractionsGroups: Base.getters.entities('resourceInteractionsGroups', 'name'),\n resourceInteractionsGroup: Base.getters.entity('resourceInteractionsGroups'),\n searchResourceInteractionsGroups: Base.getters.search('resourceInteractionsGroups', 'name'),\n },\n}\n","import Base from './Base'\nimport Resource from '../../classes/models/Resource'\n\n/**\n * Filters a list of resources given on a \"month key\" given a months list\n *\n * @param {Resource[]} resources - Resources to filter\n * @param {string} key - Month key in the resource (\"shelteredSowingMonths\", ...)\n * @param {number[]} months - Array of months like \"[1,2,3]\"\n * @returns {Resource[]} - Filtered list\n */\nfunction filterMonth (resources, key, months) {\n const list = []\n\n // Using \"for\" for performance\n for (let i = 0, amount = resources.length; i < amount; i++) {\n for (const month of months) {\n if (resources[i][key][month - 1]) list.push(resources[i])\n }\n }\n\n return list\n}\n\n/**\n * Sort resources by name\n *\n * @param {Resource[]} resources - List to sort\n * @returns {Resource[]} Sorted list\n */\nfunction sortResources (resources) {\n return resources.sort((a, b) => a.name.localeCompare(b.name))\n}\n\n/**\n * Searches for a string in resources attributes\n *\n * @param {Resource[]} resources - Resource list\n * @param {string} term - Term to search\n * @returns {Resource[]} - Filtered results\n */\nfunction searchResources (resources, term) {\n if (term.length === 0) return sortResources(resources)\n\n term = term.toLowerCase()\n\n const results = []\n // Use \"for\" for performance\n for (let i = 0, amount = resources.length; i < amount; i++) {\n // Order matters as we want to return as soon as possible\n if (resources[i].name.toLowerCase().includes(term)\n || resources[i].latinName?.toLowerCase().includes(term)\n || resources[i].commonNames.join('').includes(term)) {\n results.push(resources[i])\n }\n }\n\n return sortResources(results)\n}\n\nexport default {\n state: {\n /** @type {Resource[]} */\n resources: [],\n },\n mutations: {\n resetResources: Base.mutations.resetState('resources'),\n setResource: Base.mutations.setEntity('resources'),\n deleteResource: Base.mutations.deleteEntity('resources'),\n },\n actions: {\n loadResources: ({ commit }) => Resource.getIndex()\n .then(items => {\n items.forEach(item => {\n commit('setResource', item)\n item.tagList.forEach(t => commit('setTagString', t))\n })\n\n return Promise.resolve(items)\n }),\n loadResource: ({ commit, getters }, id) => Resource.get(id)\n .then((item) => {\n commit('setResource', item)\n item.tagList.forEach(t => commit('setTagString', t))\n\n return Promise.resolve(getters.resource(item.id))\n }),\n createResource: ({ commit, getters }, payload) => Resource.create(payload)\n .then((item) => {\n commit('setResource', item)\n item.tagList.forEach(t => commit('setTagString', t))\n\n return Promise.resolve(getters.resource(item.id))\n }),\n updateResource: ({ commit, getters }, payload) => Resource.update(payload)\n .then((item) => {\n commit('setResource', item)\n item.tagList.forEach(t => commit('setTagString', t))\n\n return Promise.resolve(getters.resource(item.id))\n }),\n saveResource: Base.actions.saveEntity('createResource', 'updateResource'),\n destroyResource: Base.actions.destroyEntity(Resource, 'deleteResource'),\n },\n getters: {\n resources: Base.getters.entities('resources', 'name'),\n resource: Base.getters.entity('resources'),\n resourceSearch: Base.getters.search('resources', 'name'),\n parentableResources: state => state.resources\n .filter(r => r.parentId === null)\n .sort((a, b) => a.name.localeCompare(b.name)),\n resourcesByResourceInteractionsGroup: (state) => (groupId) => state.resources.filter(r => r.resourceInteractionsGroupId === groupId)\n .sort((a, b) => a.name.localeCompare(b.name)),\n resourcesGroupedByParent: (state) => (searchTerm = '') => {\n const hash = {}\n const resources = searchResources(state.resources.slice(), searchTerm)\n const parentIds = []\n\n // Grouping by parent using \"for\" for performance\n for (let i = 0, amount = resources.length; i < amount; i++) {\n if (resources[i].parentId && searchTerm.length === 0) {\n parentIds.push(resources[i].parentId)\n if (!hash[resources[i].parentId]) hash[resources[i].parentId] = { resource: null, children: [resources[i]] }\n else hash[resources[i].parentId].children.push(resources[i])\n } else {\n if (!hash[resources[i].id]) hash[resources[i].id] = { resource: resources[i], children: [] }\n else hash[resources[i].id].resource = resources[i]\n\n hash[resources[i].id].id = resources[i].id\n }\n }\n\n // Sort child resources\n for (let i = 0, amount = parentIds.length; i < amount; i++) {\n hash[parentIds[i]].children.sort((a, b) => a.name.localeCompare(b.name))\n }\n\n const list = []\n const keys = Object.keys(hash)\n\n // Make an array so it's iterable by virtual-list component\n for (let i = 0, amount = keys.length; i < amount; i++) {\n list.push(hash[keys[i]])\n }\n\n return list.sort((a, b) => a.resource.name.localeCompare(b.resource.name))\n },\n searchedResources: (state) => (term) => sortResources(searchResources(state.resources.slice(), term)),\n searchedAndFilteredResources: (state) => ({ generic, search, tags, shelteredSowingMonths, soilSowingMonths, harvestingMonths, cropRotationGroups }) => {\n let resources = generic ? state.resources.filter(r => r.generic) : state.resources.slice()\n\n // Filter by search term\n resources = searchResources(resources, search)\n\n if (cropRotationGroups.length > 0) {\n resources = resources.filter(r => cropRotationGroups.includes(r.cropRotationGroup))\n }\n\n // For the month filter, select any resource that match one month in any category\n if (shelteredSowingMonths.length > 0) {\n resources = filterMonth(resources, 'shelteredSowingMonths', shelteredSowingMonths)\n }\n if (soilSowingMonths.length > 0) {\n resources = filterMonth(resources, 'soilSowingMonths', soilSowingMonths)\n }\n if (harvestingMonths.length > 0) {\n resources = filterMonth(resources, 'harvestingMonths', harvestingMonths)\n }\n\n // Select resources matching all of the tags\n if (tags.length === 0) {\n return resources\n } else {\n const matches = []\n // Using \"for\" for performance\n for (let i = 0, amount = resources.length; i < amount; i++) {\n let tagsCount = 0\n for (const tag of tags) {\n if (resources[i].tagList.includes(tag)) tagsCount++\n }\n if (tagsCount === tags.length) matches.push(resources[i])\n }\n\n return sortResources(matches)\n }\n },\n childResources: (state) => (parentId) => {\n const list = []\n\n // Using \"for\" instead of \".filter\" for performance\n for (let i = 0, total = state.resources.length; i < total; i++) {\n if (state.resources[i].parentId === parentId) list.push(state.resources[i])\n }\n\n return sortResources(list)\n },\n resourcesByGenus: (state) => (genusId) => {\n const list = []\n\n // Using \"for\" instead of \".filter\" for performance\n for (let i = 0, total = state.resources.length; i < total; i++) {\n if (state.resources[i].genusId === genusId) list.push(state.resources[i])\n }\n\n return sortResources(list)\n },\n resourcesByFamily: (state, rootGetters, rootState) => (familyId) => {\n const resources = []\n const genera = rootState.GenusModule.genera.filter(g => g.familyId === familyId)\n\n // Using \"for\" instead of \".forEach\" for performance\n for (let i = 0, totalGenera = genera.length; i < totalGenera; i++) {\n resources.push(...rootGetters.resourcesByGenus(genera[i].id))\n }\n\n return resources\n },\n },\n}\n","import Base from './Base'\nimport ResourceNote from '../../classes/models/ResourceNote'\n\nexport default {\n state: {\n /** @type {ResourceNote[]} */\n resourceNotes: [],\n },\n mutations: {\n resetResourceNotes: Base.mutations.resetState('resourceNotes'),\n setResourceNote: Base.mutations.setEntity('resourceNotes'),\n deleteResourceNote: Base.mutations.deleteEntity('resourceNotes'),\n },\n actions: {\n loadResourceNotes: Base.actions.loadEntities(ResourceNote, 'setResourceNote'),\n loadResourceNote: Base.actions.loadEntity(ResourceNote, 'setResourceNote'),\n createResourceNote: Base.actions.createEntity(ResourceNote, 'setResourceNote', 'resourceNote'),\n updateResourceNote: Base.actions.updateEntity(ResourceNote, 'setResourceNote', 'resourceNote'),\n saveResourceNote: Base.actions.saveEntity('createResourceNote', 'updateResourceNote'),\n destroyResourceNote: Base.actions.destroyEntity(ResourceNote, 'deleteResourceNote'),\n },\n getters: {\n resourceNotes: state => state.resourceNotes\n .sort((a, b) => b.updatedAt - a.updatedAt),\n resourceNotesForResource: (_state, getters) => resourceId => getters.resourceNotes.filter(note => note.resourceId === resourceId),\n resourceNote: Base.getters.entity('resourceNotes'),\n searchResourceNotes: Base.getters.search('resourceNotes', 'content'),\n },\n}\n","import Base from './Base'\nimport { upCaseFirst } from '../../../helpers/String'\n\n/**\n * Mutation to add tag to the state\n *\n * Extracted to be reusable\n *\n * @param {object} state - Current state\n * @param {object} tag - Tag to add\n */\nfunction setTag (state, tag) {\n const index = state.tags.findIndex((t) => t.base === tag.base)\n if (index > -1) {\n // Merge values\n state.tags[index].name = tag.name\n state.tags[index].items = new Set([...state.tags[index].items, ...tag.items])\n } else {\n state.tags.push(tag)\n }\n}\n\nexport default {\n state: {\n /** @type {object[]} */\n tags: [],\n },\n mutations: {\n setTag,\n setTagString: (state, tag) => {\n const nibbles = tag.split('::')\n const base = nibbles.shift()\n const name = upCaseFirst(base)\n\n setTag(state, { name, base, items: new Set(nibbles) })\n },\n },\n getters: {\n tags: Base.getters.entities('tags', 'name'),\n },\n}\n","import Base from './Base'\nimport Task from '../../classes/models/Task'\nimport Element from '../../classes/models/Element'\nimport Map from '../../classes/models/Map'\nimport Patch from '../../classes/models/Patch'\nimport Path from '../../classes/models/Path'\n\n/**\n * Compares tasks by date of achievement. If item is not yet done, planning\n * date is used.\n *\n * @param {Task} a - First task to compare\n * @param {Task} b - Second task to compare\n * @returns {number} Sort order\n */\nfunction sortTasks (a, b) {\n const date1 = a.doneAt || a.plannedFor\n const date2 = b.doneAt || b.plannedFor\n return date2 - date1\n}\n\nexport default {\n state: {\n /** @type {Task[]} */\n tasks: [],\n taskNames: [],\n },\n mutations: {\n resetTasks: Base.mutations.resetState('tasks'),\n setTask: Base.mutations.setEntity('tasks'),\n deleteTask: Base.mutations.deleteEntity('tasks'),\n setTaskNames: (state, names) => { state.taskNames = names },\n addTaskName: (state, name) => { if (state.taskNames.indexOf(name) === -1) state.taskNames.push(name) },\n },\n actions: {\n loadTasks: Base.actions.loadEntities(Task, 'setTask'),\n loadTask: Base.actions.loadEntity(Task, 'setTask'),\n setUpdatedTaskSubject ({ commit }, task) {\n if (!task.updatedSubject) return\n\n switch (task.subjectType) {\n case 'Element':\n commit('setElement', new Element(task.updatedSubject))\n break\n case 'Map':\n commit('setMap', new Map(task.updatedSubject))\n break\n case 'Patch':\n commit('setPatch', new Patch(task.updatedSubject))\n break\n case 'Path':\n commit('setPath', new Path(task.updatedSubject))\n break\n }\n },\n createTask ({ commit, dispatch, getters }, payload) {\n return Task.create(payload)\n .then((task) => {\n commit('setTask', task)\n dispatch('setUpdatedTaskSubject', task)\n // Return new instance\n return Promise.resolve(getters.task(task.id))\n })\n },\n updateTask ({ commit, dispatch, getters }, payload) {\n return Task.update(payload)\n .then((task) => {\n commit('setTask', task)\n dispatch('setUpdatedTaskSubject', task)\n // Return new instance\n return Promise.resolve(getters.task(task.id))\n })\n },\n destroyTask ({ dispatch, commit }, id) {\n return Task.destroy(id)\n .then((task) => {\n commit('deleteTask', id)\n dispatch('setUpdatedTaskSubject', {\n subjectType: task.subject_type,\n subjectId: task.subject_id,\n updatedSubject: task.subject,\n })\n })\n },\n loadTasksAllForMap ({ commit }, { mapId, filters = {} }) {\n return Task.getAllForMap(mapId, filters)\n .then((items) => {\n commit('resetTasks')\n items.forEach(item => { commit('setTask', item) })\n\n return items\n })\n },\n loadTasksForSubject ({ commit }, { subject, filters = {} }) {\n return Task.getTasksForSubject(subject.className, subject.id, filters)\n .then((items) => {\n commit('resetTasks')\n items.forEach(item => { commit('setTask', item) })\n\n return items\n })\n },\n loadTaskNames: ({ commit }, mapId) => Task.getNames(mapId)\n .then(data => commit('setTaskNames', data)),\n addTaskName: ({ commit }, name) => { commit('addTaskName', name) },\n },\n getters: {\n task: Base.getters.entity('tasks'),\n tasks: state => state.tasks\n .sort((a, b) => sortTasks(a, b)),\n taskNames: state => state.taskNames.sort((a, b) => a.localeCompare(b)),\n tasksBySubject: state => (subject) => state.tasks\n .filter(a => a.subjectId === subject.id && a.subjectType === subject.className)\n .sort((a, b) => sortTasks(a, b)),\n pendingTasks: state => state.tasks.filter(a => a.doneAt === null)\n .sort((a, b) => sortTasks(a, b))\n .reverse(),\n },\n}\n","import Model from './Model'\nimport api from '../../tools/api'\nimport User from './User'\n\n/**\n * List of attributes that can be updated in `updateAttributes()`\n *\n * @type {string[]}\n */\nconst ATTRIBUTES = ['userId', 'mapId', 'user', 'acceptedAt', 'createdAt', 'updatedAt']\n\nclass TeamMate extends Model {\n /* eslint-disable camelcase, jsdoc/require-param-description */\n /**\n * @param {object} payload - Data from API\n * @param {null|number} payload.id\n * @param {number} payload.user_id\n * @param {number} payload.map_id\n * @param {object} payload.user\n * @param {object} payload.map\n * @param {Date|string} payload.accepted_at\n * @param {Date|string} payload.created_at\n * @param {Date|string} payload.updated_at\n */\n constructor ({ id = null, user_id, map_id, user, map, accepted_at, created_at, updated_at }) {\n super()\n this.id = id\n this.userId = user_id\n this.mapId = map_id\n this.user = new User(user)\n this.acceptedAt = accepted_at ? new Date(accepted_at) : null\n this.createdAt = created_at ? new Date(created_at) : null\n this.updatedAt = updated_at ? new Date(updated_at) : null\n // This is not a Map, only a few fields from it\n this.map = map\n }\n /* eslint-enable camelcase, jsdoc/require-param-description */\n\n /**\n * @returns {string} The hardcoded class name\n */\n static getClassName () { return 'TeamMate' }\n\n static resendInvitation (id) {\n return api('patch', `/api/team_mates/${id}/resend`)\n .then(entity => new this(entity))\n }\n\n static acceptInvitation (id) {\n return api('patch', `/api/team_mates/${id}/accept`)\n .then(entity => new this(entity))\n }\n\n static refuseInvitation (id) {\n return api('delete', `/api/team_mates/${id}/refuse`)\n }\n\n static leave (id) {\n return api('delete', `/api/team_mates/${id}/leave`)\n }\n\n static remove (id) {\n return api('delete', `/api/team_mates/${id}/remove`)\n }\n\n /** Override as there is no route in the api anyway */\n static update () { throw new Error('Not implemented') }\n /** Override as there is no route in the api anyway */\n static destroy () { throw new Error('Not implemented') }\n}\n\nTeamMate.updatableAttributes = ATTRIBUTES\nTeamMate.urls = {\n index (mapId) { return `/api/maps/${mapId}/team_mates` },\n show (id) { return `/api/team_mates/${id}` },\n create () { return '/api/team_mates' },\n}\n\nexport default TeamMate\n","import Base from './Base'\nimport TeamMate from '../../classes/models/TeamMate'\n\nexport default {\n state: {\n /** @type {TeamMate[]} */\n teamMates: [],\n },\n mutations: {\n resetTeamMates: Base.mutations.resetState('teamMates'),\n setTeamMate: Base.mutations.setEntity('teamMates'),\n deleteTeamMate: Base.mutations.deleteEntity('teamMates'),\n },\n actions: {\n loadTeamMates: Base.actions.loadEntities(TeamMate, 'setTeamMate'),\n loadTeamMate: Base.actions.loadEntity(TeamMate, 'setTeamMate'),\n createTeamMate: Base.actions.createEntity(TeamMate, 'setTeamMate', 'teamMate'),\n acceptTeamMateInvitation: ({ dispatch, commit }, { id, notificationId = null }) => TeamMate.acceptInvitation(id)\n .then((entity) => {\n if (notificationId) commit('deleteNotification', notificationId)\n // Reload available maps\n dispatch('loadMaps')\n // Still return the new TeamMate\n return entity\n }),\n refuseTeamMateInvitation: ({ commit }, id) => TeamMate.acceptInvitation(id)\n .then(() => { commit('deleteTeamMate', id) }),\n leaveTeamMate: ({ commit }, id) => TeamMate.leave(id)\n .then(() => { commit('deleteTeamMate', id) }),\n removeTeamMate: ({ commit }, id) => TeamMate.remove(id)\n .then(() => { commit('deleteTeamMate', id) }),\n },\n getters: {\n teamMates: state => state.teamMates.sort((a, b) => a.createdAt - b.createdAt),\n teamMate: Base.getters.entity('teamMates'),\n teamMateByUserId: state => id => state.teamMates.find(t => t.user.id === id),\n searchTeamMates: Base.getters.search('teamMates', 'id'),\n },\n}\n","import Base from './Base'\nimport User from '../../classes/models/User'\n\nexport default {\n state: {\n /** @type {User[]} */\n users: [],\n },\n mutations: {\n setUser: Base.mutations.setEntity('users'),\n deleteUser: Base.mutations.deleteEntity('users'),\n },\n actions: {\n loadUser: Base.actions.loadEntity(User, 'setUser'),\n findUsers: (_context, payload) => User.search(payload),\n },\n getters: {\n users: Base.getters.entities('users', 'username'),\n user: Base.getters.entity('users'),\n },\n}\n","import { createStore } from 'vuex'\n\nimport AccountModule from '../../stores/modules/AccountModule'\nimport CommentModule from '../../stores/modules/CommentModule'\nimport ElementModule from '../../stores/modules/ElementModule'\nimport FamilyModule from '../../stores/modules/FamilyModule'\nimport GenusModule from '../../stores/modules/GenusModule'\nimport HarvestModule from '../../stores/modules/HarvestModule'\nimport LayerModule from '../../stores/modules/LayerModule'\nimport LoaderModule from '../../stores/modules/LoaderModule'\nimport MapModule from '../../stores/modules/MapModule'\nimport NotificationModule from '../../stores/modules/NotificationModule'\nimport ObservationModule from '../../stores/modules/ObservationModule'\nimport PatchModule from '../../stores/modules/PatchModule'\nimport PathModule from '../../stores/modules/PathModule'\nimport ResourceInteractionModule from '../../stores/modules/ResourceInteractionModule'\nimport ResourceInteractionsGroupModule from '../../stores/modules/ResourceInteractionsGroupModule'\nimport ResourceModule from '../../stores/modules/ResourceModule'\nimport ResourceNoteModule from '../../stores/modules/ResourceNoteModule'\nimport TagModule from '../../stores/modules/TagModule'\nimport TaskModule from '../../stores/modules/TaskModule'\nimport TeamMateModule from '../../stores/modules/TeamMateModule'\nimport UserModule from '../../stores/modules/UserModule'\n\nimport Model from '../../classes/models/Model'\n\nconst Store = createStore({\n state: {\n },\n mutations: {\n resetMapData (state) {\n state.ElementModule.elements = []\n state.CommentModule.comments = []\n state.LayerModule.layers = []\n state.ObservationModule.observations = []\n state.PatchModule.patches = []\n state.PathModule.paths = []\n state.TaskModule.tasks = []\n state.TaskModule.taskNames = []\n state.TeamMateModule.teamMates = []\n },\n },\n actions: {\n resetMapData ({ commit }) { commit('resetMapData') },\n },\n modules: {\n AccountModule,\n CommentModule,\n ElementModule,\n FamilyModule,\n GenusModule,\n HarvestModule,\n LayerModule,\n LoaderModule,\n MapModule,\n NotificationModule,\n ObservationModule,\n PatchModule,\n PathModule,\n ResourceInteractionModule,\n ResourceInteractionsGroupModule,\n ResourceModule,\n ResourceNoteModule,\n TagModule,\n TaskModule,\n TeamMateModule,\n UserModule,\n },\n})\n\nModel.store = Store\n\nexport default Store\n"],"names":["_sfc_main","RuiOverlay","RuiToolbar","RuiButton","shiftIndex","currentIndex","url","lastIndex","nextIndex","_hoisted_1","_hoisted_2","_hoisted_3","_createBlock","_component_rui_overlay","_withCtx","_createElementVNode","_createVNode","_component_rui_button","_ctx","$data","$props","_openBlock","_createElementBlock","_hoisted_4","_component_rui_toolbar","$options","_createCommentVNode","_normalizeClass","_renderSlot","_createTextVNode","_toDisplayString","RuiModal","_component_rui_modal","observer","entries","entry","el","_Fragment","_renderList","urls","_withModifiers","$event","Model","newInstance","attribute","attributes","store","params","api","entities","entity","payload","ATTRIBUTES","Comment","id","content","removed_at","removed_by_map_owner","user_id","username","subject_type","subject_id","created_at","updated_at","subject","observationId","taskId","OBSERVATION_BASE_URLS","Observation","title","made_at","comments_count","pictures","subjectType","subjectId","baseUrl","observations","data","mapId","formData","key","file","observation","TASKS_BASE_URLS","Task","name","notes","done_at","planned_for","assignee_id","action","status","filters","tasks","elementId","message","index","RuiIcon","_component_rui_icon","RuiSubmitButton","RuiErrors","RuiField","comment","Toaster","errors","_cache","args","_component_rui_errors","_component_rui_field","_vModelText","_component_rui_submit_button","GpCommentForm","_hoisted_5","_component_gp_comment_form","GpCommentEntry","RuiEmpty","RuiLoading","updateOrReplaceObject","removeObject","once","comments","error","newValue","_component_rui_loading","_component_rui_empty","_component_gp_comment_entry","vNodeIsEmpty","vNodes","node","Text","Fragment","isSlotEmpty","slot","base","shapeIcons","k","geometryIcon","geometryType","CHARS","CHARS_LENGTH","randomString","size","result","i","Placeable","feature","Element","implanted_at","resource_id","patch_id","implantation_planned_for","removal_planned_for","diameter","geometry","layer_id","implantation_mode","observations_count","isAfter","resourceName","patchId","elements","Family","source","kingdom","sync_id","Genus","family_id","Harvest","quantity","unit","element_id","harvested_at","variants","v","props","_resolveDynamicComponent","_mergeProps","RuiMenuItem","theme","_component_rui_menu_item","Map","center","extent_width","extent_height","publicly_available","hide_background","background_color","picture","map","account","User","role","account_state","e","Notification","type","recipient_id","sender","sender_id","archived_at","map_id","map_name","Patch","geometry_type","Path","stroke_width","stroke_color","stroke_style_preset","sizes","GpCommentsList","RuiIconText","RuiThumbnails","_a","list","links","_hoisted_6","_hoisted_7","_hoisted_9","_hoisted_10","_component_rui_icon_text","_hoisted_8","_component_rui_thumbnails","_component_gp_comments_list","RuiAlert","GpObservation","_component_rui_alert","_component_gp_observation","StrokeStylePreset","i18n","dashArray","width","n","style","strokeStylePresets","Resource","description","parent_id","genus_id","common_names","color","latin_name","sheltered_sowing_months","soil_sowing_months","harvesting_months","sources","generic","child_count","resource_interactions_group_id","crop_rotation_group","tag_list","otherGroups","group","finalInteractions","otherGroup","interaction","string","blob","domURL","sides","alignments","placements","acc","side","min","max","round","createCoords","oppositeSideMap","oppositeAlignmentMap","clamp","start","value","end","evaluate","param","getSide","placement","getAlignment","getOppositeAxis","axis","getAxisLength","getSideAxis","getAlignmentAxis","getAlignmentSides","rects","rtl","alignment","alignmentAxis","length","mainAlignmentSide","getOppositePlacement","getExpandedPlacements","oppositePlacement","getOppositeAlignmentPlacement","getSideList","isStart","lr","rl","tb","bt","getOppositeAxisPlacements","flipAlignment","direction","expandPaddingObject","padding","getPaddingObject","rectToClientRect","rect","x","y","height","computeCoordsFromPlacement","_ref","reference","floating","sideAxis","alignLength","isVertical","commonX","commonY","commonAlign","coords","computePosition","config","strategy","middleware","platform","validMiddleware","statefulPlacement","middlewareData","resetCount","fn","nextX","nextY","reset","detectOverflow","state","options","_await$platform$isEle","boundary","rootBoundary","elementContext","altBoundary","paddingObject","element","clippingClientRect","offsetParent","offsetScale","elementClientRect","arrow","arrowDimensions","isYAxis","minProp","maxProp","clientProp","endDiff","startDiff","arrowOffsetParent","clientSize","centerToReference","largestPossiblePadding","minPadding","maxPadding","min$1","offset","shouldAddOffset","alignmentOffset","getPlacementList","autoAlignment","allowedPlacements","autoPlacement","_middlewareData$autoP","_middlewareData$autoP2","_placementsThatFitOnE","crossAxis","detectOverflowOptions","placements$1","overflow","currentPlacement","alignmentSides","currentOverflows","allOverflows","nextPlacement","placementsSortedByMostSpace","d","a","b","resetPlacement","flip","_middlewareData$arrow","_middlewareData$flip","initialPlacement","checkMainAxis","checkCrossAxis","specifiedFallbackPlacements","fallbackStrategy","fallbackAxisSideDirection","initialSideAxis","isBasePlacement","fallbackPlacements","hasFallbackAxisSideDirection","overflows","overflowsData","_middlewareData$flip2","_overflowsData$filter","_overflowsData$filter2","currentSideAxis","convertValueToCoords","mainAxisMulti","crossAxisMulti","rawValue","mainAxis","_middlewareData$offse","diffCoords","shift","limiter","mainAxisCoord","crossAxisCoord","minSide","maxSide","limitedCoords","_state$middlewareData","_state$middlewareData2","apply","heightSide","widthSide","maximumClippingHeight","maximumClippingWidth","overflowAvailableHeight","overflowAvailableWidth","noShift","availableHeight","availableWidth","xMin","xMax","yMin","yMax","nextDimensions","t","o","r","l","c","s","h","f","u","p","g","m","w","L","E","R","T","C","F","W","D","S","A","H","O","P","B","Ze","re","$","_e","Te","pe","ae","de","G","le","he","Y","q","Q","xe","Ue","Ye","Xe","Ke","Je","Qe","ne","_","ue","fe","tt","Pe","ce","et","ot","it","J","ke","Le","st","nt","z","X","Fe","rt","Re","De","pt","Ie","at","M","Z","dt","lt","ht","ut","ft","ct","mt","je","Ve","se","ee","te","K","gt","wt","$e","N","I","j","V","Ee","ve","Se","Ht","kt","floatingOptions","Dropdown","_component_dropdown","_createSlots","ResourceNote","visible","resourceId","ResourceInteractionsGroup","NATURES","NATURE_KEYS","POSITIVE_TO_SUBJECT","POSITIVE_TO_TARGET","NEGATIVE_TO_SUBJECT","NEGATIVE_TO_TARGET","NEUTRAL_TO_SUBJECT","NEUTRAL_TO_TARGET","ResourceInteraction","nature","target_id","groupId","Account","email","preferences","failOnError","AccountModule","commit","Base","stateKey","item","klass","mutationName","items","getterForOne","getters","createAction","updateAction","dispatch","storeKey","sortAttribute","term","charsMin","total","CommentModule","mitt","EventBus","listeners","$emitBus","eventName","$onBus","callback","$unBusKey","event","elementsSorter","ElementModule","oldLayer","updatedElement","date","implantationMode","now","dateObj","lastYear","FamilyModule","GenusModule","familyId","HarvestModule","Layer","visible_by_default","position","layer","LayerModule","LoaderModule","removeObjectByKey","promise","err","loaders","MapModule","newIds","oldMapHideBackground","newMap","_state","_b","NotificationModule","notification","notifications","ObservationModule","PatchModule","originalPatch","patch","updatedPatch","oldPatch","wasVirtual","ids","layerId","PathModule","path","updatedPath","ResourceInteractionModule","ResourceInteractionsGroupModule","filterMonth","resources","months","amount","month","sortResources","searchResources","results","ResourceModule","searchTerm","hash","parentIds","keys","search","tags","shelteredSowingMonths","soilSowingMonths","harvestingMonths","cropRotationGroups","matches","tagsCount","tag","parentId","genusId","rootGetters","rootState","genera","totalGenera","ResourceNoteModule","note","setTag","TagModule","nibbles","upCaseFirst","sortTasks","date1","TaskModule","names","task","TeamMate","user","accepted_at","TeamMateModule","notificationId","UserModule","_context","Store","createStore"],"mappings":"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","x_google_ignoreList":[0,1,2,3,8,9,15,21,22,29,34,35,36,37,38,42,47]}
{{ $t('js.generic.loading_data_error') }}