From cf144c8165de580d960b745e9d4790e1587c4b85 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bahad=C4=B1r=20Sofuo=C4=9Flu?= Date: Tue, 30 May 2023 13:19:28 +0300 Subject: [PATCH 01/23] Update #3965 - For Badge --- components/lib/badge/BaseBadge.vue | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/components/lib/badge/BaseBadge.vue b/components/lib/badge/BaseBadge.vue index 297a8bb6a..fdfcc5bd4 100644 --- a/components/lib/badge/BaseBadge.vue +++ b/components/lib/badge/BaseBadge.vue @@ -39,11 +39,11 @@ const styles = ` `; const classes = { - root: ({ props }) => [ + root: ({ props, instance }) => [ 'p-badge p-component', { 'p-badge-no-gutter': ObjectUtils.isNotEmpty(props.value) && String(props.value).length === 1, - 'p-badge-dot': ObjectUtils.isEmpty(props.value) && !props.$slots.default, + 'p-badge-dot': ObjectUtils.isEmpty(props.value) && !instance.$slots.default, 'p-badge-lg': props.size === 'large', 'p-badge-xl': props.size === 'xlarge', 'p-badge-info': props.severity === 'info', From 911c4de1fe38d83f56329aecee717bd310cf89fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bahad=C4=B1r=20Sofuo=C4=9Flu?= Date: Tue, 30 May 2023 13:19:48 +0300 Subject: [PATCH 02/23] Rollup updated for useStyle --- rollup.config.js | 1 + 1 file changed, 1 insertion(+) diff --git a/rollup.config.js b/rollup.config.js index 1a110952d..50218ea8d 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -245,6 +245,7 @@ function addServices() { addEntry('toasteventbus', 'ToastEventBus.js', 'toasteventbus'); addEntry('overlayeventbus', 'OverlayEventBus.js', 'overlayeventbus'); addEntry('usetoast', 'UseToast.js', 'usetoast'); + addEntry('usestyle', 'UseStyle.js', 'usestyle'); addEntry('terminalservice', 'TerminalService.js', 'terminalservice'); addEntry('usedialog', 'UseDialog.js', 'usedialog'); addEntry('dialogservice', 'DialogService.js', 'dialogservice'); From b6ec58de6547b254562644fed466e591e22c25f5 Mon Sep 17 00:00:00 2001 From: mertsincan Date: Tue, 30 May 2023 12:03:42 +0100 Subject: [PATCH 03/23] Refactor #3965 - Update Base components --- components/lib/accordion/BaseAccordion.vue | 16 +++++++--------- components/lib/accordiontab/BaseAccordionTab.vue | 5 +++++ components/lib/autocomplete/AutoComplete.vue | 2 +- components/lib/autocomplete/BaseAutoComplete.vue | 16 +++++++--------- components/lib/calendar/BaseCalendar.vue | 16 +++++++--------- components/lib/checkbox/BaseCheckbox.vue | 16 +++++++--------- components/lib/chips/BaseChips.vue | 16 +++++++--------- components/lib/colorpicker/BaseColorPicker.vue | 16 +++++++--------- components/lib/dropdown/BaseDropdown.vue | 16 +++++++--------- components/lib/fieldset/BaseFieldset.vue | 16 +++++++--------- 10 files changed, 62 insertions(+), 73 deletions(-) diff --git a/components/lib/accordion/BaseAccordion.vue b/components/lib/accordion/BaseAccordion.vue index 7880a763a..3d1d18657 100644 --- a/components/lib/accordion/BaseAccordion.vue +++ b/components/lib/accordion/BaseAccordion.vue @@ -45,7 +45,7 @@ const classes = { } }; -const { load: loadStyle, unload: unloadStyle } = useStyle(styles, { id: 'primevue_accordion_style', manual: true }); +const { load: loadStyle } = useStyle(styles, { id: 'primevue_accordion_style', manual: true }); export default { name: 'BaseAccordion', @@ -81,15 +81,13 @@ export default { } }, css: { - classes + classes, + loadStyle }, - watch: { - isUnstyled: { - immediate: true, - handler(newValue) { - !newValue && loadStyle(); - } - } + provide() { + return { + $parentInstance: this + }; } }; diff --git a/components/lib/accordiontab/BaseAccordionTab.vue b/components/lib/accordiontab/BaseAccordionTab.vue index 298d02d7b..4426ba212 100644 --- a/components/lib/accordiontab/BaseAccordionTab.vue +++ b/components/lib/accordiontab/BaseAccordionTab.vue @@ -14,6 +14,11 @@ export default { contentClass: null, contentProps: null, disabled: Boolean + }, + provide() { + return { + $parentInstance: this + }; } }; diff --git a/components/lib/autocomplete/AutoComplete.vue b/components/lib/autocomplete/AutoComplete.vue index 6c33e8073..3ebb8b52c 100755 --- a/components/lib/autocomplete/AutoComplete.vue +++ b/components/lib/autocomplete/AutoComplete.vue @@ -146,7 +146,7 @@ @click="onOptionSelect($event, option)" @mousemove="onOptionMouseMove($event, getOptionIndex(i, getItemOptions))" :data-p-highlight="isSelected(option)" - :data-p-focus="focusedOptionIndex === getOptionIndex(index, getItemOptions)" + :data-p-focus="focusedOptionIndex === getOptionIndex(i, getItemOptions)" :data-p-disabled="isOptionDisabled(option)" v-bind="getPTOptions(option, getItemOptions, i, 'item')" > diff --git a/components/lib/autocomplete/BaseAutoComplete.vue b/components/lib/autocomplete/BaseAutoComplete.vue index 90bc9a05a..706a545ba 100644 --- a/components/lib/autocomplete/BaseAutoComplete.vue +++ b/components/lib/autocomplete/BaseAutoComplete.vue @@ -148,7 +148,7 @@ const classes = { hiddenSelectedMessage: 'p-hidden-accessible' }; -const { load: loadStyle, unload: unloadStyle } = useStyle(styles, { id: 'primevue_autocomplete_style', manual: true }); +const { load: loadStyle } = useStyle(styles, { id: 'primevue_autocomplete_style', manual: true }); export default { name: 'BaseAutoComplete', @@ -312,15 +312,13 @@ export default { }, css: { classes, - inlineStyles + inlineStyles, + loadStyle }, - watch: { - isUnstyled: { - immediate: true, - handler(newValue) { - !newValue && loadStyle(); - } - } + provide() { + return { + $parentInstance: this + }; } }; diff --git a/components/lib/calendar/BaseCalendar.vue b/components/lib/calendar/BaseCalendar.vue index 52a6c9614..1c084f7a4 100644 --- a/components/lib/calendar/BaseCalendar.vue +++ b/components/lib/calendar/BaseCalendar.vue @@ -222,7 +222,7 @@ const classes = { clearButton: 'p-button-text' }; -const { load: loadStyle, unload: unloadStyle } = useStyle(styles, { id: 'primevue_calendar_style', manual: true }); +const { load: loadStyle } = useStyle(styles, { id: 'primevue_calendar_style', manual: true }); export default { name: 'BaseCalendar', @@ -445,15 +445,13 @@ export default { }, css: { inlineStyles, - classes + classes, + loadStyle }, - watch: { - isUnstyled: { - immediate: true, - handler(newValue) { - !newValue && loadStyle(); - } - } + provide() { + return { + $parentInstance: this + }; } }; diff --git a/components/lib/checkbox/BaseCheckbox.vue b/components/lib/checkbox/BaseCheckbox.vue index 35c96539e..b4f287e72 100644 --- a/components/lib/checkbox/BaseCheckbox.vue +++ b/components/lib/checkbox/BaseCheckbox.vue @@ -43,7 +43,7 @@ const classes = { icon: 'p-checkbox-icon' }; -const { load: loadStyle, unload: unloadStyle } = useStyle(styles, { id: 'primevue_checkbox_style', manual: true }); +const { load: loadStyle } = useStyle(styles, { id: 'primevue_checkbox_style', manual: true }); export default { name: 'BaseCheckbox', @@ -106,15 +106,13 @@ export default { } }, css: { - classes + classes, + loadStyle }, - watch: { - isUnstyled: { - immediate: true, - handler(newValue) { - !newValue && loadStyle(); - } - } + provide() { + return { + $parentInstance: this + }; } }; diff --git a/components/lib/chips/BaseChips.vue b/components/lib/chips/BaseChips.vue index dc217a0d5..b9307501d 100644 --- a/components/lib/chips/BaseChips.vue +++ b/components/lib/chips/BaseChips.vue @@ -67,7 +67,7 @@ const classes = { inputToken: 'p-chips-input-token' }; -const { load: loadStyle, unload: unloadStyle } = useStyle(styles, { id: 'primevue_chips_style', manual: true }); +const { load: loadStyle } = useStyle(styles, { id: 'primevue_chips_style', manual: true }); export default { name: 'BaseChips', @@ -131,15 +131,13 @@ export default { } }, css: { - classes + classes, + loadStyle }, - watch: { - isUnstyled: { - immediate: true, - handler(newValue) { - !newValue && loadStyle(); - } - } + provide() { + return { + $parentInstance: this + }; } }; diff --git a/components/lib/colorpicker/BaseColorPicker.vue b/components/lib/colorpicker/BaseColorPicker.vue index a5b12c034..dcff42087 100644 --- a/components/lib/colorpicker/BaseColorPicker.vue +++ b/components/lib/colorpicker/BaseColorPicker.vue @@ -32,7 +32,7 @@ const classes = { hueHandle: 'p-colorpicker-hue-handle' }; -const { load: loadStyle, unload: unloadStyle } = useStyle(styles, { id: 'primevue_colorpicker_style', manual: true }); +const { load: loadStyle } = useStyle(styles, { id: 'primevue_colorpicker_style', manual: true }); export default { name: 'BaseColorPicker', @@ -77,15 +77,13 @@ export default { panelClass: null }, css: { - classes + classes, + loadStyle }, - watch: { - isUnstyled: { - immediate: true, - handler(newValue) { - !newValue && loadStyle(); - } - } + provide() { + return { + $parentInstance: this + }; } }; diff --git a/components/lib/dropdown/BaseDropdown.vue b/components/lib/dropdown/BaseDropdown.vue index 4d6e45e9b..14757dd71 100644 --- a/components/lib/dropdown/BaseDropdown.vue +++ b/components/lib/dropdown/BaseDropdown.vue @@ -153,7 +153,7 @@ const classes = { hiddenLastFocusableEl: 'p-hidden-accessible p-hidden-focusable' }; -const { load: loadStyle, unload: unloadStyle } = useStyle(styles, { id: 'primevue_dropdown_style', manual: true }); +const { load: loadStyle } = useStyle(styles, { id: 'primevue_dropdown_style', manual: true }); export default { name: 'BaseDropdown', @@ -310,15 +310,13 @@ export default { }, css: { inlineStyles, - classes + classes, + loadStyle }, - watch: { - isUnstyled: { - immediate: true, - handler(newValue) { - !newValue && loadStyle(); - } - } + provide() { + return { + $parentInstance: this + }; } }; diff --git a/components/lib/fieldset/BaseFieldset.vue b/components/lib/fieldset/BaseFieldset.vue index e327f229d..4add0b86c 100644 --- a/components/lib/fieldset/BaseFieldset.vue +++ b/components/lib/fieldset/BaseFieldset.vue @@ -38,7 +38,7 @@ const classes = { content: 'p-fieldset-content' }; -const { load: loadStyle, unload: unloadStyle } = useStyle(styles, { id: 'primevue_fieldset_style', manual: true }); +const { load: loadStyle } = useStyle(styles, { id: 'primevue_fieldset_style', manual: true }); export default { name: 'BaseFieldset', @@ -53,15 +53,13 @@ export default { } }, css: { - classes + classes, + loadStyle }, - watch: { - isUnstyled: { - immediate: true, - handler(newValue) { - !newValue && loadStyle(); - } - } + provide() { + return { + $parentInstance: this + }; } }; From 751295c7551291d964ba27911e5e8cf4b7cb7344 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tu=C4=9F=C3=A7e=20K=C3=BC=C3=A7=C3=BCko=C4=9Flu?= Date: Tue, 30 May 2023 14:06:57 +0300 Subject: [PATCH 04/23] Refactor #3965 - Update Base components --- .../lib/contextmenu/BaseContextMenu.vue | 28 +++++----- components/lib/contextmenu/ContextMenuSub.vue | 38 ++++++------- components/lib/editor/BaseEditor.vue | 16 +++--- .../lib/inputnumber/BaseInputNumber.vue | 16 +++--- .../lib/inputswitch/BaseInputSwitch.vue | 16 +++--- components/lib/inputtext/BaseInputText.vue | 16 +++--- components/lib/knob/BaseKnob.vue | 16 +++--- components/lib/listbox/BaseListbox.vue | 16 +++--- components/lib/megamenu/BaseMegaMenu.vue | 38 +++++++------ components/lib/megamenu/MegaMenuSub.vue | 54 ++++++++----------- components/lib/menu/BaseMenu.vue | 26 +++++---- components/lib/menu/Menuitem.vue | 30 +++++------ components/lib/menubar/BaseMenubar.vue | 30 +++++------ components/lib/menubar/MenubarSub.vue | 46 ++++++---------- .../lib/multiselect/BaseMultiSelect.vue | 16 +++--- components/lib/panelmenu/BasePanelMenu.vue | 26 +++++---- components/lib/panelmenu/PanelMenuList.vue | 12 ++--- components/lib/panelmenu/PanelMenuSub.vue | 40 ++++++-------- components/lib/password/BasePassword.vue | 16 +++--- components/lib/splitter/BaseSplitter.vue | 16 +++--- .../lib/splitterpanel/BaseSplitterPanel.vue | 16 +++--- components/lib/tabview/BaseTabView.vue | 16 +++--- components/lib/tieredmenu/BaseTieredMenu.vue | 30 +++++------ components/lib/tieredmenu/TieredMenuSub.vue | 46 ++++++---------- components/lib/tree/BaseTree.vue | 16 +++--- components/lib/tree/TreeNode.vue | 4 +- components/lib/treeselect/BaseTreeSelect.vue | 16 +++--- 27 files changed, 279 insertions(+), 377 deletions(-) diff --git a/components/lib/contextmenu/BaseContextMenu.vue b/components/lib/contextmenu/BaseContextMenu.vue index e62cfe3ce..616be7cd8 100644 --- a/components/lib/contextmenu/BaseContextMenu.vue +++ b/components/lib/contextmenu/BaseContextMenu.vue @@ -54,20 +54,20 @@ const classes = { } ], menu: 'p-contextmenu-root-list', - menuitem: ({ context, processedItem }) => [ + menuitem: ({ instance, processedItem }) => [ 'p-menuitem', { - 'p-menuitem-active p-highlight': context.isItemActive(processedItem), - 'p-focus': context.isItemFocused(processedItem), - 'p-disabled': context.isItemDisabled(processedItem) + 'p-menuitem-active p-highlight': instance.isItemActive(processedItem), + 'p-focus': instance.isItemFocused(processedItem), + 'p-disabled': instance.isItemDisabled(processedItem) } ], content: 'p-menuitem-content', - action: ({ context, isActive, isExactActive }) => [ + action: ({ instance, isActive, isExactActive }) => [ 'p-menuitem-link', { 'router-link-active': isActive, - 'router-link-active-exact': context.exact && isExactActive + 'router-link-active-exact': instance.exact && isExactActive } ], icon: 'p-menuitem-icon', @@ -77,7 +77,7 @@ const classes = { separator: 'p-menuitem-separator' }; -const { load: loadStyle, unload: unloadStyle } = useStyle(styles, { id: 'primevue_contextmenu_style', manual: true }); +const { load: loadStyle } = useStyle(styles, { id: 'primevue_contextmenu_style', manual: true }); export default { name: 'BaseContextMenu', @@ -121,15 +121,13 @@ export default { } }, css: { - classes + classes, + loadStyle }, - watch: { - isUnstyled: { - immediate: true, - handler(newValue) { - !newValue && loadStyle(); - } - } + provide() { + return { + $parentInstance: this + }; } }; diff --git a/components/lib/contextmenu/ContextMenuSub.vue b/components/lib/contextmenu/ContextMenuSub.vue index 5d3d41fa5..58f1600b3 100755 --- a/components/lib/contextmenu/ContextMenuSub.vue +++ b/components/lib/contextmenu/ContextMenuSub.vue @@ -6,7 +6,7 @@ v-if="isItemVisible(processedItem) && !getItemProp(processedItem, 'separator')" :id="getItemId(processedItem)" :style="getItemProp(processedItem, 'style')" - :class="[getCXOptions('menuitem', { processedItem }), getItemProp(processedItem, 'class')]" + :class="[cx('menuitem', { processedItem }), getItemProp(processedItem, 'class')]" role="menuitem" :aria-label="getItemLabel(processedItem)" :aria-disabled="isItemDisabled(processedItem) || undefined" @@ -20,22 +20,22 @@ :data-p-focused="isItemFocused(processedItem)" :data-p-disabled="isItemDisabled(processedItem)" > -
+
@@ -45,7 +45,7 @@ v-if="isItemVisible(processedItem) && isItemGroup(processedItem)" :id="getItemId(processedItem) + '_list'" role="menu" - :class="getCXOptions('submenu')" + :class="cx('submenu')" :menuId="menuId" :focusedItemId="focusedItemId" :items="processedItem.items" @@ -64,7 +64,7 @@ v-if="isItemVisible(processedItem) && getItemProp(processedItem, 'separator')" :id="getItemId(processedItem)" :style="getItemProp(processedItem, 'style')" - :class="[getCXOptions('separator'), getItemProp(processedItem, 'class')]" + :class="[cx('separator'), getItemProp(processedItem, 'class')]" role="separator" v-bind="ptm('separator')" > @@ -74,14 +74,14 @@ diff --git a/components/lib/inputnumber/BaseInputNumber.vue b/components/lib/inputnumber/BaseInputNumber.vue index f16bbb392..2ea01ddf0 100644 --- a/components/lib/inputnumber/BaseInputNumber.vue +++ b/components/lib/inputnumber/BaseInputNumber.vue @@ -132,7 +132,7 @@ const classes = { ] }; -const { load: loadStyle, unload: unloadStyle } = useStyle(styles, { id: 'primevue_inputnumber_style', manual: true }); +const { load: loadStyle } = useStyle(styles, { id: 'primevue_inputnumber_style', manual: true }); export default { name: 'BaseInputNumber', @@ -276,15 +276,13 @@ export default { } }, css: { - classes + classes, + loadStyle }, - watch: { - isUnstyled: { - immediate: true, - handler(newValue) { - !newValue && loadStyle(); - } - } + provide() { + return { + $parentInstance: this + }; } }; diff --git a/components/lib/inputswitch/BaseInputSwitch.vue b/components/lib/inputswitch/BaseInputSwitch.vue index ca7ee7e64..a78a88906 100644 --- a/components/lib/inputswitch/BaseInputSwitch.vue +++ b/components/lib/inputswitch/BaseInputSwitch.vue @@ -41,7 +41,7 @@ const classes = { slider: 'p-inputswitch-slider' }; -const { load: loadStyle, unload: unloadStyle } = useStyle(styles, { id: 'primevue_inputswitch_style', manual: true }); +const { load: loadStyle } = useStyle(styles, { id: 'primevue_inputswitch_style', manual: true }); export default { name: 'BaseInputSwitch', @@ -90,15 +90,13 @@ export default { }, css: { classes, - inlineStyles + inlineStyles, + loadStyle }, - watch: { - isUnstyled: { - immediate: true, - handler(newValue) { - !newValue && loadStyle(); - } - } + provide() { + return { + $parentInstance: this + }; } }; diff --git a/components/lib/inputtext/BaseInputText.vue b/components/lib/inputtext/BaseInputText.vue index edce7469d..b23b1f2be 100644 --- a/components/lib/inputtext/BaseInputText.vue +++ b/components/lib/inputtext/BaseInputText.vue @@ -116,7 +116,7 @@ const classes = { root: ({ instance }) => ['p-inputtext p-component', { 'p-filled': instance.filled }] }; -const { load: loadStyle, unload: unloadStyle } = useStyle(styles, { id: 'primevue_inputtext_style', manual: true }); +const { load: loadStyle } = useStyle(styles, { id: 'primevue_inputtext_style', manual: true }); export default { name: 'BaseInputText', @@ -125,15 +125,13 @@ export default { modelValue: null }, css: { - classes + classes, + loadStyle }, - watch: { - isUnstyled: { - immediate: true, - handler(newValue) { - !newValue && loadStyle(); - } - } + provide() { + return { + $parentInstance: this + }; } }; diff --git a/components/lib/knob/BaseKnob.vue b/components/lib/knob/BaseKnob.vue index 7c0ab9b33..2a70e2e0c 100644 --- a/components/lib/knob/BaseKnob.vue +++ b/components/lib/knob/BaseKnob.vue @@ -30,7 +30,7 @@ const classes = { label: 'p-knob-text' }; -const { load: loadStyle, unload: unloadStyle } = useStyle(styles, { id: 'primevue_knob_style', manual: true }); +const { load: loadStyle } = useStyle(styles, { id: 'primevue_knob_style', manual: true }); export default { name: 'BaseKnob', @@ -102,15 +102,13 @@ export default { } }, css: { - classes + classes, + loadStyle }, - watch: { - isUnstyled: { - immediate: true, - handler(newValue) { - !newValue && loadStyle(); - } - } + provide() { + return { + $parentInstance: this + }; } }; diff --git a/components/lib/listbox/BaseListbox.vue b/components/lib/listbox/BaseListbox.vue index f9f0524e2..e033c6657 100644 --- a/components/lib/listbox/BaseListbox.vue +++ b/components/lib/listbox/BaseListbox.vue @@ -69,7 +69,7 @@ const classes = { hiddenLastFocusableEl: 'p-hidden-accessible p-hidden-focusable' }; -const { load: loadStyle, unload: unloadStyle } = useStyle(styles, { id: 'primevue_listbox_style', manual: true }); +const { load: loadStyle } = useStyle(styles, { id: 'primevue_listbox_style', manual: true }); export default { name: 'BaseListbox', @@ -149,15 +149,13 @@ export default { } }, css: { - classes + classes, + loadStyle }, - watch: { - isUnstyled: { - immediate: true, - handler(newValue) { - !newValue && loadStyle(); - } - } + provide() { + return { + $parentInstance: this + }; } }; diff --git a/components/lib/megamenu/BaseMegaMenu.vue b/components/lib/megamenu/BaseMegaMenu.vue index ffcaf69db..fc956baba 100644 --- a/components/lib/megamenu/BaseMegaMenu.vue +++ b/components/lib/megamenu/BaseMegaMenu.vue @@ -116,7 +116,7 @@ const styles = ` `; const inlineStyles = { - submenu: ({ context, processedItem }) => ({ display: context.isItemActive(processedItem) ? 'block' : 'none' }) + submenu: ({ instance, processedItem }) => ({ display: instance.isItemActive(processedItem) ? 'block' : 'none' }) }; const classes = { @@ -129,26 +129,26 @@ const classes = { ], start: 'p-megamenu-start', menu: 'p-megamenu-root-list', - submenuHeader: ({ context, processedItem }) => [ + submenuHeader: ({ instance, processedItem }) => [ 'p-megamenu-submenu-header p-submenu-header', { - 'p-disabled': context.isItemDisabled(processedItem) + 'p-disabled': instance.isItemDisabled(processedItem) } ], - menuitem: ({ context, processedItem }) => [ + menuitem: ({ instance, processedItem }) => [ 'p-menuitem', { - 'p-menuitem-active p-highlight': context.isItemActive(processedItem), - 'p-focus': context.isItemFocused(processedItem), - 'p-disabled': context.isItemDisabled(processedItem) + 'p-menuitem-active p-highlight': instance.isItemActive(processedItem), + 'p-focus': instance.isItemFocused(processedItem), + 'p-disabled': instance.isItemDisabled(processedItem) } ], content: 'p-menuitem-content', - action: ({ context, isActive, isExactActive }) => [ + action: ({ instance, isActive, isExactActive }) => [ 'p-menuitem-link', { 'router-link-active': isActive, - 'router-link-active-exact': context.exact && isExactActive + 'router-link-active-exact': instance.exact && isExactActive } ], icon: 'p-menuitem-icon', @@ -156,8 +156,8 @@ const classes = { submenuIcon: 'p-submenu-icon', panel: 'p-megamenu-panel', grid: 'p-megamenu-grid', - column: ({ context, processedItem }) => { - let length = context.isItemGroup(processedItem) ? processedItem.items.length : 0; + column: ({ instance, processedItem }) => { + let length = instance.isItemGroup(processedItem) ? processedItem.items.length : 0; let columnClass; switch (length) { @@ -189,7 +189,7 @@ const classes = { end: 'p-megamenu-end' }; -const { load: loadStyle, unload: unloadStyle } = useStyle(styles, { id: 'primevue_megamenu_style', manual: true }); +const { load: loadStyle } = useStyle(styles, { id: 'primevue_megamenu_style', manual: true }); export default { name: 'BaseMegaMenu', @@ -226,15 +226,13 @@ export default { }, css: { classes, - inlineStyles + inlineStyles, + loadStyle }, - watch: { - isUnstyled: { - immediate: true, - handler(newValue) { - !newValue && loadStyle(); - } - } + provide() { + return { + $parentInstance: this + }; } }; diff --git a/components/lib/megamenu/MegaMenuSub.vue b/components/lib/megamenu/MegaMenuSub.vue index 21868e3e2..6e2898457 100644 --- a/components/lib/megamenu/MegaMenuSub.vue +++ b/components/lib/megamenu/MegaMenuSub.vue @@ -1,12 +1,12 @@