From ab26debbb8c7651c9bd0078bc3398f19ecb268b8 Mon Sep 17 00:00:00 2001 From: Jacek Pyziak Date: Thu, 26 Feb 2026 20:16:42 +0100 Subject: [PATCH] Remove temporary Swagger index HTML file and add script to fix GS1 brand names for all products in the database. --- .vscode/ftp-kr.sync.cache.json | 16 +- MojeGS1 API.htm | 21 - bin/fix_gs1_brand.php | 190 + public/test_gs1.php | 159 - resources/views/products/show.php | 16 + src/Modules/GS1/GS1Service.php | 3 +- src/Modules/Products/ProductsController.php | 2 + tmp_api_v2_index.js | 74 - tmp_external_api_swagger.json | 2024 -- tmp_gs1_excel_extract.txt | 125 - tmp_mojegs1_bundle.js | 24 - tmp_mojegs1_openapi.json | 20538 ------------------ tmp_portal_swagger.json | 20538 ------------------ tmp_swagger_index.html | 23 - 14 files changed, 217 insertions(+), 43536 deletions(-) delete mode 100644 MojeGS1 API.htm create mode 100644 bin/fix_gs1_brand.php delete mode 100644 public/test_gs1.php delete mode 100644 tmp_api_v2_index.js delete mode 100644 tmp_external_api_swagger.json delete mode 100644 tmp_gs1_excel_extract.txt delete mode 100644 tmp_mojegs1_bundle.js delete mode 100644 tmp_mojegs1_openapi.json delete mode 100644 tmp_portal_swagger.json delete mode 100644 tmp_swagger_index.html diff --git a/.vscode/ftp-kr.sync.cache.json b/.vscode/ftp-kr.sync.cache.json index c495f53..90baa07 100644 --- a/.vscode/ftp-kr.sync.cache.json +++ b/.vscode/ftp-kr.sync.cache.json @@ -208,8 +208,8 @@ }, "TODO.md": { "type": "-", - "size": 570, - "lmtime": 1771957679996, + "size": 1223, + "lmtime": 1771975661209, "modified": false } }, @@ -3035,6 +3035,12 @@ "lmtime": 1771966012602, "modified": false }, + "tmp_gs1_excel_extract.txt": { + "type": "-", + "size": 33407, + "lmtime": 1771966910045, + "modified": false + }, "tmp_gs1_test.php": { "type": "-", "size": 3392, @@ -3064,12 +3070,6 @@ "size": 1136, "lmtime": 1771963925300, "modified": false - }, - "tmp_gs1_excel_extract.txt": { - "type": "-", - "size": 33407, - "lmtime": 1771966910045, - "modified": false } } }, diff --git a/MojeGS1 API.htm b/MojeGS1 API.htm deleted file mode 100644 index 718ccf5..0000000 --- a/MojeGS1 API.htm +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - MojeGS1 API - - - - - - - - -
- - - - - - diff --git a/bin/fix_gs1_brand.php b/bin/fix_gs1_brand.php new file mode 100644 index 0000000..bd96565 --- /dev/null +++ b/bin/fix_gs1_brand.php @@ -0,0 +1,190 @@ + PDO::ERRMODE_EXCEPTION] + ); + + $stmt = $pdo->prepare('SELECT setting_key, setting_value FROM app_settings WHERE setting_key IN (?, ?)'); + $stmt->execute(['gs1_api_login', 'gs1_api_password']); + foreach ($stmt->fetchAll(PDO::FETCH_ASSOC) as $row) { + if ($row['setting_key'] === 'gs1_api_login') { + $login = (string) $row['setting_value']; + } + if ($row['setting_key'] === 'gs1_api_password') { + $password = (string) $row['setting_value']; + } + } +} catch (Throwable $e) { + fwrite(STDERR, "Blad DB: " . $e->getMessage() . "\n"); +} + +if ($login === '' || $password === '') { + fwrite(STDERR, "Brak credentials GS1. Sprawdz ustawienia w bazie.\n"); + exit(1); +} + +echo "Correct brand: {$correctBrand}\n"; +echo "Pobieram produkty z GS1...\n\n"; + +// --- Fetch all products --- +$allProducts = []; +$page = 1; +$limit = 100; + +do { + $url = "https://mojegs1.pl/api/v2/products?page[offset]={$page}&page[limit]={$limit}&sort=name"; + $response = gs1Request('GET', $url, $login, $password); + + if ($response['status'] < 200 || $response['status'] >= 300) { + fwrite(STDERR, "Blad pobierania listy (HTTP {$response['status']}): {$response['body']}\n"); + exit(1); + } + + $decoded = json_decode($response['body'], true); + $items = is_array($decoded['data'] ?? null) ? $decoded['data'] : []; + $total = (int) ($decoded['meta']['record-count'] ?? 0); + + foreach ($items as $item) { + $allProducts[] = $item; + } + + echo " Strona {$page}: pobrano " . count($items) . " produktow (lacznie: " . count($allProducts) . " / {$total})\n"; + $page++; +} while (count($items) >= $limit); + +echo "\nLacznie pobrano: " . count($allProducts) . " produktow\n\n"; + +// --- Find and fix products with wrong brand --- +$updated = 0; +$skipped = 0; +$errors = 0; + +foreach ($allProducts as $item) { + $gtin = (string) ($item['id'] ?? ''); + $attrs = is_array($item['attributes'] ?? null) ? $item['attributes'] : []; + $currentBrand = (string) ($attrs['brandName'] ?? ''); + + if ($gtin === '') { + continue; + } + + if ($currentBrand === $correctBrand) { + $skipped++; + continue; + } + + echo " [{$gtin}] brandName: \"{$currentBrand}\" -> \"{$correctBrand}\""; + + $putUrl = "https://mojegs1.pl/api/v2/products/" . urlencode($gtin); + $payload = json_encode([ + 'data' => [ + 'type' => 'products', + 'id' => $gtin, + 'attributes' => [ + 'brandName' => $correctBrand, + ], + ], + ], JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES); + + $putResponse = gs1Request('PUT', $putUrl, $login, $password, $payload); + + if ($putResponse['status'] >= 200 && $putResponse['status'] < 300) { + echo " OK\n"; + $updated++; + } else { + echo " BLAD (HTTP {$putResponse['status']}): " . mb_substr($putResponse['body'], 0, 200) . "\n"; + $errors++; + } +} + +echo "\n--- Podsumowanie ---\n"; +echo "Zaktualizowano: {$updated}\n"; +echo "Pominieto (juz OK): {$skipped}\n"; +echo "Bledy: {$errors}\n"; + +// --- HTTP helper --- +function gs1Request(string $method, string $url, string $login, string $password, ?string $body = null): array +{ + $curl = curl_init($url); + if ($curl === false) { + return ['status' => 0, 'body' => 'cURL init failed', 'error' => 'init']; + } + + $headers = ['Accept: application/json']; + if ($body !== null) { + $headers[] = 'Content-Type: application/json'; + } + + curl_setopt_array($curl, [ + CURLOPT_RETURNTRANSFER => true, + CURLOPT_HTTPHEADER => $headers, + CURLOPT_USERPWD => $login . ':' . $password, + CURLOPT_HTTPAUTH => CURLAUTH_BASIC, + CURLOPT_TIMEOUT => 30, + CURLOPT_CONNECTTIMEOUT => 10, + CURLOPT_SSL_VERIFYPEER => true, + CURLOPT_SSL_VERIFYHOST => 2, + CURLOPT_FOLLOWLOCATION => true, + CURLOPT_MAXREDIRS => 5, + CURLOPT_CUSTOMREQUEST => $method, + ]); + + if ($body !== null) { + curl_setopt($curl, CURLOPT_POSTFIELDS, $body); + } + + $responseBody = curl_exec($curl); + $httpCode = (int) curl_getinfo($curl, CURLINFO_RESPONSE_CODE); + $error = curl_error($curl); + curl_close($curl); + + return [ + 'status' => $httpCode, + 'body' => is_string($responseBody) ? $responseBody : '', + 'error' => $error, + ]; +} diff --git a/public/test_gs1.php b/public/test_gs1.php deleted file mode 100644 index 93e8186..0000000 --- a/public/test_gs1.php +++ /dev/null @@ -1,159 +0,0 @@ - PDO::ERRMODE_EXCEPTION]); - $s = $pdo->prepare('SELECT setting_key, setting_value FROM app_settings WHERE setting_key LIKE ?'); - $s->execute(['gs1_%']); - $cfg = []; - foreach ($s->fetchAll(PDO::FETCH_ASSOC) as $r) $cfg[$r['setting_key']] = $r['setting_value']; -} catch (Throwable $e) { die('DB: ' . $e->getMessage()); } - -$login = $cfg['gs1_api_login'] ?? ''; -$password = $cfg['gs1_api_password'] ?? ''; -if ($login === '' || $password === '') die("Brak credentials\n"); - -function gs1v(string $method, string $url, ?string $body, string $login, string $pw, array $extraHeaders = []): array { - $curl = curl_init($url); - $h = ['Accept: application/json']; - if ($body !== null) $h[] = 'Content-Type: application/json'; - $h = array_merge($h, $extraHeaders); - curl_setopt_array($curl, [ - CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => $h, - CURLOPT_USERPWD => $login . ':' . $pw, CURLOPT_HTTPAUTH => CURLAUTH_BASIC, - CURLOPT_TIMEOUT => 30, CURLOPT_SSL_VERIFYPEER => true, CURLOPT_SSL_VERIFYHOST => 2, - CURLOPT_CUSTOMREQUEST => $method, - CURLOPT_VERBOSE => true, - ]); - // Capture verbose output - $verbose = fopen('php://temp', 'w+'); - curl_setopt($curl, CURLOPT_STDERR, $verbose); - if ($body !== null) curl_setopt($curl, CURLOPT_POSTFIELDS, $body); - $resp = curl_exec($curl); - $code = (int) curl_getinfo($curl, CURLINFO_RESPONSE_CODE); - curl_close($curl); - rewind($verbose); - $verboseLog = stream_get_contents($verbose); - fclose($verbose); - return [$code, is_string($resp) ? $resp : '', $verboseLog]; -} - -$base = 'https://mojegs1.pl/api/v2'; -$jf = JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES; - -echo "=== GS1 Diagnostic v4 ===\n\n"; - -// Step 1: GET existing product -echo "--- Step 1: GET existing product ---\n"; -[$c, $b, $v] = gs1v('GET', $base . '/products?page[offset]=1&page[limit]=1', null, $login, $password); -$d = json_decode($b, true); -$existing = $d['data'][0] ?? null; -if (!$existing) die("Nie mozna pobrac produktu\n"); -$exGtin = $existing['id']; -$exAttrs = $existing['attributes']; -echo "GTIN: {$exGtin}\n"; -echo "Status: {$exAttrs['status']}\n\n"; - -// Step 2: Verbose PUT - minimal + subBrandName + name -echo "--- Step 2: Verbose PUT (minimal + name + subBrandName) ---\n"; -$attrs2 = [ - 'brandName' => $exAttrs['brandName'], - 'subBrandName' => $exAttrs['brandName'], - 'commonName' => $exAttrs['commonName'], - 'name' => $exAttrs['name'] ?? ($exAttrs['brandName'] . ' ' . $exAttrs['commonName']), - 'gpcCode' => $exAttrs['gpcCode'], - 'netContent' => $exAttrs['netContent'], - 'netContentUnit' => $exAttrs['netContentUnit'], - 'status' => $exAttrs['status'], - 'targetMarket' => $exAttrs['targetMarket'], - 'descriptionLanguage' => $exAttrs['descriptionLanguage'], -]; -$payload2 = json_encode(['data' => ['type' => 'products', 'id' => $exGtin, 'attributes' => $attrs2]], $jf); -echo "REQ: {$payload2}\n"; -[$c, $b, $v] = gs1v('PUT', $base . '/products/' . $exGtin, $payload2, $login, $password); -echo "HTTP {$c}: {$b}\n"; -echo "VERBOSE:\n{$v}\n\n"; - -// Step 3: Try PATCH instead of PUT -echo "--- Step 3: PATCH instead of PUT ---\n"; -[$c, $b, $v] = gs1v('PATCH', $base . '/products/' . $exGtin, $payload2, $login, $password); -echo "HTTP {$c}: {$b}\n\n"; - -// Step 4: Try gpcCode as string -echo "--- Step 4: gpcCode as string ---\n"; -$attrs4 = $attrs2; -$attrs4['gpcCode'] = (string) $attrs4['gpcCode']; -$payload4 = json_encode(['data' => ['type' => 'products', 'id' => $exGtin, 'attributes' => $attrs4]], $jf); -echo "REQ: {$payload4}\n"; -[$c, $b, $v] = gs1v('PUT', $base . '/products/' . $exGtin, $payload4, $login, $password); -echo "HTTP {$c}: {$b}\n\n"; - -// Step 5: Try application/vnd.api+json for both Content-Type and Accept -echo "--- Step 5: vnd.api+json content type ---\n"; -$curl5 = curl_init($base . '/products/' . $exGtin); -curl_setopt_array($curl5, [ - CURLOPT_RETURNTRANSFER => true, - CURLOPT_HTTPHEADER => ['Content-Type: application/vnd.api+json', 'Accept: application/vnd.api+json'], - CURLOPT_USERPWD => $login . ':' . $password, CURLOPT_HTTPAUTH => CURLAUTH_BASIC, - CURLOPT_TIMEOUT => 30, CURLOPT_SSL_VERIFYPEER => true, CURLOPT_SSL_VERIFYHOST => 2, - CURLOPT_CUSTOMREQUEST => 'PUT', - CURLOPT_POSTFIELDS => $payload2, -]); -$resp5 = curl_exec($curl5); -$code5 = (int) curl_getinfo($curl5, CURLINFO_RESPONSE_CODE); -curl_close($curl5); -echo "HTTP {$code5}: {$resp5}\n\n"; - -// Step 6: Try with netContent as float explicitly -echo "--- Step 6: netContent as float 1.0 ---\n"; -$attrs6 = $attrs2; -$attrs6['netContent'] = 1.0; -$payload6 = json_encode(['data' => ['type' => 'products', 'id' => $exGtin, 'attributes' => $attrs6]], $jf); -// Force 1.0 in JSON (json_encode may output 1 for 1.0) -$payload6 = str_replace('"netContent":1,', '"netContent":1.0,', $payload6); -echo "REQ: {$payload6}\n"; -[$c, $b, $v] = gs1v('PUT', $base . '/products/' . $exGtin, $payload6, $login, $password); -echo "HTTP {$c}: {$b}\n\n"; - -// Step 7: Try completely empty attributes -echo "--- Step 7: Empty attributes ---\n"; -$payload7 = json_encode(['data' => ['type' => 'products', 'id' => $exGtin, 'attributes' => new \stdClass()]], $jf); -echo "REQ: {$payload7}\n"; -[$c, $b, $v] = gs1v('PUT', $base . '/products/' . $exGtin, $payload7, $login, $password); -echo "HTTP {$c}: {$b}\n\n"; - -// Step 8: Binary search - ONE field at a time -echo "--- Step 8: Single field tests ---\n"; -$singleFields = [ - 'brandName' => $exAttrs['brandName'], - 'commonName' => $exAttrs['commonName'], - 'gpcCode' => $exAttrs['gpcCode'], - 'netContent' => $exAttrs['netContent'], - 'netContentUnit' => $exAttrs['netContentUnit'], - 'status' => $exAttrs['status'], - 'targetMarket' => $exAttrs['targetMarket'], - 'descriptionLanguage' => $exAttrs['descriptionLanguage'], -]; -foreach ($singleFields as $key => $val) { - $p = json_encode(['data' => ['type' => 'products', 'id' => $exGtin, 'attributes' => [$key => $val]]], $jf); - [$c, $b, $v] = gs1v('PUT', $base . '/products/' . $exGtin, $p, $login, $password); - echo " {$key} => HTTP {$c}\n"; -} - -echo "\n=== DONE ===\n"; diff --git a/resources/views/products/show.php b/resources/views/products/show.php index cda8c59..8a26796 100644 --- a/resources/views/products/show.php +++ b/resources/views/products/show.php @@ -9,6 +9,22 @@ + +
+ +
+ + + +
+
+ +
+
+ +
diff --git a/src/Modules/GS1/GS1Service.php b/src/Modules/GS1/GS1Service.php index 5f37508..aeb8dd4 100644 --- a/src/Modules/GS1/GS1Service.php +++ b/src/Modules/GS1/GS1Service.php @@ -36,7 +36,7 @@ class GS1Service $login = $this->appSettings->get('gs1_api_login', ''); $password = $this->appSettings->get('gs1_api_password', ''); $prefix = $this->appSettings->get('gs1_prefix', '590532390'); - $defaultBrand = $this->appSettings->get('gs1_default_brand', 'marianek.pl'); + $defaultBrand = $this->appSettings->get('gs1_default_brand', 'pomysloweprezenty.pl'); $defaultGpcCode = $this->appSettings->getInt('gs1_default_gpc_code', 10008365); if ($login === '' || $password === '') { @@ -53,7 +53,6 @@ class GS1Service $client->upsertProduct($newEan, [ 'brandName' => $defaultBrand, - 'subBrandName' => $defaultBrand, 'commonName' => $commonName, 'gpcCode' => $defaultGpcCode, 'netContent' => 1, diff --git a/src/Modules/Products/ProductsController.php b/src/Modules/Products/ProductsController.php index 1b4e3b7..bdc9ab4 100644 --- a/src/Modules/Products/ProductsController.php +++ b/src/Modules/Products/ProductsController.php @@ -280,6 +280,8 @@ final class ProductsController 'productImages' => $productImages, 'productVariants' => $productVariants, 'productImportWarning' => $importWarning, + 'errorMessage' => (string) Flash::get('products_error', ''), + 'successMessage' => (string) Flash::get('products_success', ''), ], 'layouts/app'); return Response::html($html); diff --git a/tmp_api_v2_index.js b/tmp_api_v2_index.js deleted file mode 100644 index 7fc9efa..0000000 --- a/tmp_api_v2_index.js +++ /dev/null @@ -1,74 +0,0 @@ -/* Source: https://gist.github.com/lamberta/3768814 - * Parse a string function definition and return a function object. Does not use eval. - * @param {string} str - * @return {function} - * - * Example: - * var f = function (x, y) { return x * y; }; - * var g = parseFunction(f.toString()); - * g(33, 3); //=> 99 - */ -function parseFunction(str) { - if (!str) return void (0); - - var fn_body_idx = str.indexOf('{'), - fn_body = str.substring(fn_body_idx + 1, str.lastIndexOf('}')), - fn_declare = str.substring(0, fn_body_idx), - fn_params = fn_declare.substring(fn_declare.indexOf('(') + 1, fn_declare.lastIndexOf(')')), - args = fn_params.split(','); - - args.push(fn_body); - - function Fn() { - return Function.apply(this, args); - } - Fn.prototype = Function.prototype; - - return new Fn(); -} - -window.onload = function () { - var configObject = JSON.parse('{"urls":[{"url":"/api/v2/swagger/external-api/swagger.json","name":"External API v2"}],"deepLinking":false,"persistAuthorization":false,"displayOperationId":false,"defaultModelsExpandDepth":1,"defaultModelExpandDepth":1,"defaultModelRendering":"example","displayRequestDuration":false,"docExpansion":"list","showExtensions":false,"showCommonExtensions":false,"supportedSubmitMethods":["get","put","post","delete","options","head","patch","trace"],"tryItOutEnabled":false}'); - var oauthConfigObject = JSON.parse('{"scopeSeparator":" ","scopes":[],"useBasicAuthenticationWithAccessCodeGrant":false,"usePkceWithAuthorizationCodeGrant":false}'); - - // Workaround for https://github.com/swagger-api/swagger-ui/issues/5945 - configObject.urls.forEach(function (item) { - if (item.url.startsWith("http") || item.url.startsWith("/")) return; - item.url = window.location.href.replace("index.html", item.url).split('#')[0]; - }); - - // If validatorUrl is not explicitly provided, disable the feature by setting to null - if (!configObject.hasOwnProperty("validatorUrl")) - configObject.validatorUrl = null - - // If oauth2RedirectUrl isn't specified, use the built-in default - if (!configObject.hasOwnProperty("oauth2RedirectUrl")) - configObject.oauth2RedirectUrl = (new URL("oauth2-redirect.html", window.location.href)).href; - - // Apply mandatory parameters - configObject.dom_id = "#swagger-ui"; - configObject.presets = [SwaggerUIBundle.presets.apis, SwaggerUIStandalonePreset]; - configObject.layout = "StandaloneLayout"; - - // Parse and add interceptor functions - var interceptors = JSON.parse('{}'); - if (interceptors.RequestInterceptorFunction) - configObject.requestInterceptor = parseFunction(interceptors.RequestInterceptorFunction); - if (interceptors.ResponseInterceptorFunction) - configObject.responseInterceptor = parseFunction(interceptors.ResponseInterceptorFunction); - - if (configObject.plugins) { - configObject.plugins = configObject.plugins.map(eval); - } - - // Begin Swagger UI call region - - const ui = SwaggerUIBundle(configObject); - - ui.initOAuth(oauthConfigObject); - - // End Swagger UI call region - - window.ui = ui -} - diff --git a/tmp_external_api_swagger.json b/tmp_external_api_swagger.json deleted file mode 100644 index db68848..0000000 --- a/tmp_external_api_swagger.json +++ /dev/null @@ -1,2024 +0,0 @@ -{ - "openapi": "3.0.4", - "info": { - "title": "MojeGS1 API", - "version": "v2" - }, - "paths": { - "/api/v2/localizations/{GLN}": { - "get": { - "tags": [ - "AddressesExternal" - ], - "parameters": [ - { - "name": "GLN", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "text/plain": { - "schema": { - "$ref": "#/components/schemas/LocalizationDto" - }, - "example": { - "type": "localizations", - "id": "5900009900057", - "attributes": { - "name": "Przykładowa lokalizacja", - "ediDocuments": true, - "physicalLocalization": false, - "description": "Przykładowy opis lokalizacji", - "country": "PL", - "postalCode": "02-002", - "city": "Warszawa", - "streetAndNumber": "Emilii Plater 1", - "latitude": 51.123456, - "longitude": 19.123456, - "lastModificationDate": "2019-08-06T09:47:10+02:00" - } - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/LocalizationDto" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/LocalizationDto" - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "text/plain": { - "schema": { - "$ref": "#/components/schemas/ExternalApiResponse" - }, - "example": { - "status": 401, - "title": "Błąd autoryzacji", - "detail": null, - "errors": null - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/ExternalApiResponse" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/ExternalApiResponse" - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "text/plain": { - "schema": { - "$ref": "#/components/schemas/ExternalApiResponse" - }, - "example": { - "status": 404, - "title": "Nie znaleziono zasobu", - "detail": "Nie znaleziono produktu na podstawie podanego numeru GTIN", - "errors": null - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/ExternalApiResponse" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/ExternalApiResponse" - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "text/plain": { - "schema": { - "$ref": "#/components/schemas/ExternalApiResponse" - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/ExternalApiResponse" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/ExternalApiResponse" - } - } - } - } - }, - "security": [ - { - "basic": [ ] - } - ] - }, - "put": { - "tags": [ - "AddressesExternal" - ], - "parameters": [ - { - "name": "GLN", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/LocalizationDto" - }, - "example": { - "type": "localizations", - "id": "5900009900057", - "attributes": { - "name": "Przykładowa lokalizacja", - "ediDocuments": true, - "physicalLocalization": false, - "description": "Przykładowy opis lokalizacji", - "country": "PL", - "postalCode": "02-002", - "city": "Warszawa", - "streetAndNumber": "Emilii Plater 1", - "latitude": 51.123456, - "longitude": 19.123456 - } - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/LocalizationDto" - } - }, - "application/*+json": { - "schema": { - "$ref": "#/components/schemas/LocalizationDto" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "text/plain": { - "schema": { - "$ref": "#/components/schemas/UpsertLocalizationResponse" - }, - "example": { - "result": "OK" - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/UpsertLocalizationResponse" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/UpsertLocalizationResponse" - } - } - } - }, - "400": { - "description": "Bad Request", - "content": { - "text/plain": { - "schema": { - "$ref": "#/components/schemas/ExternalApiResponse" - }, - "example": { - "status": 400, - "title": "Błąd walidacji", - "detail": null, - "errors": [ - { - "field": "data.attributes.brandName", - "message": "Pole musi mieć co najmniej 2 znaki" - }, - { - "field": "data.attributes.gpcCode", - "message": "Pole nie może być puste" - } - ] - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/ExternalApiResponse" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/ExternalApiResponse" - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "text/plain": { - "schema": { - "$ref": "#/components/schemas/ExternalApiResponse" - }, - "example": { - "status": 401, - "title": "Błąd autoryzacji", - "detail": null, - "errors": null - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/ExternalApiResponse" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/ExternalApiResponse" - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "text/plain": { - "schema": { - "$ref": "#/components/schemas/ExternalApiResponse" - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/ExternalApiResponse" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/ExternalApiResponse" - } - } - } - } - }, - "security": [ - { - "basic": [ ] - } - ] - }, - "delete": { - "tags": [ - "AddressesExternal" - ], - "parameters": [ - { - "name": "GLN", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Bad Request", - "content": { - "text/plain": { - "schema": { - "$ref": "#/components/schemas/ExternalApiResponse" - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/ExternalApiResponse" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/ExternalApiResponse" - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "text/plain": { - "schema": { - "$ref": "#/components/schemas/ExternalApiResponse" - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/ExternalApiResponse" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/ExternalApiResponse" - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "text/plain": { - "schema": { - "$ref": "#/components/schemas/ExternalApiResponse" - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/ExternalApiResponse" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/ExternalApiResponse" - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "text/plain": { - "schema": { - "$ref": "#/components/schemas/ExternalApiResponse" - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/ExternalApiResponse" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/ExternalApiResponse" - } - } - } - } - }, - "security": [ - { - "basic": [ ] - } - ] - } - }, - "/api/v2/localizations": { - "get": { - "tags": [ - "AddressesExternal" - ], - "parameters": [ - { - "name": "page[offset]", - "in": "query", - "schema": { - "type": "string", - "default": "0" - } - }, - { - "name": "page[limit]", - "in": "query", - "schema": { - "type": "string", - "default": "10" - } - }, - { - "name": "filter[keyword]", - "in": "query", - "schema": { - "type": "string", - "default": "" - } - }, - { - "name": "sort", - "in": "query", - "schema": { - "type": "string", - "default": "" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "text/plain": { - "schema": { - "$ref": "#/components/schemas/GetLocalizationsResponse" - }, - "example": { - "links": { - "self": "https://mojegs1.pl/api/v2/localizations?page[offset]=0&page[limit]=10&sort=-name", - "first": "https://mojegs1.pl/api/v2/localizations?page[offset]=0&page[limit]=10&sort=-name", - "prev": null, - "next": "https://mojegs1.pl/api/v2/localizations?page[offset]=1&page[limit]=10&sort=-name", - "last": "https://mojegs1.pl/api/v2/localizations?page[offset]=5&page[limit]=10&sort=-name" - }, - "data": { - "items": [ - { - "type": "localizations", - "id": "5900009900057", - "attributes": { - "name": "Przykładowa lokalizacja", - "ediDocuments": true, - "physicalLocalization": false, - "description": "Przykładowy opis lokalizacji", - "country": "PL", - "postalCode": "02-002", - "city": "Warszawa", - "streetAndNumber": "Emilii Plater 1", - "latitude": 51.123456, - "longitude": 19.123456, - "lastModificationDate": "2019-08-06T09:47:10+02:00" - } - } - ], - "total": 2, - "pageSize": 10, - "pageNo": 0 - } - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/GetLocalizationsResponse" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/GetLocalizationsResponse" - } - } - } - }, - "400": { - "description": "Bad Request", - "content": { - "text/plain": { - "schema": { - "$ref": "#/components/schemas/ExternalApiResponse" - }, - "example": { - "status": 400, - "title": "Niepoprawny parametr", - "detail": "Nieprawidłowy format żądania", - "errors": null - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/ExternalApiResponse" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/ExternalApiResponse" - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "text/plain": { - "schema": { - "$ref": "#/components/schemas/ExternalApiResponse" - }, - "example": { - "status": 401, - "title": "Błąd autoryzacji", - "detail": null, - "errors": null - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/ExternalApiResponse" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/ExternalApiResponse" - } - } - } - }, - "500": { - "description": "Internal Server Error", - "content": { - "text/plain": { - "schema": { - "$ref": "#/components/schemas/ExternalApiResponse" - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/ExternalApiResponse" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/ExternalApiResponse" - } - } - } - } - }, - "security": [ - { - "basic": [ ] - } - ] - } - }, - "/api/v2/products/{Gtin}": { - "get": { - "tags": [ - "ProductsExternal" - ], - "parameters": [ - { - "name": "Gtin", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "text/plain": { - "schema": { - "$ref": "#/components/schemas/GetExternalProductResponse" - }, - "example": { - "data": { - "type": "products", - "id": "5903321563092", - "attributes": { - "brandName": "Marka", - "description": "Opis produktu", - "descriptionLanguage": "pl", - "commonName": "Produkt testowy", - "gpcCode": 10000002, - "lastModificationDate": "2018-08-06T09:47:10.543Z", - "name": "Marka Podmarka Produkt testowy wariant 50kg", - "netContent": 50, - "netContentUnit": "kg", - "productImage": "http://www.images.mojegs1.pl/products/590/321/654/0590321654_MARKT_L.jpg", - "productWebsite": "http://www.przykladowy-produkt.com", - "qualityDetails": { - "suggestions": [ - "Dane na stronie internetowej produktu powinny dotyczyć dokładnie tego produktu" - ] - }, - "status": "ACT", - "subBrandName": "Podmarka", - "targetMarket": [ - "PL", - "DE" - ], - "variant": "wariant" - } - } - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/GetExternalProductResponse" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/GetExternalProductResponse" - } - } - } - }, - "400": { - "description": "Bad Request", - "content": { - "text/plain": { - "schema": { - "$ref": "#/components/schemas/ExternalApiResponse" - }, - "example": { - "status": 400, - "title": "Niepoprawny parametr", - "detail": "Nieprawidłowy format żądania", - "errors": null - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/ExternalApiResponse" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/ExternalApiResponse" - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "text/plain": { - "schema": { - "$ref": "#/components/schemas/ExternalApiResponse" - }, - "example": { - "status": 401, - "title": "Błąd autoryzacji", - "detail": null, - "errors": null - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/ExternalApiResponse" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/ExternalApiResponse" - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "text/plain": { - "schema": { - "$ref": "#/components/schemas/ExternalApiResponse" - }, - "example": { - "status": 404, - "title": "Nie znaleziono zasobu", - "detail": "Nie znaleziono produktu na podstawie podanego numeru GTIN", - "errors": null - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/ExternalApiResponse" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/ExternalApiResponse" - } - } - } - } - }, - "security": [ - { - "basic": [ ] - } - ] - }, - "put": { - "tags": [ - "ProductsExternal" - ], - "parameters": [ - { - "name": "Gtin", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UpsertProductExternalRequest" - }, - "example": { - "data": { - "type": "products", - "id": "5903321563092", - "attributes": { - "brandName": "Marka", - "description": "Opis produktu", - "descriptionLanguage": "pl", - "commonName": "Produkt testowy", - "gpcCode": 10000002, - "netContent": 50, - "netContentUnit": "kg", - "productImage": "http://www.images.mojegs1.pl/products/590/321/654/0590321654_MARKT_L.jpg", - "productWebsite": "http://www.przykladowy-produkt.com", - "status": "ACT", - "subBrandName": "Podmarka", - "targetMarket": [ - "PL", - "DE" - ], - "variant": "wariant" - } - } - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/UpsertProductExternalRequest" - } - }, - "application/*+json": { - "schema": { - "$ref": "#/components/schemas/UpsertProductExternalRequest" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "text/plain": { - "schema": { - "$ref": "#/components/schemas/UpsertProductResponse" - }, - "example": { - "result": "OK", - "qualityDetails": { - "suggestions": [ - "Dane na stronie internetowej produktu powinny dotyczyć dokładnie tego produktu" - ] - } - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/UpsertProductResponse" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/UpsertProductResponse" - } - } - } - }, - "400": { - "description": "Bad Request", - "content": { - "text/plain": { - "schema": { - "$ref": "#/components/schemas/ExternalApiResponse" - }, - "example": { - "status": 400, - "title": "Błąd walidacji", - "detail": null, - "errors": [ - { - "field": "data.attributes.brandName", - "message": "Pole musi mieć co najmniej 2 znaki" - }, - { - "field": "data.attributes.gpcCode", - "message": "Pole nie może być puste" - } - ] - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/ExternalApiResponse" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/ExternalApiResponse" - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "text/plain": { - "schema": { - "$ref": "#/components/schemas/ExternalApiResponse" - }, - "example": { - "status": 401, - "title": "Błąd autoryzacji", - "detail": null, - "errors": null - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/ExternalApiResponse" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/ExternalApiResponse" - } - } - } - } - }, - "security": [ - { - "basic": [ ] - } - ] - } - }, - "/api/v2/products": { - "get": { - "tags": [ - "ProductsExternal" - ], - "parameters": [ - { - "name": "filter[keyword]", - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "page[offset]", - "in": "query", - "schema": { - "type": "string", - "default": "1" - } - }, - { - "name": "page[limit]", - "in": "query", - "schema": { - "type": "string", - "default": "25" - } - }, - { - "name": "sort", - "in": "query", - "schema": { - "type": "string", - "default": "name" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "text/plain": { - "schema": { - "$ref": "#/components/schemas/GetExternalProductListResponse" - }, - "example": { - "links": { - "self": "https://mojegs1.pl/api/v2/products?page[offset]=1&page[limit]=10&sort=-name", - "first": "https://mojegs1.pl/api/v2/products?page[offset]=1&page[limit]=10&sort=-name", - "prev": "https://mojegs1.pl/api/v2/products?page[offset]=1&page[limit]=10&sort=-name", - "next": "https://mojegs1.pl/api/v2/products?page[offset]=2&page[limit]=10&sort=-name", - "last": "https://mojegs1.pl/api/v2/products?page[offset]=5&page[limit]=10&sort=-name" - }, - "data": [ - { - "type": "products", - "id": "5903321563092", - "attributes": { - "brandName": "Marka", - "commonName": "Produkt testowy", - "description": "Opis produktu", - "descriptionLanguage": "pl", - "gpcCode": 10000002, - "lastModificationDate": "2018-08-06T09:47:10.543Z", - "name": "Marka Podmarka Produkt testowy wariant 50kg", - "netContent": 50, - "netContentUnit": "kg", - "productImage": "http://www.images.mojegs1.pl/products/590/321/654/0590321654_MARKT_L.jpg", - "productWebsite": "http://www.przykladowy-produkt.com", - "qualityDetails": { - "suggestions": [ - "Dane na stronie internetowej produktu powinny dotyczyć dokładnie tego produktu" - ] - }, - "status": "ACT", - "subBrandName": "Podmarka", - "targetMarket": [ - "PL", - "DE" - ], - "variant": "wariant" - } - } - ] - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/GetExternalProductListResponse" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/GetExternalProductListResponse" - } - } - } - }, - "400": { - "description": "Bad Request", - "content": { - "text/plain": { - "schema": { - "$ref": "#/components/schemas/ExternalApiResponse" - }, - "example": { - "status": 400, - "title": "Niepoprawny parametr", - "detail": "Nieprawidłowy format żądania", - "errors": null - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/ExternalApiResponse" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/ExternalApiResponse" - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "text/plain": { - "schema": { - "$ref": "#/components/schemas/ExternalApiResponse" - }, - "example": { - "status": 401, - "title": "Błąd autoryzacji", - "detail": null, - "errors": null - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/ExternalApiResponse" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/ExternalApiResponse" - } - } - } - } - }, - "security": [ - { - "basic": [ ] - } - ] - } - } - }, - "components": { - "schemas": { - "ExternalApiResponse": { - "required": [ - "status", - "title" - ], - "type": "object", - "properties": { - "status": { - "type": "integer", - "description": "HTTP status code.", - "format": "int32", - "example": 400 - }, - "title": { - "type": "string", - "description": "Title of error.", - "nullable": true, - "example": "Validation error" - }, - "detail": { - "type": "string", - "description": "Detail of error.", - "nullable": true, - "example": "Field can not be empty" - }, - "errors": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ValidationError" - }, - "description": "List of validation errors (optional, only for 400 status with many errors).", - "nullable": true - } - }, - "additionalProperties": false, - "description": "Response for external API." - }, - "GetExternalProductListResponse": { - "required": [ - "data", - "links" - ], - "type": "object", - "properties": { - "links": { - "$ref": "#/components/schemas/Links" - }, - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ProductExternalDto" - }, - "description": "Kolekcja produktów.", - "nullable": true - } - }, - "additionalProperties": false - }, - "GetExternalProductResponse": { - "required": [ - "data" - ], - "type": "object", - "properties": { - "data": { - "$ref": "#/components/schemas/ProductExternalDto" - } - }, - "additionalProperties": false - }, - "GetLocalizationsResponse": { - "required": [ - "data", - "links", - "pageNo", - "pageSize", - "total" - ], - "type": "object", - "properties": { - "links": { - "$ref": "#/components/schemas/Links" - }, - "data": { - "type": "array", - "items": { - "$ref": "#/components/schemas/LocalizationDto" - }, - "description": "Lista lokalizacji.", - "nullable": true - }, - "total": { - "type": "integer", - "description": "Całkowita liczba elementów.", - "format": "int32" - }, - "pageNo": { - "type": "integer", - "description": "Numer strony.", - "format": "int32" - }, - "pageSize": { - "type": "integer", - "description": "Rozmiar strony.", - "format": "int32" - } - }, - "additionalProperties": false, - "description": "Odpowiedź listy lokalizacji." - }, - "Links": { - "type": "object", - "properties": { - "self": { - "type": "string", - "description": "Link do bieżącego zasobu.", - "nullable": true - }, - "first": { - "type": "string", - "description": "Link do pierwszej strony wyników.", - "nullable": true - }, - "prev": { - "type": "string", - "description": "Link do poprzedniej strony.", - "nullable": true - }, - "next": { - "type": "string", - "description": "Link do następnej strony.", - "nullable": true - }, - "last": { - "type": "string", - "description": "Link do ostatniej strony wyników.", - "nullable": true - } - }, - "additionalProperties": false, - "description": "Kontener linków paginacji." - }, - "LocalizationAtributes": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Pełna nazwa lokalizacji.", - "nullable": true - }, - "isEDI": { - "type": "boolean", - "description": "Określa, czy GLN służy do wymiany dokumentów elektronicznych (EDI).", - "nullable": true - }, - "isPhysicalAddress": { - "type": "boolean", - "description": "Określa, czy GLN wskazuje lokalizację fizyczną.", - "nullable": true - }, - "description": { - "type": "string", - "description": "Opis lokalizacji.", - "nullable": true - }, - "country": { - "type": "string", - "description": "Kod kraju (ISO 3166-1 alpha-2).", - "nullable": true - }, - "postalCode": { - "type": "string", - "description": "Kod pocztowy.", - "nullable": true - }, - "city": { - "type": "string", - "description": "Miejscowość.", - "nullable": true - }, - "streetAndNumber": { - "type": "string", - "description": "Ulica i numer.", - "nullable": true - }, - "latitude": { - "type": "string", - "description": "Szerokość geograficzna w formacie dziesiętnym.", - "nullable": true - }, - "longitude": { - "type": "string", - "description": "Długość geograficzna w formacie dziesiętnym.", - "nullable": true - }, - "lastModificationDate": { - "type": "string", - "description": "Data ostatniej modyfikacji (tylko do odczytu).\nZnacznik czasu RFC3339.", - "nullable": true - } - }, - "additionalProperties": false - }, - "LocalizationDto": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Typ zasobu. Musi mieć wartość `localizations`.", - "nullable": true - }, - "id": { - "type": "string", - "description": "Identyfikator lokalizacji – GLN (13 cyfr).", - "nullable": true - }, - "attributes": { - "$ref": "#/components/schemas/LocalizationAtributes" - } - }, - "additionalProperties": false - }, - "PackagingDto": { - "required": [ - "corkWeight", - "depth", - "grossWeight", - "height", - "isRecycling", - "materialColor", - "materialTypeCode", - "netContent", - "returnablePackageDepositAmount", - "startAvailabilityDateTime", - "width" - ], - "type": "object", - "properties": { - "description": { - "maxLength": 4000, - "minLength": 20, - "type": "string", - "description": "Opis opakowania.", - "nullable": true - }, - "materialTypeCode": { - "type": "string", - "description": "Rodzaj materiału opakowania.", - "nullable": true - }, - "isRecycling": { - "type": "boolean", - "description": "Czy opakowanie jest wielokrotnego użytku." - }, - "materialColor": { - "type": "string", - "description": "Kolor opakowania.", - "nullable": true - }, - "netContent": { - "maxLength": 15, - "type": "string", - "description": "Zawartość netto.", - "nullable": true - }, - "weightWithCork": { - "maxLength": 15, - "type": "string", - "description": "Waga opakowania z korkiem (g, dopuszczalna część ułamkowa).", - "nullable": true - }, - "corkWeight": { - "maxLength": 15, - "type": "string", - "description": "Waga korka/kapsla w gramach.", - "nullable": true - }, - "grossWeight": { - "maxLength": 15, - "type": "string", - "description": "Waga opakowania bez korka w gramach.", - "nullable": true - }, - "returnablePackageDepositAmount": { - "maxLength": 8, - "type": "string", - "description": "Kwota kaucji w PLN.", - "nullable": true - }, - "returnablePackageDepositAmountCurrency": { - "maxLength": 3, - "minLength": 0, - "type": "string", - "description": "Waluta kaucji (ISO 4217).", - "nullable": true - }, - "height": { - "maxLength": 15, - "type": "string", - "description": "Wysokość w milimetrach.", - "nullable": true - }, - "width": { - "maxLength": 15, - "type": "string", - "description": "Szerokość w milimetrach.", - "nullable": true - }, - "depth": { - "maxLength": 15, - "type": "string", - "description": "Głębokość/długość w milimetrach.", - "nullable": true - }, - "startAvailabilityDateTime": { - "type": "string", - "description": "Data wprowadzenia na rynek.", - "format": "date-time" - }, - "endAvailabilityDateTime": { - "type": "string", - "description": "Data wycofania z rynku.", - "format": "date-time", - "nullable": true - }, - "operatorId": { - "maxLength": 50, - "type": "string", - "description": "NIP operatora.", - "nullable": true - }, - "startAvailabilityWithOperator": { - "type": "string", - "description": "Data rozpoczęcia uczestnictwa u operatora.", - "format": "date-time" - }, - "endAvailabilityWithOperator": { - "type": "string", - "description": "Data zakończenia uczestnictwa u operatora.", - "format": "date-time", - "nullable": true - }, - "corkColor": { - "type": "string", - "description": "Kolor korka.", - "nullable": true - }, - "imageLink": { - "type": "string", - "description": "Link do grafiki na etykiecie.", - "nullable": true - }, - "imageType": { - "type": "string", - "description": "Rodzaj grafiki.", - "nullable": true - }, - "image3dLink": { - "type": "string", - "description": "Link do modelu 3D.", - "nullable": true - }, - "image3dType": { - "type": "string", - "description": "Rodzaj modelu 3D.", - "nullable": true - } - }, - "additionalProperties": false - }, - "ProductAttributesDto": { - "required": [ - "brandName", - "commonName", - "descriptionLanguage", - "gpcCode", - "netContent", - "netContentUnit", - "qualityDetails", - "status", - "subBrandName", - "targetMarket" - ], - "type": "object", - "properties": { - "additionalNetContent1": { - "type": "number", - "description": "Dodatkowa zawartość netto #1.", - "format": "double", - "nullable": true - }, - "additionalNetContent1Unit": { - "type": "string", - "description": "Jednostka dla AdditionalNetContent1.\nDopuszczalne wartości opisane są przy `netContentUnit`.", - "nullable": true - }, - "additionalNetContent2": { - "type": "number", - "description": "Dodatkowa zawartość netto #2.", - "format": "double", - "nullable": true - }, - "additionalNetContent2Unit": { - "type": "string", - "description": "Jednostka dla AdditionalNetContent2.", - "nullable": true - }, - "brandName": { - "maxLength": 200, - "minLength": 2, - "type": "string", - "description": "Nazwa marki.\nWymagane dla GTIN-13/12/8. Dla GTIN-14 pobierane z produktu bazowego.", - "nullable": true - }, - "commonName": { - "maxLength": 150, - "type": "string", - "description": "Nazwa zwyczajowa produktu.", - "nullable": true - }, - "countItemsInCollectivePackage": { - "type": "integer", - "description": "Liczba sztuk w opakowaniu zbiorczym.\nWymagane tylko dla wybranych typów produktów.", - "format": "int32", - "nullable": true - }, - "description": { - "maxLength": 4000, - "minLength": 20, - "type": "string", - "description": "Opis marketingowy.", - "nullable": true - }, - "descriptionLanguage": { - "maxLength": 2, - "minLength": 0, - "type": "string", - "description": "Język opisu (ISO 639-1, 2 litery).\nPrzykład: `pl`, `en`.", - "nullable": true - }, - "gpcCode": { - "type": "integer", - "description": "Kod GPC (Brick) – 8-cyfrowy.", - "format": "int64", - "nullable": true - }, - "internalSymbol": { - "maxLength": 255, - "minLength": 2, - "type": "string", - "description": "Wewnętrzny symbol produktu (SKU).", - "nullable": true - }, - "lastModificationDate": { - "type": "string", - "description": "Data ostatniej modyfikacji (tylko do odczytu).\nZnacznik czasu RFC3339, np. `2018-08-06T09:47:10.543Z`.", - "nullable": true - }, - "name": { - "maxLength": 400, - "type": "string", - "description": "Pełna nazwa produktu / label description (tylko do odczytu).\nBudowana automatycznie z brand/subbrand/commonName/variant/netContent.", - "nullable": true - }, - "netContent": { - "type": "number", - "description": "Wartość zawartości netto.", - "format": "double", - "nullable": true - }, - "netContentUnit": { - "type": "string", - "description": "Jednostka zawartości netto.\nDopuszczalne jednostki: m, cm, mm, l, cl, ml, kg, dkg, g, mg, szt, m2, m3.", - "nullable": true - }, - "productImage": { - "type": "string", - "description": "URL obrazka produktu lub base64 zależnie od użycia.", - "nullable": true - }, - "productWebsite": { - "maxLength": 1000, - "minLength": 1, - "type": "string", - "description": "Adres strony produktu.", - "nullable": true - }, - "qualityDetails": { - "$ref": "#/components/schemas/QualityDetails" - }, - "status": { - "type": "string", - "description": "Status produktu.\nDopuszczalne wartości:\n`ACT` - Active (Aktywny)`WIT` - Withdrawn (Wycofany)`HID` - Hidden (Ukryty)", - "nullable": true - }, - "subBrandName": { - "maxLength": 200, - "minLength": 2, - "type": "string", - "description": "Podmarka (opcjonalnie zależnie od typu GTIN).", - "nullable": true - }, - "targetMarket": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Rynki docelowe – kody krajów (ISO 3166-1).\nKody specjalne: `EU`, `WW`.", - "nullable": true - }, - "variant": { - "maxLength": 70, - "minLength": 2, - "type": "string", - "description": "Wariant.", - "nullable": true - }, - "packaging": { - "$ref": "#/components/schemas/PackagingDto" - } - }, - "additionalProperties": false - }, - "ProductExternalDto": { - "required": [ - "attributes", - "id", - "type" - ], - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Typ zasobu. Musi mieć wartość `products`.", - "nullable": true - }, - "id": { - "maxLength": 14, - "minLength": 0, - "type": "string", - "description": "Identyfikator produktu – numer GTIN (8/13/14 cyfr).", - "nullable": true - }, - "attributes": { - "$ref": "#/components/schemas/ProductAttributesDto" - } - }, - "additionalProperties": false - }, - "QualityDetails": { - "type": "object", - "properties": { - "suggestions": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - } - }, - "additionalProperties": false - }, - "QualityDetailsRecord": { - "type": "object", - "properties": { - "suggestions": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - } - }, - "additionalProperties": false - }, - "UpsertLocalizationResponse": { - "required": [ - "result" - ], - "type": "object", - "properties": { - "result": { - "type": "string", - "description": "Kod wyniku operacji.\nOczekiwana wartość: `OK`.", - "nullable": true - } - }, - "additionalProperties": false, - "description": "Wynik operacji utworzenia/aktualizacji lokalizacji." - }, - "UpsertProductAttributesExternalRequest": { - "type": "object", - "properties": { - "additionalNetContent1": { - "type": "number", - "description": "Dodatkowa zawartość netto #1.", - "format": "double", - "nullable": true - }, - "additionalNetContent1Unit": { - "type": "string", - "description": "Jednostka dodatkowej zawartości netto #1.\nDopuszczalne wartości: `m`, `cm`, `mm`, `l`, `cl`, `ml`, `kg`, `dkg`, `g`, `mg`, `szt`, `m2`, `m3`.", - "nullable": true - }, - "additionalNetContent2": { - "type": "number", - "description": "Dodatkowa zawartość netto #2.", - "format": "double", - "nullable": true - }, - "additionalNetContent2Unit": { - "type": "string", - "description": "Jednostka dodatkowej zawartości netto #2.\nDopuszczalne wartości: `m`, `cm`, `mm`, `l`, `cl`, `ml`, `kg`, `dkg`, `g`, `mg`, `szt`, `m2`, `m3`.", - "nullable": true - }, - "brandName": { - "type": "string", - "description": "Nazwa marki.", - "nullable": true - }, - "commonName": { - "type": "string", - "description": "Nazwa zwyczajowa produktu.", - "nullable": true - }, - "countItemsInCollectivePackage": { - "type": "integer", - "description": "Liczba sztuk w opakowaniu zbiorczym.", - "format": "int32", - "nullable": true - }, - "description": { - "type": "string", - "description": "Opis marketingowy/konsumencki.", - "nullable": true - }, - "descriptionLanguage": { - "type": "string", - "description": "Język opisu. ISO 639-1 (2 litery), np. `pl`.", - "nullable": true - }, - "gpcCode": { - "type": "number", - "description": "Kod GPC (brick).", - "format": "double", - "nullable": true - }, - "internalSymbol": { - "type": "string", - "description": "Wewnętrzny identyfikator produktu / SKU.", - "nullable": true - }, - "lastModificationDate": { - "type": "string", - "description": "Data/czas ostatniej modyfikacji (tylko do odczytu; ignorowane na wejściu).", - "nullable": true - }, - "name": { - "type": "string", - "description": "Pełna nazwa produktu (może być generowana przez system).", - "nullable": true - }, - "netContent": { - "type": "number", - "description": "Wartość zawartości netto.", - "format": "double", - "nullable": true - }, - "netContentUnit": { - "type": "string", - "description": "Jednostka zawartości netto.\nDopuszczalne wartości: `m`, `cm`, `mm`, `l`, `cl`, `ml`, `kg`, `dkg`, `g`, `mg`, `szt`, `m2`, `m3`.", - "nullable": true - }, - "productImage": { - "type": "string", - "description": "Odnośnik do zdjęcia produktu.", - "nullable": true - }, - "productWebsite": { - "type": "string", - "description": "Adres strony produktu.", - "nullable": true - }, - "qualityDetails": { - "$ref": "#/components/schemas/UpsertProductQualityDetailsExternalRequest" - }, - "status": { - "type": "string", - "description": "Status produktu.\nDopuszczalne wartości:\n`ACT` – Aktywny`WIT` – Wycofany`HID` – Ukryty", - "nullable": true - }, - "subBrandName": { - "type": "string", - "description": "Nazwa podmarki.", - "nullable": true - }, - "targetMarket": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Lista rynków docelowych.\nDopuszczalne wartości: kody krajów ISO 3166-1 alpha-2 (np. `PL`, `DE`) oraz kody specjalne:\n`EU` – Unia Europejska`WW` – Cały świat", - "nullable": true - }, - "variant": { - "type": "string", - "description": "Wariant produktu.", - "nullable": true - }, - "packaging": { - "$ref": "#/components/schemas/UpsertProductPackagingExternalRequest" - } - }, - "additionalProperties": false - }, - "UpsertProductExternalData": { - "required": [ - "attributes", - "id", - "type" - ], - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Typ zasobu. Musi mieć wartość `products`.", - "nullable": true - }, - "id": { - "maxLength": 14, - "minLength": 0, - "type": "string", - "description": "Identyfikator produktu – numer GTIN.", - "nullable": true - }, - "attributes": { - "$ref": "#/components/schemas/UpsertProductAttributesExternalRequest" - } - }, - "additionalProperties": false - }, - "UpsertProductExternalRequest": { - "required": [ - "data" - ], - "type": "object", - "properties": { - "data": { - "$ref": "#/components/schemas/UpsertProductExternalData" - } - }, - "additionalProperties": false - }, - "UpsertProductPackagingExternalRequest": { - "required": [ - "corkWeight", - "depth", - "grossWeight", - "height", - "isRecycling", - "materialColor", - "materialTypeCode", - "netContent", - "returnablePackageDepositAmount", - "startAvailabilityDateTime", - "width" - ], - "type": "object", - "properties": { - "description": { - "maxLength": 4000, - "minLength": 20, - "type": "string", - "description": "Opis opakowania.", - "nullable": true - }, - "materialTypeCode": { - "type": "string", - "description": "Kod rodzaju materiału opakowania.\nDopuszczalne wartości:\n`GLASS``GLASS_COLOURED``METAL_ALUMINUM``METAL_BRASS``METAL_IRON``METAL_LEAD``METAL_OTHER``METAL_STAINLESS_STEEL``METAL_STEEL``METAL_TIN``PLASTIC_OTHER``POLYMER_CELLULOSE_ACETATE``POLYMER_EPOXY``POLYMER_EVA``POLYMER_EVOH``POLYMER_HDPE``POLYMER_LDPE``POLYMER_LLDPE``POLYMER_MDPE``POLYMER_NYLON``POLYMER_PAN``POLYMER_PC``POLYMER_PCL``POLYMER_PE``POLYMER_PEN``POLYMER_PET``POLYMER_PHA``POLYMER_PLA``POLYMER_PP``POLYMER_PS``POLYMER_PU``POLYMER_PVA``POLYMER_PVC``POLYMER_PVDC``POLYMER_TPS`", - "nullable": true - }, - "isRecycling": { - "type": "boolean", - "description": "Informacja czy opakowanie jest zwrotne/wielokrotnego użytku." - }, - "materialColor": { - "type": "string", - "description": "Kolor materiału opakowania.\nDopuszczalne wartości:\n`TRANSPARENT``BLUE``GREEN``OTHER`", - "nullable": true - }, - "netContent": { - "maxLength": 15, - "type": "string", - "description": "Nominalna pojemność/zawartość opakowania.", - "nullable": true - }, - "weightWithCork": { - "maxLength": 15, - "type": "string", - "description": "Waga opakowania wraz z korkiem/kapslem.", - "nullable": true - }, - "corkWeight": { - "maxLength": 15, - "type": "string", - "description": "Waga korka/kapsla.", - "nullable": true - }, - "grossWeight": { - "maxLength": 15, - "type": "string", - "description": "Waga opakowania bez korka/kapsla.", - "nullable": true - }, - "returnablePackageDepositAmount": { - "maxLength": 8, - "type": "string", - "description": "Kwota kaucji za opakowanie zwrotne.", - "nullable": true - }, - "returnablePackageDepositAmountCurrency": { - "maxLength": 3, - "minLength": 0, - "type": "string", - "description": "Waluta kaucji. Kod ISO 4217 (np. PLN, EUR).", - "nullable": true - }, - "height": { - "maxLength": 15, - "type": "string", - "description": "Wysokość opakowania.", - "nullable": true - }, - "width": { - "maxLength": 15, - "type": "string", - "description": "Szerokość opakowania.", - "nullable": true - }, - "depth": { - "maxLength": 15, - "type": "string", - "description": "Głębokość/długość opakowania.", - "nullable": true - }, - "startAvailabilityDateTime": { - "type": "string", - "description": "Data/czas rozpoczęcia dostępności na rynku.", - "format": "date-time" - }, - "endAvailabilityDateTime": { - "type": "string", - "description": "Data/czas zakończenia dostępności na rynku.", - "format": "date-time", - "nullable": true - }, - "operatorId": { - "maxLength": 50, - "type": "string", - "description": "Identyfikator operatora.", - "nullable": true - }, - "startAvailabilityWithOperator": { - "type": "string", - "description": "Data/czas rozpoczęcia dostępności u operatora.", - "format": "date-time" - }, - "endAvailabilityWithOperator": { - "type": "string", - "description": "Data/czas zakończenia dostępności u operatora.", - "format": "date-time", - "nullable": true - }, - "corkColor": { - "type": "string", - "description": "Kolor korka/kapsla.\nDopuszczalne wartości: `TRANSPARENT`, `BLUE`, `GREEN`, `OTHER`.", - "nullable": true - }, - "imageLink": { - "type": "string", - "description": "Link do obrazu opakowania/etykiety.", - "nullable": true - }, - "imageType": { - "type": "string", - "description": "Kod typu obrazu.\nDopuszczalne wartości:\n`DIET_CERTIFICATE``DOCUMENT``GROUP_CHARACTERISTIC_SHEET``LOGO``MARKETING_INFORMATION``OUT_OF_PACKAGE_IMAGE``PLANOGRAM``PRODUCT_LABEL_IMAGE``SAFETY_DATA_SHEET``SAFETY_SUMMARY_SHEET``TRADE_ITEM_DESCRIPTION``VIDEO``WARRANTY_INFORMATION``WEBSITE`", - "nullable": true - }, - "image3dLink": { - "type": "string", - "description": "Link do obrazu/modelu 3D.", - "nullable": true - }, - "image3dType": { - "type": "string", - "description": "Kod typu obrazu/modelu 3D.\nDopuszczalne wartości:\n`DIET_CERTIFICATE``DOCUMENT``GROUP_CHARACTERISTIC_SHEET``LOGO``MARKETING_INFORMATION``OUT_OF_PACKAGE_IMAGE``PLANOGRAM``PRODUCT_LABEL_IMAGE``SAFETY_DATA_SHEET``SAFETY_SUMMARY_SHEET``TRADE_ITEM_DESCRIPTION``VIDEO``WARRANTY_INFORMATION``WEBSITE`", - "nullable": true - } - }, - "additionalProperties": false - }, - "UpsertProductQualityDetailsExternalRequest": { - "required": [ - "suggestions" - ], - "type": "object", - "properties": { - "suggestions": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Sugestie/ostrzeżenia jakości danych (zazwyczaj tylko do odczytu).\nTo pole jest wykorzystywane przez API do zwracania podpowiedzi; wysyłanie go w żądaniu może być ignorowane.", - "nullable": true - } - }, - "additionalProperties": false - }, - "UpsertProductResponse": { - "required": [ - "qualityDetails", - "result" - ], - "type": "object", - "properties": { - "result": { - "type": "string", - "nullable": true - }, - "qualityDetails": { - "$ref": "#/components/schemas/QualityDetailsRecord" - } - }, - "additionalProperties": false - }, - "ValidationError": { - "required": [ - "field", - "message" - ], - "type": "object", - "properties": { - "field": { - "type": "string", - "description": "Source of error (path to field in JSON).", - "nullable": true, - "example": "data.attributes.brandName" - }, - "message": { - "type": "string", - "description": "Detail of error.", - "nullable": true, - "example": "Field must be at least 2 characters long." - } - }, - "additionalProperties": false, - "description": "Single validation error." - } - }, - "securitySchemes": { - "basic": { - "type": "http", - "description": "Podaj login i haslo", - "scheme": "basic" - } - } - }, - "security": [ - { - "Bearer": [ ] - }, - { - "ApiKey": [ ] - } - ] -} diff --git a/tmp_gs1_excel_extract.txt b/tmp_gs1_excel_extract.txt deleted file mode 100644 index 1496b45..0000000 --- a/tmp_gs1_excel_extract.txt +++ /dev/null @@ -1,125 +0,0 @@ -FILE: D:\temp\Rejestr numerĂłw Project-Pro Jacek Pyziak 2026-02-24 21_58_10.xlsx -SHEETS: -- MojeGS1 (xl/worksheets/sheet1.xml) -- ObjaĹ›nienia (xl/worksheets/sheet2.xml) -- Rodzaj produktu (xl/worksheets/sheet3.xml) -- Jednostki miary (xl/worksheets/sheet4.xml) -- Klasyfikacja GPC (xl/worksheets/sheet5.xml) -- Status produktu na rynku (xl/worksheets/sheet6.xml) - -[MojeGS1] -HEADER COUNT: 24 -A: Rodzaj produktu -B: PeĹ‚na, ustandaryzowana nazwa produktu. -C: GTIN -D: WiodÄ…cy jÄ™zyk wprowadzanych danych produktowych (nazwy, opisu, zdjÄ™cia) -E: Marka -F: Podmarka -G: Nazwa zwyczajowa -H: Wariant -I: Zawartość netto produktu -J: Jednostka -K: Zawartość netto produktu (2) -L: Jednostka (2) -M: Zawartość netto produktu (3) -N: Jednostka (3) -O: Klasyfikacja GPC -P: đź› -Q: Kraj sprzedaĹĽy -R: Status produktu na rynku -S: Adres strony WWW produktu -T: Link do zdjÄ™cia produktu -U: Opis produktu -V: Symbol wewnÄ™trzny -W: Liczba sztuk produktu w opakowaniu -X: Jednostka zawartoĹ›ci, ktĂłra jest zmienna - -ROW 3: -A Rodzaj produktu: Produkt do sprzedaĹĽy detalicznej/online (GTIN-13, GTIN-12, GTIN-8) -B PeĹ‚na, ustandaryzowana nazwa produktu.: marianek.pl Zawieszka z czerwonÄ… kokardkÄ… WzĂłr 38 -C GTIN: 5905316173903 -D WiodÄ…cy jÄ™zyk wprowadzanych danych produktowych (nazwy, opisu, zdjÄ™cia): PL -E Marka: marianek.pl -G Nazwa zwyczajowa: Zawieszka z czerwonÄ… kokardkÄ… -H Wariant: WzĂłr 38 -I Zawartość netto produktu: 1 -J Jednostka : szt -O Klasyfikacja GPC: 10001387 -Q Kraj sprzedaĹĽy: PL -R Status produktu na rynku: Wycofany (juĹĽ nie w sprzedaĹĽy) -T Link do zdjÄ™cia produktu: https://mojegs1.pl/api/files/productimages/1f0228ca-2683-66f0-9e96-08e1a1d1e889/1f0228ca-332d-69f0-9193-5c9ff51b8b6b - -ROW 4: - -ROW 5: - -[Rodzaj produktu] -1: Rodzaj produktu | Opis -2: Produkt do sprzedaĹĽy detalicznej/online (GTIN-13, GTIN-12, GTIN-8) | Produkt do sprzedaĹĽy detalicznej/online (GTIN-13, GTIN-12, GTIN-8): Opakowanie jednostkowe np. puszka napoju przeznaczone do sprzedaĹĽy detalicznej, w tym online (Amazon, eBay, Allegro lub inny marketplace). -3: Opakowanie zbiorcze do sprzedaĹĽy detalicznej/online (GTIN-13) | Opakowanie zbiorcze np. zgrzewka z 6 butelkami wody, przeznaczone do sprzedaĹĽy detalicznej, w tym online (Amazon, eBay, Allegro lub inny marketplace). -4: Opakowanie zbiorcze jednorodne do sprzedaĹĽy hurtowej (GTIN-14) | Opakowanie zbiorcze skĹ‚adajÄ…ce siÄ™ z tych samych produktĂłw identyfikowanych tym samym numerem GTIN np. karton zawierajÄ…cy 16 sĹ‚oikĂłw dĹĽemu jagodowego. Tak oznaczone opakowanie nie jest jednostkÄ… konsumenckÄ… (nie jest przeznaczone do sprzedaĹĽy detalicznej). Zastosowanie GTIN-14 wymaga odrÄ™bnych ustaleĹ„ z partnerami handlowymi. -5: Produkt o zmiennej iloĹ›ci/masie w opakowaniach hurtowych (GTIN-14 z cyfrÄ… wskaĹşnikowÄ… 9) | Numer GTIN-14 zaczynajÄ…cy siÄ™ cyfrÄ… wskaĹşnikowÄ… "9" sĹ‚uĹĽy do identyfikacji produktĂłw o zmiennej iloĹ›ci w opakowaniach hurtowych np. skrzynia zawierajÄ…ca 10 główek kapusty, czy pojemnik z polÄ™dwicÄ… sopockÄ…. NaleĹĽy pamiÄ™tać, ĹĽe GTIN-14 z cyfrÄ… wskaĹşnikowÄ… "9" nie jest przeznaczony do skanowania w punktach sprzedaĹĽy detalicznej i wymaga odrÄ™bnych ustaleĹ„ z partnerami handlowymi. - -[Jednostki miary] -1: Opis jednostki | Jednostka -2: m (metr) | m -3: cm (centymetr) | cm -4: mm (milimetr) | mm -5: l (litr) | l -6: cl (centylitr) | cl -7: ml (mililitr) | ml -8: kg (kilogram) | kg -9: dkg (dekagram) | dkg -10: g (gram) | g -11: mg (miligram) | mg -12: szt (sztuka) | szt -13: m2 (metr kwadratowy) | m2 -14: m3 (metr szeĹ›cienny) | m3 - -[Klasyfikacja GPC] -1: nr GPC - Brick Code | Opis [PL] | Opis [EN] | Obejmuje produkty | Nie obejmuje produktĂłw -2: 10000002 | Owoce - Nieprzetworzone (mroĹĽone) | Fruit - Unprepared/Unprocessed (Frozen) | Obejmuje wszelkie produkty opisane/obserwowane jako dowolna odmiana mroĹĽonych owocĂłw lub kombinacja owocĂłw, ktĂłre mogÄ… być caĹ‚e lub z pestkÄ…, pestkowane, siekane, wydrÄ…ĹĽone i/lub obrane, ale nie przeszĹ‚y ĹĽadnych dalszych procesĂłw produkcyjnych, takich jak reformowanie lub gotowanie, jednakĹĽe produkty te mogÄ… być powlekane, w sosie, nadziewane lub wypeĹ‚niane. Produkty te muszÄ… być mroĹĽone, aby wydĹ‚uĹĽyć ich przydatność do spoĹĽycia. | Nie obejmuje produktĂłw takich jak owoce przetworzone i oraz Ĺ›wieĹĽe i trwaĹ‚e owoce nieprzetworzone. W szczegĂłlnoĹ›ci nie obejmuje pomidorĂłw. -3: 10000003 | Owoce - Nieprzetworzone (trwaĹ‚e) | Fruit - Unprepared/Unprocessed (Shelf Stable) | Obejmuje wszelkie produkty opisane/obserwowane jako dowolna odmiana owocĂłw lub kombinacja owocĂłw, ktĂłre mogÄ… być caĹ‚e lub z pestkÄ…, pestkowane, siekane, wydrÄ…ĹĽone i/lub obrane, ale nie przeszĹ‚y ĹĽadnych dalszych procesĂłw produkcyjnych, takich jak reformowanie, suszenie lub gotowanie, jednakĹĽe produkty te mogÄ… być powlekane, w sosie, nadziewane lub wypeĹ‚niane. Produkty te zostaĹ‚y poddane obrĂłbce lub zapakowane w taki sposĂłb, aby przedĹ‚uĹĽyć ich przydatność do spoĹĽycia. | Nie obejmuje produktĂłw takich jak owoce przetworzone i oraz Ĺ›wieĹĽe i mroĹĽone owoce nieprzetworzone. W szczegĂłlnoĹ›ci nie obejmuje pomidorĂłw. -4: 10000005 | Warzywa - Nieprzetworzone (mroĹĽone) | Vegetables - Unprepared/Unprocessed (Frozen) | Obejmuje wszelkie produkty opisane/obserwowane jako dowolna odmiana mroĹĽonych warzyw, kombinacji warzyw lub warzyw owocowych, ktĂłre mogÄ… być caĹ‚e, rozdrobnione, oczyszczone i przyciÄ™te, ktĂłre nie przeszĹ‚y przez dalsze procesy produkcyjne, takie jak reformowane, gotowane, suszone, solone lub wÄ™dzone, jednakĹĽe produkty te mogÄ… być rĂłwnieĹĽ powlekane, w sosie, nadziewane lub wypeĹ‚niane. | Nie obejmuje produktĂłw takich jak warzywa z dodatkiem ciasta lub ziaren, Ĺ›wieĹĽe i trwaĹ‚e warzywa nieprzetworzone, wszystkie warzywa przetworzone. W szczegĂłlnoĹ›ci nie obejmuje produktĂłw, ktĂłre majÄ… dodane skĹ‚adniki, takie jak ryĹĽ, kuskus i makaron. Produkty te muszÄ… być mroĹĽone, aby wydĹ‚uĹĽyć ich przydatność do spoĹĽycia. -5: 10000006 | Warzywa - nieprzetworzone (trwaĹ‚e) | Vegetables - Unprepared/Unprocessed (Shelf Stable) | Obejmuje wszelkie produkty opisane/obserwowane jako dowolna odmiana warzyw, kombinacji warzyw lub warzyw owocowych, ktĂłre mogÄ… być caĹ‚e, rozdrobnione, oczyszczone i przyciÄ™te, ktĂłre nie przeszĹ‚y przez dalsze procesy produkcyjne, takie jak reformowane, gotowane, suszone, solone lub wÄ™dzone, jednakĹĽe produkty te mogÄ… być rĂłwnieĹĽ powlekane, w sosie, nadziewane lub wypeĹ‚niane. | W szczegĂłlnoĹ›ci nie obejmuje produktĂłw, ktĂłre majÄ… dodane skĹ‚adniki, takie jak ryĹĽ, kuskus i makaron. Produkty te zostaĹ‚y poddane obrĂłbce lub zapakowane w taki sposĂłb, aby przedĹ‚uĹĽyć ich przydatność do spoĹĽycia. Nie obejmuje produktĂłw takich jak warzywa z dodatkiem ciasta lub ziaren, mroĹĽone i Ĺ›wieĹĽe warzywa nieprzetworzone, wszystkie warzywa przetworzone. -6: 10000007 | Orzechy/nasiona - nieprzetworzone (Ĺ‚atwo psujÄ…ce siÄ™) | Nuts/Seeds - Unprepared/Unprocessed (Perishable) | Obejmuje wszelkie produkty opisane/obserwowane jako dowolna odmiana Ĺ›wieĹĽych orzechĂłw i nasion, ktĂłre nie przeszĹ‚y przez dalsze procesy produkcyjne, takie jak reformowane, suszone lub gotowane, jednakĹĽe produkty te mogÄ… być rĂłwnieĹĽ powlekane, w sosie, nadziewane lub wypeĹ‚niane. Produkty te mogÄ…/muszÄ… być chĹ‚odzone, aby wydĹ‚uĹĽyć ich przydatność do spoĹĽycia. Produkty obejmujÄ… orzechy i nasiona sprzedawane osobno lub w kombinacji. | Nie obejmuje produktĂłw, takich jak orzechy i nasiona trwaĹ‚e, orzechy i nasiona przetworzone oraz nasiona, owoce i orzechy i/lub mieszanki nasion. -7: 10000008 | Orzechy/nasiona - nieprzetworzone (w Ĺ‚upinie) | Nuts/Seeds - Unprepared/Unprocessed (In Shell) | Obejmuje wszelkie produkty opisane/obserwowane jako dowolna odmiana orzechĂłw i nasion, ktĂłre nie przeszĹ‚y przez dalsze procesy produkcyjne, takie jak reformowanie, suszenie lub gotowanie, jednakĹĽe produkty te mogÄ… być rĂłwnieĹĽ powlekane, w sosie, nadziewane lub wypeĹ‚niane. Produkty te zostaĹ‚y poddane obrĂłbce lub zapakowane w taki sposĂłb, aby przedĹ‚uĹĽyć ich przydatność do spoĹĽycia. Produkty obejmujÄ… orzechy i nasiona sprzedawane osobno lub w kombinacji. | Nie obejmuje produktĂłw, takich jak orzechy i nasiona przetworzone, mieszanki owocĂłw, orzechĂłw i/lub nasion. -8: 10000016 | Ryby - Przetworzone (Ĺ‚atwo psujÄ…ce siÄ™) | Fish - Prepared/Processed (Perishable) | Obejmuje wszelkie produkty opisane/obserwowane jako dowolna odmiana ryb lub kombinacja ryb, ktĂłre przeszĹ‚y przez dalsze procesy produkcyjne, takie jak reformowanie, suszenie, gotowanie lub solenie, jednakĹĽe produkty te mogÄ… być rĂłwnieĹĽ powlekane, w sosie, nadziewane lub wypeĹ‚niane. | W szczegĂłlnoĹ›ci nie obejmuje produktĂłw, ktĂłre majÄ… dodane skĹ‚adniki, takie jak ryĹĽ, kuskus i makaron. JednakĹĽe produkty mogÄ… zawierać niewielkÄ… ilość warzyw, takich jak te w sosie lub nadzieniu/wypeĹ‚nieniu. Produkty te muszÄ… być chĹ‚odzone, aby wydĹ‚uĹĽyć ich przydatność do spoĹĽycia. Nie obejmuje produktĂłw takich jak ryby z dodatkiem warzyw, ciasta lub ziaren, mroĹĽone i trwaĹ‚e ryby przetworzone, wszystkie ryby nieprzetworzone. -9: 10000017 | Ryby - przetworzone (mroĹĽone) | Fish - Prepared/Processed (Frozen) | Obejmuje wszelkie produkty opisane/obserwowane jako dowolna odmiana ryb lub kombinacja ryb, ktĂłre przeszĹ‚y przez dalsze procesy produkcyjne, takie jak reformowanie, suszenie, gotowanie lub solenie, jednakĹĽe produkty te mogÄ… być rĂłwnieĹĽ powlekane, w sosie, nadziewane lub wypeĹ‚niane. | W szczegĂłlnoĹ›ci nie obejmuje produktĂłw, ktĂłre majÄ… dodane skĹ‚adniki, takie jak ryĹĽ, kuskus i makaron. JednakĹĽe produkty mogÄ… zawierać niewielkÄ… ilość warzyw, takich jak te w sosie lub nadzieniu/wypeĹ‚nieniu. Produkty te muszÄ… być mroĹĽone, aby wydĹ‚uĹĽyć ich przydatność do spoĹĽycia. Nie obejmuje produktĂłw takich jak ryby z dodatkiem warzyw, ciasta lub ziaren, trwaĹ‚e i Ĺ‚atwo psujÄ…ce siÄ™ ryby przetworzone, wszystkie ryby nieprzetworzone. -10: 10000018 | Ryby - Przetworzone (trwaĹ‚e) | Fish - Prepared/Processed (Shelf Stable) | Obejmuje wszelkie produkty opisane/obserwowane jako dowolna odmiana ryb lub kombinacja ryb, ktĂłre przeszĹ‚y przez dalsze procesy produkcyjne, takie jak reformowanie, suszenie, gotowanie lub solenie, jednakĹĽe produkty te mogÄ… być rĂłwnieĹĽ powlekane, w sosie, nadziewane lub wypeĹ‚niane. | W szczegĂłlnoĹ›ci nie obejmuje produktĂłw, ktĂłre majÄ… dodane skĹ‚adniki, takie jak ryĹĽ, kuskus i makaron. JednakĹĽe produkty mogÄ… zawierać niewielkÄ… ilość warzyw, takich jak te w sosie lub nadzieniu/wypeĹ‚nieniu. Produkty te zostaĹ‚y poddane obrĂłbce lub zapakowane w taki sposĂłb, aby przedĹ‚uĹĽyć ich przydatność do spoĹĽycia. Nie obejmuje produktĂłw takich jak ryby z dodatkiem warzyw, ciasta lub ziaren, mroĹĽone i Ĺ‚atwo psujÄ…ce siÄ™ ryby przetworzone, wszystkie ryby nieprzetworzone. -11: 10000019 | Skorupiaki - nieprzetworzone (Ĺ‚atwo psujÄ…ce siÄ™) | Shellfish - Unprepared/Unprocessed (Perishable) | Obejmuje wszelkie produkty opisane/obserwowane jako zwierzÄ™ta wodne, ktĂłrych powĹ‚oka zewnÄ™trzna skĹ‚ada siÄ™ z muszli, jak u ostryg, małży, homarĂłw i krabĂłw, ktĂłre nie przeszĹ‚y przez dalsze procesy produkcyjne, takie jak reformowanie, suszenie, gotowanie lub solenie, jednakĹĽe produkty te mogÄ… być rĂłwnieĹĽ powlekane, w sosie, nadziewane lub wypeĹ‚niane. Produkty obejmujÄ… Ĺ›limaki morskie i miÄ™czaki, ale w szczegĂłlnoĹ›ci nie obejmujÄ… produktĂłw, ktĂłre majÄ… dodane skĹ‚adniki, takie jak ryĹĽ, kuskus i makaron. JednakĹĽe produkty mogÄ… zawierać niewielkÄ… ilość warzyw, takich jak te w sosie lub nadzieniu/wypeĹ‚nieniu. Produkty te muszÄ… być chĹ‚odzone, aby wydĹ‚uĹĽyć ich przydatność do spoĹĽycia. | Nie obejmuje produktĂłw takich jak skorupiaki z dodatkiem warzyw, ciasta lub ziaren, trwaĹ‚e i mroĹĽone skorupiaki nieprzetworzone, wszystkie skorupiaki przetworzone. -12: 10000020 | Skorupiaki - nieprzetworzone (mroĹĽone) | Shellfish - Unprepared/Unprocessed (Frozen) | Obejmuje wszelkie produkty opisane/obserwowane jako zwierzÄ™ta wodne, ktĂłrych powĹ‚oka zewnÄ™trzna skĹ‚ada siÄ™ z muszli, jak u ostryg, małży, homarĂłw i krabĂłw, ktĂłre nie przeszĹ‚y przez dalsze procesy produkcyjne, takie jak reformowanie, suszenie, gotowanie lub solenie, jednakĹĽe produkty te mogÄ… być rĂłwnieĹĽ powlekane, w sosie, nadziewane lub wypeĹ‚niane. Produkty obejmujÄ… Ĺ›limaki morskie i miÄ™czaki, ale w szczegĂłlnoĹ›ci nie obejmujÄ… produktĂłw, ktĂłre majÄ… dodane skĹ‚adniki, takie jak ryĹĽ, kuskus i makaron. JednakĹĽe produkty mogÄ… zawierać niewielkÄ… ilość warzyw, takich jak te w sosie lub nadzieniu/wypeĹ‚nieniu. Produkty te muszÄ… być mroĹĽone, aby wydĹ‚uĹĽyć ich przydatność do spoĹĽycia. | Nie obejmuje produktĂłw takich jak skorupiaki z dodatkiem warzyw, ciasta lub ziaren, trwaĹ‚e i Ĺ‚atwo psujÄ…ce siÄ™ skorupiaki nieprzetworzone, wszystkie skorupiaki przetworzone. -13: 10000021 | Skorupiaki - Nieprzetworzone (trwaĹ‚e) | Shellfish - Unprepared/Unprocessed (Shelf Stable) | Obejmuje wszelkie produkty opisane/obserwowane jako zwierzÄ™ta wodne, ktĂłrych powĹ‚oka zewnÄ™trzna skĹ‚ada siÄ™ z muszli, jak u ostryg, małży, homarĂłw i krabĂłw, ktĂłre nie przeszĹ‚y przez dalsze procesy produkcyjne, takie jak reformowanie, suszenie, gotowanie lub solenie, jednakĹĽe produkty te mogÄ… być rĂłwnieĹĽ powlekane, w sosie, nadziewane lub wypeĹ‚niane. Produkty obejmujÄ… Ĺ›limaki morskie i miÄ™czaki, ale w szczegĂłlnoĹ›ci nie obejmujÄ… produktĂłw, ktĂłre majÄ… dodane skĹ‚adniki, takie jak ryĹĽ, kuskus i makaron. JednakĹĽe produkty mogÄ… zawierać niewielkÄ… ilość warzyw, takich jak te w sosie lub nadzieniu/wypeĹ‚nieniu. Produkty te zostaĹ‚y poddane obrĂłbce lub zapakowane w taki sposĂłb, aby przedĹ‚uĹĽyć ich przydatność do spoĹĽycia. | Nie obejmuje produktĂłw takich jak skorupiaki z dodatkiem warzyw, ciasta lub ziaren, mroĹĽone i Ĺ‚atwo psujÄ…ce siÄ™ skorupiaki nieprzetworzone, wszystkie skorupiaki przetworzone. -14: 10000025 | Mleko/substytuty mleka (Ĺ‚atwo psujÄ…ce siÄ™) | Milk (Perishable) | Obejmuje wszelkie produkty opisane/obserwowane jako mleko niearomatyzowane pochodzÄ…ce od zwierzÄ…t, takich jak krowy, kozy i bawoĹ‚y oraz mleko na bazie warzyw, pochodzÄ…ce naturalnie z owocĂłw lub warzyw, takie jak mleko kokosowe i migdaĹ‚owe lub biaĹ‚ka roĹ›linnego, takie jak mleko sojowe. Produkty obejmujÄ… te, ktĂłre zostaĹ‚y zaszczepione ĹĽywymi bakteriami acidophilus i bifidus, ale byĹ‚y utrzymywane w temperaturze, ktĂłra jest zbyt niska, aby bakterie te mogĹ‚y siÄ™ rozwinąć, a zatem nie zostaĹ‚y poddane fermentacji i zachowaĹ‚y smak naturalnego mleka. Produkty te muszÄ… być chĹ‚odzone, aby wydĹ‚uĹĽyć ich przydatność do spoĹĽycia. | Nie obejmuje produktĂłw takich jak mroĹĽone i trwaĹ‚e mleko oraz substytuty mleka, a takĹĽe napoje i preparaty specjalistyczne dla niemowlÄ…t. -15: 10000026 | Mleko/substytuty mleka (trwaĹ‚e) | Milk (Shelf Stable) | Obejmuje wszelkie produkty opisane/obserwowane jako mleko niearomatyzowane pochodzÄ…ce od zwierzÄ…t, takich jak krowy, kozy i bawoĹ‚y oraz mleko na bazie warzyw, pochodzÄ…ce naturalnie z owocĂłw lub warzyw, takie jak mleko kokosowe i migdaĹ‚owe lub biaĹ‚ka roĹ›linnego, takie jak mleko sojowe. Produkty te zostaĹ‚y poddane obrĂłbce lub zapakowane w taki sposĂłb, aby przedĹ‚uĹĽyć ich przydatność do spoĹĽycia. Produkty obejmujÄ… mleko odparowane, mleko skondensowane i mleko poddane obrĂłbce UHT. | Nie obejmuje produktĂłw takich jak mroĹĽone i Ĺ‚atwo psujÄ…ce siÄ™ mleko oraz substytuty mleka, a takĹĽe napoje i preparaty specjalistyczne dla niemowlÄ…t. W szczegĂłlnoĹ›ci nie obejmuje wszystkich napojĂłw na bazie sfermentowanego mleka (lub substytutĂłw mleka). -16: 10000027 | Mleko/substytuty mleka (mroĹĽone) | Milk (Frozen) | Obejmuje wszelkie produkty opisane/obserwowane jako mroĹĽone mleko niearomatyzowane pochodzÄ…ce od zwierzÄ…t, takich jak krowy, kozy i bawoĹ‚y oraz mleko na bazie warzyw, pochodzÄ…ce naturalnie z owocĂłw lub warzyw, takie jak mleko kokosowe i migdaĹ‚owe lub biaĹ‚ka roĹ›linnego, takie jak mleko sojowe. Produkty te muszÄ… być mroĹĽone, aby wydĹ‚uĹĽyć ich przydatność do spoĹĽycia. Produkty obejmujÄ… homogenizowane i pasteryzowane, ale nie w celu sztucznego przedĹ‚uĹĽania okresu przydatnoĹ›ci do spoĹĽycia. | Nie obejmuje produktĂłw takich jak trwaĹ‚e i Ĺ‚atwo psujÄ…ce siÄ™ mleko oraz substytuty mleka, a takĹĽe napoje i preparaty specjalistyczne dla niemowlÄ…t. -17: 10000028 | Ser/substytuty sera (Ĺ‚atwo psujÄ…ce siÄ™) | Cheese (Perishable) | Obejmuje wszelkie produkty, ktĂłre mogÄ… być opisane/obserwowane jako ĹĽywność otrzymywana z twarogu mleka, oddzielona od serwatki, czasami fermentowana, zazwyczaj prasowana, gotowana, wÄ™dzona, dojrzewajÄ…ca lub podgrzewana i mieszana ze skĹ‚adnikami sztucznymi, takimi jak emulgatory, barwniki i Ĺ›rodki aromatyzujÄ…ce. Produkty te muszÄ… być chĹ‚odzone, aby wydĹ‚uĹĽyć ich przydatność do spoĹĽycia. Produkty te obejmujÄ… naturalny, przetworzony ser i substytuty, ser z dodatkiem skĹ‚adnikĂłw, takich jak zioĹ‚a i orzechy, w blokach, roladach, plasterkach, tarty, w kostkach, nadajÄ…cych siÄ™ do smarowania i w porcjach. | Nie obejmuje produktĂłw takich jak sery trwaĹ‚e i mroĹĽone oraz substytuty serĂłw i posiĹ‚ki na bazie/aromatyzowane serem i i serek Ĺ›wieĹĽy. -18: 10000029 | Ser/substytuty sera (trwaĹ‚e) | Cheese (Shelf Stable) | Obejmuje wszelkie produkty, ktĂłre mogÄ… być opisane/obserwowane jako ĹĽywność otrzymywana z twarogu mleka, oddzielona od serwatki, czasami fermentowana, zazwyczaj prasowana, gotowana, wÄ™dzona, dojrzewajÄ…ca lub podgrzewana i mieszana ze skĹ‚adnikami sztucznymi, takimi jak emulgatory, barwniki i Ĺ›rodki aromatyzujÄ…ce. Produkty te zostaĹ‚y poddane obrĂłbce lub zapakowane w taki sposĂłb, aby przedĹ‚uĹĽyć ich przydatność do spoĹĽycia. Produkty te obejmujÄ… naturalny, przetworzony ser i substytuty, ser z dodatkiem skĹ‚adnikĂłw, takich jak zioĹ‚a i orzechy, w blokach, roladach, plasterkach, tarty, w kostkach, nadajÄ…cych siÄ™ do smarowania i w porcjach. | Nie obejmuje produktĂłw takich jak sery mroĹĽone i Ĺ‚atwo psujÄ…ce siÄ™ oraz substytuty serĂłw i posiĹ‚ki na bazie/aromatyzowane serem i i serek Ĺ›wieĹĽy. -19: 10000030 | Ser/substytuty sera (mroĹĽone) | Cheese (Frozen) | Obejmuje wszelkie produkty, ktĂłre mogÄ… być opisane/obserwowane jako ĹĽywność mroĹĽona otrzymywana z twarogu mleka, oddzielona od serwatki, czasami fermentowana, zazwyczaj prasowana, gotowana, wÄ™dzona, wÄ™dzona, dojrzewajÄ…ca lub podgrzewana i mieszana ze skĹ‚adnikami sztucznymi, takimi jak emulgatory, barwniki i Ĺ›rodki aromatyzujÄ…ce. Produkty te muszÄ… być mroĹĽone, aby wydĹ‚uĹĽyć ich przydatność do spoĹĽycia. Produkty te obejmujÄ… naturalny, przetworzony ser i substytuty, ser z dodatkiem skĹ‚adnikĂłw, takich jak zioĹ‚a i orzechy, w blokach, roladach, plasterkach, tarty, w kostkach, nadajÄ…cych siÄ™ do smarowania i w porcjach. | Nie obejmuje produktĂłw takich jak sery trwaĹ‚e i Ĺ‚atwo psujÄ…ce siÄ™ oraz substytuty serĂłw i posiĹ‚ki na bazie/aromatyzowane serem i i serek Ĺ›wieĹĽy. -20: 10000040 | Jadalne oleje - warzywne lub roĹ›linne (trwaĹ‚e) | Oils Edible - Vegetable or Plant (Shelf Stable) | Obejmuje wszelkie produkty opisane/obserwowane jako jadalne oleje pĹ‚ynne otrzymane z nastÄ™pujÄ…cych produktĂłw: ziarna, orzechy, oliwki, palmy, pestki palmowe, nasiona, kukurydza, miÄ…ĹĽsz owocowy, fasola lub ich kombinacje, ktĂłre mogÄ… być nalewane lub dozowane w aerozolu, przeznaczone do gotowania lub do uĹĽytku jako dressing do saĹ‚atek. Produkty mogÄ… zawierać dodatki smakowe, takie jak chili i zioĹ‚a. | Nie obejmuje produktĂłw takich jak oleje na bazie suplementĂłw diety, takich jak oleje na bazie wÄ…troby dorsza oraz oleje niejadalne, takie jak olej lniany. -21: 10000041 | TĹ‚uszcze jadalne - zwierzÄ™ce (Ĺ‚atwo psujÄ…ce siÄ™) | Fats Edible - Animal (Perishable) | Obejmuje wszelkie produkty opisane/obserwowane jako produkty staĹ‚e wykonane z topliwego tĹ‚uszczu zwierzÄ™cego, oczyszczone, a nastÄ™pnie pozostawione do zestalenia po schĹ‚odzeniu. Produkty te przeznaczone sÄ… do gotowania i pieczenia. Produkty te mogÄ…/muszÄ… być chĹ‚odzone, aby wydĹ‚uĹĽyć ich przydatność do spoĹĽycia. Produkty obejmujÄ… smalec, tĹ‚uszcz piekarniczy i łój. | Nie obejmuje produktĂłw takich jak tĹ‚uszcze roĹ›linne, margaryna i masĹ‚o lub pasty do smarowania na bazie masĹ‚a. -22: 10000042 | TĹ‚uszcze jadalne - warzywne/roĹ›linne (trwaĹ‚e) | Fats Edible - Vegetable/Plant (Shelf Stable) | Obejmuje wszelkie produkty opisane/obserwowane jako produkty staĹ‚e wytworzone ze sztucznie utwardzanych olejĂłw roĹ›linnych, przeznaczone do pieczenia i gotowania. Produkty te zostaĹ‚y poddane obrĂłbce lub zapakowane w taki sposĂłb, aby przedĹ‚uĹĽyć ich przydatność do spoĹĽycia. Produkty obejmujÄ… roĹ›linny tĹ‚uszcz piekarniczy przeznaczony specjalnie do pieczenia i gotowania. | Nie obejmuje produktĂłw takich jak masĹ‚o i smarowidĹ‚a na bazie masĹ‚a oraz margaryna, tĹ‚uszcze zwierzÄ™ce do gotowania oraz oleje roĹ›linne. -23: 10000043 | Cukier/substytuty cukru (trwaĹ‚e) | Sugar/Sugar Substitutes (Shelf Stable) | Obejmuje wszelkie produkty opisane/obserwowane jako substancja sĹ‚odka, otrzymywana na różnych etapach rafinacji soku z trzciny cukrowej/burakĂłw cukrowych/molasy cukrowej lub sztuczna substancja sĹ‚odka, ktĂłra jest specjalnie oznakowana i wprowadzana do obrotu w celu zastÄ…pienia naturalnego cukru, stosowana jako substancja sĹ‚odzÄ…ca i konserwujÄ…ca ĹĽywność i napoje. Produkty obejmujÄ… cukry biaĹ‚e, takie jak: cukier drobny, w kostkach, w bloku, granulowany, lukier i konserwujÄ…cy, cukry barwione, takie jak brÄ…zowy, barbados, demerara i sztuczne substancje sĹ‚odzÄ…ce, takie jak sacharyna, sorbitol i ksylitol. | Nie obejmuje produktĂłw takich jak syropy, nieskrystalizowane syropy i melasy, cukier cukierniczy i substytuty cukrĂłw cukierniczych. -24: 10000044 | Syropy/nieskrystalizowane syropy/ melasy (trwaĹ‚e) | Syrup/Treacle/Molasses (Shelf Stable) | Obejmuje wszelkie produkty opisane/obserwowane jako sĹ‚odkie, gÄ™ste ciecze bÄ™dÄ…ce pochodnÄ… procesu krystalizacji cukru, takie jak melasa (pozostaĹ‚ość po pierwszym etapie), syrop nieskrystalizowany (pozostaĹ‚ość po drugim etapie sĹ‚odsza i mniej lepka niĹĽ melasa), syrop (wyprodukowany z melasy, glukozy i czÄ™sto Ĺ›rodkĂłw aromatyzujÄ…cych lub roztwĂłr cukru, ktĂłry moĹĽe pochodzić z różnych ĹşrĂłdeĹ‚, takich jak klon). Produkty obejmujÄ… syropy kukurydziane, syropy owocowe, zĹ‚ote, syropy klonowe i melasowe. | Nie obejmuje produktĂłw takich jak cukier i substytuty cukru. -25: 10000045 | Czekolada i kombinacje czekolady z cukrem - Wyroby cukiernicze | Chocolate and Chocolate/Sugar Candy Combinations - Confectionery | Obejmuje wszelkie produkty opisane/obserwowane jako porcja cukiernicza czekolady lub substytutĂłw czekolady lub wyrĂłb bÄ™dÄ…cy połączeniem czekolady i sĹ‚odyczy cukrowych, ktĂłry moĹĽe zawierać dodatkowe skĹ‚adniki, takie jak pomada, nugat, marcepan, karmel, Ĺ›mietana cukrowa, orzechy, orzechy kokosowe, suszone owoce i inne miÄ™kkie nadzienia. Produkty te mogÄ… być sprzedawane pojedynczo lub pakowane w celu zapewnienia iloĹ›ci podobnych produktĂłw. | Nie obejmuje wyrobĂłw takich jak czyste wyroby cukiernicze bez powĹ‚oki czekoladowej. -26: 10000047 | Wyroby cukiernicze cukrowe/z substytutĂłw cukru | Sugar Candy/Sugar Candy Substitutes Confectionery | Obejmuje wszelkie produkty opisane/obserwowane jako sĹ‚odycze twarde lub miÄ™kkie wykonane głównie z cukru, z dodatkiem Ĺ›rodkĂłw aromatyzujÄ…cych, ktĂłre mogÄ… zawierać ĹĽelatynÄ™ lub nie. Produkty te mogÄ… być pojedynczo zawiniÄ™te, pakowane luzem w torebkÄ™ lub pojemnik lub szczelnie zapakowane w rolkÄ™ lub rurkÄ™. Produkty obejmujÄ… toffi. | Nie obejmuje wyrobĂłw takich jak wyroby cukiernicze pokryte czekoladÄ…. -27: 10000048 | ZioĹ‚a/przyprawy (Ĺ‚atwo psujÄ…ce siÄ™) | Herbs/Spices (Perishable) | Obejmuje wszelkie produkty opisane/obserwowane jako aromatyczne lub bogato aromatyzowane pochodne warzywa lub roĹ›liny, ktĂłre zazwyczaj dodawane sÄ… w celu przyprawienia lub nadania ĹĽywnoĹ›ci dodatkowego smaku. Produkty te obejmujÄ… aromatyczne przyprawy, ktĂłre sÄ… otrzymywane z kory, pÄ…kĂłw, owocĂłw, korzeni, nasion lub Ĺ‚odyg różnych roĹ›lin i znane jako przyprawy, oraz te, ktĂłre sÄ… otrzymywane z liĹ›ciastej części roĹ›liny i znane sÄ… jako zioĹ‚a. Produkty te mogÄ…/muszÄ… być chĹ‚odzone, aby wydĹ‚uĹĽyć ich przydatność do spoĹĽycia. | Nie obejmuje produktĂłw takich jak Ĺ›wieĹĽe, caĹ‚e zioĹ‚a klasyfikowane jako Ĺ›wieĹĽe warzywa, doniczkowe zioĹ‚a klasyfikowane w kategorii Trawniki/Ogrody, trwaĹ‚e zioĹ‚a i przyprawy, sĂłl i ekstrakty. -28: 10000049 | ZioĹ‚a/przyprawy (trwaĹ‚e) | Herbs/Spices (Shelf Stable) | Obejmuje wszelkie produkty opisane/obserwowane jako aromatyczne lub bogato aromatyzowane warzywa lub roĹ›liny lub ich pochodne, ktĂłre zazwyczaj dodawane sÄ… w celu przyprawienia lub nadania ĹĽywnoĹ›ci dodatkowego smaku. Produkty te obejmujÄ… aromatyczne przyprawy, ktĂłre sÄ… otrzymywane z kory, pÄ…kĂłw, owocĂłw, korzeni, nasion lub Ĺ‚odyg różnych roĹ›lin i znane jako przyprawy, oraz te, ktĂłre sÄ… otrzymywane z liĹ›ciastej części roĹ›liny i znane sÄ… jako zioĹ‚a. Produkty te zostaĹ‚y poddane obrĂłbce lub zapakowane w taki sposĂłb, aby przedĹ‚uĹĽyć ich przydatność do spoĹĽycia. Produkty obejmujÄ… nieprzetworzone i przetworzone zioĹ‚a i/lub przyprawy lub połączenie ziół i przypraw. | Nie obejmuje produktĂłw takich jak Ĺ‚atwo psujÄ…ce siÄ™ zioĹ‚a i przyprawy, sĂłl i ekstrakty i warzywa konserwowane w occie. -29: 10000050 | Ekstrakty/sĂłl/sole zmiÄ™kczajÄ…ce miÄ™so (trwaĹ‚e) | Extracts/Salt/Meat Tenderisers (Shelf Stable) | Obejmuje wszelkie produkty opisane/obserwowane jako ciecz, pasta, proszek, granulki lub substancje staĹ‚e wytworzone z odparowania lub rafinacji miÄ™sa, warzyw, droĹĽdĹĽy lub chlorku sodu dodawanych w celu przyprawienia i aromatyzowania ĹĽywnoĹ›ci, a w okreĹ›lonych przypadkach do zmiÄ™kczania miÄ™sa. Produkty obejmujÄ… w szczegĂłlnoĹ›ci rafinowanÄ… i nierafinowanÄ… sĂłl i glutaminian monosodowy, bulion oraz sproszkowanÄ… formÄ™ soli zmiÄ™kczajÄ…cej miÄ™so. Produkty te zostaĹ‚y poddane obrĂłbce lub zapakowane w taki sposĂłb, aby przedĹ‚uĹĽyć ich przydatność do spoĹĽycia. | Nie obejmuje produktĂłw takich jak pojedyncze lub czyste Ĺ‚atwo psujÄ…ce siÄ™ lub trwaĹ‚e zioĹ‚a i przyprawy, zagÄ™szczacze do sosĂłw, mieszanki zupowe oraz dodatki i pakiety smakowe do artykułów ĹĽywnoĹ›ciowych innych niĹĽ miÄ™so i napojĂłw. -30: 10000051 | Octy | Vinegars | Obejmuje wszelkie produkty opisane/obserwowane jako pĹ‚yn wytworzony z kwasu octowego otrzymanego w wyniku fermentacji alkoholu, zmieszany z wodÄ… i stosowany jako przyprawa aromatyczna, konserwant lub dodatek smakowy do ĹĽywnoĹ›ci wytrawnej. Produkty obejmujÄ… wszystkie odmiany octu, takie jak sĹ‚odowy, z wina czerwonego, biaĹ‚ego i balsamiczny. | Nie obejmuje produktĂłw takich jak wino do gotowania. -31: 10000052 | Wina do gotowania | Cooking Wines | Obejmuje wszelkie produkty opisane/obserwowane jako typowo gorsza odmiana wina niĹĽ wino do picia, czasami zmodyfikowane solÄ…, uĹĽywane do gotowania w celu wzmocnienia smaku lub barwy przygotowywanego dania. Produkty te sÄ… specjalnie oznakowane i sprzedawane jako wino do gotowania, a ich zawartość alkoholu gwarantuje, ĹĽe nie muszÄ… być chĹ‚odzone. | Nie obejmuje produktĂłw, takich jak napoje alkoholowe winne lub sherry, oraz alkoholu nieuĹĽywany specjalnie do gotowania. -32: 10000054 | Inne sosy/dodatki/polewy wytrawne/smarowidĹ‚a wytrawne/marynaty (Ĺ‚atwo psujÄ…ce siÄ™) | Other Sauces Dipping/Condiments/Savoury Toppings/Savoury Spreads/Marinades (Perishable) | Obejmuje wszelkie produkty opisane/obserwowane jako wytrawny pĹ‚yn, pasta, smarowidĹ‚o lub granulat, ktĂłre sÄ… zwykle uĹĽywane jako dodatek do ĹĽywnoĹ›ci wytrawnej. Produkty te mogÄ… być mieszane z innymi skĹ‚adnikami. Produkty te muszÄ… być chĹ‚odzone, aby wydĹ‚uĹĽyć ich przydatność do spoĹĽycia. Produkty obejmujÄ… pĹ‚yny i produkty do smarowania aromatyzowane, ale niekoniecznie wytwarzane z ryb, miÄ™sa, grzybĂłw, owocĂłw morza lub warzyw. | Nie obejmuje produktĂłw takich jak sosy do gotowania, trwaĹ‚e i mroĹĽone sosy, dodatki, polewy wytrawne, smarowidĹ‚a i marynaty wytrawne. W szczegĂłlnoĹ›ci nie obejmuje keczupu pomidorowego/substytutĂłw keczupu, musztardy/substytutĂłw musztardy i majonezu/substytutĂłw majonezu. -33: 10000055 | Sosy do gotowania (Ĺ‚atwo psujÄ…ce siÄ™) | Sauces - Cooking (Perishable) | Obejmuje wszelkie produkty opisane/obserwowane jako substancja, ktĂłra moĹĽe być podgrzewana i łączona z innymi skĹ‚adnikami, takimi jak makaron, ryĹĽ i kurczak, w celu wytworzenia okreĹ›lonego dania, jak bolognese, carbonara, kurczak korma lub tajskie curry. Produkty te muszÄ… być chĹ‚odzone, aby wydĹ‚uĹĽyć ich przydatność do spoĹĽycia. | Nie obejmuje produktĂłw takich jak sosy i dodatki oraz wytrawne smarowidĹ‚a i marynaty, trwaĹ‚e i mroĹĽone sosy do gotowania. -34: 10000056 | Sosy do gotowania (mroĹĽone) | Sauces - Cooking (Frozen) | Obejmuje wszelkie produkty opisane/obserwowane jako mroĹĽona substancja, ktĂłra moĹĽe być podgrzewana i łączona z innymi skĹ‚adnikami, takimi jak makaron, ryĹĽ i kurczak, w celu wytworzenia okreĹ›lonego dania, jak bolognese, carbonara, kurczak korma lub tajskie curry. | Nie obejmuje produktĂłw takich jak sosy i dodatki oraz wytrawne smarowidĹ‚a i marynaty, Ĺ‚atwo psujÄ…ce siÄ™ i trwaĹ‚e sosy do gotowania. -35: 10000057 | Sosy do gotowania (trwaĹ‚e) | Sauces - Cooking (Shelf Stable) | Obejmuje wszelkie produkty opisane/obserwowane jako substancja, ktĂłra moĹĽe być podgrzewana i łączona z innymi skĹ‚adnikami, takimi jak makaron, ryĹĽ i kurczak, w celu wytworzenia okreĹ›lonego dania, jak bolognese, carbonara, kurczak korma lub tajskie curry. Produkty te zostaĹ‚y poddane obrĂłbce lub zapakowane w taki sposĂłb, aby przedĹ‚uĹĽyć ich przydatność do spoĹĽycia. | Nie obejmuje produktĂłw takich jak sosy i dodatki oraz wytrawne smarowidĹ‚a i marynaty, Ĺ‚atwo psujÄ…ce siÄ™ i mroĹĽone sosy do gotowania. -36: 10000064 | Pasztet (Ĺ‚atwo psujÄ…cy siÄ™) | Pate (Perishable) | Obejmuje wszelkie produkty opisane/obserwowane jako gÄ™sta wytrawna mieszanka powstaĹ‚a z miÄ™sa, ryb grzybĂłw lub warzyw. Produkty mogÄ… być grubomielone lub gĹ‚adkie. Produkty te muszÄ… być chĹ‚odzone, aby wydĹ‚uĹĽyć ich przydatność do spoĹĽycia. | Nie obejmuje produktĂłw takich jak nadzienia do kanapek, pasty i smarowidĹ‚a; mroĹĽone i trwaĹ‚e pasztety oraz inne rodzaje kieĹ‚bas nadajÄ…cych siÄ™ do smarowania. -37: 10000068 | Mieszanki do pieczenia/gotowania (Ĺ‚atwo psujÄ…ce siÄ™) | Baking/Cooking Mixes (Perishable) | Obejmuje wszelkie produkty opisane/obserwowane jako ilość Ĺ‚atwo psujÄ…cego siÄ™, wstÄ™pnie wymieszanego ciasta lub proszku lub innych skĹ‚adnikĂłw, ktĂłre sÄ… specjalnie przeznaczone do produkcji chleba, ciast, ciastek, deserĂłw lub innych produktĂłw. Produkty mogÄ… być gotowe do uĹĽycia (w przypadku gdy przed uĹĽyciem nie trzeba dodawać ĹĽadnych dodatkowych skĹ‚adnikĂłw do mieszanki) lub mogÄ… wymagać dodania mokrych skĹ‚adnikĂłw, takich jak woda, mleko, olej, tĹ‚uszcz lub jajo. Produkty te muszÄ… być chĹ‚odzone, aby wydĹ‚uĹĽyć ich przydatność do spoĹĽycia. | Nie obejmuje produktĂłw takich jak zupy, mroĹĽone lub trwaĹ‚e mieszanki do pieczenia, wszystkie produkty częściowo upieczone i wypieki. -38: 10000069 | Dodatki do pieczenia/gotowania (Ĺ‚atwo psujÄ…ce siÄ™) | Baking/Cooking Supplies (Perishable) | Obejmuje wszelkie produkty opisane/obserwowane jako artykuĹ‚y specjalnie przeznaczone do stosowania podczas pieczenia lub gotowania. Produkty obejmujÄ… droĹĽdĹĽe i posiĹ‚ki częściowe. MogÄ…/mogÄ… nie wymagać dodawania innych skĹ‚adnikĂłw i dalszego pieczenia lub gotowania. Produkty te mogÄ…/muszÄ… być chĹ‚odzone, aby wydĹ‚uĹĽyć ich przydatność do spoĹĽycia. | Nie obejmuje produktĂłw takich jak trwaĹ‚e i mroĹĽone dodatki piekarnicze, masĹ‚o, margaryna, smalec, cukier, suszone owoce, orzechy. -39: 10000104 | NiemowlÄ™ta - ĹĽywność specjalistyczna (trwaĹ‚a) | Baby/Infant - Specialised Foods (Shelf Stable) | Obejmuje wszelkie produkty opisane/obserwowane jako ĹĽywność specjalnie etykietowanÄ… i wprowadzanÄ… do obrotu dla niemowlÄ…t, zwykle majÄ…cÄ… zapewnić zdrowÄ…, zbilansowanÄ… dietÄ™ niemowlÄ™tom w kaĹĽdym wieku. Produkty te zostaĹ‚y poddane obrĂłbce lub zapakowane w taki sposĂłb, aby przedĹ‚uĹĽyć ich przydatność do spoĹĽycia. | Nie obejmuje produktĂłw takich jak napoje dla niemowlÄ…t, niemowlÄ™ta - ĹĽywność specjalistyczna (mroĹĽona), preparaty w proszku i gotowe do picia specjalnie przeznaczone do stosowania jako substytut mleka matki podczas karmienia piersiÄ…. Warianty powyĹĽszych produktĂłw dla dorosĹ‚ych. -40: 10000105 | NiemowlÄ™ta - napoje specjalistyczne (trwaĹ‚e) | Baby/Infant - Specialised Beverages (Shelf Stable) | Obejmuje wszelkie produkty opisane/obserwowane jako napoje specjalnie etykietowane i wprowadzane do obrotu dla niemowlÄ…t. Produkty te zostaĹ‚y poddane obrĂłbce lub zapakowane w taki sposĂłb, aby przedĹ‚uĹĽyć ich przydatność do spoĹĽycia. Obejmuje soki, napoje na bazie soku, wodÄ™ oczyszczonÄ… dla niemowlÄ…t i napoje mleczne. | Nie obejmuje produktĂłw takich jak preparaty, ĹĽywność dla niemowlÄ…t i ich warianty dla dorosĹ‚ych. - -[Status produktu na rynku] -1: Status produktu na rynku -2: W fazie projektu (jeszcze nie w sprzedaĹĽy) -3: Aktywny (w sprzedaĹĽy) -4: Wycofany (juĹĽ nie w sprzedaĹĽy) \ No newline at end of file diff --git a/tmp_mojegs1_bundle.js b/tmp_mojegs1_bundle.js deleted file mode 100644 index 4e884ed..0000000 --- a/tmp_mojegs1_bundle.js +++ /dev/null @@ -1,24 +0,0 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/annual-survey-stepper-page-VUt7iwbm.js","assets/survey-service-Blyckqi2.js","assets/annual-survey-list-page-C4hMhvO9.js","assets/registration-stepper-page-Qnr_-XH5.js","assets/polish-M77r6HY1.js","assets/polish-zwv_Ofqp.css","assets/gs1-survey-placeholder-BYVYaFBZ.js","assets/vatId-BuXNK80E.js","assets/product-page-DkfEN9lv.js","assets/delete-product-component-BF0Pp2PW.js","assets/product-preview-page-SyUYS6Si.js","assets/gs1-barcode-view-moBHb1oa.js","assets/print-label-page-BI6xo72o.js","assets/add-address-page-HZVSW1qI.js","assets/address-page-validation-B9YeS0BS.js","assets/edit-address-page-BeYvfr-d.js","assets/council-voting-survey-page-B-uor3jy.js"])))=>i.map(i=>d[i]); -(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))r(o);new MutationObserver(o=>{for(const c of o)if(c.type==="childList")for(const d of c.addedNodes)d.tagName==="LINK"&&d.rel==="modulepreload"&&r(d)}).observe(document,{childList:!0,subtree:!0});function i(o){const c={};return o.integrity&&(c.integrity=o.integrity),o.referrerPolicy&&(c.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?c.credentials="include":o.crossOrigin==="anonymous"?c.credentials="omit":c.credentials="same-origin",c}function r(o){if(o.ep)return;o.ep=!0;const c=i(o);fetch(o.href,c)}})();const ET="modulepreload",NT=function(e){return"/"+e},pj={},zi=function(t,i,r){let o=Promise.resolve();if(i&&i.length>0){let h=function(m){return Promise.all(m.map(g=>Promise.resolve(g).then(v=>({status:"fulfilled",value:v}),v=>({status:"rejected",reason:v}))))};document.getElementsByTagName("link");const d=document.querySelector("meta[property=csp-nonce]"),f=d?.nonce||d?.getAttribute("nonce");o=h(i.map(m=>{if(m=NT(m),m in pj)return;pj[m]=!0;const g=m.endsWith(".css"),v=g?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${m}"]${v}`))return;const b=document.createElement("link");if(b.rel=g?"stylesheet":ET,g||(b.as="script"),b.crossOrigin="",b.href=m,f&&b.setAttribute("nonce",f),document.head.appendChild(b),g)return new Promise((z,E)=>{b.addEventListener("load",z),b.addEventListener("error",()=>E(new Error(`Unable to preload CSS for ${m}`)))})}))}function c(d){const f=new Event("vite:preloadError",{cancelable:!0});if(f.payload=d,window.dispatchEvent(f),!f.defaultPrevented)throw d}return o.then(d=>{for(const f of d||[])f.status==="rejected"&&c(f.reason);return t().catch(c)})};var $u=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function ga(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function kU(e){if(Object.prototype.hasOwnProperty.call(e,"__esModule"))return e;var t=e.default;if(typeof t=="function"){var i=function r(){var o=!1;try{o=this instanceof r}catch{}return o?Reflect.construct(t,arguments,this.constructor):t.apply(this,arguments)};i.prototype=t.prototype}else i={};return Object.defineProperty(i,"__esModule",{value:!0}),Object.keys(e).forEach(function(r){var o=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(i,r,o.get?o:{enumerable:!0,get:function(){return e[r]}})}),i}var Im={exports:{}},Sl={};var yj;function CT(){if(yj)return Sl;yj=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.fragment");function i(r,o,c){var d=null;if(c!==void 0&&(d=""+c),o.key!==void 0&&(d=""+o.key),"key"in o){c={};for(var f in o)f!=="key"&&(c[f]=o[f])}else c=o;return o=c.ref,{$$typeof:e,type:r,key:d,ref:o!==void 0?o:null,props:c}}return Sl.Fragment=t,Sl.jsx=i,Sl.jsxs=i,Sl}var gj;function TT(){return gj||(gj=1,Im.exports=CT()),Im.exports}var n=TT(),Pm={exports:{}},Ze={};var xj;function OT(){if(xj)return Ze;xj=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.portal"),i=Symbol.for("react.fragment"),r=Symbol.for("react.strict_mode"),o=Symbol.for("react.profiler"),c=Symbol.for("react.consumer"),d=Symbol.for("react.context"),f=Symbol.for("react.forward_ref"),h=Symbol.for("react.suspense"),m=Symbol.for("react.memo"),g=Symbol.for("react.lazy"),v=Symbol.iterator;function b(P){return P===null||typeof P!="object"?null:(P=v&&P[v]||P["@@iterator"],typeof P=="function"?P:null)}var z={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},E=Object.assign,T={};function S(P,K,Y){this.props=P,this.context=K,this.refs=T,this.updater=Y||z}S.prototype.isReactComponent={},S.prototype.setState=function(P,K){if(typeof P!="object"&&typeof P!="function"&&P!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,P,K,"setState")},S.prototype.forceUpdate=function(P){this.updater.enqueueForceUpdate(this,P,"forceUpdate")};function j(){}j.prototype=S.prototype;function N(P,K,Y){this.props=P,this.context=K,this.refs=T,this.updater=Y||z}var R=N.prototype=new j;R.constructor=N,E(R,S.prototype),R.isPureReactComponent=!0;var _=Array.isArray,k={H:null,A:null,T:null,S:null,V:null},C=Object.prototype.hasOwnProperty;function A(P,K,Y,Z,ae,be){return Y=be.ref,{$$typeof:e,type:P,key:K,ref:Y!==void 0?Y:null,props:be}}function M(P,K){return A(P.type,K,void 0,void 0,void 0,P.props)}function B(P){return typeof P=="object"&&P!==null&&P.$$typeof===e}function F(P){var K={"=":"=0",":":"=2"};return"$"+P.replace(/[=:]/g,function(Y){return K[Y]})}var q=/\/+/g;function X(P,K){return typeof P=="object"&&P!==null&&P.key!=null?F(""+P.key):K.toString(36)}function H(){}function te(P){switch(P.status){case"fulfilled":return P.value;case"rejected":throw P.reason;default:switch(typeof P.status=="string"?P.then(H,H):(P.status="pending",P.then(function(K){P.status==="pending"&&(P.status="fulfilled",P.value=K)},function(K){P.status==="pending"&&(P.status="rejected",P.reason=K)})),P.status){case"fulfilled":return P.value;case"rejected":throw P.reason}}throw P}function J(P,K,Y,Z,ae){var be=typeof P;(be==="undefined"||be==="boolean")&&(P=null);var ge=!1;if(P===null)ge=!0;else switch(be){case"bigint":case"string":case"number":ge=!0;break;case"object":switch(P.$$typeof){case e:case t:ge=!0;break;case g:return ge=P._init,J(ge(P._payload),K,Y,Z,ae)}}if(ge)return ae=ae(P),ge=Z===""?"."+X(P,0):Z,_(ae)?(Y="",ge!=null&&(Y=ge.replace(q,"$&/")+"/"),J(ae,K,Y,"",function(Me){return Me})):ae!=null&&(B(ae)&&(ae=M(ae,Y+(ae.key==null||P&&P.key===ae.key?"":(""+ae.key).replace(q,"$&/")+"/")+ge)),K.push(ae)),1;ge=0;var we=Z===""?".":Z+":";if(_(P))for(var je=0;je>>1,P=G[de];if(0>>1;deo(Z,W))aeo(be,Z)?(G[de]=be,G[ae]=W,de=ae):(G[de]=Z,G[Y]=W,de=Y);else if(aeo(be,W))G[de]=be,G[ae]=W,de=ae;else break e}}return L}function o(G,L){var W=G.sortIndex-L.sortIndex;return W!==0?W:G.id-L.id}if(e.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var c=performance;e.unstable_now=function(){return c.now()}}else{var d=Date,f=d.now();e.unstable_now=function(){return d.now()-f}}var h=[],m=[],g=1,v=null,b=3,z=!1,E=!1,T=!1,S=!1,j=typeof setTimeout=="function"?setTimeout:null,N=typeof clearTimeout=="function"?clearTimeout:null,R=typeof setImmediate<"u"?setImmediate:null;function _(G){for(var L=i(m);L!==null;){if(L.callback===null)r(m);else if(L.startTime<=G)r(m),L.sortIndex=L.expirationTime,t(h,L);else break;L=i(m)}}function k(G){if(T=!1,_(G),!E)if(i(h)!==null)E=!0,C||(C=!0,X());else{var L=i(m);L!==null&&J(k,L.startTime-G)}}var C=!1,A=-1,M=5,B=-1;function F(){return S?!0:!(e.unstable_now()-BG&&F());){var de=v.callback;if(typeof de=="function"){v.callback=null,b=v.priorityLevel;var P=de(v.expirationTime<=G);if(G=e.unstable_now(),typeof P=="function"){v.callback=P,_(G),L=!0;break t}v===i(h)&&r(h),_(G)}else r(h);v=i(h)}if(v!==null)L=!0;else{var K=i(m);K!==null&&J(k,K.startTime-G),L=!1}}break e}finally{v=null,b=W,z=!1}L=void 0}}finally{L?X():C=!1}}}var X;if(typeof R=="function")X=function(){R(q)};else if(typeof MessageChannel<"u"){var H=new MessageChannel,te=H.port2;H.port1.onmessage=q,X=function(){te.postMessage(null)}}else X=function(){j(q,0)};function J(G,L){A=j(function(){G(e.unstable_now())},L)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(G){G.callback=null},e.unstable_forceFrameRate=function(G){0>G||125de?(G.sortIndex=W,t(m,G),i(h)===null&&G===i(m)&&(T?(N(A),A=-1):T=!0,J(k,W-de))):(G.sortIndex=P,t(h,G),E||z||(E=!0,C||(C=!0,X()))),G},e.unstable_shouldYield=F,e.unstable_wrapCallback=function(G){var L=b;return function(){var W=b;b=L;try{return G.apply(this,arguments)}finally{b=W}}}}(Bm)),Bm}var jj;function RT(){return jj||(jj=1,Mm.exports=AT()),Mm.exports}var Gm={exports:{}},yn={};var wj;function DT(){if(wj)return yn;wj=1;var e=lc();function t(h){var m="https://react.dev/errors/"+h;if(1"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}return e(),Gm.exports=DT(),Gm.exports}var zj;function _T(){if(zj)return El;zj=1;var e=RT(),t=lc(),i=g1();function r(a){var s="https://react.dev/errors/"+a;if(1P||(a.current=de[P],de[P]=null,P--)}function Z(a,s){P++,de[P]=a.current,a.current=s}var ae=K(null),be=K(null),ge=K(null),we=K(null);function je(a,s){switch(Z(ge,s),Z(be,a),Z(ae,null),s.nodeType){case 9:case 11:a=(a=s.documentElement)&&(a=a.namespaceURI)?Ub(a):0;break;default:if(a=s.tagName,s=s.namespaceURI)s=Ub(s),a=qb(s,a);else switch(a){case"svg":a=1;break;case"math":a=2;break;default:a=0}}Y(ae),Z(ae,a)}function Me(){Y(ae),Y(be),Y(ge)}function Je(a){a.memoizedState!==null&&Z(we,a);var s=ae.current,l=qb(s,a.type);s!==l&&(Z(be,a),Z(ae,l))}function Ye(a){be.current===a&&(Y(ae),Y(be)),we.current===a&&(Y(we),bl._currentValue=W)}var lt=Object.prototype.hasOwnProperty,ct=e.unstable_scheduleCallback,Rt=e.unstable_cancelCallback,We=e.unstable_shouldYield,tn=e.unstable_requestPaint,Ce=e.unstable_now,De=e.unstable_getCurrentPriorityLevel,Pe=e.unstable_ImmediatePriority,ft=e.unstable_UserBlockingPriority,st=e.unstable_NormalPriority,re=e.unstable_LowPriority,Se=e.unstable_IdlePriority,Te=e.log,Re=e.unstable_setDisableYieldValue,ke=null,Ie=null;function ht(a){if(typeof Te=="function"&&Re(a),Ie&&typeof Ie.setStrictMode=="function")try{Ie.setStrictMode(ke,a)}catch{}}var Tt=Math.clz32?Math.clz32:Ve,Za=Math.log,Ei=Math.LN2;function Ve(a){return a>>>=0,a===0?32:31-(Za(a)/Ei|0)|0}var ut=256,hn=4194304;function _n(a){var s=a&42;if(s!==0)return s;switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194048;case 4194304:case 8388608:case 16777216:case 33554432:return a&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return a}}function is(a,s,l){var u=a.pendingLanes;if(u===0)return 0;var y=0,x=a.suspendedLanes,O=a.pingedLanes;a=a.warmLanes;var D=u&134217727;return D!==0?(u=D&~x,u!==0?y=_n(u):(O&=D,O!==0?y=_n(O):l||(l=D&~a,l!==0&&(y=_n(l))))):(D=u&~x,D!==0?y=_n(D):O!==0?y=_n(O):l||(l=u&~a,l!==0&&(y=_n(l)))),y===0?0:s!==0&&s!==y&&(s&x)===0&&(x=y&-y,l=s&-s,x>=l||x===32&&(l&4194048)!==0)?s:y}function To(a,s){return(a.pendingLanes&~(a.suspendedLanes&~a.pingedLanes)&s)===0}function hN(a,s){switch(a){case 1:case 2:case 4:case 8:case 64:return s+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return s+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function Eg(){var a=ut;return ut<<=1,(ut&4194048)===0&&(ut=256),a}function Ng(){var a=hn;return hn<<=1,(hn&62914560)===0&&(hn=4194304),a}function zf(a){for(var s=[],l=0;31>l;l++)s.push(a);return s}function Oo(a,s){a.pendingLanes|=s,s!==268435456&&(a.suspendedLanes=0,a.pingedLanes=0,a.warmLanes=0)}function mN(a,s,l,u,y,x){var O=a.pendingLanes;a.pendingLanes=l,a.suspendedLanes=0,a.pingedLanes=0,a.warmLanes=0,a.expiredLanes&=l,a.entangledLanes&=l,a.errorRecoveryDisabledLanes&=l,a.shellSuspendCounter=0;var D=a.entanglements,$=a.expirationTimes,ie=a.hiddenUpdates;for(l=O&~l;0)":-1y||$[u]!==ie[y]){var fe=` -`+$[u].replace(" at new "," at ");return a.displayName&&fe.includes("")&&(fe=fe.replace("",a.displayName)),fe}while(1<=u&&0<=y);break}}}finally{Of=!1,Error.prepareStackTrace=l}return(l=a?a.displayName||a.name:"")?us(l):""}function bN(a){switch(a.tag){case 26:case 27:case 5:return us(a.type);case 16:return us("Lazy");case 13:return us("Suspense");case 19:return us("SuspenseList");case 0:case 15:return Af(a.type,!1);case 11:return Af(a.type.render,!1);case 1:return Af(a.type,!0);case 31:return us("Activity");default:return""}}function Lg(a){try{var s="";do s+=bN(a),a=a.return;while(a);return s}catch(l){return` -Error generating stack: `+l.message+` -`+l.stack}}function Xn(a){switch(typeof a){case"bigint":case"boolean":case"number":case"string":case"undefined":return a;case"object":return a;default:return""}}function Mg(a){var s=a.type;return(a=a.nodeName)&&a.toLowerCase()==="input"&&(s==="checkbox"||s==="radio")}function jN(a){var s=Mg(a)?"checked":"value",l=Object.getOwnPropertyDescriptor(a.constructor.prototype,s),u=""+a[s];if(!a.hasOwnProperty(s)&&typeof l<"u"&&typeof l.get=="function"&&typeof l.set=="function"){var y=l.get,x=l.set;return Object.defineProperty(a,s,{configurable:!0,get:function(){return y.call(this)},set:function(O){u=""+O,x.call(this,O)}}),Object.defineProperty(a,s,{enumerable:l.enumerable}),{getValue:function(){return u},setValue:function(O){u=""+O},stopTracking:function(){a._valueTracker=null,delete a[s]}}}}function _c(a){a._valueTracker||(a._valueTracker=jN(a))}function Bg(a){if(!a)return!1;var s=a._valueTracker;if(!s)return!0;var l=s.getValue(),u="";return a&&(u=Mg(a)?a.checked?"true":"false":a.value),a=u,a!==l?(s.setValue(a),!0):!1}function Ic(a){if(a=a||(typeof document<"u"?document:void 0),typeof a>"u")return null;try{return a.activeElement||a.body}catch{return a.body}}var wN=/[\n"\\]/g;function Qn(a){return a.replace(wN,function(s){return"\\"+s.charCodeAt(0).toString(16)+" "})}function Rf(a,s,l,u,y,x,O,D){a.name="",O!=null&&typeof O!="function"&&typeof O!="symbol"&&typeof O!="boolean"?a.type=O:a.removeAttribute("type"),s!=null?O==="number"?(s===0&&a.value===""||a.value!=s)&&(a.value=""+Xn(s)):a.value!==""+Xn(s)&&(a.value=""+Xn(s)):O!=="submit"&&O!=="reset"||a.removeAttribute("value"),s!=null?Df(a,O,Xn(s)):l!=null?Df(a,O,Xn(l)):u!=null&&a.removeAttribute("value"),y==null&&x!=null&&(a.defaultChecked=!!x),y!=null&&(a.checked=y&&typeof y!="function"&&typeof y!="symbol"),D!=null&&typeof D!="function"&&typeof D!="symbol"&&typeof D!="boolean"?a.name=""+Xn(D):a.removeAttribute("name")}function Gg(a,s,l,u,y,x,O,D){if(x!=null&&typeof x!="function"&&typeof x!="symbol"&&typeof x!="boolean"&&(a.type=x),s!=null||l!=null){if(!(x!=="submit"&&x!=="reset"||s!=null))return;l=l!=null?""+Xn(l):"",s=s!=null?""+Xn(s):l,D||s===a.value||(a.value=s),a.defaultValue=s}u=u??y,u=typeof u!="function"&&typeof u!="symbol"&&!!u,a.checked=D?a.checked:!!u,a.defaultChecked=!!u,O!=null&&typeof O!="function"&&typeof O!="symbol"&&typeof O!="boolean"&&(a.name=O)}function Df(a,s,l){s==="number"&&Ic(a.ownerDocument)===a||a.defaultValue===""+l||(a.defaultValue=""+l)}function ds(a,s,l,u){if(a=a.options,s){s={};for(var y=0;y"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Mf=!1;if(Qa)try{var _o={};Object.defineProperty(_o,"passive",{get:function(){Mf=!0}}),window.addEventListener("test",_o,_o),window.removeEventListener("test",_o,_o)}catch{Mf=!1}var Ci=null,Bf=null,Lc=null;function Wg(){if(Lc)return Lc;var a,s=Bf,l=s.length,u,y="value"in Ci?Ci.value:Ci.textContent,x=y.length;for(a=0;a=Lo),Jg=" ",ex=!1;function tx(a,s){switch(a){case"keyup":return ZN.indexOf(s.keyCode)!==-1;case"keydown":return s.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function nx(a){return a=a.detail,typeof a=="object"&&"data"in a?a.data:null}var ps=!1;function QN(a,s){switch(a){case"compositionend":return nx(s);case"keypress":return s.which!==32?null:(ex=!0,Jg);case"textInput":return a=s.data,a===Jg&&ex?null:a;default:return null}}function JN(a,s){if(ps)return a==="compositionend"||!qf&&tx(a,s)?(a=Wg(),Lc=Bf=Ci=null,ps=!1,a):null;switch(a){case"paste":return null;case"keypress":if(!(s.ctrlKey||s.altKey||s.metaKey)||s.ctrlKey&&s.altKey){if(s.char&&1=s)return{node:l,offset:s-a};a=u}e:{for(;l;){if(l.nextSibling){l=l.nextSibling;break e}l=l.parentNode}l=void 0}l=ux(l)}}function fx(a,s){return a&&s?a===s?!0:a&&a.nodeType===3?!1:s&&s.nodeType===3?fx(a,s.parentNode):"contains"in a?a.contains(s):a.compareDocumentPosition?!!(a.compareDocumentPosition(s)&16):!1:!1}function hx(a){a=a!=null&&a.ownerDocument!=null&&a.ownerDocument.defaultView!=null?a.ownerDocument.defaultView:window;for(var s=Ic(a.document);s instanceof a.HTMLIFrameElement;){try{var l=typeof s.contentWindow.location.href=="string"}catch{l=!1}if(l)a=s.contentWindow;else break;s=Ic(a.document)}return s}function Wf(a){var s=a&&a.nodeName&&a.nodeName.toLowerCase();return s&&(s==="input"&&(a.type==="text"||a.type==="search"||a.type==="tel"||a.type==="url"||a.type==="password")||s==="textarea"||a.contentEditable==="true")}var oC=Qa&&"documentMode"in document&&11>=document.documentMode,ys=null,Kf=null,Fo=null,Yf=!1;function mx(a,s,l){var u=l.window===l?l.document:l.nodeType===9?l:l.ownerDocument;Yf||ys==null||ys!==Ic(u)||(u=ys,"selectionStart"in u&&Wf(u)?u={start:u.selectionStart,end:u.selectionEnd}:(u=(u.ownerDocument&&u.ownerDocument.defaultView||window).getSelection(),u={anchorNode:u.anchorNode,anchorOffset:u.anchorOffset,focusNode:u.focusNode,focusOffset:u.focusOffset}),Fo&&Go(Fo,u)||(Fo=u,u=Nu(Kf,"onSelect"),0>=O,y-=O,ei=1<<32-Tt(s)+y|l<x?x:8;var O=G.T,D={};G.T=D,_h(a,!1,s,l);try{var $=y(),ie=G.S;if(ie!==null&&ie(D,$),$!==null&&typeof $=="object"&&typeof $.then=="function"){var fe=yC($,u);nl(a,s,fe,Gn(a))}else nl(a,s,u,Gn(a))}catch(pe){nl(a,s,{then:function(){},status:"rejected",reason:pe},Gn())}finally{L.p=x,G.T=O}}function jC(){}function Rh(a,s,l,u){if(a.tag!==5)throw Error(r(476));var y=pv(a).queue;mv(a,y,s,W,l===null?jC:function(){return yv(a),l(u)})}function pv(a){var s=a.memoizedState;if(s!==null)return s;s={memoizedState:W,baseState:W,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:ii,lastRenderedState:W},next:null};var l={};return s.next={memoizedState:l,baseState:l,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:ii,lastRenderedState:l},next:null},a.memoizedState=s,a=a.alternate,a!==null&&(a.memoizedState=s),s}function yv(a){var s=pv(a).next.queue;nl(a,s,{},Gn())}function Dh(){return pn(bl)}function gv(){return Yt().memoizedState}function xv(){return Yt().memoizedState}function wC(a){for(var s=a.return;s!==null;){switch(s.tag){case 24:case 3:var l=Gn();a=Ai(l);var u=Ri(s,a,l);u!==null&&(Fn(u,s,l),Zo(u,s,l)),s={cache:ch()},a.payload=s;return}s=s.return}}function kC(a,s,l){var u=Gn();l={lane:u,revertLane:0,action:l,hasEagerState:!1,eagerState:null,next:null},ou(a)?bv(s,l):(l=Jf(a,s,l,u),l!==null&&(Fn(l,a,u),jv(l,s,u)))}function vv(a,s,l){var u=Gn();nl(a,s,l,u)}function nl(a,s,l,u){var y={lane:u,revertLane:0,action:l,hasEagerState:!1,eagerState:null,next:null};if(ou(a))bv(s,y);else{var x=a.alternate;if(a.lanes===0&&(x===null||x.lanes===0)&&(x=s.lastRenderedReducer,x!==null))try{var O=s.lastRenderedState,D=x(O,l);if(y.hasEagerState=!0,y.eagerState=D,In(D,O))return qc(a,s,y,0),Ot===null&&Uc(),!1}catch{}finally{}if(l=Jf(a,s,y,u),l!==null)return Fn(l,a,u),jv(l,s,u),!0}return!1}function _h(a,s,l,u){if(u={lane:2,revertLane:fm(),action:u,hasEagerState:!1,eagerState:null,next:null},ou(a)){if(s)throw Error(r(479))}else s=Jf(a,l,u,2),s!==null&&Fn(s,a,2)}function ou(a){var s=a.alternate;return a===Qe||s!==null&&s===Qe}function bv(a,s){Es=tu=!0;var l=a.pending;l===null?s.next=s:(s.next=l.next,l.next=s),a.pending=s}function jv(a,s,l){if((l&4194048)!==0){var u=s.lanes;u&=a.pendingLanes,l|=u,s.lanes=l,Tg(a,l)}}var lu={readContext:pn,use:au,useCallback:Ut,useContext:Ut,useEffect:Ut,useImperativeHandle:Ut,useLayoutEffect:Ut,useInsertionEffect:Ut,useMemo:Ut,useReducer:Ut,useRef:Ut,useState:Ut,useDebugValue:Ut,useDeferredValue:Ut,useTransition:Ut,useSyncExternalStore:Ut,useId:Ut,useHostTransitionStatus:Ut,useFormState:Ut,useActionState:Ut,useOptimistic:Ut,useMemoCache:Ut,useCacheRefresh:Ut},wv={readContext:pn,use:au,useCallback:function(a,s){return Sn().memoizedState=[a,s===void 0?null:s],a},useContext:pn,useEffect:rv,useImperativeHandle:function(a,s,l){l=l!=null?l.concat([a]):null,su(4194308,4,cv.bind(null,s,a),l)},useLayoutEffect:function(a,s){return su(4194308,4,a,s)},useInsertionEffect:function(a,s){su(4,2,a,s)},useMemo:function(a,s){var l=Sn();s=s===void 0?null:s;var u=a();if(zr){ht(!0);try{a()}finally{ht(!1)}}return l.memoizedState=[u,s],u},useReducer:function(a,s,l){var u=Sn();if(l!==void 0){var y=l(s);if(zr){ht(!0);try{l(s)}finally{ht(!1)}}}else y=s;return u.memoizedState=u.baseState=y,a={pending:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:y},u.queue=a,a=a.dispatch=kC.bind(null,Qe,a),[u.memoizedState,a]},useRef:function(a){var s=Sn();return a={current:a},s.memoizedState=a},useState:function(a){a=Ch(a);var s=a.queue,l=vv.bind(null,Qe,s);return s.dispatch=l,[a.memoizedState,l]},useDebugValue:Oh,useDeferredValue:function(a,s){var l=Sn();return Ah(l,a,s)},useTransition:function(){var a=Ch(!1);return a=mv.bind(null,Qe,a.queue,!0,!1),Sn().memoizedState=a,[!1,a]},useSyncExternalStore:function(a,s,l){var u=Qe,y=Sn();if(gt){if(l===void 0)throw Error(r(407));l=l()}else{if(l=s(),Ot===null)throw Error(r(349));(dt&124)!==0||Ux(u,s,l)}y.memoizedState=l;var x={value:l,getSnapshot:s};return y.queue=x,rv(Hx.bind(null,u,x,a),[a]),u.flags|=2048,Cs(9,ru(),qx.bind(null,u,x,l,s),null),l},useId:function(){var a=Sn(),s=Ot.identifierPrefix;if(gt){var l=ti,u=ei;l=(u&~(1<<32-Tt(u)-1)).toString(32)+l,s="«"+s+"R"+l,l=nu++,0$e?(sn=_e,_e=null):sn=_e.sibling;var mt=le(ee,_e,ne[$e],me);if(mt===null){_e===null&&(_e=sn);break}a&&_e&&mt.alternate===null&&s(ee,_e),V=x(mt,V,$e),et===null?Oe=mt:et.sibling=mt,et=mt,_e=sn}if($e===ne.length)return l(ee,_e),gt&&xr(ee,$e),Oe;if(_e===null){for(;$e$e?(sn=_e,_e=null):sn=_e.sibling;var Yi=le(ee,_e,mt.value,me);if(Yi===null){_e===null&&(_e=sn);break}a&&_e&&Yi.alternate===null&&s(ee,_e),V=x(Yi,V,$e),et===null?Oe=Yi:et.sibling=Yi,et=Yi,_e=sn}if(mt.done)return l(ee,_e),gt&&xr(ee,$e),Oe;if(_e===null){for(;!mt.done;$e++,mt=ne.next())mt=pe(ee,mt.value,me),mt!==null&&(V=x(mt,V,$e),et===null?Oe=mt:et.sibling=mt,et=mt);return gt&&xr(ee,$e),Oe}for(_e=u(_e);!mt.done;$e++,mt=ne.next())mt=ce(_e,ee,$e,mt.value,me),mt!==null&&(a&&mt.alternate!==null&&_e.delete(mt.key===null?$e:mt.key),V=x(mt,V,$e),et===null?Oe=mt:et.sibling=mt,et=mt);return a&&_e.forEach(function(ST){return s(ee,ST)}),gt&&xr(ee,$e),Oe}function Nt(ee,V,ne,me){if(typeof ne=="object"&&ne!==null&&ne.type===E&&ne.key===null&&(ne=ne.props.children),typeof ne=="object"&&ne!==null){switch(ne.$$typeof){case b:e:{for(var Oe=ne.key;V!==null;){if(V.key===Oe){if(Oe=ne.type,Oe===E){if(V.tag===7){l(ee,V.sibling),me=y(V,ne.props.children),me.return=ee,ee=me;break e}}else if(V.elementType===Oe||typeof Oe=="object"&&Oe!==null&&Oe.$$typeof===M&&zv(Oe)===V.type){l(ee,V.sibling),me=y(V,ne.props),il(me,ne),me.return=ee,ee=me;break e}l(ee,V);break}else s(ee,V);V=V.sibling}ne.type===E?(me=yr(ne.props.children,ee.mode,me,ne.key),me.return=ee,ee=me):(me=Vc(ne.type,ne.key,ne.props,null,ee.mode,me),il(me,ne),me.return=ee,ee=me)}return O(ee);case z:e:{for(Oe=ne.key;V!==null;){if(V.key===Oe)if(V.tag===4&&V.stateNode.containerInfo===ne.containerInfo&&V.stateNode.implementation===ne.implementation){l(ee,V.sibling),me=y(V,ne.children||[]),me.return=ee,ee=me;break e}else{l(ee,V);break}else s(ee,V);V=V.sibling}me=nh(ne,ee.mode,me),me.return=ee,ee=me}return O(ee);case M:return Oe=ne._init,ne=Oe(ne._payload),Nt(ee,V,ne,me)}if(J(ne))return qe(ee,V,ne,me);if(X(ne)){if(Oe=X(ne),typeof Oe!="function")throw Error(r(150));return ne=Oe.call(ne),Ge(ee,V,ne,me)}if(typeof ne.then=="function")return Nt(ee,V,cu(ne),me);if(ne.$$typeof===R)return Nt(ee,V,Zc(ee,ne),me);uu(ee,ne)}return typeof ne=="string"&&ne!==""||typeof ne=="number"||typeof ne=="bigint"?(ne=""+ne,V!==null&&V.tag===6?(l(ee,V.sibling),me=y(V,ne),me.return=ee,ee=me):(l(ee,V),me=th(ne,ee.mode,me),me.return=ee,ee=me),O(ee)):l(ee,V)}return function(ee,V,ne,me){try{al=0;var Oe=Nt(ee,V,ne,me);return Ts=null,Oe}catch(_e){if(_e===Ko||_e===Qc)throw _e;var et=Pn(29,_e,null,ee.mode);return et.lanes=me,et.return=ee,et}finally{}}}var Os=Sv(!0),Ev=Sv(!1),aa=K(null),Ra=null;function _i(a){var s=a.alternate;Z(en,en.current&1),Z(aa,a),Ra===null&&(s===null||Ss.current!==null||s.memoizedState!==null)&&(Ra=a)}function Nv(a){if(a.tag===22){if(Z(en,en.current),Z(aa,a),Ra===null){var s=a.alternate;s!==null&&s.memoizedState!==null&&(Ra=a)}}else Ii()}function Ii(){Z(en,en.current),Z(aa,aa.current)}function ri(a){Y(aa),Ra===a&&(Ra=null),Y(en)}var en=K(0);function du(a){for(var s=a;s!==null;){if(s.tag===13){var l=s.memoizedState;if(l!==null&&(l=l.dehydrated,l===null||l.data==="$?"||zm(l)))return s}else if(s.tag===19&&s.memoizedProps.revealOrder!==void 0){if((s.flags&128)!==0)return s}else if(s.child!==null){s.child.return=s,s=s.child;continue}if(s===a)break;for(;s.sibling===null;){if(s.return===null||s.return===a)return null;s=s.return}s.sibling.return=s.return,s=s.sibling}return null}function Ih(a,s,l,u){s=a.memoizedState,l=l(u,s),l=l==null?s:g({},s,l),a.memoizedState=l,a.lanes===0&&(a.updateQueue.baseState=l)}var Ph={enqueueSetState:function(a,s,l){a=a._reactInternals;var u=Gn(),y=Ai(u);y.payload=s,l!=null&&(y.callback=l),s=Ri(a,y,u),s!==null&&(Fn(s,a,u),Zo(s,a,u))},enqueueReplaceState:function(a,s,l){a=a._reactInternals;var u=Gn(),y=Ai(u);y.tag=1,y.payload=s,l!=null&&(y.callback=l),s=Ri(a,y,u),s!==null&&(Fn(s,a,u),Zo(s,a,u))},enqueueForceUpdate:function(a,s){a=a._reactInternals;var l=Gn(),u=Ai(l);u.tag=2,s!=null&&(u.callback=s),s=Ri(a,u,l),s!==null&&(Fn(s,a,l),Zo(s,a,l))}};function Cv(a,s,l,u,y,x,O){return a=a.stateNode,typeof a.shouldComponentUpdate=="function"?a.shouldComponentUpdate(u,x,O):s.prototype&&s.prototype.isPureReactComponent?!Go(l,u)||!Go(y,x):!0}function Tv(a,s,l,u){a=s.state,typeof s.componentWillReceiveProps=="function"&&s.componentWillReceiveProps(l,u),typeof s.UNSAFE_componentWillReceiveProps=="function"&&s.UNSAFE_componentWillReceiveProps(l,u),s.state!==a&&Ph.enqueueReplaceState(s,s.state,null)}function Sr(a,s){var l=s;if("ref"in s){l={};for(var u in s)u!=="ref"&&(l[u]=s[u])}if(a=a.defaultProps){l===s&&(l=g({},l));for(var y in a)l[y]===void 0&&(l[y]=a[y])}return l}var fu=typeof reportError=="function"?reportError:function(a){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var s=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof a=="object"&&a!==null&&typeof a.message=="string"?String(a.message):String(a),error:a});if(!window.dispatchEvent(s))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",a);return}console.error(a)};function Ov(a){fu(a)}function Av(a){console.error(a)}function Rv(a){fu(a)}function hu(a,s){try{var l=a.onUncaughtError;l(s.value,{componentStack:s.stack})}catch(u){setTimeout(function(){throw u})}}function Dv(a,s,l){try{var u=a.onCaughtError;u(l.value,{componentStack:l.stack,errorBoundary:s.tag===1?s.stateNode:null})}catch(y){setTimeout(function(){throw y})}}function Lh(a,s,l){return l=Ai(l),l.tag=3,l.payload={element:null},l.callback=function(){hu(a,s)},l}function _v(a){return a=Ai(a),a.tag=3,a}function Iv(a,s,l,u){var y=l.type.getDerivedStateFromError;if(typeof y=="function"){var x=u.value;a.payload=function(){return y(x)},a.callback=function(){Dv(s,l,u)}}var O=l.stateNode;O!==null&&typeof O.componentDidCatch=="function"&&(a.callback=function(){Dv(s,l,u),typeof y!="function"&&(Fi===null?Fi=new Set([this]):Fi.add(this));var D=u.stack;this.componentDidCatch(u.value,{componentStack:D!==null?D:""})})}function SC(a,s,l,u,y){if(l.flags|=32768,u!==null&&typeof u=="object"&&typeof u.then=="function"){if(s=l.alternate,s!==null&&Ho(s,l,y,!0),l=aa.current,l!==null){switch(l.tag){case 13:return Ra===null?om():l.alternate===null&&Ft===0&&(Ft=3),l.flags&=-257,l.flags|=65536,l.lanes=y,u===fh?l.flags|=16384:(s=l.updateQueue,s===null?l.updateQueue=new Set([u]):s.add(u),cm(a,u,y)),!1;case 22:return l.flags|=65536,u===fh?l.flags|=16384:(s=l.updateQueue,s===null?(s={transitions:null,markerInstances:null,retryQueue:new Set([u])},l.updateQueue=s):(l=s.retryQueue,l===null?s.retryQueue=new Set([u]):l.add(u)),cm(a,u,y)),!1}throw Error(r(435,l.tag))}return cm(a,u,y),om(),!1}if(gt)return s=aa.current,s!==null?((s.flags&65536)===0&&(s.flags|=256),s.flags|=65536,s.lanes=y,u!==rh&&(a=Error(r(422),{cause:u}),qo(Jn(a,l)))):(u!==rh&&(s=Error(r(423),{cause:u}),qo(Jn(s,l))),a=a.current.alternate,a.flags|=65536,y&=-y,a.lanes|=y,u=Jn(u,l),y=Lh(a.stateNode,u,y),ph(a,y),Ft!==4&&(Ft=2)),!1;var x=Error(r(520),{cause:u});if(x=Jn(x,l),dl===null?dl=[x]:dl.push(x),Ft!==4&&(Ft=2),s===null)return!0;u=Jn(u,l),l=s;do{switch(l.tag){case 3:return l.flags|=65536,a=y&-y,l.lanes|=a,a=Lh(l.stateNode,u,a),ph(l,a),!1;case 1:if(s=l.type,x=l.stateNode,(l.flags&128)===0&&(typeof s.getDerivedStateFromError=="function"||x!==null&&typeof x.componentDidCatch=="function"&&(Fi===null||!Fi.has(x))))return l.flags|=65536,y&=-y,l.lanes|=y,y=_v(y),Iv(y,a,l,u),ph(l,y),!1}l=l.return}while(l!==null);return!1}var Pv=Error(r(461)),an=!1;function cn(a,s,l,u){s.child=a===null?Ev(s,null,l,u):Os(s,a.child,l,u)}function Lv(a,s,l,u,y){l=l.render;var x=s.ref;if("ref"in u){var O={};for(var D in u)D!=="ref"&&(O[D]=u[D])}else O=u;return wr(s),u=bh(a,s,l,O,x,y),D=jh(),a!==null&&!an?(wh(a,s,y),si(a,s,y)):(gt&&D&&ah(s),s.flags|=1,cn(a,s,u,y),s.child)}function Mv(a,s,l,u,y){if(a===null){var x=l.type;return typeof x=="function"&&!eh(x)&&x.defaultProps===void 0&&l.compare===null?(s.tag=15,s.type=x,Bv(a,s,x,u,y)):(a=Vc(l.type,null,u,s,s.mode,y),a.ref=s.ref,a.return=s,s.child=a)}if(x=a.child,!Hh(a,y)){var O=x.memoizedProps;if(l=l.compare,l=l!==null?l:Go,l(O,u)&&a.ref===s.ref)return si(a,s,y)}return s.flags|=1,a=Ja(x,u),a.ref=s.ref,a.return=s,s.child=a}function Bv(a,s,l,u,y){if(a!==null){var x=a.memoizedProps;if(Go(x,u)&&a.ref===s.ref)if(an=!1,s.pendingProps=u=x,Hh(a,y))(a.flags&131072)!==0&&(an=!0);else return s.lanes=a.lanes,si(a,s,y)}return Mh(a,s,l,u,y)}function Gv(a,s,l){var u=s.pendingProps,y=u.children,x=a!==null?a.memoizedState:null;if(u.mode==="hidden"){if((s.flags&128)!==0){if(u=x!==null?x.baseLanes|l:l,a!==null){for(y=s.child=a.child,x=0;y!==null;)x=x|y.lanes|y.childLanes,y=y.sibling;s.childLanes=x&~u}else s.childLanes=0,s.child=null;return Fv(a,s,u,l)}if((l&536870912)!==0)s.memoizedState={baseLanes:0,cachePool:null},a!==null&&Xc(s,x!==null?x.cachePool:null),x!==null?Bx(s,x):gh(),Nv(s);else return s.lanes=s.childLanes=536870912,Fv(a,s,x!==null?x.baseLanes|l:l,l)}else x!==null?(Xc(s,x.cachePool),Bx(s,x),Ii(),s.memoizedState=null):(a!==null&&Xc(s,null),gh(),Ii());return cn(a,s,y,l),s.child}function Fv(a,s,l,u){var y=dh();return y=y===null?null:{parent:Jt._currentValue,pool:y},s.memoizedState={baseLanes:l,cachePool:y},a!==null&&Xc(s,null),gh(),Nv(s),a!==null&&Ho(a,s,u,!0),null}function mu(a,s){var l=s.ref;if(l===null)a!==null&&a.ref!==null&&(s.flags|=4194816);else{if(typeof l!="function"&&typeof l!="object")throw Error(r(284));(a===null||a.ref!==l)&&(s.flags|=4194816)}}function Mh(a,s,l,u,y){return wr(s),l=bh(a,s,l,u,void 0,y),u=jh(),a!==null&&!an?(wh(a,s,y),si(a,s,y)):(gt&&u&&ah(s),s.flags|=1,cn(a,s,l,y),s.child)}function $v(a,s,l,u,y,x){return wr(s),s.updateQueue=null,l=Fx(s,u,l,y),Gx(a),u=jh(),a!==null&&!an?(wh(a,s,x),si(a,s,x)):(gt&&u&&ah(s),s.flags|=1,cn(a,s,l,x),s.child)}function Uv(a,s,l,u,y){if(wr(s),s.stateNode===null){var x=bs,O=l.contextType;typeof O=="object"&&O!==null&&(x=pn(O)),x=new l(u,x),s.memoizedState=x.state!==null&&x.state!==void 0?x.state:null,x.updater=Ph,s.stateNode=x,x._reactInternals=s,x=s.stateNode,x.props=u,x.state=s.memoizedState,x.refs={},hh(s),O=l.contextType,x.context=typeof O=="object"&&O!==null?pn(O):bs,x.state=s.memoizedState,O=l.getDerivedStateFromProps,typeof O=="function"&&(Ih(s,l,O,u),x.state=s.memoizedState),typeof l.getDerivedStateFromProps=="function"||typeof x.getSnapshotBeforeUpdate=="function"||typeof x.UNSAFE_componentWillMount!="function"&&typeof x.componentWillMount!="function"||(O=x.state,typeof x.componentWillMount=="function"&&x.componentWillMount(),typeof x.UNSAFE_componentWillMount=="function"&&x.UNSAFE_componentWillMount(),O!==x.state&&Ph.enqueueReplaceState(x,x.state,null),Qo(s,u,x,y),Xo(),x.state=s.memoizedState),typeof x.componentDidMount=="function"&&(s.flags|=4194308),u=!0}else if(a===null){x=s.stateNode;var D=s.memoizedProps,$=Sr(l,D);x.props=$;var ie=x.context,fe=l.contextType;O=bs,typeof fe=="object"&&fe!==null&&(O=pn(fe));var pe=l.getDerivedStateFromProps;fe=typeof pe=="function"||typeof x.getSnapshotBeforeUpdate=="function",D=s.pendingProps!==D,fe||typeof x.UNSAFE_componentWillReceiveProps!="function"&&typeof x.componentWillReceiveProps!="function"||(D||ie!==O)&&Tv(s,x,u,O),Oi=!1;var le=s.memoizedState;x.state=le,Qo(s,u,x,y),Xo(),ie=s.memoizedState,D||le!==ie||Oi?(typeof pe=="function"&&(Ih(s,l,pe,u),ie=s.memoizedState),($=Oi||Cv(s,l,$,u,le,ie,O))?(fe||typeof x.UNSAFE_componentWillMount!="function"&&typeof x.componentWillMount!="function"||(typeof x.componentWillMount=="function"&&x.componentWillMount(),typeof x.UNSAFE_componentWillMount=="function"&&x.UNSAFE_componentWillMount()),typeof x.componentDidMount=="function"&&(s.flags|=4194308)):(typeof x.componentDidMount=="function"&&(s.flags|=4194308),s.memoizedProps=u,s.memoizedState=ie),x.props=u,x.state=ie,x.context=O,u=$):(typeof x.componentDidMount=="function"&&(s.flags|=4194308),u=!1)}else{x=s.stateNode,mh(a,s),O=s.memoizedProps,fe=Sr(l,O),x.props=fe,pe=s.pendingProps,le=x.context,ie=l.contextType,$=bs,typeof ie=="object"&&ie!==null&&($=pn(ie)),D=l.getDerivedStateFromProps,(ie=typeof D=="function"||typeof x.getSnapshotBeforeUpdate=="function")||typeof x.UNSAFE_componentWillReceiveProps!="function"&&typeof x.componentWillReceiveProps!="function"||(O!==pe||le!==$)&&Tv(s,x,u,$),Oi=!1,le=s.memoizedState,x.state=le,Qo(s,u,x,y),Xo();var ce=s.memoizedState;O!==pe||le!==ce||Oi||a!==null&&a.dependencies!==null&&Yc(a.dependencies)?(typeof D=="function"&&(Ih(s,l,D,u),ce=s.memoizedState),(fe=Oi||Cv(s,l,fe,u,le,ce,$)||a!==null&&a.dependencies!==null&&Yc(a.dependencies))?(ie||typeof x.UNSAFE_componentWillUpdate!="function"&&typeof x.componentWillUpdate!="function"||(typeof x.componentWillUpdate=="function"&&x.componentWillUpdate(u,ce,$),typeof x.UNSAFE_componentWillUpdate=="function"&&x.UNSAFE_componentWillUpdate(u,ce,$)),typeof x.componentDidUpdate=="function"&&(s.flags|=4),typeof x.getSnapshotBeforeUpdate=="function"&&(s.flags|=1024)):(typeof x.componentDidUpdate!="function"||O===a.memoizedProps&&le===a.memoizedState||(s.flags|=4),typeof x.getSnapshotBeforeUpdate!="function"||O===a.memoizedProps&&le===a.memoizedState||(s.flags|=1024),s.memoizedProps=u,s.memoizedState=ce),x.props=u,x.state=ce,x.context=$,u=fe):(typeof x.componentDidUpdate!="function"||O===a.memoizedProps&&le===a.memoizedState||(s.flags|=4),typeof x.getSnapshotBeforeUpdate!="function"||O===a.memoizedProps&&le===a.memoizedState||(s.flags|=1024),u=!1)}return x=u,mu(a,s),u=(s.flags&128)!==0,x||u?(x=s.stateNode,l=u&&typeof l.getDerivedStateFromError!="function"?null:x.render(),s.flags|=1,a!==null&&u?(s.child=Os(s,a.child,null,y),s.child=Os(s,null,l,y)):cn(a,s,l,y),s.memoizedState=x.state,a=s.child):a=si(a,s,y),a}function qv(a,s,l,u){return Uo(),s.flags|=256,cn(a,s,l,u),s.child}var Bh={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function Gh(a){return{baseLanes:a,cachePool:Ax()}}function Fh(a,s,l){return a=a!==null?a.childLanes&~l:0,s&&(a|=ia),a}function Hv(a,s,l){var u=s.pendingProps,y=!1,x=(s.flags&128)!==0,O;if((O=x)||(O=a!==null&&a.memoizedState===null?!1:(en.current&2)!==0),O&&(y=!0,s.flags&=-129),O=(s.flags&32)!==0,s.flags&=-33,a===null){if(gt){if(y?_i(s):Ii(),gt){var D=Gt,$;if($=D){e:{for($=D,D=Aa;$.nodeType!==8;){if(!D){D=null;break e}if($=ja($.nextSibling),$===null){D=null;break e}}D=$}D!==null?(s.memoizedState={dehydrated:D,treeContext:gr!==null?{id:ei,overflow:ti}:null,retryLane:536870912,hydrationErrors:null},$=Pn(18,null,null,0),$.stateNode=D,$.return=s,s.child=$,vn=s,Gt=null,$=!0):$=!1}$||br(s)}if(D=s.memoizedState,D!==null&&(D=D.dehydrated,D!==null))return zm(D)?s.lanes=32:s.lanes=536870912,null;ri(s)}return D=u.children,u=u.fallback,y?(Ii(),y=s.mode,D=pu({mode:"hidden",children:D},y),u=yr(u,y,l,null),D.return=s,u.return=s,D.sibling=u,s.child=D,y=s.child,y.memoizedState=Gh(l),y.childLanes=Fh(a,O,l),s.memoizedState=Bh,u):(_i(s),$h(s,D))}if($=a.memoizedState,$!==null&&(D=$.dehydrated,D!==null)){if(x)s.flags&256?(_i(s),s.flags&=-257,s=Uh(a,s,l)):s.memoizedState!==null?(Ii(),s.child=a.child,s.flags|=128,s=null):(Ii(),y=u.fallback,D=s.mode,u=pu({mode:"visible",children:u.children},D),y=yr(y,D,l,null),y.flags|=2,u.return=s,y.return=s,u.sibling=y,s.child=u,Os(s,a.child,null,l),u=s.child,u.memoizedState=Gh(l),u.childLanes=Fh(a,O,l),s.memoizedState=Bh,s=y);else if(_i(s),zm(D)){if(O=D.nextSibling&&D.nextSibling.dataset,O)var ie=O.dgst;O=ie,u=Error(r(419)),u.stack="",u.digest=O,qo({value:u,source:null,stack:null}),s=Uh(a,s,l)}else if(an||Ho(a,s,l,!1),O=(l&a.childLanes)!==0,an||O){if(O=Ot,O!==null&&(u=l&-l,u=(u&42)!==0?1:Sf(u),u=(u&(O.suspendedLanes|l))!==0?0:u,u!==0&&u!==$.retryLane))throw $.retryLane=u,vs(a,u),Fn(O,a,u),Pv;D.data==="$?"||om(),s=Uh(a,s,l)}else D.data==="$?"?(s.flags|=192,s.child=a.child,s=null):(a=$.treeContext,Gt=ja(D.nextSibling),vn=s,gt=!0,vr=null,Aa=!1,a!==null&&(ta[na++]=ei,ta[na++]=ti,ta[na++]=gr,ei=a.id,ti=a.overflow,gr=s),s=$h(s,u.children),s.flags|=4096);return s}return y?(Ii(),y=u.fallback,D=s.mode,$=a.child,ie=$.sibling,u=Ja($,{mode:"hidden",children:u.children}),u.subtreeFlags=$.subtreeFlags&65011712,ie!==null?y=Ja(ie,y):(y=yr(y,D,l,null),y.flags|=2),y.return=s,u.return=s,u.sibling=y,s.child=u,u=y,y=s.child,D=a.child.memoizedState,D===null?D=Gh(l):($=D.cachePool,$!==null?(ie=Jt._currentValue,$=$.parent!==ie?{parent:ie,pool:ie}:$):$=Ax(),D={baseLanes:D.baseLanes|l,cachePool:$}),y.memoizedState=D,y.childLanes=Fh(a,O,l),s.memoizedState=Bh,u):(_i(s),l=a.child,a=l.sibling,l=Ja(l,{mode:"visible",children:u.children}),l.return=s,l.sibling=null,a!==null&&(O=s.deletions,O===null?(s.deletions=[a],s.flags|=16):O.push(a)),s.child=l,s.memoizedState=null,l)}function $h(a,s){return s=pu({mode:"visible",children:s},a.mode),s.return=a,a.child=s}function pu(a,s){return a=Pn(22,a,null,s),a.lanes=0,a.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null},a}function Uh(a,s,l){return Os(s,a.child,null,l),a=$h(s,s.pendingProps.children),a.flags|=2,s.memoizedState=null,a}function Vv(a,s,l){a.lanes|=s;var u=a.alternate;u!==null&&(u.lanes|=s),oh(a.return,s,l)}function qh(a,s,l,u,y){var x=a.memoizedState;x===null?a.memoizedState={isBackwards:s,rendering:null,renderingStartTime:0,last:u,tail:l,tailMode:y}:(x.isBackwards=s,x.rendering=null,x.renderingStartTime=0,x.last=u,x.tail=l,x.tailMode=y)}function Wv(a,s,l){var u=s.pendingProps,y=u.revealOrder,x=u.tail;if(cn(a,s,u.children,l),u=en.current,(u&2)!==0)u=u&1|2,s.flags|=128;else{if(a!==null&&(a.flags&128)!==0)e:for(a=s.child;a!==null;){if(a.tag===13)a.memoizedState!==null&&Vv(a,l,s);else if(a.tag===19)Vv(a,l,s);else if(a.child!==null){a.child.return=a,a=a.child;continue}if(a===s)break e;for(;a.sibling===null;){if(a.return===null||a.return===s)break e;a=a.return}a.sibling.return=a.return,a=a.sibling}u&=1}switch(Z(en,u),y){case"forwards":for(l=s.child,y=null;l!==null;)a=l.alternate,a!==null&&du(a)===null&&(y=l),l=l.sibling;l=y,l===null?(y=s.child,s.child=null):(y=l.sibling,l.sibling=null),qh(s,!1,y,l,x);break;case"backwards":for(l=null,y=s.child,s.child=null;y!==null;){if(a=y.alternate,a!==null&&du(a)===null){s.child=y;break}a=y.sibling,y.sibling=l,l=y,y=a}qh(s,!0,l,null,x);break;case"together":qh(s,!1,null,null,void 0);break;default:s.memoizedState=null}return s.child}function si(a,s,l){if(a!==null&&(s.dependencies=a.dependencies),Gi|=s.lanes,(l&s.childLanes)===0)if(a!==null){if(Ho(a,s,l,!1),(l&s.childLanes)===0)return null}else return null;if(a!==null&&s.child!==a.child)throw Error(r(153));if(s.child!==null){for(a=s.child,l=Ja(a,a.pendingProps),s.child=l,l.return=s;a.sibling!==null;)a=a.sibling,l=l.sibling=Ja(a,a.pendingProps),l.return=s;l.sibling=null}return s.child}function Hh(a,s){return(a.lanes&s)!==0?!0:(a=a.dependencies,!!(a!==null&&Yc(a)))}function EC(a,s,l){switch(s.tag){case 3:je(s,s.stateNode.containerInfo),Ti(s,Jt,a.memoizedState.cache),Uo();break;case 27:case 5:Je(s);break;case 4:je(s,s.stateNode.containerInfo);break;case 10:Ti(s,s.type,s.memoizedProps.value);break;case 13:var u=s.memoizedState;if(u!==null)return u.dehydrated!==null?(_i(s),s.flags|=128,null):(l&s.child.childLanes)!==0?Hv(a,s,l):(_i(s),a=si(a,s,l),a!==null?a.sibling:null);_i(s);break;case 19:var y=(a.flags&128)!==0;if(u=(l&s.childLanes)!==0,u||(Ho(a,s,l,!1),u=(l&s.childLanes)!==0),y){if(u)return Wv(a,s,l);s.flags|=128}if(y=s.memoizedState,y!==null&&(y.rendering=null,y.tail=null,y.lastEffect=null),Z(en,en.current),u)break;return null;case 22:case 23:return s.lanes=0,Gv(a,s,l);case 24:Ti(s,Jt,a.memoizedState.cache)}return si(a,s,l)}function Kv(a,s,l){if(a!==null)if(a.memoizedProps!==s.pendingProps)an=!0;else{if(!Hh(a,l)&&(s.flags&128)===0)return an=!1,EC(a,s,l);an=(a.flags&131072)!==0}else an=!1,gt&&(s.flags&1048576)!==0&&zx(s,Kc,s.index);switch(s.lanes=0,s.tag){case 16:e:{a=s.pendingProps;var u=s.elementType,y=u._init;if(u=y(u._payload),s.type=u,typeof u=="function")eh(u)?(a=Sr(u,a),s.tag=1,s=Uv(null,s,u,a,l)):(s.tag=0,s=Mh(null,s,u,a,l));else{if(u!=null){if(y=u.$$typeof,y===_){s.tag=11,s=Lv(null,s,u,a,l);break e}else if(y===A){s.tag=14,s=Mv(null,s,u,a,l);break e}}throw s=te(u)||u,Error(r(306,s,""))}}return s;case 0:return Mh(a,s,s.type,s.pendingProps,l);case 1:return u=s.type,y=Sr(u,s.pendingProps),Uv(a,s,u,y,l);case 3:e:{if(je(s,s.stateNode.containerInfo),a===null)throw Error(r(387));u=s.pendingProps;var x=s.memoizedState;y=x.element,mh(a,s),Qo(s,u,null,l);var O=s.memoizedState;if(u=O.cache,Ti(s,Jt,u),u!==x.cache&&lh(s,[Jt],l,!0),Xo(),u=O.element,x.isDehydrated)if(x={element:u,isDehydrated:!1,cache:O.cache},s.updateQueue.baseState=x,s.memoizedState=x,s.flags&256){s=qv(a,s,u,l);break e}else if(u!==y){y=Jn(Error(r(424)),s),qo(y),s=qv(a,s,u,l);break e}else{switch(a=s.stateNode.containerInfo,a.nodeType){case 9:a=a.body;break;default:a=a.nodeName==="HTML"?a.ownerDocument.body:a}for(Gt=ja(a.firstChild),vn=s,gt=!0,vr=null,Aa=!0,l=Ev(s,null,u,l),s.child=l;l;)l.flags=l.flags&-3|4096,l=l.sibling}else{if(Uo(),u===y){s=si(a,s,l);break e}cn(a,s,u,l)}s=s.child}return s;case 26:return mu(a,s),a===null?(l=Qb(s.type,null,s.pendingProps,null))?s.memoizedState=l:gt||(l=s.type,a=s.pendingProps,u=Tu(ge.current).createElement(l),u[mn]=s,u[kn]=a,dn(u,l,a),nn(u),s.stateNode=u):s.memoizedState=Qb(s.type,a.memoizedProps,s.pendingProps,a.memoizedState),null;case 27:return Je(s),a===null&>&&(u=s.stateNode=Yb(s.type,s.pendingProps,ge.current),vn=s,Aa=!0,y=Gt,qi(s.type)?(Sm=y,Gt=ja(u.firstChild)):Gt=y),cn(a,s,s.pendingProps.children,l),mu(a,s),a===null&&(s.flags|=4194304),s.child;case 5:return a===null&>&&((y=u=Gt)&&(u=eT(u,s.type,s.pendingProps,Aa),u!==null?(s.stateNode=u,vn=s,Gt=ja(u.firstChild),Aa=!1,y=!0):y=!1),y||br(s)),Je(s),y=s.type,x=s.pendingProps,O=a!==null?a.memoizedProps:null,u=x.children,jm(y,x)?u=null:O!==null&&jm(y,O)&&(s.flags|=32),s.memoizedState!==null&&(y=bh(a,s,xC,null,null,l),bl._currentValue=y),mu(a,s),cn(a,s,u,l),s.child;case 6:return a===null&>&&((a=l=Gt)&&(l=tT(l,s.pendingProps,Aa),l!==null?(s.stateNode=l,vn=s,Gt=null,a=!0):a=!1),a||br(s)),null;case 13:return Hv(a,s,l);case 4:return je(s,s.stateNode.containerInfo),u=s.pendingProps,a===null?s.child=Os(s,null,u,l):cn(a,s,u,l),s.child;case 11:return Lv(a,s,s.type,s.pendingProps,l);case 7:return cn(a,s,s.pendingProps,l),s.child;case 8:return cn(a,s,s.pendingProps.children,l),s.child;case 12:return cn(a,s,s.pendingProps.children,l),s.child;case 10:return u=s.pendingProps,Ti(s,s.type,u.value),cn(a,s,u.children,l),s.child;case 9:return y=s.type._context,u=s.pendingProps.children,wr(s),y=pn(y),u=u(y),s.flags|=1,cn(a,s,u,l),s.child;case 14:return Mv(a,s,s.type,s.pendingProps,l);case 15:return Bv(a,s,s.type,s.pendingProps,l);case 19:return Wv(a,s,l);case 31:return u=s.pendingProps,l=s.mode,u={mode:u.mode,children:u.children},a===null?(l=pu(u,l),l.ref=s.ref,s.child=l,l.return=s,s=l):(l=Ja(a.child,u),l.ref=s.ref,s.child=l,l.return=s,s=l),s;case 22:return Gv(a,s,l);case 24:return wr(s),u=pn(Jt),a===null?(y=dh(),y===null&&(y=Ot,x=ch(),y.pooledCache=x,x.refCount++,x!==null&&(y.pooledCacheLanes|=l),y=x),s.memoizedState={parent:u,cache:y},hh(s),Ti(s,Jt,y)):((a.lanes&l)!==0&&(mh(a,s),Qo(s,null,null,l),Xo()),y=a.memoizedState,x=s.memoizedState,y.parent!==u?(y={parent:u,cache:u},s.memoizedState=y,s.lanes===0&&(s.memoizedState=s.updateQueue.baseState=y),Ti(s,Jt,u)):(u=x.cache,Ti(s,Jt,u),u!==y.cache&&lh(s,[Jt],l,!0))),cn(a,s,s.pendingProps.children,l),s.child;case 29:throw s.pendingProps}throw Error(r(156,s.tag))}function oi(a){a.flags|=4}function Yv(a,s){if(s.type!=="stylesheet"||(s.state.loading&4)!==0)a.flags&=-16777217;else if(a.flags|=16777216,!aj(s)){if(s=aa.current,s!==null&&((dt&4194048)===dt?Ra!==null:(dt&62914560)!==dt&&(dt&536870912)===0||s!==Ra))throw Yo=fh,Rx;a.flags|=8192}}function yu(a,s){s!==null&&(a.flags|=4),a.flags&16384&&(s=a.tag!==22?Ng():536870912,a.lanes|=s,_s|=s)}function rl(a,s){if(!gt)switch(a.tailMode){case"hidden":s=a.tail;for(var l=null;s!==null;)s.alternate!==null&&(l=s),s=s.sibling;l===null?a.tail=null:l.sibling=null;break;case"collapsed":l=a.tail;for(var u=null;l!==null;)l.alternate!==null&&(u=l),l=l.sibling;u===null?s||a.tail===null?a.tail=null:a.tail.sibling=null:u.sibling=null}}function Mt(a){var s=a.alternate!==null&&a.alternate.child===a.child,l=0,u=0;if(s)for(var y=a.child;y!==null;)l|=y.lanes|y.childLanes,u|=y.subtreeFlags&65011712,u|=y.flags&65011712,y.return=a,y=y.sibling;else for(y=a.child;y!==null;)l|=y.lanes|y.childLanes,u|=y.subtreeFlags,u|=y.flags,y.return=a,y=y.sibling;return a.subtreeFlags|=u,a.childLanes=l,s}function NC(a,s,l){var u=s.pendingProps;switch(ih(s),s.tag){case 31:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Mt(s),null;case 1:return Mt(s),null;case 3:return l=s.stateNode,u=null,a!==null&&(u=a.memoizedState.cache),s.memoizedState.cache!==u&&(s.flags|=2048),ai(Jt),Me(),l.pendingContext&&(l.context=l.pendingContext,l.pendingContext=null),(a===null||a.child===null)&&($o(s)?oi(s):a===null||a.memoizedState.isDehydrated&&(s.flags&256)===0||(s.flags|=1024,Nx())),Mt(s),null;case 26:return l=s.memoizedState,a===null?(oi(s),l!==null?(Mt(s),Yv(s,l)):(Mt(s),s.flags&=-16777217)):l?l!==a.memoizedState?(oi(s),Mt(s),Yv(s,l)):(Mt(s),s.flags&=-16777217):(a.memoizedProps!==u&&oi(s),Mt(s),s.flags&=-16777217),null;case 27:Ye(s),l=ge.current;var y=s.type;if(a!==null&&s.stateNode!=null)a.memoizedProps!==u&&oi(s);else{if(!u){if(s.stateNode===null)throw Error(r(166));return Mt(s),null}a=ae.current,$o(s)?Sx(s):(a=Yb(y,u,l),s.stateNode=a,oi(s))}return Mt(s),null;case 5:if(Ye(s),l=s.type,a!==null&&s.stateNode!=null)a.memoizedProps!==u&&oi(s);else{if(!u){if(s.stateNode===null)throw Error(r(166));return Mt(s),null}if(a=ae.current,$o(s))Sx(s);else{switch(y=Tu(ge.current),a){case 1:a=y.createElementNS("http://www.w3.org/2000/svg",l);break;case 2:a=y.createElementNS("http://www.w3.org/1998/Math/MathML",l);break;default:switch(l){case"svg":a=y.createElementNS("http://www.w3.org/2000/svg",l);break;case"math":a=y.createElementNS("http://www.w3.org/1998/Math/MathML",l);break;case"script":a=y.createElement("div"),a.innerHTML=" - - - - - - - MojeGS1 - - - - - - - - -
- - -