@float-toolkit/react
Version:
A React hook wrapper for Float Toolkit
232 lines (226 loc) • 6.52 kB
JavaScript
;
/**
* Float Toolkit for React
* NPM package by LuisFerLCC
* @float-toolkit/react
*
* https://github.com/float-toolkit/react/blob/master/LICENSE
*/
var __create = Object.create;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __getProtoOf = Object.getPrototypeOf;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
mod
));
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
// src/index.ts
var src_exports = {};
__export(src_exports, {
ReactFT: () => ReactFT,
default: () => src_default
});
module.exports = __toCommonJS(src_exports);
var import_core = __toESM(require("@float-toolkit/core"));
var import_react = require("react");
// package.json
var package_default = {
name: "@float-toolkit/react",
version: "2.0.4",
description: "A React hook wrapper for Float Toolkit",
main: "./dist/index.js",
module: "./dist/index.mjs",
types: "./typings/index.d.ts",
exports: {
".": {
require: "./dist/index.js",
import: "./dist/index.mjs",
types: "./typings/index.d.ts"
}
},
scripts: {
build: "rm -rf dist typings && npm test && node scripts/esbuild.mjs",
test: "vitest run",
"test:watch": "npm run pretest && vitest --coverage=false",
pretest: "rm -rf coverage && npm run format && tsc --noEmit",
format: "prettier --write . && eslint --ext .js,.ts,.tsx --fix ."
},
repository: {
type: "git",
url: "git://github.com/float-toolkit/react.git"
},
keywords: [
"float",
"floating-point",
"number",
"round",
"math",
"react"
],
author: "LuisFerLCC",
license: "Apache-2.0",
bugs: {
url: "https://github.com/float-toolkit/react/issues"
},
homepage: "https://github.com/float-toolkit/react#readme",
peerDependencies: {
react: "^18.2.0"
},
devDependencies: {
"@testing-library/react": "^13.4.0",
"@types/eslint": "^8.4.10",
"@types/react": "^18.0.26",
"@typescript-eslint/eslint-plugin": "^5.48.0",
"@typescript-eslint/parser": "^5.48.0",
"@vitejs/plugin-react": "^3.0.1",
"@vitest/coverage-c8": "^0.25.8",
"@vitest/ui": "^0.25.8",
c8: "^7.12.0",
esbuild: "^0.14.54",
"esbuild-plugin-d-ts-path-alias": "^2.0.0",
eslint: "^8.31.0",
"eslint-config-google": "^0.14.0",
"eslint-config-prettier": "^8.6.0",
"eslint-plugin-import": "^2.26.0",
"eslint-plugin-prettier": "^4.2.1",
"eslint-plugin-react": "^7.31.11",
"eslint-plugin-react-hooks": "^4.6.0",
jsdom: "^20.0.3",
prettier: "^2.8.1",
tslib: "^2.4.1",
typescript: "<4.8",
vitest: "^0.25.8"
},
dependencies: {
"@float-toolkit/core": "^2.1.0"
}
};
// src/versionNumbers.ts
var versionNumbers = package_default.version.split(".");
var versionNumbers_default = versionNumbers;
// src/index.ts
var ReactFT;
((ReactFT2) => {
ReactFT2.CORE_VERSION = import_core.default.VERSION;
ReactFT2.VERSION = {
get full() {
return versionNumbers_default.join(".");
},
get major() {
return versionNumbers_default[0];
},
get minor() {
return versionNumbers_default[1];
},
get patch() {
return versionNumbers_default[2];
}
};
})(ReactFT || (ReactFT = {}));
function useFloatToolkit(defaultPrecision, options) {
const [output, setOutput] = (0, import_react.useState)(0);
(0, import_react.useDebugValue)(output);
const ft = (0, import_react.useMemo)(() => new import_core.default(), []);
(0, import_react.useEffect)(() => {
ft.defaultPrecision = defaultPrecision != null ? defaultPrecision : ft.defaultPrecision;
}, [ft, defaultPrecision]);
(0, import_react.useEffect)(() => {
ft.resetOptions(options != null ? options : {});
}, [ft, options]);
const add = (0, import_react.useCallback)(
(numbers, precision) => {
const result = ft.add(numbers, precision);
setOutput(result);
return result;
},
[ft]
);
const divide = (0, import_react.useCallback)(
(numbers, precision) => {
const result = ft.divide(numbers, precision);
setOutput(result);
return result;
},
[ft]
);
const multiply = (0, import_react.useCallback)(
(numbers, precision) => {
const result = ft.multiply(numbers, precision);
setOutput(result);
return result;
},
[ft]
);
const _methodResetOutput = (0, import_react.useCallback)(() => {
setOutput(0);
}, []);
const resetOptions = (0, import_react.useCallback)(
(options2, resetOutput) => {
if (resetOutput)
_methodResetOutput();
return ft.resetOptions(options2);
},
[ft, _methodResetOutput]
);
const round = (0, import_react.useCallback)(
(n, precision) => {
const result = ft.round(n, precision);
setOutput(result);
return result;
},
[ft]
);
const setOptions = (0, import_react.useCallback)(
(options2, resetOutput) => {
if (resetOutput)
_methodResetOutput();
return ft.resetOptions(options2);
},
[ft, _methodResetOutput]
);
const subtract = (0, import_react.useCallback)(
(numbers, precision) => {
const result = ft.subtract(numbers, precision);
setOutput(result);
return result;
},
[ft]
);
return {
get defaultPrecision() {
return ft.defaultPrecision;
},
set defaultPrecision(newPrecision) {
ft.defaultPrecision = newPrecision;
},
get options() {
return ft.options;
},
add,
divide,
multiply,
resetOptions,
round,
setOptions,
subtract,
output,
resetOutput: _methodResetOutput
};
}
var src_default = useFloatToolkit;
//# sourceMappingURL=index.js.map