UNPKG

@float-toolkit/react

Version:

A React hook wrapper for Float Toolkit

232 lines (226 loc) 6.52 kB
"use strict"; /** * 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