@solidxai/core-ui 0.1.16-beta.1 → 0.1.17-beta.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.
Files changed (82) hide show
  1. package/dist/components/auth/AuthLayout.d.ts.map +1 -1
  2. package/dist/components/auth/AuthLayout.js +15 -14
  3. package/dist/components/auth/AuthLayout.js.map +1 -1
  4. package/dist/components/auth/AuthLayout.tsx +35 -34
  5. package/dist/components/common/SettingsComponent.module.css +89 -0
  6. package/dist/components/common/SolidAdmin.js +2 -2
  7. package/dist/components/common/SolidAdmin.js.map +1 -1
  8. package/dist/components/common/SolidAdmin.tsx +2 -2
  9. package/dist/components/common/SolidSettings/LlmSettings/AiModelConfigTab.js +1 -1
  10. package/dist/components/common/SolidSettings/LlmSettings/AiModelConfigTab.js.map +1 -1
  11. package/dist/components/common/SolidSettings/LlmSettings/AiModelConfigTab.tsx +2 -2
  12. package/dist/components/core/card/CardItem.d.ts.map +1 -1
  13. package/dist/components/core/card/CardItem.js +1 -1
  14. package/dist/components/core/card/CardItem.js.map +1 -1
  15. package/dist/components/core/card/CardItem.tsx +4 -1
  16. package/dist/components/core/card/SolidCardView.js +1 -1
  17. package/dist/components/core/card/SolidCardView.js.map +1 -1
  18. package/dist/components/core/card/SolidCardView.tsx +1 -1
  19. package/dist/components/core/card/SolidCardViewConfigure.js +1 -1
  20. package/dist/components/core/card/SolidCardViewConfigure.js.map +1 -1
  21. package/dist/components/core/card/SolidCardViewConfigure.tsx +1 -1
  22. package/dist/components/core/kanban/KanbanCard.d.ts.map +1 -1
  23. package/dist/components/core/kanban/KanbanCard.js +2 -2
  24. package/dist/components/core/kanban/KanbanCard.js.map +1 -1
  25. package/dist/components/core/kanban/KanbanCard.tsx +5 -2
  26. package/dist/components/core/kanban/SolidKanbanView.js +1 -1
  27. package/dist/components/core/kanban/SolidKanbanView.js.map +1 -1
  28. package/dist/components/core/kanban/SolidKanbanView.tsx +1 -1
  29. package/dist/components/core/kanban/SolidKanbanViewConfigure.js +1 -1
  30. package/dist/components/core/kanban/SolidKanbanViewConfigure.js.map +1 -1
  31. package/dist/components/core/kanban/SolidKanbanViewConfigure.tsx +1 -1
  32. package/dist/components/core/list/SolidListView.js +6 -6
  33. package/dist/components/core/list/SolidListView.js.map +1 -1
  34. package/dist/components/core/list/SolidListView.tsx +4 -4
  35. package/dist/components/core/list/SolidListViewConfigure.js +1 -1
  36. package/dist/components/core/list/SolidListViewConfigure.js.map +1 -1
  37. package/dist/components/core/list/SolidListViewConfigure.tsx +1 -1
  38. package/dist/components/core/locales/SolidLocale.d.ts.map +1 -1
  39. package/dist/components/core/locales/SolidLocale.js +1 -1
  40. package/dist/components/core/locales/SolidLocale.js.map +1 -1
  41. package/dist/components/core/locales/SolidLocale.tsx +1 -0
  42. package/dist/components/core/locales/solid-locale.css +9 -0
  43. package/dist/components/core/model/FieldMetaData.js +1 -1
  44. package/dist/components/core/model/FieldMetaData.js.map +1 -1
  45. package/dist/components/core/model/FieldMetaData.tsx +1 -1
  46. package/dist/components/core/model/FieldMetaDataForm.css +60 -0
  47. package/dist/components/core/model/FieldMetaDataForm.d.ts.map +1 -1
  48. package/dist/components/core/model/FieldMetaDataForm.js +47 -36
  49. package/dist/components/core/model/FieldMetaDataForm.js.map +1 -1
  50. package/dist/components/core/model/FieldMetaDataForm.tsx +59 -40
  51. package/dist/components/core/model/ModelMetaData.js +1 -1
  52. package/dist/components/core/model/ModelMetaData.js.map +1 -1
  53. package/dist/components/core/model/ModelMetaData.tsx +1 -1
  54. package/dist/components/core/module/CreateModule.d.ts.map +1 -1
  55. package/dist/components/core/module/CreateModule.js +34 -21
  56. package/dist/components/core/module/CreateModule.js.map +1 -1
  57. package/dist/components/core/module/CreateModule.tsx +59 -21
  58. package/dist/components/core/module/ModuleMetadataExplorer.css +72 -2
  59. package/dist/components/core/tree/SolidTreeView.js +2 -2
  60. package/dist/components/core/tree/SolidTreeView.js.map +1 -1
  61. package/dist/components/core/tree/SolidTreeView.tsx +2 -2
  62. package/dist/components/core/users/CreateUserRole.js +1 -1
  63. package/dist/components/core/users/CreateUserRole.js.map +1 -1
  64. package/dist/components/core/users/CreateUserRole.tsx +1 -1
  65. package/dist/components/layout/AdminTopHeader.d.ts.map +1 -1
  66. package/dist/components/layout/AdminTopHeader.js +2 -1
  67. package/dist/components/layout/AdminTopHeader.js.map +1 -1
  68. package/dist/components/layout/AdminTopHeader.tsx +2 -1
  69. package/dist/components/layout/AppSidebar.d.ts.map +1 -1
  70. package/dist/components/layout/AppSidebar.js +16 -1
  71. package/dist/components/layout/AppSidebar.js.map +1 -1
  72. package/dist/components/layout/AppSidebar.tsx +37 -9
  73. package/dist/resources/images/solidx-logo/solidx-logo-dark.png +0 -0
  74. package/dist/resources/images/solidx-logo/solidx-logo-light.png +0 -0
  75. package/dist/resources/solid-custom.css +67 -40
  76. package/dist/resources/solid-tailwind-generated.css +1 -1
  77. package/dist/resources/themes/solid-dark-enterprise/theme.css +2 -2
  78. package/dist/resources/themes/solid-dark-modern/theme.css +2 -2
  79. package/dist/resources/themes/solid-light-enterprise/theme.css +2 -2
  80. package/dist/resources/themes/solid-light-modern/theme.css +2 -2
  81. package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.css +289 -0
  82. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"AiModelConfigTab.js","sourceRoot":"","sources":["../../../../../src/components/common/SolidSettings/LlmSettings/AiModelConfigTab.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useState } from \"react\";\nimport {\n SolidButton,\n SolidDialog,\n SolidDialogBody,\n SolidDialogFooter,\n SolidDialogHeader,\n SolidDialogTitle,\n SolidInput,\n SolidSelect,\n SolidSwitch,\n SolidTextarea,\n} from \"../../../shad-cn-ui\";\n\n\nexport interface ModelBehavior {\n streaming: boolean;\n custom: string;\n}\n\nexport interface ProviderEntry {\n type: string;\n apiKey: string;\n baseUrl?: string;\n}\n\nexport interface ModelEntry {\n providerId: string;\n model: string;\n behavior: ModelBehavior;\n}\n\nexport interface SolidAiConfig {\n models: {\n default: ModelEntry;\n fast: ModelEntry;\n };\n providers: Record<string, ProviderEntry>;\n}\n\n\nconst PROVIDER_TYPE_OPTIONS = [\n { label: \"OpenAI\", value: \"openai\" },\n { label: \"Anthropic\", value: \"anthropic\" },\n { label: \"OpenAI Compatible\", value: \"openai-compatible\" },\n { label: \"Anthropic Compatible\", value: \"anthropic-compatible\" },\n];\n\nconst COMPATIBLE_TYPES = [\"openai-compatible\", \"anthropic-compatible\"];\n\nconst BUILT_IN_TYPES = [\"openai\", \"anthropic\"];\n\nconst DEFAULT_BUILT_IN_PROVIDERS: Record<string, ProviderEntry> = {\n openai: { type: \"openai\", apiKey: \"\" },\n anthropic: { type: \"anthropic\", apiKey: \"\" },\n};\n\nexport const ensureBuiltInProviders = (providers: Record<string, ProviderEntry>): Record<string, ProviderEntry> => ({\n ...DEFAULT_BUILT_IN_PROVIDERS,\n ...providers,\n});\n\nconst cardStyle: React.CSSProperties = {\n border: \"1px solid var(--solid-border-color, #e2e8f0)\",\n borderRadius: \"0.5rem\",\n padding: \"1.25rem\",\n background: \"var(--solid-card-bg, var(--solid-surface-bg, transparent))\",\n};\n\n\ninterface ProviderModalProps {\n visible: boolean;\n onHide: () => void;\n providers: Record<string, ProviderEntry>;\n onProvidersChange: (providers: Record<string, ProviderEntry>) => void;\n editKey?: string | null; // null = add mode, string = edit mode\n}\n\nconst ProviderModal = ({ visible, onHide, providers, onProvidersChange, editKey }: ProviderModalProps) => {\n const isEdit = !!editKey;\n const existingEntry = isEdit ? providers[editKey] : null;\n\n const [providerType, setProviderType] = useState(existingEntry?.type ?? \"\");\n const [providerName, setProviderName] = useState(editKey && !BUILT_IN_TYPES.includes(editKey) ? editKey : \"\");\n const [providerBaseUrl, setProviderBaseUrl] = useState(existingEntry?.baseUrl ?? \"\");\n const [providerApiKey, setProviderApiKey] = useState(existingEntry?.apiKey ?? \"\");\n\n const isCompatible = COMPATIBLE_TYPES.includes(providerType);\n\n // Reset state when modal opens with new data\n React.useEffect(() => {\n if (visible) {\n const entry = editKey ? providers[editKey] : null;\n setProviderType(entry?.type ?? \"\");\n setProviderName(editKey && !BUILT_IN_TYPES.includes(editKey) ? editKey : \"\");\n setProviderBaseUrl(entry?.baseUrl ?? \"\");\n setProviderApiKey(entry?.apiKey ?? \"\");\n }\n }, [visible, editKey]);\n\n // In add mode, only show compatible types (built-ins are always pre-added)\n // In edit mode, show all types but lock the value\n const typeOptions = isEdit\n ? PROVIDER_TYPE_OPTIONS\n : PROVIDER_TYPE_OPTIONS.filter((opt) => COMPATIBLE_TYPES.includes(opt.value));\n\n const handleSave = () => {\n if (!providerType) return;\n\n let key: string;\n const entry: ProviderEntry = { type: providerType, apiKey: providerApiKey };\n\n if (isCompatible) {\n if (!providerName.trim()) return;\n key = providerName.trim();\n entry.baseUrl = providerBaseUrl;\n } else {\n key = providerType;\n }\n\n // In add mode, don't overwrite existing\n if (!isEdit && providers[key]) return;\n\n const next = { ...providers };\n\n // If editing and key changed (shouldn't happen for built-in), remove old\n if (isEdit && editKey !== key) {\n delete next[editKey!];\n }\n\n next[key] = entry;\n onProvidersChange(next);\n onHide();\n };\n\n const handleRemove = () => {\n if (!editKey) return;\n const next = { ...providers };\n delete next[editKey];\n onProvidersChange(next);\n onHide();\n };\n\n const canSave = providerType && (isCompatible ? providerName.trim() : true);\n\n return (\n <SolidDialog open={visible} onOpenChange={(open) => !open && onHide()} style={{ width: \"500px\" }}>\n <SolidDialogHeader>\n <SolidDialogTitle>\n {isEdit\n ? `Edit Provider — ${BUILT_IN_TYPES.includes(editKey!) ? PROVIDER_TYPE_OPTIONS.find((o) => o.value === editKey)?.label : editKey}`\n : \"Add Provider\"}\n </SolidDialogTitle>\n </SolidDialogHeader>\n <SolidDialogBody>\n <div className=\"flex flex-col gap-4\">\n {!(isEdit && BUILT_IN_TYPES.includes(editKey!)) && (\n <div>\n <label className=\"form-field-label\">Provider Type</label>\n <SolidSelect\n className=\"w-full\"\n value={providerType}\n options={typeOptions}\n native={false}\n onChange={(e) => {\n setProviderType(e.value);\n if (!isEdit) {\n setProviderName(\"\");\n setProviderBaseUrl(\"\");\n }\n }}\n placeholder=\"Select Provider Type\"\n disabled={isEdit}\n />\n </div>\n )}\n {isCompatible && (\n <>\n {!isEdit && (\n <div>\n <label className=\"form-field-label\">Name (unique identifier)</label>\n <SolidInput\n placeholder=\"e.g. openrouter, together-ai\"\n value={providerName}\n onChange={(e) => setProviderName(e.target.value)}\n className=\"w-full\"\n />\n </div>\n )}\n <div>\n <label className=\"form-field-label\">Base URL</label>\n <SolidInput\n placeholder=\"https://openrouter.ai/api/v1\"\n value={providerBaseUrl}\n onChange={(e) => setProviderBaseUrl(e.target.value)}\n className=\"w-full\"\n />\n </div>\n </>\n )}\n <div>\n <label className=\"form-field-label\">API Key</label>\n <SolidInput\n type=\"password\"\n value={providerApiKey}\n onChange={(e) => setProviderApiKey(e.target.value)}\n className=\"w-full\"\n />\n </div>\n </div>\n </SolidDialogBody>\n <SolidDialogFooter>\n <div className=\"flex justify-between w-full\">\n <div>\n {isEdit && !BUILT_IN_TYPES.includes(editKey!) && (\n <SolidButton variant=\"ghost\" onClick={handleRemove} style={{ color: \"var(--solid-danger-color, #ef4444)\" }}>\n Remove\n </SolidButton>\n )}\n </div>\n <div className=\"flex gap-2\">\n <SolidButton variant=\"outline\" onClick={onHide}>\n Cancel\n </SolidButton>\n <SolidButton onClick={handleSave} disabled={!canSave}>\n {isEdit ? \"Save\" : \"Add\"}\n </SolidButton>\n </div>\n </div>\n </SolidDialogFooter>\n </SolidDialog>\n );\n};\n\n// --- Providers Tab (List View) ---\n\ninterface ProvidersTabProps {\n providers: Record<string, ProviderEntry>;\n onProvidersChange: (providers: Record<string, ProviderEntry>) => void;\n showAddModal?: boolean;\n onAddModalClose?: () => void;\n}\n\nexport const ProvidersTab = ({ providers, onProvidersChange, showAddModal, onAddModalClose }: ProvidersTabProps) => {\n const [editKey, setEditKey] = useState<string | null>(null);\n const [modalVisible, setModalVisible] = useState(false);\n\n // Ensure built-in providers are always present\n const allProviders = ensureBuiltInProviders(providers);\n\n // Open modal when parent triggers add\n React.useEffect(() => {\n if (showAddModal) {\n setEditKey(null);\n setModalVisible(true);\n }\n }, [showAddModal]);\n\n const providerEntries = Object.entries(allProviders);\n\n const handleRowClick = (key: string) => {\n setEditKey(key);\n setModalVisible(true);\n };\n\n return (\n <>\n <div className=\"solid-simple-table\">\n <table style={{ width: \"100%\" }}>\n <thead>\n <tr>\n <th style={{ textAlign: \"left\", padding: \"0.75rem 1rem\" }}>Name</th>\n <th style={{ textAlign: \"left\", padding: \"0.75rem 1rem\" }}>Type</th>\n <th style={{ textAlign: \"left\", padding: \"0.75rem 1rem\" }}>API Key</th>\n <th style={{ textAlign: \"left\", padding: \"0.75rem 1rem\" }}>Base URL</th>\n </tr>\n </thead>\n <tbody>\n {providerEntries.length === 0 && (\n <tr>\n <td colSpan={4} style={{ textAlign: \"center\", padding: \"2rem 1rem\", opacity: 0.5 }}>\n No providers configured.\n </td>\n </tr>\n )}\n {providerEntries.map(([key, entry]) => {\n const typeLabel = PROVIDER_TYPE_OPTIONS.find((o) => o.value === entry.type)?.label ?? entry.type;\n const isBuiltIn = BUILT_IN_TYPES.includes(key);\n const displayName = isBuiltIn ? typeLabel : key;\n const maskedKey = entry.apiKey ? \"\\u2022\".repeat(Math.min(entry.apiKey.length, 8)) : \"-\";\n\n return (\n <tr\n key={key}\n onClick={() => handleRowClick(key)}\n style={{ cursor: \"pointer\" }}\n className=\"solid-table-row-hover\"\n >\n <td style={{ padding: \"0.75rem 1rem\", fontWeight: 500 }}>{displayName}</td>\n <td style={{ padding: \"0.75rem 1rem\" }}>{typeLabel}</td>\n <td style={{ padding: \"0.75rem 1rem\" }}>{maskedKey}</td>\n <td style={{ padding: \"0.75rem 1rem\" }}>{entry.baseUrl || \"-\"}</td>\n </tr>\n );\n })}\n </tbody>\n </table>\n </div>\n\n <ProviderModal\n visible={modalVisible}\n onHide={() => {\n setModalVisible(false);\n setEditKey(null);\n onAddModalClose?.();\n }}\n providers={allProviders}\n onProvidersChange={onProvidersChange}\n editKey={editKey}\n />\n </>\n );\n};\n\n// --- Model Config Tab (used for Intelligent Model & Fast Model) ---\n\ninterface ModelConfigTabProps {\n modelEntry: ModelEntry;\n providers: Record<string, ProviderEntry>;\n onModelEntryChange: (entry: ModelEntry) => void;\n}\n\nexport const ModelConfigTab = ({ modelEntry, providers, onModelEntryChange }: ModelConfigTabProps) => {\n const providerOptions = Object.entries(providers).map(([key, entry]) => {\n const typeLabel = PROVIDER_TYPE_OPTIONS.find((o) => o.value === entry.type)?.label ?? entry.type;\n const label = BUILT_IN_TYPES.includes(key) ? typeLabel : `${key} (${typeLabel})`;\n return { label, value: key };\n });\n\n return (\n <div className=\"flex flex-col gap-6\">\n <div style={{ ...cardStyle, width: \"50%\" }}>\n <p className=\"solid-settings-subheading\">Model Config</p>\n <div className=\"flex flex-col gap-4 mt-4\">\n <div>\n <label className=\"form-field-label\">Provider</label>\n <SolidSelect\n className=\"w-full\"\n value={modelEntry.providerId}\n options={providerOptions}\n native={false}\n onChange={(e) => onModelEntryChange({ ...modelEntry, providerId: e.value })}\n placeholder=\"Select Provider\"\n />\n </div>\n <div>\n <label className=\"form-field-label\">Model</label>\n <SolidInput\n placeholder=\"e.g. gpt-4o-mini\"\n value={modelEntry.model || \"\"}\n onChange={(e) => onModelEntryChange({ ...modelEntry, model: e.target.value })}\n className=\"w-full\"\n />\n </div>\n </div>\n </div>\n\n <div style={{ ...cardStyle, width: \"50%\" }}>\n <p className=\"solid-settings-subheading\">Behavior</p>\n <div className=\"flex flex-col gap-4 mt-4\">\n <div className=\"flex items-center gap-2\">\n <SolidSwitch\n checked={modelEntry.behavior.streaming}\n onChange={(val) =>\n onModelEntryChange({ ...modelEntry, behavior: { ...modelEntry.behavior, streaming: val } })\n }\n />\n <label className=\"form-field-label\" style={{ marginBottom: 0 }}>Streaming</label>\n </div>\n <div>\n <label className=\"form-field-label\">Custom Params (JSON)</label>\n <SolidTextarea\n value={modelEntry.behavior.custom}\n onChange={(e) =>\n onModelEntryChange({ ...modelEntry, behavior: { ...modelEntry.behavior, custom: e.target.value } })\n }\n placeholder='{ \"temperature\": 0.7, \"maxTokens\": 1000 }'\n rows={4}\n className=\"w-full\"\n />\n </div>\n </div>\n </div>\n </div>\n );\n};\n"]}
1
+ {"version":3,"file":"AiModelConfigTab.js","sourceRoot":"","sources":["../../../../../src/components/common/SolidSettings/LlmSettings/AiModelConfigTab.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useState } from \"react\";\nimport {\n SolidButton,\n SolidDialog,\n SolidDialogBody,\n SolidDialogFooter,\n SolidDialogHeader,\n SolidDialogTitle,\n SolidInput,\n SolidSelect,\n SolidSwitch,\n SolidTextarea,\n} from \"../../../shad-cn-ui\";\n\n\nexport interface ModelBehavior {\n streaming: boolean;\n custom: string;\n}\n\nexport interface ProviderEntry {\n type: string;\n apiKey: string;\n baseUrl?: string;\n}\n\nexport interface ModelEntry {\n providerId: string;\n model: string;\n behavior: ModelBehavior;\n}\n\nexport interface SolidAiConfig {\n models: {\n default: ModelEntry;\n fast: ModelEntry;\n };\n providers: Record<string, ProviderEntry>;\n}\n\n\nconst PROVIDER_TYPE_OPTIONS = [\n { label: \"OpenAI\", value: \"openai\" },\n { label: \"Anthropic\", value: \"anthropic\" },\n { label: \"OpenAI Compatible\", value: \"openai-compatible\" },\n { label: \"Anthropic Compatible\", value: \"anthropic-compatible\" },\n];\n\nconst COMPATIBLE_TYPES = [\"openai-compatible\", \"anthropic-compatible\"];\n\nconst BUILT_IN_TYPES = [\"openai\", \"anthropic\"];\n\nconst DEFAULT_BUILT_IN_PROVIDERS: Record<string, ProviderEntry> = {\n openai: { type: \"openai\", apiKey: \"\" },\n anthropic: { type: \"anthropic\", apiKey: \"\" },\n};\n\nexport const ensureBuiltInProviders = (providers: Record<string, ProviderEntry>): Record<string, ProviderEntry> => ({\n ...DEFAULT_BUILT_IN_PROVIDERS,\n ...providers,\n});\n\nconst cardStyle: React.CSSProperties = {\n border: \"1px solid var(--solid-border-color, #e2e8f0)\",\n borderRadius: \"0.5rem\",\n padding: \"1.25rem\",\n background: \"var(--solid-card-bg, var(--solid-surface-bg, transparent))\",\n};\n\n\ninterface ProviderModalProps {\n visible: boolean;\n onHide: () => void;\n providers: Record<string, ProviderEntry>;\n onProvidersChange: (providers: Record<string, ProviderEntry>) => void;\n editKey?: string | null; // null = add mode, string = edit mode\n}\n\nconst ProviderModal = ({ visible, onHide, providers, onProvidersChange, editKey }: ProviderModalProps) => {\n const isEdit = !!editKey;\n const existingEntry = isEdit ? providers[editKey] : null;\n\n const [providerType, setProviderType] = useState(existingEntry?.type ?? \"\");\n const [providerName, setProviderName] = useState(editKey && !BUILT_IN_TYPES.includes(editKey) ? editKey : \"\");\n const [providerBaseUrl, setProviderBaseUrl] = useState(existingEntry?.baseUrl ?? \"\");\n const [providerApiKey, setProviderApiKey] = useState(existingEntry?.apiKey ?? \"\");\n\n const isCompatible = COMPATIBLE_TYPES.includes(providerType);\n\n // Reset state when modal opens with new data\n React.useEffect(() => {\n if (visible) {\n const entry = editKey ? providers[editKey] : null;\n setProviderType(entry?.type ?? \"\");\n setProviderName(editKey && !BUILT_IN_TYPES.includes(editKey) ? editKey : \"\");\n setProviderBaseUrl(entry?.baseUrl ?? \"\");\n setProviderApiKey(entry?.apiKey ?? \"\");\n }\n }, [visible, editKey]);\n\n // In add mode, only show compatible types (built-ins are always pre-added)\n // In edit mode, show all types but lock the value\n const typeOptions = isEdit\n ? PROVIDER_TYPE_OPTIONS\n : PROVIDER_TYPE_OPTIONS.filter((opt) => COMPATIBLE_TYPES.includes(opt.value));\n\n const handleSave = () => {\n if (!providerType) return;\n\n let key: string;\n const entry: ProviderEntry = { type: providerType, apiKey: providerApiKey };\n\n if (isCompatible) {\n if (!providerName.trim()) return;\n key = providerName.trim();\n entry.baseUrl = providerBaseUrl;\n } else {\n key = providerType;\n }\n\n // In add mode, don't overwrite existing\n if (!isEdit && providers[key]) return;\n\n const next = { ...providers };\n\n // If editing and key changed (shouldn't happen for built-in), remove old\n if (isEdit && editKey !== key) {\n delete next[editKey!];\n }\n\n next[key] = entry;\n onProvidersChange(next);\n onHide();\n };\n\n const handleRemove = () => {\n if (!editKey) return;\n const next = { ...providers };\n delete next[editKey];\n onProvidersChange(next);\n onHide();\n };\n\n const canSave = providerType && (isCompatible ? providerName.trim() : true);\n\n return (\n <SolidDialog open={visible} onOpenChange={(open) => !open && onHide()} style={{ width: \"500px\" }}>\n <SolidDialogHeader>\n <SolidDialogTitle>\n {isEdit\n ? `Edit Provider — ${BUILT_IN_TYPES.includes(editKey!) ? PROVIDER_TYPE_OPTIONS.find((o) => o.value === editKey)?.label : editKey}`\n : \"Add Provider\"}\n </SolidDialogTitle>\n </SolidDialogHeader>\n <SolidDialogBody>\n <div className=\"flex flex-col gap-4\">\n {!(isEdit && BUILT_IN_TYPES.includes(editKey!)) && (\n <div>\n <label className=\"form-field-label\">Provider Type</label>\n <SolidSelect\n className=\"w-full\"\n value={providerType}\n options={typeOptions}\n native={false}\n onChange={(e) => {\n setProviderType(e.value);\n if (!isEdit) {\n setProviderName(\"\");\n setProviderBaseUrl(\"\");\n }\n }}\n placeholder=\"Select Provider Type\"\n disabled={isEdit}\n />\n </div>\n )}\n {isCompatible && (\n <>\n {!isEdit && (\n <div>\n <label className=\"form-field-label\">Name (unique identifier)</label>\n <SolidInput\n placeholder=\"e.g. openrouter, together-ai\"\n value={providerName}\n onChange={(e) => setProviderName(e.target.value)}\n className=\"w-full\"\n />\n </div>\n )}\n <div>\n <label className=\"form-field-label\">Base URL</label>\n <SolidInput\n placeholder=\"https://openrouter.ai/api/v1\"\n value={providerBaseUrl}\n onChange={(e) => setProviderBaseUrl(e.target.value)}\n className=\"w-full\"\n />\n </div>\n </>\n )}\n <div>\n <label className=\"form-field-label\">API Key</label>\n <SolidInput\n type=\"password\"\n value={providerApiKey}\n onChange={(e) => setProviderApiKey(e.target.value)}\n className=\"w-full\"\n />\n </div>\n </div>\n </SolidDialogBody>\n <SolidDialogFooter>\n <div className=\"flex justify-between w-full\">\n <div>\n {isEdit && !BUILT_IN_TYPES.includes(editKey!) && (\n <SolidButton variant=\"ghost\" onClick={handleRemove} style={{ color: \"var(--solid-danger-color, #ef4444)\" }}>\n Remove\n </SolidButton>\n )}\n </div>\n <div className=\"flex gap-2\">\n <SolidButton variant=\"outline\" onClick={onHide}>\n Cancel\n </SolidButton>\n <SolidButton onClick={handleSave} disabled={!canSave}>\n {isEdit ? \"Save\" : \"Add\"}\n </SolidButton>\n </div>\n </div>\n </SolidDialogFooter>\n </SolidDialog>\n );\n};\n\n// --- Providers Tab (List View) ---\n\ninterface ProvidersTabProps {\n providers: Record<string, ProviderEntry>;\n onProvidersChange: (providers: Record<string, ProviderEntry>) => void;\n showAddModal?: boolean;\n onAddModalClose?: () => void;\n}\n\nexport const ProvidersTab = ({ providers, onProvidersChange, showAddModal, onAddModalClose }: ProvidersTabProps) => {\n const [editKey, setEditKey] = useState<string | null>(null);\n const [modalVisible, setModalVisible] = useState(false);\n\n // Ensure built-in providers are always present\n const allProviders = ensureBuiltInProviders(providers);\n\n // Open modal when parent triggers add\n React.useEffect(() => {\n if (showAddModal) {\n setEditKey(null);\n setModalVisible(true);\n }\n }, [showAddModal]);\n\n const providerEntries = Object.entries(allProviders);\n\n const handleRowClick = (key: string) => {\n setEditKey(key);\n setModalVisible(true);\n };\n\n return (\n <>\n <div className=\"solid-simple-table\">\n <table style={{ width: \"100%\" }}>\n <thead>\n <tr>\n <th style={{ textAlign: \"left\", padding: \"0.75rem 1rem\" }}>Name</th>\n <th style={{ textAlign: \"left\", padding: \"0.75rem 1rem\" }}>Type</th>\n <th style={{ textAlign: \"left\", padding: \"0.75rem 1rem\" }}>API Key</th>\n <th style={{ textAlign: \"left\", padding: \"0.75rem 1rem\" }}>Base URL</th>\n </tr>\n </thead>\n <tbody>\n {providerEntries.length === 0 && (\n <tr>\n <td colSpan={4} style={{ textAlign: \"center\", padding: \"2rem 1rem\", opacity: 0.5 }}>\n No providers configured.\n </td>\n </tr>\n )}\n {providerEntries.map(([key, entry]) => {\n const typeLabel = PROVIDER_TYPE_OPTIONS.find((o) => o.value === entry.type)?.label ?? entry.type;\n const isBuiltIn = BUILT_IN_TYPES.includes(key);\n const displayName = isBuiltIn ? typeLabel : key;\n const maskedKey = entry.apiKey ? \"\\u2022\".repeat(Math.min(entry.apiKey.length, 8)) : \"-\";\n\n return (\n <tr\n key={key}\n onClick={() => handleRowClick(key)}\n style={{ cursor: \"pointer\" }}\n className=\"solid-table-row-hover\"\n >\n <td style={{ padding: \"0.75rem 1rem\", fontWeight: 500 }}>{displayName}</td>\n <td style={{ padding: \"0.75rem 1rem\" }}>{typeLabel}</td>\n <td style={{ padding: \"0.75rem 1rem\" }}>{maskedKey}</td>\n <td style={{ padding: \"0.75rem 1rem\" }}>{entry.baseUrl || \"-\"}</td>\n </tr>\n );\n })}\n </tbody>\n </table>\n </div>\n\n <ProviderModal\n visible={modalVisible}\n onHide={() => {\n setModalVisible(false);\n setEditKey(null);\n onAddModalClose?.();\n }}\n providers={allProviders}\n onProvidersChange={onProvidersChange}\n editKey={editKey}\n />\n </>\n );\n};\n\n// --- Model Config Tab (used for Intelligent Model & Fast Model) ---\n\ninterface ModelConfigTabProps {\n modelEntry: ModelEntry;\n providers: Record<string, ProviderEntry>;\n onModelEntryChange: (entry: ModelEntry) => void;\n}\n\nexport const ModelConfigTab = ({ modelEntry, providers, onModelEntryChange }: ModelConfigTabProps) => {\n const providerOptions = Object.entries(providers).map(([key, entry]) => {\n const typeLabel = PROVIDER_TYPE_OPTIONS.find((o) => o.value === entry.type)?.label ?? entry.type;\n const label = BUILT_IN_TYPES.includes(key) ? typeLabel : `${key} (${typeLabel})`;\n return { label, value: key };\n });\n\n return (\n <div className=\"flex flex-col gap-6\">\n <div className=\"solid-ai-model-config-card\" style={{ ...cardStyle, width: \"50%\" }}>\n <p className=\"solid-settings-subheading\">Model Config</p>\n <div className=\"flex flex-col gap-4 mt-4\">\n <div>\n <label className=\"form-field-label\">Provider</label>\n <SolidSelect\n className=\"w-full\"\n value={modelEntry.providerId}\n options={providerOptions}\n native={false}\n onChange={(e) => onModelEntryChange({ ...modelEntry, providerId: e.value })}\n placeholder=\"Select Provider\"\n />\n </div>\n <div>\n <label className=\"form-field-label\">Model</label>\n <SolidInput\n placeholder=\"e.g. gpt-4o-mini\"\n value={modelEntry.model || \"\"}\n onChange={(e) => onModelEntryChange({ ...modelEntry, model: e.target.value })}\n className=\"w-full\"\n />\n </div>\n </div>\n </div>\n\n <div className=\"solid-ai-model-config-card\" style={{ ...cardStyle, width: \"50%\" }}>\n <p className=\"solid-settings-subheading\">Behavior</p>\n <div className=\"flex flex-col gap-4 mt-4\">\n <div className=\"flex items-center gap-2\">\n <SolidSwitch\n checked={modelEntry.behavior.streaming}\n onChange={(val) =>\n onModelEntryChange({ ...modelEntry, behavior: { ...modelEntry.behavior, streaming: val } })\n }\n />\n <label className=\"form-field-label\" style={{ marginBottom: 0 }}>Streaming</label>\n </div>\n <div>\n <label className=\"form-field-label\">Custom Params (JSON)</label>\n <SolidTextarea\n value={modelEntry.behavior.custom}\n onChange={(e) =>\n onModelEntryChange({ ...modelEntry, behavior: { ...modelEntry.behavior, custom: e.target.value } })\n }\n placeholder='{ \"temperature\": 0.7, \"maxTokens\": 1000 }'\n rows={4}\n className=\"w-full\"\n />\n </div>\n </div>\n </div>\n </div>\n );\n};\n"]}
@@ -339,7 +339,7 @@ export const ModelConfigTab = ({ modelEntry, providers, onModelEntryChange }: Mo
339
339
 
340
340
  return (
341
341
  <div className="flex flex-col gap-6">
342
- <div style={{ ...cardStyle, width: "50%" }}>
342
+ <div className="solid-ai-model-config-card" style={{ ...cardStyle, width: "50%" }}>
343
343
  <p className="solid-settings-subheading">Model Config</p>
344
344
  <div className="flex flex-col gap-4 mt-4">
345
345
  <div>
@@ -365,7 +365,7 @@ export const ModelConfigTab = ({ modelEntry, providers, onModelEntryChange }: Mo
365
365
  </div>
366
366
  </div>
367
367
 
368
- <div style={{ ...cardStyle, width: "50%" }}>
368
+ <div className="solid-ai-model-config-card" style={{ ...cardStyle, width: "50%" }}>
369
369
  <p className="solid-settings-subheading">Behavior</p>
370
370
  <div className="flex flex-col gap-4 mt-4">
371
371
  <div className="flex items-center gap-2">
@@ -1 +1 @@
1
- {"version":3,"file":"CardItem.d.ts","sourceRoot":"","sources":["../../../../src/components/core/card/CardItem.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAa1B,UAAU,aAAa;IACrB,IAAI,EAAE,GAAG,CAAC;IACV,qBAAqB,EAAE,GAAG,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACpC,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,iBAAiB,CAAC,EAAE,GAAG,CAAC;IACxB,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,CAAC;IACjC,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,CAAC;IAClC,eAAe,CAAC,EAAE,GAAG,CAAC;IACtB,eAAe,CAAC,EAAE,GAAG,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,uBAAuB,CAAC,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;CAClE;AAED,QAAA,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAuHrC,CAAC;AAEF,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"CardItem.d.ts","sourceRoot":"","sources":["../../../../src/components/core/card/CardItem.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAa1B,UAAU,aAAa;IACrB,IAAI,EAAE,GAAG,CAAC;IACV,qBAAqB,EAAE,GAAG,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACpC,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,iBAAiB,CAAC,EAAE,GAAG,CAAC;IACxB,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,CAAC;IACjC,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,CAAC;IAClC,eAAe,CAAC,EAAE,GAAG,CAAC;IACtB,eAAe,CAAC,EAAE,GAAG,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,uBAAuB,CAAC,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;CAClE;AAED,QAAA,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CA0HrC,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -26,7 +26,7 @@ var CardItem = function (_a) {
26
26
  return null;
27
27
  return (_jsx("div", { className: "solid-kanban-action", onClick: function (e) { return e.stopPropagation(); }, children: _jsx("button", { type: "button", className: "retrieve-button solid-row-menu-trigger", onClick: function () { return onRecover(data); }, "aria-label": "Recover record", title: "Recover", children: _jsx(RotateCcw, { size: 14, "aria-hidden": true }) }) }));
28
28
  };
29
- return (_jsx("div", { className: "solid-card-view-item", children: _jsxs("div", { className: "solid-card-view-card solid-kanban-card".concat(isArchivedRecord ? " greyed-out-row" : ""), onClick: openRecord, style: { cursor: isArchivedRecord ? "default" : "pointer" }, children: [isArchivedRecord ? renderRecoverAction() : (_jsx("div", { className: "solid-kanban-action", onClick: function (e) { return e.stopPropagation(); }, children: _jsxs(SolidDropdownMenu, { children: [_jsx(SolidDropdownMenuTrigger, { asChild: true, children: _jsx("button", { type: "button", className: "solid-header-cog-trigger solid-kanban-action-trigger", "aria-label": "Open card actions", children: _jsx(SolidIcon, { name: "si-ellipsis-v", "aria-hidden": true }) }) }), _jsxs(SolidDropdownMenuContent, { className: "solid-custom-overlay", align: "end", children: [_jsxs(SolidDropdownMenuItem, { className: "solid-header-dropdown-item", onSelect: openEdit, children: [_jsx(SolidIcon, { name: "si-pencil", className: "solid-header-action-button-icon", "aria-hidden": true }), _jsx("span", { className: "solid-header-action-button-label", children: "Edit" })] }), onDelete ? (_jsxs(SolidDropdownMenuItem, { className: "solid-header-dropdown-item solid-header-dropdown-item-danger", onSelect: function () { return onDelete(data); }, children: [_jsx(SolidIcon, { name: "si-trash", className: "solid-header-action-button-icon", "aria-hidden": true }), _jsx("span", { className: "solid-header-action-button-label", children: "Delete" })] })) : null, handleCustomButtonClick ? (_jsx(SolidCollectionRowActionMenuItems, { buttons: (_d = (_c = (_b = solidCardViewMetaData === null || solidCardViewMetaData === void 0 ? void 0 : solidCardViewMetaData.solidView) === null || _b === void 0 ? void 0 : _b.layout) === null || _c === void 0 ? void 0 : _c.attrs) === null || _d === void 0 ? void 0 : _d.rowButtons, params: params, rowData: data, solidViewMetaData: solidCardViewMetaData, handleCustomButtonClick: handleCustomButtonClick, showSeparator: true })) : null] })] }) })), DynamicCardWidget ? (_jsx("div", { style: isArchivedRecord ? { pointerEvents: "none" } : undefined, children: _jsx(DynamicCardWidget, { rowData: data, solidKanbanViewMetaData: solidCardViewMetaData, solidView: solidCardViewMetaData === null || solidCardViewMetaData === void 0 ? void 0 : solidCardViewMetaData.solidView, solidFieldsMetadata: solidCardViewMetaData === null || solidCardViewMetaData === void 0 ? void 0 : solidCardViewMetaData.solidFieldsMetadata, card: cardNode, layoutAttrs: ((_f = (_e = solidCardViewMetaData === null || solidCardViewMetaData === void 0 ? void 0 : solidCardViewMetaData.solidView) === null || _e === void 0 ? void 0 : _e.layout) === null || _f === void 0 ? void 0 : _f.attrs) || {}, groupedView: false, editButtonUrl: editButtonUrl, setLightboxUrls: isArchivedRecord ? undefined : setLightboxUrls, setOpenLightbox: isArchivedRecord ? undefined : setOpenLightbox, openRecord: openRecord, openEdit: openEdit }) })) : null] }) }));
29
+ return (_jsx("div", { className: "solid-card-view-item", children: _jsxs("div", { className: "solid-card-view-card solid-kanban-card".concat(isArchivedRecord ? " greyed-out-row" : ""), onClick: openRecord, style: { cursor: isArchivedRecord ? "default" : "pointer" }, children: [isArchivedRecord ? renderRecoverAction() : (_jsx("div", { className: "solid-kanban-action", onClick: function (e) { return e.stopPropagation(); }, children: _jsxs(SolidDropdownMenu, { children: [_jsx(SolidDropdownMenuTrigger, { asChild: true, children: _jsx("button", { type: "button", className: "solid-header-cog-trigger solid-kanban-action-trigger", "aria-label": "Open card actions", children: _jsx(SolidIcon, { name: "si-ellipsis-v", "aria-hidden": true }) }) }), _jsxs(SolidDropdownMenuContent, { className: "solid-custom-overlay", align: "end", children: [_jsxs(SolidDropdownMenuItem, { className: "solid-header-dropdown-item", onSelect: openEdit, children: [_jsx(SolidIcon, { name: "si-pencil", className: "solid-header-action-button-icon", "aria-hidden": true }), _jsx("span", { className: "solid-header-action-button-label", children: "Edit" })] }), onDelete ? (_jsxs(SolidDropdownMenuItem, { className: "solid-header-dropdown-item solid-header-dropdown-item-danger", onSelect: function () { return onDelete(data); }, children: [_jsx(SolidIcon, { name: "si-trash", className: "solid-header-action-button-icon", "aria-hidden": true }), _jsx("span", { className: "solid-header-action-button-label", children: "Delete" })] })) : null, handleCustomButtonClick ? (_jsx(SolidCollectionRowActionMenuItems, { buttons: (_d = (_c = (_b = solidCardViewMetaData === null || solidCardViewMetaData === void 0 ? void 0 : solidCardViewMetaData.solidView) === null || _b === void 0 ? void 0 : _b.layout) === null || _c === void 0 ? void 0 : _c.attrs) === null || _d === void 0 ? void 0 : _d.rowButtons, params: params, rowData: data, solidViewMetaData: solidCardViewMetaData, handleCustomButtonClick: handleCustomButtonClick, showSeparator: true })) : null] })] }) })), DynamicCardWidget ? (_jsx("div", { className: isArchivedRecord ? "solid-archived-card-content" : undefined, style: isArchivedRecord ? { pointerEvents: "none" } : undefined, children: _jsx(DynamicCardWidget, { rowData: data, solidKanbanViewMetaData: solidCardViewMetaData, solidView: solidCardViewMetaData === null || solidCardViewMetaData === void 0 ? void 0 : solidCardViewMetaData.solidView, solidFieldsMetadata: solidCardViewMetaData === null || solidCardViewMetaData === void 0 ? void 0 : solidCardViewMetaData.solidFieldsMetadata, card: cardNode, layoutAttrs: ((_f = (_e = solidCardViewMetaData === null || solidCardViewMetaData === void 0 ? void 0 : solidCardViewMetaData.solidView) === null || _e === void 0 ? void 0 : _e.layout) === null || _f === void 0 ? void 0 : _f.attrs) || {}, groupedView: false, editButtonUrl: editButtonUrl, setLightboxUrls: isArchivedRecord ? undefined : setLightboxUrls, setOpenLightbox: isArchivedRecord ? undefined : setOpenLightbox, openRecord: openRecord, openEdit: openEdit }) })) : null] }) }));
30
30
  };
31
31
  export default CardItem;
32
32
  //# sourceMappingURL=CardItem.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CardItem.js","sourceRoot":"","sources":["../../../../src/components/core/card/CardItem.tsx"],"names":[],"mappings":"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","sourcesContent":["// @ts-nocheck\nimport React from \"react\";\nimport { useRouter } from \"../../../hooks/useRouter\";\nimport { storeCurrentModelViewContext } from \"../../../helpers/modelViewPersistence\";\nimport { RotateCcw } from \"lucide-react\";\nimport {\n SolidDropdownMenu,\n SolidDropdownMenuContent,\n SolidDropdownMenuItem,\n SolidDropdownMenuTrigger,\n SolidIcon,\n} from \"../../shad-cn-ui\";\nimport { SolidCollectionRowActionMenuItems } from \"../common/SolidCollectionRowActionMenuItems\";\n\ninterface CardItemProps {\n data: any;\n solidCardViewMetaData: any;\n editButtonUrl?: string;\n recordClickAction?: \"view\" | \"edit\";\n cardNode?: any;\n DynamicCardWidget?: any;\n onDelete?: (record: any) => void;\n onRecover?: (record: any) => void;\n setLightboxUrls?: any;\n setOpenLightbox?: any;\n showArchived?: boolean;\n params?: any;\n handleCustomButtonClick?: (buttonAttrs: any, event: any) => void;\n}\n\nconst CardItem: React.FC<CardItemProps> = ({\n data,\n solidCardViewMetaData,\n editButtonUrl,\n recordClickAction = \"edit\",\n cardNode,\n DynamicCardWidget,\n onDelete,\n onRecover,\n setLightboxUrls,\n setOpenLightbox,\n showArchived,\n params,\n handleCustomButtonClick,\n}) => {\n const router = useRouter();\n const isArchivedRecord = data?.deletedAt !== null && data?.deletedAt !== undefined;\n\n const openRecord = () => {\n if (isArchivedRecord) return;\n storeCurrentModelViewContext();\n router.push(`${editButtonUrl}/${data?.id}?viewMode=${recordClickAction}`);\n };\n\n const openEdit = () => {\n if (isArchivedRecord) return;\n storeCurrentModelViewContext();\n router.push(`${editButtonUrl}/${data?.id}?viewMode=edit`);\n };\n\n const renderRecoverAction = () => {\n if (!showArchived || !isArchivedRecord || !onRecover) return null;\n\n return (\n <div className=\"solid-kanban-action\" onClick={(e) => e.stopPropagation()}>\n <button\n type=\"button\"\n className=\"retrieve-button solid-row-menu-trigger\"\n onClick={() => onRecover(data)}\n aria-label=\"Recover record\"\n title=\"Recover\"\n >\n <RotateCcw size={14} aria-hidden />\n </button>\n </div>\n );\n };\n\n return (\n <div className=\"solid-card-view-item\">\n <div\n className={`solid-card-view-card solid-kanban-card${isArchivedRecord ? \" greyed-out-row\" : \"\"}`}\n onClick={openRecord}\n style={{ cursor: isArchivedRecord ? \"default\" : \"pointer\" }}\n >\n {isArchivedRecord ? renderRecoverAction() : (\n <div className=\"solid-kanban-action\" onClick={(e) => e.stopPropagation()}>\n <SolidDropdownMenu>\n <SolidDropdownMenuTrigger asChild>\n <button\n type=\"button\"\n className=\"solid-header-cog-trigger solid-kanban-action-trigger\"\n aria-label=\"Open card actions\"\n >\n <SolidIcon name=\"si-ellipsis-v\" aria-hidden />\n </button>\n </SolidDropdownMenuTrigger>\n <SolidDropdownMenuContent className=\"solid-custom-overlay\" align=\"end\">\n <SolidDropdownMenuItem\n className=\"solid-header-dropdown-item\"\n onSelect={openEdit}\n >\n <SolidIcon name=\"si-pencil\" className=\"solid-header-action-button-icon\" aria-hidden />\n <span className=\"solid-header-action-button-label\">Edit</span>\n </SolidDropdownMenuItem>\n {onDelete ? (\n <SolidDropdownMenuItem\n className=\"solid-header-dropdown-item solid-header-dropdown-item-danger\"\n onSelect={() => onDelete(data)}\n >\n <SolidIcon name=\"si-trash\" className=\"solid-header-action-button-icon\" aria-hidden />\n <span className=\"solid-header-action-button-label\">Delete</span>\n </SolidDropdownMenuItem>\n ) : null}\n {handleCustomButtonClick ? (\n <SolidCollectionRowActionMenuItems\n buttons={solidCardViewMetaData?.solidView?.layout?.attrs?.rowButtons}\n params={params}\n rowData={data}\n solidViewMetaData={solidCardViewMetaData}\n handleCustomButtonClick={handleCustomButtonClick}\n showSeparator={true}\n />\n ) : null}\n </SolidDropdownMenuContent>\n </SolidDropdownMenu>\n </div>\n )}\n {DynamicCardWidget ? (\n <div style={isArchivedRecord ? { pointerEvents: \"none\" } : undefined}>\n <DynamicCardWidget\n rowData={data}\n solidKanbanViewMetaData={solidCardViewMetaData}\n solidView={solidCardViewMetaData?.solidView}\n solidFieldsMetadata={solidCardViewMetaData?.solidFieldsMetadata}\n card={cardNode}\n layoutAttrs={solidCardViewMetaData?.solidView?.layout?.attrs || {}}\n groupedView={false}\n editButtonUrl={editButtonUrl}\n setLightboxUrls={isArchivedRecord ? undefined : setLightboxUrls}\n setOpenLightbox={isArchivedRecord ? undefined : setOpenLightbox}\n openRecord={openRecord}\n openEdit={openEdit}\n />\n </div>\n ) : null}\n </div>\n </div>\n );\n};\n\nexport default CardItem;\n"]}
1
+ {"version":3,"file":"CardItem.js","sourceRoot":"","sources":["../../../../src/components/core/card/CardItem.tsx"],"names":[],"mappings":"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","sourcesContent":["// @ts-nocheck\nimport React from \"react\";\nimport { useRouter } from \"../../../hooks/useRouter\";\nimport { storeCurrentModelViewContext } from \"../../../helpers/modelViewPersistence\";\nimport { RotateCcw } from \"lucide-react\";\nimport {\n SolidDropdownMenu,\n SolidDropdownMenuContent,\n SolidDropdownMenuItem,\n SolidDropdownMenuTrigger,\n SolidIcon,\n} from \"../../shad-cn-ui\";\nimport { SolidCollectionRowActionMenuItems } from \"../common/SolidCollectionRowActionMenuItems\";\n\ninterface CardItemProps {\n data: any;\n solidCardViewMetaData: any;\n editButtonUrl?: string;\n recordClickAction?: \"view\" | \"edit\";\n cardNode?: any;\n DynamicCardWidget?: any;\n onDelete?: (record: any) => void;\n onRecover?: (record: any) => void;\n setLightboxUrls?: any;\n setOpenLightbox?: any;\n showArchived?: boolean;\n params?: any;\n handleCustomButtonClick?: (buttonAttrs: any, event: any) => void;\n}\n\nconst CardItem: React.FC<CardItemProps> = ({\n data,\n solidCardViewMetaData,\n editButtonUrl,\n recordClickAction = \"edit\",\n cardNode,\n DynamicCardWidget,\n onDelete,\n onRecover,\n setLightboxUrls,\n setOpenLightbox,\n showArchived,\n params,\n handleCustomButtonClick,\n}) => {\n const router = useRouter();\n const isArchivedRecord = data?.deletedAt !== null && data?.deletedAt !== undefined;\n\n const openRecord = () => {\n if (isArchivedRecord) return;\n storeCurrentModelViewContext();\n router.push(`${editButtonUrl}/${data?.id}?viewMode=${recordClickAction}`);\n };\n\n const openEdit = () => {\n if (isArchivedRecord) return;\n storeCurrentModelViewContext();\n router.push(`${editButtonUrl}/${data?.id}?viewMode=edit`);\n };\n\n const renderRecoverAction = () => {\n if (!showArchived || !isArchivedRecord || !onRecover) return null;\n\n return (\n <div className=\"solid-kanban-action\" onClick={(e) => e.stopPropagation()}>\n <button\n type=\"button\"\n className=\"retrieve-button solid-row-menu-trigger\"\n onClick={() => onRecover(data)}\n aria-label=\"Recover record\"\n title=\"Recover\"\n >\n <RotateCcw size={14} aria-hidden />\n </button>\n </div>\n );\n };\n\n return (\n <div className=\"solid-card-view-item\">\n <div\n className={`solid-card-view-card solid-kanban-card${isArchivedRecord ? \" greyed-out-row\" : \"\"}`}\n onClick={openRecord}\n style={{ cursor: isArchivedRecord ? \"default\" : \"pointer\" }}\n >\n {isArchivedRecord ? renderRecoverAction() : (\n <div className=\"solid-kanban-action\" onClick={(e) => e.stopPropagation()}>\n <SolidDropdownMenu>\n <SolidDropdownMenuTrigger asChild>\n <button\n type=\"button\"\n className=\"solid-header-cog-trigger solid-kanban-action-trigger\"\n aria-label=\"Open card actions\"\n >\n <SolidIcon name=\"si-ellipsis-v\" aria-hidden />\n </button>\n </SolidDropdownMenuTrigger>\n <SolidDropdownMenuContent className=\"solid-custom-overlay\" align=\"end\">\n <SolidDropdownMenuItem\n className=\"solid-header-dropdown-item\"\n onSelect={openEdit}\n >\n <SolidIcon name=\"si-pencil\" className=\"solid-header-action-button-icon\" aria-hidden />\n <span className=\"solid-header-action-button-label\">Edit</span>\n </SolidDropdownMenuItem>\n {onDelete ? (\n <SolidDropdownMenuItem\n className=\"solid-header-dropdown-item solid-header-dropdown-item-danger\"\n onSelect={() => onDelete(data)}\n >\n <SolidIcon name=\"si-trash\" className=\"solid-header-action-button-icon\" aria-hidden />\n <span className=\"solid-header-action-button-label\">Delete</span>\n </SolidDropdownMenuItem>\n ) : null}\n {handleCustomButtonClick ? (\n <SolidCollectionRowActionMenuItems\n buttons={solidCardViewMetaData?.solidView?.layout?.attrs?.rowButtons}\n params={params}\n rowData={data}\n solidViewMetaData={solidCardViewMetaData}\n handleCustomButtonClick={handleCustomButtonClick}\n showSeparator={true}\n />\n ) : null}\n </SolidDropdownMenuContent>\n </SolidDropdownMenu>\n </div>\n )}\n {DynamicCardWidget ? (\n <div\n className={isArchivedRecord ? \"solid-archived-card-content\" : undefined}\n style={isArchivedRecord ? { pointerEvents: \"none\" } : undefined}\n >\n <DynamicCardWidget\n rowData={data}\n solidKanbanViewMetaData={solidCardViewMetaData}\n solidView={solidCardViewMetaData?.solidView}\n solidFieldsMetadata={solidCardViewMetaData?.solidFieldsMetadata}\n card={cardNode}\n layoutAttrs={solidCardViewMetaData?.solidView?.layout?.attrs || {}}\n groupedView={false}\n editButtonUrl={editButtonUrl}\n setLightboxUrls={isArchivedRecord ? undefined : setLightboxUrls}\n setOpenLightbox={isArchivedRecord ? undefined : setOpenLightbox}\n openRecord={openRecord}\n openEdit={openEdit}\n />\n </div>\n ) : null}\n </div>\n </div>\n );\n};\n\nexport default CardItem;\n"]}
@@ -127,7 +127,10 @@ const CardItem: React.FC<CardItemProps> = ({
127
127
  </div>
128
128
  )}
129
129
  {DynamicCardWidget ? (
130
- <div style={isArchivedRecord ? { pointerEvents: "none" } : undefined}>
130
+ <div
131
+ className={isArchivedRecord ? "solid-archived-card-content" : undefined}
132
+ style={isArchivedRecord ? { pointerEvents: "none" } : undefined}
133
+ >
131
134
  <DynamicCardWidget
132
135
  rowData={data}
133
136
  solidKanbanViewMetaData={solidCardViewMetaData}
@@ -571,7 +571,7 @@ export var SolidCardView = forwardRef(function (params, ref) {
571
571
  setShowGlobalSearchElement(hasAnyActiveFilters || hasStoredFilterState);
572
572
  }
573
573
  }, [hasAnyActiveFilters, hasStoredFilterState, params.embeded]);
574
- return (_jsxs("div", { className: "page-parent-wrapper solid-list-page-wrapper flex h-full min-h-0 overflow-hidden", children: [_jsx("div", { className: "solid-list-content h-full flex way to flex-grow-1", children: _jsxs("div", { className: "solid-list-surface solid-card-surface flex flex-col flex-1 min-h-0", children: [_jsx("div", { className: "page-header solid-list-toolbar solid-card-toolbar flex-col lg:flex-row", children: _jsxs("div", { className: "flex w-full flex-col-reverse lg:flex-row lg:items-center items-end", children: [_jsx("div", { className: "flex gap-4 items-center w-full solid-list-toolbar-left lg:min-w-0 lg:flex-1", children: _jsx("div", { className: "".concat(showGlobalSearchElement ? "flex" : "max-lg:hidden lg:flex", " w-full mt-3 lg:mt-0 lg:min-w-0"), children: _jsx(SolidGlobalSearchElement, { viewType: "card", showSaveFilterPopup: showSaveFilterPopup, setShowSaveFilterPopup: setShowSaveFilterPopup, ref: solidGlobalSearchElementRef, viewData: solidCardViewMetaDataResponse, handleApplyCustomFilter: handleApplyCustomFilter, filterPredicates: filterPredicates }) }) }), _jsxs("div", { className: "flex items-center solid-header-buttons-wrapper solid-list-toolbar-actions lg:ml-auto", children: [_jsx(SolidHeaderRequestStatus, { label: headerRequestStatusLabel }), _jsx("div", { className: "solid-list-search-toggle", children: _jsx(SolidButton, { type: "button", variant: "outline", size: "sm", className: "solid-icon-button", onClick: function () { return setShowGlobalSearchElement(!showGlobalSearchElement); }, "aria-label": "Toggle search", leftIcon: _jsx(SolidIcon, { name: "si-search", "aria-hidden": true }) }) }), _jsx("div", { className: "solid-header-buttons-wrapper hidden items-center lg:flex", children: visibleHeaderButtons
574
+ return (_jsxs("div", { className: "page-parent-wrapper solid-list-page-wrapper flex h-full min-h-0 overflow-hidden", children: [_jsx("div", { className: "solid-list-content h-full flex way to flex-grow-1", children: _jsxs("div", { className: "solid-list-surface solid-card-surface flex flex-col flex-1 min-h-0", children: [_jsx("div", { className: "page-header solid-list-toolbar solid-card-toolbar flex-col lg:flex-row", children: _jsxs("div", { className: "flex w-full flex-col-reverse lg:flex-row lg:items-center items-end", children: [_jsx("div", { className: "flex gap-4 items-center w-full solid-list-toolbar-left lg:min-w-0 lg:flex-1", children: _jsx("div", { className: "".concat(showGlobalSearchElement ? "flex" : "max-lg:hidden lg:flex", " w-full mt-3 lg:mt-0 lg:min-w-0"), children: _jsx(SolidGlobalSearchElement, { viewType: "card", showSaveFilterPopup: showSaveFilterPopup, setShowSaveFilterPopup: setShowSaveFilterPopup, ref: solidGlobalSearchElementRef, viewData: solidCardViewMetaDataResponse, handleApplyCustomFilter: handleApplyCustomFilter, filterPredicates: filterPredicates }) }) }), _jsxs("div", { className: "flex items-center solid-header-buttons-wrapper solid-list-toolbar-actions lg:ml-auto", children: [_jsx(SolidHeaderRequestStatus, { label: headerRequestStatusLabel }), _jsx("div", { className: "solid-list-search-toggle", children: _jsx(SolidButton, { type: "button", variant: "outline", size: "sm", className: "solid-icon-button", onClick: function () { return setShowGlobalSearchElement(!showGlobalSearchElement); }, "aria-label": "Toggle search", leftIcon: _jsx(SolidIcon, { name: "si-search", "aria-hidden": true }) }) }), _jsx("div", { className: "solid-header-buttons-wrapper max-lg:hidden items-center lg:flex", children: visibleHeaderButtons
575
575
  .filter(function (button) { var _a; return ((_a = button === null || button === void 0 ? void 0 : button.attrs) === null || _a === void 0 ? void 0 : _a.actionInContextMenu) !== true; })
576
576
  .map(function (button, index) {
577
577
  var _a, _b;
@@ -1 +1 @@
1
- {"version":3,"file":"SolidCardView.js","sourceRoot":"","sources":["../../../../src/components/core/card/SolidCardView.tsx"],"names":[],"mappings":"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","sourcesContent":["import { getCollectionViewPermissionNames, permissionExpression } from \"../../../helpers/permissions\";\nimport { createSolidEntityApi } from \"../../../redux/api/solidEntityApi\";\nimport { useGetSolidViewLayoutQuery } from \"../../../redux/api/solidViewApi\";\nimport { useLazyCheckIfPermissionExistsQuery } from \"../../../redux/api/userApi\";\nimport qs from \"qs\";\nimport { forwardRef, useEffect, useImperativeHandle, useRef, useState } from \"react\";\nimport { useSession } from \"../../../hooks/useSession\";\nimport { resolveActiveUserId, resolveSavedFilterVariables } from \"../../../helpers/resolveActiveUserId\";\nimport { SolidLightbox } from \"../../shad-cn-ui/SolidLightbox\";\nimport type { SolidLightboxSlide } from \"../../shad-cn-ui/SolidLightbox\";\nimport { getMediaTypeFromUrl } from \"../../../helpers/mediaType\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { showNavbar, toggleNavbar } from \"../../../redux/features/navbarSlice\";\nimport { usePathname } from \"../../../hooks/usePathname\";\nimport { useSearchParams } from \"../../../hooks/useSearchParams\";\nimport { SolidHeaderRequestStatus } from \"../../common/SolidHeaderRequestStatus\";\nimport { useGetSolidSettingsQuery } from \"../../../redux/api/solidSettingsApi\";\nimport { getSettingsMap, resolveRecordClickAction } from \"../../../helpers/settingsPayload\";\nimport { SolidCreateButton } from \"../common/SolidCreateButton\";\nimport { SolidGlobalSearchElement } from \"../common/SolidGlobalSearchElement\";\nimport { SolidEmptyListViewPlaceholder } from \"../list/SolidEmptyListViewPlaceholder\";\nimport { getFilterObjectFromLocalStorage,hasMeaningfulPersistedFilter,hasStoredFilterPredicates, setFilterObjectToLocalStorage} from \"../common/globalSearchPersistence\";\nimport { normalizeSolidListTreeKanbanActionPath } from \"../../../helpers/routePaths\";\nimport { SolidCardViewConfigure } from \"./SolidCardViewConfigure\";\nimport { CardGrid } from \"./CardGrid\";\nimport { CardUserViewLayout } from \"./CardUserViewLayout\";\nimport {\n SolidButton,\n SolidConfirmDialog,\n SolidDialog,\n SolidDialogBody,\n SolidDialogClose,\n SolidDialogHeader,\n SolidDialogSeparator,\n SolidDialogTitle,\n SolidIcon,\n SolidSelect,\n} from \"../../shad-cn-ui\";\nimport { showToast } from \"../../../redux/features/toastSlice\";\nimport { isButtonVisibleInCurrentEnv } from \"../../../helpers/buttonEnvironment\";\nimport { useHandleListCustomButtonClick } from \"../../common/useHandleListCustomButtonClick\";\nimport { SolidListViewHeaderButton } from \"../list/SolidListViewHeaderButton\";\n\ntype SolidCardViewParams = {\n moduleName: string;\n modelName: string;\n embeded: boolean;\n customFilter?: any;\n};\n\ntype SolidCardFilterInput = {\n custom_filter_predicate?: any;\n search_predicate?: any;\n saved_filter_predicate?: any;\n predefined_search_predicate?: any;\n};\n\nexport type SolidCardViewHandle = {\n refresh: () => void;\n clearFilters: () => void;\n applyFilter: (filter: SolidCardFilterInput) => void;\n getSavedFilters: () => any[];\n applySavedFilter: (name: string, variables?: Record<string, any>) => boolean;\n setPagination: (nextFirst: number, nextRows: number) => void;\n setShowArchived: (value: boolean) => void;\n getState: () => {\n first: number;\n rows: number;\n showArchived: boolean;\n filters: any;\n filterPredicates: any;\n cards: any[];\n totalRecords: number;\n loading: boolean;\n };\n};\n\nconst DEFAULT_RECORD_SORT = [\"id:desc\"];\n\nconst deriveCardViewConfig = (solidCardViewMetaData: any) => {\n const solidView = solidCardViewMetaData?.data?.solidView;\n const solidFieldsMetadata = solidCardViewMetaData?.data?.solidFieldsMetadata || {};\n const layoutAttrs = solidView?.layout?.attrs || {};\n const toPopulate: string[] = [];\n const toPopulateMedia: string[] = [];\n\n const findCardNode = (nodes: any[] = []): any => {\n for (const node of nodes) {\n if (!node) continue;\n if (node.type === \"card\") return node;\n if (Array.isArray(node.children) && node.children.length > 0) {\n const nestedCard = findCardNode(node.children);\n if (nestedCard) return nestedCard;\n }\n }\n\n return null;\n };\n\n const extractFields = (nodes: any, result: any[] = []) => {\n if (!nodes) return result;\n\n if (Array.isArray(nodes)) {\n nodes.forEach((node: any) => extractFields(node, result));\n return result;\n }\n\n if (nodes.type === \"field\") {\n result.push(nodes);\n }\n if (Array.isArray(nodes.children)) {\n nodes.children.forEach((child: any) => extractFields(child, result));\n }\n return result;\n };\n\n const cardNode = findCardNode(solidView?.layout?.children || []);\n const fieldSource = cardNode?.children?.length ? cardNode.children : solidView?.layout?.children || [];\n const layoutFields = extractFields(fieldSource);\n layoutFields.forEach((column: any) => {\n const fieldMetadata = solidFieldsMetadata[column?.attrs?.name];\n if (!fieldMetadata) return;\n\n if (fieldMetadata.type === \"relation\") {\n toPopulate.push(fieldMetadata.name);\n }\n if (fieldMetadata.type === \"mediaSingle\" || fieldMetadata.type === \"mediaMultiple\") {\n toPopulateMedia.push(fieldMetadata.name);\n }\n });\n\n return {\n rows: layoutAttrs.pageSize || 24,\n pageSizeOptions: layoutAttrs.pageSizeOptions || [12, 24, 48],\n toPopulate,\n toPopulateMedia,\n };\n};\n\nexport const SolidCardView = forwardRef<SolidCardViewHandle, SolidCardViewParams>((params, ref) => {\n const session = useSession();\n const user = session?.data?.user;\n const visibleNavbar = useSelector((state: any) => state.navbarState?.visibleNavbar);\n const dispatch = useDispatch();\n const pathname = usePathname();\n const searchParams = useSearchParams();\n const solidGlobalSearchElementRef = useRef<any>();\n const { data: solidSettingsData } = useGetSolidSettingsQuery(undefined);\n const solidSettingsMap = getSettingsMap(solidSettingsData);\n\n const [actionsAllowed, setActionsAllowed] = useState<string[]>([]);\n const [showGlobalSearchElement, setShowGlobalSearchElement] = useState(false);\n const [filterPredicates, setFilterPredicates] = useState<any>(null);\n const [viewModes, setViewModes] = useState<any[]>([]);\n const [filters, setFilters] = useState<any>({ $and: [] });\n const [cards, setCards] = useState<any[]>([]);\n const [toPopulate, setToPopulate] = useState<string[]>([]);\n const [toPopulateMedia, setToPopulateMedia] = useState<string[]>([]);\n const [rows, setRows] = useState(24);\n const [rowsPerPageOptions, setRowsPerPageOptions] = useState<any[]>([12, 24, 48]);\n const [first, setFirst] = useState(0);\n const [totalRecords, setTotalRecords] = useState(0);\n const [loading, setLoading] = useState(true);\n const [showSaveFilterPopup, setShowSaveFilterPopup] = useState(false);\n const [createButtonUrl, setCreateButtonUrl] = useState<string>();\n const [editButtonUrl, setEditButtonUrl] = useState<string>();\n const [createActionQueryParams, setCreateActionQueryParams] = useState<Record<string, string>>({});\n const [openLightbox, setOpenLightbox] = useState(false);\n const [lightboxUrls, setLightboxUrls] = useState<any[]>([]);\n const [isLayoutDialogVisible, setLayoutDialogVisible] = useState(false);\n const [queryDataLoaded, setQueryDataLoaded] = useState(false);\n const [triggerCheckIfPermissionExists] = useLazyCheckIfPermissionExistsQuery();\n const [showArchived, setShowArchived] = useState(false);\n const [selectedCardForDelete, setSelectedCardForDelete] = useState<any>(null);\n const [isDeleteDialogVisible, setDeleteDialogVisible] = useState(false);\n const handleCustomButtonClick = useHandleListCustomButtonClick();\n\n const lightboxSlides: SolidLightboxSlide[] = Array.isArray(lightboxUrls)\n ? lightboxUrls\n .map((item: any) => {\n const src = item?.src || item?.downloadUrl || \"\";\n if (!src) {\n return null;\n }\n const mediaType = getMediaTypeFromUrl(src);\n const slide: SolidLightboxSlide = { src };\n if (mediaType !== \"image\") {\n slide.type = mediaType;\n }\n return slide;\n })\n .filter((slide): slide is SolidLightboxSlide => !!slide)\n : [];\n\n const entityApi = createSolidEntityApi(params.modelName);\n const { useDeleteSolidEntityMutation, useLazyGetSolidEntitiesQuery, useLazyRecoverSolidEntityByIdQuery } = entityApi;\n const [triggerGetSolidEntities, { data: solidEntityCardViewData }] = useLazyGetSolidEntitiesQuery();\n const [deleteSolidEntity, { isLoading: isDeletingRecord }] = useDeleteSolidEntityMutation();\n const [triggerRecoverSolidEntityById, { isLoading: recoverByIdIsLoading }] = useLazyRecoverSolidEntityByIdQuery();\n\n const menuItemId = searchParams.get(\"menuItemId\");\n const menuItemName = searchParams.get(\"menuItemName\");\n const actionId = searchParams.get(\"actionId\");\n const actionName = searchParams.get(\"actionName\");\n\n const cardViewMetaDataQs = qs.stringify(\n {\n modelName: params.modelName,\n moduleName: params.moduleName,\n viewType: \"card\",\n menuItemId,\n menuItemName,\n actionId,\n actionName,\n },\n {\n encodeValuesOnly: true,\n }\n );\n\n const {data: solidCardViewMetaDataResponse,isLoading: solidCardViewMetaDataIsLoading,} = useGetSolidViewLayoutQuery(cardViewMetaDataQs);\n const visibleHeaderButtons = (solidCardViewMetaDataResponse?.data?.solidView?.layout?.attrs?.headerButtons ?? [])\n .filter((button: any) => isButtonVisibleInCurrentEnv(button?.attrs));\n\n const editBaseUrl = normalizeSolidListTreeKanbanActionPath(pathname, editButtonUrl || \"form\");\n const recordClickAction = resolveRecordClickAction(solidSettingsMap, {\n isSystemModule: solidCardViewMetaDataResponse?.data?.solidView?.module?.isSystem === true,\n });\n const rowsOptions = rowsPerPageOptions && rowsPerPageOptions.length > 0 ? rowsPerPageOptions : [12, 24, 48];\n const paginationStart = totalRecords === 0 ? 0 : first + 1;\n const paginationEnd = Math.min(first + rows, totalRecords);\n const totalPages = rows > 0 ? Math.max(1, Math.ceil(totalRecords / rows)) : 1;\n const currentPage = rows > 0 ? Math.floor(first / rows) + 1 : 1;\n const paginationReport = `${paginationStart} - ${paginationEnd} of ${totalRecords}`;\n const canGoPrev = currentPage > 1;\n const canGoNext = currentPage < totalPages;\n\n const handleRowsChange = (value: number) => {\n const nextRows = Number(value);\n setRows(nextRows);\n setFirst(0);\n };\n\n const handlePrevPage = () => {\n if (!canGoPrev) return;\n setFirst(Math.max(0, first - rows));\n };\n\n const handleNextPage = () => {\n if (!canGoNext) return;\n setFirst(Math.min((totalPages - 1) * rows, first + rows));\n };\n\n useEffect(() => {\n const fetchPermissions = async () => {\n if (!params.modelName) return;\n\n const permissionNames = getCollectionViewPermissionNames(params.modelName, {\n includeDeleteMany: false,\n includeFindOne: false,\n includeInsertMany: false,\n });\n\n const queryString = qs.stringify(\n { permissionNames },\n { encodeValuesOnly: true }\n );\n const response = await triggerCheckIfPermissionExists(queryString);\n setActionsAllowed(response.data?.data || []);\n };\n\n fetchPermissions();\n }, [params.modelName]);\n\n useEffect(() => {\n if (!solidCardViewMetaDataResponse) return;\n\n setViewModes(solidCardViewMetaDataResponse?.data?.viewModes || []);\n\n const { rows, pageSizeOptions, toPopulate, toPopulateMedia } = deriveCardViewConfig(solidCardViewMetaDataResponse);\n const persistedFilterObject = typeof window !== \"undefined\" ? getFilterObjectFromLocalStorage() : null;\n const restoredFilter = { $and: [] as any[] };\n\n if (persistedFilterObject?.custom_filter_predicate) {\n restoredFilter.$and.push(persistedFilterObject.custom_filter_predicate);\n }\n if (persistedFilterObject?.search_predicate) {\n restoredFilter.$and.push(persistedFilterObject.search_predicate);\n }\n if (persistedFilterObject?.saved_filter_predicate) {\n restoredFilter.$and.push(resolveSavedFilterVariables(\n persistedFilterObject.saved_filter_predicate,\n user?.id,\n persistedFilterObject.saved_filter_variables || {}\n ).value);\n }\n if (persistedFilterObject?.predefined_search_predicate) {\n restoredFilter.$and.push(persistedFilterObject.predefined_search_predicate);\n }\n\n setRows(Number(persistedFilterObject?.limit) || rows);\n setRowsPerPageOptions(pageSizeOptions);\n setFirst(Number(persistedFilterObject?.offset) || 0);\n setShowArchived(\n persistedFilterObject?.showArchived === true ||\n persistedFilterObject?.showArchived === \"true\" ||\n persistedFilterObject?.showSoftDeleted === \"inclusive\"\n );\n setToPopulate(toPopulate);\n setToPopulateMedia(toPopulateMedia);\n setFilters(restoredFilter.$and.length > 0 ? restoredFilter : { $and: [] });\n setQueryDataLoaded(true);\n\n const layoutAttrs = solidCardViewMetaDataResponse?.data?.solidView?.layout?.attrs;\n const createActionUrl = layoutAttrs?.createAction && layoutAttrs?.createAction?.type === \"custom\"\n ? layoutAttrs?.createAction?.customComponent\n : \"form/new\";\n const editActionUrl = layoutAttrs?.editAction && layoutAttrs?.editAction?.type === \"custom\"\n ? layoutAttrs?.editAction?.customComponent\n : \"form\";\n\n if (layoutAttrs?.createAction) {\n setCreateActionQueryParams({\n actionName: layoutAttrs.createAction.name,\n actionType: layoutAttrs.createAction.type,\n actionContext: layoutAttrs.createAction.context,\n });\n }\n\n setCreateButtonUrl(createActionUrl);\n setEditButtonUrl(editActionUrl);\n }, [solidCardViewMetaDataResponse]);\n\n const loadCards = async (nextFilters = filters) => {\n if (!queryDataLoaded || !solidCardViewMetaDataResponse) return;\n\n setLoading(true);\n\n const queryData: any = {\n offset: first,\n limit: rows,\n sort: DEFAULT_RECORD_SORT,\n populate: toPopulate,\n populateMedia: toPopulateMedia,\n filters: nextFilters,\n };\n if (showArchived) {\n queryData.showSoftDeleted = \"inclusive\";\n }\n\n try {\n const data: any = await triggerGetSolidEntities(\n qs.stringify(queryData, { encodeValuesOnly: true })\n ).unwrap();\n\n setCards(data?.records || []);\n setTotalRecords(data?.meta?.totalRecords || 0);\n } finally {\n setLoading(false);\n }\n };\n\n useEffect(() => {\n void loadCards(filters);\n }, [filters, first, queryDataLoaded, rows, showArchived, solidCardViewMetaDataResponse, toPopulate, toPopulateMedia]);\n\n useEffect(() => {\n if (!solidEntityCardViewData) return;\n\n setCards(solidEntityCardViewData?.records || []);\n setTotalRecords(solidEntityCardViewData?.meta?.totalRecords || 0);\n }, [solidEntityCardViewData]);\n\n useEffect(() => {\n if (!queryDataLoaded) return;\n\n const persistedFilterObject = typeof window !== \"undefined\" ? (getFilterObjectFromLocalStorage() || {}) : {};\n const nextPersistedFilterObject: Record<string, any> = {\n ...persistedFilterObject,\n offset: first,\n limit: rows,\n showArchived,\n };\n\n if (showArchived) {\n nextPersistedFilterObject.showSoftDeleted = \"inclusive\";\n } else {\n delete nextPersistedFilterObject.showSoftDeleted;\n }\n\n setFilterObjectToLocalStorage(nextPersistedFilterObject);\n }, [first, queryDataLoaded, rows, showArchived]);\n\n const handleApplyCustomFilter = async (filterPredicates: any) => {\n const updatedFilter = { $and: [] as any[] };\n\n if (filterPredicates.custom_filter_predicate) {\n updatedFilter.$and.push(filterPredicates.custom_filter_predicate);\n }\n if (filterPredicates.search_predicate) {\n updatedFilter.$and.push(filterPredicates.search_predicate);\n }\n if (filterPredicates.saved_filter_predicate) {\n updatedFilter.$and.push(filterPredicates.resolved_saved_filter_predicate ||\n resolveActiveUserId(filterPredicates.saved_filter_predicate, user?.id));\n }\n if (filterPredicates.predefined_search_predicate) {\n updatedFilter.$and.push(filterPredicates.predefined_search_predicate);\n }\n\n setFirst(0);\n setFilterPredicates(structuredClone(filterPredicates));\n setFilters(updatedFilter);\n setFilterObjectToLocalStorage({\n offset: 0,\n limit: rows,\n showArchived,\n ...(showArchived ? { showSoftDeleted: \"inclusive\" } : {}),\n custom_filter_predicate: filterPredicates.custom_filter_predicate || {},\n search_predicate: filterPredicates.search_predicate || {},\n saved_filter_predicate: filterPredicates.saved_filter_predicate || {},\n saved_filter_variables: filterPredicates.saved_filter_variables || {},\n saved_filter_id: filterPredicates.saved_filter_id || null,\n saved_filter_system_key: filterPredicates.saved_filter_system_key || null,\n saved_filter_name: filterPredicates.saved_filter_name || null,\n predefined_search_predicate: filterPredicates.predefined_search_predicate || {},\n predefined_search_chip: filterPredicates.predefined_search_chip || null,\n });\n };\n\n const handleFetchUpdatedRecords = async () => {\n if (hasAnyActiveFilters) {\n solidGlobalSearchElementRef.current?.clearAppliedFilters?.();\n return;\n }\n\n await loadCards(filters);\n };\n\n const cloneCards = () => {\n if (typeof structuredClone === \"function\") return structuredClone(cards);\n return JSON.parse(JSON.stringify(cards));\n };\n\n useImperativeHandle(ref, () => ({\n refresh: () => {\n void loadCards(filters);\n },\n clearFilters: () => {\n setFirst(0);\n setFilters(params.customFilter || { $and: [] });\n setFilterPredicates(null);\n solidGlobalSearchElementRef.current?.clearFilter?.();\n },\n applyFilter: (filter) => {\n void handleApplyCustomFilter(filter);\n },\n getSavedFilters: () => solidGlobalSearchElementRef.current?.getSavedFilters?.() ?? [],\n applySavedFilter: (name, variables) =>\n solidGlobalSearchElementRef.current?.applySavedFilterByName?.(name, variables) ?? false,\n setPagination: (nextFirst, nextRows) => {\n setFirst(nextFirst);\n setRows(nextRows);\n },\n setShowArchived: (value) => {\n setShowArchived(value);\n },\n getState: () => ({\n first,\n rows,\n showArchived,\n filters,\n filterPredicates,\n cards: cloneCards(),\n totalRecords,\n loading,\n }),\n }), [first, rows, showArchived, filters, filterPredicates, cards, totalRecords, loading]);\n\n const handleRecoverRecord = async (record: any) => {\n if (!record?.id) return;\n\n try {\n const response: any = await triggerRecoverSolidEntityById(record.id).unwrap();\n dispatch(showToast({\n severity: \"success\",\n summary: \"Success\",\n detail: response?.data?.message || \"Record recovered successfully.\",\n life: 3000,\n }));\n await loadCards(filters);\n } catch (error: any) {\n dispatch(showToast({\n severity: \"error\",\n summary: \"Recover Failed\",\n detail: error?.data?.message || error?.message || \"Unable to recover the selected record.\",\n life: 4000,\n }));\n }\n };\n\n const handleOpenDeleteDialog = (record: any) => {\n setSelectedCardForDelete(record);\n setDeleteDialogVisible(true);\n };\n\n const handleCloseDeleteDialog = () => {\n setDeleteDialogVisible(false);\n setSelectedCardForDelete(null);\n };\n\n const handleDeleteRecord = async () => {\n if (!selectedCardForDelete?.id) return;\n\n try {\n const response: any = await deleteSolidEntity(selectedCardForDelete.id).unwrap();\n dispatch(showToast({\n severity: \"success\",\n summary: \"Deleted\",\n detail: response?.data?.message || \"Record deleted successfully.\",\n life: 3000,\n }));\n handleCloseDeleteDialog();\n await loadCards(filters);\n } catch (error: any) {\n dispatch(showToast({\n severity: \"error\",\n summary: \"Delete Failed\",\n detail: error?.data?.message || error?.message || \"Unable to delete the selected record.\",\n life: 4000,\n }));\n }\n };\n\n const toggleBothSidebars = () => {\n if (visibleNavbar) {\n dispatch(toggleNavbar());\n } else {\n dispatch(showNavbar());\n }\n };\n\n const cardViewTitle = solidCardViewMetaDataResponse?.data?.solidView?.displayName;\n const entityDisplayName = solidCardViewMetaDataResponse?.data?.solidView?.model?.displayName || params.modelName;\n const canDeleteCards = actionsAllowed.includes(`${permissionExpression(params.modelName, \"delete\")}`) &&\n solidCardViewMetaDataResponse?.data?.solidView?.layout?.attrs?.delete !== false &&\n solidCardViewMetaDataResponse?.data?.solidView?.layout?.attrs?.showRowDeleteInContextMenu !== false;\n const isCardViewMetaDataReady = Boolean(solidCardViewMetaDataResponse?.data?.solidView);\n const showCardBodyLoadingPlaceholder = solidCardViewMetaDataIsLoading || (isCardViewMetaDataReady && (!queryDataLoaded || (loading && cards.length === 0)));\n const hasFilterPredicatesApplied = hasStoredFilterPredicates(filterPredicates);\n const hasActiveFilters = hasMeaningfulPersistedFilter(filters);\n const hasAnyActiveFilters = hasActiveFilters || hasFilterPredicatesApplied;\n const hasStoredFilterState = hasStoredFilterPredicates(getFilterObjectFromLocalStorage());\n const showEmptyState = !loading && cards.length === 0 && !hasActiveFilters;\n const showFilteredEmptyState = !loading && cards.length === 0 && hasActiveFilters;\n const filteredEmptyMessage = solidCardViewMetaDataResponse?.data?.solidView?.model?.description || \"No Entities found\";\n const headerRequestStatusLabel = isDeletingRecord\n ? \"Deleting...\"\n : recoverByIdIsLoading\n ? \"Recovering...\"\n : loading || !queryDataLoaded\n ? \"Loading...\"\n : null;\n\n useEffect(() => {\n if (params.embeded === false) {\n setShowGlobalSearchElement(hasAnyActiveFilters || hasStoredFilterState);\n }\n }, [hasAnyActiveFilters, hasStoredFilterState, params.embeded]);\n\n return (\n <div className=\"page-parent-wrapper solid-list-page-wrapper flex h-full min-h-0 overflow-hidden\">\n <div className=\"solid-list-content h-full flex way to flex-grow-1\">\n <div className=\"solid-list-surface solid-card-surface flex flex-col flex-1 min-h-0\">\n <div className=\"page-header solid-list-toolbar solid-card-toolbar flex-col lg:flex-row\">\n <div className=\"flex w-full flex-col-reverse lg:flex-row lg:items-center items-end\">\n <div className=\"flex gap-4 items-center w-full solid-list-toolbar-left lg:min-w-0 lg:flex-1\">\n {/* {params.embeded !== true && (\n <div className=\"apps-icon block md:hidden cursor-pointer\" onClick={toggleBothSidebars}>\n <SolidIcon name=\"si-th-large\" aria-hidden />\n </div>\n )} */}\n {/* <p className=\"m-0 view-title solid-text-wrapper\">{cardViewTitle}</p> */}\n {/* Base `hidden` must be avoided here: the consuming app's Tailwind CSS loads after this\n library's generated CSS, so the app's base `.hidden` would override our media-scoped\n `lg:flex`. Only media-scoped visibility classes are safe on this element. */}\n <div className={`${showGlobalSearchElement ? \"flex\" : \"max-lg:hidden lg:flex\"} w-full mt-3 lg:mt-0 lg:min-w-0`}>\n <SolidGlobalSearchElement\n viewType=\"card\"\n showSaveFilterPopup={showSaveFilterPopup}\n setShowSaveFilterPopup={setShowSaveFilterPopup}\n ref={solidGlobalSearchElementRef}\n viewData={solidCardViewMetaDataResponse}\n handleApplyCustomFilter={handleApplyCustomFilter}\n filterPredicates={filterPredicates}\n />\n </div>\n </div>\n\n <div className=\"flex items-center solid-header-buttons-wrapper solid-list-toolbar-actions lg:ml-auto\">\n <SolidHeaderRequestStatus label={headerRequestStatusLabel} />\n <div className=\"solid-list-search-toggle\">\n <SolidButton\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n className=\"solid-icon-button\"\n onClick={() => setShowGlobalSearchElement(!showGlobalSearchElement)}\n aria-label=\"Toggle search\"\n leftIcon={<SolidIcon name=\"si-search\" aria-hidden />}\n />\n </div>\n\n <div className=\"solid-header-buttons-wrapper hidden items-center lg:flex\">\n {visibleHeaderButtons\n .filter((button: any) => button?.attrs?.actionInContextMenu !== true)\n .map((button: any, index: number) => (\n <SolidListViewHeaderButton\n key={button?.attrs?.action ?? index}\n button={button}\n params={params}\n solidListViewMetaData={solidCardViewMetaDataResponse}\n handleCustomButtonClick={handleCustomButtonClick}\n selectedRecords={[]}\n filters={filters}\n />\n ))}\n </div>\n\n {actionsAllowed.includes(`${permissionExpression(params.modelName, \"create\")}`) &&\n solidCardViewMetaDataResponse?.data?.solidView?.layout?.attrs?.create !== false && (\n <SolidCreateButton\n createButtonUrl={createButtonUrl}\n createActionQueryParams={createActionQueryParams}\n responsiveIconOnly={true}\n />\n )}\n\n <SolidButton\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n className=\"solid-icon-button\"\n onClick={() => handleFetchUpdatedRecords()}\n aria-label=\"Refresh cards\"\n leftIcon={<SolidIcon name=\"si-refresh\" aria-hidden />}\n />\n\n <SolidCardViewConfigure\n solidCardViewMetaData={solidCardViewMetaDataResponse}\n modelName={params.modelName}\n actionsAllowed={actionsAllowed}\n viewModes={viewModes}\n setShowArchived={setShowArchived}\n showArchived={showArchived}\n setLayoutDialogVisible={setLayoutDialogVisible}\n setShowSaveFilterPopup={setShowSaveFilterPopup}\n filters={filters}\n hasAnyActiveFilters={hasAnyActiveFilters}\n handleRefreshView={handleFetchUpdatedRecords}\n params={params}\n headerButtons={visibleHeaderButtons}\n handleCustomButtonClick={handleCustomButtonClick}\n />\n </div>\n </div>\n </div>\n\n <div className=\"solid-card-view-content\">\n {showCardBodyLoadingPlaceholder ? (\n <div className=\"solid-view-loading-body-spacer flex-1 min-h-0\" />\n ) : (\n <div className=\"solid-card-view-body\">\n {showEmptyState ? (\n <SolidEmptyListViewPlaceholder\n createButtonUrl={createButtonUrl}\n createActionQueryParams={createActionQueryParams}\n actionsAllowed={actionsAllowed}\n params={params}\n solidListViewMetaData={solidCardViewMetaDataResponse}\n handleFetchUpdatedRecords={handleFetchUpdatedRecords}\n />\n ) : showFilteredEmptyState ? (\n <div className=\"flex min-h-[240px] items-center justify-center rounded-md border border-border/60 bg-background px-6 py-10 text-center text-muted-foreground\">\n {filteredEmptyMessage}\n </div>\n ) : (\n <CardGrid\n records={cards}\n solidCardViewMetaData={solidCardViewMetaDataResponse?.data}\n editButtonUrl={editBaseUrl}\n recordClickAction={recordClickAction}\n onDelete={canDeleteCards ? handleOpenDeleteDialog : undefined}\n onRecover={handleRecoverRecord}\n setLightboxUrls={setLightboxUrls}\n setOpenLightbox={setOpenLightbox}\n showArchived={showArchived}\n params={params}\n handleCustomButtonClick={handleCustomButtonClick}\n />\n )}\n </div>\n )}\n\n {totalRecords > 0 && (\n <div className=\"solid-card-view-pagination\">\n <div className=\"solid-card-view-pagination-bar solid-table-paginator flex items-center justify-center gap-3 text-sm rounded-md border border-border/60 px-3 py-1.5 bg-background\">\n <div className=\"solid-paginator-meta flex items-center gap-2\">\n <span className=\"solid-paginator-label\">Records</span>\n <SolidSelect\n value={rows}\n className=\"solid-paginator-select\"\n options={rowsOptions.map((option) => ({ label: String(option), value: option }))}\n native={false}\n onChange={(event) => handleRowsChange(Number(event.value))}\n />\n <span className=\"solid-paginator-report\">{paginationReport}</span>\n </div>\n <div className=\"solid-paginator-actions flex items-center gap-2\">\n <button\n type=\"button\"\n className=\"solid-paginator-btn\"\n onClick={handlePrevPage}\n disabled={!canGoPrev}\n >\n Previous\n </button>\n <button\n type=\"button\"\n className=\"solid-paginator-btn\"\n onClick={handleNextPage}\n disabled={!canGoNext}\n >\n Next\n </button>\n </div>\n </div>\n </div>\n )}\n </div>\n </div>\n </div>\n\n {openLightbox && (\n <SolidLightbox\n open={openLightbox}\n slides={lightboxSlides}\n onClose={() => setOpenLightbox(false)}\n />\n )}\n\n <SolidConfirmDialog\n open={isDeleteDialogVisible}\n onCancel={handleCloseDeleteDialog}\n onConfirm={handleDeleteRecord}\n className=\"solid-shadcn-confirm-dialog solid-delete-confirm-dialog\"\n headerClassName=\"solid-shadcn-dialog-head\"\n bodyClassName=\"solid-shadcn-dialog-body\"\n footerClassName=\"solid-shadcn-dialog-actions\"\n separatorClassName=\"solid-shadcn-dialog-sep\"\n showSeparator\n title={`Delete ${entityDisplayName}`}\n message={\n <p className=\"solid-shadcn-dialog-text\">\n {`Are you sure you want to delete this ${entityDisplayName} record?`}\n </p>\n }\n confirmLabel=\"Delete\"\n cancelLabel=\"Cancel\"\n />\n\n <SolidDialog\n open={isLayoutDialogVisible}\n onOpenChange={setLayoutDialogVisible}\n className=\"solid-kanban-layout-dialog\"\n style={{ width: \"min(800px, calc(100vw - 32px))\" }}\n >\n <SolidDialogHeader>\n <SolidDialogTitle>Change Card Layout</SolidDialogTitle>\n <SolidDialogClose />\n </SolidDialogHeader>\n <SolidDialogSeparator />\n <SolidDialogBody className=\"solid-kanban-layout-dialog-body\">\n <CardUserViewLayout solidCardViewMetaData={solidCardViewMetaDataResponse} setLayoutDialogVisible={setLayoutDialogVisible} />\n </SolidDialogBody>\n </SolidDialog>\n </div>\n );\n});\n"]}
1
+ {"version":3,"file":"SolidCardView.js","sourceRoot":"","sources":["../../../../src/components/core/card/SolidCardView.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,gCAAgC,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACtG,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,EAAE,mCAAmC,EAAE,MAAM,4BAA4B,CAAC;AACjF,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACrF,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,MAAM,sCAAsC,CAAC;AACxG,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAE/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAC/E,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AACjF,OAAO,EAAE,wBAAwB,EAAE,MAAM,qCAAqC,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5F,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,wBAAwB,EAAE,MAAM,oCAAoC,CAAC;AAC9E,OAAO,EAAE,6BAA6B,EAAE,MAAM,uCAAuC,CAAC;AACtF,OAAO,EAAE,+BAA+B,EAAC,4BAA4B,EAAC,yBAAyB,EAAE,6BAA6B,EAAC,MAAM,mCAAmC,CAAC;AACzK,OAAO,EAAE,sCAAsC,EAAE,MAAM,6BAA6B,CAAC;AACrF,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,EAChB,SAAS,EACT,WAAW,GACZ,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAC/D,OAAO,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAC;AACjF,OAAO,EAAE,8BAA8B,EAAE,MAAM,6CAA6C,CAAC;AAC7F,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAoC9E,IAAM,mBAAmB,GAAG,CAAC,SAAS,CAAC,CAAC;AAExC,IAAM,oBAAoB,GAAG,UAAC,qBAA0B;;IACtD,IAAM,SAAS,GAAG,MAAA,qBAAqB,aAArB,qBAAqB,uBAArB,qBAAqB,CAAE,IAAI,0CAAE,SAAS,CAAC;IACzD,IAAM,mBAAmB,GAAG,CAAA,MAAA,qBAAqB,aAArB,qBAAqB,uBAArB,qBAAqB,CAAE,IAAI,0CAAE,mBAAmB,KAAI,EAAE,CAAC;IACnF,IAAM,WAAW,GAAG,CAAA,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,MAAM,0CAAE,KAAK,KAAI,EAAE,CAAC;IACnD,IAAM,UAAU,GAAa,EAAE,CAAC;IAChC,IAAM,eAAe,GAAa,EAAE,CAAC;IAErC,IAAM,YAAY,GAAG,UAAC,KAAiB;QAAjB,sBAAA,EAAA,UAAiB;QACrC,KAAmB,UAAK,EAAL,eAAK,EAAL,mBAAK,EAAL,IAAK,EAAE;YAArB,IAAM,IAAI,cAAA;YACb,IAAI,CAAC,IAAI;gBAAE,SAAS;YACpB,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM;gBAAE,OAAO,IAAI,CAAC;YACtC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC5D,IAAM,UAAU,GAAG,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC/C,IAAI,UAAU;oBAAE,OAAO,UAAU,CAAC;aACnC;SACF;QAED,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEF,IAAM,aAAa,GAAG,UAAC,KAAU,EAAE,MAAkB;QAAlB,uBAAA,EAAA,WAAkB;QACnD,IAAI,CAAC,KAAK;YAAE,OAAO,MAAM,CAAC;QAE1B,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACxB,KAAK,CAAC,OAAO,CAAC,UAAC,IAAS,IAAK,OAAA,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,EAA3B,CAA2B,CAAC,CAAC;YAC1D,OAAO,MAAM,CAAC;SACf;QAED,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE;YAC1B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACpB;QACD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE;YACjC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAC,KAAU,IAAK,OAAA,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,EAA5B,CAA4B,CAAC,CAAC;SACtE;QACD,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;IAEF,IAAM,QAAQ,GAAG,YAAY,CAAC,CAAA,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,MAAM,0CAAE,QAAQ,KAAI,EAAE,CAAC,CAAC;IACjE,IAAM,WAAW,GAAG,CAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,QAAQ,0CAAE,MAAM,EAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,MAAM,0CAAE,QAAQ,KAAI,EAAE,CAAC;IACvG,IAAM,YAAY,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;IAChD,YAAY,CAAC,OAAO,CAAC,UAAC,MAAW;;QAC/B,IAAM,aAAa,GAAG,mBAAmB,CAAC,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,IAAI,CAAC,CAAC;QAC/D,IAAI,CAAC,aAAa;YAAE,OAAO;QAE3B,IAAI,aAAa,CAAC,IAAI,KAAK,UAAU,EAAE;YACrC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;SACrC;QACD,IAAI,aAAa,CAAC,IAAI,KAAK,aAAa,IAAI,aAAa,CAAC,IAAI,KAAK,eAAe,EAAE;YAClF,eAAe,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;SAC1C;IACH,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,IAAI,EAAE,WAAW,CAAC,QAAQ,IAAI,EAAE;QAChC,eAAe,EAAE,WAAW,CAAC,eAAe,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;QAC5D,UAAU,YAAA;QACV,eAAe,iBAAA;KAChB,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,IAAM,aAAa,GAAG,UAAU,CAA2C,UAAC,MAAM,EAAE,GAAG;;IAC5F,IAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,IAAM,IAAI,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,0CAAE,IAAI,CAAC;IACjC,IAAM,aAAa,GAAG,WAAW,CAAC,UAAC,KAAU,YAAK,OAAA,MAAA,KAAK,CAAC,WAAW,0CAAE,aAAa,CAAA,EAAA,CAAC,CAAC;IACpF,IAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,IAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,IAAM,YAAY,GAAG,eAAe,EAAE,CAAC;IACvC,IAAM,2BAA2B,GAAG,MAAM,EAAO,CAAC;IAC1C,IAAM,iBAAiB,GAAK,wBAAwB,CAAC,SAAS,CAAC,KAAxC,CAAyC;IACxE,IAAM,gBAAgB,GAAG,cAAc,CAAC,iBAAiB,CAAC,CAAC;IAErD,IAAA,KAAsC,QAAQ,CAAW,EAAE,CAAC,EAA3D,cAAc,QAAA,EAAE,iBAAiB,QAA0B,CAAC;IAC7D,IAAA,KAAwD,QAAQ,CAAC,KAAK,CAAC,EAAtE,uBAAuB,QAAA,EAAE,0BAA0B,QAAmB,CAAC;IACxE,IAAA,KAA0C,QAAQ,CAAM,IAAI,CAAC,EAA5D,gBAAgB,QAAA,EAAE,mBAAmB,QAAuB,CAAC;IAC9D,IAAA,KAA4B,QAAQ,CAAQ,EAAE,CAAC,EAA9C,SAAS,QAAA,EAAE,YAAY,QAAuB,CAAC;IAChD,IAAA,MAAwB,QAAQ,CAAM,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EAAlD,OAAO,SAAA,EAAE,UAAU,SAA+B,CAAC;IACpD,IAAA,MAAoB,QAAQ,CAAQ,EAAE,CAAC,EAAtC,KAAK,SAAA,EAAE,QAAQ,SAAuB,CAAC;IACxC,IAAA,MAA8B,QAAQ,CAAW,EAAE,CAAC,EAAnD,UAAU,SAAA,EAAE,aAAa,SAA0B,CAAC;IACrD,IAAA,MAAwC,QAAQ,CAAW,EAAE,CAAC,EAA7D,eAAe,SAAA,EAAE,kBAAkB,SAA0B,CAAC;IAC/D,IAAA,MAAkB,QAAQ,CAAC,EAAE,CAAC,EAA7B,IAAI,SAAA,EAAE,OAAO,SAAgB,CAAC;IAC/B,IAAA,MAA8C,QAAQ,CAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAA1E,kBAAkB,SAAA,EAAE,qBAAqB,SAAiC,CAAC;IAC5E,IAAA,MAAoB,QAAQ,CAAC,CAAC,CAAC,EAA9B,KAAK,SAAA,EAAE,QAAQ,SAAe,CAAC;IAChC,IAAA,MAAkC,QAAQ,CAAC,CAAC,CAAC,EAA5C,YAAY,SAAA,EAAE,eAAe,SAAe,CAAC;IAC9C,IAAA,MAAwB,QAAQ,CAAC,IAAI,CAAC,EAArC,OAAO,SAAA,EAAE,UAAU,SAAkB,CAAC;IACvC,IAAA,MAAgD,QAAQ,CAAC,KAAK,CAAC,EAA9D,mBAAmB,SAAA,EAAE,sBAAsB,SAAmB,CAAC;IAChE,IAAA,MAAwC,QAAQ,EAAU,EAAzD,eAAe,SAAA,EAAE,kBAAkB,SAAsB,CAAC;IAC3D,IAAA,MAAoC,QAAQ,EAAU,EAArD,aAAa,SAAA,EAAE,gBAAgB,SAAsB,CAAC;IACvD,IAAA,MAAwD,QAAQ,CAAyB,EAAE,CAAC,EAA3F,uBAAuB,SAAA,EAAE,0BAA0B,SAAwC,CAAC;IAC7F,IAAA,MAAkC,QAAQ,CAAC,KAAK,CAAC,EAAhD,YAAY,SAAA,EAAE,eAAe,SAAmB,CAAC;IAClD,IAAA,MAAkC,QAAQ,CAAQ,EAAE,CAAC,EAApD,YAAY,SAAA,EAAE,eAAe,SAAuB,CAAC;IACtD,IAAA,MAAkD,QAAQ,CAAC,KAAK,CAAC,EAAhE,qBAAqB,SAAA,EAAE,sBAAsB,SAAmB,CAAC;IAClE,IAAA,MAAwC,QAAQ,CAAC,KAAK,CAAC,EAAtD,eAAe,SAAA,EAAE,kBAAkB,SAAmB,CAAC;IACvD,IAAA,8BAA8B,GAAI,mCAAmC,EAAE,GAAzC,CAA0C;IACzE,IAAA,MAAkC,QAAQ,CAAC,KAAK,CAAC,EAAhD,YAAY,SAAA,EAAE,eAAe,SAAmB,CAAC;IAClD,IAAA,MAAoD,QAAQ,CAAM,IAAI,CAAC,EAAtE,qBAAqB,SAAA,EAAE,wBAAwB,SAAuB,CAAC;IACxE,IAAA,MAAkD,QAAQ,CAAC,KAAK,CAAC,EAAhE,qBAAqB,SAAA,EAAE,sBAAsB,SAAmB,CAAC;IACxE,IAAM,uBAAuB,GAAG,8BAA8B,EAAE,CAAC;IAEjE,IAAM,cAAc,GAAyB,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC;QACtE,CAAC,CAAC,YAAY;aACX,GAAG,CAAC,UAAC,IAAS;YACb,IAAM,GAAG,GAAG,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,GAAG,MAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,WAAW,CAAA,IAAI,EAAE,CAAC;YACjD,IAAI,CAAC,GAAG,EAAE;gBACR,OAAO,IAAI,CAAC;aACb;YACD,IAAM,SAAS,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;YAC3C,IAAM,KAAK,GAAuB,EAAE,GAAG,KAAA,EAAE,CAAC;YAC1C,IAAI,SAAS,KAAK,OAAO,EAAE;gBACzB,KAAK,CAAC,IAAI,GAAG,SAAS,CAAC;aACxB;YACD,OAAO,KAAK,CAAC;QACf,CAAC,CAAC;aACD,MAAM,CAAC,UAAC,KAAK,IAAkC,OAAA,CAAC,CAAC,KAAK,EAAP,CAAO,CAAC;QAC1D,CAAC,CAAC,EAAE,CAAC;IAEP,IAAM,SAAS,GAAG,oBAAoB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACjD,IAAA,4BAA4B,GAAuE,SAAS,6BAAhF,EAAE,4BAA4B,GAAyC,SAAS,6BAAlD,EAAE,kCAAkC,GAAK,SAAS,mCAAd,CAAe;IAC/G,IAAA,MAA+D,4BAA4B,EAAE,EAA5F,uBAAuB,SAAA,EAAU,uBAAuB,cAAoC,CAAC;IAC9F,IAAA,MAAuD,4BAA4B,EAAE,EAApF,iBAAiB,SAAA,EAAe,gBAAgB,mBAAoC,CAAC;IACtF,IAAA,MAAuE,kCAAkC,EAAE,EAA1G,6BAA6B,SAAA,EAAe,oBAAoB,mBAA0C,CAAC;IAElH,IAAM,UAAU,GAAG,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAClD,IAAM,YAAY,GAAG,YAAY,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IACtD,IAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC9C,IAAM,UAAU,GAAG,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAElD,IAAM,kBAAkB,GAAG,EAAE,CAAC,SAAS,CACrC;QACE,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,QAAQ,EAAE,MAAM;QAChB,UAAU,YAAA;QACV,YAAY,cAAA;QACZ,QAAQ,UAAA;QACR,UAAU,YAAA;KACX,EACD;QACE,gBAAgB,EAAE,IAAI;KACvB,CACF,CAAC;IAEI,IAAA,MAAmF,0BAA0B,CAAC,kBAAkB,CAAC,EAA1H,6BAA6B,WAAA,EAAY,8BAA8B,gBAAmD,CAAC;IACxI,IAAM,oBAAoB,GAAG,CAAC,MAAA,MAAA,MAAA,MAAA,MAAA,6BAA6B,aAA7B,6BAA6B,uBAA7B,6BAA6B,CAAE,IAAI,0CAAE,SAAS,0CAAE,MAAM,0CAAE,KAAK,0CAAE,aAAa,mCAAI,EAAE,CAAC;SAC9G,MAAM,CAAC,UAAC,MAAW,IAAK,OAAA,2BAA2B,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,CAAC,EAA1C,CAA0C,CAAC,CAAC;IAEvE,IAAM,WAAW,GAAG,sCAAsC,CAAC,QAAQ,EAAE,aAAa,IAAI,MAAM,CAAC,CAAC;IAC9F,IAAM,iBAAiB,GAAG,wBAAwB,CAAC,gBAAgB,EAAE;QACnE,cAAc,EAAE,CAAA,MAAA,MAAA,MAAA,6BAA6B,aAA7B,6BAA6B,uBAA7B,6BAA6B,CAAE,IAAI,0CAAE,SAAS,0CAAE,MAAM,0CAAE,QAAQ,MAAK,IAAI;KAC1F,CAAC,CAAC;IACH,IAAM,WAAW,GAAG,kBAAkB,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAC5G,IAAM,eAAe,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;IAC3D,IAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,EAAE,YAAY,CAAC,CAAC;IAC3D,IAAM,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9E,IAAM,WAAW,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAChE,IAAM,gBAAgB,GAAG,UAAG,eAAe,gBAAM,aAAa,iBAAO,YAAY,CAAE,CAAC;IACpF,IAAM,SAAS,GAAG,WAAW,GAAG,CAAC,CAAC;IAClC,IAAM,SAAS,GAAG,WAAW,GAAG,UAAU,CAAC;IAE3C,IAAM,gBAAgB,GAAG,UAAC,KAAa;QACrC,IAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAC/B,OAAO,CAAC,QAAQ,CAAC,CAAC;QAClB,QAAQ,CAAC,CAAC,CAAC,CAAC;IACd,CAAC,CAAC;IAEF,IAAM,cAAc,GAAG;QACrB,IAAI,CAAC,SAAS;YAAE,OAAO;QACvB,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC;IACtC,CAAC,CAAC;IAEF,IAAM,cAAc,GAAG;QACrB,IAAI,CAAC,SAAS;YAAE,OAAO;QACvB,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC;IAC5D,CAAC,CAAC;IAEF,SAAS,CAAC;QACR,IAAM,gBAAgB,GAAG;;;;;;wBACvB,IAAI,CAAC,MAAM,CAAC,SAAS;4BAAE,sBAAO;wBAExB,eAAe,GAAG,gCAAgC,CAAC,MAAM,CAAC,SAAS,EAAE;4BACzE,iBAAiB,EAAE,KAAK;4BACxB,cAAc,EAAE,KAAK;4BACrB,iBAAiB,EAAE,KAAK;yBACzB,CAAC,CAAC;wBAEG,WAAW,GAAG,EAAE,CAAC,SAAS,CAC9B,EAAE,eAAe,iBAAA,EAAE,EACnB,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAC3B,CAAC;wBACe,qBAAM,8BAA8B,CAAC,WAAW,CAAC,EAAA;;wBAA5D,QAAQ,GAAG,SAAiD;wBAClE,iBAAiB,CAAC,CAAA,MAAA,QAAQ,CAAC,IAAI,0CAAE,IAAI,KAAI,EAAE,CAAC,CAAC;;;;aAC9C,CAAC;QAEF,gBAAgB,EAAE,CAAC;IACrB,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;IAEvB,SAAS,CAAC;;QACR,IAAI,CAAC,6BAA6B;YAAE,OAAO;QAE3C,YAAY,CAAC,CAAA,MAAA,6BAA6B,aAA7B,6BAA6B,uBAA7B,6BAA6B,CAAE,IAAI,0CAAE,SAAS,KAAI,EAAE,CAAC,CAAC;QAE7D,IAAA,KAAyD,oBAAoB,CAAC,6BAA6B,CAAC,EAA1G,IAAI,UAAA,EAAE,eAAe,qBAAA,EAAE,UAAU,gBAAA,EAAE,eAAe,qBAAwD,CAAC;QACnH,IAAM,qBAAqB,GAAG,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,+BAA+B,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QACvG,IAAM,cAAc,GAAG,EAAE,IAAI,EAAE,EAAW,EAAE,CAAC;QAE7C,IAAI,qBAAqB,aAArB,qBAAqB,uBAArB,qBAAqB,CAAE,uBAAuB,EAAE;YAClD,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,uBAAuB,CAAC,CAAC;SACzE;QACD,IAAI,qBAAqB,aAArB,qBAAqB,uBAArB,qBAAqB,CAAE,gBAAgB,EAAE;YAC3C,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,gBAAgB,CAAC,CAAC;SAClE;QACD,IAAI,qBAAqB,aAArB,qBAAqB,uBAArB,qBAAqB,CAAE,sBAAsB,EAAE;YACjD,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,2BAA2B,CAClD,qBAAqB,CAAC,sBAAsB,EAC5C,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,EAAE,EACR,qBAAqB,CAAC,sBAAsB,IAAI,EAAE,CACnD,CAAC,KAAK,CAAC,CAAC;SACV;QACD,IAAI,qBAAqB,aAArB,qBAAqB,uBAArB,qBAAqB,CAAE,2BAA2B,EAAE;YACtD,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,2BAA2B,CAAC,CAAC;SAC7E;QAED,OAAO,CAAC,MAAM,CAAC,qBAAqB,aAArB,qBAAqB,uBAArB,qBAAqB,CAAE,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC;QACtD,qBAAqB,CAAC,eAAe,CAAC,CAAC;QACvC,QAAQ,CAAC,MAAM,CAAC,qBAAqB,aAArB,qBAAqB,uBAArB,qBAAqB,CAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QACrD,eAAe,CACb,CAAA,qBAAqB,aAArB,qBAAqB,uBAArB,qBAAqB,CAAE,YAAY,MAAK,IAAI;YAC5C,CAAA,qBAAqB,aAArB,qBAAqB,uBAArB,qBAAqB,CAAE,YAAY,MAAK,MAAM;YAC9C,CAAA,qBAAqB,aAArB,qBAAqB,uBAArB,qBAAqB,CAAE,eAAe,MAAK,WAAW,CACvD,CAAC;QACF,aAAa,CAAC,UAAU,CAAC,CAAC;QAC1B,kBAAkB,CAAC,eAAe,CAAC,CAAC;QACpC,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;QAC3E,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAEzB,IAAM,WAAW,GAAG,MAAA,MAAA,MAAA,6BAA6B,aAA7B,6BAA6B,uBAA7B,6BAA6B,CAAE,IAAI,0CAAE,SAAS,0CAAE,MAAM,0CAAE,KAAK,CAAC;QAClF,IAAM,eAAe,GAAG,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,YAAY,KAAI,CAAA,MAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,YAAY,0CAAE,IAAI,MAAK,QAAQ;YAC/F,CAAC,CAAC,MAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,YAAY,0CAAE,eAAe;YAC5C,CAAC,CAAC,UAAU,CAAC;QACf,IAAM,aAAa,GAAG,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,UAAU,KAAI,CAAA,MAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,UAAU,0CAAE,IAAI,MAAK,QAAQ;YACzF,CAAC,CAAC,MAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,UAAU,0CAAE,eAAe;YAC1C,CAAC,CAAC,MAAM,CAAC;QAEX,IAAI,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,YAAY,EAAE;YAC7B,0BAA0B,CAAC;gBACzB,UAAU,EAAE,WAAW,CAAC,YAAY,CAAC,IAAI;gBACzC,UAAU,EAAE,WAAW,CAAC,YAAY,CAAC,IAAI;gBACzC,aAAa,EAAE,WAAW,CAAC,YAAY,CAAC,OAAO;aAChD,CAAC,CAAC;SACJ;QAED,kBAAkB,CAAC,eAAe,CAAC,CAAC;QACpC,gBAAgB,CAAC,aAAa,CAAC,CAAC;IAClC,CAAC,EAAE,CAAC,6BAA6B,CAAC,CAAC,CAAC;IAEpC,IAAM,SAAS,GAAG,UAAO,WAAqB;QAArB,4BAAA,EAAA,qBAAqB;;;;;;;wBAC5C,IAAI,CAAC,eAAe,IAAI,CAAC,6BAA6B;4BAAE,sBAAO;wBAE/D,UAAU,CAAC,IAAI,CAAC,CAAC;wBAEX,SAAS,GAAQ;4BACrB,MAAM,EAAE,KAAK;4BACb,KAAK,EAAE,IAAI;4BACX,IAAI,EAAE,mBAAmB;4BACzB,QAAQ,EAAE,UAAU;4BACpB,aAAa,EAAE,eAAe;4BAC9B,OAAO,EAAE,WAAW;yBACrB,CAAC;wBACF,IAAI,YAAY,EAAE;4BAChB,SAAS,CAAC,eAAe,GAAG,WAAW,CAAC;yBACzC;;;;wBAGmB,qBAAM,uBAAuB,CAC7C,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC,CACpD,CAAC,MAAM,EAAE,EAAA;;wBAFJ,IAAI,GAAQ,SAER;wBAEV,QAAQ,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,KAAI,EAAE,CAAC,CAAC;wBAC9B,eAAe,CAAC,CAAA,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,0CAAE,YAAY,KAAI,CAAC,CAAC,CAAC;;;wBAE/C,UAAU,CAAC,KAAK,CAAC,CAAC;;;;;;KAErB,CAAC;IAEF,SAAS,CAAC;QACR,KAAK,SAAS,CAAC,OAAO,CAAC,CAAC;IAC1B,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,YAAY,EAAE,6BAA6B,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC,CAAC;IAEtH,SAAS,CAAC;;QACR,IAAI,CAAC,uBAAuB;YAAE,OAAO;QAErC,QAAQ,CAAC,CAAA,uBAAuB,aAAvB,uBAAuB,uBAAvB,uBAAuB,CAAE,OAAO,KAAI,EAAE,CAAC,CAAC;QACjD,eAAe,CAAC,CAAA,MAAA,uBAAuB,aAAvB,uBAAuB,uBAAvB,uBAAuB,CAAE,IAAI,0CAAE,YAAY,KAAI,CAAC,CAAC,CAAC;IACpE,CAAC,EAAE,CAAC,uBAAuB,CAAC,CAAC,CAAC;IAE9B,SAAS,CAAC;QACR,IAAI,CAAC,eAAe;YAAE,OAAO;QAE7B,IAAM,qBAAqB,GAAG,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,+BAA+B,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7G,IAAM,yBAAyB,yBAC1B,qBAAqB,KACxB,MAAM,EAAE,KAAK,EACb,KAAK,EAAE,IAAI,EACX,YAAY,cAAA,GACb,CAAC;QAEF,IAAI,YAAY,EAAE;YAChB,yBAAyB,CAAC,eAAe,GAAG,WAAW,CAAC;SACzD;aAAM;YACL,OAAO,yBAAyB,CAAC,eAAe,CAAC;SAClD;QAED,6BAA6B,CAAC,yBAAyB,CAAC,CAAC;IAC3D,CAAC,EAAE,CAAC,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC;IAEjD,IAAM,uBAAuB,GAAG,UAAO,gBAAqB;;;YACpD,aAAa,GAAG,EAAE,IAAI,EAAE,EAAW,EAAE,CAAC;YAE5C,IAAI,gBAAgB,CAAC,uBAAuB,EAAE;gBAC5C,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,uBAAuB,CAAC,CAAC;aACnE;YACD,IAAI,gBAAgB,CAAC,gBAAgB,EAAE;gBACrC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;aAC5D;YACD,IAAI,gBAAgB,CAAC,sBAAsB,EAAE;gBAC3C,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,+BAA+B;oBACtE,mBAAmB,CAAC,gBAAgB,CAAC,sBAAsB,EAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,EAAE,CAAC,CAAC,CAAC;aAC3E;YACD,IAAI,gBAAgB,CAAC,2BAA2B,EAAE;gBAChD,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,2BAA2B,CAAC,CAAC;aACvE;YAED,QAAQ,CAAC,CAAC,CAAC,CAAC;YACZ,mBAAmB,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC,CAAC;YACvD,UAAU,CAAC,aAAa,CAAC,CAAC;YAC1B,6BAA6B,qBAC3B,MAAM,EAAE,CAAC,EACT,KAAK,EAAE,IAAI,EACX,YAAY,cAAA,IACT,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KACzD,uBAAuB,EAAE,gBAAgB,CAAC,uBAAuB,IAAI,EAAE,EACvE,gBAAgB,EAAE,gBAAgB,CAAC,gBAAgB,IAAI,EAAE,EACzD,sBAAsB,EAAE,gBAAgB,CAAC,sBAAsB,IAAI,EAAE,EACrE,sBAAsB,EAAE,gBAAgB,CAAC,sBAAsB,IAAI,EAAE,EACrE,eAAe,EAAE,gBAAgB,CAAC,eAAe,IAAI,IAAI,EACzD,uBAAuB,EAAE,gBAAgB,CAAC,uBAAuB,IAAI,IAAI,EACzE,iBAAiB,EAAE,gBAAgB,CAAC,iBAAiB,IAAI,IAAI,EAC7D,2BAA2B,EAAE,gBAAgB,CAAC,2BAA2B,IAAI,EAAE,EAC/E,sBAAsB,EAAE,gBAAgB,CAAC,sBAAsB,IAAI,IAAI,IACvE,CAAC;;;SACJ,CAAC;IAEF,IAAM,yBAAyB,GAAG;;;;;oBAChC,IAAI,mBAAmB,EAAE;wBACvB,MAAA,MAAA,2BAA2B,CAAC,OAAO,0CAAE,mBAAmB,kDAAI,CAAC;wBAC7D,sBAAO;qBACR;oBAED,qBAAM,SAAS,CAAC,OAAO,CAAC,EAAA;;oBAAxB,SAAwB,CAAC;;;;SAC1B,CAAC;IAEF,IAAM,UAAU,GAAG;QACjB,IAAI,OAAO,eAAe,KAAK,UAAU;YAAE,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC;QACzE,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IAC3C,CAAC,CAAC;IAEF,mBAAmB,CAAC,GAAG,EAAE,cAAM,OAAA,CAAC;QAC9B,OAAO,EAAE;YACP,KAAK,SAAS,CAAC,OAAO,CAAC,CAAC;QAC1B,CAAC;QACD,YAAY,EAAE;;YACZ,QAAQ,CAAC,CAAC,CAAC,CAAC;YACZ,UAAU,CAAC,MAAM,CAAC,YAAY,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;YAChD,mBAAmB,CAAC,IAAI,CAAC,CAAC;YAC1B,MAAA,MAAA,2BAA2B,CAAC,OAAO,0CAAE,WAAW,kDAAI,CAAC;QACvD,CAAC;QACD,WAAW,EAAE,UAAC,MAAM;YAClB,KAAK,uBAAuB,CAAC,MAAM,CAAC,CAAC;QACvC,CAAC;QACD,eAAe,EAAE,8BAAM,OAAA,MAAA,MAAA,MAAA,2BAA2B,CAAC,OAAO,0CAAE,eAAe,kDAAI,mCAAI,EAAE,CAAA,EAAA;QACrF,gBAAgB,EAAE,UAAC,IAAI,EAAE,SAAS,oBAChC,OAAA,MAAA,MAAA,MAAA,2BAA2B,CAAC,OAAO,0CAAE,sBAAsB,mDAAG,IAAI,EAAE,SAAS,CAAC,mCAAI,KAAK,CAAA,EAAA;QACzF,aAAa,EAAE,UAAC,SAAS,EAAE,QAAQ;YACjC,QAAQ,CAAC,SAAS,CAAC,CAAC;YACpB,OAAO,CAAC,QAAQ,CAAC,CAAC;QACpB,CAAC;QACD,eAAe,EAAE,UAAC,KAAK;YACrB,eAAe,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;QACD,QAAQ,EAAE,cAAM,OAAA,CAAC;YACf,KAAK,OAAA;YACL,IAAI,MAAA;YACJ,YAAY,cAAA;YACZ,OAAO,SAAA;YACP,gBAAgB,kBAAA;YAChB,KAAK,EAAE,UAAU,EAAE;YACnB,YAAY,cAAA;YACZ,OAAO,SAAA;SACR,CAAC,EATc,CASd;KACH,CAAC,EAjC6B,CAiC7B,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,gBAAgB,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC;IAE1F,IAAM,mBAAmB,GAAG,UAAO,MAAW;;;;;;oBAC5C,IAAI,CAAC,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,EAAE,CAAA;wBAAE,sBAAO;;;;oBAGA,qBAAM,6BAA6B,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,EAAA;;oBAAvE,QAAQ,GAAQ,SAAuD;oBAC7E,QAAQ,CAAC,SAAS,CAAC;wBACjB,QAAQ,EAAE,SAAS;wBACnB,OAAO,EAAE,SAAS;wBAClB,MAAM,EAAE,CAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,OAAO,KAAI,gCAAgC;wBACnE,IAAI,EAAE,IAAI;qBACX,CAAC,CAAC,CAAC;oBACJ,qBAAM,SAAS,CAAC,OAAO,CAAC,EAAA;;oBAAxB,SAAwB,CAAC;;;;oBAEzB,QAAQ,CAAC,SAAS,CAAC;wBACjB,QAAQ,EAAE,OAAO;wBACjB,OAAO,EAAE,gBAAgB;wBACzB,MAAM,EAAE,CAAA,MAAA,OAAK,aAAL,OAAK,uBAAL,OAAK,CAAE,IAAI,0CAAE,OAAO,MAAI,OAAK,aAAL,OAAK,uBAAL,OAAK,CAAE,OAAO,CAAA,IAAI,wCAAwC;wBAC1F,IAAI,EAAE,IAAI;qBACX,CAAC,CAAC,CAAC;;;;;SAEP,CAAC;IAEF,IAAM,sBAAsB,GAAG,UAAC,MAAW;QACzC,wBAAwB,CAAC,MAAM,CAAC,CAAC;QACjC,sBAAsB,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC,CAAC;IAEF,IAAM,uBAAuB,GAAG;QAC9B,sBAAsB,CAAC,KAAK,CAAC,CAAC;QAC9B,wBAAwB,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC,CAAC;IAEF,IAAM,kBAAkB,GAAG;;;;;;oBACzB,IAAI,CAAC,CAAA,qBAAqB,aAArB,qBAAqB,uBAArB,qBAAqB,CAAE,EAAE,CAAA;wBAAE,sBAAO;;;;oBAGf,qBAAM,iBAAiB,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,EAAA;;oBAA1E,QAAQ,GAAQ,SAA0D;oBAChF,QAAQ,CAAC,SAAS,CAAC;wBACjB,QAAQ,EAAE,SAAS;wBACnB,OAAO,EAAE,SAAS;wBAClB,MAAM,EAAE,CAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,OAAO,KAAI,8BAA8B;wBACjE,IAAI,EAAE,IAAI;qBACX,CAAC,CAAC,CAAC;oBACJ,uBAAuB,EAAE,CAAC;oBAC1B,qBAAM,SAAS,CAAC,OAAO,CAAC,EAAA;;oBAAxB,SAAwB,CAAC;;;;oBAEzB,QAAQ,CAAC,SAAS,CAAC;wBACjB,QAAQ,EAAE,OAAO;wBACjB,OAAO,EAAE,eAAe;wBACxB,MAAM,EAAE,CAAA,MAAA,OAAK,aAAL,OAAK,uBAAL,OAAK,CAAE,IAAI,0CAAE,OAAO,MAAI,OAAK,aAAL,OAAK,uBAAL,OAAK,CAAE,OAAO,CAAA,IAAI,uCAAuC;wBACzF,IAAI,EAAE,IAAI;qBACX,CAAC,CAAC,CAAC;;;;;SAEP,CAAC;IAEF,IAAM,kBAAkB,GAAG;QACzB,IAAI,aAAa,EAAE;YACjB,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAC;SAC1B;aAAM;YACL,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;SACxB;IACH,CAAC,CAAC;IAEF,IAAM,aAAa,GAAG,MAAA,MAAA,6BAA6B,aAA7B,6BAA6B,uBAA7B,6BAA6B,CAAE,IAAI,0CAAE,SAAS,0CAAE,WAAW,CAAC;IAClF,IAAM,iBAAiB,GAAG,CAAA,MAAA,MAAA,MAAA,6BAA6B,aAA7B,6BAA6B,uBAA7B,6BAA6B,CAAE,IAAI,0CAAE,SAAS,0CAAE,KAAK,0CAAE,WAAW,KAAI,MAAM,CAAC,SAAS,CAAC;IACjH,IAAM,cAAc,GAAG,cAAc,CAAC,QAAQ,CAAC,UAAG,oBAAoB,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAE,CAAC;QACnG,CAAA,MAAA,MAAA,MAAA,MAAA,6BAA6B,aAA7B,6BAA6B,uBAA7B,6BAA6B,CAAE,IAAI,0CAAE,SAAS,0CAAE,MAAM,0CAAE,KAAK,0CAAE,MAAM,MAAK,KAAK;QAC/E,CAAA,MAAA,MAAA,MAAA,MAAA,6BAA6B,aAA7B,6BAA6B,uBAA7B,6BAA6B,CAAE,IAAI,0CAAE,SAAS,0CAAE,MAAM,0CAAE,KAAK,0CAAE,0BAA0B,MAAK,KAAK,CAAC;IACtG,IAAM,uBAAuB,GAAG,OAAO,CAAC,MAAA,6BAA6B,aAA7B,6BAA6B,uBAA7B,6BAA6B,CAAE,IAAI,0CAAE,SAAS,CAAC,CAAC;IACxF,IAAM,8BAA8B,GAAG,8BAA8B,IAAI,CAAC,uBAAuB,IAAI,CAAC,CAAC,eAAe,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5J,IAAM,0BAA0B,GAAG,yBAAyB,CAAC,gBAAgB,CAAC,CAAC;IAC/E,IAAM,gBAAgB,GAAG,4BAA4B,CAAC,OAAO,CAAC,CAAC;IAC/D,IAAM,mBAAmB,GAAG,gBAAgB,IAAI,0BAA0B,CAAC;IAC3E,IAAM,oBAAoB,GAAG,yBAAyB,CAAC,+BAA+B,EAAE,CAAC,CAAC;IAC1F,IAAM,cAAc,GAAG,CAAC,OAAO,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC;IAC3E,IAAM,sBAAsB,GAAG,CAAC,OAAO,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,gBAAgB,CAAC;IAClF,IAAM,oBAAoB,GAAG,CAAA,MAAA,MAAA,MAAA,6BAA6B,aAA7B,6BAA6B,uBAA7B,6BAA6B,CAAE,IAAI,0CAAE,SAAS,0CAAE,KAAK,0CAAE,WAAW,KAAI,mBAAmB,CAAC;IACvH,IAAM,wBAAwB,GAAG,gBAAgB;QAC/C,CAAC,CAAC,aAAa;QACf,CAAC,CAAC,oBAAoB;YACpB,CAAC,CAAC,eAAe;YACjB,CAAC,CAAC,OAAO,IAAI,CAAC,eAAe;gBAC3B,CAAC,CAAC,YAAY;gBACd,CAAC,CAAC,IAAI,CAAC;IAEb,SAAS,CAAC;QACR,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK,EAAE;YAC5B,0BAA0B,CAAC,mBAAmB,IAAI,oBAAoB,CAAC,CAAC;SACzE;IACH,CAAC,EAAE,CAAC,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IAEhE,OAAO,CACL,eAAK,SAAS,EAAC,iFAAiF,aAC9F,cAAK,SAAS,EAAC,oDAAoD,YACjE,eAAK,SAAS,EAAC,oEAAoE,aACjF,cAAK,SAAS,EAAC,wEAAwE,YACrF,eAAK,SAAS,EAAC,sEAAsE,aACnF,cAAK,SAAS,EAAC,6EAA6E,YAU1F,cAAK,SAAS,EAAE,UAAG,uBAAuB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,uBAAuB,oCAAiC,YAC5G,KAAC,wBAAwB,IACvB,QAAQ,EAAC,MAAM,EACf,mBAAmB,EAAE,mBAAmB,EACxC,sBAAsB,EAAE,sBAAsB,EAC9C,GAAG,EAAE,2BAA2B,EAChC,QAAQ,EAAE,6BAA6B,EACvC,uBAAuB,EAAE,uBAAuB,EAChD,gBAAgB,EAAE,gBAAgB,GAClC,GACE,GACF,EAEN,eAAK,SAAS,EAAC,sFAAsF,aACnG,KAAC,wBAAwB,IAAC,KAAK,EAAE,wBAAwB,GAAI,EAC7D,cAAK,SAAS,EAAC,0BAA0B,YACvC,KAAC,WAAW,IACV,IAAI,EAAC,QAAQ,EACb,OAAO,EAAC,SAAS,EACjB,IAAI,EAAC,IAAI,EACT,SAAS,EAAC,mBAAmB,EAC7B,OAAO,EAAE,cAAM,OAAA,0BAA0B,CAAC,CAAC,uBAAuB,CAAC,EAApD,CAAoD,gBACxD,eAAe,EAC1B,QAAQ,EAAE,KAAC,SAAS,IAAC,IAAI,EAAC,WAAW,wBAAe,GACpD,GACE,EAEN,cAAK,SAAS,EAAC,iEAAiE,YAC7E,oBAAoB;qDAClB,MAAM,CAAC,UAAC,MAAW,YAAK,OAAA,CAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,mBAAmB,MAAK,IAAI,CAAA,EAAA,CAAC;qDACpE,GAAG,CAAC,UAAC,MAAW,EAAE,KAAa;;oDAAK,OAAA,CACnC,KAAC,yBAAyB,IAExB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,qBAAqB,EAAE,6BAA6B,EACpD,uBAAuB,EAAE,uBAAuB,EAChD,eAAe,EAAE,EAAE,EACnB,OAAO,EAAE,OAAO,IANX,MAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,MAAM,mCAAI,KAAK,CAOnC,CACH,CAAA;iDAAA,CAAC,GACA,EAEL,cAAc,CAAC,QAAQ,CAAC,UAAG,oBAAoB,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAE,CAAC;gDAC7E,CAAA,MAAA,MAAA,MAAA,MAAA,6BAA6B,aAA7B,6BAA6B,uBAA7B,6BAA6B,CAAE,IAAI,0CAAE,SAAS,0CAAE,MAAM,0CAAE,KAAK,0CAAE,MAAM,MAAK,KAAK,IAAI,CACjF,KAAC,iBAAiB,IAChB,eAAe,EAAE,eAAe,EAChC,uBAAuB,EAAE,uBAAuB,EAChD,kBAAkB,EAAE,IAAI,GACxB,CACH,EAEH,KAAC,WAAW,IACV,IAAI,EAAC,QAAQ,EACb,OAAO,EAAC,SAAS,EACjB,IAAI,EAAC,IAAI,EACT,SAAS,EAAC,mBAAmB,EAC7B,OAAO,EAAE,cAAM,OAAA,yBAAyB,EAAE,EAA3B,CAA2B,gBAC/B,eAAe,EAC1B,QAAQ,EAAE,KAAC,SAAS,IAAC,IAAI,EAAC,YAAY,wBAAe,GACrD,EAEF,KAAC,sBAAsB,IACrB,qBAAqB,EAAE,6BAA6B,EACpD,SAAS,EAAE,MAAM,CAAC,SAAS,EAC3B,cAAc,EAAE,cAAc,EAC9B,SAAS,EAAE,SAAS,EACpB,eAAe,EAAE,eAAe,EAChC,YAAY,EAAE,YAAY,EAC1B,sBAAsB,EAAE,sBAAsB,EAC9C,sBAAsB,EAAE,sBAAsB,EAC9C,OAAO,EAAE,OAAO,EAChB,mBAAmB,EAAE,mBAAmB,EACxC,iBAAiB,EAAE,yBAAyB,EAC5C,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,oBAAoB,EACnC,uBAAuB,EAAE,uBAAuB,GAChD,IACE,IACF,GACF,EAEN,eAAK,SAAS,EAAC,yBAAyB,aACrC,8BAA8B,CAAC,CAAC,CAAC,CAChC,cAAK,SAAS,EAAC,+CAA+C,GAAG,CAClE,CAAC,CAAC,CAAC,CACF,cAAK,SAAS,EAAC,sBAAsB,YAClC,cAAc,CAAC,CAAC,CAAC,CAClB,KAAC,6BAA6B,IAC5B,eAAe,EAAE,eAAe,EAChC,uBAAuB,EAAE,uBAAuB,EAChD,cAAc,EAAE,cAAc,EAC9B,MAAM,EAAE,MAAM,EACd,qBAAqB,EAAE,6BAA6B,EACpD,yBAAyB,EAAE,yBAAyB,GACpD,CACD,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAC3B,cAAK,SAAS,EAAC,8IAA8I,YAC1J,oBAAoB,GACjB,CACP,CAAC,CAAC,CAAC,CACF,KAAC,QAAQ,IACP,OAAO,EAAE,KAAK,EACd,qBAAqB,EAAE,6BAA6B,aAA7B,6BAA6B,uBAA7B,6BAA6B,CAAE,IAAI,EAC1D,aAAa,EAAE,WAAW,EAC1B,iBAAiB,EAAE,iBAAiB,EACpC,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,SAAS,EAC7D,SAAS,EAAE,mBAAmB,EAC9B,eAAe,EAAE,eAAe,EAChC,eAAe,EAAE,eAAe,EAChC,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,MAAM,EACd,uBAAuB,EAAE,uBAAuB,GAChD,CACH,GACG,CACP,EAEA,YAAY,GAAG,CAAC,IAAI,CACnB,cAAK,SAAS,EAAC,4BAA4B,YACzC,eAAK,SAAS,EAAC,kKAAkK,aAC/K,eAAK,SAAS,EAAC,8CAA8C,aAC3D,eAAM,SAAS,EAAC,uBAAuB,wBAAe,EACtD,KAAC,WAAW,IACV,KAAK,EAAE,IAAI,EACX,SAAS,EAAC,wBAAwB,EAClC,OAAO,EAAE,WAAW,CAAC,GAAG,CAAC,UAAC,MAAM,IAAK,OAAA,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAA1C,CAA0C,CAAC,EAChF,MAAM,EAAE,KAAK,EACb,QAAQ,EAAE,UAAC,KAAK,IAAK,OAAA,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAArC,CAAqC,GAC1D,EACF,eAAM,SAAS,EAAC,wBAAwB,YAAE,gBAAgB,GAAQ,IAC9D,EACN,eAAK,SAAS,EAAC,iDAAiD,aAC9D,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,qBAAqB,EAC/B,OAAO,EAAE,cAAc,EACvB,QAAQ,EAAE,CAAC,SAAS,yBAGb,EACT,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,qBAAqB,EAC/B,OAAO,EAAE,cAAc,EACvB,QAAQ,EAAE,CAAC,SAAS,qBAGb,IACL,IACF,GACF,CACP,IACG,IACF,GACF,EAEL,YAAY,IAAI,CACf,KAAC,aAAa,IACZ,IAAI,EAAE,YAAY,EAClB,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,cAAM,OAAA,eAAe,CAAC,KAAK,CAAC,EAAtB,CAAsB,GACrC,CACH,EAED,KAAC,kBAAkB,IACjB,IAAI,EAAE,qBAAqB,EAC3B,QAAQ,EAAE,uBAAuB,EACjC,SAAS,EAAE,kBAAkB,EAC7B,SAAS,EAAC,yDAAyD,EACnE,eAAe,EAAC,0BAA0B,EAC1C,aAAa,EAAC,0BAA0B,EACxC,eAAe,EAAC,6BAA6B,EAC7C,kBAAkB,EAAC,yBAAyB,EAC5C,aAAa,QACb,KAAK,EAAE,iBAAU,iBAAiB,CAAE,EACpC,OAAO,EACL,YAAG,SAAS,EAAC,0BAA0B,YACpC,+CAAwC,iBAAiB,aAAU,GAClE,EAEN,YAAY,EAAC,QAAQ,EACrB,WAAW,EAAC,QAAQ,GACpB,EAEF,MAAC,WAAW,IACV,IAAI,EAAE,qBAAqB,EAC3B,YAAY,EAAE,sBAAsB,EACpC,SAAS,EAAC,4BAA4B,EACtC,KAAK,EAAE,EAAE,KAAK,EAAE,gCAAgC,EAAE,aAElD,MAAC,iBAAiB,eAChB,KAAC,gBAAgB,qCAAsC,EACvD,KAAC,gBAAgB,KAAG,IACF,EACpB,KAAC,oBAAoB,KAAG,EACxB,KAAC,eAAe,IAAC,SAAS,EAAC,iCAAiC,YAC1D,KAAC,kBAAkB,IAAC,qBAAqB,EAAE,6BAA6B,EAAE,sBAAsB,EAAE,sBAAsB,GAAI,GAC5G,IACN,IACV,CACP,CAAC;AACJ,CAAC,CAAC,CAAC","sourcesContent":["import { getCollectionViewPermissionNames, permissionExpression } from \"../../../helpers/permissions\";\nimport { createSolidEntityApi } from \"../../../redux/api/solidEntityApi\";\nimport { useGetSolidViewLayoutQuery } from \"../../../redux/api/solidViewApi\";\nimport { useLazyCheckIfPermissionExistsQuery } from \"../../../redux/api/userApi\";\nimport qs from \"qs\";\nimport { forwardRef, useEffect, useImperativeHandle, useRef, useState } from \"react\";\nimport { useSession } from \"../../../hooks/useSession\";\nimport { resolveActiveUserId, resolveSavedFilterVariables } from \"../../../helpers/resolveActiveUserId\";\nimport { SolidLightbox } from \"../../shad-cn-ui/SolidLightbox\";\nimport type { SolidLightboxSlide } from \"../../shad-cn-ui/SolidLightbox\";\nimport { getMediaTypeFromUrl } from \"../../../helpers/mediaType\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { showNavbar, toggleNavbar } from \"../../../redux/features/navbarSlice\";\nimport { usePathname } from \"../../../hooks/usePathname\";\nimport { useSearchParams } from \"../../../hooks/useSearchParams\";\nimport { SolidHeaderRequestStatus } from \"../../common/SolidHeaderRequestStatus\";\nimport { useGetSolidSettingsQuery } from \"../../../redux/api/solidSettingsApi\";\nimport { getSettingsMap, resolveRecordClickAction } from \"../../../helpers/settingsPayload\";\nimport { SolidCreateButton } from \"../common/SolidCreateButton\";\nimport { SolidGlobalSearchElement } from \"../common/SolidGlobalSearchElement\";\nimport { SolidEmptyListViewPlaceholder } from \"../list/SolidEmptyListViewPlaceholder\";\nimport { getFilterObjectFromLocalStorage,hasMeaningfulPersistedFilter,hasStoredFilterPredicates, setFilterObjectToLocalStorage} from \"../common/globalSearchPersistence\";\nimport { normalizeSolidListTreeKanbanActionPath } from \"../../../helpers/routePaths\";\nimport { SolidCardViewConfigure } from \"./SolidCardViewConfigure\";\nimport { CardGrid } from \"./CardGrid\";\nimport { CardUserViewLayout } from \"./CardUserViewLayout\";\nimport {\n SolidButton,\n SolidConfirmDialog,\n SolidDialog,\n SolidDialogBody,\n SolidDialogClose,\n SolidDialogHeader,\n SolidDialogSeparator,\n SolidDialogTitle,\n SolidIcon,\n SolidSelect,\n} from \"../../shad-cn-ui\";\nimport { showToast } from \"../../../redux/features/toastSlice\";\nimport { isButtonVisibleInCurrentEnv } from \"../../../helpers/buttonEnvironment\";\nimport { useHandleListCustomButtonClick } from \"../../common/useHandleListCustomButtonClick\";\nimport { SolidListViewHeaderButton } from \"../list/SolidListViewHeaderButton\";\n\ntype SolidCardViewParams = {\n moduleName: string;\n modelName: string;\n embeded: boolean;\n customFilter?: any;\n};\n\ntype SolidCardFilterInput = {\n custom_filter_predicate?: any;\n search_predicate?: any;\n saved_filter_predicate?: any;\n predefined_search_predicate?: any;\n};\n\nexport type SolidCardViewHandle = {\n refresh: () => void;\n clearFilters: () => void;\n applyFilter: (filter: SolidCardFilterInput) => void;\n getSavedFilters: () => any[];\n applySavedFilter: (name: string, variables?: Record<string, any>) => boolean;\n setPagination: (nextFirst: number, nextRows: number) => void;\n setShowArchived: (value: boolean) => void;\n getState: () => {\n first: number;\n rows: number;\n showArchived: boolean;\n filters: any;\n filterPredicates: any;\n cards: any[];\n totalRecords: number;\n loading: boolean;\n };\n};\n\nconst DEFAULT_RECORD_SORT = [\"id:desc\"];\n\nconst deriveCardViewConfig = (solidCardViewMetaData: any) => {\n const solidView = solidCardViewMetaData?.data?.solidView;\n const solidFieldsMetadata = solidCardViewMetaData?.data?.solidFieldsMetadata || {};\n const layoutAttrs = solidView?.layout?.attrs || {};\n const toPopulate: string[] = [];\n const toPopulateMedia: string[] = [];\n\n const findCardNode = (nodes: any[] = []): any => {\n for (const node of nodes) {\n if (!node) continue;\n if (node.type === \"card\") return node;\n if (Array.isArray(node.children) && node.children.length > 0) {\n const nestedCard = findCardNode(node.children);\n if (nestedCard) return nestedCard;\n }\n }\n\n return null;\n };\n\n const extractFields = (nodes: any, result: any[] = []) => {\n if (!nodes) return result;\n\n if (Array.isArray(nodes)) {\n nodes.forEach((node: any) => extractFields(node, result));\n return result;\n }\n\n if (nodes.type === \"field\") {\n result.push(nodes);\n }\n if (Array.isArray(nodes.children)) {\n nodes.children.forEach((child: any) => extractFields(child, result));\n }\n return result;\n };\n\n const cardNode = findCardNode(solidView?.layout?.children || []);\n const fieldSource = cardNode?.children?.length ? cardNode.children : solidView?.layout?.children || [];\n const layoutFields = extractFields(fieldSource);\n layoutFields.forEach((column: any) => {\n const fieldMetadata = solidFieldsMetadata[column?.attrs?.name];\n if (!fieldMetadata) return;\n\n if (fieldMetadata.type === \"relation\") {\n toPopulate.push(fieldMetadata.name);\n }\n if (fieldMetadata.type === \"mediaSingle\" || fieldMetadata.type === \"mediaMultiple\") {\n toPopulateMedia.push(fieldMetadata.name);\n }\n });\n\n return {\n rows: layoutAttrs.pageSize || 24,\n pageSizeOptions: layoutAttrs.pageSizeOptions || [12, 24, 48],\n toPopulate,\n toPopulateMedia,\n };\n};\n\nexport const SolidCardView = forwardRef<SolidCardViewHandle, SolidCardViewParams>((params, ref) => {\n const session = useSession();\n const user = session?.data?.user;\n const visibleNavbar = useSelector((state: any) => state.navbarState?.visibleNavbar);\n const dispatch = useDispatch();\n const pathname = usePathname();\n const searchParams = useSearchParams();\n const solidGlobalSearchElementRef = useRef<any>();\n const { data: solidSettingsData } = useGetSolidSettingsQuery(undefined);\n const solidSettingsMap = getSettingsMap(solidSettingsData);\n\n const [actionsAllowed, setActionsAllowed] = useState<string[]>([]);\n const [showGlobalSearchElement, setShowGlobalSearchElement] = useState(false);\n const [filterPredicates, setFilterPredicates] = useState<any>(null);\n const [viewModes, setViewModes] = useState<any[]>([]);\n const [filters, setFilters] = useState<any>({ $and: [] });\n const [cards, setCards] = useState<any[]>([]);\n const [toPopulate, setToPopulate] = useState<string[]>([]);\n const [toPopulateMedia, setToPopulateMedia] = useState<string[]>([]);\n const [rows, setRows] = useState(24);\n const [rowsPerPageOptions, setRowsPerPageOptions] = useState<any[]>([12, 24, 48]);\n const [first, setFirst] = useState(0);\n const [totalRecords, setTotalRecords] = useState(0);\n const [loading, setLoading] = useState(true);\n const [showSaveFilterPopup, setShowSaveFilterPopup] = useState(false);\n const [createButtonUrl, setCreateButtonUrl] = useState<string>();\n const [editButtonUrl, setEditButtonUrl] = useState<string>();\n const [createActionQueryParams, setCreateActionQueryParams] = useState<Record<string, string>>({});\n const [openLightbox, setOpenLightbox] = useState(false);\n const [lightboxUrls, setLightboxUrls] = useState<any[]>([]);\n const [isLayoutDialogVisible, setLayoutDialogVisible] = useState(false);\n const [queryDataLoaded, setQueryDataLoaded] = useState(false);\n const [triggerCheckIfPermissionExists] = useLazyCheckIfPermissionExistsQuery();\n const [showArchived, setShowArchived] = useState(false);\n const [selectedCardForDelete, setSelectedCardForDelete] = useState<any>(null);\n const [isDeleteDialogVisible, setDeleteDialogVisible] = useState(false);\n const handleCustomButtonClick = useHandleListCustomButtonClick();\n\n const lightboxSlides: SolidLightboxSlide[] = Array.isArray(lightboxUrls)\n ? lightboxUrls\n .map((item: any) => {\n const src = item?.src || item?.downloadUrl || \"\";\n if (!src) {\n return null;\n }\n const mediaType = getMediaTypeFromUrl(src);\n const slide: SolidLightboxSlide = { src };\n if (mediaType !== \"image\") {\n slide.type = mediaType;\n }\n return slide;\n })\n .filter((slide): slide is SolidLightboxSlide => !!slide)\n : [];\n\n const entityApi = createSolidEntityApi(params.modelName);\n const { useDeleteSolidEntityMutation, useLazyGetSolidEntitiesQuery, useLazyRecoverSolidEntityByIdQuery } = entityApi;\n const [triggerGetSolidEntities, { data: solidEntityCardViewData }] = useLazyGetSolidEntitiesQuery();\n const [deleteSolidEntity, { isLoading: isDeletingRecord }] = useDeleteSolidEntityMutation();\n const [triggerRecoverSolidEntityById, { isLoading: recoverByIdIsLoading }] = useLazyRecoverSolidEntityByIdQuery();\n\n const menuItemId = searchParams.get(\"menuItemId\");\n const menuItemName = searchParams.get(\"menuItemName\");\n const actionId = searchParams.get(\"actionId\");\n const actionName = searchParams.get(\"actionName\");\n\n const cardViewMetaDataQs = qs.stringify(\n {\n modelName: params.modelName,\n moduleName: params.moduleName,\n viewType: \"card\",\n menuItemId,\n menuItemName,\n actionId,\n actionName,\n },\n {\n encodeValuesOnly: true,\n }\n );\n\n const {data: solidCardViewMetaDataResponse,isLoading: solidCardViewMetaDataIsLoading,} = useGetSolidViewLayoutQuery(cardViewMetaDataQs);\n const visibleHeaderButtons = (solidCardViewMetaDataResponse?.data?.solidView?.layout?.attrs?.headerButtons ?? [])\n .filter((button: any) => isButtonVisibleInCurrentEnv(button?.attrs));\n\n const editBaseUrl = normalizeSolidListTreeKanbanActionPath(pathname, editButtonUrl || \"form\");\n const recordClickAction = resolveRecordClickAction(solidSettingsMap, {\n isSystemModule: solidCardViewMetaDataResponse?.data?.solidView?.module?.isSystem === true,\n });\n const rowsOptions = rowsPerPageOptions && rowsPerPageOptions.length > 0 ? rowsPerPageOptions : [12, 24, 48];\n const paginationStart = totalRecords === 0 ? 0 : first + 1;\n const paginationEnd = Math.min(first + rows, totalRecords);\n const totalPages = rows > 0 ? Math.max(1, Math.ceil(totalRecords / rows)) : 1;\n const currentPage = rows > 0 ? Math.floor(first / rows) + 1 : 1;\n const paginationReport = `${paginationStart} - ${paginationEnd} of ${totalRecords}`;\n const canGoPrev = currentPage > 1;\n const canGoNext = currentPage < totalPages;\n\n const handleRowsChange = (value: number) => {\n const nextRows = Number(value);\n setRows(nextRows);\n setFirst(0);\n };\n\n const handlePrevPage = () => {\n if (!canGoPrev) return;\n setFirst(Math.max(0, first - rows));\n };\n\n const handleNextPage = () => {\n if (!canGoNext) return;\n setFirst(Math.min((totalPages - 1) * rows, first + rows));\n };\n\n useEffect(() => {\n const fetchPermissions = async () => {\n if (!params.modelName) return;\n\n const permissionNames = getCollectionViewPermissionNames(params.modelName, {\n includeDeleteMany: false,\n includeFindOne: false,\n includeInsertMany: false,\n });\n\n const queryString = qs.stringify(\n { permissionNames },\n { encodeValuesOnly: true }\n );\n const response = await triggerCheckIfPermissionExists(queryString);\n setActionsAllowed(response.data?.data || []);\n };\n\n fetchPermissions();\n }, [params.modelName]);\n\n useEffect(() => {\n if (!solidCardViewMetaDataResponse) return;\n\n setViewModes(solidCardViewMetaDataResponse?.data?.viewModes || []);\n\n const { rows, pageSizeOptions, toPopulate, toPopulateMedia } = deriveCardViewConfig(solidCardViewMetaDataResponse);\n const persistedFilterObject = typeof window !== \"undefined\" ? getFilterObjectFromLocalStorage() : null;\n const restoredFilter = { $and: [] as any[] };\n\n if (persistedFilterObject?.custom_filter_predicate) {\n restoredFilter.$and.push(persistedFilterObject.custom_filter_predicate);\n }\n if (persistedFilterObject?.search_predicate) {\n restoredFilter.$and.push(persistedFilterObject.search_predicate);\n }\n if (persistedFilterObject?.saved_filter_predicate) {\n restoredFilter.$and.push(resolveSavedFilterVariables(\n persistedFilterObject.saved_filter_predicate,\n user?.id,\n persistedFilterObject.saved_filter_variables || {}\n ).value);\n }\n if (persistedFilterObject?.predefined_search_predicate) {\n restoredFilter.$and.push(persistedFilterObject.predefined_search_predicate);\n }\n\n setRows(Number(persistedFilterObject?.limit) || rows);\n setRowsPerPageOptions(pageSizeOptions);\n setFirst(Number(persistedFilterObject?.offset) || 0);\n setShowArchived(\n persistedFilterObject?.showArchived === true ||\n persistedFilterObject?.showArchived === \"true\" ||\n persistedFilterObject?.showSoftDeleted === \"inclusive\"\n );\n setToPopulate(toPopulate);\n setToPopulateMedia(toPopulateMedia);\n setFilters(restoredFilter.$and.length > 0 ? restoredFilter : { $and: [] });\n setQueryDataLoaded(true);\n\n const layoutAttrs = solidCardViewMetaDataResponse?.data?.solidView?.layout?.attrs;\n const createActionUrl = layoutAttrs?.createAction && layoutAttrs?.createAction?.type === \"custom\"\n ? layoutAttrs?.createAction?.customComponent\n : \"form/new\";\n const editActionUrl = layoutAttrs?.editAction && layoutAttrs?.editAction?.type === \"custom\"\n ? layoutAttrs?.editAction?.customComponent\n : \"form\";\n\n if (layoutAttrs?.createAction) {\n setCreateActionQueryParams({\n actionName: layoutAttrs.createAction.name,\n actionType: layoutAttrs.createAction.type,\n actionContext: layoutAttrs.createAction.context,\n });\n }\n\n setCreateButtonUrl(createActionUrl);\n setEditButtonUrl(editActionUrl);\n }, [solidCardViewMetaDataResponse]);\n\n const loadCards = async (nextFilters = filters) => {\n if (!queryDataLoaded || !solidCardViewMetaDataResponse) return;\n\n setLoading(true);\n\n const queryData: any = {\n offset: first,\n limit: rows,\n sort: DEFAULT_RECORD_SORT,\n populate: toPopulate,\n populateMedia: toPopulateMedia,\n filters: nextFilters,\n };\n if (showArchived) {\n queryData.showSoftDeleted = \"inclusive\";\n }\n\n try {\n const data: any = await triggerGetSolidEntities(\n qs.stringify(queryData, { encodeValuesOnly: true })\n ).unwrap();\n\n setCards(data?.records || []);\n setTotalRecords(data?.meta?.totalRecords || 0);\n } finally {\n setLoading(false);\n }\n };\n\n useEffect(() => {\n void loadCards(filters);\n }, [filters, first, queryDataLoaded, rows, showArchived, solidCardViewMetaDataResponse, toPopulate, toPopulateMedia]);\n\n useEffect(() => {\n if (!solidEntityCardViewData) return;\n\n setCards(solidEntityCardViewData?.records || []);\n setTotalRecords(solidEntityCardViewData?.meta?.totalRecords || 0);\n }, [solidEntityCardViewData]);\n\n useEffect(() => {\n if (!queryDataLoaded) return;\n\n const persistedFilterObject = typeof window !== \"undefined\" ? (getFilterObjectFromLocalStorage() || {}) : {};\n const nextPersistedFilterObject: Record<string, any> = {\n ...persistedFilterObject,\n offset: first,\n limit: rows,\n showArchived,\n };\n\n if (showArchived) {\n nextPersistedFilterObject.showSoftDeleted = \"inclusive\";\n } else {\n delete nextPersistedFilterObject.showSoftDeleted;\n }\n\n setFilterObjectToLocalStorage(nextPersistedFilterObject);\n }, [first, queryDataLoaded, rows, showArchived]);\n\n const handleApplyCustomFilter = async (filterPredicates: any) => {\n const updatedFilter = { $and: [] as any[] };\n\n if (filterPredicates.custom_filter_predicate) {\n updatedFilter.$and.push(filterPredicates.custom_filter_predicate);\n }\n if (filterPredicates.search_predicate) {\n updatedFilter.$and.push(filterPredicates.search_predicate);\n }\n if (filterPredicates.saved_filter_predicate) {\n updatedFilter.$and.push(filterPredicates.resolved_saved_filter_predicate ||\n resolveActiveUserId(filterPredicates.saved_filter_predicate, user?.id));\n }\n if (filterPredicates.predefined_search_predicate) {\n updatedFilter.$and.push(filterPredicates.predefined_search_predicate);\n }\n\n setFirst(0);\n setFilterPredicates(structuredClone(filterPredicates));\n setFilters(updatedFilter);\n setFilterObjectToLocalStorage({\n offset: 0,\n limit: rows,\n showArchived,\n ...(showArchived ? { showSoftDeleted: \"inclusive\" } : {}),\n custom_filter_predicate: filterPredicates.custom_filter_predicate || {},\n search_predicate: filterPredicates.search_predicate || {},\n saved_filter_predicate: filterPredicates.saved_filter_predicate || {},\n saved_filter_variables: filterPredicates.saved_filter_variables || {},\n saved_filter_id: filterPredicates.saved_filter_id || null,\n saved_filter_system_key: filterPredicates.saved_filter_system_key || null,\n saved_filter_name: filterPredicates.saved_filter_name || null,\n predefined_search_predicate: filterPredicates.predefined_search_predicate || {},\n predefined_search_chip: filterPredicates.predefined_search_chip || null,\n });\n };\n\n const handleFetchUpdatedRecords = async () => {\n if (hasAnyActiveFilters) {\n solidGlobalSearchElementRef.current?.clearAppliedFilters?.();\n return;\n }\n\n await loadCards(filters);\n };\n\n const cloneCards = () => {\n if (typeof structuredClone === \"function\") return structuredClone(cards);\n return JSON.parse(JSON.stringify(cards));\n };\n\n useImperativeHandle(ref, () => ({\n refresh: () => {\n void loadCards(filters);\n },\n clearFilters: () => {\n setFirst(0);\n setFilters(params.customFilter || { $and: [] });\n setFilterPredicates(null);\n solidGlobalSearchElementRef.current?.clearFilter?.();\n },\n applyFilter: (filter) => {\n void handleApplyCustomFilter(filter);\n },\n getSavedFilters: () => solidGlobalSearchElementRef.current?.getSavedFilters?.() ?? [],\n applySavedFilter: (name, variables) =>\n solidGlobalSearchElementRef.current?.applySavedFilterByName?.(name, variables) ?? false,\n setPagination: (nextFirst, nextRows) => {\n setFirst(nextFirst);\n setRows(nextRows);\n },\n setShowArchived: (value) => {\n setShowArchived(value);\n },\n getState: () => ({\n first,\n rows,\n showArchived,\n filters,\n filterPredicates,\n cards: cloneCards(),\n totalRecords,\n loading,\n }),\n }), [first, rows, showArchived, filters, filterPredicates, cards, totalRecords, loading]);\n\n const handleRecoverRecord = async (record: any) => {\n if (!record?.id) return;\n\n try {\n const response: any = await triggerRecoverSolidEntityById(record.id).unwrap();\n dispatch(showToast({\n severity: \"success\",\n summary: \"Success\",\n detail: response?.data?.message || \"Record recovered successfully.\",\n life: 3000,\n }));\n await loadCards(filters);\n } catch (error: any) {\n dispatch(showToast({\n severity: \"error\",\n summary: \"Recover Failed\",\n detail: error?.data?.message || error?.message || \"Unable to recover the selected record.\",\n life: 4000,\n }));\n }\n };\n\n const handleOpenDeleteDialog = (record: any) => {\n setSelectedCardForDelete(record);\n setDeleteDialogVisible(true);\n };\n\n const handleCloseDeleteDialog = () => {\n setDeleteDialogVisible(false);\n setSelectedCardForDelete(null);\n };\n\n const handleDeleteRecord = async () => {\n if (!selectedCardForDelete?.id) return;\n\n try {\n const response: any = await deleteSolidEntity(selectedCardForDelete.id).unwrap();\n dispatch(showToast({\n severity: \"success\",\n summary: \"Deleted\",\n detail: response?.data?.message || \"Record deleted successfully.\",\n life: 3000,\n }));\n handleCloseDeleteDialog();\n await loadCards(filters);\n } catch (error: any) {\n dispatch(showToast({\n severity: \"error\",\n summary: \"Delete Failed\",\n detail: error?.data?.message || error?.message || \"Unable to delete the selected record.\",\n life: 4000,\n }));\n }\n };\n\n const toggleBothSidebars = () => {\n if (visibleNavbar) {\n dispatch(toggleNavbar());\n } else {\n dispatch(showNavbar());\n }\n };\n\n const cardViewTitle = solidCardViewMetaDataResponse?.data?.solidView?.displayName;\n const entityDisplayName = solidCardViewMetaDataResponse?.data?.solidView?.model?.displayName || params.modelName;\n const canDeleteCards = actionsAllowed.includes(`${permissionExpression(params.modelName, \"delete\")}`) &&\n solidCardViewMetaDataResponse?.data?.solidView?.layout?.attrs?.delete !== false &&\n solidCardViewMetaDataResponse?.data?.solidView?.layout?.attrs?.showRowDeleteInContextMenu !== false;\n const isCardViewMetaDataReady = Boolean(solidCardViewMetaDataResponse?.data?.solidView);\n const showCardBodyLoadingPlaceholder = solidCardViewMetaDataIsLoading || (isCardViewMetaDataReady && (!queryDataLoaded || (loading && cards.length === 0)));\n const hasFilterPredicatesApplied = hasStoredFilterPredicates(filterPredicates);\n const hasActiveFilters = hasMeaningfulPersistedFilter(filters);\n const hasAnyActiveFilters = hasActiveFilters || hasFilterPredicatesApplied;\n const hasStoredFilterState = hasStoredFilterPredicates(getFilterObjectFromLocalStorage());\n const showEmptyState = !loading && cards.length === 0 && !hasActiveFilters;\n const showFilteredEmptyState = !loading && cards.length === 0 && hasActiveFilters;\n const filteredEmptyMessage = solidCardViewMetaDataResponse?.data?.solidView?.model?.description || \"No Entities found\";\n const headerRequestStatusLabel = isDeletingRecord\n ? \"Deleting...\"\n : recoverByIdIsLoading\n ? \"Recovering...\"\n : loading || !queryDataLoaded\n ? \"Loading...\"\n : null;\n\n useEffect(() => {\n if (params.embeded === false) {\n setShowGlobalSearchElement(hasAnyActiveFilters || hasStoredFilterState);\n }\n }, [hasAnyActiveFilters, hasStoredFilterState, params.embeded]);\n\n return (\n <div className=\"page-parent-wrapper solid-list-page-wrapper flex h-full min-h-0 overflow-hidden\">\n <div className=\"solid-list-content h-full flex way to flex-grow-1\">\n <div className=\"solid-list-surface solid-card-surface flex flex-col flex-1 min-h-0\">\n <div className=\"page-header solid-list-toolbar solid-card-toolbar flex-col lg:flex-row\">\n <div className=\"flex w-full flex-col-reverse lg:flex-row lg:items-center items-end\">\n <div className=\"flex gap-4 items-center w-full solid-list-toolbar-left lg:min-w-0 lg:flex-1\">\n {/* {params.embeded !== true && (\n <div className=\"apps-icon block md:hidden cursor-pointer\" onClick={toggleBothSidebars}>\n <SolidIcon name=\"si-th-large\" aria-hidden />\n </div>\n )} */}\n {/* <p className=\"m-0 view-title solid-text-wrapper\">{cardViewTitle}</p> */}\n {/* Base `hidden` must be avoided here: the consuming app's Tailwind CSS loads after this\n library's generated CSS, so the app's base `.hidden` would override our media-scoped\n `lg:flex`. Only media-scoped visibility classes are safe on this element. */}\n <div className={`${showGlobalSearchElement ? \"flex\" : \"max-lg:hidden lg:flex\"} w-full mt-3 lg:mt-0 lg:min-w-0`}>\n <SolidGlobalSearchElement\n viewType=\"card\"\n showSaveFilterPopup={showSaveFilterPopup}\n setShowSaveFilterPopup={setShowSaveFilterPopup}\n ref={solidGlobalSearchElementRef}\n viewData={solidCardViewMetaDataResponse}\n handleApplyCustomFilter={handleApplyCustomFilter}\n filterPredicates={filterPredicates}\n />\n </div>\n </div>\n\n <div className=\"flex items-center solid-header-buttons-wrapper solid-list-toolbar-actions lg:ml-auto\">\n <SolidHeaderRequestStatus label={headerRequestStatusLabel} />\n <div className=\"solid-list-search-toggle\">\n <SolidButton\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n className=\"solid-icon-button\"\n onClick={() => setShowGlobalSearchElement(!showGlobalSearchElement)}\n aria-label=\"Toggle search\"\n leftIcon={<SolidIcon name=\"si-search\" aria-hidden />}\n />\n </div>\n\n <div className=\"solid-header-buttons-wrapper max-lg:hidden items-center lg:flex\">\n {visibleHeaderButtons\n .filter((button: any) => button?.attrs?.actionInContextMenu !== true)\n .map((button: any, index: number) => (\n <SolidListViewHeaderButton\n key={button?.attrs?.action ?? index}\n button={button}\n params={params}\n solidListViewMetaData={solidCardViewMetaDataResponse}\n handleCustomButtonClick={handleCustomButtonClick}\n selectedRecords={[]}\n filters={filters}\n />\n ))}\n </div>\n\n {actionsAllowed.includes(`${permissionExpression(params.modelName, \"create\")}`) &&\n solidCardViewMetaDataResponse?.data?.solidView?.layout?.attrs?.create !== false && (\n <SolidCreateButton\n createButtonUrl={createButtonUrl}\n createActionQueryParams={createActionQueryParams}\n responsiveIconOnly={true}\n />\n )}\n\n <SolidButton\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n className=\"solid-icon-button\"\n onClick={() => handleFetchUpdatedRecords()}\n aria-label=\"Refresh cards\"\n leftIcon={<SolidIcon name=\"si-refresh\" aria-hidden />}\n />\n\n <SolidCardViewConfigure\n solidCardViewMetaData={solidCardViewMetaDataResponse}\n modelName={params.modelName}\n actionsAllowed={actionsAllowed}\n viewModes={viewModes}\n setShowArchived={setShowArchived}\n showArchived={showArchived}\n setLayoutDialogVisible={setLayoutDialogVisible}\n setShowSaveFilterPopup={setShowSaveFilterPopup}\n filters={filters}\n hasAnyActiveFilters={hasAnyActiveFilters}\n handleRefreshView={handleFetchUpdatedRecords}\n params={params}\n headerButtons={visibleHeaderButtons}\n handleCustomButtonClick={handleCustomButtonClick}\n />\n </div>\n </div>\n </div>\n\n <div className=\"solid-card-view-content\">\n {showCardBodyLoadingPlaceholder ? (\n <div className=\"solid-view-loading-body-spacer flex-1 min-h-0\" />\n ) : (\n <div className=\"solid-card-view-body\">\n {showEmptyState ? (\n <SolidEmptyListViewPlaceholder\n createButtonUrl={createButtonUrl}\n createActionQueryParams={createActionQueryParams}\n actionsAllowed={actionsAllowed}\n params={params}\n solidListViewMetaData={solidCardViewMetaDataResponse}\n handleFetchUpdatedRecords={handleFetchUpdatedRecords}\n />\n ) : showFilteredEmptyState ? (\n <div className=\"flex min-h-[240px] items-center justify-center rounded-md border border-border/60 bg-background px-6 py-10 text-center text-muted-foreground\">\n {filteredEmptyMessage}\n </div>\n ) : (\n <CardGrid\n records={cards}\n solidCardViewMetaData={solidCardViewMetaDataResponse?.data}\n editButtonUrl={editBaseUrl}\n recordClickAction={recordClickAction}\n onDelete={canDeleteCards ? handleOpenDeleteDialog : undefined}\n onRecover={handleRecoverRecord}\n setLightboxUrls={setLightboxUrls}\n setOpenLightbox={setOpenLightbox}\n showArchived={showArchived}\n params={params}\n handleCustomButtonClick={handleCustomButtonClick}\n />\n )}\n </div>\n )}\n\n {totalRecords > 0 && (\n <div className=\"solid-card-view-pagination\">\n <div className=\"solid-card-view-pagination-bar solid-table-paginator flex items-center justify-center gap-3 text-sm rounded-md border border-border/60 px-3 py-1.5 bg-background\">\n <div className=\"solid-paginator-meta flex items-center gap-2\">\n <span className=\"solid-paginator-label\">Records</span>\n <SolidSelect\n value={rows}\n className=\"solid-paginator-select\"\n options={rowsOptions.map((option) => ({ label: String(option), value: option }))}\n native={false}\n onChange={(event) => handleRowsChange(Number(event.value))}\n />\n <span className=\"solid-paginator-report\">{paginationReport}</span>\n </div>\n <div className=\"solid-paginator-actions flex items-center gap-2\">\n <button\n type=\"button\"\n className=\"solid-paginator-btn\"\n onClick={handlePrevPage}\n disabled={!canGoPrev}\n >\n Previous\n </button>\n <button\n type=\"button\"\n className=\"solid-paginator-btn\"\n onClick={handleNextPage}\n disabled={!canGoNext}\n >\n Next\n </button>\n </div>\n </div>\n </div>\n )}\n </div>\n </div>\n </div>\n\n {openLightbox && (\n <SolidLightbox\n open={openLightbox}\n slides={lightboxSlides}\n onClose={() => setOpenLightbox(false)}\n />\n )}\n\n <SolidConfirmDialog\n open={isDeleteDialogVisible}\n onCancel={handleCloseDeleteDialog}\n onConfirm={handleDeleteRecord}\n className=\"solid-shadcn-confirm-dialog solid-delete-confirm-dialog\"\n headerClassName=\"solid-shadcn-dialog-head\"\n bodyClassName=\"solid-shadcn-dialog-body\"\n footerClassName=\"solid-shadcn-dialog-actions\"\n separatorClassName=\"solid-shadcn-dialog-sep\"\n showSeparator\n title={`Delete ${entityDisplayName}`}\n message={\n <p className=\"solid-shadcn-dialog-text\">\n {`Are you sure you want to delete this ${entityDisplayName} record?`}\n </p>\n }\n confirmLabel=\"Delete\"\n cancelLabel=\"Cancel\"\n />\n\n <SolidDialog\n open={isLayoutDialogVisible}\n onOpenChange={setLayoutDialogVisible}\n className=\"solid-kanban-layout-dialog\"\n style={{ width: \"min(800px, calc(100vw - 32px))\" }}\n >\n <SolidDialogHeader>\n <SolidDialogTitle>Change Card Layout</SolidDialogTitle>\n <SolidDialogClose />\n </SolidDialogHeader>\n <SolidDialogSeparator />\n <SolidDialogBody className=\"solid-kanban-layout-dialog-body\">\n <CardUserViewLayout solidCardViewMetaData={solidCardViewMetaDataResponse} setLayoutDialogVisible={setLayoutDialogVisible} />\n </SolidDialogBody>\n </SolidDialog>\n </div>\n );\n});\n"]}
@@ -611,7 +611,7 @@ export const SolidCardView = forwardRef<SolidCardViewHandle, SolidCardViewParams
611
611
  />
612
612
  </div>
613
613
 
614
- <div className="solid-header-buttons-wrapper hidden items-center lg:flex">
614
+ <div className="solid-header-buttons-wrapper max-lg:hidden items-center lg:flex">
615
615
  {visibleHeaderButtons
616
616
  .filter((button: any) => button?.attrs?.actionInContextMenu !== true)
617
617
  .map((button: any, index: number) => (
@@ -115,7 +115,7 @@ export var SolidCardViewConfigure = function (_a) {
115
115
  }, children: [_jsx(SolidIcon, { name: "si-upload", className: "solid-header-action-button-icon", "aria-hidden": true }), _jsx("span", { className: "solid-header-action-button-label", children: "Export" })] })), contextMenuHeaderButtons.map(function (button, index) {
116
116
  var _a, _b;
117
117
  return (_jsx(SolidListViewHeaderContextMenuButton, { button: button, params: params, solidListViewMetaData: solidCardViewMetaData, handleCustomButtonClick: handleCustomButtonClick, selectedRecords: [], filters: filters, onActionComplete: function () { return setIsCogMenuOpen(false); } }, (_b = (_a = button === null || button === void 0 ? void 0 : button.attrs) === null || _a === void 0 ? void 0 : _a.action) !== null && _b !== void 0 ? _b : index));
118
- }), _jsx("div", { className: "lg:hidden flex flex-col gap-1", children: mobileOnlyHeaderButtons.map(function (button, index) {
118
+ }), _jsx("div", { className: "max-lg:flex lg:hidden flex-col gap-1", children: mobileOnlyHeaderButtons.map(function (button, index) {
119
119
  var _a, _b;
120
120
  return (_jsx(SolidListViewHeaderContextMenuButton, { button: button, params: params, solidListViewMetaData: solidCardViewMetaData, handleCustomButtonClick: handleCustomButtonClick, selectedRecords: [], filters: filters, onActionComplete: function () { return setIsCogMenuOpen(false); } }, "mobile-".concat((_b = (_a = button === null || button === void 0 ? void 0 : button.attrs) === null || _a === void 0 ? void 0 : _a.action) !== null && _b !== void 0 ? _b : index)));
121
121
  }) }), canShowArchivedRecords && (_jsx(SolidDropdownMenuCheckboxItem, { className: showArchived ? "solid-archive-toggle-item-active" : undefined, checked: showArchived, icon: _jsx(SolidIcon, { name: "si-archive", className: "solid-header-action-button-icon solid-archive-toggle-icon", "aria-hidden": true }), onCheckedChange: function () { return setShowArchived(!showArchived); }, children: "Show Archived Rows" })), (canCustomizeLayout || hasAnyActiveFilters && canSaveCustomFilter || canShowArchivedRecords) && _jsx(SolidDropdownMenuSeparator, {}), canCustomizeLayout && (_jsxs(SolidDropdownMenuSub, { children: [_jsxs(SolidDropdownMenuSubTrigger, { className: "solid-header-dropdown-item", children: [_jsx(SolidIcon, { name: "si-sliders-h", className: "solid-header-action-button-icon", "aria-hidden": true }), _jsx("span", { className: "solid-header-action-button-label", children: "Layout" })] }), _jsxs(SolidDropdownMenuSubContent, { className: "customize-layout-panel", side: "left", children: [showSwitchType && (_jsxs(_Fragment, { children: [_jsx(SolidDropdownMenuLabel, { children: "Switch Type" }), _jsx(SolidDropdownMenuRadioGroup, { value: view, onValueChange: handleViewChange, children: visibleViewModes.map(function (option) { return (_jsx(SolidDropdownMenuRadioItem, { value: option.type, children: option.label }, option.type)); }) }), _jsx(SolidDropdownMenuSeparator, {})] })), _jsxs(SolidDropdownMenuItem, { onSelect: function () {