polaris_view_components 3.1.0 → 3.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ca5d44863ed4e92c96355b43938b83e3d6c35faf836f21ec8d30cfbe4bf955a3
4
- data.tar.gz: 569be82094984c0afb8ebaa30950aef78f11e5365ebcdebeb3d1bde5da03311e
3
+ metadata.gz: 1d930e9979e26f2a16e58a86aaf5477360eb518602900671407fbad50476058a
4
+ data.tar.gz: c65e3755b6d86787d6a6582c646ed8e81c17fbb33e6ba95fb6e975f240411840
5
5
  SHA512:
6
- metadata.gz: f9cac7d32e9bce452bdd695c371fe9a91cd6ce79be8579abdf01b6d73deecda3f347370931343ee932c79e7ab093eb5989006c6e02014f80a9e35b403d66a605
7
- data.tar.gz: 4350c590a31131ec013cfe3982c397005d05e52bee58b996bb6cfa48553605765bcbd97dcd183c9b6dea8475f2bc6a8f49eee95d86053ee9e1717caf31875d4c
6
+ metadata.gz: 4b74b88c543352ce30e6db7b6478b61aeba71a7688f578335bab15464aa041e1f806f0200fadbfc8015586c18b99f543d1a8633d250e46eed03f984b3543889e
7
+ data.tar.gz: 04f4ad64a553706075a8fe6a7632707e4334f3a805f717f8dfb40c1e4b47c6db314a05b9684cc923f4dfd2359aafd10b61c53ec0bc47a11b1ee683a6fc54ae24
@@ -1,33 +1,44 @@
1
1
  import { Controller } from "@hotwired/stimulus"
2
+ import { debounce } from "./utils"
2
3
 
3
4
  export default class extends Controller {
4
- static targets = ["row"]
5
-
6
5
  connect() {
7
- this.rowTargets.forEach(row => {
8
- row.addEventListener("mouseover", () => this.handleHover(row))
9
- row.addEventListener("mouseout", () => this.handleLeave(row))
10
- })
6
+ this.handleMouseOver = debounce(this.handleMouseOver.bind(this), 50)
7
+ this.handleMouseOut = debounce(this.handleMouseOut.bind(this), 50)
8
+
9
+ this.element.addEventListener("mouseover", this.handleMouseOver)
10
+ this.element.addEventListener("mouseout", this.handleMouseOut)
11
11
  }
12
12
 
13
13
  disconnect() {
14
- this.rowTargets.forEach(row => {
15
- row.removeEventListener("mouseover", () => this.handleHover(row))
16
- row.removeEventListener("mouseout", () => this.handleLeave(row))
17
- })
14
+ this.element.removeEventListener("mouseover", this.handleMouseOver)
15
+ this.element.removeEventListener("mouseout", this.handleMouseOut)
16
+ }
17
+
18
+ handleMouseOver(event) {
19
+ const row = event.target.closest(".Polaris-DataTable--hoverable")
20
+ if (row && row !== this.hoveredRow) {
21
+ this.clearHoveredRow()
22
+ this.hoveredRow = row
23
+ row.querySelectorAll(".Polaris-DataTable__Cell").forEach(cell => {
24
+ cell.classList.add("Polaris-DataTable__Cell--hovered")
25
+ })
26
+ }
18
27
  }
19
28
 
20
- handleHover(row) {
21
- const cells = row.querySelectorAll(".Polaris-DataTable__Cell")
22
- cells.forEach(cell => {
23
- cell.classList.add("Polaris-DataTable__Cell--hovered")
24
- })
29
+ handleMouseOut(event) {
30
+ const row = event.target.closest(".Polaris-DataTable--hoverable")
31
+ if (row && !row.contains(event.relatedTarget)) {
32
+ this.clearHoveredRow()
33
+ }
25
34
  }
26
35
 
27
- handleLeave(row) {
28
- const cells = row.querySelectorAll(".Polaris-DataTable__Cell")
29
- cells.forEach(cell => {
30
- cell.classList.remove("Polaris-DataTable__Cell--hovered")
31
- })
36
+ clearHoveredRow() {
37
+ if (this.hoveredRow) {
38
+ this.hoveredRow.querySelectorAll(".Polaris-DataTable__Cell").forEach(cell => {
39
+ cell.classList.remove("Polaris-DataTable__Cell--hovered")
40
+ })
41
+ this.hoveredRow = null
42
+ }
32
43
  }
33
44
  }
@@ -357,30 +357,39 @@ class Collapsible extends Controller {
357
357
  }
358
358
 
359
359
  class DataTable extends Controller {
360
- static targets=[ "row" ];
361
360
  connect() {
362
- this.rowTargets.forEach((row => {
363
- row.addEventListener("mouseover", (() => this.handleHover(row)));
364
- row.addEventListener("mouseout", (() => this.handleLeave(row)));
365
- }));
361
+ this.handleMouseOver = debounce(this.handleMouseOver.bind(this), 50);
362
+ this.handleMouseOut = debounce(this.handleMouseOut.bind(this), 50);
363
+ this.element.addEventListener("mouseover", this.handleMouseOver);
364
+ this.element.addEventListener("mouseout", this.handleMouseOut);
366
365
  }
367
366
  disconnect() {
368
- this.rowTargets.forEach((row => {
369
- row.removeEventListener("mouseover", (() => this.handleHover(row)));
370
- row.removeEventListener("mouseout", (() => this.handleLeave(row)));
371
- }));
367
+ this.element.removeEventListener("mouseover", this.handleMouseOver);
368
+ this.element.removeEventListener("mouseout", this.handleMouseOut);
369
+ }
370
+ handleMouseOver(event) {
371
+ const row = event.target.closest(".Polaris-DataTable--hoverable");
372
+ if (row && row !== this.hoveredRow) {
373
+ this.clearHoveredRow();
374
+ this.hoveredRow = row;
375
+ row.querySelectorAll(".Polaris-DataTable__Cell").forEach((cell => {
376
+ cell.classList.add("Polaris-DataTable__Cell--hovered");
377
+ }));
378
+ }
372
379
  }
373
- handleHover(row) {
374
- const cells = row.querySelectorAll(".Polaris-DataTable__Cell");
375
- cells.forEach((cell => {
376
- cell.classList.add("Polaris-DataTable__Cell--hovered");
377
- }));
380
+ handleMouseOut(event) {
381
+ const row = event.target.closest(".Polaris-DataTable--hoverable");
382
+ if (row && !row.contains(event.relatedTarget)) {
383
+ this.clearHoveredRow();
384
+ }
378
385
  }
379
- handleLeave(row) {
380
- const cells = row.querySelectorAll(".Polaris-DataTable__Cell");
381
- cells.forEach((cell => {
382
- cell.classList.remove("Polaris-DataTable__Cell--hovered");
383
- }));
386
+ clearHoveredRow() {
387
+ if (this.hoveredRow) {
388
+ this.hoveredRow.querySelectorAll(".Polaris-DataTable__Cell").forEach((cell => {
389
+ cell.classList.remove("Polaris-DataTable__Cell--hovered");
390
+ }));
391
+ this.hoveredRow = null;
392
+ }
384
393
  }
385
394
  }
386
395
 
@@ -1,12 +1,19 @@
1
1
  html[class~="Polaris-Summer-Editions-2023"] .Polaris-DataTable {
2
-
2
+ .Polaris-DataTable__TableRow {
3
+ content-visibility: auto;
4
+ contain-intrinsic-size: auto 250px;
5
+ }
3
6
  .Polaris-DataTable__Cell:not(.Polaris-DataTable__Cell--flush):first-child,
4
- .Polaris-DataTable__Heading:not(.Polaris-DataTable__Heading--flush):first-child {
7
+ .Polaris-DataTable__Heading:not(
8
+ .Polaris-DataTable__Heading--flush
9
+ ):first-child {
5
10
  padding-left: var(--p-space-400);
6
11
  }
7
12
 
8
13
  .Polaris-DataTable__Cell:not(.Polaris-DataTable__Cell--flush):last-child,
9
- .Polaris-DataTable__Heading:not(.Polaris-DataTable__Heading--flush):last-child {
14
+ .Polaris-DataTable__Heading:not(
15
+ .Polaris-DataTable__Heading--flush
16
+ ):last-child {
10
17
  padding-right: var(--p-space-400);
11
18
  }
12
19
  }
@@ -537,11 +537,18 @@
537
537
  width: 100%;
538
538
  }/* Select *//* Fix for Safari bug: https://github.com/baoagency/polaris_view_components/issues/454 */select.Polaris-Select__Input {
539
539
  font-weight: 400;
540
- }html[class~="Polaris-Summer-Editions-2023"] .Polaris-DataTable .Polaris-DataTable__Cell:not(.Polaris-DataTable__Cell--flush):first-child,
541
- html[class~="Polaris-Summer-Editions-2023"] .Polaris-DataTable .Polaris-DataTable__Heading:not(.Polaris-DataTable__Heading--flush):first-child {
540
+ }html[class~="Polaris-Summer-Editions-2023"] .Polaris-DataTable .Polaris-DataTable__TableRow {
541
+ content-visibility: auto;
542
+ contain-intrinsic-size: auto 250px;
543
+ }html[class~="Polaris-Summer-Editions-2023"] .Polaris-DataTable .Polaris-DataTable__Cell:not(.Polaris-DataTable__Cell--flush):first-child,
544
+ html[class~="Polaris-Summer-Editions-2023"] .Polaris-DataTable .Polaris-DataTable__Heading:not(
545
+ .Polaris-DataTable__Heading--flush
546
+ ):first-child {
542
547
  padding-left: var(--p-space-400);
543
548
  }html[class~="Polaris-Summer-Editions-2023"] .Polaris-DataTable .Polaris-DataTable__Cell:not(.Polaris-DataTable__Cell--flush):last-child,
544
- html[class~="Polaris-Summer-Editions-2023"] .Polaris-DataTable .Polaris-DataTable__Heading:not(.Polaris-DataTable__Heading--flush):last-child {
549
+ html[class~="Polaris-Summer-Editions-2023"] .Polaris-DataTable .Polaris-DataTable__Heading:not(
550
+ .Polaris-DataTable__Heading--flush
551
+ ):last-child {
545
552
  padding-right: var(--p-space-400);
546
553
  }html[class~="Polaris-Summer-Editions-2023"] .Polaris-FooterHelp .Polaris-FooterHelp__Text {
547
554
  font-size: var(--p-font-size-325);
@@ -56,7 +56,6 @@ module Polaris
56
56
  )
57
57
  args[:id] = dom_id(row) if row.respond_to?(:to_key)
58
58
  args[:data] ||= {}
59
- args[:data][:polaris_data_table_target] = "row"
60
59
  end
61
60
  end
62
61
 
@@ -1,5 +1,5 @@
1
1
  module Polaris
2
2
  module ViewComponents
3
- VERSION = "3.1.0"
3
+ VERSION = "3.1.1"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: polaris_view_components
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.1.0
4
+ version: 3.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dan Gamble