The cat has broken something
-We are working to fix that what was broken. Please try again later.
+The cat has broken something
++ We are working to fix that what was broken. Please try again + later. +
+diff --git a/app/Http/Controllers/Api/UserController.php b/app/Http/Controllers/Api/UserController.php
index e92130d..3e1382b 100644
--- a/app/Http/Controllers/Api/UserController.php
+++ b/app/Http/Controllers/Api/UserController.php
@@ -240,7 +240,7 @@ class UserController extends ApiController
}
return $this->respondError([
- 'code' => 'The code was not found or has expired'
+ 'code' => 'The code was not found or has expired.'
]);
}
@@ -278,7 +278,7 @@ class UserController extends ApiController
}//end if
return $this->respondWithErrors([
- 'code' => 'The code was not found or has expired'
+ 'code' => 'The code was not found or has expired.'
]);
}
diff --git a/app/Services/AnimatedGifService.php b/app/Services/AnimatedGifService.php
new file mode 100644
index 0000000..e446e15
--- /dev/null
+++ b/app/Services/AnimatedGifService.php
@@ -0,0 +1,698 @@
+ 0.
+ * @param integer $dataSize GIF blob size.
+ * @return boolean GIF file/blob is animated.
+ */
+ public static function isAnimatedGif(string $filenameOrBlob, int $dataSize = 0)
+ {
+ $regex = '#\x00\x21\xF9\x04.{4}\x00(\x2C|\x21)#s';
+ $count = 0;
+
+ if ($dataSize > 0) {
+ if (($fh = @fopen($filenameOrBlob, 'rb')) === false) {
+ return false;
+ }
+
+ $chunk = false;
+ while (feof($fh) === false && $count < 2) {
+ $chunk = ($chunk !== '' ? substr($chunk, -20) : "") . fread($fh, (1024 * 100)); //read 100kb at a time
+ $count += preg_match_all($regex, $chunk, $matches);
+ }
+
+ fclose($fh);
+ } else {
+ $count = preg_match_all($regex, $filenameOrBlob, $matches);
+ }
+
+ return $count > 1;
+ }
+
+ /**
+ * Extract frames of a GIF
+ *
+ * @param string $filenameOrBlob GIF filename path
+ * @param integer $dataSize GIF blob size.
+ * @param boolean $originalFrames Get original frames (with transparent background)
+ *
+ * @return array
+ */
+ public function extract(string $filenameOrBlob, int $dataSize = 0, $originalFrames = false)
+ {
+ if (self::isAnimatedGif($filenameOrBlob) === false) {
+ return [];
+ }
+
+ $this->reset();
+ $this->parseFramesInfo($filename);
+ $prevImg = null;
+
+ for ($i = 0; $i < count($this->frameSources); $i++) {
+ $this->frames[$i] = [];
+ $this->frameDurations[$i] = $this->frames[$i]['duration'] = $this->frameSources[$i]['delay_time'];
+
+ $img = imagecreatefromstring($this->fileHeader["gifheader"] . $this->frameSources[$i]["graphicsextension"] . $this->frameSources[$i]["imagedata"] . chr(0x3b));
+
+ if (!$originalFrames) {
+ if ($i > 0) {
+ $prevImg = $this->frames[($i - 1)]['image'];
+ } else {
+ $prevImg = $img;
+ }
+
+ $sprite = imagecreate($this->gifMaxWidth, $this->gifMaxHeight);
+ imagesavealpha($sprite, true);
+
+ $transparent = imagecolortransparent($prevImg);
+
+ if ($transparent > -1 && imagecolorstotal($prevImg) > $transparent) {
+ $actualTrans = imagecolorsforindex($prevImg, $transparent);
+ imagecolortransparent($sprite, imagecolorallocate($sprite, $actualTrans['red'], $actualTrans['green'], $actualTrans['blue']));
+ }
+
+ if ((int) $this->frameSources[$i]['disposal_method'] == 1 && $i > 0) {
+ imagecopy($sprite, $prevImg, 0, 0, 0, 0, $this->gifMaxWidth, $this->gifMaxHeight);
+ }
+
+ imagecopyresampled($sprite, $img, $this->frameSources[$i]["offset_left"], $this->frameSources[$i]["offset_top"], 0, 0, $this->gifMaxWidth, $this->gifMaxHeight, $this->gifMaxWidth, $this->gifMaxHeight);
+ $img = $sprite;
+ }//end if
+
+ $this->frameImages[$i] = $this->frames[$i]['image'] = $img;
+ }//end for
+
+ return $this->frames;
+ }
+}
+
+class GifFrameExtractor
+{
+ // Properties
+ // ===================================================================================
+
+ /**
+ * @var resource
+ */
+ private $gif;
+
+ /**
+ * @var array
+ */
+ private $frames;
+
+ /**
+ * @var array
+ */
+ private $frameDurations;
+
+ /**
+ * @var array
+ */
+ private $frameImages;
+
+ /**
+ * @var array
+ */
+ private $framePositions;
+
+ /**
+ * @var array
+ */
+ private $frameDimensions;
+
+ /**
+ * @var integer
+ *
+ * (old: $this->index)
+ */
+ private $frameNumber;
+
+ /**
+ * @var array
+ *
+ * (old: $this->imagedata)
+ */
+ private $frameSources;
+
+ /**
+ * @var array
+ *
+ * (old: $this->fileHeader)
+ */
+ private $fileHeader;
+
+ /**
+ * @var integer The reader pointer in the file source
+ *
+ * (old: $this->pointer)
+ */
+ private $pointer;
+
+ /**
+ * @var integer
+ */
+ private $gifMaxWidth;
+
+ /**
+ * @var integer
+ */
+ private $gifMaxHeight;
+
+ /**
+ * @var integer
+ */
+ private $totalDuration;
+
+ /**
+ * @var integer
+ */
+ private $handle;
+
+ /**
+ * @var array
+ *
+ * (old: globaldata)
+ */
+ private $globaldata;
+
+ /**
+ * @var array
+ *
+ * (old: orgvars)
+ */
+ private $orgvars;
+
+ // Methods
+ // ===================================================================================
+
+
+ /**
+ * Parse the frame informations contained in the GIF file
+ *
+ * @param string $filename GIF filename path
+ */
+ private function parseFramesInfo($filename)
+ {
+ $this->openFile($filename);
+ $this->parseGifHeader();
+ $this->parseGraphicsExtension(0);
+ $this->getApplicationData();
+ $this->getApplicationData();
+ $this->getFrameString(0);
+ $this->parseGraphicsExtension(1);
+ $this->getCommentData();
+ $this->getApplicationData();
+ $this->getFrameString(1);
+
+ while (!$this->checkByte(0x3b) && !$this->checkEOF()) {
+ $this->getCommentData(1);
+ $this->parseGraphicsExtension(2);
+ $this->getFrameString(2);
+ $this->getApplicationData();
+ }
+ }
+
+ /**
+ * Parse the gif header (old: get_gif_header)
+ */
+ private function parseGifHeader()
+ {
+ $this->pointerForward(10);
+
+ if ($this->readBits(($mybyte = $this->readByteInt()), 0, 1) == 1) {
+ $this->pointerForward(2);
+ $this->pointerForward(pow(2, ($this->readBits($mybyte, 5, 3) + 1)) * 3);
+ } else {
+ $this->pointerForward(2);
+ }
+
+ $this->fileHeader["gifheader"] = $this->dataPart(0, $this->pointer);
+
+ // Decoding
+ $this->orgvars["gifheader"] = $this->fileHeader["gifheader"];
+ $this->orgvars["background_color"] = $this->orgvars["gifheader"][11];
+ }
+
+ /**
+ * Parse the application data of the frames (old: get_application_data)
+ */
+ private function getApplicationData()
+ {
+ $startdata = $this->readByte(2);
+
+ if ($startdata == chr(0x21) . chr(0xff)) {
+ $start = ($this->pointer - 2);
+ $this->pointerForward($this->readByteInt());
+ $this->readDataStream($this->readByteInt());
+ $this->fileHeader["applicationdata"] = $this->dataPart($start, ($this->pointer - $start));
+ } else {
+ $this->pointerRewind(2);
+ }
+ }
+
+ /**
+ * Parse the comment data of the frames (old: get_comment_data)
+ */
+ private function getCommentData()
+ {
+ $startdata = $this->readByte(2);
+
+ if ($startdata == chr(0x21) . chr(0xfe)) {
+ $start = ($this->pointer - 2);
+ $this->readDataStream($this->readByteInt());
+ $this->fileHeader["commentdata"] = $this->dataPart($start, ($this->pointer - $start));
+ } else {
+ $this->pointerRewind(2);
+ }
+ }
+
+ /**
+ * Parse the graphic extension of the frames (old: get_graphics_extension)
+ *
+ * @param integer $type
+ */
+ private function parseGraphicsExtension($type)
+ {
+ $startdata = $this->readByte(2);
+
+ if ($startdata == chr(0x21) . chr(0xf9)) {
+ $start = ($this->pointer - 2);
+ $this->pointerForward($this->readByteInt());
+ $this->pointerForward(1);
+
+ if ($type == 2) {
+ $this->frameSources[$this->frameNumber]["graphicsextension"] = $this->dataPart($start, ($this->pointer - $start));
+ } elseif ($type == 1) {
+ $this->orgvars["hasgx_type_1"] = 1;
+ $this->globaldata["graphicsextension"] = $this->dataPart($start, ($this->pointer - $start));
+ } elseif ($type == 0) {
+ $this->orgvars["hasgx_type_0"] = 1;
+ $this->globaldata["graphicsextension_0"] = $this->dataPart($start, ($this->pointer - $start));
+ }
+ } else {
+ $this->pointerRewind(2);
+ }//end if
+ }
+
+ /**
+ * Get the full frame string block (old: get_image_block)
+ *
+ * @param integer $type
+ */
+ private function getFrameString($type)
+ {
+ if ($this->checkByte(0x2c)) {
+ $start = $this->pointer;
+ $this->pointerForward(9);
+
+ if ($this->readBits(($mybyte = $this->readByteInt()), 0, 1) == 1) {
+ $this->pointerForward(pow(2, ($this->readBits($mybyte, 5, 3) + 1)) * 3);
+ }
+
+ $this->pointerForward(1);
+ $this->readDataStream($this->readByteInt());
+ $this->frameSources[$this->frameNumber]["imagedata"] = $this->dataPart($start, ($this->pointer - $start));
+
+ if ($type == 0) {
+ $this->orgvars["hasgx_type_0"] = 0;
+
+ if (isset($this->globaldata["graphicsextension_0"])) {
+ $this->frameSources[$this->frameNumber]["graphicsextension"] = $this->globaldata["graphicsextension_0"];
+ } else {
+ $this->frameSources[$this->frameNumber]["graphicsextension"] = null;
+ }
+
+ unset($this->globaldata["graphicsextension_0"]);
+ } elseif ($type == 1) {
+ if (isset($this->orgvars["hasgx_type_1"]) && $this->orgvars["hasgx_type_1"] == 1) {
+ $this->orgvars["hasgx_type_1"] = 0;
+ $this->frameSources[$this->frameNumber]["graphicsextension"] = $this->globaldata["graphicsextension"];
+ unset($this->globaldata["graphicsextension"]);
+ } else {
+ $this->orgvars["hasgx_type_0"] = 0;
+ $this->frameSources[$this->frameNumber]["graphicsextension"] = $this->globaldata["graphicsextension_0"];
+ unset($this->globaldata["graphicsextension_0"]);
+ }
+ }//end if
+
+ $this->parseFrameData();
+ $this->frameNumber++;
+ }//end if
+ }
+
+ /**
+ * Parse frame data string into an array (old: parse_image_data)
+ */
+ private function parseFrameData()
+ {
+ $this->frameSources[$this->frameNumber]["disposal_method"] = $this->getImageDataBit("ext", 3, 3, 3);
+ $this->frameSources[$this->frameNumber]["user_input_flag"] = $this->getImageDataBit("ext", 3, 6, 1);
+ $this->frameSources[$this->frameNumber]["transparent_color_flag"] = $this->getImageDataBit("ext", 3, 7, 1);
+ $this->frameSources[$this->frameNumber]["delay_time"] = $this->dualByteVal($this->getImageDataByte("ext", 4, 2));
+ $this->totalDuration += (int) $this->frameSources[$this->frameNumber]["delay_time"];
+ $this->frameSources[$this->frameNumber]["transparent_color_index"] = ord($this->getImageDataByte("ext", 6, 1));
+ $this->frameSources[$this->frameNumber]["offset_left"] = $this->dualByteVal($this->getImageDataByte("dat", 1, 2));
+ $this->frameSources[$this->frameNumber]["offset_top"] = $this->dualByteVal($this->getImageDataByte("dat", 3, 2));
+ $this->frameSources[$this->frameNumber]["width"] = $this->dualByteVal($this->getImageDataByte("dat", 5, 2));
+ $this->frameSources[$this->frameNumber]["height"] = $this->dualByteVal($this->getImageDataByte("dat", 7, 2));
+ $this->frameSources[$this->frameNumber]["local_color_table_flag"] = $this->getImageDataBit("dat", 9, 0, 1);
+ $this->frameSources[$this->frameNumber]["interlace_flag"] = $this->getImageDataBit("dat", 9, 1, 1);
+ $this->frameSources[$this->frameNumber]["sort_flag"] = $this->getImageDataBit("dat", 9, 2, 1);
+ $this->frameSources[$this->frameNumber]["color_table_size"] = (pow(2, ($this->getImageDataBit("dat", 9, 5, 3) + 1)) * 3);
+ $this->frameSources[$this->frameNumber]["color_table"] = substr($this->frameSources[$this->frameNumber]["imagedata"], 10, $this->frameSources[$this->frameNumber]["color_table_size"]);
+ $this->frameSources[$this->frameNumber]["lzw_code_size"] = ord($this->getImageDataByte("dat", 10, 1));
+
+ $this->framePositions[$this->frameNumber] = [
+ 'x' => $this->frameSources[$this->frameNumber]["offset_left"],
+ 'y' => $this->frameSources[$this->frameNumber]["offset_top"],
+ ];
+
+ $this->frameDimensions[$this->frameNumber] = [
+ 'width' => $this->frameSources[$this->frameNumber]["width"],
+ 'height' => $this->frameSources[$this->frameNumber]["height"],
+ ];
+
+ // Decoding
+ $this->orgvars[$this->frameNumber]["transparent_color_flag"] = $this->frameSources[$this->frameNumber]["transparent_color_flag"];
+ $this->orgvars[$this->frameNumber]["transparent_color_index"] = $this->frameSources[$this->frameNumber]["transparent_color_index"];
+ $this->orgvars[$this->frameNumber]["delay_time"] = $this->frameSources[$this->frameNumber]["delay_time"];
+ $this->orgvars[$this->frameNumber]["disposal_method"] = $this->frameSources[$this->frameNumber]["disposal_method"];
+ $this->orgvars[$this->frameNumber]["offset_left"] = $this->frameSources[$this->frameNumber]["offset_left"];
+ $this->orgvars[$this->frameNumber]["offset_top"] = $this->frameSources[$this->frameNumber]["offset_top"];
+
+ // Updating the max width
+ if ($this->gifMaxWidth < $this->frameSources[$this->frameNumber]["width"]) {
+ $this->gifMaxWidth = $this->frameSources[$this->frameNumber]["width"];
+ }
+
+ // Updating the max height
+ if ($this->gifMaxHeight < $this->frameSources[$this->frameNumber]["height"]) {
+ $this->gifMaxHeight = $this->frameSources[$this->frameNumber]["height"];
+ }
+ }
+
+ /**
+ * Get the image data byte (old: get_imagedata_byte)
+ *
+ * @param string $type
+ * @param integer $start
+ * @param integer $length
+ *
+ * @return string
+ */
+ private function getImageDataByte($type, $start, $length)
+ {
+ if ($type == "ext") {
+ return substr($this->frameSources[$this->frameNumber]["graphicsextension"], $start, $length);
+ }
+
+ // "dat"
+ return substr($this->frameSources[$this->frameNumber]["imagedata"], $start, $length);
+ }
+
+ /**
+ * Get the image data bit (old: get_imagedata_bit)
+ *
+ * @param string $type
+ * @param integer $byteIndex
+ * @param integer $bitStart
+ * @param integer $bitLength
+ *
+ * @return number
+ */
+ private function getImageDataBit($type, $byteIndex, $bitStart, $bitLength)
+ {
+ if ($type == "ext") {
+ return $this->readBits(ord(substr($this->frameSources[$this->frameNumber]["graphicsextension"], $byteIndex, 1)), $bitStart, $bitLength);
+ }
+
+ // "dat"
+ return $this->readBits(ord(substr($this->frameSources[$this->frameNumber]["imagedata"], $byteIndex, 1)), $bitStart, $bitLength);
+ }
+
+ /**
+ * Return the value of 2 ASCII chars (old: dualbyteval)
+ *
+ * @param string $s
+ *
+ * @return integer
+ */
+ private function dualByteVal($s)
+ {
+ $i = (ord($s[1]) * 256 + ord($s[0]));
+
+ return $i;
+ }
+
+ /**
+ * Read the data stream (old: read_data_stream)
+ *
+ * @param integer $firstLength
+ */
+ private function readDataStream($firstLength)
+ {
+ $this->pointerForward($firstLength);
+ $length = $this->readByteInt();
+
+ if ($length != 0) {
+ while ($length != 0) {
+ $this->pointerForward($length);
+ $length = $this->readByteInt();
+ }
+ }
+ }
+
+ /**
+ * Open the gif file (old: loadfile)
+ *
+ * @param string $filename
+ */
+ private function openFile($filename)
+ {
+ $this->handle = fopen($filename, "rb");
+ $this->pointer = 0;
+
+ $imageSize = getimagesize($filename);
+ $this->gifWidth = $imageSize[0];
+ $this->gifHeight = $imageSize[1];
+ }
+
+ /**
+ * Close the read gif file (old: closefile)
+ */
+ private function closeFile()
+ {
+ fclose($this->handle);
+ $this->handle = 0;
+ }
+
+ /**
+ * Read the file from the beginning to $byteCount in binary (old: readbyte)
+ *
+ * @param integer $byteCount
+ *
+ * @return string
+ */
+ private function readByte($byteCount)
+ {
+ $data = fread($this->handle, $byteCount);
+ $this->pointer += $byteCount;
+
+ return $data;
+ }
+
+ /**
+ * Read a byte and return ASCII value (old: readbyte_int)
+ *
+ * @return integer
+ */
+ private function readByteInt()
+ {
+ $data = fread($this->handle, 1);
+ $this->pointer++;
+
+ return ord($data);
+ }
+
+ /**
+ * Convert a $byte to decimal (old: readbits)
+ *
+ * @param string $byte
+ * @param integer $start
+ * @param integer $length
+ *
+ * @return number
+ */
+ private function readBits($byte, $start, $length)
+ {
+ $bin = str_pad(decbin($byte), 8, "0", STR_PAD_LEFT);
+ $data = substr($bin, $start, $length);
+
+ return bindec($data);
+ }
+
+ /**
+ * Rewind the file pointer reader (old: p_rewind)
+ *
+ * @param integer $length
+ */
+ private function pointerRewind($length)
+ {
+ $this->pointer -= $length;
+ fseek($this->handle, $this->pointer);
+ }
+
+ /**
+ * Forward the file pointer reader (old: p_forward)
+ *
+ * @param integer $length
+ */
+ private function pointerForward($length)
+ {
+ $this->pointer += $length;
+ fseek($this->handle, $this->pointer);
+ }
+
+ /**
+ * Get a section of the data from $start to $start + $length (old: datapart)
+ *
+ * @param integer $start
+ * @param integer $length
+ *
+ * @return string
+ */
+ private function dataPart($start, $length)
+ {
+ fseek($this->handle, $start);
+ $data = fread($this->handle, $length);
+ fseek($this->handle, $this->pointer);
+
+ return $data;
+ }
+
+ /**
+ * Check if a character if a byte (old: checkbyte)
+ *
+ * @param integer $byte
+ *
+ * @return boolean
+ */
+ private function checkByte($byte)
+ {
+ if (fgetc($this->handle) == chr($byte)) {
+ fseek($this->handle, $this->pointer);
+ return true;
+ }
+
+ fseek($this->handle, $this->pointer);
+
+ return false;
+ }
+
+ /**
+ * Check the end of the file (old: checkEOF)
+ *
+ * @return boolean
+ */
+ private function checkEOF()
+ {
+ if (fgetc($this->handle) === false) {
+ return true;
+ }
+
+ fseek($this->handle, $this->pointer);
+
+ return false;
+ }
+
+ /**
+ * Reset and clear this current object
+ */
+ private function reset()
+ {
+ $this->gif = null;
+ $this->totalDuration = $this->gifMaxHeight = $this->gifMaxWidth = $this->handle = $this->pointer = $this->frameNumber = 0;
+ $this->frameDimensions = $this->framePositions = $this->frameImages = $this->frameDurations = $this->globaldata = $this->orgvars = $this->frames = $this->fileHeader = $this->frameSources = [];
+ }
+
+ // Getter / Setter
+ // ===================================================================================
+
+
+ /**
+ * Get the total of all added frame duration
+ *
+ * @return integer
+ */
+ public function getTotalDuration()
+ {
+ return $this->totalDuration;
+ }
+
+ /**
+ * Get the number of extracted frames
+ *
+ * @return integer
+ */
+ public function getFrameNumber()
+ {
+ return $this->frameNumber;
+ }
+
+ /**
+ * Get the extracted frames (images and durations)
+ *
+ * @return array
+ */
+ public function getFrames()
+ {
+ return $this->frames;
+ }
+
+ /**
+ * Get the extracted frame positions
+ *
+ * @return array
+ */
+ public function getFramePositions()
+ {
+ return $this->framePositions;
+ }
+
+ /**
+ * Get the extracted frame dimensions
+ *
+ * @return array
+ */
+ public function getFrameDimensions()
+ {
+ return $this->frameDimensions;
+ }
+
+ /**
+ * Get the extracted frame images
+ *
+ * @return array
+ */
+ public function getFrameImages()
+ {
+ return $this->frameImages;
+ }
+
+ /**
+ * Get the extracted frame durations
+ *
+ * @return array
+ */
+ public function getFrameDurations()
+ {
+ return $this->frameDurations;
+ }
+}
diff --git a/app/Services/ImageService.php b/app/Services/ImageService.php
deleted file mode 100644
index be65efd..0000000
--- a/app/Services/ImageService.php
+++ /dev/null
@@ -1,9 +0,0 @@
-=6.0.0"
}
},
- "node_modules/@ctrl/tinycolor": {
- "version": "3.5.0",
- "resolved": "https://registry.npmjs.org/@ctrl/tinycolor/-/tinycolor-3.5.0.tgz",
- "integrity": "sha512-tlJpwF40DEQcfR/QF+wNMVyGMaO9FQp6Z1Wahj4Gk3CJQYHwA2xVG7iKDFdW6zuxZY9XWOpGcfNCTsX4McOsOg==",
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/@element-plus/icons-vue": {
- "version": "2.0.10",
- "resolved": "https://registry.npmjs.org/@element-plus/icons-vue/-/icons-vue-2.0.10.tgz",
- "integrity": "sha512-ygEZ1mwPjcPo/OulhzLE7mtDrQBWI8vZzEWSNB2W/RNCRjoQGwbaK4N8lV4rid7Ts4qvySU3njMN7YCiSlSaTQ==",
- "peerDependencies": {
- "vue": "^3.2.0"
- }
- },
"node_modules/@es-joy/jsdoccomment": {
"version": "0.36.1",
"resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.36.1.tgz",
@@ -439,85 +415,6 @@
"url": "https://opencollective.com/eslint"
}
},
- "node_modules/@floating-ui/core": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.1.1.tgz",
- "integrity": "sha512-PL7g3dhA4dHgZfujkuD8Q+tfJJynEtnNQSPzmucCnxMvkxf4cLBJw/ZYqZUn4HCh33U3WHrAfv2R2tbi9UCSmw=="
- },
- "node_modules/@floating-ui/dom": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.1.1.tgz",
- "integrity": "sha512-TpIO93+DIujg3g7SykEAGZMDtbJRrmnYRCNYSjJlvIbGhBjRSNTLVbNeDQBrzy9qDgUbiWdc7KA0uZHZ2tJmiw==",
- "dependencies": {
- "@floating-ui/core": "^1.1.0"
- }
- },
- "node_modules/@fortawesome/fontawesome-common-types": {
- "version": "6.2.1",
- "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.2.1.tgz",
- "integrity": "sha512-Sz07mnQrTekFWLz5BMjOzHl/+NooTdW8F8kDQxjWwbpOJcnoSg4vUDng8d/WR1wOxM0O+CY9Zw0nR054riNYtQ==",
- "hasInstallScript": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/@fortawesome/fontawesome-svg-core": {
- "version": "6.2.1",
- "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.2.1.tgz",
- "integrity": "sha512-HELwwbCz6C1XEcjzyT1Jugmz2NNklMrSPjZOWMlc+ZsHIVk+XOvOXLGGQtFBwSyqfJDNgRq4xBCwWOaZ/d9DEA==",
- "hasInstallScript": true,
- "dependencies": {
- "@fortawesome/fontawesome-common-types": "6.2.1"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/@fortawesome/free-brands-svg-icons": {
- "version": "6.2.1",
- "resolved": "https://registry.npmjs.org/@fortawesome/free-brands-svg-icons/-/free-brands-svg-icons-6.2.1.tgz",
- "integrity": "sha512-L8l4MfdHPmZlJ72PvzdfwOwbwcCAL0vx48tJRnI6u1PJXh+j2f3yDoKyQgO3qjEsgD5Fr2tQV/cPP8F/k6aUig==",
- "hasInstallScript": true,
- "dependencies": {
- "@fortawesome/fontawesome-common-types": "6.2.1"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/@fortawesome/free-regular-svg-icons": {
- "version": "6.2.1",
- "resolved": "https://registry.npmjs.org/@fortawesome/free-regular-svg-icons/-/free-regular-svg-icons-6.2.1.tgz",
- "integrity": "sha512-wiqcNDNom75x+pe88FclpKz7aOSqS2lOivZeicMV5KRwOAeypxEYWAK/0v+7r+LrEY30+qzh8r2XDaEHvoLsMA==",
- "hasInstallScript": true,
- "dependencies": {
- "@fortawesome/fontawesome-common-types": "6.2.1"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/@fortawesome/free-solid-svg-icons": {
- "version": "6.2.1",
- "resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-6.2.1.tgz",
- "integrity": "sha512-oKuqrP5jbfEPJWTij4sM+/RvgX+RMFwx3QZCZcK9PrBDgxC35zuc7AOFsyMjMd/PIFPeB2JxyqDr5zs/DZFPPw==",
- "hasInstallScript": true,
- "dependencies": {
- "@fortawesome/fontawesome-common-types": "6.2.1"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/@fortawesome/vue-fontawesome": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/@fortawesome/vue-fontawesome/-/vue-fontawesome-3.0.3.tgz",
- "integrity": "sha512-KCPHi9QemVXGMrfuwf3nNnNo129resAIQWut9QTAMXmXqL2ErABC6ohd2yY5Ipq0CLWNbKHk8TMdTXL/Zf3ZhA==",
- "peerDependencies": {
- "@fortawesome/fontawesome-svg-core": "~1 || ~6",
- "vue": ">= 3.0.0 < 4"
- }
- },
"node_modules/@humanwhocodes/config-array": {
"version": "0.11.8",
"resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz",
@@ -644,16 +541,6 @@
"node": ">= 8"
}
},
- "node_modules/@popperjs/core": {
- "name": "@sxzz/popperjs-es",
- "version": "2.11.7",
- "resolved": "https://registry.npmjs.org/@sxzz/popperjs-es/-/popperjs-es-2.11.7.tgz",
- "integrity": "sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ==",
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/popperjs"
- }
- },
"node_modules/@types/eslint": {
"version": "8.21.0",
"resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.21.0.tgz",
@@ -685,19 +572,6 @@
"resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz",
"integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ=="
},
- "node_modules/@types/lodash": {
- "version": "4.14.191",
- "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.191.tgz",
- "integrity": "sha512-BdZ5BCCvho3EIXw6wUCXHe7rS53AIDPLE+JzwgT+OsJk53oBfbSmZZ7CX4VaRoN78N+TJpFi9QPlfIVNmJYWxQ=="
- },
- "node_modules/@types/lodash-es": {
- "version": "4.17.6",
- "resolved": "https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.6.tgz",
- "integrity": "sha512-R+zTeVUKDdfoRxpAryaQNRKk3105Rrgx2CFRClIgRGaqDTdjsm8h6IYA8ir584W3ePzkZfst5xIgDwYrlh9HLg==",
- "dependencies": {
- "@types/lodash": "*"
- }
- },
"node_modules/@types/node": {
"version": "18.11.18",
"resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.18.tgz",
@@ -710,11 +584,6 @@
"integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==",
"dev": true
},
- "node_modules/@types/web-bluetooth": {
- "version": "0.0.16",
- "resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.16.tgz",
- "integrity": "sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ=="
- },
"node_modules/@typescript-eslint/eslint-plugin": {
"version": "5.50.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.50.0.tgz",
@@ -1037,39 +906,6 @@
"vue": ">=3.2.0"
}
},
- "node_modules/@vueuse/core": {
- "version": "9.12.0",
- "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-9.12.0.tgz",
- "integrity": "sha512-h/Di8Bvf6xRcvS/PvUVheiMYYz3U0tH3X25YxONSaAUBa841ayMwxkuzx/DGUMCW/wHWzD8tRy2zYmOC36r4sg==",
- "dependencies": {
- "@types/web-bluetooth": "^0.0.16",
- "@vueuse/metadata": "9.12.0",
- "@vueuse/shared": "9.12.0",
- "vue-demi": "*"
- },
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- }
- },
- "node_modules/@vueuse/metadata": {
- "version": "9.12.0",
- "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-9.12.0.tgz",
- "integrity": "sha512-9oJ9MM9lFLlmvxXUqsR1wLt1uF7EVbP5iYaHJYqk+G2PbMjY6EXvZeTjbdO89HgoF5cI6z49o2zT/jD9SVoNpQ==",
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- }
- },
- "node_modules/@vueuse/shared": {
- "version": "9.12.0",
- "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-9.12.0.tgz",
- "integrity": "sha512-TWuJLACQ0BVithVTRbex4Wf1a1VaRuSpVeyEd4vMUWl54PzlE0ciFUshKCXnlLuD0lxIaLK4Ypj3NXYzZh4+SQ==",
- "dependencies": {
- "vue-demi": "*"
- },
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- }
- },
"node_modules/@webassemblyjs/ast": {
"version": "1.11.1",
"resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz",
@@ -1331,28 +1167,6 @@
"node": ">=8"
}
},
- "node_modules/async-validator": {
- "version": "4.2.5",
- "resolved": "https://registry.npmjs.org/async-validator/-/async-validator-4.2.5.tgz",
- "integrity": "sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg=="
- },
- "node_modules/asynckit": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
- "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
- "dev": true
- },
- "node_modules/axios": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/axios/-/axios-1.3.1.tgz",
- "integrity": "sha512-78pWJsQTceInlyaeBQeYZ/QgZeWS8hGeKiIJiDKQe3hEyBb7sEMq0K4gjx+Va6WHTYO4zI/RRl8qGRzn0YMadA==",
- "dev": true,
- "dependencies": {
- "follow-redirects": "^1.15.0",
- "form-data": "^4.0.0",
- "proxy-from-env": "^1.1.0"
- }
- },
"node_modules/balanced-match": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
@@ -1538,18 +1352,6 @@
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
},
- "node_modules/combined-stream": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
- "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
- "dev": true,
- "dependencies": {
- "delayed-stream": "~1.0.0"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
"node_modules/commander": {
"version": "2.20.3",
"resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
@@ -1622,11 +1424,6 @@
"date-fns": ">=2.0.0"
}
},
- "node_modules/dayjs": {
- "version": "1.11.7",
- "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.7.tgz",
- "integrity": "sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ=="
- },
"node_modules/debug": {
"version": "4.3.4",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
@@ -1650,15 +1447,6 @@
"integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
"dev": true
},
- "node_modules/delayed-stream": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
- "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
- "dev": true,
- "engines": {
- "node": ">=0.4.0"
- }
- },
"node_modules/dir-glob": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
@@ -1702,31 +1490,6 @@
"integrity": "sha512-47o4PPgxfU1KMNejz+Dgaodf7YTcg48uOfV1oM6cs3adrl2+7R+dHkt3Jpxqo0LRCbGJEzTKMUt0RdvByb/leg==",
"peer": true
},
- "node_modules/element-plus": {
- "version": "2.2.29",
- "resolved": "https://registry.npmjs.org/element-plus/-/element-plus-2.2.29.tgz",
- "integrity": "sha512-g4dcrURrKkR5uUX8n5RVnnqGnimoki9HfqS4yHHG6XwCHBkZGozdq4x+478BzeWUe31h++BO+7dakSx4VnM8RQ==",
- "dependencies": {
- "@ctrl/tinycolor": "^3.4.1",
- "@element-plus/icons-vue": "^2.0.6",
- "@floating-ui/dom": "^1.0.1",
- "@popperjs/core": "npm:@sxzz/popperjs-es@^2.11.7",
- "@types/lodash": "^4.14.182",
- "@types/lodash-es": "^4.17.6",
- "@vueuse/core": "^9.1.0",
- "async-validator": "^4.2.5",
- "dayjs": "^1.11.3",
- "escape-html": "^1.0.3",
- "lodash": "^4.17.21",
- "lodash-es": "^4.17.21",
- "lodash-unified": "^1.0.2",
- "memoize-one": "^6.0.0",
- "normalize-wheel-es": "^1.2.0"
- },
- "peerDependencies": {
- "vue": "^3.2.0"
- }
- },
"node_modules/emojis-list": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz",
@@ -1799,11 +1562,6 @@
"node": ">=6"
}
},
- "node_modules/escape-html": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
- "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
- },
"node_modules/escape-string-regexp": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
@@ -2195,40 +1953,6 @@
"integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==",
"dev": true
},
- "node_modules/follow-redirects": {
- "version": "1.15.2",
- "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz",
- "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==",
- "dev": true,
- "funding": [
- {
- "type": "individual",
- "url": "https://github.com/sponsors/RubenVerborgh"
- }
- ],
- "engines": {
- "node": ">=4.0"
- },
- "peerDependenciesMeta": {
- "debug": {
- "optional": true
- }
- }
- },
- "node_modules/form-data": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
- "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
- "dev": true,
- "dependencies": {
- "asynckit": "^0.4.0",
- "combined-stream": "^1.0.8",
- "mime-types": "^2.1.12"
- },
- "engines": {
- "node": ">= 6"
- }
- },
"node_modules/fs.realpath": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
@@ -2638,22 +2362,8 @@
"node_modules/lodash": {
"version": "4.17.21",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
- "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
- },
- "node_modules/lodash-es": {
- "version": "4.17.21",
- "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz",
- "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw=="
- },
- "node_modules/lodash-unified": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/lodash-unified/-/lodash-unified-1.0.3.tgz",
- "integrity": "sha512-WK9qSozxXOD7ZJQlpSqOT+om2ZfcT4yO+03FuzAHD0wF6S0l0090LRPDx3vhTTLZ8cFKpBn+IOcVXK6qOcIlfQ==",
- "peerDependencies": {
- "@types/lodash-es": "*",
- "lodash": "*",
- "lodash-es": "*"
- }
+ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
+ "dev": true
},
"node_modules/lodash.merge": {
"version": "4.6.2",
@@ -2681,11 +2391,6 @@
"sourcemap-codec": "^1.4.8"
}
},
- "node_modules/memoize-one": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-6.0.0.tgz",
- "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw=="
- },
"node_modules/merge-stream": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
@@ -2718,6 +2423,7 @@
"version": "1.52.0",
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
"integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
+ "peer": true,
"engines": {
"node": ">= 0.6"
}
@@ -2726,6 +2432,7 @@
"version": "2.1.35",
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
"integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+ "peer": true,
"dependencies": {
"mime-db": "1.52.0"
},
@@ -2794,11 +2501,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/normalize-wheel-es": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/normalize-wheel-es/-/normalize-wheel-es-1.2.0.tgz",
- "integrity": "sha512-Wj7+EJQ8mSuXr2iWfnujrimU35R2W4FAErEyTmJoJ7ucwTn2hOUSsRehMb5RSYkxXGTM7Y9QpvPmp++w5ftoJw=="
- },
"node_modules/normalize.css": {
"version": "8.0.1",
"resolved": "https://registry.npmjs.org/normalize.css/-/normalize.css-8.0.1.tgz",
@@ -3034,12 +2736,6 @@
"url": "https://github.com/prettier/prettier?sponsor=1"
}
},
- "node_modules/proxy-from-env": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
- "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==",
- "dev": true
- },
"node_modules/punycode": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz",
diff --git a/package.json b/package.json
index 19ba6f6..471be87 100644
--- a/package.json
+++ b/package.json
@@ -9,7 +9,6 @@
"devDependencies": {
"@typescript-eslint/eslint-plugin": "^5.48.1",
"@typescript-eslint/parser": "^5.48.1",
- "axios": "^1.1.2",
"eslint": "^8.31.0",
"eslint-config-prettier": "^8.6.0",
"eslint-plugin-jsdoc": "^39.6.4",
@@ -22,16 +21,9 @@
"vite": "^4.0.0"
},
"dependencies": {
- "@fortawesome/fontawesome-svg-core": "^6.2.1",
- "@fortawesome/free-brands-svg-icons": "^6.2.1",
- "@fortawesome/free-regular-svg-icons": "^6.2.1",
- "@fortawesome/free-solid-svg-icons": "^6.2.1",
- "@fortawesome/vue-fontawesome": "^3.0.2",
"@vitejs/plugin-vue": "^4.0.0",
"@vuepic/vue-datepicker": "^3.6.4",
- "date-fns": "^2.29.3",
"dotenv": "^16.0.3",
- "element-plus": "^2.2.27",
"normalize.css": "^8.0.1",
"pinia": "^2.0.28",
"pinia-plugin-persistedstate": "^3.0.1",
diff --git a/public/img/background.jpg b/public/img/background.jpg
new file mode 100644
index 0000000..e243968
Binary files /dev/null and b/public/img/background.jpg differ
diff --git a/resources/css/app.scss b/resources/css/app.scss
index 6aebd87..689ae98 100644
--- a/resources/css/app.scss
+++ b/resources/css/app.scss
@@ -43,50 +43,31 @@ h1 {
font-weight: 800;
}
-label {
- display: block;
- margin-bottom: map-get($spacer, 1);
-
- &.required:after {
- content: " *";
- color: $danger-color;
- }
-
- &.inline {
- display: inline-block;
- margin-right: map-get($spacer, 3);
-
- &:after {
- content: ":";
- }
- }
-}
-
p {
line-height: 1.5rem;
margin-top: 0;
}
-input,
-select,
-textarea {
- box-sizing: border-box;
- display: block;
- width: 100%;
- border: 1px solid $border-color;
- border-radius: 12px;
- padding: map-get($spacer, 2) map-get($spacer, 3);
- color: $font-color;
- margin-bottom: map-get($spacer, 4);
+// input,
+// select,
+// textarea {
+// box-sizing: border-box;
+// display: block;
+// width: 100%;
+// border: 1px solid $border-color;
+// border-radius: 12px;
+// padding: map-get($spacer, 2) map-get($spacer, 3);
+// color: $font-color;
+// margin-bottom: map-get($spacer, 4);
- -webkit-appearance: none;
- -moz-appearance: none;
- appearance: none;
-}
+// -webkit-appearance: none;
+// -moz-appearance: none;
+// appearance: none;
+// }
-textarea {
- resize: none;
-}
+// textarea {
+// resize: none;
+// }
select {
padding-right: 2.5rem;
@@ -178,39 +159,6 @@ code {
}
}
-/* Loader */
-.loader-cover {
- position: fixed;
- display: flex;
- justify-content: center;
- align-items: center;
- top: 0;
- left: 0;
- bottom: 0;
- right: 0;
- backdrop-filter: blur(14px);
- -webkit-backdrop-filter: blur(4px);
- background-color: rgba(255, 255, 255, 0.5);
-
- .loader {
- display: flex;
- flex-direction: column;
- padding: map-get($spacer, 5) calc(map-get($spacer, 5) * 2);
-
- border: 1px solid transparent;
- border-radius: 24px;
-
- svg {
- font-size: calc(map-get($spacer, 5) * 1.5);
- }
-
- span {
- font-size: map-get($spacer, 4);
- padding-top: map-get($spacer, 3);
- }
- }
-}
-
/* Button */
button.button,
a.button,
@@ -301,53 +249,6 @@ label.button {
}
}
-/* Form Group */
-.form-group {
- margin-bottom: map-get($spacer, 3);
- padding: 0 4px;
- flex: 1;
-
- input,
- textarea {
- margin-bottom: map-get($spacer, 1);
- }
-
- .form-group-info {
- font-size: 85%;
- margin-bottom: map-get($spacer, 1);
- }
-
- .form-group-error {
- // display: none;
- font-size: 85%;
- margin-bottom: map-get($spacer, 1);
- color: $danger-color;
- }
-
- .form-group-help {
- font-size: 85%;
- margin-bottom: map-get($spacer, 1);
- color: $secondary-color;
-
- svg {
- vertical-align: middle !important;
- }
- }
-
- &.has-error {
- input,
- textarea,
- .input-file-group,
- .input-media-group .input-media-display {
- border: 2px solid $danger-color;
- }
-
- .form-group-error {
- display: block;
- }
- }
-}
-
/* Page Errors */
.page-error {
display: flex;
diff --git a/resources/css/utils.scss b/resources/css/utils.scss
index 7fd4104..2788096 100644
--- a/resources/css/utils.scss
+++ b/resources/css/utils.scss
@@ -125,33 +125,33 @@
/* Margin */
@each $index, $size in $spacer {
.m-#{$index} {
- margin: #{$size};
+ margin: #{$size} !important;
}
.mt-#{$index} {
- margin-top: #{$size};
+ margin-top: #{$size} !important;
}
.mb-#{$index} {
- margin-bottom: #{$size};
+ margin-bottom: #{$size} !important;
}
.ml-#{$index} {
- margin-left: #{$size};
+ margin-left: #{$size} !important;
}
.mr-#{$index} {
- margin-right: #{$size};
+ margin-right: #{$size} !important;
}
.mx-#{$index} {
- margin-left: #{$size};
- margin-right: #{$size};
+ margin-left: #{$size} !important;
+ margin-right: #{$size} !important;
}
.my-#{$index} {
- margin-top: #{$size};
- margin-bottom: #{$size};
+ margin-top: #{$size} !important;
+ margin-bottom: #{$size} !important;
}
}
diff --git a/resources/js/axios.js b/resources/js/axios.js.old
similarity index 100%
rename from resources/js/axios.js
rename to resources/js/axios.js.old
diff --git a/resources/js/bootstrap.js b/resources/js/bootstrap.js
index 366c49d..05720dc 100644
--- a/resources/js/bootstrap.js
+++ b/resources/js/bootstrap.js
@@ -1,4 +1,4 @@
-import _ from 'lodash';
+import _ from "lodash";
window._ = _;
/**
@@ -7,10 +7,10 @@ window._ = _;
* CSRF token as a header based on the value of the "XSRF" token cookie.
*/
-import axios from 'axios';
-window.axios = axios;
+// import axios from 'axios';
+// window.axios = axios;
-window.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
+// window.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
/**
* Echo exposes an expressive API for subscribing to channels and listening
diff --git a/resources/js/components/SMButton.vue b/resources/js/components/SMButton.vue
index 0e3428e..5668325 100644
--- a/resources/js/components/SMButton.vue
+++ b/resources/js/components/SMButton.vue
@@ -11,7 +11,7 @@
]"
:type="buttonType">
{{ label }}
-