Skip to content
This repository has been archived by the owner on Jan 13, 2025. It is now read-only.

Temporary drawer stops propagation of all child elements' click events. #225

Closed
Hardtack opened this issue Jan 29, 2017 · 13 comments
Closed
Assignees

Comments

@Hardtack
Copy link

Bugs

Follow the template below to ensure the quickest and most accurate response to your issue.

What MDC-Web Version are you using?

0.1.1

What browser(s) is this bug affecting?

Safari, Chrome

What OS are you using?

MacOS

What are the steps to reproduce the bug?

  1. Add temporary drawer using foundation.

  2. Add click event to child element of drawer (mdc-temporary-drawer__drawer).

  3. Child element's click event handler doesn't fire because of interaction handler added by MDCTemporaryDrawerFoundation

    this.adapter_.registerDrawerInteractionHandler('click', this.drawerClickHandler_);

What is the expected behavior?

It should fire click event of elements in drawer.

What is the actual behavior?

It doesn't. because of evt.stopPropagation();

Any other information you believe would be useful?

I'm writing react wrapper of material-components-web and I'm writing example with drawer.

Since I'm using hash-history with react-router. Page can be routed without re-rendering drawer. So we should close drawer manually when menu in drawer is clicked like this.

<Drawer>
  ...
  <Content>
    <Link to="/button" onClick={() => this.setState(drawerOpen: false)}>
      Button Examples
    </Link>
  </Content>
</Drawer>

Since evt.stopPropagation() is applied in mdc-temporary-drawer__drawer, onClick={...} will never be fired.

@traviskaufman
Copy link
Contributor

Are you sure that evt.stopPropagation is the reason why the click handler doesn't fire?

We call stopPropgatation within the bubbling phase of the event, so unless the <Link> component is a parent of the mdc-temporary-drawer__drawer element, it should activate that event handler before the propagation is stopped.

Could you link us to a codepen / jsbin / plunker with a reproduction of the issue? Feel free to use your implementation in the repro.

@Hardtack
Copy link
Author

Oh I misunderstood mechanisms of stopPropagation
I thought that stopPropagation is the reason because it works when I remove interaction handler from temporary-drawer__drawer
I will check again and give you some code that reproduce the issue

@Hardtack
Copy link
Author

Hardtack commented Jan 31, 2017

It seems that react is not working well with native events. Plz see this code
I expected that line 9, evt.stopPropagation(), doesn't affect on handleClick. But it does.

Unfortunately, By the open issue in react repository facebook/react#8693
stopPropagation() should be avoided in react for now.
But MDCTemporaryDrawerFoundation uses it and mdc was not designed only for react.
What should I do? :(

For detail, I created a gist of my usage https://gist.github.com/Hardtack/a1544e48bb77a821904da245adac5082
I'm sorry that I don't know how to setup live online code with my custom packages.

@traviskaufman traviskaufman self-assigned this Feb 2, 2017
Hardtack added a commit to react-mdc/react-material-components-web that referenced this issue Feb 4, 2017
@breakds
Copy link

breakds commented Mar 20, 2017

I am running into this problem as well. React router's Link actually directly refresh the page, which is not the desired behavior.

I use ref and addEventListener to work this around - hope this helps those who are facing the same issue.

For example, if what you want is

// Within temporary drawer
<a onClick={...} />

You can simply rewrite as

// Within temporary drawer
<a ref={(theLink) => { theLink.addEventListener("click", ....); } />

@maoziliang
Copy link

@breakds It's really existing. Because react event system is not same as the DOM. React listen on the top level of DOM tree and invoke the specified listener, which can reduce DOM event listeners. And the solution here is use ref to resolve, but don't forget to removeEventListener from the DOM element.

@breakds
Copy link

breakds commented Mar 22, 2017

@maoziliang Thanks for the note! Yeah the event should be removed with removeEventListener.

@traviskaufman
Copy link
Contributor

Closing as it looks like @breakds has a viable workaround until the issue is fixed upstream.

@flunderpero
Copy link

There is the same problem with MDCDialog. Both issues could be fixed (in the sense of "making it work with current React") quite easily. This is for MDCDialogFoundation:

componentClickHandler_(evt) {
  if (evt.target && evt.target.classList && evt.target.classList.contains("mdc-dialog__backdrop")) {
      this.cancel(true);
  }
}

handleDialogClick_(evt) {
  // Just remove the following line ...
  // evt.stopPropagation();
  const {target} = evt;
  if (this.adapter_.eventTargetHasClass(target, cssClasses.ACCEPT_BTN)) {
    this.accept(true);
  } else if (this.adapter_.eventTargetHasClass(target, cssClasses.CANCEL_BTN)) {
    this.cancel(true);
  }
}

I think the same strategy could be applied to MDCTemporaryDrawerFoundation, too.

I could set up a PR for this if needed/wanted.

@mhuebert
Copy link

mhuebert commented Apr 24, 2017

+1 for something like @flunderpero's suggestion.

Maybe I'm missing something, but I think the issue is broader than React, and could affect any application which uses event delegation. I'm not sure why MDC is stopping propagation of events that it isn't concerned with (eg. all onClick events on child nodes).

@amsheehan
Copy link
Contributor

amsheehan commented Apr 24, 2017

MDC-Dialog and MDC-Temporary-Drawer are modal components, so clicks should not be allowed to propagate down to elements in the background while they are open.

MDC isn't stopping any events on all child nodes in the case of MDC-Dialog or MDC-Temporary-Drawer. What we are doing is stopping events whose targets are the surface or backdrop of the component from propagating down to background elements. This will not have any effect on event delegation within the context of the dialog or temporary-drawer.

Please let us know if there is anything else we can clarify or help out with on our Discord server!

@mhuebert
Copy link

mhuebert commented Apr 24, 2017

What we are doing is stopping events whose targets are the surface or backdrop of the component

Correct me if I'm wrong, but the code here doesn't appear check the target of the event, so it stops propagation of clicks from all elements in the drawer, even if the intent is only to capture events on the surface or backdrop:

//https://github.com/material-components/material-components-web/blob/master/packages/mdc-drawer/slidable/foundation.js#L61
// L61
this.drawerClickHandler_ = (evt) => evt.stopPropagation();
//L91
this.adapter_.registerDrawerInteractionHandler('click', this.drawerClickHandler_);

This means that if we have delegated handling of a relevant click event to an element above the drawer, eg. document root, the application won't see these events. This component may be modal, but events generated from child elements may need to be received by top-level application listeners.

@flunderpero's approach is to verify that a click was on the appropriate target before reacting, which seems reasonable:

if (evt.target && evt.target.classList && evt.target.classList.contains("mdc-dialog__backdrop")) { ...}

* also - it looks like the Discord invite is expired?

Thanks!

@mhuebert
Copy link

mhuebert commented May 4, 2017

In #579, we can see this issue affecting another MDC component (Menus use document listeners).

I think we can fix, and it's quite simple:

  1. Remove the click handler from the drawer (no need to stopPropagation).
  2. Add a check for e.target == e.currentTarget in the "click" handler that closes the component, to ensure that the click was on the background surface and not a child element .

I have made these changes in a fork, here: master...mhuebert:patch-1

Testing locally, it seems to work as expected, and fixes #579. Here is a screen capture of behaviour with the fix:

https://www.youtube.com/watch?v=A5Ngzt7tUrQ

I can submit it as a PR if desired. I wasn't involved in the original implementation, so I'm not sure why adding a listener on the drawer with stopPropagation was considered necessary. Maybe there are other issues related to clicks that need to be considered.

@jamesmfriedman
Copy link
Contributor

Very interested in this issue, just ran into the same problem. It happens on both Persistent and Temporary drawers. I'm using React as well.

acdvorak pushed a commit that referenced this issue Jan 18, 2019
## The devDependency [@google-cloud/datastore](https://github.com/googleapis/nodejs-datastore) was updated from `2.0.0` to `3.0.1`.
This version is **not covered** by your **current version range**.

If you don’t accept this pull request, your project will work just like it did before. However, you might be missing out on a bunch of new features, fixes and/or performance improvements from the dependency update.

---

<details>
<summary>Release Notes for v3.0.1</summary>

<p>01-15-2019 13:20 PST</p>
<h3>Bug fixes</h3>
<ul>
<li>fix: ship the build directory (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/300" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/300/hovercard">#300</a>)</li>
</ul>
<h3>Internal / Testing Changes</h3>
<ul>
<li>build: check broken links in generated docs (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/292" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/292/hovercard">#292</a>)</li>
</ul>
</details>

<details>
<summary>Commits</summary>
<p>The new version differs by 3 commits.</p>
<ul>
<li><a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/commit/401b2e1c03c1cb1340d1c7249a1f435dc17d74cb"><code>401b2e1</code></a> <code>Release v3.0.1 (#301)</code></li>
<li><a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/commit/177b11b3819b98debcf157b040d282c2b9b8d9ca"><code>177b11b</code></a> <code>fix: ship the build directory (#300)</code></li>
<li><a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/commit/70ea500726d7a48a768433703c94e9fbb7c53f9d"><code>70ea500</code></a> <code>build: check broken links in generated docs (#292)</code></li>
</ul>
<p>See the <a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/compare/f839e581b0396b830cc3bae31d107f57414394d4...401b2e1c03c1cb1340d1c7249a1f435dc17d74cb">full diff</a></p>
</details>

---

<details>
<summary>Release Notes for v3.0.0</summary>

<p>01-14-2019 20:31 PST</p>
<p><strong>This release has breaking changes!</strong> The import style of this library has changed to be consistent with <a href="https://hacks.mozilla.org/2018/03/es-modules-a-cartoon-deep-dive/" rel="nofollow">es modules</a>.</p>
<h4>Old busted code</h4>
<div class="highlight highlight-source-js"><pre><span class="pl-k">const</span> <span class="pl-c1">Datastore</span> <span class="pl-k">=</span> <span class="pl-c1">require</span>(<span class="pl-s"><span class="pl-pds">'</span>@google-cloud/datastore<span class="pl-pds">'</span></span>)();
<span class="pl-c"><span class="pl-c">//</span> or...</span>
<span class="pl-k">const</span> <span class="pl-c1">Datastore</span> <span class="pl-k">=</span> <span class="pl-c1">require</span>(<span class="pl-s"><span class="pl-pds">'</span>@google-cloud/datastore<span class="pl-pds">'</span></span>);
<span class="pl-k">const</span> <span class="pl-c1">ds</span> <span class="pl-k">=</span> <span class="pl-k">new</span> <span class="pl-en">Datastore</span>();</pre></div>
<h4>New hot code</h4>
<div class="highlight highlight-source-js"><pre><span class="pl-k">const</span> {<span class="pl-c1">Datastore</span>} <span class="pl-k">=</span> <span class="pl-c1">require</span>(<span class="pl-s"><span class="pl-pds">'</span>@google-cloud/datastore<span class="pl-pds">'</span></span>);
<span class="pl-k">const</span> <span class="pl-c1">ds</span> <span class="pl-k">=</span> <span class="pl-k">new</span> <span class="pl-en">Datastore</span>();</pre></div>
<p>Please take care to update your imports accordingly!</p>
<h3>Dependencies</h3>
<ul>
<li>fix(deps): update dependency google-gax to ^0.23.0 (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/296" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/296/hovercard">#296</a>)</li>
<li>fix(deps): update dependency google-gax to ^0.22.0 (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/248" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/248/hovercard">#248</a>)</li>
<li>fix(deps): update dependency concat-stream to v2 (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/290" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/290/hovercard">#290</a>)</li>
<li>refactor: remove async module usage (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/272" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/272/hovercard">#272</a>)</li>
<li>fix(deps): update dependency through2 to v3 (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/237" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/237/hovercard">#237</a>)</li>
<li>chore: remove unused dependencies (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/226" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/226/hovercard">#226</a>)</li>
<li>fix(deps): update dependency google-proto-files to ^0.17.0 (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/210" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/210/hovercard">#210</a>)</li>
</ul>
<h3>Documentation</h3>
<ul>
<li>fix(docs): fix namespace causing 404s (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/294" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/294/hovercard">#294</a>)</li>
<li>fix(docs): remove unused long running operations types</li>
<li>docs: Update doc comment showing structure of entity (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/276" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/276/hovercard">#276</a>)</li>
<li>docs: update readme badges (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/269" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/269/hovercard">#269</a>)</li>
<li>refactor(samples): Samples to use async/await</li>
<li>docs: update auto-generated jsdoc comments (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/245" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/245/hovercard">#245</a>)</li>
</ul>
<h3>Internal / Testing Changes</h3>
<ul>
<li>refactor: sprinkle some types about (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/291" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/291/hovercard">#291</a>)</li>
<li>chore(deps): update dependency @types/sinon to v7.0.2 (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/289" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/289/hovercard">#289</a>)</li>
<li>chore(deps): update dependency @types/sinon to v7 (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/286" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/286/hovercard">#286</a>)</li>
<li>refactor(ts): enable lint and fix (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/287" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/287/hovercard">#287</a>)</li>
<li>chore(build): inject yoshi automation key (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/285" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/285/hovercard">#285</a>)</li>
<li>chore: update nyc and eslint configs (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/284" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/284/hovercard">#284</a>)</li>
<li>chore: fix publish.sh permission +x (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/282" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/282/hovercard">#282</a>)</li>
<li>fix(build): fix Kokoro release script (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/281" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/281/hovercard">#281</a>)</li>
<li>build: add Kokoro configs for autorelease (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/280" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/280/hovercard">#280</a>)</li>
<li>chore: always nyc report before calling codecov (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/275" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/275/hovercard">#275</a>)</li>
<li>chore: nyc ignore build/test by default (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/274" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/274/hovercard">#274</a>)</li>
<li>chore: update license file (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/271" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/271/hovercard">#271</a>)</li>
<li>refactor: run gts fix (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/265" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/265/hovercard">#265</a>)</li>
<li>chore(deps): update dependency typescript to ~3.2.0 (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/264" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/264/hovercard">#264</a>)</li>
<li>fix(build): fix system key decryption (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/266" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/266/hovercard">#266</a>)</li>
<li>refactor(samples): convert sample tests from ava to mocha (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/259" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/259/hovercard">#259</a>)</li>
<li>fix: Pin @types/sinon to last compatible version (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/256" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/256/hovercard">#256</a>)</li>
<li>chore: add synth.metadata (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/254" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/254/hovercard">#254</a>)</li>
<li>refactor(ts): enable noImplicitThis (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/250" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/250/hovercard">#250</a>)</li>
<li>chore(deps): update dependency gts to ^0.9.0 (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/247" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/247/hovercard">#247</a>)</li>
<li>chore: update eslintignore config (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/246" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/246/hovercard">#246</a>)</li>
<li>refactor(ts): use es module imports (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/244" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/244/hovercard">#244</a>)</li>
<li>chore(deps): update dependency @google-cloud/nodejs-repo-tools to v3 (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/243" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/243/hovercard">#243</a>)</li>
<li>chore: drop contributors from multiple places (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/241" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/241/hovercard">#241</a>)</li>
<li>chore(deps): update dependency @types/is to v0.0.21 (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/240" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/240/hovercard">#240</a>)</li>
<li>chore: use latest npm on Windows (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/239" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/239/hovercard">#239</a>)</li>
<li>refactor(ts): convert to typescript (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/236" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/236/hovercard">#236</a>)</li>
<li>chore: update CircleCI config (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/235" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/235/hovercard">#235</a>)</li>
<li>chore: include build in eslintignore (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/232" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/232/hovercard">#232</a>)</li>
<li>chore(deps): update dependency eslint-plugin-node to v8 (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/227" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/227/hovercard">#227</a>)</li>
<li>chore: update issue templates (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/225" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/225/hovercard">#225</a>)</li>
<li>chore: remove old issue template (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/223" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/223/hovercard">#223</a>)</li>
<li>build: run tests on node11 (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/222" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/222/hovercard">#222</a>)</li>
<li>chores(build): do not collect sponge.xml from windows builds (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/221" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/221/hovercard">#221</a>)</li>
<li>chores(build): run codecov on continuous builds (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/220" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/220/hovercard">#220</a>)</li>
<li>chore: update new issue template (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/219" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/219/hovercard">#219</a>)</li>
<li>build: fix codecov uploading on Kokoro (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/213" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/213/hovercard">#213</a>)</li>
<li>fix(deps): update dependency sinon to v7 (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/212" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/212/hovercard">#212</a>)</li>
<li>Update kokoro config (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/207" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/207/hovercard">#207</a>)</li>
<li>chore(deps): update dependency eslint-plugin-prettier to v3 (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/206" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/206/hovercard">#206</a>)</li>
</ul>
</details>

<details>
<summary>Commits</summary>
<p>The new version differs by 54 commits.</p>
<ul>
<li><a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/commit/f839e581b0396b830cc3bae31d107f57414394d4"><code>f839e58</code></a> <code>Release v3.0.0 (#298)</code></li>
<li><a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/commit/f0b665c0c2c8c2241af2c321212574fb78d63f4a"><code>f0b665c</code></a> <code>fix(deps): update dependency google-gax to ^0.23.0 (#296)</code></li>
<li><a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/commit/f4e4410fa1f930ce196ee809d150c07c1e86875d"><code>f4e4410</code></a> <code>fix(docs): fix namespace causing 404s (#294)</code></li>
<li><a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/commit/8608c7ee73b80a6e55f05cb3d687a9b32b1b2bd9"><code>8608c7e</code></a> <code>fix(docs): remove unused long running operations types</code></li>
<li><a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/commit/4bbe64ff09e28ffac063714def174860388f136c"><code>4bbe64f</code></a> <code>refactor: sprinkle some types about (#291)</code></li>
<li><a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/commit/78d776f68cef67471a318a37dba08e6ad2e535a7"><code>78d776f</code></a> <code>fix(deps): update dependency concat-stream to v2 (#290)</code></li>
<li><a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/commit/b3db31e4ca17684012efe47e0745d6927a587d5e"><code>b3db31e</code></a> <code>chore(deps): update dependency @types/sinon to v7.0.2 (#289)</code></li>
<li><a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/commit/42d6f705b3ed39d25574c820dc92efc935fd92b1"><code>42d6f70</code></a> <code>refactor: remove async module usage (#272)</code></li>
<li><a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/commit/97d847df17ff45947e495bc5e54f466106003186"><code>97d847d</code></a> <code>chore(deps): update dependency @types/sinon to v7 (#286)</code></li>
<li><a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/commit/717b818e25f1b7bb014b614d0be234102804ed37"><code>717b818</code></a> <code>refactor(ts): enable lint and fix (#287)</code></li>
<li><a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/commit/dcb7f651a4d9d3298f44eeb45f735b1713c073ff"><code>dcb7f65</code></a> <code>chore(build): inject yoshi automation key (#285)</code></li>
<li><a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/commit/35a081d6e8bd146d05d04a1ea47ca7fd2dfc1c4b"><code>35a081d</code></a> <code>chore: update nyc and eslint configs (#284)</code></li>
<li><a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/commit/4f91d8f7c91cc1d0360c84a5d4d7a0ede978addb"><code>4f91d8f</code></a> <code>chore: fix publish.sh permission +x (#282)</code></li>
<li><a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/commit/1072247740128ae04380d2ca3cc57895a52e5208"><code>1072247</code></a> <code>fix(build): fix Kokoro release script (#281)</code></li>
<li><a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/commit/b5579c28ab0c938f65e61be667ea65a8cacf4cf2"><code>b5579c2</code></a> <code>build: add Kokoro configs for autorelease (#280)</code></li>
</ul>
<p>There are 54 commits in total.</p>
<p>See the <a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/compare/a0406f2e897e59944d9f82d9997955aa32f7df13...f839e581b0396b830cc3bae31d107f57414394d4">full diff</a></p>
</details>

<details>
  <summary>FAQ and help</summary>

  There is a collection of [frequently asked questions](https://greenkeeper.io/faq.html). If those don’t help, you can always [ask the humans behind Greenkeeper](https://github.com/greenkeeperio/greenkeeper/issues/new).
</details>

---


Your [Greenkeeper](https://greenkeeper.io) bot 🌴
adrianschmidt pushed a commit to Lundalogik/material-components-web that referenced this issue Jan 23, 2019
…onents#4251)

## The devDependency [@google-cloud/datastore](https://github.com/googleapis/nodejs-datastore) was updated from `2.0.0` to `3.0.1`.
This version is **not covered** by your **current version range**.

If you don’t accept this pull request, your project will work just like it did before. However, you might be missing out on a bunch of new features, fixes and/or performance improvements from the dependency update.

---

<details>
<summary>Release Notes for v3.0.1</summary>

<p>01-15-2019 13:20 PST</p>
<h3>Bug fixes</h3>
<ul>
<li>fix: ship the build directory (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/300" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/300/hovercard">material-components#300</a>)</li>
</ul>
<h3>Internal / Testing Changes</h3>
<ul>
<li>build: check broken links in generated docs (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/292" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/292/hovercard">material-components#292</a>)</li>
</ul>
</details>

<details>
<summary>Commits</summary>
<p>The new version differs by 3 commits.</p>
<ul>
<li><a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/commit/401b2e1c03c1cb1340d1c7249a1f435dc17d74cb"><code>401b2e1</code></a> <code>Release v3.0.1 (material-components#301)</code></li>
<li><a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/commit/177b11b3819b98debcf157b040d282c2b9b8d9ca"><code>177b11b</code></a> <code>fix: ship the build directory (material-components#300)</code></li>
<li><a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/commit/70ea500726d7a48a768433703c94e9fbb7c53f9d"><code>70ea500</code></a> <code>build: check broken links in generated docs (material-components#292)</code></li>
</ul>
<p>See the <a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/compare/f839e581b0396b830cc3bae31d107f57414394d4...401b2e1c03c1cb1340d1c7249a1f435dc17d74cb">full diff</a></p>
</details>

---

<details>
<summary>Release Notes for v3.0.0</summary>

<p>01-14-2019 20:31 PST</p>
<p><strong>This release has breaking changes!</strong> The import style of this library has changed to be consistent with <a href="https://hacks.mozilla.org/2018/03/es-modules-a-cartoon-deep-dive/" rel="nofollow">es modules</a>.</p>
<h4>Old busted code</h4>
<div class="highlight highlight-source-js"><pre><span class="pl-k">const</span> <span class="pl-c1">Datastore</span> <span class="pl-k">=</span> <span class="pl-c1">require</span>(<span class="pl-s"><span class="pl-pds">'</span>@google-cloud/datastore<span class="pl-pds">'</span></span>)();
<span class="pl-c"><span class="pl-c">//</span> or...</span>
<span class="pl-k">const</span> <span class="pl-c1">Datastore</span> <span class="pl-k">=</span> <span class="pl-c1">require</span>(<span class="pl-s"><span class="pl-pds">'</span>@google-cloud/datastore<span class="pl-pds">'</span></span>);
<span class="pl-k">const</span> <span class="pl-c1">ds</span> <span class="pl-k">=</span> <span class="pl-k">new</span> <span class="pl-en">Datastore</span>();</pre></div>
<h4>New hot code</h4>
<div class="highlight highlight-source-js"><pre><span class="pl-k">const</span> {<span class="pl-c1">Datastore</span>} <span class="pl-k">=</span> <span class="pl-c1">require</span>(<span class="pl-s"><span class="pl-pds">'</span>@google-cloud/datastore<span class="pl-pds">'</span></span>);
<span class="pl-k">const</span> <span class="pl-c1">ds</span> <span class="pl-k">=</span> <span class="pl-k">new</span> <span class="pl-en">Datastore</span>();</pre></div>
<p>Please take care to update your imports accordingly!</p>
<h3>Dependencies</h3>
<ul>
<li>fix(deps): update dependency google-gax to ^0.23.0 (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/296" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/296/hovercard">material-components#296</a>)</li>
<li>fix(deps): update dependency google-gax to ^0.22.0 (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/248" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/248/hovercard">material-components#248</a>)</li>
<li>fix(deps): update dependency concat-stream to v2 (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/290" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/290/hovercard">material-components#290</a>)</li>
<li>refactor: remove async module usage (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/272" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/272/hovercard">material-components#272</a>)</li>
<li>fix(deps): update dependency through2 to v3 (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/237" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/237/hovercard">material-components#237</a>)</li>
<li>chore: remove unused dependencies (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/226" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/226/hovercard">material-components#226</a>)</li>
<li>fix(deps): update dependency google-proto-files to ^0.17.0 (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/210" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/210/hovercard">material-components#210</a>)</li>
</ul>
<h3>Documentation</h3>
<ul>
<li>fix(docs): fix namespace causing 404s (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/294" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/294/hovercard">material-components#294</a>)</li>
<li>fix(docs): remove unused long running operations types</li>
<li>docs: Update doc comment showing structure of entity (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/276" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/276/hovercard">material-components#276</a>)</li>
<li>docs: update readme badges (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/269" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/269/hovercard">material-components#269</a>)</li>
<li>refactor(samples): Samples to use async/await</li>
<li>docs: update auto-generated jsdoc comments (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/245" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/245/hovercard">material-components#245</a>)</li>
</ul>
<h3>Internal / Testing Changes</h3>
<ul>
<li>refactor: sprinkle some types about (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/291" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/291/hovercard">material-components#291</a>)</li>
<li>chore(deps): update dependency @types/sinon to v7.0.2 (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/289" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/289/hovercard">material-components#289</a>)</li>
<li>chore(deps): update dependency @types/sinon to v7 (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/286" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/286/hovercard">material-components#286</a>)</li>
<li>refactor(ts): enable lint and fix (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/287" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/287/hovercard">material-components#287</a>)</li>
<li>chore(build): inject yoshi automation key (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/285" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/285/hovercard">material-components#285</a>)</li>
<li>chore: update nyc and eslint configs (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/284" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/284/hovercard">material-components#284</a>)</li>
<li>chore: fix publish.sh permission +x (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/282" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/282/hovercard">material-components#282</a>)</li>
<li>fix(build): fix Kokoro release script (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/281" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/281/hovercard">material-components#281</a>)</li>
<li>build: add Kokoro configs for autorelease (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/280" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/280/hovercard">material-components#280</a>)</li>
<li>chore: always nyc report before calling codecov (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/275" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/275/hovercard">material-components#275</a>)</li>
<li>chore: nyc ignore build/test by default (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/274" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/274/hovercard">material-components#274</a>)</li>
<li>chore: update license file (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/271" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/271/hovercard">material-components#271</a>)</li>
<li>refactor: run gts fix (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/265" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/265/hovercard">material-components#265</a>)</li>
<li>chore(deps): update dependency typescript to ~3.2.0 (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/264" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/264/hovercard">material-components#264</a>)</li>
<li>fix(build): fix system key decryption (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/266" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/266/hovercard">material-components#266</a>)</li>
<li>refactor(samples): convert sample tests from ava to mocha (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/259" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/259/hovercard">material-components#259</a>)</li>
<li>fix: Pin @types/sinon to last compatible version (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/256" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/256/hovercard">material-components#256</a>)</li>
<li>chore: add synth.metadata (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/254" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/254/hovercard">material-components#254</a>)</li>
<li>refactor(ts): enable noImplicitThis (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/250" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/250/hovercard">material-components#250</a>)</li>
<li>chore(deps): update dependency gts to ^0.9.0 (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/247" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/247/hovercard">material-components#247</a>)</li>
<li>chore: update eslintignore config (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/246" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/246/hovercard">material-components#246</a>)</li>
<li>refactor(ts): use es module imports (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/244" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/244/hovercard">material-components#244</a>)</li>
<li>chore(deps): update dependency @google-cloud/nodejs-repo-tools to v3 (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/243" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/243/hovercard">material-components#243</a>)</li>
<li>chore: drop contributors from multiple places (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/241" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/241/hovercard">material-components#241</a>)</li>
<li>chore(deps): update dependency @types/is to v0.0.21 (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/240" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/240/hovercard">material-components#240</a>)</li>
<li>chore: use latest npm on Windows (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/239" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/239/hovercard">material-components#239</a>)</li>
<li>refactor(ts): convert to typescript (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/236" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/236/hovercard">material-components#236</a>)</li>
<li>chore: update CircleCI config (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/235" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/235/hovercard">material-components#235</a>)</li>
<li>chore: include build in eslintignore (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/232" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/232/hovercard">material-components#232</a>)</li>
<li>chore(deps): update dependency eslint-plugin-node to v8 (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/227" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/227/hovercard">material-components#227</a>)</li>
<li>chore: update issue templates (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/225" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/225/hovercard">material-components#225</a>)</li>
<li>chore: remove old issue template (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/223" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/223/hovercard">material-components#223</a>)</li>
<li>build: run tests on node11 (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/222" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/222/hovercard">material-components#222</a>)</li>
<li>chores(build): do not collect sponge.xml from windows builds (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/221" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/221/hovercard">material-components#221</a>)</li>
<li>chores(build): run codecov on continuous builds (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/220" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/220/hovercard">material-components#220</a>)</li>
<li>chore: update new issue template (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/219" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/219/hovercard">material-components#219</a>)</li>
<li>build: fix codecov uploading on Kokoro (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/213" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/213/hovercard">material-components#213</a>)</li>
<li>fix(deps): update dependency sinon to v7 (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/212" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/212/hovercard">material-components#212</a>)</li>
<li>Update kokoro config (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/207" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/207/hovercard">material-components#207</a>)</li>
<li>chore(deps): update dependency eslint-plugin-prettier to v3 (<a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/pull/206" data-hovercard-type="pull_request" data-hovercard-url="/googleapis/nodejs-datastore/pull/206/hovercard">material-components#206</a>)</li>
</ul>
</details>

<details>
<summary>Commits</summary>
<p>The new version differs by 54 commits.</p>
<ul>
<li><a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/commit/f839e581b0396b830cc3bae31d107f57414394d4"><code>f839e58</code></a> <code>Release v3.0.0 (material-components#298)</code></li>
<li><a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/commit/f0b665c0c2c8c2241af2c321212574fb78d63f4a"><code>f0b665c</code></a> <code>fix(deps): update dependency google-gax to ^0.23.0 (material-components#296)</code></li>
<li><a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/commit/f4e4410fa1f930ce196ee809d150c07c1e86875d"><code>f4e4410</code></a> <code>fix(docs): fix namespace causing 404s (material-components#294)</code></li>
<li><a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/commit/8608c7ee73b80a6e55f05cb3d687a9b32b1b2bd9"><code>8608c7e</code></a> <code>fix(docs): remove unused long running operations types</code></li>
<li><a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/commit/4bbe64ff09e28ffac063714def174860388f136c"><code>4bbe64f</code></a> <code>refactor: sprinkle some types about (material-components#291)</code></li>
<li><a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/commit/78d776f68cef67471a318a37dba08e6ad2e535a7"><code>78d776f</code></a> <code>fix(deps): update dependency concat-stream to v2 (material-components#290)</code></li>
<li><a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/commit/b3db31e4ca17684012efe47e0745d6927a587d5e"><code>b3db31e</code></a> <code>chore(deps): update dependency @types/sinon to v7.0.2 (material-components#289)</code></li>
<li><a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/commit/42d6f705b3ed39d25574c820dc92efc935fd92b1"><code>42d6f70</code></a> <code>refactor: remove async module usage (material-components#272)</code></li>
<li><a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/commit/97d847df17ff45947e495bc5e54f466106003186"><code>97d847d</code></a> <code>chore(deps): update dependency @types/sinon to v7 (material-components#286)</code></li>
<li><a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/commit/717b818e25f1b7bb014b614d0be234102804ed37"><code>717b818</code></a> <code>refactor(ts): enable lint and fix (material-components#287)</code></li>
<li><a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/commit/dcb7f651a4d9d3298f44eeb45f735b1713c073ff"><code>dcb7f65</code></a> <code>chore(build): inject yoshi automation key (material-components#285)</code></li>
<li><a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/commit/35a081d6e8bd146d05d04a1ea47ca7fd2dfc1c4b"><code>35a081d</code></a> <code>chore: update nyc and eslint configs (material-components#284)</code></li>
<li><a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/commit/4f91d8f7c91cc1d0360c84a5d4d7a0ede978addb"><code>4f91d8f</code></a> <code>chore: fix publish.sh permission +x (material-components#282)</code></li>
<li><a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/commit/1072247740128ae04380d2ca3cc57895a52e5208"><code>1072247</code></a> <code>fix(build): fix Kokoro release script (material-components#281)</code></li>
<li><a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/commit/b5579c28ab0c938f65e61be667ea65a8cacf4cf2"><code>b5579c2</code></a> <code>build: add Kokoro configs for autorelease (material-components#280)</code></li>
</ul>
<p>There are 54 commits in total.</p>
<p>See the <a href="https://urls.greenkeeper.io/googleapis/nodejs-datastore/compare/a0406f2e897e59944d9f82d9997955aa32f7df13...f839e581b0396b830cc3bae31d107f57414394d4">full diff</a></p>
</details>

<details>
  <summary>FAQ and help</summary>

  There is a collection of [frequently asked questions](https://greenkeeper.io/faq.html). If those don’t help, you can always [ask the humans behind Greenkeeper](https://github.com/greenkeeperio/greenkeeper/issues/new).
</details>

---


Your [Greenkeeper](https://greenkeeper.io) bot 🌴


(cherry picked from commit 9d46c20)
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

8 participants