lesli_audit 0.1.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (53) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/lesli_audit/application.js +143 -98
  3. data/app/assets/javascripts/lesli_audit/application.js.LICENSE.txt +327 -0
  4. data/app/controllers/lesli_audit/accounts_controller.rb +60 -0
  5. data/app/controllers/lesli_audit/requests_controller.rb +60 -0
  6. data/app/controllers/lesli_audit/users_controller.rb +60 -0
  7. data/app/helpers/lesli_audit/accounts_helper.rb +4 -0
  8. data/app/helpers/lesli_audit/requests_helper.rb +4 -0
  9. data/app/helpers/lesli_audit/users_helper.rb +4 -0
  10. data/app/models/lesli_audit/account.rb +6 -0
  11. data/app/models/lesli_audit/account_request.rb +5 -0
  12. data/app/models/lesli_audit/analytic.rb +2 -2
  13. data/app/models/lesli_audit/request.rb +4 -0
  14. data/app/models/lesli_audit/user.rb +4 -0
  15. data/app/models/lesli_audit/user_request.rb +7 -0
  16. data/app/services/lesli_audit/analytic_service.rb +13 -39
  17. data/app/services/lesli_audit/analytics/visitor_service.rb +5 -1
  18. data/app/views/lesli_audit/accounts/_account.html.erb +2 -0
  19. data/app/views/lesli_audit/accounts/_form.html.erb +17 -0
  20. data/app/views/lesli_audit/accounts/edit.html.erb +10 -0
  21. data/app/views/lesli_audit/accounts/index.html.erb +14 -0
  22. data/app/views/lesli_audit/accounts/new.html.erb +9 -0
  23. data/app/views/lesli_audit/accounts/show.html.erb +10 -0
  24. data/app/views/lesli_audit/requests/_form.html.erb +17 -0
  25. data/app/views/lesli_audit/requests/_request.html.erb +2 -0
  26. data/app/views/lesli_audit/requests/edit.html.erb +10 -0
  27. data/app/views/lesli_audit/requests/index.html.erb +14 -0
  28. data/app/views/lesli_audit/requests/new.html.erb +9 -0
  29. data/app/views/lesli_audit/requests/show.html.erb +10 -0
  30. data/app/views/lesli_audit/users/_form.html.erb +17 -0
  31. data/app/views/lesli_audit/users/_user.html.erb +2 -0
  32. data/app/views/lesli_audit/users/edit.html.erb +10 -0
  33. data/app/views/lesli_audit/users/index.html.erb +14 -0
  34. data/app/views/lesli_audit/users/new.html.erb +9 -0
  35. data/app/views/lesli_audit/users/show.html.erb +10 -0
  36. data/config/locales/translations.en.yml +7 -0
  37. data/config/locales/translations.es.yml +7 -0
  38. data/config/routes.rb +34 -1
  39. data/db/migrate/v1.0/0803100010_create_lesli_audit_account_requests.rb +44 -0
  40. data/db/migrate/v1.0/0803110010_create_lesli_audit_user_requests.rb +46 -0
  41. data/db/seed/development.rb +74 -0
  42. data/db/seed/production.rb +0 -0
  43. data/db/seed/test.rb +0 -0
  44. data/db/seeds.rb +40 -0
  45. data/lib/lesli_audit/version.rb +2 -1
  46. data/lib/vue/apps/analytics/index.vue +42 -4
  47. data/lib/vue/apps/analytics/trends.vue +1 -1
  48. data/lib/vue/{apps/analytics → components}/requests.vue +2 -8
  49. data/lib/vue/{apps/analytics → components}/visitors.vue +1 -16
  50. data/lib/vue/stores/{analytics/visitors.js → analytics.js} +0 -21
  51. data/lib/vue/stores/translations.json +38 -0
  52. data/readme.md +44 -93
  53. metadata +44 -5
@@ -148,7 +148,7 @@ eval("var __WEBPACK_AMD_DEFINE_RESULT__;/*!\n * ApexCharts v3.41.1\n * (c) 2018-
148
148
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
149
149
 
150
150
  "use strict";
151
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var pinia__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! pinia */ \"./node_modules/pinia/dist/pinia.mjs\");\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.esm-bundler.js\");\n/* harmony import */ var vue_router__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! vue-router */ \"./node_modules/vue-router/dist/vue-router.mjs\");\n/* harmony import */ var lesli_js_debug_browser__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lesli-js/debug/browser */ \"./node_modules/lesli-js/debug/browser.js\");\n/* harmony import */ var lesli_js_debug_browser__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lesli_js_debug_browser__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var Lesli_layouts_application_header_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! Lesli/layouts/application-header.vue */ \"./lib/vue/layouts/application-header.vue\");\n/* harmony import */ var Lesli_layouts_application_engines_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! Lesli/layouts/application-engines.vue */ \"./lib/vue/layouts/application-engines.vue\");\n/* harmony import */ var Lesli_layouts_application_container_vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! Lesli/layouts/application-container.vue */ \"./lib/vue/layouts/application-container.vue\");\n/* harmony import */ var Lesli_layouts_application_component_vue__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! Lesli/layouts/application-component.vue */ \"./lib/vue/layouts/application-component.vue\");\n/* harmony import */ var lesli_vue_elements__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! lesli-vue/elements */ \"../../enginesdev/lesli-vue/source/elements/index.js\");\n/* harmony import */ var lesli_vue_composables__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! lesli-vue/composables */ \"../../enginesdev/lesli-vue/source/composables/index.js\");\n/*\nLesli\n\nCopyright (c) 2023, Lesli Technologies, S. A.\n\nThis program is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nThis program is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with this program. If not, see http://www.gnu.org/licenses/.\n\nLesli · Ruby on Rails SaaS Development Framework.\n\nMade with ♥ by https://www.lesli.tech\nBuilding a better future, one line of code at a time.\n\n@contact hello@lesli.tech\n@website https://www.lesli.tech\n@license GPLv3 http://www.gnu.org/licenses/gpl-3.0.en.html\n\n// · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~\n// · \n*/\n\n// · Loading core framework and libraries\n\n\n\n\n\n// custom console.log implementation for Lesli\nwindow.debug = (lesli_js_debug_browser__WEBPACK_IMPORTED_MODULE_1___default());\n\n// · Loading application layout components\n\n\n\n\n\n/*\nimport componentApplicationFooter from \"Lesli/layouts/application-footer.vue\"\nimport componentApplicationSearch from \"Lesli/layouts/application-search.vue\"\nimport componentApplicationSidebar from \"Lesli/layouts/application-sidebar.vue\"\nimport componentApplicationAnnouncement from \"Lesli/layouts/application-announcements.vue\"\nimport componentApplicationPanelTasks from \"Lesli/panels/panel-tasks.vue\"\nimport componentApplicationPanelFiles from \"Lesli/panels/panel-files.vue\"\nimport componentApplicationPanelTickets from \"Lesli/panels/panel-tickets.vue\"\nimport componentApplicationPanelProfile from \"Lesli/panels/panel-profile.vue\"\nimport componentApplicationPanelNotifications from \"Lesli/panels/panel-notifications.vue\"\nimport componentApplicationPanelAnnouncements from \"Lesli/panels/panel-announcements.vue\"\n*/\n\n// · Loading global layout components\n\n\n// · Loading vue/pinia plugins as composables\n\n\n// · engine: List of controllers apps loaded\n// · routes: Array of routes for Vue \n// · example: app(\"CloudAudit\", [])\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (function (engine) {\n let routes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n // · Base path for the engines/core url's\n const base_path = \"/\";\n\n // · Vue app configuration container\n let appbuilder = {};\n\n // · Loading Lesli local layout components\n appbuilder[\"components\"] = {\n \"lesli-application-header\": Lesli_layouts_application_header_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n \"lesli-application-engines\": Lesli_layouts_application_engines_vue__WEBPACK_IMPORTED_MODULE_3__[\"default\"]\n /*\n \"application-component-footer\": componentApplicationFooter,\n \"application-component-search\": componentApplicationSearch,\n \"application-component-sidebar\": componentApplicationSidebar,\n \"application-component-announcements\": componentApplicationAnnouncement,\n \"application-component-panel-tasks\": componentApplicationPanelTasks,\n \"application-component-panel-files\": componentApplicationPanelFiles,\n \"application-component-panel-tickets\": componentApplicationPanelTickets,\n \"application-component-panel-profile\": componentApplicationPanelProfile,\n \"application-component-panel-announcements\": componentApplicationPanelAnnouncements,\n \"application-component-panel-notifications\": componentApplicationPanelNotifications\n */\n };\n\n // · Use pinia as app state management\n const pinia = (0,pinia__WEBPACK_IMPORTED_MODULE_8__.createPinia)();\n\n // · Loading pinia handmade plugins\n pinia.use(() => ({\n msg: (0,lesli_vue_composables__WEBPACK_IMPORTED_MODULE_7__.useLesliMsg)()\n }));\n pinia.use(() => ({\n url: (0,lesli_vue_composables__WEBPACK_IMPORTED_MODULE_7__.useLesliUrl)()\n }));\n pinia.use(() => ({\n http: (0,lesli_vue_composables__WEBPACK_IMPORTED_MODULE_7__.useLesliHttp)()\n }));\n pinia.use(() => ({\n date: (0,lesli_vue_composables__WEBPACK_IMPORTED_MODULE_7__.useLesliDate)()\n }));\n pinia.use(() => ({\n utils: (0,lesli_vue_composables__WEBPACK_IMPORTED_MODULE_7__.useLesliUtils)()\n }));\n pinia.use(() => ({\n dialog: (0,lesli_vue_composables__WEBPACK_IMPORTED_MODULE_7__.useLesliDialog)()\n }));\n\n // · Global vue router\n const router = (0,vue_router__WEBPACK_IMPORTED_MODULE_9__.createRouter)({\n history: (0,vue_router__WEBPACK_IMPORTED_MODULE_9__.createWebHistory)(base_path),\n routes: routes.map(route => {\n // concat the base path to all routes\n // this allow to use the rails route constants\n // example: projects_path is equal to /crm/projects\n route.path = base_path.concat(lesli.engine_paths[engine]).concat(route.path);\n return route;\n })\n });\n\n // · \n router.afterEach((to, from) => {\n // Use next tick to handle router history correctly\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.nextTick)(() => {\n // update the page title according to the working app\n document.title = `${lesli?.company?.name} · ${to.path.substring(1) || 'Dashboard'}`;\n\n // default class for the specific instance\n document.body.className = lesli?.instance;\n\n // using the path as class id for the body\n // the class will be: \"engine-controller\"\n var cssclass = to.path.substring(1) // remove the first slash\n .split(\"/\") // create an array splited by slashes\n .filter(e => e != \"\") // remove empty strings\n .slice(0, 2) // get the first two items of the array\n .join(\"-\"); // create a string joined by dashes\n\n // add the css class to the body\n if (cssclass) {\n document.body.classList.add(\"lesli-\".concat(cssclass));\n }\n });\n });\n\n // · Create a beautiful Vue 3 app\n const application = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createApp)(appbuilder);\n\n // · Provide composables to make them available in all the components\n application.provide('msg', (0,lesli_vue_composables__WEBPACK_IMPORTED_MODULE_7__.useLesliMsg)());\n application.provide('url', (0,lesli_vue_composables__WEBPACK_IMPORTED_MODULE_7__.useLesliUrl)());\n application.provide('http', (0,lesli_vue_composables__WEBPACK_IMPORTED_MODULE_7__.useLesliHttp)());\n application.provide('date', (0,lesli_vue_composables__WEBPACK_IMPORTED_MODULE_7__.useLesliDate)());\n application.provide('date', (0,lesli_vue_composables__WEBPACK_IMPORTED_MODULE_7__.useLesliDate)());\n application.provide('utils', (0,lesli_vue_composables__WEBPACK_IMPORTED_MODULE_7__.useLesliUtils)());\n application.provide('dialog', (0,lesli_vue_composables__WEBPACK_IMPORTED_MODULE_7__.useLesliDialog)());\n\n // · Extending vue\n application.use(pinia);\n application.use(router);\n\n // · Register global layouts\n application.component(\"lesli-application-container\", Lesli_layouts_application_container_vue__WEBPACK_IMPORTED_MODULE_4__[\"default\"]);\n application.component(\"lesli-application-component\", Lesli_layouts_application_component_vue__WEBPACK_IMPORTED_MODULE_5__[\"default\"]);\n\n // · Loading Lesli handmade global components\n application.component(\"lesli-icon\", lesli_vue_elements__WEBPACK_IMPORTED_MODULE_6__.lesliElementIcon);\n application.component(\"lesli-empty\", lesli_vue_elements__WEBPACK_IMPORTED_MODULE_6__.lesliElementEmpty);\n application.component(\"lesli-header\", lesli_vue_elements__WEBPACK_IMPORTED_MODULE_6__.lesliElementHeader);\n application.component(\"lesli-select\", lesli_vue_elements__WEBPACK_IMPORTED_MODULE_6__.lesliElementSelect);\n application.component(\"lesli-toolbar\", lesli_vue_elements__WEBPACK_IMPORTED_MODULE_6__.lesliElementToolbar);\n application.component(\"lesli-loading\", lesli_vue_elements__WEBPACK_IMPORTED_MODULE_6__.lesliElementLoading);\n application.component(\"lesli-table\", lesli_vue_elements__WEBPACK_IMPORTED_MODULE_6__.lesliElementTable);\n application.component(\"lesli-collapse\", lesli_vue_elements__WEBPACK_IMPORTED_MODULE_6__.lesliElementCollapse);\n application.component(\"lesli-tab-item\", lesli_vue_elements__WEBPACK_IMPORTED_MODULE_6__.lesliElementTabItem);\n application.component(\"lesli-tabs\", lesli_vue_elements__WEBPACK_IMPORTED_MODULE_6__.lesliElementTabs);\n application.component(\"lesli-panel\", lesli_vue_elements__WEBPACK_IMPORTED_MODULE_6__.lesliElementPanel);\n application.component(\"lesli-button\", lesli_vue_elements__WEBPACK_IMPORTED_MODULE_6__.lesliElementButton);\n application.component(\"lesli-calendar\", lesli_vue_elements__WEBPACK_IMPORTED_MODULE_6__.lesliElementCalendar);\n application.component(\"lesli-input-tag\", lesli_vue_elements__WEBPACK_IMPORTED_MODULE_6__.lesliElementInputTag);\n application.component(\"lesli-file-uploader\", lesli_vue_elements__WEBPACK_IMPORTED_MODULE_6__.lesliElementFileUploader);\n application.component(\"lesli-navigation-list\", lesli_vue_elements__WEBPACK_IMPORTED_MODULE_6__.lesliElementNavigationList);\n application.component(\"lesli-avatar\", lesli_vue_elements__WEBPACK_IMPORTED_MODULE_6__.lesliElementAvatar);\n application.component(\"lesli-toggle\", lesli_vue_elements__WEBPACK_IMPORTED_MODULE_6__.lesliElementToggle);\n application.component(\"lesli-dropdown\", lesli_vue_elements__WEBPACK_IMPORTED_MODULE_6__.lesliElementDropdown);\n application.component(\"lesli-map\", lesli_vue_elements__WEBPACK_IMPORTED_MODULE_6__.lesliElementMap);\n //application.component(\"lesli-gallery\", lesliElementGallery)\n application.component(\"lesli-autocomplete\", lesli_vue_elements__WEBPACK_IMPORTED_MODULE_6__.lesliElementAutocomplete);\n application.component(\"lesli-pagination\", lesli_vue_elements__WEBPACK_IMPORTED_MODULE_6__.lesliElementPagination);\n application.component(\"lesli-form\", lesli_vue_elements__WEBPACK_IMPORTED_MODULE_6__.lesliElementForm);\n application.component(\"lesli-input\", lesli_vue_elements__WEBPACK_IMPORTED_MODULE_6__.lesliElementInput);\n application.component(\"lesli-control\", lesli_vue_elements__WEBPACK_IMPORTED_MODULE_6__.lesliElementControl);\n application.component(\"lesli-card\", lesli_vue_elements__WEBPACK_IMPORTED_MODULE_6__.lesliElementCard);\n\n // · Mount app once DOM is ready\n document.addEventListener(\"DOMContentLoaded\", () => {\n // · mount the app on the main html tag\n application.mount(\"#lesli-application\");\n\n // · development message about vue app loaded\n if (true) {\n lesli_js_debug_browser__WEBPACK_IMPORTED_MODULE_1___default().info(`${engine} --> ${lesli.engine_paths[engine]}`, \"vue/application\");\n }\n\n // · console production message\n if (false) {}\n });\n return application;\n});\n\n//# sourceURL=webpack://lesli/./lib/vue/application.js?");
151
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var pinia__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! pinia */ \"./node_modules/pinia/dist/pinia.mjs\");\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.esm-bundler.js\");\n/* harmony import */ var vue_router__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! vue-router */ \"./node_modules/vue-router/dist/vue-router.mjs\");\n/* harmony import */ var lesli_js_debug_browser__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lesli-js/debug/browser */ \"../../enginesdev/lesli-js/source/debug/browser.js\");\n/* harmony import */ var lesli_js_debug_browser__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lesli_js_debug_browser__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var Lesli_layouts_application_header_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! Lesli/layouts/application-header.vue */ \"./lib/vue/layouts/application-header.vue\");\n/* harmony import */ var Lesli_layouts_application_engines_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! Lesli/layouts/application-engines.vue */ \"./lib/vue/layouts/application-engines.vue\");\n/* harmony import */ var Lesli_layouts_application_container_vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! Lesli/layouts/application-container.vue */ \"./lib/vue/layouts/application-container.vue\");\n/* harmony import */ var Lesli_layouts_application_component_vue__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! Lesli/layouts/application-component.vue */ \"./lib/vue/layouts/application-component.vue\");\n/* harmony import */ var lesli_vue_elements__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! lesli-vue/elements */ \"../../enginesdev/lesli-vue/source/elements/index.js\");\n/* harmony import */ var lesli_vue_composables__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! lesli-vue/composables */ \"../../enginesdev/lesli-vue/source/composables/index.js\");\n/*\nLesli\n\nCopyright (c) 2023, Lesli Technologies, S. A.\n\nThis program is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nThis program is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with this program. If not, see http://www.gnu.org/licenses/.\n\nLesli · Ruby on Rails SaaS Development Framework.\n\nMade with ♥ by https://www.lesli.tech\nBuilding a better future, one line of code at a time.\n\n@contact hello@lesli.tech\n@website https://www.lesli.tech\n@license GPLv3 http://www.gnu.org/licenses/gpl-3.0.en.html\n\n// · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~\n// · \n*/\n\n// · Loading core framework and libraries\n\n\n\n\n\n// custom console.log implementation for Lesli\nwindow.debug = (lesli_js_debug_browser__WEBPACK_IMPORTED_MODULE_1___default());\n\n// · Loading application layout components\n\n\n\n\n\n/*\nimport componentApplicationFooter from \"Lesli/layouts/application-footer.vue\"\nimport componentApplicationSearch from \"Lesli/layouts/application-search.vue\"\nimport componentApplicationSidebar from \"Lesli/layouts/application-sidebar.vue\"\nimport componentApplicationAnnouncement from \"Lesli/layouts/application-announcements.vue\"\nimport componentApplicationPanelTasks from \"Lesli/panels/panel-tasks.vue\"\nimport componentApplicationPanelFiles from \"Lesli/panels/panel-files.vue\"\nimport componentApplicationPanelTickets from \"Lesli/panels/panel-tickets.vue\"\nimport componentApplicationPanelProfile from \"Lesli/panels/panel-profile.vue\"\nimport componentApplicationPanelNotifications from \"Lesli/panels/panel-notifications.vue\"\nimport componentApplicationPanelAnnouncements from \"Lesli/panels/panel-announcements.vue\"\n*/\n\n// · Loading global layout components\n\n\n// · Loading vue/pinia plugins as composables\n\n\n// · engine: List of controllers apps loaded\n// · routes: Array of routes for Vue \n// · example: app(\"CloudAudit\", [])\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (function (engine) {\n let routes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n // · Base path for the engines/core url's\n const base_path = \"/\";\n\n // · Vue app configuration container\n let appbuilder = {};\n\n // · Loading Lesli local layout components\n appbuilder[\"components\"] = {\n \"lesli-application-header\": Lesli_layouts_application_header_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n \"lesli-application-engines\": Lesli_layouts_application_engines_vue__WEBPACK_IMPORTED_MODULE_3__[\"default\"]\n /*\n \"application-component-footer\": componentApplicationFooter,\n \"application-component-search\": componentApplicationSearch,\n \"application-component-sidebar\": componentApplicationSidebar,\n \"application-component-announcements\": componentApplicationAnnouncement,\n \"application-component-panel-tasks\": componentApplicationPanelTasks,\n \"application-component-panel-files\": componentApplicationPanelFiles,\n \"application-component-panel-tickets\": componentApplicationPanelTickets,\n \"application-component-panel-profile\": componentApplicationPanelProfile,\n \"application-component-panel-announcements\": componentApplicationPanelAnnouncements,\n \"application-component-panel-notifications\": componentApplicationPanelNotifications\n */\n };\n\n // · Use pinia as app state management\n const pinia = (0,pinia__WEBPACK_IMPORTED_MODULE_8__.createPinia)();\n\n // · Loading pinia handmade plugins\n pinia.use(() => ({\n msg: (0,lesli_vue_composables__WEBPACK_IMPORTED_MODULE_7__.useLesliMsg)()\n }));\n pinia.use(() => ({\n url: (0,lesli_vue_composables__WEBPACK_IMPORTED_MODULE_7__.useLesliUrl)()\n }));\n pinia.use(() => ({\n http: (0,lesli_vue_composables__WEBPACK_IMPORTED_MODULE_7__.useLesliHttp)()\n }));\n pinia.use(() => ({\n date: (0,lesli_vue_composables__WEBPACK_IMPORTED_MODULE_7__.useLesliDate)()\n }));\n pinia.use(() => ({\n utils: (0,lesli_vue_composables__WEBPACK_IMPORTED_MODULE_7__.useLesliUtils)()\n }));\n pinia.use(() => ({\n dialog: (0,lesli_vue_composables__WEBPACK_IMPORTED_MODULE_7__.useLesliDialog)()\n }));\n\n // · Global vue router\n const router = (0,vue_router__WEBPACK_IMPORTED_MODULE_9__.createRouter)({\n history: (0,vue_router__WEBPACK_IMPORTED_MODULE_9__.createWebHistory)(base_path),\n routes: routes.map(route => {\n // concat the base path to all routes\n // this allow to use the rails route constants\n // example: projects_path is equal to /crm/projects\n route.path = base_path.concat(lesli.engine_paths[engine]).concat(route.path);\n return route;\n })\n });\n\n // · \n router.afterEach((to, from) => {\n // Use next tick to handle router history correctly\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.nextTick)(() => {\n // update the page title according to the working app\n document.title = `${lesli?.company?.name} · ${to.path.substring(1) || 'Dashboard'}`;\n\n // default class for the specific instance\n document.body.className = lesli?.instance;\n\n // using the path as class id for the body\n // the class will be: \"engine-controller\"\n var cssclass = to.path.substring(1) // remove the first slash\n .split(\"/\") // create an array splited by slashes\n .filter(e => e != \"\") // remove empty strings\n .slice(0, 2) // get the first two items of the array\n .join(\"-\"); // create a string joined by dashes\n\n // add the css class to the body\n if (cssclass) {\n document.body.classList.add(\"lesli-\".concat(cssclass));\n }\n });\n });\n\n // · Create a beautiful Vue 3 app\n const application = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createApp)(appbuilder);\n\n // · Provide composables to make them available in all the components\n application.provide('msg', (0,lesli_vue_composables__WEBPACK_IMPORTED_MODULE_7__.useLesliMsg)());\n application.provide('url', (0,lesli_vue_composables__WEBPACK_IMPORTED_MODULE_7__.useLesliUrl)());\n application.provide('http', (0,lesli_vue_composables__WEBPACK_IMPORTED_MODULE_7__.useLesliHttp)());\n application.provide('date', (0,lesli_vue_composables__WEBPACK_IMPORTED_MODULE_7__.useLesliDate)());\n application.provide('date', (0,lesli_vue_composables__WEBPACK_IMPORTED_MODULE_7__.useLesliDate)());\n application.provide('utils', (0,lesli_vue_composables__WEBPACK_IMPORTED_MODULE_7__.useLesliUtils)());\n application.provide('dialog', (0,lesli_vue_composables__WEBPACK_IMPORTED_MODULE_7__.useLesliDialog)());\n\n // · Extending vue\n application.use(pinia);\n application.use(router);\n\n // · Register global layouts\n application.component(\"lesli-application-container\", Lesli_layouts_application_container_vue__WEBPACK_IMPORTED_MODULE_4__[\"default\"]);\n application.component(\"lesli-application-component\", Lesli_layouts_application_component_vue__WEBPACK_IMPORTED_MODULE_5__[\"default\"]);\n\n // · Loading Lesli handmade global components\n application.component(\"lesli-icon\", lesli_vue_elements__WEBPACK_IMPORTED_MODULE_6__.lesliElementIcon);\n application.component(\"lesli-empty\", lesli_vue_elements__WEBPACK_IMPORTED_MODULE_6__.lesliElementEmpty);\n application.component(\"lesli-header\", lesli_vue_elements__WEBPACK_IMPORTED_MODULE_6__.lesliElementHeader);\n application.component(\"lesli-select\", lesli_vue_elements__WEBPACK_IMPORTED_MODULE_6__.lesliElementSelect);\n application.component(\"lesli-toolbar\", lesli_vue_elements__WEBPACK_IMPORTED_MODULE_6__.lesliElementToolbar);\n application.component(\"lesli-loading\", lesli_vue_elements__WEBPACK_IMPORTED_MODULE_6__.lesliElementLoading);\n application.component(\"lesli-table\", lesli_vue_elements__WEBPACK_IMPORTED_MODULE_6__.lesliElementTable);\n application.component(\"lesli-collapse\", lesli_vue_elements__WEBPACK_IMPORTED_MODULE_6__.lesliElementCollapse);\n application.component(\"lesli-tab-item\", lesli_vue_elements__WEBPACK_IMPORTED_MODULE_6__.lesliElementTabItem);\n application.component(\"lesli-tabs\", lesli_vue_elements__WEBPACK_IMPORTED_MODULE_6__.lesliElementTabs);\n application.component(\"lesli-panel\", lesli_vue_elements__WEBPACK_IMPORTED_MODULE_6__.lesliElementPanel);\n application.component(\"lesli-button\", lesli_vue_elements__WEBPACK_IMPORTED_MODULE_6__.lesliElementButton);\n application.component(\"lesli-calendar\", lesli_vue_elements__WEBPACK_IMPORTED_MODULE_6__.lesliElementCalendar);\n application.component(\"lesli-input-tag\", lesli_vue_elements__WEBPACK_IMPORTED_MODULE_6__.lesliElementInputTag);\n application.component(\"lesli-file-uploader\", lesli_vue_elements__WEBPACK_IMPORTED_MODULE_6__.lesliElementFileUploader);\n application.component(\"lesli-navigation-list\", lesli_vue_elements__WEBPACK_IMPORTED_MODULE_6__.lesliElementNavigationList);\n application.component(\"lesli-avatar\", lesli_vue_elements__WEBPACK_IMPORTED_MODULE_6__.lesliElementAvatar);\n application.component(\"lesli-toggle\", lesli_vue_elements__WEBPACK_IMPORTED_MODULE_6__.lesliElementToggle);\n application.component(\"lesli-dropdown\", lesli_vue_elements__WEBPACK_IMPORTED_MODULE_6__.lesliElementDropdown);\n application.component(\"lesli-map\", lesli_vue_elements__WEBPACK_IMPORTED_MODULE_6__.lesliElementMap);\n //application.component(\"lesli-gallery\", lesliElementGallery)\n application.component(\"lesli-autocomplete\", lesli_vue_elements__WEBPACK_IMPORTED_MODULE_6__.lesliElementAutocomplete);\n application.component(\"lesli-pagination\", lesli_vue_elements__WEBPACK_IMPORTED_MODULE_6__.lesliElementPagination);\n application.component(\"lesli-form\", lesli_vue_elements__WEBPACK_IMPORTED_MODULE_6__.lesliElementForm);\n application.component(\"lesli-input\", lesli_vue_elements__WEBPACK_IMPORTED_MODULE_6__.lesliElementInput);\n application.component(\"lesli-control\", lesli_vue_elements__WEBPACK_IMPORTED_MODULE_6__.lesliElementControl);\n application.component(\"lesli-card\", lesli_vue_elements__WEBPACK_IMPORTED_MODULE_6__.lesliElementCard);\n\n // · Mount app once DOM is ready\n document.addEventListener(\"DOMContentLoaded\", () => {\n // · mount the app on the main html tag\n application.mount(\"#lesli-application\");\n\n // · development message about vue app loaded\n if (true) {\n lesli_js_debug_browser__WEBPACK_IMPORTED_MODULE_1___default().info(`${engine} --> ${lesli.engine_paths[engine]}`, \"vue/application\");\n }\n\n // · console production message\n if (false) {}\n });\n return application;\n});\n\n//# sourceURL=webpack://lesli/./lib/vue/application.js?");
152
152
 
153
153
  /***/ }),
154
154
 
@@ -192,7 +192,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
192
192
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
193
193
 
194
194
  "use strict";
195
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n __name: 'application-container',\n setup(__props, _ref) {\n let {\n expose: __expose\n } = _ref;\n __expose();\n\n /*\n \n Lesli\n \n Copyright (c) 2023, Lesli Technologies, S. A.\n \n This program is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n \n This program is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU General Public License for more details.\n \n You should have received a copy of the GNU General Public License\n along with this program. If not, see http://www.gnu.org/licenses/.\n \n Lesli · Your Smart Business Assistant. \n \n Made with ♥ by https://www.lesli.tech\n Building a better future, one line of code at a time.\n \n @contact hello@lesli.tech\n @website https://lesli.tech\n @license GPLv3 http://www.gnu.org/licenses/gpl-3.0.en.html\n \n // · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~\n // · \n \n */\n\n const __returned__ = {};\n Object.defineProperty(__returned__, '__isScriptSetup', {\n enumerable: false,\n value: true\n });\n return __returned__;\n }\n});\n\n//# sourceURL=webpack://lesli/./lib/vue/layouts/application-container.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-8.use!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use");
195
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n __name: 'application-container',\n props: {\n dashboard: {\n type: Boolean,\n default: false,\n required: false\n }\n },\n setup(__props, _ref) {\n let {\n expose: __expose\n } = _ref;\n __expose();\n const props = __props;\n\n /*\n \n Lesli\n \n Copyright (c) 2023, Lesli Technologies, S. A.\n \n This program is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n \n This program is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU General Public License for more details.\n \n You should have received a copy of the GNU General Public License\n along with this program. If not, see http://www.gnu.org/licenses/.\n \n Lesli · Your Smart Business Assistant. \n \n Made with ♥ by https://www.lesli.tech\n Building a better future, one line of code at a time.\n \n @contact hello@lesli.tech\n @website https://lesli.tech\n @license GPLv3 http://www.gnu.org/licenses/gpl-3.0.en.html\n \n // · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~\n // · \n */\n\n // · defining props\n\n const __returned__ = {\n props\n };\n Object.defineProperty(__returned__, '__isScriptSetup', {\n enumerable: false,\n value: true\n });\n return __returned__;\n }\n});\n\n//# sourceURL=webpack://lesli/./lib/vue/layouts/application-container.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-8.use!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use");
196
196
 
197
197
  /***/ }),
198
198
 
@@ -214,7 +214,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
214
214
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
215
215
 
216
216
  "use strict";
217
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.esm-bundler.js\");\n/* harmony import */ var Lesli_stores_layout__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! Lesli/stores/layout */ \"./lib/vue/stores/layout.js\");\n/* harmony import */ var Lesli_stores_search__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! Lesli/stores/search */ \"./lib/vue/stores/search.js\");\n\n\n// · import stores\n\n\n\n// · implement stores\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n __name: 'application-header',\n props: {\n showEngines: {\n type: Boolean,\n default: true,\n required: false\n },\n showBell: {\n type: Boolean,\n default: false,\n required: false\n },\n showFocus: {\n type: Boolean,\n default: false,\n required: false\n },\n showTickets: {\n type: Boolean,\n default: false,\n required: false\n },\n showAnnouncements: {\n type: Boolean,\n default: false,\n required: false\n }\n },\n setup(__props, _ref) {\n let {\n expose: __expose\n } = _ref;\n __expose();\n const props = __props;\n\n /*\n \n Lesli\n \n Copyright (c) 2023, Lesli Technologies, S. A.\n \n This program is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n \n This program is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU General Public License for more details.\n \n You should have received a copy of the GNU General Public License\n along with this program. If not, see http://www.gnu.org/licenses/.\n \n Lesli · Your Smart Business Assistant. \n \n Made with ♥ by https://www.lesli.tech\n Building a better future, one line of code at a time.\n \n @contact hello@lesli.tech\n @website https://lesli.tech\n @license GPLv3 http://www.gnu.org/licenses/gpl-3.0.en.html\n \n // · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~\n // · \n \n */\n\n // · import vue tools\n const storeLayout = (0,Lesli_stores_layout__WEBPACK_IMPORTED_MODULE_1__.useLayout)();\n const storeSearch = (0,Lesli_stores_search__WEBPACK_IMPORTED_MODULE_2__.useSearch)();\n\n // · defining props\n\n // · translations\n const translations = {\n core: {\n shared: I18n.t(\"core.shared\"),\n users: I18n.t('deutscheleibrenten.users')\n }\n };\n\n // · defining variables\n const applicationHeader = (0,vue__WEBPACK_IMPORTED_MODULE_0__.ref)(null);\n const search = {};\n\n // · \n function onEscape(event) {\n if (event.keyCode === 27) {\n storeLayout.toggleEngines();\n document.removeEventListener('keydown', onEscape);\n }\n }\n\n // · \n function toggleEngines() {\n storeLayout.toggleEngines();\n document.addEventListener('keydown', onEscape);\n }\n const __returned__ = {\n storeLayout,\n storeSearch,\n props,\n translations,\n applicationHeader,\n search,\n onEscape,\n toggleEngines,\n ref: vue__WEBPACK_IMPORTED_MODULE_0__.ref,\n reactive: vue__WEBPACK_IMPORTED_MODULE_0__.reactive,\n onUnmounted: vue__WEBPACK_IMPORTED_MODULE_0__.onUnmounted,\n inject: vue__WEBPACK_IMPORTED_MODULE_0__.inject,\n get useLayout() {\n return Lesli_stores_layout__WEBPACK_IMPORTED_MODULE_1__.useLayout;\n },\n get useSearch() {\n return Lesli_stores_search__WEBPACK_IMPORTED_MODULE_2__.useSearch;\n }\n };\n Object.defineProperty(__returned__, '__isScriptSetup', {\n enumerable: false,\n value: true\n });\n return __returned__;\n }\n});\n\n//# sourceURL=webpack://lesli/./lib/vue/layouts/application-header.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-8.use!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use");
217
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.esm-bundler.js\");\n/* harmony import */ var Lesli_stores_layout__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! Lesli/stores/layout */ \"./lib/vue/stores/layout.js\");\n/* harmony import */ var Lesli_stores_search__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! Lesli/stores/search */ \"./lib/vue/stores/search.js\");\n\n\n// · import stores\n\n\n\n// · implement stores\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n __name: 'application-header',\n props: {\n showEngines: {\n type: Boolean,\n default: true,\n required: false\n },\n showBell: {\n type: Boolean,\n default: false,\n required: false\n },\n showFocus: {\n type: Boolean,\n default: false,\n required: false\n },\n showTickets: {\n type: Boolean,\n default: false,\n required: false\n },\n showAnnouncements: {\n type: Boolean,\n default: false,\n required: false\n }\n },\n setup(__props, _ref) {\n let {\n expose: __expose\n } = _ref;\n __expose();\n const props = __props;\n\n /*\n \n Lesli\n \n Copyright (c) 2023, Lesli Technologies, S. A.\n \n This program is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n \n This program is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU General Public License for more details.\n \n You should have received a copy of the GNU General Public License\n along with this program. If not, see http://www.gnu.org/licenses/.\n \n Lesli · Your Smart Business Assistant. \n \n Made with ♥ by https://www.lesli.tech\n Building a better future, one line of code at a time.\n \n @contact hello@lesli.tech\n @website https://lesli.tech\n @license GPLv3 http://www.gnu.org/licenses/gpl-3.0.en.html\n \n // · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~\n // · \n */\n\n // · import vue tools\n const storeLayout = (0,Lesli_stores_layout__WEBPACK_IMPORTED_MODULE_1__.useLayout)();\n const storeSearch = (0,Lesli_stores_search__WEBPACK_IMPORTED_MODULE_2__.useSearch)();\n\n // · \n const url = (0,vue__WEBPACK_IMPORTED_MODULE_0__.inject)(\"url\");\n\n // · defining props\n\n // · translations\n const translations = {\n core: {\n shared: I18n.t(\"core.shared\"),\n users: I18n.t('deutscheleibrenten.users')\n }\n };\n\n // · defining variables\n const applicationHeader = (0,vue__WEBPACK_IMPORTED_MODULE_0__.ref)(null);\n const search = {};\n\n // · \n function onEscape(event) {\n if (event.keyCode === 27) {\n storeLayout.toggleEngines();\n document.removeEventListener('keydown', onEscape);\n }\n }\n\n // · \n function toggleEngines() {\n storeLayout.toggleEngines();\n document.addEventListener('keydown', onEscape);\n }\n const __returned__ = {\n storeLayout,\n storeSearch,\n url,\n props,\n translations,\n applicationHeader,\n search,\n onEscape,\n toggleEngines,\n ref: vue__WEBPACK_IMPORTED_MODULE_0__.ref,\n reactive: vue__WEBPACK_IMPORTED_MODULE_0__.reactive,\n onUnmounted: vue__WEBPACK_IMPORTED_MODULE_0__.onUnmounted,\n inject: vue__WEBPACK_IMPORTED_MODULE_0__.inject,\n get useLayout() {\n return Lesli_stores_layout__WEBPACK_IMPORTED_MODULE_1__.useLayout;\n },\n get useSearch() {\n return Lesli_stores_search__WEBPACK_IMPORTED_MODULE_2__.useSearch;\n }\n };\n Object.defineProperty(__returned__, '__isScriptSetup', {\n enumerable: false,\n value: true\n });\n return __returned__;\n }\n});\n\n//# sourceURL=webpack://lesli/./lib/vue/layouts/application-header.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-8.use!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use");
218
218
 
219
219
  /***/ }),
220
220
 
@@ -225,29 +225,40 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
225
225
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
226
226
 
227
227
  "use strict";
228
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.esm-bundler.js\");\n/* harmony import */ var _visitors_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./visitors.vue */ \"../LesliAudit/lib/vue/apps/analytics/visitors.vue\");\n/* harmony import */ var _requests_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./requests.vue */ \"../LesliAudit/lib/vue/apps/analytics/requests.vue\");\n\n\n\n//import trends from \"./trends.vue\";\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n __name: 'index',\n setup(__props, _ref) {\n let {\n expose: __expose\n } = _ref;\n __expose();\n\n // · import vue tools\n\n const __returned__ = {\n ref: vue__WEBPACK_IMPORTED_MODULE_0__.ref,\n reactive: vue__WEBPACK_IMPORTED_MODULE_0__.reactive,\n onMounted: vue__WEBPACK_IMPORTED_MODULE_0__.onMounted,\n watch: vue__WEBPACK_IMPORTED_MODULE_0__.watch,\n computed: vue__WEBPACK_IMPORTED_MODULE_0__.computed,\n visitors: _visitors_vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n requests: _requests_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"]\n };\n Object.defineProperty(__returned__, '__isScriptSetup', {\n enumerable: false,\n value: true\n });\n return __returned__;\n }\n});\n\n//# sourceURL=webpack://lesli/../LesliAudit/lib/vue/apps/analytics/index.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-8.use!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use");
228
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.esm-bundler.js\");\n/* harmony import */ var LesliAudit_stores_analytics__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! LesliAudit/stores/analytics */ \"../LesliAudit/lib/vue/stores/analytics.js\");\n/* harmony import */ var _components_visitors_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../components/visitors.vue */ \"../LesliAudit/lib/vue/components/visitors.vue\");\n/* harmony import */ var _components_requests_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../components/requests.vue */ \"../LesliAudit/lib/vue/components/requests.vue\");\n\n\n// · import stores\n\n\n// · implement stores\n\n\n//import trends from \"./trends.vue\";\n\n// · \n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n __name: 'index',\n setup(__props, _ref) {\n let {\n expose: __expose\n } = _ref;\n __expose();\n\n // · import vue tools\n const storeAnalytics = (0,LesliAudit_stores_analytics__WEBPACK_IMPORTED_MODULE_1__.useAnalytics)();\n\n // · \n function reload() {\n storeAnalytics.fetch();\n }\n\n // · initializing\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.onMounted)(() => {\n storeAnalytics.fetchVisits();\n setTimeout(() => storeAnalytics.fetchUsers(), 600);\n setTimeout(() => storeAnalytics.fetchControllers(), 1200);\n });\n const __returned__ = {\n storeAnalytics,\n reload,\n ref: vue__WEBPACK_IMPORTED_MODULE_0__.ref,\n reactive: vue__WEBPACK_IMPORTED_MODULE_0__.reactive,\n onMounted: vue__WEBPACK_IMPORTED_MODULE_0__.onMounted,\n watch: vue__WEBPACK_IMPORTED_MODULE_0__.watch,\n computed: vue__WEBPACK_IMPORTED_MODULE_0__.computed,\n get useAnalytics() {\n return LesliAudit_stores_analytics__WEBPACK_IMPORTED_MODULE_1__.useAnalytics;\n },\n visitors: _components_visitors_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n requests: _components_requests_vue__WEBPACK_IMPORTED_MODULE_3__[\"default\"]\n };\n Object.defineProperty(__returned__, '__isScriptSetup', {\n enumerable: false,\n value: true\n });\n return __returned__;\n }\n});\n\n//# sourceURL=webpack://lesli/../LesliAudit/lib/vue/apps/analytics/index.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-8.use!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use");
229
229
 
230
230
  /***/ }),
231
231
 
232
- /***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-8.use!./node_modules/vue-loader/dist/index.js??ruleSet[0].use!../LesliAudit/lib/vue/apps/analytics/requests.vue?vue&type=script&setup=true&lang=js":
233
- /*!******************************************************************************************************************************************************************************************************************!*\
234
- !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-8.use!./node_modules/vue-loader/dist/index.js??ruleSet[0].use!../LesliAudit/lib/vue/apps/analytics/requests.vue?vue&type=script&setup=true&lang=js ***!
235
- \******************************************************************************************************************************************************************************************************************/
232
+ /***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-8.use!./node_modules/vue-loader/dist/index.js??ruleSet[0].use!../LesliAudit/lib/vue/components/requests.vue?vue&type=script&setup=true&lang=js":
233
+ /*!**************************************************************************************************************************************************************************************************************!*\
234
+ !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-8.use!./node_modules/vue-loader/dist/index.js??ruleSet[0].use!../LesliAudit/lib/vue/components/requests.vue?vue&type=script&setup=true&lang=js ***!
235
+ \**************************************************************************************************************************************************************************************************************/
236
236
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
237
237
 
238
238
  "use strict";
239
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.esm-bundler.js\");\n/* harmony import */ var LesliAudit_stores_analytics_visitors__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! LesliAudit/stores/analytics/visitors */ \"../LesliAudit/lib/vue/stores/analytics/visitors.js\");\n\n\n// · import stores\n\n\n// · implement stores\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n __name: 'requests',\n setup(__props, _ref) {\n let {\n expose: __expose\n } = _ref;\n __expose();\n\n /*\n Lesli\n \n Copyright (c) 2023, Lesli Technologies, S. A.\n \n This program is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n \n This program is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU General Public License for more details.\n \n You should have received a copy of the GNU General Public License\n along with this program. If not, see http://www.gnu.org/licenses/.\n \n Lesli · Ruby on Rails SaaS Development Framework.\n \n Made with ♥ by https://www.lesli.tech\n Building a better future, one line of code at a time.\n \n @contact hello@lesli.tech\n @website https://www.lesli.tech\n @license GPLv3 http://www.gnu.org/licenses/gpl-3.0.en.html\n \n // · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~\n // · \n */\n\n // · import vue tools\n const storeAnalytics = (0,LesliAudit_stores_analytics_visitors__WEBPACK_IMPORTED_MODULE_1__.useAnalytics)();\n const __returned__ = {\n storeAnalytics,\n get useAnalytics() {\n return LesliAudit_stores_analytics_visitors__WEBPACK_IMPORTED_MODULE_1__.useAnalytics;\n }\n };\n Object.defineProperty(__returned__, '__isScriptSetup', {\n enumerable: false,\n value: true\n });\n return __returned__;\n }\n});\n\n//# sourceURL=webpack://lesli/../LesliAudit/lib/vue/apps/analytics/requests.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-8.use!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use");
239
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.esm-bundler.js\");\n/* harmony import */ var LesliAudit_stores_analytics__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! LesliAudit/stores/analytics */ \"../LesliAudit/lib/vue/stores/analytics.js\");\n\n\n// · import stores\n\n\n// · implement stores\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n __name: 'requests',\n setup(__props, _ref) {\n let {\n expose: __expose\n } = _ref;\n __expose();\n\n /*\n Lesli\n \n Copyright (c) 2023, Lesli Technologies, S. A.\n \n This program is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n \n This program is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU General Public License for more details.\n \n You should have received a copy of the GNU General Public License\n along with this program. If not, see http://www.gnu.org/licenses/.\n \n Lesli · Ruby on Rails SaaS Development Framework.\n \n Made with ♥ by https://www.lesli.tech\n Building a better future, one line of code at a time.\n \n @contact hello@lesli.tech\n @website https://www.lesli.tech\n @license GPLv3 http://www.gnu.org/licenses/gpl-3.0.en.html\n \n // · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~\n // · \n */\n\n // · import vue tools\n const storeAnalytics = (0,LesliAudit_stores_analytics__WEBPACK_IMPORTED_MODULE_1__.useAnalytics)();\n const __returned__ = {\n storeAnalytics,\n get useAnalytics() {\n return LesliAudit_stores_analytics__WEBPACK_IMPORTED_MODULE_1__.useAnalytics;\n }\n };\n Object.defineProperty(__returned__, '__isScriptSetup', {\n enumerable: false,\n value: true\n });\n return __returned__;\n }\n});\n\n//# sourceURL=webpack://lesli/../LesliAudit/lib/vue/components/requests.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-8.use!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use");
240
240
 
241
241
  /***/ }),
242
242
 
243
- /***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-8.use!./node_modules/vue-loader/dist/index.js??ruleSet[0].use!../LesliAudit/lib/vue/apps/analytics/visitors.vue?vue&type=script&setup=true&lang=js":
244
- /*!******************************************************************************************************************************************************************************************************************!*\
245
- !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-8.use!./node_modules/vue-loader/dist/index.js??ruleSet[0].use!../LesliAudit/lib/vue/apps/analytics/visitors.vue?vue&type=script&setup=true&lang=js ***!
246
- \******************************************************************************************************************************************************************************************************************/
243
+ /***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-8.use!./node_modules/vue-loader/dist/index.js??ruleSet[0].use!../LesliAudit/lib/vue/components/visitors.vue?vue&type=script&setup=true&lang=js":
244
+ /*!**************************************************************************************************************************************************************************************************************!*\
245
+ !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-8.use!./node_modules/vue-loader/dist/index.js??ruleSet[0].use!../LesliAudit/lib/vue/components/visitors.vue?vue&type=script&setup=true&lang=js ***!
246
+ \**************************************************************************************************************************************************************************************************************/
247
247
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
248
248
 
249
249
  "use strict";
250
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.esm-bundler.js\");\n/* harmony import */ var lesli_vue_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lesli-vue/components */ \"../../enginesdev/lesli-vue/source/components/index.js\");\n/* harmony import */ var LesliAudit_stores_analytics_visitors__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! LesliAudit/stores/analytics/visitors */ \"../LesliAudit/lib/vue/stores/analytics/visitors.js\");\n\n\n// · import Lesli components\n\n\n// · import stores\n\n\n// · implement stores\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n __name: 'visitors',\n setup(__props, _ref) {\n let {\n expose: __expose\n } = _ref;\n __expose();\n\n /*\n Lesli\n \n Copyright (c) 2023, Lesli Technologies, S. A.\n \n This program is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n \n This program is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU General Public License for more details.\n \n You should have received a copy of the GNU General Public License\n along with this program. If not, see http://www.gnu.org/licenses/.\n \n Lesli · Ruby on Rails SaaS Development Framework.\n \n Made with ♥ by https://www.lesli.tech\n Building a better future, one line of code at a time.\n \n @contact hello@lesli.tech\n @website https://www.lesli.tech\n @license GPLv3 http://www.gnu.org/licenses/gpl-3.0.en.html\n \n // · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~\n // · \n */\n\n // · import vue tools\n const storeAnalytics = (0,LesliAudit_stores_analytics_visitors__WEBPACK_IMPORTED_MODULE_2__.useAnalytics)();\n\n // · define variables\n var series = (0,vue__WEBPACK_IMPORTED_MODULE_0__.ref)([]);\n var labels = (0,vue__WEBPACK_IMPORTED_MODULE_0__.ref)([]);\n\n // · initializing\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.onMounted)(() => {\n storeAnalytics.fetchVisits();\n setTimeout(() => storeAnalytics.fetchUsers(), 500);\n setTimeout(() => storeAnalytics.fetchDevices(), 1000);\n setTimeout(() => storeAnalytics.fetchControllers(), 1500);\n });\n\n // · \n function reload() {\n storeAnalytics.fetch();\n }\n\n // · \n (0,vue__WEBPACK_IMPORTED_MODULE_0__.watch)(() => storeAnalytics.visitors.records, () => {\n labels.value = storeAnalytics.visitors.records.map(visit => visit.date);\n series.value = [{\n name: \"Requests\",\n data: storeAnalytics.visitors.records.map(visit => visit.requests)\n }, {\n name: \"Resources\",\n data: storeAnalytics.visitors.records.map(visit => visit.resources)\n }];\n });\n const __returned__ = {\n storeAnalytics,\n get series() {\n return series;\n },\n set series(v) {\n series = v;\n },\n get labels() {\n return labels;\n },\n set labels(v) {\n labels = v;\n },\n reload,\n ref: vue__WEBPACK_IMPORTED_MODULE_0__.ref,\n reactive: vue__WEBPACK_IMPORTED_MODULE_0__.reactive,\n onMounted: vue__WEBPACK_IMPORTED_MODULE_0__.onMounted,\n watch: vue__WEBPACK_IMPORTED_MODULE_0__.watch,\n computed: vue__WEBPACK_IMPORTED_MODULE_0__.computed,\n get lesliChartLine() {\n return lesli_vue_components__WEBPACK_IMPORTED_MODULE_1__.lesliChartLine;\n },\n get useAnalytics() {\n return LesliAudit_stores_analytics_visitors__WEBPACK_IMPORTED_MODULE_2__.useAnalytics;\n }\n };\n Object.defineProperty(__returned__, '__isScriptSetup', {\n enumerable: false,\n value: true\n });\n return __returned__;\n }\n});\n\n//# sourceURL=webpack://lesli/../LesliAudit/lib/vue/apps/analytics/visitors.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-8.use!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use");
250
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.esm-bundler.js\");\n/* harmony import */ var lesli_vue_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lesli-vue/components */ \"../../enginesdev/lesli-vue/source/components/index.js\");\n/* harmony import */ var LesliAudit_stores_analytics__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! LesliAudit/stores/analytics */ \"../LesliAudit/lib/vue/stores/analytics.js\");\n\n\n// · import Lesli components\n\n\n// · import stores\n\n\n// · implement stores\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n __name: 'visitors',\n setup(__props, _ref) {\n let {\n expose: __expose\n } = _ref;\n __expose();\n\n /*\n Lesli\n \n Copyright (c) 2023, Lesli Technologies, S. A.\n \n This program is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n \n This program is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU General Public License for more details.\n \n You should have received a copy of the GNU General Public License\n along with this program. If not, see http://www.gnu.org/licenses/.\n \n Lesli · Ruby on Rails SaaS Development Framework.\n \n Made with ♥ by https://www.lesli.tech\n Building a better future, one line of code at a time.\n \n @contact hello@lesli.tech\n @website https://www.lesli.tech\n @license GPLv3 http://www.gnu.org/licenses/gpl-3.0.en.html\n \n // · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~\n // · \n */\n\n // · import vue tools\n const storeAnalytics = (0,LesliAudit_stores_analytics__WEBPACK_IMPORTED_MODULE_2__.useAnalytics)();\n\n // · define variables\n var series = (0,vue__WEBPACK_IMPORTED_MODULE_0__.ref)([]);\n var labels = (0,vue__WEBPACK_IMPORTED_MODULE_0__.ref)([]);\n\n // · \n (0,vue__WEBPACK_IMPORTED_MODULE_0__.watch)(() => storeAnalytics.visitors.records, () => {\n labels.value = storeAnalytics.visitors.records.map(visit => visit.date);\n series.value = [{\n name: \"Requests\",\n data: storeAnalytics.visitors.records.map(visit => visit.requests)\n }, {\n name: \"Resources\",\n data: storeAnalytics.visitors.records.map(visit => visit.resources)\n }];\n });\n const __returned__ = {\n storeAnalytics,\n get series() {\n return series;\n },\n set series(v) {\n series = v;\n },\n get labels() {\n return labels;\n },\n set labels(v) {\n labels = v;\n },\n ref: vue__WEBPACK_IMPORTED_MODULE_0__.ref,\n reactive: vue__WEBPACK_IMPORTED_MODULE_0__.reactive,\n onMounted: vue__WEBPACK_IMPORTED_MODULE_0__.onMounted,\n watch: vue__WEBPACK_IMPORTED_MODULE_0__.watch,\n computed: vue__WEBPACK_IMPORTED_MODULE_0__.computed,\n get lesliChartLine() {\n return lesli_vue_components__WEBPACK_IMPORTED_MODULE_1__.lesliChartLine;\n },\n get useAnalytics() {\n return LesliAudit_stores_analytics__WEBPACK_IMPORTED_MODULE_2__.useAnalytics;\n }\n };\n Object.defineProperty(__returned__, '__isScriptSetup', {\n enumerable: false,\n value: true\n });\n return __returned__;\n }\n});\n\n//# sourceURL=webpack://lesli/../LesliAudit/lib/vue/components/visitors.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-8.use!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use");
251
+
252
+ /***/ }),
253
+
254
+ /***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-8.use!./node_modules/vue-loader/dist/index.js??ruleSet[0].use!../../enginesdev/lesli-vue/source/components/charts/bar/bar.vue?vue&type=script&setup=true&lang=js":
255
+ /*!********************************************************************************************************************************************************************************************************************************!*\
256
+ !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-8.use!./node_modules/vue-loader/dist/index.js??ruleSet[0].use!../../enginesdev/lesli-vue/source/components/charts/bar/bar.vue?vue&type=script&setup=true&lang=js ***!
257
+ \********************************************************************************************************************************************************************************************************************************/
258
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
259
+
260
+ "use strict";
261
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.esm-bundler.js\");\n/* harmony import */ var _general_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../general.vue */ \"../../enginesdev/lesli-vue/source/components/charts/general.vue\");\n\n\n// · import & define local components\n\n\n// · defining props\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n __name: 'bar',\n props: {\n title: String,\n series: {\n type: Array,\n required: true\n },\n labels: {\n type: Array,\n required: false,\n default: []\n }\n },\n setup(__props, _ref) {\n let {\n expose: __expose\n } = _ref;\n __expose();\n const props = __props;\n\n /*\n \n Lesli\n \n Copyright (c) 2023, Lesli Technologies, S. A.\n \n This program is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n \n This program is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU General Public License for more details.\n \n You should have received a copy of the GNU General Public License\n along with this program. If not, see http://www.gnu.org/licenses/.\n \n Lesli · Your Smart Business Assistant. \n \n Made with ♥ by https://www.lesli.tech\n Building a better future, one line of code at a time.\n \n @contact hello@lesli.tech\n @website https://lesli.tech\n @license GPLv3 http://www.gnu.org/licenses/gpl-3.0.en.html\n \n // · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~\n // · \n \n */\n\n // · import vue tools\n\n // · specific options to print a proper line chart\n const barOptions = {\n chart: {\n height: '350px'\n },\n plotOptions: {\n bar: {\n borderRadius: 10,\n dataLabels: {\n position: 'top' // top, center, bottom\n }\n }\n },\n\n dataLabels: {\n enabled: true,\n offsetY: -20,\n style: {\n fontSize: '14px',\n colors: [\"#304758\"]\n }\n },\n xaxis: {\n categories: [],\n position: 'bottom',\n axisTicks: {\n show: false\n },\n tooltip: {\n enabled: true\n }\n }\n };\n const __returned__ = {\n props,\n barOptions,\n ref: vue__WEBPACK_IMPORTED_MODULE_0__.ref,\n reactive: vue__WEBPACK_IMPORTED_MODULE_0__.reactive,\n onMounted: vue__WEBPACK_IMPORTED_MODULE_0__.onMounted,\n watch: vue__WEBPACK_IMPORTED_MODULE_0__.watch,\n componentChartGeneral: _general_vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"]\n };\n Object.defineProperty(__returned__, '__isScriptSetup', {\n enumerable: false,\n value: true\n });\n return __returned__;\n }\n});\n\n//# sourceURL=webpack://lesli/../../enginesdev/lesli-vue/source/components/charts/bar/bar.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-8.use!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use");
251
262
 
252
263
  /***/ }),
253
264
 
@@ -258,7 +269,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
258
269
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
259
270
 
260
271
  "use strict";
261
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.esm-bundler.js\");\n/* harmony import */ var apexcharts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! apexcharts */ \"./node_modules/apexcharts/dist/apexcharts.common.js\");\n/* harmony import */ var apexcharts__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(apexcharts__WEBPACK_IMPORTED_MODULE_1__);\n\n\n// · defining emits\n\n\n// · defining props\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n __name: 'general',\n props: {\n type: {\n type: String,\n required: true\n },\n title: {\n type: String\n },\n subtitle: {\n type: String\n },\n series: {\n type: Array,\n required: true\n },\n labels: {\n type: Array,\n required: true\n },\n options: {\n type: Object,\n default() {\n return {};\n }\n }\n },\n emits: ['markerClick'],\n setup(__props, _ref) {\n let {\n expose: __expose,\n emit\n } = _ref;\n __expose();\n const props = __props;\n\n /*\n \n Lesli\n \n Copyright (c) 2023, Lesli Technologies, S. A.\n \n This program is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n \n This program is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU General Public License for more details.\n \n You should have received a copy of the GNU General Public License\n along with this program. If not, see http://www.gnu.org/licenses/.\n \n Lesli · Ruby on Rails SaaS Development Framework.\n \n Made with ♥ by https://www.lesli.tech\n Building a better future, one line of code at a time.\n \n @contact hello@lesli.tech\n @website https://www.lesli.tech\n @license GPLv3 http://www.gnu.org/licenses/gpl-3.0.en.html\n \n // · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~\n // · \n */\n\n // · import vue tools\n\n // · import & define local components\n\n // · \n const instance = (0,vue__WEBPACK_IMPORTED_MODULE_0__.getCurrentInstance)();\n\n // · define variables\n var chart = (0,vue__WEBPACK_IMPORTED_MODULE_0__.reactive)({});\n\n // · specific options for apexcharts\n const generalOptions = {\n series: [],\n labels: [],\n grid: {\n show: false,\n padding: {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n }\n },\n chart: {\n type: props.type,\n height: \"auto\",\n toolbar: {\n show: false\n },\n events: {\n markerClick: function (event, chartContext, _ref2) {\n let {\n seriesIndex,\n dataPointIndex\n } = _ref2;\n emit(\"markerClick\", {\n seriesIndex,\n dataPointIndex\n });\n }\n }\n },\n title: {\n text: \"\"\n },\n legend: {\n show: true,\n position: 'top',\n horizontalAlign: 'center'\n },\n dataLabels: {\n enabled: true\n },\n //colors: this.lesli.colors(\"charts\"),\n stroke: {},\n plotOptions: {},\n xaxis: {\n categories: [],\n tickPlacement: 'between',\n labels: {\n show: true,\n rotate: -65,\n rotateAlways: false,\n trim: false,\n offsetY: 5,\n style: {\n fontSize: '15px'\n }\n }\n },\n yaxis: {\n show: true\n }\n };\n\n // · unique id for the chart container\n const chartId = `component-chart-${Math.floor(Math.random() * 10000)}`;\n\n // · \n (0,vue__WEBPACK_IMPORTED_MODULE_0__.onMounted)(() => {\n // labels and data series are empty by default due child (wrapper) components \n // may set this arrays dynamically, so we have to always listen for changes on\n // these arrays\n generalOptions.labels = [];\n generalOptions.series = [];\n\n // start chart with unique html id\n chart = new (apexcharts__WEBPACK_IMPORTED_MODULE_1___default())(document.querySelector(\"#\" + chartId), generalOptions);\n\n // render an empty chart\n chart.render();\n\n // If the information is available from the start, we update the labels and sources\n if (props.options) {\n chart.updateOptions(props.options);\n }\n if (props.series) {\n chart.updateSeries(props.series);\n }\n if (props.labels) {\n chart.updateOptions({\n labels: props.labels\n });\n }\n });\n\n // · watch for changes on prop series to update chart options\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.watch)(() => props.series, newSeries => chart.updateSeries(newSeries));\n\n // · watch for changes on prop labels to update chart options\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.watch)(() => props.labels, newLabels => {\n // special options for bar charts\n if (['bar'].includes(props.type)) {\n chart.updateOptions({\n xaxis: {\n categories: newLabels\n }\n });\n return;\n }\n chart.updateOptions({\n labels: newLabels\n });\n });\n const __returned__ = {\n emit,\n props,\n instance,\n get chart() {\n return chart;\n },\n set chart(v) {\n chart = v;\n },\n generalOptions,\n chartId,\n ref: vue__WEBPACK_IMPORTED_MODULE_0__.ref,\n reactive: vue__WEBPACK_IMPORTED_MODULE_0__.reactive,\n onMounted: vue__WEBPACK_IMPORTED_MODULE_0__.onMounted,\n watch: vue__WEBPACK_IMPORTED_MODULE_0__.watch,\n getCurrentInstance: vue__WEBPACK_IMPORTED_MODULE_0__.getCurrentInstance,\n get ApexCharts() {\n return (apexcharts__WEBPACK_IMPORTED_MODULE_1___default());\n }\n };\n Object.defineProperty(__returned__, '__isScriptSetup', {\n enumerable: false,\n value: true\n });\n return __returned__;\n }\n});\n\n//# sourceURL=webpack://lesli/../../enginesdev/lesli-vue/source/components/charts/general.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-8.use!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use");
272
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.esm-bundler.js\");\n/* harmony import */ var apexcharts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! apexcharts */ \"./node_modules/apexcharts/dist/apexcharts.common.js\");\n/* harmony import */ var apexcharts__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(apexcharts__WEBPACK_IMPORTED_MODULE_1__);\n\n\n// · defining emits\n\n\n// · defining props\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n __name: 'general',\n props: {\n type: {\n type: String,\n required: true\n },\n title: {\n type: String\n },\n subtitle: {\n type: String\n },\n series: {\n type: Array,\n required: true\n },\n labels: {\n type: Array,\n required: true\n },\n options: {\n type: Object,\n default() {\n return {};\n }\n }\n },\n emits: ['markerClick'],\n setup(__props, _ref) {\n let {\n expose: __expose,\n emit\n } = _ref;\n __expose();\n const props = __props;\n\n /*\n \n Lesli\n \n Copyright (c) 2023, Lesli Technologies, S. A.\n \n This program is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n \n This program is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU General Public License for more details.\n \n You should have received a copy of the GNU General Public License\n along with this program. If not, see http://www.gnu.org/licenses/.\n \n Lesli · Ruby on Rails SaaS Development Framework.\n \n Made with ♥ by https://www.lesli.tech\n Building a better future, one line of code at a time.\n \n @contact hello@lesli.tech\n @website https://www.lesli.tech\n @license GPLv3 http://www.gnu.org/licenses/gpl-3.0.en.html\n \n // · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~\n // · \n */\n\n // · import vue tools\n\n // · import & define local components\n\n // · \n const instance = (0,vue__WEBPACK_IMPORTED_MODULE_0__.getCurrentInstance)();\n\n // · define variables\n var chart = (0,vue__WEBPACK_IMPORTED_MODULE_0__.reactive)({});\n\n // · specific options for apexcharts\n const generalOptions = {\n series: [],\n labels: [],\n grid: {\n show: false,\n padding: {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n }\n },\n chart: {\n type: props.type,\n height: \"auto\",\n toolbar: {\n show: false\n },\n events: {\n markerClick: function (event, chartContext, _ref2) {\n let {\n seriesIndex,\n dataPointIndex\n } = _ref2;\n emit(\"markerClick\", {\n seriesIndex,\n dataPointIndex\n });\n }\n }\n },\n title: {\n text: \"\"\n },\n legend: {\n show: true,\n position: 'top',\n horizontalAlign: 'center'\n },\n dataLabels: {\n enabled: true\n },\n //colors: this.lesli.colors(\"charts\"),\n stroke: {},\n plotOptions: {},\n xaxis: {\n categories: [],\n tickPlacement: 'between',\n labels: {\n show: true,\n rotate: -65,\n rotateAlways: false,\n trim: false,\n offsetY: 5,\n style: {\n fontSize: '15px'\n }\n }\n },\n yaxis: {\n show: true\n }\n };\n\n // · unique id for the chart container\n const chartId = `component-chart-${Math.floor(Math.random() * 10000)}`;\n\n // · \n (0,vue__WEBPACK_IMPORTED_MODULE_0__.onMounted)(() => {\n // labels and data series are empty by default due child (wrapper) components \n // may set this arrays dynamically, so we have to always listen for changes on\n // these arrays\n generalOptions.labels = [];\n generalOptions.series = [];\n\n // start chart with unique html id\n chart = new (apexcharts__WEBPACK_IMPORTED_MODULE_1___default())(document.querySelector(\"#\" + chartId), generalOptions);\n\n // render an empty chart\n chart.render();\n\n // If the information is available from the start, we update the labels and sources\n if (props.options) {\n chart.updateOptions(props.options);\n }\n if (props.series) {\n chart.updateSeries(props.series);\n }\n if (props.labels) {\n chart.updateOptions({\n labels: props.labels\n });\n }\n });\n\n // · watch for changes on prop series to update chart options\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.watch)(() => props.series, newSeries => {\n chart.updateSeries(newSeries);\n });\n\n // · watch for changes on prop labels to update chart options\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.watch)(() => props.labels, newLabels => {\n // special options for bar charts\n if (['bar'].includes(props.type)) {\n chart.updateOptions({\n xaxis: {\n categories: newLabels\n }\n });\n return;\n }\n chart.updateOptions({\n labels: newLabels\n });\n });\n const __returned__ = {\n emit,\n props,\n instance,\n get chart() {\n return chart;\n },\n set chart(v) {\n chart = v;\n },\n generalOptions,\n chartId,\n ref: vue__WEBPACK_IMPORTED_MODULE_0__.ref,\n reactive: vue__WEBPACK_IMPORTED_MODULE_0__.reactive,\n onMounted: vue__WEBPACK_IMPORTED_MODULE_0__.onMounted,\n watch: vue__WEBPACK_IMPORTED_MODULE_0__.watch,\n getCurrentInstance: vue__WEBPACK_IMPORTED_MODULE_0__.getCurrentInstance,\n get ApexCharts() {\n return (apexcharts__WEBPACK_IMPORTED_MODULE_1___default());\n }\n };\n Object.defineProperty(__returned__, '__isScriptSetup', {\n enumerable: false,\n value: true\n });\n return __returned__;\n }\n});\n\n//# sourceURL=webpack://lesli/../../enginesdev/lesli-vue/source/components/charts/general.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-8.use!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use");
262
273
 
263
274
  /***/ }),
264
275
 
@@ -643,7 +654,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
643
654
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
644
655
 
645
656
  "use strict";
646
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: () => (/* binding */ render)\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.esm-bundler.js\");\n\nconst _hoisted_1 = {\n class: \"lesli-application-container container\"\n};\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"section\", _hoisted_1, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.renderSlot)(_ctx.$slots, \"default\")]);\n}\n\n//# sourceURL=webpack://lesli/./lib/vue/layouts/application-container.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-8.use!./node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B2%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use");
657
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: () => (/* binding */ render)\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.esm-bundler.js\");\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"section\", {\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)([\"lesli-application-container container\", {\n 'is-fluid': $props.dashboard\n }])\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.renderSlot)(_ctx.$slots, \"default\")], 2 /* CLASS */);\n}\n\n//# sourceURL=webpack://lesli/./lib/vue/layouts/application-container.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-8.use!./node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B2%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use");
647
658
 
648
659
  /***/ }),
649
660
 
@@ -654,7 +665,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
654
665
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
655
666
 
656
667
  "use strict";
657
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: () => (/* binding */ render)\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.esm-bundler.js\");\n\nconst _hoisted_1 = {\n class: \"engines\"\n};\nconst _hoisted_2 = {\n class: \"container\"\n};\nconst _hoisted_3 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"button\", {\n class: \"button is-hidden-tablet\"\n}, [/*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", {\n class: \"icon\"\n}, [/*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"i\", {\n class: \"ri-close-line\"\n})]), /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", null, \"close\")], -1 /* HOISTED */);\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(vue__WEBPACK_IMPORTED_MODULE_0__.Transition, null, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [$setup.storeLayout.showEngines ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"section\", {\n key: 0,\n class: \"lesli-application-engines\",\n onClick: _cache[0] || (_cache[0] = $event => $setup.storeLayout.toggleEngines())\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_1, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_2, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.renderSlot)(_ctx.$slots, \"default\"), _hoisted_3])])])) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true)]),\n _: 3 /* FORWARDED */\n });\n}\n\n//# sourceURL=webpack://lesli/./lib/vue/layouts/application-engines.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-8.use!./node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B2%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use");
668
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: () => (/* binding */ render)\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.esm-bundler.js\");\n\nconst _hoisted_1 = {\n class: \"engines-container\"\n};\nconst _hoisted_2 = {\n class: \"engines\"\n};\nconst _hoisted_3 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"button\", {\n class: \"button is-hidden-tablet\"\n}, [/*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", {\n class: \"icon\"\n}, [/*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"i\", {\n class: \"ri-close-line\"\n})]), /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", null, \"close\")], -1 /* HOISTED */);\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(vue__WEBPACK_IMPORTED_MODULE_0__.Transition, null, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [$setup.storeLayout.showEngines ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"section\", {\n key: 0,\n class: \"lesli-application-engines\",\n onClick: _cache[0] || (_cache[0] = $event => $setup.storeLayout.toggleEngines())\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_1, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_2, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.renderSlot)(_ctx.$slots, \"default\")]), _hoisted_3])])) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true)]),\n _: 3 /* FORWARDED */\n });\n}\n\n//# sourceURL=webpack://lesli/./lib/vue/layouts/application-engines.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-8.use!./node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B2%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use");
658
669
 
659
670
  /***/ }),
660
671
 
@@ -665,7 +676,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
665
676
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
666
677
 
667
678
  "use strict";
668
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: () => (/* binding */ render)\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.esm-bundler.js\");\n\nconst _hoisted_1 = {\n ref: \"lesliApplicationHeader\",\n class: \"lesli-application-header\"\n};\nconst _hoisted_2 = {\n class: \"lesli-application-header-container container\"\n};\nconst _hoisted_3 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"figure\", {\n class: \"image lesli-brand\"\n}, [/*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"img\", {\n alt: \"App logo\",\n class: \"is-hidden-touch\",\n src: \"/assets/lesli/brand/app-logo.svg\"\n})], -1 /* HOISTED */);\nconst _hoisted_4 = {\n class: \"lesli-application-header-left\"\n};\nconst _hoisted_5 = {\n class: \"control is-medium has-icons-left has-text-grey\"\n};\nconst _hoisted_6 = {\n class: \"icon is-left has-text-gray\"\n};\nconst _hoisted_7 = {\n key: 0,\n class: \"material-icons\"\n};\nconst _hoisted_8 = [\"placeholder\"];\nconst _hoisted_9 = {\n class: \"lesli-application-header-right\"\n};\nconst _hoisted_10 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", {\n class: \"ri-apps-2-line\"\n}, null, -1 /* HOISTED */);\nconst _hoisted_11 = [_hoisted_10];\nconst _hoisted_12 = {\n key: 0,\n class: \"count\"\n};\nconst _hoisted_13 = {\n key: 0,\n class: \"count\"\n};\nconst _hoisted_14 = {\n key: 0,\n class: \"count\"\n};\nconst _hoisted_15 = {\n class: \"dropdown is-right is-hoverable header-user-options\"\n};\nconst _hoisted_16 = {\n class: \"dropdown-trigger\"\n};\nconst _hoisted_17 = {\n class: \"icon has-text-link\"\n};\nconst _hoisted_18 = {\n class: \"dropdown-menu\",\n id: \"dropdown-menu\",\n role: \"menu\"\n};\nconst _hoisted_19 = {\n class: \"dropdown-content\"\n};\nconst _hoisted_20 = {\n href: \"/administration/profile\",\n class: \"dropdown-item\"\n};\nconst _hoisted_21 = {\n class: \"icon-text\"\n};\nconst _hoisted_22 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", {\n class: \"icon has-text-grey-dark\"\n}, [/*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", {\n class: \"ri-user-line\"\n})], -1 /* HOISTED */);\nconst _hoisted_23 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"hr\", {\n class: \"dropdown-divider\"\n}, null, -1 /* HOISTED */);\nconst _hoisted_24 = {\n href: \"/logout\",\n class: \"dropdown-item\"\n};\nconst _hoisted_25 = {\n class: \"icon-text\"\n};\nconst _hoisted_26 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", {\n class: \"icon has-text-grey-dark\"\n}, [/*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", {\n class: \"ri-logout-box-r-line\"\n})], -1 /* HOISTED */);\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_lesli_loading = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"lesli-loading\");\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"header\", _hoisted_1, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_2, [_hoisted_3, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_4, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_5, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", _hoisted_6, [!$setup.storeSearch.loading ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"span\", _hoisted_7, \" search \")) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true), $setup.storeSearch.loading ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(_component_lesli_loading, {\n key: 1,\n icon: true\n })) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true)]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)((0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"input\", {\n type: \"email\",\n name: \"global_search\",\n class: \"input is-shadowless\",\n placeholder: $setup.translations.core.shared.search_placeholder || 'Ask to Lesli...',\n onInput: _cache[0] || (_cache[0] = function () {\n return $setup.storeSearch.doSearch && $setup.storeSearch.doSearch(...arguments);\n }),\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = $event => $setup.storeSearch.text = $event)\n }, null, 40 /* PROPS, HYDRATE_EVENTS */, _hoisted_8), [[vue__WEBPACK_IMPORTED_MODULE_0__.vModelText, $setup.storeSearch.text]])])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_9, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\" engines selector \"), $setup.props.showEngines || true ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"a\", {\n key: 0,\n class: \"header-indicator\",\n onClick: _cache[2] || (_cache[2] = $event => $setup.toggleEngines())\n }, _hoisted_11)) : 0, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\" Tickets \"), $setup.props.showTickets || true ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"a\", {\n key: 1,\n class: \"header-indicator\",\n onClick: _cache[3] || (_cache[3] = () => {\n $setup.storeLayout.showTickets = true;\n })\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", {\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)(['ri-ticket-2-line', {\n 'is-active': $setup.storeLayout.header.tickets > 0\n }])\n }, null, 2 /* CLASS */), $setup.storeLayout.header.tickets > 0 ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"span\", _hoisted_12, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($setup.storeLayout.header.tickets), 1 /* TEXT */)) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true)])) : 0, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\" Tasks \"), $setup.props.showFocus || true ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"a\", {\n key: 2,\n class: \"header-indicator\",\n onClick: _cache[4] || (_cache[4] = () => {\n if ($setup.storeLayout.header.tasks > 0) {\n $setup.storeLayout.showTasks = true;\n }\n })\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", {\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)(['ri-list-check-3', {\n 'is-active': $setup.storeLayout.header.tasks > 0\n }])\n }, null, 2 /* CLASS */), $setup.storeLayout.header.tasks > 0 ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"span\", _hoisted_13, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($setup.storeLayout.header.tasks), 1 /* TEXT */)) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true)])) : 0, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\" Notifications \"), $setup.props.showBell || true ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"a\", {\n key: 3,\n class: \"header-indicator\",\n onClick: _cache[5] || (_cache[5] = () => {\n if ($setup.storeLayout.header.notifications > 0) {\n $setup.storeLayout.showNotifications = true;\n }\n })\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", {\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)(['ri-notification-3-line', {\n 'is-active': $setup.storeLayout.header.notifications > 0\n }])\n }, null, 2 /* CLASS */), $setup.storeLayout.header.notifications > 0 ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"span\", _hoisted_14, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($setup.storeLayout.header.notifications), 1 /* TEXT */)) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true)])) : 0, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\" Profile options \"), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_15, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_16, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", _hoisted_17, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", {\n class: \"ri-user-smile-line\",\n onClick: _cache[6] || (_cache[6] = $event => $setup.storeLayout.showProfile = true)\n })])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_18, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_19, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"a\", _hoisted_20, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", _hoisted_21, [_hoisted_22, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($setup.translations.core.shared.view_text_profile), 1 /* TEXT */)])]), _hoisted_23, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"a\", _hoisted_24, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", _hoisted_25, [_hoisted_26, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($setup.translations.core.shared.view_text_logout), 1 /* TEXT */)])])])])])])])], 512 /* NEED_PATCH */);\n}\n\n//# sourceURL=webpack://lesli/./lib/vue/layouts/application-header.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-8.use!./node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B2%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use");
679
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: () => (/* binding */ render)\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.esm-bundler.js\");\n\nconst _hoisted_1 = {\n ref: \"lesliApplicationHeader\",\n class: \"lesli-application-header\"\n};\nconst _hoisted_2 = {\n class: \"lesli-application-header-container container\"\n};\nconst _hoisted_3 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"figure\", {\n class: \"image lesli-brand\"\n}, [/*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"img\", {\n alt: \"App logo\",\n class: \"is-hidden-touch\",\n src: \"/assets/lesli/brand/app-logo.svg\"\n})], -1 /* HOISTED */);\nconst _hoisted_4 = {\n class: \"lesli-application-header-left\"\n};\nconst _hoisted_5 = {\n class: \"control is-medium has-icons-left has-text-grey\"\n};\nconst _hoisted_6 = {\n class: \"icon is-left has-text-gray\"\n};\nconst _hoisted_7 = {\n key: 0,\n class: \"material-icons\"\n};\nconst _hoisted_8 = [\"placeholder\"];\nconst _hoisted_9 = {\n class: \"lesli-application-header-right\"\n};\nconst _hoisted_10 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", {\n class: \"ri-apps-2-line\"\n}, null, -1 /* HOISTED */);\nconst _hoisted_11 = [_hoisted_10];\nconst _hoisted_12 = {\n key: 0,\n class: \"count\"\n};\nconst _hoisted_13 = {\n key: 0,\n class: \"count\"\n};\nconst _hoisted_14 = {\n key: 0,\n class: \"count\"\n};\nconst _hoisted_15 = {\n class: \"dropdown is-right is-hoverable header-user-options\"\n};\nconst _hoisted_16 = {\n class: \"dropdown-trigger\"\n};\nconst _hoisted_17 = {\n class: \"icon has-text-link\"\n};\nconst _hoisted_18 = {\n class: \"dropdown-menu\",\n id: \"dropdown-menu\",\n role: \"menu\"\n};\nconst _hoisted_19 = {\n class: \"dropdown-content\"\n};\nconst _hoisted_20 = [\"href\"];\nconst _hoisted_21 = {\n class: \"icon-text\"\n};\nconst _hoisted_22 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", {\n class: \"icon has-text-grey-dark\"\n}, [/*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", {\n class: \"ri-user-line\"\n})], -1 /* HOISTED */);\nconst _hoisted_23 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"hr\", {\n class: \"dropdown-divider\"\n}, null, -1 /* HOISTED */);\nconst _hoisted_24 = {\n href: \"/logout\",\n class: \"dropdown-item py-3\"\n};\nconst _hoisted_25 = {\n class: \"icon-text\"\n};\nconst _hoisted_26 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", {\n class: \"icon has-text-grey-dark\"\n}, [/*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", {\n class: \"ri-logout-box-r-line\"\n})], -1 /* HOISTED */);\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_lesli_loading = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"lesli-loading\");\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"header\", _hoisted_1, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_2, [_hoisted_3, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_4, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_5, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", _hoisted_6, [!$setup.storeSearch.loading ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"span\", _hoisted_7, \" search \")) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true), $setup.storeSearch.loading ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(_component_lesli_loading, {\n key: 1,\n icon: true\n })) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true)]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)((0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"input\", {\n type: \"email\",\n name: \"global_search\",\n class: \"input is-shadowless\",\n placeholder: $setup.translations.core.shared.search_placeholder || 'Ask to Lesli...',\n onInput: _cache[0] || (_cache[0] = function () {\n return $setup.storeSearch.doSearch && $setup.storeSearch.doSearch(...arguments);\n }),\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = $event => $setup.storeSearch.text = $event)\n }, null, 40 /* PROPS, HYDRATE_EVENTS */, _hoisted_8), [[vue__WEBPACK_IMPORTED_MODULE_0__.vModelText, $setup.storeSearch.text]])])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_9, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\" funciona \"), (0,vue__WEBPACK_IMPORTED_MODULE_0__.renderSlot)(_ctx.$slots, \"default\"), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\" engines selector \"), $setup.props.showEngines || true ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"a\", {\n key: 0,\n class: \"header-indicator\",\n onClick: _cache[2] || (_cache[2] = $event => $setup.toggleEngines())\n }, _hoisted_11)) : 0, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\" Tickets \"), $setup.props.showTickets || true ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"a\", {\n key: 1,\n class: \"header-indicator\",\n onClick: _cache[3] || (_cache[3] = () => {\n $setup.storeLayout.showTickets = true;\n })\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", {\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)(['ri-ticket-2-line', {\n 'is-active': $setup.storeLayout.header.tickets > 0\n }])\n }, null, 2 /* CLASS */), $setup.storeLayout.header.tickets > 0 ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"span\", _hoisted_12, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($setup.storeLayout.header.tickets), 1 /* TEXT */)) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true)])) : 0, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\" Tasks \"), $setup.props.showFocus || true ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"a\", {\n key: 2,\n class: \"header-indicator\",\n onClick: _cache[4] || (_cache[4] = () => {\n if ($setup.storeLayout.header.tasks > 0) {\n $setup.storeLayout.showTasks = true;\n }\n })\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", {\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)(['ri-list-check-3', {\n 'is-active': $setup.storeLayout.header.tasks > 0\n }])\n }, null, 2 /* CLASS */), $setup.storeLayout.header.tasks > 0 ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"span\", _hoisted_13, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($setup.storeLayout.header.tasks), 1 /* TEXT */)) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true)])) : 0, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\" Notifications \"), $setup.props.showBell || true ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"a\", {\n key: 3,\n class: \"header-indicator\",\n onClick: _cache[5] || (_cache[5] = () => {\n if ($setup.storeLayout.header.notifications > 0) {\n $setup.storeLayout.showNotifications = true;\n }\n })\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", {\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)(['ri-notification-3-line', {\n 'is-active': $setup.storeLayout.header.notifications > 0\n }])\n }, null, 2 /* CLASS */), $setup.storeLayout.header.notifications > 0 ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"span\", _hoisted_14, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($setup.storeLayout.header.notifications), 1 /* TEXT */)) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true)])) : 0, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\" Profile options \"), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_15, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_16, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", _hoisted_17, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", {\n class: \"ri-user-smile-line\",\n onClick: _cache[6] || (_cache[6] = $event => $setup.storeLayout.showProfile = true)\n })])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_18, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_19, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"a\", {\n href: $setup.url.admin('profile'),\n class: \"dropdown-item py-3\"\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", _hoisted_21, [_hoisted_22, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($setup.translations.core.shared.view_text_profile), 1 /* TEXT */)])], 8 /* PROPS */, _hoisted_20), _hoisted_23, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"a\", _hoisted_24, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", _hoisted_25, [_hoisted_26, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($setup.translations.core.shared.view_text_logout), 1 /* TEXT */)])])])])])])])], 512 /* NEED_PATCH */);\n}\n\n//# sourceURL=webpack://lesli/./lib/vue/layouts/application-header.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-8.use!./node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B2%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use");
669
680
 
670
681
  /***/ }),
671
682
 
@@ -676,29 +687,40 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
676
687
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
677
688
 
678
689
  "use strict";
679
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: () => (/* binding */ render)\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.esm-bundler.js\");\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_lesli_header = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"lesli-header\");\n const _component_lesli_application_container = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"lesli-application-container\");\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(_component_lesli_application_container, null, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_lesli_header, {\n title: \"Analytics\"\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"visitors\"]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"requests\"])]),\n _: 1 /* STABLE */\n });\n}\n\n//# sourceURL=webpack://lesli/../LesliAudit/lib/vue/apps/analytics/index.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-8.use!./node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B2%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use");
690
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: () => (/* binding */ render)\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.esm-bundler.js\");\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_lesli_select = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"lesli-select\");\n const _component_lesli_header = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"lesli-header\");\n const _component_lesli_application_container = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"lesli-application-container\");\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(_component_lesli_application_container, null, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_lesli_header, {\n title: \"Analytics\"\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_lesli_select, {\n options: [{\n label: 'Today',\n value: 7\n }, {\n label: 'Yesterday',\n value: 7\n }, {\n label: 'This week',\n value: 7\n }, {\n label: 'Last 7 days',\n value: 7\n }, {\n label: 'Last 15 days',\n value: 7\n }, {\n label: 'Last 30 days',\n value: 7\n }, {\n label: 'Last 60 days',\n value: 7\n }, {\n label: 'Last 90 days',\n value: 7\n }, {\n label: 'Last 6 months',\n value: 7\n }, {\n label: 'Last 12 months',\n value: 7\n }, {\n label: 'This year (Jan - Today)',\n value: 7\n }]\n }, null, 8 /* PROPS */, [\"options\"])]),\n _: 1 /* STABLE */\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"visitors\"], {\n class: \"mb-6\"\n }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"requests\"])]),\n _: 1 /* STABLE */\n });\n}\n\n//# sourceURL=webpack://lesli/../LesliAudit/lib/vue/apps/analytics/index.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-8.use!./node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B2%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use");
691
+
692
+ /***/ }),
693
+
694
+ /***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-8.use!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use!../LesliAudit/lib/vue/components/requests.vue?vue&type=template&id=85d02fa6":
695
+ /*!*******************************************************************************************************************************************************************************************************************************************************************************!*\
696
+ !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-8.use!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use!../LesliAudit/lib/vue/components/requests.vue?vue&type=template&id=85d02fa6 ***!
697
+ \*******************************************************************************************************************************************************************************************************************************************************************************/
698
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
699
+
700
+ "use strict";
701
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: () => (/* binding */ render)\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.esm-bundler.js\");\n\nconst _hoisted_1 = {\n class: \"columns\"\n};\nconst _hoisted_2 = {\n class: \"column\"\n};\nconst _hoisted_3 = {\n class: \"column\"\n};\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_lesli_table = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"lesli-table\");\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"div\", _hoisted_1, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_2, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_lesli_table, {\n columns: $setup.storeAnalytics.users.columns,\n records: $setup.storeAnalytics.users.records\n }, null, 8 /* PROPS */, [\"columns\", \"records\"])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_3, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_lesli_table, {\n columns: $setup.storeAnalytics.controllers.columns,\n records: $setup.storeAnalytics.controllers.records\n }, null, 8 /* PROPS */, [\"columns\", \"records\"])])]);\n}\n\n//# sourceURL=webpack://lesli/../LesliAudit/lib/vue/components/requests.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-8.use!./node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B2%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use");
680
702
 
681
703
  /***/ }),
682
704
 
683
- /***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-8.use!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use!../LesliAudit/lib/vue/apps/analytics/requests.vue?vue&type=template&id=ddcd7c0c":
684
- /*!***********************************************************************************************************************************************************************************************************************************************************************************!*\
685
- !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-8.use!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use!../LesliAudit/lib/vue/apps/analytics/requests.vue?vue&type=template&id=ddcd7c0c ***!
686
- \***********************************************************************************************************************************************************************************************************************************************************************************/
705
+ /***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-8.use!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use!../LesliAudit/lib/vue/components/visitors.vue?vue&type=template&id=63fdf9ae":
706
+ /*!*******************************************************************************************************************************************************************************************************************************************************************************!*\
707
+ !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-8.use!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use!../LesliAudit/lib/vue/components/visitors.vue?vue&type=template&id=63fdf9ae ***!
708
+ \*******************************************************************************************************************************************************************************************************************************************************************************/
687
709
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
688
710
 
689
711
  "use strict";
690
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: () => (/* binding */ render)\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.esm-bundler.js\");\n\nconst _hoisted_1 = {\n class: \"columns mt-3\"\n};\nconst _hoisted_2 = {\n class: \"column\"\n};\nconst _hoisted_3 = {\n class: \"column\"\n};\nconst _hoisted_4 = {\n class: \"column\"\n};\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_lesli_table = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"lesli-table\");\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"div\", _hoisted_1, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_2, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_lesli_table, {\n columns: $setup.storeAnalytics.users.columns,\n records: $setup.storeAnalytics.users.records\n }, null, 8 /* PROPS */, [\"columns\", \"records\"])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_3, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_lesli_table, {\n columns: $setup.storeAnalytics.devices.columns,\n records: $setup.storeAnalytics.devices.records\n }, null, 8 /* PROPS */, [\"columns\", \"records\"])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_4, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_lesli_table, {\n columns: $setup.storeAnalytics.controllers.columns,\n records: $setup.storeAnalytics.controllers.records\n }, null, 8 /* PROPS */, [\"columns\", \"records\"])])]);\n}\n\n//# sourceURL=webpack://lesli/../LesliAudit/lib/vue/apps/analytics/requests.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-8.use!./node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B2%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use");
712
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: () => (/* binding */ render)\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.esm-bundler.js\");\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_lesli_application_component = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"lesli-application-component\");\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(_component_lesli_application_component, null, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"lesliChartLine\"], {\n title: 'Visitors',\n series: $setup.series,\n labels: $setup.labels\n }, null, 8 /* PROPS */, [\"series\", \"labels\"])]),\n _: 1 /* STABLE */\n });\n}\n\n//# sourceURL=webpack://lesli/../LesliAudit/lib/vue/components/visitors.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-8.use!./node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B2%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use");
691
713
 
692
714
  /***/ }),
693
715
 
694
- /***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-8.use!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use!../LesliAudit/lib/vue/apps/analytics/visitors.vue?vue&type=template&id=37ff537b":
695
- /*!***********************************************************************************************************************************************************************************************************************************************************************************!*\
696
- !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-8.use!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use!../LesliAudit/lib/vue/apps/analytics/visitors.vue?vue&type=template&id=37ff537b ***!
697
- \***********************************************************************************************************************************************************************************************************************************************************************************/
716
+ /***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-8.use!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use!../../enginesdev/lesli-vue/source/components/charts/bar/bar.vue?vue&type=template&id=986d3ba4":
717
+ /*!*************************************************************************************************************************************************************************************************************************************************************************************************!*\
718
+ !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-8.use!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use!../../enginesdev/lesli-vue/source/components/charts/bar/bar.vue?vue&type=template&id=986d3ba4 ***!
719
+ \*************************************************************************************************************************************************************************************************************************************************************************************************/
698
720
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
699
721
 
700
722
  "use strict";
701
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: () => (/* binding */ render)\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.esm-bundler.js\");\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_lesli_application_component = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"lesli-application-component\");\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(_component_lesli_application_component, null, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"lesliChartLine\"], {\n title: 'Visitors',\n series: $setup.series,\n labels: $setup.labels\n }, null, 8 /* PROPS */, [\"series\", \"labels\"])]),\n _: 1 /* STABLE */\n });\n}\n\n//# sourceURL=webpack://lesli/../LesliAudit/lib/vue/apps/analytics/visitors.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-8.use!./node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B2%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use");
723
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: () => (/* binding */ render)\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.esm-bundler.js\");\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)($setup[\"componentChartGeneral\"], {\n type: \"bar\",\n title: $props.title,\n series: $props.series,\n labels: $props.labels,\n options: $setup.barOptions\n }, null, 8 /* PROPS */, [\"title\", \"series\", \"labels\"]);\n}\n\n//# sourceURL=webpack://lesli/../../enginesdev/lesli-vue/source/components/charts/bar/bar.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-8.use!./node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B2%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use");
702
724
 
703
725
  /***/ }),
704
726
 
@@ -786,7 +808,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
786
808
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
787
809
 
788
810
  "use strict";
789
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: () => (/* binding */ render)\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.esm-bundler.js\");\n\nconst _hoisted_1 = {\n class: \"material-icons\"\n};\nconst _hoisted_2 = {\n key: 1\n};\nconst _hoisted_3 = {\n class: \"material-icons\"\n};\nconst _hoisted_4 = {\n key: 1\n};\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_router_link = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"router-link\");\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, [$setup.props.to ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(_component_router_link, {\n key: 0,\n to: $props.to.toString(),\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)(['button', 'is-link', 'is-light', $setup.buttonColor, {\n 'is-outlined': !$props.solid\n }, {\n 'is-loading': $props.loading\n }, {\n 'is-small': $props.small\n }])\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [$props.icon ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"span\", {\n key: 0,\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)(['icon', {\n 'is-small': $props.small\n }])\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", _hoisted_1, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($props.icon), 1 /* TEXT */)], 2 /* CLASS */)) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true), !$props.iconOnly ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"span\", _hoisted_2, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.renderSlot)(_ctx.$slots, \"default\")])) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true)]),\n _: 3 /* FORWARDED */\n }, 8 /* PROPS */, [\"to\", \"class\"])) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true), !$setup.props.to ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"button\", {\n key: 1,\n onClick: _cache[0] || (_cache[0] = $event => $setup.emit('click')),\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)(['button', 'is-link', 'is-light', $setup.buttonColor, {\n 'is-outlined': !$props.solid\n }, {\n 'is-loading': $props.loading\n }, {\n 'is-small': $props.small\n }])\n }, [$props.icon ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"span\", {\n key: 0,\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)(['icon', {\n 'is-small': $props.small\n }])\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", _hoisted_3, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($props.icon), 1 /* TEXT */)], 2 /* CLASS */)) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true), !$props.iconOnly ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"span\", _hoisted_4, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.renderSlot)(_ctx.$slots, \"default\")])) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true)], 2 /* CLASS */)) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true)], 64 /* STABLE_FRAGMENT */);\n}\n\n//# sourceURL=webpack://lesli/../../enginesdev/lesli-vue/source/elements/button/Button.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-8.use!./node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B2%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use");
811
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: () => (/* binding */ render)\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.esm-bundler.js\");\n\nconst _hoisted_1 = {\n class: \"material-icons\"\n};\nconst _hoisted_2 = {\n key: 1\n};\nconst _hoisted_3 = {\n class: \"material-icons\"\n};\nconst _hoisted_4 = {\n key: 1\n};\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_router_link = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)(\"router-link\");\n return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, [$setup.props.to ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)(_component_router_link, {\n key: 0,\n to: $props.to.toString(),\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)(['button', 'is-link', 'is-light', $setup.buttonColor, {\n 'is-outlined': !$props.solid\n }, {\n 'is-loading': $props.loading\n }, {\n 'is-small': $props.small\n }])\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [$props.icon ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"span\", {\n key: 0,\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)(['icon', {\n 'is-small': $props.small\n }])\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", _hoisted_1, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($props.icon), 1 /* TEXT */)], 2 /* CLASS */)) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true), !$props.iconOnly ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"span\", _hoisted_2, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.renderSlot)(_ctx.$slots, \"default\")])) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true)]),\n _: 3 /* FORWARDED */\n }, 8 /* PROPS */, [\"to\", \"class\"])) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true), !$setup.props.to ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"button\", {\n key: 1,\n onClick: _cache[0] || (_cache[0] = $event => $setup.emit('click')),\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)(['button', 'is-link', $setup.buttonColor, {\n 'is-light': !$props.solid\n }, {\n 'is-outlined': !$props.solid\n }, {\n 'is-loading': $props.loading\n }, {\n 'is-small': $props.small\n }])\n }, [$props.icon ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"span\", {\n key: 0,\n class: (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)(['icon', {\n 'is-small': $props.small\n }])\n }, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", _hoisted_3, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($props.icon), 1 /* TEXT */)], 2 /* CLASS */)) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true), !$props.iconOnly ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(\"span\", _hoisted_4, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.renderSlot)(_ctx.$slots, \"default\")])) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true)], 2 /* CLASS */)) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)(\"v-if\", true)], 64 /* STABLE_FRAGMENT */);\n}\n\n//# sourceURL=webpack://lesli/../../enginesdev/lesli-vue/source/elements/button/Button.vue?./node_modules/babel-loader/lib/index.js??clonedRuleSet-8.use!./node_modules/vue-loader/dist/templateLoader.js??ruleSet%5B1%5D.rules%5B2%5D!./node_modules/vue-loader/dist/index.js??ruleSet%5B0%5D.use");
790
812
 
791
813
  /***/ }),
792
814
 
@@ -1087,14 +1109,34 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var Lesl
1087
1109
 
1088
1110
  /***/ }),
1089
1111
 
1090
- /***/ "../LesliAudit/lib/vue/stores/analytics/visitors.js":
1091
- /*!**********************************************************!*\
1092
- !*** ../LesliAudit/lib/vue/stores/analytics/visitors.js ***!
1093
- \**********************************************************/
1112
+ /***/ "../LesliAudit/lib/vue/stores/analytics.js":
1113
+ /*!*************************************************!*\
1114
+ !*** ../LesliAudit/lib/vue/stores/analytics.js ***!
1115
+ \*************************************************/
1094
1116
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1095
1117
 
1096
1118
  "use strict";
1097
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useAnalytics: () => (/* binding */ useAnalytics)\n/* harmony export */ });\n/* harmony import */ var pinia__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! pinia */ \"./node_modules/pinia/dist/pinia.mjs\");\n/*\nCopyright (c) 2022, all rights reserved.\n\nAll the information provided by this platform is protected by international laws related to \nindustrial property, intellectual property, copyright and relative international laws. \nAll intellectual or industrial property rights of the code, texts, trade mark, design, \npictures and any other information belongs to the owner of this platform.\n\nWithout the written permission of the owner, any replication, modification,\ntransmission, publication is strictly forbidden.\n\nFor more information read the license file including with this software.\n\n// · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~\n// · \n*/\n\n// · \n\n\n// · \nconst useAnalytics = (0,pinia__WEBPACK_IMPORTED_MODULE_0__.defineStore)(\"analytics\", {\n state: () => {\n return {\n users: {\n loading: false,\n pagination: {},\n records: [],\n columns: [{\n field: 'email',\n label: 'User'\n }, {\n field: 'resources',\n label: 'Resources'\n }, {\n field: 'requests',\n label: 'Requests'\n }]\n },\n devices: {\n loading: false,\n pagination: {},\n records: [],\n columns: [{\n field: 'device',\n label: 'Device'\n }, {\n field: 'visits',\n label: 'Visits'\n }]\n },\n visitors: {\n loading: false,\n pagination: {},\n records: []\n },\n controllers: {\n loading: false,\n pagination: {},\n records: [],\n columns: [{\n field: 'request_controller',\n label: 'Controller'\n }, {\n field: 'requests',\n label: 'Requests'\n }]\n },\n trends: {\n loading: false,\n recordsDays: [],\n recordsHours: []\n }\n };\n },\n actions: {\n fetchVisits() {\n this.visitors.loading = true;\n this.http.get(this.url.audit(\"analytics/visitors\")).then(result => {\n this.visitors.records = result.reverse();\n }).finally(() => {\n this.visitors.loading = false;\n });\n },\n fetchUsers() {\n this.users.loading = true;\n this.http.get(this.url.audit(\"analytics/users\")).then(result => {\n this.users.records = result;\n }).finally(() => {\n this.users.loading = false;\n });\n },\n fetchDevices() {\n this.devices.loading = true;\n this.http.get(this.url.audit(\"analytics/devices\")).then(result => {\n this.devices.records = result;\n }).finally(() => {\n this.devices.loading = false;\n });\n },\n fetchControllers() {\n this.controllers.loading = true;\n this.http.get(this.url.audit(\"analytics/controllers\")).then(result => {\n this.controllers.records = result;\n }).finally(() => {\n this.controllers.loading = false;\n });\n },\n time(period, initalDate, endDate) {\n this.http.get(this.url.audit(\"analytics/trends\").filter({\n groupBy: [period],\n startDate: [initalDate],\n finalDate: [endDate]\n })).then(result => {\n if (period === 'day') {\n this.trends.recordsDays = result;\n } else if (period === 'hour') {\n this.trends.recordsHours = result;\n }\n }).finally(() => {\n this.loading = false;\n });\n }\n }\n});\n\n//# sourceURL=webpack://lesli/../LesliAudit/lib/vue/stores/analytics/visitors.js?");
1119
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useAnalytics: () => (/* binding */ useAnalytics)\n/* harmony export */ });\n/* harmony import */ var pinia__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! pinia */ \"./node_modules/pinia/dist/pinia.mjs\");\n/*\nCopyright (c) 2022, all rights reserved.\n\nAll the information provided by this platform is protected by international laws related to \nindustrial property, intellectual property, copyright and relative international laws. \nAll intellectual or industrial property rights of the code, texts, trade mark, design, \npictures and any other information belongs to the owner of this platform.\n\nWithout the written permission of the owner, any replication, modification,\ntransmission, publication is strictly forbidden.\n\nFor more information read the license file including with this software.\n\n// · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~\n// · \n*/\n\n// · \n\n\n// · \nconst useAnalytics = (0,pinia__WEBPACK_IMPORTED_MODULE_0__.defineStore)(\"analytics\", {\n state: () => {\n return {\n users: {\n loading: false,\n pagination: {},\n records: [],\n columns: [{\n field: 'email',\n label: 'User'\n }, {\n field: 'resources',\n label: 'Resources'\n }, {\n field: 'requests',\n label: 'Requests'\n }]\n },\n visitors: {\n loading: false,\n pagination: {},\n records: []\n },\n controllers: {\n loading: false,\n pagination: {},\n records: [],\n columns: [{\n field: 'request_controller',\n label: 'Controller'\n }, {\n field: 'requests',\n label: 'Requests'\n }]\n },\n trends: {\n loading: false,\n recordsDays: [],\n recordsHours: []\n }\n };\n },\n actions: {\n fetchVisits() {\n this.visitors.loading = true;\n this.http.get(this.url.audit(\"analytics/visitors\")).then(result => {\n this.visitors.records = result.reverse();\n }).finally(() => {\n this.visitors.loading = false;\n });\n },\n fetchUsers() {\n this.users.loading = true;\n this.http.get(this.url.audit(\"analytics/users\")).then(result => {\n this.users.records = result;\n }).finally(() => {\n this.users.loading = false;\n });\n },\n fetchControllers() {\n this.controllers.loading = true;\n this.http.get(this.url.audit(\"analytics/controllers\")).then(result => {\n this.controllers.records = result;\n }).finally(() => {\n this.controllers.loading = false;\n });\n },\n time(period, initalDate, endDate) {\n this.http.get(this.url.audit(\"analytics/trends\").filter({\n groupBy: [period],\n startDate: [initalDate],\n finalDate: [endDate]\n })).then(result => {\n if (period === 'day') {\n this.trends.recordsDays = result;\n } else if (period === 'hour') {\n this.trends.recordsHours = result;\n }\n }).finally(() => {\n this.loading = false;\n });\n }\n }\n});\n\n//# sourceURL=webpack://lesli/../LesliAudit/lib/vue/stores/analytics.js?");
1120
+
1121
+ /***/ }),
1122
+
1123
+ /***/ "../../enginesdev/lesli-js/source/debug/browser.js":
1124
+ /*!*********************************************************!*\
1125
+ !*** ../../enginesdev/lesli-js/source/debug/browser.js ***!
1126
+ \*********************************************************/
1127
+ /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
1128
+
1129
+ eval("/*\nLesli\n\nCopyright (c) 2020, Lesli Technologies, S. A.\n\nThis program is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nThis program is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with this program. If not, see <http://www.gnu.org/licenses/>.\n\nLesli JS - JavaScript utilities for JavaScript applications\n\nPowered by LesliTech\nBuilding a better future, one line of code at a time.\n\n@contact <hello@lesli.tech>\n@website <https://lesli.tech>\n@license GPLv3 http://www.gnu.org/licenses/gpl-3.0.en.html\n\n// · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~\n// · \n*/\n\n// · Loading node modules\nlet utils = __webpack_require__(/*! ./utils */ \"../../enginesdev/lesli-js/source/debug/utils.js\");\n\n// · \nclass BrowserDebugService {\n build(message, modulo, level) {\n return utils.buildMessage(message, modulo, level);\n }\n\n // · write information message\n log(message) {\n let modulo = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n console.log(utils.buildMessage(message, modulo, \"log\"));\n }\n\n // · write information message\n msg(message) {\n let modulo = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n console.log(utils.buildMessage(message, modulo, \"msg\"));\n }\n\n // · write informatie message\n info(message) {\n let modulo = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n console.info(\"%c\" + utils.buildMessage(message, modulo, \"info\"), utils.stylesForBrowser(\"info\"));\n }\n\n // · write success message\n success(message) {\n let modulo = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n console.log(utils.buildMessage(message, modulo, \"msg\"));\n }\n\n // · write warning message\n warn(message) {\n let modulo = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n console.warn(\"%c\" + utils.buildMessage(message, modulo, \"warn\"), utils.stylesForBrowser(\"warn\"));\n }\n\n // · write warning message\n error(message) {\n let modulo = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n console.error(\"%c\" + utils.buildMessage(message, modulo, \"error\"), utils.stylesForBrowser(\"error\"));\n }\n\n // · write warning message\n fatal(message) {\n let modulo = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n console.error(\"%c\" + utils.buildMessage(message, modulo, \"error\"), utils.stylesForBrowser(\"fatal\"));\n }\n message(title, messages) {\n let more_information = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n console.log(\"%c\" + title, \"color:#3689e6;font-size:35px;font-weight:600;line-height:1;\");\n if (typeof messages === \"string\") messages = [messages];\n console.log(\"%c\" + messages.join(\"\\n\"), \"background-color:#ffffff;color:#1a1a1a;font-size:18px;font-weight:400;line-height:1.1;\");\n if (more_information) {\n console.log(\"%c\" + more_information, \"background-color:#ffffff;color:#1a1a1a;font-size:14px;font-weight:400;line-height:2;\");\n }\n }\n lesli_message_warning() {\n let title = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"LESLI\";\n let support = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \"For mor information contact your system administrator\";\n this.message(title, [\"This is a browser feature intended for developers.\", \"For security reasons, DO NOT copy or paste any information, text, or code here.\"], support);\n }\n}\n\n// · \nmodule.exports = new BrowserDebugService();\n\n//# sourceURL=webpack://lesli/../../enginesdev/lesli-js/source/debug/browser.js?");
1130
+
1131
+ /***/ }),
1132
+
1133
+ /***/ "../../enginesdev/lesli-js/source/debug/utils.js":
1134
+ /*!*******************************************************!*\
1135
+ !*** ../../enginesdev/lesli-js/source/debug/utils.js ***!
1136
+ \*******************************************************/
1137
+ /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
1138
+
1139
+ eval("/*\nLesli\n\nCopyright (c) 2021, Lesli Technologies, S. A.\n\nThis program is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nThis program is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with this program. If not, see <http://www.gnu.org/licenses/>.\n\nLesli JS - JavaScript utilities for JavaScript applications\n\nPowered by LesliTech\nBuilding a better future, one line of code at a time.\n\n@contact <hello@lesli.tech>\n@website <https://lesli.tech>\n@license GPLv3 http://www.gnu.org/licenses/gpl-3.0.en.html\n\n// · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~\n// · \n*/\n\nvar dayjs = __webpack_require__(/*! dayjs */ \"./node_modules/dayjs/dayjs.min.js\");\n\n// · \nclass Utils {\n // · \n buildDate() {\n return dayjs().format(\"MM/DD HH:mm\").toString();\n }\n\n // · \n buildMessage(message, module, level) {\n // desire output format\n // [2010-01-17 11:43:37] [ERROR] (cheese module) - Cheese is too ripe!\n // [2010-01-17 11:43:37] [FATAL] (cheese module) - Cheese was breeding ground for listeria.\n let newMessage = `[${this.buildDate()}] [${level.toUpperCase()}]`;\n if (module) {\n newMessage += ` (${module})`;\n }\n newMessage = newMessage.concat(\" - \").concat(message);\n return newMessage;\n }\n\n // · \n stylesForBrowser(type) {\n let lineheight = \"1.5;\";\n let fontsize = \"14px;\";\n let padding = \"2px;\";\n let info = \"background-color:#3498db;color:#ffffff;\";\n let warn = \"background-color:#f1c40f;color:#000000;\";\n let error = \"background-color:#e74c3c;color:#ffffff;\";\n let fatal = \"background-color:#c0392b;color:#fff394;\";\n let success = \"background-color:##48c774;color:#000000;\";\n let style = \"\";\n switch (type) {\n case \"info\":\n style = info;\n break;\n case \"warn\":\n style = warn;\n break;\n case \"error\":\n style = error;\n break;\n case \"fatal\":\n style = fatal;\n break;\n case \"success\":\n style = success;\n break;\n }\n style += \"padding:\" + padding;\n style += \"font-size:\" + fontsize;\n style += \"line-height:\" + lineheight;\n return style;\n }\n\n // · \n print_r(data) {\n let level = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n let isArray = Array.isArray(data);\n let comma = \",\";\n let string = \"\";\n let padding_key = \"\";\n let padding_prop = \"\";\n let newline = \"\\n\";\n for (let i = 0; i < 4 * level; i++) {\n padding_prop += \" \";\n }\n if (level > 1) {\n padding_key = padding_prop.slice(0, padding_prop.length - 4);\n }\n if (typeof data == \"object\" && !Array.isArray(data)) {\n string += padding_key + \"{\" + newline;\n for (let property in data) {\n if (typeof data[property] == \"object\") {\n string += padding_prop + property + \": \" + this.print_r(data[property], level + 1) + comma + newline;\n } else {\n string += padding_prop + property + \": \" + data[property] + comma + newline;\n }\n }\n string += padding_key + \"}\";\n }\n if (typeof data == \"object\" && Array.isArray(data)) {\n string += \"[\" + newline;\n for (let property in data) {\n if (typeof data[property] == \"object\") {\n string += this.print_r(data[property], level + 1) + comma + newline;\n } else {\n string += padding_prop + data[property] + newline;\n }\n }\n string += padding_key + \"]\";\n }\n\n // trying to remove last comma if is the end of object or array\n //string = string.replace(/,\\n/g, \"0\")\n\n return string;\n }\n}\nmodule.exports = new Utils();\n\n//# sourceURL=webpack://lesli/../../enginesdev/lesli-js/source/debug/utils.js?");
1098
1140
 
1099
1141
  /***/ }),
1100
1142
 
@@ -1105,7 +1147,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
1105
1147
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1106
1148
 
1107
1149
  "use strict";
1108
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ editorKeypad: () => (/* reexport safe */ _editors_keypad_vue__WEBPACK_IMPORTED_MODULE_3__[\"default\"]),\n/* harmony export */ editorRichText: () => (/* reexport safe */ _editors_richtext_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"]),\n/* harmony export */ editorRichTextViewer: () => (/* reexport safe */ _editors_richtext_viewer_vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"]),\n/* harmony export */ lesliChartLine: () => (/* reexport safe */ _charts_line_line_vue__WEBPACK_IMPORTED_MODULE_0__[\"default\"])\n/* harmony export */ });\n/* harmony import */ var _charts_line_line_vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./charts/line/line.vue */ \"../../enginesdev/lesli-vue/source/components/charts/line/line.vue\");\n/* harmony import */ var _editors_richtext_viewer_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./editors/richtext-viewer.vue */ \"../../enginesdev/lesli-vue/source/components/editors/richtext-viewer.vue\");\n/* harmony import */ var _editors_richtext_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./editors/richtext.vue */ \"../../enginesdev/lesli-vue/source/components/editors/richtext.vue\");\n/* harmony import */ var _editors_keypad_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./editors/keypad.vue */ \"../../enginesdev/lesli-vue/source/components/editors/keypad.vue\");\n/*\nLesli\n\nCopyright (c) 2023, Lesli Technologies, S. A.\n\nThis program is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nThis program is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with this program. If not, see http://www.gnu.org/licenses/.\n\nLesli · Ruby on Rails SaaS Development Framework.\n\nMade with ♥ by https://www.lesli.tech\nBuilding a better future, one line of code at a time.\n\n@contact hello@lesli.tech\n@website https://www.lesli.dev\n@license GPLv3 http://www.gnu.org/licenses/gpl-3.0.en.html\n\n// · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~\n// · \n*/\n\n\n\n\n\n\n\n//# sourceURL=webpack://lesli/../../enginesdev/lesli-vue/source/components/index.js?");
1150
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ editorKeypad: () => (/* reexport safe */ _editors_keypad_vue__WEBPACK_IMPORTED_MODULE_4__[\"default\"]),\n/* harmony export */ editorRichText: () => (/* reexport safe */ _editors_richtext_vue__WEBPACK_IMPORTED_MODULE_3__[\"default\"]),\n/* harmony export */ editorRichTextViewer: () => (/* reexport safe */ _editors_richtext_viewer_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"]),\n/* harmony export */ lesliChartBar: () => (/* reexport safe */ _charts_bar_bar_vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"]),\n/* harmony export */ lesliChartLine: () => (/* reexport safe */ _charts_line_line_vue__WEBPACK_IMPORTED_MODULE_0__[\"default\"])\n/* harmony export */ });\n/* harmony import */ var _charts_line_line_vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./charts/line/line.vue */ \"../../enginesdev/lesli-vue/source/components/charts/line/line.vue\");\n/* harmony import */ var _charts_bar_bar_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./charts/bar/bar.vue */ \"../../enginesdev/lesli-vue/source/components/charts/bar/bar.vue\");\n/* harmony import */ var _editors_richtext_viewer_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./editors/richtext-viewer.vue */ \"../../enginesdev/lesli-vue/source/components/editors/richtext-viewer.vue\");\n/* harmony import */ var _editors_richtext_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./editors/richtext.vue */ \"../../enginesdev/lesli-vue/source/components/editors/richtext.vue\");\n/* harmony import */ var _editors_keypad_vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./editors/keypad.vue */ \"../../enginesdev/lesli-vue/source/components/editors/keypad.vue\");\n/*\nLesli\n\nCopyright (c) 2023, Lesli Technologies, S. A.\n\nThis program is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nThis program is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with this program. If not, see http://www.gnu.org/licenses/.\n\nLesli · Ruby on Rails SaaS Development Framework.\n\nMade with ♥ by https://www.lesli.tech\nBuilding a better future, one line of code at a time.\n\n@contact hello@lesli.tech\n@website https://www.lesli.dev\n@license GPLv3 http://www.gnu.org/licenses/gpl-3.0.en.html\n\n// · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~\n// · \n*/\n\n\n\n\n\n\n\n\n//# sourceURL=webpack://lesli/../../enginesdev/lesli-vue/source/components/index.js?");
1109
1151
 
1110
1152
  /***/ }),
1111
1153
 
@@ -1138,7 +1180,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
1138
1180
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1139
1181
 
1140
1182
  "use strict";
1141
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useLesliHttp: () => (/* binding */ useLesliHttp)\n/* harmony export */ });\n/* harmony import */ var axios__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! axios */ \"./node_modules/axios/lib/axios.js\");\n/* harmony import */ var lesli_js_debug_browser__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lesli-js/debug/browser */ \"./node_modules/lesli-js/debug/browser.js\");\n/* harmony import */ var lesli_js_debug_browser__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lesli_js_debug_browser__WEBPACK_IMPORTED_MODULE_0__);\n/*\nLesli\n\nCopyright (c) 2023, Lesli Technologies, S. A.\n\nThis program is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nThis program is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with this program. If not, see http://www.gnu.org/licenses/.\n\nLesli · Ruby on Rails SaaS Development Framework.\n\nMade with ♥ by https://www.lesli.tech\nBuilding a better future, one line of code at a time.\n\n@contact hello@lesli.tech\n@website https://www.lesli.dev\n@license GPLv3 http://www.gnu.org/licenses/gpl-3.0.en.html\n\n// · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~\n// · \n*/\n\n// · \n\n\n\n// · \nfunction useLesliHttp() {\n // Get authentication token from head meta tag\n let meta = document.querySelector('meta[name=\"csrf-token\"]');\n\n // initialize the token variable\n let token = \"\";\n\n // if meta tag was found\n if (meta) {\n token = meta.getAttribute(\"content\");\n }\n\n // create the vue 3 global property\n var axiosClient = axios__WEBPACK_IMPORTED_MODULE_1__[\"default\"].create({\n headers: {\n 'Content-Type': 'application/json;charset=UTF-8',\n 'X-CSRF-Token': token\n }\n });\n\n // request interceptor, here we can modify the request before send it to the server\n axiosClient.interceptors.request.use(function (config) {\n config.url = config.url.toString(\".json\");\n return config;\n }, function (error) {\n return Promise.reject(error);\n });\n\n // response interceptor, here we can modify the response received from the server\n axiosClient.interceptors.response.use(response => {\n return response.data;\n }, error => {\n // Return the action for \"action requested errors\"\n if (error.response.status == 490) {\n // Show a pretty error message in the console on every error\n lesli_js_debug_browser__WEBPACK_IMPORTED_MODULE_0___default().warn(error.config.url + ' : Action Required', `HTTP/${error.config.method.toUpperCase()}`);\n return Promise.reject({\n code: error.response.status,\n action: error.response.data.action,\n message: error.response.data.message\n });\n }\n let message = \"\";\n\n // check if custom message was sent\n if (error?.response?.data?.message && error?.response?.data?.message != \"\") {\n message = error?.response?.data?.message;\n } else {\n message = `Ajax ${error.config.method} to url ${error.config.url} ${error.message}`;\n }\n\n // return the formated message\n return Promise.reject({\n code: error.response.status,\n message: message,\n details: error?.response?.data?.details || []\n });\n });\n\n // does not work\n axiosClient.postFile = (url, formData) => {\n var headers = {\n 'Content-Type': 'multipart/form-data'\n };\n return axiosClient.post(url, formData, headers);\n };\n return axiosClient;\n}\n\n//# sourceURL=webpack://lesli/../../enginesdev/lesli-vue/source/composables/http/http.js?");
1183
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useLesliHttp: () => (/* binding */ useLesliHttp)\n/* harmony export */ });\n/* harmony import */ var axios__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! axios */ \"./node_modules/axios/lib/axios.js\");\n/* harmony import */ var lesli_js_debug_browser__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lesli-js/debug/browser */ \"../../enginesdev/lesli-js/source/debug/browser.js\");\n/* harmony import */ var lesli_js_debug_browser__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lesli_js_debug_browser__WEBPACK_IMPORTED_MODULE_0__);\n/*\nLesli\n\nCopyright (c) 2023, Lesli Technologies, S. A.\n\nThis program is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nThis program is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with this program. If not, see http://www.gnu.org/licenses/.\n\nLesli · Ruby on Rails SaaS Development Framework.\n\nMade with ♥ by https://www.lesli.tech\nBuilding a better future, one line of code at a time.\n\n@contact hello@lesli.tech\n@website https://www.lesli.dev\n@license GPLv3 http://www.gnu.org/licenses/gpl-3.0.en.html\n\n// · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~\n// · \n*/\n\n// · \n\n\n\n// · \nfunction useLesliHttp() {\n // Get authentication token from head meta tag\n let meta = document.querySelector('meta[name=\"csrf-token\"]');\n\n // initialize the token variable\n let token = \"\";\n\n // if meta tag was found\n if (meta) {\n token = meta.getAttribute(\"content\");\n }\n\n // create the vue 3 global property\n var axiosClient = axios__WEBPACK_IMPORTED_MODULE_1__[\"default\"].create({\n headers: {\n 'Content-Type': 'application/json;charset=UTF-8',\n 'X-CSRF-Token': token\n }\n });\n\n // request interceptor, here we can modify the request before send it to the server\n axiosClient.interceptors.request.use(function (config) {\n config.url = config.url.toString(\".json\");\n return config;\n }, function (error) {\n return Promise.reject(error);\n });\n\n // response interceptor, here we can modify the response received from the server\n axiosClient.interceptors.response.use(response => {\n return response.data;\n }, error => {\n // Return the action for \"action requested errors\"\n if (error.response.status == 490) {\n // Show a pretty error message in the console on every error\n lesli_js_debug_browser__WEBPACK_IMPORTED_MODULE_0___default().warn(error.config.url + ' : Action Required', `HTTP/${error.config.method.toUpperCase()}`);\n return Promise.reject({\n code: error.response.status,\n action: error.response.data.action,\n message: error.response.data.message\n });\n }\n let message = \"\";\n\n // check if custom message was sent\n if (error?.response?.data?.message && error?.response?.data?.message != \"\") {\n message = error?.response?.data?.message;\n } else {\n message = `Ajax ${error.config.method} to url ${error.config.url} ${error.message}`;\n }\n\n // return the formated message\n return Promise.reject({\n code: error.response.status,\n message: message,\n details: error?.response?.data?.details || []\n });\n });\n\n // does not work\n axiosClient.postFile = (url, formData) => {\n var headers = {\n 'Content-Type': 'multipart/form-data'\n };\n return axiosClient.post(url, formData, headers);\n };\n return axiosClient;\n}\n\n//# sourceURL=webpack://lesli/../../enginesdev/lesli-vue/source/composables/http/http.js?");
1142
1184
 
1143
1185
  /***/ }),
1144
1186
 
@@ -1171,7 +1213,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
1171
1213
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1172
1214
 
1173
1215
  "use strict";
1174
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useLesliUrl: () => (/* binding */ useLesliUrl)\n/* harmony export */ });\n/*\nLesli\n\nCopyright (c) 2023, Lesli Technologies, S. A.\n\nThis program is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nThis program is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with this program. If not, see http://www.gnu.org/licenses/.\n\nLesli · Ruby on Rails SaaS Development Framework.\n\nMade with ♥ by https://www.lesli.tech\nBuilding a better future, one line of code at a time.\n\n@contact hello@lesli.tech\n@website https://www.lesli.dev\n@license GPLv3 http://www.gnu.org/licenses/gpl-3.0.en.html\n\n// · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~\n// · \n*/\n\n// · URL #builder for Lesli\nclass LesliUrl {\n #params = \"\";\n #base_url = \"\";\n #query = {};\n #path = \"\";\n #url = \"\";\n constructor(base_url, path, params) {\n this.#base_url = base_url;\n this.#params = params;\n this.#path = path;\n }\n\n // build a url for resources mounted at root level\n // this happens on builders engines like MW.\n root(path, params) {\n this.#path = \"\";\n\n // process path template if provided\n if (path) this.#path = this.#path.concat(this.#parsePath(path, params));\n return this;\n }\n\n // build a url for a specific engine\n engine(engine, path, params) {\n // manually add a slash due we are not using native JS url builders\n engine = engine.concat(\"/\");\n\n // return url for the root of the engine\n if (!path) return this.root(engine, params);\n\n // include the engine as part of the path\n return this.root(engine.concat(path), params);\n }\n\n // insert order params into query string\n order(column) {\n let direction = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \"asc\";\n this.#query[\"orderBy\"] = column;\n if (direction) {\n this.#query[\"order\"] = direction;\n }\n return this.#build();\n }\n\n // add standard query param to request paginated data to the server\n paginate(page) {\n let perPage = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 15;\n this.#query[\"page\"] = page;\n this.#query[\"perPage\"] = perPage;\n return this.#build();\n }\n\n // add standard query param to request search to the server\n search(text) {\n if (!!text) {\n this.#query[\"search\"] = text;\n }\n return this.#build();\n }\n group(text) {\n if (!!text) {\n this.#query[\"group\"] = text;\n }\n return this.#build();\n }\n\n // add standard query params to request filtered data from the server\n filter(filters) {\n let keys = Object.keys(filters);\n if (!this.#query.f) {\n this.#query[\"f\"] = {};\n }\n keys.forEach(key => {\n this.#query.f[key] = filters[key].join(',');\n });\n return this.#build();\n }\n\n // allow to add custom query params\n query(key, value) {\n this.#query[key] = value;\n return this.#build();\n }\n\n // automatically add auth token if exists in the url query string\n tokenUrl() {\n let urlParams = new URLSearchParams(window.location.search);\n this.#query[\"t\"] = urlParams.get(\"t\");\n return this.#build();\n }\n\n // automatically add auth token if exists in the url query string as param\n tokenShared() {\n // get the token from a \"signed\" url with format:\n // /shared/public/:token/help/tickets/new\n // for this kind of \"signed\" url token is always at position 4 of the string\n let url = window.location.pathname.split('/')[3];\n\n // attach the token as opaque token so the public api is able authenticate the request\n this.#query[\"t\"] = url;\n return this.#build();\n }\n\n // convert the url object to string automatically if object as string is needed\n toString() {\n let extension = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n this.#build(extension);\n return this.#url.toString();\n }\n\n // alias for toString() method\n get s() {\n return this.toString();\n }\n\n // add json extension to the url \n json() {\n return this.toString(\".json\");\n }\n\n // add pdf extension to the url \n pdf() {\n return this.toString(\".pdf\");\n }\n\n // perform a redirect action after #build an url\n // be sure to call this method last always\n go() {\n this.#build();\n window.location.href = this.#url.toString();\n }\n\n // parse, join and create a well formated url object\n #build() {\n let extension = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n // root\n let url = \"/\";\n\n // if path exists for the url\n if (this.#path != \"\") {\n url = url.concat(this.#path);\n }\n\n // normally all the requests are sent to the internal Lesli api\n // so, the requests should include the json suffix\n if (extension) {\n url = url.concat(extension);\n }\n\n // concat query string if available\n url = url.concat(this.#parseQuery(this.#query));\n\n // #build a native URL object\n this.#url = url;\n\n // return this to enable methods chaining pattern\n return this;\n }\n\n // parse a string template into a string path\n // examples:\n // domain.com/user/:id, { id: 1 }\n // domain.com/user/:id, 1\n // result: domain.com/user/1\n // this is good to avoid string interpolation :)\n #parsePath(path) {\n let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n // shortcut to get specific resource through id\n if (typeof params == 'string' || typeof params == 'number') {\n params = {\n id: params\n };\n }\n\n // remaining params are useful if we want to work with the params\n // that does not belongs to a any part of the path template\n const remainingParams = {\n ...params\n };\n\n // compile the string template to assign values to the variables\n const renderedPath = path.replace(/:[_A-Za-z][_A-Za-z0-9]*/g, p => {\n let key = p.slice(1);\n delete remainingParams[key];\n return encodeURIComponent(params[key]);\n });\n for (let param in remainingParams) {\n this.#query[param] = remainingParams[param];\n }\n return renderedPath;\n }\n\n // convert a key value object into a standard queryString. This custom implementation\n // supports deep object parsing and array parsing\n // example: { name: {first: \"luis\"}, age: 25 }\n // result: domain.com?name[first]=luis&age=25\n #parseQuery(query) {\n function recursion(query, path) {\n if (Array.isArray(query)) {\n query.forEach(function (element) {\n recursion(element, path + \"[]\");\n });\n return;\n }\n if (query !== null && typeof query === \"object\") {\n Object.keys(query).forEach(function (param) {\n recursion(query[param], path + \"[\" + param + \"]\");\n });\n return;\n }\n data.push(path + \"=\" + query);\n }\n var data = [];\n Object.keys(query).forEach(function (param) {\n recursion(query[param], param);\n });\n if (data.length > 0) {\n return \"?\".concat(data.join(\"&\"));\n }\n return \"\";\n }\n}\nfunction useLesliUrl() {\n const root = \"/\";\n return {\n // · Redirect to specific url\n go() {\n let url = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"/\";\n document.location.href = url;\n },\n // · Get well formated url\n to() {\n let path = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n if (path) {\n return root.concat(path);\n }\n return root;\n },\n // · Build a url for core requests\n root(path) {\n let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return new LesliUrl().root(path, params);\n },\n // · Build a url for administration area\n profile(path) {\n let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return new LesliUrl().engine(\"administration/profile\", path, params);\n },\n // · Build a url for core administration area\n admin(path) {\n let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return new LesliUrl().engine(\"admin\", path, params);\n },\n // · Build a url for CloudAudit engine\n audit(path) {\n let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return new LesliUrl().engine(\"audit\", path, params);\n },\n // · Build a url for CloudBabel engine\n babel(path) {\n let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return new LesliUrl().engine(\"babel\", path, params);\n },\n // · Build a url for CloudBell engine\n bell(path) {\n let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return new LesliUrl().engine(\"bell\", path, params);\n },\n // · Build a url for CloudHelp engine\n help(path) {\n let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return new LesliUrl().engine(\"help\", path, params);\n },\n // · Build a url for CloudMailer engine\n mailer(path) {\n let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return new LesliUrl().engine(\"mailer\", path, params);\n },\n // · Build a url for CloudTalk engine\n talk(path) {\n let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return new LesliUrl().engine(\"talk\", path, params);\n },\n // · Build a url for CloudFocus engine\n focus(path) {\n let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return new LesliUrl().engine(\"focus\", path, params);\n },\n // · Build a url for CloudTime engine\n time(path) {\n let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return new LesliUrl().engine(\"time\", path, params);\n },\n // · Build a url for CloudDriver engine\n driver(path) {\n let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return new LesliUrl().engine(\"driver\", path, params);\n },\n // · Build a url for CloudSocial engine\n social(path) {\n let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return new LesliUrl().engine(\"social\", path, params);\n },\n // · Build a url for CloudWord engine\n word(path) {\n let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return new LesliUrl().engine(\"word\", path, params);\n },\n // · Build a url for CloudTeam engine\n team(path) {\n let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return new LesliUrl().engine(\"team\", path, params);\n },\n // · Build a url for CloudScraper engine\n scraper(path) {\n let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return new LesliUrl().engine(\"scraper\", path, params);\n },\n // · Build a url for CloudShared engine\n shared(path) {\n let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return new LesliUrl().engine(\"shared\", path, params);\n },\n // · Build a url for CloudAuthority engine\n authority(path) {\n let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return new LesliUrl().engine(\"authority\", path, params);\n }\n };\n}\n\n//# sourceURL=webpack://lesli/../../enginesdev/lesli-vue/source/composables/url/url.js?");
1216
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useLesliUrl: () => (/* binding */ useLesliUrl)\n/* harmony export */ });\n/*\nLesli\n\nCopyright (c) 2023, Lesli Technologies, S. A.\n\nThis program is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nThis program is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with this program. If not, see http://www.gnu.org/licenses/.\n\nLesli · Ruby on Rails SaaS Development Framework.\n\nMade with ♥ by https://www.lesli.tech\nBuilding a better future, one line of code at a time.\n\n@contact hello@lesli.tech\n@website https://www.lesli.dev\n@license GPLv3 http://www.gnu.org/licenses/gpl-3.0.en.html\n\n// · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~\n// · \n*/\n\n// · URL #builder for Lesli\nclass LesliUrl {\n #params = \"\";\n #base_url = \"\";\n #query = {};\n #path = \"\";\n #url = \"\";\n constructor(base_url, path, params) {\n this.#base_url = base_url;\n this.#params = params;\n this.#path = path;\n }\n\n // build a url for resources mounted at root level\n // this happens on builders engines like MW.\n root(path, params) {\n this.#path = \"\";\n\n // process path template if provided\n if (path) this.#path = this.#path.concat(this.#parsePath(path, params));\n return this;\n }\n\n // build a url for a specific engine\n engine(engine, path, params) {\n // manually add a slash due we are not using native JS url builders\n engine = engine.concat(\"/\");\n\n // return url for the root of the engine\n if (!path) return this.root(engine, params);\n\n // include the engine as part of the path\n return this.root(engine.concat(path), params);\n }\n\n // insert order params into query string\n order(column) {\n let direction = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \"asc\";\n this.#query[\"orderBy\"] = column;\n if (direction) {\n this.#query[\"order\"] = direction;\n }\n return this.#build();\n }\n\n // add standard query param to request paginated data to the server\n paginate(page) {\n let perPage = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 15;\n this.#query[\"page\"] = page;\n this.#query[\"perPage\"] = perPage;\n return this.#build();\n }\n\n // add standard query param to request search to the server\n search(text) {\n if (!!text) {\n this.#query[\"search\"] = text;\n }\n return this.#build();\n }\n group(text) {\n if (!!text) {\n this.#query[\"group\"] = text;\n }\n return this.#build();\n }\n\n // add standard query params to request filtered data from the server\n filter(filters) {\n let keys = Object.keys(filters);\n if (!this.#query.f) {\n this.#query[\"f\"] = {};\n }\n keys.forEach(key => {\n this.#query.f[key] = filters[key].join(',');\n });\n return this.#build();\n }\n\n // allow to add custom query params\n query(key, value) {\n this.#query[key] = value;\n return this.#build();\n }\n\n // automatically add auth token if exists in the url query string\n tokenUrl() {\n let urlParams = new URLSearchParams(window.location.search);\n this.#query[\"t\"] = urlParams.get(\"t\");\n return this.#build();\n }\n\n // automatically add auth token if exists in the url query string as param\n tokenShared() {\n // get the token from a \"signed\" url with format:\n // /shared/public/:token/help/tickets/new\n // for this kind of \"signed\" url token is always at position 4 of the string\n let url = window.location.pathname.split('/')[3];\n\n // attach the token as opaque token so the public api is able authenticate the request\n this.#query[\"t\"] = url;\n return this.#build();\n }\n\n // convert the url object to string automatically if object as string is needed\n toString() {\n let extension = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n this.#build(extension);\n return this.#url.toString();\n }\n\n // alias for toString() method\n get s() {\n return this.toString();\n }\n\n // add json extension to the url \n json() {\n return this.toString(\".json\");\n }\n\n // add pdf extension to the url \n pdf() {\n return this.toString(\".pdf\");\n }\n\n // perform a redirect action after #build an url\n // be sure to call this method last always\n go() {\n this.#build();\n window.location.href = this.#url.toString();\n }\n\n // parse, join and create a well formated url object\n #build() {\n let extension = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n // root\n let url = \"/\";\n\n // if path exists for the url\n if (this.#path != \"\") {\n url = url.concat(this.#path);\n }\n\n // normally all the requests are sent to the internal Lesli api\n // so, the requests should include the json suffix\n if (extension) {\n url = url.concat(extension);\n }\n\n // concat query string if available\n url = url.concat(this.#parseQuery(this.#query));\n\n // #build a native URL object\n this.#url = url;\n\n // return this to enable methods chaining pattern\n return this;\n }\n\n // parse a string template into a string path\n // examples:\n // domain.com/user/:id, { id: 1 }\n // domain.com/user/:id, 1\n // result: domain.com/user/1\n // this is good to avoid string interpolation :)\n #parsePath(path) {\n let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n // shortcut to get specific resource through id\n if (typeof params == 'string' || typeof params == 'number') {\n params = {\n id: params\n };\n }\n\n // remaining params are useful if we want to work with the params\n // that does not belongs to a any part of the path template\n const remainingParams = {\n ...params\n };\n\n // compile the string template to assign values to the variables\n const renderedPath = path.replace(/:[_A-Za-z][_A-Za-z0-9]*/g, p => {\n let key = p.slice(1);\n delete remainingParams[key];\n return encodeURIComponent(params[key]);\n });\n for (let param in remainingParams) {\n this.#query[param] = remainingParams[param];\n }\n return renderedPath;\n }\n\n // convert a key value object into a standard queryString. This custom implementation\n // supports deep object parsing and array parsing\n // example: { name: {first: \"luis\"}, age: 25 }\n // result: domain.com?name[first]=luis&age=25\n #parseQuery(query) {\n function recursion(query, path) {\n if (Array.isArray(query)) {\n query.forEach(function (element) {\n recursion(element, path + \"[]\");\n });\n return;\n }\n if (query !== null && typeof query === \"object\") {\n Object.keys(query).forEach(function (param) {\n recursion(query[param], path + \"[\" + param + \"]\");\n });\n return;\n }\n data.push(path + \"=\" + query);\n }\n var data = [];\n Object.keys(query).forEach(function (param) {\n recursion(query[param], param);\n });\n if (data.length > 0) {\n return \"?\".concat(data.join(\"&\"));\n }\n return \"\";\n }\n}\nfunction useLesliUrl() {\n const root = \"/\";\n return {\n // · Redirect to specific url\n go() {\n let url = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"/\";\n document.location.href = url;\n },\n // · Get well formated url\n to() {\n let path = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n if (path) {\n return root.concat(path);\n }\n return root;\n },\n // · Build a url for core requests\n root(path) {\n let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return new LesliUrl().root(path, params);\n },\n // · Build a url for administration area\n lesli(path) {\n let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return new LesliUrl().root(path, params);\n },\n // · Build a url for core administration area\n admin(path) {\n let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return new LesliUrl().engine(\"admin\", path, params);\n },\n // · Build a url for CloudAudit engine\n audit(path) {\n let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return new LesliUrl().engine(\"audit\", path, params);\n },\n // · Build a url for CloudBabel engine\n babel(path) {\n let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return new LesliUrl().engine(\"babel\", path, params);\n },\n // · Build a url for CloudBell engine\n bell(path) {\n let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return new LesliUrl().engine(\"bell\", path, params);\n },\n // · Build a url for CloudHelp engine\n help(path) {\n let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return new LesliUrl().engine(\"help\", path, params);\n },\n // · Build a url for CloudMailer engine\n mailer(path) {\n let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return new LesliUrl().engine(\"mailer\", path, params);\n },\n // · Build a url for CloudTalk engine\n talk(path) {\n let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return new LesliUrl().engine(\"talk\", path, params);\n },\n // · Build a url for CloudFocus engine\n focus(path) {\n let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return new LesliUrl().engine(\"focus\", path, params);\n },\n // · Build a url for CloudTime engine\n time(path) {\n let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return new LesliUrl().engine(\"time\", path, params);\n },\n // · Build a url for CloudDriver engine\n driver(path) {\n let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return new LesliUrl().engine(\"driver\", path, params);\n },\n // · Build a url for CloudSocial engine\n social(path) {\n let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return new LesliUrl().engine(\"social\", path, params);\n },\n // · Build a url for CloudWord engine\n word(path) {\n let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return new LesliUrl().engine(\"word\", path, params);\n },\n // · Build a url for CloudTeam engine\n team(path) {\n let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return new LesliUrl().engine(\"team\", path, params);\n },\n // · Build a url for CloudScraper engine\n scraper(path) {\n let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return new LesliUrl().engine(\"scraper\", path, params);\n },\n // · Build a url for CloudShared engine\n shared(path) {\n let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return new LesliUrl().engine(\"shared\", path, params);\n },\n // · Build a url for CloudAuthority engine\n authority(path) {\n let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return new LesliUrl().engine(\"authority\", path, params);\n }\n };\n}\n\n//# sourceURL=webpack://lesli/../../enginesdev/lesli-vue/source/composables/url/url.js?");
1175
1217
 
1176
1218
  /***/ }),
1177
1219
 
@@ -1293,36 +1335,6 @@ eval("!function(t,i){ true?module.exports=i():0}(this,(function(){\"use strict\"
1293
1335
 
1294
1336
  /***/ }),
1295
1337
 
1296
- /***/ "./node_modules/lesli-js/debug/browser.js":
1297
- /*!************************************************!*\
1298
- !*** ./node_modules/lesli-js/debug/browser.js ***!
1299
- \************************************************/
1300
- /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
1301
-
1302
- eval("/*\nLesli\n\nCopyright (c) 2021, Lesli Technologies, S. A.\n\nThis program is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nThis program is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with this program. If not, see <http://www.gnu.org/licenses/>.\n\nLesli JS - JavaScript utilities for JavaScript applications\n\nPowered by LesliTech\nBuilding a better future, one line of code at a time.\n\n@contact <hello@lesli.tech>\n@website <https://lesli.tech>\n@license GPLv3 http://www.gnu.org/licenses/gpl-3.0.en.html\n\n// · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~\n// · \n*/\n\nmodule.exports = __webpack_require__(/*! ../src/debug/browser */ \"./node_modules/lesli-js/src/debug/browser.js\")\n\n\n//# sourceURL=webpack://lesli/./node_modules/lesli-js/debug/browser.js?");
1303
-
1304
- /***/ }),
1305
-
1306
- /***/ "./node_modules/lesli-js/src/debug/browser.js":
1307
- /*!****************************************************!*\
1308
- !*** ./node_modules/lesli-js/src/debug/browser.js ***!
1309
- \****************************************************/
1310
- /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
1311
-
1312
- eval("/*\nLesli\n\nCopyright (c) 2020, Lesli Technologies, S. A.\n\nThis program is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nThis program is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with this program. If not, see <http://www.gnu.org/licenses/>.\n\nLesli JS - JavaScript utilities for JavaScript applications\n\nPowered by LesliTech\nBuilding a better future, one line of code at a time.\n\n@contact <hello@lesli.tech>\n@website <https://lesli.tech>\n@license GPLv3 http://www.gnu.org/licenses/gpl-3.0.en.html\n\n// · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~\n// · \n*/\n\n\n// · Loading node modules\nlet utils = __webpack_require__(/*! ./utils */ \"./node_modules/lesli-js/src/debug/utils.js\")\n\n\n// · \nclass BrowserDebugService {\n\n build(message, modulo, level) {\n return utils.buildMessage(message, modulo, level)\n }\n\n // · write information message\n log(message, modulo = null) {\n console.log(utils.buildMessage(message, modulo, \"log\"))\n }\n\n // · write information message\n msg(message, modulo = null) {\n console.log(utils.buildMessage(message, modulo, \"msg\"))\n }\n\n // · write informatie message\n info(message, modulo = null) {\n console.info(\"%c\"+utils.buildMessage(message, modulo, \"info\"), utils.stylesForBrowser(\"info\"))\n }\n\n // · write success message\n success(message, modulo = null) {\n console.log(utils.buildMessage(message, modulo, \"msg\"))\n }\n\n // · write warning message\n warn(message, modulo = null) {\n console.warn(\"%c\"+utils.buildMessage(message, modulo, \"warn\"), utils.stylesForBrowser(\"warn\"))\n }\n\n // · write warning message\n error(message, modulo = null) {\n console.error(\"%c\"+utils.buildMessage(message, modulo, \"error\"), utils.stylesForBrowser(\"error\"))\n }\n\n // · write warning message\n fatal(message, modulo = null) {\n console.error(\"%c\"+utils.buildMessage(message, modulo, \"error\"), utils.stylesForBrowser(\"fatal\"))\n }\n\n message(title, messages, more_information=null) {\n\n console.log(\"%c\"+title, \"color:#3689e6;font-size:35px;font-weight:600;line-height:1;\")\n\n if (typeof messages === \"string\") messages = [ messages ]\n\n console.log(\"%c\"+messages.join(\"\\n\"), \"background-color:#ffffff;color:#1a1a1a;font-size:18px;font-weight:400;line-height:1.1;\") \n\n if (more_information) {\n console.log(\"%c\"+more_information, \"background-color:#ffffff;color:#1a1a1a;font-size:14px;font-weight:400;line-height:2;\")\n }\n \n }\n\n lesli_message_warning(title=\"LESLI\", support=\"For mor information contact your system administrator\") {\n this.message(title, [\n \"This is a browser feature intended for developers.\",\n \"For security reasons, DO NOT copy or paste any information, text, or code here.\"\n ], support)\n }\n\n}\n\n// · \nmodule.exports = new BrowserDebugService()\n\n\n//# sourceURL=webpack://lesli/./node_modules/lesli-js/src/debug/browser.js?");
1313
-
1314
- /***/ }),
1315
-
1316
- /***/ "./node_modules/lesli-js/src/debug/utils.js":
1317
- /*!**************************************************!*\
1318
- !*** ./node_modules/lesli-js/src/debug/utils.js ***!
1319
- \**************************************************/
1320
- /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
1321
-
1322
- eval("/*\nLesli\n\nCopyright (c) 2021, Lesli Technologies, S. A.\n\nThis program is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nThis program is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with this program. If not, see <http://www.gnu.org/licenses/>.\n\nLesli JS - JavaScript utilities for JavaScript applications\n\nPowered by LesliTech\nBuilding a better future, one line of code at a time.\n\n@contact <hello@lesli.tech>\n@website <https://lesli.tech>\n@license GPLv3 http://www.gnu.org/licenses/gpl-3.0.en.html\n\n// · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~\n// · \n*/\n\n\nvar dayjs = __webpack_require__(/*! dayjs */ \"./node_modules/dayjs/dayjs.min.js\")\n\n\n// · \nclass Utils {\n\n // · \n buildDate() {\n\n return dayjs().format(\"MM/DD HH:mm\").toString()\n\n }\n\n // · \n buildMessage(message, module, level) {\n\n // desire output format\n // [2010-01-17 11:43:37] [ERROR] (cheese module) - Cheese is too ripe!\n // [2010-01-17 11:43:37] [FATAL] (cheese module) - Cheese was breeding ground for listeria.\n let newMessage = `[${this.buildDate()}] [${level.toUpperCase()}]`\n\n if (module) {\n newMessage += ` (${module})`\n }\n\n newMessage = newMessage.concat(\" - \").concat(message)\n\n return newMessage\n\n }\n\n // · \n stylesForBrowser(type) {\n\n let lineheight=\"1.5;\"\n let fontsize=\"14px;\"\n let padding=\"2px;\"\n\n let info = \"background-color:#3498db;color:#ffffff;\"\n let warn = \"background-color:#f1c40f;color:#000000;\"\n let error = \"background-color:#e74c3c;color:#ffffff;\"\n let fatal = \"background-color:#c0392b;color:#fff394;\"\n let success = \"background-color:##48c774;color:#000000;\"\n\n let style = \"\"\n\n switch (type) {\n case \"info\": style = info; break;\n case \"warn\": style = warn; break;\n case \"error\": style = error; break;\n case \"fatal\": style = fatal; break;\n case \"success\": style = success; break;\n }\n\n style += \"padding:\" + padding\n style += \"font-size:\" + fontsize\n style += \"line-height:\" + lineheight\n\n return style\n\n }\n\n // · \n print_r (data, level = 1) {\n\n let isArray = Array.isArray(data);\n\n let comma = \",\"\n let string = \"\"\n let padding_key = \"\"\n let padding_prop = \"\"\n let newline = \"\\n\"\n\n for(let i=0;i<(4*level);i++) {\n padding_prop += \" \"\n }\n\n if (level > 1) {\n padding_key = padding_prop.slice(0, padding_prop.length - 4)\n }\n\n if (typeof data == \"object\" && !Array.isArray(data)) {\n\n string += padding_key + \"{\" + newline\n\n for(let property in data) {\n\n if (typeof data[property] == \"object\") {\n string += padding_prop + property + \": \" + this.print_r(data[property], level+1) + comma + newline\n } else {\n string += padding_prop + property + \": \" + data[property] + comma + newline\n }\n \n }\n\n string += padding_key + \"}\"\n\n } \n\n if (typeof data == \"object\" && Array.isArray(data)) {\n\n string += \"[\" + newline\n\n for(let property in data) {\n\n if (typeof data[property] == \"object\") {\n string += this.print_r(data[property], level+1) + comma + newline\n } else {\n string += padding_prop + data[property] + newline\n }\n\n }\n\n string += padding_key + \"]\"\n\n }\n\n // trying to remove last comma if is the end of object or array\n //string = string.replace(/,\\n/g, \"0\")\n\n return string\n\n }\n\n}\n\nmodule.exports = new Utils\n\n\n//# sourceURL=webpack://lesli/./node_modules/lesli-js/src/debug/utils.js?");
1323
-
1324
- /***/ }),
1325
-
1326
1338
  /***/ "./node_modules/trix/dist/trix.css":
1327
1339
  /*!*****************************************!*\
1328
1340
  !*** ./node_modules/trix/dist/trix.css ***!
@@ -1499,25 +1511,36 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
1499
1511
 
1500
1512
  /***/ }),
1501
1513
 
1502
- /***/ "../LesliAudit/lib/vue/apps/analytics/requests.vue":
1503
- /*!*********************************************************!*\
1504
- !*** ../LesliAudit/lib/vue/apps/analytics/requests.vue ***!
1505
- \*********************************************************/
1514
+ /***/ "../LesliAudit/lib/vue/components/requests.vue":
1515
+ /*!*****************************************************!*\
1516
+ !*** ../LesliAudit/lib/vue/components/requests.vue ***!
1517
+ \*****************************************************/
1506
1518
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1507
1519
 
1508
1520
  "use strict";
1509
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _requests_vue_vue_type_template_id_ddcd7c0c__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./requests.vue?vue&type=template&id=ddcd7c0c */ \"../LesliAudit/lib/vue/apps/analytics/requests.vue?vue&type=template&id=ddcd7c0c\");\n/* harmony import */ var _requests_vue_vue_type_script_setup_true_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./requests.vue?vue&type=script&setup=true&lang=js */ \"../LesliAudit/lib/vue/apps/analytics/requests.vue?vue&type=script&setup=true&lang=js\");\n/* harmony import */ var _Lesli_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../Lesli/node_modules/vue-loader/dist/exportHelper.js */ \"./node_modules/vue-loader/dist/exportHelper.js\");\n\n\n\n\n;\nconst __exports__ = /*#__PURE__*/(0,_Lesli_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_requests_vue_vue_type_script_setup_true_lang_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], [['render',_requests_vue_vue_type_template_id_ddcd7c0c__WEBPACK_IMPORTED_MODULE_0__.render],['__file',\"LesliAudit/lib/vue/apps/analytics/requests.vue\"]])\n/* hot reload */\nif (false) {}\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (__exports__);\n\n//# sourceURL=webpack://lesli/../LesliAudit/lib/vue/apps/analytics/requests.vue?");
1521
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _requests_vue_vue_type_template_id_85d02fa6__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./requests.vue?vue&type=template&id=85d02fa6 */ \"../LesliAudit/lib/vue/components/requests.vue?vue&type=template&id=85d02fa6\");\n/* harmony import */ var _requests_vue_vue_type_script_setup_true_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./requests.vue?vue&type=script&setup=true&lang=js */ \"../LesliAudit/lib/vue/components/requests.vue?vue&type=script&setup=true&lang=js\");\n/* harmony import */ var _Lesli_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../Lesli/node_modules/vue-loader/dist/exportHelper.js */ \"./node_modules/vue-loader/dist/exportHelper.js\");\n\n\n\n\n;\nconst __exports__ = /*#__PURE__*/(0,_Lesli_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_requests_vue_vue_type_script_setup_true_lang_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], [['render',_requests_vue_vue_type_template_id_85d02fa6__WEBPACK_IMPORTED_MODULE_0__.render],['__file',\"LesliAudit/lib/vue/components/requests.vue\"]])\n/* hot reload */\nif (false) {}\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (__exports__);\n\n//# sourceURL=webpack://lesli/../LesliAudit/lib/vue/components/requests.vue?");
1510
1522
 
1511
1523
  /***/ }),
1512
1524
 
1513
- /***/ "../LesliAudit/lib/vue/apps/analytics/visitors.vue":
1514
- /*!*********************************************************!*\
1515
- !*** ../LesliAudit/lib/vue/apps/analytics/visitors.vue ***!
1516
- \*********************************************************/
1525
+ /***/ "../LesliAudit/lib/vue/components/visitors.vue":
1526
+ /*!*****************************************************!*\
1527
+ !*** ../LesliAudit/lib/vue/components/visitors.vue ***!
1528
+ \*****************************************************/
1517
1529
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1518
1530
 
1519
1531
  "use strict";
1520
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _visitors_vue_vue_type_template_id_37ff537b__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./visitors.vue?vue&type=template&id=37ff537b */ \"../LesliAudit/lib/vue/apps/analytics/visitors.vue?vue&type=template&id=37ff537b\");\n/* harmony import */ var _visitors_vue_vue_type_script_setup_true_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./visitors.vue?vue&type=script&setup=true&lang=js */ \"../LesliAudit/lib/vue/apps/analytics/visitors.vue?vue&type=script&setup=true&lang=js\");\n/* harmony import */ var _Lesli_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../Lesli/node_modules/vue-loader/dist/exportHelper.js */ \"./node_modules/vue-loader/dist/exportHelper.js\");\n\n\n\n\n;\nconst __exports__ = /*#__PURE__*/(0,_Lesli_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_visitors_vue_vue_type_script_setup_true_lang_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], [['render',_visitors_vue_vue_type_template_id_37ff537b__WEBPACK_IMPORTED_MODULE_0__.render],['__file',\"LesliAudit/lib/vue/apps/analytics/visitors.vue\"]])\n/* hot reload */\nif (false) {}\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (__exports__);\n\n//# sourceURL=webpack://lesli/../LesliAudit/lib/vue/apps/analytics/visitors.vue?");
1532
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _visitors_vue_vue_type_template_id_63fdf9ae__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./visitors.vue?vue&type=template&id=63fdf9ae */ \"../LesliAudit/lib/vue/components/visitors.vue?vue&type=template&id=63fdf9ae\");\n/* harmony import */ var _visitors_vue_vue_type_script_setup_true_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./visitors.vue?vue&type=script&setup=true&lang=js */ \"../LesliAudit/lib/vue/components/visitors.vue?vue&type=script&setup=true&lang=js\");\n/* harmony import */ var _Lesli_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../Lesli/node_modules/vue-loader/dist/exportHelper.js */ \"./node_modules/vue-loader/dist/exportHelper.js\");\n\n\n\n\n;\nconst __exports__ = /*#__PURE__*/(0,_Lesli_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_visitors_vue_vue_type_script_setup_true_lang_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], [['render',_visitors_vue_vue_type_template_id_63fdf9ae__WEBPACK_IMPORTED_MODULE_0__.render],['__file',\"LesliAudit/lib/vue/components/visitors.vue\"]])\n/* hot reload */\nif (false) {}\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (__exports__);\n\n//# sourceURL=webpack://lesli/../LesliAudit/lib/vue/components/visitors.vue?");
1533
+
1534
+ /***/ }),
1535
+
1536
+ /***/ "../../enginesdev/lesli-vue/source/components/charts/bar/bar.vue":
1537
+ /*!***********************************************************************!*\
1538
+ !*** ../../enginesdev/lesli-vue/source/components/charts/bar/bar.vue ***!
1539
+ \***********************************************************************/
1540
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1541
+
1542
+ "use strict";
1543
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _bar_vue_vue_type_template_id_986d3ba4__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./bar.vue?vue&type=template&id=986d3ba4 */ \"../../enginesdev/lesli-vue/source/components/charts/bar/bar.vue?vue&type=template&id=986d3ba4\");\n/* harmony import */ var _bar_vue_vue_type_script_setup_true_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./bar.vue?vue&type=script&setup=true&lang=js */ \"../../enginesdev/lesli-vue/source/components/charts/bar/bar.vue?vue&type=script&setup=true&lang=js\");\n/* harmony import */ var _engines_Lesli_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../engines/Lesli/node_modules/vue-loader/dist/exportHelper.js */ \"./node_modules/vue-loader/dist/exportHelper.js\");\n\n\n\n\n;\nconst __exports__ = /*#__PURE__*/(0,_engines_Lesli_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_bar_vue_vue_type_script_setup_true_lang_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], [['render',_bar_vue_vue_type_template_id_986d3ba4__WEBPACK_IMPORTED_MODULE_0__.render],['__file',\"enginesdev/lesli-vue/source/components/charts/bar/bar.vue\"]])\n/* hot reload */\nif (false) {}\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (__exports__);\n\n//# sourceURL=webpack://lesli/../../enginesdev/lesli-vue/source/components/charts/bar/bar.vue?");
1521
1544
 
1522
1545
  /***/ }),
1523
1546
 
@@ -1950,25 +1973,36 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
1950
1973
 
1951
1974
  /***/ }),
1952
1975
 
1953
- /***/ "../LesliAudit/lib/vue/apps/analytics/requests.vue?vue&type=script&setup=true&lang=js":
1954
- /*!********************************************************************************************!*\
1955
- !*** ../LesliAudit/lib/vue/apps/analytics/requests.vue?vue&type=script&setup=true&lang=js ***!
1956
- \********************************************************************************************/
1976
+ /***/ "../LesliAudit/lib/vue/components/requests.vue?vue&type=script&setup=true&lang=js":
1977
+ /*!****************************************************************************************!*\
1978
+ !*** ../LesliAudit/lib/vue/components/requests.vue?vue&type=script&setup=true&lang=js ***!
1979
+ \****************************************************************************************/
1957
1980
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1958
1981
 
1959
1982
  "use strict";
1960
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* reexport safe */ _Lesli_node_modules_babel_loader_lib_index_js_clonedRuleSet_8_use_Lesli_node_modules_vue_loader_dist_index_js_ruleSet_0_use_requests_vue_vue_type_script_setup_true_lang_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])\n/* harmony export */ });\n/* harmony import */ var _Lesli_node_modules_babel_loader_lib_index_js_clonedRuleSet_8_use_Lesli_node_modules_vue_loader_dist_index_js_ruleSet_0_use_requests_vue_vue_type_script_setup_true_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../Lesli/node_modules/babel-loader/lib/index.js??clonedRuleSet-8.use!../../../../../Lesli/node_modules/vue-loader/dist/index.js??ruleSet[0].use!./requests.vue?vue&type=script&setup=true&lang=js */ \"./node_modules/babel-loader/lib/index.js??clonedRuleSet-8.use!./node_modules/vue-loader/dist/index.js??ruleSet[0].use!../LesliAudit/lib/vue/apps/analytics/requests.vue?vue&type=script&setup=true&lang=js\");\n \n\n//# sourceURL=webpack://lesli/../LesliAudit/lib/vue/apps/analytics/requests.vue?");
1983
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* reexport safe */ _Lesli_node_modules_babel_loader_lib_index_js_clonedRuleSet_8_use_Lesli_node_modules_vue_loader_dist_index_js_ruleSet_0_use_requests_vue_vue_type_script_setup_true_lang_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])\n/* harmony export */ });\n/* harmony import */ var _Lesli_node_modules_babel_loader_lib_index_js_clonedRuleSet_8_use_Lesli_node_modules_vue_loader_dist_index_js_ruleSet_0_use_requests_vue_vue_type_script_setup_true_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../Lesli/node_modules/babel-loader/lib/index.js??clonedRuleSet-8.use!../../../../Lesli/node_modules/vue-loader/dist/index.js??ruleSet[0].use!./requests.vue?vue&type=script&setup=true&lang=js */ \"./node_modules/babel-loader/lib/index.js??clonedRuleSet-8.use!./node_modules/vue-loader/dist/index.js??ruleSet[0].use!../LesliAudit/lib/vue/components/requests.vue?vue&type=script&setup=true&lang=js\");\n \n\n//# sourceURL=webpack://lesli/../LesliAudit/lib/vue/components/requests.vue?");
1961
1984
 
1962
1985
  /***/ }),
1963
1986
 
1964
- /***/ "../LesliAudit/lib/vue/apps/analytics/visitors.vue?vue&type=script&setup=true&lang=js":
1965
- /*!********************************************************************************************!*\
1966
- !*** ../LesliAudit/lib/vue/apps/analytics/visitors.vue?vue&type=script&setup=true&lang=js ***!
1967
- \********************************************************************************************/
1987
+ /***/ "../LesliAudit/lib/vue/components/visitors.vue?vue&type=script&setup=true&lang=js":
1988
+ /*!****************************************************************************************!*\
1989
+ !*** ../LesliAudit/lib/vue/components/visitors.vue?vue&type=script&setup=true&lang=js ***!
1990
+ \****************************************************************************************/
1991
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1992
+
1993
+ "use strict";
1994
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* reexport safe */ _Lesli_node_modules_babel_loader_lib_index_js_clonedRuleSet_8_use_Lesli_node_modules_vue_loader_dist_index_js_ruleSet_0_use_visitors_vue_vue_type_script_setup_true_lang_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])\n/* harmony export */ });\n/* harmony import */ var _Lesli_node_modules_babel_loader_lib_index_js_clonedRuleSet_8_use_Lesli_node_modules_vue_loader_dist_index_js_ruleSet_0_use_visitors_vue_vue_type_script_setup_true_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../Lesli/node_modules/babel-loader/lib/index.js??clonedRuleSet-8.use!../../../../Lesli/node_modules/vue-loader/dist/index.js??ruleSet[0].use!./visitors.vue?vue&type=script&setup=true&lang=js */ \"./node_modules/babel-loader/lib/index.js??clonedRuleSet-8.use!./node_modules/vue-loader/dist/index.js??ruleSet[0].use!../LesliAudit/lib/vue/components/visitors.vue?vue&type=script&setup=true&lang=js\");\n \n\n//# sourceURL=webpack://lesli/../LesliAudit/lib/vue/components/visitors.vue?");
1995
+
1996
+ /***/ }),
1997
+
1998
+ /***/ "../../enginesdev/lesli-vue/source/components/charts/bar/bar.vue?vue&type=script&setup=true&lang=js":
1999
+ /*!**********************************************************************************************************!*\
2000
+ !*** ../../enginesdev/lesli-vue/source/components/charts/bar/bar.vue?vue&type=script&setup=true&lang=js ***!
2001
+ \**********************************************************************************************************/
1968
2002
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1969
2003
 
1970
2004
  "use strict";
1971
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* reexport safe */ _Lesli_node_modules_babel_loader_lib_index_js_clonedRuleSet_8_use_Lesli_node_modules_vue_loader_dist_index_js_ruleSet_0_use_visitors_vue_vue_type_script_setup_true_lang_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])\n/* harmony export */ });\n/* harmony import */ var _Lesli_node_modules_babel_loader_lib_index_js_clonedRuleSet_8_use_Lesli_node_modules_vue_loader_dist_index_js_ruleSet_0_use_visitors_vue_vue_type_script_setup_true_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../Lesli/node_modules/babel-loader/lib/index.js??clonedRuleSet-8.use!../../../../../Lesli/node_modules/vue-loader/dist/index.js??ruleSet[0].use!./visitors.vue?vue&type=script&setup=true&lang=js */ \"./node_modules/babel-loader/lib/index.js??clonedRuleSet-8.use!./node_modules/vue-loader/dist/index.js??ruleSet[0].use!../LesliAudit/lib/vue/apps/analytics/visitors.vue?vue&type=script&setup=true&lang=js\");\n \n\n//# sourceURL=webpack://lesli/../LesliAudit/lib/vue/apps/analytics/visitors.vue?");
2005
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* reexport safe */ _engines_Lesli_node_modules_babel_loader_lib_index_js_clonedRuleSet_8_use_engines_Lesli_node_modules_vue_loader_dist_index_js_ruleSet_0_use_bar_vue_vue_type_script_setup_true_lang_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])\n/* harmony export */ });\n/* harmony import */ var _engines_Lesli_node_modules_babel_loader_lib_index_js_clonedRuleSet_8_use_engines_Lesli_node_modules_vue_loader_dist_index_js_ruleSet_0_use_bar_vue_vue_type_script_setup_true_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../engines/Lesli/node_modules/babel-loader/lib/index.js??clonedRuleSet-8.use!../../../../../../engines/Lesli/node_modules/vue-loader/dist/index.js??ruleSet[0].use!./bar.vue?vue&type=script&setup=true&lang=js */ \"./node_modules/babel-loader/lib/index.js??clonedRuleSet-8.use!./node_modules/vue-loader/dist/index.js??ruleSet[0].use!../../enginesdev/lesli-vue/source/components/charts/bar/bar.vue?vue&type=script&setup=true&lang=js\");\n \n\n//# sourceURL=webpack://lesli/../../enginesdev/lesli-vue/source/components/charts/bar/bar.vue?");
1972
2006
 
1973
2007
  /***/ }),
1974
2008
 
@@ -2401,25 +2435,36 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
2401
2435
 
2402
2436
  /***/ }),
2403
2437
 
2404
- /***/ "../LesliAudit/lib/vue/apps/analytics/requests.vue?vue&type=template&id=ddcd7c0c":
2405
- /*!***************************************************************************************!*\
2406
- !*** ../LesliAudit/lib/vue/apps/analytics/requests.vue?vue&type=template&id=ddcd7c0c ***!
2407
- \***************************************************************************************/
2438
+ /***/ "../LesliAudit/lib/vue/components/requests.vue?vue&type=template&id=85d02fa6":
2439
+ /*!***********************************************************************************!*\
2440
+ !*** ../LesliAudit/lib/vue/components/requests.vue?vue&type=template&id=85d02fa6 ***!
2441
+ \***********************************************************************************/
2442
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2443
+
2444
+ "use strict";
2445
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: () => (/* reexport safe */ _Lesli_node_modules_babel_loader_lib_index_js_clonedRuleSet_8_use_Lesli_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_2_Lesli_node_modules_vue_loader_dist_index_js_ruleSet_0_use_requests_vue_vue_type_template_id_85d02fa6__WEBPACK_IMPORTED_MODULE_0__.render)\n/* harmony export */ });\n/* harmony import */ var _Lesli_node_modules_babel_loader_lib_index_js_clonedRuleSet_8_use_Lesli_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_2_Lesli_node_modules_vue_loader_dist_index_js_ruleSet_0_use_requests_vue_vue_type_template_id_85d02fa6__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../Lesli/node_modules/babel-loader/lib/index.js??clonedRuleSet-8.use!../../../../Lesli/node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!../../../../Lesli/node_modules/vue-loader/dist/index.js??ruleSet[0].use!./requests.vue?vue&type=template&id=85d02fa6 */ \"./node_modules/babel-loader/lib/index.js??clonedRuleSet-8.use!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use!../LesliAudit/lib/vue/components/requests.vue?vue&type=template&id=85d02fa6\");\n\n\n//# sourceURL=webpack://lesli/../LesliAudit/lib/vue/components/requests.vue?");
2446
+
2447
+ /***/ }),
2448
+
2449
+ /***/ "../LesliAudit/lib/vue/components/visitors.vue?vue&type=template&id=63fdf9ae":
2450
+ /*!***********************************************************************************!*\
2451
+ !*** ../LesliAudit/lib/vue/components/visitors.vue?vue&type=template&id=63fdf9ae ***!
2452
+ \***********************************************************************************/
2408
2453
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2409
2454
 
2410
2455
  "use strict";
2411
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: () => (/* reexport safe */ _Lesli_node_modules_babel_loader_lib_index_js_clonedRuleSet_8_use_Lesli_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_2_Lesli_node_modules_vue_loader_dist_index_js_ruleSet_0_use_requests_vue_vue_type_template_id_ddcd7c0c__WEBPACK_IMPORTED_MODULE_0__.render)\n/* harmony export */ });\n/* harmony import */ var _Lesli_node_modules_babel_loader_lib_index_js_clonedRuleSet_8_use_Lesli_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_2_Lesli_node_modules_vue_loader_dist_index_js_ruleSet_0_use_requests_vue_vue_type_template_id_ddcd7c0c__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../Lesli/node_modules/babel-loader/lib/index.js??clonedRuleSet-8.use!../../../../../Lesli/node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!../../../../../Lesli/node_modules/vue-loader/dist/index.js??ruleSet[0].use!./requests.vue?vue&type=template&id=ddcd7c0c */ \"./node_modules/babel-loader/lib/index.js??clonedRuleSet-8.use!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use!../LesliAudit/lib/vue/apps/analytics/requests.vue?vue&type=template&id=ddcd7c0c\");\n\n\n//# sourceURL=webpack://lesli/../LesliAudit/lib/vue/apps/analytics/requests.vue?");
2456
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: () => (/* reexport safe */ _Lesli_node_modules_babel_loader_lib_index_js_clonedRuleSet_8_use_Lesli_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_2_Lesli_node_modules_vue_loader_dist_index_js_ruleSet_0_use_visitors_vue_vue_type_template_id_63fdf9ae__WEBPACK_IMPORTED_MODULE_0__.render)\n/* harmony export */ });\n/* harmony import */ var _Lesli_node_modules_babel_loader_lib_index_js_clonedRuleSet_8_use_Lesli_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_2_Lesli_node_modules_vue_loader_dist_index_js_ruleSet_0_use_visitors_vue_vue_type_template_id_63fdf9ae__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../Lesli/node_modules/babel-loader/lib/index.js??clonedRuleSet-8.use!../../../../Lesli/node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!../../../../Lesli/node_modules/vue-loader/dist/index.js??ruleSet[0].use!./visitors.vue?vue&type=template&id=63fdf9ae */ \"./node_modules/babel-loader/lib/index.js??clonedRuleSet-8.use!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use!../LesliAudit/lib/vue/components/visitors.vue?vue&type=template&id=63fdf9ae\");\n\n\n//# sourceURL=webpack://lesli/../LesliAudit/lib/vue/components/visitors.vue?");
2412
2457
 
2413
2458
  /***/ }),
2414
2459
 
2415
- /***/ "../LesliAudit/lib/vue/apps/analytics/visitors.vue?vue&type=template&id=37ff537b":
2416
- /*!***************************************************************************************!*\
2417
- !*** ../LesliAudit/lib/vue/apps/analytics/visitors.vue?vue&type=template&id=37ff537b ***!
2418
- \***************************************************************************************/
2460
+ /***/ "../../enginesdev/lesli-vue/source/components/charts/bar/bar.vue?vue&type=template&id=986d3ba4":
2461
+ /*!*****************************************************************************************************!*\
2462
+ !*** ../../enginesdev/lesli-vue/source/components/charts/bar/bar.vue?vue&type=template&id=986d3ba4 ***!
2463
+ \*****************************************************************************************************/
2419
2464
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2420
2465
 
2421
2466
  "use strict";
2422
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: () => (/* reexport safe */ _Lesli_node_modules_babel_loader_lib_index_js_clonedRuleSet_8_use_Lesli_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_2_Lesli_node_modules_vue_loader_dist_index_js_ruleSet_0_use_visitors_vue_vue_type_template_id_37ff537b__WEBPACK_IMPORTED_MODULE_0__.render)\n/* harmony export */ });\n/* harmony import */ var _Lesli_node_modules_babel_loader_lib_index_js_clonedRuleSet_8_use_Lesli_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_2_Lesli_node_modules_vue_loader_dist_index_js_ruleSet_0_use_visitors_vue_vue_type_template_id_37ff537b__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../Lesli/node_modules/babel-loader/lib/index.js??clonedRuleSet-8.use!../../../../../Lesli/node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!../../../../../Lesli/node_modules/vue-loader/dist/index.js??ruleSet[0].use!./visitors.vue?vue&type=template&id=37ff537b */ \"./node_modules/babel-loader/lib/index.js??clonedRuleSet-8.use!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use!../LesliAudit/lib/vue/apps/analytics/visitors.vue?vue&type=template&id=37ff537b\");\n\n\n//# sourceURL=webpack://lesli/../LesliAudit/lib/vue/apps/analytics/visitors.vue?");
2467
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: () => (/* reexport safe */ _engines_Lesli_node_modules_babel_loader_lib_index_js_clonedRuleSet_8_use_engines_Lesli_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_2_engines_Lesli_node_modules_vue_loader_dist_index_js_ruleSet_0_use_bar_vue_vue_type_template_id_986d3ba4__WEBPACK_IMPORTED_MODULE_0__.render)\n/* harmony export */ });\n/* harmony import */ var _engines_Lesli_node_modules_babel_loader_lib_index_js_clonedRuleSet_8_use_engines_Lesli_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_2_engines_Lesli_node_modules_vue_loader_dist_index_js_ruleSet_0_use_bar_vue_vue_type_template_id_986d3ba4__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../engines/Lesli/node_modules/babel-loader/lib/index.js??clonedRuleSet-8.use!../../../../../../engines/Lesli/node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!../../../../../../engines/Lesli/node_modules/vue-loader/dist/index.js??ruleSet[0].use!./bar.vue?vue&type=template&id=986d3ba4 */ \"./node_modules/babel-loader/lib/index.js??clonedRuleSet-8.use!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use!../../enginesdev/lesli-vue/source/components/charts/bar/bar.vue?vue&type=template&id=986d3ba4\");\n\n\n//# sourceURL=webpack://lesli/../../enginesdev/lesli-vue/source/components/charts/bar/bar.vue?");
2423
2468
 
2424
2469
  /***/ }),
2425
2470