diff --git a/app/Http/Controllers/DashboardController.php b/app/Http/Controllers/DashboardController.php new file mode 100644 index 0000000..fd63702 --- /dev/null +++ b/app/Http/Controllers/DashboardController.php @@ -0,0 +1,19 @@ + Product::count(), + 'employee' => Employee::count(), + ]); + } +} diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/UserController.php new file mode 100644 index 0000000..a65bfcd --- /dev/null +++ b/app/Http/Controllers/UserController.php @@ -0,0 +1,81 @@ +q != null) { + $query->where('name', 'like', '%'.$request->q.'%'); + } + + return inertia('Users', [ + 'users' => $query->paginate(10), + ]); + } + + /** + * Store a newly created resource in storage. + * + * @param \Illuminate\Http\Request $request + * @return \Illuminate\Http\Response + */ + public function store(Request $request) + { + $request->validate([ + 'name' => 'required|string', + 'email' => 'required|email', + 'password' => 'required|string|min:6', + ]); + + User::create($request->only(['name', 'email', 'password'])); + + return redirect()->route('users.index'); + } + + /** + * Update the specified resource in storage. + * + * @param \Illuminate\Http\Request $request + * @param int $id + * @return \Illuminate\Http\Response + */ + public function update(Request $request, User $user) + { + $request->validate([ + 'name' => 'required|string', + 'email' => 'required|email', + 'password' => 'nullable|string|min:6', + ]); + + $user->update($request->only(['name', 'email'])); + if ($request->password != null) { + $user->update(['password' => $request->password]); + } + + return redirect()->back(); + } + + /** + * Remove the specified resource from storage. + * + * @param int $id + * @return \Illuminate\Http\Response + */ + public function destroy(User $user) + { + $user->delete(); + return redirect()->back(); + } +} diff --git a/app/Models/Employee.php b/app/Models/Employee.php new file mode 100644 index 0000000..9bb65a4 --- /dev/null +++ b/app/Models/Employee.php @@ -0,0 +1,18 @@ + 'datetime', ]; + + public function setPasswordAttribute($value) + { + $this->attributes['password'] = bcrypt($value); + } } diff --git a/database/migrations/2021_12_30_083422_create_employees_table.php b/database/migrations/2021_12_30_083422_create_employees_table.php new file mode 100644 index 0000000..5f93352 --- /dev/null +++ b/database/migrations/2021_12_30_083422_create_employees_table.php @@ -0,0 +1,35 @@ +id(); + $table->string('name')->nullable(); + $table->string('photo')->nullable(); + $table->string('whatsapp')->nullable(); + $table->decimal('basic_salary')->default(0); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('employees'); + } +} diff --git a/database/migrations/2021_12_30_083622_create_products_table.php b/database/migrations/2021_12_30_083622_create_products_table.php new file mode 100644 index 0000000..215f4b8 --- /dev/null +++ b/database/migrations/2021_12_30_083622_create_products_table.php @@ -0,0 +1,35 @@ +id(); + $table->string('name')->nullable(); + $table->string('photo')->nullable(); + $table->decimal('price', 12, 2)->default(0); + $table->text('description')->nullable(); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('products'); + } +} diff --git a/database/migrations/2021_12_30_083843_create_payrolls_table.php b/database/migrations/2021_12_30_083843_create_payrolls_table.php new file mode 100644 index 0000000..ca31735 --- /dev/null +++ b/database/migrations/2021_12_30_083843_create_payrolls_table.php @@ -0,0 +1,38 @@ +id(); + $table->foreignId('employee_id')->constrained(); + $table->date('date')->nullable(); + $table->decimal('amount', 12, 2)->default(0); + $table->decimal('cuts', 12, 2)->default(0); + $table->decimal('bonus', 12, 2)->default(0); + $table->decimal('item_count', 12, 2)->default(0); + $table->decimal('recived', 12, 2)->default(0)->comment('amount + bonus - cuts'); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('payrolls'); + } +} diff --git a/package-lock.json b/package-lock.json index cf90d99..b1e7056 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6,7 +6,11 @@ "": { "dependencies": { "daisyui": "^1.20.0", - "react-datepicker": "^4.5.0" + "moment": "^2.29.1", + "react-datepicker": "^4.5.0", + "react-number-format": "^4.9.0", + "react-toastify": "^8.1.0", + "react-use": "^17.3.1" }, "devDependencies": { "@babel/preset-react": "^7.13.13", @@ -1645,7 +1649,6 @@ "version": "7.16.5", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.16.5.tgz", "integrity": "sha512-TXWihFIS3Pyv5hzR7j6ihmeLkZfrXGxAr5UfSl8CHf+6q/wpiYDkUau0czckpYG8QmnCIuPpdLtuA9VmuGGyMA==", - "dev": true, "dependencies": { "regenerator-runtime": "^0.13.4" }, @@ -1975,6 +1978,11 @@ "@types/svgo": "^1" } }, + "node_modules/@types/js-cookie": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/@types/js-cookie/-/js-cookie-2.2.7.tgz", + "integrity": "sha512-aLkWa0C0vO5b4Sr798E26QgOkss68Un0bLjs7u9qxzPT5CG+8DuNTffWES58YzJs3hrVAOs1wonycqEBqNJubA==" + }, "node_modules/@types/json-schema": { "version": "7.0.9", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", @@ -2193,6 +2201,11 @@ } } }, + "node_modules/@xobotyi/scrollbar-width": { + "version": "1.9.5", + "resolved": "https://registry.npmjs.org/@xobotyi/scrollbar-width/-/scrollbar-width-1.9.5.tgz", + "integrity": "sha512-N8tkAACJx2ww8vFMneJmaAgmjAG1tnVBZJRLRcx061tmsLRZHSEZSLuGWnwPtunsSLvSqXQ2wfp7Mgqg1I+2dQ==" + }, "node_modules/@xtuc/ieee754": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", @@ -3113,6 +3126,14 @@ "node": ">=6" } }, + "node_modules/clsx": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.1.1.tgz", + "integrity": "sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA==", + "engines": { + "node": ">=6" + } + }, "node_modules/collect.js": { "version": "4.29.3", "resolved": "https://registry.npmjs.org/collect.js/-/collect.js-4.29.3.tgz", @@ -3335,6 +3356,14 @@ "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", "dev": true }, + "node_modules/copy-to-clipboard": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.3.1.tgz", + "integrity": "sha512-i13qo6kIHTTpCm8/Wup+0b1mVWETvu2kIMzKoK8FpkLkFxlt0znUAHcMzox+T8sPlqtZXq3CulEjQHsYiGFJUw==", + "dependencies": { + "toggle-selection": "^1.0.6" + } + }, "node_modules/core-js-compat": { "version": "3.20.1", "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.20.1.tgz", @@ -3483,6 +3512,15 @@ "postcss": "^8.0.9" } }, + "node_modules/css-in-js-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/css-in-js-utils/-/css-in-js-utils-2.0.1.tgz", + "integrity": "sha512-PJF0SpJT+WdbVVt0AOYp9C8GnuruRlL/UFW7932nLWmFLQTaWEzTBQEx7/hn4BuV+WON75iAViSUJLiU3PKbpA==", + "dependencies": { + "hyphenate-style-name": "^1.0.2", + "isobject": "^3.0.1" + } + }, "node_modules/css-loader": { "version": "5.2.7", "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-5.2.7.tgz", @@ -3593,7 +3631,6 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", - "dev": true, "dependencies": { "mdn-data": "2.0.14", "source-map": "^0.6.1" @@ -3606,7 +3643,6 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -3723,6 +3759,11 @@ "node": ">=8.0.0" } }, + "node_modules/csstype": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.10.tgz", + "integrity": "sha512-2u44ZG2OcNUO9HDp/Jl8C07x6pU/eTR3ncV91SiK3dhG9TWvRVsCoJw14Ckx5DgWkzGA3waZWO3d7pgqpUI/XA==" + }, "node_modules/daisyui": { "version": "1.20.0", "resolved": "https://registry.npmjs.org/daisyui/-/daisyui-1.20.0.tgz", @@ -4198,6 +4239,14 @@ "is-arrayish": "^0.2.1" } }, + "node_modules/error-stack-parser": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.0.6.tgz", + "integrity": "sha512-d51brTeqC+BHlwF0BhPtcYgF5nlzf9ZZ0ZIUQNZpc9ZB9qw5IJ2diTrBY9jlCJkTLITYPjmiX6OWCwH+fuyNgQ==", + "dependencies": { + "stackframe": "^1.1.1" + } + }, "node_modules/es-module-lexer": { "version": "0.9.3", "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", @@ -4434,8 +4483,7 @@ "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, "node_modules/fast-glob": { "version": "3.2.7", @@ -4459,12 +4507,22 @@ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", "dev": true }, + "node_modules/fast-shallow-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fast-shallow-equal/-/fast-shallow-equal-1.0.0.tgz", + "integrity": "sha512-HPtaa38cPgWvaCFmRNhlc6NG7pv6NUHqjPgVAkWGoB9mQMwYB27/K0CvOM5Czy+qpT3e8XJ6Q4aPAnzpNpzNaw==" + }, "node_modules/fastest-levenshtein": { "version": "1.0.12", "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz", "integrity": "sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==", "dev": true }, + "node_modules/fastest-stable-stringify": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fastest-stable-stringify/-/fastest-stable-stringify-2.0.2.tgz", + "integrity": "sha512-bijHueCGd0LqqNK9b5oCMHc0MluJAx0cwqASgbWMvkO01lCYgIhacVRLcaDz3QnyYIRNJRDwMb41VuT6pHJ91Q==" + }, "node_modules/fastq": { "version": "1.13.0", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", @@ -5210,6 +5268,11 @@ "node": ">=10.17.0" } }, + "node_modules/hyphenate-style-name": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.0.4.tgz", + "integrity": "sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ==" + }, "node_modules/iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", @@ -5386,6 +5449,14 @@ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "dev": true }, + "node_modules/inline-style-prefixer": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/inline-style-prefixer/-/inline-style-prefixer-6.0.1.tgz", + "integrity": "sha512-AsqazZ8KcRzJ9YPN1wMH2aNM7lkWQ8tSPrW5uDk1ziYwiAPWSZnUsC7lfZq+BDqLqz0B4Pho5wscWcJzVvRzDQ==", + "dependencies": { + "css-in-js-utils": "^2.0.0" + } + }, "node_modules/internal-ip": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-6.2.0.tgz", @@ -5677,7 +5748,6 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -5720,6 +5790,11 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, + "node_modules/js-cookie": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-2.2.1.tgz", + "integrity": "sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ==" + }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -6133,8 +6208,7 @@ "node_modules/mdn-data": { "version": "2.0.14", "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", - "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", - "dev": true + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" }, "node_modules/media-typer": { "version": "0.3.0", @@ -6365,6 +6439,14 @@ "mkdirp": "bin/cmd.js" } }, + "node_modules/moment": { + "version": "2.29.1", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz", + "integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==", + "engines": { + "node": "*" + } + }, "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -6390,6 +6472,25 @@ "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", "dev": true }, + "node_modules/nano-css": { + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/nano-css/-/nano-css-5.3.4.tgz", + "integrity": "sha512-wfcviJB6NOxDIDfr7RFn/GlaN7I/Bhe4d39ZRCJ3xvZX60LVe2qZ+rDqM49nm4YT81gAjzS+ZklhKP/Gnfnubg==", + "dependencies": { + "css-tree": "^1.1.2", + "csstype": "^3.0.6", + "fastest-stable-stringify": "^2.0.2", + "inline-style-prefixer": "^6.0.0", + "rtl-css-js": "^1.14.0", + "sourcemap-codec": "^1.4.8", + "stacktrace-js": "^2.0.2", + "stylis": "^4.0.6" + }, + "peerDependencies": { + "react": "*", + "react-dom": "*" + } + }, "node_modules/nanoid": { "version": "3.1.30", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.30.tgz", @@ -7902,6 +8003,18 @@ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" }, + "node_modules/react-number-format": { + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/react-number-format/-/react-number-format-4.9.0.tgz", + "integrity": "sha512-HC4ZfvZSm6Gqq77/D4gz823XkvqK4AWAg4PxPv9Paz08hryAOnDjZk89iWmRLafeSOYG3TOx37ypHXMRez8q+w==", + "dependencies": { + "prop-types": "^15.7.2" + }, + "peerDependencies": { + "react": "^0.14 || ^15.0.0 || ^16.0.0 || ^17.0.0", + "react-dom": "^0.14 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, "node_modules/react-onclickoutside": { "version": "6.12.1", "resolved": "https://registry.npmjs.org/react-onclickoutside/-/react-onclickoutside-6.12.1.tgz", @@ -7928,6 +8041,52 @@ "react": "^16.8.0 || ^17" } }, + "node_modules/react-toastify": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/react-toastify/-/react-toastify-8.1.0.tgz", + "integrity": "sha512-M+Q3rTmEw/53Csr7NsV/YnldJe4c7uERcY7Tma9mvLU98QT2VhIkKwjBzzxZkJRk/oBKyUAtkyMjMgO00hx6gQ==", + "dependencies": { + "clsx": "^1.1.1" + }, + "peerDependencies": { + "react": ">=16", + "react-dom": ">=16" + } + }, + "node_modules/react-universal-interface": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/react-universal-interface/-/react-universal-interface-0.6.2.tgz", + "integrity": "sha512-dg8yXdcQmvgR13RIlZbTRQOoUrDciFVoSBZILwjE2LFISxZZ8loVJKAkuzswl5js8BHda79bIb2b84ehU8IjXw==", + "peerDependencies": { + "react": "*", + "tslib": "*" + } + }, + "node_modules/react-use": { + "version": "17.3.1", + "resolved": "https://registry.npmjs.org/react-use/-/react-use-17.3.1.tgz", + "integrity": "sha512-hs7+tS4rRm1QLHPfanLCqXIi632tP4V7Sai1ENUP2WTufU6am++tU9uSw9YrNCFqbABiEv0ndKU1XCUcfu2tXA==", + "dependencies": { + "@types/js-cookie": "^2.2.6", + "@xobotyi/scrollbar-width": "^1.9.5", + "copy-to-clipboard": "^3.3.1", + "fast-deep-equal": "^3.1.3", + "fast-shallow-equal": "^1.0.0", + "js-cookie": "^2.2.1", + "nano-css": "^5.3.1", + "react-universal-interface": "^0.6.2", + "resize-observer-polyfill": "^1.5.1", + "screenfull": "^5.1.0", + "set-harmonic-interval": "^1.0.1", + "throttle-debounce": "^3.0.1", + "ts-easing": "^0.2.0", + "tslib": "^2.1.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0", + "react-dom": "^16.8.0 || ^17.0.0" + } + }, "node_modules/read-cache": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", @@ -8006,8 +8165,7 @@ "node_modules/regenerator-runtime": { "version": "0.13.9", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==", - "dev": true + "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" }, "node_modules/regenerator-transform": { "version": "0.14.5", @@ -8120,6 +8278,11 @@ "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", "dev": true }, + "node_modules/resize-observer-polyfill": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz", + "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==" + }, "node_modules/resolve": { "version": "1.20.0", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", @@ -8198,6 +8361,14 @@ "inherits": "^2.0.1" } }, + "node_modules/rtl-css-js": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/rtl-css-js/-/rtl-css-js-1.15.0.tgz", + "integrity": "sha512-99Cu4wNNIhrI10xxUaABHsdDqzalrSRTie4GeCmbGVuehm4oj+fIy8fTzB+16pmKe8Bv9rl+hxIBez6KxExTew==", + "dependencies": { + "@babel/runtime": "^7.1.2" + } + }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -8260,6 +8431,17 @@ "url": "https://opencollective.com/webpack" } }, + "node_modules/screenfull": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/screenfull/-/screenfull-5.2.0.tgz", + "integrity": "sha512-9BakfsO2aUQN2K9Fdbj87RJIEZ82Q9IGim7FqM5OsebfoFC6ZHXgDq/KvniuLTPdeM8wY2o6Dj3WQ7KeQCj3cA==", + "engines": { + "node": ">=0.10.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/select-hose": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", @@ -8413,6 +8595,14 @@ "node": ">= 0.8.0" } }, + "node_modules/set-harmonic-interval": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/set-harmonic-interval/-/set-harmonic-interval-1.0.1.tgz", + "integrity": "sha512-AhICkFV84tBP1aWqPwLZqFvAwqEoVA9kxNMniGEUvzOlm4vLmOFLiTT3UZ6bziJTy4bOVpzWGTfSCbmaayGx8g==", + "engines": { + "node": ">=6.9" + } + }, "node_modules/setimmediate": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", @@ -8560,6 +8750,11 @@ "node": ">=0.10.0" } }, + "node_modules/sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" + }, "node_modules/spdy": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", @@ -8610,6 +8805,46 @@ "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", "dev": true }, + "node_modules/stack-generator": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/stack-generator/-/stack-generator-2.0.5.tgz", + "integrity": "sha512-/t1ebrbHkrLrDuNMdeAcsvynWgoH/i4o8EGGfX7dEYDoTXOYVAkEpFdtshlvabzc6JlJ8Kf9YdFEoz7JkzGN9Q==", + "dependencies": { + "stackframe": "^1.1.1" + } + }, + "node_modules/stackframe": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.2.0.tgz", + "integrity": "sha512-GrdeshiRmS1YLMYgzF16olf2jJ/IzxXY9lhKOskuVziubpTYcYqyOwYeJKzQkwy7uN0fYSsbsC4RQaXf9LCrYA==" + }, + "node_modules/stacktrace-gps": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/stacktrace-gps/-/stacktrace-gps-3.0.4.tgz", + "integrity": "sha512-qIr8x41yZVSldqdqe6jciXEaSCKw1U8XTXpjDuy0ki/apyTn/r3w9hDAAQOhZdxvsC93H+WwwEu5cq5VemzYeg==", + "dependencies": { + "source-map": "0.5.6", + "stackframe": "^1.1.1" + } + }, + "node_modules/stacktrace-gps/node_modules/source-map": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", + "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stacktrace-js": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/stacktrace-js/-/stacktrace-js-2.0.2.tgz", + "integrity": "sha512-Je5vBeY4S1r/RnLydLl0TBTi3F2qdfWmYsGvtfZgEI+SCprPppaIhQf5nGcal4gI4cGpCV/duLcAzT1np6sQqg==", + "dependencies": { + "error-stack-parser": "^2.0.6", + "stack-generator": "^2.0.5", + "stacktrace-gps": "^3.0.4" + } + }, "node_modules/statuses": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", @@ -8780,6 +9015,11 @@ "postcss": "^8.2.15" } }, + "node_modules/stylis": { + "version": "4.0.13", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.0.13.tgz", + "integrity": "sha512-xGPXiFVl4YED9Jh7Euv2V220mriG9u4B2TA6Ybjc1catrstKD2PpIdU3U0RKpkVBC2EhmL/F0sPCr9vrFTNRag==" + }, "node_modules/supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -9045,6 +9285,14 @@ "node": ">= 8" } }, + "node_modules/throttle-debounce": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-3.0.1.tgz", + "integrity": "sha512-dTEWWNu6JmeVXY0ZYoPuH5cRIwc0MeGbJwah9KUNYSJwommQpCzTySTpEe8Gs1J23aeWEuAobe4Ag7EHVt/LOg==", + "engines": { + "node": ">=10" + } + }, "node_modules/thunky": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", @@ -9108,6 +9356,11 @@ "node": ">=8.0" } }, + "node_modules/toggle-selection": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/toggle-selection/-/toggle-selection-1.0.6.tgz", + "integrity": "sha1-bkWxJj8gF/oKzH2J14sVuL932jI=" + }, "node_modules/toidentifier": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", @@ -9117,11 +9370,15 @@ "node": ">=0.6" } }, + "node_modules/ts-easing": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/ts-easing/-/ts-easing-0.2.0.tgz", + "integrity": "sha512-Z86EW+fFFh/IFB1fqQ3/+7Zpf9t2ebOAxNI/V6Wo7r5gqiqtxmgTlQ1qbqQcjLKYeSHPTsEmvlJUDg/EuL0uHQ==" + }, "node_modules/tslib": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", - "dev": true + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" }, "node_modules/tty-browserify": { "version": "0.0.0", @@ -11048,7 +11305,6 @@ "version": "7.16.5", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.16.5.tgz", "integrity": "sha512-TXWihFIS3Pyv5hzR7j6ihmeLkZfrXGxAr5UfSl8CHf+6q/wpiYDkUau0czckpYG8QmnCIuPpdLtuA9VmuGGyMA==", - "dev": true, "requires": { "regenerator-runtime": "^0.13.4" } @@ -11330,6 +11586,11 @@ "@types/svgo": "^1" } }, + "@types/js-cookie": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/@types/js-cookie/-/js-cookie-2.2.7.tgz", + "integrity": "sha512-aLkWa0C0vO5b4Sr798E26QgOkss68Un0bLjs7u9qxzPT5CG+8DuNTffWES58YzJs3hrVAOs1wonycqEBqNJubA==" + }, "@types/json-schema": { "version": "7.0.9", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", @@ -11535,6 +11796,11 @@ "dev": true, "requires": {} }, + "@xobotyi/scrollbar-width": { + "version": "1.9.5", + "resolved": "https://registry.npmjs.org/@xobotyi/scrollbar-width/-/scrollbar-width-1.9.5.tgz", + "integrity": "sha512-N8tkAACJx2ww8vFMneJmaAgmjAG1tnVBZJRLRcx061tmsLRZHSEZSLuGWnwPtunsSLvSqXQ2wfp7Mgqg1I+2dQ==" + }, "@xtuc/ieee754": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", @@ -12272,6 +12538,11 @@ "shallow-clone": "^3.0.0" } }, + "clsx": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.1.1.tgz", + "integrity": "sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA==" + }, "collect.js": { "version": "4.29.3", "resolved": "https://registry.npmjs.org/collect.js/-/collect.js-4.29.3.tgz", @@ -12456,6 +12727,14 @@ "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", "dev": true }, + "copy-to-clipboard": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.3.1.tgz", + "integrity": "sha512-i13qo6kIHTTpCm8/Wup+0b1mVWETvu2kIMzKoK8FpkLkFxlt0znUAHcMzox+T8sPlqtZXq3CulEjQHsYiGFJUw==", + "requires": { + "toggle-selection": "^1.0.6" + } + }, "core-js-compat": { "version": "3.20.1", "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.20.1.tgz", @@ -12583,6 +12862,15 @@ "timsort": "^0.3.0" } }, + "css-in-js-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/css-in-js-utils/-/css-in-js-utils-2.0.1.tgz", + "integrity": "sha512-PJF0SpJT+WdbVVt0AOYp9C8GnuruRlL/UFW7932nLWmFLQTaWEzTBQEx7/hn4BuV+WON75iAViSUJLiU3PKbpA==", + "requires": { + "hyphenate-style-name": "^1.0.2", + "isobject": "^3.0.1" + } + }, "css-loader": { "version": "5.2.7", "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-5.2.7.tgz", @@ -12662,7 +12950,6 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", - "dev": true, "requires": { "mdn-data": "2.0.14", "source-map": "^0.6.1" @@ -12671,8 +12958,7 @@ "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" } } }, @@ -12752,6 +13038,11 @@ "css-tree": "^1.1.2" } }, + "csstype": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.10.tgz", + "integrity": "sha512-2u44ZG2OcNUO9HDp/Jl8C07x6pU/eTR3ncV91SiK3dhG9TWvRVsCoJw14Ckx5DgWkzGA3waZWO3d7pgqpUI/XA==" + }, "daisyui": { "version": "1.20.0", "resolved": "https://registry.npmjs.org/daisyui/-/daisyui-1.20.0.tgz", @@ -13128,6 +13419,14 @@ "is-arrayish": "^0.2.1" } }, + "error-stack-parser": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.0.6.tgz", + "integrity": "sha512-d51brTeqC+BHlwF0BhPtcYgF5nlzf9ZZ0ZIUQNZpc9ZB9qw5IJ2diTrBY9jlCJkTLITYPjmiX6OWCwH+fuyNgQ==", + "requires": { + "stackframe": "^1.1.1" + } + }, "es-module-lexer": { "version": "0.9.3", "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", @@ -13312,8 +13611,7 @@ "fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, "fast-glob": { "version": "3.2.7", @@ -13334,12 +13632,22 @@ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", "dev": true }, + "fast-shallow-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fast-shallow-equal/-/fast-shallow-equal-1.0.0.tgz", + "integrity": "sha512-HPtaa38cPgWvaCFmRNhlc6NG7pv6NUHqjPgVAkWGoB9mQMwYB27/K0CvOM5Czy+qpT3e8XJ6Q4aPAnzpNpzNaw==" + }, "fastest-levenshtein": { "version": "1.0.12", "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz", "integrity": "sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==", "dev": true }, + "fastest-stable-stringify": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fastest-stable-stringify/-/fastest-stable-stringify-2.0.2.tgz", + "integrity": "sha512-bijHueCGd0LqqNK9b5oCMHc0MluJAx0cwqASgbWMvkO01lCYgIhacVRLcaDz3QnyYIRNJRDwMb41VuT6pHJ91Q==" + }, "fastq": { "version": "1.13.0", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", @@ -13895,6 +14203,11 @@ "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", "dev": true }, + "hyphenate-style-name": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.0.4.tgz", + "integrity": "sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ==" + }, "iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", @@ -14015,6 +14328,14 @@ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "dev": true }, + "inline-style-prefixer": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/inline-style-prefixer/-/inline-style-prefixer-6.0.1.tgz", + "integrity": "sha512-AsqazZ8KcRzJ9YPN1wMH2aNM7lkWQ8tSPrW5uDk1ziYwiAPWSZnUsC7lfZq+BDqLqz0B4Pho5wscWcJzVvRzDQ==", + "requires": { + "css-in-js-utils": "^2.0.0" + } + }, "internal-ip": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-6.2.0.tgz", @@ -14217,8 +14538,7 @@ "isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" }, "jest-worker": { "version": "27.4.5", @@ -14248,6 +14568,11 @@ } } }, + "js-cookie": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-2.2.1.tgz", + "integrity": "sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ==" + }, "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -14571,8 +14896,7 @@ "mdn-data": { "version": "2.0.14", "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", - "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", - "dev": true + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" }, "media-typer": { "version": "0.3.0", @@ -14745,6 +15069,11 @@ "minimist": "^1.2.5" } }, + "moment": { + "version": "2.29.1", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz", + "integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==" + }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -14767,6 +15096,21 @@ "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", "dev": true }, + "nano-css": { + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/nano-css/-/nano-css-5.3.4.tgz", + "integrity": "sha512-wfcviJB6NOxDIDfr7RFn/GlaN7I/Bhe4d39ZRCJ3xvZX60LVe2qZ+rDqM49nm4YT81gAjzS+ZklhKP/Gnfnubg==", + "requires": { + "css-tree": "^1.1.2", + "csstype": "^3.0.6", + "fastest-stable-stringify": "^2.0.2", + "inline-style-prefixer": "^6.0.0", + "rtl-css-js": "^1.14.0", + "sourcemap-codec": "^1.4.8", + "stacktrace-js": "^2.0.2", + "stylis": "^4.0.6" + } + }, "nanoid": { "version": "3.1.30", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.30.tgz", @@ -15826,6 +16170,14 @@ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" }, + "react-number-format": { + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/react-number-format/-/react-number-format-4.9.0.tgz", + "integrity": "sha512-HC4ZfvZSm6Gqq77/D4gz823XkvqK4AWAg4PxPv9Paz08hryAOnDjZk89iWmRLafeSOYG3TOx37ypHXMRez8q+w==", + "requires": { + "prop-types": "^15.7.2" + } + }, "react-onclickoutside": { "version": "6.12.1", "resolved": "https://registry.npmjs.org/react-onclickoutside/-/react-onclickoutside-6.12.1.tgz", @@ -15841,6 +16193,41 @@ "warning": "^4.0.2" } }, + "react-toastify": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/react-toastify/-/react-toastify-8.1.0.tgz", + "integrity": "sha512-M+Q3rTmEw/53Csr7NsV/YnldJe4c7uERcY7Tma9mvLU98QT2VhIkKwjBzzxZkJRk/oBKyUAtkyMjMgO00hx6gQ==", + "requires": { + "clsx": "^1.1.1" + } + }, + "react-universal-interface": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/react-universal-interface/-/react-universal-interface-0.6.2.tgz", + "integrity": "sha512-dg8yXdcQmvgR13RIlZbTRQOoUrDciFVoSBZILwjE2LFISxZZ8loVJKAkuzswl5js8BHda79bIb2b84ehU8IjXw==", + "requires": {} + }, + "react-use": { + "version": "17.3.1", + "resolved": "https://registry.npmjs.org/react-use/-/react-use-17.3.1.tgz", + "integrity": "sha512-hs7+tS4rRm1QLHPfanLCqXIi632tP4V7Sai1ENUP2WTufU6am++tU9uSw9YrNCFqbABiEv0ndKU1XCUcfu2tXA==", + "requires": { + "@types/js-cookie": "^2.2.6", + "@xobotyi/scrollbar-width": "^1.9.5", + "copy-to-clipboard": "^3.3.1", + "fast-deep-equal": "^3.1.3", + "fast-shallow-equal": "^1.0.0", + "js-cookie": "^2.2.1", + "nano-css": "^5.3.1", + "react-universal-interface": "^0.6.2", + "resize-observer-polyfill": "^1.5.1", + "screenfull": "^5.1.0", + "set-harmonic-interval": "^1.0.1", + "throttle-debounce": "^3.0.1", + "ts-easing": "^0.2.0", + "tslib": "^2.1.0" + } + }, "read-cache": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", @@ -15912,8 +16299,7 @@ "regenerator-runtime": { "version": "0.13.9", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==", - "dev": true + "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" }, "regenerator-transform": { "version": "0.14.5", @@ -16001,6 +16387,11 @@ "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", "dev": true }, + "resize-observer-polyfill": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz", + "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==" + }, "resolve": { "version": "1.20.0", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", @@ -16057,6 +16448,14 @@ "inherits": "^2.0.1" } }, + "rtl-css-js": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/rtl-css-js/-/rtl-css-js-1.15.0.tgz", + "integrity": "sha512-99Cu4wNNIhrI10xxUaABHsdDqzalrSRTie4GeCmbGVuehm4oj+fIy8fTzB+16pmKe8Bv9rl+hxIBez6KxExTew==", + "requires": { + "@babel/runtime": "^7.1.2" + } + }, "run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -16098,6 +16497,11 @@ "ajv-keywords": "^3.5.2" } }, + "screenfull": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/screenfull/-/screenfull-5.2.0.tgz", + "integrity": "sha512-9BakfsO2aUQN2K9Fdbj87RJIEZ82Q9IGim7FqM5OsebfoFC6ZHXgDq/KvniuLTPdeM8wY2o6Dj3WQ7KeQCj3cA==" + }, "select-hose": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", @@ -16242,6 +16646,11 @@ "send": "0.17.2" } }, + "set-harmonic-interval": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/set-harmonic-interval/-/set-harmonic-interval-1.0.1.tgz", + "integrity": "sha512-AhICkFV84tBP1aWqPwLZqFvAwqEoVA9kxNMniGEUvzOlm4vLmOFLiTT3UZ6bziJTy4bOVpzWGTfSCbmaayGx8g==" + }, "setimmediate": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", @@ -16364,6 +16773,11 @@ } } }, + "sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" + }, "spdy": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", @@ -16410,6 +16824,45 @@ "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", "dev": true }, + "stack-generator": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/stack-generator/-/stack-generator-2.0.5.tgz", + "integrity": "sha512-/t1ebrbHkrLrDuNMdeAcsvynWgoH/i4o8EGGfX7dEYDoTXOYVAkEpFdtshlvabzc6JlJ8Kf9YdFEoz7JkzGN9Q==", + "requires": { + "stackframe": "^1.1.1" + } + }, + "stackframe": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.2.0.tgz", + "integrity": "sha512-GrdeshiRmS1YLMYgzF16olf2jJ/IzxXY9lhKOskuVziubpTYcYqyOwYeJKzQkwy7uN0fYSsbsC4RQaXf9LCrYA==" + }, + "stacktrace-gps": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/stacktrace-gps/-/stacktrace-gps-3.0.4.tgz", + "integrity": "sha512-qIr8x41yZVSldqdqe6jciXEaSCKw1U8XTXpjDuy0ki/apyTn/r3w9hDAAQOhZdxvsC93H+WwwEu5cq5VemzYeg==", + "requires": { + "source-map": "0.5.6", + "stackframe": "^1.1.1" + }, + "dependencies": { + "source-map": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", + "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=" + } + } + }, + "stacktrace-js": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/stacktrace-js/-/stacktrace-js-2.0.2.tgz", + "integrity": "sha512-Je5vBeY4S1r/RnLydLl0TBTi3F2qdfWmYsGvtfZgEI+SCprPppaIhQf5nGcal4gI4cGpCV/duLcAzT1np6sQqg==", + "requires": { + "error-stack-parser": "^2.0.6", + "stack-generator": "^2.0.5", + "stacktrace-gps": "^3.0.4" + } + }, "statuses": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", @@ -16532,6 +16985,11 @@ "postcss-selector-parser": "^6.0.4" } }, + "stylis": { + "version": "4.0.13", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.0.13.tgz", + "integrity": "sha512-xGPXiFVl4YED9Jh7Euv2V220mriG9u4B2TA6Ybjc1catrstKD2PpIdU3U0RKpkVBC2EhmL/F0sPCr9vrFTNRag==" + }, "supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -16708,6 +17166,11 @@ } } }, + "throttle-debounce": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-3.0.1.tgz", + "integrity": "sha512-dTEWWNu6JmeVXY0ZYoPuH5cRIwc0MeGbJwah9KUNYSJwommQpCzTySTpEe8Gs1J23aeWEuAobe4Ag7EHVt/LOg==" + }, "thunky": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", @@ -16759,17 +17222,26 @@ "is-number": "^7.0.0" } }, + "toggle-selection": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/toggle-selection/-/toggle-selection-1.0.6.tgz", + "integrity": "sha1-bkWxJj8gF/oKzH2J14sVuL932jI=" + }, "toidentifier": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", "dev": true }, + "ts-easing": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/ts-easing/-/ts-easing-0.2.0.tgz", + "integrity": "sha512-Z86EW+fFFh/IFB1fqQ3/+7Zpf9t2ebOAxNI/V6Wo7r5gqiqtxmgTlQ1qbqQcjLKYeSHPTsEmvlJUDg/EuL0uHQ==" + }, "tslib": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", - "dev": true + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" }, "tty-browserify": { "version": "0.0.0", diff --git a/package.json b/package.json index aa37ed6..3ae0528 100644 --- a/package.json +++ b/package.json @@ -28,6 +28,10 @@ }, "dependencies": { "daisyui": "^1.20.0", - "react-datepicker": "^4.5.0" + "moment": "^2.29.1", + "react-datepicker": "^4.5.0", + "react-number-format": "^4.9.0", + "react-toastify": "^8.1.0", + "react-use": "^17.3.1" } } diff --git a/public/css/app.css b/public/css/app.css index 1311f39..eeee384 100644 --- a/public/css/app.css +++ b/public/css/app.css @@ -1162,6 +1162,13 @@ html { --tw-shadow: 0 0 0 1px var(--border-color) !important; } +[data-theme=lofi] *:where(.card) { + border-color: var(--border-color) !important; + --tw-border-opacity: 1 !important; + --tw-text-opacity: 1 !important; + --tw-shadow: 0 0 0 1px var(--border-color) !important; +} + [data-theme=pastel] { --p: 284 21.6% 80%; --pf: 282 21.6% 70%; @@ -1434,6 +1441,36 @@ html { --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; } +.alert>:not([hidden])~:not([hidden]) { + --tw-space-y-reverse: 0; + margin-top: calc(0.5rem*(1 - var(--tw-space-y-reverse))); + margin-bottom: calc(0.5rem*var(--tw-space-y-reverse)); +} +.alert { + display: flex; + flex-direction: column; + align-items: center; + justify-content: space-between; + --tw-bg-opacity: 1; + background-color: hsla(var(--b2) / var(--tw-bg-opacity, 1)); + padding: 1rem; + border-radius: var(--rounded-box, 1rem); +} +@media (min-width:768px) { + + .alert>:not([hidden])~:not([hidden]) { + --tw-space-y-reverse: 0; + margin-top: calc(0px*(1 - var(--tw-space-y-reverse))); + margin-bottom: calc(0px*var(--tw-space-y-reverse)); + } + + .alert { + flex-direction: row; + } +} +.alert>* { + display: flex; +} .avatar.placeholder>div { display: flex; align-items: center; @@ -1534,6 +1571,53 @@ html { .btn-group>input[type=radio].btn:before { content: attr(data-title); } +.card { + display: flex; + flex-direction: column; + overflow: hidden; + position: relative; + border-radius: var(--rounded-box, 1rem); +} +.card:focus { + outline: 2px solid transparent; + outline-offset: 2px; +} +.card-body { + display: flex; + flex-direction: column; + flex: 1 1 auto; + padding: var(--padding-card, 2rem); +} +.card figure,.card figure>* { + width: 100%; +} +.card.image-full { + display: grid; +} +.card.image-full:before { + position: relative; + content: ""; + --tw-bg-opacity: 1; + background-color: hsla(var(--n) / var(--tw-bg-opacity, 1)); + opacity: .75; + z-index: 10; + border-radius: var(--rounded-box, 1rem); +} +.card.image-full:before,.card.image-full>* { + grid-column-start: 1; + grid-row-start: 1; +} +.card.image-full>figure img { + height: 100%; + -o-object-fit: cover; + object-fit: cover; +} +.card.image-full>.card-body { + position: relative; + --tw-text-opacity: 1; + color: hsla(var(--nc) / var(--tw-text-opacity, 1)); + z-index: 20; +} .checkbox:focus { outline: 2px solid transparent; outline-offset: 2px; @@ -1615,6 +1699,112 @@ html { .menu :where(li).disabled>a,.menu :where(li).disabled>span { cursor: auto; } +.modal { + display: flex; + align-items: flex-end; + justify-content: center; + opacity: 0; + pointer-events: none; + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + visibility: hidden; + z-index: 999; + --tw-bg-opacity: 0.4; + background-color: hsla(var(--nf) / var(--tw-bg-opacity, 1)); + transition-property: background-color, border-color, color, fill, stroke, opacity, box-shadow, transform; + transition-duration: .2s; + transition-timing-function: cubic-bezier(.4, 0, .2, 1); +} +@media (min-width:640px) { + + .modal { + align-items: center; + } + + .modal-box { + max-width: 32rem; + --tw-scale-x: .9; + --tw-scale-y: .9; + --tw-translate-y: 0px; + border-bottom-left-radius: var(--rounded-box, 1rem); + border-bottom-right-radius: var(--rounded-box, 1rem); + } +} +.modal-open,.modal-toggle:checked+.modal,.modal:target { + opacity: 1; + pointer-events: auto; + visibility: visible; +} +.modal-action { + display: flex; + justify-content: flex-end; + margin-top: 1.5rem; +} +.select { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + cursor: pointer; + display: inline-flex; + flex-shrink: 0; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + height: 3rem; + font-size: .875rem; + line-height: 2; + padding-left: 1rem; + padding-right: 2.5rem; + min-height: 3rem; + --tw-bg-opacity: 1; + background-color: hsla(var(--b1) / var(--tw-bg-opacity, 1)); + --tw-border-opacity: 0; + border-color: hsla(var(--bc) / var(--tw-border-opacity, 1)); + border-width: 1px; + font-weight: 600; + transition-property: background-color, border-color, color, fill, stroke, opacity, box-shadow, transform; + transition-duration: .2s; + transition-timing-function: cubic-bezier(.4, 0, .2, 1); + border-radius: var(--rounded-btn, .5rem); + background-image: linear-gradient(45deg, transparent 50%, currentColor 0), + linear-gradient(135deg, currentColor 50%, transparent 0); + background-position: calc(100% - 20px) calc(1px + 50%), + calc(100% - 16px) calc(1px + 50%); + background-size: 4px 4px, + 4px 4px; + background-repeat: no-repeat; +} +.select:focus { + outline: 2px solid transparent; + outline-offset: 2px; + box-shadow: 0 0 0 2px hsl(var(--b1)), 0 0 0 4px hsla(var(--bc) / .2); +} +.select-disabled,.select[disabled] { + pointer-events: none; + --tw-bg-opacity: 1; + background-color: hsla(var(--b2) / var(--tw-bg-opacity, 1)); + --tw-border-opacity: 1; + border-color: hsla(var(--b2) / var(--tw-border-opacity, 1)); + cursor: not-allowed; + --tw-text-opacity: 0.2; +} +.table { + position: relative; + text-align: left; +} +.table th:first-child { + position: -webkit-sticky; + left: 0; + z-index: 10; +} +.toggle:focus { + outline: 2px solid transparent; + outline-offset: 2px; +} .btn .badge { --tw-bg-opacity: 1; background-color: hsla(var(--b1) / var(--tw-bg-opacity, 1)); @@ -1637,6 +1827,14 @@ html { --tw-text-opacity: 1; color: hsla(var(--pc) / var(--tw-text-opacity, 1)); } +.btn-outline.btn-secondary .badge { + --tw-bg-opacity: 1; + background-color: hsla(var(--s) / var(--tw-bg-opacity, 1)); + --tw-border-opacity: 1; + border-color: hsla(var(--s) / var(--tw-border-opacity, 1)); + --tw-text-opacity: 1; + color: hsla(var(--sc) / var(--tw-text-opacity, 1)); +} .btn-outline.btn-primary .badge-outline { background-color: transparent; --tw-border-opacity: 1; @@ -1644,6 +1842,13 @@ html { --tw-text-opacity: 1; color: hsla(var(--p) / var(--tw-text-opacity, 1)); } +.btn-outline.btn-secondary .badge-outline { + background-color: transparent; + --tw-border-opacity: 1; + border-color: hsla(var(--s) / var(--tw-border-opacity, 1)); + --tw-text-opacity: 1; + color: hsla(var(--s) / var(--tw-text-opacity, 1)); +} .btn-outline.btn-primary:hover .badge { --tw-bg-opacity: 1; background-color: hsla(var(--pc) / var(--tw-bg-opacity, 1)); @@ -1660,6 +1865,22 @@ html { --tw-text-opacity: 1; color: hsla(var(--pc) / var(--tw-text-opacity, 1)); } +.btn-outline.btn-secondary:hover .badge { + --tw-bg-opacity: 1; + background-color: hsla(var(--sc) / var(--tw-bg-opacity, 1)); + --tw-border-opacity: 1; + border-color: hsla(var(--sc) / var(--tw-border-opacity, 1)); + --tw-text-opacity: 1; + color: hsla(var(--s) / var(--tw-text-opacity, 1)); +} +.btn-outline.btn-secondary:hover .badge.outline { + --tw-bg-opacity: 1; + background-color: hsla(var(--sf) / var(--tw-bg-opacity, 1)); + --tw-border-opacity: 1; + border-color: hsla(var(--sc) / var(--tw-border-opacity, 1)); + --tw-text-opacity: 1; + color: hsla(var(--sc) / var(--tw-text-opacity, 1)); +} .btn:active:focus,.btn:active:hover { -webkit-animation: none; animation: none; @@ -1691,6 +1912,57 @@ html { .btn-primary:focus-visible { box-shadow: 0 0 0 2px hsl(var(--b1)), 0 0 0 4px hsl(var(--p)); } +.btn-secondary { + --tw-bg-opacity: 1; + background-color: hsla(var(--s) / var(--tw-bg-opacity, 1)); + --tw-border-opacity: 1; + border-color: hsla(var(--s) / var(--tw-border-opacity, 1)); + --tw-text-opacity: 1; + color: hsla(var(--sc) / var(--tw-text-opacity, 1)); +} +.btn-secondary.btn-active,.btn-secondary:hover { + --tw-bg-opacity: 1; + background-color: hsla(var(--sf) / var(--tw-bg-opacity, 1)); + --tw-border-opacity: 1; + border-color: hsla(var(--sf) / var(--tw-border-opacity, 1)); +} +.btn-secondary:focus-visible { + box-shadow: 0 0 0 2px hsl(var(--b1)), 0 0 0 4px hsl(var(--s)); +} +.btn-warning { + --tw-bg-opacity: 1; + background-color: hsla(var(--wa) / var(--tw-bg-opacity, 1)); + --tw-border-opacity: 1; + border-color: hsla(var(--wa) / var(--tw-border-opacity, 1)); + --tw-text-opacity: 1; + color: hsla(var(--b2) / var(--tw-text-opacity, 1)); +} +.btn-warning.btn-active,.btn-warning:hover { + --tw-bg-opacity: 1; + background-color: hsla(var(--wa) / var(--tw-bg-opacity, 1)); + --tw-border-opacity: 1; + border-color: hsla(var(--wa) / var(--tw-border-opacity, 1)); +} +.btn-warning:focus-visible { + box-shadow: 0 0 0 2px hsl(var(--b1)), 0 0 0 4px hsl(var(--wa)); +} +.btn-error { + --tw-bg-opacity: 1; + background-color: hsla(var(--er) / var(--tw-bg-opacity, 1)); + --tw-border-opacity: 1; + border-color: hsla(var(--er) / var(--tw-border-opacity, 1)); + --tw-text-opacity: 1; + color: hsla(var(--b2) / var(--tw-text-opacity, 1)); +} +.btn-error.btn-active,.btn-error:hover { + --tw-bg-opacity: 1; + background-color: hsla(var(--er) / var(--tw-bg-opacity, 1)); + --tw-border-opacity: 1; + border-color: hsla(var(--er) / var(--tw-border-opacity, 1)); +} +.btn-error:focus-visible { + box-shadow: 0 0 0 2px hsl(var(--b1)), 0 0 0 4px hsl(var(--er)); +} .btn.glass.btn-active,.btn.glass:hover { --glass-opacity: 25%; --glass-border-opacity: 15%; @@ -1710,6 +1982,42 @@ html { --tw-text-opacity: 1; color: hsla(var(--pc) / var(--tw-text-opacity, 1)); } +.btn-outline.btn-secondary { + --tw-text-opacity: 1; + color: hsla(var(--s) / var(--tw-text-opacity, 1)); +} +.btn-outline.btn-secondary:hover { + --tw-bg-opacity: 1; + background-color: hsla(var(--sf) / var(--tw-bg-opacity, 1)); + --tw-border-opacity: 1; + border-color: hsla(var(--sf) / var(--tw-border-opacity, 1)); + --tw-text-opacity: 1; + color: hsla(var(--sc) / var(--tw-text-opacity, 1)); +} +.btn-outline.btn-warning { + --tw-text-opacity: 1; + color: hsla(var(--wa) / var(--tw-text-opacity, 1)); +} +.btn-outline.btn-warning:hover { + --tw-bg-opacity: 1; + background-color: hsla(var(--wa) / var(--tw-bg-opacity, 1)); + --tw-border-opacity: 1; + border-color: hsla(var(--wa) / var(--tw-border-opacity, 1)); + --tw-text-opacity: 1; + color: hsla(var(--nc) / var(--tw-text-opacity, 1)); +} +.btn-outline.btn-error { + --tw-text-opacity: 1; + color: hsla(var(--er) / var(--tw-text-opacity, 1)); +} +.btn-outline.btn-error:hover { + --tw-bg-opacity: 1; + background-color: hsla(var(--er) / var(--tw-bg-opacity, 1)); + --tw-border-opacity: 1; + border-color: hsla(var(--er) / var(--tw-border-opacity, 1)); + --tw-text-opacity: 1; + color: hsla(var(--nc) / var(--tw-text-opacity, 1)); +} .btn.loading.btn-circle:before,.btn.loading.btn-square:before { margin-right: 0; } @@ -1769,6 +2077,22 @@ html { transform: scale(1); } } +.card:focus-visible { + box-shadow: 0 0 0 2px currentColor; +} +.card.bordered { + --tw-border-opacity: 1; + border-color: hsla(var(--b2) / var(--tw-border-opacity, 1)); + border-width: 1px; +} +.card.compact .card-body { + font-size: .875rem; + line-height: 1.25rem; + padding: 1rem; +} +.card.compact .card-title { + margin-bottom: .25rem; +} .checkbox { --chkbg: var(--bc); --chkfg: var(--b1); @@ -1832,6 +2156,15 @@ html { .drawer-toggle:focus-visible~.drawer-content .drawer-button.btn-primary { box-shadow: 0 0 0 2px hsl(var(--b1)), 0 0 0 4px hsl(var(--p)); } +.drawer-toggle:focus-visible~.drawer-content .drawer-button.btn-secondary { + box-shadow: 0 0 0 2px hsl(var(--b1)), 0 0 0 4px hsl(var(--s)); +} +.drawer-toggle:focus-visible~.drawer-content .drawer-button.btn-warning { + box-shadow: 0 0 0 2px hsl(var(--b1)), 0 0 0 4px hsl(var(--wa)); +} +.drawer-toggle:focus-visible~.drawer-content .drawer-button.btn-error { + box-shadow: 0 0 0 2px hsl(var(--b1)), 0 0 0 4px hsl(var(--er)); +} .label-text { font-size: .875rem; line-height: 1.25rem; @@ -1960,6 +2293,36 @@ html { --tw-text-opacity: 0.4; color: hsla(var(--bc) / var(--tw-text-opacity, 1)); } +.modal-box { + --tw-bg-opacity: 1; + background-color: hsla(var(--b1) / var(--tw-bg-opacity, 1)); + padding: 1.5rem; + width: 100%; + --tw-translate-x: 0; + --tw-translate-y: 2.5rem; + --tw-rotate: 0; + --tw-skew-x: 0; + --tw-skew-y: 0; + --tw-scale-x: 1; + --tw-scale-y: 1; + transform: translateX(var(--tw-translate-x)) translateY(var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); + transition-property: background-color, border-color, color, fill, stroke, opacity, box-shadow, transform; + transition-duration: .2s; + transition-timing-function: cubic-bezier(.4, 0, .2, 1); + border-top-left-radius: var(--rounded-box, 1rem); + border-top-right-radius: var(--rounded-box, 1rem); + box-shadow: 0 25px 50px -12px rgba(0, 0, 0, .25); +} +.modal-open .modal-box,.modal-toggle:checked+.modal .modal-box,.modal:target .modal-box { + --tw-scale-x: 1; + --tw-scale-y: 1; + --tw-translate-y: 0px; +} +.modal-action>:not([hidden])~:not([hidden]) { + --tw-space-x-reverse: 0; + margin-right: calc(0.5rem*var(--tw-space-x-reverse)); + margin-left: calc(0.5rem*(1 - var(--tw-space-x-reverse))); +} @-webkit-keyframes radiomark { 0% { @@ -1988,10 +2351,118 @@ html { box-shadow: 0 0 0 4px hsl(var(--b1)) inset, 0 0 0 4px hsl(var(--b1)) inset, var(--focus-shadow); } } +.select-disabled::-moz-placeholder,.select[disabled]::-moz-placeholder { + --tw-placeholder-opacity: 0.2; + color: hsla(var(--bc) / var(--tw-placeholder-opacity, 1)); +} +.select-disabled:-ms-input-placeholder,.select[disabled]:-ms-input-placeholder { + --tw-placeholder-opacity: 0.2; + color: hsla(var(--bc) / var(--tw-placeholder-opacity, 1)); +} +.select-disabled::-moz-placeholder, .select[disabled]::-moz-placeholder { + --tw-placeholder-opacity: 0.2; + color: hsla(var(--bc) / var(--tw-placeholder-opacity, 1)); +} +.select-disabled:-ms-input-placeholder, .select[disabled]:-ms-input-placeholder { + --tw-placeholder-opacity: 0.2; + color: hsla(var(--bc) / var(--tw-placeholder-opacity, 1)); +} +.select-disabled::placeholder,.select[disabled]::placeholder { + --tw-placeholder-opacity: 0.2; + color: hsla(var(--bc) / var(--tw-placeholder-opacity, 1)); +} +.table :where(th,td) { + padding: 1rem; + vertical-align: middle; + white-space: nowrap; +} .table tr.active:nth-child(2n) td,.table tr.active:nth-child(2n) th,.table tr.active td,.table tr.active th { --tw-bg-opacity: 1; background-color: hsla(var(--b3) / var(--tw-bg-opacity, 1)); } +.table tr.hover:hover td,.table tr.hover:hover th,.table tr.hover:nth-child(2n):hover td,.table tr.hover:nth-child(2n):hover th { + --tw-bg-opacity: 1; + background-color: hsla(var(--b3) / var(--tw-bg-opacity, 1)); +} +.table:where(:not(.table-zebra)) :where(thead,tbody,tfoot) :where(tr:not(:last-child) :where(th,td)) { + --tw-border-opacity: 1; + border-color: hsla(var(--b2) / var(--tw-border-opacity, 1)); + border-bottom-width: 1px; +} +.table :where(thead,tfoot) :where(th,td) { + --tw-bg-opacity: 1; + background-color: hsla(var(--b2) / var(--tw-bg-opacity, 1)); + font-weight: 700; + font-size: .75rem; + line-height: 1rem; + text-transform: uppercase; +} +.table :where(thead,tfoot) :where(th,td):first-child { + border-top-left-radius: .5rem; + border-bottom-left-radius: .5rem; +} +.table :where(thead,tfoot) :where(th,td):last-child { + border-top-right-radius: .5rem; + border-bottom-right-radius: .5rem; +} +.table :where(tbody th,tbody td) { + --tw-bg-opacity: 1; + background-color: hsla(var(--b1) / var(--tw-bg-opacity, 1)); +} +.table-zebra tbody tr td:first-child,.table-zebra tbody tr th:first-child { + border-top-left-radius: .5rem; + border-bottom-left-radius: .5rem; +} +.table-zebra tbody tr td:last-child,.table-zebra tbody tr th:last-child { + border-top-right-radius: .5rem; + border-bottom-right-radius: .5rem; +} +.table-zebra tbody tr:nth-child(2n) td,.table-zebra tbody tr:nth-child(2n) th { + --tw-bg-opacity: 1; + background-color: hsla(var(--b2) / var(--tw-bg-opacity, 1)); +} +.toggle { + --chkbg: hsla(var(--bc) / .2); + --focus-shadow: 0 0 0; + --handleoffset: 1.5rem; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + --tw-bg-opacity: 0.2; + background-color: hsla(var(--bc) / var(--tw-bg-opacity, 1)); + --tw-border-opacity: 0.2; + border-color: hsla(var(--bc) / var(--tw-border-opacity, 1)); + border-width: 1px; + cursor: pointer; + height: 1.5rem; + width: 3rem; + transition-timing-function: cubic-bezier(.4, 0, .2, 1); + transition-duration: .3s; + border-radius: var(--rounded-badge, 1.9rem); + transition: background,box-shadow var(--animation-input, .2s) ease-in-out; + box-shadow: calc(var(--handleoffset)*-1) 0 0 2px hsl(var(--b1)) inset, 0 0 0 2px hsl(var(--b1)) inset, var(--focus-shadow); +} +.toggle:focus-visible { + --focus-shadow: 0 0 0 2px hsl(var(--b1)), 0 0 0 4px hsl(var(--bc)); +} +.toggle:checked,.toggle[checked=true] { + --chkbg: hsl(var(--bc)); + --tw-bg-opacity: 1; + --tw-border-opacity: 1; + box-shadow: var(--handleoffset) 0 0 2px hsl(var(--b1)) inset, 0 0 0 2px hsl(var(--b1)) inset, var(--focus-shadow); +} +[dir=rtl] .toggle:checked,[dir=rtl] .toggle[checked=true] { + box-shadow: calc(var(--handleoffset)*1) 0 0 2px hsl(var(--b1)) inset, 0 0 0 2px hsl(var(--b1)) inset, var(--focus-shadow); +} +.toggle:disabled { + --tw-bg-opacity: 0.2; + background-color: hsla(var(--bc) / var(--tw-bg-opacity, 1)); + border-color: transparent; + cursor: not-allowed; +} +.visible { + visibility: visible; +} .fixed { position: fixed; } @@ -2025,16 +2496,29 @@ html { .z-50 { z-index: 50; } -.m-auto { - margin: auto; -} .mx-auto { margin-left: auto; margin-right: auto; } -.my-auto { - margin-top: auto; - margin-bottom: auto; +.my-2 { + margin-top: 0.5rem; + margin-bottom: 0.5rem; +} +.mx-2 { + margin-left: 0.5rem; + margin-right: 0.5rem; +} +.my-5 { + margin-top: 1.25rem; + margin-bottom: 1.25rem; +} +.mx-1 { + margin-left: 0.25rem; + margin-right: 0.25rem; +} +.my-1 { + margin-top: 0.25rem; + margin-bottom: 0.25rem; } .ml-3 { margin-left: 0.75rem; @@ -2084,18 +2568,27 @@ html { .-mr-2 { margin-right: -0.5rem; } +.mb-6 { + margin-bottom: 1.5rem; +} .mt-6 { margin-top: 1.5rem; } .mt-1 { margin-top: 0.25rem; } +.mr-1 { + margin-right: 0.25rem; +} +.mb-1 { + margin-bottom: 0.25rem; +} +.-mb-1 { + margin-bottom: -0.25rem; +} .mb-2 { margin-bottom: 0.5rem; } -.mb-6 { - margin-bottom: 1.5rem; -} .block { display: block; } @@ -2105,6 +2598,9 @@ html { .inline-flex { display: inline-flex; } +.table { + display: table; +} .grid { display: grid; } @@ -2126,9 +2622,6 @@ html { .h-6 { height: 1.5rem; } -.h-20 { - height: 5rem; -} .min-h-screen { min-height: 100vh; } @@ -2153,8 +2646,11 @@ html { .w-6 { width: 1.5rem; } -.w-20 { - width: 5rem; +.w-1\/6 { + width: 16.666667%; +} +.max-w-xl { + max-width: 36rem; } .max-w-6xl { max-width: 72rem; @@ -2162,9 +2658,6 @@ html { .max-w-7xl { max-width: 80rem; } -.max-w-xl { - max-width: 36rem; -} .flex-1 { flex: 1 1 0%; } @@ -2193,21 +2686,45 @@ html { .transform { transform: var(--tw-transform); } +@keyframes spin { + + to { + transform: rotate(360deg); + } +} +.animate-spin { + -webkit-animation: spin 1s linear infinite; + animation: spin 1s linear infinite; +} .cursor-default { cursor: default; } +.cursor-pointer { + cursor: pointer; +} .list-inside { list-style-position: inside; } .list-disc { list-style-type: disc; } +.appearance-none { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; +} .grid-cols-1 { grid-template-columns: repeat(1, minmax(0, 1fr)); } +.flex-row { + flex-direction: row; +} .flex-col { flex-direction: column; } +.flex-wrap { + flex-wrap: wrap; +} .items-start { align-items: flex-start; } @@ -2233,15 +2750,44 @@ html { margin-top: calc(0.25rem * calc(1 - var(--tw-space-y-reverse))); margin-bottom: calc(0.25rem * var(--tw-space-y-reverse)); } +.space-x-1 > :not([hidden]) ~ :not([hidden]) { + --tw-space-x-reverse: 0; + margin-right: calc(0.25rem * var(--tw-space-x-reverse)); + margin-left: calc(0.25rem * calc(1 - var(--tw-space-x-reverse))); +} +.space-x-4 > :not([hidden]) ~ :not([hidden]) { + --tw-space-x-reverse: 0; + margin-right: calc(1rem * var(--tw-space-x-reverse)); + margin-left: calc(1rem * calc(1 - var(--tw-space-x-reverse))); +} +.space-x-2 > :not([hidden]) ~ :not([hidden]) { + --tw-space-x-reverse: 0; + margin-right: calc(0.5rem * var(--tw-space-x-reverse)); + margin-left: calc(0.5rem * calc(1 - var(--tw-space-x-reverse))); +} +.space-y-2 > :not([hidden]) ~ :not([hidden]) { + --tw-space-y-reverse: 0; + margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse))); + margin-bottom: calc(0.5rem * var(--tw-space-y-reverse)); +} .overflow-hidden { overflow: hidden; } +.overflow-x-auto { + overflow-x: auto; +} +.overflow-y-auto { + overflow-y: auto; +} .rounded-md { border-radius: 0.375rem; } .rounded { border-radius: 0.25rem; } +.rounded-lg { + border-radius: 0.5rem; +} .rounded-l-md { border-top-left-radius: 0.375rem; border-bottom-left-radius: 0.375rem; @@ -2256,6 +2802,9 @@ html { .border-t { border-top-width: 1px; } +.border-r { + border-right-width: 1px; +} .border-b-2 { border-bottom-width: 2px; } @@ -2265,8 +2814,11 @@ html { .border-b { border-bottom-width: 1px; } -.border-r { - border-right-width: 1px; +.border-l-2 { + border-left-width: 2px; +} +.border-solid { + border-style: solid; } .border-gray-300 { --tw-border-opacity: 1; @@ -2276,20 +2828,36 @@ html { --tw-border-opacity: 1; border-color: rgb(229 231 235 / var(--tw-border-opacity)); } -.border-transparent { - border-color: transparent; +.border-gray-400 { + --tw-border-opacity: 1; + border-color: rgb(156 163 175 / var(--tw-border-opacity)); } .border-indigo-400 { --tw-border-opacity: 1; border-color: rgb(129 140 248 / var(--tw-border-opacity)); } +.border-transparent { + border-color: transparent; +} .border-gray-100 { --tw-border-opacity: 1; border-color: rgb(243 244 246 / var(--tw-border-opacity)); } -.border-gray-400 { +.border-neutral { --tw-border-opacity: 1; - border-color: rgb(156 163 175 / var(--tw-border-opacity)); + border-color: hsla(var(--n) / var(--tw-border-opacity)); +} +.border-gray-50 { + --tw-border-opacity: 1; + border-color: rgb(249 250 251 / var(--tw-border-opacity)); +} +.border-red-500 { + --tw-border-opacity: 1; + border-color: rgb(239 68 68 / var(--tw-border-opacity)); +} +.border-indigo-600 { + --tw-border-opacity: 1; + border-color: rgb(79 70 229 / var(--tw-border-opacity)); } .bg-white { --tw-bg-opacity: 1; @@ -2299,16 +2867,37 @@ html { --tw-bg-opacity: 1; background-color: rgb(243 244 246 / var(--tw-bg-opacity)); } -.bg-gray-900 { - --tw-bg-opacity: 1; - background-color: rgb(17 24 39 / var(--tw-bg-opacity)); -} .bg-indigo-50 { --tw-bg-opacity: 1; background-color: rgb(238 242 255 / var(--tw-bg-opacity)); } -.fill-current { - fill: currentColor; +.bg-blue-300 { + --tw-bg-opacity: 1; + background-color: rgb(147 197 253 / var(--tw-bg-opacity)); +} +.bg-primary { + --tw-bg-opacity: 1; + background-color: hsla(var(--p) / var(--tw-bg-opacity)); +} +.bg-primary-content { + --tw-bg-opacity: 1; + background-color: hsla(var(--pc) / var(--tw-bg-opacity)); +} +.bg-primary-focus { + --tw-bg-opacity: 1; + background-color: hsla(var(--pf) / var(--tw-bg-opacity)); +} +.bg-neutral { + --tw-bg-opacity: 1; + background-color: hsla(var(--n) / var(--tw-bg-opacity)); +} +.bg-gray-50 { + --tw-bg-opacity: 1; + background-color: rgb(249 250 251 / var(--tw-bg-opacity)); +} +.bg-indigo-600 { + --tw-bg-opacity: 1; + background-color: rgb(79 70 229 / var(--tw-bg-opacity)); } .p-6 { padding: 1.5rem; @@ -2316,6 +2905,9 @@ html { .p-2 { padding: 0.5rem; } +.p-1 { + padding: 0.25rem; +} .px-4 { padding-left: 1rem; padding-right: 1rem; @@ -2356,6 +2948,14 @@ html { padding-top: 3rem; padding-bottom: 3rem; } +.py-3 { + padding-top: 0.75rem; + padding-bottom: 0.75rem; +} +.py-8 { + padding-top: 2rem; + padding-bottom: 2rem; +} .pt-8 { padding-top: 2rem; } @@ -2383,12 +2983,21 @@ html { .pt-6 { padding-top: 1.5rem; } +.pl-2 { + padding-left: 0.5rem; +} +.pb-8 { + padding-bottom: 2rem; +} .text-left { text-align: left; } .text-center { text-align: center; } +.text-right { + text-align: right; +} .font-sans { font-family: Nunito, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; } @@ -2400,33 +3009,29 @@ html { font-size: 1.125rem; line-height: 1.75rem; } -.text-xs { - font-size: 0.75rem; - line-height: 1rem; +.text-2xl { + font-size: 1.5rem; + line-height: 2rem; } .text-base { font-size: 1rem; line-height: 1.5rem; } +.text-6xl { + font-size: 3.75rem; + line-height: 1; +} .text-xl { font-size: 1.25rem; line-height: 1.75rem; } -.text-2xl { - font-size: 1.5rem; - line-height: 2rem; -} .text-4xl { font-size: 2.25rem; line-height: 2.5rem; } -.text-8xl { - font-size: 6rem; - line-height: 1; -} -.text-6xl { - font-size: 3.75rem; - line-height: 1; +.text-3xl { + font-size: 1.875rem; + line-height: 2.25rem; } .font-medium { font-weight: 500; @@ -2455,9 +3060,6 @@ html { .leading-normal { line-height: 1.5; } -.tracking-widest { - letter-spacing: 0.1em; -} .tracking-wider { letter-spacing: 0.05em; } @@ -2489,10 +3091,6 @@ html { --tw-text-opacity: 1; color: rgb(17 24 39 / var(--tw-text-opacity)); } -.text-white { - --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity)); -} .text-indigo-600 { --tw-text-opacity: 1; color: rgb(79 70 229 / var(--tw-text-opacity)); @@ -2513,6 +3111,10 @@ html { --tw-text-opacity: 1; color: rgb(22 163 74 / var(--tw-text-opacity)); } +.text-white { + --tw-text-opacity: 1; + color: rgb(255 255 255 / var(--tw-text-opacity)); +} .underline { -webkit-text-decoration-line: underline; text-decoration-line: underline; @@ -2530,6 +3132,9 @@ html { .opacity-100 { opacity: 1; } +.bg-blend-darken { + background-blend-mode: darken; +} .shadow-sm { --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05); --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color); @@ -2550,6 +3155,10 @@ html { --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); } +.outline-none { + outline: 2px solid transparent; + outline-offset: 2px; +} .ring-1 { --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color); @@ -2595,6 +3204,10 @@ html { --tw-border-opacity: 1; border-color: rgb(209 213 219 / var(--tw-border-opacity)); } +.hover\:border-neutral-content:hover { + --tw-border-opacity: 1; + border-color: hsla(var(--nc) / var(--tw-border-opacity)); +} .hover\:bg-gray-100:hover { --tw-bg-opacity: 1; background-color: rgb(243 244 246 / var(--tw-bg-opacity)); @@ -2603,6 +3216,22 @@ html { --tw-bg-opacity: 1; background-color: rgb(249 250 251 / var(--tw-bg-opacity)); } +.hover\:bg-gray-600:hover { + --tw-bg-opacity: 1; + background-color: rgb(75 85 99 / var(--tw-bg-opacity)); +} +.hover\:bg-gray-300:hover { + --tw-bg-opacity: 1; + background-color: rgb(209 213 219 / var(--tw-bg-opacity)); +} +.hover\:bg-white:hover { + --tw-bg-opacity: 1; + background-color: rgb(255 255 255 / var(--tw-bg-opacity)); +} +.hover\:bg-indigo-400:hover { + --tw-bg-opacity: 1; + background-color: rgb(129 140 248 / var(--tw-bg-opacity)); +} .hover\:text-gray-500:hover { --tw-text-opacity: 1; color: rgb(107 114 128 / var(--tw-text-opacity)); @@ -2623,6 +3252,10 @@ html { --tw-text-opacity: 1; color: rgb(17 24 39 / var(--tw-text-opacity)); } +.hover\:text-white:hover { + --tw-text-opacity: 1; + color: rgb(255 255 255 / var(--tw-text-opacity)); +} .focus\:z-10:focus { z-index: 10; } @@ -2662,6 +3295,10 @@ html { --tw-text-opacity: 1; color: rgb(107 114 128 / var(--tw-text-opacity)); } +.focus\:text-indigo-700:focus { + --tw-text-opacity: 1; + color: rgb(67 56 202 / var(--tw-text-opacity)); +} .focus\:outline-none:focus { outline: 2px solid transparent; outline-offset: 2px; @@ -2682,10 +3319,6 @@ html { --tw-bg-opacity: 1; background-color: rgb(243 244 246 / var(--tw-bg-opacity)); } -.active\:bg-gray-900:active { - --tw-bg-opacity: 1; - background-color: rgb(17 24 39 / var(--tw-bg-opacity)); -} .active\:text-gray-700:active { --tw-text-opacity: 1; color: rgb(55 65 81 / var(--tw-text-opacity)); @@ -2725,6 +3358,10 @@ html { --tw-text-opacity: 1; color: rgb(156 163 175 / var(--tw-text-opacity)); } + + .dark\:bg-blend-darken { + background-blend-mode: darken; + } } @media (min-width: 640px) { diff --git a/public/js/app.js b/public/js/app.js index b03e182..0583a3a 100644 --- a/public/js/app.js +++ b/public/js/app.js @@ -3548,6 +3548,63 @@ function Label(_ref) { /***/ }), +/***/ "./resources/js/Components/ModalConfirm.js": +/*!*************************************************!*\ + !*** ./resources/js/Components/ModalConfirm.js ***! + \*************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ ModalConfirm) +/* harmony export */ }); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js"); +/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js"); + + + +function ModalConfirm(props) { + var isOpen = props.isOpen, + toggle = props.toggle, + _props$onConfirm = props.onConfirm, + onConfirm = _props$onConfirm === void 0 ? function () {} : _props$onConfirm; + + var handleConfirm = function handleConfirm() { + onConfirm(); + toggle(); + }; + + return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("div", { + className: "modal", + style: isOpen ? { + opacity: 1, + pointerEvents: 'auto', + visibility: 'visible' + } : {}, + children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)("div", { + className: "modal-box text-center", + children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("h1", { + className: "font-bold text-3xl py-8", + children: "Hapus Item ?" + }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)("div", { + className: "modal-action", + children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("div", { + onClick: handleConfirm, + className: "btn btn-primary", + children: "Ya" + }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("div", { + onClick: toggle, + className: "btn btn-secondary", + children: "Batal" + })] + })] + }) + }); +} + +/***/ }), + /***/ "./resources/js/Components/NavLink.js": /*!********************************************!*\ !*** ./resources/js/Components/NavLink.js ***! @@ -3580,6 +3637,76 @@ function NavLink(_ref) { /***/ }), +/***/ "./resources/js/Components/Pagination.js": +/*!***********************************************!*\ + !*** ./resources/js/Components/Pagination.js ***! + \***********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _inertiajs_inertia_react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @inertiajs/inertia-react */ "./node_modules/@inertiajs/inertia-react/dist/index.js"); +/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js"); + + + +var PageLink = function PageLink(_ref) { + var active = _ref.active, + label = _ref.label, + url = _ref.url; + var className = "mr-1 mb-1 px-4 py-3 border border-solid border-gray-300 rounded text-sm bg-white hover:bg-white ".concat(active && 'focus:outline-none focus:border-indigo-700 focus:text-indigo-700 border-indigo-600 bg-indigo-600 text-white hover:bg-indigo-400'); + return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_inertiajs_inertia_react__WEBPACK_IMPORTED_MODULE_0__.Link, { + className: className, + href: url, + children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("span", { + dangerouslySetInnerHTML: { + __html: label + } + }) + }); +}; // Previous, if on first page +// Next, if on last page +// and dots, if exists (...) + + +var PageInactive = function PageInactive(_ref2) { + var label = _ref2.label; + var className = 'mr-1 mb-1 px-4 py-3 text-sm border rounded border-solid border-gray-300 text-gray'; + return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("div", { + className: className, + dangerouslySetInnerHTML: { + __html: label + } + }); +}; + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (function (_ref3) { + var _ref3$links = _ref3.links, + links = _ref3$links === void 0 ? [] : _ref3$links; + // dont render, if there's only 1 page (previous, 1, next) + if (links.length === 3) return null; + return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("div", { + className: "flex flex-wrap mt-6 -mb-1", + children: links.map(function (_ref4) { + var active = _ref4.active, + label = _ref4.label, + url = _ref4.url; + return url === null ? /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(PageInactive, { + label: label + }, label) : /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(PageLink, { + label: label, + active: active, + url: url + }, label); + }) + }); +}); + +/***/ }), + /***/ "./resources/js/Components/ResponsiveNavLink.js": /*!******************************************************!*\ !*** ./resources/js/Components/ResponsiveNavLink.js ***! @@ -3653,6 +3780,76 @@ function ValidationErrors(_ref) { /***/ }), +/***/ "./resources/js/Hooks/index.js": +/*!*************************************!*\ + !*** ./resources/js/Hooks/index.js ***! + \*************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "useDebounce": () => (/* binding */ useDebounce), +/* harmony export */ "useModalState": () => (/* binding */ useModalState) +/* harmony export */ }); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js"); +function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } + +function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } + +function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } + +function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } + +function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } + +function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } + + +function useDebounce(value, delay) { + var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(value), + _useState2 = _slicedToArray(_useState, 2), + debouncedValue = _useState2[0], + setDebouncedValue = _useState2[1]; + + (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () { + var handler = setTimeout(function () { + setDebouncedValue(value); + }, delay); + return function () { + clearTimeout(handler); + }; + }, [value, delay]); + return debouncedValue; +} +function useModalState() { + var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + + var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(state), + _useState4 = _slicedToArray(_useState3, 2), + isOpen = _useState4[0], + setIsOpen = _useState4[1]; + + var toggle = function toggle() { + setIsOpen(!isOpen); + }; + + var _useState5 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null), + _useState6 = _slicedToArray(_useState5, 2), + data = _useState6[0], + setData = _useState6[1]; + + return { + isOpen: isOpen, + toggle: toggle, + setIsOpen: setIsOpen, + data: data, + setData: setData + }; +} + +/***/ }), + /***/ "./resources/js/Layouts/Authenticated.js": /*!***********************************************!*\ !*** ./resources/js/Layouts/Authenticated.js ***! @@ -3665,12 +3862,15 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ "default": () => (/* binding */ Authenticated) /* harmony export */ }); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js"); -/* harmony import */ var _Components_Dropdown__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/Components/Dropdown */ "./resources/js/Components/Dropdown.js"); -/* harmony import */ var _Components_NavLink__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/Components/NavLink */ "./resources/js/Components/NavLink.js"); -/* harmony import */ var _Components_ResponsiveNavLink__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/Components/ResponsiveNavLink */ "./resources/js/Components/ResponsiveNavLink.js"); -/* harmony import */ var _inertiajs_inertia_react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @inertiajs/inertia-react */ "./node_modules/@inertiajs/inertia-react/dist/index.js"); -/* harmony import */ var _Components_AppLogo__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/Components/AppLogo */ "./resources/js/Components/AppLogo.js"); -/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js"); +/* harmony import */ var react_toastify__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-toastify */ "./node_modules/react-toastify/dist/react-toastify.esm.js"); +/* harmony import */ var _inertiajs_inertia_react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @inertiajs/inertia-react */ "./node_modules/@inertiajs/inertia-react/dist/index.js"); +/* harmony import */ var _Components_Dropdown__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/Components/Dropdown */ "./resources/js/Components/Dropdown.js"); +/* harmony import */ var _Components_NavLink__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/Components/NavLink */ "./resources/js/Components/NavLink.js"); +/* harmony import */ var _Components_ResponsiveNavLink__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/Components/ResponsiveNavLink */ "./resources/js/Components/ResponsiveNavLink.js"); +/* harmony import */ var _Components_AppLogo__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/Components/AppLogo */ "./resources/js/Components/AppLogo.js"); +/* harmony import */ var _Modals_FormUserModal__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/Modals/FormUserModal */ "./resources/js/Modals/FormUserModal.js"); +/* harmony import */ var _Hooks__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/Hooks */ "./resources/js/Hooks/index.js"); +/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js"); function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } @@ -3691,6 +3891,9 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } + + + function Authenticated(_ref) { var auth = _ref.auth, header = _ref.header, @@ -3701,57 +3904,71 @@ function Authenticated(_ref) { showingNavigationDropdown = _useState2[0], setShowingNavigationDropdown = _useState2[1]; - return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)("div", { + var _useModalState = (0,_Hooks__WEBPACK_IMPORTED_MODULE_8__.useModalState)(false), + isOpen = _useModalState.isOpen, + toggle = _useModalState.toggle; + + return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxs)("div", { className: "min-h-screen bg-gray-100", - children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)("nav", { + children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxs)("nav", { className: "bg-white border-b border-gray-100", - children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("div", { + children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)("div", { className: "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8", - children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)("div", { + children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxs)("div", { className: "flex justify-between h-16", - children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)("div", { + children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxs)("div", { className: "flex", - children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("div", { + children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)("div", { className: "shrink-0 flex items-center", - children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(_inertiajs_inertia_react__WEBPACK_IMPORTED_MODULE_4__.Link, { + children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_inertiajs_inertia_react__WEBPACK_IMPORTED_MODULE_2__.Link, { href: "/", - children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(_Components_AppLogo__WEBPACK_IMPORTED_MODULE_5__["default"], {}) + children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_Components_AppLogo__WEBPACK_IMPORTED_MODULE_6__["default"], {}) }) - }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)("div", { + }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxs)("div", { className: "hidden space-x-8 sm:-my-px sm:ml-10 sm:flex", - children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(_Components_NavLink__WEBPACK_IMPORTED_MODULE_2__["default"], { + children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_Components_NavLink__WEBPACK_IMPORTED_MODULE_4__["default"], { href: route('dashboard'), active: route().current('dashboard'), children: "Dashboard" - }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(_Components_NavLink__WEBPACK_IMPORTED_MODULE_2__["default"], { + }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_Components_NavLink__WEBPACK_IMPORTED_MODULE_4__["default"], { + href: route('products.index'), + active: route().current('products.index'), children: "Barang" - }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(_Components_NavLink__WEBPACK_IMPORTED_MODULE_2__["default"], { + }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_Components_NavLink__WEBPACK_IMPORTED_MODULE_4__["default"], { + href: route('employees.index'), + active: route().current('employees.index'), children: "Karyawan" - }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(_Components_NavLink__WEBPACK_IMPORTED_MODULE_2__["default"], { + }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_Components_NavLink__WEBPACK_IMPORTED_MODULE_4__["default"], { + href: route('users.index'), + active: route().current('users.index'), children: "Users" - }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(_Components_NavLink__WEBPACK_IMPORTED_MODULE_2__["default"], { + }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_Components_NavLink__WEBPACK_IMPORTED_MODULE_4__["default"], { + href: route('payrolls.index'), + active: route().current('payrolls.index'), children: "Gaji" - }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(_Components_NavLink__WEBPACK_IMPORTED_MODULE_2__["default"], { + }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_Components_NavLink__WEBPACK_IMPORTED_MODULE_4__["default"], { + href: route('report'), + active: route().current('report'), children: "Laporan" })] })] - }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("div", { + }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)("div", { className: "hidden sm:flex sm:items-center sm:ml-6", - children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("div", { + children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)("div", { className: "ml-3 relative", - children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)(_Components_Dropdown__WEBPACK_IMPORTED_MODULE_1__["default"], { - children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(_Components_Dropdown__WEBPACK_IMPORTED_MODULE_1__["default"].Trigger, { - children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("span", { + children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxs)(_Components_Dropdown__WEBPACK_IMPORTED_MODULE_3__["default"], { + children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_Components_Dropdown__WEBPACK_IMPORTED_MODULE_3__["default"].Trigger, { + children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)("span", { className: "inline-flex rounded-md", - children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)("button", { + children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxs)("button", { type: "button", className: "inline-flex items-center px-3 py-2 border border-transparent text-sm leading-4 font-medium rounded-md text-gray-500 bg-white hover:text-gray-700 focus:outline-none transition ease-in-out duration-150", - children: [auth.user.name, /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("svg", { + children: [auth.user.name, /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)("svg", { className: "ml-2 -mr-0.5 h-4 w-4", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 20 20", fill: "currentColor", - children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("path", { + children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)("path", { fillRule: "evenodd", d: "M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z", clipRule: "evenodd" @@ -3759,13 +3976,12 @@ function Authenticated(_ref) { })] }) }) - }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)(_Components_Dropdown__WEBPACK_IMPORTED_MODULE_1__["default"].Content, { - children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(_Components_Dropdown__WEBPACK_IMPORTED_MODULE_1__["default"].Link, { - href: route('logout'), - method: "post", - as: "button", + }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxs)(_Components_Dropdown__WEBPACK_IMPORTED_MODULE_3__["default"].Content, { + children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)("div", { + onClick: toggle, + className: "block w-full px-4 py-2 text-left text-sm leading-5 text-gray-700 hover:bg-gray-100 focus:outline-none focus:bg-gray-100 transition duration-150 ease-in-out", children: "Profile" - }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(_Components_Dropdown__WEBPACK_IMPORTED_MODULE_1__["default"].Link, { + }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_Components_Dropdown__WEBPACK_IMPORTED_MODULE_3__["default"].Link, { href: route('logout'), method: "post", as: "button", @@ -3774,27 +3990,27 @@ function Authenticated(_ref) { })] }) }) - }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("div", { + }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)("div", { className: "-mr-2 flex items-center sm:hidden", - children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("button", { + children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)("button", { onClick: function onClick() { return setShowingNavigationDropdown(function (previousState) { return !previousState; }); }, className: "inline-flex items-center justify-center p-2 rounded-md text-gray-400 hover:text-gray-500 hover:bg-gray-100 focus:outline-none focus:bg-gray-100 focus:text-gray-500 transition duration-150 ease-in-out", - children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)("svg", { + children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxs)("svg", { className: "h-6 w-6", stroke: "currentColor", fill: "none", viewBox: "0 0 24 24", - children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("path", { + children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)("path", { className: !showingNavigationDropdown ? 'inline-flex' : 'hidden', strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: "2", d: "M4 6h16M4 12h16M4 18h16" - }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("path", { + }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)("path", { className: showingNavigationDropdown ? 'inline-flex' : 'hidden', strokeLinecap: "round", strokeLinejoin: "round", @@ -3805,29 +4021,50 @@ function Authenticated(_ref) { }) })] }) - }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)("div", { + }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxs)("div", { className: (showingNavigationDropdown ? 'block' : 'hidden') + ' sm:hidden', - children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("div", { + children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxs)("div", { className: "pt-2 pb-3 space-y-1", - children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(_Components_ResponsiveNavLink__WEBPACK_IMPORTED_MODULE_3__["default"], { + children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_Components_ResponsiveNavLink__WEBPACK_IMPORTED_MODULE_5__["default"], { href: route('dashboard'), active: route().current('dashboard'), children: "Dashboard" - }) - }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)("div", { + }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_Components_ResponsiveNavLink__WEBPACK_IMPORTED_MODULE_5__["default"], { + href: route('products.index'), + active: route().current('products.index'), + children: "Barang" + }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_Components_ResponsiveNavLink__WEBPACK_IMPORTED_MODULE_5__["default"], { + href: route('employees.index'), + active: route().current('employees.index'), + children: "Karyawan" + }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_Components_ResponsiveNavLink__WEBPACK_IMPORTED_MODULE_5__["default"], { + href: route('users.index'), + active: route().current('users.index'), + children: "Users" + }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_Components_ResponsiveNavLink__WEBPACK_IMPORTED_MODULE_5__["default"], { + href: route('payrolls.index'), + active: route().current('payrolls.index'), + children: "Gaji" + }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_Components_ResponsiveNavLink__WEBPACK_IMPORTED_MODULE_5__["default"], { + href: route('report'), + active: route().current('report'), + children: "Laporan" + })] + }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxs)("div", { className: "pt-4 pb-1 border-t border-gray-200", - children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)("div", { + children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxs)("div", { className: "px-4", - children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("div", { + onClick: toggle, + children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)("div", { className: "font-medium text-base text-gray-800 ", children: auth.user.name - }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("div", { + }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)("div", { className: "font-medium text-sm text-gray-500", children: auth.user.email })] - }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("div", { + }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)("div", { className: "mt-3 space-y-1", - children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(_Components_ResponsiveNavLink__WEBPACK_IMPORTED_MODULE_3__["default"], { + children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_Components_ResponsiveNavLink__WEBPACK_IMPORTED_MODULE_5__["default"], { method: "post", href: route('logout'), as: "button", @@ -3836,14 +4073,30 @@ function Authenticated(_ref) { })] })] })] - }), header && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("header", { + }), header && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)("header", { className: "bg-white shadow", - children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("div", { + children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)("div", { className: "max-w-7xl mx-auto py-6 px-4 sm:px-6 lg:px-8", children: header }) - }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("main", { + }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)("main", { + className: "max-w-7xl mx-auto", children: children + }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(react_toastify__WEBPACK_IMPORTED_MODULE_1__.ToastContainer, { + position: "top-right", + autoClose: 5000, + theme: "colored", + hideProgressBar: false, + newestOnTop: false, + closeOnClick: true, + rtl: false, + pauseOnFocusLoss: true, + draggable: true, + pauseOnHover: true + }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_Modals_FormUserModal__WEBPACK_IMPORTED_MODULE_7__["default"], { + isOpen: isOpen, + toggle: toggle, + user: auth.user })] }); } @@ -3890,6 +4143,182 @@ function Guest(_ref) { /***/ }), +/***/ "./resources/js/Modals/FormUserModal.js": +/*!**********************************************!*\ + !*** ./resources/js/Modals/FormUserModal.js ***! + \**********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ FormUserModal) +/* harmony export */ }); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js"); +/* harmony import */ var _inertiajs_inertia_react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @inertiajs/inertia-react */ "./node_modules/@inertiajs/inertia-react/dist/index.js"); +/* harmony import */ var react_toastify__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-toastify */ "./node_modules/react-toastify/dist/react-toastify.esm.js"); +/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js"); + + + + + +function FormUserModal(props) { + var isOpen = props.isOpen, + _props$toggle = props.toggle, + toggle = _props$toggle === void 0 ? function () {} : _props$toggle, + _props$user = props.user, + user = _props$user === void 0 ? null : _props$user; + + var _useForm = (0,_inertiajs_inertia_react__WEBPACK_IMPORTED_MODULE_1__.useForm)({ + name: '', + email: '', + password: '' + }), + data = _useForm.data, + setData = _useForm.setData, + post = _useForm.post, + put = _useForm.put, + processing = _useForm.processing, + errors = _useForm.errors, + reset = _useForm.reset, + clearErrors = _useForm.clearErrors; + + var handleOnChange = function handleOnChange(event) { + setData(event.target.name, event.target.value); + }; + + var handleReset = function handleReset() { + reset(); + clearErrors(); + }; + + var handleCancel = function handleCancel() { + handleReset(); + toggle(); + }; + + var handleSubmit = function handleSubmit() { + if (user !== null) { + put(route('users.update', user), { + onSuccess: function onSuccess() { + return Promise.all([handleReset(), toggle(), react_toastify__WEBPACK_IMPORTED_MODULE_2__.toast.success('The Data has been changed')]); + } + }); + return; + } + + post(route('users.store'), { + onSuccess: function onSuccess() { + return Promise.all([handleReset(), toggle(), react_toastify__WEBPACK_IMPORTED_MODULE_2__.toast.success('The Data has been saved')]); + } + }); + }; + + (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () { + setData({ + name: user === null || user === void 0 ? void 0 : user.name, + email: user === null || user === void 0 ? void 0 : user.email + }); + }, [user]); + return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("div", { + className: "modal", + style: isOpen ? { + opacity: 1, + pointerEvents: 'auto', + visibility: 'visible' + } : {}, + children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)("div", { + className: "modal-box", + children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("h1", { + className: "font-bold text-2xl pb-8", + children: "User" + }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)("div", { + className: "form-control", + children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("label", { + className: "label", + children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("span", { + className: "label-text", + children: "Nama" + }) + }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("input", { + type: "text", + placeholder: "nama", + className: "input input-bordered ".concat(errors.name && 'input-error'), + name: "name", + value: data.name, + onChange: handleOnChange + }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("label", { + className: "label", + children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("span", { + className: "label-text-alt", + children: errors.name + }) + })] + }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)("div", { + className: "form-control", + children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("label", { + className: "label", + children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("span", { + className: "label-text", + children: "Email" + }) + }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("input", { + type: "text", + placeholder: "email", + className: "input input-bordered ".concat(errors.email && 'input-error'), + name: "email", + value: data.email, + onChange: handleOnChange + }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("label", { + className: "label", + children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("span", { + className: "label-text-alt", + children: errors.email + }) + })] + }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)("div", { + className: "form-control", + children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("label", { + className: "label", + children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("span", { + className: "label-text", + children: "Password" + }) + }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("input", { + type: "password", + placeholder: "password", + className: "input input-bordered ".concat(errors.password && 'input-error'), + name: "password", + value: data.password, + onChange: handleOnChange + }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("label", { + className: "label", + children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("span", { + className: "label-text-alt", + children: errors.password + }) + })] + }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)("div", { + className: "modal-action", + children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("div", { + onClick: handleSubmit, + className: "btn btn-primary", + disabled: processing, + children: "Simpan" + }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("div", { + onClick: handleCancel, + className: "btn btn-secondary", + disabled: processing, + children: "Batal" + })] + })] + }) + }); +} + +/***/ }), + /***/ "./resources/js/Pages/Auth/ConfirmPassword.js": /*!****************************************************!*\ !*** ./resources/js/Pages/Auth/ConfirmPassword.js ***! @@ -4523,6 +4952,8 @@ __webpack_require__.r(__webpack_exports__); function Dashboard(props) { + var employee = props.employee, + product = props.product; return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_Layouts_Authenticated__WEBPACK_IMPORTED_MODULE_1__["default"], { auth: props.auth, errors: props.errors, @@ -4532,18 +4963,394 @@ function Dashboard(props) { }), children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_inertiajs_inertia_react__WEBPACK_IMPORTED_MODULE_2__.Head, { title: "Dashboard" + }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("div", { + className: "py-12", + children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)("div", { + className: "flex flex-row sm:px-6 lg:px-8 space-x-4", + children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("div", { + className: "bg-white overflow-hidden shadow-sm rounded-lg w-full", + children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)("div", { + className: "py-4 px-4 font-bold text-xl", + children: ["Barang", /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("div", { + className: "text-4xl", + children: product + })] + }) + }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("div", { + className: "bg-white overflow-hidden shadow-sm rounded-lg w-full", + children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)("div", { + className: "py-4 px-4 font-bold text-xl", + children: ["Karyawan", /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("div", { + className: "text-4xl", + children: employee + })] + }) + })] + }) + })] + }); +} + +/***/ }), + +/***/ "./resources/js/Pages/Employees.js": +/*!*****************************************!*\ + !*** ./resources/js/Pages/Employees.js ***! + \*****************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ Employees) +/* harmony export */ }); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js"); +/* harmony import */ var _Layouts_Authenticated__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/Layouts/Authenticated */ "./resources/js/Layouts/Authenticated.js"); +/* harmony import */ var _inertiajs_inertia_react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @inertiajs/inertia-react */ "./node_modules/@inertiajs/inertia-react/dist/index.js"); +/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js"); + + + + + +function Employees(props) { + return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_Layouts_Authenticated__WEBPACK_IMPORTED_MODULE_1__["default"], { + auth: props.auth, + errors: props.errors, + header: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("h2", { + className: "font-semibold text-xl text-gray-800 leading-tight", + children: "Keryawan" + }), + children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_inertiajs_inertia_react__WEBPACK_IMPORTED_MODULE_2__.Head, { + title: "Employees" }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("div", { className: "py-12", children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("div", { - className: "max-w-7xl mx-auto sm:px-6 lg:px-8", - children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("div", { - className: "bg-white overflow-hidden shadow-sm sm:rounded-lg", - children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("div", { - className: "p-6 bg-white border-b border-gray-200", - children: "You're logged in!" + className: "flex flex-row w-full sm:px-6 lg:px-8 space-x-4" + }) + })] + }); +} + +/***/ }), + +/***/ "./resources/js/Pages/Payrolls.js": +/*!****************************************!*\ + !*** ./resources/js/Pages/Payrolls.js ***! + \****************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ Payrolls) +/* harmony export */ }); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js"); +/* harmony import */ var _Layouts_Authenticated__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/Layouts/Authenticated */ "./resources/js/Layouts/Authenticated.js"); +/* harmony import */ var _inertiajs_inertia_react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @inertiajs/inertia-react */ "./node_modules/@inertiajs/inertia-react/dist/index.js"); +/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js"); + + + + + +function Payrolls(props) { + return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_Layouts_Authenticated__WEBPACK_IMPORTED_MODULE_1__["default"], { + auth: props.auth, + errors: props.errors, + header: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("h2", { + className: "font-semibold text-xl text-gray-800 leading-tight", + children: "Gaji" + }), + children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_inertiajs_inertia_react__WEBPACK_IMPORTED_MODULE_2__.Head, { + title: "Payrolls" + }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("div", { + className: "py-12", + children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("div", { + className: "flex flex-row w-full sm:px-6 lg:px-8 space-x-4" + }) + })] + }); +} + +/***/ }), + +/***/ "./resources/js/Pages/Products.js": +/*!****************************************!*\ + !*** ./resources/js/Pages/Products.js ***! + \****************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ Products) +/* harmony export */ }); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js"); +/* harmony import */ var _Layouts_Authenticated__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/Layouts/Authenticated */ "./resources/js/Layouts/Authenticated.js"); +/* harmony import */ var _inertiajs_inertia_react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @inertiajs/inertia-react */ "./node_modules/@inertiajs/inertia-react/dist/index.js"); +/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js"); + + + + + +function Products(props) { + return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_Layouts_Authenticated__WEBPACK_IMPORTED_MODULE_1__["default"], { + auth: props.auth, + errors: props.errors, + header: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("h2", { + className: "font-semibold text-xl text-gray-800 leading-tight", + children: "Barang" + }), + children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_inertiajs_inertia_react__WEBPACK_IMPORTED_MODULE_2__.Head, { + title: "Products" + }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("div", { + className: "py-12", + children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("div", { + className: "flex flex-col sm:px-6 lg:px-8 space-x-4" + }) + })] + }); +} + +/***/ }), + +/***/ "./resources/js/Pages/Report.js": +/*!**************************************!*\ + !*** ./resources/js/Pages/Report.js ***! + \**************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ Report) +/* harmony export */ }); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js"); +/* harmony import */ var _Layouts_Authenticated__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/Layouts/Authenticated */ "./resources/js/Layouts/Authenticated.js"); +/* harmony import */ var _inertiajs_inertia_react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @inertiajs/inertia-react */ "./node_modules/@inertiajs/inertia-react/dist/index.js"); +/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js"); + + + + + +function Report(props) { + return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_Layouts_Authenticated__WEBPACK_IMPORTED_MODULE_1__["default"], { + auth: props.auth, + errors: props.errors, + header: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("h2", { + className: "font-semibold text-xl text-gray-800 leading-tight", + children: "Laporan" + }), + children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_inertiajs_inertia_react__WEBPACK_IMPORTED_MODULE_2__.Head, { + title: "Report" + }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("div", { + className: "py-12", + children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("div", { + className: "flex flex-row w-full sm:px-6 lg:px-8 space-x-4" + }) + })] + }); +} + +/***/ }), + +/***/ "./resources/js/Pages/Users.js": +/*!*************************************!*\ + !*** ./resources/js/Pages/Users.js ***! + \*************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ Users) +/* harmony export */ }); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js"); +/* harmony import */ var _inertiajs_inertia_react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @inertiajs/inertia-react */ "./node_modules/@inertiajs/inertia-react/dist/index.js"); +/* harmony import */ var _inertiajs_inertia__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @inertiajs/inertia */ "./node_modules/@inertiajs/inertia/dist/index.js"); +/* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! react-use */ "./node_modules/react-use/esm/usePrevious.js"); +/* harmony import */ var react_toastify__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react-toastify */ "./node_modules/react-toastify/dist/react-toastify.esm.js"); +/* harmony import */ var _Hooks__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/Hooks */ "./resources/js/Hooks/index.js"); +/* harmony import */ var _Layouts_Authenticated__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/Layouts/Authenticated */ "./resources/js/Layouts/Authenticated.js"); +/* harmony import */ var _Components_Pagination__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/Components/Pagination */ "./resources/js/Components/Pagination.js"); +/* harmony import */ var _Components_ModalConfirm__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/Components/ModalConfirm */ "./resources/js/Components/ModalConfirm.js"); +/* harmony import */ var _Modals_FormUserModal__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/Modals/FormUserModal */ "./resources/js/Modals/FormUserModal.js"); +/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js"); +function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } + +function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } + +function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } + +function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } + +function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } + +function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } + + + + + + + + + + + + + +function Users(props) { + var _props$users = props.users, + users = _props$users.data, + links = _props$users.links; + + var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(''), + _useState2 = _slicedToArray(_useState, 2), + search = _useState2[0], + setSearch = _useState2[1]; + + var preValue = (0,react_use__WEBPACK_IMPORTED_MODULE_10__["default"])(search); + + var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null), + _useState4 = _slicedToArray(_useState3, 2), + user = _useState4[0], + setUser = _useState4[1]; + + var formModal = (0,_Hooks__WEBPACK_IMPORTED_MODULE_4__.useModalState)(false); + + var toggle = function toggle() { + var user = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; + setUser(user); + formModal.toggle(); + }; + + var confirmModal = (0,_Hooks__WEBPACK_IMPORTED_MODULE_4__.useModalState)(false); + + var handleDelete = function handleDelete(user) { + confirmModal.setData(user); + confirmModal.toggle(); + }; + + var onDelete = function onDelete() { + var user = confirmModal.data; + + if (user != null) { + _inertiajs_inertia__WEBPACK_IMPORTED_MODULE_2__.Inertia["delete"](route('users.destroy', user), { + onSuccess: function onSuccess() { + return react_toastify__WEBPACK_IMPORTED_MODULE_3__.toast.success('The Data has been deleted'); + } + }); + } + }; + + (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () { + if (preValue) { + _inertiajs_inertia__WEBPACK_IMPORTED_MODULE_2__.Inertia.get(route(route().current()), { + q: search + }, { + replace: true, + preserveState: true + }); + } + }, [search]); + return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxs)(_Layouts_Authenticated__WEBPACK_IMPORTED_MODULE_5__["default"], { + auth: props.auth, + errors: props.errors, + header: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)("h2", { + className: "font-semibold text-xl text-gray-800 leading-tight", + children: "Users" + }), + children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_inertiajs_inertia_react__WEBPACK_IMPORTED_MODULE_1__.Head, { + title: "Users" + }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)("div", { + className: "py-12", + children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)("div", { + className: "flex flex-col w-full sm:px-6 lg:px-8 space-y-2", + children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)("div", { + className: "card bg-white w-full", + children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxs)("div", { + className: "card-body", + children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxs)("div", { + className: "flex w-full mb-4 justify-between", + children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)("div", { + className: "btn btn-neutral", + onClick: function onClick() { + return toggle(); + }, + children: "Tambah" + }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)("div", { + className: "form-control", + children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)("input", { + type: "text", + className: "input input-bordered", + value: search, + onChange: function onChange(e) { + return setSearch(e.target.value); + }, + placeholder: "Search" + }) + })] + }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)("div", { + className: "overflow-x-auto", + children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxs)("table", { + className: "table w-full table-zebra", + children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)("thead", { + children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxs)("tr", { + children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)("th", { + children: "Id" + }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)("th", { + children: "Nama" + }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)("th", { + children: "Email" + }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)("th", {})] + }) + }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)("tbody", { + children: users === null || users === void 0 ? void 0 : users.map(function (user) { + return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxs)("tr", { + children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)("th", { + children: user.id + }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)("td", { + children: user.name + }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)("td", { + children: user.email + }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxs)("td", { + className: "text-right", + children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)("div", { + className: "btn btn-primary mx-1", + onClick: function onClick() { + return toggle(user); + }, + children: "Edit" + }), props.auth.user.id !== user.id && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)("div", { + className: "btn btn-secondary mx-1", + onClick: function onClick() { + return handleDelete(user); + }, + children: "Delete" + })] + })] + }, user.id); + }) + })] + }) + }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_Components_Pagination__WEBPACK_IMPORTED_MODULE_6__["default"], { + links: links + })] }) }) }) + }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_Modals_FormUserModal__WEBPACK_IMPORTED_MODULE_8__["default"], { + isOpen: formModal.isOpen, + toggle: toggle, + user: user + }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_Components_ModalConfirm__WEBPACK_IMPORTED_MODULE_7__["default"], { + isOpen: confirmModal.isOpen, + toggle: confirmModal.toggle, + onConfirm: onDelete })] }); } @@ -4562,7 +5369,8 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-dom */ "./node_modules/react-dom/index.js"); /* harmony import */ var _inertiajs_inertia_react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @inertiajs/inertia-react */ "./node_modules/@inertiajs/inertia-react/dist/index.js"); /* harmony import */ var _inertiajs_progress__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @inertiajs/progress */ "./node_modules/@inertiajs/progress/dist/index.js"); -/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js"); +/* harmony import */ var react_toastify_dist_ReactToastify_css__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react-toastify/dist/ReactToastify.css */ "./node_modules/react-toastify/dist/ReactToastify.css"); +/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js"); var _window$document$getE; function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } @@ -4578,6 +5386,7 @@ __webpack_require__(/*! ./bootstrap */ "./resources/js/bootstrap.js"); + var appName = ((_window$document$getE = window.document.getElementsByTagName('title')[0]) === null || _window$document$getE === void 0 ? void 0 : _window$document$getE.innerText) || 'Laravel'; (0,_inertiajs_inertia_react__WEBPACK_IMPORTED_MODULE_2__.createInertiaApp)({ title: function title(_title) { @@ -4590,11 +5399,11 @@ var appName = ((_window$document$getE = window.document.getElementsByTagName('ti var el = _ref.el, App = _ref.App, props = _ref.props; - return (0,react_dom__WEBPACK_IMPORTED_MODULE_1__.render)( /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(App, _objectSpread({}, props)), el); + return (0,react_dom__WEBPACK_IMPORTED_MODULE_1__.render)( /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(App, _objectSpread({}, props)), el); } }); _inertiajs_progress__WEBPACK_IMPORTED_MODULE_3__.InertiaProgress.init({ - color: '#4B5563' + color: '#570df8' }); /***/ }), @@ -4712,6 +5521,161 @@ if ($defineProperty) { } +/***/ }), + +/***/ "./node_modules/clsx/dist/clsx.m.js": +/*!******************************************!*\ + !*** ./node_modules/clsx/dist/clsx.m.js ***! + \******************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +function toVal(mix) { + var k, y, str=''; + + if (typeof mix === 'string' || typeof mix === 'number') { + str += mix; + } else if (typeof mix === 'object') { + if (Array.isArray(mix)) { + for (k=0; k < mix.length; k++) { + if (mix[k]) { + if (y = toVal(mix[k])) { + str && (str += ' '); + str += y; + } + } + } + } else { + for (k in mix) { + if (mix[k]) { + str && (str += ' '); + str += k; + } + } + } + } + + return str; +} + +/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__() { + var i=0, tmp, x, str=''; + while (i < arguments.length) { + if (tmp = arguments[i++]) { + if (x = toVal(tmp)) { + str && (str += ' '); + str += x + } + } + } + return str; +} + + +/***/ }), + +/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[6].oneOf[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[6].oneOf[1].use[2]!./node_modules/react-toastify/dist/ReactToastify.css": +/*!**********************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[6].oneOf[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[6].oneOf[1].use[2]!./node_modules/react-toastify/dist/ReactToastify.css ***! + \**********************************************************************************************************************************************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js"); +/* harmony import */ var _css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__); +// Imports + +var ___CSS_LOADER_EXPORT___ = _css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(function(i){return i[1]}); +// Module +___CSS_LOADER_EXPORT___.push([module.id, ":root {\n --toastify-color-light: #fff;\n --toastify-color-dark: #121212;\n --toastify-color-info: #3498db;\n --toastify-color-success: #07bc0c;\n --toastify-color-warning: #f1c40f;\n --toastify-color-error: #e74c3c;\n --toastify-color-transparent: rgba(255, 255, 255, 0.7);\n --toastify-icon-color-info: var(--toastify-color-info);\n --toastify-icon-color-success: var(--toastify-color-success);\n --toastify-icon-color-warning: var(--toastify-color-warning);\n --toastify-icon-color-error: var(--toastify-color-error);\n --toastify-toast-width: 320px;\n --toastify-toast-background: #fff;\n --toastify-toast-min-height: 64px;\n --toastify-toast-max-height: 800px;\n --toastify-font-family: sans-serif;\n --toastify-z-index: 9999;\n --toastify-text-color-light: #757575;\n --toastify-text-color-dark: #fff;\n --toastify-text-color-info: #fff;\n --toastify-text-color-success: #fff;\n --toastify-text-color-warning: #fff;\n --toastify-text-color-error: #fff;\n --toastify-spinner-color: #616161;\n --toastify-spinner-color-empty-area: #e0e0e0;\n --toastify-color-progress-light: linear-gradient(\n to right,\n #4cd964,\n #5ac8fa,\n #007aff,\n #34aadc,\n #5856d6,\n #ff2d55\n );\n --toastify-color-progress-dark: #bb86fc;\n --toastify-color-progress-info: var(--toastify-color-info);\n --toastify-color-progress-success: var(--toastify-color-success);\n --toastify-color-progress-warning: var(--toastify-color-warning);\n --toastify-color-progress-error: var(--toastify-color-error);\n}\n\n.Toastify__toast-container {\n z-index: var(--toastify-z-index);\n -webkit-transform: translate3d(0, 0, var(--toastify-z-index) px);\n position: fixed;\n padding: 4px;\n width: var(--toastify-toast-width);\n box-sizing: border-box;\n color: #fff;\n}\n.Toastify__toast-container--top-left {\n top: 1em;\n left: 1em;\n}\n.Toastify__toast-container--top-center {\n top: 1em;\n left: 50%;\n transform: translateX(-50%);\n}\n.Toastify__toast-container--top-right {\n top: 1em;\n right: 1em;\n}\n.Toastify__toast-container--bottom-left {\n bottom: 1em;\n left: 1em;\n}\n.Toastify__toast-container--bottom-center {\n bottom: 1em;\n left: 50%;\n transform: translateX(-50%);\n}\n.Toastify__toast-container--bottom-right {\n bottom: 1em;\n right: 1em;\n}\n\n@media only screen and (max-width : 480px) {\n .Toastify__toast-container {\n width: 100vw;\n padding: 0;\n left: 0;\n margin: 0;\n }\n .Toastify__toast-container--top-left, .Toastify__toast-container--top-center, .Toastify__toast-container--top-right {\n top: 0;\n transform: translateX(0);\n }\n .Toastify__toast-container--bottom-left, .Toastify__toast-container--bottom-center, .Toastify__toast-container--bottom-right {\n bottom: 0;\n transform: translateX(0);\n }\n .Toastify__toast-container--rtl {\n right: 0;\n left: initial;\n }\n}\n.Toastify__toast {\n position: relative;\n min-height: var(--toastify-toast-min-height);\n box-sizing: border-box;\n margin-bottom: 1rem;\n padding: 8px;\n border-radius: 4px;\n box-shadow: 0 1px 10px 0 rgba(0, 0, 0, 0.1), 0 2px 15px 0 rgba(0, 0, 0, 0.05);\n display: flex;\n justify-content: space-between;\n max-height: var(--toastify-toast-max-height);\n overflow: hidden;\n font-family: var(--toastify-font-family);\n cursor: pointer;\n direction: ltr;\n}\n.Toastify__toast--rtl {\n direction: rtl;\n}\n.Toastify__toast-body {\n margin: auto 0;\n flex: 1 1 auto;\n padding: 6px;\n display: flex;\n align-items: center;\n}\n.Toastify__toast-body > div:last-child {\n flex: 1;\n}\n.Toastify__toast-icon {\n -webkit-margin-end: 10px;\n margin-inline-end: 10px;\n width: 20px;\n flex-shrink: 0;\n display: flex;\n}\n\n.Toastify--animate {\n -webkit-animation-fill-mode: both;\n animation-fill-mode: both;\n -webkit-animation-duration: 0.7s;\n animation-duration: 0.7s;\n}\n\n.Toastify--animate-icon {\n -webkit-animation-fill-mode: both;\n animation-fill-mode: both;\n -webkit-animation-duration: 0.3s;\n animation-duration: 0.3s;\n}\n\n@media only screen and (max-width : 480px) {\n .Toastify__toast {\n margin-bottom: 0;\n border-radius: 0;\n }\n}\n.Toastify__toast-theme--dark {\n background: var(--toastify-color-dark);\n color: var(--toastify-text-color-dark);\n}\n.Toastify__toast-theme--light {\n background: var(--toastify-color-light);\n color: var(--toastify-text-color-light);\n}\n.Toastify__toast-theme--colored.Toastify__toast--default {\n background: var(--toastify-color-light);\n color: var(--toastify-text-color-light);\n}\n.Toastify__toast-theme--colored.Toastify__toast--info {\n color: var(--toastify-text-color-info);\n background: var(--toastify-color-info);\n}\n.Toastify__toast-theme--colored.Toastify__toast--success {\n color: var(--toastify-text-color-success);\n background: var(--toastify-color-success);\n}\n.Toastify__toast-theme--colored.Toastify__toast--warning {\n color: var(--toastify-text-color-warning);\n background: var(--toastify-color-warning);\n}\n.Toastify__toast-theme--colored.Toastify__toast--error {\n color: var(--toastify-text-color-error);\n background: var(--toastify-color-error);\n}\n\n.Toastify__progress-bar-theme--light {\n background: var(--toastify-color-progress-light);\n}\n.Toastify__progress-bar-theme--dark {\n background: var(--toastify-color-progress-dark);\n}\n.Toastify__progress-bar--info {\n background: var(--toastify-color-progress-info);\n}\n.Toastify__progress-bar--success {\n background: var(--toastify-color-progress-success);\n}\n.Toastify__progress-bar--warning {\n background: var(--toastify-color-progress-warning);\n}\n.Toastify__progress-bar--error {\n background: var(--toastify-color-progress-error);\n}\n.Toastify__progress-bar-theme--colored.Toastify__progress-bar--info, .Toastify__progress-bar-theme--colored.Toastify__progress-bar--success, .Toastify__progress-bar-theme--colored.Toastify__progress-bar--warning, .Toastify__progress-bar-theme--colored.Toastify__progress-bar--error {\n background: var(--toastify-color-transparent);\n}\n\n.Toastify__close-button {\n color: #fff;\n background: transparent;\n outline: none;\n border: none;\n padding: 0;\n cursor: pointer;\n opacity: 0.7;\n transition: 0.3s ease;\n align-self: flex-start;\n}\n.Toastify__close-button--light {\n color: #000;\n opacity: 0.3;\n}\n.Toastify__close-button > svg {\n fill: currentColor;\n height: 16px;\n width: 14px;\n}\n.Toastify__close-button:hover, .Toastify__close-button:focus {\n opacity: 1;\n}\n\n@-webkit-keyframes Toastify__trackProgress {\n 0% {\n transform: scaleX(1);\n }\n 100% {\n transform: scaleX(0);\n }\n}\n\n@keyframes Toastify__trackProgress {\n 0% {\n transform: scaleX(1);\n }\n 100% {\n transform: scaleX(0);\n }\n}\n.Toastify__progress-bar {\n position: absolute;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 5px;\n z-index: var(--toastify-z-index);\n opacity: 0.7;\n transform-origin: left;\n}\n.Toastify__progress-bar--animated {\n -webkit-animation: Toastify__trackProgress linear 1 forwards;\n animation: Toastify__trackProgress linear 1 forwards;\n}\n.Toastify__progress-bar--controlled {\n transition: transform 0.2s;\n}\n.Toastify__progress-bar--rtl {\n right: 0;\n left: initial;\n transform-origin: right;\n}\n\n.Toastify__spinner {\n width: 20px;\n height: 20px;\n box-sizing: border-box;\n border: 2px solid;\n border-radius: 100%;\n border-color: var(--toastify-spinner-color-empty-area);\n border-right-color: var(--toastify-spinner-color);\n -webkit-animation: Toastify__spin 0.65s linear infinite;\n animation: Toastify__spin 0.65s linear infinite;\n}\n\n@-webkit-keyframes Toastify__bounceInRight {\n from, 60%, 75%, 90%, to {\n -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n from {\n opacity: 0;\n transform: translate3d(3000px, 0, 0);\n }\n 60% {\n opacity: 1;\n transform: translate3d(-25px, 0, 0);\n }\n 75% {\n transform: translate3d(10px, 0, 0);\n }\n 90% {\n transform: translate3d(-5px, 0, 0);\n }\n to {\n transform: none;\n }\n}\n\n@keyframes Toastify__bounceInRight {\n from, 60%, 75%, 90%, to {\n -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n from {\n opacity: 0;\n transform: translate3d(3000px, 0, 0);\n }\n 60% {\n opacity: 1;\n transform: translate3d(-25px, 0, 0);\n }\n 75% {\n transform: translate3d(10px, 0, 0);\n }\n 90% {\n transform: translate3d(-5px, 0, 0);\n }\n to {\n transform: none;\n }\n}\n@-webkit-keyframes Toastify__bounceOutRight {\n 20% {\n opacity: 1;\n transform: translate3d(-20px, 0, 0);\n }\n to {\n opacity: 0;\n transform: translate3d(2000px, 0, 0);\n }\n}\n@keyframes Toastify__bounceOutRight {\n 20% {\n opacity: 1;\n transform: translate3d(-20px, 0, 0);\n }\n to {\n opacity: 0;\n transform: translate3d(2000px, 0, 0);\n }\n}\n@-webkit-keyframes Toastify__bounceInLeft {\n from, 60%, 75%, 90%, to {\n -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n 0% {\n opacity: 0;\n transform: translate3d(-3000px, 0, 0);\n }\n 60% {\n opacity: 1;\n transform: translate3d(25px, 0, 0);\n }\n 75% {\n transform: translate3d(-10px, 0, 0);\n }\n 90% {\n transform: translate3d(5px, 0, 0);\n }\n to {\n transform: none;\n }\n}\n@keyframes Toastify__bounceInLeft {\n from, 60%, 75%, 90%, to {\n -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n 0% {\n opacity: 0;\n transform: translate3d(-3000px, 0, 0);\n }\n 60% {\n opacity: 1;\n transform: translate3d(25px, 0, 0);\n }\n 75% {\n transform: translate3d(-10px, 0, 0);\n }\n 90% {\n transform: translate3d(5px, 0, 0);\n }\n to {\n transform: none;\n }\n}\n@-webkit-keyframes Toastify__bounceOutLeft {\n 20% {\n opacity: 1;\n transform: translate3d(20px, 0, 0);\n }\n to {\n opacity: 0;\n transform: translate3d(-2000px, 0, 0);\n }\n}\n@keyframes Toastify__bounceOutLeft {\n 20% {\n opacity: 1;\n transform: translate3d(20px, 0, 0);\n }\n to {\n opacity: 0;\n transform: translate3d(-2000px, 0, 0);\n }\n}\n@-webkit-keyframes Toastify__bounceInUp {\n from, 60%, 75%, 90%, to {\n -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n from {\n opacity: 0;\n transform: translate3d(0, 3000px, 0);\n }\n 60% {\n opacity: 1;\n transform: translate3d(0, -20px, 0);\n }\n 75% {\n transform: translate3d(0, 10px, 0);\n }\n 90% {\n transform: translate3d(0, -5px, 0);\n }\n to {\n transform: translate3d(0, 0, 0);\n }\n}\n@keyframes Toastify__bounceInUp {\n from, 60%, 75%, 90%, to {\n -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n from {\n opacity: 0;\n transform: translate3d(0, 3000px, 0);\n }\n 60% {\n opacity: 1;\n transform: translate3d(0, -20px, 0);\n }\n 75% {\n transform: translate3d(0, 10px, 0);\n }\n 90% {\n transform: translate3d(0, -5px, 0);\n }\n to {\n transform: translate3d(0, 0, 0);\n }\n}\n@-webkit-keyframes Toastify__bounceOutUp {\n 20% {\n transform: translate3d(0, -10px, 0);\n }\n 40%, 45% {\n opacity: 1;\n transform: translate3d(0, 20px, 0);\n }\n to {\n opacity: 0;\n transform: translate3d(0, -2000px, 0);\n }\n}\n@keyframes Toastify__bounceOutUp {\n 20% {\n transform: translate3d(0, -10px, 0);\n }\n 40%, 45% {\n opacity: 1;\n transform: translate3d(0, 20px, 0);\n }\n to {\n opacity: 0;\n transform: translate3d(0, -2000px, 0);\n }\n}\n@-webkit-keyframes Toastify__bounceInDown {\n from, 60%, 75%, 90%, to {\n -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n 0% {\n opacity: 0;\n transform: translate3d(0, -3000px, 0);\n }\n 60% {\n opacity: 1;\n transform: translate3d(0, 25px, 0);\n }\n 75% {\n transform: translate3d(0, -10px, 0);\n }\n 90% {\n transform: translate3d(0, 5px, 0);\n }\n to {\n transform: none;\n }\n}\n@keyframes Toastify__bounceInDown {\n from, 60%, 75%, 90%, to {\n -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n 0% {\n opacity: 0;\n transform: translate3d(0, -3000px, 0);\n }\n 60% {\n opacity: 1;\n transform: translate3d(0, 25px, 0);\n }\n 75% {\n transform: translate3d(0, -10px, 0);\n }\n 90% {\n transform: translate3d(0, 5px, 0);\n }\n to {\n transform: none;\n }\n}\n@-webkit-keyframes Toastify__bounceOutDown {\n 20% {\n transform: translate3d(0, 10px, 0);\n }\n 40%, 45% {\n opacity: 1;\n transform: translate3d(0, -20px, 0);\n }\n to {\n opacity: 0;\n transform: translate3d(0, 2000px, 0);\n }\n}\n@keyframes Toastify__bounceOutDown {\n 20% {\n transform: translate3d(0, 10px, 0);\n }\n 40%, 45% {\n opacity: 1;\n transform: translate3d(0, -20px, 0);\n }\n to {\n opacity: 0;\n transform: translate3d(0, 2000px, 0);\n }\n}\n.Toastify__bounce-enter--top-left, .Toastify__bounce-enter--bottom-left {\n -webkit-animation-name: Toastify__bounceInLeft;\n animation-name: Toastify__bounceInLeft;\n}\n.Toastify__bounce-enter--top-right, .Toastify__bounce-enter--bottom-right {\n -webkit-animation-name: Toastify__bounceInRight;\n animation-name: Toastify__bounceInRight;\n}\n.Toastify__bounce-enter--top-center {\n -webkit-animation-name: Toastify__bounceInDown;\n animation-name: Toastify__bounceInDown;\n}\n.Toastify__bounce-enter--bottom-center {\n -webkit-animation-name: Toastify__bounceInUp;\n animation-name: Toastify__bounceInUp;\n}\n\n.Toastify__bounce-exit--top-left, .Toastify__bounce-exit--bottom-left {\n -webkit-animation-name: Toastify__bounceOutLeft;\n animation-name: Toastify__bounceOutLeft;\n}\n.Toastify__bounce-exit--top-right, .Toastify__bounce-exit--bottom-right {\n -webkit-animation-name: Toastify__bounceOutRight;\n animation-name: Toastify__bounceOutRight;\n}\n.Toastify__bounce-exit--top-center {\n -webkit-animation-name: Toastify__bounceOutUp;\n animation-name: Toastify__bounceOutUp;\n}\n.Toastify__bounce-exit--bottom-center {\n -webkit-animation-name: Toastify__bounceOutDown;\n animation-name: Toastify__bounceOutDown;\n}\n\n@-webkit-keyframes Toastify__zoomIn {\n from {\n opacity: 0;\n transform: scale3d(0.3, 0.3, 0.3);\n }\n 50% {\n opacity: 1;\n }\n}\n\n@keyframes Toastify__zoomIn {\n from {\n opacity: 0;\n transform: scale3d(0.3, 0.3, 0.3);\n }\n 50% {\n opacity: 1;\n }\n}\n@-webkit-keyframes Toastify__zoomOut {\n from {\n opacity: 1;\n }\n 50% {\n opacity: 0;\n transform: scale3d(0.3, 0.3, 0.3);\n }\n to {\n opacity: 0;\n }\n}\n@keyframes Toastify__zoomOut {\n from {\n opacity: 1;\n }\n 50% {\n opacity: 0;\n transform: scale3d(0.3, 0.3, 0.3);\n }\n to {\n opacity: 0;\n }\n}\n.Toastify__zoom-enter {\n -webkit-animation-name: Toastify__zoomIn;\n animation-name: Toastify__zoomIn;\n}\n\n.Toastify__zoom-exit {\n -webkit-animation-name: Toastify__zoomOut;\n animation-name: Toastify__zoomOut;\n}\n\n@-webkit-keyframes Toastify__flipIn {\n from {\n transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n opacity: 0;\n }\n 40% {\n transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n }\n 60% {\n transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n opacity: 1;\n }\n 80% {\n transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n }\n to {\n transform: perspective(400px);\n }\n}\n\n@keyframes Toastify__flipIn {\n from {\n transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n opacity: 0;\n }\n 40% {\n transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n -webkit-animation-timing-function: ease-in;\n animation-timing-function: ease-in;\n }\n 60% {\n transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n opacity: 1;\n }\n 80% {\n transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n }\n to {\n transform: perspective(400px);\n }\n}\n@-webkit-keyframes Toastify__flipOut {\n from {\n transform: perspective(400px);\n }\n 30% {\n transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n opacity: 1;\n }\n to {\n transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n opacity: 0;\n }\n}\n@keyframes Toastify__flipOut {\n from {\n transform: perspective(400px);\n }\n 30% {\n transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n opacity: 1;\n }\n to {\n transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n opacity: 0;\n }\n}\n.Toastify__flip-enter {\n -webkit-animation-name: Toastify__flipIn;\n animation-name: Toastify__flipIn;\n}\n\n.Toastify__flip-exit {\n -webkit-animation-name: Toastify__flipOut;\n animation-name: Toastify__flipOut;\n}\n\n@-webkit-keyframes Toastify__slideInRight {\n from {\n transform: translate3d(110%, 0, 0);\n visibility: visible;\n }\n to {\n transform: translate3d(0, 0, 0);\n }\n}\n\n@keyframes Toastify__slideInRight {\n from {\n transform: translate3d(110%, 0, 0);\n visibility: visible;\n }\n to {\n transform: translate3d(0, 0, 0);\n }\n}\n@-webkit-keyframes Toastify__slideInLeft {\n from {\n transform: translate3d(-110%, 0, 0);\n visibility: visible;\n }\n to {\n transform: translate3d(0, 0, 0);\n }\n}\n@keyframes Toastify__slideInLeft {\n from {\n transform: translate3d(-110%, 0, 0);\n visibility: visible;\n }\n to {\n transform: translate3d(0, 0, 0);\n }\n}\n@-webkit-keyframes Toastify__slideInUp {\n from {\n transform: translate3d(0, 110%, 0);\n visibility: visible;\n }\n to {\n transform: translate3d(0, 0, 0);\n }\n}\n@keyframes Toastify__slideInUp {\n from {\n transform: translate3d(0, 110%, 0);\n visibility: visible;\n }\n to {\n transform: translate3d(0, 0, 0);\n }\n}\n@-webkit-keyframes Toastify__slideInDown {\n from {\n transform: translate3d(0, -110%, 0);\n visibility: visible;\n }\n to {\n transform: translate3d(0, 0, 0);\n }\n}\n@keyframes Toastify__slideInDown {\n from {\n transform: translate3d(0, -110%, 0);\n visibility: visible;\n }\n to {\n transform: translate3d(0, 0, 0);\n }\n}\n@-webkit-keyframes Toastify__slideOutRight {\n from {\n transform: translate3d(0, 0, 0);\n }\n to {\n visibility: hidden;\n transform: translate3d(110%, 0, 0);\n }\n}\n@keyframes Toastify__slideOutRight {\n from {\n transform: translate3d(0, 0, 0);\n }\n to {\n visibility: hidden;\n transform: translate3d(110%, 0, 0);\n }\n}\n@-webkit-keyframes Toastify__slideOutLeft {\n from {\n transform: translate3d(0, 0, 0);\n }\n to {\n visibility: hidden;\n transform: translate3d(-110%, 0, 0);\n }\n}\n@keyframes Toastify__slideOutLeft {\n from {\n transform: translate3d(0, 0, 0);\n }\n to {\n visibility: hidden;\n transform: translate3d(-110%, 0, 0);\n }\n}\n@-webkit-keyframes Toastify__slideOutDown {\n from {\n transform: translate3d(0, 0, 0);\n }\n to {\n visibility: hidden;\n transform: translate3d(0, 500px, 0);\n }\n}\n@keyframes Toastify__slideOutDown {\n from {\n transform: translate3d(0, 0, 0);\n }\n to {\n visibility: hidden;\n transform: translate3d(0, 500px, 0);\n }\n}\n@-webkit-keyframes Toastify__slideOutUp {\n from {\n transform: translate3d(0, 0, 0);\n }\n to {\n visibility: hidden;\n transform: translate3d(0, -500px, 0);\n }\n}\n@keyframes Toastify__slideOutUp {\n from {\n transform: translate3d(0, 0, 0);\n }\n to {\n visibility: hidden;\n transform: translate3d(0, -500px, 0);\n }\n}\n.Toastify__slide-enter--top-left, .Toastify__slide-enter--bottom-left {\n -webkit-animation-name: Toastify__slideInLeft;\n animation-name: Toastify__slideInLeft;\n}\n.Toastify__slide-enter--top-right, .Toastify__slide-enter--bottom-right {\n -webkit-animation-name: Toastify__slideInRight;\n animation-name: Toastify__slideInRight;\n}\n.Toastify__slide-enter--top-center {\n -webkit-animation-name: Toastify__slideInDown;\n animation-name: Toastify__slideInDown;\n}\n.Toastify__slide-enter--bottom-center {\n -webkit-animation-name: Toastify__slideInUp;\n animation-name: Toastify__slideInUp;\n}\n\n.Toastify__slide-exit--top-left, .Toastify__slide-exit--bottom-left {\n -webkit-animation-name: Toastify__slideOutLeft;\n animation-name: Toastify__slideOutLeft;\n}\n.Toastify__slide-exit--top-right, .Toastify__slide-exit--bottom-right {\n -webkit-animation-name: Toastify__slideOutRight;\n animation-name: Toastify__slideOutRight;\n}\n.Toastify__slide-exit--top-center {\n -webkit-animation-name: Toastify__slideOutUp;\n animation-name: Toastify__slideOutUp;\n}\n.Toastify__slide-exit--bottom-center {\n -webkit-animation-name: Toastify__slideOutDown;\n animation-name: Toastify__slideOutDown;\n}\n\n@-webkit-keyframes Toastify__spin {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n}\n\n@keyframes Toastify__spin {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n}", ""]); +// Exports +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); + + +/***/ }), + +/***/ "./node_modules/css-loader/dist/runtime/api.js": +/*!*****************************************************!*\ + !*** ./node_modules/css-loader/dist/runtime/api.js ***! + \*****************************************************/ +/***/ ((module) => { + +"use strict"; + + +/* + MIT License http://www.opensource.org/licenses/mit-license.php + Author Tobias Koppers @sokra +*/ +// css base code, injected by the css-loader +// eslint-disable-next-line func-names +module.exports = function (cssWithMappingToString) { + var list = []; // return the list of modules as css string + + list.toString = function toString() { + return this.map(function (item) { + var content = cssWithMappingToString(item); + + if (item[2]) { + return "@media ".concat(item[2], " {").concat(content, "}"); + } + + return content; + }).join(""); + }; // import a list of modules into the list + // eslint-disable-next-line func-names + + + list.i = function (modules, mediaQuery, dedupe) { + if (typeof modules === "string") { + // eslint-disable-next-line no-param-reassign + modules = [[null, modules, ""]]; + } + + var alreadyImportedModules = {}; + + if (dedupe) { + for (var i = 0; i < this.length; i++) { + // eslint-disable-next-line prefer-destructuring + var id = this[i][0]; + + if (id != null) { + alreadyImportedModules[id] = true; + } + } + } + + for (var _i = 0; _i < modules.length; _i++) { + var item = [].concat(modules[_i]); + + if (dedupe && alreadyImportedModules[item[0]]) { + // eslint-disable-next-line no-continue + continue; + } + + if (mediaQuery) { + if (!item[2]) { + item[2] = mediaQuery; + } else { + item[2] = "".concat(mediaQuery, " and ").concat(item[2]); + } + } + + list.push(item); + } + }; + + return list; +}; + /***/ }), /***/ "./node_modules/deepmerge/dist/cjs.js": @@ -52988,6 +53952,1515 @@ if (false) {} else { } +/***/ }), + +/***/ "./node_modules/react-toastify/dist/react-toastify.esm.js": +/*!****************************************************************!*\ + !*** ./node_modules/react-toastify/dist/react-toastify.esm.js ***! + \****************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "Bounce": () => (/* binding */ Bounce), +/* harmony export */ "Flip": () => (/* binding */ Flip), +/* harmony export */ "Icons": () => (/* binding */ Icons), +/* harmony export */ "Slide": () => (/* binding */ Slide), +/* harmony export */ "ToastContainer": () => (/* binding */ ToastContainer), +/* harmony export */ "Zoom": () => (/* binding */ Zoom), +/* harmony export */ "collapseToast": () => (/* binding */ collapseToast), +/* harmony export */ "cssTransition": () => (/* binding */ cssTransition), +/* harmony export */ "toast": () => (/* binding */ toast), +/* harmony export */ "useToast": () => (/* binding */ useToast), +/* harmony export */ "useToastContainer": () => (/* binding */ useToastContainer) +/* harmony export */ }); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js"); +/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! clsx */ "./node_modules/clsx/dist/clsx.m.js"); +/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-dom */ "./node_modules/react-dom/index.js"); + + + + +function _extends() { + _extends = Object.assign || function (target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i]; + + for (var key in source) { + if (Object.prototype.hasOwnProperty.call(source, key)) { + target[key] = source[key]; + } + } + } + + return target; + }; + + return _extends.apply(this, arguments); +} + +function _objectWithoutPropertiesLoose(source, excluded) { + if (source == null) return {}; + var target = {}; + var sourceKeys = Object.keys(source); + var key, i; + + for (i = 0; i < sourceKeys.length; i++) { + key = sourceKeys[i]; + if (excluded.indexOf(key) >= 0) continue; + target[key] = source[key]; + } + + return target; +} + +function isNum(v) { + return typeof v === 'number' && !isNaN(v); +} +function isBool(v) { + return typeof v === 'boolean'; +} +function isStr(v) { + return typeof v === 'string'; +} +function isFn(v) { + return typeof v === 'function'; +} +function parseClassName(v) { + return isStr(v) || isFn(v) ? v : null; +} +function isToastIdValid(toastId) { + return toastId === 0 || toastId; +} +function getAutoCloseDelay(toastAutoClose, containerAutoClose) { + return toastAutoClose === false || isNum(toastAutoClose) && toastAutoClose > 0 ? toastAutoClose : containerAutoClose; +} +var canUseDom = !!(typeof window !== 'undefined' && window.document && window.document.createElement); +function canBeRendered(content) { + return (0,react__WEBPACK_IMPORTED_MODULE_0__.isValidElement)(content) || isStr(content) || isFn(content) || isNum(content); +} + +var POSITION = { + TOP_LEFT: 'top-left', + TOP_RIGHT: 'top-right', + TOP_CENTER: 'top-center', + BOTTOM_LEFT: 'bottom-left', + BOTTOM_RIGHT: 'bottom-right', + BOTTOM_CENTER: 'bottom-center' +}; +var TYPE = { + INFO: 'info', + SUCCESS: 'success', + WARNING: 'warning', + ERROR: 'error', + DEFAULT: 'default' +}; + +/** + * Used to collapse toast after exit animation + */ +function collapseToast(node, done, duration +/* COLLAPSE_DURATION */ +) { + if (duration === void 0) { + duration = 300; + } + + var scrollHeight = node.scrollHeight, + style = node.style; + requestAnimationFrame(function () { + style.minHeight = 'initial'; + style.height = scrollHeight + 'px'; + style.transition = "all " + duration + "ms"; + requestAnimationFrame(function () { + style.height = '0'; + style.padding = '0'; + style.margin = '0'; + setTimeout(done, duration); + }); + }); +} + +/** + * Css animation that just work. + * You could use animate.css for instance + * + * + * ``` + * cssTransition({ + * enter: "animate__animated animate__bounceIn", + * exit: "animate__animated animate__bounceOut" + * }) + * ``` + * + */ + +function cssTransition(_ref) { + var enter = _ref.enter, + exit = _ref.exit, + _ref$appendPosition = _ref.appendPosition, + appendPosition = _ref$appendPosition === void 0 ? false : _ref$appendPosition, + _ref$collapse = _ref.collapse, + collapse = _ref$collapse === void 0 ? true : _ref$collapse, + _ref$collapseDuration = _ref.collapseDuration, + collapseDuration = _ref$collapseDuration === void 0 ? 300 : _ref$collapseDuration; + return function ToastTransition(_ref2) { + var children = _ref2.children, + position = _ref2.position, + preventExitTransition = _ref2.preventExitTransition, + done = _ref2.done, + nodeRef = _ref2.nodeRef, + isIn = _ref2.isIn; + var enterClassName = appendPosition ? enter + "--" + position : enter; + var exitClassName = appendPosition ? exit + "--" + position : exit; + var baseClassName = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(); + var animationStep = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(0 + /* Enter */ + ); + (0,react__WEBPACK_IMPORTED_MODULE_0__.useLayoutEffect)(function () { + onEnter(); + }, []); + (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () { + if (!isIn) preventExitTransition ? onExited() : onExit(); + }, [isIn]); + + function onEnter() { + var node = nodeRef.current; + baseClassName.current = node.className; + node.className += " " + enterClassName; + node.addEventListener('animationend', onEntered); + } + + function onEntered(e) { + if (e.target !== nodeRef.current) return; + var node = nodeRef.current; + node.removeEventListener('animationend', onEntered); + + if (animationStep.current === 0 + /* Enter */ + ) { + node.className = baseClassName.current; + } + } + + function onExit() { + animationStep.current = 1 + /* Exit */ + ; + var node = nodeRef.current; + node.className += " " + exitClassName; + node.addEventListener('animationend', onExited); + } + + function onExited() { + var node = nodeRef.current; + node.removeEventListener('animationend', onExited); + collapse ? collapseToast(node, done, collapseDuration) : done(); + } + + return react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, children); + }; +} + +var eventManager = { + list: /*#__PURE__*/new Map(), + emitQueue: /*#__PURE__*/new Map(), + on: function on(event, callback) { + this.list.has(event) || this.list.set(event, []); + this.list.get(event).push(callback); + return this; + }, + off: function off(event, callback) { + if (callback) { + var cb = this.list.get(event).filter(function (cb) { + return cb !== callback; + }); + this.list.set(event, cb); + return this; + } + + this.list["delete"](event); + return this; + }, + cancelEmit: function cancelEmit(event) { + var timers = this.emitQueue.get(event); + + if (timers) { + timers.forEach(clearTimeout); + this.emitQueue["delete"](event); + } + + return this; + }, + + /** + * Enqueue the event at the end of the call stack + * Doing so let the user call toast as follow: + * toast('1') + * toast('2') + * toast('3') + * Without setTimemout the code above will not work + */ + emit: function emit(event) { + var _this = this; + + for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + args[_key - 1] = arguments[_key]; + } + + this.list.has(event) && this.list.get(event).forEach(function (callback) { + var timer = setTimeout(function () { + // @ts-ignore + callback.apply(void 0, args); + }, 0); + _this.emitQueue.has(event) || _this.emitQueue.set(event, []); + + _this.emitQueue.get(event).push(timer); + }); + } +}; + +/** + * `useKeeper` is a helper around `useRef`. + * + * You don't need to access the `.current`property to get the value + * If refresh is set to true. The ref will be updated every render + */ + +function useKeeper(arg, refresh) { + if (refresh === void 0) { + refresh = false; + } + + var ref = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(arg); + (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () { + if (refresh) ref.current = arg; + }); + return ref.current; +} + +function reducer(state, action) { + switch (action.type) { + case 0 + /* ADD */ + : + return [].concat(state, [action.toastId]).filter(function (id) { + return id !== action.staleId; + }); + + case 1 + /* REMOVE */ + : + return isToastIdValid(action.toastId) ? state.filter(function (id) { + return id !== action.toastId; + }) : []; + } +} + +var _excluded = ["delay", "staleId"]; +function useToastContainer(props) { + var _useReducer = (0,react__WEBPACK_IMPORTED_MODULE_0__.useReducer)(function (x) { + return x + 1; + }, 0), + forceUpdate = _useReducer[1]; + + var _useReducer2 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useReducer)(reducer, []), + toast = _useReducer2[0], + dispatch = _useReducer2[1]; + + var containerRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null); + var toastCount = useKeeper(0); + var queue = useKeeper([]); + var collection = useKeeper({}); + var instance = useKeeper({ + toastKey: 1, + displayedToast: 0, + props: props, + containerId: null, + isToastActive: isToastActive, + getToast: function getToast(id) { + return collection[id] || null; + } + }); + (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () { + instance.containerId = props.containerId; + eventManager.cancelEmit(3 + /* WillUnmount */ + ).on(0 + /* Show */ + , buildToast).on(1 + /* Clear */ + , function (toastId) { + return containerRef.current && removeToast(toastId); + }).on(5 + /* ClearWaitingQueue */ + , clearWaitingQueue).emit(2 + /* DidMount */ + , instance); + return function () { + return eventManager.emit(3 + /* WillUnmount */ + , instance); + }; + }, []); + (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () { + instance.isToastActive = isToastActive; + instance.displayedToast = toast.length; + eventManager.emit(4 + /* Change */ + , toast.length, props.containerId); + }, [toast]); + (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () { + instance.props = props; + }); + + function isToastActive(id) { + return toast.indexOf(id) !== -1; + } + + function clearWaitingQueue(_ref) { + var containerId = _ref.containerId; + var limit = instance.props.limit; + + if (limit && (!containerId || instance.containerId === containerId)) { + toastCount -= queue.length; + queue = []; + } + } + + function removeToast(toastId) { + dispatch({ + type: 1 + /* REMOVE */ + , + toastId: toastId + }); + } + + function dequeueToast() { + var _queue$shift = queue.shift(), + toastContent = _queue$shift.toastContent, + toastProps = _queue$shift.toastProps, + staleId = _queue$shift.staleId; + + appendToast(toastContent, toastProps, staleId); + } + /** + * check if a container is attached to the dom + * check for multi-container, build only if associated + * check for duplicate toastId if no update + */ + + + function isNotValid(_ref2) { + var containerId = _ref2.containerId, + toastId = _ref2.toastId, + updateId = _ref2.updateId; + return !containerRef.current || instance.props.enableMultiContainer && containerId !== instance.props.containerId || collection[toastId] && updateId == null ? true : false; + } // this function and all the function called inside needs to rely on ref(`useKeeper`) + + + function buildToast(content, _ref3) { + var _options$icon; + + var delay = _ref3.delay, + staleId = _ref3.staleId, + options = _objectWithoutPropertiesLoose(_ref3, _excluded); + + if (!canBeRendered(content) || isNotValid(options)) return; + var toastId = options.toastId, + updateId = options.updateId, + data = options.data; + var props = instance.props; + + var closeToast = function closeToast() { + return removeToast(toastId); + }; + + var isNotAnUpdate = options.updateId == null; + if (isNotAnUpdate) toastCount++; + var toastProps = { + toastId: toastId, + updateId: updateId, + isLoading: options.isLoading, + theme: options.theme || props.theme, + icon: (_options$icon = options.icon) != null ? _options$icon : props.icon, + isIn: false, + key: options.key || instance.toastKey++, + type: options.type, + closeToast: closeToast, + closeButton: options.closeButton, + rtl: props.rtl, + position: options.position || props.position, + transition: options.transition || props.transition, + className: parseClassName(options.className || props.toastClassName), + bodyClassName: parseClassName(options.bodyClassName || props.bodyClassName), + style: options.style || props.toastStyle, + bodyStyle: options.bodyStyle || props.bodyStyle, + onClick: options.onClick || props.onClick, + pauseOnHover: isBool(options.pauseOnHover) ? options.pauseOnHover : props.pauseOnHover, + pauseOnFocusLoss: isBool(options.pauseOnFocusLoss) ? options.pauseOnFocusLoss : props.pauseOnFocusLoss, + draggable: isBool(options.draggable) ? options.draggable : props.draggable, + draggablePercent: isNum(options.draggablePercent) ? options.draggablePercent : props.draggablePercent, + draggableDirection: options.draggableDirection || props.draggableDirection, + closeOnClick: isBool(options.closeOnClick) ? options.closeOnClick : props.closeOnClick, + progressClassName: parseClassName(options.progressClassName || props.progressClassName), + progressStyle: options.progressStyle || props.progressStyle, + autoClose: options.isLoading ? false : getAutoCloseDelay(options.autoClose, props.autoClose), + hideProgressBar: isBool(options.hideProgressBar) ? options.hideProgressBar : props.hideProgressBar, + progress: options.progress, + role: isStr(options.role) ? options.role : props.role, + deleteToast: function deleteToast() { + removeFromCollection(toastId); + } + }; + if (isFn(options.onOpen)) toastProps.onOpen = options.onOpen; + if (isFn(options.onClose)) toastProps.onClose = options.onClose; // tweak for vertical dragging + + if (toastProps.draggableDirection === "y" + /* Y */ + && toastProps.draggablePercent === 80 + /* DRAGGABLE_PERCENT */ + ) { + toastProps.draggablePercent *= 1.5; + } + + var closeButton = props.closeButton; + + if (options.closeButton === false || canBeRendered(options.closeButton)) { + closeButton = options.closeButton; + } else if (options.closeButton === true) { + closeButton = canBeRendered(props.closeButton) ? props.closeButton : true; + } + + toastProps.closeButton = closeButton; + var toastContent = content; + + if ((0,react__WEBPACK_IMPORTED_MODULE_0__.isValidElement)(content) && !isStr(content.type)) { + toastContent = (0,react__WEBPACK_IMPORTED_MODULE_0__.cloneElement)(content, { + closeToast: closeToast, + toastProps: toastProps, + data: data + }); + } else if (isFn(content)) { + toastContent = content({ + closeToast: closeToast, + toastProps: toastProps, + data: data + }); + } // not handling limit + delay by design. Waiting for user feedback first + + + if (props.limit && props.limit > 0 && toastCount > props.limit && isNotAnUpdate) { + queue.push({ + toastContent: toastContent, + toastProps: toastProps, + staleId: staleId + }); + } else if (isNum(delay) && delay > 0) { + setTimeout(function () { + appendToast(toastContent, toastProps, staleId); + }, delay); + } else { + appendToast(toastContent, toastProps, staleId); + } + } + + function appendToast(content, toastProps, staleId) { + var toastId = toastProps.toastId; + if (staleId) delete collection[staleId]; + collection[toastId] = { + content: content, + props: toastProps + }; + dispatch({ + type: 0 + /* ADD */ + , + toastId: toastId, + staleId: staleId + }); + } + + function removeFromCollection(toastId) { + delete collection[toastId]; + var queueLen = queue.length; + toastCount = isToastIdValid(toastId) ? toastCount - 1 : toastCount - instance.displayedToast; + if (toastCount < 0) toastCount = 0; + + if (queueLen > 0) { + var freeSlot = isToastIdValid(toastId) ? 1 : instance.props.limit; + + if (queueLen === 1 || freeSlot === 1) { + instance.displayedToast++; + dequeueToast(); + } else { + var toDequeue = freeSlot > queueLen ? queueLen : freeSlot; + instance.displayedToast = toDequeue; + + for (var i = 0; i < toDequeue; i++) { + dequeueToast(); + } + } + } else { + forceUpdate(); + } + } + + function getToastToRender(cb) { + var toastToRender = {}; + var toastList = props.newestOnTop ? Object.keys(collection).reverse() : Object.keys(collection); + + for (var i = 0; i < toastList.length; i++) { + var _toast = collection[toastList[i]]; + var position = _toast.props.position; + toastToRender[position] || (toastToRender[position] = []); + toastToRender[position].push(_toast); + } + + return Object.keys(toastToRender).map(function (p) { + return cb(p, toastToRender[p]); + }); + } + + return { + getToastToRender: getToastToRender, + collection: collection, + containerRef: containerRef, + isToastActive: isToastActive + }; +} + +function getX(e) { + return e.targetTouches && e.targetTouches.length >= 1 ? e.targetTouches[0].clientX : e.clientX; +} + +function getY(e) { + return e.targetTouches && e.targetTouches.length >= 1 ? e.targetTouches[0].clientY : e.clientY; +} + +function useToast(props) { + var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(true), + isRunning = _useState[0], + setIsRunning = _useState[1]; + + var _useState2 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false), + preventExitTransition = _useState2[0], + setPreventExitTransition = _useState2[1]; + + var toastRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null); + var drag = useKeeper({ + start: 0, + x: 0, + y: 0, + delta: 0, + removalDistance: 0, + canCloseOnClick: true, + canDrag: false, + boundingRect: null + }); + var syncProps = useKeeper(props, true); + var autoClose = props.autoClose, + pauseOnHover = props.pauseOnHover, + closeToast = props.closeToast, + onClick = props.onClick, + closeOnClick = props.closeOnClick; + (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () { + if (isFn(props.onOpen)) props.onOpen((0,react__WEBPACK_IMPORTED_MODULE_0__.isValidElement)(props.children) && props.children.props); + return function () { + if (isFn(syncProps.onClose)) syncProps.onClose((0,react__WEBPACK_IMPORTED_MODULE_0__.isValidElement)(syncProps.children) && syncProps.children.props); + }; + }, []); + (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () { + props.draggable && bindDragEvents(); + return function () { + props.draggable && unbindDragEvents(); + }; + }, [props.draggable]); + (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () { + props.pauseOnFocusLoss && bindFocusEvents(); + return function () { + props.pauseOnFocusLoss && unbindFocusEvents(); + }; + }, [props.pauseOnFocusLoss]); + + function onDragStart(e) { + if (props.draggable) { + var toast = toastRef.current; + drag.canCloseOnClick = true; + drag.canDrag = true; + drag.boundingRect = toast.getBoundingClientRect(); + toast.style.transition = ''; + drag.x = getX(e.nativeEvent); + drag.y = getY(e.nativeEvent); + + if (props.draggableDirection === "x" + /* X */ + ) { + drag.start = drag.x; + drag.removalDistance = toast.offsetWidth * (props.draggablePercent / 100); + } else { + drag.start = drag.y; + drag.removalDistance = toast.offsetHeight * (props.draggablePercent / 100); + } + } + } + + function onDragTransitionEnd() { + if (drag.boundingRect) { + var _drag$boundingRect = drag.boundingRect, + top = _drag$boundingRect.top, + bottom = _drag$boundingRect.bottom, + left = _drag$boundingRect.left, + right = _drag$boundingRect.right; + + if (props.pauseOnHover && drag.x >= left && drag.x <= right && drag.y >= top && drag.y <= bottom) { + pauseToast(); + } else { + playToast(); + } + } + } + + function playToast() { + setIsRunning(true); + } + + function pauseToast() { + setIsRunning(false); + } + + function bindFocusEvents() { + if (!document.hasFocus()) pauseToast(); + window.addEventListener('focus', playToast); + window.addEventListener('blur', pauseToast); + } + + function unbindFocusEvents() { + window.removeEventListener('focus', playToast); + window.removeEventListener('blur', pauseToast); + } + + function bindDragEvents() { + document.addEventListener('mousemove', onDragMove); + document.addEventListener('mouseup', onDragEnd); + document.addEventListener('touchmove', onDragMove); + document.addEventListener('touchend', onDragEnd); + } + + function unbindDragEvents() { + document.removeEventListener('mousemove', onDragMove); + document.removeEventListener('mouseup', onDragEnd); + document.removeEventListener('touchmove', onDragMove); + document.removeEventListener('touchend', onDragEnd); + } + + function onDragMove(e) { + if (drag.canDrag) { + e.preventDefault(); + var toast = toastRef.current; + if (isRunning) pauseToast(); + drag.x = getX(e); + drag.y = getY(e); + + if (props.draggableDirection === "x" + /* X */ + ) { + drag.delta = drag.x - drag.start; + } else { + drag.delta = drag.y - drag.start; + } // prevent false positif during a toast click + + + if (drag.start !== drag.x) drag.canCloseOnClick = false; + toast.style.transform = "translate" + props.draggableDirection + "(" + drag.delta + "px)"; + toast.style.opacity = "" + (1 - Math.abs(drag.delta / drag.removalDistance)); + } + } + + function onDragEnd() { + var toast = toastRef.current; + + if (drag.canDrag) { + drag.canDrag = false; + + if (Math.abs(drag.delta) > drag.removalDistance) { + setPreventExitTransition(true); + props.closeToast(); + return; + } + + toast.style.transition = 'transform 0.2s, opacity 0.2s'; + toast.style.transform = "translate" + props.draggableDirection + "(0)"; + toast.style.opacity = '1'; + } + } + + var eventHandlers = { + onMouseDown: onDragStart, + onTouchStart: onDragStart, + onMouseUp: onDragTransitionEnd, + onTouchEnd: onDragTransitionEnd + }; + + if (autoClose && pauseOnHover) { + eventHandlers.onMouseEnter = pauseToast; + eventHandlers.onMouseLeave = playToast; + } // prevent toast from closing when user drags the toast + + + if (closeOnClick) { + eventHandlers.onClick = function (e) { + onClick && onClick(e); + drag.canCloseOnClick && closeToast(); + }; + } + + return { + playToast: playToast, + pauseToast: pauseToast, + isRunning: isRunning, + preventExitTransition: preventExitTransition, + toastRef: toastRef, + eventHandlers: eventHandlers + }; +} + +function CloseButton(_ref) { + var closeToast = _ref.closeToast, + theme = _ref.theme, + _ref$ariaLabel = _ref.ariaLabel, + ariaLabel = _ref$ariaLabel === void 0 ? 'close' : _ref$ariaLabel; + return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("button", { + className: "Toastify" + /* CSS_NAMESPACE */ + + "__close-button " + "Toastify" + /* CSS_NAMESPACE */ + + "__close-button--" + theme, + type: "button", + onClick: function onClick(e) { + e.stopPropagation(); + closeToast(e); + }, + "aria-label": ariaLabel + }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("svg", { + "aria-hidden": "true", + viewBox: "0 0 14 16" + }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("path", { + fillRule: "evenodd", + d: "M7.71 8.23l3.75 3.75-1.48 1.48-3.75-3.75-3.75 3.75L1 11.98l3.75-3.75L1 4.48 2.48 3l3.75 3.75L9.98 3l1.48 1.48-3.75 3.75z" + }))); +} + +function ProgressBar(_ref) { + var _cx, _animationEvent; + + var delay = _ref.delay, + isRunning = _ref.isRunning, + closeToast = _ref.closeToast, + type = _ref.type, + hide = _ref.hide, + className = _ref.className, + userStyle = _ref.style, + controlledProgress = _ref.controlledProgress, + progress = _ref.progress, + rtl = _ref.rtl, + isIn = _ref.isIn, + theme = _ref.theme; + + var style = _extends({}, userStyle, { + animationDuration: delay + "ms", + animationPlayState: isRunning ? 'running' : 'paused', + opacity: hide ? 0 : 1 + }); + + if (controlledProgress) style.transform = "scaleX(" + progress + ")"; + var defaultClassName = (0,clsx__WEBPACK_IMPORTED_MODULE_1__["default"])("Toastify" + /* CSS_NAMESPACE */ + + "__progress-bar", controlledProgress ? "Toastify" + /* CSS_NAMESPACE */ + + "__progress-bar--controlled" : "Toastify" + /* CSS_NAMESPACE */ + + "__progress-bar--animated", "Toastify" + /* CSS_NAMESPACE */ + + "__progress-bar-theme--" + theme, "Toastify" + /* CSS_NAMESPACE */ + + "__progress-bar--" + type, (_cx = {}, _cx["Toastify" + /* CSS_NAMESPACE */ + + "__progress-bar--rtl"] = rtl, _cx)); + var classNames = isFn(className) ? className({ + rtl: rtl, + type: type, + defaultClassName: defaultClassName + }) : (0,clsx__WEBPACK_IMPORTED_MODULE_1__["default"])(defaultClassName, className); // 🧐 controlledProgress is derived from progress + // so if controlledProgress is set + // it means that this is also the case for progress + + var animationEvent = (_animationEvent = {}, _animationEvent[controlledProgress && progress >= 1 ? 'onTransitionEnd' : 'onAnimationEnd'] = controlledProgress && progress < 1 ? null : function () { + isIn && closeToast(); + }, _animationEvent); // TODO: add aria-valuenow, aria-valuemax, aria-valuemin + + return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", Object.assign({ + role: "progressbar", + "aria-hidden": hide ? 'true' : 'false', + "aria-label": "notification timer", + className: classNames, + style: style + }, animationEvent)); +} +ProgressBar.defaultProps = { + type: TYPE.DEFAULT, + hide: false +}; + +var _excluded$1 = ["theme", "type"]; + +var Svg = function Svg(_ref) { + var theme = _ref.theme, + type = _ref.type, + rest = _objectWithoutPropertiesLoose(_ref, _excluded$1); + + return react__WEBPACK_IMPORTED_MODULE_0__.createElement("svg", Object.assign({ + viewBox: "0 0 24 24", + width: "100%", + height: "100%", + fill: theme === 'colored' ? 'currentColor' : "var(--toastify-icon-color-" + type + ")" + }, rest)); +}; + +function Warning(props) { + return react__WEBPACK_IMPORTED_MODULE_0__.createElement(Svg, Object.assign({}, props), react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", { + d: "M23.32 17.191L15.438 2.184C14.728.833 13.416 0 11.996 0c-1.42 0-2.733.833-3.443 2.184L.533 17.448a4.744 4.744 0 000 4.368C1.243 23.167 2.555 24 3.975 24h16.05C22.22 24 24 22.044 24 19.632c0-.904-.251-1.746-.68-2.44zm-9.622 1.46c0 1.033-.724 1.823-1.698 1.823s-1.698-.79-1.698-1.822v-.043c0-1.028.724-1.822 1.698-1.822s1.698.79 1.698 1.822v.043zm.039-12.285l-.84 8.06c-.057.581-.408.943-.897.943-.49 0-.84-.367-.896-.942l-.84-8.065c-.057-.624.25-1.095.779-1.095h1.91c.528.005.84.476.784 1.1z" + })); +} + +function Info(props) { + return react__WEBPACK_IMPORTED_MODULE_0__.createElement(Svg, Object.assign({}, props), react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", { + d: "M12 0a12 12 0 1012 12A12.013 12.013 0 0012 0zm.25 5a1.5 1.5 0 11-1.5 1.5 1.5 1.5 0 011.5-1.5zm2.25 13.5h-4a1 1 0 010-2h.75a.25.25 0 00.25-.25v-4.5a.25.25 0 00-.25-.25h-.75a1 1 0 010-2h1a2 2 0 012 2v4.75a.25.25 0 00.25.25h.75a1 1 0 110 2z" + })); +} + +function Success(props) { + return react__WEBPACK_IMPORTED_MODULE_0__.createElement(Svg, Object.assign({}, props), react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", { + d: "M12 0a12 12 0 1012 12A12.014 12.014 0 0012 0zm6.927 8.2l-6.845 9.289a1.011 1.011 0 01-1.43.188l-4.888-3.908a1 1 0 111.25-1.562l4.076 3.261 6.227-8.451a1 1 0 111.61 1.183z" + })); +} + +function Error(props) { + return react__WEBPACK_IMPORTED_MODULE_0__.createElement(Svg, Object.assign({}, props), react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", { + d: "M11.983 0a12.206 12.206 0 00-8.51 3.653A11.8 11.8 0 000 12.207 11.779 11.779 0 0011.8 24h.214A12.111 12.111 0 0024 11.791 11.766 11.766 0 0011.983 0zM10.5 16.542a1.476 1.476 0 011.449-1.53h.027a1.527 1.527 0 011.523 1.47 1.475 1.475 0 01-1.449 1.53h-.027a1.529 1.529 0 01-1.523-1.47zM11 12.5v-6a1 1 0 012 0v6a1 1 0 11-2 0z" + })); +} + +function Spinner() { + return react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", { + className: "Toastify" + /* CSS_NAMESPACE */ + + "__spinner" + }); +} + +var Icons = { + info: Info, + warning: Warning, + success: Success, + error: Error, + spinner: Spinner +}; + +var Toast = function Toast(props) { + var _cx, _cx2; + + var _useToast = useToast(props), + isRunning = _useToast.isRunning, + preventExitTransition = _useToast.preventExitTransition, + toastRef = _useToast.toastRef, + eventHandlers = _useToast.eventHandlers; + + var closeButton = props.closeButton, + children = props.children, + autoClose = props.autoClose, + onClick = props.onClick, + type = props.type, + hideProgressBar = props.hideProgressBar, + closeToast = props.closeToast, + Transition = props.transition, + position = props.position, + className = props.className, + style = props.style, + bodyClassName = props.bodyClassName, + bodyStyle = props.bodyStyle, + progressClassName = props.progressClassName, + progressStyle = props.progressStyle, + updateId = props.updateId, + role = props.role, + progress = props.progress, + rtl = props.rtl, + toastId = props.toastId, + deleteToast = props.deleteToast, + isIn = props.isIn, + isLoading = props.isLoading, + icon = props.icon, + theme = props.theme; + var defaultClassName = (0,clsx__WEBPACK_IMPORTED_MODULE_1__["default"])("Toastify" + /* CSS_NAMESPACE */ + + "__toast", "Toastify" + /* CSS_NAMESPACE */ + + "__toast-theme--" + theme, "Toastify" + /* CSS_NAMESPACE */ + + "__toast--" + type, (_cx = {}, _cx["Toastify" + /* CSS_NAMESPACE */ + + "__toast--rtl"] = rtl, _cx)); + var cssClasses = isFn(className) ? className({ + rtl: rtl, + position: position, + type: type, + defaultClassName: defaultClassName + }) : (0,clsx__WEBPACK_IMPORTED_MODULE_1__["default"])(defaultClassName, className); + var isProgressControlled = !!progress; + var maybeIcon = Icons[type]; + var iconProps = { + theme: theme, + type: type + }; + var Icon = maybeIcon && maybeIcon(iconProps); + + if (icon === false) { + Icon = void 0; + } else if (isFn(icon)) { + Icon = icon(iconProps); + } else if ((0,react__WEBPACK_IMPORTED_MODULE_0__.isValidElement)(icon)) { + Icon = (0,react__WEBPACK_IMPORTED_MODULE_0__.cloneElement)(icon, iconProps); + } else if (isStr(icon)) { + Icon = icon; + } else if (isLoading) { + Icon = Icons.spinner(); + } + + function renderCloseButton(closeButton) { + if (!closeButton) return; + var props = { + closeToast: closeToast, + type: type, + theme: theme + }; + if (isFn(closeButton)) return closeButton(props); + if ((0,react__WEBPACK_IMPORTED_MODULE_0__.isValidElement)(closeButton)) return (0,react__WEBPACK_IMPORTED_MODULE_0__.cloneElement)(closeButton, props); + } + + return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Transition, { + isIn: isIn, + done: deleteToast, + position: position, + preventExitTransition: preventExitTransition, + nodeRef: toastRef + }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", Object.assign({ + id: toastId, + onClick: onClick, + className: cssClasses + }, eventHandlers, { + style: style, + ref: toastRef + }), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", Object.assign({}, isIn && { + role: role + }, { + className: isFn(bodyClassName) ? bodyClassName({ + type: type + }) : (0,clsx__WEBPACK_IMPORTED_MODULE_1__["default"])("Toastify" + /* CSS_NAMESPACE */ + + "__toast-body", bodyClassName), + style: bodyStyle + }), Icon && (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { + className: (0,clsx__WEBPACK_IMPORTED_MODULE_1__["default"])("Toastify" + /* CSS_NAMESPACE */ + + "__toast-icon", (_cx2 = {}, _cx2["Toastify" + /* CSS_NAMESPACE */ + + "--animate-icon " + "Toastify" + /* CSS_NAMESPACE */ + + "__zoom-enter"] = !isLoading, _cx2)) + }, Icon), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", null, children)), renderCloseButton(closeButton), (autoClose || isProgressControlled) && (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(ProgressBar, Object.assign({}, updateId && !isProgressControlled ? { + key: "pb-" + updateId + } : {}, { + rtl: rtl, + theme: theme, + delay: autoClose, + isRunning: isRunning, + isIn: isIn, + closeToast: closeToast, + hide: hideProgressBar, + type: type, + style: progressStyle, + className: progressClassName, + controlledProgress: isProgressControlled, + progress: progress + })))); +}; + +var Bounce = /*#__PURE__*/cssTransition({ + enter: "Toastify" + /* CSS_NAMESPACE */ + + "--animate " + "Toastify" + /* CSS_NAMESPACE */ + + "__bounce-enter", + exit: "Toastify" + /* CSS_NAMESPACE */ + + "--animate " + "Toastify" + /* CSS_NAMESPACE */ + + "__bounce-exit", + appendPosition: true +}); +var Slide = /*#__PURE__*/cssTransition({ + enter: "Toastify" + /* CSS_NAMESPACE */ + + "--animate " + "Toastify" + /* CSS_NAMESPACE */ + + "__slide-enter", + exit: "Toastify" + /* CSS_NAMESPACE */ + + "--animate " + "Toastify" + /* CSS_NAMESPACE */ + + "__slide-exit", + appendPosition: true +}); +var Zoom = /*#__PURE__*/cssTransition({ + enter: "Toastify" + /* CSS_NAMESPACE */ + + "--animate " + "Toastify" + /* CSS_NAMESPACE */ + + "__zoom-enter", + exit: "Toastify" + /* CSS_NAMESPACE */ + + "--animate " + "Toastify" + /* CSS_NAMESPACE */ + + "__zoom-exit" +}); +var Flip = /*#__PURE__*/cssTransition({ + enter: "Toastify" + /* CSS_NAMESPACE */ + + "--animate " + "Toastify" + /* CSS_NAMESPACE */ + + "__flip-enter", + exit: "Toastify" + /* CSS_NAMESPACE */ + + "--animate " + "Toastify" + /* CSS_NAMESPACE */ + + "__flip-exit" +}); + +var ToastContainer = function ToastContainer(props) { + var _useToastContainer = useToastContainer(props), + getToastToRender = _useToastContainer.getToastToRender, + containerRef = _useToastContainer.containerRef, + isToastActive = _useToastContainer.isToastActive; + + var className = props.className, + style = props.style, + rtl = props.rtl, + containerId = props.containerId; + + function getClassName(position) { + var _cx; + + var defaultClassName = (0,clsx__WEBPACK_IMPORTED_MODULE_1__["default"])("Toastify" + /* CSS_NAMESPACE */ + + "__toast-container", "Toastify" + /* CSS_NAMESPACE */ + + "__toast-container--" + position, (_cx = {}, _cx["Toastify" + /* CSS_NAMESPACE */ + + "__toast-container--rtl"] = rtl, _cx)); + return isFn(className) ? className({ + position: position, + rtl: rtl, + defaultClassName: defaultClassName + }) : (0,clsx__WEBPACK_IMPORTED_MODULE_1__["default"])(defaultClassName, parseClassName(className)); + } + + return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { + ref: containerRef, + className: "Toastify" + /* CSS_NAMESPACE */ + , + id: containerId + }, getToastToRender(function (position, toastList) { + var containerStyle = toastList.length === 0 ? _extends({}, style, { + pointerEvents: 'none' + }) : _extends({}, style); + return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { + className: getClassName(position), + style: containerStyle, + key: "container-" + position + }, toastList.map(function (_ref) { + var content = _ref.content, + toastProps = _ref.props; + return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Toast, Object.assign({}, toastProps, { + isIn: isToastActive(toastProps.toastId), + key: "toast-" + toastProps.key, + closeButton: toastProps.closeButton === true ? CloseButton : toastProps.closeButton + }), content); + })); + })); +}; +ToastContainer.defaultProps = { + position: POSITION.TOP_RIGHT, + transition: Bounce, + rtl: false, + autoClose: 5000, + hideProgressBar: false, + closeButton: CloseButton, + pauseOnHover: true, + pauseOnFocusLoss: true, + closeOnClick: true, + newestOnTop: false, + draggable: true, + draggablePercent: 80 + /* DRAGGABLE_PERCENT */ + , + draggableDirection: "x" + /* X */ + , + role: 'alert', + theme: 'light' +}; + +var containers = /*#__PURE__*/new Map(); +var latestInstance; +var containerDomNode; +var containerConfig; +var queue = []; +var lazy = false; +/** + * Check whether any container is currently mounted in the DOM + */ + +function isAnyContainerMounted() { + return containers.size > 0; +} +/** + * Get the toast by id, given it's in the DOM, otherwise returns null + */ + + +function getToast(toastId, _ref) { + var containerId = _ref.containerId; + var container = containers.get(containerId || latestInstance); + if (!container) return null; + return container.getToast(toastId); +} +/** + * Generate a random toastId + */ + + +function generateToastId() { + return Math.random().toString(36).substr(2, 9); +} +/** + * Generate a toastId or use the one provided + */ + + +function getToastId(options) { + if (options && (isStr(options.toastId) || isNum(options.toastId))) { + return options.toastId; + } + + return generateToastId(); +} +/** + * If the container is not mounted, the toast is enqueued and + * the container lazy mounted + */ + + +function dispatchToast(content, options) { + if (isAnyContainerMounted()) { + eventManager.emit(0 + /* Show */ + , content, options); + } else { + queue.push({ + content: content, + options: options + }); + + if (lazy && canUseDom) { + lazy = false; + containerDomNode = document.createElement('div'); + document.body.appendChild(containerDomNode); + (0,react_dom__WEBPACK_IMPORTED_MODULE_2__.render)((0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(ToastContainer, Object.assign({}, containerConfig)), containerDomNode); + } + } + + return options.toastId; +} +/** + * Merge provided options with the defaults settings and generate the toastId + */ + + +function mergeOptions(type, options) { + return _extends({}, options, { + type: options && options.type || type, + toastId: getToastId(options) + }); +} + +var createToastByType = function createToastByType(type) { + return function (content, options) { + return dispatchToast(content, mergeOptions(type, options)); + }; +}; + +var toast = function toast(content, options) { + return dispatchToast(content, mergeOptions(TYPE.DEFAULT, options)); +}; + +toast.loading = function (content, options) { + return dispatchToast(content, mergeOptions(TYPE.DEFAULT, _extends({ + isLoading: true, + autoClose: false, + closeOnClick: false, + closeButton: false, + draggable: false + }, options))); +}; + +function handlePromise(promise, _ref2, options) { + var pending = _ref2.pending, + error = _ref2.error, + success = _ref2.success; + var id; + + if (pending) { + id = isStr(pending) ? toast.loading(pending, options) : toast.loading(pending.render, _extends({}, options, pending)); + } + + var resetParams = { + isLoading: null, + autoClose: null, + closeOnClick: null, + closeButton: null, + draggable: null + }; + + var resolver = function resolver(type, input, result) { + var baseParams = _extends({ + type: type + }, resetParams, options, { + data: result + }); + + var params = isStr(input) ? { + render: input + } : input; // if the id is set we know that it's an update + + if (id) { + toast.update(id, _extends({}, baseParams, params)); + } else { + // using toast.promise without loading + toast(params.render, _extends({}, baseParams, params)); + } + + return result; + }; + + var p = isFn(promise) ? promise() : promise; //call the resolvers only when needed + + p.then(function (result) { + return success && resolver('success', success, result); + })["catch"](function (err) { + return error && resolver('error', error, err); + }); + return p; +} + +toast.promise = handlePromise; +toast.success = /*#__PURE__*/createToastByType(TYPE.SUCCESS); +toast.info = /*#__PURE__*/createToastByType(TYPE.INFO); +toast.error = /*#__PURE__*/createToastByType(TYPE.ERROR); +toast.warning = /*#__PURE__*/createToastByType(TYPE.WARNING); +toast.warn = toast.warning; + +toast.dark = function (content, options) { + return dispatchToast(content, mergeOptions(TYPE.DEFAULT, _extends({ + theme: 'dark' + }, options))); +}; +/** + * Remove toast programmaticaly + */ + + +toast.dismiss = function (id) { + return eventManager.emit(1 + /* Clear */ + , id); +}; +/** + * Clear waiting queue when limit is used + */ + + +toast.clearWaitingQueue = function (params) { + if (params === void 0) { + params = {}; + } + + return eventManager.emit(5 + /* ClearWaitingQueue */ + , params); +}; +/** + * return true if one container is displaying the toast + */ + + +toast.isActive = function (id) { + var isToastActive = false; + containers.forEach(function (container) { + if (container.isToastActive && container.isToastActive(id)) { + isToastActive = true; + } + }); + return isToastActive; +}; + +toast.update = function (toastId, options) { + if (options === void 0) { + options = {}; + } + + // if you call toast and toast.update directly nothing will be displayed + // this is why I defered the update + setTimeout(function () { + var toast = getToast(toastId, options); + + if (toast) { + var oldOptions = toast.props, + oldContent = toast.content; + + var nextOptions = _extends({}, oldOptions, options, { + toastId: options.toastId || toastId, + updateId: generateToastId() + }); + + if (nextOptions.toastId !== toastId) nextOptions.staleId = toastId; + var content = nextOptions.render || oldContent; + delete nextOptions.render; + dispatchToast(content, nextOptions); + } + }, 0); +}; +/** + * Used for controlled progress bar. + */ + + +toast.done = function (id) { + toast.update(id, { + progress: 1 + }); +}; +/** + * Track changes. The callback get the number of toast displayed + * + */ + + +toast.onChange = function (callback) { + if (isFn(callback)) { + eventManager.on(4 + /* Change */ + , callback); + } + + return function () { + isFn(callback) && eventManager.off(4 + /* Change */ + , callback); + }; +}; +/** + * Configure the ToastContainer when lazy mounted + */ + + +toast.configure = function (config) { + if (config === void 0) { + config = {}; + } + + lazy = true; + containerConfig = config; +}; + +toast.POSITION = POSITION; +toast.TYPE = TYPE; +/** + * Wait until the ToastContainer is mounted to dispatch the toast + * and attach isActive method + */ + +eventManager.on(2 +/* DidMount */ +, function (containerInstance) { + latestInstance = containerInstance.containerId || containerInstance; + containers.set(latestInstance, containerInstance); + queue.forEach(function (item) { + eventManager.emit(0 + /* Show */ + , item.content, item.options); + }); + queue = []; +}).on(3 +/* WillUnmount */ +, function (containerInstance) { + containers["delete"](containerInstance.containerId || containerInstance); + + if (containers.size === 0) { + eventManager.off(0 + /* Show */ + ).off(1 + /* Clear */ + ).off(5 + /* ClearWaitingQueue */ + ); + } + + if (canUseDom && containerDomNode) { + document.body.removeChild(containerDomNode); + } +}); + + +//# sourceMappingURL=react-toastify.esm.js.map + + +/***/ }), + +/***/ "./node_modules/react-use/esm/usePrevious.js": +/*!***************************************************!*\ + !*** ./node_modules/react-use/esm/usePrevious.js ***! + \***************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ usePrevious) +/* harmony export */ }); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js"); + +function usePrevious(state) { + var ref = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(); + (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () { + ref.current = state; + }); + return ref.current; +} + + /***/ }), /***/ "./node_modules/react/cjs/react-jsx-runtime.development.js": @@ -57778,6 +60251,315 @@ module.exports = function getSideChannel() { }; +/***/ }), + +/***/ "./node_modules/react-toastify/dist/ReactToastify.css": +/*!************************************************************!*\ + !*** ./node_modules/react-toastify/dist/ReactToastify.css ***! + \************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"); +/* harmony import */ var _style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _css_loader_dist_cjs_js_ruleSet_1_rules_6_oneOf_1_use_1_postcss_loader_dist_cjs_js_ruleSet_1_rules_6_oneOf_1_use_2_ReactToastify_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[6].oneOf[1].use[1]!../../postcss-loader/dist/cjs.js??ruleSet[1].rules[6].oneOf[1].use[2]!./ReactToastify.css */ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[6].oneOf[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[6].oneOf[1].use[2]!./node_modules/react-toastify/dist/ReactToastify.css"); + + + +var options = {}; + +options.insert = "head"; +options.singleton = false; + +var update = _style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_css_loader_dist_cjs_js_ruleSet_1_rules_6_oneOf_1_use_1_postcss_loader_dist_cjs_js_ruleSet_1_rules_6_oneOf_1_use_2_ReactToastify_css__WEBPACK_IMPORTED_MODULE_1__["default"], options); + + + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_css_loader_dist_cjs_js_ruleSet_1_rules_6_oneOf_1_use_1_postcss_loader_dist_cjs_js_ruleSet_1_rules_6_oneOf_1_use_2_ReactToastify_css__WEBPACK_IMPORTED_MODULE_1__["default"].locals || {}); + +/***/ }), + +/***/ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js": +/*!****************************************************************************!*\ + !*** ./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js ***! + \****************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; + + +var isOldIE = function isOldIE() { + var memo; + return function memorize() { + if (typeof memo === 'undefined') { + // Test for IE <= 9 as proposed by Browserhacks + // @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805 + // Tests for existence of standard globals is to allow style-loader + // to operate correctly into non-standard environments + // @see https://github.com/webpack-contrib/style-loader/issues/177 + memo = Boolean(window && document && document.all && !window.atob); + } + + return memo; + }; +}(); + +var getTarget = function getTarget() { + var memo = {}; + return function memorize(target) { + if (typeof memo[target] === 'undefined') { + var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself + + if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) { + try { + // This will throw an exception if access to iframe is blocked + // due to cross-origin restrictions + styleTarget = styleTarget.contentDocument.head; + } catch (e) { + // istanbul ignore next + styleTarget = null; + } + } + + memo[target] = styleTarget; + } + + return memo[target]; + }; +}(); + +var stylesInDom = []; + +function getIndexByIdentifier(identifier) { + var result = -1; + + for (var i = 0; i < stylesInDom.length; i++) { + if (stylesInDom[i].identifier === identifier) { + result = i; + break; + } + } + + return result; +} + +function modulesToDom(list, options) { + var idCountMap = {}; + var identifiers = []; + + for (var i = 0; i < list.length; i++) { + var item = list[i]; + var id = options.base ? item[0] + options.base : item[0]; + var count = idCountMap[id] || 0; + var identifier = "".concat(id, " ").concat(count); + idCountMap[id] = count + 1; + var index = getIndexByIdentifier(identifier); + var obj = { + css: item[1], + media: item[2], + sourceMap: item[3] + }; + + if (index !== -1) { + stylesInDom[index].references++; + stylesInDom[index].updater(obj); + } else { + stylesInDom.push({ + identifier: identifier, + updater: addStyle(obj, options), + references: 1 + }); + } + + identifiers.push(identifier); + } + + return identifiers; +} + +function insertStyleElement(options) { + var style = document.createElement('style'); + var attributes = options.attributes || {}; + + if (typeof attributes.nonce === 'undefined') { + var nonce = true ? __webpack_require__.nc : 0; + + if (nonce) { + attributes.nonce = nonce; + } + } + + Object.keys(attributes).forEach(function (key) { + style.setAttribute(key, attributes[key]); + }); + + if (typeof options.insert === 'function') { + options.insert(style); + } else { + var target = getTarget(options.insert || 'head'); + + if (!target) { + throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid."); + } + + target.appendChild(style); + } + + return style; +} + +function removeStyleElement(style) { + // istanbul ignore if + if (style.parentNode === null) { + return false; + } + + style.parentNode.removeChild(style); +} +/* istanbul ignore next */ + + +var replaceText = function replaceText() { + var textStore = []; + return function replace(index, replacement) { + textStore[index] = replacement; + return textStore.filter(Boolean).join('\n'); + }; +}(); + +function applyToSingletonTag(style, index, remove, obj) { + var css = remove ? '' : obj.media ? "@media ".concat(obj.media, " {").concat(obj.css, "}") : obj.css; // For old IE + + /* istanbul ignore if */ + + if (style.styleSheet) { + style.styleSheet.cssText = replaceText(index, css); + } else { + var cssNode = document.createTextNode(css); + var childNodes = style.childNodes; + + if (childNodes[index]) { + style.removeChild(childNodes[index]); + } + + if (childNodes.length) { + style.insertBefore(cssNode, childNodes[index]); + } else { + style.appendChild(cssNode); + } + } +} + +function applyToTag(style, options, obj) { + var css = obj.css; + var media = obj.media; + var sourceMap = obj.sourceMap; + + if (media) { + style.setAttribute('media', media); + } else { + style.removeAttribute('media'); + } + + if (sourceMap && typeof btoa !== 'undefined') { + css += "\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), " */"); + } // For old IE + + /* istanbul ignore if */ + + + if (style.styleSheet) { + style.styleSheet.cssText = css; + } else { + while (style.firstChild) { + style.removeChild(style.firstChild); + } + + style.appendChild(document.createTextNode(css)); + } +} + +var singleton = null; +var singletonCounter = 0; + +function addStyle(obj, options) { + var style; + var update; + var remove; + + if (options.singleton) { + var styleIndex = singletonCounter++; + style = singleton || (singleton = insertStyleElement(options)); + update = applyToSingletonTag.bind(null, style, styleIndex, false); + remove = applyToSingletonTag.bind(null, style, styleIndex, true); + } else { + style = insertStyleElement(options); + update = applyToTag.bind(null, style, options); + + remove = function remove() { + removeStyleElement(style); + }; + } + + update(obj); + return function updateStyle(newObj) { + if (newObj) { + if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap) { + return; + } + + update(obj = newObj); + } else { + remove(); + } + }; +} + +module.exports = function (list, options) { + options = options || {}; // Force single-tag solution on IE6-9, which has a hard limit on the # of