roamjs-components 0.79.10 → 0.79.11

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.
@@ -9,7 +9,7 @@ const Filter = ({ data, initialValue, onChange, renderButtonText = (s) => s ? s.
9
9
  const closeFilter = (0, react_1.useCallback)(() => {
10
10
  setIsFilterOpen(false);
11
11
  }, [setIsFilterOpen]);
12
- const filtersRef = (0, react_1.useRef)({
12
+ const initialFiltersValue = (0, react_1.useMemo)(() => ({
13
13
  includes: Object.fromEntries(Object.keys(data).map((k) => [
14
14
  k,
15
15
  new Set(data[k].filter((d) => initialValue && initialValue.includes[k].has(d))),
@@ -18,7 +18,8 @@ const Filter = ({ data, initialValue, onChange, renderButtonText = (s) => s ? s.
18
18
  k,
19
19
  new Set(data[k].filter((d) => initialValue && initialValue.excludes[k].has(d))),
20
20
  ])),
21
- });
21
+ }), [initialValue, data]);
22
+ const filtersRef = (0, react_1.useRef)(initialFiltersValue);
22
23
  const [filters, setFilters] = (0, react_1.useState)(filtersRef.current);
23
24
  const [filterSearch, setFilterSearch] = (0, react_1.useState)("");
24
25
  const active = Object.keys(filters.includes).some((k) => filters.includes[k].size > 0) ||
@@ -1 +1 @@
1
- {"version":3,"file":"Filter.js","sourceRoot":"","sources":["../../src/components/Filter.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Tooltip, Position, Popover, Button, Icon } from \"@blueprintjs/core\";\nimport React, { useCallback, useRef, useState } from \"react\";\nimport fuzzy from \"fuzzy\";\n\nexport type Filters = {\n includes: Record<string, Set<string>>;\n excludes: Record<string, Set<string>>;\n};\n\nconst Filter = ({\n data,\n initialValue,\n onChange,\n renderButtonText = (s) =>\n s ? s.toString() : <i style={{ opacity: 0.5 }}>(Empty)</i>,\n includeHelpMessage = \"Only include these values\",\n excludeHelpMessage = \"Exclude these values\",\n small,\n}: {\n initialValue?: Filters;\n data: Record<string, string[]>;\n onChange: (filters: Filters) => void;\n renderButtonText?: (s: string, key: string) => React.ReactNode;\n includeHelpMessage?: string;\n excludeHelpMessage?: string;\n small?: boolean;\n}) => {\n const [isFilterOpen, setIsFilterOpen] = useState(false);\n const closeFilter = useCallback(() => {\n setIsFilterOpen(false);\n }, [setIsFilterOpen]);\n const filtersRef = useRef({\n includes: Object.fromEntries(\n Object.keys(data).map((k) => [\n k,\n new Set<string>(\n data[k].filter((d) => initialValue && initialValue.includes[k].has(d))\n ),\n ])\n ),\n excludes: Object.fromEntries(\n Object.keys(data).map((k) => [\n k,\n new Set<string>(\n data[k].filter((d) => initialValue && initialValue.excludes[k].has(d))\n ),\n ])\n ),\n });\n const [filters, setFilters] = useState(filtersRef.current);\n const [filterSearch, setFilterSearch] = useState(\"\");\n const active =\n Object.keys(filters.includes).some((k) => filters.includes[k].size > 0) ||\n Object.keys(filters.excludes).some((k) => filters.excludes[k].size > 0);\n return (\n <Tooltip content={\"Filters\"} position={Position.BOTTOM}>\n <Popover\n target={\n <Button\n icon={\n <Icon icon={\"filter\"} color={active ? \"#a82a2a\" : \"#5c7080\"} />\n }\n onClick={(e) => {\n e.stopPropagation();\n setIsFilterOpen(!isFilterOpen);\n }}\n className={`roamjs-filter ${active ? \"roamjs-filter-active\" : \"\"}`}\n minimal\n small={small}\n />\n }\n content={\n <div\n style={{ maxWidth: 600, maxHeight: 245, overflowY: \"scroll\" }}\n onClick={(e) => e.stopPropagation()}\n >\n <div\n style={{\n display: \"flex\",\n flexDirection: \"column\",\n width: 500,\n maxWidth: \"90vw\",\n transition: \"all 300ms ease-in 0s\",\n padding: 8,\n }}\n >\n <div className=\"flex-h-box\">\n <div\n style={{\n flex: \"1 1 100%\",\n paddingTop: 4,\n paddingBottom: 4,\n paddingLeft: 4,\n }}\n >\n <div>\n <strong>Includes</strong>\n <span style={{ marginLeft: 4, fontSize: 12 }}>\n Click to Add\n </span>\n <div\n style={{\n padding: \"8px 0px\",\n fontSize: \"0.8em\",\n color: \"rgb(167, 182, 194)\",\n }}\n >\n {Object.values(filters.includes).every(\n (v) => v.size === 0\n )\n ? includeHelpMessage\n : Object.entries(filters.includes).flatMap(\n ([key, col]) =>\n Array.from(col).map((n, i) => (\n <div\n style={{\n position: \"relative\",\n display: \"inline-block\",\n }}\n key={`${n.toString()}-${i}`}\n >\n <div>\n <button\n className=\"bp3-button\"\n style={{\n margin: 4,\n paddingRight: 4,\n cursor: \"pointer\",\n borderBottomColor: \"rgb(92, 112, 128)\",\n }}\n onClick={() => {\n filtersRef.current.includes[key].delete(\n n\n );\n const filters = {\n ...filtersRef.current,\n };\n setFilters(filters);\n onChange(filters);\n }}\n >\n {renderButtonText(n, key)}\n </button>\n </div>\n </div>\n ))\n )}\n </div>\n </div>\n <div style={{ paddingTop: 8 }} />\n </div>\n <div\n className=\"rm-line\"\n style={{ marginTop: 8, marginBottom: 8 }}\n />\n <div\n style={{\n flex: \"1 1 100%\",\n paddingTop: 4,\n paddingBottom: 4,\n paddingLeft: 8,\n }}\n >\n <div>\n <strong>Removes</strong>\n <span style={{ marginLeft: 4, fontSize: 12 }}>\n Shift-Click to Add\n </span>\n <div\n style={{\n padding: \"8px 0px\",\n fontSize: \"0.8em\",\n color: \"rgb(167, 182, 194)\",\n }}\n >\n {Object.values(filters.excludes).every(\n (v) => v.size === 0\n )\n ? excludeHelpMessage\n : Object.entries(filters.excludes).flatMap(\n ([key, col]) =>\n Array.from(col).map((n, i) => (\n <div\n style={{\n position: \"relative\",\n display: \"inline-block\",\n }}\n key={`${n.toString()}-${i}`}\n >\n <div>\n <button\n className=\"bp3-button\"\n style={{\n margin: 4,\n paddingRight: 4,\n cursor: \"pointer\",\n borderBottomColor: \"rgb(92, 112, 128)\",\n }}\n onClick={() => {\n filtersRef.current.excludes[key].delete(\n n\n );\n const filters = {\n ...filtersRef.current,\n };\n setFilters(filters);\n onChange(filters);\n }}\n >\n {renderButtonText(n, key)}\n </button>\n </div>\n </div>\n ))\n )}\n </div>\n </div>\n <div style={{ paddingTop: 8 }} />\n </div>\n </div>\n <div\n className=\"rm-line\"\n style={{ marginTop: 4, borderColor: \"rgb(41, 55, 66)\" }}\n />\n <input\n placeholder=\"Search References\"\n className=\"bp3-input bp3-minimal search-input\"\n style={{ margin: 8 }}\n value={filterSearch}\n onChange={(e) => setFilterSearch(e.target.value)}\n />\n <div className=\"flex-h-box\">\n {Object.keys(data).map((k, i, all) => (\n <React.Fragment key={k}>\n <div\n style={{\n flex: \"1 1 100%\",\n paddingTop: 4,\n paddingBottom: 4,\n paddingLeft: 4,\n }}\n >\n {(filterSearch\n ? fuzzy\n .filter(filterSearch, data[k])\n .map((s) => s.string)\n : data[k]\n )\n .filter(\n (n) =>\n !filters.includes[k].has(n) &&\n !filters.excludes[k].has(n)\n )\n .map((n, i) => (\n <div\n style={{\n position: \"relative\",\n display: \"inline-block\",\n }}\n key={`${n.toString()}-${i}`}\n >\n <div>\n <button\n className=\"bp3-button\"\n style={{\n margin: 4,\n paddingRight: 4,\n cursor: \"pointer\",\n borderBottomColor: \"rgb(92, 112, 128)\",\n }}\n onClick={(e) => {\n if (e.shiftKey)\n filtersRef.current.excludes[k].add(n);\n else filtersRef.current.includes[k].add(n);\n const filters = { ...filtersRef.current };\n setFilters(filters);\n onChange(filters);\n }}\n >\n {renderButtonText(n, k)}\n </button>\n </div>\n </div>\n ))}\n </div>\n {i < all.length - 1 && (\n <div\n className=\"rm-line\"\n style={{ marginTop: 8, marginBottom: 8 }}\n />\n )}\n </React.Fragment>\n ))}\n </div>\n </div>\n </div>\n }\n onClose={closeFilter}\n isOpen={isFilterOpen}\n />\n </Tooltip>\n );\n};\n\nexport default Filter;\n"]}
1
+ {"version":3,"file":"Filter.js","sourceRoot":"","sources":["../../src/components/Filter.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Tooltip, Position, Popover, Button, Icon } from \"@blueprintjs/core\";\nimport React, { useCallback, useRef, useState, useMemo } from \"react\";\nimport fuzzy from \"fuzzy\";\n\nexport type Filters = {\n includes: Record<string, Set<string>>;\n excludes: Record<string, Set<string>>;\n};\n\nconst Filter = ({\n data,\n initialValue,\n onChange,\n renderButtonText = (s) =>\n s ? s.toString() : <i style={{ opacity: 0.5 }}>(Empty)</i>,\n includeHelpMessage = \"Only include these values\",\n excludeHelpMessage = \"Exclude these values\",\n small,\n}: {\n initialValue?: Filters;\n data: Record<string, string[]>;\n onChange: (filters: Filters) => void;\n renderButtonText?: (s: string, key: string) => React.ReactNode;\n includeHelpMessage?: string;\n excludeHelpMessage?: string;\n small?: boolean;\n}) => {\n const [isFilterOpen, setIsFilterOpen] = useState(false);\n const closeFilter = useCallback(() => {\n setIsFilterOpen(false);\n }, [setIsFilterOpen]);\n const initialFiltersValue = useMemo(\n () => ({\n includes: Object.fromEntries(\n Object.keys(data).map((k) => [\n k,\n new Set<string>(\n data[k].filter(\n (d) => initialValue && initialValue.includes[k].has(d)\n )\n ),\n ])\n ),\n excludes: Object.fromEntries(\n Object.keys(data).map((k) => [\n k,\n new Set<string>(\n data[k].filter(\n (d) => initialValue && initialValue.excludes[k].has(d)\n )\n ),\n ])\n ),\n }),\n [initialValue, data]\n );\n const filtersRef = useRef(initialFiltersValue);\n const [filters, setFilters] = useState(filtersRef.current);\n const [filterSearch, setFilterSearch] = useState(\"\");\n const active =\n Object.keys(filters.includes).some((k) => filters.includes[k].size > 0) ||\n Object.keys(filters.excludes).some((k) => filters.excludes[k].size > 0);\n return (\n <Tooltip content={\"Filters\"} position={Position.BOTTOM}>\n <Popover\n target={\n <Button\n icon={\n <Icon icon={\"filter\"} color={active ? \"#a82a2a\" : \"#5c7080\"} />\n }\n onClick={(e) => {\n e.stopPropagation();\n setIsFilterOpen(!isFilterOpen);\n }}\n className={`roamjs-filter ${active ? \"roamjs-filter-active\" : \"\"}`}\n minimal\n small={small}\n />\n }\n content={\n <div\n style={{ maxWidth: 600, maxHeight: 245, overflowY: \"scroll\" }}\n onClick={(e) => e.stopPropagation()}\n >\n <div\n style={{\n display: \"flex\",\n flexDirection: \"column\",\n width: 500,\n maxWidth: \"90vw\",\n transition: \"all 300ms ease-in 0s\",\n padding: 8,\n }}\n >\n <div className=\"flex-h-box\">\n <div\n style={{\n flex: \"1 1 100%\",\n paddingTop: 4,\n paddingBottom: 4,\n paddingLeft: 4,\n }}\n >\n <div>\n <strong>Includes</strong>\n <span style={{ marginLeft: 4, fontSize: 12 }}>\n Click to Add\n </span>\n <div\n style={{\n padding: \"8px 0px\",\n fontSize: \"0.8em\",\n color: \"rgb(167, 182, 194)\",\n }}\n >\n {Object.values(filters.includes).every(\n (v) => v.size === 0\n )\n ? includeHelpMessage\n : Object.entries(filters.includes).flatMap(\n ([key, col]) =>\n Array.from(col).map((n, i) => (\n <div\n style={{\n position: \"relative\",\n display: \"inline-block\",\n }}\n key={`${n.toString()}-${i}`}\n >\n <div>\n <button\n className=\"bp3-button\"\n style={{\n margin: 4,\n paddingRight: 4,\n cursor: \"pointer\",\n borderBottomColor: \"rgb(92, 112, 128)\",\n }}\n onClick={() => {\n filtersRef.current.includes[key].delete(\n n\n );\n const filters = {\n ...filtersRef.current,\n };\n setFilters(filters);\n onChange(filters);\n }}\n >\n {renderButtonText(n, key)}\n </button>\n </div>\n </div>\n ))\n )}\n </div>\n </div>\n <div style={{ paddingTop: 8 }} />\n </div>\n <div\n className=\"rm-line\"\n style={{ marginTop: 8, marginBottom: 8 }}\n />\n <div\n style={{\n flex: \"1 1 100%\",\n paddingTop: 4,\n paddingBottom: 4,\n paddingLeft: 8,\n }}\n >\n <div>\n <strong>Removes</strong>\n <span style={{ marginLeft: 4, fontSize: 12 }}>\n Shift-Click to Add\n </span>\n <div\n style={{\n padding: \"8px 0px\",\n fontSize: \"0.8em\",\n color: \"rgb(167, 182, 194)\",\n }}\n >\n {Object.values(filters.excludes).every(\n (v) => v.size === 0\n )\n ? excludeHelpMessage\n : Object.entries(filters.excludes).flatMap(\n ([key, col]) =>\n Array.from(col).map((n, i) => (\n <div\n style={{\n position: \"relative\",\n display: \"inline-block\",\n }}\n key={`${n.toString()}-${i}`}\n >\n <div>\n <button\n className=\"bp3-button\"\n style={{\n margin: 4,\n paddingRight: 4,\n cursor: \"pointer\",\n borderBottomColor: \"rgb(92, 112, 128)\",\n }}\n onClick={() => {\n filtersRef.current.excludes[key].delete(\n n\n );\n const filters = {\n ...filtersRef.current,\n };\n setFilters(filters);\n onChange(filters);\n }}\n >\n {renderButtonText(n, key)}\n </button>\n </div>\n </div>\n ))\n )}\n </div>\n </div>\n <div style={{ paddingTop: 8 }} />\n </div>\n </div>\n <div\n className=\"rm-line\"\n style={{ marginTop: 4, borderColor: \"rgb(41, 55, 66)\" }}\n />\n <input\n placeholder=\"Search References\"\n className=\"bp3-input bp3-minimal search-input\"\n style={{ margin: 8 }}\n value={filterSearch}\n onChange={(e) => setFilterSearch(e.target.value)}\n />\n <div className=\"flex-h-box\">\n {Object.keys(data).map((k, i, all) => (\n <React.Fragment key={k}>\n <div\n style={{\n flex: \"1 1 100%\",\n paddingTop: 4,\n paddingBottom: 4,\n paddingLeft: 4,\n }}\n >\n {(filterSearch\n ? fuzzy\n .filter(filterSearch, data[k])\n .map((s) => s.string)\n : data[k]\n )\n .filter(\n (n) =>\n !filters.includes[k].has(n) &&\n !filters.excludes[k].has(n)\n )\n .map((n, i) => (\n <div\n style={{\n position: \"relative\",\n display: \"inline-block\",\n }}\n key={`${n.toString()}-${i}`}\n >\n <div>\n <button\n className=\"bp3-button\"\n style={{\n margin: 4,\n paddingRight: 4,\n cursor: \"pointer\",\n borderBottomColor: \"rgb(92, 112, 128)\",\n }}\n onClick={(e) => {\n if (e.shiftKey)\n filtersRef.current.excludes[k].add(n);\n else filtersRef.current.includes[k].add(n);\n const filters = { ...filtersRef.current };\n setFilters(filters);\n onChange(filters);\n }}\n >\n {renderButtonText(n, k)}\n </button>\n </div>\n </div>\n ))}\n </div>\n {i < all.length - 1 && (\n <div\n className=\"rm-line\"\n style={{ marginTop: 8, marginBottom: 8 }}\n />\n )}\n </React.Fragment>\n ))}\n </div>\n </div>\n </div>\n }\n onClose={closeFilter}\n isOpen={isFilterOpen}\n />\n </Tooltip>\n );\n};\n\nexport default Filter;\n"]}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "roamjs-components",
3
3
  "description": "Expansive toolset, utilities, & components for developing RoamJS extensions.",
4
- "version": "0.79.10",
4
+ "version": "0.79.11",
5
5
  "main": "index.js",
6
6
  "types": "index.d.ts",
7
7
  "scripts": {
@@ -1,2 +1,2 @@
1
- declare const extractRef: (ref: string) => string;
1
+ declare const extractRef: (ref?: string) => string;
2
2
  export default extractRef;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const constants_1 = require("../dom/constants");
4
- const extractRef = (ref) => {
4
+ const extractRef = (ref = "") => {
5
5
  var _a;
6
6
  return ((_a = new RegExp(`(?:\\(\\()?${constants_1.BLOCK_REF_REGEX.source.slice(4, -4)}(?:\\)\\))?`).exec(ref)) === null || _a === void 0 ? void 0 : _a[1]) || ref;
7
7
  };
@@ -1 +1 @@
1
- {"version":3,"file":"extractRef.js","sourceRoot":"","sources":["../../src/util/extractRef.ts"],"names":[],"mappings":";;AAAA,gDAAmD;AAEnD,MAAM,UAAU,GAAG,CAAC,GAAW,EAAU,EAAE;;IACzC,OAAA,CAAA,MAAA,IAAI,MAAM,CACR,cAAc,2BAAe,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,CAC/D,CAAC,IAAI,CAAC,GAAG,CAAC,0CAAG,CAAC,CAAC,KAAI,GAAG,CAAA;CAAA,CAAC;AAE1B,kBAAe,UAAU,CAAC","sourcesContent":["import { BLOCK_REF_REGEX } from \"../dom/constants\";\n\nconst extractRef = (ref: string): string =>\n new RegExp(\n `(?:\\\\(\\\\()?${BLOCK_REF_REGEX.source.slice(4, -4)}(?:\\\\)\\\\))?`\n ).exec(ref)?.[1] || ref;\n\nexport default extractRef;\n"]}
1
+ {"version":3,"file":"extractRef.js","sourceRoot":"","sources":["../../src/util/extractRef.ts"],"names":[],"mappings":";;AAAA,gDAAmD;AAEnD,MAAM,UAAU,GAAG,CAAC,GAAG,GAAG,EAAE,EAAU,EAAE;;IACtC,OAAA,CAAA,MAAA,IAAI,MAAM,CACR,cAAc,2BAAe,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,CAC/D,CAAC,IAAI,CAAC,GAAG,CAAC,0CAAG,CAAC,CAAC,KAAI,GAAG,CAAA;CAAA,CAAC;AAE1B,kBAAe,UAAU,CAAC","sourcesContent":["import { BLOCK_REF_REGEX } from \"../dom/constants\";\n\nconst extractRef = (ref = \"\"): string =>\n new RegExp(\n `(?:\\\\(\\\\()?${BLOCK_REF_REGEX.source.slice(4, -4)}(?:\\\\)\\\\))?`\n ).exec(ref)?.[1] || ref;\n\nexport default extractRef;\n"]}