Merge branch 'master' into feat-1.5.0

pull/1845/head 1.5.0-alpha.1
tangjinzhou 2020-03-04 17:44:50 +08:00
commit 1572e8e70d
13 changed files with 159 additions and 81 deletions

View File

@ -10,6 +10,31 @@
--- ---
## 1.4.12
`2020-03-03`
- ๐Ÿž Fix ts type error of `Modal` component [#1809](https://github.com/vueComponent/ant-design-vue/issues/1809)
## 1.4.11
`2020-02-12`
- ๐ŸŒŸ DirectoryTree adds custom switcherIcon function [#1743](https://github.com/vueComponent/ant-design-vue/issues/1743)
- ๐ŸŒŸ Add draggable table column width [example](https://www.antdv.com/components/table/#components-table-demo-resizable-column)
- ๐ŸŒŸ Replace `this.$listeners` of all components to avoid repeated rendering of components [#1705](https://github.com/vueComponent/ant-design-vue/issues/1705)
- ๐Ÿž Fix ConfigProvider component error report error [7a4003](https://github.com/vueComponent/ant-design-vue/commit/7a40031955d520487dcaf9054a1280ae72230049)
- ๐Ÿž Fix placeholder does not disappear when custom input box of AutoComplete component [#1761](https://github.com/vueComponent/ant-design-vue/issues/1761)
- ๐Ÿž Fix Statistic.Countdown does not trigger finish event [#1731](https://github.com/vueComponent/ant-design-vue/pull/1731)
- ๐Ÿž Fix upload component preview image not refreshing [f74469](https://github.com/vueComponent/ant-design-vue/commit/f744690e929d9d6da03c5c513b3ac5497c6490ef)
- ๐Ÿž Fix TimePicker id is not unique [#1566](https://github.com/vueComponent/ant-design-vue/pull/1566)
- ๐Ÿž Fix Pagination pagination without animation [#1540](https://github.com/vueComponent/ant-design-vue/issues/1540)
- ๐Ÿž Fix drop-down list does not show empty elements when Cascader's option is empty array [#1701](https://github.com/vueComponent/ant-design-vue/issues/1540)
- ๐Ÿž Fix spellcheck rendering incorrect for Input component [#1707](https://github.com/vueComponent/ant-design-vue/issues/1707)
- ๐Ÿž Fix Tree component cannot customize icon [#1712](https://github.com/vueComponent/ant-design-vue/pull/1712)
- ๐Ÿž Fix SubMenu forceSubMenuRender property is invalid [#1668](https://github.com/vueComponent/ant-design-vue/issues/1668)
- ๐Ÿž Fix style of upload button is misaligned [#1742](https://github.com/vueComponent/ant-design-vue/pull/1742)
## 1.4.10 ## 1.4.10
`2019-12-11` `2019-12-11`

View File

@ -10,6 +10,31 @@
--- ---
## 1.4.12
`2020-03-03`
- ๐Ÿž ไฟฎๅค `Modal` ็ป„ไปถ ts ็ฑปๅž‹ๆŠฅ้”™้—ฎ้ข˜ [#1809](https://github.com/vueComponent/ant-design-vue/issues/1809)
## 1.4.11
`2020-02-12`
- ๐ŸŒŸ DirectoryTree ๆ–ฐๅขž่‡ชๅฎšไน‰ switcherIcon ๅŠŸ่ƒฝ [#1743](https://github.com/vueComponent/ant-design-vue/issues/1743)
- ๐ŸŒŸ ๆ–ฐๅขžๅฏๆ‹–ๆ‹ฝ่ฐƒๆ•ด่กจๆ ผๅˆ—ๅฎฝ[็คบไพ‹](https://www.antdv.com/components/table/#components-table-demo-resizable-column)
- ๐ŸŒŸ ๆ›ฟๆขๆ‰€ๆœ‰็ป„ไปถ็š„ `this.$listeners` ้ฟๅ…็ป„ไปถ้‡ๅคๆธฒๆŸ“ [#1705](https://github.com/vueComponent/ant-design-vue/issues/1705)
- ๐Ÿž ไฟฎๅค ConfigProvider ็ป„ไปถๆ›ดๆ”นๅฑžๆ€งๆ—ถ๏ผŒๆŠฅ้”™้—ฎ้ข˜ [7a4003](https://github.com/vueComponent/ant-design-vue/commit/7a40031955d520487dcaf9054a1280ae72230049)
- ๐Ÿž ไฟฎๅค AutoComplete ็ป„ไปถ่‡ชๅฎšไน‰่พ“ๅ…ฅๆก†ๆ—ถ๏ผŒplaceholder ไธๆถˆๅคฑ้—ฎ้ข˜ [#1761](https://github.com/vueComponent/ant-design-vue/issues/1761)
- ๐Ÿž ไฟฎๅค Statistic.Countdown ไธ่งฆๅ‘ finish ไบ‹ไปถ็š„้—ฎ้ข˜ [#1731](https://github.com/vueComponent/ant-design-vue/pull/1731)
- ๐Ÿž ไฟฎๅค Upload ็ป„ไปถ้ข„่งˆๅ›พ็‰‡ไธๅˆทๆ–ฐ้—ฎ้ข˜ [f74469](https://github.com/vueComponent/ant-design-vue/commit/f744690e929d9d6da03c5c513b3ac5497c6490ef)
- ๐Ÿž ไฟฎๅค TimePicker id ไธๅ”ฏไธ€้—ฎ้ข˜ [#1566](https://github.com/vueComponent/ant-design-vue/pull/1566)
- ๐Ÿž ไฟฎๅค Pagination ๅˆ†้กตๆ— ๅŠจ็”ป้—ฎ้ข˜ [#1540](https://github.com/vueComponent/ant-design-vue/issues/1540)
- ๐Ÿž ไฟฎๅค Cascader ็š„ option ไธบ็ฉบๆ•ฐ็ป„ๆ—ถ,ไธ‹ๆ‹‰ๅˆ—่กจไธๅฑ•็คบ็ฉบๅ…ƒ็ด ้—ฎ้ข˜ [#1701](https://github.com/vueComponent/ant-design-vue/issues/1540)
- ๐Ÿž ไฟฎๅค Input ็ป„ไปถ็š„ spellcheck ๆธฒๆŸ“ไธๆญฃ็กฎ้—ฎ้ข˜ [#1707](https://github.com/vueComponent/ant-design-vue/issues/1707)
- ๐Ÿž ไฟฎๅค Tree ็ป„ไปถๆ— ๆณ•่‡ชๅฎšไน‰ icon ้—ฎ้ข˜ [#1712](https://github.com/vueComponent/ant-design-vue/pull/1712)
- ๐Ÿž ไฟฎๅค SubMenu forceSubMenuRender ๅฑžๆ€งๅคฑๆ•ˆ้—ฎ้ข˜ [#1668](https://github.com/vueComponent/ant-design-vue/issues/1668)
- ๐Ÿž ไฟฎๅค Upload ๆŒ‰้’ฎๆ ทๅผ้”™ไฝ้—ฎ้ข˜ [#1742](https://github.com/vueComponent/ant-design-vue/pull/1742)
## 1.4.10 ## 1.4.10
`2019-12-11` `2019-12-11`

View File

@ -12,15 +12,13 @@ const md = {
cn: `# ๆ—ถ้—ด่ฝด cn: `# ๆ—ถ้—ด่ฝด
ๅž‚็›ดๅฑ•็คบ็š„ๆ—ถ้—ดๆตไฟกๆฏใ€‚ ๅž‚็›ดๅฑ•็คบ็š„ๆ—ถ้—ดๆตไฟกๆฏใ€‚
## ไฝ•ๆ—ถไฝฟ็”จ ## ไฝ•ๆ—ถไฝฟ็”จ
ๅœจๆ“ไฝœ้œ€่ฆ่พƒ้•ฟๆ—ถ้—ดๆ‰่ƒฝๅฎŒๆˆๆ—ถ๏ผŒไธบ็”จๆˆทๆ˜พ็คบ่ฏฅๆ“ไฝœ็š„ๅฝ“ๅ‰่ฟ›ๅบฆๅ’Œ็Šถๆ€ใ€‚
- ๅฝ“ๆœ‰ไธ€็ณปๅˆ—ไฟกๆฏ้œ€ๆŒ‰ๆ—ถ้—ดๆŽ’ๅˆ—ๆ—ถ๏ผŒๅฏๆญฃๅบๅ’Œๅ€’ๅบใ€‚ - ๅฝ“ๆœ‰ไธ€็ณปๅˆ—ไฟกๆฏ้œ€ๆŒ‰ๆ—ถ้—ดๆŽ’ๅˆ—ๆ—ถ๏ผŒๅฏๆญฃๅบๅ’Œๅ€’ๅบใ€‚
- ้œ€่ฆๆœ‰ไธ€ๆกๆ—ถ้—ด่ฝด่ฟ›่กŒ่ง†่ง‰ไธŠ็š„ไธฒ่”ๆ—ถใ€‚ใ€‚ - ้œ€่ฆๆœ‰ไธ€ๆกๆ—ถ้—ด่ฝด่ฟ›่กŒ่ง†่ง‰ไธŠ็š„ไธฒ่”ๆ—ถใ€‚
## ไปฃ็ ๆผ”็คบ`, ## ไปฃ็ ๆผ”็คบ`,
us: `# Timeline us: `# Timeline
Vertical display timeline. Vertical display timeline.
## When To Use ## When To Use
- When a series of information needs to be ordered by time (ascend or descend). - When a series of information needs to be ordered by time (ascending or descending).
- When you need a timeline to make a visual connection. - When you need a timeline to make a visual connection.
## Examples ## Examples
`, `,

View File

@ -77,6 +77,7 @@ export default {
this.sChecked = e.target.checked; this.sChecked = e.target.checked;
} }
this.$forceUpdate(); // changeๅ‰๏ผŒ็ปดๆŒ็Žฐๆœ‰็Šถๆ€ this.$forceUpdate(); // changeๅ‰๏ผŒ็ปดๆŒ็Žฐๆœ‰็Šถๆ€
e.shiftKey = this.eventShiftKey;
this.__emit('change', { this.__emit('change', {
target: { target: {
...props, ...props,
@ -88,7 +89,7 @@ export default {
preventDefault() { preventDefault() {
e.preventDefault(); e.preventDefault();
}, },
nativeEvent: { ...e, shiftKey: this.eventShiftKey }, nativeEvent: e,
}); });
this.eventShiftKey = false; this.eventShiftKey = false;
}, },

View File

@ -22,7 +22,7 @@ Second, if you don't use the form's automatic check/collection feature, ie you d
### How to modify the default theme of Ant Design Vue? ### How to modify the default theme of Ant Design Vue?
See [Customize Theme](/docs/vue/customize-theme/)ใ€‚ See [Customize Theme](/docs/vue/customize-theme/).
### How to optimize momentjs bundle size with webpack? ### How to optimize momentjs bundle size with webpack?
@ -42,8 +42,17 @@ Yes, ant-design-vue is designed to develop a complete background application, we
Or, follow the instructions in [How to avoid modifying global styles?](docs/react/customize-theme#How-to-avoid-modifying-global-styles-?) Or, follow the instructions in [How to avoid modifying global styles?](docs/react/customize-theme#How-to-avoid-modifying-global-styles-?)
### `ant-design-vue` makes only poor user experience on mobile.
`ant-design-vue` is not designed for mobile.
### When I set `mode` to DatePicker/RangePicker, I cannot select year or month anymore? ### When I set `mode` to DatePicker/RangePicker, I cannot select year or month anymore?
In a real world development, you may need a YearPicker, MonthRangePicker or WeekRangePicker. You are trying to add `mode` to DatePicker/RangePicker expected to implement those pickers. However, the DatePicker/RangePicker cannot be selected and the panels won't close now. In a real world development, you may need a YearPicker, MonthRangePicker or WeekRangePicker. You are trying to add `mode` to DatePicker/RangePicker expected to implement those pickers. However, the DatePicker/RangePicker cannot be selected and the panels won't close now.
That is because `<DatePicker mode="year" />` do not equal to `YearPicker`, `<RangePicker mode="month" />` do not equal to `MonthRangePicker` either. The `mode` property was added to support [showing time picker panel in DatePicker](https://github.com/ant-design/ant-design/issues/5190), which simply control the displayed panel and won't change the original date picking behavior of `DatePicker/RangePicker` (for instance you still need to click date cell to finish selection in a DatePicker, whatever the `mode` is). That is because `<DatePicker mode="year" />` do not equal to `YearPicker`, `<RangePicker mode="month" />` do not equal to `MonthRangePicker` either. The `mode` property was added to support [showing time picker panel in DatePicker](https://github.com/ant-design/ant-design/issues/5190), which simply control the displayed panel and won't change the original date picking behavior of `DatePicker/RangePicker` (for instance you still need to click date cell to finish selection in a DatePicker, whatever the `mode` is).
##### Solution
The following articles are the implementation articles of the react version, the ideas are the same.
In [one article](https://juejin.im/post/5cf65c366fb9a07eca6968f9) or [another article](https://www.cnblogs.com/zyl-Tara/p/10197177.html) approach, using methods `mode` and `panelChange` to encapsulate a component such as `YearPicker`. We plan to add more date related components directly in ant-design-vue@2.0 to support these needs.

View File

@ -127,6 +127,14 @@ If you'd like to help us improve antd, just create a [Pull Request](https://gith
> If you're new to posting issues, we ask that you read [_How To Ask Questions The Smart Way_](http://www.catb.org/~esr/faqs/smart-questions.html) and [How to Ask a Question in Open Source Community](https://github.com/seajs/seajs/issues/545) and [How to Report Bugs Effectively](http://www.chiark.greenend.org.uk/~sgtatham/bugs.html) prior to posting. Well written bug reports help us help you! > If you're new to posting issues, we ask that you read [_How To Ask Questions The Smart Way_](http://www.catb.org/~esr/faqs/smart-questions.html) and [How to Ask a Question in Open Source Community](https://github.com/seajs/seajs/issues/545) and [How to Report Bugs Effectively](http://www.chiark.greenend.org.uk/~sgtatham/bugs.html) prior to posting. Well written bug reports help us help you!
## About ant-design-vue
As we all know, Ant Design, as a design language, has gone through many years of iteration and accumulation. Its UI design ideas have become a set of de facto standards and are sought after and loved by many front-end developers and enterprises, and it is also a magic weapon in the hands of React developers. I hope that ant-design-vue will allow Vue developers to enjoy the excellent design of Ant Design.
The ant-design-vue is the Vue implementation of Ant Design. The style of the component is kept in sync with Ant Design. The html structure and css style of the component are also consistent. The style 0 modification is really achieved, and the component API is kept as consistent as possible.
Ant Design Vue is committed to providing programmers with a ** pleasant ** development experience.
## THANK YOU ## THANK YOU
[Ant Design Team](https://github.com/ant-design/ant-design/blob/master/AUTHORS.txt) [Ant Design Team](https://github.com/ant-design/ant-design/blob/master/AUTHORS.txt)

View File

@ -70,12 +70,9 @@ Vue.component(Button.name, Button);
Vue.config.productionTip = false; Vue.config.productionTip = false;
/* eslint-disable no-new */
new Vue({ new Vue({
el: '#app', render: h => h(App),
components: { App }, }).$mount('#app');
template: '<App/>',
});
``` ```
Modify `src/App.vue`ใ€‚ Modify `src/App.vue`ใ€‚
@ -161,12 +158,9 @@ Remove the `import 'ant-design-vue/dist/antd.css';` statement added before becau
Vue.config.productionTip = false Vue.config.productionTip = false
/* eslint-disable no-new */
new Vue({ new Vue({
el: '#app', render: h => h(App)
components: { App }, }).$mount('#app')
template: '<App/>'
})
``` ```
Then reboot with `npm run dev` and visit the demo page, you should not find any [warning messages](https://zos.alipayobjects.com/rmsportal/vgcHJRVZFmPjAawwVoXK.png) in the console, which prove that the `import on demand` config is working now. You will find more info about it in [this guide](/docs/vue/getting-started/#Import-on-Demand). Then reboot with `npm run dev` and visit the demo page, you should not find any [warning messages](https://zos.alipayobjects.com/rmsportal/vgcHJRVZFmPjAawwVoXK.png) in the console, which prove that the `import on demand` config is working now. You will find more info about it in [this guide](/docs/vue/getting-started/#Import-on-Demand).

View File

@ -1,6 +1,6 @@
{ {
"name": "ant-design-vue", "name": "ant-design-vue",
"version": "1.4.10", "version": "1.4.12",
"title": "Ant Design Vue", "title": "Ant Design Vue",
"description": "An enterprise-class UI design language and Vue-based implementation", "description": "An enterprise-class UI design language and Vue-based implementation",
"keywords": [ "keywords": [

View File

@ -29,9 +29,11 @@ if (!ADBLOCK && !CI && !DISABLE_OPENCOLLECTIVE && !SILENT) {
log('\u001B[96m>\u001B[94m https://opencollective.com/ant-design-vue \u001B[0m'); log('\u001B[96m>\u001B[94m https://opencollective.com/ant-design-vue \u001B[0m');
log('\u001B[96m>\u001B[94m https://www.patreon.com/tangjinzhou \u001B[0m\n'); log('\u001B[96m>\u001B[94m https://www.patreon.com/tangjinzhou \u001B[0m\n');
log( log(
'\u001B[96mFor china, ๆ›ดๅคš่ตžๅŠฉๆ–นๅผ(ๆ”ฏไป˜ๅฎใ€ๅพฎไฟก)่ฏทๆŸฅ็œ‹ๅฆ‚ไธ‹้“พๆŽฅ: ' + '\u001B[96mๆ›ดๅคš่ตžๅŠฉๆ–นๅผ(ๆ”ฏไป˜ๅฎใ€ๅพฎไฟกใ€Paypal)่ฏทๆŸฅ็œ‹ๅฆ‚ไธ‹้“พๆŽฅ: ' +
emoji.get('pray') + emoji.get('pray') +
'\u001B[0m', '\u001B[0m',
); );
log('\u001B[96m>\u001B[94m https://www.antdv.com/docs/vue/sponsor-cn \u001B[0m\n'); log('\u001B[96m>\u001B[94m https://www.antdv.com/docs/vue/sponsor-cn \u001B[0m\n');
log('\u001B[96mAnt Design Vue ๅฎ˜ๆ–น็ฝ‘็ซ™: \u001B[0m');
log('\u001B[96m>\u001B[94m https://www.antdv.com/ \u001B[0m\n');
} }

View File

@ -13,29 +13,9 @@
<section class="code-box-meta markdown"> <section class="code-box-meta markdown">
<slot v-if="isZhCN" name="description" /> <slot v-if="isZhCN" name="description" />
<slot v-else name="us-description" /> <slot v-else name="us-description" />
<a-tooltip :title="codeExpand ? 'Hide Code' : 'Show Code'"> <div class="code-box-actions">
<span class="code-expand-icon">
<img
width="16"
alt="expand code"
src="https://gw.alipayobjects.com/zos/rmsportal/wSAkBuJFbdxsosKKpqyq.svg"
:class="codeExpand ? 'code-expand-icon-hide' : 'code-expand-icon-show'"
@click="handleCodeExpand"
/>
<img
width="16"
alt="expand code"
src="https://gw.alipayobjects.com/zos/rmsportal/OpROPHYqWmrMDBFMZtKF.svg"
:class="codeExpand ? 'code-expand-icon-show' : 'code-expand-icon-hide'"
@click="handleCodeExpand"
/>
</span>
</a-tooltip>
</section>
<transition appear :css="false" @enter="enter" @leave="leave">
<section v-show="codeExpand" class="highlight-wrapper" style="position: relative;">
<a-tooltip <a-tooltip
:title="copied ? 'ๅคๅˆถๆˆๅŠŸ' : 'ๅคๅˆถไปฃ็ '" :title="copied ? 'Copied!' : 'Copy code'"
:visible="copyTooltipVisible" :visible="copyTooltipVisible"
@visibleChange="onCopyTooltipVisibleChange" @visibleChange="onCopyTooltipVisibleChange"
> >
@ -46,6 +26,28 @@
class="code-box-code-copy" class="code-box-code-copy"
/> />
</a-tooltip> </a-tooltip>
<a-tooltip :title="codeExpand ? 'Hide Code' : 'Show Code'">
<span class="code-expand-icon">
<img
width="16"
alt="expand code"
src="https://gw.alipayobjects.com/zos/rmsportal/wSAkBuJFbdxsosKKpqyq.svg"
:class="codeExpand ? 'code-expand-icon-hide' : 'code-expand-icon-show'"
@click="handleCodeExpand"
/>
<img
width="16"
alt="expand code"
src="https://gw.alipayobjects.com/zos/rmsportal/OpROPHYqWmrMDBFMZtKF.svg"
:class="codeExpand ? 'code-expand-icon-show' : 'code-expand-icon-hide'"
@click="handleCodeExpand"
/>
</span>
</a-tooltip>
</div>
</section>
<transition appear :css="false" @enter="enter" @leave="leave">
<section v-show="codeExpand" class="highlight-wrapper" style="position: relative;">
<slot name="code" /> <slot name="code" />
</section> </section>
</transition> </transition>

View File

@ -56,19 +56,14 @@ pre > code[class*='language-'] {
position: absolute; position: absolute;
top: -14px; top: -14px;
padding: 1px 8px; padding: 1px 8px;
margin-left: -8px; margin-left: 16px;
color: #777; color: #777;
border-radius: 2px 2px 0 0; border-radius: 2px 2px 0 0;
background: #fff; background: #fff;
font-size: 14px; font-size: 14px;
width: auto; width: auto;
} }
.code-box-code-copy {
opacity: 1;
position: absolute;
right: 15px;
top: 10px;
}
#search-box { #search-box {
.ant-select-focused, .ant-select-focused,
.ant-select-selection, .ant-select-selection,

View File

@ -73,11 +73,10 @@
&-meta { &-meta {
&.markdown { &.markdown {
position: relative; position: relative;
padding: 18px 32px;
border-radius: 0 0 @border-radius-sm @border-radius-sm;
transition: background-color 0.4s;
width: 100%; width: 100%;
font-size: @font-size-base; font-size: @font-size-base;
border-radius: 0 0 @border-radius-sm @border-radius-sm;
transition: background-color 0.4s;
} }
blockquote { blockquote {
@ -93,7 +92,7 @@
> p { > p {
font-size: 12px; font-size: 12px;
margin: 0.5em 0; margin: 0.5em 0;
padding-right: 25px; padding: 18px 24px 12px;
width: 100%; width: 100%;
word-break: break-word; word-break: break-word;
} }
@ -105,28 +104,20 @@
} }
.code-expand-icon { .code-expand-icon {
position: absolute;
right: 16px;
bottom: 23px;
cursor: pointer; cursor: pointer;
width: 16px;
height: 16px;
line-height: 16px;
text-align: center;
} }
.code-expand-icon-show, .code-expand-icon-show,
.code-expand-icon-hide { .code-expand-icon-hide {
position: absolute;
top: 0;
left: 0;
width: 100%;
max-width: 100%;
margin: 0;
box-shadow: none;
transition: all 0.4s; transition: all 0.4s;
user-select: none; user-select: none;
position: absolute;
left: 0;
top: 0;
margin: 0;
max-width: 100%;
width: 100%;
vertical-align: baseline;
box-shadow: none;
} }
.code-expand-icon-show { .code-expand-icon-show {
@ -169,29 +160,57 @@
} }
&-actions { &-actions {
position: absolute; padding-top: 12px;
top: 10px; text-align: center;
right: 12px; border-top: 1px dashed @site-border-color-split;
text-align: right; opacity: 0.7;
transition: opacity 0.3s;
&:hover {
opacity: 1;
}
> i, > i,
> form { > form,
> span {
position: relative;
display: inline-block; display: inline-block;
margin-left: 8px; width: 16px;
height: 16px;
margin-left: 16px;
vertical-align: top;
&:first-child {
margin-left: 0;
}
}
> form {
top: -2px;
} }
} }
&-code-copy { &-code-action {
font-size: 14px;
cursor: pointer;
color: @site-text-color-secondary;
transition: all 0.24s;
background: #fff;
width: 20px; width: 20px;
height: 20px; height: 20px;
color: @site-text-color-secondary;
font-size: 16px;
line-height: 18px;
cursor: pointer;
transition: all 0.24s;
}
&-code-copy {
width: 20px;
height: 20px;
color: @site-text-color-secondary;
font-size: 14px;
line-height: 20px; line-height: 20px;
text-align: center; text-align: center;
background: #fff;
border-radius: 20px; border-radius: 20px;
opacity: 0; cursor: pointer;
transition: all 0.24s;
&:hover { &:hover {
color: @site-text-color-secondary; color: @site-text-color-secondary;

2
types/modal.d.ts vendored
View File

@ -128,7 +128,7 @@ export interface ModalOptions {
*/ */
onOk?: () => any; onOk?: () => any;
parentContext: Object; parentContext?: object;
} }
export interface ModalConfirm { export interface ModalConfirm {