diff --git a/CHANGELOG.md b/CHANGELOG.md index b4cf68c04..5dcc1ca61 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,11 +1,74 @@ # Changelog +## [3.40.1](https://github.com/primefaces/primevue/tree/3.40.1) (2023-11-09) + +[Full Changelog](https://github.com/primefaces/primevue/compare/3.40.0...3.40.1) + +**Fixed bugs:** + +- InputGroupAddon esm broken [\#4788](https://github.com/primefaces/primevue/issues/4788) + +## [3.40.0](https://github.com/primefaces/primevue/tree/3.40.0) (2023-11-09) + +[Full Changelog](https://github.com/primefaces/primevue/compare/3.39.0...3.40.0) + +**Breaking Changes:** + +- AccordionTab: isTabActive property is deprecated [\#4783](https://github.com/primefaces/primevue/issues/4783) +- Remove vue-router support from Menu components [\#4739](https://github.com/primefaces/primevue/issues/4739) +- Tooltip: escape should be false by default [\#4738](https://github.com/primefaces/primevue/issues/4738) + +**Fixed bugs:** + +- DataTable/TreeTable: Frozen column improvements [\#4786](https://github.com/primefaces/primevue/issues/4786) +- Table row is not highlighted with context menu [\#4785](https://github.com/primefaces/primevue/issues/4785) +- core: Error BaseStyle\_\_default.default is undefined [\#4648](https://github.com/primefaces/primevue/issues/4648) +- DataTable: editingRows watcher implementation defect [\#4757](https://github.com/primefaces/primevue/issues/4757) +- MultiSelect Name: prop overshadowing [\#4743](https://github.com/primefaces/primevue/issues/4743) +- SpeedDial: unstyled implementation defect breaks the calculations [\#4740](https://github.com/primefaces/primevue/issues/4740) +- Tooltip: autoHide does not work properly [\#4737](https://github.com/primefaces/primevue/issues/4737) +- Calendar: Console.Error/Crash when pressing Escape key using Inline Calendar [\#4732](https://github.com/primefaces/primevue/issues/4732) +- Calendar does not show the right month (for the minimal departure date) when it's dynamically set [\#4157](https://github.com/primefaces/primevue/issues/4157) + +**Implemented New Features and Enhancements:** + +- Collision Enhancements [\#4784](https://github.com/primefaces/primevue/issues/4784) +- TabMenu/Steps: active option for item templating [\#4780](https://github.com/primefaces/primevue/issues/4780) +- PanelMenu: root option for item templating [\#4779](https://github.com/primefaces/primevue/issues/4779) +- Steps: new activeStep property [\#4778](https://github.com/primefaces/primevue/issues/4778) +- ContextMenu: hasSubmenu options for item templating [\#4764](https://github.com/primefaces/primevue/issues/4764) +- TieredMenu: New start and end templating [\#4760](https://github.com/primefaces/primevue/issues/4760) +- PanelMenu: active options for item templating [\#4750](https://github.com/primefaces/primevue/issues/4750) +- New InputGroup Component [\#4742](https://github.com/primefaces/primevue/issues/4742) + +## [3.39.0](https://github.com/primefaces/primevue/tree/3.39.0) (2023-11-01) + +[Full Changelog](https://github.com/primefaces/primevue/compare/3.38.1...3.39.0) + +**Breaking Changes:** + +- Change slot parameter function name on* to *CallBack [\#4728](https://github.com/primefaces/primevue/issues/4728) + +**Fixed bugs:** + +- ConfirmPopup: arrow defect [\#4730](https://github.com/primefaces/primevue/issues/4730) +- Overlaypanel: Overlaypanel closes when any key is pressed [\#4712](https://github.com/primefaces/primevue/issues/4712) +- Steps: Property 'step' does not exist on type 'StepsRouterBindProps'. [\#4703](https://github.com/primefaces/primevue/issues/4703) +- Datatable: Cannot set properties of null (setting 'tabIndex') [\#4498](https://github.com/primefaces/primevue/issues/4498) +- Menubar: Custom locale config overwriting default untouched config properties [\#4270](https://github.com/primefaces/primevue/issues/4270) + +**Implemented New Features and Enhancements:** + +- SplitButton: new buttoncontent and item slots [\#4729](https://github.com/primefaces/primevue/issues/4729) +- Datatable: Lara Dark Theme Color Inconsistencies [\#4714](https://github.com/primefaces/primevue/issues/4714) + ## [3.38.1](https://github.com/primefaces/primevue/tree/3.38.1) (2023-10-26) [Full Changelog](https://github.com/primefaces/primevue/compare/3.38.0...3.38.1) **Fixed bugs:** -- The package was not published correctly [\#4697](https://github.com/primefaces/primevue/issues/4697) + +- The package was not published correctly [\#4697](https://github.com/primefaces/primevue/issues/4697) ## [3.38.0](https://github.com/primefaces/primevue/tree/3.38.0) (2023-10-26) diff --git a/api-generator/build-apidoc.js b/api-generator/build-apidoc.js index 00d5490d4..3a9d1413e 100644 --- a/api-generator/build-apidoc.js +++ b/api-generator/build-apidoc.js @@ -398,7 +398,11 @@ if (project) { functionParameters += `${param.name}: ${param.type?.name}`; }); - type += `\t ${child.name}: (${functionParameters}) ⇒ ${child.type?.declaration?.signatures[0]?.type?.name}, // ${child.type?.declaration?.signatures[0]?.comment.summary[0]?.text}\n`; + if (child.type?.declaration?.signatures[0]?.comment?.getTag('@deprecated')?.content[0]?.text) { + type += `\t ${child.name}: (${functionParameters}) ⇒ ${child.type?.declaration?.signatures[0]?.type?.name}, // ${child.type?.declaration?.signatures[0]?.comment.summary[0]?.text}\n`; + } else { + type += `\t ${child.name}: (${functionParameters}) ⇒ ${child.type?.declaration?.signatures[0]?.type?.name}, // ${child.type?.declaration?.signatures[0]?.comment.summary[0]?.text}\n`; + } } else { const childType = child.type.elementType ? child.type.elementType.name : child.type.name; diff --git a/api-generator/components/breadcrumb.js b/api-generator/components/breadcrumb.js index 19625575f..84e1c106f 100644 --- a/api-generator/components/breadcrumb.js +++ b/api-generator/components/breadcrumb.js @@ -11,12 +11,6 @@ const BreadcrumbProps = [ default: 'null', description: 'Configuration for the home icon.' }, - { - name: 'exact', - type: 'boolean', - default: 'true', - description: "Whether to apply 'router-link-active-exact' class if route exactly matches the item path." - }, { name: 'pt', type: 'any', diff --git a/api-generator/components/contextmenu.js b/api-generator/components/contextmenu.js index 9db7ca40d..b4cb01189 100644 --- a/api-generator/components/contextmenu.js +++ b/api-generator/components/contextmenu.js @@ -29,12 +29,6 @@ const ContextMenuProps = [ default: 'false', description: 'Attaches the menu to document instead of a particular item.' }, - { - name: 'exact', - type: 'boolean', - default: 'true', - description: "Whether to apply 'router-link-active-exact' class if route exactly matches the item path." - }, { name: 'pt', type: 'any', diff --git a/api-generator/components/dock.js b/api-generator/components/dock.js index f2b6044e6..9d4b79c9d 100644 --- a/api-generator/components/dock.js +++ b/api-generator/components/dock.js @@ -23,12 +23,6 @@ const DockProps = [ default: 'null', description: 'Inline style of the element.' }, - { - name: 'exact', - type: 'boolean', - default: 'true', - description: "Whether to apply 'router-link-active-exact' class if route exactly matches the item path." - }, { name: 'tooltipOptions', type: 'object', diff --git a/api-generator/components/megamenu.js b/api-generator/components/megamenu.js index c98c46026..f65e14042 100644 --- a/api-generator/components/megamenu.js +++ b/api-generator/components/megamenu.js @@ -11,12 +11,6 @@ const MegaMenuProps = [ default: 'horizontal', description: 'Defines the orientation, valid values are horizontal and vertical.' }, - { - name: 'exact', - type: 'boolean', - default: 'true', - description: "Whether to apply 'router-link-active-exact' class if route exactly matches the item path." - }, { name: 'pt', type: 'any', diff --git a/api-generator/components/menu.js b/api-generator/components/menu.js index 11fd4ab7b..d657acac3 100644 --- a/api-generator/components/menu.js +++ b/api-generator/components/menu.js @@ -29,12 +29,6 @@ const MenuProps = [ default: 'true', description: 'Whether to automatically manage layering.' }, - { - name: 'exact', - type: 'boolean', - default: 'true', - description: "Whether to apply 'router-link-active-exact' class if route exactly matches the item path." - }, { name: 'pt', type: 'any', @@ -63,11 +57,11 @@ const MenuEvents = [ const MenuSlots = [ { name: 'start', - description: 'Custom content before the content' + description: 'Custom start content.' }, { name: 'end', - description: 'Custom content after the content' + description: 'Custom end content.' }, { name: 'item', @@ -79,7 +73,7 @@ const MenuSlots = [ }, { name: 'submenuheader', - description: 'Custom submenuheader template.' + description: 'Custom submenu header template.' } ]; diff --git a/api-generator/components/menubar.js b/api-generator/components/menubar.js index 90ef2b5f5..446760098 100644 --- a/api-generator/components/menubar.js +++ b/api-generator/components/menubar.js @@ -5,12 +5,6 @@ const MenubarProps = [ default: 'null', description: 'An array of menuitems.' }, - { - name: 'exact', - type: 'boolean', - default: 'true', - description: "Whether to apply 'router-link-active-exact' class if route exactly matches the item path." - }, { name: 'pt', type: 'any', diff --git a/api-generator/components/panelmenu.js b/api-generator/components/panelmenu.js index c0a2ab7e8..d1a2c8863 100644 --- a/api-generator/components/panelmenu.js +++ b/api-generator/components/panelmenu.js @@ -11,12 +11,6 @@ const PanelMenuProps = [ default: 'null', description: 'A map of keys to represent the expansion state in controlled mode.' }, - { - name: 'exact', - type: 'boolean', - default: 'true', - description: "Whether to apply 'router-link-active-exact' class if route exactly matches the item path." - }, { name: 'pt', type: 'any', diff --git a/api-generator/components/steps.js b/api-generator/components/steps.js index 07df23eaf..f1db20305 100644 --- a/api-generator/components/steps.js +++ b/api-generator/components/steps.js @@ -11,18 +11,18 @@ const StepsProps = [ default: 'null', description: 'An array of menuitems.' }, + { + name: 'activeStep', + type: 'number', + default: '0', + description: 'Active step index of menuitem.' + }, { name: 'readonly', type: 'boolean', default: 'true', description: 'Whether the items are clickable or not.' }, - { - name: 'exact', - type: 'boolean', - default: 'true', - description: "Whether to apply 'router-link-active-exact' class if route exactly matches the item path." - }, { name: 'pt', type: 'any', diff --git a/api-generator/components/tabmenu.js b/api-generator/components/tabmenu.js index 10800fedf..8a114e519 100644 --- a/api-generator/components/tabmenu.js +++ b/api-generator/components/tabmenu.js @@ -5,12 +5,6 @@ const TabMenuProps = [ default: 'null', description: 'An array of menuitems.' }, - { - name: 'exact', - type: 'boolean', - default: 'true', - description: 'Defines if active route highlight should match the exact route path.' - }, { name: 'activeIndex', type: 'number', diff --git a/api-generator/components/tieredmenu.js b/api-generator/components/tieredmenu.js index dfb717d2c..3aced9452 100644 --- a/api-generator/components/tieredmenu.js +++ b/api-generator/components/tieredmenu.js @@ -29,12 +29,6 @@ const TieredMenuProps = [ default: 'true', description: 'Whether to automatically manage layering.' }, - { - name: 'exact', - type: 'boolean', - default: 'true', - description: "Whether to apply 'router-link-active-exact' class if route exactly matches the item path." - }, { name: 'pt', type: 'any', @@ -50,6 +44,14 @@ const TieredMenuProps = [ ]; const TieredMenuSlots = [ + { + name: 'start', + description: 'Custom start content.' + }, + { + name: 'end', + description: 'Custom end content.' + }, { name: 'item', description: 'Template of a menuitem.' diff --git a/assets/styles/layout/_code.scss b/assets/styles/layout/_code.scss index f872d088f..28663ba97 100644 --- a/assets/styles/layout/_code.scss +++ b/assets/styles/layout/_code.scss @@ -119,10 +119,6 @@ pre[class*="language-"] { .token.entity { cursor: help; } - - .token.namespace { - opacity: .7; - } } } diff --git a/components/doc/DocApiTable.vue b/components/doc/DocApiTable.vue index 6b443d38f..f9b99f517 100644 --- a/components/doc/DocApiTable.vue +++ b/components/doc/DocApiTable.vue @@ -107,7 +107,7 @@ export default { } return value?.split('|').map((item) => { - return item.replace(/(\[|\]|<|>).*$/gm, '').trim(); + return item.replace(/(\|\|<|>).*$/gm, '').trim(); }); }, isLinkType(value) { diff --git a/components/doc/codeeditor/templates.js b/components/doc/codeeditor/templates.js index 370fe1143..06367e259 100644 --- a/components/doc/codeeditor/templates.js +++ b/components/doc/codeeditor/templates.js @@ -2,7 +2,7 @@ import pkg from '../../../package.json'; import { services } from './services'; const PrimeVue = { - version: '^3.38.0', + version: '^3.40.0', description: 'PrimeVue is an open source UI library for Vue featuring a rich set of 80+ components, a theme designer, various theme alternatives such as Material, Bootstrap, Tailwind, premium templates and professional support. In addition, it integrates with PrimeBlock, which has 400+ ready to use UI blocks to build spectacular applications in no time.' }; @@ -148,6 +148,7 @@ import PrimeVue from "primevue/config"; import AutoComplete from 'primevue/autocomplete'; import Accordion from 'primevue/accordion'; import AccordionTab from 'primevue/accordiontab'; +import AnimateOnScroll from 'primevue/animateonscroll'; import Avatar from 'primevue/avatar'; import AvatarGroup from 'primevue/avatargroup'; import Badge from 'primevue/badge'; @@ -256,6 +257,7 @@ app.directive('badge', BadgeDirective); app.directive('ripple', Ripple); app.directive('styleclass', StyleClass); app.directive('focustrap', FocusTrap); +app.directive('animateonscroll', AnimateOnScroll); app.component('Accordion', Accordion); app.component('AccordionTab', AccordionTab); diff --git a/components/lib/accordion/Accordion.d.ts b/components/lib/accordion/Accordion.d.ts index b27c2667b..b3f3fece9 100755 --- a/components/lib/accordion/Accordion.d.ts +++ b/components/lib/accordion/Accordion.d.ts @@ -85,7 +85,7 @@ export interface AccordionPassThroughOptions { */ accordiontab?: AccordionTabPassThroughOptionType; /** - * Used to manage all lifecycle hooks + * Used to manage all lifecycle hooks. * @see {@link BaseComponent.ComponentHooks} */ hooks?: ComponentHooks; diff --git a/components/lib/accordion/Accordion.vue b/components/lib/accordion/Accordion.vue index f7903594e..601382f12 100755 --- a/components/lib/accordion/Accordion.vue +++ b/components/lib/accordion/Accordion.vue @@ -20,7 +20,7 @@ @keydown="onTabKeyDown($event, tab, i)" v-bind="{ ...getTabProp(tab, 'headeractionprops'), ...getTabPT(tab, 'headeraction', i) }" > - + void; + /** + * Whether the tab is active + * @param {number} index - Index of the tab + */ + active: (index: number) => void; }): VNode[]; } diff --git a/components/lib/animateonscroll/AnimateOnScroll.d.ts b/components/lib/animateonscroll/AnimateOnScroll.d.ts index 24604896a..d476fd7e8 100644 --- a/components/lib/animateonscroll/AnimateOnScroll.d.ts +++ b/components/lib/animateonscroll/AnimateOnScroll.d.ts @@ -40,7 +40,7 @@ export interface AnimateOnScrollOptions { */ export interface AnimateOnScrollDirectivePassThroughOptions { /** - * Used to manage all lifecycle hooks + * Used to manage all lifecycle hooks. * @see {@link BaseDirective.DirectiveHooks} */ hooks?: DirectiveHooks; @@ -66,7 +66,7 @@ export interface AnimateOnScrollDirectiveBinding extends Omit void; + /** + * Remove token icon function. + * @param {Event} event - Browser event + */ + removeCallback: (event: Event, index: number) => void; }): VNode[]; /** * Custom loading icon template. diff --git a/components/lib/autocomplete/AutoComplete.vue b/components/lib/autocomplete/AutoComplete.vue index 5b262baad..a70474dfe 100755 --- a/components/lib/autocomplete/AutoComplete.vue +++ b/components/lib/autocomplete/AutoComplete.vue @@ -55,7 +55,7 @@ {{ getOptionLabel(option) }} - + diff --git a/components/lib/avatar/Avatar.d.ts b/components/lib/avatar/Avatar.d.ts index 8a8769f60..ed21e61e7 100644 --- a/components/lib/avatar/Avatar.d.ts +++ b/components/lib/avatar/Avatar.d.ts @@ -65,7 +65,7 @@ export interface AvatarPassThroughOptions { */ image?: AvatarPassThroughOptionType; /** - * Used to manage all lifecycle hooks + * Used to manage all lifecycle hooks. * @see {@link BaseComponent.ComponentHooks} */ hooks?: ComponentHooks; diff --git a/components/lib/avatargroup/AvatarGroup.d.ts b/components/lib/avatargroup/AvatarGroup.d.ts index e4d86f3d3..f4589827d 100644 --- a/components/lib/avatargroup/AvatarGroup.d.ts +++ b/components/lib/avatargroup/AvatarGroup.d.ts @@ -30,7 +30,7 @@ export interface AvatarGroupPassThroughOptions { */ root?: AvatarGroupPassThroughOptionType; /** - * Used to manage all lifecycle hooks + * Used to manage all lifecycle hooks. * @see {@link BaseComponent.ComponentHooks} */ hooks?: ComponentHooks; diff --git a/components/lib/badge/Badge.d.ts b/components/lib/badge/Badge.d.ts index 8748bc900..b91687a8b 100644 --- a/components/lib/badge/Badge.d.ts +++ b/components/lib/badge/Badge.d.ts @@ -49,7 +49,7 @@ export interface BadgePassThroughOptions { */ root?: BadgePassThroughOptionType; /** - * Used to manage all lifecycle hooks + * Used to manage all lifecycle hooks. * @see {@link BaseComponent.ComponentHooks} */ hooks?: ComponentHooks; diff --git a/components/lib/badgedirective/BadgeDirective.d.ts b/components/lib/badgedirective/BadgeDirective.d.ts index e0c1cfd42..6fd22400c 100644 --- a/components/lib/badgedirective/BadgeDirective.d.ts +++ b/components/lib/badgedirective/BadgeDirective.d.ts @@ -55,7 +55,7 @@ export interface BadgeDirectivePassThroughOptions { */ root?: BadgeDirectivePassThroughOptionType; /** - * Used to manage all lifecycle hooks + * Used to manage all lifecycle hooks. * @see {@link BaseDirective.DirectiveHooks} */ hooks?: DirectiveHooks; diff --git a/components/lib/blockui/BlockUI.d.ts b/components/lib/blockui/BlockUI.d.ts index 18b15126c..e8819a7fb 100755 --- a/components/lib/blockui/BlockUI.d.ts +++ b/components/lib/blockui/BlockUI.d.ts @@ -50,7 +50,7 @@ export interface BlockUIPassThroughOptions { */ mask?: BlockUIPassThroughOptionType; /** - * Used to manage all lifecycle hooks + * Used to manage all lifecycle hooks. * @see {@link BaseComponent.ComponentHooks} */ hooks?: ComponentHooks; diff --git a/components/lib/breadcrumb/BaseBreadcrumb.vue b/components/lib/breadcrumb/BaseBreadcrumb.vue index 4d61e8ebc..4ce380886 100644 --- a/components/lib/breadcrumb/BaseBreadcrumb.vue +++ b/components/lib/breadcrumb/BaseBreadcrumb.vue @@ -13,10 +13,6 @@ export default { home: { type: null, default: null - }, - exact: { - type: Boolean, - default: true } }, style: BreadcrumbStyle, diff --git a/components/lib/breadcrumb/Breadcrumb.d.ts b/components/lib/breadcrumb/Breadcrumb.d.ts index fb2efc485..f383b03c6 100755 --- a/components/lib/breadcrumb/Breadcrumb.d.ts +++ b/components/lib/breadcrumb/Breadcrumb.d.ts @@ -75,7 +75,7 @@ export interface BreadcrumbPassThroughOptions { */ separatorIcon?: BreadcrumbPassThroughOptionType; /** - * Used to manage all lifecycle hooks + * Used to manage all lifecycle hooks. * @see {@link BaseComponent.ComponentHooks} */ hooks?: ComponentHooks; @@ -134,6 +134,7 @@ export interface BreadcrumbProps { home?: MenuItem | undefined; /** * Whether to apply 'router-link-active-exact' class if route exactly matches the item path. + * @deprecated since v3.40.0. * @defaultValue true */ exact?: boolean | undefined; diff --git a/components/lib/breadcrumb/Breadcrumb.vue b/components/lib/breadcrumb/Breadcrumb.vue index 1b1158f57..cb3ecd280 100755 --- a/components/lib/breadcrumb/Breadcrumb.vue +++ b/components/lib/breadcrumb/Breadcrumb.vue @@ -1,14 +1,14 @@