Skip to main content

syncfusion-javascript-splitter

Implement and configure the Syncfusion TypeScript Splitter control for creating responsive multi-pane interfaces. Use this skill when implementing pane configuration, orientation changes, resizing, collapse/expand functionality, and content loading. This skill covers nested layouts, styling customization, and all API properties, methods, and events for the Splitter component.

소스 정보

저장소
syncfusion/javascript-ui-controls-skills
최근 소스 활동
2026년 8월 11일 05:28
감지된 SKILL.md 언어
영어
스타
0
포크
0

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

파일 탐색기
11 개 파일

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
syncfusion-javascript-splitter
description
Implement and configure the Syncfusion TypeScript Splitter control for creating responsive multi-pane interfaces. Use this skill when implementing pane configuration, orientation changes, resizing, collapse/expand functionality, and content loading. This skill covers nested layouts, styling customization, and all API properties, methods, and events for the Splitter component.
metadata
{"author":"Syncfusion Inc","version":"34.1.29","category":"Layout Components"}
# Implementing Syncfusion TypeScript Splitter The Syncfusion Splitter control enables you to create complex, responsive multi-pane layouts in web applications. It provides built-in resizing, collapse/expand functionality, comprehensive event handling, and support for nested panes with full programmatic control. ## When to Use This Skill - **Setting up a Splitter:** Initial configuration, dependency installation, basic initialization - **Configuring panes:** Sizing (pixels/percentages), fixed vs flexible panes, min/max constraints - **Orientation:** Horizontal vs vertical layouts - **Interactive features:** Collapse/expand panes, programmatic control, dynamic pane management - **Content:** Loading HTML markup, text content, or dynamic content - **Resizing:** Configuring resize behavior, preventing resize, handling resize events - **Styling:** Customizing split bars, resize handles, arrows, colors - **Complex layouts:** Nested splitters, code editor layouts, multi-level pane hierarchies - **Internationalization:** Right-to-left (RTL) support for Arabic, Hebrew, and other RTL languages - **Event Handling:** Working with all Splitter events (before/after expand/collapse, resize, creation) - **API Methods:** Programmatically manipulating splitter state (add/remove panes, expand/collapse, refresh) - **Advanced Configuration:** Persistence, sanitization, pane reordering, locale management --- ## Splitter Overview & Key Capabilities The Splitter is a flexible layout component that: - Divides containers into **multiple panes** separated by resizable bars - Supports **horizontal** (default) and **vertical** orientations - Enables **collapsible panes** with expand/collapse icons - Allows **flexible sizing** in pixels or percentages - Supports **min/max constraints** during resizing - Provides **nested splitters** for complex layouts - Includes **built-in styling** customization via CSS - Supports **RTL** for right-to-left languages - Automatically adjusts panes using **flex layout** --- ## Documentation and Navigation Guide ### API REFERENCE (Complete) **[Complete API Reference](#complete-api-reference)** — This document Comprehensive documentation of ALL components: - **Splitter Properties** - All 12 properties with code examples - **Pane Properties** - All 8 pane configuration properties - **Methods** - All 12 methods with parameters and return types (addEventListener, addPane, appendTo, collapse, dataBind, destroy, expand, getRootElement, refresh, removeEventListener, removePane, Inject) - **Events** - All 9 events with argument documentation (created, beforeExpand, expanded, beforeCollapse, collapsed, resizeStart, resizing, resizeStop, beforeSanitizeHtml) - **Event Arguments** - Full documentation of all event argument properties ### Getting Started **[references/getting-started.md](references/getting-started.md)** - Package dependencies (@syncfusion/ej2-layouts) - npm installation and setup - CSS imports (fluent2.css theme) - Basic Splitter component initialization - HTML markup and DOM structure - Creating panes with child elements ### Core Concepts: Panes and Orientation **[references/split-panes-orientation.md](references/split-panes-orientation.md)** - Horizontal layout (default behavior) - Vertical layout (orientation: 'Vertical' property) - Orientation API usage - Pane separators (vertical for horizontal layout, horizontal for vertical) - Dynamic pane management with addPane() method - Dynamic pane removal with removePane() method - Complete examples of both orientations ### Pane Configuration & Sizing **[references/pane-configuration.md](references/pane-configuration.md)** - Pane sizing in pixel format ('200px', '300px') - Pane sizing in percentage format ('30%', '50%') - Auto-sizing with flex layout - Fixed pane sizes via paneSettings - Minimum constraints (min property) - Maximum constraints (max property) - Flexible last pane behavior ### Expand/Collapse Behavior **[references/collapse-expand.md](references/collapse-expand.md)** - Enabling collapsible panes (collapsible: true) - Built-in expand/collapse icons - User-triggered collapse/expand actions - Programmatic expand() method for specific pane index - Programmatic collapse() method for specific pane index - Specify initial collapsed state (collapsed: true property) - Event handling and callbacks - beforeExpand, expanded, beforeCollapse, collapsed events ### Pane Content Options **[references/pane-content.md](references/pane-content.md)** - HTML markup content in panes - Text content strings - Inner HTML via child elements - Dynamic content property - Loading HTML elements - Practical content examples ### Resizing & Constraints **[references/resizing-behavior.md](references/resizing-behavior.md)** - Resizing enabled by default - Resize gripper functionality - Horizontal vs vertical resizing behavior - Adjacent pane auto-adjustment during resize - Min/Max validation constraints - Preventing resizing (resizable: false) - Resizable property per pane configuration - resizeStart, resizing, resizeStop events ### Styling & Customization **[references/styling-customization.md](references/styling-customization.md)** - Split bar CSS customization (.e-split-bar) - Horizontal split bar styling (.e-split-bar-horizontal) - Vertical split bar styling (.e-split-bar-vertical) - Hover and active state styling - Resize handle customization (.e-resize-handler) - Split bar arrow customization (.e-navigate-arrow) - Color and theme customization ### Complex Layouts & Nesting **[references/layouts-nested.md](references/layouts-nested.md)** - Creating nested splitters - Code editor style layout (horizontal + vertical) - Outer and inner splitter configuration - Step-by-step nesting implementation - Multiple nesting levels - Complex multi-pane hierarchies ### Globalization (RTL) **[references/globalization.md](references/globalization.md)** - Right-to-left (RTL) layout support - enableRtl property configuration - RTL for Arabic, Hebrew, and other languages - Default LTR behavior (enableRtl: false) - RTL styling adjustments --- ## Quick Start Example ```typescript import { Splitter } from '@syncfusion/ej2-layouts'; // Initialize Splitter with horizontal orientation (default) let splitObj: Splitter = new Splitter({ height: '250px', width: '600px', paneSettings: [ { size: '200px', content: 'Pane 1' }, { size: '200px', content: 'Pane 2' }, { size: '200px', content: 'Pane 3' } ] }); // Render to DOM splitObj.appendTo('#splitter'); ``` **HTML:** ```html <div id="splitter"> <div></div> <div></div> <div></div> </div> ``` --- ## Common Patterns ### Pattern 1: Responsive Panes with Min/Max ```typescript let splitObj: Splitter = new Splitter({ height: '300px', width: '100%', paneSettings: [ { size: '30%', min: '20%', max: '50%' }, { size: '40%', min: '30%', max: '60%' }, { size: '30%', min: '20%', max: '50%' } ] }); splitObj.appendTo('#splitter'); ``` ### Pattern 2: Collapsible Panes with Initial State ```typescript let splitObj: Splitter = new Splitter({ height: '300px', paneSettings: [ { collapsible: true, size: '250px', content: 'Sidebar', collapsed: false }, { collapsible: true, size: '250px', content: 'Details', collapsed: true } ] }); splitObj.appendTo('#splitter'); ``` ### Pattern 3: Vertical Split (Stacked) ```typescript let splitObj: Splitter = new Splitter({ height: '400px', orientation: 'Vertical', paneSettings: [ { size: '150px' }, { size: '200px' }, { size: '150px' } ] }); splitObj.appendTo('#splitter'); ``` ### Pattern 4: Nested Splitters (Code Editor Layout) ```typescript // Outer vertical splitter let verticalSplit: Splitter = new Splitter({ height: '400px', orientation: 'Vertical', paneSettings: [ { size: '250px', min: '30%' } ] }); verticalSplit.appendTo('#verticalSplitter'); // Inner horizontal splitter (inside first pane) let horizontalSplit: Splitter = new Splitter({ height: '220px', paneSettings: [ { size: '29%', min: '23%' }, { size: '20%', min: '15%' }, { size: '35%', min: '35%' } ] }); horizontalSplit.appendTo('#horizontalSplitter'); ``` ### Pattern 5: Event Handling - Prevent Collapse ```typescript let splitObj: Splitter = new Splitter({ height: '300px', paneSettings: [ { collapsible: true, size: '250px', content: 'Important Pane' }, { collapsible: true, size: '250px', content: 'Other Pane' } ], beforeCollapse: (args: BeforeExpandEventArgs) => { // Prevent collapse of first pane if (args.index[0] === 0) { args.cancel = true; console.log('First pane cannot be collapsed'); } } }); splitObj.appendTo('#splitter'); ``` ### Pattern 6: Dynamically Add/Remove Panes ```typescript let splitObj: Splitter = new Splitter({ height: '300px', paneSettings: [ { size: '50%', content: 'Pane 1' }, { size: '50%', content: 'Pane 2' } ] }); splitObj.appendTo('#splitter'); // Add a new pane document.getElementById('addBtn').addEventListener('click', () => { splitObj.addPane({ size: '200px', content: 'New Pane' }, 1); }); // Remove a pane document.getElementById('removeBtn').addEventListener('click', () => { splitObj.removePane(1); }); ``` ### Pattern 7: Programmatic Expand/Collapse ```typescript let splitObj: Splitter = new Splitter({ height: '300px', paneSettings: [ { collapsible: true, size: '250px', content: 'Pane 1', collapsed: true }, { collapsible: true, size: '250px', content: 'Pane 2' } ] }); splitObj.appendTo('#splitter'); // Expand pane document.getElementById('expandBtn').addEventListener('click', () => { splitObj.expand(0); }); // Collapse pane document.getElementById('collapseBtn').addEventListener('click', () => { splitObj.collapse(0); }); ``` ### Pattern 8: Track Resize Events ```typescript let splitObj: Splitter = new Splitter({ height: '300px', paneSettings: [ { size: '250px', content: 'Pane 1' }, { size: '250px', content: 'Pane 2' } ], resizeStart: (args: ResizeEventArgs) => { console.log('Resize started on pane:', args.index); }, resizing: (args: ResizingEventArgs) => { console.log('Resizing... New sizes:', args.paneSize); }, resizeStop: (args: ResizingEventArgs) => { console.log('Resize completed. Final sizes:', args.paneSize); } }); splitObj.appendTo('#splitter'); ``` ### Pattern 9: Persistent Splitter State ```typescript let splitObj: Splitter = new Splitter({ height: '300px', enablePersistence: true, // Save state to localStorage paneSettings: [ { size: '250px', content: 'Pane 1' }, { size: '250px', content: 'Pane 2' } ] }); splitObj.appendTo('#splitter'); // State automatically persists across page reloads ``` ### Pattern 10: RTL Support ```typescript let splitObj: Splitter = new Splitter({ height: '300px', enableRtl: true, paneSettings: [ { size: '50%', content: 'محتوى عربي' }, // Arabic content { size: '50%', content: 'תוכן עברי' } // Hebrew content ] }); splitObj.appendTo('#splitter'); ``` ## Complete API Reference For detailed examples of all properties, methods, and events, see the [Complete API Reference](references/api-reference.md). ### Splitter Properties Complete list of all properties available on the Splitter component: | Property | Type | Default | Description | |----------|------|---------|-------------| | `height` | `string` | `'100%'` | Height of the Splitter container | | `width` | `string` | `'100%'` | Width of the Splitter container |
GitHub에서 보기
이 SKILL.md는 매우 커서 SkillsMP가 여기에는 첫 섹션만 미리 보여줍니다. GitHub에서 보기