@multiplatform.one/backoffice 7.28.1 → 7.29.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/README.md +1 -1
- package/dist/cjs/desk/DeskSurface.native.js.map +1 -1
- package/dist/cjs/form/DocFormScreen.cjs +167 -224
- package/dist/cjs/form/DocFormScreen.native.js +182 -259
- package/dist/cjs/form/DocFormScreen.native.js.map +1 -1
- package/dist/cjs/i18n/en.cjs +1 -0
- package/dist/cjs/i18n/en.native.js +1 -0
- package/dist/cjs/i18n/en.native.js.map +1 -1
- package/dist/cjs/list/ListBulkActionsBar.cjs +30 -18
- package/dist/cjs/list/ListBulkActionsBar.native.js +43 -31
- package/dist/cjs/list/ListBulkActionsBar.native.js.map +1 -1
- package/dist/cjs/list/sidebar-section.cjs +15 -7
- package/dist/cjs/list/sidebar-section.native.js +16 -7
- package/dist/cjs/list/sidebar-section.native.js.map +1 -1
- package/dist/cjs/report/DoctypeReportView.cjs +20 -374
- package/dist/cjs/report/DoctypeReportView.native.js +23 -455
- package/dist/cjs/report/DoctypeReportView.native.js.map +1 -1
- package/dist/cjs/report/QueryReportScreen.cjs +33 -23
- package/dist/cjs/report/QueryReportScreen.native.js +33 -23
- package/dist/cjs/report/QueryReportScreen.native.js.map +1 -1
- package/dist/cjs/report/queryReportColumns.cjs +3 -105
- package/dist/cjs/report/queryReportColumns.native.js +2 -129
- package/dist/cjs/report/queryReportColumns.native.js.map +1 -1
- package/dist/cjs/report/queryReportFilterBar.cjs +3 -4
- package/dist/cjs/report/queryReportFilterBar.native.js +3 -4
- package/dist/cjs/report/queryReportFilterBar.native.js.map +1 -1
- package/dist/cjs/report/queryReportUrlState.cjs +2 -2
- package/dist/cjs/report/queryReportUrlState.native.js +2 -2
- package/dist/cjs/report/queryReportUrlState.native.js.map +1 -1
- package/dist/cjs/report/report-grid.cjs +2 -426
- package/dist/cjs/report/report-grid.native.js +1 -479
- package/dist/cjs/report/report-grid.native.js.map +1 -1
- package/dist/cjs/report/report-toolbar.cjs +2 -228
- package/dist/cjs/report/report-toolbar.native.js +1 -274
- package/dist/cjs/report/report-toolbar.native.js.map +1 -1
- package/dist/cjs/report/reportShapes.cjs +12 -383
- package/dist/cjs/report/reportShapes.native.js +12 -501
- package/dist/cjs/report/reportShapes.native.js.map +1 -1
- package/dist/cjs/report/reportViewModel.cjs +20 -360
- package/dist/cjs/report/reportViewModel.native.js +19 -627
- package/dist/cjs/report/reportViewModel.native.js.map +1 -1
- package/dist/cjs/report/savedReports.cjs +2 -106
- package/dist/cjs/report/savedReports.native.js +1 -132
- package/dist/cjs/report/savedReports.native.js.map +1 -1
- package/dist/cjs/report/useQueryReport.cjs +11 -219
- package/dist/cjs/report/useQueryReport.native.js +11 -244
- package/dist/cjs/report/useQueryReport.native.js.map +1 -1
- package/dist/cjs/shared/measures.cjs +3 -5
- package/dist/cjs/shared/measures.native.js +3 -5
- package/dist/cjs/shared/measures.native.js.map +1 -1
- package/dist/cjs/views/ReportView.cjs +3 -256
- package/dist/cjs/views/ReportView.native.js +3 -382
- package/dist/cjs/views/ReportView.native.js.map +1 -1
- package/dist/cjs/views/report-controls.cjs +6 -6
- package/dist/cjs/views/report-controls.native.js +6 -6
- package/dist/cjs/views/report-controls.native.js.map +1 -1
- package/dist/esm/desk/DeskSurface.mjs.map +1 -1
- package/dist/esm/desk/DeskSurface.native.js.map +1 -1
- package/dist/esm/form/DocFormScreen.mjs +169 -226
- package/dist/esm/form/DocFormScreen.mjs.map +1 -1
- package/dist/esm/form/DocFormScreen.native.js +184 -261
- package/dist/esm/form/DocFormScreen.native.js.map +1 -1
- package/dist/esm/i18n/en.mjs +1 -0
- package/dist/esm/i18n/en.mjs.map +1 -1
- package/dist/esm/i18n/en.native.js +1 -0
- package/dist/esm/i18n/en.native.js.map +1 -1
- package/dist/esm/list/ListBulkActionsBar.mjs +31 -19
- package/dist/esm/list/ListBulkActionsBar.mjs.map +1 -1
- package/dist/esm/list/ListBulkActionsBar.native.js +37 -25
- package/dist/esm/list/ListBulkActionsBar.native.js.map +1 -1
- package/dist/esm/list/sidebar-section.mjs +16 -8
- package/dist/esm/list/sidebar-section.mjs.map +1 -1
- package/dist/esm/list/sidebar-section.native.js +17 -8
- package/dist/esm/list/sidebar-section.native.js.map +1 -1
- package/dist/esm/report/DoctypeReportView.mjs +21 -375
- package/dist/esm/report/DoctypeReportView.mjs.map +1 -1
- package/dist/esm/report/DoctypeReportView.native.js +24 -456
- package/dist/esm/report/DoctypeReportView.native.js.map +1 -1
- package/dist/esm/report/QueryReportScreen.mjs +26 -16
- package/dist/esm/report/QueryReportScreen.mjs.map +1 -1
- package/dist/esm/report/QueryReportScreen.native.js +26 -16
- package/dist/esm/report/QueryReportScreen.native.js.map +1 -1
- package/dist/esm/report/queryReportColumns.mjs +1 -103
- package/dist/esm/report/queryReportColumns.mjs.map +1 -1
- package/dist/esm/report/queryReportColumns.native.js +1 -117
- package/dist/esm/report/queryReportColumns.native.js.map +1 -1
- package/dist/esm/report/queryReportFilterBar.mjs +1 -2
- package/dist/esm/report/queryReportFilterBar.mjs.map +1 -1
- package/dist/esm/report/queryReportFilterBar.native.js +1 -2
- package/dist/esm/report/queryReportFilterBar.native.js.map +1 -1
- package/dist/esm/report/queryReportUrlState.mjs +1 -1
- package/dist/esm/report/queryReportUrlState.native.js +1 -1
- package/dist/esm/report/report-grid.mjs +1 -425
- package/dist/esm/report/report-grid.mjs.map +1 -1
- package/dist/esm/report/report-grid.native.js +1 -468
- package/dist/esm/report/report-grid.native.js.map +1 -1
- package/dist/esm/report/report-toolbar.mjs +2 -228
- package/dist/esm/report/report-toolbar.mjs.map +1 -1
- package/dist/esm/report/report-toolbar.native.js +2 -264
- package/dist/esm/report/report-toolbar.native.js.map +1 -1
- package/dist/esm/report/reportShapes.mjs +2 -373
- package/dist/esm/report/reportShapes.mjs.map +1 -1
- package/dist/esm/report/reportShapes.native.js +2 -491
- package/dist/esm/report/reportShapes.native.js.map +1 -1
- package/dist/esm/report/reportViewModel.mjs +2 -342
- package/dist/esm/report/reportViewModel.mjs.map +1 -1
- package/dist/esm/report/reportViewModel.native.js +2 -610
- package/dist/esm/report/reportViewModel.native.js.map +1 -1
- package/dist/esm/report/savedReports.mjs +1 -105
- package/dist/esm/report/savedReports.mjs.map +1 -1
- package/dist/esm/report/savedReports.native.js +1 -132
- package/dist/esm/report/savedReports.native.js.map +1 -1
- package/dist/esm/report/useQueryReport.mjs +2 -210
- package/dist/esm/report/useQueryReport.mjs.map +1 -1
- package/dist/esm/report/useQueryReport.native.js +2 -235
- package/dist/esm/report/useQueryReport.native.js.map +1 -1
- package/dist/esm/shared/measures.mjs +1 -3
- package/dist/esm/shared/measures.mjs.map +1 -1
- package/dist/esm/shared/measures.native.js +1 -3
- package/dist/esm/shared/measures.native.js.map +1 -1
- package/dist/esm/views/ReportView.mjs +3 -256
- package/dist/esm/views/ReportView.mjs.map +1 -1
- package/dist/esm/views/ReportView.native.js +3 -382
- package/dist/esm/views/ReportView.native.js.map +1 -1
- package/dist/esm/views/report-controls.mjs +3 -3
- package/dist/esm/views/report-controls.mjs.map +1 -1
- package/dist/esm/views/report-controls.native.js +3 -3
- package/dist/esm/views/report-controls.native.js.map +1 -1
- package/dist/jsx/desk/DeskSurface.mjs.map +1 -1
- package/dist/jsx/desk/DeskSurface.native.js.map +1 -1
- package/dist/jsx/form/DocFormScreen.mjs +169 -226
- package/dist/jsx/form/DocFormScreen.mjs.map +1 -1
- package/dist/jsx/form/DocFormScreen.native.js +182 -259
- package/dist/jsx/form/DocFormScreen.native.js.map +1 -1
- package/dist/jsx/i18n/en.mjs +1 -0
- package/dist/jsx/i18n/en.mjs.map +1 -1
- package/dist/jsx/i18n/en.native.js +1 -0
- package/dist/jsx/i18n/en.native.js.map +1 -1
- package/dist/jsx/list/ListBulkActionsBar.mjs +31 -19
- package/dist/jsx/list/ListBulkActionsBar.mjs.map +1 -1
- package/dist/jsx/list/ListBulkActionsBar.native.js +43 -31
- package/dist/jsx/list/ListBulkActionsBar.native.js.map +1 -1
- package/dist/jsx/list/sidebar-section.mjs +16 -8
- package/dist/jsx/list/sidebar-section.mjs.map +1 -1
- package/dist/jsx/list/sidebar-section.native.js +16 -7
- package/dist/jsx/list/sidebar-section.native.js.map +1 -1
- package/dist/jsx/report/DoctypeReportView.mjs +21 -375
- package/dist/jsx/report/DoctypeReportView.mjs.map +1 -1
- package/dist/jsx/report/DoctypeReportView.native.js +23 -455
- package/dist/jsx/report/DoctypeReportView.native.js.map +1 -1
- package/dist/jsx/report/QueryReportScreen.mjs +26 -16
- package/dist/jsx/report/QueryReportScreen.mjs.map +1 -1
- package/dist/jsx/report/QueryReportScreen.native.js +33 -23
- package/dist/jsx/report/QueryReportScreen.native.js.map +1 -1
- package/dist/jsx/report/queryReportColumns.mjs +1 -103
- package/dist/jsx/report/queryReportColumns.mjs.map +1 -1
- package/dist/jsx/report/queryReportColumns.native.js +2 -129
- package/dist/jsx/report/queryReportColumns.native.js.map +1 -1
- package/dist/jsx/report/queryReportFilterBar.mjs +1 -2
- package/dist/jsx/report/queryReportFilterBar.mjs.map +1 -1
- package/dist/jsx/report/queryReportFilterBar.native.js +3 -4
- package/dist/jsx/report/queryReportFilterBar.native.js.map +1 -1
- package/dist/jsx/report/queryReportUrlState.mjs +1 -1
- package/dist/jsx/report/queryReportUrlState.native.js +2 -2
- package/dist/jsx/report/queryReportUrlState.native.js.map +1 -1
- package/dist/jsx/report/report-grid.mjs +1 -425
- package/dist/jsx/report/report-grid.mjs.map +1 -1
- package/dist/jsx/report/report-grid.native.js +1 -479
- package/dist/jsx/report/report-grid.native.js.map +1 -1
- package/dist/jsx/report/report-toolbar.mjs +2 -228
- package/dist/jsx/report/report-toolbar.mjs.map +1 -1
- package/dist/jsx/report/report-toolbar.native.js +1 -274
- package/dist/jsx/report/report-toolbar.native.js.map +1 -1
- package/dist/jsx/report/reportShapes.mjs +2 -373
- package/dist/jsx/report/reportShapes.mjs.map +1 -1
- package/dist/jsx/report/reportShapes.native.js +12 -501
- package/dist/jsx/report/reportShapes.native.js.map +1 -1
- package/dist/jsx/report/reportViewModel.mjs +2 -342
- package/dist/jsx/report/reportViewModel.mjs.map +1 -1
- package/dist/jsx/report/reportViewModel.native.js +19 -627
- package/dist/jsx/report/reportViewModel.native.js.map +1 -1
- package/dist/jsx/report/savedReports.mjs +1 -105
- package/dist/jsx/report/savedReports.mjs.map +1 -1
- package/dist/jsx/report/savedReports.native.js +1 -132
- package/dist/jsx/report/savedReports.native.js.map +1 -1
- package/dist/jsx/report/useQueryReport.mjs +2 -210
- package/dist/jsx/report/useQueryReport.mjs.map +1 -1
- package/dist/jsx/report/useQueryReport.native.js +11 -244
- package/dist/jsx/report/useQueryReport.native.js.map +1 -1
- package/dist/jsx/shared/measures.mjs +1 -3
- package/dist/jsx/shared/measures.mjs.map +1 -1
- package/dist/jsx/shared/measures.native.js +3 -5
- package/dist/jsx/shared/measures.native.js.map +1 -1
- package/dist/jsx/views/ReportView.mjs +3 -256
- package/dist/jsx/views/ReportView.mjs.map +1 -1
- package/dist/jsx/views/ReportView.native.js +3 -382
- package/dist/jsx/views/ReportView.native.js.map +1 -1
- package/dist/jsx/views/report-controls.mjs +3 -3
- package/dist/jsx/views/report-controls.mjs.map +1 -1
- package/dist/jsx/views/report-controls.native.js +6 -6
- package/dist/jsx/views/report-controls.native.js.map +1 -1
- package/package.json +12 -12
- package/src/backofficeScreens.designLaw.spec.ts +0 -5
- package/src/desk/DeskSurface.tsx +4 -7
- package/src/form/DocFormScreen.chrome.spec.ts +77 -0
- package/src/form/DocFormScreen.guest.screen.spec.tsx +175 -0
- package/src/form/DocFormScreen.rights.spec.tsx +7 -3
- package/src/form/DocFormScreen.tsx +214 -315
- package/src/i18n/en.ts +1 -0
- package/src/list/ListBulkActionsBar.rights.spec.tsx +134 -0
- package/src/list/ListBulkActionsBar.screen.spec.tsx +7 -1
- package/src/list/ListBulkActionsBar.tsx +76 -57
- package/src/list/ListFilterBar.screen.spec.tsx +14 -13
- package/src/list/sidebar-section.tsx +11 -3
- package/src/report/DoctypeReportView.tsx +28 -550
- package/src/report/QueryReportScreen.spec.tsx +75 -1
- package/src/report/QueryReportScreen.tsx +38 -22
- package/src/report/queryReportColumns.tsx +4 -123
- package/src/report/queryReportFilterBar.tsx +3 -5
- package/src/report/queryReportUrlState.ts +1 -1
- package/src/report/report-grid.tsx +4 -529
- package/src/report/report-toolbar.tsx +4 -308
- package/src/report/reportShapes.ts +25 -613
- package/src/report/reportShim.spec.ts +162 -0
- package/src/report/reportViewModel.ts +32 -605
- package/src/report/savedReports.ts +4 -161
- package/src/report/useQueryReport.ts +9 -347
- package/src/shared/measures.ts +3 -11
- package/src/views/ReportView.screen.spec.tsx +25 -20
- package/src/views/ReportView.tsx +7 -439
- package/src/views/report-controls.tsx +12 -20
- package/types/desk/DeskSurface.d.ts.map +1 -1
- package/types/form/DocFormScreen.d.ts +2 -2
- package/types/form/DocFormScreen.d.ts.map +1 -1
- package/types/i18n/en.d.ts +1 -0
- package/types/i18n/en.d.ts.map +1 -1
- package/types/list/ListBulkActionsBar.d.ts.map +1 -1
- package/types/list/sidebar-section.d.ts.map +1 -1
- package/types/report/DoctypeReportView.d.ts.map +1 -1
- package/types/report/QueryReportScreen.d.ts +1 -1
- package/types/report/QueryReportScreen.d.ts.map +1 -1
- package/types/report/queryReportColumns.d.ts +2 -11
- package/types/report/queryReportColumns.d.ts.map +1 -1
- package/types/report/queryReportFilterBar.d.ts +1 -1
- package/types/report/queryReportFilterBar.d.ts.map +1 -1
- package/types/report/queryReportUrlState.d.ts +1 -1
- package/types/report/queryReportUrlState.d.ts.map +1 -1
- package/types/report/report-grid.d.ts +2 -19
- package/types/report/report-grid.d.ts.map +1 -1
- package/types/report/report-toolbar.d.ts +2 -29
- package/types/report/report-toolbar.d.ts.map +1 -1
- package/types/report/reportShapes.d.ts +2 -115
- package/types/report/reportShapes.d.ts.map +1 -1
- package/types/report/reportViewModel.d.ts +2 -135
- package/types/report/reportViewModel.d.ts.map +1 -1
- package/types/report/savedReports.d.ts +2 -18
- package/types/report/savedReports.d.ts.map +1 -1
- package/types/report/useQueryReport.d.ts +2 -35
- package/types/report/useQueryReport.d.ts.map +1 -1
- package/types/shared/measures.d.ts +1 -2
- package/types/shared/measures.d.ts.map +1 -1
- package/types/views/ReportView.d.ts +3 -22
- package/types/views/ReportView.d.ts.map +1 -1
- package/types/views/report-controls.d.ts +2 -5
- package/types/views/report-controls.d.ts.map +1 -1
- package/src/report/report-grid.spec.tsx +0 -175
- package/src/report/report-toolbar.spec.tsx +0 -90
- package/src/report/reportShapes.spec.ts +0 -391
- package/src/report/reportViewModel.spec.ts +0 -393
|
@@ -39,7 +39,6 @@ var import_react2 = require("react");
|
|
|
39
39
|
var import_react_i18next = require("react-i18next");
|
|
40
40
|
var import_i18n = require("../i18n/index.native.js");
|
|
41
41
|
var import_frappe_ui = require("@multiplatform.one/frappe-ui");
|
|
42
|
-
var import_reportShapes = require("./reportShapes.native.js");
|
|
43
42
|
function queryReportFilterLabel(filter) {
|
|
44
43
|
return filter.label || (0, import_frappe_ui.fieldLabelFor)([], filter.fieldname);
|
|
45
44
|
}
|
|
@@ -163,7 +162,7 @@ function ReportFilterControl(param) {
|
|
|
163
162
|
});
|
|
164
163
|
default:
|
|
165
164
|
{
|
|
166
|
-
var showClear = !disabled && !(0,
|
|
165
|
+
var showClear = !disabled && !(0, import_frappe_ui.isEmptyFilterValue)(value);
|
|
167
166
|
var clearName = t("queryReport.clearFilter", {
|
|
168
167
|
label,
|
|
169
168
|
defaultValue: `Clear ${label}`
|
|
@@ -236,7 +235,7 @@ function QueryReportFilterBar(param) {
|
|
|
236
235
|
setDraft(next);
|
|
237
236
|
}, [filterMeta, filters]);
|
|
238
237
|
var applyValues = (0, import_react2.useCallback)(function (values) {
|
|
239
|
-
onApply((0,
|
|
238
|
+
onApply((0, import_frappe_ui.compactQueryReportFilters)(filterMeta, values));
|
|
240
239
|
}, [filterMeta, onApply]);
|
|
241
240
|
var setFieldValue = (0, import_react2.useCallback)(function (fieldname, value, commit) {
|
|
242
241
|
var next = {
|
|
@@ -254,7 +253,7 @@ function QueryReportFilterBar(param) {
|
|
|
254
253
|
return filter.hidden !== 1;
|
|
255
254
|
});
|
|
256
255
|
var hasVisibleValue = visible.some(function (filter) {
|
|
257
|
-
return !(0,
|
|
256
|
+
return !(0, import_frappe_ui.isEmptyFilterValue)(draft[filter.fieldname]);
|
|
258
257
|
});
|
|
259
258
|
var clearAll = (0, import_react2.useCallback)(function () {
|
|
260
259
|
var next = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","queryReportFilterBar_exports","__export","QueryReportFilterBar","queryReportFilterAppliesOnChange","queryReportFilterLabel","queryReportSelectOptions","module","exports","import_jsx_runtime","require","import_components","import_forms","import_theme","import_react","import_react2","import_react_i18next","import_i18n","import_frappe_ui","
|
|
1
|
+
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","queryReportFilterBar_exports","__export","QueryReportFilterBar","queryReportFilterAppliesOnChange","queryReportFilterLabel","queryReportSelectOptions","module","exports","import_jsx_runtime","require","import_components","import_forms","import_theme","import_react","import_react2","import_react_i18next","import_i18n","import_frappe_ui","filter","label","fieldLabelFor","fieldname","kind","fieldKind","fieldtype","options","allLabel","choices","selectOptionsFromField","some","choice","draftFromFilters","filterMeta","filters","draft","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Symbol","iterator","_step","next","done","err","return","ReportFilterControl","param","onValueChange","onCommit","disabled","t","useTranslation","BACKOFFICE_I18N_NAMESPACE","required","mandatory","text","String","jsx","Input","compact","inputProps","Select","onChange","placeholder","_filter_options","Link","doctype","Date","type","Checkbox","checked","onCheckedChange","showClear","isEmptyFilterValue","clearName","defaultValue","onChangeText","rightIconInteractive","rightIcon","View","role","tabIndex","padding","cursor","hoverStyle","backgroundColor","onPress","children","XIcon","size","onBlur","onKeyDown","event","key","_event_preventDefault","preventDefault","call","keyboardType","onApply","knobProps","useResolvedKnobs","setDraft","useState","draftRef","useRef","current","useEffect","applyValues","useCallback","values","compactQueryReportFilters","setFieldValue","commit","apply","visible","hidden","hasVisibleValue","clearAll"],"sources":["../../../src/report/queryReportFilterBar.tsx"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;EAAAC,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAI,4BAAA;AAAAC,QAAA,CAAAD,4BAAA;EAAAE,oBAAA,EAAAA,CAAA,KAAAA,oBAAA;EAAAC,gCAAA,EAAAA,CAAA,KAAAA,gCAAA;EAAAC,sBAAA,EAAAA,CAAA,KAAAA,sBAAA;EAAAC,wBAAA,EAAAA,CAAA,KAAAA;AAAA;AAmBAC,MAAA,CAAAC,OAAA,GAAAZ,YAA4C,CAAAK,4BAAA;AAC5C,IAAAQ,kBAAwD,GAAAC,OAAA;AACxD,IAAAC,iBAAmD,GAAAD,OAAA;AACnD,IAAAE,YAAA,GAAsBF,OAAA;AACtB,IAAAG,YAAA,GAAAH,OAAyD;AACzD,IAAAI,YAAA,GAAAJ,OAAA,CAA+B;AAC/B,IAAAK,aAAA,GAA0CL,OAAA;AAC1C,IAAAM,oBAUO,GAAAN,OAAA;AA6DD,IAAAO,WAAA,GAAAP,OAAA;AA3DC,IAAAQ,gBAAS,GAAAR,OAAA,+BAA8D;AAC5E,SAAOL,sBAAgBA,CAAAc,MAAA;EACzB,OAAAA,MAAA,CAAAC,KAAA,QAAAF,gBAAA,CAAAG,aAAA,MAAAF,MAAA,CAAAG,SAAA;AAGO;AACL,SAAMlB,gCAAOA,CAAAe,MAAU;EACvB,IAAAI,IAAO,OAAAL,gBAAqB,CAAAM,SAAS,EAAAL,MAAU,CAAAM,SAAS,UAAU;EACpE,OAAAF,IAAA,iBAAAA,IAAA,eAAAA,IAAA,eAAAA,IAAA;AAGO;AAIL,SAAMjB,wBAAUA,CAAAoB,OAAA,EAAAC,QAAA;EAChB,IAAIC,OAAA,GAAQ,IAAMV,gBAAW,CAAAW,sBAAsB,EAAOH,OAAA;EAC1D,IAAAE,OAAU,CAAAE,IAAA,CAAO,UAAAC,MAAU,EAAO;IACpC,OAAAA,MAAA,CAAA/B,KAAA;EAEA,WAAS4B,OAAA;EAIP,OAAM,CACN;IAGER,KAAM,EAAAO,QAAQ;IACd3B,KAAM;EACR,GACA,GAAA4B,OAAO,CACT;AAEA;AAA6B,SAC3BI,iBAAAC,UAAA,EAAAC,OAAA;EACA,IAAAC,KAAA;EACA,IAAAC,yBAAA;IAAAC,iBAAA;IAAAC,cAAA;EACA;IACA,SAAAC,SAAA,GAAAN,UAAA,CAAAO,MAAA,CAAAC,QAAA,KAAAC,KAAA,IAAAN,yBAAA,IAAAM,KAAA,GAAAH,SAAA,CAAAI,IAAA,IAAAC,IAAA,GAAAR,yBAAA;MAOC,IAAAjB,MAAA,GAAAuB,KAAA,CAAA1C,KAAA;MACD,IAAQA,KAAE,GAAAkC,OAAI,CAAAf,MAAA,CAAAG,SAAA;MACda,KAAM,CAAAhB,MAAQ,CAAAG,SAAA,IAAAtB,KAAA,KAAuB,KAAM,KAAAA,KAAA,iBAAAA,KAAA;IAC3C;EACA,SAAM6C,GAAA;IACNR,iBAAa;IACbC,cAAa,GAAAO,GAAA;EAKb,UAAI;IACF;MACG,KAAAT,yBAAA,IAAAG,SAAA,CAAAO,MAAA;QAAAP,SAAA,CAAAO,MAAA;MAAA;IACC,UACA;MAAA,IACAT,iBAAQ;QACR,MAAAC,cAAO;MAAA;IACA;EAC2B;EAAA,OACpCH,KAAA;AAAA;AAIJ,SAAAY,mBAAcA,CAAAC,KAAA;EAAA,IACZ;IAAA7B,MAAK;IAAAnB,KAAA;IAAAiD,aAAA;IAAAC,QAAA;IAAAC;EAAA,IAAAH,KAAA;EACH;IAAAI;EAAA,IACE,IAAApC,oBAAA,CAAAqC,cAAA,EAAApC,WAAA,CAAAqC,yBAAA;EAAA,IAAAlC,KAAC,GAAAf,sBAAA,CAAAc,MAAA;EAAA,IAAAoC,QAAA,GAAApC,MAAA,CAAAqC,SAAA;EAAA,IAAA/B,SACC,GAAAN,MAAA,CAAAM,SAAA;EAAA,IAAAF,IACA,OAAAL,gBAAA,CAAAM,SAAA,EAAAC,SAAA;EAAA,IAAAgC,IACA,GAAAzD,KAAO,eAAAA,KAAA,iBAAA0D,MAAA,CAAA1D,KAAA;EAAA,IAAAmD,QACP,KAAA5B,IAAA,iBAAAA,IAAA,eAAAA,IAAA;IAAA,OACA,eAAW,IAASd,kBAAA,CAAAkD,GAAA,EAAA/C,YAAA,CAAAgD,KAAA;MAClBxC,KAAA;MAAgDmC,QAClD;MAAAJ,QACA,MAAS;MAA0EnD,KACnF,EAAAyD,IAAA;MAAqDI,OACrD,MAAO;MAAAC,UAAA;QACT,cAAA1C;MAEJ;IACE;EACE;EAAC,QAAAG,IAAA;IAAA,aACC;MAAA,OACA,mBAAAd,kBAAA,CAAAkD,GAAA,EAAA/C,YAAA,CAAAmD,MAAA;QAAA3C,KACA;QAAOmC,QACP;QAAAvD,KACA,EAAAyD,IAAA;QAAsCN,QACtC;QAA2Ba,QAC3B,WAAaA,SAAArB,IAAA;UACb,WAAOA,IAAA,eAAAM,aAAA,CAAAN,IAAA;QAAA;QACTjB,OAAA,EAAApB,wBAAA,CAAAa,MAAA,CAAAO,OAAA,EAAA0B,CAAA;QAEJa,WAAK,EAAAb,CAAA;QACHS,OACE;MAAA,EAAC;IAAA;MAAA,IACCK,eAAA;MAAA,OACA,mBAAAzD,kBAAA,CAAAkD,GAAA,EAAAzC,gBAAA,CAAAiD,IAAA;QAAA/C,KACA;QAAOmC,QACP;QAAAvD,KACA,EAAAyD,IAAA;QAA8CN,QACxC;QAAwEa,QAC9E,WAAOA,SAAArB,IAAA;UAAA,OAAAM,aAAA,CAAAN,IAAA;QACT;QAEJyB,OAAK,GAAAF,eAAA,GAAA/C,MAAA,CAAAO,OAAA,cAAAwC,eAAA,cAAAA,eAAA;QACHD,WACE,EAAA7C,KAAA;QAACyC,OAAA;MAAA;IAAA,WACC;MAAA,OACA,mBAAApD,kBAAA,CAAAkD,GAAA,EAAAzC,gBAAA,CAAAmD,IAAA;QAAAjD,KACA;QAAmDmC,QACnD;QAAqEvD,KAAA,EAAAyD,IAAA;QACvEN,QAAA;QAEJa,QAAS,WAAAA,SAAArB,IAAA;UACP,OAAMM,aAAa,CAAAN,IAAA;QACnB;QACE2B,IAAA,EAAA7C,SAAA,+BAAAA,SAAA;QACAoC,OAAA;MACF,CAAC;IACD,YACE;MAAA,OAAC,mBAAApD,kBAAA,CAAAkD,GAAA,EAAA/C,YAAA,CAAA2D,QAAA;QAAAnD,KAAA;QAAA+B,QACC;QAAAqB,OACA,EAAAxE,KAAA,UAAAA,KAAA,YAAAA,KAAA;QAAAyE,eACA,WAAAA,gBAAAD,OAAA;UACA,OAAOvB,aAAA,CAAAuB,OAAA;QAAA;MACmC;IACnC;MACP;QAAsB,IACtBE,SAAA,GACE,CAAAvB,QAAA,IACE,KAAAjC,gBAAA,CAAAyD,kBAAA,EAAA3E,KAAA;QAAA,IAAA4E,SAAC,GAAAxB,CAAA;UAAAhC,KAAA;UAAAyD,YACM,WAAAzD,KAAA;QAAA;QACK,sBACF,IAAAX,kBAAA,CAAAkD,GAAA,EAAA/C,YAAA,CAAAgD,KAAA;UAAAxC,KAAA;UACDmC,QACP;UAAyCJ,QACzC;UACEnD,KAAA,EAAAyD,IAAA;UACAqB,YAAA,WAASA,aAAAnC,IAAA;YAAA,OACXM,aAAA,CAAAN,IAAA;UAAA;UACYkB,OACZ;UAAmDkB,oBAEnD,EAAAL,SAAA;UAAiBM,SAAA,EAAAN,SAAA,sBAAAjE,kBAAA,CAAAkD,GAAA,EAAAhD,iBAAA,CAAAsE,IAAA;YACnBC,IACE;YAENC,QAAA,IAAY;YAAAC,OACV,MAAQ;YAAAC,MACR,WAAY;YACVC,UAAI;cACFC,eAAM;YACN;YAASC,OACX,WAAAA,QAAA;cACFvC,aAAA;cACFC,QAAA;YACC;YAAgE,cAAA0B,SAAA;YACnE,qCAAAzD,MAAA,CAAAG,SAAA;YAEJmE,QAAA,qBAAAhF,kBAAA,CAAAkD,GAAA,EAAA7C,YAAA,CAAA4E,KAAA;cACFC,IAAA;YACF;UAcO,CAAS;UACR7B,UAAI,EAAI;YACN8B,MAAA,EAAA1C,QAAU;YACX2C,SAAO,WAAQA,SAAIA,CAAAC,KAAA;cACxB,IAAAA,KAAA,CAAAC,GAAA,KAAiB,SAAY;gBAC/B,IAAAC,qBAAA;gBACM,CAAAA,qBAAW,GAAAF,KAAA,CAAOG,cAAK,cAAAD,qBAAA,uBAAAA,qBAAA,CAAAE,IAAA,CAAAJ,KAAA;gBACpB5C,QAAU;cAEnB;YACQ;UACN;UACA,IAAA3B,IAAS,KAAI;YACX4E,YAAY;UAEV;QACH;MACC;EAAqD;AACvD;AACoB,SACtBhG,qBAAA6C,KAAA;EAEA;IAAMf,UAAA;IAAAC,OAAA;IAAgBkE;EAAA,IAAApD,KAAA;EAAA,IACnB;IAAAI;EAAA,MAAmB,EAAApC,oBAAoC,CAAAqC,cAAA,EAAApC,WAAA,CAAAqC,yBAAA;EACtD;IAAA+C;EAAM,CAAO,GAAE,EAAG,EAAAxF,YAAS,CAAAyF,gBAAsB;EACjD,KAAAnE,KAAA,EAAAoE,QAAS,IAAU,IAAAxF,aAAA,CAAAyF,QAAA;IACnB,OAAAxE,gBAAa,CAAAC,UAAA,EAAAC,OAAA;EACb;EAA4B,IAC9BuE,QAAA,OAAA1F,aAAA,CAAA2F,MAAA,EAAAvE,KAAA;EAAAsE,QACC,CAAAE,OAAW,GAAAxE,KAAA;EACd,IAAApB,aAAA,CAAA6F,SAAA;IAEA,IAAMjE,IAAA,GAAAX,gBAAQ,CAAAC,UAAA,EAAAC,OAAY;IACxBuE,QAAA,CAAAE,OAAY,GAAAhE,IAAS;IACvB4D,QAAI,CAAA5D,IAAW,CAAC;EAEhB,IACAV,UAAM,EAENC,OAAM,CACJ;EACA,IAAA2E,WAAW,OAAA9F,aAAmB,CAAA+F,WAAY,YAAaC,MAAA;IACvDX,OAAA,EAAS,GAAAlF,gBAAU,CAAA8F,yBAAA,EAAA/E,UAAA,EAAA8E,MAAA;EACnB,IACA9E,UAAA,EACFmE,OAAI,CAEJ;EACE,IAACa,aAAA,OAAAlG,aAAA,CAAA+F,WAAA,YAAAxF,SAAA,EAAAtB,KAAA,EAAAkH,MAAA;IAAA,IAAAvE,IAAA;MACC,GAAA8D,QAAK,CAAAE,OAAA;MACL,CAAArF,SAAA,GAAAtB;IAA8C;IAClCyG,QACZ,CAAAE,OAAS,GAAAhE,IAAA;IAAA4D,QACT,CAAA5D,IAAA,CAAW;IAAA,IACXuE,MAAA,EAASL,WAAA,CAAAlE,IAAA;EAAA,IACKkE,WACV,CAAU;EACE,IAChBM,KAAA,OAAApG,aAAgB,CAAA+F,WAAA;IAAAD,WAChB,CAAAJ,QAAA,CAAmBE,OAAA;EAAA,IACPE,WACP,CAAgF;EAEpF,IAAAO,OAAA,GAAQnF,UAAK,CAAAd,MAAW,WAAAA,MAAA;IACvB,OAAAA,MAAM,CAAAkG,MAAQ,MAAM;EACpB;EACA,IAAAC,eACE,GAAAF,OAAA,CAAAtF,IAAA,WAAAX,MAAA;IAAA,QAAC,IAAAD,gBAAA,CAAAyD,kBAAA,EAAAxC,KAAA,CAAAhB,MAAA,CAAAG,SAAA;EAAA;EAAA,IAAAiG,QAEC,OAAAxG,aAAU,CAAA+F,WAAA;IAAA,IAAAnE,IAAA;MACR,GAAA8D,QACA,CAAAE;IAAA;IACF,IAAAvE,yBACU;MAAAC,iBAAA;MAAAC,cAAA;IAAA;MACR,SAAAC,SACA,GAAA6E,OAAA,CAAA5E,MAAA,CAAAC,QAAA,KAAAC,KAAA,IAAAN,yBAAA,IAAAM,KAAA,GAAAH,SAAA,CAAAI,IAAA,IAAAC,IAAA,GAAAR,yBAAA;QAAA,IAAAjB,MACF,GAAAuB,KAAA,CAAA1C,KAAA;QAAA2C,IAAA,CAAAxB,MACA,CAAMG,SAAA;MAAA;IACG,SAAAuB,GACT;MAAiCR,iBAEjC;MAAAC,cAAC,GAAAO,GAAA;IAAA;MAAA;QACC,KAAAT,yBACA,IAAAG,SAAA,CAAAO,MAAA;UAAAP,SACA,CAAAO,MAAA,EAAU;QAAA;MAEsE;QAEtE,IAAAT,iBAAA;UAAA,MACZC,cAAA;QAAA;MAAA;IArBY;IAsBdmE,QAEH,CAAAE,OAAA,GAAAhE,IAAA;IAAA4D,QACA,CAAA5D,IAAA;IAIGkE,WACJ,CAAAlE,IAAA;EAEA,IAAAyE,OAAA,EACFP,WAAA,CAEJ","ignoreList":[]}
|
|
@@ -26,7 +26,7 @@ __export(queryReportUrlState_exports, {
|
|
|
26
26
|
serializeQueryReportFiltersParam: () => serializeQueryReportFiltersParam
|
|
27
27
|
});
|
|
28
28
|
module.exports = __toCommonJS(queryReportUrlState_exports);
|
|
29
|
-
var
|
|
29
|
+
var import_frappe_ui = require("@multiplatform.one/frappe-ui");
|
|
30
30
|
function parseQueryReportFiltersParam(raw) {
|
|
31
31
|
const value = typeof raw === "string" ? raw : Array.isArray(raw) ? raw[0] : void 0;
|
|
32
32
|
if (!value) return {};
|
|
@@ -49,7 +49,7 @@ function parseQueryReportFiltersParam(raw) {
|
|
|
49
49
|
return {};
|
|
50
50
|
}
|
|
51
51
|
function serializeQueryReportFiltersParam(filters) {
|
|
52
|
-
const entries = Object.entries(filters).filter(([, value]) => !(0,
|
|
52
|
+
const entries = Object.entries(filters).filter(([, value]) => !(0, import_frappe_ui.isEmptyFilterValue)(value) && (typeof value === "string" || typeof value === "number" || typeof value === "boolean")).sort(([a], [b]) => a < b ? -1 : a > b ? 1 : 0);
|
|
53
53
|
if (entries.length === 0) return void 0;
|
|
54
54
|
return JSON.stringify(Object.fromEntries(entries));
|
|
55
55
|
}
|
|
@@ -28,7 +28,7 @@ __export(queryReportUrlState_exports, {
|
|
|
28
28
|
serializeQueryReportFiltersParam: () => serializeQueryReportFiltersParam
|
|
29
29
|
});
|
|
30
30
|
module.exports = __toCommonJS(queryReportUrlState_exports);
|
|
31
|
-
var
|
|
31
|
+
var import_frappe_ui = require("@multiplatform.one/frappe-ui");
|
|
32
32
|
function _type_of(obj) {
|
|
33
33
|
"@swc/helpers - typeof";
|
|
34
34
|
|
|
@@ -96,7 +96,7 @@ function parseQueryReportFiltersParam(raw) {
|
|
|
96
96
|
function serializeQueryReportFiltersParam(filters) {
|
|
97
97
|
var entries = Object.entries(filters).filter(function (param) {
|
|
98
98
|
var [, value] = param;
|
|
99
|
-
return !(0,
|
|
99
|
+
return !(0, import_frappe_ui.isEmptyFilterValue)(value) && (typeof value === "string" || typeof value === "number" || typeof value === "boolean");
|
|
100
100
|
}).sort(function (param, param1) {
|
|
101
101
|
var [a] = param,
|
|
102
102
|
[b] = param1;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","queryReportUrlState_exports","__export","parseQueryReportFiltersParam","serializeQueryReportFiltersParam","module","exports","
|
|
1
|
+
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","queryReportUrlState_exports","__export","parseQueryReportFiltersParam","serializeQueryReportFiltersParam","module","exports","import_frappe_ui","require","_type_of","obj","Symbol","constructor","raw","Array","isArray","candidates","decoded","decodeURIComponent","push","unused","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","iterator","_step","next","done","candidate","parsed","JSON","parse","filters","_iteratorNormalCompletion1","_didIteratorError1","_iteratorError1","_iterator1","Object","entries","_step1","fieldname","entry","err"],"sources":["../../../src/report/queryReportUrlState.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;EAAAC,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAI,2BAAA;AAAAC,QAAA,CAAAD,2BAAA;EAAAE,4BAAA,EAAAA,CAAA,KAAAA,4BAAA;EAAAC,gCAAA,EAAAA,CAAA,KAAAA;AAAA;AAcAC,MAAA,CAAAC,OAAA,GAAAV,YAA4D,CAAAK,2BAAA;AAQrD,IAAAM,gBAAS,GAAAC,OAAA,+BAEM;AACpB,SAAMC,QAAQA,CAAAC,GAAA,EAAO;EACrB,uBAAoB;;EACpB,OAAMA,GAAA,WAAcC,MAAK,oBAAAD,GAAA,CAAAE,WAAA,KAAAD,MAAA,qBAAAD,GAAA;AACzB;AACE,SAAAP,4BAAgBA,CAAAU,GAAmB;EACnC,IAAAb,KAAI,UAAYa,GAAA,KAAO,WAAWA,GAAK,GAAAC,KAAO,CAAAC,OAAA,CAAAF,GAAA,IAAAA,GAAA;EAChD,KAAAb,KAAQ;EAER,IAAAgB,UAAA,IACAhB,KAAA,CACE;EACE;IACA,IAAAiB,OAAK,GAAAC,kBAAiB,CAAAlB,KAAW;IACjC,IAAAiB,OAAM,KAAAjB,KAA+B,EAAAgB,UAAA,CAAAG,IAAA,CAAAF,OAAA;EACrC,SAAAG,MAAW,EAAC,CACV;EAAoE,IAAAC,yBACpD,GAAU;IAAAC,iBAAmB,QAAU;IAAAC,cAAA;EACrD;IAAqB,KACzB,IAAAC,SAAA,GAAAR,UAAA,CAAAL,MAAA,CAAAc,QAAA,KAAAC,KAAA,IAAAL,yBAAA,IAAAK,KAAA,GAAAF,SAAA,CAAAG,IAAA,IAAAC,IAAA,GAAAP,yBAAA;MACA,IAAIQ,SAAO,GAAKH,KAAA,CAAA1B,KAAS;MAC3B;QAEA,IAAA8B,MAAA,GAAAC,IAAA,CAAAC,KAAA,CAAAH,SAAA;QACF,KAAAC,MAAA,YAAAA,MAAA,iCAAArB,QAAA,CAAAqB,MAAA,mBAAAhB,KAAA,CAAAC,OAAA,CAAAe,MAAA;QACA,IAAQG,OAAA;QACV,IAAAC,0BAAA;UAAAC,kBAAA;UAAAC,eAAA;QAOO,IAAS;UACR,SAAUC,UAAO,GAAAC,MAAQ,CAAAC,OAC5B,CAAAT,MAAA,EAAAnB,MAAA,CAAAc,QAAA,KAAAe,MAAA,IAAAN,0BAAA,IAAAM,MAAA,GAAAH,UAAA,CAAAV,IAAA,IAAAC,IAAA,GAAAM,0BAAA;YACK,IAAK,CAAAO,SACN,EAAAC,KAAA,IAAAF,MAAA,CAAAxC,KAAA;YAGI,IAAI,OAAQ0C,KAAI,KAAI,QAAS,IAAIA,KAAM,SAAAT,OAAA,CAAAQ,SAAA,IAAAC,KAAA,MACtC,WAAcA,KAAA,KAAO,mBAAAA,KAAA,gBAAAT,OAAA,CAAAQ,SAAA,IAAAC,KAAA;UAC1B;QACT,SAAAC,GAAA","ignoreList":[]}
|
|
@@ -22,431 +22,7 @@ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
|
22
22
|
}), mod);
|
|
23
23
|
var report_grid_exports = {};
|
|
24
24
|
__export(report_grid_exports, {
|
|
25
|
-
ReportGrid: () => ReportGrid
|
|
25
|
+
ReportGrid: () => import_frappe_ui.ReportGrid
|
|
26
26
|
});
|
|
27
27
|
module.exports = __toCommonJS(report_grid_exports);
|
|
28
|
-
var
|
|
29
|
-
var import_forms = require("@multiplatform.one/forms");
|
|
30
|
-
var import_table = require("@multiplatform.one/table");
|
|
31
|
-
var import_theme = require("@multiplatform.one/theme");
|
|
32
|
-
var import_react = require("@phosphor-icons/react");
|
|
33
|
-
var import_react2 = require("react");
|
|
34
|
-
var import_react_i18next = require("react-i18next");
|
|
35
|
-
var import_i18n = require("../i18n/index.cjs");
|
|
36
|
-
var import_frappe_ui = require("@multiplatform.one/frappe-ui");
|
|
37
|
-
var import_reportViewModel = require("./reportViewModel.cjs");
|
|
38
|
-
var import_jsx_runtime = require("react/jsx-runtime");
|
|
39
|
-
const ROW_NUMBER_WIDTH = 56;
|
|
40
|
-
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(", ");
|
|
41
|
-
function isInteractiveInnerTarget(target, boundary) {
|
|
42
|
-
if (typeof Element === "undefined") return false;
|
|
43
|
-
if (!(target instanceof Element)) return false;
|
|
44
|
-
const boundaryEl = boundary instanceof Element ? boundary : null;
|
|
45
|
-
let node = target;
|
|
46
|
-
while (node && node !== boundaryEl) {
|
|
47
|
-
if (node.matches(INTERACTIVE_SELECTOR)) return true;
|
|
48
|
-
const tabIndex = node.getAttribute("tabindex");
|
|
49
|
-
if (tabIndex != null && Number(tabIndex) >= 0) return true;
|
|
50
|
-
node = node.parentElement;
|
|
51
|
-
}
|
|
52
|
-
return false;
|
|
53
|
-
}
|
|
54
|
-
function alignToJustify(align) {
|
|
55
|
-
return align === "right" ? "flex-end" : align === "center" ? "center" : "flex-start";
|
|
56
|
-
}
|
|
57
|
-
function formatNumericCell(value, fieldtype) {
|
|
58
|
-
switch (fieldtype) {
|
|
59
|
-
case "Currency":
|
|
60
|
-
return (0, import_theme.formatCurrency)(value);
|
|
61
|
-
case "Int":
|
|
62
|
-
return (0, import_theme.formatNumber)(Math.round(value), {
|
|
63
|
-
maximumFractionDigits: 0
|
|
64
|
-
});
|
|
65
|
-
case "Percent":
|
|
66
|
-
return (0, import_theme.formatPercent)(value, {
|
|
67
|
-
precision: 1
|
|
68
|
-
});
|
|
69
|
-
default:
|
|
70
|
-
return (0, import_theme.formatNumber)(value);
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
function ReportCellValue({
|
|
74
|
-
column,
|
|
75
|
-
row,
|
|
76
|
-
onOpenLink
|
|
77
|
-
}) {
|
|
78
|
-
const raw = row[column.fieldname];
|
|
79
|
-
if (raw === null || raw === void 0 || raw === "") {
|
|
80
|
-
return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.Text, {
|
|
81
|
-
fontSize: "$3",
|
|
82
|
-
color: "$color8",
|
|
83
|
-
children: "\u2014"
|
|
84
|
-
});
|
|
85
|
-
}
|
|
86
|
-
if (column.fieldtype === "Check") {
|
|
87
|
-
return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.Text, {
|
|
88
|
-
fontSize: "$3",
|
|
89
|
-
color: raw ? "$green11" : "$color8",
|
|
90
|
-
children: raw ? "\u2713" : "\u2014"
|
|
91
|
-
});
|
|
92
|
-
}
|
|
93
|
-
if (import_reportViewModel.REPORT_NUMERIC_FIELDTYPES.has(column.fieldtype)) {
|
|
94
|
-
const numeric = Number(raw);
|
|
95
|
-
return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.Text, {
|
|
96
|
-
fontSize: "$3",
|
|
97
|
-
color: "$color12",
|
|
98
|
-
fontFamily: "$mono",
|
|
99
|
-
children: Number.isFinite(numeric) ? formatNumericCell(numeric, column.fieldtype) : String(raw)
|
|
100
|
-
});
|
|
101
|
-
}
|
|
102
|
-
const value = String(raw);
|
|
103
|
-
switch (column.fieldtype) {
|
|
104
|
-
case "Date":
|
|
105
|
-
case "Datetime":
|
|
106
|
-
return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.Text, {
|
|
107
|
-
fontSize: "$3",
|
|
108
|
-
color: "$color11",
|
|
109
|
-
numberOfLines: 1,
|
|
110
|
-
children: (0, import_frappe_ui.formatDateCell)(value)
|
|
111
|
-
});
|
|
112
|
-
case "Link":
|
|
113
|
-
{
|
|
114
|
-
const target = column.options;
|
|
115
|
-
if (target && onOpenLink) {
|
|
116
|
-
return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.Text, {
|
|
117
|
-
fontSize: "$3",
|
|
118
|
-
color: "$color11",
|
|
119
|
-
textDecorationLine: "underline",
|
|
120
|
-
cursor: "pointer",
|
|
121
|
-
numberOfLines: 1,
|
|
122
|
-
role: "link",
|
|
123
|
-
onPress: event => {
|
|
124
|
-
event?.stopPropagation?.();
|
|
125
|
-
onOpenLink(target, value);
|
|
126
|
-
},
|
|
127
|
-
children: value
|
|
128
|
-
});
|
|
129
|
-
}
|
|
130
|
-
return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.Text, {
|
|
131
|
-
fontSize: "$3",
|
|
132
|
-
color: "$color11",
|
|
133
|
-
numberOfLines: 1,
|
|
134
|
-
children: value
|
|
135
|
-
});
|
|
136
|
-
}
|
|
137
|
-
default:
|
|
138
|
-
return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.Text, {
|
|
139
|
-
fontSize: "$3",
|
|
140
|
-
color: "$color11",
|
|
141
|
-
numberOfLines: 1,
|
|
142
|
-
children: value
|
|
143
|
-
});
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
function ReportGrid({
|
|
147
|
-
columns,
|
|
148
|
-
rows,
|
|
149
|
-
sort,
|
|
150
|
-
onSortChange,
|
|
151
|
-
columnFilters,
|
|
152
|
-
onColumnFilterChange,
|
|
153
|
-
onOpenRow,
|
|
154
|
-
onOpenLink,
|
|
155
|
-
totals,
|
|
156
|
-
groupByColumn
|
|
157
|
-
}) {
|
|
158
|
-
const {
|
|
159
|
-
t
|
|
160
|
-
} = (0, import_react_i18next.useTranslation)(import_i18n.BACKOFFICE_I18N_NAMESPACE);
|
|
161
|
-
const handleSortPress = (0, import_react2.useCallback)(fieldname => {
|
|
162
|
-
if (sort.field === fieldname) {
|
|
163
|
-
onSortChange({
|
|
164
|
-
field: fieldname,
|
|
165
|
-
order: sort.order === "asc" ? "desc" : "asc"
|
|
166
|
-
});
|
|
167
|
-
} else {
|
|
168
|
-
onSortChange({
|
|
169
|
-
field: fieldname,
|
|
170
|
-
order: "asc"
|
|
171
|
-
});
|
|
172
|
-
}
|
|
173
|
-
}, [sort, onSortChange]);
|
|
174
|
-
const isSSR = typeof window === "undefined";
|
|
175
|
-
const [rowAnchor, setRowAnchor] = (0, import_react2.useState)(0);
|
|
176
|
-
const dataRowCount = rows.reduce((count, row) => row.kind === "row" ? count + 1 : count, 0);
|
|
177
|
-
const effectiveRowAnchor = Math.min(rowAnchor, Math.max(dataRowCount - 1, 0));
|
|
178
|
-
const getRowPressProps = (0, import_react2.useCallback)((row, pressIndex) => {
|
|
179
|
-
const handlePress = event => {
|
|
180
|
-
if (event?.defaultPrevented) return;
|
|
181
|
-
const targetEl = event?.target ?? event?.nativeEvent?.target;
|
|
182
|
-
if (import_components.isWeb && typeof Element !== "undefined" && targetEl instanceof Element) {
|
|
183
|
-
const boundary = targetEl.closest('[data-report-row="true"]');
|
|
184
|
-
if (isInteractiveInnerTarget(targetEl, boundary)) return;
|
|
185
|
-
}
|
|
186
|
-
onOpenRow(row.name);
|
|
187
|
-
};
|
|
188
|
-
return {
|
|
189
|
-
// Accessible row name from doc identity (DG-A11Y-06); positional
|
|
190
|
-
// fallback for the defensive empty-name case.
|
|
191
|
-
"aria-label": row.name || t("report.rowLabel", {
|
|
192
|
-
defaultValue: "Row {{row}}",
|
|
193
|
-
row: pressIndex + 1
|
|
194
|
-
}),
|
|
195
|
-
onPress: handlePress,
|
|
196
|
-
cursor: "pointer",
|
|
197
|
-
hoverStyle: {
|
|
198
|
-
backgroundColor: "$color2"
|
|
199
|
-
},
|
|
200
|
-
pressStyle: {
|
|
201
|
-
backgroundColor: "$color4"
|
|
202
|
-
},
|
|
203
|
-
...(import_components.isWeb && !isSSR ? {
|
|
204
|
-
tabIndex: pressIndex === effectiveRowAnchor ? 0 : -1,
|
|
205
|
-
outlineWidth: 0,
|
|
206
|
-
focusStyle: {
|
|
207
|
-
outlineWidth: 0
|
|
208
|
-
},
|
|
209
|
-
focusVisibleStyle: (0, import_theme.ensureFocusVisibleRing)({
|
|
210
|
-
outlineOffset: -2
|
|
211
|
-
}),
|
|
212
|
-
"data-report-row": "true",
|
|
213
|
-
onFocus: event => {
|
|
214
|
-
if (event.target === event.currentTarget) setRowAnchor(pressIndex);
|
|
215
|
-
},
|
|
216
|
-
onBlur: event => {
|
|
217
|
-
const next = event.relatedTarget;
|
|
218
|
-
if (!(next instanceof Element) || !next.closest('[data-report-row="true"]')) {
|
|
219
|
-
setRowAnchor(0);
|
|
220
|
-
}
|
|
221
|
-
},
|
|
222
|
-
onKeyDown: event => {
|
|
223
|
-
if (event.defaultPrevented) return;
|
|
224
|
-
if (event.target !== event.currentTarget) return;
|
|
225
|
-
const key = event.key;
|
|
226
|
-
if (key === "Enter" || key === " " || key === "Spacebar") {
|
|
227
|
-
event.preventDefault();
|
|
228
|
-
event.stopPropagation();
|
|
229
|
-
if (event.repeat) return;
|
|
230
|
-
onOpenRow(row.name);
|
|
231
|
-
return;
|
|
232
|
-
}
|
|
233
|
-
if (key === "ArrowDown" || key === "ArrowUp" || key === "Home" || key === "End") {
|
|
234
|
-
event.preventDefault();
|
|
235
|
-
event.stopPropagation();
|
|
236
|
-
const rowEl = event.currentTarget;
|
|
237
|
-
const scope = rowEl.closest('[data-report-grid="true"]') ?? rowEl.ownerDocument;
|
|
238
|
-
const pressRows = Array.from(scope.querySelectorAll('[data-report-row="true"]'));
|
|
239
|
-
const currentIdx = pressRows.indexOf(rowEl);
|
|
240
|
-
if (currentIdx < 0) return;
|
|
241
|
-
const nextIdx = key === "Home" ? 0 : key === "End" ? pressRows.length - 1 : Math.min(Math.max(currentIdx + (key === "ArrowDown" ? 1 : -1), 0), pressRows.length - 1);
|
|
242
|
-
pressRows[nextIdx]?.focus();
|
|
243
|
-
}
|
|
244
|
-
}
|
|
245
|
-
} : {})
|
|
246
|
-
};
|
|
247
|
-
}, [onOpenRow, effectiveRowAnchor, isSSR, t]);
|
|
248
|
-
const totalsByField = new Map(totals.map(total => [total.fieldname, total]));
|
|
249
|
-
const gridWidth = ROW_NUMBER_WIDTH + columns.reduce((sum, column) => sum + column.width, 0);
|
|
250
|
-
return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.ScrollView, {
|
|
251
|
-
horizontal: true,
|
|
252
|
-
showsHorizontalScrollIndicator: true,
|
|
253
|
-
flexGrow: 0,
|
|
254
|
-
flexShrink: 1,
|
|
255
|
-
children: /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_table.Table, {
|
|
256
|
-
minWidth: gridWidth,
|
|
257
|
-
width: gridWidth,
|
|
258
|
-
displayMode: "flex",
|
|
259
|
-
cellHeight: "$3",
|
|
260
|
-
...{
|
|
261
|
-
"data-report-grid": "true"
|
|
262
|
-
},
|
|
263
|
-
children: [/* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_table.Table.Head, {
|
|
264
|
-
children: [/* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_table.Table.Row, {
|
|
265
|
-
children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_table.Table.HeaderCell, {
|
|
266
|
-
cellWidth: ROW_NUMBER_WIDTH,
|
|
267
|
-
"aria-label": t("report.rowNumber", "Row number"),
|
|
268
|
-
children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.Text, {
|
|
269
|
-
fontSize: "$2",
|
|
270
|
-
color: "$color9",
|
|
271
|
-
children: "#"
|
|
272
|
-
})
|
|
273
|
-
}), columns.map(column => {
|
|
274
|
-
const sorted = sort.field === column.fieldname ? sort.order : void 0;
|
|
275
|
-
return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_table.Table.HeaderCell, {
|
|
276
|
-
cellWidth: column.width,
|
|
277
|
-
justifyContent: alignToJustify(column.align),
|
|
278
|
-
"aria-sort": sorted === "asc" ? "ascending" : sorted === "desc" ? "descending" : "none",
|
|
279
|
-
children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.Tooltip, {
|
|
280
|
-
content: sorted === "asc" ? t("report.sortDesc", "Sorted ascending (press to sort descending)") : sorted === "desc" ? t("report.sortAsc", "Sorted descending (press to sort ascending)") : t("report.sortColumn", "Sort by this column"),
|
|
281
|
-
children: /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_components.XStack, {
|
|
282
|
-
gap: "$1.5",
|
|
283
|
-
alignItems: "center",
|
|
284
|
-
cursor: "pointer",
|
|
285
|
-
role: "button",
|
|
286
|
-
tabIndex: 0,
|
|
287
|
-
outlineWidth: 0,
|
|
288
|
-
focusStyle: {
|
|
289
|
-
outlineWidth: 0
|
|
290
|
-
},
|
|
291
|
-
focusVisibleStyle: (0, import_theme.ensureFocusVisibleRing)({
|
|
292
|
-
outlineOffset: -2
|
|
293
|
-
}),
|
|
294
|
-
"aria-label": t("report.sortBy", {
|
|
295
|
-
defaultValue: "Sort by {{column}}",
|
|
296
|
-
column: column.label
|
|
297
|
-
}),
|
|
298
|
-
onPress: () => handleSortPress(column.fieldname),
|
|
299
|
-
onKeyDown: event => {
|
|
300
|
-
if (event.key === "Enter" || event.key === " ") {
|
|
301
|
-
event.preventDefault?.();
|
|
302
|
-
handleSortPress(column.fieldname);
|
|
303
|
-
}
|
|
304
|
-
},
|
|
305
|
-
hoverStyle: {
|
|
306
|
-
opacity: 0.8
|
|
307
|
-
},
|
|
308
|
-
children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.Text, {
|
|
309
|
-
fontSize: "$3",
|
|
310
|
-
fontWeight: "400",
|
|
311
|
-
numberOfLines: 1,
|
|
312
|
-
children: column.label
|
|
313
|
-
}), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.View, {
|
|
314
|
-
"aria-hidden": true,
|
|
315
|
-
role: "presentation",
|
|
316
|
-
children: sorted ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react.CaretDownIcon, {
|
|
317
|
-
size: 12,
|
|
318
|
-
color: "var(--color10)",
|
|
319
|
-
style: sorted === "desc" ? {
|
|
320
|
-
transform: "rotate(180deg)"
|
|
321
|
-
} : void 0
|
|
322
|
-
}) : /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react.CaretUpDownIcon, {
|
|
323
|
-
size: 12,
|
|
324
|
-
color: "var(--color8)"
|
|
325
|
-
})
|
|
326
|
-
})]
|
|
327
|
-
})
|
|
328
|
-
})
|
|
329
|
-
}, column.fieldname);
|
|
330
|
-
})]
|
|
331
|
-
}), /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_table.Table.Row, {
|
|
332
|
-
children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_table.Table.HeaderCell, {
|
|
333
|
-
cellWidth: ROW_NUMBER_WIDTH,
|
|
334
|
-
paddingVertical: "$1.5"
|
|
335
|
-
}), columns.map(column => {
|
|
336
|
-
const placeholder = column.kind === "number" || column.kind === "date" ? t("report.filterComparablePlaceholder", "= > <\u2026") : column.kind === "check" ? t("report.filterCheckPlaceholder", "yes / no") : t("report.filterPlaceholder", "Filter\u2026");
|
|
337
|
-
return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_table.Table.HeaderCell, {
|
|
338
|
-
cellWidth: column.width,
|
|
339
|
-
paddingVertical: "$1.5",
|
|
340
|
-
overflow: "visible",
|
|
341
|
-
children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.View, {
|
|
342
|
-
flex: 1,
|
|
343
|
-
minWidth: 0,
|
|
344
|
-
overflow: "visible",
|
|
345
|
-
children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_forms.Input, {
|
|
346
|
-
size: "$2",
|
|
347
|
-
compact: true,
|
|
348
|
-
value: columnFilters[column.fieldname] ?? "",
|
|
349
|
-
onChangeText: next => onColumnFilterChange(column.fieldname, next),
|
|
350
|
-
placeholder,
|
|
351
|
-
inputProps: {
|
|
352
|
-
"aria-label": t("report.filterColumn", {
|
|
353
|
-
defaultValue: "Filter {{column}}",
|
|
354
|
-
column: column.label
|
|
355
|
-
})
|
|
356
|
-
}
|
|
357
|
-
})
|
|
358
|
-
})
|
|
359
|
-
}, column.fieldname);
|
|
360
|
-
})]
|
|
361
|
-
})]
|
|
362
|
-
}), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_table.Table.Body, {
|
|
363
|
-
children: (() => {
|
|
364
|
-
let pressCursor = -1;
|
|
365
|
-
return rows.map(gridRow => {
|
|
366
|
-
if (gridRow.kind === "group") {
|
|
367
|
-
const label = gridRow.value === null || gridRow.value === void 0 || gridRow.value === "" ? t("report.groupEmpty", "(blank)") : String(gridRow.value);
|
|
368
|
-
return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_table.Table.Row, {
|
|
369
|
-
backgroundColor: "$color2",
|
|
370
|
-
children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_table.Table.Cell, {
|
|
371
|
-
cellWidth: gridWidth,
|
|
372
|
-
paddingVertical: "$1.5",
|
|
373
|
-
role: "rowheader",
|
|
374
|
-
children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.Text, {
|
|
375
|
-
fontSize: "$2",
|
|
376
|
-
fontWeight: "400",
|
|
377
|
-
color: "$color11",
|
|
378
|
-
numberOfLines: 1,
|
|
379
|
-
children: groupByColumn ? t("report.groupHeader", {
|
|
380
|
-
defaultValue: "{{field}}: {{value}} \xB7 {{count}}",
|
|
381
|
-
field: groupByColumn.label,
|
|
382
|
-
value: label,
|
|
383
|
-
count: gridRow.count
|
|
384
|
-
}) : label
|
|
385
|
-
})
|
|
386
|
-
})
|
|
387
|
-
}, gridRow.key);
|
|
388
|
-
}
|
|
389
|
-
pressCursor += 1;
|
|
390
|
-
return (
|
|
391
|
-
// Spread LAST so the roving tabIndex/handlers stay in
|
|
392
|
-
// charge of this row's interactivity (DataTable precedent).
|
|
393
|
-
/* @__PURE__ */
|
|
394
|
-
(0, import_jsx_runtime.jsxs)(import_table.Table.Row, {
|
|
395
|
-
...getRowPressProps(gridRow.row, pressCursor),
|
|
396
|
-
children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_table.Table.Cell, {
|
|
397
|
-
cellWidth: ROW_NUMBER_WIDTH,
|
|
398
|
-
paddingVertical: "$2",
|
|
399
|
-
children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.Text, {
|
|
400
|
-
fontSize: "$2",
|
|
401
|
-
color: "$color9",
|
|
402
|
-
fontFamily: "$mono",
|
|
403
|
-
children: gridRow.index
|
|
404
|
-
})
|
|
405
|
-
}), columns.map(column => /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_table.Table.Cell, {
|
|
406
|
-
cellWidth: column.width,
|
|
407
|
-
paddingVertical: "$2",
|
|
408
|
-
justifyContent: alignToJustify(column.align),
|
|
409
|
-
children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(ReportCellValue, {
|
|
410
|
-
column,
|
|
411
|
-
row: gridRow.row,
|
|
412
|
-
onOpenLink
|
|
413
|
-
})
|
|
414
|
-
}, column.fieldname))]
|
|
415
|
-
}, gridRow.key)
|
|
416
|
-
);
|
|
417
|
-
});
|
|
418
|
-
})()
|
|
419
|
-
}), totals.length > 0 && /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_table.Table.Foot, {
|
|
420
|
-
borderTopWidth: 1,
|
|
421
|
-
borderTopColor: "$color6",
|
|
422
|
-
children: /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_table.Table.Row, {
|
|
423
|
-
backgroundColor: "$color2",
|
|
424
|
-
children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_table.Table.Cell, {
|
|
425
|
-
cellWidth: ROW_NUMBER_WIDTH,
|
|
426
|
-
paddingVertical: "$2",
|
|
427
|
-
children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.Text, {
|
|
428
|
-
fontSize: "$2",
|
|
429
|
-
fontWeight: "400",
|
|
430
|
-
color: "$color10",
|
|
431
|
-
children: t("report.totals", "Totals")
|
|
432
|
-
})
|
|
433
|
-
}), columns.map(column => {
|
|
434
|
-
const total = totalsByField.get(column.fieldname);
|
|
435
|
-
return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_table.Table.Cell, {
|
|
436
|
-
cellWidth: column.width,
|
|
437
|
-
paddingVertical: "$2",
|
|
438
|
-
justifyContent: alignToJustify(column.align),
|
|
439
|
-
children: total ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_components.Text, {
|
|
440
|
-
fontSize: "$3",
|
|
441
|
-
fontWeight: "400",
|
|
442
|
-
color: "$color12",
|
|
443
|
-
fontFamily: "$mono",
|
|
444
|
-
children: formatNumericCell(total.value, total.fieldtype)
|
|
445
|
-
}) : null
|
|
446
|
-
}, column.fieldname);
|
|
447
|
-
})]
|
|
448
|
-
})
|
|
449
|
-
})]
|
|
450
|
-
})
|
|
451
|
-
});
|
|
452
|
-
}
|
|
28
|
+
var import_frappe_ui = require("@multiplatform.one/frappe-ui");
|