),\n use: loader,\n });\n }\n }\n return output;\n};\n","id":"mod_LsuEU31Qib3qVQ3JCrzkHX","is_binary":false,"title":"utils.js","sha":null,"inserted_at":"2023-03-13T02:42:13","updated_at":"2023-03-13T02:42:13","upload_id":null,"shortid":"ByCatp-hkh","source_id":"src_8NGea7keUAkEhPugSyPJje","directory_shortid":"r1xat6W3yh"},{"code":"\u002F* eslint-disable import\u002Fno-commonjs *\u002F\n\nconst utils = require('.\u002Futils');\nconst config = require('..\u002Fconfig');\nconst isProduction = process.env.NODE_ENV === 'production';\n\nmodule.exports = {\n loaders: utils.cssLoaders({\n sourceMap: isProduction\n ? config.build.productionSourceMap\n : config.dev.cssSourceMap,\n extract: isProduction,\n }),\n};\n","id":"mod_899FYD8duPQ27cWHvQAzMC","is_binary":false,"title":"vue-loader.conf.js","sha":null,"inserted_at":"2023-03-13T02:42:13","updated_at":"2023-03-13T02:42:13","upload_id":null,"shortid":"ry1lTKaW2yn","source_id":"src_8NGea7keUAkEhPugSyPJje","directory_shortid":"r1xat6W3yh"},{"code":"\u002F* eslint-disable import\u002Fno-commonjs *\u002F\n\nconst path = require('path');\nconst utils = require('.\u002Futils');\nconst config = require('..\u002Fconfig');\nconst vueLoaderConfig = require('.\u002Fvue-loader.conf');\n\nfunction resolve(dir) {\n return path.join(__dirname, '..', dir);\n}\n\nmodule.exports = {\n entry: {\n app: '.\u002Fsrc\u002Fmain.js',\n },\n output: {\n path: config.build.assetsRoot,\n filename: '[name].js',\n publicPath:\n process.env.NODE_ENV === 'production'\n ? config.build.assetsPublicPath\n : config.dev.assetsPublicPath,\n },\n resolve: {\n extensions: ['.js', '.vue', '.json'],\n alias: {\n vue$: 'vue\u002Fdist\u002Fvue.esm.js',\n '@': resolve('src'),\n },\n },\n module: {\n rules: [\n {\n test: \u002F\\.vue$\u002F,\n loader: 'vue-loader',\n options: vueLoaderConfig,\n },\n {\n test: \u002F\\.js$\u002F,\n loader: 'babel-loader',\n include: [resolve('src'), resolve('test')],\n },\n {\n test: \u002F\\.(png|jpe?g|gif|svg)(\\?.*)?$\u002F,\n loader: 'url-loader',\n query: {\n limit: 10000,\n name: utils.assetsPath('img\u002F[name].[hash:7].[ext]'),\n },\n },\n {\n test: \u002F\\.(woff2?|eot|ttf|otf)(\\?.*)?$\u002F,\n loader: 'url-loader',\n query: {\n limit: 10000,\n name: utils.assetsPath('fonts\u002F[name].[hash:7].[ext]'),\n },\n },\n ],\n },\n};\n","id":"mod_12XZnW58ekX7Tm27wvhYXe","is_binary":false,"title":"webpack.base.conf.js","sha":null,"inserted_at":"2023-03-13T02:42:13","updated_at":"2023-03-13T02:42:13","upload_id":null,"shortid":"BJlxaFpZnJh","source_id":"src_8NGea7keUAkEhPugSyPJje","directory_shortid":"r1xat6W3yh"},{"code":"\u002F* eslint-disable import\u002Fno-commonjs *\u002F\n\nconst utils = require('.\u002Futils');\nconst webpack = require('webpack');\nconst config = require('..\u002Fconfig');\nconst merge = require('webpack-merge');\nconst baseWebpackConfig = require('.\u002Fwebpack.base.conf');\nconst HtmlWebpackPlugin = require('html-webpack-plugin');\nconst FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin');\n\n\u002F\u002F add hot-reload related code to entry chunks\nObject.keys(baseWebpackConfig.entry).forEach(name =\u003E {\n baseWebpackConfig.entry[name] = ['.\u002Fbuild\u002Fdev-client'].concat(\n baseWebpackConfig.entry[name]\n );\n});\n\nmodule.exports = merge(baseWebpackConfig, {\n module: {\n rules: utils.styleLoaders({ sourceMap: config.dev.cssSourceMap }),\n },\n \u002F\u002F cheap-module-eval-source-map is faster for development\n devtool: '#cheap-module-eval-source-map',\n plugins: [\n new webpack.DefinePlugin({\n 'process.env': config.dev.env,\n }),\n \u002F\u002F https:\u002F\u002Fgithub.com\u002Fglenjamin\u002Fwebpack-hot-middleware#installation--usage\n new webpack.HotModuleReplacementPlugin(),\n new webpack.NoEmitOnErrorsPlugin(),\n \u002F\u002F https:\u002F\u002Fgithub.com\u002Fampedandwired\u002Fhtml-webpack-plugin\n new HtmlWebpackPlugin({\n filename: 'index.html',\n template: 'index.html',\n inject: true,\n }),\n new FriendlyErrorsPlugin(),\n ],\n});\n","id":"mod_RdjpQ7zgnrBF7PjHWt9HWL","is_binary":false,"title":"webpack.dev.conf.js","sha":null,"inserted_at":"2023-03-13T02:42:13","updated_at":"2023-03-13T02:42:13","upload_id":null,"shortid":"BJ-x6K6-2k3","source_id":"src_8NGea7keUAkEhPugSyPJje","directory_shortid":"r1xat6W3yh"},{"code":"\u002F* eslint-disable import\u002Fno-commonjs *\u002F\n\nconst path = require('path');\nconst utils = require('.\u002Futils');\nconst webpack = require('webpack');\nconst config = require('..\u002Fconfig');\nconst merge = require('webpack-merge');\nconst baseWebpackConfig = require('.\u002Fwebpack.base.conf');\nconst CopyWebpackPlugin = require('copy-webpack-plugin');\nconst HtmlWebpackPlugin = require('html-webpack-plugin');\nconst ExtractTextPlugin = require('extract-text-webpack-plugin');\nconst OptimizeCSSPlugin = require('optimize-css-assets-webpack-plugin');\n\nconst env = config.build.env;\n\nconst webpackConfig = merge(baseWebpackConfig, {\n module: {\n rules: utils.styleLoaders({\n sourceMap: config.build.productionSourceMap,\n extract: true,\n }),\n },\n devtool: config.build.productionSourceMap ? '#source-map' : false,\n output: {\n path: config.build.assetsRoot,\n filename: utils.assetsPath('js\u002F[name].[chunkhash].js'),\n chunkFilename: utils.assetsPath('js\u002F[id].[chunkhash].js'),\n },\n plugins: [\n \u002F\u002F http:\u002F\u002Fvuejs.github.io\u002Fvue-loader\u002Fen\u002Fworkflow\u002Fproduction.html\n new webpack.DefinePlugin({\n 'process.env': env,\n }),\n new webpack.optimize.UglifyJsPlugin({\n compress: {\n warnings: false,\n },\n sourceMap: true,\n }),\n \u002F\u002F extract css into its own file\n new ExtractTextPlugin({\n filename: utils.assetsPath('css\u002F[name].[contenthash].css'),\n }),\n \u002F\u002F Compress extracted CSS. We are using this plugin so that possible\n \u002F\u002F duplicated CSS from different components can be deduped.\n new OptimizeCSSPlugin(),\n \u002F\u002F generate dist index.html with correct asset hash for caching.\n \u002F\u002F you can customize output by editing \u002Findex.html\n \u002F\u002F see https:\u002F\u002Fgithub.com\u002Fampedandwired\u002Fhtml-webpack-plugin\n new HtmlWebpackPlugin({\n filename: config.build.index,\n template: 'index.html',\n inject: true,\n minify: {\n removeComments: true,\n collapseWhitespace: true,\n removeAttributeQuotes: true,\n \u002F\u002F more options:\n \u002F\u002F https:\u002F\u002Fgithub.com\u002Fkangax\u002Fhtml-minifier#options-quick-reference\n },\n \u002F\u002F necessary to consistently work with multiple chunks via CommonsChunkPlugin\n chunksSortMode: 'dependency',\n }),\n \u002F\u002F split vendor js into its own file\n new webpack.optimize.CommonsChunkPlugin({\n name: 'vendor',\n minChunks(module) {\n \u002F\u002F any required modules inside node_modules are extracted to vendor\n return (\n module.resource &&\n \u002F\\.js$\u002F.test(module.resource) &&\n module.resource.indexOf(path.join(__dirname, '..\u002Fnode_modules')) === 0\n );\n },\n }),\n \u002F\u002F extract webpack runtime and module manifest to its own file in order to\n \u002F\u002F prevent vendor hash from being updated whenever app bundle is updated\n new webpack.optimize.CommonsChunkPlugin({\n name: 'manifest',\n chunks: ['vendor'],\n }),\n \u002F\u002F copy custom static assets\n new CopyWebpackPlugin([\n {\n from: path.resolve(__dirname, '..\u002Fstatic'),\n to: config.build.assetsSubDirectory,\n ignore: ['.*'],\n },\n ]),\n ],\n});\n\nif (config.build.productionGzip) {\n \u002F\u002F eslint-disable-next-line import\u002Fno-extraneous-dependencies\n const CompressionWebpackPlugin = require('compression-webpack-plugin');\n\n webpackConfig.plugins.push(\n new CompressionWebpackPlugin({\n asset: '[path].gz[query]',\n algorithm: 'gzip',\n test: new RegExp(\n `\\\\.(${config.build.productionGzipExtensions.join('|')})example-e-commerce - CodeSandbox\n ),\n threshold: 10240,\n minRatio: 0.8,\n })\n );\n}\n\nif (config.build.bundleAnalyzerReport) {\n const BundleAnalyzerPlugin = require('webpack-bundle-analyzer')\n .BundleAnalyzerPlugin;\n webpackConfig.plugins.push(new BundleAnalyzerPlugin());\n}\n\nmodule.exports = webpackConfig;\n","id":"mod_NZrYSy9y8p8PGoej5r6dEV","is_binary":false,"title":"webpack.prod.conf.js","sha":null,"inserted_at":"2023-03-13T02:42:13","updated_at":"2023-03-13T02:42:13","upload_id":null,"shortid":"Hkfe6YaWn13","source_id":"src_8NGea7keUAkEhPugSyPJje","directory_shortid":"r1xat6W3yh"},{"code":"\u002F* eslint-disable import\u002Fno-commonjs *\u002F\n\nconst merge = require('webpack-merge');\nconst prodEnv = require('.\u002Fprod.env');\n\nmodule.exports = merge(prodEnv, {\n NODE_ENV: '\"development\"',\n});\n","id":"mod_3VvWX76q8bj4bwnBk1RPxB","is_binary":false,"title":"dev.env.js","sha":null,"inserted_at":"2023-03-13T02:42:13","updated_at":"2023-03-13T02:42:13","upload_id":null,"shortid":"r1Xe6YTW212","source_id":"src_8NGea7keUAkEhPugSyPJje","directory_shortid":"HJbpFTWhJh"},{"code":"\u002F* eslint-disable import\u002Fno-commonjs *\u002F\n\n\u002F\u002F see http:\u002F\u002Fvuejs-templates.github.io\u002Fwebpack for documentation.\nconst path = require('path');\n\nmodule.exports = {\n build: {\n env: require('.\u002Fprod.env'),\n index: path.resolve(__dirname, '..\u002Fdist\u002Findex.html'),\n assetsRoot: path.resolve(__dirname, '..\u002Fdist'),\n assetsSubDirectory: 'static',\n assetsPublicPath: '\u002F',\n productionSourceMap: true,\n \u002F\u002F Gzip off by default as many popular static hosts such as\n \u002F\u002F Surge or Netlify already gzip all static assets for you.\n \u002F\u002F Before setting to `true`, make sure to:\n \u002F\u002F npm install --save-dev compression-webpack-plugin\n productionGzip: false,\n productionGzipExtensions: ['js', 'css'],\n \u002F\u002F Run the build command with an extra argument to\n \u002F\u002F View the bundle analyzer report after build finishes:\n \u002F\u002F `npm run build --report`\n \u002F\u002F Set to `true` or `false` to always turn it on or off\n bundleAnalyzerReport: process.env.npm_config_report,\n },\n dev: {\n env: require('.\u002Fdev.env'),\n port: 8080,\n autoOpenBrowser: true,\n assetsSubDirectory: 'static',\n assetsPublicPath: '\u002F',\n proxyTable: {},\n \u002F\u002F CSS Sourcemaps off by default because relative paths are \"buggy\"\n \u002F\u002F with this option, according to the CSS-Loader README\n \u002F\u002F (https:\u002F\u002Fgithub.com\u002Fwebpack\u002Fcss-loader#sourcemaps)\n \u002F\u002F In our experience, they generally work as expected,\n \u002F\u002F just be aware of this issue when enabling this option.\n cssSourceMap: false,\n },\n};\n","id":"mod_MphUDyfqesLhSJvoXwhgkr","is_binary":false,"title":"index.js","sha":null,"inserted_at":"2023-03-13T02:42:13","updated_at":"2023-03-13T02:42:13","upload_id":null,"shortid":"HJ4laYTW3y3","source_id":"src_8NGea7keUAkEhPugSyPJje","directory_shortid":"HJbpFTWhJh"},{"code":"\u002F* eslint-disable import\u002Fno-commonjs *\u002F\nmodule.exports = {\n NODE_ENV: '\"production\"',\n};\n","id":"mod_CNh1p6UgnYrDxi8eqrGYwH","is_binary":false,"title":"prod.env.js","sha":null,"inserted_at":"2023-03-13T02:42:13","updated_at":"2023-03-13T02:42:13","upload_id":null,"shortid":"BJHgTtpb212","source_id":"src_8NGea7keUAkEhPugSyPJje","directory_shortid":"HJbpFTWhJh"},{"code":"\u003C!DOCTYPE html\u003E\n\u003Chtml\u003E\n \u003Chead\u003E\n \u003Cmeta charset=\"utf-8\"\u003E\n \u003Ctitle\u003EVue.js & Algolia - Example store\u003C\u002Ftitle\u003E\n\n \u003C!-- Bootstrap --\u003E\n \u003Clink rel=\"stylesheet\" href=\"https:\u002F\u002Fmaxcdn.bootstrapcdn.com\u002Fbootstrap\u002F3.3.7\u002Fcss\u002Fbootstrap.min.css\" integrity=\"sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz\u002FK68vbdEjh4u\" crossorigin=\"anonymous\"\u003E\n \u003C\u002Fhead\u003E\n \u003Cbody\u003E\n \u003Cdiv id=\"app\"\u003E\u003C\u002Fdiv\u003E\n \u003C!-- built files will be auto injected --\u003E\n \u003C\u002Fbody\u003E\n\u003C\u002Fhtml\u003E\n","id":"mod_8unpM6WWAZnnqzAtram85j","is_binary":false,"title":"index.html","sha":null,"inserted_at":"2023-03-13T02:42:13","updated_at":"2023-03-13T02:42:13","upload_id":null,"shortid":"ByUlTKT-hy2","source_id":"src_8NGea7keUAkEhPugSyPJje","directory_shortid":null},{"code":"{\n \"private\": true,\n \"name\": \"example-e-commerce\",\n \"version\": \"1.0.0\",\n \"description\": \"Algolia + Vue.js playground\",\n \"author\": \"Raymond Rutjes \u003Craymond.rutjes@gmail.com\u003E\",\n \"scripts\": {\n \"dev\": \"node build\u002Fdev-server.js\",\n \"build\": \"node build\u002Fbuild.js\"\n },\n \"dependencies\": {\n \"vue\": \"^2.4.2\",\n \"vue-instantsearch\": \"^1.4.0\"\n },\n \"devDependencies\": {\n \"autoprefixer\": \"^7.2.5\",\n \"babel-core\": \"^6.22.1\",\n \"babel-loader\": \"^7.1.2\",\n \"babel-plugin-transform-runtime\": \"^6.22.0\",\n \"babel-preset-env\": \"^1.2.1\",\n \"babel-preset-stage-2\": \"^6.22.0\",\n \"babel-register\": \"^6.22.0\",\n \"chalk\": \"^2.3.0\",\n \"connect-history-api-fallback\": \"^1.3.0\",\n \"copy-webpack-plugin\": \"^4.0.1\",\n \"css-loader\": \"^0.28.9\",\n \"eventsource-polyfill\": \"^0.9.6\",\n \"express\": \"^4.14.1\",\n \"extract-text-webpack-plugin\": \"^3.0.2\",\n \"file-loader\": \"^1.1.6\",\n \"friendly-errors-webpack-plugin\": \"^1.1.3\",\n \"function-bind\": \"^1.1.0\",\n \"html-webpack-plugin\": \"^2.28.0\",\n \"http-proxy-middleware\": \"^0.17.3\",\n \"node-sass\": \"^4.5.0\",\n \"opn\": \"^5.2.0\",\n \"optimize-css-assets-webpack-plugin\": \"^3.2.0\",\n \"ora\": \"^1.1.0\",\n \"rimraf\": \"^2.6.0\",\n \"sass-loader\": \"^6.0.0\",\n \"semver\": \"^5.3.0\",\n \"url-loader\": \"^0.6.2\",\n \"vue-loader\": \"^14.1.1\",\n \"vue-style-loader\": \"^3.1.1\",\n \"vue-template-compiler\": \"^2.4.2\",\n \"webpack\": \"^3.10.0\",\n \"webpack-bundle-analyzer\": \"^2.2.1\",\n \"webpack-dev-middleware\": \"^2.0.4\",\n \"webpack-hot-middleware\": \"^2.16.1\",\n \"webpack-merge\": \"^4.1.1\"\n },\n \"engines\": {\n \"node\": \"\u003E= 4.0.0\",\n \"npm\": \"\u003E= 3.0.0\"\n },\n \"browserslist\": [\n \"\u003E 1%\",\n \"last 2 versions\",\n \"not ie \u003C= 8\"\n ]\n}\n","id":"mod_6oJbUHyVh2nJKknR5WZuK9","is_binary":false,"title":"package.json","sha":null,"inserted_at":"2023-03-13T02:42:13","updated_at":"2023-03-13T02:42:13","upload_id":null,"shortid":"BkDgpY6Zn12","source_id":"src_8NGea7keUAkEhPugSyPJje","directory_shortid":null},{"code":"\u003Ctemplate\u003E\n \u003Cdiv id=\"app\" class=\"container-fluid\"\u003E\n \u003Cais-index appId=\"latency\" apiKey=\"6be0576ff61c053d5f9a3225e2a90f76\"\u003E\n \u003Cdiv class=\"row\"\u003E\n \u003Cdiv class=\"col-md-2 col-sm-3\"\u003E\n \u003Ch1 class=\"head-title\"\u003E\n Demo Store\n \u003C\u002Fh1\u003E\n \u003C\u002Fdiv\u003E\n \u003Cdiv class=\"col-md-10 col-sm-9\"\u003E\n \u003Cais-search-box\u003E\n \u003Cdiv class=\"input-group\"\u003E\n \u003Cais-input\n placeholder=\"Search product by name or reference...\"\n :classNames=\"{\n 'ais-input': 'form-control'\n }\"\n \u002F\u003E\n\n \u003Cspan class=\"input-group-btn\"\u003E\n \u003Cais-clear :classNames=\"{'ais-clear': 'btn btn-default'}\"\u003E\n \u003Cspan class=\"glyphicon glyphicon-remove\" aria-hidden=\"true\"\u003E\u003C\u002Fspan\u003E\n \u003C\u002Fais-clear\u003E\n \u003Cbutton class=\"btn btn-default\" type=\"submit\"\u003E\n \u003Cspan class=\"glyphicon glyphicon-search\" aria-hidden=\"true\"\u003E\u003C\u002Fspan\u003E\n \u003C\u002Fbutton\u003E\n \u003C\u002Fspan\u003E\n \u003C\u002Fdiv\u003E\u003C!-- \u002Finput-group --\u003E\n\n \u003C\u002Fais-search-box\u003E\n\n\n\n \u003C\u002Fdiv\u003E\n \u003C\u002Fdiv\u003E\n\n \u003Cdiv class=\"row\"\u003E\n \u003Cdiv class=\"col-md-2 col-sm-3\"\u003E\n \u003Cais-tree-menu\n :attributes=\"[\n 'hierarchicalCategories.lvl0',\n 'hierarchicalCategories.lvl1',\n 'hierarchicalCategories.lvl2',\n ]\"\n :classNames=\"{\n 'ais-tree-menu__list': 'list-unstyled',\n 'ais-tree-menu__count': 'badge'\n }\"\n \u003E\n \u003Ch3 slot=\"header\"\u003EBrowse by\u003C\u002Fh3\u003E\n \u003C\u002Fais-tree-menu\u003E\n\n\n \u003Cais-price-range\n attribute-name=\"price\" \n :classNames=\"{\n 'ais-price-range__input': 'form-control'\n }\"\n \u003E\n \u003Ch3 slot=\"header\"\u003EPrice\u003C\u002Fh3\u003E\n \u003C\u002Fais-price-range\u003E\n\n\n \u003Cais-refinement-list\n attribute-name=\"categories\"\n :classNames=\"{\n 'ais-refinement-list__count': 'badge',\n 'ais-refinement-list__item': 'checkbox'\n }\"\n \u003E\n \u003Ch3 slot=\"header\"\u003ECategory\u003C\u002Fh3\u003E\n \u003C\u002Fais-refinement-list\u003E\n\n \u003Cais-refinement-list\n attribute-name=\"brand\"\n :classNames=\"{\n 'ais-refinement-list__count': 'badge',\n 'ais-refinement-list__item': 'checkbox'\n }\"\n \u003E\n \u003Ch3 slot=\"header\"\u003EBrand\u003C\u002Fh3\u003E\n \u003C\u002Fais-refinement-list\u003E\n\n \u003Cais-rating\n attribute-name=\"rating\"\n :classNames=\"{\n 'ais-rating__count': 'badge'\n }\"\n \u003E\n \u003Ch3 slot=\"header\"\u003ERating\u003C\u002Fh3\u003E\n \u003C\u002Fais-rating\u003E\n\n \u003C\u002Fdiv\u003E\n \u003Cdiv class=\"col-md-10 col-sm-9\"\u003E\n \u003Cdiv class=\"search-controls form-inline\"\u003E\n \u003Cais-sort-by-selector\n :indices=\"[\n {name: 'instant_search', label: 'Relevance'},\n {name: 'instant_search_price_asc', label: 'Lowest price'},\n {name: 'instant_search_price_desc', label: 'Highest price'}\n ]\"\n :classNames=\"{\n 'ais-sort-by-selector': 'form-control'\n }\"\n \u002F\u003E\n\n \u003Cais-results-per-page-selector\n :options=\"[12, 24, 48]\"\n :classNames=\"{\n 'ais-results-per-page-selector': 'form-control'\n }\"\n \u002F\u003E\n\n \u003Cais-powered-by \u002F\u003E\n\n \u003Cais-stats\u002F\u003E\n \u003C\u002Fdiv\u003E\n\n \u003Cais-results\u003E\n \u003Ctemplate slot-scope=\"{ result }\"\u003E\n \u003Cdiv class=\"search-result\"\u003E\n \u003Cimg class=\"result__image img-responsive\" :src=\"result.image\"\u003E\n\n \u003Cdiv class=\"result__info\"\u003E\n \u003Ch2 class=\"result__name\"\u003E\n \u003Cais-highlight :result=\"result\" attribute-name=\"name\"\u002F\u003E\n \u003C\u002Fh2\u003E\n \u003Cdiv class=\"result__type\"\u003E\n \u003Cais-highlight :result=\"result\" attribute-name=\"type\"\u002F\u003E\n \u003C\u002Fdiv\u003E\n \u003Cdiv class=\"result__rating\"\u003E\n \u003Ctemplate v-for=\"n in 5\"\u003E\n \u003Cspan v-if=\"n \u003C= result.rating\" class=\"result__star\" :key=\"n\"\u003E\u003C\u002Fspan\u003E\n \u003Cspan v-else class=\"result__star--empty\" :key=\"n\"\u003E\u003C\u002Fspan\u003E\n \u003C\u002Ftemplate\u003E\n \u003C\u002Fdiv\u003E\n \u003Cdiv class=\"result__price\"\u003E${{result.price}}\u003C\u002Fdiv\u003E\n \u003C\u002Fdiv\u003E\n \u003C\u002Fdiv\u003E\n \u003C\u002Ftemplate\u003E\n \u003C\u002Fais-results\u003E\n\n \u003Cais-no-results\u002F\u003E\n\n \u003Cais-pagination\n class=\"pagination\"\n :classNames=\"{\n 'ais-pagination': 'pagination',\n 'ais-pagination__item--active': 'active',\n 'ais-pagination__item--disabled': 'disabled'\n }\"\n v-on:page-change=\"onPageChange\"\n \u002F\u003E\n\n \u003C\u002Fdiv\u003E\n \u003C\u002Fdiv\u003E\n \u003C\u002Fais-index\u003E\n\n \u003C\u002Fdiv\u003E\n\u003C\u002Ftemplate\u003E\n\n\u003Cscript\u003E\nexport default {\n name: 'app',\n methods: {\n onPageChange() {\n window.scrollTo(0, 0);\n },\n },\n};\u003C\u002Fscript\u003E\n\n\n\u003Cstyle lang=\"scss\" rel=\"stylesheet\u002Fscss\"\u003E\n#app {\n -webkit-font-smoothing: antialiased;\n padding-top: 20px;\n}\n\n.head-title {\n margin-top: 0;\n}\n\n.ais-powered-by {\n float: right;\n\n line-height: 26px;\n svg {\n vertical-align: bottom;\n }\n}\n\n.search-controls {\n padding-bottom: 20px;\n}\n\n.ais-stats {\n line-height: 36px;\n}\n\n.ais-results:after {\n content: ' ';\n display: block;\n clear: both;\n}\n\n.search-result {\n padding: 10px 20px 20px;\n width: 24%;\n margin-bottom: 10px;\n border: solid 1px #eee;\n box-shadow: 0 0 3px #f6f6f6;\n margin-right: 1%;\n position: relative;\n border-radius: 3px;\n min-width: 220px;\n background: #fff;\n display: inline;\n float: left;\n transition: all 0.5s;\n}\n\n.result__info {\n position: absolute;\n width: 100%;\n padding: 0px 20px 20px;\n bottom: 0;\n left: 0;\n}\n\n.result__image {\n margin-bottom: 100px;\n height: 150px;\n}\n\n.result__name {\n font-size: 14px;\n font-weight: bold;\n}\n\n.result__name mark,\n.result__type mark {\n font-style: normal;\n background: rgba(143, 187, 237, 0.1);\n box-shadow: inset 0 -1px 0 0 rgba(69, 142, 225, 0.8);\n}\n\n.result__type mark {\n background: rgba(143, 187, 237, 0.1);\n border-radius: 0;\n box-shadow: inset 0 -1px 0 0 rgba(69, 142, 225, 0.8);\n}\n\n.result__price {\n font-size: 25px;\n font-weight: bold;\n position: absolute;\n right: 20px;\n bottom: 16px;\n}\n\n.result__type {\n color: #a2a2a2;\n font-size: 12px;\n}\n\n.result__rating {\n margin-top: 10px;\n}\n\n.result__star {\n width: 1em;\n height: 1em;\n}\n\n.result__star:before {\n content: '\\2605';\n color: #fbae00;\n}\n\n.result__star--empty:before {\n content: '\\2606';\n color: #fbae00;\n}\n\n\u002F* Sort by selector *\u002F\n.search-controls {\n .form-control {\n float: right;\n margin-left: 10px;\n }\n}\n.ais-sort-by-selector {\n float: right;\n}\n\n.ais-results-per-page-selector {\n float: right;\n margin-right: 10px;\n}\n\n\u002F* Clear Search *\u002F\n.ais-clear--disabled {\n display: none;\n}\n\n\u002F* Price Range *\u002F\n.ais-price-range__input--from,\n.ais-price-range__input--to {\n width: 65px;\n display: inline-block;\n}\n\u003C\u002Fstyle\u003E\n","id":"mod_6MHz2znv6j7ydmJ9vqFKxH","is_binary":false,"title":"App.vue","sha":null,"inserted_at":"2023-03-13T02:42:13","updated_at":"2023-03-13T02:42:13","upload_id":null,"shortid":"BkulaF6bh12","source_id":"src_8NGea7keUAkEhPugSyPJje","directory_shortid":"B1MaK6-2yn"},{"code":"\u002F\u002F The Vue build version to load with the `import` command\n\u002F\u002F (runtime-only or standalone) has been set in webpack.base.conf with an alias.\nimport Vue from 'vue';\nimport App from '.\u002FApp.vue';\nimport AlgoliaComponents from 'vue-instantsearch';\n\nVue.config.productionTip = false;\nVue.use(AlgoliaComponents);\n\n\u002F\u002F eslint-disable-next-line no-new\nnew Vue({\n el: '#app',\n template: '\u003CApp\u002F\u003E',\n components: { App },\n});\n","id":"mod_4K6wA6XLiYUmqoBhba95J6","is_binary":false,"title":"main.js","sha":null,"inserted_at":"2023-03-13T02:42:13","updated_at":"2023-03-13T02:42:13","upload_id":null,"shortid":"Bktg6YT-nkn","source_id":"src_8NGea7keUAkEhPugSyPJje","directory_shortid":"B1MaK6-2yn"},{"code":"https:\u002F\u002Frawcdn.githack.com\u002Falgolia\u002Fvue-instantsearch-examples\u002Fmaster\u002Fexamples\u002Fe-commerce\u002Fsrc\u002Fassets\u002Flogo.png","id":"mod_81qqiknQckF8mbrAp3csyG","is_binary":true,"title":"logo.png","sha":null,"inserted_at":"2023-03-13T02:42:13","updated_at":"2023-03-13T02:42:13","upload_id":null,"shortid":"SJ5lTYaW312","source_id":"src_8NGea7keUAkEhPugSyPJje","directory_shortid":"SJmpK6W2k2"}],"is_frozen":false,"permissions":{"prevent_sandbox_export":false,"prevent_sandbox_leaving":false},"v2":false,"title":"example-e-commerce","version":22,"author":null,"npm_registries":[],"restrictions":{"free_plan_editing_restricted":false,"live_sessions_restricted":true},"id":"vvk4yn5n17","sdk":false,"screenshot_url":"https:\u002F\u002Fscreenshots.codesandbox.io\u002Fvvk4yn5n17\u002F22.png","preview_secret":null,"like_count":4,"inserted_at":"2018-01-24T14:27:52","team":null,"view_count":30664,"forked_template":null,"settings":{"ai_consent":null,"use_pint":false},"forked_template_sandbox":null,"template":"vue-cli","owned":false,"forked_from_sandbox":null,"collection":false,"user_liked":false,"npm_dependencies":{},"original_git":null};