diff --git a/projects/demo/src/app/pages/accordion/accordion-demo.service.ts b/projects/demo/src/app/pages/accordion/accordion-demo.service.ts index 67c32e5e..87088e4b 100644 --- a/projects/demo/src/app/pages/accordion/accordion-demo.service.ts +++ b/projects/demo/src/app/pages/accordion/accordion-demo.service.ts @@ -4,6 +4,7 @@ import { inject, Injectable } from '@angular/core'; import { DemoApiControlConfig } from '@demo-types/demo-api-control.type'; import { DemoControl, DemoControlConfig } from '@demo-types/demo-control.type'; import { DemoMethodConfig } from '@demo-types/demo-method.type'; +import { DemoSlotConfig } from '@demo-types/demo-slot.type'; import { convertEnumToStringArray } from '@demo-utils/convert-enum-to-string-array'; import { getDefaultFromDemoConfig } from '@demo-utils/get-defaults-from-demo-config'; import { getDemoApiTitle } from '@demo-utils/get-demo-api-title'; @@ -15,6 +16,8 @@ import { Subject } from 'rxjs'; const ACCORDION_DOCS_PATH = 'accordion/accordion.component.docs.json'; const ACCORDION_ITEM_DOCS_PATH = 'accordion/accordion-item/accordion-item.component.docs.json'; +const ACCORDION_SLOTS_DOCS_PATH = 'accordion/accordion.component.slots.docs.json'; +const ACCORDION_ITEM_SLOTS_DOCS_PATH = 'accordion/accordion-item/accordion-item.component.slots.docs.json'; const defaultConfig = IDS_ACCORDION_DEFAULT_CONFIG_FACTORY(); @@ -169,5 +172,40 @@ export class AccordionDemoService { }, ]; } -} + public readonly slotControlConfig: DemoSlotConfig = [ + { + name: 'content', + description: this._widgetDocs.getDescription( + ACCORDION_SLOTS_DOCS_PATH, + 'content', + 'Default content of the accordion, i.e. the projected accordion items.', + ), + }, + ]; + + public readonly itemSlotControlConfig: DemoSlotConfig = [ + { + name: 'content', + description: this._widgetDocs.getDescription( + ACCORDION_ITEM_SLOTS_DOCS_PATH, + 'content', + 'Default content of the accordion item, rendered in the expandable content area.', + ), + }, + ]; + + public getSlotConfig(): DemoSlotConfig[] { + return [ + this.slotControlConfig, + this.itemSlotControlConfig, + ]; + } + + public getSlotTitles(): string[] { + return [ + 'Accordion', + 'Accordion item', + ]; + } +} diff --git a/projects/demo/src/app/pages/autocomplete/autocomplete-demo.service.ts b/projects/demo/src/app/pages/autocomplete/autocomplete-demo.service.ts index 4092c337..93e35705 100644 --- a/projects/demo/src/app/pages/autocomplete/autocomplete-demo.service.ts +++ b/projects/demo/src/app/pages/autocomplete/autocomplete-demo.service.ts @@ -4,6 +4,7 @@ import { inject, Injectable, signal } from '@angular/core'; import { toObservable } from '@angular/core/rxjs-interop'; import { DemoApiControlConfig } from '@demo-types/demo-api-control.type'; import { DemoControl, DemoControlConfig } from '@demo-types/demo-control.type'; +import { DemoSlotConfig } from '@demo-types/demo-slot.type'; import { convertEnumToStringArray } from '@demo-utils/convert-enum-to-string-array'; import { getDefaultFromDemoConfig } from '@demo-utils/get-defaults-from-demo-config'; import { getDemoApiTitle } from '@demo-utils/get-demo-api-title'; @@ -17,6 +18,8 @@ const AUTOCOMPLETE_DOCS_PATH = 'forms/components/autocomplete/autocomplete.compo const AUTOCOMPLETE_CHIP_LIST_DOCS_PATH = 'forms/components/autocomplete/autocomplete-chip-list.component.docs.json'; const AUTOCOMPLETE_HINT_DOCS_PATH = 'forms/components/autocomplete/autocomplete-hint.component.docs.json'; const AUTOCOMPLETE_TRIGGER_DOCS_PATH = 'forms/components/autocomplete/autocomplete-trigger.directive.docs.json'; +const AUTOCOMPLETE_SLOTS_DOCS_PATH = 'forms/components/autocomplete/autocomplete.component.slots.docs.json'; +const AUTOCOMPLETE_HINT_SLOTS_DOCS_PATH = 'forms/components/autocomplete/autocomplete-hint.component.slots.docs.json'; const USER_INPUT_DEBOUNCE_TIME = 300; const SIMULATED_LOADING_TIME = 300; @@ -445,6 +448,42 @@ export class AutocompleteDemoService { ]; } + public readonly slotControlConfig: DemoSlotConfig = [ + { + name: 'content', + description: this._widgetDocs.getDescription( + AUTOCOMPLETE_SLOTS_DOCS_PATH, + 'content', + 'Projected option content rendered in the autocomplete panel.', + ), + }, + ]; + + public readonly hintSlotControlConfig: DemoSlotConfig = [ + { + name: 'content', + description: this._widgetDocs.getDescription( + AUTOCOMPLETE_HINT_SLOTS_DOCS_PATH, + 'content', + 'Default content of the autocomplete hint message.', + ), + }, + ]; + + public getSlotConfig(): DemoSlotConfig[] { + return [ + this.slotControlConfig, + this.hintSlotControlConfig, + ]; + } + + public getSlotTitles(): string[] { + return [ + 'Autocomplete', + 'Autocomplete hint', + ]; + } + private _fixedOptionsListFilterFn(options: InputOption[], value: string | null | undefined): InputOption[] { const filterValue = value?.toLowerCase() ?? ''; return (options ?? []) diff --git a/projects/demo/src/app/pages/badge/badge-demo.service.ts b/projects/demo/src/app/pages/badge/badge-demo.service.ts index fcfa7abb..6a70541f 100644 --- a/projects/demo/src/app/pages/badge/badge-demo.service.ts +++ b/projects/demo/src/app/pages/badge/badge-demo.service.ts @@ -3,6 +3,7 @@ import { WidgetDocsService } from '../../services/widget-docs.service'; import { inject, Injectable } from '@angular/core'; import { DemoApiControlConfig } from '@demo-types/demo-api-control.type'; import { DemoControlConfig } from '@demo-types/demo-control.type'; +import { DemoSlotConfig } from '@demo-types/demo-slot.type'; import { getDefaultFromDemoConfig } from '@demo-utils/get-defaults-from-demo-config'; import { getDemoApiTitle } from '@demo-utils/get-demo-api-title'; import { IDS_BADGE_DEFAULT_CONFIG_FACTORY, IdsBadgeAppearance, IdsBadgeAppearanceType, IdsBadgeVariant, IdsBadgeVariantType } from '@i-cell/ids-angular/badge'; @@ -10,6 +11,7 @@ import { IdsSize, IdsSizeType } from '@i-cell/ids-angular/core'; import { TranslateService } from '@ngx-translate/core'; const BADGE_DOCS_PATH = 'badge/badge.component.docs.json'; +const BADGE_SLOTS_DOCS_PATH = 'badge/badge.component.slots.docs.json'; type BadgeInputControls = { appearance: IdsBadgeAppearanceType; @@ -93,4 +95,24 @@ export class BadgeDemoService { }, ]; } + + public readonly slotControlConfig: DemoSlotConfig = [ + { + name: 'iconLeading', + selector: 'ids-icon[icon-leading]', + description: this._widgetDocs.getDescription( + BADGE_SLOTS_DOCS_PATH, + 'iconLeading', + 'Icon projected before the badge label. Use an ids-icon element with the icon-leading attribute.', + ), + }, + ]; + + public getSlotConfig(): DemoSlotConfig[] { + return [this.slotControlConfig]; + } + + public getSlotTitles(): string[] { + return ['Badge']; + } } diff --git a/projects/demo/src/app/pages/button/button-demo.service.ts b/projects/demo/src/app/pages/button/button-demo.service.ts index 552c8ae2..402d4618 100644 --- a/projects/demo/src/app/pages/button/button-demo.service.ts +++ b/projects/demo/src/app/pages/button/button-demo.service.ts @@ -21,6 +21,7 @@ import { TranslateService } from '@ngx-translate/core'; const BUTTON_DOCS_PATH = 'button/button.component.docs.json'; const BUTTON_GROUP_DOCS_PATH = 'button/button-group.component.docs.json'; const BUTTON_SLOTS_DOCS_PATH = 'button/button.component.slots.docs.json'; +const BUTTON_GROUP_SLOTS_DOCS_PATH = 'button/button-group.component.slots.docs.json'; const defaultConfig = IDS_BUTTON_DEFAULT_CONFIG_FACTORY(); const defaultGroupConfig = IDS_BUTTON_GROUP_DEFAULT_CONFIG_FACTORY(); @@ -176,11 +177,29 @@ export class ButtonDemoService { }, ]; + public readonly groupSlotControlConfig: DemoSlotConfig = [ + { + name: 'content', + selector: 'button[idsButton], button[idsIconButton]', + description: this._widgetDocs.getDescription( + BUTTON_GROUP_SLOTS_DOCS_PATH, + 'content', + 'Buttons projected into the group (idsButton and idsIconButton elements).', + ), + }, + ]; + public getSlotConfig(): DemoSlotConfig[] { - return [this.slotControlConfig]; + return [ + this.slotControlConfig, + this.groupSlotControlConfig, + ]; } public getSlotTitles(): string[] { - return ['Button']; + return [ + 'Button', + 'Button group', + ]; } } diff --git a/projects/demo/src/app/pages/card/card-demo.service.ts b/projects/demo/src/app/pages/card/card-demo.service.ts index 001fb58f..cb7ffcc3 100644 --- a/projects/demo/src/app/pages/card/card-demo.service.ts +++ b/projects/demo/src/app/pages/card/card-demo.service.ts @@ -3,6 +3,7 @@ import { WidgetDocsService } from '../../services/widget-docs.service'; import { inject, Injectable } from '@angular/core'; import { DemoApiControlConfig } from '@demo-types/demo-api-control.type'; import { DemoControl, DemoControlConfig } from '@demo-types/demo-control.type'; +import { DemoSlotConfig } from '@demo-types/demo-slot.type'; import { convertEnumToStringArray } from '@demo-utils/convert-enum-to-string-array'; import { getDefaultFromDemoConfig } from '@demo-utils/get-defaults-from-demo-config'; import { getDemoApiTitle } from '@demo-utils/get-demo-api-title'; @@ -21,6 +22,8 @@ const CARD_BODY_DOCS_PATH = 'card/card-body.directive.docs.json'; const CARD_HEADER_DOCS_PATH = 'card/card-header.component.docs.json'; const CARD_DOCS_PATH = 'card/card.component.docs.json'; const CARD_MEDIA_DOCS_PATH = 'card/card-media.directive.docs.json'; +const CARD_HEADER_SLOTS_DOCS_PATH = 'card/card-header.component.slots.docs.json'; +const CARD_SLOTS_DOCS_PATH = 'card/card.component.slots.docs.json'; const defaultConfig = IDS_CARD_DEFAULT_CONFIG_FACTORY(); @@ -194,4 +197,58 @@ export class CardDemoService { }, ]; } + + public readonly slotControlConfig: DemoSlotConfig = [ + { + name: 'content', + description: this._widgetDocs.getDescription( + CARD_SLOTS_DOCS_PATH, + 'content', + 'Default content of the card.', + ), + }, + { + name: 'footer', + selector: 'ids-card-footer,footer[idsCardFooter]', + description: this._widgetDocs.getDescription( + CARD_SLOTS_DOCS_PATH, + 'footer', + 'Content projected into the card footer area.', + ), + }, + ]; + + public readonly headerSlotControlConfig: DemoSlotConfig = [ + { + name: 'headline', + selector: 'ids-card-title, [idsCardTitle], ids-card-subtitle, [idsCardSubtitle]', + description: this._widgetDocs.getDescription( + CARD_HEADER_SLOTS_DOCS_PATH, + 'headline', + 'Projected title and subtitle content rendered in the card header headline area.', + ), + }, + { + name: 'content', + description: this._widgetDocs.getDescription( + CARD_HEADER_SLOTS_DOCS_PATH, + 'content', + 'Additional content projected into the card header.', + ), + }, + ]; + + public getSlotConfig(): DemoSlotConfig[] { + return [ + this.slotControlConfig, + this.headerSlotControlConfig, + ]; + } + + public getSlotTitles(): string[] { + return [ + 'Card', + 'Card header', + ]; + } } diff --git a/projects/demo/src/app/pages/chip/chip-demo.service.ts b/projects/demo/src/app/pages/chip/chip-demo.service.ts index 9bb2cfb6..6636c143 100644 --- a/projects/demo/src/app/pages/chip/chip-demo.service.ts +++ b/projects/demo/src/app/pages/chip/chip-demo.service.ts @@ -23,6 +23,7 @@ import { TranslateService } from '@ngx-translate/core'; const CHIP_DOCS_PATH = 'chip/chip.component.docs.json'; const CHIP_GROUP_DOCS_PATH = 'chip/chip-group.component.docs.json'; const CHIP_SLOTS_DOCS_PATH = 'chip/chip.component.slots.docs.json'; +const CHIP_GROUP_SLOTS_DOCS_PATH = 'chip/chip-group.component.slots.docs.json'; const defaultConfig = IDS_CHIP_DEFAULT_CONFIG_FACTORY(); const defaultGroupConfig = IDS_CHIP_GROUP_DEFAULT_CONFIG_FACTORY(); @@ -276,11 +277,29 @@ export class ChipDemoService { }, ]; + public readonly groupSlotControlConfig: DemoSlotConfig = [ + { + name: 'content', + selector: 'ids-chip, button[idsChip]', + description: this._widgetDocs.getDescription( + CHIP_GROUP_SLOTS_DOCS_PATH, + 'content', + 'Chips projected into the chip group.', + ), + }, + ]; + public getSlotConfig(): DemoSlotConfig[] { - return [this.slotControlConfig]; + return [ + this.slotControlConfig, + this.groupSlotControlConfig, + ]; } public getSlotTitles(): string[] { - return ['Chip']; + return [ + 'Chip', + 'Chip group', + ]; } } diff --git a/projects/demo/src/app/pages/dialog/dialog-demo.service.ts b/projects/demo/src/app/pages/dialog/dialog-demo.service.ts index dd0f9d12..b7df0958 100644 --- a/projects/demo/src/app/pages/dialog/dialog-demo.service.ts +++ b/projects/demo/src/app/pages/dialog/dialog-demo.service.ts @@ -152,6 +152,15 @@ export class DialogDemoService { 'Content projected into the footer of the dialog (marked with the idsDialogActions attribute), typically action buttons.', ), }, + { + name: 'idsDialogHeader', + selector: 'ng-template[idsDialogHeader], [*idsDialogHeader]', + description: this._widgetDocs.getDescription( + DIALOG_SLOTS_DOCS_PATH, + 'idsDialogHeader', + 'Custom header template rendered instead of the default dialog header.', + ), + }, ]; public getSlotConfig(): DemoSlotConfig[] { diff --git a/projects/demo/src/app/pages/fieldset/fieldset-demo.service.ts b/projects/demo/src/app/pages/fieldset/fieldset-demo.service.ts index 088dae0e..aa00f197 100644 --- a/projects/demo/src/app/pages/fieldset/fieldset-demo.service.ts +++ b/projects/demo/src/app/pages/fieldset/fieldset-demo.service.ts @@ -11,6 +11,7 @@ import { IdsSize, IdsSizeType } from '@i-cell/ids-angular/core'; import { IdsFormFieldVariant, IdsFormFieldVariantType, IDS_FIELDSET_DEFAULT_CONFIG_FACTORY } from '@i-cell/ids-angular/forms'; import { TranslateService } from '@ngx-translate/core'; +const FIELDSET_ROW_SLOTS_DOCS_PATH = 'forms/components/fieldset/fieldset-row/fieldset-row.component.slots.docs.json'; const FIELDSET_DOCS_PATH = 'forms/components/fieldset/fieldset.component.docs.json'; const FIELDSET_SLOTS_DOCS_PATH = 'forms/components/fieldset/fieldset.component.slots.docs.json'; @@ -86,7 +87,7 @@ export class FieldsetDemoService { public readonly slotControlConfig: DemoSlotConfig = [ { name: 'idsFieldsetMessage', - selector: '[idsFieldsetMessage]', + selector: 'ids-hint-message[idsFieldsetMessage]', description: this._widgetDocs.getDescription( FIELDSET_SLOTS_DOCS_PATH, 'idsFieldsetMessage', @@ -104,11 +105,28 @@ export class FieldsetDemoService { }, ]; + public readonly rowSlotControlConfig: DemoSlotConfig = [ + { + name: 'content', + description: this._widgetDocs.getDescription( + FIELDSET_ROW_SLOTS_DOCS_PATH, + 'content', + 'Default content of the fieldset row, typically form fields.', + ), + }, + ]; + public getSlotConfig(): DemoSlotConfig[] { - return [this.slotControlConfig]; + return [ + this.slotControlConfig, + this.rowSlotControlConfig, + ]; } public getSlotTitles(): string[] { - return ['Fieldset']; + return [ + 'Fieldset', + 'Fieldset row', + ]; } } diff --git a/projects/demo/src/app/pages/message/message-demo.service.ts b/projects/demo/src/app/pages/message/message-demo.service.ts index 580a6dcb..7857a162 100644 --- a/projects/demo/src/app/pages/message/message-demo.service.ts +++ b/projects/demo/src/app/pages/message/message-demo.service.ts @@ -11,6 +11,7 @@ import { IdsSize, IdsSizeType } from '@i-cell/ids-angular/core'; import { IDS_MESSAGE_DEFAULT_CONFIG_FACTORY, IdsFormFieldVariantType, IdsMessageVariant } from '@i-cell/ids-angular/forms'; import { TranslateService } from '@ngx-translate/core'; +const ERROR_MESSAGE_SLOTS_DOCS_PATH = 'forms/components/message/error-message/error-message.component.slots.docs.json'; const ERROR_DEFINITION_DOCS_PATH = 'forms/components/message/error-message/error-definition.directive.docs.json'; const MESSAGE_DOCS_PATH = 'forms/directives/message.directive.docs.json'; const MESSAGE_SLOTS_DOCS_PATH = 'forms/directives/message.directive.slots.docs.json'; @@ -170,11 +171,29 @@ export class MessageDemoService { }, ]; + public readonly errorSlotControlConfig: DemoSlotConfig = [ + { + name: 'errorDefinitions', + selector: 'ids-error-def', + description: this._widgetDocs.getDescription( + ERROR_MESSAGE_SLOTS_DOCS_PATH, + 'errorDefinitions', + 'Custom validation messages mapped by the code attribute. Define messages in descending priority order.', + ), + }, + ]; + public getSlotConfig(): DemoSlotConfig[] { - return [this.slotControlConfig]; + return [ + this.slotControlConfig, + this.errorSlotControlConfig, + ]; } public getSlotTitles(): string[] { - return ['Message']; + return [ + 'Message', + 'Error message', + ]; } } diff --git a/projects/demo/src/app/pages/notification/notification-demo.service.ts b/projects/demo/src/app/pages/notification/notification-demo.service.ts index 8db40bfb..bcb5e72d 100644 --- a/projects/demo/src/app/pages/notification/notification-demo.service.ts +++ b/projects/demo/src/app/pages/notification/notification-demo.service.ts @@ -313,7 +313,7 @@ export class NotificationDemoService { }, { name: 'actionButton', - selector: '[idsNotificationActionButton]', + selector: 'button[idsNotificationActionButton], a[idsNotificationActionButton]', description: this._widgetDocs.getDescription( NOTIFICATION_SLOTS_DOCS_PATH, 'actionButton', diff --git a/projects/demo/src/app/pages/option/option-demo.service.ts b/projects/demo/src/app/pages/option/option-demo.service.ts index d06c717d..54ed3e0d 100644 --- a/projects/demo/src/app/pages/option/option-demo.service.ts +++ b/projects/demo/src/app/pages/option/option-demo.service.ts @@ -4,6 +4,7 @@ import { inject, Injectable } from '@angular/core'; import { DemoApiControlConfig } from '@demo-types/demo-api-control.type'; import { DemoControl, DemoControlConfig } from '@demo-types/demo-control.type'; import { DemoMethodConfig } from '@demo-types/demo-method.type'; +import { DemoSlotConfig } from '@demo-types/demo-slot.type'; import { convertEnumToStringArray } from '@demo-utils/convert-enum-to-string-array'; import { getDefaultFromDemoConfig } from '@demo-utils/get-defaults-from-demo-config'; import { getDemoApiTitle } from '@demo-utils/get-demo-api-title'; @@ -14,6 +15,8 @@ import { TranslateService } from '@ngx-translate/core'; const PSEUDO_CHECKBOX_DOCS_PATH = 'forms/components/pseudo-checkbox/pseudo-checkbox.component.docs.json'; const OPTION_DOCS_PATH = 'forms/components/option/option.component.docs.json'; const OPTION_GROUP_DOCS_PATH = 'forms/components/option/option-group.component.docs.json'; +const OPTION_SLOTS_DOCS_PATH = 'forms/components/option/option.component.slots.docs.json'; +const OPTION_GROUP_SLOTS_DOCS_PATH = 'forms/components/option/option-group.component.slots.docs.json'; export type OptionSelectControls = { size: IdsSizeType; @@ -295,4 +298,41 @@ export class OptionDemoService { }, ]; } + + public readonly optionSlotControlConfig: DemoSlotConfig = [ + { + name: 'content', + description: this._widgetDocs.getDescription( + OPTION_SLOTS_DOCS_PATH, + 'content', + 'Default content of the option, used as its visible label.', + ), + }, + ]; + + public readonly optionGroupSlotControlConfig: DemoSlotConfig = [ + { + name: 'content', + selector: 'ids-option, ng-container', + description: this._widgetDocs.getDescription( + OPTION_GROUP_SLOTS_DOCS_PATH, + 'content', + 'Options projected into the option group.', + ), + }, + ]; + + public getSlotConfig(): DemoSlotConfig[] { + return [ + this.optionSlotControlConfig, + this.optionGroupSlotControlConfig, + ]; + } + + public getSlotTitles(): string[] { + return [ + 'Option', + 'Option group', + ]; + } } diff --git a/projects/demo/src/app/pages/overlay-panel/overlay-panel-demo.service.ts b/projects/demo/src/app/pages/overlay-panel/overlay-panel-demo.service.ts index f1628182..5007538e 100644 --- a/projects/demo/src/app/pages/overlay-panel/overlay-panel-demo.service.ts +++ b/projects/demo/src/app/pages/overlay-panel/overlay-panel-demo.service.ts @@ -4,6 +4,7 @@ import { inject, Injectable } from '@angular/core'; import { DemoApiControlConfig } from '@demo-types/demo-api-control.type'; import { DemoControl, DemoControlConfig } from '@demo-types/demo-control.type'; import { DemoMethodConfig } from '@demo-types/demo-method.type'; +import { DemoSlotConfig } from '@demo-types/demo-slot.type'; import { convertEnumToStringArray } from '@demo-utils/convert-enum-to-string-array'; import { getDefaultFromDemoConfig } from '@demo-utils/get-defaults-from-demo-config'; import { getDemoApiTitle } from '@demo-utils/get-demo-api-title'; @@ -14,6 +15,8 @@ import { TranslateService } from '@ngx-translate/core'; const OVERLAY_PANEL_DOCS_PATH = 'overlay-panel/overlay-panel.component.docs.json'; const MENU_ITEM_DOCS_PATH = 'menu/menu-item/menu-item.component.docs.json'; +const OVERLAY_PANEL_SLOTS_DOCS_PATH = 'overlay-panel/overlay-panel.component.slots.docs.json'; +const MENU_ITEM_SLOTS_DOCS_PATH = 'menu/menu-item/menu-item.component.slots.docs.json'; const overlayPanelDefaultConfig = IDS_OVERLAY_PANEL_DEFAULT_CONFIG_FACTORY(); const menuItemDefaultConfig = IDS_MENU_ITEM_DEFAULT_CONFIG_FACTORY(); @@ -234,4 +237,50 @@ export class OverlayPanelDemoService { }, ]; } + + public readonly slotControlConfig: DemoSlotConfig = [ + { + name: 'content', + description: this._widgetDocs.getDescription( + OVERLAY_PANEL_SLOTS_DOCS_PATH, + 'content', + 'Default content of the overlay panel.', + ), + }, + ]; + + public readonly menuItemSlotControlConfig: DemoSlotConfig = [ + { + name: 'iconLeading', + selector: 'ids-icon[icon-leading]', + description: this._widgetDocs.getDescription( + MENU_ITEM_SLOTS_DOCS_PATH, + 'iconLeading', + 'Content projected before the menu item label (marked with the icon-leading attribute), typically an ids-icon.', + ), + }, + { + name: 'iconTrailing', + selector: 'ids-icon[icon-trailing]', + description: this._widgetDocs.getDescription( + MENU_ITEM_SLOTS_DOCS_PATH, + 'iconTrailing', + 'Content projected after the menu item label (marked with the icon-trailing attribute), typically an ids-icon.', + ), + }, + ]; + + public getSlotConfig(): DemoSlotConfig[] { + return [ + this.slotControlConfig, + this.menuItemSlotControlConfig, + ]; + } + + public getSlotTitles(): string[] { + return [ + 'Overlay panel', + 'Menu item', + ]; + } } diff --git a/projects/demo/src/app/pages/segmented-control-toggle/segmented-control-toggle-demo.service.ts b/projects/demo/src/app/pages/segmented-control-toggle/segmented-control-toggle-demo.service.ts index 81cccecc..07c1253b 100644 --- a/projects/demo/src/app/pages/segmented-control-toggle/segmented-control-toggle-demo.service.ts +++ b/projects/demo/src/app/pages/segmented-control-toggle/segmented-control-toggle-demo.service.ts @@ -12,6 +12,7 @@ import { IdsSize, IdsSizeType } from '@i-cell/ids-angular/core'; import { IDS_SEGMENTED_CONTROL_TOGGLE_DEFAULT_CONFIG_FACTORY, IdsSegmentedControlToggleAppearance, IdsSegmentedControlToggleAppearanceType, IdsSegmentedControlToggleButtonVariant, IdsSegmentedControlToggleButtonVariantType, IdsSegmentedControlToggleVariant, IdsSegmentedControlToggleVariantType } from '@i-cell/ids-angular/segmented-control-toggle'; import { TranslateService } from '@ngx-translate/core'; +const GROUP_SLOTS_DOCS_PATH = 'segmented-control-toggle/segmented-control-toggle.directive.slots.docs.json'; const SEGMENTED_CONTROL_TOGGLE_DOCS_PATH = 'segmented-control-toggle/segmented-control-toggle.directive.docs.json'; const SEGMENTED_CONTROL_TOGGLE_ITEM_DOCS_PATH = 'segmented-control-toggle/segmented-control-toggle-item.component.docs.json'; const SEGMENTED_CONTROL_TOGGLE_ITEM_SLOTS_DOCS_PATH = 'segmented-control-toggle/segmented-control-toggle-item.component.slots.docs.json'; @@ -301,11 +302,29 @@ export class SegmentedControlToggleDemoService { }, ]; + public readonly groupSlotControlConfig: DemoSlotConfig = [ + { + name: 'items', + selector: 'ids-segmented-control-toggle-item', + description: this._widgetDocs.getDescription( + GROUP_SLOTS_DOCS_PATH, + 'items', + 'Direct child items managed by the segmented control toggle.', + ), + }, + ]; + public getSlotConfig(): DemoSlotConfig[] { - return [this.itemSlotControlConfig]; + return [ + this.itemSlotControlConfig, + this.groupSlotControlConfig, + ]; } public getSlotTitles(): string[] { - return ['Segmented control toggle item']; + return [ + 'Segmented control toggle item', + 'Segmented control toggle', + ]; } } diff --git a/projects/demo/src/app/pages/segmented-control/segmented-control-demo.service.ts b/projects/demo/src/app/pages/segmented-control/segmented-control-demo.service.ts index 76a84118..2a5423ac 100644 --- a/projects/demo/src/app/pages/segmented-control/segmented-control-demo.service.ts +++ b/projects/demo/src/app/pages/segmented-control/segmented-control-demo.service.ts @@ -12,6 +12,7 @@ import { IdsSize, IdsSizeType } from '@i-cell/ids-angular/core'; import { IDS_SEGMENTED_CONTROL_DEFAULT_CONFIG_FACTORY, IdsSegmentedControlAppearance, IdsSegmentedControlAppearanceType, IdsSegmentedControlVariant, IdsSegmentedControlVariantType } from '@i-cell/ids-angular/segmented-control'; import { TranslateService } from '@ngx-translate/core'; +const GROUP_SLOTS_DOCS_PATH = 'segmented-control/segmented-control.directive.slots.docs.json'; const SEGMENTED_CONTROL_DOCS_PATH = 'segmented-control/segmented-control.directive.docs.json'; const SEGMENTED_CONTROL_ITEM_DOCS_PATH = 'segmented-control/segmented-control-item.component.docs.json'; const SEGMENTED_CONTROL_ITEM_SLOTS_DOCS_PATH = 'segmented-control/segmented-control-item.component.slots.docs.json'; @@ -289,11 +290,29 @@ export class SegmentedControlDemoService { }, ]; + public readonly groupSlotControlConfig: DemoSlotConfig = [ + { + name: 'items', + selector: 'ids-segmented-control-item', + description: this._widgetDocs.getDescription( + GROUP_SLOTS_DOCS_PATH, + 'items', + 'Direct child items managed by the segmented control.', + ), + }, + ]; + public getSlotConfig(): DemoSlotConfig[] { - return [this.itemSlotControlConfig]; + return [ + this.itemSlotControlConfig, + this.groupSlotControlConfig, + ]; } public getSlotTitles(): string[] { - return ['Segmented control item']; + return [ + 'Segmented control item', + 'Segmented control', + ]; } } diff --git a/projects/demo/src/app/pages/side-nav/side-nav-demo.service.ts b/projects/demo/src/app/pages/side-nav/side-nav-demo.service.ts index 866d6ad6..92249760 100644 --- a/projects/demo/src/app/pages/side-nav/side-nav-demo.service.ts +++ b/projects/demo/src/app/pages/side-nav/side-nav-demo.service.ts @@ -3,6 +3,7 @@ import { WidgetDocsService } from '../../services/widget-docs.service'; import { inject, Injectable } from '@angular/core'; import { DemoApiControlConfig } from '@demo-types/demo-api-control.type'; import { DemoControl, DemoControlConfig } from '@demo-types/demo-control.type'; +import { DemoSlotConfig } from '@demo-types/demo-slot.type'; import { convertEnumToStringArray } from '@demo-utils/convert-enum-to-string-array'; import { getDefaultFromDemoConfig } from '@demo-utils/get-defaults-from-demo-config'; import { getDemoApiTitle } from '@demo-utils/get-demo-api-title'; @@ -10,9 +11,13 @@ import { IdsSize, IdsSizeType } from '@i-cell/ids-angular/core'; import { IDS_SIDE_NAV_DEFAULT_CONFIG_FACTORY, IdsSideNavAppearance, IdsSideNavAppearanceType, IdsSideNavVariant, IdsSideNavVariantType } from '@i-cell/ids-angular/side-nav'; import { TranslateService } from '@ngx-translate/core'; +const SIDE_NAV_SECTION_SLOTS_DOCS_PATH = 'side-nav/side-nav-section.component.slots.docs.json'; const SIDE_NAV_TITLE_DOCS_PATH = 'side-nav/side-nav-title.component.docs.json'; const SIDE_NAV_DOCS_PATH = 'side-nav/side-nav.component.docs.json'; const SIDE_NAV_ITEM_DOCS_PATH = 'side-nav/side-nav-item.component.docs.json'; +const SIDE_NAV_TITLE_SLOTS_DOCS_PATH = 'side-nav/side-nav-title.component.slots.docs.json'; +const SIDE_NAV_SLOTS_DOCS_PATH = 'side-nav/side-nav.component.slots.docs.json'; +const SIDE_NAV_ITEM_SLOTS_DOCS_PATH = 'side-nav/side-nav-item.component.slots.docs.json'; type SideNavInputControls = { appearance: IdsSideNavAppearanceType; @@ -186,4 +191,105 @@ export class SideNavDemoService { }, ]; } + + public readonly slotControlConfig: DemoSlotConfig = [ + { + name: 'content', + description: this._widgetDocs.getDescription( + SIDE_NAV_SLOTS_DOCS_PATH, + 'content', + 'Projected side navigation content, typically sections, titles and items.', + ), + }, + ]; + + public readonly titleSlotControlConfig: DemoSlotConfig = [ + { + name: 'iconLeading', + selector: '[icon-leading]', + description: this._widgetDocs.getDescription( + SIDE_NAV_TITLE_SLOTS_DOCS_PATH, + 'iconLeading', + 'Content projected before the side nav title label (marked with the icon-leading attribute).', + ), + }, + { + name: 'iconTrailing', + selector: '[icon-trailing]', + description: this._widgetDocs.getDescription( + SIDE_NAV_TITLE_SLOTS_DOCS_PATH, + 'iconTrailing', + 'Content projected after the side nav title label (marked with the icon-trailing attribute).', + ), + }, + ]; + + public readonly itemSlotControlConfig: DemoSlotConfig = [ + { + name: 'iconLeading', + selector: '[icon-leading]', + description: this._widgetDocs.getDescription( + SIDE_NAV_ITEM_SLOTS_DOCS_PATH, + 'iconLeading', + 'Content projected before the side nav item label (marked with the icon-leading attribute).', + ), + }, + { + name: 'iconTrailing', + selector: '[icon-trailing]', + description: this._widgetDocs.getDescription( + SIDE_NAV_ITEM_SLOTS_DOCS_PATH, + 'iconTrailing', + 'Content projected after the side nav item label (marked with the icon-trailing attribute).', + ), + }, + { + name: 'items', + selector: 'ids-side-nav-item,[idsSideNavItem]', + description: this._widgetDocs.getDescription( + SIDE_NAV_ITEM_SLOTS_DOCS_PATH, + 'items', + 'Nested side nav items projected into the expandable submenu.', + ), + }, + { + name: 'template', + selector: 'ng-template', + description: this._widgetDocs.getDescription( + SIDE_NAV_ITEM_SLOTS_DOCS_PATH, + 'template', + 'Custom submenu template. Add the #idsSideNavItemChildren reference to the ng-template ' + + 'so its content is rendered in the expandable submenu.', + ), + }, + ]; + + public readonly sectionSlotControlConfig: DemoSlotConfig = [ + { + name: 'content', + description: this._widgetDocs.getDescription( + SIDE_NAV_SECTION_SLOTS_DOCS_PATH, + 'content', + 'Default content of the side navigation section, typically a title and navigation items.', + ), + }, + ]; + + public getSlotConfig(): DemoSlotConfig[] { + return [ + this.slotControlConfig, + this.titleSlotControlConfig, + this.itemSlotControlConfig, + this.sectionSlotControlConfig, + ]; + } + + public getSlotTitles(): string[] { + return [ + 'Side nav', + 'Side nav title', + 'Side nav item', + 'Side nav section', + ]; + } } diff --git a/projects/demo/src/app/pages/switch/switch-demo.service.ts b/projects/demo/src/app/pages/switch/switch-demo.service.ts index 673cad6e..fcbf2fb6 100644 --- a/projects/demo/src/app/pages/switch/switch-demo.service.ts +++ b/projects/demo/src/app/pages/switch/switch-demo.service.ts @@ -4,6 +4,7 @@ import { inject, Injectable } from '@angular/core'; import { DemoApiControlConfig } from '@demo-types/demo-api-control.type'; import { DemoControl, DemoControlConfig } from '@demo-types/demo-control.type'; import { DemoMethodConfig } from '@demo-types/demo-method.type'; +import { DemoSlotConfig } from '@demo-types/demo-slot.type'; import { convertEnumToStringArray } from '@demo-utils/convert-enum-to-string-array'; import { getDefaultFromDemoConfig } from '@demo-utils/get-defaults-from-demo-config'; import { getDemoApiTitle } from '@demo-utils/get-demo-api-title'; @@ -13,6 +14,7 @@ import { TranslateService } from '@ngx-translate/core'; const SWITCH_DOCS_PATH = 'switch/switch.component.docs.json'; const SWITCH_GROUP_DOCS_PATH = 'switch/switch-group.component.docs.json'; +const SWITCH_GROUP_SLOTS_DOCS_PATH = 'switch/switch-group.component.slots.docs.json'; const defaultConfig = IDS_SWITCH_DEFAULT_CONFIG_FACTORY(); @@ -254,4 +256,24 @@ export class SwitchDemoService { }, ]; } + + public readonly groupSlotControlConfig: DemoSlotConfig = [ + { + name: 'content', + selector: 'ids-switch', + description: this._widgetDocs.getDescription( + SWITCH_GROUP_SLOTS_DOCS_PATH, + 'content', + 'Switch elements projected into the switch group.', + ), + }, + ]; + + public getSlotConfig(): DemoSlotConfig[] { + return [this.groupSlotControlConfig]; + } + + public getSlotTitles(): string[] { + return ['Switch group']; + } } diff --git a/projects/demo/src/app/pages/tab/tab-demo.service.ts b/projects/demo/src/app/pages/tab/tab-demo.service.ts index 6d970cd9..4672dfc9 100644 --- a/projects/demo/src/app/pages/tab/tab-demo.service.ts +++ b/projects/demo/src/app/pages/tab/tab-demo.service.ts @@ -15,6 +15,7 @@ import { IDS_TAB_GROUP_DEFAULT_CONFIG_FACTORY, IdsTabGroupAlignment, IdsTabGroup import { IdsTabActivationMode, IdsTabActivationModeType } from '@i-cell/ids-angular/tab/types/tab-activation-mode.type'; import { TranslateService } from '@ngx-translate/core'; +const TAB_GROUP_SLOTS_DOCS_PATH = 'tab/tab-group.component.slots.docs.json'; const TAB_GROUP_DOCS_PATH = 'tab/tab-group.component.docs.json'; const TAB_DOCS_PATH = 'tab/tab.component.docs.json'; const TAB_SLOTS_DOCS_PATH = 'tab/tab.component.slots.docs.json'; @@ -360,12 +361,30 @@ export class TabDemoService { return [this.methodControlConfig]; } + public readonly groupSlotControlConfig: DemoSlotConfig = [ + { + name: 'items', + selector: 'ids-tab', + description: this._widgetDocs.getDescription( + TAB_GROUP_SLOTS_DOCS_PATH, + 'items', + 'Direct child tabs used to render the tab headers and the active tab panel.', + ), + }, + ]; + public getSlotConfig(): DemoSlotConfig[] { - return [this.slotControlConfig]; + return [ + this.slotControlConfig, + this.groupSlotControlConfig, + ]; } public getSlotTitles(): string[] { - return ['Tab']; + return [ + 'Tab', + 'Tab group', + ]; } public getApiConfig(): DemoApiControlConfig[] { diff --git a/projects/demo/src/app/pages/table/table-demo.service.ts b/projects/demo/src/app/pages/table/table-demo.service.ts index e21e204a..cb9bcc73 100644 --- a/projects/demo/src/app/pages/table/table-demo.service.ts +++ b/projects/demo/src/app/pages/table/table-demo.service.ts @@ -482,6 +482,42 @@ export class TableDemoService { 'Content projected into the table\'s native element (marked with the idsTableCaption attribute).', ), }, + { + name: 'idsCellTemplate', + selector: 'ng-template[idsCellTemplate], [*idsCellTemplate]', + description: this._widgetDocs.getDescription( + TABLE_SLOTS_DOCS_PATH, + 'idsCellTemplate', + 'Named cell template. Set idsCellTemplate to the name referenced by the column cellRenderer or headerCellRenderer.', + ), + }, + { + name: 'idsTableSortAscIcon', + selector: 'ng-template[idsTableSortAscIcon], [*idsTableSortAscIcon]', + description: this._widgetDocs.getDescription( + TABLE_SLOTS_DOCS_PATH, + 'idsTableSortAscIcon', + 'Custom icon template for ascending column sorting.', + ), + }, + { + name: 'idsTableSortDescIcon', + selector: 'ng-template[idsTableSortDescIcon], [*idsTableSortDescIcon]', + description: this._widgetDocs.getDescription( + TABLE_SLOTS_DOCS_PATH, + 'idsTableSortDescIcon', + 'Custom icon template for descending column sorting.', + ), + }, + { + name: 'idsTableSortNoneIcon', + selector: 'ng-template[idsTableSortNoneIcon], [*idsTableSortNoneIcon]', + description: this._widgetDocs.getDescription( + TABLE_SLOTS_DOCS_PATH, + 'idsTableSortNoneIcon', + 'Custom icon template for an unsorted column.', + ), + }, ]; public getSlotConfig(): DemoSlotConfig[] { diff --git a/projects/demo/src/app/pages/tag/tag-demo.service.ts b/projects/demo/src/app/pages/tag/tag-demo.service.ts index 02005ac9..d7cfd30c 100644 --- a/projects/demo/src/app/pages/tag/tag-demo.service.ts +++ b/projects/demo/src/app/pages/tag/tag-demo.service.ts @@ -14,6 +14,7 @@ import { TranslateService } from '@ngx-translate/core'; const TAG_DOCS_PATH = 'tag/tag.component.docs.json'; const TAG_GROUP_DOCS_PATH = 'tag/tag-group.component.docs.json'; const TAG_SLOTS_DOCS_PATH = 'tag/tag.component.slots.docs.json'; +const TAG_GROUP_SLOTS_DOCS_PATH = 'tag/tag-group.component.slots.docs.json'; const defaultConfig = IDS_TAG_DEFAULT_CONFIG_FACTORY(); const defaultGroupConfig = IDS_TAG_GROUP_DEFAULT_CONFIG_FACTORY(); @@ -154,11 +155,29 @@ export class TagDemoService { }, ]; + public readonly groupSlotControlConfig: DemoSlotConfig = [ + { + name: 'content', + selector: 'ids-tag, a[idsTag]', + description: this._widgetDocs.getDescription( + TAG_GROUP_SLOTS_DOCS_PATH, + 'content', + 'Tags projected into the tag group.', + ), + }, + ]; + public getSlotConfig(): DemoSlotConfig[] { - return [this.slotControlConfig]; + return [ + this.slotControlConfig, + this.groupSlotControlConfig, + ]; } public getSlotTitles(): string[] { - return ['Tag']; + return [ + 'Tag', + 'Tag group', + ]; } } diff --git a/projects/widgets/accordion/accordion-item/accordion-item.component.slots.docs.json b/projects/widgets/accordion/accordion-item/accordion-item.component.slots.docs.json new file mode 100644 index 00000000..99cad503 --- /dev/null +++ b/projects/widgets/accordion/accordion-item/accordion-item.component.slots.docs.json @@ -0,0 +1,8 @@ +{ + "content": { + "description": { + "en": "Default content of the accordion item, rendered in the expandable content area.", + "hu": "Az accordion elem alapértelmezett tartalma, amely a lenyitható tartalmi területen jelenik meg." + } + } +} diff --git a/projects/widgets/accordion/accordion.component.slots.docs.json b/projects/widgets/accordion/accordion.component.slots.docs.json new file mode 100644 index 00000000..5b240f67 --- /dev/null +++ b/projects/widgets/accordion/accordion.component.slots.docs.json @@ -0,0 +1,8 @@ +{ + "content": { + "description": { + "en": "Default content of the accordion, i.e. the projected accordion items.", + "hu": "Az accordion alapértelmezett tartalma, azaz a beillesztett accordion elemek." + } + } +} diff --git a/projects/widgets/badge/badge.component.slots.docs.json b/projects/widgets/badge/badge.component.slots.docs.json new file mode 100644 index 00000000..221e264f --- /dev/null +++ b/projects/widgets/badge/badge.component.slots.docs.json @@ -0,0 +1,8 @@ +{ + "iconLeading": { + "description": { + "en": "Icon projected before the badge label. Use an ids-icon element with the icon-leading attribute.", + "hu": "A badge felirata elé beillesztett ikon. Használj icon-leading attribútummal ellátott ids-icon elemet." + } + } +} diff --git a/projects/widgets/button/button-group.component.slots.docs.json b/projects/widgets/button/button-group.component.slots.docs.json new file mode 100644 index 00000000..32186145 --- /dev/null +++ b/projects/widgets/button/button-group.component.slots.docs.json @@ -0,0 +1,8 @@ +{ + "content": { + "description": { + "en": "Buttons projected into the group (idsButton and idsIconButton elements).", + "hu": "A csoportba beillesztett gombok (idsButton és idsIconButton elemek)." + } + } +} diff --git a/projects/widgets/card/card-header.component.slots.docs.json b/projects/widgets/card/card-header.component.slots.docs.json new file mode 100644 index 00000000..4a412ea5 --- /dev/null +++ b/projects/widgets/card/card-header.component.slots.docs.json @@ -0,0 +1,14 @@ +{ + "headline": { + "description": { + "en": "Projected title and subtitle content rendered in the card header headline area.", + "hu": "A kártya fejlécének címterületén megjelenő cím és alcím." + } + }, + "content": { + "description": { + "en": "Additional content projected into the card header.", + "hu": "A kártya fejlécébe beillesztett további tartalom." + } + } +} diff --git a/projects/widgets/card/card.component.slots.docs.json b/projects/widgets/card/card.component.slots.docs.json new file mode 100644 index 00000000..b82e05d6 --- /dev/null +++ b/projects/widgets/card/card.component.slots.docs.json @@ -0,0 +1,14 @@ +{ + "content": { + "description": { + "en": "Default content of the card.", + "hu": "A kártya alapértelmezett tartalma." + } + }, + "footer": { + "description": { + "en": "Content projected into the card footer area.", + "hu": "A kártya láblécébe beillesztett tartalom." + } + } +} diff --git a/projects/widgets/chip/chip-group.component.slots.docs.json b/projects/widgets/chip/chip-group.component.slots.docs.json new file mode 100644 index 00000000..fe153019 --- /dev/null +++ b/projects/widgets/chip/chip-group.component.slots.docs.json @@ -0,0 +1,8 @@ +{ + "content": { + "description": { + "en": "Chips projected into the chip group.", + "hu": "A chip csoportba beillesztett chipek." + } + } +} diff --git a/projects/widgets/dialog/dialog.component.slots.docs.json b/projects/widgets/dialog/dialog.component.slots.docs.json index d854d5e2..d23ee7e5 100644 --- a/projects/widgets/dialog/dialog.component.slots.docs.json +++ b/projects/widgets/dialog/dialog.component.slots.docs.json @@ -10,5 +10,11 @@ "en": "Content projected into the footer of the dialog (marked with the idsDialogActions attribute), typically action buttons.", "hu": "A párbeszédablak láblécébe beillesztett tartalom (idsDialogActions attribútummal megjelölve), jellemzően műveleti gombok." } + }, + "idsDialogHeader": { + "description": { + "en": "Custom header template rendered instead of the default dialog header.", + "hu": "Az alapértelmezett párbeszédablak-fejléc helyett megjelenő egyedi fejlécsablon." + } } } diff --git a/projects/widgets/forms/components/autocomplete/autocomplete-hint.component.slots.docs.json b/projects/widgets/forms/components/autocomplete/autocomplete-hint.component.slots.docs.json new file mode 100644 index 00000000..abe5c368 --- /dev/null +++ b/projects/widgets/forms/components/autocomplete/autocomplete-hint.component.slots.docs.json @@ -0,0 +1,8 @@ +{ + "content": { + "description": { + "en": "Default content of the autocomplete hint message.", + "hu": "Az autocomplete súgóüzenetének alapértelmezett tartalma." + } + } +} diff --git a/projects/widgets/forms/components/autocomplete/autocomplete.component.slots.docs.json b/projects/widgets/forms/components/autocomplete/autocomplete.component.slots.docs.json new file mode 100644 index 00000000..54802678 --- /dev/null +++ b/projects/widgets/forms/components/autocomplete/autocomplete.component.slots.docs.json @@ -0,0 +1,8 @@ +{ + "content": { + "description": { + "en": "Projected option content rendered in the autocomplete panel.", + "hu": "Az autocomplete panelen megjelenő, beillesztett opciótartalom." + } + } +} diff --git a/projects/widgets/forms/components/fieldset/fieldset-row/fieldset-row.component.slots.docs.json b/projects/widgets/forms/components/fieldset/fieldset-row/fieldset-row.component.slots.docs.json new file mode 100644 index 00000000..36581e12 --- /dev/null +++ b/projects/widgets/forms/components/fieldset/fieldset-row/fieldset-row.component.slots.docs.json @@ -0,0 +1,8 @@ +{ + "content": { + "description": { + "en": "Default content of the fieldset row, typically form fields.", + "hu": "A mezőcsoport sorának alapértelmezett tartalma, jellemzően űrlapmezők." + } + } +} diff --git a/projects/widgets/forms/components/message/error-message/error-message.component.slots.docs.json b/projects/widgets/forms/components/message/error-message/error-message.component.slots.docs.json new file mode 100644 index 00000000..e8ab700e --- /dev/null +++ b/projects/widgets/forms/components/message/error-message/error-message.component.slots.docs.json @@ -0,0 +1,8 @@ +{ + "errorDefinitions": { + "description": { + "en": "Custom validation messages mapped by the code attribute. Define messages in descending priority order.", + "hu": "A code attribútummal hibakódhoz rendelt egyedi validációs üzenetek, csökkenő prioritási sorrendben megadva." + } + } +} diff --git a/projects/widgets/forms/components/option/option-group.component.slots.docs.json b/projects/widgets/forms/components/option/option-group.component.slots.docs.json new file mode 100644 index 00000000..4d675927 --- /dev/null +++ b/projects/widgets/forms/components/option/option-group.component.slots.docs.json @@ -0,0 +1,8 @@ +{ + "content": { + "description": { + "en": "Options projected into the option group.", + "hu": "Az opciócsoportba beillesztett opciók." + } + } +} diff --git a/projects/widgets/forms/components/option/option.component.slots.docs.json b/projects/widgets/forms/components/option/option.component.slots.docs.json new file mode 100644 index 00000000..45ec7cf5 --- /dev/null +++ b/projects/widgets/forms/components/option/option.component.slots.docs.json @@ -0,0 +1,8 @@ +{ + "content": { + "description": { + "en": "Default content of the option, used as its visible label.", + "hu": "Az opció alapértelmezett tartalma, amely látható feliratként jelenik meg." + } + } +} diff --git a/projects/widgets/overlay-panel/overlay-panel.component.slots.docs.json b/projects/widgets/overlay-panel/overlay-panel.component.slots.docs.json new file mode 100644 index 00000000..304bfa5b --- /dev/null +++ b/projects/widgets/overlay-panel/overlay-panel.component.slots.docs.json @@ -0,0 +1,8 @@ +{ + "content": { + "description": { + "en": "Default content of the overlay panel.", + "hu": "Az overlay panel alapértelmezett tartalma." + } + } +} diff --git a/projects/widgets/segmented-control-toggle/segmented-control-toggle.directive.slots.docs.json b/projects/widgets/segmented-control-toggle/segmented-control-toggle.directive.slots.docs.json new file mode 100644 index 00000000..4fec75e3 --- /dev/null +++ b/projects/widgets/segmented-control-toggle/segmented-control-toggle.directive.slots.docs.json @@ -0,0 +1,8 @@ +{ + "items": { + "description": { + "en": "Direct child items managed by the segmented control toggle.", + "hu": "A segmented control toggle által kezelt közvetlen gyermekelemek." + } + } +} diff --git a/projects/widgets/segmented-control/segmented-control.directive.slots.docs.json b/projects/widgets/segmented-control/segmented-control.directive.slots.docs.json new file mode 100644 index 00000000..a4ea0685 --- /dev/null +++ b/projects/widgets/segmented-control/segmented-control.directive.slots.docs.json @@ -0,0 +1,8 @@ +{ + "items": { + "description": { + "en": "Direct child items managed by the segmented control.", + "hu": "A segmented control által kezelt közvetlen gyermekelemek." + } + } +} diff --git a/projects/widgets/side-nav/side-nav-item.component.slots.docs.json b/projects/widgets/side-nav/side-nav-item.component.slots.docs.json new file mode 100644 index 00000000..8c0a8a82 --- /dev/null +++ b/projects/widgets/side-nav/side-nav-item.component.slots.docs.json @@ -0,0 +1,26 @@ +{ + "iconLeading": { + "description": { + "en": "Content projected before the side nav item label (marked with the icon-leading attribute).", + "hu": "A menüpont felirata elé beillesztett tartalom (icon-leading attribútummal jelölve)." + } + }, + "iconTrailing": { + "description": { + "en": "Content projected after the side nav item label (marked with the icon-trailing attribute).", + "hu": "A menüpont felirata után beillesztett tartalom (icon-trailing attribútummal jelölve)." + } + }, + "items": { + "description": { + "en": "Nested side nav items projected into the expandable submenu.", + "hu": "A lenyitható almenübe beillesztett, egymásba ágyazott menüpontok." + } + }, + "template": { + "description": { + "en": "Custom submenu template. Add the #idsSideNavItemChildren reference to the ng-template so its content is rendered in the expandable submenu.", + "hu": "Egyedi almenüsablon. Az ng-template elemen add meg a #idsSideNavItemChildren referenciát, hogy a tartalma megjelenjen a lenyitható almenüben." + } + } +} diff --git a/projects/widgets/side-nav/side-nav-section.component.slots.docs.json b/projects/widgets/side-nav/side-nav-section.component.slots.docs.json new file mode 100644 index 00000000..e26e3ac3 --- /dev/null +++ b/projects/widgets/side-nav/side-nav-section.component.slots.docs.json @@ -0,0 +1,8 @@ +{ + "content": { + "description": { + "en": "Default content of the side navigation section, typically a title and navigation items.", + "hu": "Az oldalsó navigáció szekciójának alapértelmezett tartalma, jellemzően egy cím és menüpontok." + } + } +} diff --git a/projects/widgets/side-nav/side-nav-title.component.slots.docs.json b/projects/widgets/side-nav/side-nav-title.component.slots.docs.json new file mode 100644 index 00000000..9a0f836b --- /dev/null +++ b/projects/widgets/side-nav/side-nav-title.component.slots.docs.json @@ -0,0 +1,14 @@ +{ + "iconLeading": { + "description": { + "en": "Content projected before the side nav title label (marked with the icon-leading attribute).", + "hu": "Az oldalsó navigáció címének felirata elé beillesztett tartalom (icon-leading attribútummal jelölve)." + } + }, + "iconTrailing": { + "description": { + "en": "Content projected after the side nav title label (marked with the icon-trailing attribute).", + "hu": "Az oldalsó navigáció címének felirata után beillesztett tartalom (icon-trailing attribútummal jelölve)." + } + } +} diff --git a/projects/widgets/side-nav/side-nav.component.slots.docs.json b/projects/widgets/side-nav/side-nav.component.slots.docs.json new file mode 100644 index 00000000..720cebe8 --- /dev/null +++ b/projects/widgets/side-nav/side-nav.component.slots.docs.json @@ -0,0 +1,8 @@ +{ + "content": { + "description": { + "en": "Projected side navigation content, typically sections, titles and items.", + "hu": "Az oldalsó navigáció beillesztett tartalma, jellemzően szekciók, címek és elemek." + } + } +} diff --git a/projects/widgets/switch/switch-group.component.slots.docs.json b/projects/widgets/switch/switch-group.component.slots.docs.json new file mode 100644 index 00000000..8afcc0e2 --- /dev/null +++ b/projects/widgets/switch/switch-group.component.slots.docs.json @@ -0,0 +1,8 @@ +{ + "content": { + "description": { + "en": "Switch elements projected into the switch group.", + "hu": "A switch csoportba beillesztett switch elemek." + } + } +} diff --git a/projects/widgets/tab/tab-group.component.slots.docs.json b/projects/widgets/tab/tab-group.component.slots.docs.json new file mode 100644 index 00000000..ffec8f15 --- /dev/null +++ b/projects/widgets/tab/tab-group.component.slots.docs.json @@ -0,0 +1,8 @@ +{ + "items": { + "description": { + "en": "Direct child tabs used to render the tab headers and the active tab panel.", + "hu": "Közvetlen gyermek fülek, amelyekből a fülfejlécek és az aktív fül tartalma megjelenik." + } + } +} diff --git a/projects/widgets/table/table.component.slots.docs.json b/projects/widgets/table/table.component.slots.docs.json index baf789bf..5f4c3416 100644 --- a/projects/widgets/table/table.component.slots.docs.json +++ b/projects/widgets/table/table.component.slots.docs.json @@ -10,5 +10,29 @@ "en": "Content projected into the table's native element (marked with the idsTableCaption attribute).", "hu": "A táblázat elemének tartalma, idsTableCaption attribútummal." } + }, + "idsCellTemplate": { + "description": { + "en": "Named cell template. Set idsCellTemplate to the name referenced by the column cellRenderer or headerCellRenderer.", + "hu": "Névvel azonosított cellasablon. Az idsCellTemplate értéke az oszlop cellRenderer vagy headerCellRenderer beállításában hivatkozott név." + } + }, + "idsTableSortAscIcon": { + "description": { + "en": "Custom icon template for ascending column sorting.", + "hu": "A növekvő oszloprendezés egyedi ikonsablonja." + } + }, + "idsTableSortDescIcon": { + "description": { + "en": "Custom icon template for descending column sorting.", + "hu": "A csökkenő oszloprendezés egyedi ikonsablonja." + } + }, + "idsTableSortNoneIcon": { + "description": { + "en": "Custom icon template for an unsorted column.", + "hu": "A rendezetlen oszlop egyedi ikonsablonja." + } } } diff --git a/projects/widgets/tag/tag-group.component.slots.docs.json b/projects/widgets/tag/tag-group.component.slots.docs.json new file mode 100644 index 00000000..7e135427 --- /dev/null +++ b/projects/widgets/tag/tag-group.component.slots.docs.json @@ -0,0 +1,8 @@ +{ + "content": { + "description": { + "en": "Tags projected into the tag group.", + "hu": "A tag csoportba beillesztett tagek." + } + } +}