@mongoosejs/studio 0.1.16 → 0.1.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/backend/actions/Model/updateDocument.js +3 -0
- package/backend/actions/Model/updateDocuments.js +3 -0
- package/frontend/public/app.js +684 -447
- package/frontend/public/tw.css +99 -19
- package/frontend/src/array-utils.js +66 -0
- package/frontend/src/dashboard/dashboard.js +1 -1
- package/frontend/src/detail-array/detail-array.html +25 -3
- package/frontend/src/detail-array/detail-array.js +22 -6
- package/frontend/src/document-details/document-details.html +61 -12
- package/frontend/src/document-details/document-details.js +28 -0
- package/frontend/src/document-details/document-property/document-property.html +41 -3
- package/frontend/src/document-details/document-property/document-property.js +47 -2
- package/frontend/src/edit-array/edit-array.html +5 -2
- package/frontend/src/edit-array/edit-array.js +79 -23
- package/frontend/src/index.js +2 -1
- package/frontend/src/list-array/list-array.html +1 -1
- package/frontend/src/list-array/list-array.js +0 -2
- package/frontend/src/models/models.html +6 -1
- package/frontend/src/models/models.js +32 -0
- package/package.json +1 -1
- package/frontend/src/edit-array/edit-array.css +0 -3
- package/frontend/src/list-array/list-array.css +0 -8
package/frontend/public/app.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/******/ (() => { // webpackBootstrap
|
|
2
2
|
/******/ var __webpack_modules__ = ({
|
|
3
3
|
|
|
4
|
-
/***/ "./frontend/src sync recursive ^\\.\\/.*$"
|
|
4
|
+
/***/ "./frontend/src sync recursive ^\\.\\/.*$"
|
|
5
5
|
/*!*************************************!*\
|
|
6
6
|
!*** ./frontend/src/ sync ^\.\/.*$ ***!
|
|
7
7
|
\*************************************/
|
|
8
|
-
|
|
8
|
+
(module, __unused_webpack_exports, __webpack_require__) {
|
|
9
9
|
|
|
10
10
|
var map = {
|
|
11
11
|
"./": "./frontend/src/index.js",
|
|
@@ -13,6 +13,8 @@ var map = {
|
|
|
13
13
|
"./api.js": "./frontend/src/api.js",
|
|
14
14
|
"./appendCSS": "./frontend/src/appendCSS.js",
|
|
15
15
|
"./appendCSS.js": "./frontend/src/appendCSS.js",
|
|
16
|
+
"./array-utils": "./frontend/src/array-utils.js",
|
|
17
|
+
"./array-utils.js": "./frontend/src/array-utils.js",
|
|
16
18
|
"./async-button/async-button": "./frontend/src/async-button/async-button.js",
|
|
17
19
|
"./async-button/async-button.html": "./frontend/src/async-button/async-button.html",
|
|
18
20
|
"./async-button/async-button.js": "./frontend/src/async-button/async-button.js",
|
|
@@ -94,7 +96,6 @@ var map = {
|
|
|
94
96
|
"./document/document.html": "./frontend/src/document/document.html",
|
|
95
97
|
"./document/document.js": "./frontend/src/document/document.js",
|
|
96
98
|
"./edit-array/edit-array": "./frontend/src/edit-array/edit-array.js",
|
|
97
|
-
"./edit-array/edit-array.css": "./frontend/src/edit-array/edit-array.css",
|
|
98
99
|
"./edit-array/edit-array.html": "./frontend/src/edit-array/edit-array.html",
|
|
99
100
|
"./edit-array/edit-array.js": "./frontend/src/edit-array/edit-array.js",
|
|
100
101
|
"./edit-boolean/edit-boolean": "./frontend/src/edit-boolean/edit-boolean.js",
|
|
@@ -124,7 +125,6 @@ var map = {
|
|
|
124
125
|
"./index": "./frontend/src/index.js",
|
|
125
126
|
"./index.js": "./frontend/src/index.js",
|
|
126
127
|
"./list-array/list-array": "./frontend/src/list-array/list-array.js",
|
|
127
|
-
"./list-array/list-array.css": "./frontend/src/list-array/list-array.css",
|
|
128
128
|
"./list-array/list-array.html": "./frontend/src/list-array/list-array.html",
|
|
129
129
|
"./list-array/list-array.js": "./frontend/src/list-array/list-array.js",
|
|
130
130
|
"./list-default/list-default": "./frontend/src/list-default/list-default.js",
|
|
@@ -203,13 +203,13 @@ webpackContext.resolve = webpackContextResolve;
|
|
|
203
203
|
module.exports = webpackContext;
|
|
204
204
|
webpackContext.id = "./frontend/src sync recursive ^\\.\\/.*$";
|
|
205
205
|
|
|
206
|
-
/***/ }
|
|
206
|
+
/***/ },
|
|
207
207
|
|
|
208
|
-
/***/ "./frontend/src/api.js"
|
|
208
|
+
/***/ "./frontend/src/api.js"
|
|
209
209
|
/*!*****************************!*\
|
|
210
210
|
!*** ./frontend/src/api.js ***!
|
|
211
211
|
\*****************************/
|
|
212
|
-
|
|
212
|
+
(__unused_webpack_module, exports, __webpack_require__) {
|
|
213
213
|
|
|
214
214
|
"use strict";
|
|
215
215
|
|
|
@@ -571,13 +571,13 @@ if (window.MONGOOSE_STUDIO_CONFIG.isLambda) {
|
|
|
571
571
|
}
|
|
572
572
|
|
|
573
573
|
|
|
574
|
-
/***/ }
|
|
574
|
+
/***/ },
|
|
575
575
|
|
|
576
|
-
/***/ "./frontend/src/appendCSS.js"
|
|
576
|
+
/***/ "./frontend/src/appendCSS.js"
|
|
577
577
|
/*!***********************************!*\
|
|
578
578
|
!*** ./frontend/src/appendCSS.js ***!
|
|
579
579
|
\***********************************/
|
|
580
|
-
|
|
580
|
+
(module) {
|
|
581
581
|
|
|
582
582
|
"use strict";
|
|
583
583
|
|
|
@@ -592,24 +592,101 @@ module.exports = function appendCSS(css) {
|
|
|
592
592
|
style.appendChild(document.createTextNode(css));
|
|
593
593
|
};
|
|
594
594
|
|
|
595
|
-
/***/ }
|
|
595
|
+
/***/ },
|
|
596
596
|
|
|
597
|
-
/***/ "./frontend/src/
|
|
597
|
+
/***/ "./frontend/src/array-utils.js"
|
|
598
|
+
/*!*************************************!*\
|
|
599
|
+
!*** ./frontend/src/array-utils.js ***!
|
|
600
|
+
\*************************************/
|
|
601
|
+
(module, __unused_webpack_exports, __webpack_require__) {
|
|
602
|
+
|
|
603
|
+
"use strict";
|
|
604
|
+
|
|
605
|
+
|
|
606
|
+
const { inspect } = __webpack_require__(/*! node-inspect-extracted */ "./node_modules/node-inspect-extracted/dist/inspect.js");
|
|
607
|
+
|
|
608
|
+
/**
|
|
609
|
+
* Format a value for display in array views
|
|
610
|
+
* @param {*} item - The item to format
|
|
611
|
+
* @returns {string} - Formatted string representation
|
|
612
|
+
*/
|
|
613
|
+
function formatValue(item) {
|
|
614
|
+
if (item == null) {
|
|
615
|
+
return 'null';
|
|
616
|
+
}
|
|
617
|
+
if (typeof item === 'object') {
|
|
618
|
+
return inspect(item, { maxArrayLength: 50 });
|
|
619
|
+
}
|
|
620
|
+
return String(item);
|
|
621
|
+
}
|
|
622
|
+
|
|
623
|
+
/**
|
|
624
|
+
* Check if an item is a plain object (not array, not null)
|
|
625
|
+
* @param {*} item - The item to check
|
|
626
|
+
* @returns {boolean} - True if item is a plain object
|
|
627
|
+
*/
|
|
628
|
+
function isObjectItem(item) {
|
|
629
|
+
return item != null && typeof item === 'object' && !Array.isArray(item) && item.constructor === Object;
|
|
630
|
+
}
|
|
631
|
+
|
|
632
|
+
/**
|
|
633
|
+
* Get the keys of an object item
|
|
634
|
+
* @param {*} item - The item to get keys from
|
|
635
|
+
* @returns {string[]} - Array of keys, or empty array if not an object
|
|
636
|
+
*/
|
|
637
|
+
function getItemKeys(item) {
|
|
638
|
+
if (!isObjectItem(item)) {
|
|
639
|
+
return [];
|
|
640
|
+
}
|
|
641
|
+
return Object.keys(item);
|
|
642
|
+
}
|
|
643
|
+
|
|
644
|
+
/**
|
|
645
|
+
* Format a specific value from an object item by key
|
|
646
|
+
* @param {*} item - The object item
|
|
647
|
+
* @param {string} key - The key to get the value for
|
|
648
|
+
* @returns {string} - Formatted string representation of the value
|
|
649
|
+
*/
|
|
650
|
+
function formatItemValue(item, key) {
|
|
651
|
+
const value = item[key];
|
|
652
|
+
if (value === null) {
|
|
653
|
+
return 'null';
|
|
654
|
+
}
|
|
655
|
+
if (value === undefined) {
|
|
656
|
+
return 'undefined';
|
|
657
|
+
}
|
|
658
|
+
if (typeof value === 'object') {
|
|
659
|
+
return inspect(value, { maxArrayLength: 50 });
|
|
660
|
+
}
|
|
661
|
+
return String(value);
|
|
662
|
+
}
|
|
663
|
+
|
|
664
|
+
module.exports = {
|
|
665
|
+
formatValue,
|
|
666
|
+
isObjectItem,
|
|
667
|
+
getItemKeys,
|
|
668
|
+
formatItemValue
|
|
669
|
+
};
|
|
670
|
+
|
|
671
|
+
|
|
672
|
+
/***/ },
|
|
673
|
+
|
|
674
|
+
/***/ "./frontend/src/async-button/async-button.html"
|
|
598
675
|
/*!*****************************************************!*\
|
|
599
676
|
!*** ./frontend/src/async-button/async-button.html ***!
|
|
600
677
|
\*****************************************************/
|
|
601
|
-
|
|
678
|
+
(module) {
|
|
602
679
|
|
|
603
680
|
"use strict";
|
|
604
681
|
module.exports = "<button v-bind=\"attrsToBind\" :disabled=\"isDisabled\" @click=\"handleClick\">\n <div v-if=\"status === 'in_progress'\" style=\"text-align: center\">\n <svg style=\"height: 1em\" class=\"mx-auto\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n <g>\n <circle cx=\"12\" cy=\"12\" r=\"10\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" opacity=\"0.3\" />\n <path d=\"M12 2a10 10 0 0 1 10 10\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\">\n <animateTransform attributeName=\"transform\" type=\"rotate\" from=\"0 12 12\" to=\"360 12 12\" dur=\"1s\" repeatCount=\"indefinite\" />\n </path>\n </g>\n </svg>\n </div>\n <slot v-if=\"status == 'success' || status == 'init'\"></slot>\n</button>\n";
|
|
605
682
|
|
|
606
|
-
/***/ }
|
|
683
|
+
/***/ },
|
|
607
684
|
|
|
608
|
-
/***/ "./frontend/src/async-button/async-button.js"
|
|
685
|
+
/***/ "./frontend/src/async-button/async-button.js"
|
|
609
686
|
/*!***************************************************!*\
|
|
610
687
|
!*** ./frontend/src/async-button/async-button.js ***!
|
|
611
688
|
\***************************************************/
|
|
612
|
-
|
|
689
|
+
(module, __unused_webpack_exports, __webpack_require__) {
|
|
613
690
|
|
|
614
691
|
"use strict";
|
|
615
692
|
|
|
@@ -662,24 +739,24 @@ module.exports = app => app.component('async-button', {
|
|
|
662
739
|
});
|
|
663
740
|
|
|
664
741
|
|
|
665
|
-
/***/ }
|
|
742
|
+
/***/ },
|
|
666
743
|
|
|
667
|
-
/***/ "./frontend/src/chat/chat-message-script/chat-message-script.html"
|
|
744
|
+
/***/ "./frontend/src/chat/chat-message-script/chat-message-script.html"
|
|
668
745
|
/*!************************************************************************!*\
|
|
669
746
|
!*** ./frontend/src/chat/chat-message-script/chat-message-script.html ***!
|
|
670
747
|
\************************************************************************/
|
|
671
|
-
|
|
748
|
+
(module) {
|
|
672
749
|
|
|
673
750
|
"use strict";
|
|
674
751
|
module.exports = "<div class=\"relative border rounded bg-gray-100 text-black text-sm overflow-hidden\">\n <div class=\"flex border-b pt-[1px] text-xs font-medium bg-gray-200\">\n <button\n class=\"px-3 py-1 border-r border-gray-300 hover:bg-green-300\"\n :class=\"{'bg-gray-300': activeTab === 'code', 'bg-green-300': activeTab === 'code'}\"\n @click=\"activeTab = 'code'\">\n Code\n </button>\n <button\n class=\"px-3 py-1 hover:bg-green-300\"\n :class=\"{'bg-green-300': activeTab === 'output'}\"\n @click=\"activeTab = 'output'\">\n Output\n </button>\n <div class=\"ml-auto mr-1 flex\">\n <button\n v-if=\"activeTab === 'output'\"\n class=\"px-2 py-1 mr-1 text-xs bg-gray-500 text-white border-none rounded cursor-pointer hover:bg-gray-600 transition-colors flex items-center\"\n @click=\"copyOutput\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"h-3 w-3\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M8 5H6a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2v-1M8 5a2 2 0 002 2h2a2 2 0 002-2M8 5a2 2 0 012-2h2a2 2 0 012 2m0 0h2a2 2 0 012 2v3m2 4H10m0 0l3-3m-3 3l3 3\" />\n </svg>\n </button>\n <button\n v-if=\"activeTab === 'output'\"\n class=\"px-2 py-1 mr-1 text-xs bg-blue-500 text-white border-none rounded cursor-pointer hover:bg-blue-600 transition-colors flex items-center\"\n @click=\"openDetailModal\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"h-3 w-3\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M4 8V4m0 0h4M4 4l5 5m11-1V4m0 0h-4m4 0l-5 5M4 16v4m0 0h4m-4 0l5-5m11 1v4m0 0h-4m4 0l-5-5\" />\n </svg>\n </button>\n <button\n v-if=\"activeTab === 'code' && !isEditing\"\n class=\"px-2 py-1 mr-1 text-xs bg-gray-500 text-white border-none rounded cursor-pointer hover:bg-gray-600 transition-colors flex items-center\"\n @click.stop=\"startEditing\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"h-3 w-3\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\n <path d=\"M13.586 3.586a2 2 0 112.828 2.828l-.793.793-2.828-2.828.793-.793zM4 13.5V16h2.5l7.086-7.086-2.828-2.828L4 13.5z\" />\n </svg>\n </button>\n <async-button\n v-if=\"!isEditing\"\n class=\"px-2 py-1 text-xs bg-green-500 text-white border-none rounded cursor-pointer hover:bg-green-600 transition-colors disabled:bg-gray-400\"\n @click=\"executeScript\">\n Execute\n </async-button>\n <div class=\"relative ml-1\" ref=\"dropdown\">\n <button\n @click.stop=\"toggleDropdown\"\n class=\"px-1 py-1 text-xs hover:bg-gray-300 rounded flex items-center\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"h-4 w-4\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\n <path d=\"M10 6a2 2 0 110-4 2 2 0 010 4zm0 6a2 2 0 110-4 2 2 0 010 4zm0 6a2 2 0 110-4 2 2 0 010 4z\" />\n </svg>\n </button>\n <div\n v-if=\"showDropdown\"\n class=\"absolute right-0 z-10 mt-1 w-64 origin-top-right rounded-md bg-white py-1 shadow-lg ring-1 ring-black/5\">\n <button\n class=\"block w-full text-left px-4 py-2 text-xs text-gray-700 hover:bg-gray-100\"\n @click=\"openCreateDashboardModal(); showDropdown = false\">\n Create Dashboard\n </button>\n <button\n v-if=\"canOverwriteDashboard\"\n class=\"block w-full text-left px-4 py-2 text-xs text-gray-700 hover:bg-gray-100\"\n @click=\"openOverwriteDashboardConfirmation(); showDropdown = false\">\n Overwrite Dashboard\n </button>\n <button\n class=\"block w-full text-left px-4 py-2 text-xs text-gray-700 hover:bg-gray-100\"\n @click=\"$emit('copyMessage'); showDropdown = false\">\n Copy Full Message\n </button>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"p-3 max-h-[50vh] max-w-[calc(100vw-4rem)] lg:max-w-[calc(100vw-20rem)] overflow-y-auto\" v-show=\"activeTab === 'code'\">\n <div v-if=\"isEditing\" class=\"flex flex-col space-y-2\">\n <div class=\"border border-gray-200\">\n <textarea ref=\"scriptEditor\" class=\"w-full h-[45vh]\" @input=\"handleScriptInput\"></textarea>\n </div>\n <div class=\"flex justify-end gap-2\">\n <button\n class=\"px-2 py-1 text-xs bg-gray-300 text-gray-800 border-none rounded cursor-pointer hover:bg-gray-400 transition-colors\"\n @click.stop=\"cancelEditing\">\n Cancel\n </button>\n <async-button\n class=\"px-2 py-1 text-xs bg-green-500 text-white border-none rounded cursor-pointer hover:bg-green-600 transition-colors disabled:bg-gray-400\"\n @click=\"executeScript\">\n Execute\n </async-button>\n </div>\n </div>\n <pre v-else class=\"whitespace-pre-wrap\"><code v-text=\"script\" ref=\"code\" :class=\"'language-' + language\"></code></pre>\n </div>\n\n <div class=\"p-3 whitespace-pre-wrap max-h-[50vh] overflow-y-auto bg-white border-t max-w-[calc(100vw-4rem)] lg:max-w-[calc(100vw-20rem)] relative\" v-show=\"activeTab === 'output'\">\n <dashboard-chart v-if=\"message.executionResult?.output?.$chart\" :value=\"message.executionResult?.output\" />\n <dashboard-map v-else-if=\"message.executionResult?.output?.$featureCollection\" :value=\"message.executionResult?.output\" />\n <pre v-else>{{ message.executionResult?.output || 'No output' }}</pre>\n\n <div v-if=\"message.executionResult?.logs?.length\" class=\"mt-3 pt-3 border-t border-gray-200\">\n <div class=\"text-xs font-semibold text-gray-600 uppercase tracking-wide\">Console</div>\n <pre class=\"mt-1 bg-gray-100 text-gray-900 p-3 rounded whitespace-pre-wrap overflow-x-auto max-h-[280px]\">{{ message.executionResult.logs }}</pre>\n </div>\n </div>\n\n <modal ref=\"outputModal\" v-if=\"showDetailModal\" containerClass=\"!h-[90vh] !w-[90vw]\">\n <template #body>\n <div class=\"absolute font-mono right-1 top-1 cursor-pointer text-xl\" @click=\"showDetailModal = false;\">×</div>\n <div class=\"h-full overflow-auto\">\n <dashboard-chart v-if=\"message.executionResult?.output?.$chart\" :value=\"message.executionResult?.output\" :responsive=\"true\" />\n <dashboard-map\n v-else-if=\"message.executionResult?.output?.$featureCollection\"\n :value=\"message.executionResult?.output\"\n height=\"80vh\" />\n <pre v-else class=\"whitespace-pre-wrap\">{{ message.executionResult?.output || 'No output' }}</pre>\n </div>\n </template>\n </modal>\n <modal v-if=\"showCreateDashboardModal\">\n <template #body>\n <div class=\"modal-exit\" @click=\"showCreateDashboardModal = false\">×</div>\n <div>\n <div class=\"mt-4 text-gray-900 font-semibold\">Create Dashboard</div>\n <div class=\"mt-4\">\n <label class=\"block text-sm font-medium leading-6 text-gray-900\">Title</label>\n <div class=\"mt-2\">\n <div class=\"w-full flex rounded-md shadow-sm ring-1 ring-inset ring-gray-300 focus-within:ring-2 focus-within:ring-inset focus-within:ring-teal-600\">\n <input type=\"text\" v-model=\"newDashboardTitle\" class=\"outline-none block flex-1 border-0 bg-transparent py-1.5 pl-1 text-gray-900 placeholder:text-gray-400 focus:ring-0 sm:text-sm sm:leading-6\" placeholder=\"My Dashboard\">\n </div>\n </div>\n </div>\n <div class=\"my-4\">\n <label class=\"block text-sm font-medium leading-6 text-gray-900\">Code</label>\n <div class=\"border border-gray-200\">\n <textarea class=\"p-2 h-[300px] w-full\" ref=\"dashboardCodeEditor\"></textarea>\n </div>\n </div>\n <async-button\n @click=\"createDashboardFromScript\"\n class=\"rounded-md bg-teal-600 px-2.5 py-1.5 text-sm font-semibold text-white shadow-sm hover:bg-teal-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-teal-600\">\n Submit\n </async-button>\n <div v-if=\"createError\" class=\"rounded-md bg-red-50 p-4 mt-1\">\n <div class=\"flex\">\n <div class=\"flex-shrink-0\">\n <svg class=\"h-5 w-5 text-red-400\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\n <path fill-rule=\"evenodd\" d=\"M10 18a8 8 0 100-16 8 8 0 000 16zM8.28 7.22a.75.75 0 00-1.06 1.06L8.94 10l-1.72 1.72a.75.75 0 101.06 1.06L10 11.06l1.72 1.72a.75.75 0 101.06-1.06L11.06 10l1.72-1.72a.75.75 0 00-1.06-1.06L10 8.94 8.28 7.22z\" clip-rule=\"evenodd\" />\n </svg>\n </div>\n <div class=\"ml-3\">\n <h3 class=\"text-sm font-medium text-red-800\">Error</h3>\n <div class=\"mt-2 text-sm text-red-700\">\n {{createError}}\n </div>\n </div>\n </div>\n </div>\n </div>\n </template>\n </modal>\n <modal v-if=\"showOverwriteDashboardConfirmationModal\">\n <template #body>\n <div class=\"modal-exit\" @click=\"showOverwriteDashboardConfirmationModal = false\">×</div>\n <div>\n <div class=\"mt-4 text-gray-900 font-semibold\">Overwrite Dashboard</div>\n <p class=\"mt-2 text-sm text-gray-700\">\n This will replace the linked dashboard's code with the script below.\n </p>\n <p class=\"mt-1 text-xs text-gray-600 break-all\" v-if=\"targetDashboardId\">\n Dashboard ID: {{ targetDashboardId }}\n </p>\n <div class=\"my-4 border border-gray-200 bg-gray-50 rounded\">\n <pre class=\"p-2 h-[300px] overflow-auto whitespace-pre-wrap text-xs\">{{ overwriteDashboardCode }}</pre>\n </div>\n <div class=\"flex items-center gap-2\">\n <async-button\n @click=\"confirmOverwriteDashboard\"\n class=\"rounded-md bg-teal-600 px-2.5 py-1.5 text-sm font-semibold text-white shadow-sm hover:bg-teal-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-teal-600\">\n Confirm Overwrite\n </async-button>\n <button\n class=\"px-2.5 py-1.5 rounded-md text-sm font-semibold text-gray-700 bg-gray-200 hover:bg-gray-300\"\n @click=\"showOverwriteDashboardConfirmationModal = false\">\n Cancel\n </button>\n </div>\n <div v-if=\"overwriteError\" class=\"rounded-md bg-red-50 p-4 mt-3\">\n <div class=\"flex\">\n <div class=\"flex-shrink-0\">\n <svg class=\"h-5 w-5 text-red-400\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\n <path fill-rule=\"evenodd\" d=\"M10 18a8 8 0 100-16 8 8 0 000 16zM8.28 7.22a.75.75 0 00-1.06 1.06L8.94 10l-1.72 1.72a.75.75 0 101.06 1.06L10 11.06l1.72 1.72a.75.75 0 101.06-1.06L11.06 10l1.72-1.72a.75.75 0 00-1.06-1.06L10 8.94 8.28 7.22z\" clip-rule=\"evenodd\" />\n </svg>\n </div>\n <div class=\"ml-3\">\n <h3 class=\"text-sm font-medium text-red-800\">Error</h3>\n <div class=\"mt-2 text-sm text-red-700\">\n {{overwriteError}}\n </div>\n </div>\n </div>\n </div>\n </div>\n </template>\n </modal>\n</div>\n";
|
|
675
752
|
|
|
676
|
-
/***/ }
|
|
753
|
+
/***/ },
|
|
677
754
|
|
|
678
|
-
/***/ "./frontend/src/chat/chat-message-script/chat-message-script.js"
|
|
755
|
+
/***/ "./frontend/src/chat/chat-message-script/chat-message-script.js"
|
|
679
756
|
/*!**********************************************************************!*\
|
|
680
757
|
!*** ./frontend/src/chat/chat-message-script/chat-message-script.js ***!
|
|
681
758
|
\**********************************************************************/
|
|
682
|
-
|
|
759
|
+
(module, __unused_webpack_exports, __webpack_require__) {
|
|
683
760
|
|
|
684
761
|
"use strict";
|
|
685
762
|
/* global CodeMirror, Prism */
|
|
@@ -926,24 +1003,24 @@ module.exports = app => app.component('chat-message-script', {
|
|
|
926
1003
|
});
|
|
927
1004
|
|
|
928
1005
|
|
|
929
|
-
/***/ }
|
|
1006
|
+
/***/ },
|
|
930
1007
|
|
|
931
|
-
/***/ "./frontend/src/chat/chat-message/chat-message.html"
|
|
1008
|
+
/***/ "./frontend/src/chat/chat-message/chat-message.html"
|
|
932
1009
|
/*!**********************************************************!*\
|
|
933
1010
|
!*** ./frontend/src/chat/chat-message/chat-message.html ***!
|
|
934
1011
|
\**********************************************************/
|
|
935
|
-
|
|
1012
|
+
(module) {
|
|
936
1013
|
|
|
937
1014
|
"use strict";
|
|
938
1015
|
module.exports = "<div class=\"relative flex items-start\" :class=\"{'justify-end': message.role === 'user'}\">\n <div\n class=\"min-w-0 max-w-[calc(100vw-3rem)] lg:max-w-[calc(100vw-15rem)]\"\n :class=\"{'text-right': message.role === 'user'}\">\n\n <div class=\"text-sm text-gray-900 rounded-md inline-block relative\" :class=\"styleForMessage\">\n <div v-for=\"part in contentSplitByScripts\">\n <div v-if=\"part.type === 'text'\" v-html=\"marked(part.content)\">\n </div>\n <div v-else-if=\"part.type === 'code'\">\n <chat-message-script\n :message=\"message\"\n :script=\"part.content\"\n :language=\"part.language\"\n :target-dashboard-id=\"targetDashboardId\"\n @copyMessage=\"copyMessage\"></chat-message-script>\n </div>\n </div>\n </div>\n </div>\n</div>\n";
|
|
939
1016
|
|
|
940
|
-
/***/ }
|
|
1017
|
+
/***/ },
|
|
941
1018
|
|
|
942
|
-
/***/ "./frontend/src/chat/chat-message/chat-message.js"
|
|
1019
|
+
/***/ "./frontend/src/chat/chat-message/chat-message.js"
|
|
943
1020
|
/*!********************************************************!*\
|
|
944
1021
|
!*** ./frontend/src/chat/chat-message/chat-message.js ***!
|
|
945
1022
|
\********************************************************/
|
|
946
|
-
|
|
1023
|
+
(module, __unused_webpack_exports, __webpack_require__) {
|
|
947
1024
|
|
|
948
1025
|
"use strict";
|
|
949
1026
|
|
|
@@ -1046,24 +1123,24 @@ module.exports = app => app.component('chat-message', {
|
|
|
1046
1123
|
});
|
|
1047
1124
|
|
|
1048
1125
|
|
|
1049
|
-
/***/ }
|
|
1126
|
+
/***/ },
|
|
1050
1127
|
|
|
1051
|
-
/***/ "./frontend/src/chat/chat.html"
|
|
1128
|
+
/***/ "./frontend/src/chat/chat.html"
|
|
1052
1129
|
/*!*************************************!*\
|
|
1053
1130
|
!*** ./frontend/src/chat/chat.html ***!
|
|
1054
1131
|
\*************************************/
|
|
1055
|
-
|
|
1132
|
+
(module) {
|
|
1056
1133
|
|
|
1057
1134
|
"use strict";
|
|
1058
1135
|
module.exports = "<div class=\"flex\" style=\"height: calc(100vh - 55px); height: calc(100dvh - 55px)\">\n <div class=\"fixed top-[65px] cursor-pointer bg-gray-100 rounded-r-md z-10\" @click=\"hideSidebar = false\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" style=\"h-5 w-5\" viewBox=\"0 -960 960 960\" class=\"w-5\" fill=\"#5f6368\"><path d=\"M360-120v-720h80v720h-80Zm160-160v-400l200 200-200 200Z\"/></svg>\n </div>\n <button\n class=\"fixed top-[65px] right-4 z-10 p-2 rounded-md shadow bg-white\"\n :class=\"hasWorkspace ? 'text-gray-700 hover:bg-gray-100' : 'text-gray-300 cursor-not-allowed bg-gray-50'\"\n @click=\"toggleShareThread\"\n :disabled=\"!hasWorkspace || !chatThreadId || sharingThread\"\n aria-label=\"Share thread with workspace\"\n title=\"Share thread with workspace\"\n >\n <svg v-if=\"hasWorkspace\" xmlns=\"http://www.w3.org/2000/svg\" class=\"w-5 h-5\" fill=\"currentColor\" viewBox=\"0 0 24 24\"><path d=\"M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7a2.48 2.48 0 0 0 0-1.39l7.02-4.11a2.5 2.5 0 1 0-.87-1.37L8.04 9.94a2.5 2.5 0 1 0 0 4.12l7.12 4.16a2.5 2.5 0 1 0 .84-1.34l-7.05-4.12c-.04-.02-.08-.05-.11-.07a2.48 2.48 0 0 0 0-1.39c.03-.02.07-.04.11-.07l7.11-4.16c.52.47 1.2.76 1.94.76a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0-1.94.94L7.97 8.43a2.5 2.5 0 1 0 0 7.14l9.09 5.3c.52-.47 1.2-.76 1.94-.76a2.5 2.5 0 1 0 0-5z\"/></svg>\n <svg v-else xmlns=\"http://www.w3.org/2000/svg\" class=\"w-5 h-5\" fill=\"currentColor\" viewBox=\"0 0 24 24\"><path d=\"M12 1a5 5 0 00-5 5v3H6a2 2 0 00-2 2v9a2 2 0 002 2h12a2 2 0 002-2v-9a2 2 0 00-2-2h-1V6a5 5 0 00-5-5zm-3 8V6a3 3 0 016 0v3H9zm9 2v9H6v-9h12z\"/></svg>\n </button>\n <!-- Sidebar: Chat Threads -->\n <aside class=\"bg-gray-50 border-r overflow-y-auto overflow-x-hidden h-full transition-all duration-300 ease-in-out z-20 w-0 lg:w-64 fixed lg:relative\" :class=\"hideSidebar === true ? '!w-0' : hideSidebar === false ? '!w-64' : ''\">\n <div class=\"flex items-center border-b border-gray-100 w-64 overflow-x-hidden\">\n <div class=\"p-4 font-bold text-lg\">Chat Threads</div>\n <button\n @click=\"hideSidebar = true\"\n class=\"ml-auto mr-2 p-2 rounded hover:bg-gray-200 focus:outline-none\"\n aria-label=\"Close sidebar\"\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" style=\"h-5 w-5\" viewBox=\"0 -960 960 960\" class=\"w-5\" fill=\"currentColor\"><path d=\"M660-320v-320L500-480l160 160ZM200-120q-33 0-56.5-23.5T120-200v-560q0-33 23.5-56.5T200-840h560q33 0 56.5 23.5T840-760v560q0 33-23.5 56.5T760-120H200Zm120-80v-560H200v560h120Zm80 0h360v-560H400v560Zm-80 0H200h120Z\"/></svg>\n </button>\n </div>\n <div class=\"p-4 w-64\">\n <async-button\n @click=\"createNewThread\"\n class=\"w-full bg-blue-600 text-white px-4 py-2 rounded hover:bg-blue-700\"\n >\n Create New Thread\n </async-button>\n </div>\n <div v-if=\"status === 'loaded' && chatThreads.length === 0\" class=\"p-4 text-sm text-gray-700\">\n No threads yet\n </div>\n <ul v-if=\"status === 'loaded'\" class=\"w-64\">\n <li\n v-for=\"thread in chatThreads\"\n :key=\"thread._id\"\n @click=\"selectThread(thread._id)\"\n class=\"p-4 hover:bg-gray-200 cursor-pointer w-64\"\n :class=\"{ 'bg-gray-300': thread._id === chatThreadId }\"\n >\n {{ thread.title || 'Untitled Thread' }}\n </li>\n </ul>\n </aside>\n\n <!-- Main Chat Area -->\n <main class=\"flex-1 flex flex-col\">\n <div class=\"flex-1 overflow-y-auto p-6 space-y-4\" ref=\"messagesContainer\">\n <ul role=\"list\" class=\"space-y-4\">\n <div v-if=\"true\">\n <div class=\"flex items-center justify-center py-3 mb-4\">\n <div class=\"bg-gray-300 h-px flex-grow max-w-xs\"></div>\n <p class=\"mx-4 text-sm font-medium text-gray-500\">This is the beginning of the message thread</p>\n <div class=\"bg-gray-300 h-px flex-grow max-w-xs\"></div>\n </div>\n </div>\n <li v-for=\"message in chatMessages\" :key=\"message._id\">\n <chat-message :message=\"message\" :target-dashboard-id=\"currentThread?.dashboardId\"></chat-message>\n </li>\n </ul>\n </div>\n\n\n <!-- Input Area -->\n <div class=\"border-t p-4\">\n <form @submit.prevent=\"sendMessage\" :disabled=\"sendingMessage\" class=\"flex gap-2 items-end justify-end\">\n <textarea\n v-model=\"newMessage\"\n :placeholder=\"sendingMessage ? 'Sending...' : 'Ask something...'\"\n class=\"flex-1 border rounded px-4 py-2 resize-none overflow-y-auto\"\n :disabled=\"sendingMessage\"\n rows=\"1\"\n ref=\"messageInput\"\n @input=\"adjustTextareaHeight\"\n @keydown.enter.exact.prevent=\"handleEnter\"\n ></textarea>\n <button class=\"bg-blue-600 text-white px-4 h-[42px] rounded disabled:bg-gray-600\" :disabled=\"sendingMessage\">\n <svg v-if=\"sendingMessage\" style=\"height: 1em\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n <g>\n <circle cx=\"12\" cy=\"12\" r=\"10\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" opacity=\"0.3\" />\n <path d=\"M12 2a10 10 0 0 1 10 10\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\">\n <animateTransform attributeName=\"transform\" type=\"rotate\" from=\"0 12 12\" to=\"360 12 12\" dur=\"1s\" repeatCount=\"indefinite\" />\n </path>\n </g>\n </svg>\n <span v-else>Send</span>\n </button>\n </form>\n </div>\n </main>\n</div>\n";
|
|
1059
1136
|
|
|
1060
|
-
/***/ }
|
|
1137
|
+
/***/ },
|
|
1061
1138
|
|
|
1062
|
-
/***/ "./frontend/src/chat/chat.js"
|
|
1139
|
+
/***/ "./frontend/src/chat/chat.js"
|
|
1063
1140
|
/*!***********************************!*\
|
|
1064
1141
|
!*** ./frontend/src/chat/chat.js ***!
|
|
1065
1142
|
\***********************************/
|
|
1066
|
-
|
|
1143
|
+
(module, __unused_webpack_exports, __webpack_require__) {
|
|
1067
1144
|
|
|
1068
1145
|
"use strict";
|
|
1069
1146
|
|
|
@@ -1256,35 +1333,35 @@ module.exports = app => app.component('chat', {
|
|
|
1256
1333
|
});
|
|
1257
1334
|
|
|
1258
1335
|
|
|
1259
|
-
/***/ }
|
|
1336
|
+
/***/ },
|
|
1260
1337
|
|
|
1261
|
-
/***/ "./frontend/src/clone-document/clone-document.css"
|
|
1338
|
+
/***/ "./frontend/src/clone-document/clone-document.css"
|
|
1262
1339
|
/*!********************************************************!*\
|
|
1263
1340
|
!*** ./frontend/src/clone-document/clone-document.css ***!
|
|
1264
1341
|
\********************************************************/
|
|
1265
|
-
|
|
1342
|
+
(module) {
|
|
1266
1343
|
|
|
1267
1344
|
"use strict";
|
|
1268
1345
|
module.exports = "";
|
|
1269
1346
|
|
|
1270
|
-
/***/ }
|
|
1347
|
+
/***/ },
|
|
1271
1348
|
|
|
1272
|
-
/***/ "./frontend/src/clone-document/clone-document.html"
|
|
1349
|
+
/***/ "./frontend/src/clone-document/clone-document.html"
|
|
1273
1350
|
/*!*********************************************************!*\
|
|
1274
1351
|
!*** ./frontend/src/clone-document/clone-document.html ***!
|
|
1275
1352
|
\*********************************************************/
|
|
1276
|
-
|
|
1353
|
+
(module) {
|
|
1277
1354
|
|
|
1278
1355
|
"use strict";
|
|
1279
1356
|
module.exports = "<div>\n <div class=\"mb-2\">\n <textarea class=\"border border-gray-200 p-2 h-[300px] w-full\" ref=\"codeEditor\"></textarea>\n </div>\n <button @click=\"cloneDocument()\" class=\"rounded-md bg-ultramarine-600 px-2.5 py-1.5 text-sm font-semibold text-white shadow-sm hover:bg-ultramarine-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-teal-600\">Submit</button>\n <div v-if=\"errors.length > 0\" class=\"rounded-md bg-red-50 p-4 mt-1\">\n <div class=\"flex\">\n <div class=\"flex-shrink-0\">\n <svg class=\"h-5 w-5 text-red-400\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\n <path fill-rule=\"evenodd\" d=\"M10 18a8 8 0 100-16 8 8 0 000 16zM8.28 7.22a.75.75 0 00-1.06 1.06L8.94 10l-1.72 1.72a.75.75 0 101.06 1.06L10 11.06l1.72 1.72a.75.75 0 101.06-1.06L11.06 10l1.72-1.72a.75.75 0 00-1.06-1.06L10 8.94 8.28 7.22z\" clip-rule=\"evenodd\" />\n </svg>\n </div>\n <div class=\"ml-3\">\n <h3 class=\"text-sm font-medium text-red-800\">There were {{errors.length}} errors with your submission</h3>\n <div class=\"mt-2 text-sm text-red-700\">\n <ul role=\"list\" class=\"list-disc space-y-1 pl-5\">\n <li v-for=\"error in errors\">\n {{error}}\n </li>\n </ul>\n </div>\n </div>\n </div>\n </div>\n </div>\n ";
|
|
1280
1357
|
|
|
1281
|
-
/***/ }
|
|
1358
|
+
/***/ },
|
|
1282
1359
|
|
|
1283
|
-
/***/ "./frontend/src/clone-document/clone-document.js"
|
|
1360
|
+
/***/ "./frontend/src/clone-document/clone-document.js"
|
|
1284
1361
|
/*!*******************************************************!*\
|
|
1285
1362
|
!*** ./frontend/src/clone-document/clone-document.js ***!
|
|
1286
1363
|
\*******************************************************/
|
|
1287
|
-
|
|
1364
|
+
(module, __unused_webpack_exports, __webpack_require__) {
|
|
1288
1365
|
|
|
1289
1366
|
"use strict";
|
|
1290
1367
|
|
|
@@ -1361,24 +1438,24 @@ module.exports = app => app.component('clone-document', {
|
|
|
1361
1438
|
});
|
|
1362
1439
|
|
|
1363
1440
|
|
|
1364
|
-
/***/ }
|
|
1441
|
+
/***/ },
|
|
1365
1442
|
|
|
1366
|
-
/***/ "./frontend/src/create-dashboard/create-dashboard.html"
|
|
1443
|
+
/***/ "./frontend/src/create-dashboard/create-dashboard.html"
|
|
1367
1444
|
/*!*************************************************************!*\
|
|
1368
1445
|
!*** ./frontend/src/create-dashboard/create-dashboard.html ***!
|
|
1369
1446
|
\*************************************************************/
|
|
1370
|
-
|
|
1447
|
+
(module) {
|
|
1371
1448
|
|
|
1372
1449
|
"use strict";
|
|
1373
1450
|
module.exports = "<div>\n <div class=\"mt-4 text-gray-900 font-semibold\">\n Create New Dashboard\n </div>\n <div class=\"mt-4\">\n <label class=\"block text-sm font-medium leading-6 text-gray-900\">Title</label>\n <div class=\"mt-2\">\n <div class=\"w-full flex rounded-md shadow-sm ring-1 ring-inset ring-gray-300 focus-within:ring-2 focus-within:ring-inset focus-within:ring-teal-600\">\n <input type=\"text\" v-model=\"title\" class=\"outline-none block flex-1 border-0 bg-transparent py-1.5 pl-1 text-gray-900 placeholder:text-gray-400 focus:ring-0 sm:text-sm sm:leading-6\" placeholder=\"ACME-123\">\n </div>\n </div>\n </div>\n <div class=\"my-4\">\n <label class=\"block text-sm font-medium leading-6 text-gray-900\">Code</label>\n <div class=\"border border-gray-200\">\n <textarea class=\"p-2 h-[300px] w-full\" ref=\"codeEditor\"></textarea>\n </div>\n </div>\n <async-button\n @click=\"createDashboard()\"\n class=\"rounded-md bg-teal-600 px-2.5 py-1.5 text-sm font-semibold text-white shadow-sm hover:bg-teal-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-teal-600\">\n Submit\n </async-button>\n <div v-if=\"errors.length > 0\" class=\"rounded-md bg-red-50 p-4 mt-1\">\n <div class=\"flex\">\n <div class=\"flex-shrink-0\">\n <svg class=\"h-5 w-5 text-red-400\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\n <path fill-rule=\"evenodd\" d=\"M10 18a8 8 0 100-16 8 8 0 000 16zM8.28 7.22a.75.75 0 00-1.06 1.06L8.94 10l-1.72 1.72a.75.75 0 101.06 1.06L10 11.06l1.72 1.72a.75.75 0 101.06-1.06L11.06 10l1.72-1.72a.75.75 0 00-1.06-1.06L10 8.94 8.28 7.22z\" clip-rule=\"evenodd\" />\n </svg>\n </div>\n <div class=\"ml-3\">\n <h3 class=\"text-sm font-medium text-red-800\">There were {{errors.length}} errors with your submission</h3>\n <div class=\"mt-2 text-sm text-red-700\">\n <ul role=\"list\" class=\"list-disc space-y-1 pl-5\">\n <li v-for=\"error in errors\">\n {{error}}\n </li>\n </ul>\n </div>\n </div>\n </div>\n </div>\n</div>";
|
|
1374
1451
|
|
|
1375
|
-
/***/ }
|
|
1452
|
+
/***/ },
|
|
1376
1453
|
|
|
1377
|
-
/***/ "./frontend/src/create-dashboard/create-dashboard.js"
|
|
1454
|
+
/***/ "./frontend/src/create-dashboard/create-dashboard.js"
|
|
1378
1455
|
/*!***********************************************************!*\
|
|
1379
1456
|
!*** ./frontend/src/create-dashboard/create-dashboard.js ***!
|
|
1380
1457
|
\***********************************************************/
|
|
1381
|
-
|
|
1458
|
+
(module, __unused_webpack_exports, __webpack_require__) {
|
|
1382
1459
|
|
|
1383
1460
|
"use strict";
|
|
1384
1461
|
|
|
@@ -1422,35 +1499,35 @@ module.exports = app => app.component('create-dashboard', {
|
|
|
1422
1499
|
}
|
|
1423
1500
|
});
|
|
1424
1501
|
|
|
1425
|
-
/***/ }
|
|
1502
|
+
/***/ },
|
|
1426
1503
|
|
|
1427
|
-
/***/ "./frontend/src/create-document/create-document.css"
|
|
1504
|
+
/***/ "./frontend/src/create-document/create-document.css"
|
|
1428
1505
|
/*!**********************************************************!*\
|
|
1429
1506
|
!*** ./frontend/src/create-document/create-document.css ***!
|
|
1430
1507
|
\**********************************************************/
|
|
1431
|
-
|
|
1508
|
+
(module) {
|
|
1432
1509
|
|
|
1433
1510
|
"use strict";
|
|
1434
1511
|
module.exports = "";
|
|
1435
1512
|
|
|
1436
|
-
/***/ }
|
|
1513
|
+
/***/ },
|
|
1437
1514
|
|
|
1438
|
-
/***/ "./frontend/src/create-document/create-document.html"
|
|
1515
|
+
/***/ "./frontend/src/create-document/create-document.html"
|
|
1439
1516
|
/*!***********************************************************!*\
|
|
1440
1517
|
!*** ./frontend/src/create-document/create-document.html ***!
|
|
1441
1518
|
\***********************************************************/
|
|
1442
|
-
|
|
1519
|
+
(module) {
|
|
1443
1520
|
|
|
1444
1521
|
"use strict";
|
|
1445
1522
|
module.exports = "<div>\n <div class=\"mb-2\">\n <textarea class=\"border border-gray-200 p-2 h-[300px] w-full\" ref=\"codeEditor\"></textarea>\n </div>\n <button @click=\"createDocument()\" class=\"rounded-md bg-ultramarine-600 px-2.5 py-1.5 text-sm font-semibold text-white shadow-sm hover:bg-ultramarine-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-teal-600\">Submit</button>\n <div v-if=\"errors.length > 0\" class=\"rounded-md bg-red-50 p-4 mt-1\">\n <div class=\"flex\">\n <div class=\"flex-shrink-0\">\n <svg class=\"h-5 w-5 text-red-400\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\n <path fill-rule=\"evenodd\" d=\"M10 18a8 8 0 100-16 8 8 0 000 16zM8.28 7.22a.75.75 0 00-1.06 1.06L8.94 10l-1.72 1.72a.75.75 0 101.06 1.06L10 11.06l1.72 1.72a.75.75 0 101.06-1.06L11.06 10l1.72-1.72a.75.75 0 00-1.06-1.06L10 8.94 8.28 7.22z\" clip-rule=\"evenodd\" />\n </svg>\n </div>\n <div class=\"ml-3\">\n <h3 class=\"text-sm font-medium text-red-800\">There were {{errors.length}} errors with your submission</h3>\n <div class=\"mt-2 text-sm text-red-700\">\n <ul role=\"list\" class=\"list-disc space-y-1 pl-5\">\n <li v-for=\"error in errors\">\n {{error}}\n </li>\n </ul>\n </div>\n </div>\n </div>\n </div>\n</div>\n";
|
|
1446
1523
|
|
|
1447
|
-
/***/ }
|
|
1524
|
+
/***/ },
|
|
1448
1525
|
|
|
1449
|
-
/***/ "./frontend/src/create-document/create-document.js"
|
|
1526
|
+
/***/ "./frontend/src/create-document/create-document.js"
|
|
1450
1527
|
/*!*********************************************************!*\
|
|
1451
1528
|
!*** ./frontend/src/create-document/create-document.js ***!
|
|
1452
1529
|
\*********************************************************/
|
|
1453
|
-
|
|
1530
|
+
(module, __unused_webpack_exports, __webpack_require__) {
|
|
1454
1531
|
|
|
1455
1532
|
"use strict";
|
|
1456
1533
|
|
|
@@ -1517,24 +1594,24 @@ module.exports = app => app.component('create-document', {
|
|
|
1517
1594
|
});
|
|
1518
1595
|
|
|
1519
1596
|
|
|
1520
|
-
/***/ }
|
|
1597
|
+
/***/ },
|
|
1521
1598
|
|
|
1522
|
-
/***/ "./frontend/src/dashboard-result/dashboard-chart/dashboard-chart.html"
|
|
1599
|
+
/***/ "./frontend/src/dashboard-result/dashboard-chart/dashboard-chart.html"
|
|
1523
1600
|
/*!****************************************************************************!*\
|
|
1524
1601
|
!*** ./frontend/src/dashboard-result/dashboard-chart/dashboard-chart.html ***!
|
|
1525
1602
|
\****************************************************************************/
|
|
1526
|
-
|
|
1603
|
+
(module) {
|
|
1527
1604
|
|
|
1528
1605
|
"use strict";
|
|
1529
1606
|
module.exports = "<div :class=\"responsive ? 'h-full' : ''\">\n <div v-if=\"header && !fullscreen\" class=\"border-b border-gray-100 px-2 pb-2 flex items-center gap-1\">\n <div class=\"text-xl font-bold\">{{header}}</div>\n <button\n class=\"ml-auto px-2 py-1 text-xs bg-ultramarine-600 text-white border-none rounded cursor-pointer hover:bg-ultramarine-500 transition-colors\"\n @click=\"exportPNG\"\n title=\"Export PNG\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" style=\"height: 1.5em;\" viewBox=\"0 -960 960 960\" fill=\"currentColor\"><path d=\"M280-280h400v-80H280v80Zm200-120 160-160-56-56-64 62v-166h-80v166l-64-62-56 56 160 160Zm0 320q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Zm0-80q134 0 227-93t93-227q0-134-93-227t-227-93q-134 0-227 93t-93 227q0 134 93 227t227 93Zm0-320Z\"/></svg>\n </button>\n <button\n class=\"px-2 py-1 text-xs bg-ultramarine-600 text-white border-none rounded cursor-pointer hover:bg-ultramarine-500 transition-colors flex items-center\"\n @click=\"$emit('fullscreen')\"\n aria-label=\"Expand dashboard result\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" style=\"height: 1.5em\" class=\"h-3 w-3\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M4 8V4m0 0h4M4 4l5 5m11-1V4m0 0h-4m4 0l-5 5M4 16v4m0 0h4m-4 0l5-5m11 1v4m0 0h-4m4 0l-5-5\" />\n </svg>\n </button>\n </div>\n <div v-else-if=\"!fullscreen\" class=\"pt-1 border-b border-gray-100 px-2 pb-2 text-right flex items-center justify-end gap-1 w-full\">\n <button\n class=\"px-2 py-1 text-xs bg-ultramarine-600 text-white border-none rounded cursor-pointer hover:bg-ultramarine-500 transition-colors\"\n @click=\"exportPNG\"\n title=\"Export PNG\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" style=\"height: 1.5em;\" viewBox=\"0 -960 960 960\" fill=\"currentColor\"><path d=\"M280-280h400v-80H280v80Zm200-120 160-160-56-56-64 62v-166h-80v166l-64-62-56 56 160 160Zm0 320q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Zm0-80q134 0 227-93t93-227q0-134-93-227t-227-93q-134 0-227 93t-93 227q0 134 93 227t227 93Zm0-320Z\"/></svg>\n </button>\n <button\n class=\"px-2 py-1 text-xs bg-ultramarine-600 text-white border-none rounded cursor-pointer hover:bg-ultramarine-500 transition-colors flex items-center\"\n @click=\"$emit('fullscreen')\"\n aria-label=\"Expand dashboard result\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" style=\"height: 1.5em\" class=\"h-3 w-3\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M4 8V4m0 0h4M4 4l5 5m11-1V4m0 0h-4m4 0l-5 5M4 16v4m0 0h4m-4 0l5-5m11 1v4m0 0h-4m4 0l-5-5\" />\n </svg>\n </button>\n </div>\n <div :class=\"responsive ? 'relative h-full min-h-0' : ''\">\n <canvas ref=\"chart\" class=\"block w-full h-full\"></canvas>\n </div>\n</div>\n";
|
|
1530
1607
|
|
|
1531
|
-
/***/ }
|
|
1608
|
+
/***/ },
|
|
1532
1609
|
|
|
1533
|
-
/***/ "./frontend/src/dashboard-result/dashboard-chart/dashboard-chart.js"
|
|
1610
|
+
/***/ "./frontend/src/dashboard-result/dashboard-chart/dashboard-chart.js"
|
|
1534
1611
|
/*!**************************************************************************!*\
|
|
1535
1612
|
!*** ./frontend/src/dashboard-result/dashboard-chart/dashboard-chart.js ***!
|
|
1536
1613
|
\**************************************************************************/
|
|
1537
|
-
|
|
1614
|
+
(module, __unused_webpack_exports, __webpack_require__) {
|
|
1538
1615
|
|
|
1539
1616
|
"use strict";
|
|
1540
1617
|
|
|
@@ -1578,24 +1655,24 @@ module.exports = app => app.component('dashboard-chart', {
|
|
|
1578
1655
|
});
|
|
1579
1656
|
|
|
1580
1657
|
|
|
1581
|
-
/***/ }
|
|
1658
|
+
/***/ },
|
|
1582
1659
|
|
|
1583
|
-
/***/ "./frontend/src/dashboard-result/dashboard-document/dashboard-document.html"
|
|
1660
|
+
/***/ "./frontend/src/dashboard-result/dashboard-document/dashboard-document.html"
|
|
1584
1661
|
/*!**********************************************************************************!*\
|
|
1585
1662
|
!*** ./frontend/src/dashboard-result/dashboard-document/dashboard-document.html ***!
|
|
1586
1663
|
\**********************************************************************************/
|
|
1587
|
-
|
|
1664
|
+
(module) {
|
|
1588
1665
|
|
|
1589
1666
|
"use strict";
|
|
1590
1667
|
module.exports = "<div class=\"py-2\">\n <div v-if=\"header\" class=\"border-b border-gray-100 px-2 pb-2 text-xl font-bold\">\n {{header}}\n </div>\n <div class=\"text-xl pb-2\">\n <document-details :document=\"value.$document.document\" :schemaPaths=\"schemaPaths\" />\n </div>\n</div>";
|
|
1591
1668
|
|
|
1592
|
-
/***/ }
|
|
1669
|
+
/***/ },
|
|
1593
1670
|
|
|
1594
|
-
/***/ "./frontend/src/dashboard-result/dashboard-document/dashboard-document.js"
|
|
1671
|
+
/***/ "./frontend/src/dashboard-result/dashboard-document/dashboard-document.js"
|
|
1595
1672
|
/*!********************************************************************************!*\
|
|
1596
1673
|
!*** ./frontend/src/dashboard-result/dashboard-document/dashboard-document.js ***!
|
|
1597
1674
|
\********************************************************************************/
|
|
1598
|
-
|
|
1675
|
+
(module, __unused_webpack_exports, __webpack_require__) {
|
|
1599
1676
|
|
|
1600
1677
|
"use strict";
|
|
1601
1678
|
|
|
@@ -1629,24 +1706,24 @@ module.exports = app => app.component('dashboard-document', {
|
|
|
1629
1706
|
});
|
|
1630
1707
|
|
|
1631
1708
|
|
|
1632
|
-
/***/ }
|
|
1709
|
+
/***/ },
|
|
1633
1710
|
|
|
1634
|
-
/***/ "./frontend/src/dashboard-result/dashboard-grid/dashboard-grid.html"
|
|
1711
|
+
/***/ "./frontend/src/dashboard-result/dashboard-grid/dashboard-grid.html"
|
|
1635
1712
|
/*!**************************************************************************!*\
|
|
1636
1713
|
!*** ./frontend/src/dashboard-result/dashboard-grid/dashboard-grid.html ***!
|
|
1637
1714
|
\**************************************************************************/
|
|
1638
|
-
|
|
1715
|
+
(module) {
|
|
1639
1716
|
|
|
1640
1717
|
"use strict";
|
|
1641
1718
|
module.exports = "<div class=\"grid gap-2\" :style=\"{ gridTemplateColumns: gridTemplateColumns }\">\n <template v-for=\"(row, rowIndex) in value.$grid\" :key=\"rowIndex\">\n <dashboard-result\n v-for=\"(cell, colIndex) in row\"\n :key=\"rowIndex + '-' + colIndex\"\n :result=\"cell\">\n </dashboard-result>\n </template>\n</div>\n";
|
|
1642
1719
|
|
|
1643
|
-
/***/ }
|
|
1720
|
+
/***/ },
|
|
1644
1721
|
|
|
1645
|
-
/***/ "./frontend/src/dashboard-result/dashboard-grid/dashboard-grid.js"
|
|
1722
|
+
/***/ "./frontend/src/dashboard-result/dashboard-grid/dashboard-grid.js"
|
|
1646
1723
|
/*!************************************************************************!*\
|
|
1647
1724
|
!*** ./frontend/src/dashboard-result/dashboard-grid/dashboard-grid.js ***!
|
|
1648
1725
|
\************************************************************************/
|
|
1649
|
-
|
|
1726
|
+
(module, __unused_webpack_exports, __webpack_require__) {
|
|
1650
1727
|
|
|
1651
1728
|
"use strict";
|
|
1652
1729
|
|
|
@@ -1671,24 +1748,24 @@ module.exports = app => app.component('dashboard-grid', {
|
|
|
1671
1748
|
});
|
|
1672
1749
|
|
|
1673
1750
|
|
|
1674
|
-
/***/ }
|
|
1751
|
+
/***/ },
|
|
1675
1752
|
|
|
1676
|
-
/***/ "./frontend/src/dashboard-result/dashboard-map/dashboard-map.html"
|
|
1753
|
+
/***/ "./frontend/src/dashboard-result/dashboard-map/dashboard-map.html"
|
|
1677
1754
|
/*!************************************************************************!*\
|
|
1678
1755
|
!*** ./frontend/src/dashboard-result/dashboard-map/dashboard-map.html ***!
|
|
1679
1756
|
\************************************************************************/
|
|
1680
|
-
|
|
1757
|
+
(module) {
|
|
1681
1758
|
|
|
1682
1759
|
"use strict";
|
|
1683
1760
|
module.exports = "<div class=\"py-2 h-full flex flex-col\">\n <div v-if=\"header\" class=\"border-b border-gray-100 px-2 pb-2 text-xl font-bold\">\n {{header}}\n </div>\n <div class=\"text-xl flex-1 min-h-[200px]\">\n <div ref=\"map\" class=\"w-full h-full\" :style=\"mapStyle\"></div>\n </div>\n</div>\n";
|
|
1684
1761
|
|
|
1685
|
-
/***/ }
|
|
1762
|
+
/***/ },
|
|
1686
1763
|
|
|
1687
|
-
/***/ "./frontend/src/dashboard-result/dashboard-map/dashboard-map.js"
|
|
1764
|
+
/***/ "./frontend/src/dashboard-result/dashboard-map/dashboard-map.js"
|
|
1688
1765
|
/*!**********************************************************************!*\
|
|
1689
1766
|
!*** ./frontend/src/dashboard-result/dashboard-map/dashboard-map.js ***!
|
|
1690
1767
|
\**********************************************************************/
|
|
1691
|
-
|
|
1768
|
+
(module, __unused_webpack_exports, __webpack_require__) {
|
|
1692
1769
|
|
|
1693
1770
|
"use strict";
|
|
1694
1771
|
/* global L */
|
|
@@ -1729,24 +1806,24 @@ module.exports = app => app.component('dashboard-map', {
|
|
|
1729
1806
|
});
|
|
1730
1807
|
|
|
1731
1808
|
|
|
1732
|
-
/***/ }
|
|
1809
|
+
/***/ },
|
|
1733
1810
|
|
|
1734
|
-
/***/ "./frontend/src/dashboard-result/dashboard-object/dashboard-object.html"
|
|
1811
|
+
/***/ "./frontend/src/dashboard-result/dashboard-object/dashboard-object.html"
|
|
1735
1812
|
/*!******************************************************************************!*\
|
|
1736
1813
|
!*** ./frontend/src/dashboard-result/dashboard-object/dashboard-object.html ***!
|
|
1737
1814
|
\******************************************************************************/
|
|
1738
|
-
|
|
1815
|
+
(module) {
|
|
1739
1816
|
|
|
1740
1817
|
"use strict";
|
|
1741
1818
|
module.exports = "<div class=\"py-2\">\n <div v-if=\"header\" class=\"border-b border-gray-100 px-2 pb-2 text-xl font-bold\">\n {{header}}\n </div>\n <pre class=\"text-sm p-2 whitespace-pre-wrap overflow-auto\"><code>{{formattedValue}}</code></pre>\n</div>\n";
|
|
1742
1819
|
|
|
1743
|
-
/***/ }
|
|
1820
|
+
/***/ },
|
|
1744
1821
|
|
|
1745
|
-
/***/ "./frontend/src/dashboard-result/dashboard-object/dashboard-object.js"
|
|
1822
|
+
/***/ "./frontend/src/dashboard-result/dashboard-object/dashboard-object.js"
|
|
1746
1823
|
/*!****************************************************************************!*\
|
|
1747
1824
|
!*** ./frontend/src/dashboard-result/dashboard-object/dashboard-object.js ***!
|
|
1748
1825
|
\****************************************************************************/
|
|
1749
|
-
|
|
1826
|
+
(module, __unused_webpack_exports, __webpack_require__) {
|
|
1750
1827
|
|
|
1751
1828
|
"use strict";
|
|
1752
1829
|
|
|
@@ -1771,24 +1848,24 @@ module.exports = app => app.component('dashboard-object', {
|
|
|
1771
1848
|
});
|
|
1772
1849
|
|
|
1773
1850
|
|
|
1774
|
-
/***/ }
|
|
1851
|
+
/***/ },
|
|
1775
1852
|
|
|
1776
|
-
/***/ "./frontend/src/dashboard-result/dashboard-primitive/dashboard-primitive.html"
|
|
1853
|
+
/***/ "./frontend/src/dashboard-result/dashboard-primitive/dashboard-primitive.html"
|
|
1777
1854
|
/*!************************************************************************************!*\
|
|
1778
1855
|
!*** ./frontend/src/dashboard-result/dashboard-primitive/dashboard-primitive.html ***!
|
|
1779
1856
|
\************************************************************************************/
|
|
1780
|
-
|
|
1857
|
+
(module) {
|
|
1781
1858
|
|
|
1782
1859
|
"use strict";
|
|
1783
1860
|
module.exports = "<div class=\"py-2\">\n <div v-if=\"header\" class=\"border-b border-gray-100 px-2 pb-2 text-xl font-bold\">\n {{header}}\n </div>\n <div class=\"text-xl p-2\">\n {{displayValue}}\n </div>\n</div>";
|
|
1784
1861
|
|
|
1785
|
-
/***/ }
|
|
1862
|
+
/***/ },
|
|
1786
1863
|
|
|
1787
|
-
/***/ "./frontend/src/dashboard-result/dashboard-primitive/dashboard-primitive.js"
|
|
1864
|
+
/***/ "./frontend/src/dashboard-result/dashboard-primitive/dashboard-primitive.js"
|
|
1788
1865
|
/*!**********************************************************************************!*\
|
|
1789
1866
|
!*** ./frontend/src/dashboard-result/dashboard-primitive/dashboard-primitive.js ***!
|
|
1790
1867
|
\**********************************************************************************/
|
|
1791
|
-
|
|
1868
|
+
(module, __unused_webpack_exports, __webpack_require__) {
|
|
1792
1869
|
|
|
1793
1870
|
"use strict";
|
|
1794
1871
|
|
|
@@ -1817,24 +1894,24 @@ module.exports = app => app.component('dashboard-primitive', {
|
|
|
1817
1894
|
});
|
|
1818
1895
|
|
|
1819
1896
|
|
|
1820
|
-
/***/ }
|
|
1897
|
+
/***/ },
|
|
1821
1898
|
|
|
1822
|
-
/***/ "./frontend/src/dashboard-result/dashboard-result.html"
|
|
1899
|
+
/***/ "./frontend/src/dashboard-result/dashboard-result.html"
|
|
1823
1900
|
/*!*************************************************************!*\
|
|
1824
1901
|
!*** ./frontend/src/dashboard-result/dashboard-result.html ***!
|
|
1825
1902
|
\*************************************************************/
|
|
1826
|
-
|
|
1903
|
+
(module) {
|
|
1827
1904
|
|
|
1828
1905
|
"use strict";
|
|
1829
1906
|
module.exports = "<div>\n <div v-if=\"Array.isArray(result)\">\n <div v-for=\"el in result\" :key=\"el._id || el.finishedEvaluatingAt\">\n <component\n class=\"bg-white shadow-sm ring-1 ring-gray-900/5 sm:rounded-xl\"\n :is=\"getComponentForValue(el)\"\n :value=\"el\">\n </component>\n </div>\n </div>\n <div v-else>\n <component\n class=\"bg-white shadow-sm ring-1 ring-gray-900/5 sm:rounded-xl\"\n :is=\"getComponentForValue(result)\"\n :value=\"result\"\n :fullscreen=\"fullscreen\"\n @fullscreen=\"$emit('fullscreen')\">\n </component>\n </div>\n <div class=\"text-right text-sm text-gray-700 mt-1\" v-if=\"finishedEvaluatingAt && !fullscreen\">\n Last Evaluated: {{ format.isoToLongDateTime(finishedEvaluatingAt) }}\n </div>\n</div>\n";
|
|
1830
1907
|
|
|
1831
|
-
/***/ }
|
|
1908
|
+
/***/ },
|
|
1832
1909
|
|
|
1833
|
-
/***/ "./frontend/src/dashboard-result/dashboard-result.js"
|
|
1910
|
+
/***/ "./frontend/src/dashboard-result/dashboard-result.js"
|
|
1834
1911
|
/*!***********************************************************!*\
|
|
1835
1912
|
!*** ./frontend/src/dashboard-result/dashboard-result.js ***!
|
|
1836
1913
|
\***********************************************************/
|
|
1837
|
-
|
|
1914
|
+
(module, __unused_webpack_exports, __webpack_require__) {
|
|
1838
1915
|
|
|
1839
1916
|
"use strict";
|
|
1840
1917
|
|
|
@@ -1879,24 +1956,24 @@ module.exports = app => app.component('dashboard-result', {
|
|
|
1879
1956
|
});
|
|
1880
1957
|
|
|
1881
1958
|
|
|
1882
|
-
/***/ }
|
|
1959
|
+
/***/ },
|
|
1883
1960
|
|
|
1884
|
-
/***/ "./frontend/src/dashboard-result/dashboard-text/dashboard-text.html"
|
|
1961
|
+
/***/ "./frontend/src/dashboard-result/dashboard-text/dashboard-text.html"
|
|
1885
1962
|
/*!**************************************************************************!*\
|
|
1886
1963
|
!*** ./frontend/src/dashboard-result/dashboard-text/dashboard-text.html ***!
|
|
1887
1964
|
\**************************************************************************/
|
|
1888
|
-
|
|
1965
|
+
(module) {
|
|
1889
1966
|
|
|
1890
1967
|
"use strict";
|
|
1891
1968
|
module.exports = "<div class=\"py-2\">\n <div v-if=\"header\" class=\"border-b border-gray-100 px-2 pb-2 text-xl font-bold\">\n {{header}}\n </div>\n <div class=\"text-xl p-2\">\n <pre v-text=\"value.$text\"></pre>\n </div>\n</div>\n";
|
|
1892
1969
|
|
|
1893
|
-
/***/ }
|
|
1970
|
+
/***/ },
|
|
1894
1971
|
|
|
1895
|
-
/***/ "./frontend/src/dashboard-result/dashboard-text/dashboard-text.js"
|
|
1972
|
+
/***/ "./frontend/src/dashboard-result/dashboard-text/dashboard-text.js"
|
|
1896
1973
|
/*!************************************************************************!*\
|
|
1897
1974
|
!*** ./frontend/src/dashboard-result/dashboard-text/dashboard-text.js ***!
|
|
1898
1975
|
\************************************************************************/
|
|
1899
|
-
|
|
1976
|
+
(module, __unused_webpack_exports, __webpack_require__) {
|
|
1900
1977
|
|
|
1901
1978
|
"use strict";
|
|
1902
1979
|
|
|
@@ -1909,24 +1986,24 @@ module.exports = app => app.component('dashboard-text', {
|
|
|
1909
1986
|
});
|
|
1910
1987
|
|
|
1911
1988
|
|
|
1912
|
-
/***/ }
|
|
1989
|
+
/***/ },
|
|
1913
1990
|
|
|
1914
|
-
/***/ "./frontend/src/dashboard/dashboard.html"
|
|
1991
|
+
/***/ "./frontend/src/dashboard/dashboard.html"
|
|
1915
1992
|
/*!***********************************************!*\
|
|
1916
1993
|
!*** ./frontend/src/dashboard/dashboard.html ***!
|
|
1917
1994
|
\***********************************************/
|
|
1918
|
-
|
|
1995
|
+
(module) {
|
|
1919
1996
|
|
|
1920
1997
|
"use strict";
|
|
1921
1998
|
module.exports = "<div class=\"dashboard px-1\">\n <div v-if=\"status === 'loading'\" class=\"max-w-5xl mx-auto text-center\">\n <img src=\"images/loader.gif\" class=\"inline mt-10\">\n </div>\n <div v-if=\"dashboard && status !== 'loading'\" class=\"max-w-5xl mx-auto\">\n <div class=\"flex items-center w-full\" v-if=\"!showEditor\">\n <h2 class=\"mt-4 mb-4 text-gray-900 font-semibold text-xl grow shrink\">{{title}}</h2>\n <div class=\"flex gap-2\">\n <button\n @click=\"showEditor = true\"\n type=\"button\"\n :disabled=\"status === 'evaluating'\"\n class=\"flex items-center rounded-md bg-ultramarine-600 px-2.5 py-1.5 text-sm font-semibold text-white shadow-sm hover:bg-ultramarine-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ultramarine-600 disabled:cursor-not-allowed disabled:bg-gray-600\">\n <img src=\"images/edit.svg\" class=\"inline h-[1.25em] mr-1\" /> Edit\n </button>\n\n <async-button\n @click=\"evaluateDashboard\"\n type=\"button\"\n :disabled=\"status === 'evaluating'\"\n class=\"flex items-center rounded-md bg-ultramarine-600 px-4 py-1.5 text-sm font-semibold text-white shadow-sm hover:bg-ultramarine-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ultramarine-600 disabled:cursor-not-allowed disabled:bg-gray-600\"\n >\n <svg class=\"inline h-[1.25em] mr-1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 -960 960 960\" fill=\"currentColor\"><path d=\"m670-140 160-100-160-100v200ZM240-600h480v-80H240v80ZM720-40q-83 0-141.5-58.5T520-240q0-83 58.5-141.5T720-440q83 0 141.5 58.5T920-240q0 83-58.5 141.5T720-40ZM120-80v-680q0-33 23.5-56.5T200-840h560q33 0 56.5 23.5T840-760v267q-19-9-39-15t-41-9v-243H200v562h243q5 31 15.5 59T486-86l-6 6-60-60-60 60-60-60-60 60-60-60-60 60Zm120-200h203q3-21 9-41t15-39H240v80Zm0-160h284q38-37 88.5-58.5T720-520H240v80Zm-40 242v-562 562Z\"/></svg>\n Evaluate\n </async-button>\n <div class=\"relative\" ref=\"actionsMenu\">\n <button\n type=\"button\"\n @click.stop=\"toggleActionsMenu\"\n class=\"flex items-center rounded-md bg-gray-100 px-3 py-1.5 text-sm font-semibold text-gray-700 shadow-sm ring-1 ring-inset ring-gray-300 hover:bg-gray-200 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-gray-500\"\n aria-haspopup=\"true\"\n :aria-expanded=\"showActionsMenu\"\n >\n More\n <svg class=\"ml-1 h-4 w-4\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\" d=\"m6 9 6 6 6-6\" />\n </svg>\n </button>\n <div\n v-if=\"showActionsMenu\"\n class=\"absolute right-0 mt-2 w-44 origin-top-right rounded-md bg-white shadow-lg ring-1 ring-black/5 z-20\"\n role=\"menu\"\n aria-label=\"Dashboard actions\"\n >\n <button\n type=\"button\"\n :disabled=\"startingChat\"\n @click.stop=\"startChatWithDashboard\"\n class=\"flex w-full items-center gap-2 px-3 py-2 text-left text-sm text-gray-700 hover:bg-ultramarine-100 disabled:cursor-not-allowed disabled:text-gray-400\"\n role=\"menuitem\"\n >\n <svg class=\"h-4 w-4\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\" d=\"M8 10h.01M12 10h.01M16 10h.01m-8 4h8m-9 5 10-3.333L7 12.333 3 14l.667-4.333L9 7l4-3 4.333 2.667L21 11l-3 3.667V19a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2v-1z\" />\n </svg>\n Start Chat\n </button>\n </div>\n </div>\n </div>\n </div>\n <div v-if=\"!showEditor\" class=\"mt-4 mb-4\">\n <div v-if=\"dashboardResults.length === 0\">\n <div class=\"flex flex-col items-center justify-center py-8\">\n <p class=\"text-gray-700 text-base mb-4\">This dashboard hasn't been evaluated yet.</p>\n <async-button\n @click=\"evaluateDashboard\"\n type=\"button\"\n :disabled=\"status === 'evaluating'\"\n class=\"rounded-md bg-ultramarine-600 px-4 py-2 text-sm font-semibold text-white shadow-sm hover:bg-ultramarine-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ultramarine-600 disabled:cursor-not-allowed disabled:bg-gray-600\"\n >\n Evaluate Dashboard\n </async-button>\n </div>\n </div>\n <div v-else-if=\"dashboardResult\">\n <div class=\"relative\">\n <div v-if=\"status === 'evaluating'\" class=\"absolute inset-0 flex items-center justify-center bg-white bg-opacity-60 z-10 flex flex-col gap-2\">\n <div>Evaluating Dashboard...</div>\n <img src=\"images/loader.gif\" class=\"h-12 w-12\" alt=\"Loading...\" />\n </div>\n <div v-else-if=\"dashboardResult.error\" class=\"rounded-md bg-red-50 p-4 mt-4\">\n <div class=\"flex\">\n <div class=\"flex-shrink-0\">\n <svg class=\"h-5 w-5 text-red-400\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\" data-slot=\"icon\">\n <path fill-rule=\"evenodd\" d=\"M10 18a8 8 0 1 0 0-16 8 8 0 0 0 0 16ZM8.28 7.22a.75.75 0 0 0-1.06 1.06L8.94 10l-1.72 1.72a.75.75 0 1 0 1.06 1.06L10 11.06l1.72 1.72a.75.75 0 1 0 1.06-1.06L11.06 10l1.72-1.72a.75.75 0 0 0-1.06-1.06L10 8.94 8.28 7.22Z\" clip-rule=\"evenodd\" />\n </svg>\n </div>\n <div class=\"ml-3\">\n <h3 class=\"text-sm font-medium text-red-800\">{{dashboardResult.error.message || 'Unknown Error'}}</h3>\n </div>\n </div>\n </div>\n <dashboard-result\n v-else\n :key=\"dashboardResult.finishedEvaluatingAt\"\n :result=\"dashboardResult.result\"\n :finishedEvaluatingAt=\"dashboardResult.finishedEvaluatingAt\"\n @fullscreen=\"showDetailModal = true\"\n class=\"h-[40vh]\"\n >\n </dashboard-result>\n </div>\n </div>\n </div>\n <div v-if=\"showEditor\" class=\"mt-4\">\n <edit-dashboard\n :dashboardId=\"dashboard._id\"\n :code=\"code\"\n :currentDescription=\"description\"\n :currentTitle=\"title\"\n @close=\"showEditor=false;\"\n @update=\"updateCode\"></edit-dashboard>\n </div>\n\n </div>\n <div v-if=\"!dashboard && status !== 'loading'\">\n No dashboard with the given id could be found.\n </div>\n</div>\n\n<modal\n v-if=\"showDetailModal\"\n containerClass=\"!h-[90vh] !w-[90vw]\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label=\"Dashboard Details\"\n>\n <template #body>\n <div class=\"absolute font-mono right-1 top-1 cursor-pointer text-xl\" @click=\"showDetailModal = false;\" role=\"button\" aria-label=\"Close modal\">×</div>\n <div class=\"h-full overflow-auto\">\n <dashboard-result\n v-if=\"dashboardResult\"\n :result=\"dashboardResult.result\"\n :finishedEvaluatingAt=\"dashboardResult.finishedEvaluatingAt\"\n :fullscreen=\"true\"\n :responsive=\"true\">\n </dashboard-result>\n </div>\n </template>\n</modal>\n";
|
|
1922
1999
|
|
|
1923
|
-
/***/ }
|
|
2000
|
+
/***/ },
|
|
1924
2001
|
|
|
1925
|
-
/***/ "./frontend/src/dashboard/dashboard.js"
|
|
2002
|
+
/***/ "./frontend/src/dashboard/dashboard.js"
|
|
1926
2003
|
/*!*********************************************!*\
|
|
1927
2004
|
!*** ./frontend/src/dashboard/dashboard.js ***!
|
|
1928
2005
|
\*********************************************/
|
|
1929
|
-
|
|
2006
|
+
(module, __unused_webpack_exports, __webpack_require__) {
|
|
1930
2007
|
|
|
1931
2008
|
"use strict";
|
|
1932
2009
|
|
|
@@ -2072,28 +2149,28 @@ module.exports = app => app.component('dashboard', {
|
|
|
2072
2149
|
},
|
|
2073
2150
|
beforeDestroy() {
|
|
2074
2151
|
document.removeEventListener('click', this.handleDocumentClick);
|
|
2075
|
-
}
|
|
2152
|
+
}
|
|
2076
2153
|
});
|
|
2077
2154
|
|
|
2078
2155
|
|
|
2079
|
-
/***/ }
|
|
2156
|
+
/***/ },
|
|
2080
2157
|
|
|
2081
|
-
/***/ "./frontend/src/dashboard/edit-dashboard/edit-dashboard.html"
|
|
2158
|
+
/***/ "./frontend/src/dashboard/edit-dashboard/edit-dashboard.html"
|
|
2082
2159
|
/*!*******************************************************************!*\
|
|
2083
2160
|
!*** ./frontend/src/dashboard/edit-dashboard/edit-dashboard.html ***!
|
|
2084
2161
|
\*******************************************************************/
|
|
2085
|
-
|
|
2162
|
+
(module) {
|
|
2086
2163
|
|
|
2087
2164
|
"use strict";
|
|
2088
2165
|
module.exports = "<div class=\"p-4 bg-gray-100 rounded-lg shadow-lg\">\n <div v-show=\"status === 'loading'\" class=\"max-w-5xl mx-auto text-center\">\n <img src=\"images/loader.gif\" class=\"inline mt-10\">\n </div>\n <div v-show=\"status !== 'loading'\" class=\"flex flex-col gap-4\">\n <div>\n <input v-model=\"title\" class=\"w-full p-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500\" placeholder=\"Title\"/>\n </div>\n <div>\n <textarea v-model=\"description\" class=\"w-full p-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500\" rows=\"4\" placeholder=\"Description\">{{description}}</textarea>\n </div>\n <div class=\"border border-gray-300 rounded-md\">\n <textarea ref=\"codeEditor\" class=\"w-full p-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500\" rows=\"6\">{{code}}</textarea>\n <textarea v-model=\"chatMessage\" class=\"w-full p-2\"></textarea>\n </div>\n <div class=\"flex space-x-2\">\n <async-button @click=\"updateCode\" class=\"px-4 py-2 bg-blue-500 text-white rounded-md hover:bg-blue-600 focus:outline-none focus:ring-2 focus:ring-blue-500\">Submit</async-button>\n <button @click=\"closeEditor\" class=\"px-4 py-2 bg-gray-500 text-white rounded-md hover:bg-gray-600 focus:outline-none focus:ring-2 focus:ring-gray-500\">Cancel</button>\n </div>\n </div>\n</div>\n";
|
|
2089
2166
|
|
|
2090
|
-
/***/ }
|
|
2167
|
+
/***/ },
|
|
2091
2168
|
|
|
2092
|
-
/***/ "./frontend/src/dashboard/edit-dashboard/edit-dashboard.js"
|
|
2169
|
+
/***/ "./frontend/src/dashboard/edit-dashboard/edit-dashboard.js"
|
|
2093
2170
|
/*!*****************************************************************!*\
|
|
2094
2171
|
!*** ./frontend/src/dashboard/edit-dashboard/edit-dashboard.js ***!
|
|
2095
2172
|
\*****************************************************************/
|
|
2096
|
-
|
|
2173
|
+
(module, __unused_webpack_exports, __webpack_require__) {
|
|
2097
2174
|
|
|
2098
2175
|
"use strict";
|
|
2099
2176
|
|
|
@@ -2157,24 +2234,24 @@ module.exports = app => app.component('edit-dashboard', {
|
|
|
2157
2234
|
});
|
|
2158
2235
|
|
|
2159
2236
|
|
|
2160
|
-
/***/ }
|
|
2237
|
+
/***/ },
|
|
2161
2238
|
|
|
2162
|
-
/***/ "./frontend/src/dashboards/dashboards.html"
|
|
2239
|
+
/***/ "./frontend/src/dashboards/dashboards.html"
|
|
2163
2240
|
/*!*************************************************!*\
|
|
2164
2241
|
!*** ./frontend/src/dashboards/dashboards.html ***!
|
|
2165
2242
|
\*************************************************/
|
|
2166
|
-
|
|
2243
|
+
(module) {
|
|
2167
2244
|
|
|
2168
2245
|
"use strict";
|
|
2169
2246
|
module.exports = "<div class=\"dashboards max-w-5xl mx-auto mt-8\">\n <div v-if=\"status === 'loading'\" class=\"text-center mt-4\">\n <svg\n class=\"inline w-8 h-8 animate-spin text-ultramarine-600\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <circle\n class=\"opacity-25\"\n cx=\"12\"\n cy=\"12\"\n r=\"10\"\n stroke=\"currentColor\"\n stroke-width=\"4\"\n ></circle>\n <path\n class=\"opacity-75\"\n fill=\"currentColor\"\n d=\"M4 12a8 8 0 018-8v4a4 4 0 00-4 4H4z\"\n ></path>\n </svg>\n </div>\n <div v-if=\"status === 'loaded' && dashboards.length === 0\">\n <div class=\"text-center\">\n <h3 class=\"mt-2 text-sm font-semibold text-gray-900\">No dashboards yet</h3>\n <p class=\"mt-1 text-sm text-gray-500\">Get started by creating a new dashboard.</p>\n <div class=\"mt-6\">\n <button type=\"button\" class=\"inline-flex items-center rounded-md bg-ultramarine-600 px-3 py-2 text-sm font-semibold text-white shadow-sm hover:bg-ultramarine-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ultramarine-600\">\n <svg class=\"-ml-0.5 mr-1.5 h-5 w-5\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\n <path d=\"M10.75 4.75a.75.75 0 00-1.5 0v4.5h-4.5a.75.75 0 000 1.5h4.5v4.5a.75.75 0 001.5 0v-4.5h4.5a.75.75 0 000-1.5h-4.5v-4.5z\" />\n </svg>\n New Dashboard\n </button>\n </div>\n </div>\n </div>\n\n <div class=\"px-4 sm:px-6 lg:px-8\">\n <div class=\"sm:flex sm:items-center\">\n <div class=\"sm:flex-auto\">\n <h1 class=\"text-base font-semibold leading-6 text-gray-900\">Dashboards</h1>\n </div>\n <div class=\"mt-4 sm:ml-16 sm:mt-0 sm:flex-none\">\n <button\n type=\"button\"\n @click=\"showCreateDashboardModal = true\"\n class=\"block rounded-md bg-ultramarine-600 px-3 py-2 text-center text-sm font-semibold text-white shadow-sm hover:bg-ultramarine-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ultramarine-600\">Create New Dashboard</button>\n </div>\n </div>\n <div class=\"mt-8 flow-root\">\n <div class=\"-mx-4 -my-2 overflow-x-auto sm:-mx-6 lg:-mx-8\">\n <div class=\"inline-block min-w-full py-2 align-middle\">\n <table class=\"min-w-full divide-y divide-gray-300\">\n <thead>\n <tr>\n <th scope=\"col\" class=\"py-3.5 pl-4 pr-3 text-left text-sm font-semibold text-gray-900 sm:pl-6 lg:pl-8\">Title</th>\n <th scope=\"col\" class=\"px-3 py-3.5 text-left text-sm font-semibold text-gray-900 w-[50%]\">Description</th>\n <th scope=\"col\" class=\"relative py-3.5 pl-3 pr-4 sm:pr-6 lg:pr-8\">\n </th>\n <th scope=\"col\" class=\"relative py-3.5 pl-3 pr-4 sm:pr-6 lg:pr-8\">\n </th>\n </tr>\n </thead>\n <tbody class=\"divide-y divide-gray-200 bg-white\">\n <tr v-for=\"dashboard in dashboards\">\n <td class=\"whitespace-nowrap py-4 pl-4 pr-3 text-sm font-medium text-gray-900 sm:pl-6 lg:pl-8\">{{dashboard.title}}</td>\n <td class=\"whitespace-nowrap px-3 py-4 text-sm text-gray-500 truncate w-[50%]\">{{dashboard.description}}</td>\n <td class=\"relative whitespace-nowrap py-4 pl-3 pr-4 text-right text-sm font-medium sm:pr-6 lg:pr-8\">\n <router-link\n :to=\"'/dashboard/' + dashboard._id + '?edit=true'\"\n class=\"text-ultramarine-600 hover:text-ultramarine-900\">\n Edit\n </router-link>\n </td>\n <td class=\"relative whitespace-nowrap py-4 pl-3 pr-4 text-right text-sm font-medium sm:pr-6 lg:pr-8\">\n <router-link\n :to=\"'/dashboard/' + dashboard._id\"\n class=\"text-ultramarine-600 hover:text-ultramarine-900\">\n View\n </router-link>\n </td>\n <td class=\"relative whitespace-nowrap py-4 pl-3 pr-4 text-right text-sm font-medium sm:pr-6 lg:pr-8\">\n <button\n @click=\"showDeleteDashboardModal=dashboard\"\n class=\"text-ultramarine-600 hover:text-ultramarine-900\">\n Delete\n </button>\n </td>\n </tr>\n\n <!-- More people... -->\n </tbody>\n </table>\n </div>\n </div>\n </div>\n </div>\n\n <modal v-if=\"showCreateDashboardModal\">\n <template v-slot:body>\n <div class=\"modal-exit\" @click=\"showCreateDashboardModal = false;\">×</div>\n\n <create-dashboard @close=\"insertNewDashboard\"></create-dashboard>\n </template>\n </modal>\n\n <modal v-if=\"showDeleteDashboardModal\">\n <template v-slot:body>\n <div class=\"modal-exit\" @click=\"showDeleteDashboardModal = null;\">×</div>\n <h2>Are you sure you want to delete this dashboard titled {{showDeleteDashboardModal.title}}?</h2>\n <div class=\"flex space-x-2\">\n <button class=\"px-4 py-2 bg-red-500 text-white rounded-md hover:bg-red-600 focus:outline-none focus:ring-2 focus:ring-red-500\" @click=\"deleteDashboard(showDeleteDashboardModal)\">Yes, delete</button>\n <button class=\"px-4 py-2 bg-gray-500 text-white rounded-md hover:bg-gray-600 focus:outline-none focus:ring-2 focus:ring-gray-600\" @click=\"showDeleteDashboardModal=null;\">Cancel</button>\n </div>\n </template>\n </modal>\n </div>\n</div>";
|
|
2170
2247
|
|
|
2171
|
-
/***/ }
|
|
2248
|
+
/***/ },
|
|
2172
2249
|
|
|
2173
|
-
/***/ "./frontend/src/dashboards/dashboards.js"
|
|
2250
|
+
/***/ "./frontend/src/dashboards/dashboards.js"
|
|
2174
2251
|
/*!***********************************************!*\
|
|
2175
2252
|
!*** ./frontend/src/dashboards/dashboards.js ***!
|
|
2176
2253
|
\***********************************************/
|
|
2177
|
-
|
|
2254
|
+
(module, __unused_webpack_exports, __webpack_require__) {
|
|
2178
2255
|
|
|
2179
2256
|
"use strict";
|
|
2180
2257
|
|
|
@@ -2214,65 +2291,81 @@ module.exports = app => app.component('dashboards', {
|
|
|
2214
2291
|
});
|
|
2215
2292
|
|
|
2216
2293
|
|
|
2217
|
-
/***/ }
|
|
2294
|
+
/***/ },
|
|
2218
2295
|
|
|
2219
|
-
/***/ "./frontend/src/detail-array/detail-array.html"
|
|
2296
|
+
/***/ "./frontend/src/detail-array/detail-array.html"
|
|
2220
2297
|
/*!*****************************************************!*\
|
|
2221
2298
|
!*** ./frontend/src/detail-array/detail-array.html ***!
|
|
2222
2299
|
\*****************************************************/
|
|
2223
|
-
|
|
2300
|
+
(module) {
|
|
2224
2301
|
|
|
2225
2302
|
"use strict";
|
|
2226
|
-
module.exports = "<div class=\"
|
|
2303
|
+
module.exports = "<div class=\"w-full\">\n <div v-if=\"!arrayValue || arrayValue.length === 0\" class=\"text-gray-400 text-xs py-2 text-center\">\n Empty array\n </div>\n\n <div v-else class=\"mt-2\">\n <div\n v-for=\"(item, index) in arrayValue\"\n :key=\"index\"\n :title=\"'Index: ' + index\"\n class=\"mb-1.5 last:mb-0 py-2.5 px-3 pl-4 bg-transparent border-l-[3px] border-l-blue-500 rounded-none transition-all duration-200 cursor-pointer relative hover:bg-slate-50 hover:border-l-blue-600 hover:shadow-lg hover:-translate-y-0.5\">\n <div class=\"absolute -left-3 top-1/2 -translate-y-1/2 w-5 h-5 bg-blue-500 text-white rounded-full flex items-center justify-center text-[10px] font-semibold font-mono z-10 hover:bg-blue-600\">{{ index >= 1000 ? '1k+' : index }}</div>\n <div v-if=\"arrayUtils.isObjectItem(item)\" class=\"flex flex-col gap-1 mt-1 px-2\">\n <div\n v-for=\"key in arrayUtils.getItemKeys(item)\"\n :key=\"key\"\n class=\"flex items-start gap-2 text-xs font-mono\">\n <span class=\"font-semibold text-gray-600 flex-shrink-0 min-w-[80px]\">{{ key }}:</span>\n <span class=\"text-gray-800 break-words whitespace-pre-wrap flex-1\">{{ arrayUtils.formatItemValue(item, key) }}</span>\n </div>\n </div>\n <div v-else class=\"text-xs py-1.5 px-2 font-mono text-gray-800 break-words whitespace-pre-wrap mt-1\">{{ arrayUtils.formatValue(item) }}</div>\n </div>\n </div>\n</div>\n";
|
|
2227
2304
|
|
|
2228
|
-
/***/ }
|
|
2305
|
+
/***/ },
|
|
2229
2306
|
|
|
2230
|
-
/***/ "./frontend/src/detail-array/detail-array.js"
|
|
2307
|
+
/***/ "./frontend/src/detail-array/detail-array.js"
|
|
2231
2308
|
/*!***************************************************!*\
|
|
2232
2309
|
!*** ./frontend/src/detail-array/detail-array.js ***!
|
|
2233
2310
|
\***************************************************/
|
|
2234
|
-
|
|
2311
|
+
(module, __unused_webpack_exports, __webpack_require__) {
|
|
2235
2312
|
|
|
2236
2313
|
"use strict";
|
|
2237
2314
|
|
|
2238
2315
|
|
|
2239
2316
|
const template = __webpack_require__(/*! ./detail-array.html */ "./frontend/src/detail-array/detail-array.html");
|
|
2240
|
-
const { inspect } = __webpack_require__(/*! node-inspect-extracted */ "./node_modules/node-inspect-extracted/dist/inspect.js");
|
|
2241
2317
|
|
|
2242
2318
|
module.exports = app => app.component('detail-array', {
|
|
2243
2319
|
template: template,
|
|
2244
2320
|
props: ['value'],
|
|
2245
|
-
|
|
2246
|
-
|
|
2321
|
+
data() {
|
|
2322
|
+
return {
|
|
2323
|
+
arrayValue: []
|
|
2324
|
+
};
|
|
2325
|
+
},
|
|
2326
|
+
methods: {
|
|
2327
|
+
initializeArray() {
|
|
2247
2328
|
if (this.value == null) {
|
|
2248
|
-
|
|
2329
|
+
this.arrayValue = [];
|
|
2330
|
+
} else if (Array.isArray(this.value)) {
|
|
2331
|
+
this.arrayValue = this.value;
|
|
2332
|
+
} else {
|
|
2333
|
+
this.arrayValue = [];
|
|
2249
2334
|
}
|
|
2250
|
-
return inspect(this.value, { maxArrayLength: 50 });
|
|
2251
2335
|
}
|
|
2252
2336
|
},
|
|
2253
2337
|
mounted() {
|
|
2254
|
-
|
|
2338
|
+
this.initializeArray();
|
|
2339
|
+
},
|
|
2340
|
+
watch: {
|
|
2341
|
+
value: {
|
|
2342
|
+
handler(newValue) {
|
|
2343
|
+
this.initializeArray();
|
|
2344
|
+
},
|
|
2345
|
+
deep: true,
|
|
2346
|
+
immediate: true
|
|
2347
|
+
}
|
|
2255
2348
|
}
|
|
2256
2349
|
});
|
|
2257
2350
|
|
|
2258
|
-
/***/ }
|
|
2351
|
+
/***/ },
|
|
2259
2352
|
|
|
2260
|
-
/***/ "./frontend/src/detail-default/detail-default.html"
|
|
2353
|
+
/***/ "./frontend/src/detail-default/detail-default.html"
|
|
2261
2354
|
/*!*********************************************************!*\
|
|
2262
2355
|
!*** ./frontend/src/detail-default/detail-default.html ***!
|
|
2263
2356
|
\*********************************************************/
|
|
2264
|
-
|
|
2357
|
+
(module) {
|
|
2265
2358
|
|
|
2266
2359
|
"use strict";
|
|
2267
2360
|
module.exports = "<div class=\"w-full\">\n <pre class=\"w-full whitespace-pre-wrap break-words font-mono text-sm text-gray-700 m-0\">{{displayValue}}</pre>\n</div>";
|
|
2268
2361
|
|
|
2269
|
-
/***/ }
|
|
2362
|
+
/***/ },
|
|
2270
2363
|
|
|
2271
|
-
/***/ "./frontend/src/detail-default/detail-default.js"
|
|
2364
|
+
/***/ "./frontend/src/detail-default/detail-default.js"
|
|
2272
2365
|
/*!*******************************************************!*\
|
|
2273
2366
|
!*** ./frontend/src/detail-default/detail-default.js ***!
|
|
2274
2367
|
\*******************************************************/
|
|
2275
|
-
|
|
2368
|
+
(module, __unused_webpack_exports, __webpack_require__) {
|
|
2276
2369
|
|
|
2277
2370
|
"use strict";
|
|
2278
2371
|
|
|
@@ -2304,35 +2397,35 @@ module.exports = app => app.component('detail-default', {
|
|
|
2304
2397
|
}
|
|
2305
2398
|
});
|
|
2306
2399
|
|
|
2307
|
-
/***/ }
|
|
2400
|
+
/***/ },
|
|
2308
2401
|
|
|
2309
|
-
/***/ "./frontend/src/document-details/document-details.css"
|
|
2402
|
+
/***/ "./frontend/src/document-details/document-details.css"
|
|
2310
2403
|
/*!************************************************************!*\
|
|
2311
2404
|
!*** ./frontend/src/document-details/document-details.css ***!
|
|
2312
2405
|
\************************************************************/
|
|
2313
|
-
|
|
2406
|
+
(module) {
|
|
2314
2407
|
|
|
2315
2408
|
"use strict";
|
|
2316
2409
|
module.exports = ".document-details {\n width: 100%;\n}\n\n.document-details .value {\n padding-top: 10px;\n padding-bottom: 10px;\n}\n\n.document-details .path-key {\n background-color: #f0f0f0;\n margin-bottom: 0.5em;\n}\n\n.document-details .path-type {\n color: rgba(0,0,0,.36);\n font-size: 0.8em;\n}\n\n.document-details .date-position {\n float: right;\n margin-top: -7px;\n}\n\n/* Add Field Modal Styles */\n.add-field-modal {\n max-width: 500px;\n width: 100%;\n}\n\n.add-field-modal .modal-exit {\n position: absolute;\n top: 15px;\n right: 20px;\n font-size: 24px;\n cursor: pointer;\n color: #6b7280;\n z-index: 10;\n}\n\n.add-field-modal .modal-exit:hover {\n color: #374151;\n}\n\n.add-field-modal form {\n max-height: 70vh;\n overflow-y: auto;\n}\n\n.add-field-modal input[type=\"text\"],\n.add-field-modal input[type=\"email\"],\n.add-field-modal input[type=\"password\"],\n.add-field-modal select,\n.add-field-modal textarea {\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n.add-field-modal input:focus,\n.add-field-modal select:focus,\n.add-field-modal textarea:focus {\n border-color: #3b82f6;\n box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);\n}\n\n.add-field-modal .border-red-500 {\n border-color: #ef4444 !important;\n}\n\n.add-field-modal .border-red-500:focus {\n box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.1) !important;\n}\n\n/* CodeMirror styling in modal */\n.add-field-modal .CodeMirror {\n border: 1px solid #d1d5db;\n border-radius: 0.375rem;\n font-size: 14px;\n height: auto;\n min-height: 100px;\n}\n\n.add-field-modal .CodeMirror:focus-within {\n border-color: #3b82f6;\n box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);\n}\n\n.add-field-modal .CodeMirror.CodeMirror-focused {\n border-color: #3b82f6;\n box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);\n}\n\n/* JSON View Styles */\n.json-view {\n width: 100%;\n}\n\n.json-view pre {\n margin: 0;\n max-height: 70vh;\n overflow: auto;\n line-height: 1.5;\n}\n\n.json-view pre::-webkit-scrollbar {\n width: 8px;\n height: 8px;\n}\n\n.json-view pre::-webkit-scrollbar-track {\n background: #f1f1f1;\n border-radius: 4px;\n}\n\n.json-view pre::-webkit-scrollbar-thumb {\n background: #888;\n border-radius: 4px;\n}\n\n.json-view pre::-webkit-scrollbar-thumb:hover {\n background: #555;\n}";
|
|
2317
2410
|
|
|
2318
|
-
/***/ }
|
|
2411
|
+
/***/ },
|
|
2319
2412
|
|
|
2320
|
-
/***/ "./frontend/src/document-details/document-details.html"
|
|
2413
|
+
/***/ "./frontend/src/document-details/document-details.html"
|
|
2321
2414
|
/*!*************************************************************!*\
|
|
2322
2415
|
!*** ./frontend/src/document-details/document-details.html ***!
|
|
2323
2416
|
\*************************************************************/
|
|
2324
|
-
|
|
2417
|
+
(module) {
|
|
2325
2418
|
|
|
2326
2419
|
"use strict";
|
|
2327
|
-
module.exports = "<div class=\"document-details\">\n <!-- View Toggle and Search/Filter Bar -->\n <div class=\"sticky top-[60px] z-40 bg-white p-4 border-b border-gray-200 shadow-sm\">\n\n <!-- Search and Filter Bar (only show in fields view) -->\n <div v-if=\"viewMode === 'fields'\" class=\"flex md:gap-3\">\n <!-- Search Bar -->\n <div class=\"relative flex-1\">\n <input\n ref=\"searchInput\"\n v-model=\"searchQuery\"\n type=\"text\"\n placeholder=\"Search fields...\"\n class=\"w-full px-4 py-2 pl-10 pr-4 text-sm border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent\"\n />\n <div class=\"absolute inset-y-0 left-0 flex items-center pl-3\">\n <svg class=\"w-4 h-4 text-gray-400\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z\"></path>\n </svg>\n </div>\n </div>\n\n <!-- Data Type Filter -->\n <div class=\"relative hidden md:block\">\n <select\n v-model=\"selectedType\"\n class=\"px-4 py-2 pr-8 text-sm border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent bg-white min-w-[140px] appearance-none\"\n >\n <option value=\"\">All Types</option>\n <option v-for=\"type in availableTypes\" :key=\"type\" :value=\"type\">\n {{type}}\n </option>\n </select>\n <div class=\"absolute inset-y-0 right-0 flex items-center pr-3 pointer-events-none\">\n <svg class=\"w-4 h-4 text-gray-400\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M19 9l-7 7-7-7\"></path>\n </svg>\n </div>\n </div>\n\n <!-- Add Field Button -->\n <button\n @click=\"openAddFieldModal\"\n class=\"hidden md:flex px-4 py-2 text-sm font-medium text-white bg-green-600 hover:bg-green-700 rounded-lg focus:outline-none focus:ring-2 focus:ring-green-500 focus:ring-offset-2 items-center gap-2\"\n >\n <svg class=\"w-4 h-4\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M12 4v16m8-8H4\"></path>\n </svg> Add Field\n </button>\n </div>\n </div>\n\n <!-- Fields View -->\n <div v-if=\"viewMode === 'fields'\">\n <!-- Schema Paths -->\n <div\n v-for=\"path in filteredSchemaPaths\"\n :key=\"path.path || path\"\n class=\"value\"\n >\n <document-property\n :path=\"path\"\n :document=\"document\"\n :schemaPaths=\"schemaPaths\"\n :editting=\"editting\"\n :changes=\"changes\"\n :highlight=\"isSchemaPathMatched(path)\"\n :invalid=\"invalid\"></document-property>\n </div>\n\n <!-- Virtual Fields -->\n <div\n v-for=\"path in filteredVirtuals\"\n :key=\"path.name\"\n class=\"border rounded-lg mb-2 transition-all duration-200 ease-in-out\"\n :class=\"[\n isVirtualMatched(path)\n ? 'border-amber-400 ring-2 ring-amber-200 ring-offset-1'\n : 'border-gray-200'\n ]\"\n >\n <!-- Virtual Field Header (Always Visible) -->\n <div\n @click=\"toggleVirtualField(path.name)\"\n class=\"p-3 bg-slate-50 hover:bg-slate-100 cursor-pointer flex items-center justify-between border-b border-gray-200\"\n >\n <div class=\"flex items-center\">\n <svg\n :class=\"isVirtualFieldCollapsed(path.name) ? 'rotate-0' : 'rotate-90'\"\n class=\"w-4 h-4 text-gray-500 mr-2 transition-transform duration-200\"\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n >\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M9 5l7 7-7 7\"></path>\n </svg>\n <span class=\"font-medium text-gray-900\">{{path.name}}</span>\n <span v-if=\"path.isVirtual\" class=\"ml-2 text-sm text-purple-600\">(virtual - {{getVirtualFieldType(path)}})</span>\n <span v-else class=\"ml-2 text-sm text-blue-600\">(user-added - {{getVirtualFieldType(path)}})</span>\n </div>\n </div>\n\n <!-- Virtual Field Content (Collapsible) -->\n <div v-if=\"!isVirtualFieldCollapsed(path.name)\" class=\"p-3\">\n <div v-if=\"path.value == null\" class=\"text-sky-800\">\n {{'' + path.value}}\n </div>\n <div v-else>\n {{path.value}}\n </div>\n </div>\n </div>\n\n <!-- No Results Message -->\n <div v-if=\"searchQuery.trim() && !hasSearchMatches\" class=\"text-center py-8 text-gray-500\">\n <svg class=\"w-12 h-12 mx-auto mb-4 text-gray-300\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M9.172 16.172a4 4 0 015.656 0M9 12h6m-6-4h6m2 5.291A7.962 7.962 0 0112 15c-2.34 0-4.29-1.009-5.824-2.709M15 6.291A7.962 7.962 0 0012 5c-2.34 0-4.29 1.009-5.824 2.709\"></path>\n </svg>\n <p>No fields found matching \"{{searchQuery}}\"</p>\n </div>\n </div>\n\n <!-- JSON View -->\n <div v-if=\"viewMode === 'json'\" class=\"json-view\">\n <div class=\"border border-gray-300 rounded-lg bg-gray-50 p-4 overflow-auto\">\n <pre class=\"text-sm font-mono text-gray-800 whitespace-pre\">{{formattedJson}}</pre>\n </div>\n </div>\n\n <!-- Add Field Modal -->\n <modal v-if=\"showAddFieldModal\">\n <template v-slot:body>\n <div class=\"modal-exit\" @click=\"closeAddFieldModal\">×</div>\n <div class=\"add-field-modal\">\n <div class=\"mb-6\">\n <h2 class=\"text-xl font-semibold text-gray-900 mb-2\">Add New Field</h2>\n <p class=\"text-sm text-gray-600\">Create a new field for this document</p>\n </div>\n\n <form @submit.prevent=\"handleAddFieldSubmit\" class=\"space-y-4\">\n <!-- Field Name -->\n <div>\n <label for=\"fieldName\" class=\"block text-sm font-medium text-gray-700 mb-1\">\n Field Name *\n </label>\n <input\n id=\"fieldName\"\n v-model=\"fieldData.name\"\n type=\"text\"\n required\n placeholder=\"Enter field name...\"\n class=\"w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent\"\n :class=\"{ 'border-red-500': fieldErrors.name }\"\n />\n <p v-if=\"fieldErrors.name\" class=\"mt-1 text-sm text-red-600\">{{fieldErrors.name}}</p>\n <p v-if=\"fieldData.name && getTransformedFieldName() !== fieldData.name.trim()\" class=\"mt-1 text-sm text-blue-600\">\n Field name will be: <code class=\"bg-blue-50 px-1 py-0.5 rounded text-xs\">{{getTransformedFieldName()}}</code>\n </p>\n </div>\n\n <!-- Field Type -->\n <div>\n <label for=\"fieldType\" class=\"block text-sm font-medium text-gray-700 mb-1\">\n Field Type *\n </label>\n <select\n id=\"fieldType\"\n v-model=\"fieldData.type\"\n required\n class=\"w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent\"\n :class=\"{ 'border-red-500': fieldErrors.type }\"\n >\n <option value=\"\">Select field type...</option>\n <option v-for=\"type in allFieldTypes\" :key=\"type\" :value=\"type\">\n {{type}}\n </option>\n </select>\n <p v-if=\"fieldErrors.type\" class=\"mt-1 text-sm text-red-600\">{{fieldErrors.type}}</p>\n </div>\n\n <!-- Field Value -->\n <div>\n <label for=\"fieldValue\" class=\"block text-sm font-medium text-gray-700 mb-1\">\n Initial Value\n </label>\n\n <!-- Date picker for Date type -->\n <input\n v-if=\"shouldUseDatePicker\"\n v-model=\"fieldData.value\"\n type=\"date\"\n id=\"fieldValue\"\n class=\"w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent\"\n :class=\"{ 'border-red-500': fieldErrors.value }\"\n />\n\n <!-- Simple input for basic types -->\n <input\n v-else-if=\"!shouldUseCodeMirror\"\n v-model=\"fieldData.value\"\n type=\"text\"\n id=\"fieldValue\"\n placeholder=\"Enter initial value (optional)...\"\n class=\"w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent\"\n :class=\"{ 'border-red-500': fieldErrors.value }\"\n />\n\n <!-- CodeMirror textarea for complex types -->\n <textarea\n v-else\n ref=\"fieldValueEditor\"\n id=\"fieldValue\"\n rows=\"3\"\n placeholder=\"Enter initial value (optional)...\"\n class=\"w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent\"\n :class=\"{ 'border-red-500': fieldErrors.value }\"\n ></textarea>\n\n <p v-if=\"fieldErrors.value\" class=\"mt-1 text-sm text-red-600\">{{fieldErrors.value}}</p>\n <p class=\"mt-1 text-xs text-gray-500\">\n <span v-if=\"shouldUseDatePicker\">Select a date or leave empty for null/undefined values.</span>\n <span v-else-if=\"shouldUseCodeMirror\">Leave empty for null/undefined values. Use valid JSON format.</span>\n <span v-else>Leave empty for null/undefined values.</span>\n </p>\n </div>\n\n\n <!-- Action Buttons -->\n <div class=\"flex justify-end gap-3 pt-4 border-t border-gray-200\">\n <button\n type=\"button\"\n @click=\"closeAddFieldModal\"\n class=\"px-4 py-2 text-sm font-medium text-gray-700 bg-white border border-gray-300 rounded-md hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2\"\n >\n Cancel\n </button>\n <button\n type=\"submit\"\n :disabled=\"isSubmittingField\"\n class=\"px-4 py-2 text-sm font-medium text-white bg-blue-600 border border-transparent rounded-md hover:bg-blue-700 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2 disabled:opacity-50 disabled:cursor-not-allowed\"\n >\n <span v-if=\"isSubmittingField\">Adding...</span>\n <span v-else>Add Field</span>\n </button>\n </div>\n </form>\n </div>\n </template>\n </modal>\n</div>\n";
|
|
2420
|
+
module.exports = "<div class=\"document-details\">\n <!-- View Toggle and Search/Filter Bar -->\n <div class=\"sticky top-[60px] z-40 bg-white p-4 border-b border-gray-200 shadow-sm\">\n\n <!-- Search and Filter Bar (only show in fields view) -->\n <div v-if=\"viewMode === 'fields'\" class=\"flex md:gap-3\">\n <!-- Search Bar -->\n <div class=\"relative flex-1\">\n <input\n ref=\"searchInput\"\n v-model=\"searchQuery\"\n type=\"text\"\n placeholder=\"Search fields...\"\n class=\"w-full px-4 py-2 pl-10 pr-4 text-sm border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent\"\n />\n <div class=\"absolute inset-y-0 left-0 flex items-center pl-3\">\n <svg class=\"w-4 h-4 text-gray-400\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z\"></path>\n </svg>\n </div>\n </div>\n\n <!-- Data Type Filter -->\n <div class=\"relative hidden md:block\">\n <select\n v-model=\"selectedType\"\n class=\"px-4 py-2 pr-8 text-sm border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent bg-white min-w-[140px] appearance-none\"\n >\n <option value=\"\">All Types</option>\n <option v-for=\"type in availableTypes\" :key=\"type\" :value=\"type\">\n {{type}}\n </option>\n </select>\n <div class=\"absolute inset-y-0 right-0 flex items-center pr-3 pointer-events-none\">\n <svg class=\"w-4 h-4 text-gray-400\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M19 9l-7 7-7-7\"></path>\n </svg>\n </div>\n </div>\n\n <!-- Add Field Button -->\n <button\n @click=\"openAddFieldModal\"\n class=\"hidden md:flex px-4 py-2 text-sm font-medium text-white bg-green-600 hover:bg-green-700 rounded-lg focus:outline-none focus:ring-2 focus:ring-green-500 focus:ring-offset-2 items-center gap-2\"\n >\n <svg class=\"w-4 h-4\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M12 4v16m8-8H4\"></path>\n </svg> Add Field\n </button>\n </div>\n </div>\n\n <!-- Fields View -->\n <div v-if=\"viewMode === 'fields'\">\n <!-- Matched Schema Paths (shown first when searching) -->\n <div\n v-for=\"path in matchedSchemaPaths\"\n :key=\"path.path || path\"\n class=\"value\"\n >\n <document-property\n :path=\"path\"\n :document=\"document\"\n :schemaPaths=\"schemaPaths\"\n :editting=\"editting\"\n :changes=\"changes\"\n :highlight=\"true\"\n :invalid=\"invalid\"></document-property>\n </div>\n\n <!-- Matched Virtual Fields (shown after matched schema paths when searching) -->\n <div\n v-for=\"path in matchedVirtuals\"\n :key=\"path.name\"\n class=\"border border-gray-200 rounded-lg mb-2 transition-all duration-200 ease-in-out mt-4\"\n >\n <!-- Virtual Field Header (Always Visible) -->\n <div\n @click=\"toggleVirtualField(path.name)\"\n class=\"p-3 bg-amber-100 hover:bg-amber-200 cursor-pointer flex items-center justify-between border-b border-gray-200 transition-colors duration-200 ease-in-out\"\n >\n <div class=\"flex items-center\">\n <svg\n :class=\"isVirtualFieldCollapsed(path.name) ? 'rotate-0' : 'rotate-90'\"\n class=\"w-4 h-4 text-gray-500 mr-2 transition-transform duration-200\"\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n >\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M9 5l7 7-7 7\"></path>\n </svg>\n <span class=\"font-medium text-gray-900\">{{path.name}}</span>\n <span v-if=\"path.isVirtual\" class=\"ml-2 text-sm text-purple-600\">(virtual - {{getVirtualFieldType(path)}})</span>\n <span v-else class=\"ml-2 text-sm text-blue-600\">(user-added - {{getVirtualFieldType(path)}})</span>\n </div>\n </div>\n\n <!-- Virtual Field Content (Collapsible) -->\n <div v-if=\"!isVirtualFieldCollapsed(path.name)\" class=\"p-3\">\n <div v-if=\"path.value == null\" class=\"text-sky-800\">\n {{'' + path.value}}\n </div>\n <div v-else>\n {{path.value}}\n </div>\n </div>\n </div>\n\n <!-- Unmatched Schema Paths (shown after matched items when searching, or all when not searching) -->\n <div\n v-for=\"path in unmatchedSchemaPaths\"\n :key=\"path.path || path\"\n class=\"value\"\n >\n <document-property\n :path=\"path\"\n :document=\"document\"\n :schemaPaths=\"schemaPaths\"\n :editting=\"editting\"\n :changes=\"changes\"\n :highlight=\"false\"\n :invalid=\"invalid\"></document-property>\n </div>\n\n <!-- Unmatched Virtual Fields (shown last) -->\n <div\n v-for=\"path in unmatchedVirtuals\"\n :key=\"path.name\"\n class=\"border border-gray-200 rounded-lg mb-2 transition-all duration-200 ease-in-out\"\n >\n <!-- Virtual Field Header (Always Visible) -->\n <div\n @click=\"toggleVirtualField(path.name)\"\n class=\"p-3 bg-gray-50 hover:bg-gray-100 cursor-pointer flex items-center justify-between border-b border-gray-200 transition-colors duration-200 ease-in-out\"\n >\n <div class=\"flex items-center\">\n <svg\n :class=\"isVirtualFieldCollapsed(path.name) ? 'rotate-0' : 'rotate-90'\"\n class=\"w-4 h-4 text-gray-500 mr-2 transition-transform duration-200\"\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n >\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M9 5l7 7-7 7\"></path>\n </svg>\n <span class=\"font-medium text-gray-900\">{{path.name}}</span>\n <span v-if=\"path.isVirtual\" class=\"ml-2 text-sm text-purple-600\">(virtual - {{getVirtualFieldType(path)}})</span>\n <span v-else class=\"ml-2 text-sm text-blue-600\">(user-added - {{getVirtualFieldType(path)}})</span>\n </div>\n </div>\n\n <!-- Virtual Field Content (Collapsible) -->\n <div v-if=\"!isVirtualFieldCollapsed(path.name)\" class=\"p-3\">\n <div v-if=\"path.value == null\" class=\"text-sky-800\">\n {{'' + path.value}}\n </div>\n <div v-else>\n {{path.value}}\n </div>\n </div>\n </div>\n\n <!-- No Results Message -->\n <div v-if=\"searchQuery.trim() && !hasSearchMatches\" class=\"text-center py-8 text-gray-500\">\n <svg class=\"w-12 h-12 mx-auto mb-4 text-gray-300\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M9.172 16.172a4 4 0 015.656 0M9 12h6m-6-4h6m2 5.291A7.962 7.962 0 0112 15c-2.34 0-4.29-1.009-5.824-2.709M15 6.291A7.962 7.962 0 0012 5c-2.34 0-4.29 1.009-5.824 2.709\"></path>\n </svg>\n <p>No fields found matching \"{{searchQuery}}\"</p>\n </div>\n </div>\n\n <!-- JSON View -->\n <div v-if=\"viewMode === 'json'\" class=\"json-view\">\n <div class=\"border border-gray-300 rounded-lg bg-gray-50 p-4 overflow-auto\">\n <pre class=\"text-sm font-mono text-gray-800 whitespace-pre\">{{formattedJson}}</pre>\n </div>\n </div>\n\n <!-- Add Field Modal -->\n <modal v-if=\"showAddFieldModal\">\n <template v-slot:body>\n <div class=\"modal-exit\" @click=\"closeAddFieldModal\">×</div>\n <div class=\"add-field-modal\">\n <div class=\"mb-6\">\n <h2 class=\"text-xl font-semibold text-gray-900 mb-2\">Add New Field</h2>\n <p class=\"text-sm text-gray-600\">Create a new field for this document</p>\n </div>\n\n <form @submit.prevent=\"handleAddFieldSubmit\" class=\"space-y-4\">\n <!-- Field Name -->\n <div>\n <label for=\"fieldName\" class=\"block text-sm font-medium text-gray-700 mb-1\">\n Field Name *\n </label>\n <input\n id=\"fieldName\"\n v-model=\"fieldData.name\"\n type=\"text\"\n required\n placeholder=\"Enter field name...\"\n class=\"w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent\"\n :class=\"{ 'border-red-500': fieldErrors.name }\"\n />\n <p v-if=\"fieldErrors.name\" class=\"mt-1 text-sm text-red-600\">{{fieldErrors.name}}</p>\n <p v-if=\"fieldData.name && getTransformedFieldName() !== fieldData.name.trim()\" class=\"mt-1 text-sm text-blue-600\">\n Field name will be: <code class=\"bg-blue-50 px-1 py-0.5 rounded text-xs\">{{getTransformedFieldName()}}</code>\n </p>\n </div>\n\n <!-- Field Type -->\n <div>\n <label for=\"fieldType\" class=\"block text-sm font-medium text-gray-700 mb-1\">\n Field Type *\n </label>\n <select\n id=\"fieldType\"\n v-model=\"fieldData.type\"\n required\n class=\"w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent\"\n :class=\"{ 'border-red-500': fieldErrors.type }\"\n >\n <option value=\"\">Select field type...</option>\n <option v-for=\"type in allFieldTypes\" :key=\"type\" :value=\"type\">\n {{type}}\n </option>\n </select>\n <p v-if=\"fieldErrors.type\" class=\"mt-1 text-sm text-red-600\">{{fieldErrors.type}}</p>\n </div>\n\n <!-- Field Value -->\n <div>\n <label for=\"fieldValue\" class=\"block text-sm font-medium text-gray-700 mb-1\">\n Initial Value\n </label>\n\n <!-- Date picker for Date type -->\n <input\n v-if=\"shouldUseDatePicker\"\n v-model=\"fieldData.value\"\n type=\"date\"\n id=\"fieldValue\"\n class=\"w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent\"\n :class=\"{ 'border-red-500': fieldErrors.value }\"\n />\n\n <!-- Simple input for basic types -->\n <input\n v-else-if=\"!shouldUseCodeMirror\"\n v-model=\"fieldData.value\"\n type=\"text\"\n id=\"fieldValue\"\n placeholder=\"Enter initial value (optional)...\"\n class=\"w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent\"\n :class=\"{ 'border-red-500': fieldErrors.value }\"\n />\n\n <!-- CodeMirror textarea for complex types -->\n <textarea\n v-else\n ref=\"fieldValueEditor\"\n id=\"fieldValue\"\n rows=\"3\"\n placeholder=\"Enter initial value (optional)...\"\n class=\"w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent\"\n :class=\"{ 'border-red-500': fieldErrors.value }\"\n ></textarea>\n\n <p v-if=\"fieldErrors.value\" class=\"mt-1 text-sm text-red-600\">{{fieldErrors.value}}</p>\n <p class=\"mt-1 text-xs text-gray-500\">\n <span v-if=\"shouldUseDatePicker\">Select a date or leave empty for null/undefined values.</span>\n <span v-else-if=\"shouldUseCodeMirror\">Leave empty for null/undefined values. Use valid JSON format.</span>\n <span v-else>Leave empty for null/undefined values.</span>\n </p>\n </div>\n\n\n <!-- Action Buttons -->\n <div class=\"flex justify-end gap-3 pt-4 border-t border-gray-200\">\n <button\n type=\"button\"\n @click=\"closeAddFieldModal\"\n class=\"px-4 py-2 text-sm font-medium text-gray-700 bg-white border border-gray-300 rounded-md hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2\"\n >\n Cancel\n </button>\n <button\n type=\"submit\"\n :disabled=\"isSubmittingField\"\n class=\"px-4 py-2 text-sm font-medium text-white bg-blue-600 border border-transparent rounded-md hover:bg-blue-700 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2 disabled:opacity-50 disabled:cursor-not-allowed\"\n >\n <span v-if=\"isSubmittingField\">Adding...</span>\n <span v-else>Add Field</span>\n </button>\n </div>\n </form>\n </div>\n </template>\n </modal>\n</div>\n";
|
|
2328
2421
|
|
|
2329
|
-
/***/ }
|
|
2422
|
+
/***/ },
|
|
2330
2423
|
|
|
2331
|
-
/***/ "./frontend/src/document-details/document-details.js"
|
|
2424
|
+
/***/ "./frontend/src/document-details/document-details.js"
|
|
2332
2425
|
/*!***********************************************************!*\
|
|
2333
2426
|
!*** ./frontend/src/document-details/document-details.js ***!
|
|
2334
2427
|
\***********************************************************/
|
|
2335
|
-
|
|
2428
|
+
(module, __unused_webpack_exports, __webpack_require__) {
|
|
2336
2429
|
|
|
2337
2430
|
"use strict";
|
|
2338
2431
|
|
|
@@ -2482,6 +2575,20 @@ module.exports = app => app.component('document-details', {
|
|
|
2482
2575
|
|
|
2483
2576
|
return matches.concat(nonMatches);
|
|
2484
2577
|
},
|
|
2578
|
+
matchedSchemaPaths() {
|
|
2579
|
+
if (!this.searchQuery.trim()) {
|
|
2580
|
+
return [];
|
|
2581
|
+
}
|
|
2582
|
+
const query = this.searchQuery.toLowerCase();
|
|
2583
|
+
return this.typeFilteredSchemaPaths.filter(path => path.path.toLowerCase().includes(query));
|
|
2584
|
+
},
|
|
2585
|
+
unmatchedSchemaPaths() {
|
|
2586
|
+
if (!this.searchQuery.trim()) {
|
|
2587
|
+
return this.typeFilteredSchemaPaths;
|
|
2588
|
+
}
|
|
2589
|
+
const query = this.searchQuery.toLowerCase();
|
|
2590
|
+
return this.typeFilteredSchemaPaths.filter(path => !path.path.toLowerCase().includes(query));
|
|
2591
|
+
},
|
|
2485
2592
|
typeFilteredVirtuals() {
|
|
2486
2593
|
let virtuals = this.virtuals;
|
|
2487
2594
|
|
|
@@ -2515,6 +2622,20 @@ module.exports = app => app.component('document-details', {
|
|
|
2515
2622
|
|
|
2516
2623
|
return matches.concat(nonMatches);
|
|
2517
2624
|
},
|
|
2625
|
+
matchedVirtuals() {
|
|
2626
|
+
if (!this.searchQuery.trim()) {
|
|
2627
|
+
return [];
|
|
2628
|
+
}
|
|
2629
|
+
const query = this.searchQuery.toLowerCase();
|
|
2630
|
+
return this.typeFilteredVirtuals.filter(virtual => virtual.name.toLowerCase().includes(query));
|
|
2631
|
+
},
|
|
2632
|
+
unmatchedVirtuals() {
|
|
2633
|
+
if (!this.searchQuery.trim()) {
|
|
2634
|
+
return this.typeFilteredVirtuals;
|
|
2635
|
+
}
|
|
2636
|
+
const query = this.searchQuery.toLowerCase();
|
|
2637
|
+
return this.typeFilteredVirtuals.filter(virtual => !virtual.name.toLowerCase().includes(query));
|
|
2638
|
+
},
|
|
2518
2639
|
schemaSearchMatchSet() {
|
|
2519
2640
|
if (!this.searchQuery.trim()) {
|
|
2520
2641
|
return new Set();
|
|
@@ -2762,35 +2883,35 @@ module.exports = app => app.component('document-details', {
|
|
|
2762
2883
|
});
|
|
2763
2884
|
|
|
2764
2885
|
|
|
2765
|
-
/***/ }
|
|
2886
|
+
/***/ },
|
|
2766
2887
|
|
|
2767
|
-
/***/ "./frontend/src/document-details/document-property/document-property.css"
|
|
2888
|
+
/***/ "./frontend/src/document-details/document-property/document-property.css"
|
|
2768
2889
|
/*!*******************************************************************************!*\
|
|
2769
2890
|
!*** ./frontend/src/document-details/document-property/document-property.css ***!
|
|
2770
2891
|
\*******************************************************************************/
|
|
2771
|
-
|
|
2892
|
+
(module) {
|
|
2772
2893
|
|
|
2773
2894
|
"use strict";
|
|
2774
2895
|
module.exports = ".document-details {\n width: 100%;\n }\n \n .document-details .value {\n padding-top: 10px;\n padding-bottom: 10px;\n }\n \n .document-details .path-key {\n background-color: #f0f0f0;\n margin-bottom: 0.5em;\n }\n \n .document-details .path-type {\n color: rgba(0,0,0,.36);\n font-size: 0.8em;\n }\n \n .document-details .date-position {\n float: right;\n margin-top: -7px;\n }\n";
|
|
2775
2896
|
|
|
2776
|
-
/***/ }
|
|
2897
|
+
/***/ },
|
|
2777
2898
|
|
|
2778
|
-
/***/ "./frontend/src/document-details/document-property/document-property.html"
|
|
2899
|
+
/***/ "./frontend/src/document-details/document-property/document-property.html"
|
|
2779
2900
|
/*!********************************************************************************!*\
|
|
2780
2901
|
!*** ./frontend/src/document-details/document-property/document-property.html ***!
|
|
2781
2902
|
\********************************************************************************/
|
|
2782
|
-
|
|
2903
|
+
(module) {
|
|
2783
2904
|
|
|
2784
2905
|
"use strict";
|
|
2785
|
-
module.exports = "<div class=\"border border-gray-200 rounded-lg mb-2\">\n <!-- Collapsible Header -->\n <div\n @click=\"toggleCollapse\"\n class=\"p-3
|
|
2906
|
+
module.exports = "<div class=\"border border-gray-200 rounded-lg mb-2\">\n <!-- Collapsible Header -->\n <div\n @click=\"toggleCollapse\"\n class=\"p-3 cursor-pointer flex items-center justify-between border-b border-gray-200 transition-colors duration-200 ease-in-out\"\n :class=\"{ 'bg-amber-100 hover:bg-amber-200': highlight, 'bg-gray-50 hover:bg-gray-100': !highlight }\"\n >\n <div class=\"flex items-center\" >\n <svg\n :class=\"isCollapsed ? 'rotate-0' : 'rotate-90'\"\n class=\"w-4 h-4 text-gray-500 mr-2 transition-transform duration-200\"\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n >\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M9 5l7 7-7 7\"></path>\n </svg>\n <span class=\"font-medium text-gray-900\">{{path.path}}</span>\n <span class=\"ml-2 text-sm text-gray-500\">({{(path.instance || 'unknown').toLowerCase()}})</span>\n </div>\n <div class=\"flex items-center gap-2\">\n <button\n type=\"button\"\n class=\"flex items-center gap-1 text-sm text-gray-600 hover:text-gray-800 px-2 py-1 rounded-md border border-transparent hover:border-gray-300 bg-white\"\n @click.stop.prevent=\"copyPropertyValue\"\n title=\"Copy value\"\n aria-label=\"Copy property value\"\n >\n <svg class=\"w-4 h-4\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M8 7h8m-8 4h8m-8 4h5m-7-9a2 2 0 012-2h7a2 2 0 012 2v10a2 2 0 01-2 2H8l-4-4V7a2 2 0 012-2z\" />\n </svg>\n {{copyButtonLabel}}\n </button>\n <router-link\n v-if=\"path.ref && getValueForPath(path.path)\"\n :to=\"`/model/${path.ref}/document/${getValueForPath(path.path)}`\"\n class=\"bg-ultramarine-600 hover:bg-ultramarine-500 text-white px-2 py-1 text-sm rounded-md\"\n @click.stop\n >View Document\n </router-link>\n </div>\n </div>\n\n <!-- Collapsible Content -->\n <div v-if=\"!isCollapsed\" class=\"p-3\">\n <!-- Date Type Selector (when editing dates) -->\n <div v-if=\"editting && path.instance === 'Date'\" class=\"mb-3 flex gap-1.5\">\n <div\n @click=\"dateType = 'picker'\"\n :class=\"dateType === 'picker' ? 'bg-teal-600' : ''\"\n class=\"self-stretch px-2 py-1 rounded-sm justify-center items-center gap-1.5 flex cursor-pointer\">\n <div\n :class=\"dateType === 'picker' ? 'text-white' : ''\"\n class=\"text-xs font-medium font-['Lato'] capitalize leading-tight\">\n Date Picker\n </div>\n </div>\n <div\n @click=\"dateType = 'iso'\"\n :class=\"dateType === 'iso' ? 'bg-teal-600' : ''\"\n class=\"self-stretch px-2 py-1 rounded-sm justify-center items-center gap-1.5 flex cursor-pointer\">\n <div\n :class=\"dateType === 'iso' ? 'text-white' : ''\"\n class=\"text-xs font-medium font-['Lato'] capitalize leading-tight\">\n ISO String\n </div>\n </div>\n </div>\n\n <!-- Field Content -->\n <div v-if=\"editting && path.path !== '_id'\">\n <component\n :is=\"getEditComponentForPath(path)\"\n :value=\"getEditValueForPath(path)\"\n :format=\"dateType\"\n v-bind=\"getEditComponentProps(path)\"\n @input=\"changes[path.path] = $event; delete invalid[path.path];\"\n @error=\"invalid[path.path] = $event;\"\n >\n </component>\n </div>\n <div v-else>\n <!-- Show truncated or full value based on needsTruncation and isValueExpanded -->\n <!-- Special handling for truncated arrays -->\n <div v-if=\"isArray && shouldShowTruncated\" class=\"w-full\">\n <div class=\"mt-2\">\n <div\n v-for=\"(item, index) in truncatedArrayItems\"\n :key=\"index\"\n class=\"mb-1.5 py-2.5 px-3 pl-4 bg-transparent border-l-[3px] border-l-blue-500 rounded-none transition-all duration-200 cursor-pointer relative hover:bg-slate-50 hover:border-l-blue-600\">\n <div class=\"absolute -left-2 top-1/2 -translate-y-1/2 w-5 h-5 bg-blue-500 text-white rounded-full flex items-center justify-center text-[10px] font-semibold font-mono z-10 hover:bg-blue-600\">{{ index }}</div>\n <div v-if=\"arrayUtils.isObjectItem(item)\" class=\"flex flex-col gap-1 mt-1 px-2\">\n <div\n v-for=\"key in arrayUtils.getItemKeys(item)\"\n :key=\"key\"\n class=\"flex items-start gap-2 text-xs font-mono\">\n <span class=\"font-semibold text-gray-600 flex-shrink-0 min-w-[80px]\">{{ key }}:</span>\n <span class=\"text-gray-800 break-words whitespace-pre-wrap flex-1\">{{ arrayUtils.formatItemValue(item, key) }}</span>\n </div>\n </div>\n <div v-else class=\"text-xs py-1.5 px-2 font-mono text-gray-800 break-words whitespace-pre-wrap mt-1\">{{ arrayUtils.formatValue(item) }}</div>\n </div>\n <div class=\"mb-1.5 py-2.5 px-3 pl-4 bg-transparent border-none border-l-[3px] border-l-blue-500 rounded-none transition-all duration-200 cursor-pointer relative opacity-70 hover:opacity-100\">\n <div class=\"text-xs py-1.5 px-2 font-mono text-gray-500 italic break-words whitespace-pre-wrap mt-1\">\n ... and {{ remainingArrayCount }} more item{{ remainingArrayCount !== 1 ? 's' : '' }}\n </div>\n </div>\n </div>\n <button\n @click=\"toggleValueExpansion\"\n class=\"mt-2 text-blue-600 hover:text-blue-800 text-sm font-medium flex items-center gap-1 transform transition-all duration-200 ease-in-out hover:translate-x-0.5\"\n >\n <svg class=\"w-4 h-4\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M19 9l-7 7-7-7\"></path>\n </svg>\n Show all {{ arrayValue.length }} items\n </button>\n </div>\n <!-- Non-array truncated view -->\n <div v-else-if=\"shouldShowTruncated && !isArray\" class=\"relative\">\n <div class=\"text-gray-700 whitespace-pre-wrap break-words font-mono text-sm\">{{truncatedString}}</div>\n <button\n @click=\"toggleValueExpansion\"\n class=\"mt-2 text-blue-600 hover:text-blue-800 text-sm font-medium flex items-center gap-1 transform transition-all duration-200 ease-in-out hover:translate-x-0.5\"\n >\n <svg class=\"w-4 h-4\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M19 9l-7 7-7-7\"></path>\n </svg>\n Show more ({{valueAsString.length}} characters)\n </button>\n </div>\n <!-- Expanded view -->\n <div v-else-if=\"needsTruncation && isValueExpanded\" class=\"relative\">\n <component :is=\"getComponentForPath(path)\" :value=\"getValueForPath(path.path)\"></component>\n <button\n @click=\"toggleValueExpansion\"\n class=\"mt-2 text-blue-600 hover:text-blue-800 text-sm font-medium flex items-center gap-1 transform transition-all duration-200 ease-in-out hover:translate-x-0.5\"\n >\n <svg class=\"w-4 h-4 rotate-180\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M19 9l-7 7-7-7\"></path>\n </svg>\n Show less\n </button>\n </div>\n <!-- Full view (no truncation needed) -->\n <div v-else>\n <component :is=\"getComponentForPath(path)\" :value=\"getValueForPath(path.path)\"></component>\n </div>\n </div>\n </div>\n</div>\n";
|
|
2786
2907
|
|
|
2787
|
-
/***/ }
|
|
2908
|
+
/***/ },
|
|
2788
2909
|
|
|
2789
|
-
/***/ "./frontend/src/document-details/document-property/document-property.js"
|
|
2910
|
+
/***/ "./frontend/src/document-details/document-property/document-property.js"
|
|
2790
2911
|
/*!******************************************************************************!*\
|
|
2791
2912
|
!*** ./frontend/src/document-details/document-property/document-property.js ***!
|
|
2792
2913
|
\******************************************************************************/
|
|
2793
|
-
|
|
2914
|
+
(module, __unused_webpack_exports, __webpack_require__) {
|
|
2794
2915
|
|
|
2795
2916
|
"use strict";
|
|
2796
2917
|
/* global clearTimeout setTimeout */
|
|
@@ -2798,6 +2919,7 @@ module.exports = "<div class=\"border border-gray-200 rounded-lg mb-2\">\n <!--
|
|
|
2798
2919
|
|
|
2799
2920
|
|
|
2800
2921
|
const mpath = __webpack_require__(/*! mpath */ "./node_modules/mpath/index.js");
|
|
2922
|
+
const { inspect } = __webpack_require__(/*! node-inspect-extracted */ "./node_modules/node-inspect-extracted/dist/inspect.js");
|
|
2801
2923
|
const template = __webpack_require__(/*! ./document-property.html */ "./frontend/src/document-details/document-property/document-property.html");
|
|
2802
2924
|
|
|
2803
2925
|
const appendCSS = __webpack_require__(/*! ../../appendCSS */ "./frontend/src/appendCSS.js");
|
|
@@ -2833,10 +2955,32 @@ module.exports = app => app.component('document-property', {
|
|
|
2833
2955
|
}
|
|
2834
2956
|
return String(value);
|
|
2835
2957
|
},
|
|
2958
|
+
_arrayValueData() {
|
|
2959
|
+
const value = this.getValueForPath(this.path.path);
|
|
2960
|
+
return {
|
|
2961
|
+
value: Array.isArray(value) ? value : [],
|
|
2962
|
+
isArray: Array.isArray(value)
|
|
2963
|
+
};
|
|
2964
|
+
},
|
|
2965
|
+
isArray() {
|
|
2966
|
+
return this._arrayValueData.isArray;
|
|
2967
|
+
},
|
|
2968
|
+
arrayValue() {
|
|
2969
|
+
return this._arrayValueData.value;
|
|
2970
|
+
},
|
|
2836
2971
|
needsTruncation() {
|
|
2837
|
-
//
|
|
2972
|
+
// For arrays, check if it has more than 3 items (regardless of expansion state)
|
|
2973
|
+
if (this.isArray) {
|
|
2974
|
+
const arr = this.arrayValue;
|
|
2975
|
+
return arr && arr.length > 3;
|
|
2976
|
+
}
|
|
2977
|
+
// For other types, truncate if value is longer than 200 characters
|
|
2838
2978
|
return this.valueAsString.length > 200;
|
|
2839
2979
|
},
|
|
2980
|
+
shouldShowTruncated() {
|
|
2981
|
+
// For other types, show truncated if needs truncation and not expanded
|
|
2982
|
+
return this.needsTruncation && !this.isValueExpanded;
|
|
2983
|
+
},
|
|
2840
2984
|
displayValue() {
|
|
2841
2985
|
if (!this.needsTruncation || this.isValueExpanded) {
|
|
2842
2986
|
return this.getValueForPath(this.path.path);
|
|
@@ -2846,9 +2990,24 @@ module.exports = app => app.component('document-property', {
|
|
|
2846
2990
|
},
|
|
2847
2991
|
truncatedString() {
|
|
2848
2992
|
if (this.needsTruncation && !this.isValueExpanded) {
|
|
2849
|
-
|
|
2993
|
+
// Arrays are handled in template, so this is for non-arrays
|
|
2994
|
+
if (!this.isArray) {
|
|
2995
|
+
return this.valueAsString.substring(0, 200) + '...';
|
|
2996
|
+
}
|
|
2850
2997
|
}
|
|
2851
2998
|
return this.valueAsString;
|
|
2999
|
+
},
|
|
3000
|
+
truncatedArrayItems() {
|
|
3001
|
+
if (this.isArray && this.needsTruncation && !this.isValueExpanded) {
|
|
3002
|
+
return this.arrayValue.slice(0, 2);
|
|
3003
|
+
}
|
|
3004
|
+
return [];
|
|
3005
|
+
},
|
|
3006
|
+
remainingArrayCount() {
|
|
3007
|
+
if (this.isArray && this.needsTruncation && !this.isValueExpanded) {
|
|
3008
|
+
return this.arrayValue.length - 2;
|
|
3009
|
+
}
|
|
3010
|
+
return 0;
|
|
2852
3011
|
}
|
|
2853
3012
|
},
|
|
2854
3013
|
methods: {
|
|
@@ -2874,6 +3033,9 @@ module.exports = app => app.component('document-property', {
|
|
|
2874
3033
|
if (path.instance === 'Embedded') {
|
|
2875
3034
|
return 'edit-subdocument';
|
|
2876
3035
|
}
|
|
3036
|
+
if (path.instance === 'Mixed') {
|
|
3037
|
+
return 'edit-subdocument';
|
|
3038
|
+
}
|
|
2877
3039
|
if (path.instance === 'Boolean') {
|
|
2878
3040
|
return 'edit-boolean';
|
|
2879
3041
|
}
|
|
@@ -2886,6 +3048,10 @@ module.exports = app => app.component('document-property', {
|
|
|
2886
3048
|
props.enumValues = path.enum;
|
|
2887
3049
|
}
|
|
2888
3050
|
}
|
|
3051
|
+
if (path.instance === 'Array') {
|
|
3052
|
+
props.path = path;
|
|
3053
|
+
props.schemaPaths = this.schemaPaths;
|
|
3054
|
+
}
|
|
2889
3055
|
return props;
|
|
2890
3056
|
},
|
|
2891
3057
|
getValueForPath(path) {
|
|
@@ -2961,24 +3127,24 @@ module.exports = app => app.component('document-property', {
|
|
|
2961
3127
|
});
|
|
2962
3128
|
|
|
2963
3129
|
|
|
2964
|
-
/***/ }
|
|
3130
|
+
/***/ },
|
|
2965
3131
|
|
|
2966
|
-
/***/ "./frontend/src/document/confirm-changes/confirm-changes.html"
|
|
3132
|
+
/***/ "./frontend/src/document/confirm-changes/confirm-changes.html"
|
|
2967
3133
|
/*!********************************************************************!*\
|
|
2968
3134
|
!*** ./frontend/src/document/confirm-changes/confirm-changes.html ***!
|
|
2969
3135
|
\********************************************************************/
|
|
2970
|
-
|
|
3136
|
+
(module) {
|
|
2971
3137
|
|
|
2972
3138
|
"use strict";
|
|
2973
3139
|
module.exports = "<div>\n <h2>\n Are you sure you want to save the following changes?\n </h2>\n <pre class=\"max-h-[50vh] overflow-auto\"><code ref=\"code\" class=\"language-javascript\" v-text=\"displayValue\"></code></pre>\n <div class=\"flex gap-2 mt-2\">\n <async-button\n class=\"rounded-md bg-green-600 px-2.5 py-1.5 text-sm font-semibold text-white shadow-sm hover:bg-green-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-green-600\"\n @click=\"startSave\">\n Confirm\n </async-button>\n <button \n class=\"rounded-md bg-gray-200 px-2.5 py-1.5 text-sm font-semibold text-black shadow-sm hover:bg-gray-300 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-gray-300\"\n @click=\"closeConfirm\">\n Cancel\n </button>\n </div>\n</div>";
|
|
2974
3140
|
|
|
2975
|
-
/***/ }
|
|
3141
|
+
/***/ },
|
|
2976
3142
|
|
|
2977
|
-
/***/ "./frontend/src/document/confirm-changes/confirm-changes.js"
|
|
3143
|
+
/***/ "./frontend/src/document/confirm-changes/confirm-changes.js"
|
|
2978
3144
|
/*!******************************************************************!*\
|
|
2979
3145
|
!*** ./frontend/src/document/confirm-changes/confirm-changes.js ***!
|
|
2980
3146
|
\******************************************************************/
|
|
2981
|
-
|
|
3147
|
+
(module, __unused_webpack_exports, __webpack_require__) {
|
|
2982
3148
|
|
|
2983
3149
|
"use strict";
|
|
2984
3150
|
|
|
@@ -3006,24 +3172,24 @@ module.exports = app => app.component('confirm-changes', {
|
|
|
3006
3172
|
}
|
|
3007
3173
|
});
|
|
3008
3174
|
|
|
3009
|
-
/***/ }
|
|
3175
|
+
/***/ },
|
|
3010
3176
|
|
|
3011
|
-
/***/ "./frontend/src/document/confirm-delete/confirm-delete.html"
|
|
3177
|
+
/***/ "./frontend/src/document/confirm-delete/confirm-delete.html"
|
|
3012
3178
|
/*!******************************************************************!*\
|
|
3013
3179
|
!*** ./frontend/src/document/confirm-delete/confirm-delete.html ***!
|
|
3014
3180
|
\******************************************************************/
|
|
3015
|
-
|
|
3181
|
+
(module) {
|
|
3016
3182
|
|
|
3017
3183
|
"use strict";
|
|
3018
3184
|
module.exports = "<div>\n <h2>\n Are you sure you want to delete the following document?\n </h2>\n <pre class=\"max-h-[50vh] overflow-auto\"><code ref=\"code\" class=\"language-javascript\" v-text=\"displayValue\"></code></pre>\n <div class=\"flex gap-2 mt-2\">\n <async-button\n class=\"rounded-md bg-green-600 px-2.5 py-1.5 text-sm font-semibold text-white shadow-sm hover:bg-green-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-green-600\"\n @click=\"startDelete\">\n Confirm\n </async-button>\n <button\n class=\"rounded-md bg-gray-200 px-2.5 py-1.5 text-sm font-semibold text-black shadow-sm hover:bg-gray-300 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-gray-300\"\n @click=\"closeDelete\">\n Cancel\n </button>\n </div>\n</div>\n";
|
|
3019
3185
|
|
|
3020
|
-
/***/ }
|
|
3186
|
+
/***/ },
|
|
3021
3187
|
|
|
3022
|
-
/***/ "./frontend/src/document/confirm-delete/confirm-delete.js"
|
|
3188
|
+
/***/ "./frontend/src/document/confirm-delete/confirm-delete.js"
|
|
3023
3189
|
/*!****************************************************************!*\
|
|
3024
3190
|
!*** ./frontend/src/document/confirm-delete/confirm-delete.js ***!
|
|
3025
3191
|
\****************************************************************/
|
|
3026
|
-
|
|
3192
|
+
(module, __unused_webpack_exports, __webpack_require__) {
|
|
3027
3193
|
|
|
3028
3194
|
"use strict";
|
|
3029
3195
|
|
|
@@ -3051,35 +3217,35 @@ module.exports = app => app.component('confirm-delete', {
|
|
|
3051
3217
|
}
|
|
3052
3218
|
});
|
|
3053
3219
|
|
|
3054
|
-
/***/ }
|
|
3220
|
+
/***/ },
|
|
3055
3221
|
|
|
3056
|
-
/***/ "./frontend/src/document/document.css"
|
|
3222
|
+
/***/ "./frontend/src/document/document.css"
|
|
3057
3223
|
/*!********************************************!*\
|
|
3058
3224
|
!*** ./frontend/src/document/document.css ***!
|
|
3059
3225
|
\********************************************/
|
|
3060
|
-
|
|
3226
|
+
(module) {
|
|
3061
3227
|
|
|
3062
3228
|
"use strict";
|
|
3063
3229
|
module.exports = ".document {\n max-width: 1200px;\n margin-left: auto;\n margin-right: auto;\n padding-top: 25px;\n}\n\n.document .document-menu {\n display: flex;\n position: sticky;\n top: 0;\n z-index: 100;\n background-color: white;\n border-radius: 5px;\n padding: 15px 15px;\n margin: -15px 0 15px 0;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n}\n\n.document .document-menu .left {\n flex-grow: 1;\n}\n\n.document .document-menu .right {\n flex-grow: 1;\n text-align: right;\n}\n\n.document .document-menu .right button:not(:last-child) {\n margin-right: 0.5em;\n}\n\n.document button img {\n height: 1em;\n}";
|
|
3064
3230
|
|
|
3065
|
-
/***/ }
|
|
3231
|
+
/***/ },
|
|
3066
3232
|
|
|
3067
|
-
/***/ "./frontend/src/document/document.html"
|
|
3233
|
+
/***/ "./frontend/src/document/document.html"
|
|
3068
3234
|
/*!*********************************************!*\
|
|
3069
3235
|
!*** ./frontend/src/document/document.html ***!
|
|
3070
3236
|
\*********************************************/
|
|
3071
|
-
|
|
3237
|
+
(module) {
|
|
3072
3238
|
|
|
3073
3239
|
"use strict";
|
|
3074
3240
|
module.exports = "<div class=\"document px-1 md:px-0\">\n <div class=\"flex justify-between sticky top-0 z-50 bg-white p-4 border-b border-gray-200 shadow-sm\">\n <div class=\"flex\">\n <button\n @click=\"goBack\"\n class=\"mr-2 rounded-md bg-gray-400 px-2.5 py-1.5 text-sm font-semibold text-white shadow-sm hover:bg-slate-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-slate-600\">\n ‹ Back\n </button>\n <button\n @click=\"viewMode = 'fields'\"\n :class=\"viewMode === 'fields'\n ? 'bg-blue-600 text-white z-10'\n : 'bg-gray-200 text-gray-700 hover:bg-gray-300'\"\n class=\"px-4 py-2 text-sm font-medium focus:outline-none focus:ring-2 focus:ring-blue-500 flex items-center gap-2 border border-gray-300 border-r-0 rounded-l-lg rounded-r-none\"\n >\n <svg class=\"w-4 h-4\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M4 6h16M4 10h16M4 14h16M4 18h16\"></path>\n </svg>\n Fields\n </button>\n <button\n @click=\"viewMode = 'json'\"\n :class=\"viewMode === 'json'\n ? 'bg-blue-600 text-white z-10'\n : 'bg-gray-200 text-gray-700 hover:bg-gray-300'\"\n class=\"px-4 py-2 text-sm font-medium focus:outline-none focus:ring-2 focus:ring-blue-500 flex items-center gap-2 border border-gray-300 rounded-r-lg rounded-l-none\"\n >\n <svg class=\"w-4 h-4\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M10 20l4-16m4 4l4 4-4 4M6 16l-4-4 4-4\"></path>\n </svg>\n JSON\n </button>\n </div>\n\n <div class=\"gap-2 hidden md:flex\">\n <button\n v-if=\"!editting\"\n @click=\"editting = true\"\n :disabled=\"!canEdit\"\n :class=\"{'cursor-not-allowed opacity-50': !canEdit}\"\n type=\"button\"\n class=\"rounded-md bg-ultramarine-600 px-2.5 py-1.5 text-sm font-semibold text-white shadow-sm hover:bg-ultramarine-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-teal-600\">\n <img src=\"images/edit.svg\" class=\"inline\" /> Edit\n </button>\n <button\n v-if=\"editting\"\n @click=\"editting = false\"\n type=\"button\"\n class=\"rounded-md bg-slate-600 px-2.5 py-1.5 text-sm font-semibold text-white shadow-sm hover:bg-slate-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-slate-600\">\n × Cancel\n </button>\n <button\n v-if=\"editting\"\n :disabled=\"!canManipulate\"\n :class=\"{'cursor-not-allowed opacity-50': !canManipulate}\"\n @click=\"shouldShowConfirmModal=true;\"\n type=\"button\"\n class=\"rounded-md bg-forest-green-600 px-2.5 py-1.5 text-sm font-semibold text-white shadow-sm hover:bg-green-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-green-600\">\n <img src=\"images/save.svg\" class=\"inline\" /> Save\n </button>\n <button\n @click=\"shouldShowDeleteModal=true;\"\n :disabled=\"!canManipulate\"\n :class=\"{'cursor-not-allowed opacity-50': !canManipulate}\"\n type=\"button\"\n class=\"rounded-md bg-valencia-600 px-2.5 py-1.5 text-sm font-semibold text-white shadow-sm hover:bg-valencia-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-red-600\">\n <img src=\"images/delete.svg\" class=\"inline\" /> Delete\n </button>\n <button\n @click=\"shouldShowCloneModal=true;\"\n :disabled=\"!canManipulate\"\n :class=\"{'cursor-not-allowed opacity-50': !canManipulate}\"\n type=\"button\"\n class=\"rounded-md bg-pink-600 px-2.5 py-1.5 text-sm font-semibold text-white shadow-sm hover:bg-valencia-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-red-600\">\n <img src=\"images/duplicate.svg\" class=\"inline\" /> Clone\n </button>\n </div>\n <div class=\"md:hidden flex items-center\">\n <div class=\"relative\">\n <button\n @click=\"mobileMenuOpen = !mobileMenuOpen\"\n type=\"button\"\n class=\"inline-flex items-center justify-center rounded-md bg-gray-200 px-3 py-2 text-sm font-medium text-gray-700 hover:bg-gray-300 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500\"\n aria-expanded=\"mobileMenuOpen\"\n aria-label=\"Open menu\"\n >\n <svg class=\"w-5 h-5\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\"\n d=\"M4 6h16M4 12h16M4 18h16\"></path>\n </svg>\n </button>\n <div\n v-show=\"mobileMenuOpen\"\n @click.away=\"mobileMenuOpen = false\"\n class=\"origin-top-right absolute right-0 mt-2 w-52 rounded-md shadow-lg bg-white ring-1 ring-black ring-opacity-5 z-50\"\n >\n <div class=\"py-1 flex flex-col\">\n <button\n v-if=\"!editting\"\n @click=\"editting = true; mobileMenuOpen = false\"\n :disabled=\"!canEdit\"\n :class=\"['flex items-center px-4 py-2 text-sm text-gray-700', !canEdit ? 'cursor-not-allowed opacity-50' : 'hover:bg-ultramarine-100']\"\n type=\"button\"\n >\n <img src=\"images/edit.svg\" class=\"inline mr-2\" /> Edit\n </button>\n <button\n v-if=\"editting\"\n @click=\"editting = false; mobileMenuOpen = false\"\n type=\"button\"\n class=\"flex items-center px-4 py-2 text-sm text-gray-700 hover:bg-slate-100\"\n >\n × Cancel\n </button>\n <button\n v-if=\"editting\"\n :disabled=\"!canManipulate\"\n :class=\"['flex items-center px-4 py-2 text-sm text-gray-700', !canManipulate ? 'cursor-not-allowed opacity-50' : 'hover:bg-green-100']\"\n @click=\"shouldShowConfirmModal=true; mobileMenuOpen = false\"\n type=\"button\"\n >\n <img src=\"images/save.svg\" class=\"inline mr-2\" /> Save\n </button>\n <button\n @click=\"shouldShowDeleteModal=true; mobileMenuOpen = false\"\n :disabled=\"!canManipulate\"\n :class=\"['flex items-center px-4 py-2 text-sm text-gray-700', !canManipulate ? 'cursor-not-allowed opacity-50' : 'hover:bg-red-100']\"\n type=\"button\"\n >\n <img src=\"images/delete.svg\" class=\"inline mr-2\" /> Delete\n </button>\n <button\n @click=\"shouldShowCloneModal=true; mobileMenuOpen = false\"\n :disabled=\"!canManipulate\"\n :class=\"['flex items-center px-4 py-2 text-sm text-gray-700', !canManipulate ? 'cursor-not-allowed opacity-50' : 'hover:bg-pink-100']\"\n type=\"button\"\n >\n <img src=\"images/duplicate.svg\" class=\"inline mr-2\" /> Clone\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div v-if=\"status === 'loaded'\">\n <document-details\n :document=\"document\"\n :schemaPaths=\"schemaPaths\"\n :virtualPaths=\"virtualPaths\"\n :editting=\"editting\"\n :changes=\"changes\"\n :invalid=\"invalid\"\n :viewMode=\"viewMode\"\n @add-field=\"addField\"\n @view-mode-change=\"updateViewMode\"></document-details>\n <modal v-if=\"shouldShowConfirmModal\">\n <template v-slot:body>\n <div class=\"modal-exit\" @click=\"shouldShowConfirmModal = false;\">×</div>\n <confirm-changes @close=\"shouldShowConfirmModal = false;\" @save=\"save\" :value=\"changes\"></confirm-changes>\n </template>\n </modal>\n <modal v-if=\"shouldShowDeleteModal\">\n <template v-slot:body>\n <div class=\"modal-exit\" @click=\"shouldShowDeleteModal = false;\">×</div>\n <confirm-delete @close=\"shouldShowDeleteModal = false;\" @remove=\"remove\" :value=\"document\"></confirm-delete>\n </template>\n </modal>\n <modal v-if=\"shouldShowCloneModal\">\n <template v-slot:body>\n <div class=\"modal-exit\" @click=\"shouldShowCloneModal = false;\">×</div>\n <clone-document :currentModel=\"model\" :doc=\"document\" :schemaPaths=\"schemaPaths\" @close=\"showClonedDocument\"></clone-document>\n </template>\n </modal>\n </div>\n</div>\n";
|
|
3075
3241
|
|
|
3076
|
-
/***/ }
|
|
3242
|
+
/***/ },
|
|
3077
3243
|
|
|
3078
|
-
/***/ "./frontend/src/document/document.js"
|
|
3244
|
+
/***/ "./frontend/src/document/document.js"
|
|
3079
3245
|
/*!*******************************************!*\
|
|
3080
3246
|
!*** ./frontend/src/document/document.js ***!
|
|
3081
3247
|
\*******************************************/
|
|
3082
|
-
|
|
3248
|
+
(module, __unused_webpack_exports, __webpack_require__) {
|
|
3083
3249
|
|
|
3084
3250
|
"use strict";
|
|
3085
3251
|
|
|
@@ -3224,35 +3390,24 @@ module.exports = app => app.component('document', {
|
|
|
3224
3390
|
});
|
|
3225
3391
|
|
|
3226
3392
|
|
|
3227
|
-
/***/ }
|
|
3393
|
+
/***/ },
|
|
3228
3394
|
|
|
3229
|
-
/***/ "./frontend/src/edit-array/edit-array.
|
|
3230
|
-
/*!************************************************!*\
|
|
3231
|
-
!*** ./frontend/src/edit-array/edit-array.css ***!
|
|
3232
|
-
\************************************************/
|
|
3233
|
-
/***/ ((module) => {
|
|
3234
|
-
|
|
3235
|
-
"use strict";
|
|
3236
|
-
module.exports = ".edit-array button {\n margin-top: 0.5em;\n}";
|
|
3237
|
-
|
|
3238
|
-
/***/ }),
|
|
3239
|
-
|
|
3240
|
-
/***/ "./frontend/src/edit-array/edit-array.html":
|
|
3395
|
+
/***/ "./frontend/src/edit-array/edit-array.html"
|
|
3241
3396
|
/*!*************************************************!*\
|
|
3242
3397
|
!*** ./frontend/src/edit-array/edit-array.html ***!
|
|
3243
3398
|
\*************************************************/
|
|
3244
|
-
|
|
3399
|
+
(module) {
|
|
3245
3400
|
|
|
3246
3401
|
"use strict";
|
|
3247
|
-
module.exports = "<div class=\"
|
|
3402
|
+
module.exports = "<div class=\"w-full\">\n <!-- CodeMirror editor for the entire array -->\n <textarea\n ref=\"arrayEditor\"\n class=\"w-full border border-gray-300 p-2 font-mono\"\n :style=\"{ minHeight: '300px' }\">\n </textarea>\n</div>";
|
|
3248
3403
|
|
|
3249
|
-
/***/ }
|
|
3404
|
+
/***/ },
|
|
3250
3405
|
|
|
3251
|
-
/***/ "./frontend/src/edit-array/edit-array.js"
|
|
3406
|
+
/***/ "./frontend/src/edit-array/edit-array.js"
|
|
3252
3407
|
/*!***********************************************!*\
|
|
3253
3408
|
!*** ./frontend/src/edit-array/edit-array.js ***!
|
|
3254
3409
|
\***********************************************/
|
|
3255
|
-
|
|
3410
|
+
(module, __unused_webpack_exports, __webpack_require__) {
|
|
3256
3411
|
|
|
3257
3412
|
"use strict";
|
|
3258
3413
|
|
|
@@ -3267,67 +3422,123 @@ const ObjectId = new Proxy(BSON.ObjectId, {
|
|
|
3267
3422
|
}
|
|
3268
3423
|
});
|
|
3269
3424
|
|
|
3270
|
-
const appendCSS = __webpack_require__(/*! ../appendCSS */ "./frontend/src/appendCSS.js");
|
|
3271
|
-
appendCSS(__webpack_require__(/*! ./edit-array.css */ "./frontend/src/edit-array/edit-array.css"));
|
|
3272
3425
|
|
|
3273
3426
|
module.exports = app => app.component('edit-array', {
|
|
3274
3427
|
template: template,
|
|
3275
3428
|
props: ['value'],
|
|
3276
|
-
data
|
|
3277
|
-
|
|
3278
|
-
|
|
3279
|
-
|
|
3280
|
-
|
|
3281
|
-
this.$refs.arrayEditor.value = this.currentValue;
|
|
3282
|
-
this.editor = CodeMirror.fromTextArea(this.$refs.arrayEditor, {
|
|
3283
|
-
mode: 'javascript',
|
|
3284
|
-
lineNumbers: true
|
|
3285
|
-
});
|
|
3286
|
-
this.editor.on('change', ev => {
|
|
3287
|
-
this.currentValue = this.editor.getValue();
|
|
3288
|
-
});
|
|
3429
|
+
data() {
|
|
3430
|
+
return {
|
|
3431
|
+
arrayValue: [],
|
|
3432
|
+
arrayEditor: null
|
|
3433
|
+
};
|
|
3289
3434
|
},
|
|
3290
|
-
|
|
3291
|
-
|
|
3292
|
-
|
|
3293
|
-
|
|
3435
|
+
methods: {
|
|
3436
|
+
initializeArray() {
|
|
3437
|
+
if (this.value == null) {
|
|
3438
|
+
this.arrayValue = [];
|
|
3439
|
+
} else if (Array.isArray(this.value)) {
|
|
3440
|
+
this.arrayValue = JSON.parse(JSON.stringify(this.value));
|
|
3441
|
+
} else {
|
|
3442
|
+
this.arrayValue = [];
|
|
3443
|
+
}
|
|
3444
|
+
|
|
3445
|
+
// Update CodeMirror editor if it exists
|
|
3446
|
+
this.$nextTick(() => {
|
|
3447
|
+
if (this.arrayEditor) {
|
|
3448
|
+
const arrayStr = JSON.stringify(this.arrayValue, null, 2);
|
|
3449
|
+
this.arrayEditor.setValue(arrayStr);
|
|
3450
|
+
}
|
|
3451
|
+
});
|
|
3452
|
+
},
|
|
3453
|
+
initializeArrayEditor() {
|
|
3454
|
+
this.$nextTick(() => {
|
|
3455
|
+
const textareaRef = this.$refs.arrayEditor;
|
|
3456
|
+
const textarea = Array.isArray(textareaRef) ? textareaRef[0] : textareaRef;
|
|
3457
|
+
if (textarea && !this.arrayEditor) {
|
|
3458
|
+
const arrayStr = JSON.stringify(this.arrayValue, null, 2);
|
|
3459
|
+
textarea.value = arrayStr;
|
|
3460
|
+
this.arrayEditor = CodeMirror.fromTextArea(textarea, {
|
|
3461
|
+
mode: 'javascript',
|
|
3462
|
+
lineNumbers: true
|
|
3463
|
+
});
|
|
3464
|
+
this.arrayEditor.on('change', () => {
|
|
3465
|
+
this.updateArrayFromEditor();
|
|
3466
|
+
});
|
|
3467
|
+
}
|
|
3468
|
+
});
|
|
3469
|
+
},
|
|
3470
|
+
updateArrayFromEditor() {
|
|
3471
|
+
if (!this.arrayEditor) {
|
|
3294
3472
|
return;
|
|
3295
3473
|
}
|
|
3296
3474
|
try {
|
|
3297
|
-
const
|
|
3298
|
-
|
|
3475
|
+
const value = this.arrayEditor.getValue();
|
|
3476
|
+
if (value.trim() === '') {
|
|
3477
|
+
this.arrayValue = [];
|
|
3478
|
+
} else {
|
|
3479
|
+
this.arrayValue = JSON.parse(value);
|
|
3480
|
+
}
|
|
3481
|
+
this.emitUpdate();
|
|
3482
|
+
} catch (err) {
|
|
3483
|
+
// Invalid JSON, don't update
|
|
3484
|
+
}
|
|
3485
|
+
},
|
|
3486
|
+
emitUpdate() {
|
|
3487
|
+
try {
|
|
3488
|
+
this.$emit('input', this.arrayValue);
|
|
3299
3489
|
} catch (err) {
|
|
3300
3490
|
this.$emit('error', err);
|
|
3301
3491
|
}
|
|
3302
3492
|
}
|
|
3303
3493
|
},
|
|
3494
|
+
mounted() {
|
|
3495
|
+
this.initializeArray();
|
|
3496
|
+
this.initializeArrayEditor();
|
|
3497
|
+
},
|
|
3304
3498
|
beforeDestroy() {
|
|
3305
|
-
if (this.
|
|
3306
|
-
this.
|
|
3499
|
+
if (this.arrayEditor) {
|
|
3500
|
+
this.arrayEditor.toTextArea();
|
|
3501
|
+
}
|
|
3502
|
+
},
|
|
3503
|
+
watch: {
|
|
3504
|
+
value: {
|
|
3505
|
+
handler(newValue, oldValue) {
|
|
3506
|
+
// Initialize array when value prop changes
|
|
3507
|
+
this.initializeArray();
|
|
3508
|
+
// Update array editor if it exists
|
|
3509
|
+
if (this.arrayEditor) {
|
|
3510
|
+
this.$nextTick(() => {
|
|
3511
|
+
const arrayStr = JSON.stringify(this.arrayValue, null, 2);
|
|
3512
|
+
this.arrayEditor.setValue(arrayStr);
|
|
3513
|
+
});
|
|
3514
|
+
}
|
|
3515
|
+
},
|
|
3516
|
+
deep: true,
|
|
3517
|
+
immediate: true
|
|
3307
3518
|
}
|
|
3308
3519
|
},
|
|
3309
3520
|
emits: ['input', 'error']
|
|
3310
3521
|
});
|
|
3311
3522
|
|
|
3312
3523
|
|
|
3313
|
-
/***/ }
|
|
3524
|
+
/***/ },
|
|
3314
3525
|
|
|
3315
|
-
/***/ "./frontend/src/edit-boolean/edit-boolean.html"
|
|
3526
|
+
/***/ "./frontend/src/edit-boolean/edit-boolean.html"
|
|
3316
3527
|
/*!*****************************************************!*\
|
|
3317
3528
|
!*** ./frontend/src/edit-boolean/edit-boolean.html ***!
|
|
3318
3529
|
\*****************************************************/
|
|
3319
|
-
|
|
3530
|
+
(module) {
|
|
3320
3531
|
|
|
3321
3532
|
"use strict";
|
|
3322
3533
|
module.exports = "<div class=\"edit-boolean\">\n <div class=\"flex flex-wrap gap-2\">\n <label class=\"flex items-center gap-2 px-3 py-2 border rounded cursor-pointer hover:bg-gray-50\" \n :class=\"selectedValue === true ? 'bg-blue-100 border-blue-300 text-blue-800' : 'border-gray-300 text-gray-700'\">\n <input\n type=\"radio\"\n :checked=\"selectedValue === true\"\n @change=\"selectValue(true)\"\n class=\"w-4 h-4 text-blue-600 border-gray-300 focus:ring-blue-500\"\n />\n <span class=\"text-sm font-medium\">true</span>\n </label>\n \n <label class=\"flex items-center gap-2 px-3 py-2 border rounded cursor-pointer hover:bg-gray-50\"\n :class=\"selectedValue === false ? 'bg-blue-100 border-blue-300 text-blue-800' : 'border-gray-300 text-gray-700'\">\n <input\n type=\"radio\"\n :checked=\"selectedValue === false\"\n @change=\"selectValue(false)\"\n class=\"w-4 h-4 text-blue-600 border-gray-300 focus:ring-blue-500\"\n />\n <span class=\"text-sm font-medium\">false</span>\n </label>\n \n <label class=\"flex items-center gap-2 px-3 py-2 border rounded cursor-pointer hover:bg-gray-50\"\n :class=\"selectedValue === null ? 'bg-blue-100 border-blue-300 text-blue-800' : 'border-gray-300 text-gray-700'\">\n <input\n type=\"radio\"\n :checked=\"selectedValue === null\"\n @change=\"selectValue(null)\"\n class=\"w-4 h-4 text-blue-600 border-gray-300 focus:ring-blue-500\"\n />\n <span class=\"text-sm font-medium\">null</span>\n </label>\n \n <label class=\"flex items-center gap-2 px-3 py-2 border rounded cursor-pointer hover:bg-gray-50\"\n :class=\"selectedValue === undefined ? 'bg-blue-100 border-blue-300 text-blue-800' : 'border-gray-300 text-gray-700'\">\n <input\n type=\"radio\"\n :checked=\"selectedValue === undefined\"\n @change=\"selectValue(undefined)\"\n class=\"w-4 h-4 text-blue-600 border-gray-300 focus:ring-blue-500\"\n />\n <span class=\"text-sm font-medium\">undefined</span>\n </label>\n </div>\n</div>\n";
|
|
3323
3534
|
|
|
3324
|
-
/***/ }
|
|
3535
|
+
/***/ },
|
|
3325
3536
|
|
|
3326
|
-
/***/ "./frontend/src/edit-boolean/edit-boolean.js"
|
|
3537
|
+
/***/ "./frontend/src/edit-boolean/edit-boolean.js"
|
|
3327
3538
|
/*!***************************************************!*\
|
|
3328
3539
|
!*** ./frontend/src/edit-boolean/edit-boolean.js ***!
|
|
3329
3540
|
\***************************************************/
|
|
3330
|
-
|
|
3541
|
+
(module, __unused_webpack_exports, __webpack_require__) {
|
|
3331
3542
|
|
|
3332
3543
|
"use strict";
|
|
3333
3544
|
|
|
@@ -3370,24 +3581,24 @@ module.exports = app => app.component('edit-boolean', {
|
|
|
3370
3581
|
});
|
|
3371
3582
|
|
|
3372
3583
|
|
|
3373
|
-
/***/ }
|
|
3584
|
+
/***/ },
|
|
3374
3585
|
|
|
3375
|
-
/***/ "./frontend/src/edit-date/edit-date.html"
|
|
3586
|
+
/***/ "./frontend/src/edit-date/edit-date.html"
|
|
3376
3587
|
/*!***********************************************!*\
|
|
3377
3588
|
!*** ./frontend/src/edit-date/edit-date.html ***!
|
|
3378
3589
|
\***********************************************/
|
|
3379
|
-
|
|
3590
|
+
(module) {
|
|
3380
3591
|
|
|
3381
3592
|
"use strict";
|
|
3382
3593
|
module.exports = "<div>\n <input\n v-if=\"dateSelection == 'picker'\"\n class=\"w-64 h-8 border border-gray-300 outline-0\"\n type=\"datetime-local\"\n :value=\"valueAsLocalString\"\n @input=\"$emit('input', $event.target.value)\">\n <input\n v-if=\"dateSelection == 'iso'\"\n type=\"text\"\n class=\"w-64 h-8 border border-gray-300 outline-0\"\n :value=\"valueAsISOString\"\n @input=\"updateFromISO\">\n</div>";
|
|
3383
3594
|
|
|
3384
|
-
/***/ }
|
|
3595
|
+
/***/ },
|
|
3385
3596
|
|
|
3386
|
-
/***/ "./frontend/src/edit-date/edit-date.js"
|
|
3597
|
+
/***/ "./frontend/src/edit-date/edit-date.js"
|
|
3387
3598
|
/*!*********************************************!*\
|
|
3388
3599
|
!*** ./frontend/src/edit-date/edit-date.js ***!
|
|
3389
3600
|
\*********************************************/
|
|
3390
|
-
|
|
3601
|
+
(module, __unused_webpack_exports, __webpack_require__) {
|
|
3391
3602
|
|
|
3392
3603
|
"use strict";
|
|
3393
3604
|
|
|
@@ -3451,24 +3662,24 @@ module.exports = app => app.component('edit-date', {
|
|
|
3451
3662
|
});
|
|
3452
3663
|
|
|
3453
3664
|
|
|
3454
|
-
/***/ }
|
|
3665
|
+
/***/ },
|
|
3455
3666
|
|
|
3456
|
-
/***/ "./frontend/src/edit-default/edit-default.html"
|
|
3667
|
+
/***/ "./frontend/src/edit-default/edit-default.html"
|
|
3457
3668
|
/*!*****************************************************!*\
|
|
3458
3669
|
!*** ./frontend/src/edit-default/edit-default.html ***!
|
|
3459
3670
|
\*****************************************************/
|
|
3460
|
-
|
|
3671
|
+
(module) {
|
|
3461
3672
|
|
|
3462
3673
|
"use strict";
|
|
3463
3674
|
module.exports = "<div>\n <input type=\"text\" :value=\"value\" @input=\"$emit('input', $event.target.value)\" class=\"w-full p-1 border border-gray-300 outline-0\">\n</div>";
|
|
3464
3675
|
|
|
3465
|
-
/***/ }
|
|
3676
|
+
/***/ },
|
|
3466
3677
|
|
|
3467
|
-
/***/ "./frontend/src/edit-default/edit-default.js"
|
|
3678
|
+
/***/ "./frontend/src/edit-default/edit-default.js"
|
|
3468
3679
|
/*!***************************************************!*\
|
|
3469
3680
|
!*** ./frontend/src/edit-default/edit-default.js ***!
|
|
3470
3681
|
\***************************************************/
|
|
3471
|
-
|
|
3682
|
+
(module, __unused_webpack_exports, __webpack_require__) {
|
|
3472
3683
|
|
|
3473
3684
|
"use strict";
|
|
3474
3685
|
|
|
@@ -3492,24 +3703,24 @@ module.exports = app => app.component('edit-default', {
|
|
|
3492
3703
|
}
|
|
3493
3704
|
});
|
|
3494
3705
|
|
|
3495
|
-
/***/ }
|
|
3706
|
+
/***/ },
|
|
3496
3707
|
|
|
3497
|
-
/***/ "./frontend/src/edit-number/edit-number.html"
|
|
3708
|
+
/***/ "./frontend/src/edit-number/edit-number.html"
|
|
3498
3709
|
/*!***************************************************!*\
|
|
3499
3710
|
!*** ./frontend/src/edit-number/edit-number.html ***!
|
|
3500
3711
|
\***************************************************/
|
|
3501
|
-
|
|
3712
|
+
(module) {
|
|
3502
3713
|
|
|
3503
3714
|
"use strict";
|
|
3504
3715
|
module.exports = "<div>\n <input type=\"number\" :value=\"value\" @input=\"$emit('input', $event.target.value)\">\n</div>";
|
|
3505
3716
|
|
|
3506
|
-
/***/ }
|
|
3717
|
+
/***/ },
|
|
3507
3718
|
|
|
3508
|
-
/***/ "./frontend/src/edit-number/edit-number.js"
|
|
3719
|
+
/***/ "./frontend/src/edit-number/edit-number.js"
|
|
3509
3720
|
/*!*************************************************!*\
|
|
3510
3721
|
!*** ./frontend/src/edit-number/edit-number.js ***!
|
|
3511
3722
|
\*************************************************/
|
|
3512
|
-
|
|
3723
|
+
(module, __unused_webpack_exports, __webpack_require__) {
|
|
3513
3724
|
|
|
3514
3725
|
"use strict";
|
|
3515
3726
|
|
|
@@ -3533,24 +3744,24 @@ module.exports = app => app.component('edit-number', {
|
|
|
3533
3744
|
}
|
|
3534
3745
|
});
|
|
3535
3746
|
|
|
3536
|
-
/***/ }
|
|
3747
|
+
/***/ },
|
|
3537
3748
|
|
|
3538
|
-
/***/ "./frontend/src/edit-string/edit-string.html"
|
|
3749
|
+
/***/ "./frontend/src/edit-string/edit-string.html"
|
|
3539
3750
|
/*!***************************************************!*\
|
|
3540
3751
|
!*** ./frontend/src/edit-string/edit-string.html ***!
|
|
3541
3752
|
\***************************************************/
|
|
3542
|
-
|
|
3753
|
+
(module) {
|
|
3543
3754
|
|
|
3544
3755
|
"use strict";
|
|
3545
3756
|
module.exports = "<div>\n <div v-if=\"hasEnumValues\" class=\"space-y-2\">\n <select\n class=\"w-full px-3 py-2 border border-gray-300 bg-white rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent\"\n :value=\"selectedOption\"\n @change=\"onSelectChange\"\n >\n <option v-for=\"option in normalizedEnums\" :key=\"`enum-${option}`\" :value=\"option\">\n {{ option }}\n </option>\n <option :value=\"'__null'\">null</option>\n <option :value=\"'__other'\">Other</option>\n </select>\n <input\n v-if=\"selectedOption === '__other'\"\n type=\"text\"\n class=\"w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent\"\n :value=\"otherValue\"\n @input=\"onOtherInput\"\n placeholder=\"Enter a value\"\n />\n </div>\n <div v-else>\n <input\n type=\"text\"\n class=\"w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent\"\n :value=\"value != null ? value : ''\"\n @input=\"onTextInput\"\n placeholder=\"Enter a value\"\n />\n </div>\n</div>\n";
|
|
3546
3757
|
|
|
3547
|
-
/***/ }
|
|
3758
|
+
/***/ },
|
|
3548
3759
|
|
|
3549
|
-
/***/ "./frontend/src/edit-string/edit-string.js"
|
|
3760
|
+
/***/ "./frontend/src/edit-string/edit-string.js"
|
|
3550
3761
|
/*!*************************************************!*\
|
|
3551
3762
|
!*** ./frontend/src/edit-string/edit-string.js ***!
|
|
3552
3763
|
\*************************************************/
|
|
3553
|
-
|
|
3764
|
+
(module, __unused_webpack_exports, __webpack_require__) {
|
|
3554
3765
|
|
|
3555
3766
|
"use strict";
|
|
3556
3767
|
|
|
@@ -3703,24 +3914,24 @@ module.exports = app => app.component('edit-string', {
|
|
|
3703
3914
|
});
|
|
3704
3915
|
|
|
3705
3916
|
|
|
3706
|
-
/***/ }
|
|
3917
|
+
/***/ },
|
|
3707
3918
|
|
|
3708
|
-
/***/ "./frontend/src/edit-subdocument/edit-subdocument.html"
|
|
3919
|
+
/***/ "./frontend/src/edit-subdocument/edit-subdocument.html"
|
|
3709
3920
|
/*!*************************************************************!*\
|
|
3710
3921
|
!*** ./frontend/src/edit-subdocument/edit-subdocument.html ***!
|
|
3711
3922
|
\*************************************************************/
|
|
3712
|
-
|
|
3923
|
+
(module) {
|
|
3713
3924
|
|
|
3714
3925
|
"use strict";
|
|
3715
3926
|
module.exports = "<div class=\"edit-subdocument\">\n <textarea\n ref=\"editor\"\n v-model=\"currentValue\"\n class=\"w-full border border-gray-300 p-1 h-[300px]\"></textarea>\n</div>";
|
|
3716
3927
|
|
|
3717
|
-
/***/ }
|
|
3928
|
+
/***/ },
|
|
3718
3929
|
|
|
3719
|
-
/***/ "./frontend/src/edit-subdocument/edit-subdocument.js"
|
|
3930
|
+
/***/ "./frontend/src/edit-subdocument/edit-subdocument.js"
|
|
3720
3931
|
/*!***********************************************************!*\
|
|
3721
3932
|
!*** ./frontend/src/edit-subdocument/edit-subdocument.js ***!
|
|
3722
3933
|
\***********************************************************/
|
|
3723
|
-
|
|
3934
|
+
(module, __unused_webpack_exports, __webpack_require__) {
|
|
3724
3935
|
|
|
3725
3936
|
"use strict";
|
|
3726
3937
|
|
|
@@ -3775,35 +3986,35 @@ module.exports = app => app.component('edit-subdocument', {
|
|
|
3775
3986
|
});
|
|
3776
3987
|
|
|
3777
3988
|
|
|
3778
|
-
/***/ }
|
|
3989
|
+
/***/ },
|
|
3779
3990
|
|
|
3780
|
-
/***/ "./frontend/src/export-query-results/export-query-results.css"
|
|
3991
|
+
/***/ "./frontend/src/export-query-results/export-query-results.css"
|
|
3781
3992
|
/*!********************************************************************!*\
|
|
3782
3993
|
!*** ./frontend/src/export-query-results/export-query-results.css ***!
|
|
3783
3994
|
\********************************************************************/
|
|
3784
|
-
|
|
3995
|
+
(module) {
|
|
3785
3996
|
|
|
3786
3997
|
"use strict";
|
|
3787
3998
|
module.exports = "";
|
|
3788
3999
|
|
|
3789
|
-
/***/ }
|
|
4000
|
+
/***/ },
|
|
3790
4001
|
|
|
3791
|
-
/***/ "./frontend/src/export-query-results/export-query-results.html"
|
|
4002
|
+
/***/ "./frontend/src/export-query-results/export-query-results.html"
|
|
3792
4003
|
/*!*********************************************************************!*\
|
|
3793
4004
|
!*** ./frontend/src/export-query-results/export-query-results.html ***!
|
|
3794
4005
|
\*********************************************************************/
|
|
3795
|
-
|
|
4006
|
+
(module) {
|
|
3796
4007
|
|
|
3797
4008
|
"use strict";
|
|
3798
4009
|
module.exports = "<div class=\"export-query-results\">\n <h2>Export as CSV</h2>\n <div>\n Choose fields to export\n </div>\n <div v-for=\"(schemaPath,index) in schemaPaths\" class=\"w-5 flex items-center\">\n <input type=\"checkbox\" class=\"mt-0 h-4 w-4 rounded border-gray-300 text-sky-600 focus:ring-sky-600 accent-sky-600\" v-model=\"shouldExport[schemaPath.path]\" :id=\"'schemaPath.path'+index\">\n <div class=\"ml-2 text-gray-700 grow shrink text-left\">\n <label :for=\"'schemaPath.path'+index\">{{schemaPath.path}}</label>\n </div>\n </div>\n <async-button class=\"rounded-md bg-ultramarine-600 px-2.5 py-1.5 text-sm font-semibold text-white shadow-sm hover:bg-ultramarine-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-teal-600\" @click=\"exportQueryResults\">Export</async-button>\n</div>";
|
|
3799
4010
|
|
|
3800
|
-
/***/ }
|
|
4011
|
+
/***/ },
|
|
3801
4012
|
|
|
3802
|
-
/***/ "./frontend/src/export-query-results/export-query-results.js"
|
|
4013
|
+
/***/ "./frontend/src/export-query-results/export-query-results.js"
|
|
3803
4014
|
/*!*******************************************************************!*\
|
|
3804
4015
|
!*** ./frontend/src/export-query-results/export-query-results.js ***!
|
|
3805
4016
|
\*******************************************************************/
|
|
3806
|
-
|
|
4017
|
+
(module, __unused_webpack_exports, __webpack_require__) {
|
|
3807
4018
|
|
|
3808
4019
|
"use strict";
|
|
3809
4020
|
|
|
@@ -3844,13 +4055,13 @@ module.exports = app => app.component('export-query-results', {
|
|
|
3844
4055
|
}
|
|
3845
4056
|
});
|
|
3846
4057
|
|
|
3847
|
-
/***/ }
|
|
4058
|
+
/***/ },
|
|
3848
4059
|
|
|
3849
|
-
/***/ "./frontend/src/format.js"
|
|
4060
|
+
/***/ "./frontend/src/format.js"
|
|
3850
4061
|
/*!********************************!*\
|
|
3851
4062
|
!*** ./frontend/src/format.js ***!
|
|
3852
4063
|
\********************************/
|
|
3853
|
-
|
|
4064
|
+
(__unused_webpack_module, exports) {
|
|
3854
4065
|
|
|
3855
4066
|
"use strict";
|
|
3856
4067
|
|
|
@@ -3864,13 +4075,13 @@ exports.isoToLongDateTime = function isoToLongDateTime(str) {
|
|
|
3864
4075
|
};
|
|
3865
4076
|
|
|
3866
4077
|
|
|
3867
|
-
/***/ }
|
|
4078
|
+
/***/ },
|
|
3868
4079
|
|
|
3869
|
-
/***/ "./frontend/src/index.js"
|
|
4080
|
+
/***/ "./frontend/src/index.js"
|
|
3870
4081
|
/*!*******************************!*\
|
|
3871
4082
|
!*** ./frontend/src/index.js ***!
|
|
3872
4083
|
\*******************************/
|
|
3873
|
-
|
|
4084
|
+
(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
|
|
3874
4085
|
|
|
3875
4086
|
"use strict";
|
|
3876
4087
|
|
|
@@ -3884,6 +4095,7 @@ console.log(`Mongoose Studio Version ${version}`);
|
|
|
3884
4095
|
|
|
3885
4096
|
const api = __webpack_require__(/*! ./api */ "./frontend/src/api.js");
|
|
3886
4097
|
const format = __webpack_require__(/*! ./format */ "./frontend/src/format.js");
|
|
4098
|
+
const arrayUtils = __webpack_require__(/*! ./array-utils */ "./frontend/src/array-utils.js");
|
|
3887
4099
|
const mothership = __webpack_require__(/*! ./mothership */ "./frontend/src/mothership.js");
|
|
3888
4100
|
const { routes } = __webpack_require__(/*! ./routes */ "./frontend/src/routes.js");
|
|
3889
4101
|
const vanillatoasts = __webpack_require__(/*! vanillatoasts */ "./node_modules/vanillatoasts/vanillatoasts.js");
|
|
@@ -4021,49 +4233,36 @@ router.beforeEach((to, from, next) => {
|
|
|
4021
4233
|
}
|
|
4022
4234
|
});
|
|
4023
4235
|
|
|
4024
|
-
app.config.globalProperties = { format };
|
|
4236
|
+
app.config.globalProperties = { format, arrayUtils };
|
|
4025
4237
|
app.use(router);
|
|
4026
4238
|
|
|
4027
4239
|
app.mount('#content');
|
|
4028
4240
|
|
|
4029
4241
|
|
|
4030
|
-
/***/ }
|
|
4242
|
+
/***/ },
|
|
4031
4243
|
|
|
4032
|
-
/***/ "./frontend/src/list-array/list-array.
|
|
4033
|
-
/*!************************************************!*\
|
|
4034
|
-
!*** ./frontend/src/list-array/list-array.css ***!
|
|
4035
|
-
\************************************************/
|
|
4036
|
-
/***/ ((module) => {
|
|
4037
|
-
|
|
4038
|
-
"use strict";
|
|
4039
|
-
module.exports = ".list-array pre {\n max-height: 6.5em;\n max-width: 30em;\n}\n\n.list-array pre.maximized {\n max-height: auto;\n}\n";
|
|
4040
|
-
|
|
4041
|
-
/***/ }),
|
|
4042
|
-
|
|
4043
|
-
/***/ "./frontend/src/list-array/list-array.html":
|
|
4244
|
+
/***/ "./frontend/src/list-array/list-array.html"
|
|
4044
4245
|
/*!*************************************************!*\
|
|
4045
4246
|
!*** ./frontend/src/list-array/list-array.html ***!
|
|
4046
4247
|
\*************************************************/
|
|
4047
|
-
|
|
4248
|
+
(module) {
|
|
4048
4249
|
|
|
4049
4250
|
"use strict";
|
|
4050
|
-
module.exports = "<div class=\"list-array\">\n <pre><code ref=\"code\" class=\"language-javascript\" v-text=\"displayValue\"></code></pre>\n</div>";
|
|
4251
|
+
module.exports = "<div class=\"list-array\">\n <pre class=\"max-h-[6.5em] max-w-[30em]\"><code ref=\"code\" class=\"language-javascript\" v-text=\"displayValue\"></code></pre>\n</div>";
|
|
4051
4252
|
|
|
4052
|
-
/***/ }
|
|
4253
|
+
/***/ },
|
|
4053
4254
|
|
|
4054
|
-
/***/ "./frontend/src/list-array/list-array.js"
|
|
4255
|
+
/***/ "./frontend/src/list-array/list-array.js"
|
|
4055
4256
|
/*!***********************************************!*\
|
|
4056
4257
|
!*** ./frontend/src/list-array/list-array.js ***!
|
|
4057
4258
|
\***********************************************/
|
|
4058
|
-
|
|
4259
|
+
(module, __unused_webpack_exports, __webpack_require__) {
|
|
4059
4260
|
|
|
4060
4261
|
"use strict";
|
|
4061
4262
|
|
|
4062
4263
|
|
|
4063
4264
|
const template = __webpack_require__(/*! ./list-array.html */ "./frontend/src/list-array/list-array.html");
|
|
4064
4265
|
|
|
4065
|
-
__webpack_require__(/*! ../appendCSS */ "./frontend/src/appendCSS.js")(__webpack_require__(/*! ./list-array.css */ "./frontend/src/list-array/list-array.css"));
|
|
4066
|
-
|
|
4067
4266
|
module.exports = app => app.component('list-array', {
|
|
4068
4267
|
template: template,
|
|
4069
4268
|
props: ['value'],
|
|
@@ -4078,35 +4277,35 @@ module.exports = app => app.component('list-array', {
|
|
|
4078
4277
|
});
|
|
4079
4278
|
|
|
4080
4279
|
|
|
4081
|
-
/***/ }
|
|
4280
|
+
/***/ },
|
|
4082
4281
|
|
|
4083
|
-
/***/ "./frontend/src/list-default/list-default.css"
|
|
4282
|
+
/***/ "./frontend/src/list-default/list-default.css"
|
|
4084
4283
|
/*!****************************************************!*\
|
|
4085
4284
|
!*** ./frontend/src/list-default/list-default.css ***!
|
|
4086
4285
|
\****************************************************/
|
|
4087
|
-
|
|
4286
|
+
(module) {
|
|
4088
4287
|
|
|
4089
4288
|
"use strict";
|
|
4090
4289
|
module.exports = ".list-default pre {\n max-height: 6.5em;\n max-width: 30em;\n}\n";
|
|
4091
4290
|
|
|
4092
|
-
/***/ }
|
|
4291
|
+
/***/ },
|
|
4093
4292
|
|
|
4094
|
-
/***/ "./frontend/src/list-default/list-default.html"
|
|
4293
|
+
/***/ "./frontend/src/list-default/list-default.html"
|
|
4095
4294
|
/*!*****************************************************!*\
|
|
4096
4295
|
!*** ./frontend/src/list-default/list-default.html ***!
|
|
4097
4296
|
\*****************************************************/
|
|
4098
|
-
|
|
4297
|
+
(module) {
|
|
4099
4298
|
|
|
4100
4299
|
"use strict";
|
|
4101
4300
|
module.exports = "<div class=\"list-default\" ref=\"itemData\" class=\"tooltip\">\n {{displayValue}}\n <div class=\"tooltiptext\" style=\"display:flex; width: 100%; justify-content: space-around; align-items: center; min-width: 180px;\">\n <div class=\"tooltiptextchild\" v-if=\"allude\" @click.stop=\"goToDoc(value)\">View Document</div>\n <div class=\"tooltiptextchild\" @click.stop=\"copyText(value)\">copy 📋</div>\n </div>\n</div>\n";
|
|
4102
4301
|
|
|
4103
|
-
/***/ }
|
|
4302
|
+
/***/ },
|
|
4104
4303
|
|
|
4105
|
-
/***/ "./frontend/src/list-default/list-default.js"
|
|
4304
|
+
/***/ "./frontend/src/list-default/list-default.js"
|
|
4106
4305
|
/*!***************************************************!*\
|
|
4107
4306
|
!*** ./frontend/src/list-default/list-default.js ***!
|
|
4108
4307
|
\***************************************************/
|
|
4109
|
-
|
|
4308
|
+
(module, __unused_webpack_exports, __webpack_require__) {
|
|
4110
4309
|
|
|
4111
4310
|
"use strict";
|
|
4112
4311
|
|
|
@@ -4161,35 +4360,35 @@ module.exports = app => app.component('list-default', {
|
|
|
4161
4360
|
}
|
|
4162
4361
|
});
|
|
4163
4362
|
|
|
4164
|
-
/***/ }
|
|
4363
|
+
/***/ },
|
|
4165
4364
|
|
|
4166
|
-
/***/ "./frontend/src/list-json/json-node.html"
|
|
4365
|
+
/***/ "./frontend/src/list-json/json-node.html"
|
|
4167
4366
|
/*!***********************************************!*\
|
|
4168
4367
|
!*** ./frontend/src/list-json/json-node.html ***!
|
|
4169
4368
|
\***********************************************/
|
|
4170
|
-
|
|
4369
|
+
(module) {
|
|
4171
4370
|
|
|
4172
4371
|
"use strict";
|
|
4173
4372
|
module.exports = "<div>\n <div class=\"flex items-baseline whitespace-pre\" :style=\"indentStyle\">\n <button\n v-if=\"showToggle\"\n type=\"button\"\n class=\"w-4 h-4 mr-1 inline-flex items-center justify-center leading-none text-gray-500 hover:text-gray-700 focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-1 focus-visible:ring-slate-400 cursor-pointer\"\n @click.stop=\"handleToggle\"\n >\n {{ isCollapsedNode ? '+' : '-' }}\n </button>\n <span v-else class=\"w-4 h-4 mr-1 inline-flex items-center justify-center invisible flex-shrink-0\"></span>\n <template v-if=\"hasKey\">\n <span class=\"text-blue-600\">\"{{ nodeKey }}\"</span><span>: </span>\n </template>\n <template v-if=\"isComplex\">\n <template v-if=\"hasChildren\">\n <span>{{ openingBracket }}</span>\n <span v-if=\"isCollapsedNode\" class=\"mx-1\">…</span>\n <span v-if=\"isCollapsedNode\">{{ closingBracket }}{{ comma }}</span>\n </template>\n <template v-else>\n <span>{{ openingBracket }}{{ closingBracket }}{{ comma }}</span>\n </template>\n </template>\n <template v-else>\n <!--\n If value is a string and overflows its container (i.e. goes over one line), show an ellipsis.\n This is done via CSS ellipsis strategy.\n -->\n <span\n v-if=\"shouldShowReferenceLink\"\n class=\"inline-flex items-baseline group\"\n >\n <span\n :class=\"[...valueClasses, 'underline', 'decoration-dotted', 'underline-offset-2']\"\n :style=\"typeof value === 'string'\n ? {\n display: 'inline-block',\n maxWidth: '100%',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n verticalAlign: 'bottom'\n }\n : {}\"\n :title=\"typeof value === 'string' && $el && $el.scrollWidth > $el.clientWidth ? value : undefined\"\n >\n {{ formattedValue }}\n </span>\n <span>\n {{ comma }}\n </span>\n <a\n href=\"#\"\n class=\"ml-1 text-sm text-sky-700 opacity-0 group-hover:opacity-100 focus:opacity-100 transition-opacity\"\n @click.stop.prevent=\"goToReference(value)\"\n >\n View Document\n </a>\n </span>\n <span\n v-else\n :class=\"valueClasses\"\n :style=\"typeof value === 'string'\n ? {\n display: 'inline-block',\n maxWidth: '100%',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n verticalAlign: 'bottom'\n }\n : {}\"\n :title=\"typeof value === 'string' && $el && $el.scrollWidth > $el.clientWidth ? value : undefined\"\n >\n {{ formattedValue }}{{ comma }}\n </span>\n </template>\n </div>\n <template v-if=\"isComplex && hasChildren && !isCollapsedNode\">\n <json-node\n v-for=\"child in children\"\n :key=\"child.path\"\n :node-key=\"child.displayKey\"\n :value=\"child.value\"\n :level=\"level + 1\"\n :is-last=\"child.isLast\"\n :path=\"child.path\"\n :toggle-collapse=\"toggleCollapse\"\n :is-collapsed=\"isCollapsed\"\n :create-child-path=\"createChildPath\"\n :indent-size=\"indentSize\"\n :max-top-level-fields=\"maxTopLevelFields\"\n :top-level-expanded=\"topLevelExpanded\"\n :expand-top-level=\"expandTopLevel\"\n :references=\"references\"\n ></json-node>\n <div\n v-if=\"hasHiddenRootChildren\"\n class=\"flex items-baseline whitespace-pre\"\n :style=\"indentStyle\"\n >\n <span class=\"w-4 h-4 mr-1 inline-flex items-center justify-center invisible\"></span>\n <button\n type=\"button\"\n class=\"text-xs inline-flex items-center gap-1 ml-4 text-slate-500 hover:text-slate-700 focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-1 focus-visible:ring-slate-400\"\n :title=\"hiddenChildrenTooltip\"\n @click.stop=\"handleExpandTopLevel\"\n >\n <span aria-hidden=\"true\">{{hiddenChildrenLabel}}…</span>\n </button>\n </div>\n <div class=\"flex items-baseline whitespace-pre\" :style=\"indentStyle\">\n <span class=\"w-4 h-4 mr-1 inline-flex items-center justify-center invisible\"></span>\n <span>{{ closingBracket }}{{ comma }}</span>\n </div>\n </template>\n</div>\n";
|
|
4174
4373
|
|
|
4175
|
-
/***/ }
|
|
4374
|
+
/***/ },
|
|
4176
4375
|
|
|
4177
|
-
/***/ "./frontend/src/list-json/list-json.html"
|
|
4376
|
+
/***/ "./frontend/src/list-json/list-json.html"
|
|
4178
4377
|
/*!***********************************************!*\
|
|
4179
4378
|
!*** ./frontend/src/list-json/list-json.html ***!
|
|
4180
4379
|
\***********************************************/
|
|
4181
|
-
|
|
4380
|
+
(module) {
|
|
4182
4381
|
|
|
4183
4382
|
"use strict";
|
|
4184
4383
|
module.exports = "<div class=\"tooltip w-full font-mono text-sm py-3 text-slate-800\">\n <div class=\"w-full\">\n <json-node\n :node-key=\"null\"\n :value=\"value\"\n :level=\"0\"\n :is-last=\"true\"\n path=\"root\"\n :toggle-collapse=\"toggleCollapse\"\n :is-collapsed=\"isPathCollapsed\"\n :create-child-path=\"createChildPath\"\n :indent-size=\"indentSize\"\n :max-top-level-fields=\"maxTopLevelFields\"\n :top-level-expanded=\"topLevelExpanded\"\n :expand-top-level=\"expandTopLevel\"\n :references=\"references\"\n ></json-node>\n </div>\n</div>\n";
|
|
4185
4384
|
|
|
4186
|
-
/***/ }
|
|
4385
|
+
/***/ },
|
|
4187
4386
|
|
|
4188
|
-
/***/ "./frontend/src/list-json/list-json.js"
|
|
4387
|
+
/***/ "./frontend/src/list-json/list-json.js"
|
|
4189
4388
|
/*!*********************************************!*\
|
|
4190
4389
|
!*** ./frontend/src/list-json/list-json.js ***!
|
|
4191
4390
|
\*********************************************/
|
|
4192
|
-
|
|
4391
|
+
(module, __unused_webpack_exports, __webpack_require__) {
|
|
4193
4392
|
|
|
4194
4393
|
"use strict";
|
|
4195
4394
|
|
|
@@ -4509,35 +4708,35 @@ module.exports = app => app.component('list-json', {
|
|
|
4509
4708
|
});
|
|
4510
4709
|
|
|
4511
4710
|
|
|
4512
|
-
/***/ }
|
|
4711
|
+
/***/ },
|
|
4513
4712
|
|
|
4514
|
-
/***/ "./frontend/src/list-mixed/list-mixed.css"
|
|
4713
|
+
/***/ "./frontend/src/list-mixed/list-mixed.css"
|
|
4515
4714
|
/*!************************************************!*\
|
|
4516
4715
|
!*** ./frontend/src/list-mixed/list-mixed.css ***!
|
|
4517
4716
|
\************************************************/
|
|
4518
|
-
|
|
4717
|
+
(module) {
|
|
4519
4718
|
|
|
4520
4719
|
"use strict";
|
|
4521
4720
|
module.exports = ".list-mixed pre {\n max-height: 6.5em;\n max-width: 30em;\n}\n\n";
|
|
4522
4721
|
|
|
4523
|
-
/***/ }
|
|
4722
|
+
/***/ },
|
|
4524
4723
|
|
|
4525
|
-
/***/ "./frontend/src/list-mixed/list-mixed.html"
|
|
4724
|
+
/***/ "./frontend/src/list-mixed/list-mixed.html"
|
|
4526
4725
|
/*!*************************************************!*\
|
|
4527
4726
|
!*** ./frontend/src/list-mixed/list-mixed.html ***!
|
|
4528
4727
|
\*************************************************/
|
|
4529
|
-
|
|
4728
|
+
(module) {
|
|
4530
4729
|
|
|
4531
4730
|
"use strict";
|
|
4532
4731
|
module.exports = "<div class=\"list-mixed tooltip\">\n <pre>\n <code ref=\"MixedCode\" class=\"language-javascript\">{{shortenValue}}</code>\n <span class=\"tooltiptext\" @click.stop=\"copyText(value)\">copy 📋</span>\n </pre>\n</div>\n ";
|
|
4533
4732
|
|
|
4534
|
-
/***/ }
|
|
4733
|
+
/***/ },
|
|
4535
4734
|
|
|
4536
|
-
/***/ "./frontend/src/list-mixed/list-mixed.js"
|
|
4735
|
+
/***/ "./frontend/src/list-mixed/list-mixed.js"
|
|
4537
4736
|
/*!***********************************************!*\
|
|
4538
4737
|
!*** ./frontend/src/list-mixed/list-mixed.js ***!
|
|
4539
4738
|
\***********************************************/
|
|
4540
|
-
|
|
4739
|
+
(module, __unused_webpack_exports, __webpack_require__) {
|
|
4541
4740
|
|
|
4542
4741
|
"use strict";
|
|
4543
4742
|
|
|
@@ -4583,35 +4782,35 @@ module.exports = app => app.component('list-mixed', {
|
|
|
4583
4782
|
|
|
4584
4783
|
|
|
4585
4784
|
|
|
4586
|
-
/***/ }
|
|
4785
|
+
/***/ },
|
|
4587
4786
|
|
|
4588
|
-
/***/ "./frontend/src/list-string/list-string.css"
|
|
4787
|
+
/***/ "./frontend/src/list-string/list-string.css"
|
|
4589
4788
|
/*!**************************************************!*\
|
|
4590
4789
|
!*** ./frontend/src/list-string/list-string.css ***!
|
|
4591
4790
|
\**************************************************/
|
|
4592
|
-
|
|
4791
|
+
(module) {
|
|
4593
4792
|
|
|
4594
4793
|
"use strict";
|
|
4595
4794
|
module.exports = ".list-string {\n display: inline;\n max-width: 300px;\n}";
|
|
4596
4795
|
|
|
4597
|
-
/***/ }
|
|
4796
|
+
/***/ },
|
|
4598
4797
|
|
|
4599
|
-
/***/ "./frontend/src/list-string/list-string.html"
|
|
4798
|
+
/***/ "./frontend/src/list-string/list-string.html"
|
|
4600
4799
|
/*!***************************************************!*\
|
|
4601
4800
|
!*** ./frontend/src/list-string/list-string.html ***!
|
|
4602
4801
|
\***************************************************/
|
|
4603
|
-
|
|
4802
|
+
(module) {
|
|
4604
4803
|
|
|
4605
4804
|
"use strict";
|
|
4606
4805
|
module.exports = "<div class=\"list-string tooltip\" ref=\"itemData\">\n {{displayValue}}\n <span class=\"tooltiptext\" @click.stop=\"copyText(value)\">copy 📋</span>\n</div>";
|
|
4607
4806
|
|
|
4608
|
-
/***/ }
|
|
4807
|
+
/***/ },
|
|
4609
4808
|
|
|
4610
|
-
/***/ "./frontend/src/list-string/list-string.js"
|
|
4809
|
+
/***/ "./frontend/src/list-string/list-string.js"
|
|
4611
4810
|
/*!*************************************************!*\
|
|
4612
4811
|
!*** ./frontend/src/list-string/list-string.js ***!
|
|
4613
4812
|
\*************************************************/
|
|
4614
|
-
|
|
4813
|
+
(module, __unused_webpack_exports, __webpack_require__) {
|
|
4615
4814
|
|
|
4616
4815
|
"use strict";
|
|
4617
4816
|
|
|
@@ -4658,35 +4857,35 @@ module.exports = app => app.component('list-string', {
|
|
|
4658
4857
|
}
|
|
4659
4858
|
});
|
|
4660
4859
|
|
|
4661
|
-
/***/ }
|
|
4860
|
+
/***/ },
|
|
4662
4861
|
|
|
4663
|
-
/***/ "./frontend/src/list-subdocument/list-subdocument.css"
|
|
4862
|
+
/***/ "./frontend/src/list-subdocument/list-subdocument.css"
|
|
4664
4863
|
/*!************************************************************!*\
|
|
4665
4864
|
!*** ./frontend/src/list-subdocument/list-subdocument.css ***!
|
|
4666
4865
|
\************************************************************/
|
|
4667
|
-
|
|
4866
|
+
(module) {
|
|
4668
4867
|
|
|
4669
4868
|
"use strict";
|
|
4670
4869
|
module.exports = ".list-subdocument pre {\n max-height: 6.5em;\n max-width: 30em;\n}\n";
|
|
4671
4870
|
|
|
4672
|
-
/***/ }
|
|
4871
|
+
/***/ },
|
|
4673
4872
|
|
|
4674
|
-
/***/ "./frontend/src/list-subdocument/list-subdocument.html"
|
|
4873
|
+
/***/ "./frontend/src/list-subdocument/list-subdocument.html"
|
|
4675
4874
|
/*!*************************************************************!*\
|
|
4676
4875
|
!*** ./frontend/src/list-subdocument/list-subdocument.html ***!
|
|
4677
4876
|
\*************************************************************/
|
|
4678
|
-
|
|
4877
|
+
(module) {
|
|
4679
4878
|
|
|
4680
4879
|
"use strict";
|
|
4681
4880
|
module.exports = "<div class=\"list-subdocument tooltip\">\n <pre>\n <code ref=\"SubDocCode\" class=\"language-javascript\">{{shortenValue}}</code>\n <span class=\"tooltiptext\" @click.stop=\"copyText(value)\">copy 📋</span>\n </pre>\n</div>\n";
|
|
4682
4881
|
|
|
4683
|
-
/***/ }
|
|
4882
|
+
/***/ },
|
|
4684
4883
|
|
|
4685
|
-
/***/ "./frontend/src/list-subdocument/list-subdocument.js"
|
|
4884
|
+
/***/ "./frontend/src/list-subdocument/list-subdocument.js"
|
|
4686
4885
|
/*!***********************************************************!*\
|
|
4687
4886
|
!*** ./frontend/src/list-subdocument/list-subdocument.js ***!
|
|
4688
4887
|
\***********************************************************/
|
|
4689
|
-
|
|
4888
|
+
(module, __unused_webpack_exports, __webpack_require__) {
|
|
4690
4889
|
|
|
4691
4890
|
"use strict";
|
|
4692
4891
|
|
|
@@ -4729,35 +4928,35 @@ module.exports = app => app.component('list-subdocument', {
|
|
|
4729
4928
|
}
|
|
4730
4929
|
});
|
|
4731
4930
|
|
|
4732
|
-
/***/ }
|
|
4931
|
+
/***/ },
|
|
4733
4932
|
|
|
4734
|
-
/***/ "./frontend/src/modal/modal.css"
|
|
4933
|
+
/***/ "./frontend/src/modal/modal.css"
|
|
4735
4934
|
/*!**************************************!*\
|
|
4736
4935
|
!*** ./frontend/src/modal/modal.css ***!
|
|
4737
4936
|
\**************************************/
|
|
4738
|
-
|
|
4937
|
+
(module) {
|
|
4739
4938
|
|
|
4740
4939
|
"use strict";
|
|
4741
4940
|
module.exports = "/** Vue modal */\n\n.modal-mask {\n position: fixed;\n z-index: 9998;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: rgba(0, 0, 0, 0.5);\n display: table;\n transition: opacity 0.3s ease;\n}\n\n.modal-wrapper {\n display: table-cell;\n vertical-align: middle;\n}\n\n.modal-container {\n width: 600px;\n margin: 0px auto;\n padding: 20px 30px;\n padding-bottom: 40px;\n background-color: #fff;\n border-radius: 2px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.33);\n transition: all 0.3s ease;\n font-family: Helvetica, Arial, sans-serif;\n position: relative;\n}\n\n.modal-header {\n margin-top: 0;\n font-size: 18px;\n font-weight: bold;\n}\n\n.modal-header-success {\n color: #42b983;\n}\n\n.modal-header-error {\n color: #ff0000;\n}\n\n.modal-body {\n margin: 20px 0;\n max-height: calc(100vh - 40px - 60px - 10px);\n overflow: auto;\n}\n\n.modal__button--default {\n float: right;\n}\n\n/*\n * The following styles are auto-applied to elements with\n * transition=\"modal\" when their visibility is toggled\n * by Vue.js.\n *\n * You can easily play with the modal transition by editing\n * these styles.\n */\n\n.modal-enter {\n opacity: 0;\n}\n\n.modal-leave-active {\n opacity: 0;\n}\n\n.modal-enter .modal-container,\n.modal-leave-active .modal-container {\n -webkit-transform: scale(1.1);\n transform: scale(1.1);\n}\n\n.modal-container .modal-exit {\n position: absolute;\n right: 0.25em;\n top: 0.25em;\n cursor: pointer;\n font-size: 1.25em;\n height: 1.25em;\n width: 1.25em;\n border-radius: 100%;\n border: 1px solid #ddd;\n display: flex;\n align-items: center;\n justify-content: center;\n padding-bottom: 0.25em;\n}\n\n.modal-container .modal-exit:hover {\n background-color: #f1f5ff;\n}\n\n@media (max-width: 767px) {\n .modal-container {\n width: calc(100vw - 10px);\n margin: 0;\n margin-left: 5px;\n }\n}\n";
|
|
4742
4941
|
|
|
4743
|
-
/***/ }
|
|
4942
|
+
/***/ },
|
|
4744
4943
|
|
|
4745
|
-
/***/ "./frontend/src/modal/modal.html"
|
|
4944
|
+
/***/ "./frontend/src/modal/modal.html"
|
|
4746
4945
|
/*!***************************************!*\
|
|
4747
4946
|
!*** ./frontend/src/modal/modal.html ***!
|
|
4748
4947
|
\***************************************/
|
|
4749
|
-
|
|
4948
|
+
(module) {
|
|
4750
4949
|
|
|
4751
4950
|
"use strict";
|
|
4752
4951
|
module.exports = "<transition name=\"modal\">\n <div class=\"modal-mask\">\n <div class=\"modal-wrapper\">\n <div class=\"modal-container\" :class=\"containerClass\">\n <div class=\"modal-body\">\n <slot name=\"body\">\n </slot>\n </div>\n </div>\n </div>\n </div>\n</transition>\n";
|
|
4753
4952
|
|
|
4754
|
-
/***/ }
|
|
4953
|
+
/***/ },
|
|
4755
4954
|
|
|
4756
|
-
/***/ "./frontend/src/modal/modal.js"
|
|
4955
|
+
/***/ "./frontend/src/modal/modal.js"
|
|
4757
4956
|
/*!*************************************!*\
|
|
4758
4957
|
!*** ./frontend/src/modal/modal.js ***!
|
|
4759
4958
|
\*************************************/
|
|
4760
|
-
|
|
4959
|
+
(module, __unused_webpack_exports, __webpack_require__) {
|
|
4761
4960
|
|
|
4762
4961
|
"use strict";
|
|
4763
4962
|
|
|
@@ -4773,24 +4972,24 @@ module.exports = app => app.component('modal', {
|
|
|
4773
4972
|
});
|
|
4774
4973
|
|
|
4775
4974
|
|
|
4776
|
-
/***/ }
|
|
4975
|
+
/***/ },
|
|
4777
4976
|
|
|
4778
|
-
/***/ "./frontend/src/models/document-search/document-search.html"
|
|
4977
|
+
/***/ "./frontend/src/models/document-search/document-search.html"
|
|
4779
4978
|
/*!******************************************************************!*\
|
|
4780
4979
|
!*** ./frontend/src/models/document-search/document-search.html ***!
|
|
4781
4980
|
\******************************************************************/
|
|
4782
|
-
|
|
4981
|
+
(module) {
|
|
4783
4982
|
|
|
4784
4983
|
"use strict";
|
|
4785
4984
|
module.exports = "<form @submit.prevent=\"emitSearch\" class=\"relative flex-grow m-0\">\n <input\n ref=\"searchInput\"\n class=\"w-full font-mono rounded-md p-1 border border-gray-300 outline-gray-300 text-lg focus:ring-1 focus:ring-ultramarine-200 focus:ring-offset-0 focus:outline-none\"\n type=\"text\"\n placeholder=\"Filter\"\n v-model=\"searchText\"\n @click=\"initFilter\"\n @input=\"updateAutocomplete\"\n @keydown=\"handleKeyDown\"\n />\n <ul v-if=\"autocompleteSuggestions.length\" class=\"absolute z-[9999] bg-white border border-gray-300 rounded mt-1 w-full max-h-40 overflow-y-auto shadow\">\n <li\n v-for=\"(suggestion, index) in autocompleteSuggestions\"\n :key=\"suggestion\"\n class=\"px-2 py-1 cursor-pointer\"\n :class=\"{ 'bg-ultramarine-100': index === autocompleteIndex }\"\n @mousedown.prevent=\"applySuggestion(index)\"\n >\n {{ suggestion }}\n </li>\n </ul>\n</form>\n";
|
|
4786
4985
|
|
|
4787
|
-
/***/ }
|
|
4986
|
+
/***/ },
|
|
4788
4987
|
|
|
4789
|
-
/***/ "./frontend/src/models/document-search/document-search.js"
|
|
4988
|
+
/***/ "./frontend/src/models/document-search/document-search.js"
|
|
4790
4989
|
/*!****************************************************************!*\
|
|
4791
4990
|
!*** ./frontend/src/models/document-search/document-search.js ***!
|
|
4792
4991
|
\****************************************************************/
|
|
4793
|
-
|
|
4992
|
+
(module, __unused_webpack_exports, __webpack_require__) {
|
|
4794
4993
|
|
|
4795
4994
|
"use strict";
|
|
4796
4995
|
|
|
@@ -5022,35 +5221,35 @@ module.exports = app => app.component('document-search', {
|
|
|
5022
5221
|
});
|
|
5023
5222
|
|
|
5024
5223
|
|
|
5025
|
-
/***/ }
|
|
5224
|
+
/***/ },
|
|
5026
5225
|
|
|
5027
|
-
/***/ "./frontend/src/models/models.css"
|
|
5226
|
+
/***/ "./frontend/src/models/models.css"
|
|
5028
5227
|
/*!****************************************!*\
|
|
5029
5228
|
!*** ./frontend/src/models/models.css ***!
|
|
5030
5229
|
\****************************************/
|
|
5031
|
-
|
|
5230
|
+
(module) {
|
|
5032
5231
|
|
|
5033
5232
|
"use strict";
|
|
5034
5233
|
module.exports = ".models {\n position: relative;\n display: flex;\n flex-direction: row;\n min-height: calc(100% - 56px);\n}\n\n.models button.gray {\n color: black;\n background-color: #eee;\n}\n\n.models .model-selector {\n background-color: #eee;\n flex-grow: 0;\n padding: 15px;\n padding-top: 0px;\n}\n\n.models h1 {\n margin-top: 0px;\n}\n\n.models .documents {\n flex-grow: 1;\n overflow: scroll;\n max-height: calc(100vh - 56px);\n}\n\n.models .documents table {\n /* max-width: -moz-fit-content;\n max-width: fit-content; */\n width: 100%;\n table-layout: auto;\n font-size: small;\n padding: 0;\n margin-right: 1em;\n white-space: nowrap;\n z-index: -1;\n border-collapse: collapse;\n line-height: 1.5em;\n}\n\n.models .documents table th {\n position: sticky;\n top: 42px;\n background-color: white;\n z-index: 1;\n}\n\n.models .documents table th:after {\n content: \"\";\n position: absolute;\n left: 0;\n width: 100%;\n bottom: -1px;\n border-bottom: thin solid rgba(0, 0, 0, 0.12);\n}\n\n.models .documents table tr {\n color: black;\n border-spacing: 0px 0px;\n background-color: white;\n cursor: pointer;\n}\n\n.models .documents table tr:nth-child(even) {\n background-color: #f5f5f5;\n}\n\n.models .documents table tr:hover {\n background-color: #a7b9ff;\n}\n\n.models .documents table th,\ntd {\n border-bottom: thin solid rgba(0, 0, 0, 0.12);\n text-align: left;\n padding: 0 16px;\n height: 48px;\n}\n\n.models textarea {\n font-size: 1.2em;\n}\n\n.models .path-type {\n color: rgba(0, 0, 0, 0.36);\n font-size: 0.8em;\n}\n\n.models .documents-menu {\n position: fixed;\n background-color: white;\n z-index: 1;\n padding: 4px;\n display: flex;\n width: 100vw;\n}\n\n@media (min-width: 1024px) {\n .models .documents-menu {\n width: calc(100vw - 12rem);\n }\n}\n\n.models .documents-menu .search-input {\n flex-grow: 1;\n align-items: center;\n}\n\n.models .search-input input {\n padding: 0.25em 0.5em;\n font-size: 1.1em;\n border: 1px solid #ddd;\n border-radius: 3px;\n width: calc(100% - 1em);\n}\n\n.models .sort-arrow {\n padding-left: 10px;\n padding-right: 10px;\n}\n\n.models .loader {\n width: 100%;\n text-align: center;\n}\n\n.models .loader img {\n height: 4em;\n}\n\n.models .documents .buttons {\n display: inline-flex;\n justify-content: space-around;\n align-items: center;\n}\n\n";
|
|
5035
5234
|
|
|
5036
|
-
/***/ }
|
|
5235
|
+
/***/ },
|
|
5037
5236
|
|
|
5038
|
-
/***/ "./frontend/src/models/models.html"
|
|
5237
|
+
/***/ "./frontend/src/models/models.html"
|
|
5039
5238
|
/*!*****************************************!*\
|
|
5040
5239
|
!*** ./frontend/src/models/models.html ***!
|
|
5041
5240
|
\*****************************************/
|
|
5042
|
-
|
|
5241
|
+
(module) {
|
|
5043
5242
|
|
|
5044
5243
|
"use strict";
|
|
5045
|
-
module.exports = "<div class=\"models flex\" style=\"height: calc(100vh - 55px); height: calc(100dvh - 55px)\">\n <div class=\"fixed top-[65px] cursor-pointer bg-gray-100 rounded-r-md z-10\" @click=\"hideSidebar = false\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" style=\"h-5 w-5\" viewBox=\"0 -960 960 960\" class=\"w-5\" fill=\"#5f6368\"><path d=\"M360-120v-720h80v720h-80Zm160-160v-400l200 200-200 200Z\"/></svg>\n </div>\n <aside class=\"bg-white border-r overflow-y-auto overflow-x-hidden h-full transition-all duration-300 ease-in-out z-20 w-0 lg:w-48 fixed lg:relative shrink-0\" :class=\"hideSidebar === true ? '!w-0' : hideSidebar === false ? '!w-48' : ''\">\n <div class=\"flex items-center border-b border-gray-100 w-48 overflow-x-hidden\">\n <div class=\"p-4 font-bold text-lg\">Models</div>\n <button\n @click=\"hideSidebar = true\"\n class=\"ml-auto mr-2 p-2 rounded hover:bg-gray-200 focus:outline-none\"\n aria-label=\"Close sidebar\"\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" style=\"h-5 w-5\" viewBox=\"0 -960 960 960\" class=\"w-5\" fill=\"currentColor\"><path d=\"M660-320v-320L500-480l160 160ZM200-120q-33 0-56.5-23.5T120-200v-560q0-33 23.5-56.5T200-840h560q33 0 56.5 23.5T840-760v560q0 33-23.5 56.5T760-120H200Zm120-80v-560H200v560h120Zm80 0h360v-560H400v560Zm-80 0H200h120Z\"/></svg>\n </button>\n </div>\n <nav class=\"flex flex-1 flex-col\">\n <ul role=\"list\" class=\"flex flex-1 flex-col gap-y-7\">\n <li>\n <ul role=\"list\">\n <li v-for=\"model in models\">\n <router-link\n :to=\"'/model/' + model\"\n class=\"block truncate rounded-md py-2 pr-2 pl-2 text-sm font-semibold text-gray-700\"\n :class=\"model === currentModel ? 'bg-ultramarine-100 font-bold' : 'hover:bg-ultramarine-100'\">\n {{model}}\n </router-link>\n </li>\n </ul>\n </li>\n </ul>\n <div v-if=\"models.length === 0 && status === 'loaded'\" class=\"p-2 bg-red-100\">\n No models found\n </div>\n </nav>\n </aside>\n <div class=\"documents\" ref=\"documentsList\">\n <div class=\"relative h-[42px] z-10\">\n <div class=\"documents-menu\">\n <div class=\"flex flex-row items-center w-full gap-2\">\n <document-search\n ref=\"documentSearch\"\n :value=\"searchText\"\n :schema-paths=\"schemaPaths\"\n @search=\"search\"\n >\n </document-search>\n <div>\n <span v-if=\"numDocuments == null\">Loading ...</span>\n <span v-else-if=\"typeof numDocuments === 'number'\">{{numDocuments === 1 ? numDocuments+ ' document' : numDocuments + ' documents'}}</span>\n </div>\n <button\n @click=\"shouldShowExportModal = true\"\n type=\"button\"\n v-show=\"!selectMultiple\"\n class=\"rounded bg-ultramarine-600 px-2 py-2 text-sm font-semibold text-white shadow-sm hover:bg-ultramarine-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ultramarine-600\">\n Export\n </button>\n <button\n @click=\"stagingSelect\"\n type=\"button\"\n :class=\"{ 'bg-gray-500 ring-inset ring-2 ring-gray-300 hover:bg-gray-600': selectMultiple, 'bg-ultramarine-600 hover:bg-ultramarine-500' : !selectMultiple }\"\n class=\"rounded px-2 py-2 text-sm font-semibold text-white shadow-sm focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ultramarine-600\"\n >\n {{ selectMultiple ? 'Cancel' : 'Select' }}\n </button>\n <button\n v-show=\"selectMultiple\"\n @click=\"shouldShowUpdateMultipleModal=true;\"\n type=\"button\"\n class=\"rounded bg-green-600 px-2 py-2 text-sm font-semibold text-white shadow-sm hover:bg-green-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-green-600\"\n >\n Update\n </button>\n <button\n @click=\"shouldShowDeleteMultipleModal=true;\"\n type=\"button\"\n v-show=\"selectMultiple\"\n class=\"rounded bg-red-600 px-2 py-2 text-sm font-semibold text-white shadow-sm hover:bg-red-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-red-500\"\n >\n Delete\n </button>\n <button\n @click=\"openIndexModal\"\n type=\"button\"\n v-show=\"!selectMultiple\"\n class=\"rounded bg-ultramarine-600 px-2 py-2 text-sm font-semibold text-white shadow-sm hover:bg-ultramarine-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ultramarine-600\">\n Indexes\n </button>\n <button\n @click=\"shouldShowCreateModal = true;\"\n type=\"button\"\n v-show=\"!selectMultiple\"\n class=\"rounded bg-ultramarine-600 px-2 py-2 text-sm font-semibold text-white shadow-sm hover:bg-ultramarine-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ultramarine-600\">\n Create\n </button>\n <button\n @click=\"openFieldSelection\"\n type=\"button\"\n v-show=\"!selectMultiple\"\n class=\"rounded bg-ultramarine-600 px-2 py-2 text-sm font-semibold text-white shadow-sm hover:bg-ultramarine-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ultramarine-600\">\n Fields\n </button>\n <span class=\"isolate inline-flex rounded-md shadow-sm\">\n <button\n @click=\"setOutputType('table')\"\n type=\"button\"\n class=\"relative inline-flex items-center rounded-none rounded-l-md px-2 py-2 text-gray-400 ring-1 ring-inset ring-gray-300 hover:bg-gray-50 focus:z-10\"\n :class=\"outputType === 'table' ? 'bg-gray-200' : 'bg-white'\">\n <img class=\"h-5 w-5\" src=\"images/table.svg\">\n </button>\n <button\n @click=\"setOutputType('json')\"\n type=\"button\"\n class=\"relative -ml-px inline-flex items-center rounded-none rounded-r-md px-2 py-2 text-gray-400 ring-1 ring-inset ring-gray-300 hover:bg-gray-50 focus:z-10\"\n :class=\"outputType === 'json' ? 'bg-gray-200' : 'bg-white'\">\n <img class=\"h-5 w-5\" src=\"images/json.svg\">\n </button>\n </span>\n </div>\n </div>\n </div>\n <div class=\"documents-container relative\">\n <div v-if=\"error\">\n <div class=\"bg-red-100 border border-red-400 text-red-700 px-4 py-3 relative m-4 rounded-md\" role=\"alert\">\n <span class=\"block font-bold\">Error</span>\n <span class=\"block\">{{ error }}</span>\n </div>\n </div>\n <table v-else-if=\"outputType === 'table'\">\n <thead>\n <th v-for=\"path in filteredPaths\" @click=\"addPathFilter(path.path)\" class=\"cursor-pointer\">\n {{path.path}}\n <span class=\"path-type\">\n ({{(path.instance || 'unknown')}})\n </span>\n <span class=\"sort-arrow\" @click=\"sortDocs(1, path.path)\">{{sortBy[path.path] == 1 ? 'X' : '↑'}}</span>\n <span class=\"sort-arrow\" @click=\"sortDocs(-1, path.path)\">{{sortBy[path.path] == -1 ? 'X' : '↓'}}</span>\n </th>\n </thead>\n <tbody>\n <tr v-for=\"document in documents\" @click=\"handleDocumentClick(document, $event)\" :key=\"document._id\">\n <td v-for=\"schemaPath in filteredPaths\" :class=\"{ 'bg-blue-200': selectedDocuments.some(x => x._id.toString() === document._id.toString()) }\">\n <component\n :is=\"getComponentForPath(schemaPath)\"\n :value=\"getValueForPath(document, schemaPath.path)\"\n :allude=\"getReferenceModel(schemaPath)\">\n </component>\n </td>\n </tr>\n </tbody>\n </table>\n <div v-else-if=\"outputType === 'json'\" class=\"flex flex-col space-y-6\">\n <div\n v-for=\"document in documents\"\n :key=\"document._id\"\n @click=\"handleDocumentContainerClick(document, $event)\"\n :class=\"[\n 'group relative transition-colors',\n selectedDocuments.some(x => x._id.toString() === document._id.toString()) ? 'bg-blue-200' : 'hover:bg-slate-100'\n ]\"\n >\n <button\n type=\"button\"\n class=\"absolute top-2 right-2 z-10 inline-flex items-center rounded bg-ultramarine-600 px-2 py-1 text-xs font-semibold text-white shadow-sm transition-opacity duration-150 opacity-0 group-hover:opacity-100 focus-visible:opacity-100 hover:bg-ultramarine-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ultramarine-600\"\n @click.stop=\"openDocument(document)\"\n >\n Open this Document\n </button>\n <list-json :value=\"filterDocument(document)\" :references=\"referenceMap\">\n </list-json>\n </div>\n </div>\n <div v-if=\"status === 'loading'\" class=\"loader\">\n <img src=\"images/loader.gif\">\n </div>\n </div>\n </div>\n <modal v-if=\"shouldShowExportModal\">\n <template v-slot:body>\n <div class=\"modal-exit\" @click=\"shouldShowExportModal = false\">×</div>\n <export-query-results\n :schemaPaths=\"schemaPaths\"\n :search-text=\"searchText\"\n :currentModel=\"currentModel\"\n @done=\"shouldShowExportModal = false\">\n </export-query-results>\n </template>\n </modal>\n <modal v-if=\"shouldShowIndexModal\">\n <template v-slot:body>\n <div class=\"modal-exit\" @click=\"shouldShowIndexModal = false\">×</div>\n <div class=\"text-xl font-bold mb-2\">Indexes</div>\n <div v-for=\"index in mongoDBIndexes\" class=\"w-full flex items-center\">\n <div class=\"grow shrink text-left flex justify-between items-center\" v-if=\"index.name != '_id_'\">\n <div>\n <div class=\"font-bold\">{{ index.name }}</div>\n <div class=\"text-sm font-mono\">{{ JSON.stringify(index.key) }}</div>\n </div>\n <div>\n <async-button\n type=\"button\"\n @click=\"dropIndex(index.name)\"\n class=\"rounded-md bg-valencia-600 px-2.5 py-1.5 text-sm font-semibold text-white shadow-sm hover:bg-valencia-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-red-600 disabled:bg-gray-400 disabled:cursor-not-allowed\">\n Drop\n </async-button>\n </div>\n </div>\n </div>\n </template>\n </modal>\n <modal v-if=\"shouldShowFieldModal\">\n <template v-slot:body>\n <div class=\"modal-exit\" @click=\"shouldShowFieldModal = false; selectedPaths = [...filteredPaths];\">×</div>\n <div v-for=\"(path, index) in schemaPaths\" :key=\"index\" class=\"w-5 flex items-center\">\n <input class=\"mt-0 h-4 w-4 rounded border-gray-300 text-sky-600 focus:ring-sky-600 accent-sky-600\" type=\"checkbox\" :id=\"'path.path'+index\" @change=\"addOrRemove(path)\" :value=\"path.path\" :checked=\"isSelected(path.path)\" />\n <div class=\"ml-2 text-gray-700 grow shrink text-left\">\n <label :for=\"'path.path' + index\">{{path.path}}</label>\n </div>\n </div>\n <div class=\"mt-4 flex gap-2\">\n <button type=\"button\" @click=\"filterDocuments()\" class=\"rounded-md bg-ultramarine-600 px-2.5 py-1.5 text-sm font-semibold text-white shadow-sm hover:bg-ultramarine-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-teal-600\">Filter Selection</button>\n <button type=\"button\" @click=\"selectAll()\" class=\"rounded-md bg-forest-green-600 px-2.5 py-1.5 text-sm font-semibold text-white shadow-sm hover:bg-green-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-green-600\">Select All</button>\n <button type=\"button\" @click=\"deselectAll()\" class=\"rounded-md bg-valencia-600 px-2.5 py-1.5 text-sm font-semibold text-white shadow-sm hover:bg-valencia-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-red-600\">Deselect All</button>\n <button type=\"button\" @click=\"resetDocuments()\" class=\"rounded-md bg-gray-600 px-2.5 py-1.5 text-sm font-semibold text-white shadow-sm hover:bg-gray-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-green-600\" >Cancel</button>\n </div>\n </template>\n </modal>\n <modal v-if=\"shouldShowCreateModal\">\n <template v-slot:body>\n <div class=\"modal-exit\" @click=\"shouldShowCreateModal = false;\">×</div>\n <create-document :currentModel=\"currentModel\" :paths=\"schemaPaths\" @close=\"closeCreationModal\"></create-document>\n </template>\n </modal>\n <modal v-if=\"shouldShowUpdateMultipleModal\">\n <template v-slot:body>\n <div class=\"modal-exit\" @click=\"shouldShowUpdateMultipleModal = false;\">×</div>\n <update-document :currentModel=\"currentModel\" :document=\"selectedDocuments\" :multiple=\"true\" @update=\"updateDocuments\" @close=\"shouldShowUpdateMultipleModal=false;\"></update-document>\n </template>\n </modal>\n <modal v-if=\"shouldShowDeleteMultipleModal\">\n <template v-slot:body>\n <div class=\"modal-exit\" @click=\"shouldShowDeleteMultipleModal = false;\">×</div>\n <h2>Are you sure you want to delete {{selectedDocuments.length}} documents?</h2>\n <div>\n <list-json :value=\"selectedDocuments\"></list-json>\n </div>\n <div class=\"flex gap-4\">\n <async-button @click=\"deleteDocuments\" class=\"rounded bg-red-500 px-2 py-2 text-sm font-semibold text-white shadow-sm hover:bg-red-600 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-red-600\">\n Confirm\n </async-button>\n <button @click=\"shouldShowDeleteMultipleModal = false;\" class=\"rounded bg-gray-400 px-2 py-2 text-sm font-semibold text-white shadow-sm hover:bg-gray-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-gray-500\">\n Cancel\n </button>\n </div>\n </template>\n </modal>\n</div>\n";
|
|
5244
|
+
module.exports = "<div class=\"models flex\" style=\"height: calc(100vh - 55px); height: calc(100dvh - 55px)\">\n <div class=\"fixed top-[65px] cursor-pointer bg-gray-100 rounded-r-md z-10\" @click=\"hideSidebar = false\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" style=\"h-5 w-5\" viewBox=\"0 -960 960 960\" class=\"w-5\" fill=\"#5f6368\"><path d=\"M360-120v-720h80v720h-80Zm160-160v-400l200 200-200 200Z\"/></svg>\n </div>\n <aside class=\"bg-white border-r overflow-y-auto overflow-x-hidden h-full transition-all duration-300 ease-in-out z-20 w-0 lg:w-48 fixed lg:relative shrink-0\" :class=\"hideSidebar === true ? '!w-0' : hideSidebar === false ? '!w-48' : ''\">\n <div class=\"flex items-center border-b border-gray-100 w-48 overflow-x-hidden\">\n <div class=\"p-4 font-bold text-lg\">Models</div>\n <button\n @click=\"hideSidebar = true\"\n class=\"ml-auto mr-2 p-2 rounded hover:bg-gray-200 focus:outline-none\"\n aria-label=\"Close sidebar\"\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" style=\"h-5 w-5\" viewBox=\"0 -960 960 960\" class=\"w-5\" fill=\"currentColor\"><path d=\"M660-320v-320L500-480l160 160ZM200-120q-33 0-56.5-23.5T120-200v-560q0-33 23.5-56.5T200-840h560q33 0 56.5 23.5T840-760v560q0 33-23.5 56.5T760-120H200Zm120-80v-560H200v560h120Zm80 0h360v-560H400v560Zm-80 0H200h120Z\"/></svg>\n </button>\n </div>\n <nav class=\"flex flex-1 flex-col\">\n <ul role=\"list\" class=\"flex flex-1 flex-col gap-y-7\">\n <li>\n <ul role=\"list\">\n <li v-for=\"model in models\">\n <router-link\n :to=\"'/model/' + model\"\n class=\"block truncate rounded-md py-2 pr-2 pl-2 text-sm font-semibold text-gray-700\"\n :class=\"model === currentModel ? 'bg-ultramarine-100 font-bold' : 'hover:bg-ultramarine-100'\">\n {{model}}\n </router-link>\n </li>\n </ul>\n </li>\n </ul>\n <div v-if=\"models.length === 0 && status === 'loaded'\" class=\"p-2 bg-red-100\">\n No models found\n </div>\n </nav>\n </aside>\n <div class=\"documents\" ref=\"documentsList\">\n <div class=\"relative h-[42px] z-10\">\n <div class=\"documents-menu\">\n <div class=\"flex flex-row items-center w-full gap-2\">\n <document-search\n ref=\"documentSearch\"\n :value=\"searchText\"\n :schema-paths=\"schemaPaths\"\n @search=\"search\"\n >\n </document-search>\n <div>\n <span v-if=\"numDocuments == null\">Loading ...</span>\n <span v-else-if=\"typeof numDocuments === 'number'\">{{numDocuments === 1 ? numDocuments+ ' document' : numDocuments + ' documents'}}</span>\n </div>\n <button\n @click=\"shouldShowExportModal = true\"\n type=\"button\"\n v-show=\"!selectMultiple\"\n class=\"rounded bg-ultramarine-600 px-2 py-2 text-sm font-semibold text-white shadow-sm hover:bg-ultramarine-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ultramarine-600\">\n Export\n </button>\n <button\n @click=\"stagingSelect\"\n type=\"button\"\n :class=\"{ 'bg-gray-500 ring-inset ring-2 ring-gray-300 hover:bg-gray-600': selectMultiple, 'bg-ultramarine-600 hover:bg-ultramarine-500' : !selectMultiple }\"\n class=\"rounded px-2 py-2 text-sm font-semibold text-white shadow-sm focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ultramarine-600\"\n >\n {{ selectMultiple ? 'Cancel' : 'Select' }}\n </button>\n <button\n v-show=\"selectMultiple\"\n @click=\"shouldShowUpdateMultipleModal=true;\"\n type=\"button\"\n class=\"rounded bg-green-600 px-2 py-2 text-sm font-semibold text-white shadow-sm hover:bg-green-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-green-600\"\n >\n Update\n </button>\n <button\n @click=\"shouldShowDeleteMultipleModal=true;\"\n type=\"button\"\n v-show=\"selectMultiple\"\n class=\"rounded bg-red-600 px-2 py-2 text-sm font-semibold text-white shadow-sm hover:bg-red-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-red-500\"\n >\n Delete\n </button>\n <button\n @click=\"openIndexModal\"\n type=\"button\"\n v-show=\"!selectMultiple\"\n class=\"rounded bg-ultramarine-600 px-2 py-2 text-sm font-semibold text-white shadow-sm hover:bg-ultramarine-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ultramarine-600\">\n Indexes\n </button>\n <button\n @click=\"shouldShowCreateModal = true;\"\n type=\"button\"\n v-show=\"!selectMultiple\"\n class=\"rounded bg-ultramarine-600 px-2 py-2 text-sm font-semibold text-white shadow-sm hover:bg-ultramarine-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ultramarine-600\">\n Create\n </button>\n <button\n @click=\"openFieldSelection\"\n type=\"button\"\n v-show=\"!selectMultiple\"\n class=\"rounded bg-ultramarine-600 px-2 py-2 text-sm font-semibold text-white shadow-sm hover:bg-ultramarine-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ultramarine-600\">\n Fields\n </button>\n <span class=\"isolate inline-flex rounded-md shadow-sm\">\n <button\n @click=\"setOutputType('table')\"\n type=\"button\"\n class=\"relative inline-flex items-center rounded-none rounded-l-md px-2 py-2 text-gray-400 ring-1 ring-inset ring-gray-300 hover:bg-gray-50 focus:z-10\"\n :class=\"outputType === 'table' ? 'bg-gray-200' : 'bg-white'\">\n <img class=\"h-5 w-5\" src=\"images/table.svg\">\n </button>\n <button\n @click=\"setOutputType('json')\"\n type=\"button\"\n class=\"relative -ml-px inline-flex items-center rounded-none rounded-r-md px-2 py-2 text-gray-400 ring-1 ring-inset ring-gray-300 hover:bg-gray-50 focus:z-10\"\n :class=\"outputType === 'json' ? 'bg-gray-200' : 'bg-white'\">\n <img class=\"h-5 w-5\" src=\"images/json.svg\">\n </button>\n </span>\n </div>\n </div>\n </div>\n <div class=\"documents-container relative\">\n <div v-if=\"error\">\n <div class=\"bg-red-100 border border-red-400 text-red-700 px-4 py-3 relative m-4 rounded-md\" role=\"alert\">\n <span class=\"block font-bold\">Error</span>\n <span class=\"block\">{{ error }}</span>\n </div>\n </div>\n <table v-else-if=\"outputType === 'table'\">\n <thead>\n <th v-for=\"path in filteredPaths\" @click=\"addPathFilter(path.path)\" class=\"cursor-pointer\">\n {{path.path}}\n <span class=\"path-type\">\n ({{(path.instance || 'unknown')}})\n </span>\n <span class=\"sort-arrow\" @click=\"sortDocs(1, path.path)\">{{sortBy[path.path] == 1 ? 'X' : '↑'}}</span>\n <span class=\"sort-arrow\" @click=\"sortDocs(-1, path.path)\">{{sortBy[path.path] == -1 ? 'X' : '↓'}}</span>\n </th>\n </thead>\n <tbody>\n <tr v-for=\"document in documents\" @click=\"handleDocumentClick(document, $event)\" :key=\"document._id\">\n <td v-for=\"schemaPath in filteredPaths\" :class=\"{ 'bg-blue-200': selectedDocuments.some(x => x._id.toString() === document._id.toString()) }\">\n <component\n :is=\"getComponentForPath(schemaPath)\"\n :value=\"getValueForPath(document, schemaPath.path)\"\n :allude=\"getReferenceModel(schemaPath)\">\n </component>\n </td>\n </tr>\n </tbody>\n </table>\n <div v-else-if=\"outputType === 'json'\" class=\"flex flex-col space-y-6\">\n <div\n v-for=\"document in documents\"\n :key=\"document._id\"\n @click=\"handleDocumentContainerClick(document, $event)\"\n :class=\"[\n 'group relative transition-colors',\n selectedDocuments.some(x => x._id.toString() === document._id.toString()) ? 'bg-blue-200' : 'hover:bg-slate-100'\n ]\"\n >\n <button\n type=\"button\"\n class=\"absolute top-2 right-2 z-10 inline-flex items-center rounded bg-ultramarine-600 px-2 py-1 text-xs font-semibold text-white shadow-sm transition-opacity duration-150 opacity-0 group-hover:opacity-100 focus-visible:opacity-100 hover:bg-ultramarine-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ultramarine-600\"\n @click.stop=\"openDocument(document)\"\n >\n Open this Document\n </button>\n <list-json :value=\"filterDocument(document)\" :references=\"referenceMap\">\n </list-json>\n </div>\n </div>\n <div v-if=\"status === 'loading'\" class=\"loader\">\n <img src=\"images/loader.gif\">\n </div>\n </div>\n </div>\n <modal v-if=\"shouldShowExportModal\">\n <template v-slot:body>\n <div class=\"modal-exit\" @click=\"shouldShowExportModal = false\">×</div>\n <export-query-results\n :schemaPaths=\"schemaPaths\"\n :search-text=\"searchText\"\n :currentModel=\"currentModel\"\n @done=\"shouldShowExportModal = false\">\n </export-query-results>\n </template>\n </modal>\n <modal v-if=\"shouldShowIndexModal\">\n <template v-slot:body>\n <div class=\"modal-exit\" @click=\"shouldShowIndexModal = false\">×</div>\n <div class=\"text-xl font-bold mb-2\">Indexes</div>\n <div v-for=\"index in mongoDBIndexes\" class=\"w-full flex items-center\">\n <div class=\"grow shrink text-left flex justify-between items-center\" v-if=\"index.name != '_id_'\">\n <div>\n <div class=\"font-bold flex items-center gap-2\">\n <div>{{ index.name }}</div>\n <div v-if=\"isTTLIndex(index)\" class=\"rounded-full bg-ultramarine-100 px-2 py-0.5 text-xs font-semibold text-ultramarine-700\">\n TTL: {{ formatTTL(index.expireAfterSeconds) }}\n </div>\n </div>\n <div class=\"text-sm font-mono\">{{ JSON.stringify(index.key) }}</div>\n </div>\n <div>\n <async-button\n type=\"button\"\n @click=\"dropIndex(index.name)\"\n class=\"rounded-md bg-valencia-600 px-2.5 py-1.5 text-sm font-semibold text-white shadow-sm hover:bg-valencia-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-red-600 disabled:bg-gray-400 disabled:cursor-not-allowed\">\n Drop\n </async-button>\n </div>\n </div>\n </div>\n </template>\n </modal>\n <modal v-if=\"shouldShowFieldModal\">\n <template v-slot:body>\n <div class=\"modal-exit\" @click=\"shouldShowFieldModal = false; selectedPaths = [...filteredPaths];\">×</div>\n <div v-for=\"(path, index) in schemaPaths\" :key=\"index\" class=\"w-5 flex items-center\">\n <input class=\"mt-0 h-4 w-4 rounded border-gray-300 text-sky-600 focus:ring-sky-600 accent-sky-600\" type=\"checkbox\" :id=\"'path.path'+index\" @change=\"addOrRemove(path)\" :value=\"path.path\" :checked=\"isSelected(path.path)\" />\n <div class=\"ml-2 text-gray-700 grow shrink text-left\">\n <label :for=\"'path.path' + index\">{{path.path}}</label>\n </div>\n </div>\n <div class=\"mt-4 flex gap-2\">\n <button type=\"button\" @click=\"filterDocuments()\" class=\"rounded-md bg-ultramarine-600 px-2.5 py-1.5 text-sm font-semibold text-white shadow-sm hover:bg-ultramarine-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-teal-600\">Filter Selection</button>\n <button type=\"button\" @click=\"selectAll()\" class=\"rounded-md bg-forest-green-600 px-2.5 py-1.5 text-sm font-semibold text-white shadow-sm hover:bg-green-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-green-600\">Select All</button>\n <button type=\"button\" @click=\"deselectAll()\" class=\"rounded-md bg-valencia-600 px-2.5 py-1.5 text-sm font-semibold text-white shadow-sm hover:bg-valencia-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-red-600\">Deselect All</button>\n <button type=\"button\" @click=\"resetDocuments()\" class=\"rounded-md bg-gray-600 px-2.5 py-1.5 text-sm font-semibold text-white shadow-sm hover:bg-gray-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-green-600\" >Cancel</button>\n </div>\n </template>\n </modal>\n <modal v-if=\"shouldShowCreateModal\">\n <template v-slot:body>\n <div class=\"modal-exit\" @click=\"shouldShowCreateModal = false;\">×</div>\n <create-document :currentModel=\"currentModel\" :paths=\"schemaPaths\" @close=\"closeCreationModal\"></create-document>\n </template>\n </modal>\n <modal v-if=\"shouldShowUpdateMultipleModal\">\n <template v-slot:body>\n <div class=\"modal-exit\" @click=\"shouldShowUpdateMultipleModal = false;\">×</div>\n <update-document :currentModel=\"currentModel\" :document=\"selectedDocuments\" :multiple=\"true\" @update=\"updateDocuments\" @close=\"shouldShowUpdateMultipleModal=false;\"></update-document>\n </template>\n </modal>\n <modal v-if=\"shouldShowDeleteMultipleModal\">\n <template v-slot:body>\n <div class=\"modal-exit\" @click=\"shouldShowDeleteMultipleModal = false;\">×</div>\n <h2>Are you sure you want to delete {{selectedDocuments.length}} documents?</h2>\n <div>\n <list-json :value=\"selectedDocuments\"></list-json>\n </div>\n <div class=\"flex gap-4\">\n <async-button @click=\"deleteDocuments\" class=\"rounded bg-red-500 px-2 py-2 text-sm font-semibold text-white shadow-sm hover:bg-red-600 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-red-600\">\n Confirm\n </async-button>\n <button @click=\"shouldShowDeleteMultipleModal = false;\" class=\"rounded bg-gray-400 px-2 py-2 text-sm font-semibold text-white shadow-sm hover:bg-gray-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-gray-500\">\n Cancel\n </button>\n </div>\n </template>\n </modal>\n</div>\n";
|
|
5046
5245
|
|
|
5047
|
-
/***/ }
|
|
5246
|
+
/***/ },
|
|
5048
5247
|
|
|
5049
|
-
/***/ "./frontend/src/models/models.js"
|
|
5248
|
+
/***/ "./frontend/src/models/models.js"
|
|
5050
5249
|
/*!***************************************!*\
|
|
5051
5250
|
!*** ./frontend/src/models/models.js ***!
|
|
5052
5251
|
\***************************************/
|
|
5053
|
-
|
|
5252
|
+
(module, __unused_webpack_exports, __webpack_require__) {
|
|
5054
5253
|
|
|
5055
5254
|
"use strict";
|
|
5056
5255
|
|
|
@@ -5292,6 +5491,38 @@ module.exports = app => app.component('models', {
|
|
|
5292
5491
|
this.mongoDBIndexes = mongoDBIndexes;
|
|
5293
5492
|
this.schemaIndexes = schemaIndexes;
|
|
5294
5493
|
},
|
|
5494
|
+
isTTLIndex(index) {
|
|
5495
|
+
return index != null && index.expireAfterSeconds != null;
|
|
5496
|
+
},
|
|
5497
|
+
formatTTL(expireAfterSeconds) {
|
|
5498
|
+
if (typeof expireAfterSeconds !== 'number') {
|
|
5499
|
+
return '';
|
|
5500
|
+
}
|
|
5501
|
+
|
|
5502
|
+
let remaining = expireAfterSeconds;
|
|
5503
|
+
const days = Math.floor(remaining / (24 * 60 * 60));
|
|
5504
|
+
remaining = remaining % (24 * 60 * 60);
|
|
5505
|
+
const hours = Math.floor(remaining / (60 * 60));
|
|
5506
|
+
remaining = remaining % (60 * 60);
|
|
5507
|
+
const minutes = Math.floor(remaining / 60);
|
|
5508
|
+
const seconds = remaining % 60;
|
|
5509
|
+
|
|
5510
|
+
const parts = [];
|
|
5511
|
+
if (days > 0) {
|
|
5512
|
+
parts.push(`${days} day${days === 1 ? '' : 's'}`);
|
|
5513
|
+
}
|
|
5514
|
+
if (hours > 0) {
|
|
5515
|
+
parts.push(`${hours} hour${hours === 1 ? '' : 's'}`);
|
|
5516
|
+
}
|
|
5517
|
+
if (minutes > 0) {
|
|
5518
|
+
parts.push(`${minutes} minute${minutes === 1 ? '' : 's'}`);
|
|
5519
|
+
}
|
|
5520
|
+
if (seconds > 0 || parts.length === 0) {
|
|
5521
|
+
parts.push(`${seconds} second${seconds === 1 ? '' : 's'}`);
|
|
5522
|
+
}
|
|
5523
|
+
|
|
5524
|
+
return parts.join(', ');
|
|
5525
|
+
},
|
|
5295
5526
|
checkIndexLocation(indexName) {
|
|
5296
5527
|
if (this.schemaIndexes.find(x => x.name == indexName) && this.mongoDBIndexes.find(x => x.name == indexName)) {
|
|
5297
5528
|
return 'text-gray-500';
|
|
@@ -5548,13 +5779,13 @@ module.exports = app => app.component('models', {
|
|
|
5548
5779
|
});
|
|
5549
5780
|
|
|
5550
5781
|
|
|
5551
|
-
/***/ }
|
|
5782
|
+
/***/ },
|
|
5552
5783
|
|
|
5553
|
-
/***/ "./frontend/src/models/trie.js"
|
|
5784
|
+
/***/ "./frontend/src/models/trie.js"
|
|
5554
5785
|
/*!*************************************!*\
|
|
5555
5786
|
!*** ./frontend/src/models/trie.js ***!
|
|
5556
5787
|
\*************************************/
|
|
5557
|
-
|
|
5788
|
+
(module) {
|
|
5558
5789
|
|
|
5559
5790
|
"use strict";
|
|
5560
5791
|
|
|
@@ -5702,13 +5933,13 @@ module.exports = {
|
|
|
5702
5933
|
};
|
|
5703
5934
|
|
|
5704
5935
|
|
|
5705
|
-
/***/ }
|
|
5936
|
+
/***/ },
|
|
5706
5937
|
|
|
5707
|
-
/***/ "./frontend/src/mothership.js"
|
|
5938
|
+
/***/ "./frontend/src/mothership.js"
|
|
5708
5939
|
/*!************************************!*\
|
|
5709
5940
|
!*** ./frontend/src/mothership.js ***!
|
|
5710
5941
|
\************************************/
|
|
5711
|
-
|
|
5942
|
+
(__unused_webpack_module, exports, __webpack_require__) {
|
|
5712
5943
|
|
|
5713
5944
|
"use strict";
|
|
5714
5945
|
|
|
@@ -5774,35 +6005,35 @@ exports.updateWorkspaceMember = function updateWorkspaceMember(params) {
|
|
|
5774
6005
|
exports.hasAPIKey = client.hasAPIKey;
|
|
5775
6006
|
|
|
5776
6007
|
|
|
5777
|
-
/***/ }
|
|
6008
|
+
/***/ },
|
|
5778
6009
|
|
|
5779
|
-
/***/ "./frontend/src/navbar/navbar.css"
|
|
6010
|
+
/***/ "./frontend/src/navbar/navbar.css"
|
|
5780
6011
|
/*!****************************************!*\
|
|
5781
6012
|
!*** ./frontend/src/navbar/navbar.css ***!
|
|
5782
6013
|
\****************************************/
|
|
5783
|
-
|
|
6014
|
+
(module) {
|
|
5784
6015
|
|
|
5785
6016
|
"use strict";
|
|
5786
6017
|
module.exports = ".active {\n text-decoration: underline;\n}\n\n.navbar .nav-left {\n float: left;\n line-height: 54px;\n font-size: 20px;\n padding-left: 20px;\n}\n\n.navbar .nav-left a {\n color: #232323;\n}\n\n.navbar .nav-right {\n float: right;\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n font-size: 16px;\n line-height: 54px;\n padding-right: 20px;\n}\n\n.navbar .nav-right .nav-item {\n flex-grow: 1;\n padding: 0px 12px;\n position: relative;\n z-index: 21000;\n}\n\n.navbar .nav-right .nav-item:hover {\n flex-grow: 1;\n padding: 0px 12px;\n border-bottom: 1px solid #E1B9A0;\n}\n\n.navbar .nav-right .nav-item.active {\n border-bottom: 1px solid #E1B9A0;\n}\n\n.navbar .nav-action {\n cursor: pointer;\n color: #E1B9A0;\n}\n\n.navbar .nav-action svg {\n height: 1em;\n vertical-align: middle;\n}\n\n.navbar .nav-right .nav-item .flyout {\n position: absolute;\n top: 55px;\n right: 0px;\n visibility: hidden;\n opacity: 0;\n transition: opacity .25s,visibility .25s,transform .25s;\n width: auto;\n box-shadow: 0 12px 32px rgba(0, 0, 0, .1), 0 2px 6px rgba(0, 0, 0, .08);\n background-color: #393944;\n padding-left: 0.5em;\n padding-right: 0.5em;\n z-index: 1000;\n min-width: 192px;\n font-size: 0.9em;\n}\n\n.navbar .nav-right .nav-item:hover .flyout a {\n color: #E1B9A0;\n margin-top: 0.25em;\n margin-bottom: 0.25em;\n}\n\n.navbar .nav-right .nav-item:hover .flyout a:hover {\n color: #E1B9A0;\n}\n\n.navbar .nav-right .nav-item:hover .flyout .nav-action {\n color: #E1B9A0;\n margin-top: 0.25em;\n margin-bottom: 0.25em;\n}\n\n.navbar .nav-right .nav-item:hover .flyout .nav-action:hover {\n color: #E1B9A0;\n}\n\n.navbar .nav-right .nav-item:hover .flyout {\n visibility: visible;\n opacity: 1;\n}\n\n#bar-1 {\n\ttransform: translateY(-4px);\n}\n#bar-3 {\n\ttransform: translateY(4px);\n}\n.menu {\n display: none;\n}\n.menu {\n\twidth: 35px;\n\theight: 30px;\n\tmargin: 18px 2px 0px 0px;\n\tcursor: pointer;\n float: right;\n}\n.bar {\n\theight: 5px;\n\twidth: 100%;\n\tbackground-color: #fff;\n\tdisplay: block;\n\tborder-radius: 5px;\n\ttransition: 0.4s ease;\n}\n.change-icon #bar-1 {\n transform: translateY(4px) rotateZ(-405deg);\n}\n.change-icon #bar-2 {\n opacity: 0;\n}\n.change-icon #bar-3 {\n transform: translateY(-6px) rotateZ(405deg);\n}\n\n@media (max-width: 767px) {\n .menu {\n display: block;\n }\n\n .change-icon ~ div.nav-right {\n left: 0;\n }\n\n .navbar .nav-right {\n\t\tposition: fixed;\n\t\ttop: 55px;\n\t\tleft: -130%;\n\t\tbackground: #111;\n\t\theight: 100vh;\n\t\twidth: 100%;\n\t\ttext-align: center;\n\t\tdisplay: block;\n\t\ttransition: all 0.3s ease;\n z-index: 10000;\n\t}\n}\n";
|
|
5787
6018
|
|
|
5788
|
-
/***/ }
|
|
6019
|
+
/***/ },
|
|
5789
6020
|
|
|
5790
|
-
/***/ "./frontend/src/navbar/navbar.html"
|
|
6021
|
+
/***/ "./frontend/src/navbar/navbar.html"
|
|
5791
6022
|
/*!*****************************************!*\
|
|
5792
6023
|
!*** ./frontend/src/navbar/navbar.html ***!
|
|
5793
6024
|
\*****************************************/
|
|
5794
|
-
|
|
6025
|
+
(module) {
|
|
5795
6026
|
|
|
5796
6027
|
"use strict";
|
|
5797
6028
|
module.exports = "<div class=\"navbar w-full bg-gray-50 flex justify-between border-b border-gray-200 !h-[55px]\">\n <div class=\"flex items-center gap-4 h-full pl-4\">\n <router-link :to=\"{ name: defaultRoute }\">\n <img src=\"images/logo.svg\" class=\"h-[32px] mr-1\" alt=\"Mongoose Studio Logo\" />\n </router-link>\n <div v-if=\"!!state.nodeEnv\" title=\"NODE_ENV\" class=\"inline-flex items-center rounded-md px-2 py-1 text-sm font-medium text-gray-900\" :class=\"warnEnv ? 'bg-red-300' : 'bg-yellow-300'\">\n {{state.nodeEnv}}\n </div>\n </div>\n <div class=\"h-full pr-4 hidden md:block\">\n <div class=\"sm:ml-6 sm:flex sm:space-x-8 h-full\">\n <a v-if=\"hasAccess(roles, 'root')\"\n href=\"#/\"\n class=\"inline-flex items-center px-1 pt-1 border-b-2 text-sm font-medium\"\n :class=\"documentView ? 'text-gray-900 border-ultramarine-500' : 'border-transparent text-gray-500 hover:border-gray-300 hover:text-gray-700'\">Documents</a>\n <span v-else class=\"inline-flex items-center px-1 pt-1 border-b-2 text-sm font-medium text-gray-300 cursor-not-allowed\" aria-disabled=\"true\">\n Documents\n <svg class=\"h-4 w-4 ml-1\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\n <path fill-rule=\"evenodd\" d=\"M10 2a4 4 0 00-4 4v2H5a2 2 0 00-2 2v6a2 2 0 002 2h10a2 2 0 002-2v-6a2 2 0 00-2-2h-1V6a4 4 0 00-4-4zm-3 6V6a3 3 0 116 0v2H7z\" clip-rule=\"evenodd\" />\n </svg>\n </span>\n <a v-if=\"hasAccess(roles, 'dashboards')\"\n href=\"#/dashboards\"\n class=\"inline-flex items-center border-b-2 px-1 pt-1 text-sm font-medium\"\n :class=\"dashboardView ? 'text-gray-900 border-ultramarine-500' : 'border-transparent text-gray-500 hover:border-gray-300 hover:text-gray-700'\">Dashboards</a>\n <span v-else class=\"inline-flex items-center border-b-2 px-1 pt-1 text-sm font-medium text-gray-300 cursor-not-allowed\">\n Dashboards\n <svg class=\"h-4 w-4 ml-1\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\n <path fill-rule=\"evenodd\" d=\"M10 2a4 4 0 00-4 4v2H5a2 2 0 00-2 2v6a2 2 0 002 2h10a2 2 0 002-2v-6a2 2 0 00-2-2h-1V6a4 4 0 00-4-4zm-3 6V6a3 3 0 116 0v2H7z\" clip-rule=\"evenodd\" />\n </svg>\n </span>\n <a v-if=\"hasAccess(roles, 'chat')\"\n href=\"#/chat\"\n class=\"inline-flex items-center border-b-2 px-1 pt-1 text-sm font-medium\"\n :class=\"chatView ? 'text-gray-900 border-ultramarine-500' : 'border-transparent text-gray-500 hover:border-gray-300 hover:text-gray-700'\">Chat</a>\n <span v-else class=\"inline-flex items-center border-b-2 px-1 pt-1 text-sm font-medium text-gray-300 cursor-not-allowed\">\n Chat\n <svg class=\"h-4 w-4 ml-1\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\n <path fill-rule=\"evenodd\" d=\"M10 2a4 4 0 00-4 4v2H5a2 2 0 00-2 2v6a2 2 0 002 2h10a2 2 0 002-2v-6a2 2 0 00-2-2h-1V6a4 4 0 00-4-4zm-3 6V6a3 3 0 116 0v2H7z\" clip-rule=\"evenodd\" />\n </svg>\n </span>\n <a\n href=\"https://studio.mongoosejs.io/docs\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n class=\"inline-flex items-center border-b-2 px-1 pt-1 text-sm font-medium text-gray-500 hover:border-gray-300 hover:text-gray-700 border-transparent\"\n >\n Docs\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"ml-1 h-4 w-4\" viewBox=\"0 -960 960 960\" fill=\"currentColor\"><path d=\"M200-120q-33 0-56.5-23.5T120-200v-560q0-33 23.5-56.5T200-840h280v80H200v560h560v-280h80v280q0 33-23.5 56.5T760-120H200Zm188-212-56-56 372-372H560v-80h280v280h-80v-144L388-332Z\"/></svg>\n </a>\n\n <div class=\"h-full flex items-center\" v-if=\"!user && hasAPIKey\">\n <button\n type=\"button\"\n @click=\"loginWithGithub\"\n class=\"rounded bg-ultramarine-600 px-2 py-2 text-sm font-semibold text-white shadow-sm hover:bg-ultramarine-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ultramarine-600\">\n Login\n </button>\n </div>\n <div v-if=\"user && hasAPIKey\" class=\"h-full flex items-center relative\" v-clickOutside=\"hideFlyout\">\n <div>\n <button type=\"button\" @click=\"showFlyout = !showFlyout\" class=\"relative flex rounded-full bg-gray-800 text-sm focus:outline-none focus:ring-2 focus:ring-white focus:ring-offset-2 focus:ring-offset-gray-800\" id=\"user-menu-button\" aria-expanded=\"false\" aria-haspopup=\"true\">\n <span class=\"absolute -inset-1.5\"></span>\n <span class=\"sr-only\">Open user menu</span>\n <img class=\"size-8 rounded-full\" :src=\"user.picture\" alt=\"\">\n </button>\n </div>\n\n <div v-if=\"showFlyout\" class=\"absolute right-0 z-[100] top-[90%] w-48 origin-top-right rounded-md bg-white py-1 shadow-lg ring-1 ring-black/5 focus:outline-none\" role=\"menu\" aria-orientation=\"vertical\" aria-labelledby=\"user-menu-button\" tabindex=\"-1\">\n <router-link to=\"/team\" v-if=\"hasAccess(roles, 'team')\" @click=\"showFlyout = false\" class=\"cursor-pointer block px-4 py-2 text-sm text-gray-700 hover:bg-ultramarine-200\" role=\"menuitem\" tabindex=\"-1\" id=\"user-menu-item-2\">Team</router-link>\n <span v-else class=\"block px-4 py-2 text-sm text-gray-300 cursor-not-allowed\" role=\"menuitem\" tabindex=\"-1\" id=\"user-menu-item-2\">\n Team\n <svg class=\"h-4 w-4 ml-1 inline\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\n <path fill-rule=\"evenodd\" d=\"M10 2a4 4 0 00-4 4v2H5a2 2 0 00-2 2v6a2 2 0 002 2h10a2 2 0 002-2v-6a2 2 0 00-2-2h-1V6a4 4 0 00-4-4zm-3 6V6a3 3 0 116 0v2H7z\" clip-rule=\"evenodd\" />\n </svg>\n </span>\n <span @click=\"logout\" class=\"cursor-pointer block px-4 py-2 text-sm text-gray-700 hover:bg-ultramarine-200\" role=\"menuitem\" tabindex=\"-1\" id=\"user-menu-item-2\">Sign out</span>\n </div>\n </div>\n\n </div>\n </div>\n <div class=\"md:hidden flex items-center\">\n <!-- Mobile menu toggle, controls the 'mobileMenuOpen' state. -->\n <button type=\"button\" id=\"open-mobile-menu\" class=\"-ml-2 rounded-md p-2 pr-4 text-gray-400\">\n <span class=\"sr-only\">Open menu</span>\n <svg class=\"h-6 w-6\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" aria-hidden=\"true\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3.75 6.75h16.5M3.75 12h16.5m-16.5 5.25h16.5\" />\n </svg>\n </button>\n </div>\n\n <!-- Mobile menu mask -->\n <div id=\"mobile-menu-mask\" class=\"fixed inset-0 bg-black bg-opacity-40 z-40 hidden\"></div>\n <!-- Mobile menu drawer -->\n <div id=\"mobile-menu\" class=\"fixed inset-0 bg-white shadow-lg z-50 transform translate-x-full transition-transform duration-200 ease-in-out flex flex-col\">\n <div class=\"flex items-center justify-between px-4 !h-[55px] border-b border-gray-200\">\n <router-link :to=\"{ name: defaultRoute }\">\n <img src=\"images/logo.svg\" class=\"h-[32px]\" alt=\"Mongoose Studio Logo\" />\n </router-link>\n <button type=\"button\" id=\"close-mobile-menu\" class=\"text-gray-400 p-2 rounded-md\">\n <span class=\"sr-only\">Close menu</span>\n <svg class=\"h-6 w-6\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" aria-hidden=\"true\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M6 18L18 6M6 6l12 12\" />\n </svg>\n </button>\n </div>\n <nav class=\"flex-1 px-4 py-4 space-y-2\">\n <a v-if=\"hasAccess(roles, 'root')\"\n href=\"#/\"\n class=\"block px-3 py-2 rounded-md text-base font-medium\"\n :class=\"documentView ? 'text-ultramarine-700 bg-ultramarine-100' : 'text-gray-700 hover:bg-gray-100'\">Documents</a>\n <span v-else class=\"block px-3 py-2 rounded-md text-base font-medium text-gray-300 cursor-not-allowed\">\n Documents\n <svg class=\"h-4 w-4 ml-1 inline\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\n <path fill-rule=\"evenodd\" d=\"M10 2a4 4 0 00-4 4v2H5a2 2 0 00-2 2v6a2 2 0 002 2h10a2 2 0 002-2v-6a2 2 0 00-2-2h-1V6a4 4 0 00-4-4zm-3 6V6a3 3 0 116 0v2H7z\" clip-rule=\"evenodd\" />\n </svg>\n </span>\n <a v-if=\"hasAccess(roles, 'dashboards')\"\n href=\"#/dashboards\"\n class=\"block px-3 py-2 rounded-md text-base font-medium\"\n :class=\"dashboardView ? 'text-ultramarine-700 bg-ultramarine-100' : 'text-gray-700 hover:bg-gray-100'\">Dashboards</a>\n <span v-else class=\"block px-3 py-2 rounded-md text-base font-medium text-gray-300 cursor-not-allowed\">\n Dashboards\n <svg class=\"h-4 w-4 ml-1 inline\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\n <path fill-rule=\"evenodd\" d=\"M10 2a4 4 0 00-4 4v2H5a2 2 0 00-2 2v6a2 2 0 002 2h10a2 2 0 002-2v-6a2 2 0 00-2-2h-1V6a4 4 0 00-4-4zm-3 6V6a3 3 0 116 0v2H7z\" clip-rule=\"evenodd\" />\n </svg>\n </span>\n <a v-if=\"hasAccess(roles, 'chat')\"\n href=\"#/chat\"\n class=\"block px-3 py-2 rounded-md text-base font-medium\"\n :class=\"chatView ? 'text-ultramarine-700 bg-ultramarine-100' : 'text-gray-700 hover:bg-gray-100'\">Chat</a>\n <span v-else class=\"block px-3 py-2 rounded-md text-base font-medium text-gray-300 cursor-not-allowed\">\n Chat\n <svg class=\"h-4 w-4 ml-1 inline\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\n <path fill-rule=\"evenodd\" d=\"M10 2a4 4 0 00-4 4v2H5a2 2 0 00-2 2v6a2 2 0 002 2h10a2 2 0 002-2v-6a2 2 0 00-2-2h-1V6a4 4 0 00-4-4zm-3 6V6a3 3 0 116 0v2H7z\" clip-rule=\"evenodd\" />\n </svg>\n </span>\n <div v-if=\"!user && hasAPIKey\" class=\"mt-4\">\n <button\n type=\"button\"\n @click=\"loginWithGithub\"\n class=\"w-full rounded bg-ultramarine-600 px-3 py-2 text-base font-semibold text-white shadow-sm hover:bg-ultramarine-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ultramarine-600\">\n Login\n </button>\n </div>\n <div v-if=\"user && hasAPIKey\" class=\"mt-4\">\n <div class=\"flex items-center gap-3 px-3 py-2 bg-gray-50 rounded-md\">\n <img class=\"size-8 rounded-full\" :src=\"user.picture\" alt=\"\">\n <span class=\"text-gray-900 font-medium\">{{ user.name }}</span>\n </div>\n <div class=\"mt-2 space-y-1\">\n <router-link to=\"/team\" v-if=\"hasAccess(roles, 'team')\" class=\"block px-3 py-2 rounded-md text-base text-gray-700 hover:bg-ultramarine-100\">Team</router-link>\n <span v-else class=\"block px-3 py-2 rounded-md text-base text-gray-300 cursor-not-allowed\">\n Team\n <svg class=\"h-4 w-4 ml-1 inline\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\n <path fill-rule=\"evenodd\" d=\"M10 2a4 4 0 00-4 4v2H5a2 2 0 00-2 2v6a2 2 0 002 2h10a2 2 0 002-2v-6a2 2 0 00-2-2h-1V6a4 4 0 00-4-4zm-3 6V6a3 3 0 116 0v2H7z\" clip-rule=\"evenodd\" />\n </svg>\n </span>\n <span @click=\"logout\" class=\"block px-3 py-2 rounded-md text-base text-gray-700 hover:bg-ultramarine-100 cursor-pointer\">Sign out</span>\n </div>\n </div>\n </nav>\n </div>\n</div>\n";
|
|
5798
6029
|
|
|
5799
|
-
/***/ }
|
|
6030
|
+
/***/ },
|
|
5800
6031
|
|
|
5801
|
-
/***/ "./frontend/src/navbar/navbar.js"
|
|
6032
|
+
/***/ "./frontend/src/navbar/navbar.js"
|
|
5802
6033
|
/*!***************************************!*\
|
|
5803
6034
|
!*** ./frontend/src/navbar/navbar.js ***!
|
|
5804
6035
|
\***************************************/
|
|
5805
|
-
|
|
6036
|
+
(module, __unused_webpack_exports, __webpack_require__) {
|
|
5806
6037
|
|
|
5807
6038
|
"use strict";
|
|
5808
6039
|
|
|
@@ -5902,13 +6133,13 @@ module.exports = app => app.component('navbar', {
|
|
|
5902
6133
|
});
|
|
5903
6134
|
|
|
5904
6135
|
|
|
5905
|
-
/***/ }
|
|
6136
|
+
/***/ },
|
|
5906
6137
|
|
|
5907
|
-
/***/ "./frontend/src/routes.js"
|
|
6138
|
+
/***/ "./frontend/src/routes.js"
|
|
5908
6139
|
/*!********************************!*\
|
|
5909
6140
|
!*** ./frontend/src/routes.js ***!
|
|
5910
6141
|
\********************************/
|
|
5911
|
-
|
|
6142
|
+
(module) {
|
|
5912
6143
|
|
|
5913
6144
|
"use strict";
|
|
5914
6145
|
|
|
@@ -6003,24 +6234,24 @@ module.exports = {
|
|
|
6003
6234
|
};
|
|
6004
6235
|
|
|
6005
6236
|
|
|
6006
|
-
/***/ }
|
|
6237
|
+
/***/ },
|
|
6007
6238
|
|
|
6008
|
-
/***/ "./frontend/src/splash/splash.html"
|
|
6239
|
+
/***/ "./frontend/src/splash/splash.html"
|
|
6009
6240
|
/*!*****************************************!*\
|
|
6010
6241
|
!*** ./frontend/src/splash/splash.html ***!
|
|
6011
6242
|
\*****************************************/
|
|
6012
|
-
|
|
6243
|
+
(module) {
|
|
6013
6244
|
|
|
6014
6245
|
"use strict";
|
|
6015
6246
|
module.exports = "<div class=\"w-full h-full flex items-center justify-center\">\n <div class=\"text-center\">\n <div class=\"rounded-full bg-gray-100 p-6 inline-block\">\n <img src=\"images/logo.svg\" class=\"w-48 h-48\">\n </div>\n <div class=\"text-lg mt-2 font-bold\">\n Mongoose Studio\n </div>\n <div v-if=\"loading\" class=\"mt-2\">\n <img src=\"images/loader.gif\" class=\"inline w-16 h-16\">\n </div>\n <div class=\"mt-2 text-gray-700\" v-if=\"!loading\">\n {{workspaceName}}\n </div>\n <div class=\"mt-4 flex gap-4 justify-center\" v-if=\"!loading\">\n <div>\n <async-button\n type=\"button\"\n @click=\"loginWithGithub\"\n class=\"rounded bg-ultramarine-600 px-2 py-2 text-sm font-semibold text-white shadow-sm hover:bg-ultramarine-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ultramarine-600 disabled:bg-gray-500\">\n <svg viewBox=\"0 0 98 98\" class=\"inline mr-1\" height=\"1.5em\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M48.854 0C21.839 0 0 22 0 49.217c0 21.756 13.993 40.172 33.405 46.69 2.427.49 3.316-1.059 3.316-2.362 0-1.141-.08-5.052-.08-9.127-13.59 2.934-16.42-5.867-16.42-5.867-2.184-5.704-5.42-7.17-5.42-7.17-4.448-3.015.324-3.015.324-3.015 4.934.326 7.523 5.052 7.523 5.052 4.367 7.496 11.404 5.378 14.235 4.074.404-3.178 1.699-5.378 3.074-6.6-10.839-1.141-22.243-5.378-22.243-24.283 0-5.378 1.94-9.778 5.014-13.2-.485-1.222-2.184-6.275.486-13.038 0 0 4.125-1.304 13.426 5.052a46.97 46.97 0 0 1 12.214-1.63c4.125 0 8.33.571 12.213 1.63 9.302-6.356 13.427-5.052 13.427-5.052 2.67 6.763.97 11.816.485 13.038 3.155 3.422 5.015 7.822 5.015 13.2 0 18.905-11.404 23.06-22.324 24.283 1.78 1.548 3.316 4.481 3.316 9.126 0 6.6-.08 11.897-.08 13.526 0 1.304.89 2.853 3.316 2.364 19.412-6.52 33.405-24.935 33.405-46.691C97.707 22 75.788 0 48.854 0z\" fill=\"#fff\"/></svg>\n Login With GitHub\n </async-button>\n </div>\n <div>\n <async-button\n type=\"button\"\n @click=\"loginWithGoogle\"\n class=\"rounded bg-ultramarine-600 px-2 py-2 text-sm font-semibold text-white shadow-sm hover:bg-ultramarine-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ultramarine-600 disabled:bg-gray-500\">\n <svg class=\"inline\" xmlns=\"http://www.w3.org/2000/svg\" height=\"1.5em\" viewBox=\"0 0 512 512\"><path fill=\"#fff\" d=\"M386 400c45-42 65-112 53-179H260v74h102c-4 24-18 44-38 57z\"/><path fill=\"#fff\" d=\"M90 341a192 192 0 0 0 296 59l-62-48c-53 35-141 22-171-60z\"/><path fill=\"#fff\" d=\"M153 292c-8-25-8-48 0-73l-63-49c-23 46-30 111 0 171z\"/><path fill=\"#fff\" d=\"M153 219c22-69 116-109 179-50l55-54c-78-75-230-72-297 55z\"/></svg>\n Login With Google\n </async-button>\n </div>\n </div>\n <div class=\"mt-4\" v-if=\"state.authError\">\n <div class=\"rounded-md bg-red-50 p-4\">\n <div class=\"flex\">\n <div class=\"shrink-0\">\n <svg class=\"size-5 text-red-400\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\" data-slot=\"icon\">\n <path fill-rule=\"evenodd\" d=\"M10 18a8 8 0 1 0 0-16 8 8 0 0 0 0 16ZM8.28 7.22a.75.75 0 0 0-1.06 1.06L8.94 10l-1.72 1.72a.75.75 0 1 0 1.06 1.06L10 11.06l1.72 1.72a.75.75 0 1 0 1.06-1.06L11.06 10l1.72-1.72a.75.75 0 0 0-1.06-1.06L10 8.94 8.28 7.22Z\" clip-rule=\"evenodd\" />\n </svg>\n </div>\n <div class=\"ml-3\">\n <h3 class=\"text-sm font-medium text-red-800\">{{state.authError}}</h3>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n";
|
|
6016
6247
|
|
|
6017
|
-
/***/ }
|
|
6248
|
+
/***/ },
|
|
6018
6249
|
|
|
6019
|
-
/***/ "./frontend/src/splash/splash.js"
|
|
6250
|
+
/***/ "./frontend/src/splash/splash.js"
|
|
6020
6251
|
/*!***************************************!*\
|
|
6021
6252
|
!*** ./frontend/src/splash/splash.js ***!
|
|
6022
6253
|
\***************************************/
|
|
6023
|
-
|
|
6254
|
+
(module, __unused_webpack_exports, __webpack_require__) {
|
|
6024
6255
|
|
|
6025
6256
|
"use strict";
|
|
6026
6257
|
|
|
@@ -6051,24 +6282,24 @@ module.exports = app => app.component('splash', {
|
|
|
6051
6282
|
});
|
|
6052
6283
|
|
|
6053
6284
|
|
|
6054
|
-
/***/ }
|
|
6285
|
+
/***/ },
|
|
6055
6286
|
|
|
6056
|
-
/***/ "./frontend/src/team/new-invitation/new-invitation.html"
|
|
6287
|
+
/***/ "./frontend/src/team/new-invitation/new-invitation.html"
|
|
6057
6288
|
/*!**************************************************************!*\
|
|
6058
6289
|
!*** ./frontend/src/team/new-invitation/new-invitation.html ***!
|
|
6059
6290
|
\**************************************************************/
|
|
6060
|
-
|
|
6291
|
+
(module) {
|
|
6061
6292
|
|
|
6062
6293
|
"use strict";
|
|
6063
6294
|
module.exports = "<div class=\"p-1\">\n <form class=\"space-y-4\">\n <div class=\"text-lg font-bold\">\n New Invitation\n </div>\n\n <div>\n <label for=\"githubUsername\" class=\"block text-sm/6 font-medium text-gray-900\">GitHub Username</label>\n <div class=\"mt-2\">\n <input type=\"githubUsername\" name=\"githubUsername\" id=\"githubUsername\" v-model=\"githubUsername\" class=\"block w-full rounded-md bg-white px-3 py-1.5 text-base text-gray-900 outline outline-1 -outline-offset-1 outline-gray-300 placeholder:text-gray-400 focus:outline focus:outline-2 focus:-outline-offset-2 focus:outline-ultramarine-600 sm:text-sm/6\" placeholder=\"johnsmith12\">\n </div>\n </div>\n\n <div>\n <label for=\"email\" class=\"block text-sm/6 font-medium text-gray-900\">Email (Optional)</label>\n <div class=\"mt-2\">\n <input type=\"email\" name=\"email\" id=\"email\" v-model=\"email\" class=\"block w-full rounded-md bg-white px-3 py-1.5 text-base text-gray-900 outline outline-1 -outline-offset-1 outline-gray-300 placeholder:text-gray-400 focus:outline focus:outline-2 focus:-outline-offset-2 focus:outline-ultramarine-600 sm:text-sm/6\" placeholder=\"you@example.com\">\n </div>\n </div>\n\n <div>\n <label for=\"location\" class=\"block text-sm/6 font-medium text-gray-900\">Role</label>\n <div class=\"mt-2 grid grid-cols-1\">\n <select id=\"role\" :disabled=\"tier == null\" name=\"role\" v-model=\"role\" class=\"col-start-1 row-start-1 w-full appearance-none rounded-md bg-white py-1.5 pl-3 pr-8 text-base text-gray-900 outline outline-1 -outline-offset-1 outline-gray-300 focus:outline focus:outline-2 focus:-outline-offset-2 focus:outline-indigo-600 sm:text-sm/6\">\n <option value=\"admin\">Admin</option>\n <option value=\"member\">Member</option>\n <option value=\"readonly\">Read-only</option>\n <option value=\"dashboards\">Dashboards Only</option>\n </select>\n <svg class=\"pointer-events-none col-start-1 row-start-1 mr-2 size-5 self-center justify-self-end text-gray-500 sm:size-4\" viewBox=\"0 0 16 16\" fill=\"currentColor\" aria-hidden=\"true\" data-slot=\"icon\">\n <path fill-rule=\"evenodd\" d=\"M4.22 6.22a.75.75 0 0 1 1.06 0L8 8.94l2.72-2.72a.75.75 0 1 1 1.06 1.06l-3.25 3.25a.75.75 0 0 1-1.06 0L4.22 7.28a.75.75 0 0 1 0-1.06Z\" clip-rule=\"evenodd\" />\n </svg>\n </div>\n <div v-if=\"tier == null\" class=\"text-sm text-gray-700\">\n You can only invite \"Dashboards Only\" users until you set up a subscription.\n </div>\n </div>\n\n <async-button\n type=\"submit\"\n @click=\"inviteToWorkspace\"\n class=\"inline-flex justify-center rounded-md border border-transparent bg-forest-green-600 py-2 px-4 text-sm font-medium text-white shadow-sm hover:bg-forest-green-500 focus:outline-none focus:ring-2 focus:ring-forest-green-500 focus:ring-offset-2\">\n Submit\n </async-button>\n </form>\n</div>\n";
|
|
6064
6295
|
|
|
6065
|
-
/***/ }
|
|
6296
|
+
/***/ },
|
|
6066
6297
|
|
|
6067
|
-
/***/ "./frontend/src/team/new-invitation/new-invitation.js"
|
|
6298
|
+
/***/ "./frontend/src/team/new-invitation/new-invitation.js"
|
|
6068
6299
|
/*!************************************************************!*\
|
|
6069
6300
|
!*** ./frontend/src/team/new-invitation/new-invitation.js ***!
|
|
6070
6301
|
\************************************************************/
|
|
6071
|
-
|
|
6302
|
+
(module, __unused_webpack_exports, __webpack_require__) {
|
|
6072
6303
|
|
|
6073
6304
|
"use strict";
|
|
6074
6305
|
|
|
@@ -6100,24 +6331,24 @@ module.exports = app => app.component('new-invitation', {
|
|
|
6100
6331
|
});
|
|
6101
6332
|
|
|
6102
6333
|
|
|
6103
|
-
/***/ }
|
|
6334
|
+
/***/ },
|
|
6104
6335
|
|
|
6105
|
-
/***/ "./frontend/src/team/team.html"
|
|
6336
|
+
/***/ "./frontend/src/team/team.html"
|
|
6106
6337
|
/*!*************************************!*\
|
|
6107
6338
|
!*** ./frontend/src/team/team.html ***!
|
|
6108
6339
|
\*************************************/
|
|
6109
|
-
|
|
6340
|
+
(module) {
|
|
6110
6341
|
|
|
6111
6342
|
"use strict";
|
|
6112
6343
|
module.exports = "<div class=\"mx-auto max-w-5xl py-6 px-2 flex flex-col gap-8\">\n <div>\n <div class=\"text-xl font-bold\">\n Subscription Details\n </div>\n <div v-if=\"status === 'loading'\" class=\"mt-4\">\n <img src=\"images/loader.gif\" class=\"inline w-8 h-8\">\n </div>\n <div v-else-if=\"workspace && workspace.subscriptionTier\" class=\"mt-4 flex justify-between items-center\">\n <div>\n <span class=\"font-bold\">Tier:</span> {{workspace.subscriptionTier ?? 'No subscription'}}\n </div>\n <div>\n <async-button\n type=\"submit\"\n @click=\"getWorkspaceCustomerPortalLink\"\n class=\"inline-flex items-center justify-center rounded-md border border-transparent bg-ultramarine-600 py-1 px-2 text-sm font-medium text-white shadow-sm hover:bg-ultramarine-500 focus:outline-none focus:ring-2 focus:ring-forest-green-500 focus:ring-offset-2\">\n View in Stripe\n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-4 h-4 ml-1\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M13.5 6H5.25A2.25 2.25 0 003 8.25v10.5A2.25 2.25 0 005.25 21h10.5A2.25 2.25 0 0018 18.75V10.5m-10.5 6L21 3m0 0h-5.25M21 3v5.25\" />\n </svg>\n </async-button>\n </div>\n </div>\n <div v-else-if=\"workspace && !workspace.subscriptionTier\" class=\"mt-4 flex justify-between items-center\">\n <div>\n <span class=\"font-bold\">No active subscription</span>\n <div class=\"text-sm text-gray-700\">\n You won't be able to invite your team until you activate a subscription\n </div>\n </div>\n <div>\n <a\n :href=\"paymentLink\"\n target=\"_blank\"\n class=\"inline-flex items-center justify-center rounded-md border border-transparent bg-ultramarine-600 py-1 px-2 text-sm font-medium text-white shadow-sm hover:bg-ultramarine-500 focus:outline-none focus:ring-2 focus:ring-ultramarine-500 focus:ring-offset-2\">\n Subscribe With Stripe\n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"w-4 h-4 ml-1\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M13.5 6H5.25A2.25 2.25 0 003 8.25v10.5A2.25 2.25 0 005.25 21h10.5A2.25 2.25 0 0018 18.75V10.5m-10.5 6L21 3m0 0h-5.25M21 3v5.25\" />\n </svg>\n </a>\n </div>\n </div>\n </div>\n <div>\n <div class=\"text-xl font-bold\">\n Current Members\n </div>\n <div v-if=\"status === 'loading'\" class=\"mt-4\">\n <img src=\"images/loader.gif\" class=\"inline w-8 h-8\">\n </div>\n <ul v-else role=\"list\" class=\"divide-y divide-gray-100\">\n <li class=\"flex justify-between gap-x-6 py-5\" v-for=\"user in users\">\n <div class=\"flex min-w-0 gap-x-4\">\n <img class=\"size-12 flex-none rounded-full bg-gray-50\" :src=\"user.picture ?? 'images/logo.svg'\" alt=\"\">\n <div class=\"min-w-0 flex-auto\">\n <p class=\"text-sm/6 font-semibold text-gray-900\">\n {{user.name || user.githubUsername}}\n <span v-if=\"user.isFreeUser\" class=\"ml-1 inline-flex items-center rounded-md bg-green-50 px-2 py-1 text-xs font-medium text-green-700 ring-1 ring-inset ring-green-600/20\">Free</span>\n </p>\n <p class=\"mt-1 truncate text-xs/5 text-gray-500\">{{user.email ?? 'No Email'}}</p>\n </div>\n </div>\n <div class=\"hidden shrink-0 sm:flex sm:flex-col sm:items-end\">\n <p class=\"text-sm/6 text-gray-900 capitalize\">{{getRolesForUser(user).join(', ')}}</p>\n <div class=\"flex gap-3\">\n <button\n type=\"button\"\n class=\"mt-1 text-xs/5 text-gray-500 cursor-pointer disabled:cursor-not-allowed disabled:text-gray-300\"\n :disabled=\"getRolesForUser(user).includes('owner')\"\n @click=\"openEditModal(user)\">\n Edit\n </button>\n <button\n class=\"mt-1 text-xs/5 text-valencia-500 cursor-pointer disabled:cursor-not-allowed disabled:text-gray-300\"\n :disabled=\"getRolesForUser(user).includes('owner')\"\n @click=\"showRemoveModal = user\">\n Remove\n </button>\n </div>\n </div>\n </li>\n </ul>\n </div>\n <div>\n <div class=\"flex items-center justify-between\">\n <div class=\"text-xl font-bold\">\n Invitations\n </div>\n <div class=\"mt-4 sm:ml-16 sm:mt-0 sm:flex-none\">\n <button\n type=\"button\"\n @click=\"showNewInvitationModal = true\"\n :disabled=\"status === 'loading'\"\n :tier=\"workspace?.subscriptionTier\"\n class=\"block rounded-md bg-ultramarine-600 px-3 py-2 text-center text-sm font-semibold text-white shadow-sm hover:bg-ultramarine-500 disabled:bg-gray-500 disabled:cursor-not-allowed focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ultramarine-600\">\n New Invitation\n <svg class=\"inline w-4 h-4 ml-1\" v-if=\"workspace && !workspace.subscriptionTier\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\n <path fill-rule=\"evenodd\" d=\"M12 1.5a5.25 5.25 0 00-5.25 5.25v3a3 3 0 00-3 3v6.75a3 3 0 003 3h10.5a3 3 0 003-3v-6.75a3 3 0 00-3-3v-3c0-2.9-2.35-5.25-5.25-5.25zm3.75 8.25v-3a3.75 3.75 0 10-7.5 0v3h7.5z\" clip-rule=\"evenodd\" />\n </svg>\n </button>\n </div>\n </div>\n <div v-if=\"status === 'loading'\" class=\"mt-4\">\n <img src=\"images/loader.gif\" class=\"inline w-8 h-8\">\n </div>\n <div v-else-if=\"invitations?.length > 0\" class=\"mt-8 flow-root\" v-if=\"invitations?.length > 0\">\n <div class=\"-mx-4 -my-2 overflow-x-auto sm:-mx-6 lg:-mx-8\">\n <div class=\"inline-block min-w-full py-2 align-middle sm:px-6 lg:px-8\">\n <table class=\"min-w-full divide-y divide-gray-300\">\n <thead>\n <tr>\n <th scope=\"col\" class=\"py-3.5 pl-4 pr-3 text-left text-sm font-semibold text-gray-900 sm:pl-0\">GitHub Username</th>\n <th scope=\"col\" class=\"px-3 py-3.5 text-left text-sm font-semibold text-gray-900\">Email</th>\n <th scope=\"col\" class=\"px-3 py-3.5 text-left text-sm font-semibold text-gray-900\">Status</th>\n <th scope=\"col\" class=\"px-3 py-3.5 text-left text-sm font-semibold text-gray-900\">Role</th>\n </tr>\n </thead>\n <tbody class=\"divide-y divide-gray-200 bg-white\">\n <tr v-for=\"invitation in invitations\">\n <td class=\"whitespace-nowrap py-5 pl-4 pr-3 text-sm sm:pl-0\">\n {{invitation.githubUsername}}\n </td>\n <td class=\"whitespace-nowrap px-3 py-5 text-sm text-gray-500\">\n {{invitation.email}}\n </td>\n <td class=\"whitespace-nowrap px-3 py-5 text-sm text-gray-500\">\n <span class=\"inline-flex items-center rounded-md bg-gray-50 px-2 py-1 text-xs font-medium text-gray-700 ring-1 ring-inset ring-gray-600/20\">\n Pending\n </span>\n </td>\n <td class=\"whitespace-nowrap px-3 py-5 text-sm text-gray-500\">\n {{invitation.roles.join(', ')}}\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n </div>\n </div>\n <div v-else-if=\"invitations?.length === 0\" class=\"mt-4\">\n <div class=\"text-center\">\n <svg class=\"mx-auto size-12 text-gray-400\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" aria-hidden=\"true\">\n <path vector-effect=\"non-scaling-stroke\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M9 13h6m-3-3v6m-9 1V7a2 2 0 012-2h6l2 2h6a2 2 0 012 2v8a2 2 0 01-2 2H5a2 2 0 01-2-2z\" />\n </svg>\n <h3 class=\"mt-2 text-sm font-semibold text-gray-900\">No invitations</h3>\n <p class=\"mt-1 text-sm text-gray-500\">You have no outstanding invitations</p>\n </div>\n </div>\n </div>\n\n <modal v-if=\"showNewInvitationModal\">\n <template v-slot:body>\n <div class=\"modal-exit\" @click=\"showNewInvitationModal = false\">×</div>\n <new-invitation @close=\"showNewInvitationModal = false\" @invitationCreated=\"invitations.push($event.invitation)\"></new-invitation>\n </template>\n </modal>\n\n <modal v-if=\"showEditModal\">\n <template v-slot:body>\n <div class=\"modal-exit\" @click=\"closeEditModal\">×</div>\n <div class=\"p-1 space-y-4\">\n <div class=\"text-lg font-bold\">\n Edit Member\n </div>\n\n <div>\n <div class=\"text-sm/6 font-semibold text-gray-900\">\n {{showEditModal.user.name || showEditModal.user.githubUsername}}\n </div>\n <div class=\"text-xs/5 text-gray-500\">\n {{showEditModal.user.email ?? 'No Email'}}\n </div>\n </div>\n\n <div>\n <label for=\"editRole\" class=\"block text-sm/6 font-medium text-gray-900\">Role</label>\n <div class=\"mt-2 grid grid-cols-1\">\n <select\n id=\"editRole\"\n name=\"editRole\"\n v-model=\"showEditModal.role\"\n class=\"col-start-1 row-start-1 w-full appearance-none rounded-md bg-white py-1.5 pl-3 pr-8 text-base text-gray-900 outline outline-1 -outline-offset-1 outline-gray-300 focus:outline focus:outline-2 focus:-outline-offset-2 focus:outline-ultramarine-600 sm:text-sm/6\">\n <option value=\"admin\" :disabled=\"disableRoleOption('admin')\">Admin</option>\n <option value=\"member\" :disabled=\"disableRoleOption('member')\">Member</option>\n <option value=\"readonly\" :disabled=\"disableRoleOption('readonly')\">Read-only</option>\n <option value=\"dashboards\" :disabled=\"disableRoleOption('dashboards')\">Dashboards Only</option>\n </select>\n <svg class=\"pointer-events-none col-start-1 row-start-1 mr-2 size-5 self-center justify-self-end text-gray-500 sm:size-4\" viewBox=\"0 0 16 16\" fill=\"currentColor\" aria-hidden=\"true\" data-slot=\"icon\">\n <path fill-rule=\"evenodd\" d=\"M4.22 6.22a.75.75 0 0 1 1.06 0L8 8.94l2.72-2.72a.75.75 0 1 1 1.06 1.06l-3.25 3.25a.75.75 0 0 1-1.06 0L4.22 7.28a.75.75 0 0 1 0-1.06Z\" clip-rule=\"evenodd\" />\n </svg>\n </div>\n <div v-if=\"!workspace?.subscriptionTier\" class=\"mt-2 text-sm text-gray-700\">\n You can only assign the \"Dashboards Only\" role until you activate a subscription.\n </div>\n </div>\n\n <div class=\"mt-6 grid grid-cols-2 gap-4\">\n <async-button\n @click=\"updateWorkspaceMember\"\n :disabled=\"showEditModal.role === showEditModal.originalRole\"\n class=\"border-0 mt-0 flex w-full items-center justify-center gap-3 rounded-md bg-ultramarine-600 hover:bg-ultramarine-500 px-3 py-1.5 text-white focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ultramarine-500\">\n <span class=\"text-sm font-semibold leading-6\">Save</span>\n </async-button>\n\n <span @click=\"closeEditModal\" class=\"cursor-pointer flex w-full items-center justify-center gap-3 rounded-md bg-slate-500 hover:bg-slate-400 px-3 py-1.5 text-white focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-slate-400\">\n <span class=\"text-sm font-semibold leading-6\">Cancel</span>\n </span>\n </div>\n </div>\n </template>\n </modal>\n\n <modal v-if=\"showRemoveModal\">\n <template v-slot:body>\n <div class=\"modal-exit\" @click=\"showRemoveModal = null\">×</div>\n <div>\n Are you sure you want to remove user <span class=\"font-bold\">{{showRemoveModal.githubUsername}}</span> from this workspace?\n </div>\n <div class=\"mt-6 grid grid-cols-2 gap-4\">\n <async-button\n @click=\"removeFromWorkspace\"\n class=\"border-0 mt-0 flex w-full items-center justify-center gap-3 rounded-md bg-valencia-500 hover:bg-valencia-400 px-3 py-1.5 text-white focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-orange-400\">\n <span class=\"text-sm font-semibold leading-6\">Yes, Remove</span>\n </async-button>\n\n <span @click=\"showRemoveModal = null\" class=\"cursor-pointer flex w-full items-center justify-center gap-3 rounded-md bg-slate-500 hover:bg-slate-400 px-3 py-1.5 text-white focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-slate-400\">\n <span class=\"text-sm font-semibold leading-6\">Cancel</span>\n </span>\n </div>\n </template>\n </modal>\n</div>\n";
|
|
6113
6344
|
|
|
6114
|
-
/***/ }
|
|
6345
|
+
/***/ },
|
|
6115
6346
|
|
|
6116
|
-
/***/ "./frontend/src/team/team.js"
|
|
6347
|
+
/***/ "./frontend/src/team/team.js"
|
|
6117
6348
|
/*!***********************************!*\
|
|
6118
6349
|
!*** ./frontend/src/team/team.js ***!
|
|
6119
6350
|
\***********************************/
|
|
6120
|
-
|
|
6351
|
+
(module, __unused_webpack_exports, __webpack_require__) {
|
|
6121
6352
|
|
|
6122
6353
|
"use strict";
|
|
6123
6354
|
|
|
@@ -6214,35 +6445,35 @@ module.exports = app => app.component('team', {
|
|
|
6214
6445
|
});
|
|
6215
6446
|
|
|
6216
6447
|
|
|
6217
|
-
/***/ }
|
|
6448
|
+
/***/ },
|
|
6218
6449
|
|
|
6219
|
-
/***/ "./frontend/src/update-document/update-document.css"
|
|
6450
|
+
/***/ "./frontend/src/update-document/update-document.css"
|
|
6220
6451
|
/*!**********************************************************!*\
|
|
6221
6452
|
!*** ./frontend/src/update-document/update-document.css ***!
|
|
6222
6453
|
\**********************************************************/
|
|
6223
|
-
|
|
6454
|
+
(module) {
|
|
6224
6455
|
|
|
6225
6456
|
"use strict";
|
|
6226
6457
|
module.exports = "";
|
|
6227
6458
|
|
|
6228
|
-
/***/ }
|
|
6459
|
+
/***/ },
|
|
6229
6460
|
|
|
6230
|
-
/***/ "./frontend/src/update-document/update-document.html"
|
|
6461
|
+
/***/ "./frontend/src/update-document/update-document.html"
|
|
6231
6462
|
/*!***********************************************************!*\
|
|
6232
6463
|
!*** ./frontend/src/update-document/update-document.html ***!
|
|
6233
6464
|
\***********************************************************/
|
|
6234
|
-
|
|
6465
|
+
(module) {
|
|
6235
6466
|
|
|
6236
6467
|
"use strict";
|
|
6237
6468
|
module.exports = "<div>\n <div class=\"mb-2\">\n <textarea class=\"border border-gray-200 p-2 h-[300px] w-full\" ref=\"codeEditor\"></textarea>\n </div>\n <button @click=\"updateDocument()\" class=\"rounded-md bg-ultramarine-600 px-2.5 py-1.5 text-sm font-semibold text-white shadow-sm hover:bg-ultramarine-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-teal-600\">Submit</button>\n <div v-if=\"errors.length > 0\" class=\"rounded-md bg-red-50 p-4 mt-1\">\n <div class=\"flex\">\n <div class=\"flex-shrink-0\">\n <svg class=\"h-5 w-5 text-red-400\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\n <path fill-rule=\"evenodd\" d=\"M10 18a8 8 0 100-16 8 8 0 000 16zM8.28 7.22a.75.75 0 00-1.06 1.06L8.94 10l-1.72 1.72a.75.75 0 101.06 1.06L10 11.06l1.72 1.72a.75.75 0 101.06-1.06L11.06 10l1.72-1.72a.75.75 0 00-1.06-1.06L10 8.94 8.28 7.22z\" clip-rule=\"evenodd\" />\n </svg>\n </div>\n <div class=\"ml-3\">\n <h3 class=\"text-sm font-medium text-red-800\">There were {{errors.length}} errors with your submission</h3>\n <div class=\"mt-2 text-sm text-red-700\">\n <ul role=\"list\" class=\"list-disc space-y-1 pl-5\">\n <li v-for=\"error in errors\">\n {{error}}\n </li>\n </ul>\n </div>\n </div>\n </div>\n </div>\n </div>";
|
|
6238
6469
|
|
|
6239
|
-
/***/ }
|
|
6470
|
+
/***/ },
|
|
6240
6471
|
|
|
6241
|
-
/***/ "./frontend/src/update-document/update-document.js"
|
|
6472
|
+
/***/ "./frontend/src/update-document/update-document.js"
|
|
6242
6473
|
/*!*********************************************************!*\
|
|
6243
6474
|
!*** ./frontend/src/update-document/update-document.js ***!
|
|
6244
6475
|
\*********************************************************/
|
|
6245
|
-
|
|
6476
|
+
(module, __unused_webpack_exports, __webpack_require__) {
|
|
6246
6477
|
|
|
6247
6478
|
"use strict";
|
|
6248
6479
|
|
|
@@ -6317,13 +6548,13 @@ module.exports = app => app.component('update-document', {
|
|
|
6317
6548
|
});
|
|
6318
6549
|
|
|
6319
6550
|
|
|
6320
|
-
/***/ }
|
|
6551
|
+
/***/ },
|
|
6321
6552
|
|
|
6322
|
-
/***/ "./node_modules/axios/dist/browser/axios.cjs"
|
|
6553
|
+
/***/ "./node_modules/axios/dist/browser/axios.cjs"
|
|
6323
6554
|
/*!***************************************************!*\
|
|
6324
6555
|
!*** ./node_modules/axios/dist/browser/axios.cjs ***!
|
|
6325
6556
|
\***************************************************/
|
|
6326
|
-
|
|
6557
|
+
(module, __unused_webpack_exports, __webpack_require__) {
|
|
6327
6558
|
|
|
6328
6559
|
"use strict";
|
|
6329
6560
|
// Axios v1.2.2 Copyright (c) 2022 Matt Zabriskie and contributors
|
|
@@ -9483,13 +9714,13 @@ module.exports = axios;
|
|
|
9483
9714
|
//# sourceMappingURL=axios.cjs.map
|
|
9484
9715
|
|
|
9485
9716
|
|
|
9486
|
-
/***/ }
|
|
9717
|
+
/***/ },
|
|
9487
9718
|
|
|
9488
|
-
/***/ "./node_modules/bson/lib/bson.mjs"
|
|
9719
|
+
/***/ "./node_modules/bson/lib/bson.mjs"
|
|
9489
9720
|
/*!****************************************!*\
|
|
9490
9721
|
!*** ./node_modules/bson/lib/bson.mjs ***!
|
|
9491
9722
|
\****************************************/
|
|
9492
|
-
|
|
9723
|
+
(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
9493
9724
|
|
|
9494
9725
|
"use strict";
|
|
9495
9726
|
__webpack_require__.r(__webpack_exports__);
|
|
@@ -14166,13 +14397,13 @@ var bson = /*#__PURE__*/Object.freeze({
|
|
|
14166
14397
|
//# sourceMappingURL=bson.mjs.map
|
|
14167
14398
|
|
|
14168
14399
|
|
|
14169
|
-
/***/ }
|
|
14400
|
+
/***/ },
|
|
14170
14401
|
|
|
14171
|
-
/***/ "./node_modules/marked/lib/marked.cjs"
|
|
14402
|
+
/***/ "./node_modules/marked/lib/marked.cjs"
|
|
14172
14403
|
/*!********************************************!*\
|
|
14173
14404
|
!*** ./node_modules/marked/lib/marked.cjs ***!
|
|
14174
14405
|
\********************************************/
|
|
14175
|
-
|
|
14406
|
+
(module) {
|
|
14176
14407
|
|
|
14177
14408
|
"use strict";
|
|
14178
14409
|
/**
|
|
@@ -16388,13 +16619,13 @@ var lexer = _Lexer.lex;
|
|
|
16388
16619
|
//# sourceMappingURL=marked.cjs.map
|
|
16389
16620
|
|
|
16390
16621
|
|
|
16391
|
-
/***/ }
|
|
16622
|
+
/***/ },
|
|
16392
16623
|
|
|
16393
|
-
/***/ "./node_modules/mongodb/lib/bson.js"
|
|
16624
|
+
/***/ "./node_modules/mongodb/lib/bson.js"
|
|
16394
16625
|
/*!******************************************!*\
|
|
16395
16626
|
!*** ./node_modules/mongodb/lib/bson.js ***!
|
|
16396
16627
|
\******************************************/
|
|
16397
|
-
|
|
16628
|
+
(__unused_webpack_module, exports, __webpack_require__) {
|
|
16398
16629
|
|
|
16399
16630
|
"use strict";
|
|
16400
16631
|
|
|
@@ -16482,13 +16713,13 @@ function parseUtf8ValidationOption(options) {
|
|
|
16482
16713
|
}
|
|
16483
16714
|
//# sourceMappingURL=bson.js.map
|
|
16484
16715
|
|
|
16485
|
-
/***/ }
|
|
16716
|
+
/***/ },
|
|
16486
16717
|
|
|
16487
|
-
/***/ "./node_modules/mpath/index.js"
|
|
16718
|
+
/***/ "./node_modules/mpath/index.js"
|
|
16488
16719
|
/*!*************************************!*\
|
|
16489
16720
|
!*** ./node_modules/mpath/index.js ***!
|
|
16490
16721
|
\*************************************/
|
|
16491
|
-
|
|
16722
|
+
(module, exports, __webpack_require__) {
|
|
16492
16723
|
|
|
16493
16724
|
"use strict";
|
|
16494
16725
|
|
|
@@ -16496,13 +16727,13 @@ function parseUtf8ValidationOption(options) {
|
|
|
16496
16727
|
module.exports = exports = __webpack_require__(/*! ./lib */ "./node_modules/mpath/lib/index.js");
|
|
16497
16728
|
|
|
16498
16729
|
|
|
16499
|
-
/***/ }
|
|
16730
|
+
/***/ },
|
|
16500
16731
|
|
|
16501
|
-
/***/ "./node_modules/mpath/lib/index.js"
|
|
16732
|
+
/***/ "./node_modules/mpath/lib/index.js"
|
|
16502
16733
|
/*!*****************************************!*\
|
|
16503
16734
|
!*** ./node_modules/mpath/lib/index.js ***!
|
|
16504
16735
|
\*****************************************/
|
|
16505
|
-
|
|
16736
|
+
(__unused_webpack_module, exports, __webpack_require__) {
|
|
16506
16737
|
|
|
16507
16738
|
/* eslint strict:off */
|
|
16508
16739
|
/* eslint no-var: off */
|
|
@@ -16831,13 +17062,13 @@ function K(v) {
|
|
|
16831
17062
|
return v;
|
|
16832
17063
|
}
|
|
16833
17064
|
|
|
16834
|
-
/***/ }
|
|
17065
|
+
/***/ },
|
|
16835
17066
|
|
|
16836
|
-
/***/ "./node_modules/mpath/lib/stringToParts.js"
|
|
17067
|
+
/***/ "./node_modules/mpath/lib/stringToParts.js"
|
|
16837
17068
|
/*!*************************************************!*\
|
|
16838
17069
|
!*** ./node_modules/mpath/lib/stringToParts.js ***!
|
|
16839
17070
|
\*************************************************/
|
|
16840
|
-
|
|
17071
|
+
(module) {
|
|
16841
17072
|
|
|
16842
17073
|
"use strict";
|
|
16843
17074
|
|
|
@@ -16889,13 +17120,13 @@ module.exports = function stringToParts(str) {
|
|
|
16889
17120
|
return result;
|
|
16890
17121
|
};
|
|
16891
17122
|
|
|
16892
|
-
/***/ }
|
|
17123
|
+
/***/ },
|
|
16893
17124
|
|
|
16894
|
-
/***/ "./node_modules/node-inspect-extracted/dist/inspect.js"
|
|
17125
|
+
/***/ "./node_modules/node-inspect-extracted/dist/inspect.js"
|
|
16895
17126
|
/*!*************************************************************!*\
|
|
16896
17127
|
!*** ./node_modules/node-inspect-extracted/dist/inspect.js ***!
|
|
16897
17128
|
\*************************************************************/
|
|
16898
|
-
|
|
17129
|
+
(module) {
|
|
16899
17130
|
|
|
16900
17131
|
/*! For license information please see inspect.js.LICENSE.txt */
|
|
16901
17132
|
!function(t,e){ true?module.exports=e():0}(this,()=>(()=>{"use strict";var t={0:(t,e,r)=>{function n(t){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},n(t)}function o(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,o,a,i,c=[],u=!0,l=!1;try{if(a=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;u=!1}else for(;!(u=(n=a.call(r)).done)&&(c.push(n.value),c.length!==e);u=!0);}catch(t){l=!0,o=t}finally{try{if(!u&&null!=r.return&&(i=r.return(),Object(i)!==i))return}finally{if(l)throw o}}return c}}(t,e)||i(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function a(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=i(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,c=!0,u=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return c=t.done,t},e:function(t){u=!0,a=t},f:function(){try{c||null==r.return||r.return()}finally{if(u)throw a}}}}function i(t,e){if(t){if("string"==typeof t)return c(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?c(t,e):void 0}}function c(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}var u=r(798),l=u.BigInt,f=u.Error,s=u.NumberParseInt,y=u.ObjectEntries,p=u.ObjectGetOwnPropertyDescriptor,g=u.ObjectGetOwnPropertyDescriptors,v=u.ObjectGetOwnPropertySymbols,h=u.ObjectPrototypeToString,d=u.Symbol,b=r(522),m=d("kPending"),S=d("kRejected");t.exports={constants:{kPending:m,kRejected:S,ALL_PROPERTIES:0,ONLY_ENUMERABLE:2},getOwnNonIndexProperties:function(t){var e,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:2,n=g(t),i=[],c=a(y(n));try{for(c.s();!(e=c.n()).done;){var u=o(e.value,2),l=u[0],f=u[1];if(!/^(0|[1-9][0-9]*)$/.test(l)||s(l,10)>=Math.pow(2,32)-1){if(2===r&&!f.enumerable)continue;i.push(l)}}}catch(t){c.e(t)}finally{c.f()}var h,d=a(v(t));try{for(d.s();!(h=d.n()).done;){var b=h.value,m=p(t,b);(2!==r||m.enumerable)&&i.push(b)}}catch(t){d.e(t)}finally{d.f()}return i},getPromiseDetails:function(){return[m,void 0]},getProxyDetails:b.getProxyDetails,Proxy:b.Proxy,previewEntries:function(t){return[[],!1]},getConstructorName:function(t){var e;if(!t||"object"!==n(t))throw new f("Invalid object");if(null!==(e=t.constructor)&&void 0!==e&&e.name)return t.constructor.name;var r=h(t).match(/^\[object ([^\]]+)\]/);return r?r[1]:"Object"},getExternalValue:function(){return l(0)}}},315:t=>{t.exports={CHAR_DOT:46,CHAR_FORWARD_SLASH:47,CHAR_BACKWARD_SLASH:92}},338:(t,e,r)=>{function n(t){return function(t){if(Array.isArray(t))return c(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||i(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function o(t){return o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},o(t)}function a(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=i(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,c=!0,u=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return c=t.done,t},e:function(t){u=!0,a=t},f:function(){try{c||null==r.return||r.return()}finally{if(u)throw a}}}}function i(t,e){if(t){if("string"==typeof t)return c(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?c(t,e):void 0}}function c(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}function u(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}function l(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?u(Object(r),!0).forEach(function(e){f(t,e,r[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):u(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))})}return t}function f(t,e,r){return(e=function(t){var e=function(t){if("object"!=o(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var r=e.call(t,"string");if("object"!=o(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==o(e)?e:e+""}(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}var s,y,p,g=r(798),v=g.AggregateError,h=g.AggregateErrorPrototype,d=g.Array,b=g.ArrayBuffer,m=g.ArrayBufferPrototype,S=g.ArrayIsArray,P=g.ArrayPrototype,x=g.ArrayPrototypeFilter,w=g.ArrayPrototypeForEach,A=g.ArrayPrototypeIncludes,O=g.ArrayPrototypeIndexOf,_=g.ArrayPrototypeJoin,j=g.ArrayPrototypeMap,E=g.ArrayPrototypePop,k=g.ArrayPrototypePush,I=g.ArrayPrototypePushApply,R=g.ArrayPrototypeSlice,L=g.ArrayPrototypeSort,T=g.ArrayPrototypeSplice,B=g.ArrayPrototypeUnshift,z=g.BigIntPrototypeValueOf,M=g.Boolean,C=g.BooleanPrototype,D=g.BooleanPrototypeValueOf,N=g.DataView,F=g.DataViewPrototype,W=g.Date,H=g.DatePrototype,U=g.DatePrototypeGetTime,G=g.DatePrototypeToISOString,V=g.DatePrototypeToString,Z=g.Error,$=g.ErrorPrototype,Y=g.ErrorPrototypeToString,q=g.Function,J=g.FunctionPrototype,K=g.FunctionPrototypeBind,Q=g.FunctionPrototypeCall,X=g.FunctionPrototypeSymbolHasInstance,tt=g.FunctionPrototypeToString,et=g.JSONStringify,rt=g.Map,nt=g.MapPrototype,ot=g.MapPrototypeEntries,at=g.MapPrototypeGetSize,it=g.MathFloor,ct=g.MathMax,ut=g.MathMin,lt=g.MathRound,ft=g.MathSqrt,st=g.MathTrunc,yt=g.Number,pt=g.NumberIsFinite,gt=g.NumberIsNaN,vt=g.NumberParseFloat,ht=g.NumberParseInt,dt=g.NumberPrototype,bt=g.NumberPrototypeToString,mt=g.NumberPrototypeValueOf,St=g.Object,Pt=g.ObjectAssign,xt=g.ObjectDefineProperty,wt=g.ObjectGetOwnPropertyDescriptor,At=g.ObjectGetOwnPropertyNames,Ot=g.ObjectGetOwnPropertySymbols,_t=g.ObjectGetPrototypeOf,jt=g.ObjectIs,Et=g.ObjectKeys,kt=g.ObjectPrototype,It=g.ObjectPrototypeHasOwnProperty,Rt=g.ObjectPrototypePropertyIsEnumerable,Lt=g.ObjectSeal,Tt=g.ObjectSetPrototypeOf,Bt=g.Promise,zt=g.PromisePrototype,Mt=g.RangeError,Ct=g.RangeErrorPrototype,Dt=g.ReflectApply,Nt=g.ReflectOwnKeys,Ft=g.RegExp,Wt=g.RegExpPrototype,Ht=g.RegExpPrototypeExec,Ut=g.RegExpPrototypeSymbolReplace,Gt=g.RegExpPrototypeSymbolSplit,Vt=g.RegExpPrototypeToString,Zt=g.SafeMap,$t=g.SafeSet,Yt=g.SafeStringIterator,qt=g.Set,Jt=g.SetPrototype,Kt=g.SetPrototypeGetSize,Qt=g.SetPrototypeValues,Xt=g.String,te=g.StringPrototype,ee=g.StringPrototypeCharCodeAt,re=g.StringPrototypeCodePointAt,ne=g.StringPrototypeEndsWith,oe=g.StringPrototypeIncludes,ae=g.StringPrototypeIndexOf,ie=g.StringPrototypeLastIndexOf,ce=g.StringPrototypeNormalize,ue=g.StringPrototypePadEnd,le=g.StringPrototypePadStart,fe=g.StringPrototypeRepeat,se=g.StringPrototypeReplace,ye=g.StringPrototypeReplaceAll,pe=g.StringPrototypeSlice,ge=g.StringPrototypeSplit,ve=g.StringPrototypeStartsWith,he=g.StringPrototypeToLowerCase,de=g.StringPrototypeTrim,be=g.StringPrototypeValueOf,me=g.SymbolIterator,Se=g.SymbolPrototypeToString,Pe=g.SymbolPrototypeValueOf,xe=g.SymbolToPrimitive,we=g.SymbolToStringTag,Ae=g.TypeError,Oe=g.TypeErrorPrototype,_e=g.TypedArray,je=g.TypedArrayPrototype,Ee=g.TypedArrayPrototypeGetLength,ke=g.TypedArrayPrototypeGetSymbolToStringTag,Ie=g.Uint8Array,Re=g.WeakMap,Le=g.WeakMapPrototype,Te=g.WeakSet,Be=g.WeakSetPrototype,ze=g.globalThis,Me=g.internalBinding,Ce=g.uncurryThis,De=r(0),Ne=De.constants,Fe=Ne.ALL_PROPERTIES,We=Ne.ONLY_ENUMERABLE,He=Ne.kPending,Ue=Ne.kRejected,Ge=De.getOwnNonIndexProperties,Ve=De.getPromiseDetails,Ze=De.getProxyDetails,$e=De.previewEntries,Ye=De.getConstructorName,qe=De.getExternalValue,Je=De.Proxy,Ke=r(948),Qe=Ke.customInspectSymbol,Xe=Ke.isError,tr=Ke.join,er=Ke.removeColors,rr=r(799).isStackOverflowError,nr=r(730),or=nr.isAsyncFunction,ar=nr.isGeneratorFunction,ir=nr.isAnyArrayBuffer,cr=nr.isArrayBuffer,ur=nr.isArgumentsObject,lr=nr.isBoxedPrimitive,fr=nr.isDataView,sr=nr.isExternal,yr=nr.isMap,pr=nr.isMapIterator,gr=nr.isModuleNamespaceObject,vr=nr.isNativeError,hr=nr.isPromise,dr=nr.isSet,br=nr.isSetIterator,mr=nr.isWeakMap,Sr=nr.isWeakSet,Pr=nr.isRegExp,xr=nr.isDate,wr=nr.isTypedArray,Ar=nr.isStringObject,Or=nr.isNumberObject,_r=nr.isBooleanObject,jr=nr.isBigIntObject,Er=r(758),kr=r(496).BuiltinModule,Ir=r(755),Rr=Ir.validateObject,Lr=Ir.validateString,Tr=Ir.kValidateObjectAllowArray;function Br(t){return(y=y||r(411)).pathToFileURL(t).href}var zr,Mr,Cr,Dr,Nr,Fr=new $t(x(At(ze),function(t){return null!==Ht(/^[A-Z][a-zA-Z0-9]+$/,t)})),Wr=function(t){return void 0===t&&void 0!==t},Hr=Lt({showHidden:!1,depth:2,colors:!1,customInspect:!0,showProxy:!1,maxArrayLength:100,maxStringLength:1e4,breakLength:80,compact:3,sorted:!1,getters:!1,numericSeparator:!1});try{zr=new Ft("[\\x00-\\x1f\\x27\\x5c\\x7f-\\x9f]|[\\ud800-\\udbff](?![\\udc00-\\udfff])|(?<![\\ud800-\\udbff])[\\udc00-\\udfff]"),Mr=new Ft("[\0-\\x1f\\x27\\x5c\\x7f-\\x9f]|[\\ud800-\\udbff](?![\\udc00-\\udfff])|(?<![\\ud800-\\udbff])[\\udc00-\\udfff]","g"),Cr=new Ft("[\\x00-\\x1f\\x5c\\x7f-\\x9f]|[\\ud800-\\udbff](?![\\udc00-\\udfff])|(?<![\\ud800-\\udbff])[\\udc00-\\udfff]"),Dr=new Ft("[\\x00-\\x1f\\x5c\\x7f-\\x9f]|[\\ud800-\\udbff](?![\\udc00-\\udfff])|(?<![\\ud800-\\udbff])[\\udc00-\\udfff]","g");var Ur=new Ft("(?<=\\n)");Nr=function(t){return Gt(Ur,t)}}catch(t){zr=/[\x00-\x1f\x27\x5c\x7f-\x9f]/,Mr=/[\x00-\x1f\x27\x5c\x7f-\x9f]/g,Cr=/[\x00-\x1f\x5c\x7f-\x9f]/,Dr=/[\x00-\x1f\x5c\x7f-\x9f]/g,Nr=function(t){var e=Gt(/\n/,t),r=E(e),n=j(e,function(t){return t+"\n"});return""!==r&&n.push(r),n}}var Gr,Vr=/^[a-zA-Z_][a-zA-Z_0-9]*$/,Zr=/^(0|[1-9][0-9]*)$/,$r=/^ {4}at (?:[^/\\(]+ \(|)node:(.+):\d+:\d+\)?$/,Yr=/^(\s+[^(]*?)\s*{/,qr=/(\/\/.*?\n)|(\/\*(.|\n)*?\*\/)/g,Jr=["\\x00","\\x01","\\x02","\\x03","\\x04","\\x05","\\x06","\\x07","\\b","\\t","\\n","\\x0B","\\f","\\r","\\x0E","\\x0F","\\x10","\\x11","\\x12","\\x13","\\x14","\\x15","\\x16","\\x17","\\x18","\\x19","\\x1A","\\x1B","\\x1C","\\x1D","\\x1E","\\x1F","","","","","","","","\\'","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","\\\\","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","\\x7F","\\x80","\\x81","\\x82","\\x83","\\x84","\\x85","\\x86","\\x87","\\x88","\\x89","\\x8A","\\x8B","\\x8C","\\x8D","\\x8E","\\x8F","\\x90","\\x91","\\x92","\\x93","\\x94","\\x95","\\x96","\\x97","\\x98","\\x99","\\x9A","\\x9B","\\x9C","\\x9D","\\x9E","\\x9F"],Kr=new Ft("[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/\\#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/\\#&.:=?%@~_]*)*)?(?:\\u0007|\\u001B\\u005C|\\u009C))|(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))","g");function Qr(t,e){var r={budget:{},indentationLvl:0,seen:[],currentDepth:0,stylize:cn,showHidden:Hr.showHidden,depth:Hr.depth,colors:Hr.colors,customInspect:Hr.customInspect,showProxy:Hr.showProxy,maxArrayLength:Hr.maxArrayLength,maxStringLength:Hr.maxStringLength,breakLength:Hr.breakLength,compact:Hr.compact,sorted:Hr.sorted,getters:Hr.getters,numericSeparator:Hr.numericSeparator};if(arguments.length>1)if(arguments.length>2&&(void 0!==arguments[2]&&(r.depth=arguments[2]),arguments.length>3&&void 0!==arguments[3]&&(r.colors=arguments[3])),"boolean"==typeof e)r.showHidden=e;else if(e)for(var n=Et(e),o=0;o<n.length;++o){var a=n[o];It(Hr,a)||"stylize"===a?r[a]=e[a]:void 0===r.userOptions&&(r.userOptions=e)}return r.colors&&(r.stylize=an),null===r.maxArrayLength&&(r.maxArrayLength=1/0),null===r.maxStringLength&&(r.maxStringLength=1/0),hn(r,t,0)}Qr.custom=Qe,xt(Qr,"defaultOptions",{__proto__:null,get:function(){return Hr},set:function(t){return Rr(t,"options"),Pt(Hr,t)}});var Xr=39,tn=49;function en(t,e){xt(Qr.colors,e,{__proto__:null,get:function(){return this[t]},set:function(e){this[t]=e},configurable:!0,enumerable:!1})}function rn(t,e){return-1===e?'"'.concat(t,'"'):-2===e?"`".concat(t,"`"):"'".concat(t,"'")}function nn(t){var e=ee(t);return Jr.length>e?Jr[e]:"\\u".concat(bt(e,16))}function on(t){var e=zr,r=Mr,n=39;if(oe(t,"'")&&(oe(t,'"')?oe(t,"`")||oe(t,"${")||(n=-2):n=-1,39!==n&&(e=Cr,r=Dr)),t.length<5e3&&null===Ht(e,t))return rn(t,n);if(t.length>100)return rn(t=Ut(r,t,nn),n);for(var o="",a=0,i=0;i<t.length;i++){var c=ee(t,i);if(c===n||92===c||c<32||c>126&&c<160)o+=a===i?Jr[c]:"".concat(pe(t,a,i)).concat(Jr[c]),a=i+1;else if(c>=55296&&c<=57343){if(c<=56319&&i+1<t.length){var u=ee(t,i+1);if(u>=56320&&u<=57343){i++;continue}}o+="".concat(pe(t,a,i),"\\u").concat(bt(c,16)),a=i+1}}return a!==t.length&&(o+=pe(t,a)),rn(o,n)}function an(t,e){var r=Qr.styles[e];if(void 0!==r){var n=Qr.colors[r];if(void 0!==n)return"[".concat(n[0],"m").concat(t,"[").concat(n[1],"m")}return t}function cn(t){return t}function un(){return[]}function ln(t,e){try{return t instanceof e}catch(t){return!1}}Qr.colors={__proto__:null,reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],blink:[5,25],inverse:[7,27],hidden:[8,28],strikethrough:[9,29],doubleunderline:[21,24],black:[30,Xr],red:[31,Xr],green:[32,Xr],yellow:[33,Xr],blue:[34,Xr],magenta:[35,Xr],cyan:[36,Xr],white:[37,Xr],bgBlack:[40,tn],bgRed:[41,tn],bgGreen:[42,tn],bgYellow:[43,tn],bgBlue:[44,tn],bgMagenta:[45,tn],bgCyan:[46,tn],bgWhite:[47,tn],framed:[51,54],overlined:[53,55],gray:[90,Xr],redBright:[91,Xr],greenBright:[92,Xr],yellowBright:[93,Xr],blueBright:[94,Xr],magentaBright:[95,Xr],cyanBright:[96,Xr],whiteBright:[97,Xr],bgGray:[100,tn],bgRedBright:[101,tn],bgGreenBright:[102,tn],bgYellowBright:[103,tn],bgBlueBright:[104,tn],bgMagentaBright:[105,tn],bgCyanBright:[106,tn],bgWhiteBright:[107,tn]},en("gray","grey"),en("gray","blackBright"),en("bgGray","bgGrey"),en("bgGray","bgBlackBright"),en("dim","faint"),en("strikethrough","crossedout"),en("strikethrough","strikeThrough"),en("strikethrough","crossedOut"),en("hidden","conceal"),en("inverse","swapColors"),en("inverse","swapcolors"),en("doubleunderline","doubleUnderline"),Qr.styles=Pt({__proto__:null},{special:"cyan",number:"yellow",bigint:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",symbol:"green",date:"magenta",regexp:"red",module:"underline"});var fn=(new Zt).set(P,{name:"Array",constructor:d}).set(m,{name:"ArrayBuffer",constructor:b}).set(J,{name:"Function",constructor:q}).set(nt,{name:"Map",constructor:rt}).set(Jt,{name:"Set",constructor:qt}).set(kt,{name:"Object",constructor:St}).set(je,{name:"TypedArray",constructor:_e}).set(Wt,{name:"RegExp",constructor:Ft}).set(H,{name:"Date",constructor:W}).set(F,{name:"DataView",constructor:N}).set($,{name:"Error",constructor:Z}).set(h,{name:"AggregateError",constructor:v}).set(Ct,{name:"RangeError",constructor:Mt}).set(Oe,{name:"TypeError",constructor:Ae}).set(C,{name:"Boolean",constructor:M}).set(dt,{name:"Number",constructor:yt}).set(te,{name:"String",constructor:Xt}).set(zt,{name:"Promise",constructor:Bt}).set(Le,{name:"WeakMap",constructor:Re}).set(Be,{name:"WeakSet",constructor:Te});function sn(t,e,r,n){for(var o,a=t;t||Wr(t);){var i=fn.get(t);if(void 0!==i){var c=i.name,u=i.constructor;if(X(u,a))return void 0!==n&&o!==t&&yn(e,a,o||a,r,n),c}var f=wt(t,"constructor");if(void 0!==f&&"function"==typeof f.value&&""!==f.value.name&&ln(a,f.value))return void 0===n||o===t&&Fr.has(f.value.name)||yn(e,a,o||a,r,n),Xt(f.value.name);t=_t(t),void 0===o&&(o=t)}if(null===o)return null;var s=Ye(a);if(r>e.depth&&null!==e.depth)return"".concat(s," <Complex prototype>");var y=sn(o,e,r+1,n);return null===y?"".concat(s," <").concat(Qr(o,l(l({},e),{},{customInspect:!1,depth:-1})),">"):"".concat(s," <").concat(y,">")}function yn(t,e,r,n,o){var i,c,u=0;do{if(0!==u||e===r){if(null===(r=_t(r)))return;var l=wt(r,"constructor");if(void 0!==l&&"function"==typeof l.value&&Fr.has(l.value.name))return}0===u?c=new $t:w(i,function(t){return c.add(t)}),i=Nt(r),k(t.seen,e);var f,s=a(i);try{for(s.s();!(f=s.n()).done;){var y=f.value;if(!("constructor"===y||It(e,y)||0!==u&&c.has(y))){var p=wt(r,y);if("function"!=typeof p.value){var g=Wn(t,r,n,y,0,p,e);t.colors?k(o,"[2m".concat(g,"[22m")):k(o,g)}}}}catch(t){s.e(t)}finally{s.f()}E(t.seen)}while(3!==++u)}function pn(t,e,r){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"";if(null===t)return""!==e&&r!==e?"[".concat(r).concat(n,": null prototype] [").concat(e,"] "):"[".concat(r).concat(n,": null prototype] ");var o="".concat(t).concat(n," ");if(""!==e){var a=t.indexOf(e);if(-1===a)o+="[".concat(e,"] ");else{var i=a+e.length;i!==t.length&&t[i]===t[i].toLowerCase()&&(o+="[".concat(e,"] "))}}return o}function gn(t,e){var r,n=Ot(t);if(e)r=At(t),0!==n.length&&I(r,n);else{try{r=Et(t)}catch(e){Er(vr(e)&&"ReferenceError"===e.name&&gr(t)),r=At(t)}0!==n.length&&I(r,x(n,function(e){return Rt(t,e)}))}return r}function vn(t,e,r){var n="";return null===e&&(n=Ye(t))===r&&(n="Object"),pn(e,r,n)}function hn(t,e,i,c){if("object"!==o(e)&&"function"!=typeof e&&!Wr(e))return _n(t.stylize,e,t);if(null===e)return t.stylize("null","null");var u=e,f=Ze(e,!!t.showProxy);if(void 0!==f){if(null===f||null===f[0])return t.stylize("<Revoked Proxy>","special");if(t.showProxy)return function(t,e,r){if(r>t.depth&&null!==t.depth)return t.stylize("Proxy [Array]","special");r+=1,t.indentationLvl+=2;var n=[hn(t,e[0],r),hn(t,e[1],r)];return t.indentationLvl-=2,Un(t,n,"",["Proxy [","]"],2,r)}(t,f,i);e=f}if(t.customInspect){var s,v=e[Qe];if("function"==typeof v&&v!==Qr&&(null===(s=wt(e,"constructor"))||void 0===s||null===(s=s.value)||void 0===s?void 0:s.prototype)!==e){var h=null===t.depth?null:t.depth-i,d=void 0!==f||!X(St,u),b=Q(v,u,h,function(t,e){var r=l({stylize:t.stylize,showHidden:t.showHidden,depth:t.depth,colors:t.colors,customInspect:t.customInspect,showProxy:t.showProxy,maxArrayLength:t.maxArrayLength,maxStringLength:t.maxStringLength,breakLength:t.breakLength,compact:t.compact,sorted:t.sorted,getters:t.getters,numericSeparator:t.numericSeparator},t.userOptions);if(e){Tt(r,null);var n,i=a(Et(r));try{for(i.s();!(n=i.n()).done;){var c=n.value;"object"!==o(r[c])&&"function"!=typeof r[c]||null===r[c]||delete r[c]}}catch(t){i.e(t)}finally{i.f()}r.stylize=Tt(function(e,r){var n;try{n="".concat(t.stylize(e,r))}catch(t){}return"string"!=typeof n?e:n},null)}return r}(t,d),Qr);if(b!==u)return"string"!=typeof b?hn(t,b,i):ye(b,"\n","\n".concat(fe(" ",t.indentationLvl)))}}if(t.seen.includes(e)){var m=1;return void 0===t.circular?(t.circular=new Zt,t.circular.set(e,m)):void 0===(m=t.circular.get(e))&&(m=t.circular.size+1,t.circular.set(e,m)),t.stylize("[Circular *".concat(m,"]"),"special")}return function(t,e,o,i){var c,u;t.showHidden&&(o<=t.depth||null===t.depth)&&(u=[]);var l=sn(e,t,o,u);void 0!==u&&0===u.length&&(u=void 0);var f="";try{f=e[we]}catch(t){}("string"!=typeof f||""!==f&&(t.showHidden?It:Rt)(e,we))&&(f="");var s,v,h="",d=un,b=!0,m=0,P=t.showHidden?Fe:We,x=0;if(me in e||null===l)if(b=!1,S(e)){var w="Array"!==l||""!==f?pn(l,f,"Array","(".concat(e.length,")")):"";if(c=Ge(e,P),s=["".concat(w,"["),"]"],0===e.length&&0===c.length&&void 0===u)return"".concat(s[0],"]");x=2,d=In}else if(dr(e)){var j=Kt(e),E=pn(l,f,"Set","(".concat(j,")"));if(c=gn(e,t.showHidden),d=K(Ln,null,null!==l?e:Qt(e)),0===j&&0===c.length&&void 0===u)return"".concat(E,"{}");s=["".concat(E,"{"),"}"]}else if(yr(e)){var M=at(e),C=pn(l,f,"Map","(".concat(M,")"));if(c=gn(e,t.showHidden),d=K(Tn,null,null!==l?e:ot(e)),0===M&&0===c.length&&void 0===u)return"".concat(C,"{}");s=["".concat(C,"{"),"}"]}else if(wr(e)){c=Ge(e,P);var N=e,F="";null===l&&(F=ke(e),N=new g[F](e));var W=Ee(e),H=pn(l,f,F,"(".concat(W,")"));if(s=["".concat(H,"["),"]"],0===e.length&&0===c.length&&!t.showHidden)return"".concat(s[0],"]");d=K(Rn,null,N,W),x=2}else pr(e)?(c=gn(e,t.showHidden),s=dn("Map",f),d=K(Nn,null,s)):br(e)?(c=gn(e,t.showHidden),s=dn("Set",f),d=K(Nn,null,s)):b=!0;if(b)if(c=gn(e,t.showHidden),s=["{","}"],"function"==typeof e){if(h=function(t,e,r,n){var o=tt(e);if(ve(o,"class")&&"}"===o[o.length-1]){var a=pe(o,5,-1),i=ae(a,"{");if(-1!==i&&(!oe(pe(a,0,i),"(")||null!==Ht(Yr,Ut(qr,a))))return function(t,e,r){var n=It(t,"name")&&t.name||"(anonymous)",o="class ".concat(n);if("Function"!==e&&null!==e&&(o+=" [".concat(e,"]")),""!==r&&e!==r&&(o+=" [".concat(r,"]")),null!==e){var a=_t(t).name;a&&(o+=" extends ".concat(a))}else o+=" extends [null prototype]";return"[".concat(o,"]")}(e,r,n)}var c="Function";ar(e)&&(c="Generator".concat(c)),or(e)&&(c="Async".concat(c));var u="[".concat(c);return null===r&&(u+=" (null prototype)"),""===e.name?u+=" (anonymous)":u+=": ".concat("string"==typeof e.name?e.name:hn(t,e.name)),u+="]",r!==c&&null!==r&&(u+=" ".concat(r)),""!==n&&r!==n&&(u+=" [".concat(n,"]")),u}(t,e,l,f),0===c.length&&void 0===u)return t.stylize(h,"special")}else if("Object"===l){if(ur(e)?s[0]="[Arguments] {":""!==f&&(s[0]="".concat(pn(l,f,"Object"),"{")),0===c.length&&void 0===u)return"".concat(s[0],"}")}else if(Pr(e)){h=Vt(null!==l?e:new Ft(e));var Z=pn(l,f,"RegExp");if("RegExp "!==Z&&(h="".concat(Z).concat(h)),0===c.length&&void 0===u||o>t.depth&&null!==t.depth)return t.stylize(h,"regexp")}else if(xr(e)){h=gt(U(e))?V(e):G(e);var $=pn(l,f,"Date");if("Date "!==$&&(h="".concat($).concat(h)),0===c.length&&void 0===u)return t.stylize(h,"date")}else if(Xe(e)){if(h=function(t,e,r,o,i){var c=null!=t.name?t.name:"Error",u=mn(o,t);(function(t,e,r,n){if(!t.showHidden&&0!==e.length)for(var o=0,a=["name","message","stack"];o<a.length;o++){var i=a[o],c=O(e,i);-1===c||"string"==typeof r[i]&&!oe(n,r[i])||T(e,c,1)}})(o,i,t,u),!("cause"in t)||0!==i.length&&A(i,"cause")||k(i,"cause"),!S(t.errors)||0!==i.length&&A(i,"errors")||k(i,"errors"),u=function(t,e,r,n){var o=r.length;if("string"!=typeof r&&(t=se(t,"".concat(r),"".concat(r," [").concat(pe(pn(e,n,"Error"),0,-1),"]"))),null===e||ne(r,"Error")&&ve(t,r)&&(t.length===o||":"===t[o]||"\n"===t[o])){var a="Error";if(null===e){var i=Ht(/^([A-Z][a-z_ A-Z0-9[\]()-]+)(?::|\n {4}at)/,t)||Ht(/^([a-z_A-Z0-9-]*Error)$/,t);o=(a=(null==i?void 0:i[1])||"").length,a=a||"Error"}var c=pe(pn(e,n,a),0,-1);r!==c&&(t=oe(c,r)?0===o?"".concat(c,": ").concat(t):"".concat(c).concat(pe(t,o)):"".concat(c," [").concat(r,"]").concat(pe(t,o)))}return t}(u,e,c,r);var l=t.message&&ae(u,t.message)||-1;-1!==l&&(l+=t.message.length);var f=ae(u,"\n at",l);if(-1===f)u="[".concat(u,"]");else{var s=pe(u,0,f),y=function(t,e,r){var o,a=ge(r,"\n");try{o=e.cause}catch(t){}if(null!=o&&Xe(o)){var i=mn(t,o),c=ae(i,"\n at");if(-1!==c){var u=bn(a,ge(pe(i,c+1),"\n")),l=u[0],f=u[1];if(l>0){var s=l-2,y=" ... ".concat(s," lines matching cause stack trace ...");a.splice(f+1,s,t.stylize(y,"undefined"))}}}if(a.length>10)for(var p=function(t){for(var e=[],r=new Zt,o=0;o<t.length;o++){var a=r.get(t[o]);void 0===a?r.set(t[o],[o]):a[a.length]=o}if(t.length-r.size<=3)return e;for(var i=0;i<t.length-3;i++){var c=r.get(t[i]);if(1!==c.length&&c[c.length-1]!==i){var u=c.indexOf(i)+1;if(u!==c.length){var l=c[c.length-1]-i;if(!(l<3)){var f=void 0;if(u+1<c.length){for(var s=0,y=u;y<c.length;y++){for(var p=c[y]-i;0!==p;){var g=s%p;0!==s&&(f=f||new $t).add(s),s=p,p=g}if(1===s)break}l=s,f&&(f.delete(l),f=n(f))}for(var v=l,h=0,d=0,b=i+l;;b+=l){for(var m=0,S=0;S<l&&t[i+S]===t[b+S];S++)m++;if(m===l)d++;else{var P;if(null===(P=f)||void 0===P||!P.length)break;0!==d&&v*h<l*d&&(v=l,h=d),l=f.pop(),b=i,d=0}}0!==h&&v*h>=l*d&&(l=v,d=h),d*l>=3&&(e.push(i+l,l,d),i+=l*(d+1)-1)}}}}return e}(a),g=p.length-3;g>=0;g-=3){var v=p[g],h=p[g+1],d=p[g+2],b=" ... collapsed ".concat(h*d," duplicate lines ")+"matching above "+(d>1?"".concat(h," lines ").concat(d," times..."):"lines ...");a.splice(v,h*d,t.stylize(b,"undefined"))}return a}(o,t,pe(u,f+1));if(o.colors){var p,g,v=function(){var t;try{t=process.cwd()}catch(t){return}return t}(),h=a(y);try{for(h.s();!(g=h.n()).done;){var d=g.value,b=Ht($r,d);if(null!==b&&kr.exists(b[1]))s+="\n".concat(o.stylize(d,"undefined"));else{if(s+="\n",d=Sn(o,d),void 0!==v){var m=Pn(o,d,v);m===d&&(m=Pn(o,d,p=p||Br(v))),d=m}s+=d}}}catch(t){h.e(t)}finally{h.f()}}else s+="\n".concat(_(y,"\n"));u=s}if(0!==o.indentationLvl){var P=fe(" ",o.indentationLvl);u=ye(u,"\n","\n".concat(P))}return u}(e,l,f,t,c),0===c.length&&void 0===u)return h}else if(ir(e)){var Y=pn(l,f,cr(e)?"ArrayBuffer":"SharedArrayBuffer");if(void 0===i)d=kn;else if(0===c.length&&void 0===u)return Y+"{ byteLength: ".concat(An(t.stylize,e.byteLength,!1)," }");s[0]="".concat(Y,"{"),B(c,"byteLength")}else if(fr(e))s[0]="".concat(pn(l,f,"DataView"),"{"),B(c,"byteLength","byteOffset","buffer");else if(hr(e))s[0]="".concat(pn(l,f,"Promise"),"{"),d=Fn;else if(Sr(e))s[0]="".concat(pn(l,f,"WeakSet"),"{"),d=t.showHidden?Cn:Mn;else if(mr(e))s[0]="".concat(pn(l,f,"WeakMap"),"{"),d=t.showHidden?Dn:Mn;else if(gr(e))s[0]="".concat(pn(l,f,"Module"),"{"),d=jn.bind(null,c);else if(lr(e)){if(h=function(t,e,r,n,o){var a,i;Or(t)?(a=mt,i="Number"):Ar(t)?(a=be,i="String",r.splice(0,t.length)):_r(t)?(a=D,i="Boolean"):jr(t)?(a=z,i="BigInt"):(a=Pe,i="Symbol");var c="[".concat(i);return i!==n&&(c+=null===n?" (null prototype)":" (".concat(n,")")),c+=": ".concat(_n(cn,a(t),e),"]"),""!==o&&o!==n&&(c+=" [".concat(o,"]")),0!==r.length||e.stylize===cn?c:e.stylize(c,he(i))}(e,t,c,l,f),0===c.length&&void 0===u)return h}else if(!function(t){return y=y||r(411),"string"==typeof t.href&&t instanceof y.URL}(e)||o>t.depth&&null!==t.depth){if(0===c.length&&void 0===u){if(sr(e)){var q=qe(e).toString(16);return t.stylize("[External: ".concat(q,"]"),"special")}return"".concat(vn(e,l,f),"{}")}s[0]="".concat(vn(e,l,f),"{")}else if(c=function(t){return p=p||Ot(new y.URL("http://user:pass@localhost:8080/?foo=bar#baz")),t.filter(function(t){return-1===p[t]})}(c),h=e.href,0===c.length&&void 0===u)return h;if(o>t.depth&&null!==t.depth){var J=pe(vn(e,l,f),0,-1);return null!==l&&(J="[".concat(J,"]")),t.stylize(J,"special")}o+=1,t.seen.push(e),t.currentDepth=o;var Q=t.indentationLvl;try{for(v=d(t,e,o),m=0;m<c.length;m++)k(v,Wn(t,e,o,c[m],x));void 0!==u&&I(v,u)}catch(r){if(!rr(r))throw r;return function(t,e,r,n){return t.seen.pop(),t.indentationLvl=n,t.stylize("[".concat(r,": Inspection interrupted ")+"prematurely. Maximum call stack size exceeded.]","special")}(t,0,pe(vn(e,l,f),0,-1),Q)}if(void 0!==t.circular){var X=t.circular.get(e);if(void 0!==X){var et=t.stylize("<ref *".concat(X,">"),"special");!0!==t.compact?h=""===h?et:"".concat(et," ").concat(h):s[0]="".concat(et," ").concat(s[0])}}if(t.seen.pop(),t.sorted){var rt=!0===t.sorted?void 0:t.sorted;if(0===x)L(v,rt);else if(c.length>1){var nt=L(R(v,v.length-c.length),rt);B(nt,v,v.length-c.length,c.length),Dt(T,null,nt)}}var it=Un(t,v,h,s,x,o,e),ct=(t.budget[t.indentationLvl]||0)+it.length;return t.budget[t.indentationLvl]=ct,ct>Math.pow(2,27)&&(t.depth=-1),it}(t,e,i,c)}function dn(t,e){return e!=="".concat(t," Iterator")&&(""!==e&&(e+="] ["),e+="".concat(t," Iterator")),["[".concat(e,"] {"),"}"]}function bn(t,e){for(var r=0;r<t.length-3;r++){var n=O(e,t[r]);if(-1!==n){var o=e.length-n;if(o>3){for(var a=1,i=ut(t.length-r,o);i>a&&t[r+a]===e[n+a];)a++;if(a>3)return[a,r]}}}return[0,0]}function mn(t,e){if(e.stack){if("string"==typeof e.stack)return e.stack;t.seen.push(e),t.indentationLvl+=4;var r=hn(t,e.stack);return t.indentationLvl-=4,t.seen.pop(),"".concat(Y(e),"\n ").concat(r)}return Y(e)}function Sn(t,e){for(var r="",n=0,o=0;;){var a=ae(e,"node_modules",o);if(-1===a)break;var i=e[a-1],c=e[a+12];if("/"!==c&&"\\"!==c||"/"!==i&&"\\"!==i)o=a+1;else{var u=a+13;r+=pe(e,n,u);var l=ae(e,i,u);"@"===e[u]&&(l=ae(e,i,l+1));var f=pe(e,u,l);r+=t.stylize(f,"module"),n=l,o=l}}return 0!==n&&(e=r+pe(e,n)),e}function Pn(t,e,r){var n=ae(e,r),o="",a=r.length;if(-1!==n){"file://"===pe(e,n-7,n)&&(a+=7,n-=7);var i="("===e[n-1]?n-1:n,c=i!==n&&ne(e,")")?-1:e.length,u=n+a+1,l=pe(e,i,u);o+=pe(e,0,i),o+=t.stylize(l,"undefined"),o+=pe(e,u,c),-1===c&&(o+=t.stylize(")","undefined"))}else o+=e;return o}function xn(t){var e="",r=t.length;Er(0!==r);for(var n="-"===t[0]?1:0;r>=n+4;r-=3)e="_".concat(pe(t,r-3,r)).concat(e);return r===t.length?t:"".concat(pe(t,0,r)).concat(e)}var wn=function(t){return"... ".concat(t," more item").concat(t>1?"s":"")};function An(t,e,r){if(!r)return jt(e,-0)?t("-0","number"):t("".concat(e),"number");var n=Xt(e);if(st(e)===e)return!pt(e)||oe(n,"e")?t(n,"number"):t(xn(n),"number");if(gt(e))return t(n,"number");var o=ae(n,"."),a=pe(n,0,o),i=pe(n,o+1);return t("".concat(xn(a),".").concat(function(t){for(var e="",r=0;r<t.length-3;r+=3)e+="".concat(pe(t,r,r+3),"_");return 0===r?t:"".concat(e).concat(pe(t,r))}(i)),"number")}function On(t,e,r){var n=Xt(e);return t("".concat(r?xn(n):n,"n"),"bigint")}function _n(t,e,r){if("string"==typeof e){var n="";if(e.length>r.maxStringLength){var o=e.length-r.maxStringLength;e=pe(e,0,r.maxStringLength),n="... ".concat(o," more character").concat(o>1?"s":"")}return!0!==r.compact&&e.length>16&&e.length>r.breakLength-r.indentationLvl-4?_(j(Nr(e),function(e){return t(on(e),"string")})," +\n".concat(fe(" ",r.indentationLvl+2)))+n:t(on(e),"string")+n}return"number"==typeof e?An(t,e,r.numericSeparator):"bigint"==typeof e?On(t,e,r.numericSeparator):"boolean"==typeof e?t("".concat(e),"boolean"):void 0===e?t("undefined","undefined"):t(Se(e),"symbol")}function jn(t,e,r,n){for(var o=new d(t.length),a=0;a<t.length;a++)try{o[a]=Wn(e,r,n,t[a],0)}catch(r){Er(vr(r)&&"ReferenceError"===r.name);var i=f({},t[a],"");o[a]=Wn(e,i,n,t[a],0);var c=ie(o[a]," ");o[a]=pe(o[a],0,c+1)+e.stylize("<uninitialized>","special")}return t.length=0,o}function En(t,e,r,n,o,a){for(var i=Et(e),c=a;a<i.length&&o.length<n;a++){var u=i[a],l=+u;if(l>Math.pow(2,32)-2)break;if("".concat(c)!==u){if(null===Ht(Zr,u))break;var f=l-c,s=f>1?"s":"",y="<".concat(f," empty item").concat(s,">");if(k(o,t.stylize(y,"undefined")),c=l,o.length===n)break}k(o,Wn(t,e,r,u,1)),c++}var p=e.length-c;if(o.length!==n){if(p>0){var g=p>1?"s":"",v="<".concat(p," empty item").concat(g,">");k(o,t.stylize(v,"undefined"))}}else p>0&&k(o,wn(p));return o}function kn(t,e){var n;try{n=new Ie(e)}catch(e){return[t.stylize("(detached)","special")]}void 0===s&&(s=Ce(r(526).h.prototype.hexSlice));var o=de(Ut(/(.{2})/g,s(n,0,ut(t.maxArrayLength,n.length)),"$1 ")),a=n.length-t.maxArrayLength;return a>0&&(o+=" ... ".concat(a," more byte").concat(a>1?"s":"")),["".concat(t.stylize("[Uint8Contents]","special"),": <").concat(o,">")]}function In(t,e,r){for(var n=e.length,o=ut(ct(0,t.maxArrayLength),n),a=n-o,i=[],c=0;c<o;c++){var u=wt(e,c);if(void 0===u)return En(t,e,r,o,i,c);k(i,Wn(t,e,r,c,1,u))}return a>0&&k(i,wn(a)),i}function Rn(t,e,r,n,o){for(var a=ut(ct(0,r.maxArrayLength),e),i=t.length-a,c=new d(a),u=t.length>0&&"number"==typeof t[0]?An:On,l=0;l<a;++l)c[l]=u(r.stylize,t[l],r.numericSeparator);if(i>0&&(c[a]=wn(i)),r.showHidden){r.indentationLvl+=2;for(var f=0,s=["BYTES_PER_ELEMENT","length","byteLength","byteOffset","buffer"];f<s.length;f++){var y=s[f],p=hn(r,t[y],o,!0);k(c,"[".concat(y,"]: ").concat(p))}r.indentationLvl-=2}return c}function Ln(t,e,r,n){var o=t.size,i=ut(ct(0,e.maxArrayLength),o),c=o-i,u=[];e.indentationLvl+=2;var l,f=0,s=a(t);try{for(s.s();!(l=s.n()).done;){var y=l.value;if(f>=i)break;k(u,hn(e,y,n)),f++}}catch(t){s.e(t)}finally{s.f()}return c>0&&k(u,wn(c)),e.indentationLvl-=2,u}function Tn(t,e,r,n){var o=t.size,i=ut(ct(0,e.maxArrayLength),o),c=o-i,u=[];e.indentationLvl+=2;var l,f=0,s=a(t);try{for(s.s();!(l=s.n()).done;){var y=l.value,p=y[0],g=y[1];if(f>=i)break;k(u,"".concat(hn(e,p,n)," => ").concat(hn(e,g,n))),f++}}catch(t){s.e(t)}finally{s.f()}return c>0&&k(u,wn(c)),e.indentationLvl-=2,u}function Bn(t,e,r,n){var o=ct(t.maxArrayLength,0),a=ut(o,r.length),i=new d(a);t.indentationLvl+=2;for(var c=0;c<a;c++)i[c]=hn(t,r[c],e);t.indentationLvl-=2,0!==n||t.sorted||L(i);var u=r.length-a;return u>0&&k(i,wn(u)),i}function zn(t,e,r,n){var o=ct(t.maxArrayLength,0),a=r.length/2,i=a-o,c=ut(o,a),u=new d(c),l=0;if(t.indentationLvl+=2,0===n){for(;l<c;l++){var f=2*l;u[l]="".concat(hn(t,r[f],e)," => ").concat(hn(t,r[f+1],e))}t.sorted||L(u)}else for(;l<c;l++){var s=2*l,y=[hn(t,r[s],e),hn(t,r[s+1],e)];u[l]=Un(t,y,"",["[","]"],2,e)}return t.indentationLvl-=2,i>0&&k(u,wn(i)),u}function Mn(t){return[t.stylize("<items unknown>","special")]}function Cn(t,e,r){return Bn(t,r,$e(e),0)}function Dn(t,e,r){return zn(t,r,$e(e),0)}function Nn(t,e,r,n){var o=$e(r,!0),a=o[0];return o[1]?(t[0]=Ut(/ Iterator] {$/,t[0]," Entries] {"),zn(e,n,a,2)):Bn(e,n,a,1)}function Fn(t,e,r){var n,o=Ve(e),a=o[0],i=o[1];if(a===He)n=[t.stylize("<pending>","special")];else{t.indentationLvl+=2;var c=hn(t,i,r);t.indentationLvl-=2,n=[a===Ue?"".concat(t.stylize("<rejected>","special")," ").concat(c):c]}return n}function Wn(t,e,r,n,a,i){var c,u,l=arguments.length>6&&void 0!==arguments[6]?arguments[6]:e,f=" ";if(void 0!==(i=i||wt(e,n)||{value:e[n],enumerable:!0}).value){var s=!0!==t.compact||0!==a?2:3;t.indentationLvl+=s,u=hn(t,i.value,r),3===s&&t.breakLength<Gr(u,t.colors)&&(f="\n".concat(fe(" ",t.indentationLvl))),t.indentationLvl-=s}else if(void 0!==i.get){var y=void 0!==i.set?"Getter/Setter":"Getter",p=t.stylize,g="special";if(t.getters&&(!0===t.getters||"get"===t.getters&&void 0===i.set||"set"===t.getters&&void 0!==i.set))try{var v=Q(i.get,l);if(t.indentationLvl+=2,null===v)u="".concat(p("[".concat(y,":"),g)," ").concat(p("null","null")).concat(p("]",g));else if("object"===o(v))u="".concat(p("[".concat(y,"]"),g)," ").concat(hn(t,v,r));else{var h=_n(p,v,t);u="".concat(p("[".concat(y,":"),g)," ").concat(h).concat(p("]",g))}t.indentationLvl-=2}catch(t){var d="<Inspection threw (".concat(t.message,")>");u="".concat(p("[".concat(y,":"),g)," ").concat(d).concat(p("]",g))}else u=t.stylize("[".concat(y,"]"),g)}else u=void 0!==i.set?t.stylize("[Setter]","special"):t.stylize("undefined","undefined");if(1===a)return u;if("symbol"===o(n)){var b=Ut(Mr,Se(n),nn);c=t.stylize(b,"symbol")}else c=null!==Ht(Vr,n)?"__proto__"===n?"['__proto__']":t.stylize(n,"name"):t.stylize(on(n),"string");return!1===i.enumerable&&(c="[".concat(c,"]")),"".concat(c,":").concat(f).concat(u)}function Hn(t,e,r,n){var o=e.length+r;if(o+e.length>t.breakLength)return!1;for(var a=0;a<e.length;a++)if(t.colors?o+=er(e[a]).length:o+=e[a].length,o>t.breakLength)return!1;return""===n||!oe(n,"\n")}function Un(t,e,r,n,o,a,i){if(!0!==t.compact){if("number"==typeof t.compact&&t.compact>=1){var c=e.length;if(2===o&&c>6&&(e=function(t,e,r){var n=0,o=0,a=0,i=e.length;t.maxArrayLength<e.length&&i--;for(var c=new d(i);a<i;a++){var u=Gr(e[a],t.colors);c[a]=u,n+=u+2,o<u&&(o=u)}var l=o+2;if(3*l+t.indentationLvl<t.breakLength&&(n/l>5||o<=6)){var f=ft(l-n/e.length),s=ct(l-3-f,1),y=ut(lt(ft(2.5*s*i)/s),it((t.breakLength-t.indentationLvl)/l),4*t.compact,15);if(y<=1)return e;for(var p=[],g=[],v=0;v<y;v++){for(var h=0,b=v;b<e.length;b+=y)c[b]>h&&(h=c[b]);h+=2,g[v]=h}var m=le;if(void 0!==r)for(var S=0;S<e.length;S++)if("number"!=typeof r[S]&&"bigint"!=typeof r[S]){m=ue;break}for(var P=0;P<i;P+=y){for(var x=ut(P+y,i),w="",A=P;A<x-1;A++){var O=g[A-P]+e[A].length-c[A];w+=m("".concat(e[A],", "),O," ")}if(m===le){var _=g[A-P]+e[A].length-c[A]-2;w+=le(e[A],_," ")}else w+=e[A];k(p,w)}t.maxArrayLength<e.length&&k(p,e[i]),e=p}return e}(t,e,i)),t.currentDepth-a<t.compact&&c===e.length&&Hn(t,e,e.length+t.indentationLvl+n[0].length+r.length+10,r)){var u=tr(e,", ");if(!oe(u,"\n"))return"".concat(r?"".concat(r," "):"").concat(n[0]," ").concat(u)+" ".concat(n[1])}}var l="\n".concat(fe(" ",t.indentationLvl));return"".concat(r?"".concat(r," "):"").concat(n[0]).concat(l," ")+"".concat(tr(e,",".concat(l," "))).concat(l).concat(n[1])}if(Hn(t,e,0,r))return"".concat(n[0]).concat(r?" ".concat(r):""," ").concat(tr(e,", ")," ")+n[1];var f=fe(" ",t.indentationLvl),s=""===r&&1===n[0].length?" ":"".concat(r?" ".concat(r):"","\n").concat(f," ");return"".concat(n[0]).concat(s).concat(tr(e,",\n".concat(f," "))," ").concat(n[1])}function Gn(t){var e=Ze(t,!1);if(void 0!==e){if(null===e)return!0;t=e}var r=It,n=It;if("function"!=typeof t.toString){if("function"!=typeof t[xe])return!0;if(It(t,xe))return!1;r=Vn}else{if(It(t,"toString"))return!1;if("function"!=typeof t[xe])n=Vn;else if(It(t,xe))return!1}var o=t;do{o=_t(o)}while(!r(o,"toString")&&!n(o,xe));var a=wt(o,"constructor");return void 0!==a&&"function"==typeof a.value&&Fr.has(a.value.name)}function Vn(){return!1}var Zn,$n=function(t){return ge(t.message,"\n",1)[0]};function Yn(t){try{return et(t)}catch(t){if(!Zn)try{var e={};e.a=e,et(e)}catch(t){Zn=$n(t)}if("TypeError"===t.name&&$n(t)===Zn)return"[Circular]";throw t}}function qn(t,e){var r;return An(cn,t,null!==(r=null==e?void 0:e.numericSeparator)&&void 0!==r?r:Hr.numericSeparator)}function Jn(t,e){var r;return On(cn,t,null!==(r=null==e?void 0:e.numericSeparator)&&void 0!==r?r:Hr.numericSeparator)}function Kn(t,e){var r=e[0],n=0,a="",i="";if("string"==typeof r){if(1===e.length)return r;for(var c,u=0,f=0;f<r.length-1;f++)if(37===ee(r,f)){var s=ee(r,++f);if(n+1!==e.length){switch(s){case 115:var y=e[++n];c="number"==typeof y?qn(y,t):"bigint"==typeof y?Jn(y,t):"object"===o(y)&&null!==y&&Gn(y)?Qr(y,l(l({},t),{},{compact:3,colors:!1,depth:0})):Xt(y);break;case 106:c=Yn(e[++n]);break;case 100:var p=e[++n];c="bigint"==typeof p?Jn(p,t):"symbol"===o(p)?"NaN":qn(yt(p),t);break;case 79:c=Qr(e[++n],t);break;case 111:c=Qr(e[++n],l(l({},t),{},{showHidden:!0,showProxy:!0,depth:4}));break;case 105:var g=e[++n];c="bigint"==typeof g?Jn(g,t):"symbol"===o(g)?"NaN":qn(ht(g),t);break;case 102:var v=e[++n];c="symbol"===o(v)?"NaN":qn(vt(v),t);break;case 99:n+=1,c="";break;case 37:a+=pe(r,u,f),u=f+1;continue;default:continue}u!==f-1&&(a+=pe(r,u,f-1)),a+=c,u=f+1}else 37===s&&(a+=pe(r,u,f),u=f+1)}0!==u&&(n++,i=" ",u<r.length&&(a+=pe(r,u)))}for(;n<e.length;){var h=e[n];a+=i,a+="string"!=typeof h?Qr(h,t):h,i=" ",n++}return a}function Qn(t){return t<=31||t>=127&&t<=159||t>=768&&t<=879||t>=8203&&t<=8207||t>=8400&&t<=8447||t>=65024&&t<=65039||t>=65056&&t<=65071||t>=917760&&t<=917999}if(Me("config").hasIntl)Er(!1);else{Gr=function(t){var e=0;(!(arguments.length>1&&void 0!==arguments[1])||arguments[1])&&(t=to(t)),t=ce(t,"NFC");var r,n=a(new Yt(t));try{for(n.s();!(r=n.n()).done;){var o=r.value,i=re(o,0);Xn(i)?e+=2:Qn(i)||e++}}catch(t){n.e(t)}finally{n.f()}return e};var Xn=function(t){return t>=4352&&(t<=4447||9001===t||9002===t||t>=11904&&t<=12871&&12351!==t||t>=12880&&t<=19903||t>=19968&&t<=42182||t>=43360&&t<=43388||t>=44032&&t<=55203||t>=63744&&t<=64255||t>=65040&&t<=65049||t>=65072&&t<=65131||t>=65281&&t<=65376||t>=65504&&t<=65510||t>=110592&&t<=110593||t>=127488&&t<=127569||t>=127744&&t<=128591||t>=131072&&t<=262141)}}function to(t){return Lr(t,"str"),Ut(Kr,t,"")}var eo={34:""",38:"&",39:"'",60:"<",62:">",160:" "};function ro(t){return t.replace(/[\u0000-\u002F\u003A-\u0040\u005B-\u0060\u007B-\u00FF]/g,function(t){var e=Xt(t.charCodeAt(0));return eo[e]||"&#"+e+";"})}t.exports={identicalSequenceRange:bn,inspect:Qr,inspectDefaultOptions:Hr,format:function(){for(var t=arguments.length,e=new Array(t),r=0;r<t;r++)e[r]=arguments[r];return Kn(void 0,e)},formatWithOptions:function(t){Rr(t,"inspectOptions",Tr);for(var e=arguments.length,r=new Array(e>1?e-1:0),n=1;n<e;n++)r[n-1]=arguments[n];return Kn(t,r)},getStringWidth:Gr,stripVTControlCharacters:to,isZeroWidthCodePoint:Qn,stylizeWithColor:an,stylizeWithHTML:function(t,e){var r=Qr.styles[e];return void 0!==r?'<span style="color:'.concat(r,';">').concat(ro(t),"</span>"):ro(t)},Proxy:Je}},411:(t,e,r)=>{var n=r(798),o=n.StringPrototypeCharCodeAt,a=n.StringPrototypeIncludes,i=n.StringPrototypeReplace,c=r(999),u=r(315).CHAR_FORWARD_SLASH,l=r(503),f=/%/g,s=/\\/g,y=/\n/g,p=/\r/g,g=/\t/g;t.exports={pathToFileURL:function(t){var e=new c("file://"),r=l.resolve(t);return o(t,t.length-1)===u&&r[r.length-1]!==l.sep&&(r+="/"),e.pathname=function(t){return a(t,"%")&&(t=i(t,f,"%25")),a(t,"\\")&&(t=i(t,s,"%5C")),a(t,"\n")&&(t=i(t,y,"%0A")),a(t,"\r")&&(t=i(t,p,"%0D")),a(t,"\t")&&(t=i(t,g,"%09")),t}(r),e},URL:c}},496:t=>{var e=["_http_agent","_http_client","_http_common","_http_incoming","_http_outgoing","_http_server","_stream_duplex","_stream_passthrough","_stream_readable","_stream_transform","_stream_wrap","_stream_writable","_tls_common","_tls_wrap","assert","assert/strict","async_hooks","buffer","child_process","cluster","console","constants","crypto","dgram","diagnostics_channel","dns","dns/promises","domain","events","fs","fs/promises","http","http2","https","inspector","module","Module","net","os","path","path/posix","path/win32","perf_hooks","process","punycode","querystring","readline","readline/promises","repl","stream","stream/consumers","stream/promises","stream/web","string_decoder","sys","timers","timers/promises","tls","trace_events","tty","url","util","util/types","v8","vm","wasi","worker_threads","zlib"];t.exports.BuiltinModule={exists:function(t){return"internal/modules/cjs/foo"!==t&&(t.startsWith("internal/")||-1!==e.indexOf(t))}}},503:(t,e,r)=>{var n=r(798),o=n.StringPrototypeCharCodeAt,a=n.StringPrototypeLastIndexOf,i=n.StringPrototypeSlice,c=r(315),u=c.CHAR_DOT,l=c.CHAR_FORWARD_SLASH,f=r(755).validateString;function s(t){return t===l}function y(t,e,r,n){for(var c="",f=0,s=-1,y=0,p=0,g=0;g<=t.length;++g){if(g<t.length)p=o(t,g);else{if(n(p))break;p=l}if(n(p)){if(s===g-1||1===y);else if(2===y){if(c.length<2||2!==f||o(c,c.length-1)!==u||o(c,c.length-2)!==u){if(c.length>2){var v=a(c,r);-1===v?(c="",f=0):f=(c=i(c,0,v)).length-1-a(c,r),s=g,y=0;continue}if(0!==c.length){c="",f=0,s=g,y=0;continue}}e&&(c+=c.length>0?"".concat(r,".."):"..",f=2)}else c.length>0?c+="".concat(r).concat(i(t,s+1,g)):c=i(t,s+1,g),f=g-s-1;s=g,y=0}else p===u&&-1!==y?++y:y=-1}return c}t.exports={isPosixPathSeparator:s,normalizeString:y,resolve:function(){if((0===arguments.length||1===arguments.length&&(""===(arguments.length<=0?void 0:arguments[0])||"."===(arguments.length<=0?void 0:arguments[0])))&&o("/",0)===l)return"/";for(var t="",e=!1,r=arguments.length-1;r>=0&&!e;r--){var n=r<0||arguments.length<=r?void 0:arguments[r];f(n,"paths[".concat(r,"]")),0!==n.length&&(t="".concat(n,"/").concat(t),e=o(n,0)===l)}return e||(t="".concat("/","/").concat(t),e=o("/",0)===l),t=y(t,!e,"/",s),e?"/".concat(t):t.length>0?t:"."}}},522:(t,e,r)=>{function n(t){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},n(t)}function o(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,a(n.key),n)}}function a(t){var e=function(t){if("object"!=n(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var r=e.call(t,"string");if("object"!=n(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==n(e)?e:e+""}var i=r(798),c=i.Proxy,u=i.ProxyRevocable,l=new(0,i.SafeWeakMap),f=function(){return t=function t(e,r){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t);var n=new c(e,r);return l.set(n,[e,r]),n},e=[{key:"getProxyDetails",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],r=l.get(t);if(r)return e?r:r[0]}},{key:"revocable",value:function(t,e){var r=u(t,e);l.set(r.proxy,[t,e]);var n=r.revoke;return r.revoke=function(){l.set(r.proxy,[null,null]),n()},r}}],null&&0,e&&o(t,e),Object.defineProperty(t,"prototype",{writable:!1}),t;// removed by dead control flow
|
|
@@ -16903,13 +17134,13 @@ module.exports = function stringToParts(str) {
|
|
|
16903
17134
|
var t, e; }();e.h=c},730:(t,e,r)=>{function n(t){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},n(t)}var o=r(798),a=o.ArrayIsArray,i=o.BigInt,c=o.Boolean,u=o.DatePrototype,l=o.Error,f=o.FunctionPrototype,s=o.MapPrototypeHas,y=o.Number,p=o.ObjectDefineProperty,g=o.ObjectGetOwnPropertyDescriptor,v=o.ObjectGetPrototypeOf,h=o.ObjectIsFrozen,d=o.ObjectPrototype,b=o.SetPrototypeHas,m=o.String,S=o.Symbol,P=o.SymbolToStringTag,x=o.globalThis,w=r(0).getConstructorName;function A(t){for(var e=arguments.length,r=new Array(e>1?e-1:0),o=1;o<e;o++)r[o-1]=arguments[o];for(var a=0,i=r;a<i.length;a++){var c=i[a],u=x[c];if(u&&t instanceof u)return!0}for(;t;){if("object"!==n(t))return!1;if(r.indexOf(w(t))>=0)return!0;t=v(t)}return!1}function O(t){return function(e){if(!A(e,t.name))return!1;try{t.prototype.valueOf.call(e)}catch(t){return!1}return!0}}"object"!==n(x)&&(p(d,"__magic__",{get:function(){return this},configurable:!0}),__magic__.globalThis=__magic__,delete d.__magic__);var _=O(m),j=O(y),E=O(c),k=O(i),I=O(S);t.exports={isAsyncFunction:function(t){return"function"==typeof t&&f.toString.call(t).startsWith("async")},isGeneratorFunction:function(t){return"function"==typeof t&&f.toString.call(t).match(/^(async\s+)?function *\*/)},isAnyArrayBuffer:function(t){return A(t,"ArrayBuffer","SharedArrayBuffer")},isArrayBuffer:function(t){return A(t,"ArrayBuffer")},isArgumentsObject:function(t){if(null!==t&&"object"===n(t)&&!a(t)&&"number"==typeof t.length&&t.length===(0|t.length)&&t.length>=0){var e=g(t,"callee");return e&&!e.enumerable}return!1},isBoxedPrimitive:function(t){return j(t)||_(t)||E(t)||k(t)||I(t)},isDataView:function(t){return A(t,"DataView")},isExternal:function(t){return"object"===n(t)&&h(t)&&null==v(t)},isMap:function(t){if(!A(t,"Map"))return!1;try{s(t)}catch(t){return!1}return!0},isMapIterator:function(t){return"[object Map Iterator]"===d.toString.call(v(t))},isModuleNamespaceObject:function(t){try{return t&&"object"===n(t)&&"Module"===t[P]}catch(t){return!1}},isNativeError:function(t){return t instanceof l&&A(t,"Error","EvalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError","AggregateError")},isPromise:function(t){return A(t,"Promise")},isSet:function(t){if(!A(t,"Set"))return!1;try{b(t)}catch(t){return!1}return!0},isSetIterator:function(t){return"[object Set Iterator]"===d.toString.call(v(t))},isWeakMap:function(t){return A(t,"WeakMap")},isWeakSet:function(t){return A(t,"WeakSet")},isRegExp:function(t){return A(t,"RegExp")},isDate:function(t){if(A(t,"Date"))try{return u.getTime.call(t),!0}catch(t){}return!1},isTypedArray:function(t){return A(t,"Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","BigInt64Array","BigUint64Array")},isStringObject:_,isNumberObject:j,isBooleanObject:E,isBigIntObject:k,isSymbolObject:I}},755:(t,e,r)=>{function n(t){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},n(t)}var o=r(798).ArrayIsArray,a=r(799),i=a.hideStackFrames,c=a.codes.ERR_INVALID_ARG_TYPE,u=i(function(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;if(0===r){if(null===t||o(t))throw new c(e,"Object",t);if("object"!==n(t))throw new c(e,"Object",t)}else{if(!(1&r)&&null===t)throw new c(e,"Object",t);if(!(2&r)&&o(t))throw new c(e,"Object",t);var a=!(4&r),i=n(t);if("object"!==i&&(a||"function"!==i))throw new c(e,"Object",t)}});t.exports={kValidateObjectNone:0,kValidateObjectAllowNullable:1,kValidateObjectAllowArray:2,kValidateObjectAllowFunction:4,validateObject:u,validateString:function(t,e){if("string"!=typeof t)throw new c(e,"string",t)}}},758:(t,e,r)=>{var n;function o(){return n=null!=n?n:r(799).codes.ERR_INTERNAL_ASSERTION}function a(t,e){if(!t)throw new(o())(e)}a.fail=function(t){throw new(o())(t)},t.exports=a},798:t=>{function e(){var t,n,o="function"==typeof Symbol?Symbol:{},a=o.iterator||"@@iterator",i=o.toStringTag||"@@toStringTag";function c(e,o,a,i){var c=o&&o.prototype instanceof l?o:l,f=Object.create(c.prototype);return r(f,"_invoke",function(e,r,o){var a,i,c,l=0,f=o||[],s=!1,y={p:0,n:0,v:t,a:p,f:p.bind(t,4),d:function(e,r){return a=e,i=0,c=t,y.n=r,u}};function p(e,r){for(i=e,c=r,n=0;!s&&l&&!o&&n<f.length;n++){var o,a=f[n],p=y.p,g=a[2];e>3?(o=g===r)&&(c=a[(i=a[4])?5:(i=3,3)],a[4]=a[5]=t):a[0]<=p&&((o=e<2&&p<a[1])?(i=0,y.v=r,y.n=a[1]):p<g&&(o=e<3||a[0]>r||r>g)&&(a[4]=e,a[5]=r,y.n=g,i=0))}if(o||e>1)return u;throw s=!0,r}return function(o,f,g){if(l>1)throw TypeError("Generator is already running");for(s&&1===f&&p(f,g),i=f,c=g;(n=i<2?t:c)||!s;){a||(i?i<3?(i>1&&(y.n=-1),p(i,c)):y.n=c:y.v=c);try{if(l=2,a){if(i||(o="next"),n=a[o]){if(!(n=n.call(a,c)))throw TypeError("iterator result is not an object");if(!n.done)return n;c=n.value,i<2&&(i=0)}else 1===i&&(n=a.return)&&n.call(a),i<2&&(c=TypeError("The iterator does not provide a '"+o+"' method"),i=1);a=t}else if((n=(s=y.n<0)?c:e.call(r,y))!==u)break}catch(e){a=t,i=1,c=e}finally{l=1}}return{value:n,done:s}}}(e,a,i),!0),f}var u={};function l(){}function f(){}function s(){}n=Object.getPrototypeOf;var y=[][a]?n(n([][a]())):(r(n={},a,function(){return this}),n),p=s.prototype=l.prototype=Object.create(y);function g(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,s):(t.__proto__=s,r(t,i,"GeneratorFunction")),t.prototype=Object.create(p),t}return f.prototype=s,r(p,"constructor",s),r(s,"constructor",f),f.displayName="GeneratorFunction",r(s,i,"GeneratorFunction"),r(p),r(p,i,"Generator"),r(p,a,function(){return this}),r(p,"toString",function(){return"[object Generator]"}),(e=function(){return{w:c,m:g}})()}function r(t,e,n,o){var a=Object.defineProperty;try{a({},"",{})}catch(t){a=0}r=function(t,e,n,o){function i(e,n){r(t,e,function(t){return this._invoke(e,n,t)})}e?a?a(t,e,{value:n,enumerable:!o,configurable:!o,writable:!o}):t[e]=n:(i("next",0),i("throw",1),i("return",2))},r(t,e,n,o)}function n(t,e,r){return e=a(e),function(t,e){if(e&&("object"==d(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}(t,o()?Reflect.construct(e,r||[],a(t).constructor):e.apply(t,r))}function o(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(t){}return(o=function(){return!!t})()}function a(t){return a=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},a(t)}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&c(t,e)}function c(t,e){return c=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},c(t,e)}function u(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function l(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,g(n.key),n)}}function f(t,e,r){return e&&l(t.prototype,e),r&&l(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t}function s(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}function y(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?s(Object(r),!0).forEach(function(e){p(t,e,r[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):s(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))})}return t}function p(t,e,r){return(e=g(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function g(t){var e=function(t){if("object"!=d(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var r=e.call(t,"string");if("object"!=d(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==d(e)?e:e+""}function v(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=function(t,e){if(t){if("string"==typeof t)return h(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?h(t,e):void 0}}(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,i=!0,c=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return i=t.done,t},e:function(t){c=!0,a=t},f:function(){try{i||null==r.return||r.return()}finally{if(c)throw a}}}}function h(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}function d(t){return d="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},d(t)}function b(t){return function(){return new m(t.apply(this,arguments))}}function m(t){var e,r;function n(e,r){try{var a=t[e](r),i=a.value,c=i instanceof S;Promise.resolve(c?i.v:i).then(function(r){if(c){var u="return"===e?"return":"next";if(!i.k||r.done)return n(u,r);r=t[u](r).value}o(a.done?"return":"normal",r)},function(t){n("throw",t)})}catch(t){o("throw",t)}}function o(t,o){switch(t){case"return":e.resolve({value:o,done:!0});break;case"throw":e.reject(o);break;default:e.resolve({value:o,done:!1})}(e=e.next)?n(e.key,e.arg):r=null}this._invoke=function(t,o){return new Promise(function(a,i){var c={key:t,arg:o,resolve:a,reject:i,next:null};r?r=r.next=c:(e=r=c,n(t,o))})},"function"!=typeof t.return&&(this.return=void 0)}function S(t,e){this.v=t,this.k=e}m.prototype["function"==typeof Symbol&&Symbol.asyncIterator||"@@asyncIterator"]=function(){return this},m.prototype.next=function(t){return this._invoke("next",t)},m.prototype.throw=function(t){return this._invoke("throw",t)},m.prototype.return=function(t){return this._invoke("return",t)};var P={__proto__:null},x=Reflect.defineProperty,w=Reflect.getOwnPropertyDescriptor,A=Reflect.ownKeys,O=Function.prototype,_=O.apply,j=O.bind,E=O.call,k=j.bind(E);P.uncurryThis=k;var I=j.bind(_);P.applyBind=I;var R=["ArrayOf","ArrayPrototypePush","ArrayPrototypeUnshift","MathHypot","MathMax","MathMin","StringFromCharCode","StringFromCodePoint","StringPrototypeConcat","TypedArrayOf"];function L(t){return"symbol"===d(t)?"Symbol".concat(t.description[7].toUpperCase()).concat(t.description.slice(8)):"".concat(t[0].toUpperCase()).concat(t.slice(1))}function T(t,e,r,n){var o=n.enumerable,a=n.get,i=n.set;x(t,"".concat(e,"Get").concat(r),{__proto__:null,value:k(a),enumerable:o}),void 0!==i&&x(t,"".concat(e,"Set").concat(r),{__proto__:null,value:k(i),enumerable:o})}function B(t,e,r){var n,o=v(A(t));try{for(o.s();!(n=o.n()).done;){var a=n.value,i=L(a),c=w(t,a);if("get"in c)T(e,r,i,c);else{var u="".concat(r).concat(i);x(e,u,y({__proto__:null},c)),R.includes(u)&&x(e,"".concat(u,"Apply"),{__proto__:null,value:I(c.value,t)})}}}catch(t){o.e(t)}finally{o.f()}}function z(t,e,r){var n,o=v(A(t));try{for(o.s();!(n=o.n()).done;){var a=n.value,i=L(a),c=w(t,a);if("get"in c)T(e,r,i,c);else{var u=c.value;"function"==typeof u&&(c.value=k(u));var l="".concat(r).concat(i);x(e,l,y({__proto__:null},c)),R.includes(l)&&x(e,"".concat(l,"Apply"),{__proto__:null,value:I(u)})}}}catch(t){o.e(t)}finally{o.f()}}["Proxy","globalThis"].forEach(function(t){P[t]=globalThis[t]}),[decodeURI,decodeURIComponent,encodeURI,encodeURIComponent].forEach(function(t){P[t.name]=t}),[escape,eval,unescape].forEach(function(t){P[t.name]=t}),["Atomics","JSON","Math","Proxy","Reflect"].forEach(function(t){B(globalThis[t],P,t)}),["AggregateError","Array","ArrayBuffer","BigInt","BigInt64Array","BigUint64Array","Boolean","DataView","Date","Error","EvalError","FinalizationRegistry","Float32Array","Float64Array","Function","Int16Array","Int32Array","Int8Array","Map","Number","Object","RangeError","ReferenceError","RegExp","Set","String","Symbol","SyntaxError","TypeError","URIError","Uint16Array","Uint32Array","Uint8Array","Uint8ClampedArray","WeakMap","WeakRef","WeakSet"].forEach(function(t){var e=globalThis[t];e&&(P[t]=e,B(e,P,t),z(e.prototype,P,"".concat(t,"Prototype")))}),["Promise"].forEach(function(t){var e=globalThis[t];P[t]=e,function(t,e,r){var n,o=v(A(t));try{for(o.s();!(n=o.n()).done;){var a=n.value,i=L(a),c=w(t,a);if("get"in c)T(e,r,i,c);else{var u=c.value;"function"==typeof u&&(c.value=u.bind(t));var l="".concat(r).concat(i);x(e,l,y({__proto__:null},c))}}}catch(t){o.e(t)}finally{o.f()}}(e,P,t),z(e.prototype,P,"".concat(t,"Prototype"))}),[{name:"TypedArray",original:Reflect.getPrototypeOf(Uint8Array)},{name:"ArrayIterator",original:{prototype:Reflect.getPrototypeOf(Array.prototype[Symbol.iterator]())}},{name:"StringIterator",original:{prototype:Reflect.getPrototypeOf(String.prototype[Symbol.iterator]())}}].forEach(function(t){var e=t.name,r=t.original;P[e]=r,z(r,P,e),z(r.prototype,P,"".concat(e,"Prototype"))}),P.IteratorPrototype=Reflect.getPrototypeOf(P.ArrayIteratorPrototype);var M=P.ArrayPrototypeForEach,C=P.FinalizationRegistry,D=P.FunctionPrototypeCall,N=P.Map,F=P.ObjectFreeze,W=P.ObjectSetPrototypeOf,H=P.RegExp,U=P.Set,G=P.SymbolIterator,V=P.WeakMap,Z=P.WeakRef,$=P.WeakSet,Y=function(t,e){var r=function(){return f(function e(r){u(this,e),this._iterator=t(r)},[{key:"next",value:function(){return e(this._iterator)}},{key:G,value:function(){return this}}])}();return W(r.prototype,null),F(r.prototype),F(r),r};P.SafeArrayIterator=Y(P.ArrayPrototypeSymbolIterator,P.ArrayIteratorPrototypeNext),P.SafeStringIterator=Y(P.StringPrototypeSymbolIterator,P.StringIteratorPrototypeNext);var q=function(t,e){M(A(t),function(r){w(e,r)||x(e,r,y({__proto__:null},w(t,r)))})},J=function(t,e){if(G in t.prototype){var r,n=new t;M(A(t.prototype),function(o){if(!w(e.prototype,o)){var a,i=w(t.prototype,o);if("function"==typeof i.value&&0===i.value.length&&G in(null!==(a=D(i.value,n))&&void 0!==a?a:{})){var c=k(i.value);r=r||k(c(n).next);var u=Y(c,r);i.value=function(){return new u(this)}}x(e.prototype,o,y({__proto__:null},i))}})}else q(t.prototype,e.prototype);return q(t,e),W(e.prototype,null),F(e.prototype),F(e),e};P.makeSafe=J,P.SafeMap=J(N,function(t){function e(){return u(this,e),n(this,e,arguments)}return i(e,t),f(e)}(N)),P.SafeWeakMap=J(V,function(t){function e(){return u(this,e),n(this,e,arguments)}return i(e,t),f(e)}(V)),P.SafeSet=J(U,function(t){function e(){return u(this,e),n(this,e,arguments)}return i(e,t),f(e)}(U)),P.SafeWeakSet=J($,function(t){function e(){return u(this,e),n(this,e,arguments)}return i(e,t),f(e)}($)),P.SafeFinalizationRegistry=J(C,function(t){function e(){return u(this,e),n(this,e,arguments)}return i(e,t),f(e)}(C)),P.SafeWeakRef=J(Z,function(t){function e(){return u(this,e),n(this,e,arguments)}return i(e,t),f(e)}(Z)),P.AsyncIteratorPrototype=P.ReflectGetPrototypeOf(b(e().m(function t(){return e().w(function(t){for(;;)if(0===t.n)return t.a(2)},t)}))).prototype,P.internalBinding=function(t){if("config"===t)return{hasIntl:!1};throw new Error('unknown module: "'.concat(t,'"'))},P._stringPrototypeReplaceAll=function(t,e,r){return"[object regexp]"===Object.prototype.toString.call(e).toLowerCase()?t.replace(e,r):t.replace(new H(e,"g"),r)},P.StringPrototypeReplaceAll=P.StringPrototypeReplaceAll||P._stringPrototypeReplaceAll,W(P,null),F(P),t.exports=P},799:(t,e,r)=>{function n(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}function o(t){return o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},o(t)}function a(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,i(n.key),n)}}function i(t){var e=function(t){if("object"!=o(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var r=e.call(t,"string");if("object"!=o(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==o(e)?e:e+""}function c(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(t){}return(c=function(){return!!t})()}function u(t){return u=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},u(t)}function l(t,e){return l=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},l(t,e)}var f,s,y=r(798),p=y.ArrayIsArray,g=y.ArrayPrototypeIncludes,v=y.ArrayPrototypeIndexOf,h=y.ArrayPrototypeJoin,d=y.ArrayPrototypePush,b=y.ArrayPrototypeSlice,m=y.ArrayPrototypeSplice,S=y.Error,P=y.ErrorCaptureStackTrace,x=y.JSONStringify,w=y.ObjectDefineProperty,A=y.ReflectApply,O=y.RegExpPrototypeExec,_=y.SafeMap,j=y.SafeWeakMap,E=y.String,k=y.StringPrototypeEndsWith,I=y.StringPrototypeIncludes,R=y.StringPrototypeIndexOf,L=y.StringPrototypeSlice,T=y.StringPrototypeToLowerCase,B=y.Symbol,z=y.TypeError,M=B("kIsNodeError"),C=new _,D={},N=/^[A-Z][a-zA-Z0-9]*$/,F=["string","function","number","object","Function","Object","boolean","bigint","symbol"],W=new j,H=r(758),U=null;function G(t,e){var r=function(t){function r(){var t,n,a,l;(function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")})(this,r),t=function(t,e,r){return e=u(e),function(t,e){if(e&&("object"==o(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}(t,c()?Reflect.construct(e,r||[],u(t).constructor):e.apply(t,r))}(this,r),n=t,l=e,(a=i(a="code"))in n?Object.defineProperty(n,a,{value:l,enumerable:!0,configurable:!0,writable:!0}):n[a]=l;for(var f=arguments.length,s=new Array(f),y=0;y<f;y++)s[y]=arguments[y];return w(t,"message",{__proto__:null,value:Z(e,s,t),enumerable:!1,writable:!0,configurable:!0}),t}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&l(t,e)}(r,t),n=r,(f=[{key:"toString",value:function(){return"".concat(this.name," [").concat(e,"]: ").concat(this.message)}}])&&a(n.prototype,f),s&&a(n,s),Object.defineProperty(n,"prototype",{writable:!1}),n;// removed by dead control flow
|
|
16904
17135
|
var n, f, s; }(t);return r}function V(t,e,r){C.set(t,e);var n=G(r,t);D[t]=n}function Z(t,e,r){var n=C.get(t);if("function"==typeof n)return H(n.length<=e.length,"Code: ".concat(t,"; The provided arguments length (").concat(e.length,") does not ")+"match the required ones (".concat(n.length,").")),A(n,r,e)}var $=B("kEnhanceStackBeforeInspector");function Y(t){if(null===t)return"null";if(void 0===t)return"undefined";switch(o(t)){case"bigint":return"type bigint (".concat(t,"n)");case"number":return 0===t?1/t==-1/0?"type number (-0)":"type number (0)":t!=t?"type number (NaN)":t===1/0?"type number (Infinity)":t===-1/0?"type number (-Infinity)":"type number (".concat(t,")");case"boolean":return t?"type boolean (true)":"type boolean (false)";case"symbol":return"type symbol (".concat(E(t),")");case"function":return"function ".concat(t.name);case"object":return t.constructor&&"name"in t.constructor?"an instance of ".concat(t.constructor.name):"".concat((U=U||r(338)).inspect(t,{depth:-1}));case"string":return t.length>28&&(t="".concat(L(t,0,25),"...")),-1===R(t,"'")?"type string ('".concat(t,"')"):"type string (".concat(x(t),")")}}function q(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"and";switch(t.length){case 0:return"";case 1:return"".concat(t[0]);case 2:return"".concat(t[0]," ").concat(e," ").concat(t[1]);case 3:return"".concat(t[0],", ").concat(t[1],", ").concat(e," ").concat(t[2]);default:return"".concat(h(b(t,0,-1),", "),", ").concat(e," ").concat(t[t.length-1])}}t.exports={codes:D,determineSpecificType:Y,E:V,formatList:q,getMessage:Z,hideStackFrames:function(t){function e(){try{for(var r=arguments.length,n=new Array(r),o=0;o<r;o++)n[o]=arguments[o];return A(t,this,n)}catch(t){throw S.stackTraceLimit&&P(t,e),t}}return e.withoutStackTrace=t,e},isStackOverflowError:function(t){if(void 0===s)try{var e=function(){e()};e()}catch(t){s=t.message,f=t.name}return t&&t.name===f&&t.message===s},kEnhanceStackBeforeInspector:$,kIsNodeError:M,overrideStackTrace:W},V("ERR_INTERNAL_ASSERTION",function(t){var e="This is caused by either a bug in Node.js or incorrect usage of Node.js internals.\nPlease open an issue with this stack trace at https://github.com/nodejs/node/issues\n";return void 0===t?e:"".concat(t,"\n").concat(e)},S),V("ERR_INVALID_ARG_TYPE",function(t,e,r){H("string"==typeof t,"'name' must be a string"),p(e)||(e=[e]);var o="The ";if(k(t," argument"))o+="".concat(t," ");else{var a=I(t,".")?"property":"argument";o+='"'.concat(t,'" ').concat(a," ")}o+="must be ";var i,c=[],u=[],l=[],f=function(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=function(t,e){if(t){if("string"==typeof t)return n(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?n(t,e):void 0}}(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var o=0,a=function(){};return{s:a,n:function(){return o>=t.length?{done:!0}:{done:!1,value:t[o++]}},e:function(t){throw t},f:a}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,c=!0,u=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return c=t.done,t},e:function(t){u=!0,i=t},f:function(){try{c||null==r.return||r.return()}finally{if(u)throw i}}}}(e);try{for(f.s();!(i=f.n()).done;){var s=i.value;H("string"==typeof s,"All expected entries have to be of type string"),g(F,s)?d(c,T(s)):null!==O(N,s)?d(u,s):(H("object"!==s,'The value "object" should be written as "Object"'),d(l,s))}}catch(t){f.e(t)}finally{f.f()}if(u.length>0){var y=v(c,"object");-1!==y&&(m(c,y,1),d(u,"Object"))}return c.length>0&&(o+="".concat(c.length>1?"one of type":"of type"," ").concat(q(c,"or")),(u.length>0||l.length>0)&&(o+=" or ")),u.length>0&&(o+="an instance of ".concat(q(u,"or")),l.length>0&&(o+=" or ")),l.length>0&&(l.length>1?o+="one of ".concat(q(l,"or")):(T(l[0])!==l[0]&&(o+="an "),o+="".concat(l[0]))),o+". Received ".concat(Y(r))},z)},948:(t,e,r)=>{var n=r(798),o=n.ArrayPrototypeJoin,a=n.Error,i=n.StringPrototypeReplace,c=n.SymbolFor,u=/\u001b\[\d\d?m/g;t.exports={customInspectSymbol:c("nodejs.util.inspect.custom"),isError:function(t){return t instanceof a},join:o,removeColors:function(t){return i(t,u,"")}}},999:t=>{t.exports=URL}},e={};return function r(n){var o=e[n];if(void 0!==o)return o.exports;var a=e[n]={exports:{}};return t[n](a,a.exports,r),a.exports}(338)})());
|
|
16905
17136
|
|
|
16906
|
-
/***/ }
|
|
17137
|
+
/***/ },
|
|
16907
17138
|
|
|
16908
|
-
/***/ "./node_modules/vanillatoasts/vanillatoasts.js"
|
|
17139
|
+
/***/ "./node_modules/vanillatoasts/vanillatoasts.js"
|
|
16909
17140
|
/*!*****************************************************!*\
|
|
16910
17141
|
!*** ./node_modules/vanillatoasts/vanillatoasts.js ***!
|
|
16911
17142
|
\*****************************************************/
|
|
16912
|
-
|
|
17143
|
+
(module) {
|
|
16913
17144
|
|
|
16914
17145
|
(function (root, factory) {
|
|
16915
17146
|
try {
|
|
@@ -17087,18 +17318,18 @@ module.exports = function stringToParts(str) {
|
|
|
17087
17318
|
});
|
|
17088
17319
|
|
|
17089
17320
|
|
|
17090
|
-
/***/ }
|
|
17321
|
+
/***/ },
|
|
17091
17322
|
|
|
17092
|
-
/***/ "./package.json"
|
|
17323
|
+
/***/ "./package.json"
|
|
17093
17324
|
/*!**********************!*\
|
|
17094
17325
|
!*** ./package.json ***!
|
|
17095
17326
|
\**********************/
|
|
17096
|
-
|
|
17327
|
+
(module) {
|
|
17097
17328
|
|
|
17098
17329
|
"use strict";
|
|
17099
|
-
module.exports = /*#__PURE__*/JSON.parse('{"name":"@mongoosejs/studio","version":"0.1.
|
|
17330
|
+
module.exports = /*#__PURE__*/JSON.parse('{"name":"@mongoosejs/studio","version":"0.1.17","description":"A sleek, powerful MongoDB UI with built-in dashboarding and auth, seamlessly integrated with your Express, Vercel, or Netlify app.","homepage":"https://studio.mongoosejs.io/","repository":{"type":"git","url":"https://github.com/mongoosejs/studio"},"license":"Apache-2.0","dependencies":{"@ai-sdk/google":"2.x","@ai-sdk/openai":"2.x","@ai-sdk/anthropic":"2.x","ai":"5.x","archetype":"0.13.1","csv-stringify":"6.3.0","ejson":"^2.2.3","extrovert":"^0.2.0","marked":"15.0.12","node-inspect-extracted":"3.x","tailwindcss":"3.4.0","vanillatoasts":"^1.6.0","vue":"3.x","webpack":"5.x"},"peerDependencies":{"mongoose":"7.x || 8.x || ^9.0.0"},"devDependencies":{"@masteringjs/eslint-config":"0.1.1","axios":"1.2.2","dedent":"^1.6.0","eslint":"9.30.0","express":"4.x","mocha":"10.2.0","mongoose":"9.x"},"scripts":{"lint":"eslint .","tailwind":"tailwindcss -o ./frontend/public/tw.css","tailwind:watch":"tailwindcss -o ./frontend/public/tw.css --watch","test":"mocha test/*.test.js"}}');
|
|
17100
17331
|
|
|
17101
|
-
/***/ }
|
|
17332
|
+
/***/ }
|
|
17102
17333
|
|
|
17103
17334
|
/******/ });
|
|
17104
17335
|
/************************************************************************/
|
|
@@ -17112,6 +17343,12 @@ module.exports = /*#__PURE__*/JSON.parse('{"name":"@mongoosejs/studio","version"
|
|
|
17112
17343
|
/******/ if (cachedModule !== undefined) {
|
|
17113
17344
|
/******/ return cachedModule.exports;
|
|
17114
17345
|
/******/ }
|
|
17346
|
+
/******/ // Check if module exists (development only)
|
|
17347
|
+
/******/ if (__webpack_modules__[moduleId] === undefined) {
|
|
17348
|
+
/******/ var e = new Error("Cannot find module '" + moduleId + "'");
|
|
17349
|
+
/******/ e.code = 'MODULE_NOT_FOUND';
|
|
17350
|
+
/******/ throw e;
|
|
17351
|
+
/******/ }
|
|
17115
17352
|
/******/ // Create a new module (and put it into the cache)
|
|
17116
17353
|
/******/ var module = __webpack_module_cache__[moduleId] = {
|
|
17117
17354
|
/******/ // no module.id needed
|