- upgrade react to react 17.0.2
- upgrade storybook to 6.5.9
- remove storybook read me
- update the config for storybook and babel to match the latest storybook version
- remove pdfjss
- Add
errorObjectToStringfunction that returns object as a string
- Fix
react-pdf-jslibrary from failing to import when using NPM to install - Add
package-lock.jsonfor NPM - Update PeerDependencies to allow any latest version of React 16 to be used
- Add
Ifcomponent that conditionally renders children based onconditionprop truthyness - Add
SimpleErrorBoundarycomponent that catches thrown errors in child components - Add
removeKeyFromObjectfunction that simply removes a key from a given object - returning the new object - Updated the
hasValuefunction that now correctly supportsArrayobjects - Fixed a warning from
SimpleItemabout thetextproperty being passed invalid types
- Add
SimpleRowComponentproperty toSimpleList->Bodyenabling a Custom Row renderer to be passed SimpleItemnow uses theflexproperty by default from the passed inheadingsconfigButtonOrDivnow generates thedata-qe-idfor both clickable and non-clickable modes- Removed the className
disable-hoverfromButtonOrDivas this name is too explicit and the behaviour is not included with the component
- BREAKING: Function signature for SimpleList->headings->
customFormatter/customRendererchanged to(itemValue, rowData, columnName)- When Upgrading: Be sure to update all your usages of
customFormatter/customRendererto the new arguments
- When Upgrading: Be sure to update all your usages of
- Export
DivOrButtonComponent
- Add
usePreviousfunction hook - more info
- Fix: Component build files are now available in NPM repo
- now we can import a component via code
import ActionBar from '@bonlineza/b-lib/ActionBar
- now we can import a component via code
- Fix:
PredefinedFilternow correctly hides when clicking outside of the component
- Fix: Added missing
initialize.jsfromDateRangePickerto thenpm tarball
- Added missing
initialize.jsfromDateRangePickerto thenpm tarball - Moved
react-dom-factoriesback to the normal package dependencies
- Added missing
init.jsandfunctions.jsto thefileslist in thepackage.json
- Added new
Functionsto bundle: {debounced,hasValue,isObjectEmpty,moveItemInArray,snakeCaseToTitleCase,toTitleCase,replaceUnderscoreWithSpace,removeWhiteSpaces, } - Greatly improved Functions documentation according to JSDoc spec
- BREAKING:
Functionsare now bundled separately and can be imported via:import { parseDate } from @bonlineza/b-lib/functions - Moved Documentation generation modules to
devDependencies
- Added HorizontalProgressBar Component
- Updated line breaks in some Readmes
- Re-generated Storybook build
- Added
Readmestorybook addon - Added Class Descriptions doc blocks in Readmes
- Moved
CHANGELOGto own File
- Added Storybook static build to GH-Pages
- Added Documentation Links in GH-Pages
- Fixed a few incorrect type definitions causing test warnings
- Added tests and stories for SimpleSelect
- Fixed broken reference in ToolTip
- Added generated Markdown Documentation for each Component
- Added GitHub Pages Landing Page to
docs/index.md
- BREAKING:
interpretErrorMessagefunction has been internally replaced in PageReady, as a prop - ensure you pass in your project specific interpreter aserrorMessageInterpreterwhen updating to this version - Added prop
errorMessageInterpretertoPageReady - Added Doc blocks to all function files in
src/util - Added exports for
functions: {constrainSearch,sanitizeInputForConstraints,parseDate,getMoment,flattenObject,getTokenFromStorage,hasOwn,smoothScrollTo,scrollToSelector,stringOccurances,validateEmail,validatePhone,validateWebsite, } 09:17
- Documentation
- Storybook
- CHANGELOG
- React Components and base styles
- JS/React Testing suite
- Rollup build system
- ActionBar
- AsideSlide
- ButtonGroup
- CategoryList
- DocumentUploader
- DocumentUploaderProps
- DropOptions
- EllipsisLoader
- Filter
- MobileSideMenu
- Overlay
- PageReady
- Paginator
- SimplePopup
- SwitchView
- ToolTip
- WYSIWYG
- SelectRows
- UntilReady
- MultiLineSelect
- SimpleList
- Body
- ButtonOrDiv
- Header
- Sections
- SimpleItem
- SimpleListContext
// via full bundle - leads to bigger app sizes
import { ActionBar } from '@bonlineza/b-lib';
// or with tree shaking for slimmer app buundle sizes
import ActionBar from '@bonlineza/b-lib/ActionBar';- constrainSearch
- debounced
- flattenObject
- getMoment
- getTokenFromStorage
- hasOwn
- hasValue
- isObjectEmpty
- moveItemInArray
- parseDate
- removeWhiteSpaces
- replaceUnderscoreWithSpace,
- sanitizeInputForConstraints
- scrollToSelector
- smoothScrollTo,
- snakeCaseTitleCase
- stringOccurances
- usePrevious (Hook)
- toTitleCase
- validateEmail
- validatePhone
- validateWebsite
- errorObjectToString
yarn- install npm dependenciesyarn start- Open Storybookyarn docs- run both lint and testsyarn build- generate built js filesyarn build --watch- build and watch filesyarn test- run both lint and testsyarn lint- run linter onlyyarn jest --watch- watch tests (reccomended)
- define the Maps API key and run storybook using this command:
STORYBOOK_MAPS_API_KEY=[your long api key] yarn start- see: (https://storybook.js.org/docs/configurations/env-vars/) for more info
- Checkout your Fork of this Repo
- Run this in the fork root folder:
yarn link - Run this in the root folder of the project you would like to use this module:
yarn link @bonlineza/b-lib
You will now be able to import this module like any normal npm module like so:
import { SimplePopup } from '@bonlineza/b-lib';- after testing is complete and your changes have been merged to master in this Library
- Your personal account on
NPMJS.com - Your Account is added to the
Bonlineza Org- see: https://www.npmjs.com/org/bonlineza
- checkout/pull latest UPSTREAM
masterand run... yarn testyarn build- Update your
Package.jsonversion info - Update you
CHANGELOG.MDandREADME.MDfile with relevant info for your new version yarn loginnpm publish --dry-run- to confirm that your files will be packaged into the npm reponpm publish- commit the published files to the npm repoyarn docs- generates all documentationyarn build:storybook- ensure static stybook site is uptodateCommitandTAGthis commit with the Tag name the same as the package version number to UPSTREAMmaster
Node will resolve to the nearest /node_modules containing the package we are importing.
So to test versions against existing projects - we can merely create a node_modules folder as a parent of our
current folder and clone the version that we would like to test.
First a thing or two about the Node Resolver-
When we write
import foo from 'bar';node will try to resolve this by appending /node_modules to the parent directory and will look for the bar folder.
If it is not there, node will search the next parent, and the next, and the next, until it finds a node_modules/bar folder.
webpack aliases and relative paths work a bit different, this behaviour is only for absolute and non-aliased imports
We can use this design to "override" certain packages.
So if our project has a depedancy on "b-lib": "1.0.3" and we would like to test out b-lib@2.0.0 we can simply to the following-
# in bash
cd /path/to/project/resources/assets/js
mkdir node_modules
cd node_modules
git clone git@github.com:bonlineza/b-lib --branch 2.0.0Or if we're working on a new feature we'd like to implement in a project and we'd like to take it for a spin for making the pull request
to the b-lib we can run...
# in bash
cd /path/to/project/resources/assets/js
mkdir node_modules
cd node_modules
git clone git@github.com:{author}/b-lib --branch {branch-name}