(false);
- useEffect(function setAutoShowQuizTimer() {
- if (autoShowQuizTime === null) return;
+ useEffect(
+ function setAutoShowQuizTimer() {
+ if (autoShowQuizTime === null) return;
- const timeout = setTimeout(() => {
- if (!preventQuizAutoShowRef.current) setIsQuizShown(true);
- }, autoShowQuizTime * 1000);
+ const timeout = setTimeout(() => {
+ if (!preventQuizAutoShowRef.current) setIsQuizShown(true);
+ }, autoShowQuizTime * 1000);
- return () => {
- clearTimeout(timeout);
- };
- }, [autoShowQuizTime]);
+ return () => {
+ clearTimeout(timeout);
+ };
+ },
+ [autoShowQuizTime]
+ );
- function openQuiz() {
- preventQuizAutoShowRef.current = true;
- setIsQuizShown(true);
- setIsFlashEnabled(false);
- }
+ function openQuiz() {
+ preventQuizAutoShowRef.current = true;
+ setIsQuizShown(true);
+ setIsFlashEnabled(false);
+ }
- if (hideOnMobile && isMobile) return null;
+ if (hideOnMobile && isMobile) return null;
- return createPortal(
-
- setIsQuizShown(false)}
- hideBackdrop
- disableScrollLock
- paperSx={[
- {
- m: 0,
- },
- (isMobile || fullScreen) ? {
- width: "100%",
- height: "100%",
- maxHeight: "100%",
- borderRadius: 0,
- } : {
- position: "absolute",
- bottom: PADDING,
- right: position === "right" ? PADDING : undefined,
- left: position === "left" ? PADDING : undefined,
- width: dialogDimensions?.width ?? WIDGET_DEFAULT_WIDTH,
- maxWidth: `calc(100% - ${PADDING * 2}px)`,
- height: dialogDimensions?.height ?? WIDGET_DEFAULT_HEIGHT,
- maxHeight: `calc(100% - ${PADDING * 2}px)`,
- },
- ]}
- />
-
-
-
- ,
- document.body
- );
+ return createPortal(
+
+ setIsQuizShown(false)}
+ hideBackdrop
+ disableScrollLock
+ paperSx={[
+ {
+ m: 0,
+ },
+ isMobile || fullScreen
+ ? {
+ width: "100%",
+ height: "100%",
+ maxHeight: "100%",
+ borderRadius: 0,
+ }
+ : {
+ position: "absolute",
+ bottom: PADDING,
+ right: position === "right" ? PADDING : undefined,
+ left: position === "left" ? PADDING : undefined,
+ width: dialogDimensions?.width ?? WIDGET_DEFAULT_WIDTH,
+ maxWidth: `calc(100% - ${PADDING * 2}px)`,
+ height: dialogDimensions?.height ?? WIDGET_DEFAULT_HEIGHT,
+ maxHeight: `calc(100% - ${PADDING * 2}px)`,
+ },
+ ]}
+ />
+
+
+
+ ,
+ document.body
+ );
}
diff --git a/src/widgets/side/SideWidget.tsx b/src/widgets/side/SideWidget.tsx
index c1c1863..9469c3d 100644
--- a/src/widgets/side/SideWidget.tsx
+++ b/src/widgets/side/SideWidget.tsx
@@ -2,26 +2,25 @@ import { SideWidgetParams } from "@/model/widget/side";
import { Root, createRoot } from "react-dom/client";
import QuizSideButton from "./QuizSideButton";
-
export class SideWidget {
- root: Root | undefined;
- element = document.createElement("div");
+ root: Root | undefined;
+ element = document.createElement("div");
- constructor(props: SideWidgetParams) {
- this.element.style.setProperty("display", "none");
- document.body.appendChild(this.element);
+ constructor(props: SideWidgetParams) {
+ this.element.style.setProperty("display", "none");
+ document.body.appendChild(this.element);
- this.root = createRoot(this.element);
+ this.root = createRoot(this.element);
- this.render(props);
- }
+ this.render(props);
+ }
- render(props: SideWidgetParams) {
- this.root?.render();
- }
+ render(props: SideWidgetParams) {
+ this.root?.render();
+ }
- destroy() {
- if (this.root) this.root.unmount();
- this.element.remove();
- }
+ destroy() {
+ if (this.root) this.root.unmount();
+ this.element.remove();
+ }
}
diff --git a/tsconfig.json b/tsconfig.json
index c506081..4f90474 100755
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -1,63 +1,36 @@
{
- "compilerOptions": {
- "target": "ES2021",
- "useDefineForClassFields": true,
- "lib": [
- "ES2021",
- "DOM",
- "DOM.Iterable"
- ],
- "module": "ESNext",
- "skipLibCheck": true,
- /* Bundler mode */
- "moduleResolution": "bundler",
- "allowImportingTsExtensions": true,
- "resolveJsonModule": true,
- "isolatedModules": true,
- "noEmit": true,
- "jsx": "react-jsx",
- /* Linting */
- "strict": true,
- "noFallthroughCasesInSwitch": true,
- "paths": {
- "@/*": [
- "./lib/*"
- ],
- "@ui_kit/*": [
- "./lib/ui_kit/*"
- ],
- "@icons/*": [
- "./lib/assets/icons/*"
- ],
- "@stores/*": [
- "./lib/stores/*"
- ],
- "@api/*": [
- "./lib/api/*"
- ],
- "@model/*": [
- "./lib/model/*"
- ],
- "@utils/*": [
- "./lib/utils/*"
- ],
- "@contexts/*": [
- "./lib/contexts/*"
- ]
- }
- },
- "include": [
- "lib",
- "src"
- ],
- "exclude": [
- "cypress.config.ts",
- "cypress",
- "node_modules",
- ],
- "references": [
- {
- "path": "./tsconfig.node.json"
- }
- ]
+ "compilerOptions": {
+ "target": "ES2021",
+ "useDefineForClassFields": true,
+ "lib": ["ES2021", "DOM", "DOM.Iterable"],
+ "module": "ESNext",
+ "skipLibCheck": true,
+ /* Bundler mode */
+ "moduleResolution": "bundler",
+ "allowImportingTsExtensions": true,
+ "resolveJsonModule": true,
+ "isolatedModules": true,
+ "noEmit": true,
+ "jsx": "react-jsx",
+ /* Linting */
+ "strict": true,
+ "noFallthroughCasesInSwitch": true,
+ "paths": {
+ "@/*": ["./lib/*"],
+ "@ui_kit/*": ["./lib/ui_kit/*"],
+ "@icons/*": ["./lib/assets/icons/*"],
+ "@stores/*": ["./lib/stores/*"],
+ "@api/*": ["./lib/api/*"],
+ "@model/*": ["./lib/model/*"],
+ "@utils/*": ["./lib/utils/*"],
+ "@contexts/*": ["./lib/contexts/*"]
+ }
+ },
+ "include": ["lib", "src"],
+ "exclude": ["cypress.config.ts", "cypress", "node_modules"],
+ "references": [
+ {
+ "path": "./tsconfig.node.json"
+ }
+ ]
}
diff --git a/vite.config.package.ts b/vite.config.package.ts
index eb39c78..b14783f 100644
--- a/vite.config.package.ts
+++ b/vite.config.package.ts
@@ -6,42 +6,42 @@ import { alias } from "./vite.config";
// https://vitejs.dev/config/
export default defineConfig({
- plugins: [react(), dts({ include: ["lib"] })],
- resolve: {
- alias,
+ plugins: [react(), dts({ include: ["lib"] })],
+ resolve: {
+ alias,
+ },
+ build: {
+ lib: {
+ entry: resolve(__dirname, "lib/index.ts"),
+ formats: ["es"],
+ fileName: "index",
},
- build: {
- lib: {
- entry: resolve(__dirname, "lib/index.ts"),
- formats: ["es"],
- fileName: "index"
- },
- outDir: "dist-package",
- copyPublicDir: false,
- minify: false,
- rollupOptions: {
- external: [
- "@emoji-mart/data",
- "@emoji-mart/react",
- "@emotion/react",
- "@emotion/styled",
- "@mui/icons-material",
- "@mui/material",
- "@mui/x-date-pickers",
- "axios",
- "emoji-mart",
- "immer",
- "moment",
- "nanoid",
- "notistack",
- "react-dom",
- "react-error-boundary",
- "react-router-dom",
- "react",
- "swr",
- "use-debounce",
- "zustand",
- ],
- },
+ outDir: "dist-package",
+ copyPublicDir: false,
+ minify: false,
+ rollupOptions: {
+ external: [
+ "@emoji-mart/data",
+ "@emoji-mart/react",
+ "@emotion/react",
+ "@emotion/styled",
+ "@mui/icons-material",
+ "@mui/material",
+ "@mui/x-date-pickers",
+ "axios",
+ "emoji-mart",
+ "immer",
+ "moment",
+ "nanoid",
+ "notistack",
+ "react-dom",
+ "react-error-boundary",
+ "react-router-dom",
+ "react",
+ "swr",
+ "use-debounce",
+ "zustand",
+ ],
},
+ },
});
diff --git a/vite.config.ts b/vite.config.ts
index 6446f31..ee76c62 100644
--- a/vite.config.ts
+++ b/vite.config.ts
@@ -3,23 +3,23 @@ import { resolve } from "path";
import { defineConfig } from "vite";
export const alias = {
- "@": resolve(__dirname, "./lib/"),
- "@ui_kit": resolve(__dirname, "./lib/ui_kit"),
- "@icons": resolve(__dirname, "./lib/assets/icons"),
- "@stores": resolve(__dirname, "./lib/stores"),
- "@api": resolve(__dirname, "./lib/api"),
- "@model": resolve(__dirname, "./lib/model"),
- "@utils": resolve(__dirname, "./lib/utils"),
- "@contexts": resolve(__dirname, "./lib/contexts"),
+ "@": resolve(__dirname, "./lib/"),
+ "@ui_kit": resolve(__dirname, "./lib/ui_kit"),
+ "@icons": resolve(__dirname, "./lib/assets/icons"),
+ "@stores": resolve(__dirname, "./lib/stores"),
+ "@api": resolve(__dirname, "./lib/api"),
+ "@model": resolve(__dirname, "./lib/model"),
+ "@utils": resolve(__dirname, "./lib/utils"),
+ "@contexts": resolve(__dirname, "./lib/contexts"),
};
// https://vitejs.dev/config/
export default defineConfig({
- plugins: [react()],
- resolve: {
- alias,
- },
- define: {
- "process.env": process.env,
- },
+ plugins: [react()],
+ resolve: {
+ alias,
+ },
+ define: {
+ "process.env": process.env,
+ },
});
diff --git a/vite.config.widget.ts b/vite.config.widget.ts
index cc089ae..a5dddc6 100644
--- a/vite.config.widget.ts
+++ b/vite.config.widget.ts
@@ -1,28 +1,28 @@
-import react from "@vitejs/plugin-react";
-import { defineConfig } from "vite";
-import { alias } from "./vite.config";
-
-// https://vitejs.dev/config/
-export default defineConfig({
- plugins: [react()],
- resolve: {
- alias,
- },
- build: {
- copyPublicDir: false,
- rollupOptions: {
- input: "src/widget.tsx",
- preserveEntrySignatures: "allow-extension",
- output: {
- manualChunks: undefined,
- entryFileNames: "[name].js",
- chunkFileNames: "[name].js",
- assetFileNames: "[name].[ext]",
- },
- },
- outDir: "widget",
- },
- define: {
- "process.env": process.env,
- },
-});
+import react from "@vitejs/plugin-react";
+import { defineConfig } from "vite";
+import { alias } from "./vite.config";
+
+// https://vitejs.dev/config/
+export default defineConfig({
+ plugins: [react()],
+ resolve: {
+ alias,
+ },
+ build: {
+ copyPublicDir: false,
+ rollupOptions: {
+ input: "src/widget.tsx",
+ preserveEntrySignatures: "allow-extension",
+ output: {
+ manualChunks: undefined,
+ entryFileNames: "[name].js",
+ chunkFileNames: "[name].js",
+ assetFileNames: "[name].[ext]",
+ },
+ },
+ outDir: "widget",
+ },
+ define: {
+ "process.env": process.env,
+ },
+});
diff --git a/widget-test.html b/widget-test.html
index f73731f..febad7c 100644
--- a/widget-test.html
+++ b/widget-test.html
@@ -1,81 +1,108 @@
-
-
+
Quiz
-
+
-
- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
- magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
- consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
- pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qu
- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
- magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
- consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
- pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qu
- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
- magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
- consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
- pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qu
+
+
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
+ magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
+ Excepteur sint occaecat cupidatat non proident, sunt in culpa qu
+
+
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
+ magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
+ Excepteur sint occaecat cupidatat non proident, sunt in culpa qu
+
+
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
+ magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
+ Excepteur sint occaecat cupidatat non proident, sunt in culpa qu
+
- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
- magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
- consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
- pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qu
- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
- magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
- consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
- pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qu
- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
- magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
- consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
- pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qu
- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
- magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
- consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
- pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qu
- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
- magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
- consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
- pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qu
- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
- magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
- consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
- pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qu
- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
- magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
- consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
- pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qu
- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
- magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
- consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
- pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qu
- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
- magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
- consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
- pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qu
- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
- magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
- consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
- pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qu
- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
- magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
- consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
- pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qu
+
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
+ magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
+ Excepteur sint occaecat cupidatat non proident, sunt in culpa qu
+
+
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
+ magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
+ Excepteur sint occaecat cupidatat non proident, sunt in culpa qu
+
+
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
+ magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
+ Excepteur sint occaecat cupidatat non proident, sunt in culpa qu
+
+
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
+ magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
+ Excepteur sint occaecat cupidatat non proident, sunt in culpa qu
+
+
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
+ magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
+ Excepteur sint occaecat cupidatat non proident, sunt in culpa qu
+
+
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
+ magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
+ Excepteur sint occaecat cupidatat non proident, sunt in culpa qu
+
+
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
+ magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
+ Excepteur sint occaecat cupidatat non proident, sunt in culpa qu
+
+
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
+ magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
+ Excepteur sint occaecat cupidatat non proident, sunt in culpa qu
+
+
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
+ magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
+ Excepteur sint occaecat cupidatat non proident, sunt in culpa qu
+
+
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
+ magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
+ Excepteur sint occaecat cupidatat non proident, sunt in culpa qu
+
+
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
+ magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
+ consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
+ Excepteur sint occaecat cupidatat non proident, sunt in culpa qu
+
-
-
+