woocommerce/compare-filter-stories-comp...

1 line
13 KiB
JavaScript

"use strict";(self.webpackChunk_woocommerce_storybook=self.webpackChunk_woocommerce_storybook||[]).push([[3696],{"../../packages/js/components/src/compare-filter/index.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.d(__webpack_exports__,{S:()=>CompareFilter});__webpack_require__("../../node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/es.object.to-string.js"),__webpack_require__("../../node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/es.reflect.construct.js");var defineProperty=__webpack_require__("../../node_modules/.pnpm/@babel+runtime@7.23.5/node_modules/@babel/runtime/helpers/esm/defineProperty.js"),classCallCheck=__webpack_require__("../../node_modules/.pnpm/@babel+runtime@7.23.5/node_modules/@babel/runtime/helpers/esm/classCallCheck.js"),createClass=__webpack_require__("../../node_modules/.pnpm/@babel+runtime@7.23.5/node_modules/@babel/runtime/helpers/esm/createClass.js"),assertThisInitialized=__webpack_require__("../../node_modules/.pnpm/@babel+runtime@7.23.5/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js"),inherits=__webpack_require__("../../node_modules/.pnpm/@babel+runtime@7.23.5/node_modules/@babel/runtime/helpers/esm/inherits.js"),possibleConstructorReturn=__webpack_require__("../../node_modules/.pnpm/@babel+runtime@7.23.5/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js"),getPrototypeOf=__webpack_require__("../../node_modules/.pnpm/@babel+runtime@7.23.5/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js"),build_module=(__webpack_require__("../../node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/es.function.bind.js"),__webpack_require__("../../node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/es.array.sort.js"),__webpack_require__("../../node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/es.array.map.js"),__webpack_require__("../../node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/es.array.join.js"),__webpack_require__("../../node_modules/.pnpm/@wordpress+i18n@4.6.1/node_modules/@wordpress/i18n/build-module/index.js")),react=__webpack_require__("../../node_modules/.pnpm/react@18.3.1/node_modules/react/index.js"),component=__webpack_require__("../../node_modules/.pnpm/@wordpress+components@19.8.5_@types+react@17.0.71_react-dom@17.0.2_react@17.0.2__react-with-d_oli5xz3n7pc4ztqokra47llglu/node_modules/@wordpress/components/build-module/card/card/component.js"),card_header_component=__webpack_require__("../../node_modules/.pnpm/@wordpress+components@19.8.5_@types+react@17.0.71_react-dom@17.0.2_react@17.0.2__react-with-d_oli5xz3n7pc4ztqokra47llglu/node_modules/@wordpress/components/build-module/card/card-header/component.js"),card_body_component=__webpack_require__("../../node_modules/.pnpm/@wordpress+components@19.8.5_@types+react@17.0.71_react-dom@17.0.2_react@17.0.2__react-with-d_oli5xz3n7pc4ztqokra47llglu/node_modules/@wordpress/components/build-module/card/card-body/component.js"),card_footer_component=__webpack_require__("../../node_modules/.pnpm/@wordpress+components@19.8.5_@types+react@17.0.71_react-dom@17.0.2_react@17.0.2__react-with-d_oli5xz3n7pc4ztqokra47llglu/node_modules/@wordpress/components/build-module/card/card-footer/component.js"),build_module_button=__webpack_require__("../../node_modules/.pnpm/@wordpress+components@19.8.5_@types+react@17.0.71_react-dom@17.0.2_react@17.0.2__react-with-d_oli5xz3n7pc4ztqokra47llglu/node_modules/@wordpress/components/build-module/button/index.js"),lodash=__webpack_require__("../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/lodash.js"),prop_types=__webpack_require__("../../node_modules/.pnpm/prop-types@15.8.1/node_modules/prop-types/index.js"),prop_types_default=__webpack_require__.n(prop_types),src=__webpack_require__("../../packages/js/navigation/src/index.js"),classnames=__webpack_require__("../../node_modules/.pnpm/classnames@2.3.2/node_modules/classnames/index.js"),classnames_default=__webpack_require__.n(classnames),tooltip=__webpack_require__("../../node_modules/.pnpm/@wordpress+components@19.8.5_@types+react@17.0.71_react-dom@17.0.2_react@17.0.2__react-with-d_oli5xz3n7pc4ztqokra47llglu/node_modules/@wordpress/components/build-module/tooltip/index.js"),CompareButton=function CompareButton(_ref){var className=_ref.className,count=_ref.count,children=_ref.children,disabled=_ref.disabled,helpText=_ref.helpText,onClick=_ref.onClick;return!disabled&&count<2?(0,react.createElement)(tooltip.A,{text:helpText},(0,react.createElement)("span",{className},(0,react.createElement)(build_module_button.A,{className:"woocommerce-compare-button",disabled:!0,isSecondary:!0},children))):(0,react.createElement)(build_module_button.A,{className:classnames_default()("woocommerce-compare-button",className),onClick,disabled,isSecondary:!0},children)};CompareButton.propTypes={className:prop_types_default().string,count:prop_types_default().number.isRequired,children:prop_types_default().node.isRequired,helpText:prop_types_default().string.isRequired,onClick:prop_types_default().func.isRequired,disabled:prop_types_default().bool};const compare_filter_button=CompareButton;var search=__webpack_require__("../../packages/js/components/src/search/index.tsx"),experimental=__webpack_require__("../../packages/js/components/src/experimental.js");function _createSuper(Derived){var hasNativeReflectConstruct=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function _createSuperInternal(){var result,Super=(0,getPrototypeOf.A)(Derived);if(hasNativeReflectConstruct){var NewTarget=(0,getPrototypeOf.A)(this).constructor;result=Reflect.construct(Super,arguments,NewTarget)}else result=Super.apply(this,arguments);return(0,possibleConstructorReturn.A)(this,result)}}var CompareFilter=function(_Component){(0,inherits.A)(CompareFilter,_Component);var _super=_createSuper(CompareFilter);function CompareFilter(_ref){var _this,getLabels=_ref.getLabels,param=_ref.param,query=_ref.query;return(0,classCallCheck.A)(this,CompareFilter),(_this=_super.apply(this,arguments)).state={selected:[]},_this.clearQuery=_this.clearQuery.bind((0,assertThisInitialized.A)(_this)),_this.updateQuery=_this.updateQuery.bind((0,assertThisInitialized.A)(_this)),_this.updateLabels=_this.updateLabels.bind((0,assertThisInitialized.A)(_this)),_this.onButtonClicked=_this.onButtonClicked.bind((0,assertThisInitialized.A)(_this)),query[param]&&getLabels(query[param],query).then(_this.updateLabels),_this}return(0,createClass.A)(CompareFilter,[{key:"componentDidUpdate",value:function componentDidUpdate(_ref2,_ref3){var prevParam=_ref2.param,prevQuery=_ref2.query,prevSelected=_ref3.selected,_this$props=this.props,getLabels=_this$props.getLabels,param=_this$props.param,query=_this$props.query,selected=this.state.selected;if(prevParam!==param||prevSelected.length>0&&0===selected.length)this.clearQuery();else{var prevIds=(0,src.DF)(prevQuery[param]),currentIds=(0,src.DF)(query[param]);(0,lodash.isEqual)(prevIds.sort(),currentIds.sort())||getLabels(query[param],query).then(this.updateLabels)}}},{key:"clearQuery",value:function clearQuery(){var _this$props2=this.props,param=_this$props2.param,path=_this$props2.path,query=_this$props2.query;this.setState({selected:[]}),(0,src.Ze)((0,defineProperty.A)({},param,void 0),path,query)}},{key:"updateLabels",value:function updateLabels(selected){this.setState({selected})}},{key:"updateQuery",value:function updateQuery(){var _this$props3=this.props,param=_this$props3.param,path=_this$props3.path,query=_this$props3.query,idList=this.state.selected.map((function(p){return p.key}));(0,src.Ze)((0,defineProperty.A)({},param,idList.join(",")),path,query)}},{key:"onButtonClicked",value:function onButtonClicked(e){this.updateQuery(e),(0,lodash.isFunction)(this.props.onClick)&&this.props.onClick(e)}},{key:"render",value:function render(){var _this2=this,_this$props4=this.props,labels=_this$props4.labels,type=_this$props4.type,autocompleter=_this$props4.autocompleter,selected=this.state.selected;return(0,react.createElement)(component.A,{className:"woocommerce-filters__compare"},(0,react.createElement)(card_header_component.A,null,(0,react.createElement)(experimental.E,{variant:"subtitle.small",weight:"600",size:"14",lineHeight:"20px"},labels.title)),(0,react.createElement)(card_body_component.A,null,(0,react.createElement)(search.A,{autocompleter,type,selected,placeholder:labels.placeholder,onChange:function onChange(value){_this2.setState({selected:value})}})),(0,react.createElement)(card_footer_component.A,{justify:"flex-start"},(0,react.createElement)(compare_filter_button,{count:selected.length,helpText:labels.helpText,onClick:this.onButtonClicked},labels.update),selected.length>0&&(0,react.createElement)(build_module_button.A,{isLink:!0,onClick:this.clearQuery},(0,build_module.__)("Clear all","woocommerce"))))}}]),CompareFilter}(react.Component);CompareFilter.propTypes={getLabels:prop_types_default().func.isRequired,labels:prop_types_default().shape({placeholder:prop_types_default().string,title:prop_types_default().string,update:prop_types_default().string}),param:prop_types_default().string.isRequired,path:prop_types_default().string.isRequired,query:prop_types_default().object,type:prop_types_default().string.isRequired,autocompleter:prop_types_default().object},CompareFilter.defaultProps={labels:{},query:{}}},"../../packages/js/components/src/experimental.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.d(__webpack_exports__,{E:()=>Text});var _wordpress_components__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("../../node_modules/.pnpm/@wordpress+components@19.8.5_@types+react@17.0.71_react-dom@17.0.2_react@17.0.2__react-with-d_oli5xz3n7pc4ztqokra47llglu/node_modules/@wordpress/components/build-module/index.js"),_wordpress_components__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("../../node_modules/.pnpm/@wordpress+components@19.8.5_@types+react@17.0.71_react-dom@17.0.2_react@17.0.2__react-with-d_oli5xz3n7pc4ztqokra47llglu/node_modules/@wordpress/components/build-module/text/component.js"),Text=_wordpress_components__WEBPACK_IMPORTED_MODULE_0__.Text||_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.A},"../../packages/js/components/src/compare-filter/stories/compare-filter.story.js":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Basic:()=>Basic,default:()=>__WEBPACK_DEFAULT_EXPORT__});var _babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_9__=__webpack_require__("../../node_modules/.pnpm/@babel+runtime@7.23.5/node_modules/@babel/runtime/helpers/esm/extends.js"),_wordpress_element__WEBPACK_IMPORTED_MODULE_7__=(__webpack_require__("../../node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/es.object.to-string.js"),__webpack_require__("../../node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/es.promise.js"),__webpack_require__("../../node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/es.array.iterator.js"),__webpack_require__("../../node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/es.string.iterator.js"),__webpack_require__("../../node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/web.dom-collections.iterator.js"),__webpack_require__("../../node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/web.url.js"),__webpack_require__("../../node_modules/.pnpm/core-js@3.34.0/node_modules/core-js/modules/web.url-search-params.js"),__webpack_require__("../../node_modules/.pnpm/react@18.3.1/node_modules/react/index.js")),___WEBPACK_IMPORTED_MODULE_8__=__webpack_require__("../../packages/js/components/src/compare-filter/index.js"),query={},compareFilter={type:"products",param:"product",getLabels:function getLabels(){return Promise.resolve([])},labels:{helpText:"Select at least two products to compare",placeholder:"Search for products to compare",title:"Compare Products",update:"Compare"}},Basic=function Basic(_ref){var _ref$path=_ref.path,path=void 0===_ref$path?new URL(document.location).searchParams.get("path"):_ref$path;return(0,_wordpress_element__WEBPACK_IMPORTED_MODULE_7__.createElement)(___WEBPACK_IMPORTED_MODULE_8__.S,(0,_babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_9__.A)({path,query},compareFilter))};const __WEBPACK_DEFAULT_EXPORT__={title:"WooCommerce Admin/components/CompareFilter",component:___WEBPACK_IMPORTED_MODULE_8__.S};Basic.parameters={...Basic.parameters,docs:{...Basic.parameters?.docs,source:{originalSource:"({\n path = new URL(document.location).searchParams.get('path')\n}) => <CompareFilter path={path} query={query} {...compareFilter} />",...Basic.parameters?.docs?.source}}}}}]);