@gravity-ui/dashkit 9.1.4 → 9.2.1-beta
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/build/cjs/components/DashKit/DashKit.d.ts +1 -1
- package/build/cjs/components/GridLayout/GridLayout.d.ts +51 -65
- package/build/cjs/components/GridLayout/GridLayout.js +63 -20
- package/build/cjs/components/GridLayout/GridLayout.js.map +1 -1
- package/build/cjs/components/GridLayout/types.d.ts +60 -0
- package/build/cjs/components/GridLayout/types.js +3 -0
- package/build/cjs/components/GridLayout/types.js.map +1 -0
- package/build/cjs/components/MobileLayout/MobileLayout.d.ts +4 -4
- package/build/cjs/components/MobileLayout/MobileLayout.js +4 -4
- package/build/cjs/components/MobileLayout/MobileLayout.js.map +1 -1
- package/build/cjs/components/MobileLayout/helpers.d.ts +1 -1
- package/build/cjs/components/MobileLayout/helpers.js +2 -2
- package/build/cjs/components/MobileLayout/helpers.js.map +1 -1
- package/build/cjs/context/DashKitContext.d.ts +15 -6
- package/build/cjs/context/DashKitContext.js.map +1 -1
- package/build/cjs/hocs/withContext.js +7 -3
- package/build/cjs/hocs/withContext.js.map +1 -1
- package/build/cjs/hooks/useCalcLayout.d.ts +2 -13
- package/build/cjs/hooks/useCalcLayout.js +12 -4
- package/build/cjs/hooks/useCalcLayout.js.map +1 -1
- package/build/cjs/shared/modules/__tests__/global-items.test.d.ts +1 -0
- package/build/cjs/shared/modules/__tests__/global-items.test.js +372 -0
- package/build/cjs/shared/modules/__tests__/global-items.test.js.map +1 -0
- package/build/cjs/shared/modules/helpers.d.ts +1 -0
- package/build/cjs/shared/modules/helpers.js +10 -2
- package/build/cjs/shared/modules/helpers.js.map +1 -1
- package/build/cjs/shared/modules/state-and-params.js +7 -2
- package/build/cjs/shared/modules/state-and-params.js.map +1 -1
- package/build/cjs/shared/modules/uniq-id.js +1 -1
- package/build/cjs/shared/modules/uniq-id.js.map +1 -1
- package/build/cjs/shared/types/config.d.ts +1 -0
- package/build/cjs/shared/types/config.js.map +1 -1
- package/build/cjs/typings/config.d.ts +3 -2
- package/build/cjs/typings/config.js.map +1 -1
- package/build/cjs/typings/plugin.d.ts +1 -0
- package/build/cjs/typings/plugin.js.map +1 -1
- package/build/cjs/utils/update-manager.js +66 -36
- package/build/cjs/utils/update-manager.js.map +1 -1
- package/build/esm/components/DashKit/DashKit.d.ts +1 -1
- package/build/esm/components/GridLayout/GridLayout.d.ts +51 -65
- package/build/esm/components/GridLayout/GridLayout.js +63 -20
- package/build/esm/components/GridLayout/GridLayout.js.map +1 -1
- package/build/esm/components/GridLayout/types.d.ts +60 -0
- package/build/esm/components/GridLayout/types.js +2 -0
- package/build/esm/components/GridLayout/types.js.map +1 -0
- package/build/esm/components/MobileLayout/MobileLayout.d.ts +4 -4
- package/build/esm/components/MobileLayout/MobileLayout.js +4 -4
- package/build/esm/components/MobileLayout/MobileLayout.js.map +1 -1
- package/build/esm/components/MobileLayout/helpers.d.ts +1 -1
- package/build/esm/components/MobileLayout/helpers.js +2 -2
- package/build/esm/components/MobileLayout/helpers.js.map +1 -1
- package/build/esm/context/DashKitContext.d.ts +15 -6
- package/build/esm/context/DashKitContext.js.map +1 -1
- package/build/esm/hocs/withContext.js +8 -4
- package/build/esm/hocs/withContext.js.map +1 -1
- package/build/esm/hooks/useCalcLayout.d.ts +2 -13
- package/build/esm/hooks/useCalcLayout.js +12 -4
- package/build/esm/hooks/useCalcLayout.js.map +1 -1
- package/build/esm/shared/modules/__tests__/global-items.test.d.ts +1 -0
- package/build/esm/shared/modules/__tests__/global-items.test.js +370 -0
- package/build/esm/shared/modules/__tests__/global-items.test.js.map +1 -0
- package/build/esm/shared/modules/helpers.d.ts +1 -0
- package/build/esm/shared/modules/helpers.js +9 -2
- package/build/esm/shared/modules/helpers.js.map +1 -1
- package/build/esm/shared/modules/state-and-params.js +8 -3
- package/build/esm/shared/modules/state-and-params.js.map +1 -1
- package/build/esm/shared/modules/uniq-id.js +2 -2
- package/build/esm/shared/modules/uniq-id.js.map +1 -1
- package/build/esm/shared/types/config.d.ts +1 -0
- package/build/esm/shared/types/config.js.map +1 -1
- package/build/esm/typings/config.d.ts +3 -2
- package/build/esm/typings/config.js.map +1 -1
- package/build/esm/typings/plugin.d.ts +1 -0
- package/build/esm/typings/plugin.js.map +1 -1
- package/build/esm/utils/update-manager.js +67 -37
- package/build/esm/utils/update-manager.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"global-items.test.js","sourceRoot":"../../../../../src","sources":["shared/modules/__tests__/global-items.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,iCAAwB;AAQzC,OAAO,EAAC,eAAe,EAAE,UAAU,EAAE,aAAa,EAAC,sBAAmB;AACtE,OAAO,EAAC,cAAc,EAAE,sBAAsB,EAAC,+BAA4B;AAE3E,MAAM,SAAS,GAAG,SAAS,CAAC;AAC5B,MAAM,kBAAkB,GAAG,eAAe,CAAC;AAE3C,MAAM,cAAc,GAAG,aAAa,CAAC;AACrC,MAAM,eAAe,GAAG,cAAc,CAAC;AACvC,MAAM,aAAa,GAAG,YAAY,CAAC;AACnC,MAAM,eAAe,GAAG,YAAY,CAAC;AAErC,MAAM,oBAAoB,GAAG,CAAC,KAI7B,EAAc,EAAE;IACb,MAAM,EAAC,EAAE,GAAG,eAAe,EAAE,YAAY,GAAG,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAC,GAAG,KAAK,IAAI,EAAE,CAAC;IACrF,OAAO;QACH,EAAE;QACF,QAAQ;QACR,IAAI,EAAE;YACF,KAAK,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;gBACtC,EAAE,EAAE,WAAW;gBACf,SAAS,EAAE,SAAS;gBACpB,QAAQ;aACX,CAAC,CAAC;SACN;QACD,IAAI,EAAE,kBAAkB;QACxB,SAAS,EAAE,SAAS;KACvB,CAAC;AACN,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,EACrB,KAAK,GAAG,EAAE,EACV,WAAW,GAAG,EAAE,GAInB,EAAU,EAAE,CAAC,CAAC;IACX,KAAK;IACL,WAAW;IACX,IAAI,EAAE,oBAAoB;IAC1B,OAAO,EAAE,GAAG;IACZ,MAAM,EAAE,EAAE;IACV,OAAO,EAAE,EAAE;IACX,WAAW,EAAE,EAAE;CAClB,CAAC,CAAC;AAEH,QAAQ,CAAC,qCAAqC,EAAE,GAAG,EAAE;IACjD,QAAQ,CAAC,6BAA6B,EAAE,GAAG,EAAE;QACzC,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;YAC5D,MAAM,UAAU,GAAG,oBAAoB,CAAC,EAAC,EAAE,EAAE,cAAc,EAAC,CAAC,CAAC;YAC9D,MAAM,WAAW,GAAG,oBAAoB,EAAE,CAAC;YAC3C,MAAM,MAAM,GAAG,eAAe,CAAC;gBAC3B,KAAK,EAAE,CAAC,WAAW,CAAC;gBACpB,WAAW,EAAE,CAAC,UAAU,CAAC;aAC5B,CAAC,CAAC;YAEH,MAAM,mBAAmB,GAAwB;gBAC7C,CAAC,QAAQ,CAAC,EAAE;oBACR,KAAK,EAAE,CAAC,EAAC,EAAE,EAAE,iBAAiB,EAAC,EAAE,EAAC,EAAE,EAAE,cAAc,EAAC,CAAC;oBACtD,OAAO,EAAE,CAAC;iBACb;aACJ,CAAC;YAEF,MAAM,MAAM,GAAG,UAAU,CAAC;gBACtB,EAAE,EAAE,eAAe;gBACnB,MAAM;gBACN,mBAAmB;aACtB,CAAC,CAAC;YAEH,4DAA4D;YAC5D,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,EAAC,EAAE,EAAE,cAAc,EAAC,EAAE,EAAC,EAAE,EAAE,eAAe,EAAC,CAAC,CAAC,CAAC;QAChF,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;YAC7C,MAAM,WAAW,GAAG,oBAAoB,EAAE,CAAC;YAC3C,MAAM,MAAM,GAAG,eAAe,CAAC;gBAC3B,KAAK,EAAE,CAAC,WAAW,CAAC;gBACpB,WAAW,EAAE,EAAE;aAClB,CAAC,CAAC;YAEH,MAAM,mBAAmB,GAAwB;gBAC7C,CAAC,QAAQ,CAAC,EAAE;oBACR,KAAK,EAAE,EAAE;oBACT,OAAO,EAAE,CAAC;iBACb;aACJ,CAAC;YAEF,MAAM,MAAM,GAAG,UAAU,CAAC;gBACtB,EAAE,EAAE,eAAe;gBACnB,MAAM;gBACN,mBAAmB;aACtB,CAAC,CAAC;YAEH,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,EAAC,EAAE,EAAE,eAAe,EAAC,CAAC,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC9C,EAAE,CAAC,sEAAsE,EAAE,GAAG,EAAE;YAC5E,MAAM,iBAAiB,GAAG,iBAAiB,CAAC;YAC5C,MAAM,oBAAoB,GAAG,oBAAoB,CAAC;YAClD,MAAM,qBAAqB,GAAG,qBAAqB,CAAC;YACpD,MAAM,eAAe,GAAG,oBAAoB,CAAC;gBACzC,EAAE,EAAE,iBAAiB;gBACrB,YAAY,EAAE,CAAC,oBAAoB,EAAE,qBAAqB,CAAC;aAC9D,CAAC,CAAC;YACH,MAAM,WAAW,GAAG,oBAAoB,EAAE,CAAC;YAC3C,MAAM,MAAM,GAAG,eAAe,CAAC;gBAC3B,KAAK,EAAE,CAAC,WAAW,CAAC;gBACpB,WAAW,EAAE,CAAC,eAAe,CAAC;aACjC,CAAC,CAAC;YAEH,MAAM,mBAAmB,GAAwB;gBAC7C,CAAC,QAAQ,CAAC,EAAE;oBACR,KAAK,EAAE;wBACH,EAAC,EAAE,EAAE,iBAAiB,EAAE,WAAW,EAAE,oBAAoB,EAAC;wBAC1D,EAAC,EAAE,EAAE,kBAAkB,EAAE,WAAW,EAAE,oBAAoB,EAAC;qBAC9D;oBACD,OAAO,EAAE,CAAC;iBACb;aACJ,CAAC;YAEF,MAAM,MAAM,GAAG,eAAe,CAAC;gBAC3B,EAAE,EAAE,iBAAiB;gBACrB,YAAY,EAAE,CAAC,qBAAqB,CAAC;gBACrC,MAAM;gBACN,mBAAmB;aACtB,CAAC,CAAC;YAEH,6DAA6D;YAC7D,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC;gBACzB,EAAC,EAAE,EAAE,iBAAiB,EAAE,WAAW,EAAE,oBAAoB,EAAC;gBAC1D,EAAC,EAAE,EAAE,iBAAiB,EAAE,WAAW,EAAE,qBAAqB,EAAC;aAC9D,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,gCAAgC,EAAE,GAAG,EAAE;QAC5C,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;YAC1D,MAAM,UAAU,GAAG,oBAAoB,CAAC;gBACpC,EAAE,EAAE,cAAc;gBAClB,YAAY,EAAE,CAAC,aAAa,CAAC;gBAC7B,QAAQ,EAAE;oBACN,IAAI,EAAE,GAAG;iBACZ;aACJ,CAAC,CAAC;YACH,MAAM,WAAW,GAAG,oBAAoB,CAAC;gBACrC,EAAE,EAAE,eAAe;gBACnB,YAAY,EAAE,CAAC,eAAe,CAAC;gBAC/B,QAAQ,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAC;aAC7B,CAAC,CAAC;YAEH,MAAM,mBAAmB,GAAwB;gBAC7C,CAAC,cAAc,CAAC,EAAE;oBACd,MAAM,EAAE;wBACJ,CAAC,aAAa,CAAC,EAAE;4BACb,IAAI,EAAE,IAAI;4BACV,KAAK,EAAE,KAAK;yBACf;qBACJ;iBACJ;gBACD,CAAC,eAAe,CAAC,EAAE;oBACf,MAAM,EAAE;wBACJ,CAAC,eAAe,CAAC,EAAE;4BACf,IAAI,EAAE,UAAU;yBACnB;qBACJ;iBACJ;gBACD,CAAC,QAAQ,CAAC,EAAE;oBACR,KAAK,EAAE;wBACH,EAAC,EAAE,EAAE,cAAc,EAAE,WAAW,EAAE,aAAa,EAAC;wBAChD,EAAC,EAAE,EAAE,eAAe,EAAE,WAAW,EAAE,eAAe,EAAC;qBACtD;oBACD,OAAO,EAAE,CAAC;iBACb;aACJ,CAAC;YAEF,MAAM,MAAM,GAAG,aAAa,CAAC;gBACzB,KAAK,EAAE,CAAC,WAAW,EAAE,UAAU,CAAC;gBAChC,mBAAmB;aACtB,CAAC,CAAC;YAEH,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;gBACnB;oBACI,EAAE,EAAE,aAAa;oBACjB,SAAS,EAAE,SAAS;oBACpB,MAAM,EAAE,EAAC,IAAI,EAAE,IAAI,EAAC;iBACvB;gBACD;oBACI,EAAE,EAAE,eAAe;oBACnB,SAAS,EAAE,SAAS;oBACpB,MAAM,EAAE,EAAC,IAAI,EAAE,UAAU,EAAC;iBAC7B;aACJ,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,iCAAiC,EAAE,GAAG,EAAE;QAC7C,EAAE,CAAC,0DAA0D,EAAE,GAAG,EAAE;YAChE,MAAM,WAAW,GAAG,aAAa,CAAC;YAClC,MAAM,eAAe,GAAG,iBAAiB,CAAC;YAC1C,MAAM,YAAY,GAAG,cAAc,CAAC;YACpC,MAAM,UAAU,GAAG,oBAAoB,CAAC,EAAC,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAC,WAAW,EAAC,EAAC,CAAC,CAAC;YACvF,MAAM,WAAW,GAAG,oBAAoB,CAAC;gBACrC,EAAE,EAAE,eAAe;gBACnB,YAAY,EAAE,CAAC,eAAe,CAAC;gBAC/B,QAAQ,EAAE;oBACN,YAAY;iBACf;aACJ,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,eAAe,CAAC;gBAC3B,KAAK,EAAE,CAAC,WAAW,CAAC;gBACpB,WAAW,EAAE,CAAC,UAAU,CAAC;aAC5B,CAAC,CAAC;YAEH,MAAM,mBAAmB,GAAwB;gBAC7C,CAAC,cAAc,CAAC,EAAE;oBACd,MAAM,EAAE;wBACJ,CAAC,aAAa,CAAC,EAAE;4BACb,WAAW,EAAE,eAAe;yBAC/B;qBACJ;iBACJ;gBACD,CAAC,QAAQ,CAAC,EAAE;oBACR,KAAK,EAAE,CAAC,EAAC,EAAE,EAAE,cAAc,EAAE,WAAW,EAAE,aAAa,EAAC,CAAC;oBACzD,OAAO,EAAE,CAAC;iBACb;aACJ,CAAC;YAEF,MAAM,MAAM,GAAG,cAAc,CAAC;gBAC1B,mBAAmB,EAAE,EAAE;gBACvB,YAAY,EAAE,EAAE;gBAChB,MAAM;gBACN,mBAAmB;gBACnB,OAAO,EAAE;oBACL;wBACI,IAAI,EAAE,kBAAkB;qBAC3B;iBACJ;aACJ,CAAC,CAAC;YAEH,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC;gBACnC,CAAC,aAAa,CAAC,EAAE;oBACb,WAAW,EAAE,eAAe;oBAC5B,YAAY;iBACf;aACJ,CAAC,CAAC;YACH,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC;gBACpC,CAAC,eAAe,CAAC,EAAE;oBACf,WAAW,EAAE,eAAe;oBAC5B,YAAY;iBACf;aACJ,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACrD,EAAE,CAAC,0DAA0D,EAAE,GAAG,EAAE;YAChE,MAAM,YAAY,GAAG,OAAO,CAAC;YAC7B,MAAM,WAAW,GAAG,aAAa,CAAC;YAClC,MAAM,YAAY,GAAG,cAAc,CAAC;YACpC,MAAM,WAAW,GAAG,kBAAkB,CAAC;YACvC,MAAM,YAAY,GAAG,mBAAmB,CAAC;YACzC,MAAM,UAAU,GAAG,oBAAoB,CAAC;gBACpC,EAAE,EAAE,cAAc;gBAClB,QAAQ,EAAE,EAAC,aAAa,EAAE,YAAY,EAAC;aAC1C,CAAC,CAAC;YACH,MAAM,WAAW,GAAG,oBAAoB,CAAC;gBACrC,EAAE,EAAE,eAAe;gBACnB,YAAY,EAAE,CAAC,eAAe,CAAC;gBAC/B,QAAQ,EAAE;oBACN,cAAc,EAAE,YAAY;iBAC/B;aACJ,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,eAAe,CAAC;gBAC3B,KAAK,EAAE,CAAC,WAAW,CAAC;gBACpB,WAAW,EAAE,CAAC,UAAU,CAAC;aAC5B,CAAC,CAAC;YAEH,4FAA4F;YAC5F,MAAM,mBAAmB,GAAwB;gBAC7C,CAAC,cAAc,CAAC,EAAE;oBACd,MAAM,EAAE,EAAC,WAAW,EAAC;oBACrB,KAAK,EAAE,EAAC,WAAW,EAAC;iBACvB;gBACD,CAAC,eAAe,CAAC,EAAE;oBACf,MAAM,EAAE,EAAC,YAAY,EAAC;oBACtB,KAAK,EAAE,EAAC,YAAY,EAAC;iBACxB;gBACD,CAAC,QAAQ,CAAC,EAAE;oBACR,KAAK,EAAE,CAAC,EAAC,EAAE,EAAE,cAAc,EAAC,EAAE,EAAC,EAAE,EAAE,eAAe,EAAC,CAAC;oBACpD,OAAO,EAAE,CAAC;iBACb;aACJ,CAAC;YAEF,MAAM,MAAM,GAAG,sBAAsB,CAAC;gBAClC,mBAAmB,EAAE,EAAE;gBACvB,YAAY,EAAE,EAAE;gBAChB,MAAM;gBACN,mBAAmB;gBACnB,OAAO,EAAE;oBACL;wBACI,IAAI,EAAE,kBAAkB;qBAC3B;iBACJ;aACJ,CAA4B,CAAC;YAE9B,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC;gBACnC,MAAM,EAAE;oBACJ,CAAC,aAAa,CAAC,EAAE;wBACb,aAAa,EAAE,YAAY;wBAC3B,cAAc,EAAE,YAAY;qBAC/B;iBACJ;gBACD,KAAK,EAAE,EAAC,WAAW,EAAC;aACvB,CAAC,CAAC;YAEH,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC;gBACpC,MAAM,EAAE;oBACJ,CAAC,eAAe,CAAC,EAAE;wBACf,aAAa,EAAE,YAAY;wBAC3B,cAAc,EAAE,YAAY;qBAC/B;iBACJ;gBACD,KAAK,EAAE,EAAC,YAAY,EAAC;aACxB,CAAC,CAAC;YAEH,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC;gBAC7B,KAAK,EAAE,CAAC,EAAC,EAAE,EAAE,cAAc,EAAC,EAAE,EAAC,EAAE,EAAE,eAAe,EAAC,CAAC;gBACpD,OAAO,EAAE,CAAC;aACb,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;YAC1D,MAAM,YAAY,GAAG,OAAO,CAAC;YAC7B,MAAM,YAAY,GAAG,cAAc,CAAC;YACpC,MAAM,YAAY,GAAG,mBAAmB,CAAC;YAEzC,MAAM,WAAW,GAAG,oBAAoB,CAAC;gBACrC,EAAE,EAAE,eAAe;gBACnB,QAAQ,EAAE;oBACN,YAAY,EAAE,YAAY;iBAC7B;aACJ,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,eAAe,CAAC;gBAC3B,KAAK,EAAE,CAAC,WAAW,CAAC;gBACpB,WAAW,EAAE,SAAS;aACzB,CAAC,CAAC;YAEH,MAAM,mBAAmB,GAAwB;gBAC7C,CAAC,eAAe,CAAC,EAAE;oBACf,MAAM,EAAE,EAAC,YAAY,EAAE,YAAY,EAAC;oBACpC,KAAK,EAAE,EAAC,YAAY,EAAC;iBACxB;gBACD,CAAC,QAAQ,CAAC,EAAE;oBACR,KAAK,EAAE,CAAC,EAAC,EAAE,EAAE,eAAe,EAAE,WAAW,EAAE,aAAa,EAAC,CAAC;oBAC1D,OAAO,EAAE,CAAC;iBACb;aACJ,CAAC;YAEF,MAAM,MAAM,GAAG,sBAAsB,CAAC;gBAClC,mBAAmB,EAAE,EAAE;gBACvB,YAAY,EAAE,EAAC,YAAY,EAAC;gBAC5B,MAAM;gBACN,mBAAmB;gBACnB,OAAO,EAAE;oBACL;wBACI,IAAI,EAAE,kBAAkB;qBAC3B;iBACJ;aACJ,CAA4B,CAAC;YAE9B,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC;gBACpC,MAAM,EAAE;oBACJ,CAAC,aAAa,CAAC,EAAE;wBACb,YAAY;qBACf;iBACJ;gBACD,KAAK,EAAE,EAAC,YAAY,EAAC;aACxB,CAAC,CAAC;YAEH,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC;gBAC7B,KAAK,EAAE,CAAC,EAAC,EAAE,EAAE,eAAe,EAAE,WAAW,EAAE,aAAa,EAAC,CAAC;gBAC1D,OAAO,EAAE,CAAC;aACb,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,6BAA6B,EAAE,GAAG,EAAE;QACzC,EAAE,CAAC,iEAAiE,EAAE,GAAG,EAAE;YACvE,MAAM,aAAa,GAAG,SAAS,CAAC;YAChC,MAAM,aAAa,GAAG,SAAS,CAAC;YAChC,MAAM,WAAW,GAAG,oBAAoB,CAAC,EAAC,EAAE,EAAE,aAAa,EAAC,CAAC,CAAC;YAC9D,MAAM,WAAW,GAAG,oBAAoB,CAAC,EAAC,EAAE,EAAE,aAAa,EAAC,CAAC,CAAC;YAE9D,MAAM,MAAM,GAAG,eAAe,CAAC;gBAC3B,KAAK,EAAE,EAAE;gBACT,WAAW,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC;aAC1C,CAAC,CAAC;YAEH,MAAM,mBAAmB,GAAwB;gBAC7C,CAAC,QAAQ,CAAC,EAAE;oBACR,KAAK,EAAE,CAAC,EAAC,EAAE,EAAE,aAAa,EAAC,CAAC;oBAC5B,OAAO,EAAE,CAAC;iBACb;aACJ,CAAC;YAEF,MAAM,MAAM,GAAG,UAAU,CAAC;gBACtB,EAAE,EAAE,aAAa;gBACjB,MAAM;gBACN,mBAAmB;aACtB,CAAC,CAAC;YAEH,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,EAAC,EAAE,EAAE,aAAa,EAAC,EAAE,EAAC,EAAE,EAAE,aAAa,EAAC,CAAC,CAAC,CAAC;QAC7E,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC","sourcesContent":["import {META_KEY} from '../../constants';\nimport {\n Config,\n ConfigItem,\n ItemsStateAndParams,\n ItemsStateAndParamsBase,\n StringParams,\n} from '../../types';\nimport {addGroupToQueue, addToQueue, formQueueData} from '../helpers';\nimport {getItemsParams, getItemsStateAndParams} from '../state-and-params';\n\nconst NAMESPACE = 'default';\nconst GROUP_CONTROL_TYPE = 'group-control';\n\nconst GLOBAL_ITEM_ID = 'globalItem1';\nconst REGULAR_ITEM_ID = 'regularItem1';\nconst GROUP_ITEM_ID = 'groupItem1';\nconst GROUP_ITEM_ID_2 = 'groupItem2';\n\nconst getMockedControlItem = (props?: {\n id: string;\n groupItemIds?: string[];\n defaults?: StringParams;\n}): ConfigItem => {\n const {id = REGULAR_ITEM_ID, groupItemIds = [GROUP_ITEM_ID], defaults} = props || {};\n return {\n id,\n defaults,\n data: {\n group: groupItemIds.map((groupItemId) => ({\n id: groupItemId,\n namespace: NAMESPACE,\n defaults,\n })),\n },\n type: GROUP_CONTROL_TYPE,\n namespace: NAMESPACE,\n };\n};\n\nconst getMockedConfig = ({\n items = [],\n globalItems = [],\n}: {\n items?: ConfigItem[];\n globalItems?: ConfigItem[];\n}): Config => ({\n items,\n globalItems,\n salt: '0.9021043992843898',\n counter: 124,\n layout: [],\n aliases: {},\n connections: [],\n});\n\ndescribe('globalItems functionality in config', () => {\n describe('addToQueue with globalItems', () => {\n it('should include globalItems when filtering actual IDs', () => {\n const globalItem = getMockedControlItem({id: GLOBAL_ITEM_ID});\n const regularItem = getMockedControlItem();\n const config = getMockedConfig({\n items: [regularItem],\n globalItems: [globalItem],\n });\n\n const itemsStateAndParams: ItemsStateAndParams = {\n [META_KEY]: {\n queue: [{id: 'nonExistentItem'}, {id: GLOBAL_ITEM_ID}],\n version: 2,\n },\n };\n\n const result = addToQueue({\n id: REGULAR_ITEM_ID,\n config,\n itemsStateAndParams,\n });\n\n // Should filter out non-existent items and add the new item\n expect(result.queue).toEqual([{id: GLOBAL_ITEM_ID}, {id: REGULAR_ITEM_ID}]);\n });\n\n it('should handle empty globalItems array', () => {\n const regularItem = getMockedControlItem();\n const config = getMockedConfig({\n items: [regularItem],\n globalItems: [],\n });\n\n const itemsStateAndParams: ItemsStateAndParams = {\n [META_KEY]: {\n queue: [],\n version: 2,\n },\n };\n\n const result = addToQueue({\n id: REGULAR_ITEM_ID,\n config,\n itemsStateAndParams,\n });\n\n expect(result.queue).toEqual([{id: REGULAR_ITEM_ID}]);\n });\n });\n\n describe('addGroupToQueue with globalItems', () => {\n it('should include globalItems when filtering actual IDs for group items', () => {\n const globalGroupItemId = 'globalGroupItem';\n const globalGroupSubItemId = 'globalGroupSubItem';\n const globalGroupSubItemId2 = 'globalGroupSubItem2';\n const globalGroupItem = getMockedControlItem({\n id: globalGroupItemId,\n groupItemIds: [globalGroupSubItemId, globalGroupSubItemId2],\n });\n const regularItem = getMockedControlItem();\n const config = getMockedConfig({\n items: [regularItem],\n globalItems: [globalGroupItem],\n });\n\n const itemsStateAndParams: ItemsStateAndParams = {\n [META_KEY]: {\n queue: [\n {id: globalGroupItemId, groupItemId: globalGroupSubItemId},\n {id: 'nonExistentGroup', groupItemId: 'nonExistentSubItem'},\n ],\n version: 2,\n },\n };\n\n const result = addGroupToQueue({\n id: globalGroupItemId,\n groupItemIds: [globalGroupSubItemId2],\n config,\n itemsStateAndParams,\n });\n\n // Should preserve existing global group item and add new one\n expect(result.queue).toEqual([\n {id: globalGroupItemId, groupItemId: globalGroupSubItemId},\n {id: globalGroupItemId, groupItemId: globalGroupSubItemId2},\n ]);\n });\n });\n\n describe('formQueueData with globalItems', () => {\n it('should process globalItems in queue data formation', () => {\n const globalItem = getMockedControlItem({\n id: GLOBAL_ITEM_ID,\n groupItemIds: [GROUP_ITEM_ID],\n defaults: {\n size: 'l',\n },\n });\n const regularItem = getMockedControlItem({\n id: REGULAR_ITEM_ID,\n groupItemIds: [GROUP_ITEM_ID_2],\n defaults: {view: 'normal'},\n });\n\n const itemsStateAndParams: ItemsStateAndParams = {\n [GLOBAL_ITEM_ID]: {\n params: {\n [GROUP_ITEM_ID]: {\n size: 'xl',\n color: 'red',\n },\n },\n },\n [REGULAR_ITEM_ID]: {\n params: {\n [GROUP_ITEM_ID_2]: {\n view: 'contrast',\n },\n },\n },\n [META_KEY]: {\n queue: [\n {id: GLOBAL_ITEM_ID, groupItemId: GROUP_ITEM_ID},\n {id: REGULAR_ITEM_ID, groupItemId: GROUP_ITEM_ID_2},\n ],\n version: 2,\n },\n };\n\n const result = formQueueData({\n items: [regularItem, globalItem],\n itemsStateAndParams,\n });\n\n expect(result).toEqual([\n {\n id: GROUP_ITEM_ID,\n namespace: NAMESPACE,\n params: {size: 'xl'},\n },\n {\n id: GROUP_ITEM_ID_2,\n namespace: NAMESPACE,\n params: {view: 'contrast'},\n },\n ]);\n });\n });\n\n describe('getItemsParams with globalItems', () => {\n it('should process globalItems when getting items parameters', () => {\n const globalParam = 'globalParam';\n const overriddenParam = 'overriddenValue';\n const regularParam = 'regularValue';\n const globalItem = getMockedControlItem({id: GLOBAL_ITEM_ID, defaults: {globalParam}});\n const regularItem = getMockedControlItem({\n id: REGULAR_ITEM_ID,\n groupItemIds: [GROUP_ITEM_ID_2],\n defaults: {\n regularParam,\n },\n });\n\n const config = getMockedConfig({\n items: [regularItem],\n globalItems: [globalItem],\n });\n\n const itemsStateAndParams: ItemsStateAndParams = {\n [GLOBAL_ITEM_ID]: {\n params: {\n [GROUP_ITEM_ID]: {\n globalParam: overriddenParam,\n },\n },\n },\n [META_KEY]: {\n queue: [{id: GLOBAL_ITEM_ID, groupItemId: GROUP_ITEM_ID}],\n version: 2,\n },\n };\n\n const result = getItemsParams({\n defaultGlobalParams: {},\n globalParams: {},\n config,\n itemsStateAndParams,\n plugins: [\n {\n type: GROUP_CONTROL_TYPE,\n },\n ],\n });\n\n expect(result[GLOBAL_ITEM_ID]).toEqual({\n [GROUP_ITEM_ID]: {\n globalParam: overriddenParam,\n regularParam,\n },\n });\n expect(result[REGULAR_ITEM_ID]).toEqual({\n [GROUP_ITEM_ID_2]: {\n globalParam: overriddenParam,\n regularParam,\n },\n });\n });\n });\n\n describe('getItemsStateAndParams with globalItems', () => {\n it('should handle globalItems in state and params processing', () => {\n const initialValue = 'value';\n const globalParam = 'globalValue';\n const regularParam = 'regularValue';\n const globalState = 'globalStateValue';\n const regularState = 'regularStateValue';\n const globalItem = getMockedControlItem({\n id: GLOBAL_ITEM_ID,\n defaults: {globalDefault: initialValue},\n });\n const regularItem = getMockedControlItem({\n id: REGULAR_ITEM_ID,\n groupItemIds: [GROUP_ITEM_ID_2],\n defaults: {\n regularDefault: initialValue,\n },\n });\n\n const config = getMockedConfig({\n items: [regularItem],\n globalItems: [globalItem],\n });\n\n // globalParam and regularParam are not included in conrols defaults so they must be ignored\n const itemsStateAndParams: ItemsStateAndParams = {\n [GLOBAL_ITEM_ID]: {\n params: {globalParam},\n state: {globalState},\n },\n [REGULAR_ITEM_ID]: {\n params: {regularParam},\n state: {regularState},\n },\n [META_KEY]: {\n queue: [{id: GLOBAL_ITEM_ID}, {id: REGULAR_ITEM_ID}],\n version: 2,\n },\n };\n\n const result = getItemsStateAndParams({\n defaultGlobalParams: {},\n globalParams: {},\n config,\n itemsStateAndParams,\n plugins: [\n {\n type: GROUP_CONTROL_TYPE,\n },\n ],\n }) as ItemsStateAndParamsBase;\n\n expect(result[GLOBAL_ITEM_ID]).toEqual({\n params: {\n [GROUP_ITEM_ID]: {\n globalDefault: initialValue,\n regularDefault: initialValue,\n },\n },\n state: {globalState},\n });\n\n expect(result[REGULAR_ITEM_ID]).toEqual({\n params: {\n [GROUP_ITEM_ID_2]: {\n globalDefault: initialValue,\n regularDefault: initialValue,\n },\n },\n state: {regularState},\n });\n\n expect(result[META_KEY]).toEqual({\n queue: [{id: GLOBAL_ITEM_ID}, {id: REGULAR_ITEM_ID}],\n version: 2,\n });\n });\n\n it('should correctly handle config without globalItems', () => {\n const initialValue = 'value';\n const regularParam = 'regularValue';\n const regularState = 'regularStateValue';\n\n const regularItem = getMockedControlItem({\n id: REGULAR_ITEM_ID,\n defaults: {\n regularParam: initialValue,\n },\n });\n\n const config = getMockedConfig({\n items: [regularItem],\n globalItems: undefined,\n });\n\n const itemsStateAndParams: ItemsStateAndParams = {\n [REGULAR_ITEM_ID]: {\n params: {regularParam: initialValue},\n state: {regularState},\n },\n [META_KEY]: {\n queue: [{id: REGULAR_ITEM_ID, groupItemId: GROUP_ITEM_ID}],\n version: 2,\n },\n };\n\n const result = getItemsStateAndParams({\n defaultGlobalParams: {},\n globalParams: {regularParam},\n config,\n itemsStateAndParams,\n plugins: [\n {\n type: GROUP_CONTROL_TYPE,\n },\n ],\n }) as ItemsStateAndParamsBase;\n\n expect(result[REGULAR_ITEM_ID]).toEqual({\n params: {\n [GROUP_ITEM_ID]: {\n regularParam,\n },\n },\n state: {regularState},\n });\n\n expect(result[META_KEY]).toEqual({\n queue: [{id: REGULAR_ITEM_ID, groupItemId: GROUP_ITEM_ID}],\n version: 2,\n });\n });\n });\n\n describe('edge cases with globalItems', () => {\n it('should handle config with only globalItems and no regular items', () => {\n const globalItemId1 = 'global1';\n const globalItemId2 = 'global2';\n const globalItem1 = getMockedControlItem({id: globalItemId1});\n const globalItem2 = getMockedControlItem({id: globalItemId2});\n\n const config = getMockedConfig({\n items: [],\n globalItems: [globalItem1, globalItem2],\n });\n\n const itemsStateAndParams: ItemsStateAndParams = {\n [META_KEY]: {\n queue: [{id: globalItemId1}],\n version: 2,\n },\n };\n\n const result = addToQueue({\n id: globalItemId2,\n config,\n itemsStateAndParams,\n });\n\n expect(result.queue).toEqual([{id: globalItemId1}, {id: globalItemId2}]);\n });\n });\n});\n"]}
|
|
@@ -78,4 +78,5 @@ export declare function hasActionParam(conf?: StringParams | Record<string, Stri
|
|
|
78
78
|
* @param stateAndParams
|
|
79
79
|
*/
|
|
80
80
|
export declare function hasActionParams(stateAndParams: ItemStateAndParams): boolean;
|
|
81
|
+
export declare function getAllConfigItems(config: Config): ConfigItem[];
|
|
81
82
|
export {};
|
|
@@ -181,7 +181,8 @@ export function addToQueue({ id, tabId, config, itemsStateAndParams, }) {
|
|
|
181
181
|
if (!meta) {
|
|
182
182
|
return { queue: [queueItem], version: CURRENT_VERSION };
|
|
183
183
|
}
|
|
184
|
-
const
|
|
184
|
+
const configItems = getAllConfigItems(config);
|
|
185
|
+
const actualIds = getActualItemsIds(configItems);
|
|
185
186
|
const metaQueue = meta.queue || [];
|
|
186
187
|
const notCurrent = (item) => {
|
|
187
188
|
if (item.groupItemId) {
|
|
@@ -205,7 +206,8 @@ export function addGroupToQueue({ id, groupItemIds, config, itemsStateAndParams,
|
|
|
205
206
|
if (!meta) {
|
|
206
207
|
return { queue: queueItems, version: CURRENT_VERSION };
|
|
207
208
|
}
|
|
208
|
-
const
|
|
209
|
+
const configItems = getAllConfigItems(config);
|
|
210
|
+
const actualIds = getActualItemsIds(configItems);
|
|
209
211
|
const metaQueue = meta.queue || [];
|
|
210
212
|
const notCurrent = (item) => {
|
|
211
213
|
if (item.groupItemId) {
|
|
@@ -298,4 +300,9 @@ export function hasActionParams(stateAndParams) {
|
|
|
298
300
|
}
|
|
299
301
|
return hasActionParam(stateAndParams.params);
|
|
300
302
|
}
|
|
303
|
+
// Combines regular items and global items from config into a single array
|
|
304
|
+
// For global usage across the project
|
|
305
|
+
export function getAllConfigItems(config) {
|
|
306
|
+
return [...config.items, ...(config.globalItems || [])];
|
|
307
|
+
}
|
|
301
308
|
//# sourceMappingURL=helpers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"../../../../src","sources":["shared/modules/helpers.ts"],"names":[],"mappings":"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","sourcesContent":["import get from 'lodash/get';\nimport invert from 'lodash/invert';\nimport isEmpty from 'lodash/isEmpty';\nimport keyBy from 'lodash/keyBy';\nimport pick from 'lodash/pick';\n\nimport {ACTION_PARAM_PREFIX, CURRENT_VERSION, META_KEY} from '../constants';\nimport {\n Config,\n ConfigAliases,\n ConfigConnection,\n ConfigItem,\n ConfigItemGroup,\n ConfigItemWithGroup,\n ConfigItemWithTabs,\n ItemStateAndParams,\n ItemsStateAndParams,\n ItemsStateAndParamsBase,\n PluginBase,\n QueueItem,\n StateAndParamsMetaData,\n StringParams,\n} from '../types';\n\nfunction getNormalizedPlugins(plugins: PluginBase[]) {\n return keyBy(plugins, 'type');\n}\n\nexport function prerenderItems({\n items,\n plugins,\n}: {\n items: ConfigItem[];\n plugins: PluginBase[];\n}): ConfigItem[] {\n const normalizedPlugins = getNormalizedPlugins(plugins);\n return items.map((item) => {\n const {type} = item;\n const plugin = normalizedPlugins[type];\n return typeof plugin.prerenderMiddleware === 'function'\n ? plugin.prerenderMiddleware(item)\n : item;\n });\n}\n\nexport function getItemsStateAndParamsMeta(itemsStateAndParams: ItemsStateAndParams) {\n const meta = itemsStateAndParams?.[META_KEY] as StateAndParamsMetaData | undefined;\n return meta;\n}\n\nexport function getCurrentVersion(itemsStateAndParams: ItemsStateAndParams): number {\n if (isEmpty(itemsStateAndParams)) {\n return CURRENT_VERSION;\n }\n const meta = getItemsStateAndParamsMeta(itemsStateAndParams);\n if (!meta) {\n const withParams = Object.keys(itemsStateAndParams).some((id) => {\n return Boolean((itemsStateAndParams as ItemsStateAndParamsBase)[id].params);\n });\n if (withParams) {\n return 1;\n }\n return CURRENT_VERSION;\n }\n return meta.version;\n}\n\nfunction isConfigData(\n item: Pick<ConfigItem, 'data'> | ConfigItemGroup,\n): item is Pick<ConfigItem, 'data'> {\n return 'data' in item && 'type' in item;\n}\n\nexport function isItemWithTabs(\n item: Pick<ConfigItem, 'data'> | ConfigItemGroup,\n): item is Pick<ConfigItemWithTabs, 'data'> {\n return isConfigData(item) && Array.isArray(item?.data?.tabs);\n}\n\nexport function isItemWithGroup(\n item: Pick<ConfigItem, 'data'>,\n): item is Pick<ConfigItemWithGroup, 'data'> {\n return Array.isArray(item?.data?.group);\n}\n\nexport type FormedQueueData = {\n id: string;\n namespace: string;\n params: StringParams;\n};\n\n// Array of parameters from widgets according to queue\nexport function formQueueData({\n items,\n itemsStateAndParams,\n}: {\n items: ConfigItem[];\n itemsStateAndParams: ItemsStateAndParams;\n}): FormedQueueData[] {\n const queue = getItemsStateAndParamsMeta(itemsStateAndParams)?.queue || [];\n const keyById = keyBy(items, 'id');\n return queue.reduce((queueArray: FormedQueueData[], queueItem: QueueItem) => {\n const {id: queueId, tabId, groupItemId} = queueItem;\n const item = keyById[queueId];\n const isGroup = isItemWithGroup(item);\n if (!item || (isGroup && !groupItemId)) {\n return queueArray;\n }\n\n if (isGroup && groupItemId) {\n const itemQueueParams: Record<string, StringParams> = get(\n itemsStateAndParams,\n [item.id, 'params'],\n {},\n );\n\n const groupItem = item.data.group.find(({id}) => id === groupItemId);\n if (!groupItem) {\n return queueArray;\n }\n const groupItemQueueParams = itemQueueParams[groupItemId];\n const filteredParamsByDefaults = pick(\n groupItemQueueParams,\n Object.keys(groupItem.defaults || {}),\n );\n\n /**\n * merging filtered params and filtered actionParams with prefixes\n */\n const params = {\n ...filteredParamsByDefaults,\n ...(pickActionParamsFromParams(groupItemQueueParams, true) || {}),\n };\n\n queueArray.push({\n id: groupItem.id,\n namespace: groupItem.namespace,\n params,\n });\n\n return queueArray;\n }\n\n const itemQueueParams: StringParams = get(itemsStateAndParams, [item.id, 'params'], {});\n\n let itemDefaultParams: StringParams;\n if (isItemWithTabs(item)) {\n if (!tabId || resolveItemInnerId({item, itemsStateAndParams}) !== tabId) {\n return queueArray;\n }\n itemDefaultParams =\n item.data.tabs.find((tabData) => tabData.id === tabId)?.params || {};\n } else {\n itemDefaultParams = item.defaults || {};\n }\n\n const filteredParamsByDefaults = pick(itemQueueParams, Object.keys(itemDefaultParams));\n\n /**\n * merging filtered params and filtered actionParams with prefixes\n */\n const params = {\n ...filteredParamsByDefaults,\n ...(pickActionParamsFromParams(itemQueueParams, true) || {}),\n };\n\n queueArray.push({\n id: item.id,\n namespace: item.namespace,\n params,\n });\n\n return queueArray;\n }, []);\n}\n\nexport function resolveItemInnerId({\n item,\n itemsStateAndParams,\n}: {\n item: Pick<ConfigItemWithTabs, 'data' | 'id'>;\n itemsStateAndParams?: ItemsStateAndParams;\n}): string {\n const {id} = item;\n const stateTabId: string | undefined = (itemsStateAndParams as ItemsStateAndParamsBase)?.[id]\n ?.state?.tabId;\n\n const {tabs} = (item as ConfigItemWithTabs).data;\n if (stateTabId && tabs.some((tab) => tab.id === stateTabId)) {\n return stateTabId;\n }\n const indexIsDefault = tabs.findIndex(({isDefault}) => isDefault);\n return indexIsDefault === -1 ? tabs[0].id : tabs[indexIsDefault].id;\n}\n\n// В config.connections в from/to может быть как id item'a (item.id), так и id таба (item.data.tabs[].id)\n// Тут мы нормализуем к виду Record<itemId: ignoredItemId[]>\nexport function getMapItemsIgnores({\n items,\n ignores,\n itemsStateAndParams,\n isFirstVersion,\n}: {\n items: (ConfigItem | ConfigItemGroup)[];\n ignores: ConfigConnection[];\n itemsStateAndParams: ItemsStateAndParams;\n isFirstVersion: boolean;\n}): Record<string, string[]> {\n // Record<itemId, innerId (tabId | itemId)>\n const mapIds = items.reduce((acc: Record<string, string>, item) => {\n return {\n ...acc,\n [item.id]: isItemWithTabs(item)\n ? resolveItemInnerId({item, itemsStateAndParams})\n : item.id,\n };\n }, {});\n // Record<innerId (tabId | itemId), itemId>\n const invertedMapIds = invert(mapIds);\n return items.reduce((acc: Record<string, string[]>, item) => {\n return {\n ...acc,\n [item.id]: ignores\n .filter(({from, to}) => {\n if (isFirstVersion) {\n // В первой версии был баг - если есть игнор на один таб, то весь виджет игнорит селектор.\n // Повторяем это неправильное поведение,\n // иначе будут прилетать дефолты селекта в табы, которые не игнорят.\n const fromInTabs =\n isItemWithTabs(item) && item.data.tabs.some(({id}) => id === from);\n return (from === item.id || fromInTabs) && invertedMapIds[to];\n }\n return from === mapIds[item.id] && invertedMapIds[to];\n })\n .map(({to}) => invertedMapIds[to]),\n };\n }, {});\n}\n\nexport function mergeParamsWithAliases({\n aliases,\n namespace,\n params,\n actionParams,\n}: {\n aliases: ConfigAliases;\n namespace: string;\n params: StringParams;\n actionParams?: StringParams;\n}): StringParams {\n const aliasesByNamespace = get(aliases, [namespace], []) as string[][];\n const items = {\n ...(params || {}),\n ...(actionParams || {}),\n };\n return Object.keys(items).reduce((matchedParams: StringParams, paramKey) => {\n const paramValue = items[paramKey];\n const collectAliasesParamsKeys = aliasesByNamespace.reduce(\n (collect, group) => {\n return group.includes(paramKey) ? collect.concat(group) : collect;\n },\n [paramKey],\n );\n return {\n ...matchedParams,\n ...collectAliasesParamsKeys.reduce((acc: StringParams, matchedKey) => {\n return {...acc, [matchedKey]: paramValue};\n }, {}),\n };\n }, {});\n}\n\nexport function getInitialItemsStateAndParamsMeta(): StateAndParamsMetaData {\n return {\n queue: [],\n version: CURRENT_VERSION,\n };\n}\n\ninterface ChangeQueueArg {\n id: string;\n tabId?: string;\n groupItemId?: string;\n config: Config;\n itemsStateAndParams: ItemsStateAndParams;\n}\n\ninterface ChangeQueueGroupArg {\n id: string;\n groupItemIds: string[];\n config: Config;\n itemsStateAndParams: ItemsStateAndParams;\n}\n\nfunction getActualItemsIds(items: ConfigItem[]) {\n return items.reduce((ids: string[], item) => {\n if (isItemWithGroup(item)) {\n item.data.group.forEach((groupItem) => {\n ids.push(groupItem.id);\n });\n }\n\n ids.push(item.id);\n return ids;\n }, []);\n}\n\nexport function addToQueue({\n id,\n tabId,\n config,\n itemsStateAndParams,\n}: ChangeQueueArg): StateAndParamsMetaData {\n const queueItem: QueueItem = {id};\n if (tabId) {\n queueItem.tabId = tabId;\n }\n const meta = getItemsStateAndParamsMeta(itemsStateAndParams);\n if (!meta) {\n return {queue: [queueItem], version: CURRENT_VERSION};\n }\n const actualIds = getActualItemsIds(config.items);\n const metaQueue = meta.queue || [];\n const notCurrent = (item: QueueItem) => {\n if (item.groupItemId) {\n return actualIds.includes(item.groupItemId);\n }\n return item.id !== id;\n };\n return {\n queue: metaQueue\n .filter((item) => actualIds.includes(item.id) && notCurrent(item))\n .concat(queueItem),\n version: meta.version || CURRENT_VERSION,\n };\n}\n\nexport function addGroupToQueue({\n id,\n groupItemIds,\n config,\n itemsStateAndParams,\n}: ChangeQueueGroupArg): StateAndParamsMetaData {\n const queueItems: QueueItem[] = groupItemIds.map((groupItemId) => ({\n id,\n groupItemId,\n }));\n const meta = getItemsStateAndParamsMeta(itemsStateAndParams);\n if (!meta) {\n return {queue: queueItems, version: CURRENT_VERSION};\n }\n const actualIds = getActualItemsIds(config.items);\n const metaQueue = meta.queue || [];\n const notCurrent = (item: QueueItem) => {\n if (item.groupItemId) {\n return actualIds.includes(item.groupItemId) && !groupItemIds.includes(item.groupItemId);\n }\n return true;\n };\n return {\n queue: metaQueue\n .filter((item) => actualIds.includes(item.id) && notCurrent(item))\n .concat(queueItems),\n version: meta.version || CURRENT_VERSION,\n };\n}\n\nexport function deleteFromQueue(data: ChangeQueueArg): StateAndParamsMetaData {\n const meta = addToQueue(data);\n return {\n ...meta,\n queue: meta.queue.slice(0, -1),\n };\n}\n\n/**\n * public function for getting only actionParams from object (all fields with keys that contains prefix)\n * @param params - object for pick fields\n * @param returnWithPrefix - format of returning actionParams fields (with actionParams prefix or without them)\n *\n * ex1: pickActionParamsFromParams({City: 'NY', _ap_Year: '2023'}, true) returns {_ap_Year: '2023'}\n * ex2: pickActionParamsFromParams({City: 'NY', _ap_Year: '2023'}) returns {Year: '2023'}\n */\nexport function pickActionParamsFromParams(\n params: ItemStateAndParams['params'],\n returnWithPrefix?: boolean,\n) {\n if (!params || isEmpty(params)) {\n return {};\n }\n\n const actionParams: StringParams = {};\n for (const [key, val] of Object.entries(params)) {\n // starts with actionParams prefix (from'_ap_')\n if (key.startsWith(ACTION_PARAM_PREFIX)) {\n const paramName = returnWithPrefix ? key : key.slice(ACTION_PARAM_PREFIX.length);\n actionParams[paramName] = val;\n }\n }\n return actionParams;\n}\n\n/**\n * public function for getting params from object without actionParams\n * @param params\n */\nexport function pickExceptActionParamsFromParams(params: ItemStateAndParams['params']) {\n if (!params || isEmpty(params)) {\n return {};\n }\n\n const onlyParams: StringParams = {};\n for (const [key, val] of Object.entries(params)) {\n if (!key.startsWith(ACTION_PARAM_PREFIX)) {\n onlyParams[key] = val;\n }\n }\n return onlyParams;\n}\n\n/**\n * public function for transforming object to actionParams format\n * @param params\n */\nexport function transformParamsToActionParams(params: ItemStateAndParams['params']) {\n if (!params || isEmpty(params)) {\n return {};\n }\n\n const actionParams: StringParams = {};\n for (const [key, val] of Object.entries(params)) {\n actionParams[`${ACTION_PARAM_PREFIX}${key}`] = val;\n }\n return actionParams;\n}\n\n/**\n * check if object contains actionParams\n * @param conf\n */\nexport function hasActionParam(conf?: StringParams | Record<string, StringParams>): boolean {\n return Object.keys(conf || {}).some((key) => {\n if (conf && typeof conf[key] === 'object' && !Array.isArray(conf[key])) {\n return Object.keys(conf[key]).some((subkey) => subkey.startsWith(ACTION_PARAM_PREFIX));\n }\n return key.startsWith(ACTION_PARAM_PREFIX);\n });\n}\n\n/**\n * check if ItemStateAndParams object has actionParams in params or state field\n * @param stateAndParams\n */\nexport function hasActionParams(stateAndParams: ItemStateAndParams) {\n if (!stateAndParams || isEmpty(stateAndParams)) {\n return false;\n }\n\n return hasActionParam(stateAndParams.params);\n}\n"]}
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"../../../../src","sources":["shared/modules/helpers.ts"],"names":[],"mappings":"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","sourcesContent":["import get from 'lodash/get';\nimport invert from 'lodash/invert';\nimport isEmpty from 'lodash/isEmpty';\nimport keyBy from 'lodash/keyBy';\nimport pick from 'lodash/pick';\n\nimport {ACTION_PARAM_PREFIX, CURRENT_VERSION, META_KEY} from '../constants';\nimport {\n Config,\n ConfigAliases,\n ConfigConnection,\n ConfigItem,\n ConfigItemGroup,\n ConfigItemWithGroup,\n ConfigItemWithTabs,\n ItemStateAndParams,\n ItemsStateAndParams,\n ItemsStateAndParamsBase,\n PluginBase,\n QueueItem,\n StateAndParamsMetaData,\n StringParams,\n} from '../types';\n\nfunction getNormalizedPlugins(plugins: PluginBase[]) {\n return keyBy(plugins, 'type');\n}\n\nexport function prerenderItems({\n items,\n plugins,\n}: {\n items: ConfigItem[];\n plugins: PluginBase[];\n}): ConfigItem[] {\n const normalizedPlugins = getNormalizedPlugins(plugins);\n return items.map((item) => {\n const {type} = item;\n const plugin = normalizedPlugins[type];\n return typeof plugin.prerenderMiddleware === 'function'\n ? plugin.prerenderMiddleware(item)\n : item;\n });\n}\n\nexport function getItemsStateAndParamsMeta(itemsStateAndParams: ItemsStateAndParams) {\n const meta = itemsStateAndParams?.[META_KEY] as StateAndParamsMetaData | undefined;\n return meta;\n}\n\nexport function getCurrentVersion(itemsStateAndParams: ItemsStateAndParams): number {\n if (isEmpty(itemsStateAndParams)) {\n return CURRENT_VERSION;\n }\n const meta = getItemsStateAndParamsMeta(itemsStateAndParams);\n if (!meta) {\n const withParams = Object.keys(itemsStateAndParams).some((id) => {\n return Boolean((itemsStateAndParams as ItemsStateAndParamsBase)[id].params);\n });\n if (withParams) {\n return 1;\n }\n return CURRENT_VERSION;\n }\n return meta.version;\n}\n\nfunction isConfigData(\n item: Pick<ConfigItem, 'data'> | ConfigItemGroup,\n): item is Pick<ConfigItem, 'data'> {\n return 'data' in item && 'type' in item;\n}\n\nexport function isItemWithTabs(\n item: Pick<ConfigItem, 'data'> | ConfigItemGroup,\n): item is Pick<ConfigItemWithTabs, 'data'> {\n return isConfigData(item) && Array.isArray(item?.data?.tabs);\n}\n\nexport function isItemWithGroup(\n item: Pick<ConfigItem, 'data'>,\n): item is Pick<ConfigItemWithGroup, 'data'> {\n return Array.isArray(item?.data?.group);\n}\n\nexport type FormedQueueData = {\n id: string;\n namespace: string;\n params: StringParams;\n};\n\n// Array of parameters from widgets according to queue\nexport function formQueueData({\n items,\n itemsStateAndParams,\n}: {\n items: ConfigItem[];\n itemsStateAndParams: ItemsStateAndParams;\n}): FormedQueueData[] {\n const queue = getItemsStateAndParamsMeta(itemsStateAndParams)?.queue || [];\n const keyById = keyBy(items, 'id');\n return queue.reduce((queueArray: FormedQueueData[], queueItem: QueueItem) => {\n const {id: queueId, tabId, groupItemId} = queueItem;\n const item = keyById[queueId];\n const isGroup = isItemWithGroup(item);\n if (!item || (isGroup && !groupItemId)) {\n return queueArray;\n }\n\n if (isGroup && groupItemId) {\n const itemQueueParams: Record<string, StringParams> = get(\n itemsStateAndParams,\n [item.id, 'params'],\n {},\n );\n\n const groupItem = item.data.group.find(({id}) => id === groupItemId);\n if (!groupItem) {\n return queueArray;\n }\n const groupItemQueueParams = itemQueueParams[groupItemId];\n const filteredParamsByDefaults = pick(\n groupItemQueueParams,\n Object.keys(groupItem.defaults || {}),\n );\n\n /**\n * merging filtered params and filtered actionParams with prefixes\n */\n const params = {\n ...filteredParamsByDefaults,\n ...(pickActionParamsFromParams(groupItemQueueParams, true) || {}),\n };\n\n queueArray.push({\n id: groupItem.id,\n namespace: groupItem.namespace,\n params,\n });\n\n return queueArray;\n }\n\n const itemQueueParams: StringParams = get(itemsStateAndParams, [item.id, 'params'], {});\n\n let itemDefaultParams: StringParams;\n if (isItemWithTabs(item)) {\n if (!tabId || resolveItemInnerId({item, itemsStateAndParams}) !== tabId) {\n return queueArray;\n }\n itemDefaultParams =\n item.data.tabs.find((tabData) => tabData.id === tabId)?.params || {};\n } else {\n itemDefaultParams = item.defaults || {};\n }\n\n const filteredParamsByDefaults = pick(itemQueueParams, Object.keys(itemDefaultParams));\n\n /**\n * merging filtered params and filtered actionParams with prefixes\n */\n const params = {\n ...filteredParamsByDefaults,\n ...(pickActionParamsFromParams(itemQueueParams, true) || {}),\n };\n\n queueArray.push({\n id: item.id,\n namespace: item.namespace,\n params,\n });\n\n return queueArray;\n }, []);\n}\n\nexport function resolveItemInnerId({\n item,\n itemsStateAndParams,\n}: {\n item: Pick<ConfigItemWithTabs, 'data' | 'id'>;\n itemsStateAndParams?: ItemsStateAndParams;\n}): string {\n const {id} = item;\n const stateTabId: string | undefined = (itemsStateAndParams as ItemsStateAndParamsBase)?.[id]\n ?.state?.tabId;\n\n const {tabs} = (item as ConfigItemWithTabs).data;\n if (stateTabId && tabs.some((tab) => tab.id === stateTabId)) {\n return stateTabId;\n }\n const indexIsDefault = tabs.findIndex(({isDefault}) => isDefault);\n return indexIsDefault === -1 ? tabs[0].id : tabs[indexIsDefault].id;\n}\n\n// В config.connections в from/to может быть как id item'a (item.id), так и id таба (item.data.tabs[].id)\n// Тут мы нормализуем к виду Record<itemId: ignoredItemId[]>\nexport function getMapItemsIgnores({\n items,\n ignores,\n itemsStateAndParams,\n isFirstVersion,\n}: {\n items: (ConfigItem | ConfigItemGroup)[];\n ignores: ConfigConnection[];\n itemsStateAndParams: ItemsStateAndParams;\n isFirstVersion: boolean;\n}): Record<string, string[]> {\n // Record<itemId, innerId (tabId | itemId)>\n const mapIds = items.reduce((acc: Record<string, string>, item) => {\n return {\n ...acc,\n [item.id]: isItemWithTabs(item)\n ? resolveItemInnerId({item, itemsStateAndParams})\n : item.id,\n };\n }, {});\n // Record<innerId (tabId | itemId), itemId>\n const invertedMapIds = invert(mapIds);\n return items.reduce((acc: Record<string, string[]>, item) => {\n return {\n ...acc,\n [item.id]: ignores\n .filter(({from, to}) => {\n if (isFirstVersion) {\n // В первой версии был баг - если есть игнор на один таб, то весь виджет игнорит селектор.\n // Повторяем это неправильное поведение,\n // иначе будут прилетать дефолты селекта в табы, которые не игнорят.\n const fromInTabs =\n isItemWithTabs(item) && item.data.tabs.some(({id}) => id === from);\n return (from === item.id || fromInTabs) && invertedMapIds[to];\n }\n return from === mapIds[item.id] && invertedMapIds[to];\n })\n .map(({to}) => invertedMapIds[to]),\n };\n }, {});\n}\n\nexport function mergeParamsWithAliases({\n aliases,\n namespace,\n params,\n actionParams,\n}: {\n aliases: ConfigAliases;\n namespace: string;\n params: StringParams;\n actionParams?: StringParams;\n}): StringParams {\n const aliasesByNamespace = get(aliases, [namespace], []) as string[][];\n const items = {\n ...(params || {}),\n ...(actionParams || {}),\n };\n return Object.keys(items).reduce((matchedParams: StringParams, paramKey) => {\n const paramValue = items[paramKey];\n const collectAliasesParamsKeys = aliasesByNamespace.reduce(\n (collect, group) => {\n return group.includes(paramKey) ? collect.concat(group) : collect;\n },\n [paramKey],\n );\n return {\n ...matchedParams,\n ...collectAliasesParamsKeys.reduce((acc: StringParams, matchedKey) => {\n return {...acc, [matchedKey]: paramValue};\n }, {}),\n };\n }, {});\n}\n\nexport function getInitialItemsStateAndParamsMeta(): StateAndParamsMetaData {\n return {\n queue: [],\n version: CURRENT_VERSION,\n };\n}\n\ninterface ChangeQueueArg {\n id: string;\n tabId?: string;\n groupItemId?: string;\n config: Config;\n itemsStateAndParams: ItemsStateAndParams;\n}\n\ninterface ChangeQueueGroupArg {\n id: string;\n groupItemIds: string[];\n config: Config;\n itemsStateAndParams: ItemsStateAndParams;\n}\n\nfunction getActualItemsIds(items: ConfigItem[]) {\n return items.reduce((ids: string[], item) => {\n if (isItemWithGroup(item)) {\n item.data.group.forEach((groupItem) => {\n ids.push(groupItem.id);\n });\n }\n\n ids.push(item.id);\n return ids;\n }, []);\n}\n\nexport function addToQueue({\n id,\n tabId,\n config,\n itemsStateAndParams,\n}: ChangeQueueArg): StateAndParamsMetaData {\n const queueItem: QueueItem = {id};\n if (tabId) {\n queueItem.tabId = tabId;\n }\n const meta = getItemsStateAndParamsMeta(itemsStateAndParams);\n if (!meta) {\n return {queue: [queueItem], version: CURRENT_VERSION};\n }\n\n const configItems = getAllConfigItems(config);\n const actualIds = getActualItemsIds(configItems);\n const metaQueue = meta.queue || [];\n const notCurrent = (item: QueueItem) => {\n if (item.groupItemId) {\n return actualIds.includes(item.groupItemId);\n }\n return item.id !== id;\n };\n return {\n queue: metaQueue\n .filter((item) => actualIds.includes(item.id) && notCurrent(item))\n .concat(queueItem),\n version: meta.version || CURRENT_VERSION,\n };\n}\n\nexport function addGroupToQueue({\n id,\n groupItemIds,\n config,\n itemsStateAndParams,\n}: ChangeQueueGroupArg): StateAndParamsMetaData {\n const queueItems: QueueItem[] = groupItemIds.map((groupItemId) => ({\n id,\n groupItemId,\n }));\n const meta = getItemsStateAndParamsMeta(itemsStateAndParams);\n if (!meta) {\n return {queue: queueItems, version: CURRENT_VERSION};\n }\n const configItems = getAllConfigItems(config);\n const actualIds = getActualItemsIds(configItems);\n const metaQueue = meta.queue || [];\n const notCurrent = (item: QueueItem) => {\n if (item.groupItemId) {\n return actualIds.includes(item.groupItemId) && !groupItemIds.includes(item.groupItemId);\n }\n return true;\n };\n return {\n queue: metaQueue\n .filter((item) => actualIds.includes(item.id) && notCurrent(item))\n .concat(queueItems),\n version: meta.version || CURRENT_VERSION,\n };\n}\n\nexport function deleteFromQueue(data: ChangeQueueArg): StateAndParamsMetaData {\n const meta = addToQueue(data);\n return {\n ...meta,\n queue: meta.queue.slice(0, -1),\n };\n}\n\n/**\n * public function for getting only actionParams from object (all fields with keys that contains prefix)\n * @param params - object for pick fields\n * @param returnWithPrefix - format of returning actionParams fields (with actionParams prefix or without them)\n *\n * ex1: pickActionParamsFromParams({City: 'NY', _ap_Year: '2023'}, true) returns {_ap_Year: '2023'}\n * ex2: pickActionParamsFromParams({City: 'NY', _ap_Year: '2023'}) returns {Year: '2023'}\n */\nexport function pickActionParamsFromParams(\n params: ItemStateAndParams['params'],\n returnWithPrefix?: boolean,\n) {\n if (!params || isEmpty(params)) {\n return {};\n }\n\n const actionParams: StringParams = {};\n for (const [key, val] of Object.entries(params)) {\n // starts with actionParams prefix (from'_ap_')\n if (key.startsWith(ACTION_PARAM_PREFIX)) {\n const paramName = returnWithPrefix ? key : key.slice(ACTION_PARAM_PREFIX.length);\n actionParams[paramName] = val;\n }\n }\n return actionParams;\n}\n\n/**\n * public function for getting params from object without actionParams\n * @param params\n */\nexport function pickExceptActionParamsFromParams(params: ItemStateAndParams['params']) {\n if (!params || isEmpty(params)) {\n return {};\n }\n\n const onlyParams: StringParams = {};\n for (const [key, val] of Object.entries(params)) {\n if (!key.startsWith(ACTION_PARAM_PREFIX)) {\n onlyParams[key] = val;\n }\n }\n return onlyParams;\n}\n\n/**\n * public function for transforming object to actionParams format\n * @param params\n */\nexport function transformParamsToActionParams(params: ItemStateAndParams['params']) {\n if (!params || isEmpty(params)) {\n return {};\n }\n\n const actionParams: StringParams = {};\n for (const [key, val] of Object.entries(params)) {\n actionParams[`${ACTION_PARAM_PREFIX}${key}`] = val;\n }\n return actionParams;\n}\n\n/**\n * check if object contains actionParams\n * @param conf\n */\nexport function hasActionParam(conf?: StringParams | Record<string, StringParams>): boolean {\n return Object.keys(conf || {}).some((key) => {\n if (conf && typeof conf[key] === 'object' && !Array.isArray(conf[key])) {\n return Object.keys(conf[key]).some((subkey) => subkey.startsWith(ACTION_PARAM_PREFIX));\n }\n return key.startsWith(ACTION_PARAM_PREFIX);\n });\n}\n\n/**\n * check if ItemStateAndParams object has actionParams in params or state field\n * @param stateAndParams\n */\nexport function hasActionParams(stateAndParams: ItemStateAndParams) {\n if (!stateAndParams || isEmpty(stateAndParams)) {\n return false;\n }\n\n return hasActionParam(stateAndParams.params);\n}\n\n// Combines regular items and global items from config into a single array\n// For global usage across the project\nexport function getAllConfigItems(config: Config): ConfigItem[] {\n return [...config.items, ...(config.globalItems || [])];\n}\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import groupBy from "lodash/groupBy.js";
|
|
2
2
|
import { META_KEY } from "../constants/index.js";
|
|
3
|
-
import { formQueueData, getCurrentVersion, getMapItemsIgnores, hasActionParam, isItemWithGroup, isItemWithTabs, mergeParamsWithAliases, pickActionParamsFromParams, pickExceptActionParamsFromParams, prerenderItems, resolveItemInnerId, } from "./helpers.js";
|
|
3
|
+
import { formQueueData, getAllConfigItems, getCurrentVersion, getMapItemsIgnores, hasActionParam, isItemWithGroup, isItemWithTabs, mergeParamsWithAliases, pickActionParamsFromParams, pickExceptActionParamsFromParams, prerenderItems, resolveItemInnerId, } from "./helpers.js";
|
|
4
4
|
const getParamsFromStateAndParams = ({ itemsStateAndParams, parentItemId, item, }) => {
|
|
5
5
|
const widgetId = parentItemId || item.id;
|
|
6
6
|
if (!(widgetId in itemsStateAndParams)) {
|
|
@@ -59,8 +59,12 @@ function getItemParams({ item, itemsStateAndParams, mapItemsIgnores, itemsWithDe
|
|
|
59
59
|
return Object.assign(Object.assign({}, defaultWidgetParams), itemParams);
|
|
60
60
|
}
|
|
61
61
|
export function getItemsParams({ defaultGlobalParams = {}, globalParams = {}, config, itemsStateAndParams, plugins, useStateAsInitial, }) {
|
|
62
|
+
const configItems = getAllConfigItems(config);
|
|
62
63
|
const { aliases, connections } = config;
|
|
63
|
-
const items = prerenderItems({
|
|
64
|
+
const items = prerenderItems({
|
|
65
|
+
items: configItems,
|
|
66
|
+
plugins,
|
|
67
|
+
});
|
|
64
68
|
const isFirstVersion = getCurrentVersion(itemsStateAndParams) === 1;
|
|
65
69
|
const allItems = items.reduce((paramsItems, item) => {
|
|
66
70
|
if (isItemWithGroup(item)) {
|
|
@@ -114,7 +118,8 @@ export function getItemsParams({ defaultGlobalParams = {}, globalParams = {}, co
|
|
|
114
118
|
}, {});
|
|
115
119
|
}
|
|
116
120
|
export function getItemsState({ config, itemsStateAndParams, }) {
|
|
117
|
-
|
|
121
|
+
const configItems = getAllConfigItems(config);
|
|
122
|
+
return configItems.reduce((acc, { id }) => {
|
|
118
123
|
var _a;
|
|
119
124
|
acc[id] = ((_a = itemsStateAndParams === null || itemsStateAndParams === void 0 ? void 0 : itemsStateAndParams[id]) === null || _a === void 0 ? void 0 : _a.state) || {};
|
|
120
125
|
return acc;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state-and-params.js","sourceRoot":"../../../../src","sources":["shared/modules/state-and-params.ts"],"names":[],"mappings":"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","sourcesContent":["import groupBy from 'lodash/groupBy';\n\nimport {META_KEY} from '../constants';\nimport {\n Config,\n ConfigItem,\n ConfigItemDataWithTabs,\n ConfigItemGroup,\n GlobalParams,\n ItemState,\n ItemStateAndParams,\n ItemsStateAndParams,\n ItemsStateAndParamsBase,\n PluginBase,\n StateAndParamsMetaData,\n StringParams,\n} from '../types';\n\nimport {\n FormedQueueData,\n formQueueData,\n getCurrentVersion,\n getMapItemsIgnores,\n hasActionParam,\n isItemWithGroup,\n isItemWithTabs,\n mergeParamsWithAliases,\n pickActionParamsFromParams,\n pickExceptActionParamsFromParams,\n prerenderItems,\n resolveItemInnerId,\n} from './helpers';\n\nexport interface GetItemsParamsArg {\n defaultGlobalParams: GlobalParams;\n globalParams: GlobalParams;\n config: Config;\n itemsStateAndParams: ItemsStateAndParams;\n plugins: PluginBase[];\n useStateAsInitial?: boolean;\n}\n\ntype GetItemsParamsReturn = Record<string, StringParams | Record<string, StringParams>>;\n\nconst getParamsFromStateAndParams = ({\n itemsStateAndParams,\n parentItemId,\n item,\n}: {\n item: ConfigItem | ConfigItemGroup;\n itemsStateAndParams: ItemsStateAndParams;\n parentItemId?: string;\n}) => {\n const widgetId = parentItemId || item.id;\n\n if (!(widgetId in itemsStateAndParams)) {\n return {};\n }\n\n const stateAndParams = itemsStateAndParams as ItemsStateAndParamsBase;\n const itemParams = parentItemId\n ? Object.assign(\n {},\n (stateAndParams[widgetId].params as Record<string, StringParams>)[item.id],\n )\n : Object.assign({}, stateAndParams[widgetId].params as StringParams);\n\n return itemParams;\n};\n\nfunction getItemParams({\n item,\n itemsStateAndParams,\n mapItemsIgnores,\n itemsWithDefaultsByNamespace,\n getMergedParams,\n defaultGlobalParams,\n globalParams,\n isFirstVersion,\n queueData,\n parentItemId,\n useStateAsInitial,\n}: {\n item: ConfigItem | ConfigItemGroup;\n itemsStateAndParams: ItemsStateAndParams;\n mapItemsIgnores: Record<string, string[]>;\n itemsWithDefaultsByNamespace: Record<string, (ConfigItem | ConfigItemGroup)[]>;\n getMergedParams: (params: StringParams, actionParams?: StringParams) => StringParams;\n defaultGlobalParams: StringParams;\n globalParams: GlobalParams;\n isFirstVersion: boolean;\n queueData: FormedQueueData[];\n parentItemId?: string;\n useStateAsInitial?: boolean;\n}) {\n const {id, namespace} = item;\n\n let defaultWidgetParams: StringParams | Record<string, StringParams> = {};\n if (isItemWithTabs(item)) {\n const currentWidgetTabId = resolveItemInnerId({item, itemsStateAndParams});\n const itemTabs: ConfigItemDataWithTabs['tabs'] = item.data.tabs;\n defaultWidgetParams =\n itemTabs.find((tabItem) => tabItem?.id === currentWidgetTabId)?.params || {};\n } else {\n defaultWidgetParams = item.defaults || {};\n }\n\n const itemIgnores = mapItemsIgnores[id];\n\n const affectingItemsWithDefaults = itemsWithDefaultsByNamespace[namespace].filter(\n (itemWithDefaults) => !itemIgnores.includes(itemWithDefaults.id),\n );\n\n let itemParams: StringParams = Object.assign(\n {},\n getMergedParams(defaultGlobalParams),\n // default parameters to begin with\n affectingItemsWithDefaults.reduceRight((defaultParams: StringParams, itemWithDefaults) => {\n return {\n ...defaultParams,\n ...getMergedParams(itemWithDefaults.defaults || {}),\n };\n }, {}),\n getMergedParams(globalParams),\n useStateAsInitial\n ? getParamsFromStateAndParams({parentItemId, item, itemsStateAndParams})\n : {},\n );\n\n if (isFirstVersion) {\n itemParams = Object.assign(\n itemParams,\n (itemsStateAndParams as ItemsStateAndParamsBase)?.[id]?.params || {},\n );\n } else {\n // params according to queue of its applying\n let queueDataItemsParams: StringParams = {};\n for (const data of queueData) {\n if (data.namespace !== namespace || itemIgnores.includes(data.id)) {\n continue;\n }\n\n let actionParams;\n let params = data.params;\n const needAliasesForActionParams = data.id !== id && hasActionParam(data.params);\n if (needAliasesForActionParams) {\n actionParams = pickActionParamsFromParams(data.params);\n params = pickExceptActionParamsFromParams(data.params);\n }\n\n const mergedParams = getMergedParams(params, actionParams);\n\n queueDataItemsParams = {\n ...queueDataItemsParams,\n ...mergedParams,\n };\n }\n\n itemParams = Object.assign(itemParams, queueDataItemsParams);\n }\n\n return {...defaultWidgetParams, ...itemParams};\n}\n\nexport function getItemsParams({\n defaultGlobalParams = {},\n globalParams = {},\n config,\n itemsStateAndParams,\n plugins,\n useStateAsInitial,\n}: GetItemsParamsArg): GetItemsParamsReturn {\n const {aliases, connections} = config;\n const items = prerenderItems({items: config.items, plugins});\n const isFirstVersion = getCurrentVersion(itemsStateAndParams) === 1;\n\n const allItems = items.reduce((paramsItems: (ConfigItem | ConfigItemGroup)[], item) => {\n if (isItemWithGroup(item)) {\n item.data.group.forEach((groupItem) => {\n paramsItems.push(groupItem);\n });\n\n return paramsItems;\n }\n\n paramsItems.push(item);\n return paramsItems;\n }, []);\n\n const queueData: FormedQueueData[] = isFirstVersion\n ? []\n : formQueueData({items, itemsStateAndParams});\n\n // to consider other kind types in future (not only ignore)\n const mapItemsIgnores = getMapItemsIgnores({\n items: allItems,\n ignores: connections.filter(({kind}) => kind === 'ignore'),\n itemsStateAndParams,\n isFirstVersion,\n });\n const groupByNamespace = groupBy(allItems, 'namespace');\n const itemsWithDefaultsByNamespace = Object.keys(groupByNamespace).reduce(\n (acc, namespace) => {\n return {\n ...acc,\n // there are defaults only in selectors by now, need to get them from item.data.tabs[].defaults for widgets\n // but make a decision about there's order first\n [namespace]: groupByNamespace[namespace].filter((item) => item.defaults),\n };\n },\n {} as Record<string, (ConfigItem | ConfigItemGroup)[]>,\n );\n\n return items.reduce((itemsParams: GetItemsParamsReturn, item: ConfigItem) => {\n const {id, namespace} = item;\n\n const getMergedParams = (params: StringParams, actionParams?: StringParams) =>\n mergeParamsWithAliases({aliases, namespace, params: params || {}, actionParams});\n\n const paramsOptions = {\n itemsStateAndParams,\n mapItemsIgnores,\n itemsWithDefaultsByNamespace,\n getMergedParams,\n defaultGlobalParams,\n globalParams,\n isFirstVersion,\n queueData,\n useStateAsInitial,\n };\n\n if (isItemWithGroup(item)) {\n const groupParams = item.data.group.reduce(\n (groupItemParams: Record<string, StringParams>, groupItem) => {\n groupItemParams[groupItem.id] = getItemParams({\n item: groupItem,\n parentItemId: item.id,\n ...paramsOptions,\n });\n return groupItemParams;\n },\n {},\n );\n\n return {...itemsParams, [id]: groupParams};\n }\n\n return {\n ...itemsParams,\n [id]: getItemParams({\n item,\n ...paramsOptions,\n }),\n };\n }, {});\n}\n\nexport function getItemsState({\n config,\n itemsStateAndParams,\n}: {\n config: Config;\n itemsStateAndParams: ItemsStateAndParams;\n}) {\n return config.items.reduce((acc: Record<string, ItemState>, {id}) => {\n acc[id] = (itemsStateAndParams as ItemsStateAndParamsBase)?.[id]?.state || {};\n return acc;\n }, {});\n}\n\nexport function getItemsStateAndParams({\n defaultGlobalParams = {},\n globalParams = {},\n config,\n itemsStateAndParams,\n plugins,\n}: GetItemsParamsArg): ItemsStateAndParams {\n const params = getItemsParams({\n defaultGlobalParams,\n globalParams,\n config,\n itemsStateAndParams,\n plugins,\n });\n const state = getItemsState({config, itemsStateAndParams});\n const uniqIds = new Set([...Object.keys(params), ...Object.keys(state)]);\n\n const result: ItemsStateAndParams = Array.from(uniqIds).reduce(\n (acc: ItemsStateAndParams, id) => {\n const data = {} as ItemStateAndParams;\n if (id in params) {\n data.params = params[id];\n }\n if (id in state) {\n data.state = state[id];\n }\n return {\n ...acc,\n [id]: data,\n };\n },\n {},\n );\n const version = getCurrentVersion(itemsStateAndParams);\n if (version === 1) {\n return result;\n }\n const meta = {\n [META_KEY]: itemsStateAndParams[META_KEY] as StateAndParamsMetaData,\n };\n return {\n ...meta,\n ...result,\n };\n}\n"]}
|
|
1
|
+
{"version":3,"file":"state-and-params.js","sourceRoot":"../../../../src","sources":["shared/modules/state-and-params.ts"],"names":[],"mappings":"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","sourcesContent":["import groupBy from 'lodash/groupBy';\n\nimport {META_KEY} from '../constants';\nimport {\n Config,\n ConfigItem,\n ConfigItemDataWithTabs,\n ConfigItemGroup,\n GlobalParams,\n ItemState,\n ItemStateAndParams,\n ItemsStateAndParams,\n ItemsStateAndParamsBase,\n PluginBase,\n StateAndParamsMetaData,\n StringParams,\n} from '../types';\n\nimport {\n FormedQueueData,\n formQueueData,\n getAllConfigItems,\n getCurrentVersion,\n getMapItemsIgnores,\n hasActionParam,\n isItemWithGroup,\n isItemWithTabs,\n mergeParamsWithAliases,\n pickActionParamsFromParams,\n pickExceptActionParamsFromParams,\n prerenderItems,\n resolveItemInnerId,\n} from './helpers';\n\nexport interface GetItemsParamsArg {\n defaultGlobalParams: GlobalParams;\n globalParams: GlobalParams;\n config: Config;\n itemsStateAndParams: ItemsStateAndParams;\n plugins: PluginBase[];\n useStateAsInitial?: boolean;\n}\n\ntype GetItemsParamsReturn = Record<string, StringParams | Record<string, StringParams>>;\n\nconst getParamsFromStateAndParams = ({\n itemsStateAndParams,\n parentItemId,\n item,\n}: {\n item: ConfigItem | ConfigItemGroup;\n itemsStateAndParams: ItemsStateAndParams;\n parentItemId?: string;\n}) => {\n const widgetId = parentItemId || item.id;\n\n if (!(widgetId in itemsStateAndParams)) {\n return {};\n }\n\n const stateAndParams = itemsStateAndParams as ItemsStateAndParamsBase;\n const itemParams = parentItemId\n ? Object.assign(\n {},\n (stateAndParams[widgetId].params as Record<string, StringParams>)[item.id],\n )\n : Object.assign({}, stateAndParams[widgetId].params as StringParams);\n\n return itemParams;\n};\n\nfunction getItemParams({\n item,\n itemsStateAndParams,\n mapItemsIgnores,\n itemsWithDefaultsByNamespace,\n getMergedParams,\n defaultGlobalParams,\n globalParams,\n isFirstVersion,\n queueData,\n parentItemId,\n useStateAsInitial,\n}: {\n item: ConfigItem | ConfigItemGroup;\n itemsStateAndParams: ItemsStateAndParams;\n mapItemsIgnores: Record<string, string[]>;\n itemsWithDefaultsByNamespace: Record<string, (ConfigItem | ConfigItemGroup)[]>;\n getMergedParams: (params: StringParams, actionParams?: StringParams) => StringParams;\n defaultGlobalParams: StringParams;\n globalParams: GlobalParams;\n isFirstVersion: boolean;\n queueData: FormedQueueData[];\n parentItemId?: string;\n useStateAsInitial?: boolean;\n}) {\n const {id, namespace} = item;\n\n let defaultWidgetParams: StringParams | Record<string, StringParams> = {};\n if (isItemWithTabs(item)) {\n const currentWidgetTabId = resolveItemInnerId({item, itemsStateAndParams});\n const itemTabs: ConfigItemDataWithTabs['tabs'] = item.data.tabs;\n defaultWidgetParams =\n itemTabs.find((tabItem) => tabItem?.id === currentWidgetTabId)?.params || {};\n } else {\n defaultWidgetParams = item.defaults || {};\n }\n\n const itemIgnores = mapItemsIgnores[id];\n\n const affectingItemsWithDefaults = itemsWithDefaultsByNamespace[namespace].filter(\n (itemWithDefaults) => !itemIgnores.includes(itemWithDefaults.id),\n );\n\n let itemParams: StringParams = Object.assign(\n {},\n getMergedParams(defaultGlobalParams),\n // default parameters to begin with\n affectingItemsWithDefaults.reduceRight((defaultParams: StringParams, itemWithDefaults) => {\n return {\n ...defaultParams,\n ...getMergedParams(itemWithDefaults.defaults || {}),\n };\n }, {}),\n getMergedParams(globalParams),\n useStateAsInitial\n ? getParamsFromStateAndParams({parentItemId, item, itemsStateAndParams})\n : {},\n );\n\n if (isFirstVersion) {\n itemParams = Object.assign(\n itemParams,\n (itemsStateAndParams as ItemsStateAndParamsBase)?.[id]?.params || {},\n );\n } else {\n // params according to queue of its applying\n let queueDataItemsParams: StringParams = {};\n for (const data of queueData) {\n if (data.namespace !== namespace || itemIgnores.includes(data.id)) {\n continue;\n }\n\n let actionParams;\n let params = data.params;\n const needAliasesForActionParams = data.id !== id && hasActionParam(data.params);\n if (needAliasesForActionParams) {\n actionParams = pickActionParamsFromParams(data.params);\n params = pickExceptActionParamsFromParams(data.params);\n }\n\n const mergedParams = getMergedParams(params, actionParams);\n\n queueDataItemsParams = {\n ...queueDataItemsParams,\n ...mergedParams,\n };\n }\n\n itemParams = Object.assign(itemParams, queueDataItemsParams);\n }\n\n return {...defaultWidgetParams, ...itemParams};\n}\n\nexport function getItemsParams({\n defaultGlobalParams = {},\n globalParams = {},\n config,\n itemsStateAndParams,\n plugins,\n useStateAsInitial,\n}: GetItemsParamsArg): GetItemsParamsReturn {\n const configItems = getAllConfigItems(config);\n const {aliases, connections} = config;\n const items = prerenderItems({\n items: configItems,\n plugins,\n });\n const isFirstVersion = getCurrentVersion(itemsStateAndParams) === 1;\n\n const allItems = items.reduce((paramsItems: (ConfigItem | ConfigItemGroup)[], item) => {\n if (isItemWithGroup(item)) {\n item.data.group.forEach((groupItem) => {\n paramsItems.push(groupItem);\n });\n\n return paramsItems;\n }\n\n paramsItems.push(item);\n return paramsItems;\n }, []);\n\n const queueData: FormedQueueData[] = isFirstVersion\n ? []\n : formQueueData({items, itemsStateAndParams});\n\n // to consider other kind types in future (not only ignore)\n const mapItemsIgnores = getMapItemsIgnores({\n items: allItems,\n ignores: connections.filter(({kind}) => kind === 'ignore'),\n itemsStateAndParams,\n isFirstVersion,\n });\n const groupByNamespace = groupBy(allItems, 'namespace');\n const itemsWithDefaultsByNamespace = Object.keys(groupByNamespace).reduce(\n (acc, namespace) => {\n return {\n ...acc,\n // there are defaults only in selectors by now, need to get them from item.data.tabs[].defaults for widgets\n // but make a decision about there's order first\n [namespace]: groupByNamespace[namespace].filter((item) => item.defaults),\n };\n },\n {} as Record<string, (ConfigItem | ConfigItemGroup)[]>,\n );\n\n return items.reduce((itemsParams: GetItemsParamsReturn, item: ConfigItem) => {\n const {id, namespace} = item;\n\n const getMergedParams = (params: StringParams, actionParams?: StringParams) =>\n mergeParamsWithAliases({aliases, namespace, params: params || {}, actionParams});\n\n const paramsOptions = {\n itemsStateAndParams,\n mapItemsIgnores,\n itemsWithDefaultsByNamespace,\n getMergedParams,\n defaultGlobalParams,\n globalParams,\n isFirstVersion,\n queueData,\n useStateAsInitial,\n };\n\n if (isItemWithGroup(item)) {\n const groupParams = item.data.group.reduce(\n (groupItemParams: Record<string, StringParams>, groupItem) => {\n groupItemParams[groupItem.id] = getItemParams({\n item: groupItem,\n parentItemId: item.id,\n ...paramsOptions,\n });\n return groupItemParams;\n },\n {},\n );\n\n return {...itemsParams, [id]: groupParams};\n }\n\n return {\n ...itemsParams,\n [id]: getItemParams({\n item,\n ...paramsOptions,\n }),\n };\n }, {});\n}\n\nexport function getItemsState({\n config,\n itemsStateAndParams,\n}: {\n config: Config;\n itemsStateAndParams: ItemsStateAndParams;\n}) {\n const configItems = getAllConfigItems(config);\n return configItems.reduce((acc: Record<string, ItemState>, {id}) => {\n acc[id] = (itemsStateAndParams as ItemsStateAndParamsBase)?.[id]?.state || {};\n return acc;\n }, {});\n}\n\nexport function getItemsStateAndParams({\n defaultGlobalParams = {},\n globalParams = {},\n config,\n itemsStateAndParams,\n plugins,\n}: GetItemsParamsArg): ItemsStateAndParams {\n const params = getItemsParams({\n defaultGlobalParams,\n globalParams,\n config,\n itemsStateAndParams,\n plugins,\n });\n const state = getItemsState({config, itemsStateAndParams});\n const uniqIds = new Set([...Object.keys(params), ...Object.keys(state)]);\n\n const result: ItemsStateAndParams = Array.from(uniqIds).reduce(\n (acc: ItemsStateAndParams, id) => {\n const data = {} as ItemStateAndParams;\n if (id in params) {\n data.params = params[id];\n }\n if (id in state) {\n data.state = state[id];\n }\n return {\n ...acc,\n [id]: data,\n };\n },\n {},\n );\n const version = getCurrentVersion(itemsStateAndParams);\n if (version === 1) {\n return result;\n }\n const meta = {\n [META_KEY]: itemsStateAndParams[META_KEY] as StateAndParamsMetaData,\n };\n return {\n ...meta,\n ...result,\n };\n}\n"]}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import Hashids from 'hashids';
|
|
2
|
-
import { isItemWithGroup, isItemWithTabs } from "./helpers.js";
|
|
2
|
+
import { getAllConfigItems, isItemWithGroup, isItemWithTabs } from "./helpers.js";
|
|
3
3
|
export function extractIdsFromConfig(config) {
|
|
4
4
|
const ids = [];
|
|
5
|
-
const items = config
|
|
5
|
+
const items = getAllConfigItems(config);
|
|
6
6
|
const connections = config.connections || [];
|
|
7
7
|
const layout = config.layout || [];
|
|
8
8
|
items.forEach((item) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uniq-id.js","sourceRoot":"../../../../src","sources":["shared/modules/uniq-id.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAI9B,OAAO,EAAC,eAAe,EAAE,cAAc,EAAC,qBAAkB;
|
|
1
|
+
{"version":3,"file":"uniq-id.js","sourceRoot":"../../../../src","sources":["shared/modules/uniq-id.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAI9B,OAAO,EAAC,iBAAiB,EAAE,eAAe,EAAE,cAAc,EAAC,qBAAkB;AAE7E,MAAM,UAAU,oBAAoB,CAAC,MAAc;IAC/C,MAAM,GAAG,GAAa,EAAE,CAAC;IAEzB,MAAM,KAAK,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACxC,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC;IAC7C,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC;IAEnC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QACnB,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAClB,IAAI,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;YACvB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9D,CAAC;QACD,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;QACnE,CAAC;IACL,CAAC,CAAC,CAAC;IACH,WAAW,CAAC,OAAO,CAAC,CAAC,EAAC,IAAI,EAAE,EAAE,EAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;IACxD,MAAM,CAAC,OAAO,CAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAErC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACpC,CAAC;AAQD,MAAM,UAAU,cAAc,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAqB;IACnE,IAAI,UAAU,GAAG,OAAO,CAAC;IACzB,IAAI,MAAM,GAAkB,IAAI,CAAC;IAEjC,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;IAC5B,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAElC,OAAO,MAAM,KAAK,IAAI,EAAE,CAAC;QACrB,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC,CAAC;QACxC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YAClB,MAAM,GAAG,EAAE,CAAC;QAChB,CAAC;IACL,CAAC;IAED,OAAO,EAAC,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAC,CAAC;AAC7C,CAAC","sourcesContent":["import Hashids from 'hashids';\n\nimport type {Config} from '../types';\n\nimport {getAllConfigItems, isItemWithGroup, isItemWithTabs} from './helpers';\n\nexport function extractIdsFromConfig(config: Config): string[] {\n const ids: string[] = [];\n\n const items = getAllConfigItems(config);\n const connections = config.connections || [];\n const layout = config.layout || [];\n\n items.forEach((item) => {\n ids.push(item.id);\n if (isItemWithTabs(item)) {\n item.data.tabs.forEach((tabItem) => ids.push(tabItem.id));\n }\n if (isItemWithGroup(item)) {\n item.data.group.forEach((groupItem) => ids.push(groupItem.id));\n }\n });\n connections.forEach(({from, to}) => ids.push(from, to));\n layout.forEach(({i}) => ids.push(i));\n\n return Array.from(new Set(ids));\n}\n\ntype GenerateUniqIdArgs = {\n salt: Config['salt'];\n counter: Config['counter'];\n ids: string[];\n};\n\nexport function generateUniqId({salt, counter, ids}: GenerateUniqIdArgs) {\n let newCounter = counter;\n let uniqId: string | null = null;\n\n const idsSet = new Set(ids);\n const hashids = new Hashids(salt);\n\n while (uniqId === null) {\n const id = hashids.encode(++newCounter);\n if (!idsSet.has(id)) {\n uniqId = id;\n }\n }\n\n return {counter: newCounter, id: uniqId};\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"../../../../src","sources":["shared/types/config.ts"],"names":[],"mappings":"","sourcesContent":["import {StringParams} from './common';\n\nexport interface AdditionalWidgetLayout {\n parent?: string;\n}\n\nexport interface ConfigLayout extends AdditionalWidgetLayout {\n i: string;\n h: number;\n w: number;\n x: number;\n y: number;\n}\n\nexport type ConfigItemGroup = {\n id: string;\n defaults?: StringParams;\n namespace: string;\n [key: string]: unknown;\n};\n\nexport interface ConfigItemData {\n _editActive?: boolean;\n tabs?: {\n id: string;\n isDefault?: boolean;\n params?: StringParams;\n [key: string]: unknown;\n }[];\n group?: ConfigItemGroup[];\n [key: string]: unknown;\n}\n\nexport interface ConfigItemDataWithTabs extends Omit<ConfigItemData, 'tabs'> {\n tabs: NonNullable<ConfigItemData['tabs']>;\n}\n\nexport interface ConfigItemDataWithGroup extends Omit<ConfigItemData, 'group'> {\n group: NonNullable<ConfigItemData['group']>;\n}\n\nexport interface ConfigItem {\n id: string;\n data: ConfigItemData;\n type: string;\n namespace: string;\n defaults?: StringParams;\n orderId?: number;\n defaultOrderId?: number;\n}\n\nexport interface ConfigItemWithTabs extends Omit<ConfigItem, 'data'> {\n data: ConfigItemDataWithTabs;\n}\n\nexport interface ConfigItemWithGroup extends Omit<ConfigItem, 'data'> {\n data: ConfigItemDataWithGroup;\n}\n\nexport interface ConfigAliases {\n [namespace: string]: string[][]; // в массивах имена параметров\n}\n\nexport interface ConfigConnection {\n from: string;\n to: string;\n kind: 'ignore'; // пока один kind\n}\n\nexport interface Config {\n salt: string;\n counter: number;\n items: ConfigItem[];\n layout: ConfigLayout[];\n aliases: ConfigAliases;\n connections: ConfigConnection[];\n}\n"]}
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"../../../../src","sources":["shared/types/config.ts"],"names":[],"mappings":"","sourcesContent":["import {StringParams} from './common';\n\nexport interface AdditionalWidgetLayout {\n parent?: string;\n}\n\nexport interface ConfigLayout extends AdditionalWidgetLayout {\n i: string;\n h: number;\n w: number;\n x: number;\n y: number;\n}\n\nexport type ConfigItemGroup = {\n id: string;\n defaults?: StringParams;\n namespace: string;\n [key: string]: unknown;\n};\n\nexport interface ConfigItemData {\n _editActive?: boolean;\n tabs?: {\n id: string;\n isDefault?: boolean;\n params?: StringParams;\n [key: string]: unknown;\n }[];\n group?: ConfigItemGroup[];\n [key: string]: unknown;\n}\n\nexport interface ConfigItemDataWithTabs extends Omit<ConfigItemData, 'tabs'> {\n tabs: NonNullable<ConfigItemData['tabs']>;\n}\n\nexport interface ConfigItemDataWithGroup extends Omit<ConfigItemData, 'group'> {\n group: NonNullable<ConfigItemData['group']>;\n}\n\nexport interface ConfigItem {\n id: string;\n data: ConfigItemData;\n type: string;\n namespace: string;\n defaults?: StringParams;\n orderId?: number;\n defaultOrderId?: number;\n}\n\nexport interface ConfigItemWithTabs extends Omit<ConfigItem, 'data'> {\n data: ConfigItemDataWithTabs;\n}\n\nexport interface ConfigItemWithGroup extends Omit<ConfigItem, 'data'> {\n data: ConfigItemDataWithGroup;\n}\n\nexport interface ConfigAliases {\n [namespace: string]: string[][]; // в массивах имена параметров\n}\n\nexport interface ConfigConnection {\n from: string;\n to: string;\n kind: 'ignore'; // пока один kind\n}\n\nexport interface Config {\n salt: string;\n counter: number;\n items: ConfigItem[];\n globalItems?: ConfigItem[];\n layout: ConfigLayout[];\n aliases: ConfigAliases;\n connections: ConfigConnection[];\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Layout
|
|
1
|
+
import type { Layout } from 'react-grid-layout';
|
|
2
2
|
import type { Config, ConfigItem, ConfigLayout } from "../shared/index.js";
|
|
3
3
|
import { GridLayoutSettings } from "./common.js";
|
|
4
4
|
export interface AddConfigItem extends Omit<ConfigItem, 'id' | 'namespace'> {
|
|
@@ -9,6 +9,7 @@ export interface AddConfigItem extends Omit<ConfigItem, 'id' | 'namespace'> {
|
|
|
9
9
|
export type SetConfigItem = ConfigItem | AddConfigItem;
|
|
10
10
|
export type SetItemOptions = {
|
|
11
11
|
excludeIds?: string[];
|
|
12
|
+
useGlobalItems?: boolean;
|
|
12
13
|
};
|
|
13
14
|
export type GridReflowOptions = {
|
|
14
15
|
cols: number;
|
|
@@ -41,7 +42,7 @@ export interface DashKitGroup {
|
|
|
41
42
|
gridProperties?: (props: ReactGridLayoutProps) => ReactGridLayoutProps;
|
|
42
43
|
}
|
|
43
44
|
export type ItemManipulationCallback = (eventData: {
|
|
44
|
-
layout:
|
|
45
|
+
layout: Layout[];
|
|
45
46
|
oldItem: Layout;
|
|
46
47
|
newItem: Layout;
|
|
47
48
|
placeholder: Layout;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"../../../src","sources":["typings/config.ts"],"names":[],"mappings":"","sourcesContent":["import type {Layout
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"../../../src","sources":["typings/config.ts"],"names":[],"mappings":"","sourcesContent":["import type {Layout} from 'react-grid-layout';\n\nimport type {Config, ConfigItem, ConfigLayout} from '../shared';\n\nimport {GridLayoutSettings} from './common';\n\nexport interface AddConfigItem extends Omit<ConfigItem, 'id' | 'namespace'> {\n id?: null;\n namespace?: string;\n layout?: Omit<ConfigLayout, 'i'>;\n}\nexport type SetConfigItem = ConfigItem | AddConfigItem;\n\nexport type SetItemOptions = {\n excludeIds?: string[];\n useGlobalItems?: boolean;\n};\n\nexport type GridReflowOptions = {\n cols: number;\n maxRows?: number;\n compactType?: CompactType;\n};\n\nexport type CompactType = ReactGridLayout.ReactGridLayoutProps['compactType'] | 'horizontal-nowrap';\n\nexport type ReflowLayoutOptions = {\n defaultProps: GridReflowOptions;\n groups?: Record<string, GridReflowOptions>;\n};\n\nexport type AddNewItemOptions = SetItemOptions & {\n updateLayout?: ConfigLayout[];\n reflowLayoutOptions?: ReflowLayoutOptions;\n};\n\nexport interface DashkitGroupRenderProps {\n config: Config;\n editMode: boolean;\n isMobile: boolean;\n items: ConfigItem[];\n layout: ConfigLayout[];\n context: any;\n}\n\nexport type ReactGridLayoutProps = Omit<\n GridLayoutSettings,\n | 'children'\n | 'compactType'\n | 'innerRef'\n | 'key'\n | 'layout'\n | 'onDragStart'\n | 'onDragStop'\n | 'onResizeStart'\n | 'onResizeStop'\n | 'draggableHandle'\n | 'isDroppable'\n | 'onDropDragOver'\n | 'onDrop'\n | 'draggableCancel'\n> & {\n compactType?: CompactType;\n};\n\nexport interface DashKitGroup {\n id?: string;\n render?: (\n id: string,\n children: React.ReactNode,\n props: DashkitGroupRenderProps,\n ) => React.ReactNode;\n gridProperties?: (props: ReactGridLayoutProps) => ReactGridLayoutProps;\n}\n\nexport type ItemManipulationCallback = (eventData: {\n layout: Layout[];\n oldItem: Layout;\n newItem: Layout;\n placeholder: Layout;\n e: MouseEvent;\n element: HTMLElement;\n}) => void;\n"]}
|
|
@@ -25,6 +25,7 @@ export interface PluginWidgetProps<T = StringParams> {
|
|
|
25
25
|
}) => void;
|
|
26
26
|
}
|
|
27
27
|
export type PluginDefaultLayout = Partial<Omit<WidgetLayout, 'i'>>;
|
|
28
|
+
export type PluginRef = React.RefObject<any> | Record<string, unknown>;
|
|
28
29
|
export interface Plugin<P extends PluginWidgetProps<T> = any, T = StringParams> extends PluginBase {
|
|
29
30
|
defaultLayout?: PluginDefaultLayout;
|
|
30
31
|
renderer: (props: P, forwardedRef: React.RefObject<any>) => React.ReactNode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.js","sourceRoot":"../../../src","sources":["typings/plugin.ts"],"names":[],"mappings":"","sourcesContent":["import React from 'react';\n\nimport ReactGridLayout from 'react-grid-layout';\n\nimport type {\n ConfigItem,\n ItemState,\n ItemStateAndParams,\n ItemStateAndParamsChangeOptions,\n PluginBase,\n StringParams,\n} from '../shared';\n\nimport type {ContextProps, SettingsProps, WidgetLayout} from './common';\n\nexport interface PluginWidgetProps<T = StringParams> {\n id: string;\n editMode: boolean;\n params: T;\n state: ItemState;\n onStateAndParamsChange: (\n stateAndParams: ItemStateAndParams,\n options?: ItemStateAndParamsChangeOptions,\n ) => void;\n onBeforeLoad: () => () => void;\n width: number;\n height: number;\n data: ConfigItem['data'];\n defaults: ConfigItem['defaults'];\n namespace: ConfigItem['namespace'];\n settings: SettingsProps;\n context: ContextProps;\n layout: WidgetLayout[];\n gridLayout: ReactGridLayout.ReactGridLayoutProps;\n adjustWidgetLayout: (data: {\n widgetId: string;\n needSetDefault?: boolean;\n adjustedWidgetLayout?: WidgetLayout;\n }) => void;\n}\n\nexport type PluginDefaultLayout = Partial<Omit<WidgetLayout, 'i'>>;\n\nexport interface Plugin<P extends PluginWidgetProps<T> = any, T = StringParams> extends PluginBase {\n defaultLayout?: PluginDefaultLayout;\n renderer: (props: P, forwardedRef: React.RefObject<any>) => React.ReactNode;\n placeholderRenderer?: (props: P, forwardedRef: React.RefObject<any>) => React.ReactNode;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"../../../src","sources":["typings/plugin.ts"],"names":[],"mappings":"","sourcesContent":["import React from 'react';\n\nimport ReactGridLayout from 'react-grid-layout';\n\nimport type {\n ConfigItem,\n ItemState,\n ItemStateAndParams,\n ItemStateAndParamsChangeOptions,\n PluginBase,\n StringParams,\n} from '../shared';\n\nimport type {ContextProps, SettingsProps, WidgetLayout} from './common';\n\nexport interface PluginWidgetProps<T = StringParams> {\n id: string;\n editMode: boolean;\n params: T;\n state: ItemState;\n onStateAndParamsChange: (\n stateAndParams: ItemStateAndParams,\n options?: ItemStateAndParamsChangeOptions,\n ) => void;\n onBeforeLoad: () => () => void;\n width: number;\n height: number;\n data: ConfigItem['data'];\n defaults: ConfigItem['defaults'];\n namespace: ConfigItem['namespace'];\n settings: SettingsProps;\n context: ContextProps;\n layout: WidgetLayout[];\n gridLayout: ReactGridLayout.ReactGridLayoutProps;\n adjustWidgetLayout: (data: {\n widgetId: string;\n needSetDefault?: boolean;\n adjustedWidgetLayout?: WidgetLayout;\n }) => void;\n}\n\nexport type PluginDefaultLayout = Partial<Omit<WidgetLayout, 'i'>>;\n\nexport type PluginRef = React.RefObject<any> | Record<string, unknown>;\n\nexport interface Plugin<P extends PluginWidgetProps<T> = any, T = StringParams> extends PluginBase {\n defaultLayout?: PluginDefaultLayout;\n renderer: (props: P, forwardedRef: React.RefObject<any>) => React.ReactNode;\n placeholderRenderer?: (props: P, forwardedRef: React.RefObject<any>) => React.ReactNode;\n}\n"]}
|