diff --git a/.babelrc b/.babelrc
index 57ed39b..442fa2f 100644
--- a/.babelrc
+++ b/.babelrc
@@ -7,6 +7,7 @@
"domain": "gepafin"
}
],
- "@babel/plugin-syntax-jsx"
+ "@babel/plugin-syntax-jsx",
+ "@babel/plugin-proposal-private-property-in-object"
]
}
\ No newline at end of file
diff --git a/.env b/.env
index 0793630..26fd054 100644
--- a/.env
+++ b/.env
@@ -1,3 +1,3 @@
REACT_APP_TAB_TITLE=Gepafin
-REACT_APP_API_EXECUTION_ADDRESS=
+REACT_APP_API_EXECUTION_ADDRESS=https://api-dev-gepafin.memento.credit/v1
REACT_APP_LOGO_FILENAME=logo.svg
\ No newline at end of file
diff --git a/.idea/watcherTasks.xml b/.idea/watcherTasks.xml
new file mode 100644
index 0000000..fb0d65a
--- /dev/null
+++ b/.idea/watcherTasks.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/.linguirc b/.linguirc
deleted file mode 100644
index f5143a3..0000000
--- a/.linguirc
+++ /dev/null
@@ -1,16 +0,0 @@
-{
- "locales": [
- "en",
- "it"
- ],
- "sourceLocale": "it",
- "catalogs": [
- {
- "path": "src/locales/{locale}/messages",
- "include": [
- "src"
- ]
- }
- ],
- "format": "po"
-}
\ No newline at end of file
diff --git a/.npmrc b/.npmrc
deleted file mode 100644
index bc75b80..0000000
--- a/.npmrc
+++ /dev/null
@@ -1,2 +0,0 @@
-@sinossi:registry=https://git.sinossi.it/api/v4/projects/271/packages/npm/
-//git.sinossi.it/api/v4/projects/271/packages/npm/:_authToken=kdP6WxGtg71-MzJZDRe9
diff --git a/README.md b/README.md
index cea3fca..86475cf 100644
--- a/README.md
+++ b/README.md
@@ -1,2 +1,7 @@
# GEPAFIN-FE
Gepafin Front End
+
+## Commands
+`npm run start` - start development server
+`npm run build:dev` - make build based on 'dev' env variables
+`npm run build:prod` - make build based on 'prod' env variables
diff --git a/buildspec.dev.yml b/buildspec.dev.yml
new file mode 100644
index 0000000..c44d149
--- /dev/null
+++ b/buildspec.dev.yml
@@ -0,0 +1,13 @@
+version: 0.2
+
+phases:
+ install:
+ runtime-versions:
+ nodejs: 20
+ build:
+ commands:
+ - npm install && npm run build:dev
+artifacts:
+ files:
+ - '**/*'
+ base-directory: 'build'
diff --git a/buildspec.prod.yml b/buildspec.prod.yml
index 6e9e0a7..ce3c7b5 100644
--- a/buildspec.prod.yml
+++ b/buildspec.prod.yml
@@ -3,22 +3,10 @@ version: 0.2
phases:
install:
runtime-versions:
- nodejs: 18
- commands:
- - npm install -g yarn
- - echo yarn -v
- - yarn -v
- pre_build:
- commands:
- - echo "@sinossi:registry=https://git.sinossi.it/api/v4/projects/271/packages/npm/" > .npmrc
- - echo "//git.sinossi.it/api/v4/projects/271/packages/npm/:_authToken=kdP6WxGtg71-MzJZDRe9" >> .npmrc
- - yarn install
+ nodejs: 20
build:
commands:
- - yarn extract
- - yarn compile
- - mkdir -pv public/loaded-files
- - yarn build:prod
+ - npm install && npm run build:prod
artifacts:
files:
- '**/*'
diff --git a/buildspec.staging.yml b/buildspec.staging.yml
deleted file mode 100644
index 21b9a78..0000000
--- a/buildspec.staging.yml
+++ /dev/null
@@ -1,25 +0,0 @@
-version: 0.2
-
-phases:
- install:
- runtime-versions:
- nodejs: 18
- commands:
- - npm install -g yarn
- - echo yarn -v
- - yarn -v
- pre_build:
- commands:
- - echo "@sinossi:registry=https://git.sinossi.it/api/v4/projects/271/packages/npm/" > .npmrc
- - echo "//git.sinossi.it/api/v4/projects/271/packages/npm/:_authToken=kdP6WxGtg71-MzJZDRe9" >> .npmrc
- - yarn install
- build:
- commands:
- - yarn extract
- - yarn compile
- - mkdir -pv public/loaded-files
- - yarn build:staging
-artifacts:
- files:
- - '**/*'
- base-directory: 'build'
\ No newline at end of file
diff --git a/environments/dev/dev.env b/environments/dev/dev.env
index 0793630..26fd054 100644
--- a/environments/dev/dev.env
+++ b/environments/dev/dev.env
@@ -1,3 +1,3 @@
REACT_APP_TAB_TITLE=Gepafin
-REACT_APP_API_EXECUTION_ADDRESS=
+REACT_APP_API_EXECUTION_ADDRESS=https://api-dev-gepafin.memento.credit/v1
REACT_APP_LOGO_FILENAME=logo.svg
\ No newline at end of file
diff --git a/environments/prod/prod.env b/environments/prod/prod.env
index 0793630..8e6e6b7 100644
--- a/environments/prod/prod.env
+++ b/environments/prod/prod.env
@@ -1,3 +1,3 @@
REACT_APP_TAB_TITLE=Gepafin
-REACT_APP_API_EXECUTION_ADDRESS=
+REACT_APP_API_EXECUTION_ADDRESS=http://79.137.88.15/v1
REACT_APP_LOGO_FILENAME=logo.svg
\ No newline at end of file
diff --git a/environments/staging/staging.env b/environments/staging/staging.env
deleted file mode 100644
index 0793630..0000000
--- a/environments/staging/staging.env
+++ /dev/null
@@ -1,3 +0,0 @@
-REACT_APP_TAB_TITLE=Gepafin
-REACT_APP_API_EXECUTION_ADDRESS=
-REACT_APP_LOGO_FILENAME=logo.svg
\ No newline at end of file
diff --git a/package-lock.json b/package-lock.json
index eaf9a58..c60e774 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -8,32 +8,45 @@
"name": "bflows-gepafin",
"version": "1.0.0",
"dependencies": {
+ "@babel/plugin-proposal-private-property-in-object": "^7.21.11",
"@babel/preset-react": "^7.24.7",
+ "@date-fns/tz": "^1.0.2",
"@emotion/react": "11.13.0",
"@emotion/styled": "11.13.0",
"@wordpress/i18n": "^5.5.0",
"@wordpress/react-i18n": "^4.5.0",
+ "@xyflow/react": "^12.2.0",
+ "codice-fiscale-js": "^2.3.22",
+ "deep-object-diff": "^1.1.9",
"dompurify": "3.1.6",
+ "fast-deep-equal": "^3.1.3",
"html-react-parser": "5.1.12",
"jwt-decode": "4.0.0",
"klona": "2.0.6",
"luxon": "3.5.0",
+ "primeicons": "^7.0.0",
+ "primereact": "^10.8.2",
+ "quill": "^2.0.2",
"ramda": "0.30.1",
"react": "18.3.1",
+ "react-dnd": "^16.0.1",
+ "react-dnd-html5-backend": "^16.0.1",
"react-dom": "18.3.1",
"react-hook-form": "7.52.2",
"react-router-dom": "6.26.0",
"react-scripts": "^5.0.1",
+ "validate.js": "^0.13.1",
"zustand": "4.5.4",
"zustand-x": "3.0.4"
},
"devDependencies": {
"@babel/cli": "7.24.8",
"@babel/core": "7.25.2",
- "@babel/plugin-syntax-jsx": "^7.24.7",
- "@wordpress/babel-plugin-makepot": "^6.5.0",
+ "@babel/plugin-syntax-jsx": "7.24.7",
+ "@wordpress/babel-plugin-makepot": "6.5.0",
"babel-plugin-macros": "3.1.0",
- "sass": "1.77.8"
+ "sass": "1.77.8",
+ "sass-loader": "16.0.0"
}
},
"node_modules/@alloc/quick-lru": {
@@ -630,9 +643,16 @@
}
},
"node_modules/@babel/plugin-proposal-private-property-in-object": {
- "version": "7.21.0-placeholder-for-preset-env.2",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz",
- "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==",
+ "version": "7.21.11",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.11.tgz",
+ "integrity": "sha512-0QZ8qP/3RLDVBwBFoWAwCtgcDZJVwA5LUJRZU8x2YFfKNuFq161wK3cuGrALu5yiPu+vzwTAg/sMWVNeWeNyaw==",
+ "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-property-in-object instead.",
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.18.6",
+ "@babel/helper-create-class-features-plugin": "^7.21.0",
+ "@babel/helper-plugin-utils": "^7.20.2",
+ "@babel/plugin-syntax-private-property-in-object": "^7.14.5"
+ },
"engines": {
"node": ">=6.9.0"
},
@@ -1883,6 +1903,17 @@
"@babel/core": "^7.0.0-0"
}
},
+ "node_modules/@babel/preset-env/node_modules/@babel/plugin-proposal-private-property-in-object": {
+ "version": "7.21.0-placeholder-for-preset-env.2",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz",
+ "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==",
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
"node_modules/@babel/preset-modules": {
"version": "0.1.6-no-external-plugins",
"resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz",
@@ -2267,6 +2298,11 @@
"postcss-selector-parser": "^6.0.10"
}
},
+ "node_modules/@date-fns/tz": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/@date-fns/tz/-/tz-1.0.2.tgz",
+ "integrity": "sha512-iKxj0kXMy7Qe6vjK+flz33cpy2j0dnTKT5i54p3fFlB411J47aSs6HBg7LOO5X9LjDi2iNlctD9rFn738ySOGQ=="
+ },
"node_modules/@emotion/babel-plugin": {
"version": "11.12.0",
"resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.12.0.tgz",
@@ -3462,6 +3498,21 @@
"node": ">= 8"
}
},
+ "node_modules/@react-dnd/asap": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/@react-dnd/asap/-/asap-5.0.2.tgz",
+ "integrity": "sha512-WLyfoHvxhs0V9U+GTsGilGgf2QsPl6ZZ44fnv0/b8T3nQyvzxidxsg/ZltbWssbsRDlYW8UKSQMTGotuTotZ6A=="
+ },
+ "node_modules/@react-dnd/invariant": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/@react-dnd/invariant/-/invariant-4.0.2.tgz",
+ "integrity": "sha512-xKCTqAK/FFauOM9Ta2pswIyT3D8AQlfrYdOi/toTPEhqCuAs1v5tcJ3Y08Izh1cJ5Jchwy9SeAXmMg6zrKs2iw=="
+ },
+ "node_modules/@react-dnd/shallowequal": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/@react-dnd/shallowequal/-/shallowequal-4.0.2.tgz",
+ "integrity": "sha512-/RVXdLvJxLg4QKvMoM5WlwNR9ViO9z8B/qPcc+C0Sa/teJY7QG7kJ441DwzOjMYEY7GmU4dj5EcGHIkKZiQZCA=="
+ },
"node_modules/@remix-run/router": {
"version": "1.19.0",
"resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.19.0.tgz",
@@ -3902,6 +3953,49 @@
"@types/node": "*"
}
},
+ "node_modules/@types/d3-color": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.3.tgz",
+ "integrity": "sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A=="
+ },
+ "node_modules/@types/d3-drag": {
+ "version": "3.0.7",
+ "resolved": "https://registry.npmjs.org/@types/d3-drag/-/d3-drag-3.0.7.tgz",
+ "integrity": "sha512-HE3jVKlzU9AaMazNufooRJ5ZpWmLIoc90A37WU2JMmeq28w1FQqCZswHZ3xR+SuxYftzHq6WU6KJHvqxKzTxxQ==",
+ "dependencies": {
+ "@types/d3-selection": "*"
+ }
+ },
+ "node_modules/@types/d3-interpolate": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz",
+ "integrity": "sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==",
+ "dependencies": {
+ "@types/d3-color": "*"
+ }
+ },
+ "node_modules/@types/d3-selection": {
+ "version": "3.0.10",
+ "resolved": "https://registry.npmjs.org/@types/d3-selection/-/d3-selection-3.0.10.tgz",
+ "integrity": "sha512-cuHoUgS/V3hLdjJOLTT691+G2QoqAjCVLmr4kJXR4ha56w1Zdu8UUQ5TxLRqudgNjwXeQxKMq4j+lyf9sWuslg=="
+ },
+ "node_modules/@types/d3-transition": {
+ "version": "3.0.8",
+ "resolved": "https://registry.npmjs.org/@types/d3-transition/-/d3-transition-3.0.8.tgz",
+ "integrity": "sha512-ew63aJfQ/ms7QQ4X7pk5NxQ9fZH/z+i24ZfJ6tJSfqxJMrYLiK01EAs2/Rtw/JreGUsS3pLPNV644qXFGnoZNQ==",
+ "dependencies": {
+ "@types/d3-selection": "*"
+ }
+ },
+ "node_modules/@types/d3-zoom": {
+ "version": "3.0.8",
+ "resolved": "https://registry.npmjs.org/@types/d3-zoom/-/d3-zoom-3.0.8.tgz",
+ "integrity": "sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw==",
+ "dependencies": {
+ "@types/d3-interpolate": "*",
+ "@types/d3-selection": "*"
+ }
+ },
"node_modules/@types/eslint": {
"version": "8.56.11",
"resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.11.tgz",
@@ -4072,6 +4166,14 @@
"@types/react": "*"
}
},
+ "node_modules/@types/react-transition-group": {
+ "version": "4.4.10",
+ "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.10.tgz",
+ "integrity": "sha512-hT/+s0VQs2ojCX823m60m5f0sL5idt9SO6Tj6Dg+rdphGPIeJbJ6CxvBYkgkGKrYeDjvIpKTR38UzmtHJOGW3Q==",
+ "dependencies": {
+ "@types/react": "*"
+ }
+ },
"node_modules/@types/resolve": {
"version": "1.17.1",
"resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz",
@@ -4654,6 +4756,34 @@
"resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz",
"integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ=="
},
+ "node_modules/@xyflow/react": {
+ "version": "12.2.0",
+ "resolved": "https://registry.npmjs.org/@xyflow/react/-/react-12.2.0.tgz",
+ "integrity": "sha512-aQ1636zCfTey+k2d4xxkQrfwMWe0uazIJoKUXyCoVTX+KH5/ep9wxr7yGlSW4s1XIGzmP3f+qUwTk0GvxvP0Rg==",
+ "dependencies": {
+ "@xyflow/system": "0.0.40",
+ "classcat": "^5.0.3",
+ "zustand": "^4.4.0"
+ },
+ "peerDependencies": {
+ "react": ">=17",
+ "react-dom": ">=17"
+ }
+ },
+ "node_modules/@xyflow/system": {
+ "version": "0.0.40",
+ "resolved": "https://registry.npmjs.org/@xyflow/system/-/system-0.0.40.tgz",
+ "integrity": "sha512-pS4m6J+Q+kUoUV73rKMfGPm+FOA9OajHyADrTlTE6VaG4/vMV2gHS/ZMVZb295jkY/ZpZkpQZKp1sRm0m31Jpw==",
+ "dependencies": {
+ "@types/d3-drag": "^3.0.7",
+ "@types/d3-selection": "^3.0.10",
+ "@types/d3-transition": "^3.0.8",
+ "@types/d3-zoom": "^3.0.8",
+ "d3-drag": "^3.0.0",
+ "d3-selection": "^3.0.0",
+ "d3-zoom": "^3.0.0"
+ }
+ },
"node_modules/abab": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz",
@@ -5884,6 +6014,11 @@
"resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.3.1.tgz",
"integrity": "sha512-a3KdPAANPbNE4ZUv9h6LckSl9zLsYOP4MBmhIPkRaeyybt+r4UghLvq+xw/YwUcC1gqylCkL4rdVs3Lwupjm4Q=="
},
+ "node_modules/classcat": {
+ "version": "5.0.5",
+ "resolved": "https://registry.npmjs.org/classcat/-/classcat-5.0.5.tgz",
+ "integrity": "sha512-JhZUT7JFcQy/EzW605k/ktHtncoo9vnyW/2GspNYwFlN1C/WmjuV/xtS04e9SOkL2sTdw0VAZ2UGCcQ9lR6p6w=="
+ },
"node_modules/clean-css": {
"version": "5.3.3",
"resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.3.tgz",
@@ -5935,6 +6070,11 @@
"node": ">= 4.0"
}
},
+ "node_modules/codice-fiscale-js": {
+ "version": "2.3.22",
+ "resolved": "https://registry.npmjs.org/codice-fiscale-js/-/codice-fiscale-js-2.3.22.tgz",
+ "integrity": "sha512-at+XQ3kTgIq0qMoBmP4UtrSlYvHp5X5KGEB0ZKykydMnYC28zBAbdbFDu7CsatlfoOa1vH4qBpNkOCXp/YqMmA=="
+ },
"node_modules/collect-v8-coverage": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz",
@@ -6589,6 +6729,102 @@
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz",
"integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw=="
},
+ "node_modules/d3-color": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz",
+ "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-dispatch": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz",
+ "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-drag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-3.0.0.tgz",
+ "integrity": "sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==",
+ "dependencies": {
+ "d3-dispatch": "1 - 3",
+ "d3-selection": "3"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-ease": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz",
+ "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-interpolate": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz",
+ "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==",
+ "dependencies": {
+ "d3-color": "1 - 3"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-selection": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz",
+ "integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-timer": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz",
+ "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-transition": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-3.0.1.tgz",
+ "integrity": "sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==",
+ "dependencies": {
+ "d3-color": "1 - 3",
+ "d3-dispatch": "1 - 3",
+ "d3-ease": "1 - 3",
+ "d3-interpolate": "1 - 3",
+ "d3-timer": "1 - 3"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "peerDependencies": {
+ "d3-selection": "2 - 3"
+ }
+ },
+ "node_modules/d3-zoom": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-3.0.0.tgz",
+ "integrity": "sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==",
+ "dependencies": {
+ "d3-dispatch": "1 - 3",
+ "d3-drag": "2 - 3",
+ "d3-interpolate": "1 - 3",
+ "d3-selection": "2 - 3",
+ "d3-transition": "2 - 3"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
"node_modules/damerau-levenshtein": {
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz",
@@ -6717,6 +6953,11 @@
"resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
"integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ=="
},
+ "node_modules/deep-object-diff": {
+ "version": "1.1.9",
+ "resolved": "https://registry.npmjs.org/deep-object-diff/-/deep-object-diff-1.1.9.tgz",
+ "integrity": "sha512-Rn+RuwkmkDwCi2/oXOFS9Gsr5lJZu/yTGpK7wAaAIE75CC+LCGEZHpY6VQJa/RoJcrmaA/docWJZvYohlNkWPA=="
+ },
"node_modules/deepmerge": {
"version": "4.3.1",
"resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz",
@@ -6872,6 +7113,16 @@
"resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz",
"integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA=="
},
+ "node_modules/dnd-core": {
+ "version": "16.0.1",
+ "resolved": "https://registry.npmjs.org/dnd-core/-/dnd-core-16.0.1.tgz",
+ "integrity": "sha512-HK294sl7tbw6F6IeuK16YSBUoorvHpY8RHO+9yFfaJyCDVb6n7PRcezrOEOa2SBCqiYpemh5Jx20ZcjKdFAVng==",
+ "dependencies": {
+ "@react-dnd/asap": "^5.0.1",
+ "@react-dnd/invariant": "^4.0.1",
+ "redux": "^4.2.0"
+ }
+ },
"node_modules/dns-packet": {
"version": "5.6.1",
"resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz",
@@ -6902,6 +7153,15 @@
"utila": "~0.4"
}
},
+ "node_modules/dom-helpers": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz",
+ "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==",
+ "dependencies": {
+ "@babel/runtime": "^7.8.7",
+ "csstype": "^3.0.2"
+ }
+ },
"node_modules/dom-serializer": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz",
@@ -8138,6 +8398,11 @@
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
"integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
},
+ "node_modules/fast-diff": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz",
+ "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw=="
+ },
"node_modules/fast-glob": {
"version": "3.3.2",
"resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz",
@@ -12426,11 +12691,26 @@
"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.clonedeep": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz",
+ "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ=="
+ },
"node_modules/lodash.debounce": {
"version": "4.0.8",
"resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
"integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow=="
},
+ "node_modules/lodash.isequal": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz",
+ "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ=="
+ },
"node_modules/lodash.mapvalues": {
"version": "4.6.0",
"resolved": "https://registry.npmjs.org/lodash.mapvalues/-/lodash.mapvalues-4.6.0.tgz",
@@ -13127,6 +13407,11 @@
"tslib": "^2.0.3"
}
},
+ "node_modules/parchment": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/parchment/-/parchment-3.0.0.tgz",
+ "integrity": "sha512-HUrJFQ/StvgmXRcQ1ftY6VEZUq3jA2t9ncFN4F84J/vN0/FPpQF+8FKXb3l6fLces6q0uOHj6NJn+2xvZnxO6A=="
+ },
"node_modules/parent-module": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
@@ -14631,6 +14916,33 @@
"resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz",
"integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w=="
},
+ "node_modules/primeicons": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/primeicons/-/primeicons-7.0.0.tgz",
+ "integrity": "sha512-jK3Et9UzwzTsd6tzl2RmwrVY/b8raJ3QZLzoDACj+oTJ0oX7L9Hy+XnVwgo4QVKlKpnP/Ur13SXV/pVh4LzaDw=="
+ },
+ "node_modules/primereact": {
+ "version": "10.8.2",
+ "resolved": "https://registry.npmjs.org/primereact/-/primereact-10.8.2.tgz",
+ "integrity": "sha512-bf7vktogGh0PmKT9WLDcJQoQNqqFqcAlP2crUqccnlTu63FNnQV82qEYyaFvE12Qd5qhm3EYmpsHjpf6/+olTQ==",
+ "dependencies": {
+ "@types/react-transition-group": "^4.4.1",
+ "react-transition-group": "^4.4.1"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ },
+ "peerDependencies": {
+ "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0",
+ "react": "^17.0.0 || ^18.0.0 || ^19.0.0",
+ "react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
"node_modules/process-nextick-args": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
@@ -14752,6 +15064,38 @@
}
]
},
+ "node_modules/quill": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/quill/-/quill-2.0.2.tgz",
+ "integrity": "sha512-QfazNrhMakEdRG57IoYFwffUIr04LWJxbS/ZkidRFXYCQt63c1gK6Z7IHUXMx/Vh25WgPBU42oBaNzQ0K1R/xw==",
+ "dependencies": {
+ "eventemitter3": "^5.0.1",
+ "lodash-es": "^4.17.21",
+ "parchment": "^3.0.0",
+ "quill-delta": "^5.1.0"
+ },
+ "engines": {
+ "npm": ">=8.2.3"
+ }
+ },
+ "node_modules/quill-delta": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/quill-delta/-/quill-delta-5.1.0.tgz",
+ "integrity": "sha512-X74oCeRI4/p0ucjb5Ma8adTXd9Scumz367kkMK5V/IatcX6A0vlgLgKbzXWy5nZmCGeNJm2oQX0d2Eqj+ZIlCA==",
+ "dependencies": {
+ "fast-diff": "^1.3.0",
+ "lodash.clonedeep": "^4.5.0",
+ "lodash.isequal": "^4.5.0"
+ },
+ "engines": {
+ "node": ">= 12.0.0"
+ }
+ },
+ "node_modules/quill/node_modules/eventemitter3": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz",
+ "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA=="
+ },
"node_modules/raf": {
"version": "3.4.1",
"resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz",
@@ -15022,6 +15366,43 @@
"node": ">=8"
}
},
+ "node_modules/react-dnd": {
+ "version": "16.0.1",
+ "resolved": "https://registry.npmjs.org/react-dnd/-/react-dnd-16.0.1.tgz",
+ "integrity": "sha512-QeoM/i73HHu2XF9aKksIUuamHPDvRglEwdHL4jsp784BgUuWcg6mzfxT0QDdQz8Wj0qyRKx2eMg8iZtWvU4E2Q==",
+ "dependencies": {
+ "@react-dnd/invariant": "^4.0.1",
+ "@react-dnd/shallowequal": "^4.0.1",
+ "dnd-core": "^16.0.1",
+ "fast-deep-equal": "^3.1.3",
+ "hoist-non-react-statics": "^3.3.2"
+ },
+ "peerDependencies": {
+ "@types/hoist-non-react-statics": ">= 3.3.1",
+ "@types/node": ">= 12",
+ "@types/react": ">= 16",
+ "react": ">= 16.14"
+ },
+ "peerDependenciesMeta": {
+ "@types/hoist-non-react-statics": {
+ "optional": true
+ },
+ "@types/node": {
+ "optional": true
+ },
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/react-dnd-html5-backend": {
+ "version": "16.0.1",
+ "resolved": "https://registry.npmjs.org/react-dnd-html5-backend/-/react-dnd-html5-backend-16.0.1.tgz",
+ "integrity": "sha512-Wu3dw5aDJmOGw8WjH1I1/yTH+vlXEL4vmjk5p+MHxP8HuHJS1lAGeIdG/hze1AvNeXWo/JgULV87LyQOr+r5jw==",
+ "dependencies": {
+ "dnd-core": "^16.0.1"
+ }
+ },
"node_modules/react-dom": {
"version": "18.3.1",
"resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz",
@@ -15174,6 +15555,43 @@
}
}
},
+ "node_modules/react-scripts/node_modules/sass-loader": {
+ "version": "12.6.0",
+ "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-12.6.0.tgz",
+ "integrity": "sha512-oLTaH0YCtX4cfnJZxKSLAyglED0naiYfNG1iXfU5w1LNZ+ukoA5DtyDIN5zmKVZwYNJP4KRc5Y3hkWga+7tYfA==",
+ "dependencies": {
+ "klona": "^2.0.4",
+ "neo-async": "^2.6.2"
+ },
+ "engines": {
+ "node": ">= 12.13.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ },
+ "peerDependencies": {
+ "fibers": ">= 3.1.0",
+ "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0",
+ "sass": "^1.3.0",
+ "sass-embedded": "*",
+ "webpack": "^5.0.0"
+ },
+ "peerDependenciesMeta": {
+ "fibers": {
+ "optional": true
+ },
+ "node-sass": {
+ "optional": true
+ },
+ "sass": {
+ "optional": true
+ },
+ "sass-embedded": {
+ "optional": true
+ }
+ }
+ },
"node_modules/react-scripts/node_modules/semver": {
"version": "7.6.3",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
@@ -15208,6 +15626,21 @@
}
}
},
+ "node_modules/react-transition-group": {
+ "version": "4.4.5",
+ "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz",
+ "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==",
+ "dependencies": {
+ "@babel/runtime": "^7.5.5",
+ "dom-helpers": "^5.0.1",
+ "loose-envify": "^1.4.0",
+ "prop-types": "^15.6.2"
+ },
+ "peerDependencies": {
+ "react": ">=16.6.0",
+ "react-dom": ">=16.6.0"
+ }
+ },
"node_modules/read-cache": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
@@ -15259,6 +15692,14 @@
"node": ">=6.0.0"
}
},
+ "node_modules/redux": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/redux/-/redux-4.2.1.tgz",
+ "integrity": "sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w==",
+ "dependencies": {
+ "@babel/runtime": "^7.9.2"
+ }
+ },
"node_modules/reflect.getprototypeof": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.6.tgz",
@@ -15787,29 +16228,29 @@
}
},
"node_modules/sass-loader": {
- "version": "12.6.0",
- "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-12.6.0.tgz",
- "integrity": "sha512-oLTaH0YCtX4cfnJZxKSLAyglED0naiYfNG1iXfU5w1LNZ+ukoA5DtyDIN5zmKVZwYNJP4KRc5Y3hkWga+7tYfA==",
+ "version": "16.0.0",
+ "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-16.0.0.tgz",
+ "integrity": "sha512-n13Z+3rU9A177dk4888czcVFiC8CL9dii4qpXWUg3YIIgZEvi9TCFKjOQcbK0kJM7DJu9VucrZFddvNfYCPwtw==",
+ "dev": true,
"dependencies": {
- "klona": "^2.0.4",
"neo-async": "^2.6.2"
},
"engines": {
- "node": ">= 12.13.0"
+ "node": ">= 18.12.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/webpack"
},
"peerDependencies": {
- "fibers": ">= 3.1.0",
- "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0",
+ "@rspack/core": "0.x || 1.x",
+ "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0",
"sass": "^1.3.0",
"sass-embedded": "*",
"webpack": "^5.0.0"
},
"peerDependenciesMeta": {
- "fibers": {
+ "@rspack/core": {
"optional": true
},
"node-sass": {
@@ -15820,6 +16261,9 @@
},
"sass-embedded": {
"optional": true
+ },
+ "webpack": {
+ "optional": true
}
}
},
@@ -17672,6 +18116,11 @@
"node": ">= 8"
}
},
+ "node_modules/validate.js": {
+ "version": "0.13.1",
+ "resolved": "https://registry.npmjs.org/validate.js/-/validate.js-0.13.1.tgz",
+ "integrity": "sha512-PnFM3xiZ+kYmLyTiMgTYmU7ZHkjBZz2/+F0DaALc/uUtVzdCt1wAosvYJ5hFQi/hz8O4zb52FQhHZRC+uVkJ+g=="
+ },
"node_modules/vary": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
diff --git a/package.json b/package.json
index 9cc487c..9c6f448 100644
--- a/package.json
+++ b/package.json
@@ -3,32 +3,45 @@
"version": "1.0.0",
"private": true,
"dependencies": {
+ "@babel/plugin-proposal-private-property-in-object": "^7.21.11",
"@babel/preset-react": "^7.24.7",
+ "@date-fns/tz": "^1.0.2",
"@emotion/react": "11.13.0",
"@emotion/styled": "11.13.0",
"@wordpress/i18n": "^5.5.0",
"@wordpress/react-i18n": "^4.5.0",
+ "@xyflow/react": "^12.2.0",
+ "codice-fiscale-js": "^2.3.22",
+ "deep-object-diff": "^1.1.9",
"dompurify": "3.1.6",
+ "fast-deep-equal": "^3.1.3",
"html-react-parser": "5.1.12",
"jwt-decode": "4.0.0",
"klona": "2.0.6",
"luxon": "3.5.0",
+ "primeicons": "^7.0.0",
+ "primereact": "^10.8.2",
+ "quill": "^2.0.2",
"ramda": "0.30.1",
"react": "18.3.1",
+ "react-dnd": "^16.0.1",
+ "react-dnd-html5-backend": "^16.0.1",
"react-dom": "18.3.1",
"react-hook-form": "7.52.2",
"react-router-dom": "6.26.0",
"react-scripts": "^5.0.1",
+ "validate.js": "^0.13.1",
"zustand": "4.5.4",
"zustand-x": "3.0.4"
},
"devDependencies": {
"@babel/cli": "7.24.8",
"@babel/core": "7.25.2",
- "@babel/plugin-syntax-jsx": "^7.24.7",
- "@wordpress/babel-plugin-makepot": "^6.5.0",
+ "@babel/plugin-syntax-jsx": "7.24.7",
+ "@wordpress/babel-plugin-makepot": "6.5.0",
"babel-plugin-macros": "3.1.0",
- "sass": "1.77.8"
+ "sass": "1.77.8",
+ "sass-loader": "16.0.0"
},
"scripts": {
"start": "GENERATE_SOURCEMAP=false react-scripts start",
@@ -36,12 +49,9 @@
"start:prod": "cp environments/prod/* public/loaded-files && rm public/loaded-files/prod.env && cp environments/prod/prod.env .env && react-scripts start",
"build": "react-scripts build",
"build:dev": "cp environments/dev/* public/loaded-files && rm public/loaded-files/dev.env && cp environments/dev/dev.env .env && react-scripts build",
- "build:staging": "cp environments/staging/* public/loaded-files && rm public/loaded-files/staging.env && cp environments/staging/staging.env .env && react-scripts build",
"build:prod": "cp environments/prod/* public/loaded-files && rm public/loaded-files/prod.env && cp environments/prod/prod.env .env && react-scripts build",
"test": "react-scripts test",
- "eject": "react-scripts eject",
- "extract": "lingui extract",
- "compile": "lingui compile"
+ "eject": "react-scripts eject"
},
"eslintConfig": {
"extends": [
diff --git a/languages/en_US.json b/public/languages/en_US.json
similarity index 86%
rename from languages/en_US.json
rename to public/languages/en_US.json
index b12940c..e96a081 100644
--- a/languages/en_US.json
+++ b/public/languages/en_US.json
@@ -6,7 +6,7 @@
"domain": "gepafin"
},
"Login page": [
- "Login111 page"
+ "Auth page"
]
}
}
diff --git a/languages/gepafin.pot b/public/languages/gepafin.pot
similarity index 100%
rename from languages/gepafin.pot
rename to public/languages/gepafin.pot
diff --git a/src/App.js b/src/App.js
index 3a2d5ee..876cce0 100644
--- a/src/App.js
+++ b/src/App.js
@@ -1,27 +1,48 @@
-import { useState, useEffect } from 'react';
+import { useEffect } from 'react';
import { BrowserRouter } from 'react-router-dom';
import Routes from './routes';
import { createI18n, setLocaleData } from '@wordpress/i18n';
import { I18nProvider } from '@wordpress/react-i18n';
+import './assets/scss/theme.scss';
+import AuthenticationService from './service/authentication-service';
-const i18n = createI18n();
+// store
+import { useStore, storeSet } from './store';
+
+const i18n = createI18n({}, 'gepafin');
function App() {
- const [messages, setMessages] = useState({});
+ const role = useStore().main.getRole();
+
+ const callback = (data) => {
+ if (data.status === 'SUCCESS') {
+ storeSet.main.userData(data.data);
+ } else {
+ storeSet.main.doLogout();
+ }
+ storeSet.main.unsetAsyncRequest();
+ }
+
+ const errCallback = (data) => {
+ storeSet.main.doLogout();
+ storeSet.main.unsetAsyncRequest();
+ }
useEffect(() => {
- /*import('../languages/en_US.json').then((translations) => {
- setLocaleData(translations, 'gepafin');
- });*/
+ storeSet.main.setAsyncRequest();
+ AuthenticationService.me(callback, errCallback);
+
fetch('/languages/en_US.json')
.then((res) => res.json())
- .then(res => console.log(res))
+ .then(res => {
+ setLocaleData(res.locale_data['gepafin'], 'gepafin')
+ })
}, []);
return (
-
+
);
diff --git a/src/assets/fonts/montserrat-v26-latin-600.woff2 b/src/assets/fonts/montserrat-v26-latin-600.woff2
new file mode 100644
index 0000000..a0bfc7b
Binary files /dev/null and b/src/assets/fonts/montserrat-v26-latin-600.woff2 differ
diff --git a/src/assets/fonts/montserrat-v26-latin-700.woff2 b/src/assets/fonts/montserrat-v26-latin-700.woff2
new file mode 100644
index 0000000..cf273a0
Binary files /dev/null and b/src/assets/fonts/montserrat-v26-latin-700.woff2 differ
diff --git a/src/assets/fonts/montserrat-v26-latin-800.woff2 b/src/assets/fonts/montserrat-v26-latin-800.woff2
new file mode 100644
index 0000000..d69d4a1
Binary files /dev/null and b/src/assets/fonts/montserrat-v26-latin-800.woff2 differ
diff --git a/src/assets/fonts/montserrat-v26-latin-italic.woff2 b/src/assets/fonts/montserrat-v26-latin-italic.woff2
new file mode 100644
index 0000000..17a8120
Binary files /dev/null and b/src/assets/fonts/montserrat-v26-latin-italic.woff2 differ
diff --git a/src/assets/fonts/montserrat-v26-latin-regular.woff2 b/src/assets/fonts/montserrat-v26-latin-regular.woff2
new file mode 100644
index 0000000..f4b26df
Binary files /dev/null and b/src/assets/fonts/montserrat-v26-latin-regular.woff2 differ
diff --git a/src/assets/scss/components/appForm.scss b/src/assets/scss/components/appForm.scss
new file mode 100644
index 0000000..142c6df
--- /dev/null
+++ b/src/assets/scss/components/appForm.scss
@@ -0,0 +1,149 @@
+.appForm {
+ display: flex;
+ flex-direction: column;
+ gap: 24px;
+}
+.appForm__field {
+ display: flex;
+ flex-direction: column;
+ gap: 14px;
+ padding: 5px 0;
+ width: 100%;
+
+ label {
+ font-size: 14px;
+ font-style: normal;
+ font-weight: 700;
+ line-height: normal;
+
+ span {
+ font-size: 14px;
+ font-style: normal;
+ font-weight: 400;
+ line-height: normal;
+ margin-left: 10px;
+ }
+ }
+
+ small {
+ font-size: 12px;
+ font-style: normal;
+ font-weight: 400;
+ line-height: 21px;
+ }
+
+ &.datepicker, &.formfieldrepeater, &.datepickerrange, &.fileupload {
+ .p-button:not(.p-button-danger) {
+ background: var(--button-secondary-background);
+ border: 1px solid var(--button-secondary-borderColor);
+ }
+ .p-button:not(:disabled, .p-button-danger):hover {
+ background: var(--button-secondary-borderColor);
+ }
+ }
+}
+
+.appForm__fieldItem {
+ display: flex;
+ gap: 0.5rem;
+}
+
+.appForm__fileUploadItem {
+ display: grid;
+ grid-template-columns: 2fr 0.5fr 0.5fr;
+
+ > div {
+ display: flex;
+ align-items: center;
+
+ &:nth-of-type(2) {
+ justify-content: center;
+ }
+
+ &:nth-of-type(3) {
+ justify-content: flex-end;
+ }
+ }
+}
+
+.appForm__fileUploadItemName {
+ color: var(--global-textColor);
+ font-style: italic;
+}
+
+.appForm__row {
+ display: flex;
+ gap: 7px;
+ align-items: center;
+}
+
+.appForm__col {
+ display: flex;
+ flex-direction: column;
+ gap: 7px;
+
+ label {
+ font-weight: 400;
+ }
+}
+
+.appForm__cols {
+ display: grid;
+ gap: 0.5rem;
+ grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
+ width: 100%;
+
+ > div {
+ display: flex;
+ flex-direction: column;
+ gap: 14px;
+ }
+
+ > div:not(.appForm__field) {
+ label {
+ font-weight: 400;
+ }
+ }
+}
+
+.appForm__repeaterItem {
+ padding: 0.5rem 0.5rem 0.5rem 1rem;
+ border-left: 3px solid #dadada;
+
+
+ &:hover {
+ border-color: var(--button-secondary-background);
+ background: #FCF7E7;
+ }
+}
+
+.appForm__faqHeaderControls {
+ display: flex;
+ gap: 1rem;
+
+ button {
+ flex: 0 0 auto;
+ }
+
+ > div {
+ flex: 1 1 auto;
+ }
+}
+
+.appForm__faqTab {
+ display: flex;
+ justify-content: space-between;
+ gap: 1rem;
+}
+.appForm__faqTabItem {
+ display: flex;
+ gap: 0.5rem;
+ align-items: center;
+
+ .p-togglebutton[data-p-highlight="true"] {
+ .p-button:not(.p-button-danger) {
+ background: var(--menuitem-active-background);
+ border: 1px solid var(--menuitem-active-background);
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/assets/scss/components/appPage.scss b/src/assets/scss/components/appPage.scss
new file mode 100644
index 0000000..a7c67c7
--- /dev/null
+++ b/src/assets/scss/components/appPage.scss
@@ -0,0 +1,259 @@
+.appPage {
+ position: relative;
+ display: flex;
+ flex-direction: column;
+ flex-grow: 2;
+
+ h1 {
+ color: var(--primary-color);
+ font-size: 28px;
+ font-style: normal;
+ font-weight: 600;
+ line-height: normal;
+ }
+
+ .appPageLogin__wrapper {
+ h1 {
+ text-align: center;
+ }
+ }
+}
+
+.appPage__pageHeader {
+ display: flex;
+ flex-direction: column;
+ gap: 14px;
+ padding: 28px;
+ border-left: 4px solid var(--card-borderColor-color);
+
+ h1, h2, h3 {
+ margin: 0;
+ }
+
+ p, span {
+ color: var(--text-color-secondary);
+ font-size: 17.5px;
+ font-style: normal;
+ font-weight: 400;
+ line-height: 120%;
+ margin: 0;
+ }
+
+ span {
+ margin-left: 10px;
+ text-transform: uppercase;
+ }
+}
+
+.appPage__spacer {
+ width: 100%;
+ padding: 24px 0;
+}
+
+.appPageSection__hr {
+ position: relative;
+ width: 100%;
+ padding: 0 0 0 30px;
+
+ &:before {
+ position: absolute;
+ width: 100%;
+ height: 1px;
+ content: '';
+ top: 50%;
+ left: 0;
+ z-index: 1;
+ background-color: #E5E7EB;
+ }
+
+ span {
+ font-size: 14px;
+ font-style: normal;
+ font-weight: 700;
+ line-height: normal;
+ padding: 0 10px;
+ background-color: white;
+ z-index: 9;
+ position: relative;
+ }
+}
+
+.appPage__content {
+ display: flex;
+ flex-direction: column;
+ gap: 48px;
+}
+
+.appPageSection {
+ display: flex;
+ flex-direction: column;
+ align-items: flex-start;
+
+ h2 {
+ color: var(--global-textColor);
+ font-size: 21px;
+ font-style: normal;
+ font-weight: 600;
+ line-height: normal;
+ margin: 0 0 24px;
+ }
+
+ .row {
+ display: flex;
+ gap: 1rem;
+ align-items: center;
+ padding: 5px 0;
+ }
+}
+
+.appPageSection__withBorder {
+ display: flex;
+ flex-direction: column;
+ gap: 16px;
+ width: 100%;
+ padding: 17px;
+ border-radius: 6px;
+ border: 1px solid var(--card-borderColor-color);
+ container-name: section_with_border;
+ container-type: inline-size;
+
+ &.disabled {
+ filter: grayscale(1);
+ opacity: 0.8;
+ }
+
+ h2 {
+ color: var(--global-textColor);
+ font-size: 21px;
+ font-style: normal;
+ font-weight: 600;
+ line-height: normal;
+ margin: 0;
+ }
+
+ .row {
+ display: flex;
+ gap: 1rem;
+ align-items: center;
+ padding: 5px 0;
+
+ &.rowContent {
+ padding: 7px 0;
+ flex-direction: column;
+ align-items: flex-start;
+ gap: 0.3rem;
+ }
+
+ p {
+ margin: 0;
+ flex: 1 1 100%;
+ }
+
+ ul {
+ padding-left: 1rem;
+ }
+
+ button {
+ flex: 0 0 auto;
+ }
+ }
+}
+
+@container section_with_border (max-width: 600px) {
+ .appPageSection__withBorder {
+ .row {
+ flex-direction: column;
+ align-items: flex-start;
+ }
+ }
+}
+
+.appPageSection__hero {
+ display: flex;
+ height: 172px;
+ width: 100%;
+
+ img {
+ width: 100%;
+ height: 100%;
+ object-fit: cover;
+ }
+}
+
+.appPageSection__preview {
+ padding: 17px 0;
+ background: repeating-linear-gradient(
+ 45deg,
+ transparent,
+ transparent 10px,
+ #f8d282 10px,
+ #f8d282 20px
+ );
+
+ .p-button {
+ background: white;
+ }
+}
+
+.appPageSection__row {
+ display: flex;
+ gap: 1rem;
+}
+
+.appPageSection__pMeta {
+ display: flex;
+ gap: 0.5rem;
+ justify-content: space-between;
+ margin: 0;
+
+ span {
+ font-size: 14px;
+ font-style: normal;
+ font-weight: 600;
+ line-height: normal;
+ }
+}
+
+.appPageSection__table {
+ width: 100%;
+}
+
+.appTableHeader {
+ display: flex;
+ justify-content: space-between;
+}
+
+.appPageSection__actions {
+ display: flex;
+ gap: 24px;
+ padding: 24px 0 48px;
+ flex-wrap: wrap;
+}
+
+.appPageSection__tableActions {
+ display: flex;
+ gap: 24px;
+ padding: 0;
+ flex-wrap: wrap;
+}
+
+.appPageSection__addToFavourites {
+ width: 28px;
+ height: 28px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ border-radius: 50%;
+ border: none;
+ background-color: var(--message-info-color);
+ color: white;
+ padding: 0;
+
+ &:hover {
+ cursor: pointer;
+ }
+
+ &[disabled] {
+ background-color: var(--message-info-background);
+ }
+}
\ No newline at end of file
diff --git a/src/assets/scss/components/bandoStatusTag.scss b/src/assets/scss/components/bandoStatusTag.scss
new file mode 100644
index 0000000..bc428a8
--- /dev/null
+++ b/src/assets/scss/components/bandoStatusTag.scss
@@ -0,0 +1,7 @@
+.bandoStatusTag {
+ text-transform: uppercase;
+ font-size: 10.5px;
+ font-style: normal;
+ font-weight: 600;
+ line-height: 150%;
+}
\ No newline at end of file
diff --git a/src/assets/scss/components/flowBuilder.scss b/src/assets/scss/components/flowBuilder.scss
new file mode 100644
index 0000000..04e3e83
--- /dev/null
+++ b/src/assets/scss/components/flowBuilder.scss
@@ -0,0 +1,35 @@
+.flowBuilder__wrapper {
+ width: 100%;
+ height: 500px;
+}
+
+.nodeInitialForm {
+ padding: 10px 20px;
+ background-color: white;
+ border: 1px solid black;
+ border-radius: 4px;
+ display: flex;
+ flex-direction: column;
+ gap: 10px;
+
+ label {
+ font-size: 13px;
+ text-align: center;
+ }
+}
+
+.nodeIntermediateForm {
+ padding: 10px 20px;
+ background-color: white;
+ border: 1px solid black;
+ border-radius: 4px;
+ display: flex;
+ flex-direction: column;
+ gap: 10px;
+ max-width: 180px;
+
+ label {
+ font-size: 13px;
+ text-align: center;
+ }
+}
\ No newline at end of file
diff --git a/src/assets/scss/components/formBuilder.scss b/src/assets/scss/components/formBuilder.scss
new file mode 100644
index 0000000..9e0d482
--- /dev/null
+++ b/src/assets/scss/components/formBuilder.scss
@@ -0,0 +1,141 @@
+.formBuilder {
+ position: relative;
+ display: flex;
+ gap: 20px;
+ width: 100%;
+ height: 600px;
+}
+
+.formBuilder__main {
+ flex: 1 1 100%;
+ display: flex;
+ flex-direction: column;
+
+ h2 {
+ color: #404D5B;
+ font-size: 14px;
+ font-style: normal;
+ font-weight: 700;
+ line-height: normal;
+ }
+}
+
+.formBuilder__content {
+ height: 100%;
+ overflow-y: scroll;
+ flex-grow: 2;
+ display: flex;
+ flex-direction: column;
+ gap: 7px;
+ padding: 20px;
+ border: 1px #DDD;
+ background: var(--surface-50);
+ box-shadow: 0 0 2px 1px rgba(0, 0, 0, 0.10);
+
+ .dropzone {
+ width: 100%;
+ height: 100%;
+ border-radius: 1rem;
+ border: 3px dashed #bdbdbd;
+ }
+}
+
+.formBuilder__element {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ gap: 1rem;
+ padding: 10px 20px;
+ border: 1px solid var(--button-secondary-borderColor);
+ font-size: 14px;
+ font-style: normal;
+ font-weight: 400;
+ line-height: 21px;
+
+ .meta {
+ display: flex;
+ flex-direction: column;
+ gap: 5px;
+ align-items: flex-start;
+ }
+
+ .actions {
+ display: flex;
+ gap: 0.5rem;
+ }
+}
+
+.formBuilder__aside {
+ flex: 0 0 250px;
+ display: flex;
+ flex-direction: column;
+
+ h2 {
+ color: #404D5B;
+ font-size: 14px;
+ font-style: normal;
+ font-weight: 700;
+ line-height: normal;
+ }
+}
+
+.formBuilder__list {
+ display: flex;
+ flex-direction: column;
+ gap: 5px;
+ list-style: none;
+ padding: 0;
+ margin: 0;
+ height: 100%;
+ overflow-y: scroll;
+}
+.formBuilder__elementItem {
+ display: flex;
+ padding: 10px 20px;
+ border: 1px dashed var(--button-secondary-borderColor);
+ font-size: 14px;
+ font-style: normal;
+ font-weight: 400;
+ line-height: 21px;
+
+ &:hover {
+ cursor: grab;
+ }
+}
+
+.formBuilder__elementSettings {
+ width: 40rem;
+}
+
+.formElementSettings {
+ display: flex;
+ flex-direction: column;
+ gap: 1rem;
+ align-items: flex-start;
+}
+
+.formElementSettings__field {
+ display: flex;
+ flex-direction: column;
+ gap: 0.5rem;
+}
+
+.formElementSettings__tabs {
+ width: 100%;
+
+ .p-tabview-nav-link[aria-selected="true"] {
+ background-color: var(--message-info-background);
+ }
+
+ .p-tabview-panel {
+ display: flex;
+ flex-direction: column;
+ gap: 1rem;
+ }
+}
+
+.formElementSettings__repeater {
+ display: flex;
+ flex-direction: column;
+ gap: 0.5rem;
+}
\ No newline at end of file
diff --git a/src/assets/scss/components/layout.scss b/src/assets/scss/components/layout.scss
new file mode 100644
index 0000000..07fa909
--- /dev/null
+++ b/src/assets/scss/components/layout.scss
@@ -0,0 +1,105 @@
+html {
+ min-height: 100%;
+ display: flex;
+ flex-direction: column;
+}
+
+body {
+ min-height: 100%;
+ display: flex;
+ flex-direction: column;
+ flex-grow: 1;
+ margin: 0;
+ font-family: "Montserrat", sans-serif;
+
+ p, span:not(.p-button-label, .p-button-icon, .p-badge, .p-message-detail, .p-highlight),
+ input, label:not(.p-error), textarea, a, li, h1, h2, h3, h4, h5, h6, div, th, td {
+ color: var(--global-textColor);
+ }
+}
+
+#root, .wrapper {
+ min-height: 100%;
+ display: flex;
+ flex-direction: column;
+ flex-grow: 1;
+}
+.inner {
+ display: flex;
+ height: 100%;
+ min-height: 0;
+ flex-grow: 1;
+
+ > aside {
+ flex: 0 0 320px;
+ border-right: 1px solid var(--menu-borderColor);
+
+ ul {
+ display: flex;
+ flex-direction: column;
+ list-style: none;
+ margin: 0;
+ padding: 0;
+
+ li a, li button {
+ display: flex;
+ padding: 10.5px 17.5px;
+ align-items: center;
+ gap: 7px;
+ width: 100%;
+ border: 0;
+ border-bottom: 1px solid var(--menu-borderColor);
+ color: var(--menuitem-color);
+ background-color: transparent;
+ font-size: 14px;
+ font-style: normal;
+ font-weight: 400;
+ line-height: 100%;
+ text-decoration: none;
+
+ &:hover {
+ cursor: pointer;
+ }
+
+ i {
+ color: var(--text-color-secondary);
+ }
+
+ &.active {
+ color: var(--menuitem-active-color);
+ background-color: var(--menuitem-active-background);
+
+ i {
+ color: white;
+ }
+
+ span {
+ color: var(--menuitem-active-color);
+ }
+ }
+ }
+ }
+ }
+
+ > main {
+ flex: 1 1 auto;
+ box-sizing: border-box;
+ padding: 0 24px 20px;
+ display: flex;
+ flex-direction: column;
+ width: calc(100% - 320px);
+
+ > footer {
+ margin-top: auto;
+ padding: 100px 0 0;
+
+ p {
+ text-align: center;
+ font-size: 14px;
+ font-style: normal;
+ font-weight: 400;
+ line-height: normal;
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/assets/scss/components/login.scss b/src/assets/scss/components/login.scss
new file mode 100644
index 0000000..9aad814
--- /dev/null
+++ b/src/assets/scss/components/login.scss
@@ -0,0 +1,40 @@
+.appPageLogin {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+}
+
+.appPageLogin__wrapper {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ width: 100%;
+ max-width: 540px;
+ padding: 24px;
+
+ .appForm {
+ width: 100%;
+ }
+}
+
+.appPageLogin__spidBtn.appPageLogin__spidBtn {
+ display: flex;
+ align-items: center;
+ width: 100%;
+ padding: 8px;
+ gap: 11px;
+ background: #06C;
+ border: none;
+
+ &:hover {
+ cursor: pointer;
+ }
+
+ span {
+ color: #FFF;
+ font-size: 17.25px;
+ font-style: normal;
+ font-weight: 600;
+ line-height: 15px;
+ }
+}
\ No newline at end of file
diff --git a/src/assets/scss/components/misc.scss b/src/assets/scss/components/misc.scss
new file mode 100644
index 0000000..0bf2216
--- /dev/null
+++ b/src/assets/scss/components/misc.scss
@@ -0,0 +1,117 @@
+.p-steps {
+ .p-highlight {
+ span.p-steps-number {
+ color: var(--menuitem-active-color);
+ }
+ }
+}
+.p-badge {
+ color: var(--menuitem-active-color);
+}
+.p-button:not(.p-button-outlined, .p-button-secondary, .p-confirm-popup-reject),
+.p-button:not(.p-button-outlined, .p-button-secondary, .p-confirm-popup-reject) span {
+ color: var(--menuitem-active-color);
+}
+.p-fileupload-row {
+ .p-button-danger {
+ background-color: #f44336;
+ opacity: 0.8;
+ &:hover {
+ opacity: 1;
+ }
+ }
+}
+.p-tag {
+ .p-tag-value {
+ color: var(--menuitem-active-color);
+ }
+}
+
+.p-paginator-page {
+ /*color: var(--menuitem-active-color);*/
+}
+
+.p-datepicker-buttonbar .p-button {
+ color: var(--global-textColor);
+}
+
+.p-message.p-message-error {
+ background: var(--message-error-background);
+ border-left: 5px solid var(--message-error-color);
+
+ span.p-message-detail, span.p-message-summary {
+ color: var(--message-error-color);
+ }
+
+ svg {
+ path {
+ fill: var(--message-error-color);
+ }
+ }
+}
+
+.p-message.p-message-info {
+ background: var(--message-info-background);
+ border-left: 5px solid var(--message-info-color);
+
+ span.p-message-detail, span.p-message-summary {
+ color: var(--message-info-color);
+ }
+
+ svg {
+ path {
+ fill: var(--message-info-color);
+ }
+ }
+}
+
+.p-dropdown-panel .p-dropdown-items .p-dropdown-item.p-highlight {
+ background: #C9E3CC;
+}
+
+.p-accordion {
+ width: 100%;
+}
+
+.p-steps .p-steps-item.p-highlight .p-steps-number {
+ background: var(--theme-highlight-background);
+ color: var(--primary-text);
+}
+
+.p-toast-detail {
+ color: white;
+ margin: 0;
+}
+
+.p-fileupload .p-fileupload-content {
+ padding: 1rem 0.5rem;
+}
+
+.p-fileupload .p-fileupload-row > div {
+ padding: 0.5rem;
+}
+
+.p-message-detail, .p-progressbar-label {
+ color: white;
+}
+
+.p-dialog-content {
+ padding: 1rem 1.5rem;
+}
+
+.blockingOverlay {
+ position: absolute;
+ z-index: 999;
+ inset: 0;
+ background-color: rgba(255,255,255,0.3)
+}
+
+.mb-2 {
+ margin-bottom: 4px;
+}
+.mb-8 {
+ margin-bottom: 16px;
+}
+.mr-8 {
+ margin-right: 16px;
+}
\ No newline at end of file
diff --git a/src/assets/scss/components/pageBando.scss b/src/assets/scss/components/pageBando.scss
new file mode 100644
index 0000000..6522e82
--- /dev/null
+++ b/src/assets/scss/components/pageBando.scss
@@ -0,0 +1,9 @@
+.pageBando__templateSelection {
+ display: flex;
+ gap: 14px;
+ align-items: flex-end;
+
+ button {
+ flex: 0 0 auto;
+ }
+}
\ No newline at end of file
diff --git a/src/assets/scss/components/statsBigBadges.scss b/src/assets/scss/components/statsBigBadges.scss
new file mode 100644
index 0000000..6e63deb
--- /dev/null
+++ b/src/assets/scss/components/statsBigBadges.scss
@@ -0,0 +1,65 @@
+.statsBigBadges {
+}
+
+.statsBigBadges__grid {
+ display: grid;
+ align-items: stretch;
+ grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
+ gap: 1rem;
+ width: 100%;
+ container-name: big-badges-grid;
+ container-type: inline-size;
+}
+
+.statsBigBadges__grid .statsBigBadges__gridItem span {
+ color: #FFF;
+}
+
+.statsBigBadges__gridItem {
+ display: flex;
+ justify-content: space-between;
+ padding: 28px;
+ border-radius: 6px;
+ border: 1px solid var(--yellow-500);
+ background: var(--card-full-background-color-2);
+ align-items: center;
+ gap: 48px;
+
+ span {
+ color: #FFF;
+ font-size: 21px;
+ font-style: normal;
+ font-weight: 600;
+ line-height: normal;
+ }
+
+ span:nth-last-of-type(1) {
+ font-size: 28px;
+ }
+
+ &:nth-of-type(2) {
+ border: 1px solid var(--yellow-500);
+ background: var(--card-full-background-color-3);
+ }
+ &:nth-of-type(3) {
+ border: 1px solid var(--yellow-500);
+ background: var(--card-full-background-color-4);
+ }
+ &:nth-of-type(4) {
+ border: 1px solid var(--yellow-500);
+ background: var(--card-full-background-color-1);
+ }
+}
+
+@container big-badges-grid (max-width: 700px) {
+ .statsBigBadges__gridItem {
+ padding: 12px;
+
+ span {
+ font-size: 16px;
+ }
+ span:nth-last-of-type(1) {
+ font-size: 16px;
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/assets/scss/components/topBar.scss b/src/assets/scss/components/topBar.scss
new file mode 100644
index 0000000..4378537
--- /dev/null
+++ b/src/assets/scss/components/topBar.scss
@@ -0,0 +1,49 @@
+.topBar {
+ background: var(--horizontalMenu-background)
+}
+.topBar__endContent {
+ display: flex;
+ gap: 24px;
+ align-items: center;
+}
+.topBar__profileBtn {
+ display: flex;
+ gap: 14px;
+}
+.topBar__icon {
+ font-size: 1.3rem;
+ color: var(--text-color-secondary)
+}
+.topBar__menuProfileItem {
+ display: flex;
+ gap: 7px;
+ padding: 0.75rem 1rem;
+
+ .p-avatar {
+ width: 40px;
+ height: 40px;
+ flex: 0 0 auto;
+ }
+
+ .userInfo {
+ display: flex;
+ flex-direction: column;
+ gap: 4px;
+ width: 120px;
+ }
+
+ span {
+ overflow: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ }
+
+ .userName {
+ font-weight: bold;
+ }
+}
+.topBar__menuProfile {
+ .p-menu-separator {
+ border-color: var(--menu-borderColor);
+ }
+}
\ No newline at end of file
diff --git a/src/assets/scss/gepafin/_extensions.scss b/src/assets/scss/gepafin/_extensions.scss
new file mode 100644
index 0000000..f5dbaa4
--- /dev/null
+++ b/src/assets/scss/gepafin/_extensions.scss
@@ -0,0 +1 @@
+/* Customizations to the designer theme should be defined here */
\ No newline at end of file
diff --git a/src/assets/scss/gepafin/_fonts.scss b/src/assets/scss/gepafin/_fonts.scss
new file mode 100644
index 0000000..341a320
--- /dev/null
+++ b/src/assets/scss/gepafin/_fonts.scss
@@ -0,0 +1,44 @@
+/* montserrat-regular - latin */
+@font-face {
+ font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
+ font-family: 'Montserrat';
+ font-style: normal;
+ font-weight: 400;
+ src: url('../../fonts/montserrat-v26-latin-regular.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
+}
+
+/* montserrat-italic - latin */
+@font-face {
+ font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
+ font-family: 'Montserrat';
+ font-style: italic;
+ font-weight: 400;
+ src: url('../../fonts/montserrat-v26-latin-italic.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
+}
+
+/* montserrat-600 - latin */
+@font-face {
+ font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
+ font-family: 'Montserrat';
+ font-style: normal;
+ font-weight: 600;
+ src: url('../../fonts/montserrat-v26-latin-600.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
+}
+
+/* montserrat-700 - latin */
+@font-face {
+ font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
+ font-family: 'Montserrat';
+ font-style: normal;
+ font-weight: 700;
+ src: url('../../fonts/montserrat-v26-latin-700.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
+}
+
+/* montserrat-800 - latin */
+@font-face {
+ font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
+ font-family: 'Montserrat';
+ font-style: normal;
+ font-weight: 800;
+ src: url('../../fonts/montserrat-v26-latin-800.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
+}
diff --git a/src/assets/scss/gepafin/_variables.scss b/src/assets/scss/gepafin/_variables.scss
new file mode 100644
index 0000000..8d8e1ca
--- /dev/null
+++ b/src/assets/scss/gepafin/_variables.scss
@@ -0,0 +1,88 @@
+$primaryColor: #3B7C43;
+$primaryDarkColor: #3B7C43;
+$primaryDarkerColor: #3B7C43;
+$primaryTextColor: #ffffff;
+
+$chipBg: $primaryColor;
+$chipTextColor: $primaryTextColor;
+$chipBorderRadius: 16px !default;
+$chipFocusBg: $primaryColor;
+$chipFocusTextColor: $primaryTextColor;
+
+$colors: (
+ "grey": #6B7280,
+ "blue": #2196F3,
+ "green": #4caf50,
+ "yellow": #FBC02D,
+ "cyan": #00BCD4,
+ "pink": #E91E63,
+ "indigo": #3F51B5,
+ "teal": #009688,
+ "orange": #F57C00,
+ "bluegray": #607D8B,
+ "purple": #9C27B0,
+ "red": #FF4032,
+ "primary": $primaryColor
+);
+
+
+@import './variables/_general.scss';
+@import './variables/_form.scss';
+@import './variables/_button.scss';
+@import './variables/_panel.scss';
+@import './variables/_data.scss';
+@import './variables/_overlay.scss';
+@import './variables/_message.scss';
+@import './variables/_menu.scss';
+@import './variables/_media.scss';
+@import './variables/_misc.scss';
+
+:root {
+ font-family:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
+ --font-family:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
+ --surface-a:#ffffff;
+ --surface-b:#f8f9fa;
+ --surface-c:#e9ecef;
+ --surface-d:#dee2e6;
+ --surface-e:#ffffff;
+ --surface-f:#ffffff;
+ --text-color:#4B5563;
+ --text-color-secondary:#6B7280;
+ --primary-color:#4A644E;
+ --primary-color-text:#ffffff;
+ --surface-0: #ffffff;
+ --surface-50: #FAFAFA;
+ --surface-100: #F5F5F5;
+ --surface-200: #EEEEEE;
+ --surface-300: #E0E0E0;
+ --surface-400: #BDBDBD;
+ --surface-500: #9E9E9E;
+ --surface-600: #757575;
+ --surface-700: #616161;
+ --surface-800: #424242;
+ --surface-900: #212121;
+ --gray-50: #FAFAFA;
+ --gray-100: #F5F5F5;
+ --gray-200: #EEEEEE;
+ --gray-300: #E0E0E0;
+ --gray-400: #BDBDBD;
+ --gray-500: #9E9E9E;
+ --gray-600: #757575;
+ --gray-700: #616161;
+ --gray-800: #424242;
+ --gray-900: #212121;
+ --content-padding:#{$panelContentPadding};
+ --inline-spacing:#{$inlineSpacing};
+ --border-radius:#{$borderRadius};
+ --surface-ground:#EFF3F8;
+ --surface-section:#ffffff;
+ --surface-card:#ffffff;
+ --surface-overlay:#ffffff;
+ --surface-border:#DFE7EF;
+ --surface-hover:#F6F9FC;
+ --focus-ring: #{$focusShadow};
+ --maskbg: #{$maskBg};
+ --highlight-bg: #{$highlightBg};
+ --highlight-text-color: #{$highlightTextColor};
+ color-scheme: light;
+}
\ No newline at end of file
diff --git a/src/assets/scss/gepafin/gepafin-theme.scss b/src/assets/scss/gepafin/gepafin-theme.scss
new file mode 100644
index 0000000..0f56e7e
--- /dev/null
+++ b/src/assets/scss/gepafin/gepafin-theme.scss
@@ -0,0 +1,4 @@
+@import './_variables.scss';
+@import './_fonts.scss';
+@import '../theme-base/_components.scss';
+@import './_extensions.scss';
\ No newline at end of file
diff --git a/src/assets/scss/gepafin/sassdoc/assets/css/main.css b/src/assets/scss/gepafin/sassdoc/assets/css/main.css
new file mode 100644
index 0000000..c8fe8e7
--- /dev/null
+++ b/src/assets/scss/gepafin/sassdoc/assets/css/main.css
@@ -0,0 +1 @@
+.container:after,.header:after,.searchbar:after{content:"";display:table;clear:both}.visually-hidden{width:1px;height:1px;position:absolute;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);border:0}.sidebar__title{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}code[class*='language-'],pre[class*='language-']{color:black;text-shadow:0 1px white;font-family:Consolas, Monaco, 'Andale Mono', monospace;direction:ltr;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}pre[class*='language-']::-moz-selection,pre[class*='language-'] ::-moz-selection,code[class*='language-']::-moz-selection,code[class*='language-'] ::-moz-selection{text-shadow:none;background:#b3d4fc}pre[class*='language-']::selection,pre[class*='language-'] ::selection,code[class*='language-']::selection,code[class*='language-'] ::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*='language-'],pre[class*='language-']{text-shadow:none}}pre[class*='language-']{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*='language-'],pre[class*='language-']{background:white}:not(pre)>code[class*='language-']{padding:.1em;border-radius:.3em}.token.comment,.token.prolog,.token.doctype,.token.cdata{color:slategray}.token.punctuation{color:#999}.namespace{opacity:.7}.token.property,.token.tag,.token.boolean,.token.number,.token.constant,.token.symbol{color:#905}.token.selector,.token.attr-name,.token.string,.token.builtin{color:#690}.token.operator,.token.entity,.token.url,.language-css .token.string,.style .token.string,.token.variable{color:#a67f59;background:rgba(255,255,255,0.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.regex,.token.important{color:#e90}.token.important{font-weight:bold}.token.entity{cursor:help}html{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}*,*::after,*::before{-webkit-box-sizing:inherit;-moz-box-sizing:inherit;box-sizing:inherit}body{font:1em/1.35 "Open Sans","Helvetica Neue Light","Helvetica Neue","Helvetica","Arial",sans-serif;overflow:auto;margin:0}a{transition:0.15s;text-decoration:none;color:#dd5a6f}a:hover,a:hover code{color:#333}table p{margin:0 0 .5rem}:not(pre)>code{color:#dd5a6f;white-space:nowrap;font-weight:normal}@media (max-width: 800px){table,tbody,tr,td,th{display:block}thead{width:1px;height:1px;position:absolute;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);border:0}tr{padding-bottom:1em;margin-bottom:1em;border-bottom:2px solid #ddd}td::before,th::before{content:attr(data-label) ": ";text-transform:capitalize;font-weight:bold}td p,th p{display:inline}}.layout-toggle{display:none}@media (min-width: 801px){.layout-toggle{position:absolute;top:8px;left:20px;font-size:2em;cursor:pointer;color:white;display:block}}@media (min-width: 801px){.sidebar-closed .sidebar{-webkit-transform:translateX(-280px);-ms-transform:translateX(-280px);transform:translateX(-280px)}.sidebar-closed .main{padding-left:0}.sidebar-closed .header{left:0}}.list-unstyled{padding-left:0;list-style:none;line-height:1.5;margin-top:0;margin-bottom:1.5rem}.list-inline li{display:inline-block}.container{max-width:100%;width:1170px;margin:0 auto;padding:0 2rem}.relative{position:relative}.clear{clear:both}.header{position:fixed;top:0;right:0;left:280px;box-shadow:0 2px 5px rgba(0,0,0,0.26);padding:1em 0;background:#dd5a6f;color:#e0e0e0;z-index:4000}@media (max-width: 800px){.header{left:0}}@media (min-width: 801px){.header{transition:0.2s cubic-bezier(0.215, 0.61, 0.355, 1)}}.header__title{font-weight:500;text-align:center;margin:0 0 0.5em 0}.header__title a{color:#e0e0e0}@media (min-width: 801px){.header__title{float:left;font-size:1em;margin-top:.25em;margin-bottom:0}}.searchbar{display:inline-block;float:right}@media (max-width: 800px){.searchbar{display:block;float:none}}.searchbar__form{float:right;position:relative}@media (max-width: 800px){.searchbar__form{float:none}}@media (min-width: 801px){.searchbar__form{min-width:15em}}.searchbar__field{border:none;padding:0.5em;font-size:1em;margin:0;width:100%;box-shadow:0 1.5px 4px rgba(0,0,0,0.24),0 1.5px 6px rgba(0,0,0,0.12);border:1px solid #e0e0e0}.searchbar__suggestions{position:absolute;top:100%;right:0;left:0;box-shadow:0 1.5px 4px rgba(0,0,0,0.24),0 1.5px 6px rgba(0,0,0,0.12);border:1px solid #e0e0e0;background:white;padding:0;margin:0;list-style:none;z-index:2}.searchbar__suggestions:empty{display:none}.searchbar__suggestions .selected{background:#ddd}.searchbar__suggestions li{border-bottom:1px solid #e0e0e0}.searchbar__suggestions li:last-of-type{border:none}.searchbar__suggestions a{display:block;padding:0.5em;font-size:0.9em}.searchbar__suggestions a:hover,.searchbar__suggestions a:active,.searchbar__suggestions a:focus{background:#e0e0e0}.searchbar__suggestions code{margin-right:.5em}@media (min-width: 801px){.sidebar{position:fixed;top:0;bottom:0;left:0;overflow:auto;box-shadow:1px 0 1.5px rgba(0,0,0,0.12);width:280px;z-index:2;border-right:1px solid #e0e0e0;transition:0.2s cubic-bezier(0.215, 0.61, 0.355, 1)}}@media (max-width: 800px){.sidebar{margin-top:4em}}.sidebar__annotation{color:#5c4863}.sidebar__item{font-size:0.9em}.sidebar__item a{padding:0.5em 4.5em;display:block;text-decoration:none;color:#333}.sidebar__item:hover,.sidebar__item:active,.sidebar__item:focus{background:#e0e0e0}.sidebar__item.is-collapsed+*{display:none}.sidebar__item--heading{padding:1em 1.5em}.sidebar__item--heading a{font-weight:bold}.sidebar__item--sub-heading{padding:0.5em 2.5em}.sidebar__item--sub-heading a{color:#888}.sidebar__item--heading,.sidebar__item--sub-heading{position:relative}.sidebar__item--heading:after,.sidebar__item--sub-heading:after{position:absolute;top:50%;right:2em;content:'\25BC';margin-top:-0.5em;color:#ddd;font-size:0.7em}.sidebar__item--heading.is-collapsed:after,.sidebar__item--sub-heading.is-collapsed:after{content:'\25B6'}.sidebar__item--heading a,.sidebar__item--sub-heading a{padding:0;display:inline}.sidebar__description{color:#e0e0e0;padding-right:2em}.sidebar__header{border-bottom:1px solid #e0e0e0}.sidebar__title{font-size:1em;margin:0;padding:1.45em}.btn-toggle{background:#EFEFEF;border:none;border-bottom:1px solid #e0e0e0;display:block;padding:1em;width:100%;cursor:pointer;color:#999;font-weight:bold;margin:0;transition:0.15s ease-out}.btn-toggle:hover,.btn-toggle:active,.btn-toggle:focus{background:#DFDFDF}.main{background:#f9f9f9;position:relative}@media (min-width: 801px){.main{transition:0.2s cubic-bezier(0.215, 0.61, 0.355, 1);padding-left:280px;padding-top:4em;min-height:45em}}.main__section{margin-top:5em;border-top:5px solid rgba(92,72,99,0.2)}.header+.main__section{margin-top:0;border-top:none}.main__heading,.main__heading--secondary{padding:1em 0;margin-top:0}@media (min-width: 801px){.main__heading,.main__heading--secondary{padding:2em 0 0}}.main__heading{color:#5c4863;font-size:3.5em;text-align:center;border-bottom:5px solid rgba(92,72,99,0.2);padding-bottom:.5em;margin-bottom:1em;background:rgba(92,72,99,0.1)}.main__heading--secondary{font-size:3em;color:#dd5a6f;text-transform:uppercase;font-weight:bold;padding-top:0;margin-bottom:-3rem;position:relative}.main__heading--secondary .container{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.main__heading--secondary::before{content:'';position:absolute;left:0;right:0;bottom:0.15em;height:0.2em;background-color:#dd5a6f}.main__description{margin-bottom:1.5rem}.footer{background:#e0e0e0;padding:1em 0}.footer .container{position:relative}.footer__project-info{float:left}.footer__watermark{position:absolute;right:0;top:-0.7em}.footer__watermark img{display:block;max-width:7em}.project-info__name,.project-info__version,.project-info__license{display:inline-block}.project-info__version,.project-info__license{color:#555}.project-info__license{text-indent:-0.25em}.main__section{margin-bottom:4.5rem}.item__heading{color:#333;margin:4.5rem 0 1.5rem 0;position:relative;font-size:2em;font-weight:300;float:left}.item__name{color:#dd5a6f}.item__example{margin-bottom:1.5rem}.item__example,.item__code{box-shadow:0 1.5px 4px rgba(0,0,0,0.24),0 1.5px 6px rgba(0,0,0,0.12);border:1px solid #e0e0e0;word-wrap:break-word;line-height:1.42}.item__code{padding-right:7em;clear:both;cursor:pointer}.item__code--togglable::after{position:absolute;right:0;bottom:-2.5em;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";opacity:0;color:#c4c4c4;font-size:0.8em;transition:0.2s ease-out}.item__code--togglable:hover::after,.item__code--togglable:active::after,.item__code--togglable:focus::after{-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";opacity:1}.item__code--togglable[data-current-state='expanded']::after{content:'Click to collapse.'}.item__code--togglable[data-current-state='collapsed']::after{content:'Click to expand.'}.example__description{padding:1em;background:#EFEFEF}.example__description p{margin:0}.example__code[class*='language-']{margin:0}.item__anchor{font-size:0.6em;color:#eeafb9}@media (min-width: 801px){.item__anchor{position:absolute;right:101%;bottom:.25em;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";opacity:0}.item:hover .item__anchor{-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";opacity:1}}.item__deprecated{display:inline-block;overflow:hidden;margin-top:5.5em;margin-left:1em}.item__deprecated strong{float:left;color:#c00;text-transform:uppercase}.item__deprecated p{float:left;margin:0;padding-left:0.5em}.item__type{color:#ddd;text-transform:capitalize;font-size:0.75em}.item__alias,.item__aliased{color:#ddd;font-size:0.8em}.item__sub-heading{color:#333;margin-top:0;margin-bottom:1.5rem;font-size:1.2em}.item__parameters{width:100%;margin-bottom:1em;border-collapse:collapse}.item__parameters thead th{vertical-align:bottom;border-bottom:2px solid #ddd;border-top:none;text-align:left;color:#707070}.item__parameters tbody th{text-align:left}.item__parameters td,.item__parameters th{padding:0.5em 0.5em 0.5em 0;vertical-align:top}@media (min-width: 801px){tbody>.item__parameter:first-of-type>td{border-top:none}.item__parameters td,.item__parameters th{border-top:1px solid #ddd}}.item__access{text-transform:capitalize;color:#5c4863;font-size:0.8em}.item__since{float:right;padding-top:0.9em;color:#c4c4c4;margin-bottom:1em}.item__source-link{position:absolute;top:1px;right:1px;background:white;padding:1em;z-index:2;color:#c4c4c4}.item__cross-type{color:#4d4d4d;font-family:'Consolas', 'Monaco', 'Andale Mono', monospace;font-size:0.8em}.item__description{margin-bottom:1.5rem}li.item__description{margin-bottom:0}.item__description--inline>*{display:inline-block;margin:0}.item__code-wrapper{position:relative;clear:both;margin-bottom:1.5rem}.color-preview--inline{padding:2px 4px;border:1px solid rgba(0,0,0,0.1);border-radius:3px}.color-preview--block{width:2em;height:2em;position:absolute;top:140%;right:0;top:calc(100% + 20px);border:1px solid rgba(0,0,0,0.1);border-radius:3px}
diff --git a/src/assets/scss/gepafin/sassdoc/assets/images/favicon.png b/src/assets/scss/gepafin/sassdoc/assets/images/favicon.png
new file mode 100644
index 0000000..585fb53
Binary files /dev/null and b/src/assets/scss/gepafin/sassdoc/assets/images/favicon.png differ
diff --git a/src/assets/scss/gepafin/sassdoc/assets/images/logo_full_compact.svg b/src/assets/scss/gepafin/sassdoc/assets/images/logo_full_compact.svg
new file mode 100644
index 0000000..0f590c9
--- /dev/null
+++ b/src/assets/scss/gepafin/sassdoc/assets/images/logo_full_compact.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/scss/gepafin/sassdoc/assets/images/logo_full_inline.svg b/src/assets/scss/gepafin/sassdoc/assets/images/logo_full_inline.svg
new file mode 100644
index 0000000..68b0103
--- /dev/null
+++ b/src/assets/scss/gepafin/sassdoc/assets/images/logo_full_inline.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/scss/gepafin/sassdoc/assets/images/logo_light_compact.svg b/src/assets/scss/gepafin/sassdoc/assets/images/logo_light_compact.svg
new file mode 100644
index 0000000..7f9ef80
--- /dev/null
+++ b/src/assets/scss/gepafin/sassdoc/assets/images/logo_light_compact.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/scss/gepafin/sassdoc/assets/images/logo_light_inline.svg b/src/assets/scss/gepafin/sassdoc/assets/images/logo_light_inline.svg
new file mode 100644
index 0000000..120ffd2
--- /dev/null
+++ b/src/assets/scss/gepafin/sassdoc/assets/images/logo_light_inline.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/scss/gepafin/sassdoc/assets/js/main.js b/src/assets/scss/gepafin/sassdoc/assets/js/main.js
new file mode 100644
index 0000000..015842a
--- /dev/null
+++ b/src/assets/scss/gepafin/sassdoc/assets/js/main.js
@@ -0,0 +1,56 @@
+/* global document */
+
+(function ($, global) {
+ 'use strict';
+
+ // Constructor
+ var App = function (conf) {
+ this.conf = $.extend({
+ // Search module
+ search: new global.Search(),
+
+ // Sidebar module
+ sidebar: new global.Sidebar(),
+
+ // Initialisation
+ init: true
+ }, conf || {});
+
+ // Launch the module
+ if (this.conf.init !== false) {
+ this.initialize();
+ }
+ };
+
+ // Initialisation method
+ App.prototype.initialize = function () {
+ this.codePreview();
+ };
+
+ // Toggle code preview collapsed/expanded modes
+ App.prototype.codePreview = function () {
+ var $item;
+ var $code;
+ var switchTo;
+
+ $('.item__code--togglable').on('click', function () {
+ $item = $(this);
+ $code = $item.find('code');
+ switchTo = $item.attr('data-current-state') === 'expanded' ? 'collapsed' : 'expanded';
+
+ $item.attr('data-current-state', switchTo);
+ $code.html($item.attr('data-' + switchTo));
+ Prism.highlightElement($code[0]);
+ });
+ };
+
+ global.App = App;
+}(window.jQuery, window));
+
+(function ($, global) {
+
+ $(document).ready(function () {
+ var app = new global.App();
+ });
+
+}(window.jQuery, window));
\ No newline at end of file
diff --git a/src/assets/scss/gepafin/sassdoc/assets/js/main.min.js b/src/assets/scss/gepafin/sassdoc/assets/js/main.min.js
new file mode 100644
index 0000000..b81f9d4
--- /dev/null
+++ b/src/assets/scss/gepafin/sassdoc/assets/js/main.min.js
@@ -0,0 +1 @@
+!function(t){function e(t,n){this.list=t,this.options=n=n||{};var i,o,s;for(i=0,keys=["sort","includeScore","shouldSort"],o=keys.length;o>i;i++)s=keys[i],this.options[s]=s in n?n[s]:e.defaultOptions[s];for(i=0,keys=["searchFn","sortFn","keys","getFn"],o=keys.length;o>i;i++)s=keys[i],this.options[s]=n[s]||e.defaultOptions[s]}var n=function(t,e){if(e=e||{},this.options=e,this.options.location=e.location||n.defaultOptions.location,this.options.distance="distance"in e?e.distance:n.defaultOptions.distance,this.options.threshold="threshold"in e?e.threshold:n.defaultOptions.threshold,this.options.maxPatternLength=e.maxPatternLength||n.defaultOptions.maxPatternLength,this.pattern=e.caseSensitive?t:t.toLowerCase(),this.patternLen=t.length,this.patternLen>this.options.maxPatternLength)throw new Error("Pattern length is too long");this.matchmask=1<i;)this._bitapScore(e,l+o)<=u?i=o:d=o,o=Math.floor((d-i)/2+i);for(d=o,s=Math.max(1,l-o+1),r=Math.min(l+o,c)+this.patternLen,a=Array(r+2),a[r+1]=(1<=s;n--)if(p=this.patternAlphabet[t.charAt(n-1)],a[n]=0===e?(a[n+1]<<1|1)&p:(a[n+1]<<1|1)&p|((h[n+1]|h[n])<<1|1)|h[n+1],a[n]&this.matchmask&&(g=this._bitapScore(e,n-1),u>=g)){if(u=g,f=n-1,m.push(f),!(f>l))break;s=Math.max(1,2*l-f)}if(this._bitapScore(e+1,l)>u)break;h=a}return{isMatch:f>=0,score:g}};var i={deepValue:function(t,e){for(var n=0,e=e.split("."),i=e.length;i>n;n++){if(!t)return null;t=t[e[n]]}return t}};e.defaultOptions={id:null,caseSensitive:!1,includeScore:!1,shouldSort:!0,searchFn:n,sortFn:function(t,e){return t.score-e.score},getFn:i.deepValue,keys:[]},e.prototype.search=function(t){var e,n,o,s,r,a=new this.options.searchFn(t,this.options),h=this.list,p=h.length,c=this.options,l=this.options.keys,u=l.length,f=[],d={},g=[],m=function(t,e,n){void 0!==t&&null!==t&&"string"==typeof t&&(s=a.search(t),s.isMatch&&(r=d[n],r?r.score=Math.min(r.score,s.score):(d[n]={item:e,score:s.score},f.push(d[n]))))};if("string"==typeof h[0])for(var e=0;p>e;e++)m(h[e],e,e);else for(var e=0;p>e;e++)for(o=h[e],n=0;u>n;n++)m(this.options.getFn(o,l[n]),o,e);c.shouldSort&&f.sort(c.sortFn);for(var y=c.includeScore?function(t){return f[t]}:function(t){return f[t].item},L=c.id?function(t){return i.deepValue(y(t),c.id)}:function(t){return y(t)},e=0,v=f.length;v>e;e++)g.push(L(e));return g},"object"==typeof exports?module.exports=e:"function"==typeof define&&define.amd?define(function(){return e}):t.Fuse=e}(this);(function($,global){var Sidebar=function(conf){this.conf=$.extend({collapsedClass:"is-collapsed",storageKey:"_sassdoc_sidebar_index",indexAttribute:"data-slug",toggleBtn:".js-btn-toggle",init:true},conf||{});if(this.conf.init===true){this.initialize()}};Sidebar.prototype.initialize=function(){this.conf.nodes=$("["+this.conf.indexAttribute+"]");this.load();this.updateDOM();this.bind();this.loadToggle()};Sidebar.prototype.loadToggle=function(){$("",{"class":"layout-toggle",html:"×","data-alt":"→"}).appendTo($(".header"));$(".layout-toggle").on("click",function(){var $this=$(this);var alt;$("body").toggleClass("sidebar-closed");alt=$this.html();$this.html($this.data("alt"));$this.data("alt",alt)})};Sidebar.prototype.load=function(){var index="localStorage"in global?global.localStorage.getItem(this.conf.storageKey):null;this.index=index?JSON.parse(index):this.buildIndex()};Sidebar.prototype.buildIndex=function(){var index={};var $item;this.conf.nodes.each($.proxy(function(index,item){$item=$(item);index[$item.attr(this.conf.indexAttribute)]=!$item.hasClass(this.conf.collapsedClass)},this));return index};Sidebar.prototype.updateDOM=function(){var item;for(item in this.index){if(this.index[item]===false){$("["+this.conf.indexAttribute+'="'+item+'"]').addClass(this.conf.collapsedClass)}}};Sidebar.prototype.save=function(){if(!("localStorage"in global)){return}global.localStorage.setItem(this.conf.storageKey,JSON.stringify(this.index))};Sidebar.prototype.bind=function(){var $item,slug,fn,text;var collapsed=false;global.onbeforeunload=$.proxy(function(){this.save()},this);$(this.conf.toggleBtn).on("click",$.proxy(function(event){$node=$(event.target);text=$node.attr("data-alt");$node.attr("data-alt",$node.text());$node.text(text);fn=collapsed===true?"removeClass":"addClass";this.conf.nodes.each($.proxy(function(index,item){$item=$(item);slug=$item.attr(this.conf.indexAttribute);this.index[slug]=collapsed;$("["+this.conf.indexAttribute+'="'+slug+'"]')[fn](this.conf.collapsedClass)},this));collapsed=!collapsed;this.save()},this));this.conf.nodes.on("click",$.proxy(function(event){$item=$(event.target);slug=$item.attr(this.conf.indexAttribute);this.index[slug]=!this.index[slug];$item.toggleClass(this.conf.collapsedClass)},this))};global.Sidebar=Sidebar})(window.jQuery,window);(function($,global){var Search=function(conf){this.conf=$.extend({search:{items:".sassdoc__item",input:"#js-search-input",form:"#js-search",suggestionsWrapper:"#js-search-suggestions"},fuse:{keys:["name"],threshold:.3},init:true},conf||{});if(this.conf.init===true){this.initialize()}};Search.prototype.initialize=function(){this.index=new Fuse($.map($(this.conf.search.items),function(item){var $item=$(item);return{group:$item.data("group"),name:$item.data("name"),type:$item.data("type"),node:$item}}),this.conf.fuse);this.initializeSearch()};Search.prototype.fillSuggestions=function(items){var searchSuggestions=$(this.conf.search.suggestionsWrapper);searchSuggestions.html("");var suggestions=$.map(items.slice(0,10),function(item){var $li=$("",{"data-group":item.group,"data-type":item.type,"data-name":item.name,html:''+item.type.slice(0,3)+" "+item.name+""});searchSuggestions.append($li);return $li});return suggestions};Search.prototype.search=function(term){return this.fillSuggestions(this.index.search(term))};Search.prototype.initializeSearch=function(){var searchForm=$(this.conf.search.form);var searchInput=$(this.conf.search.input);var searchSuggestions=$(this.conf.search.suggestionsWrapper);var currentSelection=-1;var suggestions=[];var selected;var self=this;searchSuggestions.on("click",function(e){var target=$(event.target);if(target.nodeName==="A"){searchInput.val(target.parent().data("name"));suggestions=self.fillSuggestions([])}});searchForm.on("keyup",function(e){e.preventDefault();if(e.keyCode===13){if(selected){suggestions=self.fillSuggestions([]);searchInput.val(selected.data("name"));window.location=selected.children().first().attr("href")}e.stopPropagation()}if(e.keyCode===40){currentSelection=(currentSelection+1)%suggestions.length}if(e.keyCode===38){currentSelection=currentSelection-1;if(currentSelection<0){currentSelection=suggestions.length-1}}if(suggestions[currentSelection]){if(selected){selected.removeClass("selected")}selected=suggestions[currentSelection];selected.addClass("selected")}});searchInput.on("keyup",function(e){if(e.keyCode!==40&&e.keyCode!==38){currentSelection=-1;suggestions=self.search($(this).val())}else{e.preventDefault()}}).on("search",function(){suggestions=self.search($(this).val())})};global.Search=Search})(window.jQuery,window);(function($,global){"use strict";var App=function(conf){this.conf=$.extend({search:new global.Search,sidebar:new global.Sidebar,init:true},conf||{});if(this.conf.init!==false){this.initialize()}};App.prototype.initialize=function(){this.codePreview()};App.prototype.codePreview=function(){var $item;var $code;var switchTo;$(".item__code--togglable").on("click",function(){$item=$(this);$code=$item.find("code");switchTo=$item.attr("data-current-state")==="expanded"?"collapsed":"expanded";$item.attr("data-current-state",switchTo);$code.html($item.attr("data-"+switchTo));Prism.highlightElement($code[0])})};global.App=App})(window.jQuery,window);(function($,global){$(document).ready(function(){var app=new global.App})})(window.jQuery,window);var self=typeof window!="undefined"?window:{},Prism=function(){var e=/\blang(?:uage)?-(?!\*)(\w+)\b/i,t=self.Prism={util:{encode:function(e){return e instanceof n?new n(e.type,t.util.encode(e.content)):t.util.type(e)==="Array"?e.map(t.util.encode):e.replace(/&/g,"&").replace(/e.length)break e;if(p instanceof i)continue;a.lastIndex=0;var d=a.exec(p);if(d){l&&(c=d[1].length);var v=d.index-1+c,d=d[0].slice(c),m=d.length,g=v+m,y=p.slice(0,v+1),b=p.slice(g+1),w=[h,1];y&&w.push(y);var E=new i(u,f?t.tokenize(d,f):d);w.push(E);b&&w.push(b);Array.prototype.splice.apply(s,w)}}}return s},hooks:{all:{},add:function(e,n){var r=t.hooks.all;r[e]=r[e]||[];r[e].push(n)},run:function(e,n){var r=t.hooks.all[e];if(!r||!r.length)return;for(var i=0,s;s=r[i++];)s(n)}}},n=t.Token=function(e,t){this.type=e;this.content=t};n.stringify=function(e,r,i){if(typeof e=="string")return e;if(Object.prototype.toString.call(e)=="[object Array]")return e.map(function(t){return n.stringify(t,r,e)}).join("");var s={type:e.type,content:n.stringify(e.content,r,i),tag:"span",classes:["token",e.type],attributes:{},language:r,parent:i};s.type=="comment"&&(s.attributes.spellcheck="true");t.hooks.run("wrap",s);var o="";for(var u in s.attributes)o+=u+'="'+(s.attributes[u]||"")+'"';return"<"+s.tag+' class="'+s.classes.join(" ")+'" '+o+">"+s.content+""+s.tag+">"};if(!self.document){if(!self.addEventListener)return self.Prism;self.addEventListener("message",function(e){var n=JSON.parse(e.data),r=n.language,i=n.code;self.postMessage(JSON.stringify(t.tokenize(i,t.languages[r])));self.close()},!1);return self.Prism}var r=document.getElementsByTagName("script");r=r[r.length-1];if(r){t.filename=r.src;document.addEventListener&&!r.hasAttribute("data-manual")&&document.addEventListener("DOMContentLoaded",t.highlightAll)}return self.Prism}();typeof module!="undefined"&&module.exports&&(module.exports=Prism);Prism.languages.markup={comment://g,prolog:/<\?.+?\?>/,doctype://,cdata://i,tag:{pattern:/<\/?[\w:-]+\s*(?:\s+[\w:-]+(?:=(?:("|')(\\?[\w\W])*?\1|[^\s'">=]+))?\s*)*\/?>/gi,inside:{tag:{pattern:/^<\/?[\w:-]+/i,inside:{punctuation:/^<\/?/,namespace:/^[\w-]+?:/}},"attr-value":{pattern:/=(?:('|")[\w\W]*?(\1)|[^\s>]+)/gi,inside:{punctuation:/=|>|"/g}},punctuation:/\/?>/g,"attr-name":{pattern:/[\w:-]+/g,inside:{namespace:/^[\w-]+?:/}}}},entity:/\?[\da-z]{1,8};/gi};Prism.hooks.add("wrap",function(e){e.type==="entity"&&(e.attributes.title=e.content.replace(/&/,"&"))});Prism.languages.css={comment:/\/\*[\w\W]*?\*\//g,atrule:{pattern:/@[\w-]+?.*?(;|(?=\s*{))/gi,inside:{punctuation:/[;:]/g}},url:/url\((["']?).*?\1\)/gi,selector:/[^\{\}\s][^\{\};]*(?=\s*\{)/g,property:/(\b|\B)[\w-]+(?=\s*:)/gi,string:/("|')(\\?.)*?\1/g,important:/\B!important\b/gi,punctuation:/[\{\};:]/g,"function":/[-a-z0-9]+(?=\()/gi};Prism.languages.markup&&Prism.languages.insertBefore("markup","tag",{style:{pattern:/