From 953d37b20f360a3c700976a0a35edae3a1b0111a Mon Sep 17 00:00:00 2001
From: elforjani13 <39470382+elforjani13@users.noreply.github.com>
Date: Wed, 16 Feb 2022 16:25:58 +0200
Subject: [PATCH] feat(balance): add FMultiSelect.
---
.../FMultiSelect/BranchesMultiSelect.js | 66 +++++++++++++++++++
src/components/FMultiSelect/index.js | 1 +
src/components/index.js | 1 +
.../BalanceSheet/BalanceSheetHeader.js | 7 ++
.../BalanceSheetHeaderDimensionsPanel.js | 31 +++++++++
5 files changed, 106 insertions(+)
create mode 100644 src/components/FMultiSelect/BranchesMultiSelect.js
create mode 100644 src/components/FMultiSelect/index.js
create mode 100644 src/containers/FinancialStatements/BalanceSheet/BalanceSheetHeaderDimensionsPanel.js
diff --git a/src/components/FMultiSelect/BranchesMultiSelect.js b/src/components/FMultiSelect/BranchesMultiSelect.js
new file mode 100644
index 000000000..60110e399
--- /dev/null
+++ b/src/components/FMultiSelect/BranchesMultiSelect.js
@@ -0,0 +1,66 @@
+import React from 'react';
+import { MenuItem } from '@blueprintjs/core';
+import { MultiSelect as FMultiSelect } from 'blueprint-formik';
+
+/**
+ *
+ * @param {*} query
+ * @param {*} branch
+ * @param {*} _index
+ * @param {*} exactMatch
+ * @returns
+ */
+const branchItemPredicate = (query, branch, _index, exactMatch) => {
+ const normalizedTitle = branch.name.toLowerCase();
+ const normalizedQuery = query.toLowerCase();
+
+ if (exactMatch) {
+ return normalizedTitle === normalizedQuery;
+ } else {
+ return `${branch.name}. ${normalizedTitle}`.indexOf(normalizedQuery) >= 0;
+ }
+};
+
+/**
+ *
+ * @param {*} branch
+ * @param {*} param1
+ * @returns
+ */
+const branchItemRenderer = (
+ branch,
+ { handleClick, modifiers, query },
+ { isSelected },
+) => {
+ const text = `${branch.name}.${isSelected ? 'selected' : 'not-selected'}`;
+
+ return (
+
+ );
+};
+
+const branchSelectProps = {
+ itemPredicate: branchItemPredicate,
+ itemRenderer: branchItemRenderer,
+ valueAccessor: 'id',
+ labelAccessor: 'name',
+ tagRenderer: 'name',
+};
+
+export function BranchesMultiSelect({ branches, ...rest }) {
+ return (
+