csdcs
This commit is contained in:
+32
@@ -0,0 +1,32 @@
|
|||||||
|
# Dependencies
|
||||||
|
node_modules/
|
||||||
|
|
||||||
|
# Production build
|
||||||
|
build/
|
||||||
|
dist/
|
||||||
|
|
||||||
|
# Logs
|
||||||
|
npm-debug.log*
|
||||||
|
yarn-debug.log*
|
||||||
|
yarn-error.log*
|
||||||
|
pnpm-debug.log*
|
||||||
|
|
||||||
|
# Environment variables
|
||||||
|
.env
|
||||||
|
.env.local
|
||||||
|
.env.development.local
|
||||||
|
.env.test.local
|
||||||
|
.env.production.local
|
||||||
|
|
||||||
|
# IDE configurations
|
||||||
|
.vscode/
|
||||||
|
.idea/
|
||||||
|
*.suo
|
||||||
|
*.ntvs*
|
||||||
|
*.njsproj
|
||||||
|
*.sln
|
||||||
|
*.sw?
|
||||||
|
|
||||||
|
# OS files
|
||||||
|
.DS_Store
|
||||||
|
Thumbs.db
|
||||||
Generated
+2
-1
@@ -1,6 +1,7 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<project version="4">
|
<project version="4">
|
||||||
<component name="ExternalStorageConfigurationManager" enabled="true" />
|
<component name="ExternalStorageConfigurationManager" enabled="true" />
|
||||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_21" project-jdk-name="jbr-21" project-jdk-type="JavaSDK">
|
<component name="ProjectRootManager" version="2" languageLevel="JDK_21" default="true" project-jdk-name="jbr-21" project-jdk-type="JavaSDK">
|
||||||
<output url="file://$PROJECT_DIR$/build/classes" />
|
<output url="file://$PROJECT_DIR$/build/classes" />
|
||||||
</component>
|
</component>
|
||||||
<component name="ProjectType">
|
<component name="ProjectType">
|
||||||
|
|||||||
Vendored
-603
File diff suppressed because one or more lines are too long
Vendored
+1
-1
@@ -6,7 +6,7 @@
|
|||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
<link rel="manifest" href="manifest.json" />
|
<link rel="manifest" href="manifest.json" />
|
||||||
<title>Agro Monev</title>
|
<title>Agro Monev</title>
|
||||||
<script type="module" crossorigin src="./assets/index-yYrlP9ZJ.js"></script>
|
<script type="module" crossorigin src="./assets/index-DrAa0Ust.js"></script>
|
||||||
<link rel="stylesheet" crossorigin href="./assets/index-Bzz_IyVK.css">
|
<link rel="stylesheet" crossorigin href="./assets/index-Bzz_IyVK.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
|||||||
+4
-4
@@ -6,20 +6,20 @@ import {
|
|||||||
Portal,
|
Portal,
|
||||||
hideOthers,
|
hideOthers,
|
||||||
useFocusGuards
|
useFocusGuards
|
||||||
} from "./chunk-6UYCW752.js";
|
} from "./chunk-WIKMTAHT.js";
|
||||||
import {
|
import {
|
||||||
Presence
|
Presence
|
||||||
} from "./chunk-YEHADEKF.js";
|
} from "./chunk-H4FEHRTE.js";
|
||||||
import {
|
import {
|
||||||
useId
|
useId
|
||||||
} from "./chunk-HJJKWFHH.js";
|
} from "./chunk-DR23R4HS.js";
|
||||||
import {
|
import {
|
||||||
Primitive,
|
Primitive,
|
||||||
composeEventHandlers,
|
composeEventHandlers,
|
||||||
createContext2,
|
createContext2,
|
||||||
createContextScope,
|
createContextScope,
|
||||||
useControllableState
|
useControllableState
|
||||||
} from "./chunk-HTKU3RA7.js";
|
} from "./chunk-CD6XDNKE.js";
|
||||||
import {
|
import {
|
||||||
composeRefs,
|
composeRefs,
|
||||||
useComposedRefs
|
useComposedRefs
|
||||||
|
|||||||
+11
-11
@@ -1,12 +1,4 @@
|
|||||||
"use client";
|
"use client";
|
||||||
import {
|
|
||||||
createCollection,
|
|
||||||
useDirection
|
|
||||||
} from "./chunk-Z5TL6HO7.js";
|
|
||||||
import {
|
|
||||||
usePrevious,
|
|
||||||
useSize
|
|
||||||
} from "./chunk-7EWB5V5P.js";
|
|
||||||
import {
|
import {
|
||||||
Combination_default,
|
Combination_default,
|
||||||
DismissableLayer,
|
DismissableLayer,
|
||||||
@@ -14,18 +6,26 @@ import {
|
|||||||
Portal,
|
Portal,
|
||||||
hideOthers,
|
hideOthers,
|
||||||
useFocusGuards
|
useFocusGuards
|
||||||
} from "./chunk-6UYCW752.js";
|
} from "./chunk-WIKMTAHT.js";
|
||||||
|
import {
|
||||||
|
usePrevious,
|
||||||
|
useSize
|
||||||
|
} from "./chunk-BSEPHKUN.js";
|
||||||
|
import {
|
||||||
|
createCollection,
|
||||||
|
useDirection
|
||||||
|
} from "./chunk-AW4DWX7J.js";
|
||||||
import {
|
import {
|
||||||
useCallbackRef,
|
useCallbackRef,
|
||||||
useId
|
useId
|
||||||
} from "./chunk-HJJKWFHH.js";
|
} from "./chunk-DR23R4HS.js";
|
||||||
import {
|
import {
|
||||||
Primitive,
|
Primitive,
|
||||||
composeEventHandlers,
|
composeEventHandlers,
|
||||||
createContextScope,
|
createContextScope,
|
||||||
useControllableState,
|
useControllableState,
|
||||||
useLayoutEffect2
|
useLayoutEffect2
|
||||||
} from "./chunk-HTKU3RA7.js";
|
} from "./chunk-CD6XDNKE.js";
|
||||||
import {
|
import {
|
||||||
composeRefs,
|
composeRefs,
|
||||||
useComposedRefs
|
useComposedRefs
|
||||||
|
|||||||
+2
-2
@@ -2,13 +2,13 @@
|
|||||||
import {
|
import {
|
||||||
usePrevious,
|
usePrevious,
|
||||||
useSize
|
useSize
|
||||||
} from "./chunk-7EWB5V5P.js";
|
} from "./chunk-BSEPHKUN.js";
|
||||||
import {
|
import {
|
||||||
Primitive,
|
Primitive,
|
||||||
composeEventHandlers,
|
composeEventHandlers,
|
||||||
createContextScope,
|
createContextScope,
|
||||||
useControllableState
|
useControllableState
|
||||||
} from "./chunk-HTKU3RA7.js";
|
} from "./chunk-CD6XDNKE.js";
|
||||||
import {
|
import {
|
||||||
useComposedRefs
|
useComposedRefs
|
||||||
} from "./chunk-JDYSANEB.js";
|
} from "./chunk-JDYSANEB.js";
|
||||||
|
|||||||
+6
-6
@@ -1,21 +1,21 @@
|
|||||||
"use client";
|
"use client";
|
||||||
|
import {
|
||||||
|
Presence
|
||||||
|
} from "./chunk-H4FEHRTE.js";
|
||||||
import {
|
import {
|
||||||
createCollection,
|
createCollection,
|
||||||
useDirection
|
useDirection
|
||||||
} from "./chunk-Z5TL6HO7.js";
|
} from "./chunk-AW4DWX7J.js";
|
||||||
import {
|
|
||||||
Presence
|
|
||||||
} from "./chunk-YEHADEKF.js";
|
|
||||||
import {
|
import {
|
||||||
useCallbackRef,
|
useCallbackRef,
|
||||||
useId
|
useId
|
||||||
} from "./chunk-HJJKWFHH.js";
|
} from "./chunk-DR23R4HS.js";
|
||||||
import {
|
import {
|
||||||
Primitive,
|
Primitive,
|
||||||
composeEventHandlers,
|
composeEventHandlers,
|
||||||
createContextScope,
|
createContextScope,
|
||||||
useControllableState
|
useControllableState
|
||||||
} from "./chunk-HTKU3RA7.js";
|
} from "./chunk-CD6XDNKE.js";
|
||||||
import {
|
import {
|
||||||
useComposedRefs
|
useComposedRefs
|
||||||
} from "./chunk-JDYSANEB.js";
|
} from "./chunk-JDYSANEB.js";
|
||||||
|
|||||||
+161
-149
@@ -1,215 +1,224 @@
|
|||||||
{
|
{
|
||||||
"hash": "0f3868e6",
|
"hash": "1f9be60d",
|
||||||
"configHash": "cd26d671",
|
"configHash": "31506afd",
|
||||||
"lockfileHash": "b353e952",
|
"lockfileHash": "027a3aef",
|
||||||
"browserHash": "1524d4e3",
|
"browserHash": "09026e62",
|
||||||
"optimized": {
|
"optimized": {
|
||||||
"react": {
|
"react": {
|
||||||
"src": "../../react/index.js",
|
"src": "../../react/index.js",
|
||||||
"file": "react.js",
|
"file": "react.js",
|
||||||
"fileHash": "70ea0e20",
|
"fileHash": "fb8f4549",
|
||||||
"needsInterop": true
|
"needsInterop": true
|
||||||
},
|
},
|
||||||
"react-dom": {
|
"react-dom": {
|
||||||
"src": "../../react-dom/index.js",
|
"src": "../../react-dom/index.js",
|
||||||
"file": "react-dom.js",
|
"file": "react-dom.js",
|
||||||
"fileHash": "75336cb8",
|
"fileHash": "d8889d21",
|
||||||
"needsInterop": true
|
"needsInterop": true
|
||||||
},
|
},
|
||||||
"react/jsx-dev-runtime": {
|
"react/jsx-dev-runtime": {
|
||||||
"src": "../../react/jsx-dev-runtime.js",
|
"src": "../../react/jsx-dev-runtime.js",
|
||||||
"file": "react_jsx-dev-runtime.js",
|
"file": "react_jsx-dev-runtime.js",
|
||||||
"fileHash": "df15e2ea",
|
"fileHash": "be308676",
|
||||||
"needsInterop": true
|
"needsInterop": true
|
||||||
},
|
},
|
||||||
"react/jsx-runtime": {
|
"react/jsx-runtime": {
|
||||||
"src": "../../react/jsx-runtime.js",
|
"src": "../../react/jsx-runtime.js",
|
||||||
"file": "react_jsx-runtime.js",
|
"file": "react_jsx-runtime.js",
|
||||||
"fileHash": "03e768df",
|
"fileHash": "1b437650",
|
||||||
"needsInterop": true
|
"needsInterop": true
|
||||||
},
|
},
|
||||||
"@base44/sdk": {
|
|
||||||
"src": "../../@base44/sdk/dist/index.js",
|
|
||||||
"file": "@base44_sdk.js",
|
|
||||||
"fileHash": "abaacb92",
|
|
||||||
"needsInterop": false
|
|
||||||
},
|
|
||||||
"@base44/sdk/dist/utils/axios-client": {
|
|
||||||
"src": "../../@base44/sdk/dist/utils/axios-client.js",
|
|
||||||
"file": "@base44_sdk_dist_utils_axios-client.js",
|
|
||||||
"fileHash": "51b092e9",
|
|
||||||
"needsInterop": false
|
|
||||||
},
|
|
||||||
"@radix-ui/react-dialog": {
|
|
||||||
"src": "../../@radix-ui/react-dialog/dist/index.mjs",
|
|
||||||
"file": "@radix-ui_react-dialog.js",
|
|
||||||
"fileHash": "9e879ff8",
|
|
||||||
"needsInterop": false
|
|
||||||
},
|
|
||||||
"@radix-ui/react-label": {
|
|
||||||
"src": "../../@radix-ui/react-label/dist/index.mjs",
|
|
||||||
"file": "@radix-ui_react-label.js",
|
|
||||||
"fileHash": "9077f253",
|
|
||||||
"needsInterop": false
|
|
||||||
},
|
|
||||||
"@radix-ui/react-progress": {
|
|
||||||
"src": "../../@radix-ui/react-progress/dist/index.mjs",
|
|
||||||
"file": "@radix-ui_react-progress.js",
|
|
||||||
"fileHash": "46eff1e0",
|
|
||||||
"needsInterop": false
|
|
||||||
},
|
|
||||||
"@radix-ui/react-select": {
|
|
||||||
"src": "../../@radix-ui/react-select/dist/index.mjs",
|
|
||||||
"file": "@radix-ui_react-select.js",
|
|
||||||
"fileHash": "51e1c5df",
|
|
||||||
"needsInterop": false
|
|
||||||
},
|
|
||||||
"@radix-ui/react-slot": {
|
|
||||||
"src": "../../@radix-ui/react-slot/dist/index.mjs",
|
|
||||||
"file": "@radix-ui_react-slot.js",
|
|
||||||
"fileHash": "8df52186",
|
|
||||||
"needsInterop": false
|
|
||||||
},
|
|
||||||
"@radix-ui/react-switch": {
|
|
||||||
"src": "../../@radix-ui/react-switch/dist/index.mjs",
|
|
||||||
"file": "@radix-ui_react-switch.js",
|
|
||||||
"fileHash": "35a95945",
|
|
||||||
"needsInterop": false
|
|
||||||
},
|
|
||||||
"@radix-ui/react-tabs": {
|
|
||||||
"src": "../../@radix-ui/react-tabs/dist/index.mjs",
|
|
||||||
"file": "@radix-ui_react-tabs.js",
|
|
||||||
"fileHash": "16a82ff8",
|
|
||||||
"needsInterop": false
|
|
||||||
},
|
|
||||||
"@tanstack/react-query": {
|
|
||||||
"src": "../../@tanstack/react-query/build/modern/index.js",
|
|
||||||
"file": "@tanstack_react-query.js",
|
|
||||||
"fileHash": "0e4da0a0",
|
|
||||||
"needsInterop": false
|
|
||||||
},
|
|
||||||
"class-variance-authority": {
|
|
||||||
"src": "../../class-variance-authority/dist/index.mjs",
|
|
||||||
"file": "class-variance-authority.js",
|
|
||||||
"fileHash": "10c0c62c",
|
|
||||||
"needsInterop": false
|
|
||||||
},
|
|
||||||
"clsx": {
|
|
||||||
"src": "../../clsx/dist/clsx.mjs",
|
|
||||||
"file": "clsx.js",
|
|
||||||
"fileHash": "64f5986f",
|
|
||||||
"needsInterop": false
|
|
||||||
},
|
|
||||||
"date-fns": {
|
|
||||||
"src": "../../date-fns/index.mjs",
|
|
||||||
"file": "date-fns.js",
|
|
||||||
"fileHash": "ebf4831e",
|
|
||||||
"needsInterop": false
|
|
||||||
},
|
|
||||||
"date-fns/locale": {
|
|
||||||
"src": "../../date-fns/locale.mjs",
|
|
||||||
"file": "date-fns_locale.js",
|
|
||||||
"fileHash": "40e30606",
|
|
||||||
"needsInterop": false
|
|
||||||
},
|
|
||||||
"framer-motion": {
|
|
||||||
"src": "../../framer-motion/dist/es/index.mjs",
|
|
||||||
"file": "framer-motion.js",
|
|
||||||
"fileHash": "ae6b1866",
|
|
||||||
"needsInterop": false
|
|
||||||
},
|
|
||||||
"leaflet": {
|
|
||||||
"src": "../../leaflet/dist/leaflet-src.js",
|
|
||||||
"file": "leaflet.js",
|
|
||||||
"fileHash": "b88da861",
|
|
||||||
"needsInterop": true
|
|
||||||
},
|
|
||||||
"lucide-react": {
|
|
||||||
"src": "../../lucide-react/dist/esm/lucide-react.js",
|
|
||||||
"file": "lucide-react.js",
|
|
||||||
"fileHash": "c5857819",
|
|
||||||
"needsInterop": false
|
|
||||||
},
|
|
||||||
"react-dom/client": {
|
"react-dom/client": {
|
||||||
"src": "../../react-dom/client.js",
|
"src": "../../react-dom/client.js",
|
||||||
"file": "react-dom_client.js",
|
"file": "react-dom_client.js",
|
||||||
"fileHash": "7cc04734",
|
"fileHash": "0b32c5fb",
|
||||||
"needsInterop": true
|
"needsInterop": true
|
||||||
},
|
},
|
||||||
"react-leaflet": {
|
"@tanstack/react-query": {
|
||||||
"src": "../../react-leaflet/lib/index.js",
|
"src": "../../@tanstack/react-query/build/modern/index.js",
|
||||||
"file": "react-leaflet.js",
|
"file": "@tanstack_react-query.js",
|
||||||
"fileHash": "cc93aa75",
|
"fileHash": "c3cae4c6",
|
||||||
"needsInterop": false
|
"needsInterop": false
|
||||||
},
|
},
|
||||||
"react-router-dom": {
|
"react-router-dom": {
|
||||||
"src": "../../react-router-dom/dist/index.js",
|
"src": "../../react-router-dom/dist/index.js",
|
||||||
"file": "react-router-dom.js",
|
"file": "react-router-dom.js",
|
||||||
"fileHash": "017bf93b",
|
"fileHash": "1d0dc616",
|
||||||
"needsInterop": false
|
"needsInterop": false
|
||||||
},
|
},
|
||||||
"recharts": {
|
"lucide-react": {
|
||||||
"src": "../../recharts/es6/index.js",
|
"src": "../../lucide-react/dist/esm/lucide-react.js",
|
||||||
"file": "recharts.js",
|
"file": "lucide-react.js",
|
||||||
"fileHash": "b53e6a83",
|
"fileHash": "20d46397",
|
||||||
|
"needsInterop": false
|
||||||
|
},
|
||||||
|
"framer-motion": {
|
||||||
|
"src": "../../framer-motion/dist/es/index.mjs",
|
||||||
|
"file": "framer-motion.js",
|
||||||
|
"fileHash": "f806cb8e",
|
||||||
"needsInterop": false
|
"needsInterop": false
|
||||||
},
|
},
|
||||||
"sonner": {
|
"sonner": {
|
||||||
"src": "../../sonner/dist/index.mjs",
|
"src": "../../sonner/dist/index.mjs",
|
||||||
"file": "sonner.js",
|
"file": "sonner.js",
|
||||||
"fileHash": "0bfcc1a8",
|
"fileHash": "72f81728",
|
||||||
|
"needsInterop": false
|
||||||
|
},
|
||||||
|
"date-fns/locale": {
|
||||||
|
"src": "../../date-fns/locale.mjs",
|
||||||
|
"file": "date-fns_locale.js",
|
||||||
|
"fileHash": "961f2940",
|
||||||
|
"needsInterop": false
|
||||||
|
},
|
||||||
|
"date-fns": {
|
||||||
|
"src": "../../date-fns/index.mjs",
|
||||||
|
"file": "date-fns.js",
|
||||||
|
"fileHash": "b86dabaa",
|
||||||
|
"needsInterop": false
|
||||||
|
},
|
||||||
|
"recharts": {
|
||||||
|
"src": "../../recharts/es6/index.js",
|
||||||
|
"file": "recharts.js",
|
||||||
|
"fileHash": "b0bd2148",
|
||||||
|
"needsInterop": false
|
||||||
|
},
|
||||||
|
"@base44/sdk/dist/utils/axios-client": {
|
||||||
|
"src": "../../@base44/sdk/dist/utils/axios-client.js",
|
||||||
|
"file": "@base44_sdk_dist_utils_axios-client.js",
|
||||||
|
"fileHash": "b85066c3",
|
||||||
|
"needsInterop": false
|
||||||
|
},
|
||||||
|
"@base44/sdk": {
|
||||||
|
"src": "../../@base44/sdk/dist/index.js",
|
||||||
|
"file": "@base44_sdk.js",
|
||||||
|
"fileHash": "81b96f45",
|
||||||
"needsInterop": false
|
"needsInterop": false
|
||||||
},
|
},
|
||||||
"sql.js": {
|
"sql.js": {
|
||||||
"src": "../../sql.js/dist/sql-wasm-browser.js",
|
"src": "../../sql.js/dist/sql-wasm-browser.js",
|
||||||
"file": "sql__js.js",
|
"file": "sql__js.js",
|
||||||
"fileHash": "d967612e",
|
"fileHash": "22971ff8",
|
||||||
"needsInterop": true
|
"needsInterop": true
|
||||||
},
|
},
|
||||||
|
"clsx": {
|
||||||
|
"src": "../../clsx/dist/clsx.mjs",
|
||||||
|
"file": "clsx.js",
|
||||||
|
"fileHash": "fd82d21e",
|
||||||
|
"needsInterop": false
|
||||||
|
},
|
||||||
"tailwind-merge": {
|
"tailwind-merge": {
|
||||||
"src": "../../tailwind-merge/dist/bundle-mjs.mjs",
|
"src": "../../tailwind-merge/dist/bundle-mjs.mjs",
|
||||||
"file": "tailwind-merge.js",
|
"file": "tailwind-merge.js",
|
||||||
"fileHash": "8e2e1d8d",
|
"fileHash": "50e69157",
|
||||||
"needsInterop": false
|
"needsInterop": false
|
||||||
|
},
|
||||||
|
"@radix-ui/react-slot": {
|
||||||
|
"src": "../../@radix-ui/react-slot/dist/index.mjs",
|
||||||
|
"file": "@radix-ui_react-slot.js",
|
||||||
|
"fileHash": "d93f2953",
|
||||||
|
"needsInterop": false
|
||||||
|
},
|
||||||
|
"class-variance-authority": {
|
||||||
|
"src": "../../class-variance-authority/dist/index.mjs",
|
||||||
|
"file": "class-variance-authority.js",
|
||||||
|
"fileHash": "a4a77514",
|
||||||
|
"needsInterop": false
|
||||||
|
},
|
||||||
|
"@radix-ui/react-select": {
|
||||||
|
"src": "../../@radix-ui/react-select/dist/index.mjs",
|
||||||
|
"file": "@radix-ui_react-select.js",
|
||||||
|
"fileHash": "657bcaa3",
|
||||||
|
"needsInterop": false
|
||||||
|
},
|
||||||
|
"@radix-ui/react-tabs": {
|
||||||
|
"src": "../../@radix-ui/react-tabs/dist/index.mjs",
|
||||||
|
"file": "@radix-ui_react-tabs.js",
|
||||||
|
"fileHash": "ee9985b3",
|
||||||
|
"needsInterop": false
|
||||||
|
},
|
||||||
|
"@radix-ui/react-label": {
|
||||||
|
"src": "../../@radix-ui/react-label/dist/index.mjs",
|
||||||
|
"file": "@radix-ui_react-label.js",
|
||||||
|
"fileHash": "88e18468",
|
||||||
|
"needsInterop": false
|
||||||
|
},
|
||||||
|
"react-leaflet": {
|
||||||
|
"src": "../../react-leaflet/lib/index.js",
|
||||||
|
"file": "react-leaflet.js",
|
||||||
|
"fileHash": "f925c49b",
|
||||||
|
"needsInterop": false
|
||||||
|
},
|
||||||
|
"leaflet": {
|
||||||
|
"src": "../../leaflet/dist/leaflet-src.js",
|
||||||
|
"file": "leaflet.js",
|
||||||
|
"fileHash": "e294f8c6",
|
||||||
|
"needsInterop": true
|
||||||
|
},
|
||||||
|
"@radix-ui/react-dialog": {
|
||||||
|
"src": "../../@radix-ui/react-dialog/dist/index.mjs",
|
||||||
|
"file": "@radix-ui_react-dialog.js",
|
||||||
|
"fileHash": "00e3c21e",
|
||||||
|
"needsInterop": false
|
||||||
|
},
|
||||||
|
"@radix-ui/react-switch": {
|
||||||
|
"src": "../../@radix-ui/react-switch/dist/index.mjs",
|
||||||
|
"file": "@radix-ui_react-switch.js",
|
||||||
|
"fileHash": "7d2e4b39",
|
||||||
|
"needsInterop": false
|
||||||
|
},
|
||||||
|
"@radix-ui/react-progress": {
|
||||||
|
"src": "../../@radix-ui/react-progress/dist/index.mjs",
|
||||||
|
"file": "@radix-ui_react-progress.js",
|
||||||
|
"fileHash": "d818f0a0",
|
||||||
|
"needsInterop": false
|
||||||
|
},
|
||||||
|
"dexie": {
|
||||||
|
"src": "../../dexie/import-wrapper.mjs",
|
||||||
|
"file": "dexie.js",
|
||||||
|
"fileHash": "df50a9c9",
|
||||||
|
"needsInterop": false
|
||||||
|
},
|
||||||
|
"lodash": {
|
||||||
|
"src": "../../lodash/lodash.js",
|
||||||
|
"file": "lodash.js",
|
||||||
|
"fileHash": "856214fa",
|
||||||
|
"needsInterop": true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"chunks": {
|
"chunks": {
|
||||||
"chunk-A55GUTZU": {
|
"chunk-GTF7DNNX": {
|
||||||
"file": "chunk-A55GUTZU.js"
|
"file": "chunk-GTF7DNNX.js"
|
||||||
|
},
|
||||||
|
"chunk-WIKMTAHT": {
|
||||||
|
"file": "chunk-WIKMTAHT.js"
|
||||||
|
},
|
||||||
|
"chunk-BSEPHKUN": {
|
||||||
|
"file": "chunk-BSEPHKUN.js"
|
||||||
|
},
|
||||||
|
"chunk-H4FEHRTE": {
|
||||||
|
"file": "chunk-H4FEHRTE.js"
|
||||||
|
},
|
||||||
|
"chunk-AW4DWX7J": {
|
||||||
|
"file": "chunk-AW4DWX7J.js"
|
||||||
|
},
|
||||||
|
"chunk-DR23R4HS": {
|
||||||
|
"file": "chunk-DR23R4HS.js"
|
||||||
|
},
|
||||||
|
"chunk-CD6XDNKE": {
|
||||||
|
"file": "chunk-CD6XDNKE.js"
|
||||||
|
},
|
||||||
|
"chunk-JDYSANEB": {
|
||||||
|
"file": "chunk-JDYSANEB.js"
|
||||||
},
|
},
|
||||||
"chunk-A73536KP": {
|
"chunk-A73536KP": {
|
||||||
"file": "chunk-A73536KP.js"
|
"file": "chunk-A73536KP.js"
|
||||||
},
|
},
|
||||||
"chunk-Z5TL6HO7": {
|
|
||||||
"file": "chunk-Z5TL6HO7.js"
|
|
||||||
},
|
|
||||||
"chunk-7EWB5V5P": {
|
|
||||||
"file": "chunk-7EWB5V5P.js"
|
|
||||||
},
|
|
||||||
"chunk-U7P2NEEE": {
|
"chunk-U7P2NEEE": {
|
||||||
"file": "chunk-U7P2NEEE.js"
|
"file": "chunk-U7P2NEEE.js"
|
||||||
},
|
},
|
||||||
"chunk-CJARZ5TB": {
|
"chunk-CJARZ5TB": {
|
||||||
"file": "chunk-CJARZ5TB.js"
|
"file": "chunk-CJARZ5TB.js"
|
||||||
},
|
},
|
||||||
"chunk-GTF7DNNX": {
|
|
||||||
"file": "chunk-GTF7DNNX.js"
|
|
||||||
},
|
|
||||||
"chunk-6UYCW752": {
|
|
||||||
"file": "chunk-6UYCW752.js"
|
|
||||||
},
|
|
||||||
"chunk-YEHADEKF": {
|
|
||||||
"file": "chunk-YEHADEKF.js"
|
|
||||||
},
|
|
||||||
"chunk-HJJKWFHH": {
|
|
||||||
"file": "chunk-HJJKWFHH.js"
|
|
||||||
},
|
|
||||||
"chunk-HTKU3RA7": {
|
|
||||||
"file": "chunk-HTKU3RA7.js"
|
|
||||||
},
|
|
||||||
"chunk-JDYSANEB": {
|
|
||||||
"file": "chunk-JDYSANEB.js"
|
|
||||||
},
|
|
||||||
"chunk-SXRIVT2P": {
|
"chunk-SXRIVT2P": {
|
||||||
"file": "chunk-SXRIVT2P.js"
|
"file": "chunk-SXRIVT2P.js"
|
||||||
},
|
},
|
||||||
@@ -219,6 +228,9 @@
|
|||||||
"chunk-QCHXOAYK": {
|
"chunk-QCHXOAYK": {
|
||||||
"file": "chunk-QCHXOAYK.js"
|
"file": "chunk-QCHXOAYK.js"
|
||||||
},
|
},
|
||||||
|
"chunk-A55GUTZU": {
|
||||||
|
"file": "chunk-A55GUTZU.js"
|
||||||
|
},
|
||||||
"chunk-WOOG5QLI": {
|
"chunk-WOOG5QLI": {
|
||||||
"file": "chunk-WOOG5QLI.js"
|
"file": "chunk-WOOG5QLI.js"
|
||||||
}
|
}
|
||||||
|
|||||||
-1356
File diff suppressed because it is too large
Load Diff
-7
File diff suppressed because one or more lines are too long
-65
@@ -1,65 +0,0 @@
|
|||||||
import {
|
|
||||||
useLayoutEffect2
|
|
||||||
} from "./chunk-HTKU3RA7.js";
|
|
||||||
import {
|
|
||||||
require_react
|
|
||||||
} from "./chunk-QCHXOAYK.js";
|
|
||||||
import {
|
|
||||||
__toESM
|
|
||||||
} from "./chunk-WOOG5QLI.js";
|
|
||||||
|
|
||||||
// node_modules/@radix-ui/react-use-size/dist/index.mjs
|
|
||||||
var React = __toESM(require_react(), 1);
|
|
||||||
function useSize(element) {
|
|
||||||
const [size, setSize] = React.useState(void 0);
|
|
||||||
useLayoutEffect2(() => {
|
|
||||||
if (element) {
|
|
||||||
setSize({ width: element.offsetWidth, height: element.offsetHeight });
|
|
||||||
const resizeObserver = new ResizeObserver((entries) => {
|
|
||||||
if (!Array.isArray(entries)) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (!entries.length) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
const entry = entries[0];
|
|
||||||
let width;
|
|
||||||
let height;
|
|
||||||
if ("borderBoxSize" in entry) {
|
|
||||||
const borderSizeEntry = entry["borderBoxSize"];
|
|
||||||
const borderSize = Array.isArray(borderSizeEntry) ? borderSizeEntry[0] : borderSizeEntry;
|
|
||||||
width = borderSize["inlineSize"];
|
|
||||||
height = borderSize["blockSize"];
|
|
||||||
} else {
|
|
||||||
width = element.offsetWidth;
|
|
||||||
height = element.offsetHeight;
|
|
||||||
}
|
|
||||||
setSize({ width, height });
|
|
||||||
});
|
|
||||||
resizeObserver.observe(element, { box: "border-box" });
|
|
||||||
return () => resizeObserver.unobserve(element);
|
|
||||||
} else {
|
|
||||||
setSize(void 0);
|
|
||||||
}
|
|
||||||
}, [element]);
|
|
||||||
return size;
|
|
||||||
}
|
|
||||||
|
|
||||||
// node_modules/@radix-ui/react-use-previous/dist/index.mjs
|
|
||||||
var React2 = __toESM(require_react(), 1);
|
|
||||||
function usePrevious(value) {
|
|
||||||
const ref = React2.useRef({ value, previous: value });
|
|
||||||
return React2.useMemo(() => {
|
|
||||||
if (ref.current.value !== value) {
|
|
||||||
ref.current.previous = ref.current.value;
|
|
||||||
ref.current.value = value;
|
|
||||||
}
|
|
||||||
return ref.current.previous;
|
|
||||||
}, [value]);
|
|
||||||
}
|
|
||||||
|
|
||||||
export {
|
|
||||||
useSize,
|
|
||||||
usePrevious
|
|
||||||
};
|
|
||||||
//# sourceMappingURL=chunk-7EWB5V5P.js.map
|
|
||||||
-7
@@ -1,7 +0,0 @@
|
|||||||
{
|
|
||||||
"version": 3,
|
|
||||||
"sources": ["../../@radix-ui/react-use-size/src/use-size.tsx", "../../@radix-ui/react-use-previous/src/use-previous.tsx"],
|
|
||||||
"sourcesContent": ["/// <reference types=\"resize-observer-browser\" />\n\nimport * as React from 'react';\nimport { useLayoutEffect } from '@radix-ui/react-use-layout-effect';\n\nfunction useSize(element: HTMLElement | null) {\n const [size, setSize] = React.useState<{ width: number; height: number } | undefined>(undefined);\n\n useLayoutEffect(() => {\n if (element) {\n // provide size as early as possible\n setSize({ width: element.offsetWidth, height: element.offsetHeight });\n\n const resizeObserver = new ResizeObserver((entries) => {\n if (!Array.isArray(entries)) {\n return;\n }\n\n // Since we only observe the one element, we don't need to loop over the\n // array\n if (!entries.length) {\n return;\n }\n\n const entry = entries[0];\n let width: number;\n let height: number;\n\n if ('borderBoxSize' in entry) {\n const borderSizeEntry = entry['borderBoxSize'];\n // iron out differences between browsers\n const borderSize = Array.isArray(borderSizeEntry) ? borderSizeEntry[0] : borderSizeEntry;\n width = borderSize['inlineSize'];\n height = borderSize['blockSize'];\n } else {\n // for browsers that don't support `borderBoxSize`\n // we calculate it ourselves to get the correct border box.\n width = element.offsetWidth;\n height = element.offsetHeight;\n }\n\n setSize({ width, height });\n });\n\n resizeObserver.observe(element, { box: 'border-box' });\n\n return () => resizeObserver.unobserve(element);\n } else {\n // We only want to reset to `undefined` when the element becomes `null`,\n // not if it changes to another element.\n setSize(undefined);\n }\n }, [element]);\n\n return size;\n}\n\nexport { useSize };\n", "import * as React from 'react';\n\nfunction usePrevious<T>(value: T) {\n const ref = React.useRef({ value, previous: value });\n\n // We compare values before making an update to ensure that\n // a change has been made. This ensures the previous value is\n // persisted correctly between renders.\n return React.useMemo(() => {\n if (ref.current.value !== value) {\n ref.current.previous = ref.current.value;\n ref.current.value = value;\n }\n return ref.current.previous;\n }, [value]);\n}\n\nexport { usePrevious };\n"],
|
|
||||||
"mappings": ";;;;;;;;;;;AAEA,YAAuB;AAGvB,SAAS,QAAQ,SAA6B;AAC5C,QAAM,CAAC,MAAM,OAAO,IAAU,eAAwD,MAAS;AAE/F,mBAAgB,MAAM;AACpB,QAAI,SAAS;AAEX,cAAQ,EAAE,OAAO,QAAQ,aAAa,QAAQ,QAAQ,aAAa,CAAC;AAEpE,YAAM,iBAAiB,IAAI,eAAe,CAAC,YAAY;AACrD,YAAI,CAAC,MAAM,QAAQ,OAAO,GAAG;AAC3B;QACF;AAIA,YAAI,CAAC,QAAQ,QAAQ;AACnB;QACF;AAEA,cAAM,QAAQ,QAAQ,CAAC;AACvB,YAAI;AACJ,YAAI;AAEJ,YAAI,mBAAmB,OAAO;AAC5B,gBAAM,kBAAkB,MAAM,eAAe;AAE7C,gBAAM,aAAa,MAAM,QAAQ,eAAe,IAAI,gBAAgB,CAAC,IAAI;AACzE,kBAAQ,WAAW,YAAY;AAC/B,mBAAS,WAAW,WAAW;QACjC,OAAO;AAGL,kBAAQ,QAAQ;AAChB,mBAAS,QAAQ;QACnB;AAEA,gBAAQ,EAAE,OAAO,OAAO,CAAC;MAC3B,CAAC;AAED,qBAAe,QAAQ,SAAS,EAAE,KAAK,aAAa,CAAC;AAErD,aAAO,MAAM,eAAe,UAAU,OAAO;IAC/C,OAAO;AAGL,cAAQ,MAAS;IACnB;EACF,GAAG,CAAC,OAAO,CAAC;AAEZ,SAAO;AACT;;;ACvDA,IAAAA,SAAuB;AAEvB,SAAS,YAAe,OAAU;AAChC,QAAM,MAAY,cAAO,EAAE,OAAO,UAAU,MAAM,CAAC;AAKnD,SAAa,eAAQ,MAAM;AACzB,QAAI,IAAI,QAAQ,UAAU,OAAO;AAC/B,UAAI,QAAQ,WAAW,IAAI,QAAQ;AACnC,UAAI,QAAQ,QAAQ;IACtB;AACA,WAAO,IAAI,QAAQ;EACrB,GAAG,CAAC,KAAK,CAAC;AACZ;",
|
|
||||||
"names": ["React"]
|
|
||||||
}
|
|
||||||
-40
@@ -1,40 +0,0 @@
|
|||||||
import {
|
|
||||||
useLayoutEffect2
|
|
||||||
} from "./chunk-HTKU3RA7.js";
|
|
||||||
import {
|
|
||||||
require_react
|
|
||||||
} from "./chunk-QCHXOAYK.js";
|
|
||||||
import {
|
|
||||||
__toESM
|
|
||||||
} from "./chunk-WOOG5QLI.js";
|
|
||||||
|
|
||||||
// node_modules/@radix-ui/react-id/dist/index.mjs
|
|
||||||
var React = __toESM(require_react(), 1);
|
|
||||||
var useReactId = React[" useId ".trim().toString()] || (() => void 0);
|
|
||||||
var count = 0;
|
|
||||||
function useId(deterministicId) {
|
|
||||||
const [id, setId] = React.useState(useReactId());
|
|
||||||
useLayoutEffect2(() => {
|
|
||||||
if (!deterministicId) setId((reactId) => reactId ?? String(count++));
|
|
||||||
}, [deterministicId]);
|
|
||||||
return deterministicId || (id ? `radix-${id}` : "");
|
|
||||||
}
|
|
||||||
|
|
||||||
// node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs
|
|
||||||
var React2 = __toESM(require_react(), 1);
|
|
||||||
function useCallbackRef(callback) {
|
|
||||||
const callbackRef = React2.useRef(callback);
|
|
||||||
React2.useEffect(() => {
|
|
||||||
callbackRef.current = callback;
|
|
||||||
});
|
|
||||||
return React2.useMemo(() => (...args) => {
|
|
||||||
var _a;
|
|
||||||
return (_a = callbackRef.current) == null ? void 0 : _a.call(callbackRef, ...args);
|
|
||||||
}, []);
|
|
||||||
}
|
|
||||||
|
|
||||||
export {
|
|
||||||
useId,
|
|
||||||
useCallbackRef
|
|
||||||
};
|
|
||||||
//# sourceMappingURL=chunk-HJJKWFHH.js.map
|
|
||||||
-7
@@ -1,7 +0,0 @@
|
|||||||
{
|
|
||||||
"version": 3,
|
|
||||||
"sources": ["../../@radix-ui/react-id/src/id.tsx", "../../@radix-ui/react-use-callback-ref/src/use-callback-ref.tsx"],
|
|
||||||
"sourcesContent": ["import * as React from 'react';\nimport { useLayoutEffect } from '@radix-ui/react-use-layout-effect';\n\n// We spaces with `.trim().toString()` to prevent bundlers from trying to `import { useId } from 'react';`\nconst useReactId = (React as any)[' useId '.trim().toString()] || (() => undefined);\nlet count = 0;\n\nfunction useId(deterministicId?: string): string {\n const [id, setId] = React.useState<string | undefined>(useReactId());\n // React versions older than 18 will have client-side ids only.\n useLayoutEffect(() => {\n if (!deterministicId) setId((reactId) => reactId ?? String(count++));\n }, [deterministicId]);\n return deterministicId || (id ? `radix-${id}` : '');\n}\n\nexport { useId };\n", "import * as React from 'react';\n\n/**\n * A custom hook that converts a callback to a ref to avoid triggering re-renders when passed as a\n * prop or avoid re-executing effects when passed as a dependency\n */\nfunction useCallbackRef<T extends (...args: any[]) => any>(callback: T | undefined): T {\n const callbackRef = React.useRef(callback);\n\n React.useEffect(() => {\n callbackRef.current = callback;\n });\n\n // https://github.com/facebook/react/issues/19240\n return React.useMemo(() => ((...args) => callbackRef.current?.(...args)) as T, []);\n}\n\nexport { useCallbackRef };\n"],
|
|
||||||
"mappings": ";;;;;;;;;;;AAAA,YAAuB;AAIvB,IAAM,aAAc,MAAc,UAAU,KAAK,EAAE,SAAS,CAAC,MAAM,MAAM;AACzE,IAAI,QAAQ;AAEZ,SAAS,MAAM,iBAAkC;AAC/C,QAAM,CAAC,IAAI,KAAK,IAAU,eAA6B,WAAW,CAAC;AAEnE,mBAAgB,MAAM;AACpB,QAAI,CAAC,gBAAiB,OAAM,CAAC,YAAY,WAAW,OAAO,OAAO,CAAC;EACrE,GAAG,CAAC,eAAe,CAAC;AACpB,SAAO,oBAAoB,KAAK,SAAS,EAAE,KAAK;AAClD;;;ACdA,IAAAA,SAAuB;AAMvB,SAAS,eAAkD,UAA4B;AACrF,QAAM,cAAoB,cAAO,QAAQ;AAEnC,EAAA,iBAAU,MAAM;AACpB,gBAAY,UAAU;EACxB,CAAC;AAGD,SAAa,eAAQ,MAAO,IAAI,SAAA;;AAAS,6BAAY,YAAZ,qCAAsB,GAAG;KAAa,CAAC,CAAC;AACnF;",
|
|
||||||
"names": ["React"]
|
|
||||||
}
|
|
||||||
-336
@@ -1,336 +0,0 @@
|
|||||||
import {
|
|
||||||
composeRefs
|
|
||||||
} from "./chunk-JDYSANEB.js";
|
|
||||||
import {
|
|
||||||
require_react_dom
|
|
||||||
} from "./chunk-SXRIVT2P.js";
|
|
||||||
import {
|
|
||||||
require_jsx_runtime
|
|
||||||
} from "./chunk-KBTYAULA.js";
|
|
||||||
import {
|
|
||||||
require_react
|
|
||||||
} from "./chunk-QCHXOAYK.js";
|
|
||||||
import {
|
|
||||||
__toESM
|
|
||||||
} from "./chunk-WOOG5QLI.js";
|
|
||||||
|
|
||||||
// node_modules/@radix-ui/primitive/dist/index.mjs
|
|
||||||
var canUseDOM = !!(typeof window !== "undefined" && window.document && window.document.createElement);
|
|
||||||
function composeEventHandlers(originalEventHandler, ourEventHandler, { checkForDefaultPrevented = true } = {}) {
|
|
||||||
return function handleEvent(event) {
|
|
||||||
originalEventHandler == null ? void 0 : originalEventHandler(event);
|
|
||||||
if (checkForDefaultPrevented === false || !event.defaultPrevented) {
|
|
||||||
return ourEventHandler == null ? void 0 : ourEventHandler(event);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
// node_modules/@radix-ui/react-context/dist/index.mjs
|
|
||||||
var React = __toESM(require_react(), 1);
|
|
||||||
var import_jsx_runtime = __toESM(require_jsx_runtime(), 1);
|
|
||||||
function createContext2(rootComponentName, defaultContext) {
|
|
||||||
const Context = React.createContext(defaultContext);
|
|
||||||
const Provider = (props) => {
|
|
||||||
const { children, ...context } = props;
|
|
||||||
const value = React.useMemo(() => context, Object.values(context));
|
|
||||||
return (0, import_jsx_runtime.jsx)(Context.Provider, { value, children });
|
|
||||||
};
|
|
||||||
Provider.displayName = rootComponentName + "Provider";
|
|
||||||
function useContext2(consumerName) {
|
|
||||||
const context = React.useContext(Context);
|
|
||||||
if (context) return context;
|
|
||||||
if (defaultContext !== void 0) return defaultContext;
|
|
||||||
throw new Error(`\`${consumerName}\` must be used within \`${rootComponentName}\``);
|
|
||||||
}
|
|
||||||
return [Provider, useContext2];
|
|
||||||
}
|
|
||||||
function createContextScope(scopeName, createContextScopeDeps = []) {
|
|
||||||
let defaultContexts = [];
|
|
||||||
function createContext3(rootComponentName, defaultContext) {
|
|
||||||
const BaseContext = React.createContext(defaultContext);
|
|
||||||
const index = defaultContexts.length;
|
|
||||||
defaultContexts = [...defaultContexts, defaultContext];
|
|
||||||
const Provider = (props) => {
|
|
||||||
var _a;
|
|
||||||
const { scope, children, ...context } = props;
|
|
||||||
const Context = ((_a = scope == null ? void 0 : scope[scopeName]) == null ? void 0 : _a[index]) || BaseContext;
|
|
||||||
const value = React.useMemo(() => context, Object.values(context));
|
|
||||||
return (0, import_jsx_runtime.jsx)(Context.Provider, { value, children });
|
|
||||||
};
|
|
||||||
Provider.displayName = rootComponentName + "Provider";
|
|
||||||
function useContext2(consumerName, scope) {
|
|
||||||
var _a;
|
|
||||||
const Context = ((_a = scope == null ? void 0 : scope[scopeName]) == null ? void 0 : _a[index]) || BaseContext;
|
|
||||||
const context = React.useContext(Context);
|
|
||||||
if (context) return context;
|
|
||||||
if (defaultContext !== void 0) return defaultContext;
|
|
||||||
throw new Error(`\`${consumerName}\` must be used within \`${rootComponentName}\``);
|
|
||||||
}
|
|
||||||
return [Provider, useContext2];
|
|
||||||
}
|
|
||||||
const createScope = () => {
|
|
||||||
const scopeContexts = defaultContexts.map((defaultContext) => {
|
|
||||||
return React.createContext(defaultContext);
|
|
||||||
});
|
|
||||||
return function useScope(scope) {
|
|
||||||
const contexts = (scope == null ? void 0 : scope[scopeName]) || scopeContexts;
|
|
||||||
return React.useMemo(
|
|
||||||
() => ({ [`__scope${scopeName}`]: { ...scope, [scopeName]: contexts } }),
|
|
||||||
[scope, contexts]
|
|
||||||
);
|
|
||||||
};
|
|
||||||
};
|
|
||||||
createScope.scopeName = scopeName;
|
|
||||||
return [createContext3, composeContextScopes(createScope, ...createContextScopeDeps)];
|
|
||||||
}
|
|
||||||
function composeContextScopes(...scopes) {
|
|
||||||
const baseScope = scopes[0];
|
|
||||||
if (scopes.length === 1) return baseScope;
|
|
||||||
const createScope = () => {
|
|
||||||
const scopeHooks = scopes.map((createScope2) => ({
|
|
||||||
useScope: createScope2(),
|
|
||||||
scopeName: createScope2.scopeName
|
|
||||||
}));
|
|
||||||
return function useComposedScopes(overrideScopes) {
|
|
||||||
const nextScopes = scopeHooks.reduce((nextScopes2, { useScope, scopeName }) => {
|
|
||||||
const scopeProps = useScope(overrideScopes);
|
|
||||||
const currentScope = scopeProps[`__scope${scopeName}`];
|
|
||||||
return { ...nextScopes2, ...currentScope };
|
|
||||||
}, {});
|
|
||||||
return React.useMemo(() => ({ [`__scope${baseScope.scopeName}`]: nextScopes }), [nextScopes]);
|
|
||||||
};
|
|
||||||
};
|
|
||||||
createScope.scopeName = baseScope.scopeName;
|
|
||||||
return createScope;
|
|
||||||
}
|
|
||||||
|
|
||||||
// node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs
|
|
||||||
var React2 = __toESM(require_react(), 1);
|
|
||||||
var useLayoutEffect2 = (globalThis == null ? void 0 : globalThis.document) ? React2.useLayoutEffect : () => {
|
|
||||||
};
|
|
||||||
|
|
||||||
// node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs
|
|
||||||
var React4 = __toESM(require_react(), 1);
|
|
||||||
var React22 = __toESM(require_react(), 1);
|
|
||||||
|
|
||||||
// node_modules/@radix-ui/react-use-effect-event/dist/index.mjs
|
|
||||||
var React3 = __toESM(require_react(), 1);
|
|
||||||
var useReactEffectEvent = React3[" useEffectEvent ".trim().toString()];
|
|
||||||
var useReactInsertionEffect = React3[" useInsertionEffect ".trim().toString()];
|
|
||||||
|
|
||||||
// node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs
|
|
||||||
var useInsertionEffect = React4[" useInsertionEffect ".trim().toString()] || useLayoutEffect2;
|
|
||||||
function useControllableState({
|
|
||||||
prop,
|
|
||||||
defaultProp,
|
|
||||||
onChange = () => {
|
|
||||||
},
|
|
||||||
caller
|
|
||||||
}) {
|
|
||||||
const [uncontrolledProp, setUncontrolledProp, onChangeRef] = useUncontrolledState({
|
|
||||||
defaultProp,
|
|
||||||
onChange
|
|
||||||
});
|
|
||||||
const isControlled = prop !== void 0;
|
|
||||||
const value = isControlled ? prop : uncontrolledProp;
|
|
||||||
if (true) {
|
|
||||||
const isControlledRef = React4.useRef(prop !== void 0);
|
|
||||||
React4.useEffect(() => {
|
|
||||||
const wasControlled = isControlledRef.current;
|
|
||||||
if (wasControlled !== isControlled) {
|
|
||||||
const from = wasControlled ? "controlled" : "uncontrolled";
|
|
||||||
const to = isControlled ? "controlled" : "uncontrolled";
|
|
||||||
console.warn(
|
|
||||||
`${caller} is changing from ${from} to ${to}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`
|
|
||||||
);
|
|
||||||
}
|
|
||||||
isControlledRef.current = isControlled;
|
|
||||||
}, [isControlled, caller]);
|
|
||||||
}
|
|
||||||
const setValue = React4.useCallback(
|
|
||||||
(nextValue) => {
|
|
||||||
var _a;
|
|
||||||
if (isControlled) {
|
|
||||||
const value2 = isFunction(nextValue) ? nextValue(prop) : nextValue;
|
|
||||||
if (value2 !== prop) {
|
|
||||||
(_a = onChangeRef.current) == null ? void 0 : _a.call(onChangeRef, value2);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
setUncontrolledProp(nextValue);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
[isControlled, prop, setUncontrolledProp, onChangeRef]
|
|
||||||
);
|
|
||||||
return [value, setValue];
|
|
||||||
}
|
|
||||||
function useUncontrolledState({
|
|
||||||
defaultProp,
|
|
||||||
onChange
|
|
||||||
}) {
|
|
||||||
const [value, setValue] = React4.useState(defaultProp);
|
|
||||||
const prevValueRef = React4.useRef(value);
|
|
||||||
const onChangeRef = React4.useRef(onChange);
|
|
||||||
useInsertionEffect(() => {
|
|
||||||
onChangeRef.current = onChange;
|
|
||||||
}, [onChange]);
|
|
||||||
React4.useEffect(() => {
|
|
||||||
var _a;
|
|
||||||
if (prevValueRef.current !== value) {
|
|
||||||
(_a = onChangeRef.current) == null ? void 0 : _a.call(onChangeRef, value);
|
|
||||||
prevValueRef.current = value;
|
|
||||||
}
|
|
||||||
}, [value, prevValueRef]);
|
|
||||||
return [value, setValue, onChangeRef];
|
|
||||||
}
|
|
||||||
function isFunction(value) {
|
|
||||||
return typeof value === "function";
|
|
||||||
}
|
|
||||||
var SYNC_STATE = Symbol("RADIX:SYNC_STATE");
|
|
||||||
|
|
||||||
// node_modules/@radix-ui/react-primitive/dist/index.mjs
|
|
||||||
var React6 = __toESM(require_react(), 1);
|
|
||||||
var ReactDOM = __toESM(require_react_dom(), 1);
|
|
||||||
|
|
||||||
// node_modules/@radix-ui/react-primitive/node_modules/@radix-ui/react-slot/dist/index.mjs
|
|
||||||
var React5 = __toESM(require_react(), 1);
|
|
||||||
var import_jsx_runtime2 = __toESM(require_jsx_runtime(), 1);
|
|
||||||
function createSlot(ownerName) {
|
|
||||||
const SlotClone = createSlotClone(ownerName);
|
|
||||||
const Slot2 = React5.forwardRef((props, forwardedRef) => {
|
|
||||||
const { children, ...slotProps } = props;
|
|
||||||
const childrenArray = React5.Children.toArray(children);
|
|
||||||
const slottable = childrenArray.find(isSlottable);
|
|
||||||
if (slottable) {
|
|
||||||
const newElement = slottable.props.children;
|
|
||||||
const newChildren = childrenArray.map((child) => {
|
|
||||||
if (child === slottable) {
|
|
||||||
if (React5.Children.count(newElement) > 1) return React5.Children.only(null);
|
|
||||||
return React5.isValidElement(newElement) ? newElement.props.children : null;
|
|
||||||
} else {
|
|
||||||
return child;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
return (0, import_jsx_runtime2.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children: React5.isValidElement(newElement) ? React5.cloneElement(newElement, void 0, newChildren) : null });
|
|
||||||
}
|
|
||||||
return (0, import_jsx_runtime2.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children });
|
|
||||||
});
|
|
||||||
Slot2.displayName = `${ownerName}.Slot`;
|
|
||||||
return Slot2;
|
|
||||||
}
|
|
||||||
var Slot = createSlot("Slot");
|
|
||||||
function createSlotClone(ownerName) {
|
|
||||||
const SlotClone = React5.forwardRef((props, forwardedRef) => {
|
|
||||||
const { children, ...slotProps } = props;
|
|
||||||
if (React5.isValidElement(children)) {
|
|
||||||
const childrenRef = getElementRef(children);
|
|
||||||
const props2 = mergeProps(slotProps, children.props);
|
|
||||||
if (children.type !== React5.Fragment) {
|
|
||||||
props2.ref = forwardedRef ? composeRefs(forwardedRef, childrenRef) : childrenRef;
|
|
||||||
}
|
|
||||||
return React5.cloneElement(children, props2);
|
|
||||||
}
|
|
||||||
return React5.Children.count(children) > 1 ? React5.Children.only(null) : null;
|
|
||||||
});
|
|
||||||
SlotClone.displayName = `${ownerName}.SlotClone`;
|
|
||||||
return SlotClone;
|
|
||||||
}
|
|
||||||
var SLOTTABLE_IDENTIFIER = Symbol("radix.slottable");
|
|
||||||
function createSlottable(ownerName) {
|
|
||||||
const Slottable2 = ({ children }) => {
|
|
||||||
return (0, import_jsx_runtime2.jsx)(import_jsx_runtime2.Fragment, { children });
|
|
||||||
};
|
|
||||||
Slottable2.displayName = `${ownerName}.Slottable`;
|
|
||||||
Slottable2.__radixId = SLOTTABLE_IDENTIFIER;
|
|
||||||
return Slottable2;
|
|
||||||
}
|
|
||||||
var Slottable = createSlottable("Slottable");
|
|
||||||
function isSlottable(child) {
|
|
||||||
return React5.isValidElement(child) && typeof child.type === "function" && "__radixId" in child.type && child.type.__radixId === SLOTTABLE_IDENTIFIER;
|
|
||||||
}
|
|
||||||
function mergeProps(slotProps, childProps) {
|
|
||||||
const overrideProps = { ...childProps };
|
|
||||||
for (const propName in childProps) {
|
|
||||||
const slotPropValue = slotProps[propName];
|
|
||||||
const childPropValue = childProps[propName];
|
|
||||||
const isHandler = /^on[A-Z]/.test(propName);
|
|
||||||
if (isHandler) {
|
|
||||||
if (slotPropValue && childPropValue) {
|
|
||||||
overrideProps[propName] = (...args) => {
|
|
||||||
const result = childPropValue(...args);
|
|
||||||
slotPropValue(...args);
|
|
||||||
return result;
|
|
||||||
};
|
|
||||||
} else if (slotPropValue) {
|
|
||||||
overrideProps[propName] = slotPropValue;
|
|
||||||
}
|
|
||||||
} else if (propName === "style") {
|
|
||||||
overrideProps[propName] = { ...slotPropValue, ...childPropValue };
|
|
||||||
} else if (propName === "className") {
|
|
||||||
overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(" ");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return { ...slotProps, ...overrideProps };
|
|
||||||
}
|
|
||||||
function getElementRef(element) {
|
|
||||||
var _a, _b;
|
|
||||||
let getter = (_a = Object.getOwnPropertyDescriptor(element.props, "ref")) == null ? void 0 : _a.get;
|
|
||||||
let mayWarn = getter && "isReactWarning" in getter && getter.isReactWarning;
|
|
||||||
if (mayWarn) {
|
|
||||||
return element.ref;
|
|
||||||
}
|
|
||||||
getter = (_b = Object.getOwnPropertyDescriptor(element, "ref")) == null ? void 0 : _b.get;
|
|
||||||
mayWarn = getter && "isReactWarning" in getter && getter.isReactWarning;
|
|
||||||
if (mayWarn) {
|
|
||||||
return element.props.ref;
|
|
||||||
}
|
|
||||||
return element.props.ref || element.ref;
|
|
||||||
}
|
|
||||||
|
|
||||||
// node_modules/@radix-ui/react-primitive/dist/index.mjs
|
|
||||||
var import_jsx_runtime3 = __toESM(require_jsx_runtime(), 1);
|
|
||||||
var NODES = [
|
|
||||||
"a",
|
|
||||||
"button",
|
|
||||||
"div",
|
|
||||||
"form",
|
|
||||||
"h2",
|
|
||||||
"h3",
|
|
||||||
"img",
|
|
||||||
"input",
|
|
||||||
"label",
|
|
||||||
"li",
|
|
||||||
"nav",
|
|
||||||
"ol",
|
|
||||||
"p",
|
|
||||||
"select",
|
|
||||||
"span",
|
|
||||||
"svg",
|
|
||||||
"ul"
|
|
||||||
];
|
|
||||||
var Primitive = NODES.reduce((primitive, node) => {
|
|
||||||
const Slot2 = createSlot(`Primitive.${node}`);
|
|
||||||
const Node = React6.forwardRef((props, forwardedRef) => {
|
|
||||||
const { asChild, ...primitiveProps } = props;
|
|
||||||
const Comp = asChild ? Slot2 : node;
|
|
||||||
if (typeof window !== "undefined") {
|
|
||||||
window[Symbol.for("radix-ui")] = true;
|
|
||||||
}
|
|
||||||
return (0, import_jsx_runtime3.jsx)(Comp, { ...primitiveProps, ref: forwardedRef });
|
|
||||||
});
|
|
||||||
Node.displayName = `Primitive.${node}`;
|
|
||||||
return { ...primitive, [node]: Node };
|
|
||||||
}, {});
|
|
||||||
function dispatchDiscreteCustomEvent(target, event) {
|
|
||||||
if (target) ReactDOM.flushSync(() => target.dispatchEvent(event));
|
|
||||||
}
|
|
||||||
|
|
||||||
export {
|
|
||||||
composeEventHandlers,
|
|
||||||
createContext2,
|
|
||||||
createContextScope,
|
|
||||||
useLayoutEffect2,
|
|
||||||
useControllableState,
|
|
||||||
Primitive,
|
|
||||||
dispatchDiscreteCustomEvent
|
|
||||||
};
|
|
||||||
//# sourceMappingURL=chunk-HTKU3RA7.js.map
|
|
||||||
-7
File diff suppressed because one or more lines are too long
-144
@@ -1,144 +0,0 @@
|
|||||||
import {
|
|
||||||
useLayoutEffect2
|
|
||||||
} from "./chunk-HTKU3RA7.js";
|
|
||||||
import {
|
|
||||||
useComposedRefs
|
|
||||||
} from "./chunk-JDYSANEB.js";
|
|
||||||
import {
|
|
||||||
require_react
|
|
||||||
} from "./chunk-QCHXOAYK.js";
|
|
||||||
import {
|
|
||||||
__toESM
|
|
||||||
} from "./chunk-WOOG5QLI.js";
|
|
||||||
|
|
||||||
// node_modules/@radix-ui/react-presence/dist/index.mjs
|
|
||||||
var React2 = __toESM(require_react(), 1);
|
|
||||||
var React = __toESM(require_react(), 1);
|
|
||||||
function useStateMachine(initialState, machine) {
|
|
||||||
return React.useReducer((state, event) => {
|
|
||||||
const nextState = machine[state][event];
|
|
||||||
return nextState ?? state;
|
|
||||||
}, initialState);
|
|
||||||
}
|
|
||||||
var Presence = (props) => {
|
|
||||||
const { present, children } = props;
|
|
||||||
const presence = usePresence(present);
|
|
||||||
const child = typeof children === "function" ? children({ present: presence.isPresent }) : React2.Children.only(children);
|
|
||||||
const ref = useComposedRefs(presence.ref, getElementRef(child));
|
|
||||||
const forceMount = typeof children === "function";
|
|
||||||
return forceMount || presence.isPresent ? React2.cloneElement(child, { ref }) : null;
|
|
||||||
};
|
|
||||||
Presence.displayName = "Presence";
|
|
||||||
function usePresence(present) {
|
|
||||||
const [node, setNode] = React2.useState();
|
|
||||||
const stylesRef = React2.useRef(null);
|
|
||||||
const prevPresentRef = React2.useRef(present);
|
|
||||||
const prevAnimationNameRef = React2.useRef("none");
|
|
||||||
const initialState = present ? "mounted" : "unmounted";
|
|
||||||
const [state, send] = useStateMachine(initialState, {
|
|
||||||
mounted: {
|
|
||||||
UNMOUNT: "unmounted",
|
|
||||||
ANIMATION_OUT: "unmountSuspended"
|
|
||||||
},
|
|
||||||
unmountSuspended: {
|
|
||||||
MOUNT: "mounted",
|
|
||||||
ANIMATION_END: "unmounted"
|
|
||||||
},
|
|
||||||
unmounted: {
|
|
||||||
MOUNT: "mounted"
|
|
||||||
}
|
|
||||||
});
|
|
||||||
React2.useEffect(() => {
|
|
||||||
const currentAnimationName = getAnimationName(stylesRef.current);
|
|
||||||
prevAnimationNameRef.current = state === "mounted" ? currentAnimationName : "none";
|
|
||||||
}, [state]);
|
|
||||||
useLayoutEffect2(() => {
|
|
||||||
const styles = stylesRef.current;
|
|
||||||
const wasPresent = prevPresentRef.current;
|
|
||||||
const hasPresentChanged = wasPresent !== present;
|
|
||||||
if (hasPresentChanged) {
|
|
||||||
const prevAnimationName = prevAnimationNameRef.current;
|
|
||||||
const currentAnimationName = getAnimationName(styles);
|
|
||||||
if (present) {
|
|
||||||
send("MOUNT");
|
|
||||||
} else if (currentAnimationName === "none" || (styles == null ? void 0 : styles.display) === "none") {
|
|
||||||
send("UNMOUNT");
|
|
||||||
} else {
|
|
||||||
const isAnimating = prevAnimationName !== currentAnimationName;
|
|
||||||
if (wasPresent && isAnimating) {
|
|
||||||
send("ANIMATION_OUT");
|
|
||||||
} else {
|
|
||||||
send("UNMOUNT");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
prevPresentRef.current = present;
|
|
||||||
}
|
|
||||||
}, [present, send]);
|
|
||||||
useLayoutEffect2(() => {
|
|
||||||
if (node) {
|
|
||||||
let timeoutId;
|
|
||||||
const ownerWindow = node.ownerDocument.defaultView ?? window;
|
|
||||||
const handleAnimationEnd = (event) => {
|
|
||||||
const currentAnimationName = getAnimationName(stylesRef.current);
|
|
||||||
const isCurrentAnimation = currentAnimationName.includes(CSS.escape(event.animationName));
|
|
||||||
if (event.target === node && isCurrentAnimation) {
|
|
||||||
send("ANIMATION_END");
|
|
||||||
if (!prevPresentRef.current) {
|
|
||||||
const currentFillMode = node.style.animationFillMode;
|
|
||||||
node.style.animationFillMode = "forwards";
|
|
||||||
timeoutId = ownerWindow.setTimeout(() => {
|
|
||||||
if (node.style.animationFillMode === "forwards") {
|
|
||||||
node.style.animationFillMode = currentFillMode;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
const handleAnimationStart = (event) => {
|
|
||||||
if (event.target === node) {
|
|
||||||
prevAnimationNameRef.current = getAnimationName(stylesRef.current);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
node.addEventListener("animationstart", handleAnimationStart);
|
|
||||||
node.addEventListener("animationcancel", handleAnimationEnd);
|
|
||||||
node.addEventListener("animationend", handleAnimationEnd);
|
|
||||||
return () => {
|
|
||||||
ownerWindow.clearTimeout(timeoutId);
|
|
||||||
node.removeEventListener("animationstart", handleAnimationStart);
|
|
||||||
node.removeEventListener("animationcancel", handleAnimationEnd);
|
|
||||||
node.removeEventListener("animationend", handleAnimationEnd);
|
|
||||||
};
|
|
||||||
} else {
|
|
||||||
send("ANIMATION_END");
|
|
||||||
}
|
|
||||||
}, [node, send]);
|
|
||||||
return {
|
|
||||||
isPresent: ["mounted", "unmountSuspended"].includes(state),
|
|
||||||
ref: React2.useCallback((node2) => {
|
|
||||||
stylesRef.current = node2 ? getComputedStyle(node2) : null;
|
|
||||||
setNode(node2);
|
|
||||||
}, [])
|
|
||||||
};
|
|
||||||
}
|
|
||||||
function getAnimationName(styles) {
|
|
||||||
return (styles == null ? void 0 : styles.animationName) || "none";
|
|
||||||
}
|
|
||||||
function getElementRef(element) {
|
|
||||||
var _a, _b;
|
|
||||||
let getter = (_a = Object.getOwnPropertyDescriptor(element.props, "ref")) == null ? void 0 : _a.get;
|
|
||||||
let mayWarn = getter && "isReactWarning" in getter && getter.isReactWarning;
|
|
||||||
if (mayWarn) {
|
|
||||||
return element.ref;
|
|
||||||
}
|
|
||||||
getter = (_b = Object.getOwnPropertyDescriptor(element, "ref")) == null ? void 0 : _b.get;
|
|
||||||
mayWarn = getter && "isReactWarning" in getter && getter.isReactWarning;
|
|
||||||
if (mayWarn) {
|
|
||||||
return element.props.ref;
|
|
||||||
}
|
|
||||||
return element.props.ref || element.ref;
|
|
||||||
}
|
|
||||||
|
|
||||||
export {
|
|
||||||
Presence
|
|
||||||
};
|
|
||||||
//# sourceMappingURL=chunk-YEHADEKF.js.map
|
|
||||||
-7
File diff suppressed because one or more lines are too long
-196
@@ -1,196 +0,0 @@
|
|||||||
import {
|
|
||||||
createContextScope
|
|
||||||
} from "./chunk-HTKU3RA7.js";
|
|
||||||
import {
|
|
||||||
composeRefs,
|
|
||||||
useComposedRefs
|
|
||||||
} from "./chunk-JDYSANEB.js";
|
|
||||||
import {
|
|
||||||
require_jsx_runtime
|
|
||||||
} from "./chunk-KBTYAULA.js";
|
|
||||||
import {
|
|
||||||
require_react
|
|
||||||
} from "./chunk-QCHXOAYK.js";
|
|
||||||
import {
|
|
||||||
__toESM
|
|
||||||
} from "./chunk-WOOG5QLI.js";
|
|
||||||
|
|
||||||
// node_modules/@radix-ui/react-collection/dist/index.mjs
|
|
||||||
var import_react = __toESM(require_react(), 1);
|
|
||||||
|
|
||||||
// node_modules/@radix-ui/react-collection/node_modules/@radix-ui/react-slot/dist/index.mjs
|
|
||||||
var React = __toESM(require_react(), 1);
|
|
||||||
var import_jsx_runtime = __toESM(require_jsx_runtime(), 1);
|
|
||||||
function createSlot(ownerName) {
|
|
||||||
const SlotClone = createSlotClone(ownerName);
|
|
||||||
const Slot2 = React.forwardRef((props, forwardedRef) => {
|
|
||||||
const { children, ...slotProps } = props;
|
|
||||||
const childrenArray = React.Children.toArray(children);
|
|
||||||
const slottable = childrenArray.find(isSlottable);
|
|
||||||
if (slottable) {
|
|
||||||
const newElement = slottable.props.children;
|
|
||||||
const newChildren = childrenArray.map((child) => {
|
|
||||||
if (child === slottable) {
|
|
||||||
if (React.Children.count(newElement) > 1) return React.Children.only(null);
|
|
||||||
return React.isValidElement(newElement) ? newElement.props.children : null;
|
|
||||||
} else {
|
|
||||||
return child;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
return (0, import_jsx_runtime.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children: React.isValidElement(newElement) ? React.cloneElement(newElement, void 0, newChildren) : null });
|
|
||||||
}
|
|
||||||
return (0, import_jsx_runtime.jsx)(SlotClone, { ...slotProps, ref: forwardedRef, children });
|
|
||||||
});
|
|
||||||
Slot2.displayName = `${ownerName}.Slot`;
|
|
||||||
return Slot2;
|
|
||||||
}
|
|
||||||
var Slot = createSlot("Slot");
|
|
||||||
function createSlotClone(ownerName) {
|
|
||||||
const SlotClone = React.forwardRef((props, forwardedRef) => {
|
|
||||||
const { children, ...slotProps } = props;
|
|
||||||
if (React.isValidElement(children)) {
|
|
||||||
const childrenRef = getElementRef(children);
|
|
||||||
const props2 = mergeProps(slotProps, children.props);
|
|
||||||
if (children.type !== React.Fragment) {
|
|
||||||
props2.ref = forwardedRef ? composeRefs(forwardedRef, childrenRef) : childrenRef;
|
|
||||||
}
|
|
||||||
return React.cloneElement(children, props2);
|
|
||||||
}
|
|
||||||
return React.Children.count(children) > 1 ? React.Children.only(null) : null;
|
|
||||||
});
|
|
||||||
SlotClone.displayName = `${ownerName}.SlotClone`;
|
|
||||||
return SlotClone;
|
|
||||||
}
|
|
||||||
var SLOTTABLE_IDENTIFIER = Symbol("radix.slottable");
|
|
||||||
function createSlottable(ownerName) {
|
|
||||||
const Slottable2 = ({ children }) => {
|
|
||||||
return (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, { children });
|
|
||||||
};
|
|
||||||
Slottable2.displayName = `${ownerName}.Slottable`;
|
|
||||||
Slottable2.__radixId = SLOTTABLE_IDENTIFIER;
|
|
||||||
return Slottable2;
|
|
||||||
}
|
|
||||||
var Slottable = createSlottable("Slottable");
|
|
||||||
function isSlottable(child) {
|
|
||||||
return React.isValidElement(child) && typeof child.type === "function" && "__radixId" in child.type && child.type.__radixId === SLOTTABLE_IDENTIFIER;
|
|
||||||
}
|
|
||||||
function mergeProps(slotProps, childProps) {
|
|
||||||
const overrideProps = { ...childProps };
|
|
||||||
for (const propName in childProps) {
|
|
||||||
const slotPropValue = slotProps[propName];
|
|
||||||
const childPropValue = childProps[propName];
|
|
||||||
const isHandler = /^on[A-Z]/.test(propName);
|
|
||||||
if (isHandler) {
|
|
||||||
if (slotPropValue && childPropValue) {
|
|
||||||
overrideProps[propName] = (...args) => {
|
|
||||||
const result = childPropValue(...args);
|
|
||||||
slotPropValue(...args);
|
|
||||||
return result;
|
|
||||||
};
|
|
||||||
} else if (slotPropValue) {
|
|
||||||
overrideProps[propName] = slotPropValue;
|
|
||||||
}
|
|
||||||
} else if (propName === "style") {
|
|
||||||
overrideProps[propName] = { ...slotPropValue, ...childPropValue };
|
|
||||||
} else if (propName === "className") {
|
|
||||||
overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(" ");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return { ...slotProps, ...overrideProps };
|
|
||||||
}
|
|
||||||
function getElementRef(element) {
|
|
||||||
var _a, _b;
|
|
||||||
let getter = (_a = Object.getOwnPropertyDescriptor(element.props, "ref")) == null ? void 0 : _a.get;
|
|
||||||
let mayWarn = getter && "isReactWarning" in getter && getter.isReactWarning;
|
|
||||||
if (mayWarn) {
|
|
||||||
return element.ref;
|
|
||||||
}
|
|
||||||
getter = (_b = Object.getOwnPropertyDescriptor(element, "ref")) == null ? void 0 : _b.get;
|
|
||||||
mayWarn = getter && "isReactWarning" in getter && getter.isReactWarning;
|
|
||||||
if (mayWarn) {
|
|
||||||
return element.props.ref;
|
|
||||||
}
|
|
||||||
return element.props.ref || element.ref;
|
|
||||||
}
|
|
||||||
|
|
||||||
// node_modules/@radix-ui/react-collection/dist/index.mjs
|
|
||||||
var import_jsx_runtime2 = __toESM(require_jsx_runtime(), 1);
|
|
||||||
var import_react2 = __toESM(require_react(), 1);
|
|
||||||
var import_jsx_runtime3 = __toESM(require_jsx_runtime(), 1);
|
|
||||||
function createCollection(name) {
|
|
||||||
const PROVIDER_NAME = name + "CollectionProvider";
|
|
||||||
const [createCollectionContext, createCollectionScope] = createContextScope(PROVIDER_NAME);
|
|
||||||
const [CollectionProviderImpl, useCollectionContext] = createCollectionContext(
|
|
||||||
PROVIDER_NAME,
|
|
||||||
{ collectionRef: { current: null }, itemMap: /* @__PURE__ */ new Map() }
|
|
||||||
);
|
|
||||||
const CollectionProvider = (props) => {
|
|
||||||
const { scope, children } = props;
|
|
||||||
const ref = import_react.default.useRef(null);
|
|
||||||
const itemMap = import_react.default.useRef(/* @__PURE__ */ new Map()).current;
|
|
||||||
return (0, import_jsx_runtime2.jsx)(CollectionProviderImpl, { scope, itemMap, collectionRef: ref, children });
|
|
||||||
};
|
|
||||||
CollectionProvider.displayName = PROVIDER_NAME;
|
|
||||||
const COLLECTION_SLOT_NAME = name + "CollectionSlot";
|
|
||||||
const CollectionSlotImpl = createSlot(COLLECTION_SLOT_NAME);
|
|
||||||
const CollectionSlot = import_react.default.forwardRef(
|
|
||||||
(props, forwardedRef) => {
|
|
||||||
const { scope, children } = props;
|
|
||||||
const context = useCollectionContext(COLLECTION_SLOT_NAME, scope);
|
|
||||||
const composedRefs = useComposedRefs(forwardedRef, context.collectionRef);
|
|
||||||
return (0, import_jsx_runtime2.jsx)(CollectionSlotImpl, { ref: composedRefs, children });
|
|
||||||
}
|
|
||||||
);
|
|
||||||
CollectionSlot.displayName = COLLECTION_SLOT_NAME;
|
|
||||||
const ITEM_SLOT_NAME = name + "CollectionItemSlot";
|
|
||||||
const ITEM_DATA_ATTR = "data-radix-collection-item";
|
|
||||||
const CollectionItemSlotImpl = createSlot(ITEM_SLOT_NAME);
|
|
||||||
const CollectionItemSlot = import_react.default.forwardRef(
|
|
||||||
(props, forwardedRef) => {
|
|
||||||
const { scope, children, ...itemData } = props;
|
|
||||||
const ref = import_react.default.useRef(null);
|
|
||||||
const composedRefs = useComposedRefs(forwardedRef, ref);
|
|
||||||
const context = useCollectionContext(ITEM_SLOT_NAME, scope);
|
|
||||||
import_react.default.useEffect(() => {
|
|
||||||
context.itemMap.set(ref, { ref, ...itemData });
|
|
||||||
return () => void context.itemMap.delete(ref);
|
|
||||||
});
|
|
||||||
return (0, import_jsx_runtime2.jsx)(CollectionItemSlotImpl, { ...{ [ITEM_DATA_ATTR]: "" }, ref: composedRefs, children });
|
|
||||||
}
|
|
||||||
);
|
|
||||||
CollectionItemSlot.displayName = ITEM_SLOT_NAME;
|
|
||||||
function useCollection(scope) {
|
|
||||||
const context = useCollectionContext(name + "CollectionConsumer", scope);
|
|
||||||
const getItems = import_react.default.useCallback(() => {
|
|
||||||
const collectionNode = context.collectionRef.current;
|
|
||||||
if (!collectionNode) return [];
|
|
||||||
const orderedNodes = Array.from(collectionNode.querySelectorAll(`[${ITEM_DATA_ATTR}]`));
|
|
||||||
const items = Array.from(context.itemMap.values());
|
|
||||||
const orderedItems = items.sort(
|
|
||||||
(a, b) => orderedNodes.indexOf(a.ref.current) - orderedNodes.indexOf(b.ref.current)
|
|
||||||
);
|
|
||||||
return orderedItems;
|
|
||||||
}, [context.collectionRef, context.itemMap]);
|
|
||||||
return getItems;
|
|
||||||
}
|
|
||||||
return [
|
|
||||||
{ Provider: CollectionProvider, Slot: CollectionSlot, ItemSlot: CollectionItemSlot },
|
|
||||||
useCollection,
|
|
||||||
createCollectionScope
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
// node_modules/@radix-ui/react-direction/dist/index.mjs
|
|
||||||
var React3 = __toESM(require_react(), 1);
|
|
||||||
var import_jsx_runtime4 = __toESM(require_jsx_runtime(), 1);
|
|
||||||
var DirectionContext = React3.createContext(void 0);
|
|
||||||
function useDirection(localDir) {
|
|
||||||
const globalDir = React3.useContext(DirectionContext);
|
|
||||||
return localDir || globalDir || "ltr";
|
|
||||||
}
|
|
||||||
|
|
||||||
export {
|
|
||||||
createCollection,
|
|
||||||
useDirection
|
|
||||||
};
|
|
||||||
//# sourceMappingURL=chunk-Z5TL6HO7.js.map
|
|
||||||
-7
File diff suppressed because one or more lines are too long
Generated
Vendored
BIN
Binary file not shown.
Generated
Vendored
BIN
Binary file not shown.
Generated
Vendored
+3
-3
@@ -1,3 +1,3 @@
|
|||||||
#Mon Feb 23 02:25:57 WIB 2026
|
#Mon Mar 02 09:46:41 WIB 2026
|
||||||
com.getcapacitor.android.capacitor-android-main-6\:/layout/capacitor_bridge_layout_main.xml=/Users/fauzgabriel/Downloads/pertanian-app/node_modules/@capacitor/android/capacitor/build/intermediates/packaged_res/debug/packageDebugResources/layout/capacitor_bridge_layout_main.xml
|
com.getcapacitor.android.capacitor-android-main-6\:/layout/capacitor_bridge_layout_main.xml=/Users/fauzgabriel/development/pertanian-app/node_modules/@capacitor/android/capacitor/build/intermediates/packaged_res/debug/packageDebugResources/layout/capacitor_bridge_layout_main.xml
|
||||||
com.getcapacitor.android.capacitor-android-main-6\:/layout/no_webview.xml=/Users/fauzgabriel/Downloads/pertanian-app/node_modules/@capacitor/android/capacitor/build/intermediates/packaged_res/debug/packageDebugResources/layout/no_webview.xml
|
com.getcapacitor.android.capacitor-android-main-6\:/layout/no_webview.xml=/Users/fauzgabriel/development/pertanian-app/node_modules/@capacitor/android/capacitor/build/intermediates/packaged_res/debug/packageDebugResources/layout/no_webview.xml
|
||||||
|
|||||||
Generated
Vendored
+2
-2
@@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<merger version="3" xmlns:ns1="http://schemas.android.com/tools"><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="main$Generated" generated="true" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/fauzgabriel/Downloads/pertanian-app/node_modules/@capacitor/android/capacitor/src/main/res"/></dataSet><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="main" generated-set="main$Generated" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~:!<dir>navigation"><source path="/Users/fauzgabriel/Downloads/pertanian-app/node_modules/@capacitor/android/capacitor/src/main/res"><file name="capacitor_bridge_layout_main" path="/Users/fauzgabriel/Downloads/pertanian-app/node_modules/@capacitor/android/capacitor/src/main/res/layout/capacitor_bridge_layout_main.xml" qualifiers="" type="layout"/><file name="no_webview" path="/Users/fauzgabriel/Downloads/pertanian-app/node_modules/@capacitor/android/capacitor/src/main/res/layout/no_webview.xml" qualifiers="" type="layout"/><file path="/Users/fauzgabriel/Downloads/pertanian-app/node_modules/@capacitor/android/capacitor/src/main/res/values/colors.xml" qualifiers=""><color name="colorPrimary" ns1:ignore="UnusedResources">#3F51B5</color><color name="colorPrimaryDark" ns1:ignore="UnusedResources">#303F9F</color><color name="colorAccent" ns1:ignore="UnusedResources">#FF4081</color></file><file path="/Users/fauzgabriel/Downloads/pertanian-app/node_modules/@capacitor/android/capacitor/src/main/res/values/styles.xml" qualifiers=""><style name="AppTheme.NoActionBar" parent="Theme.AppCompat.NoActionBar">
|
<merger version="3" xmlns:ns1="http://schemas.android.com/tools"><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="main$Generated" generated="true" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/fauzgabriel/development/pertanian-app/node_modules/@capacitor/android/capacitor/src/main/res"/></dataSet><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="main" generated-set="main$Generated" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~:!<dir>navigation"><source path="/Users/fauzgabriel/development/pertanian-app/node_modules/@capacitor/android/capacitor/src/main/res"><file name="capacitor_bridge_layout_main" path="/Users/fauzgabriel/development/pertanian-app/node_modules/@capacitor/android/capacitor/src/main/res/layout/capacitor_bridge_layout_main.xml" qualifiers="" type="layout"/><file name="no_webview" path="/Users/fauzgabriel/development/pertanian-app/node_modules/@capacitor/android/capacitor/src/main/res/layout/no_webview.xml" qualifiers="" type="layout"/><file path="/Users/fauzgabriel/development/pertanian-app/node_modules/@capacitor/android/capacitor/src/main/res/values/colors.xml" qualifiers=""><color name="colorPrimary" ns1:ignore="UnusedResources">#3F51B5</color><color name="colorPrimaryDark" ns1:ignore="UnusedResources">#303F9F</color><color name="colorAccent" ns1:ignore="UnusedResources">#FF4081</color></file><file path="/Users/fauzgabriel/development/pertanian-app/node_modules/@capacitor/android/capacitor/src/main/res/values/styles.xml" qualifiers=""><style name="AppTheme.NoActionBar" parent="Theme.AppCompat.NoActionBar">
|
||||||
<item name="windowActionBar">false</item>
|
<item name="windowActionBar">false</item>
|
||||||
<item name="windowNoTitle">true</item>
|
<item name="windowNoTitle">true</item>
|
||||||
</style></file><file path="/Users/fauzgabriel/Downloads/pertanian-app/node_modules/@capacitor/android/capacitor/src/main/res/values/strings.xml" qualifiers=""><string name="no_webview_text">This app requires a WebView to work</string></file></source></dataSet><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="debug$Generated" generated="true" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/fauzgabriel/Downloads/pertanian-app/node_modules/@capacitor/android/capacitor/src/debug/res"/></dataSet><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="debug" generated-set="debug$Generated" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~:!<dir>navigation"><source path="/Users/fauzgabriel/Downloads/pertanian-app/node_modules/@capacitor/android/capacitor/src/debug/res"/></dataSet><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="generated$Generated" generated="true" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/fauzgabriel/Downloads/pertanian-app/node_modules/@capacitor/android/capacitor/build/generated/res/resValues/debug"/></dataSet><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="generated" generated-set="generated$Generated" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~:!<dir>navigation"><source path="/Users/fauzgabriel/Downloads/pertanian-app/node_modules/@capacitor/android/capacitor/build/generated/res/resValues/debug"/></dataSet><mergedItems/></merger>
|
</style></file><file path="/Users/fauzgabriel/development/pertanian-app/node_modules/@capacitor/android/capacitor/src/main/res/values/strings.xml" qualifiers=""><string name="no_webview_text">This app requires a WebView to work</string></file></source></dataSet><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="debug$Generated" generated="true" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/fauzgabriel/development/pertanian-app/node_modules/@capacitor/android/capacitor/src/debug/res"/></dataSet><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="debug" generated-set="debug$Generated" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~:!<dir>navigation"><source path="/Users/fauzgabriel/development/pertanian-app/node_modules/@capacitor/android/capacitor/src/debug/res"/></dataSet><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="generated$Generated" generated="true" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/fauzgabriel/development/pertanian-app/node_modules/@capacitor/android/capacitor/build/generated/res/resValues/debug"/></dataSet><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="generated" generated-set="generated$Generated" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~:!<dir>navigation"><source path="/Users/fauzgabriel/development/pertanian-app/node_modules/@capacitor/android/capacitor/build/generated/res/resValues/debug"/></dataSet><mergedItems/></merger>
|
||||||
Generated
Vendored
+1
-1
@@ -1,2 +1,2 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<merger version="3"><dataSet config="main" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/fauzgabriel/Downloads/pertanian-app/node_modules/@capacitor/android/capacitor/src/main/assets"><file name="native-bridge.js" path="/Users/fauzgabriel/Downloads/pertanian-app/node_modules/@capacitor/android/capacitor/src/main/assets/native-bridge.js"/></source></dataSet><dataSet config="debug" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/fauzgabriel/Downloads/pertanian-app/node_modules/@capacitor/android/capacitor/src/debug/assets"/></dataSet><dataSet config="generated" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/fauzgabriel/Downloads/pertanian-app/node_modules/@capacitor/android/capacitor/build/intermediates/shader_assets/debug/compileDebugShaders/out"/></dataSet></merger>
|
<merger version="3"><dataSet config="main" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/fauzgabriel/development/pertanian-app/node_modules/@capacitor/android/capacitor/src/main/assets"><file name="native-bridge.js" path="/Users/fauzgabriel/development/pertanian-app/node_modules/@capacitor/android/capacitor/src/main/assets/native-bridge.js"/></source></dataSet><dataSet config="debug" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/fauzgabriel/development/pertanian-app/node_modules/@capacitor/android/capacitor/src/debug/assets"/></dataSet><dataSet config="generated" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/fauzgabriel/development/pertanian-app/node_modules/@capacitor/android/capacitor/build/intermediates/shader_assets/debug/compileDebugShaders/out"/></dataSet></merger>
|
||||||
Generated
Vendored
+1
-1
@@ -1,2 +1,2 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<merger version="3"><dataSet config="main" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/fauzgabriel/Downloads/pertanian-app/node_modules/@capacitor/android/capacitor/src/main/jniLibs"/></dataSet><dataSet config="debug" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/fauzgabriel/Downloads/pertanian-app/node_modules/@capacitor/android/capacitor/src/debug/jniLibs"/></dataSet></merger>
|
<merger version="3"><dataSet config="main" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/fauzgabriel/development/pertanian-app/node_modules/@capacitor/android/capacitor/src/main/jniLibs"/></dataSet><dataSet config="debug" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/fauzgabriel/development/pertanian-app/node_modules/@capacitor/android/capacitor/src/debug/jniLibs"/></dataSet></merger>
|
||||||
Generated
Vendored
+1
-1
@@ -1,2 +1,2 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<merger version="3"><dataSet config="main" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/fauzgabriel/Downloads/pertanian-app/node_modules/@capacitor/android/capacitor/src/main/shaders"/></dataSet><dataSet config="debug" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/fauzgabriel/Downloads/pertanian-app/node_modules/@capacitor/android/capacitor/src/debug/shaders"/></dataSet></merger>
|
<merger version="3"><dataSet config="main" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/fauzgabriel/development/pertanian-app/node_modules/@capacitor/android/capacitor/src/main/shaders"/></dataSet><dataSet config="debug" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/fauzgabriel/development/pertanian-app/node_modules/@capacitor/android/capacitor/src/debug/shaders"/></dataSet></merger>
|
||||||
Generated
Vendored
+9
-9
@@ -1,16 +1,16 @@
|
|||||||
-- Merging decision tree log ---
|
-- Merging decision tree log ---
|
||||||
manifest
|
manifest
|
||||||
ADDED from /Users/fauzgabriel/Downloads/pertanian-app/node_modules/@capacitor/android/capacitor/src/main/AndroidManifest.xml:2:1-3:12
|
ADDED from /Users/fauzgabriel/development/pertanian-app/node_modules/@capacitor/android/capacitor/src/main/AndroidManifest.xml:2:1-3:12
|
||||||
INJECTED from /Users/fauzgabriel/Downloads/pertanian-app/node_modules/@capacitor/android/capacitor/src/main/AndroidManifest.xml:2:1-3:12
|
INJECTED from /Users/fauzgabriel/development/pertanian-app/node_modules/@capacitor/android/capacitor/src/main/AndroidManifest.xml:2:1-3:12
|
||||||
package
|
package
|
||||||
INJECTED from /Users/fauzgabriel/Downloads/pertanian-app/node_modules/@capacitor/android/capacitor/src/main/AndroidManifest.xml
|
INJECTED from /Users/fauzgabriel/development/pertanian-app/node_modules/@capacitor/android/capacitor/src/main/AndroidManifest.xml
|
||||||
xmlns:android
|
xmlns:android
|
||||||
ADDED from /Users/fauzgabriel/Downloads/pertanian-app/node_modules/@capacitor/android/capacitor/src/main/AndroidManifest.xml:2:11-69
|
ADDED from /Users/fauzgabriel/development/pertanian-app/node_modules/@capacitor/android/capacitor/src/main/AndroidManifest.xml:2:11-69
|
||||||
uses-sdk
|
uses-sdk
|
||||||
INJECTED from /Users/fauzgabriel/Downloads/pertanian-app/node_modules/@capacitor/android/capacitor/src/main/AndroidManifest.xml reason: use-sdk injection requested
|
INJECTED from /Users/fauzgabriel/development/pertanian-app/node_modules/@capacitor/android/capacitor/src/main/AndroidManifest.xml reason: use-sdk injection requested
|
||||||
INJECTED from /Users/fauzgabriel/Downloads/pertanian-app/node_modules/@capacitor/android/capacitor/src/main/AndroidManifest.xml
|
INJECTED from /Users/fauzgabriel/development/pertanian-app/node_modules/@capacitor/android/capacitor/src/main/AndroidManifest.xml
|
||||||
INJECTED from /Users/fauzgabriel/Downloads/pertanian-app/node_modules/@capacitor/android/capacitor/src/main/AndroidManifest.xml
|
INJECTED from /Users/fauzgabriel/development/pertanian-app/node_modules/@capacitor/android/capacitor/src/main/AndroidManifest.xml
|
||||||
android:targetSdkVersion
|
android:targetSdkVersion
|
||||||
INJECTED from /Users/fauzgabriel/Downloads/pertanian-app/node_modules/@capacitor/android/capacitor/src/main/AndroidManifest.xml
|
INJECTED from /Users/fauzgabriel/development/pertanian-app/node_modules/@capacitor/android/capacitor/src/main/AndroidManifest.xml
|
||||||
android:minSdkVersion
|
android:minSdkVersion
|
||||||
INJECTED from /Users/fauzgabriel/Downloads/pertanian-app/node_modules/@capacitor/android/capacitor/src/main/AndroidManifest.xml
|
INJECTED from /Users/fauzgabriel/development/pertanian-app/node_modules/@capacitor/android/capacitor/src/main/AndroidManifest.xml
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
import { initDB, persistDB } from '../../utils/sqlClient';
|
import { initDB, persistDB } from '../../utils/sqlClient';
|
||||||
import { db } from '../../utils/db';
|
import { db } from '../../utils/db';
|
||||||
|
import { toArray } from 'lodash';
|
||||||
|
|
||||||
export const isOnline = () => navigator.onLine;
|
export const isOnline = () => navigator.onLine;
|
||||||
|
|
||||||
@@ -16,9 +17,10 @@ export const OfflineService = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
try {
|
try {
|
||||||
// Simpan objek JSON langsung ke IndexedDB
|
// update first
|
||||||
await db[table].put(record);
|
await db[table].put(record);
|
||||||
// Tambahkan ke antrean sinkronisasi
|
|
||||||
|
// gonna insert
|
||||||
await db.pending_sync.add({
|
await db.pending_sync.add({
|
||||||
id: `q_${Date.now()}`,
|
id: `q_${Date.now()}`,
|
||||||
entity_type: entityType,
|
entity_type: entityType,
|
||||||
@@ -35,9 +37,8 @@ export const OfflineService = {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
getEntities: async (entityType, filter = {}) => { // Tambahkan default value {}
|
getEntities: async (entityType, filter = {}) => {
|
||||||
try {
|
try {
|
||||||
// 1. Validasi Nama Tabel
|
|
||||||
if (!entityType) return [];
|
if (!entityType) return [];
|
||||||
const table = entityType.toLowerCase().endsWith('s')
|
const table = entityType.toLowerCase().endsWith('s')
|
||||||
? entityType.toLowerCase()
|
? entityType.toLowerCase()
|
||||||
@@ -49,14 +50,21 @@ export const OfflineService = {
|
|||||||
return [];
|
return [];
|
||||||
}
|
}
|
||||||
|
|
||||||
// 2. Cek apakah ada filter yang valid
|
const invalidData = await dbTable.filter(
|
||||||
// Pastikan filter bukan null/undefined dan punya isi
|
item => !item.nik || item.nik === ''
|
||||||
|
).toArray();
|
||||||
|
|
||||||
|
if(invalidData.length > 0){
|
||||||
|
const idsToDelete = invalidData.map(d => d.id);
|
||||||
|
await dbTable.bulkDelete(idsToDelete);
|
||||||
|
console.log(`🧹 Cleanup: Menghapus ${invalidData.length} data tanpa NIK dari ${table}`);
|
||||||
|
}
|
||||||
|
|
||||||
if (filter && typeof filter === 'object' && Object.keys(filter).length > 0) {
|
if (filter && typeof filter === 'object' && Object.keys(filter).length > 0) {
|
||||||
console.log(`🔍 Fetching ${table} with filter:`, filter);
|
console.log(`🔍 Fetching ${table} with filter:`, filter);
|
||||||
return await dbTable.where(filter).toArray();
|
return await dbTable.where(filter).toArray();
|
||||||
}
|
}
|
||||||
|
|
||||||
// 3. Jika tidak ada filter, ambil semua (Urutkan terbaru)
|
|
||||||
console.log(`🔍 Fetching all from ${table}`);
|
console.log(`🔍 Fetching all from ${table}`);
|
||||||
return await dbTable.reverse().toArray();
|
return await dbTable.reverse().toArray();
|
||||||
|
|
||||||
@@ -73,5 +81,30 @@ export const OfflineService = {
|
|||||||
console.error("Gagal hitung antrean:", e);
|
console.error("Gagal hitung antrean:", e);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
deleteEntityLocally: async (entityType, id) => {
|
||||||
|
const table = entityType.toLowerCase().endsWith('s')
|
||||||
|
? entityType.toLowerCase()
|
||||||
|
: `${entityType.toLowerCase()}s`;
|
||||||
|
|
||||||
|
try {
|
||||||
|
// 1. Hapus dari tabel utama di Dexie (Local)
|
||||||
|
await db[table].delete(id);
|
||||||
|
|
||||||
|
// 2. Tambahkan ke antrean sinkronisasi dengan operasi 'DELETE'
|
||||||
|
await db.pending_sync.add({
|
||||||
|
id: `q_${Date.now()}`,
|
||||||
|
entity_type: entityType,
|
||||||
|
operation: 'DELETE',
|
||||||
|
payload: { id }, // Kirim ID saja untuk dihapus di server nanti
|
||||||
|
created_at: new Date().toISOString()
|
||||||
|
});
|
||||||
|
|
||||||
|
console.log(`🗑️ Dexie: Data ${entityType} dengan ID ${id} berhasil dihapus lokal!`);
|
||||||
|
return true;
|
||||||
|
} catch (err) {
|
||||||
|
console.error("❌ Dexie Delete Error:", err);
|
||||||
|
throw err;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@@ -18,6 +18,7 @@ import LinkUserAccount from "@/components/farmers/LinkUserAccount";
|
|||||||
import { toast } from "sonner";
|
import { toast } from "sonner";
|
||||||
import { motion } from "framer-motion";
|
import { motion } from "framer-motion";
|
||||||
import { OfflineService } from "@/components/common/offlineStorage";
|
import { OfflineService } from "@/components/common/offlineStorage";
|
||||||
|
import { useNavigate } from 'react-router-dom';
|
||||||
|
|
||||||
export default function FarmerDetail() {
|
export default function FarmerDetail() {
|
||||||
const urlParams = new URLSearchParams(window.location.search);
|
const urlParams = new URLSearchParams(window.location.search);
|
||||||
@@ -26,6 +27,7 @@ export default function FarmerDetail() {
|
|||||||
const {id: paramsId } = useParams();
|
const {id: paramsId } = useParams();
|
||||||
const id = paramsId || searchId;
|
const id = paramsId || searchId;
|
||||||
const [isEditing, setIsEditing] = useState(false);
|
const [isEditing, setIsEditing] = useState(false);
|
||||||
|
const navigate = useNavigate();
|
||||||
|
|
||||||
// const { data: farmer, isLoading } = useQuery({
|
// const { data: farmer, isLoading } = useQuery({
|
||||||
// queryKey: ["farmer", farmerId],
|
// queryKey: ["farmer", farmerId],
|
||||||
@@ -137,10 +139,64 @@ export default function FarmerDetail() {
|
|||||||
const plants = Array.isArray(rawPlants) ? rawPlants : [];
|
const plants = Array.isArray(rawPlants) ? rawPlants : [];
|
||||||
|
|
||||||
const verifyMutation = useMutation({
|
const verifyMutation = useMutation({
|
||||||
mutationFn: (status) => base44.entities.Farmer.update(id, { verification_status: status }),
|
mutationFn: async (status) => {
|
||||||
|
console.log("Data dari Verifikais :", [status, id])
|
||||||
|
try {
|
||||||
|
const onlineUpdate = await base44.entities.Farmer.update(id, { verification_status: status })
|
||||||
|
if(typeof onlineUpdate == 'string' && onlineUpdate.includes('<!doctype html>')){
|
||||||
|
throw Error("HTML respond found, it must be error")
|
||||||
|
}
|
||||||
|
|
||||||
|
return onlineUpdate;
|
||||||
|
} catch (error) {
|
||||||
|
throw {type: "OFFLINE_SAVE", status, id};
|
||||||
|
}
|
||||||
|
},
|
||||||
onSuccess: () => {
|
onSuccess: () => {
|
||||||
queryClient.invalidateQueries({ queryKey: ["farmer", id] });
|
queryClient.invalidateQueries({ queryKey: ["farmer", id] });
|
||||||
toast.success("Status verifikasi diperbarui!");
|
toast.success("Status verifikasi diperbarui!");
|
||||||
|
},
|
||||||
|
onError: async (error, variables) => {
|
||||||
|
console.log(variables);
|
||||||
|
if(error.type == 'OFFLINE_SAVE'){
|
||||||
|
console.warn("Saving offline");
|
||||||
|
try {
|
||||||
|
const entity = 'farmer';
|
||||||
|
await OfflineService.saveEntityLocally(entity,{
|
||||||
|
...variables,
|
||||||
|
id: variables.id,
|
||||||
|
verification_status: variables.status,
|
||||||
|
});
|
||||||
|
|
||||||
|
queryClient.setQueryData(["farmers"], (oldData) => {
|
||||||
|
if (!Array.isArray(oldData)) return [];
|
||||||
|
|
||||||
|
return oldData.map(item => {
|
||||||
|
if (item.id === variables.id) {
|
||||||
|
return {
|
||||||
|
...item,
|
||||||
|
verification_status: variables.status,
|
||||||
|
sync_status: 'pending'
|
||||||
|
};
|
||||||
|
}
|
||||||
|
return item;
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
queryClient.setQueryData(["farmer", variables.id], (oldData) => {
|
||||||
|
return oldData ? { ...oldData, verification_status: variables.status, sync_status: 'pending' } : oldData;
|
||||||
|
});
|
||||||
|
|
||||||
|
// toast.info("Tersimpan secara lokal");
|
||||||
|
// setTimeout(() => {
|
||||||
|
// navigate(createPageUrl("Farmers"));
|
||||||
|
// }, 500);
|
||||||
|
|
||||||
|
} catch (sqlError) {
|
||||||
|
console.error("SQLite Error:", sqlError);
|
||||||
|
toast.error("Gagal simpan lokal");
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -63,14 +63,28 @@ export default function FarmerPortal() {
|
|||||||
|
|
||||||
// Load user and farmer data
|
// Load user and farmer data
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
getAllLand().then(console.log);
|
getAllLand().then(function(){
|
||||||
|
console.log("get all land")
|
||||||
|
});
|
||||||
const loadData = async () => {
|
const loadData = async () => {
|
||||||
try {
|
try {
|
||||||
const currentUser = await base44.auth.me();
|
const currentUser = await base44.auth.me();
|
||||||
setUser(currentUser);
|
setUser(currentUser);
|
||||||
|
|
||||||
// Find farmer linked to this user
|
// Find farmer linked to this user
|
||||||
const farmers = await base44.entities.Farmer.filter({ user_email: currentUser.email });
|
let farmers = [];
|
||||||
|
try{
|
||||||
|
const resp = await base44.entities.Farmer.filter({ user_email: currentUser.email });
|
||||||
|
if(typeof resp ==='string' && resp.includes('<!doctype html>')){
|
||||||
|
console.error('Server tidak ditemukan / sedang error')
|
||||||
|
}else
|
||||||
|
if(resp && !resp.error){
|
||||||
|
farmers = resp;
|
||||||
|
}
|
||||||
|
}catch(e){
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
if (farmers.length > 0) {
|
if (farmers.length > 0) {
|
||||||
setFarmer(farmers[0]);
|
setFarmer(farmers[0]);
|
||||||
}
|
}
|
||||||
@@ -102,11 +116,7 @@ export default function FarmerPortal() {
|
|||||||
queryFn: () => landEntity.filter({ farmer_id: farmer.id }),
|
queryFn: () => landEntity.filter({ farmer_id: farmer.id }),
|
||||||
// queryFn: async () => {
|
// queryFn: async () => {
|
||||||
// console.log("📡 Mengambil data lahan untuk ID:", farmer.id);
|
// console.log("📡 Mengambil data lahan untuk ID:", farmer.id);
|
||||||
|
|
||||||
// // Harus pakai AWAIT karena getAllLand adalah fungsi async (mengambil dari DB)
|
|
||||||
// const data = await getAllLand(farmer.id);
|
// const data = await getAllLand(farmer.id);
|
||||||
|
|
||||||
// console.log("📥 Data berhasil dimuat ke React Query:", data);
|
|
||||||
// return data;
|
// return data;
|
||||||
// },
|
// },
|
||||||
enabled: !!farmer?.id
|
enabled: !!farmer?.id
|
||||||
@@ -115,7 +125,16 @@ export default function FarmerPortal() {
|
|||||||
// Load farmer's plants with offline support
|
// Load farmer's plants with offline support
|
||||||
const { data: plants = [] } = useQuery({
|
const { data: plants = [] } = useQuery({
|
||||||
queryKey: ["farmer-plants", farmer?.id],
|
queryKey: ["farmer-plants", farmer?.id],
|
||||||
queryFn: () => plantEntity.filter({ farmer_id: farmer.id }),
|
queryFn: async () => {
|
||||||
|
try {
|
||||||
|
const response = plantEntity.filter({ farmer_id: farmer.id });
|
||||||
|
if(response && !response.error){
|
||||||
|
return Array.isArray(response) ? response : [];
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
},
|
||||||
enabled: !!farmer?.id
|
enabled: !!farmer?.id
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -100,7 +100,10 @@ export default function LandDetail() {
|
|||||||
let serverData = [];
|
let serverData = [];
|
||||||
try {
|
try {
|
||||||
const serverData = await base44.entities.Land.get(id);
|
const serverData = await base44.entities.Land.get(id);
|
||||||
if (serverData && !serverData.error) return serverData;
|
if(typeof serverData == 'string' && serverData.includes('<!doctype html>')){
|
||||||
|
console.warn('data server tidak ditemukan');
|
||||||
|
}
|
||||||
|
else if (serverData && !serverData.error) return serverData;
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.warn("Server unreachable, searching locally...");
|
console.warn("Server unreachable, searching locally...");
|
||||||
}
|
}
|
||||||
@@ -111,10 +114,11 @@ export default function LandDetail() {
|
|||||||
}
|
}
|
||||||
throw new Error("Lahan tidak ditemukan");
|
throw new Error("Lahan tidak ditemukan");
|
||||||
},
|
},
|
||||||
enabled: !!id
|
enabled: !!id,
|
||||||
|
initialData: null
|
||||||
});
|
});
|
||||||
|
|
||||||
|
console.log('Land data =>', land)
|
||||||
// const { data: farmers = [] } = useQuery({
|
// const { data: farmers = [] } = useQuery({
|
||||||
// queryKey: ["farmers"],
|
// queryKey: ["farmers"],
|
||||||
// queryFn: () => base44.entities.Farmer.list()
|
// queryFn: () => base44.entities.Farmer.list()
|
||||||
@@ -133,7 +137,7 @@ export default function LandDetail() {
|
|||||||
},
|
},
|
||||||
enabled: !!land?.farmer_id
|
enabled: !!land?.farmer_id
|
||||||
});
|
});
|
||||||
|
|
||||||
// const { data: farmer } = useQuery({
|
// const { data: farmer } = useQuery({
|
||||||
// queryKey: ["farmer", land?.farmer_id],
|
// queryKey: ["farmer", land?.farmer_id],
|
||||||
// queryFn: () => base44.entities.Farmer.filter({ id: land.farmer_id }).then(res => res[0]),
|
// queryFn: () => base44.entities.Farmer.filter({ id: land.farmer_id }).then(res => res[0]),
|
||||||
|
|||||||
@@ -51,7 +51,7 @@ export default function ProductivityMonitoring() {
|
|||||||
// });
|
// });
|
||||||
|
|
||||||
const {data: rawLands = []} = useQuery({
|
const {data: rawLands = []} = useQuery({
|
||||||
queryKey: ['farmers'],
|
queryKey: ['lands'],
|
||||||
queryFn: async () => {
|
queryFn: async () => {
|
||||||
let dataServer = [];
|
let dataServer = [];
|
||||||
try{
|
try{
|
||||||
@@ -59,7 +59,7 @@ export default function ProductivityMonitoring() {
|
|||||||
dataServer = Array.isArray(res) ? res : [];
|
dataServer = Array.isArray(res) ? res : [];
|
||||||
|
|
||||||
}catch(err){}
|
}catch(err){}
|
||||||
const localData = await OfflineService.getEntities('farmers');
|
const localData = await OfflineService.getEntities('lands');
|
||||||
const combined = new Map();
|
const combined = new Map();
|
||||||
dataServer.forEach(d => combined.set(d.id, d));
|
dataServer.forEach(d => combined.set(d.id, d));
|
||||||
localData.array.forEach(f => combined.set(f.id, f));
|
localData.array.forEach(f => combined.set(f.id, f));
|
||||||
|
|||||||
@@ -39,11 +39,15 @@ export default function Validators() {
|
|||||||
|
|
||||||
const {data: provinces = []} = useQuery({
|
const {data: provinces = []} = useQuery({
|
||||||
queryKey: ["provinces"],
|
queryKey: ["provinces"],
|
||||||
queryFn: () => {
|
queryFn: async () => {
|
||||||
try{
|
try{
|
||||||
const data = base44.entities.Province.list();
|
const data = base44.entities.Province.list();
|
||||||
return Array.isArray(data) ? data : [];
|
if (data && Array.isArray(data)) {
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
return [];
|
||||||
}catch(e){
|
}catch(e){
|
||||||
|
console.warn('gagal meemuat data dari server');
|
||||||
return [];
|
return [];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -73,12 +77,27 @@ export default function Validators() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const createMutation = useMutation({
|
const createMutation = useMutation({
|
||||||
mutationFn: (data) => base44.entities.Validator.create(data),
|
mutationFn: async (data) => {
|
||||||
|
try{
|
||||||
|
const actServer = base44.entities.Validator.create(data);
|
||||||
|
if(typeof actServer === 'string' && actServer.includes('<!doctype html')){
|
||||||
|
throw new Error('Data is HTML file, not a good responds');
|
||||||
|
}
|
||||||
|
return actServer;
|
||||||
|
}catch(err){
|
||||||
|
throw {type: 'OFFLINE_SAVE', data}
|
||||||
|
}
|
||||||
|
},
|
||||||
onSuccess: () => {
|
onSuccess: () => {
|
||||||
queryClient.invalidateQueries({ queryKey: ["validators"] });
|
queryClient.invalidateQueries({ queryKey: ["validators"] });
|
||||||
setShowForm(false);
|
setShowForm(false);
|
||||||
setFormData({ user_email: "", full_name: "", role: "kepala_desa", village: "", district: "", regency: "", phone: "", is_active: true });
|
setFormData({ user_email: "", full_name: "", role: "kepala_desa", village: "", district: "", regency: "", phone: "", is_active: true });
|
||||||
toast.success("Validator berhasil ditambahkan!");
|
toast.success("Validator berhasil ditambahkan!");
|
||||||
|
},
|
||||||
|
onError: async (error, datas)=>{
|
||||||
|
if(error.type === 'OFFLINE_SAVE'){{
|
||||||
|
console.log('Error menyimpan online dan akan disimpan offline')
|
||||||
|
}}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -187,7 +206,7 @@ export default function Validators() {
|
|||||||
</div>
|
</div>
|
||||||
<div className="space-y-2">
|
<div className="space-y-2">
|
||||||
<Label>Provinsi</Label>
|
<Label>Provinsi</Label>
|
||||||
<Select value={formData.province} onValueChange={(v) => handleChange("province", v)}>
|
<Select value={formData.province || ""} onValueChange={(v) => handleChange("province", v)}>
|
||||||
<SelectTrigger><SelectValue placeholder="Pilih provinsi" /></SelectTrigger>
|
<SelectTrigger><SelectValue placeholder="Pilih provinsi" /></SelectTrigger>
|
||||||
<SelectContent>
|
<SelectContent>
|
||||||
{provinces.map(p => (<SelectItem key={p.id} value={p.id}>{p.nama}</SelectItem>))}
|
{provinces.map(p => (<SelectItem key={p.id} value={p.id}>{p.nama}</SelectItem>))}
|
||||||
|
|||||||
Reference in New Issue
Block a user