angular material icons added and loaded locally
|
@ -87,9 +87,9 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@adobe/css-tools": {
|
||||
"version": "4.3.1",
|
||||
"resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.3.1.tgz",
|
||||
"integrity": "sha512-/62yikz7NLScCGAAST5SHdnjaDJQBDq0M2muyRTpf2VQhw6StBg2ALiu73zSJQ4fMVLA+0uBhBHAle7Wg+2kSg==",
|
||||
"version": "4.3.2",
|
||||
"resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.3.2.tgz",
|
||||
"integrity": "sha512-DA5a1C0gD/pLOvhv33YMrbf2FK3oUzwNl9oOJqE4XVjuEtt6XIakRcsd7eLiOSPkp1kTRQGICTA8cKra/vFbjw==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@ampproject/remapping": {
|
||||
|
@ -1826,6 +1826,7 @@
|
|||
"version": "7.22.5",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz",
|
||||
"integrity": "sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@babel/template": "^7.22.5",
|
||||
"@babel/types": "^7.22.5"
|
||||
|
@ -1838,6 +1839,7 @@
|
|||
"version": "7.22.5",
|
||||
"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.5.tgz",
|
||||
"integrity": "sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@babel/code-frame": "^7.22.5",
|
||||
"@babel/parser": "^7.22.5",
|
||||
|
@ -3383,18 +3385,18 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@babel/traverse": {
|
||||
"version": "7.22.5",
|
||||
"resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.5.tgz",
|
||||
"integrity": "sha512-7DuIjPgERaNo6r+PZwItpjCZEa5vyw4eJGufeLxrPdBXBoLcCJCIasvK6pK/9DVNrLZTLFhUGqaC6X/PA007TQ==",
|
||||
"version": "7.23.5",
|
||||
"resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.5.tgz",
|
||||
"integrity": "sha512-czx7Xy5a6sapWWRx61m1Ke1Ra4vczu1mCTtJam5zRTBOonfdJ+S/B6HYmGYu3fJtr8GGET3si6IhgWVBhJ/m8w==",
|
||||
"dependencies": {
|
||||
"@babel/code-frame": "^7.22.5",
|
||||
"@babel/generator": "^7.22.5",
|
||||
"@babel/helper-environment-visitor": "^7.22.5",
|
||||
"@babel/helper-function-name": "^7.22.5",
|
||||
"@babel/code-frame": "^7.23.5",
|
||||
"@babel/generator": "^7.23.5",
|
||||
"@babel/helper-environment-visitor": "^7.22.20",
|
||||
"@babel/helper-function-name": "^7.23.0",
|
||||
"@babel/helper-hoist-variables": "^7.22.5",
|
||||
"@babel/helper-split-export-declaration": "^7.22.5",
|
||||
"@babel/parser": "^7.22.5",
|
||||
"@babel/types": "^7.22.5",
|
||||
"@babel/helper-split-export-declaration": "^7.22.6",
|
||||
"@babel/parser": "^7.23.5",
|
||||
"@babel/types": "^7.23.5",
|
||||
"debug": "^4.1.0",
|
||||
"globals": "^11.1.0"
|
||||
},
|
||||
|
@ -3402,12 +3404,24 @@
|
|||
"node": ">=6.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/traverse/node_modules/@babel/generator": {
|
||||
"version": "7.22.5",
|
||||
"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.5.tgz",
|
||||
"integrity": "sha512-+lcUbnTRhd0jOewtFSedLyiPsD5tswKkbgcezOqqWFUVNEwoUTlpPOBmvhG7OXWLR4jMdv0czPGH5XbflnD1EA==",
|
||||
"node_modules/@babel/traverse/node_modules/@babel/code-frame": {
|
||||
"version": "7.23.5",
|
||||
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz",
|
||||
"integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==",
|
||||
"dependencies": {
|
||||
"@babel/types": "^7.22.5",
|
||||
"@babel/highlight": "^7.23.4",
|
||||
"chalk": "^2.4.2"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/traverse/node_modules/@babel/generator": {
|
||||
"version": "7.23.5",
|
||||
"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.5.tgz",
|
||||
"integrity": "sha512-BPssCHrBD+0YrxviOa3QzpqwhNIXKEtOa2jQrm4FlmkC2apYgRnQcmPWiGZDlGxiNtltnUFolMe8497Esry+jA==",
|
||||
"dependencies": {
|
||||
"@babel/types": "^7.23.5",
|
||||
"@jridgewell/gen-mapping": "^0.3.2",
|
||||
"@jridgewell/trace-mapping": "^0.3.17",
|
||||
"jsesc": "^2.5.1"
|
||||
|
@ -3416,6 +3430,103 @@
|
|||
"node": ">=6.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/traverse/node_modules/@babel/helper-environment-visitor": {
|
||||
"version": "7.22.20",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz",
|
||||
"integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==",
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/traverse/node_modules/@babel/helper-function-name": {
|
||||
"version": "7.23.0",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz",
|
||||
"integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==",
|
||||
"dependencies": {
|
||||
"@babel/template": "^7.22.15",
|
||||
"@babel/types": "^7.23.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/traverse/node_modules/@babel/helper-split-export-declaration": {
|
||||
"version": "7.22.6",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz",
|
||||
"integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==",
|
||||
"dependencies": {
|
||||
"@babel/types": "^7.22.5"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/traverse/node_modules/@babel/helper-string-parser": {
|
||||
"version": "7.23.4",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz",
|
||||
"integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==",
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/traverse/node_modules/@babel/helper-validator-identifier": {
|
||||
"version": "7.22.20",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz",
|
||||
"integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==",
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/traverse/node_modules/@babel/highlight": {
|
||||
"version": "7.23.4",
|
||||
"resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz",
|
||||
"integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==",
|
||||
"dependencies": {
|
||||
"@babel/helper-validator-identifier": "^7.22.20",
|
||||
"chalk": "^2.4.2",
|
||||
"js-tokens": "^4.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/traverse/node_modules/@babel/parser": {
|
||||
"version": "7.23.5",
|
||||
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.5.tgz",
|
||||
"integrity": "sha512-hOOqoiNXrmGdFbhgCzu6GiURxUgM27Xwd/aPuu8RfHEZPBzL1Z54okAHAQjXfcQNwvrlkAmAp4SlRTZ45vlthQ==",
|
||||
"bin": {
|
||||
"parser": "bin/babel-parser.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/traverse/node_modules/@babel/template": {
|
||||
"version": "7.22.15",
|
||||
"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz",
|
||||
"integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==",
|
||||
"dependencies": {
|
||||
"@babel/code-frame": "^7.22.13",
|
||||
"@babel/parser": "^7.22.15",
|
||||
"@babel/types": "^7.22.15"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/traverse/node_modules/@babel/types": {
|
||||
"version": "7.23.5",
|
||||
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.5.tgz",
|
||||
"integrity": "sha512-ON5kSOJwVO6xXVRTvOI0eOnWe7VdUcIpsovGo9U/Br4Ie4UVFQTboO2cYnDhAGU6Fp+UxSiT+pMft0SMHfuq6w==",
|
||||
"dependencies": {
|
||||
"@babel/helper-string-parser": "^7.23.4",
|
||||
"@babel/helper-validator-identifier": "^7.22.20",
|
||||
"to-fast-properties": "^2.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/traverse/node_modules/@jridgewell/gen-mapping": {
|
||||
"version": "0.3.3",
|
||||
"resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz",
|
||||
|
@ -4118,24 +4229,6 @@
|
|||
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
|
||||
}
|
||||
},
|
||||
"node_modules/@isaacs/cliui/node_modules/color-convert": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
|
||||
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"color-name": "~1.1.4"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=7.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@isaacs/cliui/node_modules/color-name": {
|
||||
"version": "1.1.4",
|
||||
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
|
||||
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@isaacs/cliui/node_modules/emoji-regex": {
|
||||
"version": "9.2.2",
|
||||
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
|
||||
|
@ -4159,45 +4252,6 @@
|
|||
"url": "https://github.com/sponsors/sindresorhus"
|
||||
}
|
||||
},
|
||||
"node_modules/@isaacs/cliui/node_modules/string-width-cjs": {
|
||||
"name": "string-width",
|
||||
"version": "4.2.3",
|
||||
"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
|
||||
"integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"emoji-regex": "^8.0.0",
|
||||
"is-fullwidth-code-point": "^3.0.0",
|
||||
"strip-ansi": "^6.0.1"
|
||||
}
|
||||
},
|
||||
"node_modules/@isaacs/cliui/node_modules/string-width-cjs/node_modules/ansi-regex": {
|
||||
"version": "5.0.1",
|
||||
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
|
||||
"integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/@isaacs/cliui/node_modules/string-width-cjs/node_modules/emoji-regex": {
|
||||
"version": "8.0.0",
|
||||
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
|
||||
"integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@isaacs/cliui/node_modules/string-width-cjs/node_modules/strip-ansi": {
|
||||
"version": "6.0.1",
|
||||
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
|
||||
"integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"ansi-regex": "^5.0.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/@isaacs/cliui/node_modules/strip-ansi": {
|
||||
"version": "7.1.0",
|
||||
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
|
||||
|
@ -4213,25 +4267,6 @@
|
|||
"url": "https://github.com/chalk/strip-ansi?sponsor=1"
|
||||
}
|
||||
},
|
||||
"node_modules/@isaacs/cliui/node_modules/strip-ansi-cjs": {
|
||||
"name": "strip-ansi",
|
||||
"version": "6.0.1",
|
||||
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
|
||||
"integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"ansi-regex": "^5.0.1"
|
||||
}
|
||||
},
|
||||
"node_modules/@isaacs/cliui/node_modules/strip-ansi-cjs/node_modules/ansi-regex": {
|
||||
"version": "5.0.1",
|
||||
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
|
||||
"integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/@isaacs/cliui/node_modules/wrap-ansi": {
|
||||
"version": "8.1.0",
|
||||
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
|
||||
|
@ -4249,74 +4284,6 @@
|
|||
"url": "https://github.com/chalk/wrap-ansi?sponsor=1"
|
||||
}
|
||||
},
|
||||
"node_modules/@isaacs/cliui/node_modules/wrap-ansi-cjs": {
|
||||
"name": "wrap-ansi",
|
||||
"version": "7.0.0",
|
||||
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
|
||||
"integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"ansi-styles": "^4.0.0",
|
||||
"string-width": "^4.1.0",
|
||||
"strip-ansi": "^6.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@isaacs/cliui/node_modules/wrap-ansi-cjs/node_modules/ansi-regex": {
|
||||
"version": "5.0.1",
|
||||
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
|
||||
"integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/@isaacs/cliui/node_modules/wrap-ansi-cjs/node_modules/ansi-styles": {
|
||||
"version": "4.3.0",
|
||||
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
|
||||
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"color-convert": "^2.0.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
|
||||
}
|
||||
},
|
||||
"node_modules/@isaacs/cliui/node_modules/wrap-ansi-cjs/node_modules/emoji-regex": {
|
||||
"version": "8.0.0",
|
||||
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
|
||||
"integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@isaacs/cliui/node_modules/wrap-ansi-cjs/node_modules/string-width": {
|
||||
"version": "4.2.3",
|
||||
"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
|
||||
"integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"emoji-regex": "^8.0.0",
|
||||
"is-fullwidth-code-point": "^3.0.0",
|
||||
"strip-ansi": "^6.0.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/@isaacs/cliui/node_modules/wrap-ansi-cjs/node_modules/strip-ansi": {
|
||||
"version": "6.0.1",
|
||||
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
|
||||
"integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"ansi-regex": "^5.0.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/@isaacs/string-locale-compare": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@isaacs/string-locale-compare/-/string-locale-compare-1.1.0.tgz",
|
||||
|
@ -7929,6 +7896,7 @@
|
|||
"version": "2.0.6",
|
||||
"resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz",
|
||||
"integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==",
|
||||
"deprecated": "Use your platform's native atob() and btoa() methods instead",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/abbrev": {
|
||||
|
@ -10902,6 +10870,7 @@
|
|||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz",
|
||||
"integrity": "sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==",
|
||||
"deprecated": "Use your platform's native DOMException instead",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"webidl-conversions": "^7.0.0"
|
||||
|
@ -22666,6 +22635,18 @@
|
|||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/string-width-cjs": {
|
||||
"name": "string-width",
|
||||
"version": "4.2.3",
|
||||
"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
|
||||
"integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"emoji-regex": "^8.0.0",
|
||||
"is-fullwidth-code-point": "^3.0.0",
|
||||
"strip-ansi": "^6.0.1"
|
||||
}
|
||||
},
|
||||
"node_modules/strip-ansi": {
|
||||
"version": "6.0.1",
|
||||
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
|
||||
|
@ -22677,6 +22658,16 @@
|
|||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/strip-ansi-cjs": {
|
||||
"name": "strip-ansi",
|
||||
"version": "6.0.1",
|
||||
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
|
||||
"integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"ansi-regex": "^5.0.1"
|
||||
}
|
||||
},
|
||||
"node_modules/strip-bom": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz",
|
||||
|
@ -24761,6 +24752,51 @@
|
|||
"url": "https://github.com/chalk/wrap-ansi?sponsor=1"
|
||||
}
|
||||
},
|
||||
"node_modules/wrap-ansi-cjs": {
|
||||
"name": "wrap-ansi",
|
||||
"version": "7.0.0",
|
||||
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
|
||||
"integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"ansi-styles": "^4.0.0",
|
||||
"string-width": "^4.1.0",
|
||||
"strip-ansi": "^6.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/wrap-ansi-cjs/node_modules/ansi-styles": {
|
||||
"version": "4.3.0",
|
||||
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
|
||||
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"color-convert": "^2.0.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
|
||||
}
|
||||
},
|
||||
"node_modules/wrap-ansi-cjs/node_modules/color-convert": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
|
||||
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"color-name": "~1.1.4"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=7.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/wrap-ansi-cjs/node_modules/color-name": {
|
||||
"version": "1.1.4",
|
||||
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
|
||||
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/wrap-ansi/node_modules/ansi-styles": {
|
||||
"version": "4.3.0",
|
||||
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
|
||||
|
@ -26007,9 +26043,9 @@
|
|||
},
|
||||
"dependencies": {
|
||||
"@adobe/css-tools": {
|
||||
"version": "4.3.1",
|
||||
"resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.3.1.tgz",
|
||||
"integrity": "sha512-/62yikz7NLScCGAAST5SHdnjaDJQBDq0M2muyRTpf2VQhw6StBg2ALiu73zSJQ4fMVLA+0uBhBHAle7Wg+2kSg==",
|
||||
"version": "4.3.2",
|
||||
"resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.3.2.tgz",
|
||||
"integrity": "sha512-DA5a1C0gD/pLOvhv33YMrbf2FK3oUzwNl9oOJqE4XVjuEtt6XIakRcsd7eLiOSPkp1kTRQGICTA8cKra/vFbjw==",
|
||||
"dev": true
|
||||
},
|
||||
"@ampproject/remapping": {
|
||||
|
@ -27180,6 +27216,7 @@
|
|||
"version": "7.22.5",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz",
|
||||
"integrity": "sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@babel/template": "^7.22.5",
|
||||
"@babel/types": "^7.22.5"
|
||||
|
@ -27189,6 +27226,7 @@
|
|||
"version": "7.22.5",
|
||||
"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.5.tgz",
|
||||
"integrity": "sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@babel/code-frame": "^7.22.5",
|
||||
"@babel/parser": "^7.22.5",
|
||||
|
@ -28259,33 +28297,109 @@
|
|||
}
|
||||
},
|
||||
"@babel/traverse": {
|
||||
"version": "7.22.5",
|
||||
"resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.5.tgz",
|
||||
"integrity": "sha512-7DuIjPgERaNo6r+PZwItpjCZEa5vyw4eJGufeLxrPdBXBoLcCJCIasvK6pK/9DVNrLZTLFhUGqaC6X/PA007TQ==",
|
||||
"version": "7.23.5",
|
||||
"resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.5.tgz",
|
||||
"integrity": "sha512-czx7Xy5a6sapWWRx61m1Ke1Ra4vczu1mCTtJam5zRTBOonfdJ+S/B6HYmGYu3fJtr8GGET3si6IhgWVBhJ/m8w==",
|
||||
"requires": {
|
||||
"@babel/code-frame": "^7.22.5",
|
||||
"@babel/generator": "^7.22.5",
|
||||
"@babel/helper-environment-visitor": "^7.22.5",
|
||||
"@babel/helper-function-name": "^7.22.5",
|
||||
"@babel/code-frame": "^7.23.5",
|
||||
"@babel/generator": "^7.23.5",
|
||||
"@babel/helper-environment-visitor": "^7.22.20",
|
||||
"@babel/helper-function-name": "^7.23.0",
|
||||
"@babel/helper-hoist-variables": "^7.22.5",
|
||||
"@babel/helper-split-export-declaration": "^7.22.5",
|
||||
"@babel/parser": "^7.22.5",
|
||||
"@babel/types": "^7.22.5",
|
||||
"@babel/helper-split-export-declaration": "^7.22.6",
|
||||
"@babel/parser": "^7.23.5",
|
||||
"@babel/types": "^7.23.5",
|
||||
"debug": "^4.1.0",
|
||||
"globals": "^11.1.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"@babel/generator": {
|
||||
"version": "7.22.5",
|
||||
"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.5.tgz",
|
||||
"integrity": "sha512-+lcUbnTRhd0jOewtFSedLyiPsD5tswKkbgcezOqqWFUVNEwoUTlpPOBmvhG7OXWLR4jMdv0czPGH5XbflnD1EA==",
|
||||
"@babel/code-frame": {
|
||||
"version": "7.23.5",
|
||||
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz",
|
||||
"integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==",
|
||||
"requires": {
|
||||
"@babel/types": "^7.22.5",
|
||||
"@babel/highlight": "^7.23.4",
|
||||
"chalk": "^2.4.2"
|
||||
}
|
||||
},
|
||||
"@babel/generator": {
|
||||
"version": "7.23.5",
|
||||
"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.5.tgz",
|
||||
"integrity": "sha512-BPssCHrBD+0YrxviOa3QzpqwhNIXKEtOa2jQrm4FlmkC2apYgRnQcmPWiGZDlGxiNtltnUFolMe8497Esry+jA==",
|
||||
"requires": {
|
||||
"@babel/types": "^7.23.5",
|
||||
"@jridgewell/gen-mapping": "^0.3.2",
|
||||
"@jridgewell/trace-mapping": "^0.3.17",
|
||||
"jsesc": "^2.5.1"
|
||||
}
|
||||
},
|
||||
"@babel/helper-environment-visitor": {
|
||||
"version": "7.22.20",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz",
|
||||
"integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA=="
|
||||
},
|
||||
"@babel/helper-function-name": {
|
||||
"version": "7.23.0",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz",
|
||||
"integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==",
|
||||
"requires": {
|
||||
"@babel/template": "^7.22.15",
|
||||
"@babel/types": "^7.23.0"
|
||||
}
|
||||
},
|
||||
"@babel/helper-split-export-declaration": {
|
||||
"version": "7.22.6",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz",
|
||||
"integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==",
|
||||
"requires": {
|
||||
"@babel/types": "^7.22.5"
|
||||
}
|
||||
},
|
||||
"@babel/helper-string-parser": {
|
||||
"version": "7.23.4",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz",
|
||||
"integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ=="
|
||||
},
|
||||
"@babel/helper-validator-identifier": {
|
||||
"version": "7.22.20",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz",
|
||||
"integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A=="
|
||||
},
|
||||
"@babel/highlight": {
|
||||
"version": "7.23.4",
|
||||
"resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz",
|
||||
"integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==",
|
||||
"requires": {
|
||||
"@babel/helper-validator-identifier": "^7.22.20",
|
||||
"chalk": "^2.4.2",
|
||||
"js-tokens": "^4.0.0"
|
||||
}
|
||||
},
|
||||
"@babel/parser": {
|
||||
"version": "7.23.5",
|
||||
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.5.tgz",
|
||||
"integrity": "sha512-hOOqoiNXrmGdFbhgCzu6GiURxUgM27Xwd/aPuu8RfHEZPBzL1Z54okAHAQjXfcQNwvrlkAmAp4SlRTZ45vlthQ=="
|
||||
},
|
||||
"@babel/template": {
|
||||
"version": "7.22.15",
|
||||
"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz",
|
||||
"integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==",
|
||||
"requires": {
|
||||
"@babel/code-frame": "^7.22.13",
|
||||
"@babel/parser": "^7.22.15",
|
||||
"@babel/types": "^7.22.15"
|
||||
}
|
||||
},
|
||||
"@babel/types": {
|
||||
"version": "7.23.5",
|
||||
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.5.tgz",
|
||||
"integrity": "sha512-ON5kSOJwVO6xXVRTvOI0eOnWe7VdUcIpsovGo9U/Br4Ie4UVFQTboO2cYnDhAGU6Fp+UxSiT+pMft0SMHfuq6w==",
|
||||
"requires": {
|
||||
"@babel/helper-string-parser": "^7.23.4",
|
||||
"@babel/helper-validator-identifier": "^7.22.20",
|
||||
"to-fast-properties": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"@jridgewell/gen-mapping": {
|
||||
"version": "0.3.3",
|
||||
"resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz",
|
||||
|
@ -28750,21 +28864,6 @@
|
|||
"integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
|
||||
"dev": true
|
||||
},
|
||||
"color-convert": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
|
||||
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"color-name": "~1.1.4"
|
||||
}
|
||||
},
|
||||
"color-name": {
|
||||
"version": "1.1.4",
|
||||
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
|
||||
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
|
||||
"dev": true
|
||||
},
|
||||
"emoji-regex": {
|
||||
"version": "9.2.2",
|
||||
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
|
||||
|
@ -28782,40 +28881,6 @@
|
|||
"strip-ansi": "^7.0.1"
|
||||
}
|
||||
},
|
||||
"string-width-cjs": {
|
||||
"version": "npm:string-width@4.2.3",
|
||||
"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
|
||||
"integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"emoji-regex": "^8.0.0",
|
||||
"is-fullwidth-code-point": "^3.0.0",
|
||||
"strip-ansi": "^6.0.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"ansi-regex": {
|
||||
"version": "5.0.1",
|
||||
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
|
||||
"integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
|
||||
"dev": true
|
||||
},
|
||||
"emoji-regex": {
|
||||
"version": "8.0.0",
|
||||
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
|
||||
"integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
|
||||
"dev": true
|
||||
},
|
||||
"strip-ansi": {
|
||||
"version": "6.0.1",
|
||||
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
|
||||
"integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ansi-regex": "^5.0.1"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"strip-ansi": {
|
||||
"version": "7.1.0",
|
||||
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
|
||||
|
@ -28825,23 +28890,6 @@
|
|||
"ansi-regex": "^6.0.1"
|
||||
}
|
||||
},
|
||||
"strip-ansi-cjs": {
|
||||
"version": "npm:strip-ansi@6.0.1",
|
||||
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
|
||||
"integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ansi-regex": "^5.0.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"ansi-regex": {
|
||||
"version": "5.0.1",
|
||||
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
|
||||
"integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"wrap-ansi": {
|
||||
"version": "8.1.0",
|
||||
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
|
||||
|
@ -28852,60 +28900,6 @@
|
|||
"string-width": "^5.0.1",
|
||||
"strip-ansi": "^7.0.1"
|
||||
}
|
||||
},
|
||||
"wrap-ansi-cjs": {
|
||||
"version": "npm:wrap-ansi@7.0.0",
|
||||
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
|
||||
"integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ansi-styles": "^4.0.0",
|
||||
"string-width": "^4.1.0",
|
||||
"strip-ansi": "^6.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"ansi-regex": {
|
||||
"version": "5.0.1",
|
||||
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
|
||||
"integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
|
||||
"dev": true
|
||||
},
|
||||
"ansi-styles": {
|
||||
"version": "4.3.0",
|
||||
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
|
||||
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"color-convert": "^2.0.1"
|
||||
}
|
||||
},
|
||||
"emoji-regex": {
|
||||
"version": "8.0.0",
|
||||
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
|
||||
"integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
|
||||
"dev": true
|
||||
},
|
||||
"string-width": {
|
||||
"version": "4.2.3",
|
||||
"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
|
||||
"integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"emoji-regex": "^8.0.0",
|
||||
"is-fullwidth-code-point": "^3.0.0",
|
||||
"strip-ansi": "^6.0.1"
|
||||
}
|
||||
},
|
||||
"strip-ansi": {
|
||||
"version": "6.0.1",
|
||||
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
|
||||
"integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ansi-regex": "^5.0.1"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -42800,6 +42794,17 @@
|
|||
"strip-ansi": "^6.0.1"
|
||||
}
|
||||
},
|
||||
"string-width-cjs": {
|
||||
"version": "npm:string-width@4.2.3",
|
||||
"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
|
||||
"integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"emoji-regex": "^8.0.0",
|
||||
"is-fullwidth-code-point": "^3.0.0",
|
||||
"strip-ansi": "^6.0.1"
|
||||
}
|
||||
},
|
||||
"strip-ansi": {
|
||||
"version": "6.0.1",
|
||||
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
|
||||
|
@ -42808,6 +42813,15 @@
|
|||
"ansi-regex": "^5.0.1"
|
||||
}
|
||||
},
|
||||
"strip-ansi-cjs": {
|
||||
"version": "npm:strip-ansi@6.0.1",
|
||||
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
|
||||
"integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ansi-regex": "^5.0.1"
|
||||
}
|
||||
},
|
||||
"strip-bom": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz",
|
||||
|
@ -44347,6 +44361,43 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"wrap-ansi-cjs": {
|
||||
"version": "npm:wrap-ansi@7.0.0",
|
||||
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
|
||||
"integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ansi-styles": "^4.0.0",
|
||||
"string-width": "^4.1.0",
|
||||
"strip-ansi": "^6.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"ansi-styles": {
|
||||
"version": "4.3.0",
|
||||
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
|
||||
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"color-convert": "^2.0.1"
|
||||
}
|
||||
},
|
||||
"color-convert": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
|
||||
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"color-name": "~1.1.4"
|
||||
}
|
||||
},
|
||||
"color-name": {
|
||||
"version": "1.1.4",
|
||||
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
|
||||
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"wrappy": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
|
||||
|
|
2
pom.xml
|
@ -15,7 +15,7 @@
|
|||
|
||||
|
||||
|
||||
<groupId>org.gcube.information-system</groupId>
|
||||
<groupId>org.gcube.informationsystem</groupId>
|
||||
<artifactId>information-system-gui</artifactId>
|
||||
<version>1.0.0-SNAPSHOT</version>
|
||||
<packaging>jar</packaging>
|
||||
|
|
|
@ -12,14 +12,18 @@ services:
|
|||
- SPRING_SECURITY_OAUTH2_CLIENT_PROVIDER_OIDC_TOKEN_URI='https://accounts.dev.d4science.org/auth/realms/d4science/protocol/openid-connect/token'
|
||||
- SPRING_SECURITY_OAUTH2_CLIENT_PROVIDER_OIDC_USER_INFO_URI='https://accounts.dev.d4science.org/auth/realms/d4science/protocol/openid-connect/userinfo'
|
||||
- SPRING_SECURITY_OAUTH2_CLIENT_PROVIDER_OIDC_JWK_SET_URI='https://accounts.dev.d4science.org/auth/realms/d4science/protocol/openid-connect/certs'
|
||||
- SPRING_SECURITY_OAUTH2_CLIENT_REGISTRATION_OIDC_CLIENT_ID='web_app'
|
||||
- SPRING_SECURITY_OAUTH2_CLIENT_REGISTRATION_OIDC_CLIENT_SECRET='web_app'
|
||||
- SPRING_SECURITY_OAUTH2_CLIENT_REGISTRATION_OIDC_CLIENT_ID='pc-paratore.isti.cnr.it'
|
||||
- SPRING_SECURITY_OAUTH2_CLIENT_REGISTRATION_OIDC_CLIENT_SECRET='LlyFPtjlHdv95PQ3wb7rYp0PVVDK2fNj'
|
||||
- SPRING_SECURITY_OAUTH2_CLIENT_REGISTRATION_OIDC_SCOPE='openid, profile, email, phone, offline_access' # last one for refresh tokens
|
||||
- JHIPSTER_SLEEP=5 # gives time for other services to boot before the application
|
||||
- LOGGING_LEVEL_ROOT=DEBUG
|
||||
- LOGGING_LEVEL_TECH_JHIPSTER=DEBUG
|
||||
- LOGGING_LEVEL_ORG_GCUBE_INFORMATIONSYSTEM=DEBUG
|
||||
|
||||
# If you want to expose these ports outside your dev PC,
|
||||
# remove the "127.0.0.1:" prefix
|
||||
ports:
|
||||
- 127.0.0.1:8080:8080
|
||||
- 8080:8080
|
||||
# keycloak:
|
||||
# image: quay.io/keycloak/keycloak:19.0.1
|
||||
# command: ['start-dev --import-realm']
|
||||
|
|
|
@ -36,4 +36,4 @@ file_env 'SPRING_LIQUIBASE_USER'
|
|||
file_env 'SPRING_LIQUIBASE_PASSWORD'
|
||||
file_env 'JHIPSTER_REGISTRY_PASSWORD'
|
||||
|
||||
exec java ${JAVA_OPTS} -noverify -XX:+AlwaysPreTouch -Djava.security.egd=file:/dev/./urandom -cp /app/resources/:/app/classes/:/app/libs/* "org.gcube.org.gcube.information-system.InformationSystemGUIApp" "$@"
|
||||
exec java ${JAVA_OPTS} -noverify -XX:+AlwaysPreTouch -Djava.security.egd=file:/dev/./urandom -cp /app/resources/:/app/classes/:/app/libs/* "org.gcube.informationsystem.InformationSystemGUIApp" "$@"
|
||||
|
|
|
@ -14,12 +14,6 @@
|
|||
${AnsiColor.GREEN}███████║ ██║ ███████║ ██║ ███████╗██║ ╚═╝ ██║
|
||||
${AnsiColor.GREEN}╚══════╝ ╚═╝ ╚══════╝ ╚═╝ ╚══════╝╚═╝ ╚═╝
|
||||
|
||||
${AnsiColor.BLUE}███╗ ███╗ ██████╗ ███╗ ██╗██╗████████╗ ██████╗ ██████╗
|
||||
${AnsiColor.BLUE}████╗ ████║██╔═══██╗████╗ ██║██║╚══██╔══╝██╔═══██╗██╔══██╗
|
||||
${AnsiColor.BLUE}██╔████╔██║██║ ██║██╔██╗ ██║██║ ██║ ██║ ██║██████╔╝
|
||||
${AnsiColor.BLUE}██║╚██╔╝██║██║ ██║██║╚██╗██║██║ ██║ ██║ ██║██╔══██╗
|
||||
${AnsiColor.BLUE}██║ ╚═╝ ██║╚██████╔╝██║ ╚████║██║ ██║ ╚██████╔╝██║ ██║
|
||||
${AnsiColor.BLUE}╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═══╝╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝
|
||||
|
||||
${AnsiColor.BRIGHT_YELLOW}:: JHipster 🤓 :: Running Spring Boot ${spring-boot.version} ::
|
||||
:: https://www.jhipster.tech ::${AnsiColor.DEFAULT}
|
||||
|
|
|
@ -15,9 +15,9 @@
|
|||
|
||||
logging:
|
||||
level:
|
||||
ROOT: INFO
|
||||
tech.jhipster: INFO
|
||||
org.gcube.informationsystem: INFO
|
||||
ROOT: DEBUG
|
||||
tech.jhipster: DEBUG
|
||||
org.gcube.informationsystem: DEBUG
|
||||
|
||||
management:
|
||||
metrics:
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
<include resource="org/springframework/boot/logging/logback/base.xml"/>
|
||||
|
||||
<!-- The FILE and ASYNC appenders are here as examples for a production configuration -->
|
||||
<!--
|
||||
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
||||
<fileNamePattern>myLogFile.%d{yyyy-MM-dd}.log</fileNamePattern>
|
||||
|
@ -35,7 +36,7 @@
|
|||
<root level="${logging.level.root}">
|
||||
<appender-ref ref="STDOUT"/>
|
||||
</root>
|
||||
|
||||
-->
|
||||
<logger name="org.springframework" level="WARN"/>
|
||||
<logger name="org.springframework.web" level="WARN"/>
|
||||
<logger name="org.springframework.security" level="WARN"/>
|
||||
|
@ -47,10 +48,12 @@
|
|||
<!-- jhipster-needle-logback-add-log - JHipster will add a new log with level -->
|
||||
|
||||
|
||||
<!-- mt: added for debugging purposes-->
|
||||
<!-- mt: added for debugging purposes
|
||||
<logger name="org.gcube.informationsystem" level="DEBUG">
|
||||
<appender-ref ref="ASYNC"/>
|
||||
</logger>
|
||||
-->
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -45,7 +45,7 @@ describe('ConfigurationComponent', () => {
|
|||
name: 'server.ports',
|
||||
properties: {
|
||||
'local.server.port': {
|
||||
value: '9000',
|
||||
value: '8080',
|
||||
},
|
||||
},
|
||||
},
|
||||
|
|
|
@ -55,7 +55,7 @@ describe('Logs Service', () => {
|
|||
name: 'server.ports',
|
||||
properties: {
|
||||
'local.server.port': {
|
||||
value: '9000',
|
||||
value:'8080',
|
||||
},
|
||||
},
|
||||
},
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
export class appProperties {
|
||||
public static BASEURL_API = "http://localhost:9000/api/";
|
||||
public static BASEURL_API = "http://localhost:8080/api/";
|
||||
|
||||
}
|
|
@ -6,7 +6,7 @@ Main page styles
|
|||
display: inline-block;
|
||||
width: 347px;
|
||||
height: 497px;
|
||||
background: url('../../content/images/jhipster_family_member_1.svg') no-repeat center top;
|
||||
background: url('../../content/images/network.svg') no-repeat center top;
|
||||
background-size: contain;
|
||||
}
|
||||
|
||||
|
@ -17,7 +17,7 @@ Main page styles
|
|||
only screen and (min-resolution: 192dpi),
|
||||
only screen and (min-resolution: 2dppx) {
|
||||
.hipster {
|
||||
background: url('../../content/images/jhipster_family_member_1.svg') no-repeat center top;
|
||||
background: url('../../content/images/network.svg') no-repeat center top;
|
||||
background-size: contain;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -22,6 +22,7 @@
|
|||
</a>
|
||||
</li>
|
||||
<!-- jhipster-needle-add-element-to-menu - JHipster will add new menu items here -->
|
||||
<!--
|
||||
<li *ngSwitchCase="true" ngbDropdown class="nav-item dropdown pointer" display="dynamic"
|
||||
routerLinkActive="active" [routerLinkActiveOptions]="{ exact: true }">
|
||||
<a class="nav-link dropdown-toggle" ngbDropdownToggle href="javascript:void(0);" id="entity-menu"
|
||||
|
@ -32,7 +33,6 @@
|
|||
</span>
|
||||
</a>
|
||||
<ul class="dropdown-menu" ngbDropdownMenu aria-labelledby="entity-menu">
|
||||
<!-- jhipster-needle-add-entity-to-menu - JHipster will add entities to the menu here -->
|
||||
</ul>
|
||||
</li>
|
||||
<li *ngSwitchCase="true" ngbDropdown class="nav-item dropdown pointer" display="dynamic"
|
||||
|
@ -60,7 +60,7 @@
|
|||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</li> -->
|
||||
<li *jhiHasAnyAuthority="'ROLE_ADMIN'" ngbDropdown class="nav-item dropdown pointer" display="dynamic"
|
||||
routerLinkActive="active" [routerLinkActiveOptions]="{ exact: true }">
|
||||
<a class="nav-link dropdown-toggle" ngbDropdownToggle href="javascript:void(0);" id="admin-menu"
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
<mat-tree [dataSource]="nestedDataSource" [treeControl]="nestedTreeControl" class="example-tree">
|
||||
<mat-tree-node *matTreeNodeDef="let node" matTreeNodeToggle>
|
||||
<button mat-button (click)="onClickNodeTree(node)">
|
||||
<mat-tree-node *matTreeNodeDef="let node"
|
||||
[ngClass]="{ 'background-highlight': activeNode === node }" matTreeNodeToggle>
|
||||
<button mat-button (click)="activeNode=node; onClickNodeTree(node)">
|
||||
{{ node.name }}
|
||||
</button>
|
||||
</mat-tree-node>
|
||||
|
|
|
@ -8,8 +8,6 @@
|
|||
padding-bottom: 3%;
|
||||
}
|
||||
|
||||
|
||||
|
||||
.example-tree-invisible {
|
||||
display: none;
|
||||
}
|
||||
|
|
|
@ -17,6 +17,8 @@ export class RscTreeComponent implements OnInit{
|
|||
nestedTreeControl = new NestedTreeControl<IResource>(node => node.children);
|
||||
nestedDataSource = new MatTreeNestedDataSource<IResource>();
|
||||
|
||||
activeNode:any;
|
||||
|
||||
@Output() public resourceTypeEm = new EventEmitter<string>();
|
||||
|
||||
constructor(private rtService:RestypesService) {
|
||||
|
@ -42,6 +44,7 @@ hasNestedChild(_: number, node: IResource): boolean {
|
|||
//TODO: InformationSystemResourceClient shoud pass a code, not a name!
|
||||
onClickNodeTree(node:IResource):void{
|
||||
this.resourceTypeEm.emit(node.name);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
|
80
src/main/webapp/assets/material-design-icons-iconfont/.github/workflows/build-and-deploy.yml
vendored
Normal file
|
@ -0,0 +1,80 @@
|
|||
name: Build and Deploy to NPM
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ master ]
|
||||
|
||||
jobs:
|
||||
build:
|
||||
name: Build and Release
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- uses: actions/setup-node@v1
|
||||
with:
|
||||
node-version: '12'
|
||||
|
||||
- name: Get Semantic Release Info
|
||||
id: semantic_release_info
|
||||
uses: jossef/action-semantic-release-info@v1
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ github.token }}
|
||||
|
||||
- name: Update package.json version
|
||||
if: ${{ steps.semantic_release_info.outputs.version }}
|
||||
uses: jossef/action-set-json-field@v1
|
||||
with:
|
||||
file: package.json
|
||||
field: version
|
||||
value: ${{ steps.semantic_release_info.outputs.version }}
|
||||
|
||||
- name: Update bower.json version
|
||||
if: ${{ steps.semantic_release_info.outputs.version }}
|
||||
uses: jossef/action-set-json-field@v1
|
||||
with:
|
||||
file: bower.json
|
||||
field: version
|
||||
value: ${{ steps.semantic_release_info.outputs.version }}
|
||||
|
||||
- name: Build font and docs
|
||||
if: ${{ steps.semantic_release_info.outputs.version }}
|
||||
run: |
|
||||
npm ci
|
||||
npm run build
|
||||
npm run docs-build
|
||||
|
||||
- name: Commit files
|
||||
if: ${{ steps.semantic_release_info.outputs.version }}
|
||||
run: |
|
||||
git config --local user.email "action@github.com"
|
||||
git config --local user.name "GitHub Action"
|
||||
git add -A
|
||||
git commit -m "docs(): bumping release ${{ steps.semantic_release_info.outputs.version }}"
|
||||
git tag ${{ steps.semantic_release_info.outputs.git_tag }}
|
||||
|
||||
- name: Push changes
|
||||
if: ${{ steps.semantic_release_info.outputs.version }}
|
||||
uses: ad-m/github-push-action@v0.6.0
|
||||
with:
|
||||
github_token: ${{ github.token }}
|
||||
tags: true
|
||||
|
||||
- name: Create GitHub Release
|
||||
if: ${{ steps.semantic_release_info.outputs.version }}
|
||||
uses: actions/create-release@v1
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ github.token }}
|
||||
with:
|
||||
tag_name: ${{ steps.semantic_release_info.outputs.git_tag }}
|
||||
release_name: ${{ steps.semantic_release_info.outputs.git_tag }}
|
||||
body: ${{ steps.semantic_release_info.outputs.notes }}
|
||||
draft: false
|
||||
prerelease: false
|
||||
|
||||
- name: Publish to npm
|
||||
if: ${{ steps.semantic_release_info.outputs.version }}
|
||||
uses: JS-DevTools/npm-publish@v1
|
||||
with:
|
||||
token: ${{ secrets.NPM_TOKEN }}
|
|
@ -0,0 +1,39 @@
|
|||
name: Check for Font Updates
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: "0 0 * * *"
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
persist-credentials: false
|
||||
fetch-depth: 0
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- uses: actions/setup-node@v1
|
||||
with:
|
||||
node-version: '12'
|
||||
|
||||
- run: npm install
|
||||
- name: Check for font updates
|
||||
id: updates
|
||||
run: npm run check-for-font-updates && echo ::set-output name=valid::1 || true
|
||||
|
||||
- name: Get Timestamp
|
||||
if: ${{ steps.script.updates.valid }}
|
||||
id: timestamp
|
||||
run: echo ::set-output name=value::$(date +%s)
|
||||
|
||||
- name: Create Pull Request
|
||||
uses: peter-evans/create-pull-request@v3
|
||||
if: ${{ steps.script.updates.valid }}
|
||||
with:
|
||||
commit-message: "feat(font): auto-update font from remote cdn"
|
||||
title: "feat(font): auto-update font from remote cdn ${{ steps.timestamp.outputs.value }}"
|
||||
body: |
|
||||
- check for font updates
|
||||
branch: check-for-font-updates-${{ steps.timestamp.outputs.value }}
|
|
@ -0,0 +1,202 @@
|
|||
|
||||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
APPENDIX: How to apply the Apache License to your work.
|
||||
|
||||
To apply the Apache License to your work, attach the following
|
||||
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||
replaced with your own identifying information. (Don't include
|
||||
the brackets!) The text should be enclosed in the appropriate
|
||||
comment syntax for the file format. We also recommend that a
|
||||
file or class name and description of purpose be included on the
|
||||
same "printed page" as the copyright notice for easier
|
||||
identification within third-party archives.
|
||||
|
||||
Copyright [yyyy] [name of copyright owner]
|
||||
|
||||
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
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
|
@ -0,0 +1,88 @@
|
|||
|
||||
![banner-01](https://user-images.githubusercontent.com/1287098/47606030-f76c3680-da16-11e8-8508-92b26b68f3f8.png)
|
||||
|
||||
|
||||
[Project's Demo Page](https://jossef.github.io/material-design-icons-iconfont)
|
||||
|
||||
|
||||
## MDI**DX** - Same Material Design icons, Better DX
|
||||
|
||||
|
||||
MDI**DX** (this repository) is a ~*fork* (+ fixes) of Google's [Material Design icons](https://github.com/google/material-design-icons) repository.
|
||||
Sadly, Google allocates **low maintenance and low support** for issues reported by software developers having trouble using the Material Design icons library.
|
||||
|
||||
|
||||
MDI**DX** helps modern **web developers** to use and include the (awesome) Material Design icons library in their project.
|
||||
|
||||
|
||||
|
||||
### Installation
|
||||
|
||||
using npm
|
||||
```
|
||||
npm install material-design-icons-iconfont --save
|
||||
```
|
||||
|
||||
|
||||
### Usage - Check out the [Demo Page](https://jossef.github.io/material-design-icons-iconfont)
|
||||
|
||||
|
||||
- Using `scss`
|
||||
|
||||
Import fonts and variables in your project
|
||||
|
||||
```scss
|
||||
$material-design-icons-font-directory-path: '~material-design-icons-iconfont/dist/fonts/';
|
||||
|
||||
@import '~material-design-icons-iconfont/src/material-design-icons';
|
||||
```
|
||||
|
||||
**Customize your own classes**
|
||||
|
||||
access material variable with Sass mixins:
|
||||
|
||||
```scss
|
||||
.my-face {
|
||||
@include material-icon('face');
|
||||
}
|
||||
# or
|
||||
.my-face:before {
|
||||
content: material-icons-content('face');
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
|
||||
### What's the difference? Why forking?
|
||||
|
||||
|
||||
- **Performance** -
|
||||
When you checkout Google's [original repository](https://github.com/google/material-design-icons) ( via git, npm and bower) you experience an unwanted delay. This **checkout delay** is caused by **thousands** of separate source graphic `svg,png,...` files.
|
||||
|
||||
Needless to say that these file are **irrelevant** for the average developer's purposes and **cause build congestion** (especially when using in CI systems)
|
||||
|
||||
In this fork all irrelevant files have been **removed** while keeping only the required files.
|
||||
|
||||
|
||||
- **SCSS Support** - Modern developers need support for `scss`. You can customize the referenced font's files filename and path
|
||||
|
||||
|
||||
- **Maintenance** - The original repository's release has **missing icons** that should be included according to [https://material.io/tools/icons](https://material.io/tools/icons)
|
||||
|
||||
|
||||
### [Demo Page](https://jossef.github.io/material-design-icons-iconfont)
|
||||
|
||||
![image](https://user-images.githubusercontent.com/1287098/47608007-44a8d200-da30-11e8-8750-694fb2fb26e4.png)
|
||||
|
||||
### How to contribute to this project
|
||||
|
||||
**Configure environment**
|
||||
|
||||
Install nodejs on your environemt (> 7.6 for async await)
|
||||
|
||||
**running build**
|
||||
```
|
||||
npm install
|
||||
npm run build
|
||||
```
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
{
|
||||
"name": "material-design-icons-iconfont",
|
||||
"version": "6.7.0",
|
||||
"author": "Material Design Authors, Jossef Harush",
|
||||
"description": "Material Design icons DX",
|
||||
"keywords": [
|
||||
"icons",
|
||||
"material",
|
||||
"material-design",
|
||||
"material-design-icons",
|
||||
"material-design-icons-build",
|
||||
"material-design-icons-release",
|
||||
"material-design-icons-dist",
|
||||
"material-design-icons-iconfont",
|
||||
"mdidx",
|
||||
"google"
|
||||
],
|
||||
"main": [
|
||||
"src/material-design-icons.scss"
|
||||
],
|
||||
"license": "Apache-2.0",
|
||||
"homepage": "https://jossef.github.io/material-design-icons-iconfont/"
|
||||
}
|
|
@ -0,0 +1,10 @@
|
|||
const common = require('./common');
|
||||
|
||||
common.updateAndBuild()
|
||||
.then(() => process.exit(0))
|
||||
.catch((e) => {
|
||||
console.error(e);
|
||||
process.exit(1)
|
||||
});
|
||||
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
const common = require('./common');
|
||||
const path = require('path');
|
||||
|
||||
async function main() {
|
||||
let fontJsonFilePath = path.join(common.DIST_DIR_PATH, 'fonts', 'MaterialIcons-Regular.json');
|
||||
let hashPreUpdate = await common.calculateFileHash(fontJsonFilePath);
|
||||
await common.updateAndBuild();
|
||||
let hashPostUpdate = await common.calculateFileHash(fontJsonFilePath);
|
||||
|
||||
let requireUpdate = hashPreUpdate.hash !== hashPostUpdate.hash;
|
||||
if (!requireUpdate) {
|
||||
console.log(`No update is required ${hashPreUpdate.hash} != ${hashPostUpdate.hash} == ${hashPreUpdate.hash !== hashPostUpdate.hash}`);
|
||||
throw new Error("nothing to update")
|
||||
}
|
||||
console.log(`an update is required ${hashPreUpdate.hash} != ${hashPostUpdate.hash}`);
|
||||
}
|
||||
|
||||
|
||||
main()
|
||||
.then(() => process.exit(0))
|
||||
.catch((e) => {
|
||||
console.error(e);
|
||||
process.exit(1)
|
||||
});
|
||||
|
||||
|
|
@ -0,0 +1,268 @@
|
|||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
const mkdirp = require('mkdirp');
|
||||
const {promisify} = require('util');
|
||||
const sass = require('node-sass');
|
||||
const request = require('request');
|
||||
const rp = require('request-promise-native');
|
||||
const fontkit = require('fontkit');
|
||||
const sha256File = require('sha256-file');
|
||||
const crypto = require('crypto');
|
||||
const sortByKeys = require('sort-keys');
|
||||
|
||||
const DIST_DIR_PATH = path.resolve(__dirname, '..', 'dist');
|
||||
const FONTS_DIR_PATH = path.resolve(DIST_DIR_PATH, 'fonts');
|
||||
const SRC_DIR_PATH = path.resolve(__dirname, '..', 'src');
|
||||
|
||||
const USER_AGENTS = `
|
||||
Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.3) Gecko/20090913 Firefox/3.5.3
|
||||
Mozilla/5.0 (Windows; U; Windows NT 6.1; en; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3 (.NET CLR 3.5.30729)
|
||||
Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3 (.NET CLR 3.5.30729)
|
||||
Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.1) Gecko/20090718 Firefox/3.5.1
|
||||
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/532.1 (KHTML, like Gecko) Chrome/4.0.219.6 Safari/532.1
|
||||
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; InfoPath.2)
|
||||
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 1.1.4322; .NET CLR 3.5.30729; .NET CLR 3.0.30729)
|
||||
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.2; Win64; x64; Trident/4.0)
|
||||
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; SV1; .NET CLR 2.0.50727; InfoPath.2)Mozilla/5.0 (Windows; U; MSIE 7.0; Windows NT 6.0; en-US)
|
||||
Mozilla/4.0 (compatible; MSIE 6.1; Windows XP)
|
||||
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.246
|
||||
Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2227.0 Safari/537.36
|
||||
Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_7; da-dk) AppleWebKit/533.21.1 (KHTML, like Gecko) Version/5.0.5 Safari/533.21.1
|
||||
Opera/9.80 (Windows NT 6.1; U; es-ES) Presto/2.9.181 Version/12.00
|
||||
Mozilla/5.0 (Linux; U; Android 2.3.4; fr-fr; HTC Desire Build/GRJ22) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
|
||||
Mozilla/5.0 (Linux; Android 7.0; SAMSUNG SM-N920C Build/NRD90M) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/6.2 Chrome/56.0.2924.87 Mobile Safari/537.36
|
||||
Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.43 BIDUBrowser/2.x Safari/537.31
|
||||
Mozilla/5.0 (Linux; U; Android 4.4.2; zh-cn; GT-I9500 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko)Version/4.0 MQQBrowser/5.0 QQ-URL-Manager Mobile Safari/537.36
|
||||
Mozilla/5.0 (Android 8.0.0; Tablet; rv:57.0) Gecko/57.0 Firefox/57.0
|
||||
Mozilla/5.0 (Android 8.1.0; Mobile; rv:61.0) Gecko/61.0 Firefox/61.0
|
||||
`.split('\n').filter(x => !!x).map(x => x.trim());
|
||||
|
||||
|
||||
async function readFontLigatures(fontFilePath) {
|
||||
|
||||
let font = await promisify(fontkit.open)(fontFilePath);
|
||||
console.log(`processing version="${font.version}" postscript name="${font.postscriptName}" full name="${font.fullName}" family name="${font.familyName}" copyright="${font.copyright}" subfamily name="${font.subfamilyName}"`)
|
||||
let lookupList = font.GSUB.lookupList.toArray();
|
||||
let lookupListIndexes = font.GSUB.featureList[0].feature.lookupListIndexes;
|
||||
|
||||
let result = {};
|
||||
|
||||
lookupListIndexes.forEach(index => {
|
||||
let subTable = lookupList[index].subTables[0];
|
||||
|
||||
let leadingCharacters = [];
|
||||
subTable.coverage.rangeRecords.forEach((coverage) => {
|
||||
for (let i = coverage.start; i <= coverage.end; i++) {
|
||||
let character = font.stringsForGlyph(i)[0];
|
||||
leadingCharacters.push(character);
|
||||
}
|
||||
});
|
||||
|
||||
let ligatureSets = subTable.ligatureSets.toArray();
|
||||
|
||||
ligatureSets.forEach((ligatureSet, ligatureSetIndex) => {
|
||||
|
||||
let leadingCharacter = leadingCharacters[ligatureSetIndex];
|
||||
|
||||
ligatureSet.forEach(ligature => {
|
||||
let character = font.stringsForGlyph(ligature.glyph)[0];
|
||||
let characterCode = character.charCodeAt(0).toString(16).toUpperCase();
|
||||
|
||||
// see https://github.com/jossef/material-design-icons-iconfont/pull/57
|
||||
if (characterCode === 'DBFF') {
|
||||
characterCode = 'EBFF'
|
||||
}
|
||||
|
||||
let ligatureText = ligature
|
||||
.components
|
||||
.map(x => font.stringsForGlyph(x)[0])
|
||||
.join('');
|
||||
|
||||
ligatureText = leadingCharacter + ligatureText;
|
||||
result[ligatureText] = characterCode;
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
function downloadFile(url, outputFilePath) {
|
||||
return new Promise((resolve, reject) => {
|
||||
let file = fs.createWriteStream(outputFilePath);
|
||||
let r = request.get(url);
|
||||
|
||||
let onError = (error) => {
|
||||
fs.unlink(outputFilePath, () => {
|
||||
reject((error && error.message) || error);
|
||||
});
|
||||
};
|
||||
|
||||
r.on('response', (response) => {
|
||||
let hasError = (400 <= response.statusCode) && (response.statusCode < 600);
|
||||
if (hasError) {
|
||||
return onError(`Invalid response status code ${response.statusCode}`);
|
||||
}
|
||||
|
||||
r.pipe(file);
|
||||
});
|
||||
|
||||
file.on('finish', () => file.close(resolve));
|
||||
r.on('error', onError);
|
||||
file.on('error', onError);
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
async function writeVariablesSCSSFile(outputFilePath, fontLigatures) {
|
||||
let keys = Object.keys(fontLigatures);
|
||||
keys.sort();
|
||||
let lines = keys.map(key => `\t"${key}": ${fontLigatures[key].toLowerCase()},`);
|
||||
|
||||
let content = `$material-icons-codepoints: () !default;
|
||||
$material-icons-codepoints: map-merge((
|
||||
${lines.join('\n')}
|
||||
), $material-icons-codepoints);`;
|
||||
|
||||
await promisify(fs.writeFile)(outputFilePath, content);
|
||||
}
|
||||
|
||||
async function buildScss(sourceScssFilePath, outputCssFilePath, minify) {
|
||||
|
||||
console.log(`generating css file "${outputCssFilePath}" ...`);
|
||||
let options = {
|
||||
file: sourceScssFilePath,
|
||||
outFile: outputCssFilePath,
|
||||
sourceMap: true,
|
||||
};
|
||||
|
||||
if (minify){
|
||||
options['outputStyle'] = 'compressed'
|
||||
}
|
||||
|
||||
let content = await promisify(sass.render)(options);
|
||||
|
||||
await promisify(fs.writeFile)(outputCssFilePath, content.css);
|
||||
await promisify(fs.writeFile)(`${outputCssFilePath}.map`, content.map);
|
||||
}
|
||||
|
||||
function calculateFileHash(filePath) {
|
||||
return new Promise((resolve, reject) => {
|
||||
sha256File(filePath, function (error, hash) {
|
||||
if (error) {
|
||||
return reject(error);
|
||||
}
|
||||
resolve({path: filePath, hash: hash})
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function calculateDirTreeHash(directoryPath, result = undefined) {
|
||||
return new Promise((resolve, reject) => {
|
||||
if (result === undefined) {
|
||||
result = {};
|
||||
}
|
||||
result[directoryPath] = '';
|
||||
|
||||
fs.readdir(directoryPath, (err, fileNames) => {
|
||||
if (err) {
|
||||
return reject(err);
|
||||
}
|
||||
|
||||
fileNames = fileNames.sort();
|
||||
let filePaths = fileNames.map(fileName => path.join(directoryPath, fileName));
|
||||
let promises = filePaths.map(filePath => {
|
||||
if (fs.lstatSync(filePath).isDirectory()) {
|
||||
return calculateDirTreeHash(filePath, result)
|
||||
}
|
||||
return calculateFileHash(filePath)
|
||||
});
|
||||
|
||||
Promise.all(promises).then((hashedFiles) => {
|
||||
hashedFiles.forEach(hashedFile => {
|
||||
if (hashedFile.hash) {
|
||||
result[hashedFile.path] = hashedFile.hash;
|
||||
}
|
||||
})
|
||||
resolve(result);
|
||||
}).catch(reject);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
async function calculateDirHash(directoryPath) {
|
||||
let treeHash = await calculateDirTreeHash(directoryPath);
|
||||
treeHash = sortByKeys(treeHash, {deep: true});
|
||||
treeHash = JSON.stringify(treeHash);
|
||||
return crypto.createHash('sha256').update(treeHash).digest('hex');
|
||||
}
|
||||
|
||||
async function updateAndBuild() {
|
||||
if (!await promisify(fs.exists)(FONTS_DIR_PATH)) {
|
||||
await promisify(mkdirp)(FONTS_DIR_PATH);
|
||||
}
|
||||
|
||||
let url = 'https://fonts.googleapis.com/icon?family=Material+Icons';
|
||||
let fontName = 'MaterialIcons-Regular';
|
||||
|
||||
let fontsUrls = {};
|
||||
await Promise.all(USER_AGENTS.map(async userAgent => {
|
||||
let options = {
|
||||
url: url,
|
||||
headers: {
|
||||
'User-Agent': userAgent
|
||||
}
|
||||
};
|
||||
|
||||
let content = await rp.get(options);
|
||||
|
||||
let matches = /url\((.*?)\)/g.exec(content);
|
||||
let fontUrl = matches[1];
|
||||
let extension = fontUrl.substr(fontUrl.lastIndexOf('.') + 1);
|
||||
|
||||
fontsUrls[extension] = fontUrl;
|
||||
|
||||
}));
|
||||
|
||||
await Promise.all(Object.keys(fontsUrls).map(async extension => {
|
||||
let url = fontsUrls[extension];
|
||||
|
||||
let outputFilePath = path.resolve(FONTS_DIR_PATH, `${fontName}.${extension}`);
|
||||
|
||||
console.log(`downloading "${outputFilePath}" ...`);
|
||||
await downloadFile(url, outputFilePath);
|
||||
|
||||
if (extension === 'ttf') {
|
||||
let fontLigatures = await readFontLigatures(outputFilePath);
|
||||
let outputLigaturesJsonFilePath = path.resolve(FONTS_DIR_PATH, `${fontName}.json`);
|
||||
|
||||
console.log(`extracted mapping to "${outputLigaturesJsonFilePath}" ...`);
|
||||
await promisify(fs.writeFile)(outputLigaturesJsonFilePath, JSON.stringify(fontLigatures, null, 4));
|
||||
|
||||
let outputVariablesScssFilePath = path.resolve(SRC_DIR_PATH, '_variables.scss');
|
||||
|
||||
console.log(`generating codepoints to "${outputVariablesScssFilePath}" ...`);
|
||||
await writeVariablesSCSSFile(outputVariablesScssFilePath, fontLigatures);
|
||||
|
||||
let sourceScssFilePath = path.resolve(SRC_DIR_PATH, 'material-design-icons.scss');
|
||||
let outputCssFilePath = path.resolve(DIST_DIR_PATH, 'material-design-icons.css');
|
||||
await buildScss(sourceScssFilePath, outputCssFilePath);
|
||||
|
||||
let outputMinifiedCssFilePath = path.resolve(DIST_DIR_PATH, 'material-design-icons.min.css');
|
||||
await buildScss(sourceScssFilePath, outputMinifiedCssFilePath, true);
|
||||
|
||||
let sourceScssNoCodepointsFilePath = path.resolve(SRC_DIR_PATH, 'material-design-icons-no-codepoints.scss');
|
||||
let outputCssNoCodepointsFilePath = path.resolve(DIST_DIR_PATH, 'material-design-icons-no-codepoints.css');
|
||||
await buildScss(sourceScssNoCodepointsFilePath, outputCssNoCodepointsFilePath);
|
||||
|
||||
let outputMinifiedNoCodepointsCssFilePath = path.resolve(DIST_DIR_PATH, 'material-design-icons-no-codepoints.min.css');
|
||||
await buildScss(sourceScssNoCodepointsFilePath, outputMinifiedNoCodepointsCssFilePath, true);
|
||||
}
|
||||
}));
|
||||
}
|
||||
|
||||
module.exports.updateAndBuild = updateAndBuild;
|
||||
module.exports.calculateDirHash = calculateDirHash;
|
||||
module.exports.calculateFileHash = calculateFileHash;
|
||||
module.exports.DIST_DIR_PATH = DIST_DIR_PATH;
|
||||
module.exports.SRC_DIR_PATH = SRC_DIR_PATH;
|
|
@ -0,0 +1,202 @@
|
|||
|
||||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
APPENDIX: How to apply the Apache License to your work.
|
||||
|
||||
To apply the Apache License to your work, attach the following
|
||||
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||
replaced with your own identifying information. (Don't include
|
||||
the brackets!) The text should be enclosed in the appropriate
|
||||
comment syntax for the file format. We also recommend that a
|
||||
file or class name and description of purpose be included on the
|
||||
same "printed page" as the copyright notice for easier
|
||||
identification within third-party archives.
|
||||
|
||||
Copyright [yyyy] [name of copyright owner]
|
||||
|
||||
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
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
BIN
src/main/webapp/assets/material-design-icons-iconfont/dist/fonts/MaterialIcons-Regular.eot
vendored
Normal file
2195
src/main/webapp/assets/material-design-icons-iconfont/dist/fonts/MaterialIcons-Regular.json
vendored
Normal file
BIN
src/main/webapp/assets/material-design-icons-iconfont/dist/fonts/MaterialIcons-Regular.ttf
vendored
Normal file
BIN
src/main/webapp/assets/material-design-icons-iconfont/dist/fonts/MaterialIcons-Regular.woff
vendored
Normal file
BIN
src/main/webapp/assets/material-design-icons-iconfont/dist/fonts/MaterialIcons-Regular.woff2
vendored
Normal file
|
@ -0,0 +1,34 @@
|
|||
@charset "UTF-8";
|
||||
@font-face {
|
||||
font-family: 'Material Icons';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
font-display: block;
|
||||
src: url("./fonts/MaterialIcons-Regular.eot");
|
||||
/* For IE6-8 */
|
||||
src: local("☺"), url("./fonts/MaterialIcons-Regular.woff2") format("woff2"), url("./fonts/MaterialIcons-Regular.woff") format("woff"), url("./fonts/MaterialIcons-Regular.ttf") format("truetype"); }
|
||||
|
||||
.material-icons {
|
||||
font-family: 'Material Icons';
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
font-size: 24px;
|
||||
/* Preferred icon size */
|
||||
display: inline-block;
|
||||
line-height: 1;
|
||||
text-transform: none;
|
||||
letter-spacing: normal;
|
||||
word-wrap: normal;
|
||||
white-space: nowrap;
|
||||
/* Respect document layout direction */
|
||||
direction: inherit;
|
||||
/* Support for all WebKit browsers. */
|
||||
-webkit-font-smoothing: antialiased;
|
||||
/* Support for Safari and Chrome. */
|
||||
text-rendering: optimizeLegibility;
|
||||
/* Support for Firefox. */
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
/* Support for IE. */
|
||||
font-feature-settings: 'liga'; }
|
||||
|
||||
/*# sourceMappingURL=material-design-icons-no-codepoints.css.map */
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"version": 3,
|
||||
"file": "material-design-icons-no-codepoints.css",
|
||||
"sources": [
|
||||
"../src/material-design-icons-no-codepoints.scss",
|
||||
"../src/material-design-icons.scss",
|
||||
"../src/_variables.scss",
|
||||
"../src/_mixins.scss"
|
||||
],
|
||||
"names": [],
|
||||
"mappings": ";AGgEE,UAAU;EACR,WAAW,EAAE,gBAAgB;EAC7B,UAAU,EAAE,MAAM;EAClB,WAAW,EAAE,GAAG;EAChB,YAAY,EAAE,KAAK;EACnB,GAAG,EAAE,wCAAmD;EAAE,eAAe;EACzE,GAAG,EAAE,WAAW,EAChB,0CAAqD,CAAC,eAAe,EACrE,yCAAoD,CAAC,cAAc,EACnE,wCAAmD,CAAC,kBAAkB;;AF/D1E,AAAA,eAAe,CAAC;EEcd,WAAW,EAAE,gBAAgB;EAC7B,WAAW,EAAE,MAAM;EACnB,UAAU,EAAE,MAAM;EAClB,SAAS,EAAE,IAAI;EAAE,yBAAyB;EAC1C,OAAO,EAAE,YAAY;EACrB,WAAW,EAAE,CAAC;EACd,cAAc,EAAE,IAAI;EACpB,cAAc,EAAE,MAAM;EACtB,SAAS,EAAE,MAAM;EACjB,WAAW,EAAE,MAAM;EAEnB,uCAAuC;EACvC,SAAS,EAAE,OAAO;EAElB,sCAAsC;EACtC,sBAAsB,EAAE,WAAW;EACnC,oCAAoC;EACpC,cAAc,EAAE,kBAAkB;EAClC,0BAA0B;EAC1B,uBAAuB,EAAE,SAAS;EAClC,qBAAqB;EACrB,qBAAqB,EAAE,MAAM,GFjC9B"
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
@font-face{font-family:'Material Icons';font-style:normal;font-weight:400;font-display:block;src:url("./fonts/MaterialIcons-Regular.eot");src:local("☺"),url("./fonts/MaterialIcons-Regular.woff2") format("woff2"),url("./fonts/MaterialIcons-Regular.woff") format("woff"),url("./fonts/MaterialIcons-Regular.ttf") format("truetype")}.material-icons{font-family:'Material Icons';font-weight:normal;font-style:normal;font-size:24px;display:inline-block;line-height:1;text-transform:none;letter-spacing:normal;word-wrap:normal;white-space:nowrap;direction:inherit;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;font-feature-settings:'liga'}
|
||||
|
||||
/*# sourceMappingURL=material-design-icons-no-codepoints.min.css.map */
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"version": 3,
|
||||
"file": "material-design-icons-no-codepoints.min.css",
|
||||
"sources": [
|
||||
"../src/material-design-icons-no-codepoints.scss",
|
||||
"../src/material-design-icons.scss",
|
||||
"../src/_variables.scss",
|
||||
"../src/_mixins.scss"
|
||||
],
|
||||
"names": [],
|
||||
"mappings": "AGgEE,UAAU,CACR,WAAW,CAAE,gBAAgB,CAC7B,UAAU,CAAE,MAAM,CAClB,WAAW,CAAE,GAAG,CAChB,YAAY,CAAE,KAAK,CACnB,GAAG,CAAE,wCAAmD,CACxD,GAAG,CAAE,WAAW,CAChB,0CAAqD,CAAC,eAAe,CACrE,yCAAoD,CAAC,cAAc,CACnE,wCAAmD,CAAC,kBAAkB,CF/D1E,AAAA,eAAe,AAAC,CEcd,WAAW,CAAE,gBAAgB,CAC7B,WAAW,CAAE,MAAM,CACnB,UAAU,CAAE,MAAM,CAClB,SAAS,CAAE,IAAI,CACf,OAAO,CAAE,YAAY,CACrB,WAAW,CAAE,CAAC,CACd,cAAc,CAAE,IAAI,CACpB,cAAc,CAAE,MAAM,CACtB,SAAS,CAAE,MAAM,CACjB,WAAW,CAAE,MAAM,CAGnB,SAAS,CAAE,OAAO,CAGlB,sBAAsB,CAAE,WAAW,CAEnC,cAAc,CAAE,kBAAkB,CAElC,uBAAuB,CAAE,SAAS,CAElC,qBAAqB,CAAE,MAAM,CFjC9B"
|
||||
}
|
4420
src/main/webapp/assets/material-design-icons-iconfont/dist/material-design-icons.css
vendored
Normal file
11
src/main/webapp/assets/material-design-icons-iconfont/dist/material-design-icons.css.map
vendored
Normal file
3
src/main/webapp/assets/material-design-icons-iconfont/dist/material-design-icons.min.css
vendored
Normal file
11
src/main/webapp/assets/material-design-icons-iconfont/dist/material-design-icons.min.css.map
vendored
Normal file
|
@ -0,0 +1,9 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<base href="/material-design-icons-iconfont/"><link rel="preload" href="/material-design-icons-iconfont/_nuxt/runtime.fb099d4.js" as="script"><link rel="preload" href="/material-design-icons-iconfont/_nuxt/vendors/commons.f18693b.js" as="script"><link rel="preload" href="/material-design-icons-iconfont/_nuxt/app.7c2137b.js" as="script">
|
||||
</head>
|
||||
<body>
|
||||
<div id="__nuxt"><style>#nuxt-loading{background:#fff;visibility:hidden;opacity:0;position:absolute;left:0;right:0;top:0;bottom:0;display:flex;justify-content:center;align-items:center;flex-direction:column;animation:nuxtLoadingIn 10s ease;-webkit-animation:nuxtLoadingIn 10s ease;animation-fill-mode:forwards;overflow:hidden}@keyframes nuxtLoadingIn{0%{visibility:hidden;opacity:0}20%{visibility:visible;opacity:0}100%{visibility:visible;opacity:1}}@-webkit-keyframes nuxtLoadingIn{0%{visibility:hidden;opacity:0}20%{visibility:visible;opacity:0}100%{visibility:visible;opacity:1}}#nuxt-loading>div,#nuxt-loading>div:after{border-radius:50%;width:5rem;height:5rem}#nuxt-loading>div{font-size:10px;position:relative;text-indent:-9999em;border:.5rem solid #f5f5f5;border-left:.5rem solid #000;-webkit-transform:translateZ(0);-ms-transform:translateZ(0);transform:translateZ(0);-webkit-animation:nuxtLoading 1.1s infinite linear;animation:nuxtLoading 1.1s infinite linear}#nuxt-loading.error>div{border-left:.5rem solid #ff4500;animation-duration:5s}@-webkit-keyframes nuxtLoading{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes nuxtLoading{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}</style><script>window.addEventListener("error",function(){var e=document.getElementById("nuxt-loading");e&&(e.className+=" error")})</script><div id="nuxt-loading" aria-live="polite" role="status"><div>Loading...</div></div></div><script>window.__NUXT__={config:{},staticAssetsBase:void 0}</script>
|
||||
<script src="/material-design-icons-iconfont/_nuxt/runtime.fb099d4.js"></script><script src="/material-design-icons-iconfont/_nuxt/vendors/commons.f18693b.js"></script><script src="/material-design-icons-iconfont/_nuxt/app.7c2137b.js"></script></body>
|
||||
</html>
|
|
@ -0,0 +1,23 @@
|
|||
/*!
|
||||
* vue-router v3.4.3
|
||||
* (c) 2020 Evan You
|
||||
* @license MIT
|
||||
*/
|
||||
|
||||
/*!
|
||||
* Vue.js v2.6.12
|
||||
* (c) 2014-2020 Evan You
|
||||
* Released under the MIT License.
|
||||
*/
|
||||
|
||||
/*!
|
||||
* vue-client-only v2.0.0
|
||||
* (c) 2019-present egoist <0x142857@gmail.com>
|
||||
* Released under the MIT License.
|
||||
*/
|
||||
|
||||
/*!
|
||||
* vue-no-ssr v1.1.1
|
||||
* (c) 2018-present egoist <0x142857@gmail.com>
|
||||
* Released under the MIT License.
|
||||
*/
|
|
@ -0,0 +1 @@
|
|||
!function(e){function r(data){for(var r,n,l=data[0],f=data[1],d=data[2],i=0,h=[];i<l.length;i++)n=l[i],Object.prototype.hasOwnProperty.call(o,n)&&o[n]&&h.push(o[n][0]),o[n]=0;for(r in f)Object.prototype.hasOwnProperty.call(f,r)&&(e[r]=f[r]);for(v&&v(data);h.length;)h.shift()();return c.push.apply(c,d||[]),t()}function t(){for(var e,i=0;i<c.length;i++){for(var r=c[i],t=!0,n=1;n<r.length;n++){var f=r[n];0!==o[f]&&(t=!1)}t&&(c.splice(i--,1),e=l(l.s=r[0]))}return e}var n={},o={1:0},c=[];function l(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,l),t.l=!0,t.exports}l.e=function(e){var r=[],t=o[e];if(0!==t)if(t)r.push(t[2]);else{var n=new Promise((function(r,n){t=o[e]=[r,n]}));r.push(t[2]=n);var c,script=document.createElement("script");script.charset="utf-8",script.timeout=120,l.nc&&script.setAttribute("nonce",l.nc),script.src=function(e){return l.p+""+({2:"src/docs/pages/index"}[e]||e)+"."+{2:"36c7305"}[e]+".js"}(e);var f=new Error;c=function(r){script.onerror=script.onload=null,clearTimeout(d);var t=o[e];if(0!==t){if(t){var n=r&&("load"===r.type?"missing":r.type),c=r&&r.target&&r.target.src;f.message="Loading chunk "+e+" failed.\n("+n+": "+c+")",f.name="ChunkLoadError",f.type=n,f.request=c,t[1](f)}o[e]=void 0}};var d=setTimeout((function(){c({type:"timeout",target:script})}),12e4);script.onerror=script.onload=c,document.head.appendChild(script)}return Promise.all(r)},l.m=e,l.c=n,l.d=function(e,r,t){l.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},l.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},l.t=function(e,r){if(1&r&&(e=l(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(l.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var n in e)l.d(t,n,function(r){return e[r]}.bind(null,n));return t},l.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(r,"a",r),r},l.o=function(object,e){return Object.prototype.hasOwnProperty.call(object,e)},l.p="/material-design-icons-iconfont/_nuxt/",l.oe=function(e){throw console.error(e),e};var f=window.webpackJsonp=window.webpackJsonp||[],d=f.push.bind(f);f.push=r,f=f.slice();for(var i=0;i<f.length;i++)r(f[i]);var v=d;t()}([]);
|
2
src/main/webapp/assets/material-design-icons-iconfont/docs/_nuxt/vendors/commons.f18693b.js
vendored
Normal file
|
@ -0,0 +1,17 @@
|
|||
export default {
|
||||
router: {
|
||||
base: '/material-design-icons-iconfont/'
|
||||
},
|
||||
dir: {
|
||||
assets: 'src/docs/assets',
|
||||
app: 'src/docs/app',
|
||||
layouts: 'src/docs/layouts',
|
||||
middleware: 'src/docs/middleware',
|
||||
pages: 'src/docs/pages',
|
||||
static: 'src/docs/static',
|
||||
store: 'src/docs/store'
|
||||
},
|
||||
generate: {
|
||||
dir: 'docs'
|
||||
}
|
||||
}
|
|
@ -0,0 +1,75 @@
|
|||
{
|
||||
"_from": "material-design-icons-iconfont",
|
||||
"_id": "material-design-icons-iconfont@6.7.0",
|
||||
"_inBundle": false,
|
||||
"_integrity": "sha512-lSj71DgVv20kO0kGbs42icDzbRot61gEDBLQACzkUuznRQBUYmbxzEkGU6dNBb5fRWHMaScYlAXX96HQ4/cJWA==",
|
||||
"_location": "/material-design-icons-iconfont",
|
||||
"_phantomChildren": {},
|
||||
"_requested": {
|
||||
"type": "tag",
|
||||
"registry": true,
|
||||
"raw": "material-design-icons-iconfont",
|
||||
"name": "material-design-icons-iconfont",
|
||||
"escapedName": "material-design-icons-iconfont",
|
||||
"rawSpec": "",
|
||||
"saveSpec": null,
|
||||
"fetchSpec": "latest"
|
||||
},
|
||||
"_requiredBy": [
|
||||
"#USER",
|
||||
"/"
|
||||
],
|
||||
"_resolved": "https://registry.npmjs.org/material-design-icons-iconfont/-/material-design-icons-iconfont-6.7.0.tgz",
|
||||
"_shasum": "55cf0f3d7e4c76e032855b7e810b6e30535eff3c",
|
||||
"_spec": "material-design-icons-iconfont",
|
||||
"_where": "/Users/mariateresaparatore/Documents/workspace-spring/information-system-gui",
|
||||
"author": {
|
||||
"name": "Material Design Authors, Jossef Harush"
|
||||
},
|
||||
"bugs": {
|
||||
"url": "https://github.com/jossef/material-design-icons-iconfont/issues"
|
||||
},
|
||||
"bundleDependencies": false,
|
||||
"deprecated": false,
|
||||
"description": "Material Design Icons DX",
|
||||
"devDependencies": {
|
||||
"fontkit": "^1.8.1",
|
||||
"mkdirp": "^1.0.4",
|
||||
"node-sass": "^4.14.1",
|
||||
"nuxt": "^2.14.0",
|
||||
"request": "^2.88.2",
|
||||
"request-promise-native": "^1.0.9",
|
||||
"sass-loader": "^7.1.0",
|
||||
"sha256-file": "^1.0.0",
|
||||
"sort-keys": "^4.0.0"
|
||||
},
|
||||
"homepage": "https://jossef.github.io/material-design-icons-iconfont/",
|
||||
"keywords": [
|
||||
"icons",
|
||||
"material",
|
||||
"material-design",
|
||||
"material-design-icons",
|
||||
"material-design-icons-build",
|
||||
"material-design-icons-release",
|
||||
"material-design-icons-dist",
|
||||
"material-design-icons-iconfont",
|
||||
"mdidx",
|
||||
"google",
|
||||
"nuxt"
|
||||
],
|
||||
"license": "Apache-2.0",
|
||||
"main": "dist/material-design-icons.css",
|
||||
"mode": "spa",
|
||||
"name": "material-design-icons-iconfont",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/jossef/material-design-icons-iconfont.git"
|
||||
},
|
||||
"scripts": {
|
||||
"build": "node ./build/build.js",
|
||||
"check-for-font-updates": "node ./build/check-for-font-updates.js",
|
||||
"docs-build": "nuxt generate --config-file nuxt.config.js",
|
||||
"docs-dev": "nuxt --config-file nuxt.config.js --hostname 0.0.0.0 --port 3000"
|
||||
},
|
||||
"version": "6.7.0"
|
||||
}
|
|
@ -0,0 +1,76 @@
|
|||
@function material-icons-content($codepoint) {
|
||||
@return unquote('"\\#{$codepoint}"');
|
||||
}
|
||||
|
||||
@function normalize-class-name($class-name) {
|
||||
$class-name-first-char: str-slice($class-name, 0, 1);
|
||||
|
||||
// if the first character is a number, then we need to prefix it with something (since this is invalid class name)
|
||||
@if str-index('1234567890', $class-name-first-char) {
|
||||
$class-name: '_' + $class-name;
|
||||
}
|
||||
|
||||
@return $class-name;
|
||||
}
|
||||
|
||||
@mixin material-icon($name, $pseudo: 'before') {
|
||||
$codepoint: map-get($material-icons-codepoints, $name);
|
||||
|
||||
&:#{$pseudo} {
|
||||
content: material-icons-content($codepoint);
|
||||
}
|
||||
}
|
||||
|
||||
@mixin main-class(){
|
||||
font-family: 'Material Icons';
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
font-size: 24px; /* Preferred icon size */
|
||||
display: inline-block;
|
||||
line-height: 1;
|
||||
text-transform: none;
|
||||
letter-spacing: normal;
|
||||
word-wrap: normal;
|
||||
white-space: nowrap;
|
||||
|
||||
/* Respect document layout direction */
|
||||
direction: inherit;
|
||||
|
||||
/* Support for all WebKit browsers. */
|
||||
-webkit-font-smoothing: antialiased;
|
||||
/* Support for Safari and Chrome. */
|
||||
text-rendering: optimizeLegibility;
|
||||
/* Support for Firefox. */
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
/* Support for IE. */
|
||||
font-feature-settings: 'liga';
|
||||
|
||||
@if $material-design-icons-class-icons-generate-codepoints {
|
||||
@each $name, $codepoint in $material-icons-codepoints {
|
||||
$codepoint: map-get($material-icons-codepoints, $name);
|
||||
|
||||
$class-name: $material-design-icons-class-icons-prefix + $name;
|
||||
$class-name: normalize-class-name($class-name);
|
||||
|
||||
&.#{$class-name} {
|
||||
&:before {
|
||||
content: material-icons-content($codepoint);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@mixin main-font-face() {
|
||||
@font-face {
|
||||
font-family: 'Material Icons';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
font-display: block;
|
||||
src: url("#{$material-design-icons-font-file-path}.eot"); /* For IE6-8 */
|
||||
src: local('☺'),
|
||||
url("#{$material-design-icons-font-file-path}.woff2") format('woff2'),
|
||||
url("#{$material-design-icons-font-file-path}.woff") format('woff'),
|
||||
url("#{$material-design-icons-font-file-path}.ttf") format('truetype');
|
||||
}
|
||||
}
|
|
@ -0,0 +1,65 @@
|
|||
<template>
|
||||
|
||||
<div class="logo">
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 223.5 22.8" style="enable-background:new 0 0 223.5 22.8;" xml:space="preserve">
|
||||
<path style="fill:#FFFFFF;" d="M32.2,5.8l3.1,9.7l3.1-9.7h1.9v11.9h-1.5V13L39,8.4l-3.1,9.3h-1.1l-3.1-9.3l0.1,4.6
|
||||
v4.6h-1.5V5.8H32.2z M48.6,14.6h-4l-0.9,3.1h-1.5L46,5.8h1.3l3.8,11.9h-1.5L48.6,14.6z M45,13.3h3.2l-1.6-5.4L45,13.3z M58.7,7.1
|
||||
h-3.1v10.6h-1.5V7.1h-3.1V5.8h7.8V7.1z M66.1,12.2h-4.2v4.2h4.9v1.3h-6.4V5.8h6.3v1.3h-4.8v3.8h4.2V12.2z M72.4,12.9h-2.1v4.8h-1.5
|
||||
V5.8h3.3c1.2,0,2.1,0.3,2.7,0.9c0.6,0.6,0.9,1.5,0.9,2.7c0,0.7-0.2,1.4-0.5,1.9c-0.3,0.5-0.8,1-1.4,1.2l2.3,5.1v0.1h-1.6L72.4,12.9z
|
||||
M70.3,11.6h1.8c0.6,0,1.1-0.2,1.5-0.6c0.4-0.4,0.6-0.9,0.6-1.6c0-1.5-0.7-2.3-2.1-2.3h-1.8V11.6z M79.2,17.7h-1.5V5.8h1.5V17.7z
|
||||
M87.5,14.6h-4l-0.9,3.1h-1.5l3.8-11.9h1.3L90,17.7h-1.5L87.5,14.6z M83.9,13.3h3.2l-1.6-5.4L83.9,13.3z M93.1,16.4h4.7v1.3h-6.2
|
||||
V5.8h1.5V16.4z M103.4,17.7V5.8h2.8c1.4,0,2.5,0.4,3.2,1.3c0.8,0.9,1.2,2.1,1.2,3.7v2c0,1.6-0.4,2.8-1.2,3.7
|
||||
c-0.8,0.9-1.9,1.3-3.4,1.3H103.4z M104.9,7.1v9.3h1.2c1.1,0,1.8-0.3,2.3-0.9c0.5-0.6,0.7-1.5,0.7-2.7v-2.1c0-1.3-0.2-2.2-0.7-2.8
|
||||
s-1.2-0.9-2.2-0.9H104.9z M118.7,12.2h-4.2v4.2h4.9v1.3H113V5.8h6.3v1.3h-4.8v3.8h4.2V12.2z M126.5,14.7c0-0.6-0.2-1-0.5-1.4
|
||||
c-0.3-0.3-0.9-0.6-1.7-0.9c-0.8-0.3-1.5-0.6-1.9-0.9c-0.4-0.3-0.8-0.7-1-1.1c-0.2-0.4-0.3-0.9-0.3-1.5c0-0.9,0.3-1.7,0.9-2.3
|
||||
s1.5-0.9,2.5-0.9c0.7,0,1.3,0.2,1.9,0.5c0.5,0.3,1,0.7,1.3,1.3c0.3,0.6,0.4,1.2,0.4,1.8h-1.5c0-0.7-0.2-1.3-0.5-1.7
|
||||
c-0.4-0.4-0.9-0.6-1.5-0.6c-0.6,0-1.1,0.2-1.4,0.5c-0.3,0.3-0.5,0.8-0.5,1.4c0,0.5,0.2,0.9,0.5,1.3s0.9,0.6,1.7,0.9
|
||||
c1.2,0.4,2,0.9,2.5,1.4c0.5,0.6,0.8,1.3,0.8,2.2c0,1-0.3,1.7-0.9,2.3c-0.6,0.6-1.5,0.9-2.6,0.9c-0.7,0-1.3-0.2-1.9-0.5
|
||||
c-0.6-0.3-1-0.7-1.4-1.3c-0.3-0.5-0.5-1.2-0.5-1.9h1.5c0,0.7,0.2,1.3,0.6,1.7c0.4,0.4,1,0.6,1.7,0.6c0.7,0,1.2-0.2,1.5-0.5
|
||||
C126.4,15.7,126.5,15.3,126.5,14.7z M131.6,17.7h-1.5V5.8h1.5V17.7z M141.6,16.2l-0.3,0.3c-0.8,0.9-1.9,1.3-3.3,1.3
|
||||
c-1.3,0-2.3-0.4-3-1.3c-0.7-0.9-1.1-2.1-1.1-3.6v-2.3c0-1.7,0.3-2.9,1-3.8s1.7-1.2,3-1.2c1.1,0,2,0.3,2.7,0.9s1,1.5,1.1,2.7h-1.5
|
||||
c-0.1-0.7-0.3-1.3-0.6-1.7c-0.4-0.4-0.9-0.6-1.6-0.6c-0.9,0-1.5,0.3-1.9,0.8c-0.4,0.6-0.6,1.5-0.6,2.7v2.4c0,1.2,0.2,2.1,0.7,2.8
|
||||
s1.1,1,2,1c0.8,0,1.4-0.2,1.8-0.6l0.2-0.2V13H138v-1.3h3.7V16.2z M151.9,17.7h-1.5l-4.8-9.2v9.2h-1.5V5.8h1.5l4.8,9.2V5.8h1.5V17.7z
|
||||
M159.9,17.7h-1.5V5.8h1.5V17.7z M169.9,13.9c-0.1,1.3-0.4,2.3-1.1,2.9c-0.7,0.7-1.6,1-2.8,1c-1.2,0-2.1-0.5-2.8-1.4
|
||||
s-1.1-2.1-1.1-3.7v-2.2c0-1.5,0.4-2.8,1.1-3.7c0.7-0.9,1.7-1.3,3-1.3c1.2,0,2,0.3,2.7,1s1,1.7,1,3h-1.5c-0.1-1-0.3-1.7-0.6-2.1
|
||||
s-0.9-0.6-1.6-0.6c-0.8,0-1.4,0.3-1.9,1c-0.4,0.6-0.7,1.6-0.7,2.8v2.2c0,1.2,0.2,2.1,0.6,2.8c0.4,0.6,1,1,1.8,1
|
||||
c0.8,0,1.3-0.2,1.7-0.6c0.3-0.4,0.6-1.1,0.6-2.1H169.9z M179.7,12.8c0,1.6-0.3,2.9-1,3.8c-0.7,0.9-1.7,1.3-3,1.3
|
||||
c-1.2,0-2.2-0.4-2.9-1.3c-0.7-0.9-1.1-2.1-1.1-3.6v-2.2c0-1.6,0.4-2.8,1.1-3.7s1.7-1.4,2.9-1.4c1.3,0,2.2,0.4,2.9,1.3
|
||||
c0.7,0.9,1.1,2.1,1.1,3.7V12.8z M178.2,10.7c0-1.3-0.2-2.2-0.6-2.8s-1-0.9-1.9-0.9c-0.8,0-1.4,0.3-1.9,0.9c-0.4,0.6-0.6,1.5-0.6,2.7
|
||||
v2.1c0,1.2,0.2,2.1,0.6,2.8c0.4,0.6,1.1,1,1.9,1s1.5-0.3,1.9-0.9c0.4-0.6,0.6-1.5,0.6-2.7V10.7z M189.8,17.7h-1.5l-4.8-9.2v9.2H182
|
||||
V5.8h1.5l4.8,9.2V5.8h1.5V17.7z M197.6,14.7c0-0.6-0.2-1-0.5-1.4c-0.3-0.3-0.9-0.6-1.7-0.9c-0.8-0.3-1.5-0.6-1.9-0.9
|
||||
c-0.4-0.3-0.8-0.7-1-1.1c-0.2-0.4-0.3-0.9-0.3-1.5c0-0.9,0.3-1.7,0.9-2.3s1.5-0.9,2.5-0.9c0.7,0,1.3,0.2,1.9,0.5
|
||||
c0.5,0.3,1,0.7,1.3,1.3s0.4,1.2,0.4,1.8h-1.5c0-0.7-0.2-1.3-0.5-1.7c-0.4-0.4-0.9-0.6-1.5-0.6c-0.6,0-1.1,0.2-1.4,0.5
|
||||
c-0.3,0.3-0.5,0.8-0.5,1.4c0,0.5,0.2,0.9,0.5,1.3c0.4,0.3,0.9,0.6,1.7,0.9c1.2,0.4,2,0.9,2.5,1.4s0.8,1.3,0.8,2.2
|
||||
c0,1-0.3,1.7-0.9,2.3c-0.6,0.6-1.5,0.9-2.6,0.9c-0.7,0-1.3-0.2-1.9-0.5c-0.6-0.3-1-0.7-1.4-1.3c-0.3-0.5-0.5-1.2-0.5-1.9h1.5
|
||||
c0,0.7,0.2,1.3,0.6,1.7c0.4,0.4,1,0.6,1.7,0.6c0.7,0,1.2-0.2,1.5-0.5C197.4,15.7,197.6,15.3,197.6,14.7z M207.9,7.8H207v7.9h0.7
|
||||
c0.8,0,1.4-0.2,1.7-0.6c0.3-0.4,0.5-1.2,0.5-2.2v-2.1c0-1.1-0.2-1.9-0.5-2.3C209.2,8,208.6,7.8,207.9,7.8z M202.5,4.1v15.4h20.9V4.1
|
||||
H202.5z M212.3,12.7c0,1.6-0.4,2.8-1.2,3.7c-0.8,0.9-2,1.3-3.4,1.3h-3.1V5.8h3.1c1.4,0,2.5,0.4,3.3,1.3c0.8,0.9,1.2,2.1,1.3,3.6
|
||||
V12.7z M219.1,17.7l-1.6-4.2l-1.6,4.2H213l2.9-6l-2.8-5.9h2.8l1.6,4.1l1.6-4.1h2.8l-2.8,5.9l2.9,6H219.1z"/>
|
||||
<rect style="fill:#2978FD;" width="22.8" height="22.8"/>
|
||||
<path style="fill:#40C3FE;" d="M22.8,0H0v22.8C12.6,22.8,22.8,12.6,22.8,0z"/>
|
||||
<path style="fill:#FFFFFF;" d="M0,11c6.1,0,11-4.9,11-11H0V11z"/>
|
||||
</svg>
|
||||
</div>
|
||||
|
||||
</template>
|
||||
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: "logo"
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.logo {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
|
||||
svg {
|
||||
height: 23px;
|
||||
}
|
||||
}
|
||||
</style>
|
|
@ -0,0 +1,627 @@
|
|||
<template>
|
||||
<div class="icons-gallery">
|
||||
<div class="icons-gallery-header">
|
||||
<div class="icons-gallery-header-logo">
|
||||
<logo></logo>
|
||||
</div>
|
||||
<div class="icons-gallery-header-link">
|
||||
<a target="_blank" href="https://github.com/jossef/material-design-icons-iconfont/issues">Report an Issue</a>
|
||||
</div>
|
||||
<div class="icons-gallery-header-link">
|
||||
<a target="_blank" href="https://github.com/jossef/material-design-icons-iconfont/blob/master/LICENSE">License</a>
|
||||
</div>
|
||||
<div class="icons-gallery-header-link">
|
||||
<a target="_blank" href="https://github.com/jossef/material-design-icons-iconfont">View Project in GitHub</a>
|
||||
</div>
|
||||
<div class="icons-gallery-header-floating-search">
|
||||
<div class="icons-gallery-header-floating-search-input">
|
||||
<input placeholder="Filter Icons ..." type="text" v-model="filter">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="icons-gallery-content">
|
||||
|
||||
|
||||
<div class="icons-gallery-content-gallery">
|
||||
<div class="icons-gallery-content-gallery-category">
|
||||
|
||||
<div class="icons-gallery-content-gallery-category-icons">
|
||||
<div class="icons-gallery-content-gallery-category-icons-wrapper"
|
||||
v-bind:class="{'icons-gallery-content-gallery-category-icons-wrapper-active': isIconSelected(icon.id), 'icons-gallery-content-gallery-category-icons-wrapper-disabled': isAnyIconSelected() && !isIconSelected(icon.id), }"
|
||||
v-for="icon in filteredIcons" v-bind:key="icon.id"
|
||||
v-on:click="toggleSelectIcon(icon.id)"
|
||||
>
|
||||
<div class="icons-gallery-content-gallery-category-icons-wrapper-icon">
|
||||
<i class="material-icons">{{icon.id}}</i>
|
||||
</div>
|
||||
|
||||
<div class="icons-gallery-content-gallery-category-icons-wrapper-name">
|
||||
{{icon.id}}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="icons-gallery-content-gallery-no-filter-results"
|
||||
v-if="!filteredIcons.length">
|
||||
|
||||
<div class="icons-gallery-content-gallery-no-filter-results-message">
|
||||
<div class="icons-gallery-content-gallery-no-filter-results-message-text">Couldn't find an icon for "{{filter}}".</div>
|
||||
<div class="icons-gallery-content-gallery-no-filter-results-message-button" v-on:click="filter=''">reset search filter</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="icons-gallery-content-info">
|
||||
<div class="icons-gallery-content-info-header">getting started</div>
|
||||
<div class="icons-gallery-content-info-getting-started">
|
||||
Install using npm
|
||||
<div class="icons-gallery-content-info-getting-started-code-snippet">npm install material-design-icons-iconfont</div>
|
||||
|
||||
Include or @import the precompiled css file
|
||||
<div class="icons-gallery-content-info-getting-started-code-snippet"><link href=".../material-design-icons.css" rel="stylesheet"></div>
|
||||
|
||||
Next, embed the desired icon's code-snippet in your html. <a target="_blank" href="https://github.com/jossef/material-design-icons-iconfont">read this</a> for advanced instructions
|
||||
</div>
|
||||
|
||||
|
||||
<div v-if="isAnyIconSelected()" class="icons-gallery-content-info-header icons-gallery-content-info-header-padding">
|
||||
<div class="icons-gallery-content-info-header-text">selected icons ({{selectedIconsCount}})</div>
|
||||
<div class="icons-gallery-content-info-header-button" v-bind:class="{'icons-gallery-content-info-header-button-active':showCodepoints}" @click="showCodepoints = !showCodepoints"><i class="material-icons" v-bind:class="showCodepoints ? 'check_box' : 'check_box_outline_blank'"></i> codepoints</div>
|
||||
<div class="icons-gallery-content-info-header-button" v-bind:class="{'icons-gallery-content-info-header-button-active':showClasses}" @click="showClasses = !showClasses"><i class="material-icons " v-bind:class="showClasses ? 'check_box' : 'check_box_outline_blank'"></i> css classes</div>
|
||||
<div class="icons-gallery-content-info-header-button icons-gallery-content-info-header-button-active" @click="clear()"><i class="material-icons clear"></i> clear</div>
|
||||
</div>
|
||||
<div class="icons-gallery-content-info-selected-icons">
|
||||
<div class="icons-gallery-content-info-selected-icons-item"
|
||||
v-for="(_, iconId) in selectedIcons" v-bind:key="iconId">
|
||||
<div class="icons-gallery-content-info-selected-icons-item-icon">
|
||||
<i class="material-icons">{{iconId}}</i>
|
||||
</div>
|
||||
|
||||
<div class="icons-gallery-content-info-selected-icons-item-info">
|
||||
<div class="icons-gallery-content-info-selected-icons-item-info-name">{{iconId}}</div>
|
||||
<div class="icons-gallery-content-info-selected-icons-item-info-embed" v-if="showClasses"><i class="material-icons {{normalizeCssClassName(iconId)}}"></i></div>
|
||||
<div class="icons-gallery-content-info-selected-icons-item-info-embed" v-else><i class="material-icons">{{iconId}}</i></div>
|
||||
<div v-if="showCodepoints">codepoint:</div>
|
||||
<div class="icons-gallery-content-info-selected-icons-item-info-embed" v-if="showCodepoints">{{iconsMap[iconId].toLowerCase()}}</div>
|
||||
<div class="icons-gallery-content-info-selected-icons-item-info-embed" v-if="showCodepoints">let character = "\u{{iconsMap[iconId].toLowerCase()}}";</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="icons-gallery-content-info-header icons-gallery-content-info-header-padding">about</div>
|
||||
<div class="icons-gallery-content-info-about">
|
||||
<div>MDIDX (Material Design Icons Development Experience) is a ~fork of Google's material design icons. Created to fix development experience issues.</div>
|
||||
<div>This workaround project was created by <a target="_blank" href="https://github.com/jossef">@jossef</a></div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
||||
<script>
|
||||
import Vue from "vue";
|
||||
import logo from "../components/logo";
|
||||
import iconsMap from "../assets/fonts/MaterialIcons-Regular.json";
|
||||
|
||||
let vm;
|
||||
|
||||
export default {
|
||||
components: {
|
||||
logo
|
||||
},
|
||||
head: {
|
||||
title: "Material Design Icons DX"
|
||||
},
|
||||
data() {
|
||||
let icons = Object.keys(iconsMap);
|
||||
icons.sort();
|
||||
|
||||
icons = icons.map((icon) => {
|
||||
return {
|
||||
"id": icon,
|
||||
"codepoint": iconsMap[icon]
|
||||
}
|
||||
});
|
||||
|
||||
return {
|
||||
icons: icons,
|
||||
iconsMap: iconsMap,
|
||||
selectedIcons: {},
|
||||
selectedIconsCount: 0,
|
||||
showCodepoints: false,
|
||||
showClasses: false,
|
||||
filter: ""
|
||||
};
|
||||
},
|
||||
created() {
|
||||
vm = this;
|
||||
},
|
||||
computed: {
|
||||
filteredIcons() {
|
||||
if (!vm.filter) {
|
||||
return vm.icons;
|
||||
}
|
||||
|
||||
return vm.icons.filter(icon => vm.isNotFiltered(icon.id));
|
||||
}
|
||||
},
|
||||
|
||||
methods: {
|
||||
formatName(name) {
|
||||
name = name.replace(/_/, " ");
|
||||
return name.charAt(0).toUpperCase() + name.substr(1).toLowerCase();
|
||||
},
|
||||
normalizeCssClassName(name) {
|
||||
if (/^\d.*/.test(name)) {
|
||||
return `_${name}`;
|
||||
}
|
||||
|
||||
return name;
|
||||
},
|
||||
isNotFiltered(iconId) {
|
||||
return vm.filter ? iconId.indexOf(vm.filter.trim()) >= 0 : true;
|
||||
},
|
||||
toggleSelectIcon(iconId) {
|
||||
let value = !vm.selectedIcons[iconId];
|
||||
Vue.set(vm.selectedIcons, iconId, value);
|
||||
|
||||
if (!value) {
|
||||
Vue.delete(vm.selectedIcons, iconId);
|
||||
}
|
||||
|
||||
vm.selectedIconsCount = Object.keys(vm.selectedIcons).length;
|
||||
},
|
||||
isIconSelected(iconId) {
|
||||
return !!vm.selectedIcons[iconId];
|
||||
},
|
||||
isAnyIconSelected() {
|
||||
return vm.selectedIconsCount;
|
||||
},
|
||||
clear() {
|
||||
vm.selectedIcons = {};
|
||||
vm.selectedIconsCount = 0;
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
|
||||
<style lang="scss">
|
||||
@import url("https://fonts.googleapis.com/css?family=Source+Sans+Pro");
|
||||
@import url("~/src/docs/assets/material-design-icons.css");
|
||||
|
||||
$error-color: #f50057;
|
||||
$color-black: #000;
|
||||
$color-white: #fff;
|
||||
$color-disabled: rgba(#000, 0.5);
|
||||
$color-green: #388e3c;
|
||||
|
||||
@mixin scrollbars($size, $foreground-color, $background-color: mix($foreground-color, white, 50%)) {
|
||||
// For Google Chrome
|
||||
::-webkit-scrollbar {
|
||||
width: $size;
|
||||
height: $size;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-thumb {
|
||||
background: $foreground-color;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-track {
|
||||
background: $background-color;
|
||||
}
|
||||
|
||||
// For Internet Explorer
|
||||
body {
|
||||
scrollbar-face-color: $foreground-color;
|
||||
scrollbar-track-color: $background-color;
|
||||
}
|
||||
}
|
||||
|
||||
@mixin card() {
|
||||
background: #fff;
|
||||
border-radius: 2px;
|
||||
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);
|
||||
transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
|
||||
}
|
||||
|
||||
@mixin card-hover() {
|
||||
&:hover {
|
||||
box-shadow: 0 14px 28px rgba(0, 0, 0, 0.25), 0 10px 10px rgba(0, 0, 0, 0.22);
|
||||
}
|
||||
}
|
||||
|
||||
@mixin code-font() {
|
||||
font-family: Consolas, Menlo, Monaco, Lucida Console, Liberation Mono,
|
||||
DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace, serif;
|
||||
}
|
||||
|
||||
@mixin code-snippet() {
|
||||
@include code-font();
|
||||
font-size: 12px;
|
||||
user-select: all;
|
||||
padding: 6px;
|
||||
}
|
||||
|
||||
@mixin input($input-height: 50px) {
|
||||
position: relative;
|
||||
|
||||
label {
|
||||
position: absolute;
|
||||
line-height: $input-height;
|
||||
top: 0;
|
||||
pointer-events: none;
|
||||
font-size: 18px;
|
||||
user-select: none;
|
||||
left: 10px;
|
||||
transition: all 0.2s;
|
||||
color: rgba($color-black, 0.8);
|
||||
}
|
||||
|
||||
input {
|
||||
@include card();
|
||||
|
||||
box-shadow: 0px 4px 20px 0px rgba(251, 255, 0, 0.45),
|
||||
0 1px 3px rgba(0, 0, 0, 0.12),
|
||||
0 1px 2px rgba(0, 0, 0, 0.24);
|
||||
|
||||
box-sizing: border-box;
|
||||
width: 100%;
|
||||
|
||||
height: $input-height;
|
||||
padding: 5px 10px;
|
||||
|
||||
-webkit-appearance: none;
|
||||
border: none;
|
||||
|
||||
font-size: 14px;
|
||||
|
||||
&:focus {
|
||||
outline-width: 0;
|
||||
|
||||
box-shadow: 0px 3px 20px 0px rgba(255, 255, 255, 0.64),
|
||||
rgb(229, 229, 229) 0px -1px 0px 0px,
|
||||
rgba(0, 0, 0, 0.117647) 0px 0px 2px 0px,
|
||||
rgba(0, 0, 0, 0.239216) 0px 4px 10px 0px;
|
||||
transform: scale(1.2, 1.2);
|
||||
|
||||
}
|
||||
|
||||
&:focus,
|
||||
&:focus ~ * {
|
||||
z-index: 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@mixin defuse-links($color) {
|
||||
a {
|
||||
text-decoration: none;
|
||||
|
||||
&:active,
|
||||
&:visited,
|
||||
&:link,
|
||||
&:hover {
|
||||
color: $color;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
html,
|
||||
body {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
font-family: "Source Sans Pro", sans-serif;
|
||||
background: #fff;
|
||||
}
|
||||
|
||||
$padding: 20px;
|
||||
$background-color: #202124;
|
||||
$info-menu-width: 400px;
|
||||
$header-height: 72px;
|
||||
|
||||
.icons-gallery {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
width: 100vw;
|
||||
height: 100vh;
|
||||
overflow: hidden;
|
||||
|
||||
&-header {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
padding: 0 $padding;
|
||||
align-items: center;
|
||||
position: relative;
|
||||
|
||||
background: $background-color;
|
||||
color: #fff;
|
||||
min-height: $header-height;
|
||||
box-shadow: 0 2px 4px -1px rgba(0, 0, 0, 0.2),
|
||||
0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12);
|
||||
|
||||
z-index: 1;
|
||||
|
||||
&-logo {
|
||||
flex-grow: 999;
|
||||
}
|
||||
|
||||
&-link {
|
||||
margin-left: $padding;
|
||||
@include defuse-links(#fff);
|
||||
}
|
||||
|
||||
&-floating-search {
|
||||
position: absolute;
|
||||
$input-height: 30px;
|
||||
width: 300px;
|
||||
height: $input-height;
|
||||
top: $header-height - $input-height/2;
|
||||
right: $info-menu-width + $padding;
|
||||
z-index: 2;
|
||||
|
||||
&-input {
|
||||
@include input($input-height);
|
||||
|
||||
input {
|
||||
border-radius: 20px;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
&-content {
|
||||
flex-grow: 999;
|
||||
position: relative;
|
||||
display: flex;
|
||||
overflow: hidden;
|
||||
flex-direction: row;
|
||||
|
||||
//background-image: linear-gradient(to right, #fff, #eee);
|
||||
background-color: #fff;
|
||||
@include scrollbars(3px, #777, transparent);
|
||||
|
||||
&-gallery {
|
||||
flex-grow: 999;
|
||||
overflow-y: scroll;
|
||||
position: relative;
|
||||
|
||||
&-category {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
padding: $padding/2 $padding;
|
||||
margin-top: $padding;
|
||||
|
||||
&-header {
|
||||
font-size: 16px;
|
||||
margin-bottom: $padding/2;
|
||||
|
||||
}
|
||||
|
||||
&-icons {
|
||||
$icon-size: 32px;
|
||||
$wrapper-size: 60px;
|
||||
$gap: 30px;
|
||||
|
||||
display: grid;
|
||||
justify-content: center;
|
||||
|
||||
grid-template-columns: repeat(auto-fit, $wrapper-size);
|
||||
grid-gap: $gap;
|
||||
|
||||
&-wrapper {
|
||||
width: $wrapper-size;
|
||||
height: $wrapper-size;
|
||||
max-height: $wrapper-size;
|
||||
max-width: $wrapper-size;
|
||||
display: flex;
|
||||
overflow: hidden;
|
||||
user-select: none;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
padding: 5px;
|
||||
border-radius: 10px;
|
||||
cursor: pointer;
|
||||
|
||||
transition: all 0.2s;
|
||||
|
||||
&-active {
|
||||
box-shadow: 0 0 3px 1px rgba(0, 0, 0, 0.3);
|
||||
}
|
||||
|
||||
&-disabled {
|
||||
opacity: 0.4;
|
||||
}
|
||||
|
||||
&-icon {
|
||||
i {
|
||||
font-size: $icon-size;
|
||||
}
|
||||
}
|
||||
|
||||
&-name {
|
||||
font-size: 10px;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
max-width: $wrapper-size;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&-no-filter-results {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: center;
|
||||
|
||||
&-message {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
margin-top: 200px;
|
||||
|
||||
&-icon {
|
||||
font-size: 80px;
|
||||
}
|
||||
|
||||
&-text {
|
||||
font-size: 20px;
|
||||
margin-bottom: $padding/2;
|
||||
}
|
||||
|
||||
&-button {
|
||||
color: $error-color;
|
||||
cursor: pointer;
|
||||
padding: 5px 10px;
|
||||
border-radius: 4px;
|
||||
font-size: 14px;
|
||||
box-shadow: 0 0px 0px 1px $error-color;
|
||||
transition: all 0.1s ease-in-out;
|
||||
user-select: none;
|
||||
|
||||
text-transform: uppercase;
|
||||
|
||||
&:hover {
|
||||
background-color: $error-color;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
&-active {
|
||||
background: $error-color;
|
||||
color: #fff;
|
||||
|
||||
&:hover {
|
||||
background-color: darken($error-color, 10);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&-info {
|
||||
min-width: $info-menu-width;
|
||||
max-width: $info-menu-width;
|
||||
box-sizing: border-box;
|
||||
overflow-y: auto;
|
||||
padding: 10px;
|
||||
//background: #eee;
|
||||
background-image: linear-gradient(to right, #fff, #eee);
|
||||
|
||||
&-header {
|
||||
text-transform: uppercase;
|
||||
font-size: 12px;
|
||||
font-weight: 700;
|
||||
margin-bottom: 4px;
|
||||
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
|
||||
&-text {
|
||||
flex-grow: 999;
|
||||
}
|
||||
|
||||
&-button {
|
||||
user-select: none;
|
||||
cursor: pointer;
|
||||
|
||||
padding: 4px 5px;
|
||||
border-radius: 8px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-left: 6px;
|
||||
box-shadow: 0 0 0 1px #bdbdbd;
|
||||
opacity: 0.8;
|
||||
|
||||
&:hover {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
i {
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
&-active {
|
||||
background: #eeed9e;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
&-padding {
|
||||
margin-top: $padding;
|
||||
}
|
||||
}
|
||||
|
||||
&-selected-icons {
|
||||
margin-bottom: 10px;
|
||||
|
||||
&-item {
|
||||
@include card();
|
||||
|
||||
margin-bottom: 4px;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
|
||||
$icon-size: 32px;
|
||||
$item-size: 70px;
|
||||
|
||||
min-height: $item-size;
|
||||
|
||||
&-icon {
|
||||
user-select: none;
|
||||
width: $item-size;
|
||||
max-width: $item-size;
|
||||
min-width: $item-size;
|
||||
|
||||
align-self: center;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
|
||||
i {
|
||||
font-size: $icon-size;
|
||||
}
|
||||
}
|
||||
|
||||
&-info {
|
||||
align-self: center;
|
||||
width: 100%;
|
||||
padding-right: 5px;
|
||||
|
||||
&-name {
|
||||
user-select: all;
|
||||
}
|
||||
|
||||
&-embed {
|
||||
@include code-snippet();
|
||||
|
||||
background: #efefef;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&-getting-started {
|
||||
&-code-snippet {
|
||||
@include code-snippet();
|
||||
background: #222;
|
||||
color: #fff;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
|
@ -0,0 +1,2 @@
|
|||
$material-design-icons-class-icons-generate-codepoints: false;
|
||||
@import 'material-design-icons';
|
|
@ -0,0 +1,13 @@
|
|||
@import 'variables';
|
||||
@import 'mixins';
|
||||
|
||||
$material-design-icons-font-directory-path: './fonts/' !default;
|
||||
$material-design-icons-font-file-name: 'MaterialIcons-Regular' !default;
|
||||
$material-design-icons-font-file-path: $material-design-icons-font-directory-path + $material-design-icons-font-file-name !default;
|
||||
$material-design-icons-class-icons-generate-codepoints: true !default;
|
||||
$material-design-icons-class-icons-prefix: '' !default;
|
||||
|
||||
@include main-font-face();
|
||||
.material-icons {
|
||||
@include main-class();
|
||||
}
|
|
@ -0,0 +1,201 @@
|
|||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
APPENDIX: How to apply the Apache License to your work.
|
||||
|
||||
To apply the Apache License to your work, attach the following
|
||||
boilerplate notice, with the fields enclosed by brackets "{}"
|
||||
replaced with your own identifying information. (Don't include
|
||||
the brackets!) The text should be enclosed in the appropriate
|
||||
comment syntax for the file format. We also recommend that a
|
||||
file or class name and description of purpose be included on the
|
||||
same "printed page" as the copyright notice for easier
|
||||
identification within third-party archives.
|
||||
|
||||
Copyright {yyyy} {name of copyright owner}
|
||||
|
||||
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
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
|
@ -0,0 +1,71 @@
|
|||
# material-icons-font
|
||||
Material design icons font
|
||||
|
||||
## Description
|
||||
Based on Material design icons font to simplify process of building new Angular typescript application to serve icons font definition from vendor package (e.g. npm node_modules), without the need to insert direct link to online google fonts in html head section manually.
|
||||
|
||||
## Installation
|
||||
|
||||
Load directly from GIT e.g. via bower
|
||||
|
||||
or
|
||||
|
||||
npm install material-icons-font --save
|
||||
|
||||
Version 1.x is based on https://github.com/google/material-design-icons
|
||||
|
||||
Version 2.x is based on community update at https://github.com/jossef/material-design-icons-iconfont
|
||||
|
||||
## Usage
|
||||
|
||||
### Direct css usage
|
||||
|
||||
Insert css into your build setup directly.
|
||||
|
||||
E.g. into Angular CLI main configuration styles
|
||||
|
||||
```
|
||||
...
|
||||
"styles": [
|
||||
"../node_modules/material-icons-font/material-icons-font.css"
|
||||
],
|
||||
...
|
||||
```
|
||||
|
||||
### Import SCSS into your own SCSS files
|
||||
|
||||
Angular CLI with scss styles extension example:
|
||||
|
||||
```
|
||||
@import '~material-icons-font/sass/variables'; // mandatory and at first place
|
||||
@import '~material-icons-font/sass/mixins'; // mandatory and after variables
|
||||
// there you can change default variables if they are not good enough for you
|
||||
$MaterialIcons_FontPath: "~material-icons-font/fonts"; // for CLI project we change font path to point into package fonts folder
|
||||
@import '~material-icons-font/sass/main'; // mandatory main material font definition
|
||||
@import '~material-icons-font/sass/Regular'; // mandatory @font-face definition
|
||||
|
||||
// @import '~material-icons-font/sass/sizing'; // optional rules for icons sizing recommended by font designers
|
||||
// @import '~material-icons-font/sass/coloring'; // optional rules for icons color rules with light and dark background and inactive state
|
||||
|
||||
```
|
||||
|
||||
### At last, just use it in your app
|
||||
|
||||
directly
|
||||
|
||||
```
|
||||
<i class="material-icons">face</i>
|
||||
<i class="material-icons md-48">face</i>
|
||||
<i class="material-icons md-dark">face</i>
|
||||
<i class="material-icons md-48 md-dark md-inactive">face</i>
|
||||
<i class="material-icons md-light md-inactive">face</i>
|
||||
```
|
||||
|
||||
with Angular Material
|
||||
|
||||
```
|
||||
<mat-icon>add_alarm</mat-icon>
|
||||
<mat-icon>adjust</mat-icon>
|
||||
```
|
||||
|
||||
or else...
|
|
@ -0,0 +1,98 @@
|
|||
const fontkit = require('fontkit');
|
||||
const fs = require('fs');
|
||||
let font = fontkit.openSync('./fonts/MaterialIcons-Regular.woff');
|
||||
let lookupList = font.GSUB.lookupList.toArray();
|
||||
let lookupListIndexes = font.GSUB.featureList[0].feature.lookupListIndexes;
|
||||
|
||||
class Extractor {
|
||||
font;
|
||||
lookupList;
|
||||
lookupListIndexes;
|
||||
|
||||
constructor(fontPath = '') {
|
||||
this.font = fontkit.openSync(fontPath);
|
||||
this.lookupList = font.GSUB.lookupList.toArray();
|
||||
this.lookupListIndexes = font.GSUB.featureList[0].feature.lookupListIndexes;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns array of object pairs.
|
||||
*/
|
||||
extract() {
|
||||
const output = [];
|
||||
let processedLigatures = [];
|
||||
this.lookupListIndexes.forEach(index => {
|
||||
let subTable = this.lookupList[index].subTables[0];
|
||||
let ligatureSets = subTable.ligatureSets.toArray();
|
||||
|
||||
let leadingCharacters = [];
|
||||
subTable.coverage.rangeRecords.forEach((coverage) => {
|
||||
for (let i = coverage.start; i <= coverage.end; i++) {
|
||||
let character = this.font.stringsForGlyph(i)[0];
|
||||
leadingCharacters.push(character);
|
||||
}
|
||||
});
|
||||
|
||||
ligatureSets.forEach((ligatureSet, ligatureSetIndex) => {
|
||||
|
||||
let leadingCharacter = leadingCharacters[ligatureSetIndex];
|
||||
|
||||
ligatureSet.forEach(ligature => {
|
||||
let character = this.font.stringsForGlyph(ligature.glyph)[0];
|
||||
let characterCode = character.charCodeAt(0).toString(16).toUpperCase();
|
||||
|
||||
let ligatureText = ligature
|
||||
.components
|
||||
.map(x => this.font.stringsForGlyph(x)[0])
|
||||
.join('');
|
||||
|
||||
ligatureText = leadingCharacter + ligatureText;
|
||||
if (processedLigatures.indexOf(ligatureText) > -1) {
|
||||
// duplicate
|
||||
return;
|
||||
}
|
||||
// characterCode = characterCode.toLowerCase();
|
||||
output.push({
|
||||
ligatureText: ligatureText,
|
||||
characterCode: characterCode
|
||||
});
|
||||
processedLigatures.push(ligatureText);
|
||||
});
|
||||
});
|
||||
});
|
||||
return output;
|
||||
}
|
||||
|
||||
toJson(outputFile = 'output.json') {
|
||||
let output = '{\n';
|
||||
const extractOutput = this.extract();
|
||||
for (let i = 0; i < extractOutput.length; i++) {
|
||||
const pair = extractOutput[i];
|
||||
output = output.concat(` "${pair.ligatureText}": "${pair.characterCode}",\n`);
|
||||
}
|
||||
|
||||
if (output.endsWith(',\n')) {
|
||||
output = output.slice(0, -2).concat('\n');
|
||||
}
|
||||
fs.writeFileSync(outputFile, output + '}');
|
||||
}
|
||||
|
||||
toScss(outputFile = 'output.scss') {
|
||||
let output = '$MaterialIcons_codepoints: () !default;\n$MaterialIcons_codepoints: map-merge((\n';
|
||||
const extractOutput = this.extract();
|
||||
for (let i = 0; i < extractOutput.length; i++) {
|
||||
const pair = extractOutput[i];
|
||||
const characterCode = pair.characterCode.toLowerCase();
|
||||
output = output.concat(` "${pair.ligatureText}": ${characterCode},\n`);
|
||||
}
|
||||
|
||||
if (output.endsWith(',\n')) {
|
||||
output = output.slice(0, -2).concat('\n');
|
||||
}
|
||||
fs.writeFileSync(outputFile, output + '), $MaterialIcons_codepoints);');
|
||||
}
|
||||
}
|
||||
|
||||
const extractor = new Extractor('./fonts/MaterialIcons-Regular.woff');
|
||||
extractor.toJson('codepoints.json');
|
||||
extractor.toScss('./sass/_codepoints.scss');
|
|
@ -0,0 +1,21 @@
|
|||
<html>
|
||||
<head>
|
||||
<base href="./">
|
||||
<link media="all" rel="stylesheet" href="material-icons-font.css">
|
||||
</head>
|
||||
<script>
|
||||
fetch('codepoints.json')
|
||||
.then(response => response.json())
|
||||
.then(data => {
|
||||
for (const key in data) {
|
||||
if (data.hasOwnProperty(key)) {
|
||||
const element = data[key];
|
||||
var elem = document.createElement('i');
|
||||
elem.classList.add('material-icons');
|
||||
elem.textContent = key;
|
||||
document.body.appendChild(elem);
|
||||
}
|
||||
}
|
||||
});
|
||||
</script>
|
||||
</html>
|
|
@ -0,0 +1,35 @@
|
|||
@font-face {
|
||||
font-family: 'Material Icons';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('Material Icons'),
|
||||
local('MaterialIcons-Regular'),
|
||||
url(./fonts/MaterialIcons-Regular.woff2) format('woff2'),
|
||||
url(./fonts/MaterialIcons-Regular.woff) format('woff'),
|
||||
url(./fonts/MaterialIcons-Regular.ttf) format('truetype');
|
||||
}
|
||||
|
||||
.material-icons {
|
||||
font-family: 'Material Icons';
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
font-size: 24px; /* Preferred icon size */
|
||||
display: inline-block;
|
||||
line-height: 1;
|
||||
text-transform: none;
|
||||
letter-spacing: normal;
|
||||
word-wrap: normal;
|
||||
white-space: nowrap;
|
||||
direction: ltr;
|
||||
|
||||
/* Support for all WebKit browsers. */
|
||||
-webkit-font-smoothing: antialiased;
|
||||
/* Support for Safari and Chrome. */
|
||||
text-rendering: optimizeLegibility;
|
||||
|
||||
/* Support for Firefox. */
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
|
||||
/* Support for IE. */
|
||||
font-feature-settings: 'liga';
|
||||
}
|
|
@ -0,0 +1,60 @@
|
|||
{
|
||||
"_args": [
|
||||
[
|
||||
"material-icons-font@2.1.0",
|
||||
"/Users/mariateresaparatore/Documents/workspace-spring/information-system-gui"
|
||||
]
|
||||
],
|
||||
"_from": "material-icons-font@2.1.0",
|
||||
"_id": "material-icons-font@2.1.0",
|
||||
"_inBundle": false,
|
||||
"_integrity": "sha512-Nv36UacYjodGc15HJDehJcfrYFioq5p6sQD7kcpBVoFLdUgTnv/kzM5BamTIi0W/i3BaeouunzfBOkUzjicT3Q==",
|
||||
"_location": "/material-icons-font",
|
||||
"_phantomChildren": {},
|
||||
"_requested": {
|
||||
"type": "version",
|
||||
"registry": true,
|
||||
"raw": "material-icons-font@2.1.0",
|
||||
"name": "material-icons-font",
|
||||
"escapedName": "material-icons-font",
|
||||
"rawSpec": "2.1.0",
|
||||
"saveSpec": null,
|
||||
"fetchSpec": "2.1.0"
|
||||
},
|
||||
"_requiredBy": [
|
||||
"/"
|
||||
],
|
||||
"_resolved": "https://registry.npmjs.org/material-icons-font/-/material-icons-font-2.1.0.tgz",
|
||||
"_spec": "2.1.0",
|
||||
"_where": "/Users/mariateresaparatore/Documents/workspace-spring/information-system-gui",
|
||||
"author": {
|
||||
"name": "daimoonis"
|
||||
},
|
||||
"bugs": {
|
||||
"url": "https://github.com/daimoonis/material-icons-font/issues"
|
||||
},
|
||||
"dependencies": {},
|
||||
"description": "Material icons font",
|
||||
"devDependencies": {
|
||||
"fontkit": "^1.8.1"
|
||||
},
|
||||
"directories": {},
|
||||
"homepage": "https://github.com/daimoonis/material-icons-font#readme",
|
||||
"keywords": [
|
||||
"material-icons",
|
||||
"material-icons-font",
|
||||
"material",
|
||||
"icons",
|
||||
"font"
|
||||
],
|
||||
"license": "Apache-2.0",
|
||||
"main": "\"\"",
|
||||
"name": "material-icons-font",
|
||||
"optionalDependencies": {},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/daimoonis/material-icons-font.git"
|
||||
},
|
||||
"scripts": {},
|
||||
"version": "2.1.0"
|
||||
}
|
|
@ -0,0 +1,10 @@
|
|||
/* BEGIN Regular */
|
||||
|
||||
@font-face {
|
||||
font-family: 'Material Icons';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
@include MaterialIcons_FontDef($MaterialIcons_FontPath, $MaterialIcons_FontName, $MaterialIcons_FontVersion, "Regular");
|
||||
}
|
||||
|
||||
/* END Regular */
|
|
@ -0,0 +1,17 @@
|
|||
/* Rules for using icons as black on a light background. */
|
||||
|
||||
.#{$MaterialIcons_DefaultFontClassName} {
|
||||
&.md-dark {
|
||||
color: rgba(0, 0, 0, 0.54);
|
||||
}
|
||||
&.md-dark.md-inactive {
|
||||
color: rgba(0, 0, 0, 0.26);
|
||||
}
|
||||
/* Rules for using icons as white on a dark background. */
|
||||
&.md-light {
|
||||
color: rgba(255, 255, 255, 1);
|
||||
}
|
||||
&.md-light.md-inactive {
|
||||
color: rgba(255, 255, 255, 0.3);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,22 @@
|
|||
.#{$MaterialIcons_DefaultFontClassName} {
|
||||
font-family: 'Material Icons';
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
font-size: $MaterialIcons_DefaultFontSize;
|
||||
/* Preferred icon size */
|
||||
display: inline-block;
|
||||
line-height: 1;
|
||||
text-transform: none;
|
||||
letter-spacing: normal;
|
||||
word-wrap: normal;
|
||||
white-space: nowrap;
|
||||
direction: ltr;
|
||||
/* Support for all WebKit browsers. */
|
||||
-webkit-font-smoothing: antialiased;
|
||||
/* Support for Safari and Chrome. */
|
||||
text-rendering: optimizeLegibility;
|
||||
/* Support for Firefox. */
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
/* Support for IE. */
|
||||
font-feature-settings: 'liga';
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
@mixin MaterialIcons_FontDef($FontPath, $FontName:"MaterialIcons", $FontVersion:"2.1.0", $FontType:"Regular") {
|
||||
src: local('Material Icons'),
|
||||
local('#{$FontName}-#{$FontType}'),
|
||||
url('#{$FontPath}/#{$FontName}-#{$FontType}.woff2?v=#{$FontVersion}') format('woff2'),
|
||||
url('#{$FontPath}/#{$FontName}-#{$FontType}.woff?v=#{$FontVersion}') format('woff'),
|
||||
url('#{$FontPath}/#{$FontName}-#{$FontType}.ttf?v=#{$FontVersion}') format('truetype');
|
||||
}
|
||||
|
||||
@function MaterialIcons_Content($codepoint) {
|
||||
@return unquote('"\\#{$codepoint}"');
|
||||
}
|
||||
|
||||
@mixin MaterialIcons_Icon($name, $pseudo: 'before') {
|
||||
$codepoint: map-get($MaterialIcons_Codepoints, $name);
|
||||
&:#{$pseudo} {
|
||||
content: MaterialIcons_Content($codepoint);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,16 @@
|
|||
/* Rules for sizing the icon. */
|
||||
|
||||
.#{$MaterialIcons_DefaultFontClassName} {
|
||||
&.md-18 {
|
||||
font-size: 18px;
|
||||
}
|
||||
&.md-24 {
|
||||
font-size: 24px;
|
||||
}
|
||||
&.md-36 {
|
||||
font-size: 36px;
|
||||
}
|
||||
&.md-48 {
|
||||
font-size: 48px;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
@import 'codepoints.scss';
|
||||
$MaterialIcons_FontPath: "./fonts" !default;
|
||||
$MaterialIcons_FontName: "MaterialIcons" !default;
|
||||
$MaterialIcons_FontVersion: "2.1.0" !default;
|
||||
$MaterialIcons_DefaultFontSize: 24px;
|
||||
$MaterialIcons_DefaultFontClassName: "material-icons";
|
Before Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 6.9 KiB |
Before Width: | Height: | Size: 10 KiB |
Before Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 222 KiB |
Before Width: | Height: | Size: 6.9 KiB |
Before Width: | Height: | Size: 9.3 KiB |
Before Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 22 KiB |
Before Width: | Height: | Size: 5.3 KiB |
Before Width: | Height: | Size: 6.5 KiB |
Before Width: | Height: | Size: 9.5 KiB |
Before Width: | Height: | Size: 10 KiB |
Before Width: | Height: | Size: 19 KiB |
Before Width: | Height: | Size: 6.0 KiB |
Before Width: | Height: | Size: 7.8 KiB |
Before Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 13 KiB |
After Width: | Height: | Size: 9.0 KiB |
Before Width: | Height: | Size: 605 B After Width: | Height: | Size: 9.0 KiB |
|
@ -0,0 +1,2 @@
|
|||
<?xml version="1.0" encoding="utf-8"?><!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
||||
<svg width="800px" height="800px" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><path fill="#000000" d="M363.6 36.48c-22.2 0-40 17.8-40 40 0 22.23 17.8 40.02 40 40.02s40-17.79 40-40.02c0-22.2-17.8-40-40-40zm-56.7 51.97c-53.2 18.95-108.7 34.95-169 45.25 1.8 4.6 2.8 9.6 2.8 14.8 0 4.8-.8 9.4-2.4 13.6 96.2 12.9 182.8 36 257.8 71.9 1.6-5.9 4.5-11.3 8.3-15.9-71.2-34.3-152.4-57.2-241.5-70.7 53.2-10.6 102.8-25.4 150.4-42.2-3-5.2-5.2-10.79-6.4-16.75zm97.8 28.85c-4.3 4.3-9.2 8-14.6 10.8 15.3 24.8 26 50.6 31.8 77.8 4.3-1.5 9-2.4 13.8-2.4 1.4 0 2.8.1 4.1.2-6.3-30.3-18.2-59.1-35.1-86.4zm-305 8.2c-12.81 0-23 10.2-23 23s10.19 23 23 23c12.8 0 23-10.2 23-23s-10.2-23-23-23zm34.7 44.6c-3.2 5.2-7.5 9.6-12.6 12.9 32.1 32.6 66.1 65.9 120.6 80.4 0-.9-.1-1.9-.1-2.8 0-5.3 1.3-10.3 3.5-14.8-49.5-13.5-80-43.8-111.4-75.7zm-57 12.7c-21.76 67.8-27.12 137.2-32.29 206 2.13-.5 4.34-.7 6.6-.7 3.99 0 7.81.7 11.35 2.1 5.19-68.4 10.57-136 31.29-201.1-6.18-.8-11.94-3-16.95-6.3zm358.3 38.7c-12.8 0-23 10.2-23 23s10.2 23 23 23 23-10.2 23-23-10.2-23-23-23zm-41 22.2c-28.4 5.8-56.6 10.8-86 10.5.4 2.1.6 4.2.6 6.4 0 4-.7 7.9-2.1 11.5 32 .6 62-4.7 91.2-10.8-2.4-5.1-3.7-10.8-3.7-16.8zm-118.9 1.4c-8.7 0-15.5 6.8-15.5 15.5s6.8 15.5 15.5 15.5 15.5-6.8 15.5-15.5-6.8-15.5-15.5-15.5zM399 262.7c-55.6 45.9-106.6 94.4-143.1 150.7 5.9 1.8 11.2 5 15.6 9.1 34.9-53.5 84.2-100.8 138.8-145.9-4.7-3.7-8.6-8.5-11.3-13.9zm-152 15c-47.9 46.4-109.6 83.2-172.85 119.5 4.36 4.2 7.56 9.6 9.05 15.6C146.8 376.4 210 338.9 260 290.1c-5.4-2.9-9.9-7.2-13-12.4zm179.4 6.7c1.3 28.8 6 57.3 14.3 85.2 4.8-3.4 10.7-5.6 17-6-7.6-26-11.9-52.3-13.2-79.1-2.9.7-5.8 1-8.8 1-3.2 0-6.3-.4-9.3-1.1zm33.3 97.1c-8.4 0-15 6.6-15 15s6.6 15 15 15 15-6.6 15-15-6.6-15-15-15zM51.71 406.1c-8.07 0-14.42 6.4-14.42 14.4 0 8.1 6.35 14.5 14.42 14.5s14.42-6.4 14.42-14.5c0-8-6.35-14.4-14.42-14.4zm376.49.3c-44.7 24.5-93.8 32.6-144.9 35.6.9 3.4 1.4 6.9 1.4 10.5 0 2.6-.3 5.1-.7 7.5 53.1-3.1 105.8-11.6 154.3-38.5-4.7-4-8.2-9.2-10.1-15.1zM83.91 416.8c.14 1.2.22 2.4.22 3.7 0 5-1.15 9.7-3.19 14l121.86 20.3c-.1-.8-.1-1.5-.1-2.3 0-5.4 1.1-10.6 3-15.4zm159.79 12.7c-12.8 0-23 10.2-23 23s10.2 23 23 23 23-10.2 23-23-10.2-23-23-23z"/></svg>
|
After Width: | Height: | Size: 2.2 KiB |
|
@ -12,9 +12,8 @@
|
|||
<link rel="icon" href="favicon.ico" />
|
||||
<link rel="manifest" href="manifest.webapp" />
|
||||
<link rel="stylesheet" href="content/css/loading.css" />
|
||||
<!--
|
||||
<link href="https://fonts.googleapis.com/css?family=Material+Icons%7CMaterial+Icons+Outlined%7CMaterial+Icons+Two+Tone%7CMaterial+Icons+Round%7CMaterial+Icons+Sharp" rel="stylesheet">
|
||||
-->
|
||||
<!--/information-system-gui/node_modules/material-icons-font/material-icons-font.css-->
|
||||
<link rel="stylesheet" href="assets/material-icons-font/material-icons-font.css" >
|
||||
<!-- jhipster-needle-add-resources-to-root - JHipster will add new resources here -->
|
||||
</head>
|
||||
<body>
|
||||
|
|
|
@ -2,26 +2,6 @@
|
|||
"name": "InformationSystemGUI",
|
||||
"short_name": "InformationSystemGUI",
|
||||
"icons": [
|
||||
{
|
||||
"src": "./content/images/jhipster_family_member_1_head-192.png",
|
||||
"sizes": "192x192",
|
||||
"type": "image/png"
|
||||
},
|
||||
{
|
||||
"src": "./content/images/jhipster_family_member_1_head-256.png",
|
||||
"sizes": "256x256",
|
||||
"type": "image/png"
|
||||
},
|
||||
{
|
||||
"src": "./content/images/jhipster_family_member_1_head-384.png",
|
||||
"sizes": "384x384",
|
||||
"type": "image/png"
|
||||
},
|
||||
{
|
||||
"src": "./content/images/jhipster_family_member_1_head-512.png",
|
||||
"sizes": "512x512",
|
||||
"type": "image/png"
|
||||
}
|
||||
],
|
||||
"theme_color": "#000000",
|
||||
"background_color": "#e0e0e0",
|
||||
|
|