@hitachivantara/uikit-react-lab 3.47.3 → 3.49.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/Controls/Controls.d.ts +57 -0
- package/dist/Controls/Controls.js +197 -0
- package/dist/Controls/Controls.js.map +1 -0
- package/dist/Controls/LeftControl/LeftControl.d.ts +32 -0
- package/dist/Controls/LeftControl/LeftControl.js +130 -0
- package/dist/Controls/LeftControl/LeftControl.js.map +1 -0
- package/dist/Controls/LeftControl/index.d.ts +2 -0
- package/dist/Controls/LeftControl/index.js +16 -0
- package/dist/Controls/LeftControl/index.js.map +1 -0
- package/dist/Controls/LeftControl/styles.js +19 -0
- package/dist/Controls/LeftControl/styles.js.map +1 -0
- package/dist/Controls/RightControl/RightControl.d.ts +43 -0
- package/dist/Controls/RightControl/RightControl.js +167 -0
- package/dist/Controls/RightControl/RightControl.js.map +1 -0
- package/dist/Controls/RightControl/index.d.ts +2 -0
- package/dist/Controls/RightControl/index.js +16 -0
- package/dist/Controls/RightControl/index.js.map +1 -0
- package/dist/Controls/RightControl/styles.js +22 -0
- package/dist/Controls/RightControl/styles.js.map +1 -0
- package/dist/Controls/context/ControlsContext.js +21 -0
- package/dist/Controls/context/ControlsContext.js.map +1 -0
- package/dist/Controls/index.d.ts +3 -0
- package/dist/Controls/index.js +32 -0
- package/dist/Controls/index.js.map +1 -0
- package/dist/Controls/styles.js +30 -0
- package/dist/Controls/styles.js.map +1 -0
- package/dist/QueryBuilder/Rule/Rule.js +0 -2
- package/dist/QueryBuilder/Rule/Rule.js.map +1 -1
- package/dist/QueryBuilder/RuleGroup/RuleGroup.js +6 -2
- package/dist/QueryBuilder/RuleGroup/RuleGroup.js.map +1 -1
- package/dist/QueryBuilder/{types.ts → types.d.ts} +1 -1
- package/dist/Table/TableBody/TableBody.js +1 -3
- package/dist/Table/TableBody/TableBody.js.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.js +21 -0
- package/dist/index.js.map +1 -1
- package/dist/legacy/Controls/Controls.d.ts +57 -0
- package/dist/legacy/Controls/Controls.js +174 -0
- package/dist/legacy/Controls/Controls.js.map +1 -0
- package/dist/legacy/Controls/LeftControl/LeftControl.d.ts +32 -0
- package/dist/legacy/Controls/LeftControl/LeftControl.js +91 -0
- package/dist/legacy/Controls/LeftControl/LeftControl.js.map +1 -0
- package/dist/legacy/Controls/LeftControl/index.d.ts +2 -0
- package/dist/legacy/Controls/LeftControl/index.js +2 -0
- package/dist/legacy/Controls/LeftControl/index.js.map +1 -0
- package/dist/legacy/Controls/LeftControl/styles.js +11 -0
- package/dist/legacy/Controls/LeftControl/styles.js.map +1 -0
- package/dist/legacy/Controls/RightControl/RightControl.d.ts +43 -0
- package/dist/legacy/Controls/RightControl/RightControl.js +125 -0
- package/dist/legacy/Controls/RightControl/RightControl.js.map +1 -0
- package/dist/legacy/Controls/RightControl/index.d.ts +2 -0
- package/dist/legacy/Controls/RightControl/index.js +2 -0
- package/dist/legacy/Controls/RightControl/index.js.map +1 -0
- package/dist/legacy/Controls/RightControl/styles.js +14 -0
- package/dist/legacy/Controls/RightControl/styles.js.map +1 -0
- package/dist/legacy/Controls/context/ControlsContext.js +6 -0
- package/dist/legacy/Controls/context/ControlsContext.js.map +1 -0
- package/dist/legacy/Controls/index.d.ts +3 -0
- package/dist/legacy/Controls/index.js +4 -0
- package/dist/legacy/Controls/index.js.map +1 -0
- package/dist/legacy/Controls/styles.js +22 -0
- package/dist/legacy/Controls/styles.js.map +1 -0
- package/dist/legacy/QueryBuilder/Rule/Rule.js +0 -2
- package/dist/legacy/QueryBuilder/Rule/Rule.js.map +1 -1
- package/dist/legacy/QueryBuilder/RuleGroup/RuleGroup.js +6 -2
- package/dist/legacy/QueryBuilder/RuleGroup/RuleGroup.js.map +1 -1
- package/dist/legacy/QueryBuilder/{types.ts → types.d.ts} +1 -1
- package/dist/legacy/Table/TableBody/TableBody.js +2 -3
- package/dist/legacy/Table/TableBody/TableBody.js.map +1 -1
- package/dist/legacy/index.d.ts +3 -0
- package/dist/legacy/index.js +2 -0
- package/dist/legacy/index.js.map +1 -1
- package/dist/modern/Controls/Controls.d.ts +57 -0
- package/dist/modern/Controls/Controls.js +164 -0
- package/dist/modern/Controls/Controls.js.map +1 -0
- package/dist/modern/Controls/LeftControl/LeftControl.d.ts +32 -0
- package/dist/modern/Controls/LeftControl/LeftControl.js +90 -0
- package/dist/modern/Controls/LeftControl/LeftControl.js.map +1 -0
- package/dist/modern/Controls/LeftControl/index.d.ts +2 -0
- package/dist/modern/Controls/LeftControl/index.js +2 -0
- package/dist/modern/Controls/LeftControl/index.js.map +1 -0
- package/dist/modern/Controls/LeftControl/styles.js +9 -0
- package/dist/modern/Controls/LeftControl/styles.js.map +1 -0
- package/dist/modern/Controls/RightControl/RightControl.d.ts +43 -0
- package/dist/modern/Controls/RightControl/RightControl.js +109 -0
- package/dist/modern/Controls/RightControl/RightControl.js.map +1 -0
- package/dist/modern/Controls/RightControl/index.d.ts +2 -0
- package/dist/modern/Controls/RightControl/index.js +2 -0
- package/dist/modern/Controls/RightControl/index.js.map +1 -0
- package/dist/modern/Controls/RightControl/styles.js +12 -0
- package/dist/modern/Controls/RightControl/styles.js.map +1 -0
- package/dist/modern/Controls/context/ControlsContext.js +6 -0
- package/dist/modern/Controls/context/ControlsContext.js.map +1 -0
- package/dist/modern/Controls/index.d.ts +3 -0
- package/dist/modern/Controls/index.js +4 -0
- package/dist/modern/Controls/index.js.map +1 -0
- package/dist/modern/Controls/styles.js +20 -0
- package/dist/modern/Controls/styles.js.map +1 -0
- package/dist/modern/QueryBuilder/Rule/Rule.js +0 -2
- package/dist/modern/QueryBuilder/Rule/Rule.js.map +1 -1
- package/dist/modern/QueryBuilder/RuleGroup/RuleGroup.js +6 -2
- package/dist/modern/QueryBuilder/RuleGroup/RuleGroup.js.map +1 -1
- package/dist/modern/QueryBuilder/{types.ts → types.d.ts} +1 -1
- package/dist/modern/Table/TableBody/TableBody.js +2 -3
- package/dist/modern/Table/TableBody/TableBody.js.map +1 -1
- package/dist/modern/index.d.ts +3 -0
- package/dist/modern/index.js +2 -0
- package/dist/modern/index.js.map +1 -1
- package/package.json +22 -28
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["default","HvLeftControl","HvRightControl"],"sources":["../../../src/Controls/index.js"],"sourcesContent":["export { default } from \"./Controls\";\nexport { default as HvLeftControl } from \"./LeftControl\";\nexport { default as HvRightControl } from \"./RightControl\";\n"],"mappings":"AAAA,SAASA,OAAT,QAAwB,YAAxB;AACA,SAASA,OAAO,IAAIC,aAApB,QAAyC,eAAzC;AACA,SAASD,OAAO,IAAIE,cAApB,QAA0C,gBAA1C"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
var styles = function styles() {
|
|
2
|
+
return {
|
|
3
|
+
root: {
|
|
4
|
+
display: "inline-flex",
|
|
5
|
+
width: "100%",
|
|
6
|
+
justifyContent: "space-between"
|
|
7
|
+
},
|
|
8
|
+
section: {
|
|
9
|
+
display: "inline-flex",
|
|
10
|
+
alignItems: "flex-end",
|
|
11
|
+
gap: 10
|
|
12
|
+
},
|
|
13
|
+
leftSection: {},
|
|
14
|
+
rightSection: {},
|
|
15
|
+
sortInput: {
|
|
16
|
+
minWidth: 200
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
export default styles;
|
|
22
|
+
//# sourceMappingURL=styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"styles.js","names":["styles","root","display","width","justifyContent","section","alignItems","gap","leftSection","rightSection","sortInput","minWidth"],"sources":["../../../src/Controls/styles.js"],"sourcesContent":["const styles = () => ({\n root: {\n display: \"inline-flex\",\n width: \"100%\",\n justifyContent: \"space-between\",\n },\n section: {\n display: \"inline-flex\",\n alignItems: \"flex-end\",\n gap: 10,\n },\n leftSection: {},\n rightSection: {},\n sortInput: {\n minWidth: 200,\n },\n});\n\nexport default styles;\n"],"mappings":"AAAA,IAAMA,MAAM,GAAG,SAATA,MAAS;EAAA,OAAO;IACpBC,IAAI,EAAE;MACJC,OAAO,EAAE,aADL;MAEJC,KAAK,EAAE,MAFH;MAGJC,cAAc,EAAE;IAHZ,CADc;IAMpBC,OAAO,EAAE;MACPH,OAAO,EAAE,aADF;MAEPI,UAAU,EAAE,UAFL;MAGPC,GAAG,EAAE;IAHE,CANW;IAWpBC,WAAW,EAAE,EAXO;IAYpBC,YAAY,EAAE,EAZM;IAapBC,SAAS,EAAE;MACTC,QAAQ,EAAE;IADD;EAbS,CAAP;AAAA,CAAf;;AAkBA,eAAeX,MAAf"}
|
|
@@ -65,7 +65,6 @@ var Rule = function Rule(_ref) {
|
|
|
65
65
|
xs: 2,
|
|
66
66
|
lg: 3
|
|
67
67
|
}, /*#__PURE__*/React.createElement(Operator, {
|
|
68
|
-
key: id + combinator + attribute + operator,
|
|
69
68
|
id: id,
|
|
70
69
|
combinator: combinator,
|
|
71
70
|
attribute: attribute,
|
|
@@ -74,7 +73,6 @@ var Rule = function Rule(_ref) {
|
|
|
74
73
|
item: true,
|
|
75
74
|
xs: true
|
|
76
75
|
}, shouldShowValueInput && /*#__PURE__*/React.createElement(Value, {
|
|
77
|
-
key: id + combinator + attribute + operator,
|
|
78
76
|
attribute: attribute,
|
|
79
77
|
id: id,
|
|
80
78
|
operator: operator,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Rule.js","names":["React","useMemo","useContext","PropTypes","HvGrid","HvButton","withTooltip","Delete","Context","Attribute","Operator","Value","useStyles","Rule","id","combinator","attribute","operator","value","disabled","isInvalid","classes","context","askAction","attributes","operators","labels","availableOperators","attributeSpec","typeOperators","type","reduce","count","item","combinators","includes","shouldShowValueInput","DeleteIcon","rule","delete","tooltip","root","actionsContainer","ariaLabel","actions","dialog","propTypes","number","string","any","bool"],"sources":["../../../../src/QueryBuilder/Rule/Rule.js"],"sourcesContent":["import React, { useMemo, useContext } from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport { HvGrid, HvButton, withTooltip } from \"@hitachivantara/uikit-react-core\";\nimport { Delete } from \"@hitachivantara/uikit-react-icons\";\n\nimport Context from \"../Context\";\nimport Attribute from \"./Attribute\";\nimport Operator from \"./Operator\";\nimport Value from \"./Value\";\nimport useStyles from \"./styles\";\n\nconst Rule = ({ id, combinator, attribute, operator, value, disabled, isInvalid }) => {\n const classes = useStyles();\n const context = useContext(Context);\n\n const { askAction, attributes, operators, labels } = context;\n\n const availableOperators = useMemo(() => {\n const attributeSpec = attribute != null ? attributes[attribute] : null;\n if (attributeSpec != null) {\n const typeOperators = operators[attributeSpec.type];\n if (typeOperators != null) {\n return typeOperators.reduce(\n (count, item) => count + (item.combinators.includes(combinator) ? 1 : 0),\n 0\n );\n }\n }\n\n return -1;\n }, [attribute, attributes, combinator, operators]);\n\n const shouldShowValueInput = operator !== \"Empty\" && operator !== \"IsNotEmpty\";\n\n const DeleteIcon = withTooltip(() => <Delete />, labels.rule.delete.tooltip, \"bottom\");\n\n return (\n <HvGrid container className={classes.root} spacing={0} wrap=\"nowrap\">\n <HvGrid item xs={2} lg={3}>\n <Attribute attribute={attribute} id={id} disabled={disabled} isInvalid={isInvalid} />\n </HvGrid>\n {attribute != null && availableOperators > 0 && (\n <HvGrid item xs={2} lg={3}>\n <Operator
|
|
1
|
+
{"version":3,"file":"Rule.js","names":["React","useMemo","useContext","PropTypes","HvGrid","HvButton","withTooltip","Delete","Context","Attribute","Operator","Value","useStyles","Rule","id","combinator","attribute","operator","value","disabled","isInvalid","classes","context","askAction","attributes","operators","labels","availableOperators","attributeSpec","typeOperators","type","reduce","count","item","combinators","includes","shouldShowValueInput","DeleteIcon","rule","delete","tooltip","root","actionsContainer","ariaLabel","actions","dialog","propTypes","number","string","any","bool"],"sources":["../../../../src/QueryBuilder/Rule/Rule.js"],"sourcesContent":["import React, { useMemo, useContext } from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport { HvGrid, HvButton, withTooltip } from \"@hitachivantara/uikit-react-core\";\nimport { Delete } from \"@hitachivantara/uikit-react-icons\";\n\nimport Context from \"../Context\";\nimport Attribute from \"./Attribute\";\nimport Operator from \"./Operator\";\nimport Value from \"./Value\";\nimport useStyles from \"./styles\";\n\nconst Rule = ({ id, combinator, attribute, operator, value, disabled, isInvalid }) => {\n const classes = useStyles();\n const context = useContext(Context);\n\n const { askAction, attributes, operators, labels } = context;\n\n const availableOperators = useMemo(() => {\n const attributeSpec = attribute != null ? attributes[attribute] : null;\n if (attributeSpec != null) {\n const typeOperators = operators[attributeSpec.type];\n if (typeOperators != null) {\n return typeOperators.reduce(\n (count, item) => count + (item.combinators.includes(combinator) ? 1 : 0),\n 0\n );\n }\n }\n\n return -1;\n }, [attribute, attributes, combinator, operators]);\n\n const shouldShowValueInput = operator !== \"Empty\" && operator !== \"IsNotEmpty\";\n\n const DeleteIcon = withTooltip(() => <Delete />, labels.rule.delete.tooltip, \"bottom\");\n\n return (\n <HvGrid container className={classes.root} spacing={0} wrap=\"nowrap\">\n <HvGrid item xs={2} lg={3}>\n <Attribute attribute={attribute} id={id} disabled={disabled} isInvalid={isInvalid} />\n </HvGrid>\n {attribute != null && availableOperators > 0 && (\n <HvGrid item xs={2} lg={3}>\n <Operator id={id} combinator={combinator} attribute={attribute} operator={operator} />\n </HvGrid>\n )}\n {attribute != null && (operator != null || availableOperators === 0) && (\n <HvGrid item xs>\n {shouldShowValueInput && (\n <Value attribute={attribute} id={id} operator={operator} value={value} />\n )}\n </HvGrid>\n )}\n <HvGrid item className={classes.actionsContainer}>\n <HvButton\n icon\n aria-label={labels.rule.delete.ariaLabel}\n onClick={() => {\n askAction({\n actions: [{ type: \"remove-node\", id }],\n dialog: labels.rule.delete,\n });\n }}\n >\n <DeleteIcon />\n </HvButton>\n </HvGrid>\n </HvGrid>\n );\n};\n\nRule.propTypes = {\n id: PropTypes.number,\n combinator: PropTypes.string,\n attribute: PropTypes.string,\n operator: PropTypes.string,\n value: PropTypes.any,\n disabled: PropTypes.bool,\n isInvalid: PropTypes.bool,\n};\n\nexport default Rule;\n"],"mappings":";;;;;AAAA,OAAOA,KAAP,IAAgBC,OAAhB,EAAyBC,UAAzB,QAA2C,OAA3C;AACA,OAAOC,SAAP,MAAsB,YAAtB;AAEA,SAASC,MAAT,EAAiBC,QAAjB,EAA2BC,WAA3B,QAA8C,kCAA9C;AACA,SAASC,MAAT,QAAuB,mCAAvB;AAEA,OAAOC,OAAP,MAAoB,YAApB;AACA,OAAOC,SAAP,MAAsB,aAAtB;AACA,OAAOC,QAAP,MAAqB,YAArB;AACA,OAAOC,KAAP,MAAkB,SAAlB;AACA,OAAOC,SAAP,MAAsB,UAAtB;;AAEA,IAAMC,IAAI,GAAG,SAAPA,IAAO,OAAyE;EAAA,IAAtEC,EAAsE,QAAtEA,EAAsE;EAAA,IAAlEC,UAAkE,QAAlEA,UAAkE;EAAA,IAAtDC,SAAsD,QAAtDA,SAAsD;EAAA,IAA3CC,QAA2C,QAA3CA,QAA2C;EAAA,IAAjCC,KAAiC,QAAjCA,KAAiC;EAAA,IAA1BC,QAA0B,QAA1BA,QAA0B;EAAA,IAAhBC,SAAgB,QAAhBA,SAAgB;EACpF,IAAMC,OAAO,GAAGT,SAAS,EAAzB;EACA,IAAMU,OAAO,GAAGpB,UAAU,CAACM,OAAD,CAA1B;EAEA,IAAQe,SAAR,GAAqDD,OAArD,CAAQC,SAAR;EAAA,IAAmBC,UAAnB,GAAqDF,OAArD,CAAmBE,UAAnB;EAAA,IAA+BC,SAA/B,GAAqDH,OAArD,CAA+BG,SAA/B;EAAA,IAA0CC,MAA1C,GAAqDJ,OAArD,CAA0CI,MAA1C;EAEA,IAAMC,kBAAkB,GAAG1B,OAAO,CAAC,YAAM;IACvC,IAAM2B,aAAa,GAAGZ,SAAS,IAAI,IAAb,GAAoBQ,UAAU,CAACR,SAAD,CAA9B,GAA4C,IAAlE;;IACA,IAAIY,aAAa,IAAI,IAArB,EAA2B;MACzB,IAAMC,aAAa,GAAGJ,SAAS,CAACG,aAAa,CAACE,IAAf,CAA/B;;MACA,IAAID,aAAa,IAAI,IAArB,EAA2B;QACzB,OAAOA,aAAa,CAACE,MAAd,CACL,UAACC,KAAD,EAAQC,IAAR;UAAA,OAAiBD,KAAK,IAAIC,IAAI,CAACC,WAAL,CAAiBC,QAAjB,CAA0BpB,UAA1B,IAAwC,CAAxC,GAA4C,CAAhD,CAAtB;QAAA,CADK,EAEL,CAFK,CAAP;MAID;IACF;;IAED,OAAO,CAAC,CAAR;EACD,CAbiC,EAa/B,CAACC,SAAD,EAAYQ,UAAZ,EAAwBT,UAAxB,EAAoCU,SAApC,CAb+B,CAAlC;EAeA,IAAMW,oBAAoB,GAAGnB,QAAQ,KAAK,OAAb,IAAwBA,QAAQ,KAAK,YAAlE;EAEA,IAAMoB,UAAU,GAAG/B,WAAW,CAAC;IAAA,0CAAM,oBAAC,MAAD,OAAN;EAAA,CAAD,EAAmBoB,MAAM,CAACY,IAAP,CAAYC,MAAZ,CAAmBC,OAAtC,EAA+C,QAA/C,CAA9B;EAEA,oBACE,oBAAC,MAAD;IAAQ,SAAS,MAAjB;IAAkB,SAAS,EAAEnB,OAAO,CAACoB,IAArC;IAA2C,OAAO,EAAE,CAApD;IAAuD,IAAI,EAAC;EAA5D,gBACE,oBAAC,MAAD;IAAQ,IAAI,MAAZ;IAAa,EAAE,EAAE,CAAjB;IAAoB,EAAE,EAAE;EAAxB,gBACE,oBAAC,SAAD;IAAW,SAAS,EAAEzB,SAAtB;IAAiC,EAAE,EAAEF,EAArC;IAAyC,QAAQ,EAAEK,QAAnD;IAA6D,SAAS,EAAEC;EAAxE,EADF,CADF,EAIGJ,SAAS,IAAI,IAAb,IAAqBW,kBAAkB,GAAG,CAA1C,iBACC,oBAAC,MAAD;IAAQ,IAAI,MAAZ;IAAa,EAAE,EAAE,CAAjB;IAAoB,EAAE,EAAE;EAAxB,gBACE,oBAAC,QAAD;IAAU,EAAE,EAAEb,EAAd;IAAkB,UAAU,EAAEC,UAA9B;IAA0C,SAAS,EAAEC,SAArD;IAAgE,QAAQ,EAAEC;EAA1E,EADF,CALJ,EASGD,SAAS,IAAI,IAAb,KAAsBC,QAAQ,IAAI,IAAZ,IAAoBU,kBAAkB,KAAK,CAAjE,kBACC,oBAAC,MAAD;IAAQ,IAAI,MAAZ;IAAa,EAAE;EAAf,GACGS,oBAAoB,iBACnB,oBAAC,KAAD;IAAO,SAAS,EAAEpB,SAAlB;IAA6B,EAAE,EAAEF,EAAjC;IAAqC,QAAQ,EAAEG,QAA/C;IAAyD,KAAK,EAAEC;EAAhE,EAFJ,CAVJ,eAgBE,oBAAC,MAAD;IAAQ,IAAI,MAAZ;IAAa,SAAS,EAAEG,OAAO,CAACqB;EAAhC,gBACE,oBAAC,QAAD;IACE,IAAI,MADN;IAEE,cAAYhB,MAAM,CAACY,IAAP,CAAYC,MAAZ,CAAmBI,SAFjC;IAGE,OAAO,EAAE,mBAAM;MACbpB,SAAS,CAAC;QACRqB,OAAO,EAAE,CAAC;UAAEd,IAAI,EAAE,aAAR;UAAuBhB,EAAE,EAAFA;QAAvB,CAAD,CADD;QAER+B,MAAM,EAAEnB,MAAM,CAACY,IAAP,CAAYC;MAFZ,CAAD,CAAT;IAID;EARH,gBAUE,oBAAC,UAAD,OAVF,CADF,CAhBF,CADF;AAiCD,CA1DD;;AA4DA,wCAAA1B,IAAI,CAACiC,SAAL,GAAiB;EACfhC,EAAE,EAAEX,SAAS,CAAC4C,MADC;EAEfhC,UAAU,EAAEZ,SAAS,CAAC6C,MAFP;EAGfhC,SAAS,EAAEb,SAAS,CAAC6C,MAHN;EAIf/B,QAAQ,EAAEd,SAAS,CAAC6C,MAJL;EAKf9B,KAAK,EAAEf,SAAS,CAAC8C,GALF;EAMf9B,QAAQ,EAAEhB,SAAS,CAAC+C,IANL;EAOf9B,SAAS,EAAEjB,SAAS,CAAC+C;AAPN,CAAjB;AAUA,eAAerC,IAAf"}
|
|
@@ -96,9 +96,13 @@ var RuleGroup = function RuleGroup(_ref) {
|
|
|
96
96
|
}, /*#__PURE__*/React.createElement(DeleteIcon, null)))), (rules === null || rules === void 0 ? void 0 : rules.length) > 0 && /*#__PURE__*/React.createElement("div", {
|
|
97
97
|
className: clsx(classes.rulesContainer, level > 0 && classes.subRulesContainer, level === 0 && "topRulesContainer")
|
|
98
98
|
}, rules.map(function (rule, index) {
|
|
99
|
+
var _rule$id2;
|
|
100
|
+
|
|
99
101
|
if ("combinator" in rule) {
|
|
102
|
+
var _rule$id;
|
|
103
|
+
|
|
100
104
|
return /*#__PURE__*/React.createElement(RuleGroup, _extends({
|
|
101
|
-
key: rule.id
|
|
105
|
+
key: (_rule$id = rule.id) !== null && _rule$id !== void 0 ? _rule$id : index,
|
|
102
106
|
level: level + 1
|
|
103
107
|
}, rule, {
|
|
104
108
|
id: rule.id,
|
|
@@ -116,7 +120,7 @@ var RuleGroup = function RuleGroup(_ref) {
|
|
|
116
120
|
return false;
|
|
117
121
|
});
|
|
118
122
|
return /*#__PURE__*/React.createElement(Rule, _extends({
|
|
119
|
-
key: rule.id
|
|
123
|
+
key: (_rule$id2 = rule.id) !== null && _rule$id2 !== void 0 ? _rule$id2 : index
|
|
120
124
|
}, rule, {
|
|
121
125
|
isInvalid: isInvalid,
|
|
122
126
|
id: rule.id,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RuleGroup.js","names":["React","useCallback","useContext","clsx","withStyles","PropTypes","HvGrid","HvMultiButton","HvButton","HvEmptyState","HvTypography","withTooltip","Add","Delete","Info","Context","Rule","styles","RuleGroup","level","id","combinator","rules","classes","context","dispatchAction","askAction","maxDepth","combinators","labels","normalizedMaxDepth","actionButtons","type","query","addRule","label","group","addGroup","DeleteIcon","delete","tooltip","onClickCombinator","item","operand","root","topGroup","subGroup","topCombinator","map","combinatorButton","removeButton","topRemoveButton","actions","dialog","ariaLabel","length","rulesContainer","subRulesContainer","rule","index","Math","random","isInvalid","some","r","i","attribute","empty","title","cursor","textDecoration","createCondition","spacer","createGroup","actionButtonContainer","topActionButtonContainer","propTypes","shape","string","number","array","name"],"sources":["../../../../src/QueryBuilder/RuleGroup/RuleGroup.js"],"sourcesContent":["import React, { useCallback, useContext } from \"react\";\nimport clsx from \"clsx\";\nimport { withStyles } from \"@material-ui/core\";\nimport PropTypes from \"prop-types\";\nimport {\n HvGrid,\n HvMultiButton,\n HvButton,\n HvEmptyState,\n HvTypography,\n withTooltip,\n} from \"@hitachivantara/uikit-react-core\";\nimport { Add, Delete, Info } from \"@hitachivantara/uikit-react-icons\";\n\nimport Context from \"../Context\";\nimport Rule from \"../Rule\";\nimport styles from \"./styles\";\n\nconst RuleGroup = ({ level = 0, id, combinator = \"and\", rules = [], classes }) => {\n const context = useContext(Context);\n\n const { dispatchAction, askAction, maxDepth, combinators, labels } = context;\n const normalizedMaxDepth = maxDepth - 1;\n\n const actionButtons = (\n <>\n <HvButton\n category=\"secondary\"\n onClick={() => {\n dispatchAction({ type: \"add-rule\", id });\n }}\n >\n <Add />\n {level === 0 && labels.query?.addRule?.label != null\n ? labels.query?.addRule?.label\n : labels.group.addRule.label}\n </HvButton>\n {level <= normalizedMaxDepth && (\n <HvButton\n category=\"secondary\"\n onClick={() => {\n dispatchAction({ type: \"add-group\", id });\n }}\n >\n <Add />\n {level === 0 && labels.query?.addGroup?.label != null\n ? labels.query?.addGroup?.label\n : labels.group.addGroup.label}\n </HvButton>\n )}\n </>\n );\n\n const DeleteIcon = withTooltip(\n () => <Delete />,\n level === 0 && labels.query?.delete?.tooltip\n ? labels.query?.delete?.tooltip\n : labels.group.delete.tooltip,\n \"top\"\n );\n\n const onClickCombinator = useCallback(\n (item) => {\n dispatchAction({\n type: \"set-combinator\",\n id,\n combinator: item.operand,\n });\n },\n [dispatchAction, id]\n );\n\n return (\n <div\n className={clsx(classes.root, {\n [classes.topGroup]: level === 0,\n [classes.subGroup]: level !== 0,\n })}\n >\n <HvGrid container>\n <HvGrid item>\n <HvMultiButton className={clsx(classes.combinator, classes.topCombinator)}>\n {combinators.map((item) => (\n <HvButton\n key={item.operand}\n className={classes.combinatorButton}\n selected={item.operand === combinator}\n onClick={() => item.operand && onClickCombinator(item)}\n >\n {item.label}\n </HvButton>\n ))}\n </HvMultiButton>\n </HvGrid>\n <HvGrid item>\n <HvButton\n icon\n className={clsx(classes.removeButton, classes.topRemoveButton)}\n onClick={() => {\n askAction({\n actions: [{ type: \"remove-node\", id }],\n dialog:\n level === 0 && labels.query?.delete != null\n ? labels.query.delete\n : labels.group.delete,\n });\n }}\n aria-label={\n level === 0 && labels.query?.delete?.ariaLabel\n ? labels.query?.delete?.ariaLabel\n : labels.group.delete.ariaLabel\n }\n >\n <DeleteIcon />\n </HvButton>\n </HvGrid>\n </HvGrid>\n {rules?.length > 0 && (\n <div\n className={clsx(classes.rulesContainer, {\n [classes.subRulesContainer]: level > 0,\n topRulesContainer: level === 0,\n })}\n >\n {rules.map((rule, index) => {\n if (\"combinator\" in rule) {\n return (\n <RuleGroup\n key={rule.id || Math.random()}\n level={level + 1}\n {...rule}\n id={rule.id}\n classes={classes}\n />\n );\n }\n\n const isInvalid =\n combinator === \"and\" &&\n rules.some((r, i) => {\n if (\"attribute\" in r) {\n if (r.attribute === rule.attribute && r.id !== rule.id && i < index) {\n return true;\n }\n }\n return false;\n });\n\n return (\n <Rule\n key={rule.id || Math.random()}\n {...rule}\n isInvalid={isInvalid}\n id={rule.id}\n combinator={combinator}\n />\n );\n })}\n </div>\n )}\n {rules?.length === 0 && (\n <HvEmptyState\n title={labels.empty?.title}\n message={\n <>\n <HvTypography\n variant=\"link\"\n component=\"a\"\n onClick={() => {\n dispatchAction({ type: \"add-rule\", id });\n }}\n style={{ cursor: \"pointer\", textDecoration: \"underline\" }}\n >\n {`${labels.empty?.createCondition}`}\n </HvTypography>\n {level <= normalizedMaxDepth && (\n <>\n {`${labels.empty?.spacer}`}\n <HvTypography\n variant=\"link\"\n component=\"a\"\n onClick={() => {\n dispatchAction({ type: \"add-group\", id });\n }}\n style={{ cursor: \"pointer\", textDecoration: \"underline\" }}\n >\n {`${labels.empty?.createGroup}`}\n </HvTypography>\n </>\n )}\n </>\n }\n icon={<Info />}\n />\n )}\n <HvGrid container>\n <HvGrid\n item\n className={clsx(classes.actionButtonContainer, classes.topActionButtonContainer)}\n >\n {actionButtons}\n </HvGrid>\n </HvGrid>\n </div>\n );\n};\n\nRuleGroup.propTypes = {\n /**\n * Override or extend the styles applied to the component.\n * See CSS API tab for more details.\n */\n classes: PropTypes.shape({\n /**\n * Styles applied to the component root class.\n */\n root: PropTypes.string,\n /**\n * Styles applied to the top group container.\n */\n topGroup: PropTypes.string,\n /**\n * Styles applied to the sub group containers.\n */\n subGroup: PropTypes.string,\n /**\n * Styles applied to the multi-button combinator container.\n */\n combinator: PropTypes.string,\n /**\n * Styles applied to the multi-button combinator container on the top group.\n */\n topCombinator: PropTypes.string,\n /**\n * Styles applied to each combinator button.\n */\n combinatorButton: PropTypes.string,\n /**\n * Styles applied to the remove button.\n */\n removeButton: PropTypes.string,\n /**\n * Styles applied to the remove button on the top group.\n */\n topRemoveButton: PropTypes.string,\n /**\n * Styles applied to the rules container.\n */\n rulesContainer: PropTypes.string,\n /**\n * Styles applied to the sub rules container.\n */\n subRulesContainer: PropTypes.string,\n /**\n * Styles applied to the action button container.\n */\n actionButtonContainer: PropTypes.string,\n /**\n * Styles applied to the top action button container.\n */\n topActionButtonContainer: PropTypes.string,\n }),\n id: PropTypes.number,\n level: PropTypes.number,\n combinator: PropTypes.string,\n rules: PropTypes.array,\n};\n\nexport default withStyles(styles, { name: \"RuleGroup\" })(RuleGroup);\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"RuleGroup.js","names":["React","useCallback","useContext","clsx","withStyles","PropTypes","HvGrid","HvMultiButton","HvButton","HvEmptyState","HvTypography","withTooltip","Add","Delete","Info","Context","Rule","styles","RuleGroup","level","id","combinator","rules","classes","context","dispatchAction","askAction","maxDepth","combinators","labels","normalizedMaxDepth","actionButtons","type","query","addRule","label","group","addGroup","DeleteIcon","delete","tooltip","onClickCombinator","item","operand","root","topGroup","subGroup","topCombinator","map","combinatorButton","removeButton","topRemoveButton","actions","dialog","ariaLabel","length","rulesContainer","subRulesContainer","rule","index","isInvalid","some","r","i","attribute","empty","title","cursor","textDecoration","createCondition","spacer","createGroup","actionButtonContainer","topActionButtonContainer","propTypes","shape","string","number","array","name"],"sources":["../../../../src/QueryBuilder/RuleGroup/RuleGroup.js"],"sourcesContent":["import React, { useCallback, useContext } from \"react\";\nimport clsx from \"clsx\";\nimport { withStyles } from \"@material-ui/core\";\nimport PropTypes from \"prop-types\";\nimport {\n HvGrid,\n HvMultiButton,\n HvButton,\n HvEmptyState,\n HvTypography,\n withTooltip,\n} from \"@hitachivantara/uikit-react-core\";\nimport { Add, Delete, Info } from \"@hitachivantara/uikit-react-icons\";\n\nimport Context from \"../Context\";\nimport Rule from \"../Rule\";\nimport styles from \"./styles\";\n\nconst RuleGroup = ({ level = 0, id, combinator = \"and\", rules = [], classes }) => {\n const context = useContext(Context);\n\n const { dispatchAction, askAction, maxDepth, combinators, labels } = context;\n const normalizedMaxDepth = maxDepth - 1;\n\n const actionButtons = (\n <>\n <HvButton\n category=\"secondary\"\n onClick={() => {\n dispatchAction({ type: \"add-rule\", id });\n }}\n >\n <Add />\n {level === 0 && labels.query?.addRule?.label != null\n ? labels.query?.addRule?.label\n : labels.group.addRule.label}\n </HvButton>\n {level <= normalizedMaxDepth && (\n <HvButton\n category=\"secondary\"\n onClick={() => {\n dispatchAction({ type: \"add-group\", id });\n }}\n >\n <Add />\n {level === 0 && labels.query?.addGroup?.label != null\n ? labels.query?.addGroup?.label\n : labels.group.addGroup.label}\n </HvButton>\n )}\n </>\n );\n\n const DeleteIcon = withTooltip(\n () => <Delete />,\n level === 0 && labels.query?.delete?.tooltip\n ? labels.query?.delete?.tooltip\n : labels.group.delete.tooltip,\n \"top\"\n );\n\n const onClickCombinator = useCallback(\n (item) => {\n dispatchAction({\n type: \"set-combinator\",\n id,\n combinator: item.operand,\n });\n },\n [dispatchAction, id]\n );\n\n return (\n <div\n className={clsx(classes.root, {\n [classes.topGroup]: level === 0,\n [classes.subGroup]: level !== 0,\n })}\n >\n <HvGrid container>\n <HvGrid item>\n <HvMultiButton className={clsx(classes.combinator, classes.topCombinator)}>\n {combinators.map((item) => (\n <HvButton\n key={item.operand}\n className={classes.combinatorButton}\n selected={item.operand === combinator}\n onClick={() => item.operand && onClickCombinator(item)}\n >\n {item.label}\n </HvButton>\n ))}\n </HvMultiButton>\n </HvGrid>\n <HvGrid item>\n <HvButton\n icon\n className={clsx(classes.removeButton, classes.topRemoveButton)}\n onClick={() => {\n askAction({\n actions: [{ type: \"remove-node\", id }],\n dialog:\n level === 0 && labels.query?.delete != null\n ? labels.query.delete\n : labels.group.delete,\n });\n }}\n aria-label={\n level === 0 && labels.query?.delete?.ariaLabel\n ? labels.query?.delete?.ariaLabel\n : labels.group.delete.ariaLabel\n }\n >\n <DeleteIcon />\n </HvButton>\n </HvGrid>\n </HvGrid>\n {rules?.length > 0 && (\n <div\n className={clsx(classes.rulesContainer, {\n [classes.subRulesContainer]: level > 0,\n topRulesContainer: level === 0,\n })}\n >\n {rules.map((rule, index) => {\n if (\"combinator\" in rule) {\n return (\n <RuleGroup\n key={rule.id ?? index}\n level={level + 1}\n {...rule}\n id={rule.id}\n classes={classes}\n />\n );\n }\n\n const isInvalid =\n combinator === \"and\" &&\n rules.some((r, i) => {\n if (\"attribute\" in r) {\n if (r.attribute === rule.attribute && r.id !== rule.id && i < index) {\n return true;\n }\n }\n return false;\n });\n\n return (\n <Rule\n key={rule.id ?? index}\n {...rule}\n isInvalid={isInvalid}\n id={rule.id}\n combinator={combinator}\n />\n );\n })}\n </div>\n )}\n {rules?.length === 0 && (\n <HvEmptyState\n title={labels.empty?.title}\n message={\n <>\n <HvTypography\n variant=\"link\"\n component=\"a\"\n onClick={() => {\n dispatchAction({ type: \"add-rule\", id });\n }}\n style={{ cursor: \"pointer\", textDecoration: \"underline\" }}\n >\n {`${labels.empty?.createCondition}`}\n </HvTypography>\n {level <= normalizedMaxDepth && (\n <>\n {`${labels.empty?.spacer}`}\n <HvTypography\n variant=\"link\"\n component=\"a\"\n onClick={() => {\n dispatchAction({ type: \"add-group\", id });\n }}\n style={{ cursor: \"pointer\", textDecoration: \"underline\" }}\n >\n {`${labels.empty?.createGroup}`}\n </HvTypography>\n </>\n )}\n </>\n }\n icon={<Info />}\n />\n )}\n <HvGrid container>\n <HvGrid\n item\n className={clsx(classes.actionButtonContainer, classes.topActionButtonContainer)}\n >\n {actionButtons}\n </HvGrid>\n </HvGrid>\n </div>\n );\n};\n\nRuleGroup.propTypes = {\n /**\n * Override or extend the styles applied to the component.\n * See CSS API tab for more details.\n */\n classes: PropTypes.shape({\n /**\n * Styles applied to the component root class.\n */\n root: PropTypes.string,\n /**\n * Styles applied to the top group container.\n */\n topGroup: PropTypes.string,\n /**\n * Styles applied to the sub group containers.\n */\n subGroup: PropTypes.string,\n /**\n * Styles applied to the multi-button combinator container.\n */\n combinator: PropTypes.string,\n /**\n * Styles applied to the multi-button combinator container on the top group.\n */\n topCombinator: PropTypes.string,\n /**\n * Styles applied to each combinator button.\n */\n combinatorButton: PropTypes.string,\n /**\n * Styles applied to the remove button.\n */\n removeButton: PropTypes.string,\n /**\n * Styles applied to the remove button on the top group.\n */\n topRemoveButton: PropTypes.string,\n /**\n * Styles applied to the rules container.\n */\n rulesContainer: PropTypes.string,\n /**\n * Styles applied to the sub rules container.\n */\n subRulesContainer: PropTypes.string,\n /**\n * Styles applied to the action button container.\n */\n actionButtonContainer: PropTypes.string,\n /**\n * Styles applied to the top action button container.\n */\n topActionButtonContainer: PropTypes.string,\n }),\n id: PropTypes.number,\n level: PropTypes.number,\n combinator: PropTypes.string,\n rules: PropTypes.array,\n};\n\nexport default withStyles(styles, { name: \"RuleGroup\" })(RuleGroup);\n"],"mappings":"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"}
|
|
@@ -6,8 +6,7 @@ import React, { forwardRef, useContext, useRef } from "react";
|
|
|
6
6
|
import PropTypes from "prop-types";
|
|
7
7
|
import clsx from "clsx";
|
|
8
8
|
import { withStyles } from "@material-ui/core";
|
|
9
|
-
import { useForkRef } from "@hitachivantara/uikit-react-core";
|
|
10
|
-
import Focus from "@hitachivantara/uikit-react-core/dist/Focus";
|
|
9
|
+
import { HvFocus, useForkRef } from "@hitachivantara/uikit-react-core";
|
|
11
10
|
import TableContext from "../TableContext";
|
|
12
11
|
import TableSectionContext from "../TableSectionContext";
|
|
13
12
|
import styles from "./styles";
|
|
@@ -43,7 +42,7 @@ var HvTableBody = /*#__PURE__*/forwardRef(function HvTableBody(props, externalRe
|
|
|
43
42
|
ref: handleRef,
|
|
44
43
|
role: Component === defaultComponent ? null : "rowgroup"
|
|
45
44
|
}, others), withNavigation ? children.map(function (element) {
|
|
46
|
-
return /*#__PURE__*/React.createElement(
|
|
45
|
+
return /*#__PURE__*/React.createElement(HvFocus, {
|
|
47
46
|
rootRef: bodyRef,
|
|
48
47
|
key: "row-".concat(element.key),
|
|
49
48
|
strategy: "grid",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableBody.js","names":["React","forwardRef","useContext","useRef","PropTypes","clsx","withStyles","
|
|
1
|
+
{"version":3,"file":"TableBody.js","names":["React","forwardRef","useContext","useRef","PropTypes","clsx","withStyles","HvFocus","useForkRef","TableContext","TableSectionContext","styles","tableSectionContext","type","filterClassName","defaultComponent","HvTableBody","props","externalRef","classes","className","component","children","withNavigation","others","tableContext","bodyRef","handleRef","Component","components","TBody","root","map","element","key","selected","propTypes","string","node","elementType","bool","shape","isRequired","name"],"sources":["../../../../src/Table/TableBody/TableBody.js"],"sourcesContent":["import React, { forwardRef, useContext, useRef } from \"react\";\nimport PropTypes from \"prop-types\";\nimport clsx from \"clsx\";\n\nimport { withStyles } from \"@material-ui/core\";\nimport { HvFocus, useForkRef } from \"@hitachivantara/uikit-react-core\";\n\nimport TableContext from \"../TableContext\";\nimport TableSectionContext from \"../TableSectionContext\";\nimport styles from \"./styles\";\n\nconst tableSectionContext = {\n type: \"body\",\n filterClassName: \"grid\",\n};\n\nconst defaultComponent = \"tbody\";\n\n/**\n * HvTableBody acts as a `tbody` element.\n * `HvTableCell` and `HvTableRow` elements in it inherit body-specific styles\n */\nconst HvTableBody = forwardRef(function HvTableBody(props, externalRef) {\n const { classes, className, component, children, withNavigation = false, ...others } = props;\n\n const tableContext = useContext(TableContext);\n\n const bodyRef = useRef(null);\n\n const handleRef = useForkRef(externalRef, bodyRef);\n\n const Component = component || tableContext?.components?.TBody || defaultComponent;\n\n return (\n <TableSectionContext.Provider value={tableSectionContext}>\n <Component\n className={clsx(classes.root, className)}\n ref={handleRef}\n role={Component === defaultComponent ? null : \"rowgroup\"}\n {...others}\n >\n {withNavigation\n ? children.map((element) => {\n return (\n <HvFocus\n rootRef={bodyRef}\n key={`row-${element.key}`}\n strategy=\"grid\"\n useArrows=\"true\"\n filterClass={tableSectionContext.filterClassName}\n navigationJump={1}\n focusDisabled={false}\n selected={element.props.selected}\n >\n {element}\n </HvFocus>\n );\n })\n : children}\n </Component>\n </TableSectionContext.Provider>\n );\n});\n\nHvTableBody.propTypes = {\n /**\n * Class names to be applied.\n */\n className: PropTypes.string,\n /**\n * Content to be rendered\n */\n children: PropTypes.node,\n /**\n * The component used for the root node. Either a string to use a HTML element or a component.\n * Defaults to tbody.\n */\n component: PropTypes.elementType,\n /**\n * Sets whether or not there should be arrow navigation between the table rows\n */\n withNavigation: PropTypes.bool,\n /**\n * A Jss Object used to override or extend the styles applied.\n */\n classes: PropTypes.shape({\n /**\n * Styles applied to the component root class.\n */\n root: PropTypes.string,\n }).isRequired,\n};\n\nexport default withStyles(styles, { name: \"HvTableBody\" })(HvTableBody);\n"],"mappings":"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"}
|
package/dist/legacy/index.d.ts
CHANGED
package/dist/legacy/index.js
CHANGED
|
@@ -14,6 +14,8 @@ export { default as HvTag } from "./Tag";
|
|
|
14
14
|
export { default as HvDrawer } from "./Drawer";
|
|
15
15
|
export { default as HvColorPicker } from "./ColorPicker";
|
|
16
16
|
export { default as HvQueryBuilder } from "./QueryBuilder";
|
|
17
|
+
export { default as HvControls } from "./Controls";
|
|
18
|
+
export * from "./Controls";
|
|
17
19
|
export * from "./QueryBuilder";
|
|
18
20
|
export { default as HvInlineEditor } from "./InlineEditor";
|
|
19
21
|
export { default as HvProgressBar } from "./ProgressBar";
|
package/dist/legacy/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["default","HvAppSwitcherPanel","HvFormComposer","HvNavigationAnchors","HvNotificationPanel","HvSlider","HvTable","HvTimeAgo","HvTimePicker","HvTag","HvDrawer","HvColorPicker","HvQueryBuilder","HvInlineEditor","HvProgressBar","HvDotPagination"],"sources":["../../src/index.js"],"sourcesContent":["// components\nexport { default as HvAppSwitcherPanel } from \"./AppSwitcherPanel\";\nexport * from \"./AppSwitcherPanel\";\nexport { default as HvFormComposer } from \"./FormComposer\";\nexport { default as HvNavigationAnchors } from \"./NavigationAnchors\";\nexport { default as HvNotificationPanel } from \"./NotificationPanel\";\nexport { default as HvSlider } from \"./Slider\";\nexport { default as HvTable } from \"./Table\";\nexport * from \"./Table\";\nexport { default as HvTimeAgo } from \"./TimeAgo\";\nexport * from \"./TimeAgo\";\nexport { default as HvTimePicker } from \"./TimePicker\";\nexport { default as HvTag } from \"./Tag\";\nexport { default as HvDrawer } from \"./Drawer\";\nexport { default as HvColorPicker } from \"./ColorPicker\";\nexport { default as HvQueryBuilder } from \"./QueryBuilder\";\nexport * from \"./QueryBuilder\";\nexport { default as HvInlineEditor } from \"./InlineEditor\";\nexport { default as HvProgressBar } from \"./ProgressBar\";\nexport { default as HvDotPagination } from \"./DotPagination\";\n"],"mappings":"AAAA;AACA,SAASA,OAAO,IAAIC,kBAApB,QAA8C,oBAA9C;AACA,cAAc,oBAAd;AACA,SAASD,OAAO,IAAIE,cAApB,QAA0C,gBAA1C;AACA,SAASF,OAAO,IAAIG,mBAApB,QAA+C,qBAA/C;AACA,SAASH,OAAO,IAAII,mBAApB,QAA+C,qBAA/C;AACA,SAASJ,OAAO,IAAIK,QAApB,QAAoC,UAApC;AACA,SAASL,OAAO,IAAIM,OAApB,QAAmC,SAAnC;AACA,cAAc,SAAd;AACA,SAASN,OAAO,IAAIO,SAApB,QAAqC,WAArC;AACA,cAAc,WAAd;AACA,SAASP,OAAO,IAAIQ,YAApB,QAAwC,cAAxC;AACA,SAASR,OAAO,IAAIS,KAApB,QAAiC,OAAjC;AACA,SAAST,OAAO,IAAIU,QAApB,QAAoC,UAApC;AACA,SAASV,OAAO,IAAIW,aAApB,QAAyC,eAAzC;AACA,SAASX,OAAO,IAAIY,cAApB,QAA0C,gBAA1C;AACA,cAAc,gBAAd;AACA,
|
|
1
|
+
{"version":3,"file":"index.js","names":["default","HvAppSwitcherPanel","HvFormComposer","HvNavigationAnchors","HvNotificationPanel","HvSlider","HvTable","HvTimeAgo","HvTimePicker","HvTag","HvDrawer","HvColorPicker","HvQueryBuilder","HvControls","HvInlineEditor","HvProgressBar","HvDotPagination"],"sources":["../../src/index.js"],"sourcesContent":["// components\nexport { default as HvAppSwitcherPanel } from \"./AppSwitcherPanel\";\nexport * from \"./AppSwitcherPanel\";\nexport { default as HvFormComposer } from \"./FormComposer\";\nexport { default as HvNavigationAnchors } from \"./NavigationAnchors\";\nexport { default as HvNotificationPanel } from \"./NotificationPanel\";\nexport { default as HvSlider } from \"./Slider\";\nexport { default as HvTable } from \"./Table\";\nexport * from \"./Table\";\nexport { default as HvTimeAgo } from \"./TimeAgo\";\nexport * from \"./TimeAgo\";\nexport { default as HvTimePicker } from \"./TimePicker\";\nexport { default as HvTag } from \"./Tag\";\nexport { default as HvDrawer } from \"./Drawer\";\nexport { default as HvColorPicker } from \"./ColorPicker\";\nexport { default as HvQueryBuilder } from \"./QueryBuilder\";\nexport { default as HvControls } from \"./Controls\";\nexport * from \"./Controls\";\nexport * from \"./QueryBuilder\";\nexport { default as HvInlineEditor } from \"./InlineEditor\";\nexport { default as HvProgressBar } from \"./ProgressBar\";\nexport { default as HvDotPagination } from \"./DotPagination\";\n"],"mappings":"AAAA;AACA,SAASA,OAAO,IAAIC,kBAApB,QAA8C,oBAA9C;AACA,cAAc,oBAAd;AACA,SAASD,OAAO,IAAIE,cAApB,QAA0C,gBAA1C;AACA,SAASF,OAAO,IAAIG,mBAApB,QAA+C,qBAA/C;AACA,SAASH,OAAO,IAAII,mBAApB,QAA+C,qBAA/C;AACA,SAASJ,OAAO,IAAIK,QAApB,QAAoC,UAApC;AACA,SAASL,OAAO,IAAIM,OAApB,QAAmC,SAAnC;AACA,cAAc,SAAd;AACA,SAASN,OAAO,IAAIO,SAApB,QAAqC,WAArC;AACA,cAAc,WAAd;AACA,SAASP,OAAO,IAAIQ,YAApB,QAAwC,cAAxC;AACA,SAASR,OAAO,IAAIS,KAApB,QAAiC,OAAjC;AACA,SAAST,OAAO,IAAIU,QAApB,QAAoC,UAApC;AACA,SAASV,OAAO,IAAIW,aAApB,QAAyC,eAAzC;AACA,SAASX,OAAO,IAAIY,cAApB,QAA0C,gBAA1C;AACA,SAASZ,OAAO,IAAIa,UAApB,QAAsC,YAAtC;AACA,cAAc,YAAd;AACA,cAAc,gBAAd;AACA,SAASb,OAAO,IAAIc,cAApB,QAA0C,gBAA1C;AACA,SAASd,OAAO,IAAIe,aAApB,QAAyC,eAAzC;AACA,SAASf,OAAO,IAAIgB,eAApB,QAA2C,iBAA3C"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { StandardProps } from "@material-ui/core";
|
|
2
|
+
|
|
3
|
+
export type HvControlsClassKey = "root" | "rightSection" | "leftSection";
|
|
4
|
+
|
|
5
|
+
export interface HvControlsSortValue {
|
|
6
|
+
id: string;
|
|
7
|
+
desc: string;
|
|
8
|
+
}
|
|
9
|
+
export interface HvControlsViewConfiguration extends Record<string, unknown> {
|
|
10
|
+
setSortBy?: (v: HvControlsSortValue[]) => void;
|
|
11
|
+
setGlobalFilter?: (v: string) => void;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export interface HvControlsCallbacks extends Record<string, unknown> {
|
|
15
|
+
id: string;
|
|
16
|
+
label: string;
|
|
17
|
+
icon: React.ReactNode;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export interface HvControlsProps
|
|
21
|
+
extends StandardProps<React.HTMLAttributes<HTMLDivElement>, HvControlsClassKey> {
|
|
22
|
+
/** Children to be rendered. */
|
|
23
|
+
id?: string;
|
|
24
|
+
/**
|
|
25
|
+
* Class names to be applied.
|
|
26
|
+
*/
|
|
27
|
+
className?: string;
|
|
28
|
+
/**
|
|
29
|
+
* An instance of useHvTable or useTable used to manage the data
|
|
30
|
+
* if this is not provided data sorting and search must be handled externally
|
|
31
|
+
*/
|
|
32
|
+
callbacks?: HvControlsCallbacks;
|
|
33
|
+
/**
|
|
34
|
+
* Views configuration required for the view buttons
|
|
35
|
+
*/
|
|
36
|
+
views?: HvControlsViewConfiguration[];
|
|
37
|
+
/**
|
|
38
|
+
* What view is selected by default
|
|
39
|
+
*/
|
|
40
|
+
defaultView?: string;
|
|
41
|
+
/**
|
|
42
|
+
* Sets the selected view to be the one specified
|
|
43
|
+
* if specified the component is in a controlled state and it won't change it state
|
|
44
|
+
* unless specified externally
|
|
45
|
+
*/
|
|
46
|
+
selectedView?: string;
|
|
47
|
+
/**
|
|
48
|
+
* Callback called when the view switcher button is pressed
|
|
49
|
+
*/
|
|
50
|
+
onViewChange?: (event: Event, id: string) => void;
|
|
51
|
+
/**
|
|
52
|
+
* if `true` the button to switch views is not rendered
|
|
53
|
+
*/
|
|
54
|
+
hideViewSwitcher?: boolean;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
export default function HvControls(props: HvControlsProps): JSX.Element | null;
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
+
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
|
3
|
+
const _excluded = ["id", "icon"];
|
|
4
|
+
import "core-js/modules/web.dom-collections.iterator.js";
|
|
5
|
+
import React from "react";
|
|
6
|
+
import PropTypes from "prop-types";
|
|
7
|
+
import clsx from "clsx";
|
|
8
|
+
import { withStyles } from "@material-ui/core";
|
|
9
|
+
import { useControlled, HvMultiButton, HvButton, setId } from "@hitachivantara/uikit-react-core";
|
|
10
|
+
import { HvControlsContextProvider } from "./context/ControlsContext";
|
|
11
|
+
import styleCreator from "./styles";
|
|
12
|
+
/** Controls it's a group of features used to control data that can be rendered using different views (table, cards, list). */
|
|
13
|
+
|
|
14
|
+
const HvControls = ({
|
|
15
|
+
id,
|
|
16
|
+
views,
|
|
17
|
+
classes,
|
|
18
|
+
className,
|
|
19
|
+
callbacks,
|
|
20
|
+
selectedView,
|
|
21
|
+
defaultView,
|
|
22
|
+
children,
|
|
23
|
+
hideViewSwitcher = false,
|
|
24
|
+
onViewChange
|
|
25
|
+
}) => {
|
|
26
|
+
const [currentView, setCurrentView] = useControlled(selectedView, defaultView);
|
|
27
|
+
|
|
28
|
+
const onViewChangeHandler = (evt, btnId) => {
|
|
29
|
+
setCurrentView(btnId);
|
|
30
|
+
onViewChange === null || onViewChange === void 0 ? void 0 : onViewChange(evt, btnId);
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
const onSearchHandler = value => callbacks === null || callbacks === void 0 ? void 0 : callbacks.setGlobalFilter(value);
|
|
34
|
+
|
|
35
|
+
const onSortHandler = value => callbacks === null || callbacks === void 0 ? void 0 : callbacks.setSortBy([{
|
|
36
|
+
id: value === null || value === void 0 ? void 0 : value.accessor,
|
|
37
|
+
desc: value === null || value === void 0 ? void 0 : value.desc
|
|
38
|
+
}]);
|
|
39
|
+
|
|
40
|
+
const childrenIndexCut = (children === null || children === void 0 ? void 0 : children.length) > 0 ? Math.round(children.length * 0.5) : 0;
|
|
41
|
+
const leftChildren = children.slice(0, childrenIndexCut);
|
|
42
|
+
const rightChildren = children.slice(childrenIndexCut, (children === null || children === void 0 ? void 0 : children.length) || 0);
|
|
43
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
44
|
+
id: id,
|
|
45
|
+
className: clsx(className, classes.root)
|
|
46
|
+
}, /*#__PURE__*/React.createElement(HvControlsContextProvider, {
|
|
47
|
+
value: {
|
|
48
|
+
onSearch: onSearchHandler,
|
|
49
|
+
onSort: onSortHandler
|
|
50
|
+
}
|
|
51
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
52
|
+
className: clsx(classes.section, classes.leftSection)
|
|
53
|
+
}, leftChildren), /*#__PURE__*/React.createElement("div", {
|
|
54
|
+
className: clsx(classes.section, classes.rightSection)
|
|
55
|
+
}, rightChildren, !hideViewSwitcher && (views === null || views === void 0 ? void 0 : views.length) > 0 && /*#__PURE__*/React.createElement(HvMultiButton, {
|
|
56
|
+
id: setId(id, "view-multi-button")
|
|
57
|
+
}, views === null || views === void 0 ? void 0 : views.map(_ref => {
|
|
58
|
+
let {
|
|
59
|
+
id: btnId,
|
|
60
|
+
icon
|
|
61
|
+
} = _ref,
|
|
62
|
+
others = _objectWithoutProperties(_ref, _excluded);
|
|
63
|
+
|
|
64
|
+
return /*#__PURE__*/React.createElement(HvButton, _extends({
|
|
65
|
+
id: btnId,
|
|
66
|
+
key: btnId,
|
|
67
|
+
icon: true,
|
|
68
|
+
selected: currentView === btnId,
|
|
69
|
+
onClick: evt => onViewChangeHandler(evt, btnId)
|
|
70
|
+
}, others), icon);
|
|
71
|
+
})))));
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
process.env.NODE_ENV !== "production" ? HvControls.propTypes = {
|
|
75
|
+
/** Children to be rendered. */
|
|
76
|
+
id: PropTypes.string,
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* Class names to be applied.
|
|
80
|
+
*/
|
|
81
|
+
className: PropTypes.string,
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* Children elements to be rendered
|
|
85
|
+
*/
|
|
86
|
+
children: PropTypes.node,
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* An instance of useHvTable or useTable used to manage the data
|
|
90
|
+
* if this is not provided data sorting and search must be handled externally
|
|
91
|
+
*/
|
|
92
|
+
callbacks: PropTypes.shape({
|
|
93
|
+
/**
|
|
94
|
+
* Callback used by the .
|
|
95
|
+
*/
|
|
96
|
+
setSortBy: PropTypes.func,
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* Callback used by the search input to filter data across all fields
|
|
100
|
+
*/
|
|
101
|
+
setGlobalFilter: PropTypes.func
|
|
102
|
+
}),
|
|
103
|
+
|
|
104
|
+
/**
|
|
105
|
+
* Views configuration required for the view buttons
|
|
106
|
+
*/
|
|
107
|
+
views: PropTypes.arrayOf(PropTypes.shape({
|
|
108
|
+
label: PropTypes.string,
|
|
109
|
+
icon: PropTypes.node,
|
|
110
|
+
id: PropTypes.string
|
|
111
|
+
})),
|
|
112
|
+
|
|
113
|
+
/**
|
|
114
|
+
* the classes object to be applied into the root object.
|
|
115
|
+
*/
|
|
116
|
+
classes: PropTypes.shape({
|
|
117
|
+
/**
|
|
118
|
+
* Style applied to the root of the component.
|
|
119
|
+
*/
|
|
120
|
+
root: PropTypes.string,
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* Right box of the controls
|
|
124
|
+
*/
|
|
125
|
+
rightSection: PropTypes.string,
|
|
126
|
+
|
|
127
|
+
/**
|
|
128
|
+
* Left box of the controls
|
|
129
|
+
*/
|
|
130
|
+
leftSection: PropTypes.string,
|
|
131
|
+
|
|
132
|
+
/**
|
|
133
|
+
* common styles for left and right controls
|
|
134
|
+
*/
|
|
135
|
+
section: PropTypes.string
|
|
136
|
+
}).isRequired,
|
|
137
|
+
|
|
138
|
+
/**
|
|
139
|
+
* What view is selected by default
|
|
140
|
+
*/
|
|
141
|
+
defaultView: PropTypes.string,
|
|
142
|
+
|
|
143
|
+
/**
|
|
144
|
+
* Sets the selected view to be the one specified
|
|
145
|
+
* if specified the component is in a controlled state and it won't change it state
|
|
146
|
+
* unless specified externally
|
|
147
|
+
*/
|
|
148
|
+
selectedView: PropTypes.string,
|
|
149
|
+
|
|
150
|
+
/**
|
|
151
|
+
* Callback called when the view switcher button is pressed
|
|
152
|
+
*/
|
|
153
|
+
onViewChange: PropTypes.func,
|
|
154
|
+
|
|
155
|
+
/**
|
|
156
|
+
* if `true` the button to switch views is not rendered
|
|
157
|
+
*/
|
|
158
|
+
hideViewSwitcher: PropTypes.bool
|
|
159
|
+
} : void 0;
|
|
160
|
+
export default withStyles(styleCreator, {
|
|
161
|
+
name: "HvControls",
|
|
162
|
+
withTheme: true
|
|
163
|
+
})(HvControls);
|
|
164
|
+
//# sourceMappingURL=Controls.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Controls.js","names":["React","PropTypes","clsx","withStyles","useControlled","HvMultiButton","HvButton","setId","HvControlsContextProvider","styleCreator","HvControls","id","views","classes","className","callbacks","selectedView","defaultView","children","hideViewSwitcher","onViewChange","currentView","setCurrentView","onViewChangeHandler","evt","btnId","onSearchHandler","value","setGlobalFilter","onSortHandler","setSortBy","accessor","desc","childrenIndexCut","length","Math","round","leftChildren","slice","rightChildren","root","onSearch","onSort","section","leftSection","rightSection","map","icon","others","propTypes","string","node","shape","func","arrayOf","label","isRequired","bool","name","withTheme"],"sources":["../../../src/Controls/Controls.js"],"sourcesContent":["import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport clsx from \"clsx\";\nimport { withStyles } from \"@material-ui/core\";\nimport { useControlled, HvMultiButton, HvButton, setId } from \"@hitachivantara/uikit-react-core\";\nimport { HvControlsContextProvider } from \"./context/ControlsContext\";\nimport styleCreator from \"./styles\";\n\n/** Controls it's a group of features used to control data that can be rendered using different views (table, cards, list). */\nconst HvControls = ({\n id,\n views,\n classes,\n className,\n callbacks,\n selectedView,\n defaultView,\n children,\n hideViewSwitcher = false,\n onViewChange,\n}) => {\n const [currentView, setCurrentView] = useControlled(selectedView, defaultView);\n\n const onViewChangeHandler = (evt, btnId) => {\n setCurrentView(btnId);\n onViewChange?.(evt, btnId);\n };\n\n const onSearchHandler = (value) => callbacks?.setGlobalFilter(value);\n const onSortHandler = (value) =>\n callbacks?.setSortBy([\n {\n id: value?.accessor,\n desc: value?.desc,\n },\n ]);\n const childrenIndexCut = children?.length > 0 ? Math.round(children.length * 0.5) : 0;\n const leftChildren = children.slice(0, childrenIndexCut);\n const rightChildren = children.slice(childrenIndexCut, children?.length || 0);\n return (\n <div id={id} className={clsx(className, classes.root)}>\n <HvControlsContextProvider\n value={{\n onSearch: onSearchHandler,\n onSort: onSortHandler,\n }}\n >\n <div className={clsx(classes.section, classes.leftSection)}>{leftChildren}</div>\n <div className={clsx(classes.section, classes.rightSection)}>\n {rightChildren}\n {!hideViewSwitcher && views?.length > 0 && (\n <HvMultiButton id={setId(id, \"view-multi-button\")}>\n {views?.map(({ id: btnId, icon, ...others }) => (\n <HvButton\n id={btnId}\n key={btnId}\n icon\n selected={currentView === btnId}\n onClick={(evt) => onViewChangeHandler(evt, btnId)}\n {...others}\n >\n {icon}\n </HvButton>\n ))}\n </HvMultiButton>\n )}\n </div>\n </HvControlsContextProvider>\n </div>\n );\n};\n\nHvControls.propTypes = {\n /** Children to be rendered. */\n id: PropTypes.string,\n /**\n * Class names to be applied.\n */\n className: PropTypes.string,\n /**\n * Children elements to be rendered\n */\n children: PropTypes.node,\n /**\n * An instance of useHvTable or useTable used to manage the data\n * if this is not provided data sorting and search must be handled externally\n */\n callbacks: PropTypes.shape({\n /**\n * Callback used by the .\n */\n setSortBy: PropTypes.func,\n /**\n * Callback used by the search input to filter data across all fields\n */\n setGlobalFilter: PropTypes.func,\n }),\n /**\n * Views configuration required for the view buttons\n */\n views: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string,\n icon: PropTypes.node,\n id: PropTypes.string,\n })\n ),\n /**\n * the classes object to be applied into the root object.\n */\n classes: PropTypes.shape({\n /**\n * Style applied to the root of the component.\n */\n root: PropTypes.string,\n /**\n * Right box of the controls\n */\n rightSection: PropTypes.string,\n /**\n * Left box of the controls\n */\n leftSection: PropTypes.string,\n /**\n * common styles for left and right controls\n */\n section: PropTypes.string,\n }).isRequired,\n /**\n * What view is selected by default\n */\n defaultView: PropTypes.string,\n /**\n * Sets the selected view to be the one specified\n * if specified the component is in a controlled state and it won't change it state\n * unless specified externally\n */\n selectedView: PropTypes.string,\n /**\n * Callback called when the view switcher button is pressed\n */\n onViewChange: PropTypes.func,\n /**\n * if `true` the button to switch views is not rendered\n */\n hideViewSwitcher: PropTypes.bool,\n};\n\nexport default withStyles(styleCreator, { name: \"HvControls\", withTheme: true })(HvControls);\n"],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { StandardProps } from "@material-ui/core";
|
|
2
|
+
import { HvInputProps } from "@hitachivantara/uikit-react-core";
|
|
3
|
+
|
|
4
|
+
export type HvLeftControlClassKey = "root";
|
|
5
|
+
|
|
6
|
+
export interface HvLeftControlProps
|
|
7
|
+
extends StandardProps<React.HTMLAttributes<HTMLDivElement>, HvLeftControlClassKey> {
|
|
8
|
+
/** Children to be rendered. */
|
|
9
|
+
id?: string;
|
|
10
|
+
/**
|
|
11
|
+
* Class names to be applied.
|
|
12
|
+
*/
|
|
13
|
+
className?: string;
|
|
14
|
+
/**
|
|
15
|
+
* if `true` the hide sort by dropdown is not rendered
|
|
16
|
+
*/
|
|
17
|
+
hideSearch?: boolean;
|
|
18
|
+
/**
|
|
19
|
+
* placeholder of the input
|
|
20
|
+
*/
|
|
21
|
+
placeholder?: string;
|
|
22
|
+
/**
|
|
23
|
+
* Callback called when a search action occurs
|
|
24
|
+
*/
|
|
25
|
+
onSearch?: (event: React.ChangeEvent<HTMLInputElement>, value: string) => void;
|
|
26
|
+
/**
|
|
27
|
+
* Extra props passed to input
|
|
28
|
+
*/
|
|
29
|
+
searchProps?: HvInputProps;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export default function HvLeftControl(props: HvLeftControlProps): JSX.Element | null;
|