Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(panel, flow-item): add beforeClose property #9770

Merged
merged 2 commits into from
Jul 15, 2024

Conversation

driskull
Copy link
Member

Related Issue: #9769

Summary

  • adds beforeClose property to panel and flow-item
  • allows close to be prevented via a function returning a promise that could be rejected
  • adds tests

@github-actions github-actions bot added the enhancement Issues tied to a new feature or request. label Jul 12, 2024
@driskull driskull added the skip visual snapshots Pull requests that do not need visual regression testing. label Jul 12, 2024
@driskull driskull marked this pull request as ready for review July 12, 2024 23:57
@driskull driskull requested a review from a team as a code owner July 12, 2024 23:57
Copy link
Member

@benelan benelan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

@driskull driskull merged commit fe32441 into dev Jul 15, 2024
11 checks passed
@driskull driskull deleted the dris0000/panel-flow-item-beforeClose branch July 15, 2024 18:54
@github-actions github-actions bot added this to the 2024-07-30 - Jul Release milestone Jul 15, 2024
await page.$eval(
"calcite-panel",
(el: HTMLCalcitePanelElement) =>
(el.beforeClose = (window as typeof window & Pick<typeof el, "beforeClose">).beforeClose),
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For consistency, could you use our custom utility type to define custom props on window (example)?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added as part of #9778

calcite-admin pushed a commit that referenced this pull request Jul 30, 2024
**Related Issue:** #9769

## Summary

- adds `beforeClose` property to `panel` and `flow-item`
- allows close to be prevented via a function returning a promise that
could be rejected
- adds tests
benelan pushed a commit that referenced this pull request Jul 31, 2024
🤖 I have created a release *beep* *boop*
---


<details><summary>@esri/calcite-ui-icons: 3.30.0</summary>

##
[3.30.0](https://github.com/Esri/calcite-design-system/compare/@esri/calcite-ui-icons-v3.29.0...@esri/calcite-ui-icons@3.30.0)
(2024-07-31)


### Miscellaneous Chores

* Add calcite-ui-icons to monorepo
([#9835](#9835))
([05264ea](05264ea))
</details>

<details><summary>@esri/calcite-components: 2.11.0</summary>

##
[2.11.0](https://github.com/Esri/calcite-design-system/compare/@esri/calcite-components@2.10.1...@esri/calcite-components@2.11.0)
(2024-07-31)


### Features

* **chip:** Enhance multi-select group affordance
([#9286](#9286))
([fd150e1](fd150e1))
* **color-picker, color-picker-hex-input:** Add input auto commit, blur
and auto select enhancements.
([#9701](#9701))
([b2be625](b2be625))
* **combobox-item:** Apply heading color according to updated spec
([#9883](#9883))
([9f642ff](9f642ff))
* **combobox, combobox-item:** Add `description`, `shortHeading` props
and `content-end` slot
([#9771](#9771))
([78eb555](78eb555))
* **combobox, combobox-item:** Add `metadata` support for filtering
([#9819](#9819))
([5de7787](5de7787))
* **combobox:** Append custom values to top of dropdown
([#9817](#9817))
([bd55097](bd55097))
* **dialog:** Add padding to default slot
([#9871](#9871))
([9d89d1d](9d89d1d))
* **dialog:** Adds new dialog component and deprecates the modal
component
([#9751](#9751))
([0111c23](0111c23))
* **icon:** Type icon names
([#9650](#9650))
([7513f3a](7513f3a))
* **panel, flow-item:** Add alerts slot
([#9778](#9778))
([8b9b820](8b9b820))
* **panel, flow-item:** Add beforeClose property
([#9770](#9770))
([aefd3cb](aefd3cb))
* **panel, flow-item:** Add scale property
([#9730](#9730))
([27c597e](27c597e))
* Provide info message on stamped version instead of warning
([#9739](#9739))
([b25cb7b](b25cb7b))
* **shell-panel:** Deprecate float displayMode and add float-content and
float-all
([#9795](#9795))
([bf93728](bf93728))
* **tooltip:** Support touch events
([#9487](#9487))
([633706b](633706b))


### Bug Fixes

* **block-section:** Apply missing CSS class to start/end icon
([#9688](#9688))
([2169ed2](2169ed2))
* **block:** Remove top padding when no heading is defined
([#9782](#9782))
([704f5df](704f5df))
* **carousel:** Prevent duplicate animation when navigating via keyboard
([#9848](#9848))
([cfdbd44](cfdbd44))
* **combobox-item:** Tweak center content font-weight and spacing
([#9818](#9818))
([a67c4af](a67c4af))
* **deps:** Move @types/sortablejs as a dependency so the public types
resolve properly
([#9786](#9786))
([3d47c52](3d47c52))
* **dialog:** Fix menu positioning when when overlayPositioning is
'fixed' and menuOpen is true
([#9891](#9891))
([4390177](4390177))
* Fix issue in Firefox where disabled elements were incorrectly enabled
when a sibling was enabled
([#9710](#9710))
([cd4d52c](cd4d52c))
* **flow-item:** Set closed property to true when internal panel is
closed
([#9715](#9715))
([f7d2a4f](f7d2a4f))
* Improve browser check to resolve SSR errors
([#9897](#9897))
([bdb225b](bdb225b))
* **input-date-picker:** Ensure initial value is in range
([#9894](#9894))
([7d05134](7d05134))
* **input-number:** Restore decimal input mode default
([#9741](#9741))
([1165dca](1165dca))
* **panel, flow-item:** Fix footer-padding CSS prop regression
([#9757](#9757))
([f935790](f935790))
* **panel, flow-item:** Prevent footer slots from conflicting with each
other
([#9856](#9856))
([cffaff8](cffaff8))
* **panel:** Correct footer padding and layout
([#9868](#9868))
([1e02ece](1e02ece))
* **radio-button-group:** Remove blank clickable space outside of label
([#9793](#9793))
([4cc24a0](4cc24a0))
* **segmented-control:** Make check state update correctly
([#9733](#9733))
([602c922](602c922))
* **shell:** Fix resizing a slotted shell-panel when clicking to resize
([#9846](#9846))
([326001c](326001c))
* **shell:** Update shell to correctly position calcite shell panel at
shell's bottom
([#9748](#9748))
([5959db7](5959db7))
* **tab-title:** Adjust hover styling for `bordered` Tab Title
([#9867](#9867))
([a77cd27](a77cd27))
* **tabs:** Handle tab close events that remove the associated tab-title
and tab elements from the DOM
([#9768](#9768))
([bda619c](bda619c))
* **tabs:** Update tab title indicator display
([#9666](#9666))
([5f0914b](5f0914b))
* **tile:** Center align contentTop and contentBottom slots when
alignment prop equals "center"
([#9732](#9732))
([1a8393b](1a8393b))
* **tile:** Center align slot's text when alignment is equal to center
([#9773](#9773))
([8611bfc](8611bfc))
* **time-picker:** Render meridiem first for korean locale
([#9842](#9842))
([897f924](897f924))
* **tooltip:** Allow focusing on a reference element and then clicking
on a tooltip
([#9878](#9878))
([dfca2d4](dfca2d4))
* Widen icon type to allow string
([#9915](#9915))
([44138b1](44138b1))


### Dependencies

* The following workspace dependencies were updated
  * dependencies
    * @esri/calcite-ui-icons bumped from ^3.29.1-next.0 to ^3.30.0
</details>

<details><summary>@esri/calcite-components-angular: 2.11.0</summary>

##
[2.11.0](https://github.com/Esri/calcite-design-system/compare/@esri/calcite-components-angular@2.10.1...@esri/calcite-components-angular@2.11.0)
(2024-07-31)


### Miscellaneous Chores

* **@esri/calcite-components-angular:** Synchronize components versions


### Dependencies

* The following workspace dependencies were updated
  * dependencies
    * @esri/calcite-components bumped from ^2.11.0-next.30 to ^2.11.0
</details>

<details><summary>@esri/calcite-components-react: 2.11.0</summary>

##
[2.11.0](https://github.com/Esri/calcite-design-system/compare/@esri/calcite-components-react@2.10.1...@esri/calcite-components-react@2.11.0)
(2024-07-31)


### Miscellaneous Chores

* **@esri/calcite-components-react:** Synchronize components versions


### Dependencies

* The following workspace dependencies were updated
  * dependencies
    * @esri/calcite-components bumped from ^2.11.0-next.30 to ^2.11.0
</details>

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
benelan pushed a commit that referenced this pull request Jul 31, 2024
🤖 I have created a release *beep* *boop*
---

<details><summary>@esri/calcite-ui-icons: 3.30.0</summary>

[3.30.0](https://github.com/Esri/calcite-design-system/compare/@esri/calcite-ui-icons-v3.29.0...@esri/calcite-ui-icons@3.30.0)
(2024-07-31)

* Add calcite-ui-icons to monorepo
([#9835](#9835))
([05264ea](05264ea))
</details>

<details><summary>@esri/calcite-components: 2.11.0</summary>

[2.11.0](https://github.com/Esri/calcite-design-system/compare/@esri/calcite-components@2.10.1...@esri/calcite-components@2.11.0)
(2024-07-31)

* **chip:** Enhance multi-select group affordance
([#9286](#9286))
([fd150e1](fd150e1))
* **color-picker, color-picker-hex-input:** Add input auto commit, blur
and auto select enhancements.
([#9701](#9701))
([b2be625](b2be625))
* **combobox-item:** Apply heading color according to updated spec
([#9883](#9883))
([9f642ff](9f642ff))
* **combobox, combobox-item:** Add `description`, `shortHeading` props
and `content-end` slot
([#9771](#9771))
([78eb555](78eb555))
* **combobox, combobox-item:** Add `metadata` support for filtering
([#9819](#9819))
([5de7787](5de7787))
* **combobox:** Append custom values to top of dropdown
([#9817](#9817))
([bd55097](bd55097))
* **dialog:** Add padding to default slot
([#9871](#9871))
([9d89d1d](9d89d1d))
* **dialog:** Adds new dialog component and deprecates the modal
component
([#9751](#9751))
([0111c23](0111c23))
* **icon:** Type icon names
([#9650](#9650))
([7513f3a](7513f3a))
* **panel, flow-item:** Add alerts slot
([#9778](#9778))
([8b9b820](8b9b820))
* **panel, flow-item:** Add beforeClose property
([#9770](#9770))
([aefd3cb](aefd3cb))
* **panel, flow-item:** Add scale property
([#9730](#9730))
([27c597e](27c597e))
* Provide info message on stamped version instead of warning
([#9739](#9739))
([b25cb7b](b25cb7b))
* **shell-panel:** Deprecate float displayMode and add float-content and
float-all
([#9795](#9795))
([bf93728](bf93728))
* **tooltip:** Support touch events
([#9487](#9487))
([633706b](633706b))

* **block-section:** Apply missing CSS class to start/end icon
([#9688](#9688))
([2169ed2](2169ed2))
* **block:** Remove top padding when no heading is defined
([#9782](#9782))
([704f5df](704f5df))
* **carousel:** Prevent duplicate animation when navigating via keyboard
([#9848](#9848))
([cfdbd44](cfdbd44))
* **combobox-item:** Tweak center content font-weight and spacing
([#9818](#9818))
([a67c4af](a67c4af))
* **deps:** Move @types/sortablejs as a dependency so the public types
resolve properly
([#9786](#9786))
([3d47c52](3d47c52))
* **dialog:** Fix menu positioning when when overlayPositioning is
'fixed' and menuOpen is true
([#9891](#9891))
([4390177](4390177))
* Fix issue in Firefox where disabled elements were incorrectly enabled
when a sibling was enabled
([#9710](#9710))
([cd4d52c](cd4d52c))
* **flow-item:** Set closed property to true when internal panel is
closed
([#9715](#9715))
([f7d2a4f](f7d2a4f))
* Improve browser check to resolve SSR errors
([#9897](#9897))
([bdb225b](bdb225b))
* **input-date-picker:** Ensure initial value is in range
([#9894](#9894))
([7d05134](7d05134))
* **input-number:** Restore decimal input mode default
([#9741](#9741))
([1165dca](1165dca))
* **panel, flow-item:** Fix footer-padding CSS prop regression
([#9757](#9757))
([f935790](f935790))
* **panel, flow-item:** Prevent footer slots from conflicting with each
other
([#9856](#9856))
([cffaff8](cffaff8))
* **panel:** Correct footer padding and layout
([#9868](#9868))
([1e02ece](1e02ece))
* **radio-button-group:** Remove blank clickable space outside of label
([#9793](#9793))
([4cc24a0](4cc24a0))
* **segmented-control:** Make check state update correctly
([#9733](#9733))
([602c922](602c922))
* **shell:** Fix resizing a slotted shell-panel when clicking to resize
([#9846](#9846))
([326001c](326001c))
* **shell:** Update shell to correctly position calcite shell panel at
shell's bottom
([#9748](#9748))
([5959db7](5959db7))
* **tab-title:** Adjust hover styling for `bordered` Tab Title
([#9867](#9867))
([a77cd27](a77cd27))
* **tabs:** Handle tab close events that remove the associated tab-title
and tab elements from the DOM
([#9768](#9768))
([bda619c](bda619c))
* **tabs:** Update tab title indicator display
([#9666](#9666))
([5f0914b](5f0914b))
* **tile:** Center align contentTop and contentBottom slots when
alignment prop equals "center"
([#9732](#9732))
([1a8393b](1a8393b))
* **tile:** Center align slot's text when alignment is equal to center
([#9773](#9773))
([8611bfc](8611bfc))
* **time-picker:** Render meridiem first for korean locale
([#9842](#9842))
([897f924](897f924))
* **tooltip:** Allow focusing on a reference element and then clicking
on a tooltip
([#9878](#9878))
([dfca2d4](dfca2d4))
* Widen icon type to allow string
([#9915](#9915))
([44138b1](44138b1))

* The following workspace dependencies were updated
  * dependencies
    * @esri/calcite-ui-icons bumped from ^3.29.1-next.0 to ^3.30.0
</details>

<details><summary>@esri/calcite-components-angular: 2.11.0</summary>

[2.11.0](https://github.com/Esri/calcite-design-system/compare/@esri/calcite-components-angular@2.10.1...@esri/calcite-components-angular@2.11.0)
(2024-07-31)

* **@esri/calcite-components-angular:** Synchronize components versions

* The following workspace dependencies were updated
  * dependencies
    * @esri/calcite-components bumped from ^2.11.0-next.30 to ^2.11.0
</details>

<details><summary>@esri/calcite-components-react: 2.11.0</summary>

[2.11.0](https://github.com/Esri/calcite-design-system/compare/@esri/calcite-components-react@2.10.1...@esri/calcite-components-react@2.11.0)
(2024-07-31)

* **@esri/calcite-components-react:** Synchronize components versions

* The following workspace dependencies were updated
  * dependencies
    * @esri/calcite-components bumped from ^2.11.0-next.30 to ^2.11.0
</details>

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
benelan added a commit that referenced this pull request Jul 31, 2024
Cherry-pick the release commit from `main`.

---

<details><summary>@esri/calcite-ui-icons: 3.30.0</summary>


[3.30.0](https://github.com/Esri/calcite-design-system/compare/@esri/calcite-ui-icons-v3.29.0...@esri/calcite-ui-icons@3.30.0)
(2024-07-31)

* Add calcite-ui-icons to monorepo
([#9835](#9835))

([05264ea](05264ea))
</details>

<details><summary>@esri/calcite-components: 2.11.0</summary>


[2.11.0](https://github.com/Esri/calcite-design-system/compare/@esri/calcite-components@2.10.1...@esri/calcite-components@2.11.0)
(2024-07-31)

* **chip:** Enhance multi-select group affordance
([#9286](#9286))

([fd150e1](fd150e1))
* **color-picker, color-picker-hex-input:** Add input auto commit, blur
and auto select enhancements.
([#9701](#9701))

([b2be625](b2be625))
* **combobox-item:** Apply heading color according to updated spec
([#9883](#9883))

([9f642ff](9f642ff))
* **combobox, combobox-item:** Add `description`, `shortHeading` props
and `content-end` slot
([#9771](#9771))

([78eb555](78eb555))
* **combobox, combobox-item:** Add `metadata` support for filtering
([#9819](#9819))

([5de7787](5de7787))
* **combobox:** Append custom values to top of dropdown
([#9817](#9817))

([bd55097](bd55097))
* **dialog:** Add padding to default slot
([#9871](#9871))

([9d89d1d](9d89d1d))
* **dialog:** Adds new dialog component and deprecates the modal
component
([#9751](#9751))

([0111c23](0111c23))
* **icon:** Type icon names
([#9650](#9650))

([7513f3a](7513f3a))
* **panel, flow-item:** Add alerts slot
([#9778](#9778))

([8b9b820](8b9b820))
* **panel, flow-item:** Add beforeClose property
([#9770](#9770))

([aefd3cb](aefd3cb))
* **panel, flow-item:** Add scale property
([#9730](#9730))

([27c597e](27c597e))
* Provide info message on stamped version instead of warning
([#9739](#9739))

([b25cb7b](b25cb7b))
* **shell-panel:** Deprecate float displayMode and add float-content and
float-all
([#9795](#9795))

([bf93728](bf93728))
* **tooltip:** Support touch events
([#9487](#9487))

([633706b](633706b))

* **block-section:** Apply missing CSS class to start/end icon
([#9688](#9688))

([2169ed2](2169ed2))
* **block:** Remove top padding when no heading is defined
([#9782](#9782))

([704f5df](704f5df))
* **carousel:** Prevent duplicate animation when navigating via keyboard
([#9848](#9848))

([cfdbd44](cfdbd44))
* **combobox-item:** Tweak center content font-weight and spacing
([#9818](#9818))

([a67c4af](a67c4af))
* **deps:** Move @types/sortablejs as a dependency so the public types
resolve properly
([#9786](#9786))

([3d47c52](3d47c52))
* **dialog:** Fix menu positioning when when overlayPositioning is
'fixed' and menuOpen is true
([#9891](#9891))

([4390177](4390177))
* Fix issue in Firefox where disabled elements were incorrectly enabled
when a sibling was enabled
([#9710](#9710))

([cd4d52c](cd4d52c))
* **flow-item:** Set closed property to true when internal panel is
closed
([#9715](#9715))

([f7d2a4f](f7d2a4f))
* Improve browser check to resolve SSR errors
([#9897](#9897))

([bdb225b](bdb225b))
* **input-date-picker:** Ensure initial value is in range
([#9894](#9894))

([7d05134](7d05134))
* **input-number:** Restore decimal input mode default
([#9741](#9741))

([1165dca](1165dca))
* **panel, flow-item:** Fix footer-padding CSS prop regression
([#9757](#9757))

([f935790](f935790))
* **panel, flow-item:** Prevent footer slots from conflicting with each
other
([#9856](#9856))

([cffaff8](cffaff8))
* **panel:** Correct footer padding and layout
([#9868](#9868))

([1e02ece](1e02ece))
* **radio-button-group:** Remove blank clickable space outside of label
([#9793](#9793))

([4cc24a0](4cc24a0))
* **segmented-control:** Make check state update correctly
([#9733](#9733))

([602c922](602c922))
* **shell:** Fix resizing a slotted shell-panel when clicking to resize
([#9846](#9846))

([326001c](326001c))
* **shell:** Update shell to correctly position calcite shell panel at
shell's bottom
([#9748](#9748))

([5959db7](5959db7))
* **tab-title:** Adjust hover styling for `bordered` Tab Title
([#9867](#9867))

([a77cd27](a77cd27))
* **tabs:** Handle tab close events that remove the associated tab-title
and tab elements from the DOM
([#9768](#9768))

([bda619c](bda619c))
* **tabs:** Update tab title indicator display
([#9666](#9666))

([5f0914b](5f0914b))
* **tile:** Center align contentTop and contentBottom slots when
alignment prop equals "center"
([#9732](#9732))

([1a8393b](1a8393b))
* **tile:** Center align slot's text when alignment is equal to center
([#9773](#9773))

([8611bfc](8611bfc))
* **time-picker:** Render meridiem first for korean locale
([#9842](#9842))

([897f924](897f924))
* **tooltip:** Allow focusing on a reference element and then clicking
on a tooltip
([#9878](#9878))

([dfca2d4](dfca2d4))
* Widen icon type to allow string
([#9915](#9915))

([44138b1](44138b1))

* The following workspace dependencies were updated
  * dependencies
    * @esri/calcite-ui-icons bumped from ^3.29.1-next.0 to ^3.30.0
</details>

<details><summary>@esri/calcite-components-angular: 2.11.0</summary>


[2.11.0](https://github.com/Esri/calcite-design-system/compare/@esri/calcite-components-angular@2.10.1...@esri/calcite-components-angular@2.11.0)
(2024-07-31)

* **@esri/calcite-components-angular:** Synchronize components versions

* The following workspace dependencies were updated
  * dependencies
    * @esri/calcite-components bumped from ^2.11.0-next.30 to ^2.11.0
</details>

<details><summary>@esri/calcite-components-react: 2.11.0</summary>


[2.11.0](https://github.com/Esri/calcite-design-system/compare/@esri/calcite-components-react@2.10.1...@esri/calcite-components-react@2.11.0)
(2024-07-31)

* **@esri/calcite-components-react:** Synchronize components versions

* The following workspace dependencies were updated
  * dependencies
    * @esri/calcite-components bumped from ^2.11.0-next.30 to ^2.11.0
</details>

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See

[documentation](https://github.com/googleapis/release-please#release-please).

---------

Co-authored-by: github-actions[bot]
<github-actions[bot]@users.noreply.github.com>

**Related Issue:** #

## Summary

Co-authored-by: Calcite Admin <calcite-admin@esri.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
@benelan benelan mentioned this pull request Aug 28, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement Issues tied to a new feature or request. skip visual snapshots Pull requests that do not need visual regression testing.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants