* add new withSearchedProducts hoc
includes tests
* convert to functional component and wrap with new hoc
* remove dependency between tests
* Fix typo with PropTypes bool
Co-Authored-By: Albert Juhé Lluveras <contact@albertjuhe.com>
* remove unnecessary specific import
* fix bug introduced on refactor for selected prop recalc
* fix tests that were testing the wrong expectation
- also improved mocks a bit so they are a bit more realistic for the purpose of the test coverage.
* remove unnecessary Fragment
* tweak propType definitions and remove defaults
- this keeps argument expectations in sync with wrapped component and reduces chance of unexpected behaviour if `SearchListControl` logic changes.
* remove lodash.find dependency.
* Reset 'loaded' state in Featured Product and Category blocks
* Minor code improvements
* Remove state from ApiErrorPlaceholder
* Move getProduct to a HOC
* Undo changes in Featured Category
* Update proptypes
* Move error messages to <ApiErrorPlaceholder>
* Reorder props
* Move lifecycle methods to HOC
* Make <FeaturedProduct> component presentational
* Move withProduct to js/hocs
* Create NAMESPACE constant in utils
* Create getProduct util function
* Set 'error' and 'product' state to null instead of 'false' when they have no value
* Prevent getImageSrcFromProduct and getImageIdFromProduct returning an error when 'product' is not an object
* Add HOC tests
* Use 'toBe' and 'toBeNull' jest expect methods instead of 'toEqual' when possible
* Export HOCs from index
* Move mock implementation to beforeEach
* unqiueID helper to replace compose
* move get categories function to own file
* fix svg styling
* remove lodash dependency
* Refactor block/edit to use less dependencies
* Babel config to skip wp.element
* update comments
* Update assets/js/blocks/product-categories/frontend.js
ie11 compatible for each on nodelist
Co-Authored-By: Albert Juhé Lluveras <contact@albertjuhe.com>
* move id generation to constructor
* simplify webpack config
* Remove components CSS dependency
* use HOC for component ID
* Correct case on ComponentId
* Introduced WGPB_Extend_Core class to modify shortcodes and API requests of core
* Require the new class
* WC_REST_Blocks_Products_Controller_V2 to override the wc-blocks API to support new tags properties
* Register new products by tag block type
* Modify utils to support tags and tag_operators
* Add ProductTagControl to handle tag searching
* Add the actual products by tag block
* Set limitTags to 100
* Create Package class and use in main plugin file
* Move and refactor library class - split asset methods into new Assets class.
* Add jetpack autoloader dependency
* fix tests
* Update from master
* AbstractBlock class for general block registration
* remove test autoloader so tests do not break
* Create AbstractProductGrid
* FeaturedProduct
* HandpickedProducts
* ProductBestSellers
* ProductCategory
* ProductNew
* ProductOnSale
* ProductTopRated
* ProductsByAttribute
* Remove old base and render functions
* Allow non-dynamic blocks and register category block
* Fix products-by-attribute due to wrong naming
* Remove no dev
* test phpunit dir
* Update testing framework
* Update with new abstract classes and build in API
* Undo edit to attribute block
* Move edit mode
* No need to support shortcodes
* correct linting errors
* Update tests/bootstrap.php
Co-Authored-By: Albert Juhé Lluveras <aljullu@gmail.com>
* Update code comment to make more sense.
* Correct test package
* docblock
* Fix cancel button class
* Fix classname schema
* Set loading state so spinner is shown
* Add placeholder element when no tags are selected
* No tags placeholder
* Update rest endpoints
* Duplicate SearchListControl into ProductSearchListControl component
* Undo control copy; it's not needed
* Variation search + counts showing
* Dropdown styling (also fixed SVG icon markup in SCSS file)
* Style the variation count
* Handle variation display on frontend and backend
* Fixed selection callbacks hooray
* Extend v3 api to return name. Use v3 API for featured product block.
* Switch description based on type
* Fix isSelected check
* Define a11yProps
* Variations rest endpoint
* Remove isTertiary
* REST endpoints with variation handling
* Handle variation data frontend
* Handle variation data in editor
* renamed description schema
* tweak variation display
* Update assets/js/components/product-control/style.scss
Co-Authored-By: Albert Juhé Lluveras <contact@albertjuhe.com>
* Flip icon direction
* Use classnames
* fix isSingle warning
* standards
* Only try to load variations if product has them
* Create Package class and use in main plugin file
* Move and refactor library class - split asset methods into new Assets class.
* Add jetpack autoloader dependency
* fix tests
* Update from master
* AbstractBlock class for general block registration
* remove test autoloader so tests do not break
* Create AbstractProductGrid
* FeaturedProduct
* HandpickedProducts
* ProductBestSellers
* ProductCategory
* ProductNew
* ProductOnSale
* ProductTopRated
* ProductsByAttribute
* Remove old base and render functions
* Allow non-dynamic blocks and register category block
* Fix products-by-attribute due to wrong naming
* Remove no dev
* test phpunit dir
* Update testing framework
* Update package name
* Classname changes from master
* get_schema_string/classname from master
* Update tests/bootstrap.php
Co-Authored-By: Albert Juhé Lluveras <aljullu@gmail.com>
* Update src/BlockTypes/AbstractProductGrid.php
Co-Authored-By: Albert Juhé Lluveras <aljullu@gmail.com>
* Create Package class and use in main plugin file
* Move and refactor library class - split asset methods into new Assets class.
* Add jetpack autoloader dependency
* fix tests
* Update from master
* Update testing framework
* Update package name
* Classname changes from master
* Indent
* Add alignButtons handling and styling to grid-base
* Add ToggleControl and alignButtons attribute to handpicked products
* Pass alignButtons to the blocks with sharedattributes
* Add alignButtons to shared-attributes.js
* Add alignButtons to products-by-attributes block
* Add alignButtons to attributes on the PHP side
* Add alignButtons control to grid-layout-control
* Remove alignButtons from deprecated definitions
* has-aligned-buttons
* Update comment
* package lock
* Product Categories List: add a placeholder on save
This is saved to the database so that we have a placeholder view while waiting for the categories component to render.
* Use `classList.remove` for better readability
Co-Authored-By: Albert Juhé Lluveras <aljullu@gmail.com>
* Add the hierarchy display to the dropdown
* Add navigation for when a category is selected in the dropdown
* Use forEach from lodash for ie11 compat
* Switch to a button-click navigation pattern for better keyboard support
* Try the hidden attribute on option
* Add `isPreview` prop to be used when in editor preview
* Add product category link to the categories object
* Add the link to the `a` if we're not in the preview mode
* Add initial work for Product Categories List block
* Add empty category toggle
* Add option to show list as a dropdown
* Fix console warnings
* Only show proptypes linter warning if the component declares proptypes
* Add frontend script to render the product categories
* Split wcSettings & wc_product_block_data globals so that the later can be used from the frontend
* Remove wp dependencies, these are added by the webpack script now
* Capture all "woo packages" into a separate script chunk
These require `wcSettings`, which can't be available on the frontend - but we do need vendors on the frontend.
* Rewrite component into a function
* Fix validation error on editor reload
* Use the `name` prop in place of writing out the string
* Pull out `orderby` schema into reusable function
* Correct version tag
* Extract some more schema property defs into shared functions
* Move the `print_script_settings` function so the schema-related functions follow the block registration
* Set all the schema functions to be `protected`
* Remove version tags from docs
* Fix default rows fallback value
* Move the contentVisibility schema into a separate function
This attribute is common even amongst blocks that don’t use shareAttributes, so we should make it reusable
* Add dynamic rendering + SSR to Hand-picked Products block
* Add block deprecation
* Update the posts_per_page to include all selected products
* remove php insertion of block category
* Add an SVG icon for the woo logo
* Add block-category.js to import into blocks
This creates the category icon complete with a Woo SVG icon
* Import block-category to all blocks that use it
* Style woocommerce blocks in woo purple
* Lint error
* fillRule case
* Update propTypes
* Use foreground prop instead of css
* Convert Woo Logo to ICON type component
* Add shared blocks.js to house the category code
* Calculate width from height
* Add missing escape
* Revise product structure and introduce woocommerce_blocks_product_grid_item_html filter
* Add missing block-button/price styles
* Add a themename body class to allow per-theme styling
* Add WC style dependencies so block styles are loaded last
* Styles with greater specificicity, for 2019
* Default theme styling
* SF styles
* Ensure dependencies exist
* Split sale badge HTML to allow it to be moved more easily
* Load stylesheet via WooCommerce filters to ensure they load later than core styles
* Make structure in the editor match the product lists on frontend so styles are inherited
* Remove quotes around single fontnames (linting rules)
* Ensure there is spacing between blocks
* Use parent theme name in body class
* Fix column alignment in editor by removing inline max width
* Put back block styles
* Started adding shared styles
* Update default styles/add missing shared styles
* lint errors
* fix indent
* No longer a need for shared since we're loading style.css in the editor too
* Update tests
* Add grid block base class to handle rendering all grid blocks
Using code from the shortcode handler to create the query, subclass into newest product to show use
* Update preview content to match rendering from the new grid block handler
* Fix the categories query builder
* Update order of rating/price
* Remove center alignment
* Extract rating & button into separate functions
* Wrap the content in a link
* Add the current class names for better theme support
* Fix some styling in editor preview & frontend
* Add back the deprecated cols support for existing blocks
* Add multiple-rows class, style tweaks
* Switch Newest Products to dynamic rendering, deprecate existing shortcode method
* Add “On Sale” flag
* Switch “On Sale Products” to dynamic rendering
* Fix reusable block preview
* Add correct classes to On Sale Products
* Remove dynamic blocks from CSS hidden content rules
Content is not output to browser now, so we don’t need to hide it
* Fix undefined parameters
* Fix attributes for on sale
* Add deprecation comment, use more descriptive function name
* Addressing review feedback
* Update test: classnames have changed, image now wrapped in div
* Disable HTML editing for dynamic blocks
* Moved rendering logic into block library
* Try using ServerSideRender component for preview
* Define the schema for contentVisibility
This ensures the API correctly uses boolean instead of “true”/“false” strings
* Move the star rating CSS to the general grid-blocks section
* Remove the list styling, which is added back by core GB styles
* Fix stylelint issues
* Add grid block base class to handle rendering all grid blocks
Using code from the shortcode handler to create the query, subclass into newest product to show use
* Update preview content to match rendering from the new grid block handler
* Fix the categories query builder
* Update order of rating/price
* Remove center alignment
* Extract rating & button into separate functions
* Wrap the content in a link
* Add the current class names for better theme support
* Fix some styling in editor preview & frontend
* Add back the deprecated cols support for existing blocks
* Add multiple-rows class, style tweaks
* Switch Newest Products to dynamic rendering, deprecate existing shortcode method
* Add “On Sale” flag
* Switch “On Sale Products” to dynamic rendering
* Fix reusable block preview
* Add correct classes to On Sale Products
* Remove dynamic blocks from CSS hidden content rules
Content is not output to browser now, so we don’t need to hide it
* Fix undefined parameters
* Fix attributes for on sale
* Add deprecation comment, use more descriptive function name
* Addressing review feedback
* Update test: classnames have changed, image now wrapped in div
* Disable HTML editing for dynamic blocks
* Moved rendering logic into block library
* Update HTML rendering for products and remove core template functions
* Update styling
* Put the wp block class back
* Remove style import
* Move container classes to div not the ul
* Remove visibility classes
* Avoid rending non-visible items
* Revert style additons for visbility
* Fix CSS now that class names have shifted
* Add grid block base class to handle rendering all grid blocks
Using code from the shortcode handler to create the query, subclass into newest product to show use
* Update preview content to match rendering from the new grid block handler
* Fix the categories query builder
* Update order of rating/price
* Remove center alignment
* Extract rating & button into separate functions
* Wrap the content in a link
* Add the current class names for better theme support
* Fix some styling in editor preview & frontend
* Add back the deprecated cols support for existing blocks
* Add multiple-rows class, style tweaks
* Switch Newest Products to dynamic rendering, deprecate existing shortcode method
* Add “On Sale” flag
* Switch “On Sale Products” to dynamic rendering
* Fix reusable block preview
* Add correct classes to On Sale Products
* Remove dynamic blocks from CSS hidden content rules
Content is not output to browser now, so we don’t need to hide it
* Fix undefined parameters
* Fix attributes for on sale
* Add deprecation comment, use more descriptive function name
* Addressing review feedback
* Update test: classnames have changed, image now wrapped in div
* Disable HTML editing for dynamic blocks
* Moved rendering logic into block library
* Remove unnecessary !important on styles
* Add FocalPointPicker to featured product block
* Disable the media icon if no product is selected
* Use the focal point on the frontend display
* Check for `FocalPointPicker` before using it (compat for WP 5.1)
* Check if focalPoint attribue is an array before trying to use it
Checking the feature plugin version on `init` ensures the constant is defined before we get to it, which is not guaranteed in `__construct` due to potential different load orders.
* Move query path into constant
* Add catalog size as a preloaded setting
* Pass a search callback to SearchListControl
This will limit the number of products loaded, and update the product list via an API call, when there are over 200 products
* Extract the API requests into a separate file
* Fix proptype warning
* Only trigger the selected request if there are selected products
* Add new `@wordpress/*` dependencies from wc package bumps
* Move the "large catalog" check to the server side
* Update to components@2.0.0
* Update grid blocks preview to match width of products on the front end
* Remove max-width from CSS, set it on the preview itself so we can use the dynamic theme width
* Override block thumbnail width for multiple column layouts
Previously larger thumbnails would cause multiple column layouts to break and wrap early. This enforces the column width for those cases
* Add the thumbnail size to images, to prevent larger images in multiple col layouts
* Update snapshot to new preview markup
* Category block: open category panel when no categories
When no categories are selected, open the category panel on initial
render.
* Add check for editMode
Don't open categories if in edit mode because the block itself has a
category selection.
* Move block rendering class into assets
* Update package.json for npm
* Move script registration into publish-able file
* Fix phpcs issue
* Add note about source of file
* Add wcSettings back in
* Rename files to match class name
* Add languages & includes back, so we can use this for publishing zip files
* Update documentation, versions, and add hook for wc components settings
* Update wcSettings output to use fitler
* Update version to `alpha`
* Make block library class into a singleton
* Remove legacy block
This removes the legacy products block and sets the version to
v2.0.0-dev
* Remove legacy product block test
* Update plugin header version
* Fix html in preview of product titles
Previously the html wasn't rendered in the preview for product titles.
This renders the html.
* Update test snapshot
* Also decode html for featured preview name.
* Un-escape HTML for featured post title render
* Add transforms for shared attributes.
This adds transforms for the 5 blocks which share attributes:
- woocommerce/product-best-sellers
- woocommerce/product-category
- woocommerce/product-new
- woocommerce/product-on-sale
- woocommerce/product-top-rated
* Use createBlock directly and rowColumnBlockTypes
This adds rowColumnBlockTypes as an array of woocommerce/* block types
that use row and column layouts
* Move block types into utils, and use without
This uses lodash instead of without instead of difference
It also moves the block types from an index into the shared-attributes
in utils.
* Component: GridContentControl for controlling visibility of product content
* Add the content control to all grid blocks
* Use CSS to hide the content on the front end
* Fix missing translation functions
* Split apart editor and frontend styles
* Remove the empty JS files after each build
* Pull out editor and style CSS files into two single, separate files
Rename products-grid CSS, add a “global” front end stylesheet
* Update style registration to use these two new global CSS files
* Merge style JS files into vendors before deleting them
* Remove empty file to fix lint error
* Check for file before reading from it
When watching, not all the file stubs are created, so this errors out.
* Add catalog_visibility param to products api
This adds a catalog_visibility=visible option to the product api which
will filter out any products that are excluded from the catalog.
* Add product_visibility phpunit test
* Add catalog_visibility for catalog, search, hidden
* Fix util js test
The util js test checks for query parameters, so this adds the
category_visibility = 'visible' param.
* Updated for comments
1. Added collection params
2. moved catalog_visibility default with others
* Try using Button block for the product button
* Use the permalink for the selected product
* Fix use of templateLock prop
* Fix button component alignment
* Save attribute terms per attribute, so we don’t need to do duplicate API requests for previously fetched terms. Add spinner to loading items.
* Add count to API response
* Use terms count in displaying attribute type
* Update attribute selection code to collapse already-selected attributes
* Add a chevron icon indicating open-able attributes
* Center the loading indicator
* Remove count from attribute type & re-add it to the terms themselves
* Add “attribute selection” step before allowing terms to be selected
* Update query builder
* Use shortcode to render block
* Styling for child list items
* Add ResizeableBox wrapper to component to adjust height
* Use the fixed height on the front end display of the block
* Fix display of resize handle
* Allow the default & min featured product heights to be customized by setting a new theme support keyword, `featured_block`.
* Use `min-height` on the front end display, so content is not clipped on smaller screens
* Add a wrapper div to the content, to prevent it from breaking out of the block display
* Add placeholder image for product preview
This adds the designated placeholder image url from settings into the
wcSettings global for the blocks to use. Then uses the placeholder url
when a product doesn't have any images.
* Updated based on review notes
Using `$block_settings` instead of `$settings`
Using '' alt tag
Updated snapshot
* Add the placeholder global to test that it passes through to the preview
* Add a new LayoutControl component
* Use new LayoutControl to handle rows & columns settings
* Fix errors when rows or columns is empty (silently fall back to default to prevent breaking the block)
* Rename `LayoutControl` to `GridLayoutControl`
* Update the translation file with strings in new JS files
* Automatically build the translation files when building the JS files
* Reorganize script+style registration so that all files for each block are grouped together
* Bundle the finished translations into the plugin
* Fix untranslated strings
* Remove the edit-blocks dependency from featured product CSS file (https://github.com/woocommerce/woocommerce-blocks/pull/342)
* Add media icon to toolbar, save selected media ID and src as attributes
* Use the selected image instead of the product image, if set
* Unset the selected image when a new product is selected
* Add splitchunks to webpack config to combine node_modules imports into a vendors script
* Move legacy CSS into legacy folder
* Get components css without needing to use relative path
* Add vendors css file
* Update search list item padding
* Fix search list item radio alignment
* Star icon: Material -> Dashicons
* Featured product min height
* placeholder icon + explanation of explicit height value
* Fix linter errors
* Remove unnecessary Icon from block registration
* Remove the star icon
* Add classnames package
* Add background image & initial styles
* Only show inspector controls when not in edit-mode
* Add overlay color + opacity controls
* Add content alignment
* Fix display of content
* Add content toggles
* Update styles from feedback
* Display the "Featured Product" block on the frontend (https://github.com/woocommerce/woocommerce-blocks/pull/310)
* Add render_callback to dynamically render product
* Set a size for the product description
* Remove fallback placeholder image
* Reset the background color for the placeholder component
Previously this was overriding storefront's custom background color CSS
* Update nested conditional
* Remove unnecessary style
* "Featured Product" Block: Add link to the product to the block (https://github.com/woocommerce/woocommerce-blocks/pull/311)
* Featured Product Block: Add link to the product to the block
* Add a better link label for screen reader users
* Match core button styles, fix alignment of button-link
* Add a prop to turn on “single choice” mode
* Create new ProductControl to select a single product
* Remove align from shared attributes
This is given to us by default for using supports.align
* Add Featured Product block
* Fix spelling mistake & copy-paste issue
* Fix lint warning
* Add featured product script to build process, register block in PHP
This lets us use the functionality of `register_block_type` to automatically enqueue the scripts and styles used by blocks in the editor, and eventually, styles on the frontend as well. Also adds cssnano to minify our CSS.
* Prevent Products by Category from showing all products when no category is selected
* Update string when no categories are selected
* Update button text
* Revert button change, Done is more appropriate
* Add ProductsControl component to search and select products
* Add “Hand-picked Products” block
* Update hand-picked & new product icons
* Prevent API request when no products are selected
* Remove rows setting
* Update shortcode/query helpers for the handpicked products
* Remove shortcode from post if no product IDs are passed
Rendering a shortcode with `ids=‘’` will show all products, as if the ids param wasn’t there. The expected outcome would be no products are shown, we we achieve by removing the shortcode.
* Remove unused rows attribute
* Update accessible spoken notice
* Add a variable to hold whether there are selected products
* Fix copy-paste comments
* Add initial attribute selector control
* Make the attribute group name unselectable
* Update selected map to reflect attribute syntax
* Add the attributes selector to the product category block
* Update copy-paste comment
* Update variable name to be more clear
* Move & rename the attribute selector in Products by Category
* Reorganize the API calls to fetch attributes + attribute terms
* Add new SearchListItem component
Extract the custom functionality from product categories, for re-use in product attributes
* Fix error when no breadcrumbs are set
* Update snapshot
* Remove unnecessary key
* add newest products block
* update class name in index.js and product-new.js
* Add a new WooCommerce block category and include all blocks within.
* Fix shortcode product order
* Show block category on all post types
* Add core breakpoint 480px, remove non-core breakpoints
* Add the optional operator & save callback
* Add the catOperator as a valid attribute
* Enable cat operator for Products by Category
* Add cat_operator support the products API endpoint
* Enable cat_operator in the shortcode and query utils
* Pluralize the “nothing found” string if we have multiple categories
* Fix style in the inspector panel
* Add category operator support to the Best Sellers product block
* Add cat_operator support to On Sale Products block
* Update label & margin
* Move from a JS file per block registration to one file registering all blocks
This will let webpack combine shared libraries, like gridicons
* Move global block settings to the “before all scripts” section
These shouldn’t be tied to a specific block file, since they’re used across all blocks
* Register both block types
We can also remove the scripts, since we enqueue these below
* Update getShortcode & getQuery to handle different block types
* Pass block type name to getQuery
* Update shared attributes - edit_mode is not a universal option, but categories will be
Categories is shared, but orderby is not
* Add “Best Selling Products” block
* Add a shared class name for product grid blocks
* Fix failing tests
* Update textdomain in JS files
* Update textdomain in PHP files
* Add babel plugin to create pot & php files from JS
* Update textdomain in plugin header
* Update translations after rebase
* Always show the selected tags section, with a min-height to prevent jumping when selecting tags
* Only show the “clear all” button if there are selected items
* Update snapshot tests
* Update height for sidebar category selection
* Add buildTermsTree to handle hierarchical list input
* Append items if their parent is not in the given list
* Add `breadcrumbs` property to hierarchical list
* Display the “breadcrumbs” parent categories when searching
* Use display properties
we’re providing alternative text for screen reader users, so we can just toggle display values for the prefix
* Add all parent categories to name provided for screen readers
* Display parent category when parent is a currently selected item
* Add the depth class to items in defaultRenderItem
* Add a test for a hierarchical item list
* Clean up hierarchy docblock & commented-out code
* Update proptype
* Update depth CSS so we still indent very nested categories
* Included PHPCS and git hooks
* Fixed coding standards
* New Products endpoint
* Fixed product controller schema
* Improved products controller schema and response
* New product categories controller
* Updated REST API base to match WooCommerce authentication
* Fixed products/categories endpoint
* Better docblock
* Product attributes controller
* Product attribute terms controller
* Update REST API urls
* Reverted PHPCS changes
* Check permission only once while fetching posts
* Included raw price
* Included sku to products endpoint response
* Fixed endpoints in unit test
* Fixed routes in unit tests
* Check and use subscriber, contributor and author rules in unit tests
* Add new components for ProductCategoryControl, using a reusable SearchListControl
* Add sass variables from wc-admin
* Finish styling
* Save selected categories as selected for the block
* Style sidebar version of control
* Filter the categories list, highlight search term in result
* Filter out selected items in the filter list function
* Add spacing in the placeholder, remove unnecessary stylesheet
* Add a more descriptive label for screen readers
* Remove category references from list item options
* Switch to a configurable object of messages, so SearchListControl can be more customizable
* Add screen-reader message for toggling “done” and moving into preview
* Remove call to getProductCategoryControl
The component is simple enough to just drop in now :)
* Add documentation for all props
* Add padding to placeholder
* Rename fallbackrenderItem to defaultRenderItem
* Add a variable to save the selected count
* Add `isDestructive` to make link red
* Update item style
* Add a hover/focus background color
* Add travis to run JS & CSS linting, JS tests, and PHPUnit tests
* Move API initiation out of the gutenberg/files check
So that php tests run without having to build the JS files
* Add very basic product endpoint tests
* Fix stylelint issues in CSS
* Remove e2e setup, replace with dependency setup
* Add missing install step
* Remove cache for now
* Add specific `har-validator` dependency because v 5.1.2 has disappeared
* Only run npm install for the JS test job
* Check for installed plugins
* Update install location
* Fix typo in plugin name
* Check the BRANCH variable, rather than TRAVIS_PULL_REQUEST_BRANCH, which is only set on PR runs
* Remove debug command
* A change to trigger CI
* Set the expected node & npm versions
* Remove copy-pasted command, does not apply
* Load only published products in the preview
* Fix post status in legacy block too
* Filter searching for individual products to only search published products
* Update query tests with change
* Add a second block, for “products by category”
* Fetch products in the given category, when attributes change
* Display the resulting products
* Style the product preview
* Create utils folder, move shared attributes
* Move getQuery to shared utils folder
* Create a helper function to get the shortcode string
* Support the menu_order setting
* Support center/wide/full alignment
* Update PropTypes
* Add tests
* Add text domain to translation functions
* Add eslint configuration
* Run eslint auto-fixer to cover fixable issues
* Use wp.element’s component to prevent undefined React error
* Add products data global to eslint config
* Fix remaining eslint errors by hand
* Fix eslint errors in webpack
* Remove duplicate rule
* Add api-fetch dependency
* Remove compiled files from the repo
* Update build process, remove grunt
* Import CSS into block, as we now extract CSS via webpack to build
* Update enqueue scripts to reflect new build locations
* Detect if build files don’t exist, and instruct users to build project
* Update readme with build instructions
* Clarify where to run npm commands in info notice
* Only enqueue our JS files if we know they exist
* Clarify version compatibility between WC and WP 5.0