snice 1.14.3 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/templates/base/tsconfig.json +5 -4
- package/components/accordion/demo.html +403 -0
- package/components/accordion/snice-accordion-item.css +85 -0
- package/components/accordion/snice-accordion-item.ts +226 -0
- package/components/accordion/snice-accordion.css +31 -0
- package/components/accordion/snice-accordion.ts +182 -0
- package/components/accordion/snice-accordion.types.ts +32 -0
- package/components/alert/demo.html +445 -0
- package/components/alert/snice-alert.css +195 -0
- package/components/alert/snice-alert.ts +141 -0
- package/components/alert/snice-alert.types.ts +12 -0
- package/components/avatar/demo.html +598 -0
- package/components/avatar/snice-avatar.css +131 -0
- package/components/avatar/snice-avatar.ts +136 -0
- package/components/avatar/snice-avatar.types.ts +13 -0
- package/components/badge/demo.html +523 -0
- package/components/badge/snice-badge.css +161 -0
- package/components/badge/snice-badge.ts +117 -0
- package/components/badge/snice-badge.types.ts +16 -0
- package/components/breadcrumbs/demo.html +404 -0
- package/components/breadcrumbs/snice-breadcrumbs.css +133 -0
- package/components/breadcrumbs/snice-breadcrumbs.ts +191 -0
- package/components/breadcrumbs/snice-breadcrumbs.types.ts +26 -0
- package/components/breadcrumbs/snice-crumb.ts +26 -0
- package/components/button/demo.html +42 -0
- package/components/button/snice-button.css +230 -0
- package/components/button/snice-button.ts +169 -0
- package/components/button/snice-button.types.ts +25 -0
- package/components/card/demo.html +525 -0
- package/components/card/snice-card.css +140 -0
- package/components/card/snice-card.ts +102 -0
- package/components/card/snice-card.types.ts +10 -0
- package/components/checkbox/demo.html +253 -0
- package/components/checkbox/snice-checkbox.css +164 -0
- package/components/checkbox/snice-checkbox.ts +223 -0
- package/components/checkbox/snice-checkbox.types.ts +22 -0
- package/components/chip/demo.html +383 -0
- package/components/chip/snice-chip.css +195 -0
- package/components/chip/snice-chip.ts +139 -0
- package/components/chip/snice-chip.types.ts +15 -0
- package/components/date-picker/README.md +233 -0
- package/components/date-picker/demo.html +191 -0
- package/components/date-picker/snice-date-picker.css +330 -0
- package/components/date-picker/snice-date-picker.ts +777 -0
- package/components/date-picker/snice-date-picker.types.ts +83 -0
- package/components/divider/demo.html +233 -0
- package/components/divider/snice-divider.css +155 -0
- package/components/divider/snice-divider.ts +69 -0
- package/components/divider/snice-divider.types.ts +15 -0
- package/components/drawer/demo.html +328 -0
- package/components/drawer/snice-drawer.css +476 -0
- package/components/drawer/snice-drawer.ts +287 -0
- package/components/drawer/snice-drawer.types.ts +17 -0
- package/components/global.d.ts +14 -0
- package/components/input/demo.html +303 -0
- package/components/input/snice-input.css +257 -0
- package/components/input/snice-input.ts +442 -0
- package/components/input/snice-input.types.ts +59 -0
- package/components/input/test.html +77 -0
- package/components/layout/README.md +260 -0
- package/components/layout/demo.html +538 -0
- package/components/layout/snice-layout-blog.css +129 -0
- package/components/layout/snice-layout-blog.ts +48 -0
- package/components/layout/snice-layout-card.css +104 -0
- package/components/layout/snice-layout-card.ts +35 -0
- package/components/layout/snice-layout-centered.css +51 -0
- package/components/layout/snice-layout-centered.ts +22 -0
- package/components/layout/snice-layout-dashboard.css +98 -0
- package/components/layout/snice-layout-dashboard.ts +45 -0
- package/components/layout/snice-layout-fullscreen.css +72 -0
- package/components/layout/snice-layout-fullscreen.ts +34 -0
- package/components/layout/snice-layout-landing.css +92 -0
- package/components/layout/snice-layout-landing.ts +47 -0
- package/components/layout/snice-layout-minimal.css +16 -0
- package/components/layout/snice-layout-minimal.ts +19 -0
- package/components/layout/snice-layout-sidebar.css +117 -0
- package/components/layout/snice-layout-sidebar.ts +48 -0
- package/components/layout/snice-layout-split.css +103 -0
- package/components/layout/snice-layout-split.ts +29 -0
- package/components/layout/snice-layout.css +72 -0
- package/components/layout/snice-layout.ts +35 -0
- package/components/layout/snice-layout.types.ts +5 -0
- package/components/login/demo-auth-controller.ts +185 -0
- package/components/login/demo.html +470 -0
- package/components/login/snice-login.css +204 -0
- package/components/login/snice-login.ts +337 -0
- package/components/login/snice-login.types.ts +34 -0
- package/components/modal/demo.html +291 -0
- package/components/modal/snice-modal.css +203 -0
- package/components/modal/snice-modal.ts +233 -0
- package/components/modal/snice-modal.types.ts +21 -0
- package/components/pagination/demo.html +395 -0
- package/components/pagination/snice-pagination.ts +333 -0
- package/components/pagination/snice-pagination.types.ts +21 -0
- package/components/progress/demo.html +510 -0
- package/components/progress/snice-progress.css +267 -0
- package/components/progress/snice-progress.ts +247 -0
- package/components/progress/snice-progress.types.ts +19 -0
- package/components/radio/demo.html +287 -0
- package/components/radio/snice-radio.css +171 -0
- package/components/radio/snice-radio.ts +218 -0
- package/components/radio/snice-radio.types.ts +21 -0
- package/components/select/demo.html +511 -0
- package/components/select/snice-option.ts +52 -0
- package/components/select/snice-option.types.ts +14 -0
- package/components/select/snice-select.css +392 -0
- package/components/select/snice-select.ts +796 -0
- package/components/select/snice-select.types.ts +55 -0
- package/components/skeleton/demo.html +514 -0
- package/components/skeleton/snice-skeleton.css +109 -0
- package/components/skeleton/snice-skeleton.ts +126 -0
- package/components/skeleton/snice-skeleton.types.ts +11 -0
- package/components/switch/demo.html +284 -0
- package/components/switch/snice-switch.css +221 -0
- package/components/switch/snice-switch.ts +229 -0
- package/components/switch/snice-switch.types.ts +23 -0
- package/components/symbols.ts +23 -0
- package/components/table/demo-table-controller.ts +100 -0
- package/components/table/demo.html +480 -0
- package/components/table/snice-cell-boolean.ts +112 -0
- package/components/table/snice-cell-date.ts +210 -0
- package/components/table/snice-cell-duration.ts +91 -0
- package/components/table/snice-cell-filesize.ts +90 -0
- package/components/table/snice-cell-number.ts +165 -0
- package/components/table/snice-cell-progress.ts +83 -0
- package/components/table/snice-cell-rating.ts +82 -0
- package/components/table/snice-cell-sparkline.ts +253 -0
- package/components/table/snice-cell-text.ts +125 -0
- package/components/table/snice-cell.css +296 -0
- package/components/table/snice-cell.ts +473 -0
- package/components/table/snice-column.ts +353 -0
- package/components/table/snice-header.css +243 -0
- package/components/table/snice-header.ts +261 -0
- package/components/table/snice-progress.ts +66 -0
- package/components/table/snice-rating.ts +45 -0
- package/components/table/snice-row.css +255 -0
- package/components/table/snice-row.ts +331 -0
- package/components/table/snice-table.css +241 -0
- package/components/table/snice-table.ts +737 -0
- package/components/table/snice-table.types.ts +158 -0
- package/components/tabs/demo.html +487 -0
- package/components/tabs/snice-tab-panel.css +264 -0
- package/components/tabs/snice-tab-panel.ts +47 -0
- package/components/tabs/snice-tab.css +96 -0
- package/components/tabs/snice-tab.ts +65 -0
- package/components/tabs/snice-tabs.css +189 -0
- package/components/tabs/snice-tabs.ts +332 -0
- package/components/tabs/snice-tabs.types.ts +28 -0
- package/components/theme/theme.css +234 -0
- package/components/toast/demo.html +329 -0
- package/components/toast/snice-toast-container.ts +256 -0
- package/components/toast/snice-toast.css +213 -0
- package/components/toast/snice-toast.ts +276 -0
- package/components/toast/snice-toast.types.ts +35 -0
- package/components/tooltip/demo.html +350 -0
- package/components/tooltip/snice-tooltip-portal.css +79 -0
- package/components/tooltip/snice-tooltip.css +117 -0
- package/components/tooltip/snice-tooltip.ts +612 -0
- package/components/tooltip/snice-tooltip.types.ts +32 -0
- package/components/transitions.ts +94 -0
- package/components/tsconfig.json +18 -0
- package/dist/index.cjs +441 -329
- package/dist/index.cjs.map +1 -1
- package/dist/index.cjs.min.map +1 -1
- package/dist/index.esm.js +441 -329
- package/dist/index.esm.js.map +1 -1
- package/dist/index.esm.min.js +3 -3
- package/dist/index.esm.min.js.map +1 -1
- package/dist/index.iife.js +441 -329
- package/dist/index.iife.js.map +1 -1
- package/dist/index.iife.min.js +3 -3
- package/dist/index.iife.min.js.map +1 -1
- package/dist/symbols.esm.js +1 -1
- package/dist/transitions.esm.js +1 -1
- package/dist/types/controller.d.ts +1 -1
- package/dist/types/element.d.ts +10 -10
- package/dist/types/events.d.ts +2 -2
- package/dist/types/index.d.ts +1 -1
- package/dist/types/observe.d.ts +1 -1
- package/dist/types/request-response.d.ts +2 -3
- package/dist/types/router.d.ts +1 -1
- package/package.json +9 -3
- package/dist/index.cjs.min +0 -15
- package/dist/symbols.cjs +0 -103
- package/dist/transitions.cjs +0 -219
package/dist/index.cjs.min.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs.min","sources":["../src/global.ts","../src/symbols.ts","../src/events.ts","../src/observe.ts","../src/request-response.ts","../src/controller.ts","../src/element.ts","../node_modules/pica-route/dist/index.esm.js","../src/transitions.ts","../src/router.ts"],"sourcesContent":[null,null,null,null,null,null,null,"/*!\n * pica-route v1.1.2\n * A pure URL pattern matching library compatible with route-parser API\n * (c) 2024\n * Released under the MIT License.\n */\nclass Route {\n constructor(pattern) {\n this.parsed = this.parsePattern(pattern);\n }\n get spec() {\n return this.parsed.template;\n }\n parsePattern(pattern) {\n // Handle optional query syntax (?query=:param)\n let pathPattern = pattern;\n let queryPattern = '';\n let queryOptional = false;\n const queryIndex = pattern.indexOf('?');\n if (queryIndex !== -1) {\n pathPattern = pattern.slice(0, queryIndex);\n queryPattern = pattern.slice(queryIndex + 1);\n // Check if query is wrapped in optional syntax (?...)\n if (pathPattern.endsWith('(') && queryPattern.endsWith(')')) {\n queryOptional = true;\n pathPattern = pathPattern.slice(0, -1);\n queryPattern = queryPattern.slice(0, -1);\n }\n }\n return {\n pathSegments: this.parseSegments(pathPattern),\n querySegments: queryPattern ? this.parseQuerySegments(queryPattern) : [],\n queryOptional,\n template: pattern\n };\n }\n parseSegments(pattern) {\n const segments = [];\n let i = 0;\n while (i < pattern.length) {\n const char = pattern[i];\n switch (char) {\n case '(':\n // Parse optional group\n const { segments: optionalSegments, endIndex } = this.parseOptionalGroup(pattern, i);\n segments.push({ type: 'optional', segments: optionalSegments });\n i = endIndex + 1;\n break;\n case ':':\n // Parse parameter\n const { name, endIndex: paramEndIndex } = this.parseIdentifier(pattern, i + 1);\n segments.push({ type: 'param', name });\n i = paramEndIndex;\n break;\n case '*':\n // Parse splat\n const { name: splatName, endIndex: splatEndIndex } = this.parseIdentifier(pattern, i + 1);\n segments.push({ type: 'splat', name: splatName });\n i = splatEndIndex;\n break;\n default:\n // Parse literal text\n const { value, endIndex: literalEndIndex } = this.parseLiteral(pattern, i);\n if (value) {\n segments.push({ type: 'literal', value });\n }\n i = literalEndIndex;\n break;\n }\n }\n return segments;\n }\n parseOptionalGroup(pattern, startIndex) {\n let depth = 1;\n let i = startIndex + 1;\n while (i < pattern.length && depth > 0) {\n if (pattern[i] === '(')\n depth++;\n if (pattern[i] === ')')\n depth--;\n i++;\n }\n const content = pattern.slice(startIndex + 1, i - 1);\n return {\n segments: this.parseSegments(content),\n endIndex: i - 1\n };\n }\n parseIdentifier(pattern, startIndex) {\n let i = startIndex;\n while (i < pattern.length && /[\\w-]/.test(pattern[i])) {\n i++;\n }\n return {\n name: pattern.slice(startIndex, i),\n endIndex: i\n };\n }\n parseLiteral(pattern, startIndex) {\n let i = startIndex;\n while (i < pattern.length && !'(:*('.includes(pattern[i])) {\n i++;\n }\n return {\n value: pattern.slice(startIndex, i),\n endIndex: i\n };\n }\n parseQuerySegments(queryPattern) {\n // Remove optional group syntax wrapping the query\n let cleanPattern = queryPattern;\n if (cleanPattern.startsWith('(') && cleanPattern.endsWith(')')) {\n cleanPattern = cleanPattern.slice(1, -1);\n }\n const segments = [];\n let i = 0;\n while (i < cleanPattern.length) {\n switch (cleanPattern[i]) {\n case ':':\n const { name, endIndex } = this.parseIdentifier(cleanPattern, i + 1);\n segments.push({ type: 'param', name });\n i = endIndex;\n break;\n default:\n const { value, endIndex: literalEndIndex } = this.parseQueryLiteral(cleanPattern, i);\n if (value) {\n segments.push({ type: 'literal', value });\n }\n i = literalEndIndex;\n break;\n }\n }\n return segments;\n }\n parseQueryLiteral(pattern, startIndex) {\n let i = startIndex;\n while (i < pattern.length && pattern[i] !== ':') {\n i++;\n }\n return {\n value: pattern.slice(startIndex, i),\n endIndex: i\n };\n }\n getAllParamNames() {\n const paramNames = new Set();\n const collectParams = (segments) => {\n for (const segment of segments) {\n switch (segment.type) {\n case 'param':\n case 'splat':\n paramNames.add(segment.name);\n break;\n case 'optional':\n collectParams(segment.segments);\n break;\n }\n }\n };\n collectParams(this.parsed.pathSegments);\n collectParams(this.parsed.querySegments);\n return Array.from(paramNames);\n }\n canMatchRemainingSegments(path, startIndex, segments) {\n // Quick check: try to match the remaining segments\n // This is a simplified check - we just look for literal segments that must exist\n let pathIndex = startIndex;\n for (const segment of segments) {\n if (segment.type === 'literal') {\n const literalIndex = path.indexOf(segment.value, pathIndex);\n if (literalIndex === -1) {\n return false; // Required literal not found\n }\n pathIndex = literalIndex + segment.value.length;\n }\n // For optional, param, and splat segments, we're more permissive in this quick check\n }\n return true;\n }\n match(url) {\n const [pathPart, queryPart] = url.split('?');\n const pathParams = this.matchPath(pathPart, this.parsed.pathSegments);\n if (pathParams === false) {\n return false;\n }\n const queryParams = this.matchQuery(queryPart || '', this.parsed.querySegments);\n if (queryParams === false) {\n return false;\n }\n // Initialize result with all optional parameters set to undefined\n const allParams = this.getAllParamNames();\n const result = {};\n // Set all parameters to undefined initially\n for (const paramName of allParams) {\n result[paramName] = undefined;\n }\n // Override with actual matched values\n Object.assign(result, pathParams, queryParams);\n return result;\n }\n matchPath(path, segments) {\n const result = {};\n let pathIndex = 0;\n for (let i = 0; i < segments.length; i++) {\n const segment = segments[i];\n const remainingSegments = segments.slice(i + 1);\n const matchResult = this.matchSegment(path, pathIndex, segment, remainingSegments);\n if (matchResult === false) {\n return false;\n }\n Object.assign(result, matchResult.params);\n pathIndex = matchResult.nextIndex;\n }\n // Check if we've consumed the entire path\n if (pathIndex < path.length) {\n return false;\n }\n return result;\n }\n matchSegment(path, startIndex, segment, remainingSegments = []) {\n switch (segment.type) {\n case 'literal':\n if (path.slice(startIndex, startIndex + segment.value.length) === segment.value) {\n return { params: {}, nextIndex: startIndex + segment.value.length };\n }\n return false;\n case 'param': {\n let endIndex = startIndex;\n // Check if the next segment is a literal and find where it starts\n const nextSegment = remainingSegments[0];\n let stopChars = ['/', '?'];\n if (nextSegment && nextSegment.type === 'literal') {\n // For parameters followed by literals, we need to find where the literal starts\n const literalValue = nextSegment.value;\n const literalStart = path.indexOf(literalValue, startIndex);\n if (literalStart !== -1) {\n endIndex = literalStart;\n }\n else {\n // Literal not found, this parameter can't match\n return false;\n }\n }\n else {\n // Default behavior - stop at / or ?\n while (endIndex < path.length && !stopChars.includes(path[endIndex])) {\n endIndex++;\n }\n }\n if (endIndex === startIndex)\n return false;\n let value;\n try {\n value = decodeURIComponent(path.slice(startIndex, endIndex));\n }\n catch (e) {\n // If decoding fails, use the original value\n value = path.slice(startIndex, endIndex);\n }\n // If we hit a query string, we should reject this match for path parameters\n if (endIndex < path.length && path[endIndex] === '?' && remainingSegments.length > 0) {\n return false;\n }\n // Keep values as strings to match route-parser behavior\n return {\n params: { [segment.name]: value },\n nextIndex: endIndex\n };\n }\n case 'splat': {\n // For splats, we need to find the optimal stopping point by looking ahead\n let endIndex = path.length;\n const nextSegment = remainingSegments[0];\n if (nextSegment) {\n switch (nextSegment.type) {\n case 'literal':\n // For literal dots after splats, use first occurrence (for file extensions)\n // For other literals, use last occurrence\n if (nextSegment.value === '.') {\n const firstDotIndex = path.indexOf('.', startIndex);\n if (firstDotIndex !== -1) {\n endIndex = firstDotIndex;\n }\n }\n else {\n // Find the last occurrence of the next literal\n const literalIndex = path.lastIndexOf(nextSegment.value);\n if (literalIndex !== -1 && literalIndex >= startIndex) {\n endIndex = literalIndex;\n }\n }\n break;\n case 'param':\n // For parameter after splat, find the last slash\n let lastSlashIndex = -1;\n for (let i = path.length - 1; i >= startIndex; i--) {\n if (path[i] === '/') {\n lastSlashIndex = i;\n break;\n }\n }\n if (lastSlashIndex !== -1) {\n endIndex = lastSlashIndex;\n }\n break;\n case 'splat':\n // For consecutive splats, give this splat everything up to the last slash\n // The next splat gets the last component\n let lastSlash = -1;\n for (let i = path.length - 1; i > startIndex; i--) {\n if (path[i] === '/') {\n lastSlash = i + 1; // Include the slash\n break;\n }\n }\n if (lastSlash !== -1) {\n endIndex = lastSlash;\n }\n else {\n // No slash found, this splat gets everything except the last component\n const pathSegments = path.slice(startIndex).split('/').filter(s => s);\n if (pathSegments.length > 1) {\n endIndex = startIndex + pathSegments.slice(0, -1).join('/').length + 1;\n }\n else {\n endIndex = startIndex; // Give nothing to this splat\n }\n }\n break;\n case 'optional':\n // Look for literals inside optional groups\n const findFirstLiteral = (segs) => {\n for (const seg of segs) {\n if (seg.type === 'literal')\n return seg.value;\n if (seg.type === 'optional') {\n const nested = findFirstLiteral(seg.segments);\n if (nested)\n return nested;\n }\n }\n return null;\n };\n const firstLiteral = findFirstLiteral(nextSegment.segments);\n if (firstLiteral) {\n const literalIndex = path.lastIndexOf(firstLiteral);\n if (literalIndex !== -1 && literalIndex >= startIndex) {\n endIndex = literalIndex;\n }\n }\n break;\n }\n }\n // Don't go past query parameters\n const queryIndex = path.indexOf('?', startIndex);\n if (queryIndex !== -1 && queryIndex < endIndex) {\n endIndex = queryIndex;\n }\n let value;\n try {\n value = decodeURIComponent(path.slice(startIndex, endIndex));\n }\n catch (e) {\n // If decoding fails, use the original value\n value = path.slice(startIndex, endIndex);\n }\n return {\n params: { [segment.name]: value },\n nextIndex: endIndex\n };\n }\n case 'optional': {\n // Try to match the optional segment first, with backtracking if needed\n let tempIndex = startIndex;\n let params = {};\n let allMatched = true;\n for (let i = 0; i < segment.segments.length; i++) {\n const innerSegment = segment.segments[i];\n const remainingInner = segment.segments.slice(i + 1);\n const innerResult = this.matchSegment(path, tempIndex, innerSegment, remainingInner);\n if (innerResult === false) {\n allMatched = false;\n break;\n }\n Object.assign(params, innerResult.params);\n tempIndex = innerResult.nextIndex;\n }\n if (allMatched) {\n // Check if the rest of the segments can still be matched\n const canMatchRemaining = this.canMatchRemainingSegments(path, tempIndex, remainingSegments);\n if (canMatchRemaining) {\n return {\n params,\n nextIndex: tempIndex\n };\n }\n }\n // Optional segment either didn't match or would prevent remaining segments from matching\n // So skip it and return to original position\n return { params: {}, nextIndex: startIndex };\n }\n default:\n return false;\n }\n }\n findNextLiteral(segments) {\n for (const segment of segments) {\n if (segment.type === 'literal') {\n return segment;\n }\n else if (segment.type === 'optional') {\n const nested = this.findNextLiteral(segment.segments);\n if (nested)\n return nested;\n }\n }\n return null;\n }\n matchQuery(query, segments) {\n if (segments.length === 0) {\n return {};\n }\n const result = {};\n let queryIndex = 0;\n for (const segment of segments) {\n switch (segment.type) {\n case 'literal':\n if (query.slice(queryIndex, queryIndex + segment.value.length) === segment.value) {\n queryIndex += segment.value.length;\n }\n else {\n return false;\n }\n break;\n case 'param': {\n let endIndex = queryIndex;\n while (endIndex < query.length && query[endIndex] !== '&') {\n endIndex++;\n }\n if (endIndex === queryIndex)\n return false;\n let value;\n try {\n value = decodeURIComponent(query.slice(queryIndex, endIndex));\n }\n catch (e) {\n // If decoding fails, use the original value\n value = query.slice(queryIndex, endIndex);\n }\n result[segment.name] = value;\n queryIndex = endIndex;\n break;\n }\n }\n }\n return result;\n }\n reverse(params = {}) {\n const pathResult = this.reverseSegments(this.parsed.pathSegments, params);\n if (pathResult === false) {\n return false;\n }\n let result = pathResult;\n if (this.parsed.querySegments.length > 0) {\n const queryResult = this.reverseSegments(this.parsed.querySegments, params);\n if (!this.parsed.queryOptional) {\n // Query is required - if it fails, the whole reverse fails\n if (queryResult === false) {\n return false;\n }\n }\n // Add query string if we have a result\n if (queryResult && queryResult !== '') {\n result += '?' + queryResult;\n }\n }\n return result;\n }\n reverseSegments(segments, params, inActivatedStructure = false) {\n let result = '';\n for (let i = 0; i < segments.length; i++) {\n const segment = segments[i];\n const remainingSegments = segments.slice(i + 1);\n switch (segment.type) {\n case 'literal':\n result += segment.value;\n break;\n case 'param':\n case 'splat':\n if (segment.name in params) {\n result += String(params[segment.name]);\n }\n else {\n // Missing required parameter - but for query segments, this might be optional\n return false;\n }\n break;\n case 'optional':\n // Check if this optional group should be included\n // considering dependencies from later optional groups\n const shouldInclude = this.hasAllParams(segment.segments, params, inActivatedStructure) ||\n this.hasLaterOptionalGroupNeedingParams(remainingSegments, params, segment.segments);\n if (shouldInclude) {\n const optionalResult = this.reverseSegments(segment.segments, params, true);\n if (optionalResult === false) {\n return false;\n }\n result += optionalResult;\n }\n break;\n }\n }\n return result;\n }\n // Check if any later optional groups need parameters and would require this group to be included\n hasLaterOptionalGroupNeedingParams(laterSegments, params, currentOptionalSegments) {\n // Check if any later optional group has parameters that are provided\n for (const segment of laterSegments) {\n if (segment.type === 'optional') {\n if (this.hasAnyParamInSegments(segment.segments, params)) {\n // Check if the current optional group only has literals/no required params\n // If so, it should be included as a bridge to the later group\n return this.hasOnlyLiteralsAndOptionals(currentOptionalSegments);\n }\n }\n }\n return false;\n }\n hasOnlyLiteralsAndOptionals(segments) {\n for (const segment of segments) {\n if (segment.type === 'param' || segment.type === 'splat') {\n return false;\n }\n }\n return true;\n }\n hasAllParams(segments, params, inActivatedStructure = false) {\n // Check if we can include this optional group\n let hasDirectParams = false;\n let hasNestedParams = false;\n let missingDirectParam = false;\n let hasOnlyLiteralsAndOptionals = true;\n // First pass: check direct params and literals\n for (const segment of segments) {\n switch (segment.type) {\n case 'param':\n case 'splat':\n hasOnlyLiteralsAndOptionals = false;\n if (segment.name in params && params[segment.name] !== undefined) {\n hasDirectParams = true;\n }\n else {\n missingDirectParam = true;\n }\n break;\n }\n }\n // Determine if this level will be activated and propagate to nested\n const willBeActivated = (hasDirectParams && !missingDirectParam);\n const passToNested = inActivatedStructure || willBeActivated;\n // Second pass: check nested optional groups with correct context\n for (const segment of segments) {\n if (segment.type === 'optional') {\n const shouldIncludeNested = this.hasAllParams(segment.segments, params, passToNested);\n if (shouldIncludeNested) {\n hasNestedParams = true;\n }\n }\n }\n // Include this optional group if:\n // 1. We have all direct parameters needed, OR\n // 2. We have nested parameters and no missing direct parameters, OR\n // 3. We have only literals/optionals and parent was activated\n if (hasDirectParams && !missingDirectParam) {\n return true; // We have all required params for this level\n }\n if (hasNestedParams && !missingDirectParam) {\n return true; // We need this group to reach nested parameters\n }\n // Include literal-only groups in nested structures\n if (hasOnlyLiteralsAndOptionals && inActivatedStructure) {\n return true; // Include literal paths in activated structures\n }\n return false;\n }\n hasOnlyOptionalMissingParams(segments, params) {\n // Check if all missing parameters are in nested optional groups\n for (const segment of segments) {\n switch (segment.type) {\n case 'param':\n case 'splat':\n if (!(segment.name in params)) {\n return false; // Has required missing param\n }\n break;\n }\n }\n return true;\n }\n hasAnyParamInSegments(segments, params) {\n for (const segment of segments) {\n switch (segment.type) {\n case 'param':\n case 'splat':\n if (segment.name in params) {\n return true;\n }\n break;\n case 'optional':\n if (this.hasAnyParamInSegments(segment.segments, params)) {\n return true;\n }\n break;\n }\n }\n return false;\n }\n}\n\nexport { Route, Route as default };\n//# sourceMappingURL=index.esm.js.map\n",null,null],"names":["snice","globalThis","controllerRegistry","Map","controllerIdCounter","symbols","getSymbol","name","has","set","Symbol","get","IS_CONTROLLER_CLASS","IS_CONTROLLER_INSTANCE","IS_ELEMENT_CLASS","CHANNEL_HANDLERS","READY_PROMISE","READY_RESOLVE","CONTROLLER","ON_HANDLERS","CONTROLLER_KEY","CONTROLLER_NAME_KEY","CONTROLLER_ID","CONTROLLER_OPERATIONS","NATIVE_CONTROLLER","CLEANUP","PROPERTIES","PROPERTY_VALUES","PROPERTIES_INITIALIZED","PROPERTY_WATCHERS","EXPLICITLY_SET_PROPERTIES","ROUTER_CONTEXT","CONTEXT_REQUEST_HANDLER","PAGE_TRANSITION","CREATED_AT","READY_HANDLERS","DISPOSE_HANDLERS","OBSERVERS","PARTS","PART_TIMERS","setupEventHandlers","instance","element","handlers","constructor","prototype","events","channels","handler","originalMethod","method","bind","handlerOptions","options","baseEventName","keyModifier","eventName","split","createEventHandler","event","keyEvent","normalizeKey","key","startsWith","slice","includes","parts","length","modifiers","expectedModifiers","Set","map","m","toLowerCase","hasCtrl","hasShift","hasAlt","hasMeta","ctrlKey","shiftKey","altKey","metaKey","timedMethod","debounce","timeoutId","args","clearTimeout","setTimeout","apply","this","throttle","lastCall","now","Date","remaining","createTimedWrapper","wrappedMethod","preventDefault","stopPropagation","error","console","methodName","selector","eventRoot","shadowRoot","delegatedHandler","target","shouldHandle","matches","closest","stopImmediatePropagation","listenerOptions","capture","once","passive","addEventListener","push","removeEventListener","cleanupEventHandlers","cleanup","mediaQueryCache","intersectionObservers","WeakMap","setupObservers","observers","Array","isArray","observer","callback","createThrottledCallback","type","setupIntersectionObserver","setupResizeObserver","setupMediaQueryObserver","setupMutationObserver","warn","threshold","rootMargin","root","optionsKey","JSON","stringify","wrappedCallback","entries","entry","io","unobserve","IntersectionObserver","targets","from","querySelectorAll","forEach","observe","takeRecords","disconnect","box","ResizeObserver","ro","_element","mediaQuery","mql","window","matchMedia","changeHandler","e","addListener","removeListener","mutationType","attributeName","childList","attributes","attributeFilter","subtree","maxDepth","mo","MutationObserver","mutations","filtered","filter","mutation","depth","current","parentNode","isController","delay","timeout","cleanupObservers","setupResponseHandlers","boundMethod","channelName","debounceTimeout","throttleTimeout","throttleLastCall","Promise","resolve","reject","async","result","undefined","createTimedMethod","responseHandler","data","discovery","payload","detail","then","catch","cleanupResponseHandlers","ControllerScope","cleanupFns","pendingOperations","register","unregister","delete","all","values","clear","runOperation","operation","promise","voidPromise","add","attachController","controllerName","existingController","existingName","nativeController","detachController","ControllerClass","Error","controllerInstance","controllerId","scope","routerContext","ready","attach","dispatchEvent","CustomEvent","controller","detach","applyElementFunctionality","originalConnectedCallback","connectedCallback","originalDisconnectedCallback","disconnectedCallback","originalAttributeChangedCallback","attributeChangedCallback","observedAttributes","properties","propName","propOptions","attribute","Object","defineProperty","configurable","enumerable","value","oldValue","hasAttribute","attrValue","getAttribute","Boolean","Number","String","BigInt","endsWith","SimpleArray","parse","reflect","attributeValue","toISOString","toString","serialize","setAttribute","attachShadow","mode","shadowContent","html","htmlResult","htmlContent","tagName","css","cssResult","cssResolved","join","innerHTML","partName","partHandler","partElement","querySelector","partResult","call","partContent","readyHandlers","disposeHandlers","newValue","currentValue","parsedValue","watchers","propertyWatchers","watcher","wildcardWatchers","arr","item","SEPARATOR","str","test","num","isNaN","Route","pattern","parsed","parsePattern","spec","template","pathPattern","queryPattern","queryOptional","queryIndex","indexOf","pathSegments","parseSegments","querySegments","parseQuerySegments","segments","i","optionalSegments","endIndex","parseOptionalGroup","paramEndIndex","parseIdentifier","splatName","splatEndIndex","literalEndIndex","parseLiteral","startIndex","content","cleanPattern","parseQueryLiteral","getAllParamNames","paramNames","collectParams","segment","canMatchRemainingSegments","path","pathIndex","literalIndex","match","url","pathPart","queryPart","pathParams","matchPath","queryParams","matchQuery","allParams","paramName","assign","remainingSegments","matchResult","matchSegment","params","nextIndex","nextSegment","stopChars","literalValue","literalStart","decodeURIComponent","firstDotIndex","lastIndexOf","lastSlashIndex","lastSlash","s","findFirstLiteral","segs","seg","nested","firstLiteral","tempIndex","allMatched","innerSegment","remainingInner","innerResult","findNextLiteral","query","reverse","pathResult","reverseSegments","queryResult","inActivatedStructure","hasAllParams","hasLaterOptionalGroupNeedingParams","optionalResult","laterSegments","currentOptionalSegments","hasAnyParamInSegments","hasOnlyLiteralsAndOptionals","hasDirectParams","hasNestedParams","missingDirectParam","passToNested","hasOnlyOptionalMissingParams","parseStyles","styleString","styles","rule","prop","trim","RouteResult","routes","_404","_403","home","is_sorted","currentLayoutName","currentLayoutTimestamp","context","getCurrentLayoutElement","layoutElements","route","tag","transition","guards","layout","getPath","location","hash","pathname","renderForbiddenPage","newPageElement","has403Page","document","createElement","div","className","appendChild","checkGuards","guardsArray","guard","determineLayout","pageLayout","setupLayout","layoutToUse","needsNewLayout","timestamp","layoutElement","renderWithLayout","pageElement","currentLayout","oldPageInLayout","performTransition","page","remove","renderDirect","currentElementInTarget","children","navigate","scrollTo","homeRoute","find","r","customElements","createHomeElement","finalTransition","routeResult","GUARDS_FAILED","routeParams","keys","SUCCESS","NOT_FOUND","resolveRoute","create404Element","container","oldElement","newElement","outDuration","inDuration","outStyles","out","opacity","inStartStyles","inEndStyles","in","containerStyle","style","originalPosition","position","isLayoutElement","isSlottedTransition","width","height","top","left","offsetHeight","Math","max","performTransitionUtil","pageOptions","elementConnectedCallback","contextRequestHandler","elementDisconnectedCallback","define","initialize","sort","a","b","isHashType","isPushStateType","setupEventListeners","sniceNativeControllerObserver","sniceNativeControllersInitialized","propertyKey","bubbles","cancelable","targetElement","getRootNode","ShadowRoot","host","_target","_propertyKey","descriptor","doDispatch","dispatchOnUndefined","composed","timedDispatch","resolvedResult","observeTarget","selectorOrOptions","opts","observeTargets","targetString","eventNames","getOwnPropertyDescriptor","writable","throttleTimer","debounceTimer","lastThrottleCall","timers","renderPart","remainingTime","isInitialDefaultValue","removeAttribute","requestUpdate","light","shadow","results","shadowResults","lightResults","requestName","actualRequest","responseTimeout","discoveryTimeout","generator","done","next","dataResolve","dataReject","dataPromise","discoveryResolve","discoveryReject","discoveryTimeoutId","discoveryPromise","responseTimeoutId","response","finalValue","throw","generatorError","processElement","HTMLElement","currentControllerName","addedNodes","node","readyState","body","propertyNames","propertyName"],"mappings":"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","x_google_ignoreList":[7]}
|
|
1
|
+
{"version":3,"file":"index.cjs.min","sources":["../src/global.ts","../src/symbols.ts","../src/events.ts","../src/observe.ts","../src/request-response.ts","../src/controller.ts","../src/element.ts","../node_modules/pica-route/dist/index.esm.js","../src/transitions.ts","../src/router.ts"],"sourcesContent":[null,null,null,null,null,null,null,"/*!\n * pica-route v1.1.2\n * A pure URL pattern matching library compatible with route-parser API\n * (c) 2024\n * Released under the MIT License.\n */\nclass Route {\n constructor(pattern) {\n this.parsed = this.parsePattern(pattern);\n }\n get spec() {\n return this.parsed.template;\n }\n parsePattern(pattern) {\n // Handle optional query syntax (?query=:param)\n let pathPattern = pattern;\n let queryPattern = '';\n let queryOptional = false;\n const queryIndex = pattern.indexOf('?');\n if (queryIndex !== -1) {\n pathPattern = pattern.slice(0, queryIndex);\n queryPattern = pattern.slice(queryIndex + 1);\n // Check if query is wrapped in optional syntax (?...)\n if (pathPattern.endsWith('(') && queryPattern.endsWith(')')) {\n queryOptional = true;\n pathPattern = pathPattern.slice(0, -1);\n queryPattern = queryPattern.slice(0, -1);\n }\n }\n return {\n pathSegments: this.parseSegments(pathPattern),\n querySegments: queryPattern ? this.parseQuerySegments(queryPattern) : [],\n queryOptional,\n template: pattern\n };\n }\n parseSegments(pattern) {\n const segments = [];\n let i = 0;\n while (i < pattern.length) {\n const char = pattern[i];\n switch (char) {\n case '(':\n // Parse optional group\n const { segments: optionalSegments, endIndex } = this.parseOptionalGroup(pattern, i);\n segments.push({ type: 'optional', segments: optionalSegments });\n i = endIndex + 1;\n break;\n case ':':\n // Parse parameter\n const { name, endIndex: paramEndIndex } = this.parseIdentifier(pattern, i + 1);\n segments.push({ type: 'param', name });\n i = paramEndIndex;\n break;\n case '*':\n // Parse splat\n const { name: splatName, endIndex: splatEndIndex } = this.parseIdentifier(pattern, i + 1);\n segments.push({ type: 'splat', name: splatName });\n i = splatEndIndex;\n break;\n default:\n // Parse literal text\n const { value, endIndex: literalEndIndex } = this.parseLiteral(pattern, i);\n if (value) {\n segments.push({ type: 'literal', value });\n }\n i = literalEndIndex;\n break;\n }\n }\n return segments;\n }\n parseOptionalGroup(pattern, startIndex) {\n let depth = 1;\n let i = startIndex + 1;\n while (i < pattern.length && depth > 0) {\n if (pattern[i] === '(')\n depth++;\n if (pattern[i] === ')')\n depth--;\n i++;\n }\n const content = pattern.slice(startIndex + 1, i - 1);\n return {\n segments: this.parseSegments(content),\n endIndex: i - 1\n };\n }\n parseIdentifier(pattern, startIndex) {\n let i = startIndex;\n while (i < pattern.length && /[\\w-]/.test(pattern[i])) {\n i++;\n }\n return {\n name: pattern.slice(startIndex, i),\n endIndex: i\n };\n }\n parseLiteral(pattern, startIndex) {\n let i = startIndex;\n while (i < pattern.length && !'(:*('.includes(pattern[i])) {\n i++;\n }\n return {\n value: pattern.slice(startIndex, i),\n endIndex: i\n };\n }\n parseQuerySegments(queryPattern) {\n // Remove optional group syntax wrapping the query\n let cleanPattern = queryPattern;\n if (cleanPattern.startsWith('(') && cleanPattern.endsWith(')')) {\n cleanPattern = cleanPattern.slice(1, -1);\n }\n const segments = [];\n let i = 0;\n while (i < cleanPattern.length) {\n switch (cleanPattern[i]) {\n case ':':\n const { name, endIndex } = this.parseIdentifier(cleanPattern, i + 1);\n segments.push({ type: 'param', name });\n i = endIndex;\n break;\n default:\n const { value, endIndex: literalEndIndex } = this.parseQueryLiteral(cleanPattern, i);\n if (value) {\n segments.push({ type: 'literal', value });\n }\n i = literalEndIndex;\n break;\n }\n }\n return segments;\n }\n parseQueryLiteral(pattern, startIndex) {\n let i = startIndex;\n while (i < pattern.length && pattern[i] !== ':') {\n i++;\n }\n return {\n value: pattern.slice(startIndex, i),\n endIndex: i\n };\n }\n getAllParamNames() {\n const paramNames = new Set();\n const collectParams = (segments) => {\n for (const segment of segments) {\n switch (segment.type) {\n case 'param':\n case 'splat':\n paramNames.add(segment.name);\n break;\n case 'optional':\n collectParams(segment.segments);\n break;\n }\n }\n };\n collectParams(this.parsed.pathSegments);\n collectParams(this.parsed.querySegments);\n return Array.from(paramNames);\n }\n canMatchRemainingSegments(path, startIndex, segments) {\n // Quick check: try to match the remaining segments\n // This is a simplified check - we just look for literal segments that must exist\n let pathIndex = startIndex;\n for (const segment of segments) {\n if (segment.type === 'literal') {\n const literalIndex = path.indexOf(segment.value, pathIndex);\n if (literalIndex === -1) {\n return false; // Required literal not found\n }\n pathIndex = literalIndex + segment.value.length;\n }\n // For optional, param, and splat segments, we're more permissive in this quick check\n }\n return true;\n }\n match(url) {\n const [pathPart, queryPart] = url.split('?');\n const pathParams = this.matchPath(pathPart, this.parsed.pathSegments);\n if (pathParams === false) {\n return false;\n }\n const queryParams = this.matchQuery(queryPart || '', this.parsed.querySegments);\n if (queryParams === false) {\n return false;\n }\n // Initialize result with all optional parameters set to undefined\n const allParams = this.getAllParamNames();\n const result = {};\n // Set all parameters to undefined initially\n for (const paramName of allParams) {\n result[paramName] = undefined;\n }\n // Override with actual matched values\n Object.assign(result, pathParams, queryParams);\n return result;\n }\n matchPath(path, segments) {\n const result = {};\n let pathIndex = 0;\n for (let i = 0; i < segments.length; i++) {\n const segment = segments[i];\n const remainingSegments = segments.slice(i + 1);\n const matchResult = this.matchSegment(path, pathIndex, segment, remainingSegments);\n if (matchResult === false) {\n return false;\n }\n Object.assign(result, matchResult.params);\n pathIndex = matchResult.nextIndex;\n }\n // Check if we've consumed the entire path\n if (pathIndex < path.length) {\n return false;\n }\n return result;\n }\n matchSegment(path, startIndex, segment, remainingSegments = []) {\n switch (segment.type) {\n case 'literal':\n if (path.slice(startIndex, startIndex + segment.value.length) === segment.value) {\n return { params: {}, nextIndex: startIndex + segment.value.length };\n }\n return false;\n case 'param': {\n let endIndex = startIndex;\n // Check if the next segment is a literal and find where it starts\n const nextSegment = remainingSegments[0];\n let stopChars = ['/', '?'];\n if (nextSegment && nextSegment.type === 'literal') {\n // For parameters followed by literals, we need to find where the literal starts\n const literalValue = nextSegment.value;\n const literalStart = path.indexOf(literalValue, startIndex);\n if (literalStart !== -1) {\n endIndex = literalStart;\n }\n else {\n // Literal not found, this parameter can't match\n return false;\n }\n }\n else {\n // Default behavior - stop at / or ?\n while (endIndex < path.length && !stopChars.includes(path[endIndex])) {\n endIndex++;\n }\n }\n if (endIndex === startIndex)\n return false;\n let value;\n try {\n value = decodeURIComponent(path.slice(startIndex, endIndex));\n }\n catch (e) {\n // If decoding fails, use the original value\n value = path.slice(startIndex, endIndex);\n }\n // If we hit a query string, we should reject this match for path parameters\n if (endIndex < path.length && path[endIndex] === '?' && remainingSegments.length > 0) {\n return false;\n }\n // Keep values as strings to match route-parser behavior\n return {\n params: { [segment.name]: value },\n nextIndex: endIndex\n };\n }\n case 'splat': {\n // For splats, we need to find the optimal stopping point by looking ahead\n let endIndex = path.length;\n const nextSegment = remainingSegments[0];\n if (nextSegment) {\n switch (nextSegment.type) {\n case 'literal':\n // For literal dots after splats, use first occurrence (for file extensions)\n // For other literals, use last occurrence\n if (nextSegment.value === '.') {\n const firstDotIndex = path.indexOf('.', startIndex);\n if (firstDotIndex !== -1) {\n endIndex = firstDotIndex;\n }\n }\n else {\n // Find the last occurrence of the next literal\n const literalIndex = path.lastIndexOf(nextSegment.value);\n if (literalIndex !== -1 && literalIndex >= startIndex) {\n endIndex = literalIndex;\n }\n }\n break;\n case 'param':\n // For parameter after splat, find the last slash\n let lastSlashIndex = -1;\n for (let i = path.length - 1; i >= startIndex; i--) {\n if (path[i] === '/') {\n lastSlashIndex = i;\n break;\n }\n }\n if (lastSlashIndex !== -1) {\n endIndex = lastSlashIndex;\n }\n break;\n case 'splat':\n // For consecutive splats, give this splat everything up to the last slash\n // The next splat gets the last component\n let lastSlash = -1;\n for (let i = path.length - 1; i > startIndex; i--) {\n if (path[i] === '/') {\n lastSlash = i + 1; // Include the slash\n break;\n }\n }\n if (lastSlash !== -1) {\n endIndex = lastSlash;\n }\n else {\n // No slash found, this splat gets everything except the last component\n const pathSegments = path.slice(startIndex).split('/').filter(s => s);\n if (pathSegments.length > 1) {\n endIndex = startIndex + pathSegments.slice(0, -1).join('/').length + 1;\n }\n else {\n endIndex = startIndex; // Give nothing to this splat\n }\n }\n break;\n case 'optional':\n // Look for literals inside optional groups\n const findFirstLiteral = (segs) => {\n for (const seg of segs) {\n if (seg.type === 'literal')\n return seg.value;\n if (seg.type === 'optional') {\n const nested = findFirstLiteral(seg.segments);\n if (nested)\n return nested;\n }\n }\n return null;\n };\n const firstLiteral = findFirstLiteral(nextSegment.segments);\n if (firstLiteral) {\n const literalIndex = path.lastIndexOf(firstLiteral);\n if (literalIndex !== -1 && literalIndex >= startIndex) {\n endIndex = literalIndex;\n }\n }\n break;\n }\n }\n // Don't go past query parameters\n const queryIndex = path.indexOf('?', startIndex);\n if (queryIndex !== -1 && queryIndex < endIndex) {\n endIndex = queryIndex;\n }\n let value;\n try {\n value = decodeURIComponent(path.slice(startIndex, endIndex));\n }\n catch (e) {\n // If decoding fails, use the original value\n value = path.slice(startIndex, endIndex);\n }\n return {\n params: { [segment.name]: value },\n nextIndex: endIndex\n };\n }\n case 'optional': {\n // Try to match the optional segment first, with backtracking if needed\n let tempIndex = startIndex;\n let params = {};\n let allMatched = true;\n for (let i = 0; i < segment.segments.length; i++) {\n const innerSegment = segment.segments[i];\n const remainingInner = segment.segments.slice(i + 1);\n const innerResult = this.matchSegment(path, tempIndex, innerSegment, remainingInner);\n if (innerResult === false) {\n allMatched = false;\n break;\n }\n Object.assign(params, innerResult.params);\n tempIndex = innerResult.nextIndex;\n }\n if (allMatched) {\n // Check if the rest of the segments can still be matched\n const canMatchRemaining = this.canMatchRemainingSegments(path, tempIndex, remainingSegments);\n if (canMatchRemaining) {\n return {\n params,\n nextIndex: tempIndex\n };\n }\n }\n // Optional segment either didn't match or would prevent remaining segments from matching\n // So skip it and return to original position\n return { params: {}, nextIndex: startIndex };\n }\n default:\n return false;\n }\n }\n findNextLiteral(segments) {\n for (const segment of segments) {\n if (segment.type === 'literal') {\n return segment;\n }\n else if (segment.type === 'optional') {\n const nested = this.findNextLiteral(segment.segments);\n if (nested)\n return nested;\n }\n }\n return null;\n }\n matchQuery(query, segments) {\n if (segments.length === 0) {\n return {};\n }\n const result = {};\n let queryIndex = 0;\n for (const segment of segments) {\n switch (segment.type) {\n case 'literal':\n if (query.slice(queryIndex, queryIndex + segment.value.length) === segment.value) {\n queryIndex += segment.value.length;\n }\n else {\n return false;\n }\n break;\n case 'param': {\n let endIndex = queryIndex;\n while (endIndex < query.length && query[endIndex] !== '&') {\n endIndex++;\n }\n if (endIndex === queryIndex)\n return false;\n let value;\n try {\n value = decodeURIComponent(query.slice(queryIndex, endIndex));\n }\n catch (e) {\n // If decoding fails, use the original value\n value = query.slice(queryIndex, endIndex);\n }\n result[segment.name] = value;\n queryIndex = endIndex;\n break;\n }\n }\n }\n return result;\n }\n reverse(params = {}) {\n const pathResult = this.reverseSegments(this.parsed.pathSegments, params);\n if (pathResult === false) {\n return false;\n }\n let result = pathResult;\n if (this.parsed.querySegments.length > 0) {\n const queryResult = this.reverseSegments(this.parsed.querySegments, params);\n if (!this.parsed.queryOptional) {\n // Query is required - if it fails, the whole reverse fails\n if (queryResult === false) {\n return false;\n }\n }\n // Add query string if we have a result\n if (queryResult && queryResult !== '') {\n result += '?' + queryResult;\n }\n }\n return result;\n }\n reverseSegments(segments, params, inActivatedStructure = false) {\n let result = '';\n for (let i = 0; i < segments.length; i++) {\n const segment = segments[i];\n const remainingSegments = segments.slice(i + 1);\n switch (segment.type) {\n case 'literal':\n result += segment.value;\n break;\n case 'param':\n case 'splat':\n if (segment.name in params) {\n result += String(params[segment.name]);\n }\n else {\n // Missing required parameter - but for query segments, this might be optional\n return false;\n }\n break;\n case 'optional':\n // Check if this optional group should be included\n // considering dependencies from later optional groups\n const shouldInclude = this.hasAllParams(segment.segments, params, inActivatedStructure) ||\n this.hasLaterOptionalGroupNeedingParams(remainingSegments, params, segment.segments);\n if (shouldInclude) {\n const optionalResult = this.reverseSegments(segment.segments, params, true);\n if (optionalResult === false) {\n return false;\n }\n result += optionalResult;\n }\n break;\n }\n }\n return result;\n }\n // Check if any later optional groups need parameters and would require this group to be included\n hasLaterOptionalGroupNeedingParams(laterSegments, params, currentOptionalSegments) {\n // Check if any later optional group has parameters that are provided\n for (const segment of laterSegments) {\n if (segment.type === 'optional') {\n if (this.hasAnyParamInSegments(segment.segments, params)) {\n // Check if the current optional group only has literals/no required params\n // If so, it should be included as a bridge to the later group\n return this.hasOnlyLiteralsAndOptionals(currentOptionalSegments);\n }\n }\n }\n return false;\n }\n hasOnlyLiteralsAndOptionals(segments) {\n for (const segment of segments) {\n if (segment.type === 'param' || segment.type === 'splat') {\n return false;\n }\n }\n return true;\n }\n hasAllParams(segments, params, inActivatedStructure = false) {\n // Check if we can include this optional group\n let hasDirectParams = false;\n let hasNestedParams = false;\n let missingDirectParam = false;\n let hasOnlyLiteralsAndOptionals = true;\n // First pass: check direct params and literals\n for (const segment of segments) {\n switch (segment.type) {\n case 'param':\n case 'splat':\n hasOnlyLiteralsAndOptionals = false;\n if (segment.name in params && params[segment.name] !== undefined) {\n hasDirectParams = true;\n }\n else {\n missingDirectParam = true;\n }\n break;\n }\n }\n // Determine if this level will be activated and propagate to nested\n const willBeActivated = (hasDirectParams && !missingDirectParam);\n const passToNested = inActivatedStructure || willBeActivated;\n // Second pass: check nested optional groups with correct context\n for (const segment of segments) {\n if (segment.type === 'optional') {\n const shouldIncludeNested = this.hasAllParams(segment.segments, params, passToNested);\n if (shouldIncludeNested) {\n hasNestedParams = true;\n }\n }\n }\n // Include this optional group if:\n // 1. We have all direct parameters needed, OR\n // 2. We have nested parameters and no missing direct parameters, OR\n // 3. We have only literals/optionals and parent was activated\n if (hasDirectParams && !missingDirectParam) {\n return true; // We have all required params for this level\n }\n if (hasNestedParams && !missingDirectParam) {\n return true; // We need this group to reach nested parameters\n }\n // Include literal-only groups in nested structures\n if (hasOnlyLiteralsAndOptionals && inActivatedStructure) {\n return true; // Include literal paths in activated structures\n }\n return false;\n }\n hasOnlyOptionalMissingParams(segments, params) {\n // Check if all missing parameters are in nested optional groups\n for (const segment of segments) {\n switch (segment.type) {\n case 'param':\n case 'splat':\n if (!(segment.name in params)) {\n return false; // Has required missing param\n }\n break;\n }\n }\n return true;\n }\n hasAnyParamInSegments(segments, params) {\n for (const segment of segments) {\n switch (segment.type) {\n case 'param':\n case 'splat':\n if (segment.name in params) {\n return true;\n }\n break;\n case 'optional':\n if (this.hasAnyParamInSegments(segment.segments, params)) {\n return true;\n }\n break;\n }\n }\n return false;\n }\n}\n\nexport { Route, Route as default };\n//# sourceMappingURL=index.esm.js.map\n",null,null],"names":["snice","globalThis","controllerRegistry","Map","controllerIdCounter","symbols","getSymbol","name","has","set","Symbol","get","IS_CONTROLLER_CLASS","IS_CONTROLLER_INSTANCE","IS_ELEMENT_CLASS","CHANNEL_HANDLERS","READY_PROMISE","READY_RESOLVE","CONTROLLER","ON_HANDLERS","CONTROLLER_KEY","CONTROLLER_NAME_KEY","CONTROLLER_ID","CONTROLLER_OPERATIONS","NATIVE_CONTROLLER","CLEANUP","PROPERTIES","PROPERTY_VALUES","PROPERTIES_INITIALIZED","PROPERTY_WATCHERS","EXPLICITLY_SET_PROPERTIES","ROUTER_CONTEXT","CONTEXT_REQUEST_HANDLER","PAGE_TRANSITION","CREATED_AT","READY_HANDLERS","DISPOSE_HANDLERS","OBSERVERS","PARTS","PART_TIMERS","setupEventHandlers","instance","element","handlers","constructor","prototype","events","channels","handler","originalMethod","method","bind","handlerOptions","options","baseEventName","keyModifier","eventName","split","createEventHandler","event","keyEvent","normalizeKey","key","startsWith","slice","includes","parts","length","modifiers","expectedModifiers","Set","map","m","toLowerCase","hasCtrl","hasShift","hasAlt","hasMeta","ctrlKey","shiftKey","altKey","metaKey","timedMethod","debounce","timeoutId","args","clearTimeout","setTimeout","apply","this","throttle","lastCall","now","Date","remaining","createTimedWrapper","wrappedMethod","preventDefault","stopPropagation","error","console","methodName","selector","eventRoot","shadowRoot","delegatedHandler","target","shouldHandle","matches","closest","stopImmediatePropagation","listenerOptions","capture","once","passive","addEventListener","push","removeEventListener","cleanupEventHandlers","cleanup","mediaQueryCache","intersectionObservers","WeakMap","setupObservers","observers","Array","isArray","observer","callback","createThrottledCallback","type","setupIntersectionObserver","setupResizeObserver","setupMediaQueryObserver","setupMutationObserver","warn","threshold","rootMargin","root","optionsKey","JSON","stringify","wrappedCallback","entries","entry","io","unobserve","IntersectionObserver","targets","from","querySelectorAll","forEach","observe","takeRecords","disconnect","box","ResizeObserver","ro","_element","mediaQuery","mql","window","matchMedia","changeHandler","e","addListener","removeListener","mutationType","attributeName","childList","attributes","attributeFilter","subtree","maxDepth","mo","MutationObserver","mutations","filtered","filter","mutation","depth","current","parentNode","isController","delay","timeout","cleanupObservers","setupResponseHandlers","boundMethod","channelName","debounceTimeout","throttleTimeout","throttleLastCall","Promise","resolve","reject","async","result","undefined","createTimedMethod","responseHandler","data","discovery","payload","detail","then","catch","cleanupResponseHandlers","ControllerScope","cleanupFns","pendingOperations","register","unregister","delete","all","values","clear","runOperation","operation","promise","voidPromise","add","attachController","controllerName","existingController","existingName","nativeController","detachController","ControllerClass","Error","controllerInstance","controllerId","scope","routerContext","ready","attach","dispatchEvent","CustomEvent","controller","detach","applyElementFunctionality","originalConnectedCallback","connectedCallback","originalDisconnectedCallback","disconnectedCallback","originalAttributeChangedCallback","attributeChangedCallback","observedAttributes","properties","propName","propOptions","attribute","Object","defineProperty","configurable","enumerable","value","oldValue","hasAttribute","attrValue","getAttribute","Boolean","Number","String","BigInt","endsWith","SimpleArray","parse","wasExplicitlySet","hasInitialValue","reflect","attributeValue","toISOString","toString","serialize","setAttribute","attachShadow","mode","shadowContent","html","htmlResult","htmlContent","tagName","css","cssResult","cssResolved","join","innerHTML","partName","partHandler","partElement","querySelector","partResult","call","partContent","readyHandlers","disposeHandlers","newValue","currentValue","parsedValue","watchers","propertyWatchers","watcher","wildcardWatchers","SEPARATOR","arr","item","str","test","num","isNaN","Route","pattern","parsed","parsePattern","spec","template","pathPattern","queryPattern","queryOptional","queryIndex","indexOf","pathSegments","parseSegments","querySegments","parseQuerySegments","segments","i","optionalSegments","endIndex","parseOptionalGroup","paramEndIndex","parseIdentifier","splatName","splatEndIndex","literalEndIndex","parseLiteral","startIndex","content","cleanPattern","parseQueryLiteral","getAllParamNames","paramNames","collectParams","segment","canMatchRemainingSegments","path","pathIndex","literalIndex","match","url","pathPart","queryPart","pathParams","matchPath","queryParams","matchQuery","allParams","paramName","assign","remainingSegments","matchResult","matchSegment","params","nextIndex","nextSegment","stopChars","literalValue","literalStart","decodeURIComponent","firstDotIndex","lastIndexOf","lastSlashIndex","lastSlash","s","findFirstLiteral","segs","seg","nested","firstLiteral","tempIndex","allMatched","innerSegment","remainingInner","innerResult","findNextLiteral","query","reverse","pathResult","reverseSegments","queryResult","inActivatedStructure","hasAllParams","hasLaterOptionalGroupNeedingParams","optionalResult","laterSegments","currentOptionalSegments","hasAnyParamInSegments","hasOnlyLiteralsAndOptionals","hasDirectParams","hasNestedParams","missingDirectParam","passToNested","hasOnlyOptionalMissingParams","parseStyles","styleString","styles","rule","prop","trim","RouteResult","routes","_404","_403","home","is_sorted","currentLayoutName","currentLayoutTimestamp","context","getCurrentLayoutElement","layoutElements","route","tag","transition","guards","layout","getPath","location","hash","pathname","renderForbiddenPage","newPageElement","has403Page","document","createElement","div","className","appendChild","checkGuards","guardsArray","guard","determineLayout","pageLayout","setupLayout","layoutToUse","needsNewLayout","timestamp","layoutElement","renderWithLayout","pageElement","currentLayout","oldPageInLayout","performTransition","page","remove","renderDirect","currentElementInTarget","children","navigate","scrollTo","homeRoute","find","r","customElements","createHomeElement","finalTransition","routeResult","GUARDS_FAILED","routeParams","keys","SUCCESS","NOT_FOUND","resolveRoute","create404Element","container","oldElement","newElement","outDuration","inDuration","outStyles","out","opacity","inStartStyles","inEndStyles","in","containerStyle","style","originalPosition","position","isLayoutElement","isSlottedTransition","width","height","top","left","offsetHeight","Math","max","performTransitionUtil","pageOptions","metadata","elementConnectedCallback","contextRequestHandler","elementDisconnectedCallback","define","initialize","sort","a","b","isHashType","isPushStateType","setupEventListeners","sniceNativeControllerObserver","sniceNativeControllersInitialized","_value","propertyKey","initialValue","hasOwnProperty","descriptor","bubbles","cancelable","targetElement","getRootNode","ShadowRoot","host","_context","doDispatch","dispatchOnUndefined","composed","timedDispatch","resolvedResult","addInitializer","observeTarget","selectorOrOptions","opts","observeTargets","targetString","eventNames","throttleTimer","debounceTimer","lastThrottleCall","timers","updateDOM","remainingTime","isInitialDefaultValue","removeAttribute","requestUpdate","light","shadow","results","shadowResults","lightResults","requestName","actualRequest","responseTimeout","discoveryTimeout","generator","done","next","dataResolve","dataReject","dataPromise","discoveryResolve","discoveryReject","discoveryTimeoutId","discoveryPromise","responseTimeoutId","response","finalValue","throw","generatorError","processElement","HTMLElement","currentControllerName","addedNodes","node","readyState","body","propertyNames","propertyName"],"mappings":"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","x_google_ignoreList":[7]}
|