diff --git a/package-lock.json b/package-lock.json index 5df609cb9..754b2fde1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -273,10 +273,13 @@ } }, "@material/animation": { - "version": "0.41.0", - "resolved": "https://registry.npmjs.org/@material/animation/-/animation-0.41.0.tgz", - "integrity": "sha512-yYAwJbX3Q2AFd4dr6IYOsWLQy2HN8zWOFVl9AbUXunjzTfJCa/ecfXCriaT6qkmoNoHeTdJHRrsQJZC5GsPvzA==", - "dev": true + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@material/animation/-/animation-1.0.0.tgz", + "integrity": "sha512-Ed5/vggn6ZhSJ87yn3ZS1d826VJNFz73jHF2bSsgRtHDoB8KCuOwQMfdgAgDa4lKDF6CDIPCKBZPKrs2ubehdw==", + "dev": true, + "requires": { + "tslib": "^1.9.3" + } }, "@material/base": { "version": "1.0.0", @@ -288,330 +291,71 @@ } }, "@material/button": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@material/button/-/button-1.1.0.tgz", - "integrity": "sha512-P1oZyyC1ELRe26vdnmax+fO3BWNmftDqHDDlQbJ+gfYMDQsNQtZNJU16ZbnVHsnzEXOpFj729imbmuLfnz8Nbg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@material/button/-/button-1.1.1.tgz", + "integrity": "sha512-03aEyzZBIeqpgZkqLjro/enz8ORUnfQslBUdAgkPqdjh1X0oIEugr3UaFyC5QlSBTU3j3GIsnKIxWaggkRenpQ==", "dev": true, "requires": { "@material/elevation": "^1.1.0", "@material/feature-targeting": "^0.44.1", "@material/ripple": "^1.1.0", "@material/rtl": "^0.42.0", - "@material/shape": "^1.0.0", + "@material/shape": "^1.1.1", "@material/theme": "^1.1.0", "@material/typography": "^1.0.0" - }, - "dependencies": { - "@material/animation": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@material/animation/-/animation-1.0.0.tgz", - "integrity": "sha512-Ed5/vggn6ZhSJ87yn3ZS1d826VJNFz73jHF2bSsgRtHDoB8KCuOwQMfdgAgDa4lKDF6CDIPCKBZPKrs2ubehdw==", - "dev": true, - "requires": { - "tslib": "^1.9.3" - } - }, - "@material/dom": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@material/dom/-/dom-1.1.0.tgz", - "integrity": "sha512-+HWW38ZaM2UBPu4+7QCusLDSf4tFT31rsEXHkTkxYSg/QpDivfPx6YDz4OmYtafmhPR1d1YjqB3MYysUHdodyw==", - "dev": true, - "requires": { - "tslib": "^1.9.3" - } - }, - "@material/ripple": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@material/ripple/-/ripple-1.1.0.tgz", - "integrity": "sha512-mkfDBZAmxjpRG7V9TrfOmLxt1g/wvGHCXtYPgvH7W8ozjf53edqxLOFENEdvHbie27y9nyixzXn0gzU0HnxSeA==", - "dev": true, - "requires": { - "@material/animation": "^1.0.0", - "@material/base": "^1.0.0", - "@material/dom": "^1.1.0", - "@material/feature-targeting": "^0.44.1", - "@material/theme": "^1.1.0", - "tslib": "^1.9.3" - } - }, - "@material/rtl": { - "version": "0.42.0", - "resolved": "https://registry.npmjs.org/@material/rtl/-/rtl-0.42.0.tgz", - "integrity": "sha512-VrnrKJzhmspsN8WXHuxxBZ69yM5IwhCUqWr1t1eNfw3ZEvEj7i1g3P31HGowKThIN1dc1Wh4LE14rCISWCtv5w==", - "dev": true - }, - "@material/shape": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@material/shape/-/shape-1.0.0.tgz", - "integrity": "sha512-zfXEacPQZmH+ujVtaFyfAsYiF46j1QCcFzJeZVouG4pznrbA7XD6614Ywg0wbyWX5iB6hD52ld/IN+R/6oxKqA==", - "dev": true, - "requires": { - "@material/feature-targeting": "^0.44.1" - } - }, - "@material/theme": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@material/theme/-/theme-1.1.0.tgz", - "integrity": "sha512-YYUV9Rhbx4r/EMb/zoOYJUWjhXChNaLlH1rqt3vpNVyxRcxGqoVMGp5u1XALBCFiD9dACPKLIkKyRYa928nmPQ==", - "dev": true, - "requires": { - "@material/feature-targeting": "^0.44.1" - } - } } }, "@material/card": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@material/card/-/card-1.1.0.tgz", - "integrity": "sha512-ZuzMwnFZx0qMTiQK/QHoEClsOQ8TbfIpYm1N5gVvnGgbLF6xxoLD2zZFS9/l3eJxrDOxsrqqgxxfjGlJB5dFRg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@material/card/-/card-1.1.1.tgz", + "integrity": "sha512-gLG5TmeHszM700NcFcSvXQ4EGzLTVIclhCW8Sw4sKMGaklv3S498O8MpSRGZDkRrbisXNWQpsmCAxOcTXfwlAw==", "dev": true, "requires": { "@material/elevation": "^1.1.0", "@material/feature-targeting": "^0.44.1", "@material/ripple": "^1.1.0", "@material/rtl": "^0.42.0", - "@material/shape": "^1.0.0", + "@material/shape": "^1.1.1", "@material/theme": "^1.1.0" - }, - "dependencies": { - "@material/animation": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@material/animation/-/animation-1.0.0.tgz", - "integrity": "sha512-Ed5/vggn6ZhSJ87yn3ZS1d826VJNFz73jHF2bSsgRtHDoB8KCuOwQMfdgAgDa4lKDF6CDIPCKBZPKrs2ubehdw==", - "dev": true, - "requires": { - "tslib": "^1.9.3" - } - }, - "@material/dom": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@material/dom/-/dom-1.1.0.tgz", - "integrity": "sha512-+HWW38ZaM2UBPu4+7QCusLDSf4tFT31rsEXHkTkxYSg/QpDivfPx6YDz4OmYtafmhPR1d1YjqB3MYysUHdodyw==", - "dev": true, - "requires": { - "tslib": "^1.9.3" - } - }, - "@material/ripple": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@material/ripple/-/ripple-1.1.0.tgz", - "integrity": "sha512-mkfDBZAmxjpRG7V9TrfOmLxt1g/wvGHCXtYPgvH7W8ozjf53edqxLOFENEdvHbie27y9nyixzXn0gzU0HnxSeA==", - "dev": true, - "requires": { - "@material/animation": "^1.0.0", - "@material/base": "^1.0.0", - "@material/dom": "^1.1.0", - "@material/feature-targeting": "^0.44.1", - "@material/theme": "^1.1.0", - "tslib": "^1.9.3" - } - }, - "@material/rtl": { - "version": "0.42.0", - "resolved": "https://registry.npmjs.org/@material/rtl/-/rtl-0.42.0.tgz", - "integrity": "sha512-VrnrKJzhmspsN8WXHuxxBZ69yM5IwhCUqWr1t1eNfw3ZEvEj7i1g3P31HGowKThIN1dc1Wh4LE14rCISWCtv5w==", - "dev": true - }, - "@material/shape": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@material/shape/-/shape-1.0.0.tgz", - "integrity": "sha512-zfXEacPQZmH+ujVtaFyfAsYiF46j1QCcFzJeZVouG4pznrbA7XD6614Ywg0wbyWX5iB6hD52ld/IN+R/6oxKqA==", - "dev": true, - "requires": { - "@material/feature-targeting": "^0.44.1" - } - }, - "@material/theme": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@material/theme/-/theme-1.1.0.tgz", - "integrity": "sha512-YYUV9Rhbx4r/EMb/zoOYJUWjhXChNaLlH1rqt3vpNVyxRcxGqoVMGp5u1XALBCFiD9dACPKLIkKyRYa928nmPQ==", - "dev": true, - "requires": { - "@material/feature-targeting": "^0.44.1" - } - } } }, "@material/checkbox": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@material/checkbox/-/checkbox-1.0.1.tgz", - "integrity": "sha512-/FMQEM5aT3S63Rp2gWgq0/WnMl9tNpSBs222r/3YT9Aqesbdp56mcDG9rk9rq2Ph74sWxlI5+9MVwL4CZ3nCyg==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@material/checkbox/-/checkbox-1.1.0.tgz", + "integrity": "sha512-jCrkG8VkN63uH+YRhu7RWIsrYGw2Gu89OEPe+sqGYWsr+BbOuzBBqxrM09rUkXykCyi8gAbxpWZPVGCmcDHtJQ==", "dev": true, "requires": { "@material/animation": "^1.0.0", "@material/base": "^1.0.0", - "@material/dom": "^1.0.1", + "@material/dom": "^1.1.0", "@material/feature-targeting": "^0.44.1", - "@material/ripple": "^1.0.1", + "@material/ripple": "^1.1.0", "@material/rtl": "^0.42.0", - "@material/theme": "^1.0.0", + "@material/theme": "^1.1.0", "tslib": "^1.9.3" - }, - "dependencies": { - "@material/animation": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@material/animation/-/animation-1.0.0.tgz", - "integrity": "sha512-Ed5/vggn6ZhSJ87yn3ZS1d826VJNFz73jHF2bSsgRtHDoB8KCuOwQMfdgAgDa4lKDF6CDIPCKBZPKrs2ubehdw==", - "dev": true, - "requires": { - "tslib": "^1.9.3" - } - }, - "@material/dom": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@material/dom/-/dom-1.0.1.tgz", - "integrity": "sha512-7gb9Tk8YBn2fLEa5fJfvDexG0QxvRGDb8c6uZEhvK4bTd2ZHCfHg9KrO+smC6Trbn5jC+FsBvdRZBbMjtS/E4g==", - "dev": true, - "requires": { - "tslib": "^1.9.3" - } - }, - "@material/ripple": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@material/ripple/-/ripple-1.0.1.tgz", - "integrity": "sha512-aBigRoVMjIU2lLDq7TMocI2H2YFbO1hICs5FTdSRp4Yis/QFTrgaW32q8yuHdZI56j+b2BWIWapqA2xpSmCMXQ==", - "dev": true, - "requires": { - "@material/animation": "^1.0.0", - "@material/base": "^1.0.0", - "@material/dom": "^1.0.1", - "@material/feature-targeting": "^0.44.1", - "@material/theme": "^1.0.0", - "tslib": "^1.9.3" - } - }, - "@material/rtl": { - "version": "0.42.0", - "resolved": "https://registry.npmjs.org/@material/rtl/-/rtl-0.42.0.tgz", - "integrity": "sha512-VrnrKJzhmspsN8WXHuxxBZ69yM5IwhCUqWr1t1eNfw3ZEvEj7i1g3P31HGowKThIN1dc1Wh4LE14rCISWCtv5w==", - "dev": true - }, - "@material/theme": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@material/theme/-/theme-1.0.0.tgz", - "integrity": "sha512-Bg/BQLU5MmCwtQ3DHcSs9DodZB8PTvuItv1wXrP54S/wBVwryIB5uMDmERhnItbNnAFbkKhlAuhn1asMmMzfkQ==", - "dev": true, - "requires": { - "@material/feature-targeting": "^0.44.1" - } - } } }, "@material/chips": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@material/chips/-/chips-1.0.1.tgz", - "integrity": "sha512-UcCEkuFEE8c3zdzAnv7kdU7hG6QNOJpVgmrphWBgoPG92+yFFb8b5Wo+3MWT+SIF/wKNSNAo8a+BER9DsCOOjw==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@material/chips/-/chips-1.1.1.tgz", + "integrity": "sha512-ftpYba7+qEeRWCU9xSHJmkD6UXHo/UQEfqBcH96nt7QTa+ZIyyzcu64lc3OpFgLM8RnugyaAWlJ7i5w510YRiw==", "dev": true, "requires": { "@material/animation": "^1.0.0", "@material/base": "^1.0.0", - "@material/checkbox": "^1.0.1", - "@material/elevation": "^1.0.0", - "@material/ripple": "^1.0.1", - "@material/shape": "^1.0.0", - "@material/theme": "^1.0.0", + "@material/checkbox": "^1.1.0", + "@material/elevation": "^1.1.0", + "@material/ripple": "^1.1.0", + "@material/shape": "^1.1.1", + "@material/theme": "^1.1.0", "@material/typography": "^1.0.0", "tslib": "^1.9.3" - }, - "dependencies": { - "@material/animation": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@material/animation/-/animation-1.0.0.tgz", - "integrity": "sha512-Ed5/vggn6ZhSJ87yn3ZS1d826VJNFz73jHF2bSsgRtHDoB8KCuOwQMfdgAgDa4lKDF6CDIPCKBZPKrs2ubehdw==", - "dev": true, - "requires": { - "tslib": "^1.9.3" - } - }, - "@material/checkbox": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@material/checkbox/-/checkbox-1.0.1.tgz", - "integrity": "sha512-/FMQEM5aT3S63Rp2gWgq0/WnMl9tNpSBs222r/3YT9Aqesbdp56mcDG9rk9rq2Ph74sWxlI5+9MVwL4CZ3nCyg==", - "dev": true, - "requires": { - "@material/animation": "^1.0.0", - "@material/base": "^1.0.0", - "@material/dom": "^1.0.1", - "@material/feature-targeting": "^0.44.1", - "@material/ripple": "^1.0.1", - "@material/rtl": "^0.42.0", - "@material/theme": "^1.0.0", - "tslib": "^1.9.3" - } - }, - "@material/dom": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@material/dom/-/dom-1.0.1.tgz", - "integrity": "sha512-7gb9Tk8YBn2fLEa5fJfvDexG0QxvRGDb8c6uZEhvK4bTd2ZHCfHg9KrO+smC6Trbn5jC+FsBvdRZBbMjtS/E4g==", - "dev": true, - "requires": { - "tslib": "^1.9.3" - } - }, - "@material/elevation": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@material/elevation/-/elevation-1.0.0.tgz", - "integrity": "sha512-TqmvEXmZDYLm2X5lEnjKCsZMDkCXpxFFxL22AfCAQB5L4d0gAS7vqDEE797y4Rp+BBKEcOP71mum1l56RI3NBQ==", - "dev": true, - "requires": { - "@material/animation": "^1.0.0", - "@material/feature-targeting": "^0.44.1", - "@material/theme": "^1.0.0" - } - }, - "@material/ripple": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@material/ripple/-/ripple-1.0.1.tgz", - "integrity": "sha512-aBigRoVMjIU2lLDq7TMocI2H2YFbO1hICs5FTdSRp4Yis/QFTrgaW32q8yuHdZI56j+b2BWIWapqA2xpSmCMXQ==", - "dev": true, - "requires": { - "@material/animation": "^1.0.0", - "@material/base": "^1.0.0", - "@material/dom": "^1.0.1", - "@material/feature-targeting": "^0.44.1", - "@material/theme": "^1.0.0", - "tslib": "^1.9.3" - } - }, - "@material/rtl": { - "version": "0.42.0", - "resolved": "https://registry.npmjs.org/@material/rtl/-/rtl-0.42.0.tgz", - "integrity": "sha512-VrnrKJzhmspsN8WXHuxxBZ69yM5IwhCUqWr1t1eNfw3ZEvEj7i1g3P31HGowKThIN1dc1Wh4LE14rCISWCtv5w==", - "dev": true - }, - "@material/shape": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@material/shape/-/shape-1.0.0.tgz", - "integrity": "sha512-zfXEacPQZmH+ujVtaFyfAsYiF46j1QCcFzJeZVouG4pznrbA7XD6614Ywg0wbyWX5iB6hD52ld/IN+R/6oxKqA==", - "dev": true, - "requires": { - "@material/feature-targeting": "^0.44.1" - } - }, - "@material/theme": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@material/theme/-/theme-1.0.0.tgz", - "integrity": "sha512-Bg/BQLU5MmCwtQ3DHcSs9DodZB8PTvuItv1wXrP54S/wBVwryIB5uMDmERhnItbNnAFbkKhlAuhn1asMmMzfkQ==", - "dev": true, - "requires": { - "@material/feature-targeting": "^0.44.1" - } - }, - "@material/typography": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@material/typography/-/typography-1.0.0.tgz", - "integrity": "sha512-Oeqbjci1cC7jTE8/n3dwnkqKe9ZeWiaE+rgMtRYtRFw1HvAw14SpGA5EEAS/Li2Hu2KZ50FYCe3HYqShfxtChA==", - "dev": true, - "requires": { - "@material/feature-targeting": "^0.44.1" - } - } } }, "@material/dialog": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@material/dialog/-/dialog-1.1.0.tgz", - "integrity": "sha512-XbFTTdzzRhjClLMDFxz8SR/mwwCBpQL6N7Z7UzX7SgD51UJmd19SsXPItFquRKk3mkNuoFBBcR4KJ6julAW+Fg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@material/dialog/-/dialog-1.1.1.tgz", + "integrity": "sha512-2jj/5GrEqU5D36+a2cFprNk8/H0zF8drx/1G9Mb0EZxU+RkgkHt8xdUWjxmjlCZsIDjEj4IGMLFahD17IMBvLw==", "dev": true, "requires": { "@material/animation": "^1.0.0", @@ -621,208 +365,57 @@ "@material/feature-targeting": "^0.44.1", "@material/ripple": "^1.1.0", "@material/rtl": "^0.42.0", - "@material/shape": "^1.0.0", + "@material/shape": "^1.1.1", + "@material/theme": "^1.1.0", + "@material/typography": "^1.0.0", + "focus-trap": "^4.0.2", + "tslib": "^1.9.3" + } + }, + "@material/dom": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@material/dom/-/dom-1.1.0.tgz", + "integrity": "sha512-+HWW38ZaM2UBPu4+7QCusLDSf4tFT31rsEXHkTkxYSg/QpDivfPx6YDz4OmYtafmhPR1d1YjqB3MYysUHdodyw==", + "dev": true, + "requires": { + "tslib": "^1.9.3" + } + }, + "@material/drawer": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@material/drawer/-/drawer-1.1.1.tgz", + "integrity": "sha512-QCncn5ej0FR+Tyi1lTSWhpTVK24puf5wGc24ZuhFpom5bsectC7UqT/QnEdOiG6YvJdN5Cw1DeJ9CI3jm+1HDw==", + "dev": true, + "requires": { + "@material/animation": "^1.0.0", + "@material/base": "^1.0.0", + "@material/elevation": "^1.1.0", + "@material/list": "^1.1.1", + "@material/ripple": "^1.1.0", + "@material/rtl": "^0.42.0", + "@material/shape": "^1.1.1", "@material/theme": "^1.1.0", "@material/typography": "^1.0.0", "focus-trap": "^4.0.2", "tslib": "^1.9.3" }, "dependencies": { - "@material/animation": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@material/animation/-/animation-1.0.0.tgz", - "integrity": "sha512-Ed5/vggn6ZhSJ87yn3ZS1d826VJNFz73jHF2bSsgRtHDoB8KCuOwQMfdgAgDa4lKDF6CDIPCKBZPKrs2ubehdw==", - "dev": true, - "requires": { - "tslib": "^1.9.3" - } - }, - "@material/dom": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@material/dom/-/dom-1.1.0.tgz", - "integrity": "sha512-+HWW38ZaM2UBPu4+7QCusLDSf4tFT31rsEXHkTkxYSg/QpDivfPx6YDz4OmYtafmhPR1d1YjqB3MYysUHdodyw==", + "@material/list": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@material/list/-/list-1.1.1.tgz", + "integrity": "sha512-YqX2A5qagoBolla6WHzP2BIUid/ufot5rVP2yrTz3DFvmswJMXU3HV2XU9NbiVOiefCjkra9ljtimiTlHUrAEg==", "dev": true, "requires": { + "@material/base": "^1.0.0", + "@material/dom": "^1.1.0", + "@material/feature-targeting": "^0.44.1", + "@material/ripple": "^1.1.0", + "@material/rtl": "^0.42.0", + "@material/shape": "^1.1.1", + "@material/theme": "^1.1.0", + "@material/typography": "^1.0.0", "tslib": "^1.9.3" } - }, - "@material/elevation": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@material/elevation/-/elevation-1.1.0.tgz", - "integrity": "sha512-m4eATJvDhWK1BT+yA1iHz5mhAk8cV9olC4mjVzm4PTAqhDH2yya4WzjN1HPVHE/a65ObyZ7V4qopxu9MRocm3A==", - "dev": true, - "requires": { - "@material/animation": "^1.0.0", - "@material/feature-targeting": "^0.44.1", - "@material/theme": "^1.1.0" - } - }, - "@material/ripple": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@material/ripple/-/ripple-1.1.0.tgz", - "integrity": "sha512-mkfDBZAmxjpRG7V9TrfOmLxt1g/wvGHCXtYPgvH7W8ozjf53edqxLOFENEdvHbie27y9nyixzXn0gzU0HnxSeA==", - "dev": true, - "requires": { - "@material/animation": "^1.0.0", - "@material/base": "^1.0.0", - "@material/dom": "^1.1.0", - "@material/feature-targeting": "^0.44.1", - "@material/theme": "^1.1.0", - "tslib": "^1.9.3" - } - }, - "@material/rtl": { - "version": "0.42.0", - "resolved": "https://registry.npmjs.org/@material/rtl/-/rtl-0.42.0.tgz", - "integrity": "sha512-VrnrKJzhmspsN8WXHuxxBZ69yM5IwhCUqWr1t1eNfw3ZEvEj7i1g3P31HGowKThIN1dc1Wh4LE14rCISWCtv5w==", - "dev": true - }, - "@material/shape": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@material/shape/-/shape-1.0.0.tgz", - "integrity": "sha512-zfXEacPQZmH+ujVtaFyfAsYiF46j1QCcFzJeZVouG4pznrbA7XD6614Ywg0wbyWX5iB6hD52ld/IN+R/6oxKqA==", - "dev": true, - "requires": { - "@material/feature-targeting": "^0.44.1" - } - }, - "@material/theme": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@material/theme/-/theme-1.1.0.tgz", - "integrity": "sha512-YYUV9Rhbx4r/EMb/zoOYJUWjhXChNaLlH1rqt3vpNVyxRcxGqoVMGp5u1XALBCFiD9dACPKLIkKyRYa928nmPQ==", - "dev": true, - "requires": { - "@material/feature-targeting": "^0.44.1" - } - }, - "@material/typography": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@material/typography/-/typography-1.0.0.tgz", - "integrity": "sha512-Oeqbjci1cC7jTE8/n3dwnkqKe9ZeWiaE+rgMtRYtRFw1HvAw14SpGA5EEAS/Li2Hu2KZ50FYCe3HYqShfxtChA==", - "dev": true, - "requires": { - "@material/feature-targeting": "^0.44.1" - } - } - } - }, - "@material/dom": { - "version": "0.41.0", - "resolved": "https://registry.npmjs.org/@material/dom/-/dom-0.41.0.tgz", - "integrity": "sha512-wOJrMwjPddYXpQFZAIaCLWI3TO/6KU1lxESTBzunni8A4FHQVWhokml5Xt85GqZwmPFeIF2s+D0wfbWyrGBuKQ==", - "dev": true - }, - "@material/drawer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@material/drawer/-/drawer-1.0.1.tgz", - "integrity": "sha512-xgpWg2MZVFWU0MX+H4MmWA0XQO0cxF1XFA0KdyV+7W0bdzpI1x8itM8Xh0suyzqyqDc+GMHG/OxP8KYUv40jeg==", - "dev": true, - "requires": { - "@material/animation": "^1.0.0", - "@material/base": "^1.0.0", - "@material/elevation": "^1.0.0", - "@material/list": "^1.0.1", - "@material/ripple": "^1.0.1", - "@material/rtl": "^0.42.0", - "@material/shape": "^1.0.0", - "@material/theme": "^1.0.0", - "@material/typography": "^1.0.0", - "focus-trap": "^4.0.2", - "tslib": "^1.9.3" - }, - "dependencies": { - "@material/animation": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@material/animation/-/animation-1.0.0.tgz", - "integrity": "sha512-Ed5/vggn6ZhSJ87yn3ZS1d826VJNFz73jHF2bSsgRtHDoB8KCuOwQMfdgAgDa4lKDF6CDIPCKBZPKrs2ubehdw==", - "dev": true, - "requires": { - "tslib": "^1.9.3" - } - }, - "@material/dom": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@material/dom/-/dom-1.0.1.tgz", - "integrity": "sha512-7gb9Tk8YBn2fLEa5fJfvDexG0QxvRGDb8c6uZEhvK4bTd2ZHCfHg9KrO+smC6Trbn5jC+FsBvdRZBbMjtS/E4g==", - "dev": true, - "requires": { - "tslib": "^1.9.3" - } - }, - "@material/elevation": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@material/elevation/-/elevation-1.0.0.tgz", - "integrity": "sha512-TqmvEXmZDYLm2X5lEnjKCsZMDkCXpxFFxL22AfCAQB5L4d0gAS7vqDEE797y4Rp+BBKEcOP71mum1l56RI3NBQ==", - "dev": true, - "requires": { - "@material/animation": "^1.0.0", - "@material/feature-targeting": "^0.44.1", - "@material/theme": "^1.0.0" - } - }, - "@material/list": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@material/list/-/list-1.0.1.tgz", - "integrity": "sha512-u9Bx+mghPy2qCHcSH2b0+0jbjTtkXNdiWjb8JDQcYmOUTfFoeQ16GqvjTybRPwoKA0UC9Hc/4U8gYvnK+bReRw==", - "dev": true, - "requires": { - "@material/base": "^1.0.0", - "@material/dom": "^1.0.1", - "@material/feature-targeting": "^0.44.1", - "@material/ripple": "^1.0.1", - "@material/rtl": "^0.42.0", - "@material/shape": "^1.0.0", - "@material/theme": "^1.0.0", - "@material/typography": "^1.0.0", - "tslib": "^1.9.3" - } - }, - "@material/ripple": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@material/ripple/-/ripple-1.0.1.tgz", - "integrity": "sha512-aBigRoVMjIU2lLDq7TMocI2H2YFbO1hICs5FTdSRp4Yis/QFTrgaW32q8yuHdZI56j+b2BWIWapqA2xpSmCMXQ==", - "dev": true, - "requires": { - "@material/animation": "^1.0.0", - "@material/base": "^1.0.0", - "@material/dom": "^1.0.1", - "@material/feature-targeting": "^0.44.1", - "@material/theme": "^1.0.0", - "tslib": "^1.9.3" - } - }, - "@material/rtl": { - "version": "0.42.0", - "resolved": "https://registry.npmjs.org/@material/rtl/-/rtl-0.42.0.tgz", - "integrity": "sha512-VrnrKJzhmspsN8WXHuxxBZ69yM5IwhCUqWr1t1eNfw3ZEvEj7i1g3P31HGowKThIN1dc1Wh4LE14rCISWCtv5w==", - "dev": true - }, - "@material/shape": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@material/shape/-/shape-1.0.0.tgz", - "integrity": "sha512-zfXEacPQZmH+ujVtaFyfAsYiF46j1QCcFzJeZVouG4pznrbA7XD6614Ywg0wbyWX5iB6hD52ld/IN+R/6oxKqA==", - "dev": true, - "requires": { - "@material/feature-targeting": "^0.44.1" - } - }, - "@material/theme": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@material/theme/-/theme-1.0.0.tgz", - "integrity": "sha512-Bg/BQLU5MmCwtQ3DHcSs9DodZB8PTvuItv1wXrP54S/wBVwryIB5uMDmERhnItbNnAFbkKhlAuhn1asMmMzfkQ==", - "dev": true, - "requires": { - "@material/feature-targeting": "^0.44.1" - } - }, - "@material/typography": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@material/typography/-/typography-1.0.0.tgz", - "integrity": "sha512-Oeqbjci1cC7jTE8/n3dwnkqKe9ZeWiaE+rgMtRYtRFw1HvAw14SpGA5EEAS/Li2Hu2KZ50FYCe3HYqShfxtChA==", - "dev": true, - "requires": { - "@material/feature-targeting": "^0.44.1" - } } } }, @@ -835,111 +428,6 @@ "@material/animation": "^1.0.0", "@material/feature-targeting": "^0.44.1", "@material/theme": "^1.1.0" - }, - "dependencies": { - "@material/animation": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@material/animation/-/animation-1.0.0.tgz", - "integrity": "sha512-Ed5/vggn6ZhSJ87yn3ZS1d826VJNFz73jHF2bSsgRtHDoB8KCuOwQMfdgAgDa4lKDF6CDIPCKBZPKrs2ubehdw==", - "dev": true, - "requires": { - "tslib": "^1.9.3" - } - }, - "@material/theme": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@material/theme/-/theme-1.1.0.tgz", - "integrity": "sha512-YYUV9Rhbx4r/EMb/zoOYJUWjhXChNaLlH1rqt3vpNVyxRcxGqoVMGp5u1XALBCFiD9dACPKLIkKyRYa928nmPQ==", - "dev": true, - "requires": { - "@material/feature-targeting": "^0.44.1" - } - } - } - }, - "@material/fab": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@material/fab/-/fab-1.1.0.tgz", - "integrity": "sha512-oCvo/4TFri+agTkGvEd5lREuwowInYw6OBbwNmGxpWQs4QGlMGHRS9/h8sfMYNZxs2TrwNUCwf/DK0WZEvniLQ==", - "dev": true, - "requires": { - "@material/animation": "^1.0.0", - "@material/elevation": "^1.1.0", - "@material/feature-targeting": "^0.44.1", - "@material/ripple": "^1.1.0", - "@material/rtl": "^0.42.0", - "@material/shape": "^1.0.0", - "@material/theme": "^1.1.0", - "@material/typography": "^1.0.0" - }, - "dependencies": { - "@material/animation": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@material/animation/-/animation-1.0.0.tgz", - "integrity": "sha512-Ed5/vggn6ZhSJ87yn3ZS1d826VJNFz73jHF2bSsgRtHDoB8KCuOwQMfdgAgDa4lKDF6CDIPCKBZPKrs2ubehdw==", - "dev": true, - "requires": { - "tslib": "^1.9.3" - } - }, - "@material/dom": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@material/dom/-/dom-1.1.0.tgz", - "integrity": "sha512-+HWW38ZaM2UBPu4+7QCusLDSf4tFT31rsEXHkTkxYSg/QpDivfPx6YDz4OmYtafmhPR1d1YjqB3MYysUHdodyw==", - "dev": true, - "requires": { - "tslib": "^1.9.3" - } - }, - "@material/elevation": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@material/elevation/-/elevation-1.1.0.tgz", - "integrity": "sha512-m4eATJvDhWK1BT+yA1iHz5mhAk8cV9olC4mjVzm4PTAqhDH2yya4WzjN1HPVHE/a65ObyZ7V4qopxu9MRocm3A==", - "dev": true, - "requires": { - "@material/animation": "^1.0.0", - "@material/feature-targeting": "^0.44.1", - "@material/theme": "^1.1.0" - } - }, - "@material/ripple": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@material/ripple/-/ripple-1.1.0.tgz", - "integrity": "sha512-mkfDBZAmxjpRG7V9TrfOmLxt1g/wvGHCXtYPgvH7W8ozjf53edqxLOFENEdvHbie27y9nyixzXn0gzU0HnxSeA==", - "dev": true, - "requires": { - "@material/animation": "^1.0.0", - "@material/base": "^1.0.0", - "@material/dom": "^1.1.0", - "@material/feature-targeting": "^0.44.1", - "@material/theme": "^1.1.0", - "tslib": "^1.9.3" - } - }, - "@material/rtl": { - "version": "0.42.0", - "resolved": "https://registry.npmjs.org/@material/rtl/-/rtl-0.42.0.tgz", - "integrity": "sha512-VrnrKJzhmspsN8WXHuxxBZ69yM5IwhCUqWr1t1eNfw3ZEvEj7i1g3P31HGowKThIN1dc1Wh4LE14rCISWCtv5w==", - "dev": true - }, - "@material/shape": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@material/shape/-/shape-1.0.0.tgz", - "integrity": "sha512-zfXEacPQZmH+ujVtaFyfAsYiF46j1QCcFzJeZVouG4pznrbA7XD6614Ywg0wbyWX5iB6hD52ld/IN+R/6oxKqA==", - "dev": true, - "requires": { - "@material/feature-targeting": "^0.44.1" - } - }, - "@material/theme": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@material/theme/-/theme-1.1.0.tgz", - "integrity": "sha512-YYUV9Rhbx4r/EMb/zoOYJUWjhXChNaLlH1rqt3vpNVyxRcxGqoVMGp5u1XALBCFiD9dACPKLIkKyRYa928nmPQ==", - "dev": true, - "requires": { - "@material/feature-targeting": "^0.44.1" - } - } } }, "@material/feature-targeting": { @@ -949,52 +437,17 @@ "dev": true }, "@material/floating-label": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@material/floating-label/-/floating-label-1.0.0.tgz", - "integrity": "sha512-yESFi8HEUO0PmPWvaU3VW4X8+xaoFHhj2xGxLPu2hGye4ZBjTpmjOX6y1vwYqZLD5KWXj91k695UAT6J2wtWFQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@material/floating-label/-/floating-label-1.1.0.tgz", + "integrity": "sha512-7q7V+9o9XesgMnK11up9z+BcRFwtLIAIqVTCL3liKRARNHuzw9FGrGMKhTJUKvLZ3z0bM1+FmmVlA3q9FJWehQ==", "dev": true, "requires": { "@material/animation": "^1.0.0", "@material/base": "^1.0.0", "@material/rtl": "^0.42.0", - "@material/theme": "^1.0.0", + "@material/theme": "^1.1.0", "@material/typography": "^1.0.0", "tslib": "^1.9.3" - }, - "dependencies": { - "@material/animation": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@material/animation/-/animation-1.0.0.tgz", - "integrity": "sha512-Ed5/vggn6ZhSJ87yn3ZS1d826VJNFz73jHF2bSsgRtHDoB8KCuOwQMfdgAgDa4lKDF6CDIPCKBZPKrs2ubehdw==", - "dev": true, - "requires": { - "tslib": "^1.9.3" - } - }, - "@material/rtl": { - "version": "0.42.0", - "resolved": "https://registry.npmjs.org/@material/rtl/-/rtl-0.42.0.tgz", - "integrity": "sha512-VrnrKJzhmspsN8WXHuxxBZ69yM5IwhCUqWr1t1eNfw3ZEvEj7i1g3P31HGowKThIN1dc1Wh4LE14rCISWCtv5w==", - "dev": true - }, - "@material/theme": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@material/theme/-/theme-1.0.0.tgz", - "integrity": "sha512-Bg/BQLU5MmCwtQ3DHcSs9DodZB8PTvuItv1wXrP54S/wBVwryIB5uMDmERhnItbNnAFbkKhlAuhn1asMmMzfkQ==", - "dev": true, - "requires": { - "@material/feature-targeting": "^0.44.1" - } - }, - "@material/typography": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@material/typography/-/typography-1.0.0.tgz", - "integrity": "sha512-Oeqbjci1cC7jTE8/n3dwnkqKe9ZeWiaE+rgMtRYtRFw1HvAw14SpGA5EEAS/Li2Hu2KZ50FYCe3HYqShfxtChA==", - "dev": true, - "requires": { - "@material/feature-targeting": "^0.44.1" - } - } } }, "@material/icon-button": { @@ -1008,212 +461,35 @@ "@material/ripple": "^1.1.0", "@material/theme": "^1.1.0", "tslib": "^1.9.3" - }, - "dependencies": { - "@material/animation": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@material/animation/-/animation-1.0.0.tgz", - "integrity": "sha512-Ed5/vggn6ZhSJ87yn3ZS1d826VJNFz73jHF2bSsgRtHDoB8KCuOwQMfdgAgDa4lKDF6CDIPCKBZPKrs2ubehdw==", - "dev": true, - "requires": { - "tslib": "^1.9.3" - } - }, - "@material/dom": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@material/dom/-/dom-1.1.0.tgz", - "integrity": "sha512-+HWW38ZaM2UBPu4+7QCusLDSf4tFT31rsEXHkTkxYSg/QpDivfPx6YDz4OmYtafmhPR1d1YjqB3MYysUHdodyw==", - "dev": true, - "requires": { - "tslib": "^1.9.3" - } - }, - "@material/ripple": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@material/ripple/-/ripple-1.1.0.tgz", - "integrity": "sha512-mkfDBZAmxjpRG7V9TrfOmLxt1g/wvGHCXtYPgvH7W8ozjf53edqxLOFENEdvHbie27y9nyixzXn0gzU0HnxSeA==", - "dev": true, - "requires": { - "@material/animation": "^1.0.0", - "@material/base": "^1.0.0", - "@material/dom": "^1.1.0", - "@material/feature-targeting": "^0.44.1", - "@material/theme": "^1.1.0", - "tslib": "^1.9.3" - } - }, - "@material/theme": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@material/theme/-/theme-1.1.0.tgz", - "integrity": "sha512-YYUV9Rhbx4r/EMb/zoOYJUWjhXChNaLlH1rqt3vpNVyxRcxGqoVMGp5u1XALBCFiD9dACPKLIkKyRYa928nmPQ==", - "dev": true, - "requires": { - "@material/feature-targeting": "^0.44.1" - } - } } }, - "@material/layout-grid": { - "version": "0.41.0", - "resolved": "https://registry.npmjs.org/@material/layout-grid/-/layout-grid-0.41.0.tgz", - "integrity": "sha512-Sa5RNoTGgfIojqJ9E94p7/k11V6q/tGk7HwKi4AQNAPjxield0zcl3G/SbsSb8YSHoK+D+7OXDN+n11x6EqF7g==", - "dev": true - }, "@material/line-ripple": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@material/line-ripple/-/line-ripple-1.0.0.tgz", - "integrity": "sha512-sFFpoFXVnqkknkac5bCrMhKGacay26AWVFfc3acaEGjQgkvF8VBV/bS41+CioACyubpc4JL69PU9Um/t7xAQVw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@material/line-ripple/-/line-ripple-1.1.0.tgz", + "integrity": "sha512-XqCxDNfgkh9zq0IVlTEFVjmQV8hx8m4vxLFM5qwHDDqcKPlX/Lfc8M43fmm9uE1CaJBC6whMGPvOt/dIla+RUg==", "dev": true, "requires": { "@material/animation": "^1.0.0", "@material/base": "^1.0.0", - "@material/theme": "^1.0.0", + "@material/theme": "^1.1.0", "tslib": "^1.9.3" - }, - "dependencies": { - "@material/animation": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@material/animation/-/animation-1.0.0.tgz", - "integrity": "sha512-Ed5/vggn6ZhSJ87yn3ZS1d826VJNFz73jHF2bSsgRtHDoB8KCuOwQMfdgAgDa4lKDF6CDIPCKBZPKrs2ubehdw==", - "dev": true, - "requires": { - "tslib": "^1.9.3" - } - }, - "@material/base": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@material/base/-/base-1.0.0.tgz", - "integrity": "sha512-5dxFp46x5FA+Epg6YHLzN+5zRt9S2wR84UdvVAEJ1egea94m9UHUg7y9tAnNSN16aexRSywmzyLwPr+i8PGEYA==", - "dev": true, - "requires": { - "tslib": "^1.9.3" - } - }, - "@material/theme": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@material/theme/-/theme-1.0.0.tgz", - "integrity": "sha512-Bg/BQLU5MmCwtQ3DHcSs9DodZB8PTvuItv1wXrP54S/wBVwryIB5uMDmERhnItbNnAFbkKhlAuhn1asMmMzfkQ==", - "dev": true, - "requires": { - "@material/feature-targeting": "^0.44.1" - } - } - } - }, - "@material/linear-progress": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@material/linear-progress/-/linear-progress-1.1.0.tgz", - "integrity": "sha512-MIK0cD/o1rTLREtAfTK3v60h7A0/wAu8/3v9dPTMlAPe+Y5gOarAizYWM3r/bp88sGO4gU8nPK0X9/daD28pNw==", - "dev": true, - "requires": { - "@material/animation": "^1.0.0", - "@material/base": "^1.0.0", - "@material/theme": "^1.1.0", - "tslib": "^1.9.3" - }, - "dependencies": { - "@material/animation": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@material/animation/-/animation-1.0.0.tgz", - "integrity": "sha512-Ed5/vggn6ZhSJ87yn3ZS1d826VJNFz73jHF2bSsgRtHDoB8KCuOwQMfdgAgDa4lKDF6CDIPCKBZPKrs2ubehdw==", - "dev": true, - "requires": { - "tslib": "^1.9.3" - } - }, - "@material/theme": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@material/theme/-/theme-1.1.0.tgz", - "integrity": "sha512-YYUV9Rhbx4r/EMb/zoOYJUWjhXChNaLlH1rqt3vpNVyxRcxGqoVMGp5u1XALBCFiD9dACPKLIkKyRYa928nmPQ==", - "dev": true, - "requires": { - "@material/feature-targeting": "^0.44.1" - } - } } }, "@material/list": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@material/list/-/list-1.0.1.tgz", - "integrity": "sha512-u9Bx+mghPy2qCHcSH2b0+0jbjTtkXNdiWjb8JDQcYmOUTfFoeQ16GqvjTybRPwoKA0UC9Hc/4U8gYvnK+bReRw==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@material/list/-/list-1.0.0.tgz", + "integrity": "sha512-XJZrflVGwYRAZFZrJA6uY/HTkLjTfHIwZs8KRUA5pf++jr9G/XTxiMCMkZrHwn+Ja4KFw+g1gYuSpaimF5aecQ==", "dev": true, "requires": { "@material/base": "^1.0.0", - "@material/dom": "^1.0.1", + "@material/dom": "^1.0.0", "@material/feature-targeting": "^0.44.1", - "@material/ripple": "^1.0.1", + "@material/ripple": "^1.0.0", "@material/rtl": "^0.42.0", "@material/shape": "^1.0.0", "@material/theme": "^1.0.0", "@material/typography": "^1.0.0", "tslib": "^1.9.3" - }, - "dependencies": { - "@material/animation": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@material/animation/-/animation-1.0.0.tgz", - "integrity": "sha512-Ed5/vggn6ZhSJ87yn3ZS1d826VJNFz73jHF2bSsgRtHDoB8KCuOwQMfdgAgDa4lKDF6CDIPCKBZPKrs2ubehdw==", - "dev": true, - "requires": { - "tslib": "^1.9.3" - } - }, - "@material/dom": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@material/dom/-/dom-1.0.1.tgz", - "integrity": "sha512-7gb9Tk8YBn2fLEa5fJfvDexG0QxvRGDb8c6uZEhvK4bTd2ZHCfHg9KrO+smC6Trbn5jC+FsBvdRZBbMjtS/E4g==", - "dev": true, - "requires": { - "tslib": "^1.9.3" - } - }, - "@material/ripple": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@material/ripple/-/ripple-1.0.1.tgz", - "integrity": "sha512-aBigRoVMjIU2lLDq7TMocI2H2YFbO1hICs5FTdSRp4Yis/QFTrgaW32q8yuHdZI56j+b2BWIWapqA2xpSmCMXQ==", - "dev": true, - "requires": { - "@material/animation": "^1.0.0", - "@material/base": "^1.0.0", - "@material/dom": "^1.0.1", - "@material/feature-targeting": "^0.44.1", - "@material/theme": "^1.0.0", - "tslib": "^1.9.3" - } - }, - "@material/rtl": { - "version": "0.42.0", - "resolved": "https://registry.npmjs.org/@material/rtl/-/rtl-0.42.0.tgz", - "integrity": "sha512-VrnrKJzhmspsN8WXHuxxBZ69yM5IwhCUqWr1t1eNfw3ZEvEj7i1g3P31HGowKThIN1dc1Wh4LE14rCISWCtv5w==", - "dev": true - }, - "@material/shape": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@material/shape/-/shape-1.0.0.tgz", - "integrity": "sha512-zfXEacPQZmH+ujVtaFyfAsYiF46j1QCcFzJeZVouG4pznrbA7XD6614Ywg0wbyWX5iB6hD52ld/IN+R/6oxKqA==", - "dev": true, - "requires": { - "@material/feature-targeting": "^0.44.1" - } - }, - "@material/theme": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@material/theme/-/theme-1.0.0.tgz", - "integrity": "sha512-Bg/BQLU5MmCwtQ3DHcSs9DodZB8PTvuItv1wXrP54S/wBVwryIB5uMDmERhnItbNnAFbkKhlAuhn1asMmMzfkQ==", - "dev": true, - "requires": { - "@material/feature-targeting": "^0.44.1" - } - }, - "@material/typography": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@material/typography/-/typography-1.0.0.tgz", - "integrity": "sha512-Oeqbjci1cC7jTE8/n3dwnkqKe9ZeWiaE+rgMtRYtRFw1HvAw14SpGA5EEAS/Li2Hu2KZ50FYCe3HYqShfxtChA==", - "dev": true, - "requires": { - "@material/feature-targeting": "^0.44.1" - } - } } }, "@material/menu": { @@ -1231,24 +507,6 @@ "tslib": "^1.9.3" }, "dependencies": { - "@material/animation": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@material/animation/-/animation-1.0.0.tgz", - "integrity": "sha512-Ed5/vggn6ZhSJ87yn3ZS1d826VJNFz73jHF2bSsgRtHDoB8KCuOwQMfdgAgDa4lKDF6CDIPCKBZPKrs2ubehdw==", - "dev": true, - "requires": { - "tslib": "^1.9.3" - } - }, - "@material/dom": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@material/dom/-/dom-1.1.0.tgz", - "integrity": "sha512-+HWW38ZaM2UBPu4+7QCusLDSf4tFT31rsEXHkTkxYSg/QpDivfPx6YDz4OmYtafmhPR1d1YjqB3MYysUHdodyw==", - "dev": true, - "requires": { - "tslib": "^1.9.3" - } - }, "@material/list": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@material/list/-/list-1.1.1.tgz", @@ -1265,123 +523,23 @@ "@material/typography": "^1.0.0", "tslib": "^1.9.3" } - }, - "@material/menu-surface": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@material/menu-surface/-/menu-surface-1.1.1.tgz", - "integrity": "sha512-bOY3LsVamovl/yb4hMBDi3gh8UFEYyP3GHNpTt+X5KBPDehoFhXG9s21aNvGbHZbwURhhWiRzy/OUC3MLE/hKA==", - "dev": true, - "requires": { - "@material/animation": "^1.0.0", - "@material/base": "^1.0.0", - "@material/elevation": "^1.1.0", - "@material/feature-targeting": "^0.44.1", - "@material/rtl": "^0.42.0", - "@material/shape": "^1.1.1", - "@material/theme": "^1.1.0", - "tslib": "^1.9.3" - } - }, - "@material/ripple": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@material/ripple/-/ripple-1.1.0.tgz", - "integrity": "sha512-mkfDBZAmxjpRG7V9TrfOmLxt1g/wvGHCXtYPgvH7W8ozjf53edqxLOFENEdvHbie27y9nyixzXn0gzU0HnxSeA==", - "dev": true, - "requires": { - "@material/animation": "^1.0.0", - "@material/base": "^1.0.0", - "@material/dom": "^1.1.0", - "@material/feature-targeting": "^0.44.1", - "@material/theme": "^1.1.0", - "tslib": "^1.9.3" - } - }, - "@material/rtl": { - "version": "0.42.0", - "resolved": "https://registry.npmjs.org/@material/rtl/-/rtl-0.42.0.tgz", - "integrity": "sha512-VrnrKJzhmspsN8WXHuxxBZ69yM5IwhCUqWr1t1eNfw3ZEvEj7i1g3P31HGowKThIN1dc1Wh4LE14rCISWCtv5w==", - "dev": true - }, - "@material/shape": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@material/shape/-/shape-1.1.1.tgz", - "integrity": "sha512-Jge/h1XBLjdLlam4QMSzVgM99e/N8+elQROPkltqVP7eyLc17BwM3aP5cLVfZDgrJgvsjUxbgAP1H1j8sqmUyg==", - "dev": true, - "requires": { - "@material/feature-targeting": "^0.44.1" - } - }, - "@material/theme": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@material/theme/-/theme-1.1.0.tgz", - "integrity": "sha512-YYUV9Rhbx4r/EMb/zoOYJUWjhXChNaLlH1rqt3vpNVyxRcxGqoVMGp5u1XALBCFiD9dACPKLIkKyRYa928nmPQ==", - "dev": true, - "requires": { - "@material/feature-targeting": "^0.44.1" - } } } }, "@material/menu-surface": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@material/menu-surface/-/menu-surface-1.0.1.tgz", - "integrity": "sha512-JFUa3kQ+NtpuK/mgWIcyhC1AClKmt9EQdW4SG2KQhPAGg0juWiZwyMySDIjf+V0buSUZXZ7N26bi32+Y1LvZ3w==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@material/menu-surface/-/menu-surface-1.1.1.tgz", + "integrity": "sha512-bOY3LsVamovl/yb4hMBDi3gh8UFEYyP3GHNpTt+X5KBPDehoFhXG9s21aNvGbHZbwURhhWiRzy/OUC3MLE/hKA==", "dev": true, "requires": { "@material/animation": "^1.0.0", "@material/base": "^1.0.0", - "@material/elevation": "^1.0.0", + "@material/elevation": "^1.1.0", "@material/feature-targeting": "^0.44.1", "@material/rtl": "^0.42.0", - "@material/shape": "^1.0.0", - "@material/theme": "^1.0.0", + "@material/shape": "^1.1.1", + "@material/theme": "^1.1.0", "tslib": "^1.9.3" - }, - "dependencies": { - "@material/animation": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@material/animation/-/animation-1.0.0.tgz", - "integrity": "sha512-Ed5/vggn6ZhSJ87yn3ZS1d826VJNFz73jHF2bSsgRtHDoB8KCuOwQMfdgAgDa4lKDF6CDIPCKBZPKrs2ubehdw==", - "dev": true, - "requires": { - "tslib": "^1.9.3" - } - }, - "@material/elevation": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@material/elevation/-/elevation-1.0.0.tgz", - "integrity": "sha512-TqmvEXmZDYLm2X5lEnjKCsZMDkCXpxFFxL22AfCAQB5L4d0gAS7vqDEE797y4Rp+BBKEcOP71mum1l56RI3NBQ==", - "dev": true, - "requires": { - "@material/animation": "^1.0.0", - "@material/feature-targeting": "^0.44.1", - "@material/theme": "^1.0.0" - } - }, - "@material/rtl": { - "version": "0.42.0", - "resolved": "https://registry.npmjs.org/@material/rtl/-/rtl-0.42.0.tgz", - "integrity": "sha512-VrnrKJzhmspsN8WXHuxxBZ69yM5IwhCUqWr1t1eNfw3ZEvEj7i1g3P31HGowKThIN1dc1Wh4LE14rCISWCtv5w==", - "dev": true - }, - "@material/shape": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@material/shape/-/shape-1.0.0.tgz", - "integrity": "sha512-zfXEacPQZmH+ujVtaFyfAsYiF46j1QCcFzJeZVouG4pznrbA7XD6614Ywg0wbyWX5iB6hD52ld/IN+R/6oxKqA==", - "dev": true, - "requires": { - "@material/feature-targeting": "^0.44.1" - } - }, - "@material/theme": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@material/theme/-/theme-1.0.0.tgz", - "integrity": "sha512-Bg/BQLU5MmCwtQ3DHcSs9DodZB8PTvuItv1wXrP54S/wBVwryIB5uMDmERhnItbNnAFbkKhlAuhn1asMmMzfkQ==", - "dev": true, - "requires": { - "@material/feature-targeting": "^0.44.1" - } - } } }, "@material/notched-outline": { @@ -1397,55 +555,6 @@ "@material/shape": "^1.1.1", "@material/theme": "^1.1.0", "tslib": "^1.9.3" - }, - "dependencies": { - "@material/animation": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@material/animation/-/animation-1.0.0.tgz", - "integrity": "sha512-Ed5/vggn6ZhSJ87yn3ZS1d826VJNFz73jHF2bSsgRtHDoB8KCuOwQMfdgAgDa4lKDF6CDIPCKBZPKrs2ubehdw==", - "dev": true, - "requires": { - "tslib": "^1.9.3" - } - }, - "@material/floating-label": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@material/floating-label/-/floating-label-1.1.0.tgz", - "integrity": "sha512-7q7V+9o9XesgMnK11up9z+BcRFwtLIAIqVTCL3liKRARNHuzw9FGrGMKhTJUKvLZ3z0bM1+FmmVlA3q9FJWehQ==", - "dev": true, - "requires": { - "@material/animation": "^1.0.0", - "@material/base": "^1.0.0", - "@material/rtl": "^0.42.0", - "@material/theme": "^1.1.0", - "@material/typography": "^1.0.0", - "tslib": "^1.9.3" - } - }, - "@material/rtl": { - "version": "0.42.0", - "resolved": "https://registry.npmjs.org/@material/rtl/-/rtl-0.42.0.tgz", - "integrity": "sha512-VrnrKJzhmspsN8WXHuxxBZ69yM5IwhCUqWr1t1eNfw3ZEvEj7i1g3P31HGowKThIN1dc1Wh4LE14rCISWCtv5w==", - "dev": true - }, - "@material/shape": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@material/shape/-/shape-1.1.1.tgz", - "integrity": "sha512-Jge/h1XBLjdLlam4QMSzVgM99e/N8+elQROPkltqVP7eyLc17BwM3aP5cLVfZDgrJgvsjUxbgAP1H1j8sqmUyg==", - "dev": true, - "requires": { - "@material/feature-targeting": "^0.44.1" - } - }, - "@material/theme": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@material/theme/-/theme-1.1.0.tgz", - "integrity": "sha512-YYUV9Rhbx4r/EMb/zoOYJUWjhXChNaLlH1rqt3vpNVyxRcxGqoVMGp5u1XALBCFiD9dACPKLIkKyRYa928nmPQ==", - "dev": true, - "requires": { - "@material/feature-targeting": "^0.44.1" - } - } } }, "@material/radio": { @@ -1460,638 +569,128 @@ "@material/ripple": "^1.1.0", "@material/theme": "^1.1.0", "tslib": "^1.9.3" - }, - "dependencies": { - "@material/animation": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@material/animation/-/animation-1.0.0.tgz", - "integrity": "sha512-Ed5/vggn6ZhSJ87yn3ZS1d826VJNFz73jHF2bSsgRtHDoB8KCuOwQMfdgAgDa4lKDF6CDIPCKBZPKrs2ubehdw==", - "dev": true, - "requires": { - "tslib": "^1.9.3" - } - }, - "@material/dom": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@material/dom/-/dom-1.1.0.tgz", - "integrity": "sha512-+HWW38ZaM2UBPu4+7QCusLDSf4tFT31rsEXHkTkxYSg/QpDivfPx6YDz4OmYtafmhPR1d1YjqB3MYysUHdodyw==", - "dev": true, - "requires": { - "tslib": "^1.9.3" - } - }, - "@material/ripple": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@material/ripple/-/ripple-1.1.0.tgz", - "integrity": "sha512-mkfDBZAmxjpRG7V9TrfOmLxt1g/wvGHCXtYPgvH7W8ozjf53edqxLOFENEdvHbie27y9nyixzXn0gzU0HnxSeA==", - "dev": true, - "requires": { - "@material/animation": "^1.0.0", - "@material/base": "^1.0.0", - "@material/dom": "^1.1.0", - "@material/feature-targeting": "^0.44.1", - "@material/theme": "^1.1.0", - "tslib": "^1.9.3" - } - }, - "@material/theme": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@material/theme/-/theme-1.1.0.tgz", - "integrity": "sha512-YYUV9Rhbx4r/EMb/zoOYJUWjhXChNaLlH1rqt3vpNVyxRcxGqoVMGp5u1XALBCFiD9dACPKLIkKyRYa928nmPQ==", - "dev": true, - "requires": { - "@material/feature-targeting": "^0.44.1" - } - } } }, "@material/ripple": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@material/ripple/-/ripple-1.0.0.tgz", - "integrity": "sha512-WUjc6LU2D9mRjfHJPQgj8ljG0NuppwOAM6bIt5wyJ3aiUyYQqW05cvB7YCbYE7WHgfxFtL6UOrGuUG4Z+izJDw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@material/ripple/-/ripple-1.1.0.tgz", + "integrity": "sha512-mkfDBZAmxjpRG7V9TrfOmLxt1g/wvGHCXtYPgvH7W8ozjf53edqxLOFENEdvHbie27y9nyixzXn0gzU0HnxSeA==", "dev": true, "requires": { "@material/animation": "^1.0.0", "@material/base": "^1.0.0", - "@material/dom": "^1.0.0", + "@material/dom": "^1.1.0", "@material/feature-targeting": "^0.44.1", - "@material/theme": "^1.0.0", + "@material/theme": "^1.1.0", "tslib": "^1.9.3" - }, - "dependencies": { - "@material/animation": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@material/animation/-/animation-1.0.0.tgz", - "integrity": "sha512-Ed5/vggn6ZhSJ87yn3ZS1d826VJNFz73jHF2bSsgRtHDoB8KCuOwQMfdgAgDa4lKDF6CDIPCKBZPKrs2ubehdw==", - "dev": true, - "requires": { - "tslib": "^1.9.3" - } - }, - "@material/dom": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@material/dom/-/dom-1.0.0.tgz", - "integrity": "sha512-P2WDLk/9iZxg4RCvwqCtrObm0Qm0EF5G6X/rw21FKTg6uhwmPR75tCj2Zr1yyvVS9rjLxXZf0bQRsgvKxVE6Zw==", - "dev": true, - "requires": { - "tslib": "^1.9.3" - } - }, - "@material/theme": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@material/theme/-/theme-1.0.0.tgz", - "integrity": "sha512-Bg/BQLU5MmCwtQ3DHcSs9DodZB8PTvuItv1wXrP54S/wBVwryIB5uMDmERhnItbNnAFbkKhlAuhn1asMmMzfkQ==", - "dev": true, - "requires": { - "@material/feature-targeting": "^0.44.1" - } - } } }, "@material/rtl": { - "version": "0.40.1", - "resolved": "https://registry.npmjs.org/@material/rtl/-/rtl-0.40.1.tgz", - "integrity": "sha512-Pk6Iw1/KrhWZoZtkDsPMDUW0bm7Z1zeXb3MTQRCFmjf1wU5cRxgOTtuoZLcJqlcKGppLAzJL/TJV3E7KEiuL0A==", + "version": "0.42.0", + "resolved": "https://registry.npmjs.org/@material/rtl/-/rtl-0.42.0.tgz", + "integrity": "sha512-VrnrKJzhmspsN8WXHuxxBZ69yM5IwhCUqWr1t1eNfw3ZEvEj7i1g3P31HGowKThIN1dc1Wh4LE14rCISWCtv5w==", "dev": true }, "@material/select": { - "version": "0.40.1", - "resolved": "https://registry.npmjs.org/@material/select/-/select-0.40.1.tgz", - "integrity": "sha512-aOMoOEzJRyQbTYiXRifqaLEvX0Oj5w/WWa9+UStemeIURVSnOlaVPlnNY+dcvr6vvFeGfBX6q/G1O+CGk0FIbA==", - "dev": true, - "requires": { - "@material/animation": "^0.40.1", - "@material/base": "^0.40.1", - "@material/floating-label": "^0.40.1", - "@material/line-ripple": "^0.40.1", - "@material/notched-outline": "^0.40.1", - "@material/ripple": "^0.40.1", - "@material/rtl": "^0.40.1", - "@material/shape": "^0.40.1", - "@material/theme": "^0.40.1", - "@material/typography": "^0.40.1" - }, - "dependencies": { - "@material/animation": { - "version": "0.40.1", - "resolved": "https://registry.npmjs.org/@material/animation/-/animation-0.40.1.tgz", - "integrity": "sha512-HtxFUw04EHg4S6pXfTA3Z0wKxnNDNcDhe1Np2Y2geo+lAk2Hb7m8yCL/GaL9o2I/eRYsgUXC0U7+Mk74GCz3zw==", - "dev": true - }, - "@material/base": { - "version": "0.40.1", - "resolved": "https://registry.npmjs.org/@material/base/-/base-0.40.1.tgz", - "integrity": "sha512-vrbOK8hONVCYgURQ9h7nkXvMdYnZVVNmAfFFijF8fbWQdwnoPcNTdqV6RoQlhBEqHYHQqLNfdUDlznAPKLclGQ==", - "dev": true - }, - "@material/floating-label": { - "version": "0.40.1", - "resolved": "https://registry.npmjs.org/@material/floating-label/-/floating-label-0.40.1.tgz", - "integrity": "sha512-b8/Wj4qfqOSJRSoQ1X7EC2lQc2hF0IGPXIbGpanZYe0c3wnhRXdSYd4kUnDw6rHgKn2IfnOEZkzOetODkftWDw==", - "dev": true, - "requires": { - "@material/animation": "^0.40.1", - "@material/base": "^0.40.1", - "@material/rtl": "^0.40.1", - "@material/theme": "^0.40.1", - "@material/typography": "^0.40.1" - } - }, - "@material/line-ripple": { - "version": "0.40.1", - "resolved": "https://registry.npmjs.org/@material/line-ripple/-/line-ripple-0.40.1.tgz", - "integrity": "sha512-S4Iq9qtxAF0ViwGfl+Dkb/dDd9EdJx/MpzA0/Lq51XvxWoJJvLfEEvX9j+V41ZhPd9FzqocTtUCCAw7Cov5mEw==", - "dev": true, - "requires": { - "@material/animation": "^0.40.1", - "@material/base": "^0.40.1", - "@material/theme": "^0.40.1" - } - }, - "@material/notched-outline": { - "version": "0.40.1", - "resolved": "https://registry.npmjs.org/@material/notched-outline/-/notched-outline-0.40.1.tgz", - "integrity": "sha512-b3V6/G7TW1P21Frw3JxB6Hc6k7MbrmPSynGuVUPLmuX+eSUm6GhxOy0rK4UzlBZumDnyyJDw+2HvJd1BYoOgeg==", - "dev": true, - "requires": { - "@material/animation": "^0.40.1", - "@material/base": "^0.40.1", - "@material/rtl": "^0.40.1", - "@material/shape": "^0.40.1", - "@material/theme": "^0.40.1" - } - }, - "@material/ripple": { - "version": "0.40.1", - "resolved": "https://registry.npmjs.org/@material/ripple/-/ripple-0.40.1.tgz", - "integrity": "sha512-sndeTS4VHa0v1UGj7MNcxMCuO9LJ1DjoL1EjE6BH3Lm3M1MnXJHdsBo2CgPbU/FI84tt6+eyHGOYPdPrEDJhCA==", - "dev": true, - "requires": { - "@material/animation": "^0.40.1", - "@material/base": "^0.40.1", - "@material/theme": "^0.40.1" - } - }, - "@material/shape": { - "version": "0.40.1", - "resolved": "https://registry.npmjs.org/@material/shape/-/shape-0.40.1.tgz", - "integrity": "sha512-o1pw5+s/jWqsKbUAkCCaEcB8XLqJ4FlZhYfSvxZ88WRw9zoWOt9iQMMP82wLWhUX1DSzpNRI8BAD7aNLK6yRlA==", - "dev": true - }, - "@material/theme": { - "version": "0.40.1", - "resolved": "https://registry.npmjs.org/@material/theme/-/theme-0.40.1.tgz", - "integrity": "sha512-cH1CsGIDisEQ2oroZhLTypV0Ir00x3WIwFXnPo7qv3832tuIDkZY623U3rUax6KNPz4Hh1j0tNpTwgrNZwvwWA==", - "dev": true - }, - "@material/typography": { - "version": "0.40.1", - "resolved": "https://registry.npmjs.org/@material/typography/-/typography-0.40.1.tgz", - "integrity": "sha512-LkW2tAsId8zGKxGA5VIFXV/D1h4vCHQIuALRMaDpHbNGffgr2ubtJNvCh2EQkm19MTv4igVLEjn1Svh0dXcTpA==", - "dev": true - } - } - }, - "@material/shape": { - "version": "0.41.0", - "resolved": "https://registry.npmjs.org/@material/shape/-/shape-0.41.0.tgz", - "integrity": "sha512-k1K3CjOVxclfb/0r28cOa2oJpP7QMA2fP0SOS3Vh8ale5Q2jkaHTL60KX8VkHvV6rMqShpXW+60gPjoz5XRbDQ==", - "dev": true - }, - "@material/snackbar": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@material/snackbar/-/snackbar-1.0.1.tgz", - "integrity": "sha512-Gts1N3DA7uEac7JZ1kNwTN+ljgrMDzVGgLAwgcPFSssndW08GSkmZSAko8Lk0Zb4hDY90WtI4jPwuzekixIrWw==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@material/select/-/select-1.1.1.tgz", + "integrity": "sha512-si/RGmqRcLflBmA4EXeiR4gVuOIM0YAqIwVN7WOwrx+AhfBDuvI9sPMDz2UXZ2VoFpll73TTRMdah2MPTpmCxQ==", "dev": true, "requires": { "@material/animation": "^1.0.0", "@material/base": "^1.0.0", - "@material/button": "^1.0.1", - "@material/dom": "^1.0.1", - "@material/icon-button": "^1.0.1", - "@material/ripple": "^1.0.1", + "@material/floating-label": "^1.1.0", + "@material/line-ripple": "^1.1.0", + "@material/menu": "^1.1.1", + "@material/menu-surface": "^1.1.1", + "@material/notched-outline": "^1.1.1", + "@material/ripple": "^1.1.0", "@material/rtl": "^0.42.0", - "@material/shape": "^1.0.0", - "@material/theme": "^1.0.0", + "@material/shape": "^1.1.1", + "@material/theme": "^1.1.0", "@material/typography": "^1.0.0", "tslib": "^1.9.3" - }, - "dependencies": { - "@material/animation": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@material/animation/-/animation-1.0.0.tgz", - "integrity": "sha512-Ed5/vggn6ZhSJ87yn3ZS1d826VJNFz73jHF2bSsgRtHDoB8KCuOwQMfdgAgDa4lKDF6CDIPCKBZPKrs2ubehdw==", - "dev": true, - "requires": { - "tslib": "^1.9.3" - } - }, - "@material/button": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@material/button/-/button-1.0.1.tgz", - "integrity": "sha512-gMGuAlG9ETKH14Up4RAH87Z+51NkU725C4H7J0AnICzG75Rto8PtpMqNu5+w/c1cQM1Hudc8JfsflneMEZ10oA==", - "dev": true, - "requires": { - "@material/elevation": "^1.0.0", - "@material/feature-targeting": "^0.44.1", - "@material/ripple": "^1.0.1", - "@material/rtl": "^0.42.0", - "@material/shape": "^1.0.0", - "@material/theme": "^1.0.0", - "@material/typography": "^1.0.0" - } - }, - "@material/dom": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@material/dom/-/dom-1.0.1.tgz", - "integrity": "sha512-7gb9Tk8YBn2fLEa5fJfvDexG0QxvRGDb8c6uZEhvK4bTd2ZHCfHg9KrO+smC6Trbn5jC+FsBvdRZBbMjtS/E4g==", - "dev": true, - "requires": { - "tslib": "^1.9.3" - } - }, - "@material/elevation": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@material/elevation/-/elevation-1.0.0.tgz", - "integrity": "sha512-TqmvEXmZDYLm2X5lEnjKCsZMDkCXpxFFxL22AfCAQB5L4d0gAS7vqDEE797y4Rp+BBKEcOP71mum1l56RI3NBQ==", - "dev": true, - "requires": { - "@material/animation": "^1.0.0", - "@material/feature-targeting": "^0.44.1", - "@material/theme": "^1.0.0" - } - }, - "@material/icon-button": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@material/icon-button/-/icon-button-1.0.1.tgz", - "integrity": "sha512-a2jnwYMTDwPVsOIc4+osZIbXwQM7ujy1grQtjvvS0CVogsOdLXYzqUYrI8V9aHxdAdndos3ssm3JAziQhbsuEQ==", - "dev": true, - "requires": { - "@material/base": "^1.0.0", - "@material/ripple": "^1.0.1", - "@material/theme": "^1.0.0", - "tslib": "^1.9.3" - } - }, - "@material/ripple": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@material/ripple/-/ripple-1.0.1.tgz", - "integrity": "sha512-aBigRoVMjIU2lLDq7TMocI2H2YFbO1hICs5FTdSRp4Yis/QFTrgaW32q8yuHdZI56j+b2BWIWapqA2xpSmCMXQ==", - "dev": true, - "requires": { - "@material/animation": "^1.0.0", - "@material/base": "^1.0.0", - "@material/dom": "^1.0.1", - "@material/feature-targeting": "^0.44.1", - "@material/theme": "^1.0.0", - "tslib": "^1.9.3" - } - }, - "@material/rtl": { - "version": "0.42.0", - "resolved": "https://registry.npmjs.org/@material/rtl/-/rtl-0.42.0.tgz", - "integrity": "sha512-VrnrKJzhmspsN8WXHuxxBZ69yM5IwhCUqWr1t1eNfw3ZEvEj7i1g3P31HGowKThIN1dc1Wh4LE14rCISWCtv5w==", - "dev": true - }, - "@material/shape": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@material/shape/-/shape-1.0.0.tgz", - "integrity": "sha512-zfXEacPQZmH+ujVtaFyfAsYiF46j1QCcFzJeZVouG4pznrbA7XD6614Ywg0wbyWX5iB6hD52ld/IN+R/6oxKqA==", - "dev": true, - "requires": { - "@material/feature-targeting": "^0.44.1" - } - }, - "@material/theme": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@material/theme/-/theme-1.0.0.tgz", - "integrity": "sha512-Bg/BQLU5MmCwtQ3DHcSs9DodZB8PTvuItv1wXrP54S/wBVwryIB5uMDmERhnItbNnAFbkKhlAuhn1asMmMzfkQ==", - "dev": true, - "requires": { - "@material/feature-targeting": "^0.44.1" - } - }, - "@material/typography": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@material/typography/-/typography-1.0.0.tgz", - "integrity": "sha512-Oeqbjci1cC7jTE8/n3dwnkqKe9ZeWiaE+rgMtRYtRFw1HvAw14SpGA5EEAS/Li2Hu2KZ50FYCe3HYqShfxtChA==", - "dev": true, - "requires": { - "@material/feature-targeting": "^0.44.1" - } - } } }, - "@material/switch": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@material/switch/-/switch-1.0.1.tgz", - "integrity": "sha512-McSLQA+VQdNV+wT6pRLpvlXv7V2BLsUkyIuCog8+Cs0Gsi4Lgs17I6iqdzQi4tySAX+G7nl6vqdUem/udUJZmw==", + "@material/shape": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@material/shape/-/shape-1.1.1.tgz", + "integrity": "sha512-Jge/h1XBLjdLlam4QMSzVgM99e/N8+elQROPkltqVP7eyLc17BwM3aP5cLVfZDgrJgvsjUxbgAP1H1j8sqmUyg==", "dev": true, "requires": { - "@material/animation": "^1.0.0", - "@material/base": "^1.0.0", - "@material/dom": "^1.0.1", - "@material/elevation": "^1.0.0", - "@material/feature-targeting": "^0.44.1", - "@material/ripple": "^1.0.1", - "@material/rtl": "^0.42.0", - "@material/theme": "^1.0.0", - "tslib": "^1.9.3" - }, - "dependencies": { - "@material/animation": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@material/animation/-/animation-1.0.0.tgz", - "integrity": "sha512-Ed5/vggn6ZhSJ87yn3ZS1d826VJNFz73jHF2bSsgRtHDoB8KCuOwQMfdgAgDa4lKDF6CDIPCKBZPKrs2ubehdw==", - "dev": true, - "requires": { - "tslib": "^1.9.3" - } - }, - "@material/dom": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@material/dom/-/dom-1.0.1.tgz", - "integrity": "sha512-7gb9Tk8YBn2fLEa5fJfvDexG0QxvRGDb8c6uZEhvK4bTd2ZHCfHg9KrO+smC6Trbn5jC+FsBvdRZBbMjtS/E4g==", - "dev": true, - "requires": { - "tslib": "^1.9.3" - } - }, - "@material/elevation": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@material/elevation/-/elevation-1.0.0.tgz", - "integrity": "sha512-TqmvEXmZDYLm2X5lEnjKCsZMDkCXpxFFxL22AfCAQB5L4d0gAS7vqDEE797y4Rp+BBKEcOP71mum1l56RI3NBQ==", - "dev": true, - "requires": { - "@material/animation": "^1.0.0", - "@material/feature-targeting": "^0.44.1", - "@material/theme": "^1.0.0" - } - }, - "@material/ripple": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@material/ripple/-/ripple-1.0.1.tgz", - "integrity": "sha512-aBigRoVMjIU2lLDq7TMocI2H2YFbO1hICs5FTdSRp4Yis/QFTrgaW32q8yuHdZI56j+b2BWIWapqA2xpSmCMXQ==", - "dev": true, - "requires": { - "@material/animation": "^1.0.0", - "@material/base": "^1.0.0", - "@material/dom": "^1.0.1", - "@material/feature-targeting": "^0.44.1", - "@material/theme": "^1.0.0", - "tslib": "^1.9.3" - } - }, - "@material/rtl": { - "version": "0.42.0", - "resolved": "https://registry.npmjs.org/@material/rtl/-/rtl-0.42.0.tgz", - "integrity": "sha512-VrnrKJzhmspsN8WXHuxxBZ69yM5IwhCUqWr1t1eNfw3ZEvEj7i1g3P31HGowKThIN1dc1Wh4LE14rCISWCtv5w==", - "dev": true - }, - "@material/theme": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@material/theme/-/theme-1.0.0.tgz", - "integrity": "sha512-Bg/BQLU5MmCwtQ3DHcSs9DodZB8PTvuItv1wXrP54S/wBVwryIB5uMDmERhnItbNnAFbkKhlAuhn1asMmMzfkQ==", - "dev": true, - "requires": { - "@material/feature-targeting": "^0.44.1" - } - } + "@material/feature-targeting": "^0.44.1" } }, - "@material/tab": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@material/tab/-/tab-1.0.1.tgz", - "integrity": "sha512-//JXHaL1ebTpR6Z1mZpd6Ltry/kD840HSI/NQRMCdjxKjdap3cVtNfjRZ5ST4snGEqihLQ7gsqfDg/XZ5k0j3g==", + "@material/snackbar": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@material/snackbar/-/snackbar-1.1.1.tgz", + "integrity": "sha512-pnWAJuEC+Q+EF95kjEnBuQu7P6hSWeJQ/R1ljd1VthUd87M/uBhqOcoXqGrPbFVYlOj01Fy5/wctf9wFIJdQiA==", "dev": true, "requires": { + "@material/animation": "^1.0.0", "@material/base": "^1.0.0", - "@material/ripple": "^1.0.1", + "@material/button": "^1.1.1", + "@material/dom": "^1.1.0", + "@material/icon-button": "^1.1.0", + "@material/ripple": "^1.1.0", "@material/rtl": "^0.42.0", - "@material/tab-indicator": "^1.0.0", - "@material/theme": "^1.0.0", + "@material/shape": "^1.1.1", + "@material/theme": "^1.1.0", + "@material/typography": "^1.0.0", + "tslib": "^1.9.3" + } + }, + "@material/tab": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@material/tab/-/tab-1.1.1.tgz", + "integrity": "sha512-PpBehtp1eeh9wNDkYdRS3JpFa4Do9wMqK4OZo7ZSntKucjd9bx0TiA2TLj8WuFVWIWmXMcsz3DAWshyG3JAs0Q==", + "dev": true, + "requires": { + "@material/base": "^1.0.0", + "@material/ripple": "^1.1.0", + "@material/rtl": "^0.42.0", + "@material/tab-indicator": "^1.1.0", + "@material/theme": "^1.1.0", "@material/typography": "^1.0.0", "tslib": "^1.9.3" - }, - "dependencies": { - "@material/animation": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@material/animation/-/animation-1.0.0.tgz", - "integrity": "sha512-Ed5/vggn6ZhSJ87yn3ZS1d826VJNFz73jHF2bSsgRtHDoB8KCuOwQMfdgAgDa4lKDF6CDIPCKBZPKrs2ubehdw==", - "dev": true, - "requires": { - "tslib": "^1.9.3" - } - }, - "@material/dom": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@material/dom/-/dom-1.0.1.tgz", - "integrity": "sha512-7gb9Tk8YBn2fLEa5fJfvDexG0QxvRGDb8c6uZEhvK4bTd2ZHCfHg9KrO+smC6Trbn5jC+FsBvdRZBbMjtS/E4g==", - "dev": true, - "requires": { - "tslib": "^1.9.3" - } - }, - "@material/ripple": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@material/ripple/-/ripple-1.0.1.tgz", - "integrity": "sha512-aBigRoVMjIU2lLDq7TMocI2H2YFbO1hICs5FTdSRp4Yis/QFTrgaW32q8yuHdZI56j+b2BWIWapqA2xpSmCMXQ==", - "dev": true, - "requires": { - "@material/animation": "^1.0.0", - "@material/base": "^1.0.0", - "@material/dom": "^1.0.1", - "@material/feature-targeting": "^0.44.1", - "@material/theme": "^1.0.0", - "tslib": "^1.9.3" - } - }, - "@material/rtl": { - "version": "0.42.0", - "resolved": "https://registry.npmjs.org/@material/rtl/-/rtl-0.42.0.tgz", - "integrity": "sha512-VrnrKJzhmspsN8WXHuxxBZ69yM5IwhCUqWr1t1eNfw3ZEvEj7i1g3P31HGowKThIN1dc1Wh4LE14rCISWCtv5w==", - "dev": true - }, - "@material/theme": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@material/theme/-/theme-1.0.0.tgz", - "integrity": "sha512-Bg/BQLU5MmCwtQ3DHcSs9DodZB8PTvuItv1wXrP54S/wBVwryIB5uMDmERhnItbNnAFbkKhlAuhn1asMmMzfkQ==", - "dev": true, - "requires": { - "@material/feature-targeting": "^0.44.1" - } - }, - "@material/typography": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@material/typography/-/typography-1.0.0.tgz", - "integrity": "sha512-Oeqbjci1cC7jTE8/n3dwnkqKe9ZeWiaE+rgMtRYtRFw1HvAw14SpGA5EEAS/Li2Hu2KZ50FYCe3HYqShfxtChA==", - "dev": true, - "requires": { - "@material/feature-targeting": "^0.44.1" - } - } } }, "@material/tab-bar": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@material/tab-bar/-/tab-bar-1.0.1.tgz", - "integrity": "sha512-zou4iUmTPW96uEepD3whGbkPeo4SvuaQCuR0FsRiBQA2fCdnGX2Eyn03GY5Kv41lDw9RpoEoMflkKU/njHK8gw==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@material/tab-bar/-/tab-bar-1.1.1.tgz", + "integrity": "sha512-BwMcZlaQmlN919jugVl4AOnt/sQYfv42/TRT2EFbFQGfFUN+8C0kwWL8m5TDhZkQ5S6IR5oPLX7kqC0NDYqW+Q==", "dev": true, "requires": { "@material/base": "^1.0.0", - "@material/elevation": "^1.0.0", - "@material/tab": "^1.0.1", - "@material/tab-scroller": "^1.0.1", + "@material/elevation": "^1.1.0", + "@material/tab": "^1.1.1", + "@material/tab-scroller": "^1.1.1", "tslib": "^1.9.3" - }, - "dependencies": { - "@material/animation": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@material/animation/-/animation-1.0.0.tgz", - "integrity": "sha512-Ed5/vggn6ZhSJ87yn3ZS1d826VJNFz73jHF2bSsgRtHDoB8KCuOwQMfdgAgDa4lKDF6CDIPCKBZPKrs2ubehdw==", - "dev": true, - "requires": { - "tslib": "^1.9.3" - } - }, - "@material/elevation": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@material/elevation/-/elevation-1.0.0.tgz", - "integrity": "sha512-TqmvEXmZDYLm2X5lEnjKCsZMDkCXpxFFxL22AfCAQB5L4d0gAS7vqDEE797y4Rp+BBKEcOP71mum1l56RI3NBQ==", - "dev": true, - "requires": { - "@material/animation": "^1.0.0", - "@material/feature-targeting": "^0.44.1", - "@material/theme": "^1.0.0" - } - }, - "@material/theme": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@material/theme/-/theme-1.0.0.tgz", - "integrity": "sha512-Bg/BQLU5MmCwtQ3DHcSs9DodZB8PTvuItv1wXrP54S/wBVwryIB5uMDmERhnItbNnAFbkKhlAuhn1asMmMzfkQ==", - "dev": true, - "requires": { - "@material/feature-targeting": "^0.44.1" - } - } } }, "@material/tab-indicator": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@material/tab-indicator/-/tab-indicator-1.0.0.tgz", - "integrity": "sha512-4wT+dAc6YOe7ASPt68soHSqKlr/VVl5JcS883M8I2kAtJe92BglsHYW2ALa9IdqwWcvhFaw0sXZKWohLRwibMw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@material/tab-indicator/-/tab-indicator-1.1.0.tgz", + "integrity": "sha512-wbZMFCfQo62einr/Ju9PDAeFpRR/Ori5oV2lcsF1uSQXeLxougarwcbk0egWnEtY4Wa6dPgM5P6wQQsYnIeUIQ==", "dev": true, "requires": { "@material/animation": "^1.0.0", "@material/base": "^1.0.0", - "@material/theme": "^1.0.0", + "@material/theme": "^1.1.0", "tslib": "^1.9.3" - }, - "dependencies": { - "@material/animation": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@material/animation/-/animation-1.0.0.tgz", - "integrity": "sha512-Ed5/vggn6ZhSJ87yn3ZS1d826VJNFz73jHF2bSsgRtHDoB8KCuOwQMfdgAgDa4lKDF6CDIPCKBZPKrs2ubehdw==", - "dev": true, - "requires": { - "tslib": "^1.9.3" - } - }, - "@material/theme": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@material/theme/-/theme-1.0.0.tgz", - "integrity": "sha512-Bg/BQLU5MmCwtQ3DHcSs9DodZB8PTvuItv1wXrP54S/wBVwryIB5uMDmERhnItbNnAFbkKhlAuhn1asMmMzfkQ==", - "dev": true, - "requires": { - "@material/feature-targeting": "^0.44.1" - } - } } }, "@material/tab-scroller": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@material/tab-scroller/-/tab-scroller-1.0.1.tgz", - "integrity": "sha512-WpOw710NbLlx3W/ZqAmeoBCon+6u6/PpoSusrh/Qvxats9hajc5bQUSfjm/grzEhZcqfyXN/bCoci3lBIbfWvw==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@material/tab-scroller/-/tab-scroller-1.1.1.tgz", + "integrity": "sha512-LwYXIdk0rzjisnRTNBw1OPMvBzRWhMVGfVV73pEuDV3lkpcp1v4gfig3GR6JI8U8iPZXpxbPqaVEl/K/r8zhYw==", "dev": true, "requires": { "@material/animation": "^1.0.0", "@material/base": "^1.0.0", - "@material/dom": "^1.0.1", - "@material/tab": "^1.0.1", + "@material/dom": "^1.1.0", + "@material/tab": "^1.1.1", "tslib": "^1.9.3" - }, - "dependencies": { - "@material/animation": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@material/animation/-/animation-1.0.0.tgz", - "integrity": "sha512-Ed5/vggn6ZhSJ87yn3ZS1d826VJNFz73jHF2bSsgRtHDoB8KCuOwQMfdgAgDa4lKDF6CDIPCKBZPKrs2ubehdw==", - "dev": true, - "requires": { - "tslib": "^1.9.3" - } - }, - "@material/dom": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@material/dom/-/dom-1.0.1.tgz", - "integrity": "sha512-7gb9Tk8YBn2fLEa5fJfvDexG0QxvRGDb8c6uZEhvK4bTd2ZHCfHg9KrO+smC6Trbn5jC+FsBvdRZBbMjtS/E4g==", - "dev": true, - "requires": { - "tslib": "^1.9.3" - } - }, - "@material/ripple": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@material/ripple/-/ripple-1.0.1.tgz", - "integrity": "sha512-aBigRoVMjIU2lLDq7TMocI2H2YFbO1hICs5FTdSRp4Yis/QFTrgaW32q8yuHdZI56j+b2BWIWapqA2xpSmCMXQ==", - "dev": true, - "requires": { - "@material/animation": "^1.0.0", - "@material/base": "^1.0.0", - "@material/dom": "^1.0.1", - "@material/feature-targeting": "^0.44.1", - "@material/theme": "^1.0.0", - "tslib": "^1.9.3" - } - }, - "@material/rtl": { - "version": "0.42.0", - "resolved": "https://registry.npmjs.org/@material/rtl/-/rtl-0.42.0.tgz", - "integrity": "sha512-VrnrKJzhmspsN8WXHuxxBZ69yM5IwhCUqWr1t1eNfw3ZEvEj7i1g3P31HGowKThIN1dc1Wh4LE14rCISWCtv5w==", - "dev": true - }, - "@material/tab": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@material/tab/-/tab-1.0.1.tgz", - "integrity": "sha512-//JXHaL1ebTpR6Z1mZpd6Ltry/kD840HSI/NQRMCdjxKjdap3cVtNfjRZ5ST4snGEqihLQ7gsqfDg/XZ5k0j3g==", - "dev": true, - "requires": { - "@material/base": "^1.0.0", - "@material/ripple": "^1.0.1", - "@material/rtl": "^0.42.0", - "@material/tab-indicator": "^1.0.0", - "@material/theme": "^1.0.0", - "@material/typography": "^1.0.0", - "tslib": "^1.9.3" - } - }, - "@material/theme": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@material/theme/-/theme-1.0.0.tgz", - "integrity": "sha512-Bg/BQLU5MmCwtQ3DHcSs9DodZB8PTvuItv1wXrP54S/wBVwryIB5uMDmERhnItbNnAFbkKhlAuhn1asMmMzfkQ==", - "dev": true, - "requires": { - "@material/feature-targeting": "^0.44.1" - } - }, - "@material/typography": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@material/typography/-/typography-1.0.0.tgz", - "integrity": "sha512-Oeqbjci1cC7jTE8/n3dwnkqKe9ZeWiaE+rgMtRYtRFw1HvAw14SpGA5EEAS/Li2Hu2KZ50FYCe3HYqShfxtChA==", - "dev": true, - "requires": { - "@material/feature-targeting": "^0.44.1" - } - } } }, "@material/textfield": { @@ -2112,6 +711,12 @@ "@material/typography": "^0.41.0" }, "dependencies": { + "@material/animation": { + "version": "0.41.0", + "resolved": "https://registry.npmjs.org/@material/animation/-/animation-0.41.0.tgz", + "integrity": "sha512-yYAwJbX3Q2AFd4dr6IYOsWLQy2HN8zWOFVl9AbUXunjzTfJCa/ecfXCriaT6qkmoNoHeTdJHRrsQJZC5GsPvzA==", + "dev": true + }, "@material/base": { "version": "0.41.0", "resolved": "https://registry.npmjs.org/@material/base/-/base-0.41.0.tgz", @@ -2166,6 +771,24 @@ "@material/theme": "^0.41.0" } }, + "@material/rtl": { + "version": "0.40.1", + "resolved": "https://registry.npmjs.org/@material/rtl/-/rtl-0.40.1.tgz", + "integrity": "sha512-Pk6Iw1/KrhWZoZtkDsPMDUW0bm7Z1zeXb3MTQRCFmjf1wU5cRxgOTtuoZLcJqlcKGppLAzJL/TJV3E7KEiuL0A==", + "dev": true + }, + "@material/shape": { + "version": "0.41.0", + "resolved": "https://registry.npmjs.org/@material/shape/-/shape-0.41.0.tgz", + "integrity": "sha512-k1K3CjOVxclfb/0r28cOa2oJpP7QMA2fP0SOS3Vh8ale5Q2jkaHTL60KX8VkHvV6rMqShpXW+60gPjoz5XRbDQ==", + "dev": true + }, + "@material/theme": { + "version": "0.41.0", + "resolved": "https://registry.npmjs.org/@material/theme/-/theme-0.41.0.tgz", + "integrity": "sha512-ohW2JxObKOWvP34EkIIcrEVtL3g0Gs/T3/MdOsM36euyshY8Jwl1f6fjVUQvVjSpixUtSb30/+ulblF8fTOwBg==", + "dev": true + }, "@material/typography": { "version": "0.41.0", "resolved": "https://registry.npmjs.org/@material/typography/-/typography-0.41.0.tgz", @@ -2175,84 +798,12 @@ } }, "@material/theme": { - "version": "0.41.0", - "resolved": "https://registry.npmjs.org/@material/theme/-/theme-0.41.0.tgz", - "integrity": "sha512-ohW2JxObKOWvP34EkIIcrEVtL3g0Gs/T3/MdOsM36euyshY8Jwl1f6fjVUQvVjSpixUtSb30/+ulblF8fTOwBg==", - "dev": true - }, - "@material/top-app-bar": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@material/top-app-bar/-/top-app-bar-1.1.0.tgz", - "integrity": "sha512-fxVKFolNzPG4+LqH8GUxDKfjRZtQNDYX8sGD6c2pKbk1tigyiAGBO/Py31RQQkbAdCKPdmnanGJK2gewaUdw4g==", + "resolved": "https://registry.npmjs.org/@material/theme/-/theme-1.1.0.tgz", + "integrity": "sha512-YYUV9Rhbx4r/EMb/zoOYJUWjhXChNaLlH1rqt3vpNVyxRcxGqoVMGp5u1XALBCFiD9dACPKLIkKyRYa928nmPQ==", "dev": true, "requires": { - "@material/animation": "^1.0.0", - "@material/base": "^1.0.0", - "@material/elevation": "^1.1.0", - "@material/ripple": "^1.1.0", - "@material/rtl": "^0.42.0", - "@material/shape": "^1.0.0", - "@material/theme": "^1.1.0", - "@material/typography": "^1.0.0", - "tslib": "^1.9.3" - }, - "dependencies": { - "@material/animation": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@material/animation/-/animation-1.0.0.tgz", - "integrity": "sha512-Ed5/vggn6ZhSJ87yn3ZS1d826VJNFz73jHF2bSsgRtHDoB8KCuOwQMfdgAgDa4lKDF6CDIPCKBZPKrs2ubehdw==", - "dev": true, - "requires": { - "tslib": "^1.9.3" - } - }, - "@material/dom": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@material/dom/-/dom-1.1.0.tgz", - "integrity": "sha512-+HWW38ZaM2UBPu4+7QCusLDSf4tFT31rsEXHkTkxYSg/QpDivfPx6YDz4OmYtafmhPR1d1YjqB3MYysUHdodyw==", - "dev": true, - "requires": { - "tslib": "^1.9.3" - } - }, - "@material/ripple": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@material/ripple/-/ripple-1.1.0.tgz", - "integrity": "sha512-mkfDBZAmxjpRG7V9TrfOmLxt1g/wvGHCXtYPgvH7W8ozjf53edqxLOFENEdvHbie27y9nyixzXn0gzU0HnxSeA==", - "dev": true, - "requires": { - "@material/animation": "^1.0.0", - "@material/base": "^1.0.0", - "@material/dom": "^1.1.0", - "@material/feature-targeting": "^0.44.1", - "@material/theme": "^1.1.0", - "tslib": "^1.9.3" - } - }, - "@material/rtl": { - "version": "0.42.0", - "resolved": "https://registry.npmjs.org/@material/rtl/-/rtl-0.42.0.tgz", - "integrity": "sha512-VrnrKJzhmspsN8WXHuxxBZ69yM5IwhCUqWr1t1eNfw3ZEvEj7i1g3P31HGowKThIN1dc1Wh4LE14rCISWCtv5w==", - "dev": true - }, - "@material/shape": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@material/shape/-/shape-1.0.0.tgz", - "integrity": "sha512-zfXEacPQZmH+ujVtaFyfAsYiF46j1QCcFzJeZVouG4pznrbA7XD6614Ywg0wbyWX5iB6hD52ld/IN+R/6oxKqA==", - "dev": true, - "requires": { - "@material/feature-targeting": "^0.44.1" - } - }, - "@material/theme": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@material/theme/-/theme-1.1.0.tgz", - "integrity": "sha512-YYUV9Rhbx4r/EMb/zoOYJUWjhXChNaLlH1rqt3vpNVyxRcxGqoVMGp5u1XALBCFiD9dACPKLIkKyRYa928nmPQ==", - "dev": true, - "requires": { - "@material/feature-targeting": "^0.44.1" - } - } + "@material/feature-targeting": "^0.44.1" } }, "@material/typography": { @@ -2525,55 +1076,6 @@ "es6-promisify": "^5.0.0" } }, - "airbnb-prop-types": { - "version": "2.13.2", - "resolved": "https://registry.npmjs.org/airbnb-prop-types/-/airbnb-prop-types-2.13.2.tgz", - "integrity": "sha512-2FN6DlHr6JCSxPPi25EnqGaXC4OC3/B3k1lCd6MMYrZ51/Gf/1qDfaR+JElzWa+Tl7cY2aYOlsYJGFeQyVHIeQ==", - "dev": true, - "requires": { - "array.prototype.find": "^2.0.4", - "function.prototype.name": "^1.1.0", - "has": "^1.0.3", - "is-regex": "^1.0.4", - "object-is": "^1.0.1", - "object.assign": "^4.1.0", - "object.entries": "^1.1.0", - "prop-types": "^15.7.2", - "prop-types-exact": "^1.2.0", - "react-is": "^16.8.6" - }, - "dependencies": { - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, - "loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dev": true, - "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" - } - }, - "prop-types": { - "version": "15.7.2", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", - "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", - "dev": true, - "requires": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.8.1" - } - } - } - }, "ajv": { "version": "4.11.8", "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", @@ -3122,16 +1624,6 @@ "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", "dev": true }, - "array.prototype.find": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/array.prototype.find/-/array.prototype.find-2.0.4.tgz", - "integrity": "sha1-VWpcU2LAhkgyPdrrnenRS8GGTJA=", - "dev": true, - "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.7.0" - } - }, "array.prototype.flat": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.1.tgz", @@ -4960,13 +3452,13 @@ "dev": true }, "cheerio": { - "version": "1.0.0-rc.3", - "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.3.tgz", - "integrity": "sha512-0td5ijfUPuubwLUu0OBoe98gZj8C/AA+RW3v67GPlGOrvxWjZmBXiBCRU+I8VEiNyJzjth40POfHiz2RB3gImA==", + "version": "1.0.0-rc.2", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.2.tgz", + "integrity": "sha1-S59TqBsn5NXawxwP/Qz6A8xoMNs=", "dev": true, "requires": { "css-select": "~1.2.0", - "dom-serializer": "~0.1.1", + "dom-serializer": "~0.1.0", "entities": "~1.1.1", "htmlparser2": "^3.9.1", "lodash": "^4.15.0", @@ -5052,28 +3544,28 @@ "dependencies": { "abbrev": { "version": "1.1.1", - "resolved": false, + "resolved": "", "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", "dev": true, "optional": true }, "ansi-regex": { "version": "2.1.1", - "resolved": false, + "resolved": "", "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", "dev": true, "optional": true }, "aproba": { "version": "1.2.0", - "resolved": false, + "resolved": "", "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", "dev": true, "optional": true }, "are-we-there-yet": { "version": "1.1.4", - "resolved": false, + "resolved": "", "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", "dev": true, "optional": true, @@ -5084,14 +3576,14 @@ }, "balanced-match": { "version": "1.0.0", - "resolved": false, + "resolved": "", "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", "dev": true, "optional": true }, "brace-expansion": { "version": "1.1.11", - "resolved": false, + "resolved": "", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "optional": true, @@ -5102,42 +3594,42 @@ }, "chownr": { "version": "1.0.1", - "resolved": false, + "resolved": "", "integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=", "dev": true, "optional": true }, "code-point-at": { "version": "1.1.0", - "resolved": false, + "resolved": "", "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", "dev": true, "optional": true }, "concat-map": { "version": "0.0.1", - "resolved": false, + "resolved": "", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", "dev": true, "optional": true }, "console-control-strings": { "version": "1.1.0", - "resolved": false, + "resolved": "", "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", "dev": true, "optional": true }, "core-util-is": { "version": "1.0.2", - "resolved": false, + "resolved": "", "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", "dev": true, "optional": true }, "debug": { "version": "2.6.9", - "resolved": false, + "resolved": "", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "optional": true, @@ -5147,28 +3639,28 @@ }, "deep-extend": { "version": "0.5.1", - "resolved": false, + "resolved": "", "integrity": "sha512-N8vBdOa+DF7zkRrDCsaOXoCs/E2fJfx9B9MrKnnSiHNh4ws7eSys6YQE4KvT1cecKmOASYQBhbKjeuDD9lT81w==", "dev": true, "optional": true }, "delegates": { "version": "1.0.0", - "resolved": false, + "resolved": "", "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", "dev": true, "optional": true }, "detect-libc": { "version": "1.0.3", - "resolved": false, + "resolved": "", "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", "dev": true, "optional": true }, "fs-minipass": { "version": "1.2.5", - "resolved": false, + "resolved": "", "integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==", "dev": true, "optional": true, @@ -5178,14 +3670,14 @@ }, "fs.realpath": { "version": "1.0.0", - "resolved": false, + "resolved": "", "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "dev": true, "optional": true }, "gauge": { "version": "2.7.4", - "resolved": false, + "resolved": "", "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", "dev": true, "optional": true, @@ -5202,7 +3694,7 @@ }, "glob": { "version": "7.1.2", - "resolved": false, + "resolved": "", "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "dev": true, "optional": true, @@ -5217,14 +3709,14 @@ }, "has-unicode": { "version": "2.0.1", - "resolved": false, + "resolved": "", "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", "dev": true, "optional": true }, "iconv-lite": { "version": "0.4.21", - "resolved": false, + "resolved": "", "integrity": "sha512-En5V9za5mBt2oUA03WGD3TwDv0MKAruqsuxstbMUZaj9W9k/m1CV/9py3l0L5kw9Bln8fdHQmzHSYtvpvTLpKw==", "dev": true, "optional": true, @@ -5234,7 +3726,7 @@ }, "ignore-walk": { "version": "3.0.1", - "resolved": false, + "resolved": "", "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==", "dev": true, "optional": true, @@ -5244,7 +3736,7 @@ }, "inflight": { "version": "1.0.6", - "resolved": false, + "resolved": "", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true, "optional": true, @@ -5255,21 +3747,21 @@ }, "inherits": { "version": "2.0.3", - "resolved": false, + "resolved": "", "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", "dev": true, "optional": true }, "ini": { "version": "1.3.5", - "resolved": false, + "resolved": "", "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", "dev": true, "optional": true }, "is-fullwidth-code-point": { "version": "1.0.0", - "resolved": false, + "resolved": "", "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, "optional": true, @@ -5279,14 +3771,14 @@ }, "isarray": { "version": "1.0.0", - "resolved": false, + "resolved": "", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", "dev": true, "optional": true }, "minimatch": { "version": "3.0.4", - "resolved": false, + "resolved": "", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "optional": true, @@ -5296,14 +3788,14 @@ }, "minimist": { "version": "0.0.8", - "resolved": false, + "resolved": "", "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", "dev": true, "optional": true }, "minipass": { "version": "2.2.4", - "resolved": false, + "resolved": "", "integrity": "sha512-hzXIWWet/BzWhYs2b+u7dRHlruXhwdgvlTMDKC6Cb1U7ps6Ac6yQlR39xsbjWJE377YTCtKwIXIpJ5oP+j5y8g==", "dev": true, "optional": true, @@ -5314,7 +3806,7 @@ }, "minizlib": { "version": "1.1.0", - "resolved": false, + "resolved": "", "integrity": "sha512-4T6Ur/GctZ27nHfpt9THOdRZNgyJ9FZchYO1ceg5S8Q3DNLCKYy44nCZzgCJgcvx2UM8czmqak5BCxJMrq37lA==", "dev": true, "optional": true, @@ -5324,7 +3816,7 @@ }, "mkdirp": { "version": "0.5.1", - "resolved": false, + "resolved": "", "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", "dev": true, "optional": true, @@ -5334,14 +3826,14 @@ }, "ms": { "version": "2.0.0", - "resolved": false, + "resolved": "", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true, "optional": true }, "needle": { "version": "2.2.0", - "resolved": false, + "resolved": "", "integrity": "sha512-eFagy6c+TYayorXw/qtAdSvaUpEbBsDwDyxYFgLZ0lTojfH7K+OdBqAF7TAFwDokJaGpubpSGG0wO3iC0XPi8w==", "dev": true, "optional": true, @@ -5353,7 +3845,7 @@ }, "node-pre-gyp": { "version": "0.10.0", - "resolved": false, + "resolved": "", "integrity": "sha512-G7kEonQLRbcA/mOoFoxvlMrw6Q6dPf92+t/l0DFSMuSlDoWaI9JWIyPwK0jyE1bph//CUEL65/Fz1m2vJbmjQQ==", "dev": true, "optional": true, @@ -5372,7 +3864,7 @@ }, "nopt": { "version": "4.0.1", - "resolved": false, + "resolved": "", "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", "dev": true, "optional": true, @@ -5383,14 +3875,14 @@ }, "npm-bundled": { "version": "1.0.3", - "resolved": false, + "resolved": "", "integrity": "sha512-ByQ3oJ/5ETLyglU2+8dBObvhfWXX8dtPZDMePCahptliFX2iIuhyEszyFk401PZUNQH20vvdW5MLjJxkwU80Ow==", "dev": true, "optional": true }, "npm-packlist": { "version": "1.1.10", - "resolved": false, + "resolved": "", "integrity": "sha512-AQC0Dyhzn4EiYEfIUjCdMl0JJ61I2ER9ukf/sLxJUcZHfo+VyEfz2rMJgLZSS1v30OxPQe1cN0LZA1xbcaVfWA==", "dev": true, "optional": true, @@ -5401,7 +3893,7 @@ }, "npmlog": { "version": "4.1.2", - "resolved": false, + "resolved": "", "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", "dev": true, "optional": true, @@ -5414,21 +3906,21 @@ }, "number-is-nan": { "version": "1.0.1", - "resolved": false, + "resolved": "", "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", "dev": true, "optional": true }, "object-assign": { "version": "4.1.1", - "resolved": false, + "resolved": "", "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", "dev": true, "optional": true }, "once": { "version": "1.4.0", - "resolved": false, + "resolved": "", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dev": true, "optional": true, @@ -5438,21 +3930,21 @@ }, "os-homedir": { "version": "1.0.2", - "resolved": false, + "resolved": "", "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", "dev": true, "optional": true }, "os-tmpdir": { "version": "1.0.2", - "resolved": false, + "resolved": "", "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", "dev": true, "optional": true }, "osenv": { "version": "0.1.5", - "resolved": false, + "resolved": "", "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", "dev": true, "optional": true, @@ -5463,21 +3955,21 @@ }, "path-is-absolute": { "version": "1.0.1", - "resolved": false, + "resolved": "", "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", "dev": true, "optional": true }, "process-nextick-args": { "version": "2.0.0", - "resolved": false, + "resolved": "", "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", "dev": true, "optional": true }, "rc": { "version": "1.2.7", - "resolved": false, + "resolved": "", "integrity": "sha512-LdLD8xD4zzLsAT5xyushXDNscEjB7+2ulnl8+r1pnESlYtlJtVSoCMBGr30eDRJ3+2Gq89jK9P9e4tCEH1+ywA==", "dev": true, "optional": true, @@ -5490,7 +3982,7 @@ "dependencies": { "minimist": { "version": "1.2.0", - "resolved": false, + "resolved": "", "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", "dev": true, "optional": true @@ -5499,7 +3991,7 @@ }, "readable-stream": { "version": "2.3.6", - "resolved": false, + "resolved": "", "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "dev": true, "optional": true, @@ -5515,7 +4007,7 @@ }, "rimraf": { "version": "2.6.2", - "resolved": false, + "resolved": "", "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "dev": true, "optional": true, @@ -5525,49 +4017,49 @@ }, "safe-buffer": { "version": "5.1.1", - "resolved": false, + "resolved": "", "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", "dev": true, "optional": true }, "safer-buffer": { "version": "2.1.2", - "resolved": false, + "resolved": "", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "dev": true, "optional": true }, "sax": { "version": "1.2.4", - "resolved": false, + "resolved": "", "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", "dev": true, "optional": true }, "semver": { "version": "5.5.0", - "resolved": false, + "resolved": "", "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", "dev": true, "optional": true }, "set-blocking": { "version": "2.0.0", - "resolved": false, + "resolved": "", "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", "dev": true, "optional": true }, "signal-exit": { "version": "3.0.2", - "resolved": false, + "resolved": "", "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", "dev": true, "optional": true }, "string-width": { "version": "1.0.2", - "resolved": false, + "resolved": "", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, "optional": true, @@ -5579,7 +4071,7 @@ }, "string_decoder": { "version": "1.1.1", - "resolved": false, + "resolved": "", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "optional": true, @@ -5589,7 +4081,7 @@ }, "strip-ansi": { "version": "3.0.1", - "resolved": false, + "resolved": "", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "optional": true, @@ -5599,14 +4091,14 @@ }, "strip-json-comments": { "version": "2.0.1", - "resolved": false, + "resolved": "", "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", "dev": true, "optional": true }, "tar": { "version": "4.4.1", - "resolved": false, + "resolved": "", "integrity": "sha512-O+v1r9yN4tOsvl90p5HAP4AEqbYhx4036AGMm075fH9F8Qwi3oJ+v4u50FkT/KkvywNGtwkk0zRI+8eYm1X/xg==", "dev": true, "optional": true, @@ -5622,14 +4114,14 @@ }, "util-deprecate": { "version": "1.0.2", - "resolved": false, + "resolved": "", "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", "dev": true, "optional": true }, "wide-align": { "version": "1.1.2", - "resolved": false, + "resolved": "", "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", "dev": true, "optional": true, @@ -5639,14 +4131,14 @@ }, "wrappy": { "version": "1.0.2", - "resolved": false, + "resolved": "", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "dev": true, "optional": true }, "yallist": { "version": "3.0.2", - "resolved": false, + "resolved": "", "integrity": "sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k=", "dev": true, "optional": true @@ -7849,16 +6341,16 @@ } }, "enzyme-adapter-react-16": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.12.1.tgz", - "integrity": "sha512-GB61gvY97XvrA6qljExGY+lgI6BBwz+ASLaRKct9VQ3ozu0EraqcNn3CcrUckSGIqFGa1+CxO5gj5is5t3lwrw==", + "version": "1.11.2", + "resolved": "https://registry.npmjs.org/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.11.2.tgz", + "integrity": "sha512-2ruTTCPRb0lPuw/vKTXGVZVBZqh83MNDnakMhzxhpJcIbneEwNy2Cv0KvL97pl57/GOazJHflWNLjwWhex5AAA==", "dev": true, "requires": { - "enzyme-adapter-utils": "^1.11.0", + "enzyme-adapter-utils": "^1.10.1", "object.assign": "^4.1.0", "object.values": "^1.1.0", "prop-types": "^15.7.2", - "react-is": "^16.8.6", + "react-is": "^16.8.4", "react-test-renderer": "^16.0.0-0", "semver": "^5.6.0" }, @@ -7892,12 +6384,11 @@ } }, "enzyme-adapter-utils": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/enzyme-adapter-utils/-/enzyme-adapter-utils-1.11.0.tgz", - "integrity": "sha512-0VZeoE9MNx+QjTfsjmO1Mo+lMfunucYB4wt5ficU85WB/LoetTJrbuujmHP3PJx6pSoaAuLA+Mq877x4LoxdNg==", + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/enzyme-adapter-utils/-/enzyme-adapter-utils-1.10.1.tgz", + "integrity": "sha512-oasinhhLoBuZsIkTe8mx0HiudtfErUtG0Ooe1FOplu/t4c9rOmyG5gtrBASK6u4whHIRWvv0cbZMElzNTR21SA==", "dev": true, "requires": { - "airbnb-prop-types": "^2.12.0", "function.prototype.name": "^1.1.0", "object.assign": "^4.1.0", "object.fromentries": "^2.0.0", @@ -14322,9 +12813,9 @@ } }, "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.0.tgz", + "integrity": "sha512-6OO5X1+2tYkNyNEx6TsCxEqFfRWaqx6EtMiSbGrw8Ob8v9Ne+Hl8rBAgLBZn5wjEz3s/s6U1WXFUFOcxxAwUpg==", "dev": true } } @@ -14498,9 +12989,9 @@ } }, "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.0.tgz", + "integrity": "sha512-6OO5X1+2tYkNyNEx6TsCxEqFfRWaqx6EtMiSbGrw8Ob8v9Ne+Hl8rBAgLBZn5wjEz3s/s6U1WXFUFOcxxAwUpg==", "dev": true } } @@ -15836,28 +14327,6 @@ "object-assign": "^4.1.1" } }, - "prop-types-exact": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/prop-types-exact/-/prop-types-exact-1.2.0.tgz", - "integrity": "sha512-K+Tk3Kd9V0odiXFP9fwDHUYRyvK3Nun3GVyPapSIs5OBkITAm15W0CPFD/YKTkMUAbc0b9CUwRQp2ybiBIq+eA==", - "dev": true, - "requires": { - "has": "^1.0.3", - "object.assign": "^4.1.0", - "reflect.ownkeys": "^0.2.0" - }, - "dependencies": { - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - } - } - }, "proxy-addr": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.3.tgz", @@ -16449,12 +14918,6 @@ } } }, - "reflect.ownkeys": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/reflect.ownkeys/-/reflect.ownkeys-0.2.0.tgz", - "integrity": "sha1-dJrO7H8/34tj+SegSAnpDFwLNGA=", - "dev": true - }, "regenerate": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.3.tgz", @@ -19667,28 +18130,28 @@ "dependencies": { "abbrev": { "version": "1.1.1", - "resolved": false, + "resolved": "", "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", "dev": true, "optional": true }, "ansi-regex": { "version": "2.1.1", - "resolved": false, + "resolved": "", "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", "dev": true, "optional": true }, "aproba": { "version": "1.2.0", - "resolved": false, + "resolved": "", "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", "dev": true, "optional": true }, "are-we-there-yet": { "version": "1.1.4", - "resolved": false, + "resolved": "", "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", "dev": true, "optional": true, @@ -19699,14 +18162,14 @@ }, "balanced-match": { "version": "1.0.0", - "resolved": false, + "resolved": "", "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", "dev": true, "optional": true }, "brace-expansion": { "version": "1.1.11", - "resolved": false, + "resolved": "", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "optional": true, @@ -19717,42 +18180,42 @@ }, "chownr": { "version": "1.0.1", - "resolved": false, + "resolved": "", "integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=", "dev": true, "optional": true }, "code-point-at": { "version": "1.1.0", - "resolved": false, + "resolved": "", "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", "dev": true, "optional": true }, "concat-map": { "version": "0.0.1", - "resolved": false, + "resolved": "", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", "dev": true, "optional": true }, "console-control-strings": { "version": "1.1.0", - "resolved": false, + "resolved": "", "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", "dev": true, "optional": true }, "core-util-is": { "version": "1.0.2", - "resolved": false, + "resolved": "", "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", "dev": true, "optional": true }, "debug": { "version": "2.6.9", - "resolved": false, + "resolved": "", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "optional": true, @@ -19762,28 +18225,28 @@ }, "deep-extend": { "version": "0.5.1", - "resolved": false, + "resolved": "", "integrity": "sha512-N8vBdOa+DF7zkRrDCsaOXoCs/E2fJfx9B9MrKnnSiHNh4ws7eSys6YQE4KvT1cecKmOASYQBhbKjeuDD9lT81w==", "dev": true, "optional": true }, "delegates": { "version": "1.0.0", - "resolved": false, + "resolved": "", "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", "dev": true, "optional": true }, "detect-libc": { "version": "1.0.3", - "resolved": false, + "resolved": "", "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", "dev": true, "optional": true }, "fs-minipass": { "version": "1.2.5", - "resolved": false, + "resolved": "", "integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==", "dev": true, "optional": true, @@ -19793,14 +18256,14 @@ }, "fs.realpath": { "version": "1.0.0", - "resolved": false, + "resolved": "", "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "dev": true, "optional": true }, "gauge": { "version": "2.7.4", - "resolved": false, + "resolved": "", "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", "dev": true, "optional": true, @@ -19817,7 +18280,7 @@ }, "glob": { "version": "7.1.2", - "resolved": false, + "resolved": "", "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "dev": true, "optional": true, @@ -19832,14 +18295,14 @@ }, "has-unicode": { "version": "2.0.1", - "resolved": false, + "resolved": "", "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", "dev": true, "optional": true }, "iconv-lite": { "version": "0.4.21", - "resolved": false, + "resolved": "", "integrity": "sha512-En5V9za5mBt2oUA03WGD3TwDv0MKAruqsuxstbMUZaj9W9k/m1CV/9py3l0L5kw9Bln8fdHQmzHSYtvpvTLpKw==", "dev": true, "optional": true, @@ -19849,7 +18312,7 @@ }, "ignore-walk": { "version": "3.0.1", - "resolved": false, + "resolved": "", "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==", "dev": true, "optional": true, @@ -19859,7 +18322,7 @@ }, "inflight": { "version": "1.0.6", - "resolved": false, + "resolved": "", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true, "optional": true, @@ -19870,21 +18333,21 @@ }, "inherits": { "version": "2.0.3", - "resolved": false, + "resolved": "", "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", "dev": true, "optional": true }, "ini": { "version": "1.3.5", - "resolved": false, + "resolved": "", "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", "dev": true, "optional": true }, "is-fullwidth-code-point": { "version": "1.0.0", - "resolved": false, + "resolved": "", "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, "optional": true, @@ -19894,14 +18357,14 @@ }, "isarray": { "version": "1.0.0", - "resolved": false, + "resolved": "", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", "dev": true, "optional": true }, "minimatch": { "version": "3.0.4", - "resolved": false, + "resolved": "", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "optional": true, @@ -19911,14 +18374,14 @@ }, "minimist": { "version": "0.0.8", - "resolved": false, + "resolved": "", "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", "dev": true, "optional": true }, "minipass": { "version": "2.2.4", - "resolved": false, + "resolved": "", "integrity": "sha512-hzXIWWet/BzWhYs2b+u7dRHlruXhwdgvlTMDKC6Cb1U7ps6Ac6yQlR39xsbjWJE377YTCtKwIXIpJ5oP+j5y8g==", "dev": true, "optional": true, @@ -19929,7 +18392,7 @@ }, "minizlib": { "version": "1.1.0", - "resolved": false, + "resolved": "", "integrity": "sha512-4T6Ur/GctZ27nHfpt9THOdRZNgyJ9FZchYO1ceg5S8Q3DNLCKYy44nCZzgCJgcvx2UM8czmqak5BCxJMrq37lA==", "dev": true, "optional": true, @@ -19939,7 +18402,7 @@ }, "mkdirp": { "version": "0.5.1", - "resolved": false, + "resolved": "", "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", "dev": true, "optional": true, @@ -19949,14 +18412,14 @@ }, "ms": { "version": "2.0.0", - "resolved": false, + "resolved": "", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true, "optional": true }, "needle": { "version": "2.2.0", - "resolved": false, + "resolved": "", "integrity": "sha512-eFagy6c+TYayorXw/qtAdSvaUpEbBsDwDyxYFgLZ0lTojfH7K+OdBqAF7TAFwDokJaGpubpSGG0wO3iC0XPi8w==", "dev": true, "optional": true, @@ -19968,7 +18431,7 @@ }, "node-pre-gyp": { "version": "0.10.0", - "resolved": false, + "resolved": "", "integrity": "sha512-G7kEonQLRbcA/mOoFoxvlMrw6Q6dPf92+t/l0DFSMuSlDoWaI9JWIyPwK0jyE1bph//CUEL65/Fz1m2vJbmjQQ==", "dev": true, "optional": true, @@ -19987,7 +18450,7 @@ }, "nopt": { "version": "4.0.1", - "resolved": false, + "resolved": "", "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", "dev": true, "optional": true, @@ -19998,14 +18461,14 @@ }, "npm-bundled": { "version": "1.0.3", - "resolved": false, + "resolved": "", "integrity": "sha512-ByQ3oJ/5ETLyglU2+8dBObvhfWXX8dtPZDMePCahptliFX2iIuhyEszyFk401PZUNQH20vvdW5MLjJxkwU80Ow==", "dev": true, "optional": true }, "npm-packlist": { "version": "1.1.10", - "resolved": false, + "resolved": "", "integrity": "sha512-AQC0Dyhzn4EiYEfIUjCdMl0JJ61I2ER9ukf/sLxJUcZHfo+VyEfz2rMJgLZSS1v30OxPQe1cN0LZA1xbcaVfWA==", "dev": true, "optional": true, @@ -20016,7 +18479,7 @@ }, "npmlog": { "version": "4.1.2", - "resolved": false, + "resolved": "", "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", "dev": true, "optional": true, @@ -20029,21 +18492,21 @@ }, "number-is-nan": { "version": "1.0.1", - "resolved": false, + "resolved": "", "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", "dev": true, "optional": true }, "object-assign": { "version": "4.1.1", - "resolved": false, + "resolved": "", "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", "dev": true, "optional": true }, "once": { "version": "1.4.0", - "resolved": false, + "resolved": "", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dev": true, "optional": true, @@ -20053,21 +18516,21 @@ }, "os-homedir": { "version": "1.0.2", - "resolved": false, + "resolved": "", "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", "dev": true, "optional": true }, "os-tmpdir": { "version": "1.0.2", - "resolved": false, + "resolved": "", "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", "dev": true, "optional": true }, "osenv": { "version": "0.1.5", - "resolved": false, + "resolved": "", "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", "dev": true, "optional": true, @@ -20078,21 +18541,21 @@ }, "path-is-absolute": { "version": "1.0.1", - "resolved": false, + "resolved": "", "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", "dev": true, "optional": true }, "process-nextick-args": { "version": "2.0.0", - "resolved": false, + "resolved": "", "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", "dev": true, "optional": true }, "rc": { "version": "1.2.7", - "resolved": false, + "resolved": "", "integrity": "sha512-LdLD8xD4zzLsAT5xyushXDNscEjB7+2ulnl8+r1pnESlYtlJtVSoCMBGr30eDRJ3+2Gq89jK9P9e4tCEH1+ywA==", "dev": true, "optional": true, @@ -20105,7 +18568,7 @@ "dependencies": { "minimist": { "version": "1.2.0", - "resolved": false, + "resolved": "", "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", "dev": true, "optional": true @@ -20114,7 +18577,7 @@ }, "readable-stream": { "version": "2.3.6", - "resolved": false, + "resolved": "", "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "dev": true, "optional": true, @@ -20130,7 +18593,7 @@ }, "rimraf": { "version": "2.6.2", - "resolved": false, + "resolved": "", "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "dev": true, "optional": true, @@ -20140,49 +18603,49 @@ }, "safe-buffer": { "version": "5.1.1", - "resolved": false, + "resolved": "", "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", "dev": true, "optional": true }, "safer-buffer": { "version": "2.1.2", - "resolved": false, + "resolved": "", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "dev": true, "optional": true }, "sax": { "version": "1.2.4", - "resolved": false, + "resolved": "", "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", "dev": true, "optional": true }, "semver": { "version": "5.5.0", - "resolved": false, + "resolved": "", "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", "dev": true, "optional": true }, "set-blocking": { "version": "2.0.0", - "resolved": false, + "resolved": "", "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", "dev": true, "optional": true }, "signal-exit": { "version": "3.0.2", - "resolved": false, + "resolved": "", "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", "dev": true, "optional": true }, "string-width": { "version": "1.0.2", - "resolved": false, + "resolved": "", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, "optional": true, @@ -20194,7 +18657,7 @@ }, "string_decoder": { "version": "1.1.1", - "resolved": false, + "resolved": "", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "optional": true, @@ -20204,7 +18667,7 @@ }, "strip-ansi": { "version": "3.0.1", - "resolved": false, + "resolved": "", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "optional": true, @@ -20214,14 +18677,14 @@ }, "strip-json-comments": { "version": "2.0.1", - "resolved": false, + "resolved": "", "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", "dev": true, "optional": true }, "tar": { "version": "4.4.1", - "resolved": false, + "resolved": "", "integrity": "sha512-O+v1r9yN4tOsvl90p5HAP4AEqbYhx4036AGMm075fH9F8Qwi3oJ+v4u50FkT/KkvywNGtwkk0zRI+8eYm1X/xg==", "dev": true, "optional": true, @@ -20237,14 +18700,14 @@ }, "util-deprecate": { "version": "1.0.2", - "resolved": false, + "resolved": "", "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", "dev": true, "optional": true }, "wide-align": { "version": "1.1.2", - "resolved": false, + "resolved": "", "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", "dev": true, "optional": true, @@ -20254,14 +18717,14 @@ }, "wrappy": { "version": "1.0.2", - "resolved": false, + "resolved": "", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "dev": true, "optional": true }, "yallist": { "version": "3.0.2", - "resolved": false, + "resolved": "", "integrity": "sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k=", "dev": true, "optional": true @@ -20724,28 +19187,28 @@ "dependencies": { "abbrev": { "version": "1.1.1", - "resolved": false, + "resolved": "", "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", "dev": true, "optional": true }, "ansi-regex": { "version": "2.1.1", - "resolved": false, + "resolved": "", "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", "dev": true, "optional": true }, "aproba": { "version": "1.2.0", - "resolved": false, + "resolved": "", "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", "dev": true, "optional": true }, "are-we-there-yet": { "version": "1.1.4", - "resolved": false, + "resolved": "", "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", "dev": true, "optional": true, @@ -20756,14 +19219,14 @@ }, "balanced-match": { "version": "1.0.0", - "resolved": false, + "resolved": "", "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", "dev": true, "optional": true }, "brace-expansion": { "version": "1.1.11", - "resolved": false, + "resolved": "", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "optional": true, @@ -20774,42 +19237,42 @@ }, "chownr": { "version": "1.0.1", - "resolved": false, + "resolved": "", "integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=", "dev": true, "optional": true }, "code-point-at": { "version": "1.1.0", - "resolved": false, + "resolved": "", "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", "dev": true, "optional": true }, "concat-map": { "version": "0.0.1", - "resolved": false, + "resolved": "", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", "dev": true, "optional": true }, "console-control-strings": { "version": "1.1.0", - "resolved": false, + "resolved": "", "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", "dev": true, "optional": true }, "core-util-is": { "version": "1.0.2", - "resolved": false, + "resolved": "", "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", "dev": true, "optional": true }, "debug": { "version": "2.6.9", - "resolved": false, + "resolved": "", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "optional": true, @@ -20819,28 +19282,28 @@ }, "deep-extend": { "version": "0.5.1", - "resolved": false, + "resolved": "", "integrity": "sha512-N8vBdOa+DF7zkRrDCsaOXoCs/E2fJfx9B9MrKnnSiHNh4ws7eSys6YQE4KvT1cecKmOASYQBhbKjeuDD9lT81w==", "dev": true, "optional": true }, "delegates": { "version": "1.0.0", - "resolved": false, + "resolved": "", "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", "dev": true, "optional": true }, "detect-libc": { "version": "1.0.3", - "resolved": false, + "resolved": "", "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", "dev": true, "optional": true }, "fs-minipass": { "version": "1.2.5", - "resolved": false, + "resolved": "", "integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==", "dev": true, "optional": true, @@ -20850,14 +19313,14 @@ }, "fs.realpath": { "version": "1.0.0", - "resolved": false, + "resolved": "", "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "dev": true, "optional": true }, "gauge": { "version": "2.7.4", - "resolved": false, + "resolved": "", "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", "dev": true, "optional": true, @@ -20874,7 +19337,7 @@ }, "glob": { "version": "7.1.2", - "resolved": false, + "resolved": "", "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "dev": true, "optional": true, @@ -20889,14 +19352,14 @@ }, "has-unicode": { "version": "2.0.1", - "resolved": false, + "resolved": "", "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", "dev": true, "optional": true }, "iconv-lite": { "version": "0.4.21", - "resolved": false, + "resolved": "", "integrity": "sha512-En5V9za5mBt2oUA03WGD3TwDv0MKAruqsuxstbMUZaj9W9k/m1CV/9py3l0L5kw9Bln8fdHQmzHSYtvpvTLpKw==", "dev": true, "optional": true, @@ -20906,7 +19369,7 @@ }, "ignore-walk": { "version": "3.0.1", - "resolved": false, + "resolved": "", "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==", "dev": true, "optional": true, @@ -20916,7 +19379,7 @@ }, "inflight": { "version": "1.0.6", - "resolved": false, + "resolved": "", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true, "optional": true, @@ -20927,21 +19390,21 @@ }, "inherits": { "version": "2.0.3", - "resolved": false, + "resolved": "", "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", "dev": true, "optional": true }, "ini": { "version": "1.3.5", - "resolved": false, + "resolved": "", "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", "dev": true, "optional": true }, "is-fullwidth-code-point": { "version": "1.0.0", - "resolved": false, + "resolved": "", "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, "optional": true, @@ -20951,14 +19414,14 @@ }, "isarray": { "version": "1.0.0", - "resolved": false, + "resolved": "", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", "dev": true, "optional": true }, "minimatch": { "version": "3.0.4", - "resolved": false, + "resolved": "", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "optional": true, @@ -20968,14 +19431,14 @@ }, "minimist": { "version": "0.0.8", - "resolved": false, + "resolved": "", "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", "dev": true, "optional": true }, "minipass": { "version": "2.2.4", - "resolved": false, + "resolved": "", "integrity": "sha512-hzXIWWet/BzWhYs2b+u7dRHlruXhwdgvlTMDKC6Cb1U7ps6Ac6yQlR39xsbjWJE377YTCtKwIXIpJ5oP+j5y8g==", "dev": true, "optional": true, @@ -20986,7 +19449,7 @@ }, "minizlib": { "version": "1.1.0", - "resolved": false, + "resolved": "", "integrity": "sha512-4T6Ur/GctZ27nHfpt9THOdRZNgyJ9FZchYO1ceg5S8Q3DNLCKYy44nCZzgCJgcvx2UM8czmqak5BCxJMrq37lA==", "dev": true, "optional": true, @@ -20996,7 +19459,7 @@ }, "mkdirp": { "version": "0.5.1", - "resolved": false, + "resolved": "", "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", "dev": true, "optional": true, @@ -21006,14 +19469,14 @@ }, "ms": { "version": "2.0.0", - "resolved": false, + "resolved": "", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true, "optional": true }, "needle": { "version": "2.2.0", - "resolved": false, + "resolved": "", "integrity": "sha512-eFagy6c+TYayorXw/qtAdSvaUpEbBsDwDyxYFgLZ0lTojfH7K+OdBqAF7TAFwDokJaGpubpSGG0wO3iC0XPi8w==", "dev": true, "optional": true, @@ -21025,7 +19488,7 @@ }, "node-pre-gyp": { "version": "0.10.0", - "resolved": false, + "resolved": "", "integrity": "sha512-G7kEonQLRbcA/mOoFoxvlMrw6Q6dPf92+t/l0DFSMuSlDoWaI9JWIyPwK0jyE1bph//CUEL65/Fz1m2vJbmjQQ==", "dev": true, "optional": true, @@ -21044,7 +19507,7 @@ }, "nopt": { "version": "4.0.1", - "resolved": false, + "resolved": "", "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", "dev": true, "optional": true, @@ -21055,14 +19518,14 @@ }, "npm-bundled": { "version": "1.0.3", - "resolved": false, + "resolved": "", "integrity": "sha512-ByQ3oJ/5ETLyglU2+8dBObvhfWXX8dtPZDMePCahptliFX2iIuhyEszyFk401PZUNQH20vvdW5MLjJxkwU80Ow==", "dev": true, "optional": true }, "npm-packlist": { "version": "1.1.10", - "resolved": false, + "resolved": "", "integrity": "sha512-AQC0Dyhzn4EiYEfIUjCdMl0JJ61I2ER9ukf/sLxJUcZHfo+VyEfz2rMJgLZSS1v30OxPQe1cN0LZA1xbcaVfWA==", "dev": true, "optional": true, @@ -21073,7 +19536,7 @@ }, "npmlog": { "version": "4.1.2", - "resolved": false, + "resolved": "", "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", "dev": true, "optional": true, @@ -21086,21 +19549,21 @@ }, "number-is-nan": { "version": "1.0.1", - "resolved": false, + "resolved": "", "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", "dev": true, "optional": true }, "object-assign": { "version": "4.1.1", - "resolved": false, + "resolved": "", "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", "dev": true, "optional": true }, "once": { "version": "1.4.0", - "resolved": false, + "resolved": "", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dev": true, "optional": true, @@ -21110,21 +19573,21 @@ }, "os-homedir": { "version": "1.0.2", - "resolved": false, + "resolved": "", "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", "dev": true, "optional": true }, "os-tmpdir": { "version": "1.0.2", - "resolved": false, + "resolved": "", "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", "dev": true, "optional": true }, "osenv": { "version": "0.1.5", - "resolved": false, + "resolved": "", "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", "dev": true, "optional": true, @@ -21135,21 +19598,21 @@ }, "path-is-absolute": { "version": "1.0.1", - "resolved": false, + "resolved": "", "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", "dev": true, "optional": true }, "process-nextick-args": { "version": "2.0.0", - "resolved": false, + "resolved": "", "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", "dev": true, "optional": true }, "rc": { "version": "1.2.7", - "resolved": false, + "resolved": "", "integrity": "sha512-LdLD8xD4zzLsAT5xyushXDNscEjB7+2ulnl8+r1pnESlYtlJtVSoCMBGr30eDRJ3+2Gq89jK9P9e4tCEH1+ywA==", "dev": true, "optional": true, @@ -21162,7 +19625,7 @@ "dependencies": { "minimist": { "version": "1.2.0", - "resolved": false, + "resolved": "", "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", "dev": true, "optional": true @@ -21171,7 +19634,7 @@ }, "readable-stream": { "version": "2.3.6", - "resolved": false, + "resolved": "", "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "dev": true, "optional": true, @@ -21187,7 +19650,7 @@ }, "rimraf": { "version": "2.6.2", - "resolved": false, + "resolved": "", "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "dev": true, "optional": true, @@ -21197,49 +19660,49 @@ }, "safe-buffer": { "version": "5.1.1", - "resolved": false, + "resolved": "", "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", "dev": true, "optional": true }, "safer-buffer": { "version": "2.1.2", - "resolved": false, + "resolved": "", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "dev": true, "optional": true }, "sax": { "version": "1.2.4", - "resolved": false, + "resolved": "", "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", "dev": true, "optional": true }, "semver": { "version": "5.5.0", - "resolved": false, + "resolved": "", "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", "dev": true, "optional": true }, "set-blocking": { "version": "2.0.0", - "resolved": false, + "resolved": "", "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", "dev": true, "optional": true }, "signal-exit": { "version": "3.0.2", - "resolved": false, + "resolved": "", "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", "dev": true, "optional": true }, "string-width": { "version": "1.0.2", - "resolved": false, + "resolved": "", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, "optional": true, @@ -21251,7 +19714,7 @@ }, "string_decoder": { "version": "1.1.1", - "resolved": false, + "resolved": "", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "optional": true, @@ -21261,7 +19724,7 @@ }, "strip-ansi": { "version": "3.0.1", - "resolved": false, + "resolved": "", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "optional": true, @@ -21271,14 +19734,14 @@ }, "strip-json-comments": { "version": "2.0.1", - "resolved": false, + "resolved": "", "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", "dev": true, "optional": true }, "tar": { "version": "4.4.1", - "resolved": false, + "resolved": "", "integrity": "sha512-O+v1r9yN4tOsvl90p5HAP4AEqbYhx4036AGMm075fH9F8Qwi3oJ+v4u50FkT/KkvywNGtwkk0zRI+8eYm1X/xg==", "dev": true, "optional": true, @@ -21294,14 +19757,14 @@ }, "util-deprecate": { "version": "1.0.2", - "resolved": false, + "resolved": "", "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", "dev": true, "optional": true }, "wide-align": { "version": "1.1.2", - "resolved": false, + "resolved": "", "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", "dev": true, "optional": true, @@ -21311,14 +19774,14 @@ }, "wrappy": { "version": "1.0.2", - "resolved": false, + "resolved": "", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "dev": true, "optional": true }, "yallist": { "version": "3.0.2", - "resolved": false, + "resolved": "", "integrity": "sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k=", "dev": true, "optional": true diff --git a/packages/drawer/index.tsx b/packages/drawer/index.tsx index 5ea9ce4fb..4c7d73ffa 100644 --- a/packages/drawer/index.tsx +++ b/packages/drawer/index.tsx @@ -27,8 +27,7 @@ import { MDCModalDrawerFoundation, util, } from '@material/drawer'; -// @ts-ignore no .d.ts file -import {MDCListFoundation} from '@material/list/dist/mdc.list'; +import MDCListFoundation from '@material/list/foundation'; import DrawerHeader from './Header'; import DrawerContent from './Content'; import DrawerSubtitle from './Subtitle'; diff --git a/packages/list/index.tsx b/packages/list/index.tsx index d1fc0e0b0..7fcca3919 100644 --- a/packages/list/index.tsx +++ b/packages/list/index.tsx @@ -185,11 +185,6 @@ export default class List extends React.Component { return []; } - // this is a proxy for ListItem - getListElements = () => { - return this.listElements; - } - get classes() { const { className, diff --git a/packages/list/package.json b/packages/list/package.json index f6ec35a83..af14a040b 100644 --- a/packages/list/package.json +++ b/packages/list/package.json @@ -17,7 +17,7 @@ }, "dependencies": { "@material/dom": "^1.1.0", - "@material/list": "^1.0.0", + "@material/list": "1.0.0", "@material/react-checkbox": "^0.10.0", "@material/react-radio": "^0.10.0", "classnames": "^2.2.6", diff --git a/packages/menu-surface/index.tsx b/packages/menu-surface/index.tsx index 534a2ba54..fea27f00d 100644 --- a/packages/menu-surface/index.tsx +++ b/packages/menu-surface/index.tsx @@ -44,6 +44,7 @@ export interface MenuSurfaceProps extends React.HTMLProps { }; onClose?: () => void; onOpen?: () => void; + onMount?: (isMounted: boolean) => void; quickOpen?: boolean; open?: boolean; fixed?: boolean; @@ -148,6 +149,9 @@ class MenuSurface extends React.Component { if (this.props.quickOpen !== prevProps.quickOpen) { this.foundation.setQuickOpen(this.props.quickOpen!); } + if (this.state.mounted !== prevState.mounted) { + this.props.onMount && this.props.onMount(this.state.mounted); + } } componentWillUnmount() { @@ -344,6 +348,7 @@ class MenuSurface extends React.Component { onKeyDown, styles, quickOpen, + onMount, /* eslint-enable */ children, ...otherProps diff --git a/packages/menu/index.tsx b/packages/menu/index.tsx index dd3224180..096e24b52 100644 --- a/packages/menu/index.tsx +++ b/packages/menu/index.tsx @@ -33,6 +33,7 @@ const {cssClasses} = MDCMenuFoundation; export interface MenuProps extends MenuSurfaceProps { children: React.ReactElement; onSelected?: (index: number, item: Element) => void; + ref?: React.Ref; }; export interface MenuState { @@ -130,12 +131,7 @@ class Menu extends React.Component { handleOpen: MenuSurfaceProps['onOpen'] = () => { const {onOpen} = this.props; - if (onOpen) { - onOpen(); - } - if (this.listElements.length > 0) { - (this.listElements[0] as HTMLElement).focus(); - } + onOpen && onOpen(); } render() { @@ -147,11 +143,9 @@ class Menu extends React.Component { onOpen, children, onSelected, - ref, /* eslint-enable no-unused-vars */ ...otherProps } = this.props; - return ( { ); } - renderChild() { const {children} = this.props; const {foundation} = this.state; @@ -194,8 +187,8 @@ export { ListDivider as MenuListDivider, ListGroup as MenuListGroup, ListGroupSubheader as MenuListGroupSubheader, - ListItemGraphic as MenuListGraphic, - ListItemMeta as MenuListMeta, + ListItemGraphic as MenuListItemGraphic, + ListItemMeta as MenuListItemMeta, ListItemText as MenuListItemText, } from '@material/react-list'; export {MenuListProps} from './MenuList'; diff --git a/packages/select/BaseSelect.tsx b/packages/select/BaseSelect.tsx new file mode 100644 index 000000000..76932d209 --- /dev/null +++ b/packages/select/BaseSelect.tsx @@ -0,0 +1,158 @@ +// The MIT License +// +// Copyright (c) 2019 Google, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +import * as React from 'react'; +import NativeSelect, { + NativeSelectProps, // eslint-disable-line no-unused-vars +} from './NativeSelect'; +import EnhancedSelect, { + EnhancedSelectProps, // eslint-disable-line no-unused-vars +} from './EnhancedSelect'; +import {MDCSelectFoundation} from '@material/select/foundation'; + +export type BaseSelectProps + = (T extends HTMLSelectElement ? NativeSelectProps : EnhancedSelectProps); + +export interface CommonSelectProps { + enhanced: boolean; + className?: string; + disabled?: boolean; + foundation?: MDCSelectFoundation; + value?: string; + selectClassName?: string; +} + +export class BaseSelect + extends React.Component> { + static defaultProps = { + enhanced: false, + selectClassName: '', + }; + + handleFocus = (evt: React.FocusEvent) => { + const {foundation, onFocus} = this.props; + if (foundation) { + foundation.handleFocus(); + } + onFocus && onFocus(evt); + }; + + handleBlur = (evt: React.FocusEvent) => { + const {foundation, onBlur} = this.props; + if (foundation) { + foundation.handleBlur(); + } + onBlur && onBlur(evt); + }; + + handleTouchStart = (evt: React.TouchEvent) => { + const {foundation, onTouchStart} = this.props; + if (foundation) { + foundation.handleClick(this.getNormalizedXCoordinate(evt)); + } + onTouchStart && onTouchStart(evt); + } + + handleMouseDown = (evt: React.MouseEvent) => { + const {foundation, onMouseDown} = this.props; + if (foundation) { + foundation.handleClick(this.getNormalizedXCoordinate(evt)); + } + onMouseDown && onMouseDown(evt); + } + + handleClick = (evt: React.MouseEvent) => { + const {foundation, onClick} = this.props; + if (foundation) { + foundation.handleClick(this.getNormalizedXCoordinate(evt)); + } + onClick && onClick(evt); + } + + handleKeyDown = (evt: React.KeyboardEvent) => { + const {foundation, onKeyDown} = this.props; + if (foundation) { + foundation.handleKeydown(evt.nativeEvent); + } + onKeyDown && onKeyDown(evt); + } + + private isTouchEvent = (evt: MouseEvent | TouchEvent): evt is TouchEvent => { + return Boolean((evt as TouchEvent).touches); + } + + private getNormalizedXCoordinate + = (evt: React.MouseEvent | React.TouchEvent) => { + const targetClientRect = (evt.currentTarget as Element).getBoundingClientRect(); + const xCoordinate + = this.isTouchEvent(evt.nativeEvent) ? evt.nativeEvent.touches[0].clientX : evt.nativeEvent.clientX; + return xCoordinate - targetClientRect.left; + } + + + render() { + const { + /* eslint-enable no-unused-vars */ + onFocus, + onBlur, + onClick, + onMouseDown, + onTouchStart, + ref, + /* eslint-disable no-unused-vars */ + enhanced, + children, + onKeyDown, + selectClassName, + ...otherProps + } = this.props; + + const props = { + onFocus: this.handleFocus, + onBlur: this.handleBlur, + onMouseDown: this.handleMouseDown, + onClick: this.handleClick, + onTouchStart: this.handleTouchStart, + className: selectClassName, + ...otherProps, + }; + + if (enhanced) { + return ( + + {children} + + ); + } + return ( + + {children} + + ); + } +} diff --git a/packages/select/EnhancedSelect.tsx b/packages/select/EnhancedSelect.tsx new file mode 100644 index 000000000..6d9dd31a6 --- /dev/null +++ b/packages/select/EnhancedSelect.tsx @@ -0,0 +1,207 @@ +// The MIT License +// +// Copyright (c) 2019 Google, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +import * as React from 'react'; +import {MDCMenuSurfaceFoundation} from '@material/menu-surface/foundation'; +import Menu, {MenuList} from '@material/react-menu'; +import {OptionProps} from './Option'; // eslint-disable-line no-unused-vars +import {CommonSelectProps} from './BaseSelect'; +import MDCSelectFoundation from '@material/select/foundation'; + +const {Corner} = MDCMenuSurfaceFoundation; + +export type EnhancedChild = React.ReactElement>; + +export interface EnhancedSelectProps extends CommonSelectProps, React.HTMLProps { + closeMenu?: () => void; + onEnhancedChange?: (index: number, item: Element) => void; + anchorElement: HTMLElement | null; + value?: string; + ref?: React.Ref; + isInvalid?: boolean; +} + +interface EnhancedSelectState { + 'aria-expanded'?: boolean | 'false' | 'true'; + selectedItem: Element | null; + selectedValue?: string; +} + +export default class EnhancedSelect extends React.Component< + EnhancedSelectProps, + EnhancedSelectState + > { + nativeControl: React.RefObject = React.createRef(); + private selectedTextEl = React.createRef(); + menuEl = React.createRef(); + + static defaultProps: Partial = { + disabled: false, + closeMenu: () => {}, + onEnhancedChange: () => {}, + value: '', + anchorElement: null, + isInvalid: false, + }; + + state: EnhancedSelectState = { + 'aria-expanded': undefined, + 'selectedItem': null, + 'selectedValue': '', + } + + componentDidUpdate(prevProps: EnhancedSelectProps) { + if (this.props.value !== prevProps.value) { + this.setSelected(); + } + } + + get listElements() { + const listElements = this.menuEl.current !== null && this.menuEl.current!.listElements; + return listElements; + } + + setSelected = () => { + const listElements = this.menuEl.current !== null && this.menuEl.current!.listElements; + if (!listElements || !listElements.length) return; + + const index = this.getIndexByValue(listElements); + const selectedItem = listElements[index]; + const selectedValue + = selectedItem && selectedItem.getAttribute(MDCSelectFoundation.strings.ENHANCED_VALUE_ATTR) || ''; + this.setState({selectedItem, selectedValue}); + } + + private getIndexByValue = (listElements: Element[]) => { + const {value} = this.props; + let index = -1; + if (index < 0 && value) { + listElements.some((element: Element, elementIndex: number) => { + if (element.getAttribute(MDCSelectFoundation.strings.ENHANCED_VALUE_ATTR) === value) { + index = elementIndex; + return true; + } + return false; + }); + } + return index; + } + + private handleMenuClose = () => { + const {closeMenu, foundation} = this.props; + closeMenu!(); + this.setState({'aria-expanded': undefined}); + if (foundation && document.activeElement !== this.selectedTextEl.current) { + foundation.handleBlur(); + } + } + + private handleMenuOpen = () => { + this.setState({'aria-expanded': true}); + if (this.listElements && this.listElements.length > 0) { + let index = this.getIndexByValue(this.listElements); + index = index > -1 ? index : 0; + const listItem = this.listElements[index]; + (listItem as HTMLElement).focus(); + } + } + + render() { + const { + children, + required, + open, + disabled, + anchorElement, + onMouseDown, + onTouchStart, + onKeyDown, + onFocus, + onClick, + onBlur, + onEnhancedChange, + isInvalid, + } = this.props; + + const {'aria-expanded': ariaExpanded, selectedValue, selectedItem} = this.state; + + const selectedTextAttrs: {[key: string]: string} = {}; + if (required) { + selectedTextAttrs['aria-required'] = required.toString(); + } + if (ariaExpanded && ariaExpanded !== 'false') { + selectedTextAttrs['aria-expanded'] = 'true'; + } + if (isInvalid) { + selectedTextAttrs['aria-invalid'] = 'true'; + } + if (disabled) { + selectedTextAttrs['aria-disabled'] = 'true'; + } else { + selectedTextAttrs['aria-disabled'] = 'false'; + } + + return ( + + +
+ {selectedItem ? (selectedItem as Element).textContent!.trim() : ''} +
+ + + {/* TODO: this should use React.createContext instead */} + {React.Children.map(children, (child) => { + const c = child as React.ReactElement; + return React.cloneElement(c, {...c.props, enhanced: true}); + })} + + +
+ ); + } +} diff --git a/packages/select/NativeControl.tsx b/packages/select/NativeControl.tsx index bb78c40b6..e69de29bb 100644 --- a/packages/select/NativeControl.tsx +++ b/packages/select/NativeControl.tsx @@ -1,133 +0,0 @@ -// The MIT License -// -// Copyright (c) 2018 Google, Inc. -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -import React from 'react'; -import classnames from 'classnames'; -// @ts-ignore no .d.ts file -import {MDCSelectFoundation} from '@material/select/dist/mdc.select'; - -export interface NativeControlProps extends React.HTMLProps { - className: string; - disabled: boolean; - foundation: MDCSelectFoundation; - setRippleCenter: (lineRippleCenter: number) => void; - handleDisabled: (disabled: boolean) => void; - value: string; -} - -export default class NativeControl extends React.Component< - NativeControlProps, - {} - > { - nativeControl_: React.RefObject = React.createRef(); - - static defaultProps: NativeControlProps = { - className: '', - children: null, - disabled: false, - foundation: { - handleFocus: () => {}, - handleBlur: () => {}, - }, - setRippleCenter: () => {}, - handleDisabled: () => {}, - value: '', - }; - - - componentDidUpdate(prevProps: NativeControlProps) { - if (this.props.disabled !== prevProps.disabled) { - this.props.handleDisabled(this.props.disabled); - } - } - - get classes() { - return classnames('mdc-select__native-control', this.props.className); - } - - handleFocus = (evt: React.FocusEvent) => { - const {foundation, onFocus} = this.props; - foundation.handleFocus(evt); - onFocus && onFocus(evt); - }; - - handleBlur = (evt: React.FocusEvent) => { - const {foundation, onBlur} = this.props; - foundation.handleBlur(evt); - onBlur && onBlur(evt); - }; - - handleMouseDown = (evt: React.MouseEvent) => { - const {onMouseDown} = this.props; - this.setRippleCenter(evt.clientX, evt.target as HTMLSelectElement); - onMouseDown && onMouseDown(evt); - }; - - handleTouchStart = (evt: React.TouchEvent) => { - const {onTouchStart} = this.props; - const clientX = evt.touches[0] && evt.touches[0].clientX; - this.setRippleCenter(clientX, evt.target as HTMLSelectElement); - onTouchStart && onTouchStart(evt); - }; - - setRippleCenter = (xCoordinate: number, target: HTMLSelectElement) => { - if (target !== this.nativeControl_.current) return; - const targetClientRect = target.getBoundingClientRect(); - const normalizedX = xCoordinate - targetClientRect.left; - this.props.setRippleCenter(normalizedX); - }; - - render() { - const { - disabled, - /* eslint-disable no-unused-vars */ - className, - children, - foundation, - value, - handleDisabled, - onFocus, - onBlur, - onTouchStart, - onMouseDown, - setRippleCenter, - /* eslint-enable no-unused-vars */ - ...otherProps - } = this.props; - - return ( - - ); - } -} diff --git a/packages/select/NativeSelect.tsx b/packages/select/NativeSelect.tsx new file mode 100644 index 000000000..fba4c5b5b --- /dev/null +++ b/packages/select/NativeSelect.tsx @@ -0,0 +1,92 @@ +// The MIT License +// +// Copyright (c) 2018 Google, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +import * as React from 'react'; +import classnames from 'classnames'; +import {CommonSelectProps} from './BaseSelect'; + +type RefCallback = (node: T | null) => void; + +export interface NativeSelectProps extends CommonSelectProps, React.HTMLProps { + innerRef?: RefCallback | React.RefObject; + value?: string; + ref?: React.Ref; +} + +export default class NativeSelect extends React.Component< + NativeSelectProps, + {} + > { + NativeSelect: React.RefObject = React.createRef(); + + static defaultProps: Partial = { + className: '', + children: null, + disabled: false, + value: '', + }; + + get classes() { + return classnames('mdc-select__native-control', this.props.className); + } + + attachRef = (node: HTMLSelectElement | null) => { + const {innerRef} = this.props; + + // https://github.com/facebook/react/issues/13029#issuecomment-410002316 + // @ts-ignore this is acceptable according to the comment above + this.NativeSelect.current = node; + + if (!innerRef) { + return; + } + + if (typeof innerRef !== 'function') { + // @ts-ignore same as above + innerRef.current = node; + } else { + innerRef(node); + } + } + + render() { + const { + /* eslint-disable no-unused-vars */ + className, + children, + foundation, + innerRef, + /* eslint-enable no-unused-vars */ + ...otherProps + } = this.props; + + return ( + + ); + } +} diff --git a/packages/select/Option.tsx b/packages/select/Option.tsx new file mode 100644 index 000000000..5871274ef --- /dev/null +++ b/packages/select/Option.tsx @@ -0,0 +1,67 @@ +// The MIT License +// +// Copyright (c) 2019 Google, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +import * as React from 'react'; +import {MenuListItem, MenuListItemProps} from '@material/react-menu'; // eslint-disable-line no-unused-vars + +export type OptionProps + = BaseOptionProps & (T extends HTMLOptionElement ? React.HTMLProps : MenuListItemProps); + +interface BaseOptionProps { + enhanced?: boolean; +} + +class Option extends React.Component, {}> { + static defaultProps = { + enhanced: false, + }; + + render() { + const { + value, + enhanced, + children, + ...otherProps + } = this.props; + + if (enhanced) { + return ( + + {children} + + ); + } + return ( + + ); + } +} + +export default Option; diff --git a/packages/select/README.md b/packages/select/README.md index 6ea1f3d4c..82be3aa8d 100644 --- a/packages/select/README.md +++ b/packages/select/README.md @@ -24,11 +24,11 @@ import '@material/react-select/dist/select.css'; ### Javascript Instantiation -React Select requires at least one ` ); }); } renderLabel() { const {id, label, floatingLabelClassName} = this.props; + if (!label) return; + return ( { className={notchedOutlineClassName} notch={outlineIsNotched} notchWidth={labelWidth} - /> + > + {this.renderLabel()} + ); } + + renderHelperText() { + const {helperText} = this.props; + if (!helperText) return; + const props = { + ...helperText.props, + setHelperTextFoundation: this.setHelperTextFoundation, + } as SelectHelperTextProps; + return React.cloneElement(helperText, props); + } + + renderIcon() { + const {leadingIcon} = this.props; + if (!leadingIcon) return; + const props = { + ...leadingIcon.props, + setIconFoundation: this.setIconFoundation, + } as SelectIconProps; + return React.cloneElement(leadingIcon, props); + } } + +export { + SelectHelperText, + SelectHelperTextProps, +} from './helper-text'; +export { + SelectIcon, + SelectIconProps, +} from './icon'; + +export {Option}; +export { + MenuListDivider as OptionDivider, + MenuListGroup as OptionGroup, + MenuListGroupSubheader as OptionGroupSubheader, + MenuListItemGraphic as OptionGraphic, + MenuListItemMeta as OptionMeta, + MenuListItemText as OptionText, +} from '@material/react-menu'; diff --git a/packages/select/package.json b/packages/select/package.json index c9a01731d..a20935655 100644 --- a/packages/select/package.json +++ b/packages/select/package.json @@ -18,8 +18,10 @@ "dependencies": { "@material/react-floating-label": "^0.11.0", "@material/react-line-ripple": "^0.11.0", + "@material/react-menu": "^0.0.0", + "@material/react-menu-surface": "^0.11.0", "@material/react-notched-outline": "^0.11.0", - "@material/select": "^0.40.1", + "@material/select": "^1.1.1", "classnames": "^2.2.6", "react": "^16.4.2" }, diff --git a/test/screenshot/golden.json b/test/screenshot/golden.json index 7e905c010..860741511 100644 --- a/test/screenshot/golden.json +++ b/test/screenshot/golden.json @@ -50,5 +50,7 @@ "drawer/dismissible": "6ea0638441e0e6df3c97028136239498a31bba206253a01d114431eda20d1060", "drawer/modal": "da83487c9349b253f7d4de01f92d442de55aab92a8028b77ff1a48cfaa265b72", "drawer/permanentToModal": "6355905c2241b5e6fdddc2e25119a1cc3b062577375a88b59e6750c4b76e4561", - "typography": "c5e87d672d8c05ca3b61c0df4971eabe3c6a6a1f24a9b98f71f55a23360c498a" + "typography": "c5e87d672d8c05ca3b61c0df4971eabe3c6a6a1f24a9b98f71f55a23360c498a", + "select/nativeSelect": "15a48b510da4886099b9d189c837a1aa8de887d8a2cb27e41f178460320da56c", + "select/enhanced": "773ed747a8d233bee01d8234451083f7a49bfe355b93a0f940fdf6f1ffdf050b" } diff --git a/test/screenshot/index.tsx b/test/screenshot/index.tsx index 20934cf6f..c1a0ecdf5 100644 --- a/test/screenshot/index.tsx +++ b/test/screenshot/index.tsx @@ -4,11 +4,16 @@ import {HashRouter, Route} from 'react-router-dom'; import App from './App'; import topAppBarVariants from './top-app-bar/variants'; import drawerVariants from './drawer/variants'; +import selectVariants from './select/variants'; import textFieldVariants from './text-field/variants'; import dialogVariants from './dialog/variants'; import {COMPONENTS} from './constants'; import './index.scss'; +const variantRoute = (path: string, Component: React.ComponentClass) => ( + +); + ReactDOM.render(
@@ -27,30 +32,27 @@ ReactDOM.render( {dialogVariants.map((variant: string) => { const path = `dialog/${variant}`; const Component = require(`./dialog/${variant}`).default; - return ( - - ); + return variantRoute(path, Component); })} {drawerVariants.map((variant: string) => { const path = `drawer/${variant}`; const Component = require(`./drawer/${variant}`).default; - return ( - - ); + return variantRoute(path, Component); + })} + {selectVariants.map((variant: string) => { + const path = `select/${variant}`; + const Component = require(`./select/${variant}`).default; + return variantRoute(path, Component); })} {textFieldVariants.map((variant: string) => { const path = `text-field/${variant}`; const Component = require(`./text-field/${variant}`).default; - return ( - - ); + return variantRoute(path, Component); })} {topAppBarVariants.map((variant: string) => { const path = `top-app-bar/${variant}`; const Component = require(`./top-app-bar/${variant}`).default; - return ( - - ); + return variantRoute(path, Component); })}
, diff --git a/test/screenshot/screenshot-test-urls.tsx b/test/screenshot/screenshot-test-urls.tsx index 2396f1fe8..532b2e5d1 100644 --- a/test/screenshot/screenshot-test-urls.tsx +++ b/test/screenshot/screenshot-test-urls.tsx @@ -1,6 +1,7 @@ import topAppBarVariants from './top-app-bar/variants'; import dialogVariants from './dialog/variants'; import drawerVariants from './drawer/variants'; +import selectVariants from './select/variants'; import textFieldVariants from './text-field/variants'; const urls = [ 'button', @@ -19,7 +20,6 @@ const urls = [ 'menu-surface', 'notched-outline', 'radio', - 'select', 'snackbar', 'tab', 'tab-bar', @@ -42,6 +42,10 @@ drawerVariants.forEach((variant: string) => { urls.push(`drawer/${variant}`); }); +selectVariants.forEach((variant: string) => { + urls.push(`select/${variant}`); +}); + textFieldVariants.forEach((variant: string) => { urls.push(`text-field/${variant}`); }); diff --git a/test/screenshot/select/enhanced.tsx b/test/screenshot/select/enhanced.tsx new file mode 100644 index 000000000..3d9984bdb --- /dev/null +++ b/test/screenshot/select/enhanced.tsx @@ -0,0 +1,8 @@ +import * as React from 'react'; +import {getSelects} from './index'; + +const EnhancedSelectScreenshotTest = () => { + return
{getSelects(true)}
; +}; + +export default EnhancedSelectScreenshotTest; diff --git a/test/screenshot/select/index.tsx b/test/screenshot/select/index.tsx index 998903be2..322ffa8e6 100644 --- a/test/screenshot/select/index.tsx +++ b/test/screenshot/select/index.tsx @@ -1,87 +1,123 @@ import React from 'react'; -import Select, {SelectProps} from '../../../packages/select/index'; +import {Link} from 'react-router-dom'; +import selectVariants from './variants'; +import Select, {SelectIcon, SelectProps, Option, SelectHelperText} from '../../../packages/select/index'; +import '../../../packages/select/index.scss'; +import './index.scss'; + +const SelectScreenshotTest = () => { + return ( +
+ {selectVariants.map((variant, index) => ( +
+ {variant} +
+ ))} +
+ ); +}; + +interface SelectTestProps extends SelectProps { + enhanced: boolean; +} interface SelectTestState { - value: any + value: string; } -class SelectTest extends React.Component { - constructor(props: SelectProps) { +class SelectTest extends React.Component { + constructor(props: SelectTestProps) { super(props); this.state = {value: props.value || ''}; // eslint-disable-line react/prop-types } static defaultProps: Partial = { - box: false, className: '', disabled: false, floatingLabelClassName: '', - isRtl: false, lineRippleClassName: '', - nativeControlClassName: '', + selectClassName: '', notchedOutlineClassName: '', outlined: false, options: [], onChange: () => {}, + enhanced: false, } onChange = (evt: React.ChangeEvent) => ( this.setState({value: evt.target.value}) ); + onEnhancedChange = (_index: number, item: Element) => ( + this.setState({value: item.getAttribute('data-value') as string}) + ); + render() { const { disabled, id, - isRtl, + enhanced, ref, // eslint-disable-line no-unused-vars ...otherProps // eslint-disable-line react/prop-types } = this.props; return ( -
+
); } } -const variants = [{}, {box: true}, {outlined: true}]; -const rtlMap = [{}, {isRtl: true}]; +const variants = [{}, {outlined: true}]; +const leadingIconMap = [{}, { + leadingIcon: favorite, + key: 'favorite', +}]; const disabledMap = [{}, {disabled: true}]; +const requiredMap = [{}, {required: true}]; const valueMap = [{}, {value: 'pomsky'}]; +const helperTextMap = [ + {key: 'nohelpertext'}, + {helperText: Help me, key: 'persistent'}, +]; -const selects = variants.map((variant) => { - return rtlMap.map((isRtl) => { - return disabledMap.map((disabled) => { - return valueMap.map((value) => { - const props = Object.assign({}, variant, disabled, isRtl, value); - const valueKey = Object.keys(value)[0] || ''; - const variantKey = Object.keys(variant)[0] || ''; - const rtlKey = Object.keys(isRtl)[0] || ''; - const disabledKey = Object.keys(disabled)[0] || ''; - const key = `${variantKey}-${disabledKey}-${valueKey}--${rtlKey}`; - return ; +export const getSelects = (enhanced: boolean = false) => variants.map((variant) => { + return disabledMap.map((disabled) => { + return valueMap.map((value) => { + return requiredMap.map((required) => { + return helperTextMap.map((helperText) => { + return leadingIconMap.map((icon) => { + const props = Object.assign({}, variant, disabled, value, required, helperText, icon, {enhanced}); + const valueKey = Object.keys(value)[0] || ''; + const variantKey = Object.keys(variant)[0] || ''; + const disabledKey = Object.keys(disabled)[0] || ''; + const requiredKey = Object.keys(required)[0] || ''; + const key + = `${variantKey}-${disabledKey}-${valueKey}-${requiredKey} + -${helperText.key}-${icon.key}-${enhanced}`; + return ; + }); + }); }); }); }); }); -const SelectScreenshotTest = () => { - return
{selects}
; -}; export default SelectScreenshotTest; diff --git a/test/screenshot/select/nativeSelect.tsx b/test/screenshot/select/nativeSelect.tsx new file mode 100644 index 000000000..8ab821621 --- /dev/null +++ b/test/screenshot/select/nativeSelect.tsx @@ -0,0 +1,8 @@ +import * as React from 'react'; +import {getSelects} from './index'; + +const NativeSelectScreenshotTest = () => { + return
{getSelects()}
; +}; + +export default NativeSelectScreenshotTest; diff --git a/test/screenshot/select/variants.tsx b/test/screenshot/select/variants.tsx new file mode 100644 index 000000000..282edc3a5 --- /dev/null +++ b/test/screenshot/select/variants.tsx @@ -0,0 +1,4 @@ +export default [ + 'nativeSelect', + 'enhanced', +]; diff --git a/test/unit/menu/index.test.tsx b/test/unit/menu/index.test.tsx index c4d4a10e7..bceec3d36 100644 --- a/test/unit/menu/index.test.tsx +++ b/test/unit/menu/index.test.tsx @@ -203,22 +203,6 @@ test('handleOpen calls props.onOpen', () => { td.verify(onOpen(), {times: 1}); }); -test('handleOpen calls focuses on first list element', () => { - const div = document.createElement('div'); - document.body.append(div); - const options = {attachTo: div}; - const wrapper = mount( - - - - - , options); - coerceForTesting
(wrapper.instance()).handleOpen!(); - assert.equal(document.activeElement, wrapper.find('.mdc-list-item').first().getDOMNode()); - wrapper.unmount(); - div.remove(); -}); - test('menu renders with tabindex=-1', () => { const wrapper = shallow(); assert.equal(wrapper.props().tabIndex, -1); diff --git a/test/unit/select/BaseSelect.test.tsx b/test/unit/select/BaseSelect.test.tsx new file mode 100644 index 000000000..2bbf0ae0c --- /dev/null +++ b/test/unit/select/BaseSelect.test.tsx @@ -0,0 +1,249 @@ +import * as React from 'react'; +import * as td from 'testdouble'; +import {assert} from 'chai'; +import {shallow} from 'enzyme'; +import {coerceForTesting} from '../helpers/types'; + +import {BaseSelect} from '../../../packages/select/BaseSelect'; +import NativeSelect from '../../../packages/select/NativeSelect'; +import EnhancedSelect from '../../../packages/select/EnhancedSelect'; +import MDCSelectFoundation from '@material/select/foundation'; + +suite('Base Select'); + +test('renders EnhancedSelect when props.enhanced is true', () => { + const wrapper = shallow(); + assert.equal(wrapper.find(EnhancedSelect).length, 1); +}); + +test('renders NativeSelect when props.enhanced is false', () => { + const wrapper = shallow(); + assert.equal(wrapper.find(NativeSelect).length, 1); +}); + +test('NativeSelect onFocus calls handleFocus', () => { + const handleFocus = td.func(); + const onFocus = td.func<(evt: React.FocusEvent) => void>(); + const foundation = coerceForTesting({handleFocus}); + const wrapper = shallow(); + const nativeSelect = wrapper.find(NativeSelect); + const evt = coerceForTesting>({}); + nativeSelect.simulate('focus', evt); + td.verify(handleFocus(), {times: 1}); + td.verify(onFocus(evt), {times: 1}); +}); + +test('EnhancedSelect onFocus calls handleFocus', () => { + const handleFocus = td.func(); + const onFocus = td.func<(evt: React.FocusEvent) => void>(); + const foundation = coerceForTesting({handleFocus}); + const wrapper = shallow(); + const enhancedSelect = wrapper.find(EnhancedSelect); + const evt = coerceForTesting>({}); + enhancedSelect.simulate('focus', evt); + td.verify(handleFocus(), {times: 1}); + td.verify(onFocus(evt), {times: 1}); +}); + +test('NativeSelect onBlur calls handleBlur', () => { + const handleBlur = td.func(); + const onBlur = td.func<(evt: React.FocusEvent) => void>(); + const foundation = coerceForTesting({handleBlur}); + const wrapper = shallow(); + const nativeSelect = wrapper.find(NativeSelect); + const evt = coerceForTesting>({}); + nativeSelect.simulate('blur', evt); + td.verify(handleBlur(), {times: 1}); + td.verify(onBlur(evt), {times: 1}); +}); + +test('EnhancedSelect onBlur calls handleBlur', () => { + const handleBlur = td.func(); + const onBlur = td.func<(evt: React.FocusEvent) => void>(); + const foundation = coerceForTesting({handleBlur}); + const wrapper = shallow(); + const enhancedSelect = wrapper.find(EnhancedSelect); + const evt = coerceForTesting>({}); + enhancedSelect.simulate('blur', evt); + td.verify(handleBlur(), {times: 1}); + td.verify(onBlur(evt), {times: 1}); +}); + +test('NativeSelect onTouchStart calls handleClick', () => { + const handleClick = td.func(); + const onTouchStart = td.func<(evt: React.TouchEvent) => void>(); + const foundation = coerceForTesting({handleClick}); + const wrapper = shallow(); + const nativeSelect = wrapper.find(NativeSelect); + const clientX = 100; + const left = 10; + const getBoundingClientRect = td.func(); + const currentTarget = coerceForTesting({getBoundingClientRect}); + const evt = coerceForTesting>({ + currentTarget, + nativeEvent: { + touches: [{clientX}], + }, + }); + td.when(getBoundingClientRect()).thenReturn({left}); + + nativeSelect.simulate('touchstart', evt); + td.verify(handleClick(clientX - left), {times: 1}); + td.verify(onTouchStart(evt), {times: 1}); +}); + +test('EnhancedSelect onTouchStart calls handleClick', () => { + const handleClick = td.func(); + const onTouchStart = td.func<(evt: React.TouchEvent) => void>(); + const foundation = coerceForTesting({handleClick}); + const wrapper = shallow(); + const enhancedSelect = wrapper.find(EnhancedSelect); + const clientX = 100; + const left = 10; + const getBoundingClientRect = td.func(); + const currentTarget = coerceForTesting({getBoundingClientRect}); + const evt = coerceForTesting>({ + currentTarget, + nativeEvent: { + touches: [{clientX}], + }, + }); + td.when(getBoundingClientRect()).thenReturn({left}); + + enhancedSelect.simulate('touchstart', evt); + td.verify(handleClick(clientX - left), {times: 1}); + td.verify(onTouchStart(evt), {times: 1}); +}); + +test('NativeSelect onMouseDown calls handleClick', () => { + const handleClick = td.func(); + const onMouseDown = td.func<(evt: React.MouseEvent) => void>(); + const foundation = coerceForTesting({handleClick}); + const wrapper = shallow(); + const nativeSelect = wrapper.find(NativeSelect); + const clientX = 100; + const left = 10; + const getBoundingClientRect = td.func(); + const currentTarget = coerceForTesting({getBoundingClientRect}); + const evt = coerceForTesting>({ + currentTarget, + nativeEvent: {clientX}, + }); + td.when(getBoundingClientRect()).thenReturn({left}); + + nativeSelect.simulate('mousedown', evt); + td.verify(handleClick(clientX - left), {times: 1}); + td.verify(onMouseDown(evt), {times: 1}); +}); + +test('EnhancedSelect onMouseDown calls handleClick', () => { + const handleClick = td.func(); + const onMouseDown = td.func<(evt: React.MouseEvent) => void>(); + const foundation = coerceForTesting({handleClick}); + const wrapper = shallow(); + const enhancedSelect = wrapper.find(EnhancedSelect); + const clientX = 100; + const left = 10; + const getBoundingClientRect = td.func(); + const currentTarget = coerceForTesting({getBoundingClientRect}); + const evt = coerceForTesting>({ + currentTarget, + nativeEvent: {clientX}, + }); + td.when(getBoundingClientRect()).thenReturn({left}); + + enhancedSelect.simulate('mousedown', evt); + td.verify(handleClick(clientX - left), {times: 1}); + td.verify(onMouseDown(evt), {times: 1}); +}); + +test('NativeSelect onClick calls handleClick', () => { + const handleClick = td.func(); + const onClick = td.func<(evt: React.MouseEvent) => void>(); + const foundation = coerceForTesting({handleClick}); + const wrapper = shallow(); + const nativeSelect = wrapper.find(NativeSelect); + const clientX = 100; + const left = 10; + const getBoundingClientRect = td.func(); + const currentTarget = coerceForTesting({getBoundingClientRect}); + const evt = coerceForTesting>({ + currentTarget, + nativeEvent: {clientX}, + }); + td.when(getBoundingClientRect()).thenReturn({left}); + + nativeSelect.simulate('click', evt); + td.verify(handleClick(clientX - left), {times: 1}); + td.verify(onClick(evt), {times: 1}); +}); + +test('EnhancedSelect onClick calls handleClick', () => { + const handleClick = td.func(); + const onClick = td.func<(evt: React.MouseEvent) => void>(); + const foundation = coerceForTesting({handleClick}); + const wrapper = shallow(); + const enhancedSelect = wrapper.find(EnhancedSelect); + const clientX = 100; + const left = 10; + const getBoundingClientRect = td.func(); + const currentTarget = coerceForTesting({getBoundingClientRect}); + const evt = coerceForTesting>({ + currentTarget, + nativeEvent: {clientX}, + }); + td.when(getBoundingClientRect()).thenReturn({left}); + + enhancedSelect.simulate('click', evt); + td.verify(handleClick(clientX - left), {times: 1}); + td.verify(onClick(evt), {times: 1}); +}); + +test('NativeSelect onKeyDown calls props.onKeyDown', () => { + const onKeyDown = td.func<(evt: React.KeyboardEvent) => void>(); + const wrapper = shallow(); + const nativeSelect = wrapper.find(NativeSelect); + const clientX = 100; + const left = 10; + const getBoundingClientRect = td.func(); + const currentTarget = coerceForTesting({getBoundingClientRect}); + const evt = coerceForTesting>({ + currentTarget, + nativeEvent: {clientX}, + }); + td.when(getBoundingClientRect()).thenReturn({left}); + + nativeSelect.simulate('keydown', evt); + td.verify(onKeyDown(evt), {times: 1}); +}); + +test('EnhancedSelect onKeyDown calls handleKeydown', () => { + const handleKeydown = td.func(); + const onKeyDown = td.func<(evt: React.KeyboardEvent) => void>(); + const foundation = coerceForTesting({handleKeydown}); + const wrapper = shallow(); + const enhancedSelect = wrapper.find(EnhancedSelect); + const clientX = 100; + const left = 10; + const getBoundingClientRect = td.func(); + const currentTarget = coerceForTesting({getBoundingClientRect}); + const evt = coerceForTesting>({ + currentTarget, + nativeEvent: {clientX}, + }); + td.when(getBoundingClientRect()).thenReturn({left}); + + enhancedSelect.simulate('keydown', evt); + td.verify(handleKeydown(evt.nativeEvent), {times: 1}); + td.verify(onKeyDown(evt), {times: 1}); +}); + +test('props.selectClassName gets passed to props.className of NativeSelect', () => { + const wrapper = shallow(); + assert.equal(wrapper.find(NativeSelect).props().className, 'test-class-name'); +}); + +test('props.selectClassName gets passed to props.className of EnhancedSelect', () => { + const wrapper = shallow(); + assert.equal(wrapper.find(EnhancedSelect).props().className, 'test-class-name'); +}); diff --git a/test/unit/select/EnhancedSelect.test.tsx b/test/unit/select/EnhancedSelect.test.tsx new file mode 100644 index 000000000..605a766dd --- /dev/null +++ b/test/unit/select/EnhancedSelect.test.tsx @@ -0,0 +1,234 @@ +import * as React from 'react'; +import * as td from 'testdouble'; +import {assert} from 'chai'; +import {shallow, mount} from 'enzyme'; +import EnhancedSelect from '../../../packages/select/EnhancedSelect'; +import {Option} from '../../../packages/select/index'; +import {coerceForTesting} from '../helpers/types'; +import MDCSelectFoundation from '@material/select/foundation'; +import Menu from '../../../packages/menu/index'; + +suite('Enhanced Select'); + +const testEvt = { + test: 'test', + clientX: 20, + target: { + getBoundingClientRect: () => ({left: 15}), + value: 'value', + }, +}; + +test('#event.focus calls #props.onFocus', () => { + const onFocus = coerceForTesting>(td.func()); + const wrapper = shallow(); + const selectedTextEl = wrapper.find(MDCSelectFoundation.strings.SELECTED_TEXT_SELECTOR); + selectedTextEl.simulate('focus', testEvt); + td.verify(onFocus(coerceForTesting>(testEvt)), {times: 1}); +}); + +test('#event.click calls #props.onClick', () => { + const onClick = coerceForTesting>(td.func()); + const wrapper = shallow(); + const selectedTextEl = wrapper.find(MDCSelectFoundation.strings.SELECTED_TEXT_SELECTOR); + selectedTextEl.simulate('click', testEvt); + td.verify(onClick(coerceForTesting>(testEvt)), {times: 1}); +}); + + +test('#event.blur calls #props.onBlur', () => { + const onBlur = coerceForTesting>(td.func()); + const wrapper = shallow(); + const selectedTextEl = wrapper.find(MDCSelectFoundation.strings.SELECTED_TEXT_SELECTOR); + selectedTextEl.simulate('blur', testEvt); + td.verify(onBlur(coerceForTesting>(testEvt)), {times: 1}); +}); + +test('#event.mousedown calls #props.onMouseDown', () => { + const onMouseDown = coerceForTesting>(td.func()); + const wrapper = shallow(); + const selectedTextEl = wrapper.find(MDCSelectFoundation.strings.SELECTED_TEXT_SELECTOR); + selectedTextEl.simulate('mousedown', testEvt); + td.verify(onMouseDown(coerceForTesting>(testEvt)), {times: 1}); +}); + +test('#event.touchstart calls #props.onTouchStart', () => { + const onTouchStart = coerceForTesting>(td.func()); + const wrapper = shallow(); + const selectedTextEl = wrapper.find(MDCSelectFoundation.strings.SELECTED_TEXT_SELECTOR); + selectedTextEl.simulate('touchstart', testEvt); + td.verify(onTouchStart(coerceForTesting>(testEvt)), {times: 1}); +}); + +test('#event.keydown calls #props.onKeyDown', () => { + const onKeyDown = coerceForTesting>(td.func()); + const wrapper = shallow(); + const selectedTextEl = wrapper.find(MDCSelectFoundation.strings.SELECTED_TEXT_SELECTOR); + selectedTextEl.simulate('keydown', testEvt); + td.verify(onKeyDown(coerceForTesting>(testEvt)), {times: 1}); +}); + +test('#event.touchstart calls #props.onTouchStart', () => { + const onTouchStart = coerceForTesting>(td.func()); + const wrapper = shallow(); + const selectedTextEl = wrapper.find(MDCSelectFoundation.strings.SELECTED_TEXT_SELECTOR); + const evt = coerceForTesting>({ + test: 'test', + touches: [{clientX: 20}], + target: { + getBoundingClientRect: () => ({left: 15}), + value: 'value', + }, + }); + selectedTextEl.simulate('touchstart', evt); + td.verify(onTouchStart(evt), {times: 1}); +}); + +test('renders children', () => { + const wrapper = shallow( + + + + ); + assert.equal(wrapper.find(Option).length, 1); +}); + +test('state.selectedItem and state.selectedValue updates when props.value updates', () => { + const wrapper = mount( + + + + ); + wrapper.setProps({value: 'test'}); + const listItem = wrapper.find('.mdc-list-item').getDOMNode(); + assert.equal(wrapper.state().selectedItem, listItem); + assert.equal(wrapper.state().selectedValue, 'test'); + wrapper.unmount(); +}); + +test('state.selectedItem and state.selectedValue do not update when props.value updates with no Options', () => { + const wrapper = mount( + + ); + wrapper.setProps({value: 'test'}); + assert.equal(wrapper.state().selectedItem, null); + assert.equal(wrapper.state().selectedValue, ''); + wrapper.unmount(); +}); + +test('listElements returns Option element', () => { + const wrapper = mount( + + + + ); + const listElement = coerceForTesting(wrapper.instance().listElements)[0]; + assert.equal(listElement, wrapper.find('Option').getDOMNode()); + wrapper.unmount(); +}); + +test('Menu.onClose calls sets aria-expanded and calls props.closeMenu, foundation.handleBlur', () => { + const closeMenu = td.func<() => {}>(); + const handleBlur = td.func<() => {}>(); + const foundation = coerceForTesting({handleBlur}); + const wrapper = mount( + + + + ); + wrapper.setState({'aria-expanded': true}); + wrapper.find(Menu).props().onClose!(); + + td.verify(closeMenu(), {times: 1}); + td.verify(handleBlur(), {times: 1}); + assert.equal(wrapper.state()['aria-expanded'], undefined); + wrapper.unmount(); +}); + +test('Menu.onOpen calls sets aria-expanded sets list item to focus', () => { + const div = document.createElement('div'); + document.body.append(div); + const wrapper = mount( + + + , + {attachTo: div} + ); + wrapper.find(Menu).props().onOpen!(); + + assert.equal(document.activeElement, wrapper.find(Option).getDOMNode()); + assert.equal(wrapper.state()['aria-expanded'], true); + div.remove(); + wrapper.unmount(); +}); + +test('renders selectedText element aria-required if props.required true', () => { + const wrapper = mount(); + const selectedText = wrapper.find('.mdc-select__selected-text').getDOMNode(); + assert.equal(selectedText.getAttribute('aria-required'), 'true'); + wrapper.unmount(); +}); + +test('renders selectedText element aria-expanded if state.aria-expanded true', () => { + const wrapper = mount(); + wrapper.setState({'aria-expanded': true}); + const selectedText = wrapper.find('.mdc-select__selected-text').getDOMNode(); + assert.equal(selectedText.getAttribute('aria-expanded'), 'true'); + wrapper.unmount(); +}); + +test('renders selectedText element aria-expanded if state.aria-expanded "true"', () => { + const wrapper = mount(); + wrapper.setState({'aria-expanded': 'true'}); + const selectedText = wrapper.find('.mdc-select__selected-text').getDOMNode(); + assert.equal(selectedText.getAttribute('aria-expanded'), 'true'); + wrapper.unmount(); +}); + +test('renders selectedText element aria-invalid if props.isInvalid is true', () => { + const wrapper = mount(); + const selectedText = wrapper.find('.mdc-select__selected-text').getDOMNode(); + assert.equal(selectedText.getAttribute('aria-invalid'), 'true'); + wrapper.unmount(); +}); + +test('renders selectedText element aria-disabled if props.disabled true', () => { + const wrapper = mount(); + const selectedText = wrapper.find('.mdc-select__selected-text').getDOMNode(); + assert.equal(selectedText.getAttribute('aria-disabled'), 'true'); + wrapper.unmount(); +}); + +test('renders selectedText element aria-disabled as false if props.disabled false', () => { + const wrapper = mount(); + const selectedText = wrapper.find('.mdc-select__selected-text').getDOMNode(); + assert.equal(selectedText.getAttribute('aria-disabled'), 'false'); + wrapper.unmount(); +}); + +test('renders selectedText element tabindex as 0', () => { + const wrapper = mount(); + const selectedText = wrapper.find('.mdc-select__selected-text').getDOMNode(); + assert.equal(selectedText.getAttribute('tabindex'), '0'); + wrapper.unmount(); +}); + +test('renders selectedText element tabindex as -1 if disabled', () => { + const wrapper = mount(); + const selectedText = wrapper.find('.mdc-select__selected-text').getDOMNode(); + assert.equal(selectedText.getAttribute('tabindex'), '-1'); + wrapper.unmount(); +}); + +test('renders selectedText with state.selectedItem trimed', () => { + const wrapper = mount( + + + + ); + assert.equal(wrapper.find('.mdc-select__selected-text').text(), 'MEOW MEOW'); + wrapper.unmount(); +}); diff --git a/test/unit/select/NativeControl.test.tsx b/test/unit/select/NativeControl.test.tsx index 93d535b01..e69de29bb 100644 --- a/test/unit/select/NativeControl.test.tsx +++ b/test/unit/select/NativeControl.test.tsx @@ -1,151 +0,0 @@ -import React from 'react'; -import td from 'testdouble'; -import {assert} from 'chai'; -import {shallow, mount} from 'enzyme'; -import NativeControl from '../../../packages/select/NativeControl'; -import {coerceForTesting} from '../helpers/types'; - -suite('Select Native Input'); - -const testEvt = { - test: 'test', - clientX: 20, - target: { - getBoundingClientRect: () => ({left: 15}), - value: 'value', - }, -}; - -test('has mdc-select__native-control class', () => { - const wrapper = shallow(); - assert.isTrue(wrapper.hasClass('mdc-select__native-control')); -}); - -test('classNames adds classes', () => { - const wrapper = shallow(); - assert.isTrue(wrapper.hasClass('test-class-name')); -}); - -test('calls props.handleDisabled if props.disabled updates', () => { - const handleDisabled = coerceForTesting<(d: boolean) => void>(td.func()); - const wrapper = shallow(); - wrapper.setProps({disabled: true}); - td.verify(handleDisabled(true), {times: 1}); -}); - -test('#event.focus calls #foundation.handleFocus', () => { - const foundation = {handleFocus: td.func()}; - const wrapper = shallow(); - wrapper.simulate('focus', testEvt); - td.verify(foundation.handleFocus(testEvt), {times: 1}); -}); - -test('#event.focus calls #props.onFocus', () => { - const onFocus = coerceForTesting>(td.func()); - const wrapper = shallow(); - wrapper.simulate('focus', testEvt); - td.verify(onFocus(coerceForTesting>(testEvt)), {times: 1}); -}); - -test('#event.blur calls #foundation.handleBlur', () => { - const foundation = {handleBlur: coerceForTesting>(td.func())}; - const wrapper = shallow(); - wrapper.simulate('blur', testEvt); - td.verify(foundation.handleBlur(coerceForTesting>(testEvt)), {times: 1}); -}); - -test('#event.blur calls #props.onBlur', () => { - const onBlur = coerceForTesting>(td.func()); - const wrapper = shallow(); - wrapper.simulate('blur', testEvt); - td.verify(onBlur(coerceForTesting>(testEvt)), {times: 1}); -}); - -test('#event.change calls #props.onChange', () => { - const onChange = coerceForTesting>(td.func()); - const wrapper = shallow(); - wrapper.simulate('change', testEvt); - td.verify(onChange(coerceForTesting>(testEvt)), {times: 1}); -}); - -test('#event.mousedown calls #props.onMouseDown', () => { - const onMouseDown = coerceForTesting>(td.func()); - const wrapper = shallow(); - wrapper.simulate('mousedown', testEvt); - td.verify(onMouseDown(coerceForTesting>(testEvt)), {times: 1}); -}); - -test('#event.mousedown calls #props.setRippleCenter if target is nativeControl', () => { - const setRippleCenter = coerceForTesting<(rippleCenter: number) => void>(td.func()); - const wrapper = mount(); - wrapper.instance().nativeControl_ - = coerceForTesting>({current: testEvt.target}); - wrapper.simulate('mousedown', testEvt); - const left = testEvt.target.getBoundingClientRect().left; - td.verify(setRippleCenter(testEvt.clientX - left), {times: 1}); -}); - -test('#event.mousedown does not call #props.setRippleCenter if target is not nativeControl', () => { - const setRippleCenter = coerceForTesting<(rippleCenter: number) => void>(td.func()); - const wrapper = mount(); - wrapper.simulate('mousedown', testEvt); - const left = testEvt.target.getBoundingClientRect().left; - td.verify(setRippleCenter(testEvt.clientX - left), {times: 0}); -}); - -test('#event.touchstart calls #props.onTouchStart', () => { - const onTouchStart = coerceForTesting>(td.func()); - const wrapper = shallow(); - const evt = coerceForTesting>({ - test: 'test', - touches: [{clientX: 20}], - target: { - getBoundingClientRect: () => ({left: 15}), - value: 'value', - }, - }); - wrapper.simulate('touchstart', evt); - td.verify(onTouchStart(evt), {times: 1}); -}); - -test('#event.touchstart calls #props.setRippleCenter if target is nativeControl', () => { - const setRippleCenter = coerceForTesting<(rippleCenter: number) => void>(td.func()); - const wrapper = mount(); - const evt = { - test: 'test', - touches: [{clientX: 20}], - target: { - getBoundingClientRect: () => ({left: 15}), - value: 'value', - }, - }; - wrapper.instance().nativeControl_ = coerceForTesting>({current: evt.target}); - wrapper.simulate('touchstart', evt); - const left = evt.target.getBoundingClientRect().left; - td.verify(setRippleCenter(20 - left), {times: 1}); -}); - -test('#event.touchstart does not call #props.setRippleCenter if target is not nativeControl', () => { - const setRippleCenter = coerceForTesting<(rippleCenter: number) => void>(td.func()); - const wrapper = mount(); - const evt = { - test: 'test', - touches: [{clientX: 20}], - target: { - getBoundingClientRect: () => ({left: 15}), - value: 'value', - }, - }; - wrapper.simulate('touchstart', evt); - const left = evt.target.getBoundingClientRect().left; - td.verify(setRippleCenter(20 - left), {times: 0}); -}); - -test('renders children', () => { - const wrapper = shallow( - - - - ); - assert.equal(wrapper.find('option[value="test"]').length, 1); -}); diff --git a/test/unit/select/NativeSelect.test.tsx b/test/unit/select/NativeSelect.test.tsx new file mode 100644 index 000000000..2efa8b3b7 --- /dev/null +++ b/test/unit/select/NativeSelect.test.tsx @@ -0,0 +1,25 @@ +import * as React from 'react'; +import {assert} from 'chai'; +import {shallow} from 'enzyme'; +import NativeSelect from '../../../packages/select/NativeSelect'; + +suite('Select Native'); + +test('has mdc-select__native-control class', () => { + const wrapper = shallow(); + assert.isTrue(wrapper.hasClass('mdc-select__native-control')); +}); + +test('classNames adds classes', () => { + const wrapper = shallow(); + assert.isTrue(wrapper.hasClass('test-class-name')); +}); + +test('renders children', () => { + const wrapper = shallow( + + + + ); + assert.equal(wrapper.find('option[value="test"]').length, 1); +}); diff --git a/test/unit/select/Option.test.tsx b/test/unit/select/Option.test.tsx new file mode 100644 index 000000000..4b664ea48 --- /dev/null +++ b/test/unit/select/Option.test.tsx @@ -0,0 +1,28 @@ +import * as React from 'react'; +import {assert} from 'chai'; +import {shallow, mount} from 'enzyme'; +import {Option} from '../../../packages/select/index'; +import {MenuListItem} from '../../../packages/menu/index'; + +suite('Select Options'); + +test('renders an option tag if not enhanced', () => { + const wrapper = shallow(} />); + assert.equal(wrapper.childAt(0).childAt(0).type(), 'i'); + assert.equal(wrapper.childAt(0).childAt(1).type(), 'i'); +}); + test('renders notchedOutline if props.outlined is true', () => { const wrapper = shallow(); - const LineRipplePackage = require('../../../packages/line-ripple'); - assert.equal(wrapper.childAt(2).type(), LineRipplePackage.default); + assert.equal(wrapper.childAt(0).childAt(3).type(), LineRipple); }); -test('renders NativeControl for select', () => { +test('renders BaseSelect for select', () => { const wrapper = shallow(); - const FloatingLabelPackage = require('../../../packages/floating-label'); - assert.equal(wrapper.childAt(1).type(), FloatingLabelPackage.default); + assert.equal(wrapper.childAt(0).childAt(2).type(), FloatingLabel); +}); + +test('renders no FloatingLabel if props.label does not exists', () => { + const wrapper = shallow( + const wrapper = mount( + (((((({options}); + const wrapper = mount(); assert.equal(wrapper.find('option').length, 1); }); @@ -266,31 +396,31 @@ test('renders options passed as children', () => { ); - const wrapper = shallow(); + const wrapper = mount(); assert.equal(wrapper.find('option').length, 2); }); test('renders options passed as array of 1 string', () => { - const wrapper = shallow(); assert.equal(wrapper.find('option[value="opt 1"]').length, 1); }); test('renders options passed as array of strings', () => { - const wrapper = shallow( + const wrapper = mount( ); assert.equal(wrapper.find('option[value="opt-1"]').length, 1); }); test('renders options passed as array of objects', () => { - const wrapper = shallow( + const wrapper = mount( ); - assert.isTrue(wrapper.childAt(1).hasClass(className)); + assert.isTrue(wrapper.childAt(0).childAt(2).hasClass(className)); }); test('updates float prop with state.labelIsFloated', () => { const wrapper = shallow( ); - assert.isTrue(wrapper.childAt(2).hasClass(className)); + assert.isTrue(wrapper.childAt(0).childAt(3).hasClass(className)); }); test('updates active prop with state.activeLineRipple', () => { const wrapper = shallow( ); - assert.isTrue(wrapper.childAt(2).hasClass(className)); + assert.isTrue(wrapper.childAt(0).childAt(3).hasClass(className)); }); test('updates notch prop with state.outlineIsNotched', () => { const wrapper = shallow(); wrapper.setState({labelWidth: 55}); - assert.equal(wrapper.childAt(2).props().notchWidth, 55); + assert.equal(wrapper.childAt(0).childAt(3).props().notchWidth, 55); +}); + +test('createFoundation instantiates a new foundation', () => { + const wrapper = shallow); + const currentFoundation = wrapper.state().foundation; + wrapper.instance().createFoundation(); + assert.notEqual(currentFoundation, wrapper.state().foundation); +}); + +test('update to state.helperTextFoundation creates a new foundation', () => { + const wrapper = shallow); + const destroy = wrapper.state().foundation!.destroy = td.func<() => {}>(); + wrapper.setState({helperTextFoundation: coerceForTesting({})}); + assert.exists(wrapper.state().foundation); + td.verify(destroy(), {times: 1}); +}); + +test('update to state.iconFoundation creates a new foundation', () => { + const wrapper = shallow); + const destroy = wrapper.state().foundation!.destroy = td.func<() => {}>(); + wrapper.setState({iconFoundation: coerceForTesting({})}); + assert.exists(wrapper.state().foundation); + td.verify(destroy(), {times: 1}); +}); + +test('leadingIcon.props.setIconFoundation() updates state.iconFoundation', () => { + const wrapper = mount} />); + const foundation = coerceForTesting({}); + wrapper.childAt(0).childAt(0).props().setIconFoundation!(foundation); + assert.equal(wrapper.state().iconFoundation, foundation); +}); + +test('leadingIcon.props.setHelperTextFoundation() updates state.helperTextFoundation', () => { + const wrapper = mount} />); + const foundation = coerceForTesting({}); + wrapper.childAt(1).props().setHelperTextFoundation!(coerceForTesting(foundation)); + assert.equal(wrapper.state().helperTextFoundation, foundation); });