@multiplatform.one/frappe-ui 7.88.0 → 7.88.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/FrappeReportBuilder.cjs +2 -1
- package/dist/cjs/FrappeReportBuilder.native.js +2 -1
- package/dist/cjs/FrappeReportBuilder.native.js.map +1 -1
- package/dist/cjs/report/ReportGrid.cjs +18 -4
- package/dist/cjs/report/ReportGrid.native.js +28 -4
- package/dist/cjs/report/ReportGrid.native.js.map +1 -1
- package/dist/cjs/report/ReportViewToolbar.cjs +8 -13
- package/dist/cjs/report/ReportViewToolbar.native.js +8 -13
- package/dist/cjs/report/ReportViewToolbar.native.js.map +1 -1
- package/dist/esm/FrappeReportBuilder.mjs +2 -1
- package/dist/esm/FrappeReportBuilder.mjs.map +1 -1
- package/dist/esm/FrappeReportBuilder.native.js +2 -1
- package/dist/esm/FrappeReportBuilder.native.js.map +1 -1
- package/dist/esm/report/ReportGrid.mjs +17 -4
- package/dist/esm/report/ReportGrid.mjs.map +1 -1
- package/dist/esm/report/ReportGrid.native.js +27 -4
- package/dist/esm/report/ReportGrid.native.js.map +1 -1
- package/dist/esm/report/ReportViewToolbar.mjs +8 -13
- package/dist/esm/report/ReportViewToolbar.mjs.map +1 -1
- package/dist/esm/report/ReportViewToolbar.native.js +8 -13
- package/dist/esm/report/ReportViewToolbar.native.js.map +1 -1
- package/dist/jsx/FrappeReportBuilder.mjs +2 -1
- package/dist/jsx/FrappeReportBuilder.mjs.map +1 -1
- package/dist/jsx/FrappeReportBuilder.native.js +2 -1
- package/dist/jsx/FrappeReportBuilder.native.js.map +1 -1
- package/dist/jsx/index.native.js.map +1 -1
- package/dist/jsx/report/ReportGrid.mjs +17 -4
- package/dist/jsx/report/ReportGrid.mjs.map +1 -1
- package/dist/jsx/report/ReportGrid.native.js +28 -4
- package/dist/jsx/report/ReportGrid.native.js.map +1 -1
- package/dist/jsx/report/ReportViewToolbar.mjs +8 -13
- package/dist/jsx/report/ReportViewToolbar.mjs.map +1 -1
- package/dist/jsx/report/ReportViewToolbar.native.js +8 -13
- package/dist/jsx/report/ReportViewToolbar.native.js.map +1 -1
- package/package.json +16 -16
- package/src/FrappeReportBuilder.stories.tsx +1 -0
- package/src/FrappeReportBuilder.tsx +2 -1
- package/src/report/ReportGrid.spec.tsx +14 -1
- package/src/report/ReportGrid.tsx +24 -3
- package/src/report/ReportViewToolbar.spec.tsx +32 -2
- package/src/report/ReportViewToolbar.tsx +29 -24
- package/types/FrappeReportBuilder.d.ts.map +1 -1
- package/types/report/ReportGrid.d.ts +5 -0
- package/types/report/ReportGrid.d.ts.map +1 -1
- package/types/report/ReportViewToolbar.d.ts.map +1 -1
|
@@ -606,7 +606,8 @@ function FrappeReportBuilderBody({
|
|
|
606
606
|
exportDisabled: total === 0
|
|
607
607
|
})
|
|
608
608
|
}), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.ScrollView, {
|
|
609
|
-
|
|
609
|
+
flexGrow: 0,
|
|
610
|
+
flexShrink: 1,
|
|
610
611
|
minWidth: 0,
|
|
611
612
|
minHeight: 0,
|
|
612
613
|
paddingHorizontal: "$3",
|
|
@@ -766,7 +766,8 @@ function FrappeReportBuilderBody(param) {
|
|
|
766
766
|
exportDisabled: total === 0
|
|
767
767
|
})
|
|
768
768
|
}), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.ScrollView, {
|
|
769
|
-
|
|
769
|
+
flexGrow: 0,
|
|
770
|
+
flexShrink: 1,
|
|
770
771
|
minWidth: 0,
|
|
771
772
|
minHeight: 0,
|
|
772
773
|
paddingHorizontal: "$3",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__create","Object","create","__defProp","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__getProtoOf","getPrototypeOf","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toESM","mod","isNodeMode","__esModule","value","__toCommonJS","FrappeReportBuilder_exports","FrappeReportBuilder","module","exports","import_jsx_runtime","require","import_components","import_frappe","import_forms","import_store","import_table","import_theme","import_react","import_react_i18next","import_FrappeNotConfigured","import_FrappeProvider","import_liveErrors","import_recordShape","import_exportCsv","import_ReportGrid","import_ReportViewToolbar","import_reportViewModel","import_savedReports","import_useFrappeRows","_instanceof","left","right","Symbol","hasInstance","_type_of","obj","constructor","EMPTY_FILTERS","COLUMN_FILTER_DEBOUNCE_MS","columnsStorageKey","doctype","readStoredColumns","raw","Promise","resolve","storage","getItem","parsed","JSON","parse","Array","isArray","every","entry","unused","persistStoredColumns","fieldnames","setItem","stringify","toReportFilters","filters","length","tuples","entries","map","param","field","initialFieldnames","columns","flatMap","column","enabled","fieldname","asFieldType","fieldtype","_frappeFieldTypes_find","frappeFieldTypes","find","known","refusedMetaFields","initialColumns","recordFields","declared","label","recordKeyLabel","filter","read_only","in_list_view","asError","error","Error","String","groupField","groupBy","aggregateGroups","rows","config","groups","Map","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","iterator","_step","next","done","row","bucket","push","set","err","return","numbers","numbers2","group","row2","Number","aggregationField","aggregation","reduce","sum","Math","min","max","props","_props_baseURL","useFrappeConfig","baseURL","fixtures","jsx","FrappeNotConfigured","FrappeReportBuilderBody","scopeFilters","onClearFilters","initialGroupBy","showChart","onOpenRow","onRowPress","onOpenLink","report","reportProp","onReportChange","onExport","loading","loadingFallback","errorFallback","auth","syncOptions","stackProps","_ref","_ref1","_ref2","t","useTranslation","knobProps","useResolvedKnobs","finalBaseURL","finalAuth","finalSyncOptions","fixtureMode","Boolean","connection","useMemo","socketPort","siteName","socketBaseURL","realtime","meta","isLoading","metaLoading","metaError","useDocTypeMeta","metaRefused","isPermissionError","initialColumnsJson","declaresColumns","recordShape","useRecordShape","layoutMeta","fields","readsWithoutMeta","savedReports","useSavedReports","_connection_baseURL","internalReport","setInternalReport","useState","currentReport","allColumns","reportColumnsFromMeta","own","Set","has","compact","useLayoutSizeClass","defaultFieldnames","phoneReportFieldnames","defaultReportFieldnames","fileUrl","useCallback","path","test","replace","startsWith","initialColumnsKey","startFieldnames","storedColumns","setStoredColumns","selectedOverride","setSelectedOverride","useEffect","cancelled","then","stored","selectedFieldnames","selectedColumns","resolveSelectedColumns","filtersKey","propFilters","filtersCleared","setFiltersCleared","reportFilters","setReportFilters","baseFilters","filterDrafts","setFilterDrafts","committedFilters","setCommittedFilters","handle","setTimeout","previous","clearTimeout","columnTuples","columnFilterTuples","scopeKey","scope","effectiveFilters","metaSort","sort_field","split","order","sort_order","toLowerCase","sortOverride","setSortOverride","sort","startGroupBy","chartConfig","setGroupBy","pageSize","setPageSize","DEFAULT_REPORT_PAGE_SIZE","page","setPage","effectiveFiltersKey","load","saved","_saved_groupBy","REPORT_PAGE_SIZES","some","size","handleToggleColumn","_ref3","_ref12","current","includes","handleResetColumns","fetchFields","add","image_field","orderBy","Order","Asc","Desc","rowsData","syncError","rowsLoading","useFrappeRows","limit","mapError","orderedRows","orderReportRows","total","pageCount","ceil","effectivePage","gridRows","buildGridRows","totals","computeTotals","groupByColumn","chartData","rowsPressable","handleOpenRow","index","findIndex","handleSelectReport","handleClearBaseFilters","handleSaveReport","save","addTotals","savedName","notify","severity","body","defaultValue","catch","message","handleDeleteReport","remove","exportEnabled","canSaveCsv","handleExport","exportCsvFile","csv","buildReportCsv","filename","rowCount","handleColumnFilterChange","_dropped","rest","handleClearColumnFilters","Fragment","children","YStack","flex","alignItems","justifyContent","Spinner","status","EmptyState","testID","title","description","refusalReason","intent","hasFilters","action","Button","onPress","jsxs","flexGrow","flexShrink","flexBasis","minWidth","gap","surface","containerRadius","panelPadding","BarChart","data","ReportGrid","onSortChange","columnFilters","onColumnFilterChange","imageField","titleField","title_field","content","minHeight","paddingHorizontal","ReportViewToolbar","selected","onToggleColumn","onResetColumns","onGroupByChange","onClearBaseFilters","columnFilterCount","onClearColumnFilters","reports","onSelectReport","onSaveReport","onDeleteReport","exportDisabled","ScrollView","paddingVertical","DataTablePagination","pagination","pageIndex","totalCount","totalPages","onPaginationChange","pageSizeOptions"],"sources":["FrappeReportBuilder.native.js"],"sourcesContent":["\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar FrappeReportBuilder_exports = {};\n__export(FrappeReportBuilder_exports, {\n FrappeReportBuilder: () => FrappeReportBuilder\n});\nmodule.exports = __toCommonJS(FrappeReportBuilder_exports);\nvar import_jsx_runtime = require(\"react/jsx-runtime\");\nvar import_components = require(\"@multiplatform.one/components\");\nvar import_frappe = require(\"@multiplatform.one/frappe\");\nvar import_forms = require(\"@multiplatform.one/forms\");\nvar import_store = require(\"@multiplatform.one/store\");\nvar import_table = require(\"@multiplatform.one/table\");\nvar import_theme = require(\"@multiplatform.one/theme\");\nvar import_react = __toESM(require(\"react\"));\nvar import_react_i18next = require(\"react-i18next\");\nvar import_FrappeNotConfigured = require(\"./FrappeNotConfigured\");\nvar import_FrappeProvider = require(\"./FrappeProvider\");\nvar import_liveErrors = require(\"./liveErrors\");\nvar import_recordShape = require(\"./recordShape\");\nvar import_exportCsv = require(\"./report/exportCsv\");\nvar import_ReportGrid = require(\"./report/ReportGrid\");\nvar import_ReportViewToolbar = require(\"./report/ReportViewToolbar\");\nvar import_reportViewModel = require(\"./report/reportViewModel\");\nvar import_savedReports = require(\"./report/savedReports\");\nvar import_useFrappeRows = require(\"./useFrappeRows\");\nfunction _instanceof(left, right) {\n \"@swc/helpers - instanceof\";\n if (right != null && typeof Symbol !== \"undefined\" && right[Symbol.hasInstance]) {\n return !!right[Symbol.hasInstance](left);\n } else {\n return left instanceof right;\n }\n}\nfunction _type_of(obj) {\n \"@swc/helpers - typeof\";\n return obj && typeof Symbol !== \"undefined\" && obj.constructor === Symbol ? \"symbol\" : typeof obj;\n}\nvar EMPTY_FILTERS = [];\nvar COLUMN_FILTER_DEBOUNCE_MS = 350;\nfunction columnsStorageKey(doctype) {\n return `backoffice.report.columns.${doctype}`;\n}\nasync function readStoredColumns(doctype) {\n try {\n var raw = await Promise.resolve(import_store.storage.getItem(columnsStorageKey(doctype)));\n if (!raw) return void 0;\n var parsed = JSON.parse(raw);\n if (Array.isArray(parsed) && parsed.every(function(entry) {\n return typeof entry === \"string\";\n })) {\n return parsed;\n }\n } catch (unused) {\n }\n return void 0;\n}\nfunction persistStoredColumns(doctype, fieldnames) {\n try {\n void Promise.resolve(import_store.storage.setItem(columnsStorageKey(doctype), JSON.stringify(fieldnames)));\n } catch (unused) {\n }\n}\nfunction toReportFilters(filters) {\n if (!filters) return void 0;\n if (Array.isArray(filters)) return filters.length > 0 ? filters : void 0;\n var tuples = Object.entries(filters).map(function(param) {\n var [field, value] = param;\n return [\n field,\n \"=\",\n value\n ];\n });\n return tuples.length > 0 ? tuples : void 0;\n}\nfunction initialFieldnames(columns) {\n if (!columns) return null;\n var fieldnames = columns.flatMap(function(column) {\n return typeof column === \"string\" ? [\n column\n ] : column.enabled ? [\n column.fieldname\n ] : [];\n });\n return fieldnames.length > 0 ? fieldnames : null;\n}\nfunction asFieldType(fieldtype) {\n var _frappeFieldTypes_find;\n return (_frappeFieldTypes_find = import_frappe.frappeFieldTypes.find(function(known) {\n return known === fieldtype;\n })) !== null && _frappeFieldTypes_find !== void 0 ? _frappeFieldTypes_find : \"Data\";\n}\nfunction refusedMetaFields(initialColumns, recordFields) {\n var declared = (initialColumns !== null && initialColumns !== void 0 ? initialColumns : []).map(function(column) {\n return typeof column === \"string\" ? {\n fieldname: column,\n label: (0, import_recordShape.recordKeyLabel)(column),\n fieldtype: \"Data\"\n } : {\n fieldname: column.fieldname,\n label: column.label,\n fieldtype: asFieldType(column.fieldtype)\n };\n });\n return (declared.length > 0 ? declared : recordFields !== null && recordFields !== void 0 ? recordFields : []).filter(function(field) {\n return field.fieldname !== \"name\";\n }).map(function(field) {\n return {\n ...field,\n read_only: 1,\n in_list_view: 1\n };\n });\n}\nfunction asError(error) {\n return _instanceof(error, Error) ? error : new Error(String(error));\n}\nfunction groupField(groupBy) {\n if (!groupBy) return null;\n return typeof groupBy === \"string\" ? groupBy : groupBy.field;\n}\nfunction aggregateGroups(rows, field, config) {\n var groups = /* @__PURE__ */ new Map();\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = rows[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var row = _step.value;\n var key = row[field] === null || row[field] === void 0 ? \"\" : String(row[field]);\n var bucket = groups.get(key);\n if (bucket) bucket.push(row);\n else groups.set(key, [\n row\n ]);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n var numbers = function numbers2(group) {\n return group.map(function(row2) {\n return Number((config === null || config === void 0 ? void 0 : config.aggregationField) ? row2[config.aggregationField] : 0) || 0;\n });\n };\n return [\n ...groups.entries()\n ].map(function(param) {\n var [label, group] = param;\n switch ((config === null || config === void 0 ? void 0 : config.aggregationField) ? config.aggregation : \"count\") {\n case \"sum\":\n return {\n label,\n value: numbers(group).reduce(function(sum, value) {\n return sum + value;\n }, 0)\n };\n case \"avg\":\n return {\n label,\n value: numbers(group).reduce(function(sum, value) {\n return sum + value;\n }, 0) / group.length\n };\n case \"min\":\n return {\n label,\n value: Math.min(...numbers(group))\n };\n case \"max\":\n return {\n label,\n value: Math.max(...numbers(group))\n };\n default:\n return {\n label,\n value: group.length\n };\n }\n });\n}\nfunction FrappeReportBuilder(props) {\n var _props_baseURL;\n var config = (0, import_FrappeProvider.useFrappeConfig)();\n if (!((_props_baseURL = props.baseURL) !== null && _props_baseURL !== void 0 ? _props_baseURL : config === null || config === void 0 ? void 0 : config.baseURL) && !(config === null || config === void 0 ? void 0 : config.fixtures)) {\n return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_FrappeNotConfigured.FrappeNotConfigured, {\n doctype: props.doctype\n });\n }\n return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(FrappeReportBuilderBody, {\n ...props\n });\n}\nfunction FrappeReportBuilderBody(param) {\n var { doctype, filters, scopeFilters, onClearFilters, initialColumns, initialGroupBy, showChart = false, onOpenRow, onRowPress, onOpenLink, report: reportProp, onReportChange, onExport, loading: loadingFallback, error: errorFallback, baseURL, auth, syncOptions, ...stackProps } = param;\n var _ref, _ref1, _ref2;\n var { t } = (0, import_react_i18next.useTranslation)();\n var { knobProps } = (0, import_theme.useResolvedKnobs)();\n var config = (0, import_FrappeProvider.useFrappeConfig)();\n var finalBaseURL = baseURL !== null && baseURL !== void 0 ? baseURL : config === null || config === void 0 ? void 0 : config.baseURL;\n var finalAuth = auth !== null && auth !== void 0 ? auth : config === null || config === void 0 ? void 0 : config.auth;\n var finalSyncOptions = syncOptions !== null && syncOptions !== void 0 ? syncOptions : config === null || config === void 0 ? void 0 : config.syncOptions;\n var fixtureMode = Boolean(config === null || config === void 0 ? void 0 : config.fixtures);\n var connection = (0, import_react.useMemo)(function() {\n return {\n baseURL: finalBaseURL,\n socketPort: config === null || config === void 0 ? void 0 : config.socketPort,\n siteName: config === null || config === void 0 ? void 0 : config.siteName,\n socketBaseURL: config === null || config === void 0 ? void 0 : config.socketBaseURL,\n auth: finalAuth,\n syncOptions: finalSyncOptions,\n realtime: config === null || config === void 0 ? void 0 : config.realtime,\n fixtures: config === null || config === void 0 ? void 0 : config.fixtures\n };\n }, [\n finalBaseURL,\n config === null || config === void 0 ? void 0 : config.socketPort,\n config === null || config === void 0 ? void 0 : config.siteName,\n config === null || config === void 0 ? void 0 : config.socketBaseURL,\n finalAuth,\n finalSyncOptions,\n config === null || config === void 0 ? void 0 : config.realtime,\n config === null || config === void 0 ? void 0 : config.fixtures\n ]);\n var { meta, isLoading: metaLoading, error: metaError } = (0, import_frappe.useDocTypeMeta)(connection, doctype);\n var metaRefused = !meta && metaError !== void 0 && (0, import_liveErrors.isPermissionError)(metaError);\n var initialColumnsJson = JSON.stringify(initialColumns !== null && initialColumns !== void 0 ? initialColumns : []);\n var declaresColumns = initialColumnsJson !== \"[]\";\n var recordShape = (0, import_recordShape.useRecordShape)(connection, doctype, metaRefused && !declaresColumns);\n var layoutMeta = (0, import_react.useMemo)(function() {\n if (meta) return meta;\n if (!metaRefused) return void 0;\n var fields = refusedMetaFields(JSON.parse(initialColumnsJson), recordShape.fields);\n return fields.length > 0 ? {\n fields\n } : void 0;\n }, [\n meta,\n metaRefused,\n initialColumnsJson,\n recordShape.fields\n ]);\n var readsWithoutMeta = !meta && layoutMeta !== void 0;\n var savedReports = (0, import_savedReports.useSavedReports)(doctype, (0, import_react.useMemo)(function() {\n var _connection_baseURL;\n return {\n baseURL: metaRefused ? \"\" : (_connection_baseURL = connection.baseURL) !== null && _connection_baseURL !== void 0 ? _connection_baseURL : \"\",\n auth: connection.auth,\n fixtures: connection.fixtures\n };\n }, [\n metaRefused,\n connection.baseURL,\n connection.auth,\n connection.fixtures\n ]));\n var [internalReport, setInternalReport] = (0, import_react.useState)(null);\n var currentReport = reportProp !== void 0 ? reportProp : internalReport;\n var allColumns = (0, import_react.useMemo)(function() {\n var columns = (0, import_reportViewModel.reportColumnsFromMeta)(layoutMeta);\n if (!readsWithoutMeta || !layoutMeta) return columns;\n var own = new Set(layoutMeta.fields.map(function(field) {\n return field.fieldname;\n }));\n return columns.filter(function(column) {\n return column.fieldname === \"name\" || own.has(column.fieldname);\n });\n }, [\n layoutMeta,\n readsWithoutMeta\n ]);\n var compact = (0, import_theme.useLayoutSizeClass)() === \"compact\";\n var defaultFieldnames = (0, import_react.useMemo)(function() {\n return compact ? (0, import_reportViewModel.phoneReportFieldnames)(layoutMeta) : readsWithoutMeta && layoutMeta ? [\n \"name\",\n ...layoutMeta.fields.map(function(field) {\n return field.fieldname;\n })\n ] : (0, import_reportViewModel.defaultReportFieldnames)(layoutMeta);\n }, [\n layoutMeta,\n readsWithoutMeta,\n compact\n ]);\n var fileUrl = (0, import_react.useCallback)(function(path) {\n return /^(?:https?:|data:|blob:)/.test(path) || !connection.baseURL ? path : `${connection.baseURL.replace(/\\/$/, \"\")}${path.startsWith(\"/\") ? \"\" : \"/\"}${path}`;\n }, [\n connection.baseURL\n ]);\n var initialColumnsKey = JSON.stringify(initialFieldnames(initialColumns));\n var startFieldnames = (0, import_react.useMemo)(function() {\n return JSON.parse(initialColumnsKey);\n }, [\n initialColumnsKey\n ]);\n var [storedColumns, setStoredColumns] = (0, import_react.useState)(void 0);\n var [selectedOverride, setSelectedOverride] = (0, import_react.useState)(null);\n (0, import_react.useEffect)(function() {\n if (fixtureMode) return;\n var cancelled = false;\n void readStoredColumns(doctype).then(function(stored) {\n if (!cancelled) setStoredColumns(stored);\n });\n return function() {\n cancelled = true;\n };\n }, [\n doctype,\n fixtureMode\n ]);\n var selectedFieldnames = (_ref = (_ref1 = selectedOverride !== null && selectedOverride !== void 0 ? selectedOverride : startFieldnames) !== null && _ref1 !== void 0 ? _ref1 : storedColumns) !== null && _ref !== void 0 ? _ref : defaultFieldnames;\n var selectedColumns = (0, import_react.useMemo)(function() {\n return (0, import_reportViewModel.resolveSelectedColumns)(allColumns, selectedFieldnames);\n }, [\n allColumns,\n selectedFieldnames\n ]);\n var filtersKey = JSON.stringify(filters !== null && filters !== void 0 ? filters : null);\n var propFilters = (0, import_react.useMemo)(function() {\n return toReportFilters(JSON.parse(filtersKey));\n }, [\n filtersKey\n ]);\n var [filtersCleared, setFiltersCleared] = (0, import_react.useState)(false);\n var [reportFilters, setReportFilters] = (0, import_react.useState)(null);\n var baseFilters = filtersCleared ? EMPTY_FILTERS : (_ref2 = reportFilters !== null && reportFilters !== void 0 ? reportFilters : propFilters) !== null && _ref2 !== void 0 ? _ref2 : EMPTY_FILTERS;\n var [filterDrafts, setFilterDrafts] = (0, import_react.useState)({});\n var [committedFilters, setCommittedFilters] = (0, import_react.useState)({});\n (0, import_react.useEffect)(function() {\n var handle = setTimeout(function() {\n setCommittedFilters(function(previous) {\n return JSON.stringify(previous) === JSON.stringify(filterDrafts) ? previous : filterDrafts;\n });\n }, COLUMN_FILTER_DEBOUNCE_MS);\n return function() {\n return clearTimeout(handle);\n };\n }, [\n filterDrafts\n ]);\n var columnTuples = (0, import_react.useMemo)(function() {\n return (0, import_reportViewModel.columnFilterTuples)(selectedColumns, committedFilters);\n }, [\n selectedColumns,\n committedFilters\n ]);\n var scopeKey = JSON.stringify(scopeFilters !== null && scopeFilters !== void 0 ? scopeFilters : []);\n var scope = (0, import_react.useMemo)(function() {\n return JSON.parse(scopeKey);\n }, [\n scopeKey\n ]);\n var effectiveFilters = (0, import_react.useMemo)(function() {\n return [\n ...scope,\n ...baseFilters,\n ...columnTuples\n ];\n }, [\n scope,\n baseFilters,\n columnTuples\n ]);\n var metaSort = (0, import_react.useMemo)(function() {\n return {\n field: ((meta === null || meta === void 0 ? void 0 : meta.sort_field) || \"modified\").split(\" \")[0],\n order: ((meta === null || meta === void 0 ? void 0 : meta.sort_order) || \"DESC\").toLowerCase() === \"asc\" ? \"asc\" : \"desc\"\n };\n }, [\n meta === null || meta === void 0 ? void 0 : meta.sort_field,\n meta === null || meta === void 0 ? void 0 : meta.sort_order\n ]);\n var [sortOverride, setSortOverride] = (0, import_react.useState)(null);\n var sort = sortOverride !== null && sortOverride !== void 0 ? sortOverride : metaSort;\n var startGroupBy = groupField(initialGroupBy);\n var chartConfig = (typeof initialGroupBy === \"undefined\" ? \"undefined\" : _type_of(initialGroupBy)) === \"object\" ? initialGroupBy : void 0;\n var [groupBy, setGroupBy] = (0, import_react.useState)(startGroupBy);\n var [pageSize, setPageSize] = (0, import_react.useState)(import_reportViewModel.DEFAULT_REPORT_PAGE_SIZE);\n var [page, setPage] = (0, import_react.useState)(0);\n (0, import_react.useEffect)(\n function() {\n setSelectedOverride(null);\n setStoredColumns(void 0);\n setSortOverride(null);\n setGroupBy(startGroupBy);\n setPage(0);\n setPageSize(import_reportViewModel.DEFAULT_REPORT_PAGE_SIZE);\n setFilterDrafts({});\n setCommittedFilters({});\n setFiltersCleared(false);\n setReportFilters(null);\n },\n // startGroupBy is the mount-time seed; only a doctype swap re-seeds.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n doctype\n ]\n );\n (0, import_react.useEffect)(function() {\n return setFiltersCleared(false);\n }, [\n filtersKey\n ]);\n var effectiveFiltersKey = (0, import_react.useMemo)(function() {\n return JSON.stringify(effectiveFilters);\n }, [\n effectiveFilters\n ]);\n (0, import_react.useEffect)(function() {\n setPage(0);\n }, [\n effectiveFiltersKey,\n pageSize,\n groupBy\n ]);\n (0, import_react.useEffect)(\n function() {\n if (!currentReport) {\n setReportFilters(null);\n return;\n }\n var cancelled = false;\n void savedReports.load(currentReport).then(function(saved) {\n var _saved_groupBy;\n if (cancelled || !saved) return;\n setSelectedOverride(saved.fieldnames.length > 0 ? saved.fieldnames : null);\n setReportFilters(saved.filters);\n setFilterDrafts({});\n setCommittedFilters({});\n setFiltersCleared(false);\n if (saved.sort) setSortOverride(saved.sort);\n if (saved.pageSize && import_reportViewModel.REPORT_PAGE_SIZES.some(function(size) {\n return size === saved.pageSize;\n })) {\n setPageSize(saved.pageSize);\n }\n setGroupBy((_saved_groupBy = saved.groupBy) !== null && _saved_groupBy !== void 0 ? _saved_groupBy : null);\n });\n return function() {\n cancelled = true;\n };\n },\n // savedReports.load changes identity with its report list; reloading the\n // config on list refreshes would clobber in-progress edits — key on the\n // selected report (and doctype via load's closure) only.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n currentReport,\n doctype\n ]\n );\n var handleToggleColumn = (0, import_react.useCallback)(function(fieldname) {\n setSelectedOverride(function(previous) {\n var _ref3, _ref12;\n var current = (_ref3 = (_ref12 = previous !== null && previous !== void 0 ? previous : startFieldnames) !== null && _ref12 !== void 0 ? _ref12 : storedColumns) !== null && _ref3 !== void 0 ? _ref3 : defaultFieldnames;\n var next = current.includes(fieldname) ? current.length === 1 ? current : current.filter(function(entry) {\n return entry !== fieldname;\n }) : [\n ...current,\n fieldname\n ];\n if (!fixtureMode && !currentReport) persistStoredColumns(doctype, next);\n return next;\n });\n }, [\n startFieldnames,\n storedColumns,\n defaultFieldnames,\n fixtureMode,\n currentReport,\n doctype\n ]);\n var handleResetColumns = (0, import_react.useCallback)(function() {\n setSelectedOverride(defaultFieldnames);\n setStoredColumns(void 0);\n if (!fixtureMode) persistStoredColumns(doctype, defaultFieldnames);\n }, [\n defaultFieldnames,\n fixtureMode,\n doctype\n ]);\n var fetchFields = (0, import_react.useMemo)(function() {\n var fields = /* @__PURE__ */ new Set([\n \"name\",\n sort.field\n ]);\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = selectedColumns[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var column = _step.value;\n fields.add(column.fieldname);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n if (groupBy) fields.add(groupBy);\n if (chartConfig === null || chartConfig === void 0 ? void 0 : chartConfig.aggregationField) fields.add(chartConfig.aggregationField);\n if (compact && (layoutMeta === null || layoutMeta === void 0 ? void 0 : layoutMeta.image_field)) fields.add(layoutMeta.image_field);\n return [\n ...fields\n ];\n }, [\n selectedColumns,\n sort.field,\n groupBy,\n chartConfig === null || chartConfig === void 0 ? void 0 : chartConfig.aggregationField,\n compact,\n layoutMeta === null || layoutMeta === void 0 ? void 0 : layoutMeta.image_field\n ]);\n var orderBy = (0, import_react.useMemo)(function() {\n return [\n {\n field: sort.field,\n order: sort.order === \"asc\" ? import_frappe.Order.Asc : import_frappe.Order.Desc\n }\n ];\n }, [\n sort.field,\n sort.order\n ]);\n var { rows: rowsData, syncError, isLoading: rowsLoading } = (0, import_useFrappeRows.useFrappeRows)(connection, doctype, {\n fields: fetchFields,\n filters: effectiveFilters,\n orderBy,\n limit: null,\n enabled: layoutMeta !== void 0,\n mapError: asError\n });\n var orderedRows = (0, import_react.useMemo)(function() {\n return (0, import_reportViewModel.orderReportRows)(rowsData, sort, groupBy);\n }, [\n rowsData,\n sort,\n groupBy\n ]);\n var total = orderedRows.length;\n var pageCount = Math.max(1, Math.ceil(total / pageSize));\n var effectivePage = Math.min(page, pageCount - 1);\n var gridRows = (0, import_react.useMemo)(function() {\n return (0, import_reportViewModel.buildGridRows)(orderedRows, effectivePage * pageSize, pageSize, groupBy);\n }, [\n orderedRows,\n effectivePage,\n pageSize,\n groupBy\n ]);\n var totals = (0, import_react.useMemo)(function() {\n return (0, import_reportViewModel.computeTotals)(selectedColumns, orderedRows);\n }, [\n selectedColumns,\n orderedRows\n ]);\n var groupByColumn = groupBy ? allColumns.find(function(column) {\n return column.fieldname === groupBy;\n }) : void 0;\n var chartData = (0, import_react.useMemo)(function() {\n return showChart && groupBy ? aggregateGroups(orderedRows, groupBy, chartConfig) : [];\n }, [\n showChart,\n groupBy,\n orderedRows,\n chartConfig\n ]);\n var rowsPressable = Boolean(onOpenRow || onRowPress);\n var handleOpenRow = (0, import_react.useCallback)(function(name) {\n onOpenRow === null || onOpenRow === void 0 ? void 0 : onOpenRow(name);\n if (onRowPress) {\n var index = orderedRows.findIndex(function(row) {\n return row.name === name;\n });\n if (index >= 0) onRowPress(orderedRows[index], index);\n }\n }, [\n onOpenRow,\n onRowPress,\n orderedRows\n ]);\n var handleSelectReport = (0, import_react.useCallback)(function(name) {\n if (reportProp === void 0) setInternalReport(name);\n onReportChange === null || onReportChange === void 0 ? void 0 : onReportChange(name);\n if (!name) {\n setReportFilters(null);\n setSelectedOverride(null);\n setSortOverride(null);\n setGroupBy(null);\n }\n }, [\n reportProp,\n onReportChange\n ]);\n var handleClearBaseFilters = (0, import_react.useCallback)(function() {\n setFiltersCleared(true);\n if (propFilters && !reportFilters) onClearFilters === null || onClearFilters === void 0 ? void 0 : onClearFilters();\n }, [\n propFilters,\n reportFilters,\n onClearFilters\n ]);\n var handleSaveReport = (0, import_react.useCallback)(function(name) {\n void savedReports.save(name, {\n fieldnames: [\n ...selectedFieldnames\n ],\n filters: effectiveFilters,\n sort,\n pageSize,\n groupBy,\n addTotals: totals.length > 0\n }).then(function(savedName) {\n (0, import_components.notify)({\n severity: \"success\",\n scope: \"page\",\n body: t(\"report.saveDone\", {\n defaultValue: \"Saved report \\u201C{{name}}\\u201D\",\n name: savedName\n })\n });\n if (savedName !== currentReport) handleSelectReport(savedName);\n }).catch(function(error) {\n (0, import_components.notify)({\n severity: \"error\",\n scope: \"page\",\n body: _instanceof(error, Error) ? error.message : t(\"report.saveFailed\", \"Could not save the report\")\n });\n });\n }, [\n savedReports,\n selectedFieldnames,\n effectiveFilters,\n sort,\n pageSize,\n groupBy,\n totals.length,\n currentReport,\n handleSelectReport,\n t\n ]);\n var handleDeleteReport = (0, import_react.useCallback)(function(name) {\n void savedReports.remove(name).then(function() {\n (0, import_components.notify)({\n severity: \"success\",\n scope: \"page\",\n body: t(\"report.deleteDone\", {\n defaultValue: \"Deleted report \\u201C{{name}}\\u201D\",\n name\n })\n });\n if (name === currentReport) handleSelectReport(null);\n }).catch(function(error) {\n (0, import_components.notify)({\n severity: \"error\",\n scope: \"page\",\n body: _instanceof(error, Error) ? error.message : t(\"report.deleteFailed\", \"Could not delete the report\")\n });\n });\n }, [\n savedReports,\n currentReport,\n handleSelectReport,\n t\n ]);\n var exportEnabled = Boolean(onExport) || (0, import_exportCsv.canSaveCsv)();\n var handleExport = (0, import_react.useCallback)(function() {\n if (onExport) {\n onExport(orderedRows);\n return;\n }\n void (0, import_exportCsv.exportCsvFile)({\n csv: (0, import_reportViewModel.buildReportCsv)(selectedColumns, orderedRows),\n filename: `${doctype}_report.csv`,\n rowCount: orderedRows.length,\n t\n });\n }, [\n onExport,\n selectedColumns,\n orderedRows,\n doctype,\n t\n ]);\n var handleColumnFilterChange = (0, import_react.useCallback)(function(fieldname, value) {\n setFilterDrafts(function(previous) {\n if (value === \"\") {\n if (!(fieldname in previous)) return previous;\n var { [fieldname]: _dropped, ...rest } = previous;\n return rest;\n }\n return {\n ...previous,\n [fieldname]: value\n };\n });\n }, []);\n var handleClearColumnFilters = (0, import_react.useCallback)(function() {\n setFilterDrafts({});\n setCommittedFilters({});\n }, []);\n if (metaLoading && !meta) {\n return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, {\n children: loadingFallback !== null && loadingFallback !== void 0 ? loadingFallback : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components.YStack, {\n flex: 1,\n alignItems: \"center\",\n justifyContent: \"center\",\n ...stackProps,\n children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components.Spinner, {\n size: \"large\"\n })\n })\n });\n }\n if (metaError && metaRefused && !layoutMeta) {\n if (recordShape.status === \"pending\") {\n return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, {\n children: loadingFallback !== null && loadingFallback !== void 0 ? loadingFallback : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components.YStack, {\n flex: 1,\n alignItems: \"center\",\n justifyContent: \"center\",\n ...stackProps,\n children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components.Spinner, {\n size: \"large\"\n })\n })\n });\n }\n return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, {\n children: errorFallback ? errorFallback(metaError) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components.EmptyState, {\n testID: \"frappe-report-not-permitted\",\n title: t(\"report.notPermitted\", {\n defaultValue: \"You can't open the {{doctype}} report\",\n doctype\n }),\n description: (0, import_liveErrors.refusalReason)(metaError)\n })\n });\n }\n if (metaError && !meta && !readsWithoutMeta) {\n return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, {\n children: errorFallback ? errorFallback(metaError) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components.EmptyState, {\n intent: \"error\",\n title: t(\"report.metaFailed\", {\n defaultValue: \"Couldn't load the {{doctype}} report\",\n doctype\n }),\n description: metaError.message\n })\n });\n }\n var body;\n if (syncError && (0, import_liveErrors.isPermissionError)(syncError)) {\n body = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components.EmptyState, {\n testID: \"frappe-report-not-permitted\",\n title: t(\"report.notPermitted\", {\n defaultValue: \"You can't open the {{doctype}} report\",\n doctype\n }),\n description: (0, import_liveErrors.refusalReason)(syncError)\n });\n } else if (syncError) {\n body = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components.EmptyState, {\n intent: \"error\",\n title: t(\"report.loadFailed\", \"Couldn't load report rows\"),\n description: syncError.message\n });\n } else if (rowsLoading && total === 0) {\n body = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components.YStack, {\n flex: 1,\n alignItems: \"center\",\n justifyContent: \"center\",\n children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components.Spinner, {\n size: \"large\"\n })\n });\n } else if (total === 0) {\n var hasFilters = effectiveFilters.length > 0;\n body = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components.EmptyState, {\n title: t(\"report.emptyTitle\", \"No results\"),\n description: hasFilters ? t(\"report.emptyFiltered\", \"No rows match the current filters\") : t(\"report.emptyDescription\", {\n defaultValue: \"There are no {{doctype}} records yet\",\n doctype\n }),\n action: hasFilters ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_forms.Button, {\n size: \"$3\",\n onPress: function onPress() {\n handleClearColumnFilters();\n handleClearBaseFilters();\n },\n children: t(\"report.clearAllFilters\", \"Clear all filters\")\n }) : void 0\n });\n } else {\n body = /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_components.YStack, {\n flexGrow: 1,\n flexShrink: 0,\n flexBasis: \"auto\",\n minWidth: 0,\n ...knobProps.gap,\n children: [\n chartData.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components.YStack, {\n ...knobProps.surface,\n ...knobProps.containerRadius,\n ...knobProps.panelPadding,\n children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components.BarChart, {\n data: chartData\n })\n }),\n /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ReportGrid.ReportGrid, {\n columns: selectedColumns,\n rows: gridRows,\n sort,\n onSortChange: setSortOverride,\n columnFilters: filterDrafts,\n onColumnFilterChange: handleColumnFilterChange,\n onOpenRow: rowsPressable ? handleOpenRow : void 0,\n onOpenLink,\n totals,\n groupByColumn,\n imageField: layoutMeta === null || layoutMeta === void 0 ? void 0 : layoutMeta.image_field,\n titleField: layoutMeta === null || layoutMeta === void 0 ? void 0 : layoutMeta.title_field,\n fileUrl\n })\n ]\n });\n }\n var content = /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_components.YStack, {\n flex: 1,\n minWidth: 0,\n minHeight: 0,\n ...stackProps,\n children: [\n /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components.YStack, {\n paddingHorizontal: \"$3\",\n children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ReportViewToolbar.ReportViewToolbar, {\n columns: allColumns,\n selected: selectedFieldnames,\n onToggleColumn: handleToggleColumn,\n onResetColumns: handleResetColumns,\n groupBy,\n onGroupByChange: setGroupBy,\n baseFilters,\n onClearBaseFilters: baseFilters.length > 0 ? handleClearBaseFilters : void 0,\n columnFilterCount: columnTuples.length,\n onClearColumnFilters: handleClearColumnFilters,\n savedReports: savedReports.reports,\n currentReport,\n onSelectReport: handleSelectReport,\n onSaveReport: readsWithoutMeta ? void 0 : handleSaveReport,\n onDeleteReport: readsWithoutMeta ? void 0 : handleDeleteReport,\n onExport: exportEnabled ? handleExport : void 0,\n exportDisabled: total === 0\n })\n }),\n /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components.ScrollView, {\n flex: 1,\n minWidth: 0,\n minHeight: 0,\n paddingHorizontal: \"$3\",\n testID: \"frappe-report-scroll\",\n children: body\n }),\n total > 0 && !syncError && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components.YStack, {\n paddingHorizontal: \"$3\",\n paddingVertical: \"$2\",\n children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_table.DataTablePagination, {\n pagination: {\n pageIndex: effectivePage,\n pageSize,\n totalCount: total,\n totalPages: pageCount\n },\n onPaginationChange: function onPaginationChange(next) {\n setPage(next.pageIndex);\n setPageSize(next.pageSize);\n },\n pageSizeOptions: [\n ...import_reportViewModel.REPORT_PAGE_SIZES\n ],\n size: \"$3\"\n })\n })\n ]\n });\n return content;\n}\n//# sourceMappingURL=FrappeReportBuilder.js.map\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["__create","Object","create","__defProp","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__getProtoOf","getPrototypeOf","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toESM","mod","isNodeMode","__esModule","value","__toCommonJS","FrappeReportBuilder_exports","FrappeReportBuilder","module","exports","import_jsx_runtime","require","import_components","import_frappe","import_forms","import_store","import_table","import_theme","import_react","import_react_i18next","import_FrappeNotConfigured","import_FrappeProvider","import_liveErrors","import_recordShape","import_exportCsv","import_ReportGrid","import_ReportViewToolbar","import_reportViewModel","import_savedReports","import_useFrappeRows","_instanceof","left","right","Symbol","hasInstance","_type_of","obj","constructor","EMPTY_FILTERS","COLUMN_FILTER_DEBOUNCE_MS","columnsStorageKey","doctype","readStoredColumns","raw","Promise","resolve","storage","getItem","parsed","JSON","parse","Array","isArray","every","entry","unused","persistStoredColumns","fieldnames","setItem","stringify","toReportFilters","filters","length","tuples","entries","map","param","field","initialFieldnames","columns","flatMap","column","enabled","fieldname","asFieldType","fieldtype","_frappeFieldTypes_find","frappeFieldTypes","find","known","refusedMetaFields","initialColumns","recordFields","declared","label","recordKeyLabel","filter","read_only","in_list_view","asError","error","Error","String","groupField","groupBy","aggregateGroups","rows","config","groups","Map","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","iterator","_step","next","done","row","bucket","push","set","err","return","numbers","numbers2","group","row2","Number","aggregationField","aggregation","reduce","sum","Math","min","max","props","_props_baseURL","useFrappeConfig","baseURL","fixtures","jsx","FrappeNotConfigured","FrappeReportBuilderBody","scopeFilters","onClearFilters","initialGroupBy","showChart","onOpenRow","onRowPress","onOpenLink","report","reportProp","onReportChange","onExport","loading","loadingFallback","errorFallback","auth","syncOptions","stackProps","_ref","_ref1","_ref2","t","useTranslation","knobProps","useResolvedKnobs","finalBaseURL","finalAuth","finalSyncOptions","fixtureMode","Boolean","connection","useMemo","socketPort","siteName","socketBaseURL","realtime","meta","isLoading","metaLoading","metaError","useDocTypeMeta","metaRefused","isPermissionError","initialColumnsJson","declaresColumns","recordShape","useRecordShape","layoutMeta","fields","readsWithoutMeta","savedReports","useSavedReports","_connection_baseURL","internalReport","setInternalReport","useState","currentReport","allColumns","reportColumnsFromMeta","own","Set","has","compact","useLayoutSizeClass","defaultFieldnames","phoneReportFieldnames","defaultReportFieldnames","fileUrl","useCallback","path","test","replace","startsWith","initialColumnsKey","startFieldnames","storedColumns","setStoredColumns","selectedOverride","setSelectedOverride","useEffect","cancelled","then","stored","selectedFieldnames","selectedColumns","resolveSelectedColumns","filtersKey","propFilters","filtersCleared","setFiltersCleared","reportFilters","setReportFilters","baseFilters","filterDrafts","setFilterDrafts","committedFilters","setCommittedFilters","handle","setTimeout","previous","clearTimeout","columnTuples","columnFilterTuples","scopeKey","scope","effectiveFilters","metaSort","sort_field","split","order","sort_order","toLowerCase","sortOverride","setSortOverride","sort","startGroupBy","chartConfig","setGroupBy","pageSize","setPageSize","DEFAULT_REPORT_PAGE_SIZE","page","setPage","effectiveFiltersKey","load","saved","_saved_groupBy","REPORT_PAGE_SIZES","some","size","handleToggleColumn","_ref3","_ref12","current","includes","handleResetColumns","fetchFields","add","image_field","orderBy","Order","Asc","Desc","rowsData","syncError","rowsLoading","useFrappeRows","limit","mapError","orderedRows","orderReportRows","total","pageCount","ceil","effectivePage","gridRows","buildGridRows","totals","computeTotals","groupByColumn","chartData","rowsPressable","handleOpenRow","index","findIndex","handleSelectReport","handleClearBaseFilters","handleSaveReport","save","addTotals","savedName","notify","severity","body","defaultValue","catch","message","handleDeleteReport","remove","exportEnabled","canSaveCsv","handleExport","exportCsvFile","csv","buildReportCsv","filename","rowCount","handleColumnFilterChange","_dropped","rest","handleClearColumnFilters","Fragment","children","YStack","flex","alignItems","justifyContent","Spinner","status","EmptyState","testID","title","description","refusalReason","intent","hasFilters","action","Button","onPress","jsxs","flexGrow","flexShrink","flexBasis","minWidth","gap","surface","containerRadius","panelPadding","BarChart","data","ReportGrid","onSortChange","columnFilters","onColumnFilterChange","imageField","titleField","title_field","content","minHeight","paddingHorizontal","ReportViewToolbar","selected","onToggleColumn","onResetColumns","onGroupByChange","onClearBaseFilters","columnFilterCount","onClearColumnFilters","reports","onSelectReport","onSaveReport","onDeleteReport","exportDisabled","ScrollView","paddingVertical","DataTablePagination","pagination","pageIndex","totalCount","totalPages","onPaginationChange","pageSizeOptions"],"sources":["FrappeReportBuilder.native.js"],"sourcesContent":["\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar FrappeReportBuilder_exports = {};\n__export(FrappeReportBuilder_exports, {\n FrappeReportBuilder: () => FrappeReportBuilder\n});\nmodule.exports = __toCommonJS(FrappeReportBuilder_exports);\nvar import_jsx_runtime = require(\"react/jsx-runtime\");\nvar import_components = require(\"@multiplatform.one/components\");\nvar import_frappe = require(\"@multiplatform.one/frappe\");\nvar import_forms = require(\"@multiplatform.one/forms\");\nvar import_store = require(\"@multiplatform.one/store\");\nvar import_table = require(\"@multiplatform.one/table\");\nvar import_theme = require(\"@multiplatform.one/theme\");\nvar import_react = __toESM(require(\"react\"));\nvar import_react_i18next = require(\"react-i18next\");\nvar import_FrappeNotConfigured = require(\"./FrappeNotConfigured\");\nvar import_FrappeProvider = require(\"./FrappeProvider\");\nvar import_liveErrors = require(\"./liveErrors\");\nvar import_recordShape = require(\"./recordShape\");\nvar import_exportCsv = require(\"./report/exportCsv\");\nvar import_ReportGrid = require(\"./report/ReportGrid\");\nvar import_ReportViewToolbar = require(\"./report/ReportViewToolbar\");\nvar import_reportViewModel = require(\"./report/reportViewModel\");\nvar import_savedReports = require(\"./report/savedReports\");\nvar import_useFrappeRows = require(\"./useFrappeRows\");\nfunction _instanceof(left, right) {\n \"@swc/helpers - instanceof\";\n if (right != null && typeof Symbol !== \"undefined\" && right[Symbol.hasInstance]) {\n return !!right[Symbol.hasInstance](left);\n } else {\n return left instanceof right;\n }\n}\nfunction _type_of(obj) {\n \"@swc/helpers - typeof\";\n return obj && typeof Symbol !== \"undefined\" && obj.constructor === Symbol ? \"symbol\" : typeof obj;\n}\nvar EMPTY_FILTERS = [];\nvar COLUMN_FILTER_DEBOUNCE_MS = 350;\nfunction columnsStorageKey(doctype) {\n return `backoffice.report.columns.${doctype}`;\n}\nasync function readStoredColumns(doctype) {\n try {\n var raw = await Promise.resolve(import_store.storage.getItem(columnsStorageKey(doctype)));\n if (!raw) return void 0;\n var parsed = JSON.parse(raw);\n if (Array.isArray(parsed) && parsed.every(function(entry) {\n return typeof entry === \"string\";\n })) {\n return parsed;\n }\n } catch (unused) {\n }\n return void 0;\n}\nfunction persistStoredColumns(doctype, fieldnames) {\n try {\n void Promise.resolve(import_store.storage.setItem(columnsStorageKey(doctype), JSON.stringify(fieldnames)));\n } catch (unused) {\n }\n}\nfunction toReportFilters(filters) {\n if (!filters) return void 0;\n if (Array.isArray(filters)) return filters.length > 0 ? filters : void 0;\n var tuples = Object.entries(filters).map(function(param) {\n var [field, value] = param;\n return [\n field,\n \"=\",\n value\n ];\n });\n return tuples.length > 0 ? tuples : void 0;\n}\nfunction initialFieldnames(columns) {\n if (!columns) return null;\n var fieldnames = columns.flatMap(function(column) {\n return typeof column === \"string\" ? [\n column\n ] : column.enabled ? [\n column.fieldname\n ] : [];\n });\n return fieldnames.length > 0 ? fieldnames : null;\n}\nfunction asFieldType(fieldtype) {\n var _frappeFieldTypes_find;\n return (_frappeFieldTypes_find = import_frappe.frappeFieldTypes.find(function(known) {\n return known === fieldtype;\n })) !== null && _frappeFieldTypes_find !== void 0 ? _frappeFieldTypes_find : \"Data\";\n}\nfunction refusedMetaFields(initialColumns, recordFields) {\n var declared = (initialColumns !== null && initialColumns !== void 0 ? initialColumns : []).map(function(column) {\n return typeof column === \"string\" ? {\n fieldname: column,\n label: (0, import_recordShape.recordKeyLabel)(column),\n fieldtype: \"Data\"\n } : {\n fieldname: column.fieldname,\n label: column.label,\n fieldtype: asFieldType(column.fieldtype)\n };\n });\n return (declared.length > 0 ? declared : recordFields !== null && recordFields !== void 0 ? recordFields : []).filter(function(field) {\n return field.fieldname !== \"name\";\n }).map(function(field) {\n return {\n ...field,\n read_only: 1,\n in_list_view: 1\n };\n });\n}\nfunction asError(error) {\n return _instanceof(error, Error) ? error : new Error(String(error));\n}\nfunction groupField(groupBy) {\n if (!groupBy) return null;\n return typeof groupBy === \"string\" ? groupBy : groupBy.field;\n}\nfunction aggregateGroups(rows, field, config) {\n var groups = /* @__PURE__ */ new Map();\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = rows[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var row = _step.value;\n var key = row[field] === null || row[field] === void 0 ? \"\" : String(row[field]);\n var bucket = groups.get(key);\n if (bucket) bucket.push(row);\n else groups.set(key, [\n row\n ]);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n var numbers = function numbers2(group) {\n return group.map(function(row2) {\n return Number((config === null || config === void 0 ? void 0 : config.aggregationField) ? row2[config.aggregationField] : 0) || 0;\n });\n };\n return [\n ...groups.entries()\n ].map(function(param) {\n var [label, group] = param;\n switch ((config === null || config === void 0 ? void 0 : config.aggregationField) ? config.aggregation : \"count\") {\n case \"sum\":\n return {\n label,\n value: numbers(group).reduce(function(sum, value) {\n return sum + value;\n }, 0)\n };\n case \"avg\":\n return {\n label,\n value: numbers(group).reduce(function(sum, value) {\n return sum + value;\n }, 0) / group.length\n };\n case \"min\":\n return {\n label,\n value: Math.min(...numbers(group))\n };\n case \"max\":\n return {\n label,\n value: Math.max(...numbers(group))\n };\n default:\n return {\n label,\n value: group.length\n };\n }\n });\n}\nfunction FrappeReportBuilder(props) {\n var _props_baseURL;\n var config = (0, import_FrappeProvider.useFrappeConfig)();\n if (!((_props_baseURL = props.baseURL) !== null && _props_baseURL !== void 0 ? _props_baseURL : config === null || config === void 0 ? void 0 : config.baseURL) && !(config === null || config === void 0 ? void 0 : config.fixtures)) {\n return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_FrappeNotConfigured.FrappeNotConfigured, {\n doctype: props.doctype\n });\n }\n return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(FrappeReportBuilderBody, {\n ...props\n });\n}\nfunction FrappeReportBuilderBody(param) {\n var { doctype, filters, scopeFilters, onClearFilters, initialColumns, initialGroupBy, showChart = false, onOpenRow, onRowPress, onOpenLink, report: reportProp, onReportChange, onExport, loading: loadingFallback, error: errorFallback, baseURL, auth, syncOptions, ...stackProps } = param;\n var _ref, _ref1, _ref2;\n var { t } = (0, import_react_i18next.useTranslation)();\n var { knobProps } = (0, import_theme.useResolvedKnobs)();\n var config = (0, import_FrappeProvider.useFrappeConfig)();\n var finalBaseURL = baseURL !== null && baseURL !== void 0 ? baseURL : config === null || config === void 0 ? void 0 : config.baseURL;\n var finalAuth = auth !== null && auth !== void 0 ? auth : config === null || config === void 0 ? void 0 : config.auth;\n var finalSyncOptions = syncOptions !== null && syncOptions !== void 0 ? syncOptions : config === null || config === void 0 ? void 0 : config.syncOptions;\n var fixtureMode = Boolean(config === null || config === void 0 ? void 0 : config.fixtures);\n var connection = (0, import_react.useMemo)(function() {\n return {\n baseURL: finalBaseURL,\n socketPort: config === null || config === void 0 ? void 0 : config.socketPort,\n siteName: config === null || config === void 0 ? void 0 : config.siteName,\n socketBaseURL: config === null || config === void 0 ? void 0 : config.socketBaseURL,\n auth: finalAuth,\n syncOptions: finalSyncOptions,\n realtime: config === null || config === void 0 ? void 0 : config.realtime,\n fixtures: config === null || config === void 0 ? void 0 : config.fixtures\n };\n }, [\n finalBaseURL,\n config === null || config === void 0 ? void 0 : config.socketPort,\n config === null || config === void 0 ? void 0 : config.siteName,\n config === null || config === void 0 ? void 0 : config.socketBaseURL,\n finalAuth,\n finalSyncOptions,\n config === null || config === void 0 ? void 0 : config.realtime,\n config === null || config === void 0 ? void 0 : config.fixtures\n ]);\n var { meta, isLoading: metaLoading, error: metaError } = (0, import_frappe.useDocTypeMeta)(connection, doctype);\n var metaRefused = !meta && metaError !== void 0 && (0, import_liveErrors.isPermissionError)(metaError);\n var initialColumnsJson = JSON.stringify(initialColumns !== null && initialColumns !== void 0 ? initialColumns : []);\n var declaresColumns = initialColumnsJson !== \"[]\";\n var recordShape = (0, import_recordShape.useRecordShape)(connection, doctype, metaRefused && !declaresColumns);\n var layoutMeta = (0, import_react.useMemo)(function() {\n if (meta) return meta;\n if (!metaRefused) return void 0;\n var fields = refusedMetaFields(JSON.parse(initialColumnsJson), recordShape.fields);\n return fields.length > 0 ? {\n fields\n } : void 0;\n }, [\n meta,\n metaRefused,\n initialColumnsJson,\n recordShape.fields\n ]);\n var readsWithoutMeta = !meta && layoutMeta !== void 0;\n var savedReports = (0, import_savedReports.useSavedReports)(doctype, (0, import_react.useMemo)(function() {\n var _connection_baseURL;\n return {\n baseURL: metaRefused ? \"\" : (_connection_baseURL = connection.baseURL) !== null && _connection_baseURL !== void 0 ? _connection_baseURL : \"\",\n auth: connection.auth,\n fixtures: connection.fixtures\n };\n }, [\n metaRefused,\n connection.baseURL,\n connection.auth,\n connection.fixtures\n ]));\n var [internalReport, setInternalReport] = (0, import_react.useState)(null);\n var currentReport = reportProp !== void 0 ? reportProp : internalReport;\n var allColumns = (0, import_react.useMemo)(function() {\n var columns = (0, import_reportViewModel.reportColumnsFromMeta)(layoutMeta);\n if (!readsWithoutMeta || !layoutMeta) return columns;\n var own = new Set(layoutMeta.fields.map(function(field) {\n return field.fieldname;\n }));\n return columns.filter(function(column) {\n return column.fieldname === \"name\" || own.has(column.fieldname);\n });\n }, [\n layoutMeta,\n readsWithoutMeta\n ]);\n var compact = (0, import_theme.useLayoutSizeClass)() === \"compact\";\n var defaultFieldnames = (0, import_react.useMemo)(function() {\n return compact ? (0, import_reportViewModel.phoneReportFieldnames)(layoutMeta) : readsWithoutMeta && layoutMeta ? [\n \"name\",\n ...layoutMeta.fields.map(function(field) {\n return field.fieldname;\n })\n ] : (0, import_reportViewModel.defaultReportFieldnames)(layoutMeta);\n }, [\n layoutMeta,\n readsWithoutMeta,\n compact\n ]);\n var fileUrl = (0, import_react.useCallback)(function(path) {\n return /^(?:https?:|data:|blob:)/.test(path) || !connection.baseURL ? path : `${connection.baseURL.replace(/\\/$/, \"\")}${path.startsWith(\"/\") ? \"\" : \"/\"}${path}`;\n }, [\n connection.baseURL\n ]);\n var initialColumnsKey = JSON.stringify(initialFieldnames(initialColumns));\n var startFieldnames = (0, import_react.useMemo)(function() {\n return JSON.parse(initialColumnsKey);\n }, [\n initialColumnsKey\n ]);\n var [storedColumns, setStoredColumns] = (0, import_react.useState)(void 0);\n var [selectedOverride, setSelectedOverride] = (0, import_react.useState)(null);\n (0, import_react.useEffect)(function() {\n if (fixtureMode) return;\n var cancelled = false;\n void readStoredColumns(doctype).then(function(stored) {\n if (!cancelled) setStoredColumns(stored);\n });\n return function() {\n cancelled = true;\n };\n }, [\n doctype,\n fixtureMode\n ]);\n var selectedFieldnames = (_ref = (_ref1 = selectedOverride !== null && selectedOverride !== void 0 ? selectedOverride : startFieldnames) !== null && _ref1 !== void 0 ? _ref1 : storedColumns) !== null && _ref !== void 0 ? _ref : defaultFieldnames;\n var selectedColumns = (0, import_react.useMemo)(function() {\n return (0, import_reportViewModel.resolveSelectedColumns)(allColumns, selectedFieldnames);\n }, [\n allColumns,\n selectedFieldnames\n ]);\n var filtersKey = JSON.stringify(filters !== null && filters !== void 0 ? filters : null);\n var propFilters = (0, import_react.useMemo)(function() {\n return toReportFilters(JSON.parse(filtersKey));\n }, [\n filtersKey\n ]);\n var [filtersCleared, setFiltersCleared] = (0, import_react.useState)(false);\n var [reportFilters, setReportFilters] = (0, import_react.useState)(null);\n var baseFilters = filtersCleared ? EMPTY_FILTERS : (_ref2 = reportFilters !== null && reportFilters !== void 0 ? reportFilters : propFilters) !== null && _ref2 !== void 0 ? _ref2 : EMPTY_FILTERS;\n var [filterDrafts, setFilterDrafts] = (0, import_react.useState)({});\n var [committedFilters, setCommittedFilters] = (0, import_react.useState)({});\n (0, import_react.useEffect)(function() {\n var handle = setTimeout(function() {\n setCommittedFilters(function(previous) {\n return JSON.stringify(previous) === JSON.stringify(filterDrafts) ? previous : filterDrafts;\n });\n }, COLUMN_FILTER_DEBOUNCE_MS);\n return function() {\n return clearTimeout(handle);\n };\n }, [\n filterDrafts\n ]);\n var columnTuples = (0, import_react.useMemo)(function() {\n return (0, import_reportViewModel.columnFilterTuples)(selectedColumns, committedFilters);\n }, [\n selectedColumns,\n committedFilters\n ]);\n var scopeKey = JSON.stringify(scopeFilters !== null && scopeFilters !== void 0 ? scopeFilters : []);\n var scope = (0, import_react.useMemo)(function() {\n return JSON.parse(scopeKey);\n }, [\n scopeKey\n ]);\n var effectiveFilters = (0, import_react.useMemo)(function() {\n return [\n ...scope,\n ...baseFilters,\n ...columnTuples\n ];\n }, [\n scope,\n baseFilters,\n columnTuples\n ]);\n var metaSort = (0, import_react.useMemo)(function() {\n return {\n field: ((meta === null || meta === void 0 ? void 0 : meta.sort_field) || \"modified\").split(\" \")[0],\n order: ((meta === null || meta === void 0 ? void 0 : meta.sort_order) || \"DESC\").toLowerCase() === \"asc\" ? \"asc\" : \"desc\"\n };\n }, [\n meta === null || meta === void 0 ? void 0 : meta.sort_field,\n meta === null || meta === void 0 ? void 0 : meta.sort_order\n ]);\n var [sortOverride, setSortOverride] = (0, import_react.useState)(null);\n var sort = sortOverride !== null && sortOverride !== void 0 ? sortOverride : metaSort;\n var startGroupBy = groupField(initialGroupBy);\n var chartConfig = (typeof initialGroupBy === \"undefined\" ? \"undefined\" : _type_of(initialGroupBy)) === \"object\" ? initialGroupBy : void 0;\n var [groupBy, setGroupBy] = (0, import_react.useState)(startGroupBy);\n var [pageSize, setPageSize] = (0, import_react.useState)(import_reportViewModel.DEFAULT_REPORT_PAGE_SIZE);\n var [page, setPage] = (0, import_react.useState)(0);\n (0, import_react.useEffect)(\n function() {\n setSelectedOverride(null);\n setStoredColumns(void 0);\n setSortOverride(null);\n setGroupBy(startGroupBy);\n setPage(0);\n setPageSize(import_reportViewModel.DEFAULT_REPORT_PAGE_SIZE);\n setFilterDrafts({});\n setCommittedFilters({});\n setFiltersCleared(false);\n setReportFilters(null);\n },\n // startGroupBy is the mount-time seed; only a doctype swap re-seeds.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n doctype\n ]\n );\n (0, import_react.useEffect)(function() {\n return setFiltersCleared(false);\n }, [\n filtersKey\n ]);\n var effectiveFiltersKey = (0, import_react.useMemo)(function() {\n return JSON.stringify(effectiveFilters);\n }, [\n effectiveFilters\n ]);\n (0, import_react.useEffect)(function() {\n setPage(0);\n }, [\n effectiveFiltersKey,\n pageSize,\n groupBy\n ]);\n (0, import_react.useEffect)(\n function() {\n if (!currentReport) {\n setReportFilters(null);\n return;\n }\n var cancelled = false;\n void savedReports.load(currentReport).then(function(saved) {\n var _saved_groupBy;\n if (cancelled || !saved) return;\n setSelectedOverride(saved.fieldnames.length > 0 ? saved.fieldnames : null);\n setReportFilters(saved.filters);\n setFilterDrafts({});\n setCommittedFilters({});\n setFiltersCleared(false);\n if (saved.sort) setSortOverride(saved.sort);\n if (saved.pageSize && import_reportViewModel.REPORT_PAGE_SIZES.some(function(size) {\n return size === saved.pageSize;\n })) {\n setPageSize(saved.pageSize);\n }\n setGroupBy((_saved_groupBy = saved.groupBy) !== null && _saved_groupBy !== void 0 ? _saved_groupBy : null);\n });\n return function() {\n cancelled = true;\n };\n },\n // savedReports.load changes identity with its report list; reloading the\n // config on list refreshes would clobber in-progress edits — key on the\n // selected report (and doctype via load's closure) only.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n currentReport,\n doctype\n ]\n );\n var handleToggleColumn = (0, import_react.useCallback)(function(fieldname) {\n setSelectedOverride(function(previous) {\n var _ref3, _ref12;\n var current = (_ref3 = (_ref12 = previous !== null && previous !== void 0 ? previous : startFieldnames) !== null && _ref12 !== void 0 ? _ref12 : storedColumns) !== null && _ref3 !== void 0 ? _ref3 : defaultFieldnames;\n var next = current.includes(fieldname) ? current.length === 1 ? current : current.filter(function(entry) {\n return entry !== fieldname;\n }) : [\n ...current,\n fieldname\n ];\n if (!fixtureMode && !currentReport) persistStoredColumns(doctype, next);\n return next;\n });\n }, [\n startFieldnames,\n storedColumns,\n defaultFieldnames,\n fixtureMode,\n currentReport,\n doctype\n ]);\n var handleResetColumns = (0, import_react.useCallback)(function() {\n setSelectedOverride(defaultFieldnames);\n setStoredColumns(void 0);\n if (!fixtureMode) persistStoredColumns(doctype, defaultFieldnames);\n }, [\n defaultFieldnames,\n fixtureMode,\n doctype\n ]);\n var fetchFields = (0, import_react.useMemo)(function() {\n var fields = /* @__PURE__ */ new Set([\n \"name\",\n sort.field\n ]);\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = selectedColumns[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var column = _step.value;\n fields.add(column.fieldname);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n if (groupBy) fields.add(groupBy);\n if (chartConfig === null || chartConfig === void 0 ? void 0 : chartConfig.aggregationField) fields.add(chartConfig.aggregationField);\n if (compact && (layoutMeta === null || layoutMeta === void 0 ? void 0 : layoutMeta.image_field)) fields.add(layoutMeta.image_field);\n return [\n ...fields\n ];\n }, [\n selectedColumns,\n sort.field,\n groupBy,\n chartConfig === null || chartConfig === void 0 ? void 0 : chartConfig.aggregationField,\n compact,\n layoutMeta === null || layoutMeta === void 0 ? void 0 : layoutMeta.image_field\n ]);\n var orderBy = (0, import_react.useMemo)(function() {\n return [\n {\n field: sort.field,\n order: sort.order === \"asc\" ? import_frappe.Order.Asc : import_frappe.Order.Desc\n }\n ];\n }, [\n sort.field,\n sort.order\n ]);\n var { rows: rowsData, syncError, isLoading: rowsLoading } = (0, import_useFrappeRows.useFrappeRows)(connection, doctype, {\n fields: fetchFields,\n filters: effectiveFilters,\n orderBy,\n limit: null,\n enabled: layoutMeta !== void 0,\n mapError: asError\n });\n var orderedRows = (0, import_react.useMemo)(function() {\n return (0, import_reportViewModel.orderReportRows)(rowsData, sort, groupBy);\n }, [\n rowsData,\n sort,\n groupBy\n ]);\n var total = orderedRows.length;\n var pageCount = Math.max(1, Math.ceil(total / pageSize));\n var effectivePage = Math.min(page, pageCount - 1);\n var gridRows = (0, import_react.useMemo)(function() {\n return (0, import_reportViewModel.buildGridRows)(orderedRows, effectivePage * pageSize, pageSize, groupBy);\n }, [\n orderedRows,\n effectivePage,\n pageSize,\n groupBy\n ]);\n var totals = (0, import_react.useMemo)(function() {\n return (0, import_reportViewModel.computeTotals)(selectedColumns, orderedRows);\n }, [\n selectedColumns,\n orderedRows\n ]);\n var groupByColumn = groupBy ? allColumns.find(function(column) {\n return column.fieldname === groupBy;\n }) : void 0;\n var chartData = (0, import_react.useMemo)(function() {\n return showChart && groupBy ? aggregateGroups(orderedRows, groupBy, chartConfig) : [];\n }, [\n showChart,\n groupBy,\n orderedRows,\n chartConfig\n ]);\n var rowsPressable = Boolean(onOpenRow || onRowPress);\n var handleOpenRow = (0, import_react.useCallback)(function(name) {\n onOpenRow === null || onOpenRow === void 0 ? void 0 : onOpenRow(name);\n if (onRowPress) {\n var index = orderedRows.findIndex(function(row) {\n return row.name === name;\n });\n if (index >= 0) onRowPress(orderedRows[index], index);\n }\n }, [\n onOpenRow,\n onRowPress,\n orderedRows\n ]);\n var handleSelectReport = (0, import_react.useCallback)(function(name) {\n if (reportProp === void 0) setInternalReport(name);\n onReportChange === null || onReportChange === void 0 ? void 0 : onReportChange(name);\n if (!name) {\n setReportFilters(null);\n setSelectedOverride(null);\n setSortOverride(null);\n setGroupBy(null);\n }\n }, [\n reportProp,\n onReportChange\n ]);\n var handleClearBaseFilters = (0, import_react.useCallback)(function() {\n setFiltersCleared(true);\n if (propFilters && !reportFilters) onClearFilters === null || onClearFilters === void 0 ? void 0 : onClearFilters();\n }, [\n propFilters,\n reportFilters,\n onClearFilters\n ]);\n var handleSaveReport = (0, import_react.useCallback)(function(name) {\n void savedReports.save(name, {\n fieldnames: [\n ...selectedFieldnames\n ],\n filters: effectiveFilters,\n sort,\n pageSize,\n groupBy,\n addTotals: totals.length > 0\n }).then(function(savedName) {\n (0, import_components.notify)({\n severity: \"success\",\n scope: \"page\",\n body: t(\"report.saveDone\", {\n defaultValue: \"Saved report \\u201C{{name}}\\u201D\",\n name: savedName\n })\n });\n if (savedName !== currentReport) handleSelectReport(savedName);\n }).catch(function(error) {\n (0, import_components.notify)({\n severity: \"error\",\n scope: \"page\",\n body: _instanceof(error, Error) ? error.message : t(\"report.saveFailed\", \"Could not save the report\")\n });\n });\n }, [\n savedReports,\n selectedFieldnames,\n effectiveFilters,\n sort,\n pageSize,\n groupBy,\n totals.length,\n currentReport,\n handleSelectReport,\n t\n ]);\n var handleDeleteReport = (0, import_react.useCallback)(function(name) {\n void savedReports.remove(name).then(function() {\n (0, import_components.notify)({\n severity: \"success\",\n scope: \"page\",\n body: t(\"report.deleteDone\", {\n defaultValue: \"Deleted report \\u201C{{name}}\\u201D\",\n name\n })\n });\n if (name === currentReport) handleSelectReport(null);\n }).catch(function(error) {\n (0, import_components.notify)({\n severity: \"error\",\n scope: \"page\",\n body: _instanceof(error, Error) ? error.message : t(\"report.deleteFailed\", \"Could not delete the report\")\n });\n });\n }, [\n savedReports,\n currentReport,\n handleSelectReport,\n t\n ]);\n var exportEnabled = Boolean(onExport) || (0, import_exportCsv.canSaveCsv)();\n var handleExport = (0, import_react.useCallback)(function() {\n if (onExport) {\n onExport(orderedRows);\n return;\n }\n void (0, import_exportCsv.exportCsvFile)({\n csv: (0, import_reportViewModel.buildReportCsv)(selectedColumns, orderedRows),\n filename: `${doctype}_report.csv`,\n rowCount: orderedRows.length,\n t\n });\n }, [\n onExport,\n selectedColumns,\n orderedRows,\n doctype,\n t\n ]);\n var handleColumnFilterChange = (0, import_react.useCallback)(function(fieldname, value) {\n setFilterDrafts(function(previous) {\n if (value === \"\") {\n if (!(fieldname in previous)) return previous;\n var { [fieldname]: _dropped, ...rest } = previous;\n return rest;\n }\n return {\n ...previous,\n [fieldname]: value\n };\n });\n }, []);\n var handleClearColumnFilters = (0, import_react.useCallback)(function() {\n setFilterDrafts({});\n setCommittedFilters({});\n }, []);\n if (metaLoading && !meta) {\n return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, {\n children: loadingFallback !== null && loadingFallback !== void 0 ? loadingFallback : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components.YStack, {\n flex: 1,\n alignItems: \"center\",\n justifyContent: \"center\",\n ...stackProps,\n children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components.Spinner, {\n size: \"large\"\n })\n })\n });\n }\n if (metaError && metaRefused && !layoutMeta) {\n if (recordShape.status === \"pending\") {\n return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, {\n children: loadingFallback !== null && loadingFallback !== void 0 ? loadingFallback : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components.YStack, {\n flex: 1,\n alignItems: \"center\",\n justifyContent: \"center\",\n ...stackProps,\n children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components.Spinner, {\n size: \"large\"\n })\n })\n });\n }\n return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, {\n children: errorFallback ? errorFallback(metaError) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components.EmptyState, {\n testID: \"frappe-report-not-permitted\",\n title: t(\"report.notPermitted\", {\n defaultValue: \"You can't open the {{doctype}} report\",\n doctype\n }),\n description: (0, import_liveErrors.refusalReason)(metaError)\n })\n });\n }\n if (metaError && !meta && !readsWithoutMeta) {\n return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, {\n children: errorFallback ? errorFallback(metaError) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components.EmptyState, {\n intent: \"error\",\n title: t(\"report.metaFailed\", {\n defaultValue: \"Couldn't load the {{doctype}} report\",\n doctype\n }),\n description: metaError.message\n })\n });\n }\n var body;\n if (syncError && (0, import_liveErrors.isPermissionError)(syncError)) {\n body = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components.EmptyState, {\n testID: \"frappe-report-not-permitted\",\n title: t(\"report.notPermitted\", {\n defaultValue: \"You can't open the {{doctype}} report\",\n doctype\n }),\n description: (0, import_liveErrors.refusalReason)(syncError)\n });\n } else if (syncError) {\n body = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components.EmptyState, {\n intent: \"error\",\n title: t(\"report.loadFailed\", \"Couldn't load report rows\"),\n description: syncError.message\n });\n } else if (rowsLoading && total === 0) {\n body = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components.YStack, {\n flex: 1,\n alignItems: \"center\",\n justifyContent: \"center\",\n children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components.Spinner, {\n size: \"large\"\n })\n });\n } else if (total === 0) {\n var hasFilters = effectiveFilters.length > 0;\n body = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components.EmptyState, {\n title: t(\"report.emptyTitle\", \"No results\"),\n description: hasFilters ? t(\"report.emptyFiltered\", \"No rows match the current filters\") : t(\"report.emptyDescription\", {\n defaultValue: \"There are no {{doctype}} records yet\",\n doctype\n }),\n action: hasFilters ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_forms.Button, {\n size: \"$3\",\n onPress: function onPress() {\n handleClearColumnFilters();\n handleClearBaseFilters();\n },\n children: t(\"report.clearAllFilters\", \"Clear all filters\")\n }) : void 0\n });\n } else {\n body = /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_components.YStack, {\n flexGrow: 1,\n flexShrink: 0,\n flexBasis: \"auto\",\n minWidth: 0,\n ...knobProps.gap,\n children: [\n chartData.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components.YStack, {\n ...knobProps.surface,\n ...knobProps.containerRadius,\n ...knobProps.panelPadding,\n children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components.BarChart, {\n data: chartData\n })\n }),\n /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ReportGrid.ReportGrid, {\n columns: selectedColumns,\n rows: gridRows,\n sort,\n onSortChange: setSortOverride,\n columnFilters: filterDrafts,\n onColumnFilterChange: handleColumnFilterChange,\n onOpenRow: rowsPressable ? handleOpenRow : void 0,\n onOpenLink,\n totals,\n groupByColumn,\n imageField: layoutMeta === null || layoutMeta === void 0 ? void 0 : layoutMeta.image_field,\n titleField: layoutMeta === null || layoutMeta === void 0 ? void 0 : layoutMeta.title_field,\n fileUrl\n })\n ]\n });\n }\n var content = /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_components.YStack, {\n flex: 1,\n minWidth: 0,\n minHeight: 0,\n ...stackProps,\n children: [\n /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components.YStack, {\n paddingHorizontal: \"$3\",\n children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ReportViewToolbar.ReportViewToolbar, {\n columns: allColumns,\n selected: selectedFieldnames,\n onToggleColumn: handleToggleColumn,\n onResetColumns: handleResetColumns,\n groupBy,\n onGroupByChange: setGroupBy,\n baseFilters,\n onClearBaseFilters: baseFilters.length > 0 ? handleClearBaseFilters : void 0,\n columnFilterCount: columnTuples.length,\n onClearColumnFilters: handleClearColumnFilters,\n savedReports: savedReports.reports,\n currentReport,\n onSelectReport: handleSelectReport,\n onSaveReport: readsWithoutMeta ? void 0 : handleSaveReport,\n onDeleteReport: readsWithoutMeta ? void 0 : handleDeleteReport,\n onExport: exportEnabled ? handleExport : void 0,\n exportDisabled: total === 0\n })\n }),\n /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components.ScrollView, {\n flexGrow: 0,\n flexShrink: 1,\n minWidth: 0,\n minHeight: 0,\n paddingHorizontal: \"$3\",\n testID: \"frappe-report-scroll\",\n children: body\n }),\n total > 0 && !syncError && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components.YStack, {\n paddingHorizontal: \"$3\",\n paddingVertical: \"$2\",\n children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_table.DataTablePagination, {\n pagination: {\n pageIndex: effectivePage,\n pageSize,\n totalCount: total,\n totalPages: pageCount\n },\n onPaginationChange: function onPaginationChange(next) {\n setPage(next.pageIndex);\n setPageSize(next.pageSize);\n },\n pageSizeOptions: [\n ...import_reportViewModel.REPORT_PAGE_SIZES\n ],\n size: \"$3\"\n })\n })\n ]\n });\n return content;\n}\n//# sourceMappingURL=FrappeReportBuilder.js.map\n"],"mappings":"AAAA,YAAY;;AACZ,IAAIA,QAAQ,GAAGC,MAAM,CAACC,MAAM;AAC5B,IAAIC,SAAS,GAAGF,MAAM,CAACG,cAAc;AACrC,IAAIC,gBAAgB,GAAGJ,MAAM,CAACK,wBAAwB;AACtD,IAAIC,iBAAiB,GAAGN,MAAM,CAACO,mBAAmB;AAClD,IAAIC,YAAY,GAAGR,MAAM,CAACS,cAAc;AACxC,IAAIC,YAAY,GAAGV,MAAM,CAACW,SAAS,CAACC,cAAc;AAClD,IAAIC,QAAQ,GAAGA,CAACC,MAAM,EAAEC,GAAG,KAAK;EAC9B,KAAK,IAAIC,IAAI,IAAID,GAAG,EAClBb,SAAS,CAACY,MAAM,EAAEE,IAAI,EAAE;IAAEC,GAAG,EAAEF,GAAG,CAACC,IAAI,CAAC;IAAEE,UAAU,EAAE;EAAK,CAAC,CAAC;AACjE,CAAC;AACD,IAAIC,WAAW,GAAGA,CAACC,EAAE,EAAEC,IAAI,EAAEC,MAAM,EAAEC,IAAI,KAAK;EAC5C,IAAIF,IAAI,IAAI,OAAOA,IAAI,KAAK,QAAQ,IAAI,OAAOA,IAAI,KAAK,UAAU,EAAE;IAClE,KAAK,IAAIG,GAAG,IAAIlB,iBAAiB,CAACe,IAAI,CAAC,EACrC,IAAI,CAACX,YAAY,CAACe,IAAI,CAACL,EAAE,EAAEI,GAAG,CAAC,IAAIA,GAAG,KAAKF,MAAM,EAC/CpB,SAAS,CAACkB,EAAE,EAAEI,GAAG,EAAE;MAAEP,GAAG,EAAEA,CAAA,KAAMI,IAAI,CAACG,GAAG,CAAC;MAAEN,UAAU,EAAE,EAAEK,IAAI,GAAGnB,gBAAgB,CAACiB,IAAI,EAAEG,GAAG,CAAC,CAAC,IAAID,IAAI,CAACL;IAAW,CAAC,CAAC;EACxH;EACA,OAAOE,EAAE;AACX,CAAC;AACD,IAAIM,OAAO,GAAGA,CAACC,GAAG,EAAEC,UAAU,EAAEd,MAAM,MAAMA,MAAM,GAAGa,GAAG,IAAI,IAAI,GAAG5B,QAAQ,CAACS,YAAY,CAACmB,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAER,WAAW;AAC9G;AACA;AACA;AACA;AACAS,UAAU,IAAI,CAACD,GAAG,IAAI,CAACA,GAAG,CAACE,UAAU,GAAG3B,SAAS,CAACY,MAAM,EAAE,SAAS,EAAE;EAAEgB,KAAK,EAAEH,GAAG;EAAET,UAAU,EAAE;AAAK,CAAC,CAAC,GAAGJ,MAAM,EAC/Ga,GACF,CAAC,CAAC;AACF,IAAII,YAAY,GAAIJ,GAAG,IAAKR,WAAW,CAACjB,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE;EAAE4B,KAAK,EAAE;AAAK,CAAC,CAAC,EAAEH,GAAG,CAAC;AAC1F,IAAIK,2BAA2B,GAAG,CAAC,CAAC;AACpCnB,QAAQ,CAACmB,2BAA2B,EAAE;EACpCC,mBAAmB,EAAEA,CAAA,KAAMA;AAC7B,CAAC,CAAC;AACFC,MAAM,CAACC,OAAO,GAAGJ,YAAY,CAACC,2BAA2B,CAAC;AAC1D,IAAII,kBAAkB,GAAGC,OAAO,CAAC,mBAAmB,CAAC;AACrD,IAAIC,iBAAiB,GAAGD,OAAO,CAAC,+BAA+B,CAAC;AAChE,IAAIE,aAAa,GAAGF,OAAO,CAAC,2BAA2B,CAAC;AACxD,IAAIG,YAAY,GAAGH,OAAO,CAAC,0BAA0B,CAAC;AACtD,IAAII,YAAY,GAAGJ,OAAO,CAAC,0BAA0B,CAAC;AACtD,IAAIK,YAAY,GAAGL,OAAO,CAAC,0BAA0B,CAAC;AACtD,IAAIM,YAAY,GAAGN,OAAO,CAAC,0BAA0B,CAAC;AACtD,IAAIO,YAAY,GAAGlB,OAAO,CAACW,OAAO,CAAC,OAAO,CAAC,CAAC;AAC5C,IAAIQ,oBAAoB,GAAGR,OAAO,CAAC,eAAe,CAAC;AACnD,IAAIS,0BAA0B,GAAGT,OAAO,CAAC,iCAAuB,CAAC;AACjE,IAAIU,qBAAqB,GAAGV,OAAO,CAAC,4BAAkB,CAAC;AACvD,IAAIW,iBAAiB,GAAGX,OAAO,CAAC,wBAAc,CAAC;AAC/C,IAAIY,kBAAkB,GAAGZ,OAAO,CAAC,yBAAe,CAAC;AACjD,IAAIa,gBAAgB,GAAGb,OAAO,CAAC,8BAAoB,CAAC;AACpD,IAAIc,iBAAiB,GAAGd,OAAO,CAAC,+BAAqB,CAAC;AACtD,IAAIe,wBAAwB,GAAGf,OAAO,CAAC,sCAA4B,CAAC;AACpE,IAAIgB,sBAAsB,GAAGhB,OAAO,CAAC,oCAA0B,CAAC;AAChE,IAAIiB,mBAAmB,GAAGjB,OAAO,CAAC,iCAAuB,CAAC;AAC1D,IAAIkB,oBAAoB,GAAGlB,OAAO,CAAC,2BAAiB,CAAC;AACrD,SAASmB,WAAWA,CAACC,IAAI,EAAEC,KAAK,EAAE;EAChC,2BAA2B;;EAC3B,IAAIA,KAAK,IAAI,IAAI,IAAI,OAAOC,MAAM,KAAK,WAAW,IAAID,KAAK,CAACC,MAAM,CAACC,WAAW,CAAC,EAAE;IAC/E,OAAO,CAAC,CAACF,KAAK,CAACC,MAAM,CAACC,WAAW,CAAC,CAACH,IAAI,CAAC;EAC1C,CAAC,MAAM;IACL,OAAOA,IAAI,YAAYC,KAAK;EAC9B;AACF;AACA,SAASG,QAAQA,CAACC,GAAG,EAAE;EACrB,uBAAuB;;EACvB,OAAOA,GAAG,IAAI,OAAOH,MAAM,KAAK,WAAW,IAAIG,GAAG,CAACC,WAAW,KAAKJ,MAAM,GAAG,QAAQ,GAAG,OAAOG,GAAG;AACnG;AACA,IAAIE,aAAa,GAAG,EAAE;AACtB,IAAIC,yBAAyB,GAAG,GAAG;AACnC,SAASC,iBAAiBA,CAACC,OAAO,EAAE;EAClC,OAAO,6BAA6BA,OAAO,EAAE;AAC/C;AACA,eAAeC,iBAAiBA,CAACD,OAAO,EAAE;EACxC,IAAI;IACF,IAAIE,GAAG,GAAG,MAAMC,OAAO,CAACC,OAAO,CAAC9B,YAAY,CAAC+B,OAAO,CAACC,OAAO,CAACP,iBAAiB,CAACC,OAAO,CAAC,CAAC,CAAC;IACzF,IAAI,CAACE,GAAG,EAAE,OAAO,KAAK,CAAC;IACvB,IAAIK,MAAM,GAAGC,IAAI,CAACC,KAAK,CAACP,GAAG,CAAC;IAC5B,IAAIQ,KAAK,CAACC,OAAO,CAACJ,MAAM,CAAC,IAAIA,MAAM,CAACK,KAAK,CAAC,UAASC,KAAK,EAAE;MACxD,OAAO,OAAOA,KAAK,KAAK,QAAQ;IAClC,CAAC,CAAC,EAAE;MACF,OAAON,MAAM;IACf;EACF,CAAC,CAAC,OAAOO,MAAM,EAAE,CACjB;EACA,OAAO,KAAK,CAAC;AACf;AACA,SAASC,oBAAoBA,CAACf,OAAO,EAAEgB,UAAU,EAAE;EACjD,IAAI;IACF,KAAKb,OAAO,CAACC,OAAO,CAAC9B,YAAY,CAAC+B,OAAO,CAACY,OAAO,CAAClB,iBAAiB,CAACC,OAAO,CAAC,EAAEQ,IAAI,CAACU,SAAS,CAACF,UAAU,CAAC,CAAC,CAAC;EAC5G,CAAC,CAAC,OAAOF,MAAM,EAAE,CACjB;AACF;AACA,SAASK,eAAeA,CAACC,OAAO,EAAE;EAChC,IAAI,CAACA,OAAO,EAAE,OAAO,KAAK,CAAC;EAC3B,IAAIV,KAAK,CAACC,OAAO,CAACS,OAAO,CAAC,EAAE,OAAOA,OAAO,CAACC,MAAM,GAAG,CAAC,GAAGD,OAAO,GAAG,KAAK,CAAC;EACxE,IAAIE,MAAM,GAAGzF,MAAM,CAAC0F,OAAO,CAACH,OAAO,CAAC,CAACI,GAAG,CAAC,UAASC,KAAK,EAAE;IACvD,IAAI,CAACC,KAAK,EAAE/D,KAAK,CAAC,GAAG8D,KAAK;IAC1B,OAAO,CACLC,KAAK,EACL,GAAG,EACH/D,KAAK,CACN;EACH,CAAC,CAAC;EACF,OAAO2D,MAAM,CAACD,MAAM,GAAG,CAAC,GAAGC,MAAM,GAAG,KAAK,CAAC;AAC5C;AACA,SAASK,iBAAiBA,CAACC,OAAO,EAAE;EAClC,IAAI,CAACA,OAAO,EAAE,OAAO,IAAI;EACzB,IAAIZ,UAAU,GAAGY,OAAO,CAACC,OAAO,CAAC,UAASC,MAAM,EAAE;IAChD,OAAO,OAAOA,MAAM,KAAK,QAAQ,GAAG,CAClCA,MAAM,CACP,GAAGA,MAAM,CAACC,OAAO,GAAG,CACnBD,MAAM,CAACE,SAAS,CACjB,GAAG,EAAE;EACR,CAAC,CAAC;EACF,OAAOhB,UAAU,CAACK,MAAM,GAAG,CAAC,GAAGL,UAAU,GAAG,IAAI;AAClD;AACA,SAASiB,WAAWA,CAACC,SAAS,EAAE;EAC9B,IAAIC,sBAAsB;EAC1B,OAAO,CAACA,sBAAsB,GAAG/D,aAAa,CAACgE,gBAAgB,CAACC,IAAI,CAAC,UAASC,KAAK,EAAE;IACnF,OAAOA,KAAK,KAAKJ,SAAS;EAC5B,CAAC,CAAC,MAAM,IAAI,IAAIC,sBAAsB,KAAK,KAAK,CAAC,GAAGA,sBAAsB,GAAG,MAAM;AACrF;AACA,SAASI,iBAAiBA,CAACC,cAAc,EAAEC,YAAY,EAAE;EACvD,IAAIC,QAAQ,GAAG,CAACF,cAAc,KAAK,IAAI,IAAIA,cAAc,KAAK,KAAK,CAAC,GAAGA,cAAc,GAAG,EAAE,EAAEhB,GAAG,CAAC,UAASM,MAAM,EAAE;IAC/G,OAAO,OAAOA,MAAM,KAAK,QAAQ,GAAG;MAClCE,SAAS,EAAEF,MAAM;MACjBa,KAAK,EAAE,CAAC,CAAC,EAAE7D,kBAAkB,CAAC8D,cAAc,EAAEd,MAAM,CAAC;MACrDI,SAAS,EAAE;IACb,CAAC,GAAG;MACFF,SAAS,EAAEF,MAAM,CAACE,SAAS;MAC3BW,KAAK,EAAEb,MAAM,CAACa,KAAK;MACnBT,SAAS,EAAED,WAAW,CAACH,MAAM,CAACI,SAAS;IACzC,CAAC;EACH,CAAC,CAAC;EACF,OAAO,CAACQ,QAAQ,CAACrB,MAAM,GAAG,CAAC,GAAGqB,QAAQ,GAAGD,YAAY,KAAK,IAAI,IAAIA,YAAY,KAAK,KAAK,CAAC,GAAGA,YAAY,GAAG,EAAE,EAAEI,MAAM,CAAC,UAASnB,KAAK,EAAE;IACpI,OAAOA,KAAK,CAACM,SAAS,KAAK,MAAM;EACnC,CAAC,CAAC,CAACR,GAAG,CAAC,UAASE,KAAK,EAAE;IACrB,OAAO;MACL,GAAGA,KAAK;MACRoB,SAAS,EAAE,CAAC;MACZC,YAAY,EAAE;IAChB,CAAC;EACH,CAAC,CAAC;AACJ;AACA,SAASC,OAAOA,CAACC,KAAK,EAAE;EACtB,OAAO5D,WAAW,CAAC4D,KAAK,EAAEC,KAAK,CAAC,GAAGD,KAAK,GAAG,IAAIC,KAAK,CAACC,MAAM,CAACF,KAAK,CAAC,CAAC;AACrE;AACA,SAASG,UAAUA,CAACC,OAAO,EAAE;EAC3B,IAAI,CAACA,OAAO,EAAE,OAAO,IAAI;EACzB,OAAO,OAAOA,OAAO,KAAK,QAAQ,GAAGA,OAAO,GAAGA,OAAO,CAAC3B,KAAK;AAC9D;AACA,SAAS4B,eAAeA,CAACC,IAAI,EAAE7B,KAAK,EAAE8B,MAAM,EAAE;EAC5C,IAAIC,MAAM,GAAG,eAAgB,IAAIC,GAAG,CAAC,CAAC;EACtC,IAAIC,yBAAyB,GAAG,IAAI;IAAEC,iBAAiB,GAAG,KAAK;IAAEC,cAAc,GAAG,KAAK,CAAC;EACxF,IAAI;IACF,KAAK,IAAIC,SAAS,GAAGP,IAAI,CAAC/D,MAAM,CAACuE,QAAQ,CAAC,CAAC,CAAC,EAAEC,KAAK,EAAE,EAAEL,yBAAyB,GAAG,CAACK,KAAK,GAAGF,SAAS,CAACG,IAAI,CAAC,CAAC,EAAEC,IAAI,CAAC,EAAEP,yBAAyB,GAAG,IAAI,EAAE;MACrJ,IAAIQ,GAAG,GAAGH,KAAK,CAACrG,KAAK;MACrB,IAAIN,GAAG,GAAG8G,GAAG,CAACzC,KAAK,CAAC,KAAK,IAAI,IAAIyC,GAAG,CAACzC,KAAK,CAAC,KAAK,KAAK,CAAC,GAAG,EAAE,GAAGyB,MAAM,CAACgB,GAAG,CAACzC,KAAK,CAAC,CAAC;MAChF,IAAI0C,MAAM,GAAGX,MAAM,CAAC3G,GAAG,CAACO,GAAG,CAAC;MAC5B,IAAI+G,MAAM,EAAEA,MAAM,CAACC,IAAI,CAACF,GAAG,CAAC,CAAC,KACxBV,MAAM,CAACa,GAAG,CAACjH,GAAG,EAAE,CACnB8G,GAAG,CACJ,CAAC;IACJ;EACF,CAAC,CAAC,OAAOI,GAAG,EAAE;IACZX,iBAAiB,GAAG,IAAI;IACxBC,cAAc,GAAGU,GAAG;EACtB,CAAC,SAAS;IACR,IAAI;MACF,IAAI,CAACZ,yBAAyB,IAAIG,SAAS,CAACU,MAAM,IAAI,IAAI,EAAE;QAC1DV,SAAS,CAACU,MAAM,CAAC,CAAC;MACpB;IACF,CAAC,SAAS;MACR,IAAIZ,iBAAiB,EAAE;QACrB,MAAMC,cAAc;MACtB;IACF;EACF;EACA,IAAIY,OAAO,GAAG,SAASC,QAAQA,CAACC,KAAK,EAAE;IACrC,OAAOA,KAAK,CAACnD,GAAG,CAAC,UAASoD,IAAI,EAAE;MAC9B,OAAOC,MAAM,CAAC,CAACrB,MAAM,KAAK,IAAI,IAAIA,MAAM,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,MAAM,CAACsB,gBAAgB,IAAIF,IAAI,CAACpB,MAAM,CAACsB,gBAAgB,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;IACnI,CAAC,CAAC;EACJ,CAAC;EACD,OAAO,CACL,GAAGrB,MAAM,CAAClC,OAAO,CAAC,CAAC,CACpB,CAACC,GAAG,CAAC,UAASC,KAAK,EAAE;IACpB,IAAI,CAACkB,KAAK,EAAEgC,KAAK,CAAC,GAAGlD,KAAK;IAC1B,QAAQ,CAAC+B,MAAM,KAAK,IAAI,IAAIA,MAAM,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,MAAM,CAACsB,gBAAgB,IAAItB,MAAM,CAACuB,WAAW,GAAG,OAAO;MAC9G,KAAK,KAAK;QACR,OAAO;UACLpC,KAAK;UACLhF,KAAK,EAAE8G,OAAO,CAACE,KAAK,CAAC,CAACK,MAAM,CAAC,UAASC,GAAG,EAAEtH,KAAK,EAAE;YAChD,OAAOsH,GAAG,GAAGtH,KAAK;UACpB,CAAC,EAAE,CAAC;QACN,CAAC;MACH,KAAK,KAAK;QACR,OAAO;UACLgF,KAAK;UACLhF,KAAK,EAAE8G,OAAO,CAACE,KAAK,CAAC,CAACK,MAAM,CAAC,UAASC,GAAG,EAAEtH,KAAK,EAAE;YAChD,OAAOsH,GAAG,GAAGtH,KAAK;UACpB,CAAC,EAAE,CAAC,CAAC,GAAGgH,KAAK,CAACtD;QAChB,CAAC;MACH,KAAK,KAAK;QACR,OAAO;UACLsB,KAAK;UACLhF,KAAK,EAAEuH,IAAI,CAACC,GAAG,CAAC,GAAGV,OAAO,CAACE,KAAK,CAAC;QACnC,CAAC;MACH,KAAK,KAAK;QACR,OAAO;UACLhC,KAAK;UACLhF,KAAK,EAAEuH,IAAI,CAACE,GAAG,CAAC,GAAGX,OAAO,CAACE,KAAK,CAAC;QACnC,CAAC;MACH;QACE,OAAO;UACLhC,KAAK;UACLhF,KAAK,EAAEgH,KAAK,CAACtD;QACf,CAAC;IACL;EACF,CAAC,CAAC;AACJ;AACA,SAASvD,mBAAmBA,CAACuH,KAAK,EAAE;EAClC,IAAIC,cAAc;EAClB,IAAI9B,MAAM,GAAG,CAAC,CAAC,EAAE5E,qBAAqB,CAAC2G,eAAe,EAAE,CAAC;EACzD,IAAI,EAAE,CAACD,cAAc,GAAGD,KAAK,CAACG,OAAO,MAAM,IAAI,IAAIF,cAAc,KAAK,KAAK,CAAC,GAAGA,cAAc,GAAG9B,MAAM,KAAK,IAAI,IAAIA,MAAM,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,MAAM,CAACgC,OAAO,CAAC,IAAI,EAAEhC,MAAM,KAAK,IAAI,IAAIA,MAAM,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,MAAM,CAACiC,QAAQ,CAAC,EAAE;IACrO,OAAO,eAAgB,CAAC,CAAC,EAAExH,kBAAkB,CAACyH,GAAG,EAAE/G,0BAA0B,CAACgH,mBAAmB,EAAE;MACjG3F,OAAO,EAAEqF,KAAK,CAACrF;IACjB,CAAC,CAAC;EACJ;EACA,OAAO,eAAgB,CAAC,CAAC,EAAE/B,kBAAkB,CAACyH,GAAG,EAAEE,uBAAuB,EAAE;IAC1E,GAAGP;EACL,CAAC,CAAC;AACJ;AACA,SAASO,uBAAuBA,CAACnE,KAAK,EAAE;EACtC,IAAI;IAAEzB,OAAO;IAAEoB,OAAO;IAAEyE,YAAY;IAAEC,cAAc;IAAEtD,cAAc;IAAEuD,cAAc;IAAEC,SAAS,GAAG,KAAK;IAAEC,SAAS;IAAEC,UAAU;IAAEC,UAAU;IAAEC,MAAM,EAAEC,UAAU;IAAEC,cAAc;IAAEC,QAAQ;IAAEC,OAAO,EAAEC,eAAe;IAAExD,KAAK,EAAEyD,aAAa;IAAElB,OAAO;IAAEmB,IAAI;IAAEC,WAAW;IAAE,GAAGC;EAAW,CAAC,GAAGpF,KAAK;EAC7R,IAAIqF,IAAI,EAAEC,KAAK,EAAEC,KAAK;EACtB,IAAI;IAAEC;EAAE,CAAC,GAAG,CAAC,CAAC,EAAEvI,oBAAoB,CAACwI,cAAc,EAAE,CAAC;EACtD,IAAI;IAAEC;EAAU,CAAC,GAAG,CAAC,CAAC,EAAE3I,YAAY,CAAC4I,gBAAgB,EAAE,CAAC;EACxD,IAAI5D,MAAM,GAAG,CAAC,CAAC,EAAE5E,qBAAqB,CAAC2G,eAAe,EAAE,CAAC;EACzD,IAAI8B,YAAY,GAAG7B,OAAO,KAAK,IAAI,IAAIA,OAAO,KAAK,KAAK,CAAC,GAAGA,OAAO,GAAGhC,MAAM,KAAK,IAAI,IAAIA,MAAM,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,MAAM,CAACgC,OAAO;EACpI,IAAI8B,SAAS,GAAGX,IAAI,KAAK,IAAI,IAAIA,IAAI,KAAK,KAAK,CAAC,GAAGA,IAAI,GAAGnD,MAAM,KAAK,IAAI,IAAIA,MAAM,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,MAAM,CAACmD,IAAI;EACrH,IAAIY,gBAAgB,GAAGX,WAAW,KAAK,IAAI,IAAIA,WAAW,KAAK,KAAK,CAAC,GAAGA,WAAW,GAAGpD,MAAM,KAAK,IAAI,IAAIA,MAAM,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,MAAM,CAACoD,WAAW;EACxJ,IAAIY,WAAW,GAAGC,OAAO,CAACjE,MAAM,KAAK,IAAI,IAAIA,MAAM,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,MAAM,CAACiC,QAAQ,CAAC;EAC1F,IAAIiC,UAAU,GAAG,CAAC,CAAC,EAAEjJ,YAAY,CAACkJ,OAAO,EAAE,YAAW;IACpD,OAAO;MACLnC,OAAO,EAAE6B,YAAY;MACrBO,UAAU,EAAEpE,MAAM,KAAK,IAAI,IAAIA,MAAM,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,MAAM,CAACoE,UAAU;MAC7EC,QAAQ,EAAErE,MAAM,KAAK,IAAI,IAAIA,MAAM,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,MAAM,CAACqE,QAAQ;MACzEC,aAAa,EAAEtE,MAAM,KAAK,IAAI,IAAIA,MAAM,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,MAAM,CAACsE,aAAa;MACnFnB,IAAI,EAAEW,SAAS;MACfV,WAAW,EAAEW,gBAAgB;MAC7BQ,QAAQ,EAAEvE,MAAM,KAAK,IAAI,IAAIA,MAAM,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,MAAM,CAACuE,QAAQ;MACzEtC,QAAQ,EAAEjC,MAAM,KAAK,IAAI,IAAIA,MAAM,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,MAAM,CAACiC;IACnE,CAAC;EACH,CAAC,EAAE,CACD4B,YAAY,EACZ7D,MAAM,KAAK,IAAI,IAAIA,MAAM,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,MAAM,CAACoE,UAAU,EACjEpE,MAAM,KAAK,IAAI,IAAIA,MAAM,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,MAAM,CAACqE,QAAQ,EAC/DrE,MAAM,KAAK,IAAI,IAAIA,MAAM,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,MAAM,CAACsE,aAAa,EACpER,SAAS,EACTC,gBAAgB,EAChB/D,MAAM,KAAK,IAAI,IAAIA,MAAM,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,MAAM,CAACuE,QAAQ,EAC/DvE,MAAM,KAAK,IAAI,IAAIA,MAAM,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,MAAM,CAACiC,QAAQ,CAChE,CAAC;EACF,IAAI;IAAEuC,IAAI;IAAEC,SAAS,EAAEC,WAAW;IAAEjF,KAAK,EAAEkF;EAAU,CAAC,GAAG,CAAC,CAAC,EAAE/J,aAAa,CAACgK,cAAc,EAAEV,UAAU,EAAE1H,OAAO,CAAC;EAC/G,IAAIqI,WAAW,GAAG,CAACL,IAAI,IAAIG,SAAS,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC,EAAEtJ,iBAAiB,CAACyJ,iBAAiB,EAAEH,SAAS,CAAC;EACtG,IAAII,kBAAkB,GAAG/H,IAAI,CAACU,SAAS,CAACsB,cAAc,KAAK,IAAI,IAAIA,cAAc,KAAK,KAAK,CAAC,GAAGA,cAAc,GAAG,EAAE,CAAC;EACnH,IAAIgG,eAAe,GAAGD,kBAAkB,KAAK,IAAI;EACjD,IAAIE,WAAW,GAAG,CAAC,CAAC,EAAE3J,kBAAkB,CAAC4J,cAAc,EAAEhB,UAAU,EAAE1H,OAAO,EAAEqI,WAAW,IAAI,CAACG,eAAe,CAAC;EAC9G,IAAIG,UAAU,GAAG,CAAC,CAAC,EAAElK,YAAY,CAACkJ,OAAO,EAAE,YAAW;IACpD,IAAIK,IAAI,EAAE,OAAOA,IAAI;IACrB,IAAI,CAACK,WAAW,EAAE,OAAO,KAAK,CAAC;IAC/B,IAAIO,MAAM,GAAGrG,iBAAiB,CAAC/B,IAAI,CAACC,KAAK,CAAC8H,kBAAkB,CAAC,EAAEE,WAAW,CAACG,MAAM,CAAC;IAClF,OAAOA,MAAM,CAACvH,MAAM,GAAG,CAAC,GAAG;MACzBuH;IACF,CAAC,GAAG,KAAK,CAAC;EACZ,CAAC,EAAE,CACDZ,IAAI,EACJK,WAAW,EACXE,kBAAkB,EAClBE,WAAW,CAACG,MAAM,CACnB,CAAC;EACF,IAAIC,gBAAgB,GAAG,CAACb,IAAI,IAAIW,UAAU,KAAK,KAAK,CAAC;EACrD,IAAIG,YAAY,GAAG,CAAC,CAAC,EAAE3J,mBAAmB,CAAC4J,eAAe,EAAE/I,OAAO,EAAE,CAAC,CAAC,EAAEvB,YAAY,CAACkJ,OAAO,EAAE,YAAW;IACxG,IAAIqB,mBAAmB;IACvB,OAAO;MACLxD,OAAO,EAAE6C,WAAW,GAAG,EAAE,GAAG,CAACW,mBAAmB,GAAGtB,UAAU,CAAClC,OAAO,MAAM,IAAI,IAAIwD,mBAAmB,KAAK,KAAK,CAAC,GAAGA,mBAAmB,GAAG,EAAE;MAC5IrC,IAAI,EAAEe,UAAU,CAACf,IAAI;MACrBlB,QAAQ,EAAEiC,UAAU,CAACjC;IACvB,CAAC;EACH,CAAC,EAAE,CACD4C,WAAW,EACXX,UAAU,CAAClC,OAAO,EAClBkC,UAAU,CAACf,IAAI,EACfe,UAAU,CAACjC,QAAQ,CACpB,CAAC,CAAC;EACH,IAAI,CAACwD,cAAc,EAAEC,iBAAiB,CAAC,GAAG,CAAC,CAAC,EAAEzK,YAAY,CAAC0K,QAAQ,EAAE,IAAI,CAAC;EAC1E,IAAIC,aAAa,GAAG/C,UAAU,KAAK,KAAK,CAAC,GAAGA,UAAU,GAAG4C,cAAc;EACvE,IAAII,UAAU,GAAG,CAAC,CAAC,EAAE5K,YAAY,CAACkJ,OAAO,EAAE,YAAW;IACpD,IAAI/F,OAAO,GAAG,CAAC,CAAC,EAAE1C,sBAAsB,CAACoK,qBAAqB,EAAEX,UAAU,CAAC;IAC3E,IAAI,CAACE,gBAAgB,IAAI,CAACF,UAAU,EAAE,OAAO/G,OAAO;IACpD,IAAI2H,GAAG,GAAG,IAAIC,GAAG,CAACb,UAAU,CAACC,MAAM,CAACpH,GAAG,CAAC,UAASE,KAAK,EAAE;MACtD,OAAOA,KAAK,CAACM,SAAS;IACxB,CAAC,CAAC,CAAC;IACH,OAAOJ,OAAO,CAACiB,MAAM,CAAC,UAASf,MAAM,EAAE;MACrC,OAAOA,MAAM,CAACE,SAAS,KAAK,MAAM,IAAIuH,GAAG,CAACE,GAAG,CAAC3H,MAAM,CAACE,SAAS,CAAC;IACjE,CAAC,CAAC;EACJ,CAAC,EAAE,CACD2G,UAAU,EACVE,gBAAgB,CACjB,CAAC;EACF,IAAIa,OAAO,GAAG,CAAC,CAAC,EAAElL,YAAY,CAACmL,kBAAkB,EAAE,CAAC,KAAK,SAAS;EAClE,IAAIC,iBAAiB,GAAG,CAAC,CAAC,EAAEnL,YAAY,CAACkJ,OAAO,EAAE,YAAW;IAC3D,OAAO+B,OAAO,GAAG,CAAC,CAAC,EAAExK,sBAAsB,CAAC2K,qBAAqB,EAAElB,UAAU,CAAC,GAAGE,gBAAgB,IAAIF,UAAU,GAAG,CAChH,MAAM,EACN,GAAGA,UAAU,CAACC,MAAM,CAACpH,GAAG,CAAC,UAASE,KAAK,EAAE;MACvC,OAAOA,KAAK,CAACM,SAAS;IACxB,CAAC,CAAC,CACH,GAAG,CAAC,CAAC,EAAE9C,sBAAsB,CAAC4K,uBAAuB,EAAEnB,UAAU,CAAC;EACrE,CAAC,EAAE,CACDA,UAAU,EACVE,gBAAgB,EAChBa,OAAO,CACR,CAAC;EACF,IAAIK,OAAO,GAAG,CAAC,CAAC,EAAEtL,YAAY,CAACuL,WAAW,EAAE,UAASC,IAAI,EAAE;IACzD,OAAO,0BAA0B,CAACC,IAAI,CAACD,IAAI,CAAC,IAAI,CAACvC,UAAU,CAAClC,OAAO,GAAGyE,IAAI,GAAG,GAAGvC,UAAU,CAAClC,OAAO,CAAC2E,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,GAAGF,IAAI,CAACG,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,GAAGH,IAAI,EAAE;EAClK,CAAC,EAAE,CACDvC,UAAU,CAAClC,OAAO,CACnB,CAAC;EACF,IAAI6E,iBAAiB,GAAG7J,IAAI,CAACU,SAAS,CAACS,iBAAiB,CAACa,cAAc,CAAC,CAAC;EACzE,IAAI8H,eAAe,GAAG,CAAC,CAAC,EAAE7L,YAAY,CAACkJ,OAAO,EAAE,YAAW;IACzD,OAAOnH,IAAI,CAACC,KAAK,CAAC4J,iBAAiB,CAAC;EACtC,CAAC,EAAE,CACDA,iBAAiB,CAClB,CAAC;EACF,IAAI,CAACE,aAAa,EAAEC,gBAAgB,CAAC,GAAG,CAAC,CAAC,EAAE/L,YAAY,CAAC0K,QAAQ,EAAE,KAAK,CAAC,CAAC;EAC1E,IAAI,CAACsB,gBAAgB,EAAEC,mBAAmB,CAAC,GAAG,CAAC,CAAC,EAAEjM,YAAY,CAAC0K,QAAQ,EAAE,IAAI,CAAC;EAC9E,CAAC,CAAC,EAAE1K,YAAY,CAACkM,SAAS,EAAE,YAAW;IACrC,IAAInD,WAAW,EAAE;IACjB,IAAIoD,SAAS,GAAG,KAAK;IACrB,KAAK3K,iBAAiB,CAACD,OAAO,CAAC,CAAC6K,IAAI,CAAC,UAASC,MAAM,EAAE;MACpD,IAAI,CAACF,SAAS,EAAEJ,gBAAgB,CAACM,MAAM,CAAC;IAC1C,CAAC,CAAC;IACF,OAAO,YAAW;MAChBF,SAAS,GAAG,IAAI;IAClB,CAAC;EACH,CAAC,EAAE,CACD5K,OAAO,EACPwH,WAAW,CACZ,CAAC;EACF,IAAIuD,kBAAkB,GAAG,CAACjE,IAAI,GAAG,CAACC,KAAK,GAAG0D,gBAAgB,KAAK,IAAI,IAAIA,gBAAgB,KAAK,KAAK,CAAC,GAAGA,gBAAgB,GAAGH,eAAe,MAAM,IAAI,IAAIvD,KAAK,KAAK,KAAK,CAAC,GAAGA,KAAK,GAAGwD,aAAa,MAAM,IAAI,IAAIzD,IAAI,KAAK,KAAK,CAAC,GAAGA,IAAI,GAAG8C,iBAAiB;EACrP,IAAIoB,eAAe,GAAG,CAAC,CAAC,EAAEvM,YAAY,CAACkJ,OAAO,EAAE,YAAW;IACzD,OAAO,CAAC,CAAC,EAAEzI,sBAAsB,CAAC+L,sBAAsB,EAAE5B,UAAU,EAAE0B,kBAAkB,CAAC;EAC3F,CAAC,EAAE,CACD1B,UAAU,EACV0B,kBAAkB,CACnB,CAAC;EACF,IAAIG,UAAU,GAAG1K,IAAI,CAACU,SAAS,CAACE,OAAO,KAAK,IAAI,IAAIA,OAAO,KAAK,KAAK,CAAC,GAAGA,OAAO,GAAG,IAAI,CAAC;EACxF,IAAI+J,WAAW,GAAG,CAAC,CAAC,EAAE1M,YAAY,CAACkJ,OAAO,EAAE,YAAW;IACrD,OAAOxG,eAAe,CAACX,IAAI,CAACC,KAAK,CAACyK,UAAU,CAAC,CAAC;EAChD,CAAC,EAAE,CACDA,UAAU,CACX,CAAC;EACF,IAAI,CAACE,cAAc,EAAEC,iBAAiB,CAAC,GAAG,CAAC,CAAC,EAAE5M,YAAY,CAAC0K,QAAQ,EAAE,KAAK,CAAC;EAC3E,IAAI,CAACmC,aAAa,EAAEC,gBAAgB,CAAC,GAAG,CAAC,CAAC,EAAE9M,YAAY,CAAC0K,QAAQ,EAAE,IAAI,CAAC;EACxE,IAAIqC,WAAW,GAAGJ,cAAc,GAAGvL,aAAa,GAAG,CAACmH,KAAK,GAAGsE,aAAa,KAAK,IAAI,IAAIA,aAAa,KAAK,KAAK,CAAC,GAAGA,aAAa,GAAGH,WAAW,MAAM,IAAI,IAAInE,KAAK,KAAK,KAAK,CAAC,GAAGA,KAAK,GAAGnH,aAAa;EAClM,IAAI,CAAC4L,YAAY,EAAEC,eAAe,CAAC,GAAG,CAAC,CAAC,EAAEjN,YAAY,CAAC0K,QAAQ,EAAE,CAAC,CAAC,CAAC;EACpE,IAAI,CAACwC,gBAAgB,EAAEC,mBAAmB,CAAC,GAAG,CAAC,CAAC,EAAEnN,YAAY,CAAC0K,QAAQ,EAAE,CAAC,CAAC,CAAC;EAC5E,CAAC,CAAC,EAAE1K,YAAY,CAACkM,SAAS,EAAE,YAAW;IACrC,IAAIkB,MAAM,GAAGC,UAAU,CAAC,YAAW;MACjCF,mBAAmB,CAAC,UAASG,QAAQ,EAAE;QACrC,OAAOvL,IAAI,CAACU,SAAS,CAAC6K,QAAQ,CAAC,KAAKvL,IAAI,CAACU,SAAS,CAACuK,YAAY,CAAC,GAAGM,QAAQ,GAAGN,YAAY;MAC5F,CAAC,CAAC;IACJ,CAAC,EAAE3L,yBAAyB,CAAC;IAC7B,OAAO,YAAW;MAChB,OAAOkM,YAAY,CAACH,MAAM,CAAC;IAC7B,CAAC;EACH,CAAC,EAAE,CACDJ,YAAY,CACb,CAAC;EACF,IAAIQ,YAAY,GAAG,CAAC,CAAC,EAAExN,YAAY,CAACkJ,OAAO,EAAE,YAAW;IACtD,OAAO,CAAC,CAAC,EAAEzI,sBAAsB,CAACgN,kBAAkB,EAAElB,eAAe,EAAEW,gBAAgB,CAAC;EAC1F,CAAC,EAAE,CACDX,eAAe,EACfW,gBAAgB,CACjB,CAAC;EACF,IAAIQ,QAAQ,GAAG3L,IAAI,CAACU,SAAS,CAAC2E,YAAY,KAAK,IAAI,IAAIA,YAAY,KAAK,KAAK,CAAC,GAAGA,YAAY,GAAG,EAAE,CAAC;EACnG,IAAIuG,KAAK,GAAG,CAAC,CAAC,EAAE3N,YAAY,CAACkJ,OAAO,EAAE,YAAW;IAC/C,OAAOnH,IAAI,CAACC,KAAK,CAAC0L,QAAQ,CAAC;EAC7B,CAAC,EAAE,CACDA,QAAQ,CACT,CAAC;EACF,IAAIE,gBAAgB,GAAG,CAAC,CAAC,EAAE5N,YAAY,CAACkJ,OAAO,EAAE,YAAW;IAC1D,OAAO,CACL,GAAGyE,KAAK,EACR,GAAGZ,WAAW,EACd,GAAGS,YAAY,CAChB;EACH,CAAC,EAAE,CACDG,KAAK,EACLZ,WAAW,EACXS,YAAY,CACb,CAAC;EACF,IAAIK,QAAQ,GAAG,CAAC,CAAC,EAAE7N,YAAY,CAACkJ,OAAO,EAAE,YAAW;IAClD,OAAO;MACLjG,KAAK,EAAE,CAAC,CAACsG,IAAI,KAAK,IAAI,IAAIA,IAAI,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,IAAI,CAACuE,UAAU,KAAK,UAAU,EAAEC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;MAClGC,KAAK,EAAE,CAAC,CAACzE,IAAI,KAAK,IAAI,IAAIA,IAAI,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,IAAI,CAAC0E,UAAU,KAAK,MAAM,EAAEC,WAAW,CAAC,CAAC,KAAK,KAAK,GAAG,KAAK,GAAG;IACrH,CAAC;EACH,CAAC,EAAE,CACD3E,IAAI,KAAK,IAAI,IAAIA,IAAI,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,IAAI,CAACuE,UAAU,EAC3DvE,IAAI,KAAK,IAAI,IAAIA,IAAI,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,IAAI,CAAC0E,UAAU,CAC5D,CAAC;EACF,IAAI,CAACE,YAAY,EAAEC,eAAe,CAAC,GAAG,CAAC,CAAC,EAAEpO,YAAY,CAAC0K,QAAQ,EAAE,IAAI,CAAC;EACtE,IAAI2D,IAAI,GAAGF,YAAY,KAAK,IAAI,IAAIA,YAAY,KAAK,KAAK,CAAC,GAAGA,YAAY,GAAGN,QAAQ;EACrF,IAAIS,YAAY,GAAG3J,UAAU,CAAC2C,cAAc,CAAC;EAC7C,IAAIiH,WAAW,GAAG,CAAC,OAAOjH,cAAc,KAAK,WAAW,GAAG,WAAW,GAAGrG,QAAQ,CAACqG,cAAc,CAAC,MAAM,QAAQ,GAAGA,cAAc,GAAG,KAAK,CAAC;EACzI,IAAI,CAAC1C,OAAO,EAAE4J,UAAU,CAAC,GAAG,CAAC,CAAC,EAAExO,YAAY,CAAC0K,QAAQ,EAAE4D,YAAY,CAAC;EACpE,IAAI,CAACG,QAAQ,EAAEC,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE1O,YAAY,CAAC0K,QAAQ,EAAEjK,sBAAsB,CAACkO,wBAAwB,CAAC;EACzG,IAAI,CAACC,IAAI,EAAEC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE7O,YAAY,CAAC0K,QAAQ,EAAE,CAAC,CAAC;EACnD,CAAC,CAAC,EAAE1K,YAAY,CAACkM,SAAS,EACxB,YAAW;IACTD,mBAAmB,CAAC,IAAI,CAAC;IACzBF,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACxBqC,eAAe,CAAC,IAAI,CAAC;IACrBI,UAAU,CAACF,YAAY,CAAC;IACxBO,OAAO,CAAC,CAAC,CAAC;IACVH,WAAW,CAACjO,sBAAsB,CAACkO,wBAAwB,CAAC;IAC5D1B,eAAe,CAAC,CAAC,CAAC,CAAC;IACnBE,mBAAmB,CAAC,CAAC,CAAC,CAAC;IACvBP,iBAAiB,CAAC,KAAK,CAAC;IACxBE,gBAAgB,CAAC,IAAI,CAAC;EACxB,CAAC;EACD;EACA;EACA,CACEvL,OAAO,CAEX,CAAC;EACD,CAAC,CAAC,EAAEvB,YAAY,CAACkM,SAAS,EAAE,YAAW;IACrC,OAAOU,iBAAiB,CAAC,KAAK,CAAC;EACjC,CAAC,EAAE,CACDH,UAAU,CACX,CAAC;EACF,IAAIqC,mBAAmB,GAAG,CAAC,CAAC,EAAE9O,YAAY,CAACkJ,OAAO,EAAE,YAAW;IAC7D,OAAOnH,IAAI,CAACU,SAAS,CAACmL,gBAAgB,CAAC;EACzC,CAAC,EAAE,CACDA,gBAAgB,CACjB,CAAC;EACF,CAAC,CAAC,EAAE5N,YAAY,CAACkM,SAAS,EAAE,YAAW;IACrC2C,OAAO,CAAC,CAAC,CAAC;EACZ,CAAC,EAAE,CACDC,mBAAmB,EACnBL,QAAQ,EACR7J,OAAO,CACR,CAAC;EACF,CAAC,CAAC,EAAE5E,YAAY,CAACkM,SAAS,EACxB,YAAW;IACT,IAAI,CAACvB,aAAa,EAAE;MAClBmC,gBAAgB,CAAC,IAAI,CAAC;MACtB;IACF;IACA,IAAIX,SAAS,GAAG,KAAK;IACrB,KAAK9B,YAAY,CAAC0E,IAAI,CAACpE,aAAa,CAAC,CAACyB,IAAI,CAAC,UAAS4C,KAAK,EAAE;MACzD,IAAIC,cAAc;MAClB,IAAI9C,SAAS,IAAI,CAAC6C,KAAK,EAAE;MACzB/C,mBAAmB,CAAC+C,KAAK,CAACzM,UAAU,CAACK,MAAM,GAAG,CAAC,GAAGoM,KAAK,CAACzM,UAAU,GAAG,IAAI,CAAC;MAC1EuK,gBAAgB,CAACkC,KAAK,CAACrM,OAAO,CAAC;MAC/BsK,eAAe,CAAC,CAAC,CAAC,CAAC;MACnBE,mBAAmB,CAAC,CAAC,CAAC,CAAC;MACvBP,iBAAiB,CAAC,KAAK,CAAC;MACxB,IAAIoC,KAAK,CAACX,IAAI,EAAED,eAAe,CAACY,KAAK,CAACX,IAAI,CAAC;MAC3C,IAAIW,KAAK,CAACP,QAAQ,IAAIhO,sBAAsB,CAACyO,iBAAiB,CAACC,IAAI,CAAC,UAASC,IAAI,EAAE;QACjF,OAAOA,IAAI,KAAKJ,KAAK,CAACP,QAAQ;MAChC,CAAC,CAAC,EAAE;QACFC,WAAW,CAACM,KAAK,CAACP,QAAQ,CAAC;MAC7B;MACAD,UAAU,CAAC,CAACS,cAAc,GAAGD,KAAK,CAACpK,OAAO,MAAM,IAAI,IAAIqK,cAAc,KAAK,KAAK,CAAC,GAAGA,cAAc,GAAG,IAAI,CAAC;IAC5G,CAAC,CAAC;IACF,OAAO,YAAW;MAChB9C,SAAS,GAAG,IAAI;IAClB,CAAC;EACH,CAAC;EACD;EACA;EACA;EACA;EACA,CACExB,aAAa,EACbpJ,OAAO,CAEX,CAAC;EACD,IAAI8N,kBAAkB,GAAG,CAAC,CAAC,EAAErP,YAAY,CAACuL,WAAW,EAAE,UAAShI,SAAS,EAAE;IACzE0I,mBAAmB,CAAC,UAASqB,QAAQ,EAAE;MACrC,IAAIgC,KAAK,EAAEC,MAAM;MACjB,IAAIC,OAAO,GAAG,CAACF,KAAK,GAAG,CAACC,MAAM,GAAGjC,QAAQ,KAAK,IAAI,IAAIA,QAAQ,KAAK,KAAK,CAAC,GAAGA,QAAQ,GAAGzB,eAAe,MAAM,IAAI,IAAI0D,MAAM,KAAK,KAAK,CAAC,GAAGA,MAAM,GAAGzD,aAAa,MAAM,IAAI,IAAIwD,KAAK,KAAK,KAAK,CAAC,GAAGA,KAAK,GAAGnE,iBAAiB;MACxN,IAAI3F,IAAI,GAAGgK,OAAO,CAACC,QAAQ,CAAClM,SAAS,CAAC,GAAGiM,OAAO,CAAC5M,MAAM,KAAK,CAAC,GAAG4M,OAAO,GAAGA,OAAO,CAACpL,MAAM,CAAC,UAAShC,KAAK,EAAE;QACvG,OAAOA,KAAK,KAAKmB,SAAS;MAC5B,CAAC,CAAC,GAAG,CACH,GAAGiM,OAAO,EACVjM,SAAS,CACV;MACD,IAAI,CAACwF,WAAW,IAAI,CAAC4B,aAAa,EAAErI,oBAAoB,CAACf,OAAO,EAAEiE,IAAI,CAAC;MACvE,OAAOA,IAAI;IACb,CAAC,CAAC;EACJ,CAAC,EAAE,CACDqG,eAAe,EACfC,aAAa,EACbX,iBAAiB,EACjBpC,WAAW,EACX4B,aAAa,EACbpJ,OAAO,CACR,CAAC;EACF,IAAImO,kBAAkB,GAAG,CAAC,CAAC,EAAE1P,YAAY,CAACuL,WAAW,EAAE,YAAW;IAChEU,mBAAmB,CAACd,iBAAiB,CAAC;IACtCY,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACxB,IAAI,CAAChD,WAAW,EAAEzG,oBAAoB,CAACf,OAAO,EAAE4J,iBAAiB,CAAC;EACpE,CAAC,EAAE,CACDA,iBAAiB,EACjBpC,WAAW,EACXxH,OAAO,CACR,CAAC;EACF,IAAIoO,WAAW,GAAG,CAAC,CAAC,EAAE3P,YAAY,CAACkJ,OAAO,EAAE,YAAW;IACrD,IAAIiB,MAAM,GAAG,eAAgB,IAAIY,GAAG,CAAC,CACnC,MAAM,EACNsD,IAAI,CAACpL,KAAK,CACX,CAAC;IACF,IAAIiC,yBAAyB,GAAG,IAAI;MAAEC,iBAAiB,GAAG,KAAK;MAAEC,cAAc,GAAG,KAAK,CAAC;IACxF,IAAI;MACF,KAAK,IAAIC,SAAS,GAAGkH,eAAe,CAACxL,MAAM,CAACuE,QAAQ,CAAC,CAAC,CAAC,EAAEC,KAAK,EAAE,EAAEL,yBAAyB,GAAG,CAACK,KAAK,GAAGF,SAAS,CAACG,IAAI,CAAC,CAAC,EAAEC,IAAI,CAAC,EAAEP,yBAAyB,GAAG,IAAI,EAAE;QAChK,IAAI7B,MAAM,GAAGkC,KAAK,CAACrG,KAAK;QACxBiL,MAAM,CAACyF,GAAG,CAACvM,MAAM,CAACE,SAAS,CAAC;MAC9B;IACF,CAAC,CAAC,OAAOuC,GAAG,EAAE;MACZX,iBAAiB,GAAG,IAAI;MACxBC,cAAc,GAAGU,GAAG;IACtB,CAAC,SAAS;MACR,IAAI;QACF,IAAI,CAACZ,yBAAyB,IAAIG,SAAS,CAACU,MAAM,IAAI,IAAI,EAAE;UAC1DV,SAAS,CAACU,MAAM,CAAC,CAAC;QACpB;MACF,CAAC,SAAS;QACR,IAAIZ,iBAAiB,EAAE;UACrB,MAAMC,cAAc;QACtB;MACF;IACF;IACA,IAAIR,OAAO,EAAEuF,MAAM,CAACyF,GAAG,CAAChL,OAAO,CAAC;IAChC,IAAI2J,WAAW,KAAK,IAAI,IAAIA,WAAW,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,WAAW,CAAClI,gBAAgB,EAAE8D,MAAM,CAACyF,GAAG,CAACrB,WAAW,CAAClI,gBAAgB,CAAC;IACpI,IAAI4E,OAAO,KAAKf,UAAU,KAAK,IAAI,IAAIA,UAAU,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,UAAU,CAAC2F,WAAW,CAAC,EAAE1F,MAAM,CAACyF,GAAG,CAAC1F,UAAU,CAAC2F,WAAW,CAAC;IACnI,OAAO,CACL,GAAG1F,MAAM,CACV;EACH,CAAC,EAAE,CACDoC,eAAe,EACf8B,IAAI,CAACpL,KAAK,EACV2B,OAAO,EACP2J,WAAW,KAAK,IAAI,IAAIA,WAAW,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,WAAW,CAAClI,gBAAgB,EACtF4E,OAAO,EACPf,UAAU,KAAK,IAAI,IAAIA,UAAU,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,UAAU,CAAC2F,WAAW,CAC/E,CAAC;EACF,IAAIC,OAAO,GAAG,CAAC,CAAC,EAAE9P,YAAY,CAACkJ,OAAO,EAAE,YAAW;IACjD,OAAO,CACL;MACEjG,KAAK,EAAEoL,IAAI,CAACpL,KAAK;MACjB+K,KAAK,EAAEK,IAAI,CAACL,KAAK,KAAK,KAAK,GAAGrO,aAAa,CAACoQ,KAAK,CAACC,GAAG,GAAGrQ,aAAa,CAACoQ,KAAK,CAACE;IAC9E,CAAC,CACF;EACH,CAAC,EAAE,CACD5B,IAAI,CAACpL,KAAK,EACVoL,IAAI,CAACL,KAAK,CACX,CAAC;EACF,IAAI;IAAElJ,IAAI,EAAEoL,QAAQ;IAAEC,SAAS;IAAE3G,SAAS,EAAE4G;EAAY,CAAC,GAAG,CAAC,CAAC,EAAEzP,oBAAoB,CAAC0P,aAAa,EAAEpH,UAAU,EAAE1H,OAAO,EAAE;IACvH4I,MAAM,EAAEwF,WAAW;IACnBhN,OAAO,EAAEiL,gBAAgB;IACzBkC,OAAO;IACPQ,KAAK,EAAE,IAAI;IACXhN,OAAO,EAAE4G,UAAU,KAAK,KAAK,CAAC;IAC9BqG,QAAQ,EAAEhM;EACZ,CAAC,CAAC;EACF,IAAIiM,WAAW,GAAG,CAAC,CAAC,EAAExQ,YAAY,CAACkJ,OAAO,EAAE,YAAW;IACrD,OAAO,CAAC,CAAC,EAAEzI,sBAAsB,CAACgQ,eAAe,EAAEP,QAAQ,EAAE7B,IAAI,EAAEzJ,OAAO,CAAC;EAC7E,CAAC,EAAE,CACDsL,QAAQ,EACR7B,IAAI,EACJzJ,OAAO,CACR,CAAC;EACF,IAAI8L,KAAK,GAAGF,WAAW,CAAC5N,MAAM;EAC9B,IAAI+N,SAAS,GAAGlK,IAAI,CAACE,GAAG,CAAC,CAAC,EAAEF,IAAI,CAACmK,IAAI,CAACF,KAAK,GAAGjC,QAAQ,CAAC,CAAC;EACxD,IAAIoC,aAAa,GAAGpK,IAAI,CAACC,GAAG,CAACkI,IAAI,EAAE+B,SAAS,GAAG,CAAC,CAAC;EACjD,IAAIG,QAAQ,GAAG,CAAC,CAAC,EAAE9Q,YAAY,CAACkJ,OAAO,EAAE,YAAW;IAClD,OAAO,CAAC,CAAC,EAAEzI,sBAAsB,CAACsQ,aAAa,EAAEP,WAAW,EAAEK,aAAa,GAAGpC,QAAQ,EAAEA,QAAQ,EAAE7J,OAAO,CAAC;EAC5G,CAAC,EAAE,CACD4L,WAAW,EACXK,aAAa,EACbpC,QAAQ,EACR7J,OAAO,CACR,CAAC;EACF,IAAIoM,MAAM,GAAG,CAAC,CAAC,EAAEhR,YAAY,CAACkJ,OAAO,EAAE,YAAW;IAChD,OAAO,CAAC,CAAC,EAAEzI,sBAAsB,CAACwQ,aAAa,EAAE1E,eAAe,EAAEiE,WAAW,CAAC;EAChF,CAAC,EAAE,CACDjE,eAAe,EACfiE,WAAW,CACZ,CAAC;EACF,IAAIU,aAAa,GAAGtM,OAAO,GAAGgG,UAAU,CAAChH,IAAI,CAAC,UAASP,MAAM,EAAE;IAC7D,OAAOA,MAAM,CAACE,SAAS,KAAKqB,OAAO;EACrC,CAAC,CAAC,GAAG,KAAK,CAAC;EACX,IAAIuM,SAAS,GAAG,CAAC,CAAC,EAAEnR,YAAY,CAACkJ,OAAO,EAAE,YAAW;IACnD,OAAO3B,SAAS,IAAI3C,OAAO,GAAGC,eAAe,CAAC2L,WAAW,EAAE5L,OAAO,EAAE2J,WAAW,CAAC,GAAG,EAAE;EACvF,CAAC,EAAE,CACDhH,SAAS,EACT3C,OAAO,EACP4L,WAAW,EACXjC,WAAW,CACZ,CAAC;EACF,IAAI6C,aAAa,GAAGpI,OAAO,CAACxB,SAAS,IAAIC,UAAU,CAAC;EACpD,IAAI4J,aAAa,GAAG,CAAC,CAAC,EAAErR,YAAY,CAACuL,WAAW,EAAE,UAASnN,IAAI,EAAE;IAC/DoJ,SAAS,KAAK,IAAI,IAAIA,SAAS,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,SAAS,CAACpJ,IAAI,CAAC;IACrE,IAAIqJ,UAAU,EAAE;MACd,IAAI6J,KAAK,GAAGd,WAAW,CAACe,SAAS,CAAC,UAAS7L,GAAG,EAAE;QAC9C,OAAOA,GAAG,CAACtH,IAAI,KAAKA,IAAI;MAC1B,CAAC,CAAC;MACF,IAAIkT,KAAK,IAAI,CAAC,EAAE7J,UAAU,CAAC+I,WAAW,CAACc,KAAK,CAAC,EAAEA,KAAK,CAAC;IACvD;EACF,CAAC,EAAE,CACD9J,SAAS,EACTC,UAAU,EACV+I,WAAW,CACZ,CAAC;EACF,IAAIgB,kBAAkB,GAAG,CAAC,CAAC,EAAExR,YAAY,CAACuL,WAAW,EAAE,UAASnN,IAAI,EAAE;IACpE,IAAIwJ,UAAU,KAAK,KAAK,CAAC,EAAE6C,iBAAiB,CAACrM,IAAI,CAAC;IAClDyJ,cAAc,KAAK,IAAI,IAAIA,cAAc,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,cAAc,CAACzJ,IAAI,CAAC;IACpF,IAAI,CAACA,IAAI,EAAE;MACT0O,gBAAgB,CAAC,IAAI,CAAC;MACtBb,mBAAmB,CAAC,IAAI,CAAC;MACzBmC,eAAe,CAAC,IAAI,CAAC;MACrBI,UAAU,CAAC,IAAI,CAAC;IAClB;EACF,CAAC,EAAE,CACD5G,UAAU,EACVC,cAAc,CACf,CAAC;EACF,IAAI4J,sBAAsB,GAAG,CAAC,CAAC,EAAEzR,YAAY,CAACuL,WAAW,EAAE,YAAW;IACpEqB,iBAAiB,CAAC,IAAI,CAAC;IACvB,IAAIF,WAAW,IAAI,CAACG,aAAa,EAAExF,cAAc,KAAK,IAAI,IAAIA,cAAc,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,cAAc,CAAC,CAAC;EACrH,CAAC,EAAE,CACDqF,WAAW,EACXG,aAAa,EACbxF,cAAc,CACf,CAAC;EACF,IAAIqK,gBAAgB,GAAG,CAAC,CAAC,EAAE1R,YAAY,CAACuL,WAAW,EAAE,UAASnN,IAAI,EAAE;IAClE,KAAKiM,YAAY,CAACsH,IAAI,CAACvT,IAAI,EAAE;MAC3BmE,UAAU,EAAE,CACV,GAAG+J,kBAAkB,CACtB;MACD3J,OAAO,EAAEiL,gBAAgB;MACzBS,IAAI;MACJI,QAAQ;MACR7J,OAAO;MACPgN,SAAS,EAAEZ,MAAM,CAACpO,MAAM,GAAG;IAC7B,CAAC,CAAC,CAACwJ,IAAI,CAAC,UAASyF,SAAS,EAAE;MAC1B,CAAC,CAAC,EAAEnS,iBAAiB,CAACoS,MAAM,EAAE;QAC5BC,QAAQ,EAAE,SAAS;QACnBpE,KAAK,EAAE,MAAM;QACbqE,IAAI,EAAExJ,CAAC,CAAC,iBAAiB,EAAE;UACzByJ,YAAY,EAAE,mCAAmC;UACjD7T,IAAI,EAAEyT;QACR,CAAC;MACH,CAAC,CAAC;MACF,IAAIA,SAAS,KAAKlH,aAAa,EAAE6G,kBAAkB,CAACK,SAAS,CAAC;IAChE,CAAC,CAAC,CAACK,KAAK,CAAC,UAAS1N,KAAK,EAAE;MACvB,CAAC,CAAC,EAAE9E,iBAAiB,CAACoS,MAAM,EAAE;QAC5BC,QAAQ,EAAE,OAAO;QACjBpE,KAAK,EAAE,MAAM;QACbqE,IAAI,EAAEpR,WAAW,CAAC4D,KAAK,EAAEC,KAAK,CAAC,GAAGD,KAAK,CAAC2N,OAAO,GAAG3J,CAAC,CAAC,mBAAmB,EAAE,2BAA2B;MACtG,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ,CAAC,EAAE,CACD6B,YAAY,EACZiC,kBAAkB,EAClBsB,gBAAgB,EAChBS,IAAI,EACJI,QAAQ,EACR7J,OAAO,EACPoM,MAAM,CAACpO,MAAM,EACb+H,aAAa,EACb6G,kBAAkB,EAClBhJ,CAAC,CACF,CAAC;EACF,IAAI4J,kBAAkB,GAAG,CAAC,CAAC,EAAEpS,YAAY,CAACuL,WAAW,EAAE,UAASnN,IAAI,EAAE;IACpE,KAAKiM,YAAY,CAACgI,MAAM,CAACjU,IAAI,CAAC,CAACgO,IAAI,CAAC,YAAW;MAC7C,CAAC,CAAC,EAAE1M,iBAAiB,CAACoS,MAAM,EAAE;QAC5BC,QAAQ,EAAE,SAAS;QACnBpE,KAAK,EAAE,MAAM;QACbqE,IAAI,EAAExJ,CAAC,CAAC,mBAAmB,EAAE;UAC3ByJ,YAAY,EAAE,qCAAqC;UACnD7T;QACF,CAAC;MACH,CAAC,CAAC;MACF,IAAIA,IAAI,KAAKuM,aAAa,EAAE6G,kBAAkB,CAAC,IAAI,CAAC;IACtD,CAAC,CAAC,CAACU,KAAK,CAAC,UAAS1N,KAAK,EAAE;MACvB,CAAC,CAAC,EAAE9E,iBAAiB,CAACoS,MAAM,EAAE;QAC5BC,QAAQ,EAAE,OAAO;QACjBpE,KAAK,EAAE,MAAM;QACbqE,IAAI,EAAEpR,WAAW,CAAC4D,KAAK,EAAEC,KAAK,CAAC,GAAGD,KAAK,CAAC2N,OAAO,GAAG3J,CAAC,CAAC,qBAAqB,EAAE,6BAA6B;MAC1G,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ,CAAC,EAAE,CACD6B,YAAY,EACZM,aAAa,EACb6G,kBAAkB,EAClBhJ,CAAC,CACF,CAAC;EACF,IAAI8J,aAAa,GAAGtJ,OAAO,CAAClB,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAExH,gBAAgB,CAACiS,UAAU,EAAE,CAAC;EAC3E,IAAIC,YAAY,GAAG,CAAC,CAAC,EAAExS,YAAY,CAACuL,WAAW,EAAE,YAAW;IAC1D,IAAIzD,QAAQ,EAAE;MACZA,QAAQ,CAAC0I,WAAW,CAAC;MACrB;IACF;IACA,KAAK,CAAC,CAAC,EAAElQ,gBAAgB,CAACmS,aAAa,EAAE;MACvCC,GAAG,EAAE,CAAC,CAAC,EAAEjS,sBAAsB,CAACkS,cAAc,EAAEpG,eAAe,EAAEiE,WAAW,CAAC;MAC7EoC,QAAQ,EAAE,GAAGrR,OAAO,aAAa;MACjCsR,QAAQ,EAAErC,WAAW,CAAC5N,MAAM;MAC5B4F;IACF,CAAC,CAAC;EACJ,CAAC,EAAE,CACDV,QAAQ,EACRyE,eAAe,EACfiE,WAAW,EACXjP,OAAO,EACPiH,CAAC,CACF,CAAC;EACF,IAAIsK,wBAAwB,GAAG,CAAC,CAAC,EAAE9S,YAAY,CAACuL,WAAW,EAAE,UAAShI,SAAS,EAAErE,KAAK,EAAE;IACtF+N,eAAe,CAAC,UAASK,QAAQ,EAAE;MACjC,IAAIpO,KAAK,KAAK,EAAE,EAAE;QAChB,IAAI,EAAEqE,SAAS,IAAI+J,QAAQ,CAAC,EAAE,OAAOA,QAAQ;QAC7C,IAAI;UAAE,CAAC/J,SAAS,GAAGwP,QAAQ;UAAE,GAAGC;QAAK,CAAC,GAAG1F,QAAQ;QACjD,OAAO0F,IAAI;MACb;MACA,OAAO;QACL,GAAG1F,QAAQ;QACX,CAAC/J,SAAS,GAAGrE;MACf,CAAC;IACH,CAAC,CAAC;EACJ,CAAC,EAAE,EAAE,CAAC;EACN,IAAI+T,wBAAwB,GAAG,CAAC,CAAC,EAAEjT,YAAY,CAACuL,WAAW,EAAE,YAAW;IACtE0B,eAAe,CAAC,CAAC,CAAC,CAAC;IACnBE,mBAAmB,CAAC,CAAC,CAAC,CAAC;EACzB,CAAC,EAAE,EAAE,CAAC;EACN,IAAI1D,WAAW,IAAI,CAACF,IAAI,EAAE;IACxB,OAAO,eAAgB,CAAC,CAAC,EAAE/J,kBAAkB,CAACyH,GAAG,EAAEzH,kBAAkB,CAAC0T,QAAQ,EAAE;MAC9EC,QAAQ,EAAEnL,eAAe,KAAK,IAAI,IAAIA,eAAe,KAAK,KAAK,CAAC,GAAGA,eAAe,GAAG,eAAgB,CAAC,CAAC,EAAExI,kBAAkB,CAACyH,GAAG,EAAEvH,iBAAiB,CAAC0T,MAAM,EAAE;QACzJC,IAAI,EAAE,CAAC;QACPC,UAAU,EAAE,QAAQ;QACpBC,cAAc,EAAE,QAAQ;QACxB,GAAGnL,UAAU;QACb+K,QAAQ,EAAE,eAAgB,CAAC,CAAC,EAAE3T,kBAAkB,CAACyH,GAAG,EAAEvH,iBAAiB,CAAC8T,OAAO,EAAE;UAC/EpE,IAAI,EAAE;QACR,CAAC;MACH,CAAC;IACH,CAAC,CAAC;EACJ;EACA,IAAI1F,SAAS,IAAIE,WAAW,IAAI,CAACM,UAAU,EAAE;IAC3C,IAAIF,WAAW,CAACyJ,MAAM,KAAK,SAAS,EAAE;MACpC,OAAO,eAAgB,CAAC,CAAC,EAAEjU,kBAAkB,CAACyH,GAAG,EAAEzH,kBAAkB,CAAC0T,QAAQ,EAAE;QAC9EC,QAAQ,EAAEnL,eAAe,KAAK,IAAI,IAAIA,eAAe,KAAK,KAAK,CAAC,GAAGA,eAAe,GAAG,eAAgB,CAAC,CAAC,EAAExI,kBAAkB,CAACyH,GAAG,EAAEvH,iBAAiB,CAAC0T,MAAM,EAAE;UACzJC,IAAI,EAAE,CAAC;UACPC,UAAU,EAAE,QAAQ;UACpBC,cAAc,EAAE,QAAQ;UACxB,GAAGnL,UAAU;UACb+K,QAAQ,EAAE,eAAgB,CAAC,CAAC,EAAE3T,kBAAkB,CAACyH,GAAG,EAAEvH,iBAAiB,CAAC8T,OAAO,EAAE;YAC/EpE,IAAI,EAAE;UACR,CAAC;QACH,CAAC;MACH,CAAC,CAAC;IACJ;IACA,OAAO,eAAgB,CAAC,CAAC,EAAE5P,kBAAkB,CAACyH,GAAG,EAAEzH,kBAAkB,CAAC0T,QAAQ,EAAE;MAC9EC,QAAQ,EAAElL,aAAa,GAAGA,aAAa,CAACyB,SAAS,CAAC,GAAG,eAAgB,CAAC,CAAC,EAAElK,kBAAkB,CAACyH,GAAG,EAAEvH,iBAAiB,CAACgU,UAAU,EAAE;QAC7HC,MAAM,EAAE,6BAA6B;QACrCC,KAAK,EAAEpL,CAAC,CAAC,qBAAqB,EAAE;UAC9ByJ,YAAY,EAAE,uCAAuC;UACrD1Q;QACF,CAAC,CAAC;QACFsS,WAAW,EAAE,CAAC,CAAC,EAAEzT,iBAAiB,CAAC0T,aAAa,EAAEpK,SAAS;MAC7D,CAAC;IACH,CAAC,CAAC;EACJ;EACA,IAAIA,SAAS,IAAI,CAACH,IAAI,IAAI,CAACa,gBAAgB,EAAE;IAC3C,OAAO,eAAgB,CAAC,CAAC,EAAE5K,kBAAkB,CAACyH,GAAG,EAAEzH,kBAAkB,CAAC0T,QAAQ,EAAE;MAC9EC,QAAQ,EAAElL,aAAa,GAAGA,aAAa,CAACyB,SAAS,CAAC,GAAG,eAAgB,CAAC,CAAC,EAAElK,kBAAkB,CAACyH,GAAG,EAAEvH,iBAAiB,CAACgU,UAAU,EAAE;QAC7HK,MAAM,EAAE,OAAO;QACfH,KAAK,EAAEpL,CAAC,CAAC,mBAAmB,EAAE;UAC5ByJ,YAAY,EAAE,sCAAsC;UACpD1Q;QACF,CAAC,CAAC;QACFsS,WAAW,EAAEnK,SAAS,CAACyI;MACzB,CAAC;IACH,CAAC,CAAC;EACJ;EACA,IAAIH,IAAI;EACR,IAAI7B,SAAS,IAAI,CAAC,CAAC,EAAE/P,iBAAiB,CAACyJ,iBAAiB,EAAEsG,SAAS,CAAC,EAAE;IACpE6B,IAAI,GAAG,eAAgB,CAAC,CAAC,EAAExS,kBAAkB,CAACyH,GAAG,EAAEvH,iBAAiB,CAACgU,UAAU,EAAE;MAC/EC,MAAM,EAAE,6BAA6B;MACrCC,KAAK,EAAEpL,CAAC,CAAC,qBAAqB,EAAE;QAC9ByJ,YAAY,EAAE,uCAAuC;QACrD1Q;MACF,CAAC,CAAC;MACFsS,WAAW,EAAE,CAAC,CAAC,EAAEzT,iBAAiB,CAAC0T,aAAa,EAAE3D,SAAS;IAC7D,CAAC,CAAC;EACJ,CAAC,MAAM,IAAIA,SAAS,EAAE;IACpB6B,IAAI,GAAG,eAAgB,CAAC,CAAC,EAAExS,kBAAkB,CAACyH,GAAG,EAAEvH,iBAAiB,CAACgU,UAAU,EAAE;MAC/EK,MAAM,EAAE,OAAO;MACfH,KAAK,EAAEpL,CAAC,CAAC,mBAAmB,EAAE,2BAA2B,CAAC;MAC1DqL,WAAW,EAAE1D,SAAS,CAACgC;IACzB,CAAC,CAAC;EACJ,CAAC,MAAM,IAAI/B,WAAW,IAAIM,KAAK,KAAK,CAAC,EAAE;IACrCsB,IAAI,GAAG,eAAgB,CAAC,CAAC,EAAExS,kBAAkB,CAACyH,GAAG,EAAEvH,iBAAiB,CAAC0T,MAAM,EAAE;MAC3EC,IAAI,EAAE,CAAC;MACPC,UAAU,EAAE,QAAQ;MACpBC,cAAc,EAAE,QAAQ;MACxBJ,QAAQ,EAAE,eAAgB,CAAC,CAAC,EAAE3T,kBAAkB,CAACyH,GAAG,EAAEvH,iBAAiB,CAAC8T,OAAO,EAAE;QAC/EpE,IAAI,EAAE;MACR,CAAC;IACH,CAAC,CAAC;EACJ,CAAC,MAAM,IAAIsB,KAAK,KAAK,CAAC,EAAE;IACtB,IAAIsD,UAAU,GAAGpG,gBAAgB,CAAChL,MAAM,GAAG,CAAC;IAC5CoP,IAAI,GAAG,eAAgB,CAAC,CAAC,EAAExS,kBAAkB,CAACyH,GAAG,EAAEvH,iBAAiB,CAACgU,UAAU,EAAE;MAC/EE,KAAK,EAAEpL,CAAC,CAAC,mBAAmB,EAAE,YAAY,CAAC;MAC3CqL,WAAW,EAAEG,UAAU,GAAGxL,CAAC,CAAC,sBAAsB,EAAE,mCAAmC,CAAC,GAAGA,CAAC,CAAC,yBAAyB,EAAE;QACtHyJ,YAAY,EAAE,sCAAsC;QACpD1Q;MACF,CAAC,CAAC;MACF0S,MAAM,EAAED,UAAU,GAAG,eAAgB,CAAC,CAAC,EAAExU,kBAAkB,CAACyH,GAAG,EAAErH,YAAY,CAACsU,MAAM,EAAE;QACpF9E,IAAI,EAAE,IAAI;QACV+E,OAAO,EAAE,SAASA,OAAOA,CAAA,EAAG;UAC1BlB,wBAAwB,CAAC,CAAC;UAC1BxB,sBAAsB,CAAC,CAAC;QAC1B,CAAC;QACD0B,QAAQ,EAAE3K,CAAC,CAAC,wBAAwB,EAAE,mBAAmB;MAC3D,CAAC,CAAC,GAAG,KAAK;IACZ,CAAC,CAAC;EACJ,CAAC,MAAM;IACLwJ,IAAI,GAAG,eAAgB,CAAC,CAAC,EAAExS,kBAAkB,CAAC4U,IAAI,EAAE1U,iBAAiB,CAAC0T,MAAM,EAAE;MAC5EiB,QAAQ,EAAE,CAAC;MACXC,UAAU,EAAE,CAAC;MACbC,SAAS,EAAE,MAAM;MACjBC,QAAQ,EAAE,CAAC;MACX,GAAG9L,SAAS,CAAC+L,GAAG;MAChBtB,QAAQ,EAAE,CACRhC,SAAS,CAACvO,MAAM,GAAG,CAAC,IAAI,eAAgB,CAAC,CAAC,EAAEpD,kBAAkB,CAACyH,GAAG,EAAEvH,iBAAiB,CAAC0T,MAAM,EAAE;QAC5F,GAAG1K,SAAS,CAACgM,OAAO;QACpB,GAAGhM,SAAS,CAACiM,eAAe;QAC5B,GAAGjM,SAAS,CAACkM,YAAY;QACzBzB,QAAQ,EAAE,eAAgB,CAAC,CAAC,EAAE3T,kBAAkB,CAACyH,GAAG,EAAEvH,iBAAiB,CAACmV,QAAQ,EAAE;UAChFC,IAAI,EAAE3D;QACR,CAAC;MACH,CAAC,CAAC,EACF,eAAgB,CAAC,CAAC,EAAE3R,kBAAkB,CAACyH,GAAG,EAAE1G,iBAAiB,CAACwU,UAAU,EAAE;QACxE5R,OAAO,EAAEoJ,eAAe;QACxBzH,IAAI,EAAEgM,QAAQ;QACdzC,IAAI;QACJ2G,YAAY,EAAE5G,eAAe;QAC7B6G,aAAa,EAAEjI,YAAY;QAC3BkI,oBAAoB,EAAEpC,wBAAwB;QAC9CtL,SAAS,EAAE4J,aAAa,GAAGC,aAAa,GAAG,KAAK,CAAC;QACjD3J,UAAU;QACVsJ,MAAM;QACNE,aAAa;QACbiE,UAAU,EAAEjL,UAAU,KAAK,IAAI,IAAIA,UAAU,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,UAAU,CAAC2F,WAAW;QAC1FuF,UAAU,EAAElL,UAAU,KAAK,IAAI,IAAIA,UAAU,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,UAAU,CAACmL,WAAW;QAC1F/J;MACF,CAAC,CAAC;IAEN,CAAC,CAAC;EACJ;EACA,IAAIgK,OAAO,GAAG,eAAgB,CAAC,CAAC,EAAE9V,kBAAkB,CAAC4U,IAAI,EAAE1U,iBAAiB,CAAC0T,MAAM,EAAE;IACnFC,IAAI,EAAE,CAAC;IACPmB,QAAQ,EAAE,CAAC;IACXe,SAAS,EAAE,CAAC;IACZ,GAAGnN,UAAU;IACb+K,QAAQ,EAAE,CACR,eAAgB,CAAC,CAAC,EAAE3T,kBAAkB,CAACyH,GAAG,EAAEvH,iBAAiB,CAAC0T,MAAM,EAAE;MACpEoC,iBAAiB,EAAE,IAAI;MACvBrC,QAAQ,EAAE,eAAgB,CAAC,CAAC,EAAE3T,kBAAkB,CAACyH,GAAG,EAAEzG,wBAAwB,CAACiV,iBAAiB,EAAE;QAChGtS,OAAO,EAAEyH,UAAU;QACnB8K,QAAQ,EAAEpJ,kBAAkB;QAC5BqJ,cAAc,EAAEtG,kBAAkB;QAClCuG,cAAc,EAAElG,kBAAkB;QAClC9K,OAAO;QACPiR,eAAe,EAAErH,UAAU;QAC3BzB,WAAW;QACX+I,kBAAkB,EAAE/I,WAAW,CAACnK,MAAM,GAAG,CAAC,GAAG6O,sBAAsB,GAAG,KAAK,CAAC;QAC5EsE,iBAAiB,EAAEvI,YAAY,CAAC5K,MAAM;QACtCoT,oBAAoB,EAAE/C,wBAAwB;QAC9C5I,YAAY,EAAEA,YAAY,CAAC4L,OAAO;QAClCtL,aAAa;QACbuL,cAAc,EAAE1E,kBAAkB;QAClC2E,YAAY,EAAE/L,gBAAgB,GAAG,KAAK,CAAC,GAAGsH,gBAAgB;QAC1D0E,cAAc,EAAEhM,gBAAgB,GAAG,KAAK,CAAC,GAAGgI,kBAAkB;QAC9DtK,QAAQ,EAAEwK,aAAa,GAAGE,YAAY,GAAG,KAAK,CAAC;QAC/C6D,cAAc,EAAE3F,KAAK,KAAK;MAC5B,CAAC;IACH,CAAC,CAAC,EACF,eAAgB,CAAC,CAAC,EAAElR,kBAAkB,CAACyH,GAAG,EAAEvH,iBAAiB,CAAC4W,UAAU,EAAE;MACxEjC,QAAQ,EAAE,CAAC;MACXC,UAAU,EAAE,CAAC;MACbE,QAAQ,EAAE,CAAC;MACXe,SAAS,EAAE,CAAC;MACZC,iBAAiB,EAAE,IAAI;MACvB7B,MAAM,EAAE,sBAAsB;MAC9BR,QAAQ,EAAEnB;IACZ,CAAC,CAAC,EACFtB,KAAK,GAAG,CAAC,IAAI,CAACP,SAAS,IAAI,eAAgB,CAAC,CAAC,EAAE3Q,kBAAkB,CAACyH,GAAG,EAAEvH,iBAAiB,CAAC0T,MAAM,EAAE;MAC/FoC,iBAAiB,EAAE,IAAI;MACvBe,eAAe,EAAE,IAAI;MACrBpD,QAAQ,EAAE,eAAgB,CAAC,CAAC,EAAE3T,kBAAkB,CAACyH,GAAG,EAAEnH,YAAY,CAAC0W,mBAAmB,EAAE;QACtFC,UAAU,EAAE;UACVC,SAAS,EAAE7F,aAAa;UACxBpC,QAAQ;UACRkI,UAAU,EAAEjG,KAAK;UACjBkG,UAAU,EAAEjG;QACd,CAAC;QACDkG,kBAAkB,EAAE,SAASA,kBAAkBA,CAACrR,IAAI,EAAE;UACpDqJ,OAAO,CAACrJ,IAAI,CAACkR,SAAS,CAAC;UACvBhI,WAAW,CAAClJ,IAAI,CAACiJ,QAAQ,CAAC;QAC5B,CAAC;QACDqI,eAAe,EAAE,CACf,GAAGrW,sBAAsB,CAACyO,iBAAiB,CAC5C;QACDE,IAAI,EAAE;MACR,CAAC;IACH,CAAC,CAAC;EAEN,CAAC,CAAC;EACF,OAAOkG,OAAO;AAChB","ignoreList":[]}
|
|
@@ -23,7 +23,8 @@ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
|
23
23
|
var ReportGrid_exports = {};
|
|
24
24
|
__export(ReportGrid_exports, {
|
|
25
25
|
ReportGrid: () => ReportGrid,
|
|
26
|
-
reportColumnUnit: () => reportColumnUnit
|
|
26
|
+
reportColumnUnit: () => reportColumnUnit,
|
|
27
|
+
stretchColumns: () => stretchColumns
|
|
27
28
|
});
|
|
28
29
|
module.exports = __toCommonJS(ReportGrid_exports);
|
|
29
30
|
var import_components = require("@multiplatform.one/components");
|
|
@@ -51,9 +52,9 @@ function fitColumns(columns, rows, titleFieldname, viewportWidth) {
|
|
|
51
52
|
min: "$10"
|
|
52
53
|
}
|
|
53
54
|
} : import_reportViewModel.REPORT_NUMERIC_FIELDTYPES.has(column.fieldtype) ? {
|
|
54
|
-
width: "$
|
|
55
|
+
width: "$10"
|
|
55
56
|
} : {
|
|
56
|
-
width: "$
|
|
57
|
+
width: "$9"
|
|
57
58
|
})
|
|
58
59
|
})), data, viewportWidth, token => Number((0, import_components.getTokenValue)(token, "size")));
|
|
59
60
|
return columns.map((column, index) => ({
|
|
@@ -61,6 +62,19 @@ function fitColumns(columns, rows, titleFieldname, viewportWidth) {
|
|
|
61
62
|
width: fitted[index]?.width ?? column.width
|
|
62
63
|
}));
|
|
63
64
|
}
|
|
65
|
+
function stretchColumns(columns, fixedWidth, viewportWidth) {
|
|
66
|
+
const natural = columns.reduce((sum, column) => sum + column.width, 0);
|
|
67
|
+
const room = viewportWidth - fixedWidth;
|
|
68
|
+
if (natural <= 0 || room <= natural) return [...columns];
|
|
69
|
+
const scale = room / natural;
|
|
70
|
+
const widths = columns.map(column => Math.floor(column.width * scale));
|
|
71
|
+
const last = widths.length - 1;
|
|
72
|
+
widths[last] = (widths[last] ?? 0) + room - widths.reduce((sum, width) => sum + width, 0);
|
|
73
|
+
return columns.map((column, index) => ({
|
|
74
|
+
...column,
|
|
75
|
+
width: widths[index] ?? column.width
|
|
76
|
+
}));
|
|
77
|
+
}
|
|
64
78
|
const INTERACTIVE_SELECTOR = ["a[href]", "button", "input", "select", "textarea", "label", '[contenteditable="true"]', '[role="button"]', '[role="checkbox"]', '[role="combobox"]', '[role="link"]', '[role="menuitem"]', '[role="option"]', '[role="radio"]', '[role="slider"]', '[role="spinbutton"]', '[role="switch"]', '[role="textbox"]', "[aria-expanded]"].join(", ");
|
|
65
79
|
function isInteractiveInnerTarget(target, boundary) {
|
|
66
80
|
if (typeof Element === "undefined") return false;
|
|
@@ -221,8 +235,8 @@ function ReportGrid({
|
|
|
221
235
|
const compact = (0, import_theme.useLayoutSizeClass)() === "compact";
|
|
222
236
|
const [viewportWidth, setViewportWidth] = (0, import_react2.useState)(0);
|
|
223
237
|
const titleFieldname = titleField ?? columnsIn[0]?.fieldname;
|
|
224
|
-
const columns = compact ? fitColumns(columnsIn, rows, titleFieldname, viewportWidth) : columnsIn;
|
|
225
238
|
const rowNumberWidth = compact ? 0 : ROW_NUMBER_WIDTH;
|
|
239
|
+
const columns = compact ? fitColumns(columnsIn, rows, titleFieldname, viewportWidth) : stretchColumns(columnsIn, rowNumberWidth, viewportWidth);
|
|
226
240
|
const handleSortPress = (0, import_react2.useCallback)(fieldname => {
|
|
227
241
|
if (sort.field === fieldname) {
|
|
228
242
|
onSortChange({
|
|
@@ -36,7 +36,8 @@ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
|
36
36
|
var ReportGrid_exports = {};
|
|
37
37
|
__export(ReportGrid_exports, {
|
|
38
38
|
ReportGrid: () => ReportGrid,
|
|
39
|
-
reportColumnUnit: () => reportColumnUnit
|
|
39
|
+
reportColumnUnit: () => reportColumnUnit,
|
|
40
|
+
stretchColumns: () => stretchColumns
|
|
40
41
|
});
|
|
41
42
|
module.exports = __toCommonJS(ReportGrid_exports);
|
|
42
43
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
@@ -76,9 +77,9 @@ function fitColumns(columns, rows, titleFieldname, viewportWidth) {
|
|
|
76
77
|
min: "$10"
|
|
77
78
|
}
|
|
78
79
|
} : import_reportViewModel.REPORT_NUMERIC_FIELDTYPES.has(column.fieldtype) ? {
|
|
79
|
-
width: "$
|
|
80
|
+
width: "$10"
|
|
80
81
|
} : {
|
|
81
|
-
width: "$
|
|
82
|
+
width: "$9"
|
|
82
83
|
})
|
|
83
84
|
};
|
|
84
85
|
}), data, viewportWidth, function (token) {
|
|
@@ -93,6 +94,29 @@ function fitColumns(columns, rows, titleFieldname, viewportWidth) {
|
|
|
93
94
|
};
|
|
94
95
|
});
|
|
95
96
|
}
|
|
97
|
+
function stretchColumns(columns, fixedWidth, viewportWidth) {
|
|
98
|
+
var _widths_last;
|
|
99
|
+
var natural = columns.reduce(function (sum, column) {
|
|
100
|
+
return sum + column.width;
|
|
101
|
+
}, 0);
|
|
102
|
+
var room = viewportWidth - fixedWidth;
|
|
103
|
+
if (natural <= 0 || room <= natural) return [...columns];
|
|
104
|
+
var scale = room / natural;
|
|
105
|
+
var widths = columns.map(function (column) {
|
|
106
|
+
return Math.floor(column.width * scale);
|
|
107
|
+
});
|
|
108
|
+
var last = widths.length - 1;
|
|
109
|
+
widths[last] = ((_widths_last = widths[last]) !== null && _widths_last !== void 0 ? _widths_last : 0) + room - widths.reduce(function (sum, width) {
|
|
110
|
+
return sum + width;
|
|
111
|
+
}, 0);
|
|
112
|
+
return columns.map(function (column, index) {
|
|
113
|
+
var _widths_index;
|
|
114
|
+
return {
|
|
115
|
+
...column,
|
|
116
|
+
width: (_widths_index = widths[index]) !== null && _widths_index !== void 0 ? _widths_index : column.width
|
|
117
|
+
};
|
|
118
|
+
});
|
|
119
|
+
}
|
|
96
120
|
var INTERACTIVE_SELECTOR = ["a[href]", "button", "input", "select", "textarea", "label", '[contenteditable="true"]', '[role="button"]', '[role="checkbox"]', '[role="combobox"]', '[role="link"]', '[role="menuitem"]', '[role="option"]', '[role="radio"]', '[role="slider"]', '[role="spinbutton"]', '[role="switch"]', '[role="textbox"]', "[aria-expanded]"].join(", ");
|
|
97
121
|
function isInteractiveInnerTarget(target, boundary) {
|
|
98
122
|
if (typeof Element === "undefined") return false;
|
|
@@ -257,8 +281,8 @@ function ReportGrid(param) {
|
|
|
257
281
|
var compact = (0, import_theme.useLayoutSizeClass)() === "compact";
|
|
258
282
|
var [viewportWidth, setViewportWidth] = (0, import_react2.useState)(0);
|
|
259
283
|
var titleFieldname = titleField !== null && titleField !== void 0 ? titleField : (_columnsIn_ = columnsIn[0]) === null || _columnsIn_ === void 0 ? void 0 : _columnsIn_.fieldname;
|
|
260
|
-
var columns = compact ? fitColumns(columnsIn, rows, titleFieldname, viewportWidth) : columnsIn;
|
|
261
284
|
var rowNumberWidth = compact ? 0 : ROW_NUMBER_WIDTH;
|
|
285
|
+
var columns = compact ? fitColumns(columnsIn, rows, titleFieldname, viewportWidth) : stretchColumns(columnsIn, rowNumberWidth, viewportWidth);
|
|
262
286
|
var handleSortPress = (0, import_react2.useCallback)(function (fieldname) {
|
|
263
287
|
if (sort.field === fieldname) {
|
|
264
288
|
onSortChange({
|