@rivet-health/design-system 2.2.0 → 2.2.2

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.
@@ -1 +1 @@
1
- {"version":3,"file":"rivet-health-design-system.mjs","sources":["../../../projects/riv/src/lib/icon/dom-cache.ts","../../../projects/riv/src/lib/icon/icons.ts","../../../projects/riv/src/lib/icon/icon.component.ts","../../../projects/riv/src/lib/icon/icon.component.html","../../../projects/riv/src/lib/content-toggle/text-toggle/text-toggle.component.ts","../../../projects/riv/src/lib/content-toggle/text-toggle/text-toggle.component.html","../../../projects/riv/src/lib/modal/callout/callout.service.ts","../../../projects/riv/src/lib/modal/callout/callout-outlet.component.ts","../../../projects/riv/src/lib/modal/callout/callout-outlet.component.html","../../../projects/riv/src/lib/modal/callout/callout-position.ts","../../../projects/riv/src/lib/modal/callout/callout.component.ts","../../../projects/riv/src/lib/modal/callout/callout.component.html","../../../projects/riv/src/lib/modal/callout/callout.directive.ts","../../../projects/riv/src/lib/visualization/zero-state/zero-state.component.ts","../../../projects/riv/src/lib/visualization/donut/donut.component.ts","../../../projects/riv/src/lib/visualization/donut/donut.component.html","../../../projects/riv/src/lib/visualization/legend-item/legend-item.component.ts","../../../projects/riv/src/lib/visualization/legend-item/legend-item.component.html","../../../projects/riv/src/lib/visualization/metric/metric.component.ts","../../../projects/riv/src/lib/visualization/metric/metric.component.html","../../../projects/riv/src/lib/visualization/time-series/time-series.component.ts","../../../projects/riv/src/lib/visualization/time-series/time-series.component.html","../../../projects/riv/src/lib/visualization/data-table/data-table.component.ts","../../../projects/riv/src/lib/visualization/data-table/data-table-row.component.ts","../../../projects/riv/src/lib/visualization/data-table/data-table-cell.component.ts","../../../projects/riv/src/lib/visualization/data-table/data-table-header-cell.component.ts","../../../projects/riv/src/lib/visualization/stacked-column/stacked-column.component.ts","../../../projects/riv/src/lib/visualization/stacked-column/stacked-column.component.html","../../../projects/riv/src/lib/riv.module.ts","../../../projects/riv/src/rivet-health-design-system.ts"],"sourcesContent":["export interface CacheResult<V> {\n value: V;\n cleanup: () => void;\n}\n\n/**\n * DOM cache that clones existing elements if available.\n */\nexport class DomCache<T, V extends Node = Node> {\n private readonly nodes = new Map<T, Set<V>>();\n\n constructor(private readonly create: (key: T) => V) {}\n\n get(key: T): CacheResult<V> {\n let set = this.nodes.get(key);\n let result: V;\n if (set) {\n result = <V>set.values().next().value.cloneNode(true);\n } else {\n result = this.create(key);\n set = new Set();\n this.nodes.set(key, set);\n }\n\n set.add(result);\n\n return {\n value: result,\n cleanup: () => {\n set!.delete(result);\n if (!set!.size) {\n this.nodes.delete(key);\n }\n },\n };\n }\n}\n","const Activity = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-activity\">\\n <polyline points=\"22 12 18 12 15 21 9 3 6 12 2 12\"></polyline>\\n</svg>`;\nconst AlertCircle = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-alert-circle\">\\n <circle cx=\"12\" cy=\"12\" r=\"10\"></circle><line x1=\"12\" y1=\"8\" x2=\"12\" y2=\"12\"></line><line x1=\"12\" y1=\"16\" x2=\"12.01\" y2=\"16\"></line>\\n</svg>`;\nconst AlertOctagon = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-alert-octagon\">\\n <polygon points=\"7.86 2 16.14 2 22 7.86 22 16.14 16.14 22 7.86 22 2 16.14 2 7.86 7.86 2\"></polygon><line x1=\"12\" y1=\"8\" x2=\"12\" y2=\"12\"></line><line x1=\"12\" y1=\"16\" x2=\"12.01\" y2=\"16\"></line>\\n</svg>`;\nconst AlertTriangle = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-alert-triangle\">\\n <path d=\"M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z\"></path><line x1=\"12\" y1=\"9\" x2=\"12\" y2=\"13\"></line><line x1=\"12\" y1=\"17\" x2=\"12.01\" y2=\"17\"></line>\\n</svg>`;\nconst AlignLeft = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-align-left\">\\n <line x1=\"17\" y1=\"10\" x2=\"3\" y2=\"10\"></line><line x1=\"21\" y1=\"6\" x2=\"3\" y2=\"6\"></line><line x1=\"21\" y1=\"14\" x2=\"3\" y2=\"14\"></line><line x1=\"17\" y1=\"18\" x2=\"3\" y2=\"18\"></line>\\n</svg>`;\nconst Anchor = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-anchor\">\\n <circle cx=\"12\" cy=\"5\" r=\"3\"></circle><line x1=\"12\" y1=\"22\" x2=\"12\" y2=\"8\"></line><path d=\"M5 12H2a10 10 0 0 0 20 0h-3\"></path>\\n</svg>`;\nconst Archive = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-archive\">\\n <polyline points=\"21 8 21 21 3 21 3 8\"></polyline><rect x=\"1\" y=\"3\" width=\"22\" height=\"5\"></rect><line x1=\"10\" y1=\"12\" x2=\"14\" y2=\"12\"></line>\\n</svg>`;\nconst ArrowDown = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-arrow-down\">\\n <line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\"></line><polyline points=\"19 12 12 19 5 12\"></polyline>\\n</svg>`;\nconst ArrowDownLeft = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-arrow-down-left\">\\n <line x1=\"17\" y1=\"7\" x2=\"7\" y2=\"17\"></line><polyline points=\"17 17 7 17 7 7\"></polyline>\\n</svg>`;\nconst ArrowLeft = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-arrow-left\">\\n <line x1=\"19\" y1=\"12\" x2=\"5\" y2=\"12\"></line><polyline points=\"12 19 5 12 12 5\"></polyline>\\n</svg>`;\nconst ArrowLeftCircle = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-arrow-left-circle\">\\n <circle cx=\"12\" cy=\"12\" r=\"10\"></circle><polyline points=\"12 8 8 12 12 16\"></polyline><line x1=\"16\" y1=\"12\" x2=\"8\" y2=\"12\"></line>\\n</svg>`;\nconst ArrowRight = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-arrow-right\">\\n <line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"></line><polyline points=\"12 5 19 12 12 19\"></polyline>\\n</svg>`;\nconst ArrowUp = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-arrow-up\">\\n <line x1=\"12\" y1=\"19\" x2=\"12\" y2=\"5\"></line><polyline points=\"5 12 12 5 19 12\"></polyline>\\n</svg>`;\nconst ArrowUpRight = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-arrow-up-right\">\\n <line x1=\"7\" y1=\"17\" x2=\"17\" y2=\"7\"></line><polyline points=\"7 7 17 7 17 17\"></polyline>\\n</svg>`;\nconst AtSign = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-at-sign\">\\n <circle cx=\"12\" cy=\"12\" r=\"4\"></circle><path d=\"M16 8v5a3 3 0 0 0 6 0v-1a10 10 0 1 0-3.92 7.94\"></path>\\n</svg>`;\nconst BarChart2 = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-bar-chart-2\">\\n <line x1=\"18\" y1=\"20\" x2=\"18\" y2=\"10\"></line><line x1=\"12\" y1=\"20\" x2=\"12\" y2=\"4\"></line><line x1=\"6\" y1=\"20\" x2=\"6\" y2=\"14\"></line>\\n</svg>`;\nconst Bell = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-bell\">\\n <path d=\"M18 8A6 6 0 0 0 6 8c0 7-3 9-3 9h18s-3-2-3-9\"></path><path d=\"M13.73 21a2 2 0 0 1-3.46 0\"></path>\\n</svg>`;\nconst Book = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-book\">\\n <path d=\"M4 19.5A2.5 2.5 0 0 1 6.5 17H20\"></path><path d=\"M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2z\"></path>\\n</svg>`;\nconst BookOpen = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-book-open\">\\n <path d=\"M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z\"></path><path d=\"M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z\"></path>\\n</svg>`;\nconst Briefcase = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-briefcase\">\\n <rect x=\"2\" y=\"7\" width=\"20\" height=\"14\" rx=\"2\" ry=\"2\"></rect><path d=\"M16 21V5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16\"></path>\\n</svg>`;\nconst Calendar = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-calendar\">\\n <rect x=\"3\" y=\"4\" width=\"18\" height=\"18\" rx=\"2\" ry=\"2\"></rect><line x1=\"16\" y1=\"2\" x2=\"16\" y2=\"6\"></line><line x1=\"8\" y1=\"2\" x2=\"8\" y2=\"6\"></line><line x1=\"3\" y1=\"10\" x2=\"21\" y2=\"10\"></line>\\n</svg>`;\nconst Check = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-check\">\\n <polyline points=\"20 6 9 17 4 12\"></polyline>\\n</svg>`;\nconst CheckCircle = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-check-circle\">\\n <path d=\"M22 11.08V12a10 10 0 1 1-5.93-9.14\"></path><polyline points=\"22 4 12 14.01 9 11.01\"></polyline>\\n</svg>`;\nconst CheckSquare = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-check-square\">\\n <polyline points=\"9 11 12 14 22 4\"></polyline><path d=\"M21 12v7a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11\"></path>\\n</svg>`;\nconst ChevronDown = `<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 24 24\\\" class=\\\"feather feather-chevron-down\\\">\\n <polyline points=\\\"6 9 12 15 18 9\\\"></polyline>\\n</svg>`;\nconst ChevronLeft = `<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 24 24\\\" class=\\\"feather feather-chevron-left\\\">\\n <polyline points=\\\"15 18 9 12 15 6\\\"></polyline>\\n</svg>`;\nconst ChevronRight = `<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 24 24\\\" class=\\\"feather feather-chevron-right\\\">\\n <polyline points=\\\"9 18 15 12 9 6\\\"></polyline>\\n</svg>`;\nconst ChevronsRight = `<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 24 24\\\" class=\\\"feather feather-chevrons-right\\\">\\n <polyline points=\\\"13 17 18 12 13 7\\\"></polyline><polyline points=\\\"6 17 11 12 6 7\\\"></polyline>\\n</svg>`;\nconst ChevronsLeft = `<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 24 24\\\" class=\\\"feather feather-chevrons-left\\\">\\n <polyline points=\\\"11 17 6 12 11 7\\\"></polyline><polyline points=\\\"18 17 13 12 18 7\\\"></polyline>\\n</svg>`;\nconst ChevronUp = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-chevron-up\">\\n <polyline points=\"18 15 12 9 6 15\"></polyline>\\n</svg>`;\nconst Clipboard = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-clipboard\">\\n <path d=\"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2\"></path><rect x=\"8\" y=\"2\" width=\"8\" height=\"4\" rx=\"1\" ry=\"1\"></rect>\\n</svg>`;\nconst Clock = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-clock\">\\n <circle cx=\"12\" cy=\"12\" r=\"10\"></circle><polyline points=\"12 6 12 12 16 14\"></polyline>\\n</svg>`;\nconst Coffee = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-coffee\">\\n <path d=\"M18 8h1a4 4 0 0 1 0 8h-1\"></path><path d=\"M2 8h16v9a4 4 0 0 1-4 4H6a4 4 0 0 1-4-4V8z\"></path><line x1=\"6\" y1=\"1\" x2=\"6\" y2=\"4\"></line><line x1=\"10\" y1=\"1\" x2=\"10\" y2=\"4\"></line><line x1=\"14\" y1=\"1\" x2=\"14\" y2=\"4\"></line>\\n</svg>`;\nconst Copy = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-copy\">\\n <rect x=\"9\" y=\"9\" width=\"13\" height=\"13\" rx=\"2\" ry=\"2\"></rect><path d=\"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1\"></path>\\n</svg>`;\nconst CornerLeftUp = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-corner-left-up\">\\n <polyline points=\"14 9 9 4 4 9\"></polyline><path d=\"M20 20h-7a4 4 0 0 1-4-4V4\"></path>\\n</svg>`;\nconst CreditCard = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-credit-card\">\\n <rect x=\"1\" y=\"4\" width=\"22\" height=\"16\" rx=\"2\" ry=\"2\"></rect><line x1=\"1\" y1=\"10\" x2=\"23\" y2=\"10\"></line>\\n</svg>`;\nconst DollarSign = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-dollar-sign\">\\n <line x1=\"12\" y1=\"1\" x2=\"12\" y2=\"23\"></line><path d=\"M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6\"></path>\\n</svg>`;\nconst Download = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-download\">\\n <path d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"></path><polyline points=\"7 10 12 15 17 10\"></polyline><line x1=\"12\" y1=\"15\" x2=\"12\" y2=\"3\"></line>\\n</svg>`;\nconst DownloadCloud = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-download-cloud\">\\n <polyline points=\"8 17 12 21 16 17\"></polyline><line x1=\"12\" y1=\"12\" x2=\"12\" y2=\"21\"></line><path d=\"M20.88 18.09A5 5 0 0 0 18 9h-1.26A8 8 0 1 0 3 16.29\"></path>\\n</svg>`;\nconst Edit = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-edit\">\\n <path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"></path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"></path>\\n</svg>`;\nconst Edit2 = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-edit-2\">\\n <path d=\"M17 3a2.828 2.828 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5L17 3z\"></path>\\n</svg>`;\nconst ExternalLink = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-external-link\">\\n <path d=\"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\"></path><polyline points=\"15 3 21 3 21 9\"></polyline><line x1=\"10\" y1=\"14\" x2=\"21\" y2=\"3\"></line>\\n</svg>`;\nconst Eye = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-eye\">\\n <path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"></path><circle cx=\"12\" cy=\"12\" r=\"3\"></circle>\\n</svg>`;\nconst EyeOff = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-eye-off\">\\n <path d=\"M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24\"></path><line x1=\"1\" y1=\"1\" x2=\"23\" y2=\"23\"></line>\\n</svg>`;\nconst File = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-file\">\\n <path d=\"M13 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z\"></path><polyline points=\"13 2 13 9 20 9\"></polyline>\\n</svg>`;\nconst FilePlus = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-file-plus\">\\n <path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"></path><polyline points=\"14 2 14 8 20 8\"></polyline><line x1=\"12\" y1=\"18\" x2=\"12\" y2=\"12\"></line><line x1=\"9\" y1=\"15\" x2=\"15\" y2=\"15\"></line>\\n</svg>`;\nconst FileText = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-file-text\">\\n <path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"></path><polyline points=\"14 2 14 8 20 8\"></polyline><line x1=\"16\" y1=\"13\" x2=\"8\" y2=\"13\"></line><line x1=\"16\" y1=\"17\" x2=\"8\" y2=\"17\"></line><polyline points=\"10 9 9 9 8 9\"></polyline>\\n</svg>`;\nconst Filter = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-filter\">\\n <polygon points=\"22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3\"></polygon>\\n</svg>`;\nconst Flag = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-flag\">\\n <path d=\"M4 15s1-1 4-1 5 2 8 2 4-1 4-1V3s-1 1-4 1-5-2-8-2-4 1-4 1z\"></path><line x1=\"4\" y1=\"22\" x2=\"4\" y2=\"15\"></line>\\n</svg>`;\nconst Folder = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-folder\">\\n <path d=\"M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z\"></path>\\n</svg>`;\nconst Hash = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-hash\">\\n <line x1=\"4\" y1=\"9\" x2=\"20\" y2=\"9\"></line><line x1=\"4\" y1=\"15\" x2=\"20\" y2=\"15\"></line><line x1=\"10\" y1=\"3\" x2=\"8\" y2=\"21\"></line><line x1=\"16\" y1=\"3\" x2=\"14\" y2=\"21\"></line>\\n</svg>`;\nconst HelpCircle = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-help-circle\">\\n <circle cx=\"12\" cy=\"12\" r=\"10\"></circle><path d=\"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3\"></path><line x1=\"12\" y1=\"17\" x2=\"12.01\" y2=\"17\"></line>\\n</svg>`;\nconst Home = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-home\">\\n <path d=\"M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z\"></path><polyline points=\"9 22 9 12 15 12 15 22\"></polyline>\\n</svg>`;\nconst Inbox = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-inbox\">\\n <polyline points=\"22 12 16 12 14 15 10 15 8 12 2 12\"></polyline><path d=\"M5.45 5.11L2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z\"></path>\\n</svg>`;\nconst Info = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-info\">\\n <circle cx=\"12\" cy=\"12\" r=\"10\"></circle><line x1=\"12\" y1=\"16\" x2=\"12\" y2=\"12\"></line><line x1=\"12\" y1=\"8\" x2=\"12.01\" y2=\"8\"></line>\\n</svg>`;\nconst Key = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-key\">\\n <path d=\"M21 2l-2 2m-7.61 7.61a5.5 5.5 0 1 1-7.778 7.778 5.5 5.5 0 0 1 7.777-7.777zm0 0L15.5 7.5m0 0l3 3L22 7l-3-3m-3.5 3.5L19 4\"></path>\\n</svg>`;\nconst Layers = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-layers\">\\n <polygon points=\"12 2 2 7 12 12 22 7 12 2\"></polygon><polyline points=\"2 17 12 22 22 17\"></polyline><polyline points=\"2 12 12 17 22 12\"></polyline>\\n</svg>`;\nconst Link2 = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-link-2\">\\n <path d=\"M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3\"></path><line x1=\"8\" y1=\"12\" x2=\"16\" y2=\"12\"></line>\\n</svg>`;\nconst List = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-list\">\\n <line x1=\"8\" y1=\"6\" x2=\"21\" y2=\"6\"></line><line x1=\"8\" y1=\"12\" x2=\"21\" y2=\"12\"></line><line x1=\"8\" y1=\"18\" x2=\"21\" y2=\"18\"></line><line x1=\"3\" y1=\"6\" x2=\"3.01\" y2=\"6\"></line><line x1=\"3\" y1=\"12\" x2=\"3.01\" y2=\"12\"></line><line x1=\"3\" y1=\"18\" x2=\"3.01\" y2=\"18\"></line>\\n</svg>`;\nconst Lock = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-lock\">\\n <rect x=\"3\" y=\"11\" width=\"18\" height=\"11\" rx=\"2\" ry=\"2\"></rect><path d=\"M7 11V7a5 5 0 0 1 10 0v4\"></path>\\n</svg>`;\nconst Mail = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-mail\">\\n <path d=\"M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z\"></path><polyline points=\"22,6 12,13 2,6\"></polyline>\\n</svg>`;\nconst MapPin = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-map-pin\">\\n <path d=\"M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z\"></path><circle cx=\"12\" cy=\"10\" r=\"3\"></circle>\\n</svg>`;\nconst Maximize = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-maximize\">\\n <path d=\"M8 3H5a2 2 0 0 0-2 2v3m18 0V5a2 2 0 0 0-2-2h-3m0 18h3a2 2 0 0 0 2-2v-3M3 16v3a2 2 0 0 0 2 2h3\"></path>\\n</svg>`;\nconst Maximize2 = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-maximize-2\">\\n <polyline points=\"15 3 21 3 21 9\"></polyline><polyline points=\"9 21 3 21 3 15\"></polyline><line x1=\"21\" y1=\"3\" x2=\"14\" y2=\"10\"></line><line x1=\"3\" y1=\"21\" x2=\"10\" y2=\"14\"></line>\\n</svg>`;\nconst Menu = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-menu\">\\n <line x1=\"3\" y1=\"12\" x2=\"21\" y2=\"12\"></line><line x1=\"3\" y1=\"6\" x2=\"21\" y2=\"6\"></line><line x1=\"3\" y1=\"18\" x2=\"21\" y2=\"18\"></line>\\n</svg>`;\nconst MessageCircle = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-message-circle\">\\n <path d=\"M21 11.5a8.38 8.38 0 0 1-.9 3.8 8.5 8.5 0 0 1-7.6 4.7 8.38 8.38 0 0 1-3.8-.9L3 21l1.9-5.7a8.38 8.38 0 0 1-.9-3.8 8.5 8.5 0 0 1 4.7-7.6 8.38 8.38 0 0 1 3.8-.9h.5a8.48 8.48 0 0 1 8 8v.5z\"></path>\\n</svg>`;\nconst Minimize2 = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-minimize-2\">\\n <polyline points=\"4 14 10 14 10 20\"></polyline><polyline points=\"20 10 14 10 14 4\"></polyline><line x1=\"14\" y1=\"10\" x2=\"21\" y2=\"3\"></line><line x1=\"3\" y1=\"21\" x2=\"10\" y2=\"14\"></line>\\n</svg>`;\nconst Minus = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-minus\">\\n <line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"></line>\\n</svg>`;\nconst MinusCircle = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-minus-circle\">\\n <circle cx=\"12\" cy=\"12\" r=\"10\"></circle><line x1=\"8\" y1=\"12\" x2=\"16\" y2=\"12\"></line>\\n</svg>`;\nconst MoreHorizontal = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-more-horizontal\">\\n <circle cx=\"12\" cy=\"12\" r=\"1\"></circle><circle cx=\"19\" cy=\"12\" r=\"1\"></circle><circle cx=\"5\" cy=\"12\" r=\"1\"></circle>\\n</svg>`;\nconst MoreVertical = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-more-vertical\">\\n <circle cx=\"12\" cy=\"12\" r=\"1\"></circle><circle cx=\"12\" cy=\"5\" r=\"1\"></circle><circle cx=\"12\" cy=\"19\" r=\"1\"></circle>\\n</svg>`;\nconst Paperclip = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-paperclip\">\\n <path d=\"M21.44 11.05l-9.19 9.19a6 6 0 0 1-8.49-8.49l9.19-9.19a4 4 0 0 1 5.66 5.66l-9.2 9.19a2 2 0 0 1-2.83-2.83l8.49-8.48\"></path>\\n</svg>`;\nconst Percent = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-percent\">\\n <line x1=\"19\" y1=\"5\" x2=\"5\" y2=\"19\"></line><circle cx=\"6.5\" cy=\"6.5\" r=\"2.5\"></circle><circle cx=\"17.5\" cy=\"17.5\" r=\"2.5\"></circle>\\n</svg>`;\nconst Phone = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-phone\">\\n <path d=\"M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z\"></path>\\n</svg>`;\nconst PieChart = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-pie-chart\">\\n <path d=\"M21.21 15.89A10 10 0 1 1 8 2.83\"></path><path d=\"M22 12A10 10 0 0 0 12 2v10z\"></path>\\n</svg>`;\nconst PlayCircle = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-play-circle\">\\n <circle cx=\"12\" cy=\"12\" r=\"10\"></circle><polygon points=\"10 8 16 12 10 16 10 8\"></polygon>\\n</svg>`;\nconst Plus = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-plus\">\\n <line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\"></line><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"></line>\\n</svg>`;\nconst PlusCircle = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-plus-circle\">\\n <circle cx=\"12\" cy=\"12\" r=\"10\"></circle><line x1=\"12\" y1=\"8\" x2=\"12\" y2=\"16\"></line><line x1=\"8\" y1=\"12\" x2=\"16\" y2=\"12\"></line>\\n</svg>`;\nconst Power = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-power\">\\n <path d=\"M18.36 6.64a9 9 0 1 1-12.73 0\"></path><line x1=\"12\" y1=\"2\" x2=\"12\" y2=\"12\"></line>\\n</svg>`;\nconst Printer = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-printer\">\\n <polyline points=\"6 9 6 2 18 2 18 9\"></polyline><path d=\"M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2\"></path><rect x=\"6\" y=\"14\" width=\"12\" height=\"8\"></rect>\\n</svg>`;\nconst RefreshCw = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-refresh-cw\">\\n <polyline points=\"23 4 23 10 17 10\"></polyline><polyline points=\"1 20 1 14 7 14\"></polyline><path d=\"M3.51 9a9 9 0 0 1 14.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0 0 20.49 15\"></path>\\n</svg>`;\nconst RotateCw = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-rotate-cw\">\\n <polyline points=\"23 4 23 10 17 10\"></polyline><path d=\"M20.49 15a9 9 0 1 1-2.12-9.36L23 10\"></path>\\n</svg>`;\nconst Save = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-save\">\\n <path d=\"M19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11l5 5v11a2 2 0 0 1-2 2z\"></path><polyline points=\"17 21 17 13 7 13 7 21\"></polyline><polyline points=\"7 3 7 8 15 8\"></polyline>\\n</svg>`;\nconst Search = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-search\">\\n <circle cx=\"11\" cy=\"11\" r=\"8\"></circle><line x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\"></line>\\n</svg>`;\nconst Send = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-send\">\\n <line x1=\"22\" y1=\"2\" x2=\"11\" y2=\"13\"></line><polygon points=\"22 2 15 22 11 13 2 9 22 2\"></polygon>\\n</svg>`;\nconst Settings = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-settings\">\\n <circle cx=\"12\" cy=\"12\" r=\"3\"></circle><path d=\"M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z\"></path>\\n</svg>`;\nconst Share = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-share\">\\n <path d=\"M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8\"></path><polyline points=\"16 6 12 2 8 6\"></polyline><line x1=\"12\" y1=\"2\" x2=\"12\" y2=\"15\"></line>\\n</svg>`;\nconst Shield = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-shield\">\\n <path d=\"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z\"></path>\\n</svg>`;\nconst Sidebar = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-sidebar\">\\n <rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\" ry=\"2\"></rect><line x1=\"9\" y1=\"3\" x2=\"9\" y2=\"21\"></line>\\n</svg>`;\nconst Slash = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-slash\">\\n <circle cx=\"12\" cy=\"12\" r=\"10\"></circle><line x1=\"4.93\" y1=\"4.93\" x2=\"19.07\" y2=\"19.07\"></line>\\n</svg>`;\nconst Smile = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-smile\">\\n <circle cx=\"12\" cy=\"12\" r=\"10\"></circle><path d=\"M8 14s1.5 2 4 2 4-2 4-2\"></path><line x1=\"9\" y1=\"9\" x2=\"9.01\" y2=\"9\"></line><line x1=\"15\" y1=\"9\" x2=\"15.01\" y2=\"9\"></line>\\n</svg>`;\nconst Star = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-star\">\\n <polygon points=\"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2\"></polygon>\\n</svg>`;\nconst Sun = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-sun\">\\n <circle cx=\"12\" cy=\"12\" r=\"5\"></circle><line x1=\"12\" y1=\"1\" x2=\"12\" y2=\"3\"></line><line x1=\"12\" y1=\"21\" x2=\"12\" y2=\"23\"></line><line x1=\"4.22\" y1=\"4.22\" x2=\"5.64\" y2=\"5.64\"></line><line x1=\"18.36\" y1=\"18.36\" x2=\"19.78\" y2=\"19.78\"></line><line x1=\"1\" y1=\"12\" x2=\"3\" y2=\"12\"></line><line x1=\"21\" y1=\"12\" x2=\"23\" y2=\"12\"></line><line x1=\"4.22\" y1=\"19.78\" x2=\"5.64\" y2=\"18.36\"></line><line x1=\"18.36\" y1=\"5.64\" x2=\"19.78\" y2=\"4.22\"></line>\\n</svg>`;\nconst Tag = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-tag\">\\n <path d=\"M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z\"></path><line x1=\"7\" y1=\"7\" x2=\"7.01\" y2=\"7\"></line>\\n</svg>`;\nconst Target = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-target\">\\n <circle cx=\"12\" cy=\"12\" r=\"10\"></circle><circle cx=\"12\" cy=\"12\" r=\"6\"></circle><circle cx=\"12\" cy=\"12\" r=\"2\"></circle>\\n</svg>`;\nconst Trash2 = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-trash-2\">\\n <polyline points=\"3 6 5 6 21 6\"></polyline><path d=\"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2\"></path><line x1=\"10\" y1=\"11\" x2=\"10\" y2=\"17\"></line><line x1=\"14\" y1=\"11\" x2=\"14\" y2=\"17\"></line>\\n</svg>`;\nconst TrendingDown = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-trending-down\">\\n <polyline points=\"23 18 13.5 8.5 8.5 13.5 1 6\"></polyline><polyline points=\"17 18 23 18 23 12\"></polyline>\\n</svg>`;\nconst TrendingUp = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-trending-up\">\\n <polyline points=\"23 6 13.5 15.5 8.5 10.5 1 18\"></polyline><polyline points=\"17 6 23 6 23 12\"></polyline>\\n</svg>`;\nconst Unlock = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-unlock\">\\n <rect x=\"3\" y=\"11\" width=\"18\" height=\"11\" rx=\"2\" ry=\"2\"></rect><path d=\"M7 11V7a5 5 0 0 1 9.9-1\"></path>\\n</svg>`;\nconst UploadCloud = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-upload-cloud\">\\n <polyline points=\"16 16 12 12 8 16\"></polyline><line x1=\"12\" y1=\"12\" x2=\"12\" y2=\"21\"></line><path d=\"M20.39 18.39A5 5 0 0 0 18 9h-1.26A8 8 0 1 0 3 16.3\"></path><polyline points=\"16 16 12 12 8 16\"></polyline>\\n</svg>`;\nconst User = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-user\">\\n <path d=\"M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2\"></path><circle cx=\"12\" cy=\"7\" r=\"4\"></circle>\\n</svg>`;\nconst UserCheck = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-user-check\">\\n <path d=\"M16 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"></path><circle cx=\"8.5\" cy=\"7\" r=\"4\"></circle><polyline points=\"17 11 19 13 23 9\"></polyline>\\n</svg>`;\nconst UserPlus = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-user-plus\">\\n <path d=\"M16 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"></path><circle cx=\"8.5\" cy=\"7\" r=\"4\"></circle><line x1=\"20\" y1=\"8\" x2=\"20\" y2=\"14\"></line><line x1=\"23\" y1=\"11\" x2=\"17\" y2=\"11\"></line>\\n</svg>`;\nconst Users = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-users\">\\n <path d=\"M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"></path><circle cx=\"9\" cy=\"7\" r=\"4\"></circle><path d=\"M23 21v-2a4 4 0 0 0-3-3.87\"></path><path d=\"M16 3.13a4 4 0 0 1 0 7.75\"></path>\\n</svg>`;\nconst X = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-x\">\\n <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"></line><line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"></line>\\n</svg>`;\nconst XCircle = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-x-circle\">\\n <circle cx=\"12\" cy=\"12\" r=\"10\"></circle><line x1=\"15\" y1=\"9\" x2=\"9\" y2=\"15\"></line><line x1=\"9\" y1=\"9\" x2=\"15\" y2=\"15\"></line>\\n</svg>`;\nconst XSquare = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-x-square\">\\n <rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\" ry=\"2\"></rect><line x1=\"9\" y1=\"9\" x2=\"15\" y2=\"15\"></line><line x1=\"15\" y1=\"9\" x2=\"9\" y2=\"15\"></line>\\n</svg>`;\nconst ZoomIn = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-zoom-in\">\\n <circle cx=\"11\" cy=\"11\" r=\"8\"></circle><line x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\"></line><line x1=\"11\" y1=\"8\" x2=\"11\" y2=\"14\"></line><line x1=\"8\" y1=\"11\" x2=\"14\" y2=\"11\"></line>\\n</svg>`;\nconst ZoomOut = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-zoom-out\">\\n <circle cx=\"11\" cy=\"11\" r=\"8\"></circle><line x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\"></line><line x1=\"8\" y1=\"11\" x2=\"14\" y2=\"11\"></line>\\n</svg>`;\nconst PinActive = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M12 15L12 23\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M6 1H18L15 4L16 12.5L20 15H4L8 12.5L9 4L6 1Z\" fill=\"currentColor\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>`;\nconst PinInactive = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M12 15L12 23\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M6 1H18L15 4L16 12.5L20 15H4L8 12.5L9 4L6 1Z\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>`;\nconst Documents = `<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" ><path stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M8.75 6c-.464 0-.91.169-1.237.469C7.184 6.769 7 7.176 7 7.6v12.8c0 .424.184.831.513 1.131.328.3.773.469 1.237.469h10.5c.464 0 .91-.169 1.237-.469.329-.3.513-.707.513-1.131V8a2 2 0 0 0-2-2H8.75z\" /> <path stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M7 18H4.75c-.464 0-.91-.169-1.237-.469A1.534 1.534 0 0 1 3 16.4V3.6c0-.424.184-.831.513-1.131C3.84 2.169 4.286 2 4.75 2H15a2 2 0 0 1 2 2v2M17 14h-6M17 18h-6M13 10h-2\"/></svg>`;\nconst Exchange = `<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\"><path stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M14.5 4l4 4-4 4M9 20l-4-4 4-4M3 8h15M6 16h15\"/></svg>`;\nconst Reorder = `<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\"> <path stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M0,9 l24,0\"/><path stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M0,15 l24,0\"/></svg>`;\nconst Reorder2 = `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" fill=\"none\"><path fill=\"currentColor\" d=\"M8 5h3v3H8zM8 11h3v3H8zM8 17h3v3H8zM13 5h3v3h-3zM13 11h3v3h-3zM13 17h3v3h-3z\"/></svg>`;\nconst Reply = `<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\"> <path stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 17l-5-5 5-5\"/><path stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M20 17v-1a4 4 0 0 0-4-4H4\"/></svg>`;\nconst ReplyAll = `<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\"> <path stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M11 17l-5-5 5-5\"/> <path stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M7 17l-5-5 5-5\"/><path stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M22 17v-1a4 4 0 0 0-4-4H6\"/></svg>`;\nconst SupportChat = `<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\"><path stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3\"/><path stroke=\"currentColor\" stroke-linecap=\"round\" d=\"M12 16v1\"/> <path stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M14.562 20.63a9 9 0 1 1 3.666-2.133 5.014 5.014 0 0 0 2.272 2.834A4.977 4.977 0 0 1 18 22a4.983 4.983 0 0 1-3.438-1.37z\"/></svg>`;\n\nexport const icons = {\n Activity,\n AlertCircle,\n AlertOctagon,\n AlertTriangle,\n AlignLeft,\n Anchor,\n Archive,\n ArrowDown,\n ArrowDownLeft,\n ArrowLeft,\n ArrowLeftCircle,\n ArrowRight,\n ArrowUp,\n ArrowUpRight,\n AtSign,\n BarChart2,\n Bell,\n Briefcase,\n Book,\n BookOpen,\n Calendar,\n Check,\n CheckCircle,\n CheckSquare,\n ChevronDown,\n ChevronLeft,\n ChevronRight,\n ChevronsLeft,\n ChevronsRight,\n ChevronUp,\n Clipboard,\n Clock,\n Coffee,\n Copy,\n CornerLeftUp,\n CreditCard,\n DollarSign,\n Documents,\n Download,\n DownloadCloud,\n Edit,\n Edit2,\n Exchange,\n ExternalLink,\n Eye,\n EyeOff,\n Folder,\n File,\n FilePlus,\n FileText,\n Filter,\n Flag,\n Hash,\n HelpCircle,\n Home,\n Inbox,\n Info,\n Key,\n Layers,\n Link2,\n List,\n Lock,\n Mail,\n MapPin,\n Maximize,\n Maximize2,\n Menu,\n MessageCircle,\n Minimize2,\n Minus,\n MinusCircle,\n MoreHorizontal,\n MoreVertical,\n Paperclip,\n Phone,\n Percent,\n PieChart,\n PinActive,\n PinInactive,\n PlayCircle,\n Plus,\n PlusCircle,\n Power,\n Printer,\n RefreshCw,\n Reorder,\n Reorder2,\n Reply,\n ReplyAll,\n RotateCw,\n Save,\n Search,\n Send,\n Settings,\n Share,\n Shield,\n Sidebar,\n Slash,\n Smile,\n Star,\n Sun,\n SupportChat,\n Tag,\n Target,\n Trash2,\n TrendingDown,\n TrendingUp,\n Unlock,\n UploadCloud,\n User,\n UserCheck,\n UserPlus,\n Users,\n X,\n XCircle,\n XSquare,\n ZoomIn,\n ZoomOut,\n};\n\nexport type IconNames = keyof typeof icons;\n\nexport const IconSizes = [8, 12, 16, 24] as const;\n\nexport type IconSize = (typeof IconSizes)[number];\n\nexport const iconsMap: { [key: string]: string } = {};\nfor (const key in icons) {\n iconsMap[key] = icons[<keyof typeof icons>key];\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostBinding,\n Input,\n OnDestroy,\n} from '@angular/core';\nimport { CacheResult, DomCache } from './dom-cache';\nimport { IconNames, IconSize, iconsMap } from './icons';\n\nconst cache = new DomCache<IconNames, ChildNode>(value => {\n const svgText = iconsMap[value];\n const parser = new DOMParser();\n const svg = parser.parseFromString(svgText, 'text/xml');\n return svg.documentElement;\n});\n\n@Component({\n selector: 'riv-icon',\n templateUrl: './icon.component.html',\n styleUrls: ['./icon.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class IconComponent implements OnDestroy {\n private cached: CacheResult<ChildNode> | undefined;\n\n constructor(private readonly element: ElementRef<HTMLElement>) {}\n\n @Input()\n set name(value: IconNames | null) {\n if (this.cached) {\n this.cached.value.remove();\n this.cached.cleanup();\n this.cached = undefined;\n }\n\n if (value == null) {\n return;\n }\n\n this.cached = cache.get(value);\n this.element.nativeElement.append(this.cached.value);\n }\n\n @Input()\n size: IconSize = 24;\n\n @Input()\n customSize: number | undefined;\n\n @HostBinding('style.width.px')\n @HostBinding('style.height.px')\n get iconSize() {\n return this.customSize ? this.customSize : this.size;\n }\n\n @Input()\n strokeWidth: number | undefined;\n\n @HostBinding('style.stroke-width')\n get calculateStrokeWidth() {\n return this.strokeWidth ? this.strokeWidth : 24 / this.iconSize;\n }\n\n ngOnDestroy() {\n this.name = null;\n }\n}\n","","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n selector: 'riv-text-toggle',\n templateUrl: './text-toggle.component.html',\n styleUrls: ['./text-toggle.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TextToggleComponent {\n @Input()\n showLabel: string = '';\n\n @Input()\n hideLabel: string = '';\n\n @Input()\n open: boolean = false;\n}\n","<button class=\"toggle\" type=\"button\" (click)=\"open = !open\">\n <riv-icon *ngIf=\"open\" [name]=\"'ChevronDown'\" [size]=\"24\"></riv-icon>\n <riv-icon *ngIf=\"!open\" [name]=\"'ChevronRight'\" [size]=\"24\"></riv-icon>\n <div>{{ open ? hideLabel : showLabel }}</div>\n</button>\n<div *ngIf=\"open\">\n <ng-content></ng-content>\n</div>\n","import { Injectable, TemplateRef } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class CalloutService {\n public calloutStack$ = new BehaviorSubject<TemplateRef<unknown>[]>([]);\n\n public add(callout: TemplateRef<unknown>) {\n this.calloutStack$.next([...this.calloutStack$.getValue(), callout]);\n }\n\n public remove(callout: TemplateRef<unknown>) {\n this.calloutStack$.next(\n this.calloutStack$.getValue().filter(c => c !== callout),\n );\n }\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { CalloutService } from './callout.service';\n\n@Component({\n selector: 'riv-callout-outlet',\n templateUrl: './callout-outlet.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CalloutOutletComponent {\n constructor(readonly calloutService: CalloutService) {}\n}\n","<ng-container *ngFor=\"let callout of calloutService.calloutStack$ | async\">\n <ng-container *ngTemplateOutlet=\"callout\"></ng-container>\n</ng-container>\n","export const AnchoredPositions = [\n 'top-left',\n 'top-center',\n 'top-right',\n 'center-right',\n 'bottom-right',\n 'bottom-center',\n 'bottom-left',\n 'center-left',\n] as const;\n\nexport type AnchoredPosition = (typeof AnchoredPositions)[number];\n\nexport type Direction = 'clockwise' | 'counter-clockwise';\n\ntype Dimensions = {\n width: number;\n height: number;\n};\n\ntype Point = {\n x: number;\n y: number;\n};\n\nexport type Box = Point & Dimensions;\n\nexport type Anchor = Point & { position: AnchoredPosition };\n\nexport function getOrigin(\n anchor: Box,\n client: Dimensions,\n viewportSize: Dimensions,\n preferredPosition: AnchoredPosition,\n allowedPositions: AnchoredPosition[] | null = null,\n fallbackDirection: Direction,\n additionalOffset: number,\n): Anchor {\n let position = preferredPosition;\n const allowed =\n !allowedPositions || allowedPositions.length === 0\n ? AnchoredPositions\n : allowedPositions;\n let index = allowed.indexOf(position);\n let leastClippedIndex = index;\n let origin = originAtPosition(anchor, client, position, additionalOffset);\n let currentClippedX;\n let currentClippedY;\n let leastClipped = Infinity;\n let foundUnclipped = false;\n // Iterate through allowed positions. The first one we find that doesn't clip out of view, we use.\n // If all of the positions clip, use the one which clipped the least.\n for (\n let checkCount = 0;\n checkCount <= allowed.length && !foundUnclipped;\n checkCount++,\n index =\n fallbackDirection === 'clockwise'\n ? (index + 1) % allowed.length\n : (index - 1 + allowed.length) % allowed.length\n ) {\n position = allowed[index];\n origin = originAtPosition(anchor, client, position, additionalOffset);\n currentClippedX =\n -1 *\n Math.min(origin.x, viewportSize.width - (origin.x + client.width), 0);\n currentClippedY =\n -1 *\n Math.min(origin.y, viewportSize.height - (origin.y + client.height), 0);\n if (currentClippedX > 0 || currentClippedY > 0) {\n if (leastClipped > currentClippedX + currentClippedY) {\n leastClipped = currentClippedX + currentClippedY;\n leastClippedIndex = index;\n }\n } else {\n foundUnclipped = true;\n }\n }\n if (!foundUnclipped) {\n position = allowed[leastClippedIndex];\n origin = originAtPosition(anchor, client, position, additionalOffset);\n origin.y = origin.y < 0 ? 4 : origin.y;\n }\n return { ...origin, position };\n}\n\nexport function originAtPosition(\n anchor: Box,\n client: Dimensions,\n position: AnchoredPosition,\n offset: number,\n): Point {\n switch (position) {\n case 'top-left':\n return {\n x: anchor.x + anchor.width - client.width,\n y: anchor.y - client.height - offset,\n };\n case 'top-center':\n return {\n x: anchor.x + anchor.width / 2 - client.width / 2,\n y: anchor.y - client.height - offset,\n };\n case 'top-right':\n return {\n x: anchor.x,\n y: anchor.y - client.height - offset,\n };\n case 'center-right':\n return {\n x: anchor.x + anchor.width + offset,\n y: anchor.y + anchor.height / 2 - client.height / 2,\n };\n case 'bottom-right':\n return {\n x: anchor.x,\n y: anchor.y + anchor.height + offset,\n };\n case 'bottom-center':\n return {\n x: anchor.x + anchor.width / 2 - client.width / 2,\n y: anchor.y + anchor.height + offset,\n };\n case 'bottom-left':\n return {\n x: anchor.x + anchor.width - client.width,\n y: anchor.y + anchor.height + offset,\n };\n case 'center-left':\n return {\n x: anchor.x - client.width - offset,\n y: anchor.y + anchor.height / 2 - client.height / 2,\n };\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n Output,\n ViewChild,\n} from '@angular/core';\nimport {\n AnchoredPosition,\n AnchoredPositions,\n Direction,\n getOrigin,\n} from './callout-position';\n\n// TODO: once we upgrade to Angular 16, this component can be cleaned up with\n// signals instead of lifecycle hooks.\n@Component({\n selector: 'riv-callout',\n templateUrl: './callout.component.html',\n styleUrls: ['./callout.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CalloutComponent implements AfterViewInit {\n constructor(private readonly cdr: ChangeDetectorRef) {}\n\n @Input()\n anchor: Element | DOMRect | null = null;\n\n @Input()\n isModal: boolean = true;\n\n @Input()\n preferredPosition: AnchoredPosition = 'bottom-right';\n\n @Input()\n allowedPositions: AnchoredPosition[] = [...AnchoredPositions];\n\n @Input()\n fallbackDirection: Direction = 'counter-clockwise';\n\n @Input()\n showCaret: boolean = true;\n\n @Input()\n theme: 'light' | 'dark' = 'dark';\n\n @ViewChild('content') content: ElementRef<HTMLDivElement> | null = null;\n\n @ViewChild('scrim', { static: false }) scrim: ElementRef<HTMLElement> | null =\n null;\n\n scrimClick(evt: MouseEvent) {\n if (evt.target === this.scrim?.nativeElement) {\n this.close.emit();\n }\n }\n\n left: number = 0;\n top: number = 0;\n resolvedPosition: AnchoredPosition = this.preferredPosition;\n\n async ngAfterViewInit() {\n await Promise.resolve();\n\n const windowSize = {\n width: window.innerWidth,\n height: window.innerHeight,\n };\n\n if (this.anchor === null || this.content === null || this.scrim === null)\n return;\n\n const scrimRect = this.scrim.nativeElement.getBoundingClientRect();\n\n const anchorRect =\n this.anchor instanceof Element\n ? this.anchor.getBoundingClientRect()\n : this.anchor;\n\n const anchorBounds = {\n x: anchorRect.left - scrimRect.left, // In most cases, the scrim will be positioned at (0,0), but if it's not, this will make sure the callout is positioned correctly regardless.\n y: anchorRect.top - scrimRect.top,\n width: anchorRect.right - anchorRect.left,\n height: anchorRect.bottom - anchorRect.top,\n };\n\n const calloutSize = {\n width: this.content.nativeElement.clientWidth,\n height: this.content.nativeElement.clientHeight,\n };\n\n const calloutOrigin = getOrigin(\n anchorBounds,\n calloutSize,\n windowSize,\n this.preferredPosition,\n this.allowedPositions,\n this.fallbackDirection,\n this.showCaret ? 8 : 0,\n );\n\n this.left = calloutOrigin.x;\n this.top = calloutOrigin.y;\n this.resolvedPosition = calloutOrigin.position;\n this.cdr.markForCheck();\n }\n\n @Output()\n readonly close = new EventEmitter();\n}\n","<div\n #scrim\n class=\"scrim\"\n [class.full]=\"isModal\"\n (click)=\"$event.stopPropagation(); scrimClick($event)\"\n>\n <div\n class=\"callout\"\n [ngClass]=\"[theme, resolvedPosition]\"\n [class.caret]=\"showCaret\"\n [style.left.px]=\"left\"\n [style.top.px]=\"top\"\n #content\n >\n <ng-content></ng-content>\n </div>\n</div>\n","import { Directive, OnDestroy, OnInit, TemplateRef } from '@angular/core';\nimport { CalloutService } from './callout.service';\n\n@Directive({\n selector: '[riv-callout]',\n})\nexport class CalloutDirective implements OnInit, OnDestroy {\n constructor(\n private readonly template: TemplateRef<unknown>,\n private readonly calloutService: CalloutService,\n ) {}\n\n ngOnInit() {\n this.calloutService.add(this.template);\n }\n\n ngOnDestroy() {\n this.calloutService.remove(this.template);\n }\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n selector: 'riv-zero-state',\n template: `{{ message }}`,\n styleUrls: ['./zero-state.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ZeroStateComponent {\n @Input()\n message: string = 'No data to display.';\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { arc, pie } from 'd3-shape';\n\nexport type DonutDataPoint = {\n value: number;\n colorToken: string;\n};\n\n@Component({\n selector: 'riv-donut',\n templateUrl: './donut.component.html',\n styleUrls: ['./donut.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DonutComponent {\n @Input()\n displayLabel: string = '';\n\n @Input()\n displayValue: string = '';\n\n @Input()\n data: DonutDataPoint[] = [];\n\n readonly HEIGHT = 256;\n\n get arcPaths() {\n const outer = (this.HEIGHT / 2) * 0.9;\n const inner = outer - 12;\n const pieArcs = pie<DonutDataPoint>()\n .sortValues(null)\n .value(d => d.value)(this.data);\n return pieArcs.map(pieArc =>\n arc<DonutDataPoint>()\n .innerRadius(inner)\n .outerRadius(outer)\n .padAngle(0.013)\n .startAngle(pieArc.startAngle)\n .endAngle(pieArc.endAngle)(pieArc.data),\n );\n }\n\n getFillStyle(idx: number): string {\n return `var(${this.data[idx].colorToken})`;\n }\n\n get empty(): boolean {\n return (\n this.data.length === 0 || this.data.every(point => point.value === 0)\n );\n }\n}\n","<div *ngIf=\"!empty; else zeroState\" class=\"container\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"100%\"\n [attr.height]=\"HEIGHT\"\n viewBox=\"-128 -128 256 256\"\n >\n <path\n *ngFor=\"let path of arcPaths; let i = index\"\n [attr.d]=\"path\"\n [attr.fill]=\"getFillStyle(i)\"\n ></path>\n </svg>\n <div class=\"display\">\n <div class=\"value\">{{ displayValue }}</div>\n <div class=\"label\">{{ displayLabel }}</div>\n </div>\n</div>\n\n<ng-template #zeroState>\n <riv-zero-state></riv-zero-state>\n</ng-template>\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n} from '@angular/core';\n\n@Component({\n selector: 'riv-legend-item',\n templateUrl: './legend-item.component.html',\n styleUrls: ['./legend-item.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LegendItemComponent {\n @Input()\n label: string = '';\n\n @Input()\n colorToken: string = '';\n\n @Input()\n style: 'solid' | 'striped' = 'solid';\n\n @Input()\n visibility: 'visible' | 'hidden' | 'locked' = 'visible';\n\n get backgroundColor(): string {\n return `var(${this.colorToken})`;\n }\n\n @Output()\n itemClick = new EventEmitter();\n}\n","<button (click)=\"itemClick.emit()\">\n <i\n *ngIf=\"visibility === 'visible'\"\n [class.striped]=\"style === 'striped'\"\n [style.background-color]=\"backgroundColor\"\n ></i>\n <riv-icon\n *ngIf=\"visibility === 'hidden'\"\n name=\"EyeOff\"\n [size]=\"16\"\n ></riv-icon>\n <riv-icon *ngIf=\"visibility === 'locked'\" name=\"Lock\" [size]=\"16\"></riv-icon>\n</button>\n<span [class.low-contrast]=\"visibility === 'hidden' || visibility === 'locked'\">\n {{ label }}\n</span>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n selector: 'riv-metric',\n templateUrl: './metric.component.html',\n styleUrls: ['./metric.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MetricComponent {\n @Input()\n label: string = '';\n\n @Input()\n value: string = '';\n\n @Input()\n card: boolean = false;\n}\n","<div *ngIf=\"card; else content\" class=\"card\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</div>\n<ng-template #content>\n <div class=\"label\">{{ label }}</div>\n <div class=\"value\">{{ value }}</div>\n</ng-template>\n","import { DecimalPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { ScaleLinear, scaleLinear } from 'd3-scale';\nimport { line } from 'd3-shape';\nimport {\n CountableTimeInterval,\n timeDay,\n timeMonth,\n timeWeek,\n timeYear,\n} from 'd3-time';\nimport { timeFormat } from 'd3-time-format';\nimport {\n BehaviorSubject,\n Observable,\n combineLatest,\n map,\n shareReplay,\n} from 'rxjs';\n\nexport type DataPoint = {\n value: number;\n date: Date;\n};\n\ntype Series = {\n label: string;\n colorToken: string;\n data: DataPoint[];\n style?: 'solid' | 'dashed';\n};\n\ntype YConfig = {\n pointReducer: (points: DataPoint[]) => number;\n valueFormatter: (reducedValue: number) => string;\n series: Series[];\n min?: number;\n max?: number;\n};\n\nexport type TimeSeriesInput = [YConfig] | [YConfig, YConfig];\n\nenum Interval {\n DAY = 'day',\n WEEK = 'week',\n MONTH = 'month',\n YEAR = 'year',\n}\n\ntype LegendItem = { label: string; colorToken: string };\n\ntype XTick = { value: number; label: string };\n\ntype Marker = DataPoint & { x: number; y: number };\n\ntype YDrawData = YConfig & {\n series: (Series & {\n path: string | null;\n stroke: string;\n markers: Marker[];\n })[];\n yMax: number;\n yMin: number;\n yScale: ScaleLinear<number, number, never>;\n yTicks: number[];\n};\n\ntype DrawData = {\n viewBox: string;\n x: {\n xScale: ScaleLinear<number, number, never>;\n xMinorTicks: XTick[];\n xMajorTicks: XTick[];\n xMax: Date;\n };\n y1: YDrawData;\n y2?: YDrawData;\n};\n\nfunction getTimeInterval(interval: Interval): CountableTimeInterval {\n switch (interval) {\n case Interval.DAY:\n return timeDay;\n case Interval.WEEK:\n return timeWeek;\n case Interval.MONTH:\n return timeMonth;\n case Interval.YEAR:\n return timeYear;\n }\n}\n\nfunction getDateRange(configs: YConfig[]): [Date, Date] {\n let min = Infinity;\n let max = -Infinity;\n for (const config of configs) {\n for (const series of config.series) {\n for (const { date } of series.data) {\n const value = date.valueOf();\n min = Math.min(min, value);\n max = Math.max(max, value);\n }\n }\n }\n return [new Date(min), new Date(max)];\n}\n\nfunction getMinorIntervalFormat(interval: Interval) {\n switch (interval) {\n case Interval.DAY:\n case Interval.WEEK:\n return '%-d';\n case Interval.MONTH:\n return '%b';\n case Interval.YEAR:\n return '%Y';\n }\n}\n\nfunction getMajorInterval(interval: Interval) {\n switch (interval) {\n case Interval.DAY:\n case Interval.WEEK:\n return Interval.MONTH;\n default:\n return Interval.YEAR;\n }\n}\n\nfunction getMajorIntervalFormat(interval: Interval) {\n switch (interval) {\n case Interval.YEAR:\n return '%Y';\n case Interval.MONTH:\n return '%b %Y';\n default:\n return '%d';\n }\n}\n\n// TODO: once we upgrade to Angular 16, this component can be cleaned up with\n// signals instead of RxJS. See commit e238c2d.\n@Component({\n selector: 'riv-time-series',\n templateUrl: './time-series.component.html',\n styleUrls: ['./time-series.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TimeSeriesComponent {\n private readonly input$ = new BehaviorSubject<TimeSeriesInput>([\n {\n pointReducer: points =>\n points.reduce((total, { value }) => total + value, 0),\n valueFormatter: v => new DecimalPipe('en-US').transform(v) ?? '',\n series: [],\n },\n ]);\n @Input()\n set input(v: TimeSeriesInput) {\n this.input$.next(v);\n }\n\n private readonly width$ = new BehaviorSubject<number>(960);\n @Input()\n set width(v: number) {\n this.width$.next(v);\n }\n\n private readonly height$ = new BehaviorSubject<number>(256);\n @Input()\n set height(v: number) {\n this.height$.next(v);\n }\n\n readonly BOTTOM_OFFSET = 24;\n readonly LEFT_OFFSET = 48;\n readonly TOP_PADDING = 16;\n readonly LEFT_RIGHT_PADDING = 8;\n readonly BOTTOM_PADDING = 8;\n readonly Y_TICK_COUNT = 5;\n readonly X_MINOR_TICK_LIMIT = 15;\n\n readonly dateRange$ = this.input$.pipe(\n map(getDateRange),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n\n readonly binInterval$ = this.dateRange$.pipe(\n map(([minDate, maxDate]) => {\n const diff = timeDay.count(new Date(minDate), new Date(maxDate));\n if (diff >= 365 * 3) {\n return Interval.YEAR;\n } else if (diff >= 365) {\n return Interval.MONTH;\n } else if (diff >= 90) {\n return Interval.WEEK;\n } else {\n return Interval.DAY;\n }\n }),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n\n readonly binnedData$ = combineLatest([this.input$, this.binInterval$]).pipe(\n map(([input, binInterval]) =>\n input.map((config): YConfig => {\n return {\n ...config,\n series: config.series.map(series => {\n const binned = new Map<number, DataPoint[]>();\n for (const point of series.data) {\n const bin = getTimeInterval(binInterval)\n .floor(point.date)\n .valueOf();\n if (!binned.has(bin)) {\n binned.set(bin, []);\n }\n binned.get(bin)!.push(point);\n }\n return {\n ...series,\n data: [...binned.entries()].map(([dateValue, points]) => ({\n date: new Date(dateValue),\n value: config.pointReducer(points),\n })),\n };\n }),\n };\n }),\n ),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n\n readonly binnedDateRange$ = this.binnedData$.pipe(\n map(getDateRange),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n\n readonly drawData$: Observable<DrawData> = combineLatest([\n this.binnedData$,\n this.binnedDateRange$,\n this.binInterval$,\n this.width$,\n this.height$,\n ]).pipe(\n map(([binnedData, binnedDateRange, binInterval, width, height]) => {\n const viewBox = `0 0 ${width} ${height}`;\n\n const xScale = scaleLinear()\n .domain(binnedDateRange)\n .range([\n this.LEFT_OFFSET + this.LEFT_RIGHT_PADDING,\n width - this.LEFT_RIGHT_PADDING * 2,\n ]);\n const xMinorIntervalFormat = getMinorIntervalFormat(binInterval);\n const [minDateValue, maxDateValue] = binnedDateRange;\n const minorFormatter = timeFormat(xMinorIntervalFormat);\n const xMinorTicks = getTimeInterval(binInterval)\n .range(minDateValue, timeDay.offset(maxDateValue, 1))\n .map(date => ({\n value: date.valueOf(),\n label: minorFormatter(date),\n }))\n .filter((_, i, arr) =>\n arr.length > this.X_MINOR_TICK_LIMIT\n ? i % Math.round(arr.length / this.X_MINOR_TICK_LIMIT) === 0\n : true,\n );\n const xMajorInterval = getMajorInterval(binInterval);\n const xMajorIntervalFormat = getMajorIntervalFormat(xMajorInterval);\n const timeInterval = getTimeInterval(xMajorInterval);\n const tickFloor = timeInterval.floor(minDateValue);\n const tickCeiling = timeInterval.ceil(timeDay.offset(maxDateValue, 1));\n const majorFormatter = timeFormat(xMajorIntervalFormat);\n const xMajorTicks = timeInterval\n .range(tickFloor, tickCeiling)\n .map(tickDate => ({\n label: xMajorInterval === binInterval ? '' : majorFormatter(tickDate),\n value: tickDate.valueOf(),\n }));\n const x = { xMax: maxDateValue, xScale, xMinorTicks, xMajorTicks };\n\n const [y1, y2] = binnedData.map(config => {\n const flattenedValues = config.series.reduce<number[]>(\n (values, series) => [\n ...values,\n ...series.data.map(({ value }) => value),\n ],\n [],\n );\n const yMax = config.max ?? Math.max(...flattenedValues);\n const yMin = config.min ?? Math.min(...flattenedValues, 0);\n const yScale = scaleLinear()\n .domain([yMin, yMax])\n .range([\n height -\n this.BOTTOM_OFFSET -\n (this.BOTTOM_PADDING + this.TOP_PADDING),\n this.TOP_PADDING,\n ]);\n const yTicks = yScale.ticks(this.Y_TICK_COUNT);\n const series = config.series.map(series => ({\n ...series,\n path: line<DataPoint>()\n .x(d => xScale(d.date))\n .y(d => yScale(d.value))(series.data),\n stroke: `var(${series.colorToken})`,\n markers: series.data.map(point => ({\n ...point,\n x: xScale(point.date),\n y: yScale(point.value),\n })),\n }));\n return {\n ...config,\n series,\n yMax,\n yMin,\n yScale,\n yTicks,\n };\n });\n\n // If we have a y2, coerce y1's ticks to be visually equivalent to y2's ticks.\n if (y2?.yTicks) {\n const tickConversionScale = scaleLinear()\n .range(y1.yScale.domain())\n .domain(y2.yScale.domain());\n y1.yTicks = y2.yTicks.map(tickConversionScale);\n }\n\n return { viewBox, x, y1, y2 };\n }),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n\n readonly legend$ = this.binnedData$.pipe(\n map(binnedData =>\n binnedData.reduce<LegendItem[]>(\n (items, config) => [\n ...items,\n ...config.series.map(series => ({\n label: series.label,\n colorToken: series.colorToken,\n })),\n ],\n [],\n ),\n ),\n );\n\n readonly empty$ = this.binnedData$.pipe(\n map(binnedData =>\n binnedData.every(config =>\n config.series.every(series => series.data.length === 0),\n ),\n ),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n\n readonly hoveredMarker$ = new BehaviorSubject<{\n event: MouseEvent;\n marker: Marker;\n } | null>(null);\n\n readonly callout$ = combineLatest([this.hoveredMarker$, this.drawData$]).pipe(\n map(([hoveredMarker, drawData]) => {\n if (!hoveredMarker) return null;\n\n const { target } = hoveredMarker.event;\n if (!target) return null;\n const markerRect = (<SVGCircleElement>target).getBoundingClientRect();\n const padding = 8;\n const anchor = new DOMRect(\n markerRect.left - padding,\n markerRect.top - padding,\n markerRect.width + padding * 2,\n markerRect.height + padding * 2,\n );\n\n type Metric = { label: string; value: string };\n const metrics: Metric[] = [];\n\n for (const series of drawData.y1.series) {\n const match = series.markers.find(\n marker => marker.x === hoveredMarker.marker.x,\n );\n if (match) {\n metrics.push({\n label: series.label,\n value: drawData.y1.valueFormatter(match.value),\n });\n }\n }\n\n if (drawData.y2) {\n for (const series of drawData.y2.series) {\n const match = series.markers.find(\n marker => marker.x === hoveredMarker.marker.x,\n );\n if (match) {\n metrics.push({\n label: series.label,\n value: drawData.y2.valueFormatter(match.value),\n });\n }\n }\n }\n\n return { anchor, metrics };\n }),\n );\n}\n","<div *ngIf=\"!(empty$ | async); else zeroState\" class=\"container\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n *ngIf=\"drawData$ | async; let d\"\n [attr.viewBox]=\"d.viewBox\"\n >\n <g *ngFor=\"let tick of d.x.xMajorTicks\">\n <rect\n class=\"tick\"\n [attr.x]=\"d.x.xScale(tick.value)\"\n y=\"0\"\n width=\"1\"\n [attr.height]=\"d.y1.yScale(d.y1.yMin)\"\n ></rect>\n <text\n class=\"x-major-tick-label\"\n [attr.x]=\"d.x.xScale(tick.value)\"\n [attr.y]=\"d.y1.yScale(d.y1.yMin)\"\n dx=\"4\"\n dy=\"-4\"\n >\n {{ tick.label }}\n </text>\n </g>\n <g *ngFor=\"let tick of d.x.xMinorTicks\">\n <text\n class=\"x-minor-tick-label\"\n [attr.x]=\"d.x.xScale(tick.value)\"\n [attr.y]=\"d.y1.yScale(d.y1.yMin)\"\n text-anchor=\"middle\"\n dominant-baseline=\"hanging\"\n dy=\"8\"\n >\n {{ tick.label }}\n <title>{{ tick.value | date }}</title>\n </text>\n </g>\n <g *ngFor=\"let tick of d.y1.yTicks\">\n <rect\n class=\"tick\"\n x=\"0\"\n [attr.y]=\"d.y1.yScale(tick)\"\n width=\"100%\"\n height=\"1\"\n ></rect>\n <text class=\"y-tick-label\" x=\"0\" [attr.y]=\"d.y1.yScale(tick)\" dy=\"-4\">\n {{ d.y1.valueFormatter(tick) }}\n </text>\n </g>\n\n <g *ngFor=\"let tick of d.y2?.yTicks\">\n <text\n class=\"y-tick-label\"\n [attr.x]=\"d.x.xScale(d.x.xMax)\"\n [attr.y]=\"d.y2?.yScale(tick)\"\n text-anchor=\"end\"\n dy=\"-4\"\n >\n {{ d.y2?.valueFormatter(tick) }}\n </text>\n </g>\n\n <g *ngIf=\"hoveredMarker$ | async; let hoveredMarker\">\n <line\n class=\"hover-rule\"\n [attr.x1]=\"hoveredMarker.marker.x\"\n [attr.y1]=\"d.y1.yScale(d.y1.yMin)\"\n [attr.x2]=\"hoveredMarker.marker.x\"\n [attr.y2]=\"d.y1.yScale(d.y1.yMax)\"\n stroke-width=\"2\"\n stroke-dasharray=\"4\"\n />\n </g>\n\n <ng-template #seriesTpl let-series=\"series\">\n <path\n class=\"data path\"\n [class.marker-hovered]=\"!!(hoveredMarker$ | async)\"\n [attr.d]=\"series.path\"\n fill=\"none\"\n stroke-width=\"2\"\n [attr.stroke]=\"series.stroke\"\n [attr.stroke-dasharray]=\"series.style === 'dashed' ? '4' : null\"\n ></path>\n <circle\n *ngFor=\"let marker of series.markers\"\n class=\"data marker\"\n [class.focused]=\"(hoveredMarker$ | async)?.marker?.x === marker.x\"\n [class.blurred]=\"\n (hoveredMarker$ | async) !== null &&\n (hoveredMarker$ | async)?.marker?.x !== marker.x\n \"\n [attr.cx]=\"marker.x\"\n [attr.cy]=\"marker.y\"\n r=\"3.5\"\n stroke-width=\"2\"\n [attr.stroke]=\"series.stroke\"\n (mouseover)=\"hoveredMarker$.next({ event: $event, marker: marker })\"\n (mouseleave)=\"hoveredMarker$.next(null)\"\n ></circle>\n </ng-template>\n <g *ngFor=\"let series of d.y1.series\">\n <ng-container\n *ngTemplateOutlet=\"seriesTpl; context: { series: series }\"\n ></ng-container>\n </g>\n <g *ngFor=\"let series of d.y2?.series\">\n <ng-container\n *ngTemplateOutlet=\"seriesTpl; context: { series: series }\"\n ></ng-container>\n </g>\n </svg>\n <legend>\n <riv-legend-item\n *ngFor=\"let item of legend$ | async\"\n [label]=\"item.label\"\n [colorToken]=\"item.colorToken\"\n ></riv-legend-item>\n </legend>\n</div>\n\n<ng-container *ngIf=\"callout$ | async; let callout\">\n <riv-callout\n *riv-callout\n [anchor]=\"callout.anchor\"\n [isModal]=\"false\"\n [preferredPosition]=\"'top-center'\"\n >\n <div class=\"callout-content\">\n <div class=\"callout-metric\" *ngFor=\"let metric of callout.metrics\">\n <div>{{ metric.label }}</div>\n <div class=\"callout-metric-value\">{{ metric.value }}</div>\n </div>\n </div>\n </riv-callout>\n</ng-container>\n\n<ng-template #zeroState>\n <riv-zero-state></riv-zero-state>\n</ng-template>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n selector: 'riv-data-table',\n styleUrls: ['./data-table.component.css'],\n template: '<table><ng-content></ng-content></table>',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DataTableComponent {}\n","import {\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n Input,\n} from '@angular/core';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: '[riv-data-table-row]',\n styleUrls: ['./data-table-row.component.css'],\n template: '<ng-content></ng-content>',\n})\nexport class DataTableRowComponent {\n @Input()\n @HostBinding('class.sub-row')\n public subRow: boolean = false;\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n OnInit,\n} from '@angular/core';\nimport { DataTableRowComponent } from './data-table-row.component';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: '[riv-data-table-cell]',\n styleUrls: ['./data-table-cell.component.css'],\n template: '<ng-content></ng-content>',\n})\nexport class DataTableCellComponent implements OnInit {\n constructor(private readonly row: DataTableRowComponent) {}\n\n @HostBinding('class.sub-cell')\n public subCell: boolean = false;\n\n ngOnInit(): void {\n this.subCell = this.row.subRow;\n }\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: '[riv-data-table-header-cell]',\n styleUrls: ['./data-table-header-cell.component.css'],\n template: '<ng-content></ng-content>',\n})\nexport class DataTableHeaderCellComponent {}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { index } from 'd3-array';\nimport { scaleBand, scaleLinear } from 'd3-scale';\nimport { stack } from 'd3-shape';\nimport { timeMonth } from 'd3-time';\nimport { timeFormat } from 'd3-time-format';\nimport { BehaviorSubject, combineLatest, map, shareReplay } from 'rxjs';\n\nfunction getDateRange(stacks: Stack[]): [Date, Date] {\n let min = Infinity;\n let max = -Infinity;\n for (const stack of stacks) {\n for (const series of stack) {\n for (const { date } of series.data) {\n const value = date.valueOf();\n min = Math.min(min, value);\n max = Math.max(max, value);\n }\n }\n }\n return [new Date(min), new Date(max)];\n}\n\nexport type Value = { date: Date; value: number };\n\nexport type Series = {\n label: string;\n colorToken: string;\n data: Value[];\n style?: 'solid' | 'striped';\n};\n\nexport type Stack = Series[];\n\n// TODO: once we upgrade to Angular 16, this component can be cleaned up with\n// signals instead of RxJS.\n@Component({\n selector: 'riv-stacked-column',\n templateUrl: './stacked-column.component.html',\n styleUrls: ['./stacked-column.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class StackedColumnComponent {\n private readonly input$ = new BehaviorSubject<Stack[]>([]);\n @Input()\n set input(v: Stack[]) {\n this.input$.next(v);\n }\n\n private readonly width$ = new BehaviorSubject<number>(960);\n @Input()\n set width(v: number) {\n this.width$.next(v);\n }\n\n private readonly height$ = new BehaviorSubject<number>(256);\n @Input()\n set height(v: number) {\n this.height$.next(v);\n }\n\n @Input()\n valueFormatter: (v: number) => string = v => v.toString();\n\n readonly drawData$ = combineLatest([\n this.input$,\n this.width$,\n this.height$,\n ]).pipe(\n map(([input, width, height]) => {\n const viewBox = `0 0 ${width} ${height}`;\n const padding = 8;\n\n const [minDate, maxDate] = getDateRange(input);\n const xSteps = timeMonth.range(\n timeMonth.floor(minDate),\n timeMonth.floor(timeMonth.offset(maxDate, 1)),\n );\n const xFormatter = timeFormat('%b');\n const xOuterScale = scaleBand()\n .domain(xSteps.map(date => xFormatter(date)))\n .range([0, width]);\n\n const columnWidth = 6;\n const columnPadding = 4;\n const outerPadding =\n (xOuterScale.bandwidth() -\n (columnPadding * (input.length - 1) + columnWidth * input.length)) /\n 2;\n\n type SeriesPoint = Value & { series: Series };\n\n const renderInformation = input.map(stackData => {\n const stackedTable = stackData.reduce<SeriesPoint[]>(\n (table, s) => [\n ...table,\n ...s.data.map(point => ({\n ...point,\n series: s,\n })),\n ],\n [],\n );\n const indexedTable: Map<Date, Map<string, SeriesPoint>> = index(\n stackedTable,\n d => d.date,\n d => d.series.label,\n );\n\n const stacked = stack<\n typeof indexedTable extends Map<infer K, infer V> ? [K, V] : never\n >()\n .keys(stackData.map(v => v.label))\n .value(([_, group], key) => {\n return group.get(key)!.value;\n })(indexedTable);\n\n return { indexedTable, stacked };\n });\n\n let domainMax = 0;\n renderInformation.forEach(({ stacked, indexedTable }) => {\n [...indexedTable.values()].forEach((pointMap, i) => {\n [...pointMap.values()].forEach((_, j) => {\n domainMax = Math.max(domainMax, ...stacked[j][i]);\n });\n });\n });\n const yScale = scaleLinear()\n .domain([0, domainMax])\n .range([height - padding * 2, padding]);\n\n const rects: {\n dateValue: number;\n x: number;\n y: number;\n width: number;\n height: number;\n fill: string;\n striped: boolean;\n seriesPoint: SeriesPoint;\n }[] = [];\n renderInformation.forEach(({ stacked, indexedTable }, index) => {\n [...indexedTable.entries()].forEach(([date, pointMap], i) => {\n [...pointMap.entries()].forEach(([_, seriesPoint], j) => {\n const [baseline, topline] = stacked[j][i];\n\n const width = columnWidth;\n const height = yScale(baseline) - yScale(topline);\n const x =\n (xOuterScale(xFormatter(date)) ?? 0) +\n outerPadding +\n columnWidth * index +\n columnPadding * index;\n const y = yScale(baseline) - height;\n const fill = `var(${seriesPoint.series.colorToken})`;\n\n rects.push({\n dateValue: date.valueOf(),\n x,\n y,\n width,\n height,\n fill,\n striped: seriesPoint.series.style === 'striped',\n seriesPoint,\n });\n });\n });\n });\n\n const xTicks = xSteps.map(date => ({\n dateValue: date.valueOf(),\n label: xFormatter(date),\n x: (xOuterScale(xFormatter(date)) ?? 0) + xOuterScale.bandwidth() / 2,\n }));\n const yTicks = yScale.ticks(5);\n\n const hoverBandWidth =\n renderInformation.length * columnWidth +\n (renderInformation.length + 1) * columnPadding;\n const hoverBands = xSteps.map(date => ({\n dateValue: date.valueOf(),\n x:\n (xOuterScale(xFormatter(date)) ?? 0) +\n (xOuterScale.bandwidth() - hoverBandWidth) / 2,\n y: yScale(domainMax),\n width: hoverBandWidth,\n height: yScale(0) - yScale(domainMax),\n }));\n\n return {\n columnWidth,\n hoverBands,\n rects,\n viewBox,\n xTicks,\n yScale,\n yTicks,\n };\n }),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n\n readonly empty$ = this.input$.pipe(\n map(input =>\n input.every(stack => stack.every(series => series.data.length === 0)),\n ),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n\n readonly hoveredBand$ = new BehaviorSubject<{\n dateValue: number;\n event: MouseEvent;\n } | null>(null);\n\n readonly callout$ = combineLatest([this.hoveredBand$, this.drawData$]).pipe(\n map(([hoveredBand, drawData]) => {\n if (!hoveredBand) return null;\n\n const { target } = hoveredBand.event;\n if (!target) return null;\n const anchor = (<SVGRectElement>target).getBoundingClientRect();\n\n type Metric = { label: string; value: string };\n const metrics: Metric[] = drawData.rects\n .filter(rect => rect.dateValue === hoveredBand.dateValue)\n .map(rect => ({\n label: rect.seriesPoint.series.label,\n value: this.valueFormatter(rect.seriesPoint.value),\n }));\n\n return { anchor, metrics };\n }),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n}\n","<div *ngIf=\"!(empty$ | async); else zeroState\" class=\"container\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n *ngIf=\"drawData$ | async; let d\"\n [attr.viewBox]=\"d.viewBox\"\n >\n <defs>\n <pattern\n id=\"stripes\"\n x=\"0\"\n y=\"0\"\n [attr.width]=\"d.columnWidth\"\n [attr.height]=\"d.columnWidth\"\n patternUnits=\"userSpaceOnUse\"\n >\n <line\n x1=\"0\"\n [attr.y1]=\"d.columnWidth\"\n [attr.x2]=\"d.columnWidth\"\n y2=\"0\"\n stroke=\"var(--white-100)\"\n stroke-width=\"1\"\n ></line>\n </pattern>\n </defs>\n <g *ngFor=\"let tick of d.xTicks\">\n <rect\n class=\"tick-background\"\n [class.focused]=\"(hoveredBand$ | async)?.dateValue === tick.dateValue\"\n [attr.x]=\"tick.x - 20\"\n [attr.y]=\"d.yScale(0) + 3\"\n width=\"40\"\n height=\"12\"\n rx=\"2\"\n ></rect>\n <text\n class=\"tick-label\"\n [attr.x]=\"tick.x\"\n [attr.y]=\"d.yScale(0) + 12\"\n text-anchor=\"middle\"\n >\n {{ tick.label }}\n </text>\n </g>\n <g *ngFor=\"let tick of d.yTicks\">\n <rect\n class=\"tick\"\n x=\"0\"\n [attr.y]=\"d.yScale(tick)\"\n width=\"100%\"\n height=\"1\"\n ></rect>\n <text class=\"tick-label\" x=\"0\" [attr.y]=\"d.yScale(tick)\" dy=\"-4\">\n {{ valueFormatter(tick) }}\n </text>\n </g>\n <g *ngFor=\"let rect of d.rects\">\n <rect\n class=\"column\"\n [attr.x]=\"rect.x\"\n [attr.y]=\"rect.y\"\n [attr.width]=\"rect.width\"\n [attr.height]=\"rect.height\"\n [attr.fill]=\"rect.fill\"\n [class.blurred]=\"\n (hoveredBand$ | async) !== null &&\n (hoveredBand$ | async)?.dateValue !== rect.dateValue\n \"\n ></rect>\n <rect\n *ngIf=\"rect.striped\"\n [attr.x]=\"rect.x\"\n [attr.y]=\"rect.y\"\n [attr.width]=\"rect.width\"\n [attr.height]=\"rect.height\"\n fill=\"url(#stripes)\"\n ></rect>\n </g>\n <rect\n *ngFor=\"let rect of d.hoverBands\"\n [attr.x]=\"rect.x\"\n [attr.y]=\"rect.y\"\n [attr.width]=\"rect.width\"\n [attr.height]=\"rect.height\"\n fill=\"transparent\"\n (mouseenter)=\"\n hoveredBand$.next({ dateValue: rect.dateValue, event: $event })\n \"\n (mouseleave)=\"hoveredBand$.next(null)\"\n ></rect>\n </svg>\n</div>\n\n<ng-container *ngIf=\"callout$ | async; let callout\">\n <riv-callout\n *riv-callout\n [anchor]=\"callout.anchor\"\n [isModal]=\"false\"\n [preferredPosition]=\"'center-right'\"\n [allowedPositions]=\"[\n 'center-right',\n 'center-left',\n 'top-center',\n 'bottom-center'\n ]\"\n >\n <div class=\"callout-content\">\n <div class=\"callout-metric\" *ngFor=\"let metric of callout.metrics\">\n <div>{{ metric.label }}</div>\n <div class=\"callout-metric-value\">{{ metric.value }}</div>\n </div>\n </div>\n </riv-callout>\n</ng-container>\n\n<ng-template #zeroState>\n <riv-zero-state></riv-zero-state>\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport { DonutComponent } from './visualization/donut/donut.component';\nimport { IconComponent } from '../public-api';\nimport { LegendItemComponent } from './visualization/legend-item/legend-item.component';\nimport { MetricComponent } from './visualization/metric/metric.component';\nimport { NgModule } from '@angular/core';\nimport { TextToggleComponent } from './content-toggle/text-toggle/text-toggle.component';\nimport { TimeSeriesComponent } from './visualization/time-series/time-series.component';\nimport { DataTableComponent } from './visualization/data-table/data-table.component';\nimport { DataTableRowComponent } from './visualization/data-table/data-table-row.component';\nimport { DataTableCellComponent } from './visualization/data-table/data-table-cell.component';\nimport { DataTableHeaderCellComponent } from './visualization/data-table/data-table-header-cell.component';\nimport { CalloutComponent } from './modal/callout/callout.component';\nimport { CalloutOutletComponent } from './modal/callout/callout-outlet.component';\nimport { CalloutDirective } from './modal/callout/callout.directive';\nimport { ZeroStateComponent } from './visualization/zero-state/zero-state.component';\nimport { StackedColumnComponent } from './visualization/stacked-column/stacked-column.component';\n\n@NgModule({\n declarations: [\n CalloutComponent,\n CalloutDirective,\n CalloutOutletComponent,\n DataTableCellComponent,\n DataTableComponent,\n DataTableHeaderCellComponent,\n DataTableRowComponent,\n DonutComponent,\n IconComponent,\n LegendItemComponent,\n MetricComponent,\n StackedColumnComponent,\n TextToggleComponent,\n TimeSeriesComponent,\n ZeroStateComponent,\n ],\n exports: [\n CalloutComponent,\n CalloutDirective,\n CalloutOutletComponent,\n DataTableCellComponent,\n DataTableComponent,\n DataTableHeaderCellComponent,\n DataTableRowComponent,\n DonutComponent,\n IconComponent,\n LegendItemComponent,\n MetricComponent,\n StackedColumnComponent,\n TextToggleComponent,\n TimeSeriesComponent,\n ZeroStateComponent,\n ],\n imports: [CommonModule],\n})\nexport class RivModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.IconComponent","i1.CalloutService","i2","i2.ZeroStateComponent","getDateRange","i2.CalloutComponent","i3.CalloutDirective","i4.LegendItemComponent","i5.ZeroStateComponent","i1.DataTableRowComponent","i4.ZeroStateComponent"],"mappings":"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"}
1
+ {"version":3,"file":"rivet-health-design-system.mjs","sources":["../../../projects/riv/src/lib/icon/dom-cache.ts","../../../projects/riv/src/lib/icon/icons.ts","../../../projects/riv/src/lib/icon/icon.component.ts","../../../projects/riv/src/lib/icon/icon.component.html","../../../projects/riv/src/lib/content-toggle/text-toggle/text-toggle.component.ts","../../../projects/riv/src/lib/content-toggle/text-toggle/text-toggle.component.html","../../../projects/riv/src/lib/modal/callout/callout.service.ts","../../../projects/riv/src/lib/modal/callout/callout-outlet.component.ts","../../../projects/riv/src/lib/modal/callout/callout-outlet.component.html","../../../projects/riv/src/lib/modal/callout/callout-position.ts","../../../projects/riv/src/lib/modal/callout/callout.component.ts","../../../projects/riv/src/lib/modal/callout/callout.component.html","../../../projects/riv/src/lib/modal/callout/callout.directive.ts","../../../projects/riv/src/lib/visualization/zero-state/zero-state.component.ts","../../../projects/riv/src/lib/visualization/donut/donut.component.ts","../../../projects/riv/src/lib/visualization/donut/donut.component.html","../../../projects/riv/src/lib/visualization/legend-item/legend-item.component.ts","../../../projects/riv/src/lib/visualization/legend-item/legend-item.component.html","../../../projects/riv/src/lib/visualization/metric/metric.component.ts","../../../projects/riv/src/lib/visualization/metric/metric.component.html","../../../projects/riv/src/lib/visualization/time-series/time-series.component.ts","../../../projects/riv/src/lib/visualization/time-series/time-series.component.html","../../../projects/riv/src/lib/visualization/data-table/data-table.component.ts","../../../projects/riv/src/lib/visualization/data-table/data-table-row.component.ts","../../../projects/riv/src/lib/visualization/data-table/data-table-cell.component.ts","../../../projects/riv/src/lib/visualization/data-table/data-table-header-cell.component.ts","../../../projects/riv/src/lib/visualization/stacked-column/stacked-column.component.ts","../../../projects/riv/src/lib/visualization/stacked-column/stacked-column.component.html","../../../projects/riv/src/lib/riv.module.ts","../../../projects/riv/src/rivet-health-design-system.ts"],"sourcesContent":["export interface CacheResult<V> {\n value: V;\n cleanup: () => void;\n}\n\n/**\n * DOM cache that clones existing elements if available.\n */\nexport class DomCache<T, V extends Node = Node> {\n private readonly nodes = new Map<T, Set<V>>();\n\n constructor(private readonly create: (key: T) => V) {}\n\n get(key: T): CacheResult<V> {\n let set = this.nodes.get(key);\n let result: V;\n if (set) {\n result = <V>set.values().next().value.cloneNode(true);\n } else {\n result = this.create(key);\n set = new Set();\n this.nodes.set(key, set);\n }\n\n set.add(result);\n\n return {\n value: result,\n cleanup: () => {\n set!.delete(result);\n if (!set!.size) {\n this.nodes.delete(key);\n }\n },\n };\n }\n}\n","const Activity = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-activity\">\\n <polyline points=\"22 12 18 12 15 21 9 3 6 12 2 12\"></polyline>\\n</svg>`;\nconst AlertCircle = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-alert-circle\">\\n <circle cx=\"12\" cy=\"12\" r=\"10\"></circle><line x1=\"12\" y1=\"8\" x2=\"12\" y2=\"12\"></line><line x1=\"12\" y1=\"16\" x2=\"12.01\" y2=\"16\"></line>\\n</svg>`;\nconst AlertOctagon = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-alert-octagon\">\\n <polygon points=\"7.86 2 16.14 2 22 7.86 22 16.14 16.14 22 7.86 22 2 16.14 2 7.86 7.86 2\"></polygon><line x1=\"12\" y1=\"8\" x2=\"12\" y2=\"12\"></line><line x1=\"12\" y1=\"16\" x2=\"12.01\" y2=\"16\"></line>\\n</svg>`;\nconst AlertTriangle = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-alert-triangle\">\\n <path d=\"M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z\"></path><line x1=\"12\" y1=\"9\" x2=\"12\" y2=\"13\"></line><line x1=\"12\" y1=\"17\" x2=\"12.01\" y2=\"17\"></line>\\n</svg>`;\nconst AlignLeft = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-align-left\">\\n <line x1=\"17\" y1=\"10\" x2=\"3\" y2=\"10\"></line><line x1=\"21\" y1=\"6\" x2=\"3\" y2=\"6\"></line><line x1=\"21\" y1=\"14\" x2=\"3\" y2=\"14\"></line><line x1=\"17\" y1=\"18\" x2=\"3\" y2=\"18\"></line>\\n</svg>`;\nconst Anchor = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-anchor\">\\n <circle cx=\"12\" cy=\"5\" r=\"3\"></circle><line x1=\"12\" y1=\"22\" x2=\"12\" y2=\"8\"></line><path d=\"M5 12H2a10 10 0 0 0 20 0h-3\"></path>\\n</svg>`;\nconst Archive = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-archive\">\\n <polyline points=\"21 8 21 21 3 21 3 8\"></polyline><rect x=\"1\" y=\"3\" width=\"22\" height=\"5\"></rect><line x1=\"10\" y1=\"12\" x2=\"14\" y2=\"12\"></line>\\n</svg>`;\nconst ArrowDown = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-arrow-down\">\\n <line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\"></line><polyline points=\"19 12 12 19 5 12\"></polyline>\\n</svg>`;\nconst ArrowDownLeft = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-arrow-down-left\">\\n <line x1=\"17\" y1=\"7\" x2=\"7\" y2=\"17\"></line><polyline points=\"17 17 7 17 7 7\"></polyline>\\n</svg>`;\nconst ArrowLeft = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-arrow-left\">\\n <line x1=\"19\" y1=\"12\" x2=\"5\" y2=\"12\"></line><polyline points=\"12 19 5 12 12 5\"></polyline>\\n</svg>`;\nconst ArrowLeftCircle = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-arrow-left-circle\">\\n <circle cx=\"12\" cy=\"12\" r=\"10\"></circle><polyline points=\"12 8 8 12 12 16\"></polyline><line x1=\"16\" y1=\"12\" x2=\"8\" y2=\"12\"></line>\\n</svg>`;\nconst ArrowRight = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-arrow-right\">\\n <line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"></line><polyline points=\"12 5 19 12 12 19\"></polyline>\\n</svg>`;\nconst ArrowUp = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-arrow-up\">\\n <line x1=\"12\" y1=\"19\" x2=\"12\" y2=\"5\"></line><polyline points=\"5 12 12 5 19 12\"></polyline>\\n</svg>`;\nconst ArrowUpRight = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-arrow-up-right\">\\n <line x1=\"7\" y1=\"17\" x2=\"17\" y2=\"7\"></line><polyline points=\"7 7 17 7 17 17\"></polyline>\\n</svg>`;\nconst AtSign = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-at-sign\">\\n <circle cx=\"12\" cy=\"12\" r=\"4\"></circle><path d=\"M16 8v5a3 3 0 0 0 6 0v-1a10 10 0 1 0-3.92 7.94\"></path>\\n</svg>`;\nconst BarChart2 = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-bar-chart-2\">\\n <line x1=\"18\" y1=\"20\" x2=\"18\" y2=\"10\"></line><line x1=\"12\" y1=\"20\" x2=\"12\" y2=\"4\"></line><line x1=\"6\" y1=\"20\" x2=\"6\" y2=\"14\"></line>\\n</svg>`;\nconst Bell = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-bell\">\\n <path d=\"M18 8A6 6 0 0 0 6 8c0 7-3 9-3 9h18s-3-2-3-9\"></path><path d=\"M13.73 21a2 2 0 0 1-3.46 0\"></path>\\n</svg>`;\nconst Book = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-book\">\\n <path d=\"M4 19.5A2.5 2.5 0 0 1 6.5 17H20\"></path><path d=\"M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2z\"></path>\\n</svg>`;\nconst BookOpen = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-book-open\">\\n <path d=\"M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z\"></path><path d=\"M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z\"></path>\\n</svg>`;\nconst Briefcase = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-briefcase\">\\n <rect x=\"2\" y=\"7\" width=\"20\" height=\"14\" rx=\"2\" ry=\"2\"></rect><path d=\"M16 21V5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16\"></path>\\n</svg>`;\nconst Calendar = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-calendar\">\\n <rect x=\"3\" y=\"4\" width=\"18\" height=\"18\" rx=\"2\" ry=\"2\"></rect><line x1=\"16\" y1=\"2\" x2=\"16\" y2=\"6\"></line><line x1=\"8\" y1=\"2\" x2=\"8\" y2=\"6\"></line><line x1=\"3\" y1=\"10\" x2=\"21\" y2=\"10\"></line>\\n</svg>`;\nconst Check = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-check\">\\n <polyline points=\"20 6 9 17 4 12\"></polyline>\\n</svg>`;\nconst CheckCircle = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-check-circle\">\\n <path d=\"M22 11.08V12a10 10 0 1 1-5.93-9.14\"></path><polyline points=\"22 4 12 14.01 9 11.01\"></polyline>\\n</svg>`;\nconst CheckSquare = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-check-square\">\\n <polyline points=\"9 11 12 14 22 4\"></polyline><path d=\"M21 12v7a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11\"></path>\\n</svg>`;\nconst ChevronDown = `<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 24 24\\\" class=\\\"feather feather-chevron-down\\\">\\n <polyline points=\\\"6 9 12 15 18 9\\\"></polyline>\\n</svg>`;\nconst ChevronLeft = `<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 24 24\\\" class=\\\"feather feather-chevron-left\\\">\\n <polyline points=\\\"15 18 9 12 15 6\\\"></polyline>\\n</svg>`;\nconst ChevronRight = `<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 24 24\\\" class=\\\"feather feather-chevron-right\\\">\\n <polyline points=\\\"9 18 15 12 9 6\\\"></polyline>\\n</svg>`;\nconst ChevronsRight = `<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 24 24\\\" class=\\\"feather feather-chevrons-right\\\">\\n <polyline points=\\\"13 17 18 12 13 7\\\"></polyline><polyline points=\\\"6 17 11 12 6 7\\\"></polyline>\\n</svg>`;\nconst ChevronsLeft = `<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 24 24\\\" class=\\\"feather feather-chevrons-left\\\">\\n <polyline points=\\\"11 17 6 12 11 7\\\"></polyline><polyline points=\\\"18 17 13 12 18 7\\\"></polyline>\\n</svg>`;\nconst ChevronUp = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-chevron-up\">\\n <polyline points=\"18 15 12 9 6 15\"></polyline>\\n</svg>`;\nconst Clipboard = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-clipboard\">\\n <path d=\"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2\"></path><rect x=\"8\" y=\"2\" width=\"8\" height=\"4\" rx=\"1\" ry=\"1\"></rect>\\n</svg>`;\nconst Clock = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-clock\">\\n <circle cx=\"12\" cy=\"12\" r=\"10\"></circle><polyline points=\"12 6 12 12 16 14\"></polyline>\\n</svg>`;\nconst Coffee = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-coffee\">\\n <path d=\"M18 8h1a4 4 0 0 1 0 8h-1\"></path><path d=\"M2 8h16v9a4 4 0 0 1-4 4H6a4 4 0 0 1-4-4V8z\"></path><line x1=\"6\" y1=\"1\" x2=\"6\" y2=\"4\"></line><line x1=\"10\" y1=\"1\" x2=\"10\" y2=\"4\"></line><line x1=\"14\" y1=\"1\" x2=\"14\" y2=\"4\"></line>\\n</svg>`;\nconst Copy = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-copy\">\\n <rect x=\"9\" y=\"9\" width=\"13\" height=\"13\" rx=\"2\" ry=\"2\"></rect><path d=\"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1\"></path>\\n</svg>`;\nconst CornerLeftUp = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-corner-left-up\">\\n <polyline points=\"14 9 9 4 4 9\"></polyline><path d=\"M20 20h-7a4 4 0 0 1-4-4V4\"></path>\\n</svg>`;\nconst CreditCard = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-credit-card\">\\n <rect x=\"1\" y=\"4\" width=\"22\" height=\"16\" rx=\"2\" ry=\"2\"></rect><line x1=\"1\" y1=\"10\" x2=\"23\" y2=\"10\"></line>\\n</svg>`;\nconst DollarSign = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-dollar-sign\">\\n <line x1=\"12\" y1=\"1\" x2=\"12\" y2=\"23\"></line><path d=\"M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6\"></path>\\n</svg>`;\nconst Download = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-download\">\\n <path d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"></path><polyline points=\"7 10 12 15 17 10\"></polyline><line x1=\"12\" y1=\"15\" x2=\"12\" y2=\"3\"></line>\\n</svg>`;\nconst DownloadCloud = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-download-cloud\">\\n <polyline points=\"8 17 12 21 16 17\"></polyline><line x1=\"12\" y1=\"12\" x2=\"12\" y2=\"21\"></line><path d=\"M20.88 18.09A5 5 0 0 0 18 9h-1.26A8 8 0 1 0 3 16.29\"></path>\\n</svg>`;\nconst Edit = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-edit\">\\n <path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"></path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"></path>\\n</svg>`;\nconst Edit2 = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-edit-2\">\\n <path d=\"M17 3a2.828 2.828 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5L17 3z\"></path>\\n</svg>`;\nconst ExternalLink = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-external-link\">\\n <path d=\"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\"></path><polyline points=\"15 3 21 3 21 9\"></polyline><line x1=\"10\" y1=\"14\" x2=\"21\" y2=\"3\"></line>\\n</svg>`;\nconst Eye = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-eye\">\\n <path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"></path><circle cx=\"12\" cy=\"12\" r=\"3\"></circle>\\n</svg>`;\nconst EyeOff = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-eye-off\">\\n <path d=\"M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24\"></path><line x1=\"1\" y1=\"1\" x2=\"23\" y2=\"23\"></line>\\n</svg>`;\nconst File = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-file\">\\n <path d=\"M13 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z\"></path><polyline points=\"13 2 13 9 20 9\"></polyline>\\n</svg>`;\nconst FilePlus = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-file-plus\">\\n <path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"></path><polyline points=\"14 2 14 8 20 8\"></polyline><line x1=\"12\" y1=\"18\" x2=\"12\" y2=\"12\"></line><line x1=\"9\" y1=\"15\" x2=\"15\" y2=\"15\"></line>\\n</svg>`;\nconst FileText = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-file-text\">\\n <path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"></path><polyline points=\"14 2 14 8 20 8\"></polyline><line x1=\"16\" y1=\"13\" x2=\"8\" y2=\"13\"></line><line x1=\"16\" y1=\"17\" x2=\"8\" y2=\"17\"></line><polyline points=\"10 9 9 9 8 9\"></polyline>\\n</svg>`;\nconst Filter = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-filter\">\\n <polygon points=\"22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3\"></polygon>\\n</svg>`;\nconst Flag = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-flag\">\\n <path d=\"M4 15s1-1 4-1 5 2 8 2 4-1 4-1V3s-1 1-4 1-5-2-8-2-4 1-4 1z\"></path><line x1=\"4\" y1=\"22\" x2=\"4\" y2=\"15\"></line>\\n</svg>`;\nconst Folder = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-folder\">\\n <path d=\"M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z\"></path>\\n</svg>`;\nconst Hash = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-hash\">\\n <line x1=\"4\" y1=\"9\" x2=\"20\" y2=\"9\"></line><line x1=\"4\" y1=\"15\" x2=\"20\" y2=\"15\"></line><line x1=\"10\" y1=\"3\" x2=\"8\" y2=\"21\"></line><line x1=\"16\" y1=\"3\" x2=\"14\" y2=\"21\"></line>\\n</svg>`;\nconst HelpCircle = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-help-circle\">\\n <circle cx=\"12\" cy=\"12\" r=\"10\"></circle><path d=\"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3\"></path><line x1=\"12\" y1=\"17\" x2=\"12.01\" y2=\"17\"></line>\\n</svg>`;\nconst Home = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-home\">\\n <path d=\"M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z\"></path><polyline points=\"9 22 9 12 15 12 15 22\"></polyline>\\n</svg>`;\nconst Inbox = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-inbox\">\\n <polyline points=\"22 12 16 12 14 15 10 15 8 12 2 12\"></polyline><path d=\"M5.45 5.11L2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z\"></path>\\n</svg>`;\nconst Info = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-info\">\\n <circle cx=\"12\" cy=\"12\" r=\"10\"></circle><line x1=\"12\" y1=\"16\" x2=\"12\" y2=\"12\"></line><line x1=\"12\" y1=\"8\" x2=\"12.01\" y2=\"8\"></line>\\n</svg>`;\nconst Key = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-key\">\\n <path d=\"M21 2l-2 2m-7.61 7.61a5.5 5.5 0 1 1-7.778 7.778 5.5 5.5 0 0 1 7.777-7.777zm0 0L15.5 7.5m0 0l3 3L22 7l-3-3m-3.5 3.5L19 4\"></path>\\n</svg>`;\nconst Layers = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-layers\">\\n <polygon points=\"12 2 2 7 12 12 22 7 12 2\"></polygon><polyline points=\"2 17 12 22 22 17\"></polyline><polyline points=\"2 12 12 17 22 12\"></polyline>\\n</svg>`;\nconst Link2 = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-link-2\">\\n <path d=\"M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3\"></path><line x1=\"8\" y1=\"12\" x2=\"16\" y2=\"12\"></line>\\n</svg>`;\nconst List = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-list\">\\n <line x1=\"8\" y1=\"6\" x2=\"21\" y2=\"6\"></line><line x1=\"8\" y1=\"12\" x2=\"21\" y2=\"12\"></line><line x1=\"8\" y1=\"18\" x2=\"21\" y2=\"18\"></line><line x1=\"3\" y1=\"6\" x2=\"3.01\" y2=\"6\"></line><line x1=\"3\" y1=\"12\" x2=\"3.01\" y2=\"12\"></line><line x1=\"3\" y1=\"18\" x2=\"3.01\" y2=\"18\"></line>\\n</svg>`;\nconst Lock = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-lock\">\\n <rect x=\"3\" y=\"11\" width=\"18\" height=\"11\" rx=\"2\" ry=\"2\"></rect><path d=\"M7 11V7a5 5 0 0 1 10 0v4\"></path>\\n</svg>`;\nconst Mail = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-mail\">\\n <path d=\"M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z\"></path><polyline points=\"22,6 12,13 2,6\"></polyline>\\n</svg>`;\nconst MapPin = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-map-pin\">\\n <path d=\"M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z\"></path><circle cx=\"12\" cy=\"10\" r=\"3\"></circle>\\n</svg>`;\nconst Maximize = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-maximize\">\\n <path d=\"M8 3H5a2 2 0 0 0-2 2v3m18 0V5a2 2 0 0 0-2-2h-3m0 18h3a2 2 0 0 0 2-2v-3M3 16v3a2 2 0 0 0 2 2h3\"></path>\\n</svg>`;\nconst Maximize2 = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-maximize-2\">\\n <polyline points=\"15 3 21 3 21 9\"></polyline><polyline points=\"9 21 3 21 3 15\"></polyline><line x1=\"21\" y1=\"3\" x2=\"14\" y2=\"10\"></line><line x1=\"3\" y1=\"21\" x2=\"10\" y2=\"14\"></line>\\n</svg>`;\nconst Menu = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-menu\">\\n <line x1=\"3\" y1=\"12\" x2=\"21\" y2=\"12\"></line><line x1=\"3\" y1=\"6\" x2=\"21\" y2=\"6\"></line><line x1=\"3\" y1=\"18\" x2=\"21\" y2=\"18\"></line>\\n</svg>`;\nconst MessageCircle = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-message-circle\">\\n <path d=\"M21 11.5a8.38 8.38 0 0 1-.9 3.8 8.5 8.5 0 0 1-7.6 4.7 8.38 8.38 0 0 1-3.8-.9L3 21l1.9-5.7a8.38 8.38 0 0 1-.9-3.8 8.5 8.5 0 0 1 4.7-7.6 8.38 8.38 0 0 1 3.8-.9h.5a8.48 8.48 0 0 1 8 8v.5z\"></path>\\n</svg>`;\nconst Minimize2 = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-minimize-2\">\\n <polyline points=\"4 14 10 14 10 20\"></polyline><polyline points=\"20 10 14 10 14 4\"></polyline><line x1=\"14\" y1=\"10\" x2=\"21\" y2=\"3\"></line><line x1=\"3\" y1=\"21\" x2=\"10\" y2=\"14\"></line>\\n</svg>`;\nconst Minus = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-minus\">\\n <line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"></line>\\n</svg>`;\nconst MinusCircle = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-minus-circle\">\\n <circle cx=\"12\" cy=\"12\" r=\"10\"></circle><line x1=\"8\" y1=\"12\" x2=\"16\" y2=\"12\"></line>\\n</svg>`;\nconst MoreHorizontal = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-more-horizontal\">\\n <circle cx=\"12\" cy=\"12\" r=\"1\"></circle><circle cx=\"19\" cy=\"12\" r=\"1\"></circle><circle cx=\"5\" cy=\"12\" r=\"1\"></circle>\\n</svg>`;\nconst MoreVertical = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-more-vertical\">\\n <circle cx=\"12\" cy=\"12\" r=\"1\"></circle><circle cx=\"12\" cy=\"5\" r=\"1\"></circle><circle cx=\"12\" cy=\"19\" r=\"1\"></circle>\\n</svg>`;\nconst Paperclip = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-paperclip\">\\n <path d=\"M21.44 11.05l-9.19 9.19a6 6 0 0 1-8.49-8.49l9.19-9.19a4 4 0 0 1 5.66 5.66l-9.2 9.19a2 2 0 0 1-2.83-2.83l8.49-8.48\"></path>\\n</svg>`;\nconst Percent = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-percent\">\\n <line x1=\"19\" y1=\"5\" x2=\"5\" y2=\"19\"></line><circle cx=\"6.5\" cy=\"6.5\" r=\"2.5\"></circle><circle cx=\"17.5\" cy=\"17.5\" r=\"2.5\"></circle>\\n</svg>`;\nconst Phone = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-phone\">\\n <path d=\"M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z\"></path>\\n</svg>`;\nconst PieChart = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-pie-chart\">\\n <path d=\"M21.21 15.89A10 10 0 1 1 8 2.83\"></path><path d=\"M22 12A10 10 0 0 0 12 2v10z\"></path>\\n</svg>`;\nconst PlayCircle = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-play-circle\">\\n <circle cx=\"12\" cy=\"12\" r=\"10\"></circle><polygon points=\"10 8 16 12 10 16 10 8\"></polygon>\\n</svg>`;\nconst Plus = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-plus\">\\n <line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\"></line><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"></line>\\n</svg>`;\nconst PlusCircle = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-plus-circle\">\\n <circle cx=\"12\" cy=\"12\" r=\"10\"></circle><line x1=\"12\" y1=\"8\" x2=\"12\" y2=\"16\"></line><line x1=\"8\" y1=\"12\" x2=\"16\" y2=\"12\"></line>\\n</svg>`;\nconst Power = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-power\">\\n <path d=\"M18.36 6.64a9 9 0 1 1-12.73 0\"></path><line x1=\"12\" y1=\"2\" x2=\"12\" y2=\"12\"></line>\\n</svg>`;\nconst Printer = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-printer\">\\n <polyline points=\"6 9 6 2 18 2 18 9\"></polyline><path d=\"M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2\"></path><rect x=\"6\" y=\"14\" width=\"12\" height=\"8\"></rect>\\n</svg>`;\nconst RefreshCw = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-refresh-cw\">\\n <polyline points=\"23 4 23 10 17 10\"></polyline><polyline points=\"1 20 1 14 7 14\"></polyline><path d=\"M3.51 9a9 9 0 0 1 14.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0 0 20.49 15\"></path>\\n</svg>`;\nconst RotateCw = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-rotate-cw\">\\n <polyline points=\"23 4 23 10 17 10\"></polyline><path d=\"M20.49 15a9 9 0 1 1-2.12-9.36L23 10\"></path>\\n</svg>`;\nconst Save = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-save\">\\n <path d=\"M19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11l5 5v11a2 2 0 0 1-2 2z\"></path><polyline points=\"17 21 17 13 7 13 7 21\"></polyline><polyline points=\"7 3 7 8 15 8\"></polyline>\\n</svg>`;\nconst Search = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-search\">\\n <circle cx=\"11\" cy=\"11\" r=\"8\"></circle><line x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\"></line>\\n</svg>`;\nconst Send = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-send\">\\n <line x1=\"22\" y1=\"2\" x2=\"11\" y2=\"13\"></line><polygon points=\"22 2 15 22 11 13 2 9 22 2\"></polygon>\\n</svg>`;\nconst Settings = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-settings\">\\n <circle cx=\"12\" cy=\"12\" r=\"3\"></circle><path d=\"M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z\"></path>\\n</svg>`;\nconst Share = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-share\">\\n <path d=\"M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8\"></path><polyline points=\"16 6 12 2 8 6\"></polyline><line x1=\"12\" y1=\"2\" x2=\"12\" y2=\"15\"></line>\\n</svg>`;\nconst Shield = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-shield\">\\n <path d=\"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z\"></path>\\n</svg>`;\nconst Sidebar = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-sidebar\">\\n <rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\" ry=\"2\"></rect><line x1=\"9\" y1=\"3\" x2=\"9\" y2=\"21\"></line>\\n</svg>`;\nconst Slash = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-slash\">\\n <circle cx=\"12\" cy=\"12\" r=\"10\"></circle><line x1=\"4.93\" y1=\"4.93\" x2=\"19.07\" y2=\"19.07\"></line>\\n</svg>`;\nconst Smile = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-smile\">\\n <circle cx=\"12\" cy=\"12\" r=\"10\"></circle><path d=\"M8 14s1.5 2 4 2 4-2 4-2\"></path><line x1=\"9\" y1=\"9\" x2=\"9.01\" y2=\"9\"></line><line x1=\"15\" y1=\"9\" x2=\"15.01\" y2=\"9\"></line>\\n</svg>`;\nconst Star = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-star\">\\n <polygon points=\"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2\"></polygon>\\n</svg>`;\nconst Sun = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-sun\">\\n <circle cx=\"12\" cy=\"12\" r=\"5\"></circle><line x1=\"12\" y1=\"1\" x2=\"12\" y2=\"3\"></line><line x1=\"12\" y1=\"21\" x2=\"12\" y2=\"23\"></line><line x1=\"4.22\" y1=\"4.22\" x2=\"5.64\" y2=\"5.64\"></line><line x1=\"18.36\" y1=\"18.36\" x2=\"19.78\" y2=\"19.78\"></line><line x1=\"1\" y1=\"12\" x2=\"3\" y2=\"12\"></line><line x1=\"21\" y1=\"12\" x2=\"23\" y2=\"12\"></line><line x1=\"4.22\" y1=\"19.78\" x2=\"5.64\" y2=\"18.36\"></line><line x1=\"18.36\" y1=\"5.64\" x2=\"19.78\" y2=\"4.22\"></line>\\n</svg>`;\nconst Tag = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-tag\">\\n <path d=\"M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z\"></path><line x1=\"7\" y1=\"7\" x2=\"7.01\" y2=\"7\"></line>\\n</svg>`;\nconst Target = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-target\">\\n <circle cx=\"12\" cy=\"12\" r=\"10\"></circle><circle cx=\"12\" cy=\"12\" r=\"6\"></circle><circle cx=\"12\" cy=\"12\" r=\"2\"></circle>\\n</svg>`;\nconst Trash2 = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-trash-2\">\\n <polyline points=\"3 6 5 6 21 6\"></polyline><path d=\"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2\"></path><line x1=\"10\" y1=\"11\" x2=\"10\" y2=\"17\"></line><line x1=\"14\" y1=\"11\" x2=\"14\" y2=\"17\"></line>\\n</svg>`;\nconst TrendingDown = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-trending-down\">\\n <polyline points=\"23 18 13.5 8.5 8.5 13.5 1 6\"></polyline><polyline points=\"17 18 23 18 23 12\"></polyline>\\n</svg>`;\nconst TrendingUp = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-trending-up\">\\n <polyline points=\"23 6 13.5 15.5 8.5 10.5 1 18\"></polyline><polyline points=\"17 6 23 6 23 12\"></polyline>\\n</svg>`;\nconst Unlock = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-unlock\">\\n <rect x=\"3\" y=\"11\" width=\"18\" height=\"11\" rx=\"2\" ry=\"2\"></rect><path d=\"M7 11V7a5 5 0 0 1 9.9-1\"></path>\\n</svg>`;\nconst UploadCloud = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-upload-cloud\">\\n <polyline points=\"16 16 12 12 8 16\"></polyline><line x1=\"12\" y1=\"12\" x2=\"12\" y2=\"21\"></line><path d=\"M20.39 18.39A5 5 0 0 0 18 9h-1.26A8 8 0 1 0 3 16.3\"></path><polyline points=\"16 16 12 12 8 16\"></polyline>\\n</svg>`;\nconst User = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-user\">\\n <path d=\"M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2\"></path><circle cx=\"12\" cy=\"7\" r=\"4\"></circle>\\n</svg>`;\nconst UserCheck = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-user-check\">\\n <path d=\"M16 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"></path><circle cx=\"8.5\" cy=\"7\" r=\"4\"></circle><polyline points=\"17 11 19 13 23 9\"></polyline>\\n</svg>`;\nconst UserPlus = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-user-plus\">\\n <path d=\"M16 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"></path><circle cx=\"8.5\" cy=\"7\" r=\"4\"></circle><line x1=\"20\" y1=\"8\" x2=\"20\" y2=\"14\"></line><line x1=\"23\" y1=\"11\" x2=\"17\" y2=\"11\"></line>\\n</svg>`;\nconst Users = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-users\">\\n <path d=\"M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"></path><circle cx=\"9\" cy=\"7\" r=\"4\"></circle><path d=\"M23 21v-2a4 4 0 0 0-3-3.87\"></path><path d=\"M16 3.13a4 4 0 0 1 0 7.75\"></path>\\n</svg>`;\nconst X = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-x\">\\n <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"></line><line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"></line>\\n</svg>`;\nconst XCircle = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-x-circle\">\\n <circle cx=\"12\" cy=\"12\" r=\"10\"></circle><line x1=\"15\" y1=\"9\" x2=\"9\" y2=\"15\"></line><line x1=\"9\" y1=\"9\" x2=\"15\" y2=\"15\"></line>\\n</svg>`;\nconst XSquare = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-x-square\">\\n <rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\" ry=\"2\"></rect><line x1=\"9\" y1=\"9\" x2=\"15\" y2=\"15\"></line><line x1=\"15\" y1=\"9\" x2=\"9\" y2=\"15\"></line>\\n</svg>`;\nconst ZoomIn = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-zoom-in\">\\n <circle cx=\"11\" cy=\"11\" r=\"8\"></circle><line x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\"></line><line x1=\"11\" y1=\"8\" x2=\"11\" y2=\"14\"></line><line x1=\"8\" y1=\"11\" x2=\"14\" y2=\"11\"></line>\\n</svg>`;\nconst ZoomOut = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" class=\"feather feather-zoom-out\">\\n <circle cx=\"11\" cy=\"11\" r=\"8\"></circle><line x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\"></line><line x1=\"8\" y1=\"11\" x2=\"14\" y2=\"11\"></line>\\n</svg>`;\nconst PinActive = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M12 15L12 23\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M6 1H18L15 4L16 12.5L20 15H4L8 12.5L9 4L6 1Z\" fill=\"currentColor\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>`;\nconst PinInactive = `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M12 15L12 23\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M6 1H18L15 4L16 12.5L20 15H4L8 12.5L9 4L6 1Z\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>`;\nconst Documents = `<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" ><path stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M8.75 6c-.464 0-.91.169-1.237.469C7.184 6.769 7 7.176 7 7.6v12.8c0 .424.184.831.513 1.131.328.3.773.469 1.237.469h10.5c.464 0 .91-.169 1.237-.469.329-.3.513-.707.513-1.131V8a2 2 0 0 0-2-2H8.75z\" /> <path stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M7 18H4.75c-.464 0-.91-.169-1.237-.469A1.534 1.534 0 0 1 3 16.4V3.6c0-.424.184-.831.513-1.131C3.84 2.169 4.286 2 4.75 2H15a2 2 0 0 1 2 2v2M17 14h-6M17 18h-6M13 10h-2\"/></svg>`;\nconst Exchange = `<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\"><path stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M14.5 4l4 4-4 4M9 20l-4-4 4-4M3 8h15M6 16h15\"/></svg>`;\nconst Reorder = `<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\"> <path stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M0,9 l24,0\"/><path stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M0,15 l24,0\"/></svg>`;\nconst Reorder2 = `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" fill=\"none\"><path fill=\"currentColor\" d=\"M8 5h3v3H8zM8 11h3v3H8zM8 17h3v3H8zM13 5h3v3h-3zM13 11h3v3h-3zM13 17h3v3h-3z\"/></svg>`;\nconst Reply = `<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\"> <path stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 17l-5-5 5-5\"/><path stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M20 17v-1a4 4 0 0 0-4-4H4\"/></svg>`;\nconst ReplyAll = `<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\"> <path stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M11 17l-5-5 5-5\"/> <path stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M7 17l-5-5 5-5\"/><path stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M22 17v-1a4 4 0 0 0-4-4H6\"/></svg>`;\nconst SupportChat = `<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\"><path stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3\"/><path stroke=\"currentColor\" stroke-linecap=\"round\" d=\"M12 16v1\"/> <path stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M14.562 20.63a9 9 0 1 1 3.666-2.133 5.014 5.014 0 0 0 2.272 2.834A4.977 4.977 0 0 1 18 22a4.983 4.983 0 0 1-3.438-1.37z\"/></svg>`;\n\nexport const icons = {\n Activity,\n AlertCircle,\n AlertOctagon,\n AlertTriangle,\n AlignLeft,\n Anchor,\n Archive,\n ArrowDown,\n ArrowDownLeft,\n ArrowLeft,\n ArrowLeftCircle,\n ArrowRight,\n ArrowUp,\n ArrowUpRight,\n AtSign,\n BarChart2,\n Bell,\n Briefcase,\n Book,\n BookOpen,\n Calendar,\n Check,\n CheckCircle,\n CheckSquare,\n ChevronDown,\n ChevronLeft,\n ChevronRight,\n ChevronsLeft,\n ChevronsRight,\n ChevronUp,\n Clipboard,\n Clock,\n Coffee,\n Copy,\n CornerLeftUp,\n CreditCard,\n DollarSign,\n Documents,\n Download,\n DownloadCloud,\n Edit,\n Edit2,\n Exchange,\n ExternalLink,\n Eye,\n EyeOff,\n Folder,\n File,\n FilePlus,\n FileText,\n Filter,\n Flag,\n Hash,\n HelpCircle,\n Home,\n Inbox,\n Info,\n Key,\n Layers,\n Link2,\n List,\n Lock,\n Mail,\n MapPin,\n Maximize,\n Maximize2,\n Menu,\n MessageCircle,\n Minimize2,\n Minus,\n MinusCircle,\n MoreHorizontal,\n MoreVertical,\n Paperclip,\n Phone,\n Percent,\n PieChart,\n PinActive,\n PinInactive,\n PlayCircle,\n Plus,\n PlusCircle,\n Power,\n Printer,\n RefreshCw,\n Reorder,\n Reorder2,\n Reply,\n ReplyAll,\n RotateCw,\n Save,\n Search,\n Send,\n Settings,\n Share,\n Shield,\n Sidebar,\n Slash,\n Smile,\n Star,\n Sun,\n SupportChat,\n Tag,\n Target,\n Trash2,\n TrendingDown,\n TrendingUp,\n Unlock,\n UploadCloud,\n User,\n UserCheck,\n UserPlus,\n Users,\n X,\n XCircle,\n XSquare,\n ZoomIn,\n ZoomOut,\n};\n\nexport type IconNames = keyof typeof icons;\n\nexport const IconSizes = [8, 12, 16, 24] as const;\n\nexport type IconSize = (typeof IconSizes)[number];\n\nexport const iconsMap: { [key: string]: string } = {};\nfor (const key in icons) {\n iconsMap[key] = icons[<keyof typeof icons>key];\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostBinding,\n Input,\n OnDestroy,\n} from '@angular/core';\nimport { CacheResult, DomCache } from './dom-cache';\nimport { IconNames, IconSize, iconsMap } from './icons';\n\nconst cache = new DomCache<IconNames, ChildNode>(value => {\n const svgText = iconsMap[value];\n const parser = new DOMParser();\n const svg = parser.parseFromString(svgText, 'text/xml');\n return svg.documentElement;\n});\n\n@Component({\n selector: 'riv-icon',\n templateUrl: './icon.component.html',\n styleUrls: ['./icon.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class IconComponent implements OnDestroy {\n private cached: CacheResult<ChildNode> | undefined;\n\n constructor(private readonly element: ElementRef<HTMLElement>) {}\n\n @Input()\n set name(value: IconNames | null) {\n if (this.cached) {\n this.cached.value.remove();\n this.cached.cleanup();\n this.cached = undefined;\n }\n\n if (value == null) {\n return;\n }\n\n this.cached = cache.get(value);\n this.element.nativeElement.append(this.cached.value);\n }\n\n @Input()\n size: IconSize = 24;\n\n @Input()\n customSize: number | undefined;\n\n @HostBinding('style.width.px')\n @HostBinding('style.height.px')\n get iconSize() {\n return this.customSize ? this.customSize : this.size;\n }\n\n @Input()\n strokeWidth: number | undefined;\n\n @HostBinding('style.stroke-width')\n get calculateStrokeWidth() {\n return this.strokeWidth ? this.strokeWidth : 24 / this.iconSize;\n }\n\n ngOnDestroy() {\n this.name = null;\n }\n}\n","","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n selector: 'riv-text-toggle',\n templateUrl: './text-toggle.component.html',\n styleUrls: ['./text-toggle.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TextToggleComponent {\n @Input()\n showLabel: string = '';\n\n @Input()\n hideLabel: string = '';\n\n @Input()\n open: boolean = false;\n}\n","<button class=\"toggle\" type=\"button\" (click)=\"open = !open\">\n <riv-icon *ngIf=\"open\" [name]=\"'ChevronDown'\" [size]=\"24\"></riv-icon>\n <riv-icon *ngIf=\"!open\" [name]=\"'ChevronRight'\" [size]=\"24\"></riv-icon>\n <div>{{ open ? hideLabel : showLabel }}</div>\n</button>\n<div *ngIf=\"open\">\n <ng-content></ng-content>\n</div>\n","import { Injectable, TemplateRef } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class CalloutService {\n public calloutStack$ = new BehaviorSubject<TemplateRef<unknown>[]>([]);\n\n public add(callout: TemplateRef<unknown>) {\n this.calloutStack$.next([...this.calloutStack$.getValue(), callout]);\n }\n\n public remove(callout: TemplateRef<unknown>) {\n this.calloutStack$.next(\n this.calloutStack$.getValue().filter(c => c !== callout),\n );\n }\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { CalloutService } from './callout.service';\n\n@Component({\n selector: 'riv-callout-outlet',\n templateUrl: './callout-outlet.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CalloutOutletComponent {\n constructor(readonly calloutService: CalloutService) {}\n}\n","<ng-container *ngFor=\"let callout of calloutService.calloutStack$ | async\">\n <ng-container *ngTemplateOutlet=\"callout\"></ng-container>\n</ng-container>\n","export const AnchoredPositions = [\n 'top-left',\n 'top-center',\n 'top-right',\n 'center-right',\n 'bottom-right',\n 'bottom-center',\n 'bottom-left',\n 'center-left',\n] as const;\n\nexport type AnchoredPosition = (typeof AnchoredPositions)[number];\n\nexport type Direction = 'clockwise' | 'counter-clockwise';\n\ntype Dimensions = {\n width: number;\n height: number;\n};\n\ntype Point = {\n x: number;\n y: number;\n};\n\nexport type Box = Point & Dimensions;\n\nexport type Anchor = Point & { position: AnchoredPosition };\n\nexport function getOrigin(\n anchor: Box,\n client: Dimensions,\n viewportSize: Dimensions,\n preferredPosition: AnchoredPosition,\n allowedPositions: AnchoredPosition[] | null = null,\n fallbackDirection: Direction,\n additionalOffset: number,\n): Anchor {\n let position = preferredPosition;\n const allowed =\n !allowedPositions || allowedPositions.length === 0\n ? AnchoredPositions\n : allowedPositions;\n let index = allowed.indexOf(position);\n let leastClippedIndex = index;\n let origin = originAtPosition(anchor, client, position, additionalOffset);\n let currentClippedX;\n let currentClippedY;\n let leastClipped = Infinity;\n let foundUnclipped = false;\n // Iterate through allowed positions. The first one we find that doesn't clip out of view, we use.\n // If all of the positions clip, use the one which clipped the least.\n for (\n let checkCount = 0;\n checkCount <= allowed.length && !foundUnclipped;\n checkCount++,\n index =\n fallbackDirection === 'clockwise'\n ? (index + 1) % allowed.length\n : (index - 1 + allowed.length) % allowed.length\n ) {\n position = allowed[index];\n origin = originAtPosition(anchor, client, position, additionalOffset);\n currentClippedX =\n -1 *\n Math.min(origin.x, viewportSize.width - (origin.x + client.width), 0);\n currentClippedY =\n -1 *\n Math.min(origin.y, viewportSize.height - (origin.y + client.height), 0);\n if (currentClippedX > 0 || currentClippedY > 0) {\n if (leastClipped > currentClippedX + currentClippedY) {\n leastClipped = currentClippedX + currentClippedY;\n leastClippedIndex = index;\n }\n } else {\n foundUnclipped = true;\n }\n }\n if (!foundUnclipped) {\n position = allowed[leastClippedIndex];\n origin = originAtPosition(anchor, client, position, additionalOffset);\n origin.y = origin.y < 0 ? 4 : origin.y;\n }\n return { ...origin, position };\n}\n\nexport function originAtPosition(\n anchor: Box,\n client: Dimensions,\n position: AnchoredPosition,\n offset: number,\n): Point {\n switch (position) {\n case 'top-left':\n return {\n x: anchor.x + anchor.width - client.width,\n y: anchor.y - client.height - offset,\n };\n case 'top-center':\n return {\n x: anchor.x + anchor.width / 2 - client.width / 2,\n y: anchor.y - client.height - offset,\n };\n case 'top-right':\n return {\n x: anchor.x,\n y: anchor.y - client.height - offset,\n };\n case 'center-right':\n return {\n x: anchor.x + anchor.width + offset,\n y: anchor.y + anchor.height / 2 - client.height / 2,\n };\n case 'bottom-right':\n return {\n x: anchor.x,\n y: anchor.y + anchor.height + offset,\n };\n case 'bottom-center':\n return {\n x: anchor.x + anchor.width / 2 - client.width / 2,\n y: anchor.y + anchor.height + offset,\n };\n case 'bottom-left':\n return {\n x: anchor.x + anchor.width - client.width,\n y: anchor.y + anchor.height + offset,\n };\n case 'center-left':\n return {\n x: anchor.x - client.width - offset,\n y: anchor.y + anchor.height / 2 - client.height / 2,\n };\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n Output,\n ViewChild,\n} from '@angular/core';\nimport {\n AnchoredPosition,\n AnchoredPositions,\n Direction,\n getOrigin,\n} from './callout-position';\n\n// TODO: once we upgrade to Angular 16, this component can be cleaned up with\n// signals instead of lifecycle hooks.\n@Component({\n selector: 'riv-callout',\n templateUrl: './callout.component.html',\n styleUrls: ['./callout.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CalloutComponent implements AfterViewInit {\n constructor(private readonly cdr: ChangeDetectorRef) {}\n\n @Input()\n anchor: Element | DOMRect | null = null;\n\n @Input()\n isModal: boolean = true;\n\n @Input()\n preferredPosition: AnchoredPosition = 'bottom-right';\n\n @Input()\n allowedPositions: AnchoredPosition[] = [...AnchoredPositions];\n\n @Input()\n fallbackDirection: Direction = 'counter-clockwise';\n\n @Input()\n showCaret: boolean = true;\n\n @Input()\n theme: 'light' | 'dark' = 'dark';\n\n @ViewChild('content') content: ElementRef<HTMLDivElement> | null = null;\n\n @ViewChild('scrim', { static: false }) scrim: ElementRef<HTMLElement> | null =\n null;\n\n scrimClick(evt: MouseEvent) {\n if (evt.target === this.scrim?.nativeElement) {\n this.close.emit();\n }\n }\n\n left: number = 0;\n top: number = 0;\n resolvedPosition: AnchoredPosition = this.preferredPosition;\n\n ngAfterViewInit() {\n const windowSize = {\n width: window.innerWidth,\n height: window.innerHeight,\n };\n\n if (this.anchor === null || this.content === null || this.scrim === null)\n return;\n\n const scrimRect = this.scrim.nativeElement.getBoundingClientRect();\n\n const anchorRect =\n this.anchor instanceof Element\n ? this.anchor.getBoundingClientRect()\n : this.anchor;\n\n const anchorBounds = {\n x: anchorRect.left - scrimRect.left, // In most cases, the scrim will be positioned at (0,0), but if it's not, this will make sure the callout is positioned correctly regardless.\n y: anchorRect.top - scrimRect.top,\n width: anchorRect.right - anchorRect.left,\n height: anchorRect.bottom - anchorRect.top,\n };\n\n const calloutSize = {\n width: this.content.nativeElement.clientWidth,\n height: this.content.nativeElement.clientHeight,\n };\n\n const calloutOrigin = getOrigin(\n anchorBounds,\n calloutSize,\n windowSize,\n this.preferredPosition,\n this.allowedPositions,\n this.fallbackDirection,\n this.showCaret ? 8 : 0,\n );\n\n this.left = calloutOrigin.x;\n this.top = calloutOrigin.y;\n this.resolvedPosition = calloutOrigin.position;\n this.cdr.detectChanges();\n }\n\n @Output()\n readonly close = new EventEmitter();\n}\n","<div\n #scrim\n class=\"scrim\"\n [class.full]=\"isModal\"\n (click)=\"$event.stopPropagation(); scrimClick($event)\"\n>\n <div\n class=\"callout\"\n [ngClass]=\"[theme, resolvedPosition]\"\n [class.caret]=\"showCaret\"\n [style.left.px]=\"left\"\n [style.top.px]=\"top\"\n #content\n >\n <ng-content></ng-content>\n </div>\n</div>\n","import { Directive, OnDestroy, OnInit, TemplateRef } from '@angular/core';\nimport { CalloutService } from './callout.service';\n\n@Directive({\n selector: '[riv-callout]',\n})\nexport class CalloutDirective implements OnInit, OnDestroy {\n constructor(\n private readonly template: TemplateRef<unknown>,\n private readonly calloutService: CalloutService,\n ) {}\n\n ngOnInit() {\n this.calloutService.add(this.template);\n }\n\n ngOnDestroy() {\n this.calloutService.remove(this.template);\n }\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n selector: 'riv-zero-state',\n template: `{{ message }}`,\n styleUrls: ['./zero-state.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ZeroStateComponent {\n @Input()\n message: string = 'No data to display.';\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { arc, pie } from 'd3-shape';\n\nexport type DonutDataPoint = {\n value: number;\n colorToken: string;\n};\n\n@Component({\n selector: 'riv-donut',\n templateUrl: './donut.component.html',\n styleUrls: ['./donut.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DonutComponent {\n @Input()\n displayLabel: string = '';\n\n @Input()\n displayValue: string = '';\n\n @Input()\n data: DonutDataPoint[] = [];\n\n readonly HEIGHT = 256;\n\n get arcPaths() {\n const outer = (this.HEIGHT / 2) * 0.9;\n const inner = outer - 12;\n const pieArcs = pie<DonutDataPoint>()\n .sortValues(null)\n .value(d => d.value)(this.data);\n return pieArcs.map(pieArc =>\n arc<DonutDataPoint>()\n .innerRadius(inner)\n .outerRadius(outer)\n .padAngle(0.013)\n .startAngle(pieArc.startAngle)\n .endAngle(pieArc.endAngle)(pieArc.data),\n );\n }\n\n getFillStyle(idx: number): string {\n return `var(${this.data[idx].colorToken})`;\n }\n\n get empty(): boolean {\n return (\n this.data.length === 0 || this.data.every(point => point.value === 0)\n );\n }\n}\n","<div *ngIf=\"!empty; else zeroState\" class=\"container\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"100%\"\n [attr.height]=\"HEIGHT\"\n viewBox=\"-128 -128 256 256\"\n >\n <path\n *ngFor=\"let path of arcPaths; let i = index\"\n [attr.d]=\"path\"\n [attr.fill]=\"getFillStyle(i)\"\n ></path>\n </svg>\n <div class=\"display\">\n <div class=\"value\">{{ displayValue }}</div>\n <div class=\"label\">{{ displayLabel }}</div>\n </div>\n</div>\n\n<ng-template #zeroState>\n <riv-zero-state></riv-zero-state>\n</ng-template>\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n} from '@angular/core';\n\n@Component({\n selector: 'riv-legend-item',\n templateUrl: './legend-item.component.html',\n styleUrls: ['./legend-item.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LegendItemComponent {\n @Input()\n label: string = '';\n\n @Input()\n colorToken: string = '';\n\n @Input()\n style: 'solid' | 'striped' = 'solid';\n\n @Input()\n visibility: 'visible' | 'hidden' | 'locked' = 'visible';\n\n get backgroundColor(): string {\n return `var(${this.colorToken})`;\n }\n\n @Output()\n itemClick = new EventEmitter();\n}\n","<button (click)=\"itemClick.emit()\">\n <i\n *ngIf=\"visibility === 'visible'\"\n [class.striped]=\"style === 'striped'\"\n [style.background-color]=\"backgroundColor\"\n ></i>\n <riv-icon\n *ngIf=\"visibility === 'hidden'\"\n name=\"EyeOff\"\n [size]=\"16\"\n ></riv-icon>\n <riv-icon *ngIf=\"visibility === 'locked'\" name=\"Lock\" [size]=\"16\"></riv-icon>\n</button>\n<span [class.low-contrast]=\"visibility === 'hidden' || visibility === 'locked'\">\n {{ label }}\n</span>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n selector: 'riv-metric',\n templateUrl: './metric.component.html',\n styleUrls: ['./metric.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MetricComponent {\n @Input()\n label: string = '';\n\n @Input()\n value: string = '';\n\n @Input()\n card: boolean = false;\n}\n","<div *ngIf=\"card; else content\" class=\"card\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</div>\n<ng-template #content>\n <div class=\"label\">{{ label }}</div>\n <div class=\"value\">{{ value }}</div>\n</ng-template>\n","import { DecimalPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { ScaleLinear, scaleLinear } from 'd3-scale';\nimport { line } from 'd3-shape';\nimport {\n CountableTimeInterval,\n timeDay,\n timeMonth,\n timeWeek,\n timeYear,\n} from 'd3-time';\nimport { timeFormat } from 'd3-time-format';\nimport {\n BehaviorSubject,\n Observable,\n combineLatest,\n map,\n shareReplay,\n} from 'rxjs';\n\nexport type DataPoint = {\n value: number;\n date: Date;\n};\n\ntype Series = {\n label: string;\n colorToken: string;\n data: DataPoint[];\n style?: 'solid' | 'dashed';\n};\n\ntype YConfig = {\n pointReducer: (points: DataPoint[]) => number;\n valueFormatter: (reducedValue: number) => string;\n series: Series[];\n min?: number;\n max?: number;\n};\n\nexport type TimeSeriesInput = [YConfig] | [YConfig, YConfig];\n\nenum Interval {\n DAY = 'day',\n WEEK = 'week',\n MONTH = 'month',\n YEAR = 'year',\n}\n\ntype LegendItem = { label: string; colorToken: string };\n\ntype XTick = { value: number; label: string };\n\ntype Marker = DataPoint & { x: number; y: number };\n\ntype YDrawData = YConfig & {\n series: (Series & {\n path: string | null;\n stroke: string;\n markers: Marker[];\n })[];\n yMax: number;\n yMin: number;\n yScale: ScaleLinear<number, number, never>;\n yTicks: number[];\n};\n\ntype DrawData = {\n viewBox: string;\n x: {\n xScale: ScaleLinear<number, number, never>;\n xMinorTicks: XTick[];\n xMajorTicks: XTick[];\n xMax: Date;\n };\n y1: YDrawData;\n y2?: YDrawData;\n};\n\nfunction getTimeInterval(interval: Interval): CountableTimeInterval {\n switch (interval) {\n case Interval.DAY:\n return timeDay;\n case Interval.WEEK:\n return timeWeek;\n case Interval.MONTH:\n return timeMonth;\n case Interval.YEAR:\n return timeYear;\n }\n}\n\nfunction getDateRange(configs: YConfig[]): [Date, Date] {\n let min = Infinity;\n let max = -Infinity;\n for (const config of configs) {\n for (const series of config.series) {\n for (const { date } of series.data) {\n const value = date.valueOf();\n min = Math.min(min, value);\n max = Math.max(max, value);\n }\n }\n }\n return [new Date(min), new Date(max)];\n}\n\nfunction getMinorIntervalFormat(interval: Interval) {\n switch (interval) {\n case Interval.DAY:\n case Interval.WEEK:\n return '%-d';\n case Interval.MONTH:\n return '%b';\n case Interval.YEAR:\n return '%Y';\n }\n}\n\nfunction getMajorInterval(interval: Interval) {\n switch (interval) {\n case Interval.DAY:\n case Interval.WEEK:\n return Interval.MONTH;\n default:\n return Interval.YEAR;\n }\n}\n\nfunction getMajorIntervalFormat(interval: Interval) {\n switch (interval) {\n case Interval.YEAR:\n return '%Y';\n case Interval.MONTH:\n return '%b %Y';\n default:\n return '%d';\n }\n}\n\n// TODO: once we upgrade to Angular 16, this component can be cleaned up with\n// signals instead of RxJS. See commit e238c2d.\n@Component({\n selector: 'riv-time-series',\n templateUrl: './time-series.component.html',\n styleUrls: ['./time-series.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TimeSeriesComponent {\n private readonly input$ = new BehaviorSubject<TimeSeriesInput>([\n {\n pointReducer: points =>\n points.reduce((total, { value }) => total + value, 0),\n valueFormatter: v => new DecimalPipe('en-US').transform(v) ?? '',\n series: [],\n },\n ]);\n @Input()\n public set input(v: TimeSeriesInput) {\n this.input$.next(v);\n }\n public get input(): TimeSeriesInput {\n return this.input$.getValue();\n }\n\n private readonly width$ = new BehaviorSubject<number>(960);\n @Input()\n public set width(v: number) {\n this.width$.next(v);\n }\n public get width(): number {\n return this.width$.getValue();\n }\n\n private readonly height$ = new BehaviorSubject<number>(256);\n @Input()\n public set height(v: number) {\n this.height$.next(v);\n }\n public get height(): number {\n return this.height$.getValue();\n }\n\n readonly BOTTOM_OFFSET = 24;\n readonly LEFT_OFFSET = 48;\n readonly TOP_PADDING = 16;\n readonly LEFT_RIGHT_PADDING = 8;\n readonly BOTTOM_PADDING = 8;\n readonly Y_TICK_COUNT = 5;\n readonly X_MINOR_TICK_LIMIT = 15;\n\n readonly dateRange$ = this.input$.pipe(\n map(getDateRange),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n\n readonly binInterval$ = this.dateRange$.pipe(\n map(([minDate, maxDate]) => {\n const diff = timeDay.count(new Date(minDate), new Date(maxDate));\n if (diff >= 365 * 3) {\n return Interval.YEAR;\n } else if (diff >= 365) {\n return Interval.MONTH;\n } else if (diff >= 90) {\n return Interval.WEEK;\n } else {\n return Interval.DAY;\n }\n }),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n\n readonly binnedData$ = combineLatest([this.input$, this.binInterval$]).pipe(\n map(([input, binInterval]) =>\n input.map((config): YConfig => {\n return {\n ...config,\n series: config.series.map(series => {\n const binned = new Map<number, DataPoint[]>();\n for (const point of series.data) {\n const bin = getTimeInterval(binInterval)\n .floor(point.date)\n .valueOf();\n if (!binned.has(bin)) {\n binned.set(bin, []);\n }\n binned.get(bin)!.push(point);\n }\n return {\n ...series,\n data: [...binned.entries()].map(([dateValue, points]) => ({\n date: new Date(dateValue),\n value: config.pointReducer(points),\n })),\n };\n }),\n };\n }),\n ),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n\n readonly binnedDateRange$ = this.binnedData$.pipe(\n map(getDateRange),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n\n readonly drawData$: Observable<DrawData> = combineLatest([\n this.binnedData$,\n this.binnedDateRange$,\n this.binInterval$,\n this.width$,\n this.height$,\n ]).pipe(\n map(([binnedData, binnedDateRange, binInterval, width, height]) => {\n const viewBox = `0 0 ${width} ${height}`;\n\n const xScale = scaleLinear()\n .domain(binnedDateRange)\n .range([\n this.LEFT_OFFSET + this.LEFT_RIGHT_PADDING,\n width - this.LEFT_RIGHT_PADDING * 2,\n ]);\n const xMinorIntervalFormat = getMinorIntervalFormat(binInterval);\n const [minDateValue, maxDateValue] = binnedDateRange;\n const minorFormatter = timeFormat(xMinorIntervalFormat);\n const xMinorTicks = getTimeInterval(binInterval)\n .range(minDateValue, timeDay.offset(maxDateValue, 1))\n .map(date => ({\n value: date.valueOf(),\n label: minorFormatter(date),\n }))\n .filter((_, i, arr) =>\n arr.length > this.X_MINOR_TICK_LIMIT\n ? i % Math.round(arr.length / this.X_MINOR_TICK_LIMIT) === 0\n : true,\n );\n const xMajorInterval = getMajorInterval(binInterval);\n const xMajorIntervalFormat = getMajorIntervalFormat(xMajorInterval);\n const timeInterval = getTimeInterval(xMajorInterval);\n const tickFloor = timeInterval.floor(minDateValue);\n const tickCeiling = timeInterval.ceil(timeDay.offset(maxDateValue, 1));\n const majorFormatter = timeFormat(xMajorIntervalFormat);\n const xMajorTicks = timeInterval\n .range(tickFloor, tickCeiling)\n .map(tickDate => ({\n label: xMajorInterval === binInterval ? '' : majorFormatter(tickDate),\n value: tickDate.valueOf(),\n }));\n const x = { xMax: maxDateValue, xScale, xMinorTicks, xMajorTicks };\n\n const [y1, y2] = binnedData.map(config => {\n const flattenedValues = config.series.reduce<number[]>(\n (values, series) => [\n ...values,\n ...series.data.map(({ value }) => value),\n ],\n [],\n );\n const yMax = config.max ?? Math.max(...flattenedValues);\n const yMin = config.min ?? Math.min(...flattenedValues, 0);\n const yScale = scaleLinear()\n .domain([yMin, yMax])\n .range([\n height -\n this.BOTTOM_OFFSET -\n (this.BOTTOM_PADDING + this.TOP_PADDING),\n this.TOP_PADDING,\n ]);\n const yTicks = yScale.ticks(this.Y_TICK_COUNT);\n const series = config.series.map(series => ({\n ...series,\n path: line<DataPoint>()\n .x(d => xScale(d.date))\n .y(d => yScale(d.value))(series.data),\n stroke: `var(${series.colorToken})`,\n markers: series.data.map(point => ({\n ...point,\n x: xScale(point.date),\n y: yScale(point.value),\n })),\n }));\n return {\n ...config,\n series,\n yMax,\n yMin,\n yScale,\n yTicks,\n };\n });\n\n // If we have a y2, coerce y1's ticks to be visually equivalent to y2's ticks.\n if (y2?.yTicks) {\n const tickConversionScale = scaleLinear()\n .range(y1.yScale.domain())\n .domain(y2.yScale.domain());\n y1.yTicks = y2.yTicks.map(tickConversionScale);\n }\n\n return { viewBox, x, y1, y2 };\n }),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n\n readonly legend$ = this.binnedData$.pipe(\n map(binnedData =>\n binnedData.reduce<LegendItem[]>(\n (items, config) => [\n ...items,\n ...config.series.map(series => ({\n label: series.label,\n colorToken: series.colorToken,\n })),\n ],\n [],\n ),\n ),\n );\n\n readonly empty$ = this.binnedData$.pipe(\n map(binnedData =>\n binnedData.every(config =>\n config.series.every(series => series.data.length === 0),\n ),\n ),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n\n readonly hoveredMarker$ = new BehaviorSubject<{\n event: MouseEvent;\n marker: Marker;\n } | null>(null);\n\n readonly callout$ = combineLatest([this.hoveredMarker$, this.drawData$]).pipe(\n map(([hoveredMarker, drawData]) => {\n if (!hoveredMarker) return null;\n\n const { target } = hoveredMarker.event;\n if (!target) return null;\n const markerRect = (<SVGCircleElement>target).getBoundingClientRect();\n const padding = 8;\n const anchor = new DOMRect(\n markerRect.left - padding,\n markerRect.top - padding,\n markerRect.width + padding * 2,\n markerRect.height + padding * 2,\n );\n\n type Metric = { label: string; value: string };\n const metrics: Metric[] = [];\n\n for (const series of drawData.y1.series) {\n const match = series.markers.find(\n marker => marker.x === hoveredMarker.marker.x,\n );\n if (match) {\n metrics.push({\n label: series.label,\n value: drawData.y1.valueFormatter(match.value),\n });\n }\n }\n\n if (drawData.y2) {\n for (const series of drawData.y2.series) {\n const match = series.markers.find(\n marker => marker.x === hoveredMarker.marker.x,\n );\n if (match) {\n metrics.push({\n label: series.label,\n value: drawData.y2.valueFormatter(match.value),\n });\n }\n }\n }\n\n return { anchor, metrics };\n }),\n );\n}\n","<div *ngIf=\"!(empty$ | async); else zeroState\" class=\"container\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n *ngIf=\"drawData$ | async; let d\"\n [attr.viewBox]=\"d.viewBox\"\n >\n <g *ngFor=\"let tick of d.x.xMajorTicks\">\n <rect\n class=\"tick\"\n [attr.x]=\"d.x.xScale(tick.value)\"\n y=\"0\"\n width=\"1\"\n [attr.height]=\"d.y1.yScale(d.y1.yMin)\"\n ></rect>\n <text\n class=\"x-major-tick-label\"\n [attr.x]=\"d.x.xScale(tick.value)\"\n [attr.y]=\"d.y1.yScale(d.y1.yMin)\"\n dx=\"4\"\n dy=\"-4\"\n >\n {{ tick.label }}\n </text>\n </g>\n <g *ngFor=\"let tick of d.x.xMinorTicks\">\n <text\n class=\"x-minor-tick-label\"\n [attr.x]=\"d.x.xScale(tick.value)\"\n [attr.y]=\"d.y1.yScale(d.y1.yMin)\"\n text-anchor=\"middle\"\n dominant-baseline=\"hanging\"\n dy=\"8\"\n >\n {{ tick.label }}\n <title>{{ tick.value | date }}</title>\n </text>\n </g>\n <g *ngFor=\"let tick of d.y1.yTicks\">\n <rect\n class=\"tick\"\n x=\"0\"\n [attr.y]=\"d.y1.yScale(tick)\"\n width=\"100%\"\n height=\"1\"\n ></rect>\n <text class=\"y-tick-label\" x=\"0\" [attr.y]=\"d.y1.yScale(tick)\" dy=\"-4\">\n {{ d.y1.valueFormatter(tick) }}\n </text>\n </g>\n\n <g *ngFor=\"let tick of d.y2?.yTicks\">\n <text\n class=\"y-tick-label\"\n [attr.x]=\"d.x.xScale(d.x.xMax)\"\n [attr.y]=\"d.y2?.yScale(tick)\"\n text-anchor=\"end\"\n dy=\"-4\"\n >\n {{ d.y2?.valueFormatter(tick) }}\n </text>\n </g>\n\n <g *ngIf=\"hoveredMarker$ | async; let hoveredMarker\">\n <line\n class=\"hover-rule\"\n [attr.x1]=\"hoveredMarker.marker.x\"\n [attr.y1]=\"d.y1.yScale(d.y1.yMin)\"\n [attr.x2]=\"hoveredMarker.marker.x\"\n [attr.y2]=\"d.y1.yScale(d.y1.yMax)\"\n stroke-width=\"2\"\n stroke-dasharray=\"4\"\n />\n </g>\n\n <ng-template #seriesTpl let-series=\"series\">\n <path\n class=\"data path\"\n [class.marker-hovered]=\"!!(hoveredMarker$ | async)\"\n [attr.d]=\"series.path\"\n fill=\"none\"\n stroke-width=\"2\"\n [attr.stroke]=\"series.stroke\"\n [attr.stroke-dasharray]=\"series.style === 'dashed' ? '4' : null\"\n ></path>\n <circle\n *ngFor=\"let marker of series.markers\"\n class=\"data marker\"\n [class.focused]=\"(hoveredMarker$ | async)?.marker?.x === marker.x\"\n [class.blurred]=\"\n (hoveredMarker$ | async) !== null &&\n (hoveredMarker$ | async)?.marker?.x !== marker.x\n \"\n [attr.cx]=\"marker.x\"\n [attr.cy]=\"marker.y\"\n r=\"3.5\"\n stroke-width=\"2\"\n [attr.stroke]=\"series.stroke\"\n (mouseover)=\"hoveredMarker$.next({ event: $event, marker: marker })\"\n (mouseleave)=\"hoveredMarker$.next(null)\"\n ></circle>\n </ng-template>\n <g *ngFor=\"let series of d.y1.series\">\n <ng-container\n *ngTemplateOutlet=\"seriesTpl; context: { series: series }\"\n ></ng-container>\n </g>\n <g *ngFor=\"let series of d.y2?.series\">\n <ng-container\n *ngTemplateOutlet=\"seriesTpl; context: { series: series }\"\n ></ng-container>\n </g>\n </svg>\n <legend>\n <riv-legend-item\n *ngFor=\"let item of legend$ | async\"\n [label]=\"item.label\"\n [colorToken]=\"item.colorToken\"\n ></riv-legend-item>\n </legend>\n</div>\n\n<ng-container *ngIf=\"callout$ | async; let callout\">\n <riv-callout\n *riv-callout\n [anchor]=\"callout.anchor\"\n [isModal]=\"false\"\n [preferredPosition]=\"'top-center'\"\n >\n <div class=\"callout-content\">\n <div class=\"callout-metric\" *ngFor=\"let metric of callout.metrics\">\n <div>{{ metric.label }}</div>\n <div class=\"callout-metric-value\">{{ metric.value }}</div>\n </div>\n </div>\n </riv-callout>\n</ng-container>\n\n<ng-template #zeroState>\n <riv-zero-state></riv-zero-state>\n</ng-template>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n selector: 'riv-data-table',\n styleUrls: ['./data-table.component.css'],\n template: '<table><ng-content></ng-content></table>',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DataTableComponent {}\n","import {\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n Input,\n} from '@angular/core';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: '[riv-data-table-row]',\n styleUrls: ['./data-table-row.component.css'],\n template: '<ng-content></ng-content>',\n})\nexport class DataTableRowComponent {\n @Input()\n @HostBinding('class.sub-row')\n public subRow: boolean = false;\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n OnInit,\n} from '@angular/core';\nimport { DataTableRowComponent } from './data-table-row.component';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: '[riv-data-table-cell]',\n styleUrls: ['./data-table-cell.component.css'],\n template: '<ng-content></ng-content>',\n})\nexport class DataTableCellComponent implements OnInit {\n constructor(private readonly row: DataTableRowComponent) {}\n\n @HostBinding('class.sub-cell')\n public subCell: boolean = false;\n\n ngOnInit(): void {\n this.subCell = this.row.subRow;\n }\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: '[riv-data-table-header-cell]',\n styleUrls: ['./data-table-header-cell.component.css'],\n template: '<ng-content></ng-content>',\n})\nexport class DataTableHeaderCellComponent {}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { index } from 'd3-array';\nimport { scaleBand, scaleLinear } from 'd3-scale';\nimport { stack } from 'd3-shape';\nimport { timeMonth } from 'd3-time';\nimport { timeFormat } from 'd3-time-format';\nimport { BehaviorSubject, combineLatest, map, shareReplay } from 'rxjs';\n\nfunction getDateRange(stacks: Stack[]): [Date, Date] {\n let min = Infinity;\n let max = -Infinity;\n for (const stack of stacks) {\n for (const series of stack) {\n for (const { date } of series.data) {\n const value = date.valueOf();\n min = Math.min(min, value);\n max = Math.max(max, value);\n }\n }\n }\n return [new Date(min), new Date(max)];\n}\n\nexport type Value = { date: Date; value: number };\n\nexport type Series = {\n label: string;\n colorToken: string;\n data: Value[];\n style?: 'solid' | 'striped';\n};\n\nexport type Stack = Series[];\n\n// TODO: once we upgrade to Angular 16, this component can be cleaned up with\n// signals instead of RxJS.\n@Component({\n selector: 'riv-stacked-column',\n templateUrl: './stacked-column.component.html',\n styleUrls: ['./stacked-column.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class StackedColumnComponent {\n private readonly input$ = new BehaviorSubject<Stack[]>([]);\n @Input()\n public set input(v: Stack[]) {\n this.input$.next(v);\n }\n public get input(): Stack[] {\n return this.input$.getValue();\n }\n\n private readonly width$ = new BehaviorSubject<number>(960);\n @Input()\n public set width(v: number) {\n this.width$.next(v);\n }\n public get width(): number {\n return this.width$.getValue();\n }\n\n private readonly height$ = new BehaviorSubject<number>(256);\n @Input()\n public set height(v: number) {\n this.height$.next(v);\n }\n public get height(): number {\n return this.height$.getValue();\n }\n\n @Input()\n public valueFormatter: (v: number) => string = v => v.toString();\n\n readonly drawData$ = combineLatest([\n this.input$,\n this.width$,\n this.height$,\n ]).pipe(\n map(([input, width, height]) => {\n const viewBox = `0 0 ${width} ${height}`;\n const padding = 8;\n\n const [minDate, maxDate] = getDateRange(input);\n const xSteps = timeMonth.range(\n timeMonth.floor(minDate),\n timeMonth.floor(timeMonth.offset(maxDate, 1)),\n );\n const xFormatter = timeFormat('%b');\n const xOuterScale = scaleBand()\n .domain(xSteps.map(date => xFormatter(date)))\n .range([0, width]);\n\n const columnWidth = 6;\n const columnPadding = 4;\n const outerPadding =\n (xOuterScale.bandwidth() -\n (columnPadding * (input.length - 1) + columnWidth * input.length)) /\n 2;\n\n type SeriesPoint = Value & { series: Series };\n\n const renderInformation = input.map(stackData => {\n const stackedTable = stackData.reduce<SeriesPoint[]>(\n (table, s) => [\n ...table,\n ...s.data.map(point => ({\n ...point,\n series: s,\n })),\n ],\n [],\n );\n const indexedTable: Map<Date, Map<string, SeriesPoint>> = index(\n stackedTable,\n d => d.date,\n d => d.series.label,\n );\n\n const stacked = stack<\n typeof indexedTable extends Map<infer K, infer V> ? [K, V] : never\n >()\n .keys(stackData.map(v => v.label))\n .value(([_, group], key) => {\n return group.get(key)!.value;\n })(indexedTable);\n\n return { indexedTable, stacked };\n });\n\n let domainMax = 0;\n renderInformation.forEach(({ stacked, indexedTable }) => {\n [...indexedTable.values()].forEach((pointMap, i) => {\n [...pointMap.values()].forEach((_, j) => {\n domainMax = Math.max(domainMax, ...stacked[j][i]);\n });\n });\n });\n const yScale = scaleLinear()\n .domain([0, domainMax])\n .range([height - padding * 2, padding]);\n\n const rects: {\n dateValue: number;\n x: number;\n y: number;\n width: number;\n height: number;\n fill: string;\n striped: boolean;\n seriesPoint: SeriesPoint;\n }[] = [];\n renderInformation.forEach(({ stacked, indexedTable }, index) => {\n [...indexedTable.entries()].forEach(([date, pointMap], i) => {\n [...pointMap.entries()].forEach(([_, seriesPoint], j) => {\n const [baseline, topline] = stacked[j][i];\n\n const width = columnWidth;\n const height = yScale(baseline) - yScale(topline);\n const x =\n (xOuterScale(xFormatter(date)) ?? 0) +\n outerPadding +\n columnWidth * index +\n columnPadding * index;\n const y = yScale(baseline) - height;\n const fill = `var(${seriesPoint.series.colorToken})`;\n\n rects.push({\n dateValue: date.valueOf(),\n x,\n y,\n width,\n height,\n fill,\n striped: seriesPoint.series.style === 'striped',\n seriesPoint,\n });\n });\n });\n });\n\n const xTicks = xSteps.map(date => ({\n dateValue: date.valueOf(),\n label: xFormatter(date),\n x: (xOuterScale(xFormatter(date)) ?? 0) + xOuterScale.bandwidth() / 2,\n }));\n const yTicks = yScale.ticks(5);\n\n const hoverBandWidth =\n renderInformation.length * columnWidth +\n (renderInformation.length + 1) * columnPadding;\n const hoverBands = xSteps.map(date => ({\n dateValue: date.valueOf(),\n x:\n (xOuterScale(xFormatter(date)) ?? 0) +\n (xOuterScale.bandwidth() - hoverBandWidth) / 2,\n y: yScale(domainMax),\n width: hoverBandWidth,\n height: yScale(0) - yScale(domainMax),\n }));\n\n return {\n columnWidth,\n hoverBands,\n rects,\n viewBox,\n xTicks,\n yScale,\n yTicks,\n };\n }),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n\n readonly empty$ = this.input$.pipe(\n map(input =>\n input.every(stack => stack.every(series => series.data.length === 0)),\n ),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n\n readonly hoveredBand$ = new BehaviorSubject<{\n dateValue: number;\n event: MouseEvent;\n } | null>(null);\n\n readonly callout$ = combineLatest([this.hoveredBand$, this.drawData$]).pipe(\n map(([hoveredBand, drawData]) => {\n if (!hoveredBand) return null;\n\n const { target } = hoveredBand.event;\n if (!target) return null;\n const anchor = (<SVGRectElement>target).getBoundingClientRect();\n\n type Metric = { label: string; value: string };\n const metrics: Metric[] = drawData.rects\n .filter(rect => rect.dateValue === hoveredBand.dateValue)\n .map(rect => ({\n label: rect.seriesPoint.series.label,\n value: this.valueFormatter(rect.seriesPoint.value),\n }));\n\n return { anchor, metrics };\n }),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n}\n","<div *ngIf=\"!(empty$ | async); else zeroState\" class=\"container\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n *ngIf=\"drawData$ | async; let d\"\n [attr.viewBox]=\"d.viewBox\"\n >\n <defs>\n <pattern\n id=\"stripes\"\n x=\"0\"\n y=\"0\"\n [attr.width]=\"d.columnWidth\"\n [attr.height]=\"d.columnWidth\"\n patternUnits=\"userSpaceOnUse\"\n >\n <line\n x1=\"0\"\n [attr.y1]=\"d.columnWidth\"\n [attr.x2]=\"d.columnWidth\"\n y2=\"0\"\n stroke=\"var(--white-100)\"\n stroke-width=\"1\"\n ></line>\n </pattern>\n </defs>\n <g *ngFor=\"let tick of d.xTicks\">\n <rect\n class=\"tick-background\"\n [class.focused]=\"(hoveredBand$ | async)?.dateValue === tick.dateValue\"\n [attr.x]=\"tick.x - 20\"\n [attr.y]=\"d.yScale(0) + 3\"\n width=\"40\"\n height=\"12\"\n rx=\"2\"\n ></rect>\n <text\n class=\"tick-label\"\n [attr.x]=\"tick.x\"\n [attr.y]=\"d.yScale(0) + 12\"\n text-anchor=\"middle\"\n >\n {{ tick.label }}\n </text>\n </g>\n <g *ngFor=\"let tick of d.yTicks\">\n <rect\n class=\"tick\"\n x=\"0\"\n [attr.y]=\"d.yScale(tick)\"\n width=\"100%\"\n height=\"1\"\n ></rect>\n <text class=\"tick-label\" x=\"0\" [attr.y]=\"d.yScale(tick)\" dy=\"-4\">\n {{ valueFormatter(tick) }}\n </text>\n </g>\n <g *ngFor=\"let rect of d.rects\">\n <rect\n class=\"column\"\n [attr.x]=\"rect.x\"\n [attr.y]=\"rect.y\"\n [attr.width]=\"rect.width\"\n [attr.height]=\"rect.height\"\n [attr.fill]=\"rect.fill\"\n [class.blurred]=\"\n (hoveredBand$ | async) !== null &&\n (hoveredBand$ | async)?.dateValue !== rect.dateValue\n \"\n ></rect>\n <rect\n *ngIf=\"rect.striped\"\n [attr.x]=\"rect.x\"\n [attr.y]=\"rect.y\"\n [attr.width]=\"rect.width\"\n [attr.height]=\"rect.height\"\n fill=\"url(#stripes)\"\n ></rect>\n </g>\n <rect\n *ngFor=\"let rect of d.hoverBands\"\n [attr.x]=\"rect.x\"\n [attr.y]=\"rect.y\"\n [attr.width]=\"rect.width\"\n [attr.height]=\"rect.height\"\n fill=\"transparent\"\n (mouseenter)=\"\n hoveredBand$.next({ dateValue: rect.dateValue, event: $event })\n \"\n (mouseleave)=\"hoveredBand$.next(null)\"\n ></rect>\n </svg>\n</div>\n\n<ng-container *ngIf=\"callout$ | async; let callout\">\n <riv-callout\n *riv-callout\n [anchor]=\"callout.anchor\"\n [isModal]=\"false\"\n [preferredPosition]=\"'center-right'\"\n [allowedPositions]=\"[\n 'center-right',\n 'center-left',\n 'top-center',\n 'bottom-center'\n ]\"\n >\n <div class=\"callout-content\">\n <div class=\"callout-metric\" *ngFor=\"let metric of callout.metrics\">\n <div>{{ metric.label }}</div>\n <div class=\"callout-metric-value\">{{ metric.value }}</div>\n </div>\n </div>\n </riv-callout>\n</ng-container>\n\n<ng-template #zeroState>\n <riv-zero-state></riv-zero-state>\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport { DonutComponent } from './visualization/donut/donut.component';\nimport { IconComponent } from '../public-api';\nimport { LegendItemComponent } from './visualization/legend-item/legend-item.component';\nimport { MetricComponent } from './visualization/metric/metric.component';\nimport { NgModule } from '@angular/core';\nimport { TextToggleComponent } from './content-toggle/text-toggle/text-toggle.component';\nimport { TimeSeriesComponent } from './visualization/time-series/time-series.component';\nimport { DataTableComponent } from './visualization/data-table/data-table.component';\nimport { DataTableRowComponent } from './visualization/data-table/data-table-row.component';\nimport { DataTableCellComponent } from './visualization/data-table/data-table-cell.component';\nimport { DataTableHeaderCellComponent } from './visualization/data-table/data-table-header-cell.component';\nimport { CalloutComponent } from './modal/callout/callout.component';\nimport { CalloutOutletComponent } from './modal/callout/callout-outlet.component';\nimport { CalloutDirective } from './modal/callout/callout.directive';\nimport { ZeroStateComponent } from './visualization/zero-state/zero-state.component';\nimport { StackedColumnComponent } from './visualization/stacked-column/stacked-column.component';\n\n@NgModule({\n declarations: [\n CalloutComponent,\n CalloutDirective,\n CalloutOutletComponent,\n DataTableCellComponent,\n DataTableComponent,\n DataTableHeaderCellComponent,\n DataTableRowComponent,\n DonutComponent,\n IconComponent,\n LegendItemComponent,\n MetricComponent,\n StackedColumnComponent,\n TextToggleComponent,\n TimeSeriesComponent,\n ZeroStateComponent,\n ],\n exports: [\n CalloutComponent,\n CalloutDirective,\n CalloutOutletComponent,\n DataTableCellComponent,\n DataTableComponent,\n DataTableHeaderCellComponent,\n DataTableRowComponent,\n DonutComponent,\n IconComponent,\n LegendItemComponent,\n MetricComponent,\n StackedColumnComponent,\n TextToggleComponent,\n TimeSeriesComponent,\n ZeroStateComponent,\n ],\n imports: [CommonModule],\n})\nexport class RivModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.IconComponent","i1.CalloutService","i2","i2.ZeroStateComponent","getDateRange","i2.CalloutComponent","i3.CalloutDirective","i4.LegendItemComponent","i5.ZeroStateComponent","i1.DataTableRowComponent","i4.ZeroStateComponent"],"mappings":";;;;;;;;;;;AAKA;;AAEG;MACU,QAAQ,CAAA;AAGnB,IAAA,WAAA,CAA6B,MAAqB,EAAA;AAArB,QAAA,IAAM,CAAA,MAAA,GAAN,MAAM,CAAe;AAFjC,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,GAAG,EAAa,CAAC;KAEQ;AAEtD,IAAA,GAAG,CAAC,GAAM,EAAA;QACR,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC9B,QAAA,IAAI,MAAS,CAAC;AACd,QAAA,IAAI,GAAG,EAAE;AACP,YAAA,MAAM,GAAM,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AACvD,SAAA;AAAM,aAAA;AACL,YAAA,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC1B,YAAA,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;YAChB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC1B,SAAA;AAED,QAAA,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAEhB,OAAO;AACL,YAAA,KAAK,EAAE,MAAM;YACb,OAAO,EAAE,MAAK;AACZ,gBAAA,GAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AACpB,gBAAA,IAAI,CAAC,GAAI,CAAC,IAAI,EAAE;AACd,oBAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AACxB,iBAAA;aACF;SACF,CAAC;KACH;AACF;;ACpCD,MAAM,QAAQ,GAAG,CAAA,yKAAA,CAA2K,CAAC;AAC7L,MAAM,WAAW,GAAG,CAAA,mPAAA,CAAqP,CAAC;AAC1Q,MAAM,YAAY,GAAG,CAAA,+SAAA,CAAiT,CAAC;AACvU,MAAM,aAAa,GAAG,CAAA,uTAAA,CAAyT,CAAC;AAChV,MAAM,SAAS,GAAG,CAAA,2RAAA,CAA6R,CAAC;AAChT,MAAM,MAAM,GAAG,CAAA,wOAAA,CAA0O,CAAC;AAC1P,MAAM,OAAO,GAAG,CAAA,wPAAA,CAA0P,CAAC;AAC3Q,MAAM,SAAS,GAAG,CAAA,wMAAA,CAA0M,CAAC;AAC7N,MAAM,aAAa,GAAG,CAAA,0MAAA,CAA4M,CAAC;AACnO,MAAM,SAAS,GAAG,CAAA,uMAAA,CAAyM,CAAC;AAC5N,MAAM,eAAe,GAAG,CAAA,sPAAA,CAAwP,CAAC;AACjR,MAAM,UAAU,GAAG,CAAA,yMAAA,CAA2M,CAAC;AAC/N,MAAM,OAAO,GAAG,CAAA,qMAAA,CAAuM,CAAC;AACxN,MAAM,YAAY,GAAG,CAAA,yMAAA,CAA2M,CAAC;AACjO,MAAM,MAAM,GAAG,CAAA,iNAAA,CAAmN,CAAC;AACnO,MAAM,SAAS,GAAG,CAAA,kPAAA,CAAoP,CAAC;AACvQ,MAAM,IAAI,GAAG,CAAA,gNAAA,CAAkN,CAAC;AAChO,MAAM,IAAI,GAAG,CAAA,wOAAA,CAA0O,CAAC;AACxP,MAAM,QAAQ,GAAG,CAAA,kOAAA,CAAoO,CAAC;AACtP,MAAM,SAAS,GAAG,CAAA,sOAAA,CAAwO,CAAC;AAC3P,MAAM,QAAQ,GAAG,CAAA,ySAAA,CAA2S,CAAC;AAC7T,MAAM,KAAK,GAAG,CAAA,qJAAA,CAAuJ,CAAC;AACtK,MAAM,WAAW,GAAG,CAAA,uNAAA,CAAyN,CAAC;AAC9O,MAAM,WAAW,GAAG,CAAA,wOAAA,CAA0O,CAAC;AAC/P,MAAM,WAAW,GAAG,CAAA,oKAAA,CAAsK,CAAC;AAC3L,MAAM,WAAW,GAAG,CAAA,qKAAA,CAAuK,CAAC;AAC5L,MAAM,YAAY,GAAG,CAAA,qKAAA,CAAuK,CAAC;AAC7L,MAAM,aAAa,GAAG,CAAA,uNAAA,CAAyN,CAAC;AAChP,MAAM,YAAY,GAAG,CAAA,uNAAA,CAAyN,CAAC;AAC/O,MAAM,SAAS,GAAG,CAAA,2JAAA,CAA6J,CAAC;AAChL,MAAM,SAAS,GAAG,CAAA,kQAAA,CAAoQ,CAAC;AACvR,MAAM,KAAK,GAAG,CAAA,+LAAA,CAAiM,CAAC;AAChN,MAAM,MAAM,GAAG,CAAA,8UAAA,CAAgV,CAAC;AAChW,MAAM,IAAI,GAAG,CAAA,8OAAA,CAAgP,CAAC;AAC9P,MAAM,YAAY,GAAG,CAAA,uMAAA,CAAyM,CAAC;AAC/N,MAAM,UAAU,GAAG,CAAA,wNAAA,CAA0N,CAAC;AAC9O,MAAM,UAAU,GAAG,CAAA,6NAAA,CAA+N,CAAC;AACnP,MAAM,QAAQ,GAAG,CAAA,iQAAA,CAAmQ,CAAC;AACrR,MAAM,aAAa,GAAG,CAAA,kRAAA,CAAoR,CAAC;AAC3S,MAAM,IAAI,GAAG,CAAA,4PAAA,CAA8P,CAAC;AAC5Q,MAAM,KAAK,GAAG,CAAA,kLAAA,CAAoL,CAAC;AACnM,MAAM,YAAY,GAAG,CAAA,mRAAA,CAAqR,CAAC;AAC3S,MAAM,GAAG,GAAG,CAAA,2MAAA,CAA6M,CAAC;AAC1N,MAAM,MAAM,GAAG,CAAA,2VAAA,CAA6V,CAAC;AAC7W,MAAM,IAAI,GAAG,CAAA,gOAAA,CAAkO,CAAC;AAChP,MAAM,QAAQ,GAAG,CAAA,8TAAA,CAAgU,CAAC;AAClV,MAAM,QAAQ,GAAG,CAAA,wWAAA,CAA0W,CAAC;AAC5X,MAAM,MAAM,GAAG,CAAA,iLAAA,CAAmL,CAAC;AACnM,MAAM,IAAI,GAAG,CAAA,6NAAA,CAA+N,CAAC;AAC7O,MAAM,MAAM,GAAG,CAAA,sMAAA,CAAwM,CAAC;AACxN,MAAM,IAAI,GAAG,CAAA,oRAAA,CAAsR,CAAC;AACpS,MAAM,UAAU,GAAG,CAAA,4PAAA,CAA8P,CAAC;AAClR,MAAM,IAAI,GAAG,CAAA,2NAAA,CAA6N,CAAC;AAC3O,MAAM,KAAK,GAAG,CAAA,oSAAA,CAAsS,CAAC;AACrT,MAAM,IAAI,GAAG,CAAA,0OAAA,CAA4O,CAAC;AAC1P,MAAM,GAAG,GAAG,CAAA,+OAAA,CAAiP,CAAC;AAC9P,MAAM,MAAM,GAAG,CAAA,4PAAA,CAA8P,CAAC;AAC9Q,MAAM,KAAK,GAAG,CAAA,kPAAA,CAAoP,CAAC;AACnQ,MAAM,IAAI,GAAG,CAAA,iXAAA,CAAmX,CAAC;AACjY,MAAM,IAAI,GAAG,CAAA,gNAAA,CAAkN,CAAC;AAChO,MAAM,IAAI,GAAG,CAAA,iPAAA,CAAmP,CAAC;AACjQ,MAAM,MAAM,GAAG,CAAA,iNAAA,CAAmN,CAAC;AACnO,MAAM,QAAQ,GAAG,CAAA,0NAAA,CAA4N,CAAC;AAC9O,MAAM,SAAS,GAAG,CAAA,+RAAA,CAAiS,CAAC;AACpT,MAAM,IAAI,GAAG,CAAA,yOAAA,CAA2O,CAAC;AACzP,MAAM,aAAa,GAAG,CAAA,2TAAA,CAA6T,CAAC;AACpV,MAAM,SAAS,GAAG,CAAA,mSAAA,CAAqS,CAAC;AACxT,MAAM,KAAK,GAAG,CAAA,oJAAA,CAAsJ,CAAC;AACrK,MAAM,WAAW,GAAG,CAAA,mMAAA,CAAqM,CAAC;AAC1N,MAAM,cAAc,GAAG,CAAA,sOAAA,CAAwO,CAAC;AAChQ,MAAM,YAAY,GAAG,CAAA,oOAAA,CAAsO,CAAC;AAC5P,MAAM,SAAS,GAAG,CAAA,+OAAA,CAAiP,CAAC;AACpQ,MAAM,OAAO,GAAG,CAAA,6OAAA,CAA+O,CAAC;AAChQ,MAAM,KAAK,GAAG,CAAA,uZAAA,CAAyZ,CAAC;AACxa,MAAM,QAAQ,GAAG,CAAA,0MAAA,CAA4M,CAAC;AAC9N,MAAM,UAAU,GAAG,CAAA,wMAAA,CAA0M,CAAC;AAC9N,MAAM,IAAI,GAAG,CAAA,+LAAA,CAAiM,CAAC;AAC/M,MAAM,UAAU,GAAG,CAAA,8OAAA,CAAgP,CAAC;AACpQ,MAAM,KAAK,GAAG,CAAA,mMAAA,CAAqM,CAAC;AACpN,MAAM,OAAO,GAAG,CAAA,sSAAA,CAAwS,CAAC;AACzT,MAAM,SAAS,GAAG,CAAA,+RAAA,CAAiS,CAAC;AACpT,MAAM,QAAQ,GAAG,CAAA,gNAAA,CAAkN,CAAC;AACpO,MAAM,IAAI,GAAG,CAAA,uRAAA,CAAyR,CAAC;AACvS,MAAM,MAAM,GAAG,CAAA,mMAAA,CAAqM,CAAC;AACrN,MAAM,IAAI,GAAG,CAAA,yMAAA,CAA2M,CAAC;AACzN,MAAM,QAAQ,GAAG,CAAA,k4BAAA,CAAo4B,CAAC;AACt5B,MAAM,KAAK,GAAG,CAAA,2PAAA,CAA6P,CAAC;AAC5Q,MAAM,MAAM,GAAG,CAAA,sKAAA,CAAwK,CAAC;AACxL,MAAM,OAAO,GAAG,CAAA,kNAAA,CAAoN,CAAC;AACrO,MAAM,KAAK,GAAG,CAAA,uMAAA,CAAyM,CAAC;AACxN,MAAM,KAAK,GAAG,CAAA,mRAAA,CAAqR,CAAC;AACpS,MAAM,IAAI,GAAG,CAAA,kOAAA,CAAoO,CAAC;AAClP,MAAM,GAAG,GAAG,CAAA,yhBAAA,CAA2hB,CAAC;AACxiB,MAAM,GAAG,GAAG,CAAA,kPAAA,CAAoP,CAAC;AACjQ,MAAM,MAAM,GAAG,CAAA,+NAAA,CAAiO,CAAC;AACjP,MAAM,MAAM,GAAG,CAAA,+UAAA,CAAiV,CAAC;AACjW,MAAM,YAAY,GAAG,CAAA,0NAAA,CAA4N,CAAC;AAClP,MAAM,UAAU,GAAG,CAAA,uNAAA,CAAyN,CAAC;AAC7O,MAAM,MAAM,GAAG,CAAA,iNAAA,CAAmN,CAAC;AACnO,MAAM,WAAW,GAAG,CAAA,8TAAA,CAAgU,CAAC;AACrV,MAAM,IAAI,GAAG,CAAA,wMAAA,CAA0M,CAAC;AACxN,MAAM,SAAS,GAAG,CAAA,8PAAA,CAAgQ,CAAC;AACnR,MAAM,QAAQ,GAAG,CAAA,uSAAA,CAAyS,CAAC;AAC3T,MAAM,KAAK,GAAG,CAAA,+RAAA,CAAiS,CAAC;AAChT,MAAM,CAAC,GAAG,CAAA,0LAAA,CAA4L,CAAC;AACvM,MAAM,OAAO,GAAG,CAAA,yOAAA,CAA2O,CAAC;AAC5P,MAAM,OAAO,GAAG,CAAA,+PAAA,CAAiQ,CAAC;AAClR,MAAM,MAAM,GAAG,CAAA,4RAAA,CAA8R,CAAC;AAC9S,MAAM,OAAO,GAAG,CAAA,iPAAA,CAAmP,CAAC;AACpQ,MAAM,SAAS,GAAG,CAAA,mVAAA,CAAqV,CAAC;AACxW,MAAM,WAAW,GAAG,CAAA,+TAAA,CAAiU,CAAC;AACtV,MAAM,SAAS,GAAG,CAAA,ylBAAA,CAA2lB,CAAC;AAC9mB,MAAM,QAAQ,GAAG,CAAA,2MAAA,CAA6M,CAAC;AAC/N,MAAM,OAAO,GAAG,CAAA,sQAAA,CAAwQ,CAAC;AACzR,MAAM,QAAQ,GAAG,CAAA,6LAAA,CAA+L,CAAC;AACjN,MAAM,KAAK,GAAG,CAAA,wRAAA,CAA0R,CAAC;AACzS,MAAM,QAAQ,GAAG,CAAA,yXAAA,CAA2X,CAAC;AAC7Y,MAAM,WAAW,GAAG,CAAA,6cAAA,CAA+c,CAAC;AAE7d,MAAM,KAAK,GAAG;IACnB,QAAQ;IACR,WAAW;IACX,YAAY;IACZ,aAAa;IACb,SAAS;IACT,MAAM;IACN,OAAO;IACP,SAAS;IACT,aAAa;IACb,SAAS;IACT,eAAe;IACf,UAAU;IACV,OAAO;IACP,YAAY;IACZ,MAAM;IACN,SAAS;IACT,IAAI;IACJ,SAAS;IACT,IAAI;IACJ,QAAQ;IACR,QAAQ;IACR,KAAK;IACL,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,YAAY;IACZ,YAAY;IACZ,aAAa;IACb,SAAS;IACT,SAAS;IACT,KAAK;IACL,MAAM;IACN,IAAI;IACJ,YAAY;IACZ,UAAU;IACV,UAAU;IACV,SAAS;IACT,QAAQ;IACR,aAAa;IACb,IAAI;IACJ,KAAK;IACL,QAAQ;IACR,YAAY;IACZ,GAAG;IACH,MAAM;IACN,MAAM;IACN,IAAI;IACJ,QAAQ;IACR,QAAQ;IACR,MAAM;IACN,IAAI;IACJ,IAAI;IACJ,UAAU;IACV,IAAI;IACJ,KAAK;IACL,IAAI;IACJ,GAAG;IACH,MAAM;IACN,KAAK;IACL,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,MAAM;IACN,QAAQ;IACR,SAAS;IACT,IAAI;IACJ,aAAa;IACb,SAAS;IACT,KAAK;IACL,WAAW;IACX,cAAc;IACd,YAAY;IACZ,SAAS;IACT,KAAK;IACL,OAAO;IACP,QAAQ;IACR,SAAS;IACT,WAAW;IACX,UAAU;IACV,IAAI;IACJ,UAAU;IACV,KAAK;IACL,OAAO;IACP,SAAS;IACT,OAAO;IACP,QAAQ;IACR,KAAK;IACL,QAAQ;IACR,QAAQ;IACR,IAAI;IACJ,MAAM;IACN,IAAI;IACJ,QAAQ;IACR,KAAK;IACL,MAAM;IACN,OAAO;IACP,KAAK;IACL,KAAK;IACL,IAAI;IACJ,GAAG;IACH,WAAW;IACX,GAAG;IACH,MAAM;IACN,MAAM;IACN,YAAY;IACZ,UAAU;IACV,MAAM;IACN,WAAW;IACX,IAAI;IACJ,SAAS;IACT,QAAQ;IACR,KAAK;IACL,CAAC;IACD,OAAO;IACP,OAAO;IACP,MAAM;IACN,OAAO;CACR,CAAC;AAIK,MAAM,SAAS,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAU,CAAC;AAI3C,MAAM,QAAQ,GAA8B,EAAE,CAAC;AACtD,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE;IACvB,QAAQ,CAAC,GAAG,CAAC,GAAG,KAAK,CAAqB,GAAG,CAAC,CAAC;AAChD;;AC9OD,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAuB,KAAK,IAAG;AACvD,IAAA,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;AAChC,IAAA,MAAM,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;IAC/B,MAAM,GAAG,GAAG,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IACxD,OAAO,GAAG,CAAC,eAAe,CAAC;AAC7B,CAAC,CAAC,CAAC;MAQU,aAAa,CAAA;AAGxB,IAAA,WAAA,CAA6B,OAAgC,EAAA;AAAhC,QAAA,IAAO,CAAA,OAAA,GAAP,OAAO,CAAyB;AAmB7D,QAAA,IAAI,CAAA,IAAA,GAAa,EAAE,CAAC;KAnB6C;IAEjE,IACI,IAAI,CAAC,KAAuB,EAAA;QAC9B,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;AAC3B,YAAA,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;AACtB,YAAA,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;AACzB,SAAA;QAED,IAAI,KAAK,IAAI,IAAI,EAAE;YACjB,OAAO;AACR,SAAA;QAED,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAC/B,QAAA,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;KACtD;AAQD,IAAA,IAEI,QAAQ,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC;KACtD;AAKD,IAAA,IACI,oBAAoB,GAAA;AACtB,QAAA,OAAO,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC;KACjE;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;KAClB;;0GA3CU,aAAa,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAb,aAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,aAAa,kSCxB1B,EAAA,EAAA,MAAA,EAAA,CAAA,0KAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;2FDwBa,aAAa,EAAA,UAAA,EAAA,CAAA;kBANzB,SAAS;+BACE,UAAU,EAAA,eAAA,EAGH,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,EAAA,EAAA,MAAA,EAAA,CAAA,0KAAA,CAAA,EAAA,CAAA;iGAQ3C,IAAI,EAAA,CAAA;sBADP,KAAK;gBAiBN,IAAI,EAAA,CAAA;sBADH,KAAK;gBAIN,UAAU,EAAA,CAAA;sBADT,KAAK;gBAKF,QAAQ,EAAA,CAAA;sBAFX,WAAW;uBAAC,gBAAgB,CAAA;;sBAC5B,WAAW;uBAAC,iBAAiB,CAAA;gBAM9B,WAAW,EAAA,CAAA;sBADV,KAAK;gBAIF,oBAAoB,EAAA,CAAA;sBADvB,WAAW;uBAAC,oBAAoB,CAAA;;;MEpDtB,mBAAmB,CAAA;AANhC,IAAA,WAAA,GAAA;AAQE,QAAA,IAAS,CAAA,SAAA,GAAW,EAAE,CAAC;AAGvB,QAAA,IAAS,CAAA,SAAA,GAAW,EAAE,CAAC;AAGvB,QAAA,IAAI,CAAA,IAAA,GAAY,KAAK,CAAC;KACvB;;gHATY,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnB,mBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,iICRhC,6VAQA,EAAA,MAAA,EAAA,CAAA,0HAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,YAAA,EAAA,aAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;2FDAa,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAN/B,SAAS;+BACE,iBAAiB,EAAA,eAAA,EAGV,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,6VAAA,EAAA,MAAA,EAAA,CAAA,0HAAA,CAAA,EAAA,CAAA;8BAI/C,SAAS,EAAA,CAAA;sBADR,KAAK;gBAIN,SAAS,EAAA,CAAA;sBADR,KAAK;gBAIN,IAAI,EAAA,CAAA;sBADH,KAAK;;;MEXK,cAAc,CAAA;AAD3B,IAAA,WAAA,GAAA;QAES,IAAA,CAAA,aAAa,GAAG,IAAI,eAAe,CAAyB,EAAE,CAAC,CAAC;KAWxE;AATQ,IAAA,GAAG,CAAC,OAA6B,EAAA;AACtC,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;KACtE;AAEM,IAAA,MAAM,CAAC,OAA6B,EAAA;QACzC,IAAI,CAAC,aAAa,CAAC,IAAI,CACrB,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,CACzD,CAAC;KACH;;2GAXU,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAd,cAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,cADD,MAAM,EAAA,CAAA,CAAA;2FACnB,cAAc,EAAA,UAAA,EAAA,CAAA;kBAD1B,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAA;;;MCKrB,sBAAsB,CAAA;AACjC,IAAA,WAAA,CAAqB,cAA8B,EAAA;AAA9B,QAAA,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;KAAI;;mHAD5C,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,sBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,0DCRnC,iKAGA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;2FDKa,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBALlC,SAAS;+BACE,oBAAoB,EAAA,eAAA,EAEb,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,iKAAA,EAAA,CAAA;;;AEN1C,MAAM,iBAAiB,GAAG;IAC/B,UAAU;IACV,YAAY;IACZ,WAAW;IACX,cAAc;IACd,cAAc;IACd,eAAe;IACf,aAAa;IACb,aAAa;CACL,CAAC;SAoBK,SAAS,CACvB,MAAW,EACX,MAAkB,EAClB,YAAwB,EACxB,iBAAmC,EACnC,gBAA8C,GAAA,IAAI,EAClD,iBAA4B,EAC5B,gBAAwB,EAAA;IAExB,IAAI,QAAQ,GAAG,iBAAiB,CAAC;IACjC,MAAM,OAAO,GACX,CAAC,gBAAgB,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC;AAChD,UAAE,iBAAiB;UACjB,gBAAgB,CAAC;IACvB,IAAI,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACtC,IAAI,iBAAiB,GAAG,KAAK,CAAC;AAC9B,IAAA,IAAI,MAAM,GAAG,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC;AAC1E,IAAA,IAAI,eAAe,CAAC;AACpB,IAAA,IAAI,eAAe,CAAC;IACpB,IAAI,YAAY,GAAG,QAAQ,CAAC;IAC5B,IAAI,cAAc,GAAG,KAAK,CAAC;;;AAG3B,IAAA,KACE,IAAI,UAAU,GAAG,CAAC,EAClB,UAAU,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,cAAc,EAC/C,UAAU,EAAE;QACV,KAAK;AACH,YAAA,iBAAiB,KAAK,WAAW;kBAC7B,CAAC,KAAK,GAAG,CAAC,IAAI,OAAO,CAAC,MAAM;AAC9B,kBAAE,CAAC,KAAK,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,EACrD;AACA,QAAA,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;QAC1B,MAAM,GAAG,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC;QACtE,eAAe;AACb,YAAA,CAAC,CAAC;gBACF,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,YAAY,CAAC,KAAK,IAAI,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;QACxE,eAAe;AACb,YAAA,CAAC,CAAC;gBACF,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,YAAY,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1E,QAAA,IAAI,eAAe,GAAG,CAAC,IAAI,eAAe,GAAG,CAAC,EAAE;AAC9C,YAAA,IAAI,YAAY,GAAG,eAAe,GAAG,eAAe,EAAE;AACpD,gBAAA,YAAY,GAAG,eAAe,GAAG,eAAe,CAAC;gBACjD,iBAAiB,GAAG,KAAK,CAAC;AAC3B,aAAA;AACF,SAAA;AAAM,aAAA;YACL,cAAc,GAAG,IAAI,CAAC;AACvB,SAAA;AACF,KAAA;IACD,IAAI,CAAC,cAAc,EAAE;AACnB,QAAA,QAAQ,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;QACtC,MAAM,GAAG,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC;AACtE,QAAA,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;AACxC,KAAA;IACD,OAAY,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,MAAM,CAAE,EAAA,EAAA,QAAQ,EAAG,CAAA,CAAA;AACjC,CAAC;AAEK,SAAU,gBAAgB,CAC9B,MAAW,EACX,MAAkB,EAClB,QAA0B,EAC1B,MAAc,EAAA;AAEd,IAAA,QAAQ,QAAQ;AACd,QAAA,KAAK,UAAU;YACb,OAAO;gBACL,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK;gBACzC,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM;aACrC,CAAC;AACJ,QAAA,KAAK,YAAY;YACf,OAAO;AACL,gBAAA,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC;gBACjD,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM;aACrC,CAAC;AACJ,QAAA,KAAK,WAAW;YACd,OAAO;gBACL,CAAC,EAAE,MAAM,CAAC,CAAC;gBACX,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM;aACrC,CAAC;AACJ,QAAA,KAAK,cAAc;YACjB,OAAO;gBACL,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,MAAM;AACnC,gBAAA,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC;aACpD,CAAC;AACJ,QAAA,KAAK,cAAc;YACjB,OAAO;gBACL,CAAC,EAAE,MAAM,CAAC,CAAC;gBACX,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM;aACrC,CAAC;AACJ,QAAA,KAAK,eAAe;YAClB,OAAO;AACL,gBAAA,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC;gBACjD,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM;aACrC,CAAC;AACJ,QAAA,KAAK,aAAa;YAChB,OAAO;gBACL,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK;gBACzC,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM;aACrC,CAAC;AACJ,QAAA,KAAK,aAAa;YAChB,OAAO;gBACL,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,MAAM;AACnC,gBAAA,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC;aACpD,CAAC;AACL,KAAA;AACH;;ACpHA;AACA;MAOa,gBAAgB,CAAA;AAC3B,IAAA,WAAA,CAA6B,GAAsB,EAAA;AAAtB,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;AAGnD,QAAA,IAAM,CAAA,MAAA,GAA6B,IAAI,CAAC;AAGxC,QAAA,IAAO,CAAA,OAAA,GAAY,IAAI,CAAC;AAGxB,QAAA,IAAiB,CAAA,iBAAA,GAAqB,cAAc,CAAC;AAGrD,QAAA,IAAA,CAAA,gBAAgB,GAAuB,CAAC,GAAG,iBAAiB,CAAC,CAAC;AAG9D,QAAA,IAAiB,CAAA,iBAAA,GAAc,mBAAmB,CAAC;AAGnD,QAAA,IAAS,CAAA,SAAA,GAAY,IAAI,CAAC;AAG1B,QAAA,IAAK,CAAA,KAAA,GAAqB,MAAM,CAAC;AAEX,QAAA,IAAO,CAAA,OAAA,GAAsC,IAAI,CAAC;AAEjC,QAAA,IAAK,CAAA,KAAA,GAC1C,IAAI,CAAC;AAQP,QAAA,IAAI,CAAA,IAAA,GAAW,CAAC,CAAC;AACjB,QAAA,IAAG,CAAA,GAAA,GAAW,CAAC,CAAC;AAChB,QAAA,IAAA,CAAA,gBAAgB,GAAqB,IAAI,CAAC,iBAAiB,CAAC;AA+CnD,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,YAAY,EAAE,CAAC;KAnFmB;AA4BvD,IAAA,UAAU,CAAC,GAAe,EAAA;;QACxB,IAAI,GAAG,CAAC,MAAM,MAAK,CAAA,EAAA,GAAA,IAAI,CAAC,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,aAAa,CAAA,EAAE;AAC5C,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;AACnB,SAAA;KACF;IAMD,eAAe,GAAA;AACb,QAAA,MAAM,UAAU,GAAG;YACjB,KAAK,EAAE,MAAM,CAAC,UAAU;YACxB,MAAM,EAAE,MAAM,CAAC,WAAW;SAC3B,CAAC;AAEF,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI;YACtE,OAAO;QAET,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC;AAEnE,QAAA,MAAM,UAAU,GACd,IAAI,CAAC,MAAM,YAAY,OAAO;AAC5B,cAAE,IAAI,CAAC,MAAM,CAAC,qBAAqB,EAAE;AACrC,cAAE,IAAI,CAAC,MAAM,CAAC;AAElB,QAAA,MAAM,YAAY,GAAG;AACnB,YAAA,CAAC,EAAE,UAAU,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI;AACnC,YAAA,CAAC,EAAE,UAAU,CAAC,GAAG,GAAG,SAAS,CAAC,GAAG;AACjC,YAAA,KAAK,EAAE,UAAU,CAAC,KAAK,GAAG,UAAU,CAAC,IAAI;AACzC,YAAA,MAAM,EAAE,UAAU,CAAC,MAAM,GAAG,UAAU,CAAC,GAAG;SAC3C,CAAC;AAEF,QAAA,MAAM,WAAW,GAAG;AAClB,YAAA,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,WAAW;AAC7C,YAAA,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,YAAY;SAChD,CAAC;AAEF,QAAA,MAAM,aAAa,GAAG,SAAS,CAC7B,YAAY,EACZ,WAAW,EACX,UAAU,EACV,IAAI,CAAC,iBAAiB,EACtB,IAAI,CAAC,gBAAgB,EACrB,IAAI,CAAC,iBAAiB,EACtB,IAAI,CAAC,SAAS,GAAG,CAAC,GAAG,CAAC,CACvB,CAAC;AAEF,QAAA,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC,CAAC,CAAC;AAC5B,QAAA,IAAI,CAAC,GAAG,GAAG,aAAa,CAAC,CAAC,CAAC;AAC3B,QAAA,IAAI,CAAC,gBAAgB,GAAG,aAAa,CAAC,QAAQ,CAAC;AAC/C,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;KAC1B;;6GAjFU,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAhB,gBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gBAAgB,qdC1B7B,2WAiBA,EAAA,MAAA,EAAA,CAAA,6oDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;2FDSa,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAN5B,SAAS;+BACE,aAAa,EAAA,eAAA,EAGN,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,2WAAA,EAAA,MAAA,EAAA,CAAA,6oDAAA,CAAA,EAAA,CAAA;wGAM/C,MAAM,EAAA,CAAA;sBADL,KAAK;gBAIN,OAAO,EAAA,CAAA;sBADN,KAAK;gBAIN,iBAAiB,EAAA,CAAA;sBADhB,KAAK;gBAIN,gBAAgB,EAAA,CAAA;sBADf,KAAK;gBAIN,iBAAiB,EAAA,CAAA;sBADhB,KAAK;gBAIN,SAAS,EAAA,CAAA;sBADR,KAAK;gBAIN,KAAK,EAAA,CAAA;sBADJ,KAAK;gBAGgB,OAAO,EAAA,CAAA;sBAA5B,SAAS;uBAAC,SAAS,CAAA;gBAEmB,KAAK,EAAA,CAAA;sBAA3C,SAAS;gBAAC,IAAA,EAAA,CAAA,OAAO,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;gBA0D5B,KAAK,EAAA,CAAA;sBADb,MAAM;;;MEvGI,gBAAgB,CAAA;IAC3B,WACmB,CAAA,QAA8B,EAC9B,cAA8B,EAAA;AAD9B,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAsB;AAC9B,QAAA,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;KAC7C;IAEJ,QAAQ,GAAA;QACN,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KACxC;IAED,WAAW,GAAA;QACT,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KAC3C;;6GAZU,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAD,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;iGAAhB,gBAAgB,EAAA,QAAA,EAAA,eAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,eAAe;iBAC1B,CAAA;;;MCGY,kBAAkB,CAAA;AAN/B,IAAA,WAAA,GAAA;AAQE,QAAA,IAAO,CAAA,OAAA,GAAW,qBAAqB,CAAC;KACzC;;+GAHY,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,kBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,sFAJnB,CAAA,aAAA,CAAe,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,sMAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;2FAId,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAN9B,SAAS;YACE,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,EAChB,QAAA,EAAA,CAAe,aAAA,CAAA,EAER,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,MAAA,EAAA,CAAA,sMAAA,CAAA,EAAA,CAAA;8BAI/C,OAAO,EAAA,CAAA;sBADN,KAAK;;;MCKK,cAAc,CAAA;AAN3B,IAAA,WAAA,GAAA;AAQE,QAAA,IAAY,CAAA,YAAA,GAAW,EAAE,CAAC;AAG1B,QAAA,IAAY,CAAA,YAAA,GAAW,EAAE,CAAC;AAG1B,QAAA,IAAI,CAAA,IAAA,GAAqB,EAAE,CAAC;AAEnB,QAAA,IAAM,CAAA,MAAA,GAAG,GAAG,CAAC;KA2BvB;AAzBC,IAAA,IAAI,QAAQ,GAAA;QACV,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC;AACtC,QAAA,MAAM,KAAK,GAAG,KAAK,GAAG,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,GAAG,EAAkB;aAClC,UAAU,CAAC,IAAI,CAAC;AAChB,aAAA,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClC,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,IACvB,GAAG,EAAkB;aAClB,WAAW,CAAC,KAAK,CAAC;aAClB,WAAW,CAAC,KAAK,CAAC;aAClB,QAAQ,CAAC,KAAK,CAAC;AACf,aAAA,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC;aAC7B,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAC1C,CAAC;KACH;AAED,IAAA,YAAY,CAAC,GAAW,EAAA;QACtB,OAAO,CAAA,IAAA,EAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,UAAU,CAAA,CAAA,CAAG,CAAC;KAC5C;AAED,IAAA,IAAI,KAAK,GAAA;QACP,QACE,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,KAAK,CAAC,CAAC,EACrE;KACH;;2GApCU,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAd,cAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,cAAc,uICd3B,ukBAsBA,EAAA,MAAA,EAAA,CAAA,woBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;2FDRa,cAAc,EAAA,UAAA,EAAA,CAAA;kBAN1B,SAAS;+BACE,WAAW,EAAA,eAAA,EAGJ,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,ukBAAA,EAAA,MAAA,EAAA,CAAA,woBAAA,CAAA,EAAA,CAAA;8BAI/C,YAAY,EAAA,CAAA;sBADX,KAAK;gBAIN,YAAY,EAAA,CAAA;sBADX,KAAK;gBAIN,IAAI,EAAA,CAAA;sBADH,KAAK;;;MEPK,mBAAmB,CAAA;AANhC,IAAA,WAAA,GAAA;AAQE,QAAA,IAAK,CAAA,KAAA,GAAW,EAAE,CAAC;AAGnB,QAAA,IAAU,CAAA,UAAA,GAAW,EAAE,CAAC;AAGxB,QAAA,IAAK,CAAA,KAAA,GAAwB,OAAO,CAAC;AAGrC,QAAA,IAAU,CAAA,UAAA,GAAoC,SAAS,CAAC;AAOxD,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,YAAY,EAAE,CAAC;KAChC;AANC,IAAA,IAAI,eAAe,GAAA;AACjB,QAAA,OAAO,CAAO,IAAA,EAAA,IAAI,CAAC,UAAU,GAAG,CAAC;KAClC;;gHAfU,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnB,mBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,4LCdhC,yfAgBA,EAAA,MAAA,EAAA,CAAA,ofAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAH,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,YAAA,EAAA,aAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;2FDFa,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAN/B,SAAS;+BACE,iBAAiB,EAAA,eAAA,EAGV,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,yfAAA,EAAA,MAAA,EAAA,CAAA,ofAAA,CAAA,EAAA,CAAA;8BAI/C,KAAK,EAAA,CAAA;sBADJ,KAAK;gBAIN,UAAU,EAAA,CAAA;sBADT,KAAK;gBAIN,KAAK,EAAA,CAAA;sBADJ,KAAK;gBAIN,UAAU,EAAA,CAAA;sBADT,KAAK;gBAQN,SAAS,EAAA,CAAA;sBADR,MAAM;;;MEvBI,eAAe,CAAA;AAN5B,IAAA,WAAA,GAAA;AAQE,QAAA,IAAK,CAAA,KAAA,GAAW,EAAE,CAAC;AAGnB,QAAA,IAAK,CAAA,KAAA,GAAW,EAAE,CAAC;AAGnB,QAAA,IAAI,CAAA,IAAA,GAAY,KAAK,CAAC;KACvB;;4GATY,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAf,eAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAe,4GCR5B,wPAOA,EAAA,MAAA,EAAA,CAAA,6WAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;2FDCa,eAAe,EAAA,UAAA,EAAA,CAAA;kBAN3B,SAAS;+BACE,YAAY,EAAA,eAAA,EAGL,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,wPAAA,EAAA,MAAA,EAAA,CAAA,6WAAA,CAAA,EAAA,CAAA;8BAI/C,KAAK,EAAA,CAAA;sBADJ,KAAK;gBAIN,KAAK,EAAA,CAAA;sBADJ,KAAK;gBAIN,IAAI,EAAA,CAAA;sBADH,KAAK;;;AE2BR,IAAK,QAKJ,CAAA;AALD,CAAA,UAAK,QAAQ,EAAA;AACX,IAAA,QAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,QAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,QAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,QAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACf,CAAC,EALI,QAAQ,KAAR,QAAQ,GAKZ,EAAA,CAAA,CAAA,CAAA;AAgCD,SAAS,eAAe,CAAC,QAAkB,EAAA;AACzC,IAAA,QAAQ,QAAQ;QACd,KAAK,QAAQ,CAAC,GAAG;AACf,YAAA,OAAO,OAAO,CAAC;QACjB,KAAK,QAAQ,CAAC,IAAI;AAChB,YAAA,OAAO,QAAQ,CAAC;QAClB,KAAK,QAAQ,CAAC,KAAK;AACjB,YAAA,OAAO,SAAS,CAAC;QACnB,KAAK,QAAQ,CAAC,IAAI;AAChB,YAAA,OAAO,QAAQ,CAAC;AACnB,KAAA;AACH,CAAC;AAED,SAASI,cAAY,CAAC,OAAkB,EAAA;IACtC,IAAI,GAAG,GAAG,QAAQ,CAAC;AACnB,IAAA,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC;AACpB,IAAA,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;AAC5B,QAAA,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE;YAClC,KAAK,MAAM,EAAE,IAAI,EAAE,IAAI,MAAM,CAAC,IAAI,EAAE;AAClC,gBAAA,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;gBAC7B,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;gBAC3B,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AAC5B,aAAA;AACF,SAAA;AACF,KAAA;AACD,IAAA,OAAO,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACxC,CAAC;AAED,SAAS,sBAAsB,CAAC,QAAkB,EAAA;AAChD,IAAA,QAAQ,QAAQ;QACd,KAAK,QAAQ,CAAC,GAAG,CAAC;QAClB,KAAK,QAAQ,CAAC,IAAI;AAChB,YAAA,OAAO,KAAK,CAAC;QACf,KAAK,QAAQ,CAAC,KAAK;AACjB,YAAA,OAAO,IAAI,CAAC;QACd,KAAK,QAAQ,CAAC,IAAI;AAChB,YAAA,OAAO,IAAI,CAAC;AACf,KAAA;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,QAAkB,EAAA;AAC1C,IAAA,QAAQ,QAAQ;QACd,KAAK,QAAQ,CAAC,GAAG,CAAC;QAClB,KAAK,QAAQ,CAAC,IAAI;YAChB,OAAO,QAAQ,CAAC,KAAK,CAAC;AACxB,QAAA;YACE,OAAO,QAAQ,CAAC,IAAI,CAAC;AACxB,KAAA;AACH,CAAC;AAED,SAAS,sBAAsB,CAAC,QAAkB,EAAA;AAChD,IAAA,QAAQ,QAAQ;QACd,KAAK,QAAQ,CAAC,IAAI;AAChB,YAAA,OAAO,IAAI,CAAC;QACd,KAAK,QAAQ,CAAC,KAAK;AACjB,YAAA,OAAO,OAAO,CAAC;AACjB,QAAA;AACE,YAAA,OAAO,IAAI,CAAC;AACf,KAAA;AACH,CAAC;AAED;AACA;MAOa,mBAAmB,CAAA;AANhC,IAAA,WAAA,GAAA;AAOmB,QAAA,IAAM,CAAA,MAAA,GAAG,IAAI,eAAe,CAAkB;AAC7D,YAAA;gBACE,YAAY,EAAE,MAAM,IAClB,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,KAAK,GAAG,KAAK,EAAE,CAAC,CAAC;gBACvD,cAAc,EAAE,CAAC,cAAI,OAAA,CAAA,EAAA,GAAA,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,EAAE,CAAA,EAAA;AAChE,gBAAA,MAAM,EAAE,EAAE;AACX,aAAA;AACF,SAAA,CAAC,CAAC;QASc,IAAA,CAAA,MAAM,GAAG,IAAI,eAAe,CAAS,GAAG,CAAC,CAAC;QAS1C,IAAA,CAAA,OAAO,GAAG,IAAI,eAAe,CAAS,GAAG,CAAC,CAAC;AASnD,QAAA,IAAa,CAAA,aAAA,GAAG,EAAE,CAAC;AACnB,QAAA,IAAW,CAAA,WAAA,GAAG,EAAE,CAAC;AACjB,QAAA,IAAW,CAAA,WAAA,GAAG,EAAE,CAAC;AACjB,QAAA,IAAkB,CAAA,kBAAA,GAAG,CAAC,CAAC;AACvB,QAAA,IAAc,CAAA,cAAA,GAAG,CAAC,CAAC;AACnB,QAAA,IAAY,CAAA,YAAA,GAAG,CAAC,CAAC;AACjB,QAAA,IAAkB,CAAA,kBAAA,GAAG,EAAE,CAAC;QAExB,IAAU,CAAA,UAAA,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CACpC,GAAG,CAACA,cAAY,CAAC,EACjB,WAAW,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CAC/C,CAAC;AAEO,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAC1C,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,KAAI;AACzB,YAAA,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AACjE,YAAA,IAAI,IAAI,IAAI,GAAG,GAAG,CAAC,EAAE;gBACnB,OAAO,QAAQ,CAAC,IAAI,CAAC;AACtB,aAAA;iBAAM,IAAI,IAAI,IAAI,GAAG,EAAE;gBACtB,OAAO,QAAQ,CAAC,KAAK,CAAC;AACvB,aAAA;iBAAM,IAAI,IAAI,IAAI,EAAE,EAAE;gBACrB,OAAO,QAAQ,CAAC,IAAI,CAAC;AACtB,aAAA;AAAM,iBAAA;gBACL,OAAO,QAAQ,CAAC,GAAG,CAAC;AACrB,aAAA;AACH,SAAC,CAAC,EACF,WAAW,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CAC/C,CAAC;AAEO,QAAA,IAAA,CAAA,WAAW,GAAG,aAAa,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CACzE,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,WAAW,CAAC,KACvB,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,KAAa;AAC5B,YAAA,OAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACK,MAAM,CAAA,EAAA,EACT,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,IAAG;AACjC,oBAAA,MAAM,MAAM,GAAG,IAAI,GAAG,EAAuB,CAAC;AAC9C,oBAAA,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,IAAI,EAAE;AAC/B,wBAAA,MAAM,GAAG,GAAG,eAAe,CAAC,WAAW,CAAC;AACrC,6BAAA,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;AACjB,6BAAA,OAAO,EAAE,CAAC;AACb,wBAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;AACpB,4BAAA,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AACrB,yBAAA;wBACD,MAAM,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC9B,qBAAA;oBACD,OACK,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,MAAM,KACT,IAAI,EAAE,CAAC,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM;AACxD,4BAAA,IAAI,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC;AACzB,4BAAA,KAAK,EAAE,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC;AACnC,yBAAA,CAAC,CAAC,EACH,CAAA,CAAA;AACJ,iBAAC,CAAC,EACF,CAAA,CAAA;AACJ,SAAC,CAAC,CACH,EACD,WAAW,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CAC/C,CAAC;QAEO,IAAgB,CAAA,gBAAA,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAC/C,GAAG,CAACA,cAAY,CAAC,EACjB,WAAW,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CAC/C,CAAC;AAEO,QAAA,IAAS,CAAA,SAAA,GAAyB,aAAa,CAAC;AACvD,YAAA,IAAI,CAAC,WAAW;AAChB,YAAA,IAAI,CAAC,gBAAgB;AACrB,YAAA,IAAI,CAAC,YAAY;AACjB,YAAA,IAAI,CAAC,MAAM;AACX,YAAA,IAAI,CAAC,OAAO;AACb,SAAA,CAAC,CAAC,IAAI,CACL,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,eAAe,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC,KAAI;AAChE,YAAA,MAAM,OAAO,GAAG,CAAA,IAAA,EAAO,KAAK,CAAI,CAAA,EAAA,MAAM,EAAE,CAAC;YAEzC,MAAM,MAAM,GAAG,WAAW,EAAE;iBACzB,MAAM,CAAC,eAAe,CAAC;AACvB,iBAAA,KAAK,CAAC;AACL,gBAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,kBAAkB;AAC1C,gBAAA,KAAK,GAAG,IAAI,CAAC,kBAAkB,GAAG,CAAC;AACpC,aAAA,CAAC,CAAC;AACL,YAAA,MAAM,oBAAoB,GAAG,sBAAsB,CAAC,WAAW,CAAC,CAAC;AACjE,YAAA,MAAM,CAAC,YAAY,EAAE,YAAY,CAAC,GAAG,eAAe,CAAC;AACrD,YAAA,MAAM,cAAc,GAAG,UAAU,CAAC,oBAAoB,CAAC,CAAC;AACxD,YAAA,MAAM,WAAW,GAAG,eAAe,CAAC,WAAW,CAAC;iBAC7C,KAAK,CAAC,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;AACpD,iBAAA,GAAG,CAAC,IAAI,KAAK;AACZ,gBAAA,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE;AACrB,gBAAA,KAAK,EAAE,cAAc,CAAC,IAAI,CAAC;AAC5B,aAAA,CAAC,CAAC;AACF,iBAAA,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,KAChB,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,kBAAkB;AAClC,kBAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC;kBAC1D,IAAI,CACT,CAAC;AACJ,YAAA,MAAM,cAAc,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAC;AACrD,YAAA,MAAM,oBAAoB,GAAG,sBAAsB,CAAC,cAAc,CAAC,CAAC;AACpE,YAAA,MAAM,YAAY,GAAG,eAAe,CAAC,cAAc,CAAC,CAAC;YACrD,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;AACnD,YAAA,MAAM,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC;AACvE,YAAA,MAAM,cAAc,GAAG,UAAU,CAAC,oBAAoB,CAAC,CAAC;YACxD,MAAM,WAAW,GAAG,YAAY;AAC7B,iBAAA,KAAK,CAAC,SAAS,EAAE,WAAW,CAAC;AAC7B,iBAAA,GAAG,CAAC,QAAQ,KAAK;AAChB,gBAAA,KAAK,EAAE,cAAc,KAAK,WAAW,GAAG,EAAE,GAAG,cAAc,CAAC,QAAQ,CAAC;AACrE,gBAAA,KAAK,EAAE,QAAQ,CAAC,OAAO,EAAE;AAC1B,aAAA,CAAC,CAAC,CAAC;AACN,YAAA,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC;AAEnE,YAAA,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,MAAM,IAAG;;AACvC,gBAAA,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAC1C,CAAC,MAAM,EAAE,MAAM,KAAK;AAClB,oBAAA,GAAG,MAAM;AACT,oBAAA,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,KAAK,CAAC;iBACzC,EACD,EAAE,CACH,CAAC;AACF,gBAAA,MAAM,IAAI,GAAG,CAAA,EAAA,GAAA,MAAM,CAAC,GAAG,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,IAAI,CAAC,GAAG,CAAC,GAAG,eAAe,CAAC,CAAC;AACxD,gBAAA,MAAM,IAAI,GAAG,CAAA,EAAA,GAAA,MAAM,CAAC,GAAG,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,IAAI,CAAC,GAAG,CAAC,GAAG,eAAe,EAAE,CAAC,CAAC,CAAC;gBAC3D,MAAM,MAAM,GAAG,WAAW,EAAE;AACzB,qBAAA,MAAM,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACpB,qBAAA,KAAK,CAAC;oBACL,MAAM;AACJ,wBAAA,IAAI,CAAC,aAAa;AAClB,yBAAC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC;AAC1C,oBAAA,IAAI,CAAC,WAAW;AACjB,iBAAA,CAAC,CAAC;gBACL,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAC/C,gBAAA,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,KAClC,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,MAAM,KACT,IAAI,EAAE,IAAI,EAAa;yBACpB,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACtB,yBAAA,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EACvC,MAAM,EAAE,CAAO,IAAA,EAAA,MAAM,CAAC,UAAU,CAAG,CAAA,CAAA,EACnC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,KAAI,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAC7B,KAAK,CAAA,EAAA,EACR,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EACrB,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAA,CAAA,CACtB,CAAC,EAAA,CAAA,CACH,CAAC,CAAC;gBACJ,OACK,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,MAAM,KACT,MAAM;oBACN,IAAI;oBACJ,IAAI;oBACJ,MAAM;AACN,oBAAA,MAAM,EACN,CAAA,CAAA;AACJ,aAAC,CAAC,CAAC;;AAGH,YAAA,IAAI,EAAE,KAAF,IAAA,IAAA,EAAE,uBAAF,EAAE,CAAE,MAAM,EAAE;gBACd,MAAM,mBAAmB,GAAG,WAAW,EAAE;AACtC,qBAAA,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;qBACzB,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC9B,EAAE,CAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;AAChD,aAAA;YAED,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;AAChC,SAAC,CAAC,EACF,WAAW,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CAC/C,CAAC;QAEO,IAAO,CAAA,OAAA,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CACtC,GAAG,CAAC,UAAU,IACZ,UAAU,CAAC,MAAM,CACf,CAAC,KAAK,EAAE,MAAM,KAAK;AACjB,YAAA,GAAG,KAAK;YACR,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,KAAK;gBAC9B,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,UAAU,EAAE,MAAM,CAAC,UAAU;AAC9B,aAAA,CAAC,CAAC;AACJ,SAAA,EACD,EAAE,CACH,CACF,CACF,CAAC;QAEO,IAAM,CAAA,MAAA,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CACrC,GAAG,CAAC,UAAU,IACZ,UAAU,CAAC,KAAK,CAAC,MAAM,IACrB,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CACxD,CACF,EACD,WAAW,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CAC/C,CAAC;QAEO,IAAA,CAAA,cAAc,GAAG,IAAI,eAAe,CAGnC,IAAI,CAAC,CAAC;QAEP,IAAQ,CAAA,QAAA,GAAG,aAAa,CAAC,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAC3E,GAAG,CAAC,CAAC,CAAC,aAAa,EAAE,QAAQ,CAAC,KAAI;AAChC,YAAA,IAAI,CAAC,aAAa;AAAE,gBAAA,OAAO,IAAI,CAAC;AAEhC,YAAA,MAAM,EAAE,MAAM,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC;AACvC,YAAA,IAAI,CAAC,MAAM;AAAE,gBAAA,OAAO,IAAI,CAAC;AACzB,YAAA,MAAM,UAAU,GAAsB,MAAO,CAAC,qBAAqB,EAAE,CAAC;YACtE,MAAM,OAAO,GAAG,CAAC,CAAC;AAClB,YAAA,MAAM,MAAM,GAAG,IAAI,OAAO,CACxB,UAAU,CAAC,IAAI,GAAG,OAAO,EACzB,UAAU,CAAC,GAAG,GAAG,OAAO,EACxB,UAAU,CAAC,KAAK,GAAG,OAAO,GAAG,CAAC,EAC9B,UAAU,CAAC,MAAM,GAAG,OAAO,GAAG,CAAC,CAChC,CAAC;YAGF,MAAM,OAAO,GAAa,EAAE,CAAC;YAE7B,KAAK,MAAM,MAAM,IAAI,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE;gBACvC,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAC/B,MAAM,IAAI,MAAM,CAAC,CAAC,KAAK,aAAa,CAAC,MAAM,CAAC,CAAC,CAC9C,CAAC;AACF,gBAAA,IAAI,KAAK,EAAE;oBACT,OAAO,CAAC,IAAI,CAAC;wBACX,KAAK,EAAE,MAAM,CAAC,KAAK;wBACnB,KAAK,EAAE,QAAQ,CAAC,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC;AAC/C,qBAAA,CAAC,CAAC;AACJ,iBAAA;AACF,aAAA;YAED,IAAI,QAAQ,CAAC,EAAE,EAAE;gBACf,KAAK,MAAM,MAAM,IAAI,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE;oBACvC,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAC/B,MAAM,IAAI,MAAM,CAAC,CAAC,KAAK,aAAa,CAAC,MAAM,CAAC,CAAC,CAC9C,CAAC;AACF,oBAAA,IAAI,KAAK,EAAE;wBACT,OAAO,CAAC,IAAI,CAAC;4BACX,KAAK,EAAE,MAAM,CAAC,KAAK;4BACnB,KAAK,EAAE,QAAQ,CAAC,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC;AAC/C,yBAAA,CAAC,CAAC;AACJ,qBAAA;AACF,iBAAA;AACF,aAAA;AAED,YAAA,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;SAC5B,CAAC,CACH,CAAC;KACH;IAxQC,IACW,KAAK,CAAC,CAAkB,EAAA;AACjC,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACrB;AACD,IAAA,IAAW,KAAK,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;KAC/B;IAGD,IACW,KAAK,CAAC,CAAS,EAAA;AACxB,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACrB;AACD,IAAA,IAAW,KAAK,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;KAC/B;IAGD,IACW,MAAM,CAAC,CAAS,EAAA;AACzB,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACtB;AACD,IAAA,IAAW,MAAM,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;KAChC;;gHAjCU,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnB,mBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,qHCpJhC,unIA4IA,EAAA,MAAA,EAAA,CAAA,knCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,SAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,mBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,YAAA,EAAA,OAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;2FDQa,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAN/B,SAAS;+BACE,iBAAiB,EAAA,eAAA,EAGV,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,unIAAA,EAAA,MAAA,EAAA,CAAA,knCAAA,CAAA,EAAA,CAAA;8BAYpC,KAAK,EAAA,CAAA;sBADf,KAAK;gBAUK,KAAK,EAAA,CAAA;sBADf,KAAK;gBAUK,MAAM,EAAA,CAAA;sBADhB,KAAK;;;MEvKK,kBAAkB,CAAA;;+GAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,kBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,sDAHnB,0CAA0C,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,2GAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;2FAGzC,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAN9B,SAAS;YACE,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,EAEhB,QAAA,EAAA,0CAA0C,EACnC,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,MAAA,EAAA,CAAA,2GAAA,CAAA,EAAA,CAAA;;;MCOpC,qBAAqB,CAAA;AANlC,IAAA,WAAA,GAAA;AASS,QAAA,IAAM,CAAA,MAAA,GAAY,KAAK,CAAC;KAChC;;kHAJY,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,qBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,oJAFtB,2BAA2B,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,iFAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;2FAE1B,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBANjC,SAAS;YACS,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACrC,QAAA,EAAA,sBAAsB,YAEtB,2BAA2B,EAAA,MAAA,EAAA,CAAA,iFAAA,CAAA,EAAA,CAAA;8BAK9B,MAAM,EAAA,CAAA;sBAFZ,KAAK;;sBACL,WAAW;uBAAC,eAAe,CAAA;;;MCDjB,sBAAsB,CAAA;AACjC,IAAA,WAAA,CAA6B,GAA0B,EAAA;AAA1B,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAuB;AAGhD,QAAA,IAAO,CAAA,OAAA,GAAY,KAAK,CAAC;KAH2B;IAK3D,QAAQ,GAAA;QACN,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;KAChC;;mHARU,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,qBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,sBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,yHAFvB,2BAA2B,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,+NAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;2FAE1B,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBANlC,SAAS;YACS,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACrC,QAAA,EAAA,uBAAuB,YAEvB,2BAA2B,EAAA,MAAA,EAAA,CAAA,+NAAA,CAAA,EAAA,CAAA;yGAM9B,OAAO,EAAA,CAAA;sBADb,WAAW;uBAAC,gBAAgB,CAAA;;;MCTlB,4BAA4B,CAAA;;yHAA5B,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA5B,4BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,4BAA4B,oEAF7B,2BAA2B,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,uMAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;2FAE1B,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBANxC,SAAS;YACS,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACrC,QAAA,EAAA,8BAA8B,YAE9B,2BAA2B,EAAA,MAAA,EAAA,CAAA,uMAAA,CAAA,EAAA,CAAA;;;ACEvC,SAAS,YAAY,CAAC,MAAe,EAAA;IACnC,IAAI,GAAG,GAAG,QAAQ,CAAC;AACnB,IAAA,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC;AACpB,IAAA,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;AAC1B,QAAA,KAAK,MAAM,MAAM,IAAI,KAAK,EAAE;YAC1B,KAAK,MAAM,EAAE,IAAI,EAAE,IAAI,MAAM,CAAC,IAAI,EAAE;AAClC,gBAAA,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;gBAC7B,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;gBAC3B,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AAC5B,aAAA;AACF,SAAA;AACF,KAAA;AACD,IAAA,OAAO,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACxC,CAAC;AAaD;AACA;MAOa,sBAAsB,CAAA;AANnC,IAAA,WAAA,GAAA;QAOmB,IAAA,CAAA,MAAM,GAAG,IAAI,eAAe,CAAU,EAAE,CAAC,CAAC;QAS1C,IAAA,CAAA,MAAM,GAAG,IAAI,eAAe,CAAS,GAAG,CAAC,CAAC;QAS1C,IAAA,CAAA,OAAO,GAAG,IAAI,eAAe,CAAS,GAAG,CAAC,CAAC;QAUrD,IAAc,CAAA,cAAA,GAA0B,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;AAExD,QAAA,IAAS,CAAA,SAAA,GAAG,aAAa,CAAC;AACjC,YAAA,IAAI,CAAC,MAAM;AACX,YAAA,IAAI,CAAC,MAAM;AACX,YAAA,IAAI,CAAC,OAAO;AACb,SAAA,CAAC,CAAC,IAAI,CACL,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAI;AAC7B,YAAA,MAAM,OAAO,GAAG,CAAA,IAAA,EAAO,KAAK,CAAI,CAAA,EAAA,MAAM,EAAE,CAAC;YACzC,MAAM,OAAO,GAAG,CAAC,CAAC;YAElB,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;YAC/C,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAC5B,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,EACxB,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAC9C,CAAC;AACF,YAAA,MAAM,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;YACpC,MAAM,WAAW,GAAG,SAAS,EAAE;AAC5B,iBAAA,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5C,iBAAA,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;YAErB,MAAM,WAAW,GAAG,CAAC,CAAC;YACtB,MAAM,aAAa,GAAG,CAAC,CAAC;AACxB,YAAA,MAAM,YAAY,GAChB,CAAC,WAAW,CAAC,SAAS,EAAE;AACtB,iBAAC,aAAa,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC;AACnE,gBAAA,CAAC,CAAC;YAIJ,MAAM,iBAAiB,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,IAAG;AAC9C,gBAAA,MAAM,YAAY,GAAG,SAAS,CAAC,MAAM,CACnC,CAAC,KAAK,EAAE,CAAC,KAAK;AACZ,oBAAA,GAAG,KAAK;AACR,oBAAA,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,qCACd,KAAK,CAAA,EAAA,EACR,MAAM,EAAE,CAAC,IACT,CAAC;iBACJ,EACD,EAAE,CACH,CAAC;gBACF,MAAM,YAAY,GAAwC,KAAK,CAC7D,YAAY,EACZ,CAAC,IAAI,CAAC,CAAC,IAAI,EACX,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CACpB,CAAC;gBAEF,MAAM,OAAO,GAAG,KAAK,EAElB;AACA,qBAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC;qBACjC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,GAAG,KAAI;oBACzB,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC,KAAK,CAAC;AAC/B,iBAAC,CAAC,CAAC,YAAY,CAAC,CAAC;AAEnB,gBAAA,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC;AACnC,aAAC,CAAC,CAAC;YAEH,IAAI,SAAS,GAAG,CAAC,CAAC;YAClB,iBAAiB,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,KAAI;AACtD,gBAAA,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,KAAI;AACjD,oBAAA,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,KAAI;AACtC,wBAAA,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACpD,qBAAC,CAAC,CAAC;AACL,iBAAC,CAAC,CAAC;AACL,aAAC,CAAC,CAAC;YACH,MAAM,MAAM,GAAG,WAAW,EAAE;AACzB,iBAAA,MAAM,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;iBACtB,KAAK,CAAC,CAAC,MAAM,GAAG,OAAO,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;YAE1C,MAAM,KAAK,GASL,EAAE,CAAC;AACT,YAAA,iBAAiB,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,KAAI;AAC7D,gBAAA,CAAC,GAAG,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC,KAAI;AAC1D,oBAAA,CAAC,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,EAAE,CAAC,KAAI;;AACtD,wBAAA,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;wBAE1C,MAAM,KAAK,GAAG,WAAW,CAAC;wBAC1B,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;AAClD,wBAAA,MAAM,CAAC,GACL,CAAC,CAAA,EAAA,GAAA,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,CAAC;4BACnC,YAAY;AACZ,4BAAA,WAAW,GAAG,KAAK;4BACnB,aAAa,GAAG,KAAK,CAAC;wBACxB,MAAM,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC;wBACpC,MAAM,IAAI,GAAG,CAAO,IAAA,EAAA,WAAW,CAAC,MAAM,CAAC,UAAU,CAAA,CAAA,CAAG,CAAC;wBAErD,KAAK,CAAC,IAAI,CAAC;AACT,4BAAA,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE;4BACzB,CAAC;4BACD,CAAC;4BACD,KAAK;4BACL,MAAM;4BACN,IAAI;AACJ,4BAAA,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,KAAK,KAAK,SAAS;4BAC/C,WAAW;AACZ,yBAAA,CAAC,CAAC;AACL,qBAAC,CAAC,CAAC;AACL,iBAAC,CAAC,CAAC;AACL,aAAC,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,IAAG;;AAAC,gBAAA,QAAC;AACjC,oBAAA,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE;AACzB,oBAAA,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC;AACvB,oBAAA,CAAC,EAAE,CAAC,CAAA,EAAA,GAAA,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,CAAC,IAAI,WAAW,CAAC,SAAS,EAAE,GAAG,CAAC;AACtE,iBAAA,EAAC;AAAA,aAAA,CAAC,CAAC;YACJ,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAE/B,YAAA,MAAM,cAAc,GAClB,iBAAiB,CAAC,MAAM,GAAG,WAAW;gBACtC,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,IAAI,aAAa,CAAC;YACjD,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,IAAG;;AAAC,gBAAA,QAAC;AACrC,oBAAA,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE;AACzB,oBAAA,CAAC,EACC,CAAC,CAAA,EAAA,GAAA,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,CAAC;wBACnC,CAAC,WAAW,CAAC,SAAS,EAAE,GAAG,cAAc,IAAI,CAAC;AAChD,oBAAA,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC;AACpB,oBAAA,KAAK,EAAE,cAAc;oBACrB,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC;AACtC,iBAAA,EAAC;AAAA,aAAA,CAAC,CAAC;YAEJ,OAAO;gBACL,WAAW;gBACX,UAAU;gBACV,KAAK;gBACL,OAAO;gBACP,MAAM;gBACN,MAAM;gBACN,MAAM;aACP,CAAC;AACJ,SAAC,CAAC,EACF,WAAW,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CAC/C,CAAC;QAEO,IAAM,CAAA,MAAA,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAChC,GAAG,CAAC,KAAK,IACP,KAAK,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CACtE,EACD,WAAW,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CAC/C,CAAC;QAEO,IAAA,CAAA,YAAY,GAAG,IAAI,eAAe,CAGjC,IAAI,CAAC,CAAC;QAEP,IAAQ,CAAA,QAAA,GAAG,aAAa,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CACzE,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,QAAQ,CAAC,KAAI;AAC9B,YAAA,IAAI,CAAC,WAAW;AAAE,gBAAA,OAAO,IAAI,CAAC;AAE9B,YAAA,MAAM,EAAE,MAAM,EAAE,GAAG,WAAW,CAAC,KAAK,CAAC;AACrC,YAAA,IAAI,CAAC,MAAM;AAAE,gBAAA,OAAO,IAAI,CAAC;AACzB,YAAA,MAAM,MAAM,GAAoB,MAAO,CAAC,qBAAqB,EAAE,CAAC;AAGhE,YAAA,MAAM,OAAO,GAAa,QAAQ,CAAC,KAAK;AACrC,iBAAA,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,KAAK,WAAW,CAAC,SAAS,CAAC;AACxD,iBAAA,GAAG,CAAC,IAAI,KAAK;AACZ,gBAAA,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK;gBACpC,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AACnD,aAAA,CAAC,CAAC,CAAC;AAEN,YAAA,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AAC7B,SAAC,CAAC,EACF,WAAW,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CAC/C,CAAC;KACH;IAzMC,IACW,KAAK,CAAC,CAAU,EAAA;AACzB,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACrB;AACD,IAAA,IAAW,KAAK,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;KAC/B;IAGD,IACW,KAAK,CAAC,CAAS,EAAA;AACxB,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACrB;AACD,IAAA,IAAW,KAAK,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;KAC/B;IAGD,IACW,MAAM,CAAC,CAAS,EAAA;AACzB,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACtB;AACD,IAAA,IAAW,MAAM,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;KAChC;;mHA1BU,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,sBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,0JC1CnC,osGAsHA,EAAA,MAAA,EAAA,CAAA,0pBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAJ,gBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,SAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAI,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;2FD5Ea,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBANlC,SAAS;+BACE,oBAAoB,EAAA,eAAA,EAGb,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,osGAAA,EAAA,MAAA,EAAA,CAAA,0pBAAA,CAAA,EAAA,CAAA;8BAKpC,KAAK,EAAA,CAAA;sBADf,KAAK;gBAUK,KAAK,EAAA,CAAA;sBADf,KAAK;gBAUK,MAAM,EAAA,CAAA;sBADhB,KAAK;gBASC,cAAc,EAAA,CAAA;sBADpB,KAAK;;;MEfK,SAAS,CAAA;;sGAAT,SAAS,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAT,SAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,SAAS,iBAnClB,gBAAgB;QAChB,gBAAgB;QAChB,sBAAsB;QACtB,sBAAsB;QACtB,kBAAkB;QAClB,4BAA4B;QAC5B,qBAAqB;QACrB,cAAc;QACd,aAAa;QACb,mBAAmB;QACnB,eAAe;QACf,sBAAsB;QACtB,mBAAmB;QACnB,mBAAmB;QACnB,kBAAkB,CAAA,EAAA,OAAA,EAAA,CAmBV,YAAY,CAAA,EAAA,OAAA,EAAA,CAhBpB,gBAAgB;QAChB,gBAAgB;QAChB,sBAAsB;QACtB,sBAAsB;QACtB,kBAAkB;QAClB,4BAA4B;QAC5B,qBAAqB;QACrB,cAAc;QACd,aAAa;QACb,mBAAmB;QACnB,eAAe;QACf,sBAAsB;QACtB,mBAAmB;QACnB,mBAAmB;QACnB,kBAAkB,CAAA,EAAA,CAAA,CAAA;AAIT,SAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,SAAS,YAFV,YAAY,CAAA,EAAA,CAAA,CAAA;2FAEX,SAAS,EAAA,UAAA,EAAA,CAAA;kBArCrB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,gBAAgB;wBAChB,gBAAgB;wBAChB,sBAAsB;wBACtB,sBAAsB;wBACtB,kBAAkB;wBAClB,4BAA4B;wBAC5B,qBAAqB;wBACrB,cAAc;wBACd,aAAa;wBACb,mBAAmB;wBACnB,eAAe;wBACf,sBAAsB;wBACtB,mBAAmB;wBACnB,mBAAmB;wBACnB,kBAAkB;AACnB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,gBAAgB;wBAChB,gBAAgB;wBAChB,sBAAsB;wBACtB,sBAAsB;wBACtB,kBAAkB;wBAClB,4BAA4B;wBAC5B,qBAAqB;wBACrB,cAAc;wBACd,aAAa;wBACb,mBAAmB;wBACnB,eAAe;wBACf,sBAAsB;wBACtB,mBAAmB;wBACnB,mBAAmB;wBACnB,kBAAkB;AACnB,qBAAA;oBACD,OAAO,EAAE,CAAC,YAAY,CAAC;iBACxB,CAAA;;;ACtDD;;AAEG;;;;"}