Merge pull request #695 from RafaelTaranto/merge-release-7.5.0-into-dev

Merge release 7.5.0 into dev
This commit is contained in:
Josh Harvey 2021-04-21 20:52:41 +01:00 committed by GitHub
commit 368781864e
47 changed files with 374 additions and 115 deletions

View file

@ -12,13 +12,13 @@ const resolvers = {
},
Mutation: {
saveAccounts: (...[, { accounts }]) => settingsLoader.saveAccounts(accounts),
resetAccounts: (...[, { schemaVersion }]) => settingsLoader.resetAccounts(schemaVersion),
// resetAccounts: (...[, { schemaVersion }]) => settingsLoader.resetAccounts(schemaVersion),
saveConfig: (...[, { config }]) => settingsLoader.saveConfig(config).then(it => {
notify()
return it
}),
resetConfig: (...[, { schemaVersion }]) => settingsLoader.resetConfig(schemaVersion),
migrateConfigAndAccounts: () => settingsLoader.migrate()
// resetConfig: (...[, { schemaVersion }]) => settingsLoader.resetConfig(schemaVersion),
// migrateConfigAndAccounts: () => settingsLoader.migrate()
}
}

View file

@ -8,10 +8,10 @@ const typeDef = gql`
type Mutation {
saveAccounts(accounts: JSONObject): JSONObject
resetAccounts(schemaVersion: Int): JSONObject
# resetAccounts(schemaVersion: Int): JSONObject
saveConfig(config: JSONObject): JSONObject
resetConfig(schemaVersion: Int): JSONObject
migrateConfigAndAccounts: JSONObject
# resetConfig(schemaVersion: Int): JSONObject
# migrateConfigAndAccounts: JSONObject
}
`

View file

@ -6,12 +6,12 @@ const { migrate } = require('../lib/config-migration')
module.exports.up = function (next) {
function migrateConfig(settings) {
return migrate(settings.config, settings.accounts)
.then(newSettings => Promise.all([
saveConfig(newSettings.config),
saveAccounts(newSettings.accounts)
]))
.then(() => next())
const newSettings = migrate(settings.config, settings.accounts)
return Promise.all([
saveConfig(newSettings.config),
saveAccounts(newSettings.accounts)
])
.then(() => next())
}
settingsLoader.loadLatest(false)

View file

@ -202,7 +202,7 @@ const groupStriped = elements => {
)
}
const ERow = ({ editing, disabled, lastOfGroup }) => {
const ERow = ({ editing, disabled, lastOfGroup, newRow }) => {
const { touched, errors, values } = useFormikContext()
const {
elements,
@ -249,6 +249,7 @@ const ERow = ({ editing, disabled, lastOfGroup }) => {
className={classnames(classNames)}
size={rowSize}
error={editing && hasErrors}
newRow={newRow && !hasErrors}
errorMessage={errorMessage}>
{innerElements.map((it, idx) => {
return (

View file

@ -193,7 +193,11 @@ const ETable = ({
onSubmit={innerSave}>
<Form>
<PromptWhenDirty />
<ERow editing={true} disabled={forceDisable} />
<ERow
editing={true}
disabled={forceDisable}
newRow={true}
/>
</Form>
</Formik>
)}

View file

@ -75,13 +75,22 @@ const ThDoubleLevel = ({ title, children, className, width }) => {
)
}
const Tr = ({ onClick, error, errorMessage, children, className, size }) => {
const Tr = ({
onClick,
error,
errorMessage,
children,
className,
size,
newRow
}) => {
const classes = useStyles({ size })
const cardClasses = { root: classes.cardContentRoot }
const classNames = {
[classes.tr]: true,
[classes.trError]: error,
[classes.card]: true,
[classes.trAdding]: newRow,
className
}

View file

@ -4,6 +4,7 @@ import {
tableHeaderColor,
tableHeaderHeight,
tableErrorColor,
tableSuccessColor,
spacer,
white,
tableDoubleHeaderHeight,
@ -71,6 +72,9 @@ export default {
trError: {
backgroundColor: tableErrorColor
},
trAdding: {
backgroundColor: tableSuccessColor
},
mainContent: ({ size }) => {
const sizes = {
sm: 34,

View file

@ -14,6 +14,7 @@ const Autocomplete = ({
multiple,
onChange,
labelProp,
shouldStayOpen,
value: outsideValue,
error,
fullWidth,

View file

@ -51,9 +51,11 @@ const CashIn = ({ currency, notes, total }) => {
<Info2 className={classes.noMarginText}>{notes} notes</Info2>
</div>
<div className={classes.innerRow}>
{/* Feature on hold until this can be calculated
<Label1 className={classes.noMarginText}>
{total} {currency.code}
</Label1>
*/}
</div>
</div>
</div>

View file

@ -21,6 +21,7 @@ const AutocompleteFormik = ({ options, onChange, ...props }) => {
}
const onChangeHandler = value => setFieldValue(name, value)
const shouldStayOpen = !!props.shouldStayOpen
return (
<Autocomplete
@ -38,7 +39,10 @@ const AutocompleteFormik = ({ options, onChange, ...props }) => {
if (!props.multiple) return setOpen(true)
setOpen(value?.length !== props.limit)
}}
onClose={() => setOpen(false)}
onClose={(event, reason) => {
if (shouldStayOpen && reason !== 'blur') setOpen(true)
else setOpen(false)
}}
{...props}
/>
)

View file

@ -116,7 +116,7 @@ const CashOut = ({ name: SCREEN_KEY }) => {
disableRowEdit={R.compose(R.not, R.path(['active']))}
elements={getElements(machines, locale)}
/>
{R.isEmpty(config) && <EmptyTable message="No machines so far" />}
{R.isEmpty(machines) && <EmptyTable message="No machines so far" />}
{wizard && (
<Wizard
machine={R.find(R.propEq('deviceId', wizard))(machines)}

View file

@ -40,9 +40,9 @@ const getView = (data, code, compare) => it => {
if (!data) return ''
// The following boolean should come undefined if it is rendering an unpaired machine
const hasValue = R.find(R.propEq(compare ?? 'code', it))(data)
const attribute = R.find(R.propEq(compare ?? 'code', it))(data)
return hasValue ? R.compose(R.prop(code), hasValue)(data) : 'Unpaired machine'
return attribute ? R.prop(code, attribute) : 'Unpaired machine'
}
const displayCodeArray = data => it => {
@ -103,7 +103,8 @@ const getOverridesFields = (getData, currency, auxElements) => {
valueProp: 'code',
labelProp: 'display',
multiple: true,
onChange: onCryptoChange
onChange: onCryptoChange,
shouldStayOpen: true
}
},
{

View file

@ -54,7 +54,7 @@ const MachinesTable = ({ machines, numToRender }) => {
}
const redirect = ({ name, deviceId }) => {
return history.push('/machines/' + `${deviceId}`, {
return history.push(`/machines/${deviceId}`, {
selectedMachine: name
})
}

View file

@ -43,7 +43,7 @@ const MachineStatus = () => {
const classes = useStyles()
const { state } = useLocation()
const addedMachineId = state?.id
const { data: machinesResponse, refetch } = useQuery(GET_MACHINES)
const { data: machinesResponse, refetch, loading } = useQuery(GET_MACHINES)
const elements = [
{
@ -103,6 +103,7 @@ const MachineStatus = () => {
</div>
</div>
<DataTable
loading={loading}
elements={elements}
data={machines}
Details={InnerMachineDetailsRow}

View file

@ -85,40 +85,58 @@ const useStyles = makeStyles({
})
// const direction = Yup.string().required()
const triggerType = Yup.string().required()
const threshold = Yup.object().shape({
threshold: Yup.number(),
thresholdDays: Yup.number().test({
test(val) {
const { triggerType } = this.parent
const requireThrehsold = ['txVolume', 'txVelocity', 'consecutiveDays']
if (R.isEmpty(val) && R.includes(triggerType, requireThrehsold)) {
return this.createError()
}
return true
}
})
threshold: Yup.number()
.nullable()
.transform(transformNumber)
.label('Invalid threshold'),
thresholdDays: Yup.number()
.transform(transformNumber)
.nullable()
.label('Invalid threshold days')
})
const requirement = Yup.object().shape({
requirement: Yup.string().required(),
suspensionDays: Yup.number().when('requirement', {
is: 'suspend',
then: Yup.number().required(),
then: Yup.number()
.required()
.min(1)
.label('Invalid value'),
otherwise: Yup.number()
.nullable()
.transform(() => null)
})
})
const Schema = Yup.object().shape({
triggerType,
requirement,
threshold
// direction
})
const Schema = Yup.object()
.shape({
triggerType,
requirement,
threshold
// direction
})
.test(
'are-fields-set',
'Invalid values',
({ threshold, triggerType }, context) => {
const validator = {
txAmount: threshold => threshold.threshold >= 0,
txVolume: threshold =>
threshold.threshold >= 0 && threshold.thresholdDays > 0,
txVelocity: threshold =>
threshold.threshold > 0 && threshold.thresholdDays > 0,
consecutiveDays: threshold => threshold.thresholdDays > 0
}
return (
(triggerType && validator?.[triggerType](threshold)) ||
context.createError({ path: 'threshold' })
)
}
)
// Direction V2 only
// const directionSchema = Yup.object().shape({ direction })
@ -226,10 +244,10 @@ const typeSchema = Yup.object()
const validator = {
txAmount: threshold => threshold.threshold >= 0,
txVolume: threshold =>
threshold.threshold >= 0 && threshold.thresholdDays >= 0,
threshold.threshold >= 0 && threshold.thresholdDays > 0,
txVelocity: threshold =>
threshold.threshold >= 0 && threshold.thresholdDays >= 0,
consecutiveDays: threshold => threshold.thresholdDays >= 0
threshold.threshold > 0 && threshold.thresholdDays > 0,
consecutiveDays: threshold => threshold.thresholdDays > 0
}
return (
@ -377,7 +395,9 @@ const requirementSchema = Yup.object().shape({
requirement: Yup.string().required(),
suspensionDays: Yup.number().when('requirement', {
is: value => value === 'suspend',
then: Yup.number().required(),
then: Yup.number()
.required()
.min(1),
otherwise: Yup.number()
.nullable()
.transform(() => null)
@ -429,7 +449,7 @@ const Requirement = () => {
{isSuspend && (
<Field
className={classes.thresholdField}
component={TextInput}
component={NumberInput}
label="Days"
size="lg"
name="requirement.suspensionDays"
@ -528,7 +548,7 @@ const DisplayThreshold = ({ config, currency, isEdit }) => {
bold
className={classnames(inputClasses)}
name="threshold.threshold"
component={TextInput}
component={NumberInput}
textAlign="right"
/>
) : (
@ -539,7 +559,7 @@ const DisplayThreshold = ({ config, currency, isEdit }) => {
bold
className={classnames(inputClasses)}
name="threshold.thresholdDays"
component={TextInput}
component={NumberInput}
textAlign="right"
/>
) : (

View file

@ -17,7 +17,7 @@ import AuthRegister from 'src/pages/AuthRegister'
import Blacklist from 'src/pages/Blacklist'
import Cashout from 'src/pages/Cashout'
import Commissions from 'src/pages/Commissions'
import ConfigMigration from 'src/pages/ConfigMigration'
// import ConfigMigration from 'src/pages/ConfigMigration'
import { Customers, CustomerProfile } from 'src/pages/Customers'
import Dashboard from 'src/pages/Dashboard'
import Funding from 'src/pages/Funding'
@ -320,7 +320,7 @@ const Routes = () => {
<Route path="/machines" component={Machines} />
<Route path="/wizard" component={Wizard} />
<Route path="/register" component={AuthRegister} />
<Route path="/configmigration" component={ConfigMigration} />
{/* <Route path="/configmigration" component={ConfigMigration} /> */}
{flattened.map(({ route, component: Page, key }) => (
<Route path={route} key={key}>
<Transition

2
package-lock.json generated
View file

@ -1,6 +1,6 @@
{
"name": "lamassu-server",
"version": "7.5.0-beta.2",
"version": "7.5.0-beta.3",
"lockfileVersion": 1,
"requires": true,
"dependencies": {

View file

@ -2,7 +2,7 @@
"name": "lamassu-server",
"description": "bitcoin atm client server protocol module",
"keywords": [],
"version": "7.5.0-beta.2",
"version": "7.5.0-beta.3",
"license": "Unlicense",
"author": "Lamassu (https://lamassu.is)",
"dependencies": {

View file

@ -1,15 +1,16 @@
{
"files": {
"main.js": "/static/js/main.c5b482a9.chunk.js",
"main.js.map": "/static/js/main.c5b482a9.chunk.js.map",
"runtime-main.js": "/static/js/runtime-main.f0000622.js",
"runtime-main.js.map": "/static/js/runtime-main.f0000622.js.map",
"static/js/2.c456abde.chunk.js": "/static/js/2.c456abde.chunk.js",
"static/js/2.c456abde.chunk.js.map": "/static/js/2.c456abde.chunk.js.map",
"main.js": "/static/js/main.b833e621.chunk.js",
"main.js.map": "/static/js/main.b833e621.chunk.js.map",
"runtime-main.js": "/static/js/runtime-main.ee1cbb9c.js",
"runtime-main.js.map": "/static/js/runtime-main.ee1cbb9c.js.map",
"static/js/2.346a7f7f.chunk.js": "/static/js/2.346a7f7f.chunk.js",
"static/js/2.346a7f7f.chunk.js.map": "/static/js/2.346a7f7f.chunk.js.map",
"index.html": "/index.html",
"static/js/2.c456abde.chunk.js.LICENSE.txt": "/static/js/2.c456abde.chunk.js.LICENSE.txt",
"static/js/2.346a7f7f.chunk.js.LICENSE.txt": "/static/js/2.346a7f7f.chunk.js.LICENSE.txt",
"static/media/cash-in.c06970a7.svg": "/static/media/cash-in.c06970a7.svg",
"static/media/cash-out.f029ae96.svg": "/static/media/cash-out.f029ae96.svg",
"static/media/cashbox-empty.828bd3b9.svg": "/static/media/cashbox-empty.828bd3b9.svg",
"static/media/cashout-cassette-1.fac6c691.svg": "/static/media/cashout-cassette-1.fac6c691.svg",
"static/media/cashout-cassette-2.34a98cfa.svg": "/static/media/cashout-cassette-2.34a98cfa.svg",
"static/media/closed.b853a619.svg": "/static/media/closed.b853a619.svg",
@ -22,12 +23,16 @@
"static/media/current.9bbfa93f.svg": "/static/media/current.9bbfa93f.svg",
"static/media/disabled.347e2b5e.svg": "/static/media/disabled.347e2b5e.svg",
"static/media/disabled.aede2073.svg": "/static/media/disabled.aede2073.svg",
"static/media/down.919a0c2a.svg": "/static/media/down.919a0c2a.svg",
"static/media/download_logs.219c88ac.svg": "/static/media/download_logs.219c88ac.svg",
"static/media/empty-table.250884a9.svg": "/static/media/empty-table.250884a9.svg",
"static/media/empty.631601f2.svg": "/static/media/empty.631601f2.svg",
"static/media/empty.862ae4bb.svg": "/static/media/empty.862ae4bb.svg",
"static/media/enabled.5aae4510.svg": "/static/media/enabled.5aae4510.svg",
"static/media/enabled.a058fdfc.svg": "/static/media/enabled.a058fdfc.svg",
"static/media/equal.f4103789.svg": "/static/media/equal.f4103789.svg",
"static/media/false.7f926859.svg": "/static/media/false.7f926859.svg",
"static/media/full.67b8cd67.svg": "/static/media/full.67b8cd67.svg",
"static/media/icon-bitcoin-colour.bd8da481.svg": "/static/media/icon-bitcoin-colour.bd8da481.svg",
"static/media/icon-bitcoincash-colour.3b27f3ed.svg": "/static/media/icon-bitcoincash-colour.3b27f3ed.svg",
"static/media/icon-dash-colour.e01c021b.svg": "/static/media/icon-dash-colour.e01c021b.svg",
@ -37,17 +42,24 @@
"static/media/logo.8ee79eab.svg": "/static/media/logo.8ee79eab.svg",
"static/media/month_change.58940268.svg": "/static/media/month_change.58940268.svg",
"static/media/month_change_right.0c3eb9a1.svg": "/static/media/month_change_right.0c3eb9a1.svg",
"static/media/notification-zodiac.e2897b39.svg": "/static/media/notification-zodiac.e2897b39.svg",
"static/media/notification.a9712ffd.svg": "/static/media/notification.a9712ffd.svg",
"static/media/open.7196c113.svg": "/static/media/open.7196c113.svg",
"static/media/pumpkin.877c3432.svg": "/static/media/pumpkin.877c3432.svg",
"static/media/regular.3140e691.svg": "/static/media/regular.3140e691.svg",
"static/media/right.d3dd4af6.svg": "/static/media/right.d3dd4af6.svg",
"static/media/spring2.9f3bb2f7.svg": "/static/media/spring2.9f3bb2f7.svg",
"static/media/stripes.876e4081.svg": "/static/media/stripes.876e4081.svg",
"static/media/tomato.4b561f6f.svg": "/static/media/tomato.4b561f6f.svg",
"static/media/tomato.b3903800.svg": "/static/media/tomato.b3903800.svg",
"static/media/transaction.d1309f34.svg": "/static/media/transaction.d1309f34.svg",
"static/media/true.8e532da3.svg": "/static/media/true.8e532da3.svg",
"static/media/up.bcdf0fc7.svg": "/static/media/up.bcdf0fc7.svg",
"static/media/white.024587b7.svg": "/static/media/white.024587b7.svg",
"static/media/white.06f073be.svg": "/static/media/white.06f073be.svg",
"static/media/white.20ca66ec.svg": "/static/media/white.20ca66ec.svg",
"static/media/white.41439910.svg": "/static/media/white.41439910.svg",
"static/media/white.51296906.svg": "/static/media/white.51296906.svg",
"static/media/white.57984891.svg": "/static/media/white.57984891.svg",
"static/media/white.5f161f2c.svg": "/static/media/white.5f161f2c.svg",
"static/media/white.81edd31f.svg": "/static/media/white.81edd31f.svg",
"static/media/white.958fe55d.svg": "/static/media/white.958fe55d.svg",
@ -68,20 +80,22 @@
"static/media/zodiac.3b13c0b7.svg": "/static/media/zodiac.3b13c0b7.svg",
"static/media/zodiac.4467d30c.svg": "/static/media/zodiac.4467d30c.svg",
"static/media/zodiac.5547e32c.svg": "/static/media/zodiac.5547e32c.svg",
"static/media/zodiac.56f832ee.svg": "/static/media/zodiac.56f832ee.svg",
"static/media/zodiac.6cff3051.svg": "/static/media/zodiac.6cff3051.svg",
"static/media/zodiac.91792e22.svg": "/static/media/zodiac.91792e22.svg",
"static/media/zodiac.96d45453.svg": "/static/media/zodiac.96d45453.svg",
"static/media/zodiac.9cfc97dd.svg": "/static/media/zodiac.9cfc97dd.svg",
"static/media/zodiac.a976fef2.svg": "/static/media/zodiac.a976fef2.svg",
"static/media/zodiac.aa028a2c.svg": "/static/media/zodiac.aa028a2c.svg",
"static/media/zodiac.b27733af.svg": "/static/media/zodiac.b27733af.svg",
"static/media/zodiac.bb7722c5.svg": "/static/media/zodiac.bb7722c5.svg",
"static/media/zodiac.cdf82496.svg": "/static/media/zodiac.cdf82496.svg",
"static/media/zodiac.d95e9bb2.svg": "/static/media/zodiac.d95e9bb2.svg"
"static/media/zodiac.d95e9bb2.svg": "/static/media/zodiac.d95e9bb2.svg",
"static/media/zodiac.e161cf6b.svg": "/static/media/zodiac.e161cf6b.svg",
"static/media/zodiac.f9cb5ba2.svg": "/static/media/zodiac.f9cb5ba2.svg"
},
"entrypoints": [
"static/js/runtime-main.f0000622.js",
"static/js/2.c456abde.chunk.js",
"static/js/main.c5b482a9.chunk.js"
"static/js/runtime-main.ee1cbb9c.js",
"static/js/2.346a7f7f.chunk.js",
"static/js/main.b833e621.chunk.js"
]
}

View file

@ -1 +1 @@
<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="shortcut icon" href="/favicon.ico"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta name="theme-color" content="#000000"/><link rel="manifest" href="/manifest.json"/><title>Lamassu Admin</title></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root" class="root"></div><script>!function(e){function r(r){for(var n,a,l=r[0],i=r[1],f=r[2],c=0,s=[];c<l.length;c++)a=l[c],Object.prototype.hasOwnProperty.call(o,a)&&o[a]&&s.push(o[a][0]),o[a]=0;for(n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n]);for(p&&p(r);s.length;)s.shift()();return u.push.apply(u,f||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,l=1;l<t.length;l++){var i=t[l];0!==o[i]&&(n=!1)}n&&(u.splice(r--,1),e=a(a.s=t[0]))}return e}var n={},o={1:0},u=[];function a(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,a),t.l=!0,t.exports}a.m=e,a.c=n,a.d=function(e,r,t){a.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},a.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.t=function(e,r){if(1&r&&(e=a(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(a.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var n in e)a.d(t,n,function(r){return e[r]}.bind(null,n));return t},a.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return a.d(r,"a",r),r},a.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},a.p="/";var l=this["webpackJsonplamassu-admin"]=this["webpackJsonplamassu-admin"]||[],i=l.push.bind(l);l.push=r,l=l.slice();for(var f=0;f<l.length;f++)r(l[f]);var p=i;t()}([])</script><script src="/static/js/2.c456abde.chunk.js"></script><script src="/static/js/main.c5b482a9.chunk.js"></script></body></html>
<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="shortcut icon" href="/favicon.ico"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta name="robots" content="noindex"/><meta name="theme-color" content="#000000"/><link rel="manifest" href="/manifest.json"/><title>Lamassu Admin</title></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root" class="root"></div><script>!function(e){function r(r){for(var n,a,l=r[0],i=r[1],f=r[2],c=0,s=[];c<l.length;c++)a=l[c],Object.prototype.hasOwnProperty.call(o,a)&&o[a]&&s.push(o[a][0]),o[a]=0;for(n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n]);for(p&&p(r);s.length;)s.shift()();return u.push.apply(u,f||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,l=1;l<t.length;l++){var i=t[l];0!==o[i]&&(n=!1)}n&&(u.splice(r--,1),e=a(a.s=t[0]))}return e}var n={},o={1:0},u=[];function a(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,a),t.l=!0,t.exports}a.m=e,a.c=n,a.d=function(e,r,t){a.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},a.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.t=function(e,r){if(1&r&&(e=a(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(a.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var n in e)a.d(t,n,function(r){return e[r]}.bind(null,n));return t},a.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return a.d(r,"a",r),r},a.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},a.p="/";var l=this["webpackJsonplamassu-admin"]=this["webpackJsonplamassu-admin"]||[],i=l.push.bind(l);l.push=r,l=l.slice();for(var f=0;f<l.length;f++)r(l[f]);var p=i;t()}([])</script><script src="/static/js/2.346a7f7f.chunk.js"></script><script src="/static/js/main.b833e621.chunk.js"></script></body></html>

File diff suppressed because one or more lines are too long

View file

@ -32,21 +32,6 @@ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
***************************************************************************** */
/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0
THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.
See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */
/**
* @license
* Lodash <https://lodash.com/>
@ -64,15 +49,6 @@ and limitations under the License.
* @license MIT
*/
/** @license React v0.16.2
* scheduler.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
/** @license React v0.18.0
* scheduler.production.min.js
*
@ -82,7 +58,25 @@ and limitations under the License.
* LICENSE file in the root directory of this source tree.
*/
/** @license React v16.10.2
/** @license React v0.19.1
* scheduler.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
/** @license React v16.13.1
* react-is.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
/** @license React v16.14.0
* react-dom.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
@ -91,8 +85,8 @@ and limitations under the License.
* LICENSE file in the root directory of this source tree.
*/
/** @license React v16.10.2
* react-is.production.min.js
/** @license React v16.14.0
* react-jsx-runtime.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
@ -100,7 +94,7 @@ and limitations under the License.
* LICENSE file in the root directory of this source tree.
*/
/** @license React v16.12.0
/** @license React v16.14.0
* react.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
@ -109,15 +103,6 @@ and limitations under the License.
* LICENSE file in the root directory of this source tree.
*/
/** @license React v16.8.4
* react-is.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
/**!
* @fileOverview Kickass library to create and place poppers near their reference elements.
* @version 1.16.1-lts

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1,2 +1,2 @@
!function(e){function r(r){for(var n,a,l=r[0],i=r[1],f=r[2],c=0,s=[];c<l.length;c++)a=l[c],Object.prototype.hasOwnProperty.call(o,a)&&o[a]&&s.push(o[a][0]),o[a]=0;for(n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n]);for(p&&p(r);s.length;)s.shift()();return u.push.apply(u,f||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,l=1;l<t.length;l++){var i=t[l];0!==o[i]&&(n=!1)}n&&(u.splice(r--,1),e=a(a.s=t[0]))}return e}var n={},o={1:0},u=[];function a(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,a),t.l=!0,t.exports}a.m=e,a.c=n,a.d=function(e,r,t){a.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},a.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.t=function(e,r){if(1&r&&(e=a(e)),8&r)return e;if(4&r&&"object"===typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(a.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var n in e)a.d(t,n,function(r){return e[r]}.bind(null,n));return t},a.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return a.d(r,"a",r),r},a.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},a.p="/";var l=this["webpackJsonplamassu-admin"]=this["webpackJsonplamassu-admin"]||[],i=l.push.bind(l);l.push=r,l=l.slice();for(var f=0;f<l.length;f++)r(l[f]);var p=i;t()}([]);
//# sourceMappingURL=runtime-main.f0000622.js.map
//# sourceMappingURL=runtime-main.ee1cbb9c.js.map

View file

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="16px" height="16px" viewBox="0 0 16 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>07E3DD15-D5E4-46A8-BF7B-064F598230CE</title>
<g id="DASHBOARD" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="dashboard_v9#1-(week)" transform="translate(-772.000000, -212.000000)">
<g id="dashboard/row/alert/positive" transform="translate(756.000000, 204.000000)">
<g id="Group-2" transform="translate(16.000000, 8.000000)">
<polygon id="Rectangle-2-Copy-45" fill="#FF584A" fill-rule="nonzero" points="0 11 16 11 16 16 0 16"></polygon>
<rect id="Rectangle-Copy-10" stroke="#FF584A" stroke-width="2" x="1" y="1" width="14" height="14"></rect>
</g>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 909 B

View file

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="12px" height="12px" viewBox="0 0 12 12" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="icon/label/icon/down" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="Group-6">
<circle id="Oval" fill="#FFECEB" cx="6" cy="6" r="6"></circle>
<g id="Group-5" transform="translate(6.096194, 6.096194) rotate(-315.000000) translate(-6.096194, -6.096194) translate(2.596194, 3.096194)" stroke="#FF584A">
<polyline id="Path-2" points="3.15780333 -4.54747351e-13 6.15780333 2.82998193 3.15780333 5.65996386"></polyline>
<line x1="5.42178888" y1="2.82998193" x2="-5.45696821e-13" y2="2.82998193" id="Path-3"></line>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 838 B

View file

@ -0,0 +1,49 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="160px" height="160px" viewBox="0 0 160 160" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<circle id="path-100" cx="80" cy="80" r="80"></circle>
<rect id="path-300" x="28" y="44" width="104" height="116" rx="4"></rect>
<filter x="-23.1%" y="-20.7%" width="146.2%" height="141.4%" filterUnits="objectBoundingBox" id="filter-4">
<feOffset dx="0" dy="0" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
<feGaussianBlur stdDeviation="8" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
<feColorMatrix values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.08 0" type="matrix" in="shadowBlurOuter1"></feColorMatrix>
</filter>
<rect id="path-5" x="37" y="66" width="84" height="8" rx="2"></rect>
<mask id="mask-6" maskContentUnits="userSpaceOnUse" maskUnits="objectBoundingBox" x="0" y="0" width="84" height="8" fill="white">
<use xlink:href="#path-5"></use>
</mask>
<rect id="path-7" x="37" y="78" width="84" height="8" rx="2"></rect>
<mask id="mask-8" maskContentUnits="userSpaceOnUse" maskUnits="objectBoundingBox" x="0" y="0" width="84" height="8" fill="white">
<use xlink:href="#path-7"></use>
</mask>
<rect id="path-9" x="37" y="90" width="84" height="8" rx="2"></rect>
<mask id="mask-10" maskContentUnits="userSpaceOnUse" maskUnits="objectBoundingBox" x="0" y="0" width="84" height="8" fill="white">
<use xlink:href="#path-9"></use>
</mask>
<rect id="path-11" x="37" y="102" width="84" height="8" rx="2"></rect>
<mask id="mask-12" maskContentUnits="userSpaceOnUse" maskUnits="objectBoundingBox" x="0" y="0" width="84" height="8" fill="white">
<use xlink:href="#path-11"></use>
</mask>
</defs>
<g id="↳-v13a" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="transactions_v13a#1-(empty-table)" transform="translate(-640.000000, -220.000000)">
<g id="Group-2" transform="translate(640.000000, 220.000000)">
<g id="Rectangle">
<mask id="mask-200" fill="white">
<use xlink:href="#path-100"></use>
</mask>
<use id="Mask" fill="#EBEFFF" xlink:href="#path-100"></use>
<g mask="url(#mask-200)">
<use fill="black" fill-opacity="1" filter="url(#filter-4)" xlink:href="#path-300"></use>
<use fill="#FFFFFF" fill-rule="evenodd" xlink:href="#path-300"></use>
</g>
</g>
<use id="Rectangle" stroke="#5F668A" mask="url(#mask-6)" stroke-dasharray="1" xlink:href="#path-5"></use>
<use id="Rectangle-Copy" stroke="#5F668A" mask="url(#mask-8)" stroke-dasharray="1" xlink:href="#path-7"></use>
<use id="Rectangle-Copy-2" stroke="#5F668A" mask="url(#mask-10)" stroke-dasharray="1" xlink:href="#path-9"></use>
<use id="Rectangle-Copy-3" stroke="#5F668A" mask="url(#mask-12)" stroke-dasharray="1" xlink:href="#path-11"></use>
<rect id="Rectangle" fill="#EBEFFF" x="37" y="56" width="84" height="6" rx="2"></rect>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.3 KiB

View file

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="12px" height="12px" viewBox="0 0 12 12" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="icon/label/icon/equal" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="Group-6" fill="#EBEFFF">
<circle id="Oval" cx="6" cy="6" r="6"></circle>
</g>
<g id="Group" transform="translate(4.000000, 4.000000)" stroke="#5F668A" stroke-linecap="square">
<line x1="0" y1="1" x2="4" y2="1" id="Line-12"></line>
<line x1="0" y1="3" x2="4" y2="3" id="Line-12"></line>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 664 B

View file

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="18px" height="18px" viewBox="0 0 18 18" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<!-- Generator: Sketch 63.1 (92452) - https://sketch.com -->
<desc>Created with Sketch.</desc>
<g id="icon/stage/zodiac/full" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<circle id="Oval-2-Copy" fill="#1B2559" cx="9" cy="9" r="8"></circle>
<circle id="Oval-Copy-5" stroke="#1B2559" stroke-width="2" transform="translate(9.000000, 9.000000) rotate(-270.000000) translate(-9.000000, -9.000000) " cx="9" cy="9" r="8"></circle>
</g>
</svg>

After

Width:  |  Height:  |  Size: 671 B

View file

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="18px" height="18px" viewBox="0 0 18 18" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<!-- Generator: Sketch 60.1 (88133) - https://sketch.com -->
<desc>Created with Sketch.</desc>
<g id="Symbols" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="nav-/-primary-/-1440" transform="translate(-1295.000000, -19.000000)" stroke="#1B2559" stroke-width="2">
<g id="icon/menu/notification" transform="translate(1296.000000, 20.000000)">
<path d="M10.1052632,14.3157895 C10.1052632,15.2454737 9.35073684,16 8.42105263,16 C7.49136842,16 6.73684211,15.2454737 6.73684211,14.3157895" id="Stroke-1"></path>
<path d="M1.6,14.3157895 C0.7168,14.3157895 0,13.6031813 0,12.7251462 C0,11.8471111 0.7168,11.1345029 1.6,11.1345029 L1.6,6.3625731 C1.6,2.84884211 4.4656,0 8,0 C11.5344,0 14.4,2.84884211 14.4,6.3625731 L14.4,11.1345029 C15.2832,11.1345029 16,11.8471111 16,12.7251462 C16,13.6031813 15.2832,14.3157895 14.4,14.3157895 L1.6,14.3157895 Z" id="Stroke-3" stroke-linejoin="round"></path>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

View file

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="18px" height="18px" viewBox="0 0 18 18" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<!-- Generator: Sketch 60.1 (88133) - https://sketch.com -->
<desc>Created with Sketch.</desc>
<g id="Symbols" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="nav-/-primary-/-1440" transform="translate(-1295.000000, -19.000000)" stroke="#FFFFFF" stroke-width="2">
<g id="icon/menu/notification" transform="translate(1296.000000, 20.000000)">
<path d="M10.1052632,14.3157895 C10.1052632,15.2454737 9.35073684,16 8.42105263,16 C7.49136842,16 6.73684211,15.2454737 6.73684211,14.3157895" id="Stroke-1"></path>
<path d="M1.6,14.3157895 C0.7168,14.3157895 0,13.6031813 0,12.7251462 C0,11.8471111 0.7168,11.1345029 1.6,11.1345029 L1.6,6.3625731 C1.6,2.84884211 4.4656,0 8,0 C11.5344,0 14.4,2.84884211 14.4,6.3625731 L14.4,11.1345029 C15.2832,11.1345029 16,11.8471111 16,12.7251462 C16,13.6031813 15.2832,14.3157895 14.4,14.3157895 L1.6,14.3157895 Z" id="Stroke-3" stroke-linejoin="round"></path>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

View file

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="20px" height="20px" viewBox="0 0 20 20" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<circle id="path-1-right" cx="10" cy="10" r="10"></circle>
</defs>
<g id="Symbols" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="pop-up/action/download-logs/date-range-copy-2" transform="translate(-232.000000, -187.000000)">
<g id="icon/sf-contain-b-copy-4" transform="translate(242.000000, 197.000000) scale(-1, 1) rotate(-270.000000) translate(-242.000000, -197.000000) translate(232.000000, 187.000000)">
<mask id="mask-2" fill="white">
<use xlink:href="#path-1-right"></use>
</mask>
<use id="Mask" fill="#EBEFFF" fill-rule="nonzero" xlink:href="#path-1-right"></use>
<g id="icon/sf-small/wizzard" mask="url(#mask-2)" stroke-linecap="round" stroke-linejoin="round">
<g transform="translate(6.666667, 6.000000)" id="Group">
<g>
<polyline id="Path-3" stroke="#1B2559" stroke-width="2" points="0 4.83333333 3.33333333 8.16666667 6.66666667 4.83333333"></polyline>
<line x1="3.33333333" y1="0.25" x2="3.33333333" y2="6.5" id="Path-4" stroke="#1B2559" stroke-width="2"></line>
</g>
</g>
</g>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

View file

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="12" height="12" viewBox="0 0 12 12" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<rect width="12" height="12" rx="3" ry="3" fill="#44e188"/>
</svg>

After

Width:  |  Height:  |  Size: 250 B

View file

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24px" height="24px" viewBox="0 0 18 18" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="↳-notification-center" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round">
<g id="notification-center_v01a#1-(marked-one-as-read)" transform="translate(-1023.000000, -123.000000)" stroke="#1B2559">
<g id="Group-5" transform="translate(1000.000000, 0.000000)">
<g id="Group-4" transform="translate(24.000000, 124.000000)">
<g id="Group-3">
<line x1="0" y1="4" x2="16" y2="4" id="Path-2"></line>
<polyline id="Path-3" points="12 0 16 4 12 8"></polyline>
</g>
<g id="Group-2" transform="translate(8.000000, 12.000000) scale(-1, 1) translate(-8.000000, -12.000000) translate(0.000000, 8.000000)">
<line x1="0" y1="4" x2="16" y2="4" id="Path-2-Copy"></line>
<polyline id="Path-3-Copy" points="12 0 16 4 12 8"></polyline>
</g>
</g>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

View file

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="12px" height="12px" viewBox="0 0 12 12" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="icon/label/icon/up" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="Group-6">
<circle id="Oval" fill="#ECFBEF" cx="6" cy="6" r="6"></circle>
<g id="Group-5" transform="translate(6.096194, 6.096194) rotate(-45.000000) translate(-6.096194, -6.096194) translate(2.596194, 3.096194)" stroke="#00CD5A">
<polyline id="Path-2" points="3.15780333 -4.54747351e-13 6.15780333 2.82998193 3.15780333 5.65996386"></polyline>
<line x1="5.42178888" y1="2.82998193" x2="-5.45696821e-13" y2="2.82998193" id="Path-3"></line>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 835 B

View file

@ -1,6 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="20px" height="20px" viewBox="0 0 20 20" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>icon/sf-small/law/white</title>
<g id="icon/sf-small/law/white" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="bevel">
<line x1="8.4141" y1="7.4648" x2="14.0711" y2="1.8078" id="Stroke-1" stroke="#FFFFFF" stroke-width="2"></line>
<line x1="12.6568" y1="0.3936" x2="15.4858" y2="3.2216" id="Stroke-3" stroke="#FFFFFF" stroke-width="2"></line>

Before

Width:  |  Height:  |  Size: 1 KiB

After

Width:  |  Height:  |  Size: 1 KiB

Before After
Before After

View file

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="20px" height="20px" viewBox="0 0 20 20" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<!-- Generator: Sketch 60.1 (88133) - https://sketch.com -->
<desc>Created with Sketch.</desc>
<g id="icon/sf-small/listing/white" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round">
<line x1="0" y1="1" x2="20" y2="1" id="Path-4" stroke="#FFFFFF" stroke-width="2"></line>
<line x1="0" y1="7" x2="9" y2="7" id="Path-4-Copy" stroke="#FFFFFF" stroke-width="2"></line>
<line x1="0" y1="13" x2="20" y2="13" id="Path-4-Copy-2" stroke="#FFFFFF" stroke-width="2"></line>
<line x1="0" y1="19" x2="12" y2="19" id="Path-4-Copy-3" stroke="#FFFFFF" stroke-width="2"></line>
</g>
</svg>

After

Width:  |  Height:  |  Size: 863 B

View file

@ -1,6 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="20px" height="20px" viewBox="0 0 20 20" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>icon/sf-small/law/zodiac</title>
<g id="icon/sf-small/law/zodiac" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="bevel">
<line x1="8.4141" y1="7.4648" x2="14.0711" y2="1.8078" id="Stroke-1" stroke="#1B2559" stroke-width="2"></line>
<line x1="12.6568" y1="0.3936" x2="15.4858" y2="3.2216" id="Stroke-3" stroke="#1B2559" stroke-width="2"></line>

Before

Width:  |  Height:  |  Size: 1 KiB

After

Width:  |  Height:  |  Size: 1 KiB

Before After
Before After

View file

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="20px" height="20px" viewBox="0 0 20 20" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<!-- Generator: Sketch 60.1 (88133) - https://sketch.com -->
<desc>Created with Sketch.</desc>
<g id="icon/sf-small/listing/zodiac" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round">
<line x1="0" y1="1" x2="20" y2="1" id="Path-4" stroke="#1B2559" stroke-width="2"></line>
<line x1="0" y1="7" x2="9" y2="7" id="Path-4-Copy" stroke="#1B2559" stroke-width="2"></line>
<line x1="0" y1="13" x2="20" y2="13" id="Path-4-Copy-2" stroke="#1B2559" stroke-width="2"></line>
<line x1="0" y1="19" x2="12" y2="19" id="Path-4-Copy-3" stroke="#1B2559" stroke-width="2"></line>
</g>
</svg>

After

Width:  |  Height:  |  Size: 864 B

View file

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="32px" height="32px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="↳-notification-center" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round">
<g id="notification-center_v01a#2-(open)" transform="translate(-1023.000000, -459.000000)" stroke="#1B2559">
<g id="Group-5" transform="translate(1000.000000, 0.000000)">
<g id="icon/sf-small/wrench" transform="translate(24.000000, 460.000000)">
<path d="M15.7602493,3.10720971 L13.1962412,5.67121772 L10.3290323,5.67121772 L10.3290323,2.80400876 L12.8930403,0.24000075 C12.4378389,0.0872002725 11.9506373,0 11.4434358,0 C8.9282279,0 6.88822153,2.04000637 6.88822153,4.55681424 C6.88822153,5.08081588 6.98102182,5.58321745 7.14422233,6.05201891 L0.580201813,12.6168394 C-0.193400604,13.3904418 -0.193400604,14.6456458 0.580201813,15.4200482 C1.35460423,16.1936506 2.60980816,16.1936506 3.38341057,15.4200482 L9.94823109,8.85602767 C10.4170326,9.01922818 10.9186341,9.11202847 11.4434358,9.11202847 C13.9602436,9.11202847 16.00025,7.0720221 16.00025,4.55681424 C16.00025,4.04961265 15.9130497,3.56241113 15.7602493,3.10720971 Z" id="Stroke-1"></path>
</g>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.4 KiB