@hisptz/dhis2-scorecard 1.1.10 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Scorecard.js +2 -2
- package/dist/Scorecard.js.map +1 -1
- package/dist/components/ColGroup.js +3 -9
- package/dist/components/ColGroup.js.map +1 -1
- package/dist/components/ScorecardHeader.js +8 -7
- package/dist/components/ScorecardHeader.js.map +1 -1
- package/dist/components/ScorecardLegendsView/ScorecardLegendsView.js +2 -2
- package/dist/components/ScorecardLegendsView/ScorecardLegendsView.js.map +1 -1
- package/dist/components/ScorecardLegendsView/components/ArrowLegendView.js +3 -3
- package/dist/components/ScorecardLegendsView/components/ArrowLegendView.js.map +1 -1
- package/dist/components/ScorecardPrint/components/ScorecardPreviewArea.js +32 -37
- package/dist/components/ScorecardPrint/components/ScorecardPreviewArea.js.map +1 -1
- package/dist/components/ScorecardTable/ScorecardTable.js +6 -8
- package/dist/components/ScorecardTable/ScorecardTable.js.map +1 -1
- package/dist/components/ScorecardTable/components/AverageCell.js +2 -5
- package/dist/components/ScorecardTable/components/AverageCell.js.map +1 -1
- package/dist/components/ScorecardTable/components/DataFooterCell.js +2 -5
- package/dist/components/ScorecardTable/components/DataFooterCell.js.map +1 -1
- package/dist/components/ScorecardTable/components/DataValue.js +5 -8
- package/dist/components/ScorecardTable/components/DataValue.js.map +1 -1
- package/dist/components/ScorecardTable/components/ExpandedScorecardTable.js +6 -4
- package/dist/components/ScorecardTable/components/ExpandedScorecardTable.js.map +1 -1
- package/dist/components/ScorecardTable/components/LinkedCell.js +2 -2
- package/dist/components/ScorecardTable/components/LinkedCell.js.map +1 -1
- package/dist/components/ScorecardTable/components/TableFoot.js +2 -5
- package/dist/components/ScorecardTable/components/TableFoot.js.map +1 -1
- package/dist/components/ScorecardTable/components/TableHeader/components/AverageHeaderCell.js +4 -8
- package/dist/components/ScorecardTable/components/TableHeader/components/AverageHeaderCell.js.map +1 -1
- package/dist/components/ScorecardTable/components/TableHeader/components/DataHeaderCell.js +2 -5
- package/dist/components/ScorecardTable/components/TableHeader/components/DataHeaderCell.js.map +1 -1
- package/dist/components/ScorecardTable/components/TableHeader/components/FilterArea.js +2 -5
- package/dist/components/ScorecardTable/components/TableHeader/components/FilterArea.js.map +1 -1
- package/dist/components/ScorecardTable/components/TableHeader/components/LabelCell.js +4 -13
- package/dist/components/ScorecardTable/components/TableHeader/components/LabelCell.js.map +1 -1
- package/dist/components/ScorecardTable/components/TableHeader/components/MetaHeaderCell.js +4 -6
- package/dist/components/ScorecardTable/components/TableHeader/components/MetaHeaderCell.js.map +1 -1
- package/dist/components/StateProvider.js +40 -27
- package/dist/components/StateProvider.js.map +1 -1
- package/dist/esm/Scorecard.js +1 -1
- package/dist/esm/Scorecard.js.map +1 -1
- package/dist/esm/components/ColGroup.js +3 -9
- package/dist/esm/components/ColGroup.js.map +1 -1
- package/dist/esm/components/ScorecardHeader.js +8 -7
- package/dist/esm/components/ScorecardHeader.js.map +1 -1
- package/dist/esm/components/ScorecardLegendsView/ScorecardLegendsView.js +2 -2
- package/dist/esm/components/ScorecardLegendsView/ScorecardLegendsView.js.map +1 -1
- package/dist/esm/components/ScorecardLegendsView/components/ArrowLegendView.js +3 -3
- package/dist/esm/components/ScorecardLegendsView/components/ArrowLegendView.js.map +1 -1
- package/dist/esm/components/ScorecardPrint/components/ScorecardPreviewArea.js +32 -37
- package/dist/esm/components/ScorecardPrint/components/ScorecardPreviewArea.js.map +1 -1
- package/dist/esm/components/ScorecardTable/ScorecardTable.js +6 -8
- package/dist/esm/components/ScorecardTable/ScorecardTable.js.map +1 -1
- package/dist/esm/components/ScorecardTable/components/AverageCell.js +2 -5
- package/dist/esm/components/ScorecardTable/components/AverageCell.js.map +1 -1
- package/dist/esm/components/ScorecardTable/components/DataFooterCell.js +2 -5
- package/dist/esm/components/ScorecardTable/components/DataFooterCell.js.map +1 -1
- package/dist/esm/components/ScorecardTable/components/DataValue.js +5 -8
- package/dist/esm/components/ScorecardTable/components/DataValue.js.map +1 -1
- package/dist/esm/components/ScorecardTable/components/ExpandedScorecardTable.js +6 -4
- package/dist/esm/components/ScorecardTable/components/ExpandedScorecardTable.js.map +1 -1
- package/dist/esm/components/ScorecardTable/components/LinkedCell.js +2 -2
- package/dist/esm/components/ScorecardTable/components/LinkedCell.js.map +1 -1
- package/dist/esm/components/ScorecardTable/components/TableFoot.js +2 -5
- package/dist/esm/components/ScorecardTable/components/TableFoot.js.map +1 -1
- package/dist/esm/components/ScorecardTable/components/TableHeader/components/AverageHeaderCell.js +4 -8
- package/dist/esm/components/ScorecardTable/components/TableHeader/components/AverageHeaderCell.js.map +1 -1
- package/dist/esm/components/ScorecardTable/components/TableHeader/components/DataHeaderCell.js +2 -5
- package/dist/esm/components/ScorecardTable/components/TableHeader/components/DataHeaderCell.js.map +1 -1
- package/dist/esm/components/ScorecardTable/components/TableHeader/components/FilterArea.js +2 -5
- package/dist/esm/components/ScorecardTable/components/TableHeader/components/FilterArea.js.map +1 -1
- package/dist/esm/components/ScorecardTable/components/TableHeader/components/LabelCell.js +4 -13
- package/dist/esm/components/ScorecardTable/components/TableHeader/components/LabelCell.js.map +1 -1
- package/dist/esm/components/ScorecardTable/components/TableHeader/components/MetaHeaderCell.js +4 -6
- package/dist/esm/components/ScorecardTable/components/TableHeader/components/MetaHeaderCell.js.map +1 -1
- package/dist/esm/components/StateProvider.js +40 -29
- package/dist/esm/components/StateProvider.js.map +1 -1
- package/dist/esm/hooks/columns.js +8 -21
- package/dist/esm/hooks/columns.js.map +1 -1
- package/dist/esm/hooks/data.js +1 -1
- package/dist/esm/hooks/data.js.map +1 -1
- package/dist/esm/hooks/metadata.js +3 -7
- package/dist/esm/hooks/metadata.js.map +1 -1
- package/dist/esm/hooks/table.js +12 -34
- package/dist/esm/hooks/table.js.map +1 -1
- package/dist/esm/index.js +0 -1
- package/dist/esm/utils/dimensionState.js +133 -0
- package/dist/esm/utils/dimensionState.js.map +1 -0
- package/dist/esm/utils/viewState.js +85 -0
- package/dist/esm/utils/viewState.js.map +1 -0
- package/dist/hooks/columns.js +8 -21
- package/dist/hooks/columns.js.map +1 -1
- package/dist/hooks/data.js +1 -1
- package/dist/hooks/data.js.map +1 -1
- package/dist/hooks/metadata.js +3 -7
- package/dist/hooks/metadata.js.map +1 -1
- package/dist/hooks/table.js +12 -34
- package/dist/hooks/table.js.map +1 -1
- package/dist/index.js +0 -7
- package/dist/types/components/ColGroup.d.ts.map +1 -1
- package/dist/types/components/ScorecardHeader.d.ts.map +1 -1
- package/dist/types/components/ScorecardLegendsView/components/ArrowLegendView.d.ts +1 -1
- package/dist/types/components/ScorecardLegendsView/components/ArrowLegendView.d.ts.map +1 -1
- package/dist/types/components/ScorecardPrint/components/ScorecardPreviewArea.d.ts.map +1 -1
- package/dist/types/components/ScorecardTable/ScorecardTable.d.ts.map +1 -1
- package/dist/types/components/ScorecardTable/components/AverageCell.d.ts.map +1 -1
- package/dist/types/components/ScorecardTable/components/DataFooterCell.d.ts.map +1 -1
- package/dist/types/components/ScorecardTable/components/DataValue.d.ts.map +1 -1
- package/dist/types/components/ScorecardTable/components/ExpandedScorecardTable.d.ts.map +1 -1
- package/dist/types/components/ScorecardTable/components/TableFoot.d.ts.map +1 -1
- package/dist/types/components/ScorecardTable/components/TableHeader/components/AverageHeaderCell.d.ts.map +1 -1
- package/dist/types/components/ScorecardTable/components/TableHeader/components/DataHeaderCell.d.ts.map +1 -1
- package/dist/types/components/ScorecardTable/components/TableHeader/components/FilterArea.d.ts.map +1 -1
- package/dist/types/components/ScorecardTable/components/TableHeader/components/LabelCell.d.ts.map +1 -1
- package/dist/types/components/ScorecardTable/components/TableHeader/components/MetaHeaderCell.d.ts.map +1 -1
- package/dist/types/components/StateProvider.d.ts +34 -2
- package/dist/types/components/StateProvider.d.ts.map +1 -1
- package/dist/types/hooks/columns.d.ts.map +1 -1
- package/dist/types/hooks/metadata.d.ts.map +1 -1
- package/dist/types/hooks/table.d.ts.map +1 -1
- package/dist/types/index.d.ts +0 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/utils/dimensionState.d.ts +62 -0
- package/dist/types/utils/dimensionState.d.ts.map +1 -0
- package/dist/types/utils/viewState.d.ts +34 -0
- package/dist/types/utils/viewState.d.ts.map +1 -0
- package/dist/utils/dimensionState.js +139 -0
- package/dist/utils/dimensionState.js.map +1 -0
- package/dist/utils/viewState.js +90 -0
- package/dist/utils/viewState.js.map +1 -0
- package/package.json +4 -5
- package/dist/esm/hooks/period.js +0 -13
- package/dist/esm/hooks/period.js.map +0 -1
- package/dist/esm/state/index.js +0 -53
- package/dist/esm/state/index.js.map +0 -1
- package/dist/esm/utils/engine.js +0 -18
- package/dist/esm/utils/engine.js.map +0 -1
- package/dist/hooks/period.js +0 -15
- package/dist/hooks/period.js.map +0 -1
- package/dist/state/index.js +0 -63
- package/dist/state/index.js.map +0 -1
- package/dist/types/hooks/period.d.ts +0 -2
- package/dist/types/hooks/period.d.ts.map +0 -1
- package/dist/types/state/index.d.ts +0 -109
- package/dist/types/state/index.d.ts.map +0 -1
- package/dist/types/utils/engine.d.ts +0 -14
- package/dist/types/utils/engine.d.ts.map +0 -1
- package/dist/utils/engine.js +0 -20
- package/dist/utils/engine.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/hooks/table.ts"],"names":["emptyRows","rows"],"mappings":";;;;;;;;;AAgCO,SAAS,YAAa,CAAA;AAAA,EAC5B,IAAA;AAAA,EACA,cAAA;AAAA,EACA;AACD,CAIoB,EAAA;AACnB,EAAO,OAAA,IAAA,CAAK,MAAO,CAAA,CAAC,KAAU,KAAA;AAC7B,IAAA,IAAI,cAAgB,EAAA;AACnB,MAAA,OAAO,GACL,CAAA,UAAA,CAAY,WAAY,CAAA,GAAA,CAAI,CAAC,EAAE,EAAG,EAAA,KAAM,EAAE,CAAA,CAC1C,QAAS,CAAA,KAAA,CAAM,EAAG,CAAA;AAAA;AAErB,IAAO,OAAA,KAAA,CAAM,EAAO,KAAA,GAAA,CAAI,OAAS,CAAA,GAAA;AAAA,GACjC,CAAA;AACF;AAEO,SAAS,UAAW,CAAA;AAAA,EAC1B,IAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AAAA,EACA,cAAA;AAAA,EACA,kBAAA;AAAA,EACA;AACD,CAOG,EAAA;AACF,EAAI,IAAA,CAAC,WAAW,MAAQ,EAAA;AACvB,IAAA,OAAO,EAAC;AAAA;AAET,EAAA,MAAM,aAAuB,EAAC;AAC9B,EAAA,MAAM,kBAAqB,GAAA,IAAA,CAAK,GAAI,CAAA,CAAC,KAAK,KAAU,KAAA;AACnD,IAAA,MAAM,SAAS,YAAa,CAAA;AAAA,MAC3B,GAAA;AAAA,MACA,MAAM,UAAW,CAAA,IAAA;AAAA,MACjB;AAAA,KACA,CAAA;AACD,IAAM,MAAA,OAAA,GAAU,OAAO,MAAQ,EAAA,CAAC,EAAE,KAAM,EAAA,KAAM,UAAW,CAAA,KAAM,CAAC,CAAA;AAChE,IAAO,OAAA;AAAA,MACN,GAAA;AAAA,MACA,KAAA;AAAA,MACA,MAAA;AAAA,MACA;AAAA,KACD;AAAA,GACA,CAAA;AACD,EAAA,IAAI,CAAC,SAAW,EAAA;AAEf,IAAA,MAAMA,aAAY,kBAChB,CAAA,MAAA,CAAO,CAAC,EAAE,QAAa,KAAA,OAAA,CAAQ,MAAM,CAAC,EACtC,GAAI,CAAA,CAAC,EAAE,KAAA,OAAY,KAAK,CAAA;AAC1B,IAAW,UAAA,CAAA,IAAA,CAAK,GAAGA,UAAS,CAAA;AAAA;AAG7B,EAAA,IAAI,uBAAuB,KAAO,EAAA;AACjC,IAAA,MAAM,UAAU,eAAgB,CAAA;AAAA,MAC/B,YAAY,UAAW,CAAA,IAAA;AAAA,MACvB;AAAA,KACA,CAAA;AACD,IAAA,IAAI,uBAAuB,eAAiB,EAAA;AAC3C,MAAA,MAAM,mBAAmB,kBACvB,CAAA,MAAA,CAAO,CAAC,EAAE,SAAS,UAAW,EAAA,KAAM,UAAa,GAAA,OAAO,EACxD,GAAI,CAAA,CAAC,EAAE,KAAA,OAAY,KAAK,CAAA;AAC1B,MAAW,UAAA,CAAA,IAAA,CAAK,GAAG,gBAAgB,CAAA;AAAA,KAC7B,MAAA;AACN,MAAA,MAAM,mBAAmB,kBACvB,CAAA,MAAA,CAAO,CAAC,EAAE,SAAS,UAAW,EAAA,KAAM,UAAa,GAAA,OAAO,EACxD,GAAI,CAAA,CAAC,EAAE,KAAA,OAAY,KAAK,CAAA;AAC1B,MAAW,UAAA,CAAA,IAAA,CAAK,GAAG,gBAAgB,CAAA;AAAA;AACpC;AAGD,EAAO,OAAA,UAAA;AACR;AAEO,SAAS,YAAqC,GAAA;AACpD,EAAA,MAAM,OAAO,gBAAiB,EAAA;AAC9B,EAAA,MAAM,EAAE,IAAA,EAAM,UAAW,EAAA,GAAI,gBAAiB,EAAA;AAC9C,EAAA,MAAM,iBAAiB,8BAAwC,CAAA;AAAA,IAC9D,SAAA;AAAA,IACA;AAAA,GACA,CAAA;AACD,EAAA,MAAM,YAAY,8BAAwC,CAAA;AAAA,IACzD,SAAA;AAAA,IACA;AAAA,GACA,CAAA;AACD,EAAA,MAAM,kBAAqB,GAAA,8BAAA,CAEzB,CAAC,SAAA,EAAW,oBAAoB,CAAC,CAAA;AAEnC,EAAA,MAAM,SAAS,kBAAmB,EAAA;AAElC,EAAA,MAAM,CAAC,gBAAkB,EAAA,mBAAmB,CAAI,GAAA,QAAA,CAAmB,EAAE,CAAA;AAErE,EAAI,IAAA,IAAA,IAAQ,IAAM,EAAA,OAAO,EAAC;AAE1B,EAAM,MAAA,IAAA,GAAO,QAAQ,MAAM;AAC1B,IAAA,MAAMC,QAAO,eAAgB,CAAA;AAAA,MAC5B,IAAA;AAAA,MACA,cAAA;AAAA,MACA;AAAA,KACA,CAAA;AAED,IAAI,IAAA,OAAA,CAAQ,gBAAgB,CAAG,EAAA;AAC9B,MAAOA,OAAAA,KAAAA;AAAA;AAGR,IAAOA,OAAAA,KAAAA,CAAK,OAAO,CAAC,CAAA,EAAG,UAAU,CAAC,gBAAA,CAAiB,QAAS,CAAA,KAAK,CAAC,CAAA;AAAA,KAChE,CAAC,IAAA,EAAM,cAAgB,EAAA,MAAA,EAAQ,gBAAgB,CAAC,CAAA;AAEnD,EAAA,SAAA,CAAU,MAAM;AACf,IAAM,MAAA,QAAA,GAAW,CAAC,SAAuB,KAAA;AACxC,MAAA,IAAI,SAAW,EAAA;AACd,QAAA,mBAAA;AAAA,UACC,UAAW,CAAA;AAAA,YACV,IAAA;AAAA,YACA,UAAA;AAAA,YACA,cAAA;AAAA,YACA,IAAA;AAAA,YACA,kBAAA;AAAA,YACA;AAAA,WACA;AAAA,SACF;AAAA;AACD,KACD;AACA,IAAA,IAAI,WAAW,MAAQ,EAAA;AACtB,MAAA,mBAAA;AAAA,QACC,UAAW,CAAA;AAAA,UACV,IAAA;AAAA,UACA,UAAA;AAAA,UACA,cAAA;AAAA,UACA,IAAA;AAAA,UACA,kBAAA;AAAA,UACA;AAAA,SACA;AAAA,OACF;AAAA,KACM,MAAA;AACN,MAAO,OAAA,UAAA,CAAW,sBAAsB,QAAQ,CAAA;AAAA;AACjD,GACE,EAAA,CAAC,kBAAoB,EAAA,SAAA,EAAW,cAAc,CAAC,CAAA;AAElD,EAAO,OAAA,IAAA;AACR;AAEO,SAAS,mBAAsB,GAAA;AACrC,EAAA,MAAM,oBAAoB,8BAAwC,CAAA;AAAA,IACjE,SAAA;AAAA,IACA;AAAA,GACA,CAAA;AACD,EAAA,MAAM,iBAAiB,8BAAwC,CAAA;AAAA,IAC9D,SAAA;AAAA,IACA;AAAA,GACA,CAAA;AACD,EAAA,MAAM,iBAAiB,8BAAwC,CAAA;AAAA,IAC9D,SAAA;AAAA,IACA;AAAA,GACA,CAAA;AAED,EAAA,MAAM,mBACL,8BAAwC,CAAA;AAAA,IACvC,SAAA;AAAA,IACA;AAAA,GACA,CAAK,IAAA,KAAA;AAEP,EAAA,MAAM,CAAC,gBAAA,EAAkB,mBAAmB,CAAA,GAAI,QAA0B,CAAA;AAAA,IACzE,OAAS,EAAA,iBAAA;AAAA,IACT,KAAO,EAAA,cAAA;AAAA,IACP,QAAQ,CAAC;AAAA,GACT,CAAA;AAED,EAAA,SAAA,CAAU,MAAM;AACf,IAAoB,mBAAA,CAAA;AAAA,MACnB,OAAS,EAAA,iBAAA;AAAA,MACT,KAAO,EAAA,cAAA;AAAA,MACP,MAAA,EAAQ,CAAC,gBAAA,IAAoB,CAAC;AAAA,KAC9B,CAAA;AAAA,KACC,CAAC,iBAAA,EAAmB,cAAgB,EAAA,gBAAA,EAAkB,cAAc,CAAC,CAAA;AAExE,EAAO,OAAA;AAAA,IACN,gBAAA;AAAA,IACA;AAAA,GACD;AACD;AAEO,SAAS,eAAkB,GAAA;AACjC,EAAA,MAAM,CAAC,QAAU,EAAA,WAAW,CAAI,GAAA,QAAA,CAAwB,EAAE,CAAA;AAC1D,EAAA,MAAM,mBACL,8BAAwC,CAAA;AAAA,IACvC,SAAA;AAAA,IACA;AAAA,GACA,CAAK,IAAA,KAAA;AAEP,EAAM,MAAA,eAAA,GAAkB,WAAY,CAAA,CAAC,GAAiC,KAAA;AACrE,IAAA,MAAM,UAAa,GAAA,GAAA,CACjB,eAAgB,EAAA,CAChB,IAAK,CAAA,CAAC,EAAE,EAAA,EAAS,KAAA,EAAA,CAAG,QAAS,CAAA,QAAQ,CAAC,CAAA;AAExC,IAAI,IAAA,CAAC,YAAmB,OAAA,KAAA;AACxB,IAAA,OAAO,WAAW,QAAS,EAAA;AAAA,GAC5B,EAAG,EAAE,CAAA;AAEL,EAAO,OAAA;AAAA,IACN,QAAA;AAAA,IACA,gBAAA,EAAkB,mBAAmB,MAAY,GAAA,WAAA;AAAA,IACjD;AAAA,GACD;AACD;AAEO,SAAS,aAAkD,GAAA;AACjE,EAAA,MAAM,CAAC,aAAe,EAAA,gBAAgB,CAAI,GAAA,QAAA,CAA6B,EAAE,CAAA;AACzE,EAAA,MAAM,oBAAoB,8BAAwC,CAAA;AAAA,IACjE,SAAA;AAAA,IACA;AAAA,GACA,CAAA;AACD,EAAA,MAAM,CAAC,UAAA,EAAY,aAAa,CAAA,GAAI,QAA0B,CAAA;AAAA,IAC7D,QAAU,EAAA,EAAA;AAAA,IACV,SAAW,EAAA;AAAA,GACX,CAAA;AAED,EAAA,MAAM,EAAE,gBAAA,EAAkB,mBAAoB,EAAA,GAAI,mBAAoB,EAAA;AACtE,EAAA,MAAM,EAAE,QAAA,EAAU,gBAAkB,EAAA,eAAA,KAAoB,eAAgB,EAAA;AAExE,EAAA,MAAM,CAAC,OAAS,EAAA,UAAU,CAAI,GAAA,QAAA,CAAuB,EAAE,CAAA;AACvD,EAAA,MAAM,UAAU,eAAgB,EAAA;AAChC,EAAA,MAAM,OAAO,YAAa,EAAA;AAE1B,EAAO,OAAA,OAAA;AAAA,IACN,OAAO;AAAA,MACN,OAAA;AAAA,MACA,IAAA;AAAA,MACA,KAAO,EAAA;AAAA,QACN,aAAA;AAAA,QACA,OAAA;AAAA,QACA,gBAAA;AAAA,QACA,QAAA;AAAA,QACA,GAAI,iBAAA,GAAoB,EAAC,GAAI,EAAE,UAAW;AAAA,OAC3C;AAAA,MACA,IAAM,EAAA;AAAA,QACL;AAAA,OACD;AAAA,MACA,kBAAoB,EAAA,IAAA;AAAA,MACpB,gBAAA;AAAA,MACA,UAAU,IAAK,CAAA,MAAA;AAAA,MACf,eAAA;AAAA,MACA,qBAAuB,EAAA,gBAAA;AAAA,MACvB,eAAiB,EAAA,UAAA;AAAA,MACjB,iBAAiB,eAAgB,EAAA;AAAA,MACjC,qBAAqB,mBAAoB,EAAA;AAAA,MACzC,qBAAqB,mBAAoB,EAAA;AAAA,MACzC,qBAAA,EAAuB,iBACpB,GAAA,MAAA,GACA,qBAAsB,EAAA;AAAA,MACzB,mBAAmB,iBAAkB,EAAA;AAAA,MACrC,wBAA0B,EAAA,mBAAA;AAAA,MAC1B,kBAAA,EAAoB,oBAAoB,MAAY,GAAA;AAAA,KACrD,CAAA;AAAA,IACA;AAAA,MACC,OAAA;AAAA,MACA,IAAA;AAAA,MACA,aAAA;AAAA,MACA,OAAA;AAAA,MACA,gBAAA;AAAA,MACA,UAAA;AAAA,MACA,eAAA;AAAA,MACA;AAAA;AACD,GACD;AACD","file":"table.js","sourcesContent":["import {\n\ttype ColumnFiltersState,\n\ttype ExpandedState,\n\tgetCoreRowModel,\n\tgetExpandedRowModel,\n\tgetFilteredRowModel,\n\tgetPaginationRowModel,\n\tgetSortedRowModel,\n\ttype PaginationState,\n\ttype Row,\n\ttype SortingState,\n\ttype TableOptions,\n\ttype VisibilityState,\n} from \"@tanstack/react-table\";\nimport { useTableColumns } from \"./columns\";\nimport type {\n\tScorecardTableData,\n\tScorecardViewOptions,\n} from \"../schemas/config\";\nimport { useCallback, useEffect, useMemo, useState } from \"react\";\nimport {\n\ttype ScorecardMeta,\n\tuseScorecardConfig,\n\tuseScorecardData,\n\tuseScorecardMeta,\n} from \"../components\";\nimport { type AnalyticsData, getRowsFromMeta } from \"../utils/data\";\nimport { isEmpty, meanBy } from \"lodash\";\nimport type { ScorecardDataEngine } from \"../utils/dataEngine\";\nimport { getAverageValue } from \"../utils/columns\";\nimport { useScorecardStateSelectorValue } from \"../state\";\n\nexport function getRowValues({\n\tdata,\n\tshowDataInRows,\n\trow,\n}: {\n\trow: ScorecardTableData;\n\tdata: AnalyticsData[];\n\tshowDataInRows: boolean;\n}): AnalyticsData[] {\n\treturn data.filter((datum) => {\n\t\tif (showDataInRows) {\n\t\t\treturn row\n\t\t\t\t.dataHolder!.dataSources.map(({ id }) => id)\n\t\t\t\t.includes(datum.dx!);\n\t\t}\n\t\treturn datum.ou === row.orgUnit!.uid;\n\t});\n}\n\nexport function filterRows({\n\trows,\n\temptyRows,\n\tdataEngine,\n\tshowDataInRows,\n\taverageDisplayType,\n\tmeta,\n}: {\n\temptyRows: ScorecardViewOptions[\"emptyRows\"];\n\tshowDataInRows: boolean;\n\taverageDisplayType: ScorecardViewOptions[\"averageDisplayType\"];\n\tdataEngine: ScorecardDataEngine;\n\trows: ScorecardTableData[];\n\tmeta: ScorecardMeta;\n}) {\n\tif (!dataEngine.isDone) {\n\t\treturn [];\n\t}\n\tconst hiddenRows: number[] = [];\n\tconst rowsWithDataValues = rows.map((row, index) => {\n\t\tconst values = getRowValues({\n\t\t\trow,\n\t\t\tdata: dataEngine.data,\n\t\t\tshowDataInRows,\n\t\t});\n\t\tconst average = meanBy(values, ({ value }) => parseFloat(value!));\n\t\treturn {\n\t\t\trow,\n\t\t\tindex,\n\t\t\tvalues,\n\t\t\taverage,\n\t\t};\n\t});\n\tif (!emptyRows) {\n\t\t//Filter out all e\n\t\tconst emptyRows = rowsWithDataValues\n\t\t\t.filter(({ values }) => isEmpty(values))\n\t\t\t.map(({ index }) => index);\n\t\thiddenRows.push(...emptyRows);\n\t}\n\n\tif (averageDisplayType !== \"ALL\") {\n\t\tconst average = getAverageValue({\n\t\t\tdataValues: dataEngine.data,\n\t\t\tmeta,\n\t\t});\n\t\tif (averageDisplayType === \"BELOW_AVERAGE\") {\n\t\t\tconst aboveAverageRows = rowsWithDataValues\n\t\t\t\t.filter(({ average: rowAverage }) => rowAverage > average)\n\t\t\t\t.map(({ index }) => index);\n\t\t\thiddenRows.push(...aboveAverageRows);\n\t\t} else {\n\t\t\tconst belowAverageRows = rowsWithDataValues\n\t\t\t\t.filter(({ average: rowAverage }) => rowAverage < average)\n\t\t\t\t.map(({ index }) => index);\n\t\t\thiddenRows.push(...belowAverageRows);\n\t\t}\n\t}\n\n\treturn hiddenRows;\n}\n\nexport function useTableRows(): ScorecardTableData[] {\n\tconst meta = useScorecardMeta();\n\tconst { data: dataEngine } = useScorecardData();\n\tconst showDataInRows = useScorecardStateSelectorValue<boolean>([\n\t\t\"options\",\n\t\t\"showDataInRows\",\n\t]);\n\tconst emptyRows = useScorecardStateSelectorValue<boolean>([\n\t\t\"options\",\n\t\t\"emptyRows\",\n\t]);\n\tconst averageDisplayType = useScorecardStateSelectorValue<\n\t\tScorecardViewOptions[\"averageDisplayType\"]\n\t>([\"options\", \"averageDisplayType\"]);\n\n\tconst config = useScorecardConfig();\n\n\tconst [hiddenRowIndexes, setHiddenRowIndexes] = useState<number[]>([]);\n\n\tif (meta == null) return [];\n\n\tconst rows = useMemo(() => {\n\t\tconst rows = getRowsFromMeta({\n\t\t\tmeta,\n\t\t\tshowDataInRows,\n\t\t\tconfig,\n\t\t});\n\n\t\tif (isEmpty(hiddenRowIndexes)) {\n\t\t\treturn rows;\n\t\t}\n\n\t\treturn rows.filter((_, index) => !hiddenRowIndexes.includes(index));\n\t}, [meta, showDataInRows, config, hiddenRowIndexes]);\n\n\tuseEffect(() => {\n\t\tconst listener = (completed: boolean) => {\n\t\t\tif (completed) {\n\t\t\t\tsetHiddenRowIndexes(\n\t\t\t\t\tfilterRows({\n\t\t\t\t\t\tmeta,\n\t\t\t\t\t\tdataEngine,\n\t\t\t\t\t\tshowDataInRows,\n\t\t\t\t\t\trows,\n\t\t\t\t\t\taverageDisplayType,\n\t\t\t\t\t\temptyRows,\n\t\t\t\t\t}),\n\t\t\t\t);\n\t\t\t}\n\t\t};\n\t\tif (dataEngine.isDone) {\n\t\t\tsetHiddenRowIndexes(\n\t\t\t\tfilterRows({\n\t\t\t\t\tmeta,\n\t\t\t\t\tdataEngine,\n\t\t\t\t\tshowDataInRows,\n\t\t\t\t\trows,\n\t\t\t\t\taverageDisplayType,\n\t\t\t\t\temptyRows,\n\t\t\t\t}),\n\t\t\t);\n\t\t} else {\n\t\t\treturn dataEngine.addOnCompleteListener(listener);\n\t\t}\n\t}, [averageDisplayType, emptyRows, showDataInRows]);\n\n\treturn rows;\n}\n\nexport function useColumnVisibility() {\n\tconst showAverageColumn = useScorecardStateSelectorValue<boolean>([\n\t\t\"options\",\n\t\t\"averageColumn\",\n\t]);\n\tconst showItemNumber = useScorecardStateSelectorValue<boolean>([\n\t\t\"options\",\n\t\t\"itemNumber\",\n\t]);\n\tconst showDataInRows = useScorecardStateSelectorValue<boolean>([\n\t\t\"options\",\n\t\t\"showDataInRows\",\n\t]);\n\n\tconst disableExpanding =\n\t\tuseScorecardStateSelectorValue<boolean>([\n\t\t\t\"options\",\n\t\t\t\"disableExpanding\",\n\t\t]) ?? false;\n\n\tconst [columnVisibility, setColumnVisibility] = useState<VisibilityState>({\n\t\taverage: showAverageColumn,\n\t\tcount: showItemNumber,\n\t\texpand: !disableExpanding,\n\t});\n\n\tuseEffect(() => {\n\t\tsetColumnVisibility({\n\t\t\taverage: showAverageColumn,\n\t\t\tcount: showItemNumber,\n\t\t\texpand: !disableExpanding && !showDataInRows,\n\t\t});\n\t}, [showAverageColumn, showItemNumber, disableExpanding, showDataInRows]);\n\n\treturn {\n\t\tcolumnVisibility,\n\t\tsetColumnVisibility,\n\t};\n}\n\nexport function useRowExpanding() {\n\tconst [expanded, setExpanded] = useState<ExpandedState>({});\n\tconst disableExpanding =\n\t\tuseScorecardStateSelectorValue<boolean>([\n\t\t\t\"options\",\n\t\t\t\"disableExpanding\",\n\t\t]) ?? false;\n\n\tconst getRowCanExpand = useCallback((row: Row<ScorecardTableData>) => {\n\t\tconst expandCell = row\n\t\t\t.getVisibleCells()\n\t\t\t.find(({ id }) => id.includes(\"expand\"));\n\n\t\tif (!expandCell) return false;\n\t\treturn expandCell.getValue() as boolean;\n\t}, []);\n\n\treturn {\n\t\texpanded,\n\t\tonExpandedChange: disableExpanding ? undefined : setExpanded,\n\t\tgetRowCanExpand,\n\t};\n}\n\nexport function useTableSetup(): TableOptions<ScorecardTableData> {\n\tconst [columnFilters, setColumnFilters] = useState<ColumnFiltersState>([]);\n\tconst disablePagination = useScorecardStateSelectorValue<boolean>([\n\t\t\"options\",\n\t\t\"disablePagination\",\n\t]);\n\tconst [pagination, setPagination] = useState<PaginationState>({\n\t\tpageSize: 50,\n\t\tpageIndex: 0,\n\t});\n\n\tconst { columnVisibility, setColumnVisibility } = useColumnVisibility();\n\tconst { expanded, onExpandedChange, getRowCanExpand } = useRowExpanding();\n\n\tconst [sorting, setSorting] = useState<SortingState>([]);\n\tconst columns = useTableColumns();\n\tconst data = useTableRows();\n\n\treturn useMemo(\n\t\t() => ({\n\t\t\tcolumns,\n\t\t\tdata,\n\t\t\tstate: {\n\t\t\t\tcolumnFilters,\n\t\t\t\tsorting,\n\t\t\t\tcolumnVisibility,\n\t\t\t\texpanded,\n\t\t\t\t...(disablePagination ? {} : { pagination }),\n\t\t\t},\n\t\t\tmeta: {\n\t\t\t\tdisablePagination,\n\t\t\t},\n\t\t\tautoResetPageIndex: true,\n\t\t\tonExpandedChange: onExpandedChange,\n\t\t\trowCount: data.length,\n\t\t\tgetRowCanExpand,\n\t\t\tonColumnFiltersChange: setColumnFilters,\n\t\t\tonSortingChange: setSorting,\n\t\t\tgetCoreRowModel: getCoreRowModel(),\n\t\t\tgetFilteredRowModel: getFilteredRowModel(),\n\t\t\tgetExpandedRowModel: getExpandedRowModel(),\n\t\t\tgetPaginationRowModel: disablePagination\n\t\t\t\t? undefined\n\t\t\t\t: getPaginationRowModel(),\n\t\t\tgetSortedRowModel: getSortedRowModel(),\n\t\t\tonColumnVisibilityChange: setColumnVisibility,\n\t\t\tonPaginationChange: disablePagination ? undefined : setPagination,\n\t\t}),\n\t\t[\n\t\t\tcolumns,\n\t\t\tdata,\n\t\t\tcolumnFilters,\n\t\t\tsorting,\n\t\t\tcolumnVisibility,\n\t\t\tpagination,\n\t\t\tgetRowCanExpand,\n\t\t\texpanded,\n\t\t],\n\t);\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../src/hooks/table.ts"],"names":["emptyRows","rows"],"mappings":"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","file":"table.js","sourcesContent":["import {\n\ttype ColumnFiltersState,\n\ttype ExpandedState,\n\tgetCoreRowModel,\n\tgetExpandedRowModel,\n\tgetFilteredRowModel,\n\tgetPaginationRowModel,\n\tgetSortedRowModel,\n\ttype PaginationState,\n\ttype Row,\n\ttype SortingState,\n\ttype TableOptions,\n\ttype VisibilityState,\n} from \"@tanstack/react-table\";\nimport { useTableColumns } from \"./columns\";\nimport type {\n\tScorecardTableData,\n\tScorecardViewOptions,\n} from \"../schemas/config\";\nimport { useCallback, useEffect, useMemo, useState } from \"react\";\nimport {\n\ttype ScorecardMeta,\n\tuseScorecardConfig,\n\tuseScorecardData,\n\tuseScorecardMeta,\n} from \"../components\";\nimport { type AnalyticsData, getRowsFromMeta } from \"../utils/data\";\nimport { isEmpty, meanBy } from \"lodash\";\nimport type { ScorecardDataEngine } from \"../utils/dataEngine\";\nimport { getAverageValue } from \"../utils/columns\";\nimport { useScorecardViewStateValue } from \"../utils/viewState\";\n\nexport function getRowValues({\n\tdata,\n\tshowDataInRows,\n\trow,\n}: {\n\trow: ScorecardTableData;\n\tdata: AnalyticsData[];\n\tshowDataInRows: boolean;\n}): AnalyticsData[] {\n\treturn data.filter((datum) => {\n\t\tif (showDataInRows) {\n\t\t\treturn row\n\t\t\t\t.dataHolder!.dataSources.map(({ id }) => id)\n\t\t\t\t.includes(datum.dx!);\n\t\t}\n\t\treturn datum.ou === row.orgUnit!.uid;\n\t});\n}\n\nexport function filterRows({\n\trows,\n\temptyRows,\n\tdataEngine,\n\tshowDataInRows,\n\taverageDisplayType,\n\tmeta,\n}: {\n\temptyRows: ScorecardViewOptions[\"emptyRows\"];\n\tshowDataInRows: boolean;\n\taverageDisplayType: ScorecardViewOptions[\"averageDisplayType\"];\n\tdataEngine: ScorecardDataEngine;\n\trows: ScorecardTableData[];\n\tmeta: ScorecardMeta;\n}) {\n\tif (!dataEngine.isDone) {\n\t\treturn [];\n\t}\n\tconst hiddenRows: number[] = [];\n\tconst rowsWithDataValues = rows.map((row, index) => {\n\t\tconst values = getRowValues({\n\t\t\trow,\n\t\t\tdata: dataEngine.data,\n\t\t\tshowDataInRows,\n\t\t});\n\t\tconst average = meanBy(values, ({ value }) => parseFloat(value!));\n\t\treturn {\n\t\t\trow,\n\t\t\tindex,\n\t\t\tvalues,\n\t\t\taverage,\n\t\t};\n\t});\n\tif (!emptyRows) {\n\t\t//Filter out all e\n\t\tconst emptyRows = rowsWithDataValues\n\t\t\t.filter(({ values }) => isEmpty(values))\n\t\t\t.map(({ index }) => index);\n\t\thiddenRows.push(...emptyRows);\n\t}\n\n\tif (averageDisplayType !== \"ALL\") {\n\t\tconst average = getAverageValue({\n\t\t\tdataValues: dataEngine.data,\n\t\t\tmeta,\n\t\t});\n\t\tif (averageDisplayType === \"BELOW_AVERAGE\") {\n\t\t\tconst aboveAverageRows = rowsWithDataValues\n\t\t\t\t.filter(({ average: rowAverage }) => rowAverage > average)\n\t\t\t\t.map(({ index }) => index);\n\t\t\thiddenRows.push(...aboveAverageRows);\n\t\t} else {\n\t\t\tconst belowAverageRows = rowsWithDataValues\n\t\t\t\t.filter(({ average: rowAverage }) => rowAverage < average)\n\t\t\t\t.map(({ index }) => index);\n\t\t\thiddenRows.push(...belowAverageRows);\n\t\t}\n\t}\n\n\treturn hiddenRows;\n}\n\nexport function useTableRows(): ScorecardTableData[] {\n\tconst meta = useScorecardMeta();\n\tconst { data: dataEngine } = useScorecardData();\n\tconst showDataInRows =\n\t\tuseScorecardViewStateValue<boolean>(\"showDataInRows\") ?? false;\n\tconst emptyRows = useScorecardViewStateValue<boolean>(\"emptyRows\");\n\tconst averageDisplayType =\n\t\tuseScorecardViewStateValue<ScorecardViewOptions[\"averageDisplayType\"]>(\n\t\t\t\"averageDisplayType\",\n\t\t);\n\n\tconst config = useScorecardConfig();\n\n\tconst [hiddenRowIndexes, setHiddenRowIndexes] = useState<number[]>([]);\n\n\tif (meta == null) return [];\n\n\tconst rows = useMemo(() => {\n\t\tconst rows = getRowsFromMeta({\n\t\t\tmeta,\n\t\t\tshowDataInRows,\n\t\t\tconfig,\n\t\t});\n\n\t\tif (isEmpty(hiddenRowIndexes)) {\n\t\t\treturn rows;\n\t\t}\n\n\t\treturn rows.filter((_, index) => !hiddenRowIndexes.includes(index));\n\t}, [meta, showDataInRows, config, hiddenRowIndexes]);\n\n\tuseEffect(() => {\n\t\tconst listener = (completed: boolean) => {\n\t\t\tif (completed) {\n\t\t\t\tsetHiddenRowIndexes(\n\t\t\t\t\tfilterRows({\n\t\t\t\t\t\tmeta,\n\t\t\t\t\t\tdataEngine,\n\t\t\t\t\t\tshowDataInRows,\n\t\t\t\t\t\trows,\n\t\t\t\t\t\taverageDisplayType,\n\t\t\t\t\t\temptyRows,\n\t\t\t\t\t}),\n\t\t\t\t);\n\t\t\t}\n\t\t};\n\t\tif (dataEngine.isDone) {\n\t\t\tsetHiddenRowIndexes(\n\t\t\t\tfilterRows({\n\t\t\t\t\tmeta,\n\t\t\t\t\tdataEngine,\n\t\t\t\t\tshowDataInRows,\n\t\t\t\t\trows,\n\t\t\t\t\taverageDisplayType,\n\t\t\t\t\temptyRows,\n\t\t\t\t}),\n\t\t\t);\n\t\t} else {\n\t\t\treturn dataEngine.addOnCompleteListener(listener);\n\t\t}\n\t}, [averageDisplayType, emptyRows, showDataInRows]);\n\n\treturn rows;\n}\n\nexport function useColumnVisibility() {\n\tconst showAverageColumn =\n\t\tuseScorecardViewStateValue<boolean>(\"averageColumn\") ?? false;\n\tconst showItemNumber =\n\t\tuseScorecardViewStateValue<boolean>(\"itemNumber\") ?? false;\n\tconst showDataInRows =\n\t\tuseScorecardViewStateValue<boolean>(\"showDataInRows\");\n\n\tconst disableExpanding =\n\t\tuseScorecardViewStateValue<boolean>(\"disableExpanding\") ?? false;\n\n\tconst [columnVisibility, setColumnVisibility] = useState<VisibilityState>({\n\t\taverage: showAverageColumn,\n\t\tcount: showItemNumber,\n\t\texpand: !disableExpanding,\n\t});\n\n\tuseEffect(() => {\n\t\tsetColumnVisibility({\n\t\t\taverage: showAverageColumn,\n\t\t\tcount: showItemNumber,\n\t\t\texpand: !disableExpanding && !showDataInRows,\n\t\t});\n\t}, [showAverageColumn, showItemNumber, disableExpanding, showDataInRows]);\n\n\treturn {\n\t\tcolumnVisibility,\n\t\tsetColumnVisibility,\n\t};\n}\n\nexport function useRowExpanding() {\n\tconst [expanded, setExpanded] = useState<ExpandedState>({});\n\tconst disableExpanding =\n\t\tuseScorecardViewStateValue<boolean>(\"disableExpanding\") ?? false;\n\n\tconst getRowCanExpand = useCallback((row: Row<ScorecardTableData>) => {\n\t\tconst expandCell = row\n\t\t\t.getVisibleCells()\n\t\t\t.find(({ id }) => id.includes(\"expand\"));\n\n\t\tif (!expandCell) return false;\n\t\treturn expandCell.getValue() as boolean;\n\t}, []);\n\n\treturn {\n\t\texpanded,\n\t\tonExpandedChange: disableExpanding ? undefined : setExpanded,\n\t\tgetRowCanExpand,\n\t};\n}\n\nexport function useTableSetup(): TableOptions<ScorecardTableData> {\n\tconst [columnFilters, setColumnFilters] = useState<ColumnFiltersState>([]);\n\tconst disablePagination =\n\t\tuseScorecardViewStateValue<boolean>(\"disablePagination\");\n\tconst [pagination, setPagination] = useState<PaginationState>({\n\t\tpageSize: 50,\n\t\tpageIndex: 0,\n\t});\n\n\tconst { columnVisibility, setColumnVisibility } = useColumnVisibility();\n\tconst { expanded, onExpandedChange, getRowCanExpand } = useRowExpanding();\n\n\tconst [sorting, setSorting] = useState<SortingState>([]);\n\tconst columns = useTableColumns();\n\tconst data = useTableRows();\n\n\treturn useMemo(\n\t\t() => ({\n\t\t\tcolumns,\n\t\t\tdata,\n\t\t\tstate: {\n\t\t\t\tcolumnFilters,\n\t\t\t\tsorting,\n\t\t\t\tcolumnVisibility,\n\t\t\t\texpanded,\n\t\t\t\t...(disablePagination ? {} : { pagination }),\n\t\t\t},\n\t\t\tmeta: {\n\t\t\t\tdisablePagination,\n\t\t\t},\n\t\t\tautoResetPageIndex: true,\n\t\t\tonExpandedChange: onExpandedChange,\n\t\t\trowCount: data.length,\n\t\t\tgetRowCanExpand,\n\t\t\tonColumnFiltersChange: setColumnFilters,\n\t\t\tonSortingChange: setSorting,\n\t\t\tgetCoreRowModel: getCoreRowModel(),\n\t\t\tgetFilteredRowModel: getFilteredRowModel(),\n\t\t\tgetExpandedRowModel: getExpandedRowModel(),\n\t\t\tgetPaginationRowModel: disablePagination\n\t\t\t\t? undefined\n\t\t\t\t: getPaginationRowModel(),\n\t\t\tgetSortedRowModel: getSortedRowModel(),\n\t\t\tonColumnVisibilityChange: setColumnVisibility,\n\t\t\tonPaginationChange: disablePagination ? undefined : setPagination,\n\t\t}),\n\t\t[\n\t\t\tcolumns,\n\t\t\tdata,\n\t\t\tcolumnFilters,\n\t\t\tsorting,\n\t\t\tcolumnVisibility,\n\t\t\tpagination,\n\t\t\tgetRowCanExpand,\n\t\t\texpanded,\n\t\t],\n\t);\n}\n"]}
|
package/dist/esm/index.js
CHANGED
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import { useScorecardDimensionStateEngine } from '../components';
|
|
2
|
+
import { useState, useEffect } from 'react';
|
|
3
|
+
|
|
4
|
+
function createDimensionStateEngine({
|
|
5
|
+
orgUnitSelection,
|
|
6
|
+
periodSelection
|
|
7
|
+
}) {
|
|
8
|
+
return {
|
|
9
|
+
orgUnitSelection,
|
|
10
|
+
periodSelection,
|
|
11
|
+
listeners: [],
|
|
12
|
+
addListener(listener) {
|
|
13
|
+
this.listeners.push(listener);
|
|
14
|
+
return () => {
|
|
15
|
+
this.listeners = this.listeners.filter(
|
|
16
|
+
(l) => l !== listener
|
|
17
|
+
);
|
|
18
|
+
};
|
|
19
|
+
},
|
|
20
|
+
removeListener(listener) {
|
|
21
|
+
this.listeners = this.listeners.filter(
|
|
22
|
+
(l) => l !== listener
|
|
23
|
+
);
|
|
24
|
+
},
|
|
25
|
+
update({ orgUnitSelection: orgUnitSelection2, periodSelection: periodSelection2 }) {
|
|
26
|
+
this.orgUnitSelection = orgUnitSelection2;
|
|
27
|
+
this.periodSelection = periodSelection2;
|
|
28
|
+
for (const listener of this.listeners) {
|
|
29
|
+
if (listener.type === "orgUnit") {
|
|
30
|
+
listener.listener(orgUnitSelection2);
|
|
31
|
+
}
|
|
32
|
+
if (listener.type === "period") {
|
|
33
|
+
listener.listener(periodSelection2);
|
|
34
|
+
}
|
|
35
|
+
if (listener.type === "all") {
|
|
36
|
+
listener.listener({
|
|
37
|
+
orgUnitSelection: orgUnitSelection2,
|
|
38
|
+
periodSelection: periodSelection2
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
updatePeriodSelection(periodSelection2) {
|
|
44
|
+
this.periodSelection = periodSelection2;
|
|
45
|
+
for (const listener of this.listeners) {
|
|
46
|
+
if (listener.type === "period") {
|
|
47
|
+
listener.listener(periodSelection2);
|
|
48
|
+
}
|
|
49
|
+
if (listener.type === "all") {
|
|
50
|
+
listener.listener({
|
|
51
|
+
orgUnitSelection: this.orgUnitSelection,
|
|
52
|
+
periodSelection: periodSelection2
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
updateOrgUnitSelection(orgUnitSelection2) {
|
|
58
|
+
this.orgUnitSelection = orgUnitSelection2;
|
|
59
|
+
for (const listener of this.listeners) {
|
|
60
|
+
if (listener.type === "orgUnit") {
|
|
61
|
+
listener.listener(orgUnitSelection2);
|
|
62
|
+
}
|
|
63
|
+
if (listener.type === "all") {
|
|
64
|
+
listener.listener({
|
|
65
|
+
orgUnitSelection: orgUnitSelection2,
|
|
66
|
+
periodSelection: this.periodSelection
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
function useUpdateDimensionState(type) {
|
|
74
|
+
const dimensionEngine = useScorecardDimensionStateEngine();
|
|
75
|
+
return (value) => {
|
|
76
|
+
switch (type) {
|
|
77
|
+
case "orgUnit":
|
|
78
|
+
dimensionEngine.updateOrgUnitSelection(
|
|
79
|
+
value
|
|
80
|
+
);
|
|
81
|
+
break;
|
|
82
|
+
case "period":
|
|
83
|
+
dimensionEngine.updatePeriodSelection(value);
|
|
84
|
+
break;
|
|
85
|
+
case "all":
|
|
86
|
+
dimensionEngine.update(value);
|
|
87
|
+
}
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
function usePeriodSelectionValue() {
|
|
91
|
+
const dimensionEngine = useScorecardDimensionStateEngine();
|
|
92
|
+
const [periodSelection, setPeriodSelection] = useState(
|
|
93
|
+
dimensionEngine.periodSelection
|
|
94
|
+
);
|
|
95
|
+
useEffect(() => {
|
|
96
|
+
const unsubscribe = dimensionEngine.addListener({
|
|
97
|
+
type: "period",
|
|
98
|
+
listener: (periodSelection2) => {
|
|
99
|
+
setPeriodSelection(periodSelection2);
|
|
100
|
+
}
|
|
101
|
+
});
|
|
102
|
+
return () => {
|
|
103
|
+
unsubscribe();
|
|
104
|
+
};
|
|
105
|
+
}, []);
|
|
106
|
+
return periodSelection;
|
|
107
|
+
}
|
|
108
|
+
function useHasOnePeriod() {
|
|
109
|
+
const periodSelection = usePeriodSelectionValue();
|
|
110
|
+
return periodSelection.periods.length === 1;
|
|
111
|
+
}
|
|
112
|
+
function useOrgUnitSelectionValue() {
|
|
113
|
+
const dimensionEngine = useScorecardDimensionStateEngine();
|
|
114
|
+
const [orgUnitSelection, setOrgUnitSelection] = useState(
|
|
115
|
+
dimensionEngine.orgUnitSelection
|
|
116
|
+
);
|
|
117
|
+
useEffect(() => {
|
|
118
|
+
const unsubscribe = dimensionEngine.addListener({
|
|
119
|
+
type: "orgUnit",
|
|
120
|
+
listener: (periodSelection) => {
|
|
121
|
+
setOrgUnitSelection(periodSelection);
|
|
122
|
+
}
|
|
123
|
+
});
|
|
124
|
+
return () => {
|
|
125
|
+
unsubscribe();
|
|
126
|
+
};
|
|
127
|
+
}, []);
|
|
128
|
+
return orgUnitSelection;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
export { createDimensionStateEngine, useHasOnePeriod, useOrgUnitSelectionValue, usePeriodSelectionValue, useUpdateDimensionState };
|
|
132
|
+
//# sourceMappingURL=dimensionState.js.map
|
|
133
|
+
//# sourceMappingURL=dimensionState.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/utils/dimensionState.ts"],"names":["orgUnitSelection","periodSelection"],"mappings":"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","file":"dimensionState.js","sourcesContent":["import type { OrgUnitSelection, PeriodSelection } from \"../schemas/config\";\nimport { useScorecardDimensionStateEngine } from \"../components\";\nimport { useEffect, useState } from \"react\";\n\nexport type DimensionState = {\n\torgUnitSelection: OrgUnitSelection;\n\tperiodSelection: PeriodSelection;\n};\nexport type OrgUnitListener = {\n\ttype: \"orgUnit\";\n\tlistener: (orgUnitSelection: OrgUnitSelection) => void;\n};\nexport type PeriodListener = {\n\ttype: \"period\";\n\tlistener: (periodSelection: PeriodSelection) => void;\n};\nexport type AllDimensionListener = {\n\ttype: \"all\";\n\tlistener: (dimensionState: DimensionState) => void;\n};\nexport type DimensionListener =\n\t| OrgUnitListener\n\t| PeriodListener\n\t| AllDimensionListener;\n\nexport type DimensionStateEngine = ReturnType<\n\ttypeof createDimensionStateEngine\n>;\n\nexport function createDimensionStateEngine({\n\torgUnitSelection,\n\tperiodSelection,\n}: DimensionState) {\n\treturn {\n\t\torgUnitSelection,\n\t\tperiodSelection,\n\t\tlisteners: [] as DimensionListener[],\n\t\taddListener(listener: DimensionListener) {\n\t\t\tthis.listeners.push(listener);\n\t\t\treturn () => {\n\t\t\t\tthis.listeners = this.listeners.filter(\n\t\t\t\t\t(l: DimensionListener) => l !== listener,\n\t\t\t\t);\n\t\t\t};\n\t\t},\n\t\tremoveListener(listener: DimensionListener) {\n\t\t\tthis.listeners = this.listeners.filter(\n\t\t\t\t(l: DimensionListener) => l !== listener,\n\t\t\t);\n\t\t},\n\t\tupdate({ orgUnitSelection, periodSelection }: DimensionState) {\n\t\t\tthis.orgUnitSelection = orgUnitSelection;\n\t\t\tthis.periodSelection = periodSelection;\n\t\t\tfor (const listener of this.listeners) {\n\t\t\t\tif (listener.type === \"orgUnit\") {\n\t\t\t\t\tlistener.listener(orgUnitSelection);\n\t\t\t\t}\n\t\t\t\tif (listener.type === \"period\") {\n\t\t\t\t\tlistener.listener(periodSelection);\n\t\t\t\t}\n\t\t\t\tif (listener.type === \"all\") {\n\t\t\t\t\tlistener.listener({\n\t\t\t\t\t\torgUnitSelection,\n\t\t\t\t\t\tperiodSelection,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tupdatePeriodSelection(periodSelection: PeriodSelection) {\n\t\t\tthis.periodSelection = periodSelection;\n\t\t\tfor (const listener of this.listeners) {\n\t\t\t\tif (listener.type === \"period\") {\n\t\t\t\t\tlistener.listener(periodSelection);\n\t\t\t\t}\n\t\t\t\tif (listener.type === \"all\") {\n\t\t\t\t\tlistener.listener({\n\t\t\t\t\t\torgUnitSelection: this.orgUnitSelection,\n\t\t\t\t\t\tperiodSelection,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tupdateOrgUnitSelection(orgUnitSelection: OrgUnitSelection) {\n\t\t\tthis.orgUnitSelection = orgUnitSelection;\n\t\t\tfor (const listener of this.listeners) {\n\t\t\t\tif (listener.type === \"orgUnit\") {\n\t\t\t\t\tlistener.listener(orgUnitSelection);\n\t\t\t\t}\n\t\t\t\tif (listener.type === \"all\") {\n\t\t\t\t\tlistener.listener({\n\t\t\t\t\t\torgUnitSelection: orgUnitSelection,\n\t\t\t\t\t\tperiodSelection: this.periodSelection,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t};\n}\n\nexport function useUpdateDimensionState(type: \"orgUnit\" | \"period\" | \"all\") {\n\tconst dimensionEngine = useScorecardDimensionStateEngine();\n\treturn (value: OrgUnitSelection | PeriodSelection | DimensionState) => {\n\t\tswitch (type) {\n\t\t\tcase \"orgUnit\":\n\t\t\t\tdimensionEngine.updateOrgUnitSelection(\n\t\t\t\t\tvalue as OrgUnitSelection,\n\t\t\t\t);\n\t\t\t\tbreak;\n\t\t\tcase \"period\":\n\t\t\t\tdimensionEngine.updatePeriodSelection(value as PeriodSelection);\n\t\t\t\tbreak;\n\t\t\tcase \"all\":\n\t\t\t\tdimensionEngine.update(value as DimensionState);\n\t\t}\n\t};\n}\n\nexport function usePeriodSelectionValue() {\n\tconst dimensionEngine = useScorecardDimensionStateEngine();\n\tconst [periodSelection, setPeriodSelection] = useState<PeriodSelection>(\n\t\tdimensionEngine.periodSelection,\n\t);\n\n\tuseEffect(() => {\n\t\tconst unsubscribe = dimensionEngine.addListener({\n\t\t\ttype: \"period\",\n\t\t\tlistener: (periodSelection) => {\n\t\t\t\tsetPeriodSelection(periodSelection);\n\t\t\t},\n\t\t});\n\n\t\treturn () => {\n\t\t\tunsubscribe();\n\t\t};\n\t}, []);\n\n\treturn periodSelection;\n}\n\nexport function useHasOnePeriod() {\n\tconst periodSelection = usePeriodSelectionValue();\n\treturn periodSelection.periods.length === 1;\n}\n\nexport function useOrgUnitSelectionValue() {\n\tconst dimensionEngine = useScorecardDimensionStateEngine();\n\tconst [orgUnitSelection, setOrgUnitSelection] = useState<OrgUnitSelection>(\n\t\tdimensionEngine.orgUnitSelection,\n\t);\n\n\tuseEffect(() => {\n\t\tconst unsubscribe = dimensionEngine.addListener({\n\t\t\ttype: \"orgUnit\",\n\t\t\tlistener: (periodSelection) => {\n\t\t\t\tsetOrgUnitSelection(periodSelection);\n\t\t\t},\n\t\t});\n\n\t\treturn () => {\n\t\t\tunsubscribe();\n\t\t};\n\t}, []);\n\n\treturn orgUnitSelection;\n}\n"]}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { set, get } from 'lodash';
|
|
2
|
+
import { useScorecardViewStateEngine } from '../components';
|
|
3
|
+
import { useState, useEffect } from 'react';
|
|
4
|
+
|
|
5
|
+
function createScorecardViewStateEngine(defaultOptions) {
|
|
6
|
+
return {
|
|
7
|
+
options: defaultOptions,
|
|
8
|
+
listeners: [],
|
|
9
|
+
optionsListeners: [],
|
|
10
|
+
updateOption(key, value) {
|
|
11
|
+
set(this.options, key, value);
|
|
12
|
+
const listeners = this.listeners.filter(
|
|
13
|
+
(listener) => listener.key === key
|
|
14
|
+
);
|
|
15
|
+
for (const listener of listeners) {
|
|
16
|
+
listener.listener(value);
|
|
17
|
+
}
|
|
18
|
+
for (const listener of this.optionsListeners) {
|
|
19
|
+
listener(this.options);
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
addOptionListener(listener) {
|
|
23
|
+
this.optionsListeners.push(listener);
|
|
24
|
+
return () => {
|
|
25
|
+
this.optionsListeners = this.optionsListeners.filter(
|
|
26
|
+
(l) => l !== listener
|
|
27
|
+
);
|
|
28
|
+
};
|
|
29
|
+
},
|
|
30
|
+
addListener(listener) {
|
|
31
|
+
this.listeners.push(listener);
|
|
32
|
+
return () => {
|
|
33
|
+
this.listeners = this.listeners.filter(
|
|
34
|
+
(l) => l !== listener
|
|
35
|
+
);
|
|
36
|
+
};
|
|
37
|
+
},
|
|
38
|
+
removeListener(listener) {
|
|
39
|
+
this.listeners = this.listeners.filter(
|
|
40
|
+
(l) => listener !== l
|
|
41
|
+
);
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
function useScorecardViewStateValue(key) {
|
|
46
|
+
const viewEngine = useScorecardViewStateEngine();
|
|
47
|
+
const [value, setValue] = useState(
|
|
48
|
+
get(viewEngine.options, key)
|
|
49
|
+
);
|
|
50
|
+
useEffect(() => {
|
|
51
|
+
const unsubscribe = viewEngine.addListener({
|
|
52
|
+
key,
|
|
53
|
+
listener(value2) {
|
|
54
|
+
setValue(value2);
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
return () => {
|
|
58
|
+
unsubscribe();
|
|
59
|
+
};
|
|
60
|
+
}, []);
|
|
61
|
+
return value;
|
|
62
|
+
}
|
|
63
|
+
function useScorecardViewOptions() {
|
|
64
|
+
const viewEngine = useScorecardViewStateEngine();
|
|
65
|
+
const [options, setOptions] = useState(
|
|
66
|
+
viewEngine.options
|
|
67
|
+
);
|
|
68
|
+
useEffect(() => {
|
|
69
|
+
const unsubscribe = viewEngine.addOptionListener(setOptions);
|
|
70
|
+
return () => {
|
|
71
|
+
unsubscribe();
|
|
72
|
+
};
|
|
73
|
+
}, []);
|
|
74
|
+
return options;
|
|
75
|
+
}
|
|
76
|
+
function useUpdateScorecardViewState(key) {
|
|
77
|
+
const viewEngine = useScorecardViewStateEngine();
|
|
78
|
+
return (value) => {
|
|
79
|
+
viewEngine.updateOption(key, value);
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
export { createScorecardViewStateEngine, useScorecardViewOptions, useScorecardViewStateValue, useUpdateScorecardViewState };
|
|
84
|
+
//# sourceMappingURL=viewState.js.map
|
|
85
|
+
//# sourceMappingURL=viewState.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/utils/viewState.ts"],"names":["value"],"mappings":";;;;AAgBO,SAAS,+BACf,cACC,EAAA;AACD,EAAO,OAAA;AAAA,IACN,OAAS,EAAA,cAAA;AAAA,IACT,WAAW,EAAC;AAAA,IACZ,kBAAkB,EAAC;AAAA,IACnB,YAAA,CACC,KACA,KACC,EAAA;AACD,MAAI,GAAA,CAAA,IAAA,CAAK,OAAS,EAAA,GAAA,EAAK,KAAK,CAAA;AAC5B,MAAM,MAAA,SAAA,GAAkC,KAAK,SAAU,CAAA,MAAA;AAAA,QACtD,CAAC,QAAiC,KAAA,QAAA,CAAS,GAAQ,KAAA;AAAA,OACpD;AACA,MAAA,KAAA,MAAW,YAAY,SAAW,EAAA;AACjC,QAAA,QAAA,CAAS,SAAS,KAAK,CAAA;AAAA;AAExB,MAAW,KAAA,MAAA,QAAA,IAAY,KAAK,gBAAkB,EAAA;AAC7C,QAAA,QAAA,CAAS,KAAK,OAAO,CAAA;AAAA;AACtB,KACD;AAAA,IACA,kBAAkB,QAAmD,EAAA;AACpE,MAAK,IAAA,CAAA,gBAAA,CAAiB,KAAK,QAAQ,CAAA;AAEnC,MAAA,OAAO,MAAM;AACZ,QAAK,IAAA,CAAA,gBAAA,GAAmB,KAAK,gBAAiB,CAAA,MAAA;AAAA,UAC7C,CAAC,MACA,CAAM,KAAA;AAAA,SACR;AAAA,OACD;AAAA,KACD;AAAA,IACA,YAAY,QAA8B,EAAA;AACzC,MAAK,IAAA,CAAA,SAAA,CAAU,KAAK,QAAQ,CAAA;AAC5B,MAAA,OAAO,MAAM;AACZ,QAAK,IAAA,CAAA,SAAA,GAAY,KAAK,SAAU,CAAA,MAAA;AAAA,UAC/B,CAAC,MAA0B,CAAM,KAAA;AAAA,SAClC;AAAA,OACD;AAAA,KACD;AAAA,IACA,eAAe,QAA8B,EAAA;AAC5C,MAAK,IAAA,CAAA,SAAA,GAAY,KAAK,SAAU,CAAA,MAAA;AAAA,QAC/B,CAAC,MAA0B,QAAa,KAAA;AAAA,OACzC;AAAA;AACD,GACD;AACD;AAEO,SAAS,2BAEd,GAAiC,EAAA;AAClC,EAAA,MAAM,aAAa,2BAA4B,EAAA;AAC/C,EAAM,MAAA,CAAC,KAAO,EAAA,QAAQ,CAAI,GAAA,QAAA;AAAA,IACzB,GAAA,CAAI,UAAW,CAAA,OAAA,EAAS,GAAG;AAAA,GAC5B;AACA,EAAA,SAAA,CAAU,MAAM;AACf,IAAM,MAAA,WAAA,GAAc,WAAW,WAAY,CAAA;AAAA,MAC1C,GAAA;AAAA,MACA,SAASA,MAAO,EAAA;AACf,QAAA,QAAA,CAASA,MAAkB,CAAA;AAAA;AAC5B,KACA,CAAA;AACD,IAAA,OAAO,MAAM;AACZ,MAAY,WAAA,EAAA;AAAA,KACb;AAAA,GACD,EAAG,EAAE,CAAA;AACL,EAAO,OAAA,KAAA;AACR;AAEO,SAAS,uBAA0B,GAAA;AACzC,EAAA,MAAM,aAAa,2BAA4B,EAAA;AAC/C,EAAM,MAAA,CAAC,OAAS,EAAA,UAAU,CAAI,GAAA,QAAA;AAAA,IAC7B,UAAW,CAAA;AAAA,GACZ;AAEA,EAAA,SAAA,CAAU,MAAM;AACf,IAAM,MAAA,WAAA,GAAc,UAAW,CAAA,iBAAA,CAAkB,UAAU,CAAA;AAE3D,IAAA,OAAO,MAAM;AACZ,MAAY,WAAA,EAAA;AAAA,KACb;AAAA,GACD,EAAG,EAAE,CAAA;AAEL,EAAO,OAAA,OAAA;AACR;AAEO,SAAS,4BAA4B,GAAiC,EAAA;AAC5E,EAAA,MAAM,aAAa,2BAA4B,EAAA;AAC/C,EAAA,OAAO,CAAC,KAA4D,KAAA;AACnE,IAAW,UAAA,CAAA,YAAA,CAAa,KAAK,KAAK,CAAA;AAAA,GACnC;AACD","file":"viewState.js","sourcesContent":["import type { ScorecardViewOptions } from \"../schemas/config\";\nimport { get, set } from \"lodash\";\nimport { useScorecardViewStateEngine } from \"../components\";\nimport { useEffect, useState } from \"react\";\n\nexport type ViewOptionListener = {\n\tkey: keyof ScorecardViewOptions;\n\tlistener: (\n\t\tvalue?: ScorecardViewOptions[keyof ScorecardViewOptions],\n\t) => void;\n};\n\nexport type ScorecardViewStateEngine = ReturnType<\n\ttypeof createScorecardViewStateEngine\n>;\n\nexport function createScorecardViewStateEngine(\n\tdefaultOptions: ScorecardViewOptions,\n) {\n\treturn {\n\t\toptions: defaultOptions as ScorecardViewOptions,\n\t\tlisteners: [] as ViewOptionListener[],\n\t\toptionsListeners: [] as Array<(options: ScorecardViewOptions) => void>,\n\t\tupdateOption(\n\t\t\tkey: keyof ScorecardViewOptions,\n\t\t\tvalue: ScorecardViewOptions[keyof ScorecardViewOptions],\n\t\t) {\n\t\t\tset(this.options, key, value);\n\t\t\tconst listeners: ViewOptionListener[] = this.listeners.filter(\n\t\t\t\t(listener: ViewOptionListener) => listener.key === key,\n\t\t\t);\n\t\t\tfor (const listener of listeners) {\n\t\t\t\tlistener.listener(value);\n\t\t\t}\n\t\t\tfor (const listener of this.optionsListeners) {\n\t\t\t\tlistener(this.options);\n\t\t\t}\n\t\t},\n\t\taddOptionListener(listener: (options: ScorecardViewOptions) => void) {\n\t\t\tthis.optionsListeners.push(listener);\n\n\t\t\treturn () => {\n\t\t\t\tthis.optionsListeners = this.optionsListeners.filter(\n\t\t\t\t\t(l: (options: ScorecardViewOptions) => void) =>\n\t\t\t\t\t\tl !== listener,\n\t\t\t\t);\n\t\t\t};\n\t\t},\n\t\taddListener(listener: ViewOptionListener) {\n\t\t\tthis.listeners.push(listener);\n\t\t\treturn () => {\n\t\t\t\tthis.listeners = this.listeners.filter(\n\t\t\t\t\t(l: ViewOptionListener) => l !== listener,\n\t\t\t\t);\n\t\t\t};\n\t\t},\n\t\tremoveListener(listener: ViewOptionListener) {\n\t\t\tthis.listeners = this.listeners.filter(\n\t\t\t\t(l: ViewOptionListener) => listener !== l,\n\t\t\t);\n\t\t},\n\t};\n}\n\nexport function useScorecardViewStateValue<\n\tValueType extends ScorecardViewOptions[keyof ScorecardViewOptions],\n>(key: keyof ScorecardViewOptions) {\n\tconst viewEngine = useScorecardViewStateEngine();\n\tconst [value, setValue] = useState<ValueType>(\n\t\tget(viewEngine.options, key) as ValueType,\n\t);\n\tuseEffect(() => {\n\t\tconst unsubscribe = viewEngine.addListener({\n\t\t\tkey,\n\t\t\tlistener(value) {\n\t\t\t\tsetValue(value as ValueType);\n\t\t\t},\n\t\t});\n\t\treturn () => {\n\t\t\tunsubscribe();\n\t\t};\n\t}, []);\n\treturn value;\n}\n\nexport function useScorecardViewOptions() {\n\tconst viewEngine = useScorecardViewStateEngine();\n\tconst [options, setOptions] = useState<ScorecardViewOptions>(\n\t\tviewEngine.options,\n\t);\n\n\tuseEffect(() => {\n\t\tconst unsubscribe = viewEngine.addOptionListener(setOptions);\n\n\t\treturn () => {\n\t\t\tunsubscribe();\n\t\t};\n\t}, []);\n\n\treturn options;\n}\n\nexport function useUpdateScorecardViewState(key: keyof ScorecardViewOptions) {\n\tconst viewEngine = useScorecardViewStateEngine();\n\treturn (value: ScorecardViewOptions[keyof ScorecardViewOptions]) => {\n\t\tviewEngine.updateOption(key, value);\n\t};\n}\n"]}
|
package/dist/hooks/columns.js
CHANGED
|
@@ -11,20 +11,14 @@ var metadata = require('./metadata');
|
|
|
11
11
|
var MetaFooterCell = require('../components/ScorecardTable/components/MetaFooterCell');
|
|
12
12
|
var orgUnits = require('../utils/orgUnits');
|
|
13
13
|
var orgUnit = require('./orgUnit');
|
|
14
|
-
var DataProvider = require('../components/DataProvider');
|
|
15
|
-
var state = require('../state');
|
|
16
14
|
var ExpandCell = require('../components/ScorecardTable/components/TableHeader/components/ExpandCell');
|
|
15
|
+
var viewState = require('../utils/viewState');
|
|
16
|
+
var dimensionState = require('../utils/dimensionState');
|
|
17
17
|
|
|
18
18
|
const columnHelper = reactTable.createColumnHelper();
|
|
19
19
|
function useMetaColumns() {
|
|
20
|
-
const showDataInRows =
|
|
21
|
-
|
|
22
|
-
"showDataInRows"
|
|
23
|
-
]);
|
|
24
|
-
const disableExpanding = state.useScorecardStateSelectorValue([
|
|
25
|
-
"options",
|
|
26
|
-
"disableExpanding"
|
|
27
|
-
]);
|
|
20
|
+
const showDataInRows = viewState.useScorecardViewStateValue("showDataInRows");
|
|
21
|
+
const disableExpanding = viewState.useScorecardViewStateValue("disableExpanding");
|
|
28
22
|
const lowestLevel = orgUnit.useLowestOrgUnitLevel();
|
|
29
23
|
return react.useMemo(() => {
|
|
30
24
|
const metaColumns = [
|
|
@@ -132,20 +126,13 @@ function useMetaColumns() {
|
|
|
132
126
|
}
|
|
133
127
|
function useTableColumns() {
|
|
134
128
|
const config = components.useScorecardConfig();
|
|
135
|
-
const { data: dataEngine } =
|
|
129
|
+
const { data: dataEngine } = components.useScorecardData();
|
|
136
130
|
const meta = components.useScorecardMeta();
|
|
137
131
|
const metaColumns = useMetaColumns();
|
|
138
132
|
const calendar = metadata.useCalendar();
|
|
139
|
-
const showDataInRows =
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
]);
|
|
143
|
-
const periodSelection = state.useScorecardStateSelectorValue(
|
|
144
|
-
"periodSelection"
|
|
145
|
-
);
|
|
146
|
-
const orgUnitSelection = state.useScorecardStateSelectorValue(
|
|
147
|
-
"orgUnitSelection"
|
|
148
|
-
);
|
|
133
|
+
const showDataInRows = viewState.useScorecardViewStateValue("showDataInRows");
|
|
134
|
+
const periodSelection = dimensionState.usePeriodSelectionValue();
|
|
135
|
+
const orgUnitSelection = dimensionState.useOrgUnitSelectionValue();
|
|
149
136
|
if (!config || !meta) {
|
|
150
137
|
return [];
|
|
151
138
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/hooks/columns.ts"],"names":["createColumnHelper","useScorecardStateSelectorValue","useLowestOrgUnitLevel","useMemo","getOrgUnitLevel","ExpandCell","NumberCell","LabelCell","MetaFooterCell","useScorecardConfig","useScorecardData","useScorecardMeta","useCalendar","columns","MetaHeaderCell","getOrgUnitColumnHeaders","getDataColumnHeaders","getAverageColumn"],"mappings":"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","file":"columns.js","sourcesContent":["import { type ColumnDef, createColumnHelper } from \"@tanstack/react-table\";\nimport { useScorecardConfig, useScorecardMeta } from \"../components\";\nimport { useMemo } from \"react\";\nimport {\n\ttype ScorecardState,\n\ttype ScorecardTableCellConfig,\n\ttype ScorecardTableData,\n} from \"../schemas/config\";\nimport {\n\tgetAverageColumn,\n\tgetDataColumnHeaders,\n\tgetOrgUnitColumnHeaders,\n} from \"../utils/columns\";\nimport { LabelCell } from \"../components/ScorecardTable/components/TableHeader/components/LabelCell\";\nimport { NumberCell } from \"../components/ScorecardTable/components/TableHeader/components/NumberCell\";\nimport { MetaHeaderCell } from \"../components/ScorecardTable/components/TableHeader/components/MetaHeaderCell\";\nimport { useCalendar } from \"./metadata\";\nimport { MetaFooterCell } from \"../components/ScorecardTable/components/MetaFooterCell\";\nimport { getOrgUnitLevel } from \"../utils/orgUnits\";\nimport { useLowestOrgUnitLevel } from \"./orgUnit\";\nimport { useScorecardData } from \"../components/DataProvider\";\nimport { useScorecardStateSelectorValue } from \"../state\";\nimport { ExpandCell } from \"../components/ScorecardTable/components/TableHeader/components/ExpandCell\";\n\nconst columnHelper = createColumnHelper<ScorecardTableData>();\n\nexport function useMetaColumns() {\n\tconst showDataInRows = useScorecardStateSelectorValue<boolean>([\n\t\t\"options\",\n\t\t\"showDataInRows\",\n\t]);\n\n\tconst disableExpanding = useScorecardStateSelectorValue<boolean>([\n\t\t\"options\",\n\t\t\"disableExpanding\",\n\t]);\n\n\tconst lowestLevel = useLowestOrgUnitLevel();\n\n\treturn useMemo(() => {\n\t\tconst metaColumns: ColumnDef<ScorecardTableData, any>[] = [\n\t\t\tcolumnHelper.accessor(\n\t\t\t\t(rowData) => {\n\t\t\t\t\tif (disableExpanding) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (showDataInRows) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!lowestLevel) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst orgUnit = rowData.orgUnit;\n\t\t\t\t\tif (!orgUnit) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\tconst ouLevel = getOrgUnitLevel(orgUnit);\n\n\t\t\t\t\treturn ouLevel !== lowestLevel.level;\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: \"expand\",\n\t\t\t\t\theader: () => null,\n\t\t\t\t\tmeta: {\n\t\t\t\t\t\tisMeta: true,\n\t\t\t\t\t\tfixed: true,\n\t\t\t\t\t\tlabel: \"\",\n\t\t\t\t\t},\n\t\t\t\t\tenableHiding: true,\n\t\t\t\t\tenableColumnFilter: false,\n\t\t\t\t\tcell: ExpandCell,\n\t\t\t\t\tsize: 48,\n\t\t\t\t\tfooter: () => null,\n\t\t\t\t},\n\t\t\t),\n\t\t\tcolumnHelper.accessor(\n\t\t\t\t(_, index) => {\n\t\t\t\t\treturn index + 1;\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: \"count\",\n\t\t\t\t\theader: () => null,\n\t\t\t\t\tmeta: {\n\t\t\t\t\t\tisMeta: true,\n\t\t\t\t\t\tfixed: true,\n\t\t\t\t\t\tlabel: \"\",\n\t\t\t\t\t},\n\t\t\t\t\tenableHiding: true,\n\t\t\t\t\tenableColumnFilter: false,\n\t\t\t\t\tcell: NumberCell,\n\t\t\t\t\tsize: 48,\n\t\t\t\t\tfooter: () => null,\n\t\t\t\t},\n\t\t\t),\n\t\t];\n\n\t\tif (showDataInRows) {\n\t\t\tmetaColumns.push(\n\t\t\t\tcolumnHelper.accessor(\n\t\t\t\t\t(rowData) => {\n\t\t\t\t\t\treturn rowData;\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\theader: () => null,\n\t\t\t\t\t\tid: \"dataItems\",\n\t\t\t\t\t\tmeta: {\n\t\t\t\t\t\t\tfilterable: true,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tenableColumnFilter: true,\n\t\t\t\t\t\tfilterFn: (row, columnId, filterValue) => {\n\t\t\t\t\t\t\treturn row\n\t\t\t\t\t\t\t\t.getValue<{ label: string }>(columnId)\n\t\t\t\t\t\t\t\t?.label.toLowerCase()\n\t\t\t\t\t\t\t\t.includes(filterValue.toLowerCase());\n\t\t\t\t\t\t},\n\t\t\t\t\t\tcell: LabelCell,\n\t\t\t\t\t\tsize: 300,\n\t\t\t\t\t\tfooter: MetaFooterCell,\n\t\t\t\t\t},\n\t\t\t\t),\n\t\t\t);\n\t\t} else {\n\t\t\tmetaColumns.push(\n\t\t\t\tcolumnHelper.accessor(\n\t\t\t\t\t(rowData) => {\n\t\t\t\t\t\treturn rowData;\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\theader: () => null,\n\t\t\t\t\t\tid: \"orgUnits\",\n\t\t\t\t\t\tenableColumnFilter: true,\n\t\t\t\t\t\tfilterFn: (row, columnId, filterValue) => {\n\t\t\t\t\t\t\treturn row\n\t\t\t\t\t\t\t\t.getValue<{ label: string }>(columnId)\n\t\t\t\t\t\t\t\t?.label.toLowerCase()\n\t\t\t\t\t\t\t\t.includes(filterValue.toLowerCase());\n\t\t\t\t\t\t},\n\t\t\t\t\t\tmeta: {\n\t\t\t\t\t\t\tisMeta: true,\n\t\t\t\t\t\t\tfixed: true,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tcell: LabelCell,\n\t\t\t\t\t\tsize: 300,\n\t\t\t\t\t\tfooter: MetaFooterCell,\n\t\t\t\t\t},\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\n\t\treturn metaColumns;\n\t}, [showDataInRows, disableExpanding]);\n}\n\nexport function useTableColumns(): ColumnDef<\n\tScorecardTableData,\n\tScorecardTableCellConfig\n>[] {\n\tconst config = useScorecardConfig();\n\tconst { data: dataEngine } = useScorecardData();\n\tconst meta = useScorecardMeta();\n\tconst metaColumns = useMetaColumns();\n\tconst calendar = useCalendar();\n\tconst showDataInRows = useScorecardStateSelectorValue<boolean>([\n\t\t\"options\",\n\t\t\"showDataInRows\",\n\t]);\n\tconst periodSelection =\n\t\tuseScorecardStateSelectorValue<ScorecardState[\"periodSelection\"]>(\n\t\t\t\"periodSelection\",\n\t\t);\n\n\tconst orgUnitSelection =\n\t\tuseScorecardStateSelectorValue<ScorecardState[\"orgUnitSelection\"]>(\n\t\t\t\"orgUnitSelection\",\n\t\t);\n\n\tif (!config || !meta) {\n\t\treturn [];\n\t}\n\treturn useMemo(() => {\n\t\tconst columns: ColumnDef<ScorecardTableData, any>[] = [\n\t\t\tcolumnHelper.group({\n\t\t\t\tid: \"metaHeader\",\n\t\t\t\tcolumns: metaColumns,\n\t\t\t\theader: MetaHeaderCell,\n\t\t\t\tfooter: () => null,\n\t\t\t}),\n\t\t];\n\n\t\tif (showDataInRows) {\n\t\t\tcolumns.push(\n\t\t\t\t...getOrgUnitColumnHeaders({\n\t\t\t\t\tmeta,\n\t\t\t\t\tcalendar,\n\t\t\t\t\tdataEngine,\n\t\t\t\t}),\n\t\t\t);\n\t\t} else {\n\t\t\tcolumns.push(\n\t\t\t\t...getDataColumnHeaders({\n\t\t\t\t\tmeta,\n\t\t\t\t\tconfig,\n\t\t\t\t\tcalendar,\n\t\t\t\t\tdataEngine,\n\t\t\t\t}),\n\t\t\t);\n\t\t}\n\n\t\tcolumns.push(\n\t\t\tgetAverageColumn({\n\t\t\t\tmeta,\n\t\t\t\tconfig,\n\t\t\t}),\n\t\t);\n\n\t\treturn columns;\n\t}, [showDataInRows, periodSelection, orgUnitSelection]);\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/hooks/columns.ts"],"names":["createColumnHelper","useScorecardViewStateValue","useLowestOrgUnitLevel","useMemo","getOrgUnitLevel","ExpandCell","NumberCell","LabelCell","MetaFooterCell","useScorecardConfig","useScorecardData","useScorecardMeta","useCalendar","usePeriodSelectionValue","useOrgUnitSelectionValue","columns","MetaHeaderCell","getOrgUnitColumnHeaders","getDataColumnHeaders","getAverageColumn"],"mappings":"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","file":"columns.js","sourcesContent":["import { type ColumnDef, createColumnHelper } from \"@tanstack/react-table\";\nimport {\n\tuseScorecardConfig,\n\tuseScorecardData,\n\tuseScorecardMeta,\n} from \"../components\";\nimport { useMemo } from \"react\";\nimport {\n\ttype ScorecardTableCellConfig,\n\ttype ScorecardTableData,\n} from \"../schemas/config\";\nimport {\n\tgetAverageColumn,\n\tgetDataColumnHeaders,\n\tgetOrgUnitColumnHeaders,\n} from \"../utils/columns\";\nimport { LabelCell } from \"../components/ScorecardTable/components/TableHeader/components/LabelCell\";\nimport { NumberCell } from \"../components/ScorecardTable/components/TableHeader/components/NumberCell\";\nimport { MetaHeaderCell } from \"../components/ScorecardTable/components/TableHeader/components/MetaHeaderCell\";\nimport { useCalendar } from \"./metadata\";\nimport { MetaFooterCell } from \"../components/ScorecardTable/components/MetaFooterCell\";\nimport { getOrgUnitLevel } from \"../utils/orgUnits\";\nimport { useLowestOrgUnitLevel } from \"./orgUnit\";\nimport { ExpandCell } from \"../components/ScorecardTable/components/TableHeader/components/ExpandCell\";\nimport { useScorecardViewStateValue } from \"../utils/viewState\";\nimport {\n\tuseOrgUnitSelectionValue,\n\tusePeriodSelectionValue,\n} from \"../utils/dimensionState\";\n\nconst columnHelper = createColumnHelper<ScorecardTableData>();\n\nexport function useMetaColumns() {\n\tconst showDataInRows =\n\t\tuseScorecardViewStateValue<boolean>(\"showDataInRows\");\n\n\tconst disableExpanding =\n\t\tuseScorecardViewStateValue<boolean>(\"disableExpanding\");\n\n\tconst lowestLevel = useLowestOrgUnitLevel();\n\n\treturn useMemo(() => {\n\t\tconst metaColumns: ColumnDef<ScorecardTableData, any>[] = [\n\t\t\tcolumnHelper.accessor(\n\t\t\t\t(rowData) => {\n\t\t\t\t\tif (disableExpanding) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (showDataInRows) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!lowestLevel) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst orgUnit = rowData.orgUnit;\n\t\t\t\t\tif (!orgUnit) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\tconst ouLevel = getOrgUnitLevel(orgUnit);\n\n\t\t\t\t\treturn ouLevel !== lowestLevel.level;\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: \"expand\",\n\t\t\t\t\theader: () => null,\n\t\t\t\t\tmeta: {\n\t\t\t\t\t\tisMeta: true,\n\t\t\t\t\t\tfixed: true,\n\t\t\t\t\t\tlabel: \"\",\n\t\t\t\t\t},\n\t\t\t\t\tenableHiding: true,\n\t\t\t\t\tenableColumnFilter: false,\n\t\t\t\t\tcell: ExpandCell,\n\t\t\t\t\tsize: 48,\n\t\t\t\t\tfooter: () => null,\n\t\t\t\t},\n\t\t\t),\n\t\t\tcolumnHelper.accessor(\n\t\t\t\t(_, index) => {\n\t\t\t\t\treturn index + 1;\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: \"count\",\n\t\t\t\t\theader: () => null,\n\t\t\t\t\tmeta: {\n\t\t\t\t\t\tisMeta: true,\n\t\t\t\t\t\tfixed: true,\n\t\t\t\t\t\tlabel: \"\",\n\t\t\t\t\t},\n\t\t\t\t\tenableHiding: true,\n\t\t\t\t\tenableColumnFilter: false,\n\t\t\t\t\tcell: NumberCell,\n\t\t\t\t\tsize: 48,\n\t\t\t\t\tfooter: () => null,\n\t\t\t\t},\n\t\t\t),\n\t\t];\n\n\t\tif (showDataInRows) {\n\t\t\tmetaColumns.push(\n\t\t\t\tcolumnHelper.accessor(\n\t\t\t\t\t(rowData) => {\n\t\t\t\t\t\treturn rowData;\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\theader: () => null,\n\t\t\t\t\t\tid: \"dataItems\",\n\t\t\t\t\t\tmeta: {\n\t\t\t\t\t\t\tfilterable: true,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tenableColumnFilter: true,\n\t\t\t\t\t\tfilterFn: (row, columnId, filterValue) => {\n\t\t\t\t\t\t\treturn row\n\t\t\t\t\t\t\t\t.getValue<{ label: string }>(columnId)\n\t\t\t\t\t\t\t\t?.label.toLowerCase()\n\t\t\t\t\t\t\t\t.includes(filterValue.toLowerCase());\n\t\t\t\t\t\t},\n\t\t\t\t\t\tcell: LabelCell,\n\t\t\t\t\t\tsize: 300,\n\t\t\t\t\t\tfooter: MetaFooterCell,\n\t\t\t\t\t},\n\t\t\t\t),\n\t\t\t);\n\t\t} else {\n\t\t\tmetaColumns.push(\n\t\t\t\tcolumnHelper.accessor(\n\t\t\t\t\t(rowData) => {\n\t\t\t\t\t\treturn rowData;\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\theader: () => null,\n\t\t\t\t\t\tid: \"orgUnits\",\n\t\t\t\t\t\tenableColumnFilter: true,\n\t\t\t\t\t\tfilterFn: (row, columnId, filterValue) => {\n\t\t\t\t\t\t\treturn row\n\t\t\t\t\t\t\t\t.getValue<{ label: string }>(columnId)\n\t\t\t\t\t\t\t\t?.label.toLowerCase()\n\t\t\t\t\t\t\t\t.includes(filterValue.toLowerCase());\n\t\t\t\t\t\t},\n\t\t\t\t\t\tmeta: {\n\t\t\t\t\t\t\tisMeta: true,\n\t\t\t\t\t\t\tfixed: true,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tcell: LabelCell,\n\t\t\t\t\t\tsize: 300,\n\t\t\t\t\t\tfooter: MetaFooterCell,\n\t\t\t\t\t},\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\n\t\treturn metaColumns;\n\t}, [showDataInRows, disableExpanding]);\n}\n\nexport function useTableColumns(): ColumnDef<\n\tScorecardTableData,\n\tScorecardTableCellConfig\n>[] {\n\tconst config = useScorecardConfig();\n\tconst { data: dataEngine } = useScorecardData();\n\tconst meta = useScorecardMeta();\n\tconst metaColumns = useMetaColumns();\n\tconst calendar = useCalendar();\n\tconst showDataInRows =\n\t\tuseScorecardViewStateValue<boolean>(\"showDataInRows\");\n\tconst periodSelection = usePeriodSelectionValue();\n\tconst orgUnitSelection = useOrgUnitSelectionValue();\n\n\tif (!config || !meta) {\n\t\treturn [];\n\t}\n\treturn useMemo(() => {\n\t\tconst columns: ColumnDef<ScorecardTableData, any>[] = [\n\t\t\tcolumnHelper.group({\n\t\t\t\tid: \"metaHeader\",\n\t\t\t\tcolumns: metaColumns,\n\t\t\t\theader: MetaHeaderCell,\n\t\t\t\tfooter: () => null,\n\t\t\t}),\n\t\t];\n\n\t\tif (showDataInRows) {\n\t\t\tcolumns.push(\n\t\t\t\t...getOrgUnitColumnHeaders({\n\t\t\t\t\tmeta,\n\t\t\t\t\tcalendar,\n\t\t\t\t\tdataEngine,\n\t\t\t\t}),\n\t\t\t);\n\t\t} else {\n\t\t\tcolumns.push(\n\t\t\t\t...getDataColumnHeaders({\n\t\t\t\t\tmeta,\n\t\t\t\t\tconfig,\n\t\t\t\t\tcalendar,\n\t\t\t\t\tdataEngine,\n\t\t\t\t}),\n\t\t\t);\n\t\t}\n\n\t\tcolumns.push(\n\t\t\tgetAverageColumn({\n\t\t\t\tmeta,\n\t\t\t\tconfig,\n\t\t\t}),\n\t\t);\n\n\t\treturn columns;\n\t}, [showDataInRows, periodSelection, orgUnitSelection]);\n}\n"]}
|
package/dist/hooks/data.js
CHANGED
package/dist/hooks/data.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/hooks/data.ts"],"names":["useDataEngine","useAlert","sanitizeAnalyticsData","useCallback","FetchError","i18n","useScorecardConfig","useScorecardMeta","useCalendar","useMemo","getDimensionsFromMeta","getAdjacentFixedPeriods","createFixedPeriodFromPeriodId","uniq","useEffect"],"mappings":"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
|
|
1
|
+
{"version":3,"sources":["../../src/hooks/data.ts"],"names":["useDataEngine","useAlert","sanitizeAnalyticsData","useCallback","FetchError","i18n","useScorecardConfig","useScorecardMeta","useCalendar","useMemo","getDimensionsFromMeta","getAdjacentFixedPeriods","createFixedPeriodFromPeriodId","uniq","useEffect"],"mappings":"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","file":"data.js","sourcesContent":["import { useScorecardConfig, useScorecardMeta } from \"../components\";\nimport { useCallback, useEffect, useMemo } from \"react\";\nimport { getDimensionsFromMeta } from \"../utils/analytics\";\nimport { FetchError, useAlert, useDataEngine } from \"@dhis2/app-runtime\";\nimport {\n\tcreateFixedPeriodFromPeriodId,\n\tgetAdjacentFixedPeriods,\n} from \"@dhis2/multi-calendar-dates\";\nimport { uniq } from \"lodash\";\nimport { useCalendar } from \"./metadata\";\nimport type { ScorecardDataEngine } from \"../utils/dataEngine\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport { sanitizeAnalyticsData } from \"../utils/data\";\n\nconst query: any = {\n\tdata: {\n\t\tresource: \"analytics\",\n\t\tparams: ({\n\t\t\tperiods,\n\t\t\torgUnits,\n\t\t\tdataItems,\n\t\t}: {\n\t\t\tperiods: string[];\n\t\t\torgUnits: string[];\n\t\t\tdataItems: string[];\n\t\t}) => {\n\t\t\treturn {\n\t\t\t\tskipMeta: true,\n\t\t\t\tdimension: [\n\t\t\t\t\t`pe:${periods.join(\";\")}`,\n\t\t\t\t\t`dx:${dataItems.join(\";\")}`,\n\t\t\t\t\t`ou:${orgUnits.join(\";\")}`,\n\t\t\t\t],\n\t\t\t};\n\t\t},\n\t},\n};\n\nexport interface ScorecardDataQueryResponse {\n\tdata: {\n\t\theaderWidth: number;\n\t\theaders: Array<{\n\t\t\tname: string;\n\t\t\thidden: boolean;\n\t\t\tmeta: boolean;\n\t\t\tcolumn: string;\n\t\t\tvalueType: string;\n\t\t}>;\n\t\trows: Array<Array<string>>;\n\t\theight: number;\n\t\twidth: number;\n\t};\n}\n\nexport function useGetScorecardData(dataEngine: ScorecardDataEngine) {\n\tconst engine = useDataEngine();\n\tconst { show, hide: hideAlert } = useAlert(\n\t\t({ message }) => message,\n\t\t({ type, actions }) => ({ ...type, actions, duration: 3000 }),\n\t);\n\tconst getTableData = (rawAnalyticsData: ScorecardDataQueryResponse) => {\n\t\treturn sanitizeAnalyticsData(rawAnalyticsData);\n\t};\n\tconst fetchData = useCallback(\n\t\tasync ({\n\t\t\tperiods,\n\t\t\tdataItems,\n\t\t\torgUnits,\n\t\t}: {\n\t\t\tperiods: string[];\n\t\t\torgUnits: string[];\n\t\t\tdataItems: string[];\n\t\t}) => {\n\t\t\ttry {\n\t\t\t\tconst rawAnalyticsData = (await engine.query(query, {\n\t\t\t\t\tvariables: {\n\t\t\t\t\t\tperiods,\n\t\t\t\t\t\tdataItems,\n\t\t\t\t\t\torgUnits,\n\t\t\t\t\t},\n\t\t\t\t})) as unknown as ScorecardDataQueryResponse;\n\t\t\t\tif (!rawAnalyticsData) return [];\n\t\t\t\treturn getTableData(rawAnalyticsData);\n\t\t\t} catch (error) {\n\t\t\t\tif (error instanceof Error || error instanceof FetchError) {\n\t\t\t\t\tshow({\n\t\t\t\t\t\tmessage: `${i18n.t(\"Error getting scorecard data\")}: ${\n\t\t\t\t\t\t\terror.message\n\t\t\t\t\t\t}`,\n\t\t\t\t\t\ttype: { critical: true },\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tconsole.error(error);\n\t\t\t\t}\n\t\t\t\treturn [];\n\t\t\t}\n\t\t},\n\t\t[engine, show, hideAlert],\n\t);\n\tconst config = useScorecardConfig();\n\tconst meta = useScorecardMeta();\n\tconst calendar = useCalendar();\n\tif (!config || !meta) {\n\t\tthrow new Error(\n\t\t\t\"Invalid scorecard setup. Make sure the valid config and state props are passed.\",\n\t\t);\n\t}\n\tconst { dataItemsIds, orgUnitsIds, periodsIds } = useMemo(\n\t\t() =>\n\t\t\tgetDimensionsFromMeta({\n\t\t\t\tmeta,\n\t\t\t}),\n\t\t[meta],\n\t);\n\n\t//We need to make sure each period has a past period\n\tconst analyticsPeriod = useMemo(() => {\n\t\tconst pastPeriods = periodsIds\n\t\t\t.map((periodId) => {\n\t\t\t\tconst pe = getAdjacentFixedPeriods({\n\t\t\t\t\tcalendar,\n\t\t\t\t\tsteps: -1,\n\t\t\t\t\tperiod: createFixedPeriodFromPeriodId({\n\t\t\t\t\t\tcalendar,\n\t\t\t\t\t\tperiodId,\n\t\t\t\t\t}),\n\t\t\t\t});\n\t\t\t\treturn pe.map(({ id }) => id);\n\t\t\t})\n\t\t\t.flat();\n\n\t\treturn uniq([...periodsIds, ...pastPeriods]);\n\t}, [periodsIds]);\n\tuseEffect(() => {\n\t\tdataEngine.initialize(fetchData, {\n\t\t\tdimensions: {\n\t\t\t\tdataItems: dataItemsIds,\n\t\t\t\tperiods: analyticsPeriod,\n\t\t\t\torgUnits: orgUnitsIds,\n\t\t\t},\n\t\t});\n\t}, [dataEngine, dataItemsIds, analyticsPeriod, orgUnitsIds]);\n\n\treturn {};\n}\n"]}
|
package/dist/hooks/metadata.js
CHANGED
|
@@ -5,7 +5,7 @@ var appRuntime = require('@dhis2/app-runtime');
|
|
|
5
5
|
var react = require('react');
|
|
6
6
|
var analytics = require('../utils/analytics');
|
|
7
7
|
var i18n = require('@dhis2/d2-i18n');
|
|
8
|
-
var
|
|
8
|
+
var dimensionState = require('../utils/dimensionState');
|
|
9
9
|
|
|
10
10
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
11
11
|
|
|
@@ -46,12 +46,8 @@ function useGetScorecardMeta() {
|
|
|
46
46
|
({ message }) => message,
|
|
47
47
|
({ type }) => ({ ...type, duration: 3e3 })
|
|
48
48
|
);
|
|
49
|
-
const orgUnitSelection =
|
|
50
|
-
|
|
51
|
-
);
|
|
52
|
-
const periodSelection = state.useScorecardStateSelectorValue(
|
|
53
|
-
"periodSelection"
|
|
54
|
-
);
|
|
49
|
+
const orgUnitSelection = dimensionState.useOrgUnitSelectionValue();
|
|
50
|
+
const periodSelection = dimensionState.usePeriodSelectionValue();
|
|
55
51
|
const { dataItemsIds, orgUnitsIds, periodsIds } = react.useMemo(
|
|
56
52
|
() => analytics.getDimensions({
|
|
57
53
|
config,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/hooks/metadata.ts"],"names":["useScorecardConfig","useAlert","
|
|
1
|
+
{"version":3,"sources":["../../src/hooks/metadata.ts"],"names":["useScorecardConfig","useAlert","useOrgUnitSelectionValue","usePeriodSelectionValue","useMemo","getDimensions","useDataQuery","i18n","useEffect","useConfig"],"mappings":"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","file":"metadata.js","sourcesContent":["import { useScorecardConfig } from \"../components\";\nimport { useAlert, useConfig, useDataQuery } from \"@dhis2/app-runtime\";\nimport { useEffect, useMemo } from \"react\";\nimport { getDimensions } from \"../utils/analytics\";\nimport type { SupportedCalendar } from \"@dhis2/multi-calendar-dates/build/types/types\";\nimport i18n from \"@dhis2/d2-i18n\";\nimport {\n\tuseOrgUnitSelectionValue,\n\tusePeriodSelectionValue,\n} from \"../utils/dimensionState\";\n\nconst query: any = {\n\tmeta: {\n\t\tresource: \"analytics\",\n\t\tparams: ({\n\t\t\tperiods,\n\t\t\torgUnits,\n\t\t\tdataItems,\n\t\t}: {\n\t\t\tperiods: string[];\n\t\t\torgUnits: string[];\n\t\t\tdataItems: string[];\n\t\t}) => {\n\t\t\treturn {\n\t\t\t\tskipData: true,\n\t\t\t\thierarchyData: true,\n\t\t\t\tshowHierarchy: true,\n\t\t\t\tenhancedConditions: true,\n\t\t\t\tincludeMetadataDetails: true,\n\t\t\t\tdimension: [\n\t\t\t\t\t`pe:${periods.join(\";\")}`,\n\t\t\t\t\t`dx:${dataItems.join(\";\")}`,\n\t\t\t\t\t`ou:${orgUnits.join(\";\")}`,\n\t\t\t\t],\n\t\t\t};\n\t\t},\n\t},\n\touLevel: {\n\t\tresource: \"organisationUnitLevels\",\n\t\tparams: {\n\t\t\tfields: [\"id\", \"displayName\", \"level\"],\n\t\t},\n\t},\n};\n\nexport type ItemMeta = {\n\tuid: string;\n\tname: string;\n\tcode?: string;\n\tdescription?: string;\n\tvalueType?: string;\n\ttotalAggregationType?: string;\n\taggregationType?: string;\n\t[key: string]: string | number | undefined;\n};\n\ntype MetaResponse = {\n\tmeta: {\n\t\tcolumns: any[];\n\t\trows: [];\n\t\theaders: [];\n\t\tmetaData: {\n\t\t\tdimensions: {\n\t\t\t\tdx: string[];\n\t\t\t\tou: string[];\n\t\t\t\tpe: string[];\n\t\t\t\tco: string[];\n\t\t\t\t[key: string]: string[];\n\t\t\t};\n\t\t\titems: {\n\t\t\t\t[key: string]: ItemMeta;\n\t\t\t};\n\t\t\touNameHierarchy: {\n\t\t\t\t[key: string]: string;\n\t\t\t};\n\t\t};\n\t};\n\touLevel: {\n\t\torganisationUnitLevels: Array<{\n\t\t\tid: string;\n\t\t\tlevel: number;\n\t\t\tdisplayName: string;\n\t\t}>;\n\t};\n};\n\nexport function useGetScorecardMeta() {\n\tconst config = useScorecardConfig();\n\n\tconst { show } = useAlert(\n\t\t({ message }) => message,\n\t\t({ type }) => ({ ...type, duration: 3000 }),\n\t);\n\n\tconst orgUnitSelection = useOrgUnitSelectionValue();\n\tconst periodSelection = usePeriodSelectionValue();\n\n\tconst { dataItemsIds, orgUnitsIds, periodsIds } = useMemo(\n\t\t() =>\n\t\t\tgetDimensions({\n\t\t\t\tconfig,\n\t\t\t\torgUnitSelection,\n\t\t\t\tperiodSelection,\n\t\t\t}),\n\t\t[config, orgUnitSelection, periodSelection],\n\t);\n\n\tconst { loading, data, refetch, called } = useDataQuery<MetaResponse>(\n\t\tquery,\n\t\t{\n\t\t\tvariables: {\n\t\t\t\tperiods: periodsIds,\n\t\t\t\torgUnits: orgUnitsIds,\n\t\t\t\tdataItems: dataItemsIds,\n\t\t\t},\n\t\t\tlazy: true,\n\t\t\tonError: (error) => {\n\t\t\t\tshow({\n\t\t\t\t\tmessage: `${i18n.t(\"Error getting scorecard data\")}: ${\n\t\t\t\t\t\terror.message\n\t\t\t\t\t}`,\n\t\t\t\t\ttype: { critical: true },\n\t\t\t\t});\n\t\t\t},\n\t\t},\n\t);\n\n\tconst orgUnits = useMemo(() => {\n\t\treturn (\n\t\t\tdata?.meta?.metaData.dimensions[\"ou\"]\n\t\t\t\t.map((ou) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...data?.meta?.metaData.items[ou],\n\t\t\t\t\t\thierarchy: data?.meta?.metaData?.ouNameHierarchy[ou],\n\t\t\t\t\t};\n\t\t\t\t})\n\t\t\t\t.filter(Boolean) ?? []\n\t\t);\n\t}, [data?.meta]);\n\tconst periods = useMemo(() => {\n\t\treturn (\n\t\t\tdata?.meta?.metaData.dimensions[\"pe\"]\n\t\t\t\t.map((pe) => {\n\t\t\t\t\treturn data?.meta?.metaData.items[pe];\n\t\t\t\t})\n\t\t\t\t.filter(Boolean) ?? []\n\t\t);\n\t}, [data?.meta]);\n\tconst dataItems = useMemo(() => {\n\t\treturn (\n\t\t\tdata?.meta?.metaData.dimensions[\"dx\"]\n\t\t\t\t.map((dx) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...data?.meta?.metaData.items[dx],\n\t\t\t\t\t\tuid: dx,\n\t\t\t\t\t};\n\t\t\t\t})\n\t\t\t\t.filter(Boolean) ?? []\n\t\t);\n\t}, [data?.meta]);\n\tconst orgUnitLevels = useMemo(\n\t\t() => data?.ouLevel?.organisationUnitLevels ?? [],\n\t\t[data?.ouLevel?.organisationUnitLevels],\n\t);\n\n\tuseEffect(() => {\n\t\trefetch({\n\t\t\tperiods: periodsIds,\n\t\t\torgUnits: orgUnitsIds,\n\t\t\tdataItems: dataItemsIds,\n\t\t});\n\t}, [periodsIds, orgUnitsIds, dataItemsIds]);\n\n\treturn {\n\t\tloading,\n\t\torgUnits,\n\t\tperiods,\n\t\tdataItems,\n\t\torgUnitLevels,\n\t\tcalled,\n\t};\n}\n\nexport function useCalendar() {\n\tconst { systemInfo } = useConfig();\n\treturn (\n\t\t(systemInfo as unknown as { calendar?: SupportedCalendar })?.calendar ??\n\t\t\"iso8601\"\n\t);\n}\n"]}
|
package/dist/hooks/table.js
CHANGED
|
@@ -7,7 +7,7 @@ var components = require('../components');
|
|
|
7
7
|
var data = require('../utils/data');
|
|
8
8
|
var lodash = require('lodash');
|
|
9
9
|
var columns = require('../utils/columns');
|
|
10
|
-
var
|
|
10
|
+
var viewState = require('../utils/viewState');
|
|
11
11
|
|
|
12
12
|
function getRowValues({
|
|
13
13
|
data,
|
|
@@ -69,15 +69,11 @@ function filterRows({
|
|
|
69
69
|
function useTableRows() {
|
|
70
70
|
const meta = components.useScorecardMeta();
|
|
71
71
|
const { data: dataEngine } = components.useScorecardData();
|
|
72
|
-
const showDataInRows =
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
"options",
|
|
78
|
-
"emptyRows"
|
|
79
|
-
]);
|
|
80
|
-
const averageDisplayType = state.useScorecardStateSelectorValue(["options", "averageDisplayType"]);
|
|
72
|
+
const showDataInRows = viewState.useScorecardViewStateValue("showDataInRows") ?? false;
|
|
73
|
+
const emptyRows = viewState.useScorecardViewStateValue("emptyRows");
|
|
74
|
+
const averageDisplayType = viewState.useScorecardViewStateValue(
|
|
75
|
+
"averageDisplayType"
|
|
76
|
+
);
|
|
81
77
|
const config = components.useScorecardConfig();
|
|
82
78
|
const [hiddenRowIndexes, setHiddenRowIndexes] = react.useState([]);
|
|
83
79
|
if (meta == null) return [];
|
|
@@ -125,22 +121,10 @@ function useTableRows() {
|
|
|
125
121
|
return rows;
|
|
126
122
|
}
|
|
127
123
|
function useColumnVisibility() {
|
|
128
|
-
const showAverageColumn =
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
const showItemNumber = state.useScorecardStateSelectorValue([
|
|
133
|
-
"options",
|
|
134
|
-
"itemNumber"
|
|
135
|
-
]);
|
|
136
|
-
const showDataInRows = state.useScorecardStateSelectorValue([
|
|
137
|
-
"options",
|
|
138
|
-
"showDataInRows"
|
|
139
|
-
]);
|
|
140
|
-
const disableExpanding = state.useScorecardStateSelectorValue([
|
|
141
|
-
"options",
|
|
142
|
-
"disableExpanding"
|
|
143
|
-
]) ?? false;
|
|
124
|
+
const showAverageColumn = viewState.useScorecardViewStateValue("averageColumn") ?? false;
|
|
125
|
+
const showItemNumber = viewState.useScorecardViewStateValue("itemNumber") ?? false;
|
|
126
|
+
const showDataInRows = viewState.useScorecardViewStateValue("showDataInRows");
|
|
127
|
+
const disableExpanding = viewState.useScorecardViewStateValue("disableExpanding") ?? false;
|
|
144
128
|
const [columnVisibility, setColumnVisibility] = react.useState({
|
|
145
129
|
average: showAverageColumn,
|
|
146
130
|
count: showItemNumber,
|
|
@@ -160,10 +144,7 @@ function useColumnVisibility() {
|
|
|
160
144
|
}
|
|
161
145
|
function useRowExpanding() {
|
|
162
146
|
const [expanded, setExpanded] = react.useState({});
|
|
163
|
-
const disableExpanding =
|
|
164
|
-
"options",
|
|
165
|
-
"disableExpanding"
|
|
166
|
-
]) ?? false;
|
|
147
|
+
const disableExpanding = viewState.useScorecardViewStateValue("disableExpanding") ?? false;
|
|
167
148
|
const getRowCanExpand = react.useCallback((row) => {
|
|
168
149
|
const expandCell = row.getVisibleCells().find(({ id }) => id.includes("expand"));
|
|
169
150
|
if (!expandCell) return false;
|
|
@@ -177,10 +158,7 @@ function useRowExpanding() {
|
|
|
177
158
|
}
|
|
178
159
|
function useTableSetup() {
|
|
179
160
|
const [columnFilters, setColumnFilters] = react.useState([]);
|
|
180
|
-
const disablePagination =
|
|
181
|
-
"options",
|
|
182
|
-
"disablePagination"
|
|
183
|
-
]);
|
|
161
|
+
const disablePagination = viewState.useScorecardViewStateValue("disablePagination");
|
|
184
162
|
const [pagination, setPagination] = react.useState({
|
|
185
163
|
pageSize: 50,
|
|
186
164
|
pageIndex: 0
|