diff --git a/Jenkinsfile b/Jenkinsfile index dd47e4d1e..175d29f41 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -74,7 +74,7 @@ if(currentBuild.result != 'FAILURE') stage 'Delete Workspace' - def files = findFiles(glob: '**/cireports/spellcheck/*.*') + def files = findFiles(glob: '**/cireports/*.*') if(files.size() > 0) { diff --git a/ej2-javascript-toc.html b/ej2-javascript-toc.html index a4b63b8ff..92dad47f2 100644 --- a/ej2-javascript-toc.html +++ b/ej2-javascript-toc.html @@ -131,7 +131,7 @@
  • Load accordion items dynamically
  • Add icon to Accordion header
  • Add font awesome icons
  • -
  • Customize Accordion expand or collapse animation behavior
  • +
  • Expand/Collapse only on icon click
  • Integrate Essential JS 2 TreeView inside the Accordion
  • @@ -156,6 +156,7 @@
  • Title and Subtitle
  • Print and Export
  • Accessibility
  • +
  • Advanced Accessibility Configuration
  • Migration from Essential JS 1
  • API Reference
  • @@ -191,27 +192,27 @@ -
  • +
  • +
  • Avatar -
  • +
  • +
  • ContextMenu
  • API Reference
  • @@ -1036,6 +1053,8 @@
  • Icons
  • Popup Items
  • Accessibility
  • +
  • Item Template
  • +
  • Animation
  • How To
  • API Reference
  • @@ -1055,18 +1075,16 @@
  • DropDownList -
  • +
  • +
  • Dropdown Tree
  • Release Notes - - +
    - +
    Inbox @@ -94,8 +93,10 @@
      -
    • - +
    • +
    • @@ -103,7 +104,8 @@
      Albert Lives
      - Opening for Sales Manager + Opening for Sales + Manager Hello Uta Morgan,
      @@ -128,7 +130,8 @@ Garth Owen
    - Application for Job Title + Application for Job + Title Hello Ila Russo,
    @@ -220,15 +223,347 @@
    -
    - - - - - - \ No newline at end of file + + + + + + + + + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/sidebar/fixed-position-cs1/styles.css b/ej2-javascript/code-snippet/sidebar/fixed-position-cs1/styles.css index dec9b22e3..13a7bdc0d 100644 --- a/ej2-javascript/code-snippet/sidebar/fixed-position-cs1/styles.css +++ b/ej2-javascript/code-snippet/sidebar/fixed-position-cs1/styles.css @@ -1,338 +1,12 @@ -.control-section { - overflow: hidden; - } - .e-listview .e-list-parent { - margin: 0 ; - padding: 15px 0 15px 0 ; - } - - .e-listview .e-list-group-item { - background-color: #ffffff ; - } - - .e-second-heading { - color: rgba(0, 0, 0, 0.64) ; - display: block; - font-size: 15px ; - font-weight: 500 ; - } - - .e-listview.e-list-template .e-list-wrapper.e-list-multi-line.e-list-avatar .e-avatar { - top: 1.5666em; - border-radius: 50%; - border-color: #4f4b4b ; - border: 1px solid #BADA55; - } - - .e-listview { - overflow: initial; - } - - - .sf-icon-profile:before { - float: right; - content: '\e717'; - font-size: 25px; - padding-top:8px; - padding-right:7px; - } - - .e-avatar { - background: none; - color: #000; - } - - .e-today { - height: 50px; - padding: 15px; - } - - .e-today span { - border-color: rgba(0, 0, 0, 0.12); - color: rgba(0, 0, 0, 0.54); - font-size: 15px; - font-weight: 600; - height: 36px; - } - - .content { - height: 47px; - background: #0378d5; - width: 100%; - } - - #left { - float: left; - width: 30px; - height: 47px; - } - - #center { - display: inline-block; - margin: 0 auto; - width: 0px; - height: 47px; - padding: 9px 0 12px 0; - font-size: 18px; - color: #ffff; - float: left; - text-align: center; - padding-left: 40px; - } - - #right { - float: right; - width: 28px; - height: 47px; - padding: 16px 0 0 0; - color: #ffff; - - } - - .sf-icon-file:before { - content: '\e701'; - - } - - .sf-icon-share:before { - content: '\e70b'; - } - - - .sf-icon-starred:before { - content: '\e708'; - } - - .sf-icon-star:before { - content: '\e707'; - font-size: 15px; - color: #000; - float: right; - - } - - .sf-icon-recent:before { - content: '\e70c'; - } - - .sf-icon-important:before { - content: '\e713'; - } - - .e-sidebar.e-left { - border: none; - } - - .sf-icon-offline:before { - content: '\e714'; - font-size: 30px; - } - - .sf-icon-backup:before { - content: '\e712'; - - } - - .sf-icon-down:before { - content: '\e709'; - - } - - .sf-icon-search:before { - content: '\e711'; - font-size: 18px; - - } - - .sf-icon-sidebar { - content: '\e701'; - color: #000000; - display: inline-block; - margin-right: 16px; - width: 40px; - text-align: left; - font-size: 20px ; - vertical-align: middle; - } - - ul.nav.sidebar-nav { - padding: 5px 0 5px 0; - margin: 0px; - max-height:200px; - overflow-y: auto; - } - - .sidebar-nav { - list-style: none; - padding: 5px 0 5px 0; - } - - a.sidebar-brand { - color: #ffffff; - font-size: 15px; - text-decoration: none; - } - - .nav.sidebar-nav li:hover { - text-decoration: none; - background-color: #eee; - } - - span.sf-icon-down.icon { - font-size: 12px; - } - - .sidebar-nav li a { - position: relative; - cursor: pointer; - user-select: none; - display: block; - height: 48px; - line-height: 48px; - width:241px; - padding: 0 56px 0 20px; - text-decoration: none; - font-weight: 500; - overflow: hidden; - font-size: 14px; - - } - - /* sample-level styles */ - .image-container { - padding: 18px 0 0 16px; - } - - .sidebar-image { - background: url(https://ej2.syncfusion.com/showcase/angular/expensetracker/assets/images/user.svg) no-repeat scroll 0 0 transparent; - background-position-x: left; - height: 85px; - width: 100%; - background-size: 85px; - /* margin-left: 20px; */ - } - - .sidebar-brand { - height: 48px; - line-height: 48px; - padding-left: 20px; - padding-right: 40px; - text-decoration: none; - font-weight: 500; - overflow: hidden; - display: inline-flex; - } - - .sidebar-image img { - width: 54px; - height: 54px; - margin: 16px; - border-radius: 50%; - -webkit-transition: all 0.2s ease-in-out; - -o-transition: all 0.2s ease-in-out; - transition: all 0.2s ease-in-out; - } - - #default-sidebar { - color: #ffffff; - } - - /* sample-level styles */ - - #hamburger.menu { - font-size: 23px; - cursor: pointer; - float: left; - line-height: 50px; - position: absolute; - z-index: 1000; - margin-left: 25px; - color: #ffff; - } - - #hamburger.menu:before { - content: '\e10d'; - } - - #hamburger.menu.e-rtl { - position: relative; - float: right; - } - - @font-face { - font-family: 'e-icons'; - src: url(data:application/x-font-ttf;charset=utf-8;base64,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) format('truetype'); - font-weight: normal; - font-style: normal; - } - - @font-face { - font-family: 'e-sb-icons'; - src: url(data:application/x-font-ttf;charset=utf-8;base64,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AAATMzUjBSElByclMzUjNTM1IwUXEQE3JwUBIQLIyAESAs/+/mVm/ezIyMjIAvfx/Sry8gFoAWf9MQGBIXycUVEsIUwhnZMBU/6tk8D3AR8ABAAAAAADzgPqAA8AIAAvADsAACUjJzcjFwcjAwYCFyEuAQcBHgEXPgE3LgEnNDY1JiMOASUzMhYdARQGKwEVLwE3FQceARc+ATcuAScOAQJeJjsvZDI2Lj+tjgMDryP1EP5EA5Rvb5MFY38CAxMTb5QCA3QKDAwKdzs4d5ACWUFDWAECWUFDWCuHV1SKARAm/v4Rv4sEASJxkwICkm8FgmAJEAcDA5OiDAooCgwpLChMIy9DVwICWUFDWAICWAAAAgAAAAAD3QPqAA0AGQAANxUhNS4BJw4BIiYnDgETHgEXPgE3LgEnDgEQA84DknEvc39zL3GS1AOac3SaAwOadHOahIKCdaMRJCgoJBGjAeF0mgMDmnR0mgICmgAAABIA3gABAAAAAAAAAAEAAAABAAAAAAABAAoAAQABAAAAAAACAAcACwABAAAAAAADAAoAEgABAAAAAAAEAAoAHAABAAAAAAAFAAsAJgABAAAAAAAGAAoAMQABAAAAAAAKACwAOwABAAAAAAALABIAZwADAAEECQAAAAIAeQADAAEECQABABQAewADAAEECQACAA4AjwADAAEECQADABQAnQADAAEECQAEABQAsQADAAEECQAFABYAxQADAAEECQAGABQA2wADAAEECQAKAFgA7wADAAEECQALACQBRyBlLXNiLWljb25zUmVndWxhcmUtc2ItaWNvbnNlLXNiLWljb25zVmVyc2lvbiAxLjBlLXNiLWljb25zRm9udCBnZW5lcmF0ZWQgdXNpbmcgU3luY2Z1c2lvbiBNZXRybyBTdHVkaW93d3cuc3luY2Z1c2lvbi5jb20AIABlAC0AcwBiAC0AaQBjAG8AbgBzAFIAZQBnAHUAbABhAHIAZQAtAHMAYgAtAGkAYwBvAG4AcwBlAC0AcwBiAC0AaQBjAG8AbgBzAFYAZQByAHMAaQBvAG4AIAAxAC4AMABlAC0AcwBiAC0AaQBjAG8AbgBzAEYAbwBuAHQAIABnAGUAbgBlAHIAYQB0AGUAZAAgAHUAcwBpAG4AZwAgAFMAeQBuAGMAZgB1AHMAaQBvAG4AIABNAGUAdAByAG8AIABTAHQAdQBkAGkAbwB3AHcAdwAuAHMAeQBuAGMAZgB1AHMAaQBvAG4ALgBjAG8AbQAAAAACAAAAAAAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABoBAgEDAQQBBQEGAQcBCAEJAQoBCwEMAQ0BDgEPARABEQESARMBFAEVARYBFwEYARkBGgEbAAltYWlsLXNlbmQLaW5ib3gtMDItd2YLaW5ib3gtMDEtd2YFaW5ib3gPb3Blbi1tZXNzYWdlLXdmDGFycm93aGVhZC0wMRBhcnJvd2hlYWQtdG9wLXdmCXJhdGluZy13ZgtyYXRpbmctLS0wMxFhcnJvd2hlYWQtZG93bi0wMQlmb2xkZXItMDMIdXNlcnMtd2YIY2xvY2stMDIGdXBsb2FkCG9uZWRyaXZlEWNsb3VkLWRvd25sb2FkLXdmD3dvcmstb2ZmbGluZS13ZglzZWFyY2gtd2YPbm90ZS1tZW1vLTAxLXdmDGltcG9ydGFudC13ZglzZW50LW1haWwIaW5ib3gtd2YLbWFpbC0tLXNlbnQJdXNlci1iYWNrDHVzZXItcHJvZmlsZQAAAAA=) format('truetype'); - font-weight: normal; - font-style: normal; - } - - [class^="sf-icon-"], - [class*=" sf-icon-"] { - font-family: 'e-sb-icons' ; - speak: none; - font-size: 55px; - font-style: normal; - font-weight: normal; - font-variant: normal; - text-transform: none; - line-height: 1; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - } - - span.e-text { - color: #000000; - } - - .title { - text-align: center; - font-size: 20px; - padding: 15px; - } - - .sub-title { - text-align: center; - font-size: 16px; - padding: 10px; - } - - .center { - text-align: center; - display: none; - font-size: 13px; - font-weight: 400; - margin-top: 20px; - } - - [class^="sf-icon-"], - [class*=" sf-icon-"] { - font-family: 'e-sb-icons' ; - font-size: 15px; - font-style: normal; - font-weight: normal; - font-variant: normal; - text-transform: none; - line-height: 1; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - } - - - - /* end of newTab support */ - li.e-list-item { - border-bottom: 0.5px solid #80808070 !important; - cursor: pointer; - } +#container { + visibility: hidden; +} - .e-content-animation{ - border-bottom: 0.5px solid #80808070; - height: 477px; - } \ No newline at end of file +#loader { + color: #008cff; + height: 40px; + width: 30%; + position: absolute; + top: 45%; + left: 45%; +} \ No newline at end of file diff --git a/ej2-javascript/code-snippet/sidebar/fixed-position-cs1/ts/index.html b/ej2-javascript/code-snippet/sidebar/fixed-position-cs1/ts/index.html index 21a4abbc4..53d4646d7 100644 --- a/ej2-javascript/code-snippet/sidebar/fixed-position-cs1/ts/index.html +++ b/ej2-javascript/code-snippet/sidebar/fixed-position-cs1/ts/index.html @@ -17,12 +17,12 @@ - +
    LOADING....
    - -
    - + +
    +
  • - - +
    - +
    Inbox @@ -98,7 +97,8 @@
    • - +
    • @@ -106,7 +106,8 @@
      Albert Lives
      - Opening for Sales Manager + Opening for Sales + Manager Hello Uta Morgan,
      @@ -131,7 +132,8 @@ Garth Owen
    - Application for Job Title + Application for Job + Title Hello Ila Russo,
    @@ -223,8 +225,339 @@
    - - + + + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/sidebar/gestures-cs1/index.js b/ej2-javascript/code-snippet/sidebar/gestures-cs1/index.js index 496c42e6a..3eb81a557 100644 --- a/ej2-javascript/code-snippet/sidebar/gestures-cs1/index.js +++ b/ej2-javascript/code-snippet/sidebar/gestures-cs1/index.js @@ -1,25 +1,18 @@ ej.base.enableRipple(true); - - var defaultSidebar = new ej.navigations.Sidebar({ - type: "Push", - width: '280px', - enableGestures:false - }); - defaultSidebar.appendTo('#default-sidebar'); - //end of Sidebar initialization - - // Toggle(Open/Close) the sidebar - document.getElementById('toggle').onclick = function() { - defaultSidebar.toggle(); - }; - - // Close the sidebar - document.getElementById('close').onclick = function() { - defaultSidebar.hide(); - }; - //end of sidebar initialization - - // Toggle(Open/Close) the sidebar +var defaultSidebar = new ej.navigations.Sidebar({ + type: "Push", + width: '280px', + enableGestures: false +}); +defaultSidebar.appendTo('#default-sidebar'); +// Toggle(Open/Close) the Sidebar +document.getElementById('toggle').onclick = function () { + defaultSidebar.toggle(); +}; +// Close the Sidebar +document.getElementById('close').onclick = function () { + defaultSidebar.hide(); +}; \ No newline at end of file diff --git a/ej2-javascript/code-snippet/sidebar/gestures-cs1/js/index.html b/ej2-javascript/code-snippet/sidebar/gestures-cs1/js/index.html index 7aeceb344..0eea06695 100644 --- a/ej2-javascript/code-snippet/sidebar/gestures-cs1/js/index.html +++ b/ej2-javascript/code-snippet/sidebar/gestures-cs1/js/index.html @@ -1,4 +1,7 @@ - + + + + Essential JS 2 Sidebar @@ -8,16 +11,12 @@ - - - - + -
    - + +
    Main content
    Click the button to open/close the Sidebar.
    @@ -37,12 +35,45 @@
    + + + + - - - \ No newline at end of file + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/sidebar/gestures-cs1/styles.css b/ej2-javascript/code-snippet/sidebar/gestures-cs1/styles.css index bf09f63f8..13a7bdc0d 100644 --- a/ej2-javascript/code-snippet/sidebar/gestures-cs1/styles.css +++ b/ej2-javascript/code-snippet/sidebar/gestures-cs1/styles.css @@ -1,61 +1,12 @@ #container { - visibility: hidden; + visibility: hidden; } #loader { - color: #008cff; - height: 40px; - width: 30%; - position: absolute; - top: 45%; - left: 45%; -} -.header { - width:100%; - height: 40px; - font-size:20px; - line-height: 40px; - font-weight: 500; - background: #eee; - display: inline-block; -} -.center-align { - text-align: center; - padding: 20px; -} -#close,#close:hover,#close:active,#close:focus{ /* csslint allow: adjoining-classes*/ - background: #fafafa; - color:black -} -.title { - text-align: center; - font-size: 20px; - padding: 15px; -} - -.sub-title { - text-align: center; - font-size: 16px; - padding: 10px; -} - -.center { - text-align: center; - display: none; - font-size: 13px; - font-weight: 400; - margin-top: 20px; -} - -#wrapper { - display: block; -} - -body { - margin: 0; -} - -#default-sidebar { - background-color: rgb(25, 118, 210); - color: #ffffff; + color: #008cff; + height: 40px; + width: 30%; + position: absolute; + top: 45%; + left: 45%; } \ No newline at end of file diff --git a/ej2-javascript/code-snippet/sidebar/gestures-cs2/index.ts b/ej2-javascript/code-snippet/sidebar/gestures-cs2/index.ts index 06e8f0687..f6e7285f7 100644 --- a/ej2-javascript/code-snippet/sidebar/gestures-cs2/index.ts +++ b/ej2-javascript/code-snippet/sidebar/gestures-cs2/index.ts @@ -1,25 +1,25 @@ - - - import { Sidebar } from '@syncfusion/ej2-navigations'; import { enableRipple } from '@syncfusion/ej2-base'; enableRipple(true); let defaultSidebar: Sidebar = new Sidebar({ - type: "Push",width: '280px',enableGestures:false + type: "Push", width: '280px', enableGestures: false }); defaultSidebar.appendTo('#default-sidebar'); //end of Sidebar initialization // Toggle(Open/Close) the Sidebar -document.getElementById('toggle').onclick = (): void => { - defaultSidebar.toggle(); -}; +const toggleButton = document.getElementById('toggle'); +if (toggleButton) { + toggleButton.onclick = (): void => { + defaultSidebar.toggle(); + }; +} // Close the Sidebar -document.getElementById('close').onclick = (): void => { - defaultSidebar.hide(); -}; - - - +const closeButton = document.getElementById('close'); +if (closeButton) { + closeButton.onclick = (): void => { + defaultSidebar.hide(); + }; +} \ No newline at end of file diff --git a/ej2-javascript/code-snippet/sidebar/gestures-cs2/styles.css b/ej2-javascript/code-snippet/sidebar/gestures-cs2/styles.css index bf09f63f8..13a7bdc0d 100644 --- a/ej2-javascript/code-snippet/sidebar/gestures-cs2/styles.css +++ b/ej2-javascript/code-snippet/sidebar/gestures-cs2/styles.css @@ -1,61 +1,12 @@ #container { - visibility: hidden; + visibility: hidden; } #loader { - color: #008cff; - height: 40px; - width: 30%; - position: absolute; - top: 45%; - left: 45%; -} -.header { - width:100%; - height: 40px; - font-size:20px; - line-height: 40px; - font-weight: 500; - background: #eee; - display: inline-block; -} -.center-align { - text-align: center; - padding: 20px; -} -#close,#close:hover,#close:active,#close:focus{ /* csslint allow: adjoining-classes*/ - background: #fafafa; - color:black -} -.title { - text-align: center; - font-size: 20px; - padding: 15px; -} - -.sub-title { - text-align: center; - font-size: 16px; - padding: 10px; -} - -.center { - text-align: center; - display: none; - font-size: 13px; - font-weight: 400; - margin-top: 20px; -} - -#wrapper { - display: block; -} - -body { - margin: 0; -} - -#default-sidebar { - background-color: rgb(25, 118, 210); - color: #ffffff; + color: #008cff; + height: 40px; + width: 30%; + position: absolute; + top: 45%; + left: 45%; } \ No newline at end of file diff --git a/ej2-javascript/code-snippet/sidebar/gestures-cs2/ts/index.html b/ej2-javascript/code-snippet/sidebar/gestures-cs2/ts/index.html index 67bab9d29..d6c1e5728 100644 --- a/ej2-javascript/code-snippet/sidebar/gestures-cs2/ts/index.html +++ b/ej2-javascript/code-snippet/sidebar/gestures-cs2/ts/index.html @@ -19,7 +19,7 @@
    LOADING....
    - + +
    Main content
    Click the button to open/close the Sidebar.
    @@ -38,6 +37,39 @@
    + + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/sidebar/mobile-cs1/index.js b/ej2-javascript/code-snippet/sidebar/mobile-cs1/index.js index f1bae5ae9..2a17ae270 100644 --- a/ej2-javascript/code-snippet/sidebar/mobile-cs1/index.js +++ b/ej2-javascript/code-snippet/sidebar/mobile-cs1/index.js @@ -1,7 +1,7 @@ ej.base.enableRipple(true); - //sidebar initialization - var defaultSidebar = new ej.navigations.Sidebar({ - mediaQuery: window.matchMedia('(max-width: 400px)'), - width: "280px" - }); - defaultSidebar.appendTo('#default'); \ No newline at end of file +//Sidebar initialization +var defaultSidebar = new ej.navigations.Sidebar({ + mediaQuery: window.matchMedia('(max-width: 400px)'), + width: "280px" +}); +defaultSidebar.appendTo('#default'); \ No newline at end of file diff --git a/ej2-javascript/code-snippet/sidebar/mobile-cs1/index.ts b/ej2-javascript/code-snippet/sidebar/mobile-cs1/index.ts index 0225dae1b..be5a2f7b6 100644 --- a/ej2-javascript/code-snippet/sidebar/mobile-cs1/index.ts +++ b/ej2-javascript/code-snippet/sidebar/mobile-cs1/index.ts @@ -1,15 +1,10 @@ - - - import { Sidebar } from '@syncfusion/ej2-navigations'; import { enableRipple } from '@syncfusion/ej2-base'; enableRipple(true); - //start of sidebar initialization + +//start of Sidebar initialization let defaultSidebar: Sidebar = new Sidebar({ mediaQuery: window.matchMedia('(max-width: 400px)'), width: "280px", }); defaultSidebar.appendTo('#default'); - //end of sidebar initialization - - - +//end of Sidebar initialization \ No newline at end of file diff --git a/ej2-javascript/code-snippet/sidebar/mobile-cs1/js/index.html b/ej2-javascript/code-snippet/sidebar/mobile-cs1/js/index.html index edef161a9..d0fb2f449 100644 --- a/ej2-javascript/code-snippet/sidebar/mobile-cs1/js/index.html +++ b/ej2-javascript/code-snippet/sidebar/mobile-cs1/js/index.html @@ -1,4 +1,7 @@ - + + + + Essential JS 2 Sidebar @@ -9,19 +12,16 @@ - - - + -
    - + - +
    Main content
    @@ -30,12 +30,58 @@
    + + + + - - - \ No newline at end of file + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/sidebar/mobile-cs1/styles.css b/ej2-javascript/code-snippet/sidebar/mobile-cs1/styles.css index 69f436e8d..86c21c260 100644 --- a/ej2-javascript/code-snippet/sidebar/mobile-cs1/styles.css +++ b/ej2-javascript/code-snippet/sidebar/mobile-cs1/styles.css @@ -9,65 +9,4 @@ position: absolute; top: 45%; left: 45%; -} -.header { - width:100%; - height: 40px; - font-size:20px; - line-height: 40px; - font-weight: 500; - background: #eee; - display: inline-block; -} -.center-align { - text-align: center; - padding: 20px; -} - -.title { - text-align: center; - font-size: 20px; - padding: 15px; -} - -.sub-title { - text-align: center; - font-size: 14px; - padding: 10px; -} - -.center { - text-align: center; - display: none; - font-size: 13px; - font-weight: 400; - margin-top: 20px; -} - -#wrapper { - display: block; -} - -.right { - float: right; -} - -body { - margin: 0; -} - -#default { - background-color: rgb(25, 118, 210); - color: #ffffff; -} - -.close-btn:hover { - color: #fafafa; -} - -.content-section { /* csslint allow: adjoining-classes */ - padding: 30px 10px 10px 20px; -} -.book .ej2-sample-frame { /* csslint allow: adjoining-classes */ - padding: 0; } \ No newline at end of file diff --git a/ej2-javascript/code-snippet/sidebar/mobile-cs1/ts/index.html b/ej2-javascript/code-snippet/sidebar/mobile-cs1/ts/index.html index 3d6187a72..7af2622e4 100644 --- a/ej2-javascript/code-snippet/sidebar/mobile-cs1/ts/index.html +++ b/ej2-javascript/code-snippet/sidebar/mobile-cs1/ts/index.html @@ -19,11 +19,11 @@
    LOADING....
    - + - +
    Main content
    @@ -31,6 +31,51 @@
    + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/sidebar/multiple-cs1/index.js b/ej2-javascript/code-snippet/sidebar/multiple-cs1/index.js index fa3f9b6e2..0910e3f84 100644 --- a/ej2-javascript/code-snippet/sidebar/multiple-cs1/index.js +++ b/ej2-javascript/code-snippet/sidebar/multiple-cs1/index.js @@ -1,9 +1,9 @@ ej.base.enableRipple(true); //left Sidebar initialization -var leftSidebar= new ej.navigations.Sidebar({ - width: "200px", - type:'Push' +var leftSidebar = new ej.navigations.Sidebar({ + width: "200px", + type: 'Push' }); leftSidebar.appendTo('#default'); //end of leftSidebar initialization @@ -11,9 +11,9 @@ leftSidebar.appendTo('#default'); //Right Sidebar initialization var rightSidebar = new ej.navigations.Sidebar({ width: "200px", - position:'Right', - type:'Push' - }); + position: 'Right', + type: 'Push' +}); rightSidebar.appendTo('#default1'); //end of rightSidebar initialization @@ -24,5 +24,4 @@ document.getElementById('toggle-btn').onclick = function () { // Toggle(Open/Close) the right Sidebar document.getElementById('toggle-btn2').onclick = function () { rightSidebar.toggle(); -}; - +}; \ No newline at end of file diff --git a/ej2-javascript/code-snippet/sidebar/multiple-cs1/index.ts b/ej2-javascript/code-snippet/sidebar/multiple-cs1/index.ts index c57ff13aa..34c8ab57e 100644 --- a/ej2-javascript/code-snippet/sidebar/multiple-cs1/index.ts +++ b/ej2-javascript/code-snippet/sidebar/multiple-cs1/index.ts @@ -1,34 +1,29 @@ - - - import { Sidebar } from '@syncfusion/ej2-navigations'; import { enableRipple } from '@syncfusion/ej2-base'; enableRipple(true); let leftSidebar: Sidebar = new Sidebar({ - width: "200px", - type:'Push' + width: "200px", + type: 'Push' }); leftSidebar.appendTo('#default'); //end of leftSidebar initialization let rightSidebar: Sidebar = new Sidebar({ - width: "200px", - position:'Right', - type:'Push' - }); + width: "200px", + position: 'Right', + type: 'Push' +}); rightSidebar.appendTo('#default1'); //end of rightSidebar initialization // Toggle(Open/Close) the Sidebar1 -document.getElementById('toggle-btn').onclick = function () { +document.querySelector('#toggle-btn')?.addEventListener('click', () => { leftSidebar.toggle(); -}; +}) + // Toggle(Open/Close) the Sidebar2 -document.getElementById('toggle-btn2').onclick = function () { +document.querySelector('#toggle-btn2')?.addEventListener('click', () => { rightSidebar.toggle(); -}; - - - +}) \ No newline at end of file diff --git a/ej2-javascript/code-snippet/sidebar/multiple-cs1/js/index.html b/ej2-javascript/code-snippet/sidebar/multiple-cs1/js/index.html index 970e035f3..75fdfa557 100644 --- a/ej2-javascript/code-snippet/sidebar/multiple-cs1/js/index.html +++ b/ej2-javascript/code-snippet/sidebar/multiple-cs1/js/index.html @@ -1,4 +1,7 @@ - + + + + Essential JS 2 Sidebar @@ -10,24 +13,21 @@ - - - + -
    - + - - + + - +

    Place your main content here.....

    @@ -39,13 +39,43 @@
    + + + + - - - \ No newline at end of file + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/sidebar/multiple-cs1/styles.css b/ej2-javascript/code-snippet/sidebar/multiple-cs1/styles.css index f9da0ea0a..9579fae9d 100644 --- a/ej2-javascript/code-snippet/sidebar/multiple-cs1/styles.css +++ b/ej2-javascript/code-snippet/sidebar/multiple-cs1/styles.css @@ -9,34 +9,4 @@ position: absolute; top: 45%; left: 45%; - } - - .header { - width:100%; - height: 40px; - font-size:20px; - line-height: 40px; - font-weight: 500; - background: #eee; - display: inline-block; - } - - .e-main-content{ - text-align:center; - height:100vh; - background: #f5f5f5; - } - - .title { - text-align: center; - font-size: 20px; - padding: 15px; - } - - - #default,#default1 { - background-color: rgb(25, 118, 210); - color: #ffffff; - overflow:hidden; - } - + } \ No newline at end of file diff --git a/ej2-javascript/code-snippet/sidebar/multiple-cs1/ts/index.html b/ej2-javascript/code-snippet/sidebar/multiple-cs1/ts/index.html index b2aaa9ae6..e54057722 100644 --- a/ej2-javascript/code-snippet/sidebar/multiple-cs1/ts/index.html +++ b/ej2-javascript/code-snippet/sidebar/multiple-cs1/ts/index.html @@ -20,16 +20,16 @@
    LOADING....
    - + - - + + - +

    Place your main content here.....

    @@ -39,7 +39,38 @@
    + +
    - + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/sidebar/position-cs2/index.js b/ej2-javascript/code-snippet/sidebar/position-cs2/index.js index 6d7dbdb8a..598e3df15 100644 --- a/ej2-javascript/code-snippet/sidebar/position-cs2/index.js +++ b/ej2-javascript/code-snippet/sidebar/position-cs2/index.js @@ -1,45 +1,43 @@ ej.base.enableRipple(true); - //sidebar initialization - var defaultSidebar = new ej.navigations.Sidebar({ - showBackdrop: true, - enablePersistence:true, - type: "Push", - width: '280px' - }); - defaultSidebar.appendTo('#default-sidebar'); - //end of Sidebar initialization - - //toggle button initialization - - var togglebtn = new ej.buttons.Button({iconCss: 'e-icons burg-icon', isToggle: true, content:'Open'}, '#toggle'); - - //Click Event for toggle button to triger show/hide methods of Sidebar - document.getElementById('toggle').onclick = function(){ - if (document.getElementById('toggle').classList.contains('e-active')) { - togglebtn.content = 'Close'; - defaultSidebar.show(); - } else { - togglebtn.content = 'Open'; - defaultSidebar.hide(); - } - }; - - // Close the sidebar - document.getElementById('close').onclick = function() { +//Sidebar initialization +var defaultSidebar = new ej.navigations.Sidebar({ + showBackdrop: true, + enablePersistence: true, + type: "Push", + width: '280px' +}); +defaultSidebar.appendTo('#default-sidebar'); +//end of Sidebar initialization + +//toggle button initialization +var togglebtn = new ej.buttons.Button({ iconCss: 'e-icons burg-icon', isToggle: true, content: 'Open' }, '#toggle'); + +//Click Event for toggle button to triger show/hide methods of Sidebar +document.getElementById('toggle').onclick = function () { + if (document.getElementById('toggle').classList.contains('e-active')) { + togglebtn.content = 'Close'; + defaultSidebar.show(); + } else { + togglebtn.content = 'Open'; defaultSidebar.hide(); - document.getElementById('toggle').classList.remove('e-active'); - togglebtn.content = 'Open' - }; + } +}; - var positionLeft = new ej.buttons.RadioButton({ label: 'Left', name: 'state', checked: true,change:Change }); - positionLeft.appendTo('#left'); +// Close the Sidebar +document.getElementById('close').onclick = function () { + defaultSidebar.hide(); + document.getElementById('toggle').classList.remove('e-active'); + togglebtn.content = 'Open' +}; - //unchecked state - var positionRight = new ej.buttons.RadioButton({ label: 'Right', name: 'state',change:Change }); - positionRight.appendTo('#right'); +var positionLeft = new ej.buttons.RadioButton({ label: 'Left', name: 'state', checked: true, change: Change }); +positionLeft.appendTo('#left'); - //change the position of the Sidebars - function Change(args){ - defaultSidebar.position = (args.event.target.id == "left") ? "Left" : "Right"; - } +//unchecked state +var positionRight = new ej.buttons.RadioButton({ label: 'Right', name: 'state', change: Change }); +positionRight.appendTo('#right'); +//change the position of the Sidebars +function Change(args) { + defaultSidebar.position = (args.event.target.id == "left") ? "Left" : "Right"; +} \ No newline at end of file diff --git a/ej2-javascript/code-snippet/sidebar/position-cs2/js/index.html b/ej2-javascript/code-snippet/sidebar/position-cs2/js/index.html index bdaf9bdae..ed162a5b4 100644 --- a/ej2-javascript/code-snippet/sidebar/position-cs2/js/index.html +++ b/ej2-javascript/code-snippet/sidebar/position-cs2/js/index.html @@ -1,4 +1,7 @@ - + + + + Essential JS 2 Sidebar @@ -8,16 +11,12 @@ - - - - + -
    - +
    - +
    -
    +
    + + + + + + - - - \ No newline at end of file + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/sidebar/position-cs2/styles.css b/ej2-javascript/code-snippet/sidebar/position-cs2/styles.css index 0fa2588fb..13a7bdc0d 100644 --- a/ej2-javascript/code-snippet/sidebar/position-cs2/styles.css +++ b/ej2-javascript/code-snippet/sidebar/position-cs2/styles.css @@ -9,123 +9,4 @@ position: absolute; top: 45%; left: 45%; -} - -.header { - width: 100%; - height: 40px; - font-size: 20px; - line-height: 40px; - font-weight: 500; - background: #eee; - display: inline-block; -} - -.center-align { - text-align: center; - padding: 20px; -} - -.burg-icon:before { - content: '\e10d'; - font-size: 16px; -} - -.title { - text-align: center; - font-size: 20px; - padding: 15px; -} - -#head { - border: 1px solid #424242; - border-bottom-color: transparent; - background: #00897B; -} - -#container .e-btn.e-info, -#container .e-btn.e-info:hover, -#container .e-btn.e-info:focus { - /* csslint allow: adjoining-classes*/ - background: #00695C; - box-shadow: none; - border-radius: 0; - height: 39px; - width: 100px; -} - -#close, -#close:hover, -#close:active, -#close:focus { - /* csslint allow: adjoining-classes*/ - background: #fafafa; - color: black -} - -.sub-title { - text-align: center; - font-size: 16px; - padding: 10px; -} - -.radiobutton { - display: inline-block; - padding: 10px; -} - -.center { - text-align: center; - display: none; - font-size: 13px; - font-weight: 400; - margin-top: 20px; -} - -#wrapper { - display: block; -} - -.sb-content-tab .center { - /* csslint allow: adjoining-classes*/ - display: block; -} - -.sb-content-tab #wrapper { - /* csslint allow: adjoining-classes*/ - display: none; -} - -.right { - float: right; -} - -body { - margin: 0; -} - -#default-sidebar { - background-color: #26A69A; - color: #ffffff; -} - -.close-btn:hover { - color: #fafafa; -} - -.content-section { - /* csslint allow: adjoining-classes */ - padding: 30px 10px 10px 20px; -} - -.book .ej2-sample-frame { - /* csslint allow: adjoining-classes */ - padding: 0; -} - -@font-face { - font-family: 'e-icons'; - src: url(data:application/x-font-ttf;charset=utf-8;base64,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) format('truetype'); - font-weight: normal; - font-style: normal; } \ No newline at end of file diff --git a/ej2-javascript/code-snippet/sidebar/position-cs3/index.ts b/ej2-javascript/code-snippet/sidebar/position-cs3/index.ts index 702153b1b..683c9729b 100644 --- a/ej2-javascript/code-snippet/sidebar/position-cs3/index.ts +++ b/ej2-javascript/code-snippet/sidebar/position-cs3/index.ts @@ -1,26 +1,26 @@ - - - import { Sidebar } from '@syncfusion/ej2-navigations'; -import { Button,RadioButton,ChangeArgs } from '@syncfusion/ej2-buttons'; +import { Button, RadioButton, ChangeArgs } from '@syncfusion/ej2-buttons'; import { enableRipple } from '@syncfusion/ej2-base'; enableRipple(true); + //Sidebar initialization - let defaultSidebar: Sidebar = new Sidebar({ +let defaultSidebar: Sidebar = new Sidebar({ width: "280px", type: "Push", enablePersistence: true, - target: document.querySelector('.maincontent') - }); - defaultSidebar.appendTo('#default-sidebar'); - //end of Sidebar initialization + target: document.querySelector('.maincontent') as HTMLElement +}); +defaultSidebar.appendTo('#default-sidebar'); +//end of Sidebar initialization //toggle button initialization -let togglebtn: Button = new Button({iconCss: 'e-icons burg-icon', isToggle: true, content:'Open'}, '#toggle'); +let togglebtn: Button = new Button({ iconCss: 'e-icons burg-icon', isToggle: true, content: 'Open' }, '#toggle'); -//Click Event. -document.getElementById('toggle').onclick = (): void => { - if (document.getElementById('toggle').classList.contains('e-active')) { +//Click Event +const toggleButton = document.getElementById('toggle'); +if (toggleButton) { + toggleButton.onclick = (): void => { + if (toggleButton.classList.contains('e-active')) { togglebtn.content = 'Close'; defaultSidebar.show(); } else { @@ -28,24 +28,28 @@ document.getElementById('toggle').onclick = (): void => { defaultSidebar.hide(); } }; +} - // Close the Sidebar - document.getElementById('close').onclick = (): void => { +// Close the Sidebar +const closeButton = document.getElementById('close'); +if (closeButton) { + closeButton.onclick = (): void => { defaultSidebar.hide(); - document.getElementById('toggle').classList.remove('e-active'); - togglebtn.content = 'Open' + + const toggleButton = document.getElementById('toggle'); + if (toggleButton) { + toggleButton.classList.remove('e-active'); + } }; +} -let positionLeft: RadioButton = new RadioButton({ label: 'Left', name: 'state', checked: true,change:Change }); +let positionLeft: RadioButton = new RadioButton({ label: 'Left', name: 'state', checked: true, change: Change }); positionLeft.appendTo('#left'); -//unchecked state. -let positionRight: RadioButton = new RadioButton({ label: 'Right', name: 'state',change:Change }); +//unchecked state +let positionRight: RadioButton = new RadioButton({ label: 'Right', name: 'state', change: Change }); positionRight.appendTo('#right'); function Change(args: ChangeArgs) { - defaultSidebar.position = ((args.event.target).id == "left") ? "Left" : "Right"; -} - - - + defaultSidebar.position = ((args.event?.target).id == "left") ? "Left" : "Right"; +} \ No newline at end of file diff --git a/ej2-javascript/code-snippet/sidebar/position-cs3/styles.css b/ej2-javascript/code-snippet/sidebar/position-cs3/styles.css index 0fa2588fb..13a7bdc0d 100644 --- a/ej2-javascript/code-snippet/sidebar/position-cs3/styles.css +++ b/ej2-javascript/code-snippet/sidebar/position-cs3/styles.css @@ -9,123 +9,4 @@ position: absolute; top: 45%; left: 45%; -} - -.header { - width: 100%; - height: 40px; - font-size: 20px; - line-height: 40px; - font-weight: 500; - background: #eee; - display: inline-block; -} - -.center-align { - text-align: center; - padding: 20px; -} - -.burg-icon:before { - content: '\e10d'; - font-size: 16px; -} - -.title { - text-align: center; - font-size: 20px; - padding: 15px; -} - -#head { - border: 1px solid #424242; - border-bottom-color: transparent; - background: #00897B; -} - -#container .e-btn.e-info, -#container .e-btn.e-info:hover, -#container .e-btn.e-info:focus { - /* csslint allow: adjoining-classes*/ - background: #00695C; - box-shadow: none; - border-radius: 0; - height: 39px; - width: 100px; -} - -#close, -#close:hover, -#close:active, -#close:focus { - /* csslint allow: adjoining-classes*/ - background: #fafafa; - color: black -} - -.sub-title { - text-align: center; - font-size: 16px; - padding: 10px; -} - -.radiobutton { - display: inline-block; - padding: 10px; -} - -.center { - text-align: center; - display: none; - font-size: 13px; - font-weight: 400; - margin-top: 20px; -} - -#wrapper { - display: block; -} - -.sb-content-tab .center { - /* csslint allow: adjoining-classes*/ - display: block; -} - -.sb-content-tab #wrapper { - /* csslint allow: adjoining-classes*/ - display: none; -} - -.right { - float: right; -} - -body { - margin: 0; -} - -#default-sidebar { - background-color: #26A69A; - color: #ffffff; -} - -.close-btn:hover { - color: #fafafa; -} - -.content-section { - /* csslint allow: adjoining-classes */ - padding: 30px 10px 10px 20px; -} - -.book .ej2-sample-frame { - /* csslint allow: adjoining-classes */ - padding: 0; -} - -@font-face { - font-family: 'e-icons'; - src: url(data:application/x-font-ttf;charset=utf-8;base64,AAEAAAAKAIAAAwAgT1MvMjciQ6oAAAEoAAAAVmNtYXBH1Ec8AAABsAAAAHJnbHlmKcXfOQAAAkAAAAg4aGVhZBLt+DYAAADQAAAANmhoZWEHogNsAAAArAAAACRobXR4LvgAAAAAAYAAAAAwbG9jYQukCgIAAAIkAAAAGm1heHABGQEOAAABCAAAACBuYW1lR4040wAACngAAAJtcG9zdEFgIbwAAAzoAAAArAABAAADUv9qAFoEAAAA//UD8wABAAAAAAAAAAAAAAAAAAAADAABAAAAAQAAlbrm7l8PPPUACwPoAAAAANfuWa8AAAAA1+5ZrwAAAAAD8wPzAAAACAACAAAAAAAAAAEAAAAMAQIAAwAAAAAAAgAAAAoACgAAAP8AAAAAAAAAAQPqAZAABQAAAnoCvAAAAIwCegK8AAAB4AAxAQIAAAIABQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUGZFZABA4QLhkANS/2oAWgPzAJYAAAABAAAAAAAABAAAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAAAAAAAgAAAAMAAAAUAAMAAQAAABQABABeAAAADgAIAAIABuEC4QnhD+ES4RvhkP//AADhAuEJ4QvhEuEa4ZD//wAAAAAAAAAAAAAAAAABAA4ADgAOABYAFgAYAAAAAQACAAYABAADAAgABwAKAAkABQALAAAAAAAAAB4AQABaAQYB5gJkAnoCjgKwA8oEHAAAAAIAAAAAA+oDlQAEAAoAAAEFESERCQEVCQE1AgcBZv0mAXQB5P4c/g4Cw/D+lwFpAcP+s24BTf6qbgAAAAEAAAAAA+oD6gALAAATCQEXCQEHCQEnCQF4AYgBiGP+eAGIY/54/nhjAYj+eAPr/ngBiGP+eP54YwGI/nhjAYgBiAAAAwAAAAAD6gOkAAMABwALAAA3IRUhESEVIREhFSEVA9b8KgPW/CoD1vwq6I0B64wB640AAAEAAAAAA+oD4QCaAAABMx8aHQEPDjEPAh8bIT8bNS8SPxsCAA0aGhgMDAsLCwoKCgkJCQgHBwYGBgUEBAMCAgECAwUFBggICQoLCwwMDg0GAgEBAgIDBAMIBiIdHh0cHBoZFhUSEAcFBgQDAwEB/CoBAQMDBAUGBw8SFRYYGhsbHB0cHwsJBQQEAwIBAQMEDg0NDAsLCQkJBwYGBAMCAQEBAgIDBAQFBQYGBwgICAkJCgoKCwsLDAwMGRoD4gMEBwQFBQYGBwgICAkKCgsLDAwNDQ4ODxAQEBEWFxYWFhYVFRQUExIRERAOFxMLCggIBgYFBgQMDAwNDg4QDxERERIJCQkKCQkJFRQJCQoJCQgJEhERERAPDw4NDQsMBwgFBgYICQkKDAwODw8RERMTExUUFhUWFxYWFxEQEBAPDg4NDQwMCwsKCgkICAgHBgYFBQQEBQQAAAAAAwAAAAAD8wPzAEEAZQDFAAABMx8FFREzHwYdAg8GIS8GPQI/BjM1KwEvBT0CPwUzNzMfBR0CDwUrAi8FPQI/BTMnDw8fFz8XLxcPBgI+BQQDAwMCAT8EBAMDAwIBAQIDAwMEBP7cBAQDAwMCAQECAwMDBAQ/PwQEAwMDAgEBAgMDAwQE0AUEAwMDAgEBAgMDAwQFfAUEAwMDAgEBAgMDAwQFvRsbGRcWFRMREA4LCQgFAwEBAwUHCgsOEBETFRYXGRocHR4eHyAgISIiISAgHx4eHRsbGRcWFRMREA4LCQgFAwEBAwUHCgsOEBETFRYXGRsbHR4eHyAgISIiISAgHx4eAqYBAgIDBAQE/rMBAQEDAwQEBGgEBAQDAgIBAQEBAgIDBAQEaAQEBAMDAQEB0AECAwMDBAVoBAQDAwMCAeUBAgIEAwQEaAUEAwMDAgEBAgMDAwQFaAQEAwQCAgElERMVFhcZGhwdHh4fICAhIiIhICAfHh4dGxsZFxYVExEQDgsJCAUDAQEDBQcKCw4QERMVFhcZGxsdHh4fICAhIiIhICAfHh4dHBoZFxYVExEQDgsKBwUDAQEDBQcKCw4AAAIAAAAAA9MD6QALAE8AAAEOAQcuASc+ATceAQEHBgcnJgYPAQYWHwEGFBcHDgEfAR4BPwEWHwEeATsBMjY/ATY3FxY2PwE2Ji8BNjQnNz4BLwEuAQ8BJi8BLgErASIGApsBY0tKYwICY0pLY/7WEy4nfAkRBWQEAwdqAwNqBwMEZAURCXwnLhMBDgnICg4BEy4mfQkRBGQFAwhpAwNpCAMFZAQSCH0mLhMBDgrICQ4B9UpjAgJjSkpjAgJjAZWEFB4yBAYIrggSBlIYMhhSBhIIrggFAzIfE4QJDAwJhBQeMgQGCK4IEgZSGDIYUgYSCK4IBQMyHxOECQwMAAEAAAAAAwED6gAFAAAJAicJAQEbAef+FhoBzf4zA+v+Ff4VHwHMAc0AAAAAAQAAAAADAQPqAAUAAAEXCQEHAQLlHf4zAc0a/hYD6x7+M/40HwHrAAEAAAAAA/MD8wALAAATCQEXCQE3CQEnCQENAY7+cmQBjwGPZP5yAY5k/nH+cQOP/nH+cWQBjv5yZAGPAY9k/nEBjwAAAwAAAAAD8wPzAEAAgQEBAAAlDw4rAS8dPQE/DgUVDw4BPw47AR8dBRUfHTsBPx09AS8dKwEPHQL1DQ0ODg4PDw8QEBAQERERERUUFBQTExITEREREBAPDw0ODAwLCwkJCAcGBgQEAgIBAgIEAwUFBgYHBwkICQoCygECAgQDBQUGBgcHCQgJCv3QDQ0ODg4PDw8QEBAQERERERUUFBQTExITEREREBAPDw0ODAwLCwkJCAcGBgQEAgL8fgIDBQUHCAkKCwwNDg8PERESExQUFRYWFhgXGBkZGRoaGRkZGBcYFhYWFRQUExIREQ8PDg0MCwoJCAcFBQMCAgMFBQcICQoLDA0ODw8RERITFBQVFhYWGBcYGRkZGhoZGRkYFxgWFhYVFBQTEhERDw8ODQwLCgkIBwUFAwLFCgkICQcHBgYFBQMEAgIBAgIEBAYGBwgJCQsLDAwODQ8PEBARERETEhMTFBQUFREREREQEBAQDw8PDg4ODQ31ERERERAQEBAPDw8ODg4NDQIwCgkICQcHBgYFBQMEAgIBAgIEBAYGBwgJCQsLDAwODQ8PEBARERETEhMTFBQUFRoZGRkYFxgWFhYVFBQTEhERDw8ODQwLCgkIBwUFAwICAwUFBwgJCgsMDQ4PDxEREhMUFBUWFhYYFxgZGRkaGhkZGRgXGBYWFhUUFBMSEREPDw4NDAsKCQgHBQUDAgIDBQUHCAkKCwwNDg8PERESExQUFRYWFhgXGBkZGQAAAQAAAAAD6gPqAEMAABMhHw8RDw8hLw8RPw6aAswNDgwMDAsKCggIBwUFAwIBAQIDBQUHCAgKCgsMDAwODf00DQ4MDAwLCgoICAcFBQMCAQECAwUFBwgICgoLDAwMDgPrAQIDBQUHCAgKCgsLDA0NDv00Dg0NDAsLCgoICAcFBQMCAQECAwUFBwgICgoLCwwNDQ4CzA4NDQwLCwoKCAgHBQUDAgAAABIA3gABAAAAAAAAAAEAAAABAAAAAAABAA0AAQABAAAAAAACAAcADgABAAAAAAADAA0AFQABAAAAAAAEAA0AIgABAAAAAAAFAAsALwABAAAAAAAGAA0AOgABAAAAAAAKACwARwABAAAAAAALABIAcwADAAEECQAAAAIAhQADAAEECQABABoAhwADAAEECQACAA4AoQADAAEECQADABoArwADAAEECQAEABoAyQADAAEECQAFABYA4wADAAEECQAGABoA+QADAAEECQAKAFgBEwADAAEECQALACQBayBlLWljb25zLW1ldHJvUmVndWxhcmUtaWNvbnMtbWV0cm9lLWljb25zLW1ldHJvVmVyc2lvbiAxLjBlLWljb25zLW1ldHJvRm9udCBnZW5lcmF0ZWQgdXNpbmcgU3luY2Z1c2lvbiBNZXRybyBTdHVkaW93d3cuc3luY2Z1c2lvbi5jb20AIABlAC0AaQBjAG8AbgBzAC0AbQBlAHQAcgBvAFIAZQBnAHUAbABhAHIAZQAtAGkAYwBvAG4AcwAtAG0AZQB0AHIAbwBlAC0AaQBjAG8AbgBzAC0AbQBlAHQAcgBvAFYAZQByAHMAaQBvAG4AIAAxAC4AMABlAC0AaQBjAG8AbgBzAC0AbQBlAHQAcgBvAEYAbwBuAHQAIABnAGUAbgBlAHIAYQB0AGUAZAAgAHUAcwBpAG4AZwAgAFMAeQBuAGMAZgB1AHMAaQBvAG4AIABNAGUAdAByAG8AIABTAHQAdQBkAGkAbwB3AHcAdwAuAHMAeQBuAGMAZgB1AHMAaQBvAG4ALgBjAG8AbQAAAAACAAAAAAAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwBAgEDAQQBBQEGAQcBCAEJAQoBCwEMAQ0AB2hvbWUtMDELQ2xvc2UtaWNvbnMHbWVudS0wMQR1c2VyB0JUX2luZm8PU2V0dGluZ19BbmRyb2lkDWNoZXZyb24tcmlnaHQMY2hldnJvbi1sZWZ0CE1UX0NsZWFyDE1UX0p1bmttYWlscwRzdG9wAAA=) format('truetype'); - font-weight: normal; - font-style: normal; } \ No newline at end of file diff --git a/ej2-javascript/code-snippet/sidebar/position-cs3/ts/index.html b/ej2-javascript/code-snippet/sidebar/position-cs3/ts/index.html index 578ffafd7..2b4a9b1f7 100644 --- a/ej2-javascript/code-snippet/sidebar/position-cs3/ts/index.html +++ b/ej2-javascript/code-snippet/sidebar/position-cs3/ts/index.html @@ -19,7 +19,7 @@
    LOADING....
    - +
    - + - + + + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/sidebar/sidebar-default-cs1/index.js b/ej2-javascript/code-snippet/sidebar/sidebar-default-cs1/index.js index fca6ce5f7..06e203353 100644 --- a/ej2-javascript/code-snippet/sidebar/sidebar-default-cs1/index.js +++ b/ej2-javascript/code-snippet/sidebar/sidebar-default-cs1/index.js @@ -1,6 +1,6 @@ ej.base.enableRipple(true); -//sidebar initialization +//Sidebar initialization var defaultSidebar= new ej.navigations.Sidebar({ showBackdrop: false, open:function(e) @@ -13,14 +13,14 @@ var defaultSidebar= new ej.navigations.Sidebar({ } }); defaultSidebar.appendTo('#default'); -//end of sidebar initialization +//end of Sidebar initialization -// Toggle(Open/Close) the sidebar +// Toggle(Open/Close) the Sidebar document.getElementById('toggle').onclick = function() { defaultSidebar.toggle(); }; -// Close the sidebar +// Close the Sidebar document.getElementById('close').onclick = function() { defaultSidebar.hide(); }; \ No newline at end of file diff --git a/ej2-javascript/code-snippet/sidebar/sidebar-default-cs1/index.ts b/ej2-javascript/code-snippet/sidebar/sidebar-default-cs1/index.ts index 68406998f..c7985a441 100644 --- a/ej2-javascript/code-snippet/sidebar/sidebar-default-cs1/index.ts +++ b/ej2-javascript/code-snippet/sidebar/sidebar-default-cs1/index.ts @@ -1,6 +1,3 @@ - - - import { Sidebar } from '@syncfusion/ej2-navigations'; import { enableRipple } from '@syncfusion/ej2-base'; enableRipple(true); @@ -8,33 +5,27 @@ enableRipple(true); //Sidebar initialization let defaultSidebar: Sidebar = new Sidebar({ showBackdrop: false, - open:function(e) - { + open: function (e) { console.log("Sidebar is opened"); }, - close: function(e) - { - console.log("Sidebar is closed"); + close: function (e) { + console.log("Sidebar is closed"); } }); defaultSidebar.appendTo('#default'); //end of Sidebar initialization // Open the Sidebar -document.getElementById('open').onclick = (): void => { +document.querySelector('#open')?.addEventListener('click', () => { defaultSidebar.show(); -}; +}) // Toggle(Open/Close) the Sidebar -document.getElementById('toggle').onclick = (): void => { +document.querySelector('#toggle')?.addEventListener('click', () => { defaultSidebar.toggle(); -}; +}) // Close the Sidebar -document.getElementById('close').onclick = (): void => { +document.querySelector('#close')?.addEventListener('click', () => { defaultSidebar.hide(); -}; - - - - +}) \ No newline at end of file diff --git a/ej2-javascript/code-snippet/sidebar/sidebar-default-cs1/js/index.html b/ej2-javascript/code-snippet/sidebar/sidebar-default-cs1/js/index.html index 6e8b62970..ed09d83ef 100644 --- a/ej2-javascript/code-snippet/sidebar/sidebar-default-cs1/js/index.html +++ b/ej2-javascript/code-snippet/sidebar/sidebar-default-cs1/js/index.html @@ -1,4 +1,7 @@ - + + + + Essential JS 2 Sidebar @@ -10,15 +13,12 @@ - - - + -
    - + - +
    Main content
    @@ -42,13 +42,68 @@
    + + + + + - - - \ No newline at end of file + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/sidebar/sidebar-default-cs1/styles.css b/ej2-javascript/code-snippet/sidebar/sidebar-default-cs1/styles.css index e7212521e..86c21c260 100644 --- a/ej2-javascript/code-snippet/sidebar/sidebar-default-cs1/styles.css +++ b/ej2-javascript/code-snippet/sidebar/sidebar-default-cs1/styles.css @@ -9,77 +9,4 @@ position: absolute; top: 45%; left: 45%; -} -#close,#close:hover,#close:active,#close:focus{ /* csslint allow: adjoining-classes*/ - background: #fafafa; - color:black -} -.header { - width:100%; - height: 40px; - font-size:20px; - line-height: 40px; - font-weight: 500; - background: #eee; - display: inline-block; -} -.center-align { - text-align: center; - padding: 20px; -} - -.title { - text-align: center; - font-size: 20px; - padding: 15px; -} - -.sub-title { - text-align: center; - font-size: 16px; - padding: 10px; -} - -.center { - text-align: center; - display: none; - font-size: 13px; - font-weight: 400; - margin-top: 20px; -} - -#wrapper { - display: block; -} - -.sb-content-tab .center { /* csslint allow: adjoining-classes*/ - display: block; -} - -.sb-content-tab #wrapper { /* csslint allow: adjoining-classes*/ - display: none; -} - -.right { - float: right; -} - -body { - margin: 0; -} - -#default { - background-color: rgb(25, 118, 210); - color: #ffffff; -} - -.close-btn:hover { - color: #fafafa; -} - -.content-section { /* csslint allow: adjoining-classes */ - padding: 30px 10px 10px 20px; -} -.book .ej2-sample-frame { /* csslint allow: adjoining-classes */ - padding: 0; } \ No newline at end of file diff --git a/ej2-javascript/code-snippet/sidebar/sidebar-default-cs1/ts/index.html b/ej2-javascript/code-snippet/sidebar/sidebar-default-cs1/ts/index.html index fea6dcc38..ef3f0c0b1 100644 --- a/ej2-javascript/code-snippet/sidebar/sidebar-default-cs1/ts/index.html +++ b/ej2-javascript/code-snippet/sidebar/sidebar-default-cs1/ts/index.html @@ -20,7 +20,7 @@
    LOADING....
    - + - +
    Main content
    @@ -44,6 +44,61 @@
    + + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/sidebar/sidebar-dock-cs1/index.js b/ej2-javascript/code-snippet/sidebar/sidebar-dock-cs1/index.js index 6dcaa1a97..65ebf031e 100644 --- a/ej2-javascript/code-snippet/sidebar/sidebar-dock-cs1/index.js +++ b/ej2-javascript/code-snippet/sidebar/sidebar-dock-cs1/index.js @@ -1,14 +1,13 @@ ej.base.enableRipple(true); - //sidebar initialization - var dockbar = new ej.navigations.Sidebar({ - width: '220px', - dockSize: '72px', - enableDock: true - }); - dockbar.appendTo('#dockSidebar'); - //end of sidebar initialization - - document.getElementById('toggle').onclick = function() { - dockbar.toggle(); - }; +//Sidebar initialization +var dockbar = new ej.navigations.Sidebar({ + width: '220px', + dockSize: '72px', + enableDock: true +}); +dockbar.appendTo('#dockSidebar'); +//end of Sidebar initialization +document.getElementById('toggle').onclick = function () { + dockbar.toggle(); +}; \ No newline at end of file diff --git a/ej2-javascript/code-snippet/sidebar/sidebar-dock-cs1/index.ts b/ej2-javascript/code-snippet/sidebar/sidebar-dock-cs1/index.ts index a9eb5ca82..afe7a4582 100644 --- a/ej2-javascript/code-snippet/sidebar/sidebar-dock-cs1/index.ts +++ b/ej2-javascript/code-snippet/sidebar/sidebar-dock-cs1/index.ts @@ -1,5 +1,3 @@ - - import { Sidebar } from '@syncfusion/ej2-navigations'; import { enableRipple } from '@syncfusion/ej2-base'; enableRipple(false); @@ -14,9 +12,6 @@ let dockBar: Sidebar = new Sidebar({ dockBar.appendTo('#dockSidebar'); //end of Sidebar initialization -document.getElementById('toggle').onclick = (): void => { +document.querySelector("#toggle")?.addEventListener('click', () => { dockBar.toggle(); -}; - - - +}) \ No newline at end of file diff --git a/ej2-javascript/code-snippet/sidebar/sidebar-dock-cs1/js/index.html b/ej2-javascript/code-snippet/sidebar/sidebar-dock-cs1/js/index.html index 69267861a..cd3cb2969 100644 --- a/ej2-javascript/code-snippet/sidebar/sidebar-dock-cs1/js/index.html +++ b/ej2-javascript/code-snippet/sidebar/sidebar-dock-cs1/js/index.html @@ -1,4 +1,7 @@ - + + + + Essential JS 2 Sidebar @@ -10,42 +13,39 @@ - - - + -
    - + - +
    Main content
    @@ -55,11 +55,98 @@
    - - - \ No newline at end of file + + + + + + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/sidebar/sidebar-dock-cs1/styles.css b/ej2-javascript/code-snippet/sidebar/sidebar-dock-cs1/styles.css index 940d5348e..13a7bdc0d 100644 --- a/ej2-javascript/code-snippet/sidebar/sidebar-dock-cs1/styles.css +++ b/ej2-javascript/code-snippet/sidebar/sidebar-dock-cs1/styles.css @@ -9,126 +9,4 @@ position: absolute; top: 45%; left: 45%; -} - -.title { - text-align: center; - font-size: 20px; - padding: 15px; -} - -.sub-title { - text-align: center; - font-size: 16px; - padding: 10px; -} - -#dockSidebar .e-icons::before { - font-size: 25px; -} - - -/* dockbar icon Style */ - -#dockSidebar .home::before { - content: '\e102'; -} - -#dockSidebar .profile::before { - content: '\e10c' -} - -#dockSidebar .info::before { - content: '\e11b'; -} - -#dockSidebar .settings::before { - content: '\e10b'; -} - -.e-sidebar .expand::before { - content: '\e10f'; -} - -.e-sidebar.e-open .expand::before { - /* csslint allow: adjoining-classes*/ - content: '\e10e'; -} - - -/* end of dockbar icon Style */ - -#dockSidebar.e-close .sidebar-item { - padding: 5px 20px; -} - -#dockSidebar { - visibility: hidden; -} - -#dockSidebar.e-sidebar { - visibility: visible; -} - -.e-dock.e-close span.e-text { - /* csslint allow: adjoining-classes*/ - display: none; -} - -.e-dock.e-open span.e-text { - /* csslint allow: adjoining-classes*/ - display: inline-block -} - -#dockSidebar li { - list-style-type: none; - cursor: pointer; -} - -#dockSidebar ul { - padding: 0; -} - -#dockSidebar.e-sidebar ul li:hover span { - color: white -} - -span.e-icons { - color: #c0c2c5; - line-height: 2 -} - -.e-open .e-icons { - margin-right: 16px; -} - -.e-open .e-text { - overflow: hidden; - text-overflow: ellipsis; - line-height: 23px; - font-size: 15px; -} - -.sidebar-item { - text-align: center; - border-bottom: 1px #e5e5e58a solid; -} - -.e-sidebar.e-open .sidebar-item { - /* csslint allow: adjoining-classes*/ - text-align: left; - padding-left: 15px; - color: #c0c2c5; -} - -#dockSidebar.e-sidebar { - background: #2d323e; - overflow: hidden; -} - -@font-face { - font-family: 'e-icons'; - src: url(data:application/x-font-ttf;charset=utf-8;base64,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) format('truetype'); - font-weight: normal; - font-style: normal; } \ No newline at end of file diff --git a/ej2-javascript/code-snippet/sidebar/sidebar-dock-cs1/ts/index.html b/ej2-javascript/code-snippet/sidebar/sidebar-dock-cs1/ts/index.html index c389e9049..6d4938df0 100644 --- a/ej2-javascript/code-snippet/sidebar/sidebar-dock-cs1/ts/index.html +++ b/ej2-javascript/code-snippet/sidebar/sidebar-dock-cs1/ts/index.html @@ -20,34 +20,34 @@
    LOADING....
    - + - +
    Main content
    @@ -55,6 +55,91 @@
    + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/sidebar/sidebar-howTo-cs2/index.js b/ej2-javascript/code-snippet/sidebar/sidebar-howTo-cs2/index.js index 0cb07a108..ce273c4bb 100644 --- a/ej2-javascript/code-snippet/sidebar/sidebar-howTo-cs2/index.js +++ b/ej2-javascript/code-snippet/sidebar/sidebar-howTo-cs2/index.js @@ -1,24 +1,19 @@ ej.base.enableRipple(true); - //sidebar initialization - var defaultSidebar = new ej.navigations.Sidebar({ - showBackdrop: true, - type: "Push", - width: '280px' - }); - defaultSidebar.appendTo('#default-sidebar'); - //end of sidebar initialization +//Sidebar initialization +var defaultSidebar = new ej.navigations.Sidebar({ + showBackdrop: true, + type: "Push", + width: '280px' +}); +defaultSidebar.appendTo('#default-sidebar'); +//end of Sidebar initialization - // Toggle(Open/Close) the sidebar - document.getElementById('toggle').onclick = function() { - defaultSidebar.toggle(); - }; - - // Close the sidebar - document.getElementById('close').onclick = function() { - defaultSidebar.hide(); - }; - //end of sidebar initialization - - // Toggle(Open/Close) the sidebar - +// Toggle(Open/Close) the Sidebar +document.getElementById('toggle').onclick = function () { + defaultSidebar.toggle(); +}; +// Close the Sidebar +document.getElementById('close').onclick = function () { + defaultSidebar.hide(); +}; \ No newline at end of file diff --git a/ej2-javascript/code-snippet/sidebar/sidebar-howTo-cs2/js/index.html b/ej2-javascript/code-snippet/sidebar/sidebar-howTo-cs2/js/index.html index f803299c0..799361c7a 100644 --- a/ej2-javascript/code-snippet/sidebar/sidebar-howTo-cs2/js/index.html +++ b/ej2-javascript/code-snippet/sidebar/sidebar-howTo-cs2/js/index.html @@ -1,4 +1,7 @@ - + + + + Essential JS 2 Sidebar @@ -9,16 +12,12 @@ - - - - + -
    - + - +
    Main content
    @@ -40,12 +39,45 @@
    + + + + - - - \ No newline at end of file + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/sidebar/sidebar-howTo-cs2/styles.css b/ej2-javascript/code-snippet/sidebar/sidebar-howTo-cs2/styles.css index e253db6a3..13a7bdc0d 100644 --- a/ej2-javascript/code-snippet/sidebar/sidebar-howTo-cs2/styles.css +++ b/ej2-javascript/code-snippet/sidebar/sidebar-howTo-cs2/styles.css @@ -1,77 +1,12 @@ #container { - visibility: hidden; + visibility: hidden; } #loader { - color: #008cff; - height: 40px; - width: 30%; - position: absolute; - top: 45%; - left: 45%; -} -.header { - width:100%; - height: 40px; - font-size:20px; - line-height: 40px; - font-weight: 500; - background: #eee; - display: inline-block; -} -.center-align { - text-align: center; - padding: 20px; -} -#close,#close:hover,#close:active,#close:focus{ /* csslint allow: adjoining-classes*/ - background: #fafafa; - color:black -} -.title { - text-align: center; - font-size: 20px; - padding: 15px; -} - -.sub-title { - text-align: center; - font-size: 16px; - padding: 10px; -} - -.center { - text-align: center; - display: none; - font-size: 13px; - font-weight: 400; - margin-top: 20px; -} - -#wrapper { - display: block; -} - -.sb-content-tab .center { /* csslint allow: adjoining-classes*/ - display: block; -} - -.sb-content-tab #wrapper { /* csslint allow: adjoining-classes*/ - display: none; -} - -.right { - float: right; -} - -body { - margin: 0; -} - -#default-sidebar { - background-color: rgb(25, 118, 210); - color: #ffffff; -} - -.book .ej2-sample-frame { /* csslint allow: adjoining-classes */ - padding: 0; + color: #008cff; + height: 40px; + width: 30%; + position: absolute; + top: 45%; + left: 45%; } \ No newline at end of file diff --git a/ej2-javascript/code-snippet/sidebar/sidebar-howTo-cs3/index.ts b/ej2-javascript/code-snippet/sidebar/sidebar-howTo-cs3/index.ts index 23185c325..a083b797c 100644 --- a/ej2-javascript/code-snippet/sidebar/sidebar-howTo-cs3/index.ts +++ b/ej2-javascript/code-snippet/sidebar/sidebar-howTo-cs3/index.ts @@ -1,25 +1,22 @@ - - - import { Sidebar } from '@syncfusion/ej2-navigations'; -import { enableRipple } from '@syncfusion/ej2-base'; -enableRipple(true); let defaultSidebar: Sidebar = new Sidebar({ - showBackdrop: true, type: "Push",width: '280px' + showBackdrop: true, type: "Push", width: '280px' }); defaultSidebar.appendTo('#default-sidebar'); -//end of Sidebar initialization // Toggle(Open/Close) the Sidebar -document.getElementById('toggle').onclick = (): void => { - defaultSidebar.toggle(); -}; +const toggleButton = document.getElementById('toggle'); +if (toggleButton) { + toggleButton.onclick = (): void => { + defaultSidebar.toggle(); + }; +} // Close the Sidebar -document.getElementById('close').onclick = (): void => { - defaultSidebar.hide(); -}; - - - +const closeButton = document.getElementById('close'); +if (closeButton) { + closeButton.onclick = (): void => { + defaultSidebar.hide(); + }; +} \ No newline at end of file diff --git a/ej2-javascript/code-snippet/sidebar/sidebar-howTo-cs3/styles.css b/ej2-javascript/code-snippet/sidebar/sidebar-howTo-cs3/styles.css index e253db6a3..13a7bdc0d 100644 --- a/ej2-javascript/code-snippet/sidebar/sidebar-howTo-cs3/styles.css +++ b/ej2-javascript/code-snippet/sidebar/sidebar-howTo-cs3/styles.css @@ -1,77 +1,12 @@ #container { - visibility: hidden; + visibility: hidden; } #loader { - color: #008cff; - height: 40px; - width: 30%; - position: absolute; - top: 45%; - left: 45%; -} -.header { - width:100%; - height: 40px; - font-size:20px; - line-height: 40px; - font-weight: 500; - background: #eee; - display: inline-block; -} -.center-align { - text-align: center; - padding: 20px; -} -#close,#close:hover,#close:active,#close:focus{ /* csslint allow: adjoining-classes*/ - background: #fafafa; - color:black -} -.title { - text-align: center; - font-size: 20px; - padding: 15px; -} - -.sub-title { - text-align: center; - font-size: 16px; - padding: 10px; -} - -.center { - text-align: center; - display: none; - font-size: 13px; - font-weight: 400; - margin-top: 20px; -} - -#wrapper { - display: block; -} - -.sb-content-tab .center { /* csslint allow: adjoining-classes*/ - display: block; -} - -.sb-content-tab #wrapper { /* csslint allow: adjoining-classes*/ - display: none; -} - -.right { - float: right; -} - -body { - margin: 0; -} - -#default-sidebar { - background-color: rgb(25, 118, 210); - color: #ffffff; -} - -.book .ej2-sample-frame { /* csslint allow: adjoining-classes */ - padding: 0; + color: #008cff; + height: 40px; + width: 30%; + position: absolute; + top: 45%; + left: 45%; } \ No newline at end of file diff --git a/ej2-javascript/code-snippet/sidebar/sidebar-howTo-cs3/ts/index.html b/ej2-javascript/code-snippet/sidebar/sidebar-howTo-cs3/ts/index.html index f00b8bf19..e8207eb84 100644 --- a/ej2-javascript/code-snippet/sidebar/sidebar-howTo-cs3/ts/index.html +++ b/ej2-javascript/code-snippet/sidebar/sidebar-howTo-cs3/ts/index.html @@ -20,7 +20,7 @@
    LOADING....
    - + - +
    Main content
    @@ -41,6 +41,39 @@
    + + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/sidebar/sidebar-list-cs1/index.js b/ej2-javascript/code-snippet/sidebar/sidebar-list-cs1/index.js index c37480582..95cd9db27 100644 --- a/ej2-javascript/code-snippet/sidebar/sidebar-list-cs1/index.js +++ b/ej2-javascript/code-snippet/sidebar/sidebar-list-cs1/index.js @@ -15,26 +15,18 @@ var listInstance = new ej.lists.ListView({ listInstance.appendTo('#list'); // Initialize Sidebar component -var defaultSidebar= new ej.navigations.Sidebar({ - type: "Over", +var defaultSidebar = new ej.navigations.Sidebar({ + type: "Over", width: '100%' }); defaultSidebar.appendTo('#default-sidebar'); //Click to toggle the Sidebar -document.getElementById('toggle').onclick = function() { +document.getElementById('toggle').onclick = function () { defaultSidebar.toggle(); }; // Close the sidebar -document.getElementById('close').onclick = function() { +document.getElementById('close').onclick = function () { defaultSidebar.hide(); -}; - - - - - - - - +}; \ No newline at end of file diff --git a/ej2-javascript/code-snippet/sidebar/sidebar-list-cs1/index.ts b/ej2-javascript/code-snippet/sidebar/sidebar-list-cs1/index.ts index ec7ed70d4..2571b9c57 100644 --- a/ej2-javascript/code-snippet/sidebar/sidebar-list-cs1/index.ts +++ b/ej2-javascript/code-snippet/sidebar/sidebar-list-cs1/index.ts @@ -1,6 +1,3 @@ - - - import { Sidebar } from '@syncfusion/ej2-navigations'; import { ListView } from '@syncfusion/ej2-lists'; import { enableRipple } from '@syncfusion/ej2-base'; @@ -30,14 +27,12 @@ defaultSidebar.appendTo('#default-sidebar'); //end of Sidebar initialization // Toggle(Open/Close) the Sidebar -document.getElementById('toggle').onclick = (): void => { +document.querySelector('#toggle')?.addEventListener('click', () => { defaultSidebar.toggle(); -}; +}) // Close the Sidebar -document.getElementById('close').onclick = (): void => { +document.querySelector('#close')?.addEventListener('click', () => { defaultSidebar.hide(); -}; - - +}) \ No newline at end of file diff --git a/ej2-javascript/code-snippet/sidebar/sidebar-list-cs1/js/index.html b/ej2-javascript/code-snippet/sidebar/sidebar-list-cs1/js/index.html index 409a9491e..077311504 100644 --- a/ej2-javascript/code-snippet/sidebar/sidebar-list-cs1/js/index.html +++ b/ej2-javascript/code-snippet/sidebar/sidebar-list-cs1/js/index.html @@ -1,4 +1,7 @@ - + + + + Essential JS 2 Sidebar @@ -10,15 +13,13 @@ - - - + - +
    - + - +
    Main content
    @@ -45,11 +46,111 @@
    - - - \ No newline at end of file + + + + + + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/sidebar/sidebar-list-cs1/styles.css b/ej2-javascript/code-snippet/sidebar/sidebar-list-cs1/styles.css index d00d37640..13a7bdc0d 100644 --- a/ej2-javascript/code-snippet/sidebar/sidebar-list-cs1/styles.css +++ b/ej2-javascript/code-snippet/sidebar/sidebar-list-cs1/styles.css @@ -9,137 +9,4 @@ position: absolute; top: 45%; left: 45%; -} - -.center-align { - text-align: center; - padding: 20px; -} - -.header { - width: 100%; - height: 40px; - font-size: 20px; - line-height: 40px; - font-weight: 500; - background: #eee; - display: inline-block; -} - -.close-btn, -.e-listview .e-list-item, -#default-sidebar { - background-color: rgb(20, 118, 210); - color: #ffffff; -} - -.close-btn { - box-shadow: none; -} - -.closebtn { - top: 15px; - line-height: 36px; - height: 42px; - color: black; - position: absolute; - right: 10px; -} - -#listcontainer { - width: 100%; -} - -#list { - margin: 0 auto; - width: 30%; -} - -.close-icon::before { - content: "\e109"; -} - -.e-listview .e-list-item { - text-align: center; - font-size: 14px; - padding: 0; -} - -.e-btn.close-btn :hover { - /* csslint allow: adjoining-classes*/ - box-shadow: none; - background: transparent; -} - -.e-icons.close-icon { - /* csslint allow: adjoining-classes*/ - line-height: 2.2; -} - -.title1 { - text-align: center; - font-size: 20px; - padding: 15px; -} - -.title2 { - text-align: center; - font-size: 20px; - padding: 15px; -} - -.sub-title { - text-align: center; - font-size: 12px; - padding: 10px; -} - -.center { - text-align: center; - display: none; - font-size: 13px; - font-weight: 400; - margin-top: 20px; -} - -.col-lg-12.col-sm-12.col-md-12, -.control-section { - /* csslint allow: adjoining-classes*/ - padding: 0; -} - -#wrapper { - display: block; -} - -.sb-content-tab .center { - display: block; -} - -.sb-content-tab #wrapper { - display: none; -} - -.right { - float: right; -} - -body { - margin: 0; -} - -.close-btn:hover { - color: #fafafa; -} - -.content-section { - /* csslint allow: adjoining-classes */ - padding: 30px 10px 10px 20px; -} - -@font-face { - font-family: 'e-icons'; - src: url(data:application/x-font-ttf;charset=utf-8;base64,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) format('truetype'); - font-weight: normal; - font-style: normal; } \ No newline at end of file diff --git a/ej2-javascript/code-snippet/sidebar/sidebar-list-cs1/ts/index.html b/ej2-javascript/code-snippet/sidebar/sidebar-list-cs1/ts/index.html index a09154d95..6c0d33fda 100644 --- a/ej2-javascript/code-snippet/sidebar/sidebar-list-cs1/ts/index.html +++ b/ej2-javascript/code-snippet/sidebar/sidebar-list-cs1/ts/index.html @@ -20,22 +20,22 @@
    LOADING....
    - + - +
    Main content
    @@ -45,6 +45,104 @@
    + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/sidebar/sidebar-same-position-cs1/index.js b/ej2-javascript/code-snippet/sidebar/sidebar-same-position-cs1/index.js index a3b252fe9..b55a4052b 100644 --- a/ej2-javascript/code-snippet/sidebar/sidebar-same-position-cs1/index.js +++ b/ej2-javascript/code-snippet/sidebar/sidebar-same-position-cs1/index.js @@ -1,22 +1,22 @@ ej.base.enableRipple(true); //Dock Sidebar initialization -var dockBar= new ej.navigations.Sidebar({ - width: '220px', - dockSize: '72px', - enableDock: true, - type:'Push', - target:'e-main-content', - zIndex:3000 +var dockBar = new ej.navigations.Sidebar({ + width: '220px', + dockSize: '72px', + enableDock: true, + type: 'Push', + target: 'e-main-content', + zIndex: 3000 }); dockBar.appendTo('#dockSidebar'); //end of DockSidebar initialization //Default Sidebar initialization var defaultSidebar = new ej.navigations.Sidebar({ - target:'e-main-content', - type:"Push" - }); + target: 'e-main-content', + type: "Push" +}); defaultSidebar.appendTo('#default-sidebar'); //end of DefaultSidebar initialization @@ -24,5 +24,4 @@ defaultSidebar.appendTo('#default-sidebar'); //switch the expand and collapse state document.getElementById('buttonClick').onclick = function () { defaultSidebar.toggle(); -}; - +}; \ No newline at end of file diff --git a/ej2-javascript/code-snippet/sidebar/sidebar-same-position-cs1/index.ts b/ej2-javascript/code-snippet/sidebar/sidebar-same-position-cs1/index.ts index aeea8f1ff..d14e13c44 100644 --- a/ej2-javascript/code-snippet/sidebar/sidebar-same-position-cs1/index.ts +++ b/ej2-javascript/code-snippet/sidebar/sidebar-same-position-cs1/index.ts @@ -1,33 +1,27 @@ - - - import { Sidebar } from '@syncfusion/ej2-navigations'; import { enableRipple } from '@syncfusion/ej2-base'; enableRipple(true); //Dock Sidebar initialization let dockBar: Sidebar = new Sidebar({ - width: '220px', - dockSize: '72px', - enableDock: true, - type:'Push', - target:'e-main-content', - zIndex:3000 + width: '220px', + dockSize: '72px', + enableDock: true, + type: 'Push', + target: 'e-main-content', + zIndex: 3000 }); dockBar.appendTo('#dockSidebar'); //end of DockSidebar initialization let defaultSidebar: Sidebar = new Sidebar({ - target:'e-main-content', - type:"Push", - }); + target: 'e-main-content', + type: "Push", +}); defaultSidebar.appendTo('#default-sidebar'); //end of DefaultSidebar initialization //switch the expand and collapse state - document.getElementById('buttonClick').onclick = function () { - defaultSidebar.toggle(); - }; - - - +document.querySelector('#buttonClick')?.addEventListener('click', () => { + defaultSidebar.toggle(); +}) \ No newline at end of file diff --git a/ej2-javascript/code-snippet/sidebar/sidebar-same-position-cs1/js/index.html b/ej2-javascript/code-snippet/sidebar/sidebar-same-position-cs1/js/index.html index 5b4f0d92a..7faafba58 100644 --- a/ej2-javascript/code-snippet/sidebar/sidebar-same-position-cs1/js/index.html +++ b/ej2-javascript/code-snippet/sidebar/sidebar-same-position-cs1/js/index.html @@ -1,4 +1,7 @@ - + + + + Essential JS 2 Sidebar @@ -10,43 +13,40 @@ - - - + -
    - + - +
    + - + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/sidebar/sidebar-treeview-cs1/index.js b/ej2-javascript/code-snippet/sidebar/sidebar-treeview-cs1/index.js index b3b993596..39b6bb2e5 100644 --- a/ej2-javascript/code-snippet/sidebar/sidebar-treeview-cs1/index.js +++ b/ej2-javascript/code-snippet/sidebar/sidebar-treeview-cs1/index.js @@ -1,100 +1,95 @@ ej.base.enableRipple(true); - var sidebarMenu = new ej.navigations.Sidebar({ - width: '290px', - dockSize:"44px", - enableDock: true, - target: '.main-content', - mediaQuery: '(min-width: 600px)', - created:oncreate, - close: onClose - }); - sidebarMenu.appendTo('#sidebar-treeview'); - //end of Sidebar initialization - - var data = [ - { - nodeId: '01', nodeText: 'Installation', iconCss: 'icon-microchip icon', - nodeChild: [ - { nodeId: '05-01', nodeText: 'Calendar', iconCss: 'icon-circle-thin icon' }, - { nodeId: '05-02', nodeText: 'DatePicker', iconCss: 'icon-circle-thin icon' }, - { nodeId: '05-03', nodeText: 'DateTimePicker', iconCss: 'icon-circle-thin icon' }, - { nodeId: '05-04', nodeText: 'DateRangePicker', iconCss: 'icon-circle-thin icon' }, - { nodeId: '05-05', nodeText: 'TimePicker', iconCss: 'icon-circle-thin icon' }, - { nodeId: '05-06', nodeText: 'SideBar', iconCss: 'icon-circle-thin icon' } - ] - }, - { - nodeId: '02', nodeText: 'Deployment', iconCss: 'icon-thumbs-up-alt icon', - }, - { - nodeId: '03', nodeText: 'Quick Start', iconCss: 'icon-docs icon', - }, - { - nodeId: '04', nodeText: 'Components', iconCss: 'icon-th icon', - nodeChild: [ - { nodeId: '04-01', nodeText: 'Calendar', iconCss: 'icon-circle-thin icon' }, - { nodeId: '04-02', nodeText: 'DatePicker', iconCss: 'icon-circle-thin icon' }, - { nodeId: '04-03', nodeText: 'DateTimePicker', iconCss: 'icon-circle-thin icon' }, - { nodeId: '04-04', nodeText: 'DateRangePicker', iconCss: 'icon-circle-thin icon' }, - { nodeId: '04-05', nodeText: 'TimePicker', iconCss: 'icon-circle-thin icon' }, - { nodeId: '04-06', nodeText: 'SideBar', iconCss: 'icon-circle-thin icon' } - ] - }, - { - nodeId: '05', nodeText: 'API Reference', iconCss: 'icon-code icon', - nodeChild: [ - { nodeId: '05-01', nodeText: 'Calendar', iconCss: 'icon-circle-thin icon' }, - { nodeId: '05-02', nodeText: 'DatePicker', iconCss: 'icon-circle-thin icon' }, - { nodeId: '05-03', nodeText: 'DateTimePicker', iconCss: 'icon-circle-thin icon' }, - { nodeId: '05-04', nodeText: 'DateRangePicker', iconCss: 'icon-circle-thin icon' }, - { nodeId: '05-05', nodeText: 'TimePicker', iconCss: 'icon-circle-thin icon' }, - { nodeId: '05-06', nodeText: 'SideBar', iconCss: 'icon-circle-thin icon' } - ] - }, - { - nodeId: '06', nodeText: 'Browser Compatibility', iconCss: 'icon-chrome icon' - }, - { - nodeId: '07', nodeText: 'Upgrade Packages', iconCss: 'icon-up-hand icon' - }, - { - nodeId: '08', nodeText: 'Release Notes', iconCss: 'icon-bookmark-empty icon' - }, - { - nodeId: '09', nodeText: 'FAQ', iconCss: 'icon-help-circled icon' - }, - { - nodeId: '10', nodeText: 'License', iconCss: 'icon-doc-text icon' - } - ]; +var sidebarMenu = new ej.navigations.Sidebar({ + width: '290px', + dockSize: "44px", + enableDock: true, + target: '.main-content', + mediaQuery: '(min-width: 600px)', + created: oncreate, + close: onClose +}); +sidebarMenu.appendTo('#sidebar-treeview'); +//end of Sidebar initialization - // TreeView initialization - var mainTreeView= new ej.navigations.TreeView({ - fields: { dataSource: data, id: 'nodeId', text: 'nodeText', child: 'nodeChild' }, expandOn: 'Click', - }); - - mainTreeView.appendTo('#main-treeview'); - - // Toggle the Sidebar - document.getElementById('hamburger').addEventListener('click', function () { - if(sidebarMenu.isOpen) - { - sidebarMenu.hide(); - mainTreeView.collapseAll(); - } - else { - sidebarMenu.show(); - mainTreeView.expandAll(); - } - }); - function oncreate() { - this.element.style.visibility = ''; - } - function onClose() { - mainTreeView.collapseAll(); +var data = [ + { + nodeId: '01', nodeText: 'Installation', iconCss: 'icon-microchip icon', + nodeChild: [ + { nodeId: '05-01', nodeText: 'Calendar', iconCss: 'icon-circle-thin icon' }, + { nodeId: '05-02', nodeText: 'DatePicker', iconCss: 'icon-circle-thin icon' }, + { nodeId: '05-03', nodeText: 'DateTimePicker', iconCss: 'icon-circle-thin icon' }, + { nodeId: '05-04', nodeText: 'DateRangePicker', iconCss: 'icon-circle-thin icon' }, + { nodeId: '05-05', nodeText: 'TimePicker', iconCss: 'icon-circle-thin icon' }, + { nodeId: '05-06', nodeText: 'SideBar', iconCss: 'icon-circle-thin icon' } + ] + }, + { + nodeId: '02', nodeText: 'Deployment', iconCss: 'icon-thumbs-up-alt icon', + }, + { + nodeId: '03', nodeText: 'Quick Start', iconCss: 'icon-docs icon', + }, + { + nodeId: '04', nodeText: 'Components', iconCss: 'icon-th icon', + nodeChild: [ + { nodeId: '04-01', nodeText: 'Calendar', iconCss: 'icon-circle-thin icon' }, + { nodeId: '04-02', nodeText: 'DatePicker', iconCss: 'icon-circle-thin icon' }, + { nodeId: '04-03', nodeText: 'DateTimePicker', iconCss: 'icon-circle-thin icon' }, + { nodeId: '04-04', nodeText: 'DateRangePicker', iconCss: 'icon-circle-thin icon' }, + { nodeId: '04-05', nodeText: 'TimePicker', iconCss: 'icon-circle-thin icon' }, + { nodeId: '04-06', nodeText: 'SideBar', iconCss: 'icon-circle-thin icon' } + ] + }, + { + nodeId: '05', nodeText: 'API Reference', iconCss: 'icon-code icon', + nodeChild: [ + { nodeId: '05-01', nodeText: 'Calendar', iconCss: 'icon-circle-thin icon' }, + { nodeId: '05-02', nodeText: 'DatePicker', iconCss: 'icon-circle-thin icon' }, + { nodeId: '05-03', nodeText: 'DateTimePicker', iconCss: 'icon-circle-thin icon' }, + { nodeId: '05-04', nodeText: 'DateRangePicker', iconCss: 'icon-circle-thin icon' }, + { nodeId: '05-05', nodeText: 'TimePicker', iconCss: 'icon-circle-thin icon' }, + { nodeId: '05-06', nodeText: 'SideBar', iconCss: 'icon-circle-thin icon' } + ] + }, + { + nodeId: '06', nodeText: 'Browser Compatibility', iconCss: 'icon-chrome icon' + }, + { + nodeId: '07', nodeText: 'Upgrade Packages', iconCss: 'icon-up-hand icon' + }, + { + nodeId: '08', nodeText: 'Release Notes', iconCss: 'icon-bookmark-empty icon' + }, + { + nodeId: '09', nodeText: 'FAQ', iconCss: 'icon-help-circled icon' + }, + { + nodeId: '10', nodeText: 'License', iconCss: 'icon-doc-text icon' } +]; +// TreeView initialization +var mainTreeView = new ej.navigations.TreeView({ + fields: { dataSource: data, id: 'nodeId', text: 'nodeText', child: 'nodeChild' }, expandOn: 'Click', +}); - +mainTreeView.appendTo('#main-treeview'); +// Toggle the Sidebar +document.getElementById('hamburger').addEventListener('click', function () { + if (sidebarMenu.isOpen) { + sidebarMenu.hide(); + mainTreeView.collapseAll(); + } + else { + sidebarMenu.show(); + mainTreeView.expandAll(); + } +}); +function oncreate() { + this.element.style.visibility = ''; +} +function onClose() { + mainTreeView.collapseAll(); +} \ No newline at end of file diff --git a/ej2-javascript/code-snippet/sidebar/sidebar-treeview-cs1/index.ts b/ej2-javascript/code-snippet/sidebar/sidebar-treeview-cs1/index.ts index 01f976b0b..d5a3c0335 100644 --- a/ej2-javascript/code-snippet/sidebar/sidebar-treeview-cs1/index.ts +++ b/ej2-javascript/code-snippet/sidebar/sidebar-treeview-cs1/index.ts @@ -1,78 +1,74 @@ - - - import { Sidebar, TreeView } from '@syncfusion/ej2-navigations'; -import { ListView } from '@syncfusion/ej2-lists'; import { enableRipple } from '@syncfusion/ej2-base'; enableRipple(true); let sidebarMenu: Sidebar = new Sidebar({ width: '290px', - dockSize:"44px", + dockSize: "44px", enableDock: true, target: '.main-content', mediaQuery: '(min-width: 600px)', - created:onCreate, + created: onCreate, close: onClose }); sidebarMenu.appendTo('#sidebar-treeview'); let data: { [key: string]: Object }[] = [ - { - nodeId: '01', nodeText: 'Installation', iconCss: 'icon-microchip icon', - nodeChild: [ - { nodeId: '05-01', nodeText: 'Calendar', iconCss: 'icon-circle-thin icon' }, - { nodeId: '05-02', nodeText: 'DatePicker', iconCss: 'icon-circle-thin icon' }, - { nodeId: '05-03', nodeText: 'DateTimePicker', iconCss: 'icon-circle-thin icon' }, - { nodeId: '05-04', nodeText: 'DateRangePicker', iconCss: 'icon-circle-thin icon' }, - { nodeId: '05-05', nodeText: 'TimePicker', iconCss: 'icon-circle-thin icon' }, - { nodeId: '05-06', nodeText: 'SideBar', iconCss: 'icon-circle-thin icon' } - ] - }, - { - nodeId: '02', nodeText: 'Deployment', iconCss: 'icon-thumbs-up-alt icon', - }, - { - nodeId: '03', nodeText: 'Quick Start', iconCss: 'icon-docs icon', - }, - { - nodeId: '04', nodeText: 'Components', iconCss: 'icon-th icon', - nodeChild: [ - { nodeId: '04-01', nodeText: 'Calendar', iconCss: 'icon-circle-thin icon' }, - { nodeId: '04-02', nodeText: 'DatePicker', iconCss: 'icon-circle-thin icon' }, - { nodeId: '04-03', nodeText: 'DateTimePicker', iconCss: 'icon-circle-thin icon' }, - { nodeId: '04-04', nodeText: 'DateRangePicker', iconCss: 'icon-circle-thin icon' }, - { nodeId: '04-05', nodeText: 'TimePicker', iconCss: 'icon-circle-thin icon' }, - { nodeId: '04-06', nodeText: 'SideBar', iconCss: 'icon-circle-thin icon' } - ] - }, - { - nodeId: '05', nodeText: 'API Reference', iconCss: 'icon-code icon', - nodeChild: [ - { nodeId: '05-01', nodeText: 'Calendar', iconCss: 'icon-circle-thin icon' }, - { nodeId: '05-02', nodeText: 'DatePicker', iconCss: 'icon-circle-thin icon' }, - { nodeId: '05-03', nodeText: 'DateTimePicker', iconCss: 'icon-circle-thin icon' }, - { nodeId: '05-04', nodeText: 'DateRangePicker', iconCss: 'icon-circle-thin icon' }, - { nodeId: '05-05', nodeText: 'TimePicker', iconCss: 'icon-circle-thin icon' }, - { nodeId: '05-06', nodeText: 'SideBar', iconCss: 'icon-circle-thin icon' } - ] - }, - { - nodeId: '06', nodeText: 'Browser Compatibility', iconCss: 'icon-chrome icon' - }, - { - nodeId: '07', nodeText: 'Upgrade Packages', iconCss: 'icon-up-hand icon' - }, - { - nodeId: '08', nodeText: 'Release Notes', iconCss: 'icon-bookmark-empty icon' - }, - { - nodeId: '09', nodeText: 'FAQ', iconCss: 'icon-help-circled icon' - }, - { - nodeId: '10', nodeText: 'License', iconCss: 'icon-doc-text icon' - } + { + nodeId: '01', nodeText: 'Installation', iconCss: 'icon-microchip icon', + nodeChild: [ + { nodeId: '05-01', nodeText: 'Calendar', iconCss: 'icon-circle-thin icon' }, + { nodeId: '05-02', nodeText: 'DatePicker', iconCss: 'icon-circle-thin icon' }, + { nodeId: '05-03', nodeText: 'DateTimePicker', iconCss: 'icon-circle-thin icon' }, + { nodeId: '05-04', nodeText: 'DateRangePicker', iconCss: 'icon-circle-thin icon' }, + { nodeId: '05-05', nodeText: 'TimePicker', iconCss: 'icon-circle-thin icon' }, + { nodeId: '05-06', nodeText: 'SideBar', iconCss: 'icon-circle-thin icon' } + ] + }, + { + nodeId: '02', nodeText: 'Deployment', iconCss: 'icon-thumbs-up-alt icon', + }, + { + nodeId: '03', nodeText: 'Quick Start', iconCss: 'icon-docs icon', + }, + { + nodeId: '04', nodeText: 'Components', iconCss: 'icon-th icon', + nodeChild: [ + { nodeId: '04-01', nodeText: 'Calendar', iconCss: 'icon-circle-thin icon' }, + { nodeId: '04-02', nodeText: 'DatePicker', iconCss: 'icon-circle-thin icon' }, + { nodeId: '04-03', nodeText: 'DateTimePicker', iconCss: 'icon-circle-thin icon' }, + { nodeId: '04-04', nodeText: 'DateRangePicker', iconCss: 'icon-circle-thin icon' }, + { nodeId: '04-05', nodeText: 'TimePicker', iconCss: 'icon-circle-thin icon' }, + { nodeId: '04-06', nodeText: 'SideBar', iconCss: 'icon-circle-thin icon' } + ] + }, + { + nodeId: '05', nodeText: 'API Reference', iconCss: 'icon-code icon', + nodeChild: [ + { nodeId: '05-01', nodeText: 'Calendar', iconCss: 'icon-circle-thin icon' }, + { nodeId: '05-02', nodeText: 'DatePicker', iconCss: 'icon-circle-thin icon' }, + { nodeId: '05-03', nodeText: 'DateTimePicker', iconCss: 'icon-circle-thin icon' }, + { nodeId: '05-04', nodeText: 'DateRangePicker', iconCss: 'icon-circle-thin icon' }, + { nodeId: '05-05', nodeText: 'TimePicker', iconCss: 'icon-circle-thin icon' }, + { nodeId: '05-06', nodeText: 'SideBar', iconCss: 'icon-circle-thin icon' } + ] + }, + { + nodeId: '06', nodeText: 'Browser Compatibility', iconCss: 'icon-chrome icon' + }, + { + nodeId: '07', nodeText: 'Upgrade Packages', iconCss: 'icon-up-hand icon' + }, + { + nodeId: '08', nodeText: 'Release Notes', iconCss: 'icon-bookmark-empty icon' + }, + { + nodeId: '09', nodeText: 'FAQ', iconCss: 'icon-help-circled icon' + }, + { + nodeId: '10', nodeText: 'License', iconCss: 'icon-doc-text icon' + } ]; // TreeView initialization @@ -82,9 +78,8 @@ let mainTreeView: TreeView = new TreeView({ mainTreeView.appendTo('#main-treeview'); -document.getElementById('hamburger').onclick = (): void => { - if(sidebarMenu.isOpen) - { +document.querySelector('#hamburger')?.addEventListener('click', () => { + if (sidebarMenu.isOpen) { sidebarMenu.hide(); mainTreeView.collapseAll(); } @@ -92,14 +87,11 @@ document.getElementById('hamburger').onclick = (): void => { sidebarMenu.show(); mainTreeView.expandAll(); } -}; +}) + function onCreate(): void { this.element.style.visibility = ''; } function onClose(args: any) { mainTreeView.collapseAll(); -} - - - - +} \ No newline at end of file diff --git a/ej2-javascript/code-snippet/sidebar/sidebar-treeview-cs1/js/index.html b/ej2-javascript/code-snippet/sidebar/sidebar-treeview-cs1/js/index.html index 75c03170d..2c4aebf72 100644 --- a/ej2-javascript/code-snippet/sidebar/sidebar-treeview-cs1/js/index.html +++ b/ej2-javascript/code-snippet/sidebar/sidebar-treeview-cs1/js/index.html @@ -1,4 +1,7 @@ - + + + + Essential JS 2 Sidebar @@ -10,15 +13,12 @@ - - - + -
    - +
    • @@ -26,15 +26,15 @@
    • Support
    - - + +
    - +
    + + + + - - - \ No newline at end of file + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/sidebar/sidebar-treeview-cs1/styles.css b/ej2-javascript/code-snippet/sidebar/sidebar-treeview-cs1/styles.css index f2de95d7a..13a7bdc0d 100644 --- a/ej2-javascript/code-snippet/sidebar/sidebar-treeview-cs1/styles.css +++ b/ej2-javascript/code-snippet/sidebar/sidebar-treeview-cs1/styles.css @@ -1,174 +1,12 @@ -/* header-section styles */ -#header-section.main-header { - border-bottom: 1px solid #d2d6de; - height: 55px; - min-height: 55px; - max-height: 55px; - background: #1c86c8; - color: #fff; -} - -#header-section .header-style { - line-height: 40px; - height: 55px; - padding: 8px; - list-style: none; - cursor: pointer; - text-align: center; - font-size: 18px; -} - -#header-section .border-left { - border-left: 1px solid #d2d6de; - width: 10em; -} - -#header-section .float-left { - float: left; - padding-right: 0px; -} - -#header-section .icon-menu { - width: 40px; -} - - -#header-section .header-list, -#sidebar-treeview .e-treeview, -#sidebar-treeview .e-treeview .e-ul { - padding: 0; - margin: 0; - overflow:hidden; -} - -/*end of header-section styles */ - -/*main-menu-header styles */ -#sidebar-treeview .main-menu .main-menu-header { - color: #656a70; - padding: 15px; - font-size: 14px; - width: 13em; - margin: 0; -} - -/*end of main-menu-header styles */ - -/*text input styles */ -#sidebar-treeview .main-menu .search-icon { - text-indent: 10px; - height: 30px; - width: 19em; -} - -/*end of text input styles */ - -/* table of content area styles */ -#sidebar-treeview .table-content { - padding: 20px; - height: 8em; -} - -/* end of table ofcontent area styles */ - -/* content area styles */ -#main-text.main-content { - overflow: hidden; -} - -#main-text .sidebar-content .line { - width: 100%; - height: 1px; - border-bottom: 1px dashed #ddd; - margin: 40px 0; -} - -#main-text .sidebar-content { - padding: 15px; -} - -#main-text .sidebar-heading { - color: #1c86c8; - margin: 40px 0; - padding: 2px; -} - -#main-text .paragraph-content { -font-family: 'Poppins', sans-serif; -padding: 5px; -font-weight: 300; -color: grey; -} - -/* end of content area styles */ - -/* body and html styles */ - -/* end of body and html styles */ - -/* icon styles */ -@font-face { - font-family: 'fontello'; - src: url('data:application/octet-stream;base64,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') format('truetype'); -} - -#sidebar-treeview #main-treeview .icon { - font-family: 'fontello'; - font-size: 16px; -} - -#header-section.main-header .icon-menu::before { - content: '\e801'; - font-family: 'fontello'; - font-size: 27px; -} - -#sidebar-treeview #main-treeview .icon-microchip::before { - content: '\e806'; -} - -#sidebar-treeview #main-treeview .icon-thumbs-up-alt::before { - content: '\e805'; -} - -#sidebar-treeview #main-treeview .icon-docs::before { - content: '\e802'; -} - -#sidebar-treeview #main-treeview .icon-th::before { - content: '\e803'; -} - -#sidebar-treeview #main-treeview .icon-code::before { - content: '\e804'; -} - -#sidebar-treeview #main-treeview .icon-chrome::before { - content: '\e807'; -} - -#sidebar-treeview #main-treeview .icon-up-hand::before { - content: '\e810'; -} - -#sidebar-treeview #main-treeview .icon-bookmark-empty::before { - content: '\e811'; -} - -#sidebar-treeview #main-treeview .icon-help-circled::before { - content: '\e813'; -} - -#sidebar-treeview #main-treeview .icon-doc-text::before { - content: '\e812'; -} - -#sidebar-treeview #main-treeview .icon-circle-thin::before { - content: '\e808'; -} -.e-sidebar.e-open #main-treeview .e-text-content { - padding: 0 0 0 24px; -} -.e-sidebar.e-close #main-treeview .e-text-content { - padding: 0 0 0 8.5px; -} +#container { + visibility: hidden; +} + +#loader { + color: #008cff; + height: 40px; + width: 30%; + position: absolute; + top: 45%; + left: 45%; +} \ No newline at end of file diff --git a/ej2-javascript/code-snippet/sidebar/sidebar-treeview-cs1/ts/index.html b/ej2-javascript/code-snippet/sidebar/sidebar-treeview-cs1/ts/index.html index 1c834bcfe..65c1de519 100644 --- a/ej2-javascript/code-snippet/sidebar/sidebar-treeview-cs1/ts/index.html +++ b/ej2-javascript/code-snippet/sidebar/sidebar-treeview-cs1/ts/index.html @@ -20,7 +20,7 @@
    LOADING....
    - +
    • @@ -28,15 +28,15 @@
    • Support
    - - + +
    - +
    + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/sidebar/top-bottom-positions-cs1/index.js b/ej2-javascript/code-snippet/sidebar/top-bottom-positions-cs1/index.js index 1236d53f5..0ea275829 100644 --- a/ej2-javascript/code-snippet/sidebar/top-bottom-positions-cs1/index.js +++ b/ej2-javascript/code-snippet/sidebar/top-bottom-positions-cs1/index.js @@ -1,55 +1,54 @@ -// Top sidebar initialization +// Top Sidebar initialization var topSidebar = new ej.navigations.Sidebar({ type: "Push", open: top_sidebar_open, close: top_sidebar_close }); topSidebar.appendTo('#top-sidebar'); -// Bottom sidebar initialization +// Bottom Sidebar initialization var bottomSidebar = new ej.navigations.Sidebar({ type: "Push", open: bottom_sidebar_open, close: bottom_sidebar_close }); bottomSidebar.appendTo('#bottom-sidebar'); -// Top sidebar toogle button initialization +// Top Sidebar toggle button initialization var topBtn = new ej.buttons.Button({ cssClass: 'e-info' }); topBtn.appendTo('#top-btn'); -// Bottom sidebar toogle button initialization +// Bottom Sidebar toggle button initialization var bottomBtn = new ej.buttons.Button({ cssClass: 'e-info' }); bottomBtn.appendTo('#bottom-btn'); -document.getElementById('top-btn').onclick = function() { +document.getElementById('top-btn').onclick = function () { topSidebar.toggle(); } -document.getElementById('bottom-btn').onclick = function() { +document.getElementById('bottom-btn').onclick = function () { bottomSidebar.toggle(); } function top_sidebar_open() { - var element = document.getElementsByClassName("e-content-animation")[0]; - element.style.height = (element.offsetHeight - 75) + "px"; - element.classList.add("top_content_animation"); - // Remove the e-left class in sidebar - topSidebar.element.classList.remove("e-left"); - // Add the custom class to sidebar - topSidebar.element.classList.add("top_sidebar"); + var element = document.getElementsByClassName("e-content-animation")[0]; + element.style.height = (element.offsetHeight - 75) + "px"; + element.classList.add("top_content_animation"); + // Remove the e-left class in Sidebar + topSidebar.element.classList.remove("e-left"); + // Add the custom class to Sidebar + topSidebar.element.classList.add("top_sidebar"); } function top_sidebar_close() { - var element = document.getElementsByClassName("e-content-animation")[0]; - element.style.height = (element.offsetHeight + 75) + "px"; - element.classList.remove("top_content_animation"); + var element = document.getElementsByClassName("e-content-animation")[0]; + element.style.height = (element.offsetHeight + 75) + "px"; + element.classList.remove("top_content_animation"); } function bottom_sidebar_open() { - var element = document.getElementsByClassName("e-content-animation")[0]; - element.style.height = (element.offsetHeight - 75) + "px"; - element.classList.add("bottom_animation_content"); - // Remove the e-left class in sidebar - bottomSidebar.element.classList.remove("e-left"); - // Add the custom class to sidebar - bottomSidebar.element.classList.add("bottom_sidebar"); + var element = document.getElementsByClassName("e-content-animation")[0]; + element.style.height = (element.offsetHeight - 75) + "px"; + element.classList.add("bottom_animation_content"); + // Remove the e-left class in Sidebar + bottomSidebar.element.classList.remove("e-left"); + // Add the custom class to Sidebar + bottomSidebar.element.classList.add("bottom_sidebar"); } function bottom_sidebar_close() { - var element = document.getElementsByClassName("e-content-animation")[0]; - element.style.height = (element.offsetHeight + 75) + "px"; - element.classList.remove("bottom_animation_content"); -} - + var element = document.getElementsByClassName("e-content-animation")[0]; + element.style.height = (element.offsetHeight + 75) + "px"; + element.classList.remove("bottom_animation_content"); +} \ No newline at end of file diff --git a/ej2-javascript/code-snippet/sidebar/top-bottom-positions-cs1/index.ts b/ej2-javascript/code-snippet/sidebar/top-bottom-positions-cs1/index.ts index b00b0c068..2c7d94a4d 100644 --- a/ej2-javascript/code-snippet/sidebar/top-bottom-positions-cs1/index.ts +++ b/ej2-javascript/code-snippet/sidebar/top-bottom-positions-cs1/index.ts @@ -1,63 +1,57 @@ - - - import { Sidebar } from '@syncfusion/ej2-navigations'; import { Button } from '@syncfusion/ej2-buttons'; -// Top sidebar initialization +// Top Sidebar initialization let topSidebar: Sidebar = new Sidebar({ type: "Push", open: top_sidebar_open, close: top_sidebar_close }); topSidebar.appendTo('#top-sidebar'); -// Bottom sidebar initialization +// Bottom Sidebar initialization let bottomSidebar: Sidebar = new Sidebar({ type: "Push", open: bottom_sidebar_open, close: bottom_sidebar_close }); bottomSidebar.appendTo('#bottom-sidebar'); -// Top sidebar toogle button initialization +// Top Sidebar toggle button initialization let topBtn: Button = new Button({ cssClass: 'e-info' }); topBtn.appendTo('#top-btn'); -// Bottom sidebar toogle button initialization +// Bottom Sidebar toggle button initialization let bottomBtn: Button = new Button({ cssClass: 'e-info' }); bottomBtn.appendTo('#bottom-btn'); -topBtn.element.onclick = ()=>{ +topBtn.element.onclick = () => { topSidebar.toggle(); } -bottomBtn.element.onclick = ()=>{ +bottomBtn.element.onclick = () => { bottomSidebar.toggle(); } function top_sidebar_open() { - let element: Element = document.getElementsByClassName("e-content-animation")[0]; - (element).style.height = ((element).offsetHeight - 75) + "px"; - element.classList.add("top_content_animation"); - // Remove the e-left class in sidebar - topSidebar.element.classList.remove("e-left"); - // Add the custom class to sidebar - topSidebar.element.classList.add("top_sidebar"); + let element: Element = document.getElementsByClassName("e-content-animation")[0]; + (element).style.height = ((element).offsetHeight - 75) + "px"; + element.classList.add("top_content_animation"); + // Remove the e-left class in Sidebar + topSidebar.element.classList.remove("e-left"); + // Add the custom class to Sidebar + topSidebar.element.classList.add("top_sidebar"); } function top_sidebar_close() { - let element: Element = document.getElementsByClassName("e-content-animation")[0]; - (element).style.height = ((element).offsetHeight + 75) + "px"; - element.classList.remove("top_content_animation"); + let element: Element = document.getElementsByClassName("e-content-animation")[0]; + (element).style.height = ((element).offsetHeight + 75) + "px"; + element.classList.remove("top_content_animation"); } function bottom_sidebar_open() { - let element: Element = document.getElementsByClassName("e-content-animation")[0]; - (element).style.height = ((element).offsetHeight - 75) + "px"; - element.classList.add("bottom_animation_content"); - // Remove the e-left class in sidebar - bottomSidebar.element.classList.remove("e-left"); - // Add the custom class to sidebar - bottomSidebar.element.classList.add("bottom_sidebar"); + let element: Element = document.getElementsByClassName("e-content-animation")[0]; + (element).style.height = ((element).offsetHeight - 75) + "px"; + element.classList.add("bottom_animation_content"); + // Remove the e-left class in Sidebar + bottomSidebar.element.classList.remove("e-left"); + // Add the custom class to Sidebar + bottomSidebar.element.classList.add("bottom_sidebar"); } function bottom_sidebar_close() { - let element: Element = document.getElementsByClassName("e-content-animation")[0]; - (element).style.height = ((element).offsetHeight + 75) + "px"; - element.classList.remove("bottom_animation_content"); -} - - - + let element: Element = document.getElementsByClassName("e-content-animation")[0]; + (element).style.height = ((element).offsetHeight + 75) + "px"; + element.classList.remove("bottom_animation_content"); +} \ No newline at end of file diff --git a/ej2-javascript/code-snippet/sidebar/top-bottom-positions-cs1/js/index.html b/ej2-javascript/code-snippet/sidebar/top-bottom-positions-cs1/js/index.html index 421ab66f9..5383d4409 100644 --- a/ej2-javascript/code-snippet/sidebar/top-bottom-positions-cs1/js/index.html +++ b/ej2-javascript/code-snippet/sidebar/top-bottom-positions-cs1/js/index.html @@ -1,4 +1,7 @@ - + + + + Essential JS 2 Sidebar @@ -10,13 +13,10 @@ - - - + -
    -
    -

    Place your main content here.....

    -
    - -
    -
    - +
    +

    Place your main content here.....

    +
    + +
    +
    + +
    -
    + + + + - - - \ No newline at end of file + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/sidebar/top-bottom-positions-cs1/styles.css b/ej2-javascript/code-snippet/sidebar/top-bottom-positions-cs1/styles.css index 96134c50a..13a7bdc0d 100644 --- a/ej2-javascript/code-snippet/sidebar/top-bottom-positions-cs1/styles.css +++ b/ej2-javascript/code-snippet/sidebar/top-bottom-positions-cs1/styles.css @@ -1,96 +1,12 @@ -/* sample-level styles */ -body { - overflow: hidden; -} - -.e-main-content { - text-align: center; - background: #f5f5f5; - font-size: 16px; - overflow: auto; -} - -.sub-content { - height: 378px; - padding: 50px; -} - -#button-align { - padding: 10px; -} - -.title { - text-align: center; - font-size: 20px; - padding: 5px; -} - -.content { - padding: 10px; - text-align: center; -} - -.toggle { - width: 200px; -} - -#top-sidebar, -#bottom-sidebar { - background-color: rgb(25, 118, 210); - color: #ffffff; - overflow: hidden; -} - -/* top sidbar element styles*/ -.top_sidebar.e-open { - transform: translateY(0%) !important; - transition: transform 0.5s ease; - visibility: visible; -} - -.top_sidebar, -#top-sidebar.e-left, -.bottom_sidebar { - width: 100% !important; - float: left; - height: 75px; -} - -.top_sidebar, -#top-sidebar.e-left { - transform: translateY(-100%) !important; -} - -.top_sidebar.e-close { - transform: translateY(-100%); -} - -.top_content_animation { - margin-left: 0px !important; - margin-top: 75px; -} - -/* end of top sidebar element styles*/ -/* bottom sidebar element styles*/ -.bottom_sidebar.e-open { - transform: translateY(0%) !important; - transition: transform 0.5s ease; - visibility: visible; - bottom: 0; - top: unset !important; - position: absolute; -} - -.bottom_sidebar.e-close { - transform: translateY(100%); -} - -#bottom-sidebar.e-left { - transform: translateY(+100%) !important; -} - -.bottom_animation_content { - margin-left: 0px !important; -} - -/* end of bottom sidebar styles*/ \ No newline at end of file +#container { + visibility: hidden; +} + +#loader { + color: #008cff; + height: 40px; + width: 30%; + position: absolute; + top: 45%; + left: 45%; +} \ No newline at end of file diff --git a/ej2-javascript/code-snippet/sidebar/top-bottom-positions-cs1/ts/index.html b/ej2-javascript/code-snippet/sidebar/top-bottom-positions-cs1/ts/index.html index 60b3c3169..8bb48db15 100644 --- a/ej2-javascript/code-snippet/sidebar/top-bottom-positions-cs1/ts/index.html +++ b/ej2-javascript/code-snippet/sidebar/top-bottom-positions-cs1/ts/index.html @@ -37,17 +37,116 @@
    -
    -

    Place your main content here.....

    -
    - +
    +

    Place your main content here.....

    +
    + +
    +
    + +
    -
    - -
    -
    + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/sidebar/types-cs1/index.js b/ej2-javascript/code-snippet/sidebar/types-cs1/index.js index 3b0a89cfd..2cd23dc9f 100644 --- a/ej2-javascript/code-snippet/sidebar/types-cs1/index.js +++ b/ej2-javascript/code-snippet/sidebar/types-cs1/index.js @@ -1,64 +1,63 @@ ej.base.enableRipple(true); - //Sidebar initialization - var defaultSidebar = new ej.navigations.Sidebar({ - type: "Push", - target: document.querySelector('.maincontent') - }); - defaultSidebar.appendTo('#default-sidebar'); - //end of sidebar initialization - - //toggle button initialization - - var togglebtn = new ej.buttons.Button({iconCss: 'e-icons burg-icon', isToggle: true, content:'Open'}, '#toggle'); - - //Click Event. - document.getElementById('toggle').onclick = function(){ - if (document.getElementById('toggle').classList.contains('e-active')) { - togglebtn.content = 'Close'; - defaultSidebar.show(); - } else { - togglebtn.content = 'Open'; - defaultSidebar.hide(); - } - }; - - // Close the sidebar - document.getElementById('close').onclick = function(){ +//Sidebar initialization +var defaultSidebar = new ej.navigations.Sidebar({ + type: "Push", + target: document.querySelector('.maincontent') +}); +defaultSidebar.appendTo('#default-sidebar'); +//end of Sidebar initialization + +//toggle button initialization + +var togglebtn = new ej.buttons.Button({ iconCss: 'e-icons burg-icon', isToggle: true, content: 'Open' }, '#toggle'); + +//Click Event. +document.getElementById('toggle').onclick = function () { + if (document.getElementById('toggle').classList.contains('e-active')) { + togglebtn.content = 'Close'; + defaultSidebar.show(); + } else { + togglebtn.content = 'Open'; defaultSidebar.hide(); - document.getElementById('toggle').classList.remove('e-active'); - togglebtn.content = 'Open' - }; - - var typeOver = new ej.buttons.RadioButton({ label: 'Over', name: 'state', checked: true, change: Change }); - typeOver.appendTo('#over'); - - //unchecked state. - var typePush = new ej.buttons.RadioButton({ label: 'Push', name: 'state', change: Change }); - typePush.appendTo('#push'); - - var typeSlide = new ej.buttons.RadioButton({ label: 'Slide', name: 'state', change: Change }); - typeSlide.appendTo('#slide'); - - //unchecked state. - var typeAuto = new ej.buttons.RadioButton({ label: 'Auto', name: 'state', change: Change }); - typeAuto.appendTo('#auto'); - - // Change the type of the Sidebar - function Change(args) { - if (args.event.target.id == "over") { - defaultSidebar.type = "Over"; - defaultSidebar.dataBind(); - } else if (args.event.target.id == "push") { - defaultSidebar.type = "Push"; - defaultSidebar.dataBind(); - } - else if (args.event.target.id == "slide") { - defaultSidebar.type = "Slide"; - defaultSidebar.dataBind(); - } - else { - defaultSidebar.type = "Auto"; - defaultSidebar.dataBind(); - } -} - + } +}; + +// Close the Sidebar +document.getElementById('close').onclick = function () { + defaultSidebar.hide(); + document.getElementById('toggle').classList.remove('e-active'); + togglebtn.content = 'Open' +}; + +var typeOver = new ej.buttons.RadioButton({ label: 'Over', name: 'state', checked: true, change: Change }); +typeOver.appendTo('#over'); + +//unchecked state. +var typePush = new ej.buttons.RadioButton({ label: 'Push', name: 'state', change: Change }); +typePush.appendTo('#push'); + +var typeSlide = new ej.buttons.RadioButton({ label: 'Slide', name: 'state', change: Change }); +typeSlide.appendTo('#slide'); + +//unchecked state. +var typeAuto = new ej.buttons.RadioButton({ label: 'Auto', name: 'state', change: Change }); +typeAuto.appendTo('#auto'); + +// Change the type of the Sidebar +function Change(args) { + if (args.event.target.id == "over") { + defaultSidebar.type = "Over"; + defaultSidebar.dataBind(); + } else if (args.event.target.id == "push") { + defaultSidebar.type = "Push"; + defaultSidebar.dataBind(); + } + else if (args.event.target.id == "slide") { + defaultSidebar.type = "Slide"; + defaultSidebar.dataBind(); + } + else { + defaultSidebar.type = "Auto"; + defaultSidebar.dataBind(); + } +} \ No newline at end of file diff --git a/ej2-javascript/code-snippet/sidebar/types-cs1/index.ts b/ej2-javascript/code-snippet/sidebar/types-cs1/index.ts index 04b79c89c..a0a836439 100644 --- a/ej2-javascript/code-snippet/sidebar/types-cs1/index.ts +++ b/ej2-javascript/code-snippet/sidebar/types-cs1/index.ts @@ -1,7 +1,5 @@ - - import { Sidebar } from '@syncfusion/ej2-navigations'; -import { Button,RadioButton, ChangeArgs } from '@syncfusion/ej2-buttons'; +import { Button, RadioButton, ChangeArgs } from '@syncfusion/ej2-buttons'; import { enableRipple } from '@syncfusion/ej2-base'; enableRipple(true); @@ -13,25 +11,26 @@ defaultSidebar.appendTo('#default-sidebar'); //end of Sidebar initialization //toggle button initialization -let togglebtn: Button = new Button({iconCss: 'e-icons burg-icon', isToggle: true, content:'Open'}, '#toggle'); +let togglebtn: Button = new Button({ iconCss: 'e-icons e-menu', isToggle: true, content: 'Open' }, '#toggle'); //Click Event. -document.getElementById('toggle').onclick = (): void => { - if (document.getElementById('toggle').classList.contains('e-active')) { - togglebtn.content = 'Close'; - defaultSidebar.show(); - } else { - togglebtn.content = 'Open'; - defaultSidebar.hide(); - } - }; + +document.querySelector('#toggle')?.addEventListener("click", () => { + if (document.getElementById('toggle')?.classList.contains('e-active')) { + togglebtn.content = 'Close'; + defaultSidebar.show(); + } else { + togglebtn.content = 'Open'; + defaultSidebar.hide(); + } +}) // Close the Sidebar -document.getElementById('close').onclick = (): void => { +document.querySelector('#close')?.addEventListener("click", () => { defaultSidebar.hide(); - document.getElementById('toggle').classList.remove('e-active'); + document.getElementById('toggle')?.classList.remove('e-active'); togglebtn.content = 'Open' -}; +}) let typeOver: RadioButton = new RadioButton({ label: 'Over', name: 'state', change: Change }); typeOver.appendTo('#over'); @@ -50,11 +49,11 @@ typeAuto.appendTo('#auto'); //change the togglebtn state. function Changestate() { if (defaultSidebar.type == "Auto") { - document.getElementById('toggle').classList.add('e-active'); + document.getElementById('toggle')?.classList.add('e-active'); togglebtn.content = 'close'; } else { - document.getElementById('toggle').classList.remove('e-active'); + document.getElementById('toggle')?.classList.remove('e-active'); togglebtn.content = 'Open'; } } @@ -73,6 +72,4 @@ function Change(args: ChangeArgs) { } Changestate(); defaultSidebar.dataBind(); -} - - +} \ No newline at end of file diff --git a/ej2-javascript/code-snippet/sidebar/types-cs1/js/index.html b/ej2-javascript/code-snippet/sidebar/types-cs1/js/index.html index 29047ace1..753bcd011 100644 --- a/ej2-javascript/code-snippet/sidebar/types-cs1/js/index.html +++ b/ej2-javascript/code-snippet/sidebar/types-cs1/js/index.html @@ -1,4 +1,7 @@ - + + + + Essential JS 2 Sidebar @@ -11,13 +14,10 @@ - - - + -
    - + -
    -
    -
    Main content
    -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    +
    +
    +
    Main content
    +
    +
    + +
    +
    + +
    +
    + +
    +
    +
    -
    + +
    + + + + + - - - \ No newline at end of file + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/sidebar/types-cs1/styles.css b/ej2-javascript/code-snippet/sidebar/types-cs1/styles.css index 857079ee0..13a7bdc0d 100644 --- a/ej2-javascript/code-snippet/sidebar/types-cs1/styles.css +++ b/ej2-javascript/code-snippet/sidebar/types-cs1/styles.css @@ -9,127 +9,4 @@ position: absolute; top: 45%; left: 45%; -} - -.header { - width: 100%; - height: 40px; - font-size: 20px; - line-height: 40px; - font-weight: 500; - background: #eee; - display: inline-block; -} - -.center-align { - text-align: center; - padding: 20px; -} - -.burg-icon:before { - content: '\e10d'; - font-size: 16px; -} - -.title { - text-align: center; - font-size: 20px; - padding: 15px; -} - -#head { - border: 1px solid #424242; - border-bottom-color: transparent; - background: #00897B; -} - -#container .e-btn.e-info, -#container .e-btn.e-info:hover, -#container .e-btn.e-info:focus { - /* csslint allow: adjoining-classes*/ - background: #00695C; - box-shadow: none; - border-radius: 0; - height: 39px; - width: 100px; -} - -#close, -#close:hover, -#close:active, -#close:focus { - /* csslint allow: adjoining-classes*/ - background: #fafafa; - color: black -} - -.sub-title { - text-align: center; - font-size: 16px; - padding: 10px; -} - -.radiobutton { - padding: 10px; -} - -.content { - width: 100%; - height: 334px; -} - -.center { - text-align: center; - display: none; - font-size: 13px; - font-weight: 400; - margin-top: 20px; -} - -#wrapper { - display: block; -} - -.sb-content-tab .center { - /* csslint allow: adjoining-classes*/ - display: block; -} - -.sb-content-tab #wrapper { - /* csslint allow: adjoining-classes*/ - display: none; -} - -.right { - float: right; -} - -body { - margin: 0; -} - -#default-sidebar { - background-color: #26A69A; - color: #ffffff; -} - -.close-btn:hover { - color: #fafafa; -} - -.content-section { - /* csslint allow: adjoining-classes */ - padding: 30px 10px 10px 20px; -} - -.book .ej2-sample-frame { - /* csslint allow: adjoining-classes */ - padding: 0; -} - -@font-face { - font-family: 'e-icons'; - src: url(data:application/x-font-ttf;charset=utf-8;base64,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) format('truetype'); - font-weight: normal; - font-style: normal; } \ No newline at end of file diff --git a/ej2-javascript/code-snippet/sidebar/types-cs1/ts/index.html b/ej2-javascript/code-snippet/sidebar/types-cs1/ts/index.html index fd4897f00..0322e9734 100644 --- a/ej2-javascript/code-snippet/sidebar/types-cs1/ts/index.html +++ b/ej2-javascript/code-snippet/sidebar/types-cs1/ts/index.html @@ -32,33 +32,118 @@
    - + -
    -
    -
    Main content
    -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    +
    +
    +
    Main content
    +
    +
    + +
    +
    + +
    +
    + +
    +
    +
    -
    + +
    + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/sidebar/web-cs1/index.js b/ej2-javascript/code-snippet/sidebar/web-cs1/index.js index 1e524e5fb..21b2d4765 100644 --- a/ej2-javascript/code-snippet/sidebar/web-cs1/index.js +++ b/ej2-javascript/code-snippet/sidebar/web-cs1/index.js @@ -1,8 +1,7 @@ ej.base.enableRipple(true); - //Sidebar initialization - var defaultSidebar = new ej.navigations.Sidebar({ - width:'280px', - mediaQuery: window.matchMedia('(min-width: 600px)') - }); - defaultSidebar.appendTo('#default'); - +//Sidebar initialization +var defaultSidebar = new ej.navigations.Sidebar({ + width: '280px', + mediaQuery: window.matchMedia('(min-width: 600px)') +}); +defaultSidebar.appendTo('#default'); \ No newline at end of file diff --git a/ej2-javascript/code-snippet/sidebar/web-cs1/index.ts b/ej2-javascript/code-snippet/sidebar/web-cs1/index.ts index df943219c..3161101df 100644 --- a/ej2-javascript/code-snippet/sidebar/web-cs1/index.ts +++ b/ej2-javascript/code-snippet/sidebar/web-cs1/index.ts @@ -1,6 +1,3 @@ - - - import { Sidebar } from '@syncfusion/ej2-navigations'; import { enableRipple } from '@syncfusion/ej2-base'; enableRipple(true); @@ -8,8 +5,4 @@ enableRipple(true); let defaultSidebar: Sidebar = new Sidebar({ mediaQuery: window.matchMedia('(min-width: 600px)'), width: "280px", }); -defaultSidebar.appendTo('#default'); - //end of Sidebar initialization - - - +defaultSidebar.appendTo('#default'); \ No newline at end of file diff --git a/ej2-javascript/code-snippet/sidebar/web-cs1/js/index.html b/ej2-javascript/code-snippet/sidebar/web-cs1/js/index.html index aa8bd6cee..d359e7908 100644 --- a/ej2-javascript/code-snippet/sidebar/web-cs1/js/index.html +++ b/ej2-javascript/code-snippet/sidebar/web-cs1/js/index.html @@ -1,4 +1,7 @@ - + + + + Essential JS 2 Sidebar @@ -10,19 +13,16 @@ - - - + -
    - +
    Main content
    @@ -30,12 +30,58 @@
    + + + + - - - \ No newline at end of file + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/sidebar/web-cs1/styles.css b/ej2-javascript/code-snippet/sidebar/web-cs1/styles.css index f433688bf..86c21c260 100644 --- a/ej2-javascript/code-snippet/sidebar/web-cs1/styles.css +++ b/ej2-javascript/code-snippet/sidebar/web-cs1/styles.css @@ -9,73 +9,4 @@ position: absolute; top: 45%; left: 45%; -} -.header { - width:100%; - height: 40px; - font-size:20px; - line-height: 40px; - font-weight: 500; - background: #eee; - display: inline-block; -} -.center-align { - text-align: center; - padding: 20px; -} - -.title { - text-align: center; - font-size: 20px; - padding: 15px; -} - -.sub-title { - text-align: center; - font-size: 14px; - padding: 10px; -} - -.center { - text-align: center; - display: none; - font-size: 13px; - font-weight: 400; - margin-top: 20px; -} - -#wrapper { - display: block; -} - -.sb-content-tab .center { - display: block; -} - -.sb-content-tab #wrapper { - display: none; -} - -.right { - float: right; -} - -body { - margin: 0; -} - -#default { - background-color: rgb(25, 118, 210); - color: #ffffff; -} - -.close-btn:hover { - color: #fafafa; -} - -.content-section { /* csslint allow: adjoining-classes */ - padding: 30px 10px 10px 20px; -} -.book .ej2-sample-frame { /* csslint allow: adjoining-classes */ - padding: 0; } \ No newline at end of file diff --git a/ej2-javascript/code-snippet/sidebar/web-cs1/ts/index.html b/ej2-javascript/code-snippet/sidebar/web-cs1/ts/index.html index 5ad42fe2e..46f5a3521 100644 --- a/ej2-javascript/code-snippet/sidebar/web-cs1/ts/index.html +++ b/ej2-javascript/code-snippet/sidebar/web-cs1/ts/index.html @@ -24,13 +24,58 @@ - +
    Main content
    * Sidebar will collapse in mobile mode automatically
    + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/slider/bar-customization-cs1/index.css b/ej2-javascript/code-snippet/slider/bar-customization-cs1/index.css index dc16a3186..be2d6a07f 100644 --- a/ej2-javascript/code-snippet/slider/bar-customization-cs1/index.css +++ b/ej2-javascript/code-snippet/slider/bar-customization-cs1/index.css @@ -11,71 +11,4 @@ position: absolute; top: 45%; width: 30%; -} - -.slider-content-wrapper { - width: 40%; - margin: 0 auto; - min-width: 185px; -} - -.slider-userselect { - -webkit-user-select: none; - /* Safari 3.1+ */ - -moz-user-select: none; - /* Firefox 2+ */ - -ms-user-select: none; - /* IE 10+ */ - user-select: none; - /* Standard syntax */ -} - -.slider-labeltext { - text-align: left; - font-weight: 500; - font-size: 13px; - padding-bottom: 10px; -} - -#height_slider .e-handle, #gradient_slider .e-handle { - height: 20px; - width: 20px; - margin-left: -10px; - top: calc(50% - 10px); -} - -.slider_container { - margin-top: 40px; -} - -#height_slider .e-tab-handle::after { - background-color: #f9920b; -} - -#height_slider .e-slider-track { - height: 8px; - top: calc(50% - 4px); - border-radius: 0; -} - - - -#gradient_slider .e-range { - height: 6px; - top: calc(50% - 3px); - border-radius: 5px; - background: -moz-linear-gradient(left, #e1451d 0, #fdff47 17%, #86f9fe 50%, #2900f8 65%, #6e00f8 74%, #e33df9 83%, #e14423 100%); - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#1e5799), color-stop(100%,#7db9e8)); - background: -webkit-linear-gradient(left, #e1451d 0, #fdff47 17%, #86f9fe 50%, #2900f8 65%, #6e00f8 74%, #e33df9 83%, #e14423 100%); - background: linear-gradient(left, #e1451d 0, #fdff47 17%, #86f9fe 50%, #2900f8 65%, #6e00f8 74%, #e33df9 83%, #e14423 100%); - background: -o-linear-gradient(left, #e1451d 0%,#e14423 100%); - background: -ms-linear-gradient(left, #e1451d 0%,#e14423 100%); - -} - - -#gradient_slider .e-slider-track { - height: 8px; - top: calc(50% - 4px); - border-radius: 5px; } \ No newline at end of file diff --git a/ej2-javascript/code-snippet/slider/bar-customization-cs1/index.js b/ej2-javascript/code-snippet/slider/bar-customization-cs1/index.js index db0767490..dedb6f813 100644 --- a/ej2-javascript/code-snippet/slider/bar-customization-cs1/index.js +++ b/ej2-javascript/code-snippet/slider/bar-customization-cs1/index.js @@ -1,11 +1,11 @@ -// Initialize slider component +// Initialize Range Slider Control var heightSlider = new ej.inputs.Slider({ // Set the value for slider value: 30, min: 0, max: 100 }); heightSlider.appendTo('#height_slider'); -// Initialize slider component +// Initialize Range Slider Control var gradientSlider = new ej.inputs.Slider({ // Set slider minimum and maximum values min: 0, max: 100, @@ -16,7 +16,7 @@ var gradientSlider = new ej.inputs.Slider({ gradientSlider.appendTo('#gradient_slider'); var sliderTrack; var sliderHandle; -// Initialize slider component +// Initialize Range Slider Control var dynamicColorSlider = new ej.inputs.Slider({ // Set slider minimum and maximum values min: 0, max: 100, @@ -53,6 +53,4 @@ var dynamicColorSlider = new ej.inputs.Slider({ } } }); -dynamicColorSlider.appendTo('#dynamic_color_slider'); - - +dynamicColorSlider.appendTo('#dynamic_color_slider'); \ No newline at end of file diff --git a/ej2-javascript/code-snippet/slider/bar-customization-cs1/index.ts b/ej2-javascript/code-snippet/slider/bar-customization-cs1/index.ts index ae2fa3997..661717906 100644 --- a/ej2-javascript/code-snippet/slider/bar-customization-cs1/index.ts +++ b/ej2-javascript/code-snippet/slider/bar-customization-cs1/index.ts @@ -1,63 +1,58 @@ - - - import { Slider, SliderChangeEventArgs } from '@syncfusion/ej2-inputs'; - // Initialize Slider component - let heightSlider: Slider = new Slider({ - // Set the value for slider - value: 30, - min: 0, max: 100 - }); - heightSlider.appendTo('#height_slider'); - - // Initialize Slider component - let gradientSlider: Slider = new Slider({ - // Set slider minimum and maximum values - min: 0, max: 100, - // Set the intial range values for slider - value: 50, - type: 'MinRange' - }); - gradientSlider.appendTo('#gradient_slider'); - - let sliderTrack: HTMLElement; - let sliderHandle: HTMLElement; - - // Initialize Slider component - let dynamicColorSlider: Slider = new Slider({ - // Set slider minimum and maximum values - min: 0, max: 100, - value: 20, - type: 'MinRange', - // Handler used for slider created event - created: () => { - sliderTrack = (document.getElementById('dynamic_color_slider') as HTMLElement).querySelector('.e-range'); - sliderHandle = (document.getElementById('dynamic_color_slider') as HTMLElement).querySelector('.e-handle'); +// Initialize Range Slider Control +let heightSlider: Slider = new Slider({ + // Set the value for slider + value: 30, + min: 0, max: 100 +}); +heightSlider.appendTo('#height_slider'); + +// Initialize Range Slider Control +let gradientSlider: Slider = new Slider({ + // Set slider minimum and maximum values + min: 0, max: 100, + // Set the intial range values for slider + value: 50, + type: 'MinRange' +}); +gradientSlider.appendTo('#gradient_slider'); + +let sliderTrack: HTMLElement; +let sliderHandle: HTMLElement; + +// Initialize Range Slider Control +let dynamicColorSlider: Slider = new Slider({ + // Set slider minimum and maximum values + min: 0, max: 100, + value: 20, + type: 'MinRange', + // Handler used for slider created event + created: () => { + sliderTrack = (document.getElementById('dynamic_color_slider') as HTMLElement).querySelector('.e-range') as HTMLElement; + sliderHandle = (document.getElementById('dynamic_color_slider') as HTMLElement).querySelector('.e-handle') as HTMLElement; + (sliderHandle as HTMLElement).style.backgroundColor = 'green'; + (sliderTrack as HTMLElement).style.backgroundColor = 'green'; + }, + // Handler used for slider change event + change: (args: SliderChangeEventArgs) => { + if ((args.value as number) > 0 && (args.value as number) <= 25) { + // Change handle and range bar color to green when (sliderHandle as HTMLElement).style.backgroundColor = 'green'; (sliderTrack as HTMLElement).style.backgroundColor = 'green'; - }, - // Handler used for slider change event - change: (args: SliderChangeEventArgs) => { - if (args.value > 0 && args.value <= 25) { - // Change handle and range bar color to green when - (sliderHandle as HTMLElement).style.backgroundColor = 'green'; - (sliderTrack as HTMLElement).style.backgroundColor = 'green'; - } else if (args.value > 25 && args.value <= 50) { - // Change handle and range bar color to royal blue - (sliderHandle as HTMLElement).style.backgroundColor = 'royalblue'; - (sliderTrack as HTMLElement).style.backgroundColor = 'royalblue'; - } else if (args.value > 50 && args.value <= 75) { - // Change handle and range bar color to dark orange - (sliderHandle as HTMLElement).style.backgroundColor = 'darkorange'; - (sliderTrack as HTMLElement).style.backgroundColor = 'darkorange'; - } else if (args.value > 75 && args.value <= 100) { - // Change handle and range bar color to red - (sliderHandle as HTMLElement).style.backgroundColor = 'red'; - (sliderTrack as HTMLElement).style.backgroundColor = 'red'; - } + } else if ((args.value as number) > 25 && (args.value as number) <= 50) { + // Change handle and range bar color to royal blue + (sliderHandle as HTMLElement).style.backgroundColor = 'royalblue'; + (sliderTrack as HTMLElement).style.backgroundColor = 'royalblue'; + } else if ((args.value as number) > 50 && (args.value as number) <= 75) { + // Change handle and range bar color to dark orange + (sliderHandle as HTMLElement).style.backgroundColor = 'darkorange'; + (sliderTrack as HTMLElement).style.backgroundColor = 'darkorange'; + } else if ((args.value as number) > 75 && (args.value as number) <= 100) { + // Change handle and range bar color to red + (sliderHandle as HTMLElement).style.backgroundColor = 'red'; + (sliderTrack as HTMLElement).style.backgroundColor = 'red'; } - }); - dynamicColorSlider.appendTo('#dynamic_color_slider'); - - + } +}); +dynamicColorSlider.appendTo('#dynamic_color_slider'); \ No newline at end of file diff --git a/ej2-javascript/code-snippet/slider/bar-customization-cs1/js/index.html b/ej2-javascript/code-snippet/slider/bar-customization-cs1/js/index.html index 382c2c02b..9399ed579 100644 --- a/ej2-javascript/code-snippet/slider/bar-customization-cs1/js/index.html +++ b/ej2-javascript/code-snippet/slider/bar-customization-cs1/js/index.html @@ -1,21 +1,21 @@ - - Essential JS 2 Slider + + + + + Essential JS 2 Range Slider - + - - - + -
    @@ -36,12 +36,78 @@
    + + + + - - - \ No newline at end of file + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/slider/bar-customization-cs1/ts/index.html b/ej2-javascript/code-snippet/slider/bar-customization-cs1/ts/index.html index 62718007c..45871078c 100644 --- a/ej2-javascript/code-snippet/slider/bar-customization-cs1/ts/index.html +++ b/ej2-javascript/code-snippet/slider/bar-customization-cs1/ts/index.html @@ -2,10 +2,10 @@ - Essential JS 2 Slider + Essential JS 2 Range Slider - + @@ -37,6 +37,71 @@
    + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/slider/date-format-cs1/index.css b/ej2-javascript/code-snippet/slider/date-format-cs1/index.css index b904553e9..475a1181e 100644 --- a/ej2-javascript/code-snippet/slider/date-format-cs1/index.css +++ b/ej2-javascript/code-snippet/slider/date-format-cs1/index.css @@ -12,11 +12,3 @@ top: 45%; width: 30%; } - -.wrap { - box-sizing: border-box; - height: 260px; - margin: 0 auto; - padding: 30px 10px; - width: 460px; -} diff --git a/ej2-javascript/code-snippet/slider/date-format-cs1/index.js b/ej2-javascript/code-snippet/slider/date-format-cs1/index.js index d11e6daa0..c4647f14e 100644 --- a/ej2-javascript/code-snippet/slider/date-format-cs1/index.js +++ b/ej2-javascript/code-snippet/slider/date-format-cs1/index.js @@ -1,4 +1,4 @@ -// Initialize slider component +// Initialize Range Slider Control var dateObj = new ej.inputs.Slider({ /** * Initialize the min and max values of the slider using JavaScript date functions @@ -32,7 +32,5 @@ var dateObj = new ej.inputs.Slider({ }, showButtons: true }); -// Render initialized Slider -dateObj.appendTo('#slider'); - - +// Render initialized Range Slider Control +dateObj.appendTo('#slider'); \ No newline at end of file diff --git a/ej2-javascript/code-snippet/slider/date-format-cs1/index.ts b/ej2-javascript/code-snippet/slider/date-format-cs1/index.ts index c25278e48..20738ec6e 100644 --- a/ej2-javascript/code-snippet/slider/date-format-cs1/index.ts +++ b/ej2-javascript/code-snippet/slider/date-format-cs1/index.ts @@ -1,10 +1,7 @@ - - - import { Slider, SliderTickEventArgs, SliderTooltipEventArgs } from '@syncfusion/ej2-inputs'; -// Initialize slider control - let dateObj: Slider = new Slider({ +// Initialize Range Slider Control +let dateObj: Slider = new Slider({ /** * Initialize the min and max values of the slider using JavaScript date functions @@ -19,7 +16,7 @@ import { Slider, SliderTickEventArgs, SliderTooltipEventArgs } from '@syncfusion tooltipChange: function (args: SliderTooltipEventArgs) { let totalMiliSeconds = Number(args.text); // Convert the current milliseconds to the respective date in desired format - let custom = { year: "numeric", month: "short", day: "numeric" }; + let custom: Intl.DateTimeFormatOptions = { year: "numeric", month: "short", day: "numeric" }; args.text = new Date(totalMiliSeconds).toLocaleDateString("en-us", custom); }, tooltip: { @@ -29,7 +26,7 @@ import { Slider, SliderTickEventArgs, SliderTooltipEventArgs } from '@syncfusion renderingTicks: function (args: SliderTickEventArgs) { let totalMiliSeconds = Number(args.value); // Convert the current milliseconds to the respective date in desired format - let custom = { year: "numeric", month: "short", day: "numeric" }; + let custom: Intl.DateTimeFormatOptions = { year: "numeric", month: "short", day: "numeric" }; args.text = new Date(totalMiliSeconds).toLocaleDateString("en-us", custom); }, ticks: { @@ -39,8 +36,5 @@ import { Slider, SliderTickEventArgs, SliderTooltipEventArgs } from '@syncfusion }, showButtons: true }); -// Render initialized Slider -dateObj.appendTo('#slider'); - - - +// Render initialized Range Slider Control +dateObj.appendTo('#slider'); \ No newline at end of file diff --git a/ej2-javascript/code-snippet/slider/date-format-cs1/js/index.html b/ej2-javascript/code-snippet/slider/date-format-cs1/js/index.html index 07af5032f..4e73267c9 100644 --- a/ej2-javascript/code-snippet/slider/date-format-cs1/js/index.html +++ b/ej2-javascript/code-snippet/slider/date-format-cs1/js/index.html @@ -1,21 +1,21 @@ - - Essential JS 2 Slider + + + + + Essential JS 2 Range Slider - + - - - + -
    @@ -23,12 +23,22 @@
    + + + + - - - \ No newline at end of file + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/slider/date-format-cs1/ts/index.html b/ej2-javascript/code-snippet/slider/date-format-cs1/ts/index.html index 85a3b90b9..46fbfb884 100644 --- a/ej2-javascript/code-snippet/slider/date-format-cs1/ts/index.html +++ b/ej2-javascript/code-snippet/slider/date-format-cs1/ts/index.html @@ -2,10 +2,10 @@ - Essential JS 2 Slider + Essential JS 2 Range Slider - + @@ -24,6 +24,15 @@
    + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/slider/default-limit-cs1/index.css b/ej2-javascript/code-snippet/slider/default-limit-cs1/index.css index 80c3d4c1c..475a1181e 100644 --- a/ej2-javascript/code-snippet/slider/default-limit-cs1/index.css +++ b/ej2-javascript/code-snippet/slider/default-limit-cs1/index.css @@ -12,11 +12,3 @@ top: 45%; width: 30%; } - -.wrap { - box-sizing: border-box; - height: 140px; - margin: 100px auto; - padding: 30px 10px; - width: 260px; -} diff --git a/ej2-javascript/code-snippet/slider/default-limit-cs1/index.js b/ej2-javascript/code-snippet/slider/default-limit-cs1/index.js index 1d6df7e1e..57e60d2cf 100644 --- a/ej2-javascript/code-snippet/slider/default-limit-cs1/index.js +++ b/ej2-javascript/code-snippet/slider/default-limit-cs1/index.js @@ -5,9 +5,7 @@ var slider = new ej.inputs.Slider({ value: 30, type: 'MinRange', limits: { enabled: true, minStart: 10, minEnd: 40 }, - tootip: { isVisible: true } + tooltip: { isVisible: true } }); -// Render initialized Slider -slider.appendTo('#slider'); - - +// Render initialized Range Slider Control +slider.appendTo('#slider'); \ No newline at end of file diff --git a/ej2-javascript/code-snippet/slider/default-limit-cs1/index.ts b/ej2-javascript/code-snippet/slider/default-limit-cs1/index.ts index 757e56440..82ec36ec9 100644 --- a/ej2-javascript/code-snippet/slider/default-limit-cs1/index.ts +++ b/ej2-javascript/code-snippet/slider/default-limit-cs1/index.ts @@ -1,6 +1,3 @@ - - - import { Slider } from '@syncfusion/ej2-inputs'; // Initialization of Slider @@ -10,10 +7,7 @@ let slider: Slider = new Slider({ value: 30, type: 'MinRange', limits: { enabled: true, minStart: 10, minEnd: 40 }, - tootip: { isVisible: true } + tooltip: { isVisible: true } }); -// Render initialized Slider -slider.appendTo('#slider'); - - - +// Render initialized Range Slider Control +slider.appendTo('#slider'); \ No newline at end of file diff --git a/ej2-javascript/code-snippet/slider/default-limit-cs1/js/index.html b/ej2-javascript/code-snippet/slider/default-limit-cs1/js/index.html index 08b4e2df8..71964a9e4 100644 --- a/ej2-javascript/code-snippet/slider/default-limit-cs1/js/index.html +++ b/ej2-javascript/code-snippet/slider/default-limit-cs1/js/index.html @@ -1,32 +1,44 @@ - - Essential JS 2 Slider - - - - - - - - - - - - + + + + + Essential JS 2 Range Slider + + + + + + + + + + + - -
    -
    -
    -
    -
    +
    +
    +
    +
    +
    + + + + + - - - \ No newline at end of file + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/slider/default-limit-cs1/ts/index.html b/ej2-javascript/code-snippet/slider/default-limit-cs1/ts/index.html index bbe8e689b..a4d7734e7 100644 --- a/ej2-javascript/code-snippet/slider/default-limit-cs1/ts/index.html +++ b/ej2-javascript/code-snippet/slider/default-limit-cs1/ts/index.html @@ -2,10 +2,10 @@ - Essential JS 2 Slider + Essential JS 2 Range Slider - + @@ -15,13 +15,24 @@ +
    Loading....
    -
    -
    +
    +
    + + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/slider/es5-getting-started-cs1/index.css b/ej2-javascript/code-snippet/slider/es5-getting-started-cs1/index.css index e7d2c3b7b..9230e3e48 100644 --- a/ej2-javascript/code-snippet/slider/es5-getting-started-cs1/index.css +++ b/ej2-javascript/code-snippet/slider/es5-getting-started-cs1/index.css @@ -11,12 +11,4 @@ position: absolute; top: 45%; width: 30%; -} - -.wrap { - box-sizing: border-box; - height: 140px; - margin: 100px auto; - padding: 30px 10px; - width: 260px; } \ No newline at end of file diff --git a/ej2-javascript/code-snippet/slider/es5-getting-started-cs1/js/index.html b/ej2-javascript/code-snippet/slider/es5-getting-started-cs1/js/index.html index 2b7ecfa70..7fac7b89b 100644 --- a/ej2-javascript/code-snippet/slider/es5-getting-started-cs1/js/index.html +++ b/ej2-javascript/code-snippet/slider/es5-getting-started-cs1/js/index.html @@ -1,28 +1,46 @@ - - - - - Essential JS 2 - - - - - - - - - - - - - -
    - - - \ No newline at end of file + + + Essential JS 2 + + + + + + + + + + + + + +
    + +
    +
    + + + + + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/slider/events-cs1/index.css b/ej2-javascript/code-snippet/slider/events-cs1/index.css index b904553e9..475a1181e 100644 --- a/ej2-javascript/code-snippet/slider/events-cs1/index.css +++ b/ej2-javascript/code-snippet/slider/events-cs1/index.css @@ -12,11 +12,3 @@ top: 45%; width: 30%; } - -.wrap { - box-sizing: border-box; - height: 260px; - margin: 0 auto; - padding: 30px 10px; - width: 460px; -} diff --git a/ej2-javascript/code-snippet/slider/events-cs1/index.js b/ej2-javascript/code-snippet/slider/events-cs1/index.js index 450094603..92d37ce09 100644 --- a/ej2-javascript/code-snippet/slider/events-cs1/index.js +++ b/ej2-javascript/code-snippet/slider/events-cs1/index.js @@ -1,4 +1,4 @@ -// Initialize Slider component +// Initialize Range Slider Control var eventObj = new ej.inputs.Slider({ // Minimum value min: 0, @@ -13,7 +13,7 @@ var eventObj = new ej.inputs.Slider({ }, renderingTicks: function (args) { // Weekdays Array - var daysArr = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thrusday', 'Friday', 'Saturday']; + var daysArr = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']; // Customizing each ticks text into weeksdays args.text = daysArr[parseFloat(args.value)]; }, @@ -27,7 +27,5 @@ var eventObj = new ej.inputs.Slider({ isVisible: true } }); -// Render initialized Slider -eventObj.appendTo('#slider'); - - +// Render initialized Range Slider Control +eventObj.appendTo('#slider'); \ No newline at end of file diff --git a/ej2-javascript/code-snippet/slider/events-cs1/index.ts b/ej2-javascript/code-snippet/slider/events-cs1/index.ts index 82693f306..0df22d1e7 100644 --- a/ej2-javascript/code-snippet/slider/events-cs1/index.ts +++ b/ej2-javascript/code-snippet/slider/events-cs1/index.ts @@ -1,39 +1,33 @@ - - - import { Slider, SliderTickEventArgs, SliderTooltipEventArgs } from '@syncfusion/ej2-inputs'; -// Initialize Slider control - let eventObj: Slider = new Slider({ - // Minimum value - min: 0, - // Maximum value - max: 6, - // Slider current value - value: 2, - // Assigning ticks data - ticks: { - placement: 'After', - largeStep: 1 - }, - renderingTicks: function (args: SliderTickEventArgs) { - // Weekdays Array - let daysArr: string [] = ['Sunday','Monday','Tuesday','Wednesday','Thrusday','Friday','Saturday']; - // Customizing each ticks text into weeksdays - args.text = daysArr[parseFloat(args.value as any)]; - }, - tooltipChange: function (args: SliderTooltipEventArgs) { - // Customizing tooltip to display the Day (in numeric) of the week - args.text = 'Day ' + (Number(args.value) + 1).toString(); - }, - // Assigning tooltip data - tooltip: { - placement: 'Before', - isVisible: true - } - }); - // Render initialized Slider - eventObj.appendTo('#slider'); - - - +// Initialize Range Slider Control +let eventObj: Slider = new Slider({ + // Minimum value + min: 0, + // Maximum value + max: 6, + // Slider current value + value: 2, + // Assigning ticks data + ticks: { + placement: 'After', + largeStep: 1 + }, + renderingTicks: function (args: SliderTickEventArgs) { + // Weekdays Array + let daysArr: string[] = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']; + // Customizing each ticks text into weeksdays + args.text = daysArr[parseFloat(args.value as any)]; + }, + tooltipChange: function (args: SliderTooltipEventArgs) { + // Customizing tooltip to display the Day (in numeric) of the week + args.text = 'Day ' + (Number(args.value) + 1).toString(); + }, + // Assigning tooltip data + tooltip: { + placement: 'Before', + isVisible: true + } +}); +// Render initialized Range Slider Control +eventObj.appendTo('#slider'); \ No newline at end of file diff --git a/ej2-javascript/code-snippet/slider/events-cs1/js/index.html b/ej2-javascript/code-snippet/slider/events-cs1/js/index.html index 07af5032f..4e73267c9 100644 --- a/ej2-javascript/code-snippet/slider/events-cs1/js/index.html +++ b/ej2-javascript/code-snippet/slider/events-cs1/js/index.html @@ -1,21 +1,21 @@ - - Essential JS 2 Slider + + + + + Essential JS 2 Range Slider - + - - - + -
    @@ -23,12 +23,22 @@
    + + + + - - - \ No newline at end of file + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/slider/events-cs1/ts/index.html b/ej2-javascript/code-snippet/slider/events-cs1/ts/index.html index 85a3b90b9..46fbfb884 100644 --- a/ej2-javascript/code-snippet/slider/events-cs1/ts/index.html +++ b/ej2-javascript/code-snippet/slider/events-cs1/ts/index.html @@ -2,10 +2,10 @@ - Essential JS 2 Slider + Essential JS 2 Range Slider - + @@ -24,6 +24,15 @@
    + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/slider/form-validation-cs1/index.css b/ej2-javascript/code-snippet/slider/form-validation-cs1/index.css index 5211a42c7..1ebb22eb6 100644 --- a/ej2-javascript/code-snippet/slider/form-validation-cs1/index.css +++ b/ej2-javascript/code-snippet/slider/form-validation-cs1/index.css @@ -11,55 +11,4 @@ position: absolute; top: 45%; width: 30%; -} - -.highcontrast form { - background: #000000 -} - -/* csslint ignore:start */ -.highcontrast label.e-custom-label, -.highcontrast label.e-float-text, -.highcontrast label.salary, -.highcontrast input::placeholder, -.highcontrast .e-float-input label.e-float-text { - color: #fff !important; - line-height: 2.3; -} -/* csslint ignore:end */ - -.e-error, -.e-float-text { - font-weight: 500; -} - -table, -td, -th { - padding: 5px; -} - -.form-horizontal .form-group { - margin-left: 0; - margin-right: 0; -} - -form { - border: 1px solid #ccc; - box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.36); - border-radius: 5px; - background: #f9f9f9; - padding: 23px; - padding-bottom: 20px; - margin: auto; - max-width: 650px; -} - -.form-title { - width: 100%; - text-align: center; - padding: 10px; - font-size: 16px; - font-weight: 600; - color: black; } \ No newline at end of file diff --git a/ej2-javascript/code-snippet/slider/form-validation-cs1/index.js b/ej2-javascript/code-snippet/slider/form-validation-cs1/index.js index 084b7ada0..96e18ec20 100644 --- a/ej2-javascript/code-snippet/slider/form-validation-cs1/index.js +++ b/ej2-javascript/code-snippet/slider/form-validation-cs1/index.js @@ -1,4 +1,4 @@ -// Initialize Slider component +// Initialize Range Slider Control var SliderMinObj = new ej.inputs.Slider({ type: 'MinRange', value: 30, @@ -21,7 +21,7 @@ function onMinChanged(args) { // validate the slider value in the form formMinObj.validate(); } -// Initialize Slider component +// Initialize Range Slider Control var SliderMaxObj = new ej.inputs.Slider({ type: 'MinRange', value: 30, @@ -44,7 +44,7 @@ function onMaxChanged(args) { // validate the slider value in the form formMaxObj.validate(); } -// Initialize Slider component +// Initialize Range Slider Control var SliderValObj = new ej.inputs.Slider({ type: 'MinRange', value: 30, @@ -67,7 +67,7 @@ function onValChanged(args) { // validate the slider value in the form formValObj.validate(); } -// Initialize Slider component +// Initialize Range Slider Control var SliderRangeObj = new ej.inputs.Slider({ type: 'MinRange', value: 30, @@ -90,7 +90,7 @@ function onRangeChanged(args) { // validate the slider value in the form formRangeObj.validate(); } -// Initialize Slider component +// Initialize Range Slider Control var SliderCustomObj = new ej.inputs.Slider({ type: 'Range', value: [30, 70], @@ -115,6 +115,4 @@ function onCustomChanged(args) { } function validateRange(args) { return SliderCustomObj.value[0] >= 40 && SliderCustomObj.value[1] <= 80; -} - - +} \ No newline at end of file diff --git a/ej2-javascript/code-snippet/slider/form-validation-cs1/index.ts b/ej2-javascript/code-snippet/slider/form-validation-cs1/index.ts index 6eaee892f..06d5caedb 100644 --- a/ej2-javascript/code-snippet/slider/form-validation-cs1/index.ts +++ b/ej2-javascript/code-snippet/slider/form-validation-cs1/index.ts @@ -1,11 +1,7 @@ - - - import { Slider } from '@syncfusion/ej2-inputs'; import { FormValidator, FormValidatorModel } from '@syncfusion/ej2-inputs'; -import { Button } from '@syncfusion/ej2-buttons'; -// Initialize Slider component +// Initialize Range Slider Control let SliderMinObj: Slider = new Slider({ type: 'MinRange', value: 30, @@ -33,7 +29,7 @@ function onMinChanged(args: any) { formMinObj.validate(); } -// Initialize Slider component +// Initialize Range Slider Control let SliderMaxObj: Slider = new Slider({ type: 'MinRange', value: 30, @@ -61,7 +57,7 @@ function onMaxChanged(args: any) { formMaxObj.validate(); } -// Initialize Slider component +// Initialize Range Slider Control let SliderValObj: Slider = new Slider({ type: 'MinRange', value: 30, @@ -89,7 +85,7 @@ function onValChanged(args: any) { formValObj.validate(); } -// Initialize Slider component +// Initialize Range Slider Control let SliderRangeObj: Slider = new Slider({ type: 'MinRange', value: 30, @@ -117,7 +113,7 @@ function onRangeChanged(args: any) { formRangeObj.validate(); } -// Initialize Slider component +// Initialize Range Slider Control let SliderCustomObj: Slider = new Slider({ type: 'Range', value: [30, 70], @@ -147,7 +143,4 @@ function onCustomChanged(args: any) { function validateRange(args: any) { return (SliderCustomObj.value as number[])[0] >= 40 && (SliderCustomObj.value as number[])[1] <= 80; -} - - - +} \ No newline at end of file diff --git a/ej2-javascript/code-snippet/slider/form-validation-cs1/js/index.html b/ej2-javascript/code-snippet/slider/form-validation-cs1/js/index.html index da79e923a..e6d7f2e6f 100644 --- a/ej2-javascript/code-snippet/slider/form-validation-cs1/js/index.html +++ b/ej2-javascript/code-snippet/slider/form-validation-cs1/js/index.html @@ -1,21 +1,21 @@ - - Essential JS 2 Slider + + + + + Essential JS 2 Range Slider - + - - - + -
    @@ -74,11 +74,50 @@
    - - - \ No newline at end of file + + + + + + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/slider/form-validation-cs1/ts/index.html b/ej2-javascript/code-snippet/slider/form-validation-cs1/ts/index.html index b51846fda..3c87d23c5 100644 --- a/ej2-javascript/code-snippet/slider/form-validation-cs1/ts/index.html +++ b/ej2-javascript/code-snippet/slider/form-validation-cs1/ts/index.html @@ -2,10 +2,10 @@ - Essential JS 2 Slider + Essential JS 2 Range Slider - + @@ -74,6 +74,43 @@
    + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/slider/format-api-cs1/index.css b/ej2-javascript/code-snippet/slider/format-api-cs1/index.css index b904553e9..c1423411b 100644 --- a/ej2-javascript/code-snippet/slider/format-api-cs1/index.css +++ b/ej2-javascript/code-snippet/slider/format-api-cs1/index.css @@ -13,10 +13,3 @@ width: 30%; } -.wrap { - box-sizing: border-box; - height: 260px; - margin: 0 auto; - padding: 30px 10px; - width: 460px; -} diff --git a/ej2-javascript/code-snippet/slider/format-api-cs1/index.js b/ej2-javascript/code-snippet/slider/format-api-cs1/index.js index a9988d4f6..a41e0652d 100644 --- a/ej2-javascript/code-snippet/slider/format-api-cs1/index.js +++ b/ej2-javascript/code-snippet/slider/format-api-cs1/index.js @@ -1,4 +1,4 @@ -// Initialize Slider component +// Initialize Range Slider Control var percentObj = new ej.inputs.Slider({ min: 0, max: 1, value: .3, step: .01, // Assigning ticks values to percentage formatting @@ -6,6 +6,5 @@ var percentObj = new ej.inputs.Slider({ // Assigning tooltip values to percentage formatting tooltip: { placement: 'Before', isVisible: true, showOn: 'Always', format: 'P0' }, }); -// Render initialized Slider -percentObj.appendTo('#slider'); - +// Render initialized Range Slider Control +percentObj.appendTo('#slider'); \ No newline at end of file diff --git a/ej2-javascript/code-snippet/slider/format-api-cs1/index.ts b/ej2-javascript/code-snippet/slider/format-api-cs1/index.ts index 7ea1c9559..446cc6f02 100644 --- a/ej2-javascript/code-snippet/slider/format-api-cs1/index.ts +++ b/ej2-javascript/code-snippet/slider/format-api-cs1/index.ts @@ -1,18 +1,12 @@ - - - import { Slider } from '@syncfusion/ej2-inputs'; -// Initialize Slider control - let percentObj: Slider = new Slider({ +// Initialize Range Slider Control +let percentObj: Slider = new Slider({ min: 0, max: 1, value: .3, step: .01, // Assigning ticks values to percentage formatting ticks: { placement: 'After', largeStep: .2, smallStep: .1, showSmallTicks: true, format: 'P0' }, // Assigning tooltip values to percentage formatting tooltip: { placement: 'Before', isVisible: true, showOn: 'Always', format: 'P0' }, }); -// Render initialized Slider -percentObj.appendTo('#slider'); - - - +// Render initialized Range Slider Control +percentObj.appendTo('#slider'); \ No newline at end of file diff --git a/ej2-javascript/code-snippet/slider/format-api-cs1/js/index.html b/ej2-javascript/code-snippet/slider/format-api-cs1/js/index.html index 07af5032f..4e73267c9 100644 --- a/ej2-javascript/code-snippet/slider/format-api-cs1/js/index.html +++ b/ej2-javascript/code-snippet/slider/format-api-cs1/js/index.html @@ -1,21 +1,21 @@ - - Essential JS 2 Slider + + + + + Essential JS 2 Range Slider - + - - - + -
    @@ -23,12 +23,22 @@
    + + + + - - - \ No newline at end of file + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/slider/format-api-cs1/ts/index.html b/ej2-javascript/code-snippet/slider/format-api-cs1/ts/index.html index 85a3b90b9..46fbfb884 100644 --- a/ej2-javascript/code-snippet/slider/format-api-cs1/ts/index.html +++ b/ej2-javascript/code-snippet/slider/format-api-cs1/ts/index.html @@ -2,10 +2,10 @@ - Essential JS 2 Slider + Essential JS 2 Range Slider - + @@ -24,6 +24,15 @@
    + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/slider/format-cs1/index.css b/ej2-javascript/code-snippet/slider/format-cs1/index.css index b904553e9..9230e3e48 100644 --- a/ej2-javascript/code-snippet/slider/format-cs1/index.css +++ b/ej2-javascript/code-snippet/slider/format-cs1/index.css @@ -11,12 +11,4 @@ position: absolute; top: 45%; width: 30%; -} - -.wrap { - box-sizing: border-box; - height: 260px; - margin: 0 auto; - padding: 30px 10px; - width: 460px; -} +} \ No newline at end of file diff --git a/ej2-javascript/code-snippet/slider/format-cs1/index.js b/ej2-javascript/code-snippet/slider/format-cs1/index.js index 4d156784a..d2db2907e 100644 --- a/ej2-javascript/code-snippet/slider/format-cs1/index.js +++ b/ej2-javascript/code-snippet/slider/format-cs1/index.js @@ -1,4 +1,4 @@ -// Initialize Slider component +// Initialize Range Slider Control var sliderObj = new ej.inputs.Slider({ min: 0, max: 100, step: 1, value: 30, // Applying currency formatting for tooltip with two decimal specifiers @@ -6,6 +6,5 @@ var sliderObj = new ej.inputs.Slider({ // Applying currency formatting for ticks with two decimal specifiers ticks: { placement: 'After', format: 'C2', largeStep: 20, smallStep: 10, showSmallTicks: true } }); -// Render initialized Slider -sliderObj.appendTo('#slider'); - +// Render initialized Range Slider Control +sliderObj.appendTo('#slider'); \ No newline at end of file diff --git a/ej2-javascript/code-snippet/slider/format-cs1/index.ts b/ej2-javascript/code-snippet/slider/format-cs1/index.ts index 84db30dea..f4d4d359d 100644 --- a/ej2-javascript/code-snippet/slider/format-cs1/index.ts +++ b/ej2-javascript/code-snippet/slider/format-cs1/index.ts @@ -1,18 +1,12 @@ - - - import { Slider } from '@syncfusion/ej2-inputs'; -// Initialize Slider control - let sliderObj: Slider = new Slider({ +// Initialize Range Slider Control +let sliderObj: Slider = new Slider({ min: 0, max: 100, step: 1, value: 30, // Applying currency formatting for tooltip with two decimal specifiers tooltip: { isVisible: true, format: 'C2' }, // Applying currency formatting for ticks with two decimal specifiers ticks: { placement: 'After', format: 'C2', largeStep: 20, smallStep: 10, showSmallTicks: true } }); -// Render initialized Slider -sliderObj.appendTo('#slider'); - - - +// Render initialized Range Slider Control +sliderObj.appendTo('#slider'); \ No newline at end of file diff --git a/ej2-javascript/code-snippet/slider/format-cs1/js/index.html b/ej2-javascript/code-snippet/slider/format-cs1/js/index.html index 07af5032f..4e73267c9 100644 --- a/ej2-javascript/code-snippet/slider/format-cs1/js/index.html +++ b/ej2-javascript/code-snippet/slider/format-cs1/js/index.html @@ -1,21 +1,21 @@ - - Essential JS 2 Slider + + + + + Essential JS 2 Range Slider - + - - - + -
    @@ -23,12 +23,22 @@
    + + + + - - - \ No newline at end of file + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/slider/format-cs1/ts/index.html b/ej2-javascript/code-snippet/slider/format-cs1/ts/index.html index 85a3b90b9..46fbfb884 100644 --- a/ej2-javascript/code-snippet/slider/format-cs1/ts/index.html +++ b/ej2-javascript/code-snippet/slider/format-cs1/ts/index.html @@ -2,10 +2,10 @@ - Essential JS 2 Slider + Essential JS 2 Range Slider - + @@ -24,6 +24,15 @@
    + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/slider/getting-started-cs5/index.css b/ej2-javascript/code-snippet/slider/getting-started-cs5/index.css index 92ffabd5c..475a1181e 100644 --- a/ej2-javascript/code-snippet/slider/getting-started-cs5/index.css +++ b/ej2-javascript/code-snippet/slider/getting-started-cs5/index.css @@ -12,11 +12,3 @@ top: 45%; width: 30%; } - -.wrap { - box-sizing: border-box; - height: 260px; - margin: 0 auto; - padding: 30px 10px; - width: 260px; -} diff --git a/ej2-javascript/code-snippet/slider/getting-started-cs5/index.ts b/ej2-javascript/code-snippet/slider/getting-started-cs5/index.ts index b2aa4e603..729a9dd6b 100644 --- a/ej2-javascript/code-snippet/slider/getting-started-cs5/index.ts +++ b/ej2-javascript/code-snippet/slider/getting-started-cs5/index.ts @@ -1,21 +1,6 @@ - - - import { Slider } from '@syncfusion/ej2-inputs'; -// Initialization of Slider -let slider: Slider = new Slider({value: 30}); -// Render initialized Slider -slider.appendTo('#slider'); - -// Added code to hide the loader element. -let loader = document.getElementById('loader'); -let container = document.getElementById('container'); -if (loader) { - loader.style.display = "none"; -} -if (container) { - container.style.visibility = "visible"; -} - - +// Initialization of Range Slider +let slider: Slider = new Slider({ value: 30 }); +// Render initialized Range Slider +slider.appendTo('#slider'); \ No newline at end of file diff --git a/ej2-javascript/code-snippet/slider/getting-started-cs5/ts/index.html b/ej2-javascript/code-snippet/slider/getting-started-cs5/ts/index.html index bbe8e689b..b8d0fe568 100644 --- a/ej2-javascript/code-snippet/slider/getting-started-cs5/ts/index.html +++ b/ej2-javascript/code-snippet/slider/getting-started-cs5/ts/index.html @@ -2,10 +2,10 @@ - Essential JS 2 Slider + Essential JS 2 Range Slider - + @@ -15,13 +15,24 @@ +
    Loading....
    -
    -
    +
    +
    + + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/slider/handle-lock-cs1/index.css b/ej2-javascript/code-snippet/slider/handle-lock-cs1/index.css index 80c3d4c1c..475a1181e 100644 --- a/ej2-javascript/code-snippet/slider/handle-lock-cs1/index.css +++ b/ej2-javascript/code-snippet/slider/handle-lock-cs1/index.css @@ -12,11 +12,3 @@ top: 45%; width: 30%; } - -.wrap { - box-sizing: border-box; - height: 140px; - margin: 100px auto; - padding: 30px 10px; - width: 260px; -} diff --git a/ej2-javascript/code-snippet/slider/handle-lock-cs1/index.js b/ej2-javascript/code-snippet/slider/handle-lock-cs1/index.js index 91011aac6..68a66ed5d 100644 --- a/ej2-javascript/code-snippet/slider/handle-lock-cs1/index.js +++ b/ej2-javascript/code-snippet/slider/handle-lock-cs1/index.js @@ -5,8 +5,7 @@ var slider = new ej.inputs.Slider({ type: 'Range', value: [30, 70], limits: { enabled: true, startHandleFixed: true, endHandleFixed: true }, - tootip: { isVisible: true } + tooltip: { isVisible: true } }); -// Render initialized Slider -slider.appendTo('#slider'); - +// Render initialized Range Slider Control +slider.appendTo('#slider'); \ No newline at end of file diff --git a/ej2-javascript/code-snippet/slider/handle-lock-cs1/index.ts b/ej2-javascript/code-snippet/slider/handle-lock-cs1/index.ts index 190e0dafd..3be5c8f35 100644 --- a/ej2-javascript/code-snippet/slider/handle-lock-cs1/index.ts +++ b/ej2-javascript/code-snippet/slider/handle-lock-cs1/index.ts @@ -1,6 +1,3 @@ - - - import { Slider } from '@syncfusion/ej2-inputs'; // Initialization of Slider @@ -12,8 +9,5 @@ let slider: Slider = new Slider({ limits: { enabled: true, startHandleFixed: true, endHandleFixed: true }, tooltip: { isVisible: true } }); -// Render initialized Slider -slider.appendTo('#slider'); - - - +// Render initialized Range Slider Control +slider.appendTo('#slider'); \ No newline at end of file diff --git a/ej2-javascript/code-snippet/slider/handle-lock-cs1/js/index.html b/ej2-javascript/code-snippet/slider/handle-lock-cs1/js/index.html index 08b4e2df8..08464284c 100644 --- a/ej2-javascript/code-snippet/slider/handle-lock-cs1/js/index.html +++ b/ej2-javascript/code-snippet/slider/handle-lock-cs1/js/index.html @@ -1,32 +1,45 @@ - - Essential JS 2 Slider - - - - - - - - - - - - + + + + + Essential JS 2 Range Slider + + + + + + + + + + + - -
    -
    -
    -
    -
    +
    +
    +
    +
    +
    + + + + + + - - - \ No newline at end of file + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/slider/handle-lock-cs1/ts/index.html b/ej2-javascript/code-snippet/slider/handle-lock-cs1/ts/index.html index bbe8e689b..a4d7734e7 100644 --- a/ej2-javascript/code-snippet/slider/handle-lock-cs1/ts/index.html +++ b/ej2-javascript/code-snippet/slider/handle-lock-cs1/ts/index.html @@ -2,10 +2,10 @@ - Essential JS 2 Slider + Essential JS 2 Range Slider - + @@ -15,13 +15,24 @@ +
    Loading....
    -
    -
    +
    +
    + + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/slider/hidden-slider-cs1/index.css b/ej2-javascript/code-snippet/slider/hidden-slider-cs1/index.css index 1a7d5409d..475a1181e 100644 --- a/ej2-javascript/code-snippet/slider/hidden-slider-cs1/index.css +++ b/ej2-javascript/code-snippet/slider/hidden-slider-cs1/index.css @@ -12,11 +12,3 @@ top: 45%; width: 30%; } - -.wrap { - box-sizing: border-box; - height: 260px; - margin: 0 auto; - padding: 80px 10px; - width: 460px; -} diff --git a/ej2-javascript/code-snippet/slider/hidden-slider-cs1/index.js b/ej2-javascript/code-snippet/slider/hidden-slider-cs1/index.js index 7772ecd59..dbdf6f541 100644 --- a/ej2-javascript/code-snippet/slider/hidden-slider-cs1/index.js +++ b/ej2-javascript/code-snippet/slider/hidden-slider-cs1/index.js @@ -1,15 +1,15 @@ // Initialize button component var button = new ej.buttons.Button({ content: 'Button' }); button.appendTo('#element'); -// Initialize Slider component +// Initialize Range Slider Control var defaultObj = new ej.inputs.Slider({ // Set slider minimum and maximum values - // new Date(Year, Month, day, hours, minutes, seconds, millseconds) + // new Date(Year, Month, day, hours, minutes, seconds, millSeconds) min: new Date(2013, 6, 13, 11).getTime(), max: new Date(2013, 6, 13, 17).getTime(), // 3600000 milliseconds = 1 Hour step: 3600000, //Set buttons for slider - showButtons: true, + showButtons: true, // Set the initial range values for slider value: new Date(2013, 6, 13, 13).getTime(), // Bind Tooltip change event for custom formatting @@ -20,7 +20,7 @@ var defaultObj = new ej.inputs.Slider({ }, // Bind ticks event for custom formatting renderingTicks: renderingTicksHandler, - // Initialize ticks with placement, largestep, smallstep + // Initialize ticks with placement, largeStep, smallStep ticks: { placement: 'After', // 2 * 3600000 milliseconds = 2 Hour @@ -49,7 +49,7 @@ function tooltipChangeHandler(args) { firstPart = new Date(Number(firstPart)).toLocaleTimeString('en-us', custom); secondPart = new Date(Number(secondPart)).toLocaleTimeString('en-us', custom); } else { - args.text = new Date(Number(args.text)).toLocaleTimeString('en-us', custom); + args.text = new Date(Number(args.text)).toLocaleTimeString('en-us', custom); } } @@ -70,5 +70,4 @@ document.getElementById('element').onclick = function () { ticks = document.getElementById("slider"); slider.style.display = "block"; ticks.ej2_instances[0].refresh(); -}; - +}; \ No newline at end of file diff --git a/ej2-javascript/code-snippet/slider/hidden-slider-cs1/index.ts b/ej2-javascript/code-snippet/slider/hidden-slider-cs1/index.ts index a87e71275..e13da0666 100644 --- a/ej2-javascript/code-snippet/slider/hidden-slider-cs1/index.ts +++ b/ej2-javascript/code-snippet/slider/hidden-slider-cs1/index.ts @@ -1,7 +1,4 @@ - - - -import { Slider, SliderChangeEventArgs } from '@syncfusion/ej2-inputs'; +import { Slider, SliderTooltipEventArgs, SliderTickEventArgs } from '@syncfusion/ej2-inputs'; import { Button } from '@syncfusion/ej2-buttons'; // Initialize the Button component. @@ -9,10 +6,10 @@ let button: Button = new Button({ content: 'Button' }); // Render initialized button. button.appendTo('#element'); -// Initialize Slider Component +// Initialize Range Slider Control let defaultObj: Slider = new Slider({ // Set slider minimum and maximum values - // new Date(Year, Month, day, hours, minutes, seconds, millseconds) + // new Date(Year, Month, day, hours, minutes, seconds, milliseconds) min: new Date(2013, 6, 13, 11).getTime(), max: new Date(2013, 6, 13, 17).getTime(), // 3600000 milliseconds = 1 Hour step: 3600000, @@ -28,7 +25,7 @@ let defaultObj: Slider = new Slider({ }, // Bind ticks event for custom formatting renderingTicks: renderingTicksHandler, - // Initialize ticks with placement, largestep, smallstep + // Initialize ticks with placement, largeStep, smallStep ticks: { placement: 'After', // 2 * 3600000 milliseconds = 2 Hour @@ -57,7 +54,7 @@ function tooltipChangeHandler(args: SliderTooltipEventArgs): void { firstPart = new Date(Number(firstPart)).toLocaleTimeString('en-us', custom); secondPart = new Date(Number(secondPart)).toLocaleTimeString('en-us', custom); } else { - args.text = new Date(Number(args.text)).toLocaleTimeString('en-us', custom); + args.text = new Date(Number(args.text)).toLocaleTimeString('en-us', custom); } } @@ -73,11 +70,11 @@ function renderingTicksHandler(args: SliderTickEventArgs): void { } //Visible slider by clicking the button -document.getElementById('element').onclick = function () { +document.querySelector('#element')?.addEventListener('click', () => { let slider = document.getElementById("case"); - let ticks = document.getElementById("slider"); - slider.style.display = "block"; + let ticks: any = document.getElementById("slider"); + if (slider) { + slider.style.display = "block"; + } ticks.ej2_instances[0].refresh(); -}; - - +}); \ No newline at end of file diff --git a/ej2-javascript/code-snippet/slider/hidden-slider-cs1/js/index.html b/ej2-javascript/code-snippet/slider/hidden-slider-cs1/js/index.html index 5d3bf6bd7..c145d4484 100644 --- a/ej2-javascript/code-snippet/slider/hidden-slider-cs1/js/index.html +++ b/ej2-javascript/code-snippet/slider/hidden-slider-cs1/js/index.html @@ -1,43 +1,53 @@ - - Essential JS 2 Slider + + + + + Essential JS 2 Range Slider - + - - - + - - - + +
    -
    -
    -
    -
    +
    +
    +
    +
    - - - - \ No newline at end of file + + + + + + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/slider/hidden-slider-cs1/ts/index.html b/ej2-javascript/code-snippet/slider/hidden-slider-cs1/ts/index.html index d61296677..f64257948 100644 --- a/ej2-javascript/code-snippet/slider/hidden-slider-cs1/ts/index.html +++ b/ej2-javascript/code-snippet/slider/hidden-slider-cs1/ts/index.html @@ -2,10 +2,10 @@ - Essential JS 2 Slider + Essential JS 2 Range Slider - + @@ -17,22 +17,31 @@ - - + +
    Loading....
    -
    -
    -
    -
    +
    +
    +
    +
    + - + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/slider/how-to-cs1/index.css b/ej2-javascript/code-snippet/slider/how-to-cs1/index.css index 8f8a61541..9230e3e48 100644 --- a/ej2-javascript/code-snippet/slider/how-to-cs1/index.css +++ b/ej2-javascript/code-snippet/slider/how-to-cs1/index.css @@ -11,16 +11,4 @@ position: absolute; top: 45%; width: 30%; -} - -.wrap { - box-sizing: border-box; - height: 100px; - margin: 0 auto; - padding: 30px 10px; - width: 460px; -} - -.wrap .label { - text-align: center; } \ No newline at end of file diff --git a/ej2-javascript/code-snippet/slider/how-to-cs1/index.js b/ej2-javascript/code-snippet/slider/how-to-cs1/index.js index bcb4ec853..207679acd 100644 --- a/ej2-javascript/code-snippet/slider/how-to-cs1/index.js +++ b/ej2-javascript/code-snippet/slider/how-to-cs1/index.js @@ -1,4 +1,4 @@ -// Initialize slider component +// Initialize Range Slider Control var kilometerObj = new ej.inputs.Slider({ min: 0, max: 100, step: 1, value: 30, // Apply two decimal specifiers formatting if any decimal values are processed with 'Km' text appended to the value @@ -6,27 +6,25 @@ var kilometerObj = new ej.inputs.Slider({ // Apply two decimal specifiers formatting if any decimal values are processed with 'Km' text appended to the value ticks: { placement: 'After', format: '##.## Km', largeStep: 20, smallStep: 10, showSmallTicks: true } }); -// Render initialized slider +// Render initialized Range Slider Control kilometerObj.appendTo('#slider'); -// Initialize slider component +// Initialize Range Slider Control var decimalObj = new ej.inputs.Slider({ min: 0.1, max: .2, step: 0.01, value: 0.13, - // Apply three decimal specifiers formatting if any decimal values are processed then reset will be appened with two zero + // Apply three decimal specifiers formatting if any decimal values are processed then reset will be appended with two zero tooltip: { isVisible: true, format: '##.#00' }, - // Apply three decimal specifiers formatting if any decimal values are processed then reset will be appened with two zero + // Apply three decimal specifiers formatting if any decimal values are processed then reset will be appended with two zero ticks: { placement: 'After', format: '##.#00', largeStep: 0.02, smallStep: 0.01, showSmallTicks: true } }); -// Render initialized slider +// Render initialized Range Slider Control decimalObj.appendTo('#slider1'); -// Initialize slider component +// Initialize Range Slider Control var sliderObj = new ej.inputs.Slider({ min: 0, max: 100, step: 1, value: 30, - // Apply numberic formatting with two leading zero for tooltip + // Apply numeric formatting with two leading zero for tooltip tooltip: { isVisible: true, format: '00##' }, - // Apply numberic formatting with two leading zero for ticks + // Apply numeric formatting with two leading zero for ticks ticks: { placement: 'After', format: '00##', largeStep: 20, smallStep: 10, showSmallTicks: true } }); -// Render initialized slider -sliderObj.appendTo('#slider2'); - - +// Render initialized Range Slider Control +sliderObj.appendTo('#slider2'); \ No newline at end of file diff --git a/ej2-javascript/code-snippet/slider/how-to-cs1/index.ts b/ej2-javascript/code-snippet/slider/how-to-cs1/index.ts index af6b4385f..090dd5d5c 100644 --- a/ej2-javascript/code-snippet/slider/how-to-cs1/index.ts +++ b/ej2-javascript/code-snippet/slider/how-to-cs1/index.ts @@ -1,40 +1,34 @@ - - - import { Slider } from '@syncfusion/ej2-inputs'; -// Initialize slider control - let kilometerObj: Slider = new Slider({ +// Initialize Range Slider Control +let kilometerObj: Slider = new Slider({ min: 0, max: 100, step: 1, value: 30, // Apply two decimal specifiers formatting if any decimal values are processed with 'Km' text appended to the value tooltip: { isVisible: true, format: '##.## Km' }, // Apply two decimal specifiers formatting if any decimal values are processed with 'Km' text appended to the value ticks: { placement: 'After', format: '##.## Km', largeStep: 20, smallStep: 10, showSmallTicks: true } }); -// Render initialized slider +// Render initialized Range Slider Control kilometerObj.appendTo('#slider'); -// Initialize slider control - let decimalObj: Slider = new Slider({ +// Initialize Range Slider Control +let decimalObj: Slider = new Slider({ min: 0.1, max: .2, step: 0.01, value: 0.13, - // Apply three decimal specifiers formatting if any decimal values are processed then reset will be appened with two zero + // Apply three decimal specifiers formatting if any decimal values are processed then reset will be appended with two zero tooltip: { isVisible: true, format: '##.#00' }, - // Apply three decimal specifiers formatting if any decimal values are processed then reset will be appened with two zero + // Apply three decimal specifiers formatting if any decimal values are processed then reset will be appended with two zero ticks: { placement: 'After', format: '##.#00', largeStep: 0.02, smallStep: 0.01, showSmallTicks: true } }); -// Render initialized slider +// Render initialized Range Slider Control decimalObj.appendTo('#slider1'); -// Initialize slider control - let sliderObj: Slider = new Slider({ +// Initialize Range Slider Control +let sliderObj: Slider = new Slider({ min: 0, max: 100, step: 1, value: 30, - // Apply numberic formatting with two leading zero for tooltip + // Apply numeric formatting with two leading zero for tooltip tooltip: { isVisible: true, format: '00##' }, - // Apply numberic formatting with two leading zero for ticks + // Apply numeric formatting with two leading zero for ticks ticks: { placement: 'After', format: '00##', largeStep: 20, smallStep: 10, showSmallTicks: true } }); -// Render initialized slider -sliderObj.appendTo('#slider2'); - - - +// Render initialized Range Slider Control +sliderObj.appendTo('#slider2'); \ No newline at end of file diff --git a/ej2-javascript/code-snippet/slider/how-to-cs1/js/index.html b/ej2-javascript/code-snippet/slider/how-to-cs1/js/index.html index a058d8a22..15a7c431a 100644 --- a/ej2-javascript/code-snippet/slider/how-to-cs1/js/index.html +++ b/ej2-javascript/code-snippet/slider/how-to-cs1/js/index.html @@ -1,35 +1,35 @@ - - Essential JS 2 Slider + + + + + Essential JS 2 Range Slider - + - - - + -
    - +
    Slider formatted with unit representation
    - +
    Slider formatted with three decimal specifiers
    - +
    Slider formatted with two leading zeros
    @@ -37,12 +37,26 @@
    + + + + - - - \ No newline at end of file + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/slider/how-to-cs1/ts/index.html b/ej2-javascript/code-snippet/slider/how-to-cs1/ts/index.html index bb0d5c1af..0a787336d 100644 --- a/ej2-javascript/code-snippet/slider/how-to-cs1/ts/index.html +++ b/ej2-javascript/code-snippet/slider/how-to-cs1/ts/index.html @@ -2,10 +2,10 @@ - Essential JS 2 Slider + Essential JS 2 Range Slider - + @@ -19,25 +19,38 @@
    Loading....
    - +
    Slider formatted with unit representation
    - +
    Slider formatted with three decimal specifiers
    - +
    Slider formatted with two leading zeros
    + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/slider/limit-customization-cs1/index.css b/ej2-javascript/code-snippet/slider/limit-customization-cs1/index.css index 92b281a58..475a1181e 100644 --- a/ej2-javascript/code-snippet/slider/limit-customization-cs1/index.css +++ b/ej2-javascript/code-snippet/slider/limit-customization-cs1/index.css @@ -12,45 +12,3 @@ top: 45%; width: 30%; } - -.content-wrapper { - width: 52%; - margin: 0 auto; - min-width: 185px; -} - -.sliderwrap { - margin-top: 45px; -} - -.e-bigger .content-wrapper { - width: 80%; -} - -.sliderwrap label { - padding-bottom: 50px; - font-size: 13px; - font-weight: 500; - margin-top: 15px; - display: block; -} - -.userselect { - -webkit-user-select: none; - /* Safari 3.1+ */ - -moz-user-select: none; - /* Firefox 2+ */ - -ms-user-select: none; - /* IE 10+ */ - user-select: none; - /* Standard syntax */ -} - -.property-custom td { - padding: 5px; -} - -#range .e-limits, #minrange .e-limits { - background-color: #ccc; - background-color: rgba(69, 100, 233, 0.46); -} \ No newline at end of file diff --git a/ej2-javascript/code-snippet/slider/limit-customization-cs1/index.js b/ej2-javascript/code-snippet/slider/limit-customization-cs1/index.js index 08018a515..2f055e18b 100644 --- a/ej2-javascript/code-snippet/slider/limit-customization-cs1/index.js +++ b/ej2-javascript/code-snippet/slider/limit-customization-cs1/index.js @@ -1,11 +1,11 @@ -var minrangeObj = new ej.inputs.Slider({ +var minRangeObj = new ej.inputs.Slider({ // Set slider minimum and maximum values min: 0, max: 100, // Set the value for slider value: 30, // Set the step value step: 1, - // Initialize ticks with placement, largestep, smallstep + // Initialize ticks with placement, largeStep, smallStep ticks: { placement: 'Before', largeStep: 20, smallStep: 5, showSmallTicks: true }, // Set the type for slider type: 'MinRange', @@ -14,8 +14,8 @@ var minrangeObj = new ej.inputs.Slider({ // Initialize tooltip with placement and showOn tooltip: { isVisible: true, placement: 'Before', showOn: 'Focus' } }); -minrangeObj.appendTo('#minrange'); -// Initialize slider Component +minRangeObj.appendTo('#minrange'); +// Initialize Range Slider Control var rangeObj = new ej.inputs.Slider({ // Set slider minimum and maximum values min: 0, max: 100, @@ -25,74 +25,11 @@ var rangeObj = new ej.inputs.Slider({ step: 1, // Set the type to render range slider type: 'Range', - // Initialize ticks with placement, largestep, smallstep + // Initialize ticks with placement, largeStep, smallStep ticks: { placement: 'Before', largeStep: 20, smallStep: 5, showSmallTicks: true }, // Set the limit values for the slider limits: { enabled: true, minStart: 10, minEnd: 40, maxStart: 60, maxEnd: 90 }, // Initialize tooltip with placement and showOn tooltip: { isVisible: true, placement: 'Before', showOn: 'Focus' } }); -rangeObj.appendTo('#range'); -// Initialize NumericTextBox -var minStart = new ej.inputs.NumericTextBox({ - value: 10, - min: 0, - max: 100, - change: minStartChange -}); -minStart.appendTo('#minStart'); -var minEnd = new ej.inputs.NumericTextBox({ - value: 40, - min: 0, - max: 100, - change: minEndChange -}); -minEnd.appendTo('#minEnd'); -var maxStart = new ej.inputs.NumericTextBox({ - value: 60, - min: 0, - max: 100, - change: maxStartChange -}); -maxStart.appendTo('#maxStart'); -var maxEnd = new ej.inputs.NumericTextBox({ - value: 90, - min: 0, - max: 100, - change: maxEndChange -}); -maxEnd.appendTo('#maxEnd'); -// Initialize Checkbox -var fixedOne = new ej.buttons.CheckBox({ change: fixOne }); -fixedOne.appendTo('#fixedOne'); -var fixedSecond = new ej.buttons.CheckBox({ change: fixSecond }); -fixedSecond.appendTo('#fixedSecond'); -// Eventlisteners to lock first handle of the both sliders -function fixOne(args) { - minrangeObj.limits.startHandleFixed = args.checked; - rangeObj.limits.startHandleFixed = args.checked; -} -// Eventlisteners to lock second handle of the both sliders -function fixSecond(args) { - minrangeObj.limits.endHandleFixed = args.checked; - rangeObj.limits.endHandleFixed = args.checked; -} -// Eventlisteners to change limit values for both sliders -function minStartChange(args) { - minrangeObj.limits.minStart = args.value; - rangeObj.limits.minStart = args.value; -} -function minEndChange(args) { - minrangeObj.limits.minEnd = args.value; - rangeObj.limits.minEnd = args.value; -} -function maxStartChange(args) { - minrangeObj.limits.maxStart = args.value; - rangeObj.limits.maxStart = args.value; -} -function maxEndChange(args) { - minrangeObj.limits.maxEnd = args.value; - rangeObj.limits.maxEnd = args.value; -} - - +rangeObj.appendTo('#range'); \ No newline at end of file diff --git a/ej2-javascript/code-snippet/slider/limit-customization-cs1/index.ts b/ej2-javascript/code-snippet/slider/limit-customization-cs1/index.ts index ff73e1552..18217de9b 100644 --- a/ej2-javascript/code-snippet/slider/limit-customization-cs1/index.ts +++ b/ej2-javascript/code-snippet/slider/limit-customization-cs1/index.ts @@ -1,121 +1,41 @@ - - -import { enableRipple } from '@syncfusion/ej2-base'; -enableRipple(true); -import { Slider, NumericTextBox, ChangeEventArgs } from '@syncfusion/ej2-inputs'; -import { CheckBox, ChangeEventArgs as CheckBoxChange } from '@syncfusion/ej2-buttons'; +import { Slider } from '@syncfusion/ej2-inputs'; // tslint:disable-next-line:max-func-body-length - // Initialize slider control - let minrangeObj: Slider = new Slider({ - // Set slider minimum and maximum values - min: 0, max: 100, - // Set the value for slider - value: 30, - // Set the step value - step: 1, - // Initialize ticks with placement, largestep, smallstep - ticks: { placement: 'Before', largeStep: 20, smallStep: 5, showSmallTicks: true }, - // Set the type for slider - type: 'MinRange', - // Set the limit values for the slider - limits: { enabled: true, minStart: 10, minEnd: 40 }, - // Initialize tooltip with placement and showOn - tooltip: { isVisible: true, placement: 'Before', showOn: 'Focus' } - }); - minrangeObj.appendTo('#minrange'); - - // Initialize slider control - let rangeObj: Slider = new Slider({ - // Set slider minimum and maximum values - min: 0, max: 100, - // Set the initial range values for slider - value: [30, 70], - // Set the step value - step: 1, - // Set the type to render range slider - type: 'Range', - // Initialize ticks with placement, largestep, smallstep - ticks: { placement: 'Before', largeStep: 20, smallStep: 5, showSmallTicks: true }, - // Set the limit values for the slider - limits: { enabled: true, minStart: 10, minEnd: 40, maxStart: 60, maxEnd: 90 }, - // Initialize tooltip with placement and showOn - tooltip: { isVisible: true, placement: 'Before', showOn: 'Focus' } - }); - rangeObj.appendTo('#range'); - - // Initialize NumericTextBox - let minStart: NumericTextBox = new NumericTextBox({ - value: 10, - min: 0, - max: 100, - change: minStartChange - }); - minStart.appendTo('#minStart'); - - let minEnd: NumericTextBox = new NumericTextBox({ - value: 40, - min: 0, - max: 100, - change: minEndChange - }); - minEnd.appendTo('#minEnd'); - - let maxStart: NumericTextBox = new NumericTextBox({ - value: 60, - min: 0, - max: 100, - change: maxStartChange - }); - maxStart.appendTo('#maxStart'); - - let maxEnd: NumericTextBox = new NumericTextBox({ - value: 90, - min: 0, - max: 100, - change: maxEndChange - }); - maxEnd.appendTo('#maxEnd'); - - // Initialize Checkbox - let fixedOne: CheckBox = new CheckBox({ change: fixOne }); - fixedOne.appendTo('#fixedOne'); - - let fixedSecond: CheckBox = new CheckBox({ change: fixSecond }); - fixedSecond.appendTo('#fixedSecond'); - - // Eventlisteners to lock first handle of the both sliders - function fixOne(args: CheckBoxChange): void { - minrangeObj.limits.startHandleFixed = args.checked; - rangeObj.limits.startHandleFixed = args.checked; - } - - // Eventlisteners to lock second handle of the both sliders - function fixSecond(args: CheckBoxChange): void { - minrangeObj.limits.endHandleFixed = args.checked; - rangeObj.limits.endHandleFixed = args.checked; - } - - // Eventlisteners to change limit values for both sliders - function minStartChange(args: ChangeEventArgs): void { - minrangeObj.limits.minStart = args.value; - rangeObj.limits.minStart = args.value; - } - - function minEndChange(args: ChangeEventArgs): void { - minrangeObj.limits.minEnd = args.value; - rangeObj.limits.minEnd = args.value; - } - - function maxStartChange(args: ChangeEventArgs): void { - minrangeObj.limits.maxStart = args.value; - rangeObj.limits.maxStart = args.value; - } - - function maxEndChange(args: ChangeEventArgs): void { - minrangeObj.limits.maxEnd = args.value; - rangeObj.limits.maxEnd = args.value; - } - - +// Initialize Range Slider Control +let minRangeObj: Slider = new Slider({ + // Set slider minimum and maximum values + min: 0, max: 100, + // Set the value for slider + value: 30, + // Set the step value + step: 1, + // Initialize ticks with placement, largeStep, smallStep + ticks: { placement: 'Before', largeStep: 20, smallStep: 5, showSmallTicks: true }, + // Set the type for slider + type: 'MinRange', + // Set the limit values for the slider + limits: { enabled: true, minStart: 10, minEnd: 40 }, + // Initialize tooltip with placement and showOn + tooltip: { isVisible: true, placement: 'Before', showOn: 'Focus' } +}); +minRangeObj.appendTo('#minrange'); + +// Initialize Range Slider Control +let rangeObj: Slider = new Slider({ + // Set slider minimum and maximum values + min: 0, max: 100, + // Set the initial range values for slider + value: [30, 70], + // Set the step value + step: 1, + // Set the type to render range slider + type: 'Range', + // Initialize ticks with placement, largeStep, smallStep + ticks: { placement: 'Before', largeStep: 20, smallStep: 5, showSmallTicks: true }, + // Set the limit values for the slider + limits: { enabled: true, minStart: 10, minEnd: 40, maxStart: 60, maxEnd: 90 }, + // Initialize tooltip with placement and showOn + tooltip: { isVisible: true, placement: 'Before', showOn: 'Focus' } +}); +rangeObj.appendTo('#range'); \ No newline at end of file diff --git a/ej2-javascript/code-snippet/slider/limit-customization-cs1/js/index.html b/ej2-javascript/code-snippet/slider/limit-customization-cs1/js/index.html index 894423a25..914cce702 100644 --- a/ej2-javascript/code-snippet/slider/limit-customization-cs1/js/index.html +++ b/ej2-javascript/code-snippet/slider/limit-customization-cs1/js/index.html @@ -1,21 +1,21 @@ - - Essential JS 2 Slider + + + + + Essential JS 2 Range Slider - + - - - + -
    @@ -28,15 +28,60 @@
    -
    +
    + + + + - - - \ No newline at end of file + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/slider/limit-customization-cs1/ts/index.html b/ej2-javascript/code-snippet/slider/limit-customization-cs1/ts/index.html index 3378fc999..2e860a655 100644 --- a/ej2-javascript/code-snippet/slider/limit-customization-cs1/ts/index.html +++ b/ej2-javascript/code-snippet/slider/limit-customization-cs1/ts/index.html @@ -2,10 +2,10 @@ - Essential JS 2 Slider + Essential JS 2 Range Slider - + @@ -30,8 +30,52 @@
    - + + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/slider/localization-cs1/index.css b/ej2-javascript/code-snippet/slider/localization-cs1/index.css index 92ffabd5c..475a1181e 100644 --- a/ej2-javascript/code-snippet/slider/localization-cs1/index.css +++ b/ej2-javascript/code-snippet/slider/localization-cs1/index.css @@ -12,11 +12,3 @@ top: 45%; width: 30%; } - -.wrap { - box-sizing: border-box; - height: 260px; - margin: 0 auto; - padding: 30px 10px; - width: 260px; -} diff --git a/ej2-javascript/code-snippet/slider/localization-cs1/index.js b/ej2-javascript/code-snippet/slider/localization-cs1/index.js index 91fc3bc58..965dd968f 100644 --- a/ej2-javascript/code-snippet/slider/localization-cs1/index.js +++ b/ej2-javascript/code-snippet/slider/localization-cs1/index.js @@ -5,13 +5,11 @@ ej.base.L10n.load({ } } }); -// Initialize range Slider component +// Initialize range Slider control var rangeObj = new ej.inputs.Slider({ value: [30, 70], type: 'Range', locale: 'de-DE', showButtons: true }); -rangeObj.appendTo('#slider'); - - +rangeObj.appendTo('#slider'); \ No newline at end of file diff --git a/ej2-javascript/code-snippet/slider/localization-cs1/index.ts b/ej2-javascript/code-snippet/slider/localization-cs1/index.ts index 89c03e78c..62e6d007b 100644 --- a/ej2-javascript/code-snippet/slider/localization-cs1/index.ts +++ b/ej2-javascript/code-snippet/slider/localization-cs1/index.ts @@ -1,11 +1,6 @@ - - - - import { Slider } from '@syncfusion/ej2-inputs'; import { L10n } from '@syncfusion/ej2-base'; - L10n.load({ 'de-DE': { 'slider': { @@ -13,14 +8,11 @@ L10n.load({ } } }); - // Initialize range Slider control - let rangeObj: Slider = new Slider({ - value: [30, 70], - type: 'Range', - locale: 'de-DE', - showButtons: true - }); - rangeObj.appendTo('#slider'); - - - +// Initialize Range Slider Control +let rangeObj: Slider = new Slider({ + value: [30, 70], + type: 'Range', + locale: 'de-DE', + showButtons: true +}); +rangeObj.appendTo('#slider'); \ No newline at end of file diff --git a/ej2-javascript/code-snippet/slider/localization-cs1/js/index.html b/ej2-javascript/code-snippet/slider/localization-cs1/js/index.html index 08b4e2df8..2f8fa0f11 100644 --- a/ej2-javascript/code-snippet/slider/localization-cs1/js/index.html +++ b/ej2-javascript/code-snippet/slider/localization-cs1/js/index.html @@ -1,32 +1,44 @@ - - Essential JS 2 Slider - - - - - - - - - - - - + + + + + Essential JS 2 Range Slider + + + + + + + + + + + - -
    -
    -
    -
    -
    +
    +
    +
    +
    +
    + + + + + - - - \ No newline at end of file + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/slider/localization-cs1/ts/index.html b/ej2-javascript/code-snippet/slider/localization-cs1/ts/index.html index bbe8e689b..b8d0fe568 100644 --- a/ej2-javascript/code-snippet/slider/localization-cs1/ts/index.html +++ b/ej2-javascript/code-snippet/slider/localization-cs1/ts/index.html @@ -2,10 +2,10 @@ - Essential JS 2 Slider + Essential JS 2 Range Slider - + @@ -15,13 +15,24 @@ +
    Loading....
    -
    -
    +
    +
    + + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/slider/min-max-cs1/index.css b/ej2-javascript/code-snippet/slider/min-max-cs1/index.css index 92ffabd5c..475a1181e 100644 --- a/ej2-javascript/code-snippet/slider/min-max-cs1/index.css +++ b/ej2-javascript/code-snippet/slider/min-max-cs1/index.css @@ -12,11 +12,3 @@ top: 45%; width: 30%; } - -.wrap { - box-sizing: border-box; - height: 260px; - margin: 0 auto; - padding: 30px 10px; - width: 260px; -} diff --git a/ej2-javascript/code-snippet/slider/min-max-cs1/index.js b/ej2-javascript/code-snippet/slider/min-max-cs1/index.js index 216f9bfb9..3983b06b6 100644 --- a/ej2-javascript/code-snippet/slider/min-max-cs1/index.js +++ b/ej2-javascript/code-snippet/slider/min-max-cs1/index.js @@ -1,4 +1,4 @@ -// Initialize Slider component +// Initialize Range Slider Control var rangeObj = new ej.inputs.Slider({ ticks: { placement: 'After', largeStep: 200, smallStep: 100, showSmallTicks: true }, tooltip: { placement: 'Before', isVisible: true, showOn: 'Always' }, @@ -9,6 +9,5 @@ var rangeObj = new ej.inputs.Slider({ // Slider current value value: 400 }); -// Render initialized Slider -rangeObj.appendTo('#slider'); - +// Render initialized Range Slider Control +rangeObj.appendTo('#slider'); \ No newline at end of file diff --git a/ej2-javascript/code-snippet/slider/min-max-cs1/index.ts b/ej2-javascript/code-snippet/slider/min-max-cs1/index.ts index 0045d3995..6a8c99b78 100644 --- a/ej2-javascript/code-snippet/slider/min-max-cs1/index.ts +++ b/ej2-javascript/code-snippet/slider/min-max-cs1/index.ts @@ -1,21 +1,15 @@ - - - import { Slider } from '@syncfusion/ej2-inputs'; -// Initialize Slider control - let rangeObj: Slider = new Slider({ - ticks: { placement: 'After', largeStep: 200, smallStep: 100, showSmallTicks: true }, - tooltip: { placement: 'Before', isVisible: true, showOn: 'Always' }, - // Minimum value - min: 100, - // Maximum value - max: 1000, - // Slider current value - value: 400 - }); - // Render initialized Slider - rangeObj.appendTo('#slider'); - - - +// Initialize Range Slider Control +let rangeObj: Slider = new Slider({ + ticks: { placement: 'After', largeStep: 200, smallStep: 100, showSmallTicks: true }, + tooltip: { placement: 'Before', isVisible: true, showOn: 'Always' }, + // Minimum value + min: 100, + // Maximum value + max: 1000, + // Slider current value + value: 400 +}); +// Render initialized Range Slider Control +rangeObj.appendTo('#slider'); \ No newline at end of file diff --git a/ej2-javascript/code-snippet/slider/min-max-cs1/js/index.html b/ej2-javascript/code-snippet/slider/min-max-cs1/js/index.html index 08b4e2df8..2f8fa0f11 100644 --- a/ej2-javascript/code-snippet/slider/min-max-cs1/js/index.html +++ b/ej2-javascript/code-snippet/slider/min-max-cs1/js/index.html @@ -1,32 +1,44 @@ - - Essential JS 2 Slider - - - - - - - - - - - - + + + + + Essential JS 2 Range Slider + + + + + + + + + + + - -
    -
    -
    -
    -
    +
    +
    +
    +
    +
    + + + + + - - - \ No newline at end of file + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/slider/min-max-cs1/ts/index.html b/ej2-javascript/code-snippet/slider/min-max-cs1/ts/index.html index bbe8e689b..b8d0fe568 100644 --- a/ej2-javascript/code-snippet/slider/min-max-cs1/ts/index.html +++ b/ej2-javascript/code-snippet/slider/min-max-cs1/ts/index.html @@ -2,10 +2,10 @@ - Essential JS 2 Slider + Essential JS 2 Range Slider - + @@ -15,13 +15,24 @@ +
    Loading....
    -
    -
    +
    +
    + + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/slider/range-limit-cs1/index.css b/ej2-javascript/code-snippet/slider/range-limit-cs1/index.css index 80c3d4c1c..9230e3e48 100644 --- a/ej2-javascript/code-snippet/slider/range-limit-cs1/index.css +++ b/ej2-javascript/code-snippet/slider/range-limit-cs1/index.css @@ -11,12 +11,4 @@ position: absolute; top: 45%; width: 30%; -} - -.wrap { - box-sizing: border-box; - height: 140px; - margin: 100px auto; - padding: 30px 10px; - width: 260px; -} +} \ No newline at end of file diff --git a/ej2-javascript/code-snippet/slider/range-limit-cs1/index.js b/ej2-javascript/code-snippet/slider/range-limit-cs1/index.js index 956fac27c..2ff8317c6 100644 --- a/ej2-javascript/code-snippet/slider/range-limit-cs1/index.js +++ b/ej2-javascript/code-snippet/slider/range-limit-cs1/index.js @@ -5,9 +5,7 @@ var slider = new ej.inputs.Slider({ type: 'Range', value: [30, 70], limits: { enabled: true, minStart: 10, minEnd: 40, maxStart: 60, maxEnd: 90 }, - tootip: { isVisible: true } + tooltip: { isVisible: true } }); -// Render initialized Slider -slider.appendTo('#slider'); - - +// Render initialized Range Slider Control +slider.appendTo('#slider'); \ No newline at end of file diff --git a/ej2-javascript/code-snippet/slider/range-limit-cs1/index.ts b/ej2-javascript/code-snippet/slider/range-limit-cs1/index.ts index ed6379e29..7d2252258 100644 --- a/ej2-javascript/code-snippet/slider/range-limit-cs1/index.ts +++ b/ej2-javascript/code-snippet/slider/range-limit-cs1/index.ts @@ -1,6 +1,3 @@ - - - import { Slider } from '@syncfusion/ej2-inputs'; // Initialization of Slider @@ -10,10 +7,7 @@ let slider: Slider = new Slider({ type: 'Range', value: [30, 70], limits: { enabled: true, minStart: 10, minEnd: 40, maxStart: 60, maxEnd: 90 }, - tootip: { isVisible: true } + tooltip: { isVisible: true } }); -// Render initialized Slider -slider.appendTo('#slider'); - - - +// Render initialized Range Slider Control +slider.appendTo('#slider'); \ No newline at end of file diff --git a/ej2-javascript/code-snippet/slider/range-limit-cs1/js/index.html b/ej2-javascript/code-snippet/slider/range-limit-cs1/js/index.html index 08b4e2df8..71964a9e4 100644 --- a/ej2-javascript/code-snippet/slider/range-limit-cs1/js/index.html +++ b/ej2-javascript/code-snippet/slider/range-limit-cs1/js/index.html @@ -1,32 +1,44 @@ - - Essential JS 2 Slider - - - - - - - - - - - - + + + + + Essential JS 2 Range Slider + + + + + + + + + + + - -
    -
    -
    -
    -
    +
    +
    +
    +
    +
    + + + + + - - - \ No newline at end of file + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/slider/range-limit-cs1/ts/index.html b/ej2-javascript/code-snippet/slider/range-limit-cs1/ts/index.html index bbe8e689b..a4d7734e7 100644 --- a/ej2-javascript/code-snippet/slider/range-limit-cs1/ts/index.html +++ b/ej2-javascript/code-snippet/slider/range-limit-cs1/ts/index.html @@ -2,10 +2,10 @@ - Essential JS 2 Slider + Essential JS 2 Range Slider - + @@ -15,13 +15,24 @@ +
    Loading....
    -
    -
    +
    +
    + + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/slider/reversible-cs1/index.css b/ej2-javascript/code-snippet/slider/reversible-cs1/index.css index 92ffabd5c..475a1181e 100644 --- a/ej2-javascript/code-snippet/slider/reversible-cs1/index.css +++ b/ej2-javascript/code-snippet/slider/reversible-cs1/index.css @@ -12,11 +12,3 @@ top: 45%; width: 30%; } - -.wrap { - box-sizing: border-box; - height: 260px; - margin: 0 auto; - padding: 30px 10px; - width: 260px; -} diff --git a/ej2-javascript/code-snippet/slider/reversible-cs1/index.js b/ej2-javascript/code-snippet/slider/reversible-cs1/index.js index fa650790f..910a5addb 100644 --- a/ej2-javascript/code-snippet/slider/reversible-cs1/index.js +++ b/ej2-javascript/code-snippet/slider/reversible-cs1/index.js @@ -1,4 +1,4 @@ -// Initialize Slider component +// Initialize Range Slider Control var sliderObj = new ej.inputs.Slider({ ticks: { placement: 'Before', largeStep: 20, smallStep: 5, showSmallTicks: true }, tooltip: { placement: 'Before', isVisible: true, showOn: 'Always' }, @@ -12,7 +12,5 @@ var sliderObj = new ej.inputs.Slider({ // Slider current value value: [30, 70] }); -// Render initialized Slider -sliderObj.appendTo('#slider'); - - +// Render initialized Range Slider Control +sliderObj.appendTo('#slider'); \ No newline at end of file diff --git a/ej2-javascript/code-snippet/slider/reversible-cs1/index.ts b/ej2-javascript/code-snippet/slider/reversible-cs1/index.ts index bd4c3989b..94d25ea82 100644 --- a/ej2-javascript/code-snippet/slider/reversible-cs1/index.ts +++ b/ej2-javascript/code-snippet/slider/reversible-cs1/index.ts @@ -1,10 +1,7 @@ - - - import { Slider } from '@syncfusion/ej2-inputs'; -// Initialize Slider control - let sliderObj: Slider = new Slider({ +// Initialize Range Slider Control +let sliderObj: Slider = new Slider({ ticks: { placement: 'Before', largeStep: 20, smallStep: 5, showSmallTicks: true }, tooltip: { placement: 'Before', isVisible: true, showOn: 'Always' }, type: 'Range', @@ -17,9 +14,5 @@ import { Slider } from '@syncfusion/ej2-inputs'; // Slider current value value: [30, 70] }); -// Render initialized Slider -sliderObj.appendTo('#slider'); - - - - +// Render initialized Range Slider Control +sliderObj.appendTo('#slider'); \ No newline at end of file diff --git a/ej2-javascript/code-snippet/slider/reversible-cs1/js/index.html b/ej2-javascript/code-snippet/slider/reversible-cs1/js/index.html index 08b4e2df8..2f8fa0f11 100644 --- a/ej2-javascript/code-snippet/slider/reversible-cs1/js/index.html +++ b/ej2-javascript/code-snippet/slider/reversible-cs1/js/index.html @@ -1,32 +1,44 @@ - - Essential JS 2 Slider - - - - - - - - - - - - + + + + + Essential JS 2 Range Slider + + + + + + + + + + + - -
    -
    -
    -
    -
    +
    +
    +
    +
    +
    + + + + + - - - \ No newline at end of file + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/slider/reversible-cs1/ts/index.html b/ej2-javascript/code-snippet/slider/reversible-cs1/ts/index.html index bbe8e689b..b8d0fe568 100644 --- a/ej2-javascript/code-snippet/slider/reversible-cs1/ts/index.html +++ b/ej2-javascript/code-snippet/slider/reversible-cs1/ts/index.html @@ -2,10 +2,10 @@ - Essential JS 2 Slider + Essential JS 2 Range Slider - + @@ -15,13 +15,24 @@ +
    Loading....
    -
    -
    +
    +
    + + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/slider/step-cs1/index.css b/ej2-javascript/code-snippet/slider/step-cs1/index.css index 92ffabd5c..475a1181e 100644 --- a/ej2-javascript/code-snippet/slider/step-cs1/index.css +++ b/ej2-javascript/code-snippet/slider/step-cs1/index.css @@ -12,11 +12,3 @@ top: 45%; width: 30%; } - -.wrap { - box-sizing: border-box; - height: 260px; - margin: 0 auto; - padding: 30px 10px; - width: 260px; -} diff --git a/ej2-javascript/code-snippet/slider/step-cs1/index.js b/ej2-javascript/code-snippet/slider/step-cs1/index.js index 60235d210..7753437cc 100644 --- a/ej2-javascript/code-snippet/slider/step-cs1/index.js +++ b/ej2-javascript/code-snippet/slider/step-cs1/index.js @@ -1,4 +1,4 @@ -// Initialize Slider component +// Initialize Range Slider Control var rangeObj = new ej.inputs.Slider({ ticks: { placement: 'After', largeStep: 20, smallStep: 10, showSmallTicks: true }, tooltip: { placement: 'Before', isVisible: true, showOn: 'Always' }, @@ -6,7 +6,5 @@ var rangeObj = new ej.inputs.Slider({ // Enables step step: 10 }); -// Render initialized Slider -rangeObj.appendTo('#slider'); - - +// Render initialized Range Slider Control +rangeObj.appendTo('#slider'); \ No newline at end of file diff --git a/ej2-javascript/code-snippet/slider/step-cs1/index.ts b/ej2-javascript/code-snippet/slider/step-cs1/index.ts index 1d7ae608c..67ec4b238 100644 --- a/ej2-javascript/code-snippet/slider/step-cs1/index.ts +++ b/ej2-javascript/code-snippet/slider/step-cs1/index.ts @@ -1,18 +1,12 @@ - - - import { Slider } from '@syncfusion/ej2-inputs'; -// Initialize Slider control - let rangeObj: Slider = new Slider({ - ticks: { placement: 'After', largeStep: 20, smallStep: 10, showSmallTicks: true }, - tooltip: { placement: 'Before', isVisible: true, showOn: 'Always' }, - value: 30, - // Enables step - step: 10 - }); - // Render initialized Slider - rangeObj.appendTo('#slider'); - - - +// Initialize Range Slider Control +let rangeObj: Slider = new Slider({ + ticks: { placement: 'After', largeStep: 20, smallStep: 10, showSmallTicks: true }, + tooltip: { placement: 'Before', isVisible: true, showOn: 'Always' }, + value: 30, + // Enables step + step: 10 +}); +// Render initialized Range Slider Control +rangeObj.appendTo('#slider'); \ No newline at end of file diff --git a/ej2-javascript/code-snippet/slider/step-cs1/js/index.html b/ej2-javascript/code-snippet/slider/step-cs1/js/index.html index 08b4e2df8..2f8fa0f11 100644 --- a/ej2-javascript/code-snippet/slider/step-cs1/js/index.html +++ b/ej2-javascript/code-snippet/slider/step-cs1/js/index.html @@ -1,32 +1,44 @@ - - Essential JS 2 Slider - - - - - - - - - - - - + + + + + Essential JS 2 Range Slider + + + + + + + + + + + - -
    -
    -
    -
    -
    +
    +
    +
    +
    +
    + + + + + - - - \ No newline at end of file + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/slider/step-cs1/ts/index.html b/ej2-javascript/code-snippet/slider/step-cs1/ts/index.html index bbe8e689b..b8d0fe568 100644 --- a/ej2-javascript/code-snippet/slider/step-cs1/ts/index.html +++ b/ej2-javascript/code-snippet/slider/step-cs1/ts/index.html @@ -2,10 +2,10 @@ - Essential JS 2 Slider + Essential JS 2 Range Slider - + @@ -15,13 +15,24 @@ +
    Loading....
    -
    -
    +
    +
    + + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/slider/thumb-customization-cs1/index.css b/ej2-javascript/code-snippet/slider/thumb-customization-cs1/index.css index 75c722702..9230e3e48 100644 --- a/ej2-javascript/code-snippet/slider/thumb-customization-cs1/index.css +++ b/ej2-javascript/code-snippet/slider/thumb-customization-cs1/index.css @@ -11,79 +11,4 @@ position: absolute; top: 45%; width: 30%; -} - -.slider-content-wrapper { - width: 40%; - margin: 0 auto; - min-width: 185px; -} - -.slider-userselect { - -webkit-user-select: none; - /* Safari 3.1+ */ - -moz-user-select: none; - /* Firefox 2+ */ - -ms-user-select: none; - /* IE 10+ */ - user-select: none; - /* Standard syntax */ -} - -.labelText { - text-align: left; - font-weight: 500; - font-size: 13px; - padding-bottom: 10px; -} - -.slider_container { - margin-top: 40px; -} - -.e-bigger .content-wrapper { - width: 80%; -} - -#square_slider .e-handle { - border-radius: 0; - background-color: #f9920b; - border: 0; -} - -#circle_slider .e-handle { - background-color: #f9920b; - border-radius: 50%; - border: 0; -} - -#image_slider .e-handle { - height: 25px; - width: 24px; - background-size: 24px; - -} - -#image_slider .e-handle { - background-image: url('https://ej2.syncfusion.com/demos/src/slider/images/thumb.png'); - background-repeat: no-repeat; - background-color: transparent; - border: 0; -} - -#square_slider .e-tab-handle::after, -#circle_slider .e-tab-handle::after { - background-color: #f9920b; -} - -#image_slider .e-tab-handle::after { - background-color: transparent; -} - -#oval_slider .e-handle { - height: 25px; - width: 8px; - top: 3px; - border-radius: 15px; - background-color: #f9920b; } \ No newline at end of file diff --git a/ej2-javascript/code-snippet/slider/thumb-customization-cs1/index.js b/ej2-javascript/code-snippet/slider/thumb-customization-cs1/index.js index ddd0d32ff..82425ad53 100644 --- a/ej2-javascript/code-snippet/slider/thumb-customization-cs1/index.js +++ b/ej2-javascript/code-snippet/slider/thumb-customization-cs1/index.js @@ -1,11 +1,11 @@ -// Initialize slider component +// Initialize Range Slider Control var squareSlider = new ej.inputs.Slider({ // Set the value for slider value: 30, min: 0, max: 100 }); squareSlider.appendTo('#square_slider'); -// Initialize slider component +// Initialize Range Slider Control var circleSlider = new ej.inputs.Slider({ // Set the value for slider value: 30, @@ -13,7 +13,7 @@ var circleSlider = new ej.inputs.Slider({ min: 0, max: 100 }); circleSlider.appendTo('#circle_slider'); -// Initialize slider component +// Initialize Range Slider Control var ovalSlider = new ej.inputs.Slider({ // Set the value for slider value: 30, @@ -21,7 +21,7 @@ var ovalSlider = new ej.inputs.Slider({ min: 0, max: 100 }); ovalSlider.appendTo('#oval_slider'); -// Initialize slider component +// Initialize Range Slider Control var imageSlider = new ej.inputs.Slider({ // Set the value for slider value: 30, @@ -29,6 +29,4 @@ var imageSlider = new ej.inputs.Slider({ min: 0, max: 100, ticks: { placement: 'After' } }); -imageSlider.appendTo('#image_slider'); - - +imageSlider.appendTo('#image_slider'); \ No newline at end of file diff --git a/ej2-javascript/code-snippet/slider/thumb-customization-cs1/index.ts b/ej2-javascript/code-snippet/slider/thumb-customization-cs1/index.ts index 3961c47fd..40c4a9b03 100644 --- a/ej2-javascript/code-snippet/slider/thumb-customization-cs1/index.ts +++ b/ej2-javascript/code-snippet/slider/thumb-customization-cs1/index.ts @@ -1,46 +1,39 @@ - - - -import { enableRipple } from '@syncfusion/ej2-base'; -enableRipple(true); import { Slider } from '@syncfusion/ej2-inputs'; - // Initialize slider control - let squareSlider: Slider = new Slider({ - // Set the value for slider - value: 30, - min: 0, max: 100 - }); - squareSlider.appendTo('#square_slider'); - - // Initialize slider control - let circleSlider: Slider = new Slider({ - // Set the value for slider - value: 30, - // Set slider minimum and maximum values - min: 0, max: 100 - }); - circleSlider.appendTo('#circle_slider'); - - // Initialize slider control - let ovalSlider: Slider = new Slider({ - // Set the value for slider - value: 30, - // Set slider minimum and maximum values - min: 0, max: 100 - }); - ovalSlider.appendTo('#oval_slider'); - - // Initialize slider control - let imageSlider: Slider = new Slider({ - // Set the value for slider - value: 30, - // Set slider minimum and maximum values - min: 0, max: 100, - - ticks: { placement: 'After' } - - }); - imageSlider.appendTo('#image_slider'); - - +// Initialize Range Slider Control +let squareSlider: Slider = new Slider({ + // Set the value for slider + value: 30, + min: 0, max: 100 +}); +squareSlider.appendTo('#square_slider'); + +// Initialize Range Slider Control +let circleSlider: Slider = new Slider({ + // Set the value for slider + value: 30, + // Set slider minimum and maximum values + min: 0, max: 100 +}); +circleSlider.appendTo('#circle_slider'); + +// Initialize Range Slider Control +let ovalSlider: Slider = new Slider({ + // Set the value for slider + value: 30, + // Set slider minimum and maximum values + min: 0, max: 100 +}); +ovalSlider.appendTo('#oval_slider'); + +// Initialize Range Slider Control +let imageSlider: Slider = new Slider({ + // Set the value for slider + value: 30, + // Set slider minimum and maximum values + min: 0, max: 100, + + ticks: { placement: 'After' } + +}); +imageSlider.appendTo('#image_slider'); \ No newline at end of file diff --git a/ej2-javascript/code-snippet/slider/thumb-customization-cs1/js/index.html b/ej2-javascript/code-snippet/slider/thumb-customization-cs1/js/index.html index 773ad4106..f624ddc4b 100644 --- a/ej2-javascript/code-snippet/slider/thumb-customization-cs1/js/index.html +++ b/ej2-javascript/code-snippet/slider/thumb-customization-cs1/js/index.html @@ -1,21 +1,21 @@ - - Essential JS 2 Slider + + + + + Essential JS 2 Range Slider - + - - - + -
    @@ -43,12 +43,89 @@
    + + + + - - - \ No newline at end of file + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/slider/thumb-customization-cs1/ts/index.html b/ej2-javascript/code-snippet/slider/thumb-customization-cs1/ts/index.html index 35f7659d9..70eeecd71 100644 --- a/ej2-javascript/code-snippet/slider/thumb-customization-cs1/ts/index.html +++ b/ej2-javascript/code-snippet/slider/thumb-customization-cs1/ts/index.html @@ -2,10 +2,10 @@ - Essential JS 2 Slider + Essential JS 2 Range Slider - + @@ -44,6 +44,83 @@
    + + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/slider/ticks-cs1/index.css b/ej2-javascript/code-snippet/slider/ticks-cs1/index.css index 92ffabd5c..475a1181e 100644 --- a/ej2-javascript/code-snippet/slider/ticks-cs1/index.css +++ b/ej2-javascript/code-snippet/slider/ticks-cs1/index.css @@ -12,11 +12,3 @@ top: 45%; width: 30%; } - -.wrap { - box-sizing: border-box; - height: 260px; - margin: 0 auto; - padding: 30px 10px; - width: 260px; -} diff --git a/ej2-javascript/code-snippet/slider/ticks-cs1/index.js b/ej2-javascript/code-snippet/slider/ticks-cs1/index.js index d9907725f..762ef6cfe 100644 --- a/ej2-javascript/code-snippet/slider/ticks-cs1/index.js +++ b/ej2-javascript/code-snippet/slider/ticks-cs1/index.js @@ -1,11 +1,9 @@ -// Initialize Slider component +// Initialize Range Slider Control var sliderObj = new ej.inputs.Slider({ tooltip: { placement: 'Before', isVisible: true, showOn: 'Always' }, value: 30, // Slider ticks customization ticks: { placement: 'After', largeStep: 20, smallStep: 10, showSmallTicks: true } }); -// Render initialized Slider -sliderObj.appendTo('#slider'); - - +// Render initialized Range Slider Control +sliderObj.appendTo('#slider'); \ No newline at end of file diff --git a/ej2-javascript/code-snippet/slider/ticks-cs1/index.ts b/ej2-javascript/code-snippet/slider/ticks-cs1/index.ts index 8fafe10ea..0dab5f920 100644 --- a/ej2-javascript/code-snippet/slider/ticks-cs1/index.ts +++ b/ej2-javascript/code-snippet/slider/ticks-cs1/index.ts @@ -1,17 +1,11 @@ - - - import { Slider } from '@syncfusion/ej2-inputs'; -// Initialize Slider control - let sliderObj: Slider = new Slider({ - tooltip: { placement: 'Before', isVisible: true, showOn: 'Always' }, - value: 30, - // Slider ticks customization - ticks: { placement: 'After', largeStep: 20, smallStep: 10, showSmallTicks: true } - }); - // Render initialized Slider - sliderObj.appendTo('#slider'); - - - +// Initialize Range Slider Control +let sliderObj: Slider = new Slider({ + tooltip: { placement: 'Before', isVisible: true, showOn: 'Always' }, + value: 30, + // Slider ticks customization + ticks: { placement: 'After', largeStep: 20, smallStep: 10, showSmallTicks: true } +}); +// Render initialized Range Slider Control +sliderObj.appendTo('#slider'); \ No newline at end of file diff --git a/ej2-javascript/code-snippet/slider/ticks-cs1/js/index.html b/ej2-javascript/code-snippet/slider/ticks-cs1/js/index.html index 08b4e2df8..2f8fa0f11 100644 --- a/ej2-javascript/code-snippet/slider/ticks-cs1/js/index.html +++ b/ej2-javascript/code-snippet/slider/ticks-cs1/js/index.html @@ -1,32 +1,44 @@ - - Essential JS 2 Slider - - - - - - - - - - - - + + + + + Essential JS 2 Range Slider + + + + + + + + + + + - -
    -
    -
    -
    -
    +
    +
    +
    +
    +
    + + + + + - - - \ No newline at end of file + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/slider/ticks-cs1/ts/index.html b/ej2-javascript/code-snippet/slider/ticks-cs1/ts/index.html index bbe8e689b..b8d0fe568 100644 --- a/ej2-javascript/code-snippet/slider/ticks-cs1/ts/index.html +++ b/ej2-javascript/code-snippet/slider/ticks-cs1/ts/index.html @@ -2,10 +2,10 @@ - Essential JS 2 Slider + Essential JS 2 Range Slider - + @@ -15,13 +15,24 @@ +
    Loading....
    -
    -
    +
    +
    + + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/slider/ticks-customization-cs1/index.css b/ej2-javascript/code-snippet/slider/ticks-customization-cs1/index.css index b7b1c54d2..9230e3e48 100644 --- a/ej2-javascript/code-snippet/slider/ticks-customization-cs1/index.css +++ b/ej2-javascript/code-snippet/slider/ticks-customization-cs1/index.css @@ -11,105 +11,4 @@ position: absolute; top: 45%; width: 30%; -} - -.slider-content-wrapper { - width: 40%; - margin: 0 auto; - min-width: 185px; -} - -.userselect { - -webkit-user-select: none; - /* Safari 3.1+ */ - -moz-user-select: none; - /* Firefox 2+ */ - -ms-user-select: none; - /* IE 10+ */ - user-select: none; - /* Standard syntax */ -} - -.slider_labelText { - text-align: left; - font-weight: 500; - font-size: 13px; - padding-bottom: 40px; -} - -.slider_container { - margin-top: 40px; -} - -.e-bigger .slider-content-wrapper { - width: 80%; -} - -#ticks_slider .e-range { - z-index: unset; -} -/* csslint ignore:start */ -@font-face { - font-family: 'e-customized-icons'; - src: url(data:application/x-font-ttf;charset=utf-8;base64,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) format('truetype'); - font-weight: normal; - font-style: normal; -} -/* csslint ignore:end */ -#ticks_slider .e-scale .e-tick { - background-image: none; - visibility: visible; - font-family: 'e-customized-icons'; -} - -#ticks_slider .e-scale { - z-index: 0; -} - -#ticks_slider .e-scale .e-custom::before { - content: '\e967'; - position: absolute; -} - -#ticks_slider .e-scale :nth-child(1)::before { - color: red; -} - -#ticks_slider .e-scale :nth-child(2)::before { - color: blue; -} - -#ticks_slider .e-scale :nth-child(3)::before { - color: green; -} - -#ticks_slider .e-scale :nth-child(4)::before { - color: blueviolet; -} - -#ticks_slider .e-scale :nth-child(5)::before { - color: orange; -} - -#ticks_slider .e-scale :nth-child(6)::before { - color: pink; -} - -#ticks_slider .e-scale .e-custom::before { - font-size: 10px; -} - -#ticks_slider .e-scale .e-custom::before { - top: calc(50% + 1px); - left: calc(50% - 5px); -} - -#slider_wrapper #ticks_slider .e-scale :nth-child(1)::before { - top: calc(50% + 1px); - left: calc(0% - 5px); -} - -#slider_wrapper #ticks_slider .e-scale :nth-child(6)::before { - top: calc(50% + 1px); - left: calc(100% - 6px); } \ No newline at end of file diff --git a/ej2-javascript/code-snippet/slider/ticks-customization-cs1/index.js b/ej2-javascript/code-snippet/slider/ticks-customization-cs1/index.js index 3e1a9c208..8d126a6d2 100644 --- a/ej2-javascript/code-snippet/slider/ticks-customization-cs1/index.js +++ b/ej2-javascript/code-snippet/slider/ticks-customization-cs1/index.js @@ -7,7 +7,7 @@ var ticksSlider = new ej.inputs.Slider({ step: 5, // Set the type to render minRange slider type: 'MinRange', - // Initialize ticks with placement, largestep + // Initialize ticks with placement, largeStep ticks: { placement: 'Before', largeStep: 20 }, // Handler used to add custom class to all tick element renderingTicks: function (args) { @@ -17,7 +17,7 @@ var ticksSlider = new ej.inputs.Slider({ } }); ticksSlider.appendTo('#ticks_slider'); -// Initialize slider component +// Initialize Range Slider Control var customTicks = new ej.inputs.Slider({ // Set slider minimum and maximum values min: 0, max: 100, @@ -25,7 +25,7 @@ var customTicks = new ej.inputs.Slider({ value: 30, // Set the type to render minRange slider type: 'MinRange', - // Initialize ticks with placement, largestep, smallstep + // Initialize ticks with placement, largeStep, smallStep ticks: { placement: 'Both', largeStep: 20, smallStep: 5 }, // Handler used to customize tick element renderedTicks: function (args) { @@ -36,6 +36,4 @@ var customTicks = new ej.inputs.Slider({ } } }); -customTicks.appendTo('#slider'); - - +customTicks.appendTo('#slider'); \ No newline at end of file diff --git a/ej2-javascript/code-snippet/slider/ticks-customization-cs1/index.ts b/ej2-javascript/code-snippet/slider/ticks-customization-cs1/index.ts index e39d97b7e..a7e446a8e 100644 --- a/ej2-javascript/code-snippet/slider/ticks-customization-cs1/index.ts +++ b/ej2-javascript/code-snippet/slider/ticks-customization-cs1/index.ts @@ -1,50 +1,43 @@ - - - -import { enableRipple } from '@syncfusion/ej2-base'; -enableRipple(true); import { Slider, SliderTickRenderedEventArgs, SliderTickEventArgs } from '@syncfusion/ej2-inputs'; - // Initialize slider component - let ticksSlider: Slider = new Slider({ - // Set slider minimum and maximum values - min: 0, max: 100, - // Set the initial value for slider - value: 30, - // Set the step value for slider - step: 5, - // Set the type to render minRange slider - type: 'MinRange', - // Initialize ticks with placement, largestep - ticks: { placement: 'Before', largeStep: 20 }, - // Handler used to add custom class to all tick element - renderingTicks: (args: SliderTickEventArgs) => { - if (args.tickElement.classList.contains('e-large')) { - args.tickElement.classList.add('e-custom'); - } +// Initialize Range Slider Control +let ticksSlider: Slider = new Slider({ + // Set slider minimum and maximum values + min: 0, max: 100, + // Set the initial value for slider + value: 30, + // Set the step value for slider + step: 5, + // Set the type to render minRange slider + type: 'MinRange', + // Initialize ticks with placement, largeStep + ticks: { placement: 'Before', largeStep: 20 }, + // Handler used to add custom class to all tick element + renderingTicks: (args: SliderTickEventArgs) => { + if (args.tickElement.classList.contains('e-large')) { + args.tickElement.classList.add('e-custom'); } - }); - ticksSlider.appendTo('#ticks_slider'); + } +}); +ticksSlider.appendTo('#ticks_slider'); - // Initialize slider component - let customTicks: Slider = new Slider({ - // Set slider minimum and maximum values - min: 0, max: 100, - // Set the initial value for slider - value: 30, - // Set the type to render minRange slider - type: 'MinRange', - // Initialize ticks with placement, largestep, smallstep - ticks: { placement: 'Both', largeStep: 20, smallStep: 5 }, - // Handler used to customize tick element - renderedTicks: (args: SliderTickRenderedEventArgs) => { - let li: any = args.ticksWrapper.getElementsByClassName('e-large'); - let remarks: any = ['Very Poor', 'Poor', 'Average', 'Good', 'Very Good', 'Excellent']; - for (let i: number = 0; i < li.length; ++i) { - (li[i].querySelectorAll('.e-tick-both')[1] as HTMLElement).innerText = remarks[i]; - } +// Initialize Range Slider Control +let customTicks: Slider = new Slider({ + // Set slider minimum and maximum values + min: 0, max: 100, + // Set the initial value for slider + value: 30, + // Set the type to render minRange slider + type: 'MinRange', + // Initialize ticks with placement, largeStep, smallStep + ticks: { placement: 'Both', largeStep: 20, smallStep: 5 }, + // Handler used to customize tick element + renderedTicks: (args: SliderTickRenderedEventArgs) => { + let li: any = args.ticksWrapper.getElementsByClassName('e-large'); + let remarks: any = ['Very Poor', 'Poor', 'Average', 'Good', 'Very Good', 'Excellent']; + for (let i: number = 0; i < li.length; ++i) { + (li[i].querySelectorAll('.e-tick-both')[1] as HTMLElement).innerText = remarks[i]; } - }); - customTicks.appendTo('#slider'); - - + } +}); +customTicks.appendTo('#slider'); \ No newline at end of file diff --git a/ej2-javascript/code-snippet/slider/ticks-customization-cs1/js/index.html b/ej2-javascript/code-snippet/slider/ticks-customization-cs1/js/index.html index 6ae496223..bc0d91426 100644 --- a/ej2-javascript/code-snippet/slider/ticks-customization-cs1/js/index.html +++ b/ej2-javascript/code-snippet/slider/ticks-customization-cs1/js/index.html @@ -1,21 +1,21 @@ - - Essential JS 2 Slider + + + + + Essential JS 2 Range Slider - + - - - + -
    @@ -33,12 +33,117 @@
    + + + + - - - \ No newline at end of file + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/slider/ticks-customization-cs1/ts/index.html b/ej2-javascript/code-snippet/slider/ticks-customization-cs1/ts/index.html index c8e9efeb2..7040b5c70 100644 --- a/ej2-javascript/code-snippet/slider/ticks-customization-cs1/ts/index.html +++ b/ej2-javascript/code-snippet/slider/ticks-customization-cs1/ts/index.html @@ -2,10 +2,10 @@ - Essential JS 2 Slider + Essential JS 2 Range Slider - + @@ -34,6 +34,110 @@
    + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/slider/time-format-cs1/index.css b/ej2-javascript/code-snippet/slider/time-format-cs1/index.css index b904553e9..475a1181e 100644 --- a/ej2-javascript/code-snippet/slider/time-format-cs1/index.css +++ b/ej2-javascript/code-snippet/slider/time-format-cs1/index.css @@ -12,11 +12,3 @@ top: 45%; width: 30%; } - -.wrap { - box-sizing: border-box; - height: 260px; - margin: 0 auto; - padding: 30px 10px; - width: 460px; -} diff --git a/ej2-javascript/code-snippet/slider/time-format-cs1/index.js b/ej2-javascript/code-snippet/slider/time-format-cs1/index.js index 10d520def..3f06368d9 100644 --- a/ej2-javascript/code-snippet/slider/time-format-cs1/index.js +++ b/ej2-javascript/code-snippet/slider/time-format-cs1/index.js @@ -1,4 +1,4 @@ -// Initialize slider component +// Initialize Range Slider Control var timeObj = new ej.inputs.Slider({ /** * Initialize the min and max values of the slider using JavaScript date functions @@ -30,7 +30,5 @@ var timeObj = new ej.inputs.Slider({ }, showButtons: true }); -// Render initialized slider -timeObj.appendTo('#slider'); - - +// Render initialized Range Slider Control +timeObj.appendTo('#slider'); \ No newline at end of file diff --git a/ej2-javascript/code-snippet/slider/time-format-cs1/index.ts b/ej2-javascript/code-snippet/slider/time-format-cs1/index.ts index 5286cf192..433f48a09 100644 --- a/ej2-javascript/code-snippet/slider/time-format-cs1/index.ts +++ b/ej2-javascript/code-snippet/slider/time-format-cs1/index.ts @@ -1,10 +1,7 @@ - - - import { Slider, SliderTickEventArgs, SliderTooltipEventArgs } from '@syncfusion/ej2-inputs'; -// Initialize slider control - let timeObj: Slider = new Slider({ +// Initialize Range Slider Control +let timeObj: Slider = new Slider({ /** * Initialize the min and max values of the slider using JavaScript date functions * new Date (Year, Month, day, hours, minutes, seconds, milliseconds) @@ -17,7 +14,7 @@ import { Slider, SliderTickEventArgs, SliderTooltipEventArgs } from '@syncfusion step: 3600000, tooltipChange: function (args: SliderTooltipEventArgs) { let totalMiliSeconds = Number(args.text); - let custom = { hour: '2-digit', minute: '2-digit' }; + let custom: Intl.DateTimeFormatOptions = { hour: '2-digit', minute: '2-digit' }; args.text = new Date(totalMiliSeconds).toLocaleTimeString("en-us", custom); }, tooltip: { @@ -26,7 +23,7 @@ import { Slider, SliderTickEventArgs, SliderTooltipEventArgs } from '@syncfusion }, renderingTicks: function (args: SliderTickEventArgs) { let totalMiliSeconds = Number(args.value); - let custom = { hour: '2-digit', minute: '2-digit' }; + let custom: Intl.DateTimeFormatOptions = { hour: '2-digit', minute: '2-digit' }; args.text = new Date(totalMiliSeconds).toLocaleTimeString("en-us", custom); }, ticks: { @@ -36,8 +33,5 @@ import { Slider, SliderTickEventArgs, SliderTooltipEventArgs } from '@syncfusion }, showButtons: true }); -// Render initialized slider -timeObj.appendTo('#slider'); - - - +// Render initialized Range Slider Control +timeObj.appendTo('#slider'); \ No newline at end of file diff --git a/ej2-javascript/code-snippet/slider/time-format-cs1/js/index.html b/ej2-javascript/code-snippet/slider/time-format-cs1/js/index.html index 07af5032f..28b4981d8 100644 --- a/ej2-javascript/code-snippet/slider/time-format-cs1/js/index.html +++ b/ej2-javascript/code-snippet/slider/time-format-cs1/js/index.html @@ -1,34 +1,44 @@ - - Essential JS 2 Slider + + + + + Essential JS 2 Range Slider - + - - - + -
    + + + + + - - - - \ No newline at end of file + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/slider/time-format-cs1/ts/index.html b/ej2-javascript/code-snippet/slider/time-format-cs1/ts/index.html index 85a3b90b9..46fbfb884 100644 --- a/ej2-javascript/code-snippet/slider/time-format-cs1/ts/index.html +++ b/ej2-javascript/code-snippet/slider/time-format-cs1/ts/index.html @@ -2,10 +2,10 @@ - Essential JS 2 Slider + Essential JS 2 Range Slider - + @@ -24,6 +24,15 @@
    + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/spreadsheet/calculation-cs1/datasource.ts b/ej2-javascript/code-snippet/spreadsheet/calculation-cs1/datasource.ts new file mode 100644 index 000000000..f0809f48d --- /dev/null +++ b/ej2-javascript/code-snippet/spreadsheet/calculation-cs1/datasource.ts @@ -0,0 +1,13 @@ + +export let data: Object[] = [ + { 'Item Name': 'Casual Shoes', Date: '2/14/2024', Time: '11:34:32 AM', Quantity: 10, Price: 20, Amount: '=PRODUCT(D2:E2)', Discount: '2%', Profit: '=PRODUCT(G2:F2)' }, + { 'Item Name': 'Sports Shoes', Date: '6/11/2024', Time: '05:56:32 AM', Quantity: 20, Price: 30, Amount: '=PRODUCT(D3:E3)', Discount: '5%', Profit: '=PRODUCT(G3:F3)' }, + { 'Item Name': 'Formal Shoes', Date: '7/27/2024', Time: '03:32:44 AM', Quantity: 20, Price: 15, Amount: '=PRODUCT(D4:E4)', Discount: '7.5%', Profit: '=PRODUCT(G4:F4)' }, + { 'Item Name': 'Sandals & Floaters', Date: '11/21/2024', Time: '06:23:54 PM', Quantity: 15, Price: 20.45, Amount: '=PRODUCT(D5:E5)', Discount: '11%', Profit: '=PRODUCT(G5:F5)' }, + { 'Item Name': 'Flip- Flops & Slippers', Date: '6/23/2024', Time: '12:43:59 AM', Quantity: 30, Price: 10.67, Amount: '=PRODUCT(D6:E6)', Discount: '10%', Profit: '=PRODUCT(G6:F6)' }, + { 'Item Name': 'Sneakers', Date: '7/22/2024', Time: '10:55:53 AM', Quantity: 40, Price: 20, Amount: '=PRODUCT(D7:E7)', Discount: '13.2%', Profit: '=PRODUCT(G7:F7)' }, + { 'Item Name': 'Running Shoes', Date: '2/4/2024', Time: '03:44:34 AM', Quantity: 20, Price: 10.5, Amount: '=PRODUCT(D8:E8)', Discount: '3%', Profit: '=PRODUCT(G8:F8)' }, + { 'Item Name': 'Loafers', Date: '11/30/2024', Time: '03:12:52 AM', Quantity: 31, Price: 10, Amount: '=PRODUCT(D9:E9)', Discount: '6.67%', Profit: '=PRODUCT(G9:F9)' }, + { 'Item Name': 'Cricket Shoes', Date: '7/9/2024', Time: '11:32:14 PM', Quantity: 41, Price: 30, Amount: '=PRODUCT(D10:E10)', Discount: '12.5%', Profit: '=PRODUCT(G10:F10)' }, + { 'Item Name': 'T-Shirts', Date: '10/31/2024', Time: '12:01:44 AM', Quantity: 50, Price: 10.75, Amount: '=PRODUCT(D11:E11)', Discount: '9%', Profit: '=PRODUCT(G11:F11)' } +]; \ No newline at end of file diff --git a/ej2-javascript/code-snippet/spreadsheet/calculation-cs1/es5-datasource.js b/ej2-javascript/code-snippet/spreadsheet/calculation-cs1/es5-datasource.js new file mode 100644 index 000000000..49947c44d --- /dev/null +++ b/ej2-javascript/code-snippet/spreadsheet/calculation-cs1/es5-datasource.js @@ -0,0 +1,13 @@ + +var data = [ + { 'Item Name': 'Casual Shoes', Date: '2/14/2024', Time: '11:34:32 AM', Quantity: 10, Price: 20, Amount: '=PRODUCT(D2:E2)', Discount: '2%', Profit: '=PRODUCT(G2:F2)' }, + { 'Item Name': 'Sports Shoes', Date: '6/11/2024', Time: '05:56:32 AM', Quantity: 20, Price: 30, Amount: '=PRODUCT(D3:E3)', Discount: '5%', Profit: '=PRODUCT(G3:F3)' }, + { 'Item Name': 'Formal Shoes', Date: '7/27/2024', Time: '03:32:44 AM', Quantity: 20, Price: 15, Amount: '=PRODUCT(D4:E4)', Discount: '7.5%', Profit: '=PRODUCT(G4:F4)' }, + { 'Item Name': 'Sandals & Floaters', Date: '11/21/2024', Time: '06:23:54 PM', Quantity: 15, Price: 20.45, Amount: '=PRODUCT(D5:E5)', Discount: '11%', Profit: '=PRODUCT(G5:F5)' }, + { 'Item Name': 'Flip- Flops & Slippers', Date: '6/23/2024', Time: '12:43:59 AM', Quantity: 30, Price: 10.67, Amount: '=PRODUCT(D6:E6)', Discount: '10%', Profit: '=PRODUCT(G6:F6)' }, + { 'Item Name': 'Sneakers', Date: '7/22/2024', Time: '10:55:53 AM', Quantity: 40, Price: 20, Amount: '=PRODUCT(D7:E7)', Discount: '13.2%', Profit: '=PRODUCT(G7:F7)' }, + { 'Item Name': 'Running Shoes', Date: '2/4/2024', Time: '03:44:34 AM', Quantity: 20, Price: 10.5, Amount: '=PRODUCT(D8:E8)', Discount: '3%', Profit: '=PRODUCT(G8:F8)' }, + { 'Item Name': 'Loafers', Date: '11/30/2024', Time: '03:12:52 AM', Quantity: 31, Price: 10, Amount: '=PRODUCT(D9:E9)', Discount: '6.67%', Profit: '=PRODUCT(G9:F9)' }, + { 'Item Name': 'Cricket Shoes', Date: '7/9/2024', Time: '11:32:14 PM', Quantity: 41, Price: 30, Amount: '=PRODUCT(D10:E10)', Discount: '12.5%', Profit: '=PRODUCT(G10:F10)' }, + { 'Item Name': 'T-Shirts', Date: '10/31/2024', Time: '12:01:44 AM', Quantity: 50, Price: 10.75, Amount: '=PRODUCT(D11:E11)', Discount: '9%', Profit: '=PRODUCT(G11:F11)' } +]; diff --git a/ej2-javascript/code-snippet/spreadsheet/calculation-cs1/index.js b/ej2-javascript/code-snippet/spreadsheet/calculation-cs1/index.js new file mode 100644 index 000000000..1291dce89 --- /dev/null +++ b/ej2-javascript/code-snippet/spreadsheet/calculation-cs1/index.js @@ -0,0 +1,17 @@ +ej.base.enableRipple(true); + +var columns = [{ width: 130 }, { width: 92 }, { width: 96 }]; + + +var sheets = [{ name: 'Product Details', ranges: [{ dataSource: data, startCell: 'A1' }], columns: columns }]; + +var spreadsheet = new ej.spreadsheet.Spreadsheet({ + calculationMode: 'Automatic', + sheets: sheets, + created: function () { + spreadsheet.cellFormat({ fontWeight: 'bold', textAlign: 'center' }, 'A1:H1'); + } +}); + +spreadsheet.appendTo('#spreadsheet'); + diff --git a/ej2-javascript/code-snippet/spreadsheet/calculation-cs1/index.ts b/ej2-javascript/code-snippet/spreadsheet/calculation-cs1/index.ts new file mode 100644 index 000000000..5af98ffaf --- /dev/null +++ b/ej2-javascript/code-snippet/spreadsheet/calculation-cs1/index.ts @@ -0,0 +1,22 @@ + + +import { Spreadsheet, SheetModel, ColumnModel } from '@syncfusion/ej2-spreadsheet'; +import { data } from './datasource.ts'; +import { enableRipple } from '@syncfusion/ej2-base'; + +enableRipple(true); + +let columns: ColumnModel[] = [{ width: 130 }, { width: 92 }, { width: 96 }]; + +let sheets: SheetModel[] = [{ name: 'Product Details', ranges: [{ dataSource: data, startCell: 'A1' }], columns: columns }]; +let spreadsheet: Spreadsheet = new Spreadsheet({ + calculationMode: 'Automatic', + sheets: sheets, + created: function () { + spreadsheet.cellFormat({ fontWeight: 'bold', textAlign: 'center' }, 'A1:H1'); + } +}); + +spreadsheet.appendTo('#spreadsheet'); + + diff --git a/ej2-javascript/code-snippet/spreadsheet/calculation-cs1/js/index.html b/ej2-javascript/code-snippet/spreadsheet/calculation-cs1/js/index.html new file mode 100644 index 000000000..1c0ea2d8c --- /dev/null +++ b/ej2-javascript/code-snippet/spreadsheet/calculation-cs1/js/index.html @@ -0,0 +1,42 @@ + + EJ2 SpreadSheet + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    + + + + + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/spreadsheet/calculation-cs1/styles.css b/ej2-javascript/code-snippet/spreadsheet/calculation-cs1/styles.css new file mode 100644 index 000000000..49d610a86 --- /dev/null +++ b/ej2-javascript/code-snippet/spreadsheet/calculation-cs1/styles.css @@ -0,0 +1,15 @@ +#container { + visibility: hidden; +} + +#loader { + color: #008cff; + height: 40px; + left: 45%; + position: absolute; + top: 45%; + width: 30%; +} +body { + height: 425px; +} diff --git a/ej2-javascript/code-snippet/spreadsheet/calculation-cs1/system.config.js b/ej2-javascript/code-snippet/spreadsheet/calculation-cs1/system.config.js new file mode 100644 index 000000000..b1c9e8487 --- /dev/null +++ b/ej2-javascript/code-snippet/spreadsheet/calculation-cs1/system.config.js @@ -0,0 +1,44 @@ +System.config({ + transpiler: "typescript", + typescriptOptions: { + compilerOptions: { + target: "umd", + module: "commonjs", + moduleResolution: "node", + emitDecoratorMetadata: true, + experimentalDecorators: true + } + }, + paths: { + "syncfusion:": "https://cdn.syncfusion.com/ej2/28.1.33/" + }, + map: { + main: "index.ts", + typescript: "https://unpkg.com/typescript@2.2.2/lib/typescript.js", + //Syncfusion packages mapping + "@syncfusion/ej2-base": "syncfusion:ej2-base/dist/ej2-base.umd.min.js", + "@syncfusion/ej2-data": "syncfusion:ej2-data/dist/ej2-data.umd.min.js", + "@syncfusion/ej2-inputs": "syncfusion:ej2-inputs/dist/ej2-inputs.umd.min.js", + "@syncfusion/ej2-buttons": "syncfusion:ej2-buttons/dist/ej2-buttons.umd.min.js", + "@syncfusion/ej2-splitbuttons": "syncfusion:ej2-splitbuttons/dist/ej2-splitbuttons.umd.min.js", + "@syncfusion/ej2-lists": "syncfusion:ej2-lists/dist/ej2-lists.umd.min.js", + "@syncfusion/ej2-navigations": "syncfusion:ej2-navigations/dist/ej2-navigations.umd.min.js", + "@syncfusion/ej2-notifications": "syncfusion:ej2-notifications/dist/ej2-notifications.umd.min.js", + "@syncfusion/ej2-popups": "syncfusion:ej2-popups/dist/ej2-popups.umd.min.js", + "@syncfusion/ej2-dropdowns": "syncfusion:ej2-dropdowns/dist/ej2-dropdowns.umd.min.js", + "@syncfusion/ej2-calendars": "syncfusion:ej2-calendars/dist/ej2-calendars.umd.min.js", + "@syncfusion/ej2-excel-export": "syncfusion:ej2-excel-export/dist/ej2-excel-export.umd.min.js", + "@syncfusion/ej2-pdf-export": "syncfusion:ej2-pdf-export/dist/ej2-pdf-export.umd.min.js", + "@syncfusion/ej2-file-utils": "syncfusion:ej2-file-utils/dist/ej2-file-utils.umd.min.js", + "@syncfusion/ej2-compression": "syncfusion:ej2-compression/dist/ej2-compression.umd.min.js", + "@syncfusion/ej2-grids": "syncfusion:ej2-grids/dist/ej2-grids.umd.min.js", + "@syncfusion/ej2-charts": "syncfusion:ej2-charts/dist/ej2-charts.umd.min.js", + "@syncfusion/ej2-svg-base": "syncfusion:ej2-svg-base/dist/ej2-svg-base.umd.min.js", + "@syncfusion/ej2-spreadsheet": "syncfusion:ej2-spreadsheet/dist/ej2-spreadsheet.umd.min.js" + } +}); + +System.import('index.ts').catch(console.error.bind(console)).then(function () { + document.getElementById('loader').style.display = "none"; + document.getElementById('container').style.visibility = "visible"; +}); \ No newline at end of file diff --git a/ej2-javascript/code-snippet/spreadsheet/calculation-cs1/ts/index.html b/ej2-javascript/code-snippet/spreadsheet/calculation-cs1/ts/index.html new file mode 100644 index 000000000..60a54f6c9 --- /dev/null +++ b/ej2-javascript/code-snippet/spreadsheet/calculation-cs1/ts/index.html @@ -0,0 +1,37 @@ + + + + + EJ2 SpreadSheet + + + + + + + + + + + + + + + + + + + + + + + + + +
    Loading....
    +
    +
    +
    + + + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/spreadsheet/calculation-cs2/datasource.ts b/ej2-javascript/code-snippet/spreadsheet/calculation-cs2/datasource.ts new file mode 100644 index 000000000..f0809f48d --- /dev/null +++ b/ej2-javascript/code-snippet/spreadsheet/calculation-cs2/datasource.ts @@ -0,0 +1,13 @@ + +export let data: Object[] = [ + { 'Item Name': 'Casual Shoes', Date: '2/14/2024', Time: '11:34:32 AM', Quantity: 10, Price: 20, Amount: '=PRODUCT(D2:E2)', Discount: '2%', Profit: '=PRODUCT(G2:F2)' }, + { 'Item Name': 'Sports Shoes', Date: '6/11/2024', Time: '05:56:32 AM', Quantity: 20, Price: 30, Amount: '=PRODUCT(D3:E3)', Discount: '5%', Profit: '=PRODUCT(G3:F3)' }, + { 'Item Name': 'Formal Shoes', Date: '7/27/2024', Time: '03:32:44 AM', Quantity: 20, Price: 15, Amount: '=PRODUCT(D4:E4)', Discount: '7.5%', Profit: '=PRODUCT(G4:F4)' }, + { 'Item Name': 'Sandals & Floaters', Date: '11/21/2024', Time: '06:23:54 PM', Quantity: 15, Price: 20.45, Amount: '=PRODUCT(D5:E5)', Discount: '11%', Profit: '=PRODUCT(G5:F5)' }, + { 'Item Name': 'Flip- Flops & Slippers', Date: '6/23/2024', Time: '12:43:59 AM', Quantity: 30, Price: 10.67, Amount: '=PRODUCT(D6:E6)', Discount: '10%', Profit: '=PRODUCT(G6:F6)' }, + { 'Item Name': 'Sneakers', Date: '7/22/2024', Time: '10:55:53 AM', Quantity: 40, Price: 20, Amount: '=PRODUCT(D7:E7)', Discount: '13.2%', Profit: '=PRODUCT(G7:F7)' }, + { 'Item Name': 'Running Shoes', Date: '2/4/2024', Time: '03:44:34 AM', Quantity: 20, Price: 10.5, Amount: '=PRODUCT(D8:E8)', Discount: '3%', Profit: '=PRODUCT(G8:F8)' }, + { 'Item Name': 'Loafers', Date: '11/30/2024', Time: '03:12:52 AM', Quantity: 31, Price: 10, Amount: '=PRODUCT(D9:E9)', Discount: '6.67%', Profit: '=PRODUCT(G9:F9)' }, + { 'Item Name': 'Cricket Shoes', Date: '7/9/2024', Time: '11:32:14 PM', Quantity: 41, Price: 30, Amount: '=PRODUCT(D10:E10)', Discount: '12.5%', Profit: '=PRODUCT(G10:F10)' }, + { 'Item Name': 'T-Shirts', Date: '10/31/2024', Time: '12:01:44 AM', Quantity: 50, Price: 10.75, Amount: '=PRODUCT(D11:E11)', Discount: '9%', Profit: '=PRODUCT(G11:F11)' } +]; \ No newline at end of file diff --git a/ej2-javascript/code-snippet/spreadsheet/calculation-cs2/es5-datasource.js b/ej2-javascript/code-snippet/spreadsheet/calculation-cs2/es5-datasource.js new file mode 100644 index 000000000..49947c44d --- /dev/null +++ b/ej2-javascript/code-snippet/spreadsheet/calculation-cs2/es5-datasource.js @@ -0,0 +1,13 @@ + +var data = [ + { 'Item Name': 'Casual Shoes', Date: '2/14/2024', Time: '11:34:32 AM', Quantity: 10, Price: 20, Amount: '=PRODUCT(D2:E2)', Discount: '2%', Profit: '=PRODUCT(G2:F2)' }, + { 'Item Name': 'Sports Shoes', Date: '6/11/2024', Time: '05:56:32 AM', Quantity: 20, Price: 30, Amount: '=PRODUCT(D3:E3)', Discount: '5%', Profit: '=PRODUCT(G3:F3)' }, + { 'Item Name': 'Formal Shoes', Date: '7/27/2024', Time: '03:32:44 AM', Quantity: 20, Price: 15, Amount: '=PRODUCT(D4:E4)', Discount: '7.5%', Profit: '=PRODUCT(G4:F4)' }, + { 'Item Name': 'Sandals & Floaters', Date: '11/21/2024', Time: '06:23:54 PM', Quantity: 15, Price: 20.45, Amount: '=PRODUCT(D5:E5)', Discount: '11%', Profit: '=PRODUCT(G5:F5)' }, + { 'Item Name': 'Flip- Flops & Slippers', Date: '6/23/2024', Time: '12:43:59 AM', Quantity: 30, Price: 10.67, Amount: '=PRODUCT(D6:E6)', Discount: '10%', Profit: '=PRODUCT(G6:F6)' }, + { 'Item Name': 'Sneakers', Date: '7/22/2024', Time: '10:55:53 AM', Quantity: 40, Price: 20, Amount: '=PRODUCT(D7:E7)', Discount: '13.2%', Profit: '=PRODUCT(G7:F7)' }, + { 'Item Name': 'Running Shoes', Date: '2/4/2024', Time: '03:44:34 AM', Quantity: 20, Price: 10.5, Amount: '=PRODUCT(D8:E8)', Discount: '3%', Profit: '=PRODUCT(G8:F8)' }, + { 'Item Name': 'Loafers', Date: '11/30/2024', Time: '03:12:52 AM', Quantity: 31, Price: 10, Amount: '=PRODUCT(D9:E9)', Discount: '6.67%', Profit: '=PRODUCT(G9:F9)' }, + { 'Item Name': 'Cricket Shoes', Date: '7/9/2024', Time: '11:32:14 PM', Quantity: 41, Price: 30, Amount: '=PRODUCT(D10:E10)', Discount: '12.5%', Profit: '=PRODUCT(G10:F10)' }, + { 'Item Name': 'T-Shirts', Date: '10/31/2024', Time: '12:01:44 AM', Quantity: 50, Price: 10.75, Amount: '=PRODUCT(D11:E11)', Discount: '9%', Profit: '=PRODUCT(G11:F11)' } +]; diff --git a/ej2-javascript/code-snippet/spreadsheet/calculation-cs2/index.js b/ej2-javascript/code-snippet/spreadsheet/calculation-cs2/index.js new file mode 100644 index 000000000..b309ee8e1 --- /dev/null +++ b/ej2-javascript/code-snippet/spreadsheet/calculation-cs2/index.js @@ -0,0 +1,17 @@ +ej.base.enableRipple(true); + +var columns = [{ width: 130 }, { width: 92 }, { width: 96 }]; + + +var sheets = [{ name: 'Product Details', ranges: [{ dataSource: data, startCell: 'A1' }], columns: columns }]; + +var spreadsheet = new ej.spreadsheet.Spreadsheet({ + calculationMode: 'Manual', + sheets: sheets, + created: function () { + spreadsheet.cellFormat({ fontWeight: 'bold', textAlign: 'center' }, 'A1:H1'); + } +}); + +spreadsheet.appendTo('#spreadsheet'); + diff --git a/ej2-javascript/code-snippet/spreadsheet/calculation-cs2/index.ts b/ej2-javascript/code-snippet/spreadsheet/calculation-cs2/index.ts new file mode 100644 index 000000000..b82e8468f --- /dev/null +++ b/ej2-javascript/code-snippet/spreadsheet/calculation-cs2/index.ts @@ -0,0 +1,22 @@ + + +import { Spreadsheet, SheetModel, ColumnModel } from '@syncfusion/ej2-spreadsheet'; +import { data } from './datasource.ts'; +import { enableRipple } from '@syncfusion/ej2-base'; + +enableRipple(true); + +let columns: ColumnModel[] = [{ width: 130 }, { width: 92 }, { width: 96 }]; + +let sheets: SheetModel[] = [{ name: 'Product Details', ranges: [{ dataSource: data, startCell: 'A1' }], columns: columns }]; +let spreadsheet: Spreadsheet = new Spreadsheet({ + calculationMode: 'Manual', + sheets: sheets, + created: function () { + spreadsheet.cellFormat({ fontWeight: 'bold', textAlign: 'center' }, 'A1:H1'); + } +}); + +spreadsheet.appendTo('#spreadsheet'); + + diff --git a/ej2-javascript/code-snippet/spreadsheet/calculation-cs2/js/index.html b/ej2-javascript/code-snippet/spreadsheet/calculation-cs2/js/index.html new file mode 100644 index 000000000..1c0ea2d8c --- /dev/null +++ b/ej2-javascript/code-snippet/spreadsheet/calculation-cs2/js/index.html @@ -0,0 +1,42 @@ + + EJ2 SpreadSheet + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    + + + + + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/spreadsheet/calculation-cs2/styles.css b/ej2-javascript/code-snippet/spreadsheet/calculation-cs2/styles.css new file mode 100644 index 000000000..49d610a86 --- /dev/null +++ b/ej2-javascript/code-snippet/spreadsheet/calculation-cs2/styles.css @@ -0,0 +1,15 @@ +#container { + visibility: hidden; +} + +#loader { + color: #008cff; + height: 40px; + left: 45%; + position: absolute; + top: 45%; + width: 30%; +} +body { + height: 425px; +} diff --git a/ej2-javascript/code-snippet/spreadsheet/calculation-cs2/system.config.js b/ej2-javascript/code-snippet/spreadsheet/calculation-cs2/system.config.js new file mode 100644 index 000000000..b1c9e8487 --- /dev/null +++ b/ej2-javascript/code-snippet/spreadsheet/calculation-cs2/system.config.js @@ -0,0 +1,44 @@ +System.config({ + transpiler: "typescript", + typescriptOptions: { + compilerOptions: { + target: "umd", + module: "commonjs", + moduleResolution: "node", + emitDecoratorMetadata: true, + experimentalDecorators: true + } + }, + paths: { + "syncfusion:": "https://cdn.syncfusion.com/ej2/28.1.33/" + }, + map: { + main: "index.ts", + typescript: "https://unpkg.com/typescript@2.2.2/lib/typescript.js", + //Syncfusion packages mapping + "@syncfusion/ej2-base": "syncfusion:ej2-base/dist/ej2-base.umd.min.js", + "@syncfusion/ej2-data": "syncfusion:ej2-data/dist/ej2-data.umd.min.js", + "@syncfusion/ej2-inputs": "syncfusion:ej2-inputs/dist/ej2-inputs.umd.min.js", + "@syncfusion/ej2-buttons": "syncfusion:ej2-buttons/dist/ej2-buttons.umd.min.js", + "@syncfusion/ej2-splitbuttons": "syncfusion:ej2-splitbuttons/dist/ej2-splitbuttons.umd.min.js", + "@syncfusion/ej2-lists": "syncfusion:ej2-lists/dist/ej2-lists.umd.min.js", + "@syncfusion/ej2-navigations": "syncfusion:ej2-navigations/dist/ej2-navigations.umd.min.js", + "@syncfusion/ej2-notifications": "syncfusion:ej2-notifications/dist/ej2-notifications.umd.min.js", + "@syncfusion/ej2-popups": "syncfusion:ej2-popups/dist/ej2-popups.umd.min.js", + "@syncfusion/ej2-dropdowns": "syncfusion:ej2-dropdowns/dist/ej2-dropdowns.umd.min.js", + "@syncfusion/ej2-calendars": "syncfusion:ej2-calendars/dist/ej2-calendars.umd.min.js", + "@syncfusion/ej2-excel-export": "syncfusion:ej2-excel-export/dist/ej2-excel-export.umd.min.js", + "@syncfusion/ej2-pdf-export": "syncfusion:ej2-pdf-export/dist/ej2-pdf-export.umd.min.js", + "@syncfusion/ej2-file-utils": "syncfusion:ej2-file-utils/dist/ej2-file-utils.umd.min.js", + "@syncfusion/ej2-compression": "syncfusion:ej2-compression/dist/ej2-compression.umd.min.js", + "@syncfusion/ej2-grids": "syncfusion:ej2-grids/dist/ej2-grids.umd.min.js", + "@syncfusion/ej2-charts": "syncfusion:ej2-charts/dist/ej2-charts.umd.min.js", + "@syncfusion/ej2-svg-base": "syncfusion:ej2-svg-base/dist/ej2-svg-base.umd.min.js", + "@syncfusion/ej2-spreadsheet": "syncfusion:ej2-spreadsheet/dist/ej2-spreadsheet.umd.min.js" + } +}); + +System.import('index.ts').catch(console.error.bind(console)).then(function () { + document.getElementById('loader').style.display = "none"; + document.getElementById('container').style.visibility = "visible"; +}); \ No newline at end of file diff --git a/ej2-javascript/code-snippet/spreadsheet/calculation-cs2/ts/index.html b/ej2-javascript/code-snippet/spreadsheet/calculation-cs2/ts/index.html new file mode 100644 index 000000000..aaa2931c9 --- /dev/null +++ b/ej2-javascript/code-snippet/spreadsheet/calculation-cs2/ts/index.html @@ -0,0 +1,36 @@ + + + + + EJ2 SpreadSheet + + + + + + + + + + + + + + + + + + + + + + + + +
    Loading....
    +
    +
    +
    + + + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/spreadsheet/clear-cs1/index.ts b/ej2-javascript/code-snippet/spreadsheet/clear-cs1/index.ts index 8861b097c..8f1d7f1f2 100644 --- a/ej2-javascript/code-snippet/spreadsheet/clear-cs1/index.ts +++ b/ej2-javascript/code-snippet/spreadsheet/clear-cs1/index.ts @@ -43,15 +43,14 @@ drpDownBtn.appendTo("#element"); //Initialize the SpreadSheet control let spreadsheet: Spreadsheet = new Spreadsheet({ sheets: [{ - ranges: [{ dataSource: orderData }], - columns: [{ width: 80 }, { width: 80 },{ width: 80}, - { width: 160 }, { width: 100 }, {width: 150}] - }], - created: (): void => { - spreadsheet.cellFormat({ fontWeight: 'bold', fontSize: '12pt'}, 'A1:E1'); - spreadsheet.cellFormat({ color: '#10c469' }, 'B1:B10'); - }, - } + ranges: [{ dataSource: orderData }], + columns: [{ width: 80 }, { width: 80 }, { width: 80 }, + { width: 160 }, { width: 100 }, { width: 150 }] + }], + created: (): void => { + spreadsheet.cellFormat({ fontWeight: 'bold', fontSize: '12pt' }, 'A1:E1'); + spreadsheet.cellFormat({ color: '#10c469' }, 'B1:B10'); + }, }); spreadsheet.appendTo('#spreadsheet'); diff --git a/ej2-javascript/code-snippet/spreadsheet/clipboard-cs2/index.js b/ej2-javascript/code-snippet/spreadsheet/clipboard-cs2/index.js index 97156291f..a8e77ab9c 100644 --- a/ej2-javascript/code-snippet/spreadsheet/clipboard-cs2/index.js +++ b/ej2-javascript/code-snippet/spreadsheet/clipboard-cs2/index.js @@ -44,8 +44,15 @@ var columns = [ ]; var spreadsheet = new ej.spreadsheet.Spreadsheet({ - sheets: [{ ranges: [{ dataSource: defaultData }], columns: columns }], - enableClipboard: true + sheets: [{ ranges: [{ dataSource: defaultData }], columns: columns }], + enableClipboard: true, + // Triggers before the action begins. + actionBegin: (pasteArgs) => { + // To cancel the paste action. + if (pasteArgs.action === 'clipboard' && pasteArgs.args.eventArgs.requestType === 'paste') { + pasteArgs.args.eventArgs.cancel = true; + } + } }); diff --git a/ej2-javascript/code-snippet/spreadsheet/clipboard-cs2/index.ts b/ej2-javascript/code-snippet/spreadsheet/clipboard-cs2/index.ts index d2b26ba4c..e9716796a 100644 --- a/ej2-javascript/code-snippet/spreadsheet/clipboard-cs2/index.ts +++ b/ej2-javascript/code-snippet/spreadsheet/clipboard-cs2/index.ts @@ -3,7 +3,7 @@ import { Spreadsheet, ColumnModel } from '@syncfusion/ej2-spreadsheet'; import { defaultData } from './datasource.ts'; -import { DropDownButton, ItemModel } from "@syncfusion/ej2-splitbuttons"; +import { DropDownButton, ItemModel, MenuEventArgs } from "@syncfusion/ej2-splitbuttons"; //Initialize action items. let items: ItemModel[] = [ @@ -48,20 +48,18 @@ let columns: ColumnModel[] = [ ]; let spreadsheet: Spreadsheet = new Spreadsheet({ - sheets: [{ name: 'Price Details', ranges: [{ dataSource: defaultData }], columns: columns }], - enableClipboard: true, - created: (): void => { - spreadsheet.cellFormat({ fontWeight: 'bold', textAlign: 'center', verticalAlign: 'middle' }, 'A1:F1'); - }, - // Triggers before the action begins. - actionBegin: (pasteArgs: any) => { - const args: { action: string, eventArgs: BeforePasteEventArgs } = { action: pasteArgs.args.eventArgs.requestType, - eventArgs: pasteArgs.args.eventArgs }; - // To cancel the paste action. - if (args.action === 'paste') { - args.eventArgs.cancel = true; - } + sheets: [{ name: 'Price Details', ranges: [{ dataSource: defaultData }], columns: columns }], + enableClipboard: true, + created: (): void => { + spreadsheet.cellFormat({ fontWeight: 'bold', textAlign: 'center', verticalAlign: 'middle' }, 'A1:F1'); + }, + // Triggers before the action begins. + actionBegin: (pasteArgs: any) => { + // To cancel the paste action. + if (pasteArgs.action === 'clipboard' && pasteArgs.args.eventArgs.requestType === 'paste') { + pasteArgs.args.eventArgs.cancel = true; } + } }); //Render the initialized Spreadsheet diff --git a/ej2-javascript/code-snippet/spreadsheet/column-width-cs1/index.js b/ej2-javascript/code-snippet/spreadsheet/column-width-cs1/index.js index d290783b7..4f62cb63c 100644 --- a/ej2-javascript/code-snippet/spreadsheet/column-width-cs1/index.js +++ b/ej2-javascript/code-snippet/spreadsheet/column-width-cs1/index.js @@ -6,9 +6,9 @@ var spreadsheet = new ej.spreadsheet.Spreadsheet({ sheets: sheets, created: function () { // To change width of single column - this.spreadsheet.setColumnsWidth(100, ['F']); + spreadsheet.setColumnsWidth(100, ['F']); // To change width of multiple columns - this.spreadsheet.setColumnsWidth(120, ['A:C', 'G:I', 'K:M']); + spreadsheet.setColumnsWidth(120, ['A:C', 'G:I', 'K:M']); }, }); diff --git a/ej2-javascript/code-snippet/spreadsheet/data-binding-cs1/index.js b/ej2-javascript/code-snippet/spreadsheet/data-binding-cs1/index.js index a4d1e267c..6ed4324e0 100644 --- a/ej2-javascript/code-snippet/spreadsheet/data-binding-cs1/index.js +++ b/ej2-javascript/code-snippet/spreadsheet/data-binding-cs1/index.js @@ -42,13 +42,14 @@ var data= [{ }]; var sheet = [{ - ranges: [{ dataSource: data }], - columns: [{ width: 80 }, { width: 80 },{ width: 80}, - { width: 160 }, { width: 100 }, {width: 150}] - }] + ranges: [{ dataSource: data }], + columns: [{ width: 80 }, { width: 80 }, { width: 80 }, + { width: 160 }, { width: 100 }, { width: 150 }] +}]; + var spreadsheet = new ej.spreadsheet.Spreadsheet({ - sheets: sheet - }); + sheets: sheet +}); // Render initialized Spreadsheet. spreadsheet.appendTo('#spreadsheet'); diff --git a/ej2-javascript/code-snippet/spreadsheet/data-binding-cs1/index.ts b/ej2-javascript/code-snippet/spreadsheet/data-binding-cs1/index.ts index 65c1ecca1..2dd4bbe38 100644 --- a/ej2-javascript/code-snippet/spreadsheet/data-binding-cs1/index.ts +++ b/ej2-javascript/code-snippet/spreadsheet/data-binding-cs1/index.ts @@ -1,18 +1,13 @@ - - - import { Spreadsheet } from '@syncfusion/ej2-spreadsheet'; import { data } from './datasource.ts'; //Initialize the SpreadSheet control let spreadsheet: Spreadsheet = new Spreadsheet({ sheets: [{ - ranges: [{ dataSource: data }], - columns: [{ width: 80 }, { width: 80 },{ width: 80}, - { width: 160 }, { width: 100 }, {width: 150}] - }], - } + ranges: [{ dataSource: data }], + columns: [{ width: 80 }, { width: 80 }, { width: 80 }, + { width: 160 }, { width: 100 }, { width: 150 }] + }], }); -spreadsheet.appendTo('#spreadsheet'); - +spreadsheet.appendTo('#spreadsheet'); diff --git a/ej2-javascript/code-snippet/spreadsheet/data-validation-cs3/index.js b/ej2-javascript/code-snippet/spreadsheet/data-validation-cs3/index.js new file mode 100644 index 000000000..4425cf3ae --- /dev/null +++ b/ej2-javascript/code-snippet/spreadsheet/data-validation-cs3/index.js @@ -0,0 +1,72 @@ +var sheet = [ + { + rows: [ + { + index: 0, + cells: [{ index: 0, value: 'Seller Name', style: { fontWeight: "bold", textAlign: "center" } }, + { index: 1, value: 'Customer Id', style: { fontWeight: "bold", textAlign: "center" } }, + { index: 2, value: 'Customer Name', style: { fontWeight: "bold", textAlign: "center" } }, + { index: 3, value: 'Product Name', style: { fontWeight: "bold", textAlign: "center" } }, + { index: 4, value: 'Product Price', style: { fontWeight: "bold", textAlign: "center" } }, + { index: 5, value: 'Total Price', style: { fontWeight: "bold", textAlign: "center" } }] + }, + { + index: 1, + cells: [{ index: 0, value: 'John' }, + { index: 1, value: '101' }, + { index: 2, value: 'Nash' }, + { index: 3, value: 'Digger' }, + { index: 4, value: '50000' }, + { index: 5, value: '1,45,000.00' }] + }, + { + index: 2, + cells: [{ index: 0, value: 'Mike' }, + { index: 1, value: '25' }, + { index: 2, value: 'Jim' }, + { index: 3, value: 'Cherrypicker' }, + { index: 4, value: '45000' }, + { index: 5, value: '1,40,040.00' }] + }, + { + index: 3, + cells: [{ index: 0, value: 'shane' }, + { index: 1, value: '35' }, + { index: 2, value: 'Sean' }, + { index: 3, value: 'Kango' }, + { index: 4, value: '35000' }, + { index: 5, value: '1,54,500.00' }] + }, + { + index: 4, + cells: [{ index: 0, value: 'John' }, + { index: 1, value: '101' }, + { index: 2, value: 'Nash' }, + { index: 3, value: 'JCB' }, + { index: 4, value: '90000' }, + { index: 5, value: '1,00,095.00' }] + } + ], + columns: [ + { width: 88, }, { width: 88 }, { width: 106 }, { width: 98 }, { width: 88 }, { width: 81 } + ] + }, + { + name: 'PriceDetails', + } +]; + +//Initialize the SpreadSheet control +var spreadsheet = new ej.spreadsheet.Spreadsheet({ + sheets: sheet, + created: function () { + ////add Data validation to range. + spreadsheet.addDataValidation({ type: 'Custom', value1: '=AND(B2>10, B2<100)' }, 'E2:E5'); + //Highlight Invalid Data. + spreadsheet.addInvalidHighlight('E2:E5'); + } +}); + +// Render initialized Spreadsheet. +spreadsheet.appendTo('#spreadsheet'); + diff --git a/ej2-javascript/code-snippet/spreadsheet/data-validation-cs3/index.ts b/ej2-javascript/code-snippet/spreadsheet/data-validation-cs3/index.ts new file mode 100644 index 000000000..49eb176dc --- /dev/null +++ b/ej2-javascript/code-snippet/spreadsheet/data-validation-cs3/index.ts @@ -0,0 +1,77 @@ + + + +import { Spreadsheet } from '@syncfusion/ej2-spreadsheet'; + +var sheet: SheetModel[] = [ + { + rows: [ + { + index: 0, + cells: [{ index: 0, value: 'Seller Name', style: { fontWeight: "bold", textAlign: "center" } }, + { index: 1, value: 'Customer Id', style: { fontWeight: "bold", textAlign: "center" } }, + { index: 2, value: 'Customer Name', style: { fontWeight: "bold", textAlign: "center" } }, + { index: 3, value: 'Product Name', style: { fontWeight: "bold", textAlign: "center" } }, + { index: 4, value: 'Product Price', style: { fontWeight: "bold", textAlign: "center" } }, + { index: 5, value: 'Total Price', style: { fontWeight: "bold", textAlign: "center" } }] + }, + { + index: 1, + cells: [{ index: 0, value: 'John' }, + { index: 1, value: '101' }, + { index: 2, value: 'Nash' }, + { index: 3, value: 'Digger' }, + { index: 4, value: '50000' }, + { index: 5, value: '1,45,000.00' }] + }, + { + index: 2, + cells: [{ index: 0, value: 'Mike' }, + { index: 1, value: '25' }, + { index: 2, value: 'Jim' }, + { index: 3, value: 'Cherrypicker' }, + { index: 4, value: '45000' }, + { index: 5, value: '1,40,040.00' }] + }, + { + index: 3, + cells: [{ index: 0, value: 'shane' }, + { index: 1, value: '35' }, + { index: 2, value: 'Sean' }, + { index: 3, value: 'Kango' }, + { index: 4, value: '35000' }, + { index: 5, value: '1,54,500.00' }] + }, + { + index: 4, + cells: [{ index: 0, value: 'John' }, + { index: 1, value: '101' }, + { index: 2, value: 'Nash' }, + { index: 3, value: 'JCB' }, + { index: 4, value: '90000' }, + { index: 5, value: '1,00,095.00' }] + } + ], + columns: [ + { width: 88, }, { width: 88 }, { width: 106 }, { width: 98 }, { width: 88 }, { width: 81 } + ] + }, + { + name: 'PriceDetails', + } +]; + +//Initialize the SpreadSheet control +let spreadsheet: Spreadsheet = new Spreadsheet({ + sheets: sheet, + created: () => { + ////add Data validation to range. + spreadsheet.addDataValidation({ type: 'Custom', value1: '=AND(B2>10, B2<100)' }, 'E2:E5'); + //Highlight Invalid Data. + spreadsheet.addInvalidHighlight('E2:E5'); + } +}); + +spreadsheet.appendTo('#spreadsheet'); + + diff --git a/ej2-javascript/code-snippet/spreadsheet/data-validation-cs3/js/index.html b/ej2-javascript/code-snippet/spreadsheet/data-validation-cs3/js/index.html new file mode 100644 index 000000000..9b5f9c00e --- /dev/null +++ b/ej2-javascript/code-snippet/spreadsheet/data-validation-cs3/js/index.html @@ -0,0 +1,44 @@ + + + + + EJ2 SpreadSheet + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    + + + + + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/spreadsheet/data-validation-cs3/styles.css b/ej2-javascript/code-snippet/spreadsheet/data-validation-cs3/styles.css new file mode 100644 index 000000000..9ac2d2c78 --- /dev/null +++ b/ej2-javascript/code-snippet/spreadsheet/data-validation-cs3/styles.css @@ -0,0 +1,15 @@ +#container { + visibility: hidden; +} + +#loader { + color: #008cff; + height: 40px; + left: 45%; + position: absolute; + top: 45%; + width: 30%; +} +body { + height: 475px; +} diff --git a/ej2-javascript/code-snippet/spreadsheet/data-validation-cs3/system.config.js b/ej2-javascript/code-snippet/spreadsheet/data-validation-cs3/system.config.js new file mode 100644 index 000000000..b1c9e8487 --- /dev/null +++ b/ej2-javascript/code-snippet/spreadsheet/data-validation-cs3/system.config.js @@ -0,0 +1,44 @@ +System.config({ + transpiler: "typescript", + typescriptOptions: { + compilerOptions: { + target: "umd", + module: "commonjs", + moduleResolution: "node", + emitDecoratorMetadata: true, + experimentalDecorators: true + } + }, + paths: { + "syncfusion:": "https://cdn.syncfusion.com/ej2/28.1.33/" + }, + map: { + main: "index.ts", + typescript: "https://unpkg.com/typescript@2.2.2/lib/typescript.js", + //Syncfusion packages mapping + "@syncfusion/ej2-base": "syncfusion:ej2-base/dist/ej2-base.umd.min.js", + "@syncfusion/ej2-data": "syncfusion:ej2-data/dist/ej2-data.umd.min.js", + "@syncfusion/ej2-inputs": "syncfusion:ej2-inputs/dist/ej2-inputs.umd.min.js", + "@syncfusion/ej2-buttons": "syncfusion:ej2-buttons/dist/ej2-buttons.umd.min.js", + "@syncfusion/ej2-splitbuttons": "syncfusion:ej2-splitbuttons/dist/ej2-splitbuttons.umd.min.js", + "@syncfusion/ej2-lists": "syncfusion:ej2-lists/dist/ej2-lists.umd.min.js", + "@syncfusion/ej2-navigations": "syncfusion:ej2-navigations/dist/ej2-navigations.umd.min.js", + "@syncfusion/ej2-notifications": "syncfusion:ej2-notifications/dist/ej2-notifications.umd.min.js", + "@syncfusion/ej2-popups": "syncfusion:ej2-popups/dist/ej2-popups.umd.min.js", + "@syncfusion/ej2-dropdowns": "syncfusion:ej2-dropdowns/dist/ej2-dropdowns.umd.min.js", + "@syncfusion/ej2-calendars": "syncfusion:ej2-calendars/dist/ej2-calendars.umd.min.js", + "@syncfusion/ej2-excel-export": "syncfusion:ej2-excel-export/dist/ej2-excel-export.umd.min.js", + "@syncfusion/ej2-pdf-export": "syncfusion:ej2-pdf-export/dist/ej2-pdf-export.umd.min.js", + "@syncfusion/ej2-file-utils": "syncfusion:ej2-file-utils/dist/ej2-file-utils.umd.min.js", + "@syncfusion/ej2-compression": "syncfusion:ej2-compression/dist/ej2-compression.umd.min.js", + "@syncfusion/ej2-grids": "syncfusion:ej2-grids/dist/ej2-grids.umd.min.js", + "@syncfusion/ej2-charts": "syncfusion:ej2-charts/dist/ej2-charts.umd.min.js", + "@syncfusion/ej2-svg-base": "syncfusion:ej2-svg-base/dist/ej2-svg-base.umd.min.js", + "@syncfusion/ej2-spreadsheet": "syncfusion:ej2-spreadsheet/dist/ej2-spreadsheet.umd.min.js" + } +}); + +System.import('index.ts').catch(console.error.bind(console)).then(function () { + document.getElementById('loader').style.display = "none"; + document.getElementById('container').style.visibility = "visible"; +}); \ No newline at end of file diff --git a/ej2-javascript/code-snippet/spreadsheet/data-validation-cs3/ts/index.html b/ej2-javascript/code-snippet/spreadsheet/data-validation-cs3/ts/index.html new file mode 100644 index 000000000..aaa2931c9 --- /dev/null +++ b/ej2-javascript/code-snippet/spreadsheet/data-validation-cs3/ts/index.html @@ -0,0 +1,36 @@ + + + + + EJ2 SpreadSheet + + + + + + + + + + + + + + + + + + + + + + + + +
    Loading....
    +
    +
    +
    + + + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/spreadsheet/formula-cs3/ts/index.html b/ej2-javascript/code-snippet/spreadsheet/formula-cs3/ts/index.html index b5807d23e..f9b5a936f 100644 --- a/ej2-javascript/code-snippet/spreadsheet/formula-cs3/ts/index.html +++ b/ej2-javascript/code-snippet/spreadsheet/formula-cs3/ts/index.html @@ -21,7 +21,7 @@ - + diff --git a/ej2-javascript/code-snippet/spreadsheet/freezepane-cs1/index.ts b/ej2-javascript/code-snippet/spreadsheet/freezepane-cs1/index.ts index 37f5bc693..f3256a4d8 100644 --- a/ej2-javascript/code-snippet/spreadsheet/freezepane-cs1/index.ts +++ b/ej2-javascript/code-snippet/spreadsheet/freezepane-cs1/index.ts @@ -1,25 +1,21 @@ - - - -import { Spreadsheet, SheetModel } from '@syncfusion/ej2-spreadsheet'; +import { Spreadsheet, ColumnModel } from '@syncfusion/ej2-spreadsheet'; import { tradeData } from './datasource.ts'; import { enableRipple } from '@syncfusion/ej2-base'; enableRipple(true); -let columns: ColumnModel[] = [{ width: 180 }, { width: 180 },{ width: 180}, - { width: 180 }, { width: 180 },{ width: 180}, - { width: 180 }, { width: 180 },{ width: 180}, { width: 180 }, { width: 180 },{ width: 180}] +let columns: ColumnModel[] = [{ width: 180 }, { width: 180 }, { width: 180 }, +{ width: 180 }, { width: 180 }, { width: 180 }, +{ width: 180 }, { width: 180 }, { width: 180 }, { width: 180 }, { width: 180 }, { width: 180 }]; let spreadsheet: Spreadsheet = new Spreadsheet({ - sheets: [{ ranges: [{ dataSource: tradeData }], columns: columns - // Specifies the number of frozen rows - frozenRows: 2, - // Specifies the number of frozen columns - frozenColumns: 2 + sheets: [{ + ranges: [{ dataSource: tradeData }], columns: columns, + // Specifies the number of frozen rows + frozenRows: 2, + // Specifies the number of frozen columns + frozenColumns: 2 }], }); spreadsheet.appendTo('#spreadsheet'); - - diff --git a/ej2-javascript/code-snippet/spreadsheet/link-cs1/index.ts b/ej2-javascript/code-snippet/spreadsheet/link-cs1/index.ts index 62bea15c1..abf677bbe 100644 --- a/ej2-javascript/code-snippet/spreadsheet/link-cs1/index.ts +++ b/ej2-javascript/code-snippet/spreadsheet/link-cs1/index.ts @@ -1,11 +1,8 @@ - - - -import { Spreadsheet } from '@syncfusion/ej2-spreadsheet'; +import { Spreadsheet, SheetModel, BeforeHyperlinkArgs } from '@syncfusion/ej2-spreadsheet'; let sheet: SheetModel[] = [ { - name: 'PriceDetails' + name: 'PriceDetails', rows: [ { cells: [ @@ -24,21 +21,21 @@ let sheet: SheetModel[] = [ { cells: [ { value: 'Sports Shoes' }, - { value: 'IN STOCK', hyperlink: 'Stock!A2:B2'}, + { value: 'IN STOCK', hyperlink: 'Stock!A2:B2' }, { value: 'Overstack', hyperlink: 'https://www.overstock.com/' } ] }, { cells: [ { value: 'Formal Shoes' }, - { value: 'IN STOCK', hyperlink: 'Stock!A3:B3'}, + { value: 'IN STOCK', hyperlink: 'Stock!A3:B3' }, { value: 'AliExpress', hyperlink: 'https://www.aliexpress.com/' } ] }, { cells: [ { value: 'Sandals & Floaters' }, - { value: 'OUT OF STOCK'}, + { value: 'OUT OF STOCK' }, { value: 'AliBaba', hyperlink: 'http://www.alibaba.com/' } ] }, @@ -54,9 +51,9 @@ let sheet: SheetModel[] = [ { width: 160 }, { width: 160 }, { width: 120 } ] }, -{ - name: 'Stock', - rows: [ + { + name: 'Stock', + rows: [ { cells: [ { value: 'Item Name' }, @@ -91,16 +88,14 @@ let sheet: SheetModel[] = [ columns: [ { width: 160 }, { width: 120 } ] -} + } ]; //Initialize the SpreadSheet control let spreadsheet: Spreadsheet = new Spreadsheet({ - sheets: sheet, - beforeHyperlinkClick: (args: BeforeHyperlinkArgs) => { + sheets: sheet, + beforeHyperlinkClick: (args: BeforeHyperlinkArgs) => { args.target = '_self'; //change target attribute } }); spreadsheet.appendTo('#spreadsheet'); - - diff --git a/ej2-javascript/code-snippet/spreadsheet/open-save-cs8/index.ts b/ej2-javascript/code-snippet/spreadsheet/open-save-cs8/index.ts index a32c1722c..0a23e3f58 100644 --- a/ej2-javascript/code-snippet/spreadsheet/open-save-cs8/index.ts +++ b/ej2-javascript/code-snippet/spreadsheet/open-save-cs8/index.ts @@ -1,20 +1,17 @@ - - -import { Spreadsheet } from '@syncfusion/ej2-spreadsheet'; +import { Spreadsheet, BeforeSaveEventArgs } from '@syncfusion/ej2-spreadsheet'; import { data } from './datasource.ts'; + //Initialize the SpreadSheet control let spreadsheet: Spreadsheet = new Spreadsheet({ sheets: [{ - ranges: [{ dataSource: data }], - columns: [{ width: 80 }, { width: 80 },{ width: 80}, - { width: 160 }, { width: 100 }, {width: 150}] - }], - saveUrl: 'https://services.syncfusion.com/js/production/api/spreadsheet/save', - beforeSave: (args: BeforeSaveEventArgs) => { - args.pdfLayoutSettings.orientation = 'Landscape'; // You can change the orientation of the PDF document - } + ranges: [{ dataSource: data }], + columns: [{ width: 80 }, { width: 80 }, { width: 80 }, + { width: 160 }, { width: 100 }, { width: 150 }] + }], + saveUrl: 'https://services.syncfusion.com/js/production/api/spreadsheet/save', + beforeSave: (args: BeforeSaveEventArgs) => { + args.pdfLayoutSettings.orientation = 'Landscape'; // You can change the orientation of the PDF document } }); -spreadsheet.appendTo('#spreadsheet'); - +spreadsheet.appendTo('#spreadsheet'); diff --git a/ej2-javascript/code-snippet/spreadsheet/protect-sheet-cs1/index.ts b/ej2-javascript/code-snippet/spreadsheet/protect-sheet-cs1/index.ts index 3122cb90f..c0aa21058 100644 --- a/ej2-javascript/code-snippet/spreadsheet/protect-sheet-cs1/index.ts +++ b/ej2-javascript/code-snippet/spreadsheet/protect-sheet-cs1/index.ts @@ -1,22 +1,17 @@ - - import { Spreadsheet, ColumnModel } from '@syncfusion/ej2-spreadsheet'; import { budgetData, salaryData } from './datasource.ts'; -let columns: ColumnModel[] = [{ width: 100 }, { width: 100 },{ width: 100}, - { width: 100 }]; +let columns: ColumnModel[] = [{ width: 100 }, { width: 100 }, { width: 100 }, +{ width: 100 }]; let spreadsheet: Spreadsheet = new Spreadsheet({ - sheets: [{ name: 'Budget', ranges: [{ dataSource: budgetData }], columns: columns,isProtected: true, protectSettings: {selectCells: true} }, - {name: 'Salary', ranges: [{ dataSource: salaryData }], columns: columns}], + sheets: [{ name: 'Budget', ranges: [{ dataSource: budgetData }], columns: columns, isProtected: true, protectSettings: { selectCells: true } }, + { name: 'Salary', ranges: [{ dataSource: salaryData }], columns: columns }], dataBound: function () { - spreadsheet.cellFormat({ fontWeight: 'bold', textAlign: 'center' }, 'A1:D1'); - spreadsheet.cellFormat({ fontWeight: 'bold'}, 'A11:D11'); - spreadsheet.protectSheet(1, { selectCells: false}, "syncfusion"); // protect sheet with password - } - } + spreadsheet.cellFormat({ fontWeight: 'bold', textAlign: 'center' }, 'A1:D1'); + spreadsheet.cellFormat({ fontWeight: 'bold' }, 'A11:D11'); + spreadsheet.protectSheet(1, { selectCells: false }, "syncfusion"); // protect sheet with password } }); -spreadsheet.appendTo('#spreadsheet'); - +spreadsheet.appendTo('#spreadsheet'); diff --git a/ej2-javascript/code-snippet/spreadsheet/protect-sheet-cs2/index.js b/ej2-javascript/code-snippet/spreadsheet/protect-sheet-cs2/index.js index 50ad551ff..1f72c2751 100644 --- a/ej2-javascript/code-snippet/spreadsheet/protect-sheet-cs2/index.js +++ b/ej2-javascript/code-snippet/spreadsheet/protect-sheet-cs2/index.js @@ -17,7 +17,7 @@ var dialogObj = new ej.popups.Dialog({ target: document.getElementById('spreadsheet'), content: '"A1:F3" range of cells has been unlocked.', showCloseIcon: true, - isModel: true, + isModal: true, visible: false, width: '500px', buttons: [{ diff --git a/ej2-javascript/code-snippet/spreadsheet/protect-sheet-cs2/index.ts b/ej2-javascript/code-snippet/spreadsheet/protect-sheet-cs2/index.ts index 6d31cfb32..1bcd07214 100644 --- a/ej2-javascript/code-snippet/spreadsheet/protect-sheet-cs2/index.ts +++ b/ej2-javascript/code-snippet/spreadsheet/protect-sheet-cs2/index.ts @@ -1,21 +1,17 @@ - - import { Spreadsheet, ColumnModel } from '@syncfusion/ej2-spreadsheet'; import { Button } from '@syncfusion/ej2-buttons'; import { Dialog } from '@syncfusion/ej2-popups'; import { budgetData, salaryData } from './datasource.ts'; -let columns: ColumnModel[] = [{ width: 100 }, { width: 100 },{ width: 100}, - { width: 100 }] +let columns: ColumnModel[] = [{ width: 100 }, { width: 100 }, { width: 100 }, +{ width: 100 }]; let spreadsheet: Spreadsheet = new Spreadsheet({ - sheets: [{ name: 'Budget', ranges: [{ dataSource: budgetData }], columns: columns,isProtected: true, protectSettings: {selectCells: true} }, - {name: 'Salary', ranges: [{ dataSource: salaryData }], columns: columns}], + sheets: [{ name: 'Budget', ranges: [{ dataSource: budgetData }], columns: columns, isProtected: true, protectSettings: { selectCells: true } }, + { name: 'Salary', ranges: [{ dataSource: salaryData }], columns: columns }], dataBound: function () { - spreadsheet.cellFormat({ fontWeight: 'bold', textAlign: 'center' }, 'A1:D1'); - spreadsheet.cellFormat({ fontWeight: 'bold'}, 'A11:D11'); - } - } + spreadsheet.cellFormat({ fontWeight: 'bold', textAlign: 'center' }, 'A1:D1'); + spreadsheet.cellFormat({ fontWeight: 'bold' }, 'A11:D11'); } }); spreadsheet.appendTo('#spreadsheet'); @@ -30,12 +26,12 @@ let dialogObj: Dialog = new Dialog({ buttons: [{ click: lockCells, buttonModel: { content: 'Ok', isPrimary: true } - }]; + }] }); dialogObj.appendTo('#dialog'); let button: Button = new Button({content: 'Unlock cells'}); button.appendTo('#button'); -document.getElementById('button').onclick = (): void => { +document.getElementById('button')!.onclick = (): void => { dialogObj.show(); } function lockCells(): void { diff --git a/ej2-javascript/code-snippet/spreadsheet/protect-workbook/default-cs1/index.ts b/ej2-javascript/code-snippet/spreadsheet/protect-workbook/default-cs1/index.ts index 8a3769196..bcf962888 100644 --- a/ej2-javascript/code-snippet/spreadsheet/protect-workbook/default-cs1/index.ts +++ b/ej2-javascript/code-snippet/spreadsheet/protect-workbook/default-cs1/index.ts @@ -1,22 +1,16 @@ - - import { Spreadsheet, ColumnModel } from '@syncfusion/ej2-spreadsheet'; import { budgetData } from './datasource.ts'; -let columns: ColumnModel[] = [{ width: 100 }, { width: 100 },{ width: 100}, - { width: 100 }]; +let columns: ColumnModel[] = [{ width: 100 }, { width: 100 }, { width: 100 }, +{ width: 100 }]; let spreadsheet: Spreadsheet = new Spreadsheet({ // To protect the workbook isProtected: true, sheets: [{ name: 'Budget', ranges: [{ dataSource: budgetData }], columns: columns }], dataBound: function () { - spreadsheet.cellFormat({ fontWeight: 'bold', textAlign: 'center' }, 'A1:D1'); - spreadsheet.cellFormat({ fontWeight: 'bold'}, 'A11:D11'); - } - } + spreadsheet.cellFormat({ fontWeight: 'bold', textAlign: 'center' }, 'A1:D1'); + spreadsheet.cellFormat({ fontWeight: 'bold' }, 'A11:D11'); } }); spreadsheet.appendTo('#spreadsheet'); - - diff --git a/ej2-javascript/code-snippet/spreadsheet/protect-workbook/default-cs2/index.ts b/ej2-javascript/code-snippet/spreadsheet/protect-workbook/default-cs2/index.ts index 42545bfc6..6069f6533 100644 --- a/ej2-javascript/code-snippet/spreadsheet/protect-workbook/default-cs2/index.ts +++ b/ej2-javascript/code-snippet/spreadsheet/protect-workbook/default-cs2/index.ts @@ -1,22 +1,16 @@ - - import { Spreadsheet, ColumnModel } from '@syncfusion/ej2-spreadsheet'; import { budgetData } from './datasource.ts'; -let columns: ColumnModel[] = [{ width: 100 }, { width: 100 },{ width: 100}, - { width: 100 }]; +let columns: ColumnModel[] = [{ width: 100 }, { width: 100 }, { width: 100 }, +{ width: 100 }]; let spreadsheet: Spreadsheet = new Spreadsheet({ //To protect the workbook with password password: "syncfusion", sheets: [{ name: 'Budget', ranges: [{ dataSource: budgetData }], columns: columns }], dataBound: function () { - spreadsheet.cellFormat({ fontWeight: 'bold', textAlign: 'center' }, 'A1:D1'); - spreadsheet.cellFormat({ fontWeight: 'bold'}, 'A11:D11'); - } - } + spreadsheet.cellFormat({ fontWeight: 'bold', textAlign: 'center' }, 'A1:D1'); + spreadsheet.cellFormat({ fontWeight: 'bold' }, 'A11:D11'); } }); spreadsheet.appendTo('#spreadsheet'); - - diff --git a/ej2-javascript/code-snippet/spreadsheet/save-cs1/es5-datasource.js b/ej2-javascript/code-snippet/spreadsheet/save-cs1/es5-datasource.js new file mode 100644 index 000000000..275079222 --- /dev/null +++ b/ej2-javascript/code-snippet/spreadsheet/save-cs1/es5-datasource.js @@ -0,0 +1,154 @@ +/** + * Save data + */ +var data = [ + { + ProductID: 1, + ProductName: 'Chai', + SupplierID: 1, + CategoryID: 1, + QuantityPerUnit: '10 boxes x 20 bags', + UnitPrice: 18, + UnitsInStock: 39, + UnitsOnOrder: 0 + }, + { + ProductID: 2, + ProductName: 'Chang', + SupplierID: 1, + CategoryID: 1, + QuantityPerUnit: '24 - 12 oz bottles', + UnitPrice: 19, + UnitsInStock: 17, + UnitsOnOrder: 40 + }, + { + ProductID: 3, + ProductName: 'Aniseed Syrup', + SupplierID: 1, + CategoryID: 2, + QuantityPerUnit: '12 - 550 ml bottles', + UnitPrice: 10, + UnitsInStock: 13, + UnitsOnOrder: 70 + }, + { + ProductID: 4, + ProductName: 'Chef Antons Cajun Seasoning', + SupplierID: 2, + CategoryID: 2, + QuantityPerUnit: '48 - 6 oz jars', + UnitPrice: 22, + UnitsInStock: 53, + UnitsOnOrder: 0 + }, + { + ProductID: 5, + ProductName: 'Chef Antons Gumbo Mix', + SupplierID: 2, + CategoryID: 2, + QuantityPerUnit: '36 boxes', + UnitPrice: 21.35, + UnitsInStock: 0, + UnitsOnOrder: 0 + }, + { + ProductID: 6, + ProductName: 'Grandmas Boysenberry Spread', + SupplierID: 3, + CategoryID: 2, + QuantityPerUnit: '12 - 8 oz jars', + UnitPrice: 25, + UnitsInStock: 120, + UnitsOnOrder: 0 + }, + { + ProductID: 7, + ProductName: 'Uncle Bobs Organic Dried Pears', + SupplierID: 3, + CategoryID: 7, + QuantityPerUnit: '12 - 1 lb pkgs.', + UnitPrice: 30, + UnitsInStock: 15, + UnitsOnOrder: 0 + }, + { + ProductID: 8, + ProductName: 'Northwoods Cranberry Sauce', + SupplierID: 3, + CategoryID: 2, + QuantityPerUnit: '12 - 12 oz jars', + UnitPrice: 40, + UnitsInStock: 6, + UnitsOnOrder: 0 + }, + { + ProductID: 9, + ProductName: 'Mishi Kobe Niku', + SupplierID: 4, + CategoryID: 6, + QuantityPerUnit: '18 - 500 g pkgs.', + UnitPrice: 97, + UnitsInStock: 29, + UnitsOnOrder: 0 + }, + { + ProductID: 10, + ProductName: 'Ikura', + SupplierID: 4, + CategoryID: 8, + QuantityPerUnit: '12 - 200 ml jars', + UnitPrice: 31, + UnitsInStock: 31, + UnitsOnOrder: 0 + }, + { + ProductID: 11, + ProductName: 'Queso Cabrales', + SupplierID: 5, + CategoryID: 4, + QuantityPerUnit: '1 kg pkg.', + UnitPrice: 21, + UnitsInStock: 22, + UnitsOnOrder: 30 + }, + { + ProductID: 12, + ProductName: 'Queso Manchego La Pastora', + SupplierID: 5, + CategoryID: 4, + QuantityPerUnit: '10 - 500 g pkgs.', + UnitPrice: 38, + UnitsInStock: 86, + UnitsOnOrder: 0 + }, + { + ProductID: 13, + ProductName: 'Konbu', + SupplierID: 6, + CategoryID: 8, + QuantityPerUnit: '2 kg box', + UnitPrice: 6, + UnitsInStock: 24, + UnitsOnOrder: 0 + }, + { + ProductID: 14, + ProductName: 'Tofu', + SupplierID: 6, + CategoryID: 7, + QuantityPerUnit: '40 - 100 g pkgs.', + UnitPrice: 23.25, + UnitsInStock: 35, + UnitsOnOrder: 0 + }, + { + ProductID: 15, + ProductName: 'Genen Shouyu', + SupplierID: 6, + CategoryID: 2, + QuantityPerUnit: '24 - 250 ml bottles', + UnitPrice: 15.5, + UnitsInStock: 39, + UnitsOnOrder: 0 + }]; diff --git a/ej2-javascript/code-snippet/spreadsheet/save-cs1/index.js b/ej2-javascript/code-snippet/spreadsheet/save-cs1/index.js new file mode 100644 index 000000000..d7c530996 --- /dev/null +++ b/ej2-javascript/code-snippet/spreadsheet/save-cs1/index.js @@ -0,0 +1,49 @@ + +//Initialize action items. +var items = [ + { + text: "Save As xlsx" + }, + { + text: "Save As xls" + }, + { + text: "Save As csv" + }, + { + text: "Save As pdf" + } +]; + +// Initialize the DropDownButton component. +var drpDownBtn = new ej.splitbuttons.DropDownButton({ + items: items, + cssClass: "e-round-corner", + select: (args) => { + if (args.item.text === 'Save As xlsx') + spreadsheet.save({url: 'https://services.syncfusion.com/js/production/api/spreadsheet/save', fileName: "Sample", saveType: "Xlsx"}); + if (args.item.text === 'Save As xls') + spreadsheet.save({url: 'https://services.syncfusion.com/js/production/api/spreadsheet/save', fileName: "Sample", saveType: "Xls"}); + if (args.item.text === 'Save As csv') + spreadsheet.save({url: 'https://services.syncfusion.com/js/production/api/spreadsheet/save',fileName: "Sample", saveType: "Csv"}); + if (args.item.text === 'Save As pdf') + spreadsheet.save({url: 'https://services.syncfusion.com/js/production/api/spreadsheet/save',fileName: "Sample", saveType: "Pdf"}); + } +}); + +// Render initialized DropDownButton. +drpDownBtn.appendTo("#element"); + + +var columns = [{ width: 100 }, { width: 130 },{ width: 96}, + { width: 130 }, { width: 130 },{ width: 96}, + { width: 100 }, { width: 100 },{ width: 110}, { width: 100 }, { width: 130 },{ width: 150}] + +var spreadsheet = new ej.spreadsheet.Spreadsheet({ + sheets: [{ ranges: [{ dataSource: data }], columns: columns }], + allowSave: true +}); + +//Render the initialized Spreadsheet. +spreadsheet.appendTo('#spreadsheet'); + diff --git a/ej2-javascript/code-snippet/spreadsheet/scrolling-cs1/index.js b/ej2-javascript/code-snippet/spreadsheet/scrolling-cs1/index.js index e0be7a5b5..8e530f185 100644 --- a/ej2-javascript/code-snippet/spreadsheet/scrolling-cs1/index.js +++ b/ej2-javascript/code-snippet/spreadsheet/scrolling-cs1/index.js @@ -1,25 +1,32 @@ -// Initialize the Spreadsheet component. - var columns = [ { - width: 130 + width: 100 + }, + { + width: 92 + }, + { + width: 96 + }, + { + width: 110 }, { width: 92 }, + { + width: 96 + }, { width: 96 } ]; var spreadsheet = new ej.spreadsheet.Spreadsheet({ - sheets: [{ ranges: [{ dataSource: defaultData }], columns: columns }], + sheets: [{ name: 'Price Details', ranges: [{ dataSource: defaultData }], columns: columns, rowCount: 9, colCount: 7 }], allowScrolling: true, - scrollSettings: { isFinite: true, enableVirtualization: false } + scrollSettings: { isFinite: true } }); - - // Render initialized Spreadsheet. spreadsheet.appendTo('#spreadsheet'); - diff --git a/ej2-javascript/code-snippet/spreadsheet/selection-cs1/index.js b/ej2-javascript/code-snippet/spreadsheet/selection-cs1/index.js index e9ef12954..5cdaa7ba5 100644 --- a/ej2-javascript/code-snippet/spreadsheet/selection-cs1/index.js +++ b/ej2-javascript/code-snippet/spreadsheet/selection-cs1/index.js @@ -16,12 +16,10 @@ var spreadsheet = new ej.spreadsheet.Spreadsheet({ sheets: [{ name: 'Budget', ranges: [{ dataSource: budgetData }], columns: columns }], selectionSettings: { mode: 'Multiple' }, created: () => { - spreadsheet.selectRange('B2:E6'); + var colCount = spreadsheet.getActiveSheet().colCount; + spreadsheet.selectRange(ej.spreadsheet.getRangeAddress([4, 0, 4, colCount])); } }); - - // Render initialized Spreadsheet. spreadsheet.appendTo('#spreadsheet'); - diff --git a/ej2-javascript/code-snippet/spreadsheet/selection-cs3/index.js b/ej2-javascript/code-snippet/spreadsheet/selection-cs3/index.js index e9ef12954..db0f085e4 100644 --- a/ej2-javascript/code-snippet/spreadsheet/selection-cs3/index.js +++ b/ej2-javascript/code-snippet/spreadsheet/selection-cs3/index.js @@ -14,14 +14,8 @@ var columns = [ var spreadsheet = new ej.spreadsheet.Spreadsheet({ sheets: [{ name: 'Budget', ranges: [{ dataSource: budgetData }], columns: columns }], - selectionSettings: { mode: 'Multiple' }, - created: () => { - spreadsheet.selectRange('B2:E6'); - } + selectionSettings: { mode: 'None' } }); - - // Render initialized Spreadsheet. spreadsheet.appendTo('#spreadsheet'); - diff --git a/ej2-javascript/code-snippet/spreadsheet/spreadsheet/getting-started-cs1/index.ts b/ej2-javascript/code-snippet/spreadsheet/spreadsheet/getting-started-cs1/index.ts index 1f0858fd6..8bdfd9e07 100644 --- a/ej2-javascript/code-snippet/spreadsheet/spreadsheet/getting-started-cs1/index.ts +++ b/ej2-javascript/code-snippet/spreadsheet/spreadsheet/getting-started-cs1/index.ts @@ -2,7 +2,7 @@ import { Spreadsheet } from '@syncfusion/ej2-spreadsheet'; -// Initialize the Spreadsheet control +// Initialize the Spreadsheet component let spreadsheet: Spreadsheet = new Spreadsheet(); // Render initialized Spreadsheet diff --git a/ej2-javascript/code-snippet/spreadsheet/undo-redo-cs1/index.js b/ej2-javascript/code-snippet/spreadsheet/undo-redo-cs1/index.js index 4b1a9edb3..6c1f6e074 100644 --- a/ej2-javascript/code-snippet/spreadsheet/undo-redo-cs1/index.js +++ b/ej2-javascript/code-snippet/spreadsheet/undo-redo-cs1/index.js @@ -1,17 +1,18 @@ // Initialize the Spreadsheet component. var sheet = [{ - ranges: [{ dataSource: defaultData }], - columns: [{ width: 130 }, { width: 92 },{ width: 96}] - }] + ranges: [{ dataSource: defaultData }], + columns: [{ width: 130 }, { width: 92 }, { width: 96 }] +}]; + var spreadsheet = new ej.spreadsheet.Spreadsheet({ sheets: sheet, allowUndoRedo: true, - actionComplete: function(args) { + actionComplete: function (args) { var actionEvents = args; if (actionEvents.eventArgs.action == "customCSS") { - var Element = spreadsheet.getCell(actionEvents.eventArgs.rowIdx,actionEvents.eventArgs.colIdx); - if (actionEvents.eventArgs.requestType == "undo") { + var Element = spreadsheet.getCell(actionEvents.eventArgs.rowIdx, actionEvents.eventArgs.colIdx); + if (actionEvents.isUndoRedo && actionEvents.isUndo) { Element.classList.remove('customClass'); // To remove the custom class in undo action } else { @@ -19,7 +20,7 @@ var spreadsheet = new ej.spreadsheet.Spreadsheet({ } } } - }); +}); // Render initialized Spreadsheet. spreadsheet.appendTo('#spreadsheet'); @@ -29,7 +30,7 @@ document.getElementById("customBtn").addEventListener('click', updateCollection) function updateCollection() { var cell = spreadsheet.getActiveSheet().activeCell; var cellIdx = ej.spreadsheet.getRangeIndexes(cell); - var Element= spreadsheet.getCell(cellIdx[0], cellIdx[1]); + var Element = spreadsheet.getCell(cellIdx[0], cellIdx[1]); if (!Element.classList.contains("customClass")) { Element.classList.add('customClass'); // To add the custom class in active cell element spreadsheet.updateUndoRedoCollection({ eventArgs: { class: 'customClass', rowIdx: cellIdx[0], colIdx: cellIdx[1], action: 'customCSS' } }); // To update the undo redo collection diff --git a/ej2-javascript/code-snippet/spreadsheet/undo-redo-cs1/index.ts b/ej2-javascript/code-snippet/spreadsheet/undo-redo-cs1/index.ts index 102db4d03..6d9ad78f9 100644 --- a/ej2-javascript/code-snippet/spreadsheet/undo-redo-cs1/index.ts +++ b/ej2-javascript/code-snippet/spreadsheet/undo-redo-cs1/index.ts @@ -1,6 +1,3 @@ - - - import { Spreadsheet, getRangeIndexes, ColumnModel } from '@syncfusion/ej2-spreadsheet'; import { defaultData } from './datasource.ts'; import { enableRipple, addClass, removeClass } from '@syncfusion/ej2-base'; @@ -22,12 +19,12 @@ let spreadsheet: Spreadsheet = new Spreadsheet({ actionComplete: (args): void => { let actionEvents: any = args; if (actionEvents.eventArgs.action == "customCSS") { - let Element:HTMLElement = spreadsheet.getCell(actionEvents.eventArgs.rowIdx,actionEvents.eventArgs.colIdx); - if (actionEvents.eventArgs.requestType == "undo") { - removeClass([Element],'customClass'); // To remove the custom class in undo action + let Element: HTMLElement = spreadsheet.getCell(actionEvents.eventArgs.rowIdx, actionEvents.eventArgs.colIdx); + if (actionEvents.isUndoRedo && actionEvents.isUndo) { + removeClass([Element], 'customClass'); // To remove the custom class in undo action } else { - addClass([Element],'customClass');// To add the custom class in redo action + addClass([Element], 'customClass');// To add the custom class in redo action } } } @@ -35,7 +32,8 @@ let spreadsheet: Spreadsheet = new Spreadsheet({ //Render the initialized Spreadsheet spreadsheet.appendTo('#spreadsheet'); -document.getElementById("customBtn").addEventListener('click', updateCollection); + +document.getElementById("customBtn")!.addEventListener('click', updateCollection); function updateCollection() { let cell: string = spreadsheet.getActiveSheet().activeCell; @@ -46,5 +44,3 @@ function updateCollection() { spreadsheet.updateUndoRedoCollection({ eventArgs: { class: 'customClass', rowIdx: cellIdx[0], colIdx: cellIdx[1], action: 'customCSS' } }); // To update the undo redo collection } } - - diff --git a/ej2-javascript/code-snippet/switch/before-change-cs1/index.js b/ej2-javascript/code-snippet/switch/before-change-cs1/index.js new file mode 100644 index 000000000..4ca22b102 --- /dev/null +++ b/ej2-javascript/code-snippet/switch/before-change-cs1/index.js @@ -0,0 +1,12 @@ +ej.base.enableRipple(true); + +// Initialize Switch component. +var switchObj = new ej.buttons.Switch({ checked: true, beforeChange: beforeChange }); + +// Render initialized Switch. +switchObj.appendTo('#element'); + +function beforeChange(args) { + // Set cancel to true to prevent the switch state change + args.cancel = true; +} \ No newline at end of file diff --git a/ej2-javascript/code-snippet/switch/before-change-cs1/index.ts b/ej2-javascript/code-snippet/switch/before-change-cs1/index.ts new file mode 100644 index 000000000..4015660c0 --- /dev/null +++ b/ej2-javascript/code-snippet/switch/before-change-cs1/index.ts @@ -0,0 +1,17 @@ + + +import { Switch, BeforeChangeEventArgs } from '@syncfusion/ej2-buttons'; +import { enableRipple } from '@syncfusion/ej2-base'; + +enableRipple(true); + +// Initialize Switch component. +let switchObj: Switch = new Switch({ checked: true, beforeChange: beforeChange }); + +// Render initialized Switch. +switchObj.appendTo('#element'); + +function beforeChange(args: BeforeChangeEventArgs) { + // Set cancel to true to prevent the switch state change + args.cancel = true; +} \ No newline at end of file diff --git a/ej2-javascript/code-snippet/switch/before-change-cs1/js/index.html b/ej2-javascript/code-snippet/switch/before-change-cs1/js/index.html new file mode 100644 index 000000000..48930bd59 --- /dev/null +++ b/ej2-javascript/code-snippet/switch/before-change-cs1/js/index.html @@ -0,0 +1,30 @@ + + + + + EJ2 Switch + + + + + + + + + + + +
    + +
    + + + + + + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/switch/before-change-cs1/styles.css b/ej2-javascript/code-snippet/switch/before-change-cs1/styles.css new file mode 100644 index 000000000..a13da89c4 --- /dev/null +++ b/ej2-javascript/code-snippet/switch/before-change-cs1/styles.css @@ -0,0 +1,17 @@ +#container { + visibility: hidden; + margin-left: 10px; +} + +#loader { + color: #008cff; + height: 40px; + width: 30%; + position: absolute; + top: 45%; + left: 45%; +} + +.e-switch-wrapper { + margin-top: 18px; +} \ No newline at end of file diff --git a/ej2-javascript/code-snippet/switch/before-change-cs1/systemjs.config.js b/ej2-javascript/code-snippet/switch/before-change-cs1/systemjs.config.js new file mode 100644 index 000000000..351fb4a0b --- /dev/null +++ b/ej2-javascript/code-snippet/switch/before-change-cs1/systemjs.config.js @@ -0,0 +1,26 @@ +System.config({ + transpiler: "typescript", + typescriptOptions: { + compilerOptions: { + target: "umd", + module: "commonjs", + moduleResolution: "node", + emitDecoratorMetadata: true, + experimentalDecorators: true + } + }, + paths: { + "syncfusion:": "https://cdn.syncfusion.com/ej2/20.3.56/" + }, + map: { + main: "index.ts", + typescript: "https://unpkg.com/typescript@2.2.2/lib/typescript.js", + "@syncfusion/ej2-base": "syncfusion:ej2-base/dist/ej2-base.umd.min.js", + "@syncfusion/ej2-buttons": "syncfusion:ej2-buttons/dist/ej2-buttons.umd.min.js", + } +}); + +System.import('index.ts').catch(console.error.bind(console)).then(function () { + document.getElementById('loader').style.display = "none"; + document.getElementById('container').style.visibility = "visible"; +}); \ No newline at end of file diff --git a/ej2-javascript/code-snippet/switch/before-change-cs1/ts/index.html b/ej2-javascript/code-snippet/switch/before-change-cs1/ts/index.html new file mode 100644 index 000000000..34a8b6a84 --- /dev/null +++ b/ej2-javascript/code-snippet/switch/before-change-cs1/ts/index.html @@ -0,0 +1,24 @@ + + + + + EJ2 Switch + + + + + + + + + + + + +
    LOADING....
    +
    + +
    + + + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/tab/active-tab-style-cs1/index.css b/ej2-javascript/code-snippet/tab/active-tab-style-cs1/index.css index 91c4fee07..817f6f7a0 100644 --- a/ej2-javascript/code-snippet/tab/active-tab-style-cs1/index.css +++ b/ej2-javascript/code-snippet/tab/active-tab-style-cs1/index.css @@ -9,90 +9,4 @@ position: absolute; top: 45%; width: 30%; -} - -.e-content .e-item { - font-size: 12px; - margin: 10px; - text-align: justify; -} -.container { - min-width: 350px; - max-width: 500px; - margin: 0 auto; -} - -.e-image { - background-size: 33px; - width: 33px; - height: 30px; - margin: 0 auto; -} - -.e-tab-text .e-andrew { - background-image: url(https://ej2.syncfusion.com/javascript/demos/src/tab/images/8.png); -} - -.e-tab-text .e-margaret { - background-image: url(https://ej2.syncfusion.com/javascript/demos/src/tab/images/1.png); -} - -.e-tab-text .e-janet { - background-image: url(https://ej2.syncfusion.com/javascript/demos/src/tab/images/2.png); -} - -.e-tab .e-toolbar-item .e-title { - display: none; -} - -.e-toolbar .e-toolbar-items .e-toolbar-item:not(.e-separator), -.e-toolbar .e-toolbar-items .e-toolbar-item .e-tab-wrap { - width: 105px; - height: 50px; -} - -.e-tab .e-tab-header .e-toolbar-items .e-active .e-tab-wrap { - background-color: #08c; -} -.e-tab .e-tab-header { - background-color: #e6e6e6; -} -.e-tab .e-tab-header .e-toolbar-item:not(.e-active) .e-tab-wrap:hover { - background-color: #f2f2f2; - color:#000; -} -.e-tab .e-toolbar .e-toolbar-items .e-toolbar-item .e-text-wrap { - height: 50px; -} - -.e-tab .e-toolbar-items .e-active .e-image { - display: none; -} - -.e-tab .e-toolbar-items .e-active .e-title { - display: block; - color: white; -} - -.e-tab .e-toolbar-item .e-text-wrap, -.e-tab .e-toolbar-item .e-tab-text { - width: inherit; - text-align: center; -} - -.fade-in { - opacity: 1; - animation-name: fadeInOpacity; - animation-iteration-count: 1; - animation-timing-function: ease-in; - animation-duration: 0.5s; -} - -@keyframes fadeInOpacity { - 0% { - opacity: 0; - } - 100% { - opacity: 1; - } } \ No newline at end of file diff --git a/ej2-javascript/code-snippet/tab/active-tab-style-cs1/js/index.html b/ej2-javascript/code-snippet/tab/active-tab-style-cs1/js/index.html index 9d756a1b6..637b7fda5 100644 --- a/ej2-javascript/code-snippet/tab/active-tab-style-cs1/js/index.html +++ b/ej2-javascript/code-snippet/tab/active-tab-style-cs1/js/index.html @@ -6,9 +6,99 @@ - - - + + diff --git a/ej2-javascript/code-snippet/tab/active-tab-style-cs1/ts/index.html b/ej2-javascript/code-snippet/tab/active-tab-style-cs1/ts/index.html index e67bcc294..fd3d1b8e3 100644 --- a/ej2-javascript/code-snippet/tab/active-tab-style-cs1/ts/index.html +++ b/ej2-javascript/code-snippet/tab/active-tab-style-cs1/ts/index.html @@ -11,6 +11,98 @@ + diff --git a/ej2-javascript/code-snippet/tab/adaptive-extended/app.ts b/ej2-javascript/code-snippet/tab/adaptive-extended/app.ts new file mode 100644 index 000000000..e69de29bb diff --git a/ej2-javascript/code-snippet/tab/adaptive-extended/index.css b/ej2-javascript/code-snippet/tab/adaptive-extended/index.css new file mode 100644 index 000000000..63e980fe7 --- /dev/null +++ b/ej2-javascript/code-snippet/tab/adaptive-extended/index.css @@ -0,0 +1,13 @@ +#container { + visibility: hidden; + max-width: 650px; +} + +#loader { + color: #008cff; + height: 40px; + left: 45%; + position: absolute; + top: 45%; + width: 30%; +} \ No newline at end of file diff --git a/ej2-javascript/code-snippet/tab/adaptive-extended/index.js b/ej2-javascript/code-snippet/tab/adaptive-extended/index.js new file mode 100644 index 000000000..a1fb2d75f --- /dev/null +++ b/ej2-javascript/code-snippet/tab/adaptive-extended/index.js @@ -0,0 +1,71 @@ +ej.base.enableRipple(true); + +//Initialize Tab component + +var tabObj = new ej.navigations.Tab({ + heightAdjustMode: 'Auto', + overflowMode: 'Extended', + items: [ + { + header: { 'text': 'HTML' }, + content: 'HyperText Markup Language, commonly referred to as HTML, is the standard markup language used to create web ' + + 'pages. Along with CSS, and JavaScript, HTML is a cornerstone technology, used by most websites to create visually ' + + 'engaging web pages, user interfaces for web applications, and user interfaces for many mobile applications.[1] Web ' + + 'browsers can read HTML files and render them into visible or audible web pages. HTML describes the structure of a ' + + 'website semantically along with cues for presentation, making it a markup language, rather than a programming language.' + }, + { + header: { 'text': 'C Sharp(C#)' }, + content: 'C# is intended to be a simple, modern, general-purpose, object-oriented programming language. Its development ' + + 'team is led by Anders Hejlsberg. The most recent version is C# 5.0, which was released on August 15, 2012.' + }, + { + header: { 'text': 'Java' }, + content: 'Java is a set of computer software and specifications developed by Sun Microsystems, later acquired by Oracle ' + + 'Corporation, that provides a system for developing application software and deploying it in a cross-platform computing ' + + 'environment. Java is used in a wide variety of computing platforms from embedded devices and mobile phones to ' + + 'enterprise servers and supercomputers. While less common, Java applets run in secure, sandboxed environments to ' + + 'provide many features of native applications and can be embedded in HTML pages.' + }, + { + header: { 'text': 'VB.Net' }, + content: 'The command-line compiler, VBC.EXE, is installed as part of the freeware .NET Framework SDK. Mono also ' + + 'includes a command-line VB.NET compiler. The most recent version is VB 2012, which was released on August 15, 2012.' + }, + { + header: { 'text': 'Xamarin' }, + content: 'Xamarin is a San Francisco, California based software company created in May 2011[3] by the engineers that ' + + 'created Mono,[4] Mono for Android and MonoTouch that are cross-platform implementations of the Common Language ' + + 'Infrastructure (CLI) and Common Language Specifications (often called Microsoft .NET). With a C#-shared codebase, ' + + 'developers can use Xamarin tools to write native Android, iOS, and Windows apps with native user interfaces and share ' + + 'code across multiple platforms.[5] Xamarin has over 1 million developers in more than 120 countries around the World ' + + 'as of May 2015.' + }, + { + header: { 'text': 'ASP.NET' }, + content: 'ASP.NET is an open-source server-side web application framework designed for web development to produce ' + + 'dynamic web pages. It was developed by Microsoft to allow programmers to build dynamic web sites, web applications ' + + 'and web services. It was first released in January 2002 with version 1.0 of the .NET Framework, and is the successor ' + + 'to Microsoft\'\s Active Server Pages (ASP) technology. ASP.NET is built on the Common Language Runtime (CLR), allowing ' + + 'programmers to write ASP.NET code using any supported .NET language. The ASP.NET SOAP extension framework allows ' + + 'ASP.NET components to process SOAP messages.' + }, + { + header: { 'text': 'ASP.NET MVC' }, + content: 'The ASP.NET MVC is a web application framework developed by Microsoft, which implements the ' + + 'model–view–controller (MVC) pattern. It is open-source software, apart from the ASP.NET Web Forms component which is ' + + 'proprietary. In the later versions of ASP.NET, ASP.NET MVC, ASP.NET Web API, and ASP.NET Web Pages (a platform using ' + + 'only Razor pages) will merge into a unified MVC 6.The project is called ASP.NET vNext.' + }, + { + header: { 'text': 'JavaScript' }, + content: 'JavaScript (JS) is an interpreted computer programming language. It was originally implemented as part of ' + + 'web browsers so that client-side scripts could interact with the user, control the browser, communicate ' + + 'asynchronously, and alter the document content that was displayed.[5] More recently, however, it has become common in ' + + 'both game development and the creation of desktop applications.' + } + ] +}); + +//Render initialized Tab component +tabObj.appendTo('#element'); \ No newline at end of file diff --git a/ej2-javascript/code-snippet/tab/adaptive-extended/index.ts b/ej2-javascript/code-snippet/tab/adaptive-extended/index.ts new file mode 100644 index 000000000..2ca83a67d --- /dev/null +++ b/ej2-javascript/code-snippet/tab/adaptive-extended/index.ts @@ -0,0 +1,67 @@ +import { Tab } from '@syncfusion/ej2-navigations'; + +let tabObj: Tab = new Tab({ + heightAdjustMode: 'Auto', + overflowMode: 'Extended', + items: [ + { + header: { 'text': 'HTML' }, + content: 'HyperText Markup Language, commonly referred to as HTML, is the standard markup language used to create web ' + + 'pages. Along with CSS, and JavaScript, HTML is a cornerstone technology, used by most websites to create visually ' + + 'engaging web pages, user interfaces for web applications, and user interfaces for many mobile applications.[1] Web ' + + 'browsers can read HTML files and render them into visible or audible web pages. HTML describes the structure of a ' + + 'website semantically along with cues for presentation, making it a markup language, rather than a programming language.' + }, + { + header: { 'text': 'C Sharp(C#)' }, + content: 'C# is intended to be a simple, modern, general-purpose, object-oriented programming language. Its development ' + + 'team is led by Anders Hejlsberg. The most recent version is C# 5.0, which was released on August 15, 2012.' + }, + { + header: { 'text': 'Java' }, + content: 'Java is a set of computer software and specifications developed by Sun Microsystems, later acquired by Oracle ' + + 'Corporation, that provides a system for developing application software and deploying it in a cross-platform computing ' + + 'environment. Java is used in a wide variety of computing platforms from embedded devices and mobile phones to ' + + 'enterprise servers and supercomputers. While less common, Java applets run in secure, sandboxed environments to ' + + 'provide many features of native applications and can be embedded in HTML pages.' + }, + { + header: { 'text': 'VB.Net' }, + content: 'The command-line compiler, VBC.EXE, is installed as part of the freeware .NET Framework SDK. Mono also ' + + 'includes a command-line VB.NET compiler. The most recent version is VB 2012, which was released on August 15, 2012.' + }, + { + header: { 'text': 'Xamarin' }, + content: 'Xamarin is a San Francisco, California based software company created in May 2011[3] by the engineers that ' + + 'created Mono,[4] Mono for Android and MonoTouch that are cross-platform implementations of the Common Language ' + + 'Infrastructure (CLI) and Common Language Specifications (often called Microsoft .NET). With a C#-shared codebase, ' + + 'developers can use Xamarin tools to write native Android, iOS, and Windows apps with native user interfaces and share ' + + 'code across multiple platforms.[5] Xamarin has over 1 million developers in more than 120 countries around the World ' + + 'as of May 2015.' + }, + { + header: { 'text': 'ASP.NET' }, + content: 'ASP.NET is an open-source server-side web application framework designed for web development to produce ' + + 'dynamic web pages. It was developed by Microsoft to allow programmers to build dynamic web sites, web applications ' + + 'and web services. It was first released in January 2002 with version 1.0 of the .NET Framework, and is the successor ' + + 'to Microsoft\'\s Active Server Pages (ASP) technology. ASP.NET is built on the Common Language Runtime (CLR), allowing ' + + 'programmers to write ASP.NET code using any supported .NET language. The ASP.NET SOAP extension framework allows ' + + 'ASP.NET components to process SOAP messages.' + }, + { + header: { 'text': 'ASP.NET MVC' }, + content: 'The ASP.NET MVC is a web application framework developed by Microsoft, which implements the ' + + 'model–view–controller (MVC) pattern. It is open-source software, apart from the ASP.NET Web Forms component which is ' + + 'proprietary. In the later versions of ASP.NET, ASP.NET MVC, ASP.NET Web API, and ASP.NET Web Pages (a platform using ' + + 'only Razor pages) will merge into a unified MVC 6.The project is called ASP.NET vNext.' + }, + { + header: { 'text': 'JavaScript' }, + content: 'JavaScript (JS) is an interpreted computer programming language. It was originally implemented as part of ' + + 'web browsers so that client-side scripts could interact with the user, control the browser, communicate ' + + 'asynchronously, and alter the document content that was displayed.[5] More recently, however, it has become common in ' + + 'both game development and the creation of desktop applications.' + } + ] +}); +tabObj.appendTo('#element'); \ No newline at end of file diff --git a/ej2-javascript/code-snippet/tab/adaptive-extended/js/index.html b/ej2-javascript/code-snippet/tab/adaptive-extended/js/index.html new file mode 100644 index 000000000..c6fca555d --- /dev/null +++ b/ej2-javascript/code-snippet/tab/adaptive-extended/js/index.html @@ -0,0 +1,34 @@ + + + + Essential JS 2 Tab + + + + + + + + + + + +
    +
    +
    + + + + + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/tab/adaptive-extended/systemjs.config.js b/ej2-javascript/code-snippet/tab/adaptive-extended/systemjs.config.js new file mode 100644 index 000000000..7b228eeea --- /dev/null +++ b/ej2-javascript/code-snippet/tab/adaptive-extended/systemjs.config.js @@ -0,0 +1,32 @@ +System.config({ + transpiler: "typescript", + typescriptOptions: { + compilerOptions: { + target: "umd", + module: "commonjs", + moduleResolution: "node", + emitDecoratorMetadata: true, + experimentalDecorators: true + } + }, + paths: { + "syncfusion:": "https://cdn.syncfusion.com/ej2/20.3.56/" + }, + map: { + main: "index.ts", + typescript: "https://unpkg.com/typescript@2.2.2/lib/typescript.js", + "@syncfusion/ej2-base": "syncfusion:ej2-base/dist/ej2-base.umd.min.js", + "@syncfusion/ej2-buttons": "syncfusion:ej2-buttons/dist/ej2-buttons.umd.min.js", + "@syncfusion/ej2-popups": "syncfusion:ej2-popups/dist/ej2-popups.umd.min.js", + "@syncfusion/ej2-navigations": "syncfusion:ej2-navigations/dist/ej2-navigations.umd.min.js", + "@syncfusion/ej2-lists": "syncfusion:ej2-lists/dist/ej2-lists.umd.min.js", + "@syncfusion/ej2-inputs": "syncfusion:ej2-inputs/dist/ej2-inputs.umd.min.js", + "@syncfusion/ej2-data": "syncfusion:ej2-data/dist/ej2-data.umd.min.js", + "@syncfusion/ej2-splitbuttons": "syncfusion:ej2-splitbuttons/dist/ej2-splitbuttons.umd.min.js" + } +}); + +System.import('index.ts').catch(console.error.bind(console)).then(function () { + document.getElementById('loader').style.display = "none"; + document.getElementById('container').style.visibility = "visible"; +}); \ No newline at end of file diff --git a/ej2-javascript/code-snippet/tab/adaptive-extended/ts/index.html b/ej2-javascript/code-snippet/tab/adaptive-extended/ts/index.html new file mode 100644 index 000000000..efd00de1e --- /dev/null +++ b/ej2-javascript/code-snippet/tab/adaptive-extended/ts/index.html @@ -0,0 +1,30 @@ + + + + + Essential JS 2 Tab + + + + + + + + + + + + +
    LOADING....
    +
    +
    +
    + + + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/tab/adaptive-multirow/app.ts b/ej2-javascript/code-snippet/tab/adaptive-multirow/app.ts new file mode 100644 index 000000000..e69de29bb diff --git a/ej2-javascript/code-snippet/tab/adaptive-multirow/index.css b/ej2-javascript/code-snippet/tab/adaptive-multirow/index.css new file mode 100644 index 000000000..63e980fe7 --- /dev/null +++ b/ej2-javascript/code-snippet/tab/adaptive-multirow/index.css @@ -0,0 +1,13 @@ +#container { + visibility: hidden; + max-width: 650px; +} + +#loader { + color: #008cff; + height: 40px; + left: 45%; + position: absolute; + top: 45%; + width: 30%; +} \ No newline at end of file diff --git a/ej2-javascript/code-snippet/tab/adaptive-multirow/index.js b/ej2-javascript/code-snippet/tab/adaptive-multirow/index.js new file mode 100644 index 000000000..86dc8ae28 --- /dev/null +++ b/ej2-javascript/code-snippet/tab/adaptive-multirow/index.js @@ -0,0 +1,71 @@ +ej.base.enableRipple(true); + +//Initialize Tab component + +var tabObj = new ej.navigations.Tab({ + heightAdjustMode: 'Auto', + overflowMode: 'MultiRow', + items: [ + { + header: { 'text': 'HTML' }, + content: 'HyperText Markup Language, commonly referred to as HTML, is the standard markup language used to create web ' + + 'pages. Along with CSS, and JavaScript, HTML is a cornerstone technology, used by most websites to create visually ' + + 'engaging web pages, user interfaces for web applications, and user interfaces for many mobile applications.[1] Web ' + + 'browsers can read HTML files and render them into visible or audible web pages. HTML describes the structure of a ' + + 'website semantically along with cues for presentation, making it a markup language, rather than a programming language.' + }, + { + header: { 'text': 'C Sharp(C#)' }, + content: 'C# is intended to be a simple, modern, general-purpose, object-oriented programming language. Its development ' + + 'team is led by Anders Hejlsberg. The most recent version is C# 5.0, which was released on August 15, 2012.' + }, + { + header: { 'text': 'Java' }, + content: 'Java is a set of computer software and specifications developed by Sun Microsystems, later acquired by Oracle ' + + 'Corporation, that provides a system for developing application software and deploying it in a cross-platform computing ' + + 'environment. Java is used in a wide variety of computing platforms from embedded devices and mobile phones to ' + + 'enterprise servers and supercomputers. While less common, Java applets run in secure, sandboxed environments to ' + + 'provide many features of native applications and can be embedded in HTML pages.' + }, + { + header: { 'text': 'VB.Net' }, + content: 'The command-line compiler, VBC.EXE, is installed as part of the freeware .NET Framework SDK. Mono also ' + + 'includes a command-line VB.NET compiler. The most recent version is VB 2012, which was released on August 15, 2012.' + }, + { + header: { 'text': 'Xamarin' }, + content: 'Xamarin is a San Francisco, California based software company created in May 2011[3] by the engineers that ' + + 'created Mono,[4] Mono for Android and MonoTouch that are cross-platform implementations of the Common Language ' + + 'Infrastructure (CLI) and Common Language Specifications (often called Microsoft .NET). With a C#-shared codebase, ' + + 'developers can use Xamarin tools to write native Android, iOS, and Windows apps with native user interfaces and share ' + + 'code across multiple platforms.[5] Xamarin has over 1 million developers in more than 120 countries around the World ' + + 'as of May 2015.' + }, + { + header: { 'text': 'ASP.NET' }, + content: 'ASP.NET is an open-source server-side web application framework designed for web development to produce ' + + 'dynamic web pages. It was developed by Microsoft to allow programmers to build dynamic web sites, web applications ' + + 'and web services. It was first released in January 2002 with version 1.0 of the .NET Framework, and is the successor ' + + 'to Microsoft\'\s Active Server Pages (ASP) technology. ASP.NET is built on the Common Language Runtime (CLR), allowing ' + + 'programmers to write ASP.NET code using any supported .NET language. The ASP.NET SOAP extension framework allows ' + + 'ASP.NET components to process SOAP messages.' + }, + { + header: { 'text': 'ASP.NET MVC' }, + content: 'The ASP.NET MVC is a web application framework developed by Microsoft, which implements the ' + + 'model–view–controller (MVC) pattern. It is open-source software, apart from the ASP.NET Web Forms component which is ' + + 'proprietary. In the later versions of ASP.NET, ASP.NET MVC, ASP.NET Web API, and ASP.NET Web Pages (a platform using ' + + 'only Razor pages) will merge into a unified MVC 6.The project is called ASP.NET vNext.' + }, + { + header: { 'text': 'JavaScript' }, + content: 'JavaScript (JS) is an interpreted computer programming language. It was originally implemented as part of ' + + 'web browsers so that client-side scripts could interact with the user, control the browser, communicate ' + + 'asynchronously, and alter the document content that was displayed.[5] More recently, however, it has become common in ' + + 'both game development and the creation of desktop applications.' + } + ] +}); + +//Render initialized Tab component +tabObj.appendTo('#element'); \ No newline at end of file diff --git a/ej2-javascript/code-snippet/tab/adaptive-multirow/index.ts b/ej2-javascript/code-snippet/tab/adaptive-multirow/index.ts new file mode 100644 index 000000000..90b43fc56 --- /dev/null +++ b/ej2-javascript/code-snippet/tab/adaptive-multirow/index.ts @@ -0,0 +1,67 @@ +import { Tab } from '@syncfusion/ej2-navigations'; + +let tabObj: Tab = new Tab({ + heightAdjustMode: 'Auto', + overflowMode: 'MultiRow', + items: [ + { + header: { 'text': 'HTML' }, + content: 'HyperText Markup Language, commonly referred to as HTML, is the standard markup language used to create web ' + + 'pages. Along with CSS, and JavaScript, HTML is a cornerstone technology, used by most websites to create visually ' + + 'engaging web pages, user interfaces for web applications, and user interfaces for many mobile applications.[1] Web ' + + 'browsers can read HTML files and render them into visible or audible web pages. HTML describes the structure of a ' + + 'website semantically along with cues for presentation, making it a markup language, rather than a programming language.' + }, + { + header: { 'text': 'C Sharp(C#)' }, + content: 'C# is intended to be a simple, modern, general-purpose, object-oriented programming language. Its development ' + + 'team is led by Anders Hejlsberg. The most recent version is C# 5.0, which was released on August 15, 2012.' + }, + { + header: { 'text': 'Java' }, + content: 'Java is a set of computer software and specifications developed by Sun Microsystems, later acquired by Oracle ' + + 'Corporation, that provides a system for developing application software and deploying it in a cross-platform computing ' + + 'environment. Java is used in a wide variety of computing platforms from embedded devices and mobile phones to ' + + 'enterprise servers and supercomputers. While less common, Java applets run in secure, sandboxed environments to ' + + 'provide many features of native applications and can be embedded in HTML pages.' + }, + { + header: { 'text': 'VB.Net' }, + content: 'The command-line compiler, VBC.EXE, is installed as part of the freeware .NET Framework SDK. Mono also ' + + 'includes a command-line VB.NET compiler. The most recent version is VB 2012, which was released on August 15, 2012.' + }, + { + header: { 'text': 'Xamarin' }, + content: 'Xamarin is a San Francisco, California based software company created in May 2011[3] by the engineers that ' + + 'created Mono,[4] Mono for Android and MonoTouch that are cross-platform implementations of the Common Language ' + + 'Infrastructure (CLI) and Common Language Specifications (often called Microsoft .NET). With a C#-shared codebase, ' + + 'developers can use Xamarin tools to write native Android, iOS, and Windows apps with native user interfaces and share ' + + 'code across multiple platforms.[5] Xamarin has over 1 million developers in more than 120 countries around the World ' + + 'as of May 2015.' + }, + { + header: { 'text': 'ASP.NET' }, + content: 'ASP.NET is an open-source server-side web application framework designed for web development to produce ' + + 'dynamic web pages. It was developed by Microsoft to allow programmers to build dynamic web sites, web applications ' + + 'and web services. It was first released in January 2002 with version 1.0 of the .NET Framework, and is the successor ' + + 'to Microsoft\'\s Active Server Pages (ASP) technology. ASP.NET is built on the Common Language Runtime (CLR), allowing ' + + 'programmers to write ASP.NET code using any supported .NET language. The ASP.NET SOAP extension framework allows ' + + 'ASP.NET components to process SOAP messages.' + }, + { + header: { 'text': 'ASP.NET MVC' }, + content: 'The ASP.NET MVC is a web application framework developed by Microsoft, which implements the ' + + 'model–view–controller (MVC) pattern. It is open-source software, apart from the ASP.NET Web Forms component which is ' + + 'proprietary. In the later versions of ASP.NET, ASP.NET MVC, ASP.NET Web API, and ASP.NET Web Pages (a platform using ' + + 'only Razor pages) will merge into a unified MVC 6.The project is called ASP.NET vNext.' + }, + { + header: { 'text': 'JavaScript' }, + content: 'JavaScript (JS) is an interpreted computer programming language. It was originally implemented as part of ' + + 'web browsers so that client-side scripts could interact with the user, control the browser, communicate ' + + 'asynchronously, and alter the document content that was displayed.[5] More recently, however, it has become common in ' + + 'both game development and the creation of desktop applications.' + } + ] +}); +tabObj.appendTo('#element'); \ No newline at end of file diff --git a/ej2-javascript/code-snippet/tab/adaptive-multirow/js/index.html b/ej2-javascript/code-snippet/tab/adaptive-multirow/js/index.html new file mode 100644 index 000000000..c6fca555d --- /dev/null +++ b/ej2-javascript/code-snippet/tab/adaptive-multirow/js/index.html @@ -0,0 +1,34 @@ + + + + Essential JS 2 Tab + + + + + + + + + + + +
    +
    +
    + + + + + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/tab/adaptive-multirow/systemjs.config.js b/ej2-javascript/code-snippet/tab/adaptive-multirow/systemjs.config.js new file mode 100644 index 000000000..7b228eeea --- /dev/null +++ b/ej2-javascript/code-snippet/tab/adaptive-multirow/systemjs.config.js @@ -0,0 +1,32 @@ +System.config({ + transpiler: "typescript", + typescriptOptions: { + compilerOptions: { + target: "umd", + module: "commonjs", + moduleResolution: "node", + emitDecoratorMetadata: true, + experimentalDecorators: true + } + }, + paths: { + "syncfusion:": "https://cdn.syncfusion.com/ej2/20.3.56/" + }, + map: { + main: "index.ts", + typescript: "https://unpkg.com/typescript@2.2.2/lib/typescript.js", + "@syncfusion/ej2-base": "syncfusion:ej2-base/dist/ej2-base.umd.min.js", + "@syncfusion/ej2-buttons": "syncfusion:ej2-buttons/dist/ej2-buttons.umd.min.js", + "@syncfusion/ej2-popups": "syncfusion:ej2-popups/dist/ej2-popups.umd.min.js", + "@syncfusion/ej2-navigations": "syncfusion:ej2-navigations/dist/ej2-navigations.umd.min.js", + "@syncfusion/ej2-lists": "syncfusion:ej2-lists/dist/ej2-lists.umd.min.js", + "@syncfusion/ej2-inputs": "syncfusion:ej2-inputs/dist/ej2-inputs.umd.min.js", + "@syncfusion/ej2-data": "syncfusion:ej2-data/dist/ej2-data.umd.min.js", + "@syncfusion/ej2-splitbuttons": "syncfusion:ej2-splitbuttons/dist/ej2-splitbuttons.umd.min.js" + } +}); + +System.import('index.ts').catch(console.error.bind(console)).then(function () { + document.getElementById('loader').style.display = "none"; + document.getElementById('container').style.visibility = "visible"; +}); \ No newline at end of file diff --git a/ej2-javascript/code-snippet/tab/adaptive-multirow/ts/index.html b/ej2-javascript/code-snippet/tab/adaptive-multirow/ts/index.html new file mode 100644 index 000000000..efd00de1e --- /dev/null +++ b/ej2-javascript/code-snippet/tab/adaptive-multirow/ts/index.html @@ -0,0 +1,30 @@ + + + + + Essential JS 2 Tab + + + + + + + + + + + + +
    LOADING....
    +
    +
    +
    + + + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/tab/adaptive-popup-cs2/index.css b/ej2-javascript/code-snippet/tab/adaptive-popup-cs2/index.css index 85516b5a6..63e980fe7 100644 --- a/ej2-javascript/code-snippet/tab/adaptive-popup-cs2/index.css +++ b/ej2-javascript/code-snippet/tab/adaptive-popup-cs2/index.css @@ -10,9 +10,4 @@ position: absolute; top: 45%; width: 30%; -} -.e-content .e-item { - font-size: 12px; - margin: 10px; - text-align: justify; } \ No newline at end of file diff --git a/ej2-javascript/code-snippet/tab/adaptive-popup-cs2/js/index.html b/ej2-javascript/code-snippet/tab/adaptive-popup-cs2/js/index.html index 3cf9bb6eb..ab956c386 100644 --- a/ej2-javascript/code-snippet/tab/adaptive-popup-cs2/js/index.html +++ b/ej2-javascript/code-snippet/tab/adaptive-popup-cs2/js/index.html @@ -6,9 +6,14 @@ - - - + + diff --git a/ej2-javascript/code-snippet/tab/adaptive-popup-cs2/ts/index.html b/ej2-javascript/code-snippet/tab/adaptive-popup-cs2/ts/index.html index 44b938e1c..8e3ae413c 100644 --- a/ej2-javascript/code-snippet/tab/adaptive-popup-cs2/ts/index.html +++ b/ej2-javascript/code-snippet/tab/adaptive-popup-cs2/ts/index.html @@ -11,6 +11,13 @@ + diff --git a/ej2-javascript/code-snippet/tab/adaptive-scroll-cs1/index.css b/ej2-javascript/code-snippet/tab/adaptive-scroll-cs1/index.css index 85516b5a6..63e980fe7 100644 --- a/ej2-javascript/code-snippet/tab/adaptive-scroll-cs1/index.css +++ b/ej2-javascript/code-snippet/tab/adaptive-scroll-cs1/index.css @@ -10,9 +10,4 @@ position: absolute; top: 45%; width: 30%; -} -.e-content .e-item { - font-size: 12px; - margin: 10px; - text-align: justify; } \ No newline at end of file diff --git a/ej2-javascript/code-snippet/tab/adaptive-scroll-cs1/js/index.html b/ej2-javascript/code-snippet/tab/adaptive-scroll-cs1/js/index.html index 7e246dfb5..ecbbf3bcc 100644 --- a/ej2-javascript/code-snippet/tab/adaptive-scroll-cs1/js/index.html +++ b/ej2-javascript/code-snippet/tab/adaptive-scroll-cs1/js/index.html @@ -6,9 +6,14 @@ - - - + + diff --git a/ej2-javascript/code-snippet/tab/adaptive-scroll-cs1/ts/index.html b/ej2-javascript/code-snippet/tab/adaptive-scroll-cs1/ts/index.html index 44769aa36..90c8f7067 100644 --- a/ej2-javascript/code-snippet/tab/adaptive-scroll-cs1/ts/index.html +++ b/ej2-javascript/code-snippet/tab/adaptive-scroll-cs1/ts/index.html @@ -11,6 +11,13 @@ + diff --git a/ej2-javascript/code-snippet/tab/add-font-awesome-cs1/index.css b/ej2-javascript/code-snippet/tab/add-font-awesome-cs1/index.css index ee9cd852f..2bfd99f87 100644 --- a/ej2-javascript/code-snippet/tab/add-font-awesome-cs1/index.css +++ b/ej2-javascript/code-snippet/tab/add-font-awesome-cs1/index.css @@ -10,8 +10,3 @@ top: 45%; width: 30%; } -.e-content .e-item { - font-size: 12px; - margin: 10px; - text-align: justify; -} diff --git a/ej2-javascript/code-snippet/tab/add-font-awesome-cs1/js/index.html b/ej2-javascript/code-snippet/tab/add-font-awesome-cs1/js/index.html index de826711d..057469956 100644 --- a/ej2-javascript/code-snippet/tab/add-font-awesome-cs1/js/index.html +++ b/ej2-javascript/code-snippet/tab/add-font-awesome-cs1/js/index.html @@ -7,9 +7,14 @@ - - - + + diff --git a/ej2-javascript/code-snippet/tab/add-font-awesome-cs1/ts/index.html b/ej2-javascript/code-snippet/tab/add-font-awesome-cs1/ts/index.html index 0f45fad0a..11bf9d0f2 100644 --- a/ej2-javascript/code-snippet/tab/add-font-awesome-cs1/ts/index.html +++ b/ej2-javascript/code-snippet/tab/add-font-awesome-cs1/ts/index.html @@ -12,6 +12,13 @@ + diff --git a/ej2-javascript/code-snippet/tab/collapse-cs1/index.css b/ej2-javascript/code-snippet/tab/collapse-cs1/index.css index 9364d6cc7..817f6f7a0 100644 --- a/ej2-javascript/code-snippet/tab/collapse-cs1/index.css +++ b/ej2-javascript/code-snippet/tab/collapse-cs1/index.css @@ -9,27 +9,4 @@ position: absolute; top: 45%; width: 30%; -} - -.e-content .e-item { - font-size: 12px; - margin: 10px; - text-align: justify; -} -.container { - min-width: 350px; - margin: 0 10px; -} - -.info { - margin: 10px; - font-weight: bold; -} - -.e-tab .e-content > .e-item.e-active.collapse { /* csslint allow: adjoining-classes */ - display: none; -} - -.e-tab .e-tab-header .e-indicator.collapse { /* csslint allow: adjoining-classes */ - display: none; } \ No newline at end of file diff --git a/ej2-javascript/code-snippet/tab/collapse-cs1/js/index.html b/ej2-javascript/code-snippet/tab/collapse-cs1/js/index.html index a81012e3a..4285bd900 100644 --- a/ej2-javascript/code-snippet/tab/collapse-cs1/js/index.html +++ b/ej2-javascript/code-snippet/tab/collapse-cs1/js/index.html @@ -6,9 +6,34 @@ - - - + + diff --git a/ej2-javascript/code-snippet/tab/collapse-cs1/ts/index.html b/ej2-javascript/code-snippet/tab/collapse-cs1/ts/index.html index f9c7b0872..8c01d77b8 100644 --- a/ej2-javascript/code-snippet/tab/collapse-cs1/ts/index.html +++ b/ej2-javascript/code-snippet/tab/collapse-cs1/ts/index.html @@ -11,6 +11,33 @@ + diff --git a/ej2-javascript/code-snippet/tab/disable-tab-cs1/js/index.html b/ej2-javascript/code-snippet/tab/disable-tab-cs1/js/index.html index d9cb8432e..a4270cbf5 100644 --- a/ej2-javascript/code-snippet/tab/disable-tab-cs1/js/index.html +++ b/ej2-javascript/code-snippet/tab/disable-tab-cs1/js/index.html @@ -7,9 +7,103 @@ - - - + + diff --git a/ej2-javascript/code-snippet/tab/disable-tab-cs1/ts/index.html b/ej2-javascript/code-snippet/tab/disable-tab-cs1/ts/index.html index 2e04b6596..c7058ab1b 100644 --- a/ej2-javascript/code-snippet/tab/disable-tab-cs1/ts/index.html +++ b/ej2-javascript/code-snippet/tab/disable-tab-cs1/ts/index.html @@ -12,6 +12,102 @@ + diff --git a/ej2-javascript/code-snippet/tab/drag-and-drop/default-cs1/index.css b/ej2-javascript/code-snippet/tab/drag-and-drop/default-cs1/index.css index 32b48856a..a11c60a23 100644 --- a/ej2-javascript/code-snippet/tab/drag-and-drop/default-cs1/index.css +++ b/ej2-javascript/code-snippet/tab/drag-and-drop/default-cs1/index.css @@ -11,10 +11,4 @@ font-size: 14px; top: 45%; left: 45%; -} - -#draggableTab .e-content .e-item { - font-size: 12px; - margin: 10px; - text-align: justify; -} +} \ No newline at end of file diff --git a/ej2-javascript/code-snippet/tab/drag-and-drop/default-cs1/js/index.html b/ej2-javascript/code-snippet/tab/drag-and-drop/default-cs1/js/index.html index d99f30677..e96de5887 100644 --- a/ej2-javascript/code-snippet/tab/drag-and-drop/default-cs1/js/index.html +++ b/ej2-javascript/code-snippet/tab/drag-and-drop/default-cs1/js/index.html @@ -1,31 +1,36 @@ - - - - - - Essential JS 2 for Tab - - - - - - - - - - - - -
    -
    -
    - - - - - \ No newline at end of file + + + + Essential JS 2 for Tab + + + + + + + + + + + + +
    +
    +
    + + + + + + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/tab/drag-and-drop/default-cs1/ts/index.html b/ej2-javascript/code-snippet/tab/drag-and-drop/default-cs1/ts/index.html index f74fbb2e1..af9c1be7a 100644 --- a/ej2-javascript/code-snippet/tab/drag-and-drop/default-cs1/ts/index.html +++ b/ej2-javascript/code-snippet/tab/drag-and-drop/default-cs1/ts/index.html @@ -11,6 +11,13 @@ + diff --git a/ej2-javascript/code-snippet/tab/drag-and-drop/tab-to-tab-cs1/index.css b/ej2-javascript/code-snippet/tab/drag-and-drop/tab-to-tab-cs1/index.css index be632f32a..bd1900bbc 100644 --- a/ej2-javascript/code-snippet/tab/drag-and-drop/tab-to-tab-cs1/index.css +++ b/ej2-javascript/code-snippet/tab/drag-and-drop/tab-to-tab-cs1/index.css @@ -12,18 +12,3 @@ top: 45%; left: 45%; } - -#firstTab .e-content .e-item, -#secondTab .e-content .e-item { - font-size: 12px; - margin: 10px; - text-align: justify; -} - -#firstTab { - margin-bottom: 40px; -} - -#secondTab { - margin-top: 40px; -} diff --git a/ej2-javascript/code-snippet/tab/drag-and-drop/tab-to-tab-cs1/js/index.html b/ej2-javascript/code-snippet/tab/drag-and-drop/tab-to-tab-cs1/js/index.html index 27d17a63c..e5b414fef 100644 --- a/ej2-javascript/code-snippet/tab/drag-and-drop/tab-to-tab-cs1/js/index.html +++ b/ej2-javascript/code-snippet/tab/drag-and-drop/tab-to-tab-cs1/js/index.html @@ -1,34 +1,48 @@ - - - - - - Essential JS 2 for Tab - - - - - - - - - - - - -
    -
    -
    -
    -
    + + + + Essential JS 2 for Tab + + + + + + + + + + + +
    +
    +
    +
    +
    + + + + - - - \ No newline at end of file + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/tab/drag-and-drop/tab-to-tab-cs1/ts/index.html b/ej2-javascript/code-snippet/tab/drag-and-drop/tab-to-tab-cs1/ts/index.html index bc8eb48d4..433783cb9 100644 --- a/ej2-javascript/code-snippet/tab/drag-and-drop/tab-to-tab-cs1/ts/index.html +++ b/ej2-javascript/code-snippet/tab/drag-and-drop/tab-to-tab-cs1/ts/index.html @@ -11,6 +11,22 @@ + diff --git a/ej2-javascript/code-snippet/tab/drag-and-drop/tab-to-treeview-cs1/index.css b/ej2-javascript/code-snippet/tab/drag-and-drop/tab-to-treeview-cs1/index.css index b4d5cf3ad..a11c60a23 100644 --- a/ej2-javascript/code-snippet/tab/drag-and-drop/tab-to-treeview-cs1/index.css +++ b/ej2-javascript/code-snippet/tab/drag-and-drop/tab-to-treeview-cs1/index.css @@ -11,36 +11,4 @@ font-size: 14px; top: 45%; left: 45%; -} - -#draggableTab .e-content .e-item { - font-size: 12px; - margin: 10px; - text-align: justify; -} - -.treeview-external-drop-tab .e-list-item, -.e-bigger .treeview-external-drop-tab .e-list-item { - border: 0.5px solid #E1E7EC; - line-height: 15px; - padding: 0 5px; -} - -.treeview-external-drop-tab .e-list-item.e-hover>.e-fullrow, -.treeview-external-drop-tab .e-list-item.e-active>.e-fullrow, -.treeview-external-drop-tab .e-list-item.e-active.e-hover>.e-fullrow, -.e-bigger .treeview-external-drop-tab .e-list-item.e-hover>.e-fullrow, -.e-bigger .treeview-external-drop-tab .e-list-item.e-active>.e-fullrow, -.e-bigger .treeview-external-drop-tab .e-list-item.e-active.e-hover>.e-fullrow { - background-color: transparent; - border-color: transparent; - box-shadow: none !important; -} - -#draggableTab { - margin-bottom: 40px; -} - -#draggableTreeview { - margin-top: 40px; } \ No newline at end of file diff --git a/ej2-javascript/code-snippet/tab/drag-and-drop/tab-to-treeview-cs1/js/index.html b/ej2-javascript/code-snippet/tab/drag-and-drop/tab-to-treeview-cs1/js/index.html index cba57fae2..69b283ccb 100644 --- a/ej2-javascript/code-snippet/tab/drag-and-drop/tab-to-treeview-cs1/js/index.html +++ b/ej2-javascript/code-snippet/tab/drag-and-drop/tab-to-treeview-cs1/js/index.html @@ -1,32 +1,60 @@ - - - - - - Essential JS 2 for Tab - - - - - - - - - - - - -
    -
    -
    -
    - - - - - \ No newline at end of file + + + Essential JS 2 for Tab + + + + + + + + + + + +
    +
    +
    +
    + + + + + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/tab/drag-and-drop/tab-to-treeview-cs1/ts/index.html b/ej2-javascript/code-snippet/tab/drag-and-drop/tab-to-treeview-cs1/ts/index.html index 04d12aa44..d6e790be9 100644 --- a/ej2-javascript/code-snippet/tab/drag-and-drop/tab-to-treeview-cs1/ts/index.html +++ b/ej2-javascript/code-snippet/tab/drag-and-drop/tab-to-treeview-cs1/ts/index.html @@ -11,6 +11,39 @@ + diff --git a/ej2-javascript/code-snippet/tab/drag-and-drop/treeview-to-tab-cs1/index.css b/ej2-javascript/code-snippet/tab/drag-and-drop/treeview-to-tab-cs1/index.css index b4d5cf3ad..a11c60a23 100644 --- a/ej2-javascript/code-snippet/tab/drag-and-drop/treeview-to-tab-cs1/index.css +++ b/ej2-javascript/code-snippet/tab/drag-and-drop/treeview-to-tab-cs1/index.css @@ -11,36 +11,4 @@ font-size: 14px; top: 45%; left: 45%; -} - -#draggableTab .e-content .e-item { - font-size: 12px; - margin: 10px; - text-align: justify; -} - -.treeview-external-drop-tab .e-list-item, -.e-bigger .treeview-external-drop-tab .e-list-item { - border: 0.5px solid #E1E7EC; - line-height: 15px; - padding: 0 5px; -} - -.treeview-external-drop-tab .e-list-item.e-hover>.e-fullrow, -.treeview-external-drop-tab .e-list-item.e-active>.e-fullrow, -.treeview-external-drop-tab .e-list-item.e-active.e-hover>.e-fullrow, -.e-bigger .treeview-external-drop-tab .e-list-item.e-hover>.e-fullrow, -.e-bigger .treeview-external-drop-tab .e-list-item.e-active>.e-fullrow, -.e-bigger .treeview-external-drop-tab .e-list-item.e-active.e-hover>.e-fullrow { - background-color: transparent; - border-color: transparent; - box-shadow: none !important; -} - -#draggableTab { - margin-bottom: 40px; -} - -#draggableTreeview { - margin-top: 40px; } \ No newline at end of file diff --git a/ej2-javascript/code-snippet/tab/drag-and-drop/treeview-to-tab-cs1/js/index.html b/ej2-javascript/code-snippet/tab/drag-and-drop/treeview-to-tab-cs1/js/index.html index cba57fae2..a5a10f98b 100644 --- a/ej2-javascript/code-snippet/tab/drag-and-drop/treeview-to-tab-cs1/js/index.html +++ b/ej2-javascript/code-snippet/tab/drag-and-drop/treeview-to-tab-cs1/js/index.html @@ -1,32 +1,61 @@ - - - - - - Essential JS 2 for Tab - - - - - - - - - - - - -
    -
    -
    -
    - - - - - \ No newline at end of file + + + Essential JS 2 for Tab + + + + + + + + + + + +
    +
    +
    +
    + + + + + + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/tab/drag-and-drop/treeview-to-tab-cs1/ts/index.html b/ej2-javascript/code-snippet/tab/drag-and-drop/treeview-to-tab-cs1/ts/index.html index 04d12aa44..65331c097 100644 --- a/ej2-javascript/code-snippet/tab/drag-and-drop/treeview-to-tab-cs1/ts/index.html +++ b/ej2-javascript/code-snippet/tab/drag-and-drop/treeview-to-tab-cs1/ts/index.html @@ -11,6 +11,39 @@ + diff --git a/ej2-javascript/code-snippet/tab/dynamic-tab-cs1/index.css b/ej2-javascript/code-snippet/tab/dynamic-tab-cs1/index.css index 4ad7245d6..817f6f7a0 100644 --- a/ej2-javascript/code-snippet/tab/dynamic-tab-cs1/index.css +++ b/ej2-javascript/code-snippet/tab/dynamic-tab-cs1/index.css @@ -9,36 +9,4 @@ position: absolute; top: 45%; width: 30%; -} - -.e-content .e-item { - font-size: 12px; - margin: 10px; - text-align: justify; -} -.container { - min-width: 350px; - max-width: 500px; - margin: 0 auto; -} - -#form-container { - margin: 0 auto; - max-width: 300px; -} - -.btn-section { - text-align: center; -} - -.add-tab-btn-section td { - padding: 10px; -} - -.info { - font-weight: bold; -} - -.e-add-icon::before { - content: '\e823'; } \ No newline at end of file diff --git a/ej2-javascript/code-snippet/tab/dynamic-tab-cs1/js/index.html b/ej2-javascript/code-snippet/tab/dynamic-tab-cs1/js/index.html index ca893fb63..ce5bdb507 100644 --- a/ej2-javascript/code-snippet/tab/dynamic-tab-cs1/js/index.html +++ b/ej2-javascript/code-snippet/tab/dynamic-tab-cs1/js/index.html @@ -18,6 +18,35 @@ .e-add-icon::before { content: '\e823'; } + + .e-content .e-item { + font-size: 12px; + margin: 10px; + text-align: justify; + } + + .container { + min-width: 350px; + max-width: 500px; + margin: 0 auto; + } + + #form-container { + margin: 0 auto; + max-width: 300px; + } + + .btn-section { + text-align: center; + } + + .add-tab-btn-section td { + padding: 10px; + } + + .info { + font-weight: bold; + } diff --git a/ej2-javascript/code-snippet/tab/dynamic-tab-cs1/ts/index.html b/ej2-javascript/code-snippet/tab/dynamic-tab-cs1/ts/index.html index 8aaee8358..c8f502e3a 100644 --- a/ej2-javascript/code-snippet/tab/dynamic-tab-cs1/ts/index.html +++ b/ej2-javascript/code-snippet/tab/dynamic-tab-cs1/ts/index.html @@ -22,6 +22,35 @@ .e-add-icon::before { content: '\e823'; } + + .e-content .e-item { + font-size: 12px; + margin: 10px; + text-align: justify; + } + + .container { + min-width: 350px; + max-width: 500px; + margin: 0 auto; + } + + #form-container { + margin: 0 auto; + max-width: 300px; + } + + .btn-section { + text-align: center; + } + + .add-tab-btn-section td { + padding: 10px; + } + + .info { + font-weight: bold; + } diff --git a/ej2-javascript/code-snippet/tab/es5-getting-started-cs3/js/index.html b/ej2-javascript/code-snippet/tab/es5-getting-started-cs3/js/index.html index 617dad18f..2ab93af2a 100644 --- a/ej2-javascript/code-snippet/tab/es5-getting-started-cs3/js/index.html +++ b/ej2-javascript/code-snippet/tab/es5-getting-started-cs3/js/index.html @@ -5,13 +5,13 @@ Essential JS 2 - - - - + + + + - + diff --git a/ej2-javascript/code-snippet/tab/icon-position-cs1/index.css b/ej2-javascript/code-snippet/tab/icon-position-cs1/index.css index e84e39ecf..817f6f7a0 100644 --- a/ej2-javascript/code-snippet/tab/icon-position-cs1/index.css +++ b/ej2-javascript/code-snippet/tab/icon-position-cs1/index.css @@ -9,37 +9,4 @@ position: absolute; top: 45%; width: 30%; -} -.e-content .e-item { - font-size: 12px; - margin: 10px; - text-align: justify; -} - -@font-face { - font-family: 'Socialicons'; - src: url(data:application/x-font-ttf;charset=utf-8;base64,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) format('truetype'); - font-weight: normal; - font-style: normal; -} - -.e-tab-icon { - font-family: 'Socialicons' !important; -} - -.e-icons.e-tab-icon { - position: relative; - top: 1px; -} - -.e-twitter:before { - content: '\a701'; -} - -.e-facebook:before { - content: '\a705'; -} - -.e-whatsapp:before { - content: '\a700'; } \ No newline at end of file diff --git a/ej2-javascript/code-snippet/tab/icon-position-cs1/js/index.html b/ej2-javascript/code-snippet/tab/icon-position-cs1/js/index.html index f15e4eec2..cddbc8020 100644 --- a/ej2-javascript/code-snippet/tab/icon-position-cs1/js/index.html +++ b/ej2-javascript/code-snippet/tab/icon-position-cs1/js/index.html @@ -7,9 +7,42 @@ + + diff --git a/ej2-javascript/code-snippet/tab/icon-position-cs1/ts/index.html b/ej2-javascript/code-snippet/tab/icon-position-cs1/ts/index.html index d912428dd..689660538 100644 --- a/ej2-javascript/code-snippet/tab/icon-position-cs1/ts/index.html +++ b/ej2-javascript/code-snippet/tab/icon-position-cs1/ts/index.html @@ -12,6 +12,41 @@ + diff --git a/ej2-javascript/code-snippet/tab/load-on-demand-cs1/index.css b/ej2-javascript/code-snippet/tab/load-on-demand-cs1/index.css new file mode 100644 index 000000000..dcd32855d --- /dev/null +++ b/ej2-javascript/code-snippet/tab/load-on-demand-cs1/index.css @@ -0,0 +1,40 @@ +#container { + visibility: hidden; +} + +#loader { + color: #008cff; + height: 40px; + left: 45%; + position: absolute; + top: 45%; + width: 30%; +} + +.e-content .e-item { + font-size: 12px; + margin: 10px; + text-align: justify; +} +.container { + min-width: 350px; + max-width: 500px; + margin: 0 auto; +} + +#form-container { + margin: 0 auto; + max-width: 300px; +} + +.btn-section { + text-align: center; +} + +.add-tab-btn-section td { + padding: 10px; +} + +.info { + font-weight: bold; +} \ No newline at end of file diff --git a/ej2-javascript/code-snippet/tab/load-on-demand-cs1/index.js b/ej2-javascript/code-snippet/tab/load-on-demand-cs1/index.js new file mode 100644 index 000000000..d59aa7e45 --- /dev/null +++ b/ej2-javascript/code-snippet/tab/load-on-demand-cs1/index.js @@ -0,0 +1,24 @@ +ej.base.enableRipple(true); +var tabObj = new ej.navigations.Tab({ + items: [ + { + header: { text: 'Calendar' }, + content: '#Calendar' + }, + { + header: { text: 'Schedule' }, + content: '#Schedule', + }, + ] + +}); +tabObj.appendTo('#element'); + +var calendar = new ej.calendars.Calendar(); +calendar.appendTo('#Calendar'); + +var schedule = new ej.schedule.Schedule({ + width: '100%', + height: '450px' +}); +schedule.appendTo('#Schedule'); diff --git a/ej2-javascript/code-snippet/tab/load-on-demand-cs1/index.ts b/ej2-javascript/code-snippet/tab/load-on-demand-cs1/index.ts new file mode 100644 index 000000000..3fe7d423c --- /dev/null +++ b/ej2-javascript/code-snippet/tab/load-on-demand-cs1/index.ts @@ -0,0 +1,29 @@ +import { Tab } from '@syncfusion/ej2-navigations'; +import { Calendar } from '@syncfusion/ej2-calendars'; +import { Schedule, Day } from '@syncfusion/ej2-schedule'; + +Schedule.Inject(Day); + +//Initialize Tab component +let tabObj: Tab = new Tab({ + items: [ + { + header: { text: 'Calendar' }, + content: '#Calendar' + }, + { + header: { text: 'Schedule' }, + content: '#Schedule', + }, + ] +}); +tabObj.appendTo('#element'); + +let calendar: Calendar = new Calendar(); +calendar.appendTo('#Calendar'); + +let schedule: Schedule = new Schedule({ + width: '100%', + height: '450px' +}); +schedule.appendTo('#Schedule'); \ No newline at end of file diff --git a/ej2-javascript/code-snippet/tab/load-on-demand-cs1/js/index.html b/ej2-javascript/code-snippet/tab/load-on-demand-cs1/js/index.html new file mode 100644 index 000000000..cc7f6cb58 --- /dev/null +++ b/ej2-javascript/code-snippet/tab/load-on-demand-cs1/js/index.html @@ -0,0 +1,36 @@ + + + + + Essential JS 2 Tab + + + + + + + + + + + + +
    + + +
    +
    + + + + + + + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/tab/load-on-demand-cs1/systemjs.config.js b/ej2-javascript/code-snippet/tab/load-on-demand-cs1/systemjs.config.js new file mode 100644 index 000000000..0e82dbf60 --- /dev/null +++ b/ej2-javascript/code-snippet/tab/load-on-demand-cs1/systemjs.config.js @@ -0,0 +1,43 @@ +System.config({ + transpiler: "typescript", + typescriptOptions: { + compilerOptions: { + target: "umd", + module: "commonjs", + moduleResolution: "node", + emitDecoratorMetadata: true, + experimentalDecorators: true + } + }, + paths: { + "syncfusion:": "https://cdn.syncfusion.com/ej2/28.1.33/" + }, + map: { + map: { + main: "index.ts", + typescript: "https://unpkg.com/typescript@2.2.2/lib/typescript.js", + "@syncfusion/ej2-base": "syncfusion:ej2-base/dist/ej2-base.umd.min.js", + "@syncfusion/ej2-calendars": "syncfusion:ej2-calendars/dist/ej2-calendars.umd.min.js", + "@syncfusion/ej2-compression": "syncfusion:ej2-compression/dist/ej2-compression.umd.min.js", + "@syncfusion/ej2-excel-export": "syncfusion:ej2-excel-export/dist/ej2-excel-export.umd.min.js", + "@syncfusion/ej2-data": "syncfusion:ej2-data/dist/ej2-data.umd.min.js", + "@syncfusion/ej2-dropdowns": "syncfusion:ej2-dropdowns/dist/ej2-dropdowns.umd.min.js", + "@syncfusion/ej2-grids": "syncfusion:ej2-grids/dist/ej2-grids.umd.min.js", + "@syncfusion/ej2-file-utils": "syncfusion:ej2-file-utils/dist/ej2-file-utils.umd.min.js", + "@syncfusion/ej2-navigations": "syncfusion:ej2-navigations/dist/ej2-navigations.umd.min.js", + "@syncfusion/ej2-inputs": "syncfusion:ej2-inputs/dist/ej2-inputs.umd.min.js", + "@syncfusion/ej2-buttons": "syncfusion:ej2-buttons/dist/ej2-buttons.umd.min.js", + "@syncfusion/ej2-splitbuttons": "syncfusion:ej2-splitbuttons/dist/ej2-splitbuttons.umd.min.js", + "@syncfusion/ej2-popups": "syncfusion:ej2-popups/dist/ej2-popups.umd.min.js", + "@syncfusion/ej2-pdf-export": "syncfusion:ej2-pdf-export/dist/ej2-pdf-export.umd.min.js", + "@syncfusion/ej2-lists": "syncfusion:ej2-lists/dist/ej2-lists.umd.min.js", + "@syncfusion/ej2-notifications": "syncfusion:ej2-notifications/dist/ej2-notifications.umd.min.js", + "@syncfusion/ej2-schedule": "syncfusion:ej2-schedule/dist/ej2-schedule.umd.min.js" + }, + } +}); + +System.import('index.ts').catch(console.error.bind(console)).then(function () { + document.getElementById('loader').style.display = "none"; + document.getElementById('container').style.visibility = "visible"; +}); \ No newline at end of file diff --git a/ej2-javascript/code-snippet/tab/load-on-demand-cs1/ts/index.html b/ej2-javascript/code-snippet/tab/load-on-demand-cs1/ts/index.html new file mode 100644 index 000000000..a7270641c --- /dev/null +++ b/ej2-javascript/code-snippet/tab/load-on-demand-cs1/ts/index.html @@ -0,0 +1,28 @@ + + + + + Essential JS 2 Tab + + + + + + + + + + + + +
    LOADING....
    +
    + + +
    +
    + + + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/tab/load-on-dynamic-cs1/index.css b/ej2-javascript/code-snippet/tab/load-on-dynamic-cs1/index.css new file mode 100644 index 000000000..dcd32855d --- /dev/null +++ b/ej2-javascript/code-snippet/tab/load-on-dynamic-cs1/index.css @@ -0,0 +1,40 @@ +#container { + visibility: hidden; +} + +#loader { + color: #008cff; + height: 40px; + left: 45%; + position: absolute; + top: 45%; + width: 30%; +} + +.e-content .e-item { + font-size: 12px; + margin: 10px; + text-align: justify; +} +.container { + min-width: 350px; + max-width: 500px; + margin: 0 auto; +} + +#form-container { + margin: 0 auto; + max-width: 300px; +} + +.btn-section { + text-align: center; +} + +.add-tab-btn-section td { + padding: 10px; +} + +.info { + font-weight: bold; +} \ No newline at end of file diff --git a/ej2-javascript/code-snippet/tab/load-on-dynamic-cs1/index.js b/ej2-javascript/code-snippet/tab/load-on-dynamic-cs1/index.js new file mode 100644 index 000000000..813495446 --- /dev/null +++ b/ej2-javascript/code-snippet/tab/load-on-dynamic-cs1/index.js @@ -0,0 +1,76 @@ +ej.base.enableRipple(true); +var tabObj = new ej.navigations.Tab({ + items: [ + { + header: { 'text': 'Login' }, + content: '.login-form', + disabled: false + }, + { + header: { 'text': 'Grid' }, + content: '.grid-view', + disabled: true + } + ], + loadOn: 'Dynamic' + + }); +tabObj.appendTo('#element'); + +var userNameObj = new ej.inputs.TextBox({ + placeholder: 'User Name', + floatLabelType: 'Auto' +}); + +userNameObj.appendTo('#username'); + +let passWordObj = new ej.inputs.TextBox({ + placeholder: 'Password', + floatLabelType: 'Auto' +}); +passWordObj.appendTo('#password'); + +let buttonObj = new ej.buttons.Button({ + content: 'Log in', + isPrimary: true, +}); +buttonObj.appendTo('#normalbtn'); + +let grid = new ej.grids.Grid({ + dataSource: [ + { OrderID: 10248, CustomerID: 'ALFKI', OrderDate: '2024-12-01', Freight: 32.38 }, + { OrderID: 10249, CustomerID: 'ANATR', OrderDate: '2024-12-02', Freight: 11.61 }, + { OrderID: 10250, CustomerID: 'ANTON', OrderDate: '2024-12-03', Freight: 65.83 }, + { OrderID: 10251, CustomerID: 'AROUT', OrderDate: '2024-12-04', Freight: 41.34 } + ], + allowPaging: true, + columns: [ + { field: 'OrderID', headerText: 'Order ID', width: 120, textAlign: 'Right' }, + { field: 'CustomerID', headerText: 'Customer Name', width: 130 }, + { field: 'OrderDate', headerText: 'Order Date', width: 120, format: 'yMd', textAlign: 'Right' }, + { field: 'Freight', headerText: 'Freight', width: 120, format: 'C2', textAlign: 'Right' } + ] +}); +grid.appendTo('#grid') + +buttonObj.element.onclick = () => { + let userName = userNameObj.value; + let password = passWordObj.value; + if (!userName && !password) { + window.alert('Enter both username and password'); + } else if (!userName) { + window.alert('Enter the username'); + } else if (!password) { + window.alert('Enter the password'); + } else if (userName.length < 4) { + window.alert('Username must be at least 4 characters long'); + } else { + debugger; + userNameObj.value = ""; + passWordObj.value = ""; + tabObj.items[0].disabled = true; + tabObj.items[1].disabled = false; + tabObj.dataBind(); + tabObj.select(1); + } +} diff --git a/ej2-javascript/code-snippet/tab/load-on-dynamic-cs1/index.ts b/ej2-javascript/code-snippet/tab/load-on-dynamic-cs1/index.ts new file mode 100644 index 000000000..406dc99c7 --- /dev/null +++ b/ej2-javascript/code-snippet/tab/load-on-dynamic-cs1/index.ts @@ -0,0 +1,84 @@ +import { enableRipple } from '@syncfusion/ej2-base'; +import { Tab } from '@syncfusion/ej2-navigations'; +import { TextBox } from '@syncfusion/ej2-inputs'; +import { Button } from '@syncfusion/ej2-buttons'; +import { Grid } from '@syncfusion/ej2-grids'; + +enableRipple(true); + +//Initialize Tab component +let tabObj: Tab = new Tab({ + items: [ + { + header: { 'text': 'Login' }, + content: '.login-form', + disabled: false + }, + { + header: { 'text': 'Grid' }, + content: '.grid-view', + disabled: true + } + ], + loadOn: 'Dynamic' +}); +tabObj.appendTo('#element'); + +let grid: Grid = new Grid({ + dataSource: [ + { OrderID: 10248, CustomerID: 'ALFKI', OrderDate: '2024-12-01', Freight: 32.38 }, + { OrderID: 10249, CustomerID: 'ANATR', OrderDate: '2024-12-02', Freight: 11.61 }, + { OrderID: 10250, CustomerID: 'ANTON', OrderDate: '2024-12-03', Freight: 65.83 }, + { OrderID: 10251, CustomerID: 'AROUT', OrderDate: '2024-12-04', Freight: 41.34 } + ], + allowPaging: true, + columns: [ + { field: 'OrderID', headerText: 'Order ID', width: 120, textAlign: 'Right' }, + { field: 'CustomerID', headerText: 'Customer Name', width: 130 }, + { field: 'OrderDate', headerText: 'Order Date', width: 120, format: 'yMd', textAlign: 'Right' }, + { field: 'Freight', headerText: 'Freight', width: 120, format: 'C2', textAlign: 'Right' } + ] +}); +grid.appendTo('#grid') + +let userNameObj: TextBox = new TextBox({ + placeholder: 'User Name', + floatLabelType: 'Auto' +}); +userNameObj.appendTo('#username'); + +let passWordObj: TextBox = new TextBox({ + placeholder: 'Password', + floatLabelType: 'Auto' +}); +passWordObj.appendTo('#password'); + +let buttonObj: Button = new Button({ + content: 'Log in', + isPrimary: true, +}); +buttonObj.appendTo('#normalbtn'); + +buttonObj.element.onclick = () => { + let userName = userNameObj.value; + let password = passWordObj.value; + if (!userName && !password) { + window.alert('Enter both username and password'); + } else if (!userName) { + window.alert('Enter the username'); + } else if (!password) { + window.alert('Enter the password'); + } else if (userName.length < 4) { + window.alert('Username must be at least 4 characters long'); + } else { + userNameObj.value = ""; + passWordObj.value = ""; + tabObj.items[0].disabled = true; + tabObj.items[1].disabled = false; + tabObj.dataBind(); + tabObj.select(1); + } +} + + + diff --git a/ej2-javascript/code-snippet/tab/load-on-dynamic-cs1/js/index.html b/ej2-javascript/code-snippet/tab/load-on-dynamic-cs1/js/index.html new file mode 100644 index 000000000..59479e84f --- /dev/null +++ b/ej2-javascript/code-snippet/tab/load-on-dynamic-cs1/js/index.html @@ -0,0 +1,50 @@ + + + + + Essential JS 2 Tab + + + + + + + + + + + + +
    + + +
    +
    + + + + + + + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/tab/load-on-dynamic-cs1/systemjs.config.js b/ej2-javascript/code-snippet/tab/load-on-dynamic-cs1/systemjs.config.js new file mode 100644 index 000000000..15efb7db5 --- /dev/null +++ b/ej2-javascript/code-snippet/tab/load-on-dynamic-cs1/systemjs.config.js @@ -0,0 +1,40 @@ +System.config({ + transpiler: "typescript", + typescriptOptions: { + compilerOptions: { + target: "umd", + module: "commonjs", + moduleResolution: "node", + emitDecoratorMetadata: true, + experimentalDecorators: true + } + }, + paths: { + "syncfusion:": "https://cdn.syncfusion.com/ej2/28.1.33/" + }, + map: { + main: "index.ts", + typescript: "https://unpkg.com/typescript@2.2.2/lib/typescript.js", + "@syncfusion/ej2-base": "syncfusion:ej2-base/dist/ej2-base.umd.min.js", + "@syncfusion/ej2-calendars": "syncfusion:ej2-calendars/dist/ej2-calendars.umd.min.js", + "@syncfusion/ej2-compression": "syncfusion:ej2-compression/dist/ej2-compression.umd.min.js", + "@syncfusion/ej2-excel-export": "syncfusion:ej2-excel-export/dist/ej2-excel-export.umd.min.js", + "@syncfusion/ej2-data": "syncfusion:ej2-data/dist/ej2-data.umd.min.js", + "@syncfusion/ej2-dropdowns": "syncfusion:ej2-dropdowns/dist/ej2-dropdowns.umd.min.js", + "@syncfusion/ej2-grids": "syncfusion:ej2-grids/dist/ej2-grids.umd.min.js", + "@syncfusion/ej2-file-utils": "syncfusion:ej2-file-utils/dist/ej2-file-utils.umd.min.js", + "@syncfusion/ej2-navigations": "syncfusion:ej2-navigations/dist/ej2-navigations.umd.min.js", + "@syncfusion/ej2-inputs": "syncfusion:ej2-inputs/dist/ej2-inputs.umd.min.js", + "@syncfusion/ej2-buttons": "syncfusion:ej2-buttons/dist/ej2-buttons.umd.min.js", + "@syncfusion/ej2-splitbuttons": "syncfusion:ej2-splitbuttons/dist/ej2-splitbuttons.umd.min.js", + "@syncfusion/ej2-popups": "syncfusion:ej2-popups/dist/ej2-popups.umd.min.js", + "@syncfusion/ej2-pdf-export": "syncfusion:ej2-pdf-export/dist/ej2-pdf-export.umd.min.js", + "@syncfusion/ej2-lists": "syncfusion:ej2-lists/dist/ej2-lists.umd.min.js", + "@syncfusion/ej2-notifications": "syncfusion:ej2-notifications/dist/ej2-notifications.umd.min.js", + } +}); + +System.import('index.ts').catch(console.error.bind(console)).then(function () { + document.getElementById('loader').style.display = "none"; + document.getElementById('container').style.visibility = "visible"; +}); \ No newline at end of file diff --git a/ej2-javascript/code-snippet/tab/load-on-dynamic-cs1/ts/index.html b/ej2-javascript/code-snippet/tab/load-on-dynamic-cs1/ts/index.html new file mode 100644 index 000000000..edbdc234a --- /dev/null +++ b/ej2-javascript/code-snippet/tab/load-on-dynamic-cs1/ts/index.html @@ -0,0 +1,42 @@ + + + + + Essential JS 2 Tab + + + + + + + + + + + + +
    LOADING....
    +
    + + +
    +
    + + + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/tab/load-on-init-cs1/index.css b/ej2-javascript/code-snippet/tab/load-on-init-cs1/index.css new file mode 100644 index 000000000..4ad7245d6 --- /dev/null +++ b/ej2-javascript/code-snippet/tab/load-on-init-cs1/index.css @@ -0,0 +1,44 @@ +#container { + visibility: hidden; +} + +#loader { + color: #008cff; + height: 40px; + left: 45%; + position: absolute; + top: 45%; + width: 30%; +} + +.e-content .e-item { + font-size: 12px; + margin: 10px; + text-align: justify; +} +.container { + min-width: 350px; + max-width: 500px; + margin: 0 auto; +} + +#form-container { + margin: 0 auto; + max-width: 300px; +} + +.btn-section { + text-align: center; +} + +.add-tab-btn-section td { + padding: 10px; +} + +.info { + font-weight: bold; +} + +.e-add-icon::before { + content: '\e823'; +} \ No newline at end of file diff --git a/ej2-javascript/code-snippet/tab/load-on-init-cs1/index.html b/ej2-javascript/code-snippet/tab/load-on-init-cs1/index.html new file mode 100644 index 000000000..95f9ceac6 --- /dev/null +++ b/ej2-javascript/code-snippet/tab/load-on-init-cs1/index.html @@ -0,0 +1,72 @@ + + + + + Essential JS 2 Tab + + + + + + + + + + + + +
    + + + +
    +
    + + + + + + + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/tab/load-on-init-cs1/index.js b/ej2-javascript/code-snippet/tab/load-on-init-cs1/index.js new file mode 100644 index 000000000..724922045 --- /dev/null +++ b/ej2-javascript/code-snippet/tab/load-on-init-cs1/index.js @@ -0,0 +1,92 @@ +ej.base.enableRipple(true); +var tabObj = new ej.navigations.Tab({ + items: [ + { + header: { text: 'SignIn' }, + content: '.login-form', + }, + { + header: { text: 'Syncfusion EJ2' }, + content: '.over-view', + }, + { + header: { text: 'FeedBack' }, + content: '.feed-back', + } + ], + loadOn: 'Init' + + }); +tabObj.appendTo('#element'); + +var userNameObj = new ej.inputs.TextBox({ + placeholder: 'Enter Name', + floatLabelType: 'Auto', +}); +userNameObj.appendTo('#username'); + +var passWordObj = new ej.inputs.TextBox({ + placeholder: 'Enter Password', + floatLabelType: 'Auto', +}); +passWordObj.appendTo('#password'); +let signButton = new ej.buttons.Button({ + content: 'Sign in', + isPrimary: true, +}); +signButton.appendTo('#sign-btn'); + +var skipButton = new ej.buttons.Button({ + content: 'Skip', + isPrimary: true, +}); +skipButton.appendTo('#skip-btn'); + +var signInName = new ej.inputs.TextBox({ + placeholder: 'Entenr Name', + floatLabelType: 'Auto' +}); +signInName.appendTo('#sign-in-name'); + +var mail = new ej.inputs.TextBox({ + placeholder: 'Enter Mail', + floatLabelType: 'Auto', +}); +mail.appendTo('#mail'); + +var comments = new ej.inputs.TextBox({ + placeholder: 'Share your comments', + floatLabelType: 'Auto', +}); +comments.appendTo('#comments'); + +var submit = new ej.buttons.Button({ + content: 'submit', + isPrimary: true, +}); +submit.appendTo('#submit'); + +signButton.element.onclick = () => { + let userName = userNameObj.value; + let password = passWordObj.value; + if (signInName) { + signInName.value = userName + } + if (!userName && !password) { + window.alert('Enter both username and password'); + } else if (!userName) { + window.alert('Enter the username'); + } else if (!password) { + window.alert('Enter the password'); + } else if (userName.length < 4) { + window.alert('Username must be at least 4 characters long'); + } + tabObj.select(1); +}; +skipButton.element.onclick = () => { + tabObj.select(1); +}; +submit.element.onclick = () => { + userNameObj.value = passWordObj.value = signInName.value = ''; + tabObj.select(0); +} diff --git a/ej2-javascript/code-snippet/tab/load-on-init-cs1/index.ts b/ej2-javascript/code-snippet/tab/load-on-init-cs1/index.ts new file mode 100644 index 000000000..a83635175 --- /dev/null +++ b/ej2-javascript/code-snippet/tab/load-on-init-cs1/index.ts @@ -0,0 +1,98 @@ +import { enableRipple } from '@syncfusion/ej2-base'; +import { Tab } from '@syncfusion/ej2-navigations'; +import { TextBox } from '@syncfusion/ej2-inputs'; +import { Button } from '@syncfusion/ej2-buttons'; + +enableRipple(true); + +//Initialize Tab component + +let tabObj: Tab = new Tab({ + items: [ + { + header: { text: 'SignIn' }, + content: '.login-form', + }, + { + header: { text: 'Syncfusion EJ2' }, + content: '.over-view', + }, + { + header: { text: 'FeedBack' }, + content: '.feed-back', + }, + ], + loadOn: 'Init', +}); +tabObj.appendTo('#element'); + +let userNameObj: TextBox = new TextBox({ + placeholder: 'Enter Name', + floatLabelType: 'Auto', +}); +userNameObj.appendTo('#username'); + +let passWordObj: TextBox = new TextBox({ + placeholder: 'Enter Password', + floatLabelType: 'Auto', +}); +passWordObj.appendTo('#password'); + +let signButton: Button = new Button({ + content: 'Sign in', + isPrimary: true, +}); +signButton.appendTo('#sign-btn'); + +let skipButton: Button = new Button({ + content: 'Skip', + isPrimary: true, +}); +skipButton.appendTo('#skip-btn'); + +let signInName: TextBox = new TextBox({ + placeholder: 'Entenr Name', + floatLabelType: 'Auto' +}); +signInName.appendTo('#sign-in-name'); + +let mail: TextBox = new TextBox({ + placeholder: 'Enter Mail', + floatLabelType: 'Auto', +}); +mail.appendTo('#mail'); + +let comments: TextBox = new TextBox({ + placeholder: 'Share your comments', + floatLabelType: 'Auto', +}); +comments.appendTo('#comments'); + +let submit: Button = new Button({ + content: 'submit', + isPrimary: true, +}); +submit.appendTo('#submit'); + +signButton.element.onclick = () => { + let userName = userNameObj.value; + let password = passWordObj.value; + if (!userName && !password) { + window.alert('Enter both username and password'); + } else if (!userName) { + window.alert('Enter the username'); + } else if (!password) { + window.alert('Enter the password'); + } else if (userName.length < 4) { + window.alert('Username must be at least 4 characters long'); + } +}; + +skipButton.element.onclick = () => { + tabObj.select(1); +}; + +submit.element.onclick = () => { + tabObj.select(0); +}; + diff --git a/ej2-javascript/code-snippet/tab/load-on-init-cs1/js/index.html b/ej2-javascript/code-snippet/tab/load-on-init-cs1/js/index.html new file mode 100644 index 000000000..99146b6e5 --- /dev/null +++ b/ej2-javascript/code-snippet/tab/load-on-init-cs1/js/index.html @@ -0,0 +1,72 @@ + + + + + Essential JS 2 Tab + + + + + + + + + + + + +
    + + + +
    +
    + + + + + + + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/tab/load-on-init-cs1/systemjs.config.js b/ej2-javascript/code-snippet/tab/load-on-init-cs1/systemjs.config.js new file mode 100644 index 000000000..c16e946de --- /dev/null +++ b/ej2-javascript/code-snippet/tab/load-on-init-cs1/systemjs.config.js @@ -0,0 +1,33 @@ +System.config({ + transpiler: "typescript", + typescriptOptions: { + compilerOptions: { + target: "umd", + module: "commonjs", + moduleResolution: "node", + emitDecoratorMetadata: true, + experimentalDecorators: true + } + }, + paths: { + "syncfusion:": "https://cdn.syncfusion.com/ej2/28.1.33/" + }, + map: { + main: "index.ts", + typescript: "https://unpkg.com/typescript@2.2.2/lib/typescript.js", + "@syncfusion/ej2-base": "syncfusion:ej2-base/dist/ej2-base.umd.min.js", + "@syncfusion/ej2-buttons": "syncfusion:ej2-buttons/dist/ej2-buttons.umd.min.js", + "@syncfusion/ej2-popups": "syncfusion:ej2-popups/dist/ej2-popups.umd.min.js", + "@syncfusion/ej2-grids": "syncfusion:ej2-grids/dist/ej2-grids.umd.min.js", + "@syncfusion/ej2-navigations": "syncfusion:ej2-navigations/dist/ej2-navigations.umd.min.js", + "@syncfusion/ej2-lists": "syncfusion:ej2-lists/dist/ej2-lists.umd.min.js", + "@syncfusion/ej2-inputs": "syncfusion:ej2-inputs/dist/ej2-inputs.umd.min.js", + "@syncfusion/ej2-data": "syncfusion:ej2-data/dist/ej2-data.umd.min.js", + "@syncfusion/ej2-splitbuttons": "syncfusion:ej2-splitbuttons/dist/ej2-splitbuttons.umd.min.js" + } +}); + +System.import('index.ts').catch(console.error.bind(console)).then(function () { + document.getElementById('loader').style.display = "none"; + document.getElementById('container').style.visibility = "visible"; +}); \ No newline at end of file diff --git a/ej2-javascript/code-snippet/tab/load-on-init-cs1/ts/index.html b/ej2-javascript/code-snippet/tab/load-on-init-cs1/ts/index.html new file mode 100644 index 000000000..efd6dbb31 --- /dev/null +++ b/ej2-javascript/code-snippet/tab/load-on-init-cs1/ts/index.html @@ -0,0 +1,64 @@ + + + + + Essential JS 2 Tab + + + + + + + + + + + + +
    LOADING....
    +
    + + + +
    +
    + + + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/tab/locale-cs1/index.css b/ej2-javascript/code-snippet/tab/locale-cs1/index.css index ee9cd852f..817f6f7a0 100644 --- a/ej2-javascript/code-snippet/tab/locale-cs1/index.css +++ b/ej2-javascript/code-snippet/tab/locale-cs1/index.css @@ -9,9 +9,4 @@ position: absolute; top: 45%; width: 30%; -} -.e-content .e-item { - font-size: 12px; - margin: 10px; - text-align: justify; -} +} \ No newline at end of file diff --git a/ej2-javascript/code-snippet/tab/locale-cs1/js/index.html b/ej2-javascript/code-snippet/tab/locale-cs1/js/index.html index d62e31c8c..42b3a3a94 100644 --- a/ej2-javascript/code-snippet/tab/locale-cs1/js/index.html +++ b/ej2-javascript/code-snippet/tab/locale-cs1/js/index.html @@ -7,9 +7,14 @@ - - - + + diff --git a/ej2-javascript/code-snippet/tab/locale-cs1/ts/index.html b/ej2-javascript/code-snippet/tab/locale-cs1/ts/index.html index 9704f2a3d..30de74710 100644 --- a/ej2-javascript/code-snippet/tab/locale-cs1/ts/index.html +++ b/ej2-javascript/code-snippet/tab/locale-cs1/ts/index.html @@ -12,6 +12,13 @@ + diff --git a/ej2-javascript/code-snippet/tab/orientation-tab-cs1/index.css b/ej2-javascript/code-snippet/tab/orientation-tab-cs1/index.css index 036c5b64f..08e514765 100644 --- a/ej2-javascript/code-snippet/tab/orientation-tab-cs1/index.css +++ b/ej2-javascript/code-snippet/tab/orientation-tab-cs1/index.css @@ -5,23 +5,4 @@ position: absolute; top: 45%; width: 30%; - } - .e-content .e-item { - font-size: 12px; - margin: 10px; - text-align: justify; - } - - #element { - margin-top: 80px; - margin-left: 80px; - } - - #default { - margin-top: 15px; - } - - #default .row { - margin-right: 20px; - margin-left: 20px; - } \ No newline at end of file + } \ No newline at end of file diff --git a/ej2-javascript/code-snippet/tab/orientation-tab-cs1/js/index.html b/ej2-javascript/code-snippet/tab/orientation-tab-cs1/js/index.html index 8a75c412c..ce844d97a 100644 --- a/ej2-javascript/code-snippet/tab/orientation-tab-cs1/js/index.html +++ b/ej2-javascript/code-snippet/tab/orientation-tab-cs1/js/index.html @@ -7,9 +7,28 @@ + + diff --git a/ej2-javascript/code-snippet/tab/orientation-tab-cs1/ts/index.html b/ej2-javascript/code-snippet/tab/orientation-tab-cs1/ts/index.html index 945e6e84f..194e0cca9 100644 --- a/ej2-javascript/code-snippet/tab/orientation-tab-cs1/ts/index.html +++ b/ej2-javascript/code-snippet/tab/orientation-tab-cs1/ts/index.html @@ -12,6 +12,27 @@ + diff --git a/ej2-javascript/code-snippet/tab/swipemode-cs1/index.js b/ej2-javascript/code-snippet/tab/swipemode-cs1/index.js new file mode 100644 index 000000000..cf89530df --- /dev/null +++ b/ej2-javascript/code-snippet/tab/swipemode-cs1/index.js @@ -0,0 +1,33 @@ +var tabObj = new ej.navigations.Tab({ + items: [ + { + header: { 'text': 'Twitter' }, + content: 'Twitter is an online social networking service that enables users to send and read short 140-character ' + + 'messages called "tweets". Registered users can read and post tweets, but those who are unregistered can only read ' + + 'them. Users access Twitter through the website interface, SMS or mobile device app Twitter Inc. is based in San ' + + 'Francisco and has more than 25 offices around the world. Twitter was created in March 2006 by Jack Dorsey, ' + + 'Evan Williams, Biz Stone, and Noah Glass and launched in July 2006. The service rapidly gained worldwide popularity, ' + + 'with more than 100 million users posting 340 million tweets a day in 2012.The service also handled 1.6 billion ' + + 'search queries per day.' + }, + { + header: { 'text': 'Facebook' }, + content: 'Facebook is an online social networking service headquartered in Menlo Park, California. Its website was ' + + 'launched on February 4, 2004, by Mark Zuckerberg with his Harvard College roommates and fellow students Eduardo ' + + 'Saverin, Andrew McCollum, Dustin Moskovitz and Chris Hughes.The founders had initially limited the website\'\s ' + + 'membership to Harvard students, but later expanded it to colleges in the Boston area, the Ivy League, and Stanford ' + + 'University. It gradually added support for students at various other universities and later to high-school students.' + }, + { + header: { 'text': 'WhatsApp' }, + content: 'WhatsApp Messenger is a proprietary cross-platform instant messaging client for smartphones that operates ' + + 'under a subscription business model. It uses the Internet to send text messages, images, video, user location and ' + + 'audio media messages to other users using standard cellular mobile numbers. As of February 2016, WhatsApp had a user ' + + 'base of up to one billion,[10] making it the most globally popular messaging application. WhatsApp Inc., based in ' + + 'Mountain View, California, was acquired by Facebook Inc. on February 19, 2014, for approximately US$19.3 billion.' + } + ], + swipeMode: 'None' +}); +tabObj.appendTo('#tab'); + diff --git a/ej2-javascript/code-snippet/tab/swipemode-cs1/index.ts b/ej2-javascript/code-snippet/tab/swipemode-cs1/index.ts new file mode 100644 index 000000000..0501986b0 --- /dev/null +++ b/ej2-javascript/code-snippet/tab/swipemode-cs1/index.ts @@ -0,0 +1,37 @@ + +import { Tab } from '@syncfusion/ej2-navigations'; + +const tabObj: Tab = new Tab({ + items: [ + { + header: { 'text': 'Twitter' }, + content: 'Twitter is an online social networking service that enables users to send and read short 140-character ' + + 'messages called "tweets". Registered users can read and post tweets, but those who are unregistered can only read ' + + 'them. Users access Twitter through the website interface, SMS or mobile device app Twitter Inc. is based in San ' + + 'Francisco and has more than 25 offices around the world. Twitter was created in March 2006 by Jack Dorsey, ' + + 'Evan Williams, Biz Stone, and Noah Glass and launched in July 2006. The service rapidly gained worldwide popularity, ' + + 'with more than 100 million users posting 340 million tweets a day in 2012.The service also handled 1.6 billion ' + + 'search queries per day.' + }, + { + header: { 'text': 'Facebook' }, + content: 'Facebook is an online social networking service headquartered in Menlo Park, California. Its website was ' + + 'launched on February 4, 2004, by Mark Zuckerberg with his Harvard College roommates and fellow students Eduardo ' + + 'Saverin, Andrew McCollum, Dustin Moskovitz and Chris Hughes.The founders had initially limited the website\'\s ' + + 'membership to Harvard students, but later expanded it to colleges in the Boston area, the Ivy League, and Stanford ' + + 'University. It gradually added support for students at various other universities and later to high-school students.' + }, + { + header: { 'text': 'WhatsApp' }, + content: 'WhatsApp Messenger is a proprietary cross-platform instant messaging client for smartphones that operates ' + + 'under a subscription business model. It uses the Internet to send text messages, images, video, user location and ' + + 'audio media messages to other users using standard cellular mobile numbers. As of February 2016, WhatsApp had a user ' + + 'base of up to one billion,[10] making it the most globally popular messaging application. WhatsApp Inc., based in ' + + 'Mountain View, California, was acquired by Facebook Inc. on February 19, 2014, for approximately US$19.3 billion.' + } + ], + swipeMode: 'None' +}); +tabObj.appendTo("#tab"); + + diff --git a/ej2-javascript/code-snippet/tab/swipemode-cs1/js/index.html b/ej2-javascript/code-snippet/tab/swipemode-cs1/js/index.html new file mode 100644 index 000000000..274a0493d --- /dev/null +++ b/ej2-javascript/code-snippet/tab/swipemode-cs1/js/index.html @@ -0,0 +1,30 @@ + + Essential JS 2 Tab + + + + + + + + + + + + + +
    +
    +

    +
    +
    + + + + + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/tab/swipemode-cs1/systemjs.config.js b/ej2-javascript/code-snippet/tab/swipemode-cs1/systemjs.config.js new file mode 100644 index 000000000..853d2e38b --- /dev/null +++ b/ej2-javascript/code-snippet/tab/swipemode-cs1/systemjs.config.js @@ -0,0 +1,32 @@ +System.config({ + transpiler: "typescript", + typescriptOptions: { + compilerOptions: { + target: "umd", + module: "commonjs", + moduleResolution: "node", + emitDecoratorMetadata: true, + experimentalDecorators: true + } + }, + paths: { + "syncfusion:": "https://cdn.syncfusion.com/ej2/28.1.33/" + }, + map: { + main: "index.ts", + typescript: "https://unpkg.com/typescript@2.2.2/lib/typescript.js", + "@syncfusion/ej2-base": "syncfusion:ej2-base/dist/ej2-base.umd.min.js", + "@syncfusion/ej2-buttons": "syncfusion:ej2-buttons/dist/ej2-buttons.umd.min.js", + "@syncfusion/ej2-splitbuttons": "syncfusion:ej2-splitbuttons/dist/ej2-splitbuttons.umd.min.js", + "@syncfusion/ej2-popups": "syncfusion:ej2-popups/dist/ej2-popups.umd.min.js", + "@syncfusion/ej2-lists": "syncfusion:ej2-lists/dist/ej2-lists.umd.min.js", + "@syncfusion/ej2-inputs": "syncfusion:ej2-inputs/dist/ej2-inputs.umd.min.js", + "@syncfusion/ej2-data": "syncfusion:ej2-data/dist/ej2-data.umd.min.js", + "@syncfusion/ej2-navigations": "syncfusion:ej2-navigations/dist/ej2-navigations.umd.min.js" + } +}); + +System.import('index.ts').catch(console.error.bind(console)).then(function () { + document.getElementById('loader').style.display = "none"; + document.getElementById('container').style.visibility = "visible"; +}); \ No newline at end of file diff --git a/ej2-javascript/code-snippet/tab/swipemode-cs1/ts/index.html b/ej2-javascript/code-snippet/tab/swipemode-cs1/ts/index.html new file mode 100644 index 000000000..6e8d1a18a --- /dev/null +++ b/ej2-javascript/code-snippet/tab/swipemode-cs1/ts/index.html @@ -0,0 +1,25 @@ + + + + + Essential JS 2 Tab + + + + + + + + + + + +
    LOADING....
    +
    +
    +

    +
    +
    + + + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/tab/tab-ajax-cs1/js/index.html b/ej2-javascript/code-snippet/tab/tab-ajax-cs1/js/index.html index 694812090..723555d97 100644 --- a/ej2-javascript/code-snippet/tab/tab-ajax-cs1/js/index.html +++ b/ej2-javascript/code-snippet/tab/tab-ajax-cs1/js/index.html @@ -1,4 +1,7 @@ - + + + + Essential JS 2 Tab @@ -6,25 +9,30 @@ - - - + + -


    + + + - - - \ No newline at end of file + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/tab/tab-ajax-cs1/ts/index.html b/ej2-javascript/code-snippet/tab/tab-ajax-cs1/ts/index.html index 7593fc97d..170fd48f5 100644 --- a/ej2-javascript/code-snippet/tab/tab-ajax-cs1/ts/index.html +++ b/ej2-javascript/code-snippet/tab/tab-ajax-cs1/ts/index.html @@ -11,6 +11,13 @@ + diff --git a/ej2-javascript/code-snippet/tab/tab-animation-cs1/index.css b/ej2-javascript/code-snippet/tab/tab-animation-cs1/index.css index 6ca118674..817f6f7a0 100644 --- a/ej2-javascript/code-snippet/tab/tab-animation-cs1/index.css +++ b/ej2-javascript/code-snippet/tab/tab-animation-cs1/index.css @@ -9,39 +9,4 @@ position: absolute; top: 45%; width: 30%; -} - -.e-content .e-item { - font-size: 12px; - margin: 10px; - text-align: justify; -} -.container { - min-width: 350px; - max-width: 500px; - margin: 0 auto; -} - -@font-face { - font-family: 'Socialicons'; - src: url(data:application/x-font-ttf;charset=utf-8;base64,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) format('truetype'); - font-weight: normal; - font-style: normal; -} -.e-tab-icon { - font-family: 'Socialicons' !important; -} - -.e-icons.e-tab-icon { - position: relative; - top: 1px; -} -.e-twitter:before { - content: '\a701'; -} -.e-facebook:before { - content: '\a705'; -} -.e-whatsapp:before { - content: '\a700'; } \ No newline at end of file diff --git a/ej2-javascript/code-snippet/tab/tab-animation-cs1/js/index.html b/ej2-javascript/code-snippet/tab/tab-animation-cs1/js/index.html index a7af6cae4..12b0335bf 100644 --- a/ej2-javascript/code-snippet/tab/tab-animation-cs1/js/index.html +++ b/ej2-javascript/code-snippet/tab/tab-animation-cs1/js/index.html @@ -6,9 +6,20 @@ + + diff --git a/ej2-javascript/code-snippet/tab/tab-animation-cs1/ts/index.html b/ej2-javascript/code-snippet/tab/tab-animation-cs1/ts/index.html index a4366aa6f..683442e20 100644 --- a/ej2-javascript/code-snippet/tab/tab-animation-cs1/ts/index.html +++ b/ej2-javascript/code-snippet/tab/tab-animation-cs1/ts/index.html @@ -11,6 +11,19 @@ + diff --git a/ej2-javascript/code-snippet/tab/tab-cs1/index.css b/ej2-javascript/code-snippet/tab/tab-cs1/index.css index 70e1299ac..2bfd99f87 100644 --- a/ej2-javascript/code-snippet/tab/tab-cs1/index.css +++ b/ej2-javascript/code-snippet/tab/tab-cs1/index.css @@ -10,14 +10,3 @@ top: 45%; width: 30%; } - -.e-content .e-item { - font-size: 12px; - margin: 10px; - text-align: justify; -} -.container { - min-width: 350px; - max-width: 500px; - margin: 0 auto; -} diff --git a/ej2-javascript/code-snippet/tab/tab-cs1/js/index.html b/ej2-javascript/code-snippet/tab/tab-cs1/js/index.html index 694812090..59f08628f 100644 --- a/ej2-javascript/code-snippet/tab/tab-cs1/js/index.html +++ b/ej2-javascript/code-snippet/tab/tab-cs1/js/index.html @@ -6,9 +6,20 @@ + + diff --git a/ej2-javascript/code-snippet/tab/tab-cs1/ts/index.html b/ej2-javascript/code-snippet/tab/tab-cs1/ts/index.html index 7593fc97d..9c0b61af6 100644 --- a/ej2-javascript/code-snippet/tab/tab-cs1/ts/index.html +++ b/ej2-javascript/code-snippet/tab/tab-cs1/ts/index.html @@ -11,6 +11,19 @@ + diff --git a/ej2-javascript/code-snippet/tab/tab-cs2/datasource.ts b/ej2-javascript/code-snippet/tab/tab-cs2/datasource.ts deleted file mode 100644 index 427355881..000000000 --- a/ej2-javascript/code-snippet/tab/tab-cs2/datasource.ts +++ /dev/null @@ -1,71 +0,0 @@ -export let tab_items: Object[] = [ - { - header: { 'text': 'Twitter' }, - content: 'Twitter is an online social networking service that enables users to send and read short 140-character ' + - 'messages called "tweets". Registered users can read and post tweets, but those who are unregistered can only read ' + - 'them. Users access Twitter through the website interface, SMS or mobile device app Twitter Inc. is based in San ' + - 'Francisco and has more than 25 offices around the world. Twitter was created in March 2006 by Jack Dorsey, ' + - 'Evan Williams, Biz Stone, and Noah Glass and launched in July 2006. The service rapidly gained worldwide popularity, ' + - 'with more than 100 million users posting 340 million tweets a day in 2012.The service also handled 1.6 billion ' + - 'search queries per day.' - }, - { - header: { 'text': 'Facebook' }, - content: 'Facebook is an online social networking service headquartered in Menlo Park, California. Its website was ' + - 'launched on February 4, 2004, by Mark Zuckerberg with his Harvard College roommates and fellow students Eduardo ' + - 'Saverin, Andrew McCollum, Dustin Moskovitz and Chris Hughes.The founders had initially limited the website\'\s ' + - 'membership to Harvard students, but later expanded it to colleges in the Boston area, the Ivy League, and Stanford ' + - 'University. It gradually added support for students at various other universities and later to high-school students.' - }, - { - header: { 'text': 'WhatsApp' }, - content: 'WhatsApp Messenger is a proprietary cross-platform instant messaging client for smartphones that operates ' + - 'under a subscription business model. It uses the Internet to send text messages, images, video, user location and ' + - 'audio media messages to other users using standard cellular mobile numbers. As of February 2016, WhatsApp had a user ' + - 'base of up to one billion,[10] making it the most globally popular messaging application. WhatsApp Inc., based in ' + - 'Mountain View, California, was acquired by Facebook Inc. on February 19, 2014, for approximately US$19.3 billion.' - } -]; - -export let usa_cities: Object[] = [ - { - header: { 'text': 'New York' }, - content: 'New York City comprises 5 boroughs sitting where the Hudson River meets the Atlantic Ocean. At its core is Manhattan, a densely populated borough that’s among the world’s major commercial, financial and cultural centers. Its iconic sites include skyscrapers such as the Empire State Building and sprawling Central Park. Broadway theater is staged in neon-lit Times Square.' - }, - { - header: { 'text': 'Los Angeles' }, - content: 'Los Angeles is a sprawling Southern California city and the center of the nation’s film and television industry. Near its iconic Hollywood sign, studios such as Paramount Pictures, Universal and Warner Brothers offer behind-the-scenes tours. On Hollywood Boulevard, TCL Chinese Theatre displays celebrities’ hand- and footprints, the Walk of Fame honors thousands of luminaries and vendors sell maps to stars’ homes.' - }, - { - header: { 'text': 'Chicago' }, - content: 'Chicago, on Lake Michigan in Illinois, is among the largest cities in the U.S. Famed for its bold architecture, it has a skyline punctuated by skyscrapers such as the iconic John Hancock Center, 1,451-ft. Willis Tower (formerly the Sears Tower) and the neo-Gothic Tribune Tower. The city is also renowned for its museums, including the Art Institute of Chicago with its noted Impressionist and Post-Impressionist works.' - } -]; -export let france_cities: Object[] = [ - { - header: { 'text': 'Paris' }, - content: 'Paris, France capital, is a major European city and a global center for art, fashion, gastronomy and culture. Its 19th-century cityscape is crisscrossed by wide boulevards and the River Seine. Beyond such landmarks as the Eiffel Tower and the 12th-century, Gothic Notre-Dame cathedral, the city is known for its cafe culture and designer boutiques along the Rue du Faubourg Saint-Honoré.' - }, - { - header: { 'text': 'Marseille' }, - content: 'Marseille, a port city in southern France, has been a crossroads of immigration and trade since its founding by the Greeks circa 600 B.C. At its heart is the Vieux-Port (Old Port), where fishmongers sell their catch along the boat-lined quay. Basilique Notre-Dame-de-la-Garde is a Romanesque-Byzantine church. Modern landmarks include Le Corbusier’s influential Cité Radieuse complex and Zaha Hadid’s CMA CGM Tower.' - }, - { - header: { 'text': 'Lyon' }, - content: 'Lyon, the capital city in France’s Auvergne-Rhône-Alpes region, sits at the junction of the Rhône and Saône rivers. Its center reflects 2,000 years of history from the Roman Amphithéâtre des Trois Gaules, medieval and Renaissance architecture in Vieux (Old) Lyon, to the modern Confluence district on Presquîle peninsula. Traboules, covered passageways between buildings, connect Vieux Lyon and La Croix-Rousse hill.' - } -]; -export let australia_cities: Object[] = [ - { - header: { 'text': 'Sydney' }, - content: 'Sydney, capital of New South Wales and one of Australia largest cities, is best known for its harbourfront Sydney Opera House, with a distinctive sail-like design. Massive Darling Harbour and the smaller Circular Quay port are hubs of waterside life, with the arched Harbour Bridge and esteemed Royal Botanic Garden nearby. Sydney Tower’s outdoor platform, the Skywalk, offers 360-degree views of the city and suburbs.' - }, - { - header: { 'text': 'Melbourne' }, - content: 'Melbourne is the coastal capital of the southeastern Australian state of Victoria. At the city centre is the modern Federation Square development, with plazas, bars, and restaurants by the Yarra River. In the Southbank area, the Melbourne Arts Precinct is the site of Arts Centre Melbourne – a performing arts complex – and the National Gallery of Victoria, with Australian and indigenous art.' - }, - { - header: { 'text': 'Brisbane' }, - content: 'Brisbane, capital of Queensland, is a large city on the Brisbane River. Clustered in its South Bank cultural precinct are the Queensland Museum and Sciencentre, with noted interactive exhibitions. Another South Bank cultural institution is Queensland Gallery of Modern Art, among Australia major contemporary art museums. Looming over the city is Mt. Coot-tha, site of Brisbane Botanic Gardens.' - } -]; \ No newline at end of file diff --git a/ej2-javascript/code-snippet/tab/tab-cs2/index.css b/ej2-javascript/code-snippet/tab/tab-cs2/index.css index 70e1299ac..2bfd99f87 100644 --- a/ej2-javascript/code-snippet/tab/tab-cs2/index.css +++ b/ej2-javascript/code-snippet/tab/tab-cs2/index.css @@ -10,14 +10,3 @@ top: 45%; width: 30%; } - -.e-content .e-item { - font-size: 12px; - margin: 10px; - text-align: justify; -} -.container { - min-width: 350px; - max-width: 500px; - margin: 0 auto; -} diff --git a/ej2-javascript/code-snippet/tab/tab-cs2/js/index.html b/ej2-javascript/code-snippet/tab/tab-cs2/js/index.html index 694812090..59f08628f 100644 --- a/ej2-javascript/code-snippet/tab/tab-cs2/js/index.html +++ b/ej2-javascript/code-snippet/tab/tab-cs2/js/index.html @@ -6,9 +6,20 @@ + + diff --git a/ej2-javascript/code-snippet/tab/tab-cs2/ts/index.html b/ej2-javascript/code-snippet/tab/tab-cs2/ts/index.html index 7593fc97d..9c0b61af6 100644 --- a/ej2-javascript/code-snippet/tab/tab-cs2/ts/index.html +++ b/ej2-javascript/code-snippet/tab/tab-cs2/ts/index.html @@ -11,6 +11,19 @@ + diff --git a/ej2-javascript/code-snippet/tab/tab-cs4/index.css b/ej2-javascript/code-snippet/tab/tab-cs4/index.css index 70e1299ac..2bfd99f87 100644 --- a/ej2-javascript/code-snippet/tab/tab-cs4/index.css +++ b/ej2-javascript/code-snippet/tab/tab-cs4/index.css @@ -10,14 +10,3 @@ top: 45%; width: 30%; } - -.e-content .e-item { - font-size: 12px; - margin: 10px; - text-align: justify; -} -.container { - min-width: 350px; - max-width: 500px; - margin: 0 auto; -} diff --git a/ej2-javascript/code-snippet/tab/tab-cs4/js/index.html b/ej2-javascript/code-snippet/tab/tab-cs4/js/index.html index 694812090..d3eae38eb 100644 --- a/ej2-javascript/code-snippet/tab/tab-cs4/js/index.html +++ b/ej2-javascript/code-snippet/tab/tab-cs4/js/index.html @@ -5,10 +5,22 @@ - - + + + + diff --git a/ej2-javascript/code-snippet/tab/tab-cs4/ts/index.html b/ej2-javascript/code-snippet/tab/tab-cs4/ts/index.html index 7593fc97d..5c5480e66 100644 --- a/ej2-javascript/code-snippet/tab/tab-cs4/ts/index.html +++ b/ej2-javascript/code-snippet/tab/tab-cs4/ts/index.html @@ -11,6 +11,20 @@ + + diff --git a/ej2-javascript/code-snippet/tab/tab-persistence-cs1/index.css b/ej2-javascript/code-snippet/tab/tab-persistence-cs1/index.css index 70e1299ac..2bfd99f87 100644 --- a/ej2-javascript/code-snippet/tab/tab-persistence-cs1/index.css +++ b/ej2-javascript/code-snippet/tab/tab-persistence-cs1/index.css @@ -10,14 +10,3 @@ top: 45%; width: 30%; } - -.e-content .e-item { - font-size: 12px; - margin: 10px; - text-align: justify; -} -.container { - min-width: 350px; - max-width: 500px; - margin: 0 auto; -} diff --git a/ej2-javascript/code-snippet/tab/tab-persistence-cs1/js/index.html b/ej2-javascript/code-snippet/tab/tab-persistence-cs1/js/index.html index 694812090..59f08628f 100644 --- a/ej2-javascript/code-snippet/tab/tab-persistence-cs1/js/index.html +++ b/ej2-javascript/code-snippet/tab/tab-persistence-cs1/js/index.html @@ -6,9 +6,20 @@ + + diff --git a/ej2-javascript/code-snippet/tab/tab-persistence-cs1/ts/index.html b/ej2-javascript/code-snippet/tab/tab-persistence-cs1/ts/index.html index 7593fc97d..9c0b61af6 100644 --- a/ej2-javascript/code-snippet/tab/tab-persistence-cs1/ts/index.html +++ b/ej2-javascript/code-snippet/tab/tab-persistence-cs1/ts/index.html @@ -11,6 +11,19 @@ + diff --git a/ej2-javascript/code-snippet/tab/tab-scrollstep-cs1/index.js b/ej2-javascript/code-snippet/tab/tab-scrollstep-cs1/index.js index 60cbd8773..fa191489b 100644 --- a/ej2-javascript/code-snippet/tab/tab-scrollstep-cs1/index.js +++ b/ej2-javascript/code-snippet/tab/tab-scrollstep-cs1/index.js @@ -2,6 +2,7 @@ ej.base.enableRipple(true); //Initialize Tab component var tabObj = new ej.navigations.Tab({ + width: 500, scrollStep: 50, items: [ { diff --git a/ej2-javascript/code-snippet/tab/tab-scrollstep-cs1/index.ts b/ej2-javascript/code-snippet/tab/tab-scrollstep-cs1/index.ts index 5bae52059..dc89ae3c2 100644 --- a/ej2-javascript/code-snippet/tab/tab-scrollstep-cs1/index.ts +++ b/ej2-javascript/code-snippet/tab/tab-scrollstep-cs1/index.ts @@ -4,6 +4,7 @@ import { Tab } from '@syncfusion/ej2-navigations'; let tabObj: Tab = new Tab({ + width: 500, scrollStep: 50, items: [ { diff --git a/ej2-javascript/code-snippet/tab/tab-selection-cs1/index.css b/ej2-javascript/code-snippet/tab/tab-selection-cs1/index.css index c7e8483ae..817f6f7a0 100644 --- a/ej2-javascript/code-snippet/tab/tab-selection-cs1/index.css +++ b/ej2-javascript/code-snippet/tab/tab-selection-cs1/index.css @@ -9,8 +9,4 @@ position: absolute; top: 45%; width: 30%; -} - -#EventLog b { - color: #388e3c; } \ No newline at end of file diff --git a/ej2-javascript/code-snippet/tab/tab-selection-cs1/js/index.html b/ej2-javascript/code-snippet/tab/tab-selection-cs1/js/index.html index 447bead88..b55b3a2d7 100644 --- a/ej2-javascript/code-snippet/tab/tab-selection-cs1/js/index.html +++ b/ej2-javascript/code-snippet/tab/tab-selection-cs1/js/index.html @@ -1,4 +1,7 @@ - + + + + Essential JS 2 Tab @@ -7,29 +10,23 @@ - - - + -
    -
    -
    -
    + + + - - - - \ No newline at end of file + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/tab/tab-selection-cs1/ts/index.html b/ej2-javascript/code-snippet/tab/tab-selection-cs1/ts/index.html index 86692a894..4bddfecf8 100644 --- a/ej2-javascript/code-snippet/tab/tab-selection-cs1/ts/index.html +++ b/ej2-javascript/code-snippet/tab/tab-selection-cs1/ts/index.html @@ -18,11 +18,8 @@
    LOADING....
    -
    -
    -
    diff --git a/ej2-javascript/code-snippet/tab/tab-selection-cs2/index.css b/ej2-javascript/code-snippet/tab/tab-selection-cs2/index.css index c7e8483ae..817f6f7a0 100644 --- a/ej2-javascript/code-snippet/tab/tab-selection-cs2/index.css +++ b/ej2-javascript/code-snippet/tab/tab-selection-cs2/index.css @@ -9,8 +9,4 @@ position: absolute; top: 45%; width: 30%; -} - -#EventLog b { - color: #388e3c; } \ No newline at end of file diff --git a/ej2-javascript/code-snippet/tab/tab-selection-cs2/js/index.html b/ej2-javascript/code-snippet/tab/tab-selection-cs2/js/index.html index 447bead88..1d8197d0d 100644 --- a/ej2-javascript/code-snippet/tab/tab-selection-cs2/js/index.html +++ b/ej2-javascript/code-snippet/tab/tab-selection-cs2/js/index.html @@ -7,9 +7,12 @@ - - - + + diff --git a/ej2-javascript/code-snippet/tab/tab-selection-cs2/ts/index.html b/ej2-javascript/code-snippet/tab/tab-selection-cs2/ts/index.html index 86692a894..52305488e 100644 --- a/ej2-javascript/code-snippet/tab/tab-selection-cs2/ts/index.html +++ b/ej2-javascript/code-snippet/tab/tab-selection-cs2/ts/index.html @@ -12,6 +12,11 @@ + diff --git a/ej2-javascript/code-snippet/tab/tab-style-cs1/index.css b/ej2-javascript/code-snippet/tab/tab-style-cs1/index.css index ee9cd852f..2bfd99f87 100644 --- a/ej2-javascript/code-snippet/tab/tab-style-cs1/index.css +++ b/ej2-javascript/code-snippet/tab/tab-style-cs1/index.css @@ -10,8 +10,3 @@ top: 45%; width: 30%; } -.e-content .e-item { - font-size: 12px; - margin: 10px; - text-align: justify; -} diff --git a/ej2-javascript/code-snippet/tab/tab-style-cs1/js/index.html b/ej2-javascript/code-snippet/tab/tab-style-cs1/js/index.html index 975fd9e02..bec8711e5 100644 --- a/ej2-javascript/code-snippet/tab/tab-style-cs1/js/index.html +++ b/ej2-javascript/code-snippet/tab/tab-style-cs1/js/index.html @@ -7,9 +7,14 @@ - - - + + diff --git a/ej2-javascript/code-snippet/tab/tab-style-cs1/ts/index.html b/ej2-javascript/code-snippet/tab/tab-style-cs1/ts/index.html index 764543bea..7bdc7799f 100644 --- a/ej2-javascript/code-snippet/tab/tab-style-cs1/ts/index.html +++ b/ej2-javascript/code-snippet/tab/tab-style-cs1/ts/index.html @@ -12,6 +12,13 @@ + diff --git a/ej2-javascript/code-snippet/tab/tab-template-cs1/index.css b/ej2-javascript/code-snippet/tab/tab-template-cs1/index.css index 9005d34b5..817f6f7a0 100644 --- a/ej2-javascript/code-snippet/tab/tab-template-cs1/index.css +++ b/ej2-javascript/code-snippet/tab/tab-template-cs1/index.css @@ -9,31 +9,4 @@ position: absolute; top: 45%; width: 30%; -} -.e-content .e-item { - font-size: 12px; - margin: 10px; - text-align: justify; -} -.container { - min-width: 350px; - max-width: 500px; - margin: 0 auto; -} -.e-tab .e-tab-icon { - font-family: 'e-icons-sample'; - color: #6d6d6d; -} -.e-tab .e-tab-icon { - position: relative; - top: 2px; -} -.e-twitter:before { - content: '\e700'; -} -.e-facebook:before { - content: '\e70a'; -} -.e-whatsapp:before { - content: '\e704'; -} +} \ No newline at end of file diff --git a/ej2-javascript/code-snippet/tab/tab-template-cs1/js/index.html b/ej2-javascript/code-snippet/tab/tab-template-cs1/js/index.html index edde37eaf..d4a65456c 100644 --- a/ej2-javascript/code-snippet/tab/tab-template-cs1/js/index.html +++ b/ej2-javascript/code-snippet/tab/tab-template-cs1/js/index.html @@ -5,10 +5,21 @@ - + + + diff --git a/ej2-javascript/code-snippet/tab/tab-template-cs1/ts/index.html b/ej2-javascript/code-snippet/tab/tab-template-cs1/ts/index.html index cb783415b..99b2df828 100644 --- a/ej2-javascript/code-snippet/tab/tab-template-cs1/ts/index.html +++ b/ej2-javascript/code-snippet/tab/tab-template-cs1/ts/index.html @@ -11,6 +11,19 @@ + diff --git a/ej2-javascript/code-snippet/textbox/autoresize-cs1/index.css b/ej2-javascript/code-snippet/textbox/autoresize-cs1/index.css index a6fc2fc6c..e0d01c5d4 100644 --- a/ej2-javascript/code-snippet/textbox/autoresize-cs1/index.css +++ b/ej2-javascript/code-snippet/textbox/autoresize-cs1/index.css @@ -1,4 +1,4 @@ -.multiline{ +.multiline { margin: 30px auto; width: 30%; } diff --git a/ej2-javascript/code-snippet/textbox/count-cs1/index.css b/ej2-javascript/code-snippet/textbox/count-cs1/index.css index 41fe39e75..27d548683 100644 --- a/ej2-javascript/code-snippet/textbox/count-cs1/index.css +++ b/ej2-javascript/code-snippet/textbox/count-cs1/index.css @@ -1,4 +1,4 @@ -.multiline{ +.multiline { margin: 30px auto; width: 30%; } @@ -13,6 +13,6 @@ width: 30%; } -#numbercount{ +#numbercount { margin-left: 170px; } \ No newline at end of file diff --git a/ej2-javascript/code-snippet/textbox/disable-cs1/index.css b/ej2-javascript/code-snippet/textbox/disable-cs1/index.css index 7be2202f3..28be2077d 100644 --- a/ej2-javascript/code-snippet/textbox/disable-cs1/index.css +++ b/ej2-javascript/code-snippet/textbox/disable-cs1/index.css @@ -1,4 +1,4 @@ -.multiline{ +.multiline { margin: 30px auto; width: 30%; } diff --git a/ej2-javascript/code-snippet/textbox/filled-outlined-cs1/index.css b/ej2-javascript/code-snippet/textbox/filled-outlined-cs1/index.css index 4de264158..665f4f07e 100644 --- a/ej2-javascript/code-snippet/textbox/filled-outlined-cs1/index.css +++ b/ej2-javascript/code-snippet/textbox/filled-outlined-cs1/index.css @@ -1,4 +1,4 @@ -.multiline{ +.multiline { margin: 30px auto; width: 30%; } diff --git a/ej2-javascript/code-snippet/textbox/float-cs1/index.css b/ej2-javascript/code-snippet/textbox/float-cs1/index.css index 9e781f9ce..85e8d6cff 100644 --- a/ej2-javascript/code-snippet/textbox/float-cs1/index.css +++ b/ej2-javascript/code-snippet/textbox/float-cs1/index.css @@ -1,4 +1,4 @@ -.multiline{ +.multiline { margin: 10px auto; width: 30%; } diff --git a/ej2-javascript/code-snippet/textbox/floating-label-02-cs1/index.js b/ej2-javascript/code-snippet/textbox/floating-label-02-cs1/index.js index d7cacb96f..8ed69ce40 100644 --- a/ej2-javascript/code-snippet/textbox/floating-label-02-cs1/index.js +++ b/ej2-javascript/code-snippet/textbox/floating-label-02-cs1/index.js @@ -1,37 +1,7 @@ ej.base.enableRipple(true); -/* To get the Input element */ -var inputElement = document.getElementById('inpt1'); - -/* Update the label position based on Input value */ -updateLabelState(inputElement.value, inputElement.parentElement.querySelector('.e-float-text')); - -inputElement.addEventListener("focus", function () { - var label = this.parentElement.querySelector('.e-float-text'); - label.classList.add('e-label-bottom'); - label.classList.remove('e-label-top'); -}); - -inputElement.addEventListener("blur", function () { - updateLabelState(this.value, this.parentElement.querySelector('.e-float-text')); -}); - -inputElement.addEventListener("input", function () { - updateLabelState(this.value, this.parentElement.querySelector('.e-float-text')); -}); - -/* Update the label position based on Input value */ - - /* e-label-top - Floats the label above of the TextBox */ - /* e-label-bottom - Label to be placed as placeholder for the TextBox */ - -function updateLabelState(value,label) { - if (value) { - label.classList.add('e-label-top'); - label.classList.remove('e-label-bottom'); - } else { - label.classList.add('e-label-bottom'); - label.classList.remove('e-label-top'); - } -} - +var inputObj = new ej.inputs.TextBox({ + placeholder: 'Enter the name', + floatLabelType: 'Auto', + }); + inputObj.appendTo('#input1'); \ No newline at end of file diff --git a/ej2-javascript/code-snippet/textbox/floating-label-02-cs1/index.ts b/ej2-javascript/code-snippet/textbox/floating-label-02-cs1/index.ts index 6f6fe3dca..327c43ce9 100644 --- a/ej2-javascript/code-snippet/textbox/floating-label-02-cs1/index.ts +++ b/ej2-javascript/code-snippet/textbox/floating-label-02-cs1/index.ts @@ -1,40 +1,7 @@ +import {TextBox } from '@syncfusion/ej2-inputs'; - - -/* To get the Input element */ -let inputElement = document.getElementById('inpt1'); - -/* Update the label position based on Input value */ -updateLabelState(inputElement.value, inputElement.parentElement.querySelector('.e-float-text')); - -inputElement.addEventListener("focus", function () { - let label = this.parentElement.querySelector('.e-float-text'); - label.classList.add('e-label-bottom'); - label.classList.remove('e-label-top'); -}); - -inputElement.addEventListener("blur", function () { - updateLabelState(this.value, this.parentElement.querySelector('.e-float-text')); -}); - -inputElement.addEventListener("input", function () { - updateLabelState(this.value, this.parentElement.querySelector('.e-float-text')); -}); - -/* Update the label position based on Input value */ - - /* e-label-top - Floats the label above of the TextBox */ - /* e-label-bottom - Label to be placed as placeholder for the TextBox */ - -function updateLabelState(value,label) { - if (value) { - label.classList.add('e-label-top'); - label.classList.remove('e-label-bottom'); - } else { - label.classList.add('e-label-bottom'); - label.classList.remove('e-label-top'); - } -} - - - +let inputObj: TextBox = new TextBox({ + placeholder: 'Enter the name', + floatLabelType: 'Auto', + }); + inputObj.appendTo('#input1'); \ No newline at end of file diff --git a/ej2-javascript/code-snippet/textbox/floating-label-02-cs1/js/index.html b/ej2-javascript/code-snippet/textbox/floating-label-02-cs1/js/index.html index 18ad92a36..5b1423057 100644 --- a/ej2-javascript/code-snippet/textbox/floating-label-02-cs1/js/index.html +++ b/ej2-javascript/code-snippet/textbox/floating-label-02-cs1/js/index.html @@ -18,9 +18,7 @@

    Floating label without required attribute

    - - - +
    diff --git a/ej2-javascript/code-snippet/textbox/floating-label-02-cs1/ts/index.html b/ej2-javascript/code-snippet/textbox/floating-label-02-cs1/ts/index.html index c78a6a7fc..70b29c5af 100644 --- a/ej2-javascript/code-snippet/textbox/floating-label-02-cs1/ts/index.html +++ b/ej2-javascript/code-snippet/textbox/floating-label-02-cs1/ts/index.html @@ -19,10 +19,8 @@

    Floating label without required attribute

    -
    - - - +
    +
    diff --git a/ej2-javascript/code-snippet/textbox/getting-started-html-cs1/index.js b/ej2-javascript/code-snippet/textbox/getting-started-html-cs1/index.js index 35e140d00..56f19bd67 100644 --- a/ej2-javascript/code-snippet/textbox/getting-started-html-cs1/index.js +++ b/ej2-javascript/code-snippet/textbox/getting-started-html-cs1/index.js @@ -1,28 +1,8 @@ ej.base.enableRipple(true); -// To get the all input fields and its container. - -var inputElement = document.querySelectorAll('.e-input-group .e-input,.e-float-input.e-input-group input'); - -// Add 'e-input-focus' class to the input for achive ripple effect when focus on the input field. - -for (var i = 0; i < inputElement.length; i++) { - inputElement[i].addEventListener('focus', function () { - var parentElement = this.parentNode; - if (parentElement.classList.contains('e-input-in-wrap')) { - parentElement.parentNode.classList.add('e-input-focus'); - } else { - this.parentNode.classList.add('e-input-focus'); - } - }); - inputElement[i].addEventListener('blur', function () { - var parentElement = this.parentNode; - if (parentElement.classList.contains('e-input-in-wrap')) { - parentElement.parentNode.classList.remove('e-input-focus'); - } else { - this.parentNode.classList.remove('e-input-focus'); - } - }); -} - - +var textBoxObj = new ej.inputs.TextBox({ + placeholder: 'Enter address', + multiline: true, + }); + textBoxObj.appendTo('#input1'); + diff --git a/ej2-javascript/code-snippet/textbox/getting-started-html-cs1/index.ts b/ej2-javascript/code-snippet/textbox/getting-started-html-cs1/index.ts index 4ace20788..0263661f8 100644 --- a/ej2-javascript/code-snippet/textbox/getting-started-html-cs1/index.ts +++ b/ej2-javascript/code-snippet/textbox/getting-started-html-cs1/index.ts @@ -1,25 +1,8 @@ +import { TextBox } from '@syncfusion/ej2-inputs'; -// To get the all input fields and its container. -let inputElement = document.querySelectorAll('.e-input-group .e-input,.e-float-input.e-input-group input'); - -// Add 'e-input-focus' class to the input for achive ripple effect when focus on the input field. - -for (let i = 0; i < inputElement.length; i++) { - inputElement[i].addEventListener('focus', () => { - let parentElement = this.parentNode; - if (parentElement.classList.contains('e-input-in-wrap')) { - parentElement.parentNode.classList.add('e-input-focus'); - } else { - this.parentNode.classList.add('e-input-focus'); - } - }); - inputElement[i].addEventListener('blur', () => { - let parentElement = this.parentNode; - if (parentElement.classList.contains('e-input-in-wrap')) { - parentElement.parentNode.classList.remove('e-input-focus'); - } else { - this.parentNode.classList.remove('e-input-focus'); - } - }); -} \ No newline at end of file +let textBoxObj: TextBox = new TextBox({ + placeholder: 'Enter address', + multiline: true, +}); +textBoxObj.appendTo('#input1'); diff --git a/ej2-javascript/code-snippet/textbox/getting-started-html-cs1/ts/index.html b/ej2-javascript/code-snippet/textbox/getting-started-html-cs1/ts/index.html index 86cae0f81..db16700a7 100644 --- a/ej2-javascript/code-snippet/textbox/getting-started-html-cs1/ts/index.html +++ b/ej2-javascript/code-snippet/textbox/getting-started-html-cs1/ts/index.html @@ -17,22 +17,7 @@
    Loading....
    -
    - - - - - -
    - - - -
    - - - - -
    +
    > diff --git a/ej2-javascript/code-snippet/textbox/getting-started-html-cs2/index.css b/ej2-javascript/code-snippet/textbox/getting-started-html-cs2/index.css index 3f9c95da4..e8c1d2487 100644 --- a/ej2-javascript/code-snippet/textbox/getting-started-html-cs2/index.css +++ b/ej2-javascript/code-snippet/textbox/getting-started-html-cs2/index.css @@ -19,7 +19,3 @@ padding: 20px 10px; width: 260px; } - -#input-container .e-float-input { /* csslint allow: adjoining-classes */ - margin: 30px 0; -} diff --git a/ej2-javascript/code-snippet/textbox/getting-started-html-cs2/index.js b/ej2-javascript/code-snippet/textbox/getting-started-html-cs2/index.js index 35e140d00..198a403e8 100644 --- a/ej2-javascript/code-snippet/textbox/getting-started-html-cs2/index.js +++ b/ej2-javascript/code-snippet/textbox/getting-started-html-cs2/index.js @@ -1,28 +1,9 @@ ej.base.enableRipple(true); -// To get the all input fields and its container. - -var inputElement = document.querySelectorAll('.e-input-group .e-input,.e-float-input.e-input-group input'); - -// Add 'e-input-focus' class to the input for achive ripple effect when focus on the input field. - -for (var i = 0; i < inputElement.length; i++) { - inputElement[i].addEventListener('focus', function () { - var parentElement = this.parentNode; - if (parentElement.classList.contains('e-input-in-wrap')) { - parentElement.parentNode.classList.add('e-input-focus'); - } else { - this.parentNode.classList.add('e-input-focus'); - } - }); - inputElement[i].addEventListener('blur', function () { - var parentElement = this.parentNode; - if (parentElement.classList.contains('e-input-in-wrap')) { - parentElement.parentNode.classList.remove('e-input-focus'); - } else { - this.parentNode.classList.remove('e-input-focus'); - } - }); -} +var disableTextBox = new ej.inputs.TextBox({ + placeholder: 'Input with warning', + enabled: false, + }); + disableTextBox.appendTo('#disable'); diff --git a/ej2-javascript/code-snippet/textbox/getting-started-html-cs2/index.ts b/ej2-javascript/code-snippet/textbox/getting-started-html-cs2/index.ts index 2606a6de0..59ed61fff 100644 --- a/ej2-javascript/code-snippet/textbox/getting-started-html-cs2/index.ts +++ b/ej2-javascript/code-snippet/textbox/getting-started-html-cs2/index.ts @@ -1,28 +1,8 @@ - -// To get the all input fields and its container. - -let inputElement = document.querySelectorAll('.e-input-group .e-input,.e-float-input.e-input-group input'); - -// Add 'e-input-focus' class to the input for achive ripple effect when focus on the input field. - -for (let i = 0; i < inputElement.length; i++) { - inputElement[i].addEventListener('focus', () => { - let parentElement = this.parentNode; - if (parentElement.classList.contains('e-input-in-wrap')) { - parentElement.parentNode.classList.add('e-input-focus'); - } else { - this.parentNode.classList.add('e-input-focus'); - } - }); - inputElement[i].addEventListener('blur', () => { - let parentElement = this.parentNode; - if (parentElement.classList.contains('e-input-in-wrap')) { - parentElement.parentNode.classList.remove('e-input-focus'); - } else { - this.parentNode.classList.remove('e-input-focus'); - } - }); -} - +import { TextBox } from '@syncfusion/ej2-inputs'; +let disableTextBox: TextBox = new TextBox({ + placeholder: 'Input with warning', + enabled: false, +}); +disableTextBox.appendTo('#disable'); \ No newline at end of file diff --git a/ej2-javascript/code-snippet/textbox/getting-started-html-cs2/js/index.html b/ej2-javascript/code-snippet/textbox/getting-started-html-cs2/js/index.html index 588e6a39a..fd7f6d3b1 100644 --- a/ej2-javascript/code-snippet/textbox/getting-started-html-cs2/js/index.html +++ b/ej2-javascript/code-snippet/textbox/getting-started-html-cs2/js/index.html @@ -19,18 +19,9 @@
    - - - - -
    - - - -
    - - - +
    + +
    diff --git a/ej2-javascript/code-snippet/textbox/getting-started-html-cs2/ts/index.html b/ej2-javascript/code-snippet/textbox/getting-started-html-cs2/ts/index.html index 53028332a..4f80f6844 100644 --- a/ej2-javascript/code-snippet/textbox/getting-started-html-cs2/ts/index.html +++ b/ej2-javascript/code-snippet/textbox/getting-started-html-cs2/ts/index.html @@ -19,18 +19,9 @@
    - - - - -
    - - - -
    - - - +
    + +
    diff --git a/ej2-javascript/code-snippet/textbox/getting-started-html-cs3/index.css b/ej2-javascript/code-snippet/textbox/getting-started-html-cs3/index.css index 3f9c95da4..808aed333 100644 --- a/ej2-javascript/code-snippet/textbox/getting-started-html-cs3/index.css +++ b/ej2-javascript/code-snippet/textbox/getting-started-html-cs3/index.css @@ -20,6 +20,3 @@ width: 260px; } -#input-container .e-float-input { /* csslint allow: adjoining-classes */ - margin: 30px 0; -} diff --git a/ej2-javascript/code-snippet/textbox/getting-started-html-cs3/index.js b/ej2-javascript/code-snippet/textbox/getting-started-html-cs3/index.js index 35e140d00..7e441341b 100644 --- a/ej2-javascript/code-snippet/textbox/getting-started-html-cs3/index.js +++ b/ej2-javascript/code-snippet/textbox/getting-started-html-cs3/index.js @@ -1,28 +1,9 @@ ej.base.enableRipple(true); -// To get the all input fields and its container. - -var inputElement = document.querySelectorAll('.e-input-group .e-input,.e-float-input.e-input-group input'); - -// Add 'e-input-focus' class to the input for achive ripple effect when focus on the input field. - -for (var i = 0; i < inputElement.length; i++) { - inputElement[i].addEventListener('focus', function () { - var parentElement = this.parentNode; - if (parentElement.classList.contains('e-input-in-wrap')) { - parentElement.parentNode.classList.add('e-input-focus'); - } else { - this.parentNode.classList.add('e-input-focus'); - } - }); - inputElement[i].addEventListener('blur', function () { - var parentElement = this.parentNode; - if (parentElement.classList.contains('e-input-in-wrap')) { - parentElement.parentNode.classList.remove('e-input-focus'); - } else { - this.parentNode.classList.remove('e-input-focus'); - } - }); -} +var readonlyTextBox = new ej.inputs.TextBox({ + placeholder: 'Input with warning', + readonly: true, + }); + readonlyTextBox.appendTo('#readonly'); diff --git a/ej2-javascript/code-snippet/textbox/getting-started-html-cs3/index.ts b/ej2-javascript/code-snippet/textbox/getting-started-html-cs3/index.ts index 4ace20788..3371cb41c 100644 --- a/ej2-javascript/code-snippet/textbox/getting-started-html-cs3/index.ts +++ b/ej2-javascript/code-snippet/textbox/getting-started-html-cs3/index.ts @@ -1,25 +1,8 @@ +import { TextBox } from '@syncfusion/ej2-inputs'; -// To get the all input fields and its container. -let inputElement = document.querySelectorAll('.e-input-group .e-input,.e-float-input.e-input-group input'); - -// Add 'e-input-focus' class to the input for achive ripple effect when focus on the input field. - -for (let i = 0; i < inputElement.length; i++) { - inputElement[i].addEventListener('focus', () => { - let parentElement = this.parentNode; - if (parentElement.classList.contains('e-input-in-wrap')) { - parentElement.parentNode.classList.add('e-input-focus'); - } else { - this.parentNode.classList.add('e-input-focus'); - } - }); - inputElement[i].addEventListener('blur', () => { - let parentElement = this.parentNode; - if (parentElement.classList.contains('e-input-in-wrap')) { - parentElement.parentNode.classList.remove('e-input-focus'); - } else { - this.parentNode.classList.remove('e-input-focus'); - } - }); -} \ No newline at end of file +let readonlyTextBox: TextBox = new TextBox({ + placeholder: 'Input with warning', + readonly: true, +}); +readonlyTextBox.appendTo('#readonly'); \ No newline at end of file diff --git a/ej2-javascript/code-snippet/textbox/getting-started-html-cs3/js/index.html b/ej2-javascript/code-snippet/textbox/getting-started-html-cs3/js/index.html index aa266db30..0150bdfb9 100644 --- a/ej2-javascript/code-snippet/textbox/getting-started-html-cs3/js/index.html +++ b/ej2-javascript/code-snippet/textbox/getting-started-html-cs3/js/index.html @@ -19,18 +19,9 @@
    - - - - -
    - - - -
    - - - +
    + +
    diff --git a/ej2-javascript/code-snippet/textbox/getting-started-html-cs3/ts/index.html b/ej2-javascript/code-snippet/textbox/getting-started-html-cs3/ts/index.html index 2d3619e1f..a370f79c8 100644 --- a/ej2-javascript/code-snippet/textbox/getting-started-html-cs3/ts/index.html +++ b/ej2-javascript/code-snippet/textbox/getting-started-html-cs3/ts/index.html @@ -19,18 +19,9 @@
    - - - - -
    - - - -
    - - - +
    + +
    diff --git a/ej2-javascript/code-snippet/textbox/icon-floating-cs1/index.css b/ej2-javascript/code-snippet/textbox/icon-floating-cs1/index.css index 76389bba8..f7554ede2 100644 --- a/ej2-javascript/code-snippet/textbox/icon-floating-cs1/index.css +++ b/ej2-javascript/code-snippet/textbox/icon-floating-cs1/index.css @@ -20,62 +20,6 @@ width: 340px; } -.e-input-group-icon:before { - font-family: e-icons; -} - -.e-input-group .e-input-group-icon.e-input-popup-date { /* csslint allow: adjoining-classes */ - font-size:16px; -} - -.e-input-group.e-small .e-input-group-icon.e-input-popup-date { /* csslint allow: adjoining-classes */ - font-size:14px; -} - -.e-input-group-icon.e-input-popup-date:before { /* csslint allow: adjoining-classes */ - content: ""; -} - -.e-input-group-icon.e-input-up:before { /* csslint allow: adjoining-classes */ - content: '\e85e'; -} - -.e-input-group-icon.e-input-down:before { /* csslint allow: adjoining-classes */ - content: ""; -} - -.e-input-group-icon.e-input-plus:before { /* csslint allow: adjoining-classes */ - content: '\e7ba'; -} - -.e-input-group-icon.e-input-minus:before { /* csslint allow: adjoining-classes */ - content: '\e814'; -} - -.e-input-group-icon.e-input-date:before { /* csslint allow: adjoining-classes */ - content: ""; -} - -.e-input-group-icon.e-input-left:before { /* csslint allow: adjoining-classes */ - content: '\e904'; -} - -.e-input-group-icon.e-input-right:before { /* csslint allow: adjoining-classes */ - content: '\e913'; -} - -.e-input-group-icon.e-input-reload:before { /* csslint allow: adjoining-classes */ - content: '\e837'; -} - -.e-input-group-icon.e-input-search:before { /* csslint allow: adjoining-classes */ - content: '\e806'; -} - -#input-container .e-input-group { /* csslint allow: adjoining-classes */ - margin: 30px 0; -} - -#input-container .e-float-input { /* csslint allow: adjoining-classes */ - margin: 30px 0; -} +.e-chevron-down-fill:before { + content: '\e70d'; +} \ No newline at end of file diff --git a/ej2-javascript/code-snippet/textbox/icon-floating-cs1/index.js b/ej2-javascript/code-snippet/textbox/icon-floating-cs1/index.js index 6bdc5cad0..b27592bee 100644 --- a/ej2-javascript/code-snippet/textbox/icon-floating-cs1/index.js +++ b/ej2-javascript/code-snippet/textbox/icon-floating-cs1/index.js @@ -1,43 +1,59 @@ -ej.base.enableRipple(true); - -// To get the all input fields and its container. - -var inputElement = document.querySelectorAll('.e-input-group .e-input,.e-float-input.e-input-group input'); - -// Add 'e-input-focus' class to the input for achive ripple effect when focus on the input field. - -for (var i = 0; i < inputElement.length; i++) { - inputElement[i].addEventListener("focus", function () { - var parentElement = this.parentNode; - if (parentElement.classList.contains('e-input-in-wrap')) { - parentElement.parentNode.classList.add('e-input-focus'); - } else { - this.parentNode.classList.add('e-input-focus'); - } - }); - inputElement[i].addEventListener("blur", function () { - var parentElement = this.parentNode; - if (parentElement.classList.contains('e-input-in-wrap')) { - parentElement.parentNode.classList.remove('e-input-focus'); - } else { - this.parentNode.classList.remove('e-input-focus'); - } - }); -} - -// Add 'e-input-btn-ripple' class to the icon element for achive ripple effect when click on the icon. - -var inputIcon = document.querySelectorAll('.e-input-group-icon'); -for (var i = 0; i < inputIcon.length; i++) { - inputIcon[i].addEventListener('mousedown', function () { - this.classList.add('e-input-btn-ripple'); - }); - inputIcon[i].addEventListener('mouseup', function () { - var element = this; - setTimeout(function () { - element.classList.remove('e-input-btn-ripple'); - }, 500); - }); -} +// First TextBox without an icon +let textIconAppend = new ej.inputs.TextBox({ + placeholder: 'Enter Date', + created: () => { + textIconAppend.addIcon('append', 'e-date-icon'); + }, + }); + textIconAppend.appendTo('#textIconAppend'); + + // Second TextBox with an icon + let textIconPrepend = new ej.inputs.TextBox({ + placeholder: 'Enter Date', + created: () => { + textIconPrepend.addIcon('prepend', 'e-date-icon'); + }, + }); + textIconPrepend.appendTo('#textIconPrepend'); + + let textIconAppendPrepend = new ej.inputs.TextBox({ + placeholder: 'Enter Date', + created: () => { + textIconAppendPrepend.addIcon('prepend', 'e-date-icon'); + textIconAppendPrepend.addIcon('append', 'e-chevron-down-fill'); + }, + }); + textIconAppendPrepend.appendTo('#textIconAppendPrepend'); + + // First TextBox without an icon + let textFloatIconAppend = new ej.inputs.TextBox({ + placeholder: 'Enter Date', + floatLabelType: 'Auto', + created: () => { + textFloatIconAppend.addIcon('append', 'e-date-icon'); + }, + }); + textFloatIconAppend.appendTo('#textFloatIconAppend'); + + // Second TextBox with an icon + let textFloatIconPrepend = new ej.inputs.TextBox({ + placeholder: 'Enter Date', + floatLabelType: 'Auto', + created: () => { + textFloatIconPrepend.addIcon('prepend', 'e-date-icon'); + }, + }); + textFloatIconPrepend.appendTo('#textFloatIconPrepend'); + + let textFloatIconAppendPrepend = new ej.inputs.TextBox({ + placeholder: 'Enter Date', + floatLabelType: 'Auto', + created: () => { + textFloatIconAppendPrepend.addIcon('prepend', 'e-date-icon'); + textFloatIconAppendPrepend.addIcon('append', 'e-chevron-down-fill'); + }, + }); + textFloatIconAppendPrepend.appendTo('#textFloatIconAppendPrepend'); + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/textbox/icon-floating-cs1/index.ts b/ej2-javascript/code-snippet/textbox/icon-floating-cs1/index.ts index 81645ca6f..90e700fd8 100644 --- a/ej2-javascript/code-snippet/textbox/icon-floating-cs1/index.ts +++ b/ej2-javascript/code-snippet/textbox/icon-floating-cs1/index.ts @@ -1,41 +1,58 @@ +import { TextBox } from '@syncfusion/ej2-inputs'; -// To get the all input fields and its container. +// First TextBox without an icon +let textIconAppend: TextBox = new TextBox({ + placeholder: 'Enter Date', + created: () => { + textIconAppend.addIcon('append', 'e-date-icon'); + }, +}); +textIconAppend.appendTo('#textIconAppend'); -let inputElement = document.querySelectorAll('.e-input-group .e-input,.e-float-input.e-input-group input'); +// Second TextBox with an icon +let textIconPrepend: TextBox = new TextBox({ + placeholder: 'Enter Date', + created: () => { + textIconPrepend.addIcon('prepend', 'e-date-icon'); + }, +}); +textIconPrepend.appendTo('#textIconPrepend'); -// Add 'e-input-focus' class to the input for achive ripple effect when focus on the input field. +let textIconAppendPrepend: TextBox = new TextBox({ + placeholder: 'Enter Date', + created: () => { + textIconAppendPrepend.addIcon('prepend', 'e-date-icon'); + textIconAppendPrepend.addIcon('append', 'e-chevron-down-fill'); + }, +}); +textIconAppendPrepend.appendTo('#textIconAppendPrepend'); -for (let i = 0; i < inputElement.length; i++) { - inputElement[i].addEventListener("focus", function () { - let parentElement = this.parentNode; - if (parentElement.classList.contains('e-input-in-wrap')) { - parentElement.parentNode.classList.add('e-input-focus'); - } else { - this.parentNode.classList.add('e-input-focus'); - } - }); - inputElement[i].addEventListener("blur", function () { - let parentElement = this.parentNode; - if (parentElement.classList.contains('e-input-in-wrap')) { - parentElement.parentNode.classList.remove('e-input-focus'); - } else { - this.parentNode.classList.remove('e-input-focus'); - } - }); -} +// First TextBox without an icon +let textFloatIconAppend: TextBox = new TextBox({ + placeholder: 'Enter Date', + floatLabelType: 'Auto', + created: () => { + textFloatIconAppend.addIcon('append', 'e-date-icon'); + }, +}); +textFloatIconAppend.appendTo('#textFloatIconAppend'); -// Add 'e-input-btn-ripple' class to the icon element for achive ripple effect when click on the icon. - -var inputIcon = document.querySelectorAll('.e-input-group-icon'); -for (let i = 0; i < inputIcon.length; i++) { - inputIcon[i].addEventListener('mousedown', function () { - this.classList.add('e-input-btn-ripple'); - }); - inputIcon[i].addEventListener('mouseup', function () { - let element = this; - setTimeout(function () { - element.classList.remove('e-input-btn-ripple'); - }, 500); - }); -} +// Second TextBox with an icon +let textFloatIconPrepend: TextBox = new TextBox({ + placeholder: 'Enter Date', + floatLabelType: 'Auto', + created: () => { + textFloatIconPrepend.addIcon('prepend', 'e-date-icon'); + }, +}); +textFloatIconPrepend.appendTo('#textFloatIconPrepend'); +let textFloatIconAppendPrepend: TextBox = new TextBox({ + placeholder: 'Enter Date', + floatLabelType: 'Auto', + created: () => { + textFloatIconAppendPrepend.addIcon('prepend', 'e-date-icon'); + textFloatIconAppendPrepend.addIcon('append', 'e-chevron-down-fill'); + }, +}); +textFloatIconAppendPrepend.appendTo('#textFloatIconAppendPrepend'); diff --git a/ej2-javascript/code-snippet/textbox/icon-floating-cs1/js/index.html b/ej2-javascript/code-snippet/textbox/icon-floating-cs1/js/index.html index e0f27a8d3..c43c061ec 100644 --- a/ej2-javascript/code-snippet/textbox/icon-floating-cs1/js/index.html +++ b/ej2-javascript/code-snippet/textbox/icon-floating-cs1/js/index.html @@ -21,56 +21,33 @@ -

    TextBox with icons

    - -
    - - -
    - -
    - -
    - -
    -
    - -
    - -
    - - -
    -
    - -

    Floating label with icons

    - -
    - - - - -
    - -
    - -
    - - - -
    -
    - -
    - -
    - - - - -
    -
    - +

    TextBox with icons

    + +
    + +
    + +
    + +
    + +
    + +
    + +

    Floating label with icons

    + +
    + +
    + +
    + +
    + +
    + +
    diff --git a/ej2-javascript/code-snippet/textbox/icon-floating-cs1/ts/index.html b/ej2-javascript/code-snippet/textbox/icon-floating-cs1/ts/index.html index ecdfbbf8e..bb9ccdc39 100644 --- a/ej2-javascript/code-snippet/textbox/icon-floating-cs1/ts/index.html +++ b/ej2-javascript/code-snippet/textbox/icon-floating-cs1/ts/index.html @@ -21,56 +21,33 @@ -

    TextBox with icons

    - -
    - - -
    - -
    - -
    - -
    -
    - -
    - -
    - - -
    -
    - -

    Floating label with icons

    - -
    - - - - -
    - -
    - -
    - - - -
    -
    - -
    - -
    - - - - -
    -
    - +

    TextBox with icons

    + +
    + +
    + +
    + +
    + +
    + +
    + +

    Floating label with icons

    + +
    + +
    + +
    + +
    + +
    + +
    diff --git a/ej2-javascript/code-snippet/textbox/icon-samples-cs2/index.css b/ej2-javascript/code-snippet/textbox/icon-samples-cs2/index.css index 76389bba8..79d5cd1a0 100644 --- a/ej2-javascript/code-snippet/textbox/icon-samples-cs2/index.css +++ b/ej2-javascript/code-snippet/textbox/icon-samples-cs2/index.css @@ -20,62 +20,3 @@ width: 340px; } -.e-input-group-icon:before { - font-family: e-icons; -} - -.e-input-group .e-input-group-icon.e-input-popup-date { /* csslint allow: adjoining-classes */ - font-size:16px; -} - -.e-input-group.e-small .e-input-group-icon.e-input-popup-date { /* csslint allow: adjoining-classes */ - font-size:14px; -} - -.e-input-group-icon.e-input-popup-date:before { /* csslint allow: adjoining-classes */ - content: ""; -} - -.e-input-group-icon.e-input-up:before { /* csslint allow: adjoining-classes */ - content: '\e85e'; -} - -.e-input-group-icon.e-input-down:before { /* csslint allow: adjoining-classes */ - content: ""; -} - -.e-input-group-icon.e-input-plus:before { /* csslint allow: adjoining-classes */ - content: '\e7ba'; -} - -.e-input-group-icon.e-input-minus:before { /* csslint allow: adjoining-classes */ - content: '\e814'; -} - -.e-input-group-icon.e-input-date:before { /* csslint allow: adjoining-classes */ - content: ""; -} - -.e-input-group-icon.e-input-left:before { /* csslint allow: adjoining-classes */ - content: '\e904'; -} - -.e-input-group-icon.e-input-right:before { /* csslint allow: adjoining-classes */ - content: '\e913'; -} - -.e-input-group-icon.e-input-reload:before { /* csslint allow: adjoining-classes */ - content: '\e837'; -} - -.e-input-group-icon.e-input-search:before { /* csslint allow: adjoining-classes */ - content: '\e806'; -} - -#input-container .e-input-group { /* csslint allow: adjoining-classes */ - margin: 30px 0; -} - -#input-container .e-float-input { /* csslint allow: adjoining-classes */ - margin: 30px 0; -} diff --git a/ej2-javascript/code-snippet/textbox/icon-samples-cs2/index.js b/ej2-javascript/code-snippet/textbox/icon-samples-cs2/index.js index 6bdc5cad0..a9bd1978c 100644 --- a/ej2-javascript/code-snippet/textbox/icon-samples-cs2/index.js +++ b/ej2-javascript/code-snippet/textbox/icon-samples-cs2/index.js @@ -1,43 +1,42 @@ ej.base.enableRipple(true); -// To get the all input fields and its container. - -var inputElement = document.querySelectorAll('.e-input-group .e-input,.e-float-input.e-input-group input'); - -// Add 'e-input-focus' class to the input for achive ripple effect when focus on the input field. - -for (var i = 0; i < inputElement.length; i++) { - inputElement[i].addEventListener("focus", function () { - var parentElement = this.parentNode; - if (parentElement.classList.contains('e-input-in-wrap')) { - parentElement.parentNode.classList.add('e-input-focus'); - } else { - this.parentNode.classList.add('e-input-focus'); - } - }); - inputElement[i].addEventListener("blur", function () { - var parentElement = this.parentNode; - if (parentElement.classList.contains('e-input-in-wrap')) { - parentElement.parentNode.classList.remove('e-input-focus'); - } else { - this.parentNode.classList.remove('e-input-focus'); - } - }); -} - -// Add 'e-input-btn-ripple' class to the icon element for achive ripple effect when click on the icon. - -var inputIcon = document.querySelectorAll('.e-input-group-icon'); -for (var i = 0; i < inputIcon.length; i++) { - inputIcon[i].addEventListener('mousedown', function () { - this.classList.add('e-input-btn-ripple'); - }); - inputIcon[i].addEventListener('mouseup', function () { - var element = this; - setTimeout(function () { - element.classList.remove('e-input-btn-ripple'); - }, 500); - }); -} - +var normalTextBox= new ej.inputs.TextBox({ + placeholder: 'Enter the text', + floatLabelType: 'Never', + }); + normalTextBox.appendTo('#normal'); + var normalFloatTextBox= new ej.inputs.TextBox({ + placeholder: 'Enter the text', + floatLabelType: 'Auto', + }); + normalFloatTextBox.appendTo('#normalFloat'); + var normalIconTextBox= new ej.inputs.TextBox({ + placeholder: 'Enter the text', + floatLabelType: 'Auto', + created: function () { + normalIconTextBox.addIcon('append', 'e-date-icon'); + }, + }); + normalIconTextBox.appendTo('#normalIcon'); + var smallTextBox= new ej.inputs.TextBox({ + placeholder: 'Enter the text', + floatLabelType: 'Never', + cssClass: "e-small" + }); + smallTextBox.appendTo('#small'); + var smallFloatTextBox= new ej.inputs.TextBox({ + placeholder: 'Enter the text', + floatLabelType: 'Auto', + cssClass: "e-small" + }); + smallFloatTextBox.appendTo('#smallFloat'); + var smallIconTextBox= new ej.inputs.TextBox({ + placeholder: 'Enter the text', + floatLabelType: 'Auto', + cssClass: "e-small", + created: function () { + smallIconTextBox.addIcon('append', 'e-date-icon'); + }, + }); + smallIconTextBox.appendTo('#smallIcon'); diff --git a/ej2-javascript/code-snippet/textbox/icon-samples-cs2/index.ts b/ej2-javascript/code-snippet/textbox/icon-samples-cs2/index.ts index 8b051790b..115aeea00 100644 --- a/ej2-javascript/code-snippet/textbox/icon-samples-cs2/index.ts +++ b/ej2-javascript/code-snippet/textbox/icon-samples-cs2/index.ts @@ -1,43 +1,44 @@ - -// To get the all input fields and its container. - -let inputElement = document.querySelectorAll('.e-input-group .e-input,.e-float-input.e-input-group input'); - -// Add 'e-input-focus' class to the input for achive ripple effect when focus on the input field. - -for (let i = 0; i < inputElement.length; i++) { - inputElement[i].addEventListener("focus", function () { - let parentElement = this.parentNode; - if (parentElement.classList.contains('e-input-in-wrap')) { - parentElement.parentNode.classList.add('e-input-focus'); - } else { - this.parentNode.classList.add('e-input-focus'); - } - }); - inputElement[i].addEventListener("blur", function () { - let parentElement = this.parentNode; - if (parentElement.classList.contains('e-input-in-wrap')) { - parentElement.parentNode.classList.remove('e-input-focus'); - } else { - this.parentNode.classList.remove('e-input-focus'); - } - }); -} - -// Add 'e-input-btn-ripple' class to the icon element for achive ripple effect when click on the icon. - -var inputIcon = document.querySelectorAll('.e-input-group-icon'); -for (let i = 0; i < inputIcon.length; i++) { - inputIcon[i].addEventListener('mousedown', function () { - this.classList.add('e-input-btn-ripple'); - }); - inputIcon[i].addEventListener('mouseup', function () { - let element = this; - setTimeout(function () { - element.classList.remove('e-input-btn-ripple'); - }, 500); - }); -} - - - +import {TextBox } from '@syncfusion/ej2-inputs'; +/** + * Sample for CSS input boxes. + */ + +let normalTextBox: TextBox = new TextBox({ + placeholder: 'Enter the text', + floatLabelType: 'Never', +}); +normalTextBox.appendTo('#normal'); +let normalFloatTextBox: TextBox = new TextBox({ + placeholder: 'Enter the text', + floatLabelType: 'Auto', +}); +normalFloatTextBox.appendTo('#normalFloat'); +let normalIconTextBox: TextBox = new TextBox({ + placeholder: 'Enter the text', + floatLabelType: 'Auto', + created: function () { + normalIconTextBox.addIcon('append', 'e-date-icon'); + }, +}); +normalIconTextBox.appendTo('#normalIcon'); +let smallTextBox: TextBox = new TextBox({ + placeholder: 'Enter the text', + floatLabelType: 'Never', + cssClass: "e-small" +}); +smallTextBox.appendTo('#small'); +let smallFloatTextBox: TextBox = new TextBox({ + placeholder: 'Enter the text', + floatLabelType: 'Auto', + cssClass: "e-small" +}); +smallFloatTextBox.appendTo('#smallFloat'); +let smallIconTextBox: TextBox = new TextBox({ + placeholder: 'Enter the text', + floatLabelType: 'Auto', + cssClass: "e-small", + created: function () { + smallIconTextBox.addIcon('append', 'e-date-icon'); + }, +}); +smallIconTextBox.appendTo('#smallIcon'); diff --git a/ej2-javascript/code-snippet/textbox/icon-samples-cs2/js/index.html b/ej2-javascript/code-snippet/textbox/icon-samples-cs2/js/index.html index d0945ca4c..7acd624f6 100644 --- a/ej2-javascript/code-snippet/textbox/icon-samples-cs2/js/index.html +++ b/ej2-javascript/code-snippet/textbox/icon-samples-cs2/js/index.html @@ -19,42 +19,33 @@
    - - -

    Normal Size

    - -
    - -
    - -
    - - - -
    - -
    - - -
    - -

    Small Size

    - -
    - -
    - -
    - - - -
    - -
    - - -
    - +

    Normal Size

    + +
    + +
    + +
    + +
    + +
    + +
    + +

    Small Size

    + +
    + +
    + +
    + +
    + +
    + +
    diff --git a/ej2-javascript/code-snippet/textbox/icon-samples-cs2/ts/index.html b/ej2-javascript/code-snippet/textbox/icon-samples-cs2/ts/index.html index 768c1e67b..508334a64 100644 --- a/ej2-javascript/code-snippet/textbox/icon-samples-cs2/ts/index.html +++ b/ej2-javascript/code-snippet/textbox/icon-samples-cs2/ts/index.html @@ -20,40 +20,33 @@
    - -

    Normal Size

    - -
    - -
    - -
    - - - -
    - -
    - - -
    - -

    Small Size

    - -
    - -
    - -
    - - - -
    - -
    - - -
    +

    Normal Size

    + +
    + +
    + +
    + +
    + +
    + +
    + +

    Small Size

    + +
    + +
    + +
    + +
    + +
    + +
    diff --git a/ej2-javascript/code-snippet/textbox/icon-samples-cs3/index.css b/ej2-javascript/code-snippet/textbox/icon-samples-cs3/index.css index 76389bba8..711ec315f 100644 --- a/ej2-javascript/code-snippet/textbox/icon-samples-cs3/index.css +++ b/ej2-javascript/code-snippet/textbox/icon-samples-cs3/index.css @@ -16,66 +16,6 @@ .wrap { box-sizing: border-box; margin: 0 auto; - padding: 20px 10px; - width: 340px; -} - -.e-input-group-icon:before { - font-family: e-icons; -} - -.e-input-group .e-input-group-icon.e-input-popup-date { /* csslint allow: adjoining-classes */ - font-size:16px; -} - -.e-input-group.e-small .e-input-group-icon.e-input-popup-date { /* csslint allow: adjoining-classes */ - font-size:14px; -} - -.e-input-group-icon.e-input-popup-date:before { /* csslint allow: adjoining-classes */ - content: ""; -} - -.e-input-group-icon.e-input-up:before { /* csslint allow: adjoining-classes */ - content: '\e85e'; -} - -.e-input-group-icon.e-input-down:before { /* csslint allow: adjoining-classes */ - content: ""; -} - -.e-input-group-icon.e-input-plus:before { /* csslint allow: adjoining-classes */ - content: '\e7ba'; -} - -.e-input-group-icon.e-input-minus:before { /* csslint allow: adjoining-classes */ - content: '\e814'; -} - -.e-input-group-icon.e-input-date:before { /* csslint allow: adjoining-classes */ - content: ""; -} - -.e-input-group-icon.e-input-left:before { /* csslint allow: adjoining-classes */ - content: '\e904'; -} - -.e-input-group-icon.e-input-right:before { /* csslint allow: adjoining-classes */ - content: '\e913'; -} - -.e-input-group-icon.e-input-reload:before { /* csslint allow: adjoining-classes */ - content: '\e837'; -} - -.e-input-group-icon.e-input-search:before { /* csslint allow: adjoining-classes */ - content: '\e806'; -} - -#input-container .e-input-group { /* csslint allow: adjoining-classes */ - margin: 30px 0; -} - -#input-container .e-float-input { /* csslint allow: adjoining-classes */ - margin: 30px 0; -} + padding: 30px 10px; + width: 260px; +} \ No newline at end of file diff --git a/ej2-javascript/code-snippet/textbox/icon-samples-cs3/index.js b/ej2-javascript/code-snippet/textbox/icon-samples-cs3/index.js index 6bdc5cad0..afd213520 100644 --- a/ej2-javascript/code-snippet/textbox/icon-samples-cs3/index.js +++ b/ej2-javascript/code-snippet/textbox/icon-samples-cs3/index.js @@ -1,43 +1,14 @@ -ej.base.enableRipple(true); - -// To get the all input fields and its container. - -var inputElement = document.querySelectorAll('.e-input-group .e-input,.e-float-input.e-input-group input'); - -// Add 'e-input-focus' class to the input for achive ripple effect when focus on the input field. - -for (var i = 0; i < inputElement.length; i++) { - inputElement[i].addEventListener("focus", function () { - var parentElement = this.parentNode; - if (parentElement.classList.contains('e-input-in-wrap')) { - parentElement.parentNode.classList.add('e-input-focus'); - } else { - this.parentNode.classList.add('e-input-focus'); - } - }); - inputElement[i].addEventListener("blur", function () { - var parentElement = this.parentNode; - if (parentElement.classList.contains('e-input-in-wrap')) { - parentElement.parentNode.classList.remove('e-input-focus'); - } else { - this.parentNode.classList.remove('e-input-focus'); - } - }); -} - -// Add 'e-input-btn-ripple' class to the icon element for achive ripple effect when click on the icon. - -var inputIcon = document.querySelectorAll('.e-input-group-icon'); -for (var i = 0; i < inputIcon.length; i++) { - inputIcon[i].addEventListener('mousedown', function () { - this.classList.add('e-input-btn-ripple'); - }); - inputIcon[i].addEventListener('mouseup', function () { - var element = this; - setTimeout(function () { - element.classList.remove('e-input-btn-ripple'); - }, 500); - }); -} - - +// First TextBox without an icon +var textBoxObj = new ej.inputs.TextBox({ + placeholder: 'Enter Date', + }); + textBoxObj.appendTo('#textbox'); + + // Second TextBox with an icon + let iconTextBox = new ej.inputs.TextBox({ + placeholder: 'Enter Date', + created: () => { + iconTextBox.addIcon('append', 'e-date-icon'); + }, + }); + iconTextBox.appendTo('#textboxicon'); \ No newline at end of file diff --git a/ej2-javascript/code-snippet/textbox/icon-samples-cs3/index.ts b/ej2-javascript/code-snippet/textbox/icon-samples-cs3/index.ts index eff7c4056..0c84cf4a7 100644 --- a/ej2-javascript/code-snippet/textbox/icon-samples-cs3/index.ts +++ b/ej2-javascript/code-snippet/textbox/icon-samples-cs3/index.ts @@ -1,40 +1,16 @@ +import { TextBox } from '@syncfusion/ej2-inputs'; -// To get the all input fields and its container. +// First TextBox without an icon +let textBoxObj: TextBox = new TextBox({ + placeholder: 'Enter Date', +}); +textBoxObj.appendTo('#textbox'); -let inputElement = document.querySelectorAll('.e-input-group .e-input,.e-float-input.e-input-group input'); - -// Add 'e-input-focus' class to the input for achive ripple effect when focus on the input field. - -for (let i = 0; i < inputElement.length; i++) { - inputElement[i].addEventListener("focus", function () { - let parentElement = this.parentNode; - if (parentElement.classList.contains('e-input-in-wrap')) { - parentElement.parentNode.classList.add('e-input-focus'); - } else { - this.parentNode.classList.add('e-input-focus'); - } - }); - inputElement[i].addEventListener("blur", function () { - let parentElement = this.parentNode; - if (parentElement.classList.contains('e-input-in-wrap')) { - parentElement.parentNode.classList.remove('e-input-focus'); - } else { - this.parentNode.classList.remove('e-input-focus'); - } - }); -} - -// Add 'e-input-btn-ripple' class to the icon element for achive ripple effect when click on the icon. - -var inputIcon = document.querySelectorAll('.e-input-group-icon'); -for (let i = 0; i < inputIcon.length; i++) { - inputIcon[i].addEventListener('mousedown', function () { - this.classList.add('e-input-btn-ripple'); - }); - inputIcon[i].addEventListener('mouseup', function () { - let element = this; - setTimeout(function () { - element.classList.remove('e-input-btn-ripple'); - }, 500); - }); -} +// Second TextBox with an icon +let iconTextBox: TextBox = new TextBox({ + placeholder: 'Enter Date', + created: () => { + iconTextBox.addIcon('append', 'e-date-icon'); + }, +}); +iconTextBox.appendTo('#textboxicon'); diff --git a/ej2-javascript/code-snippet/textbox/icon-samples-cs3/js/index.html b/ej2-javascript/code-snippet/textbox/icon-samples-cs3/js/index.html index 074643ca8..20ed03d85 100644 --- a/ej2-javascript/code-snippet/textbox/icon-samples-cs3/js/index.html +++ b/ej2-javascript/code-snippet/textbox/icon-samples-cs3/js/index.html @@ -17,19 +17,8 @@
    Loading....
    -
    - - - -
    - - -
    - - - - -
    + +
    -
    +
    - -
    +
    diff --git a/ej2-javascript/code-snippet/timeline/align/alternate-reverse/ts/index.html b/ej2-javascript/code-snippet/timeline/align/alternate-reverse/ts/index.html index d51a6b434..7ac3830c6 100644 --- a/ej2-javascript/code-snippet/timeline/align/alternate-reverse/ts/index.html +++ b/ej2-javascript/code-snippet/timeline/align/alternate-reverse/ts/index.html @@ -19,7 +19,7 @@
    LOADING....
    -
    +
    diff --git a/ej2-javascript/code-snippet/timeline/align/alternate/js/index.html b/ej2-javascript/code-snippet/timeline/align/alternate/js/index.html index 2701fb95a..cc2ce266d 100644 --- a/ej2-javascript/code-snippet/timeline/align/alternate/js/index.html +++ b/ej2-javascript/code-snippet/timeline/align/alternate/js/index.html @@ -12,13 +12,12 @@ - -
    +
    diff --git a/ej2-javascript/code-snippet/timeline/align/alternate/ts/index.html b/ej2-javascript/code-snippet/timeline/align/alternate/ts/index.html index d51a6b434..7ac3830c6 100644 --- a/ej2-javascript/code-snippet/timeline/align/alternate/ts/index.html +++ b/ej2-javascript/code-snippet/timeline/align/alternate/ts/index.html @@ -19,7 +19,7 @@
    LOADING....
    -
    +
    diff --git a/ej2-javascript/code-snippet/timeline/align/before/js/index.html b/ej2-javascript/code-snippet/timeline/align/before/js/index.html index 2701fb95a..fc450b130 100644 --- a/ej2-javascript/code-snippet/timeline/align/before/js/index.html +++ b/ej2-javascript/code-snippet/timeline/align/before/js/index.html @@ -12,18 +12,16 @@ - -
    +
    - diff --git a/ej2-javascript/code-snippet/timeline/customization/connector-individual/js/index.html b/ej2-javascript/code-snippet/timeline/customization/connector-individual/js/index.html index e0094df26..43e31ef67 100644 --- a/ej2-javascript/code-snippet/timeline/customization/connector-individual/js/index.html +++ b/ej2-javascript/code-snippet/timeline/customization/connector-individual/js/index.html @@ -12,7 +12,6 @@ - diff --git a/ej2-javascript/code-snippet/timeline/customization/dot-color/js/index.html b/ej2-javascript/code-snippet/timeline/customization/dot-color/js/index.html index 5061990a8..5bc104a04 100644 --- a/ej2-javascript/code-snippet/timeline/customization/dot-color/js/index.html +++ b/ej2-javascript/code-snippet/timeline/customization/dot-color/js/index.html @@ -12,7 +12,6 @@ - diff --git a/ej2-javascript/code-snippet/timeline/customization/dot-outline/js/index.html b/ej2-javascript/code-snippet/timeline/customization/dot-outline/js/index.html index 3382ff47a..4d7b37890 100644 --- a/ej2-javascript/code-snippet/timeline/customization/dot-outline/js/index.html +++ b/ej2-javascript/code-snippet/timeline/customization/dot-outline/js/index.html @@ -12,7 +12,6 @@ - diff --git a/ej2-javascript/code-snippet/timeline/customization/dot-shadow/js/index.html b/ej2-javascript/code-snippet/timeline/customization/dot-shadow/js/index.html index 2f586725e..669813dde 100644 --- a/ej2-javascript/code-snippet/timeline/customization/dot-shadow/js/index.html +++ b/ej2-javascript/code-snippet/timeline/customization/dot-shadow/js/index.html @@ -12,7 +12,6 @@ - diff --git a/ej2-javascript/code-snippet/timeline/customization/dot-size/js/index.html b/ej2-javascript/code-snippet/timeline/customization/dot-size/js/index.html index 2349a336c..eae671b13 100644 --- a/ej2-javascript/code-snippet/timeline/customization/dot-size/js/index.html +++ b/ej2-javascript/code-snippet/timeline/customization/dot-size/js/index.html @@ -12,7 +12,6 @@ - diff --git a/ej2-javascript/code-snippet/timeline/customization/dot-variant/js/index.html b/ej2-javascript/code-snippet/timeline/customization/dot-variant/js/index.html index c50ce7672..d130b0361 100644 --- a/ej2-javascript/code-snippet/timeline/customization/dot-variant/js/index.html +++ b/ej2-javascript/code-snippet/timeline/customization/dot-variant/js/index.html @@ -12,7 +12,6 @@ - diff --git a/ej2-javascript/code-snippet/timeline/es5-getting-started/js/index.html b/ej2-javascript/code-snippet/timeline/es5-getting-started/js/index.html index 4028131e3..a124c66a3 100644 --- a/ej2-javascript/code-snippet/timeline/es5-getting-started/js/index.html +++ b/ej2-javascript/code-snippet/timeline/es5-getting-started/js/index.html @@ -15,9 +15,6 @@ - - - @@ -27,17 +24,20 @@
    - + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/timeline/es5-getting-started/styles.css b/ej2-javascript/code-snippet/timeline/es5-getting-started/styles.css index bb8fe48d9..e69de29bb 100644 --- a/ej2-javascript/code-snippet/timeline/es5-getting-started/styles.css +++ b/ej2-javascript/code-snippet/timeline/es5-getting-started/styles.css @@ -1,4 +0,0 @@ -#container { - margin-top: 30px; - padding: 30px; -} \ No newline at end of file diff --git a/ej2-javascript/code-snippet/timeline/events/beforeItemRender/js/index.html b/ej2-javascript/code-snippet/timeline/events/beforeItemRender/js/index.html index 2701fb95a..fc450b130 100644 --- a/ej2-javascript/code-snippet/timeline/events/beforeItemRender/js/index.html +++ b/ej2-javascript/code-snippet/timeline/events/beforeItemRender/js/index.html @@ -12,18 +12,16 @@ - -
    +
    - -
    +
    - @@ -26,6 +23,8 @@ - + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/timeline/items/content/string-based/js/index.html b/ej2-javascript/code-snippet/timeline/items/content/string-based/js/index.html index 2701fb95a..6a38d1d42 100644 --- a/ej2-javascript/code-snippet/timeline/items/content/string-based/js/index.html +++ b/ej2-javascript/code-snippet/timeline/items/content/string-based/js/index.html @@ -18,12 +18,11 @@ -
    +
    - -
    +
    -
    +
    - + + -

    + + + - - - \ No newline at end of file + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/toolbar/scrollstep-cs1/ts/index.html b/ej2-javascript/code-snippet/toolbar/scrollstep-cs1/ts/index.html index 9fb9dcad9..8ec3c96f5 100644 --- a/ej2-javascript/code-snippet/toolbar/scrollstep-cs1/ts/index.html +++ b/ej2-javascript/code-snippet/toolbar/scrollstep-cs1/ts/index.html @@ -12,6 +12,120 @@ + diff --git a/ej2-javascript/code-snippet/toolbar/scrollstep-cs2/index.css b/ej2-javascript/code-snippet/toolbar/scrollstep-cs2/index.css index 76cb690cc..817f6f7a0 100644 --- a/ej2-javascript/code-snippet/toolbar/scrollstep-cs2/index.css +++ b/ej2-javascript/code-snippet/toolbar/scrollstep-cs2/index.css @@ -9,118 +9,4 @@ position: absolute; top: 45%; width: 30%; -} - -@font-face { - font-family: "Material_toolbar"; - src: url(data:application/x-font-ttf;charset=utf-8;base64,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) - format("truetype"); - font-weight: normal; - font-style: normal; - } - - .e-bigger .e-tbar-btn .tb-icons { - font-size: 18px; - } - - .e-tbar-btn .tb-icons { - font-family: "Material_toolbar"; - speak: none; - font-size: 16px; - font-style: normal; - font-weight: normal; - font-variant: normal; - text-transform: none; - } - - .e-tbar-btn .tb-icons.e-numbering-icon { - font-size: 17px; - } - - .e-cut-icon:before { - content: "\e719"; - } - - .e-copy-icon:before { - content: "\e721"; - } - - .e-paste-icon:before { - content: "\e712"; - } - - .e-color-icon:before { - content: "\e703"; - } - - .e-bold-icon:before { - content: "\e71a"; - } - - .e-underline-icon:before { - content: "\e706"; - } - - .e-alignleft-icon:before { - content: "\e717"; - } - - .e-alignright-icon:before { - content: "\e715"; - } - - .e-aligncenter-icon:before { - content: "\e704"; - } - - .e-alignjustify-icon:before { - content: "\e71b"; - } - - .e-upload-icon:before { - content: "\e71e"; - } - - .e-download-icon:before { - content: "\e70a"; - } - - .e-indent-icon:before { - content: "\e70b"; - } - - .e-outdent-icon:before { - content: "\e700"; - } - - .e-clear-icon:before { - content: "\e70d"; - } - - .e-reload-icon:before { - content: "\e71c"; - } - - .e-export-icon:before { - content: "\e720"; - } - - .e-italic-icon:before { - content: "\e710"; - } - - .e-bullets-icon:before { - content: "\e711"; - } - - .e-numbering-icon:before { - content: "\e70e"; - } - - .e-ascending-icon:before { - content: "\e70f"; - } - - .e-descending-icon:before { - content: "\e707"; - } +} \ No newline at end of file diff --git a/ej2-javascript/code-snippet/toolbar/scrollstep-cs2/js/index.html b/ej2-javascript/code-snippet/toolbar/scrollstep-cs2/js/index.html index 16b51ad30..ab4b0101f 100644 --- a/ej2-javascript/code-snippet/toolbar/scrollstep-cs2/js/index.html +++ b/ej2-javascript/code-snippet/toolbar/scrollstep-cs2/js/index.html @@ -1,4 +1,7 @@ - + + + + Essential JS 2 Toolbar @@ -7,24 +10,136 @@ - - - + + -

    + + + - - - \ No newline at end of file + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/toolbar/scrollstep-cs2/ts/index.html b/ej2-javascript/code-snippet/toolbar/scrollstep-cs2/ts/index.html index 9fb9dcad9..8ec3c96f5 100644 --- a/ej2-javascript/code-snippet/toolbar/scrollstep-cs2/ts/index.html +++ b/ej2-javascript/code-snippet/toolbar/scrollstep-cs2/ts/index.html @@ -12,6 +12,120 @@ + diff --git a/ej2-javascript/code-snippet/toolbar/toggle-button-cs1/index.css b/ej2-javascript/code-snippet/toolbar/toggle-button-cs1/index.css index 06dc02278..817f6f7a0 100644 --- a/ej2-javascript/code-snippet/toolbar/toggle-button-cs1/index.css +++ b/ej2-javascript/code-snippet/toolbar/toggle-button-cs1/index.css @@ -9,61 +9,4 @@ position: absolute; top: 45%; width: 30%; -} - -@font-face { - font-family: 'toolbar'; - src: - url(data:application/x-font-ttf;charset=utf-8;base64,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) format('truetype'); - font-weight: normal; - font-style: normal; -} - -.e-toolbar.toggle .e-btn .e-icons { - font-family: 'toolbar' !important; - font-size: 16px; - font-style: normal; - font-weight: normal; - font-variant: normal; - text-transform: none; -} - -.e-hide-icon::before { - content: '\a701'; -} - -.e-show-icon::before { - content: '\a700'; -} - -.e-filter-icon::before { - content: '\a709'; -} - -.e-filternone-icon::before { - content: '\a708'; -} - -.e-undo-icon::before { - content: '\a706' !important; -} - -.e-redo-icon::before { - content: '\a707' !important; -} - -.e-play-icon::before { - content: '\a704'; -} - -.e-pause-icon::before { - content: '\a705'; -} - -.e-zoomin-icon::before { - content: '\a702'; -} - -.e-zoomout-icon::before { - content: '\a703'; } \ No newline at end of file diff --git a/ej2-javascript/code-snippet/toolbar/toggle-button-cs1/js/index.html b/ej2-javascript/code-snippet/toolbar/toggle-button-cs1/js/index.html index 43fcf4516..eba58fb4b 100644 --- a/ej2-javascript/code-snippet/toolbar/toggle-button-cs1/js/index.html +++ b/ej2-javascript/code-snippet/toolbar/toggle-button-cs1/js/index.html @@ -1,32 +1,92 @@ - - Essential JS 2 Toolbar - - - - - - - - - + + + + + Essential JS 2 Toolbar + + + + + + + + - -
    -
    -
    -
    - This content will be hidden, when you click on hide button and toggle get an active state as show, otherwise it will be visible. -
    +
    +
    +
    +
    + This content will be hidden, when you click on hide button and toggle get an active state as show, otherwise it + will be visible.
    +
    + + + - - - \ No newline at end of file + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/toolbar/toggle-button-cs1/ts/index.html b/ej2-javascript/code-snippet/toolbar/toggle-button-cs1/ts/index.html index 8b6655626..aec38a5da 100644 --- a/ej2-javascript/code-snippet/toolbar/toggle-button-cs1/ts/index.html +++ b/ej2-javascript/code-snippet/toolbar/toggle-button-cs1/ts/index.html @@ -11,6 +11,64 @@ + diff --git a/ej2-javascript/code-snippet/toolbar/toolbar-cs2/index.css b/ej2-javascript/code-snippet/toolbar/toolbar-cs2/index.css index d812fbbf5..7a09ded69 100644 --- a/ej2-javascript/code-snippet/toolbar/toolbar-cs2/index.css +++ b/ej2-javascript/code-snippet/toolbar/toolbar-cs2/index.css @@ -9,64 +9,4 @@ position: absolute; top: 45%; width: 30%; - } - - @font-face { - font-family: "Material_toolbar"; - src: url(data:application/x-font-ttf;charset=utf-8;base64,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) - format("truetype"); - font-weight: normal; - font-style: normal; - } - - .e-bigger .e-tbar-btn .tb-icons { - font-size: 18px; - } - - .e-tbar-btn .tb-icons { - font-family: "Material_toolbar"; - speak: none; - font-size: 16px; - font-style: normal; - font-weight: normal; - font-variant: normal; - text-transform: none; - } - - .e-cut-icon:before { - content: "\e719"; - } - - .e-copy-icon:before { - content: "\e721"; - } - - .e-paste-icon:before { - content: "\e712"; - } - - .e-color-icon:before { - content: "\e703"; - } - .e-bold-icon:before { - content: "\e71a"; - } - - .e-underline-icon:before { - content: "\e706"; - } - - .e-clear-icon:before { - content: "\e70d"; - } - - .e-italic-icon:before { - content: "\e710"; - } - .e-ascending-icon:before { - content: "\e70f"; - } - - .e-descending-icon:before { - content: "\e707"; } \ No newline at end of file diff --git a/ej2-javascript/code-snippet/toolbar/toolbar-cs2/js/index.html b/ej2-javascript/code-snippet/toolbar/toolbar-cs2/js/index.html index d8e54b7fc..3fdd3ee16 100644 --- a/ej2-javascript/code-snippet/toolbar/toolbar-cs2/js/index.html +++ b/ej2-javascript/code-snippet/toolbar/toolbar-cs2/js/index.html @@ -7,9 +7,69 @@ - - - + + diff --git a/ej2-javascript/code-snippet/toolbar/toolbar-cs2/ts/index.html b/ej2-javascript/code-snippet/toolbar/toolbar-cs2/ts/index.html index fd33f92aa..05359a8f9 100644 --- a/ej2-javascript/code-snippet/toolbar/toolbar-cs2/ts/index.html +++ b/ej2-javascript/code-snippet/toolbar/toolbar-cs2/ts/index.html @@ -12,6 +12,68 @@ + diff --git a/ej2-javascript/code-snippet/toolbar/toolbar-cs3/index.css b/ej2-javascript/code-snippet/toolbar/toolbar-cs3/index.css index d812fbbf5..7a09ded69 100644 --- a/ej2-javascript/code-snippet/toolbar/toolbar-cs3/index.css +++ b/ej2-javascript/code-snippet/toolbar/toolbar-cs3/index.css @@ -9,64 +9,4 @@ position: absolute; top: 45%; width: 30%; - } - - @font-face { - font-family: "Material_toolbar"; - src: url(data:application/x-font-ttf;charset=utf-8;base64,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) - format("truetype"); - font-weight: normal; - font-style: normal; - } - - .e-bigger .e-tbar-btn .tb-icons { - font-size: 18px; - } - - .e-tbar-btn .tb-icons { - font-family: "Material_toolbar"; - speak: none; - font-size: 16px; - font-style: normal; - font-weight: normal; - font-variant: normal; - text-transform: none; - } - - .e-cut-icon:before { - content: "\e719"; - } - - .e-copy-icon:before { - content: "\e721"; - } - - .e-paste-icon:before { - content: "\e712"; - } - - .e-color-icon:before { - content: "\e703"; - } - .e-bold-icon:before { - content: "\e71a"; - } - - .e-underline-icon:before { - content: "\e706"; - } - - .e-clear-icon:before { - content: "\e70d"; - } - - .e-italic-icon:before { - content: "\e710"; - } - .e-ascending-icon:before { - content: "\e70f"; - } - - .e-descending-icon:before { - content: "\e707"; } \ No newline at end of file diff --git a/ej2-javascript/code-snippet/toolbar/toolbar-cs3/js/index.html b/ej2-javascript/code-snippet/toolbar/toolbar-cs3/js/index.html index d8e54b7fc..baf085ead 100644 --- a/ej2-javascript/code-snippet/toolbar/toolbar-cs3/js/index.html +++ b/ej2-javascript/code-snippet/toolbar/toolbar-cs3/js/index.html @@ -5,11 +5,11 @@ - - - - - + + + + + diff --git a/ej2-javascript/code-snippet/toolbar/toolbar-cs3/ts/index.html b/ej2-javascript/code-snippet/toolbar/toolbar-cs3/ts/index.html index fd33f92aa..67d5f661f 100644 --- a/ej2-javascript/code-snippet/toolbar/toolbar-cs3/ts/index.html +++ b/ej2-javascript/code-snippet/toolbar/toolbar-cs3/ts/index.html @@ -8,8 +8,10 @@ - - + + + + diff --git a/ej2-javascript/code-snippet/toolbar/toolbar-extended/app.ts b/ej2-javascript/code-snippet/toolbar/toolbar-extended/app.ts new file mode 100644 index 000000000..e69de29bb diff --git a/ej2-javascript/code-snippet/toolbar/toolbar-extended/index.css b/ej2-javascript/code-snippet/toolbar/toolbar-extended/index.css new file mode 100644 index 000000000..7a09ded69 --- /dev/null +++ b/ej2-javascript/code-snippet/toolbar/toolbar-extended/index.css @@ -0,0 +1,12 @@ +#container { + visibility: hidden; + } + + #loader { + color: #008cff; + height: 40px; + left: 45%; + position: absolute; + top: 45%; + width: 30%; + } \ No newline at end of file diff --git a/ej2-javascript/code-snippet/toolbar/toolbar-extended/index.js b/ej2-javascript/code-snippet/toolbar/toolbar-extended/index.js new file mode 100644 index 000000000..5c3e2b7bf --- /dev/null +++ b/ej2-javascript/code-snippet/toolbar/toolbar-extended/index.js @@ -0,0 +1,24 @@ +ej.base.enableRipple(true); + +//Initialize Toolbar component + +var toolbar = new ej.navigations.Toolbar({ +width: 380, +overflowMode: 'Extended', +items: [ + { type: 'Button', prefixIcon: 'e-cut-icon', text:'Cut', overflow: 'Show' }, + { type: 'Button', prefixIcon: 'e-copy-icon', text:'Copy', overflow: 'Show' }, + { type: 'Button', prefixIcon: 'e-paste-icon',text:'Paste', overflow: 'Show' }, + { type: 'Separator' }, + { type: 'Button', prefixIcon: 'e-bold-icon', text:'Bold'}, + { type: 'Button', prefixIcon: 'e-italic-icon', text:'Italic'}, + { type: 'Button', prefixIcon: 'e-underline-icon', text:'Underline' }, + { type: 'Separator'}, + { type: 'Button', prefixIcon: 'e-ascending-icon', text:'A-Z Sort', overflow: 'Show'}, + { type: 'Button', prefixIcon: 'e-descending-icon', text:'Z-A Sort', overflow: 'Show'}, + ] +}); + +//Render initialized Toolbar component +toolbar.appendTo('#element'); + diff --git a/ej2-javascript/code-snippet/toolbar/toolbar-extended/index.ts b/ej2-javascript/code-snippet/toolbar/toolbar-extended/index.ts new file mode 100644 index 000000000..7fefb810a --- /dev/null +++ b/ej2-javascript/code-snippet/toolbar/toolbar-extended/index.ts @@ -0,0 +1,24 @@ + + +import {Toolbar} from '@syncfusion/ej2-navigations'; + +let toolbar: Toolbar = new Toolbar({ + width: 380, + overflowMode: 'Extended', + items: [ + { type: 'Button', prefixIcon: 'e-cut-icon tb-icons', text:'Cut', overflow: 'Show' }, + { type: 'Button', prefixIcon: 'e-copy-icon tb-icons', text:'Copy', overflow: 'Show' }, + { type: 'Button', prefixIcon: 'e-paste-icon tb-icons',text:'Paste', overflow: 'Show' }, + { type: 'Separator' }, + { type: 'Button', prefixIcon: 'e-bold-icon tb-icons', text:'Bold'}, + { type: 'Button', prefixIcon: 'e-italic-icon tb-icons', text:'Italic'}, + { type: 'Button', prefixIcon: 'e-underline-icon tb-icons', text:'Underline' }, + { type: 'Separator'}, + { type: 'Button', prefixIcon: 'e-ascending-icon tb-icons', text:'A-Z Sort', overflow: 'Show'}, + { type: 'Button', prefixIcon: 'e-descending-icon tb-icons', text:'Z-A Sort', overflow: 'Show'}, + ] +}); +toolbar.appendTo('#element'); + + + diff --git a/ej2-javascript/code-snippet/toolbar/toolbar-extended/js/index.html b/ej2-javascript/code-snippet/toolbar/toolbar-extended/js/index.html new file mode 100644 index 000000000..3fdd3ee16 --- /dev/null +++ b/ej2-javascript/code-snippet/toolbar/toolbar-extended/js/index.html @@ -0,0 +1,91 @@ + + Essential JS 2 Toolbar + + + + + + + + + + + + + +
    +
    +

    +
    +
    + + + + + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/toolbar/toolbar-extended/systemjs.config.js b/ej2-javascript/code-snippet/toolbar/toolbar-extended/systemjs.config.js new file mode 100644 index 000000000..7b228eeea --- /dev/null +++ b/ej2-javascript/code-snippet/toolbar/toolbar-extended/systemjs.config.js @@ -0,0 +1,32 @@ +System.config({ + transpiler: "typescript", + typescriptOptions: { + compilerOptions: { + target: "umd", + module: "commonjs", + moduleResolution: "node", + emitDecoratorMetadata: true, + experimentalDecorators: true + } + }, + paths: { + "syncfusion:": "https://cdn.syncfusion.com/ej2/20.3.56/" + }, + map: { + main: "index.ts", + typescript: "https://unpkg.com/typescript@2.2.2/lib/typescript.js", + "@syncfusion/ej2-base": "syncfusion:ej2-base/dist/ej2-base.umd.min.js", + "@syncfusion/ej2-buttons": "syncfusion:ej2-buttons/dist/ej2-buttons.umd.min.js", + "@syncfusion/ej2-popups": "syncfusion:ej2-popups/dist/ej2-popups.umd.min.js", + "@syncfusion/ej2-navigations": "syncfusion:ej2-navigations/dist/ej2-navigations.umd.min.js", + "@syncfusion/ej2-lists": "syncfusion:ej2-lists/dist/ej2-lists.umd.min.js", + "@syncfusion/ej2-inputs": "syncfusion:ej2-inputs/dist/ej2-inputs.umd.min.js", + "@syncfusion/ej2-data": "syncfusion:ej2-data/dist/ej2-data.umd.min.js", + "@syncfusion/ej2-splitbuttons": "syncfusion:ej2-splitbuttons/dist/ej2-splitbuttons.umd.min.js" + } +}); + +System.import('index.ts').catch(console.error.bind(console)).then(function () { + document.getElementById('loader').style.display = "none"; + document.getElementById('container').style.visibility = "visible"; +}); \ No newline at end of file diff --git a/ej2-javascript/code-snippet/toolbar/toolbar-extended/ts/index.html b/ej2-javascript/code-snippet/toolbar/toolbar-extended/ts/index.html new file mode 100644 index 000000000..05359a8f9 --- /dev/null +++ b/ej2-javascript/code-snippet/toolbar/toolbar-extended/ts/index.html @@ -0,0 +1,88 @@ + + + + + Essential JS 2 Toolbar + + + + + + + + + + + + + +
    LOADING....
    +
    +
    +

    +
    +
    + + + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/toolbar/toolbar-how-tooltip-cs1/index.css b/ej2-javascript/code-snippet/toolbar/toolbar-how-tooltip-cs1/index.css index 8e9d2433c..817f6f7a0 100644 --- a/ej2-javascript/code-snippet/toolbar/toolbar-how-tooltip-cs1/index.css +++ b/ej2-javascript/code-snippet/toolbar/toolbar-how-tooltip-cs1/index.css @@ -9,100 +9,4 @@ position: absolute; top: 45%; width: 30%; -} - -.e-cut-icon:before { - content: "\e759" -} - -.e-copy-icon:before { - content: "\e70a" -} - -.e-paste-icon:before { - content: "\e77e" -} - -.e-color-icon:before { - content: "\e778" -} - -.e-bold-icon:before { - content: "\e71c" -} - -.e-underline-icon:before { - content: "\e75a" -} - -.e-alignleft-icon:before { - content: "\e75e" -} - -.e-alignright-icon:before { - content: "\e75f" -} - -.e-aligncenter-icon:before { - content: "\e74b" -} - -.e-alignjustify-icon:before { - content: "\e756" -} - -.e-upload-icon:before { - content: "\e725" -} - -.e-download-icon:before { - content: "\e824" -} - -.e-indent-icon:before { - content: "\e742" -} - -.e-outdent-icon:before { - content: "\e746" -} - -.e-clear-icon:before { - content: "\e760" -} - -.e-reload-icon:before { - content: "\e837" -} - -.e-export-icon:before { - content: "\e7fb" -} - -.e-italic-icon:before { - content: "\e709" -} - -.e-bullets-icon:before { - content: "\e75c" -} - -.e-numbering-icon:before { - content: "\e733" -} - -.e-ascending-icon:before { - content: "\e73f" -} - -.e-descending-icon:before { - content: "\e79d" -} - -.e-zoomin-icon:before { - content: "\e7d8" -} - -.e-zoomout-icon:before { - content: "\e7ea" } \ No newline at end of file diff --git a/ej2-javascript/code-snippet/toolbar/toolbar-items-cs1/index.css b/ej2-javascript/code-snippet/toolbar/toolbar-items-cs1/index.css index 460ae4873..817f6f7a0 100644 --- a/ej2-javascript/code-snippet/toolbar/toolbar-items-cs1/index.css +++ b/ej2-javascript/code-snippet/toolbar/toolbar-items-cs1/index.css @@ -2,22 +2,6 @@ visibility: hidden; } -.custom_bold .e-tbar-btn-text { - font-weight: 900; -} - -.custom_italic .e-tbar-btn-text { - font-style: italic; -} - -.custom_underline .e-tbar-btn-text { - text-decoration: underline red; -} - -.e-txt-casing .e-tbar-btn-text { - font-variant: small-caps; -} - #loader { color: #008cff; height: 40px; @@ -25,108 +9,4 @@ position: absolute; top: 45%; width: 30%; -} - -.e-undo-icon:before { - content: "\e76e" -} - -.e-redo-icon:before { - content: "\e726" -} - -.e-cut-icon:before { - content: "\e759" -} - -.e-copy-icon:before { - content: "\e70a" -} - -.e-paste-icon:before { - content: "\e77e" -} - -.e-color-icon:before { - content: "\e778" -} - -.e-bold-icon:before { - content: "\e71c" -} - -.e-underline-icon:before { - content: "\e75a" -} - -.e-alignleft-icon:before { - content: "\e75e" -} - -.e-alignright-icon:before { - content: "\e75f" -} - -.e-aligncenter-icon:before { - content: "\e74b" -} - -.e-alignjustify-icon:before { - content: "\e756" -} - -.e-upload-icon:before { - content: "\e725" -} - -.e-download-icon:before { - content: "\e824" -} - -.e-indent-icon:before { - content: "\e742" -} - -.e-outdent-icon:before { - content: "\e746" -} - -.e-clear-icon:before { - content: "\e760" -} - -.e-reload-icon:before { - content: "\e837" -} - -.e-export-icon:before { - content: "\e7fb" -} - -.e-italic-icon:before { - content: "\e709" -} - -.e-bullets-icon:before { - content: "\e75c" -} - -.e-numbering-icon:before { - content: "\e733" -} - -.e-ascending-icon:before { - content: "\e73f" -} - -.e-descending-icon:before { - content: "\e79d" -} - -.e-zoomin-icon:before { - content: "\e7d8" -} - -.e-zoomout-icon:before { - content: "\e7ea" } \ No newline at end of file diff --git a/ej2-javascript/code-snippet/toolbar/toolbar-items-cs1/js/index.html b/ej2-javascript/code-snippet/toolbar/toolbar-items-cs1/js/index.html index d8e54b7fc..14858178f 100644 --- a/ej2-javascript/code-snippet/toolbar/toolbar-items-cs1/js/index.html +++ b/ej2-javascript/code-snippet/toolbar/toolbar-items-cs1/js/index.html @@ -1,4 +1,7 @@ - + + + + Essential JS 2 Toolbar @@ -7,25 +10,41 @@ - - - + + - +


    + + + - - - \ No newline at end of file + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/toolbar/toolbar-items-cs1/ts/index.html b/ej2-javascript/code-snippet/toolbar/toolbar-items-cs1/ts/index.html index fd33f92aa..aaca7d927 100644 --- a/ej2-javascript/code-snippet/toolbar/toolbar-items-cs1/ts/index.html +++ b/ej2-javascript/code-snippet/toolbar/toolbar-items-cs1/ts/index.html @@ -12,6 +12,23 @@ + diff --git a/ej2-javascript/code-snippet/toolbar/toolbar-items-cs2/index.css b/ej2-javascript/code-snippet/toolbar/toolbar-items-cs2/index.css index 460ae4873..817f6f7a0 100644 --- a/ej2-javascript/code-snippet/toolbar/toolbar-items-cs2/index.css +++ b/ej2-javascript/code-snippet/toolbar/toolbar-items-cs2/index.css @@ -2,22 +2,6 @@ visibility: hidden; } -.custom_bold .e-tbar-btn-text { - font-weight: 900; -} - -.custom_italic .e-tbar-btn-text { - font-style: italic; -} - -.custom_underline .e-tbar-btn-text { - text-decoration: underline red; -} - -.e-txt-casing .e-tbar-btn-text { - font-variant: small-caps; -} - #loader { color: #008cff; height: 40px; @@ -25,108 +9,4 @@ position: absolute; top: 45%; width: 30%; -} - -.e-undo-icon:before { - content: "\e76e" -} - -.e-redo-icon:before { - content: "\e726" -} - -.e-cut-icon:before { - content: "\e759" -} - -.e-copy-icon:before { - content: "\e70a" -} - -.e-paste-icon:before { - content: "\e77e" -} - -.e-color-icon:before { - content: "\e778" -} - -.e-bold-icon:before { - content: "\e71c" -} - -.e-underline-icon:before { - content: "\e75a" -} - -.e-alignleft-icon:before { - content: "\e75e" -} - -.e-alignright-icon:before { - content: "\e75f" -} - -.e-aligncenter-icon:before { - content: "\e74b" -} - -.e-alignjustify-icon:before { - content: "\e756" -} - -.e-upload-icon:before { - content: "\e725" -} - -.e-download-icon:before { - content: "\e824" -} - -.e-indent-icon:before { - content: "\e742" -} - -.e-outdent-icon:before { - content: "\e746" -} - -.e-clear-icon:before { - content: "\e760" -} - -.e-reload-icon:before { - content: "\e837" -} - -.e-export-icon:before { - content: "\e7fb" -} - -.e-italic-icon:before { - content: "\e709" -} - -.e-bullets-icon:before { - content: "\e75c" -} - -.e-numbering-icon:before { - content: "\e733" -} - -.e-ascending-icon:before { - content: "\e73f" -} - -.e-descending-icon:before { - content: "\e79d" -} - -.e-zoomin-icon:before { - content: "\e7d8" -} - -.e-zoomout-icon:before { - content: "\e7ea" } \ No newline at end of file diff --git a/ej2-javascript/code-snippet/toolbar/toolbar-items-cs3/index.css b/ej2-javascript/code-snippet/toolbar/toolbar-items-cs3/index.css index 460ae4873..817f6f7a0 100644 --- a/ej2-javascript/code-snippet/toolbar/toolbar-items-cs3/index.css +++ b/ej2-javascript/code-snippet/toolbar/toolbar-items-cs3/index.css @@ -2,22 +2,6 @@ visibility: hidden; } -.custom_bold .e-tbar-btn-text { - font-weight: 900; -} - -.custom_italic .e-tbar-btn-text { - font-style: italic; -} - -.custom_underline .e-tbar-btn-text { - text-decoration: underline red; -} - -.e-txt-casing .e-tbar-btn-text { - font-variant: small-caps; -} - #loader { color: #008cff; height: 40px; @@ -25,108 +9,4 @@ position: absolute; top: 45%; width: 30%; -} - -.e-undo-icon:before { - content: "\e76e" -} - -.e-redo-icon:before { - content: "\e726" -} - -.e-cut-icon:before { - content: "\e759" -} - -.e-copy-icon:before { - content: "\e70a" -} - -.e-paste-icon:before { - content: "\e77e" -} - -.e-color-icon:before { - content: "\e778" -} - -.e-bold-icon:before { - content: "\e71c" -} - -.e-underline-icon:before { - content: "\e75a" -} - -.e-alignleft-icon:before { - content: "\e75e" -} - -.e-alignright-icon:before { - content: "\e75f" -} - -.e-aligncenter-icon:before { - content: "\e74b" -} - -.e-alignjustify-icon:before { - content: "\e756" -} - -.e-upload-icon:before { - content: "\e725" -} - -.e-download-icon:before { - content: "\e824" -} - -.e-indent-icon:before { - content: "\e742" -} - -.e-outdent-icon:before { - content: "\e746" -} - -.e-clear-icon:before { - content: "\e760" -} - -.e-reload-icon:before { - content: "\e837" -} - -.e-export-icon:before { - content: "\e7fb" -} - -.e-italic-icon:before { - content: "\e709" -} - -.e-bullets-icon:before { - content: "\e75c" -} - -.e-numbering-icon:before { - content: "\e733" -} - -.e-ascending-icon:before { - content: "\e73f" -} - -.e-descending-icon:before { - content: "\e79d" -} - -.e-zoomin-icon:before { - content: "\e7d8" -} - -.e-zoomout-icon:before { - content: "\e7ea" } \ No newline at end of file diff --git a/ej2-javascript/code-snippet/toolbar/toolbar-items-templateID-cs1/index.css b/ej2-javascript/code-snippet/toolbar/toolbar-items-templateID-cs1/index.css index 1db36d154..817f6f7a0 100644 --- a/ej2-javascript/code-snippet/toolbar/toolbar-items-templateID-cs1/index.css +++ b/ej2-javascript/code-snippet/toolbar/toolbar-items-templateID-cs1/index.css @@ -9,108 +9,4 @@ position: absolute; top: 45%; width: 30%; -} - -.e-undo-icon:before { - content: "\e76e" -} - -.e-redo-icon:before { - content: "\e726" -} - -.e-cut-icon:before { - content: "\e759" -} - -.e-copy-icon:before { - content: "\e70a" -} - -.e-paste-icon:before { - content: "\e77e" -} - -.e-color-icon:before { - content: "\e778" -} - -.e-bold-icon:before { - content: "\e71c" -} - -.e-underline-icon:before { - content: "\e75a" -} - -.e-alignleft-icon:before { - content: "\e75e" -} - -.e-alignright-icon:before { - content: "\e75f" -} - -.e-aligncenter-icon:before { - content: "\e74b" -} - -.e-alignjustify-icon:before { - content: "\e756" -} - -.e-upload-icon:before { - content: "\e725" -} - -.e-download-icon:before { - content: "\e824" -} - -.e-indent-icon:before { - content: "\e742" -} - -.e-outdent-icon:before { - content: "\e746" -} - -.e-clear-icon:before { - content: "\e760" -} - -.e-reload-icon:before { - content: "\e837" -} - -.e-export-icon:before { - content: "\e7fb" -} - -.e-italic-icon:before { - content: "\e709" -} - -.e-bullets-icon:before { - content: "\e75c" -} - -.e-numbering-icon:before { - content: "\e733" -} - -.e-ascending-icon:before { - content: "\e73f" -} - -.e-descending-icon:before { - content: "\e79d" -} - -.e-zoomin-icon:before { - content: "\e7d8" -} - -.e-zoomout-icon:before { - content: "\e7ea" } \ No newline at end of file diff --git a/ej2-javascript/code-snippet/toolbar/toolbar-multirow/app.ts b/ej2-javascript/code-snippet/toolbar/toolbar-multirow/app.ts new file mode 100644 index 000000000..e69de29bb diff --git a/ej2-javascript/code-snippet/toolbar/toolbar-multirow/index.css b/ej2-javascript/code-snippet/toolbar/toolbar-multirow/index.css new file mode 100644 index 000000000..7a09ded69 --- /dev/null +++ b/ej2-javascript/code-snippet/toolbar/toolbar-multirow/index.css @@ -0,0 +1,12 @@ +#container { + visibility: hidden; + } + + #loader { + color: #008cff; + height: 40px; + left: 45%; + position: absolute; + top: 45%; + width: 30%; + } \ No newline at end of file diff --git a/ej2-javascript/code-snippet/toolbar/toolbar-multirow/index.js b/ej2-javascript/code-snippet/toolbar/toolbar-multirow/index.js new file mode 100644 index 000000000..131d3e2ce --- /dev/null +++ b/ej2-javascript/code-snippet/toolbar/toolbar-multirow/index.js @@ -0,0 +1,24 @@ +ej.base.enableRipple(true); + +//Initialize Toolbar component + +var toolbar = new ej.navigations.Toolbar({ +width: 380, +overflowMode: 'MultiRow', +items: [ + { type: 'Button', prefixIcon: 'e-cut-icon', text:'Cut', overflow: 'Show' }, + { type: 'Button', prefixIcon: 'e-copy-icon', text:'Copy', overflow: 'Show' }, + { type: 'Button', prefixIcon: 'e-paste-icon',text:'Paste', overflow: 'Show' }, + { type: 'Separator' }, + { type: 'Button', prefixIcon: 'e-bold-icon', text:'Bold'}, + { type: 'Button', prefixIcon: 'e-italic-icon', text:'Italic'}, + { type: 'Button', prefixIcon: 'e-underline-icon', text:'Underline' }, + { type: 'Separator'}, + { type: 'Button', prefixIcon: 'e-ascending-icon', text:'A-Z Sort', overflow: 'Show'}, + { type: 'Button', prefixIcon: 'e-descending-icon', text:'Z-A Sort', overflow: 'Show'}, + ] +}); + +//Render initialized Toolbar component +toolbar.appendTo('#element'); + diff --git a/ej2-javascript/code-snippet/toolbar/toolbar-multirow/index.ts b/ej2-javascript/code-snippet/toolbar/toolbar-multirow/index.ts new file mode 100644 index 000000000..0d17e2e33 --- /dev/null +++ b/ej2-javascript/code-snippet/toolbar/toolbar-multirow/index.ts @@ -0,0 +1,24 @@ + + +import {Toolbar} from '@syncfusion/ej2-navigations'; + +let toolbar: Toolbar = new Toolbar({ + width: 380, + overflowMode: 'MultiRow', + items: [ + { type: 'Button', prefixIcon: 'e-cut-icon tb-icons', text:'Cut', overflow: 'Show' }, + { type: 'Button', prefixIcon: 'e-copy-icon tb-icons', text:'Copy', overflow: 'Show' }, + { type: 'Button', prefixIcon: 'e-paste-icon tb-icons',text:'Paste', overflow: 'Show' }, + { type: 'Separator' }, + { type: 'Button', prefixIcon: 'e-bold-icon tb-icons', text:'Bold'}, + { type: 'Button', prefixIcon: 'e-italic-icon tb-icons', text:'Italic'}, + { type: 'Button', prefixIcon: 'e-underline-icon tb-icons', text:'Underline' }, + { type: 'Separator'}, + { type: 'Button', prefixIcon: 'e-ascending-icon tb-icons', text:'A-Z Sort', overflow: 'Show'}, + { type: 'Button', prefixIcon: 'e-descending-icon tb-icons', text:'Z-A Sort', overflow: 'Show'}, + ] +}); +toolbar.appendTo('#element'); + + + diff --git a/ej2-javascript/code-snippet/toolbar/toolbar-multirow/js/index.html b/ej2-javascript/code-snippet/toolbar/toolbar-multirow/js/index.html new file mode 100644 index 000000000..3fdd3ee16 --- /dev/null +++ b/ej2-javascript/code-snippet/toolbar/toolbar-multirow/js/index.html @@ -0,0 +1,91 @@ + + Essential JS 2 Toolbar + + + + + + + + + + + + + +
    +
    +

    +
    +
    + + + + + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/toolbar/toolbar-multirow/systemjs.config.js b/ej2-javascript/code-snippet/toolbar/toolbar-multirow/systemjs.config.js new file mode 100644 index 000000000..7b228eeea --- /dev/null +++ b/ej2-javascript/code-snippet/toolbar/toolbar-multirow/systemjs.config.js @@ -0,0 +1,32 @@ +System.config({ + transpiler: "typescript", + typescriptOptions: { + compilerOptions: { + target: "umd", + module: "commonjs", + moduleResolution: "node", + emitDecoratorMetadata: true, + experimentalDecorators: true + } + }, + paths: { + "syncfusion:": "https://cdn.syncfusion.com/ej2/20.3.56/" + }, + map: { + main: "index.ts", + typescript: "https://unpkg.com/typescript@2.2.2/lib/typescript.js", + "@syncfusion/ej2-base": "syncfusion:ej2-base/dist/ej2-base.umd.min.js", + "@syncfusion/ej2-buttons": "syncfusion:ej2-buttons/dist/ej2-buttons.umd.min.js", + "@syncfusion/ej2-popups": "syncfusion:ej2-popups/dist/ej2-popups.umd.min.js", + "@syncfusion/ej2-navigations": "syncfusion:ej2-navigations/dist/ej2-navigations.umd.min.js", + "@syncfusion/ej2-lists": "syncfusion:ej2-lists/dist/ej2-lists.umd.min.js", + "@syncfusion/ej2-inputs": "syncfusion:ej2-inputs/dist/ej2-inputs.umd.min.js", + "@syncfusion/ej2-data": "syncfusion:ej2-data/dist/ej2-data.umd.min.js", + "@syncfusion/ej2-splitbuttons": "syncfusion:ej2-splitbuttons/dist/ej2-splitbuttons.umd.min.js" + } +}); + +System.import('index.ts').catch(console.error.bind(console)).then(function () { + document.getElementById('loader').style.display = "none"; + document.getElementById('container').style.visibility = "visible"; +}); \ No newline at end of file diff --git a/ej2-javascript/code-snippet/toolbar/toolbar-multirow/ts/index.html b/ej2-javascript/code-snippet/toolbar/toolbar-multirow/ts/index.html new file mode 100644 index 000000000..05359a8f9 --- /dev/null +++ b/ej2-javascript/code-snippet/toolbar/toolbar-multirow/ts/index.html @@ -0,0 +1,88 @@ + + + + + Essential JS 2 Toolbar + + + + + + + + + + + + + +
    LOADING....
    +
    +
    +

    +
    +
    + + + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/toolbar/toolbar-popup-pop-priority-cs1/index.css b/ej2-javascript/code-snippet/toolbar/toolbar-popup-pop-priority-cs1/index.css index d812fbbf5..7a09ded69 100644 --- a/ej2-javascript/code-snippet/toolbar/toolbar-popup-pop-priority-cs1/index.css +++ b/ej2-javascript/code-snippet/toolbar/toolbar-popup-pop-priority-cs1/index.css @@ -9,64 +9,4 @@ position: absolute; top: 45%; width: 30%; - } - - @font-face { - font-family: "Material_toolbar"; - src: url(data:application/x-font-ttf;charset=utf-8;base64,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) - format("truetype"); - font-weight: normal; - font-style: normal; - } - - .e-bigger .e-tbar-btn .tb-icons { - font-size: 18px; - } - - .e-tbar-btn .tb-icons { - font-family: "Material_toolbar"; - speak: none; - font-size: 16px; - font-style: normal; - font-weight: normal; - font-variant: normal; - text-transform: none; - } - - .e-cut-icon:before { - content: "\e719"; - } - - .e-copy-icon:before { - content: "\e721"; - } - - .e-paste-icon:before { - content: "\e712"; - } - - .e-color-icon:before { - content: "\e703"; - } - .e-bold-icon:before { - content: "\e71a"; - } - - .e-underline-icon:before { - content: "\e706"; - } - - .e-clear-icon:before { - content: "\e70d"; - } - - .e-italic-icon:before { - content: "\e710"; - } - .e-ascending-icon:before { - content: "\e70f"; - } - - .e-descending-icon:before { - content: "\e707"; } \ No newline at end of file diff --git a/ej2-javascript/code-snippet/toolbar/toolbar-popup-pop-priority-cs1/js/index.html b/ej2-javascript/code-snippet/toolbar/toolbar-popup-pop-priority-cs1/js/index.html index d8e54b7fc..3fdd3ee16 100644 --- a/ej2-javascript/code-snippet/toolbar/toolbar-popup-pop-priority-cs1/js/index.html +++ b/ej2-javascript/code-snippet/toolbar/toolbar-popup-pop-priority-cs1/js/index.html @@ -7,9 +7,69 @@ - - - + + diff --git a/ej2-javascript/code-snippet/toolbar/toolbar-popup-pop-priority-cs1/ts/index.html b/ej2-javascript/code-snippet/toolbar/toolbar-popup-pop-priority-cs1/ts/index.html index fd33f92aa..05359a8f9 100644 --- a/ej2-javascript/code-snippet/toolbar/toolbar-popup-pop-priority-cs1/ts/index.html +++ b/ej2-javascript/code-snippet/toolbar/toolbar-popup-pop-priority-cs1/ts/index.html @@ -12,6 +12,68 @@ + diff --git a/ej2-javascript/code-snippet/toolbar/toolbar-popup-tool-priority-cs1/index.css b/ej2-javascript/code-snippet/toolbar/toolbar-popup-tool-priority-cs1/index.css index d812fbbf5..7a09ded69 100644 --- a/ej2-javascript/code-snippet/toolbar/toolbar-popup-tool-priority-cs1/index.css +++ b/ej2-javascript/code-snippet/toolbar/toolbar-popup-tool-priority-cs1/index.css @@ -9,64 +9,4 @@ position: absolute; top: 45%; width: 30%; - } - - @font-face { - font-family: "Material_toolbar"; - src: url(data:application/x-font-ttf;charset=utf-8;base64,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) - format("truetype"); - font-weight: normal; - font-style: normal; - } - - .e-bigger .e-tbar-btn .tb-icons { - font-size: 18px; - } - - .e-tbar-btn .tb-icons { - font-family: "Material_toolbar"; - speak: none; - font-size: 16px; - font-style: normal; - font-weight: normal; - font-variant: normal; - text-transform: none; - } - - .e-cut-icon:before { - content: "\e719"; - } - - .e-copy-icon:before { - content: "\e721"; - } - - .e-paste-icon:before { - content: "\e712"; - } - - .e-color-icon:before { - content: "\e703"; - } - .e-bold-icon:before { - content: "\e71a"; - } - - .e-underline-icon:before { - content: "\e706"; - } - - .e-clear-icon:before { - content: "\e70d"; - } - - .e-italic-icon:before { - content: "\e710"; - } - .e-ascending-icon:before { - content: "\e70f"; - } - - .e-descending-icon:before { - content: "\e707"; } \ No newline at end of file diff --git a/ej2-javascript/code-snippet/toolbar/toolbar-popup-tool-priority-cs1/js/index.html b/ej2-javascript/code-snippet/toolbar/toolbar-popup-tool-priority-cs1/js/index.html index d8e54b7fc..3fdd3ee16 100644 --- a/ej2-javascript/code-snippet/toolbar/toolbar-popup-tool-priority-cs1/js/index.html +++ b/ej2-javascript/code-snippet/toolbar/toolbar-popup-tool-priority-cs1/js/index.html @@ -7,9 +7,69 @@ - - - + + diff --git a/ej2-javascript/code-snippet/toolbar/toolbar-popup-tool-priority-cs1/ts/index.html b/ej2-javascript/code-snippet/toolbar/toolbar-popup-tool-priority-cs1/ts/index.html index fd33f92aa..05359a8f9 100644 --- a/ej2-javascript/code-snippet/toolbar/toolbar-popup-tool-priority-cs1/ts/index.html +++ b/ej2-javascript/code-snippet/toolbar/toolbar-popup-tool-priority-cs1/ts/index.html @@ -12,6 +12,68 @@ + diff --git a/ej2-javascript/code-snippet/toolbar/toolbar-scrollable-cs1/index.css b/ej2-javascript/code-snippet/toolbar/toolbar-scrollable-cs1/index.css index d812fbbf5..7a09ded69 100644 --- a/ej2-javascript/code-snippet/toolbar/toolbar-scrollable-cs1/index.css +++ b/ej2-javascript/code-snippet/toolbar/toolbar-scrollable-cs1/index.css @@ -9,64 +9,4 @@ position: absolute; top: 45%; width: 30%; - } - - @font-face { - font-family: "Material_toolbar"; - src: url(data:application/x-font-ttf;charset=utf-8;base64,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) - format("truetype"); - font-weight: normal; - font-style: normal; - } - - .e-bigger .e-tbar-btn .tb-icons { - font-size: 18px; - } - - .e-tbar-btn .tb-icons { - font-family: "Material_toolbar"; - speak: none; - font-size: 16px; - font-style: normal; - font-weight: normal; - font-variant: normal; - text-transform: none; - } - - .e-cut-icon:before { - content: "\e719"; - } - - .e-copy-icon:before { - content: "\e721"; - } - - .e-paste-icon:before { - content: "\e712"; - } - - .e-color-icon:before { - content: "\e703"; - } - .e-bold-icon:before { - content: "\e71a"; - } - - .e-underline-icon:before { - content: "\e706"; - } - - .e-clear-icon:before { - content: "\e70d"; - } - - .e-italic-icon:before { - content: "\e710"; - } - .e-ascending-icon:before { - content: "\e70f"; - } - - .e-descending-icon:before { - content: "\e707"; } \ No newline at end of file diff --git a/ej2-javascript/code-snippet/toolbar/toolbar-scrollable-cs1/js/index.html b/ej2-javascript/code-snippet/toolbar/toolbar-scrollable-cs1/js/index.html index d8e54b7fc..3fdd3ee16 100644 --- a/ej2-javascript/code-snippet/toolbar/toolbar-scrollable-cs1/js/index.html +++ b/ej2-javascript/code-snippet/toolbar/toolbar-scrollable-cs1/js/index.html @@ -7,9 +7,69 @@ - - - + + diff --git a/ej2-javascript/code-snippet/toolbar/toolbar-scrollable-cs1/ts/index.html b/ej2-javascript/code-snippet/toolbar/toolbar-scrollable-cs1/ts/index.html index fd33f92aa..05359a8f9 100644 --- a/ej2-javascript/code-snippet/toolbar/toolbar-scrollable-cs1/ts/index.html +++ b/ej2-javascript/code-snippet/toolbar/toolbar-scrollable-cs1/ts/index.html @@ -12,6 +12,68 @@ + diff --git a/ej2-javascript/code-snippet/toolbar/toolbar-template-popup-cs1/index.css b/ej2-javascript/code-snippet/toolbar/toolbar-template-popup-cs1/index.css index d812fbbf5..7a09ded69 100644 --- a/ej2-javascript/code-snippet/toolbar/toolbar-template-popup-cs1/index.css +++ b/ej2-javascript/code-snippet/toolbar/toolbar-template-popup-cs1/index.css @@ -9,64 +9,4 @@ position: absolute; top: 45%; width: 30%; - } - - @font-face { - font-family: "Material_toolbar"; - src: url(data:application/x-font-ttf;charset=utf-8;base64,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) - format("truetype"); - font-weight: normal; - font-style: normal; - } - - .e-bigger .e-tbar-btn .tb-icons { - font-size: 18px; - } - - .e-tbar-btn .tb-icons { - font-family: "Material_toolbar"; - speak: none; - font-size: 16px; - font-style: normal; - font-weight: normal; - font-variant: normal; - text-transform: none; - } - - .e-cut-icon:before { - content: "\e719"; - } - - .e-copy-icon:before { - content: "\e721"; - } - - .e-paste-icon:before { - content: "\e712"; - } - - .e-color-icon:before { - content: "\e703"; - } - .e-bold-icon:before { - content: "\e71a"; - } - - .e-underline-icon:before { - content: "\e706"; - } - - .e-clear-icon:before { - content: "\e70d"; - } - - .e-italic-icon:before { - content: "\e710"; - } - .e-ascending-icon:before { - content: "\e70f"; - } - - .e-descending-icon:before { - content: "\e707"; } \ No newline at end of file diff --git a/ej2-javascript/code-snippet/toolbar/toolbar-template-popup-cs1/index.js b/ej2-javascript/code-snippet/toolbar/toolbar-template-popup-cs1/index.js index 999552858..f58adfa80 100644 --- a/ej2-javascript/code-snippet/toolbar/toolbar-template-popup-cs1/index.js +++ b/ej2-javascript/code-snippet/toolbar/toolbar-template-popup-cs1/index.js @@ -2,7 +2,7 @@ ej.base.enableRipple(true); //Initialize Toolbar component -var toolbar = new ej.navigations.Toolbar({ width: 300 , overflowMode: 'Popup' }); +var toolbar = new ej.navigations.Toolbar({ width: 250 , overflowMode: 'Popup' }); //Render initialized Toolbar component toolbar.appendTo('#template_toolbar'); diff --git a/ej2-javascript/code-snippet/toolbar/toolbar-template-popup-cs1/index.ts b/ej2-javascript/code-snippet/toolbar/toolbar-template-popup-cs1/index.ts index f58f207ca..4a3265baa 100644 --- a/ej2-javascript/code-snippet/toolbar/toolbar-template-popup-cs1/index.ts +++ b/ej2-javascript/code-snippet/toolbar/toolbar-template-popup-cs1/index.ts @@ -2,7 +2,7 @@ import {Toolbar} from '@syncfusion/ej2-navigations'; -let toolbar: Toolbar = new Toolbar({ width: 300 , overflowMode: 'Popup' }); +let toolbar: Toolbar = new Toolbar({ width: 250 , overflowMode: 'Popup' }); toolbar.appendTo('#template_toolbar'); diff --git a/ej2-javascript/code-snippet/toolbar/toolbar-template-popup-cs1/js/index.html b/ej2-javascript/code-snippet/toolbar/toolbar-template-popup-cs1/js/index.html index 1dddb21d4..fab1d6b5e 100644 --- a/ej2-javascript/code-snippet/toolbar/toolbar-template-popup-cs1/js/index.html +++ b/ej2-javascript/code-snippet/toolbar/toolbar-template-popup-cs1/js/index.html @@ -7,9 +7,69 @@ - - - + + diff --git a/ej2-javascript/code-snippet/toolbar/toolbar-template-popup-cs1/ts/index.html b/ej2-javascript/code-snippet/toolbar/toolbar-template-popup-cs1/ts/index.html index 912582091..02fae20fe 100644 --- a/ej2-javascript/code-snippet/toolbar/toolbar-template-popup-cs1/ts/index.html +++ b/ej2-javascript/code-snippet/toolbar/toolbar-template-popup-cs1/ts/index.html @@ -12,6 +12,68 @@ + diff --git a/ej2-javascript/code-snippet/tooltip/es5-getting-started-cs1/js/index.html b/ej2-javascript/code-snippet/tooltip/es5-getting-started-cs1/js/index.html index 1cec26ad9..4ed7a63ee 100644 --- a/ej2-javascript/code-snippet/tooltip/es5-getting-started-cs1/js/index.html +++ b/ej2-javascript/code-snippet/tooltip/es5-getting-started-cs1/js/index.html @@ -14,8 +14,8 @@
    -
    - Show Tooltip +
    + Show Tooltip
    - + diff --git a/ej2-javascript/code-snippet/treegrid/tree-grid-cs1/es5-datasource.js b/ej2-javascript/code-snippet/treegrid/tree-grid-cs1/es5-datasource.js index cc0748024..7dfa92398 100644 --- a/ej2-javascript/code-snippet/treegrid/tree-grid-cs1/es5-datasource.js +++ b/ej2-javascript/code-snippet/treegrid/tree-grid-cs1/es5-datasource.js @@ -2,7 +2,7 @@ * TreeGrid DataSource */ -var sampleData = [ +window.sampleData = [ { taskID: 1, taskName: 'Planning', diff --git a/ej2-javascript/code-snippet/treegrid/tree-grid-cs1/index.js b/ej2-javascript/code-snippet/treegrid/tree-grid-cs1/index.js index 61af1edc9..723222c0f 100644 --- a/ej2-javascript/code-snippet/treegrid/tree-grid-cs1/index.js +++ b/ej2-javascript/code-snippet/treegrid/tree-grid-cs1/index.js @@ -1,6 +1,6 @@ ej.treegrid.TreeGrid.Inject(ej.treegrid.Page); var treeGridObj = new ej.treegrid.TreeGrid({ - dataSource: sampleData, + dataSource: window.sampleData, childMapping: 'subtasks', treeColumnIndex: 1, allowPaging: true, diff --git a/ej2-javascript/code-snippet/treegrid/tree-grid-cs1/js/index.html b/ej2-javascript/code-snippet/treegrid/tree-grid-cs1/js/index.html index e7f04ca40..1854d7268 100644 --- a/ej2-javascript/code-snippet/treegrid/tree-grid-cs1/js/index.html +++ b/ej2-javascript/code-snippet/treegrid/tree-grid-cs1/js/index.html @@ -24,7 +24,7 @@ - + diff --git a/ej2-javascript/code-snippet/treegrid/tree-grid-cs2/es5-datasource.js b/ej2-javascript/code-snippet/treegrid/tree-grid-cs2/es5-datasource.js index cc0748024..4ea201cd0 100644 --- a/ej2-javascript/code-snippet/treegrid/tree-grid-cs2/es5-datasource.js +++ b/ej2-javascript/code-snippet/treegrid/tree-grid-cs2/es5-datasource.js @@ -164,7 +164,7 @@ var sampleData = [ } ]; -var sortData = [ +window.sortData = [ { orderID: '1', orderName: 'Order 1', diff --git a/ej2-javascript/code-snippet/treegrid/tree-grid-cs2/index.js b/ej2-javascript/code-snippet/treegrid/tree-grid-cs2/index.js index 3c2bda63d..810bf22d3 100644 --- a/ej2-javascript/code-snippet/treegrid/tree-grid-cs2/index.js +++ b/ej2-javascript/code-snippet/treegrid/tree-grid-cs2/index.js @@ -1,6 +1,6 @@ ej.treegrid.TreeGrid.Inject(ej.treegrid.Page, ej.treegrid.Sort); var treeGridObj = new ej.treegrid.TreeGrid({ - dataSource: sortData, + dataSource: window.sortData, childMapping: 'subtasks', treeColumnIndex: 1, allowSorting: true, diff --git a/ej2-javascript/code-snippet/treegrid/tree-grid-cs2/js/index.html b/ej2-javascript/code-snippet/treegrid/tree-grid-cs2/js/index.html index e7f04ca40..1854d7268 100644 --- a/ej2-javascript/code-snippet/treegrid/tree-grid-cs2/js/index.html +++ b/ej2-javascript/code-snippet/treegrid/tree-grid-cs2/js/index.html @@ -24,7 +24,7 @@ - + diff --git a/ej2-javascript/code-snippet/treegrid/tree-grid-cs3/es5-datasource.js b/ej2-javascript/code-snippet/treegrid/tree-grid-cs3/es5-datasource.js index cc0748024..7dfa92398 100644 --- a/ej2-javascript/code-snippet/treegrid/tree-grid-cs3/es5-datasource.js +++ b/ej2-javascript/code-snippet/treegrid/tree-grid-cs3/es5-datasource.js @@ -2,7 +2,7 @@ * TreeGrid DataSource */ -var sampleData = [ +window.sampleData = [ { taskID: 1, taskName: 'Planning', diff --git a/ej2-javascript/code-snippet/treegrid/tree-grid-cs3/index.js b/ej2-javascript/code-snippet/treegrid/tree-grid-cs3/index.js index 9a3a523d7..602bffbeb 100644 --- a/ej2-javascript/code-snippet/treegrid/tree-grid-cs3/index.js +++ b/ej2-javascript/code-snippet/treegrid/tree-grid-cs3/index.js @@ -1,7 +1,7 @@ import { sampleData } from './es5-datasource.js'; ej.treegrid.TreeGrid.Inject(ej.treegrid.Page, ej.treegrid.Sort, ej.grids.Filter); var treeGridObj = new ej.treegrid.TreeGrid({ - dataSource: sampleData, + dataSource: window.sampleData, childMapping: 'subtasks', treeColumnIndex: 1, allowFiltering: true, diff --git a/ej2-javascript/code-snippet/treegrid/tree-grid-cs3/js/index.html b/ej2-javascript/code-snippet/treegrid/tree-grid-cs3/js/index.html index e7f04ca40..1854d7268 100644 --- a/ej2-javascript/code-snippet/treegrid/tree-grid-cs3/js/index.html +++ b/ej2-javascript/code-snippet/treegrid/tree-grid-cs3/js/index.html @@ -24,7 +24,7 @@ - + diff --git a/ej2-javascript/code-snippet/treegrid/tree-grid-cs4/es5-datasource.js b/ej2-javascript/code-snippet/treegrid/tree-grid-cs4/es5-datasource.js index cc0748024..7dfa92398 100644 --- a/ej2-javascript/code-snippet/treegrid/tree-grid-cs4/es5-datasource.js +++ b/ej2-javascript/code-snippet/treegrid/tree-grid-cs4/es5-datasource.js @@ -2,7 +2,7 @@ * TreeGrid DataSource */ -var sampleData = [ +window.sampleData = [ { taskID: 1, taskName: 'Planning', diff --git a/ej2-javascript/code-snippet/treegrid/tree-grid-cs4/index.js b/ej2-javascript/code-snippet/treegrid/tree-grid-cs4/index.js index 9a3a523d7..602bffbeb 100644 --- a/ej2-javascript/code-snippet/treegrid/tree-grid-cs4/index.js +++ b/ej2-javascript/code-snippet/treegrid/tree-grid-cs4/index.js @@ -1,7 +1,7 @@ import { sampleData } from './es5-datasource.js'; ej.treegrid.TreeGrid.Inject(ej.treegrid.Page, ej.treegrid.Sort, ej.grids.Filter); var treeGridObj = new ej.treegrid.TreeGrid({ - dataSource: sampleData, + dataSource: window.sampleData, childMapping: 'subtasks', treeColumnIndex: 1, allowFiltering: true, diff --git a/ej2-javascript/code-snippet/treegrid/tree-grid-cs4/js/index.html b/ej2-javascript/code-snippet/treegrid/tree-grid-cs4/js/index.html index e7f04ca40..1854d7268 100644 --- a/ej2-javascript/code-snippet/treegrid/tree-grid-cs4/js/index.html +++ b/ej2-javascript/code-snippet/treegrid/tree-grid-cs4/js/index.html @@ -24,7 +24,7 @@ - + diff --git a/ej2-javascript/code-snippet/treeview/checkboxes-cs1/index.css b/ej2-javascript/code-snippet/treeview/checkboxes-cs1/index.css index 756014e9c..26aa2012a 100644 --- a/ej2-javascript/code-snippet/treeview/checkboxes-cs1/index.css +++ b/ej2-javascript/code-snippet/treeview/checkboxes-cs1/index.css @@ -1,5 +1,5 @@ #container { - visibility: hidden; + visibility: hidden; } #loader { @@ -7,18 +7,8 @@ height: 40px; width: 30%; position: absolute; - font-family: 'Helvetica Neue','calibiri'; + font-family: 'Helvetica Neue', 'calibiri'; font-size: 14px; top: 45%; left: 45%; -} - -#treeparent { - display: block; - max-width: 350px; - max-height: 350px; - margin: auto; - overflow: auto; - border: 1px solid #dddddd; - border-radius: 3px; -} +} \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/checkboxes-cs1/index.js b/ej2-javascript/code-snippet/treeview/checkboxes-cs1/index.js index ef91a4daf..717e7c626 100644 --- a/ej2-javascript/code-snippet/treeview/checkboxes-cs1/index.js +++ b/ej2-javascript/code-snippet/treeview/checkboxes-cs1/index.js @@ -31,5 +31,4 @@ var treeObj = new ej.navigations.TreeView({ fields: { dataSource: countries, id: 'id', parentID: 'pid', text: 'name', hasChildren: 'hasChild' }, showCheckBox: true, }); -treeObj.appendTo('#tree'); - +treeObj.appendTo('#tree'); \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/checkboxes-cs1/index.ts b/ej2-javascript/code-snippet/treeview/checkboxes-cs1/index.ts index edf9fa58a..ba4cb068c 100644 --- a/ej2-javascript/code-snippet/treeview/checkboxes-cs1/index.ts +++ b/ej2-javascript/code-snippet/treeview/checkboxes-cs1/index.ts @@ -1,9 +1,6 @@ - - - import { enableRipple } from '@syncfusion/ej2-base'; -enableRipple(true); import { TreeView } from '@syncfusion/ej2-navigations'; +enableRipple(true); let countries: { [key: string]: Object }[] = [ { id: 1, name: 'Australia', hasChild: true, expanded: true }, @@ -36,7 +33,4 @@ let treeObj: TreeView = new TreeView({ fields: { dataSource: countries, id: 'id', parentID: 'pid', text: 'name', hasChildren: 'hasChild' }, showCheckBox: true, }); -treeObj.appendTo('#tree'); - - - +treeObj.appendTo('#tree'); \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/checkboxes-cs1/js/index.html b/ej2-javascript/code-snippet/treeview/checkboxes-cs1/js/index.html index 9cb4b475a..e8df6f448 100644 --- a/ej2-javascript/code-snippet/treeview/checkboxes-cs1/js/index.html +++ b/ej2-javascript/code-snippet/treeview/checkboxes-cs1/js/index.html @@ -1,8 +1,5 @@ - - - - - + + Essential JS 2 for TreeView @@ -12,24 +9,34 @@ - - + + - - - +
    - - - - \ No newline at end of file + + + + + + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/checkboxes-cs1/ts/index.html b/ej2-javascript/code-snippet/treeview/checkboxes-cs1/ts/index.html index e37a86b86..f1cb832a0 100644 --- a/ej2-javascript/code-snippet/treeview/checkboxes-cs1/ts/index.html +++ b/ej2-javascript/code-snippet/treeview/checkboxes-cs1/ts/index.html @@ -22,6 +22,17 @@
    + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/checkboxes/checked-nodes-cs1/index.css b/ej2-javascript/code-snippet/treeview/checkboxes/checked-nodes-cs1/index.css index 756014e9c..26aa2012a 100644 --- a/ej2-javascript/code-snippet/treeview/checkboxes/checked-nodes-cs1/index.css +++ b/ej2-javascript/code-snippet/treeview/checkboxes/checked-nodes-cs1/index.css @@ -1,5 +1,5 @@ #container { - visibility: hidden; + visibility: hidden; } #loader { @@ -7,18 +7,8 @@ height: 40px; width: 30%; position: absolute; - font-family: 'Helvetica Neue','calibiri'; + font-family: 'Helvetica Neue', 'calibiri'; font-size: 14px; top: 45%; left: 45%; -} - -#treeparent { - display: block; - max-width: 350px; - max-height: 350px; - margin: auto; - overflow: auto; - border: 1px solid #dddddd; - border-radius: 3px; -} +} \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/checkboxes/checked-nodes-cs1/index.js b/ej2-javascript/code-snippet/treeview/checkboxes/checked-nodes-cs1/index.js index 9d22b8ece..b93c59592 100644 --- a/ej2-javascript/code-snippet/treeview/checkboxes/checked-nodes-cs1/index.js +++ b/ej2-javascript/code-snippet/treeview/checkboxes/checked-nodes-cs1/index.js @@ -30,13 +30,11 @@ var countries = [ var treeObj = new ej.navigations.TreeView({ fields: { dataSource: countries, id: 'id', parentID: 'pid', text: 'name', hasChildren: 'hasChild' }, showCheckBox: true, - checkedNodes: ['2','6'], + checkedNodes: ['2', '6'], nodeChecked: nodeChecked }); treeObj.appendTo('#tree'); function nodeChecked(args) { alert("The checked node's id: " + treeObj.checkedNodes); // To alert the checked node's id. -} - - +} \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/checkboxes/checked-nodes-cs1/index.ts b/ej2-javascript/code-snippet/treeview/checkboxes/checked-nodes-cs1/index.ts index 7b803cf8c..5af77a910 100644 --- a/ej2-javascript/code-snippet/treeview/checkboxes/checked-nodes-cs1/index.ts +++ b/ej2-javascript/code-snippet/treeview/checkboxes/checked-nodes-cs1/index.ts @@ -1,9 +1,6 @@ - - - import { enableRipple } from '@syncfusion/ej2-base'; -enableRipple(true); import { TreeView, NodeCheckEventArgs } from '@syncfusion/ej2-navigations'; +enableRipple(true); let countries: { [key: string]: Object }[] = [ { id: 1, name: 'Australia', hasChild: true, expanded: true }, @@ -35,14 +32,11 @@ let countries: { [key: string]: Object }[] = [ let treeObj: TreeView = new TreeView({ fields: { dataSource: countries, id: 'id', parentID: 'pid', text: 'name', hasChildren: 'hasChild' }, showCheckBox: true, - checkedNodes: ['2','6'], + checkedNodes: ['2', '6'], nodeChecked: nodeChecked }); treeObj.appendTo('#tree'); function nodeChecked(args: NodeCheckEventArgs) { alert("The checked node's id: " + treeObj.checkedNodes); // To alert the checked node's id. -} - - - +} \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/checkboxes/checked-nodes-cs1/js/index.html b/ej2-javascript/code-snippet/treeview/checkboxes/checked-nodes-cs1/js/index.html index 9cb4b475a..e8df6f448 100644 --- a/ej2-javascript/code-snippet/treeview/checkboxes/checked-nodes-cs1/js/index.html +++ b/ej2-javascript/code-snippet/treeview/checkboxes/checked-nodes-cs1/js/index.html @@ -1,8 +1,5 @@ - - - - - + + Essential JS 2 for TreeView @@ -12,24 +9,34 @@ - - + + - - - +
    - - - - \ No newline at end of file + + + + + + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/checkboxes/checked-nodes-cs1/ts/index.html b/ej2-javascript/code-snippet/treeview/checkboxes/checked-nodes-cs1/ts/index.html index e37a86b86..f1cb832a0 100644 --- a/ej2-javascript/code-snippet/treeview/checkboxes/checked-nodes-cs1/ts/index.html +++ b/ej2-javascript/code-snippet/treeview/checkboxes/checked-nodes-cs1/ts/index.html @@ -22,6 +22,17 @@
    + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/data-binding/hierarchical-data-cs1/index.css b/ej2-javascript/code-snippet/treeview/data-binding/hierarchical-data-cs1/index.css index 756014e9c..26aa2012a 100644 --- a/ej2-javascript/code-snippet/treeview/data-binding/hierarchical-data-cs1/index.css +++ b/ej2-javascript/code-snippet/treeview/data-binding/hierarchical-data-cs1/index.css @@ -1,5 +1,5 @@ #container { - visibility: hidden; + visibility: hidden; } #loader { @@ -7,18 +7,8 @@ height: 40px; width: 30%; position: absolute; - font-family: 'Helvetica Neue','calibiri'; + font-family: 'Helvetica Neue', 'calibiri'; font-size: 14px; top: 45%; left: 45%; -} - -#treeparent { - display: block; - max-width: 350px; - max-height: 350px; - margin: auto; - overflow: auto; - border: 1px solid #dddddd; - border-radius: 3px; -} +} \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/data-binding/hierarchical-data-cs1/index.js b/ej2-javascript/code-snippet/treeview/data-binding/hierarchical-data-cs1/index.js index d97d27163..84944bfe6 100644 --- a/ej2-javascript/code-snippet/treeview/data-binding/hierarchical-data-cs1/index.js +++ b/ej2-javascript/code-snippet/treeview/data-binding/hierarchical-data-cs1/index.js @@ -56,5 +56,4 @@ var continents = [ var treeObj = new ej.navigations.TreeView({ fields: { dataSource: continents, id: 'code', text: 'name', child: 'countries' } }); -treeObj.appendTo('#tree'); - +treeObj.appendTo('#tree'); \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/data-binding/hierarchical-data-cs1/index.ts b/ej2-javascript/code-snippet/treeview/data-binding/hierarchical-data-cs1/index.ts index 563764b38..29d846ebd 100644 --- a/ej2-javascript/code-snippet/treeview/data-binding/hierarchical-data-cs1/index.ts +++ b/ej2-javascript/code-snippet/treeview/data-binding/hierarchical-data-cs1/index.ts @@ -1,9 +1,6 @@ - - - import { enableRipple } from '@syncfusion/ej2-base'; -enableRipple(true); import { TreeView } from '@syncfusion/ej2-navigations'; +enableRipple(true); //define the nested array of JSON objects let continents: { [key: string]: Object; }[] = [ @@ -61,7 +58,4 @@ let continents: { [key: string]: Object; }[] = [ let treeObj: TreeView = new TreeView({ fields: { dataSource: continents, id: 'code', text: 'name', child: 'countries' } }); -treeObj.appendTo('#tree'); - - - +treeObj.appendTo('#tree'); \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/data-binding/hierarchical-data-cs1/js/index.html b/ej2-javascript/code-snippet/treeview/data-binding/hierarchical-data-cs1/js/index.html index 48bc10545..bb8111d5a 100644 --- a/ej2-javascript/code-snippet/treeview/data-binding/hierarchical-data-cs1/js/index.html +++ b/ej2-javascript/code-snippet/treeview/data-binding/hierarchical-data-cs1/js/index.html @@ -1,8 +1,5 @@ - - - - - + + Essential JS 2 for TreeView @@ -11,24 +8,34 @@ - - + + - - - +
    - - - - \ No newline at end of file + + + + + + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/data-binding/hierarchical-data-cs1/ts/index.html b/ej2-javascript/code-snippet/treeview/data-binding/hierarchical-data-cs1/ts/index.html index 3d7049edb..1899a0176 100644 --- a/ej2-javascript/code-snippet/treeview/data-binding/hierarchical-data-cs1/ts/index.html +++ b/ej2-javascript/code-snippet/treeview/data-binding/hierarchical-data-cs1/ts/index.html @@ -21,6 +21,17 @@
    + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/data-binding/remote-data-cs1/index.css b/ej2-javascript/code-snippet/treeview/data-binding/remote-data-cs1/index.css index 756014e9c..26aa2012a 100644 --- a/ej2-javascript/code-snippet/treeview/data-binding/remote-data-cs1/index.css +++ b/ej2-javascript/code-snippet/treeview/data-binding/remote-data-cs1/index.css @@ -1,5 +1,5 @@ #container { - visibility: hidden; + visibility: hidden; } #loader { @@ -7,18 +7,8 @@ height: 40px; width: 30%; position: absolute; - font-family: 'Helvetica Neue','calibiri'; + font-family: 'Helvetica Neue', 'calibiri'; font-size: 14px; top: 45%; left: 45%; -} - -#treeparent { - display: block; - max-width: 350px; - max-height: 350px; - margin: auto; - overflow: auto; - border: 1px solid #dddddd; - border-radius: 3px; -} +} \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/data-binding/remote-data-cs1/index.js b/ej2-javascript/code-snippet/treeview/data-binding/remote-data-cs1/index.js index 05195a92e..6c5a1889b 100644 --- a/ej2-javascript/code-snippet/treeview/data-binding/remote-data-cs1/index.js +++ b/ej2-javascript/code-snippet/treeview/data-binding/remote-data-cs1/index.js @@ -9,9 +9,9 @@ var query = new ej.data.Query().from('Employees').select('EmployeeID,FirstName,T var query1 = new ej.data.Query().from('Orders').select('OrderID,EmployeeID,ShipName').take(5); var treeObj = new ej.navigations.TreeView({ - fields: { dataSource: data, query: query, id: 'EmployeeID', text: 'FirstName', hasChildren: 'EmployeeID', tooltip: 'Title', + fields: { + dataSource: data, query: query, id: 'EmployeeID', text: 'FirstName', hasChildren: 'EmployeeID', tooltip: 'Title', child: { dataSource: data, query: query1, id: 'OrderID', parentID: 'EmployeeID', text: 'ShipName' } } }); -treeObj.appendTo('#tree'); - +treeObj.appendTo('#tree'); \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/data-binding/remote-data-cs1/index.ts b/ej2-javascript/code-snippet/treeview/data-binding/remote-data-cs1/index.ts index eeea95fb7..b9875c292 100644 --- a/ej2-javascript/code-snippet/treeview/data-binding/remote-data-cs1/index.ts +++ b/ej2-javascript/code-snippet/treeview/data-binding/remote-data-cs1/index.ts @@ -1,9 +1,7 @@ - - - import { enableRipple } from '@syncfusion/ej2-base'; -enableRipple(true); import { TreeView } from '@syncfusion/ej2-navigations'; +enableRipple(true); + //import data manager related classes import { Query, DataManager, ODataV4Adaptor } from '@syncfusion/ej2-data'; @@ -16,11 +14,9 @@ let query: Query = new Query().from('Employees').select('EmployeeID,FirstName,Ti let query1: Query = new Query().from('Orders').select('OrderID,EmployeeID,ShipName').take(5); let treeObj: TreeView = new TreeView({ - fields: { dataSource: data, query: query, id: 'EmployeeID', text: 'FirstName', hasChildren: 'EmployeeID', tooltip: 'Title', + fields: { + dataSource: data, query: query, id: 'EmployeeID', text: 'FirstName', hasChildren: 'EmployeeID', tooltip: 'Title', child: { dataSource: data, query: query1, id: 'OrderID', parentID: 'EmployeeID', text: 'ShipName' } } }); -treeObj.appendTo('#tree'); - - - +treeObj.appendTo('#tree'); \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/data-binding/remote-data-cs1/js/index.html b/ej2-javascript/code-snippet/treeview/data-binding/remote-data-cs1/js/index.html index 48bc10545..724ec194e 100644 --- a/ej2-javascript/code-snippet/treeview/data-binding/remote-data-cs1/js/index.html +++ b/ej2-javascript/code-snippet/treeview/data-binding/remote-data-cs1/js/index.html @@ -1,8 +1,6 @@ - - - - + + Essential JS 2 for TreeView @@ -11,24 +9,34 @@ - - - + + - - +
    - - - - \ No newline at end of file + + + + + + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/data-binding/remote-data-cs1/ts/index.html b/ej2-javascript/code-snippet/treeview/data-binding/remote-data-cs1/ts/index.html index 3d7049edb..1899a0176 100644 --- a/ej2-javascript/code-snippet/treeview/data-binding/remote-data-cs1/ts/index.html +++ b/ej2-javascript/code-snippet/treeview/data-binding/remote-data-cs1/ts/index.html @@ -21,6 +21,17 @@
    + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/data-binding/self-referential-data-cs1/index.css b/ej2-javascript/code-snippet/treeview/data-binding/self-referential-data-cs1/index.css index 756014e9c..26aa2012a 100644 --- a/ej2-javascript/code-snippet/treeview/data-binding/self-referential-data-cs1/index.css +++ b/ej2-javascript/code-snippet/treeview/data-binding/self-referential-data-cs1/index.css @@ -1,5 +1,5 @@ #container { - visibility: hidden; + visibility: hidden; } #loader { @@ -7,18 +7,8 @@ height: 40px; width: 30%; position: absolute; - font-family: 'Helvetica Neue','calibiri'; + font-family: 'Helvetica Neue', 'calibiri'; font-size: 14px; top: 45%; left: 45%; -} - -#treeparent { - display: block; - max-width: 350px; - max-height: 350px; - margin: auto; - overflow: auto; - border: 1px solid #dddddd; - border-radius: 3px; -} +} \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/data-binding/self-referential-data-cs1/index.js b/ej2-javascript/code-snippet/treeview/data-binding/self-referential-data-cs1/index.js index 710f34c92..6f958f792 100644 --- a/ej2-javascript/code-snippet/treeview/data-binding/self-referential-data-cs1/index.js +++ b/ej2-javascript/code-snippet/treeview/data-binding/self-referential-data-cs1/index.js @@ -29,6 +29,4 @@ var localData = [ var treeObj = new ej.navigations.TreeView({ fields: { dataSource: localData, id: 'id', parentID: 'pid', text: 'name', hasChildren: 'hasChild' } }); -treeObj.appendTo('#tree'); - - +treeObj.appendTo('#tree'); \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/data-binding/self-referential-data-cs1/index.ts b/ej2-javascript/code-snippet/treeview/data-binding/self-referential-data-cs1/index.ts index c6f314b95..40b49ae05 100644 --- a/ej2-javascript/code-snippet/treeview/data-binding/self-referential-data-cs1/index.ts +++ b/ej2-javascript/code-snippet/treeview/data-binding/self-referential-data-cs1/index.ts @@ -1,9 +1,6 @@ - - - import { enableRipple } from '@syncfusion/ej2-base'; -enableRipple(true); import { TreeView } from '@syncfusion/ej2-navigations'; +enableRipple(true); let localData: { [key: string]: Object }[] = [ { id: 1, name: 'Discover Music', hasChild: true, expanded: true }, @@ -34,7 +31,4 @@ let localData: { [key: string]: Object }[] = [ let treeObj: TreeView = new TreeView({ fields: { dataSource: localData, id: 'id', parentID: 'pid', text: 'name', hasChildren: 'hasChild' } }); -treeObj.appendTo('#tree'); - - - +treeObj.appendTo('#tree'); \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/data-binding/self-referential-data-cs1/js/index.html b/ej2-javascript/code-snippet/treeview/data-binding/self-referential-data-cs1/js/index.html index 48bc10545..724ec194e 100644 --- a/ej2-javascript/code-snippet/treeview/data-binding/self-referential-data-cs1/js/index.html +++ b/ej2-javascript/code-snippet/treeview/data-binding/self-referential-data-cs1/js/index.html @@ -1,8 +1,6 @@ - - - - + + Essential JS 2 for TreeView @@ -11,24 +9,34 @@ - - - + + - - +
    - - - - \ No newline at end of file + + + + + + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/data-binding/self-referential-data-cs1/ts/index.html b/ej2-javascript/code-snippet/treeview/data-binding/self-referential-data-cs1/ts/index.html index 3d7049edb..1899a0176 100644 --- a/ej2-javascript/code-snippet/treeview/data-binding/self-referential-data-cs1/ts/index.html +++ b/ej2-javascript/code-snippet/treeview/data-binding/self-referential-data-cs1/ts/index.html @@ -21,6 +21,17 @@
    + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/drag-and-drop/multiple-cs1/index.css b/ej2-javascript/code-snippet/treeview/drag-and-drop/multiple-cs1/index.css index 756014e9c..26aa2012a 100644 --- a/ej2-javascript/code-snippet/treeview/drag-and-drop/multiple-cs1/index.css +++ b/ej2-javascript/code-snippet/treeview/drag-and-drop/multiple-cs1/index.css @@ -1,5 +1,5 @@ #container { - visibility: hidden; + visibility: hidden; } #loader { @@ -7,18 +7,8 @@ height: 40px; width: 30%; position: absolute; - font-family: 'Helvetica Neue','calibiri'; + font-family: 'Helvetica Neue', 'calibiri'; font-size: 14px; top: 45%; left: 45%; -} - -#treeparent { - display: block; - max-width: 350px; - max-height: 350px; - margin: auto; - overflow: auto; - border: 1px solid #dddddd; - border-radius: 3px; -} +} \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/drag-and-drop/multiple-cs1/index.js b/ej2-javascript/code-snippet/treeview/drag-and-drop/multiple-cs1/index.js index 820ec903d..d2b49dc20 100644 --- a/ej2-javascript/code-snippet/treeview/drag-and-drop/multiple-cs1/index.js +++ b/ej2-javascript/code-snippet/treeview/drag-and-drop/multiple-cs1/index.js @@ -48,5 +48,4 @@ var treeObj = new ej.navigations.TreeView({ allowDragAndDrop: true, allowMultiSelection: true, }); -treeObj.appendTo('#tree'); - +treeObj.appendTo('#tree'); \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/drag-and-drop/multiple-cs1/index.ts b/ej2-javascript/code-snippet/treeview/drag-and-drop/multiple-cs1/index.ts index 2ec7d240a..ed6072cec 100644 --- a/ej2-javascript/code-snippet/treeview/drag-and-drop/multiple-cs1/index.ts +++ b/ej2-javascript/code-snippet/treeview/drag-and-drop/multiple-cs1/index.ts @@ -1,9 +1,6 @@ - - - import { enableRipple } from '@syncfusion/ej2-base'; -enableRipple(true); import { TreeView } from '@syncfusion/ej2-navigations'; +enableRipple(true); let productTeam: { [key: string]: Object }[] = [ { @@ -53,7 +50,4 @@ let treeObj: TreeView = new TreeView({ allowDragAndDrop: true, allowMultiSelection: true, }); -treeObj.appendTo('#tree'); - - - +treeObj.appendTo('#tree'); \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/drag-and-drop/multiple-cs1/js/index.html b/ej2-javascript/code-snippet/treeview/drag-and-drop/multiple-cs1/js/index.html index 48bc10545..bb8111d5a 100644 --- a/ej2-javascript/code-snippet/treeview/drag-and-drop/multiple-cs1/js/index.html +++ b/ej2-javascript/code-snippet/treeview/drag-and-drop/multiple-cs1/js/index.html @@ -1,8 +1,5 @@ - - - - - + + Essential JS 2 for TreeView @@ -11,24 +8,34 @@ - - + + - - - +
    - - - - \ No newline at end of file + + + + + + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/drag-and-drop/multiple-cs1/systemjs.config.js b/ej2-javascript/code-snippet/treeview/drag-and-drop/multiple-cs1/systemjs.config.js index 4c0c0a9fb..5cd6e038a 100644 --- a/ej2-javascript/code-snippet/treeview/drag-and-drop/multiple-cs1/systemjs.config.js +++ b/ej2-javascript/code-snippet/treeview/drag-and-drop/multiple-cs1/systemjs.config.js @@ -17,12 +17,6 @@ System.config({ typescript: "https://unpkg.com/typescript@2.2.2/lib/typescript.js", //Syncfusion packages mapping "@syncfusion/ej2-base": "syncfusion:ej2-base/dist/ej2-base.umd.min.js", - "@syncfusion/ej2-data": "syncfusion:ej2-data/dist/ej2-data.umd.min.js", - "@syncfusion/ej2-lists": "syncfusion:ej2-lists/dist/ej2-lists.umd.min.js", - "@syncfusion/ej2-inputs": "syncfusion:ej2-inputs/dist/ej2-inputs.umd.min.js", - "@syncfusion/ej2-buttons": "syncfusion:ej2-buttons/dist/ej2-buttons.umd.min.js", - "@syncfusion/ej2-splitbuttons": "syncfusion:ej2-splitbuttons/dist/ej2-splitbuttons.umd.min.js", - "@syncfusion/ej2-popups": "syncfusion:ej2-popups/dist/ej2-popups.umd.min.js", "@syncfusion/ej2-navigations": "syncfusion:ej2-navigations/dist/ej2-navigations.umd.min.js", } }); diff --git a/ej2-javascript/code-snippet/treeview/drag-and-drop/multiple-cs1/ts/index.html b/ej2-javascript/code-snippet/treeview/drag-and-drop/multiple-cs1/ts/index.html index 3d7049edb..1899a0176 100644 --- a/ej2-javascript/code-snippet/treeview/drag-and-drop/multiple-cs1/ts/index.html +++ b/ej2-javascript/code-snippet/treeview/drag-and-drop/multiple-cs1/ts/index.html @@ -21,6 +21,17 @@
    + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/drag-and-drop/single-cs1/index.css b/ej2-javascript/code-snippet/treeview/drag-and-drop/single-cs1/index.css index 756014e9c..26aa2012a 100644 --- a/ej2-javascript/code-snippet/treeview/drag-and-drop/single-cs1/index.css +++ b/ej2-javascript/code-snippet/treeview/drag-and-drop/single-cs1/index.css @@ -1,5 +1,5 @@ #container { - visibility: hidden; + visibility: hidden; } #loader { @@ -7,18 +7,8 @@ height: 40px; width: 30%; position: absolute; - font-family: 'Helvetica Neue','calibiri'; + font-family: 'Helvetica Neue', 'calibiri'; font-size: 14px; top: 45%; left: 45%; -} - -#treeparent { - display: block; - max-width: 350px; - max-height: 350px; - margin: auto; - overflow: auto; - border: 1px solid #dddddd; - border-radius: 3px; -} +} \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/drag-and-drop/single-cs1/index.js b/ej2-javascript/code-snippet/treeview/drag-and-drop/single-cs1/index.js index d63ffb473..5adf11d47 100644 --- a/ej2-javascript/code-snippet/treeview/drag-and-drop/single-cs1/index.js +++ b/ej2-javascript/code-snippet/treeview/drag-and-drop/single-cs1/index.js @@ -47,5 +47,4 @@ var treeObj = new ej.navigations.TreeView({ fields: { dataSource: productTeam, id: 'id', text: 'name', child: 'child', selected: 'isSelected' }, allowDragAndDrop: true, }); -treeObj.appendTo('#tree'); - +treeObj.appendTo('#tree'); \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/drag-and-drop/single-cs1/index.ts b/ej2-javascript/code-snippet/treeview/drag-and-drop/single-cs1/index.ts index 7e6c663b6..c858555eb 100644 --- a/ej2-javascript/code-snippet/treeview/drag-and-drop/single-cs1/index.ts +++ b/ej2-javascript/code-snippet/treeview/drag-and-drop/single-cs1/index.ts @@ -1,9 +1,6 @@ - - - import { enableRipple } from '@syncfusion/ej2-base'; -enableRipple(true); import { TreeView } from '@syncfusion/ej2-navigations'; +enableRipple(true); let productTeam: { [key: string]: Object }[] = [ { @@ -52,7 +49,4 @@ let treeObj: TreeView = new TreeView({ fields: { dataSource: productTeam, id: 'id', text: 'name', child: 'child', selected: 'isSelected' }, allowDragAndDrop: true, }); -treeObj.appendTo('#tree'); - - - +treeObj.appendTo('#tree'); \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/drag-and-drop/single-cs1/js/index.html b/ej2-javascript/code-snippet/treeview/drag-and-drop/single-cs1/js/index.html index 48bc10545..bb8111d5a 100644 --- a/ej2-javascript/code-snippet/treeview/drag-and-drop/single-cs1/js/index.html +++ b/ej2-javascript/code-snippet/treeview/drag-and-drop/single-cs1/js/index.html @@ -1,8 +1,5 @@ - - - - - + + Essential JS 2 for TreeView @@ -11,24 +8,34 @@ - - + + - - - +
    - - - - \ No newline at end of file + + + + + + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/drag-and-drop/single-cs1/ts/index.html b/ej2-javascript/code-snippet/treeview/drag-and-drop/single-cs1/ts/index.html index 3d7049edb..1899a0176 100644 --- a/ej2-javascript/code-snippet/treeview/drag-and-drop/single-cs1/ts/index.html +++ b/ej2-javascript/code-snippet/treeview/drag-and-drop/single-cs1/ts/index.html @@ -21,6 +21,17 @@
    + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/es5-getting-started-cs1/js/index.html b/ej2-javascript/code-snippet/treeview/es5-getting-started-cs1/js/index.html index 903194955..5bdc31ae0 100644 --- a/ej2-javascript/code-snippet/treeview/es5-getting-started-cs1/js/index.html +++ b/ej2-javascript/code-snippet/treeview/es5-getting-started-cs1/js/index.html @@ -1,64 +1,67 @@ - - Essential JS 2 for TreeView - - - - + + + + +
    -
    +
    - + //Render initialized TreeView + treeViewInstance.appendTo("#tree"); + diff --git a/ej2-javascript/code-snippet/treeview/getting-started-cs1/index.css b/ej2-javascript/code-snippet/treeview/getting-started-cs1/index.css index 756014e9c..26aa2012a 100644 --- a/ej2-javascript/code-snippet/treeview/getting-started-cs1/index.css +++ b/ej2-javascript/code-snippet/treeview/getting-started-cs1/index.css @@ -1,5 +1,5 @@ #container { - visibility: hidden; + visibility: hidden; } #loader { @@ -7,18 +7,8 @@ height: 40px; width: 30%; position: absolute; - font-family: 'Helvetica Neue','calibiri'; + font-family: 'Helvetica Neue', 'calibiri'; font-size: 14px; top: 45%; left: 45%; -} - -#treeparent { - display: block; - max-width: 350px; - max-height: 350px; - margin: auto; - overflow: auto; - border: 1px solid #dddddd; - border-radius: 3px; -} +} \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/getting-started-cs1/index.js b/ej2-javascript/code-snippet/treeview/getting-started-cs1/index.js index 1c3612251..85274cdc7 100644 --- a/ej2-javascript/code-snippet/treeview/getting-started-cs1/index.js +++ b/ej2-javascript/code-snippet/treeview/getting-started-cs1/index.js @@ -26,12 +26,10 @@ var data = [ ] }, ]; -//Initialize TreeView component +//Initialize TreeView control var treeViewInstance = new ej.navigations.TreeView({ fields: { dataSource: data, id: 'nodeId', text: 'nodeText', child: 'nodeChild' } }); //Render initialized TreeView -treeViewInstance.appendTo("#tree"); - - +treeViewInstance.appendTo("#tree"); \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/getting-started-cs1/index.ts b/ej2-javascript/code-snippet/treeview/getting-started-cs1/index.ts index a2415f4e8..3f8420ecc 100644 --- a/ej2-javascript/code-snippet/treeview/getting-started-cs1/index.ts +++ b/ej2-javascript/code-snippet/treeview/getting-started-cs1/index.ts @@ -1,9 +1,6 @@ - - - import { enableRipple } from '@syncfusion/ej2-base'; -enableRipple(true); import { TreeView } from '@syncfusion/ej2-navigations'; +enableRipple(true); //define the array of JSON let data: { [key: string]: Object }[] = [ @@ -31,13 +28,10 @@ let data: { [key: string]: Object }[] = [ ] }, ]; -//Initialize TreeView component +//Initialize TreeView control let treeViewInstance: TreeView = new TreeView({ fields: { dataSource: data, id: 'nodeId', text: 'nodeText', child: 'nodeChild' } }); //Render initialized TreeView -treeViewInstance.appendTo("#tree"); - - - +treeViewInstance.appendTo("#tree"); \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/getting-started-cs1/ts/index.html b/ej2-javascript/code-snippet/treeview/getting-started-cs1/ts/index.html index 3d7049edb..1899a0176 100644 --- a/ej2-javascript/code-snippet/treeview/getting-started-cs1/ts/index.html +++ b/ej2-javascript/code-snippet/treeview/getting-started-cs1/ts/index.html @@ -21,6 +21,17 @@
    + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/accordion-tree-cs1/index.css b/ej2-javascript/code-snippet/treeview/how-to/accordion-tree-cs1/index.css index 501fd10f6..26aa2012a 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/accordion-tree-cs1/index.css +++ b/ej2-javascript/code-snippet/treeview/how-to/accordion-tree-cs1/index.css @@ -1,5 +1,5 @@ #container { - visibility: hidden; + visibility: hidden; } #loader { @@ -7,39 +7,8 @@ height: 40px; width: 30%; position: absolute; - font-family: 'Helvetica Neue','calibiri'; + font-family: 'Helvetica Neue', 'calibiri'; font-size: 14px; top: 45%; left: 45%; -} - -#treeparent { - display: block; - max-width: 350px; - max-height: 350px; - margin: auto; - overflow: auto; - padding-top: 50px; -} -.accordiontree .e-list-item.e-level-1 > .e-fullrow, .accordiontree .e-list-item.e-level-1.e-active > .e-fullrow, .accordiontree .e-list-item.e-level-1.e-hover > .e-fullrow , .accordiontree .e-list-item.e-level-1 > .e-fullrow, .accordiontree .e-list-item.e-level-1.e-active.e-hover > .e-fullrow { - background-color: darkslateblue; - border-color: darkslateblue; -} - -.accordiontree .e-list-item.e-level-1 > .e-text-content .e-list-text, .accordiontree .e-list-item.e-level-1.e-active > .e-text-content .e-list-text, .accordiontree .e-list-item.e-level-1.e-hover > .e-text-content .e-list-text, .accordiontree .e-list-item.e-level-1.e-active.e-hover > .e-text-content .e-list-text { - color: white; - font-size: 16px; -} -.accordiontree .e-list-item.e-level- .e-icons.e-icon-collapsible, .accordiontree .e-list-item.e-level-1 .e-icons.e-icon-collapsible,.accordiontree .e-list-item.e-level-1 .e-icon-expandable { - display: none -} - -.accordiontree .e-list-item.e-level-2 > .e-fullrow, .accordiontree .e-list-item.e-level-2.e-active > .e-fullrow, .accordiontree .e-list-item.e-level-2.e-hover > .e-fullrow , .accordiontree .e-list-item.e-level-2 > .e-fullrow, .accordiontree .e-list-item.e-level-2.e-active.e-hover > .e-fullrow { - background-color: white; - border-color: white; -} - -.accordiontree .e-list-item.e-level-2 > .e-text-content .e-list-text, .accordiontree .e-list-item.e-level-2.e-active > .e-text-content .e-list-text, .accordiontree .e-list-item.e-level-2.e-hover > .e-text-content .e-list-text, .accordiontree .e-list-item.e-level-2.e-active.e-hover > .e-text-content .e-list-text { - color: blue; - font-size: 14px; -} +} \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/accordion-tree-cs1/index.js b/ej2-javascript/code-snippet/treeview/how-to/accordion-tree-cs1/index.js index cf78d6df4..30a655c84 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/accordion-tree-cs1/index.js +++ b/ej2-javascript/code-snippet/treeview/how-to/accordion-tree-cs1/index.js @@ -1,9 +1,9 @@ - /** - * Accordion tree sample - */ +/** +* Accordion tree sample +*/ -// Hierarchical data source for TreeView component - var continents = [ +// Hierarchical data source for TreeView control +var continents = [ { code: "AF", name: "Africa", countries: [ { code: "NGA", name: "Nigeria" }, @@ -22,8 +22,9 @@ code: "EU", name: "Europe", countries: [ { code: "DNK", name: "Denmark" }, { code: "FIN", name: "Finland" }, - { code: "AUT", name: "Austria", - } + { + code: "AUT", name: "Austria", + } ] }, { @@ -40,21 +41,20 @@ { code: "WSM", name: "Samoa" } ] }, - + ]; -// Render treeview with cssClass +// Render TreeView with cssClass var tree1 = new ej.navigations.TreeView({ fields: { dataSource: continents, id: "code", text: "name", child: "countries" }, nodeSelected: nodeSelect, - cssClass: ("accordiontree") + cssClass: ("accordiontree") }); tree1.appendTo('#tree'); -function nodeSelect (args) { +function nodeSelect(args) { if (args.node.classList.contains('e-level-1')) { this.collapseAll(); this.expandAll([args.node]); } -} - +} \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/accordion-tree-cs1/index.ts b/ej2-javascript/code-snippet/treeview/how-to/accordion-tree-cs1/index.ts index e5b32b888..7e12d464b 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/accordion-tree-cs1/index.ts +++ b/ej2-javascript/code-snippet/treeview/how-to/accordion-tree-cs1/index.ts @@ -1,13 +1,10 @@ - - - -import { TreeView } from '@syncfusion/ej2-navigations'; +import { TreeView, NodeSelectEventArgs } from '@syncfusion/ej2-navigations'; /** * Accordion tree sample */ - // Hierarchical data source for TreeView component - let continents: { [key: string]: Object; }[] = [ +// Hierarchical data source for TreeView control +let continents: { [key: string]: Object; }[] = [ { code: "AF", name: "Africa", countries: [ { code: "NGA", name: "Nigeria" }, @@ -26,8 +23,9 @@ import { TreeView } from '@syncfusion/ej2-navigations'; code: "EU", name: "Europe", countries: [ { code: "DNK", name: "Denmark" }, { code: "FIN", name: "Finland" }, - { code: "AUT", name: "Austria", - } + { + code: "AUT", name: "Austria", + } ] }, { @@ -46,7 +44,7 @@ import { TreeView } from '@syncfusion/ej2-navigations'; }, ]; -// Render treeview with cssClass +// Render TreeView with cssClass let tree1: TreeView = new TreeView({ fields: { dataSource: continents, id: "code", text: "name", child: "countries" }, nodeSelected: nodeSelect, @@ -54,12 +52,9 @@ let tree1: TreeView = new TreeView({ }); tree1.appendTo('#tree'); -function nodeSelect (args: NodeSelectEventArgs) { +function nodeSelect(args: NodeSelectEventArgs) { if (args.node.classList.contains('e-level-1')) { this.collapseAll(); this.expandAll([args.node]); } -} - - - +} \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/accordion-tree-cs1/js/index.html b/ej2-javascript/code-snippet/treeview/how-to/accordion-tree-cs1/js/index.html index 3f4372b05..a34e9b2e4 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/accordion-tree-cs1/js/index.html +++ b/ej2-javascript/code-snippet/treeview/how-to/accordion-tree-cs1/js/index.html @@ -1,4 +1,6 @@ - + + + Essential JS 2 for TreeView @@ -8,26 +10,73 @@ - - - + -
    + + + + + + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/accordion-tree-cs1/ts/index.html b/ej2-javascript/code-snippet/treeview/how-to/accordion-tree-cs1/ts/index.html index 48604f8ed..f7e5af268 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/accordion-tree-cs1/ts/index.html +++ b/ej2-javascript/code-snippet/treeview/how-to/accordion-tree-cs1/ts/index.html @@ -22,6 +22,56 @@
    + - + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/auto-hide-icons-cs1/index.css b/ej2-javascript/code-snippet/treeview/how-to/auto-hide-icons-cs1/index.css index 756014e9c..26aa2012a 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/auto-hide-icons-cs1/index.css +++ b/ej2-javascript/code-snippet/treeview/how-to/auto-hide-icons-cs1/index.css @@ -1,5 +1,5 @@ #container { - visibility: hidden; + visibility: hidden; } #loader { @@ -7,18 +7,8 @@ height: 40px; width: 30%; position: absolute; - font-family: 'Helvetica Neue','calibiri'; + font-family: 'Helvetica Neue', 'calibiri'; font-size: 14px; top: 45%; left: 45%; -} - -#treeparent { - display: block; - max-width: 350px; - max-height: 350px; - margin: auto; - overflow: auto; - border: 1px solid #dddddd; - border-radius: 3px; -} +} \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/auto-hide-icons-cs1/index.js b/ej2-javascript/code-snippet/treeview/how-to/auto-hide-icons-cs1/index.js index 65f208b27..1c236d181 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/auto-hide-icons-cs1/index.js +++ b/ej2-javascript/code-snippet/treeview/how-to/auto-hide-icons-cs1/index.js @@ -1,73 +1,72 @@ - /** - * TreeView Auto hide/show expand/collapse icons - */ +/** +* TreeView Auto hide/show expand/collapse icons +*/ + +// Hierarchical data source for TreeView control +var countries = [ + { id: 1, name: 'India', hasChild: true }, + { id: 2, pid: 1, name: 'Assam' }, + { id: 3, pid: 1, name: 'Bihar' }, + { id: 4, pid: 1, name: 'Tamil Nadu' }, + { id: 6, pid: 1, name: 'Punjab' }, + { id: 7, name: 'Brazil', hasChild: true }, + { id: 8, pid: 7, name: 'Paraná' }, + { id: 9, pid: 7, name: 'Ceará' }, + { id: 10, pid: 7, name: 'Acre' }, + { id: 11, name: 'France', hasChild: true }, + { id: 12, pid: 11, name: 'Pays de la Loire' }, + { id: 13, pid: 11, name: 'Aquitaine' }, + { id: 14, pid: 11, name: 'Brittany' }, + { id: 15, pid: 11, name: 'Lorraine' }, + { id: 16, name: 'Australia', hasChild: true }, + { id: 17, pid: 16, name: 'New South Wales' }, + { id: 18, pid: 16, name: 'Victoria' }, + { id: 19, pid: 16, name: 'South Australia' }, + { id: 20, pid: 16, name: 'Western Australia' }, + { id: 21, name: 'China', hasChild: true }, + { id: 22, pid: 21, name: 'Guangzhou' }, + { id: 23, pid: 21, name: 'Shanghai' }, + { id: 24, pid: 21, name: 'Beijing' }, + { id: 25, pid: 21, name: 'Shantou' } -// Hierarchical data source for TreeView component - var countries = [ - { id: 1, name: 'India', hasChild: true }, - { id: 2, pid: 1, name: 'Assam' }, - { id: 3, pid: 1, name: 'Bihar' }, - { id: 4, pid: 1, name: 'Tamil Nadu' }, - { id: 6, pid: 1, name: 'Punjab' }, - { id: 7, name: 'Brazil', hasChild: true }, - { id: 8, pid: 7, name: 'Paraná' }, - { id: 9, pid: 7, name: 'Ceará' }, - { id: 10, pid: 7, name: 'Acre' }, - { id: 11, name: 'France', hasChild: true }, - { id: 12, pid: 11, name: 'Pays de la Loire' }, - { id: 13, pid: 11, name: 'Aquitaine' }, - { id: 14, pid: 11, name: 'Brittany' }, - { id: 15, pid: 11, name: 'Lorraine' }, - { id: 16, name: 'Australia', hasChild: true }, - { id: 17, pid: 16, name: 'New South Wales' }, - { id: 18, pid: 16, name: 'Victoria' }, - { id: 19, pid: 16, name: 'South Australia' }, - { id: 20, pid: 16, name: 'Western Australia' }, - { id: 21, name: 'China', hasChild: true }, - { id: 22, pid: 21, name: 'Guangzhou' }, - { id: 23, pid: 21, name: 'Shanghai' }, - { id: 24, pid: 21, name: 'Beijing' }, - { id: 25, pid: 21, name: 'Shantou' } - ]; -// Renders treeview +// Renders TreeView var tree1 = new ej.navigations.TreeView({ - fields: { dataSource: countries, id: 'id', text: 'name', parentID: 'pid', hasChildren: 'hasChild' }, - created: onCreate + fields: { dataSource: countries, id: 'id', text: 'name', parentID: 'pid', hasChildren: 'hasChild' }, + created: onCreate }); tree1.appendTo('#tree'); -function onCreate(){ +function onCreate() { var treeElement = document.getElementById("tree"); var collapse = treeElement.querySelectorAll('.e-icons.e-icon-collapsible'); var expand = treeElement.querySelectorAll('.e-icons.e-icon-expandable'); hideIcon(expand, collapse); - document.getElementById("tree").addEventListener('mouseenter',function(e) { + document.getElementById("tree").addEventListener('mouseenter', function (e) { showIcon(expand, collapse); }) - document.getElementById("tree").addEventListener('mouseleave',function(e) { - hideIcon(expand, collapse); + document.getElementById("tree").addEventListener('mouseleave', function (e) { + hideIcon(expand, collapse); }) } // hides expand/collapse icon on hovering the mouse function hideIcon(expand, collapse) { -for(var i = 0; i < collapse.length; i++ ){ - collapse[i].setAttribute('style','visibility: hidden'); + for (var i = 0; i < collapse.length; i++) { + collapse[i].setAttribute('style', 'visibility: hidden'); } - for(var j = 0; j < expand.length; j++ ){ - expand[j].setAttribute('style','visibility: hidden'); + for (var j = 0; j < expand.length; j++) { + expand[j].setAttribute('style', 'visibility: hidden'); } } // shows expand/collapse icon while leaving the mouse function showIcon(expand, collapse) { -for(var i = 0; i < collapse.length; i++ ){ - collapse[i].setAttribute('style',"visibility", ""); + for (var i = 0; i < collapse.length; i++) { + collapse[i].setAttribute('style', "visibility: visible"); } - for(var j= 0; j < expand.length; j++ ){ - expand[j].setAttribute('style',"visibility", ""); + for (var j = 0; j < expand.length; j++) { + expand[j].setAttribute('style', "visibility: visible"); } -} - +} \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/auto-hide-icons-cs1/index.ts b/ej2-javascript/code-snippet/treeview/how-to/auto-hide-icons-cs1/index.ts index 6a5f64d77..6029b8790 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/auto-hide-icons-cs1/index.ts +++ b/ej2-javascript/code-snippet/treeview/how-to/auto-hide-icons-cs1/index.ts @@ -1,6 +1,3 @@ - - - import { enableRipple } from '@syncfusion/ej2-base'; import { TreeView } from '@syncfusion/ej2-navigations'; enableRipple(true); @@ -9,73 +6,70 @@ enableRipple(true); * TreeView Auto hide/show expand/collapse icons */ - // List data source for TreeView component - let countries: { [key: string]: Object }[] = [ - { id: 1, name: 'India', hasChild: true }, - { id: 2, pid: 1, name: 'Assam' }, - { id: 3, pid: 1, name: 'Bihar' }, - { id: 4, pid: 1, name: 'Tamil Nadu' }, - { id: 6, pid: 1, name: 'Punjab' }, - { id: 7, name: 'Brazil', hasChild: true }, - { id: 8, pid: 7, name: 'Paraná' }, - { id: 9, pid: 7, name: 'Ceará' }, - { id: 10, pid: 7, name: 'Acre' }, - { id: 11, name: 'France', hasChild: true }, - { id: 12, pid: 11, name: 'Pays de la Loire' }, - { id: 13, pid: 11, name: 'Aquitaine' }, - { id: 14, pid: 11, name: 'Brittany' }, - { id: 15, pid: 11, name: 'Lorraine' }, - { id: 16, name: 'Australia', hasChild: true }, - { id: 17, pid: 16, name: 'New South Wales' }, - { id: 18, pid: 16, name: 'Victoria' }, - { id: 19, pid: 16, name: 'South Australia' }, - { id: 20, pid: 16, name: 'Western Australia' }, - { id: 21, name: 'China', hasChild: true }, - { id: 22, pid: 21, name: 'Guangzhou' }, - { id: 23, pid: 21, name: 'Shanghai' }, - { id: 24, pid: 21, name: 'Beijing' }, - { id: 25, pid: 21, name: 'Shantou' } +// List data source for TreeView control +let countries: { [key: string]: Object }[] = [ + { id: 1, name: 'India', hasChild: true }, + { id: 2, pid: 1, name: 'Assam' }, + { id: 3, pid: 1, name: 'Bihar' }, + { id: 4, pid: 1, name: 'Tamil Nadu' }, + { id: 6, pid: 1, name: 'Punjab' }, + { id: 7, name: 'Brazil', hasChild: true }, + { id: 8, pid: 7, name: 'Paraná' }, + { id: 9, pid: 7, name: 'Ceará' }, + { id: 10, pid: 7, name: 'Acre' }, + { id: 11, name: 'France', hasChild: true }, + { id: 12, pid: 11, name: 'Pays de la Loire' }, + { id: 13, pid: 11, name: 'Aquitaine' }, + { id: 14, pid: 11, name: 'Brittany' }, + { id: 15, pid: 11, name: 'Lorraine' }, + { id: 16, name: 'Australia', hasChild: true }, + { id: 17, pid: 16, name: 'New South Wales' }, + { id: 18, pid: 16, name: 'Victoria' }, + { id: 19, pid: 16, name: 'South Australia' }, + { id: 20, pid: 16, name: 'Western Australia' }, + { id: 21, name: 'China', hasChild: true }, + { id: 22, pid: 21, name: 'Guangzhou' }, + { id: 23, pid: 21, name: 'Shanghai' }, + { id: 24, pid: 21, name: 'Beijing' }, + { id: 25, pid: 21, name: 'Shantou' } ]; -// Renders treeview +// Renders TreeView let tree1: TreeView = new TreeView({ - fields: { dataSource: countries, id: 'id', text: 'name', parentID: 'pid', hasChildren: 'hasChild' }, - created: onCreate + fields: { dataSource: countries, id: 'id', text: 'name', parentID: 'pid', hasChildren: 'hasChild' }, + created: onCreate }); tree1.appendTo('#tree'); -function onCreate(){ - let treeElement: Element = document.getElementById("tree"); +function onCreate() { + let treeElement: Element = document.getElementById("tree") as HTMLElement; let collapse: NodeListOf = treeElement.querySelectorAll('.e-icons.e-icon-collapsible'); let expand: NodeListOf = treeElement.querySelectorAll('.e-icons.e-icon-expandable'); hideIcon(expand, collapse); - document.getElementById("tree").addEventListener('mouseenter', (event:any) => { + document.getElementById("tree")?.addEventListener('mouseenter', (event: any) => { showIcon(expand, collapse); }) - document.getElementById("tree").addEventListener('mouseleave', (event:any) => { - hideIcon(expand, collapse); + document.getElementById("tree")?.addEventListener('mouseleave', (event: any) => { + hideIcon(expand, collapse); }) } // hides expand/collapse icon on hovering the mouse function hideIcon(expand: NodeListOf, collapse: NodeListOf) { -for(let i: number = 0; i < collapse.length; i++ ){ - collapse[i].setAttribute('style','visibility: hidden'); + for (let i: number = 0; i < collapse.length; i++) { + collapse[i].setAttribute('style', 'visibility: hidden'); } - for(let j: number = 0; j < expand.length; j++ ){ - expand[j].setAttribute('style','visibility: hidden'); + for (let j: number = 0; j < expand.length; j++) { + expand[j].setAttribute('style', 'visibility: hidden'); } } // shows expand/collapse icon while leaving the mouse function showIcon(expand: NodeListOf, collapse: NodeListOf) { -for(let i: number = 0; i < collapse.length; i++ ){ - collapse[i].setAttribute('style',"visibility", ""); + for (let i: number = 0; i < collapse.length; i++) { + collapse[i].setAttribute('style', "visibility: visible"); } - for(let j: number = 0; j < expand.length; j++ ){ - expand[j].setAttribute('style',"visibility", ""); + for (let j: number = 0; j < expand.length; j++) { + expand[j].setAttribute('style', "visibility: visible"); } -} - - - +} \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/auto-hide-icons-cs1/js/index.html b/ej2-javascript/code-snippet/treeview/how-to/auto-hide-icons-cs1/js/index.html index 3f4372b05..56c053cc6 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/auto-hide-icons-cs1/js/index.html +++ b/ej2-javascript/code-snippet/treeview/how-to/auto-hide-icons-cs1/js/index.html @@ -1,4 +1,6 @@ - + + + Essential JS 2 for TreeView @@ -8,26 +10,34 @@ - - - + -
    + + + + + - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/auto-hide-icons-cs1/ts/index.html b/ej2-javascript/code-snippet/treeview/how-to/auto-hide-icons-cs1/ts/index.html index 48604f8ed..c2ae85be4 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/auto-hide-icons-cs1/ts/index.html +++ b/ej2-javascript/code-snippet/treeview/how-to/auto-hide-icons-cs1/ts/index.html @@ -22,6 +22,17 @@
    + - + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/check-text-node-cs1/index.css b/ej2-javascript/code-snippet/treeview/how-to/check-text-node-cs1/index.css index 7045b9bd4..26aa2012a 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/check-text-node-cs1/index.css +++ b/ej2-javascript/code-snippet/treeview/how-to/check-text-node-cs1/index.css @@ -1,5 +1,5 @@ #container { - visibility: hidden; + visibility: hidden; } #loader { @@ -7,22 +7,8 @@ height: 40px; width: 30%; position: absolute; - font-family: 'Helvetica Neue','calibiri'; + font-family: 'Helvetica Neue', 'calibiri'; font-size: 14px; top: 45%; left: 45%; -} - -#treeparent { - display: block; - max-width: 350px; - max-height: 350px; - margin: auto; - overflow: auto; - border: 1px solid #dddddd; - border-radius: 3px; -} - - - - +} \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/check-text-node-cs1/index.js b/ej2-javascript/code-snippet/treeview/how-to/check-text-node-cs1/index.js index bce3d0a6b..23675917b 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/check-text-node-cs1/index.js +++ b/ej2-javascript/code-snippet/treeview/how-to/check-text-node-cs1/index.js @@ -4,8 +4,8 @@ ej.base.enableRipple(true); * TreeView check/uncheck the check box, while clicking on the tree node text sample */ - // Data source for TreeView component - var countries = [ +// Data source for TreeView control +var countries = [ { id: 1, name: 'Australia', hasChild: true, expanded: true }, { id: 2, pid: 1, name: 'New South Wales' }, { id: 3, pid: 1, name: 'Victoria' }, @@ -32,8 +32,8 @@ ej.base.enableRipple(true); { id: 25, pid: 21, name: 'Punjab' } ]; - // Render the TreeView with checkboxes - var treeObj = new ej.navigations.TreeView({ +// Render the TreeView with checkboxes +var treeObj = new ej.navigations.TreeView({ fields: { dataSource: countries, id: 'id', parentID: 'pid', text: 'name', hasChildren: 'hasChild' }, showCheckBox: true, nodeClicked: nodeCheck, @@ -44,15 +44,11 @@ treeObj.appendTo('#tree'); function nodeCheck(args) { var checkedNode = [args.node]; if (args.event.target.classList.contains('e-fullrow') || args.event.key == "Enter") { - var getNodeDetails = treeObj.getNodeData(args.node); + var getNodeDetails = treeObj.getNodeData(args.node); if (getNodeDetails.isChecked == 'true') { treeObj.uncheckAll(checkedNode); } else { treeObj.checkAll(checkedNode); } } -} - - - - +} \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/check-text-node-cs1/index.ts b/ej2-javascript/code-snippet/treeview/how-to/check-text-node-cs1/index.ts index b878bbd9a..7c2560ec0 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/check-text-node-cs1/index.ts +++ b/ej2-javascript/code-snippet/treeview/how-to/check-text-node-cs1/index.ts @@ -1,16 +1,13 @@ - - - -import { enableRipple } from '@syncfusion/ej2-base'; -import { TreeView } from '@syncfusion/ej2-navigations'; +import { enableRipple, KeyboardEventArgs } from '@syncfusion/ej2-base'; +import { TreeView, NodeClickEventArgs, NodeKeyPressEventArgs } from '@syncfusion/ej2-navigations'; enableRipple(true); /** * TreeView check/uncheck the check box, while clicking on the tree node text sample */ - // Data source for TreeView component - let countries: { [key: string]: Object } [] = [ +// Data source for TreeView control +let countries: { [key: string]: Object }[] = [ { id: 1, name: 'Australia', hasChild: true, expanded: true }, { id: 2, pid: 1, name: 'New South Wales' }, { id: 3, pid: 1, name: 'Victoria' }, @@ -37,8 +34,8 @@ enableRipple(true); { id: 25, pid: 21, name: 'Punjab' } ]; - // Render the TreeView with checkboxes - let treeObj: TreeView = new TreeView({ +// Render the TreeView with checkboxes +let treeObj: TreeView = new TreeView({ fields: { dataSource: countries, id: 'id', parentID: 'pid', text: 'name', hasChildren: 'hasChild' }, showCheckBox: true, nodeClicked: nodeCheck, @@ -46,18 +43,14 @@ enableRipple(true); }); treeObj.appendTo('#tree'); -function nodeCheck(args: NodeKeyPressEventArgs | NodeClickEventArgs ): void { +function nodeCheck(args: NodeKeyPressEventArgs | NodeClickEventArgs): void { let checkedNode: any = [args.node]; - if (args.event.target.classList.contains('e-fullrow') || args.event.key == "Enter") { - let getNodeDetails: any = treeObj.getNode(args.node); + if ((args.event.target as HTMLElement).classList.contains('e-fullrow') || (args.event as KeyboardEventArgs).key == "Enter") { + let getNodeDetails: any = treeObj.getNode(args.node); if (getNodeDetails.isChecked == 'true') { treeObj.uncheckAll(checkedNode); } else { treeObj.checkAll(checkedNode); } } -} - - - - +} \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/check-text-node-cs1/js/index.html b/ej2-javascript/code-snippet/treeview/how-to/check-text-node-cs1/js/index.html index 189b1bee0..37dd37ba5 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/check-text-node-cs1/js/index.html +++ b/ej2-javascript/code-snippet/treeview/how-to/check-text-node-cs1/js/index.html @@ -1,8 +1,6 @@ - - - - + + Essential JS 2 for TreeView @@ -12,26 +10,34 @@ - - - - + + - +
    - - - - - - \ No newline at end of file + + + + + + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/check-text-node-cs1/ts/index.html b/ej2-javascript/code-snippet/treeview/how-to/check-text-node-cs1/ts/index.html index a4cb53f92..f1cb832a0 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/check-text-node-cs1/ts/index.html +++ b/ej2-javascript/code-snippet/treeview/how-to/check-text-node-cs1/ts/index.html @@ -22,7 +22,17 @@
    + - - + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/context-menu-cs1/index.css b/ej2-javascript/code-snippet/treeview/how-to/context-menu-cs1/index.css index 9c325b9e3..26aa2012a 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/context-menu-cs1/index.css +++ b/ej2-javascript/code-snippet/treeview/how-to/context-menu-cs1/index.css @@ -1,5 +1,5 @@ #container { - visibility: hidden; + visibility: hidden; } #loader { @@ -7,24 +7,8 @@ height: 40px; width: 30%; position: absolute; - font-family: 'Helvetica Neue','calibiri'; + font-family: 'Helvetica Neue', 'calibiri'; font-size: 14px; top: 45%; left: 45%; -} - -#treeparent { - display: block; - max-width: 350px; - max-height: 350px; - margin: auto; - overflow: auto; - border: 1px solid #dddddd; - border-radius: 3px; -} - - #contextmenu { - padding: 0; - font-size: inherit; - } - +} \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/context-menu-cs1/index.js b/ej2-javascript/code-snippet/treeview/how-to/context-menu-cs1/index.js index 097b4e472..1fd7a4e3e 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/context-menu-cs1/index.js +++ b/ej2-javascript/code-snippet/treeview/how-to/context-menu-cs1/index.js @@ -1,14 +1,14 @@ ej.base.enableRipple(true); /** - * The node operation in tree view using context menu + * The node operation in TreeView using context menu */ - + //define the data source for TreeView var data = [ - { id: '1', name: 'Local Disk (C:)', hasAttribute:{class:'remove rename'}, hasChild: true, expanded: true, }, + { id: '1', name: 'Local Disk (C:)', hasAttribute: { class: 'remove rename' }, hasChild: true, expanded: true, }, { id: '2', name: 'Program Files', pid: '1', hasChild: true }, - { id: '3', name: 'Windows NT', pid: '2' }, + { id: '3', name: 'Windows NT', pid: '2' }, { id: '4', name: 'Windows Mail', pid: '2' }, { id: '5', name: 'Windows Photo Viewer', pid: '2' }, { id: '6', name: 'Users', pid: '1', hasChild: true, expanded: true }, @@ -19,7 +19,7 @@ var data = [ { id: '11', name: 'Boot', pid: '10' }, { id: '12', name: 'FileManager', pid: '10' }, { id: '13', name: 'System32', pid: '10' }, - { id: '14', name: 'Local Disk (D:)', hasAttribute:{class:'remove'} , hasChild: true}, + { id: '14', name: 'Local Disk (D:)', hasAttribute: { class: 'remove' }, hasChild: true }, { id: '15', name: 'Personals', pid: '14', hasChild: true }, { id: '16', name: 'My photo.png', pid: '15' }, { id: '17', name: 'Rental document.docx', pid: '15' }, @@ -32,9 +32,9 @@ var data = [ { id: '24', name: 'Work details.docx', pid: '23' }, { id: '25', name: 'Weekly report.docx', pid: '23' }, { id: '26', name: 'Wish list.csv', pid: '23' }, - { id: '27', name: 'Local Disk (E:)', hasAttribute:{class:'remove'} , hasChild: true }, - { id: '28', name: 'Pictures', pid: '27', hasChild: true }, - { id: '29', name: 'Wind.jpg', pid: '28' }, + { id: '27', name: 'Local Disk (E:)', hasAttribute: { class: 'remove' }, hasChild: true }, + { id: '28', name: 'Pictures', pid: '27', hasChild: true }, + { id: '29', name: 'Wind.jpg', pid: '28' }, { id: '30', name: 'Stone.jpg', pid: '28' }, { id: '31', name: 'Home.jpg', pid: '28' }, { id: '32', name: 'Documents', pid: '27', hasChild: true }, @@ -44,23 +44,23 @@ var data = [ { id: '36', name: 'Study Materials', pid: '27', hasChild: true }, { id: '37', name: 'UI-Guide.pdf', pid: '36' }, { id: '38', name: 'Tutorials.zip', pid: '36' }, - { id: '39', name: 'TypeScript.7z', pid: '36' } + { id: '39', name: 'TypeScript.7z', pid: '36' } ]; // Render the TreeView by mapping its fields property with data source properties var treeObj = new ej.navigations.TreeView({ - fields: { dataSource: data, id: 'id', text: 'name', parentID: 'pid', hasChildren: 'hasChild', htmlAttributes:'hasAttribute'}, + fields: { dataSource: data, id: 'id', text: 'name', parentID: 'pid', hasChildren: 'hasChild', htmlAttributes: 'hasAttribute' }, nodeClicked: nodeClick }); treeObj.appendTo('#tree'); function nodeClick(args) { - if (args.event.which === 3) { - treeObj.selectedNodes = [args.node.getAttribute('data-uid')] - } + if (args.event.which === 3) { + treeObj.selectedNodes = [args.node.getAttribute('data-uid')] + } } -//Render the context menu with target as Treeview +//Render the context menu with target as TreeView var menuItems = [ { text: 'Add New Item' }, { text: 'Rename Item' }, @@ -78,8 +78,8 @@ var index = 1; function menuclick(args) { var targetNodeId = treeObj.selectedNodes[0]; if (args.item.text == "Add New Item") { - var nodeId = "tree_" + index; - var item = { id: nodeId, name: "New Folder" }; + var nodeId = "tree_" + index; + var item = { id: nodeId, name: "New Folder" }; treeObj.addNodes([item], targetNodeId, null); index++; data.push(item); @@ -94,8 +94,8 @@ function menuclick(args) { } function beforeopen(args) { - var targetNodeId = treeObj.selectedNodes[0]; - var targetNode = document.querySelector('[data-uid="' + targetNodeId + '"]'); + var targetNodeId = treeObj.selectedNodes[0]; + var targetNode = document.querySelector('[data-uid="' + targetNodeId + '"]'); if (targetNode.classList.contains('remove')) { menuObj.enableItems(['Remove Item'], false); } @@ -108,5 +108,4 @@ function beforeopen(args) { else { menuObj.enableItems(['Rename Item'], true); } -} - +} \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/context-menu-cs1/index.ts b/ej2-javascript/code-snippet/treeview/how-to/context-menu-cs1/index.ts index 2ea185b04..84719ab33 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/context-menu-cs1/index.ts +++ b/ej2-javascript/code-snippet/treeview/how-to/context-menu-cs1/index.ts @@ -1,16 +1,13 @@ - - - import { enableRipple } from '@syncfusion/ej2-base'; import { ContextMenu, MenuEventArgs, MenuItemModel, ContextMenuModel, TreeView, BeforeOpenCloseMenuEventArgs, NodeClickEventArgs } from '@syncfusion/ej2-navigations'; enableRipple(true); /** - * The node operation in tree view using context menu + * The node operation in TreeView using context menu */ //define the data source for TreeView -let data: { [key: string]: Object } [] = [ - { id: '1', name: 'Local Disk (C:)', hasAttribute: { class:'remove rename'}, hasChild: true, expanded: true, }, +let data: { [key: string]: Object }[] = [ + { id: '1', name: 'Local Disk (C:)', hasAttribute: { class: 'remove rename' }, hasChild: true, expanded: true, }, { id: '2', name: 'Program Files', pid: '1', hasChild: true }, { id: '3', name: 'Windows NT', pid: '2' }, { id: '4', name: 'Windows Mail', pid: '2' }, @@ -23,7 +20,7 @@ let data: { [key: string]: Object } [] = [ { id: '11', name: 'Boot', pid: '10' }, { id: '12', name: 'FileManager', pid: '10' }, { id: '13', name: 'System32', pid: '10' }, - { id: '14', name: 'Local Disk (D:)', hasAttribute: { class: 'remove' }, hasChild: true}, + { id: '14', name: 'Local Disk (D:)', hasAttribute: { class: 'remove' }, hasChild: true }, { id: '15', name: 'Personals', pid: '14', hasChild: true }, { id: '16', name: 'My photo.png', pid: '15' }, { id: '17', name: 'Rental document.docx', pid: '15' }, @@ -53,17 +50,17 @@ let data: { [key: string]: Object } [] = [ // Render the TreeView by mapping its fields property with data source properties let treeObj: TreeView = new TreeView({ - fields: { dataSource: data, id: 'id', text: 'name', parentID: 'pid', hasChildren: 'hasChild', htmlAttributes:'hasAttribute'}, + fields: { dataSource: data, id: 'id', text: 'name', parentID: 'pid', hasChildren: 'hasChild', htmlAttributes: 'hasAttribute' }, nodeClicked: nodeClick }); treeObj.appendTo('#tree'); function nodeClick(args: NodeClickEventArgs) { - if (args.event.which === 3) { - treeObj.selectedNodes = [args.node.getAttribute('data-uid')] - } + if (args.event.which === 3) { + treeObj.selectedNodes = [args.node.getAttribute('data-uid')] + } } -//Render the context menu with target as Treeview +//Render the context menu with target as TreeView let menuItems: MenuItemModel[] = [ { text: 'Add New Item' }, { text: 'Rename Item' }, @@ -72,17 +69,17 @@ let menuItems: MenuItemModel[] = [ let menuOptions: ContextMenuModel = { target: '#tree', items: menuItems, - select: menuclick, - beforeOpen: beforeopen + select: menuClick, + beforeOpen: beforeOpen }; let menuObj: ContextMenu = new ContextMenu(menuOptions, '#contextmenu'); let index: number = 1; -function menuclick(args: MenuEventArgs) { +function menuClick(args: MenuEventArgs) { let targetNodeId: string = treeObj.selectedNodes[0]; if (args.item.text == "Add New Item") { - let nodeId: string = "tree_" + index; - let item: { [key: string]: Object } = { id: nodeId, name: "New Folder" }; + let nodeId: string = "tree_" + index; + let item: { [key: string]: Object } = { id: nodeId, name: "New Folder" }; treeObj.addNodes([item], targetNodeId, null); index++; data.push(item); @@ -96,9 +93,9 @@ function menuclick(args: MenuEventArgs) { } } -function beforeopen(args: BeforeOpenCloseMenuEventArgs) { - let targetNodeId: string = treeObj.selectedNodes[0]; - let targetNode: Element = document.querySelector('[data-uid="' + targetNodeId + '"]'); +function beforeOpen(args: BeforeOpenCloseMenuEventArgs) { + let targetNodeId: string = treeObj.selectedNodes[0]; + let targetNode: Element = document.querySelector('[data-uid="' + targetNodeId + '"]') as Element; if (targetNode.classList.contains('remove')) { menuObj.enableItems(['Remove Item'], false); } @@ -111,7 +108,4 @@ function beforeopen(args: BeforeOpenCloseMenuEventArgs) { else { menuObj.enableItems(['Rename Item'], true); } -} - - - +} \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/context-menu-cs1/js/index.html b/ej2-javascript/code-snippet/treeview/how-to/context-menu-cs1/js/index.html index e352f2b15..c21afa10e 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/context-menu-cs1/js/index.html +++ b/ej2-javascript/code-snippet/treeview/how-to/context-menu-cs1/js/index.html @@ -1,37 +1,44 @@ - - - - - - Essential JS 2 for TreeView - - - - - - - - - - - - - - -
    -
    -
    -
      -
      + + + + Essential JS 2 for TreeView + + + + + + + + + + + + +
      +
      +
      +
        - - - - - - \ No newline at end of file +
        + + + + + + + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/context-menu-cs1/ts/index.html b/ej2-javascript/code-snippet/treeview/how-to/context-menu-cs1/ts/index.html index 479652592..2ccdb5f07 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/context-menu-cs1/ts/index.html +++ b/ej2-javascript/code-snippet/treeview/how-to/context-menu-cs1/ts/index.html @@ -9,7 +9,7 @@ - + @@ -23,6 +23,17 @@
          + - + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/custom-icon-cs1/index.css b/ej2-javascript/code-snippet/treeview/how-to/custom-icon-cs1/index.css index 24cfba20e..26aa2012a 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/custom-icon-cs1/index.css +++ b/ej2-javascript/code-snippet/treeview/how-to/custom-icon-cs1/index.css @@ -7,34 +7,8 @@ height: 40px; width: 30%; position: absolute; - font-family: 'Helvetica Neue','calibiri'; + font-family: 'Helvetica Neue', 'calibiri'; font-size: 14px; top: 45%; left: 45%; -} - -#treeparent { - display: block; - max-width: 450px; - max-height: 350px; - margin: auto; - overflow: auto; - border: 1px solid #dddddd; - border-radius: 3px; -} - -.custom .e-list-item .e-icons { - font-family: "Customize-icon"; -} - -.custom.e-treeview .e-list-item .e-icon-expandable::before, .custom.e-treeview .e-list-item .e-icon-collapsible:before { - content: '\e700'; - font-size: 12px; -} - -@font-face { - font-family: 'Customize-icon'; - src: url(data:application/x-font-ttf;charset=utf-8;base64,AAEAAAAKAIAAAwAgT1MvMj0gSRcAAAEoAAAAVmNtYXDnEOdaAAABjAAAADhnbHlmcYqIngAAAcwAAAD8aGVhZBWT124AAADQAAAANmhoZWEHmANtAAAArAAAACRobXR4C9AAAAAAAYAAAAAMbG9jYQBAAH4AAAHEAAAACG1heHABEAAxAAABCAAAACBuYW1l/qscPAAAAsgAAAJ5cG9zdIPGFvoAAAVEAAAAVgABAAADUv9qAFoEAAAA//8D6QABAAAAAAAAAAAAAAAAAAAAAwABAAAAAQAAIKcGUl8PPPUACwPoAAAAANlGSVAAAAAA2UZJUAAAAAAD6QPpAAAACAACAAAAAAAAAAEAAAADACUAAwAAAAAAAgAAAAoACgAAAP8AAAAAAAAAAQPwAZAABQAAAnoCvAAAAIwCegK8AAAB4AAxAQIAAAIABQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUGZFZABA5wDnAQNS/2oAWgPpAJYAAAABAAAAAAAABAAAAAPoAAAD6AAAAAAAAgAAAAMAAAAUAAMAAQAAABQABAAkAAAABAAEAAEAAOcB//8AAOcA//8AAAABAAQAAAABAAIAAAAAAEAAfgADAAAAAAPpA+kACAAWACQAAAEhFSEHMzcnIyUWEAcGICcmEDc+ATIWBQYQFxYgNzYQJy4BIgYCMf6kAWqUqMK8rgF+goKK/qCEfn5Coquf/amRkZoBkpqRkUq3xLcCKmSTybt4if6ghYKChQFgiUJBQRma/m6akZGaAZKaSElJAAMAAAAAA+gD6QAGABQAIgAAASMXNyMRIyUWEAcGICcmEDc+ATIWBQYQFxYgNzYQJy4BIgYBvrLp6JmGAW6BgYf+oYiBgUGhqqH9qZOTmgGOmpOTSrbCtgGy6ekBbwuI/qGHgYGIAV6IQEFBFpr+cZmTk5oBj5lKSUkAAAAAABIA3gABAAAAAAAAAAEAAAABAAAAAAABAA4AAQABAAAAAAACAAcADwABAAAAAAADAA4AFgABAAAAAAAEAA4AJAABAAAAAAAFAAsAMgABAAAAAAAGAA4APQABAAAAAAAKACwASwABAAAAAAALABIAdwADAAEECQAAAAIAiQADAAEECQABABwAiwADAAEECQACAA4ApwADAAEECQADABwAtQADAAEECQAEABwA0QADAAEECQAFABYA7QADAAEECQAGABwBAwADAAEECQAKAFgBHwADAAEECQALACQBdyBDdXN0b21pemUtaWNvblJlZ3VsYXJDdXN0b21pemUtaWNvbkN1c3RvbWl6ZS1pY29uVmVyc2lvbiAxLjBDdXN0b21pemUtaWNvbkZvbnQgZ2VuZXJhdGVkIHVzaW5nIFN5bmNmdXNpb24gTWV0cm8gU3R1ZGlvd3d3LnN5bmNmdXNpb24uY29tACAAQwB1AHMAdABvAG0AaQB6AGUALQBpAGMAbwBuAFIAZQBnAHUAbABhAHIAQwB1AHMAdABvAG0AaQB6AGUALQBpAGMAbwBuAEMAdQBzAHQAbwBtAGkAegBlAC0AaQBjAG8AbgBWAGUAcgBzAGkAbwBuACAAMQAuADAAQwB1AHMAdABvAG0AaQB6AGUALQBpAGMAbwBuAEYAbwBuAHQAIABnAGUAbgBlAHIAYQB0AGUAZAAgAHUAcwBpAG4AZwAgAFMAeQBuAGMAZgB1AHMAaQBvAG4AIABNAGUAdAByAG8AIABTAHQAdQBkAGkAbwB3AHcAdwAuAHMAeQBuAGMAZgB1AHMAaQBvAG4ALgBjAG8AbQAAAAACAAAAAAAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMBAgEDAQQAFy1hcnJvdy1jaXJjbGUtcmlnaHQtXzAxEi1hcnJvdy1jaXJjbGUtZG93bgAAAAA=) format('truetype'); - font-weight: normal; - font-style: normal; } \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/custom-icon-cs1/index.js b/ej2-javascript/code-snippet/treeview/how-to/custom-icon-cs1/index.js index 66d3173b1..211963646 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/custom-icon-cs1/index.js +++ b/ej2-javascript/code-snippet/treeview/how-to/custom-icon-cs1/index.js @@ -1,7 +1,8 @@ ej.base.enableRipple(true); var hierarchicalData = [ - { id: '01', name: 'Local Disk (C:)', expanded: true, + { + id: '01', name: 'Local Disk (C:)', expanded: true, subChild: [ { id: '01-01', name: 'Program Files', @@ -71,7 +72,7 @@ var hierarchicalData = [ }, { id: '03-02', name: 'Documents', - subChild: [ + subChild: [ { id: '03-02-01', name: 'Environment Pollution.docx' }, { id: '03-02-02', name: 'Global Warming.ppt' }, { id: '03-02-03', name: 'Social Network.pdf' }, @@ -93,7 +94,4 @@ var treeObj = new ej.navigations.TreeView({ fields: { dataSource: hierarchicalData, id: 'id', text: 'name', child: 'subChild' }, cssClass: 'custom' }); -treeObj.appendTo('#tree'); - - - +treeObj.appendTo('#tree'); \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/custom-icon-cs1/index.ts b/ej2-javascript/code-snippet/treeview/how-to/custom-icon-cs1/index.ts index 280a6d84e..822cf44fc 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/custom-icon-cs1/index.ts +++ b/ej2-javascript/code-snippet/treeview/how-to/custom-icon-cs1/index.ts @@ -1,12 +1,10 @@ - - - import { enableRipple } from '@syncfusion/ej2-base'; -enableRipple(true); import { TreeView } from '@syncfusion/ej2-navigations'; +enableRipple(true); let hierarchicalData: { [key: string]: Object }[] = [ - { id: '01', name: 'Local Disk (C:)', expanded: true, + { + id: '01', name: 'Local Disk (C:)', expanded: true, subChild: [ { id: '01-01', name: 'Program Files', @@ -76,7 +74,7 @@ let hierarchicalData: { [key: string]: Object }[] = [ }, { id: '03-02', name: 'Documents', - subChild: [ + subChild: [ { id: '03-02-01', name: 'Environment Pollution.docx' }, { id: '03-02-02', name: 'Global Warming.ppt' }, { id: '03-02-03', name: 'Social Network.pdf' }, @@ -98,7 +96,4 @@ let treeObj: TreeView = new TreeView({ fields: { dataSource: hierarchicalData, id: 'id', text: 'name', child: 'subChild' }, cssClass: 'custom' }); -treeObj.appendTo('#tree'); - - - +treeObj.appendTo('#tree'); \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/custom-icon-cs1/js/index.html b/ej2-javascript/code-snippet/treeview/how-to/custom-icon-cs1/js/index.html index 94c0b98ba..91ec295d4 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/custom-icon-cs1/js/index.html +++ b/ej2-javascript/code-snippet/treeview/how-to/custom-icon-cs1/js/index.html @@ -1,8 +1,5 @@ - - - - - + + Essential JS 2 for TreeView @@ -11,25 +8,51 @@ - - - + + - - +
          - - - - - \ No newline at end of file + + + + + + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/custom-icon-cs1/ts/index.html b/ej2-javascript/code-snippet/treeview/how-to/custom-icon-cs1/ts/index.html index 5d85f9f18..525aee35e 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/custom-icon-cs1/ts/index.html +++ b/ej2-javascript/code-snippet/treeview/how-to/custom-icon-cs1/ts/index.html @@ -21,6 +21,34 @@
          + - + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/customize-tree-nodes-cs1/index.css b/ej2-javascript/code-snippet/treeview/how-to/customize-tree-nodes-cs1/index.css index 7176e1390..26aa2012a 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/customize-tree-nodes-cs1/index.css +++ b/ej2-javascript/code-snippet/treeview/how-to/customize-tree-nodes-cs1/index.css @@ -1,5 +1,5 @@ #container { - visibility: hidden; + visibility: hidden; } #loader { @@ -7,35 +7,8 @@ height: 40px; width: 30%; position: absolute; - font-family: 'Helvetica Neue','calibiri'; + font-family: 'Helvetica Neue', 'calibiri'; font-size: 14px; top: 45%; left: 45%; -} - -#treeparent { - display: block; - max-width: 350px; - max-height: 350px; - margin: auto; - overflow: auto; - border: 1px solid #dddddd; - border-radius: 3px; -} - -.details { - padding-left: 10px; -} -/*apply custom css to first level*/ -.mytree .e-level-1 > .e-text-content .e-list-text{ - font-style: italic; -} -/*apply custom css to second level*/ -.mytree .e-level-2 > .e-text-content .e-list-text { - color: darkmagenta; -} -/*apply custom css to all the leaf nodes*/ -.mytree .e-level-3 > .e-text-content .e-list-text { - font-weight: bold; -} - +} \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/customize-tree-nodes-cs1/index.js b/ej2-javascript/code-snippet/treeview/how-to/customize-tree-nodes-cs1/index.js index c2e851db8..18faf69a6 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/customize-tree-nodes-cs1/index.js +++ b/ej2-javascript/code-snippet/treeview/how-to/customize-tree-nodes-cs1/index.js @@ -4,8 +4,8 @@ ej.base.enableRipple(true); * TreeView node editing sample with validation */ - // Hierarchical data source for TreeView component - var hierarchicalData = [ +// Hierarchical data source for TreeView control +var hierarchicalData = [ { id: '01', name: 'Local Disk (C:)', expanded: true, subChild: [ @@ -95,9 +95,8 @@ ej.base.enableRipple(true); } ]; - var treeObj = new ej.navigations.TreeView({ +var treeObj = new ej.navigations.TreeView({ fields: { dataSource: hierarchicalData, id: 'id', text: 'name', child: 'subChild' }, cssClass: ("mytree") }); -treeObj.appendTo('#tree'); - +treeObj.appendTo('#tree'); \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/customize-tree-nodes-cs1/index.ts b/ej2-javascript/code-snippet/treeview/how-to/customize-tree-nodes-cs1/index.ts index 274d96cac..ffc4d4502 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/customize-tree-nodes-cs1/index.ts +++ b/ej2-javascript/code-snippet/treeview/how-to/customize-tree-nodes-cs1/index.ts @@ -1,6 +1,3 @@ - - - import { enableRipple } from '@syncfusion/ej2-base'; import { TreeView } from '@syncfusion/ej2-navigations'; enableRipple(true); @@ -9,8 +6,8 @@ enableRipple(true); * TreeView customize the tree nodes in level wise */ - // Hierarchical data source for TreeView component - let hierarchicalData: { [key: string]: Object } [] = [ +// Hierarchical data source for TreeView control +let hierarchicalData: { [key: string]: Object }[] = [ { id: '01', name: 'Local Disk (C:)', expanded: true, subChild: [ @@ -100,13 +97,9 @@ enableRipple(true); } ]; - // Render the TreeView by mapping its fields property with data source properties - let treeObj: TreeView = new TreeView({ +// Render the TreeView by mapping its fields property with data source properties +let treeObj: TreeView = new TreeView({ fields: { dataSource: hierarchicalData, id: 'id', text: 'name', child: 'subChild' }, cssClass: ("mytree") }); -treeObj.appendTo('#tree'); - - - - +treeObj.appendTo('#tree'); \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/customize-tree-nodes-cs1/js/index.html b/ej2-javascript/code-snippet/treeview/how-to/customize-tree-nodes-cs1/js/index.html index 0d73498ef..31c26572d 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/customize-tree-nodes-cs1/js/index.html +++ b/ej2-javascript/code-snippet/treeview/how-to/customize-tree-nodes-cs1/js/index.html @@ -1,8 +1,6 @@ - - - - + + Essential JS 2 for TreeView @@ -11,32 +9,65 @@ - - - - + + - +
          -
          -
          - -
          1. The font-weight "Bold" is applied for all the leaf nodes
          -
          2. The font-weight "Italic" is applied for first level nodes
          -
          3. The color "darkmagenta" is applied for second level nodes
          -
          +
          +
          +
          + +
          1. The font-weight "Bold" is applied for all the leaf nodes
          +
          2. The font-weight "Italic" is applied for first level nodes
          +
          3. The color "darkmagenta" is applied for second level nodes
          + + + + - - - \ No newline at end of file + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/customize-tree-nodes-cs1/ts/index.html b/ej2-javascript/code-snippet/treeview/how-to/customize-tree-nodes-cs1/ts/index.html index bd03319ca..6e121f1ea 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/customize-tree-nodes-cs1/ts/index.html +++ b/ej2-javascript/code-snippet/treeview/how-to/customize-tree-nodes-cs1/ts/index.html @@ -18,16 +18,51 @@
          Loading....
          -
          -
          - -
          1. The font-weight "Bold" is applied for all the leaf nodes
          -
          2. The font-weight "Italic" is applied for first level nodes
          -
          3. The color "darkmagenta" is applied for second level nodes
          -
          +
          +
          +
          + +
          1. The font-weight "Bold" is applied for all the leaf nodes
          +
          2. The font-weight "Italic" is applied for first level nodes
          +
          3. The color "darkmagenta" is applied for second level nodes
          - + + + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/disable-checkbox-cs1/index.css b/ej2-javascript/code-snippet/treeview/how-to/disable-checkbox-cs1/index.css index 756014e9c..26aa2012a 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/disable-checkbox-cs1/index.css +++ b/ej2-javascript/code-snippet/treeview/how-to/disable-checkbox-cs1/index.css @@ -1,5 +1,5 @@ #container { - visibility: hidden; + visibility: hidden; } #loader { @@ -7,18 +7,8 @@ height: 40px; width: 30%; position: absolute; - font-family: 'Helvetica Neue','calibiri'; + font-family: 'Helvetica Neue', 'calibiri'; font-size: 14px; top: 45%; left: 45%; -} - -#treeparent { - display: block; - max-width: 350px; - max-height: 350px; - margin: auto; - overflow: auto; - border: 1px solid #dddddd; - border-radius: 3px; -} +} \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/disable-checkbox-cs1/index.js b/ej2-javascript/code-snippet/treeview/how-to/disable-checkbox-cs1/index.js index 012650515..8928f1c2d 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/disable-checkbox-cs1/index.js +++ b/ej2-javascript/code-snippet/treeview/how-to/disable-checkbox-cs1/index.js @@ -1,48 +1,46 @@ - /** - * Disable checkbox - */ +/** +* Disable checkbox +*/ + +// Hierarchical data source for TreeView control +var countries = [ + { id: 1, name: 'India', hasChild: true, expanded: true }, + { id: 2, pid: 1, name: 'Assam' }, + { id: 3, pid: 1, name: 'Bihar' }, + { id: 4, pid: 1, name: 'Tamil Nadu' }, + { id: 6, pid: 1, name: 'Punjab' }, + { id: 7, name: 'Brazil', hasChild: true }, + { id: 8, pid: 7, name: 'Paraná' }, + { id: 9, pid: 7, name: 'Ceará' }, + { id: 10, pid: 7, name: 'Acre' }, + { id: 11, name: 'France', hasChild: true }, + { id: 12, pid: 11, name: 'Pays de la Loire' }, + { id: 13, pid: 11, name: 'Aquitaine' }, + { id: 14, pid: 11, name: 'Brittany' }, + { id: 15, pid: 11, name: 'Lorraine' }, + { id: 16, name: 'Australia', hasChild: true }, + { id: 17, pid: 16, name: 'New South Wales' }, + { id: 18, pid: 16, name: 'Victoria' }, + { id: 19, pid: 16, name: 'South Australia' }, + { id: 20, pid: 16, name: 'Western Australia' }, + { id: 21, name: 'China', hasChild: true }, + { id: 22, pid: 21, name: 'Guangzhou' }, + { id: 23, pid: 21, name: 'Shanghai' }, + { id: 24, pid: 21, name: 'Beijing' }, + { id: 25, pid: 21, name: 'Shantou' } -// Hierarchical data source for TreeView component - var countries = [ - { id: 1, name: 'India', hasChild: true, expanded: true }, - { id: 2, pid: 1, name: 'Assam' }, - { id: 3, pid: 1, name: 'Bihar' }, - { id: 4, pid: 1, name: 'Tamil Nadu' }, - { id: 6, pid: 1, name: 'Punjab' }, - { id: 7, name: 'Brazil', hasChild: true }, - { id: 8, pid: 7, name: 'Paraná' }, - { id: 9, pid: 7, name: 'Ceará' }, - { id: 10, pid: 7, name: 'Acre' }, - { id: 11, name: 'France', hasChild: true }, - { id: 12, pid: 11, name: 'Pays de la Loire' }, - { id: 13, pid: 11, name: 'Aquitaine' }, - { id: 14, pid: 11, name: 'Brittany' }, - { id: 15, pid: 11, name: 'Lorraine' }, - { id: 16, name: 'Australia', hasChild: true }, - { id: 17, pid: 16, name: 'New South Wales' }, - { id: 18, pid: 16, name: 'Victoria' }, - { id: 19, pid: 16, name: 'South Australia' }, - { id: 20, pid: 16, name: 'Western Australia' }, - { id: 21, name: 'China', hasChild: true }, - { id: 22, pid: 21, name: 'Guangzhou' }, - { id: 23, pid: 21, name: 'Shanghai' }, - { id: 24, pid: 21, name: 'Beijing' }, - { id: 25, pid: 21, name: 'Shantou' } - ]; -// Renders treeview +// Renders TreeView var tree1 = new ej.navigations.TreeView({ - fields: { dataSource: countries, id: 'id', text: 'name', parentID: 'pid', hasChildren: 'hasChild' }, - showCheckBox: true, - drawNode: drawNode + fields: { dataSource: countries, id: 'id', text: 'name', parentID: 'pid', hasChildren: 'hasChild' }, + showCheckBox: true, + drawNode: drawNode }); tree1.appendTo('#tree'); -// Disables the checkbox alone in treeview +// Disables the checkbox alone in TreeView function drawNode(args) { var ele = args.node.querySelector('.e-checkbox-wrapper'); ele.classList.add('e-checkbox-disabled'); -} - - +} \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/disable-checkbox-cs1/index.ts b/ej2-javascript/code-snippet/treeview/how-to/disable-checkbox-cs1/index.ts index 734502da3..0f43b8a51 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/disable-checkbox-cs1/index.ts +++ b/ej2-javascript/code-snippet/treeview/how-to/disable-checkbox-cs1/index.ts @@ -1,55 +1,49 @@ - - - import { enableRipple } from '@syncfusion/ej2-base'; -import { TreeView } from '@syncfusion/ej2-navigations'; +import { TreeView, DrawNodeEventArgs } from '@syncfusion/ej2-navigations'; enableRipple(true); /** - * Treeview Disable check box of parent nodes sample + * TreeView Disable check box of parent nodes sample */ - // List data source for TreeView component - let countries: { [key: string]: Object }[] = [ - { id: 1, name: 'India', hasChild: true, expanded: true }, - { id: 2, pid: 1, name: 'Assam' }, - { id: 3, pid: 1, name: 'Bihar' }, - { id: 4, pid: 1, name: 'Tamil Nadu' }, - { id: 6, pid: 1, name: 'Punjab' }, - { id: 7, name: 'Brazil', hasChild: true }, - { id: 8, pid: 7, name: 'Paraná' }, - { id: 9, pid: 7, name: 'Ceará' }, - { id: 10, pid: 7, name: 'Acre' }, - { id: 11, name: 'France', hasChild: true }, - { id: 12, pid: 11, name: 'Pays de la Loire' }, - { id: 13, pid: 11, name: 'Aquitaine' }, - { id: 14, pid: 11, name: 'Brittany' }, - { id: 15, pid: 11, name: 'Lorraine' }, - { id: 16, name: 'Australia', hasChild: true }, - { id: 17, pid: 16, name: 'New South Wales' }, - { id: 18, pid: 16, name: 'Victoria' }, - { id: 19, pid: 16, name: 'South Australia' }, - { id: 20, pid: 16, name: 'Western Australia' }, - { id: 21, name: 'China', hasChild: true }, - { id: 22, pid: 21, name: 'Guangzhou' }, - { id: 23, pid: 21, name: 'Shanghai' }, - { id: 24, pid: 21, name: 'Beijing' }, - { id: 25, pid: 21, name: 'Shantou' } +// List data source for TreeView control +let countries: { [key: string]: Object }[] = [ + { id: 1, name: 'India', hasChild: true, expanded: true }, + { id: 2, pid: 1, name: 'Assam' }, + { id: 3, pid: 1, name: 'Bihar' }, + { id: 4, pid: 1, name: 'Tamil Nadu' }, + { id: 6, pid: 1, name: 'Punjab' }, + { id: 7, name: 'Brazil', hasChild: true }, + { id: 8, pid: 7, name: 'Paraná' }, + { id: 9, pid: 7, name: 'Ceará' }, + { id: 10, pid: 7, name: 'Acre' }, + { id: 11, name: 'France', hasChild: true }, + { id: 12, pid: 11, name: 'Pays de la Loire' }, + { id: 13, pid: 11, name: 'Aquitaine' }, + { id: 14, pid: 11, name: 'Brittany' }, + { id: 15, pid: 11, name: 'Lorraine' }, + { id: 16, name: 'Australia', hasChild: true }, + { id: 17, pid: 16, name: 'New South Wales' }, + { id: 18, pid: 16, name: 'Victoria' }, + { id: 19, pid: 16, name: 'South Australia' }, + { id: 20, pid: 16, name: 'Western Australia' }, + { id: 21, name: 'China', hasChild: true }, + { id: 22, pid: 21, name: 'Guangzhou' }, + { id: 23, pid: 21, name: 'Shanghai' }, + { id: 24, pid: 21, name: 'Beijing' }, + { id: 25, pid: 21, name: 'Shantou' } ]; -// Renders treeview +// Renders TreeView let tree1: TreeView = new TreeView({ - fields: { dataSource: countries, id: 'id', text: 'name', parentID: 'pid', hasChildren: 'hasChild' }, - showCheckBox: true, - drawNode: drawNode + fields: { dataSource: countries, id: 'id', text: 'name', parentID: 'pid', hasChildren: 'hasChild' }, + showCheckBox: true, + drawNode: drawNode }); tree1.appendTo('#tree'); -// Disables the checkbox alone in treeview +// Disables the checkbox alone in TreeView function drawNode(args: DrawNodeEventArgs) { let ele: HTMLElement = args.node.querySelector('.e-checkbox-wrapper'); ele.classList.add('e-checkbox-disabled'); -} - - - +} \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/disable-checkbox-cs1/js/index.html b/ej2-javascript/code-snippet/treeview/how-to/disable-checkbox-cs1/js/index.html index bfa623378..1f970d928 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/disable-checkbox-cs1/js/index.html +++ b/ej2-javascript/code-snippet/treeview/how-to/disable-checkbox-cs1/js/index.html @@ -1,33 +1,44 @@ - - Essential JS 2 for TreeView - - - - - - - - - - - + + + + + Essential JS 2 for TreeView + + + + + + + + + - -
          -
          -
          -
          +
          +
          +
          +
          + + + + - - - - \ No newline at end of file + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/disable-checkbox-cs1/ts/index.html b/ej2-javascript/code-snippet/treeview/how-to/disable-checkbox-cs1/ts/index.html index 87e732ec4..8a5c198c4 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/disable-checkbox-cs1/ts/index.html +++ b/ej2-javascript/code-snippet/treeview/how-to/disable-checkbox-cs1/ts/index.html @@ -9,7 +9,7 @@ - + @@ -22,6 +22,17 @@
          + - + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/filtering-cs1/index.css b/ej2-javascript/code-snippet/treeview/how-to/filtering-cs1/index.css index d1d0e14e3..91e2c3c1c 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/filtering-cs1/index.css +++ b/ej2-javascript/code-snippet/treeview/how-to/filtering-cs1/index.css @@ -1,11 +1,12 @@ .treeviewfilter { - width: 300px; + width: 300px; min-height: 250px; max-height: auto; border: 1px solid #bbbbbb; margin: 0 auto; } + .e-mask .e-input { border: none; border-bottom: 1px solid #bbbbbb; -} +} \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/filtering-cs1/index.js b/ej2-javascript/code-snippet/treeview/how-to/filtering-cs1/index.js index e0951cdfe..703b5e135 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/filtering-cs1/index.js +++ b/ej2-javascript/code-snippet/treeview/how-to/filtering-cs1/index.js @@ -1,30 +1,30 @@ ej.base.enableRipple(true); - var localData = [ - { id: 1, name: "Australia", hasChild: true }, - { id: 2, pid: 1, name: "New South Wales" }, - { id: 3, pid: 1, name: "Victoria" }, - { id: 4, pid: 1, name: "South Australia" }, - { id: 6, pid: 1, name: "Western Australia" }, - { id: 7, name: "Brazil", hasChild: true }, - { id: 8, pid: 7, name: "Paraná" }, - { id: 9, pid: 7, name: "Ceará" }, - { id: 10, pid: 7, name: "Acre" }, - { id: 11, name: "China", hasChild: true }, - { id: 12, pid: 11, name: "Guangzhou" }, - { id: 13, pid: 11, name: "Shanghai" }, - { id: 14, pid: 11, name: "Beijing" }, - { id: 15, pid: 11, name: "Shantou" }, - { id: 16, name: "France", hasChild: true }, - { id: 17, pid: 16, name: "Pays de la Loire" }, - { id: 18, pid: 16, name: "Aquitaine" }, - { id: 19, pid: 16, name: "Brittany" }, - { id: 20, pid: 16, name: "Lorraine" }, - { id: 21, name: "India", hasChild: true }, - { id: 22, pid: 21, name: "Assam" }, - { id: 23, pid: 21, name: "Bihar" }, - { id: 24, pid: 21, name: "Tamil Nadu" }, - { id: 25, pid: 21, name: "Punjab" } +var localData = [ + { id: 1, name: "Australia", hasChild: true }, + { id: 2, pid: 1, name: "New South Wales" }, + { id: 3, pid: 1, name: "Victoria" }, + { id: 4, pid: 1, name: "South Australia" }, + { id: 6, pid: 1, name: "Western Australia" }, + { id: 7, name: "Brazil", hasChild: true }, + { id: 8, pid: 7, name: "Paraná" }, + { id: 9, pid: 7, name: "Ceará" }, + { id: 10, pid: 7, name: "Acre" }, + { id: 11, name: "China", hasChild: true }, + { id: 12, pid: 11, name: "Guangzhou" }, + { id: 13, pid: 11, name: "Shanghai" }, + { id: 14, pid: 11, name: "Beijing" }, + { id: 15, pid: 11, name: "Shantou" }, + { id: 16, name: "France", hasChild: true }, + { id: 17, pid: 16, name: "Pays de la Loire" }, + { id: 18, pid: 16, name: "Aquitaine" }, + { id: 19, pid: 16, name: "Brittany" }, + { id: 20, pid: 16, name: "Lorraine" }, + { id: 21, name: "India", hasChild: true }, + { id: 22, pid: 21, name: "Assam" }, + { id: 23, pid: 21, name: "Bihar" }, + { id: 24, pid: 21, name: "Tamil Nadu" }, + { id: 25, pid: 21, name: "Punjab" } ]; // Render the TreeView with list data source @@ -50,34 +50,40 @@ function changeDataSource(data) { //Filtering the TreeNodes function searchNodes(args) { - var _text = mask.element.value; - var predicats = [], _array = [], _filter = []; - if (_text == "") { + var _text = args.value.trim(); + if (_text === "") { changeDataSource(localData); + return; } - else { - var predicate = new ej.data.Predicate('name', 'contains', _text, true); - var filteredList = new ej.data.DataManager(localData).executeLocal(new ej.data.Query().where(predicate)); - for (var j = 0; j < filteredList.length; j++) { - _filter.push(filteredList[j]["id"]); - var filters = getFilterItems(filteredList[j], localData); - for (var i = 0; i < filters.length; i++) { - if (_array.indexOf(filters[i]) == -1 && filters[i] != null) { - _array.push(filters[i]); - predicats.push(new ej.data.Predicate('id', 'equal', filters[i], false)); - } + var predicate = new ej.data.Predicate('name', 'contains', _text, true); + var filteredList = new ej.data.DataManager(localData) + .executeLocal(new ej.data.Query().where(predicate)); + if (filteredList.length === 0) { + changeDataSource([]); + return; + } + var predicates = []; + var _setArray = new Set(); + filteredList.forEach(function (item) { + var filters = getFilterItems(item, localData); + + filters.forEach(function (filter) { + if (filter !== null && !_setArray.has(filter)) { + _setArray.add(filter); + predicates.push(new ej.data.Predicate('id', 'equal', filter, false)); } - } - if (predicats.length == 0) { - changeDataSource([]); - } else { - var query = new ej.data.Query().where(new ej.data.Predicate.or(predicats)); - var newList = new ej.data.DataManager(localData).executeLocal(query); - changeDataSource(newList); - setTimeout(function () { - listTreeObj.expandAll(); - }, 400); - } + }); + }); + if (predicates.length > 0) { + var query = new ej.data.Query().where(ej.data.Predicate.or.apply(null, predicates)); + var newList = new ej.data.DataManager(localData).executeLocal(query); + changeDataSource(newList); + + setTimeout(function () { + listTreeObj.expandAll(); + }, 400); + } else { + changeDataSource([]); } } @@ -96,5 +102,4 @@ function getFilterItems(fList, list) { return nodes; } return nodes; -} - +} \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/filtering-cs1/index.ts b/ej2-javascript/code-snippet/treeview/how-to/filtering-cs1/index.ts index 1d7802f24..f9cabe637 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/filtering-cs1/index.ts +++ b/ej2-javascript/code-snippet/treeview/how-to/filtering-cs1/index.ts @@ -1,108 +1,106 @@ - - - import { enableRipple } from '@syncfusion/ej2-base'; import { TreeView } from '@syncfusion/ej2-navigations'; import { MaskedTextBox } from '@syncfusion/ej2-inputs'; import { DataManager, Query, Predicate } from '@syncfusion/ej2-data'; enableRipple(true); - // local data source for TreeView component - let localData: { [key: string]: Object }[] = [ - { id: 1, name: "Australia", hasChild: true }, - { id: 2, pid: 1, name: "New South Wales" }, - { id: 3, pid: 1, name: "Victoria" }, - { id: 4, pid: 1, name: "South Australia" }, - { id: 6, pid: 1, name: "Western Australia" }, - { id: 7, name: "Brazil", hasChild: true }, - { id: 8, pid: 7, name: "Paraná" }, - { id: 9, pid: 7, name: "Ceará" }, - { id: 10, pid: 7, name: "Acre" }, - { id: 11, name: "China", hasChild: true }, - { id: 12, pid: 11, name: "Guangzhou" }, - { id: 13, pid: 11, name: "Shanghai" }, - { id: 14, pid: 11, name: "Beijing" }, - { id: 15, pid: 11, name: "Shantou" }, - { id: 16, name: "France", hasChild: true }, - { id: 17, pid: 16, name: "Pays de la Loire" }, - { id: 18, pid: 16, name: "Aquitaine" }, - { id: 19, pid: 16, name: "Brittany" }, - { id: 20, pid: 16, name: "Lorraine" }, - { id: 21, name: "India", hasChild: true }, - { id: 22, pid: 21, name: "Assam" }, - { id: 23, pid: 21, name: "Bihar" }, - { id: 24, pid: 21, name: "Tamil Nadu" }, - { id: 25, pid: 21, name: "Punjab" } - ]; +// local data source for TreeView control +let localData: { [key: string]: Object }[] = [ + { id: 1, name: "Australia", hasChild: true }, + { id: 2, pid: 1, name: "New South Wales" }, + { id: 3, pid: 1, name: "Victoria" }, + { id: 4, pid: 1, name: "South Australia" }, + { id: 6, pid: 1, name: "Western Australia" }, + { id: 7, name: "Brazil", hasChild: true }, + { id: 8, pid: 7, name: "Paraná" }, + { id: 9, pid: 7, name: "Ceará" }, + { id: 10, pid: 7, name: "Acre" }, + { id: 11, name: "China", hasChild: true }, + { id: 12, pid: 11, name: "Guangzhou" }, + { id: 13, pid: 11, name: "Shanghai" }, + { id: 14, pid: 11, name: "Beijing" }, + { id: 15, pid: 11, name: "Shantou" }, + { id: 16, name: "France", hasChild: true }, + { id: 17, pid: 16, name: "Pays de la Loire" }, + { id: 18, pid: 16, name: "Aquitaine" }, + { id: 19, pid: 16, name: "Brittany" }, + { id: 20, pid: 16, name: "Lorraine" }, + { id: 21, name: "India", hasChild: true }, + { id: 22, pid: 21, name: "Assam" }, + { id: 23, pid: 21, name: "Bihar" }, + { id: 24, pid: 21, name: "Tamil Nadu" }, + { id: 25, pid: 21, name: "Punjab" } +]; - // Render the TreeView with image icons - let listTreeObj: TreeView = new TreeView({ - fields: { dataSource: localData, id: 'id', parentID: 'pid', text: 'name', hasChildren: 'hasChild' }, - }); - listTreeObj.appendTo('#treeView'); +// Render the TreeView with image icons +let listTreeObj: TreeView = new TreeView({ + fields: { dataSource: localData, id: 'id', parentID: 'pid', text: 'name', hasChildren: 'hasChild' }, +}); +listTreeObj.appendTo('#treeView'); - let mask: MaskedTextBox = new MaskedTextBox({ - placeholder: "Enter the tree node to search", - change: searchNodes - }); - mask.appendTo('#mask'); +let mask: MaskedTextBox = new MaskedTextBox({ + placeholder: "Enter the tree node to search", + change: searchNodes +}); +mask.appendTo('#mask'); - //Change the dataSource for TreeView - function changeDataSource(data) { - listTreeObj.fields = { - dataSource: data, id: 'id', text: 'name', - parentID: 'pid', hasChildren: 'hasChild' - } +//Change the dataSource for TreeView +function changeDataSource(data) { + listTreeObj.fields = { + dataSource: data, id: 'id', text: 'name', + parentID: 'pid', hasChildren: 'hasChild' } +} - //Filtering the TreeNodes - function searchNodes(args) { - let _text = mask.element.value; - let predicats = [], _array = [], _filter = []; - if (_text == "") { - changeDataSource(localData); - } - else { - let predicate = new Predicate('name', 'contains', _text, true); - let filteredList = new DataManager(localData).executeLocal(new Query().where(predicate)); - for (let j = 0; j < filteredList.length; j++) { - _filter.push(filteredList[j]["id"]); - let filters = getFilterItems(filteredList[j], localData); - for (let i = 0; i < filters.length; i++) { - if (_array.indexOf(filters[i]) == -1 && filters[i] != null) { - _array.push(filters[i]); - predicats.push(new Predicate('id', 'equal', filters[i], false)); - } - } - } - if (predicats.length == 0) { - changeDataSource([]); - } else { - let query = new Query().where(new Predicate.or(predicats)); - let newList = new DataManager(localData).executeLocal(query); - changeDataSource(newList); - setTimeout(function () { - listTreeObj.expandAll(); - }, 400); +//Filtering the TreeNodes +function searchNodes(args: { value: string }) { + const _text = args.value.trim(); + if (_text === "") { + changeDataSource(localData); + return; + } + const filteredList = new DataManager(localData) + .executeLocal(new Query().where(new Predicate('name', 'contains', _text, true))); + if (!filteredList.length) { + changeDataSource([]); + return; + } + const _array = new Set(); + const predicates: Predicate[] = []; + filteredList.forEach(item => { + const filters = getFilterItems(item, localData); + filters.forEach(filter => { + if (filter !== null && !_array.has(filter)) { + _array.add(filter); + predicates.push(new Predicate('id', 'equal', filter, false)); } - } + }); + }); + if (predicates.length > 0) { + const query = new Query().where(Predicate.or(...predicates)); + const newList = new DataManager(localData).executeLocal(query); + changeDataSource(newList); + setTimeout(() => { + listTreeObj.expandAll(); + }, 400); + } else { + changeDataSource([]); } +} - //Find the Parent Nodes for corresponding childs - function getFilterItems(fList, list) { - let nodes = []; - nodes.push(fList["id"]); - let query2 = new Query().where('id', 'equal', fList["pid"], false); - let fList1 = new DataManager(list).executeLocal(query2); - if (fList1.length != 0) { - let pNode = getFilterItems(fList1[0], list); - for (let i = 0; i < pNode.length; i++) { - if (nodes.indexOf(pNode[i]) == -1 && pNode[i] != null) - nodes.push(pNode[i]); - } - return nodes; +//Find the Parent Nodes for corresponding childs +function getFilterItems(fList, list) { + let nodes: any = []; + nodes.push(fList["id"]); + let query2 = new Query().where('id', 'equal', fList["pid"], false); + let fList1 = new DataManager(list).executeLocal(query2); + if (fList1.length != 0) { + let pNode = getFilterItems(fList1[0], list); + for (let i = 0; i < pNode.length; i++) { + if (nodes.indexOf(pNode[i]) == -1 && pNode[i] != null) + nodes.push(pNode[i]); } return nodes; } - - + return nodes; +} \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/filtering-cs1/js/index.html b/ej2-javascript/code-snippet/treeview/how-to/filtering-cs1/js/index.html index d98b7743c..dd20651ec 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/filtering-cs1/js/index.html +++ b/ej2-javascript/code-snippet/treeview/how-to/filtering-cs1/js/index.html @@ -1,25 +1,21 @@ - - - - - - Essential JS 2 for TreeView - - - - - - - - - - - - - - -
          -
          + + + + Essential JS 2 for TreeView + + + + + + + + + + + + +
          +
          @@ -27,9 +23,9 @@
          -
          - - - - - - \ No newline at end of file + + + + + + + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/filtering-cs1/ts/index.html b/ej2-javascript/code-snippet/treeview/how-to/filtering-cs1/ts/index.html index 022ae0a79..5d8837a13 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/filtering-cs1/ts/index.html +++ b/ej2-javascript/code-snippet/treeview/how-to/filtering-cs1/ts/index.html @@ -2,23 +2,23 @@ - Essential JS 2 for TreeView - - - - - - - - - - + Essential JS 2 for TreeView + + + + + + + + + + -
          Loading....
          -
          -
          +
          Loading....
          +
          +
          @@ -26,9 +26,9 @@
          -
          - + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/get-child-nodes-cs1/index.css b/ej2-javascript/code-snippet/treeview/how-to/get-child-nodes-cs1/index.css index 756014e9c..26aa2012a 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/get-child-nodes-cs1/index.css +++ b/ej2-javascript/code-snippet/treeview/how-to/get-child-nodes-cs1/index.css @@ -1,5 +1,5 @@ #container { - visibility: hidden; + visibility: hidden; } #loader { @@ -7,18 +7,8 @@ height: 40px; width: 30%; position: absolute; - font-family: 'Helvetica Neue','calibiri'; + font-family: 'Helvetica Neue', 'calibiri'; font-size: 14px; top: 45%; left: 45%; -} - -#treeparent { - display: block; - max-width: 350px; - max-height: 350px; - margin: auto; - overflow: auto; - border: 1px solid #dddddd; - border-radius: 3px; -} +} \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/get-child-nodes-cs1/index.js b/ej2-javascript/code-snippet/treeview/how-to/get-child-nodes-cs1/index.js index 28b4c7eb7..9ad2f5d31 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/get-child-nodes-cs1/index.js +++ b/ej2-javascript/code-snippet/treeview/how-to/get-child-nodes-cs1/index.js @@ -1,10 +1,10 @@ - /** - * Accordion tree sample - */ +/** +* TreeView get child nodes from parent id sample +*/ -// Hierarchical data source for TreeView component - var data = [ - { +// Hierarchical data source for TreeView control +var data = [ + { code: "AF", name: "Africa", countries: [ { code: "NGA", name: "Nigeria" }, { code: "EGY", name: "Egypt" }, @@ -14,9 +14,11 @@ { code: "AS", name: "Asia", countries: [ { code: "CHN", name: "China" }, - { code: "IND", name: "India" , countries: [ - {code: "TN", name: "TamilNadu" } - ]}, + { + code: "IND", name: "India", countries: [ + { code: "TN", name: "TamilNadu" } + ] + }, { code: "JPN", name: "Japan" } ] }, @@ -41,7 +43,7 @@ { code: "ARG", name: "Argentina" } ] }, - + ]; var tree1 = new ej.navigations.TreeView({ fields: { dataSource: data, id: 'code', text: 'name', child: 'countries' }, @@ -51,17 +53,16 @@ var tree1 = new ej.navigations.TreeView({ tree1.appendTo('#tree'); function onCreate() { var proxy = this; - document.getElementById("btn").addEventListener("click",function(){ - var id = document.getElementById('Nodes').value; - var element= proxy.element.querySelector('[data-uid="' + id + '"]'); - // Gets the child Element - var liElements = element.querySelectorAll('ul li'); - var arr= []; - for (var i = 0; i < liElements.length; i++) { - var nodeData= proxy.getNode(liElements[i]); - arr.push(nodeData); - } - alert(JSON.stringify(arr)); - }) -} - + document.getElementById("btn").addEventListener("click", function () { + var id = document.getElementById('Nodes').value; + var element = proxy.element.querySelector('[data-uid="' + id + '"]'); + // Gets the child Element + var liElements = element.querySelectorAll('ul li'); + var arr = []; + for (var i = 0; i < liElements.length; i++) { + var nodeData = proxy.getNode(liElements[i]); + arr.push(nodeData); + } + alert(JSON.stringify(arr)); + }) +} \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/get-child-nodes-cs1/index.ts b/ej2-javascript/code-snippet/treeview/how-to/get-child-nodes-cs1/index.ts index fc22da1ae..8f33f5c8b 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/get-child-nodes-cs1/index.ts +++ b/ej2-javascript/code-snippet/treeview/how-to/get-child-nodes-cs1/index.ts @@ -1,17 +1,14 @@ - - - import { enableRipple } from '@syncfusion/ej2-base'; import { TreeView } from '@syncfusion/ej2-navigations'; enableRipple(true); /** - * TreeeView get child nodes from parent id sample + * TreeView get child nodes from parent id sample */ - // List data source for TreeView component - let data: { [key: string]: Object }[] = [ - { +// List data source for TreeView control +let data: { [key: string]: Object }[] = [ + { code: "AF", name: "Africa", countries: [ { code: "NGA", name: "Nigeria" }, { code: "EGY", name: "Egypt" }, @@ -21,9 +18,11 @@ enableRipple(true); { code: "AS", name: "Asia", countries: [ { code: "CHN", name: "China" }, - { code: "IND", name: "India" , countries: [ - {code: "TN", name: "TamilNadu" } - ]}, + { + code: "IND", name: "India", countries: [ + { code: "TN", name: "TamilNadu" } + ] + }, { code: "JPN", name: "Japan" } ] }, @@ -59,19 +58,16 @@ tree1.appendTo('#tree'); function onCreate() { let proxy = this; - document.getElementById("btn").addEventListener("click",(event)=>{ - let id = document.getElementById('Nodes').value - let element= proxy.element.querySelector('[data-uid="' + id + '"]'); - // Gets the child Element - let liElements = element.querySelectorAll('ul li'); - let arr= []; - for (let i = 0; i < liElements.length; i++) { - let nodeData= proxy.getNode(liElements[i]); - arr.push(nodeData); - } - alert(JSON.stringify(arr)); - }) -} - - - + document.getElementById("btn")?.addEventListener("click", (event) => { + let id = (document.getElementById('Nodes') as HTMLInputElement)?.value; + let element = proxy.element.querySelector('[data-uid="' + id + '"]'); + // Gets the child Element + let liElements = element.querySelectorAll('ul li'); + let arr: any = []; + for (let i = 0; i < liElements.length; i++) { + let nodeData = proxy.getNode(liElements[i]); + arr.push(nodeData); + } + alert(JSON.stringify(arr)); + }) +} \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/get-child-nodes-cs1/js/index.html b/ej2-javascript/code-snippet/treeview/how-to/get-child-nodes-cs1/js/index.html index 8bbc761e8..64381a8ea 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/get-child-nodes-cs1/js/index.html +++ b/ej2-javascript/code-snippet/treeview/how-to/get-child-nodes-cs1/js/index.html @@ -1,37 +1,49 @@ - - Essential JS 2 for TreeView - - - - - - - - - - - + + + + + Essential JS 2 for TreeView + + + + + + + + + - -
          -
          -
          -
          -
          - - -
          +
          +
          +
          +
          + + +
          +
          + + + + - - - - \ No newline at end of file + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/get-child-nodes-cs1/ts/index.html b/ej2-javascript/code-snippet/treeview/how-to/get-child-nodes-cs1/ts/index.html index d566234d7..38bd253fc 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/get-child-nodes-cs1/ts/index.html +++ b/ej2-javascript/code-snippet/treeview/how-to/get-child-nodes-cs1/ts/index.html @@ -9,7 +9,7 @@ - + @@ -21,11 +21,23 @@
          -
          - - -
          +
          + + +
          + - + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/icon-css-cs1/index.css b/ej2-javascript/code-snippet/treeview/how-to/icon-css-cs1/index.css index c4240a64b..26aa2012a 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/icon-css-cs1/index.css +++ b/ej2-javascript/code-snippet/treeview/how-to/icon-css-cs1/index.css @@ -1,5 +1,5 @@ #container { - visibility: hidden; + visibility: hidden; } #loader { @@ -7,31 +7,8 @@ height: 40px; width: 30%; position: absolute; - font-family: 'Helvetica Neue','calibiri'; + font-family: 'Helvetica Neue', 'calibiri'; font-size: 14px; top: 45%; left: 45%; -} - -#treeparent { - display: block; - max-width: 350px; - max-height: 350px; - margin: auto; - overflow: auto; - border: 1px solid #dddddd; - border-radius: 3px; -} - -.e-treeview .e-list-img { - width: 25px; - height: 25px; -} -.e-treeview .e-list-icon { - background-repeat: no-repeat; - background-image: url(https://ej2.syncfusion.com/javascript/demos/src/treeview/images/icons/file_icons.png); - height: 20px; -} -.e-treeview .e-list-icon.folder { background-position: -10px -552px } -.e-treeview .e-list-icon.audio { background-position: -10px -244px } -.e-treeview .e-list-icon.video { background-position: -10px -272px } +} \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/icon-css-cs1/index.js b/ej2-javascript/code-snippet/treeview/how-to/icon-css-cs1/index.js index 7ffa8d80c..16bbecf43 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/icon-css-cs1/index.js +++ b/ej2-javascript/code-snippet/treeview/how-to/icon-css-cs1/index.js @@ -1,9 +1,9 @@ - /** - * TreeView icon css sample - */ +/** +* TreeView icon css sample +*/ -// Hierarchical data source for TreeView component - var treeData = [ +// Hierarchical data source for TreeView control +var treeData = [ { "nodeId": "01", "nodeText": "Music", "icon": "folder", "expanded": true, "nodeChild": [ @@ -33,5 +33,4 @@ function onNodeChecking(args) { // To get the iconCss var iconClass = this.getTreeData(nodeId)[0].icon; alert('Icon class is ' + iconClass); -} - +} \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/icon-css-cs1/index.ts b/ej2-javascript/code-snippet/treeview/how-to/icon-css-cs1/index.ts index 437e69fb4..fae41d1bd 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/icon-css-cs1/index.ts +++ b/ej2-javascript/code-snippet/treeview/how-to/icon-css-cs1/index.ts @@ -1,6 +1,3 @@ - - - import { enableRipple } from '@syncfusion/ej2-base'; import { TreeView } from '@syncfusion/ej2-navigations'; enableRipple(true); @@ -9,9 +6,9 @@ enableRipple(true); * TreeView dynamic iconCss sample */ - // List data source for TreeView component - let treeData: { [key: string]: Object }[] = [ - { +// List data source for TreeView control +let treeData: { [key: string]: Object }[] = [ + { "nodeId": "01", "nodeText": "Music", "icon": "folder", "expanded": true, "nodeChild": [ { "nodeId": "01-01", "nodeText": "Gouttes.mp3", "icon": "audio" } @@ -27,10 +24,10 @@ enableRipple(true); ]; let tree1: TreeView = new TreeView({ - fields: { dataSource: treeData, id: 'nodeId', text: 'nodeText', child: 'nodeChild', iconCss: 'icon', expanded: 'expanded' }, - showCheckBox: true, - nodeChecking: onNodeChecking, - autoCheck: false + fields: { dataSource: treeData, id: 'nodeId', text: 'nodeText', child: 'nodeChild', iconCss: 'icon', expanded: 'expanded' }, + showCheckBox: true, + nodeChecking: onNodeChecking, + autoCheck: false }); tree1.appendTo('#tree'); @@ -39,7 +36,4 @@ function onNodeChecking(args) { // To get the iconCss let iconClass = this.getTreeData(nodeId)[0].icon; alert('Icon class is ' + iconClass); -} - - - +} \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/icon-css-cs1/js/index.html b/ej2-javascript/code-snippet/treeview/how-to/icon-css-cs1/js/index.html index a767c1291..cb36929d6 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/icon-css-cs1/js/index.html +++ b/ej2-javascript/code-snippet/treeview/how-to/icon-css-cs1/js/index.html @@ -1,4 +1,7 @@ - + + + + Essential JS 2 for TreeView @@ -8,26 +11,57 @@ - - - + -
          + + + + - - - \ No newline at end of file + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/icon-css-cs1/ts/index.html b/ej2-javascript/code-snippet/treeview/how-to/icon-css-cs1/ts/index.html index 1cf7f0d01..e823398f1 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/icon-css-cs1/ts/index.html +++ b/ej2-javascript/code-snippet/treeview/how-to/icon-css-cs1/ts/index.html @@ -22,6 +22,40 @@
          + - + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/manipulating-nodes/addNodes/index.css b/ej2-javascript/code-snippet/treeview/how-to/manipulating-nodes/addNodes/index.css index 756014e9c..26aa2012a 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/manipulating-nodes/addNodes/index.css +++ b/ej2-javascript/code-snippet/treeview/how-to/manipulating-nodes/addNodes/index.css @@ -1,5 +1,5 @@ #container { - visibility: hidden; + visibility: hidden; } #loader { @@ -7,18 +7,8 @@ height: 40px; width: 30%; position: absolute; - font-family: 'Helvetica Neue','calibiri'; + font-family: 'Helvetica Neue', 'calibiri'; font-size: 14px; top: 45%; left: 45%; -} - -#treeparent { - display: block; - max-width: 350px; - max-height: 350px; - margin: auto; - overflow: auto; - border: 1px solid #dddddd; - border-radius: 3px; -} +} \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/manipulating-nodes/addNodes/index.js b/ej2-javascript/code-snippet/treeview/how-to/manipulating-nodes/addNodes/index.js index a7dac28e9..bc6153ac6 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/manipulating-nodes/addNodes/index.js +++ b/ej2-javascript/code-snippet/treeview/how-to/manipulating-nodes/addNodes/index.js @@ -1,33 +1,33 @@ -// Description: This snippet demonstrates how to add nodes to the TreeView component. +// Description: This snippet demonstrates how to add nodes to the TreeView control. var countries = [ - { id: 1, name: 'Australia', hasChild: true, expanded: true }, - { id: 2, pid: 1, name: 'New South Wales', isSelected: true }, - { id: 3, pid: 1, name: 'Victoria' }, - { id: 4, pid: 1, name: 'South Australia' }, - { id: 6, pid: 1, name: 'Western Australia', isSelected: true }, - { id: 7, name: 'Brazil', hasChild: true }, - { id: 8, pid: 7, name: 'Paraná' }, - { id: 9, pid: 7, name: 'Ceará' }, - { id: 10, pid: 7, name: 'Acre' }, - { id: 11, name: 'China', hasChild: true }, - { id: 12, pid: 11, name: 'Guangzhou' }, - { id: 13, pid: 11, name: 'Shanghai' }, - { id: 14, pid: 11, name: 'Beijing' }, - { id: 15, pid: 11, name: 'Shantou' }, - { id: 16, name: 'France', hasChild: true }, - { id: 17, pid: 16, name: 'Pays de la Loire' }, - { id: 18, pid: 16, name: 'Aquitaine' }, - { id: 19, pid: 16, name: 'Brittany' }, - { id: 20, pid: 16, name: 'Lorraine' }, - { id: 21, name: 'India', hasChild: true }, - { id: 22, pid: 21, name: 'Assam' }, - { id: 23, pid: 21, name: 'Bihar' }, - { id: 24, pid: 21, name: 'Tamil Nadu' }, - { id: 25, pid: 21, name: 'Punjab' } + { id: 1, name: 'Australia', hasChild: true, expanded: true }, + { id: 2, pid: 1, name: 'New South Wales', isSelected: true }, + { id: 3, pid: 1, name: 'Victoria' }, + { id: 4, pid: 1, name: 'South Australia' }, + { id: 6, pid: 1, name: 'Western Australia', isSelected: true }, + { id: 7, name: 'Brazil', hasChild: true }, + { id: 8, pid: 7, name: 'Paraná' }, + { id: 9, pid: 7, name: 'Ceará' }, + { id: 10, pid: 7, name: 'Acre' }, + { id: 11, name: 'China', hasChild: true }, + { id: 12, pid: 11, name: 'Guangzhou' }, + { id: 13, pid: 11, name: 'Shanghai' }, + { id: 14, pid: 11, name: 'Beijing' }, + { id: 15, pid: 11, name: 'Shantou' }, + { id: 16, name: 'France', hasChild: true }, + { id: 17, pid: 16, name: 'Pays de la Loire' }, + { id: 18, pid: 16, name: 'Aquitaine' }, + { id: 19, pid: 16, name: 'Brittany' }, + { id: 20, pid: 16, name: 'Lorraine' }, + { id: 21, name: 'India', hasChild: true }, + { id: 22, pid: 21, name: 'Assam' }, + { id: 23, pid: 21, name: 'Bihar' }, + { id: 24, pid: 21, name: 'Tamil Nadu' }, + { id: 25, pid: 21, name: 'Punjab' } ]; var treeObj = new ej.navigations.TreeView({ - fields: { dataSource: countries, id: 'id', parentID: 'pid', text: 'name', hasChildren: 'hasChild' }, + fields: { dataSource: countries, id: 'id', parentID: 'pid', text: 'name', hasChildren: 'hasChild' }, }); treeObj.appendTo('#addtree'); @@ -38,8 +38,8 @@ document.getElementById('button1').onclick = function () { { id: 27, pid: 26, name: 'New Child' }, ]); }; - + document.getElementById('button2').onclick = function () { // Add a new child node to the existing parent node treeObj.addNodes([{ id: 29, pid: 21, name: 'New Child1' }], 21); -}; +}; \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/manipulating-nodes/addNodes/index.ts b/ej2-javascript/code-snippet/treeview/how-to/manipulating-nodes/addNodes/index.ts index e9bde0acc..2f46ded36 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/manipulating-nodes/addNodes/index.ts +++ b/ej2-javascript/code-snippet/treeview/how-to/manipulating-nodes/addNodes/index.ts @@ -2,34 +2,34 @@ import { TreeView } from '@syncfusion/ej2-navigations'; let countries: { [key: string]: Object }[] = [ - { id: 1, name: 'Australia', hasChild: true, expanded: true }, - { id: 2, pid: 1, name: 'New South Wales', isSelected: true }, - { id: 3, pid: 1, name: 'Victoria' }, - { id: 4, pid: 1, name: 'South Australia' }, - { id: 6, pid: 1, name: 'Western Australia', isSelected: true }, - { id: 7, name: 'Brazil', hasChild: true }, - { id: 8, pid: 7, name: 'Paraná' }, - { id: 9, pid: 7, name: 'Ceará' }, - { id: 10, pid: 7, name: 'Acre' }, - { id: 11, name: 'China', hasChild: true }, - { id: 12, pid: 11, name: 'Guangzhou' }, - { id: 13, pid: 11, name: 'Shanghai' }, - { id: 14, pid: 11, name: 'Beijing' }, - { id: 15, pid: 11, name: 'Shantou' }, - { id: 16, name: 'France', hasChild: true }, - { id: 17, pid: 16, name: 'Pays de la Loire' }, - { id: 18, pid: 16, name: 'Aquitaine' }, - { id: 19, pid: 16, name: 'Brittany' }, - { id: 20, pid: 16, name: 'Lorraine' }, - { id: 21, name: 'India', hasChild: true }, - { id: 22, pid: 21, name: 'Assam' }, - { id: 23, pid: 21, name: 'Bihar' }, - { id: 24, pid: 21, name: 'Tamil Nadu' }, - { id: 25, pid: 21, name: 'Punjab' } + { id: 1, name: 'Australia', hasChild: true, expanded: true }, + { id: 2, pid: 1, name: 'New South Wales', isSelected: true }, + { id: 3, pid: 1, name: 'Victoria' }, + { id: 4, pid: 1, name: 'South Australia' }, + { id: 6, pid: 1, name: 'Western Australia', isSelected: true }, + { id: 7, name: 'Brazil', hasChild: true }, + { id: 8, pid: 7, name: 'Paraná' }, + { id: 9, pid: 7, name: 'Ceará' }, + { id: 10, pid: 7, name: 'Acre' }, + { id: 11, name: 'China', hasChild: true }, + { id: 12, pid: 11, name: 'Guangzhou' }, + { id: 13, pid: 11, name: 'Shanghai' }, + { id: 14, pid: 11, name: 'Beijing' }, + { id: 15, pid: 11, name: 'Shantou' }, + { id: 16, name: 'France', hasChild: true }, + { id: 17, pid: 16, name: 'Pays de la Loire' }, + { id: 18, pid: 16, name: 'Aquitaine' }, + { id: 19, pid: 16, name: 'Brittany' }, + { id: 20, pid: 16, name: 'Lorraine' }, + { id: 21, name: 'India', hasChild: true }, + { id: 22, pid: 21, name: 'Assam' }, + { id: 23, pid: 21, name: 'Bihar' }, + { id: 24, pid: 21, name: 'Tamil Nadu' }, + { id: 25, pid: 21, name: 'Punjab' } ]; let treeObj: TreeView = new TreeView({ - fields: { dataSource: countries, id: 'id', parentID: 'pid', text: 'name', hasChildren: 'hasChild' }, + fields: { dataSource: countries, id: 'id', parentID: 'pid', text: 'name', hasChildren: 'hasChild' }, }); treeObj.appendTo('#addtree'); @@ -40,7 +40,7 @@ document.getElementById('button1')!.onclick = (): void => { { id: 27, pid: 26, name: 'New Child1' }, ]); }; - + document.getElementById('button2')!.onclick = (): void => { // Add a new child node to the existing parent node treeObj.addNodes([{ id: 28, name: 'New Child2', pid: 21 }], '21', null); diff --git a/ej2-javascript/code-snippet/treeview/how-to/manipulating-nodes/addNodes/js/index.html b/ej2-javascript/code-snippet/treeview/how-to/manipulating-nodes/addNodes/js/index.html index 5c9e2701e..27220e61c 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/manipulating-nodes/addNodes/js/index.html +++ b/ej2-javascript/code-snippet/treeview/how-to/manipulating-nodes/addNodes/js/index.html @@ -1,29 +1,42 @@ - - - -  - Essential JS 2 for TreeView - - - - - - - -
          -
          -
          - - -
          + + Essential JS 2 for TreeView + + + + + + + + + + + +
          +
          + + +
          - - - +
          + + + + + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/manipulating-nodes/addNodes/ts/index.html b/ej2-javascript/code-snippet/treeview/how-to/manipulating-nodes/addNodes/ts/index.html index 9fcc62323..b04fff6c3 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/manipulating-nodes/addNodes/ts/index.html +++ b/ej2-javascript/code-snippet/treeview/how-to/manipulating-nodes/addNodes/ts/index.html @@ -1,25 +1,39 @@  - - Essential JS 2 for TreeView - - - - - - - - - - - -
          Loading....
          -
          -
          -
          - - -
          + + + Essential JS 2 for TreeView + + + + + + + + + + + + +
          Loading....
          +
          +
          + + +
          - +
          + + + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/manipulating-nodes/moveNodes/index.css b/ej2-javascript/code-snippet/treeview/how-to/manipulating-nodes/moveNodes/index.css index 756014e9c..26aa2012a 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/manipulating-nodes/moveNodes/index.css +++ b/ej2-javascript/code-snippet/treeview/how-to/manipulating-nodes/moveNodes/index.css @@ -1,5 +1,5 @@ #container { - visibility: hidden; + visibility: hidden; } #loader { @@ -7,18 +7,8 @@ height: 40px; width: 30%; position: absolute; - font-family: 'Helvetica Neue','calibiri'; + font-family: 'Helvetica Neue', 'calibiri'; font-size: 14px; top: 45%; left: 45%; -} - -#treeparent { - display: block; - max-width: 350px; - max-height: 350px; - margin: auto; - overflow: auto; - border: 1px solid #dddddd; - border-radius: 3px; -} +} \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/manipulating-nodes/moveNodes/js/index.html b/ej2-javascript/code-snippet/treeview/how-to/manipulating-nodes/moveNodes/js/index.html index 4ca4b2507..d6bdbefde 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/manipulating-nodes/moveNodes/js/index.html +++ b/ej2-javascript/code-snippet/treeview/how-to/manipulating-nodes/moveNodes/js/index.html @@ -1,28 +1,41 @@ - - - -  - Essential JS 2 for TreeView - - - - - - - -
          -
          -
          - -
          + + Essential JS 2 for TreeView + + + + + + + + + + + +
          +
          +
          +
          - - - +
          + + + + + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/manipulating-nodes/moveNodes/ts/index.html b/ej2-javascript/code-snippet/treeview/how-to/manipulating-nodes/moveNodes/ts/index.html index 47b3230f6..d4728677d 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/manipulating-nodes/moveNodes/ts/index.html +++ b/ej2-javascript/code-snippet/treeview/how-to/manipulating-nodes/moveNodes/ts/index.html @@ -1,24 +1,38 @@  - - Essential JS 2 for TreeView - - - - - - - - - - - -
          Loading....
          -
          -
          -
          - -
          + + + Essential JS 2 for TreeView + + + + + + + + + + + + +
          Loading....
          +
          +
          +
          +
          - +
          + + + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/manipulating-nodes/refreshNode/index.css b/ej2-javascript/code-snippet/treeview/how-to/manipulating-nodes/refreshNode/index.css index 756014e9c..26aa2012a 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/manipulating-nodes/refreshNode/index.css +++ b/ej2-javascript/code-snippet/treeview/how-to/manipulating-nodes/refreshNode/index.css @@ -1,5 +1,5 @@ #container { - visibility: hidden; + visibility: hidden; } #loader { @@ -7,18 +7,8 @@ height: 40px; width: 30%; position: absolute; - font-family: 'Helvetica Neue','calibiri'; + font-family: 'Helvetica Neue', 'calibiri'; font-size: 14px; top: 45%; left: 45%; -} - -#treeparent { - display: block; - max-width: 350px; - max-height: 350px; - margin: auto; - overflow: auto; - border: 1px solid #dddddd; - border-radius: 3px; -} +} \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/manipulating-nodes/refreshNode/js/index.html b/ej2-javascript/code-snippet/treeview/how-to/manipulating-nodes/refreshNode/js/index.html index 720a75448..f7e0a40e6 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/manipulating-nodes/refreshNode/js/index.html +++ b/ej2-javascript/code-snippet/treeview/how-to/manipulating-nodes/refreshNode/js/index.html @@ -1,28 +1,41 @@ - - - -  - Essential JS 2 for TreeView - - - - - - - -
          -
          -
          - -
          + + Essential JS 2 for TreeView + + + + + + + + + + + +
          +
          +
          +
          - - - +
          + + + + + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/manipulating-nodes/refreshNode/ts/index.html b/ej2-javascript/code-snippet/treeview/how-to/manipulating-nodes/refreshNode/ts/index.html index 7a01c95be..4ee1b68f8 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/manipulating-nodes/refreshNode/ts/index.html +++ b/ej2-javascript/code-snippet/treeview/how-to/manipulating-nodes/refreshNode/ts/index.html @@ -1,24 +1,38 @@  - - Essential JS 2 for TreeView - - - - - - - - - - - -
          Loading....
          -
          -
          -
          - -
          + + + Essential JS 2 for TreeView + + + + + + + + + + + + +
          Loading....
          +
          +
          +
          +
          - +
          + + + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/manipulating-nodes/removeNodes/index.css b/ej2-javascript/code-snippet/treeview/how-to/manipulating-nodes/removeNodes/index.css index 756014e9c..26aa2012a 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/manipulating-nodes/removeNodes/index.css +++ b/ej2-javascript/code-snippet/treeview/how-to/manipulating-nodes/removeNodes/index.css @@ -1,5 +1,5 @@ #container { - visibility: hidden; + visibility: hidden; } #loader { @@ -7,18 +7,8 @@ height: 40px; width: 30%; position: absolute; - font-family: 'Helvetica Neue','calibiri'; + font-family: 'Helvetica Neue', 'calibiri'; font-size: 14px; top: 45%; left: 45%; -} - -#treeparent { - display: block; - max-width: 350px; - max-height: 350px; - margin: auto; - overflow: auto; - border: 1px solid #dddddd; - border-radius: 3px; -} +} \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/manipulating-nodes/removeNodes/index.js b/ej2-javascript/code-snippet/treeview/how-to/manipulating-nodes/removeNodes/index.js index ee758f376..5ae82d100 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/manipulating-nodes/removeNodes/index.js +++ b/ej2-javascript/code-snippet/treeview/how-to/manipulating-nodes/removeNodes/index.js @@ -1,43 +1,43 @@ // Description: This snippet demonstrates how to remove the nodes from the TreeView control. var countries = [ - { id: 1, name: 'Australia', hasChild: true, expanded: true }, - { id: 2, pid: 1, name: 'New South Wales', isSelected: true }, - { id: 3, pid: 1, name: 'Victoria' }, - { id: 4, pid: 1, name: 'South Australia' }, - { id: 6, pid: 1, name: 'Western Australia', isSelected: true }, - { id: 7, name: 'Brazil', hasChild: true }, - { id: 8, pid: 7, name: 'Paraná' }, - { id: 9, pid: 7, name: 'Ceará' }, - { id: 10, pid: 7, name: 'Acre' }, - { id: 11, name: 'China', hasChild: true }, - { id: 12, pid: 11, name: 'Guangzhou' }, - { id: 13, pid: 11, name: 'Shanghai' }, - { id: 14, pid: 11, name: 'Beijing' }, - { id: 15, pid: 11, name: 'Shantou' }, - { id: 16, name: 'France', hasChild: true }, - { id: 17, pid: 16, name: 'Pays de la Loire' }, - { id: 18, pid: 16, name: 'Aquitaine' }, - { id: 19, pid: 16, name: 'Brittany' }, - { id: 20, pid: 16, name: 'Lorraine' }, - { id: 21, name: 'India', hasChild: true }, - { id: 22, pid: 21, name: 'Assam' }, - { id: 23, pid: 21, name: 'Bihar' }, - { id: 24, pid: 21, name: 'Tamil Nadu' }, - { id: 25, pid: 21, name: 'Punjab' } + { id: 1, name: 'Australia', hasChild: true, expanded: true }, + { id: 2, pid: 1, name: 'New South Wales', isSelected: true }, + { id: 3, pid: 1, name: 'Victoria' }, + { id: 4, pid: 1, name: 'South Australia' }, + { id: 6, pid: 1, name: 'Western Australia', isSelected: true }, + { id: 7, name: 'Brazil', hasChild: true }, + { id: 8, pid: 7, name: 'Paraná' }, + { id: 9, pid: 7, name: 'Ceará' }, + { id: 10, pid: 7, name: 'Acre' }, + { id: 11, name: 'China', hasChild: true }, + { id: 12, pid: 11, name: 'Guangzhou' }, + { id: 13, pid: 11, name: 'Shanghai' }, + { id: 14, pid: 11, name: 'Beijing' }, + { id: 15, pid: 11, name: 'Shantou' }, + { id: 16, name: 'France', hasChild: true }, + { id: 17, pid: 16, name: 'Pays de la Loire' }, + { id: 18, pid: 16, name: 'Aquitaine' }, + { id: 19, pid: 16, name: 'Brittany' }, + { id: 20, pid: 16, name: 'Lorraine' }, + { id: 21, name: 'India', hasChild: true }, + { id: 22, pid: 21, name: 'Assam' }, + { id: 23, pid: 21, name: 'Bihar' }, + { id: 24, pid: 21, name: 'Tamil Nadu' }, + { id: 25, pid: 21, name: 'Punjab' } ]; var treeObj = new ej.navigations.TreeView({ - fields: { dataSource: countries, id: 'id', parentID: 'pid', text: 'name', hasChildren: 'hasChild', selected: 'isSelected' }, - + fields: { dataSource: countries, id: 'id', parentID: 'pid', text: 'name', hasChildren: 'hasChild', selected: 'isSelected' }, + }); treeObj.appendTo('#tree'); document.getElementById('button1').onclick = function () { // The node with id 21 is removed from the TreeView control. - treeObj.removeNodes(['21']); + treeObj.removeNodes(['21']); }; - + document.getElementById('button2').onclick = function () { // The nodes with id 3 and 4 are removed from the TreeView control. - treeObj.removeNodes(['3','4']); + treeObj.removeNodes(['3', '4']); }; \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/manipulating-nodes/removeNodes/index.ts b/ej2-javascript/code-snippet/treeview/how-to/manipulating-nodes/removeNodes/index.ts index 38323355b..bcda2deb2 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/manipulating-nodes/removeNodes/index.ts +++ b/ej2-javascript/code-snippet/treeview/how-to/manipulating-nodes/removeNodes/index.ts @@ -2,34 +2,34 @@ import { TreeView } from '@syncfusion/ej2-navigations'; let countries: { [key: string]: Object }[] = [ - { id: 1, name: 'Australia', hasChild: true, expanded: true }, - { id: 2, pid: 1, name: 'New South Wales', isSelected: true }, - { id: 3, pid: 1, name: 'Victoria' }, - { id: 4, pid: 1, name: 'South Australia' }, - { id: 6, pid: 1, name: 'Western Australia', isSelected: true }, - { id: 7, name: 'Brazil', hasChild: true }, - { id: 8, pid: 7, name: 'Paraná' }, - { id: 9, pid: 7, name: 'Ceará' }, - { id: 10, pid: 7, name: 'Acre' }, - { id: 11, name: 'China', hasChild: true }, - { id: 12, pid: 11, name: 'Guangzhou' }, - { id: 13, pid: 11, name: 'Shanghai' }, - { id: 14, pid: 11, name: 'Beijing' }, - { id: 15, pid: 11, name: 'Shantou' }, - { id: 16, name: 'France', hasChild: true }, - { id: 17, pid: 16, name: 'Pays de la Loire' }, - { id: 18, pid: 16, name: 'Aquitaine' }, - { id: 19, pid: 16, name: 'Brittany' }, - { id: 20, pid: 16, name: 'Lorraine' }, - { id: 21, name: 'India', hasChild: true }, - { id: 22, pid: 21, name: 'Assam' }, - { id: 23, pid: 21, name: 'Bihar' }, - { id: 24, pid: 21, name: 'Tamil Nadu' }, - { id: 25, pid: 21, name: 'Punjab' } + { id: 1, name: 'Australia', hasChild: true, expanded: true }, + { id: 2, pid: 1, name: 'New South Wales', isSelected: true }, + { id: 3, pid: 1, name: 'Victoria' }, + { id: 4, pid: 1, name: 'South Australia' }, + { id: 6, pid: 1, name: 'Western Australia', isSelected: true }, + { id: 7, name: 'Brazil', hasChild: true }, + { id: 8, pid: 7, name: 'Paraná' }, + { id: 9, pid: 7, name: 'Ceará' }, + { id: 10, pid: 7, name: 'Acre' }, + { id: 11, name: 'China', hasChild: true }, + { id: 12, pid: 11, name: 'Guangzhou' }, + { id: 13, pid: 11, name: 'Shanghai' }, + { id: 14, pid: 11, name: 'Beijing' }, + { id: 15, pid: 11, name: 'Shantou' }, + { id: 16, name: 'France', hasChild: true }, + { id: 17, pid: 16, name: 'Pays de la Loire' }, + { id: 18, pid: 16, name: 'Aquitaine' }, + { id: 19, pid: 16, name: 'Brittany' }, + { id: 20, pid: 16, name: 'Lorraine' }, + { id: 21, name: 'India', hasChild: true }, + { id: 22, pid: 21, name: 'Assam' }, + { id: 23, pid: 21, name: 'Bihar' }, + { id: 24, pid: 21, name: 'Tamil Nadu' }, + { id: 25, pid: 21, name: 'Punjab' } ]; let treeObj: TreeView = new TreeView({ - fields: { dataSource: countries, id: 'id', parentID: 'pid', text: 'name', hasChildren: 'hasChild', selected: 'isSelected' }, + fields: { dataSource: countries, id: 'id', parentID: 'pid', text: 'name', hasChildren: 'hasChild', selected: 'isSelected' }, }); treeObj.appendTo('#tree'); @@ -37,8 +37,8 @@ document.getElementById('button1')!.onclick = (): void => { // The node with id 21 is removed from the TreeView control. treeObj.removeNodes(['21']); }; - + document.getElementById('button2')!.onclick = (): void => { // The nodes with id 3 and 4 are removed from the TreeView control. - treeObj.removeNodes(['3','4']); + treeObj.removeNodes(['3', '4']); }; \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/manipulating-nodes/removeNodes/js/index.html b/ej2-javascript/code-snippet/treeview/how-to/manipulating-nodes/removeNodes/js/index.html index 221c44254..d53bfd2f1 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/manipulating-nodes/removeNodes/js/index.html +++ b/ej2-javascript/code-snippet/treeview/how-to/manipulating-nodes/removeNodes/js/index.html @@ -1,29 +1,42 @@ - - - -  - Essential JS 2 for TreeView - - - - - - - -
          -
          -
          - - -
          + + Essential JS 2 for TreeView + + + + + + + + + + + +
          +
          +
          + +
          - - - +
          + + + + + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/manipulating-nodes/removeNodes/ts/index.html b/ej2-javascript/code-snippet/treeview/how-to/manipulating-nodes/removeNodes/ts/index.html index 303099f23..3bdb36d2a 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/manipulating-nodes/removeNodes/ts/index.html +++ b/ej2-javascript/code-snippet/treeview/how-to/manipulating-nodes/removeNodes/ts/index.html @@ -1,25 +1,39 @@  - - Essential JS 2 for TreeView - - - - - - - - - - - -
          Loading....
          -
          -
          -
          - - -
          + + + Essential JS 2 for TreeView + + + + + + + + + + + + +
          Loading....
          +
          +
          +
          + +
          - +
          + + + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/manipulating-nodes/updateNode/index.css b/ej2-javascript/code-snippet/treeview/how-to/manipulating-nodes/updateNode/index.css index 756014e9c..26aa2012a 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/manipulating-nodes/updateNode/index.css +++ b/ej2-javascript/code-snippet/treeview/how-to/manipulating-nodes/updateNode/index.css @@ -1,5 +1,5 @@ #container { - visibility: hidden; + visibility: hidden; } #loader { @@ -7,18 +7,8 @@ height: 40px; width: 30%; position: absolute; - font-family: 'Helvetica Neue','calibiri'; + font-family: 'Helvetica Neue', 'calibiri'; font-size: 14px; top: 45%; left: 45%; -} - -#treeparent { - display: block; - max-width: 350px; - max-height: 350px; - margin: auto; - overflow: auto; - border: 1px solid #dddddd; - border-radius: 3px; -} +} \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/manipulating-nodes/updateNode/index.js b/ej2-javascript/code-snippet/treeview/how-to/manipulating-nodes/updateNode/index.js index aec549f66..6c5a19b04 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/manipulating-nodes/updateNode/index.js +++ b/ej2-javascript/code-snippet/treeview/how-to/manipulating-nodes/updateNode/index.js @@ -19,4 +19,4 @@ treeObj.appendTo('#tree'); document.getElementById('button1').onclick = function () { // Update the new node text for the node having id 4. treeObj.updateNode('4', 'Node updated'); -}; +}; \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/manipulating-nodes/updateNode/js/index.html b/ej2-javascript/code-snippet/treeview/how-to/manipulating-nodes/updateNode/js/index.html index 2a77655d3..527fc4ab8 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/manipulating-nodes/updateNode/js/index.html +++ b/ej2-javascript/code-snippet/treeview/how-to/manipulating-nodes/updateNode/js/index.html @@ -1,28 +1,41 @@ - - - -  - Essential JS 2 for TreeView - - - - - - - -
          -
          -
          - -
          + + Essential JS 2 for TreeView + + + + + + + + + + + +
          +
          +
          +
          - - - +
          + + + + + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/manipulating-nodes/updateNode/ts/index.html b/ej2-javascript/code-snippet/treeview/how-to/manipulating-nodes/updateNode/ts/index.html index 8df615aef..e6fe766b0 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/manipulating-nodes/updateNode/ts/index.html +++ b/ej2-javascript/code-snippet/treeview/how-to/manipulating-nodes/updateNode/ts/index.html @@ -1,24 +1,38 @@  - - - Essential JS 2 for TreeView - - - - - - - - - - - -
          Loading....
          -
          -
          -
          - -
          + + + + Essential JS 2 for TreeView + + + + + + + + + + + + +
          Loading....
          +
          +
          +
          +
          - +
          + + + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/multi-line-tree-cs1/index.css b/ej2-javascript/code-snippet/treeview/how-to/multi-line-tree-cs1/index.css index a7f6f0a27..26aa2012a 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/multi-line-tree-cs1/index.css +++ b/ej2-javascript/code-snippet/treeview/how-to/multi-line-tree-cs1/index.css @@ -1,5 +1,5 @@ #container { - visibility: hidden; + visibility: hidden; } #loader { @@ -7,23 +7,8 @@ height: 40px; width: 30%; position: absolute; - font-family: 'Helvetica Neue','calibiri'; + font-family: 'Helvetica Neue', 'calibiri'; font-size: 14px; top: 45%; left: 45%; -} - -#treeparent { - display: block; - max-width: 350px; - max-height: 350px; - margin: auto; - overflow: auto; - border: 1px solid #dddddd; - border-radius: 3px; -} - -.customTree li .e-list-text{ - white-space: normal; - word-break: break-all; } \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/multi-line-tree-cs1/index.js b/ej2-javascript/code-snippet/treeview/how-to/multi-line-tree-cs1/index.js index 1e072d2d4..704395500 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/multi-line-tree-cs1/index.js +++ b/ej2-javascript/code-snippet/treeview/how-to/multi-line-tree-cs1/index.js @@ -1,101 +1,99 @@ - /** - * Hovering multiline tree sample - */ +/** +* Hovering multiline tree sample +*/ -// Hierarchical data source for TreeView component - var hierarchicalData = [ - { - id: 1, name: 'Web Control sWeb ControlsWeb ControlsWeb ControlsWeb ControlsWeb ControlsWeb ControlsWeb Controls', expanded: true, - child: [ - { - id: 2, pid: 1, name: 'CalendarCalendarCalendarCalendarCalendarCalendarCalendarCalendarCalendarCalendarCalendarCalendarCalendar', checked: true, child: [ - { id: 7, pid: 2, name: 'Constructors' }, - { id: 8, pid: 2, name: 'Properties' }, - { id: 9, pid: 2, name: 'Methods' }, - { id: 10, pid: 2, name: 'Events' } - ] - }, - { - id: 3, pid: 1, name: 'Data Grid', child: [ - { id: 11, pid: 3, name: 'Constructors' }, - { id: 12, pid: 3, name: 'Fields' }, - { id: 13, pid: 3, name: 'Properties' }, - { id: 14, pid: 3, name: 'Methods' }, - { id: 15, pid: 3, name: 'Events' } - ] - }, - { - id: 4, pid: 1, name: 'DropDownList', child: [ - { id: 16, pid: 4, name: 'Constructors' }, - { id: 17, pid: 4, name: 'Properties' }, - { id: 18, pid: 4, name: 'Methods' } - ] - }, - { - id: 5, pid: 1, name: 'Menu', child: [ - { id: 19, pid: 5, name: 'Constructors' }, - { id: 20, pid: 5, name: 'Fields' }, - { id: 21, pid: 5, name: 'Properties' }, - { id: 22, pid: 5, name: 'Methods' }, - { id: 23, pid: 5, name: 'Events' } - ] - }, - ] - }, - { - id: 24, name: 'Web Controls', - child: [ - { - id: 25, pid: 24, name: 'Calendar', checked: true, child: [ - { id: 26, pid: 25, name: 'Constructors' }, - { id: 27, pid: 25, name: 'Properties' }, - { id: 28, pid: 25, name: 'Methods' }, - { id: 29, pid: 25, name: 'Events' } - ] - }, - { - id: 30, pid: 24, name: 'Data Grid', child: [ - { id: 31, pid: 30, name: 'Constructors' }, - { id: 32, pid: 30, name: 'Fields' }, - { id: 33, pid: 30, name: 'Properties' }, - { id: 34, pid: 30, name: 'Methods' }, - { id: 35, pid: 30, name: 'Events' } - ] - } - ] - } +// Hierarchical data source for TreeView control +var hierarchicalData = [ + { + id: 1, name: 'Web Control sWeb ControlsWeb ControlsWeb ControlsWeb ControlsWeb ControlsWeb ControlsWeb Controls', expanded: true, + child: [ + { + id: 2, pid: 1, name: 'CalendarCalendarCalendarCalendarCalendarCalendarCalendarCalendarCalendarCalendarCalendarCalendarCalendar', checked: true, child: [ + { id: 7, pid: 2, name: 'Constructors' }, + { id: 8, pid: 2, name: 'Properties' }, + { id: 9, pid: 2, name: 'Methods' }, + { id: 10, pid: 2, name: 'Events' } + ] + }, + { + id: 3, pid: 1, name: 'Data Grid', child: [ + { id: 11, pid: 3, name: 'Constructors' }, + { id: 12, pid: 3, name: 'Fields' }, + { id: 13, pid: 3, name: 'Properties' }, + { id: 14, pid: 3, name: 'Methods' }, + { id: 15, pid: 3, name: 'Events' } + ] + }, + { + id: 4, pid: 1, name: 'DropDownList', child: [ + { id: 16, pid: 4, name: 'Constructors' }, + { id: 17, pid: 4, name: 'Properties' }, + { id: 18, pid: 4, name: 'Methods' } + ] + }, + { + id: 5, pid: 1, name: 'Menu', child: [ + { id: 19, pid: 5, name: 'Constructors' }, + { id: 20, pid: 5, name: 'Fields' }, + { id: 21, pid: 5, name: 'Properties' }, + { id: 22, pid: 5, name: 'Methods' }, + { id: 23, pid: 5, name: 'Events' } + ] + }, + ] + }, + { + id: 24, name: 'Web Controls', + child: [ + { + id: 25, pid: 24, name: 'Calendar', checked: true, child: [ + { id: 26, pid: 25, name: 'Constructors' }, + { id: 27, pid: 25, name: 'Properties' }, + { id: 28, pid: 25, name: 'Methods' }, + { id: 29, pid: 25, name: 'Events' } + ] + }, + { + id: 30, pid: 24, name: 'Data Grid', child: [ + { id: 31, pid: 30, name: 'Constructors' }, + { id: 32, pid: 30, name: 'Fields' }, + { id: 33, pid: 30, name: 'Properties' }, + { id: 34, pid: 30, name: 'Methods' }, + { id: 35, pid: 30, name: 'Events' } + ] + } + ] + } ]; var tree1 = new ej.navigations.TreeView({ - fields: { dataSource:hierarchicalData , id: 'id', text: 'name', child: 'child' }, + fields: { dataSource: hierarchicalData, id: 'id', text: 'name', child: 'child' }, nodeSelecting: onselect, cssClass: "customTree" }); tree1.appendTo('#tree'); // Triggers on mouse hover/keydown event - ['mouseover','keydown'].forEach( evt => - document.getElementById("tree").addEventListener(evt, (event)=>{setHeight(event.target); })); - - // Triggers on node selection - function onSelect(arg) { - setHeight(arg.node); - } +['mouseover', 'keydown'].forEach(evt => + document.getElementById("tree").addEventListener(evt, (event) => { setHeight(event.target); })); - // Sets e-fullrow to be the same as e-text-content - function setHeight(element) { - if(tree1.fullRowSelect) { - if(element.classList.contains("e-treeview")) { - element = element.querySelector(".e-node-focus").querySelector(".e-fullrow"); +// Triggers on node selection +function onSelect(arg) { + setHeight(arg.node); +} + +// Sets e-fullrow to be the same as e-text-content +function setHeight(element) { + if (tree1.fullRowSelect) { + if (element.classList.contains("e-treeview")) { + element = element.querySelector(".e-node-focus").querySelector(".e-fullrow"); } - else if(element.classList.contains("e-list-parent")) { - element = element.querySelector(".e-fullrow"); + else if (element.classList.contains("e-list-parent")) { + element = element.querySelector(".e-fullrow"); } - else if(element.classList.value != ("e-fullrow") && element.closest(".e-list-item")) { - element = element.closest(".e-list-item").querySelector(".e-fullrow"); + else if (element.classList.value != ("e-fullrow") && element.closest(".e-list-item")) { + element = element.closest(".e-list-item").querySelector(".e-fullrow"); } - if(element.nextElementSibling) - element.style.height = element.nextElementSibling.offsetHeight +"px"; - } + if (element.nextElementSibling) + element.style.height = element.nextElementSibling.offsetHeight + "px"; } - - +} diff --git a/ej2-javascript/code-snippet/treeview/how-to/multi-line-tree-cs1/index.ts b/ej2-javascript/code-snippet/treeview/how-to/multi-line-tree-cs1/index.ts index fda054427..cacc432aa 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/multi-line-tree-cs1/index.ts +++ b/ej2-javascript/code-snippet/treeview/how-to/multi-line-tree-cs1/index.ts @@ -1,6 +1,3 @@ - - - import { enableRipple } from '@syncfusion/ej2-base'; import { TreeView } from '@syncfusion/ej2-navigations'; enableRipple(true); @@ -9,102 +6,100 @@ enableRipple(true); * Hovering multiple line TreeView sample */ - // List data source for TreeView component - let hierarchicalData: { [key: string]: Object }[] = [ - { - id: 1, name: 'Web Control sWeb ControlsWeb ControlsWeb ControlsWeb ControlsWeb ControlsWeb ControlsWeb Controls', expanded: true, - child: [ - { - id: 2, pid: 1, name: 'CalendarCalendarCalendarCalendarCalendarCalendarCalendarCalendarCalendarCalendarCalendarCalendarCalendar', checked: true, child: [ - { id: 7, pid: 2, name: 'Constructors' }, - { id: 8, pid: 2, name: 'Properties' }, - { id: 9, pid: 2, name: 'Methods' }, - { id: 10, pid: 2, name: 'Events' } - ] - }, - { - id: 3, pid: 1, name: 'Data Grid', child: [ - { id: 11, pid: 3, name: 'Constructors' }, - { id: 12, pid: 3, name: 'Fields' }, - { id: 13, pid: 3, name: 'Properties' }, - { id: 14, pid: 3, name: 'Methods' }, - { id: 15, pid: 3, name: 'Events' } - ] - }, - { - id: 4, pid: 1, name: 'DropDownList', child: [ - { id: 16, pid: 4, name: 'Constructors' }, - { id: 17, pid: 4, name: 'Properties' }, - { id: 18, pid: 4, name: 'Methods' } - ] - }, - { - id: 5, pid: 1, name: 'Menu', child: [ - { id: 19, pid: 5, name: 'Constructors' }, - { id: 20, pid: 5, name: 'Fields' }, - { id: 21, pid: 5, name: 'Properties' }, - { id: 22, pid: 5, name: 'Methods' }, - { id: 23, pid: 5, name: 'Events' } - ] - } - ] - }, - { - id: 24, name: 'Web Controls', - child: [ - { - id: 25, pid: 24, name: 'Calendar', checked: true, child: [ - { id: 26, pid: 25, name: 'Constructors' }, - { id: 27, pid: 25, name: 'Properties' }, - { id: 28, pid: 25, name: 'Methods' }, - { id: 29, pid: 25, name: 'Events' } - ] - }, - { - id: 30, pid: 24, name: 'Data Grid', child: [ - { id: 31, pid: 30, name: 'Constructors' }, - { id: 32, pid: 30, name: 'Fields' }, - { id: 33, pid: 30, name: 'Properties' }, - { id: 34, pid: 30, name: 'Methods' }, - { id: 35, pid: 30, name: 'Events' } - ] - } - ] - } - ]; +// List data source for TreeView control +let hierarchicalData: { [key: string]: Object }[] = [ + { + id: 1, name: 'Web Control sWeb ControlsWeb ControlsWeb ControlsWeb ControlsWeb ControlsWeb ControlsWeb Controls', expanded: true, + child: [ + { + id: 2, pid: 1, name: 'CalendarCalendarCalendarCalendarCalendarCalendarCalendarCalendarCalendarCalendarCalendarCalendarCalendar', checked: true, child: [ + { id: 7, pid: 2, name: 'Constructors' }, + { id: 8, pid: 2, name: 'Properties' }, + { id: 9, pid: 2, name: 'Methods' }, + { id: 10, pid: 2, name: 'Events' } + ] + }, + { + id: 3, pid: 1, name: 'Data Grid', child: [ + { id: 11, pid: 3, name: 'Constructors' }, + { id: 12, pid: 3, name: 'Fields' }, + { id: 13, pid: 3, name: 'Properties' }, + { id: 14, pid: 3, name: 'Methods' }, + { id: 15, pid: 3, name: 'Events' } + ] + }, + { + id: 4, pid: 1, name: 'DropDownList', child: [ + { id: 16, pid: 4, name: 'Constructors' }, + { id: 17, pid: 4, name: 'Properties' }, + { id: 18, pid: 4, name: 'Methods' } + ] + }, + { + id: 5, pid: 1, name: 'Menu', child: [ + { id: 19, pid: 5, name: 'Constructors' }, + { id: 20, pid: 5, name: 'Fields' }, + { id: 21, pid: 5, name: 'Properties' }, + { id: 22, pid: 5, name: 'Methods' }, + { id: 23, pid: 5, name: 'Events' } + ] + } + ] + }, + { + id: 24, name: 'Web Controls', + child: [ + { + id: 25, pid: 24, name: 'Calendar', checked: true, child: [ + { id: 26, pid: 25, name: 'Constructors' }, + { id: 27, pid: 25, name: 'Properties' }, + { id: 28, pid: 25, name: 'Methods' }, + { id: 29, pid: 25, name: 'Events' } + ] + }, + { + id: 30, pid: 24, name: 'Data Grid', child: [ + { id: 31, pid: 30, name: 'Constructors' }, + { id: 32, pid: 30, name: 'Fields' }, + { id: 33, pid: 30, name: 'Properties' }, + { id: 34, pid: 30, name: 'Methods' }, + { id: 35, pid: 30, name: 'Events' } + ] + } + ] + } +]; - // Render the TreeView by mapping its fields property with data source properties - let treeObj: TreeView = new TreeView({ - fields: { dataSource:hierarchicalData , id: 'id', text: 'name', child: 'child' }, - nodeSelecting: onselect, - cssClass: ("customTree") - }); - treeObj.appendTo('#tree'); +// Render the TreeView by mapping its fields property with data source properties +let treeObj: TreeView = new TreeView({ + fields: { dataSource: hierarchicalData, id: 'id', text: 'name', child: 'child' }, + nodeSelecting: onselect, + cssClass: ("customTree") +}); +treeObj.appendTo('#tree'); - // Triggers on mouse hover/keydown event - ['mouseover','keydown'].forEach( evt => - document.getElementById("tree").addEventListener(evt, (event)=>{setHeight(event.target); })); +// Triggers on mouse hover/keydown event +['mouseover', 'keydown'].forEach(evt => + document.getElementById("tree")?.addEventListener(evt, (event) => { setHeight(event.target); })); - // Triggers on node selection - function onSelect(arg) { - setHeight(arg.node); - } +// Triggers on node selection +function onSelect(arg) { + setHeight(arg.node); +} - // Sets e-fullrow to be the same as e-text-content - function setHeight(element) { - if(treeObj.fullRowSelect) { - if(element.classList.contains("e-treeview")) { - element = element.querySelector(".e-node-focus").querySelector(".e-fullrow"); +// Sets e-fullrow to be the same as e-text-content +function setHeight(element) { + if (treeObj.fullRowSelect) { + if (element.classList.contains("e-treeview")) { + element = element.querySelector(".e-node-focus").querySelector(".e-fullrow"); } - else if(element.classList.contains("e-list-parent")) { - element = element.querySelector(".e-fullrow"); + else if (element.classList.contains("e-list-parent")) { + element = element.querySelector(".e-fullrow"); } - else if(element.classList.value != ("e-fullrow") && element.closest(".e-list-item")) { - element = element.closest(".e-list-item").querySelector(".e-fullrow"); + else if (element.classList.value != ("e-fullrow") && element.closest(".e-list-item")) { + element = element.closest(".e-list-item").querySelector(".e-fullrow"); } - if(element.nextElementSibling) - element.style.height = element.nextElementSibling.offsetHeight +"px"; - } + if (element.nextElementSibling) + element.style.height = element.nextElementSibling.offsetHeight + "px"; } - - +} \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/multi-line-tree-cs1/js/index.html b/ej2-javascript/code-snippet/treeview/how-to/multi-line-tree-cs1/js/index.html index a6b5b1275..6a1843963 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/multi-line-tree-cs1/js/index.html +++ b/ej2-javascript/code-snippet/treeview/how-to/multi-line-tree-cs1/js/index.html @@ -1,33 +1,50 @@ - - Essential JS 2 for TreeView - - - - - - - - - - - + + + + + Essential JS 2 for TreeView + + + + + + + + + + - -
          -
          -
          -
          +
          +
          +
          +
          + + + + - - - \ No newline at end of file + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/multi-line-tree-cs1/ts/index.html b/ej2-javascript/code-snippet/treeview/how-to/multi-line-tree-cs1/ts/index.html index 781875e69..923e9fae4 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/multi-line-tree-cs1/ts/index.html +++ b/ej2-javascript/code-snippet/treeview/how-to/multi-line-tree-cs1/ts/index.html @@ -9,7 +9,7 @@ - + @@ -22,6 +22,22 @@
          + - + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/remove-parent-checkbox-cs1/index.css b/ej2-javascript/code-snippet/treeview/how-to/remove-parent-checkbox-cs1/index.css index a0b2b7b66..26aa2012a 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/remove-parent-checkbox-cs1/index.css +++ b/ej2-javascript/code-snippet/treeview/how-to/remove-parent-checkbox-cs1/index.css @@ -1,5 +1,5 @@ #container { - visibility: hidden; + visibility: hidden; } #loader { @@ -7,23 +7,8 @@ height: 40px; width: 30%; position: absolute; - font-family: 'Helvetica Neue','calibiri'; + font-family: 'Helvetica Neue', 'calibiri'; font-size: 14px; top: 45%; left: 45%; -} - -#treeparent { - display: block; - max-width: 350px; - max-height: 350px; - margin: auto; - overflow: auto; - border: 1px solid #dddddd; - border-radius: 3px; -} - -.custom .e-list-item.e-level-1 .e-text-content.e-icon-wrapper - .e-checkbox-wrapper { - display: none - } +} \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/remove-parent-checkbox-cs1/index.js b/ej2-javascript/code-snippet/treeview/how-to/remove-parent-checkbox-cs1/index.js index e7b2c82d9..210051e4c 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/remove-parent-checkbox-cs1/index.js +++ b/ej2-javascript/code-snippet/treeview/how-to/remove-parent-checkbox-cs1/index.js @@ -1,9 +1,9 @@ - /** - * Remove check box in parent nodes sample - */ +/** +* Remove check box in parent nodes sample +*/ -// Hierarchical data source for TreeView component - var countries = [ +// Hierarchical data source for TreeView control +var countries = [ { id: 1, name: 'India', hasChild: true, expanded: true }, { id: 2, pid: 1, name: 'Assam' }, { id: 3, pid: 1, name: 'Bihar' }, @@ -28,14 +28,12 @@ { id: 23, pid: 21, name: 'Shanghai' }, { id: 24, pid: 21, name: 'Beijing' }, { id: 25, pid: 21, name: 'Shantou' } - + ]; var tree1 = new ej.navigations.TreeView({ fields: { dataSource: countries, id: 'id', text: 'name', parentID: 'pid', hasChildren: 'hasChild' }, - showCheckBox: true, + showCheckBox: true, cssClass: 'custom' }); -tree1.appendTo('#tree'); - - +tree1.appendTo('#tree'); \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/remove-parent-checkbox-cs1/index.ts b/ej2-javascript/code-snippet/treeview/how-to/remove-parent-checkbox-cs1/index.ts index 5076d58e6..b5811a76e 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/remove-parent-checkbox-cs1/index.ts +++ b/ej2-javascript/code-snippet/treeview/how-to/remove-parent-checkbox-cs1/index.ts @@ -1,6 +1,3 @@ - - - import { enableRipple } from '@syncfusion/ej2-base'; import { TreeView } from '@syncfusion/ej2-navigations'; enableRipple(true); @@ -9,8 +6,8 @@ enableRipple(true); * Removing checkbox of parent nodes TreeView sample */ - // List data source for TreeView component - let countries: { [key: string]: Object }[] = [ +// List data source for TreeView control +let countries: { [key: string]: Object }[] = [ { id: 1, name: 'India', hasChild: true, expanded: true }, { id: 2, pid: 1, name: 'Assam' }, { id: 3, pid: 1, name: 'Bihar' }, @@ -39,10 +36,7 @@ enableRipple(true); let tree1: TreeView = new TreeView({ fields: { dataSource: countries, id: 'id', text: 'name', parentID: 'pid', hasChildren: 'hasChild' }, - showCheckBox: true, - cssClass: 'custom' + showCheckBox: true, + cssClass: 'custom' }); -tree1.appendTo('#tree'); - - - +tree1.appendTo('#tree'); \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/remove-parent-checkbox-cs1/js/index.html b/ej2-javascript/code-snippet/treeview/how-to/remove-parent-checkbox-cs1/js/index.html index bfa623378..7c339affd 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/remove-parent-checkbox-cs1/js/index.html +++ b/ej2-javascript/code-snippet/treeview/how-to/remove-parent-checkbox-cs1/js/index.html @@ -1,33 +1,48 @@ - - Essential JS 2 for TreeView - - - - - - - - - - - + + + + + Essential JS 2 for TreeView + + + + + + + + + - -
          -
          -
          -
          +
          +
          +
          +
          + + + + - - - \ No newline at end of file + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/remove-parent-checkbox-cs1/ts/index.html b/ej2-javascript/code-snippet/treeview/how-to/remove-parent-checkbox-cs1/ts/index.html index 87e732ec4..9f61f4e84 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/remove-parent-checkbox-cs1/ts/index.html +++ b/ej2-javascript/code-snippet/treeview/how-to/remove-parent-checkbox-cs1/ts/index.html @@ -9,7 +9,7 @@ - + @@ -22,6 +22,21 @@
          + - + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/restrict-drag-drop-cs1/index.css b/ej2-javascript/code-snippet/treeview/how-to/restrict-drag-drop-cs1/index.css index dba32821d..1195039c4 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/restrict-drag-drop-cs1/index.css +++ b/ej2-javascript/code-snippet/treeview/how-to/restrict-drag-drop-cs1/index.css @@ -7,18 +7,8 @@ height: 40px; width: 30%; position: absolute; - font-family: 'Helvetica Neue','calibiri'; + font-family: 'Helvetica Neue', 'calibiri'; font-size: 14px; top: 45%; left: 45%; -} - -#treeparent { - display: block; - max-width: 350px; - max-height: 350px; - margin: auto; - overflow: auto; - border: 1px solid #dddddd; - border-radius: 3px; -} +} \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/restrict-drag-drop-cs1/index.js b/ej2-javascript/code-snippet/treeview/how-to/restrict-drag-drop-cs1/index.js index e8b0597ec..e5ced1036 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/restrict-drag-drop-cs1/index.js +++ b/ej2-javascript/code-snippet/treeview/how-to/restrict-drag-drop-cs1/index.js @@ -1,75 +1,73 @@ ej.base.enableRipple(true); - // Hierarchical data source for TreeView component - var hierarchicalData = [ - { - nodeId: '01', nodeText: 'Music', icon: 'folder', - nodeChild: [ - { nodeId: '01-01', nodeText: 'Gouttes.mp3', icon: 'audio' } - ] - }, - { - nodeId: '02', nodeText: 'Videos', icon: 'folder', - nodeChild: [ - { nodeId: '02-01', nodeText: 'Naturals.mp4', icon: 'video' }, - { nodeId: '02-02', nodeText: 'Wild.mpeg', icon: 'video' }, - ] - }, - { - nodeId: '03', nodeText: 'Documents', icon: 'folder', - nodeChild: [ - { nodeId: '03-01', nodeText: 'Environment Pollution.docx', icon: 'docx' }, - { nodeId: '03-02', nodeText: 'Global Water, Sanitation, & Hygiene.docx', icon: 'docx' }, - { nodeId: '03-03', nodeText: 'Global Warming.ppt', icon: 'ppt' }, - { nodeId: '03-04', nodeText: 'Social Network.pdf', icon: 'pdf' }, - { nodeId: '03-05', nodeText: 'Youth Empowerment.pdf', icon: 'pdf' }, - ] - }, - { - nodeId: '04', nodeText: 'Pictures', icon: 'folder', expanded: true, - nodeChild: [ - { - nodeId: '04-01', nodeText: 'Camera Roll', icon: 'folder', expanded: true, - nodeChild: [ - { nodeId: '04-01-01', nodeText: 'WIN_20160726_094117.JPG', image: 'https://ej2.syncfusion.com/demos/src/treeview/images/employees/9.png' }, - { nodeId: '04-01-02', nodeText: 'WIN_20160726_094118.JPG', image: 'https://ej2.syncfusion.com/demos/src/treeview/images/employees/3.png' }, - ] - }, - { nodeId: '04-02', nodeText: 'Wind.jpg', icon: 'images' }, - { nodeId: '04-03', nodeText: 'Stone.jpg', icon: 'images' }, - ] - }, - { - nodeId: '05', nodeText: 'Downloads', icon: 'folder', - nodeChild: [ - { nodeId: '05-01', nodeText: 'UI-Guide.pdf', icon: 'pdf' }, - { nodeId: '05-02', nodeText: 'Tutorials.zip', icon: 'zip' }, - { nodeId: '05-03', nodeText: 'Game.exe', icon: 'exe' }, - { nodeId: '05-04', nodeText: 'TypeScript.7z', icon: 'zip' }, - ] - }, - ]; +// Hierarchical data source for TreeView control +var hierarchicalData = [ + { + nodeId: '01', nodeText: 'Music', icon: 'folder', + nodeChild: [ + { nodeId: '01-01', nodeText: 'Gouttes.mp3', icon: 'audio' } + ] + }, + { + nodeId: '02', nodeText: 'Videos', icon: 'folder', + nodeChild: [ + { nodeId: '02-01', nodeText: 'Naturals.mp4', icon: 'video' }, + { nodeId: '02-02', nodeText: 'Wild.mpeg', icon: 'video' }, + ] + }, + { + nodeId: '03', nodeText: 'Documents', icon: 'folder', + nodeChild: [ + { nodeId: '03-01', nodeText: 'Environment Pollution.docx', icon: 'docx' }, + { nodeId: '03-02', nodeText: 'Global Water, Sanitation, & Hygiene.docx', icon: 'docx' }, + { nodeId: '03-03', nodeText: 'Global Warming.ppt', icon: 'ppt' }, + { nodeId: '03-04', nodeText: 'Social Network.pdf', icon: 'pdf' }, + { nodeId: '03-05', nodeText: 'Youth Empowerment.pdf', icon: 'pdf' }, + ] + }, + { + nodeId: '04', nodeText: 'Pictures', icon: 'folder', expanded: true, + nodeChild: [ + { + nodeId: '04-01', nodeText: 'Camera Roll', icon: 'folder', expanded: true, + nodeChild: [ + { nodeId: '04-01-01', nodeText: 'WIN_20160726_094117.JPG', image: 'https://ej2.syncfusion.com/demos/src/treeview/images/employees/9.png' }, + { nodeId: '04-01-02', nodeText: 'WIN_20160726_094118.JPG', image: 'https://ej2.syncfusion.com/demos/src/treeview/images/employees/3.png' }, + ] + }, + { nodeId: '04-02', nodeText: 'Wind.jpg', icon: 'images' }, + { nodeId: '04-03', nodeText: 'Stone.jpg', icon: 'images' }, + ] + }, + { + nodeId: '05', nodeText: 'Downloads', icon: 'folder', + nodeChild: [ + { nodeId: '05-01', nodeText: 'UI-Guide.pdf', icon: 'pdf' }, + { nodeId: '05-02', nodeText: 'Tutorials.zip', icon: 'zip' }, + { nodeId: '05-03', nodeText: 'Game.exe', icon: 'exe' }, + { nodeId: '05-04', nodeText: 'TypeScript.7z', icon: 'zip' }, + ] + }, +]; - // Render the TreeView with image icons - var treeObj = new ej.navigations.TreeView({ - fields: { dataSource: hierarchicalData, id: 'nodeId', text: 'nodeText', child: 'nodeChild', iconCss: 'icon', imageUrl: 'image' }, - sortOrder: 'Ascending', - allowDragAndDrop: true, - nodeDragStop: dragStop, - nodeDragging: nodeDrag - }); - treeObj.appendTo('#tree'); +// Render the TreeView with image icons +var treeObj = new ej.navigations.TreeView({ + fields: { dataSource: hierarchicalData, id: 'nodeId', text: 'nodeText', child: 'nodeChild', iconCss: 'icon', imageUrl: 'image' }, + sortOrder: 'Ascending', + allowDragAndDrop: true, + nodeDragStop: dragStop, + nodeDragging: nodeDrag +}); +treeObj.appendTo('#tree'); function nodeDrag(args) { - if (args.droppedNode != null && args.droppedNode.getElementsByClassName('folder') && args.droppedNode.getElementsByClassName('folder').length === 0) { - args.dropIndicator = 'e-no-drop'; + if (args.droppedNode != null && args.droppedNode.getElementsByClassName('folder') && args.droppedNode.getElementsByClassName('folder').length === 0) { + args.dropIndicator = 'e-no-drop'; } } function dragStop(args) { - if (args.droppedNode != null && args.droppedNode.getElementsByClassName('folder') && args.droppedNode.getElementsByClassName('folder').length === 0) { - args.cancel = true; - } -} - - + if (args.droppedNode != null && args.droppedNode.getElementsByClassName('folder') && args.droppedNode.getElementsByClassName('folder').length === 0) { + args.cancel = true; + } +} \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/restrict-drag-drop-cs1/index.ts b/ej2-javascript/code-snippet/treeview/how-to/restrict-drag-drop-cs1/index.ts index e4bd60497..d6b1cbc25 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/restrict-drag-drop-cs1/index.ts +++ b/ej2-javascript/code-snippet/treeview/how-to/restrict-drag-drop-cs1/index.ts @@ -1,72 +1,69 @@ - - - import { enableRipple } from '@syncfusion/ej2-base'; -import { TreeView } from '@syncfusion/ej2-navigations'; +import { TreeView, DragAndDropEventArgs } from '@syncfusion/ej2-navigations'; enableRipple(true); - // Hierarchical data source for TreeView component - let hierarchicalData: { [key: string]: Object }[] = [ - { - nodeId: '01', nodeText: 'Music', icon: 'folder', - nodeChild: [ - { nodeId: '01-01', nodeText: 'Gouttes.mp3', icon: 'audio' } - ] - }, - { - nodeId: '02', nodeText: 'Videos', icon: 'folder', - nodeChild: [ - { nodeId: '02-01', nodeText: 'Naturals.mp4', icon: 'video' }, - { nodeId: '02-02', nodeText: 'Wild.mpeg', icon: 'video' }, - ] - }, - { - nodeId: '03', nodeText: 'Documents', icon: 'folder', - nodeChild: [ - { nodeId: '03-01', nodeText: 'Environment Pollution.docx', icon: 'docx' }, - { nodeId: '03-02', nodeText: 'Global Water, Sanitation, & Hygiene.docx', icon: 'docx' }, - { nodeId: '03-03', nodeText: 'Global Warming.ppt', icon: 'ppt' }, - { nodeId: '03-04', nodeText: 'Social Network.pdf', icon: 'pdf' }, - { nodeId: '03-05', nodeText: 'Youth Empowerment.pdf', icon: 'pdf' }, - ] - }, - { - nodeId: '04', nodeText: 'Pictures', icon: 'folder', expanded: true, - nodeChild: [ - { - nodeId: '04-01', nodeText: 'Camera Roll', icon: 'folder', expanded: true, - nodeChild: [ - { nodeId: '04-01-01', nodeText: 'WIN_20160726_094117.JPG', image: 'https://ej2.syncfusion.com/demos/src/treeview/images/employees/9.png' }, - { nodeId: '04-01-02', nodeText: 'WIN_20160726_094118.JPG', image: 'https://ej2.syncfusion.com/demos/src/treeview/images/employees/3.png' }, - ] - }, - { nodeId: '04-02', nodeText: 'Wind.jpg', icon: 'images' }, - { nodeId: '04-03', nodeText: 'Stone.jpg', icon: 'images' }, - ] - }, - { - nodeId: '05', nodeText: 'Downloads', icon: 'folder', - nodeChild: [ - { nodeId: '05-01', nodeText: 'UI-Guide.pdf', icon: 'pdf' }, - { nodeId: '05-02', nodeText: 'Tutorials.zip', icon: 'zip' }, - { nodeId: '05-03', nodeText: 'Game.exe', icon: 'exe' }, - { nodeId: '05-04', nodeText: 'TypeScript.7z', icon: 'zip' }, - ] - }, - ]; +// Hierarchical data source for TreeView control +let hierarchicalData: { [key: string]: Object }[] = [ + { + nodeId: '01', nodeText: 'Music', icon: 'folder', + nodeChild: [ + { nodeId: '01-01', nodeText: 'Gouttes.mp3', icon: 'audio' } + ] + }, + { + nodeId: '02', nodeText: 'Videos', icon: 'folder', + nodeChild: [ + { nodeId: '02-01', nodeText: 'Naturals.mp4', icon: 'video' }, + { nodeId: '02-02', nodeText: 'Wild.mpeg', icon: 'video' }, + ] + }, + { + nodeId: '03', nodeText: 'Documents', icon: 'folder', + nodeChild: [ + { nodeId: '03-01', nodeText: 'Environment Pollution.docx', icon: 'docx' }, + { nodeId: '03-02', nodeText: 'Global Water, Sanitation, & Hygiene.docx', icon: 'docx' }, + { nodeId: '03-03', nodeText: 'Global Warming.ppt', icon: 'ppt' }, + { nodeId: '03-04', nodeText: 'Social Network.pdf', icon: 'pdf' }, + { nodeId: '03-05', nodeText: 'Youth Empowerment.pdf', icon: 'pdf' }, + ] + }, + { + nodeId: '04', nodeText: 'Pictures', icon: 'folder', expanded: true, + nodeChild: [ + { + nodeId: '04-01', nodeText: 'Camera Roll', icon: 'folder', expanded: true, + nodeChild: [ + { nodeId: '04-01-01', nodeText: 'WIN_20160726_094117.JPG', image: 'https://ej2.syncfusion.com/demos/src/treeview/images/employees/9.png' }, + { nodeId: '04-01-02', nodeText: 'WIN_20160726_094118.JPG', image: 'https://ej2.syncfusion.com/demos/src/treeview/images/employees/3.png' }, + ] + }, + { nodeId: '04-02', nodeText: 'Wind.jpg', icon: 'images' }, + { nodeId: '04-03', nodeText: 'Stone.jpg', icon: 'images' }, + ] + }, + { + nodeId: '05', nodeText: 'Downloads', icon: 'folder', + nodeChild: [ + { nodeId: '05-01', nodeText: 'UI-Guide.pdf', icon: 'pdf' }, + { nodeId: '05-02', nodeText: 'Tutorials.zip', icon: 'zip' }, + { nodeId: '05-03', nodeText: 'Game.exe', icon: 'exe' }, + { nodeId: '05-04', nodeText: 'TypeScript.7z', icon: 'zip' }, + ] + }, +]; - // Render the TreeView with image icons - let treeObj: TreeView = new TreeView({ - fields: { dataSource: hierarchicalData, id: 'nodeId', text: 'nodeText', child: 'nodeChild', iconCss: 'icon', imageUrl: 'image' }, - sortOrder: 'Ascending', - allowDragAndDrop: true, - nodeDragStop: dragStop, - nodeDragging: nodeDrag - }); - treeObj.appendTo('#tree'); +// Render the TreeView with image icons +let treeObj: TreeView = new TreeView({ + fields: { dataSource: hierarchicalData, id: 'nodeId', text: 'nodeText', child: 'nodeChild', iconCss: 'icon', imageUrl: 'image' }, + sortOrder: 'Ascending', + allowDragAndDrop: true, + nodeDragStop: dragStop, + nodeDragging: nodeDrag +}); +treeObj.appendTo('#tree'); function nodeDrag(args: DragAndDropEventArgs): void { - if (args.droppedNode != null && args.droppedNode.getElementsByClassName('folder') && args.droppedNode.getElementsByClassName('folder').length === 0) { + if (args.droppedNode != null && args.droppedNode.getElementsByClassName('folder') && args.droppedNode.getElementsByClassName('folder').length === 0) { args.dropIndicator = 'e-no-drop'; } } @@ -75,7 +72,4 @@ function dragStop(args: DragAndDropEventArgs): void { if (args.droppedNode != null && args.droppedNode.getElementsByClassName('folder') && args.droppedNode.getElementsByClassName('folder').length === 0) { args.cancel = true; } -} - - - +} \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/restrict-drag-drop-cs1/js/index.html b/ej2-javascript/code-snippet/treeview/how-to/restrict-drag-drop-cs1/js/index.html index e95660075..f253bf26c 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/restrict-drag-drop-cs1/js/index.html +++ b/ej2-javascript/code-snippet/treeview/how-to/restrict-drag-drop-cs1/js/index.html @@ -1,8 +1,6 @@ - - - - + + Essential JS 2 for TreeView @@ -11,18 +9,26 @@ - - - + + - - +
          - - - - - \ No newline at end of file + + + + + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/restrict-drag-drop-cs1/ts/index.html b/ej2-javascript/code-snippet/treeview/how-to/restrict-drag-drop-cs1/ts/index.html index dcf9eb8ac..9e3fea24c 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/restrict-drag-drop-cs1/ts/index.html +++ b/ej2-javascript/code-snippet/treeview/how-to/restrict-drag-drop-cs1/ts/index.html @@ -22,6 +22,16 @@
          diff --git a/ej2-javascript/code-snippet/treeview/how-to/select-one-child-cs1/index.css b/ej2-javascript/code-snippet/treeview/how-to/select-one-child-cs1/index.css index 756014e9c..26aa2012a 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/select-one-child-cs1/index.css +++ b/ej2-javascript/code-snippet/treeview/how-to/select-one-child-cs1/index.css @@ -1,5 +1,5 @@ #container { - visibility: hidden; + visibility: hidden; } #loader { @@ -7,18 +7,8 @@ height: 40px; width: 30%; position: absolute; - font-family: 'Helvetica Neue','calibiri'; + font-family: 'Helvetica Neue', 'calibiri'; font-size: 14px; top: 45%; left: 45%; -} - -#treeparent { - display: block; - max-width: 350px; - max-height: 350px; - margin: auto; - overflow: auto; - border: 1px solid #dddddd; - border-radius: 3px; -} +} \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/select-one-child-cs1/index.js b/ej2-javascript/code-snippet/treeview/how-to/select-one-child-cs1/index.js index 79e0408d5..92d6cf86e 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/select-one-child-cs1/index.js +++ b/ej2-javascript/code-snippet/treeview/how-to/select-one-child-cs1/index.js @@ -1,66 +1,64 @@ - /** - * Single child selection - */ +/** +* Single child selection +*/ -// Hierarchical data source for TreeView component - var localData = [ - { id: 1, name: 'Parent 1', hasChild: true, expanded: true }, - { id: 2, pid: 1, name: 'Child 1' }, - { id: 3, pid: 1, name: 'Child 2' }, - { id: 4, pid: 1, name: 'Child 3' }, - { id: 7, name: 'Parent 2', hasChild: true, expanded: true }, - { id: 8, pid: 7, name: 'Child 1' }, - { id: 9, pid: 7, name: 'Child 2' }, - { id: 10, pid: 7, name: 'Child 3' }, +// Hierarchical data source for TreeView control +var localData = [ + { id: 1, name: 'Parent 1', hasChild: true, expanded: true }, + { id: 2, pid: 1, name: 'Child 1' }, + { id: 3, pid: 1, name: 'Child 2' }, + { id: 4, pid: 1, name: 'Child 3' }, + { id: 7, name: 'Parent 2', hasChild: true, expanded: true }, + { id: 8, pid: 7, name: 'Child 1' }, + { id: 9, pid: 7, name: 'Child 2' }, + { id: 10, pid: 7, name: 'Child 3' }, ]; var tree1 = new ej.navigations.TreeView({ - fields: { dataSource: localData, id: 'id', text: 'name', parentID: 'pid', hasChildren: 'hasChild' }, - loadOnDemand: false, - allowMultiSelection: true, - nodeSelecting: onNodeSelecting + fields: { dataSource: localData, id: 'id', text: 'name', parentID: 'pid', hasChildren: 'hasChild' }, + loadOnDemand: false, + allowMultiSelection: true, + nodeSelecting: onNodeSelecting }); tree1.appendTo('#tree'); var parent, child; -var count= false; +var count = false; var childCount = false; - function onNodeSelecting(args) { - var id = args.nodeData.parentID; - if (!count) { - parent = id; - count = true; - } - if (!childCount){ - child = args.nodeData.id; - childCount = true - } - if (id != null && id === parent) { - var element = tree1.element.querySelector('[data-uid="' + id + '"]'); - var liElements= element.querySelectorAll('ul li'); - for (var i = 0; i < liElements.length; i++) { - var nodeData = tree1.getNode(liElements[i]); - if (nodeData.selected && args.action === "select" && child !== args.nodeData.id) { - args.cancel = true; - } - // For unselect the selectedNodes - else if (args.action === "un-select" && child === args.nodeData.id) { - childCount = false; - child = null; - parent = null; - count = false; - } +function onNodeSelecting(args) { + var id = args.nodeData.parentID; + if (!count) { + parent = id; + count = true; + } + if (!childCount) { + child = args.nodeData.id; + childCount = true + } + if (id != null && id === parent) { + var element = tree1.element.querySelector('[data-uid="' + id + '"]'); + var liElements = element.querySelectorAll('ul li'); + for (var i = 0; i < liElements.length; i++) { + var nodeData = tree1.getNode(liElements[i]); + if (nodeData.selected && args.action === "select" && child !== args.nodeData.id) { + args.cancel = true; } - } else if (id !== parent && id !== null) { - if(args.action == "select"){ - args.cancel = true - } - } else if (id === null){ + // For unselect the selectedNodes + else if (args.action === "un-select" && child === args.nodeData.id) { childCount = false; child = null; parent = null; - count = false + count = false; + } } -} - - + } else if (id !== parent && id !== null) { + if (args.action == "select") { + args.cancel = true + } + } else if (id === null) { + childCount = false; + child = null; + parent = null; + count = false + } +} \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/select-one-child-cs1/index.ts b/ej2-javascript/code-snippet/treeview/how-to/select-one-child-cs1/index.ts index c8025150c..a30a6a7d9 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/select-one-child-cs1/index.ts +++ b/ej2-javascript/code-snippet/treeview/how-to/select-one-child-cs1/index.ts @@ -1,73 +1,67 @@ - - - -import { TreeView } from '@syncfusion/ej2-navigations'; +import { TreeView, NodeSelectEventArgs } from '@syncfusion/ej2-navigations'; /** * Single child selection at a time */ - // List data source for TreeView component - let localData: { [key: string]: Object }[] = [ - { id: 1, name: 'Parent 1', hasChild: true, expanded: true }, - { id: 2, pid: 1, name: 'Child 1' }, - { id: 3, pid: 1, name: 'Child 2' }, - { id: 4, pid: 1, name: 'Child 3' }, - { id: 7, name: 'Parent 2', hasChild: true, expanded: true }, - { id: 8, pid: 7, name: 'Child 1' }, - { id: 9, pid: 7, name: 'Child 2' }, - { id: 10, pid: 7, name: 'Child 3' }, +// List data source for TreeView control +let localData: { [key: string]: Object }[] = [ + { id: 1, name: 'Parent 1', hasChild: true, expanded: true }, + { id: 2, pid: 1, name: 'Child 1' }, + { id: 3, pid: 1, name: 'Child 2' }, + { id: 4, pid: 1, name: 'Child 3' }, + { id: 7, name: 'Parent 2', hasChild: true, expanded: true }, + { id: 8, pid: 7, name: 'Child 1' }, + { id: 9, pid: 7, name: 'Child 2' }, + { id: 10, pid: 7, name: 'Child 3' }, ]; let tree1: TreeView = new TreeView({ - fields: { dataSource: localData, id: 'id', text: 'name', parentID: 'pid', hasChildren: 'hasChild' }, - loadOnDemand: false, - allowMultiSelection: true, - nodeSelecting: onNodeSelecting + fields: { dataSource: localData, id: 'id', text: 'name', parentID: 'pid', hasChildren: 'hasChild' }, + loadOnDemand: false, + allowMultiSelection: true, + nodeSelecting: onNodeSelecting }); tree1.appendTo('#tree'); - let parent,child; - let count: boolean = false; - let childCount: boolean = false; +let parent, child; +let count: boolean = false; +let childCount: boolean = false; - function onNodeSelecting(args: NodeSelectEventArgs) { - let id = args.nodeData.parentID; - if (!count) { - parent = id; - count = true; - } - if (!childCount){ - child = args.nodeData.id; - childCount = true - } - if (id != null && id === parent) { - let element: HTMLElement = tree1.element.querySelector('[data-uid="' + id + '"]'); - let liElements = element.querySelectorAll('ul li'); - for (let i: number = 0; i < liElements.length; i++) { - let nodeData = tree1.getNode(liElements[i]); - if (nodeData.selected && args.action === "select" && child !== args.nodeData.id) { - args.cancel = true; - } - // For unselect the selectedNodes - else if (args.action === "un-select" && child === args.nodeData.id) { - childCount = false; - child = null; - parent = null; - count = false; - } +function onNodeSelecting(args: NodeSelectEventArgs) { + let id = args.nodeData.parentID; + if (!count) { + parent = id; + count = true; + } + if (!childCount) { + child = args.nodeData.id; + childCount = true + } + if (id != null && id === parent) { + let element: HTMLElement = tree1.element.querySelector('[data-uid="' + id + '"]'); + let liElements = element.querySelectorAll('ul li'); + for (let i: number = 0; i < liElements.length; i++) { + let nodeData = tree1.getNode(liElements[i]); + if (nodeData.selected && args.action === "select" && child !== args.nodeData.id) { + args.cancel = true; + } + // For unselect the selectedNodes + else if (args.action === "un-select" && child === args.nodeData.id) { + childCount = false; + child = null; + parent = null; + count = false; } - } else if (id !== parent && id !== null) { - if(args.action == "select"){ - args.cancel = true - } - } else if (id === null){ - childCount = false; - child = null; - parent = null; - count = false } -} - - - + } else if (id !== parent && id !== null) { + if (args.action == "select") { + args.cancel = true + } + } else if (id === null) { + childCount = false; + child = null; + parent = null; + count = false + } +} \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/select-one-child-cs1/js/index.html b/ej2-javascript/code-snippet/treeview/how-to/select-one-child-cs1/js/index.html index a6b5b1275..ff1542795 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/select-one-child-cs1/js/index.html +++ b/ej2-javascript/code-snippet/treeview/how-to/select-one-child-cs1/js/index.html @@ -1,33 +1,44 @@ - - Essential JS 2 for TreeView - - - - - - - - - - - + + + + + Essential JS 2 for TreeView + + + + + + + + + - -
          -
          -
          -
          +
          +
          +
          +
          + + + + - - - - \ No newline at end of file + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/select-one-child-cs1/ts/index.html b/ej2-javascript/code-snippet/treeview/how-to/select-one-child-cs1/ts/index.html index 781875e69..c2ae85be4 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/select-one-child-cs1/ts/index.html +++ b/ej2-javascript/code-snippet/treeview/how-to/select-one-child-cs1/ts/index.html @@ -9,7 +9,7 @@ - + @@ -22,6 +22,17 @@
          + - + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/sort-tree-cs1/index.css b/ej2-javascript/code-snippet/treeview/how-to/sort-tree-cs1/index.css index 756014e9c..26aa2012a 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/sort-tree-cs1/index.css +++ b/ej2-javascript/code-snippet/treeview/how-to/sort-tree-cs1/index.css @@ -1,5 +1,5 @@ #container { - visibility: hidden; + visibility: hidden; } #loader { @@ -7,18 +7,8 @@ height: 40px; width: 30%; position: absolute; - font-family: 'Helvetica Neue','calibiri'; + font-family: 'Helvetica Neue', 'calibiri'; font-size: 14px; top: 45%; left: 45%; -} - -#treeparent { - display: block; - max-width: 350px; - max-height: 350px; - margin: auto; - overflow: auto; - border: 1px solid #dddddd; - border-radius: 3px; -} +} \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/sort-tree-cs1/index.js b/ej2-javascript/code-snippet/treeview/how-to/sort-tree-cs1/index.js index 9d5c2a97c..06a215f68 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/sort-tree-cs1/index.js +++ b/ej2-javascript/code-snippet/treeview/how-to/sort-tree-cs1/index.js @@ -1,9 +1,5 @@ - /** - * Accordion tree sample - */ - -// Hierarchical data source for TreeView component - var countries = [ +// Hierarchical data source for TreeView control +var countries = [ { id: 1, name: 'India', hasChild: true }, { id: 2, pid: 1, name: 'Assam' }, { id: 3, pid: 1, name: 'Bihar' }, @@ -28,7 +24,7 @@ { id: 23, pid: 21, name: 'Shanghai' }, { id: 24, pid: 21, name: 'Beijing' }, { id: 25, pid: 21, name: 'Shantou' } - + ]; var newData; @@ -40,35 +36,33 @@ var tree1 = new ej.navigations.TreeView({ tree1.appendTo('#tree'); function changeDataSource(data) { - tree1.fields = { + tree1.fields = { dataSource: data, id: 'id', text: 'name', parentID: 'pid', hasChildren: 'hasChild' } } -function onCreate(){ +function onCreate() { newData = this.fields.dataSource; - // Selects the first level nodes alone - var resultData= new ej.data.DataManager(this.getTreeData()).executeLocal(new ej.data.Query().where(this.fields.parentID, 'equal', null, false)); - var name= []; - for (var i = 0; i < resultData.length; i++){ + // Selects the first level nodes alone + var resultData = new ej.data.DataManager(this.getTreeData()).executeLocal(new ej.data.Query().where(this.fields.parentID, 'equal', null, false)); + var name = []; + for (var i = 0; i < resultData.length; i++) { name.push(resultData[i][this.fields.text]); } name.sort(); var arr = []; for (var j = 0; j < name.length; j++) { var sortedData = new ej.data.DataManager(this.getTreeData()).executeLocal(new ej.data.Query().where(this.fields.text, 'equal', name[j], false)); - var childData = new ej.data.DataManager(newData).executeLocal(new ej.data.Query().where(this.fields.parentID, 'equal', parseInt(sortedData[0][this.fields.id]), false)); + var childData = new ej.data.DataManager(newData).executeLocal(new ej.data.Query().where(this.fields.parentID, 'equal', parseInt(sortedData[0][this.fields.id]), false)); arr.push(sortedData[0]); } - // Renders treeview with sorted Nodes + // Renders TreeView with sorted Nodes changeDataSource(arr); tree1.dataBind(); } -function onNodeExpand(args){ - if (args.isInteracted && args.node.querySelector('li') === null){ - var childData = new ej.data.DataManager(newData).executeLocal(new ej.data.Query().where(this.fields.parentID, 'equal', parseInt(args.nodeData.id), false)); - tree1.addNodes(childData, args.node,null) +function onNodeExpand(args) { + if (args.isInteracted && args.node.querySelector('li') === null) { + var childData = new ej.data.DataManager(newData).executeLocal(new ej.data.Query().where(this.fields.parentID, 'equal', parseInt(args.nodeData.id), false)); + tree1.addNodes(childData, args.node, null) } -} - - +} \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/sort-tree-cs1/index.ts b/ej2-javascript/code-snippet/treeview/how-to/sort-tree-cs1/index.ts index 04ef43bb8..ed082d9a1 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/sort-tree-cs1/index.ts +++ b/ej2-javascript/code-snippet/treeview/how-to/sort-tree-cs1/index.ts @@ -1,17 +1,14 @@ - - - import { enableRipple } from '@syncfusion/ej2-base'; -import { TreeView } from '@syncfusion/ej2-navigations'; +import { TreeView, NodeExpandEventArgs } from '@syncfusion/ej2-navigations'; import { DataManager, Query } from '@syncfusion/ej2-data'; enableRipple(true); /** - * TreeView Sort treeview level wise + * TreeView Sort TreeView level wise */ - // List data source for TreeView component - let countries: { [key: string]: Object }[] = [ +// List data source for TreeView control +let countries: { [key: string]: Object }[] = [ { id: 1, name: 'India', hasChild: true }, { id: 2, pid: 1, name: 'Assam' }, { id: 3, pid: 1, name: 'Bihar' }, @@ -47,36 +44,33 @@ let tree1: TreeView = new TreeView({ tree1.appendTo('#tree'); function changeDataSource(data) { - tree1.fields = { + tree1.fields = { dataSource: data, id: 'id', text: 'name', parentID: 'pid', hasChildren: 'hasChild' } } -function onCreate(){ +function onCreate() { newData = this.fields.dataSource; // Selects the first level nodes alone let resultData = new DataManager(this.getTreeData()).executeLocal(new Query().where(this.fields.parentID, 'equal', null, false)); - let name = []; - for (let i = 0; i < resultData.length; i++){ + let name: any = []; + for (let i = 0; i < resultData.length; i++) { name.push(resultData[i][this.fields.text]); } name.sort(); - let arr = []; + let arr: any = []; for (let j = 0; j < name.length; j++) { let sortedData = new DataManager(this.getTreeData()).executeLocal(new Query().where(this.fields.text, 'equal', name[j], false)); - let childData = new DataManager(newData).executeLocal(new Query().where(this.fields.parentID, 'equal', parseInt(sortedData[0][this.fields.id]), false)); + let childData = new DataManager(newData).executeLocal(new Query().where(this.fields.parentID, 'equal', parseInt(sortedData[0][this.fields.id]), false)); arr.push(sortedData[0]); } // Renders treeview with sorted Nodes changeDataSource(arr); tree1.dataBind(); } -function onNodeExpand(args: NodeExpandEventArgs){ - if (args.isInteracted && args.node.querySelector('li') === null){ - let childData = new DataManager(newData).executeLocal(new Query().where(this.fields.parentID, 'equal', parseInt(args.nodeData.id), false)); - tree1.addNodes(childData, args.node,null) +function onNodeExpand(args: NodeExpandEventArgs) { + if (args.isInteracted && args.node.querySelector('li') === null) { + let childData = new DataManager(newData).executeLocal(new Query().where(this.fields.parentID, 'equal', parseInt(args.nodeData.id as string), false)); + tree1.addNodes((childData as { [key: string]: Object; }[]), args.node, null) } -} - - - +} \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/sort-tree-cs1/js/index.html b/ej2-javascript/code-snippet/treeview/how-to/sort-tree-cs1/js/index.html index a6b5b1275..ff1542795 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/sort-tree-cs1/js/index.html +++ b/ej2-javascript/code-snippet/treeview/how-to/sort-tree-cs1/js/index.html @@ -1,33 +1,44 @@ - - Essential JS 2 for TreeView - - - - - - - - - - - + + + + + Essential JS 2 for TreeView + + + + + + + + + - -
          -
          -
          -
          +
          +
          +
          +
          + + + + - - - - \ No newline at end of file + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/sort-tree-cs1/ts/index.html b/ej2-javascript/code-snippet/treeview/how-to/sort-tree-cs1/ts/index.html index 781875e69..c2ae85be4 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/sort-tree-cs1/ts/index.html +++ b/ej2-javascript/code-snippet/treeview/how-to/sort-tree-cs1/ts/index.html @@ -9,7 +9,7 @@ - + @@ -22,6 +22,17 @@
          + - + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/tooltip-cs1/index.css b/ej2-javascript/code-snippet/treeview/how-to/tooltip-cs1/index.css index 756014e9c..26aa2012a 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/tooltip-cs1/index.css +++ b/ej2-javascript/code-snippet/treeview/how-to/tooltip-cs1/index.css @@ -1,5 +1,5 @@ #container { - visibility: hidden; + visibility: hidden; } #loader { @@ -7,18 +7,8 @@ height: 40px; width: 30%; position: absolute; - font-family: 'Helvetica Neue','calibiri'; + font-family: 'Helvetica Neue', 'calibiri'; font-size: 14px; top: 45%; left: 45%; -} - -#treeparent { - display: block; - max-width: 350px; - max-height: 350px; - margin: auto; - overflow: auto; - border: 1px solid #dddddd; - border-radius: 3px; -} +} \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/tooltip-cs1/index.js b/ej2-javascript/code-snippet/treeview/how-to/tooltip-cs1/index.js index 312534d1c..a2c818588 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/tooltip-cs1/index.js +++ b/ej2-javascript/code-snippet/treeview/how-to/tooltip-cs1/index.js @@ -1,10 +1,11 @@ - /** - * TreeView tooltip sample - */ +/** +* TreeView tooltip sample +*/ -// Hierarchical data source for TreeView component - var hierarchicalData = [ - { id: '01', name: 'Local Disk (C:)', expanded: true, tooltip: 'This is parent directory', +// Hierarchical data source for TreeView control +var hierarchicalData = [ + { + id: '01', name: 'Local Disk (C:)', expanded: true, tooltip: 'This is parent directory', subChild: [ { id: '01-01', name: 'Program Files', tooltip: 'This is child directory', @@ -36,7 +37,7 @@ id: '02', name: 'Local Disk (D:)', tooltip: 'This is parent directory', subChild: [ { - id: '02-01', name: 'Personals',tooltip: 'This is child directory', + id: '02-01', name: 'Personals', tooltip: 'This is child directory', subChild: [ { id: '02-01-01', name: 'My photo.png' }, { id: '02-01-02', name: 'Rental document.docx' }, @@ -44,7 +45,7 @@ ] }, { - id: '02-02', name: 'Projects',tooltip: 'This is child directory', + id: '02-02', name: 'Projects', tooltip: 'This is child directory', subChild: [ { id: '02-02-01', name: 'ASP Application' }, { id: '02-02-02', name: 'TypeScript Application' }, @@ -62,7 +63,7 @@ ] }, { - id: '03', name: 'Local Disk (E:)', icon: 'folder',tooltip: 'This is parent directory', + id: '03', name: 'Local Disk (E:)', icon: 'folder', tooltip: 'This is parent directory', subChild: [ { id: '03-01', name: 'Pictures', tooltip: 'This is child directory', @@ -74,7 +75,7 @@ }, { id: '03-02', name: 'Documents', tooltip: 'This is child directory', - subChild: [ + subChild: [ { id: '03-02-01', name: 'Environment Pollution.docx' }, { id: '03-02-02', name: 'Global Warming.ppt' }, { id: '03-02-03', name: 'Social Network.pdf' }, @@ -95,5 +96,4 @@ var tree1 = new ej.navigations.TreeView({ fields: { dataSource: hierarchicalData, id: 'id', text: 'name', child: 'subChild' } }); -tree1.appendTo('#tree'); - +tree1.appendTo('#tree'); \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/tooltip-cs1/index.ts b/ej2-javascript/code-snippet/treeview/how-to/tooltip-cs1/index.ts index 2989cd3b3..fdba839eb 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/tooltip-cs1/index.ts +++ b/ej2-javascript/code-snippet/treeview/how-to/tooltip-cs1/index.ts @@ -1,6 +1,3 @@ - - - import { enableRipple } from '@syncfusion/ej2-base'; import { TreeView } from '@syncfusion/ej2-navigations'; enableRipple(true); @@ -9,9 +6,10 @@ enableRipple(true); * TreeView tooltip sample */ - // Hierarchical data source for TreeView component - let hierarchicalData: { [key: string]: Object }[] = [ - { id: '01', name: 'Local Disk (C:)', expanded: true, tooltip: 'This is parent directory', +// Hierarchical data source for TreeView control +let hierarchicalData: { [key: string]: Object }[] = [ + { + id: '01', name: 'Local Disk (C:)', expanded: true, tooltip: 'This is parent directory', subChild: [ { id: '01-01', name: 'Program Files', tooltip: 'This is child directory', @@ -43,7 +41,7 @@ enableRipple(true); id: '02', name: 'Local Disk (D:)', tooltip: 'This is parent directory', subChild: [ { - id: '02-01', name: 'Personals',tooltip: 'This is child directory', + id: '02-01', name: 'Personals', tooltip: 'This is child directory', subChild: [ { id: '02-01-01', name: 'My photo.png' }, { id: '02-01-02', name: 'Rental document.docx' }, @@ -51,7 +49,7 @@ enableRipple(true); ] }, { - id: '02-02', name: 'Projects',tooltip: 'This is child directory', + id: '02-02', name: 'Projects', tooltip: 'This is child directory', subChild: [ { id: '02-02-01', name: 'ASP Application' }, { id: '02-02-02', name: 'TypeScript Application' }, @@ -69,7 +67,7 @@ enableRipple(true); ] }, { - id: '03', name: 'Local Disk (E:)', icon: 'folder',tooltip: 'This is parent directory', + id: '03', name: 'Local Disk (E:)', icon: 'folder', tooltip: 'This is parent directory', subChild: [ { id: '03-01', name: 'Pictures', tooltip: 'This is child directory', @@ -81,7 +79,7 @@ enableRipple(true); }, { id: '03-02', name: 'Documents', tooltip: 'This is child directory', - subChild: [ + subChild: [ { id: '03-02-01', name: 'Environment Pollution.docx' }, { id: '03-02-02', name: 'Global Warming.ppt' }, { id: '03-02-03', name: 'Social Network.pdf' }, @@ -102,7 +100,4 @@ enableRipple(true); let tree1: TreeView = new TreeView({ fields: { dataSource: hierarchicalData, id: 'id', text: 'name', child: 'subChild' } }); -tree1.appendTo('#tree'); - - - +tree1.appendTo('#tree'); \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/tooltip-cs1/js/index.html b/ej2-javascript/code-snippet/treeview/how-to/tooltip-cs1/js/index.html index a6b5b1275..eecc5baf1 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/tooltip-cs1/js/index.html +++ b/ej2-javascript/code-snippet/treeview/how-to/tooltip-cs1/js/index.html @@ -1,33 +1,43 @@ - - Essential JS 2 for TreeView - - - - - - - - - - - + + + + Essential JS 2 for TreeView + + + + + + + + + - -
          -
          -
          -
          +
          +
          +
          +
          + + + + - - - - \ No newline at end of file + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/tooltip-cs1/ts/index.html b/ej2-javascript/code-snippet/treeview/how-to/tooltip-cs1/ts/index.html index 781875e69..c2ae85be4 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/tooltip-cs1/ts/index.html +++ b/ej2-javascript/code-snippet/treeview/how-to/tooltip-cs1/ts/index.html @@ -9,7 +9,7 @@ - + @@ -22,6 +22,17 @@
          + - + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/validation-cs1/index.css b/ej2-javascript/code-snippet/treeview/how-to/validation-cs1/index.css index 6f83de766..26aa2012a 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/validation-cs1/index.css +++ b/ej2-javascript/code-snippet/treeview/how-to/validation-cs1/index.css @@ -1,5 +1,5 @@ #container { - visibility: hidden; + visibility: hidden; } #loader { @@ -7,24 +7,8 @@ height: 40px; width: 30%; position: absolute; - font-family: 'Helvetica Neue','calibiri'; + font-family: 'Helvetica Neue', 'calibiri'; font-size: 14px; top: 45%; left: 45%; -} - -#treeparent { - display: block; - max-width: 350px; - max-height: 350px; - margin: auto; - overflow: auto; - border: 1px solid #dddddd; - border-radius: 3px; -} - -#display { - max-width: 500px; - margin: auto; - padding: 10px; } \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/validation-cs1/index.js b/ej2-javascript/code-snippet/treeview/how-to/validation-cs1/index.js index edfbfbaa0..6872b7a88 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/validation-cs1/index.js +++ b/ej2-javascript/code-snippet/treeview/how-to/validation-cs1/index.js @@ -4,8 +4,8 @@ ej.base.enableRipple(true); * TreeView node editing sample with validation */ - // Hierarchical data source for TreeView component - var treeData = [ +// Hierarchical data source for TreeView control +var treeData = [ { id: 1, name: 'Discover Music', expanded: true, child: [ @@ -50,8 +50,8 @@ ej.base.enableRipple(true); } ]; - // Render the TreeView with editing option - var treeObj = new ej.navigations.TreeView({ +// Render the TreeView with editing option +var treeObj = new ej.navigations.TreeView({ fields: { dataSource: treeData, id: 'id', text: 'name', child: 'child' }, allowEditing: true, nodeEdited: onNodeEdited @@ -61,7 +61,7 @@ treeObj.appendTo('#tree'); function onNodeEdited(args) { var displayContent = ""; if (args.newText.trim() == "") { - args.cancel=true; + args.cancel = true; displayContent = "TreeView item text should not be empty"; } else if (args.newText != args.oldText) { @@ -70,5 +70,4 @@ function onNodeEdited(args) { displayContent = ""; } document.getElementById("display").innerHTML = displayContent; -} - +} \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/validation-cs1/index.ts b/ej2-javascript/code-snippet/treeview/how-to/validation-cs1/index.ts index f279f844f..ea0af1a01 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/validation-cs1/index.ts +++ b/ej2-javascript/code-snippet/treeview/how-to/validation-cs1/index.ts @@ -1,16 +1,13 @@ - - - import { enableRipple } from '@syncfusion/ej2-base'; -import { TreeView } from '@syncfusion/ej2-navigations'; +import { TreeView, NodeEditEventArgs } from '@syncfusion/ej2-navigations'; enableRipple(true); /** * TreeView node editing sample with validation */ - // Hierarchical data source for TreeView component - let treeData: { [key: string]: Object } [] = [ +// Hierarchical data source for TreeView control +let treeData: { [key: string]: Object }[] = [ { id: 1, name: 'Discover Music', expanded: true, child: [ @@ -55,8 +52,8 @@ enableRipple(true); } ]; - // Render the TreeView with editing option - let treeObj: TreeView = new TreeView({ +// Render the TreeView with editing option +let treeObj: TreeView = new TreeView({ fields: { dataSource: treeData, id: 'id', text: 'name', child: 'child' }, allowEditing: true, nodeEdited: onNodeEdited @@ -64,9 +61,9 @@ enableRipple(true); treeObj.appendTo('#tree'); function onNodeEdited(args: NodeEditEventArgs): void { - let displayContent:string = ""; + let displayContent: string = ""; if (args.newText.trim() == "") { - args.cancel=true; + args.cancel = true; displayContent = "TreeView item text should not be empty"; } else if (args.newText != args.oldText) { @@ -74,9 +71,9 @@ function onNodeEdited(args: NodeEditEventArgs): void { } else { displayContent = ""; } - document.getElementById("display").innerHTML = displayContent; -} - - - + const displayElement = document.getElementById("display"); + if (displayElement) { + displayElement.innerHTML = displayContent; + } +} \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/validation-cs1/js/index.html b/ej2-javascript/code-snippet/treeview/how-to/validation-cs1/js/index.html index 0e2f48b2a..47b6d5fe1 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/validation-cs1/js/index.html +++ b/ej2-javascript/code-snippet/treeview/how-to/validation-cs1/js/index.html @@ -1,36 +1,50 @@ - - - - - - Essential JS 2 for TreeView - - - - - - - - - - - - - - -
          -
          -
          -
          -
          + + + + Essential JS 2 for TreeView + + + + + + + + + + + + +
          +
          +
          +
          - - - - - \ No newline at end of file +
          + + + + + + + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/how-to/validation-cs1/ts/index.html b/ej2-javascript/code-snippet/treeview/how-to/validation-cs1/ts/index.html index 6ceba7b09..d7d5f334c 100644 --- a/ej2-javascript/code-snippet/treeview/how-to/validation-cs1/ts/index.html +++ b/ej2-javascript/code-snippet/treeview/how-to/validation-cs1/ts/index.html @@ -9,7 +9,7 @@ - + @@ -19,10 +19,27 @@
          Loading....
          -
          -
          +
          +
          + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/multi-selection/selected-nodes-cs1/index.css b/ej2-javascript/code-snippet/treeview/multi-selection/selected-nodes-cs1/index.css index 756014e9c..26aa2012a 100644 --- a/ej2-javascript/code-snippet/treeview/multi-selection/selected-nodes-cs1/index.css +++ b/ej2-javascript/code-snippet/treeview/multi-selection/selected-nodes-cs1/index.css @@ -1,5 +1,5 @@ #container { - visibility: hidden; + visibility: hidden; } #loader { @@ -7,18 +7,8 @@ height: 40px; width: 30%; position: absolute; - font-family: 'Helvetica Neue','calibiri'; + font-family: 'Helvetica Neue', 'calibiri'; font-size: 14px; top: 45%; left: 45%; -} - -#treeparent { - display: block; - max-width: 350px; - max-height: 350px; - margin: auto; - overflow: auto; - border: 1px solid #dddddd; - border-radius: 3px; -} +} \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/multi-selection/selected-nodes-cs1/index.js b/ej2-javascript/code-snippet/treeview/multi-selection/selected-nodes-cs1/index.js index 5f845ce8f..a6f793ae8 100644 --- a/ej2-javascript/code-snippet/treeview/multi-selection/selected-nodes-cs1/index.js +++ b/ej2-javascript/code-snippet/treeview/multi-selection/selected-nodes-cs1/index.js @@ -30,13 +30,11 @@ var countries = [ var treeObj = new ej.navigations.TreeView({ fields: { dataSource: countries, id: 'id', parentID: 'pid', text: 'name', hasChildren: 'hasChild' }, allowMultiSelection: true, - selectedNodes: ['2','6'], + selectedNodes: ['2', '6'], nodeSelected: nodeSelected }); treeObj.appendTo('#tree'); function nodeSelected(args) { alert("The selected node's id: " + treeObj.selectedNodes); // To alert the selected node's id. -} - - +} \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/multi-selection/selected-nodes-cs1/index.ts b/ej2-javascript/code-snippet/treeview/multi-selection/selected-nodes-cs1/index.ts index ee9c42890..b83f04805 100644 --- a/ej2-javascript/code-snippet/treeview/multi-selection/selected-nodes-cs1/index.ts +++ b/ej2-javascript/code-snippet/treeview/multi-selection/selected-nodes-cs1/index.ts @@ -1,9 +1,6 @@ - - - import { enableRipple } from '@syncfusion/ej2-base'; -enableRipple(true); import { TreeView, NodeSelectEventArgs } from '@syncfusion/ej2-navigations'; +enableRipple(true); let countries: { [key: string]: Object }[] = [ { id: 1, name: 'Australia', hasChild: true, expanded: true }, @@ -35,14 +32,11 @@ let countries: { [key: string]: Object }[] = [ let treeObj: TreeView = new TreeView({ fields: { dataSource: countries, id: 'id', parentID: 'pid', text: 'name', hasChildren: 'hasChild' }, allowMultiSelection: true, - selectedNodes: ['2','6'], + selectedNodes: ['2', '6'], nodeSelected: nodeSelected }); treeObj.appendTo('#tree'); function nodeSelected(args: NodeSelectEventArgs) { alert("The selected node's id: " + treeObj.selectedNodes); // To alert the selected node's id. -} - - - +} \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/multi-selection/selected-nodes-cs1/js/index.html b/ej2-javascript/code-snippet/treeview/multi-selection/selected-nodes-cs1/js/index.html index 48bc10545..724ec194e 100644 --- a/ej2-javascript/code-snippet/treeview/multi-selection/selected-nodes-cs1/js/index.html +++ b/ej2-javascript/code-snippet/treeview/multi-selection/selected-nodes-cs1/js/index.html @@ -1,8 +1,6 @@ - - - - + + Essential JS 2 for TreeView @@ -11,24 +9,34 @@ - - - + + - - +
          - - - - \ No newline at end of file + + + + + + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/multi-selection/selected-nodes-cs1/systemjs.config.js b/ej2-javascript/code-snippet/treeview/multi-selection/selected-nodes-cs1/systemjs.config.js index 4c0c0a9fb..5cd6e038a 100644 --- a/ej2-javascript/code-snippet/treeview/multi-selection/selected-nodes-cs1/systemjs.config.js +++ b/ej2-javascript/code-snippet/treeview/multi-selection/selected-nodes-cs1/systemjs.config.js @@ -17,12 +17,6 @@ System.config({ typescript: "https://unpkg.com/typescript@2.2.2/lib/typescript.js", //Syncfusion packages mapping "@syncfusion/ej2-base": "syncfusion:ej2-base/dist/ej2-base.umd.min.js", - "@syncfusion/ej2-data": "syncfusion:ej2-data/dist/ej2-data.umd.min.js", - "@syncfusion/ej2-lists": "syncfusion:ej2-lists/dist/ej2-lists.umd.min.js", - "@syncfusion/ej2-inputs": "syncfusion:ej2-inputs/dist/ej2-inputs.umd.min.js", - "@syncfusion/ej2-buttons": "syncfusion:ej2-buttons/dist/ej2-buttons.umd.min.js", - "@syncfusion/ej2-splitbuttons": "syncfusion:ej2-splitbuttons/dist/ej2-splitbuttons.umd.min.js", - "@syncfusion/ej2-popups": "syncfusion:ej2-popups/dist/ej2-popups.umd.min.js", "@syncfusion/ej2-navigations": "syncfusion:ej2-navigations/dist/ej2-navigations.umd.min.js", } }); diff --git a/ej2-javascript/code-snippet/treeview/multi-selection/selected-nodes-cs1/ts/index.html b/ej2-javascript/code-snippet/treeview/multi-selection/selected-nodes-cs1/ts/index.html index 3d7049edb..1899a0176 100644 --- a/ej2-javascript/code-snippet/treeview/multi-selection/selected-nodes-cs1/ts/index.html +++ b/ej2-javascript/code-snippet/treeview/multi-selection/selected-nodes-cs1/ts/index.html @@ -21,6 +21,17 @@
          + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/multi-selection/selection-cs1/index.css b/ej2-javascript/code-snippet/treeview/multi-selection/selection-cs1/index.css index 756014e9c..26aa2012a 100644 --- a/ej2-javascript/code-snippet/treeview/multi-selection/selection-cs1/index.css +++ b/ej2-javascript/code-snippet/treeview/multi-selection/selection-cs1/index.css @@ -1,5 +1,5 @@ #container { - visibility: hidden; + visibility: hidden; } #loader { @@ -7,18 +7,8 @@ height: 40px; width: 30%; position: absolute; - font-family: 'Helvetica Neue','calibiri'; + font-family: 'Helvetica Neue', 'calibiri'; font-size: 14px; top: 45%; left: 45%; -} - -#treeparent { - display: block; - max-width: 350px; - max-height: 350px; - margin: auto; - overflow: auto; - border: 1px solid #dddddd; - border-radius: 3px; -} +} \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/multi-selection/selection-cs1/index.js b/ej2-javascript/code-snippet/treeview/multi-selection/selection-cs1/index.js index 104cef031..207931671 100644 --- a/ej2-javascript/code-snippet/treeview/multi-selection/selection-cs1/index.js +++ b/ej2-javascript/code-snippet/treeview/multi-selection/selection-cs1/index.js @@ -31,5 +31,4 @@ var treeObj = new ej.navigations.TreeView({ fields: { dataSource: countries, id: 'id', parentID: 'pid', text: 'name', hasChildren: 'hasChild', selected: 'isSelected' }, allowMultiSelection: true, }); -treeObj.appendTo('#tree'); - +treeObj.appendTo('#tree'); \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/multi-selection/selection-cs1/index.ts b/ej2-javascript/code-snippet/treeview/multi-selection/selection-cs1/index.ts index c20714402..86c5aaf0d 100644 --- a/ej2-javascript/code-snippet/treeview/multi-selection/selection-cs1/index.ts +++ b/ej2-javascript/code-snippet/treeview/multi-selection/selection-cs1/index.ts @@ -1,9 +1,6 @@ - - - import { enableRipple } from '@syncfusion/ej2-base'; -enableRipple(true); import { TreeView } from '@syncfusion/ej2-navigations'; +enableRipple(true); let countries: { [key: string]: Object }[] = [ { id: 1, name: 'Australia', hasChild: true, expanded: true }, @@ -36,8 +33,4 @@ let treeObj: TreeView = new TreeView({ fields: { dataSource: countries, id: 'id', parentID: 'pid', text: 'name', hasChildren: 'hasChild', selected: 'isSelected' }, allowMultiSelection: true, }); -treeObj.appendTo('#tree'); - - - - +treeObj.appendTo('#tree'); \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/multi-selection/selection-cs1/js/index.html b/ej2-javascript/code-snippet/treeview/multi-selection/selection-cs1/js/index.html index 48bc10545..724ec194e 100644 --- a/ej2-javascript/code-snippet/treeview/multi-selection/selection-cs1/js/index.html +++ b/ej2-javascript/code-snippet/treeview/multi-selection/selection-cs1/js/index.html @@ -1,8 +1,6 @@ - - - - + + Essential JS 2 for TreeView @@ -11,24 +9,34 @@ - - - + + - - +
          - - - - \ No newline at end of file + + + + + + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/multi-selection/selection-cs1/systemjs.config.js b/ej2-javascript/code-snippet/treeview/multi-selection/selection-cs1/systemjs.config.js index 4c0c0a9fb..5cd6e038a 100644 --- a/ej2-javascript/code-snippet/treeview/multi-selection/selection-cs1/systemjs.config.js +++ b/ej2-javascript/code-snippet/treeview/multi-selection/selection-cs1/systemjs.config.js @@ -17,12 +17,6 @@ System.config({ typescript: "https://unpkg.com/typescript@2.2.2/lib/typescript.js", //Syncfusion packages mapping "@syncfusion/ej2-base": "syncfusion:ej2-base/dist/ej2-base.umd.min.js", - "@syncfusion/ej2-data": "syncfusion:ej2-data/dist/ej2-data.umd.min.js", - "@syncfusion/ej2-lists": "syncfusion:ej2-lists/dist/ej2-lists.umd.min.js", - "@syncfusion/ej2-inputs": "syncfusion:ej2-inputs/dist/ej2-inputs.umd.min.js", - "@syncfusion/ej2-buttons": "syncfusion:ej2-buttons/dist/ej2-buttons.umd.min.js", - "@syncfusion/ej2-splitbuttons": "syncfusion:ej2-splitbuttons/dist/ej2-splitbuttons.umd.min.js", - "@syncfusion/ej2-popups": "syncfusion:ej2-popups/dist/ej2-popups.umd.min.js", "@syncfusion/ej2-navigations": "syncfusion:ej2-navigations/dist/ej2-navigations.umd.min.js", } }); diff --git a/ej2-javascript/code-snippet/treeview/multi-selection/selection-cs1/ts/index.html b/ej2-javascript/code-snippet/treeview/multi-selection/selection-cs1/ts/index.html index 3d7049edb..1899a0176 100644 --- a/ej2-javascript/code-snippet/treeview/multi-selection/selection-cs1/ts/index.html +++ b/ej2-javascript/code-snippet/treeview/multi-selection/selection-cs1/ts/index.html @@ -21,6 +21,17 @@
          + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/node-editing-cs1/index.css b/ej2-javascript/code-snippet/treeview/node-editing-cs1/index.css index 756014e9c..26aa2012a 100644 --- a/ej2-javascript/code-snippet/treeview/node-editing-cs1/index.css +++ b/ej2-javascript/code-snippet/treeview/node-editing-cs1/index.css @@ -1,5 +1,5 @@ #container { - visibility: hidden; + visibility: hidden; } #loader { @@ -7,18 +7,8 @@ height: 40px; width: 30%; position: absolute; - font-family: 'Helvetica Neue','calibiri'; + font-family: 'Helvetica Neue', 'calibiri'; font-size: 14px; top: 45%; left: 45%; -} - -#treeparent { - display: block; - max-width: 350px; - max-height: 350px; - margin: auto; - overflow: auto; - border: 1px solid #dddddd; - border-radius: 3px; -} +} \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/node-editing-cs1/index.js b/ej2-javascript/code-snippet/treeview/node-editing-cs1/index.js index 8065ff309..2d8d147f9 100644 --- a/ej2-javascript/code-snippet/treeview/node-editing-cs1/index.js +++ b/ej2-javascript/code-snippet/treeview/node-editing-cs1/index.js @@ -1,7 +1,8 @@ ej.base.enableRipple(true); var hierarchicalData = [ - { id: '01', name: 'Local Disk (C:)', expanded: true, + { + id: '01', name: 'Local Disk (C:)', expanded: true, subChild: [ { id: '01-01', name: 'Program Files', @@ -71,7 +72,7 @@ var hierarchicalData = [ }, { id: '03-02', name: 'Documents', - subChild: [ + subChild: [ { id: '03-02-01', name: 'Environment Pollution.docx' }, { id: '03-02-02', name: 'Global Warming.ppt' }, { id: '03-02-03', name: 'Social Network.pdf' }, @@ -101,6 +102,4 @@ function editing(args) { if (args.node.parentNode.parentNode.nodeName !== "LI") { args.cancel = true; } -} - - +} \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/node-editing-cs1/index.ts b/ej2-javascript/code-snippet/treeview/node-editing-cs1/index.ts index 7af3f52ee..6bf2d3992 100644 --- a/ej2-javascript/code-snippet/treeview/node-editing-cs1/index.ts +++ b/ej2-javascript/code-snippet/treeview/node-editing-cs1/index.ts @@ -1,12 +1,10 @@ - - - import { enableRipple } from '@syncfusion/ej2-base'; -enableRipple(true); import { TreeView, NodeEditEventArgs } from '@syncfusion/ej2-navigations'; +enableRipple(true); let hierarchicalData: { [key: string]: Object }[] = [ - { id: '01', name: 'Local Disk (C:)', expanded: true, + { + id: '01', name: 'Local Disk (C:)', expanded: true, subChild: [ { id: '01-01', name: 'Program Files', @@ -76,7 +74,7 @@ let hierarchicalData: { [key: string]: Object }[] = [ }, { id: '03-02', name: 'Documents', - subChild: [ + subChild: [ { id: '03-02-01', name: 'Environment Pollution.docx' }, { id: '03-02-02', name: 'Global Warming.ppt' }, { id: '03-02-03', name: 'Social Network.pdf' }, @@ -106,7 +104,4 @@ function editing(args: NodeEditEventArgs) { if (args.node.parentNode.parentNode.nodeName !== "LI") { args.cancel = true; } -} - - - +} \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/node-editing-cs1/js/index.html b/ej2-javascript/code-snippet/treeview/node-editing-cs1/js/index.html index 218026ca1..e26d1cb7e 100644 --- a/ej2-javascript/code-snippet/treeview/node-editing-cs1/js/index.html +++ b/ej2-javascript/code-snippet/treeview/node-editing-cs1/js/index.html @@ -1,8 +1,6 @@ - - - - + + Essential JS 2 for TreeView @@ -11,25 +9,35 @@ - - - - + + + - - +
          - - - - \ No newline at end of file + + + + + + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/node-editing-cs1/systemjs.config.js b/ej2-javascript/code-snippet/treeview/node-editing-cs1/systemjs.config.js index 4c0c0a9fb..5cd6e038a 100644 --- a/ej2-javascript/code-snippet/treeview/node-editing-cs1/systemjs.config.js +++ b/ej2-javascript/code-snippet/treeview/node-editing-cs1/systemjs.config.js @@ -17,12 +17,6 @@ System.config({ typescript: "https://unpkg.com/typescript@2.2.2/lib/typescript.js", //Syncfusion packages mapping "@syncfusion/ej2-base": "syncfusion:ej2-base/dist/ej2-base.umd.min.js", - "@syncfusion/ej2-data": "syncfusion:ej2-data/dist/ej2-data.umd.min.js", - "@syncfusion/ej2-lists": "syncfusion:ej2-lists/dist/ej2-lists.umd.min.js", - "@syncfusion/ej2-inputs": "syncfusion:ej2-inputs/dist/ej2-inputs.umd.min.js", - "@syncfusion/ej2-buttons": "syncfusion:ej2-buttons/dist/ej2-buttons.umd.min.js", - "@syncfusion/ej2-splitbuttons": "syncfusion:ej2-splitbuttons/dist/ej2-splitbuttons.umd.min.js", - "@syncfusion/ej2-popups": "syncfusion:ej2-popups/dist/ej2-popups.umd.min.js", "@syncfusion/ej2-navigations": "syncfusion:ej2-navigations/dist/ej2-navigations.umd.min.js", } }); diff --git a/ej2-javascript/code-snippet/treeview/node-editing-cs1/ts/index.html b/ej2-javascript/code-snippet/treeview/node-editing-cs1/ts/index.html index 1fee78d72..f89244ded 100644 --- a/ej2-javascript/code-snippet/treeview/node-editing-cs1/ts/index.html +++ b/ej2-javascript/code-snippet/treeview/node-editing-cs1/ts/index.html @@ -10,7 +10,7 @@ - + @@ -22,6 +22,17 @@
          + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/templates-cs1/index.css b/ej2-javascript/code-snippet/treeview/templates-cs1/index.css index 4e1d86610..26aa2012a 100644 --- a/ej2-javascript/code-snippet/treeview/templates-cs1/index.css +++ b/ej2-javascript/code-snippet/treeview/templates-cs1/index.css @@ -1,5 +1,5 @@ #container { - visibility: hidden; + visibility: hidden; } #loader { @@ -7,41 +7,8 @@ height: 40px; width: 30%; position: absolute; - font-family: 'Helvetica Neue','calibiri'; + font-family: 'Helvetica Neue', 'calibiri'; font-size: 14px; top: 45%; left: 45%; -} - -#treeparent { - display: block; - max-width: 450px; - max-height: 350px; - margin: auto; - overflow: auto; - border: 1px solid #dddddd; - border-radius: 3px; -} - -.custom .e-list-item .e-fullrow { - height: 72px; -} - -.custom .e-list-item .e-list-text { - line-height: normal; -} - -.eimage { - float: left; - padding: 11px 16px 11px 0; -} - -.ename { - font-size: 16px; - padding: 14px 0 0; -} - -.ejob { - font-size: 14px; - opacity: .87; -} +} \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/templates-cs1/index.js b/ej2-javascript/code-snippet/treeview/templates-cs1/index.js index ec2045d53..62e9bac8b 100644 --- a/ej2-javascript/code-snippet/treeview/templates-cs1/index.js +++ b/ej2-javascript/code-snippet/treeview/templates-cs1/index.js @@ -17,5 +17,4 @@ var treeObj = new ej.navigations.TreeView({ cssClass: 'custom', nodeTemplate: '#treeTemplate' }); -treeObj.appendTo('#tree'); - +treeObj.appendTo('#tree'); \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/templates-cs1/index.ts b/ej2-javascript/code-snippet/treeview/templates-cs1/index.ts index 77ae4d3a0..21939c1cd 100644 --- a/ej2-javascript/code-snippet/treeview/templates-cs1/index.ts +++ b/ej2-javascript/code-snippet/treeview/templates-cs1/index.ts @@ -1,9 +1,6 @@ - - - import { enableRipple } from '@syncfusion/ej2-base'; -enableRipple(true); import { TreeView } from '@syncfusion/ej2-navigations'; +enableRipple(true); let employees: { [key: string]: Object }[] = [ { id: 1, name: 'Steven Buchanan', eimg: '10', job: 'CEO', hasChild: true, expanded: true }, @@ -22,7 +19,4 @@ let treeObj: TreeView = new TreeView({ cssClass: 'custom', nodeTemplate: '#treeTemplate' }); -treeObj.appendTo('#tree'); - - - +treeObj.appendTo('#tree'); \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/templates-cs1/js/index.html b/ej2-javascript/code-snippet/treeview/templates-cs1/js/index.html index 340b34b54..246f5e4be 100644 --- a/ej2-javascript/code-snippet/treeview/templates-cs1/js/index.html +++ b/ej2-javascript/code-snippet/treeview/templates-cs1/js/index.html @@ -1,8 +1,6 @@ - - - - + + Essential JS 2 for TreeView @@ -11,12 +9,10 @@ - - - + + - - +
          @@ -30,12 +26,47 @@
          + + + + - - - \ No newline at end of file + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/treeview/templates-cs1/ts/index.html b/ej2-javascript/code-snippet/treeview/templates-cs1/ts/index.html index 48605f00a..dbf087407 100644 --- a/ej2-javascript/code-snippet/treeview/templates-cs1/ts/index.html +++ b/ej2-javascript/code-snippet/treeview/templates-cs1/ts/index.html @@ -28,6 +28,40 @@
          ${job}
          + \ No newline at end of file diff --git a/ej2-javascript/code-snippet/uploader/file-size-cs1/index.js b/ej2-javascript/code-snippet/uploader/file-size-cs1/index.js index e28181996..9ea554b02 100644 --- a/ej2-javascript/code-snippet/uploader/file-size-cs1/index.js +++ b/ej2-javascript/code-snippet/uploader/file-size-cs1/index.js @@ -1,14 +1,13 @@ // initialize Uploader component -var uploadObject = new ej.inputs.Uploader({ +var uploadObj = new ej.inputs.Uploader({ asyncSettings: { saveUrl: 'https://services.syncfusion.com/js/production/api/FileUploader/Save', removeUrl: 'https://services.syncfusion.com/js/production/api/FileUploader/Remove' }, selected: onSelect }); - // render initialized Uploader -uploadObject.appendTo('#fileupload'); +uploadObj.appendTo('#fileupload'); function onSelect(args) { var totalSize = 0; diff --git a/ej2-javascript/code-snippet/uploader/form-support-cs1/ts/index.html b/ej2-javascript/code-snippet/uploader/form-support-cs1/ts/index.html index 7c8ab26e9..e744c3bd0 100644 --- a/ej2-javascript/code-snippet/uploader/form-support-cs1/ts/index.html +++ b/ej2-javascript/code-snippet/uploader/form-support-cs1/ts/index.html @@ -5,7 +5,7 @@ Essential JS 2 UPloader - + diff --git a/ej2-javascript/combo-box/accessibility.md b/ej2-javascript/combo-box/accessibility.md index d269d8101..aa03f7c0b 100644 --- a/ej2-javascript/combo-box/accessibility.md +++ b/ej2-javascript/combo-box/accessibility.md @@ -13,35 +13,7 @@ domainurl: ##DomainURL## The ComboBox component has been designed, keeping in mind the `WAI-ARIA` specifications, and applies the WAI-ARIA roles, states, and properties along with `keyboard support`. This component is characterized by complete keyboard interaction support and ARIA accessibility support that makes it easy for people who use assistive technologies (AT) or those who completely rely on keyboard navigation. -The ComboBox component followed the accessibility guidelines and standards, including [ADA](https://www.ada.gov/), [Section 508](https://www.section508.gov/), [WCAG 2.2](https://www.w3.org/TR/WCAG22/) standards, and [WCAG roles](https://www.w3.org/TR/wai-aria/#roles) that are commonly used to evaluate accessibility. - -The accessibility compliance for the ComboBox component is outlined below. - -| Accessibility Criteria | Compatibility | -| -- | -- | -| [WCAG 2.2 Support](../common/accessibility#accessibility-standards) | Yes | -| [Section 508 Support](../common/accessibility#accessibility-standards) | Yes | -| [Screen Reader Support](../common/accessibility#screen-reader-support) | Yes | -| [Right-To-Left Support](../common/accessibility#right-to-left-support) | Yes | -| [Color Contrast](../common/accessibility#color-contrast) | Yes | -| [Mobile Device Support](../common/accessibility#mobile-device-support) | Yes | -| [Keyboard Navigation Support](../common/accessibility#keyboard-navigation-support) | Yes | -| [Accessibility Checker Validation](../common/accessibility#ensuring-accessibility) | Yes | -| [Axe-core Accessibility Validation](../common/accessibility#ensuring-accessibility) | Yes | - - -
          Yes - All features of the component meet the requirement.
          - -
          Intermediate - Some features of the component do not meet the requirement.
          - -
          No - The component does not meet the requirement.
          - -## WAI-ARIA attributes +## ARIA attributes The ComboBox component uses the `combobox` role, and each list item has an `option` role. The following `ARIA attributes` denote the ComboBox state. @@ -103,15 +75,3 @@ You can use the following key shortcuts to access the ComboBox without interrupt {% previewsample "page.domainurl/code-snippet/combobox/getting-started-cs1" %} {% endif %} - -## Ensuring accessibility - -The ComboBox component's accessibility levels are ensured through an [accessibility-checker](https://www.npmjs.com/package/accessibility-checker) and [axe-core](https://www.npmjs.com/package/axe-core) software tools during automated testing. - -The accessibility compliance of the ComboBox component is shown in the following sample. Open the [sample](https://ej2.syncfusion.com/accessibility/combo-box.html) in a new window to evaluate the accessibility of the ComboBox component with accessibility tools. - -{% previewsample "https://ej2.syncfusion.com/accessibility/combo-box.html" %} - -## See also - -* [Accessibility in Syncfusion components](../common/accessibility) \ No newline at end of file diff --git a/ej2-javascript/combo-box/data-binding.md b/ej2-javascript/combo-box/data-binding.md index 9145b658c..f6ea57e5d 100644 --- a/ej2-javascript/combo-box/data-binding.md +++ b/ej2-javascript/combo-box/data-binding.md @@ -160,7 +160,7 @@ In the following sample, displayed first 6 contacts from the `customer` table of ## See Also -* [How to acheive cascading](./how-to/cascading) -* [How to load data using template](./templates#item-template) +* [How to acheive cascading](./how-to/cascading/) +* [How to load data using template](./templates/#item-template) * [How to group the data using header](./grouping) * [How to filter the bound data](./filtering) \ No newline at end of file diff --git a/ej2-javascript/combo-box/disabled-items.md b/ej2-javascript/combo-box/disabled-items.md deleted file mode 100644 index 0141debb4..000000000 --- a/ej2-javascript/combo-box/disabled-items.md +++ /dev/null @@ -1,59 +0,0 @@ ---- -layout: post -title: Disabled Items in ##Platform_Name## ComboBox control | Syncfusion -description: Learn here all about Disabled Items in Syncfusion ##Platform_Name## ComboBox control of Syncfusion Essential JS 2 and more. -platform: ej2-javascript -control: Disabled Items -publishingplatform: ##Platform_Name## -documentation: ug -domainurl: ##DomainURL## ---- - -# Disabled Items in ##Platform_Name## ComboBox control - -The ComboBox provides options for individual items to be either in an enabled or disabled state for specific scenarios. The category of each list item can be mapped through the [disabled](../api/combo-box/#fields) field in the data table. Once an item is disabled, it cannot be selected as a value for the component. To configure the disabled item columns, use the `fields.disabled` property. - -In the following sample, State are grouped according on its category using `disabled` field. - -{% if page.publishingplatform == "typescript" %} - - {% tabs %} -{% highlight ts tabtitle="index.ts" %} -{% include code-snippet/combobox/basic-cs11/index.ts %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/combobox/basic-cs11/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/combobox/basic-cs11" %} - -{% elsif page.publishingplatform == "javascript" %} - -{% tabs %} -{% highlight js tabtitle="index.js" %} -{% include code-snippet/combobox/basic-cs11/index.js %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/combobox/basic-cs11/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/combobox/basic-cs11" %} -{% endif %} - -## Disable Item Method - -The [disableItem](../api/combo-box/#disableItem) method can be used to handle dynamic changing in disable state of a specific item. Only one item can be disabled in this method. To disable multiple items, this method can be iterated with the items list or array. The disabled field state will to be updated in the [dataSource](../api/combo-box/#datasource), when the item is disabled using this method. If the selected item is disabled dynamically, then the selection will be cleared. - -| Parameter | Type | Description | -|------|------|------| -| itemHTMLLIElement | HTMLLIElement | It accepts the HTML Li element of the item to be removed. | -| itemValue | string \| number \| boolean \| object | It accepts the string, number, boolean and object type value of the item to be removed. | -| itemIndex | number | It accepts the index of the item to be removed. | - -## Enabled - -If you want to disabled the overall component to set the [enabled](../api/combo-box/#enabled) property to false. - -![Disabled ComboBox Component](../images/combobox-disable.png) \ No newline at end of file diff --git a/ej2-javascript/combo-box/how-to/achieve-virtual-scrolling.md b/ej2-javascript/combo-box/how-to/achieve-virtual-scrolling.md new file mode 100644 index 000000000..ed6630e0a --- /dev/null +++ b/ej2-javascript/combo-box/how-to/achieve-virtual-scrolling.md @@ -0,0 +1,43 @@ +--- +layout: post +title: Achieve virtual scrolling in ##Platform_Name## Combo box control | Syncfusion +description: Learn here all about Achieve virtual scrolling in Syncfusion ##Platform_Name## Combo box control of Syncfusion Essential JS 2 and more. +platform: ej2-javascript +control: Achieve virtual scrolling +publishingplatform: ##Platform_Name## +documentation: ug +domainurl: ##DomainURL## +--- + +# Achieve virtual scrolling in ##Platform_Name## Combo box control + +The Virtual Scrolling is used to display a large amount of data without buffering the entire load of a huge database record in the ComboBox, that is, when scrolling, the request is sent and fetch some amount of data from the server dynamically. Using the `scroll` event, get the data and generate the list add to popup using the `addItem` method. + +Refer to the following code sample for virtual scrolling. + +{% if page.publishingplatform == "typescript" %} + + {% tabs %} +{% highlight ts tabtitle="index.ts" %} +{% include code-snippet/combobox/virtual-cs1/index.ts %} +{% endhighlight %} +{% highlight html tabtitle="index.html" %} +{% include code-snippet/combobox/virtual-cs1/index.html %} +{% endhighlight %} +{% endtabs %} + +{% previewsample "page.domainurl/code-snippet/combobox/virtual-cs1" %} + +{% elsif page.publishingplatform == "javascript" %} + +{% tabs %} +{% highlight js tabtitle="index.js" %} +{% include code-snippet/combobox/virtual-cs1/index.js %} +{% endhighlight %} +{% highlight html tabtitle="index.html" %} +{% include code-snippet/combobox/virtual-cs1/index.html %} +{% endhighlight %} +{% endtabs %} + +{% previewsample "page.domainurl/code-snippet/combobox/virtual-cs1" %} +{% endif %} diff --git a/ej2-javascript/combo-box/resize.md b/ej2-javascript/combo-box/resize.md new file mode 100644 index 000000000..88cc6ba96 --- /dev/null +++ b/ej2-javascript/combo-box/resize.md @@ -0,0 +1,42 @@ +--- + +layout: post +title: Resizing in ##Platform_Name## Combo box control | Syncfusion +description: Learn here all about Popup Resizing in Syncfusion ##Platform_Name## Combo box control of Syncfusion Essential JS 2 and more. +platform: ej2-javascript +control: Resizing +publishingplatform: ##Platform_Name## +documentation: ug +domainurl: ##DomainURL## +--- + +# Resizing ##Platform_Name## Combo box control + +You can dynamically adjust the size of the popup in the Autocomplete component by using the [AllowResize](https://ej2.syncfusion.com/javascript/documentation/api/combo-box/#allowresize) property. When enabled, users can resize the popup, improving visibility and control, with the resized dimensions being retained across sessions for a consistent user experience. + +{% if page.publishingplatform == "typescript" %} + + {% tabs %} +{% highlight ts tabtitle="index.ts" %} +{% include code-snippet/combobox/basic-cs12/index.ts %} +{% endhighlight %} +{% highlight html tabtitle="index.html" %} +{% include code-snippet/combobox/basic-cs12/index.html %} +{% endhighlight %} +{% endtabs %} + +{% elsif page.publishingplatform == "javascript" %} + +{% tabs %} +{% highlight js tabtitle="index.js" %} +{% include code-snippet/combobox/basic-cs12/index.js %} +{% endhighlight %} +{% highlight html tabtitle="index.html" %} +{% include code-snippet/combobox/basic-cs12/index.html %} +{% endhighlight %} +{% endtabs %} + + +{% endif %} + +![Resizing in Combo box Component](../images/combobox-resize.gif) \ No newline at end of file diff --git a/ej2-javascript/combo-box/ts/getting-started.md b/ej2-javascript/combo-box/ts/getting-started.md index 445f1c8a6..275458c66 100644 --- a/ej2-javascript/combo-box/ts/getting-started.md +++ b/ej2-javascript/combo-box/ts/getting-started.md @@ -11,9 +11,7 @@ domainurl: ##DomainURL## # Getting started in ##Platform_Name## Combo box control -This section explains how to create a simple **ComboBox** component and configure its available functionalities in TypeScript, using Essential JS 2 [quickstart](https://github.com/SyncfusionExamples/ej2-quickstart-webpack) seed repository. - -> This application is integrated with the `webpack.config.js` configuration and uses the latest version of the [webpack-cli](https://webpack.js.org/api/cli/#commands). It requires node `v14.15.0` or higher. For more information about webpack and its features, refer to the [webpack documentation](https://webpack.js.org/guides/getting-started/). +This section explains how to create a simple **ComboBox** component and configure its available functionalities in TypeScript, using Essential JS 2 [quickstart](https://github.com/syncfusion/ej2-quickstart.git) seed repository. ## Dependencies @@ -30,58 +28,17 @@ The following list of dependencies are required to use the `ComboBox` component |-- @syncfusion/ej2-buttons ``` -## Set up development environment - -Open the command prompt from the required directory, and run the following command to clone the Syncfusion JavaScript (Essential JS 2) quickstart project from [GitHub](https://github.com/SyncfusionExamples/ej2-quickstart-webpack). - -{% tabs %} -{% highlight bash tabtitle="CMD" %} - -git clone https://github.com/SyncfusionExamples/ej2-quickstart-webpack- ej2-quickstart - -{% endhighlight %} -{% endtabs %} - -After cloning the application in the `ej2-quickstart` folder, run the following command line to navigate to the `ej2-quickstart` folder. - -{% tabs %} -{% highlight bash tabtitle="CMD" %} - -cd ej2-quickstart - -{% endhighlight %} -{% endtabs %} +## Set up of the development environment -## Add Syncfusion JavaScript packages - -Syncfusion JavaScript (Essential JS 2) packages are available on the [npmjs.com](https://www.npmjs.com/~syncfusionorg) public registry. You can install all Syncfusion JavaScript (Essential JS 2) controls in a single [@syncfusion/ej2](https://www.npmjs.com/package/@syncfusion/ej2) package or individual packages for each control. - -The quickstart application is preconfigured with the dependent [@syncfusion/ej2](https://www.npmjs.com/package/@syncfusion/ej2) package in the `~/package.json` file. Use the following command to install the dependent npm packages from the command prompt. - -{% tabs %} -{% highlight bash tabtitle="NPM" %} +To get you started with ComboBox component, you need to clone the [`Essential JS 2 quickstart`](https://github.com/syncfusion/ej2-quickstart.git) project and install the packages by using the following commands. +``` +git clone https://github.com/syncfusion/ej2-quickstart.git quickstart +cd quickstart npm install +``` -{% endhighlight %} -{% endtabs %} - -## Import the Syncfusion CSS styles - -To render ComboBox component, need to import dropdowns and its dependent components styles as given below in the `~/src/styles/styles.css` file, as shown below: - -{% tabs %} -{% highlight css tabtitle="style.css" %} - -@import '../../node_modules/@syncfusion/ej2-base/styles/material.css'; -@import '../../node_modules/@syncfusion/ej2-buttons/styles/material.css'; -@import '../../node_modules/@syncfusion/ej2-inputs/styles/material.css'; -@import '../../node_modules/@syncfusion/ej2-popups/styles/material.css'; -@import '../../node_modules/@syncfusion/ej2-lists/styles/material.css'; -@import '../../node_modules/@syncfusion/ej2-dropdowns/styles/material.css'; - -{% endhighlight %} -{% endtabs %} +> The [project](https://github.com/syncfusion/ej2-quickstart.git) is preconfigured with common settings (`src/styles/styles.css`, `system.config.js` ) to start with all Essential JS 2 components. ## Initialize the ComboBox @@ -91,9 +48,7 @@ Add the HTML input element that needs to be initialized as ComboBox in `index.ht `[src/index.html]` -{% tabs %} -{% highlight html tabtitle="index.html" %} - +```html @@ -104,6 +59,13 @@ Add the HTML input element that needs to be initialized as ComboBox in `index.ht + + + + + + + @@ -115,16 +77,13 @@ Add the HTML input element that needs to be initialized as ComboBox in `index.ht - -{% endhighlight %} -{% endtabs %} +``` Now, import the ComboBox component to your `app.ts` and initialize it to the element `#comboelement` as shown below. `[src/app/app.ts]` -{% tabs %} -{% highlight ts tabtitle="app.ts" %} +```ts import { ComboBox } from '@syncfusion/ej2-dropdowns'; @@ -134,16 +93,13 @@ let comboBoxObject: ComboBox = new ComboBox(); // render initialized ComboBox comboBoxObject.appendTo('#comboelement'); -{% endhighlight %} -{% endtabs %} +``` ## Binding data source After initializing, populate the ComboBox with data using the [dataSource](https://ej2.syncfusion.com/documentation/api/combo-box/#datasource) property. Here, an array of string values is passed to the ComboBox component. -{% tabs %} -{% highlight ts tabtitle="app.ts" %} - +```ts import { ComboBox } from '@syncfusion/ej2-dropdowns'; // define the array of data @@ -157,21 +113,15 @@ let comboBoxObject: ComboBox = new ComboBox({ // render initialized ComboBox comboBoxObject.appendTo('#comboelement'); - -{% endhighlight %} -{% endtabs %} +``` ## Run the application After completing the configuration required to render a basic ComboBox, run the following command to display the output in your default browser. -{% tabs %} -{% highlight bash tabtitle="NPM" %} - +``` npm run start - -{% endhighlight %} -{% endtabs %} +``` The following example illustrates the output in your browser. diff --git a/ej2-javascript/combo-box/value-binding.md b/ej2-javascript/combo-box/value-binding.md deleted file mode 100644 index 3bcddbd8e..000000000 --- a/ej2-javascript/combo-box/value-binding.md +++ /dev/null @@ -1,89 +0,0 @@ ---- -layout: post -title: Value binding in ##Platform_Name## ComboBox control | Syncfusion -description: Learn here all about Value binding in Syncfusion ##Platform_Name## ComboBox control of Syncfusion Essential JS 2 and more. -platform: ej2-javascript -control: Value binding -publishingplatform: ##Platform_Name## -documentation: ug -domainurl: ##DomainURL## ---- - -# Value binding in ComboBox Component - -Value binding in the ComboBox control allows you to associate data values with each list item. This facilitates managing and retrieving selected values efficiently. The ComboBox component provides flexibility in binding both primitive data types and complex objects. - -## Primitive Data Types - -The ComboBox control provides flexible binding capabilities for primitive data types like strings and numbers. You can effortlessly bind local primitive data arrays, fetch and bind data from remote sources, and even custom data binding to suit specific requirements. Bind the value of primitive data to the [value](../api/combo-box/#value) property of the ComboBox. - -Primitive data types include: - -* String -* Number -* Boolean -* Null - -The following sample shows the example for preselect values for primitive data type - -{% if page.publishingplatform == "typescript" %} - - {% tabs %} -{% highlight ts tabtitle="index.ts" %} -{% include code-snippet/combobox/primitive/index.ts %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/combobox/primitive/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/combobox/primitive" %} - -{% elsif page.publishingplatform == "javascript" %} - -{% tabs %} -{% highlight js tabtitle="index.js" %} -{% include code-snippet/combobox/primitive/index.js %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/combobox/primitive/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/combobox/primitive" %} -{% endif %} - -## Object Data Types - -In the ComboBox control, object binding allows you to bind to a dataset of objects. When [`allowObjectBinding`](../api/combo-box/#allowobjectbinding) is enabled, the value of the control will be an object of the same type as the selected item in the [value](../api/combo-box/#value) property. This feature seamlessly binds arrays of objects, whether sourced locally, retrieved from remote endpoints, or customized to suit specific application needs. - -The following sample shows the example for preselect values for object data type - -{% if page.publishingplatform == "typescript" %} - - {% tabs %} -{% highlight ts tabtitle="index.ts" %} -{% include code-snippet/combobox/objectvalue/index.ts %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/combobox/objectvalue/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/combobox/objectvalue" %} - -{% elsif page.publishingplatform == "javascript" %} - -{% tabs %} -{% highlight js tabtitle="index.js" %} -{% include code-snippet/combobox/objectvalue/index.js %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/combobox/objectvalue/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/combobox/objectvalue" %} -{% endif %} - -> Since the `value` property supports object data types, it's necessary to provide the appropriate type wherever the `value` property is utilized. \ No newline at end of file diff --git a/ej2-javascript/combo-box/virtual-scroll.md b/ej2-javascript/combo-box/virtual-scroll.md index 41447db1c..44cf20e82 100644 --- a/ej2-javascript/combo-box/virtual-scroll.md +++ b/ej2-javascript/combo-box/virtual-scroll.md @@ -9,23 +9,9 @@ documentation: ug domainurl: ##DomainURL## --- -# Virtualization in ComboBox Component +# Virtualization in ComboBox Component -ComboBox virtualization is a technique used to efficiently render extensive lists of items while minimizing the impact on performance. This method is particularly advantageous when dealing with large datasets because it ensures that only a fixed number of DOM (Document Object Model) elements are created. When scrolling through the list, existing DOM elements are reused to display relevant data instead of generating new elements for each item. This recycling process is managed internally. - -During virtual scrolling, the data retrieved from the data source depends on the popup height and the calculation of the list item height. Enabling the [enableVirtualization](../api/combo-box/#enableVirtualization) option in a ComboBox activates this virtualization technique. - -When fetching data from the data source, the [actionBegin](../api/combo-box/#actionbegin) event is triggered before data retrieval begins. Then, the [actionComplete](../api/combo-box/#actioncomplete) event is triggered once the data is successfully fetched. - -Furthermore, Incremental Search is supported with virtualization in the Combobox component. When a key is typed, the focus is moved to the respective element in the open popup state. In the closed popup state, the popup opens, and focus is moved to the respective element in the popup list based on the typed key. The Incremental Search functionality is well-suited for scenarios involving remote data binding. - -When the enableVirtualization property is enabled, the `skip` and `take` properties provided by the user within the Query class at the initial state or during the `actionBegin` or `actionComplete` events will not be considered, since it is internally managed and calculated based on certain dimensions with respect to the popup height. - -## Binding local data - -The Combobox can generate its list items through an array of complex data. For this, the appropriate columns should be mapped to the [fields](../api/combo-box/#fields) property. When using virtual scrolling, the list updates based on the scroll offset value, triggering a request to fetch more data from the server. As the data is being fetched, the `actionBegin` event occurs before the data retrieval starts. Once the data retrieval is successful, the `actionComplete` event is triggered, indicating that the data fetch process is complete. - -In the following example, `id` column and `text` column from complex data have been mapped to the `value` field and `text` field, respectively. +ComboBox virtualization is a technique used to efficiently render long lists of items in a user interface while minimizing the impact on performance. It's particularly useful when dealing with large datasets, as it ensures that only a fixed number of DOM (Document Object Model) elements are created and displayed in the ComboBox Component. As the user scrolls through the list, the existing DOM elements are reused to display the relevant data, rather than creating new elements for each item. Enabling the [`enableVirtualization`](../api/combo-box/#enableVirtualization) option in a dropdown list activates this virtualization technique, significantly enhancing the list's performance and user experience, especially when handling large datasets. {% if page.publishingplatform == "typescript" %} @@ -54,132 +40,20 @@ In the following example, `id` column and `text` column from complex data have b {% previewsample "page.domainurl/code-snippet/combobox/virtual-scroll" %} {% endif %} +## Keyboard interaction -## Binding Remote data - -The Combobox supports the retrieval of data from remote data services with the help of the `DataManager` component, triggering the `actionBegin` and `actionComplete` events, and then updating the list data. During virtual scrolling, additional data is retrieved from the server, triggering the `actionBegin` and `actionComplete` events at that time as well. - -The following sample displays the OrderId from the `Orders` Data Service. - -{% if page.publishingplatform == "typescript" %} - - {% tabs %} -{% highlight ts tabtitle="index.ts" %} -{% include code-snippet/combobox/virtual-scroll-remote/index.ts %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/combobox/virtual-scroll-remote/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/combobox/virtual-scroll-remote" %} - -{% elsif page.publishingplatform == "javascript" %} - -{% tabs %} -{% highlight js tabtitle="index.js" %} -{% include code-snippet/combobox/virtual-scroll-remote/index.js %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/combobox/virtual-scroll-remote/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/combobox/virtual-scroll-remote" %} -{% endif %} - -## Customizing items count in virtualization - -When the `enableVirtualization` property is enabled, the `take` property provided by the user within the Query parameter at the initial state or during the `actionBegin` event will be considered. Internally, it calculates the items that fit onto the current page (i.e., probably twice the amount of the popup's height). If the user-provided take value is less than the minimum number of items that fit into the popup, the user-provided take value will not be considered. - -The following sample shows the example for Customizing items count in virtualization. - -{% if page.publishingplatform == "typescript" %} - - {% tabs %} -{% highlight ts tabtitle="index.ts" %} -{% include code-snippet/combobox/virtual-scroll-items/index.ts %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/combobox/virtual-scroll-items/index.html %} -{% endhighlight %} -{% endtabs %} - -{% elsif page.publishingplatform == "javascript" %} - -{% tabs %} -{% highlight js tabtitle="index.js" %} -{% include code-snippet/combobox/virtual-scroll-items/index.js %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/combobox/virtual-scroll-items/index.html %} -{% endhighlight %} -{% endtabs %} - -{% endif %} - -## Grouping with Virtualization - -The Combobox component supports grouping with Virtualization. It allows you to organize elements into groups based on different categories. Each item in the list can be classified using the [groupBy](../api/combo-box/#fields) field in the data table. After grouping, virtualization works similarly to local data binding, providing a seamless user experience. When the data source is bound to remote data, an initial request is made to retrieve all data for the purpose of grouping. Subsequently, the grouped data works in the same way as local data binding virtualization, enhancing performance and responsiveness. - -The following sample shows the example for Grouping with Virtualization. - -{% if page.publishingplatform == "typescript" %} - - {% tabs %} -{% highlight ts tabtitle="index.ts" %} -{% include code-snippet/combobox/virtual-scroll-group/index.ts %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/combobox/virtual-scroll-group/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/combobox/virtual-scroll-group" %} - -{% elsif page.publishingplatform == "javascript" %} - -{% tabs %} -{% highlight js tabtitle="index.js" %} -{% include code-snippet/combobox/virtual-scroll-group/index.js %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/combobox/virtual-scroll-group/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/combobox/virtual-scroll-group" %} -{% endif %} - -## Filtering with Virtualization - -The ComboBox component supports Filtering with Virtualization. The ComboBox includes a built-in feature that enables data filtering when the [`allowFiltering`](../api/combo-box/#allowfiltering) option is enabled. In the context of Virtual Scrolling, the filtering process operates in response to the typed characters. Specifically, the DropDownList sends a request to the server, utilizing the full data source, to achieve filtering. Before initiating the request, an action event is triggered. Upon successful retrieval of data from the server, an action complete event is triggered. The initial data is loaded when the popup is opened. Whether the filter list has a selection or not, the popup closes. - -The following sample shows the example for Filtering with Virtualization. - -{% if page.publishingplatform == "typescript" %} - - {% tabs %} -{% highlight ts tabtitle="index.ts" %} -{% include code-snippet/combobox/virtual-scroll-filter/index.ts %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/combobox/virtual-scroll-filter/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/combobox/virtual-scroll-filter" %} +Users can navigate through the scrollable content using keyboard actions. This feature loads the next or next set of items based on the key inputs in the popup. -{% elsif page.publishingplatform == "javascript" %} +| Key | Action | +|-----|-----| +| `ArrowDown` | Loads the next virtual list item if the selection is present in last item of the current page. Additionally, when holding the key, further virtual list items are loaded in the popup. | +| `ArrowUp` | Loads the previous virtual list item if the selection is present in first item of the current page. Additionally, when holding the key, further virtual list items are loaded in the popup. | +| `PageDown` | Loads the next page and selects the last item in it. Additionally, when holding the key, further virtual list items are loaded in the popup. | +| `PageUp` | Loads the previous page and selects the first item in it. Additionally, when holding the key, further virtual list items are loaded in the popup. | -{% tabs %} -{% highlight js tabtitle="index.js" %} -{% include code-snippet/combobox/virtual-scroll-filter/index.js %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/combobox/virtual-scroll-filter/index.html %} -{% endhighlight %} -{% endtabs %} +## Limitation of virtualization -{% previewsample "page.domainurl/code-snippet/combobox/virtual-scroll-filter" %} -{% endif %} +* Virtualization is not supported in the grouping feature. +* Selected Value may or may not be present in the current view port. +* Once filtered, close the popup. Then open the popup with the initially loaded items. +* Virtualization does not work when the popup is closed, and a keyboard action is performed. diff --git a/ej2-javascript/context-menu/how-to/scrollable-context-menu.md b/ej2-javascript/context-menu/how-to/scrollable-context-menu.md new file mode 100644 index 000000000..0b988fa0e --- /dev/null +++ b/ej2-javascript/context-menu/how-to/scrollable-context-menu.md @@ -0,0 +1,43 @@ +--- +layout: post +title: Render Scrollable Context Menu in ##Platform_Name## Context menu control | Syncfusion +description: Learn here all about Render Scrollable Context Menu in Syncfusion ##Platform_Name## Context menu control of Syncfusion Essential JS 2 and more. +platform: ej2-javascript +control: Render Scrollable Context Menu +publishingplatform: ##Platform_Name## +documentation: ug +domainurl: ##DomainURL## +--- + +# Render Scrollable Context Menu in ##Platform_Name## Context menu control + +To enable scrolling for the Context Menu, use the [enableScrolling](../../api/context-menu/#enablescrolling) property to manage the overflow behavior of menu items by enabling or disabling scroll functionality. This is especially useful when dealing with a large number of menu items that exceed the viewport height, ensuring the context menu remains accessible without affecting the page layout. + +To achieve this functionality, set the `enableScrolling` property to `true`. Additionally, use the [beforeOpen](../../api/context-menu/#beforeopen) event to adjust the height of the menu's parent element, ensuring the scrollable area is applied correctly. + +{% if page.publishingplatform == "typescript" %} + +{% tabs %} +{% highlight ts tabtitle="index.ts" %} +{% include code-snippet/context-menu/scroller-cs1/index.ts %} +{% endhighlight %} +{% highlight html tabtitle="index.html" %} +{% include code-snippet/context-menu/scroller-cs1/index.html %} +{% endhighlight %} +{% endtabs %} + +{% previewsample "page.domainurl/code-snippet/context-menu/scroller-cs1" %} + +{% elsif page.publishingplatform == "javascript" %} + +{% tabs %} +{% highlight js tabtitle="index.js" %} +{% include code-snippet/context-menu/scroller-cs1/index.js %} +{% endhighlight %} +{% highlight html tabtitle="index.html" %} +{% include code-snippet/context-menu/scroller-cs1/index.html %} +{% endhighlight %} +{% endtabs %} + +{% previewsample "page.domainurl/code-snippet/context-menu/scroller-cs1" %} +{% endif %} diff --git a/ej2-javascript/context-menu/template-and-multilevel-nesting.md b/ej2-javascript/context-menu/template-and-multilevel-nesting.md index bb7a70bea..2c064220c 100644 --- a/ej2-javascript/context-menu/template-and-multilevel-nesting.md +++ b/ej2-javascript/context-menu/template-and-multilevel-nesting.md @@ -11,7 +11,38 @@ domainurl: ##DomainURL## # Template and multilevel nesting in ##Platform_Name## Context menu control -## Template +## Item template + +The [itemTemplate](../api/context-menu/#itemtemplate) property in the ContextMenu component allows you to define custom templates for displaying menu items within the context menu. This feature is particularly useful when you want to customize the appearance or layout of the menu items beyond the default text-based list. + +{% if page.publishingplatform == "typescript" %} + +{% tabs %} +{% highlight ts tabtitle="index.ts" %} +{% include code-snippet/context-menu/template-cs2/index.ts %} +{% endhighlight %} +{% highlight html tabtitle="index.html" %} +{% include code-snippet/context-menu/template-cs2/index.html %} +{% endhighlight %} +{% endtabs %} + +{% previewsample "page.domainurl/code-snippet/context-menu/template-cs2" %} + +{% elsif page.publishingplatform == "javascript" %} + +{% tabs %} +{% highlight js tabtitle="index.js" %} +{% include code-snippet/context-menu/template-cs2/index.js %} +{% endhighlight %} +{% highlight html tabtitle="index.html" %} +{% include code-snippet/context-menu/template-cs2/index.html %} +{% endhighlight %} +{% endtabs %} + +{% previewsample "page.domainurl/code-snippet/context-menu/template-cs2" %} +{% endif %} + +## Customize the specific menu items The ContextMenu items can be customized by using the [`beforeItemRender`](../api/context-menu#beforeitemrender) event. The item render event triggers while rendering each menu item. The event argument will be used to identify the menu item and customize it based on the requirement. In the following sample, the menu item is rendered with keycode for specified action in ContextMenu using the template. Here, the keycode is specified for Save as, View page source, and Inspect in the right side corner of the menu items by adding span element in the [`beforeItemRender`](../api/context-menu#beforeitemrender) event. diff --git a/ej2-javascript/dashboard-layout/accessibility.md b/ej2-javascript/dashboard-layout/accessibility.md index e36e4a7bd..fab33cfcb 100644 --- a/ej2-javascript/dashboard-layout/accessibility.md +++ b/ej2-javascript/dashboard-layout/accessibility.md @@ -1,7 +1,7 @@ --- layout: post -title: Accessibility in ##Platform_Name## Dashboard Layout component | Syncfusion -description: Learn here all about Accessibility in Syncfusion ##Platform_Name## Dashboard Layout component of Syncfusion Essential JS 2 and more. +title: Accessibility in ##Platform_Name## Dashboard Layout control | Syncfusion +description: Learn here all about Accessibility in Syncfusion ##Platform_Name## Dashboard Layout control of Syncfusion Essential JS 2 and more. platform: ej2-javascript control: Accessibility publishingplatform: ##Platform_Name## @@ -9,11 +9,11 @@ documentation: ug domainurl: ##DomainURL## --- -# Accessibility in ##Platform_Name## Dashboard Layout component +# Accessibility in ##Platform_Name## Dashboard Layout control -The Dashboard Layout component followed the accessibility guidelines and standards, including [ADA](https://www.ada.gov/), [Section 508](https://www.section508.gov/), [WCAG 2.2](https://www.w3.org/TR/WCAG22/) standards, and [WCAG roles](https://www.w3.org/TR/wai-aria/#roles) that are commonly used to evaluate accessibility. +The Dashboard Layout control followed the accessibility guidelines and standards, including [ADA](https://www.ada.gov/), [Section 508](https://www.section508.gov/), [WCAG 2.2](https://www.w3.org/TR/WCAG22/) standards, and [WCAG roles](https://www.w3.org/TR/wai-aria/#roles) that are commonly used to evaluate accessibility. -The accessibility compliance for the Dashboard Layout component is outlined below. +The accessibility compliance for the Dashboard Layout control is outlined below. | Accessibility Criteria | Compatibility | | -- | -- | @@ -33,15 +33,15 @@ The accessibility compliance for the Dashboard Layout component is outlined belo margin: 0.5em 0; } -
          Yes - All features of the component meet the requirement.
          +
          Yes - All features of the control meet the requirement.
          -
          Intermediate - Some features of the component do not meet the requirement.
          +
          Intermediate - Some features of the control do not meet the requirement.
          -
          No - The component does not meet the requirement.
          +
          No - The control does not meet the requirement.
          ## WAI-ARIA attributes -The Dashboard Layout component followed the [WAI-ARIA](https://www.w3.org/WAI/ARIA/apg/) patterns to meet the accessibility. The following ARIA attributes are used in the Dashboard Layout component: +The Dashboard Layout control followed the [WAI-ARIA](https://www.w3.org/WAI/ARIA/apg/) patterns to meet the accessibility. The following ARIA attributes are used in the Dashboard Layout control: | **Attributes** | **Purpose** | | --- | --- | @@ -56,12 +56,12 @@ Keyboard support is not applicable for the Dashboard Layout. ## Ensuring accessibility -The Dashboard Layout component's accessibility levels are ensured through an [accessibility-checker](https://www.npmjs.com/package/accessibility-checker) and [axe-core](https://www.npmjs.com/package/axe-core) software tools during automated testing. +The Dashboard Layout control's accessibility levels are ensured through an [accessibility-checker](https://www.npmjs.com/package/accessibility-checker) and [axe-core](https://www.npmjs.com/package/axe-core) software tools during automated testing. -The accessibility compliance of the Dashboard Layout component is shown in the following sample. Open the [sample](https://ej2.syncfusion.com/accessibility/dashboard-layout.html) in a new window to evaluate the accessibility of the Dashboard Layout component with accessibility tools. +The accessibility compliance of the Dashboard Layout control is shown in the following sample. Open the [sample](https://ej2.syncfusion.com/accessibility/dashboard-layout.html) in a new window to evaluate the accessibility of the Dashboard Layout control with accessibility tools. {% previewsample "page.domainurl/code-snippet/dashboard-layout/accessibility-cs1" %} ## See also -* [Accessibility in Syncfusion ##Platform_Name## components](../common/accessibility) +* [Accessibility in Syncfusion ##Platform_Name## controls](../common/accessibility) diff --git a/ej2-javascript/dashboard-layout/floating-of-panels.md b/ej2-javascript/dashboard-layout/floating-of-panels.md index 1b6e54b09..3036a48ad 100644 --- a/ej2-javascript/dashboard-layout/floating-of-panels.md +++ b/ej2-javascript/dashboard-layout/floating-of-panels.md @@ -1,19 +1,19 @@ --- layout: post -title: Floating of panels in ##Platform_Name## Dashboard layout control | Syncfusion -description: Learn here all about Floating of panels in Syncfusion ##Platform_Name## Dashboard layout control of Syncfusion Essential JS 2 and more. +title: Floating of panels in ##Platform_Name## Dashboard Layout control | Syncfusion +description: Learn here all about Floating of panels in Syncfusion ##Platform_Name## Dashboard Layout control of Syncfusion Essential JS 2 and more. platform: ej2-javascript -control: Floating of panels +control: Floating of panels publishingplatform: ##Platform_Name## documentation: ug domainurl: ##DomainURL## --- -# Floating of panels in ##Platform_Name## Dashboard layout control +# Floating of panels in ##Platform_Name## Dashboard Layout control -The floating functionality of the component allows to effectively use the entire layout for the panel's placement. If the floating functionality is enabled, the panels within the layout get floated upwards automatically to occupy the empty cells available in previous rows. This functionality can be enabled or disabled using the [`allowFloating`](../api/dashboard-layout/#allowfloating) property of the component. +The floating functionality of the control allows effective use of the entire layout for panel placement. If the floating functionality is enabled, the panels within the layout float upwards automatically to occupy the empty cells available in previous rows. This functionality can be enabled or disabled using the [`allowFloating`](../api/dashboard-layout/#allowfloating) property of the control. -The following sample demonstrates how to enable or disable the floating of panels in the DashboardLayout component. +The following sample demonstrates how to enable or disable the floating of panels in the Dashboard Layout control. {% if page.publishingplatform == "typescript" %} @@ -42,4 +42,4 @@ The following sample demonstrates how to enable or disable the floating of panel {% previewsample "page.domainurl/code-snippet/dashboard-layout/floating-cs1" %} {% endif %} -> You can refer to our [JavaScript Dashboard Layout](https://www.syncfusion.com/javascript-ui-controls/js-dashboard-layout) feature tour page for its groundbreaking feature representations. You can also explore our [JavaScript Dashboard Layout example](https://ej2.syncfusion.com/demos/#/material/dashboard-layout/default.html) to knows how to present and manipulate data. \ No newline at end of file +> You can refer to our [JavaScript Dashboard Layout](https://www.syncfusion.com/javascript-ui-controls/js-dashboard-layout) feature tour page for its groundbreaking feature representations. You can also explore our [JavaScript Dashboard Layout example](https://ej2.syncfusion.com/demos/#/material/dashboard-layout/default.html) to learn how to present and manipulate data. \ No newline at end of file diff --git a/ej2-javascript/dashboard-layout/how-to/resize-the-panel-dynamically.md b/ej2-javascript/dashboard-layout/how-to/resize-the-panel-dynamically.md index 56c2a3781..0d25eedfd 100644 --- a/ej2-javascript/dashboard-layout/how-to/resize-the-panel-dynamically.md +++ b/ej2-javascript/dashboard-layout/how-to/resize-the-panel-dynamically.md @@ -1,19 +1,19 @@ --- layout: post -title: Resize the panel dynamically in ##Platform_Name## Dashboard layout control | Syncfusion -description: Learn here all about Resize the panel dynamically in Syncfusion ##Platform_Name## Dashboard layout control of Syncfusion Essential JS 2 and more. +title: Resize the panel dynamically in ##Platform_Name## Dashboard Layout control | Syncfusion +description: Learn here all about Resize the panel dynamically in Syncfusion ##Platform_Name## Dashboard Layout control of Syncfusion Essential JS 2 and more. platform: ej2-javascript -control: Resize the panel dynamically +control: Resize the panel dynamically publishingplatform: ##Platform_Name## documentation: ug domainurl: ##DomainURL## --- -# Resize the panel dynamically in ##Platform_Name## Dashboard layout control +# Resize the panel dynamically in ##Platform_Name## Dashboard Layout control -In Dashboard Layout, the height of a panel is based on its width. While resizing the panel, the height and width should be changed. +In Dashboard Layout, the height of a panel is based on its width. While resizing the panel, both the height and width should be adjusted. -To resize the height of a panel alone, the [resizePanel]( ../../api/dashboard-layout/#resizepanel) method is used. In this case, the [cellAspectRatio](../../api/dashboard-layout/#cellaspectratio) property configures the height of the cells based on the cell width to height ratio (cell width/cell height ratio) when the height will not be completely adjusted to `sizeY` value. +To resize the height of a panel alone, use the [resizePanel](../../api/dashboard-layout/#resizepanel) method. In this case, the [cellAspectRatio](../../api/dashboard-layout/#cellaspectratio) property configures the height of the cells based on the cell width-to-height ratio (cell width/cell height ratio) when the height will not be completely adjusted to the `sizeY` value. Refer to the following code snippet to determine the height of a panel. @@ -32,7 +32,7 @@ Refer to the following code snippet to determine the height of a panel. {% include code-snippet/dashboard-layout/dynamic-resize-cs1/index.html %} {% endhighlight %} {% endtabs %} - + {% previewsample "page.domainurl/code-snippet/dashboard-layout/dynamic-resize-cs1" %} {% elsif page.publishingplatform == "javascript" %} diff --git a/ej2-javascript/dashboard-layout/interaction-with-panels/dragging-moving-of-panels.md b/ej2-javascript/dashboard-layout/interaction-with-panels/dragging-moving-of-panels.md index 89696dcc9..0d03e938e 100644 --- a/ej2-javascript/dashboard-layout/interaction-with-panels/dragging-moving-of-panels.md +++ b/ej2-javascript/dashboard-layout/interaction-with-panels/dragging-moving-of-panels.md @@ -1,26 +1,26 @@ --- layout: post -title: Dragging moving of panels in ##Platform_Name## Dashboard layout control | Syncfusion -description: Learn here all about Dragging moving of panels in Syncfusion ##Platform_Name## Dashboard layout control of Syncfusion Essential JS 2 and more. +title: Dragging of panels in ##Platform_Name## Dashboard layout control | Syncfusion +description: Learn here all about Dragging of panels in Syncfusion ##Platform_Name## Dashboard layout control of Syncfusion Essential JS 2 and more. platform: ej2-javascript -control: Dragging moving of panels +control: Dragging of panels publishingplatform: ##Platform_Name## documentation: ug domainurl: ##DomainURL## --- -# Dragging moving of panels in ##Platform_Name## Dashboard layout control +# Dragging of panels in ##Platform_Name## Dashboard layout control -The Dashboard Layout component is provided with dragging functionality to drag and reorder the panels within the layout. While dragging a panel, a holder will be highlighted below the panel indicating the panel placement on panel drop. This helps the user to decide whether to place the panel in the current position or revert to previous position without disturbing the layout. +The Dashboard Layout control is equipped with dragging functionality to drag and reorder the panels within the layout. While dragging a panel, a holder will be highlighted below the panel indicating the panel placement on panel drop. This helps the user decide whether to place the panel in the current position or revert to the previous position without disturbing the layout. -If one or more panels collide while dragging, then the colliding panels will be pushed towards left or right or top or bottom direction where an adaptive space for the collided panel is available. The position changes of these collided panels will be updated dynamically during dragging of a panel so the user can conclude whether to place the panel in the current position or not. +If one or more panels collide while dragging, the colliding panels will be pushed towards left, right, top, or bottom directions where an adaptive space for the collided panel is available. The position changes of these collided panels will be updated dynamically during the dragging of a panel so the user can conclude whether to place the panel in the current position or not. -While dragging a panel in Dashboard layout the following dragging events will be triggered, - * [dragStart](../../api/dashboard-layout/#dragstart) - Triggers when panel drag starts - * [drag](../../api/dashboard-layout/#drag) - Triggers when panel is being dragged - * [dragStop](../../api/dashboard-layout/#dragstop) - Triggers when panel drag stops +While dragging a panel in the Dashboard Layout, the following dragging events will be triggered: + * [dragStart](../../api/dashboard-layout/#dragstart) - Triggers when panel drag starts. + * [drag](../../api/dashboard-layout/#drag) - Triggers when panel is being dragged. + * [dragStop](../../api/dashboard-layout/#dragstop) - Triggers when panel drag stops. -The following sample demonstrates dragging and pushing of panels. Here, for e.g. While dragging the panel 0 over panel 1, these panels get collided and push the panel 1 towards the feasible direction so that panel 0 gets placed in the panel 1 position. +The following sample demonstrates dragging and pushing of panels. For example, while dragging panel 0 over panel 1, these panels get collided and push panel 1 towards a feasible direction so that panel 0 gets placed in panel 1's position. {% if page.publishingplatform == "typescript" %} @@ -51,9 +51,9 @@ The following sample demonstrates dragging and pushing of panels. Here, for e.g. ## Customizing the dragging handler -Initially, the complete panel will act as the handler for dragging the panel such that the dragging action occurs on clicking anywhere over a panel. However, this dragging handler for the panels can be customized using the [`draggableHandle`](../../api/dashboard-layout/#draggablehandle) property to restrict the dragging action within a particular element in the panel. +Initially, the complete panel acts as the handler for dragging the panel such that the dragging action occurs when clicking anywhere over a panel. However, this dragging handler for the panels can be customized using the [`draggableHandle`](../../api/dashboard-layout/#draggablehandle) property to restrict the dragging action within a particular element in the panel. -The following sample demonstrates customizing the dragging handler of the panels where dragging action of panel occurs only with the header of the panel. +The following sample demonstrates customizing the dragging handler of the panels where the dragging action of a panel occurs only with the header of the panel. {% if page.publishingplatform == "typescript" %} @@ -84,9 +84,9 @@ The following sample demonstrates customizing the dragging handler of the panels ## Disable dragging of panels -By default, the dragging of panels is enabled in Dashboard Layout. It can also be disabled with the help of [allowDragging](../../api/dashboard-layout/#allowdragging) API. Setting [allowDragging](../../api/dashboard-layout/#allowdragging) to false disables the dragging functionality in Dashboard Layout. +By default, the dragging of panels is enabled in the Dashboard Layout. It can also be disabled with the help of the [allowDragging](../../api/dashboard-layout/#allowdragging) API. Setting [allowDragging](../../api/dashboard-layout/#allowdragging) to false disables the dragging functionality in the Dashboard Layout. -The following sample demonstrates Dashboard Layout with dragging support disabled. +The following sample demonstrates the Dashboard Layout with dragging support disabled. {% if page.publishingplatform == "typescript" %} @@ -115,4 +115,4 @@ The following sample demonstrates Dashboard Layout with dragging support disable {% previewsample "page.domainurl/code-snippet/dashboard-layout/disable-dragging-cs1" %} {% endif %} -> You can refer to our [JavaScript Dashboard Layout](https://www.syncfusion.com/javascript-ui-controls/js-dashboard-layout) feature tour page for its groundbreaking feature representations. You can also explore our [JavaScript Dashboard Layout example](https://ej2.syncfusion.com/demos/#/material/dashboard-layout/default.html) to knows how to present and manipulate data. \ No newline at end of file +> You can refer to our [JavaScript Dashboard Layout](https://www.syncfusion.com/javascript-ui-controls/js-dashboard-layout) feature tour page for its groundbreaking feature representations. You can also explore our [JavaScript Dashboard Layout example](https://ej2.syncfusion.com/demos/#/material/dashboard-layout/default.html) to learn how to present and manipulate data. \ No newline at end of file diff --git a/ej2-javascript/dashboard-layout/interaction-with-panels/moving-panels.md b/ej2-javascript/dashboard-layout/interaction-with-panels/moving-panels.md index 9ef4c3225..80f80ce6f 100644 --- a/ej2-javascript/dashboard-layout/interaction-with-panels/moving-panels.md +++ b/ej2-javascript/dashboard-layout/interaction-with-panels/moving-panels.md @@ -1,17 +1,17 @@ --- layout: post -title: Moving panels in ##Platform_Name## Dashboard layout control | Syncfusion -description: Learn here all about Moving panels in Syncfusion ##Platform_Name## Dashboard layout control of Syncfusion Essential JS 2 and more. +title: Moving panels in ##Platform_Name## Dashboard Layout control | Syncfusion +description: Learn here all about Moving panels in Syncfusion ##Platform_Name## Dashboard Layout control of Syncfusion Essential JS 2 and more. platform: ej2-javascript -control: Moving panels +control: Moving panels publishingplatform: ##Platform_Name## documentation: ug domainurl: ##DomainURL## --- -# Moving panels in ##Platform_Name## Dashboard layout control +# Moving panels in ##Platform_Name## Dashboard Layout control -Other than drag and drop, it is possible to move the panels in Dashboard Layout programatically. This can be achieved using [movePanel](../../api/dashboard-layout/#movepanel) method. The method is invoked as follows, +Aside from drag and drop, it is possible to move the panels in Dashboard Layout programmatically. This can be achieved using [movePanel](../../api/dashboard-layout/#movepanel) method. The method is invoked as follows: ```js movePanel(id, row, col) @@ -36,7 +36,7 @@ The following sample demonstrates moving a panel programatically to a new positi {% include code-snippet/dashboard-layout/moving-cs1/index.html %} {% endhighlight %} {% endtabs %} - + {% previewsample "page.domainurl/code-snippet/dashboard-layout/moving-cs1" %} {% elsif page.publishingplatform == "javascript" %} diff --git a/ej2-javascript/dashboard-layout/interaction-with-panels/resizing-of-panels.md b/ej2-javascript/dashboard-layout/interaction-with-panels/resizing-of-panels.md index 9078b7845..7379781b8 100644 --- a/ej2-javascript/dashboard-layout/interaction-with-panels/resizing-of-panels.md +++ b/ej2-javascript/dashboard-layout/interaction-with-panels/resizing-of-panels.md @@ -1,26 +1,26 @@ --- layout: post -title: Resizing of panels in ##Platform_Name## Dashboard layout control | Syncfusion -description: Learn here all about Resizing of panels in Syncfusion ##Platform_Name## Dashboard layout control of Syncfusion Essential JS 2 and more. +title: Resizing of panels in ##Platform_Name## Dashboard Layout control | Syncfusion +description: Learn here all about Resizing of panels in Syncfusion ##Platform_Name## Dashboard Layout control of Syncfusion Essential JS 2 and more. platform: ej2-javascript -control: Resizing of panels +control: Resizing of panels publishingplatform: ##Platform_Name## documentation: ug domainurl: ##DomainURL## --- -# Resizing of panels in ##Platform_Name## Dashboard layout control +# Resizing of panels in ##Platform_Name## Dashboard Layout control -The DashboardLayout component is also provided with the panel resizing functionality which can be enabled or disabled using the [`allowResizing`](../../api/dashboard-layout/#allowresizing) property. This functionality allows to resize the panels dynamically through UI interactions using the resizing handlers which controls the panel resizing in various directions. +The Dashboard Layout control includes panel resizing functionality, which can be enabled or disabled using the [`allowResizing`](../../api/dashboard-layout/#allowresizing) property. This functionality allows panels to be resized dynamically through UI interactions using resizing handlers, which control panel resizing in various directions. -Initially, the panels can be resized only in south-east direction. However, panels can also be resized in east, west, north, south and south-west directions by defining the required directions with [`resizableHandles`](../../api/dashboard-layout/#resizablehandles) property. +Initially, panels can only be resized in the south-east direction. However, panels can also be resized in the east, west, north, south, and south-west directions by defining the required directions with the [`resizableHandles`](../../api/dashboard-layout/#resizablehandles) property. -On resizing a panel in Dashboard layout the following events will be triggered, +On resizing a panel in Dashboard Layout the following events will be triggered, * [resizeStart](../../api/dashboard-layout/#resizestart) - Triggers when panel resize starts * [resize](../../api/dashboard-layout/#resize) - Triggers when panel is being resized * [resizeStop](../../api/dashboard-layout/#resizestop) - Triggers when panel resize stops -The following sample demonstrates how to enable and disable the resizing of panels in the DashboardLayout component in different directions. +The following sample demonstrates how to enable and disable the resizing of panels in the Dashboard Layout control in different directions. {% if page.publishingplatform == "typescript" %} @@ -51,7 +51,7 @@ The following sample demonstrates how to enable and disable the resizing of pane ## Resizing panels programatically -The Dashboard Layout panels can also be resized programatically by using [resizePanel](../../api/dashboard-layout/#resizepanel) method. The method is invoked as follows, +The Dashboard Layout panels can also be resized programmatically by using the [resizePanel](../../api/dashboard-layout/#resizepanel) method. The method is invoked as follows: ```js resizePanel(id, sizeX, sizeY) @@ -74,7 +74,7 @@ The following sample demonstrates resizing panels programatically in the Dashboa {% include code-snippet/dashboard-layout/resize-panel-cs1/index.html %} {% endhighlight %} {% endtabs %} - + {% previewsample "page.domainurl/code-snippet/dashboard-layout/resize-panel-cs1" %} {% elsif page.publishingplatform == "javascript" %} diff --git a/ej2-javascript/dashboard-layout/js/es5-getting-started.md b/ej2-javascript/dashboard-layout/js/es5-getting-started.md index b4d6abb58..545958e5a 100644 --- a/ej2-javascript/dashboard-layout/js/es5-getting-started.md +++ b/ej2-javascript/dashboard-layout/js/es5-getting-started.md @@ -13,16 +13,16 @@ domainurl: ##DomainURL## The Essential JS 2 for JavaScript (global script) is an ES5 formatted pure JavaScript framework that can be directly used in latest web browsers. -## Component initialization +## Control initialization -The Essential JS 2 JavaScript components can be initialized by using any of the following two ways: +The Essential JS 2 JavaScript controls can be initialized by using any of the following two ways: * Using local script and style references in an HTML page. * Using CDN link for script and style reference. ### Using local script and style references in an HTML page -**Step 1:** Create an app folder `myapp` for Essential JS 2 JavaScript components. +**Step 1:** Create an app folder `myapp` for Essential JS 2 JavaScript controls. **Step 2:** You can get the global scripts and styles from the [Essential Studio JavaScript (Essential JS 2)](https://www.syncfusion.com/downloads/essential-js2) build installed location. @@ -63,7 +63,7 @@ The below located script and style file contains all Syncfusion JavaScript (ES5) ``` -**Step 5:** Now, create a dashboard element to apply the `Essential JS 2 DashboardLayout` component in the `index.html` by using following code. +**Step 5:** Now, create a dashboard element to apply the `Essential JS 2 Dashboard Layout` control in the `index.html` by using following code. ```html @@ -83,7 +83,7 @@ The below located script and style file contains all Syncfusion JavaScript (ES5)
          - +
          @@ -124,12 +124,12 @@ The below located script and style file contains all Syncfusion JavaScript (ES5)
          -
          Yes - All features of the component meet the requirement.
          - -
          Intermediate - Some features of the component do not meet the requirement.
          - -
          No - The component does not meet the requirement.
          - -## WAI-ARIA attributes +## ARIA attributes The DropDownList component uses the `Listbox` role, and each list item has an `option` role. The following `ARIA attributes` denote the DropDownList state. @@ -102,15 +74,3 @@ You can use the following key shortcuts to access the DropDownList without inter {% previewsample "page.domainurl/code-snippet/dropdownlist/getting-started-cs1" %} {% endif %} - -## Ensuring accessibility - -The DropDownList component's accessibility levels are ensured through an [accessibility-checker](https://www.npmjs.com/package/accessibility-checker) and [axe-core](https://www.npmjs.com/package/axe-core) software tools during automated testing. - -The accessibility compliance of the DropDownList component is shown in the following sample. Open the [sample](https://ej2.syncfusion.com/accessibility/drop-down-list.html) in a new window to evaluate the accessibility of the DropDownList component with accessibility tools. - -{% previewsample "https://ej2.syncfusion.com/accessibility/drop-down-list.html" %} - -## See also - -* [Accessibility in Syncfusion components](../common/accessibility) diff --git a/ej2-javascript/drop-down-list/data-binding.md b/ej2-javascript/drop-down-list/data-binding.md index 90ca9f62a..997657f68 100644 --- a/ej2-javascript/drop-down-list/data-binding.md +++ b/ej2-javascript/drop-down-list/data-binding.md @@ -164,7 +164,7 @@ The following sample displays the first 6 contacts from “Customers” table of * [How to group the data using header](./grouping) * [How to filter the bound data](./filtering) * [How to get the count of the data when using remote data](./how-to/remote-data-bind) -* [How to acheive cascading](./how-to/cascading) -* [How to add item in between the options](./how-to/add-item) -* [How to remove an item](./how-to/remove-item) -* [How to preselect the items in dropdownlist](./how-to/multiple-cascading) \ No newline at end of file +* [How to acheive cascading](./how-to/cascading/) +* [How to add item in between the options](./how-to/add-item/) +* [How to remove an item](./how-to/remove-item/) +* [How to preselect the items in dropdownlist](./how-to/multiple-cascading/) \ No newline at end of file diff --git a/ej2-javascript/drop-down-list/disabled-items.md b/ej2-javascript/drop-down-list/disabled-items.md deleted file mode 100644 index 1d16c6785..000000000 --- a/ej2-javascript/drop-down-list/disabled-items.md +++ /dev/null @@ -1,59 +0,0 @@ ---- -layout: post -title: Disabled Items in ##Platform_Name## DropDownList control | Syncfusion -description: Learn here all about Disabled Items in Syncfusion ##Platform_Name## DropDownList control of Syncfusion Essential JS 2 and more. -platform: ej2-javascript -control: Disabled Items -publishingplatform: ##Platform_Name## -documentation: ug -domainurl: ##DomainURL## ---- - -# Disabled Items in ##Platform_Name## DropDownList control - -The DropDownList provides options for individual items to be either in an enabled or disabled state for specific scenarios. The category of each list item can be mapped through the [disabled](../api/drop-down-list/#fields) field in the data table. Once an item is disabled, it cannot be selected as a value for the component. To configure the disabled item columns, use the `fields.disabled` property. - -In the following sample, State are grouped according on its category using `disabled` field. - -{% if page.publishingplatform == "typescript" %} - - {% tabs %} -{% highlight ts tabtitle="index.ts" %} -{% include code-snippet/dropdownlist/basic-cs14/index.ts %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/dropdownlist/basic-cs14/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/dropdownlist/basic-cs14" %} - -{% elsif page.publishingplatform == "javascript" %} - -{% tabs %} -{% highlight js tabtitle="index.js" %} -{% include code-snippet/dropdownlist/basic-cs14/index.js %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/dropdownlist/basic-cs14/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/dropdownlist/basic-cs14" %} -{% endif %} - -## Disable Item Method - -The [disableItem](../api/drop-down-list/#disableItem) method can be used to handle dynamic changing in disable state of a specific item. Only one item can be disabled in this method. To disable multiple items, this method can be iterated with the items list or array. The disabled field state will to be updated in the [dataSource](../api/drop-down-list/#datasource), when the item is disabled using this method. If the selected item is disabled dynamically, then the selection will be cleared. - -| Parameter | Type | Description | -|------|------|------| -| itemHTMLLIElement | HTMLLIElement | It accepts the HTML Li element of the item to be removed. | -| itemValue | string \| number \| boolean \| object | It accepts the string, number, boolean and object type value of the item to be removed. | -| itemIndex | number | It accepts the index of the item to be removed. | - -## Enabled - -If you want to disabled the overall component to set the [enabled](../api/drop-down-list/#enabled) property to false. - -![Disabled DropDownList Component](../images/dropdownlist-disable.png) \ No newline at end of file diff --git a/ej2-javascript/drop-down-list/filtering.md b/ej2-javascript/drop-down-list/filtering.md index 6cdc7358e..99ffbae9b 100644 --- a/ej2-javascript/drop-down-list/filtering.md +++ b/ej2-javascript/drop-down-list/filtering.md @@ -14,7 +14,7 @@ domainurl: ##DomainURL## The DropDownList has built-in support to filter data items when [`allowFiltering`](../api/drop-down-list/#allowfiltering) is enabled. The filter operation starts as soon as you start typing characters in the search box. -To display filtered items in the popup, filter the required data and return it to the DropDownList via [updateData](../api/drop-down-list/filteringEventArgs/#updatedata) method by using the [filtering](../api/drop-down-list/filteringEventArgs/) event. +To display filtered items in the popup, filter the required data and return it to the DropDownList via [updateData](../api/drop-down-list/filteringEventArgs/#updatedata) method by using the [filtering](../api/drop-down-list/filteringEventArgs) event. The following sample illustrates how to query the data source and pass the data to the DropDownList through the `updateData` method in `filtering` event. diff --git a/ej2-javascript/drop-down-list/how-to/achieve-virtual-scrolling.md b/ej2-javascript/drop-down-list/how-to/achieve-virtual-scrolling.md new file mode 100644 index 000000000..f0cc1e61c --- /dev/null +++ b/ej2-javascript/drop-down-list/how-to/achieve-virtual-scrolling.md @@ -0,0 +1,43 @@ +--- +layout: post +title: Achieve virtual scrolling in ##Platform_Name## Drop down list control | Syncfusion +description: Learn here all about Achieve virtual scrolling in Syncfusion ##Platform_Name## Drop down list control of Syncfusion Essential JS 2 and more. +platform: ej2-javascript +control: Achieve virtual scrolling +publishingplatform: ##Platform_Name## +documentation: ug +domainurl: ##DomainURL## +--- + +# Achieve virtual scrolling in ##Platform_Name## Drop down list control + +The Virtual Scrolling is used to display a large amount of data without buffering the entire load of a huge database record in the DropDownList, that is, when scrolling, the request is sent and fetch some amount of data from the server dynamically. Using the `scroll` event, get the data and generate the list add to popup using the `addItem` method. + +Refer to the following code sample for virtual scrolling. + +{% if page.publishingplatform == "typescript" %} + + {% tabs %} +{% highlight ts tabtitle="index.ts" %} +{% include code-snippet/dropdownlist/virtual-cs1/index.ts %} +{% endhighlight %} +{% highlight html tabtitle="index.html" %} +{% include code-snippet/dropdownlist/virtual-cs1/index.html %} +{% endhighlight %} +{% endtabs %} + +{% previewsample "page.domainurl/code-snippet/dropdownlist/virtual-cs1" %} + +{% elsif page.publishingplatform == "javascript" %} + +{% tabs %} +{% highlight js tabtitle="index.js" %} +{% include code-snippet/dropdownlist/virtual-cs1/index.js %} +{% endhighlight %} +{% highlight html tabtitle="index.html" %} +{% include code-snippet/dropdownlist/virtual-cs1/index.html %} +{% endhighlight %} +{% endtabs %} + +{% previewsample "page.domainurl/code-snippet/dropdownlist/virtual-cs1" %} +{% endif %} diff --git a/ej2-javascript/drop-down-list/js/es5-getting-started.md b/ej2-javascript/drop-down-list/js/es5-getting-started.md new file mode 100644 index 000000000..1f52c5c16 --- /dev/null +++ b/ej2-javascript/drop-down-list/js/es5-getting-started.md @@ -0,0 +1,216 @@ +--- +layout: post +title: Es5 getting started with ##Platform_Name## Drop down list control | Syncfusion +description: Checkout and learn about Es5 getting started with ##Platform_Name## Drop down list control of Syncfusion Essential JS 2 and more details. +platform: ej2-javascript +control: Es5 getting started +publishingplatform: ##Platform_Name## +documentation: ug +domainurl: ##DomainURL## +--- + +# Es5 getting started in ##Platform_Name## Drop down list control + +The Essential JS 2 for JavaScript (global script) is an ES5 formatted pure JavaScript framework which can be directly used in latest web browsers. + +## Dependencies + +The following list of dependencies are required to use the DropDownList component in your application. + +```javascript +|-- @syncfusion/ej2-dropdowns + |-- @syncfusion/ej2-base + |-- @syncfusion/ej2-data + |-- @syncfusion/ej2-inputs + |-- @syncfusion/ej2-lists + |-- @syncfusion/ej2-navigations + |-- @syncfusion/ej2-popups + |-- @syncfusion/ej2-buttons +``` + +## Component Initialization + +The Essential JS 2 JavaScript components can be initialized by using either of the following ways. + +* Using local script and style references in a HTML page. +* Using CDN link for script and style reference. + +### Using local script and style references in a HTML page + +**Step 1:** Create an app folder `myapp` for Essential JS 2 JavaScript components. + +**Step 2:** You can get the global scripts and styles from the [Essential Studio JavaScript (Essential JS 2)](https://www.syncfusion.com/downloads/essential-js2) build installed location. + +**Syntax:** +> Script: `**(installed location)**/Syncfusion/Essential Studio/{RELEASE_VERSION}/Essential JS 2/{PACKAGE_NAME}/dist/global/{PACKAGE_NAME}.min.js` +> +> Styles: `**(installed location)**/Syncfusion/Essential Studio/{RELEASE_VERSION}/Essential JS 2/{PACKAGE_NAME}/styles/material.css` + +**Example:** + +> Script: `C:/Program Files (x86)/Syncfusion/Essential Studio/15.4.30/Essential JS 2/ej2-dropdowns/dist/global/ej2-dropdowns.min.js` +> +> Styles: `C:/Program Files (x86)/Syncfusion/Essential Studio/15.4.30/Essential JS 2/ej2-dropdowns/styles/material.css` + +**Step 3:** Create a folder `myapp/resources` and copy/paste the global scripts and styles from the above installed location to `myapp/resources` location. + +**Step 4:** Create a HTML page (index.html) in `myapp` location and add the Essentials JS 2 script and style references. + +```html + + + + Essential JS 2 + + + + + + + + + + + + + + + + + + + + + +``` + +**Step 5:** Now, add the `input` element and initiate the `Essential JS 2 DropDownList` component in the `index.html` by using following code + +```html + + + + Essential JS 2 + + + + + + + + + + + + + + + + + + + + + + + + +``` + +**Step 6:** Now, run the `index.html` in web browser, it will render the **Essential JS 2 DropDownList** component. + +### Using CDN link for script and style reference + +**Step 1:** Create an app folder `myapp` for the Essential JS 2 JavaScript components. + +**Step 2:** The Essential JS 2 component's global scripts and styles are already hosted in the below CDN link formats. + +**Syntax:** +> Script: `http://cdn.syncfusion.com/ej2/{PACKAGE_NAME}/dist/global/{PACKAGE_NAME}.min.js` +> +> Styles: `http://cdn.syncfusion.com/ej2/{PACKAGE_NAME}/styles/material.css` + +**Example:** +> Script: [`http://cdn.syncfusion.com/ej2/ej2-dropdowns/dist/global/ej2-dropdowns.min.js`](http://cdn.syncfusion.com/ej2/ej2-dropdowns/dist/global/ej2-dropdowns.min.js) +> +> Styles: [`http://cdn.syncfusion.com/ej2/ej2-dropdowns/styles/material.css`](http://cdn.syncfusion.com/ej2/ej2-dropdowns/styles/material.css) + +**Step 3:** Create a HTML page (index.html) in `myapp` location and add the CDN link references. Now, add the `input` element and initiate the `Essential JS 2 DropDownList` component in the index.html by using following code. + +{% tabs %} +{% highlight html tabtitle="index.html" %} +{% include code-snippet/dropdownlist/es5-getting-started-cs1/index.html %} +{% endhighlight %} +{% endtabs %} + +{% previewsample "page.domainurl/code-snippet/dropdownlist/es5-getting-started-cs1" %} + +**Step 4:** Now, run the `index.html` in web browser, it will render the `Essential JS 2 DropDownList` component. + +## Binding data source + +After initialization, populate the DropDownList with data using the [dataSource](../api/drop-down-list/#datasource)  property. Here, an array of string values is passed to the DropDownList component. + +```html + + + + Essential JS 2 + + + + + + + + + + + + + + + + + + + + + + + + +``` + +## Configure the popup list + +By default, the width of the popup list automatically adjusts according to the DropDownList input element's width, and the height of the popup list has '300px'. + +The height and width of the popup list can also be customized using the [popupHeight](../api/drop-down-list/#popupheight)  and [popupWidth](../api/drop-down-list/#popupwidth) properties respectively. + +In the following sample, popup list's width and height are configured. + +{% tabs %} +{% highlight html tabtitle="index.html" %} +{% include code-snippet/dropdownlist/es5-getting-started-cs2/index.html %} +{% endhighlight %} +{% endtabs %} + +{% previewsample "page.domainurl/code-snippet/dropdownlist/es5-getting-started-cs2" %} + +## See Also + +* [How to bind the data](./data-binding) +* [How to initialize the control using different tags](./tags) \ No newline at end of file diff --git a/ej2-javascript/drop-down-list/js/getting-started.md b/ej2-javascript/drop-down-list/js/getting-started.md deleted file mode 100644 index 1fabb2ae6..000000000 --- a/ej2-javascript/drop-down-list/js/getting-started.md +++ /dev/null @@ -1,216 +0,0 @@ ---- -layout: post -title: Es5 getting started with ##Platform_Name## Drop down list control | Syncfusion -description: Checkout and learn about Es5 getting started with ##Platform_Name## Drop down list control of Syncfusion Essential JS 2 and more details. -platform: ej2-javascript -control: Es5 getting started -publishingplatform: ##Platform_Name## -documentation: ug -domainurl: ##DomainURL## ---- - -# Es5 getting started in ##Platform_Name## Drop down list control - -The Essential JS 2 for JavaScript (global script) is an ES5 formatted pure JavaScript framework which can be directly used in latest web browsers. - -## Dependencies - -The following list of dependencies are required to use the DropDownList component in your application. - -```javascript -|-- @syncfusion/ej2-dropdowns - |-- @syncfusion/ej2-base - |-- @syncfusion/ej2-data - |-- @syncfusion/ej2-inputs - |-- @syncfusion/ej2-lists - |-- @syncfusion/ej2-navigations - |-- @syncfusion/ej2-popups - |-- @syncfusion/ej2-buttons -``` - -## Component Initialization - -The Essential JS 2 JavaScript components can be initialized by using either of the following ways. - -* Using local script and style references in a HTML page. -* Using CDN link for script and style reference. - -### Using local script and style references in a HTML page - -**Step 1:** Create an app folder `my app` for Essential JS 2 JavaScript components. - -**Step 2:** You can get the global scripts and styles from the [Essential Studio JavaScript (Essential JS 2)](https://www.syncfusion.com/downloads/essential-js2) build installed location. - -**Syntax:** -> Script: `**(installed location)**/Syncfusion/Essential Studio/{RELEASE_VERSION}/Essential JS 2/{PACKAGE_NAME}/dist/global/{PACKAGE_NAME}.min.js` -> -> Styles: `**(installed location)**/Syncfusion/Essential Studio/{RELEASE_VERSION}/Essential JS 2/{PACKAGE_NAME}/styles/material.css` - -**Example:** - -> Script: `C:/Program Files (x86)/Syncfusion/Essential Studio/15.4.30/Essential JS 2/ej2-dropdowns/dist/global/ej2-dropdowns.min.js` -> -> Styles: `C:/Program Files (x86)/Syncfusion/Essential Studio/15.4.30/Essential JS 2/ej2-dropdowns/styles/material.css` - -**Step 3:** Create a folder `my app/resources` and copy/paste the global scripts and styles from the above installed location to `my app/resources` location. - -**Step 4:** Create a HTML page (index.html) in `my app` location and add the Essentials JS 2 script and style references. - -```html - - - - Essential JS 2 - - - - - - - - - - - - - - - - - - - - - -``` - -**Step 5:** Now, add the `input` element and initiate the `Essential JS 2 DropDownList` component in the `index.html` by using following code - -```html - - - - Essential JS 2 - - - - - - - - - - - - - - - - - - - - - - - - -``` - -**Step 6:** Now, run the `index.html` in web browser, it will render the **Essential JS 2 DropDownList** component. - -### Using CDN link for script and style reference - -**Step 1:** Create an app folder `my app` for the Essential JS 2 JavaScript components. - -**Step 2:** The Essential JS 2 component's global scripts and styles are already hosted in the below CDN link formats. - -**Syntax:** -> Script: `http://cdn.syncfusion.com/ej2/{PACKAGE_NAME}/dist/global/{PACKAGE_NAME}.min.js` -> -> Styles: `http://cdn.syncfusion.com/ej2/{PACKAGE_NAME}/styles/material.css` - -**Example:** -> Script: [`http://cdn.syncfusion.com/ej2/ej2-dropdowns/dist/global/ej2-dropdowns.min.js`](http://cdn.syncfusion.com/ej2/ej2-dropdowns/dist/global/ej2-dropdowns.min.js) -> -> Styles: [`http://cdn.syncfusion.com/ej2/ej2-dropdowns/styles/material.css`](http://cdn.syncfusion.com/ej2/ej2-dropdowns/styles/material.css) - -**Step 3:** Create a HTML page (index.html) in `my app` location and add the CDN link references. Now, add the `input` element and initiate the `Essential JS 2 DropDownList` component in the index.html by using following code. - -{% tabs %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/dropdownlist/es5-getting-started-cs1/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/dropdownlist/es5-getting-started-cs1" %} - -**Step 4:** Now, run the `index.html` in web browser, it will render the `Essential JS 2 DropDownList` component. - -## Binding data source - -After initialization, populate the DropDownList with data using the [dataSource](../api/drop-down-list/#datasource)  property. Here, an array of string values is passed to the DropDownList component. - -```html - - - - Essential JS 2 - - - - - - - - - - - - - - - - - - - - - - - - -``` - -## Configure the popup list - -By default, the width of the popup list automatically adjusts according to the DropDownList input element's width, and the height of the popup list has '300px'. - -The height and width of the popup list can also be customized using the [popupHeight](../api/drop-down-list/#popupheight)  and [popupWidth](../api/drop-down-list/#popupwidth) properties respectively. - -In the following sample, popup list's width and height are configured. - -{% tabs %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/dropdownlist/es5-getting-started-cs2/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/dropdownlist/es5-getting-started-cs2" %} - -## See Also - -* [How to bind the data](./data-binding) -* [How to initialize the control using different tags](./tags) \ No newline at end of file diff --git a/ej2-javascript/drop-down-list/resize.md b/ej2-javascript/drop-down-list/resize.md new file mode 100644 index 000000000..9cf115115 --- /dev/null +++ b/ej2-javascript/drop-down-list/resize.md @@ -0,0 +1,41 @@ +--- +layout: post +title: Resizing in ##Platform_Name## DropDownList control | Syncfusion +description: Learn here all about Popup Resizing in Syncfusion ##Platform_Name## DropDownList control of Syncfusion Essential JS 2 and more. +platform: ej2-javascript +control: Resizing +publishingplatform: ##Platform_Name## +documentation: ug +domainurl: ##DomainURL## +--- + +# Resizing ##Platform_Name## DropDownList control + +You can dynamically adjust the size of the popup in the Autocomplete component by using the [AllowResize](https://ej2.syncfusion.com/javascript/documentation/api/drop-down-list/#allowresizee) property. When enabled, users can resize the popup, improving visibility and control, with the resized dimensions being retained across sessions for a consistent user experience. + +{% if page.publishingplatform == "typescript" %} + + {% tabs %} +{% highlight ts tabtitle="index.ts" %} +{% include code-snippet/dropdownlist/basic-cs15/index.ts %} +{% endhighlight %} +{% highlight html tabtitle="index.html" %} +{% include code-snippet/dropdownlist/basic-cs15/index.html %} +{% endhighlight %} +{% endtabs %} + +{% elsif page.publishingplatform == "javascript" %} + +{% tabs %} +{% highlight js tabtitle="index.js" %} +{% include code-snippet/dropdownlist/basic-cs15/index.js %} +{% endhighlight %} +{% highlight html tabtitle="index.html" %} +{% include code-snippet/dropdownlist/basic-cs15/index.html %} +{% endhighlight %} +{% endtabs %} + + +{% endif %} + +![Resizing in DropDownList Component](../images/dropdownlist-resize.gif) diff --git a/ej2-javascript/drop-down-list/ts/getting-started.md b/ej2-javascript/drop-down-list/ts/getting-started.md index bb3dfde05..ee1184aeb 100644 --- a/ej2-javascript/drop-down-list/ts/getting-started.md +++ b/ej2-javascript/drop-down-list/ts/getting-started.md @@ -11,9 +11,7 @@ domainurl: ##DomainURL## # Getting started in ##Platform_Name## Drop down list control -This section explains how to create a simple **DropDownList** component and configure its available functionalities in TypeScript using the Essential JS 2 [quickstart](https://github.com/SyncfusionExamples/ej2-quickstart-webpack-) seed repository. - -> This application is integrated with the `webpack.config.js` configuration and uses the latest version of the [webpack-cli](https://webpack.js.org/api/cli/#commands). It requires node `v14.15.0` or higher. For more information about webpack and its features, refer to the [webpack documentation](https://webpack.js.org/guides/getting-started/). +This section explains how to create a simple **DropDownList** component and configure its available functionalities in TypeScript using the Essential JS 2 [quickstart](https://github.com/syncfusion/ej2-quickstart.git) seed repository. ## Dependencies @@ -30,58 +28,17 @@ The following list of dependencies are required to use the DropDownList componen |-- @syncfusion/ej2-buttons ``` -## Set up development environment - -Open the command prompt from the required directory, and run the following command to clone the Syncfusion JavaScript (Essential JS 2) quickstart project from [GitHub](https://github.com/SyncfusionExamples/ej2-quickstart-webpack-). - -{% tabs %} -{% highlight bash tabtitle="CMD" %} - -git clone https://github.com/SyncfusionExamples/ej2-quickstart-webpack- ej2-quickstart - -{% endhighlight %} -{% endtabs %} - -After cloning the application in the `ej2-quickstart` folder, run the following command line to navigate to the `ej2-quickstart` folder. - -{% tabs %} -{% highlight bash tabtitle="CMD" %} - -cd ej2-quickstart - -{% endhighlight %} -{% endtabs %} +## Set up of the development environment -## Add Syncfusion JavaScript packages - -Syncfusion JavaScript (Essential JS 2) packages are available on the [npmjs.com](https://www.npmjs.com/~syncfusionorg) public registry. You can install all Syncfusion JavaScript (Essential JS 2) controls in a single [@syncfusion/ej2](https://www.npmjs.com/package/@syncfusion/ej2) package or individual packages for each control. - -The quickstart application is preconfigured with the dependent [@syncfusion/ej2](https://www.npmjs.com/package/@syncfusion/ej2) package in the `~/package.json` file. Use the following command to install the dependent npm packages from the command prompt. - -{% tabs %} -{% highlight bash tabtitle="NPM" %} +To get started with the DropDownList component, you have to clone the Essential JS 2 [`quickstart`](https://github.com/syncfusion/ej2-quickstart.git) project and install the npm packages by using the following commands. +``` +git clone https://github.com/syncfusion/ej2-quickstart.git quickstart +cd quickstart npm install +``` -{% endhighlight %} -{% endtabs %} - -## Import the Syncfusion CSS styles - -To render DropDownList component, need to import dropdowns and its dependent components styles as given below in the `~/src/styles/styles.css` file, as shown below: - -{% tabs %} -{% highlight css tabtitle="style.css" %} - -@import '../../node_modules/@syncfusion/ej2-base/styles/material.css'; -@import '../../node_modules/@syncfusion/ej2-buttons/styles/material.css'; -@import '../../node_modules/@syncfusion/ej2-inputs/styles/material.css'; -@import '../../node_modules/@syncfusion/ej2-popups/styles/material.css'; -@import '../../node_modules/@syncfusion/ej2-lists/styles/material.css'; -@import '../../node_modules/@syncfusion/ej2-dropdowns/styles/material.css'; - -{% endhighlight %} -{% endtabs %} +>The [project](https://github.com/syncfusion/ej2-quickstart.git) is preconfigured with common settings (`src/styles/styles.css`, `system.config.js` ) to start all the Essential JS 2 components. ## Initialize the DropDownList @@ -91,9 +48,7 @@ Add the HTML input element that needs to be initialized as a DropDownList in `in `[src/index.html]` -{% tabs %} -{% highlight html tabtitle="index.html" %} - +```html @@ -104,6 +59,13 @@ Add the HTML input element that needs to be initialized as a DropDownList in `in + + + + + + + @@ -115,16 +77,13 @@ Add the HTML input element that needs to be initialized as a DropDownList in `in - -{% endhighlight %} -{% endtabs %} +``` Now, import the DropDownList component to your `app.ts` and initialize it to the element `#ddlelement` as shown below. `[src/app/app.ts]` -{% tabs %} -{% highlight ts tabtitle="app.ts" %} +```ts import { DropDownList } from '@syncfusion/ej2-dropdowns'; @@ -134,16 +93,13 @@ let dropDownListObject: DropDownList = new DropDownList(); // render initialized DropDownList dropDownListObject.appendTo('#ddlelement'); -{% endhighlight %} -{% endtabs %} +``` ## Binding data source After initialization, populate the DropDownList with data using the [dataSource](https://ej2.syncfusion.com/documentation/api/drop-down-list#datasource)  property. Here, an array of string values is passed to the DropDownList component. -{% tabs %} -{% highlight ts tabtitle="app.ts" %} - +```ts import { DropDownList } from '@syncfusion/ej2-dropdowns'; // define the array of data @@ -157,21 +113,15 @@ let dropDownListObject: DropDownList = new DropDownList({ // render initialized DropDownList dropDownListObject.appendTo('#ddlelement'); - -{% endhighlight %} -{% endtabs %} +``` ## Run the application After completing the configuration required to render a basic DropDownList, run the following command to display the output in your default browser. -{% tabs %} -{% highlight bash tabtitle="NPM" %} - +``` npm run start - -{% endhighlight %} -{% endtabs %} +``` The following example illustrates the output in your browser. diff --git a/ej2-javascript/drop-down-list/value-binding.md b/ej2-javascript/drop-down-list/value-binding.md deleted file mode 100644 index 46ebd768b..000000000 --- a/ej2-javascript/drop-down-list/value-binding.md +++ /dev/null @@ -1,89 +0,0 @@ ---- -layout: post -title: Value binding in ##Platform_Name## DropDown List control | Syncfusion -description: Learn here all about Value binding in Syncfusion ##Platform_Name## DropDown List control of Syncfusion Essential JS 2 and more. -platform: ej2-javascript -control: Value binding -publishingplatform: ##Platform_Name## -documentation: ug -domainurl: ##DomainURL## ---- - -# Value binding in DropDownList - -Value binding in the DropDown List control allows you to associate data values with each list item. This facilitates managing and retrieving selected values efficiently. The DropDown List component provides flexibility in binding both primitive data types and complex objects. - -## Primitive Data Types - -The DropDown List control provides flexible binding capabilities for primitive data types like strings and numbers. You can effortlessly bind local primitive data arrays, fetch and bind data from remote sources, and even custom data binding to suit specific requirements. Bind the value of primitive data to the [value](../api/drop-down-list/#value) property of the DropDown List. - -Primitive data types include: - -* String -* Number -* Boolean -* Null - -The following sample shows the example for preselect values for primitive data type - -{% if page.publishingplatform == "typescript" %} - - {% tabs %} -{% highlight ts tabtitle="index.ts" %} -{% include code-snippet/dropdownlist/primitive/index.ts %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/dropdownlist/primitive/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/dropdownlist/primitive" %} - -{% elsif page.publishingplatform == "javascript" %} - -{% tabs %} -{% highlight js tabtitle="index.js" %} -{% include code-snippet/dropdownlist/primitive/index.js %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/dropdownlist/primitive/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/dropdownlist/primitive" %} -{% endif %} - -## Object Data Types - -In the DropDown List control, object binding allows you to bind to a dataset of objects. When [`allowObjectBinding`](../api/drop-down-list/#allowobjectbinding) is enabled, the value of the control will be an object of the same type as the selected item in the [value](../api/drop-down-list/#value) property. This feature seamlessly binds arrays of objects, whether sourced locally, retrieved from remote endpoints, or customized to suit specific application needs. - -The following sample shows the example for preselect values for object data type - -{% if page.publishingplatform == "typescript" %} - - {% tabs %} -{% highlight ts tabtitle="index.ts" %} -{% include code-snippet/dropdownlist/objectvalue/index.ts %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/dropdownlist/objectvalue/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/dropdownlist/objectvalue" %} - -{% elsif page.publishingplatform == "javascript" %} - -{% tabs %} -{% highlight js tabtitle="index.js" %} -{% include code-snippet/dropdownlist/objectvalue/index.js %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/dropdownlist/objectvalue/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/dropdownlist/objectvalue" %} -{% endif %} - -> Since the `value` property supports object data types, it's necessary to provide the appropriate type wherever the `value` property is utilized. \ No newline at end of file diff --git a/ej2-javascript/drop-down-list/virtual-scroll.md b/ej2-javascript/drop-down-list/virtual-scroll.md index 0b8c50147..f2d54c2e2 100644 --- a/ej2-javascript/drop-down-list/virtual-scroll.md +++ b/ej2-javascript/drop-down-list/virtual-scroll.md @@ -11,21 +11,7 @@ domainurl: ##DomainURL## # Virtualization in DropDown List -Dropdown list virtualization is a technique used to efficiently render extensive lists of items while minimizing the impact on performance. This method is particularly advantageous when dealing with large datasets because it ensures that only a fixed number of DOM (Document Object Model) elements are created. When scrolling through the list, existing DOM elements are reused to display relevant data instead of generating new elements for each item. This recycling process is managed internally. - -During virtual scrolling, the data retrieved from the data source depends on the popup height and the calculation of the list item height. Enabling the [enableVirtualization](../api/drop-down-list/#enableVirtualization) option in a dropdown list activates this virtualization technique. - -When fetching data from the data source, the [actionBegin](../api/drop-down-list/#actionbegin) event is triggered before data retrieval begins. Then, the [actionComplete](../api/drop-down-list/#actioncomplete) event is triggered once the data is successfully fetched. - -Furthermore, Incremental Search is supported with virtualization in the DropDownList component. When a key is typed, the focus is moved to the respective element, and the value is updated in the component in the open popup state. In the closed popup state, the respective value is updated in the component based on the typed key. The Incremental Search functionality is well-suited for scenarios involving remote data binding. - -When the enableVirtualization property is enabled, the `skip` and `take` properties provided by the user within the Query class at the initial state or during the `actionBegin` or `actionComplete` events will not be considered, since it is internally managed and calculated based on certain dimensions with respect to the popup height. - -## Binding local data - -The DropDownList can generate its list items through an array of complex data. For this, the appropriate columns should be mapped to the [fields](../api/drop-down-list/#fields) property. When using virtual scrolling, the list updates based on the scroll offset value, triggering a request to fetch more data from the server. As the data is being fetched, the `actionBegin` event occurs before the data retrieval starts. Once the data retrieval is successful, the `actionComplete` event is triggered, indicating that the data fetch process is complete. - -In the following example, `id` column and `text` column from complex data have been mapped to the `value` field and `text` field, respectively. +Dropdown list virtualization is a technique used to efficiently render long lists of items in a user interface while minimizing the impact on performance. It's particularly useful when dealing with large datasets, as it ensures that only a fixed number of DOM (Document Object Model) elements are created and displayed in the dropdown list component. As the user scrolls through the list, the existing DOM elements are reused to display the relevant data, rather than creating new elements for each item. Enabling the [`enableVirtualization`](../api/drop-down-list/#enableVirtualization) option in a dropdown list activates this virtualization technique, significantly enhancing the list's performance and user experience, especially when handling large datasets. {% if page.publishingplatform == "typescript" %} @@ -54,133 +40,23 @@ In the following example, `id` column and `text` column from complex data have b {% previewsample "page.domainurl/code-snippet/dropdownlist/virtual-scroll" %} {% endif %} +## Keyboard interaction -## Binding Remote data - -The DropDownList supports the retrieval of data from remote data services with the help of the `DataManager` component, triggering the `actionBegin` and `actionComplete` events, and then updating the list data. During virtual scrolling, additional data is retrieved from the server, triggering the `actionBegin` and `actionComplete` events at that time as well. - -The following sample displays the OrderId from the `Orders` Data Service. - -{% if page.publishingplatform == "typescript" %} - - {% tabs %} -{% highlight ts tabtitle="index.ts" %} -{% include code-snippet/dropdownlist/virtual-scroll-remote/index.ts %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/dropdownlist/virtual-scroll-remote/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/dropdownlist/virtual-scroll-remote" %} - -{% elsif page.publishingplatform == "javascript" %} - -{% tabs %} -{% highlight js tabtitle="index.js" %} -{% include code-snippet/dropdownlist/virtual-scroll-remote/index.js %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/dropdownlist/virtual-scroll-remote/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/dropdownlist/virtual-scroll-remote" %} -{% endif %} - -## Customizing items count in virtualization - -When the `enableVirtualization` property is enabled, the `take` property provided by the user within the Query parameter at the initial state or during the `actionBegin` event will be considered. Internally, it calculates the items that fit onto the current page (i.e., probably twice the amount of the popup's height). If the user-provided take value is less than the minimum number of items that fit into the popup, the user-provided take value will not be considered. - -The following sample shows the example for Customizing items count in virtualization. - -{% if page.publishingplatform == "typescript" %} - - {% tabs %} -{% highlight ts tabtitle="index.ts" %} -{% include code-snippet/dropdownlist/virtual-scroll-items/index.ts %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/dropdownlist/virtual-scroll-items/index.html %} -{% endhighlight %} -{% endtabs %} - -{% elsif page.publishingplatform == "javascript" %} - -{% tabs %} -{% highlight js tabtitle="index.js" %} -{% include code-snippet/dropdownlist/virtual-scroll-items/index.js %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/dropdownlist/virtual-scroll-items/index.html %} -{% endhighlight %} -{% endtabs %} - -{% endif %} - - -## Grouping with Virtualization - -The DropDownList component supports grouping with Virtualization. It allows you to organize elements into groups based on different categories. Each item in the list can be classified using the [groupBy](../api/drop-down-list/#fields) field in the data table. After grouping, virtualization works similarly to local data binding, providing a seamless user experience. When the data source is bound to remote data, an initial request is made to retrieve all data for the purpose of grouping. Subsequently, the grouped data works in the same way as local data binding on virtualization. - -The following sample shows the example for Grouping with Virtualization. - -{% if page.publishingplatform == "typescript" %} - - {% tabs %} -{% highlight ts tabtitle="index.ts" %} -{% include code-snippet/dropdownlist/virtual-scroll-group/index.ts %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/dropdownlist/virtual-scroll-group/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/dropdownlist/virtual-scroll-group" %} - -{% elsif page.publishingplatform == "javascript" %} - -{% tabs %} -{% highlight js tabtitle="index.js" %} -{% include code-snippet/dropdownlist/virtual-scroll-group/index.js %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/dropdownlist/virtual-scroll-group/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/dropdownlist/virtual-scroll-group" %} -{% endif %} - -## Filtering with Virtualization - -The DropDownList component supports Filtering with Virtualization. The DropDownList includes a built-in feature that enables data filtering when the [`allowFiltering`](../api/drop-down-list/#allowfiltering) option is enabled. In the context of Virtual Scrolling, the filtering process operates in response to the typed characters. Specifically, the DropDownList sends a request to the server, utilizing the full data source, to achieve filtering. Before initiating the request, an action event is triggered. Upon successful retrieval of data from the server, an action complete event is triggered. The initial data is loaded when the popup is opened. Whether the filter list has a selection or not, the popup closes. +Users can navigate through the scrollable content using keyboard actions. This feature loads the next or next set of items based on the key inputs in the popup. -The following sample shows the example for Filtering with Virtualization. - -{% if page.publishingplatform == "typescript" %} - - {% tabs %} -{% highlight ts tabtitle="index.ts" %} -{% include code-snippet/dropdownlist/virtual-scroll-filter/index.ts %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/dropdownlist/virtual-scroll-filter/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/dropdownlist/virtual-scroll-filter" %} +| Key | Action | +|-----|-----| +| `ArrowDown` | Loads the next virtual list item if the selection is present in last item of the current page. Additionally, when holding the key, further virtual list items are loaded in the popup. | +| `ArrowUp` | Loads the previous virtual list item if the selection is present in first item of the current page. Additionally, when holding the key, further virtual list items are loaded in the popup. | +| `PageDown` | Loads the next page and selects the last item in it. Additionally, when holding the key, further virtual list items are loaded in the popup. | +| `PageUp` | Loads the previous page and selects the first item in it. Additionally, when holding the key, further virtual list items are loaded in the popup. | +| `Home` | Loads the initial set of items and selects first item in it. | +| `End` | Loads the last set of items and selects last item in it. | -{% elsif page.publishingplatform == "javascript" %} +## Limitation of virtualization -{% tabs %} -{% highlight js tabtitle="index.js" %} -{% include code-snippet/dropdownlist/virtual-scroll-filter/index.js %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/dropdownlist/virtual-scroll-filter/index.html %} -{% endhighlight %} -{% endtabs %} +* Virtualization is not supported in the grouping feature. +* Selected Value may or may not be present in the current view port. +* Once filtered, close the popup. Then open the popup with the initially loaded items. +* Virtualization does not work when the popup is closed, and a keyboard action is performed. -{% previewsample "page.domainurl/code-snippet/dropdownlist/virtual-scroll-filter" %} -{% endif %} diff --git a/ej2-javascript/drop-down-tree/accessibility.md b/ej2-javascript/drop-down-tree/accessibility.md index 94ebb5d1b..deaadf414 100644 --- a/ej2-javascript/drop-down-tree/accessibility.md +++ b/ej2-javascript/drop-down-tree/accessibility.md @@ -1,7 +1,7 @@ --- layout: post -title: Accessibility in ##Platform_Name## Dropdown Tree component control | Syncfusion -description: Learn here all about Accessibility in Syncfusion ##Platform_Name## Dropdown Tree component of Syncfusion Essential JS 2 and more. +title: Accessibility in ##Platform_Name## Dropdown Tree control | Syncfusion +description: Learn here all about Accessibility in Syncfusion ##Platform_Name## Dropdown Tree control of Syncfusion Essential JS 2 and more. platform: ej2-javascript control: Accessibility publishingplatform: ##Platform_Name## @@ -9,64 +9,29 @@ documentation: ug domainurl: ##DomainURL## --- -# Accessibility in ##Platform_Name## Dropdown Tree component +# Accessibility in ##Platform_Name## Dropdown Tree control -The Dropdown Tree component followed the accessibility guidelines and standards, including [ADA](https://www.ada.gov/), [Section 508](https://www.section508.gov/), [WCAG 2.2](https://www.w3.org/TR/WCAG22/) standards, and [WCAG roles](https://www.w3.org/TR/wai-aria/#roles) that are commonly used to evaluate accessibility. +The Dropdown Tree control is designed with `WAI-ARIA` specifications in mind, implementing WAI-ARIA roles, states, and properties along with `keyboard support`. This control features full keyboard interaction support and ARIA accessibility that enhances usability for users of assistive technologies (AT) and those who rely entirely on keyboard navigation. -The accessibility compliance for the Dropdown Tree component is outlined below. +## ARIA attributes -| Accessibility Criteria | Compatibility | -| -- | -- | -| [WCAG 2.2](https://www.w3.org/TR/WCAG22/) Support | Intermediate | -| [Section 508](https://www.section508.gov/) Support | Intermediate | -| Screen Reader Support | Yes | -| Right-To-Left Support | Yes | -| Color Contrast | Yes | -| Mobile Device Support | Yes | -| Keyboard Navigation Support | Yes | -| [Accessibility Checker](https://www.npmjs.com/package/accessibility-checker) Validation | Intermediate | -| [Axe-core](https://www.npmjs.com/package/axe-core) Accessibility Validation | Yes | +The Dropdown Tree control uses the `listbox` role. Each parent tree item in the popup has the `group` role, and each item in the popup uses the `treeitem` role. The following ARIA attributes are utilized in the Dropdown Tree control: - -
          Yes - All features of the component meet the requirement.
          - -
          Intermediate - Some features of the component do not meet the requirement.
          - -
          No - The component does not meet the requirement.
          - -## WAI-ARIA attributes - -The Dropdown Tree component followed the [WAI-ARIA](https://www.w3.org/WAI/ARIA/apg/patterns/listbox/) patterns to meet the accessibility. The following ARIA attributes are used in the Dropdown Tree component: - -| Attributes | Purpose | +| **Properties** | **Functionalities** | | --- | --- | -| `role=listbox` | All list items are contained within the element. | -| `aria-disabled` | Indicates element is perceivable but disabled. | -| `aria-owns` | This attribute contains the ID of the popup list to indicate popup as a child element. | -| `aria-haspopup` | Indicates whether the Dropdown Tree input element has a popup list or not. | -| `aria-expanded` | Indicates the state of the popup list for Dropdown Tree and the parent node's expansion status for TreeView. | -| `aria-activedescendent` | This attribute holds the ID of the active list item to focus its descendant child element. | -| `aria-labelledby` | This attribute points to the element(s) labeling the element it's applied to. | -| `aria-decribedby` | This attribute points to the element(s) describing the one it's set on. | -| `role=tree` | All tree nodes are contained within the element. | -| `role=treeitem`| Specifies the role of each tree node in a selectable TreeView and its containment within the tree. | -| `role=group` | Specifies the role of each parent node container in the TreeView. | -| `role=checkbox` | Indicates checkbox control along with treeitem element. | -| `aria-multiselectable` | Indicates whether the TreeView enables multiple selection or not. | -| `aria-selected` | Indicates the selected node. | -| `aria-level` | Indicates the level of node in TreeView. | -| `aria-checked` | Indicates the current checked state of TreeView checkbox. | -| `aria-label` | Indicates the contextual message for the TreeView checkbox and Dropdown Tree. | -| `aria-activedescendant` | Identifies the currently active element when focusing on the TreeView. | +| aria-haspopup | Indicates whether the Dropdown Tree input element has a popup list or not. | +| aria-expanded | Indicates whether the popup list is expanded or not. | +| aria-selected | Indicates the selected option. | +| aria-readonly | Indicates the read only state of the Dropdown Tree element. | +| aria-disabled | Indicates whether the Dropdown Tree control is in the disabled state or not. | +| aria-activedescendent | This attribute holds the ID of the active list item to focus its descendant child element. | +| aria-owns | This attribute contains the ID of the popup list to indicate popup as a child element. | ## Keyboard interaction -The Dropdown Tree component followed the [keyboard interaction](https://www.w3.org/WAI/ARIA/apg/patterns/listbox/#keyboardinteraction) guideline, making it easy for people who use assistive technologies (AT) and those who completely rely on keyboard navigation. The following keyboard shortcuts are supported by the Dropdown Tree component. +The Dropdown Tree functionalities can be interactive when keyboard shortcuts are used. + +The Dropdown Tree supports the following keyboard shortcuts: | Interaction Keys | Description | |------|---------| @@ -75,21 +40,9 @@ The Dropdown Tree component followed the [keyboard interaction](https://www.w3.o | Esc(Escape) | Closes the popup when it is in an open state. | | Arrow Up | Goes to the previous item in the popup. | | Arrow Down | Goes to the next item in the popup. | -| Arrow Right | Expands the current item in the popup. | +| Arrow Right | Expands the current item. | | Arrow Left | Collapses the current item in the popup. | | Home | Goes to the first item in the popup. | | End | Goes to the last item in the popup. | | Enter | Selects the focused item in the popup. | -| Space | Checks the current item in the popup. | - -## Ensuring accessibility - -The Dropdown Tree component's accessibility levels are ensured through an [accessibility-checker](https://www.npmjs.com/package/accessibility-checker) and [axe-core](https://www.npmjs.com/package/axe-core) software tools during automated testing. - -The accessibility compliance of the Dropdown Tree component is shown in the following sample. Open the [sample](https://ej2.syncfusion.com/accessibility/drop-down-tree.html) in a new window to evaluate the accessibility of the Dropdown Tree component with accessibility tools. - -{% previewsample "page.domainurl/code-snippet/dropdowntree/accessibility-cs1" %} - -## See also - -* [Accessibility in Syncfusion ##Platform_Name## components](../common/accessibility) +| Space | Checks the current item in the popup. | \ No newline at end of file diff --git a/ej2-javascript/drop-down-tree/checkbox.md b/ej2-javascript/drop-down-tree/checkbox.md index 017f98955..b38209f49 100644 --- a/ej2-javascript/drop-down-tree/checkbox.md +++ b/ej2-javascript/drop-down-tree/checkbox.md @@ -1,7 +1,7 @@ --- layout: post -title: Checkbox in ##Platform_Name## Drop down tree control | Syncfusion -description: Learn here all about Checkbox in Syncfusion ##Platform_Name## Drop down tree control of Syncfusion Essential JS 2 and more. +title: Checkbox in ##Platform_Name## Dropdown Tree Control | Syncfusion +description: Learn here all about Checkbox in Syncfusion ##Platform_Name## Dropdown Tree control of Syncfusion Essential JS 2 and more. platform: ej2-javascript control: Checkbox publishingplatform: ##Platform_Name## @@ -9,9 +9,9 @@ documentation: ug domainurl: ##DomainURL## --- -# Checkbox in ##Platform_Name## Drop down tree control +# Checkbox in ##Platform_Name## Dropdown Tree control -The Dropdown Tree control allows you to check more than one item from the tree without affecting the UI's appearance by enabling the `showCheckBox` property. When this property is enabled, checkbox appears before each item text in the popup. +The Dropdown Tree control allows you to check multiple items from the tree without affecting the UI's appearance by enabling the `showCheckBox` property. When this property is enabled, a checkbox appears before each item text in the popup. In the following example, the `showCheckBox` property is enabled. @@ -24,8 +24,11 @@ In the following example, the `showCheckBox` property is enabled. {% highlight html tabtitle="index.html" %} {% include code-snippet/dropdowntree/checkboxes-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="styles.css" %} +{% include code-snippet/dropdowntree/checkboxes-cs1/styles.css %} +{% endhighlight %} {% endtabs %} - + {% previewsample "page.domainurl/code-snippet/dropdowntree/checkboxes-cs1" %} {% elsif page.publishingplatform == "javascript" %} @@ -37,34 +40,40 @@ In the following example, the `showCheckBox` property is enabled. {% highlight html tabtitle="index.html" %} {% include code-snippet/dropdowntree/checkboxes-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="styles.css" %} +{% include code-snippet/dropdowntree/checkboxes-cs1/styles.css %} +{% endhighlight %} {% endtabs %} - + {% previewsample "page.domainurl/code-snippet/dropdowntree/checkboxes-cs1" %} {% endif %} ## Auto Check -By default, the checkbox state of the parent and child items in the Dropdown Tree will not be dependent over each other. If you need dependent checked state, then enable the `autoCheck` property which is a member of `treeSettings` property. +By default, the checkbox state of the parent and child items in the Dropdown Tree control will not depend on each other. If dependent checkbox states are needed, enable the `autoCheck` property which is a member of the `treeSettings` property. -* If one or more child items are not in the checked state, then the parent item will be in the intermediate state. +* If one or more child items are not checked, the parent item will be in an intermediate state. -* If all the child items are checked, then the parent item will also be in the checked state. +* If all the child items are checked, the parent item will also be checked. -* If a parent item is checked, then all the child items will also be changed to the checked state. +* If a parent item is checked, all the child items will also be checked. In the following example, the `autoCheck` property is enabled. {% if page.publishingplatform == "typescript" %} - {% tabs %} +{% tabs %} {% highlight ts tabtitle="index.ts" %} {% include code-snippet/dropdowntree/auto-check-cs1/index.ts %} {% endhighlight %} {% highlight html tabtitle="index.html" %} {% include code-snippet/dropdowntree/auto-check-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="styles.css" %} +{% include code-snippet/dropdowntree/auto-check-cs1/styles.css %} +{% endhighlight %} {% endtabs %} - + {% previewsample "page.domainurl/code-snippet/dropdowntree/auto-check-cs1" %} {% elsif page.publishingplatform == "javascript" %} @@ -76,6 +85,9 @@ In the following example, the `autoCheck` property is enabled. {% highlight html tabtitle="index.html" %} {% include code-snippet/dropdowntree/auto-check-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="styles.css" %} +{% include code-snippet/dropdowntree/auto-check-cs1/styles.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/dropdowntree/auto-check-cs1" %} @@ -83,23 +95,26 @@ In the following example, the `autoCheck` property is enabled. ## Select All -The Dropdown Tree control has in-built support to select all the tree items using Select All options in the header. +The Dropdown Tree control has built-in support to select all tree items using the Select All option in the header. When the `showSelectAll` property is set to true, a checkbox will be displayed in the popup header that allows you to select or deselect all the tree items in the popup. -By default, `Select All` and `unSelect All` text values will be showcased along with the checkbox in the popup header to indicate the action to be performed on checking or unchecking the checkbox. You can customize these name attributes by using `selectAllText` and `unSelectAllText` properties respectively. +By default, `Select All` and `Unselect All` text values will be showcased along with the checkbox in the popup header to indicate the action to be performed on checking or unchecking the checkbox. You can customize these text attributes using the `selectAllText` and `unSelectAllText` properties, respectively. {% if page.publishingplatform == "typescript" %} - {% tabs %} +{% tabs %} {% highlight ts tabtitle="index.ts" %} {% include code-snippet/dropdowntree/selectall-cs1/index.ts %} {% endhighlight %} {% highlight html tabtitle="index.html" %} {% include code-snippet/dropdowntree/selectall-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="styles.css" %} +{% include code-snippet/dropdowntree/selectall-cs1/styles.css %} +{% endhighlight %} {% endtabs %} - + {% previewsample "page.domainurl/code-snippet/dropdowntree/selectall-cs1" %} {% elsif page.publishingplatform == "javascript" %} @@ -111,6 +126,9 @@ By default, `Select All` and `unSelect All` text values will be showcased along {% highlight html tabtitle="index.html" %} {% include code-snippet/dropdowntree/selectall-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="styles.css" %} +{% include code-snippet/dropdowntree/selectall-cs1/styles.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/dropdowntree/selectall-cs1" %} diff --git a/ej2-javascript/drop-down-tree/data-binding.md b/ej2-javascript/drop-down-tree/data-binding.md index 473a4d1b6..0a0da68c7 100644 --- a/ej2-javascript/drop-down-tree/data-binding.md +++ b/ej2-javascript/drop-down-tree/data-binding.md @@ -1,25 +1,25 @@ --- layout: post -title: Data binding in ##Platform_Name## Drop down tree control | Syncfusion -description: Learn here all about Data binding in Syncfusion ##Platform_Name## Drop down tree control of Syncfusion Essential JS 2 and more. +title: Data Binding in ##Platform_Name## Dropdown Tree control | Syncfusion +description: Learn here all about Data binding in Syncfusion ##Platform_Name## Dropdown Tree control of Syncfusion Essential JS 2 and more. platform: ej2-javascript -control: Data binding +control: Data binding publishingplatform: ##Platform_Name## documentation: ug domainurl: ##DomainURL## --- -# Data binding in ##Platform_Name## Drop down tree control +# Data Binding in ##Platform_Name## Dropdown Tree control -The Dropdown Tree control provides an option to load the data either from local data sources or from remote data services. This can be done through `dataSource` property that is a member of the `fields` property. The `dataSource` property supports array of JavaScript objects and `DataManager`. It also supports different kinds of data services such as OData, OData V4, Web API, URL, and JSON with the help of `DataManager` adaptors. +The Dropdown Tree control provides an option to load data either from local data sources or remote data services. This can be done through the `dataSource` property, which is a member of the `fields` property. The `dataSource` property supports an array of JavaScript objects and `DataManager`. It also supports different kinds of data services such as OData, OData V4, Web API, URL, and JSON with the help of `DataManager` adaptors. -Dropdown Tree has `load on demand` (Lazy load) option. It reduces the bandwidth size when consuming the huge data. By default, the `loadOnDemand` is set to false. By enabling this property, it loads first level items initially, and when parent item is expanded, loads the child items based on the `parentValue/child` member. +The Dropdown Tree has a `load on demand` (Lazy load) option. It reduces the bandwidth size when consuming large amounts of data. By default, `loadOnDemand` is set to false. When this property is enabled, it loads first-level items initially, and when a parent item is expanded, it loads the child items based on the `parentValue/child` member. ## Local data To bind local data to the Dropdown Tree, you can assign a JavaScript object array to the `dataSource` property. -The Dropdown Tree control requires three fields (Value, text, and parentValue) to render local data source. When mapper fields are not specified, it takes the default values as the mapping fields. Local data source can also be provided as an instance of the `DataManager`. It supports two kinds of local data binding methods. +The Dropdown Tree control requires three fields (value, text, and parentValue) to render a local data source. When mapper fields are not specified, it takes the default values as the mapping fields. A local data source can also be provided as an instance of the `DataManager`. It supports two kinds of local data binding methods: * Hierarchical data @@ -27,7 +27,7 @@ The Dropdown Tree control requires three fields (Value, text, and parentValue) t ### Hierarchical data -Dropdown Tree can be populated with the hierarchical data source that contains nested array of JSON objects. You can directly map the hierarchical data and the field members with corresponding key values from the hierarchical data to the `fields` property. +Dropdown Tree can be populated with a hierarchical data source that contains a nested array of JSON objects. You can directly map the hierarchical data and field members with corresponding key values from the hierarchical data to the `fields` property. In the following example, **code**, **name**, and **countries** columns from the hierarchical data have been mapped to **value**, **text**, and **child** fields, respectively. @@ -40,6 +40,9 @@ In the following example, **code**, **name**, and **countries** columns from the {% highlight html tabtitle="index.html" %} {% include code-snippet/dropdowntree/data-binding/hierarchical-data-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="styles.css" %} +{% include code-snippet/dropdowntree/data-binding/hierarchical-data-cs1/styles.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/dropdowntree/data-binding/hierarchical-data-cs1" %} @@ -53,6 +56,9 @@ In the following example, **code**, **name**, and **countries** columns from the {% highlight html tabtitle="index.html" %} {% include code-snippet/dropdowntree/data-binding/hierarchical-data-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="styles.css" %} +{% include code-snippet/dropdowntree/data-binding/hierarchical-data-cs1/styles.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/dropdowntree/data-binding/hierarchical-data-cs1" %} @@ -64,7 +70,7 @@ Dropdown Tree can be populated from the self-referential data structure that con You can directly assign the self-referential data and map all the field members with corresponding key values from self-referential data to the `fields` property. -To render the root level items, specify the parentValue as null or no need to specify the parentValue in the dataSource. +To render root-level items, specify the parentValue as null or do not specify the parentValue in the dataSource. In the following example, **id**, **pid**, **hasChild**, and **name** columns from self-referential data have been mapped to **value**, **parentValue**, **hasChildren**, and **text** fields, respectively. @@ -77,6 +83,9 @@ In the following example, **id**, **pid**, **hasChild**, and **name** columns fr {% highlight html tabtitle="index.html" %} {% include code-snippet/dropdowntree/data-binding/self-referential-data-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="styles.css" %} +{% include code-snippet/dropdowntree/data-binding/self-referential-data-cs1/styles.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/dropdowntree/data-binding/self-referential-data-cs1" %} @@ -90,6 +99,9 @@ In the following example, **id**, **pid**, **hasChild**, and **name** columns fr {% highlight html tabtitle="index.html" %} {% include code-snippet/dropdowntree/data-binding/self-referential-data-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="styles.css" %} +{% include code-snippet/dropdowntree/data-binding/self-referential-data-cs1/styles.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/dropdowntree/data-binding/self-referential-data-cs1" %} @@ -101,9 +113,9 @@ Dropdown Tree can also be populated from a remote data service with the help of It supports different kinds of data services such as OData, OData V4, Web API, URL, and JSON with the help of `DataManager` adaptors. -You can assign service data as an instance of `DataManager` to the `dataSource`. To interact with remote data source, you must provide the endpoint `url`. +You can assign service data as an instance of `DataManager` to the `dataSource`. To interact with the remote data source, you must provide the endpoint `url`. -The `DataManager` that acts as an interface between the service endpoint and the Dropdown Tree requires the following information to interact with service endpoint properly. +The `DataManager` that acts as an interface between the service endpoint and the Dropdown Tree requires the following information to interact with the service endpoint properly: * `DataManager->url`: Defines the service endpoint to fetch data. @@ -135,6 +147,9 @@ The **OrderID**, **EmployeeID**, and **ShipName** columns from the orders table {% highlight html tabtitle="index.html" %} {% include code-snippet/dropdowntree/data-binding/remote-data-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="styles.css" %} +{% include code-snippet/dropdowntree/data-binding/remote-data-cs1/styles.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/dropdowntree/data-binding/remote-data-cs1" %} @@ -148,6 +163,9 @@ The **OrderID**, **EmployeeID**, and **ShipName** columns from the orders table {% highlight html tabtitle="index.html" %} {% include code-snippet/dropdowntree/data-binding/remote-data-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="styles.css" %} +{% include code-snippet/dropdowntree/data-binding/remote-data-cs1/styles.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/dropdowntree/data-binding/remote-data-cs1" %} @@ -155,9 +173,9 @@ The **OrderID**, **EmployeeID**, and **ShipName** columns from the orders table ## Prevent Node selection -You can prevent the selection of individual tree node by using the [selectable](https://ej2.syncfusion.com/documentation/api/drop-down-tree/fieldsModel/#selectable) property. The tree node selection is not allowed while disable this property. +You can prevent the selection of individual tree nodes by using the [selectable](https://ej2.syncfusion.com/documentation/api/drop-down-tree/fieldsModel/#selectable) property. Tree node selection is not allowed when this property is disabled. -The `selectable` property is disabled and the selection is prevented for parent nodes in below sample. +The `selectable` property is disabled, and the selection is prevented for parent nodes in the sample below. {% if page.publishingplatform == "typescript" %} @@ -168,6 +186,9 @@ The `selectable` property is disabled and the selection is prevented for parent {% highlight html tabtitle="index.html" %} {% include code-snippet/dropdowntree/data-binding/prevent-node-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="styles.css" %} +{% include code-snippet/dropdowntree/data-binding/prevent-node-cs1/styles.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/dropdowntree/data-binding/prevent-node-cs1" %} @@ -181,6 +202,9 @@ The `selectable` property is disabled and the selection is prevented for parent {% highlight html tabtitle="index.html" %} {% include code-snippet/dropdowntree/data-binding/prevent-node-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="styles.css" %} +{% include code-snippet/dropdowntree/data-binding/prevent-node-cs1/styles.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/dropdowntree/data-binding/prevent-node-cs1" %} diff --git a/ej2-javascript/drop-down-tree/js/es5-getting-started.md b/ej2-javascript/drop-down-tree/js/es5-getting-started.md index 615fb73fe..2ed641594 100644 --- a/ej2-javascript/drop-down-tree/js/es5-getting-started.md +++ b/ej2-javascript/drop-down-tree/js/es5-getting-started.md @@ -1,15 +1,15 @@ --- layout: post -title: Es5 getting started with ##Platform_Name## Drop down tree control | Syncfusion -description: Checkout and learn about Es5 getting started with ##Platform_Name## Drop down tree control of Syncfusion Essential JS 2 and more details. +title: Es5 getting started with ##Platform_Name## Dropdown Tree control | Syncfusion +description: Checkout and learn about Es5 getting started with ##Platform_Name## Dropdown Tree control of Syncfusion Essential JS 2 and more details. platform: ej2-javascript -control: Es5 getting started +control: Es5 getting started publishingplatform: ##Platform_Name## documentation: ug domainurl: ##DomainURL## --- -# Es5 getting started in ##Platform_Name## Drop down tree control +# Es5 getting started in ##Platform_Name## Dropdown Tree control The Essential JS 2 for JavaScript (global script) is an ES5 formatted pure JavaScript framework that can be directly used in the latest web browsers. @@ -42,21 +42,15 @@ The Essential JS 2 JavaScript controls can be initialized by using either of the **Step 2:** You can get the global scripts and styles from the [Essential Studio JavaScript (Essential JS 2)](https://www.syncfusion.com/downloads/essential-js2/confirm) build installed location. **Syntax:** -> Script: `**(installed location)**\Syncfusion\Essential Studio\JavaScript - EJ2\{RELEASE_VERSION}\Web (Essential JS 2)\JavaScript\{PACKAGE_NAME}\dist\global\{PACKAGE_NAME}.min.js` +> Script: `**(installed location)**/Syncfusion/Essential Studio/{RELEASE_VERSION}/Essential JS 2/{PACKAGE_NAME}/dist/global/{PACKAGE_NAME}.min.js` > -> Styles: `**(installed location)**\Syncfusion\Essential Studio\JavaScript - EJ2\{RELEASE_VERSION}\Web (Essential JS 2)\JavaScript\{PACKAGE_NAME}\styles\material.css` +> Styles: `**(installed location)**/Syncfusion/Essential Studio/{RELEASE_VERSION}/Essential JS 2/{PACKAGE_NAME}/styles/material.css` **Example:** -> Script: `C:\Program Files (x86)\Syncfusion\Essential Studio\JavaScript - EJ2\16.3.0.17\Web (Essential JS 2)\JavaScript\ej2-dropdowns\dist\global\ej2-dropdowns.min.js` +> Script: `C:/Program Files (x86)/Syncfusion/Essential Studio/15.4.30/Essential JS 2/ej2-dropdowns/dist/global/ej2-dropdowns.min.js` > -> Styles: `C:\Program Files (x86)\Syncfusion\Essential Studio\JavaScript - EJ2\16.3.0.17\Web (Essential JS 2)\JavaScript\ej2-dropdowns\styles\material.css` - -The below located script and style file contains all Syncfusion JavaScript (ES5) UI control resources in a single file. - -> Scripts: `**(installed location)**\Syncfusion\Essential Studio\JavaScript - EJ2\{RELEASE_VERSION}\Web (Essential JS 2)\JavaScript\ej2\dist\ej2.min.js` -> -> Styles: `**(installed location)**\Syncfusion\Essential Studio\JavaScript - EJ2\{RELEASE_VERSION}\Web (Essential JS 2)\JavaScript\ej2\material.css` +> Styles: `C:/Program Files (x86)/Syncfusion/Essential Studio/15.4.30/Essential JS 2/ej2-dropdowns/styles/material.css` **Step 3:** Create a folder `myapp/resources` and copy or paste the global scripts and styles from the above installed location to the `myapp/resources` location. @@ -157,7 +151,7 @@ The below located script and style file contains all Syncfusion JavaScript (ES5) Essential JS 2 - + @@ -204,4 +198,4 @@ The Dropdown Tree control can load the data either from local data sources or re {% endhighlight %} {% endtabs %} -{% previewsample "page.domainurl/code-snippet/dropdowntree/es5-getting-started-cs1" %} +{% previewsample "page.domainurl/code-snippet/dropdowntree/es5-getting-started-cs1" %} \ No newline at end of file diff --git a/ej2-javascript/drop-down-tree/localization.md b/ej2-javascript/drop-down-tree/localization.md index bca956d4a..15cf70af4 100644 --- a/ej2-javascript/drop-down-tree/localization.md +++ b/ej2-javascript/drop-down-tree/localization.md @@ -1,7 +1,7 @@ --- layout: post -title: Localization in ##Platform_Name## Drop down tree control | Syncfusion -description: Learn here all about Localization in Syncfusion ##Platform_Name## Drop down tree control of Syncfusion Essential JS 2 and more. +title: Localization in ##Platform_Name## Dropdown Tree control | Syncfusion +description: Learn here all about Localization in Syncfusion ##Platform_Name## Dropdown Tree control of Syncfusion Essential JS 2 and more. platform: ej2-javascript control: Localization publishingplatform: ##Platform_Name## @@ -9,9 +9,9 @@ documentation: ug domainurl: ##DomainURL## --- -# Localization in ##Platform_Name## Drop down tree control +# Localization in ##Platform_Name## Dropdown Tree control -The [`Localization`](../common/localization/) library allows you to localize default text content of the Dropdown Tree and it can be localized to any culture by defining the texts and messages of the Dropdown Tree in the corresponding culture. The default locale of the Dropdown Tree is `en` (English). The following table represents the default texts and messages of the Dropdown Tree in `en` culture. +The [`Localization`](../common/localization/) library allows you to localize the default text content of the Dropdown Tree control. It can be localized to any culture by defining the texts and messages of the Dropdown Tree in the corresponding culture. The default locale of the Dropdown Tree control is `en` (English). The following table represents the default texts and messages of the Dropdown Tree in the `en` culture. |KEY|Text/Message| |----|----| diff --git a/ej2-javascript/drop-down-tree/templates.md b/ej2-javascript/drop-down-tree/templates.md index 1b39eeca5..1746f5229 100644 --- a/ej2-javascript/drop-down-tree/templates.md +++ b/ej2-javascript/drop-down-tree/templates.md @@ -1,7 +1,7 @@ --- layout: post -title: Templates in ##Platform_Name## Drop down tree control | Syncfusion -description: Learn here all about Templates in Syncfusion ##Platform_Name## Drop down tree control of Syncfusion Essential JS 2 and more. +title: Templates in ##Platform_Name## Dropdown Tree Control | Syncfusion +description: Learn here all about Templates in Syncfusion ##Platform_Name## Dropdown Tree control of Syncfusion Essential JS 2 and more. platform: ej2-javascript control: Templates publishingplatform: ##Platform_Name## @@ -9,15 +9,15 @@ documentation: ug domainurl: ##DomainURL## --- -# Templates in ##Platform_Name## Drop down tree control +# Templates in ##Platform_Name## Dropdown Tree Control -The Dropdown Tree provides support to customize each list item, header, and footer elements. It uses the Essential JS 2 [Template engine](../../common/template-engine) to compile and render the elements properly. +The Dropdown Tree control provides support to customize each list item, header, and footer elements. It uses the Essential JS 2 [Template engine](../common/template-engine) to compile and render the elements properly. ## Item template -The content of each list item within the Dropdown Tree can be customized with the help of [itemTemplate](../api/drop-down-tree#itemtemplate) property. +The content of each list item within the Dropdown Tree control can be customized using the [itemTemplate](../api/drop-down-tree#itemtemplate) property. -In the following sample, the Dropdown Tree list items are customized with employee information such as **name** and **job** using the **itemTemplate** property. +In the following sample, Dropdown Tree list items are customized with employee information such as **name** and **job** using the **itemTemplate** property. The template expression should be provided inside the ${...} interpolation syntax. @@ -31,7 +31,7 @@ The template expression should be provided inside the ${...} interpolation synta {% include code-snippet/dropdowntree/item-template-cs1/index.html %} {% endhighlight %} {% endtabs %} - + {% previewsample "page.domainurl/code-snippet/dropdowntree/item-template-cs1" %} {% elsif page.publishingplatform == "javascript" %} @@ -44,48 +44,15 @@ The template expression should be provided inside the ${...} interpolation synta {% include code-snippet/dropdowntree/item-template-cs1/index.html %} {% endhighlight %} {% endtabs %} - + {% previewsample "page.domainurl/code-snippet/dropdowntree/item-template-cs1" %} {% endif %} -## Value template - -The currently selected value that is displayed by default on the Dropdown Tree input element can be customized using the [valueTemplate](https://ej2.syncfusion.com/documentation/api/drop-down-tree/#valuetemplate) property. - -In the following sample, the selected value is displayed as a combined text of both `Name` and `Job` in the Dropdown Tree input, which is separated by a hyphen. - -{% if page.publishingplatform == "typescript" %} - -{% tabs %} -{% highlight ts tabtitle="index.ts" %} -{% include code-snippet/dropdowntree/value-template-cs1/index.ts %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/dropdowntree/value-template-cs1/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/dropdowntree/value-template-cs1" %} - -{% elsif page.publishingplatform == "javascript" %} - -{% tabs %} -{% highlight js tabtitle="index.js" %} -{% include code-snippet/dropdowntree/value-template-cs1/index.js %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/dropdowntree/value-template-cs1/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/dropdowntree/value-template-cs1" %} -{% endif %} - ## Header template -The header element is shown statically at the top of the popup list items within the Dropdown Tree. A custom element can be placed as a header element using the [headerTemplate](../api/drop-down-tree/#headertemplate) property. +The header element is statically shown at the top of the popup list items within the Dropdown Tree control. A custom element can be placed as a header element using the [headerTemplate](../api/drop-down-tree/#headertemplate) property. -In the following sample, the header is customized with the custom element. +In the following sample, the header is customized using a custom element. {% if page.publishingplatform == "typescript" %} @@ -97,7 +64,7 @@ In the following sample, the header is customized with the custom element. {% include code-snippet/dropdowntree/header-template-cs1/index.html %} {% endhighlight %} {% endtabs %} - + {% previewsample "page.domainurl/code-snippet/dropdowntree/header-template-cs1" %} {% elsif page.publishingplatform == "javascript" %} @@ -110,15 +77,15 @@ In the following sample, the header is customized with the custom element. {% include code-snippet/dropdowntree/header-template-cs1/index.html %} {% endhighlight %} {% endtabs %} - + {% previewsample "page.domainurl/code-snippet/dropdowntree/header-template-cs1" %} {% endif %} ## Footer template -The Dropdown Tree has options to show a footer element at the bottom of the list items in the popup list. Here, you can place any custom element as a footer element using the [footerTemplate](../api/drop-down-tree/#footertemplate) property. +The Dropdown Tree control has options to display a footer element at the bottom of the list items in the popup list. A custom element can be placed as a footer element using the [footerTemplate](../api/drop-down-tree/#footertemplate) property. -In the following sample, the footer element displays the total number of employees present in the Dropdown Tree. +In the following sample, the footer element displays the total number of employees present in the Dropdown Tree control. {% if page.publishingplatform == "typescript" %} @@ -130,7 +97,7 @@ In the following sample, the footer element displays the total number of employe {% include code-snippet/dropdowntree/footer-template-cs1/index.html %} {% endhighlight %} {% endtabs %} - + {% previewsample "page.domainurl/code-snippet/dropdowntree/footer-template-cs1" %} {% elsif page.publishingplatform == "javascript" %} @@ -147,15 +114,15 @@ In the following sample, the footer element displays the total number of employe {% previewsample "page.domainurl/code-snippet/dropdowntree/footer-template-cs1" %} {% endif %} -## No records template +## No Records template -The Dropdown Tree is supports to display custom design in the popup list content using the [noRecordsTemplate](../api/drop-down-tree/#norecordstemplate) property when no matches found on search. +The Dropdown Tree control can display custom designs in the popup list content using the [noRecordsTemplate](../api/drop-down-tree/#norecordstemplate) property when no matches are found during a search and datasource is empty. -In the following sample, popup list content displays the notification of no data available. +In the following sample, the popup list content displays a notification of no data available. {% if page.publishingplatform == "typescript" %} - {% tabs %} +{% tabs %} {% highlight ts tabtitle="index.ts" %} {% include code-snippet/dropdowntree/norecords-template-cs1/index.ts %} {% endhighlight %} @@ -163,7 +130,7 @@ In the following sample, popup list content displays the notification of no data {% include code-snippet/dropdowntree/norecords-template-cs1/index.html %} {% endhighlight %} {% endtabs %} - + {% previewsample "page.domainurl/code-snippet/dropdowntree/norecords-template-cs1" %} {% elsif page.publishingplatform == "javascript" %} @@ -182,13 +149,13 @@ In the following sample, popup list content displays the notification of no data ## Action failure template -The Dropdown Tree provides an option to custom design the popup list content using [actionFailureTemplate](../api/drop-down-tree/#actionfailuretemplate) property, when the data fetch request fails at the remote server. +The Dropdown Tree control provides an option to custom design the popup list content using the [actionFailureTemplate](../api/drop-down-tree/#actionfailuretemplate) property when the data fetch request fails at the remote server. -In the following sample, when the data fetch request fails, the Dropdown Tree displays the notification. +In the following sample, when the data fetch request fails, the Dropdown Tree control displays a notification. {% if page.publishingplatform == "typescript" %} - {% tabs %} +{% tabs %} {% highlight ts tabtitle="index.ts" %} {% include code-snippet/dropdowntree/actionfailure-template-cs1/index.ts %} {% endhighlight %} @@ -196,7 +163,7 @@ In the following sample, when the data fetch request fails, the Dropdown Tree di {% include code-snippet/dropdowntree/actionfailure-template-cs1/index.html %} {% endhighlight %} {% endtabs %} - + {% previewsample "page.domainurl/code-snippet/dropdowntree/actionfailure-template-cs1" %} {% elsif page.publishingplatform == "javascript" %} @@ -215,15 +182,15 @@ In the following sample, when the data fetch request fails, the Dropdown Tree di ## Custom template to show selected items in input -In Dropdown Tree, while selecting more than one items via checkbox or multi selection support, all the selected items will be displayed in the input. Instead of displaying all the selected item text, the custom template can be displayed by setting the the [mode](../api/drop-down-tree/#mode) property as ***Custom*** and [customTemplate](../api/drop-down-tree/#customTemplate) property. +In the Dropdown Tree control, while selecting more than one item via checkbox or multi-selection support, all the selected items will be displayed in the input. Instead of displaying all the selected item text, a custom template can be displayed by setting the [mode](../api/drop-down-tree/#mode) property as ***Custom*** and using the [customTemplate](../api/drop-down-tree/#customTemplate) property. -When the **mode** property is set as **Custom**, the Dropdown Tree displays the default template value **(${value.length} item(s) selected)** like **1 item(s) selected or 2 item(s) selected**. The default template can be customized by setting **customTemplate** property. +When the **mode** property is set as **Custom**, the Dropdown Tree control displays the default template value **(${value.length} item(s) selected)** like **1 item(s) selected or 2 item(s) selected**. The default template can be customized using the **customTemplate** property. -In the following sample, the Dropdown Tree is rendered with default value of the **customTemplate** property like “**1 item(s) selected or 2 item(s) selected**”. +In the following sample, the Dropdown Tree control is rendered with the default value of the **customTemplate** property like “**1 item(s) selected or 2 item(s) selected**”. {% if page.publishingplatform == "typescript" %} - {% tabs %} +{% tabs %} {% highlight ts tabtitle="index.ts" %} {% include code-snippet/dropdowntree/custom-template-mode-cs1/index.ts %} {% endhighlight %} @@ -231,7 +198,7 @@ In the following sample, the Dropdown Tree is rendered with default value of the {% include code-snippet/dropdowntree/custom-template-mode-cs1/index.html %} {% endhighlight %} {% endtabs %} - + {% previewsample "page.domainurl/code-snippet/dropdowntree/custom-template-mode-cs1" %} {% elsif page.publishingplatform == "javascript" %} @@ -248,11 +215,11 @@ In the following sample, the Dropdown Tree is rendered with default value of the {% previewsample "page.domainurl/code-snippet/dropdowntree/custom-template-mode-cs1" %} {% endif %} -In the following sample, the Dropdown Tree is rendered with custom value of the **customTemplate** property like **Selected items count: 2**. +In the following sample, the Dropdown Tree control is rendered with a custom value of the **customTemplate** property like **Selected items count: 2**. {% if page.publishingplatform == "typescript" %} - {% tabs %} +{% tabs %} {% highlight ts tabtitle="index.ts" %} {% include code-snippet/dropdowntree/custom-template-cs1/index.ts %} {% endhighlight %} @@ -260,7 +227,7 @@ In the following sample, the Dropdown Tree is rendered with custom value of the {% include code-snippet/dropdowntree/custom-template-cs1/index.html %} {% endhighlight %} {% endtabs %} - + {% previewsample "page.domainurl/code-snippet/dropdowntree/custom-template-cs1" %} {% elsif page.publishingplatform == "javascript" %} diff --git a/ej2-javascript/drop-down-tree/ts/getting-started.md b/ej2-javascript/drop-down-tree/ts/getting-started.md index 13e1ef5b5..09b74d25a 100644 --- a/ej2-javascript/drop-down-tree/ts/getting-started.md +++ b/ej2-javascript/drop-down-tree/ts/getting-started.md @@ -1,19 +1,17 @@ --- layout: post -title: Getting started with ##Platform_Name## Drop down tree control | Syncfusion -description: Checkout and learn about Getting started with ##Platform_Name## Drop down tree control of Syncfusion Essential JS 2 and more details. +title: Getting started with ##Platform_Name## Dropdown Tree control | Syncfusion +description: Checkout and learn about Getting started with ##Platform_Name## Dropdown Tree control of Syncfusion Essential JS 2 and more details. platform: ej2-javascript -control: Getting started +control: Getting started publishingplatform: ##Platform_Name## documentation: ug domainurl: ##DomainURL## --- -# Getting started in ##Platform_Name## Drop down tree control +# Getting started with ##Platform_Name## Dropdown Tree control -This section explains you about how to create a simple **Dropdown Tree** control and configure its available functionalities in TypeScript using the Essential JS 2 [quickstart](https://github.com/SyncfusionExamples/ej2-quickstart-webpack-). - -> This application is integrated with the `webpack.config.js` configuration and uses the latest version of the [webpack-cli](https://webpack.js.org/api/cli/#commands). It requires node `v14.15.0` or higher. For more information about webpack and its features, refer to the [webpack documentation](https://webpack.js.org/guides/getting-started/). +This section explains you about how to create a simple **Dropdown Tree** control and configure its available functionalities in TypeScript using the Essential JS 2 [quickstart](https://github.com/syncfusion/ej2-quickstart). ## Dependencies @@ -68,62 +66,56 @@ npm install ## Import the Syncfusion CSS styles -To render DropDownTree component, need to import dropdowns and its dependent components styles as given below in the `~/src/styles/styles.css` file, as shown below: +Combined CSS files are available in the Essential JS 2 package root folder. This can be referenced in the `~/src/styles/styles.css` file of your application using the following code. {% tabs %} {% highlight css tabtitle="style.css" %} @import '../../node_modules/@syncfusion/ej2-base/styles/material.css'; -@import '../../node_modules/@syncfusion/ej2-buttons/styles/material.css'; @import '../../node_modules/@syncfusion/ej2-navigations/styles/material.css'; @import '../../node_modules/@syncfusion/ej2-inputs/styles/material.css'; -@import '../../node_modules/@syncfusion/ej2-popups/styles/material.css'; -@import '../../node_modules/@syncfusion/ej2-lists/styles/material.css'; +@import '../../node_modules/@syncfusion/ej2-buttons/styles/material.css'; @import '../../node_modules/@syncfusion/ej2-dropdowns/styles/material.css'; {% endhighlight %} {% endtabs %} +> To refer individual control CSS, please refer to the [Individual control theme files](../appearance/theme/#referring-individual-control-theme) section. If you want to refer the combined control styles, please make use of our [`CRG`](https://crg.syncfusion.com/) (Custom Resource Generator) in your application. + ## Initialize the Dropdown Tree Add the HTML input element that needs to be initialized as a Dropdown Tree in `index.html`. `[src/index.html]` -{% tabs %} -{% highlight html tabtitle="index.html" %} - +```html - Essential JS 2 Dropdown Tree control +
          - +
          - +``` -{% endhighlight %} -{% endtabs %} - -Now, import the Dropdown Tree control to your `app.ts` and initialize it to the element `#ddltreeelement` as shown below. +Now, import the Dropdown Tree control to your `app.ts` and initialize it to the element `#ddTreeElement` as shown below. `[src/app/app.ts]` -{% tabs %} -{% highlight ts tabtitle="app.ts" %} +```ts import { DropDownTree } from '@syncfusion/ej2-dropdowns'; @@ -131,18 +123,15 @@ import { DropDownTree } from '@syncfusion/ej2-dropdowns'; let DropDownTreeObject: DropDownTree = new DropDownTree(); // render initialized Dropdown Tree -DropDownTreeObject.appendTo('#ddltreeelement'); +DropDownTreeObject.appendTo('#ddTreeElement'); -{% endhighlight %} -{% endtabs %} +``` ## Binding data source The Dropdown Tree control can load the data either from local data sources or remote data services. This can be done using the `dataSource` property that is a member of the `fields` property. The dataSource property supports array of JavaScript objects and DataManager. Here, an array of JSON values is passed to the Dropdown Tree control. -{% tabs %} -{% highlight ts tabtitle="app.ts" %} - +```ts import { DropDownTree } from '@syncfusion/ej2-dropdowns'; //define the array of JSON @@ -179,22 +168,16 @@ let DropDownTreeObject: DropDownTree = new DropDownTree({ }); // render initialized Dropdown Tree -DropDownTreeObject.appendTo('#ddltreeelement'); - -{% endhighlight %} -{% endtabs %} +DropDownTreeObject.appendTo('#ddTreeElement'); +``` ## Run the application After completing the configuration required to render a basic Dropdown Tree, run the following command to display the output in your default browser. -{% tabs %} -{% highlight bash tabtitle="NPM" %} - +``` npm run start - -{% endhighlight %} -{% endtabs %} +``` The following example explains the output in your browser. @@ -205,6 +188,9 @@ The following example explains the output in your browser. {% highlight html tabtitle="index.html" %} {% include code-snippet/dropdowntree/getting-started-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="styles.css" %} +{% include code-snippet/dropdowntree/getting-started-cs1/styles.css %} +{% endhighlight %} {% endtabs %} - -{% previewsample "page.domainurl/code-snippet/dropdowntree/getting-started-cs1" %} \ No newline at end of file + +{% previewsample "page.domainurl/code-snippet/dropdowntree/getting-started-cs1" %} diff --git a/ej2-javascript/file-manager/access-control.md b/ej2-javascript/file-manager/access-control.md index 85c863eaf..7490dc1c0 100644 --- a/ej2-javascript/file-manager/access-control.md +++ b/ej2-javascript/file-manager/access-control.md @@ -1,17 +1,17 @@ --- layout: post -title: Access control in ##Platform_Name## File manager control | Syncfusion -description: Learn here all about Access control in Syncfusion ##Platform_Name## File manager control of Syncfusion Essential JS 2 and more. +title: Access control in ##Platform_Name## File Manager control | Syncfusion +description: Learn here all about Access control in Syncfusion ##Platform_Name## File Manager control of Syncfusion Essential JS 2 and more. platform: ej2-javascript -control: Access control +control: Access control publishingplatform: ##Platform_Name## documentation: ug domainurl: ##DomainURL## --- -# Access control in ##Platform_Name## File manager control +# Access control in ##Platform_Name## File Manager control -The FileManager allows you to define access permissions for folders and files using a set of access rules to user(s). +The File Manager control allows you to define access permissions for folders and files using a set of access rules assigned to user(s). * [Access Rules](#access-rules) * [Permissions](#permissions) @@ -20,7 +20,7 @@ The FileManager allows you to define access permissions for folders and files us The FileAccessController allows you to define security permissions for folders and files using a set of folder or file access rules. -To set up access rules for folders (including their files and sub-folders) and individual files, use the SetRules() method in the controller. The following table represents the AccessRule properties available for file and folder: +To set up access rules for folders (including their files and sub-folders) and individual files, use the `SetRules()` method in the controller. The following table represents the AccessRule properties available for files and folders: | **Properties** | **Applicable for file** | **Applicable for folder** | **Description** | | --- | --- | --- | --- | @@ -60,14 +60,14 @@ The following syntax represent the access Rules for Default user using file or f ## Permissions -It helps to explain how to apply security permission to file manager file or folder using access rules. The following table represent the value that determines the permission. +It helps to explain how to apply security permission to File Manager file or folder using access rules. The following table represent the value that determines the permission. | **Value** | **Description** | | --- | ---| | Allow | Allows you to do read, write, copy, and download operations. | | Deny | Denies you to do read, write, copy, and download operations. | -Use the `Role` property to apply created roles to the file manager. After that, the file manager displays folder or file and allow permisssion based on assigned roles. +Use the `Role` property to apply created roles to the File Manager. After that, the File Manager displays folder or file and allow permisssion based on assigned roles. The following syntax represent how to apply permission based on assigned roles @@ -102,19 +102,22 @@ Permission denied for writing and uploading in root folder. new AccessRule { Path = "/", Role = "Document Manager", Read = Permission.Allow, Write = Permission.Deny, Copy = Permission.Deny, WriteContents = Permission.Deny, Upload = Permission.Deny, Download = Permission.Deny, IsFile = false }, ``` -The following example demonstrate the file manager rendered with access control support. +The following example demonstrate the File Manager rendered with access control support. {% if page.publishingplatform == "typescript" %} - {% tabs %} +{% tabs %} {% highlight ts tabtitle="index.ts" %} {% include code-snippet/file-manager/access-control-cs1/index.ts %} {% endhighlight %} {% highlight html tabtitle="index.html" %} {% include code-snippet/file-manager/access-control-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/file-manager/access-control-cs1/index.css %} +{% endhighlight %} {% endtabs %} - + {% previewsample "page.domainurl/code-snippet/file-manager/access-control-cs1" %} {% elsif page.publishingplatform == "javascript" %} @@ -126,6 +129,9 @@ The following example demonstrate the file manager rendered with access control {% highlight html tabtitle="index.html" %} {% include code-snippet/file-manager/access-control-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/file-manager/access-control-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/file-manager/access-control-cs1" %} diff --git a/ej2-javascript/file-manager/accessibility.md b/ej2-javascript/file-manager/accessibility.md index 26ab68676..d4d8e6104 100644 --- a/ej2-javascript/file-manager/accessibility.md +++ b/ej2-javascript/file-manager/accessibility.md @@ -1,7 +1,7 @@ --- layout: post -title: Accessibility in ##Platform_Name## File Manager component | Syncfusion -description: Learn here all about Accessibility in Syncfusion ##Platform_Name## File Manager component of Syncfusion Essential JS 2 and more. +title: Accessibility in ##Platform_Name## File Manager control | Syncfusion +description: Learn here all about Accessibility in Syncfusion ##Platform_Name## File Manager control of Syncfusion Essential JS 2 and more. platform: ej2-javascript control: Accessibility publishingplatform: ##Platform_Name## @@ -9,11 +9,11 @@ documentation: ug domainurl: ##DomainURL## --- -# Accessibility in ##Platform_Name## File Manager component +# Accessibility in ##Platform_Name## File Manager control -The File Manager component followed the accessibility guidelines and standards, including [ADA](https://www.ada.gov/), [Section 508](https://www.section508.gov/), [WCAG 2.2](https://www.w3.org/TR/WCAG22/) standards, and [WCAG roles](https://www.w3.org/TR/wai-aria/#roles) that are commonly used to evaluate accessibility. +The File Manager control followed the accessibility guidelines and standards, including [ADA](https://www.ada.gov/), [Section 508](https://www.section508.gov/), [WCAG 2.2](https://www.w3.org/TR/WCAG22/) standards, and [WCAG roles](https://www.w3.org/TR/wai-aria/#roles) that are commonly used to evaluate accessibility. -The accessibility compliance for the File Manager component is outlined below. +The accessibility compliance for the File Manager control is outlined below. | Accessibility Criteria | Compatibility | | -- | -- | @@ -33,20 +33,20 @@ The accessibility compliance for the File Manager component is outlined below. margin: 0.5em 0; } -
          Yes - All features of the component meet the requirement.
          +
          Yes - All features of the control meet the requirement.
          -
          Intermediate - Some features of the component do not meet the requirement.
          +
          Intermediate - Some features of the control do not meet the requirement.
          -
          No - The component does not meet the requirement.
          +
          No - The control does not meet the requirement.
          ## WAI-ARIA attributes -The File Manager component followed the [WAI-ARIA](https://www.w3.org/WAI/ARIA/apg/patterns) patterns to meet the accessibility. The following ARIA attributes are used in the File Manager component: +The File Manager control followed the [WAI-ARIA](https://www.w3.org/WAI/ARIA/apg/patterns) patterns to meet the accessibility. The following ARIA attributes are used in the File Manager control: | Attributes | Purpose | | --- | --- | | `role` | Used to convey a significant and contextual message to the user. | -| `aria-disabled` | Indicates whether the File Manager component is in disabled state.| +| `aria-disabled` | Indicates whether the File Manager control is in disabled state.| | `aria-haspopup` | Indicates whether the toolbar item has a popup list or not. | | `aria-orientation` | Indicates whether the File Manager element is oriented horizontally or vertically. | | `aria-expanded` | Indicates whether the Treeview node has been expanded. | @@ -71,7 +71,7 @@ The File Manager component followed the [WAI-ARIA](https://www.w3.org/WAI/ARIA/a ## Keyboard interaction -The File Manager component followed the `keyboard interaction` guidelines, making it easy for people who use assistive technologies (AT) and those who completely rely on keyboard navigation. The following keyboard shortcuts are supported by the File Manager component. +The File Manager control followed the `keyboard interaction` guidelines, making it easy for people who use assistive technologies (AT) and those who completely rely on keyboard navigation. The following keyboard shortcuts are supported by the File Manager control. | **Press** | **To do this** | | --- | --- | @@ -81,7 +81,7 @@ The File Manager component followed the `keyboard interaction` guidelines, makin | Tab | Focuses on the first element of toolbar and navigates through the next tab indexed element. | | Esc(Escape) | Closes the image when it is in open state. | | Alt+N | Creates a new folder dialog.| -| F5 | Refresh the file manager element. | +| F5 | Refresh the File Manager element. | | Home | Navigate through the first element of details view or large icons view. | | End | Navigate through the last element of details view or large icons view. | | Move Left | Scrolls left to the previous folder and select the first item when files are loaded | @@ -90,27 +90,27 @@ The File Manager component followed the `keyboard interaction` guidelines, makin | Shift+Right | Allows multiselection. Select the file or folder at the right of the previously selected folder. | | Shift+Left | Allows multiselection. Select the file or folder at the left of the previously selected folder. | | Shift+Down | Allows multiselection. Select the file or folder till the focused index. | -| Shift+Delete | Permanently deletes the selected file or folder in the file manager element. | -| Delete | Deletes the selected file or folder in the file manager element. | +| Shift+Delete | Permanently deletes the selected file or folder in the File Manager element. | +| Delete | Deletes the selected file or folder in the File Manager element. | | Shift+Up | Allows multiselection. Select the file or folder till the focused index. | -| Ctrl+C | Copies the selected file or folder in the file manager element. | -| Ctrl+V | Pastes the copied/cut file or folder in the file manager element. | -| Ctrl+X | Cuts the selected file or folder in the file manager element. | +| Ctrl+C | Copies the selected file or folder in the File Manager element. | +| Ctrl+V | Pastes the copied/cut file or folder in the File Manager element. | +| Ctrl+X | Cuts the selected file or folder in the File Manager element. | | Ctrl+A | Select all the files or folders in the details view or large icons view. | -| F2 | Creates a rename dialog for a selected file or folder in the file manager element. | -| Shift+F10 | Opens the context menu for the selected file or folder in the file manager element. | -| Ctrl+D | Downloads the list of selected files or folders in the file manager element. | -| Ctrl+Shift+1 | Changes the file manager layout to details view. | -| Ctrl+Shift+2 | Changes the file manager layout to large icons view. | +| F2 | Creates a rename dialog for a selected file or folder in the File Manager element. | +| Shift+F10 | Opens the context menu for the selected file or folder in the File Manager element. | +| Ctrl+D | Downloads the list of selected files or folders in the File Manager element. | +| Ctrl+Shift+1 | Changes the File Manager layout to details view. | +| Ctrl+Shift+2 | Changes the File Manager layout to large icons view. | ## Ensuring accessibility -The File Manager component's accessibility levels are ensured through an [accessibility-checker](https://www.npmjs.com/package/accessibility-checker) and [axe-core](https://www.npmjs.com/package/axe-core) software tools during automated testing. +The File Manager control's accessibility levels are ensured through an [accessibility-checker](https://www.npmjs.com/package/accessibility-checker) and [axe-core](https://www.npmjs.com/package/axe-core) software tools during automated testing. -The accessibility compliance of the File Manager component is shown in the following sample. Open the [sample](https://ej2.syncfusion.com/accessibility/file-manager.html) in a new window to evaluate the accessibility of the File Manager component with accessibility tools. +The accessibility compliance of the File Manager control is shown in the following sample. Open the [sample](https://ej2.syncfusion.com/accessibility/file-manager.html) in a new window to evaluate the accessibility of the File Manager control with accessibility tools. {% previewsample "https://ej2.syncfusion.com/accessibility/file-manager.html" %} ## See also -* [Accessibility in Syncfusion ##Platform_Name## components](../common/accessibility) +* [Accessibility in Syncfusion ##Platform_Name## controls](../common/accessibility) diff --git a/ej2-javascript/file-manager/customization.md b/ej2-javascript/file-manager/customization.md index c2015ba46..d69eb51d1 100644 --- a/ej2-javascript/file-manager/customization.md +++ b/ej2-javascript/file-manager/customization.md @@ -1,17 +1,17 @@ --- layout: post -title: Customization in ##Platform_Name## File manager control | Syncfusion -description: Learn here all about Customization in Syncfusion ##Platform_Name## File manager control of Syncfusion Essential JS 2 and more. +title: Customization in ##Platform_Name## File Manager control | Syncfusion +description: Learn here all about Customization in Syncfusion ##Platform_Name## File Manager control of Syncfusion Essential JS 2 and more. platform: ej2-javascript -control: Customization +control: Customization publishingplatform: ##Platform_Name## documentation: ug domainurl: ##DomainURL## --- -# Customization in ##Platform_Name## File manager control +# Customization in ##Platform_Name## File Manager control -The file manager component allows customizing its functionalities like, context menu, searching, uploading, toolbar using APIs. Given below are some of the functionalities that can be customized in the File Manager, +The File Manager control allows customizing its functionalities such as context menu, searching, uploading, and toolbar using APIs. Below are some functionalities that can be customized in the File Manager control: * [Context menu customization](#context-menu-customization) * [Details view customization](#details-view-customization) @@ -25,7 +25,7 @@ The file manager component allows customizing its functionalities like, context ## Context menu customization -The context menu settings like, items to be displayed on files, folders and layout click and visibility can be customized using [contextMenuSettings](../api/file-manager/#contextmenusettings) property. +The context menu settings such as items to be displayed on files, folders, layout click, and visibility can be customized using the [contextMenuSettings](../api/file-manager/#contextmenusettings) property. {% if page.publishingplatform == "typescript" %} @@ -36,8 +36,11 @@ The context menu settings like, items to be displayed on files, folders and layo {% highlight html tabtitle="index.html" %} {% include code-snippet/file-manager/contextmenu-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/file-manager/contextmenu-cs1/index.css %} +{% endhighlight %} {% endtabs %} - + {% previewsample "page.domainurl/code-snippet/file-manager/contextmenu-cs1" %} {% elsif page.publishingplatform == "javascript" %} @@ -49,15 +52,17 @@ The context menu settings like, items to be displayed on files, folders and layo {% highlight html tabtitle="index.html" %} {% include code-snippet/file-manager/contextmenu-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/file-manager/contextmenu-cs1/index.css %} +{% endhighlight %} {% endtabs %} - + {% previewsample "page.domainurl/code-snippet/file-manager/contextmenu-cs1" %} {% endif %} ## Details view customization -The details view settings like, column width, header text, template for each field can be customized using [detailsViewSettings](../api/file-manager/#detailsviewsettings) property. - +The details view settings such as column width, header text, template for each field can be customized using the [detailsViewSettings](../api/file-manager/#detailsviewsettings) property. {% if page.publishingplatform == "typescript" %} {% tabs %} @@ -67,8 +72,11 @@ The details view settings like, column width, header text, template for each fie {% highlight html tabtitle="index.html" %} {% include code-snippet/file-manager/detailsview-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/file-manager/detailsview-cs1/index.css %} +{% endhighlight %} {% endtabs %} - + {% previewsample "page.domainurl/code-snippet/file-manager/detailsview-cs1" %} {% elsif page.publishingplatform == "javascript" %} @@ -80,14 +88,17 @@ The details view settings like, column width, header text, template for each fie {% highlight html tabtitle="index.html" %} {% include code-snippet/file-manager/detailsview-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/file-manager/detailsview-cs1/index.css %} +{% endhighlight %} {% endtabs %} - + {% previewsample "page.domainurl/code-snippet/file-manager/detailsview-cs1" %} {% endif %} ## Navigation pane customization -The navigation pane settings like, minimum and maximum width and visibility can be customized using [navigationPaneSettings](../api/file-manager/#navigationpanesettings) property. +The navigation pane settings such as minimum and maximum width and visibility can be customized using the [navigationPaneSettings](../api/file-manager/#navigationpanesettings) property. {% if page.publishingplatform == "typescript" %} @@ -98,8 +109,11 @@ The navigation pane settings like, minimum and maximum width and visibility can {% highlight html tabtitle="index.html" %} {% include code-snippet/file-manager/navigationpane-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/file-manager/navigationpane-cs1/index.css %} +{% endhighlight %} {% endtabs %} - + {% previewsample "page.domainurl/code-snippet/file-manager/navigationpane-cs1" %} {% elsif page.publishingplatform == "javascript" %} @@ -111,26 +125,32 @@ The navigation pane settings like, minimum and maximum width and visibility can {% highlight html tabtitle="index.html" %} {% include code-snippet/file-manager/navigationpane-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/file-manager/navigationpane-cs1/index.css %} +{% endhighlight %} {% endtabs %} - + {% previewsample "page.domainurl/code-snippet/file-manager/navigationpane-cs1" %} {% endif %} ## Show/Hide file extension -The file extensions are displayed in the File Manager by default. This can be hidden by disabling the [showFileExtension](../api/file-manager/#showfileextension) property. +The file extensions are displayed in the File Manager control by default. This can be hidden by disabling the [showFileExtension](../api/file-manager/#showfileextension) property. -In File Manager [fileLoad](../api/file-manager/#fileload) and [fileOpen](../api/file-manager/#fileopen) events are triggered before the file/folder is rendered and before the file/folder is opened respectively. These events can be utilized to perform operations before a file/folder is rendered or opened. +In File Manager control, the [fileLoad](../api/file-manager/#fileload) and [fileOpen](../api/file-manager/#fileopen) events are triggered before the file/folder is rendered and before the file/folder is opened respectively. These events can be utilized to perform operations before a file/folder is rendered or opened. {% if page.publishingplatform == "typescript" %} - {% tabs %} +{% tabs %} {% highlight ts tabtitle="index.ts" %} {% include code-snippet/file-manager/fileextension-cs1/index.ts %} {% endhighlight %} {% highlight html tabtitle="index.html" %} {% include code-snippet/file-manager/fileextension-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/file-manager/fileextension-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/file-manager/fileextension-cs1" %} @@ -144,6 +164,9 @@ In File Manager [fileLoad](../api/file-manager/#fileload) and [fileOpen](../api/ {% highlight html tabtitle="index.html" %} {% include code-snippet/file-manager/fileextension-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/file-manager/fileextension-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/file-manager/fileextension-cs1" %} @@ -151,17 +174,20 @@ In File Manager [fileLoad](../api/file-manager/#fileload) and [fileOpen](../api/ ## Show/Hide hidden items -The File Manager provides support to show/hide the hidden items by enabling/disabling the [showHiddenItems](../api/file-manager/#showhiddenitems) property. +The File Manager control provides support to show/hide hidden items by enabling/disabling the [showHiddenItems](../api/file-manager/#showhiddenitems) property. {% if page.publishingplatform == "typescript" %} - {% tabs %} +{% tabs %} {% highlight ts tabtitle="index.ts" %} {% include code-snippet/file-manager/hiddenitems-cs1/index.ts %} {% endhighlight %} {% highlight html tabtitle="index.html" %} {% include code-snippet/file-manager/hiddenitems-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/file-manager/hiddenitems-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/file-manager/hiddenitems-cs1" %} @@ -175,6 +201,9 @@ The File Manager provides support to show/hide the hidden items by enabling/disa {% highlight html tabtitle="index.html" %} {% include code-snippet/file-manager/hiddenitems-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/file-manager/hiddenitems-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/file-manager/hiddenitems-cs1" %} @@ -182,17 +211,20 @@ The File Manager provides support to show/hide the hidden items by enabling/disa ## Show/Hide thumbnail images in large icons view -The thumbnail images are displayed in the File Manager's large icons view by default. This can be hidden by disabling the [showThumbnail](../api/file-manager/#showthumbnail) property. +The thumbnail images are displayed in the File Manager control's large icons view by default. This can be hidden by disabling the [showThumbnail](../api/file-manager/#showthumbnail) property. {% if page.publishingplatform == "typescript" %} - {% tabs %} +{% tabs %} {% highlight ts tabtitle="index.ts" %} {% include code-snippet/file-manager/disablethumbnail-cs1/index.ts %} {% endhighlight %} {% highlight html tabtitle="index.html" %} {% include code-snippet/file-manager/disablethumbnail-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/file-manager/disablethumbnail-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/file-manager/disablethumbnail-cs1" %} @@ -206,6 +238,9 @@ The thumbnail images are displayed in the File Manager's large icons view by def {% highlight html tabtitle="index.html" %} {% include code-snippet/file-manager/disablethumbnail-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/file-manager/disablethumbnail-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/file-manager/disablethumbnail-cs1" %} @@ -213,17 +248,20 @@ The thumbnail images are displayed in the File Manager's large icons view by def ## Toolbar customization -The toolbar settings like, items to be displayed in toolbar and visibility can be customized using [toolbarSettings](../api/file-manager/#toolbarsettings) property. +The toolbar settings such as items to be displayed in the toolbar and visibility can be customized using the [toolbarSettings](../api/file-manager/#toolbarsettings) property. {% if page.publishingplatform == "typescript" %} - {% tabs %} +{% tabs %} {% highlight ts tabtitle="index.ts" %} {% include code-snippet/file-manager/toolbar-cs1/index.ts %} {% endhighlight %} {% highlight html tabtitle="index.html" %} {% include code-snippet/file-manager/toolbar-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/file-manager/toolbar-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/file-manager/toolbar-cs1" %} @@ -237,6 +275,9 @@ The toolbar settings like, items to be displayed in toolbar and visibility can b {% highlight html tabtitle="index.html" %} {% include code-snippet/file-manager/toolbar-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/file-manager/toolbar-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/file-manager/toolbar-cs1" %} @@ -248,17 +289,20 @@ The toolbar settings like, items to be displayed in toolbar and visibility can b ## Upload customization -The upload settings like, minimum and maximum file size and enabling auto upload can be customized using [uploadSettings](../api/file-manager/#uploadsettings) property. +Upload settings such as minimum and maximum file size, and enabling auto upload can be customized using the [uploadSettings](../api/file-manager/#uploadsettings) property. {% if page.publishingplatform == "typescript" %} - {% tabs %} +{% tabs %} {% highlight ts tabtitle="index.ts" %} {% include code-snippet/file-manager/upload-cs1/index.ts %} {% endhighlight %} {% highlight html tabtitle="index.html" %} {% include code-snippet/file-manager/upload-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/file-manager/upload-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/file-manager/upload-cs1" %} @@ -272,6 +316,9 @@ The upload settings like, minimum and maximum file size and enabling auto upload {% highlight html tabtitle="index.html" %} {% include code-snippet/file-manager/upload-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/file-manager/upload-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/file-manager/upload-cs1" %} @@ -279,17 +326,20 @@ The upload settings like, minimum and maximum file size and enabling auto upload ## Tooltip customization -The tooltip value can be customized by adding extra content to the title of the toolbar, navigation pane, details view and large icons of the file manager element. +The tooltip value can be customized by adding extra content to the title of the toolbar, navigation pane, details view, and large icons of the File Manager control. {% if page.publishingplatform == "typescript" %} - {% tabs %} +{% tabs %} {% highlight ts tabtitle="index.ts" %} {% include code-snippet/file-manager/tooltip-cs1/index.ts %} {% endhighlight %} {% highlight html tabtitle="index.html" %} {% include code-snippet/file-manager/tooltip-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/file-manager/tooltip-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/file-manager/tooltip-cs1" %} @@ -303,6 +353,9 @@ The tooltip value can be customized by adding extra content to the title of the {% highlight html tabtitle="index.html" %} {% include code-snippet/file-manager/tooltip-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/file-manager/tooltip-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/file-manager/tooltip-cs1" %} diff --git a/ej2-javascript/file-manager/drag-and-drop.md b/ej2-javascript/file-manager/drag-and-drop.md index 8d6f0ecae..f7807e7dd 100644 --- a/ej2-javascript/file-manager/drag-and-drop.md +++ b/ej2-javascript/file-manager/drag-and-drop.md @@ -1,24 +1,24 @@ --- layout: post -title: Drag and drop in ##Platform_Name## File manager control | Syncfusion -description: Learn here all about Drag and drop in Syncfusion ##Platform_Name## File manager control of Syncfusion Essential JS 2 and more. +title: Drag and drop in ##Platform_Name## File Manager control | Syncfusion +description: Learn here all about Drag and drop in Syncfusion ##Platform_Name## File Manager control of Syncfusion Essential JS 2 and more. platform: ej2-javascript -control: Drag and drop +control: Drag and drop publishingplatform: ##Platform_Name## documentation: ug domainurl: ##DomainURL## --- -# Drag and drop in ##Platform_Name## File manager control +# Drag and drop in ##Platform_Name## File Manager control -The file manager allows files or folders to be moved from one folder to another by using the [allowDragAndDrop](../api/file-manager/#allowdraganddrop) property. It also supports uploading a file by dragging it from Windows Explorer to FileManager control. You can enable or disable this support by using the [allowDragAndDrop](../api/file-manager/#allowdraganddrop) property of file manager. +The File Manager allows files and folders to be moved within the file system by drag and dropping them, this support can be enabled or disabled using the [allowDragAndDrop](../api/file-manager/#allowdraganddrop) property of the File Manager. -The event triggered in drag and drop support are +The events triggered in drag and drop support are: -* [fileDragStart](../api/file-manager/#filedragstart) - Triggers when the file/folder dragging is started. -* [fileDragging](../api/file-manager/#filedragging) - Triggers while dragging the file/folder. -* [fileDragStop](../api/file-manager/#filedragstop) - Triggers when the file/folder is about to be dropped at the target. -* [fileDropped](../api/file-manager/#filedropped) - Triggers when the file/folder is dropped. +* [fileDragStart](../api/file-manager/#filedragstart) - Triggered when the file/folder dragging is started. +* [fileDragging](../api/file-manager/#filedragging) - Triggered while dragging the file/folder. +* [fileDragStop](../api/file-manager/#filedragstop) - Triggered when the file/folder is about to be dropped at the target. +* [fileDropped](../api/file-manager/#filedropped) - Triggered when the file/folder is dropped. {% if page.publishingplatform == "typescript" %} @@ -29,8 +29,11 @@ The event triggered in drag and drop support are {% highlight html tabtitle="index.html" %} {% include code-snippet/file-manager/drag-and-drop-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/file-manager/drag-and-drop-cs1/index.css %} +{% endhighlight %} {% endtabs %} - + {% previewsample "page.domainurl/code-snippet/file-manager/drag-and-drop-cs1" %} {% elsif page.publishingplatform == "javascript" %} @@ -42,6 +45,9 @@ The event triggered in drag and drop support are {% highlight html tabtitle="index.html" %} {% include code-snippet/file-manager/drag-and-drop-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/file-manager/drag-and-drop-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/file-manager/drag-and-drop-cs1" %} diff --git a/ej2-javascript/file-manager/file-operations.md b/ej2-javascript/file-manager/file-operations.md index bb366fec3..88245211e 100644 --- a/ej2-javascript/file-manager/file-operations.md +++ b/ej2-javascript/file-manager/file-operations.md @@ -1,7 +1,7 @@ --- layout: post -title: File operations in ##Platform_Name## File manager control | Syncfusion -description: Learn here all about File operations in Syncfusion ##Platform_Name## File manager control of Syncfusion Essential JS 2 and more. +title: File operations in ##Platform_Name## File Manager control | Syncfusion +description: Learn here all about File operations in Syncfusion ##Platform_Name## File Manager control of Syncfusion Essential JS 2 and more. platform: ej2-javascript control: File operations publishingplatform: ##Platform_Name## @@ -9,11 +9,11 @@ documentation: ug domainurl: ##DomainURL## --- -# File operations in ##Platform_Name## File manager control +# File operations in ##Platform_Name## File Manager control -The file manager component is used to browse, manage, and organize the files and folders in a file system through a web application. All basic file operations like creating a new folder, uploading and downloading of files in the file system, and deleting and renaming of existing files and folders are available in the file manager component. Additionally, previewing of image files is also provided in the file manager component. +The File Manager control is used to browse, manage, and organize the files and folders in a file system through a web application. All basic file operations like creating a new folder, uploading and downloading of files in the file system, and deleting and renaming of existing files and folders are available in the File Manager control. Additionally, previewing of image files is also provided in the File Manager control. -The following table represents the basic operations available in the file manager and their corresponding functions. +The following table represents the basic operations available in the File Manager and their corresponding functions. |Operation Name|Function| |----|----| @@ -28,11 +28,11 @@ The following table represents the basic operations available in the file manage |upload|Upload files to the current path or directory in the file system.| |download|Downloads the file from the server and the multiple files can be downloaded as ZIP files.| ->The *CreateFolder*, *Remove*, and *Rename* actions will be reflected in the file manager only after the successful response from the server. +>The *CreateFolder*, *Remove*, and *Rename* actions will be reflected in the File Manager only after the successful response from the server. ## Folder Upload support -To perform the directory(folder) upload in File Manager, set [directoryUpload](https://ej2.syncfusion.com/documentation/api/file-manager/uploadSettings/#directoryupload) as true within the uploadSettings property. The directory upload feature is supported for the following file service providers: +To perform the directory(folder) upload in File Manager, set [directoryUpload](../api/file-manager/uploadSettings/#directoryupload) as true within the uploadSettings property. The directory upload feature is supported for the following file service providers: * Physical file service provider. * Azure file service provider. * NodeJS file service provider. @@ -42,15 +42,18 @@ In the following example, directory upload is enabled/disabled on DropDownButton {% if page.publishingplatform == "typescript" %} - {% tabs %} +{% tabs %} {% highlight ts tabtitle="index.ts" %} {% include code-snippet/file-manager/directory-upload-cs1/index.ts %} {% endhighlight %} {% highlight html tabtitle="index.html" %} {% include code-snippet/file-manager/directory-upload-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/file-manager/directory-upload-cs1/index.css %} +{% endhighlight %} {% endtabs %} - + {% previewsample "page.domainurl/code-snippet/file-manager/directory-upload-cs1" %} {% elsif page.publishingplatform == "javascript" %} @@ -62,11 +65,13 @@ In the following example, directory upload is enabled/disabled on DropDownButton {% highlight html tabtitle="index.html" %} {% include code-snippet/file-manager/directory-upload-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/file-manager/directory-upload-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/file-manager/directory-upload-cs1" %} {% endif %} - ### Physical file service provider To achieve the directory upload in the physical file service provider, use the below code snippet in `IActionResult Upload` method in the `Controllers/FileManagerController.cs` file. @@ -229,7 +234,7 @@ Refer to the [GitHub](https://github.com/SyncfusionExamples/amazon-s3-aspcore-fi ## File operation request and response Parameters -The default parameters available in file operation request from the file manager and the corresponding response parameters required by the file manager are listed as follows. +The default parameters available in file operation request from the File Manager and the corresponding response parameters required by the File Manager are listed as follows. ### Read @@ -861,11 +866,11 @@ The following table represents the request parameters of *GetImage* operations. Return the image as a file stream in response. -The request from the file manager can be customized using the `beforeSend` event. Additional information can be passed to the file manager in file operation response and can be used in customization. +The request from the File Manager can be customized using the `beforeSend` event. Additional information can be passed to the File Manager in file operation response and can be used in customization. ## File request and response contents -The following table represents the contents of *data, cwd, and files* in the file manager request and response. +The following table represents the contents of *data, cwd, and files* in the File Manager request and response. |Parameter|Type|Default|Explanation| |----|----|----|----| @@ -878,7 +883,7 @@ The following table represents the contents of *data, cwd, and files* in the fil |size|Number|-|File size| |type|String|-|File extension| -The following table represents the contents of *error* in the file manager request and response. +The following table represents the contents of *error* in the File Manager request and response. |Parameter|Type|Default|Explanation| |----|----|----|----| @@ -886,7 +891,7 @@ The following table represents the contents of *error* in the file manager reque |message|String|-|Error message| |fileExists|String[]|-|List of duplicate file names| -The following table represents the contents of *details* in the file manager request and response. +The following table represents the contents of *details* in the File Manager request and response. |Parameter|Type|Default|Explanation| |----|----|----|----| @@ -902,7 +907,7 @@ The following table represents the contents of *details* in the file manager req ## Action Buttons -The file manager has several menu buttons to access the file operations. The list of menu buttons available in the file manager is given in the following table. +The File Manager has several menu buttons to access the file operations. The list of menu buttons available in the File Manager is given in the following table. |Menu Button|Behaviour| |----|----| diff --git a/ej2-javascript/file-manager/file-system-provider.md b/ej2-javascript/file-manager/file-system-provider.md index 20bba62f8..56fef88f2 100644 --- a/ej2-javascript/file-manager/file-system-provider.md +++ b/ej2-javascript/file-manager/file-system-provider.md @@ -1,7 +1,7 @@ --- layout: post -title: File system provider in ##Platform_Name## File manager control | Syncfusion -description: Learn here all about File system provider in Syncfusion ##Platform_Name## File manager control of Syncfusion Essential JS 2 and more. +title: File system provider in ##Platform_Name## File Manager control | Syncfusion +description: Learn here all about File system provider in Syncfusion ##Platform_Name## File Manager control of Syncfusion Essential JS 2 and more. platform: ej2-javascript control: File system provider publishingplatform: ##Platform_Name## @@ -9,11 +9,11 @@ documentation: ug domainurl: ##DomainURL## --- -# File system provider in ##Platform_Name## File manager control +# File system provider in ##Platform_Name## File Manager control -The file system provider allows the File Manager component to manage the files and folders in a physical or cloud-based file system. It provides the methods for performing various file actions like creating a new folder, copying and moving of files or folders, deleting, uploading, and downloading the files or folders in the file system. +The file system provider allows the File Manager control to manage the files and folders in a physical or cloud-based file system. It provides the methods for performing various file actions like creating a new folder, copying and moving of files or folders, deleting, uploading, and downloading the files or folders in the file system. -The following file providers are added in Syncfusion EJ2 File Manager component. +The following file providers are added in Syncfusion EJ2 File Manager control. * [ASP.NET Core file system provider](#aspnet-core-file-system-provider) * [ASP.NET MVC 5 file system provider](#aspnet-mvc-5-file-system-provider) @@ -43,7 +43,7 @@ cd ej2-aspcore-file-provider After cloning, just open the project in Visual Studio and restore the NuGet packages. Now, set the root directory of the physical file system in the FileManager controller. -After setting the root directory of the file system, just build and run the project. Now, the project will be hosted in `http://localhost:{port}` and just mapping the **ajaxSettings** property of the FileManager component to the appropriate controller methods allows to manage the files in the physical file system. +After setting the root directory of the file system, just build and run the project. Now, the project will be hosted in `http://localhost:{port}` and just mapping the **ajaxSettings** property of the File Manager control to the appropriate controller methods allows to manage the files in the physical file system. ```ts @@ -80,7 +80,7 @@ cd ej2-aspmvc-file-provider After cloning, just open the project in Visual Studio and restore the NuGet packages. Now, set the root directory of the physical file system in the FileManager controller using the Root Folder method. -After setting the root directory of the file system, just build and run the project. Now, the project will be hosted in `http://localhost:{port}` and just mapping the **ajaxSettings** property of the FileManager component to the appropriate controller methods allows to manage the files in the physical file system. +After setting the root directory of the file system, just build and run the project. Now, the project will be hosted in `http://localhost:{port}` and just mapping the **ajaxSettings** property of the File Manager control to the appropriate controller methods allows to manage the files in the physical file system. ```ts @@ -131,7 +131,7 @@ Then, set the blob container and the root blob directory by passing the correspo > **Note:** Also, assign the same *blobPath URL* and *filePath URL* in [**AzureFileOperations** and **AzureUpload**](https://github.com/SyncfusionExamples/azure-aspcore-file-provider/blob/master/Controllers/AzureProviderController.cs) methods in the FileManager controller to determine the original path of the Azure blob. -After setting the blob container references, just build and run the project. Now, the project will be hosted in `http://localhost:{port}` and just mapping the **ajaxSettings** property of the FileManager component to the appropriate controller methods allows to manage the Azure blob storage. +After setting the blob container references, just build and run the project. Now, the project will be hosted in `http://localhost:{port}` and just mapping the **ajaxSettings** property of the File Manager control to the appropriate controller methods allows to manage the Azure blob storage. ```ts @@ -192,7 +192,7 @@ Then, set the blob container and the root blob directory by passing the correspo > **Note:** Also, assign the same *blobPath URL* and *filePath URL* in [**AzureFileOperations** and **AzureUpload**](https://github.com/SyncfusionExamples/ej2-azure-aspmvc-file-provider/blob/master/Controllers/AzureProviderController.cs) methods in the FileManager controller to determine the original path of the Azure blob. -After setting the blob container references, just build and run the project. Now, the project will be hosted in `http://localhost:{port}` and just mapping the **ajaxSettings** property of the FileManager component to the appropriate controller methods allows to manage the Azure blob storage. +After setting the blob container references, just build and run the project. Now, the project will be hosted in `http://localhost:{port}` and just mapping the **ajaxSettings** property of the File Manager control to the appropriate controller methods allows to manage the Azure blob storage. ```ts @@ -235,7 +235,7 @@ After cloning, open the project in Visual Studio and restore the NuGet packages. ``` -After registering the Amazon client account details, just build and run the project. Now, the project will be hosted in `http://localhost:{port}` and just mapping the **ajaxSettings** property of the FileManager component to the appropriate controller methods allows to manage the Amazon ***S3*** (*Simple Storage Service*) bucket's objects storage. +After registering the Amazon client account details, just build and run the project. Now, the project will be hosted in `http://localhost:{port}` and just mapping the **ajaxSettings** property of the File Manager control to the appropriate controller methods allows to manage the Amazon ***S3*** (*Simple Storage Service*) bucket's objects storage. ```ts @@ -278,7 +278,7 @@ After cloning, open the project in Visual Studio and restore the NuGet packages. ``` -After registering the Amazon client account details, just build and run the project. Now, the project will be hosted in `http://localhost:{port}` and just mapping the **ajaxSettings** property of the FileManager component to the appropriate controller methods allows to manage the Amazon ***S3*** (*Simple Storage Service*) bucket's objects storage. +After registering the Amazon client account details, just build and run the project. Now, the project will be hosted in `http://localhost:{port}` and just mapping the **ajaxSettings** property of the File Manager control to the appropriate controller methods allows to manage the Amazon ***S3*** (*Simple Storage Service*) bucket's objects storage. ```ts @@ -351,7 +351,7 @@ To set up the SharePoint service provider, follow these steps: Replace "<--User Site Name-->", "<--User Drive ID-->", "tenantId", "clientId", and "clientSecret" with your actual values. -After configuring the SharePoint file provider, build and run the project. Now, the project will be hosted in `http://localhost:{port}` and just mapping the **ajaxSettings** property of the File Manager component to the appropriate controller methods allows to manage the files in the Microsoft SharePoint. +After configuring the SharePoint file provider, build and run the project. Now, the project will be hosted in `http://localhost:{port}` and just mapping the **ajaxSettings** property of the File Manager control to the appropriate controller methods allows to manage the files in the Microsoft SharePoint. ```typescript @@ -392,7 +392,7 @@ void SetFTPConnection(string hostName, string userName, string password) ``` -After registering the File Transfer Protocol details, just build and run the project. Now, the project will be hosted in `http://localhost:{port}` and just mapping the **ajaxSettings** property of the FileManager component to the appropriate controller methods allows to manage the FTP’s objects storage. +After registering the File Transfer Protocol details, just build and run the project. Now, the project will be hosted in `http://localhost:{port}` and just mapping the **ajaxSettings** property of the File Manager control to the appropriate controller methods allows to manage the FTP’s objects storage. ```ts @@ -453,7 +453,7 @@ void SetSQLConnection(string name, string tableName, string tableID) > Refer to this [FileManager.mdf](https://github.com/SyncfusionExamples/sql-server-database-aspcore-file-provider/blob/master/App_Data/FileManager.mdf), to learn about the pre-defined file system SQL database for the EJ2 File Manager. -After configuring the connection, just build and run the project. Now, the project will be hosted in `http://localhost:{port}` and just mapping the **ajaxSettings** property of the FileManager component to the appropriate controller methods allows to manage the files in the SQL database table. +After configuring the connection, just build and run the project. Now, the project will be hosted in `http://localhost:{port}` and just mapping the **ajaxSettings** property of the File Manager control to the appropriate controller methods allows to manage the files in the SQL database table. ```ts @@ -526,7 +526,7 @@ set PORT=3000 && node filesystem-server.js -d D:/Projects > **Note:** By default, the service will run `8090` port. -Now, just mapping the **ajaxSettings** property of the FileManager component to the appropriate file operation methods in the filesystem-server.js file will allows to manage the physical file system with Node file system provider. +Now, just mapping the **ajaxSettings** property of the File Manager control to the appropriate file operation methods in the filesystem-server.js file will allows to manage the physical file system with Node file system provider. ```ts @@ -569,7 +569,7 @@ After generating the client secret data, copy the JSON data to the following spe * GoogleOAuth2.0Base > credentials > client_secret.json -After updating the credentials, just build and run the project. Now, the project will be hosted in `http://localhost:{port}`, and it will ask to log on to the Gmail account created for the client secret credentials. Then, provide permission to access the Google Drive files by clicking the allow access button in the page. Now, just mapping the **ajaxSettings** property of the FileManager component to the appropriate controller methods will allows to manage the files from the Google Drive. +After updating the credentials, just build and run the project. Now, the project will be hosted in `http://localhost:{port}`, and it will ask to log on to the Gmail account created for the client secret credentials. Then, provide permission to access the Google Drive files by clicking the allow access button in the page. Now, just mapping the **ajaxSettings** property of the File Manager control to the appropriate controller methods will allows to manage the files from the Google Drive. ```ts @@ -651,7 +651,7 @@ Follow the given steps to generate the secret access key: ``` -Here, the `Files` denotes the `rootNode` and the subsequent object refers to the children of the root node. `rootNode` will be taken as the root folder of the file system loaded which will be loaded in File Manager component. +Here, the `Files` denotes the `rootNode` and the subsequent object refers to the children of the root node. `rootNode` will be taken as the root folder of the file system loaded which will be loaded in File Manager control. * To import a JSON file into the Firebase Realtime Database, navigate to the **Data** tab and click on the action icon shown in the accompanying image. From there, select the **Import JSON** option and upload the JSON file that was created using the code provided above. @@ -713,31 +713,24 @@ In the above code, * `hostingEnvironment.ContentRootPath + \\FirebaseRealtimeDBHelper\\access_key.json` denotes service account key path which has authentication key for the Firebase Realtime Database data. -After configuring the Firebase Realtime Database service link, build and run the project. Now, the project will be hosted in `http://localhost:{port}` and just mapping the **ajaxSettings** property of the File Manager component to the appropriate controller methods allows to manage the files in the Firebase Realtime Database. +After configuring the Firebase Realtime Database service link, build and run the project. Now, the project will be hosted in `http://localhost:{port}` and just mapping the **ajaxSettings** property of the File Manager control to the appropriate controller methods allows to manage the files in the Firebase Realtime Database. ```typescript -import { Component } from '@angular/core'; - -@Component({ - selector: 'app-root', - styleUrls: ['app/app.component.css'], - templateUrl: 'app/app.component.html' -}) -export class AppComponent { - public ajaxSettings: object; - public hostUrl: string = 'http://localhost:{port}/'; - public ngOnInit(): void { - // Initializing File Manager with Firebase Realtime Database service. - this.ajaxSettings = { - // Replace the hosted port number in the place of "{port}" - url = this.hostUrl + "api/FirebaseProvider/FirebaseRealtimeFileOperations", - downloadUrl = this.hostUrl + "api/FirebaseProvider/FirebaseRealtimeDownload", - uploadUrl = this.hostUrl + "api/FirebaseProvider/FirebaseRealtimeUpload", - getImageUrl = this.hostUrl + "api/FirebaseProvider/FirebaseRealtimeGetImage" - }; +let hostUrl = 'http://localhost:{port}/'; + +// Initializing File Manager ASP.NET Core service. +let filemanagerInstance: FileManager = new FileManager({ + ajaxSettings: { + // Replace the hosted port number in the place of "{port}" + url: hostUrl + "api/FirebaseProvider/FirebaseRealtimeFileOperations", + downloadUrl: hostUrl + "api/FirebaseProvider/FirebaseRealtimeDownload", + uploadUrl: hostUrl + "api/FirebaseProvider/FirebaseRealtimeUpload", + getImageUrl: hostUrl + "api/FirebaseProvider/FirebaseRealtimeGetImage" } -} +}); + +filemanagerInstance.appendTo('#filemanager'); ``` @@ -745,7 +738,7 @@ export class AppComponent { ## IBM Cloud Object Storage file provider -The IBM Cloud Object Storage file provider module allows you work with the IBM Cloud Object Storage. It also provides the methods for performing various file actions such as creating a new folder, renaming files, and deleting files. The IBM Cloud Object Storage file provider serves the file provider support for the File Manager component with the IBM Cloud Object Storage. We can make use of IBM Cloud Object Storage file provider by installing the [ej2-filemanager-ibm-cos-node-file-provider](https://www.npmjs.com/package/@syncfusion/ej2-filemanager-ibm-cos-node-file-provider) npm package or by cloning the [file provider](https://github.com/SyncfusionExamples/filemanager-ibm-cos-node-file-provider) from the GitHub. +The IBM Cloud Object Storage file provider module allows you work with the IBM Cloud Object Storage. It also provides the methods for performing various file actions such as creating a new folder, renaming files, and deleting files. The IBM Cloud Object Storage file provider serves the file provider support for the File Manager control with the IBM Cloud Object Storage. We can make use of IBM Cloud Object Storage file provider by installing the [ej2-filemanager-ibm-cos-node-file-provider](https://www.npmjs.com/package/@syncfusion/ej2-filemanager-ibm-cos-node-file-provider) npm package or by cloning the [file provider](https://github.com/SyncfusionExamples/filemanager-ibm-cos-node-file-provider) from the GitHub. ### Using ej2-filemanager-ibm-cos-node-file-provider npm package @@ -783,7 +776,7 @@ set PORT=3000 && node index.js > **Note:** By default, the service will run `8090` port. -Now, just mapping the **ajaxSettings** property of the FileManager component to the appropriate file operation methods in the index.js file will allow to manage the IBM Cloud Object Storage. +Now, just mapping the **ajaxSettings** property of the File Manager control to the appropriate file operation methods in the index.js file will allow to manage the IBM Cloud Object Storage. ```ts diff --git a/ej2-javascript/file-manager/flat-data.md b/ej2-javascript/file-manager/flat-data.md index d361f7678..83c27a3fb 100644 --- a/ej2-javascript/file-manager/flat-data.md +++ b/ej2-javascript/file-manager/flat-data.md @@ -1,7 +1,7 @@ --- layout: post -title: FlatData in ##Platform_Name## File manager control | Syncfusion -description: Learn here all about FlatData in Syncfusion ##Platform_Name## File manager control of Syncfusion Essential JS 2 and more. +title: FlatData in ##Platform_Name## File Manager control | Syncfusion +description: Learn here all about FlatData in Syncfusion ##Platform_Name## File Manager control of Syncfusion Essential JS 2 and more. platform: ej2-javascript control: FlatData publishingplatform: ##Platform_Name## @@ -11,21 +11,21 @@ domainurl: ##DomainURL## # Rendering Flat JSON Data in the ##Platform_Name## File Manager Control -The File Manager uses a flat data object as an array of JavaScript objects for rendering, eliminating the need to define [ajaxSettings](https://ej2.syncfusion.com/documentation/api/file-manager/#ajaxsettings) url. To load a folder data as an array of JavaScript objects, use the File Manager component's [fileSystemData](https://ej2.syncfusion.com/documentation/api/file-manager/#filesystemdata) property with a type of [fileData](https://ej2.syncfusion.com/documentation/api/file-manager/fileData/) interface. This means you no longer need to use a separate service provider, as you can integrate services like Google, Amazon, Azure, and others directly into your JavaScript code using the FileManager's action events. For example, you can integrate Google Drive by following the [Google Drive API Quickstart guide for JavaScript](https://developers.google.com/drive/api/quickstart/js). +The File Manager uses a flat data object as an array of JavaScript objects for rendering, eliminating the need to define [ajaxSettings](../api/file-manager/#ajaxsettings) url. To load a folder data as an array of JavaScript objects, use the File Manager control's [fileSystemData](../api/file-manager/#filesystemdata) property with a type of [fileData](../api/file-manager/fileData/) interface. This means you no longer need to use a separate service provider, as you can integrate services like Google, Amazon, Azure, and others directly into your JavaScript code using the FileManager's action events. For example, you can integrate Google Drive by following the [Google Drive API Quickstart guide for JavaScript](https://developers.google.com/drive/api/quickstart/js). **Event Information** Event Name | Description --- | --- -[beforeDelete](https://ej2.syncfusion.com/documentation/api/file-manager/#beforedelete) | This event is triggered before the deletion of a file or folder occurs. It can be utilized to prevent the deletion of specific files or folders. Any actions, such as displaying a spinner for deletion, can be implemented here. -[delete](https://ej2.syncfusion.com/documentation/api/file-manager/#delete) | DeleteEventArgs | path, itemData, cancel. | This event is triggered after the file or folder is deleted successfully. The deleted file or folder details can be retrieved here. Additionally, custom elements' visibility can be managed here based on the application's use case. -[beforeFolderCreate](https://ej2.syncfusion.com/documentation/api/file-manager/#beforefoldercreate) | This event is triggered before a folder is created. It allows for the restriction of folder creation based on the application's use case. -[folderCreate](https://ej2.syncfusion.com/documentation/api/file-manager/#foldercreate) | This event is triggered when a folder is successfully created. It provides an opportunity to retrieve details about the newly created folder. -[search](https://ej2.syncfusion.com/documentation/api/file-manager/#search) | This event is triggered when a search action occurs in the search bar of the File Manager component. It triggers each character entered in the input during the search process. -[beforeRename](https://ej2.syncfusion.com/documentation/api/file-manager/#beforerename) | This event is triggered when a file or folder is about to be renamed. It allows for the restriction of the rename action for specific folders or files by utilizing the cancel option. -[rename](https://ej2.syncfusion.com/documentation/api/file-manager/#rename) | This event is triggered when a file or folder is successfully renamed. It provides an opportunity to fetch details about the renamed file. -[beforeMove](https://ej2.syncfusion.com/documentation/api/file-manager/#beforemove) | This event is triggered when a file or folder begins to move from its current path through a copy/cut and paste action. -[move](https://ej2.syncfusion.com/documentation/api/file-manager/#move) | This event is triggered when a file or folder is pasted into the destination path. +[beforeDelete](../api/file-manager/#beforedelete) | This event is triggered before the deletion of a file or folder occurs. It can be utilized to prevent the deletion of specific files or folders. Any actions, such as displaying a spinner for deletion, can be implemented here. +[delete](../api/file-manager/#delete) | DeleteEventArgs | path, itemData, cancel. | This event is triggered after the file or folder is deleted successfully. The deleted file or folder details can be retrieved here. Additionally, custom elements' visibility can be managed here based on the application's use case. +[beforeFolderCreate](../api/file-manager/#beforefoldercreate) | This event is triggered before a folder is created. It allows for the restriction of folder creation based on the application's use case. +[folderCreate](../api/file-manager/#foldercreate) | This event is triggered when a folder is successfully created. It provides an opportunity to retrieve details about the newly created folder. +[search](../api/file-manager/#search) | This event is triggered when a search action occurs in the search bar of the File Manager control. It triggers each character entered in the input during the search process. +[beforeRename](../api/file-manager/#beforerename) | This event is triggered when a file or folder is about to be renamed. It allows for the restriction of the rename action for specific folders or files by utilizing the cancel option. +[rename](../api/file-manager/#rename) | This event is triggered when a file or folder is successfully renamed. It provides an opportunity to fetch details about the renamed file. +[beforeMove](../api/file-manager/#beforemove) | This event is triggered when a file or folder begins to move from its current path through a copy/cut and paste action. +[move](../api/file-manager/#move) | This event is triggered when a file or folder is pasted into the destination path. ## Local data @@ -42,6 +42,9 @@ To render the root-level folder, specify the `parentId` as null, or there is no {% highlight html tabtitle="index.html" %} {% include code-snippet/file-manager/flat-data-cs/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/file-manager/flat-data-cs/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/file-manager/flat-data-cs" %} @@ -55,6 +58,9 @@ To render the root-level folder, specify the `parentId` as null, or there is no {% highlight html tabtitle="index.html" %} {% include code-snippet/file-manager/flat-data-cs/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/file-manager/flat-data-cs/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/file-manager/flat-data-cs" %} @@ -62,13 +68,13 @@ To render the root-level folder, specify the `parentId` as null, or there is no ## Rendering Flat JSON Data from Google service -In the following topic, we can learn about reading files from Google API using the File Manager's action events. This eliminates the need to define [ajaxSettings](https://ej2.syncfusion.com/documentation/api/file-manager/#ajaxsettings) url. +In the following topic, we can learn about reading files from Google API using the File Manager's action events. This eliminates the need to define [ajaxSettings](../api/file-manager/#ajaxsettings) url. -These events enable you to access essential item details from the event argument. To perform file operation corresponding to your service, use the `cancel` property in File Manager's action event and customize the [fileSystemData](https://ej2.syncfusion.com/documentation/api/file-manager/#filesystemdata) based on your current service data. +These events enable you to access essential item details from the event argument. To perform file operation corresponding to your service, use the `cancel` property in File Manager's action event and customize the [fileSystemData](../api/file-manager/#filesystemdata) based on your current service data. The example retrieves the google drive file details as Flat data object and handle the read response from source by updating `fileSystemData` property with retrieved data. -To set up File Manager component with google service, create a client ID and API key for your google account. To learn more about generating the client credentials from the from Google API Console, refer to this [link](https://developers.google.com/identity/protocols/oauth2/javascript-implicit-flow). +To set up File Manager control with google service, create a client ID and API key for your google account. To learn more about generating the client credentials from the from Google API Console, refer to this [link](https://developers.google.com/identity/protocols/oauth2/javascript-implicit-flow). ```javascript async function fetchData() { @@ -156,7 +162,7 @@ async function createFlatData(files) { ### Delete action -To enable the delete operation in the File Manager component with Google services, you can use the [beforeDelete](https://ej2.syncfusion.com/documentation/api/file-manager/#beforedelete) event. By setting the `cancel` property to `true` in the `beforeDelete` event, you can prevent the default delete action of the File Manager component. Then, you can make a Google API request with the help of event argument to delete the file from Google Drive. Additionally, to update the `fileSystemData` property with the current Google Drive data, you can call the `fetchData` method in the `gapi` success callback. This ensures that the File Manager component remains synchronized with the Google Drive data during the delete operation. +To enable the delete operation in the File Manager control with Google services, you can use the [beforeDelete](../api/file-manager/#beforedelete) event. By setting the `cancel` property to `true` in the `beforeDelete` event, you can prevent the default delete action of the File Manager control. Then, you can make a Google API request with the help of event argument to delete the file from Google Drive. Additionally, to update the `fileSystemData` property with the current Google Drive data, you can call the `fetchData` method in the `gapi` success callback. This ensures that the File Manager control remains synchronized with the Google Drive data during the delete operation. Here is an example of how you can handle the delete operation using the `beforeDelete` event: @@ -169,7 +175,7 @@ Here is an example of how you can handle the delete operation using the `beforeD gapi.client.drive.files.delete({ fileId: item.originalID, }).then(function(response) { - // Success: load the updated Google Drive data within File Manager component. + // Success: load the updated Google Drive data within File Manager control. fetchData(); }, function(error) { console.error('Error deleting folder:', error); @@ -180,7 +186,7 @@ Here is an example of how you can handle the delete operation using the `beforeD ### Copy action -To enable the copy operation in the File Manager component with Google services, you can use the [beforeMove](https://ej2.syncfusion.com/documentation/api/file-manager/#beforeMove) event. The `isCopy` property in the event argument in `true` for copy operation. By setting the `cancel` property to `true` in the `beforeMove` event, you can prevent the default copy action of the File Manager component. Then, you can make a Google API request with the help of event argument to copy the file from Google Drive. Additionally, to update the `fileSystemData` property with the current Google Drive data, you can call the `fetchData` method in the `gapi` success callback. This ensures that the File Manager component remains synchronized with the Google Drive data during the copy operation. +To enable the copy operation in the File Manager control with Google services, you can use the [beforeMove](../api/file-manager/#beforeMove) event. The `isCopy` property in the event argument in `true` for copy operation. By setting the `cancel` property to `true` in the `beforeMove` event, you can prevent the default copy action of the File Manager control. Then, you can make a Google API request with the help of event argument to copy the file from Google Drive. Additionally, to update the `fileSystemData` property with the current Google Drive data, you can call the `fetchData` method in the `gapi` success callback. This ensures that the File Manager control remains synchronized with the Google Drive data during the copy operation. Here is an example of how you can handle the copy operation using the `beforeMove` event: @@ -241,7 +247,7 @@ Here is an example of how you can handle the copy operation using the `beforeMov fileId: copiedFile.result.id, resource: updatedProperties }).then(function(updatedFile) { - // Success: load the copied Google Drive folder data within File Manager component. + // Success: load the copied Google Drive folder data within File Manager control. fetchData(); ... return; @@ -307,7 +313,7 @@ Here is an example of how you can handle the copy operation using the `beforeMov ### Move action -To enable the move operation in the File Manager component with Google services, you can use the [beforeMove](https://ej2.syncfusion.com/documentation/api/file-manager/#beforeMove) event. The `isCopy` property in the event argument in `false` for move operation. By setting the `cancel` property to `true` in the `beforeMove` event, you can prevent the default move action of the File Manager component. Then, you can make a Google API request with the help of event argument to move the file from Google Drive. Additionally, to update the `fileSystemData` property with the current Google Drive data, you can call the `fetchData` method in the `gapi` success callback. This ensures that the File Manager component remains synchronized with the Google Drive data during the move operation. +To enable the move operation in the File Manager control with Google services, you can use the [beforeMove](../api/file-manager/#beforeMove) event. The `isCopy` property in the event argument in `false` for move operation. By setting the `cancel` property to `true` in the `beforeMove` event, you can prevent the default move action of the File Manager control. Then, you can make a Google API request with the help of event argument to move the file from Google Drive. Additionally, to update the `fileSystemData` property with the current Google Drive data, you can call the `fetchData` method in the `gapi` success callback. This ensures that the File Manager control remains synchronized with the Google Drive data during the move operation. Here is an example of how you can handle the move operation using the `beforeMove` event: @@ -332,7 +338,7 @@ Here is an example of how you can handle the move operation using the `beforeMov addParents: newParentFolderId, removeParents: fileMetadata.parents[0], }).then(function(updatedFile) { - // Success: load the Google Drive moved file data within File Manager component. + // Success: load the Google Drive moved file data within File Manager control. fetchData(); }, function(error) { console.error('Error moving file:', error); @@ -346,7 +352,7 @@ Here is an example of how you can handle the move operation using the `beforeMov ### Folder create action -To enable the folder create operation in the File Manager component with Google services, you can use the [beforeFolderCreate](https://ej2.syncfusion.com/documentation/api/file-manager/#beforeFolderCreate) event. By setting the `cancel` property to `true` in the `beforeFolderCreate` event, you can prevent the default folder create action of the File Manager component. Then, you can make a Google API request with the help of event argument to create folder to Google Drive. Additionally, to update the `fileSystemData` property with the current Google Drive data, you can call the `fetchData` method in the `gapi` success callback. This ensures that the File Manager component remains synchronized with the Google Drive data during the folder creation operation. +To enable the folder create operation in the File Manager control with Google services, you can use the [beforeFolderCreate](../api/file-manager/#beforeFolderCreate) event. By setting the `cancel` property to `true` in the `beforeFolderCreate` event, you can prevent the default folder create action of the File Manager control. Then, you can make a Google API request with the help of event argument to create folder to Google Drive. Additionally, to update the `fileSystemData` property with the current Google Drive data, you can call the `fetchData` method in the `gapi` success callback. This ensures that the File Manager control remains synchronized with the Google Drive data during the folder creation operation. Here is an example of how you can handle the folder creation operation using the `beforeFolderCreate` event: @@ -367,7 +373,7 @@ Here is an example of how you can handle the folder creation operation using the if (resp.error) { console.error('Error:', resp.error.message); } else { - // success: load the newly created Google Drive data within File Manager component. + // success: load the newly created Google Drive data within File Manager control. fetchData(); } }); @@ -376,7 +382,7 @@ Here is an example of how you can handle the folder creation operation using the ### Rename action -To enable the rename operation in the File Manager component with Google services, you can use the [beforeRename](https://ej2.syncfusion.com/documentation/api/file-manager/#beforeRename) event. By setting the `cancel` property to `true` in the `beforeRename` event, you can prevent the default rename action of the File Manager component. Then, you can make a Google API request with the help of event argument to rename the file from Google Drive. Additionally, to update the `fileSystemData` property with the current Google Drive data, you can call the `fetchData` method in the `gapi` success callback. This ensures that the File Manager component remains synchronized with the Google Drive data during the rename operation. +To enable the rename operation in the File Manager control with Google services, you can use the [beforeRename](../api/file-manager/#beforeRename) event. By setting the `cancel` property to `true` in the `beforeRename` event, you can prevent the default rename action of the File Manager control. Then, you can make a Google API request with the help of event argument to rename the file from Google Drive. Additionally, to update the `fileSystemData` property with the current Google Drive data, you can call the `fetchData` method in the `gapi` success callback. This ensures that the File Manager control remains synchronized with the Google Drive data during the rename operation. Here is an example of how you can handle the rename operation using the `beforeRename` event: @@ -402,7 +408,7 @@ Here is an example of how you can handle the rename operation using the `beforeR fileId: foundFile.id, resource: metadata, }).then(function(updatedFile) { - // Success: load the renamed Google Drive data within File Manager component. + // Success: load the renamed Google Drive data within File Manager control. fetchData(); }, function(error) { console.error('Error updating file:', error); @@ -416,7 +422,7 @@ Here is an example of how you can handle the rename operation using the `beforeR ### Upload action -To enable the upload operation in the File Manager component with Google services, you can use the [uploadListCreate](https://ej2.syncfusion.com/documentation/api/file-manager/#uploadListCreate) event. This event provides access to details of the file selected in the browser, including metadata such as the file `name`, `size`, and `content type`. Using the event argument, you can make a Google API request to upload the file to Google Drive. Additionally, to update the `fileSystemData` property with the current Google Drive data, you can call the `fetchData` method in the `gapi` success callback. This ensures that the File Manager component remains synchronized with the Google Drive data during the upload operation. +To enable the upload operation in the File Manager control with Google services, you can use the [uploadListCreate](../api/file-manager/#uploadListCreate) event. This event provides access to details of the file selected in the browser, including metadata such as the file `name`, `size`, and `content type`. Using the event argument, you can make a Google API request to upload the file to Google Drive. Additionally, to update the `fileSystemData` property with the current Google Drive data, you can call the `fetchData` method in the `gapi` success callback. This ensures that the File Manager control remains synchronized with the Google Drive data during the upload operation. Here is an example of how you can handle the upload operation using the `uploadListCreate` event: @@ -444,10 +450,10 @@ Here is an example of how you can handle the upload operation using the `uploadL args.element.getElementsByClassName("e-file-status")[0].innerText = "Upload Failed"; args.element.getElementsByClassName("e-file-status")[0].classList.add("e-upload-fails"); } else { - // Success: load the uploaded data within File Manager component. + // Success: load the uploaded data within File Manager control. args.element.getElementsByClassName("e-file-status")[0].innerText = "Upload successful"; args.element.getElementsByClassName("e-file-status")[0].classList.add("e-upload-success"); - // Success: load the updated Google Drive data within File Manager component. + // Success: load the updated Google Drive data within File Manager control. fetchData(); } }); @@ -456,7 +462,7 @@ Here is an example of how you can handle the upload operation using the `uploadL ### Download action -To enable the Download operatipon in the File Manager component with Google services, you can use the [beforeDownload](https://ej2.syncfusion.com/documentation/api/file-manager/#beforeDownload) event. This event provides access to details of the file selected in the File Manager. By setting the `cancel` property to `true` in the `beforeDownload` event, you can prevent the default delete action of the File Manager component. Then, you can make a Google API request with the help of event argument to Download the raw file from Google Drive. +To enable the Download operatipon in the File Manager control with Google services, you can use the [beforeDownload](../api/file-manager/#beforeDownload) event. This event provides access to details of the file selected in the File Manager. By setting the `cancel` property to `true` in the `beforeDownload` event, you can prevent the default delete action of the File Manager control. Then, you can make a Google API request with the help of event argument to Download the raw file from Google Drive. ```javascript beforeDownload: function beforeDownload(args) { @@ -560,7 +566,7 @@ To enable the Download operatipon in the File Manager component with Google serv ### Get image action -To enable the image preview in the File Manager component with Google services, you can use the File Manager [fileSystemData](https://ej2.syncfusion.com/documentation/api/file-manager/#filesystemdata) property response with `imageUrl` field. +To enable the image preview in the File Manager control with Google services, you can use the File Manager [fileSystemData](../api/file-manager/#filesystemdata) property response with `imageUrl` field. In the example, the File Manager retrieves the Google Drive file details as flat data and update the **imageUrl** field with Google Drive's file `thumbnailLink` at initial render. @@ -598,4 +604,4 @@ In the example, the File Manager retrieves the Google Drive file details as flat ... ``` ->Note: For a complete example on handling Google Drive file details as flat data in the File Manager component, view the example on [GitHub](https://github.com/SyncfusionExamples/javascript-filemanager-flat-data-with-cloud-service). \ No newline at end of file +>Note: For a complete example on handling Google Drive file details as flat data in the File Manager control, view the example on [GitHub](https://github.com/SyncfusionExamples/javascript-filemanager-flat-data-with-cloud-service). \ No newline at end of file diff --git a/ej2-javascript/file-manager/how-to/adding-custom-item-to-context-menu.md b/ej2-javascript/file-manager/how-to/adding-custom-item-to-context-menu.md index 282cf671d..bee91d6e2 100644 --- a/ej2-javascript/file-manager/how-to/adding-custom-item-to-context-menu.md +++ b/ej2-javascript/file-manager/how-to/adding-custom-item-to-context-menu.md @@ -1,21 +1,21 @@ --- layout: post -title: Adding custom item to context menu in ##Platform_Name## File manager control | Syncfusion -description: Learn here all about Adding custom item to context menu in Syncfusion ##Platform_Name## File manager control of Syncfusion Essential JS 2 and more. +title: Adding a custom item to the context menu in ##Platform_Name## File Manager control | Syncfusion +description: Learn about adding a custom item to the context menu in the Syncfusion ##Platform_Name## File Manager control of Syncfusion Essential JS 2 and more. platform: ej2-javascript -control: Adding custom item to context menu +control: Adding custom item to the context menu publishingplatform: ##Platform_Name## documentation: ug domainurl: ##DomainURL## --- -# Adding custom item to context menu in ##Platform_Name## File manager control +# Adding a custom item to the context menu in ##Platform_Name## File Manager control The context menu can be customized using the [contextMenuSettings](../../api/file-manager/#contextmenusettings), [menuOpen](../../api/file-manager/#menuopen), and [menuClick](../../api/file-manager/#menuclick) events. -The following example shows adding a custom item in the context menu. +The following example shows how to add a custom item to the context menu. -The [contextMenuSettings](../../api/file-manager/#contextmenusettings) is used to add new menu item. The [menuOpen](../../api/file-manager/#menuopen) event is used to add the icon to the new menu item. The [menuClick](../../api/file-manager/#menuclick) event is used to add an event handler to the new menu item. +The [contextMenuSettings](../../api/file-manager/#contextmenusettings) property is used to add a new menu item. The [menuOpen](../../api/file-manager/#menuopen) event is used to add an icon to the new menu item. The [menuClick](../../api/file-manager/#menuclick) event is used to add an event handler to the new menu item. {% if page.publishingplatform == "typescript" %} @@ -26,8 +26,11 @@ The [contextMenuSettings](../../api/file-manager/#contextmenusettings) is used t {% highlight html tabtitle="index.html" %} {% include code-snippet/file-manager/contextmenu-cs2/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/file-manager/contextmenu-cs2/index.css %} +{% endhighlight %} {% endtabs %} - + {% previewsample "page.domainurl/code-snippet/file-manager/contextmenu-cs2" %} {% elsif page.publishingplatform == "javascript" %} @@ -39,6 +42,9 @@ The [contextMenuSettings](../../api/file-manager/#contextmenusettings) is used t {% highlight html tabtitle="index.html" %} {% include code-snippet/file-manager/contextmenu-cs2/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/file-manager/contextmenu-cs2/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/file-manager/contextmenu-cs2" %} diff --git a/ej2-javascript/file-manager/how-to/adding-custom-item-to-toolbar.md b/ej2-javascript/file-manager/how-to/adding-custom-item-to-toolbar.md index 32cf565c4..c8985047e 100644 --- a/ej2-javascript/file-manager/how-to/adding-custom-item-to-toolbar.md +++ b/ej2-javascript/file-manager/how-to/adding-custom-item-to-toolbar.md @@ -1,17 +1,17 @@ --- layout: post -title: Adding custom item to toolbar in ##Platform_Name## File manager control | Syncfusion -description: Learn here all about Adding custom item to toolbar in Syncfusion ##Platform_Name## File manager control of Syncfusion Essential JS 2 and more. +title: Adding a custom item to the toolbar in ##Platform_Name## File Manager control | Syncfusion +description: Learn about adding a custom item to the toolbar in the Syncfusion ##Platform_Name## File Manager control, its elements, and more. platform: ej2-javascript -control: Adding custom item to toolbar +control: Adding custom item to the toolbar publishingplatform: ##Platform_Name## documentation: ug domainurl: ##DomainURL## --- -# Adding custom item to toolbar in ##Platform_Name## File manager control +# Adding a custom item to the toolbar in ##Platform_Name## File Manager control -You can modify the items displayed in the toolbar by utilizing the [toolbarItems](../../api/file-manager/#toolbarItems) API. To display both default and customized items, it's essential to assign a unique **name** to each item. Additionally, you have the flexibility to alter the default items by adjusting properties such as **tooltipText, iconCss, Text, suffixIcon** and more. This level of customization allows you to tailor the toolbar to your specific requirements and design preferences. The names used in the code example below serve as unique identifiers for default toolbar items, while custom items can be assigned any unique name value to distinguish them from the defaults. +You can modify the items displayed in the toolbar by using the [toolbarItems](../../api/file-manager/#toolbarItems) API. To display both default and customized items, it's essential to assign a unique **name** to each item. Additionally, you have the flexibility to alter the default items by adjusting properties such as **tooltipText, iconCss, Text, suffixIcon**, and more. This level of customization allows you to tailor the toolbar to your specific requirements and design preferences. The names used in the code example below serve as unique identifiers for default toolbar items, while custom items can be assigned any unique name value to distinguish them from the defaults. For instance, here's an example of how to add a custom checkbox to the toolbar using the **template** property. Here we have modified the default `New Folder` item and added a custom toolbar item for selection. @@ -24,8 +24,11 @@ For instance, here's an example of how to add a custom checkbox to the toolbar u {% highlight html tabtitle="index.html" %} {% include code-snippet/file-manager/toolbar-cs2/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/file-manager/toolbar-cs2/index.css %} +{% endhighlight %} {% endtabs %} - + {% previewsample "page.domainurl/code-snippet/file-manager/toolbar-cs2" %} {% elsif page.publishingplatform == "javascript" %} @@ -37,6 +40,9 @@ For instance, here's an example of how to add a custom checkbox to the toolbar u {% highlight html tabtitle="index.html" %} {% include code-snippet/file-manager/toolbar-cs2/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/file-manager/toolbar-cs2/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/file-manager/toolbar-cs2" %} diff --git a/ej2-javascript/file-manager/how-to/change-the-localization-content.md b/ej2-javascript/file-manager/how-to/change-the-localization-content.md index cee09168b..d89580d7c 100644 --- a/ej2-javascript/file-manager/how-to/change-the-localization-content.md +++ b/ej2-javascript/file-manager/how-to/change-the-localization-content.md @@ -1,7 +1,7 @@ --- layout: post -title: Change the localization content in ##Platform_Name## File manager control | Syncfusion -description: Learn here all about Change the localization content in Syncfusion ##Platform_Name## File manager control of Syncfusion Essential JS 2 and more. +title: Change the localization content in ##Platform_Name## File Manager control | Syncfusion +description: Learn how to change the localization content in the Syncfusion ##Platform_Name## File Manager control of Syncfusion Essential JS 2 and more. platform: ej2-javascript control: Change the localization content publishingplatform: ##Platform_Name## @@ -9,9 +9,9 @@ documentation: ug domainurl: ##DomainURL## --- -# Change the localization content in ##Platform_Name## File manager control +# Change the localization content in ##Platform_Name## File Manager control -The example below shows how to modify the file manager component localization content. The upload text of the file manager component can be changed in the following example. +The example below shows how to modify the File Manager control localization content. The upload text of the File Manager control can be changed as illustrated in the following example. {% if page.publishingplatform == "typescript" %} @@ -22,8 +22,11 @@ The example below shows how to modify the file manager component localization co {% highlight html tabtitle="index.html" %} {% include code-snippet/file-manager/locale-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/file-manager/locale-cs1/index.css %} +{% endhighlight %} {% endtabs %} - + {% previewsample "page.domainurl/code-snippet/file-manager/locale-cs1" %} {% elsif page.publishingplatform == "javascript" %} @@ -35,7 +38,10 @@ The example below shows how to modify the file manager component localization co {% highlight html tabtitle="index.html" %} {% include code-snippet/file-manager/locale-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/file-manager/locale-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/file-manager/locale-cs1" %} -{% endif %} +{% endif %} \ No newline at end of file diff --git a/ej2-javascript/file-manager/how-to/custom-file-provider.md b/ej2-javascript/file-manager/how-to/custom-file-provider.md index 7ea025daa..29caa1060 100644 --- a/ej2-javascript/file-manager/how-to/custom-file-provider.md +++ b/ej2-javascript/file-manager/how-to/custom-file-provider.md @@ -1,7 +1,7 @@ --- layout: post -title: Implement own service provider in ##Platform_Name## File manager control | Syncfusion -description: Learn here all about implementation own service provider in Syncfusion ##Platform_Name## File manager control of Syncfusion Essential JS 2 and more. +title: Implement own service provider in ##Platform_Name## File Manager control | Syncfusion +description: Learn here all about implementation own service provider in Syncfusion ##Platform_Name## File Manager control of Syncfusion Essential JS 2 and more. platform: ej2-javascript control: Implement own service provider publishingplatform: ##Platform_Name## @@ -13,7 +13,7 @@ domainurl: ##DomainURL## Here we manipulate the Azure Blob Storage to supply the necessary data for the File Manager. We achieve this by utilizing NodeJS to fetch the required data from the Azure blob storage. -NodeJS acts as the bridge between the File Manager component and Azure Blob Storage, allowing seamless communication and data retrieval. Through this integration, the File Manager can access and interact with the data stored in Azure Blob Storage, enabling smooth file management operations. +NodeJS acts as the bridge between the File Manager Control and Azure Blob Storage, allowing seamless communication and data retrieval. Through this integration, the File Manager can access and interact with the data stored in Azure Blob Storage, enabling smooth file management operations. ## Prerequisites @@ -165,7 +165,7 @@ The following table represents the response parameters of **read** operations. |error|[ErrorDetails](../file-operations.md/#delete)|-|Error Details| -The following table represents the contents of **FileManagerDirectoryContent** in the file manager request and response. +The following table represents the contents of **FileManagerDirectoryContent** in the File Manager request and response. |Parameter|Type|Default|Explanation|Is required| |----|----|----|----|----| diff --git a/ej2-javascript/file-manager/how-to/customize-custom-thumbnail.md b/ej2-javascript/file-manager/how-to/customize-custom-thumbnail.md index 26b62d3b0..5b42e8e06 100644 --- a/ej2-javascript/file-manager/how-to/customize-custom-thumbnail.md +++ b/ej2-javascript/file-manager/how-to/customize-custom-thumbnail.md @@ -1,7 +1,7 @@ --- layout: post -title: Customize custom thumbnail in ##Platform_Name## File manager control | Syncfusion -description: Learn here all about Customize custom thumbnail in Syncfusion ##Platform_Name## File manager control of Syncfusion Essential JS 2 and more. +title: Customize a custom thumbnail in ##Platform_Name## File Manager control | Syncfusion +description: Learn about customizing a custom thumbnail in the Syncfusion ##Platform_Name## File Manager control of Syncfusion Essential JS 2 and more. platform: ej2-javascript control: Customize custom thumbnail publishingplatform: ##Platform_Name## @@ -9,11 +9,11 @@ documentation: ug domainurl: ##DomainURL## --- -# Customize custom thumbnail in ##Platform_Name## File manager control +# Customize a custom thumbnail in ##Platform_Name## File Manager control -The default appearance of the file manager can customize with your own icon by using [showThumbnail](../../api/file-manager/#showthumbnail) property. +The default appearance of the File Manager can be customized with your own icons by using the [showThumbnail](../../api/file-manager/#showthumbnail) property. -The following example demonstrate how to add a custom icon in largeicons view. +The following example demonstrates how to add a custom icon in the large icons view. {% if page.publishingplatform == "typescript" %} @@ -24,8 +24,11 @@ The following example demonstrate how to add a custom icon in largeicons view. {% highlight html tabtitle="index.html" %} {% include code-snippet/file-manager/custom-thumbnail-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/file-manager/custom-thumbnail-cs1/index.css %} +{% endhighlight %} {% endtabs %} - + {% previewsample "page.domainurl/code-snippet/file-manager/custom-thumbnail-cs1" %} {% elsif page.publishingplatform == "javascript" %} @@ -37,6 +40,9 @@ The following example demonstrate how to add a custom icon in largeicons view. {% highlight html tabtitle="index.html" %} {% include code-snippet/file-manager/custom-thumbnail-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/file-manager/custom-thumbnail-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/file-manager/custom-thumbnail-cs1" %} diff --git a/ej2-javascript/file-manager/how-to/enable-disable-toolbar-item.md b/ej2-javascript/file-manager/how-to/enable-disable-toolbar-item.md index 85448c838..f32f82e38 100644 --- a/ej2-javascript/file-manager/how-to/enable-disable-toolbar-item.md +++ b/ej2-javascript/file-manager/how-to/enable-disable-toolbar-item.md @@ -1,19 +1,19 @@ --- layout: post -title: Enable disable toolbar item in ##Platform_Name## File manager control | Syncfusion -description: Learn here all about Enable disable toolbar item in Syncfusion ##Platform_Name## File manager control of Syncfusion Essential JS 2 and more. +title: Enable or disable a toolbar item in ##Platform_Name## File Manager control | Syncfusion +description: Learn about enabling or disabling a toolbar item in the Syncfusion ##Platform_Name## File Manager control of Syncfusion Essential JS 2 and more. platform: ej2-javascript -control: Enable disable toolbar item +control: Enable disable toolbar item publishingplatform: ##Platform_Name## documentation: ug domainurl: ##DomainURL## --- -# Enable disable toolbar item in ##Platform_Name## File manager control +# Enable or disable a toolbar item in ##Platform_Name## File Manager control -The toolbar items can be enabled/disabled by specifying the items in [enableToolbarItems](../../api/file-manager/#enabletoolbaritems) or [disableToolbarItems](../../api/file-manager/#disabletoolbaritems) methods respectively. +The toolbar items can be enabled or disabled by specifying the items in the [enableToolbarItems](../../api/file-manager/#enabletoolbaritems) or [disableToolbarItems](../../api/file-manager/#disabletoolbaritems) methods, respectively. -The following example shows enabling and disabling toolbar items on button click. +The following example demonstrates how to enable and disable toolbar items on button click. {% if page.publishingplatform == "typescript" %} @@ -24,8 +24,11 @@ The following example shows enabling and disabling toolbar items on button click {% highlight html tabtitle="index.html" %} {% include code-snippet/file-manager/toolbar-items-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/file-manager/toolbar-items-cs1/index.css %} +{% endhighlight %} {% endtabs %} - + {% previewsample "page.domainurl/code-snippet/file-manager/toolbar-items-cs1" %} {% elsif page.publishingplatform == "javascript" %} @@ -37,6 +40,9 @@ The following example shows enabling and disabling toolbar items on button click {% highlight html tabtitle="index.html" %} {% include code-snippet/file-manager/toolbar-items-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/file-manager/toolbar-items-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/file-manager/toolbar-items-cs1" %} diff --git a/ej2-javascript/file-manager/how-to/nested-items.md b/ej2-javascript/file-manager/how-to/nested-items.md index cc48549f8..a7d709b7f 100644 --- a/ej2-javascript/file-manager/how-to/nested-items.md +++ b/ej2-javascript/file-manager/how-to/nested-items.md @@ -1,7 +1,7 @@ --- layout: post -title: Nested items in ##Platform_Name## File manager control | Syncfusion -description: Learn here all about Nested items in Syncfusion ##Platform_Name## File manager control of Syncfusion Essential JS 2 and more. +title: Nested items in ##Platform_Name## File Manager control | Syncfusion +description: Learn here all about Nested items in Syncfusion ##Platform_Name## File Manager control of Syncfusion Essential JS 2 and more. platform: ej2-javascript control: Nested items publishingplatform: ##Platform_Name## @@ -9,16 +9,16 @@ documentation: ug domainurl: ##DomainURL## --- -# Nested items in ##Platform_Name## File manager control +# Nested items in ##Platform_Name## File Manager control -FileManager can be rendered inside the other components like Tab, Dialog, and more. +The File Manager can be rendered inside other controls like Tab, Dialog, and more. -* [Adding file manager inside the dialog](#adding-file-manager-inside-the-dialog) -* [Adding file manager inside the tab](#adding-file-manager-inside-the-tab) +* [Adding File Manager inside the Dialog](#adding-file-manager-inside-the-dialog) +* [Adding File Manager inside the Tab](#adding-file-manager-inside-the-tab) -## Adding file manager inside the dialog +## Adding File Manager inside the Dialog -The following example shows the file manager component rendered inside the dialog. Click the browse button in the Uploader element to open the File Manager inside the Dialog control. +The following example shows the File Manager control rendered inside a Dialog. Click the browse button in the Uploader element to open the File Manager inside the Dialog control. {% if page.publishingplatform == "typescript" %} @@ -29,8 +29,11 @@ The following example shows the file manager component rendered inside the dialo {% highlight html tabtitle="index.html" %} {% include code-snippet/file-manager/file-upload-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/file-manager/file-upload-cs1/index.css %} +{% endhighlight %} {% endtabs %} - + {% previewsample "page.domainurl/code-snippet/file-manager/file-upload-cs1" %} {% elsif page.publishingplatform == "javascript" %} @@ -42,26 +45,32 @@ The following example shows the file manager component rendered inside the dialo {% highlight html tabtitle="index.html" %} {% include code-snippet/file-manager/file-upload-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/file-manager/file-upload-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/file-manager/file-upload-cs1" %} {% endif %} -## Adding file manager inside the tab +## Adding File Manager inside the Tab -The following example demonstrate that the file manager component is placed inside the content area of tab element. +The following example demonstrates that the File Manager control is placed inside the content area of a Tab element. {% if page.publishingplatform == "typescript" %} - {% tabs %} +{% tabs %} {% highlight ts tabtitle="index.ts" %} {% include code-snippet/file-manager/file-tab-cs1/index.ts %} {% endhighlight %} {% highlight html tabtitle="index.html" %} {% include code-snippet/file-manager/file-tab-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/file-manager/file-tab-cs1/index.css %} +{% endhighlight %} {% endtabs %} - + {% previewsample "page.domainurl/code-snippet/file-manager/file-tab-cs1" %} {% elsif page.publishingplatform == "javascript" %} @@ -73,6 +82,9 @@ The following example demonstrate that the file manager component is placed insi {% highlight html tabtitle="index.html" %} {% include code-snippet/file-manager/file-tab-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/file-manager/file-tab-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/file-manager/file-tab-cs1" %} diff --git a/ej2-javascript/file-manager/how-to/perform-custom-sorting.md b/ej2-javascript/file-manager/how-to/perform-custom-sorting.md index 1be7d0bfd..e82361927 100644 --- a/ej2-javascript/file-manager/how-to/perform-custom-sorting.md +++ b/ej2-javascript/file-manager/how-to/perform-custom-sorting.md @@ -1,7 +1,7 @@ --- layout: post -title: Perform custom sorting in ##Platform_Name## FileManager component | Syncfusion -description: Learn here all about How to perform custom sorting in Syncfusion ##Platform_Name## FileManager component of Syncfusion Essential JS 2 and more. +title: Perform custom sorting in ##Platform_Name## File Manager control | Syncfusion +description: Learn about how to perform custom sorting in the Syncfusion ##Platform_Name## File Manager control of Syncfusion Essential JS 2 and more. platform: ej2-javascript control: Perform custom sorting publishingplatform: ##Platform_Name## @@ -9,13 +9,13 @@ documentation: ug domainurl: ##DomainURL## --- -# Perform custom sorting in ##Platform_Name## FileManager component +# Perform custom sorting in ##Platform_Name## File Manager control -The FileManager component provides a way to customize the default sort action for the LargeIconsView by defining the [sortComparer](../../api/file-manager/#sortcomparer) property and for sorting individual columns in the DetailsView by defining the [sortComparer](../../api/file-manager/column/#sortcomparer) property in the [columns](../../api/file-manager/column/) property. +The File Manager control provides a way to customize the default sort action for the LargeIconsView by defining the [sortComparer](../../api/file-manager/#sortcomparer) property and for sorting individual columns in the DetailsView by defining the [sortComparer](../../api/file-manager/column/#sortcomparer) property in the [columns](../../api/file-manager/column/) property. ->Note: To achieve natural sorting like Windows Explorer, you can import the `SortComparer` function from the `'@syncfusion/ej2-javascript-filemanager'`. If you want to perform your own custom sorting, you can define your own `SortComparer` function. +>**Note:** To achieve natural sorting like Windows Explorer, you can import the `SortComparer` function from `'@syncfusion/ej2-javascript-filemanager'`. If you want to perform your own custom sorting, you can define your own `SortComparer` function. -The following example demonstrates how to define custom sort comparer function to achieve natural sorting behavior for the LargeIconsView and name column in DetailsView. +The following example demonstrates how to define a custom sort comparer function to achieve natural sorting behavior for the LargeIconsView and name column in DetailsView. {% if page.publishingplatform == "typescript" %} @@ -26,8 +26,11 @@ The following example demonstrates how to define custom sort comparer function t {% highlight html tabtitle="index.html" %} {% include code-snippet/file-manager/customsorting-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/file-manager/customsorting-cs1/index.css %} +{% endhighlight %} {% endtabs %} - + {% previewsample "page.domainurl/code-snippet/file-manager/customsorting-cs1" %} {% elsif page.publishingplatform == "javascript" %} @@ -39,6 +42,9 @@ The following example demonstrates how to define custom sort comparer function t {% highlight html tabtitle="index.html" %} {% include code-snippet/file-manager/customsorting-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/file-manager/customsorting-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/file-manager/customsorting-cs1" %} diff --git a/ej2-javascript/file-manager/images/filemanager-chunkupload.png b/ej2-javascript/file-manager/images/filemanager-chunkupload.png new file mode 100644 index 000000000..906d54bf9 Binary files /dev/null and b/ej2-javascript/file-manager/images/filemanager-chunkupload.png differ diff --git a/ej2-javascript/file-manager/js/es5-getting-started.md b/ej2-javascript/file-manager/js/es5-getting-started.md index f4e323073..debcd9f54 100644 --- a/ej2-javascript/file-manager/js/es5-getting-started.md +++ b/ej2-javascript/file-manager/js/es5-getting-started.md @@ -1,20 +1,20 @@ --- layout: post -title: Es5 getting started with ##Platform_Name## File manager control | Syncfusion -description: Checkout and learn about Es5 getting started with ##Platform_Name## File manager control of Syncfusion Essential JS 2 and more details. +title: Es5 getting started with ##Platform_Name## File Manager control | Syncfusion +description: Checkout and learn about Es5 getting started with ##Platform_Name## File Manager control of Syncfusion Essential JS 2 and more details. platform: ej2-javascript control: Es5 getting started publishingplatform: ##Platform_Name## documentation: ug domainurl: ##DomainURL## --- -# Es5 getting started in ##Platform_Name## File manager control +# Es5 getting started in ##Platform_Name## File Manager control The Essential JS 2 for JavaScript (global script) is an ES5 formatted pure JavaScript framework which can be directly used in latest web browsers. -## Component Initialization +## Control Initialization -Create an app folder `myapp` in local machine to initialize Essential JS 2 JavaScript components. +Create an app folder `myapp` in local machine to initialize Essential JS 2 JavaScript controls. Using either of the following way to refer the required script and styles. @@ -52,7 +52,7 @@ The below located script and style file contains all Syncfusion JavaScript (ES5) - Essential JS 2 File Manager Component + Essential JS 2 File Manager Control @@ -82,15 +82,15 @@ The below located script and style file contains all Syncfusion JavaScript (ES5) ``` ->Note: If you want to refer the combined component styles, please make use of our [`CRG`](https://crg.syncfusion.com/) (Custom Resource Generator) in your application. +>Note: If you want to refer the combined control styles, please make use of our [`CRG`](https://crg.syncfusion.com/) (Custom Resource Generator) in your application. -**Step 5:** Now, add the `div` element and initiate the `Essential JS 2 File Manager` component in the `index.html` by using following code +**Step 5:** Now, add the `div` element and initiate the `Essential JS 2 File Manager` control in the `index.html` by using following code ```html - Essential JS 2 File Manager Component + Essential JS 2 File Manager Control @@ -120,7 +120,7 @@ The below located script and style file contains all Syncfusion JavaScript (ES5)
          @@ -189,7 +189,7 @@ The below located script and style file contains all Syncfusion JavaScript (ES5)
          + + +



          +
          + + + +``` -{% endif %} +**Step4**: Create a package.json file by running the following command: + +```bash +npm init -y +``` -For batch editing, you can specify a custom batch URL as follows: +**Step 4:** Install the necessary packages for setting up an Express server and Live Server: -{% if page.publishingplatform == "typescript" %} +```bash +npm install express body-parser cors live-server +``` - {% tabs %} -{% highlight ts tabtitle="index.ts" %} -import { Grid, Edit, Toolbar } from '@syncfusion/ej2-grids'; -import { DataManager, ODataV4Adaptor } from '@syncfusion/ej2-data'; +**Step 5:** Install Concurrently to run both the server and client simultaneously: + +```bash +npm install concurrently --save-dev +``` + +**Step 6:** Update the scripts section in your **package.json** to include commands for starting the server and client concurrently: + +```bash + "type": "module", + "scripts": { + "start": "concurrently \"npm run start-server\" \"npm run start-client\"", + "start-server": "node server.js", + "start-client": "live-server" + } +``` + +**Step 7:** Create a **dataSource.js** file to represent the data in the root folder. + +```js +export const data = createLazyLoadData(); +export function createLazyLoadData() { + const lazyLoadData = []; // Explicitly type lazyLoadData as Order[] + + let customerid = ['VINET', 'TOMSP', 'HANAR', 'VICTE', 'SUPRD', 'HANAR', 'CHOPS', 'RICSU', 'WELLI', 'HILAA', 'ERNSH', 'CENTC', + 'OTTIK', 'QUEDE', 'RATTC', 'ERNSH', 'FOLKO', 'BLONP', 'WARTH', 'FRANK', 'GROSR', 'WHITC', 'WARTH', 'SPLIR', 'RATTC', 'QUICK', 'VINET', + 'MAGAA', 'TORTU', 'MORGK', 'BERGS', 'LEHMS', 'BERGS', 'ROMEY', 'ROMEY', 'LILAS', 'LEHMS', 'QUICK', 'QUICK', 'RICAR', 'REGGC', 'BSBEV', + 'COMMI', 'QUEDE', 'TRADH', 'TORTU', 'RATTC', 'VINET', 'LILAS', 'BLONP', 'HUNGO', 'RICAR', 'MAGAA', 'WANDK', 'SUPRD', 'GODOS', 'TORTU', + 'OLDWO', 'ROMEY', 'LONEP', 'ANATR', 'HUNGO', 'THEBI', 'DUMON', 'WANDK', 'QUICK', 'RATTC', 'ISLAT', 'RATTC', 'LONEP', 'ISLAT', 'TORTU', + 'WARTH', 'ISLAT', 'PERIC', 'KOENE', 'SAVEA', 'KOENE', 'BOLID', 'FOLKO', 'FURIB', 'SPLIR', 'LILAS', 'BONAP', 'MEREP', 'WARTH', 'VICTE', + 'HUNGO', 'PRINI', 'FRANK', 'OLDWO', 'MEREP', 'BONAP', 'SIMOB', 'FRANK', 'LEHMS', 'WHITC', 'QUICK', 'RATTC', 'FAMIA']; + + let product = ['Chai', 'Chang', 'Aniseed Syrup', 'Chef Anton\'s Cajun Seasoning', 'Chef Anton\'s Gumbo Mix', 'Grandma\'s Boysenberry Spread', + 'Uncle Bob\'s Organic Dried Pears', 'Northwoods Cranberry Sauce', 'Mishi Kobe Niku', 'Ikura', 'Queso Cabrales', 'Queso Manchego La Pastora', 'Konbu', + 'Tofu', 'Genen Shouyu', 'Pavlova', 'Alice Mutton', 'Carnarvon Tigers', 'Teatime Chocolate Biscuits', 'Sir Rodney\'s Marmalade', 'Sir Rodney\'s Scones', + 'Gustaf\'s Knäckebröd', 'Tunnbröd', 'Guaraná Fantástica', 'NuNuCa Nuß-Nougat-Creme', 'Gumbär Gummibärchen', 'Schoggi Schokolade', 'Rössle Sauerkraut', + 'Thüringer Rostbratwurst', 'Nord-Ost Matjeshering', 'Gorgonzola Telino', 'Mascarpone Fabioli', 'Geitost', 'Sasquatch Ale', 'Steeleye Stout', 'Inlagd Sill', + 'Gravad lax', 'Côte de Blaye', 'Chartreuse verte', 'Boston Crab Meat', 'Jack\'s New England Clam Chowder', 'Singaporean Hokkien Fried Mee', 'Ipoh Coffee', + 'Gula Malacca', 'Rogede sild', 'Spegesild', 'Zaanse koeken', 'Chocolade', 'Maxilaku', 'Valkoinen suklaa', 'Manjimup Dried Apples', 'Filo Mix', 'Perth Pasties', + 'Tourtière', 'Pâté chinois', 'Gnocchi di nonna Alice', 'Ravioli Angelo', 'Escargots de Bourgogne', 'Raclette Courdavault', 'Camembert Pierrot', 'Sirop d\'érable', + 'Tarte au sucre', 'Vegie-spread', 'Wimmers gute Semmelknödel', 'Louisiana Fiery Hot Pepper Sauce', 'Louisiana Hot Spiced Okra', 'Laughing Lumberjack Lager', 'Scottish Longbreads', + 'Gudbrandsdalsost', 'Outback Lager', 'Flotemysost', 'Mozzarella di Giovanni', 'Röd Kaviar', 'Longlife Tofu', 'Rhönbräu Klosterbier', 'Lakkalikööri', 'Original Frankfurter grüne Soße']; + + let customername = ['Maria', 'Ana Trujillo', 'Antonio Moreno', 'Thomas Hardy', 'Christina Berglund', 'Hanna Moos', 'Frédérique Citeaux', 'Martín Sommer', 'Laurence Lebihan', 'Elizabeth Lincoln', + 'Victoria Ashworth', 'Patricio Simpson', 'Francisco Chang', 'Yang Wang', 'Pedro Afonso', 'Elizabeth Brown', 'Sven Ottlieb', 'Janine Labrune', 'Ann Devon', 'Roland Mendel', 'Aria Cruz', 'Diego Roel', + 'Martine Rancé', 'Maria Larsson', 'Peter Franken', 'Carine Schmitt', 'Paolo Accorti', 'Lino Rodriguez', 'Eduardo Saavedra', 'José Pedro Freyre', 'André Fonseca', 'Howard Snyder', 'Manuel Pereira', + 'Mario Pontes', 'Carlos Hernández', 'Yoshi Latimer', 'Patricia McKenna', 'Helen Bennett', 'Philip Cramer', 'Daniel Tonini', 'Annette Roulet', 'Yoshi Tannamuri', 'John Steel', 'Renate Messner', 'Jaime Yorres', + 'Carlos González', 'Felipe Izquierdo', 'Fran Wilson', 'Giovanni Rovelli', 'Catherine Dewey', 'Jean Fresnière', 'Alexander Feuer', 'Simon Crowther', 'Yvonne Moncada', 'Rene Phillips', 'Henriette Pfalzheim', + 'Marie Bertrand', 'Guillermo Fernández', 'Georg Pipps', 'Isabel de Castro', 'Bernardo Batista', 'Lúcia Carvalho', 'Horst Kloss', 'Sergio Gutiérrez', 'Paula Wilson', 'Maurizio Moroni', 'Janete Limeira', 'Michael Holz', + 'Alejandra Camino', 'Jonas Bergulfsen', 'Jose Pavarotti', 'Hari Kumar', 'Jytte Petersen', 'Dominique Perrier', 'Art Braunschweiger', 'Pascale Cartrain', 'Liz Nixon', 'Liu Wong', 'Karin Josephs', 'Miguel Angel Paolino', + 'Anabela Domingues', 'Helvetius Nagy', 'Palle Ibsen', 'Mary Saveley', 'Paul Henriot', 'Rita Müller', 'Pirkko Koskitalo', 'Paula Parente', 'Karl Jablonski', 'Matti Karttunen', 'Zbyszek Piestrzeniewicz']; + + let customeraddress = ['507 - 20th Ave. E.\r\nApt. 2A', '908 W. Capital Way', '722 Moss Bay Blvd.', '4110 Old Redmond Rd.', '14 Garrett Hill', 'Coventry House\r\nMiner Rd.', 'Edgeham Hollow\r\nWinchester Way', + '4726 - 11th Ave. N.E.', '7 Houndstooth Rd.', '59 rue de l\'Abbaye', 'Luisenstr. 48', '908 W. Capital Way', '722 Moss Bay Blvd.', '4110 Old Redmond Rd.', '14 Garrett Hill', 'Coventry House\r\nMiner Rd.', 'Edgeham Hollow\r\nWinchester Way', + '7 Houndstooth Rd.', '2817 Milton Dr.', 'Kirchgasse 6', 'Sierras de Granada 9993', 'Mehrheimerstr. 369', 'Rua da Panificadora, 12', '2817 Milton Dr.', 'Mehrheimerstr. 369']; + + let quantityperunit= ['10 boxes x 20 bags', '24 - 12 oz bottles', '12 - 550 ml bottles', '48 - 6 oz jars', '36 boxes', '12 - 8 oz jars', '12 - 1 lb pkgs.', '12 - 12 oz jars', '18 - 500 g pkgs.', '12 - 200 ml jars', + '1 kg pkg.', '10 - 500 g pkgs.', '2 kg box', '40 - 100 g pkgs.', '24 - 250 ml bottles', '32 - 500 g boxes', '20 - 1 kg tins', '16 kg pkg.', '10 boxes x 12 pieces', '30 gift boxes', '24 pkgs. x 4 pieces', '24 - 500 g pkgs.', '12 - 250 g pkgs.', + '12 - 355 ml cans', '20 - 450 g glasses', '100 - 250 g bags']; + let OrderID = 10248; + + for (let i = 0; i < 100; i++) { + lazyLoadData.push({ + 'OrderID': OrderID + i, + 'CustomerID': customerid[Math.floor(Math.random() * customerid.length)], + 'CustomerName': customername[Math.floor(Math.random() * customername.length)], + 'CustomerAddress': customeraddress[Math.floor(Math.random() * customeraddress.length)], + 'ProductName': product[Math.floor(Math.random() * product.length)], + 'ProductID': i, + 'Quantity': quantityperunit[Math.floor(Math.random() * quantityperunit.length)] + }); + } -var data = new ej.data.DataManager({ - url: 'https://services.odata.org/V4/Northwind/Northwind.svc/Orders/?$top=7', - BatchUrl: 'https://localhost:xxxx/odata/Orders/BatchUpdate', // custom URL for batch update - adaptor: new ODataV4Adaptor + return lazyLoadData; +} +``` + +**Step 8:** Create **server.js** file to set up a basic Express server: + +```js +import express from "express"; +import cors from "cors"; +import bodyParser from "body-parser"; +import {data,createLazyLoadData} from './dataSource.js'; + +// Generate the data +const app = express(); +app.use(cors({ + origin: '*', // Update to the correct frontend origin + credentials: true +})); +app.use(bodyParser.json()); +// Root route +app.get('/', (req, res) => { + res.send('Server is running'); +}); +// all records +app.get('/orders', function (req, res) { + res.json({ result: data, count: data.length }); +}); +const port = xxxx;// Here xxxx denotes the port number. +app.listen(port, () => { + console.log(`Server running on http://localhost:${port}`); }); -Grid.Inject(Edit, Toolbar); +``` -let grid: Grid = new Grid({ - dataSource: data, - toolbar: ['Add', 'Edit', 'Delete', 'Update', 'Cancel'], - editSettings: { allowEditing: true, allowAdding: true, allowDeleting: true, mode: 'Batch' }, +**Step 9:** Create an **orderService.js** file to handle CRUD operations and grid actions using Syncfusion's DataManager: + +```ts + +export class OrderService { +} +export {}; +const baseUrl = "http://localhost:xxxx/orders"; // Here xxxx denotes the port number. +let gridData; +// Apply paging +const applyPaging = (query, state)=> { + // Check if both 'take' and 'skip' values are available + if (state.take && state.skip) { + // Calculate pageSkip and pageTake values to get pageIndex and pageSize + const pageSkip = state.skip / state.take + 1; + const pageTake = state.take; + query.page(pageSkip, pageTake); + } + // If if only 'take' is available and 'skip' is 0, apply paging for the first page. + else if (state.skip === 0 && state.take) { + query.page(1, state.take); + } +} +export function getOrders(state, action) { + const query = new ej.data.Query(); + // page + applyPaging(query, state) + query.isCountRequired = true + + // Request the data from server using fetch + return fetch(baseUrl) + .then(res => res.json()) + .then(data => { + // Create a DataManager instance with your fetched data + gridData = new ej.data.DataManager(data.result); + + // Execute local data operations using the provided query + const result = gridData.executeLocal(query); + + // Return the result along with the count of total records + return { + result: result, // Result of the data + count: result.count // Total record count based on fetched data length + }; + }); +} +``` + +**Step 10:** In your **index.js**, import and use the Syncfusion Grid component. Use the **orderService** to fetch and manipulate data. + +```ts +import { getOrders, addRecord, updateRecord, deleteRecord } from './orderService.js'; + +ej.grids.Grid.Inject(ej.grids.Group,ej.grids.Filter,ej.grids.Sort,ej.grids.Toolbar,ej.grids.Edit,ej.grids.Search, ej.grids.LazyLoadGroup, ej.grids.Filter); + +const state = { skip: 0, take: 12}; + +let grid= new ej.grids.Grid({ + allowPaging: true, + created:created, + dataStateChange: dataStateChange, columns: [ - { field: 'OrderID', headerText: 'Order ID', textAlign: 'Right', isPrimaryKey: true, validationRules: { required: true }, width: 100 }, - { field: 'CustomerID', headerText: 'Customer ID', validationRules: { required: true, minLength: 5 }, width: 120, }, - { field: 'Freight', headerText: 'Freight', textAlign: 'Right', editType: 'numericedit', validationRules: { required: true, min: 1, max: 1000 }, width: 120, format: 'C2' }, - { field: 'ShipCountry', headerText: 'Ship Country', editType: 'dropdownedit', width: 150 } + { field: 'OrderID', isPrimaryKey:true,headerText: 'Order ID', textAlign: 'Right', width: 120, type: 'number' }, + { field: 'CustomerName', width: 140, headerText: 'Customer Name', type: 'string' }, + { field: 'ProductID', headerText: 'Product ID' ,width: 120 }, + { field: 'ProductName', headerText: 'Product Name', width: 140} ], - height: 273 + height: 315 }); + grid.appendTo('#Grid'); -{% endhighlight %} -{% endtabs %} +// triggers at initial render of the Grid +function created() { + // initial state needs to be sent manually + dataStateChange(state); +} +function dataStateChange (state) { + const query = grid.getDataModule().generateQuery(); + getOrders(state, query).then((result) => { + grid.dataSource = result.result; // Assign the result to the data property + }); +} +``` + +**Step 11:** Finally, you can start both the server and client concurrently using the start script. + +```bash +npm start +``` + +> Replace https://localhost:xxxx/orders with the actual URL of your API endpoint that provides the data in a consumable format (e.g., JSON). + + +{% endif %} + + +## Handling filtering operation + +When filtering operation is performed in the grid, the `dataStateChange` event is triggered, providing access to the following referenced arguments within the event. + +![FilterBar](../images/databining/remote-filter.png) + +You can change the new grid data state of filter action as follows: + +{% if page.publishingplatform == "typescript" %} +```typescript +// Apply filtering +const applyFiltering = (query:Query, filter:Filter)=> { + // Check if filter columns are specified + if (filter.columns && filter.columns.length) { + // Apply filtering for each specified column + for (let i = 0; i < filter.columns.length; i++) { + const field = filter.columns[i].field; + const operator = filter.columns[i].operator; + const value = filter.columns[i].value; + query.where(field, operator, value); + } + } + else { + // Apply filtering based on direct filter conditions + for (let i = 0; i < filter.length; i++) { + const { fn, e } = filter[i]; + if (fn === 'onWhere') { + query.where(e as string); + } + } + } +} +/** GET all data from the server */ +export function getOrders(state:any, action:any) { + const query = new Query(); + // filter + if (state.where) { + applyFiltering(query, action.queries); + } + query.isCountRequired = true + + // Request the data from server using fetch + return fetch(baseUrl) + .then(res => res.json()) + .then(data => { + // Create a DataManager instance with your fetched data + const dataManager = new DataManager(data.result); + // Execute local data operations using the provided query + const result = dataManager.executeLocal(query); + // Return the result along with the count of total records + return { + result: result, // Result of the data + count: (result as any).count // Total record count based on fetched data length + }; + }); +} +``` {% elsif page.publishingplatform == "javascript" %} -{% tabs %} -{% highlight js tabtitle="index.js" %} -var data = new ej.data.DataManager({ - url: 'https://services.odata.org/V4/Northwind/Northwind.svc/Orders/?$top=7', - BatchUrl: 'https://localhost:xxxx/odata/Orders/BatchUpdate', // custom URL for batch update - adaptor: new ej.data.ODataV4Adaptor() -}); +```typescript + +// Apply filtering +const applyFiltering = (query, filter)=> { +// Check if filter columns are specified + if (filter.columns && filter.columns.length) { + // Apply filtering for each specified column + for (let i = 0; i < filter.columns.length; i++) { + const field = filter.columns[i].field; + const operator = filter.columns[i].operator; + const value = filter.columns[i].value; + query.where(field, operator, value); + } + } + else { + // Apply filtering based on direct filter conditions + for (let i = 0; i < filter.length; i++) { + const { fn, e } = filter[i]; + if (fn === 'onWhere') { + query.where(e as string); + } + } + } +} +/** GET all data from the server */ +export function getOrders(state, action) { + const query = new Query(); + // filter + if (state.where) { + applyFiltering(query, action.queries); + } + query.isCountRequired = true + + // Request the data from server using fetch + return fetch(baseUrl) + .then(res => res.json()) + .then(data => { + // Create a DataManager instance with your fetched data + const dataManager = new DataManager(data.result); + // Execute local data operations using the provided query + const result = dataManager.executeLocal(query); + // Return the result along with the count of total records + return { + result: result, // Result of the data + count: result.count // Total record count based on fetched data length + }; + }); +} +``` +{% endif %} -ej.grids.Grid.Inject(ej.grids.Edit, ej.grids.Toolbar); -var grid = new ej.grids.Grid({ - dataSource: data, - toolbar: ['Add', 'Edit', 'Delete', 'Update', 'Cancel'], - editSettings: { allowEditing: true, allowAdding: true, allowDeleting: true, mode: 'Batch' }, - columns: [ - { field: 'OrderID', headerText: 'Order ID', textAlign: 'Right', width: 120, type: 'number' isPrimaryKey: true, validationRules: { required: true } }, - { field: 'CustomerID', width: 140, headerText: 'Customer ID', type: 'string' validationRules: { required: true, minLength: 3 } }, - { field: 'Freight', headerText: 'Freight', textAlign: 'Right', width: 120, format: 'C' }, - { field: 'OrderDate', headerText: 'Order Date', width: 140, format: 'yMd' } - ] -}); -grid.appendTo('#Grid'); -{% endhighlight %} -{% endtabs %} +![Filtering Multiple Values](../images/databining/remote-multiple-filter.png) + +When filtering multiple values, you can get the predicates as arguments in the `dataStateChange` event. You can create your predicate execution based on the predicates values. + +## Handling searching operation + +When performing a search operation in the grid, the `dataStateChange` event is triggered, allowing access to the following referenced arguments within the event + +![Searching](../images/databining/remote-serach.png) + +You can change the new grid data state of search action as follows: + +{% if page.publishingplatform == "typescript" %} + +```typescript +// Apply searching +const applySearching = (query:Query, search:Search[])=> { + // Check if a search operation is requested + if (search && search.length > 0) { + // Extract the search key and fields from the search array + const { fields, key } = search[0]; + // perform search operation using the field and key on the query + query.search(key, fields); + } +} +/** GET all data from the server */ +export function getOrders(state:any, action:any) { + const query = new Query(); + // search + if (state.search) { + applySearching(query, state.search); + }; + query.isCountRequired = true + // Request the data from server using fetch + return fetch(baseUrl) + .then(res => res.json()) + .then(data => { + // Create a DataManager instance with your fetched data + const dataManager = new DataManager(data.result); + // Execute local data operations using the provided query + const result = dataManager.executeLocal(query); + // Return the result along with the count of total records + return { + result: result, // Result of the data + count: (result as any).count // Total record count based on fetched data length + }; + }); + } +``` +{% elsif page.publishingplatform == "javascript" %} +```typescript +// Apply searching +const applySearching = (query, search)=> { + // Check if a search operation is requested + if (search && search.length > 0) { + // Extract the search key and fields from the search array + const { fields, key } = search[0]; + // perform search operation using the field and key on the query + query.search(key, fields); + } +} +/** GET all data from the server */ +export function getOrders(state, action) { + const query = new Query(); + // search + if (state.search) { + applySearching(query, state.search); + }; + query.isCountRequired = true + // Request the data from server using fetch + return fetch(baseUrl) + .then(res => res.json()) + .then(data => { + // Create a DataManager instance with your fetched data + const dataManager = new DataManager(data.result); + // Execute local data operations using the provided query + const result = dataManager.executeLocal(query); + // Return the result along with the count of total records + return { + result: result, // Result of the data + count: result.count // Total record count based on fetched data length + }; + }); + } +``` {% endif %} -## Web API adaptor -You can use **WebApiAdaptor** to bind grid with Web API created using OData endpoint. +## Handling sorting operation -```ts -import { Grid } from '@syncfusion/ej2-grids'; -import { DataManager, WebApiAdaptor } from '@syncfusion/ej2-data'; +When sorting operation is performed in the grid, the dataStateChange event is triggered, and within this event, you can access the following referenced arguments. -let data: DataManager = new DataManager({ - url: '/api/OrderAPI', - adaptor: new WebApiAdaptor -}); +![Sorting](../images/databining/remote-sort.png) -let grid: Grid = new Grid({ - dataSource: data, - columns: [ - { field: 'OrderID', headerText: 'Order ID', textAlign: 'Right', width: 120, type: 'number' }, - { field: 'CustomerID', width: 140, headerText: 'Customer ID', type: 'string' }, - { field: 'Freight', headerText: 'Freight', textAlign: 'Right', width: 120, format: 'C' }, - { field: 'OrderDate', headerText: 'Order Date', width: 140, format: 'yMd' } - ] -}); +When performing multi-column sorting, you can get the below referred arguments in the `dataStateChange` event. -grid.appendTo('#Grid'); +![Multi Sorting](../images/databining/remote-multiple-sort.png) + +You can change the new grid data state of sort action as follows: +{% if page.publishingplatform == "typescript" %} + +```typescript +// Apply sorting +const applySorting = (query:Query, sorted:sortInfo[]) =>{ + // Check if sorting data is available + if (sorted && sorted.length > 0) { + // Iterate through each sorting info + sorted.forEach(sort => { + // Get the sort field name either by name or field + const sortField = sort.name || sort.field; + // Perform sort operation using the query based on the field name and direction + query.sortBy(sortField, sort.direction); + }); + } +} +/** GET all data from the server */ +export function getOrders(state:any, action:any) { + const query = new Query(); + // sort + if (state.sorted) { + state.sorted.length ? applySorting(query, state.sorted) : + // initial sorting + state.sorted.columns.length ? applySorting(query, state.sorted.columns) : null + } + query.isCountRequired = true + // Request the data from server using fetch + return fetch(baseUrl) + .then(res => res.json()) + .then(data => { + // Create a DataManager instance with your fetched data + const dataManager = new DataManager(data.result); + // Execute local data operations using the provided query + const result = dataManager.executeLocal(query); + // Return the result along with the count of total records + return { + result: result, // Result of the data + count: (result as any).count // Total record count based on fetched data length + }; + }); +} +``` +{% elsif page.publishingplatform == "javascript" %} + +```typescript +// Apply sorting +const applySorting = (query, sorted) =>{ + // Check if sorting data is available + if (sorted && sorted.length > 0) { + // Iterate through each sorting info + sorted.forEach(sort => { + // Get the sort field name either by name or field + const sortField = sort.name || sort.field; + // Perform sort operation using the query based on the field name and direction + query.sortBy(sortField, sort.direction); + }); + } +} +/** GET all data from the server */ +export function getOrders(state, action) { + const query = new Query(); + // sort + if (state.sorted) { + state.sorted.length ? applySorting(query, state.sorted) : + // initial sorting + state.sorted.columns.length ? applySorting(query, state.sorted.columns) : null + } + query.isCountRequired = true + // Request the data from server using fetch + return fetch(baseUrl) + .then(res => res.json()) + .then(data => { + // Create a DataManager instance with your fetched data + const dataManager = new DataManager(data.result); + // Execute local data operations using the provided query + const result = dataManager.executeLocal(query); + // Return the result along with the count of total records + return { + result: result, // Result of the data + count: (result as any).count // Total record count based on fetched data length + }; + }); +} ``` +{% endif %} +## Handling paging operation -The response object should contain properties, **Items** and **Count**, whose values are a collection of entities and total count of the entities, respectively. +When paging operation is performed in the grid, the `dataStateChange` event is triggered, and within this event, you can access the following referenced arguments. -The sample response object should look like this: +![Paging](../images/databining/remote-paging.png) +You can change the new grid data state of page action as follows: + +{% if page.publishingplatform == "typescript" %} + +```typescript +// Apply paging +const applyPaging = (query:Query, state: { take: number; skip: number; })=> { + // Check if both 'take' and 'skip' values are available + if (state.take && state.skip) { + // Calculate pageSkip and pageTake values to get pageIndex and pageSize + const pageSkip = state.skip / state.take + 1; + const pageTake = state.take; + query.page(pageSkip, pageTake); + } + // If if only 'take' is available and 'skip' is 0, apply paging for the first page. + else if (state.skip === 0 && state.take) { + query.page(1, state.take); + } +} +/** GET all data from the server */ +export function getOrders(state:any, action:any) { + const query = new Query(); + // page + applyPaging(query, state) + query.isCountRequired = true + // Request the data from server using fetch + return fetch(baseUrl) + .then(res => res.json()) + .then(data => { + // Create a DataManager instance with your fetched data + const dataManager = new DataManager(data.result); + // Execute local data operations using the provided query + const result = dataManager.executeLocal(query); + // Return the result along with the count of total records + return { + result: result, // Result of the data + count: (result as any).count // Total record count based on fetched data length + }; + }); +} ``` -{ - Items: [{..}, {..}, {..}, ...], - Count: 830 +{% elsif page.publishingplatform == "javascript" %} + +```typescript +// Apply paging +const applyPaging = (query, state)=> { + // Check if both 'take' and 'skip' values are available + if (state.take && state.skip) { + // Calculate pageSkip and pageTake values to get pageIndex and pageSize + const pageSkip = state.skip / state.take + 1; + const pageTake = state.take; + query.page(pageSkip, pageTake); + } + // If if only 'take' is available and 'skip' is 0, apply paging for the first page. + else if (state.skip === 0 && state.take) { + query.page(1, state.take); + } +} +/** GET all data from the server */ +export function getOrders(state, action) { + const query = new Query(); + // page + applyPaging(query, state) + query.isCountRequired = true + // Request the data from server using fetch + return fetch(baseUrl) + .then(res => res.json()) + .then(data => { + // Create a DataManager instance with your fetched data + const dataManager = new DataManager(data.result); + // Execute local data operations using the provided query + const result = dataManager.executeLocal(query); + // Return the result along with the count of total records + return { + result: result, // Result of the data + count: result.count // Total record count based on fetched data length + }; + }); } ``` +{% endif %} +## Handling grouping operation -## Remote save adaptor +When grouping operation is performed in the grid, the `dataStateChange` event is triggered, providing access to the following referenced arguments within the event. -You may need to perform all Grid Actions in client-side except the CRUD operations, that should be interacted with server-side to persist data. It can be achieved in Grid by using **RemoteSaveAdaptor**. +![Grouping](../images/databining/remote-group.png) -Datasource must be set to **json** property and set **RemoteSaveAdaptor** to the **adaptor** property. CRUD operations can be mapped to server-side using **updateUrl**, **insertUrl**, **removeUrl**, **batchUrl**, **crudUrl** properties. +You can change the new grid data state of group action as follows: -You can use the following code example to use **RemoteSaveAdaptor** in Grid. +{% if page.publishingplatform == "typescript" %} -```ts -import { Grid, Edit, Toolbar } from '@syncfusion/ej2-grids'; -import { DataManager, RemoteSaveAdaptor } from '@syncfusion/ej2-data'; -import { data } from './datasource.ts'; - -Grid.Inject(Edit, Toolbar); - -let dataSource: DataManager = new DataManager({ - json: data, - adaptor: new RemoteSaveAdaptor, - insertUrl: '/Home/Insert', - updateUrl: '/Home/Update', - removeUrl: '/Home/Delete' -}); +```typescript +// Apply grouping +const applyGrouping = (query:Query, group:string[]) =>{ + // Check if sorting data is available + if (group.length > 0) { + // Iterate through each group info + group.forEach((column: string) => { + // perform group operation using the column on the query + query.group(column); + }); + } +} +/** GET all data from the server */ +export function getOrders(state:any, action:any) { + const query = new Query(); + // grouping + if (state.group) { + state.group.length ? applyGrouping(query, state.group) : + // initial grouping + state.group.columns.length ? applyGrouping(query, state.group.columns) : null + } + query.isCountRequired = true + // Request the data from server using fetch + return fetch(baseUrl) + .then(res => res.json()) + .then(data => { + // Create a DataManager instance with your fetched data + const dataManager = new DataManager(data.result); + // Execute local data operations using the provided query + const result = dataManager.executeLocal(query); + // Return the result along with the count of total records + return { + result: result, // Result of the data + count:(result as any).count // Total record count based on fetched data length + }; + }); +} +``` +{% elsif page.publishingplatform == "javascript" %} +```typescript + +// Apply grouping +const applyGrouping = (query:Query, group) =>{ + // Check if sorting data is available + if (group.length > 0) { + // Iterate through each group info + group.forEach((column) => { + // perform group operation using the column on the query + query.group(column); + }); + } +} +/** GET all data from the server */ +export function getOrders(state, action) { + const query = new Query(); + // grouping + if (state.group) { + state.group.length ? applyGrouping(query, state.group) : + // initial grouping + state.group.columns.length ? applyGrouping(query, state.group.columns) : null + } + query.isCountRequired = true + + // Request the data from server using fetch + return fetch(baseUrl) + .then(res => res.json()) + .then(data => { + // Create a DataManager instance with your fetched data + const dataManager = new DataManager(data.result); + // Execute local data operations using the provided query + const result = dataManager.executeLocal(query); + // Return the result along with the count of total records + return { + result: result, // Result of the data + count:result.count // Total record count based on fetched data length + }; + }); +} +``` +{% endif %} +> * In order to utilize group actions, it is necessary to manage the sorting query within your service. -let grid: Grid = new Grid({ - dataSource: dataSource, - toolbar: ['Add', 'Edit', 'Delete', 'Update', 'Cancel'], - editSettings: { allowEditing: true, allowAdding: true, allowDeleting: true }, - columns: [ - { field: 'OrderID', headerText: 'Order ID', isPrimaryKey: true, textAlign: 'Right', width: 120, type: 'number' }, - { field: 'CustomerID', width: 140, headerText: 'Customer ID', type: 'string' }, - { field: 'Freight', headerText: 'Freight', textAlign: 'Right', width: 120, format: 'C' }, - { field: 'OrderDate', headerText: 'Order Date', width: 140, format: 'yMd' } - ] -}); +**Lazy load grouping** -grid.appendTo('#Grid'); +In ##Platform_Name##, lazy loading refers to the technique of loading data dynamically when they are needed, instead of loading everything upfront. Lazy load grouping allows you to load and display grouped data efficiently by fetching only the required data on demand. +To enable this feature, you need to set the [groupSettings.enableLazyLoading](../../api/grid/groupSettings/#enableLazyLoading) property to **true**. Also, you need to manage the state based on the initial grid action as follows. +{% if page.publishingplatform == "typescript" %} +```typescript +const groupSettings:object = { enableLazyLoading: true, columns: ['ProductName'], showGroupedColumn: true, }; +const state:DataStateChangeEventArgs = { skip:0, take: 12, group: groupSettings as string[]}; +``` +{% elsif page.publishingplatform == "javascript" %} +```typescript +const groupSettings = { enableLazyLoading: true, columns: ['ProductName'], showGroupedColumn: true, }; +const state = { skip:0, take: 12, group: groupSettings}; ``` +{% endif %} + +Based on the initial state, you can get the arguments as shown below -The following code example describes the CRUD operations handled at server-side. +![Lazy load group](../images/databining/remote-lazyload.png) +You can change the grid state as follows: +{% if page.publishingplatform == "typescript" %} + +```typescript +// Apply grouping +const applyGrouping = (query:Query, group:any) =>{ + // Check if sorting data is available + if (group.length > 0) { + // Iterate through each group info + group.forEach((column: string) => { + // perform group operation using the column on the query + query.group(column); + }); + } +} +// Apply lazy load grouping +const applyLazyLoad = (query:Query, payload:any) => { + // Configure lazy loading for the main data + if (payload.isLazyLoad) { + query.lazyLoad.push({ key: 'isLazyLoad', value: true }); + // If on-demand group loading is enabled, configure lazy loading for grouped data + if (payload.onDemandGroupInfo) { + query.lazyLoad.push({ + key: 'onDemandGroupInfo', + value: payload.action.lazyLoadQuery, + }); + } + } +} +/** GET all data from the server */ +export function getOrders(state:any, action:any) { + const query = new Query(); + // grouping + if (state.group) { + state.group.length ? applyGrouping(query, state.group) : + // initial grouping + state.group.columns.length ? applyGrouping(query, state.group.columns) : null + } + // lazy load grouping + if (state.group) { + if (state.isLazyLoad) { + applyLazyLoad(query, state) + } + if (state.group.enableLazyLoading) { + query.lazyLoad.push({ key: 'isLazyLoad', value: true }) + } + } + query.isCountRequired = true + // Request the data from server using fetch + return fetch(baseUrl) + .then(res => res.json()) + .then(data => { + // Create a DataManager instance with your fetched data + const dataManager = new DataManager(data.result); + // Execute local data operations using the provided query + const result = dataManager.executeLocal(query); + // Return the result along with the count of total records + return { + result: result, // Result of the data + count: (result as any).count // Total record count based on fetched data length + }; + }); +} ``` - public ActionResult Update(OrdersDetails value) - { - ... - return Json(value); +{% elsif page.publishingplatform == "javascript" %} + +```typescript +// Apply grouping +const applyGrouping = (query, group) =>{ + // Check if sorting data is available + if (group.length > 0) { + // Iterate through each group info + group.forEach((column: string) => { + // perform group operation using the column on the query + query.group(column); + }); + } +} +// Apply lazy load grouping +const applyLazyLoad = (query, payload) => { + // Configure lazy loading for the main data + if (payload.isLazyLoad) { + query.lazyLoad.push({ key: 'isLazyLoad', value: true }); + // If on-demand group loading is enabled, configure lazy loading for grouped data + if (payload.onDemandGroupInfo) { + query.lazyLoad.push({ + key: 'onDemandGroupInfo', + value: payload.action.lazyLoadQuery, + }); } - public ActionResult Insert(OrdersDetails value) - { - ... - return Json(value); + } +} +/** GET all data from the server */ +export function getOrders(state, action) { + const query = new Query(); + // grouping + if (state.group) { + state.group.length ? applyGrouping(query, state.group) : + // initial grouping + state.group.columns.length ? applyGrouping(query, state.group.columns) : null + } + // lazy load grouping + if (state.group) { + if (state.isLazyLoad) { + applyLazyLoad(query, state) } - public ActionResult Delete(int key) - { - ... - return Json(data); + if (state.group.enableLazyLoading) { + query.lazyLoad.push({ key: 'isLazyLoad', value: true }) } + } + query.isCountRequired = true + // Request the data from server using fetch + return fetch(baseUrl) + .then(res => res.json()) + .then(data => { + // Create a DataManager instance with your fetched data + const dataManager = new DataManager(data.result); + // Execute local data operations using the provided query + const result = dataManager.executeLocal(query); + // Return the result along with the count of total records + return { + result: result, // Result of the data + count: (result as any).count // Total record count based on fetched data length + }; + }); +} ``` +{% endif %} + +> Further information can be accessed in the respective documentation for [lazy load grouping](../grouping/lazy-load-grouping). + +## Handling CRUD operations + +The Grid component provides powerful options for dynamically inserting, deleting, and updating records, enabling you to modify data directly within the grid. This feature is useful when you want to perform CRUD (Create, Read, Update, Delete) operations seamlessly. + +Integrating CRUD Operations + +To implement CRUD operations using Syncfusion Grid, follow these steps: + +1. **Configure grid settings:** Set up the necessary grid settings, such as editing, adding, and deleting records. Define the toolbar options to facilitate your interactions. -## Custom adaptor +2. **Handle data state changes:** Utilize the [dataStateChange](../../api/grid/#datastatechange) event to respond to changes in the grid’s data state. This event is triggered whenever you interact with the grid, such as paging or sorting. -You can create your own adaptor by extending the built-in adaptors. The following demonstrates custom adaptor approach and how to add a serial number for the records by overriding the built-in response processing using the **processResponse** method of the **ODataAdaptor**. +3. **Execute CRUD operations:** Within the event handler for [dataSourceChanged](../../api/grid/#datasourcechanged), implement logic to handle various CRUD actions based on the action or requestType property of the event arguments. +4. **Call endEdit method:** After performing CRUD operations (adding, editing, or deleting), call the endEdit method to signal the completion of the operation and update the grid accordingly. + +**Insert operation** + +When an insert operation is performed in the grid, the `dataSourceChanged` event will be triggered, allowing access to the following referenced arguments within the event. + +![Insert record](../images/databining/remote-add.png) {% if page.publishingplatform == "typescript" %} - {% tabs %} -{% highlight ts tabtitle="index.ts" %} -{% include code-snippet/grid/grid-cs15/index.ts %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/grid/grid-cs15/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/grid/grid-cs15" %} +```ts +// add +export function addRecord(order:order: Object | Object[] | undefined) { + return fetch(baseUrl , { + method: "post", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify({ + value: order + }) + }) + .then((data) => { + return data; + }); +} +``` +{% elsif page.publishingplatform == "javascript" %} +```ts +// add +export function addRecord(order) { + return fetch(baseUrl , { + method: "post", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify({ + value: order + }) + }) + .then((data) => { + return data; + }); +} +``` +{% endif %} + +**Edit operation** + +When an edit operation is performed in the grid, the `dataSourceChanged` event will be triggered, providing access to the following referenced arguments within the event. + +![Edit record](../images/databining/remote-update.png) +{% if page.publishingplatform == "typescript" %} + +```ts +// update +export function updateRecord(order:any) { + return fetch(`${baseUrl}/${order.OrderID}`, { + method: "put", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify({ + value: order + }) + }) + .then(data => { + return data; + }); +} +``` {% elsif page.publishingplatform == "javascript" %} +```ts +// update +export function updateRecord(order) { + return fetch(`${baseUrl}/${order.OrderID}`, { + method: "put", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify({ + value: order + }) + }) + .then(data => { + return data; + }); +} +``` +{% endif %} +**Delete operation** -{% tabs %} -{% highlight js tabtitle="index.js" %} -{% include code-snippet/grid/grid-cs15/index.js %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/grid/grid-cs15/index.html %} -{% endhighlight %} -{% endtabs %} +When a delete operation is performed in the grid, the `dataSourceChanged` event will be triggered, allowing access to the following referenced arguments within the event. + +![Delete record](../images/databining/remote-delete.png) + +{% if page.publishingplatform == "typescript" %} + +```ts +// delete +export function deleteRecord(primaryKey:any) { + return fetch(`${baseUrl}/${primaryKey}`, { + method: "delete", + body: JSON.stringify({ + value: primaryKey + }) + }) + .then(data => { + return data; + }); +} +``` +{% elsif page.publishingplatform == "javascript" %} + +```ts +// delete +export function deleteRecord(primaryKey) { + return fetch(`${baseUrl}/${primaryKey}`, { + method: "delete", + body: JSON.stringify({ + value: primaryKey + }) + }) + .then(data => { + return data; + }); +} +``` +{% endif %} + +The following example demonstrates how to bind custom data to handle grid actions and CRUD operation. + +{% if page.publishingplatform == "typescript" %} + {% tabs %} + {% highlight ts tabtitle="app.ts" %} + {% include code-snippet/grid/remote-custom-binding/app.ts %} + {% endhighlight %} + {% highlight html tabtitle="index.html" %} + {% include code-snippet/grid/remote-custom-binding/index.html %} + {% endhighlight %} + {% highlight css tabtitle="styles.css" %} + {% include code-snippet/grid/remote-custom-binding/styles.css %} + {% endhighlight %} + {% highlight ts tabtitle="server.ts" %} + {% include code-snippet/grid/remote-custom-binding/server.ts %} + {% endhighlight %} + {% highlight ts tabtitle="orderService.ts" %} + {% include code-snippet/grid/remote-custom-binding/orderService.ts %} + {% endhighlight %} + {% highlight ts tabtitle="datasource.ts" %} + {% include code-snippet/grid/remote-custom-binding/datasource.ts %} + {% endhighlight %} + {% endtabs %} +{% elsif page.publishingplatform == "javascript" %} + {% tabs %} + {% highlight js tabtitle="index.js" %} + {% include code-snippet/grid/remote-custom-binding2/index.js %} + {% endhighlight %} + {% highlight html tabtitle="index.html" %} + {% include code-snippet/grid/remote-custom-binding2/index.html %} + {% endhighlight %} + {% highlight js tabtitle="server.js" %} + {% include code-snippet/grid/remote-custom-binding2/server.js %} + {% endhighlight %} + {% highlight js tabtitle="orderService.js" %} + {% include code-snippet/grid/remote-custom-binding2/orderService.js %} + {% endhighlight %} + {% highlight js tabtitle="datasource.js" %} + {% include code-snippet/grid/remote-custom-binding2/datasource.js %} + {% endhighlight %} + {% endtabs %} +{% endif %} + +The following screenshot represents the grid action with custom binding + +![Grid with Custom Binding](../images/databining/remote-custom-binding.gif) + +> * While working with grid edit operation, defining the [isPrimaryKey](../../api/grid/#isprimarykey) property of column is a mandatory step. In case the primary key column is not defined, the edit or delete action will take place on the first row of the grid. +> * Need to maintain the same instance for all grid actions. + +## Sending additional parameters to the server + +The Syncfusion Grid component allows you to include custom parameters in data requests. This feature is particularly useful when you need to provide additional information to the server enhanced processing. + +By utilizing the [query](../../api/grid/#query) property of the grid along with the `addParams` method of the Query class, you can easily incorporate custom parameters into data requests for every grid action. + +To enable custom parameters in data requests for the grid component, follow these steps: -{% previewsample "page.domainurl/code-snippet/grid/grid-cs15" %} +**1. Bind the Query Object to the Grid**: Assign the initialized query object to the query property of the Syncfusion Grid component. + +**2. Initialize the Query Object:** Create a new instance of the Query class and use the addParams method to add the custom parameters. + +**3. Handle Data State Changes:** If you need to dynamically update the data based on interactions, implement the dataStateChange event handler to execute the query with the updated state. + +**4. Execute Data Request:** In the service, execute the data request by combining the custom parameters with other query parameters such as paging and sorting. + +The following example demonstrates how to send additional parameters to the server. + +{% if page.publishingplatform == "typescript" %} + {% tabs %} + {% highlight ts tabtitle="app.ts" %} + {% include code-snippet/grid/remote-add-params/app.ts %} + {% endhighlight %} + {% highlight html tabtitle="index.html" %} + {% include code-snippet/grid/remote-add-params/index.html %} + {% endhighlight %} + {% highlight css tabtitle="styles.css" %} + {% include code-snippet/grid/remote-add-params/styles.css %} + {% endhighlight %} + {% highlight ts tabtitle="server.ts" %} + {% include code-snippet/grid/remote-add-params/server.ts %} + {% endhighlight %} + {% highlight ts tabtitle="orderService.ts" %} + {% include code-snippet/grid/remote-add-params/orderService.ts %} + {% endhighlight %} + {% highlight ts tabtitle="datasource.ts" %} + {% include code-snippet/grid/remote-add-params/datasource.ts %} + {% endhighlight %} + {% endtabs %} +{% elsif page.publishingplatform == "javascript" %} + {% tabs %} + {% highlight js tabtitle="index.js" %} + {% include code-snippet/grid/remote-add-params2/index.js %} + {% endhighlight %} + {% highlight html tabtitle="index.html" %} + {% include code-snippet/grid/remote-add-params2/index.html %} + {% endhighlight %} + {% highlight js tabtitle="server.js" %} + {% include code-snippet/grid/remote-add-params2/server.js %} + {% endhighlight %} + {% highlight js tabtitle="orderService.js" %} + {% include code-snippet/grid/remote-add-params2/orderService.js %} + {% endhighlight %} + {% highlight js tabtitle="datasource.js" %} + {% include code-snippet/grid/remote-add-params2/datasource.js %} + {% endhighlight %} + {% endtabs %} {% endif %} +![AdditionalParameters](../images/databining/remote-additional-params.png) + ## Offline mode -On remote data binding, all grid actions such as paging, sorting, editing, grouping, filtering, etc, will be processed on server-side. To avoid postback for every action, set the grid to load all data on initialization and make the actions process in client-side. To enable this behavior, use the **offline** property of [`DataManager`](../../data). +On remote data binding, all grid actions such as paging, sorting, editing, grouping, filtering, etc, will be processed on server-side. To avoid post back for every action, set the grid to load all data on initialization and make the actions process in client-side. To enable this behavior, use the `offline` property of [DataManager](../../data). {% if page.publishingplatform == "typescript" %} - {% tabs %} +{% tabs %} {% highlight ts tabtitle="index.ts" %} {% include code-snippet/grid/grid-cs16/index.ts %} {% endhighlight %} @@ -402,4 +1461,4 @@ On remote data binding, all grid actions such as paging, sorting, editing, group {% endtabs %} {% previewsample "page.domainurl/code-snippet/grid/grid-cs16" %} -{% endif %} \ No newline at end of file +{% endif %} diff --git a/ej2-javascript/grid/editing/edit-types.md b/ej2-javascript/grid/editing/edit-types.md index d74d456ac..148cb8045 100644 --- a/ej2-javascript/grid/editing/edit-types.md +++ b/ej2-javascript/grid/editing/edit-types.md @@ -372,6 +372,39 @@ The following sample code demonstrates the customization applied to DatePicker c {% previewsample "page.domainurl/code-snippet/grid/edit-datepicker-control" %} {% endif %} +### Disable the date value prior to the selected date value in DatePicker control + +The Syncfusion Grid allows configuring the [DatePicker](../../datepicker) control to dynamically set a minimum date for selection. This feature ensures that users can select dates only from a specified minimum date onward, based on the context of each row's data. This functionality is particularly useful in maintaining data accuracy by preventing users from selecting invalid or illogical dates. + +The following example demonstrates how to configure the `DatePicker` control within the grid using the **edit** parameters of a column. This setup dynamically restricts the selection of dates in the DatePicker's calendar based on the data in the current row. + +{% if page.publishingplatform == "typescript" %} + +{% tabs %} +{% highlight ts tabtitle="index.ts" %} +{% include code-snippet/grid/hide-dates-cs1/index.ts %} +{% endhighlight %} +{% highlight html tabtitle="index.html" %} +{% include code-snippet/grid/hide-dates-cs1/index.html %} +{% endhighlight %} +{% endtabs %} + +{% previewsample "page.domainurl/code-snippet/grid/hide-dates-cs1" %} + +{% elsif page.publishingplatform == "javascript" %} + +{% tabs %} +{% highlight js tabtitle="index.js" %} +{% include code-snippet/grid/hide-dates-cs1/index.js %} +{% endhighlight %} +{% highlight html tabtitle="index.html" %} +{% include code-snippet/grid/hide-dates-cs1/index.html %} +{% endhighlight %} +{% endtabs %} + +{% previewsample "page.domainurl/code-snippet/grid/hide-dates-cs1" %} +{% endif %} + ## Customize DateTimePicker control of datetimepickeredit type You can customize the DateTimePicker control in Grid edit form using its property. This customization allows you to configure various properties of the DateTimePicker, tailoring its behavior and appearance to match your specific requirements within the Grid. The behavior of the editor control can be fine-tuned through the [columns->edit->params](../../api/grid/column/#edit) property. diff --git a/ej2-javascript/grid/images/databining/remote-add.png b/ej2-javascript/grid/images/databining/remote-add.png new file mode 100644 index 000000000..6f533c98d Binary files /dev/null and b/ej2-javascript/grid/images/databining/remote-add.png differ diff --git a/ej2-javascript/grid/images/databining/remote-additional-params.png b/ej2-javascript/grid/images/databining/remote-additional-params.png new file mode 100644 index 000000000..235198eb3 Binary files /dev/null and b/ej2-javascript/grid/images/databining/remote-additional-params.png differ diff --git a/ej2-javascript/grid/images/databining/remote-custom-binding.gif b/ej2-javascript/grid/images/databining/remote-custom-binding.gif new file mode 100644 index 000000000..13e6f1653 Binary files /dev/null and b/ej2-javascript/grid/images/databining/remote-custom-binding.gif differ diff --git a/ej2-javascript/grid/images/databining/remote-delete.png b/ej2-javascript/grid/images/databining/remote-delete.png new file mode 100644 index 000000000..21ac373be Binary files /dev/null and b/ej2-javascript/grid/images/databining/remote-delete.png differ diff --git a/ej2-javascript/grid/images/databining/remote-filter.png b/ej2-javascript/grid/images/databining/remote-filter.png new file mode 100644 index 000000000..55f3ab830 Binary files /dev/null and b/ej2-javascript/grid/images/databining/remote-filter.png differ diff --git a/ej2-javascript/grid/images/databining/remote-group.png b/ej2-javascript/grid/images/databining/remote-group.png new file mode 100644 index 000000000..ad46621ef Binary files /dev/null and b/ej2-javascript/grid/images/databining/remote-group.png differ diff --git a/ej2-javascript/grid/images/databining/remote-lazyload.png b/ej2-javascript/grid/images/databining/remote-lazyload.png new file mode 100644 index 000000000..6d1f4d990 Binary files /dev/null and b/ej2-javascript/grid/images/databining/remote-lazyload.png differ diff --git a/ej2-javascript/grid/images/databining/remote-multiple-filter.png b/ej2-javascript/grid/images/databining/remote-multiple-filter.png new file mode 100644 index 000000000..13d893eef Binary files /dev/null and b/ej2-javascript/grid/images/databining/remote-multiple-filter.png differ diff --git a/ej2-javascript/grid/images/databining/remote-multiple-sort.png b/ej2-javascript/grid/images/databining/remote-multiple-sort.png new file mode 100644 index 000000000..78c98c92c Binary files /dev/null and b/ej2-javascript/grid/images/databining/remote-multiple-sort.png differ diff --git a/ej2-javascript/grid/images/databining/remote-paging.png b/ej2-javascript/grid/images/databining/remote-paging.png new file mode 100644 index 000000000..10f45d7a9 Binary files /dev/null and b/ej2-javascript/grid/images/databining/remote-paging.png differ diff --git a/ej2-javascript/grid/images/databining/remote-serach.png b/ej2-javascript/grid/images/databining/remote-serach.png new file mode 100644 index 000000000..0bc8b1057 Binary files /dev/null and b/ej2-javascript/grid/images/databining/remote-serach.png differ diff --git a/ej2-javascript/grid/images/databining/remote-sort.png b/ej2-javascript/grid/images/databining/remote-sort.png new file mode 100644 index 000000000..5587ff4b4 Binary files /dev/null and b/ej2-javascript/grid/images/databining/remote-sort.png differ diff --git a/ej2-javascript/grid/images/databining/remote-update.png b/ej2-javascript/grid/images/databining/remote-update.png new file mode 100644 index 000000000..2aa9adfbd Binary files /dev/null and b/ej2-javascript/grid/images/databining/remote-update.png differ diff --git a/ej2-javascript/grid/scrolling/virtual-scrolling.md b/ej2-javascript/grid/scrolling/virtual-scrolling.md index 5b742d09e..eea213326 100644 --- a/ej2-javascript/grid/scrolling/virtual-scrolling.md +++ b/ej2-javascript/grid/scrolling/virtual-scrolling.md @@ -23,7 +23,7 @@ To set up row virtualization, you need to define the [enableVirtualization](../. The number of records displayed in the Grid is implicitly determined by the height of the content area. Additionally, you have an option to explicitly define the visible number of records using the [pageSettings->pageSize](../../api/grid/pageSettingsModel/#pagesize) property. The loaded data will be cached and reused when needed in the future. -The following example enable row virutalization using `enableVirtualization` property. +The following example enable row virtualization using `enableVirtualization` property. {% if page.publishingplatform == "typescript" %} @@ -118,7 +118,8 @@ The following example enable using `enableColumnVirtualization` property. * While using column virtual scrolling, column width should be in pixel. Percentage values are not accepted. * Selected column details are only retained within the viewport. When the next set of columns is loaded, the selection for previously visible columns is lost. -* The cell selection is not supported for column virtual scrolling +* The cell selection is not supported for column virtual scrolling. +* The **Ctrl + Home** and **Ctrl + End** keys are not supported when using column virtual scrolling. * The following features are compatible with column virtualization and work within the viewport: 1. Column resizing 2. Column reordering @@ -334,4 +335,4 @@ In the following image, you can see how many records will be scrollable when set ### Solution 3: Using paging instead of virtual scrolling -Similar to virtual scrolling, the [paging](../../grid/paging/) feature also loads the data in an on-demand concept. Pagination is also compatible with all the other features(Grouping, Editing, etc.) in Grid. So, use the paging feature instead of virtual scrolling to view a large number of records in the Grid without any kind of performance degradation or browser height limitation. \ No newline at end of file +Similar to virtual scrolling, the [paging](../../grid/paging/) feature also loads the data in an on-demand concept. Pagination is also compatible with all the other features(Grouping, Editing, etc.) in Grid. So, use the paging feature instead of virtual scrolling to view a large number of records in the Grid without any kind of performance degradation or browser height limitation. diff --git a/ej2-javascript/grid/tool-bar/tool-bar.md b/ej2-javascript/grid/tool-bar/tool-bar.md index 2ac26d716..414fe675f 100644 --- a/ej2-javascript/grid/tool-bar/tool-bar.md +++ b/ej2-javascript/grid/tool-bar/tool-bar.md @@ -13,7 +13,7 @@ domainurl: ##DomainURL## The toolbar in the Syncfusion ##Platform_Name## Grid control offers several general use cases to enhance data manipulation and overall experience. Actions such as adding, editing, and deleting records within the grid can be performed, providing efficient data manipulation capabilities. The toolbar also facilitates data export and import functionality, allowing you to generate downloadable files in formats like Excel, CSV, or PDF. -To enable the toolbar functionality, you need to inject the **Toolbar** module in the grid. This module provides the necessary methods to interact with the toolbar items. The toolbar can be customized with built-in toolbar items or custom toolbar items using the [toolbar](../../api/grid/#toolbar) property. The `toolbar` property accepts an array of strings representing the built-in toolbar items or an array of [ItemModel](../../api/toolbar/itemModel) objects for custom toolbar items. +To enable the toolbar functionality, you need to inject the **Toolbar** module in the grid. This module provides the necessary methods to interact with the toolbar items. The toolbar can be customized with built-in toolbar items or custom toolbar items using the [toolbar](../../api/grid/#toolbar) property. The `toolbar` property accepts an array of strings representing the built-in toolbar items or an array of [ItemModel](../../api/toolbar/itemModel/) objects for custom toolbar items. The following example demonstrates how to enable toolbar items in the grid. diff --git a/ej2-javascript/heatmap-chart/js/getting-started.md b/ej2-javascript/heatmap-chart/js/getting-started.md index 407f6d5f9..3cd88e809 100644 --- a/ej2-javascript/heatmap-chart/js/getting-started.md +++ b/ej2-javascript/heatmap-chart/js/getting-started.md @@ -22,7 +22,7 @@ The Essential JS 2 JavaScript controls can be initialized by using either of the ### Using local script and style references in a HTML page -**Step 1:** Create an app folder `myapp` for Essential JS 2 JavaScript controls. +**Step 1:** Create an app folder `quickstart` for Essential JS 2 JavaScript controls. **Step 2:** You can get the global scripts and styles from the [Essential Studio JavaScript (Essential JS 2)](https://www.syncfusion.com/downloads/essential-js2) build installed location. @@ -33,9 +33,9 @@ The Essential JS 2 JavaScript controls can be initialized by using either of the > Script: `C:/Program Files (x86)/Syncfusion/Essential Studio/16.2.45/Essential JS 2/ej2-heatmap/dist/global/ej2-heatmap.min.js` -**Step 3:** Create a folder `myapp/resources` and copy/paste the dependent scripts and styles from the above installed location to `myapp/resources` location. +**Step 3:** Create a folder `quickstart/resources` and copy/paste the dependent scripts and styles from the above installed location to `quickstart/resources` location. -**Step 4:** Create a HTML page (index.html) in `myapp` location and add the Essentials JS 2 script and style references. +**Step 4:** Create a HTML page (index.html) in `quickstart` location and add the Essentials JS 2 script and style references. ```html @@ -91,7 +91,6 @@ The Essential JS 2 JavaScript controls can be initialized by using either of the **Example:** > Script: [`https://cdn.syncfusion.com/ej2/23.1.36/dist/ej2.min.js`](https://cdn.syncfusion.com/ej2/23.1.36/dist/ej2.min.js) -> **or** @@ -111,7 +110,37 @@ The Essential JS 2 JavaScript controls can be initialized by using either of the > > [`https://cdn.syncfusion.com/ej2/23.1.36/ej2-svg-base/dist/global/ej2-svg-base.min.js`](https://cdn.syncfusion.com/ej2/23.1.36/ej2-svg-base/dist/global/ej2-svg-base.min.js) -**Step 3:** Create a HTML page (index.html) in `quickstart` location and add the CDN link references. Now, add the `div` element and initiate the `Essential JS 2 Heatmap` control in the index.html by using following code. +Create a HTML page (**index.html**) in **~/quickstart** location and add the CDN link references. Now, add the **div** element and initiate the `Essential JS 2 Heatmap` control in the **index.html** by using following code. + +``` + + + + Essential JS 2 + + + + + + + +
          + + + +``` + +> Please replace {RELEASE_VERSION} with the latest version number in the script file referred to in the sample. + +**Step 3:** Now, run the **index.html** in web browser, it will render the `Essential JS 2 HeatMap` control. + +The below example shows a basic HeatMap control. {% tabs %} {% highlight html tabtitle="index.html" %} @@ -121,8 +150,6 @@ The Essential JS 2 JavaScript controls can be initialized by using either of the {% previewsample "page.domainurl/code-snippet/heatmap/es5-getting-started-cs1" %} -**Step 4:** Now, run the **index.html** in web browser, it will render the `Essential JS 2 HeatMap` control. - ## Populate HeatMap with data This section explains how to populate the following two-dimensional array data to the HeatMap. diff --git a/ej2-javascript/image-editor/annotation.md b/ej2-javascript/image-editor/annotation.md index fd685851c..fce88248c 100644 --- a/ej2-javascript/image-editor/annotation.md +++ b/ej2-javascript/image-editor/annotation.md @@ -191,7 +191,7 @@ By leveraging the [`shapeChanging`](https://ej2.syncfusion.com/javascript/docume {% previewsample "page.domainurl/code-snippet/image-editor/annotation-cs4" %} {% endif %} -### Add Additional font family +### Add additional font family The [`fontFamily`](https://ej2.syncfusion.com/javascript/documentation/api/image-editor/#fontFamily) property in the Image Editor control provides the flexibility to incorporate supplementary font families, expanding your options for text styling and ensuring a broader range of fonts can be utilized within your design or content. The font value will be determined by the 'id' property. @@ -560,7 +560,7 @@ In the following example, you can use the [`drawImage`](https://ej2.syncfusion.c {% previewsample "page.domainurl/code-snippet/image-editor/annotation-cs11" %} {% endif %} -### Customize Default Stroke Color for Shapes +### Customize default stroke color for shapes We provide default settings for stroke color, stroke width, fill color, and other customizations. If users wish to modify only the default options while preserving their previously selected customizations, they can do so by utilizing the [`shapeChanging`](https://ej2.syncfusion.com/javascript/documentation/api/image-editor/#shapechanging) event. Within this event, users can update the values in the `currentShapeSettings` object to apply their own preferences instead of the defaults. This approach allows conditional updates to the `currentShapeSettings`, ensuring that only the desired defaults are changed while maintaining the other settings. diff --git a/ej2-javascript/image-editor/how-to/clear-image.md b/ej2-javascript/image-editor/how-to/clear-image.md index af4ae548c..56ded41e5 100644 --- a/ej2-javascript/image-editor/how-to/clear-image.md +++ b/ej2-javascript/image-editor/how-to/clear-image.md @@ -9,7 +9,7 @@ documentation: ug domainurl: ##DomainURL## --- -### Clear an Image +# Clear an Image The [`clearImage`](https://ej2.syncfusion.com/javascript/documentation/api/image-editor/#clearimage) method in the image editor control is indeed useful for scenarios where you need to ensure that the image editor is emptied before reopening it, especially if the editor is used within a dialog. By using [`clearImage`](https://ej2.syncfusion.com/javascript/documentation/api/image-editor/#clearimage) before closing the dialog, you can ensure that the editor does not retain the previously loaded image when the dialog is reopened. This allows users to start fresh with a new image selection. diff --git a/ej2-javascript/image-editor/how-to/render-dialog.md b/ej2-javascript/image-editor/how-to/render-dialog.md index 6a2a35bfa..7a073730c 100644 --- a/ej2-javascript/image-editor/how-to/render-dialog.md +++ b/ej2-javascript/image-editor/how-to/render-dialog.md @@ -9,7 +9,7 @@ documentation: ug domainurl: ##DomainURL## --- -### Render Image Editor in Dialog +# Render Image Editor in Dialog Rendering the Image Editor in a dialog involves displaying the image editor component within a modal dialog window, allowing users to edit images in a pop-up interface. This can be useful for maintaining a clean layout and providing a focused editing experience without navigating away from the current page. diff --git a/ej2-javascript/image-editor/how-to/reset-image.md b/ej2-javascript/image-editor/how-to/reset-image.md index 4a293580c..405918cce 100644 --- a/ej2-javascript/image-editor/how-to/reset-image.md +++ b/ej2-javascript/image-editor/how-to/reset-image.md @@ -9,7 +9,7 @@ documentation: ug domainurl: ##DomainURL## --- -### Reset an image +# Reset an Image The [`reset`](https://ej2.syncfusion.com/javascript/documentation/api/image-editor/#reset) method in the Image Editor control provides the capability to undo all the changes made to an image and revert it back to its original state. This method is particularly useful when multiple adjustments, annotations, or transformations have been applied to an image and you want to start over with the original, unmodified version of the image. diff --git a/ej2-javascript/image-editor/image-restrictions.md b/ej2-javascript/image-editor/image-restrictions.md new file mode 100644 index 000000000..10cb4e159 --- /dev/null +++ b/ej2-javascript/image-editor/image-restrictions.md @@ -0,0 +1,86 @@ +--- +layout: post +title: Image Restrictions in ##Platform_Name## Image editor control | Syncfusion +description: Learn here all about Image Restrictions in Syncfusion ##Platform_Name## Image editor control of Syncfusion Essential JS 2 and more. +platform: ej2-javascript +control: Image Restrictions +publishingplatform: ##Platform_Name## +documentation: ug +domainurl: ##DomainURL## +--- + +# Image Restrictions in the ##Platform_Name## Image Editor control + +The Image Editor allows users to specify image extensions, as well as the minimum and maximum image sizes for uploaded or loaded images using the [`uploadSettings`](https://ej2.syncfusion.com/documentation/api/image-editor/#uploadsettings) property. End users will receive a clear alert message if an uploaded image does not meet the defined criteria, ensuring a seamless and user-friendly upload experience. + +`Note:` File restrictions apply when uploading images to the Image Editor, whether through the open method or the built-in uploader. If uploadSettings is not defined in the sample, the Image Editor, by default, allows files with .jpg, .png, .svg, and .webp extensions, without any file size restrictions. + +## Allowed image extensions + +The Image Editor allows users to specify acceptable file extensions for uploaded images using the [`uploadSettings.allowedExtensions`](https://ej2.syncfusion.com/documentation/api/image-editor/uploadSettingsModel/#allowedextensions) property, ensuring that only supported formats, such as `.jpg`, `.png`, and `.webp` and `.svg` are allowed. This helps maintain compatibility and prevents errors caused by unsupported file types. By default, the Image Editor allows files with .jpg, .png, .webp, and .svg extensions. + +`Note:` To specify allowed extensions in the upload settings, use the format '.png, .svg', listing the permitted file types as a comma-separated string. + +Here is an example of configuring image restrictions using the `uploadSettings` property. + +{% if page.publishingplatform == "typescript" %} + +{% tabs %} +{% highlight ts tabtitle="index.ts" %} +{% include code-snippet/image-editor/image-restrictions-cs1/index.ts %} +{% endhighlight %} +{% highlight html tabtitle="index.html" %} +{% include code-snippet/image-editor/image-restrictions-cs1/index.html %} +{% endhighlight %} +{% endtabs %} + +{% previewsample "page.domainurl/code-snippet/image-editor/image-restrictions-cs1" %} + +{% elsif page.publishingplatform == "javascript" %} + +{% tabs %} +{% highlight js tabtitle="index.js" %} +{% include code-snippet/image-editor/image-restrictions-cs1/index.js %} +{% endhighlight %} +{% highlight html tabtitle="index.html" %} +{% include code-snippet/image-editor/image-restrictions-cs1/index.html %} +{% endhighlight %} +{% endtabs %} + +{% previewsample "page.domainurl/code-snippet/image-editor/image-restrictions-cs1" %} +{% endif %} + +## Minimum and maximum image Size + +The Image Editor allows users to specify the minimum and maximum size limits for uploaded image files by using the [uploadSettings.minFileSize](https://ej2.syncfusion.com/documentation/api/image-editor/uploadSettingsModel/#minfilesize) and [uploadSettings.maxFileSize](https://ej2.syncfusion.com/documentation/api/image-editor/uploadSettingsModel/#maxfilesize) properties. This ensures that images meet specific requirements, maintaining consistency and preventing oversized or undersized files from being processed. + +`Note:` Users can also upload images as base64 strings, in which case file extension validation is bypassed, but file size restrictions still apply. + +Here is an example of configuring image restrictions using the [`uploadSettings`] property. + +{% if page.publishingplatform == "typescript" %} + +{% tabs %} +{% highlight ts tabtitle="index.ts" %} +{% include code-snippet/image-editor/image-restrictions-cs2/index.ts %} +{% endhighlight %} +{% highlight html tabtitle="index.html" %} +{% include code-snippet/image-editor/image-restrictions-cs2/index.html %} +{% endhighlight %} +{% endtabs %} + +{% previewsample "page.domainurl/code-snippet/image-editor/image-restrictions-cs2" %} + +{% elsif page.publishingplatform == "javascript" %} + +{% tabs %} +{% highlight js tabtitle="index.js" %} +{% include code-snippet/image-editor/image-restrictions-cs2/index.js %} +{% endhighlight %} +{% highlight html tabtitle="index.html" %} +{% include code-snippet/image-editor/image-restrictions-cs2/index.html %} +{% endhighlight %} +{% endtabs %} + +{% previewsample "page.domainurl/code-snippet/image-editor/image-restrictions-cs2" %} +{% endif %} \ No newline at end of file diff --git a/ej2-javascript/image-editor/open-save.md b/ej2-javascript/image-editor/open-save.md index 15e685ad7..8b57c8bf9 100644 --- a/ej2-javascript/image-editor/open-save.md +++ b/ej2-javascript/image-editor/open-save.md @@ -17,9 +17,9 @@ The getImageData method is used to get the image as ImageData and this can be lo ## Supported image formats -The Image Editor control supports three common image formats: PNG, JPEG, and SVG. These formats allow you to work with a wide range of image files within the Image Editor. +The Image Editor control supports four common image formats: PNG, JPEG, SVG and WEBP. These formats allow you to work with a wide range of image files within the Image Editor. -When it comes to saving the edited image, the default file type is set as PNG. This means that when you save the edited image without specifying a different file type, it will be saved as a PNG file. However, it's important to note that the Image Editor typically provides options or methods to specify a different file type if desired. This allows you to save the edited image in formats other than the default PNG, such as JPEG or SVG, based on your specific requirements or preferences. +When it comes to saving the edited image, the default file type is set as PNG. This means that when you save the edited image without specifying a different file type, it will be saved as a PNG file. However, it's important to note that the Image Editor typically provides options or methods to specify a different file type if desired. This allows you to save the edited image in formats other than the default PNG, such as JPEG, SVG or WEBP, based on your specific requirements or preferences. ## Open an image @@ -216,7 +216,7 @@ Users can easily open images in the Syncfusion Image Editor by dragging and drop {% endif %} -### Add Watermarks while opening an image +### Add watermarks while opening an image You can utilize the ‘[`fileOpened`](https://ej2.syncfusion.com/javascript/documentation/api/image-editor/#fileopened)’ event, which triggers once the image is loaded into the image editor. After this event, you can use the ‘[`drawText`](https://ej2.syncfusion.com/javascript/documentation/api/image-editor/#drawtext)’ method to add a watermark. This approach allows the watermark to be automatically drawn on the canvas every time an image is opened in the editor, making it useful for handling copyright-related content. @@ -249,7 +249,7 @@ You can utilize the ‘[`fileOpened`](https://ej2.syncfusion.com/javascript/docu ## Save as image -The [`export`](https://ej2.syncfusion.com/javascript/documentation/api/image-editor/#export) method is used to save the modified image as an image, and it accepts a file name and file type as parameters. The file type parameter supports PNG, JPEG, and SVG and the default file type is PNG. It also saves an image by clicking the save button from the toolbar and the supported file types are PNG, JPEG, and SVG. Users are allowed to save an image with a specified file name, file type, and image quality. This enhancement provides more control over the output, ensuring that users can save their work exactly as they need it. +The [`export`](https://ej2.syncfusion.com/javascript/documentation/api/image-editor/#export) method is used to save the modified image as an image, and it accepts a file name and file type as parameters. The file type parameter supports PNG, JPEG, SVG, WEBP and the default file type is PNG. It also saves an image by clicking the save button from the toolbar and the supported file types are PNG, JPEG, SVG and WEBP. Users are allowed to save an image with a specified file name, file type, and image quality. This enhancement provides more control over the output, ensuring that users can save their work exactly as they need it. In the following example, the [`export`](https://ej2.syncfusion.com/javascript/documentation/api/image-editor/#export) method is used in the button click event. @@ -346,7 +346,7 @@ To save an image as a blob, use the [`getImageData`](https://ej2.syncfusion.com/ {% previewsample "page.domainurl/code-snippet/image-editor/open-save-cs10" %} {% endif %} -### Add Watermarks while saving the image +### Add watermarks while saving the image User can utilize the ‘[`beforeSave`](https://ej2.syncfusion.com/javascript/documentation/api/image-editor/#beforesave)’ event, which triggers just before the image is downloaded, to apply a text annotation as a watermark. After the image is downloaded, the ‘[`saved`](https://ej2.syncfusion.com/javascript/documentation/api/image-editor/#saved)’ event is triggered, allowing you to remove the watermark using the ‘[`deleteShape`](https://ej2.syncfusion.com/javascript/documentation/api/image-editor/#deleteshape)’ method. This ensures that the watermark is only visible in the downloaded image and not in the editor. @@ -385,7 +385,7 @@ User can leverage the ‘[`toolbar`](https://ej2.syncfusion.com/javascript/docum User can make use of the ‘[`beforeSave`](https://ej2.syncfusion.com/javascript/documentation/api/image-editor/#beforesave)’ event, which triggers just before the image is downloaded, to override the default save option by setting `args.cancel` to true. Afterward, you can utilize the [`getImageData`](https://ej2.syncfusion.com/javascript/documentation/api/image-editor/#getimagedata) method to retrieve the current image data and convert it into a format like `byte[]`, `blob`, or `base64` for further processing. This gives you greater flexibility in handling the image data. -## Events to handle Save Actions +## Events to handle save actions The Image Editor provides several events related to opening and saving images. These events offer detailed control over the image handling process. For comprehensive information about these events, including their triggers and usage, please refer to the dedicated section on open and save support. This section will provide you with the specifics needed to effectively utilize these events in your application. diff --git a/ej2-javascript/image-editor/selection-cropping.md b/ej2-javascript/image-editor/selection-cropping.md index 532506aaa..7577fd57b 100644 --- a/ej2-javascript/image-editor/selection-cropping.md +++ b/ej2-javascript/image-editor/selection-cropping.md @@ -159,7 +159,7 @@ The parameter available in the [`cropping`](https://ej2.syncfusion.com/javascrip * CropEventArgs.cancel - To cancel the cropping action. -### Maintaining Original Image Size During Cropping +### Maintaining original image size during cropping In the image editor, when an image is cropped, it is usually enlarged or scaled to improve visibility within the user interface. If you want to prevent this scaling and maintain the original cropping size, you can bind to the ‘[`cropping`](https://ej2.syncfusion.com/javascript/documentation/api/image-editor/#cropping)’ event and set the `preventScaling` value to true. This not only keeps the image size consistent during cropping but also ensures that the saved image retains its original cropping size without being enlarged. @@ -190,7 +190,7 @@ In the image editor, when an image is cropped, it is usually enlarged or scaled {% previewsample "page.domainurl/code-snippet/image-editor/custom-selection-cs4" %} {% endif %} -### Locking Selection Area During Cropping +### Locking selection area during cropping When selecting an area for cropping, users can typically resize the selection from all corners and edges. If you want to prevent the resizing of the selection area, you can bind to the [`selectionChanging`](https://ej2.syncfusion.com/javascript/documentation/api/image-editor/#selectionchanging) event. Check if the action is `resize`, and if it is, set `previousSelectionSettings` value to `currentSelectionSettings` value. This will lock the selection area, preventing any adjustments to its size. @@ -221,7 +221,7 @@ When selecting an area for cropping, users can typically resize the selection fr {% previewsample "page.domainurl/code-snippet/image-editor/custom-selection-cs5" %} {% endif %} -### Cropping with Custom Ratio Selection +### Cropping with custom ratio selection Users can perform cropping either through the toolbar or by using our public methods. While predefined ratio selections are available in the toolbar, users can also crop with custom ratios using our public method, [`select`](https://ej2.syncfusion.com/javascript/documentation/api/image-editor/#select). Regardless of the ratio type used, the selection will adhere to the specified ratio, even when resizing the selection area. diff --git a/ej2-javascript/image-editor/toolbar.md b/ej2-javascript/image-editor/toolbar.md index 57e4ff07d..49cb09178 100644 --- a/ej2-javascript/image-editor/toolbar.md +++ b/ej2-javascript/image-editor/toolbar.md @@ -208,7 +208,7 @@ Here is an example of using [`toolbarTemplate`](https://ej2.syncfusion.com/javas {% previewsample "page.domainurl/code-snippet/image-editor/toolbar-template-cs1" %} {% endif %} -## Customize Contextual Toolbar +## Customize contextual toolbar The [`toolbarUpdating`](https://ej2.syncfusion.com/documentation/api/image-editor/#toolbarupdating) event is triggered when inserting or selecting annotations, which opens the contextual toolbar in the Image Editor. Within this event, the [`toolbarItems`](https://ej2.syncfusion.com/javascript/documentation/api/image-editor/toolbarEventArgs/#toolbaritems) property in the [`ToolbarEventArgs`](https://ej2.syncfusion.com/javascript/documentation/api/image-editor/toolbarEventArgs/) is utilized to add or remove contextual toolbar items. diff --git a/ej2-javascript/images/autocomplete-disable.png b/ej2-javascript/images/autocomplete-disable.png deleted file mode 100644 index 2abd2443a..000000000 Binary files a/ej2-javascript/images/autocomplete-disable.png and /dev/null differ diff --git a/ej2-javascript/images/combobox-disable.png b/ej2-javascript/images/combobox-disable.png deleted file mode 100644 index fb921f4c7..000000000 Binary files a/ej2-javascript/images/combobox-disable.png and /dev/null differ diff --git a/ej2-javascript/images/dropdownlist-disable.png b/ej2-javascript/images/dropdownlist-disable.png deleted file mode 100644 index fb921f4c7..000000000 Binary files a/ej2-javascript/images/dropdownlist-disable.png and /dev/null differ diff --git a/ej2-javascript/images/multiselect-disable.png b/ej2-javascript/images/multiselect-disable.png deleted file mode 100644 index c871b48b9..000000000 Binary files a/ej2-javascript/images/multiselect-disable.png and /dev/null differ diff --git a/ej2-javascript/linear-gauge/js/es5-getting-started.md b/ej2-javascript/linear-gauge/js/es5-getting-started.md index 26529643d..ce6f2e9c2 100644 --- a/ej2-javascript/linear-gauge/js/es5-getting-started.md +++ b/ej2-javascript/linear-gauge/js/es5-getting-started.md @@ -101,7 +101,6 @@ The [`Custom Resource Generator (CRG)`](https://crg.syncfusion.com/) is an onlin **Example:** > Script: [`https://cdn.syncfusion.com/ej2/23.1.36/dist/ej2.min.js`](https://cdn.syncfusion.com/ej2/23.1.36/dist/ej2.min.js) -> **or** @@ -121,9 +120,36 @@ The [`Custom Resource Generator (CRG)`](https://crg.syncfusion.com/) is an onlin > > [`https://cdn.syncfusion.com/ej2/23.1.36/ej2-pdf-export/dist/global/ej2-pdf-export.min.js`](https://cdn.syncfusion.com/ej2/23.1.36/ej2-pdf-export/dist/global/ej2-pdf-export.min.js) -**Step 3:** Create a HTML page (index.html) in **~/quickstart/index.html** location and add the CDN link references. Now, initiate the **Syncfusion JavaScript (ES5) Linear Gauge** control in the **index.html** by using following code. +Create a HTML page *(**index.html**) in **~/quickstart** location and add the CDN link references. Now, initiate the **Syncfusion JavaScript (ES5) Linear Gauge** control in the **index.html** by using following code. -The below example shows a basic linear gauge component. +```html + + + + Essential JS 2 + + + + + + + +
          Linear Gauge
          + + + +``` + +> Please replace {RELEASE_VERSION} with the latest version number in the script file referred to in the sample. + +**Step 3:** Now, run the **index.html** in web browser, it will render the **Syncfusion JavaScript Linear Gauge** control. + +The below example shows a basic Linear Gauge control. {% tabs %} {% highlight js tabtitle="index.js" %} @@ -136,8 +162,6 @@ The below example shows a basic linear gauge component. {% previewsample "page.domainurl/code-snippet/linear-gauge/es5-getting-started-cs1" %} -**Step 4:** Now, run the **index.html** in web browser, it will render the **Syncfusion JavaScript Linear Gauge** control. - ## Adding the Linear Gauge Title The title can be added to the Linear Gauge component using the [`title`](../api/linear-gauge/linearGaugeModel/#title) property in the Linear Gauge. diff --git a/ej2-javascript/list-box/accessibility.md b/ej2-javascript/list-box/accessibility.md index b993d1689..141b8185a 100644 --- a/ej2-javascript/list-box/accessibility.md +++ b/ej2-javascript/list-box/accessibility.md @@ -10,69 +10,86 @@ domainurl: ##DomainURL## --- # Accessibility in ##Platform_Name## List box control -The ListBox component followed the accessibility guidelines and standards, including [ADA](https://www.ada.gov/), [Section 508](https://www.section508.gov/), [WCAG 2.2](https://www.w3.org/TR/WCAG22/) standards, and [WCAG roles](https://www.w3.org/TR/wai-aria/#roles) that are commonly used to evaluate accessibility. +## ARIA Attributes -The accessibility compliance for the ListBox component is outlined below. +The web accessibility makes web content and web applications more accessible for people with disabilities. It especially helps in dynamic content change and development of advanced user interface controls with AJAX, HTML, JavaScript, and related technologies. ListBox provides built-in compliance with WAI-ARIA specifications. WAI-ARIA support is achieved through the attributes like `aria-multiselectable` and `aria-selected` applied for ListBox element and selected elements in the ListBox. It helps the people with disabilities by providing information about the widget for assistive technology in the screen readers. ListBox component contains the `listbox` role and `option` role. -| Accessibility Criteria | Compatibility | -| -- | -- | -| [WCAG 2.2](https://www.w3.org/TR/WCAG22/) Support | Yes | -| [Section 508](https://www.section508.gov/) Support | Yes | -| Screen Reader Support | Yes | -| Right-To-Left Support | Yes | -| Color Contrast | Yes | -| Mobile Device Support | Yes | -| Keyboard Navigation Support | Yes | -| [Accessibility Checker](https://www.npmjs.com/package/accessibility-checker) Validation | Yes | -| [Axe-core](https://www.npmjs.com/package/axe-core) Accessibility Validation | Yes | - - -
          Yes - All features of the component meet the requirement.
          - -
          Intermediate - Some features of the component do not meet the requirement.
          - -
          No - The component does not meet the requirement.
          - -## WAI-ARIA attributes - -The ListBox component followed the [WAI-ARIA](https://www.w3.org/WAI/ARIA/apg/patterns/listbox/) patterns to meet the accessibility. The following ARIA attributes are used in the ListBox component: - -| Attributes | Purpose | -| --- | --- | -| `role` | Indicates the ListBox component wrapper element as `listbox`, the `UL` element as `presentation`, and its list item as `option`. | -| `aria-label` | Provides an accessible name for the ListBox component. | -| `aria-multiselectable` | Applied to the element with the ListBox role, tells assistive technologies that the list supports multiple selection. The default value is true. | -| `aria-selected` | Applied to elements with role option that are visually styled as selected to inform assistive technologies that the options are selected. | +| Properties | Functionality | +| ------------ | ----------------------- | +| listbox | This role will be specified for root element. | +| aria-multiselectable | Applied to the element with the ListBox role, tells assistive technologies that the list supports multiple selection. The default value is true. | +| option | Identifies each selectable element containing the name of an option. | +| aria-selected | Applied to elements with role option that are visually styled as selected to inform assistive technologies that the options are selected. | ## Keyboard interaction -The ListBox component followed the [keyboard interaction](https://www.w3.org/WAI/ARIA/apg/patterns/listbox/#keyboardinteraction) guideline, making it easy for people who use assistive technologies (AT) and those who completely rely on keyboard navigation. The following keyboard shortcuts are supported by the ListBox component. - -| **Press** | **To do this** | -| --- | --- | -| Up arrow | Moves focus to the previous option. | -| Down arrow | Moves focus to the next option. | -| Home | Moves focus to first option. | -| End | Moves focus to last option. | -| Space | Changes the selection state of the focused option. | -| Ctrl + A | Selects all options in the list. | -| Ctrl + Shift + Home | Selects the focused option and all options up to the first option. | -| Ctrl + Shift + End | Selects the focused option and all options down to the last option. | -| Ctrl + (Up or Down) | Press Ctrl key with up / down arrow or mouse to select multiple items. | - -## Ensuring accessibility + + + + + + + + + + + + + + + + + + + + + + +
          +Keyboard shortcuts +Actions
          +Up arrow +Moves focus to the previous option.
          +Down arrow +Moves focus to the next option.
          +Home +Moves focus to first option.
          +End +Moves focus to last option.
          +Space +Changes the selection state of the focused option.
          +Ctrl + A +Selects all options in the list.
          +Ctrl + Shift + Home +Selects the focused option and all options up to the first option.
          +Ctrl + Shift + End +Selects the focused option and all options down to the last option.
          +Ctrl + (Up or Down) +Press Ctrl key with up / down arrow or mouse to select multiple items.
          + +{% if page.publishingplatform == "typescript" %} + + {% tabs %} +{% highlight ts tabtitle="index.ts" %} +{% include code-snippet/list-box/getting-started-cs1/index.ts %} +{% endhighlight %} +{% highlight html tabtitle="index.html" %} +{% include code-snippet/list-box/getting-started-cs1/index.html %} +{% endhighlight %} +{% endtabs %} + +{% previewsample "page.domainurl/code-snippet/list-box/getting-started-cs1" %} -The ListBox component's accessibility levels are ensured through an [accessibility-checker](https://www.npmjs.com/package/accessibility-checker) and [axe-core](https://www.npmjs.com/package/axe-core) software tools during automated testing. +{% elsif page.publishingplatform == "javascript" %} -The accessibility compliance of the ListBox component is shown in the following sample. Open the [sample](https://ej2.syncfusion.com/accessibility/list-box.html) in a new window to evaluate the accessibility of the ListBox component with accessibility tools. +{% tabs %} +{% highlight js tabtitle="index.js" %} +{% include code-snippet/list-box/getting-started-cs1/index.js %} +{% endhighlight %} +{% highlight html tabtitle="index.html" %} +{% include code-snippet/list-box/getting-started-cs1/index.html %} +{% endhighlight %} +{% endtabs %} {% previewsample "page.domainurl/code-snippet/list-box/getting-started-cs1" %} - -## See also - -* [Accessibility in Syncfusion ##Platform_Name## components](../common/accessibility) \ No newline at end of file +{% endif %} \ No newline at end of file diff --git a/ej2-javascript/list-box/drag-and-drop.md b/ej2-javascript/list-box/drag-and-drop.md index fccf7833f..ea82ea3e6 100644 --- a/ej2-javascript/list-box/drag-and-drop.md +++ b/ej2-javascript/list-box/drag-and-drop.md @@ -87,6 +87,37 @@ In the following sample, the `allowDragAndDrop` property is set as `true` and `s {% previewsample "page.domainurl/code-snippet/list-box/multiple-list-box-cs1" %} {% endif %} +## Dual ListBox with drag and drop + +The toolbar and drag and drop actions between two listboxes can be enabled by setting a listbox unique id and the same [`scope`](../api/list-box/#scope) property value. + +{% if page.publishingplatform == "typescript" %} + +{% tabs %} +{% highlight ts tabtitle="index.ts" %} +{% include code-snippet/list-box/dual-drag-list-box-cs1/index.ts %} +{% endhighlight %} +{% highlight html tabtitle="index.html" %} +{% include code-snippet/list-box/dual-drag-list-box-cs1/index.html %} +{% endhighlight %} +{% endtabs %} + +{% previewsample "page.domainurl/code-snippet/list-box/dual-drag-list-box-cs1" %} + +{% elsif page.publishingplatform == "javascript" %} + +{% tabs %} +{% highlight js tabtitle="index.js" %} +{% include code-snippet/list-box/dual-drag-list-box-cs1/index.js %} +{% endhighlight %} +{% highlight html tabtitle="index.html" %} +{% include code-snippet/list-box/dual-drag-list-box-cs1/index.html %} +{% endhighlight %} +{% endtabs %} + +{% previewsample "page.domainurl/code-snippet/list-box/dual-drag-list-box-cs1" %} +{% endif %} + ## See Also * [How to reorder the items in the list box](./dual-list-box#dual-list-box) \ No newline at end of file diff --git a/ej2-javascript/list-box/how-to/filter-listbox.md b/ej2-javascript/list-box/how-to/filter-listbox.md deleted file mode 100644 index 0d194abc0..000000000 --- a/ej2-javascript/list-box/how-to/filter-listbox.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -layout: post -title: Filter List box Data Using TextBox in ##Platform_Name## List box control | Syncfusion -description: Learn here all about Filter ListBox Data in Syncfusion ##Platform_Name## List box control of Syncfusion Essential JS 2 and more. -platform: ej2-javascript -control: Filter ListBox -publishingplatform: ##Platform_Name## -documentation: ug -domainurl: ##DomainURL## ---- - -# How to Filter ListBox Data Using TextBox Component - -This example demonstrates how to filter Syncfusion ListBox data based on input from a TextBox. Bind an input event listener to the TextBox to capture user input and filter the items in the ListBox. Within the event handler, use the [`filter`](../../api/list-box/#filter) method to update the ListBox items, ensuring that only those matching the input text are included. - -{% if page.publishingplatform == "typescript" %} - - {% tabs %} -{% highlight ts tabtitle="index.ts" %} -{% include code-snippet/list-box/filter-listbox-cs1/index.ts %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/list-box/filter-listbox-cs1/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/list-box/filter-listbox-cs1" %} - -{% elsif page.publishingplatform == "javascript" %} - -{% tabs %} -{% highlight js tabtitle="index.js" %} -{% include code-snippet/list-box/filter-listbox-cs1/index.js %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/list-box/filter-listbox-cs1/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/list-box/filter-listbox-cs1" %} -{% endif %} \ No newline at end of file diff --git a/ej2-javascript/list-box/selection.md b/ej2-javascript/list-box/selection.md index 23c9b01c0..d03a2ef61 100644 --- a/ej2-javascript/list-box/selection.md +++ b/ej2-javascript/list-box/selection.md @@ -123,4 +123,4 @@ To select all the items in the list box, [`showSelectAll`](../api/list-box/selec ## See Also -* [How to select items in list box](./icons-and-templates#Select-items-to-the-list-box) \ No newline at end of file +* [How to select items in list box](./icons-and-templates/#Select-items-to-the-list-box) \ No newline at end of file diff --git a/ej2-javascript/list-box/sorting-and-grouping.md b/ej2-javascript/list-box/sorting-and-grouping.md index d33a90d0c..106bf0ebe 100644 --- a/ej2-javascript/list-box/sorting-and-grouping.md +++ b/ej2-javascript/list-box/sorting-and-grouping.md @@ -112,5 +112,5 @@ The ListBox also supports grouping of list items under specific groups by initia ## See Also -* [How to bind the data source to the list box](./getting-started#binding-data-source) -* [How to initialize the list box](./getting-started#initialize-the-listbox) +* [How to bind the data source to the list box](./getting-started/#binding-data-source) +* [How to initialize the list box](./getting-started/#initialize-the-listbox) diff --git a/ej2-javascript/list-box/ts/getting-started.md b/ej2-javascript/list-box/ts/getting-started.md index 7ac4afba5..6e8e2398d 100644 --- a/ej2-javascript/list-box/ts/getting-started.md +++ b/ej2-javascript/list-box/ts/getting-started.md @@ -11,9 +11,7 @@ domainurl: ##DomainURL## # Getting started in ##Platform_Name## List box control -This section explains how to create a simple **ListBox** component and configure its available functionalities in TypeScript using the Essential JS 2 [quickstart](https://github.com/SyncfusionExamples/ej2-quickstart-webpack) seed repository. - -> This application is integrated with the `webpack.config.js` configuration and uses the latest version of the [webpack-cli](https://webpack.js.org/api/cli/#commands). It requires node `v14.15.0` or higher. For more information about webpack and its features, refer to the [webpack documentation](https://webpack.js.org/guides/getting-started/). +This section explains how to create a simple **ListBox** component and configure its available functionalities in TypeScript using the Essential JS 2 [`quickstart`](https://github.com/syncfusion/ej2-quickstart.git) seed repository. ## Dependencies @@ -30,57 +28,50 @@ The following list of dependencies are required to use the ListBox component in |-- @syncfusion/ej2-buttons ``` -## Set up development environment - -Open the command prompt from the required directory, and run the following command to clone the Syncfusion JavaScript (Essential JS 2) quickstart project from [GitHub](https://github.com/SyncfusionExamples/ej2-quickstart-webpack). - -{% tabs %} -{% highlight bash tabtitle="CMD" %} - -git clone https://github.com/SyncfusionExamples/ej2-quickstart-webpack- ej2-quickstart - -{% endhighlight %} -{% endtabs %} - -After cloning the application in the `ej2-quickstart` folder, run the following command line to navigate to the `ej2-quickstart` folder. - -{% tabs %} -{% highlight bash tabtitle="CMD" %} - -cd ej2-quickstart - -{% endhighlight %} -{% endtabs %} - -## Add Syncfusion JavaScript packages +## Set up of the development environment -Syncfusion JavaScript (Essential JS 2) packages are available on the [npmjs.com](https://www.npmjs.com/~syncfusionorg) public registry. You can install all Syncfusion JavaScript (Essential JS 2) controls in a single [@syncfusion/ej2](https://www.npmjs.com/package/@syncfusion/ej2) package or individual packages for each control. - -The quickstart application is preconfigured with the dependent [@syncfusion/ej2](https://www.npmjs.com/package/@syncfusion/ej2) package in the `~/package.json` file. Use the following command to install the dependent npm packages from the command prompt. - -{% tabs %} -{% highlight bash tabtitle="NPM" %} +To get started with the ListBox component, you have to clone the Essential JS 2 [`quickstart`](https://github.com/syncfusion/ej2-quickstart.git) project and install the npm packages by using the following commands. +``` +git clone https://github.com/syncfusion/ej2-quickstart.git quickstart +cd quickstart npm install +``` -{% endhighlight %} -{% endtabs %} - -## Import the Syncfusion CSS styles - -To render Listbox component, need to import dropdowns and its dependent components styles as given below in in the `~/src/styles/styles.css` file, as shown below: - -{% tabs %} -{% highlight css tabtitle="style.css" %} - -@import "../../node_modules/@syncfusion/ej2-base/styles/material.css"; -@import "../../node_modules/@syncfusion/ej2-inputs/styles/material.css"; -@import "../../node_modules/@syncfusion/ej2-lists/styles/material.css"; -@import "../../node_modules/@syncfusion/ej2-popups/styles/material.css"; -@import "../../node_modules/@syncfusion/ej2-dropdowns/styles/material.css"; +>The [project](https://github.com/syncfusion/ej2-quickstart.git) is preconfigured with common settings (`src/styles/styles.css`, `system.config.js` ) to start all the Essential JS 2 components. + +* Refer to the [Button component dependencies](./getting-started#dependencies) in `system.config.js` configuration file. + +`[src/system.config.js]` + +```js +System.config({ + paths: { + 'npm:': './node_modules/', + 'syncfusion:': 'npm:@syncfusion/' + }, + map: { + app: 'app', + + //Syncfusion packages mapping + "@syncfusion/ej2-base": "syncfusion:ej2-base/dist/ej2-base.umd.min.js", + "@syncfusion/ej2-data": "syncfusion:ej2-data/dist/ej2-data.umd.min.js", + "@syncfusion/ej2-inputs": "syncfusion:ej2-inputs/dist/ej2-inputs.umd.min.js", + "@syncfusion/ej2-buttons": "syncfusion:ej2-buttons/dist/ej2-buttons.umd.min.js", + "@syncfusion/ej2-lists": "syncfusion:ej2-lists/dist/ej2-lists.umd.min.js", + "@syncfusion/ej2-popups": "syncfusion:ej2-popups/dist/ej2-popups.umd.min.js", + "@syncfusion/ej2-dropdowns": "syncfusion:ej2-dropdowns/dist/ej2-dropdowns.umd.min.js", + }, + packages: { + 'app': { main: 'app', defaultExtension: 'js' } + } +}); -{% endhighlight %} -{% endtabs %} +System.import('app.ts').catch(console.error.bind(console)).then(function () { + document.getElementById('loader').style.display = "none"; + document.getElementById('container').style.visibility = "visible"; +}); +``` ## Initialize the ListBox @@ -88,9 +79,7 @@ Add the HTML input element that needs to be initialized as a ListBox in `index.h `[src/index.html]` -{% tabs %} -{% highlight html tabtitle="index.html" %} - +```html @@ -101,6 +90,13 @@ Add the HTML input element that needs to be initialized as a ListBox in `index.h + + + + + + + @@ -112,16 +108,13 @@ Add the HTML input element that needs to be initialized as a ListBox in `index.h - -{% endhighlight %} -{% endtabs %} +``` Now, import the ListBox component to your `app.ts` and initialize it to the element `#listbox` as shown below. `[src/app/app.ts]` -{% tabs %} -{% highlight ts tabtitle="app.ts" %} +```ts import { ListBox } from '@syncfusion/ej2-dropdowns'; @@ -131,15 +124,13 @@ let listObj: ListBox = new ListBox(); // render initialized ListBox listObj.appendTo('#listbox'); -{% endhighlight %} -{% endtabs %} +``` ## Binding data source After initialization, populate the ListBox with data using the [`dataSource`](../api/list-box/#datasource) property. Here, an array of object is passed to the ListBox component. -{% tabs %} -{% highlight ts tabtitle="app.ts" %} +```ts import { ListBox } from '@syncfusion/ej2-dropdowns'; @@ -164,21 +155,28 @@ let listObj: ListBox = new ListBox({ }); listObj.appendTo('#listbox'); -{% endhighlight %} -{% endtabs %} +``` + +## Adding Style sheet to the Application + +To render Listbox component, need to import dropdowns and its dependent components styles as given below in `styles.css`. + +``` +@import "../node_modules/@syncfusion/ej2-base/styles/material.css"; +@import "../node_modules/@syncfusion/ej2-inputs/styles/material.css"; +@import "../node_modules/@syncfusion/ej2-lists/styles/material.css"; +@import "../node_modules/@syncfusion/ej2-popups/styles/material.css"; +@import "../node_modules/@syncfusion/ej2-dropdowns/styles/material.css"; +``` ## Run the application After completing the configuration required to render a basic ListBox, run the following command to display the output in your default browser. -{% tabs %} -{% highlight bash tabtitle="NPM" %} - +``` npm start - -{% endhighlight %} -{% endtabs %} +``` The following example illustrates the output in your browser. @@ -195,5 +193,5 @@ The following example illustrates the output in your browser. ## See Also -* [How to reorder the items in the list box](./dual-list-box#dual-list-box) -* [How to form submit to the list box](./how-to/form-submit#form-submit-to-the-list-box) \ No newline at end of file +* [How to reorder the items in the list box](./dual-list-box/#dual-list-box) +* [How to form submit to the list box](./how-to/form-submit/#form-submit-to-the-list-box) \ No newline at end of file diff --git a/ej2-javascript/listview/accessibility.md b/ej2-javascript/listview/accessibility.md index 020b7226f..4ec44ba2c 100644 --- a/ej2-javascript/listview/accessibility.md +++ b/ej2-javascript/listview/accessibility.md @@ -1,7 +1,7 @@ --- layout: post -title: Accessibility in ##Platform_Name## Listview component | Syncfusion -description: Learn here all about Accessibility in Syncfusion ##Platform_Name## Listview component of Syncfusion Essential JS 2 and more. +title: Accessibility in ##Platform_Name## ListView control | Syncfusion +description: Learn here all about Accessibility in Syncfusion ##Platform_Name## ListView control of Syncfusion Essential JS 2 and more. platform: ej2-javascript control: Accessibility publishingplatform: ##Platform_Name## @@ -9,11 +9,11 @@ documentation: ug domainurl: ##DomainURL## --- -# Accessibility in ##Platform_Name## Listview component +# Accessibility in ##Platform_Name## ListView control -The ListView component followed the accessibility guidelines and standards, including [ADA](https://www.ada.gov/), [Section 508](https://www.section508.gov/), [WCAG 2.2](https://www.w3.org/TR/WCAG22/) standards, and [WCAG roles](https://www.w3.org/TR/wai-aria/#roles) that are commonly used to evaluate accessibility. +The ListView control followed the accessibility guidelines and standards, including [ADA](https://www.ada.gov/), [Section 508](https://www.section508.gov/), [WCAG 2.2](https://www.w3.org/TR/WCAG22/) standards, and [WCAG roles](https://www.w3.org/TR/wai-aria/#roles) that are commonly used to evaluate accessibility. -The accessibility compliance for the ListView component is outlined below. +The accessibility compliance for the ListView control is outlined below. | Accessibility Criteria | Compatibility | | -- | -- | @@ -33,15 +33,15 @@ The accessibility compliance for the ListView component is outlined below. margin: 0.5em 0; } -
          Yes - All features of the component meet the requirement.
          +
          Yes - All features of the control meet the requirement.
          -
          Intermediate - Some features of the component do not meet the requirement.
          +
          Intermediate - Some features of the control do not meet the requirement.
          -
          No - The component does not meet the requirement.
          +
          No - The control does not meet the requirement.
          ## WAI-ARIA attributes -The ListView component followed the [WAI-ARIA](https://www.w3.org/WAI/ARIA/apg/patterns/listbox/) patterns to meet the accessibility. The following ARIA attributes are used in the ListView component: +The ListView control followed the [WAI-ARIA](https://www.w3.org/WAI/ARIA/apg/patterns/listbox/) patterns to meet the accessibility. The following ARIA attributes are used in the ListView control: | Attributes | Purpose | | --- | --- | @@ -55,7 +55,7 @@ The ListView component followed the [WAI-ARIA](https://www.w3.org/WAI/ARIA/apg/p ## Keyboard interaction -The ListView component followed the [keyboard interaction](https://www.w3.org/WAI/ARIA/apg/patterns/listbox/#keyboardinteraction) guideline, making it easy for people who use assistive technologies (AT) and those who completely rely on keyboard navigation. The following keyboard shortcuts are supported by the ListView component. +The ListView control followed the [keyboard interaction](https://www.w3.org/WAI/ARIA/apg/patterns/listbox/#keyboardinteraction) guideline, making it easy for people who use assistive technologies (AT) and those who completely rely on keyboard navigation. The following keyboard shortcuts are supported by the ListView control. | Keyboard shortcuts | Actions | |------------|-------------------| @@ -68,12 +68,12 @@ The ListView component followed the [keyboard interaction](https://www.w3.org/WA ## Ensuring accessibility -The ListView component's accessibility levels are ensured through an [accessibility-checker](https://www.npmjs.com/package/accessibility-checker) and [axe-core](https://www.npmjs.com/package/axe-core) software tools during automated testing. +The ListView control's accessibility levels are ensured through an [accessibility-checker](https://www.npmjs.com/package/accessibility-checker) and [axe-core](https://www.npmjs.com/package/axe-core) software tools during automated testing. -The accessibility compliance of the ListView component is shown in the following sample. Open the [sample](https://ej2.syncfusion.com/accessibility/list-view.html) in a new window to evaluate the accessibility of the ListView component with accessibility tools. +The accessibility compliance of the ListView control is shown in the following sample. Open the [sample](https://ej2.syncfusion.com/accessibility/list-view.html) in a new window to evaluate the accessibility of the ListView control with accessibility tools. {% previewsample "https://ej2.syncfusion.com/accessibility/list-view.html" %} ## See also -* [Accessibility in Syncfusion ##Platform_Name## components](../common/accessibility) +* [Accessibility in Syncfusion ##Platform_Name## controls](../common/accessibility) diff --git a/ej2-javascript/listview/check-list.md b/ej2-javascript/listview/check-list.md index f42bd0a99..0fb2d28e8 100644 --- a/ej2-javascript/listview/check-list.md +++ b/ej2-javascript/listview/check-list.md @@ -1,19 +1,19 @@ --- layout: post -title: Check list in ##Platform_Name## Listview control | Syncfusion -description: Learn here all about Check list in Syncfusion ##Platform_Name## Listview control of Syncfusion Essential JS 2 and more. +title: Check list in ##Platform_Name## ListView control | Syncfusion +description: Learn here all about Check list in Syncfusion ##Platform_Name## ListView control of Syncfusion Essential JS 2 and more. platform: ej2-javascript -control: Check list +control: Check list publishingplatform: ##Platform_Name## documentation: ug domainurl: ##DomainURL## --- -# Check list in ##Platform_Name## Listview control +# Check list in ##Platform_Name## ListView control -The ListView supports checkbox in default and group-lists which is used to select multiple items. The checkbox can be enabled by the `showCheckBox` property. +The ListView control supports checkboxes in both default and group lists, allowing the selection of multiple items. The checkbox can be enabled using the [`showCheckBox`](../api/list-view/#showcheckbox) property. -The Checkbox will be useful in the scenario where we need to select multiple options. For Example, In Shipping cart we can be able to select or unselect the desired items before checkout and also it will be useful in selecting multiple items that belongs to the same category using the group list. +The checkbox feature is useful in scenarios where multiple options need to be selected. For example, in a shopping cart, users can select or deselect desired items before checkout. It is also useful for selecting multiple items that belong to the same category when using a group list. {% if page.publishingplatform == "typescript" %} @@ -24,8 +24,11 @@ The Checkbox will be useful in the scenario where we need to select multiple opt {% highlight html tabtitle="index.html" %} {% include code-snippet/listview/todo-list-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/listview/todo-list-cs1/index.css %} +{% endhighlight %} {% endtabs %} - + {% previewsample "page.domainurl/code-snippet/listview/todo-list-cs1" %} {% elsif page.publishingplatform == "javascript" %} @@ -37,6 +40,9 @@ The Checkbox will be useful in the scenario where we need to select multiple opt {% highlight html tabtitle="index.html" %} {% include code-snippet/listview/todo-list-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/listview/todo-list-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/listview/todo-list-cs1" %} @@ -44,17 +50,20 @@ The Checkbox will be useful in the scenario where we need to select multiple opt ## Checkbox Position -In ListView the checkbox can be positioned into either `Left` or `Right` side of the list-item text. This can be achieved by `checkBoxPositon` property. By default, checkbox will be positioned to `Left` of list-item text. +In ListView, the checkbox can be positioned on either the `Left` or `Right` side of the list-item text. This can be adjusted using the [`checkBoxPosition`](../api/list-view/#checkboxposition) property. By default, the checkbox is positioned to the `Left` of the list-item text. {% if page.publishingplatform == "typescript" %} - {% tabs %} +{% tabs %} {% highlight ts tabtitle="index.ts" %} {% include code-snippet/listview/checklist-cs1/index.ts %} {% endhighlight %} {% highlight html tabtitle="index.html" %} {% include code-snippet/listview/checklist-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/listview/checklist-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/listview/checklist-cs1" %} @@ -68,6 +77,9 @@ In ListView the checkbox can be positioned into either `Left` or `Right` side of {% highlight html tabtitle="index.html" %} {% include code-snippet/listview/checklist-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/listview/checklist-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/listview/checklist-cs1" %} diff --git a/ej2-javascript/listview/customizing-templates.md b/ej2-javascript/listview/customizing-templates.md index e8d88e8b4..8874fc145 100644 --- a/ej2-javascript/listview/customizing-templates.md +++ b/ej2-javascript/listview/customizing-templates.md @@ -1,23 +1,23 @@ --- layout: post -title: Customizing templates in ##Platform_Name## Listview control | Syncfusion -description: Learn here all about Customizing templates in Syncfusion ##Platform_Name## Listview control of Syncfusion Essential JS 2 and more. +title: Customizing templates in ##Platform_Name## ListView control | Syncfusion +description: Learn here all about Customizing templates in Syncfusion ##Platform_Name## ListView control of Syncfusion Essential JS 2 and more. platform: ej2-javascript -control: Customizing templates +control: Customizing templates publishingplatform: ##Platform_Name## documentation: ug domainurl: ##DomainURL## --- -# Customizing templates in ##Platform_Name## Listview control +# Customizing templates in ##Platform_Name## ListView control -The ListView control is designed to customize list items, group title and header title. It uses Essential JS2 [Template engine](../common/template-engine/) to render the elements. +The ListView control is designed to customize list items, group titles, and header titles. It utilizes the Essential JS2 [Template Engine](../common/template-engine/) to render the elements. ## Header template -ListView header can be customized with the help of the [`headerTemplate`](../api/list-view/#headertemplate) property. +The ListView header can be customized using the [`headerTemplate`](../api/list-view/#headertemplate) property. -To customize header template in your application, set your customized template string to `headerTemplate` property along with [`showHeader`](../api/list-view/#showheader) property as `true` to display the ListView header. +To customize the header template in your application, set your customized template string to the `headerTemplate` property along with setting the [`showHeader`](../api/list-view/#showheader) property to `true` to display the ListView header. ```ts @@ -29,17 +29,20 @@ let listviewInstance: ListView = new ListView({ ``` -In the following example, we have rendered Listview with customized header which contains search, add and sort buttons. +In the following example, we have rendered ListView with customized header which contains search, add and sort buttons. {% if page.publishingplatform == "typescript" %} - {% tabs %} +{% tabs %} {% highlight ts tabtitle="index.ts" %} {% include code-snippet/listview/header-template-cs1/index.ts %} {% endhighlight %} {% highlight html tabtitle="index.html" %} {% include code-snippet/listview/header-template-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/listview/header-template-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/listview/header-template-cs1" %} @@ -53,6 +56,9 @@ In the following example, we have rendered Listview with customized header which {% highlight html tabtitle="index.html" %} {% include code-snippet/listview/header-template-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/listview/header-template-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/listview/header-template-cs1" %} @@ -60,28 +66,28 @@ In the following example, we have rendered Listview with customized header which ## Template -ListView items can be customized with the help of the [`template`](../api/list-view/#template) property. +ListView items can be customized using the [`template`](../api/list-view/#template) property. -To customize list items in your application, set your customized template string to `template` property. +To customize list items in your application, set your customized template string to the `template` property. ```ts let listviewInstance: ListView = new ListView({ data: listData, - template: '
          ${text}
          ', + template: '
          ${text}
          ', }) ``` -We provided the following built-in CSS classes to customize the list-items. Refer to the following table. +We provided the following built-in CSS classes to customize the list items. Refer to the following table. | CSS class | Description | | ------------- |-------------| | e-list-template, e-list-wrapper | These classes are used to differentiate normal and template rendering, which are mandatory for template rendering. The `e-list-template` class should be added to the root of the ListView element and `e-list-wrapper` class should be added to the template element wrapper

          `new ListView({`
          `dataSource: data,`
          `cssClass: 'e-list-template',`
          `template: '
          '}, '#list');` | e-list-content | This class is used to align list content and it should be added to the content element

          `
          `
          `ListItem`
          `
          `| -| e-list-avatar | This class is used for avatar customization. It should be added to the template element wrapper. After adding it, we can customize our element with [Avatar](../avatar/getting-started/) classes

          `
          `
          `MR`
          `ListItem`
          `
          `| -| e-list-avatar-right | This class is used to align avatar to right side of the list item. It should be added to the template element wrapper. After adding it, we can customize our element with [Avatar](../avatar/getting-started/) classes

          `
          `
          `ListItem`
          `MR`
          `
          `| -| e-list-badge | This class is used for badge customization .It should be added to the template element wrapper. After adding it, we can customize our element with [Badge](../badge/getting-started/) classes

          `
          `
          `ListItem`
          `MR`
          `
          `| +| e-list-avatar | This class is used for avatar customization. It should be added to the template element wrapper. After adding it, we can customize our element with [Avatar](../avatar/getting-started) classes

          `
          `
          `MR`
          `ListItem`
          `
          `| +| e-list-avatar-right | This class is used to align avatar to right side of the list item. It should be added to the template element wrapper. After adding it, we can customize our element with [Avatar](../avatar/getting-started) classes

          `
          `
          `ListItem`
          `MR`
          `
          `| +| e-list-badge | This class is used for badge customization .It should be added to the template element wrapper. After adding it, we can customize our element with [Badge](../badge/getting-started) classes

          `
          `
          `ListItem`
          `MR`
          `
          `| | e-list-multi-line | This class is used for multi-line customization. It should be added to the template element wrapper. After adding it, we can customize List item's header and description

          `
          `
          `ListItem`
          `
          `| | e-list-item-header |This class is used to align a list header and it should be added to the header element along with the multi-line class

          `
          `
          `ListItem Header`
          `ListItem`
          `
          `| @@ -89,13 +95,16 @@ In the following example, we have customized list items with built-in CSS classe {% if page.publishingplatform == "typescript" %} - {% tabs %} +{% tabs %} {% highlight ts tabtitle="index.ts" %} {% include code-snippet/listview/avatar-cs1/index.ts %} {% endhighlight %} {% highlight html tabtitle="index.html" %} {% include code-snippet/listview/avatar-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/listview/avatar-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/listview/avatar-cs1" %} @@ -109,6 +118,9 @@ In the following example, we have customized list items with built-in CSS classe {% highlight html tabtitle="index.html" %} {% include code-snippet/listview/avatar-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/listview/avatar-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/listview/avatar-cs1" %} @@ -116,9 +128,9 @@ In the following example, we have customized list items with built-in CSS classe ## Group template -ListView group header can be customized with the help of the [`groupTemplate`](../api/list-view/#grouptemplate) property. +The ListView group header can be customized using the [`groupTemplate`](../api/list-view/#grouptemplate) property. -To customize the group template in your application, set your customized template string to `groupTemplate` property. +To customize the group template in your application, set your customized template string to the `groupTemplate` property. ```ts @@ -129,17 +141,20 @@ let listviewInstance: ListView = new ListView({ ``` -In the following example, we have grouped Listview based on the category. The category of each list item should be mapped with [`groupBy`](../api/list-view/fieldSettingsModel/#groupby) field of the data. We have also displayed grouped list items count in the group list header. +In the following example, we have grouped the ListView based on the category. The category of each list item should be mapped with the [`groupBy`](../api/list-view/fieldSettingsModel/#groupby) field of the data. We have also displayed the count of grouped list items in the group list header. {% if page.publishingplatform == "typescript" %} - {% tabs %} +{% tabs %} {% highlight ts tabtitle="index.ts" %} {% include code-snippet/listview/item-count-cs1/index.ts %} {% endhighlight %} {% highlight html tabtitle="index.html" %} {% include code-snippet/listview/item-count-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/listview/item-count-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/listview/item-count-cs1" %} @@ -153,6 +168,9 @@ In the following example, we have grouped Listview based on the category. The ca {% highlight html tabtitle="index.html" %} {% include code-snippet/listview/item-count-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/listview/item-count-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/listview/item-count-cs1" %} diff --git a/ej2-javascript/listview/data-binding.md b/ej2-javascript/listview/data-binding.md index 9604dd5c3..9d9f995dd 100644 --- a/ej2-javascript/listview/data-binding.md +++ b/ej2-javascript/listview/data-binding.md @@ -1,19 +1,19 @@ --- layout: post -title: Data binding in ##Platform_Name## Listview control | Syncfusion -description: Learn here all about Data binding in Syncfusion ##Platform_Name## Listview control of Syncfusion Essential JS 2 and more. +title: Data binding in ##Platform_Name## ListView control | Syncfusion +description: Learn here all about Data binding in Syncfusion ##Platform_Name## ListView control of Syncfusion Essential JS 2 and more. platform: ej2-javascript -control: Data binding +control: Data binding publishingplatform: ##Platform_Name## documentation: ug domainurl: ##DomainURL## --- -# Data binding in ##Platform_Name## Listview control +# Data binding in ##Platform_Name## ListView control -ListView provides an option to load the data either from local dataSource or remote data services. This can be done through the dataSource property that supports the data type of array or [`DataManager`](../api/data/dataManager/). +The ListView control provides an option to load the data either from a local data source or remote data services. This can be done through the `dataSource` property, which supports the data type of an array or [`DataManager`](../api/data/dataManager/). -ListView supports different kind of data services such as OData, OData V4, and Web API, and data formats like XML, JSON, and, JSONP with the help of DataManager Adaptors. +ListView supports different kinds of data services such as OData, OData V4, and Web API, and data formats like XML, JSON, and JSONP with the help of DataManager Adaptors. | Fields | Type | Description | |------|------|-------------| @@ -26,21 +26,21 @@ ListView supports different kind of data services such as OData, OData V4, and W | child | string | Specifies child dataSource fields. | | tooltip | string | Specifies tooltip title text field. | | groupBy | string | Specifies category of each list item. | -| sortBy | string | Specifies sorting field, that is used to sort the listview data. | +| sortBy | string | Specifies sorting field, that is used to sort the ListView data. | | htmlAttributes | string | Specifies list item html attributes field. | -> When complex data bind to ListView, you should map the fields properly. Otherwise, the ListView properties remain as undefined or null. +> When complex data is bound to ListView, you should map the fields properly. Otherwise, the ListView properties remain as undefined or null. ## Bind to local data -Local data can be represented in two ways, they are as follows: +Local data can be represented in two ways: * Array of simple data. * Array of JSON data. ### Array of simple data -ListView supports to load the array of primitive data like string and numbers. Here, both value and text field act as same. +The ListView control supports loading an array of primitive data like strings and numbers. Here, both value and text fields act the same. {% if page.publishingplatform == "typescript" %} @@ -51,8 +51,11 @@ ListView supports to load the array of primitive data like string and numbers. H {% highlight html tabtitle="index.html" %} {% include code-snippet/listview/data-binding/simple-data-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/listview/data-binding/simple-data-cs1/index.css %} +{% endhighlight %} {% endtabs %} - + {% previewsample "page.domainurl/code-snippet/listview/data-binding/simple-data-cs1" %} {% elsif page.publishingplatform == "javascript" %} @@ -64,26 +67,32 @@ ListView supports to load the array of primitive data like string and numbers. H {% highlight html tabtitle="index.html" %} {% include code-snippet/listview/data-binding/simple-data-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/listview/data-binding/simple-data-cs1/index.css %} +{% endhighlight %} {% endtabs %} - + {% previewsample "page.domainurl/code-snippet/listview/data-binding/simple-data-cs1" %} {% endif %} ### Array of JSON data -ListView can generate its list items through an array of complex data. To get it work properly, you should map the appropriate columns to the field property. +ListView can generate its list items through an array of complex data. To ensure it works properly, you should map the appropriate columns to the field property. -In the following example, role column is mapped with the text field. +In the following example, the role column is mapped with the text field. {% if page.publishingplatform == "typescript" %} - {% tabs %} +{% tabs %} {% highlight ts tabtitle="index.ts" %} {% include code-snippet/listview/data-binding/array-data-cs1/index.ts %} {% endhighlight %} {% highlight html tabtitle="index.html" %} {% include code-snippet/listview/data-binding/array-data-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/listview/data-binding/array-data-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/listview/data-binding/array-data-cs1" %} @@ -97,6 +106,9 @@ In the following example, role column is mapped with the text field. {% highlight html tabtitle="index.html" %} {% include code-snippet/listview/data-binding/array-data-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/listview/data-binding/array-data-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/listview/data-binding/array-data-cs1" %} @@ -104,19 +116,22 @@ In the following example, role column is mapped with the text field. ## Bind to remote data -The ListView supports to retrieve the data from remote data services with the help of DataManager control. The Query property allows to fetch data and return it to the ListView from the database. +The ListView control supports retrieving data from remote data services with the help of the DataManager control. The `query` property allows fetching data and returning it to the ListView from the database. -In the following sample, first 10 employees from the ListView table are displayed. +In the following sample, the first 10 employees from the ListView table are displayed. {% if page.publishingplatform == "typescript" %} - {% tabs %} +{% tabs %} {% highlight ts tabtitle="index.ts" %} {% include code-snippet/listview/data-binding/remote-data-cs1/index.ts %} {% endhighlight %} {% highlight html tabtitle="index.html" %} {% include code-snippet/listview/data-binding/remote-data-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/listview/data-binding/remote-data-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/listview/data-binding/remote-data-cs1" %} @@ -130,7 +145,10 @@ In the following sample, first 10 employees from the ListView table are displaye {% highlight html tabtitle="index.html" %} {% include code-snippet/listview/data-binding/remote-data-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/listview/data-binding/remote-data-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/listview/data-binding/remote-data-cs1" %} -{% endif %} +{% endif %} \ No newline at end of file diff --git a/ej2-javascript/listview/grouping.md b/ej2-javascript/listview/grouping.md index d890f3aba..24688a03e 100644 --- a/ej2-javascript/listview/grouping.md +++ b/ej2-javascript/listview/grouping.md @@ -1,7 +1,7 @@ --- layout: post -title: Grouping in ##Platform_Name## Listview control | Syncfusion -description: Learn here all about Grouping in Syncfusion ##Platform_Name## Listview control of Syncfusion Essential JS 2 and more. +title: Grouping in ##Platform_Name## ListView control | Syncfusion +description: Learn here all about Grouping in Syncfusion ##Platform_Name## ListView control of Syncfusion Essential JS 2 and more. platform: ej2-javascript control: Grouping publishingplatform: ##Platform_Name## @@ -9,11 +9,11 @@ documentation: ug domainurl: ##DomainURL## --- -# Grouping in ##Platform_Name## Listview control +# Grouping in ##Platform_Name## ListView control -The ListView supports to wrap the nested element into a group based on the category. The category of each list item can be mapped with groupBy field in the data table, that also support single-level navigation. +The ListView control supports wrapping nested elements into a group based on categories. The category of each list item can be mapped with the `groupBy` field in the data table, which also supports single-level navigation. -In the following sample, The cars are grouped based on its category by using the groupBy field. +In the following sample, cars are grouped based on their category by using the `groupBy` field. {% if page.publishingplatform == "typescript" %} @@ -24,8 +24,11 @@ In the following sample, The cars are grouped based on its category by using the {% highlight html tabtitle="index.html" %} {% include code-snippet/listview/grouping-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/listview/grouping-cs1/index.css %} +{% endhighlight %} {% endtabs %} - + {% previewsample "page.domainurl/code-snippet/listview/grouping-cs1" %} {% elsif page.publishingplatform == "javascript" %} @@ -37,6 +40,9 @@ In the following sample, The cars are grouped based on its category by using the {% highlight html tabtitle="index.html" %} {% include code-snippet/listview/grouping-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/listview/grouping-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/listview/grouping-cs1" %} @@ -44,6 +50,4 @@ In the following sample, The cars are grouped based on its category by using the ## Customization -The grouping header can be customized by using the groupTemplate property for both inline and fixed group header. The complete customization description and explanation with an example is given in the following link. - -[Group Template](./customizing-templates#group-template). +The grouping header can be customized by using the `groupTemplate` property for both inline and fixed group headers. A complete description and example of customization are provided in the following link. [Group Template](./customizing-templates#group-template). \ No newline at end of file diff --git a/ej2-javascript/listview/how-to/add-and-remove-list-items-from-listview.md b/ej2-javascript/listview/how-to/add-and-remove-list-items-from-listview.md index bde7a1fe4..fcfaa7e34 100644 --- a/ej2-javascript/listview/how-to/add-and-remove-list-items-from-listview.md +++ b/ej2-javascript/listview/how-to/add-and-remove-list-items-from-listview.md @@ -1,23 +1,23 @@ --- layout: post -title: Add and remove list items from listview in ##Platform_Name## Listview control | Syncfusion -description: Learn here all about Add and remove list items from listview in Syncfusion ##Platform_Name## Listview control of Syncfusion Essential JS 2 and more. +title: Add and remove list items from ListView in ##Platform_Name## ListView control | Syncfusion +description: Learn here all about Add and remove list items from ListView in Syncfusion ##Platform_Name## ListView control of Syncfusion Essential JS 2 and more. platform: ej2-javascript -control: Add and remove list items from listview +control: Add and remove list items from ListView publishingplatform: ##Platform_Name## documentation: ug domainurl: ##DomainURL## --- -# Add and remove list items from listview in ##Platform_Name## Listview control +# Add and remove list items from ##Platform_Name## ListView control -You can add or remove list items from the ListView control using the [`addItem`](../../api/list-view/#additem) and [`removeItem`](../../api/list-view/#removeitem) methods. Refer to the following steps to add or remove a list item. +You can add or remove list items from the ListView control using the [`addItem`](../../api/list-view/#additem) and [`removeItem`](../../api/list-view/#removeitem) methods. Follow these steps to add or remove a list item in the ListView control: -* Render the ListView with data source, and use the [template](../../api/list-view/#template) property to append the delete icon for each list item. Also, bind the click event for the delete icon using the [actionComplete](../../api/list-view/#actioncomplete) handler. +* Render the ListView with a data source. Use the [template](../../api/list-view/#template) property to append a delete icon for each list item. Bind the click event for the delete icon using the [actionComplete](../../api/list-view/#actioncomplete) handler. -* Render the Add Item button, and bind the click event. On the click event handler, pass data with random id to the [`addItem`](../../api/list-view/#additem) method to add a new list item on clicking the Add Item button. +* Render the "Add Item" button and bind the click event. In the click event handler, pass data with a random ID to the [`addItem`](../../api/list-view/#additem) method to add a new list item when the "Add Item" button is clicked. -* Bind the click handler to the delete icon created in step 1. Within the click event, remove the list item by passing the delete icon list item to [`removeItem`](../../api/list-view/#removeitem) method. +* Bind the click handler to the delete icon created in the first step. Within the click event, remove the list item by passing the list item corresponding to the delete icon to the [`removeItem`](../../api/list-view/#removeitem) method. {% if page.publishingplatform == "typescript" %} @@ -28,8 +28,11 @@ You can add or remove list items from the ListView control using the [`addItem`] {% highlight html tabtitle="index.html" %} {% include code-snippet/listview/addItem-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/listview/addItem-cs1/index.css %} +{% endhighlight %} {% endtabs %} - + {% previewsample "page.domainurl/code-snippet/listview/addItem-cs1" %} {% elsif page.publishingplatform == "javascript" %} @@ -41,7 +44,10 @@ You can add or remove list items from the ListView control using the [`addItem`] {% highlight html tabtitle="index.html" %} {% include code-snippet/listview/addItem-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/listview/addItem-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/listview/addItem-cs1" %} -{% endif %} +{% endif %} \ No newline at end of file diff --git a/ej2-javascript/listview/how-to/chat-window-user-interface-using-listview.md b/ej2-javascript/listview/how-to/chat-window-user-interface-using-listview.md index 97b5558c4..348ca0104 100644 --- a/ej2-javascript/listview/how-to/chat-window-user-interface-using-listview.md +++ b/ej2-javascript/listview/how-to/chat-window-user-interface-using-listview.md @@ -1,23 +1,22 @@ --- layout: post -title: Chat window user interface using listview in ##Platform_Name## Listview control | Syncfusion -description: Learn here all about Chat window user interface using listview in Syncfusion ##Platform_Name## Listview control of Syncfusion Essential JS 2 and more. +title: Chat window user interface using ListView in ##Platform_Name## ListView control | Syncfusion +description: Learn here all about Chat window user interface using ListView in Syncfusion ##Platform_Name## ListView control of Syncfusion Essential JS 2 and more. platform: ej2-javascript -control: Chat window user interface using listview +control: Chat window user interface using ListView publishingplatform: ##Platform_Name## documentation: ug domainurl: ##DomainURL## --- -# Chat window user interface using listview in ##Platform_Name## Listview control +# Chat window user interface using ##Platform_Name## ListView control -ListView can be customized as chat window. To achieve that, use the ListView [template](../../api/list-view/#template) property and [Avatar](../../avatar/getting-started) control. +ListView can be customized to function as a chat window. To achieve this, use the ListView [template](../../api/list-view/#template) property alongside the [Avatar](../../avatar/getting-started) control. - * The Listview template property is used to showcase the ListView as chat window. - * Avatar control is used to design the image of contact person. - -Refer the below template code snippet for Template of chat window. +* The ListView template property is used to showcase the ListView as chat window. +* Avatar control is used to design the image of contact person. +Refer to the template code snippet below for a chat window implementation: ```ts let template = '
          ' + @@ -46,7 +45,7 @@ let template = ## Chat order in template -In ListView template, we have rendered the list items based on receiver and sender information from dataSource of listview. +The ListView template is rendered with list items based on sender and receiver information from the ListView's data source. ## Adding messages to chat window @@ -73,13 +72,16 @@ document.getElementById("btn").addEventListener("click", e => { {% if page.publishingplatform == "typescript" %} - {% tabs %} +{% tabs %} {% highlight ts tabtitle="index.ts" %} {% include code-snippet/listview/chat-window-cs1/index.ts %} {% endhighlight %} {% highlight html tabtitle="index.html" %} {% include code-snippet/listview/chat-window-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/listview/chat-window-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/listview/chat-window-cs1" %} @@ -93,7 +95,10 @@ document.getElementById("btn").addEventListener("click", e => { {% highlight html tabtitle="index.html" %} {% include code-snippet/listview/chat-window-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/listview/chat-window-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/listview/chat-window-cs1" %} -{% endif %} +{% endif %} \ No newline at end of file diff --git a/ej2-javascript/listview/how-to/create-dual-list-from-listview.md b/ej2-javascript/listview/how-to/create-dual-list-from-listview.md index 613b7ed4a..36ba13822 100644 --- a/ej2-javascript/listview/how-to/create-dual-list-from-listview.md +++ b/ej2-javascript/listview/how-to/create-dual-list-from-listview.md @@ -1,57 +1,56 @@ --- layout: post -title: Create dual list from listview in ##Platform_Name## Listview control | Syncfusion -description: Learn here all about Create dual list from listview in Syncfusion ##Platform_Name## Listview control of Syncfusion Essential JS 2 and more. +title: Create dual list in ##Platform_Name## ListView Control | Syncfusion +description: Learn here all about create dual list in Syncfusion ##Platform_Name## ListView control, it's elements and more. platform: ej2-javascript -control: Create dual list from listview +control: Create dual list from ListView publishingplatform: ##Platform_Name## documentation: ug domainurl: ##DomainURL## --- -# Create dual list from listview in ##Platform_Name## Listview control +# Create dual list in ##Platform_Name## ListView Control -The dual list contains two ListView. This allows you to move list items from one list to another using the client-side events. This section explains how to integrate the ListView control to achieve dual list. +The dual list configuration involves two ListView controls, allowing for list items to be transferred between lists using client-side events. This section explains how to integrate ListView controls to achieve a dual list. ## Use cases -* Stock exchanges of two different countries -* Job applications (skill sets) +Dual lists can be utilized in scenarios such as: +* Stock exchanges of two different countries. +* Job applications (skill sets). ## Integration of Dual List -Here, two ListView controls have been used to display the list items. An ej2-button is used to transfer data between the ListView, and a textbox is used to achieve the UI of filtering support. +To implement a dual list, two ListView controls are used to display items. The interface uses an `ej2-button` for transferring data between lists and a textbox for filtering support. -The dual list supports: +Key features of the dual list include: +* Transferring all items from one list to another. +* Transferring selected items from one list to another. +* Filtering lists using input from a textbox. -* Moving whole data from one list to another. -* Moving selected data from one list to another. -* Filtering the list by using a client-side typed character. - -In the ListView control, sorting is enabled using the [sortOrder](../../api/list-view/#sortorder) property, and the [select](../../api/list-view/#select) event is triggered while selecting an item. Here, the select event is triggered to enable and disable button states. +In the ListView control, sorting is enabled using the [sortOrder](../../api/list-view/#sortorder) property, and the [select](../../api/list-view/#select) event is triggered when an item is selected. The select event manages the enabling and disabling of buttons based on the item selection. ## Manipulating data -## Moving whole data from the first list to the second list(>>) -Here, the whole data can be moved from the first ListView to the second by clicking the first button. When clicking the button, the whole list items are sliced, and `concat` with the second ListView. This button is enabled only when the data source of the first ListView is not empty. +### Moving entire data from the first list to the second list (`>>`) -## Moving whole data from the second list to the first list(<<)** +All items can be transferred from the first ListView to the second by clicking the designated button. When clicked, all items from the first list are concatenated with the second ListView's data source. This button is active only when the first ListView has items. -The functionality of the second button is the same as above, and data is transferred from the second list to the first list. This button is enabled only when the data source of the second ListView is not empty. +### Moving entire data From the second list to the first list (`<<`) -## Moving selected item from one list to another list (>) and (<)** +This button performs the reverse action, transferring all items from the second ListView to the first. It is active only when the second ListView has items. -The [Select](../../api/list-view/#select) event is triggered when selecting a list item in the ListView. The selected items can be transferred between two lists. These buttons will be enabled when selecting an item in lists. +### Transferring selected items (`>` and `<`) +The [Select](../../api/list-view/#select) event facilitates transferring selected items between lists. These buttons are enabled when an item is selected in either list. ## Filtering method -The filtering method is used to filter list items when typing a character in the text box. In this method, the [`dataManager`](../../data/getting-started/) has been used to fetch data from the data source and display in ListView. +A filtering method allows you to filter list items by typing characters into a textbox. This feature utilizes the [`dataManager`](../../data/getting-started/) to fetch and display filtered data in the ListView. ## Sorting -By using the dual list, list items can be sorted in the ListView control using the [sortOrder](../../api/list-view/#sortorder) property. -You can enable sorting in one ListView; in the same order, data can be transferred to another ListView. +Using the dual list, list items can be sorted in the ListView using the [sortOrder](../../api/list-view/#sortorder) property. Enabling sorting in one ListView allows the data to be transferred in the same order to the other ListView. {% if page.publishingplatform == "typescript" %} @@ -62,8 +61,11 @@ You can enable sorting in one ListView; in the same order, data can be transferr {% highlight html tabtitle="index.html" %} {% include code-snippet/listview/dual-list-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/listview/dual-list-cs1/index.css %} +{% endhighlight %} {% endtabs %} - + {% previewsample "page.domainurl/code-snippet/listview/dual-list-cs1" %} {% elsif page.publishingplatform == "javascript" %} @@ -75,7 +77,10 @@ You can enable sorting in one ListView; in the same order, data can be transferr {% highlight html tabtitle="index.html" %} {% include code-snippet/listview/dual-list-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/listview/dual-list-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/listview/dual-list-cs1" %} -{% endif %} +{% endif %} \ No newline at end of file diff --git a/ej2-javascript/listview/how-to/create-mobile-contact-layout-from-listview.md b/ej2-javascript/listview/how-to/create-mobile-contact-layout-from-listview.md index 87a258b99..06da349ac 100644 --- a/ej2-javascript/listview/how-to/create-mobile-contact-layout-from-listview.md +++ b/ej2-javascript/listview/how-to/create-mobile-contact-layout-from-listview.md @@ -1,19 +1,19 @@ --- layout: post -title: Create mobile contact layout from listview in ##Platform_Name## Listview control | Syncfusion -description: Learn here all about Create mobile contact layout from listview in Syncfusion ##Platform_Name## Listview control of Syncfusion Essential JS 2 and more. +title: Create mobile contact layout from ListView in ##Platform_Name## ListView control | Syncfusion +description: Learn here all about Create mobile contact layout from ListView in Syncfusion ##Platform_Name## ListView control of Syncfusion Essential JS 2 and more. platform: ej2-javascript -control: Create mobile contact layout from listview +control: Create mobile contact layout from ListView publishingplatform: ##Platform_Name## documentation: ug domainurl: ##DomainURL## --- -# Create mobile contact layout from listview in ##Platform_Name## Listview control +# Create mobile contact layout in ##Platform_Name## ListView control -You can customize the ListView using the [template](../../api/list-view/#template) property. Refer to the following steps to customize ListView as mobile contact view with our `ej2-avatar`. +You can customize the ListView using the [template](../../api/list-view/#template) property. Follow these steps to customize the ListView as a mobile contact view with the `ej2-avatar`: -* Render the ListView with [dataSource](../../api/list-view/#datasource) that has avatar data. You can set avatar data as either text or class names. Refer to the following codes. +* Render the ListView with a [dataSource](../../api/list-view/#datasource) containing avatar data. Avatar data can be provided as either text or class names. Below is an example code snippet for data source initialization: ```ts @@ -28,7 +28,7 @@ let dataSource: { [key: string]: Object }[] = [ ``` -* Set `avatar` classes in ListView template to customize contact icon. In the following codes, medium size avatar has been set using the class name `e-avatar e-avatar-circle` from data source. +* Use `avatar` classes in the ListView template to customize the contact icon. The following template example sets a medium-sized avatar using the class `e-avatar e-avatar-circle` from the data source: ```ts @@ -44,7 +44,7 @@ let dataSource: { [key: string]: Object }[] = [ ``` -> Avatars can be set in different sizes in avatar classes. To know more about avatar classes, refer to [Avatar](https://ej2.syncfusion.com/demos/#/material/avatar/default.html). +> Avatars can be set in different sizes using avatar classes. For more information on avatar classes, refer to the [Avatar](https://ej2.syncfusion.com/demos/#/material/avatar/default.html) documentation. * Sort the contact names using the [`sortOder`](../../api/list-view/#sortorder) property of ListView. @@ -52,13 +52,16 @@ let dataSource: { [key: string]: Object }[] = [ {% if page.publishingplatform == "typescript" %} - {% tabs %} +{% tabs %} {% highlight ts tabtitle="index.ts" %} {% include code-snippet/listview/avatar-cs2/index.ts %} {% endhighlight %} {% highlight html tabtitle="index.html" %} {% include code-snippet/listview/avatar-cs2/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/listview/avatar-cs2/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/listview/avatar-cs2" %} @@ -72,6 +75,9 @@ let dataSource: { [key: string]: Object }[] = [ {% highlight html tabtitle="index.html" %} {% include code-snippet/listview/avatar-cs2/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/listview/avatar-cs2/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/listview/avatar-cs2" %} diff --git a/ej2-javascript/listview/how-to/customize-listview-as-grid-layout.md b/ej2-javascript/listview/how-to/customize-listview-as-grid-layout.md index aa0dd41bf..7a539c99d 100644 --- a/ej2-javascript/listview/how-to/customize-listview-as-grid-layout.md +++ b/ej2-javascript/listview/how-to/customize-listview-as-grid-layout.md @@ -1,33 +1,30 @@ --- layout: post -title: Customize listview as grid layout in ##Platform_Name## Listview control | Syncfusion -description: Learn here all about Customize listview as grid layout in Syncfusion ##Platform_Name## Listview control of Syncfusion Essential JS 2 and more. +title: Customize ListView as grid layout in ##Platform_Name## | Syncfusion +description: Learn here all about customize ListView as grid layout in Syncfusion ##Platform_Name##, it's elements and more. platform: ej2-javascript -control: Customize listview as grid layout +control: Customize ListView as grid layout publishingplatform: ##Platform_Name## documentation: ug domainurl: ##DomainURL## --- -# Customize listview as grid layout in ##Platform_Name## Listview control +# Customize ListView as grid layout in ##Platform_Name## -In Listview, list items can be rendered in grid layout with following data manipulations. +In ListView, list items can be rendered in a grid layout with the following data manipulations. * Add Item - * Remove Item - * Sort Items - * Filter Items ## Grid Layout -In this section, we will discuss about rendering of list items in grid layout. +In this section, we will discuss the rendering of list items in a grid layout. -* Initialize and render ListView with dataSource which will render list items in list layout. +* Initialize and render ListView with a `dataSource`, which will render list items in list layout. -* Now, add the below CSS to list item. This will make list items to render in grid layout +* Now, add the following CSS to list items. This will make list items render in a grid layout. ``` @@ -39,19 +36,22 @@ In this section, we will discuss about rendering of list items in grid layout. ``` -In the below sample, we have rendered List items in grid layout. +In the sample below, we have rendered list items in a grid layout. {% if page.publishingplatform == "typescript" %} - {% tabs %} +{% tabs %} {% highlight ts tabtitle="index.ts" %} {% include code-snippet/listview/grid-layout-cs1/index.ts %} {% endhighlight %} {% highlight html tabtitle="index.html" %} {% include code-snippet/listview/grid-layout-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/listview/grid-layout-cs1/index.css %} +{% endhighlight %} {% endtabs %} - + {% previewsample "page.domainurl/code-snippet/listview/grid-layout-cs1" %} {% elsif page.publishingplatform == "javascript" %} @@ -63,6 +63,9 @@ In the below sample, we have rendered List items in grid layout. {% highlight html tabtitle="index.html" %} {% include code-snippet/listview/grid-layout-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/listview/grid-layout-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/listview/grid-layout-cs1" %} @@ -82,11 +85,11 @@ We can add list item using [`addItem`](../../api/list-view/#additem) API. This w ``` -In the below sample, you can add new fruit item by clicking add button which will open dialog box with fruit name and image URL text box. After entering the item details, click the add button. This will add your new fruit item. +In the sample below, you can add a new fruit item by clicking the add button, which will open a dialog box with fruit name and image URL text boxes. After entering the item details, click the add button to add your new fruit item. ### Remove item -We can remove list item using [`removeItem`](../../api/list-view/#removeitem) API. This will accept fields with `id` or list item element as argument. +We can remove a list item using the [`removeItem`](../../api/list-view/#removeitem) API. This will accept fields with `id` or a list item element as an argument. ```ts @@ -98,7 +101,7 @@ In the below sample, you can remove fruit by hovering the fruit item which will ### Sort Items -Listview can be sorted either in Ascending or Descending order. To enable sorting in your ListView, set [`sortOrder`](../../api/list-view/#sortorder) as `Ascending` or `Descending`. +ListView can be sorted either in ascending or descending order. To enable sorting in your ListView, set [`sortOrder`](../../api/list-view/#sortorder) as `Ascending` or `Descending`. ```ts @@ -120,7 +123,7 @@ In the below sample, we have sorted fruits in `Ascending` order. To sort it in d ### Filter Items -Listview data can be filtered with the help of [`dataManager`](../../data/getting-started/). After filtering the data, update ListView [`dataSource`](../../api/list-view/#datasource) with filtered data. +ListView data can be filtered with the help of [`dataManager`](../../data/getting-started/). After filtering the data, update the ListView [`dataSource`](../../api/list-view/#datasource) with the filtered data. ```ts @@ -133,19 +136,22 @@ listViewInstance.dataSource = filteredData; ``` -In the below sample, we can filter fruit items with the help of search text box. This will filter fruit items based on your input. Here we used [`startswith`](../../data/querying#filter-operators) of input text to filter data in DataManager. +In the sample below, we can filter fruit items with the help of a search text box. This will filter fruit items based on your input. Here we used [`startswith`](../../data/querying#filter-operators) with the input text to filter data in DataManager. {% if page.publishingplatform == "typescript" %} - {% tabs %} +{% tabs %} {% highlight ts tabtitle="index.ts" %} {% include code-snippet/listview/manipulation-cs1/index.ts %} {% endhighlight %} {% highlight html tabtitle="index.html" %} {% include code-snippet/listview/manipulation-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/listview/manipulation-cs1/index.css %} +{% endhighlight %} {% endtabs %} - + {% previewsample "page.domainurl/code-snippet/listview/manipulation-cs1" %} {% elsif page.publishingplatform == "javascript" %} @@ -157,7 +163,10 @@ In the below sample, we can filter fruit items with the help of search text box. {% highlight html tabtitle="index.html" %} {% include code-snippet/listview/manipulation-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/listview/manipulation-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/listview/manipulation-cs1" %} -{% endif %} +{% endif %} \ No newline at end of file diff --git a/ej2-javascript/listview/how-to/customize-listview-with-dynamic-tags.md b/ej2-javascript/listview/how-to/customize-listview-with-dynamic-tags.md index 5ed3bc832..381432269 100644 --- a/ej2-javascript/listview/how-to/customize-listview-with-dynamic-tags.md +++ b/ej2-javascript/listview/how-to/customize-listview-with-dynamic-tags.md @@ -1,19 +1,19 @@ --- layout: post -title: Customize listview with dynamic tags in ##Platform_Name## Listview control | Syncfusion -description: Learn here all about Customize listview with dynamic tags in Syncfusion ##Platform_Name## Listview control of Syncfusion Essential JS 2 and more. +title: Customize ListView with dynamic tags in ##Platform_Name## ListView control | Syncfusion +description: Learn here all about Customize ListView with dynamic tags in Syncfusion ##Platform_Name## ListView control of Syncfusion Essential JS 2 and more. platform: ej2-javascript -control: Customize listview with dynamic tags +control: Customize ListView with dynamic tags publishingplatform: ##Platform_Name## documentation: ug domainurl: ##DomainURL## --- -# Customize listview with dynamic tags in ##Platform_Name## Listview control +# Customize ListView with dynamic tags in ##Platform_Name## ListView control -You can customize the ListView items using the [`template`](../../api/list-view/#template) property. Here, the dynamic tags are added and removed in the list item from another ListView. Refer to the following steps to achieve this. +You can customize the ListView items using the [`template`](../../api/list-view/#template) property. Here, dynamic tags are added or removed in the list item from another ListView. Refer to the following steps to achieve this. -* Render the ListView with data source, and add button element with each list item of ListView on [`actionComplete`](../../api/list-view/#actioncompldiaete) event. Refer to the following code sample of actionComplete event. +* Render the ListView with a data source, and add a button element with each list item of the ListView on the [`actionComplete`](../../api/list-view/#actioncomplete) event. Refer to the following code sample of the actionComplete event. ```ts @@ -30,8 +30,7 @@ function addButton() { ``` -* Initialize dynamic ListView with required property that holds the tags of parent ListView, and bind the [`select`](../../api/list-view/#select) event (triggers when the list item is selected), in which you can get and add the selected item value as tags into parent -ListView. Refer to the following code sample. +* Initialize a dynamic ListView with the required properties that hold the tags of the parent ListView, and bind the [`select`](../../api/list-view/#select) event (triggers when a list item is selected) to add the selected item value as tags into the parent ListView. Refer to the following code sample. ```ts @@ -55,9 +54,9 @@ function addTag(e: SelectEventArgs) { ``` -* Render the dialog control with empty content and append the created dynamic ListView object to the dialog on [`created`](../../api/dialog/#created) event. +* Render the dialog control with empty content and append the created dynamic ListView object to the dialog on the [`created`](../../api/dialog/#created) event. -* Bind the click event for button icon (+) to update the ListView data source with tags, and open the dialog with this dynamic ListView. Refer to the following code sample. +* Bind the click event to the button icon (+) to update the ListView data source with tags, and open the dialog with this dynamic ListView. Refer to the following code sample. ```ts @@ -76,7 +75,7 @@ function renderDialog(id: string): void { ``` -* Bind the click event with added dynamic tags to remove it. Refer to the following code sample. +* Bind the click event with added dynamic tags to remove them. Refer to the following code sample. ```ts @@ -89,15 +88,18 @@ function removeTag() { {% if page.publishingplatform == "typescript" %} - {% tabs %} +{% tabs %} {% highlight ts tabtitle="index.ts" %} {% include code-snippet/listview/tags-cs1/index.ts %} {% endhighlight %} {% highlight html tabtitle="index.html" %} {% include code-snippet/listview/tags-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/listview/tags-cs1/index.css %} +{% endhighlight %} {% endtabs %} - + {% previewsample "page.domainurl/code-snippet/listview/tags-cs1" %} {% elsif page.publishingplatform == "javascript" %} @@ -109,7 +111,10 @@ function removeTag() { {% highlight html tabtitle="index.html" %} {% include code-snippet/listview/tags-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/listview/tags-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/listview/tags-cs1" %} -{% endif %} +{% endif %} \ No newline at end of file diff --git a/ej2-javascript/listview/how-to/customize-nested-listview-as-bread-crumbs.md b/ej2-javascript/listview/how-to/customize-nested-listview-as-bread-crumbs.md index cf6555a65..60bee66a5 100644 --- a/ej2-javascript/listview/how-to/customize-nested-listview-as-bread-crumbs.md +++ b/ej2-javascript/listview/how-to/customize-nested-listview-as-bread-crumbs.md @@ -1,37 +1,43 @@ --- layout: post -title: Customize nested listview as bread crumbs in ##Platform_Name## Listview control | Syncfusion -description: Learn here all about Customize nested listview as bread crumbs in Syncfusion ##Platform_Name## Listview control of Syncfusion Essential JS 2 and more. +title: Customize nested ListView as breadcrumbs in ##Platform_Name## ListView control | Syncfusion +description: Learn here all about customizing nested ListView as breadcrumbs in the Syncfusion ##Platform_Name## ListView control of Syncfusion Essential JS 2 and more. platform: ej2-javascript -control: Customize nested listview as bread crumbs +control: Customize nested ListView as breadcrumbs publishingplatform: ##Platform_Name## documentation: ug domainurl: ##DomainURL## --- -# Customize nested listview as bread crumbs in ##Platform_Name## Listview control +# Customize nested ListView as breadcrumbs in ##Platform_Name## ListView control -ListView header can be customized using [headerTemplate](https://ej2.syncfusion.com/documentation/api/list-view/#headertemplate) property. Here We customized the header of nested ListView as BreadCrumbs with headerTemplate property . i.e while navigating to child data of a list item, the header data is customized with the selected data path. For example, the header of nested ListView is Continent. While selecting a list item(Asia) then the header will be customized as Continent>Asia. +The ListView header can be customized using the [headerTemplate](https://ej2.syncfusion.com/documentation/api/list-view/#headertemplate) property. Here, we customize the header of a nested ListView as breadcrumbs using the headerTemplate property. This means that while navigating to the child data of a list item, the header data is customized with the selected data path. For example, if the header of the nested ListView is "Continent" and you select a list item (Asia), the header will be customized as "Continent>Asia." -* This customization achieved while front and back navigations of list items with `actionComplete` event of ListView. -* On actionComplete we append the selected text in header element. -* And in back navigation, we removed the last appended span from header template +* This customization is achieved during the front and back navigation of list items using the `actionComplete` event of ListView. +* On [actionComplete](../../api/list-view/#actioncomplete), we append the selected text to the header element. +* During back navigation, we remove the last appended span from the header template. -And also we can able to navigate the desired child level by clicking list items appended in the customized header. For example, let consider header of nested ListView is `Continent>Asia>India`. If we want to navigate to Continent level of ListView, then we can click the Continent in Header +We can also navigate to the desired child level by clicking list items appended in the customized header. For example, consider the header of a nested ListView as `Continent>Asia>India`. If you want to navigate to the Continent level of the ListView, you can click "Continent" in the header. N> In each navigation we have calculated the appended span tag length in `calculateLevelForElements` method to update header. {% if page.publishingplatform == "typescript" %} - {% tabs %} +{% tabs %} {% highlight ts tabtitle="index.ts" %} {% include code-snippet/listview/bread-crumbs-cs1/index.ts %} {% endhighlight %} +{% highlight ts tabtitle="datasource.ts" %} +{% include code-snippet/listview/bread-crumbs-cs1/datasource.ts %} +{% endhighlight %} {% highlight html tabtitle="index.html" %} {% include code-snippet/listview/bread-crumbs-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/listview/bread-crumbs-cs1/index.css %} +{% endhighlight %} {% endtabs %} - + {% previewsample "page.domainurl/code-snippet/listview/bread-crumbs-cs1" %} {% elsif page.publishingplatform == "javascript" %} @@ -40,10 +46,16 @@ N> In each navigation we have calculated the appended span tag length in `calcul {% highlight js tabtitle="index.js" %} {% include code-snippet/listview/bread-crumbs-cs1/index.js %} {% endhighlight %} +{% highlight js tabtitle="es5-datasource.js" %} +{% include code-snippet/listview/bread-crumbs-cs1/es5-datasource.js %} +{% endhighlight %} {% highlight html tabtitle="index.html" %} {% include code-snippet/listview/bread-crumbs-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/listview/bread-crumbs-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/listview/bread-crumbs-cs1" %} -{% endif %} +{% endif %} \ No newline at end of file diff --git a/ej2-javascript/listview/how-to/display-items-count-in-group-header.md b/ej2-javascript/listview/how-to/display-items-count-in-group-header.md index 6b0b2f03a..c9db20a12 100644 --- a/ej2-javascript/listview/how-to/display-items-count-in-group-header.md +++ b/ej2-javascript/listview/how-to/display-items-count-in-group-header.md @@ -1,29 +1,32 @@ --- layout: post -title: Display items count in group header in ##Platform_Name## Listview control | Syncfusion -description: Learn here all about Display items count in group header in Syncfusion ##Platform_Name## Listview control of Syncfusion Essential JS 2 and more. +title: Display items count in group header in ##Platform_Name## ListView control | Syncfusion +description: Learn here all about Display items count in group header in Syncfusion ##Platform_Name## ListView control of Syncfusion Essential JS 2 and more. platform: ej2-javascript -control: Display items count in group header +control: Display items count in group header publishingplatform: ##Platform_Name## documentation: ug domainurl: ##DomainURL## --- -# Display items count in group header in ##Platform_Name## Listview control +# Display items count in group header in ##Platform_Name## ListView control -The ListView control supports wrapping list items into a group based on the category. The category of each list item can be mapped with groupBy field of the data source. You can display grouped list items count in the list-header using the group header template. Refer to the following code sample to display grouped list item count. +The ListView control supports grouping list items based on categories. The category of each list item can be mapped with the `groupBy` field of the data source. You can display the count of grouped list items in the list header using the group header template. Refer to the following code sample to display the count of grouped list items. {% if page.publishingplatform == "typescript" %} - {% tabs %} +{% tabs %} {% highlight ts tabtitle="index.ts" %} {% include code-snippet/listview/item-count-cs2/index.ts %} {% endhighlight %} {% highlight html tabtitle="index.html" %} {% include code-snippet/listview/item-count-cs2/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/listview/item-count-cs2/index.css %} +{% endhighlight %} {% endtabs %} - + {% previewsample "page.domainurl/code-snippet/listview/item-count-cs2" %} {% elsif page.publishingplatform == "javascript" %} @@ -35,7 +38,10 @@ The ListView control supports wrapping list items into a group based on the cate {% highlight html tabtitle="index.html" %} {% include code-snippet/listview/item-count-cs2/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/listview/item-count-cs2/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/listview/item-count-cs2" %} -{% endif %} +{% endif %} \ No newline at end of file diff --git a/ej2-javascript/listview/how-to/display-spinner-for-list-item-loading-from-remote-data.md b/ej2-javascript/listview/how-to/display-spinner-for-list-item-loading-from-remote-data.md index 33ab107cc..7173a4a1e 100644 --- a/ej2-javascript/listview/how-to/display-spinner-for-list-item-loading-from-remote-data.md +++ b/ej2-javascript/listview/how-to/display-spinner-for-list-item-loading-from-remote-data.md @@ -1,17 +1,17 @@ --- layout: post -title: Display spinner for list item loading from remote data in ##Platform_Name## Listview control | Syncfusion -description: Learn here all about Display spinner for list item loading from remote data in Syncfusion ##Platform_Name## Listview control of Syncfusion Essential JS 2 and more. +title: Display spinner for list item loading from remote data in ##Platform_Name## ListView control | Syncfusion +description: Learn here all about Display spinner for list item loading from remote data in Syncfusion ##Platform_Name## ListView control of Syncfusion Essential JS 2 and more. platform: ej2-javascript -control: Display spinner for list item loading from remote data +control: Display spinner for list item loading from remote data publishingplatform: ##Platform_Name## documentation: ug domainurl: ##DomainURL## --- -# Display spinner for list item loading from remote data in ##Platform_Name## Listview control +# Display spinner for list item loading from remote data in ##Platform_Name## ListView control -The features of the ListView control such as remote data-binding take more time to fetch data from corresponding dataSource/remote URL. In this case, you can use EJ2 [Spinner](../../spinner/) to enhance the appearance of the UI. This section explains how to load a spinner control to groom the appearance. +Features of the ListView control, such as remote data binding, can take some time to fetch data from the corresponding dataSource/remote URL. In this scenario, you can use the EJ2 [Spinner](../../spinner/) to enhance the appearance of the UI. This section explains how to load a spinner control to improve the user experience. Refer to the following code sample to render the spinner control. @@ -50,19 +50,22 @@ let listviewInstance: ListView = new ListView({ listviewInstance.appendTo("#element"); ``` -Here, the data is fetched from `Northwind` Service URL; it takes a few seconds to load the data. To enhance the UI, the spinner control has been rendered initially. After the data is loaded from remote URL, the spinner control will be hidden in ListView [actionComplete](../../api/list-view/#actioncomplete) event. +Here, the data is fetched from the `Northwind` Service URL; it takes a few seconds to load the data. To enhance the UI, the spinner control has been rendered initially. After the data is loaded from the remote URL, the spinner control will be hidden in the ListView [actionComplete](../../api/list-view/#actioncomplete) event. {% if page.publishingplatform == "typescript" %} - {% tabs %} +{% tabs %} {% highlight ts tabtitle="index.ts" %} {% include code-snippet/listview/spinner-cs1/index.ts %} {% endhighlight %} {% highlight html tabtitle="index.html" %} {% include code-snippet/listview/spinner-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/listview/spinner-cs1/index.css %} +{% endhighlight %} {% endtabs %} - + {% previewsample "page.domainurl/code-snippet/listview/spinner-cs1" %} {% elsif page.publishingplatform == "javascript" %} @@ -74,7 +77,10 @@ Here, the data is fetched from `Northwind` Service URL; it takes a few seconds t {% highlight html tabtitle="index.html" %} {% include code-snippet/listview/spinner-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/listview/spinner-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/listview/spinner-cs1" %} -{% endif %} +{% endif %} \ No newline at end of file diff --git a/ej2-javascript/listview/how-to/drag-and-drop-list-items-in-listview.md b/ej2-javascript/listview/how-to/drag-and-drop-list-items-in-listview.md index d6ebf3f7c..630858ee5 100644 --- a/ej2-javascript/listview/how-to/drag-and-drop-list-items-in-listview.md +++ b/ej2-javascript/listview/how-to/drag-and-drop-list-items-in-listview.md @@ -1,19 +1,19 @@ --- layout: post -title: Drag and drop list items in listview in ##Platform_Name## Listview control | Syncfusion -description: Learn here all about Drag and drop list items in listview in Syncfusion ##Platform_Name## Listview control of Syncfusion Essential JS 2 and more. +title: Drag and drop list items in ListView in ##Platform_Name## ListView control | Syncfusion +description: Learn here all about Drag and drop list items in ListView in Syncfusion ##Platform_Name## ListView control of Syncfusion Essential JS 2 and more. platform: ej2-javascript -control: Drag and drop list items in listview +control: Drag and drop list items in ListView publishingplatform: ##Platform_Name## documentation: ug domainurl: ##DomainURL## --- -# Drag and drop list items in listview in ##Platform_Name## Listview control +# Drag and drop list items in ##Platform_Name## ListView control -In ListView control, we don't have drag and drop support. But we can achieve this requirement using [`TreeView`](https://ej2.syncfusion.com/documentation/treeview/getting-started/) control with ListView appearance. +The ListView control does not have native drag and drop support. However, you can achieve drag and drop functionality by using the [`TreeView`](https://ej2.syncfusion.com/documentation/treeview/getting-started/) control styled to appear like a ListView. -Drag and Drop in TreeView control was enabled by setting [`allowDragAndDrop`](../../api/treeview/#allowdraganddrop) to `true`. +Drag and Drop in TreeView control was enabled by setting the [`allowDragAndDrop`](../../api/treeview/#allowdraganddrop) to `true`. ```ts @@ -26,7 +26,7 @@ let treeViewInstance: TreeView = new TreeView({ ``` -The TreeView control is used to represent hierarchical data in a tree like structure. So, list items in TreeView can be dropped to child of target element. we can prevent this behaviour by cancelling the [`nodeDragStop`](../../api/treeview/#nodedragstop) and [`nodeDragging`](../../api/treeview/#nodedragging) events. +The TreeView control displays hierarchical data in a tree-like structure. List items in the TreeView can be prevented from being dropped as children of another element by cancelling the [`nodeDragStop`](../../api/treeview/#nodedragstop) and [`nodeDragging`](../../api/treeview/#nodedragging) events: ```ts @@ -49,17 +49,20 @@ function onDragStop(args: DragAndDropEventArgs) { ``` -In the below sample, we have rendered draggable list items. +In the sample below, we have rendered draggable list items using the TreeView control with ListView appearance. {% if page.publishingplatform == "typescript" %} - {% tabs %} +{% tabs %} {% highlight ts tabtitle="index.ts" %} {% include code-snippet/listview/reorder-cs1/index.ts %} {% endhighlight %} {% highlight html tabtitle="index.html" %} {% include code-snippet/listview/reorder-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/listview/reorder-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/listview/reorder-cs1" %} @@ -73,7 +76,10 @@ In the below sample, we have rendered draggable list items. {% highlight html tabtitle="index.html" %} {% include code-snippet/listview/reorder-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/listview/reorder-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/listview/reorder-cs1" %} -{% endif %} +{% endif %} \ No newline at end of file diff --git a/ej2-javascript/listview/how-to/dynamic-hierarchical-listview.md b/ej2-javascript/listview/how-to/dynamic-hierarchical-listview.md index 96e7509aa..71529f431 100644 --- a/ej2-javascript/listview/how-to/dynamic-hierarchical-listview.md +++ b/ej2-javascript/listview/how-to/dynamic-hierarchical-listview.md @@ -1,25 +1,23 @@ --- layout: post -title: Dynamic hierarchical listview in ##Platform_Name## Listview control | Syncfusion -description: Learn here all about Dynamic hierarchical listview in Syncfusion ##Platform_Name## Listview control of Syncfusion Essential JS 2 and more. +title: Dynamic hierarchical data in ##Platform_Name## ListView control | Syncfusion +description: Learn here all about Dynamic hierarchical data in Syncfusion ##Platform_Name## ListView control of Syncfusion Essential JS 2 and more. platform: ej2-javascript -control: Dynamic hierarchical listview +control: Dynamic hierarchical ListView publishingplatform: ##Platform_Name## documentation: ug domainurl: ##DomainURL## --- -# Dynamic hierarchical listview in ##Platform_Name## Listview control +# Dynamic hierarchical data in ##Platform_Name## ListView control -To dynamic hierarchical listview, push the new list item data into the existing [`dataSource`](../../api/list-view/#datasource) using the [`select`](../../api/list-view/#select) event. +To create a dynamic hierarchical ListView, push new list item data into the existing [`dataSource`](../../api/list-view/#datasource) using the [`select`](../../api/list-view/#select) event. -Refer to the following steps to load list item into the child list: +Refer to the following steps to load list items into the child list: 1. Initially, render the ListView with the required data source. -2. Bind the [`select`](../../api/list-view/#select) event that triggers selecting list item in the ListView control. By using the select event, you can push the new list item to the child list of the data source on specifying its item index. Item index can be obtained from the -[`SelectEventArgs`](../../api/list-view/selectEventArgs/) of the select event. - +2. Bind the [`select`](../../api/list-view/#select) event that triggers when selecting a list item in the ListView control. By using the select event, you can push new list items to the child list of the data source by specifying its item index. The item index can be obtained from the [`SelectEventArgs`](../../api/list-view/selectEventArgs/) of the select event. {% if page.publishingplatform == "typescript" %} {% tabs %} @@ -29,8 +27,11 @@ Refer to the following steps to load list item into the child list: {% highlight html tabtitle="index.html" %} {% include code-snippet/listview/child-list-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/listview/child-list-cs1/index.css %} +{% endhighlight %} {% endtabs %} - + {% previewsample "page.domainurl/code-snippet/listview/child-list-cs1" %} {% elsif page.publishingplatform == "javascript" %} @@ -42,7 +43,10 @@ Refer to the following steps to load list item into the child list: {% highlight html tabtitle="index.html" %} {% include code-snippet/listview/child-list-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/listview/child-list-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/listview/child-list-cs1" %} -{% endif %} +{% endif %} \ No newline at end of file diff --git a/ej2-javascript/listview/how-to/dynamic-listview-by-loading-ajax-html-content.md b/ej2-javascript/listview/how-to/dynamic-listview-by-loading-ajax-html-content.md index 7cefaaf42..cd6797105 100644 --- a/ej2-javascript/listview/how-to/dynamic-listview-by-loading-ajax-html-content.md +++ b/ej2-javascript/listview/how-to/dynamic-listview-by-loading-ajax-html-content.md @@ -1,17 +1,17 @@ --- layout: post -title: Dynamic listview by loading ajax html content in ##Platform_Name## Listview control | Syncfusion -description: Learn here all about Dynamic listview by loading ajax html content in Syncfusion ##Platform_Name## Listview control of Syncfusion Essential JS 2 and more. +title: Dynamic ListView by loading ajax html content in ##Platform_Name## ListView control | Syncfusion +description: Learn here all about Dynamic ListView by loading ajax html content in Syncfusion ##Platform_Name## ListView control of Syncfusion Essential JS 2 and more. platform: ej2-javascript -control: Dynamic listview by loading ajax html content +control: Dynamic ListView by loading ajax html content publishingplatform: ##Platform_Name## documentation: ug domainurl: ##DomainURL## --- -# Dynamic listview by loading ajax html content in ##Platform_Name## Listview control +# Dynamic ##Platform_Name## ListView control by loading ajax html content -We can set external `HTML` page content as [`template`](../../api/list-view/#template) for our `ListView` control by making use of `AJAX` call. +We can set external `HTML` page content as a [`template`](../../api/list-view/#template) for our `ListView` control by making use of an `AJAX` call. ```ts @@ -25,19 +25,22 @@ ajax.send(); ``` -In the below sample, we have rendered smartphone settings template from external `HTML` file. +In the sample below, we have rendered a smartphone settings template from an external `HTML` file. {% if page.publishingplatform == "typescript" %} - {% tabs %} +{% tabs %} {% highlight ts tabtitle="index.ts" %} {% include code-snippet/listview/ajax-cs1/index.ts %} {% endhighlight %} {% highlight html tabtitle="index.html" %} {% include code-snippet/listview/ajax-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/listview/ajax-cs1/index.css %} +{% endhighlight %} {% endtabs %} - + {% previewsample "page.domainurl/code-snippet/listview/ajax-cs1" %} {% elsif page.publishingplatform == "javascript" %} @@ -49,7 +52,10 @@ In the below sample, we have rendered smartphone settings template from external {% highlight html tabtitle="index.html" %} {% include code-snippet/listview/ajax-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/listview/ajax-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/listview/ajax-cs1" %} -{% endif %} +{% endif %} \ No newline at end of file diff --git a/ej2-javascript/listview/how-to/dynamic-templates-in-listview-based-on-device.md b/ej2-javascript/listview/how-to/dynamic-templates-in-listview-based-on-device.md index aa962fe47..29686af56 100644 --- a/ej2-javascript/listview/how-to/dynamic-templates-in-listview-based-on-device.md +++ b/ej2-javascript/listview/how-to/dynamic-templates-in-listview-based-on-device.md @@ -3,7 +3,7 @@ layout: post title: Dynamic templates in listview based on device in ##Platform_Name## Listview control | Syncfusion description: Learn here all about Dynamic templates in listview based on device in Syncfusion ##Platform_Name## Listview control of Syncfusion Essential JS 2 and more. platform: ej2-javascript -control: Dynamic templates in listview based on device +control: Dynamic templates in listview based on device publishingplatform: ##Platform_Name## documentation: ug domainurl: ##DomainURL## @@ -11,11 +11,11 @@ domainurl: ##DomainURL## # Dynamic templates in listview based on device in ##Platform_Name## Listview control -The Syncfusion Essential JS2 controls are desktop and mobile-friendly. So, you can use Syncfusion controls in both modes. The control templates are not always fixed. Applications may need to load various templates depending upon the device. +The Syncfusion Essential JS 2 controls are both desktop and mobile-friendly, allowing the use of Syncfusion controls in various environments. The control templates are flexible and can differ depending on the device being used. ## Integration -In the ListView control, template support is being used. In some cases, the control wrapper is always responsive across all devices, but the template contents are dynamically changed with unspecified (sample side) dimensions. CSS customization is also needed in sample-side to align template content responsively in both mobile and desktop modes. Here, two templates have been loaded for mobile and desktop modes. To check the device mode, a browser module has been imported from the ej2-base package. +In the ListView control, template support can be utilized to create responsive interfaces. While the control wrapper is responsive on all devices, sometimes template contents need to be dynamically adjusted with customizable dimensions on the sample side. To ensure the template content aligns responsively in both mobile and desktop modes, CSS customization on the sample side is essential. Two templates are provided for mobile and desktop modes, with device mode detection handled by the browser module imported from the ej2-base package. {% if page.publishingplatform == "typescript" %} @@ -26,8 +26,11 @@ In the ListView control, template support is being used. In some cases, the cont {% highlight html tabtitle="index.html" %} {% include code-snippet/listview/dynamic-template-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/listview/dynamic-template-cs1/index.css %} +{% endhighlight %} {% endtabs %} - + {% previewsample "page.domainurl/code-snippet/listview/dynamic-template-cs1" %} {% elsif page.publishingplatform == "javascript" %} @@ -39,7 +42,10 @@ In the ListView control, template support is being used. In some cases, the cont {% highlight html tabtitle="index.html" %} {% include code-snippet/listview/dynamic-template-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/listview/dynamic-template-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/listview/dynamic-template-cs1" %} -{% endif %} +{% endif %} \ No newline at end of file diff --git a/ej2-javascript/listview/how-to/fetch-selected-items-from-listview-template-sample.md b/ej2-javascript/listview/how-to/fetch-selected-items-from-listview-template-sample.md index 52634a9e7..30b859b7e 100644 --- a/ej2-javascript/listview/how-to/fetch-selected-items-from-listview-template-sample.md +++ b/ej2-javascript/listview/how-to/fetch-selected-items-from-listview-template-sample.md @@ -1,21 +1,21 @@ --- layout: post -title: Fetch selected items from listview template sample in ##Platform_Name## Listview control | Syncfusion -description: Learn here all about Fetch selected items from listview template sample in Syncfusion ##Platform_Name## Listview control of Syncfusion Essential JS 2 and more. +title: Fetch selected items from ListView template sample in ##Platform_Name## ListView control | Syncfusion +description: Learn here all about fetching selected items from a ListView template sample in the Syncfusion ##Platform_Name## ListView control of Syncfusion Essential JS 2 and more. platform: ej2-javascript -control: Fetch selected items from listview template sample +control: Fetch selected items from ListView template sample publishingplatform: ##Platform_Name## documentation: ug domainurl: ##DomainURL## --- -# Fetch selected items from listview template sample in ##Platform_Name## Listview control +# Fetch selected items from ListView template sample in ##Platform_Name## ListView control -Single or multiple items can be selected by users in the ListView control. +Users can select single or multiple items in the ListView control. -By default, dataSource id and text is mapped in default rendering of listview, since it returns the selected item data properly. But in the custom template, dataSource and the corresponding mapping (text, id, elements rendered inside li element) will vary as per the application requirement. +By default, the dataSource id and text are mapped in the default rendering of the ListView, which ensures proper data retrieval of selected items. However, in a custom template, the dataSource and the corresponding mappings (text, id, and elements rendered inside the li element) may vary depending on the application's requirements. -So, we need to map id attribute to listview items using [fields](../../api/list-view/#fields) of [dataSource](../../api/list-view/#datasource) to get the selected item data properly while working with custom templates. Refer to the below code snippet for template sample. +Therefore, it is crucial to map the id attribute to ListView items using the [fields](../../api/list-view/#fields) of the [dataSource](../../api/list-view/#datasource) to correctly retrieve selected item data when working with custom templates. Refer to the code snippet below for a template sample. ```ts @@ -46,13 +46,16 @@ listObj.appendTo('#listview'); {% if page.publishingplatform == "typescript" %} - {% tabs %} +{% tabs %} {% highlight ts tabtitle="index.ts" %} {% include code-snippet/listview/listview-template-cs1/index.ts %} {% endhighlight %} {% highlight html tabtitle="index.html" %} {% include code-snippet/listview/listview-template-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/listview/listview-template-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/listview/listview-template-cs1" %} @@ -66,7 +69,10 @@ listObj.appendTo('#listview'); {% highlight html tabtitle="index.html" %} {% include code-snippet/listview/listview-template-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/listview/listview-template-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/listview/listview-template-cs1" %} -{% endif %} +{% endif %} \ No newline at end of file diff --git a/ej2-javascript/listview/how-to/filter-and-search-list-items-using-listview.md b/ej2-javascript/listview/how-to/filter-and-search-list-items-using-listview.md index cd114bb3b..0e896d1c6 100644 --- a/ej2-javascript/listview/how-to/filter-and-search-list-items-using-listview.md +++ b/ej2-javascript/listview/how-to/filter-and-search-list-items-using-listview.md @@ -1,23 +1,23 @@ --- layout: post -title: Filter and search list items using listview in ##Platform_Name## Listview control | Syncfusion -description: Learn here all about Filter and search list items using listview in Syncfusion ##Platform_Name## Listview control of Syncfusion Essential JS 2 and more. +title: Filter and search list items using ListView in ##Platform_Name## ListView control | Syncfusion +description: Learn here all about Filter and search list items using ListView in Syncfusion ##Platform_Name## ListView control of Syncfusion Essential JS 2 and more. platform: ej2-javascript -control: Filter and search list items using listview +control: Filter and search list items using ListView publishingplatform: ##Platform_Name## documentation: ug domainurl: ##DomainURL## --- -# Filter and search list items using listview in ##Platform_Name## Listview control +# Filter and search list items in ##Platform_Name## ListView control -The filtered data can be displayed in the ListView control depending upon on user inputs using the [`DataManager`](../../data/getting-started/). Refer to the following steps to render the ListView with filtered data. +You can display filtered data in the ListView control based on user input using the [`DataManager`](../../data/getting-started/). Follow these steps to render the ListView with filtered data: -* Render a textbox to get input for filtering data. +* Render a textbox to get input for filtering. -* Render ListView with [`dataSource`](../../api/list-view/#datasource), and set the [`sortOrder`](../../api/list-view/#sortorder) property. +* Render the ListView with a [`dataSource`](../../api/list-view/#datasource), and set the [`sortOrder`](../../api/list-view/#sortorder) property to arrange the items. -* Bind the `keyup` event for textbox to perform filtering operation. To filter list data, pass the list data source to the `DataManager`, manipulate the data using the [`executeLocal`](../../api/data/dataManager/#executelocal) method, and then update filtered data as ListView dataSource. +* Bind the `keyup` event for the textbox to perform the filtering operation. To filter the list data, pass the list data source to the `DataManager`, manipulate the data using the [`executeLocal`](../../api/data/dataManager/#executelocal) method, and then update the filtered data as the ListView's dataSource. {% if page.publishingplatform == "typescript" %} @@ -28,8 +28,11 @@ The filtered data can be displayed in the ListView control depending upon on use {% highlight html tabtitle="index.html" %} {% include code-snippet/listview/filter-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/listview/filter-cs1/index.css %} +{% endhighlight %} {% endtabs %} - + {% previewsample "page.domainurl/code-snippet/listview/filter-cs1" %} {% elsif page.publishingplatform == "javascript" %} @@ -41,9 +44,12 @@ The filtered data can be displayed in the ListView control depending upon on use {% highlight html tabtitle="index.html" %} {% include code-snippet/listview/filter-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/listview/filter-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/listview/filter-cs1" %} {% endif %} -> In this demo, data has been filtered with starting character of the list items. You can also filter list items with ending character by passing the `endswith` in [where](../../api/data/query/#where) clause instead of `startswith`. +> In this demo, the data is filtered by the starting character of the list items. You can also filter list items by their ending character by using `endswith` in the [where](../../api/data/query/#where) clause instead of `startswith`. \ No newline at end of file diff --git a/ej2-javascript/listview/how-to/get-selected-items-from-listview.md b/ej2-javascript/listview/how-to/get-selected-items-from-listview.md index 0ac9847b5..10cc0fef7 100644 --- a/ej2-javascript/listview/how-to/get-selected-items-from-listview.md +++ b/ej2-javascript/listview/how-to/get-selected-items-from-listview.md @@ -1,19 +1,19 @@ --- layout: post -title: Get selected items from listview in ##Platform_Name## Listview control | Syncfusion -description: Learn here all about Get selected items from listview in Syncfusion ##Platform_Name## Listview control of Syncfusion Essential JS 2 and more. +title: Get selected items from ListView in ##Platform_Name## ListView control | Syncfusion +description: Learn here all about Get selected items from ListView in Syncfusion ##Platform_Name## ListView control of Syncfusion Essential JS 2 and more. platform: ej2-javascript -control: Get selected items from listview +control: Get selected items from ListView publishingplatform: ##Platform_Name## documentation: ug domainurl: ##DomainURL## --- -# Get selected items from listview in ##Platform_Name## Listview control +# Get selected items from ##Platform_Name## ListView control -Single or many items can be selected by users in the ListView control. An API is used to get selected items from the list items. This is called as the [`getSelectedItems`](../../api/list-view/#getselecteditems) method. +In the ListView control, users can select one or more items. The [`getSelectedItems`](../../api/list-view/#getselecteditems) API method can be used to retrieve details of the currently selected items from the ListView control. -**`getSelectedItems` method** +**`getSelectedItems` Method** This is used to get the details of the currently selected item from the list items. It returns the [`SelectedItem`](../../api/list-view/selectedItem/) | [`SelectedCollection`](../../api/list-view/selectedCollection/) @@ -34,8 +34,11 @@ The `getSelectedItems` method returns the following items from the selected list {% highlight html tabtitle="index.html" %} {% include code-snippet/listview/selected-item-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/listview/selected-item-cs1/index.css %} +{% endhighlight %} {% endtabs %} - + {% previewsample "page.domainurl/code-snippet/listview/selected-item-cs1" %} {% elsif page.publishingplatform == "javascript" %} @@ -47,7 +50,10 @@ The `getSelectedItems` method returns the following items from the selected list {% highlight html tabtitle="index.html" %} {% include code-snippet/listview/selected-item-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/listview/selected-item-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/listview/selected-item-cs1" %} -{% endif %} +{% endif %} \ No newline at end of file diff --git a/ej2-javascript/listview/how-to/hide-checkbox-in-listview.md b/ej2-javascript/listview/how-to/hide-checkbox-in-listview.md index 9ac166488..eecb5caec 100644 --- a/ej2-javascript/listview/how-to/hide-checkbox-in-listview.md +++ b/ej2-javascript/listview/how-to/hide-checkbox-in-listview.md @@ -1,19 +1,19 @@ --- layout: post -title: Hide checkbox in listview in ##Platform_Name## Listview control | Syncfusion -description: Learn here all about Hide checkbox in listview in Syncfusion ##Platform_Name## Listview control of Syncfusion Essential JS 2 and more. +title: Hide checkbox in ##Platform_Name## ListView control | Syncfusion +description: Learn here all about Hide checkbox in Syncfusion ##Platform_Name## ListView control of Syncfusion Essential JS 2 and more. platform: ej2-javascript -control: Hide checkbox in listview +control: Hide checkbox in ListView publishingplatform: ##Platform_Name## documentation: ug domainurl: ##DomainURL## --- -# Hide checkbox in listview in ##Platform_Name## Listview control +# Hide checkbox in ##Platform_Name## ListView control -The checkbox of the any list item can be hidden by using [`htmlAttributes`](../../api/list-view/#htmlattributes) of [`fields`](../../api/list-view/#fields) object. With the help of `htmlAttributes` we can add unique class to each list item that will be rendered from the data source, from the CSS class we can hide the checkbox of the list item. +The checkbox of any list item can be hidden by using the [`htmlAttributes`](../../api/list-view/#htmlattributes) of the [`fields`](../../api/list-view/#fields) object. With the help of `htmlAttributes`, a unique class can be added to each list item that is rendered from the data source, allowing you to hide the checkbox of the list item via that CSS class. -In this sample, we had hidden the multiple leaf node of nested list. The `e-checkbox-hidden` class has been added in the data source where the checkbox needs to be hidden. Refer the below snippet for simple data source. +In this sample, multiple leaf nodes of a nested list have been hidden. The `e-checkbox-hidden` class has been added in the data source where the checkbox needs to be hidden. Refer to the snippet below for a simple data source. ```ts { @@ -24,21 +24,27 @@ In this sample, we had hidden the multiple leaf node of nested list. The `e-chec } ``` -Even though we have hidden the checkbox the functionality will be same for the list item which might affect the `getSelectedItems` method. So, to counteract that we will follow certain logic in the `select` event. The Logic here is to remove the `e-active` class from the other checkbox hidden list item which will be added when we select on that item and retain `e-active` on currently selected item. +Even though we have hidden the checkbox, the functionality remains the same for the list item, which might affect the [getSelectedItems](../../api/list-view/#getselecteditems) method. To counter this, we implement certain logic in the `select` event. The logic here is to remove the `e-active` class from other checkbox-hidden list items that get added when selecting that item, and retain `e-active` on the currently selected item. -> In this process we will exclude the visible checkbox list items and only consider the hidden checkbox items. +> This process excludes the visible checkbox list items and only considers the hidden checkbox items. {% if page.publishingplatform == "typescript" %} - {% tabs %} +{% tabs %} {% highlight ts tabtitle="index.ts" %} {% include code-snippet/listview/hide-checkbox-cs1/index.ts %} {% endhighlight %} +{% highlight ts tabtitle="datasource.ts" %} +{% include code-snippet/listview/hide-checkbox-cs1/datasource.ts %} +{% endhighlight %} {% highlight html tabtitle="index.html" %} {% include code-snippet/listview/hide-checkbox-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/listview/hide-checkbox-cs1/index.css %} +{% endhighlight %} {% endtabs %} - + {% previewsample "page.domainurl/code-snippet/listview/hide-checkbox-cs1" %} {% elsif page.publishingplatform == "javascript" %} @@ -47,10 +53,16 @@ Even though we have hidden the checkbox the functionality will be same for the l {% highlight js tabtitle="index.js" %} {% include code-snippet/listview/hide-checkbox-cs1/index.js %} {% endhighlight %} +{% highlight js tabtitle="es5-datasource.js" %} +{% include code-snippet/listview/hide-checkbox-cs1/es5-datasource.js%} +{% endhighlight %} {% highlight html tabtitle="index.html" %} {% include code-snippet/listview/hide-checkbox-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/listview/hide-checkbox-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/listview/hide-checkbox-cs1" %} -{% endif %} +{% endif %} \ No newline at end of file diff --git a/ej2-javascript/listview/how-to/integrate-pager-component-with-listview.md b/ej2-javascript/listview/how-to/integrate-pager-component-with-listview.md index 71f5b1025..ecd36f2b7 100644 --- a/ej2-javascript/listview/how-to/integrate-pager-component-with-listview.md +++ b/ej2-javascript/listview/how-to/integrate-pager-component-with-listview.md @@ -1,15 +1,17 @@ --- layout: post -title: Integrate pager component with listview in ##Platform_Name## Listview control | Syncfusion -description: Learn here all about Integrate pager component with listview in Syncfusion ##Platform_Name## Listview control of Syncfusion Essential JS 2 and more. +title: Integrate pager in ##Platform_Name## ListView Control | Syncfusion +description: Learn here all about integrate pager in Syncfusion ##Platform_Name## ListView control, it's elements and more. platform: ej2-javascript -control: Integrate pager component with listview +control: Integrate pager component with ListView publishingplatform: ##Platform_Name## documentation: ug domainurl: ##DomainURL## --- -# Integrate pager component with listview in ##Platform_Name## Listview control +# Integrate pager in ##Platform_Name## ListView Control + +{% if page.publishingplatform == "typescript" %} The first and foremost step is to obtain the `Pager` component from `Grid`. Install the ej2-grid package using the following command. @@ -23,6 +25,8 @@ Import the Pager to the ListView sample which has been created. import { Pager } from "@syncfusion/ej2-grids"; ``` +{% endif %} + The [`totalRecordsCount`](https://ej2.syncfusion.com/documentation/api/pager/#totalrecordscount) property of Pager must be specified whenever using this particular component. By using [`pageSize`](https://ej2.syncfusion.com/documentation/api/pager/#pagesize) property, the number of list items to be displayed is made available. The [`pageCount`](https://ej2.syncfusion.com/documentation/api/pager/#pagecount) property allows the user to specify the visibility of the page numbers accordingly. Since the paging sample in the upcoming code snippet uses these three properties, the explanation provided here were minimal and to the point. For further API concerns in Pager component, [click here](https://ej2.syncfusion.com/documentation/api/pager/). With the help of the `query` property of ListView, the user can specify the number of records to be displayed in the current page. @@ -43,9 +47,15 @@ Note: When `pageSize` isn't mentioned, it defaults to 12 records per page. {% highlight ts tabtitle="index.ts" %} {% include code-snippet/listview/paging-cs1/index.ts %} {% endhighlight %} +{% highlight ts tabtitle="datasource.ts" %} +{% include code-snippet/listview/paging-cs1/datasource.ts %} +{% endhighlight %} {% highlight html tabtitle="index.html" %} {% include code-snippet/listview/paging-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/listview/paging-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/listview/paging-cs1" %} @@ -56,9 +66,15 @@ Note: When `pageSize` isn't mentioned, it defaults to 12 records per page. {% highlight js tabtitle="index.js" %} {% include code-snippet/listview/paging-cs1/index.js %} {% endhighlight %} +{% highlight js tabtitle="es5-datasource.js" %} +{% include code-snippet/listview/paging-cs1/es5-datasource.js %} +{% endhighlight %} {% highlight html tabtitle="index.html" %} {% include code-snippet/listview/paging-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/listview/paging-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/listview/paging-cs1" %} diff --git a/ej2-javascript/listview/how-to/listview-with-hyper-link-navigation.md b/ej2-javascript/listview/how-to/listview-with-hyper-link-navigation.md index 8c15a7966..cdc3d9061 100644 --- a/ej2-javascript/listview/how-to/listview-with-hyper-link-navigation.md +++ b/ej2-javascript/listview/how-to/listview-with-hyper-link-navigation.md @@ -1,17 +1,17 @@ --- layout: post -title: Listview with hyper link navigation in ##Platform_Name## Listview control | Syncfusion -description: Learn here all about Listview with hyper link navigation in Syncfusion ##Platform_Name## Listview control of Syncfusion Essential JS 2 and more. +title: Hyper link navigation in ##Platform_Name## ListView control | Syncfusion +description: Learn here all about ListView with hyper link navigation in Syncfusion ##Platform_Name## ListView control of Syncfusion Essential JS 2 and more. platform: ej2-javascript -control: Listview with hyper link navigation +control: Hyper link navigation publishingplatform: ##Platform_Name## documentation: ug domainurl: ##DomainURL## --- -# Listview with hyper link navigation in ##Platform_Name## Listview control +# Hyper link navigation in ##Platform_Name## ListView control -We can use `anchor` tag along with `href` attribute in our ListView [`template`](../../api/list-view/#template) property for navigation. +You can utilize the `anchor` tag along with the `href` attribute in the ListView's [`template`](../../api/list-view/#template) property for enabling navigation links. ```ts @@ -19,17 +19,20 @@ let anchor_template: string = "${name}"; ``` -In the below sample, we have rendered `ListView` with search engines URL. +In the example below, a `ListView` is rendered with hyperlinks to different search engines. The links open in a new tab or window as specified by the `target='_blank'` attribute. {% if page.publishingplatform == "typescript" %} - {% tabs %} +{% tabs %} {% highlight ts tabtitle="index.ts" %} {% include code-snippet/listview/navigation-cs1/index.ts %} {% endhighlight %} {% highlight html tabtitle="index.html" %} {% include code-snippet/listview/navigation-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/listview/navigation-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/listview/navigation-cs1" %} @@ -43,6 +46,9 @@ In the below sample, we have rendered `ListView` with search engines URL. {% highlight html tabtitle="index.html" %} {% include code-snippet/listview/navigation-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/listview/navigation-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/listview/navigation-cs1" %} diff --git a/ej2-javascript/listview/how-to/trace-events-of-listview.md b/ej2-javascript/listview/how-to/trace-events-of-listview.md index 8fe9b3b40..0b2d23aeb 100644 --- a/ej2-javascript/listview/how-to/trace-events-of-listview.md +++ b/ej2-javascript/listview/how-to/trace-events-of-listview.md @@ -1,29 +1,29 @@ --- layout: post -title: Trace events of listview in ##Platform_Name## Listview control | Syncfusion -description: Learn here all about Trace events of listview in Syncfusion ##Platform_Name## Listview control of Syncfusion Essential JS 2 and more. +title: Trace events of ListView in ##Platform_Name## ListView control | Syncfusion +description: Learn here all about tracing events of ListView in the Syncfusion ##Platform_Name## ListView control of Syncfusion Essential JS 2 and more. platform: ej2-javascript -control: Trace events of listview +control: Trace events of ListView publishingplatform: ##Platform_Name## documentation: ug domainurl: ##DomainURL## --- -# Trace events of listview in ##Platform_Name## Listview control +# Trace events of ListView in ##Platform_Name## ListView control -The ListView control triggers events based on its actions. The events can be used as extension points to perform -custom operations. Refer to the following steps to trace the ListView events: +The ListView control triggers events based on its actions. These events can be used as extension points to perform custom operations. Follow the steps below to trace the ListView events: -1. Render the ListView with [dataSource](../../api/list-view/#datasource), and bind the [`actionBegin`](../../api/list-view/#actionbegin), -[`actionComplete`](../../api/list-view/#actioncomplete), and [`select`](../../api/list-view/#select) events. +1. Render the ListView with [dataSource](../../api/list-view/#datasource) and bind the [`actionBegin`](../../api/list-view/#actionbegin), [`actionComplete`](../../api/list-view/#actioncomplete), and [`select`](../../api/list-view/#select) events. -2. Perform custom operations in actionBegin, actionComplete, and select events. +2. Perform custom operations in the actionBegin, actionComplete, and select events. -3. Provide event log details for actionBegin and actionComplete events, and they will be displayed in the event trace panel when the ListView action starts and the dataSource bound successfully. +3. Provide event log details for the actionBegin and actionComplete events, which will be displayed in the event trace panel when a ListView action starts and the dataSource is bound successfully. -4. Get the selected item details from the [`SelectEventArgs`](../../api/list-view/selectEventArgs) in the select event, and display the selected list item text in the event trace panel while selecting list items. +4. Get the selected item details from the [`SelectEventArgs`](../../api/list-view/selectEventArgs) during the select event, and display the selected list item text in the event trace panel while selecting list items. -5. Use clear button to remove event trace information. +5. Use the clear button to remove event trace information. + +{% if page.publishingplatform == "typescript" %} {% tabs %} {% highlight ts tabtitle="index.ts" %} @@ -32,6 +32,27 @@ custom operations. Refer to the following steps to trace the ListView events: {% highlight html tabtitle="index.html" %} {% include code-snippet/listview/events-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/listview/events-cs1/index.css %} +{% endhighlight %} +{% endtabs %} + +{% previewsample "page.domainurl/code-snippet/listview/events-cs1" %} + +{% elsif page.publishingplatform == "javascript" %} + +{% tabs %} +{% highlight js tabtitle="index.js" %} +{% include code-snippet/listview/events-cs1/index.js %} +{% endhighlight %} +{% highlight html tabtitle="index.html" %} +{% include code-snippet/listview/events-cs1/index.html %} +{% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/listview/events-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/listview/events-cs1" %} + +{% endif %} \ No newline at end of file diff --git a/ej2-javascript/listview/js/ej1-api-migration.md b/ej2-javascript/listview/js/ej1-api-migration.md index 4c4f5f7fd..834579dc1 100644 --- a/ej2-javascript/listview/js/ej1-api-migration.md +++ b/ej2-javascript/listview/js/ej1-api-migration.md @@ -1,7 +1,7 @@ --- layout: post -title: Ej1 api migration in ##Platform_Name## Listview control | Syncfusion -description: Learn here all about Ej1 api migration in Syncfusion ##Platform_Name## Listview control of Syncfusion Essential JS 2 and more. +title: Ej1 api migration in ##Platform_Name## ListView control | Syncfusion +description: Learn here all about Ej1 api migration in Syncfusion ##Platform_Name## ListView control of Syncfusion Essential JS 2 and more. platform: ej2-javascript control: Ej1 api migration publishingplatform: ##Platform_Name## @@ -9,7 +9,7 @@ documentation: ug domainurl: ##DomainURL## --- -# Ej1 api migration in ##Platform_Name## Listview control +# Ej1 api migration in ##Platform_Name## ListView control This article describes the API migration process of ListView component from Essential JS 1 to Essential JS 2. diff --git a/ej2-javascript/listview/js/getting-started.md b/ej2-javascript/listview/js/getting-started.md index 03da54367..fb8dec75d 100644 --- a/ej2-javascript/listview/js/getting-started.md +++ b/ej2-javascript/listview/js/getting-started.md @@ -1,7 +1,7 @@ --- layout: post -title: Getting started with ##Platform_Name## Listview control | Syncfusion -description: Checkout and learn about Getting started with ##Platform_Name## Listview control of Syncfusion Essential JS 2 and more details. +title: Getting started with ##Platform_Name## ListView control | Syncfusion +description: Checkout and learn about Getting started with ##Platform_Name## ListView control of Syncfusion Essential JS 2 and more details. platform: ej2-javascript control: Getting started publishingplatform: ##Platform_Name## @@ -9,7 +9,7 @@ documentation: ug domainurl: ##DomainURL## --- -# Getting started in ##Platform_Name## Listview control +# Getting started in ##Platform_Name## ListView control The Essential JS 2 for JavaScript (global script) is an ES5 formatted pure JavaScript framework which can be directly used in latest web browsers. diff --git a/ej2-javascript/listview/nested-list.md b/ej2-javascript/listview/nested-list.md index 5e2987011..a6d733977 100644 --- a/ej2-javascript/listview/nested-list.md +++ b/ej2-javascript/listview/nested-list.md @@ -1,29 +1,35 @@ --- layout: post -title: Nested list in ##Platform_Name## Listview control | Syncfusion -description: Learn here all about Nested list in Syncfusion ##Platform_Name## Listview control of Syncfusion Essential JS 2 and more. +title: Nested list in ##Platform_Name## ListView control | Syncfusion +description: Learn here all about Nested list in Syncfusion ##Platform_Name## ListView control of Syncfusion Essential JS 2 and more. platform: ej2-javascript -control: Nested list +control: Nested list publishingplatform: ##Platform_Name## documentation: ug domainurl: ##DomainURL## --- -# Nested list in ##Platform_Name## Listview control +# Nested list in ##Platform_Name## ListView control -The ListView control supports Nested list. For that, the child property should be defined for the nested list in the array of JSON. +The ListView control supports nested lists. To implement a nested list, the `child` property should be defined for the nested list within the array of JSON. {% if page.publishingplatform == "typescript" %} - {% tabs %} +{% tabs %} {% highlight ts tabtitle="index.ts" %} {% include code-snippet/listview/nested-list-cs1/index.ts %} {% endhighlight %} +{% highlight ts tabtitle="datasource.ts" %} +{% include code-snippet/listview/nested-list-cs1/datasource.ts %} +{% endhighlight %} {% highlight html tabtitle="index.html" %} {% include code-snippet/listview/nested-list-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/listview/nested-list-cs1/index.css %} +{% endhighlight %} {% endtabs %} - + {% previewsample "page.domainurl/code-snippet/listview/nested-list-cs1" %} {% elsif page.publishingplatform == "javascript" %} @@ -32,10 +38,16 @@ The ListView control supports Nested list. For that, the child property should b {% highlight js tabtitle="index.js" %} {% include code-snippet/listview/nested-list-cs1/index.js %} {% endhighlight %} +{% highlight js tabtitle="es5-datasource.js" %} +{% include code-snippet/listview/nested-list-cs1/es5-datasource.js %} +{% endhighlight %} {% highlight html tabtitle="index.html" %} {% include code-snippet/listview/nested-list-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/listview/nested-list-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/listview/nested-list-cs1" %} -{% endif %} +{% endif %} \ No newline at end of file diff --git a/ej2-javascript/listview/scrolling.md b/ej2-javascript/listview/scrolling.md index dd9569b56..6fc877a2a 100644 --- a/ej2-javascript/listview/scrolling.md +++ b/ej2-javascript/listview/scrolling.md @@ -1,21 +1,21 @@ --- layout: post -title: Scrolling of listview in ##Platform_Name## Listview control | Syncfusion -description: Learn here all about Scrolling of listview in Syncfusion ##Platform_Name## Listview control of Syncfusion Essential JS 2 and more. +title: Scrolling of ListView in ##Platform_Name## ListView control | Syncfusion +description: Learn here all about Scrolling of ListView in Syncfusion ##Platform_Name## ListView control of Syncfusion Essential JS 2 and more. platform: ej2-javascript -control: Listview Scrolling +control: ListView Scrolling publishingplatform: ##Platform_Name## documentation: ug domainurl: ##DomainURL## --- -# Scrolling in ##Platform_Name## Listview +# Scrolling in ##Platform_Name## ListView -Scrolling is a technique that allows you to load more items as the user scrolls through a list, providing a seamless and dynamic user experience. +Scrolling is a technique that allows you to load more items as the user scrolls through a list, providing a seamless and dynamic user's experience. -Render the ListView with [dataSource](https://ej2.syncfusion.com/documentation/api/list-view#datasource), and bind the [`scroll`](https://ej2.syncfusion.com/documentation/api/list-view#scroll) event. Within the scroll event, you can access information such as the scroll direction, event name and the distance from the scrollbar to the top and bottom ends through the distanceY parameter. +You can render the ListView with a [dataSource](https://ej2.syncfusion.com/documentation/api/list-view#datasource), and bind the [`scroll`](https://ej2.syncfusion.com/documentation/api/list-view#scroll) event. Within the scroll event, you can access information such as the scroll direction, event name, and the distance from the scrollbar to the top and bottom ends through the distanceY parameter. -In the given example, new data is seamlessly added while scrolling. When you scrolls to the bottom and the distance scrolled is less than 100 pixels, it dynamically loads a batch of items into the list as long as there are more items to render. +In the given example, new data is seamlessly added while scrolling. When you scroll to the bottom and the distance scrolled is less than 100 pixels, it dynamically loads a batch of items into the list as long as there are more items to render. {% if page.publishingplatform == "typescript" %} @@ -26,6 +26,9 @@ In the given example, new data is seamlessly added while scrolling. When you scr {% highlight html tabtitle="index.html" %} {% include code-snippet/listview/scrolling-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/listview/scrolling-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/listview/scrolling-cs1" %} @@ -39,7 +42,10 @@ In the given example, new data is seamlessly added while scrolling. When you scr {% highlight html tabtitle="index.html" %} {% include code-snippet/listview/scrolling-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/listview/scrolling-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/listview/scrolling-cs1" %} -{% endif %} +{% endif %} \ No newline at end of file diff --git a/ej2-javascript/listview/style.md b/ej2-javascript/listview/style.md index 16fff8157..31dcef625 100644 --- a/ej2-javascript/listview/style.md +++ b/ej2-javascript/listview/style.md @@ -1,7 +1,7 @@ --- layout: post -title: Style in ##Platform_Name## Listview control | Syncfusion -description: Learn here all about Style in Syncfusion ##Platform_Name## Listview control of Syncfusion Essential JS 2 and more. +title: Style in ##Platform_Name## ListView control | Syncfusion +description: Learn here all about Style in Syncfusion ##Platform_Name## ListView control of Syncfusion Essential JS 2 and more. platform: ej2-javascript control: Style publishingplatform: ##Platform_Name## @@ -9,7 +9,7 @@ documentation: ug domainurl: ##DomainURL## --- -# Style in ##Platform_Name## Listview control +# Style in ##Platform_Name## ListView control The following content provides the exact CSS structure that can be used to modify the control’s appearance based on user preference. diff --git a/ej2-javascript/listview/ts/ej1-api-migration.md b/ej2-javascript/listview/ts/ej1-api-migration.md index fd5553399..8dda02041 100644 --- a/ej2-javascript/listview/ts/ej1-api-migration.md +++ b/ej2-javascript/listview/ts/ej1-api-migration.md @@ -1,7 +1,7 @@ --- layout: post -title: Ej1 api migration in ##Platform_Name## Listview control | Syncfusion -description: Learn here all about Ej1 api migration in Syncfusion ##Platform_Name## Listview control of Syncfusion Essential JS 2 and more. +title: Ej1 api migration in ##Platform_Name## ListView control | Syncfusion +description: Learn here all about Ej1 api migration in Syncfusion ##Platform_Name## ListView control of Syncfusion Essential JS 2 and more. platform: ej2-javascript control: Ej1 api migration publishingplatform: ##Platform_Name## @@ -9,7 +9,7 @@ documentation: ug domainurl: ##DomainURL## --- -# Ej1 api migration in ##Platform_Name## Listview control +# Ej1 api migration in ##Platform_Name## ListView control This article describes the API migration process of ListView component from Essential JS 1 to Essential JS 2. diff --git a/ej2-javascript/listview/ts/getting-started.md b/ej2-javascript/listview/ts/getting-started.md index 573d48326..7aeaf70b3 100644 --- a/ej2-javascript/listview/ts/getting-started.md +++ b/ej2-javascript/listview/ts/getting-started.md @@ -1,7 +1,7 @@ --- layout: post -title: Getting started with ##Platform_Name## Listview control | Syncfusion -description: Checkout and learn about Getting started with ##Platform_Name## Listview control of Syncfusion Essential JS 2 and more details. +title: Getting started with ##Platform_Name## ListView control | Syncfusion +description: Checkout and learn about Getting started with ##Platform_Name## ListView control of Syncfusion Essential JS 2 and more details. platform: ej2-javascript control: Getting started publishingplatform: ##Platform_Name## @@ -9,9 +9,9 @@ documentation: ug domainurl: ##DomainURL## --- -# Getting started in ##Platform_Name## Listview control +# Getting started in ##Platform_Name## ListView control -This section briefly explains how to create **ListView** component and configure its available functionalities in TypeScript using the Essential JS 2 [quickstart](https://github.com/SyncfusionExamples/ej2-quickstart-webpack-) seed repository. +This section briefly explains how to create **ListView** control and configure its available functionalities in TypeScript using the Essential JS 2 [quickstart](https://github.com/SyncfusionExamples/ej2-quickstart-webpack-) seed repository. > This application is integrated with the `webpack.config.js` configuration and uses the latest version of the [webpack-cli](https://webpack.js.org/api/cli/#commands). It requires node `v14.15.0` or higher. For more information about webpack and its features, refer to the [webpack documentation](https://webpack.js.org/guides/getting-started/). @@ -63,7 +63,7 @@ npm install ## Import the Syncfusion CSS styles -To render the ListView component, need to import lists and its dependent component’s styles as given below in the `~/src/styles/styles.css` file, as shown below: +To render the ListView control, need to import lists and its dependent control’s styles as given below in the `~/src/styles/styles.css` file, as shown below: {% tabs %} {% highlight css tabtitle="style.css" %} diff --git a/ej2-javascript/listview/virtualization.md b/ej2-javascript/listview/virtualization.md index e331f6824..d1155e7f0 100644 --- a/ej2-javascript/listview/virtualization.md +++ b/ej2-javascript/listview/virtualization.md @@ -1,7 +1,7 @@ --- layout: post -title: Virtualization in ##Platform_Name## Listview control | Syncfusion -description: Learn here all about Virtualization in Syncfusion ##Platform_Name## Listview control of Syncfusion Essential JS 2 and more. +title: Virtualization in ##Platform_Name## ListView control | Syncfusion +description: Learn here all about Virtualization in Syncfusion ##Platform_Name## ListView control of Syncfusion Essential JS 2 and more. platform: ej2-javascript control: Virtualization publishingplatform: ##Platform_Name## @@ -9,15 +9,13 @@ documentation: ug domainurl: ##DomainURL## --- -# Virtualization in ##Platform_Name## Listview control +# Virtualization in ##Platform_Name## ListView control -UI virtualization loads only viewable list items in a view port, which will improve the ListView performance while loading a large number of data. +UI virtualization loads only the viewable list items within a viewport, significantly improving ListView performance when dealing with a large amount of data. ## Module injection -To use UI virtualization, you should import `virtualization` module from the `ej2-lists` package and inject it using `ListView.Inject()` -method as shown in the following code snippet. - +To use UI virtualization, you should import the `Virtualization` module from the `ej2-lists` package and inject it using the `ListView.Inject()` method, as shown in the following code snippet. ```ts import { ListView, Virtualization } from '@syncfusion/ej2-lists'; @@ -30,21 +28,24 @@ ListView.Inject(Virtualization); UI virtualization can be enabled in the ListView by setting the [`enableVirtualization`](../api/list-view/#enablevirtualization) property to true. -It has two types of scrollers as follows: +There are two types of scroll behaviors: -**Window scroll**: This scroller is used in the ListView by default. +**Window Scroll**: This is used by default in the ListView. -**Container scroll**: This scroller is used, when the height property of the ListView is set. +**Container Scroll**: This is used when the `height` property of the ListView is set. {% if page.publishingplatform == "typescript" %} - {% tabs %} +{% tabs %} {% highlight ts tabtitle="index.ts" %} {% include code-snippet/listview/virtualization/flat-list-cs1/index.ts %} {% endhighlight %} {% highlight html tabtitle="index.html" %} {% include code-snippet/listview/virtualization/flat-list-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/listview/virtualization/flat-list-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/listview/virtualization/flat-list-cs1" %} @@ -58,6 +59,9 @@ It has two types of scrollers as follows: {% highlight html tabtitle="index.html" %} {% include code-snippet/listview/virtualization/flat-list-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/listview/virtualization/flat-list-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/listview/virtualization/flat-list-cs1" %} @@ -67,13 +71,16 @@ You can use the `template` property to customize list items in UI virtualization {% if page.publishingplatform == "typescript" %} - {% tabs %} +{% tabs %} {% highlight ts tabtitle="index.ts" %} {% include code-snippet/listview/virtualization/template-cs1/index.ts %} {% endhighlight %} {% highlight html tabtitle="index.html" %} {% include code-snippet/listview/virtualization/template-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/listview/virtualization/template-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/listview/virtualization/template-cs1" %} @@ -87,6 +94,9 @@ You can use the `template` property to customize list items in UI virtualization {% highlight html tabtitle="index.html" %} {% include code-snippet/listview/virtualization/template-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/listview/virtualization/template-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/listview/virtualization/template-cs1" %} @@ -106,13 +116,16 @@ In the following sample, the light blue is applied for the even list and light c {% if page.publishingplatform == "typescript" %} - {% tabs %} +{% tabs %} {% highlight ts tabtitle="index.ts" %} {% include code-snippet/listview/virtualization/conditional-ui-cs1/index.ts %} {% endhighlight %} {% highlight html tabtitle="index.html" %} {% include code-snippet/listview/virtualization/conditional-ui-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/listview/virtualization/conditional-ui-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/listview/virtualization/conditional-ui-cs1" %} @@ -126,6 +139,9 @@ In the following sample, the light blue is applied for the even list and light c {% highlight html tabtitle="index.html" %} {% include code-snippet/listview/virtualization/conditional-ui-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/listview/virtualization/conditional-ui-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/listview/virtualization/conditional-ui-cs1" %} diff --git a/ej2-javascript/maps/ts/getting-started.md b/ej2-javascript/maps/ts/getting-started.md index f3296325a..83468cac1 100644 --- a/ej2-javascript/maps/ts/getting-started.md +++ b/ej2-javascript/maps/ts/getting-started.md @@ -71,7 +71,7 @@ npm install The Essential JS2 Maps control can be added to the application. To get started, add the Maps control to the **app.ts** and **index.html** files using the following code. -Add an HTML div element to act as the Maps element in the **index.html** file using the following code. +**Step 1:** Add an HTML div element to act as the Maps element in the **index.html** file using the following code. {% tabs %} {% highlight html tabtitle="index.html" %} @@ -98,15 +98,32 @@ Add an HTML div element to act as the Maps element in the **index.html** file us {% endhighlight %} {% endtabs %} -Import the Maps control in the `app.ts` to initialize a Maps and append the Maps instance to the `#container`. +**Step 2:** Import the Maps control in the `app.ts` to initialize the Maps and append the Maps instance to the `#container`. + +**Step 3:** Add the **world-map** data inside the **app** folder. The data can be provided as either a JSON or a TypeScript file. + +> Refer to the data for the **world-map** [here](https://www.syncfusion.com/downloads/support/directtrac/general/ze/world-map-2091224620). These data must be imported into the **app.ts** file. + +``` +import { world_map } from './world_map'; +``` + +**Step 4:** Bind the **world-map** data to the **shapeData** property of the **layers** in the Maps control. {% tabs %} {% highlight ts tabtitle="app.ts" %} import { Maps } from '@syncfusion/ej2-maps'; +import { world_map } from './world_map'; // initialize Maps component -let map: Maps = new Maps(); +let map: Maps = new Maps({ + layers: [ + { + shapeData: world_map + } + ] +}); // render initialized Map map.appendTo('#container'); @@ -114,7 +131,7 @@ map.appendTo('#container'); {% endhighlight %} {% endtabs %} -The quickstart project is configured to compile and run the application in the browser. Use the following command to run the application. +**Step 5:** The quickstart project is configured to compile and run the application in the browser. Use the following command to run the application. {% tabs %} {% highlight bash tabtitle="NPM" %} @@ -138,7 +155,7 @@ map.appendTo('#element'); {% endhighlight %} {% endtabs %} -As we didn't specify shapeData to the maps, no shape will be rendered and only an empty SVG element is appended to the maps container. +Now, the world map will be displayed on the Maps control. ## Module Injection diff --git a/ej2-javascript/maps/ts/markers.md b/ej2-javascript/maps/ts/markers.md index d6ce819a9..3c9a57fac 100644 --- a/ej2-javascript/maps/ts/markers.md +++ b/ej2-javascript/maps/ts/markers.md @@ -173,6 +173,21 @@ The latitude and longitude values are used to determine the location of each mar {% previewsample "page.domainurl/code-snippet/maps/default-map-cs198" %} +### Setting different sizes for markers individually + +The size of the markers in a marker group can be customized using the [widthValuePath](../api/maps/markerSettingsModel/#widthvaluepath) and [heightValuePath](../api/maps/markerSettingsModel/#heightvaluepath) properties, which allow the user to change the width and height of the markers based on values from the given data source. Bind the data source to the [dataSource](../api/maps/markerSettingsModel/#datasource) property of the [markerSettings](../api/maps/markerSettingsModel/), and specify the field names containing the width and height values in the data source for the `widthValuePath` and `heightValuePath` properties. + +{% tabs %} +{% highlight ts tabtitle="index.ts" %} +{% include code-snippet/maps/marker-size-customization-cs1/index.ts %} +{% endhighlight %} +{% highlight html tabtitle="index.html" %} +{% include code-snippet/maps/marker-size-customization-cs1/index.html %} +{% endhighlight %} +{% endtabs %} + +{% previewsample "page.domainurl/code-snippet/maps/marker-size-customization-cs1" %} + ## Repositioning the marker using drag and drop The markers on the map can be dragged and dropped to change their position. To enable marker drag and drop, set the [enableDrag](../api/maps/markerSettingsModel/#enabledrag) property to **true** in the [markerSettings](../api/maps/markerSettingsModel/) property. @@ -231,9 +246,9 @@ The Maps is initially scaled to the center value based on the marker distance. T ## Marker clustering -Maps provide support to hide and cluster markers when they overlap each other. The number on a cluster indicates how many overlapped markers it contains. If zooming any of the cluster locations in Maps, the number on the cluster will decrease and begin to see the individual markers on the map. When zooming out, the overlapping marker will increase so that it can cluster again and increase the count over the cluster. +Maps support hiding and clustering markers when they overlap. The number on a cluster indicates how many overlapping markers it contains. When zooming into any cluster location on the map, the number on the cluster decreases, and individual markers become visible. When zooming out, the overlapping markers increase, causing them to cluster again, which increases the count on the cluster. -To enable clustering in markers, set the [`allowClustering`](../api/maps/markerClusterSettingsModel/#allowclustering) property of [`markerClusterSettings`](../api/maps/markerClusterSettingsModel) as **true** and customization of clustering can be done with the [`markerClusterSettings`](../api/maps/markerClusterSettingsModel). +To enable clustering for markers within a layer, set the [allowClustering](../api/maps/markerClusterSettingsModel/#allowclustering) property of [markerClusterSettings](../api/maps/markerClusterSettingsModel) in the [layers](../api/maps/#layers) to **true**. Customization of clustering can be done using the `markerClusterSettings` property. {% tabs %} {% highlight ts tabtitle="index.ts" %} @@ -246,7 +261,7 @@ To enable clustering in markers, set the [`allowClustering`](../api/maps/markerC {% previewsample "page.domainurl/code-snippet/maps/default-map-cs202" %} -## Customization of marker cluster +### Customization of marker cluster The following properties are available to customize the marker clustering in the Maps component. @@ -273,7 +288,7 @@ The following properties are available to customize the marker clustering in the {% previewsample "page.domainurl/code-snippet/maps/default-map-cs203" %} -## Marker cluster expand +### Marker cluster expand The cluster is formed by grouping an identical and non-identical marker from the surrounding area. By clicking on the cluster and setting the [`allowClusterExpand`](../api/maps/markerClusterSettingsModel/#allowclusterexpand) property in [`markerClusterSettings`](../api/maps/markerClusterSettingsModel) as **true** to expand the identical markers. If zoom in any of the locations of the cluster, the number on the cluster will decrease and the overlapping marker will be split into an individual marker on the map. When performing zoom out, it will increase the marker count and then cluster it again. @@ -288,6 +303,23 @@ The cluster is formed by grouping an identical and non-identical marker from the {% previewsample "page.domainurl/code-snippet/maps/default-map-cs204" %} +### Clustering markers within each marker group + +Marker clustering can be enabled for each marker group in the map by using the [clusterSettings](../api/maps/markerSettingsModel/#clustersettings) property within the [markerSettings](../api/maps/markerSettingsModel/) property in the [layers](../api/maps/#layers). This allows for individual customization of clusters for each marker group which group markers that are located near each other to reduce clutter and improve readability. When the [allowClustering](../api/maps/markerClusterSettingsModel/#allowclustering) property is set to **true**, the markers within each group are clustered and visually represented as separate clusters. As users zoom in, the clusters expand to reveal individual markers, enabling more detailed exploration. Clusters can also be expanded manually by setting the [allowClusterExpand](../api/maps/markerClusterSettingsModel/#allowclusterexpand) property to **true**. The appearance of the clusters and their expansion behavior can be customized using the `clusterSettings` property, similar to the [markerClusterSettings](../api/maps/layerSettingsModel/#markerclustersettings) property, as explained in the sections above. + +>When the `clusterSettings` property is enabled for an individual marker group, the `markerClusterSettings` property within the layers becomes ineffective. + +{% tabs %} +{% highlight ts tabtitle="index.ts" %} +{% include code-snippet/maps/marker-clusters-cs1/index.ts %} +{% endhighlight %} +{% highlight html tabtitle="index.html" %} +{% include code-snippet/maps/marker-clusters-cs1/index.html %} +{% endhighlight %} +{% endtabs %} + +{% previewsample "page.domainurl/code-snippet/maps/marker-clusters-cs1" %} + ## Tooltip for marker Tooltip is used to display more information about a marker on mouse over or touch end event. This can be enabled separately for marker by setting the [`visible`](../api/maps/tooltipSettingsModel/#visible) property of [`tooltipSettings`](../api/maps/tooltipSettingsModel) to **true**. The [`valuePath`](../api/maps/tooltipSettingsModel/#valuepath) property in the [`tooltipSettings`](../api/maps/tooltipSettingsModel) takes the field name that presents in data source and displays that value as tooltip text. diff --git a/ej2-javascript/mention/accessibility.md b/ej2-javascript/mention/accessibility.md index b0fd68c7e..06ff3eeec 100644 --- a/ej2-javascript/mention/accessibility.md +++ b/ej2-javascript/mention/accessibility.md @@ -13,35 +13,7 @@ domainurl: ##DomainURL## Web accessibility makes web content and web applications more accessible for people with disabilities. Mention control provides built-in compliance with `WAI-ARIA` specifications. The `WAI-ARIA` support is achieved using the attributes such as `aria-selected` and `aria-activedescendent`. -The Mention component followed the accessibility guidelines and standards, including [ADA](https://www.ada.gov/), [Section 508](https://www.section508.gov/), [WCAG 2.2](https://www.w3.org/TR/WCAG22/) standards, and [WCAG roles](https://www.w3.org/TR/wai-aria/#roles) that are commonly used to evaluate accessibility. - -The accessibility compliance for the Mention component is outlined below. - -| Accessibility Criteria | Compatibility | -| -- | -- | -| [WCAG 2.2 Support](../common/accessibility#accessibility-standards) | Yes | -| [Section 508 Support](../common/accessibility#accessibility-standards) | Yes | -| [Screen Reader Support](../common/accessibility#screen-reader-support) | Yes | -| [Right-To-Left Support](../common/accessibility#right-to-left-support) | Yes | -| [Color Contrast](../common/accessibility#color-contrast) | Yes | -| [Mobile Device Support](../common/accessibility#mobile-device-support) | Yes | -| [Keyboard Navigation Support](../common/accessibility#keyboard-navigation-support) | Yes | -| [Accessibility Checker Validation](../common/accessibility#ensuring-accessibility) | Yes | -| [Axe-core Accessibility Validation](../common/accessibility#ensuring-accessibility) | Yes | - - -
          Yes - All features of the component meet the requirement.
          - -
          Intermediate - Some features of the component do not meet the requirement.
          - -
          No - The component does not meet the requirement.
          - -## WAI-ARIA attributes +## ARIA attributes The Mention control uses the `Listbox` role where each list item has an `option` role. The following `ARIA attributes` denote the Mention state. @@ -89,15 +61,3 @@ You can use the following key shortcuts to access the Mention without interrupti {% previewsample "page.domainurl/code-snippet/mention/accessibility-cs1" %} {% endif %} - -## Ensuring accessibility - -The Mention component's accessibility levels are ensured through an [accessibility-checker](https://www.npmjs.com/package/accessibility-checker) and [axe-core](https://www.npmjs.com/package/axe-core) software tools during automated testing. - -The accessibility compliance of the Mention component is shown in the following sample. Open the [sample](https://ej2.syncfusion.com/accessibility/mention.html) in a new window to evaluate the accessibility of the Mention component with accessibility tools. - -{% previewsample "https://ej2.syncfusion.com/accessibility/mention.html" %} - -## See also - -* [Accessibility in Syncfusion components](../common/accessibility) \ No newline at end of file diff --git a/ej2-javascript/mention/disabled-items.md b/ej2-javascript/mention/disabled-items.md deleted file mode 100644 index a22ef7dff..000000000 --- a/ej2-javascript/mention/disabled-items.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -layout: post -title: Disabled Items in ##Platform_Name## Mention control | Syncfusion -description: Learn here all about Disabled Items in Syncfusion ##Platform_Name## Mention control of Syncfusion Essential JS 2 and more. -platform: ej2-javascript -control: Disabled Items -publishingplatform: ##Platform_Name## -documentation: ug -domainurl: ##DomainURL## ---- - -# Disabled Items in ##Platform_Name## Mention control - -The Mention provides options for individual items to be either in an enabled or disabled state for specific scenarios. The category of each list item can be mapped through the [disabled](../api/mention/#fields) field in the data table. Once an item is disabled, it cannot be selected as a value for the component. To configure the disabled item columns, use the `fields.disabled` property. - -In the following sample, State are grouped according on its category using `disabled` field. - -{% if page.publishingplatform == "typescript" %} - - {% tabs %} -{% highlight ts tabtitle="index.ts" %} -{% include code-snippet/mention/getting-started-cs12/index.ts %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/mention/getting-started-cs12/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/mention/getting-started-cs12" %} - -{% elsif page.publishingplatform == "javascript" %} - -{% tabs %} -{% highlight js tabtitle="index.js" %} -{% include code-snippet/mention/getting-started-cs12/index.js %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/mention/getting-started-cs12/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/mention/getting-started-cs12" %} -{% endif %} - -## Disable Item Method - -The [disableItem](../api/mention/#disableItem) method can be used to handle dynamic changing in disable state of a specific item. Only one item can be disabled in this method. To disable multiple items, this method can be iterated with the items list or array. The disabled field state will to be updated in the [dataSource](../api/mention/#datasource), when the item is disabled using this method. - -| Parameter | Type | Description | -|------|------|------| -| itemHTMLLIElement | HTMLLIElement | It accepts the HTML Li element of the item to be removed. | -| itemValue | string \| number \| boolean \| object | It accepts the string, number, boolean and object type value of the item to be removed. | -| itemIndex | number | It accepts the index of the item to be removed. | \ No newline at end of file diff --git a/ej2-javascript/mention/ts/getting-started.md b/ej2-javascript/mention/ts/getting-started.md index f67de9527..22163ee50 100644 --- a/ej2-javascript/mention/ts/getting-started.md +++ b/ej2-javascript/mention/ts/getting-started.md @@ -11,9 +11,7 @@ domainurl: ##DomainURL## # Getting started in ##Platform_Name## Mention control -This section explains how to create a `Mention`, and configure its available functionalities in TypeScript using Essential JS 2 [quickstart](https://github.com/SyncfusionExamples/ej2-quickstart-webpack-) seed repository. - -> This application is integrated with the `webpack.config.js` configuration and uses the latest version of the [webpack-cli](https://webpack.js.org/api/cli/#commands). It requires node `v14.15.0` or higher. For more information about webpack and its features, refer to the [webpack documentation](https://webpack.js.org/guides/getting-started/). +This section explains how to create a `Mention`, and configure its available functionalities in TypeScript using Essential JS 2 quickstart seed repository. ## Dependencies @@ -30,70 +28,80 @@ The following list of dependencies are required to use the Mention control in yo ``` -## Set up development environment - -Open the command prompt from the required directory, and run the following command to clone the Syncfusion JavaScript (Essential JS 2) quickstart project from [GitHub](https://github.com/SyncfusionExamples/ej2-quickstart-webpack-). - -{% tabs %} -{% highlight bash tabtitle="CMD" %} +## Setup your development environment -git clone https://github.com/SyncfusionExamples/ej2-quickstart-webpack- ej2-quickstart +To get started with the Mention control, clone [Essential JS 2 quickstart](https://github.com/syncfusion/ej2-quickstart), and install the npm packages using the following commands. -{% endhighlight %} -{% endtabs %} +``` -After cloning the application in the `ej2-quickstart` folder, run the following command line to navigate to the `ej2-quickstart` folder. +git clone https://github.com/syncfusion/ej2-quickstart.git quickstart +cd quickstart +npm install -{% tabs %} -{% highlight bash tabtitle="CMD" %} +``` -cd ej2-quickstart +> The project is preconfigured with common settings (`src/styles/styles.css`, `system.config.js`) to start all the Essential JS 2 controls. -{% endhighlight %} -{% endtabs %} +* Refer to the [`Mention control dependencies`](./getting-started#dependencies) in `system.config.js` configuration file. -## Add Syncfusion JavaScript packages +`[src/system.config.js]` -Syncfusion JavaScript (Essential JS 2) packages are available on the [npmjs.com](https://www.npmjs.com/~syncfusionorg) public registry. You can install all Syncfusion JavaScript (Essential JS 2) controls in a single [@syncfusion/ej2](https://www.npmjs.com/package/@syncfusion/ej2) package or individual packages for each control. +```js -The quickstart application is preconfigured with the dependent [@syncfusion/ej2](https://www.npmjs.com/package/@syncfusion/ej2) package in the `~/package.json` file. Use the following command to install the dependent npm packages from the command prompt. +System.config({ + paths: { + 'npm:': './node_modules/', + 'syncfusion:': 'npm:@syncfusion/' + }, + map: { + app: 'app', + //Syncfusion packages mapping + "@syncfusion/ej2-base": "syncfusion:ej2-base/dist/ej2-base.umd.min.js", + "@syncfusion/ej2-popups": "syncfusion:ej2-popups/dist/ej2-popups.umd.min.js", + "@syncfusion/ej2-data":"syncfusion:ej2-data/dist/ej2-data.umd.min.js", + "@syncfusion/ej2-inputs":"syncfusion:ej2-inputs/dist/ej2-inputs.umd.min.js", + "@syncfusion/ej2-splitbuttons": "syncfusion:ej2-splitbuttons/dist/ej2-splitbuttons.umd.min.js", + "@syncfusion/ej2-lists":"syncfusion:ej2-lists/dist/ej2-lists.umd.min.js", + "@syncfusion/ej2-buttons": "syncfusion:ej2-buttons/dist/ej2-buttons.umd.min.js", + "@syncfusion/ej2-navigations":"syncfusion:ej2-navigations/dist/ej2-navigations.umd.min.js", + "@syncfusion/ej2-dropdowns":"syncfusion:ej2-dropdowns/dist/ej2-dropdowns.umd.min.js" + }, + packages: { + 'app': { main: 'app', defaultExtension: 'js' } + } +}); -{% tabs %} -{% highlight bash tabtitle="NPM" %} +System.import('app.ts').catch(console.error.bind(console)).then(function () { + document.getElementById('loader').style.display = "none"; + document.getElementById('container').style.visibility = "visible"; +}); -npm install +``` -{% endhighlight %} -{% endtabs %} +## Adding the Style sheet to the application -## Import the Syncfusion CSS styles +To render Mention control, need to import dropdowns and its dependent controls styles as given below in `styles.css`. -To render Mention control, need to import dropdowns and its dependent controls styles as given below in the `~/src/styles/styles.css` file, as shown below: +``` -{% tabs %} -{% highlight css tabtitle="style.css" %} +@import "../node_modules/@syncfusion/ej2-base/styles/bootstrap5.css"; +@import "../node_modules/@syncfusion/ej2-inputs/styles/bootstrap5.css"; +@import "../node_modules/@syncfusion/ej2-buttons/styles/bootstrap5.css"; +@import "../node_modules/@syncfusion/ej2-popups/styles/bootstrap5.css"; +@import "../node_modules/@syncfusion/ej2-lists/styles/bootstrap5.css"; +@import "../node_modules/@syncfusion/ej2-dropdowns/styles/bootstrap5.css"; -@import "../../node_modules/@syncfusion/ej2-base/styles/bootstrap5.css"; -@import "../../node_modules/@syncfusion/ej2-inputs/styles/bootstrap5.css"; -@import "../../node_modules/@syncfusion/ej2-buttons/styles/bootstrap5.css"; -@import "../../node_modules/@syncfusion/ej2-popups/styles/bootstrap5.css"; -@import "../../node_modules/@syncfusion/ej2-lists/styles/bootstrap5.css"; -@import "../../node_modules/@syncfusion/ej2-dropdowns/styles/bootstrap5.css"; +``` -{% endhighlight %} -{% endtabs %} +> To know about individual control CSS, please refer to [Individual control theme files](../appearance/theme/#referring-individual-control-theme) section. ## Adding the Mention control to the application -Open the application in Visual Studio Code and add the Syncfusion JavaScript UI controls. - Add the HTML div tag with the `id` attribute as `mentionElement` to your `index.html` file. `[src/index.html]` -{% tabs %} -{% highlight html tabtitle="index.html" %} - +```html @@ -105,6 +113,13 @@ Add the HTML div tag with the `id` attribute as `mentionElement` to your `index. + + + + + + + @@ -116,16 +131,13 @@ Add the HTML div tag with the `id` attribute as `mentionElement` to your `index.
          - -{% endhighlight %} -{% endtabs %} +``` Import the Mention control in your `app.ts` file and initialize it with the `#mentionElement`. `[src/app/app.ts]` -{% tabs %} -{% highlight ts tabtitle="app.ts" %} +```ts import { Mention } from '@syncfusion/ej2-dropdowns'; @@ -135,16 +147,13 @@ let mentionObject: Mention = new Mention({}); // render initialized Mention mentionObject.appendTo('#mentionElement'); -{% endhighlight %} -{% endtabs %} +``` ## Binding the data source After initialization, populate the Mention with data using the [dataSource](../api/mention/#datasource) property. Here, an array of string values is passed to the Mention control. -{% tabs %} -{% highlight ts tabtitle="app.ts" %} - +```ts import { Mention } from '@syncfusion/ej2-dropdowns'; // define the array of data @@ -158,21 +167,17 @@ let mentionObject: Mention = new Mention({ // render initialized Mention mentionObject.appendTo('#mentionElement'); - -{% endhighlight %} -{% endtabs %} +``` ## Run the application Run the application in the browser using the following command: -{% tabs %} -{% highlight bash tabtitle="NPM" %} +``` npm run start -{% endhighlight %} -{% endtabs %} +``` The following example, shows a basic Mention control. diff --git a/ej2-javascript/menu/how-to/custom-attributes-menu-items.md b/ej2-javascript/menu/how-to/custom-attributes-menu-items.md new file mode 100644 index 000000000..2482b2406 --- /dev/null +++ b/ej2-javascript/menu/how-to/custom-attributes-menu-items.md @@ -0,0 +1,41 @@ +--- +layout: post +title: Customize HTML Attributes for Menu Items in ##Platform_Name## Menu control | Syncfusion +description: Learn here all about Customize HTML Attributes for Menu Items in Syncfusion ##Platform_Name## Menu control of Syncfusion Essential JS 2 and more. +platform: ej2-javascript +control: Customize HTML Attributes for Menu Items +publishingplatform: ##Platform_Name## +documentation: ug +domainurl: ##DomainURL## +--- + +# Customize HTML Attributes for Menu Items in ##Platform_Name## Menu control + +To customize the HTML attributes of the Menu, use the [htmlAttributes](../../api/menu/menuItemModel/#htmlattributes) property to add custom HTML attributes to the root element of the menu. This feature is particularly useful for enhancing accessibility, adding custom data attributes, or including additional properties that can be utilized for styling or functionality. + +{% if page.publishingplatform == "typescript" %} + +{% tabs %} +{% highlight ts tabtitle="index.ts" %} +{% include code-snippet/menu/html-attributes-cs1/index.ts %} +{% endhighlight %} +{% highlight html tabtitle="index.html" %} +{% include code-snippet/menu/html-attributes-cs1/index.html %} +{% endhighlight %} +{% endtabs %} + +{% previewsample "page.domainurl/code-snippet/menu/html-attributes-cs1" %} + +{% elsif page.publishingplatform == "javascript" %} + +{% tabs %} +{% highlight js tabtitle="index.js" %} +{% include code-snippet/menu/html-attributes-cs1/index.js %} +{% endhighlight %} +{% highlight html tabtitle="index.html" %} +{% include code-snippet/menu/html-attributes-cs1/index.html %} +{% endhighlight %} +{% endtabs %} + +{% previewsample "page.domainurl/code-snippet/menu/html-attributes-cs1" %} +{% endif %} \ No newline at end of file diff --git a/ej2-javascript/message/ts/getting-started.md b/ej2-javascript/message/ts/getting-started.md index 82b6bf55a..368468da0 100644 --- a/ej2-javascript/message/ts/getting-started.md +++ b/ej2-javascript/message/ts/getting-started.md @@ -75,7 +75,7 @@ The combined CSS files are available in the Essential JS 2 package root folder. {% endhighlight %} {% endtabs %} -> You can check out the [themes](https://ej2.syncfusion.com/documentation/appearance/theme/) section to know more about built-in themes and CSS reference for individual controls. +> You can check out the [themes](https://ej2.syncfusion.com/documentation/appearance/theme) section to know more about built-in themes and CSS reference for individual controls. > To use the combined control styles, make use of Syncfusion [`CRG`](https://crg.syncfusion.com/) (Custom Resource Generator) in the application. ## Add Message control diff --git a/ej2-javascript/multi-select/accessibility.md b/ej2-javascript/multi-select/accessibility.md index 0bcbc4ff0..5bafc6674 100644 --- a/ej2-javascript/multi-select/accessibility.md +++ b/ej2-javascript/multi-select/accessibility.md @@ -13,35 +13,7 @@ domainurl: ##DomainURL## The MultiSelect component has been designed, keeping in mind the `WAI-ARIA` specifications, and applies the WAI-ARIA roles, states, and properties along with `keyboard support`. This component is characterized by complete keyboard interaction support and ARIA accessibility support that makes it easy for people who use assistive technologies (AT) or those who completely rely on keyboard navigation. -The MultiSelect component followed the accessibility guidelines and standards, including [ADA](https://www.ada.gov/), [Section 508](https://www.section508.gov/), [WCAG 2.2](https://www.w3.org/TR/WCAG22/) standards, and [WCAG roles](https://www.w3.org/TR/wai-aria/#roles) that are commonly used to evaluate accessibility. - -The accessibility compliance for the MultiSelect component is outlined below. - -| Accessibility Criteria | Compatibility | -| -- | -- | -| [WCAG 2.2 Support](../common/accessibility#accessibility-standards) | Yes | -| [Section 508 Support](../common/accessibility#accessibility-standards) | Yes | -| [Screen Reader Support](../common/accessibility#screen-reader-support) | Yes | -| [Right-To-Left Support](../common/accessibility#right-to-left-support) | Yes | -| [Color Contrast](../common/accessibility#color-contrast) | Yes | -| [Mobile Device Support](../common/accessibility#mobile-device-support) | Yes | -| [Keyboard Navigation Support](../common/accessibility#keyboard-navigation-support) | Yes | -| [Accessibility Checker Validation](../common/accessibility#ensuring-accessibility) | Yes | -| [Axe-core Accessibility Validation](../common/accessibility#ensuring-accessibility) | Yes | - - -
          Yes - All features of the component meet the requirement.
          - -
          Intermediate - Some features of the component do not meet the requirement.
          - -
          No - The component does not meet the requirement.
          - -## WAI-ARIA attributes +## ARIA attributes The MultiSelect component uses the `Listbox` role, and each list item has an `option` role. The following `ARIA attributes` denote the MultiSelect state. @@ -99,15 +71,3 @@ You can use the following key shortcuts to access the MultiSelect without interr {% previewsample "page.domainurl/code-snippet/multiselect/getting-started-cs1" %} {% endif %} - -## Ensuring accessibility - -The MultiSelect component's accessibility levels are ensured through an [accessibility-checker](https://www.npmjs.com/package/accessibility-checker) and [axe-core](https://www.npmjs.com/package/axe-core) software tools during automated testing. - -The accessibility compliance of the MultiSelect component is shown in the following sample. Open the [sample](https://ej2.syncfusion.com/accessibility/multi-select.html) in a new window to evaluate the accessibility of the MultiSelect component with accessibility tools. - -{% previewsample "https://ej2.syncfusion.com/accessibility/multi-select.html" %} - -## See also - -* [Accessibility in Syncfusion components](../common/accessibility) \ No newline at end of file diff --git a/ej2-javascript/multi-select/checkbox.md b/ej2-javascript/multi-select/checkbox.md index 0f273769a..1aaf84454 100644 --- a/ej2-javascript/multi-select/checkbox.md +++ b/ej2-javascript/multi-select/checkbox.md @@ -145,4 +145,4 @@ Using [`enableSelectionOrder`](../api/multi-select/#enableselectionorder) to Reo * [How to bind the data](./data-binding) * [How to filter the bound data](./filtering) * [How to add custom value to the MultiSelect](./custom-value) -* [How to render grouping with checkbox](./grouping#grouping-with-checkbox). \ No newline at end of file +* [How to render grouping with checkbox](./grouping/#grouping-with-checkbox). \ No newline at end of file diff --git a/ej2-javascript/multi-select/disabled-items.md b/ej2-javascript/multi-select/disabled-items.md deleted file mode 100644 index fc39966ff..000000000 --- a/ej2-javascript/multi-select/disabled-items.md +++ /dev/null @@ -1,59 +0,0 @@ ---- -layout: post -title: Disabled Items in ##Platform_Name## MultiSelect control | Syncfusion -description: Learn here all about Disabled Items in Syncfusion ##Platform_Name## MultiSelect control of Syncfusion Essential JS 2 and more. -platform: ej2-javascript -control: Disabled Items -publishingplatform: ##Platform_Name## -documentation: ug -domainurl: ##DomainURL## ---- - -# Disabled Items in ##Platform_Name## MultiSelect control - -The MultiSelect provides options for individual items to be either in an enabled or disabled state for specific scenarios. The category of each list item can be mapped through the [disabled](../api/multi-select/#fields) field in the data table. Once an item is disabled, it cannot be selected as a value for the component. To configure the disabled item columns, use the `fields.disabled` property. - -In the following sample, State are grouped according on its category using `disabled` field. - -{% if page.publishingplatform == "typescript" %} - - {% tabs %} -{% highlight ts tabtitle="index.ts" %} -{% include code-snippet/multiselect/basic-cs17/index.ts %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multiselect/basic-cs17/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multiselect/basic-cs17" %} - -{% elsif page.publishingplatform == "javascript" %} - -{% tabs %} -{% highlight js tabtitle="index.js" %} -{% include code-snippet/multiselect/basic-cs17/index.js %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multiselect/basic-cs17/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multiselect/basic-cs17" %} -{% endif %} - -## Disable Item Method - -The [disableItem](../api/multi-select/#disableItem) method can be used to handle dynamic changing in disable state of a specific item. Only one item can be disabled in this method. To disable multiple items, this method can be iterated with the items list or array. The disabled field state will to be updated in the [dataSource](../api/multi-select/#datasource), when the item is disabled using this method. If the selected item is disabled dynamically, then the selection will be cleared. - -| Parameter | Type | Description | -|------|------|------| -| itemHTMLLIElement | HTMLLIElement | It accepts the HTML Li element of the item to be removed. | -| itemValue | string \| number \| boolean \| object | It accepts the string, number, boolean and object type value of the item to be removed. | -| itemIndex | number | It accepts the index of the item to be removed. | - -## Enabled - -If you want to disabled the overall component to set the [enabled](../api/multi-select/#enabled) property to false. - -![Disabled MultiSelect Component](../images/multiselect-disable.png) \ No newline at end of file diff --git a/ej2-javascript/multi-select/how-to/achieve-virtual-scrolling.md b/ej2-javascript/multi-select/how-to/achieve-virtual-scrolling.md new file mode 100644 index 000000000..f22a8e0bb --- /dev/null +++ b/ej2-javascript/multi-select/how-to/achieve-virtual-scrolling.md @@ -0,0 +1,43 @@ +--- +layout: post +title: Achieve virtual scrolling in ##Platform_Name## Multi select control | Syncfusion +description: Learn here all about Achieve virtual scrolling in Syncfusion ##Platform_Name## Multi select control of Syncfusion Essential JS 2 and more. +platform: ej2-javascript +control: Achieve virtual scrolling +publishingplatform: ##Platform_Name## +documentation: ug +domainurl: ##DomainURL## +--- + +# Achieve virtual scrolling in ##Platform_Name## Multi select control + +The Virtual Scrolling is used to display a large amount of data without buffering the entire load of a huge database record in the MultiSelect, that is, when scrolling, the request is sent and fetch some amount of data from the server dynamically. Using the `scroll` event, get the data and generate the list add to popup using the `addItem` method. + +Refer to the following code sample for virtual scrolling. + +{% if page.publishingplatform == "typescript" %} + + {% tabs %} +{% highlight ts tabtitle="index.ts" %} +{% include code-snippet/multiselect/virtual-cs1/index.ts %} +{% endhighlight %} +{% highlight html tabtitle="index.html" %} +{% include code-snippet/multiselect/virtual-cs1/index.html %} +{% endhighlight %} +{% endtabs %} + +{% previewsample "page.domainurl/code-snippet/multiselect/virtual-cs1" %} + +{% elsif page.publishingplatform == "javascript" %} + +{% tabs %} +{% highlight js tabtitle="index.js" %} +{% include code-snippet/multiselect/virtual-cs1/index.js %} +{% endhighlight %} +{% highlight html tabtitle="index.html" %} +{% include code-snippet/multiselect/virtual-cs1/index.html %} +{% endhighlight %} +{% endtabs %} + +{% previewsample "page.domainurl/code-snippet/multiselect/virtual-cs1" %} +{% endif %} diff --git a/ej2-javascript/multi-select/resize.md b/ej2-javascript/multi-select/resize.md new file mode 100644 index 000000000..42ad3c8af --- /dev/null +++ b/ej2-javascript/multi-select/resize.md @@ -0,0 +1,41 @@ +--- +layout: post +title: Resizing in ##Platform_Name## Multi Select control | Syncfusion +description: Learn here all about Popup Resizing in Syncfusion ##Platform_Name## Multi Select control of Syncfusion Essential JS 2 and more. +platform: ej2-javascript +control: Resizing +publishingplatform: ##Platform_Name## +documentation: ug +domainurl: ##DomainURL## +--- + +# Resizing ##Platform_Name## Multi select control + +You can dynamically adjust the size of the popup in the Autocomplete component by using the [AllowResize](https://ej2.syncfusion.com/javascript/documentation/api/multi-select/#allowresize) property. When enabled, users can resize the popup, improving visibility and control, with the resized dimensions being retained across sessions for a consistent user experience. + +{% if page.publishingplatform == "typescript" %} + + {% tabs %} +{% highlight ts tabtitle="index.ts" %} +{% include code-snippet/multiselect/basic-cs18/index.ts %} +{% endhighlight %} +{% highlight html tabtitle="index.html" %} +{% include code-snippet/multiselect/basic-cs18/index.html %} +{% endhighlight %} +{% endtabs %} + +{% elsif page.publishingplatform == "javascript" %} + +{% tabs %} +{% highlight js tabtitle="index.js" %} +{% include code-snippet/multiselect/basic-cs18/index.js %} +{% endhighlight %} +{% highlight html tabtitle="index.html" %} +{% include code-snippet/multiselect/basic-cs18/index.html %} +{% endhighlight %} +{% endtabs %} + + +{% endif %} + +![Resizing in Multi select Component](../images/multiselect-resize.gif) \ No newline at end of file diff --git a/ej2-javascript/multi-select/ts/getting-started.md b/ej2-javascript/multi-select/ts/getting-started.md index 1929ab1e5..c348b8a0e 100644 --- a/ej2-javascript/multi-select/ts/getting-started.md +++ b/ej2-javascript/multi-select/ts/getting-started.md @@ -11,9 +11,7 @@ domainurl: ##DomainURL## # Getting started in ##Platform_Name## Multi select control -This section explains how to create a simple **MultiSelect** component and configure its available functionalities in TypeScript using the Essential JS 2 [quickstart](https://github.com/SyncfusionExamples/ej2-quickstart-webpack-) seed repository. - -> This application is integrated with the `webpack.config.js` configuration and uses the latest version of the [webpack-cli](https://webpack.js.org/api/cli/#commands). It requires node `v14.15.0` or higher. For more information about webpack and its features, refer to the [webpack documentation](https://webpack.js.org/guides/getting-started/). +This section explains how to create a simple **MultiSelect** component and configure its available functionalities in TypeScript using the Essential JS 2 [quickstart](https://github.com/syncfusion/ej2-quickstart.git) seed repository. ## Dependencies @@ -30,58 +28,17 @@ The following list of dependencies are required to use the MultiSelect component |-- @syncfusion/ej2-buttons ``` -## Set up development environment - -Open the command prompt from the required directory, and run the following command to clone the Syncfusion JavaScript (Essential JS 2) quickstart project from [GitHub](https://github.com/SyncfusionExamples/ej2-quickstart-webpack-). - -{% tabs %} -{% highlight bash tabtitle="CMD" %} - -git clone https://github.com/SyncfusionExamples/ej2-quickstart-webpack- ej2-quickstart - -{% endhighlight %} -{% endtabs %} - -After cloning the application in the `ej2-quickstart` folder, run the following command line to navigate to the `ej2-quickstart` folder. - -{% tabs %} -{% highlight bash tabtitle="CMD" %} - -cd ej2-quickstart - -{% endhighlight %} -{% endtabs %} - -## Add Syncfusion JavaScript packages +## Set up of the development environment -Syncfusion JavaScript (Essential JS 2) packages are available on the [npmjs.com](https://www.npmjs.com/~syncfusionorg) public registry. You can install all Syncfusion JavaScript (Essential JS 2) controls in a single [@syncfusion/ej2](https://www.npmjs.com/package/@syncfusion/ej2) package or individual packages for each control. - -The quickstart application is preconfigured with the dependent [@syncfusion/ej2](https://www.npmjs.com/package/@syncfusion/ej2) package in the `~/package.json` file. Use the following command to install the dependent npm packages from the command prompt. - -{% tabs %} -{% highlight bash tabtitle="NPM" %} +To get started with the MultiSelect component, you have to clone the Essential JS 2 [`quickstart`](https://github.com/syncfusion/ej2-quickstart.git) project and install the npm packages by using the following commands. +``` +git clone https://github.com/syncfusion/ej2-quickstart.git quickstart +cd quickstart npm install +``` -{% endhighlight %} -{% endtabs %} - -## Import the Syncfusion CSS styles - -To render MultiSelect control, need to import dropdowns and its dependent controls styles as given below in the `~/src/styles/styles.css` file, as shown below: - -{% tabs %} -{% highlight css tabtitle="style.css" %} - -@import '../../node_modules/@syncfusion/ej2-base/styles/material.css'; -@import '../../node_modules/@syncfusion/ej2-buttons/styles/material.css'; -@import '../../node_modules/@syncfusion/ej2-inputs/styles/material.css'; -@import '../../node_modules/@syncfusion/ej2-popups/styles/material.css'; -@import '../../node_modules/@syncfusion/ej2-lists/styles/material.css'; -@import '../../node_modules/@syncfusion/ej2-dropdowns/styles/material.css'; - -{% endhighlight %} -{% endtabs %} +>The [project](https://github.com/syncfusion/ej2-quickstart.git) is preconfigured with common settings (`src/styles/styles.css`, `system.config.js` ) to start all the Essential JS 2 components. ## Initialize the MultiSelect @@ -91,9 +48,7 @@ Add the HTML input element that needs to be initialized as a MultiSelect in `ind `[src/index.html]` -{% tabs %} -{% highlight html tabtitle="index.html" %} - +```html @@ -104,6 +59,13 @@ Add the HTML input element that needs to be initialized as a MultiSelect in `ind + + + + + + + @@ -115,16 +77,13 @@ Add the HTML input element that needs to be initialized as a MultiSelect in `ind - -{% endhighlight %} -{% endtabs %} +``` Now, import the MultiSelect component to your `app.ts` and initialize it to the element `#select` as shown below. `[src/app/app.ts]` -{% tabs %} -{% highlight ts tabtitle="app.ts" %} +```ts import { MultiSelect } from '@syncfusion/ej2-dropdowns'; @@ -134,16 +93,13 @@ let msObject: MultiSelect = new MultiSelect(); // render initialized MultiSelect msObject.appendTo('#select'); -{% endhighlight %} -{% endtabs %} +``` ## Binding data source After initialization, populate the MultiSelect with data using the [dataSource](https://ej2.syncfusion.com/documentation/api/multi-select#datasource)  property. Here, an array of string values is passed to the MultiSelect component. -{% tabs %} -{% highlight ts tabtitle="app.ts" %} - +```ts import { MultiSelect } from '@syncfusion/ej2-dropdowns'; // define the array of data @@ -158,20 +114,15 @@ let msObject: MultiSelect = new MultiSelect({ // render initialized MultiSelect msObject.appendTo('#select'); -{% endhighlight %} -{% endtabs %} +``` ## Run the application After completing the configuration required to render a basic MultiSelect, run the following command to display the output in your default browser. -{% tabs %} -{% highlight bash tabtitle="NPM" %} - +``` npm run start - -{% endhighlight %} -{% endtabs %} +``` The following example illustrates the output in your browser. diff --git a/ej2-javascript/multi-select/value-binding.md b/ej2-javascript/multi-select/value-binding.md deleted file mode 100644 index 22e4e776d..000000000 --- a/ej2-javascript/multi-select/value-binding.md +++ /dev/null @@ -1,89 +0,0 @@ ---- -layout: post -title: Value binding in ##Platform_Name## Multi select control | Syncfusion -description: Learn here all about Value binding in Syncfusion ##Platform_Name## Multi select control of Syncfusion Essential JS 2 and more. -platform: ej2-javascript -control: Value binding -publishingplatform: ##Platform_Name## -documentation: ug -domainurl: ##DomainURL## ---- - -# Value binding in ##Platform_Name## Multi select control - -Value binding in the MultiSelect control allows you to associate data values with each list item. This facilitates managing and retrieving selected values efficiently. The MultiSelect component provides flexibility in binding both primitive data types and complex objects. - -## Primitive Data Types - -The MultiSelect Dropdown control provides flexible binding capabilities for primitive data types like strings and numbers. You can effortlessly bind local primitive data arrays, fetch and bind data from remote sources, and even custom data binding to suit specific requirements. Bind the value of primitive data to the [value](../api/multi-select/#value) property of the MultiSelect. - -Primitive data types include: - -* String -* Number -* Boolean -* Null - -The following sample shows the example for preselect values for primitive data type - -{% if page.publishingplatform == "typescript" %} - - {% tabs %} -{% highlight ts tabtitle="index.ts" %} -{% include code-snippet/multiselect/primitive/index.ts %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multiselect/primitive/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multiselect/primitive" %} - -{% elsif page.publishingplatform == "javascript" %} - -{% tabs %} -{% highlight js tabtitle="index.js" %} -{% include code-snippet/multiselect/primitive/index.js %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multiselect/primitive/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multiselect/primitive" %} -{% endif %} - -## Object Data Types - -In the MultiSelect Dropdown control, object binding allows you to bind to a dataset of objects. When [`allowObjectBinding`](../api/multi-select/#allowobjectbinding) is enabled, the value of the control will be an object of the same type as the selected item in the [value](../api/multi-select/#value) property. This feature seamlessly binds arrays of objects, whether sourced locally, retrieved from remote endpoints, or customized to suit specific application needs. - -The following sample shows the example for preselect values for object data type - -{% if page.publishingplatform == "typescript" %} - - {% tabs %} -{% highlight ts tabtitle="index.ts" %} -{% include code-snippet/multiselect/objectvalue/index.ts %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multiselect/objectvalue/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multiselect/objectvalue" %} - -{% elsif page.publishingplatform == "javascript" %} - -{% tabs %} -{% highlight js tabtitle="index.js" %} -{% include code-snippet/multiselect/objectvalue/index.js %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multiselect/objectvalue/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multiselect/objectvalue" %} -{% endif %} - -> Since the `value` property supports object data types, it's necessary to provide the appropriate type wherever the `value` property is utilized. \ No newline at end of file diff --git a/ej2-javascript/multi-select/virtual-scroll.md b/ej2-javascript/multi-select/virtual-scroll.md deleted file mode 100644 index 9e83da6e9..000000000 --- a/ej2-javascript/multi-select/virtual-scroll.md +++ /dev/null @@ -1,283 +0,0 @@ ---- -layout: post -title: Virtualization in ##Platform_Name## Multi select control | Syncfusion -description: Learn here all about Virtualization in Syncfusion ###Platform_Name## Multi select control of Syncfusion Essential JS 2 and more. -platform: ej2-javascript -control: Virtualization -publishingplatform: ##Platform_Name## -documentation: ug -domainurl: ##DomainURL## ---- - -# Virtualization in MultiSelect Dropdown - -MultiSelect Dropdown virtualization is a technique used to efficiently render extensive lists of items while minimizing the impact on performance. This method is particularly advantageous when dealing with large datasets because it ensures that only a fixed number of DOM (Document Object Model) elements are created. When scrolling through the list, existing DOM elements are reused to display relevant data instead of generating new elements for each item. This recycling process is managed internally. - -During virtual scrolling, the data retrieved from the data source depends on the popup height and the calculation of the list item height. Enabling the [enableVirtualization](../api/multi-select/#enableVirtualization) option in a MultiSelect Dropdown activates this virtualization technique. - -When fetching data from the data source, the [actionBegin](../api/multi-select/#actionbegin) event is triggered before data retrieval begins. Then, the [actionComplete](../api/multi-select/#actioncomplete) event is triggered once the data is successfully fetched. - -Furthermore, Incremental Search is supported with virtualization in the MultiSelect component. When a key is typed, the focus is moved to the respective element in the open popup state. In the closed popup state, the popup opens, and focus is moved to the respective element in the popup list based on the typed key. The Incremental Search functionality is well-suited for scenarios involving remote data binding. - -## Binding local data - -The MultiSelect can generate its list items through an array of complex data. For this, the appropriate columns should be mapped to the [fields](../api/multi-select/#fields) property. When using virtual scrolling, the list updates based on the scroll offset value, triggering a request to fetch more data from the server. - -In the following example, `id` column and `text` column from complex data have been mapped to the `value` field and `text` field, respectively. - -{% if page.publishingplatform == "typescript" %} - - {% tabs %} -{% highlight ts tabtitle="index.ts" %} -{% include code-snippet/multiselect/virtual-scroll/index.ts %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multiselect/virtual-scroll/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multiselect/virtual-scroll" %} - -{% elsif page.publishingplatform == "javascript" %} - -{% tabs %} -{% highlight js tabtitle="index.js" %} -{% include code-snippet/multiselect/virtual-scroll/index.js %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multiselect/virtual-scroll/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multiselect/virtual-scroll" %} -{% endif %} - - -## Binding remote data - -The MultiSelect supports the retrieval of data from remote data services with the help of the `DataManager` component, triggering the `actionBegin` and `actionComplete` events, and then updating the list data. During virtual scrolling, additional data is retrieved from the server, triggering the `actionBegin` and `actionComplete` events at that time as well. - -The following sample displays the OrderId from the `Orders` Data Service. - -{% if page.publishingplatform == "typescript" %} - - {% tabs %} -{% highlight ts tabtitle="index.ts" %} -{% include code-snippet/multiselect/virtual-scroll-remote/index.ts %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multiselect/virtual-scroll-remote/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multiselect/virtual-scroll-remote" %} - -{% elsif page.publishingplatform == "javascript" %} - -{% tabs %} -{% highlight js tabtitle="index.js" %} -{% include code-snippet/multiselect/virtual-scroll-remote/index.js %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multiselect/virtual-scroll-remote/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multiselect/virtual-scroll-remote" %} -{% endif %} - -## Customizing items count in virtualization - -When the `enableVirtualization` property is enabled, the `take` property provided by the user within the Query parameter at the initial state or during the `actionBegin` event will be considered. Internally, it calculates the items that fit onto the current page (i.e., probably twice the amount of the popup's height). If the user-provided take value is less than the minimum number of items that fit into the popup, the user-provided take value will not be considered. - -The following sample shows the example for Customizing items count in virtualization. - -{% if page.publishingplatform == "typescript" %} - - {% tabs %} -{% highlight ts tabtitle="index.ts" %} -{% include code-snippet/multiselect/virtual-scroll-items/index.ts %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multiselect/virtual-scroll-items/index.html %} -{% endhighlight %} -{% endtabs %} - -{% elsif page.publishingplatform == "javascript" %} - -{% tabs %} -{% highlight js tabtitle="index.js" %} -{% include code-snippet/multiselect/virtual-scroll-items/index.js %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multiselect/virtual-scroll-items/index.html %} -{% endhighlight %} -{% endtabs %} - -{% endif %} - -## Grouping with virtualization - -The MultiSelect component supports grouping with Virtualization. It allows you to organize elements into groups based on different categories. Each item in the list can be classified using the [groupBy](../api/multi-select/#fields) field in the data table. After grouping, virtualization works similarly to local data binding, providing a seamless user experience. When the data source is bound to remote data, an initial request is made to retrieve all data for the purpose of grouping. Subsequently, the grouped data works in the same way as local data binding on virtualization. - -The following sample shows the example for Grouping with Virtualization. - -{% if page.publishingplatform == "typescript" %} - - {% tabs %} -{% highlight ts tabtitle="index.ts" %} -{% include code-snippet/multiselect/virtual-scroll-group/index.ts %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multiselect/virtual-scroll-group/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multiselect/virtual-scroll-group" %} - -{% elsif page.publishingplatform == "javascript" %} - -{% tabs %} -{% highlight js tabtitle="index.js" %} -{% include code-snippet/multiselect/virtual-scroll-group/index.js %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multiselect/virtual-scroll-group/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multiselect/virtual-scroll-group" %} -{% endif %} - -## Filtering with virtualization - -The MultiSelect component supports Filtering with Virtualization. The MultiSelect includes a built-in feature that enables data filtering when the [`allowFiltering`](../api/multi-select/#allowfiltering) option is enabled. In the context of Virtual Scrolling, the filtering process operates in response to the typed characters. Specifically, the MultiSelect sends a request to the server, utilizing the full data source, to achieve filtering. Before initiating the request, an action event is triggered. Upon successful retrieval of data from the server, an action complete event is triggered. The initial data is loaded when the popup is opened. Whether the filter list has a selection or not, the popup closes. - -The following sample shows the example for Filtering with Virtualization. - -{% if page.publishingplatform == "typescript" %} - - {% tabs %} -{% highlight ts tabtitle="index.ts" %} -{% include code-snippet/multiselect/virtual-scroll-filter/index.ts %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multiselect/virtual-scroll-filter/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multiselect/virtual-scroll-filter" %} - -{% elsif page.publishingplatform == "javascript" %} - -{% tabs %} -{% highlight js tabtitle="index.js" %} -{% include code-snippet/multiselect/virtual-scroll-filter/index.js %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multiselect/virtual-scroll-filter/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multiselect/virtual-scroll-filter" %} -{% endif %} - -## Checkbox with virtualization - -The MultiSelect component supports CheckBox selection with Virtualization. The MultiSelect comes with integrated functionality that allows for the selection of multiple values using checkboxes when the [`mode`](../api/multi-select/#mode) property is configured to `CheckBox`. In the context of Virtual Scrolling, the checkbox render with each list element. based on the checkbox selection and unselection, component value property updated with respective values. - -The following sample shows the example for checkbox with Virtualization. - -{% if page.publishingplatform == "typescript" %} - - {% tabs %} -{% highlight ts tabtitle="index.ts" %} -{% include code-snippet/multiselect/virtual-scroll-check/index.ts %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multiselect/virtual-scroll-check/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multiselect/virtual-scroll-check" %} - -{% elsif page.publishingplatform == "javascript" %} - -{% tabs %} -{% highlight js tabtitle="index.js" %} -{% include code-snippet/multiselect/virtual-scroll-check/index.js %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multiselect/virtual-scroll-check/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multiselect/virtual-scroll-check" %} -{% endif %} - -## Custom value with virtualization - -The MultiSelect component supports custom value with Virtualization. When the [`allowCustomValue`](../api/multi-select/#allowcustomvalue) property is enabled, the MultiSelect enables users to include a new option not currently available in the component value. Upon selecting this newly added custom value, the MultiSelect triggers the [`customValueSelection`](../api/multi-select/#customvalueselection) event and also custom value will be added to the end of the complete list. - -The following sample shows the example for custom value with Virtualization. - -{% if page.publishingplatform == "typescript" %} - - {% tabs %} -{% highlight ts tabtitle="index.ts" %} -{% include code-snippet/multiselect/virtual-scroll-custom/index.ts %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multiselect/virtual-scroll-custom/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multiselect/virtual-scroll-custom" %} - -{% elsif page.publishingplatform == "javascript" %} - -{% tabs %} -{% highlight js tabtitle="index.js" %} -{% include code-snippet/multiselect/virtual-scroll-custom/index.js %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multiselect/virtual-scroll-custom/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multiselect/virtual-scroll-custom" %} -{% endif %} - -## Preselect values with virtualization - -The MultiSelect component extends its support for preselected values with Virtualization. When binding values from local or remote data to the MultiSelect component, the corresponding data value is fetched from the server and promptly updated within the component. Moreover, when binding a custom value to the component, the value is updated within the component, and the bound custom value is seamlessly appended to the end of the complete list. - -The following sample shows the example for Preselect value with Virtualization. - -{% if page.publishingplatform == "typescript" %} - - {% tabs %} -{% highlight ts tabtitle="index.ts" %} -{% include code-snippet/multiselect/virtual-scroll-preselect/index.ts %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multiselect/virtual-scroll-preselect/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multiselect/virtual-scroll-preselect" %} - -{% elsif page.publishingplatform == "javascript" %} - -{% tabs %} -{% highlight js tabtitle="index.js" %} -{% include code-snippet/multiselect/virtual-scroll-preselect/index.js %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multiselect/virtual-scroll-preselect/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multiselect/virtual-scroll-preselect" %} -{% endif %} - diff --git a/ej2-javascript/multicolumn-combobox/accessibility.md b/ej2-javascript/multicolumn-combobox/accessibility.md deleted file mode 100644 index 209dd3b08..000000000 --- a/ej2-javascript/multicolumn-combobox/accessibility.md +++ /dev/null @@ -1,78 +0,0 @@ ---- -layout: post -title: Accessibility in ##Platform_Name## MultiColumn ComboBox control | Syncfusion -description: Learn here all about Accessibility in Syncfusion ##Platform_Name## MultiColumn ComboBox control of Syncfusion Essential JS 2 and more. -platform: ej2-javascript -control: MultiColumn ComboBox -publishingplatform: ##Platform_Name## -documentation: ug -domainurl: ##DomainURL## ---- - -# Accessibility in ##Platform_Name## MultiColumn ComboBox control - -The MultiColumn ComboBox control followed the accessibility guidelines and standards, including [ADA](https://www.ada.gov/), [Section 508](https://www.section508.gov/), [WCAG 2.2](https://www.w3.org/TR/WCAG22/) standards, and [WCAG roles](https://www.w3.org/TR/wai-aria/#roles) that are commonly used to evaluate accessibility. - -The accessibility compliance for the MultiColumn ComboBox control is outlined below. - -| Accessibility Criteria | Compatibility | -| -- | -- | -| [WCAG 2.2 Support](../common/accessibility#accessibility-standards) | Yes | -| [Section 508 Support](../common/accessibility#accessibility-standards) | Yes | -| [Screen Reader Support](../common/accessibility#screen-reader-support) | Yes | -| [Right-To-Left Support](../common/accessibility#right-to-left-support) | Yes | -| [Color Contrast](../common/accessibility#color-contrast) | Yes | -| [Mobile Device Support](../common/accessibility#mobile-device-support) | Yes | -| [Keyboard Navigation Support](../common/accessibility#keyboard-navigation-support) | Yes | -| [Accessibility Checker Validation](../common/accessibility#ensuring-accessibility) | Yes | -| [Axe-core Accessibility Validation](../common/accessibility#ensuring-accessibility) | Yes | - - -
          Yes - All features of the control meet the requirement.
          - -
          Intermediate - Some features of the control do not meet the requirement.
          - -
          No - The control does not meet the requirement.
          - -## WAI-ARIA attributes - -The following ARIA attributes are used in the MultiColumn ComboBox control: - -| Attributes | Purpose | -| ------------ | ----------------------- | -| `role=combobox` | Identifies an input element that controls another element, like a listbox or grid, which can pop up to help the user set its value. | -| `aria-expanded` | Indicates whether the popup list has expanded or not. | -| `aria-selected` | Indicates the selected option. | -| `aria-readonly` | Indicates the readonly state of the MultiColumn ComboBox element. | -| `aria-disabled` | Indicates whether the MultiColumn ComboBox control is in a disabled state or not. | -| `aria-owns` | This attribute contains the ID of the popup list to indicate popup as a child element. | - -## Keyboard interaction - -The following keyboard shortcuts are supported by the MultiColumn ComboBox control. - -| **Press** | **To do this** | -| --- | --- | -| Enter | Selects the focused item and popup list closes when it is in open state. | -| Esc | Closes the popup list when it is in an open state and the currently selected item remains the same. | -| Alt +down | Opens the popup list. | -| Alt + Up | Closes the popup list. | -| Arrow Up | Selects the item previous to the currently selected one. | -| Arrow Down | Selects the first item in the MultiColumn ComboBox when no item selected. Otherwise, selects the item next to the currently selected item. | -| Home  | Selects the first item in the popup list. | -| End | Selects the last item in the popup list. | -| Tab | Focuses on the next TabIndex element on the page when the popup is closed. Otherwise, closes the popup list and remains the focus of the control. | -| Shift + Tab | Focuses on the previous TabIndex element on the page when the popup is closed. Otherwise, closes the popup list and remains the focus of the control. | - -## Ensuring accessibility - -The MultiColumn ComboBox control's accessibility levels are ensured through an [accessibility-checker](https://www.npmjs.com/package/accessibility-checker) and [axe-core](https://www.npmjs.com/package/axe-core) software tools during automated testing. - -## See also - -* [Accessibility in Syncfusion controls](../common/accessibility) diff --git a/ej2-javascript/multicolumn-combobox/columns.md b/ej2-javascript/multicolumn-combobox/columns.md deleted file mode 100644 index 47a57dd1e..000000000 --- a/ej2-javascript/multicolumn-combobox/columns.md +++ /dev/null @@ -1,175 +0,0 @@ ---- -layout: post -title: Columns in ##Platform_Name## MultiColumn Combobox control | Syncfusion -description: Checkout and learn about columns with ##Platform_Name## MultiColumn Combobox control of Syncfusion Essential JS 2 and more. -platform: ej2-javascript -control: Columns -publishingplatform: ##Platform_Name## -documentation: ug -domainurl: ##DomainURL## ---- - -# Columns in ##Platform_Name## MultiColumn ComboBox control - -The [columns](../api/multicolumn-combobox#columns) property allow you to define the data fields to be displayed in the MultiColumn ComboBox. - -You can customize the column by using [ColumnModel](../api/multicolumn-combobox/columnModel/), which provides options such as `field`, `header`, `width`, `format`, `template` and more. - -* [field](../api/multicolumn-combobox/columnModel/#field) - Specifies the fields to be displayed in each column, mapped from the data source to the multicolumn combobox. - -* [header](../api/multicolumn-combobox/columnModel/#header) - Specifes the data to be displayed in the column header. - -* [width](../api/multicolumn-combobox/columnModel/#width) - Specifes the column width. - -In the following example, the column is customized with `field`, `header` and `width` properties. - -{% if page.publishingplatform == "typescript" %} - -{% tabs %} -{% highlight ts tabtitle="index.ts" %} -{% include code-snippet/multicolumn-combobox/column-field/index.ts %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multicolumn-combobox/column-field/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multicolumn-combobox/column-field" %} - -{% elsif page.publishingplatform == "javascript" %} - -{% tabs %} -{% highlight js tabtitle="index.js" %} -{% include code-snippet/multicolumn-combobox/column-field/index.js %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multicolumn-combobox/column-field/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multicolumn-combobox/column-field" %} -{% endif %} - -## Setting text align - -You can use the [textAlign](../api/multicolumn-combobox/columnModel/#textalign) property to define the text alignment of the column. - -{% if page.publishingplatform == "typescript" %} - -{% tabs %} -{% highlight ts tabtitle="index.ts" %} -{% include code-snippet/multicolumn-combobox/column-textalign/index.ts %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multicolumn-combobox/column-textalign/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multicolumn-combobox/column-textalign" %} - -{% elsif page.publishingplatform == "javascript" %} - -{% tabs %} -{% highlight js tabtitle="index.js" %} -{% include code-snippet/multicolumn-combobox/column-textalign/index.js %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multicolumn-combobox/column-textalign/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multicolumn-combobox/column-textalign" %} -{% endif %} - -## Setting template - -You can use the [template](../api/multicolumn-combobox/columnModel/#template) property to customize the each cell of the column. It accepts either a template string or an HTML element. - -{% if page.publishingplatform == "typescript" %} - -{% tabs %} -{% highlight ts tabtitle="index.ts" %} -{% include code-snippet/multicolumn-combobox/column-template/index.ts %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multicolumn-combobox/column-template/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multicolumn-combobox/column-template" %} - -{% elsif page.publishingplatform == "javascript" %} - -{% tabs %} -{% highlight js tabtitle="index.js" %} -{% include code-snippet/multicolumn-combobox/column-template/index.js %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multicolumn-combobox/column-template/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multicolumn-combobox/column-template" %} -{% endif %} - -## Setting display as checkBox - -You can use [displayAsCheckBox](../api/multicolumn-combobox/columnModel/#displayascheckbox) property to display the column value as checkbox instead of a boolean value. By default, the value is `false`. - -{% if page.publishingplatform == "typescript" %} - -{% tabs %} -{% highlight ts tabtitle="index.ts" %} -{% include code-snippet/multicolumn-combobox/column-checkbox/index.ts %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multicolumn-combobox/column-checkbox/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multicolumn-combobox/column-checkbox" %} - -{% elsif page.publishingplatform == "javascript" %} - -{% tabs %} -{% highlight js tabtitle="index.js" %} -{% include code-snippet/multicolumn-combobox/column-checkbox/index.js %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multicolumn-combobox/column-checkbox/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multicolumn-combobox/column-checkbox" %} -{% endif %} - -## Setting custom attributes - -You can use the [customAttributes](../api/multicolumn-combobox/columnModel/#customattributes) property to customize the CSS styles and attributes of each column's content cells. - -{% if page.publishingplatform == "typescript" %} - -{% tabs %} -{% highlight ts tabtitle="index.ts" %} -{% include code-snippet/multicolumn-combobox/custom-attribute/index.ts %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multicolumn-combobox/custom-attribute/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multicolumn-combobox/custom-attribute" %} - -{% elsif page.publishingplatform == "javascript" %} - -{% tabs %} -{% highlight js tabtitle="index.js" %} -{% include code-snippet/multicolumn-combobox/custom-attribute/index.js %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multicolumn-combobox/custom-attribute/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multicolumn-combobox/custom-attribute" %} -{% endif %} \ No newline at end of file diff --git a/ej2-javascript/multicolumn-combobox/data-binding.md b/ej2-javascript/multicolumn-combobox/data-binding.md deleted file mode 100644 index ae539bf93..000000000 --- a/ej2-javascript/multicolumn-combobox/data-binding.md +++ /dev/null @@ -1,86 +0,0 @@ ---- -layout: post -title: Data binding in ##Platform_Name## MultiColumn Combobox control | Syncfusion -description: Checkout and learn about Data binding in ##Platform_Name## MultiColumn Combobox control of Syncfusion Essential JS 2 and more. -platform: ej2-javascript -control: Data binding -publishingplatform: ##Platform_Name## -documentation: ug -domainurl: ##DomainURL## ---- - -# Data binding in ##Platform_Name## MultiColumn ComboBox control - -The MultiColumn ComboBox loads the data either from local data sources or remote data services using the [dataSource](../api/multicolumn-combobox#datasource) property. It supports the data type of `object arrays` or `DataManager`. - -The MultiColumn ComboBox also supports different kinds of data services such as OData, OData V4, and Web API, and data formats such as XML, JSON, and JSONP with the help of `DataManager` adaptors. - -| Fields | Type | Description | -|------|------|-------------| -| text | `string` | Specifies the display text of each list item. | -| value | `number or string` | Specifies the hidden data value mapped to each list item that should contain a unique value. | -| groupBy | `string` | Specifies the category under which the list item has to be grouped. | - -> The fields should be mapped correctly. Otherwise, the selected item remains undefined. - -## Binding local data - -The local binding in the MultiColumn ComboBox allows you to connect the component to various data sources, enabling dynamic and flexible data display. - -{% if page.publishingplatform == "typescript" %} - -{% tabs %} -{% highlight ts tabtitle="index.ts" %} -{% include code-snippet/multicolumn-combobox/text/index.ts %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multicolumn-combobox/text/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multicolumn-combobox/text" %} - -{% elsif page.publishingplatform == "javascript" %} - -{% tabs %} -{% highlight js tabtitle="index.js" %} -{% include code-snippet/multicolumn-combobox/text/index.js %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multicolumn-combobox/text/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multicolumn-combobox/text" %} -{% endif %} - -## Binding remote data - -The MultiColumn ComboBox supports retrieval of data from remote data services with the help of `DataManager` component. - -{% if page.publishingplatform == "typescript" %} - -{% tabs %} -{% highlight ts tabtitle="index.ts" %} -{% include code-snippet/multicolumn-combobox/data-binding/index.ts %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multicolumn-combobox/data-binding/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multicolumn-combobox/data-binding" %} - -{% elsif page.publishingplatform == "javascript" %} - -{% tabs %} -{% highlight js tabtitle="index.js" %} -{% include code-snippet/multicolumn-combobox/data-binding/index.js %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multicolumn-combobox/data-binding/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multicolumn-combobox/data-binding" %} -{% endif %} \ No newline at end of file diff --git a/ej2-javascript/multicolumn-combobox/events.md b/ej2-javascript/multicolumn-combobox/events.md deleted file mode 100644 index c85aba376..000000000 --- a/ej2-javascript/multicolumn-combobox/events.md +++ /dev/null @@ -1,238 +0,0 @@ ---- -layout: post -title: Events in ##Platform_Name## MultiColumn Combobox control | Syncfusion -description: Checkout and learn about events with ##Platform_Name## MultiColumn Combobox control of Syncfusion Essential JS 2 and more. -platform: ej2-javascript -control: Events -publishingplatform: ##Platform_Name## -documentation: ug -domainurl: ##DomainURL## ---- - -# Events in ##Platform_Name## MultiColumn ComboBox control - -This section describes the multicolumn combobox events that will be triggered when appropriate actions are performed. The following events are available in the multicolumn combobox control. - -## actionBegin - -The [actionBegin](../api/multicolumn-combobox#actionbegin) event is triggered when actions such as sorting, filtering, grouping starts. - -{% if page.publishingplatform == "typescript" %} - -{% tabs %} -{% highlight ts tabtitle="index.ts" %} -{% include code-snippet/multicolumn-combobox/action-begin/index.ts %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multicolumn-combobox/action-begin/index.html %} -{% endhighlight %} -{% endtabs %} - -{% elsif page.publishingplatform == "javascript" %} - -{% tabs %} -{% highlight js tabtitle="index.js" %} -{% include code-snippet/multicolumn-combobox/action-begin/index.js %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multicolumn-combobox/action-begin/index.html %} -{% endhighlight %} -{% endtabs %} - -{% endif %} - -## actionFailure - -The [actionFailure](../api/multicolumn-combobox#actionfailure) event is triggered when the data fetch request from the remote server fails. - -{% if page.publishingplatform == "typescript" %} - -{% tabs %} -{% highlight ts tabtitle="index.ts" %} -{% include code-snippet/multicolumn-combobox/action-failure/index.ts %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multicolumn-combobox/action-failure/index.html %} -{% endhighlight %} -{% endtabs %} - -{% elsif page.publishingplatform == "javascript" %} - -{% tabs %} -{% highlight js tabtitle="index.js" %} -{% include code-snippet/multicolumn-combobox/action-failure/index.js %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multicolumn-combobox/action-failure/index.html %} -{% endhighlight %} -{% endtabs %} - -{% endif %} - -## actionComplete - -The [actionComplete](../api/multicolumn-combobox#actioncomplete) event is triggered when actions such as sorting, filtering, grouping are completed. - -{% if page.publishingplatform == "typescript" %} - -{% tabs %} -{% highlight ts tabtitle="index.ts" %} -{% include code-snippet/multicolumn-combobox/action-complete/index.ts %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multicolumn-combobox/action-complete/index.html %} -{% endhighlight %} -{% endtabs %} - -{% elsif page.publishingplatform == "javascript" %} - -{% tabs %} -{% highlight js tabtitle="index.js" %} -{% include code-snippet/multicolumn-combobox/action-complete/index.js %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multicolumn-combobox/action-complete/index.html %} -{% endhighlight %} -{% endtabs %} - -{% endif %} - -## select - -The [select](../api/multicolumn-combobox#select) event is triggered when the popup item is selected. - -{% if page.publishingplatform == "typescript" %} - -{% tabs %} -{% highlight ts tabtitle="index.ts" %} -{% include code-snippet/multicolumn-combobox/select-event/index.ts %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multicolumn-combobox/select-event/index.html %} -{% endhighlight %} -{% endtabs %} - -{% elsif page.publishingplatform == "javascript" %} - -{% tabs %} -{% highlight js tabtitle="index.js" %} -{% include code-snippet/multicolumn-combobox/select-event/index.js %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multicolumn-combobox/select-event/index.html %} -{% endhighlight %} -{% endtabs %} - -{% endif %} - -## change - -The [change](../api/multicolumn-combobox#change) event is triggered when the popup item is selected or when the model value is changed. - -{% if page.publishingplatform == "typescript" %} - -{% tabs %} -{% highlight ts tabtitle="index.ts" %} -{% include code-snippet/multicolumn-combobox/change-event/index.ts %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multicolumn-combobox/change-event/index.html %} -{% endhighlight %} -{% endtabs %} - -{% elsif page.publishingplatform == "javascript" %} - -{% tabs %} -{% highlight js tabtitle="index.js" %} -{% include code-snippet/multicolumn-combobox/change-event/index.js %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multicolumn-combobox/change-event/index.html %} -{% endhighlight %} -{% endtabs %} - -{% endif %} - -## filtering - -The [filtering](../api/multicolumn-combobox#filtering) event is triggered when typing a character in the component. - -{% if page.publishingplatform == "typescript" %} - -{% tabs %} -{% highlight ts tabtitle="index.ts" %} -{% include code-snippet/multicolumn-combobox/filtering-event/index.ts %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multicolumn-combobox/filtering-event/index.html %} -{% endhighlight %} -{% endtabs %} - -{% elsif page.publishingplatform == "javascript" %} - -{% tabs %} -{% highlight js tabtitle="index.js" %} -{% include code-snippet/multicolumn-combobox/filtering-event/index.js %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multicolumn-combobox/filtering-event/index.html %} -{% endhighlight %} -{% endtabs %} - -{% endif %} - -## open - -The [open](../api/multicolumn-combobox#open) event is triggered when the popup is opened. - -{% if page.publishingplatform == "typescript" %} - -{% tabs %} -{% highlight ts tabtitle="index.ts" %} -{% include code-snippet/multicolumn-combobox/open-event/index.ts %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multicolumn-combobox/open-event/index.html %} -{% endhighlight %} -{% endtabs %} - -{% elsif page.publishingplatform == "javascript" %} - -{% tabs %} -{% highlight js tabtitle="index.js" %} -{% include code-snippet/multicolumn-combobox/open-event/index.js %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multicolumn-combobox/open-event/index.html %} -{% endhighlight %} -{% endtabs %} - -{% endif %} - -## close - -The [close](../api/multicolumn-combobox#close) event is triggered when the popup is closed. - -{% if page.publishingplatform == "typescript" %} - -{% tabs %} -{% highlight ts tabtitle="index.ts" %} -{% include code-snippet/multicolumn-combobox/close-event/index.ts %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multicolumn-combobox/close-event/index.html %} -{% endhighlight %} -{% endtabs %} - -{% elsif page.publishingplatform == "javascript" %} - -{% tabs %} -{% highlight js tabtitle="index.js" %} -{% include code-snippet/multicolumn-combobox/close-event/index.js %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multicolumn-combobox/close-event/index.html %} -{% endhighlight %} -{% endtabs %} - -{% endif %} \ No newline at end of file diff --git a/ej2-javascript/multicolumn-combobox/filtering.md b/ej2-javascript/multicolumn-combobox/filtering.md deleted file mode 100644 index 4bf5a085b..000000000 --- a/ej2-javascript/multicolumn-combobox/filtering.md +++ /dev/null @@ -1,47 +0,0 @@ ---- -layout: post -title: Filtering in ##Platform_Name## MultiColumn Combobox control | Syncfusion -description: Checkout and learn about Filtering with ##Platform_Name## MultiColumn Combobox control of Syncfusion Essential JS 2 and more. -platform: ej2-javascript -control: Filtering -publishingplatform: ##Platform_Name## -documentation: ug -domainurl: ##DomainURL## ---- - -# Filtering in ##Platform_Name## MultiColumn ComboBox control - -The MultiColumn ComboBox has built-in support to filter the data items, which allows users to filter the list of items based on their input. The filter operation starts as soon as you start typing characters in the component. The filtering can be disabled by setting the [allowFiltering](../api/multicolumn-combobox#allowfiltering) to `false`. By default the value is `true`. - -## Change the filter type - -You can change the filter type by using the [filterType](../api/multicolumn-combobox#filtertype) property. The `filterType` supports filtering options such as`StartsWith`, `EndsWith` and `Contains`. - -In the following example, data filtering is done with `EndsWith` type. - -{% if page.publishingplatform == "typescript" %} - -{% tabs %} -{% highlight ts tabtitle="index.ts" %} -{% include code-snippet/multicolumn-combobox/filtering/index.ts %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multicolumn-combobox/filtering/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multicolumn-combobox/filtering" %} - -{% elsif page.publishingplatform == "javascript" %} - -{% tabs %} -{% highlight js tabtitle="index.js" %} -{% include code-snippet/multicolumn-combobox/filtering/index.js %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multicolumn-combobox/filtering/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multicolumn-combobox/filtering" %} -{% endif %} diff --git a/ej2-javascript/multicolumn-combobox/grouping.md b/ej2-javascript/multicolumn-combobox/grouping.md deleted file mode 100644 index 3e914fa18..000000000 --- a/ej2-javascript/multicolumn-combobox/grouping.md +++ /dev/null @@ -1,43 +0,0 @@ ---- -layout: post -title: Grouping in ##Platform_Name## MultiColumn Combobox control | Syncfusion -description: Checkout and learn about Grouping in ##Platform_Name## MultiColumn Combobox control of Syncfusion Essential JS 2 and more. -platform: ej2-javascript -control: Grouping -publishingplatform: ##Platform_Name## -documentation: ug -domainurl: ##DomainURL## ---- - -# Grouping in ##Platform_Name## MultiColumn ComboBox control - -The MultiColumn ComboBox supports wrapping nested elements into a group based on different categories by using the [groupBy](../api/multicolumn-combobox/fieldSettings/#groupby) property. The category of each list item can be mapped through the groupBy field in the data table. The group header are displayed as fixed headers. The fixed group header content is updated dynamically on scrolling the popup list with its category value. - -In the following sample, countries are grouped according on its category using `groupBy` field. - -{% if page.publishingplatform == "typescript" %} - -{% tabs %} -{% highlight ts tabtitle="index.ts" %} -{% include code-snippet/multicolumn-combobox/groupby/index.ts %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multicolumn-combobox/groupby/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multicolumn-combobox/groupby" %} - -{% elsif page.publishingplatform == "javascript" %} - -{% tabs %} -{% highlight js tabtitle="index.js" %} -{% include code-snippet/multicolumn-combobox/groupby/index.js %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multicolumn-combobox/groupby/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multicolumn-combobox/groupby" %} -{% endif %} \ No newline at end of file diff --git a/ej2-javascript/multicolumn-combobox/items.md b/ej2-javascript/multicolumn-combobox/items.md deleted file mode 100644 index 207be99c4..000000000 --- a/ej2-javascript/multicolumn-combobox/items.md +++ /dev/null @@ -1,561 +0,0 @@ ---- -layout: post -title: Items in ##Platform_Name## MultiColumn Combobox control | Syncfusion -description: Checkout and learn about items in ##Platform_Name## MultiColumn Combobox control of Syncfusion Essential JS 2 and more. -platform: ej2-javascript -control: Items -publishingplatform: ##Platform_Name## -documentation: ug -domainurl: ##DomainURL## ---- - -# Items in ##Platform_Name## MultiColumn ComboBox control - -## Setting text - -You can use [text](../api/multicolumn-combobox#text) property to set the display text of the selected item. - -{% if page.publishingplatform == "typescript" %} - -{% tabs %} -{% highlight ts tabtitle="index.ts" %} -{% include code-snippet/multicolumn-combobox/text/index.ts %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multicolumn-combobox/text/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multicolumn-combobox/text" %} - -{% elsif page.publishingplatform == "javascript" %} - -{% tabs %} -{% highlight js tabtitle="index.js" %} -{% include code-snippet/multicolumn-combobox/text/index.js %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multicolumn-combobox/text/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multicolumn-combobox/text" %} -{% endif %} - -## Setting value - -You can use [value](../api/multicolumn-combobox#value) property to set the value of the selected item. - -{% if page.publishingplatform == "typescript" %} - -{% tabs %} -{% highlight ts tabtitle="index.ts" %} -{% include code-snippet/multicolumn-combobox/value/index.ts %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multicolumn-combobox/value/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multicolumn-combobox/value" %} - -{% elsif page.publishingplatform == "javascript" %} - -{% tabs %} -{% highlight js tabtitle="index.js" %} -{% include code-snippet/multicolumn-combobox/value/index.js %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multicolumn-combobox/value/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multicolumn-combobox/value" %} -{% endif %} - -## Setting index - -You can use [index](../api/multicolumn-combobox#index) property to set the index of the selected item. - -{% if page.publishingplatform == "typescript" %} - -{% tabs %} -{% highlight ts tabtitle="index.ts" %} -{% include code-snippet/multicolumn-combobox/index/index.ts %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multicolumn-combobox/index/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multicolumn-combobox/index" %} - -{% elsif page.publishingplatform == "javascript" %} - -{% tabs %} -{% highlight js tabtitle="index.js" %} -{% include code-snippet/multicolumn-combobox/index/index.js %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multicolumn-combobox/index/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multicolumn-combobox/index" %} -{% endif %} - -## Adding query - -The [query](../api/multicolumn-combobox#query) property is used to accept the external query, which will execute along with the data processing. - -{% if page.publishingplatform == "typescript" %} - -{% tabs %} -{% highlight ts tabtitle="index.ts" %} -{% include code-snippet/multicolumn-combobox/query/index.ts %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multicolumn-combobox/query/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multicolumn-combobox/query" %} - -{% elsif page.publishingplatform == "javascript" %} - -{% tabs %} -{% highlight js tabtitle="index.js" %} -{% include code-snippet/multicolumn-combobox/query/index.js %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multicolumn-combobox/query/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multicolumn-combobox/query" %} -{% endif %} - -## Adding placeholder - -You can use the [placeholder](../api/multicolumn-combobox#placeholder) property to set a short hint that describes the expected value in the multicolumn combobox control. - -{% if page.publishingplatform == "typescript" %} - -{% tabs %} -{% highlight ts tabtitle="index.ts" %} -{% include code-snippet/multicolumn-combobox/placeholder/index.ts %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multicolumn-combobox/placeholder/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multicolumn-combobox/placeholder" %} - -{% elsif page.publishingplatform == "javascript" %} - -{% tabs %} -{% highlight js tabtitle="index.js" %} -{% include code-snippet/multicolumn-combobox/placeholder/index.js %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multicolumn-combobox/placeholder/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multicolumn-combobox/placeholder" %} -{% endif %} - -## Setting the floatlabel type - -You can use the [floatLabelType](../api/multicolumn-combobox#floatlabeltype) property to display a floating label above the input element. This will work when a placeholder is used. - -You can change the `floatLabelType` type to `Never`, `Always`, `Auto`. - -* Never: The label will never float in the input when the placeholder is available. -* Always: The floating label will always float above the input. -* Auto: The floating label will float above the input after focusing or entering a value in the input. - -The following example shows the `floatLabelType` with `Auto` - -{% if page.publishingplatform == "typescript" %} - -{% tabs %} -{% highlight ts tabtitle="index.ts" %} -{% include code-snippet/multicolumn-combobox/floatlabel/index.ts %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multicolumn-combobox/floatlabel/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multicolumn-combobox/floatlabel" %} - -{% elsif page.publishingplatform == "javascript" %} - -{% tabs %} -{% highlight js tabtitle="index.js" %} -{% include code-snippet/multicolumn-combobox/floatlabel/index.js %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multicolumn-combobox/floatlabel/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multicolumn-combobox/floatlabel" %} -{% endif %} - -## Adding html attributes - -You can use the [htmlAttributes](../api/multicolumn-combobox#htmlattributes) property to add HTML attributes to the multicolumn combobox. - -{% if page.publishingplatform == "typescript" %} - -{% tabs %} -{% highlight ts tabtitle="index.ts" %} -{% include code-snippet/multicolumn-combobox/htmlattribute/index.ts %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multicolumn-combobox/htmlattribute/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multicolumn-combobox/htmlattribute" %} - -{% elsif page.publishingplatform == "javascript" %} - -{% tabs %} -{% highlight js tabtitle="index.js" %} -{% include code-snippet/multicolumn-combobox/htmlattribute/index.js %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multicolumn-combobox/htmlattribute/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multicolumn-combobox/htmlattribute" %} -{% endif %} - -## Setting width - -You can use the [width](../api/multicolumn-combobox#width) property to set the width of the control. By default, the width is determined by the width of its parent container. - -{% if page.publishingplatform == "typescript" %} - -{% tabs %} -{% highlight ts tabtitle="index.ts" %} -{% include code-snippet/multicolumn-combobox/width/index.ts %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multicolumn-combobox/width/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multicolumn-combobox/width" %} - -{% elsif page.publishingplatform == "javascript" %} - -{% tabs %} -{% highlight js tabtitle="index.js" %} -{% include code-snippet/multicolumn-combobox/width/index.js %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multicolumn-combobox/width/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multicolumn-combobox/width" %} -{% endif %} - -## Setting popup width - -You can use the [popupWidth](../api/multicolumn-combobox#popupwidth) property to set the width of the popup list. By default, the popup width is determined by the width of the control. - -{% if page.publishingplatform == "typescript" %} - -{% tabs %} -{% highlight ts tabtitle="index.ts" %} -{% include code-snippet/multicolumn-combobox/popup-width/index.ts %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multicolumn-combobox/popup-width/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multicolumn-combobox/popup-width" %} - -{% elsif page.publishingplatform == "javascript" %} - -{% tabs %} -{% highlight js tabtitle="index.js" %} -{% include code-snippet/multicolumn-combobox/popup-width/index.js %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multicolumn-combobox/popup-width/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multicolumn-combobox/popup-width" %} -{% endif %} - -## Setting popup height - -You can use the [popupHeight](../api/multicolumn-combobox#popupheight) property to set the height of the popup list. By default, the value is `300px`. - -{% if page.publishingplatform == "typescript" %} - -{% tabs %} -{% highlight ts tabtitle="index.ts" %} -{% include code-snippet/multicolumn-combobox/popup-height/index.ts %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multicolumn-combobox/popup-height/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multicolumn-combobox/popup-height" %} - -{% elsif page.publishingplatform == "javascript" %} - -{% tabs %} -{% highlight js tabtitle="index.js" %} -{% include code-snippet/multicolumn-combobox/popup-height/index.js %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multicolumn-combobox/popup-height/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multicolumn-combobox/popup-height" %} -{% endif %} - -## Adding clear button - -The [showClearButton](../api/multicolumn-combobox#showclearbutton) property is used to specify whether to show or hide the clear button. By default, its value is `false`. When the clear button is clicked, the value, text and index properties are reset to null. - -{% if page.publishingplatform == "typescript" %} - -{% tabs %} -{% highlight ts tabtitle="index.ts" %} -{% include code-snippet/multicolumn-combobox/clear-button/index.ts %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multicolumn-combobox/clear-button/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multicolumn-combobox/clear-button" %} - -{% elsif page.publishingplatform == "javascript" %} - -{% tabs %} -{% highlight js tabtitle="index.js" %} -{% include code-snippet/multicolumn-combobox/clear-button/index.js %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multicolumn-combobox/clear-button/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multicolumn-combobox/clear-button" %} -{% endif %} - -## CssClass - -You can use the [cssClass](../api/multicolumn-combobox#cssclass) property to customize the multicolumn combobox control. - -{% if page.publishingplatform == "typescript" %} - -{% tabs %} -{% highlight ts tabtitle="index.ts" %} -{% include code-snippet/multicolumn-combobox/cssclass/index.ts %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multicolumn-combobox/cssclass/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multicolumn-combobox/cssclass" %} - -{% elsif page.publishingplatform == "javascript" %} - -{% tabs %} -{% highlight js tabtitle="index.js" %} -{% include code-snippet/multicolumn-combobox/cssclass/index.js %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multicolumn-combobox/cssclass/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multicolumn-combobox/cssclass" %} -{% endif %} - -## Disabled - -The [disabled](../api/multicolumn-combobox#disabled) property is used to disable the multicolumn combobox. By default, its value is `false`. - -{% if page.publishingplatform == "typescript" %} - -{% tabs %} -{% highlight ts tabtitle="index.ts" %} -{% include code-snippet/multicolumn-combobox/disabled/index.ts %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multicolumn-combobox/disabled/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multicolumn-combobox/disabled" %} - -{% elsif page.publishingplatform == "javascript" %} - -{% tabs %} -{% highlight js tabtitle="index.js" %} -{% include code-snippet/multicolumn-combobox/disabled/index.js %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multicolumn-combobox/disabled/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multicolumn-combobox/disabled" %} -{% endif %} - -## Setting read only - -You can use [readonly](../api/multicolumn-combobox#readonly) property to disable the user interactions in the multicolumn combobox control. - -{% if page.publishingplatform == "typescript" %} - -{% tabs %} -{% highlight ts tabtitle="index.ts" %} -{% include code-snippet/multicolumn-combobox/readonly/index.ts %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multicolumn-combobox/readonly/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multicolumn-combobox/readonly" %} - -{% elsif page.publishingplatform == "javascript" %} - -{% tabs %} -{% highlight js tabtitle="index.js" %} -{% include code-snippet/multicolumn-combobox/readonly/index.js %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multicolumn-combobox/readonly/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multicolumn-combobox/readonly" %} -{% endif %} - -## Configure grid settings - -You can use the [gridSettings](../api/multicolumn-combobox#gridsettings) property to configure the columns in the popup content. You can customize the gridSettings by using [gridSettingsModel](../api/multicolumn-combobox/gridSettingsModel/), which provides options such as `gridLines`, `rowHeight` and `enableAltRow`. - -### Setting grid lines - -You can use [gridLines](../api/multicolumn-combobox/gridSettingsModel/#gridlines) property to set the mode of the gridlines. You can set `Horizontal`, `Vertical`, `Default`, `None` and `Both`. - -* Both: Displays both horizontal and vertical grid lines. -* None: No grid lines are displayed. -* Horizontal: Displays the horizontal grid lines only. -* Vertical: Displays the vertical grid lines only. -* Default: Displays grid lines based on the theme. - -In the following examples, gridLines is set with `Horizontal`. - -{% if page.publishingplatform == "typescript" %} - -{% tabs %} -{% highlight ts tabtitle="index.ts" %} -{% include code-snippet/multicolumn-combobox/grid-lines/index.ts %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multicolumn-combobox/grid-lines/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multicolumn-combobox/grid-lines" %} - -{% elsif page.publishingplatform == "javascript" %} - -{% tabs %} -{% highlight js tabtitle="index.js" %} -{% include code-snippet/multicolumn-combobox/grid-lines/index.js %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multicolumn-combobox/grid-lines/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multicolumn-combobox/grid-lines" %} -{% endif %} - - -### Setting row height - -You can use [rowHeight](../api/multicolumn-combobox/gridSettingsModel/#rowheight) property to set the height of the rows in the popup content. - -{% if page.publishingplatform == "typescript" %} - -{% tabs %} -{% highlight ts tabtitle="index.ts" %} -{% include code-snippet/multicolumn-combobox/grid-rowheight/index.ts %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multicolumn-combobox/grid-rowheight/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multicolumn-combobox/grid-rowheight" %} - -{% elsif page.publishingplatform == "javascript" %} - -{% tabs %} -{% highlight js tabtitle="index.js" %} -{% include code-snippet/multicolumn-combobox/grid-rowheight/index.js %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multicolumn-combobox/grid-rowheight/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multicolumn-combobox/grid-rowheight" %} -{% endif %} - - -### Setting alternate rows - -You can use the [enableAltRow](../api/multicolumn-combobox/gridSettingsModel/#enablealtrow) property to enable the alternate row styles in the multicolumn combobox. If enabled, it will add the `e-altrow` CSS class to the list of items in the popup. - -{% if page.publishingplatform == "typescript" %} - -{% tabs %} -{% highlight ts tabtitle="index.ts" %} -{% include code-snippet/multicolumn-combobox/grid-altrow/index.ts %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multicolumn-combobox/grid-altrow/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multicolumn-combobox/grid-altrow" %} - -{% elsif page.publishingplatform == "javascript" %} - -{% tabs %} -{% highlight js tabtitle="index.js" %} -{% include code-snippet/multicolumn-combobox/grid-altrow/index.js %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multicolumn-combobox/grid-altrow/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multicolumn-combobox/grid-altrow" %} -{% endif %} \ No newline at end of file diff --git a/ej2-javascript/multicolumn-combobox/js/es5-getting-started.md b/ej2-javascript/multicolumn-combobox/js/es5-getting-started.md deleted file mode 100644 index 9df58b7ba..000000000 --- a/ej2-javascript/multicolumn-combobox/js/es5-getting-started.md +++ /dev/null @@ -1,245 +0,0 @@ ---- -layout: post -title: Es5 getting started with ##Platform_Name## MultiColumn ComboBox control | Syncfusion -description: Checkout and learn about Es5 getting started with ##Platform_Name## MultiColumn ComboBox control of Syncfusion Essential JS 2 and more details. -platform: ej2-javascript -control: Es5 getting started -publishingplatform: ##Platform_Name## -documentation: ug -domainurl: ##DomainURL## ---- - -# Es5 getting started in ##Platform_Name## MultiColumn ComboBox control - -The Essential JS 2 for JavaScript (global script) is an ES5 formatted pure JavaScript framework which can be directly used in latest web browsers. - -## Dependencies - -The following list of dependencies are required to use the `MultiColumn ComboBox` component in your application. - -```javascript -|-- @syncfusion/ej2-multicolumn-combobox - |-- @syncfusion/ej2-base - |-- @syncfusion/ej2-data - |-- @syncfusion/ej2-grids - |-- @syncfusion/ej2-lists - |-- @syncfusion/ej2-inputs - |-- @syncfusion/ej2-navigations - |-- @syncfusion/ej2-popups - |-- @syncfusion/ej2-buttons -``` - -## Component Initialization - -The Essential JS 2 JavaScript components can be initialized by using either of the following ways. - -* Using local script and style references in a HTML page. -* Using CDN link for script and style reference. - -### Using local script and style references in a HTML page - -**Step 1:** Create an app folder `myapp` for Essential JS 2 JavaScript components. - -**Step 2:** You can get the global scripts and styles from the [Essential Studio JavaScript (Essential JS 2)](https://www.syncfusion.com/downloads/essential-js2) build installed location. - -**Syntax:** -> Script: `**(installed location)**/Syncfusion/Essential Studio/{RELEASE_VERSION}/Essential JS 2/{PACKAGE_NAME}/dist/global/{PACKAGE_NAME}.min.js` -> -> Styles: `**(installed location)**/Syncfusion/Essential Studio/{RELEASE_VERSION}/Essential JS 2/{PACKAGE_NAME}/styles/material.css` - -**Example:** - -> Script: `C:/Program Files (x86)/Syncfusion/Essential Studio/15.4.30/Essential JS 2/ej2-multicolumn-combobox/dist/global/ej2-multicolumn-combobox.min.js` -> -> Styles: `C:/Program Files (x86)/Syncfusion/Essential Studio/15.4.30/Essential JS 2/ej2-multicolumn-combobox/styles/material.css` - -**Step 3:** Create a folder `myapp/resources` and copy/paste the global scripts and styles from the above installed location to `myapp/resources` location. - -**Step 4:** Create a HTML page (index.html) in `myapp` location and add the Essentials JS 2 script and style references. - -```html - - - - Essential JS 2 - - - - - - - - - - - - - - - - - - - - - - - -``` - -**Step 5:** Now, add the `input` element and initiate the `Essential JS 2 MultiColumn ComboBox` control in the `index.html` by using following code - -```html - - - - Essential JS 2 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -``` - -**Step 6:** Now, run the `index.html` in web browser, it will render the **Essential JS 2 MultiColumn ComboBox** control. - -### Using CDN link for script and style reference - -**Step 1:** Create an app folder `myapp` for the Essential JS 2 JavaScript components. - -**Step 2:** The Essential JS 2 component's global scripts and styles are already hosted in the below CDN link formats. - -**Syntax:** -> Script: `http://cdn.syncfusion.com/ej2/{PACKAGE_NAME}/dist/global/{PACKAGE_NAME}.min.js` -> -> Styles: `http://cdn.syncfusion.com/ej2/{PACKAGE_NAME}/styles/material.css` - -**Example:** -> Script: [`http://cdn.syncfusion.com/ej2/ej2-dropdowns/dist/global/ej2-multicolumn-combobox.min.js`](http://cdn.syncfusion.com/ej2/ej2-dropdowns/dist/global/ej2-multicolumn-combobox.min.js) -> -> Styles: [`http://cdn.syncfusion.com/ej2/ej2-dropdowns/styles/material.css`](http://cdn.syncfusion.com/ej2/ej2-multicolumn-combobox/styles/material.css) - -**Step 3:** Create a HTML page (index.html) in `myapp` location and add the CDN link references. Now, add the `input` element and initiate the `Essential JS 2 MultiColumn ComboBox` control in the index.html by using following code. - -{% tabs %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multicolumn-combobox/es5-getting-started-cs1/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multicolumn-combobox/es5-getting-started-cs1" %} - -**Step 4:** Now, run the `index.html` in web browser, it will render the `Essential JS 2 MultiColumn ComboBox` control. - -## Binding data source with fields and columns - -After initializing, populate the MultiColumn ComboBox with data by using the [dataSource](../api/multicolumn-combobox#datasource) property, to map the data for each specified columns use the [columns](../api/multicolumn-combobox#columns) property and the [fields](../api/multicolumn-combobox#fields) property to map the data fields from the dataSource. - -Here an array of object values is passed to the MultiColumn ComboBox control. - -```html - - - - Essential JS 2 - - - - - - - - - - - - - - - - - - - - - - - - -``` - -## Configure the popup list - -By default, the width of the popup list automatically adjusts according to the MultiColumn ComboBox input element's width, and the height of the popup list has `300px`. - -The height and width of the popup list can also be customized using the [popupHeight](../api/multicolumn-combobox#popupheight) and [popupWidth](../api/multicolumn-combobox#popupwidth) properties respectively. - -In the following sample, popup list's width and height are configured. - -{% tabs %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multicolumn-combobox/es5-getting-started-cs2/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multicolumn-combobox/es5-getting-started-cs2" %} \ No newline at end of file diff --git a/ej2-javascript/multicolumn-combobox/localization.md b/ej2-javascript/multicolumn-combobox/localization.md deleted file mode 100644 index 2adb47f67..000000000 --- a/ej2-javascript/multicolumn-combobox/localization.md +++ /dev/null @@ -1,51 +0,0 @@ ---- -layout: post -title: Localization in ##Platform_Name## MultiColumn Combobox control | Syncfusion -description: Checkout and learn about Localization in ##Platform_Name## MultiColumn Combobox control of Syncfusion Essential JS 2 and more. -platform: ej2-javascript -control: Localization -publishingplatform: ##Platform_Name## -documentation: ug -domainurl: ##DomainURL## ---- - -# Localization in ##Platform_Name## MultiColumn ComboBox control - -The Localization library allows you to localize static text content of the [noRecordsTemplate](../api/multicolumn-combobox#norecordstemplate) property according to the culture currently assigned to the MultiColumn ComboBox. - -| Locale key | en-US (default) | -|------|------| -| noRecordsTemplate | No records found | - -## Loading translations - -To load translation object to your application, use `load` function of **L10n** class. - -In the following sample, French culture is set to the MultiColumn ComboBox and no data is loaded. Hence, the noRecordsTemplate property displays its text in French culture. - -{% if page.publishingplatform == "typescript" %} - -{% tabs %} -{% highlight ts tabtitle="index.ts" %} -{% include code-snippet/multicolumn-combobox/localization/index.ts %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multicolumn-combobox/localization/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multicolumn-combobox/localization" %} - -{% elsif page.publishingplatform == "javascript" %} - -{% tabs %} -{% highlight js tabtitle="index.js" %} -{% include code-snippet/multicolumn-combobox/localization/index.js %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multicolumn-combobox/localization/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multicolumn-combobox/localization" %} -{% endif %} \ No newline at end of file diff --git a/ej2-javascript/multicolumn-combobox/sorting.md b/ej2-javascript/multicolumn-combobox/sorting.md deleted file mode 100644 index aac5264a4..000000000 --- a/ej2-javascript/multicolumn-combobox/sorting.md +++ /dev/null @@ -1,87 +0,0 @@ ---- -layout: post -title: Sorting in ##Platform_Name## MultiColumn Combobox control | Syncfusion -description: Checkout and learn about Sorting in ##Platform_Name## MultiColumn Combobox control of Syncfusion Essential JS 2 and more. -platform: ej2-javascript -control: Sorting -publishingplatform: ##Platform_Name## -documentation: ug -domainurl: ##DomainURL## ---- - -# Sorting in ##Platform_Name## MultiColumn ComboBox control - -The MultiColumn ComboBox control provides built-in support for sorting data-bound columns in ascending or descending order by using the [allowSorting](../api/multicolumn-combobox#allowsorting) property. By default, the value is `true`. - -To sort a particular column in the MultiColumn ComboBox, click on the grid column header in the popup. Each click on the header toggles the sorting order of the column between `Ascending` and `Descending`. - -## Setting the sort order - -You can use the [sortOrder](../api/multicolumn-combobox#sortorder) property to set the order of the column. It supports three types of sorting `None`, `Ascending` and `Descending`. - -When you click on a column header for the first time, it sorts the column in ascending order. Clicking the same column header again will sort the column in descending order. A repetitive third click on the same column header will clear the sorting. - -In the following examples, data sorting is done with `Descending` order. - -{% if page.publishingplatform == "typescript" %} - -{% tabs %} -{% highlight ts tabtitle="index.ts" %} -{% include code-snippet/multicolumn-combobox/sorting-order/index.ts %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multicolumn-combobox/sorting-order/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multicolumn-combobox/sorting-order" %} - -{% elsif page.publishingplatform == "javascript" %} - -{% tabs %} -{% highlight js tabtitle="index.js" %} -{% include code-snippet/multicolumn-combobox/sorting-order/index.js %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multicolumn-combobox/sorting-order/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multicolumn-combobox/sorting-order" %} -{% endif %} - - -## Sort type - -You can use the [sortType](../api/multicolumn-combobox#sorttype) property to set the type of sorting applied to the columns. It supports tow types `OneColumn` and `MultipleColumns`. By default the `sortType` is oneColumn. - -To sort multiple columns press and hold the CTRL key and click on the column headers. This feature is useful when you want to sort your data based on multiple criteria to analyze it in various ways. - -In the following examples, data sorting type is set with `MultipleColumns`. - -{% if page.publishingplatform == "typescript" %} - -{% tabs %} -{% highlight ts tabtitle="index.ts" %} -{% include code-snippet/multicolumn-combobox/sorting-type/index.ts %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multicolumn-combobox/sorting-type/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multicolumn-combobox/sorting-type" %} - -{% elsif page.publishingplatform == "javascript" %} - -{% tabs %} -{% highlight js tabtitle="index.js" %} -{% include code-snippet/multicolumn-combobox/sorting-type/index.js %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multicolumn-combobox/sorting-type/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multicolumn-combobox/sorting-type" %} -{% endif %} \ No newline at end of file diff --git a/ej2-javascript/multicolumn-combobox/templates.md b/ej2-javascript/multicolumn-combobox/templates.md deleted file mode 100644 index 41f5e14fa..000000000 --- a/ej2-javascript/multicolumn-combobox/templates.md +++ /dev/null @@ -1,200 +0,0 @@ ---- -layout: post -title: Templates in ##Platform_Name## MultiColumn Combobox control | Syncfusion -description: Checkout and learn about templates with ##Platform_Name## MultiColumn Combobox control of Syncfusion Essential JS 2 and more. -platform: ej2-javascript -control: Templates -publishingplatform: ##Platform_Name## -documentation: ug -domainurl: ##DomainURL## ---- - -# Templates in ##Platform_Name## MultiColumn ComboBox control - -The MultiColumn ComboBox provides several template options to customize each items, groups, header and footer elements. - -## Item template - -You can use the [itemTemplate](../api/multicolumn-combobox#itemtemplate) property to customize each list item within the MultiColumn ComboBox. - -{% if page.publishingplatform == "typescript" %} - -{% tabs %} -{% highlight ts tabtitle="index.ts" %} -{% include code-snippet/multicolumn-combobox/item-template/index.ts %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multicolumn-combobox/item-template/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multicolumn-combobox/item-template" %} - -{% elsif page.publishingplatform == "javascript" %} - -{% tabs %} -{% highlight js tabtitle="index.js" %} -{% include code-snippet/multicolumn-combobox/item-template/index.js %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multicolumn-combobox/item-template/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multicolumn-combobox/item-template" %} -{% endif %} - -## Header template - -You can add a custom element as a header element by using the [headerTemplate](../api/multicolumn-combobox/column/#headertemplate) property. - -{% if page.publishingplatform == "typescript" %} - -{% tabs %} -{% highlight ts tabtitle="index.ts" %} -{% include code-snippet/multicolumn-combobox/header-template/index.ts %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multicolumn-combobox/header-template/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multicolumn-combobox/header-template" %} - -{% elsif page.publishingplatform == "javascript" %} - -{% tabs %} -{% highlight js tabtitle="index.js" %} -{% include code-snippet/multicolumn-combobox/header-template/index.js %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multicolumn-combobox/header-template/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multicolumn-combobox/header-template" %} -{% endif %} - -## Group template - -You can use the [groupTemplate](../api/multicolumn-combobox#grouptemplate) property to customize the group header in the popup list. - -{% if page.publishingplatform == "typescript" %} - -{% tabs %} -{% highlight ts tabtitle="index.ts" %} -{% include code-snippet/multicolumn-combobox/group-template/index.ts %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multicolumn-combobox/group-template/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multicolumn-combobox/group-template" %} - -{% elsif page.publishingplatform == "javascript" %} - -{% tabs %} -{% highlight js tabtitle="index.js" %} -{% include code-snippet/multicolumn-combobox/group-template/index.js %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multicolumn-combobox/group-template/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multicolumn-combobox/group-template" %} -{% endif %} - -## Footer template - -You can add a custom element as a footer element by using the [footerTemplate](../api/multicolumn-combobox#footertemplate) property. - -{% if page.publishingplatform == "typescript" %} - -{% tabs %} -{% highlight ts tabtitle="index.ts" %} -{% include code-snippet/multicolumn-combobox/footer-template/index.ts %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multicolumn-combobox/footer-template/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multicolumn-combobox/footer-template" %} - -{% elsif page.publishingplatform == "javascript" %} - -{% tabs %} -{% highlight js tabtitle="index.js" %} -{% include code-snippet/multicolumn-combobox/footer-template/index.js %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multicolumn-combobox/footer-template/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multicolumn-combobox/footer-template" %} -{% endif %} - -## No records template - -You can customize the popup list for when no data is found or no matches are found by using the [noRecordsTemplate](../api/multicolumn-combobox#norecordstemplate) property. - -{% if page.publishingplatform == "typescript" %} - -{% tabs %} -{% highlight ts tabtitle="index.ts" %} -{% include code-snippet/multicolumn-combobox/norecord-template/index.ts %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multicolumn-combobox/norecord-template/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multicolumn-combobox/norecord-template" %} - -{% elsif page.publishingplatform == "javascript" %} - -{% tabs %} -{% highlight js tabtitle="index.js" %} -{% include code-snippet/multicolumn-combobox/norecord-template/index.js %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multicolumn-combobox/norecord-template/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multicolumn-combobox/norecord-template" %} -{% endif %} - -## Action failure template - -There is also an option to custom design the popup list content when the data fetch request fails at the remote server. This can be achieved using the [actionFailureTemplate](../api/multicolumn-combobox#actionfailuretemplate) property. - -{% if page.publishingplatform == "typescript" %} - -{% tabs %} -{% highlight ts tabtitle="index.ts" %} -{% include code-snippet/multicolumn-combobox/actionfailure-template/index.ts %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multicolumn-combobox/actionfailure-template/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multicolumn-combobox/actionfailure-template" %} - -{% elsif page.publishingplatform == "javascript" %} - -{% tabs %} -{% highlight js tabtitle="index.js" %} -{% include code-snippet/multicolumn-combobox/actionfailure-template/index.js %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multicolumn-combobox/actionfailure-template/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multicolumn-combobox/actionfailure-template" %} -{% endif %} \ No newline at end of file diff --git a/ej2-javascript/multicolumn-combobox/ts/getting-started.md b/ej2-javascript/multicolumn-combobox/ts/getting-started.md deleted file mode 100644 index d1b9637c3..000000000 --- a/ej2-javascript/multicolumn-combobox/ts/getting-started.md +++ /dev/null @@ -1,232 +0,0 @@ ---- -layout: post -title: Getting started with ##Platform_Name## MultiColumn ComboBox control | Syncfusion -description: Checkout and learn about Getting started with ##Platform_Name## MultiColumn ComboBox control of Syncfusion Essential JS 2 and more details. -platform: ej2-javascript -control: Getting started -publishingplatform: ##Platform_Name## -documentation: ug -domainurl: ##DomainURL## ---- - -# Getting started in ##Platform_Name## MultiColumn ComboBox control - -This section explains how to create a simple **MultiColumn ComboBox** control and configure its available functionalities in TypeScript, using Essential JS 2 [quickstart](https://github.com/SyncfusionExamples/ej2-quickstart-webpack) seed repository. - -> This application is integrated with the `webpack.config.js` configuration and uses the latest version of the [webpack-cli](https://webpack.js.org/api/cli/#commands). It requires node `v14.15.0` or higher. For more information about webpack and its features, refer to the [webpack documentation](https://webpack.js.org/guides/getting-started/). - -## Dependencies - -The following list of dependencies are required to use the `MultiColumn ComboBox` control in your application. - -```javascript -|-- @syncfusion/ej2-multicolumn-combobox - |-- @syncfusion/ej2-base - |-- @syncfusion/ej2-data - |-- @syncfusion/ej2-grids - |-- @syncfusion/ej2-lists - |-- @syncfusion/ej2-navigations - |-- @syncfusion/ej2-inputs - |-- @syncfusion/ej2-popups - |-- @syncfusion/ej2-buttons -``` - -## Set up development environment - -Open the command prompt from the required directory, and run the following command to clone the Syncfusion JavaScript (Essential JS 2) quickstart project from [GitHub](https://github.com/SyncfusionExamples/ej2-quickstart-webpack). - -{% tabs %} -{% highlight bash tabtitle="CMD" %} - -git clone https://github.com/SyncfusionExamples/ej2-quickstart-webpack- ej2-quickstart - -{% endhighlight %} -{% endtabs %} - -After cloning the application in the `ej2-quickstart` folder, run the following command line to navigate to the `ej2-quickstart` folder. - -{% tabs %} -{% highlight bash tabtitle="CMD" %} - -cd ej2-quickstart - -{% endhighlight %} -{% endtabs %} - -## Add Syncfusion JavaScript packages - -Syncfusion JavaScript (Essential JS 2) packages are available on the [npmjs.com](https://www.npmjs.com/~syncfusionorg) public registry. You can install all Syncfusion JavaScript (Essential JS 2) controls in a single [@syncfusion/ej2](https://www.npmjs.com/package/@syncfusion/ej2) package or individual packages for each control. - -The quickstart application is preconfigured with the dependent [@syncfusion/ej2](https://www.npmjs.com/package/@syncfusion/ej2) package in the `~/package.json` file. Use the following command to install the dependent npm packages from the command prompt. - -{% tabs %} -{% highlight bash tabtitle="NPM" %} - -npm install - -{% endhighlight %} -{% endtabs %} - -## Import the Syncfusion CSS styles - -To render MultiColumn ComboBox control, need to import dropdowns and its dependent components styles as given below in the `~/src/styles/styles.css` file, as shown below: - -{% tabs %} -{% highlight css tabtitle="style.css" %} - -@import '../../node_modules/@syncfusion/ej2-base/styles/material.css'; -@import '../../node_modules/@syncfusion/ej2-buttons/styles/material.css'; -@import '../../node_modules/@syncfusion/ej2-inputs/styles/material.css'; -@import '../../node_modules/@syncfusion/ej2-popups/styles/material.css'; -@import '../../node_modules/@syncfusion/ej2-lists/styles/material.css'; -@import '../../node_modules/@syncfusion/ej2-grids/styles/material.css'; -@import '../../node_modules/@syncfusion/ej2-multicolumn-combobox/styles/material.css'; - -{% endhighlight %} -{% endtabs %} - -## Initialize the MultiColumn ComboBox - -The MultiColumn ComboBox can be initialized through three different tags select, UL and input element. - -Add the HTML input element that needs to be initialized as MultiColumn ComboBox in `index.html`. - -`[src/index.html]` - -{% tabs %} -{% highlight html tabtitle="index.html" %} - - - - - - Essential JS 2 MultiColumn ComboBox control - - - - - - - - -
          - - -
          - - - - - -{% endhighlight %} -{% endtabs %} - -Now, import the MultiColumn ComboBox component to your `app.ts` and initialize it to the element `#multicolumn` as shown below. - -`[src/app/app.ts]` - -{% tabs %} -{% highlight ts tabtitle="app.ts" %} - -import { MultiColumnComboBox } from '@syncfusion/ej2-multicolumn-combobox'; - -// initialize MultiColumn ComboBox component -let multiComboBoxObject: MultiColumnComboBox = new MultiColumnComboBox(); - -// render initialized MultiColumn ComboBox -multiComboBoxObject.appendTo('#multicolumn'); - -{% endhighlight %} -{% endtabs %} - -## Binding data source with fields and columns - -After initializing, populate the MultiColumn ComboBox with data by using the [dataSource](../api/multicolumn-combobox#datasource) property, to map the data for each specified columns use the [columns](../api/multicolumn-combobox#columns) property and the [fields](../api/multicolumn-combobox#fields) property to map the data fields from the dataSource. - -Here an array of object values is passed to the MultiColumn ComboBox control. - -{% tabs %} -{% highlight ts tabtitle="app.ts" %} - -import { MultiColumnComboBox } from '@syncfusion/ej2-multicolumn-combobox'; - -// define the array of object data for datasource -let employeeData: {[key: string]: Object}[] = [ - { "EmpID": 1001, "Name": "Andrew Fuller", "Designation": "Team Lead", "Country": "England" }, - { "EmpID": 1002, "Name": "Robert", "Designation": "Developer", "Country": "USA" }, - { "EmpID": 1003, "Name": "John", "Designation": "Tester", "Country": "Germany" }, - { "EmpID": 1004, "Name": "Robert King", "Designation": "Product Manager", "Country": "India" }, - { "EmpID": 1005, "Name": "Steven Buchanan", "Designation": "Developer", "Country": "Italy" }, - { "EmpID": 1006, "Name": "Jane Smith", "Designation": "Developer", "Country": "Europe" }, - { "EmpID": 1007, "Name": "James Brown", "Designation": "Developer", "Country": "Australia" }, - { "EmpID": 1008, "Name": "Laura Callahan", "Designation": "Developer", "Country": "Africa" }, - { "EmpID": 1009, "Name": "Mario Pontes", "Designation": "Developer", "Country": "Russia" }, -]; - -// define the column values for data columns -let columnsData: ColumnModel[] = [ - { field: 'EmpID', header: 'Employee ID', width: 120 }, - { field: 'Name', width: 120, header: 'Name' }, - { field: 'Designation', header: 'Designation', width: 120 }, - { field: 'Country', header: 'Country', width: 100 } -]; - -// initialize MultiColumn ComboBox component -let multiComboBoxObject: MultiColumnComboBox = new MultiColumnComboBox({ - //set the data to dataSource property - dataSource: employeeData, - //set the column data to the columns property - columns: columnsData, - //set the fields of the multicolumn combobox - fields: { text: 'Name', value: 'EmpID' } -}); - -// render initialized MultiColumn ComboBox -multiComboBoxObject.appendTo('#multicolumn'); - -{% endhighlight %} -{% endtabs %} - -## Run the application - -After completing the configuration required to render a basic MultiColumn ComboBox, run the following command to display the output in your default browser. - -{% tabs %} -{% highlight bash tabtitle="NPM" %} - -npm run start - -{% endhighlight %} -{% endtabs %} - -The following example illustrates the output in your browser. - -{% tabs %} -{% highlight ts tabtitle="index.ts" %} -{% include code-snippet/multicolumn-combobox/getting-started-cs1/index.ts %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multicolumn-combobox/getting-started-cs1/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multicolumn-combobox/getting-started-cs1" %} - -## Configure the popup list - -By default, the width of the popup list automatically adjusts according to the MultiColumn ComboBox input element's width, and the height of the popup list has `300px`. - -The height and width of the popup list can also be customized using the [popupHeight](../api/multicolumn-combobox#popupheight) and [popupWidth](../api/multicolumn-combobox#popupwidth) properties respectively. - -In the following sample, popup list's width and height are configured. - -{% tabs %} -{% highlight ts tabtitle="index.ts" %} -{% include code-snippet/multicolumn-combobox/getting-started-cs2/index.ts %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multicolumn-combobox/getting-started-cs2/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multicolumn-combobox/getting-started-cs2" %} \ No newline at end of file diff --git a/ej2-javascript/multicolumn-combobox/virtualization.md b/ej2-javascript/multicolumn-combobox/virtualization.md deleted file mode 100644 index 189eeee0b..000000000 --- a/ej2-javascript/multicolumn-combobox/virtualization.md +++ /dev/null @@ -1,78 +0,0 @@ ---- -layout: post -title: Virtualization in ##Platform_Name## MultiColumn Combobox control | Syncfusion -description: Checkout and learn about Virtualization in ##Platform_Name## MultiColumn Combobox control of Syncfusion Essential JS 2 and more. -platform: ej2-javascript -control: Virtualization -publishingplatform: ##Platform_Name## -documentation: ug -domainurl: ##DomainURL## ---- - -# Virtualization in ##Platform_Name## MultiColumn ComboBox control - -MultiColumn ComboBox virtualization is a technique used to efficiently render extensive lists of items while minimizing the impact on performance. This method is particularly advantageous when dealing with large datasets because it ensures that only a fixed number of DOM (Document Object Model) elements are created. When scrolling through the list, existing DOM elements are reused to display relevant data instead of generating new elements for each item. This recycling process is managed internally. - -Enabling the [enableVirtualization](../api/multicolumn-combobox#enablevirtualization) property option in a MultiColumn ComboBox activates this virtualization technique. - -## Binding local data - -The MultiColumn Combobox can generate its list items through an object arrays of data. For this, the appropriate columns should be mapped to the [fields](../api/multicolumn-combobox#fields) property. When using virtual scrolling, the list updates based on the scroll offset value, triggering a request to fetch more data from the server. - -{% if page.publishingplatform == "typescript" %} - -{% tabs %} -{% highlight ts tabtitle="index.ts" %} -{% include code-snippet/multicolumn-combobox/virtualization/index.ts %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multicolumn-combobox/virtualization/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multicolumn-combobox/virtualization" %} - -{% elsif page.publishingplatform == "javascript" %} - -{% tabs %} -{% highlight js tabtitle="index.js" %} -{% include code-snippet/multicolumn-combobox/virtualization/index.js %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multicolumn-combobox/virtualization/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multicolumn-combobox/virtualization" %} -{% endif %} - -## Binding remote data - -The MultiColumn Combobox supports retrieval of data from remote data services with the help of `DataManager` component. When using remote data, it initially fetches all the data from the server and then stores the data locally. During virtual scrolling, additional data is retrieved from the locally stored data. - -{% if page.publishingplatform == "typescript" %} - -{% tabs %} -{% highlight ts tabtitle="index.ts" %} -{% include code-snippet/multicolumn-combobox/virtualization-remotedata/index.ts %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multicolumn-combobox/virtualization-remotedata/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multicolumn-combobox/virtualization-remotedata" %} - -{% elsif page.publishingplatform == "javascript" %} - -{% tabs %} -{% highlight js tabtitle="index.js" %} -{% include code-snippet/multicolumn-combobox/virtualization-remotedata/index.js %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/multicolumn-combobox/virtualization-remotedata/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/multicolumn-combobox/virtualization-remotedata" %} -{% endif %} \ No newline at end of file diff --git a/ej2-javascript/pdfviewer/how-to/add-annotation-in-text-search-js.md b/ej2-javascript/pdfviewer/how-to/add-annotation-in-text-search-js.md new file mode 100644 index 000000000..3bfb92c80 --- /dev/null +++ b/ej2-javascript/pdfviewer/how-to/add-annotation-in-text-search-js.md @@ -0,0 +1,84 @@ +--- +layout: post +title: Add Annotation in Text Search in JavaScript PdfViewer | Syncfusion +description: Learn how to add rectangle annotations using search text bounds in Syncfusion ##Platform_Name## Pdfviewer control of Syncfusion Essential JS 2 and more. +platform: ej2-javascript +control: PDF Viewer +publishingplatform: ##Platform_Name## +documentation: ug +domainurl: ##DomainURL## +--- + +# Add Rectangle Annotations Using Search Text Bounds in PDF Viewer + +## Overview + +This guide demonstrates how to add rectangle annotations based on the bounds of highlighted search text in the PDF Viewer. This technique is useful for emphasizing search results with visual markers in annotation-supported applications. + +## Steps to Add Rectangle Annotations on Search Result Highlight + +**Step 1:** Follow the steps provided in the [link](https://ej2.syncfusion.com/javascript/documentation/pdfviewer/getting-started) to create a simple PDF Viewer sample. + +**Step 2:** Initialize the PDF Viewer with Required Modules + +```js +var pdfviewer = new ej.pdfviewer.PdfViewer({ + documentPath: 'https://cdn.syncfusion.com/content/pdf/pdf-succinctly.pdf', + resourceUrl:'https://cdn.syncfusion.com/ej2/28.1.33/dist/ej2-pdfviewer-lib' +}); +ej.pdfviewer.PdfViewer.Inject(ej.pdfviewer.TextSelection, ej.pdfviewer.TextSearch, ej.pdfviewer.Print, ej.pdfviewer.Navigation, ej.pdfviewer.Toolbar, + ej.pdfviewer.Magnification, ej.pdfviewer.Annotation, ej.pdfviewer.FormDesigner, ej.pdfviewer.FormFields, ej.pdfviewer.PageOrganizer); +pdfviewer.appendTo('#PdfViewer'); +``` + +**Step 3:** Implement code blocks to automatically add Rectangle Annotation on Search Result Highlight + +Define a callback function for the `textSearchHighlight` event to add rectangle annotations + +```js +// Highlight event handler for text search, which adds a rectangle annotation where the text is found +pdfviewer.textSearchHighlight = function(args){ + console.log(args); + var pageNumber = args.pageNumber; + var bounds = args.bounds; + pdfviewer.annotation.addAnnotation("Rectangle", { + offset: {x: bounds.left, y: bounds.top}, + pageNumber: pageNumber, + width: bounds.width, + height: bounds.height, + }); +} +``` + +**Step 3:** Add Search Controls + +Ensure you have the appropriate HTML buttons for text search operations + +```html + + + +``` + +Use the following JavaScript to handle search controls: + +```js +// Event listener for initiating a search +document.getElementById("searchText").addEventListener("click", function() { + pdfviewer.textSearchModule.searchText('PDF', false); +}); + +// Event listener for navigating to the next search result +document.getElementById("searchNext").addEventListener("click", function() { + pdfviewer.textSearchModule.searchNext(); +}); + +// Event listener for canceling the current search +document.getElementById("searchCancel").addEventListener("click", function() { + pdfviewer.textSearchModule.cancelTextSearch(); +}); +``` + +By following this guide, you will enable the PDF Viewer to add rectangle annotations at search result locations, thus increasing the visibility of search results in your application. + +[View Sample in GitHub](https://github.com/SyncfusionExamples/javascript-pdf-viewer-examples/tree/master/How%20to/) diff --git a/ej2-javascript/pdfviewer/how-to/add-annotation-in-text-search-ts.md b/ej2-javascript/pdfviewer/how-to/add-annotation-in-text-search-ts.md new file mode 100644 index 000000000..52e43a5c1 --- /dev/null +++ b/ej2-javascript/pdfviewer/how-to/add-annotation-in-text-search-ts.md @@ -0,0 +1,99 @@ +--- +layout: post +title: Add Annotation in Text Search in TypeScript PdfViewer | Syncfusion +description: Learn how to add rectangle annotations using search text bounds in Syncfusion ##Platform_Name## Pdfviewer control of Syncfusion Essential JS 2 and more. +platform: ej2-javascript +control: PDF Viewer +publishingplatform: ##Platform_Name## +documentation: ug +domainurl: ##DomainURL## +--- + +# Add Rectangle Annotations Using Search Text Bounds in PDF Viewer + +## Overview + +This guide demonstrates how to add rectangle annotations based on the bounds of highlighted search text in the PDF Viewer. This technique is useful for emphasizing search results with visual markers in annotation-supported applications. + +## Steps to Add Rectangle Annotations on Search Result Highlight + +**Step 1:** Follow the steps provided in the [link](https://ej2.syncfusion.com/documentation/pdfviewer/getting-started) to create a simple PDF Viewer sample. + +**Step 2:** Initialize the PDF Viewer with Required Modules + +```ts +import { pdf } from '@syncfusion/ej2'; +import { PdfViewer, TextSelection, TextSearch, Print, Navigation, Toolbar, Magnification, Annotation, FormDesigner, FormFields, TextSearchHighlightEventArgs, RectangleBounds, RectangleBoundsModel, RectangleSettings } from '@syncfusion/ej2-pdfviewer'; + +// Inject required modules +PdfViewer.Inject(TextSelection, TextSearch, Print, Navigation, Toolbar, Magnification, Annotation, FormDesigner, FormFields); + +const pdfviewer: PdfViewer = new PdfViewer({ + documentPath: 'https://cdn.syncfusion.com/content/pdf/pdf-succinctly.pdf', + resourceUrl:'https://cdn.syncfusion.com/ej2/28.1.33/dist/ej2-pdfviewer-lib' +}); + +pdfviewer.appendTo('#PdfViewer'); +``` + +**Step 3:** Implement code blocks to automatically add Rectangle Annotation on Search Result Highlight + +Define a callback function for the `textSearchHighlight` event to add rectangle annotations + +```ts +// Highlight event handler for text search, which adds a rectangle annotation where the text is found +pdfviewer.textSearchHighlight = function(args: TextSearchHighlightEventArgs): void { + console.log(args); + const pageNumber: number = args.pageNumber; + const bounds: RectangleBoundsModel = args.bounds; + pdfviewer.annotation.addAnnotation('Rectangle', { + offset: { x: bounds.left, y: bounds.top }, + pageNumber: pageNumber, + width: bounds.width, + height: bounds.height, + } as RectangleSettings); +}; + +``` + +**Step 3:** Add Search Controls + +Ensure you have the appropriate HTML buttons for text search operations + +```html + + + +``` + +Use the following Typescript code snippet to handle search controls: + +```ts +// Add event listener to "searchText" button to trigger a search for the term 'PDF' +const searchTextButton = document.getElementById('searchText'); +if (searchTextButton) { + searchTextButton.addEventListener('click', function() { + pdfviewer.textSearchModule.searchText('PDF', false); + }); +} + +// Add event listener to "searchNext" button to navigate to the next search result +const searchNextButton = document.getElementById('searchNext'); +if (searchNextButton) { + searchNextButton.addEventListener('click', function() { + pdfviewer.textSearch.searchNext(); + }); +} + +// Add event listener to "searchCancel" button to cancel the current text search operation +const searchCancelButton = document.getElementById('searchCancel'); +if (searchCancelButton) { + searchCancelButton.addEventListener('click', function() { + pdfviewer.textSearch.cancelTextSearch(); + }); +} +``` + +By following this guide, you will enable the PDF Viewer to add rectangle annotations at search result locations, thus increasing the visibility of search results in your application. + +[View Sample in GitHub](https://github.com/SyncfusionExamples/typescript-pdf-viewer-examples/tree/master/How%20to/) diff --git a/ej2-javascript/pdfviewer/how-to/control-annotation-visibility-js.md b/ej2-javascript/pdfviewer/how-to/control-annotation-visibility-js.md new file mode 100644 index 000000000..64b412562 --- /dev/null +++ b/ej2-javascript/pdfviewer/how-to/control-annotation-visibility-js.md @@ -0,0 +1,123 @@ +--- +layout: post +title: Control Annotations Visibility in JavaScript PdfViewer | Syncfusion +description: Learn how to Control Annotations Visibility in the Syncfusion ##Platform_Name## Pdfviewer control of Syncfusion Essential JS 2 and more. +platform: ej2-javascript +control: PDF Viewer +publishingplatform: ##Platform_Name## +documentation: ug +domainurl: ##DomainURL## +--- + +# Control PDF Annotations Visibility in PDF Viewer + +### Overview + +This guide demonstrates how to control the visibility of PDF annotations in documents loaded and saved using the Syncfusion PDF Viewer in JavaScript. This process allows the annotations to be visible only in specific viewers, such as the Syncfusion PDF Viewer. + +### How to control Annotation Visibility + +**Step 1:** Follow the steps provided in the [link](https://ej2.syncfusion.com/documentation/pdfviewer/getting-started/) to create a simple PDF Viewer sample. + +**Step 2:** Add Buttons for Annotation Modification and Downloading + +Include buttons in your HTML for annotation modification and downloading the PDF. + +```html + +
          +``` +**Step 3**: Add the following code snippet to add annotations to the PDF document. You can also include other annotations as needed. + +```js +var pdfviewer = new ej.pdfviewer.PdfViewer({ + documentPath: 'https://cdn.syncfusion.com/content/pdf/annotations-v1.pdf', + resourceUrl: "https://cdn.syncfusion.com/ej2/28.1.33/dist/ej2-pdfviewer-lib", + }); + ej.pdfviewer.PdfViewer.Inject(ej.pdfviewer.TextSelection, ej.pdfviewer.TextSearch, ej.pdfviewer.Print, ej.pdfviewer.Navigation, ej.pdfviewer.Toolbar, + ej.pdfviewer.Magnification, ej.pdfviewer.Annotation, ej.pdfviewer.FormDesigner, ej.pdfviewer.FormFields, ej.pdfviewer.PageOrganizer); + pdfviewer.appendTo('#PdfViewer'); + pdfviewer.documentLoad= function(){ + //Code snippet to add basic annotations. You can also include other annotations as needed. + pdfviewer.annotation.addAnnotation("Highlight", { + bounds: [{x: 97, y: 610, width: 350, height: 14}], + pageNumber: 1 + }); + pdfviewer.annotation.addAnnotation("Underline", { + bounds: [{x: 97, y: 723, width: 353.5, height: 14}], + pageNumber: 1 + }); + pdfviewer.annotation.addAnnotation("Strikethrough", { + bounds: [{x: 97, y: 836, width: 376.5, height: 14}], + pageNumber: 1 + }); + }; +``` +**Step 4:** Add Event Listeners for Button Clicks + +Attach event listeners that handle annotation visibility modifications and downloading the document. + +```js + // Add event listener to the button with ID 'download' + document.getElementById('save').addEventListener('click', save); +``` + +**Step 5:** Modify Annotation Flags Function + +Implement a function that changes the annotation visibility settings for the document. + +```js + + // Function to get Base64 of the loaded document and modify annotation flags + function save() { + // Assuming pdfviewer is globally accessible or a part of another object + pdfviewer.saveAsBlob().then(blob => { + const reader = new FileReader(); + + reader.onload = function() { + let base64data = reader.result; + + // Extract base64 string from Data URL + const base64EncodedData = base64data.split('base64,')[1]; + + // Create a PdfDocument instance with base64 data + const document1 = new ej.pdf.PdfDocument(base64EncodedData); + + // Modify flag for each annotation + for (let i = 0; i < document1.pageCount; i++) { + const page = document1.getPage(i); + + for (let j = 0; j < page.annotations.count; j++) { + const annot = page.annotations.at(j); + + // Set flag to noView + annot.flags |= ej.pdf.PdfAnnotationFlag.noView; + } + } + + // Save modified document as a blob + document1.saveAsBlob().then(modifiedBlob => { + const internalReader = new FileReader(); + + internalReader.onload = function() { + const modifiedBase64 = internalReader.result; + + // Create a link to download the modified PDF + const downloadLink = document.createElement('a'); + downloadLink.href = modifiedBase64; + downloadLink.download = 'modified.pdf'; + downloadLink.click(); + }; + + internalReader.readAsDataURL(modifiedBlob.blobData); + }); + }; + + reader.readAsDataURL(blob); + }); +} +``` + +By following these steps, the annotations in a PDF document can be set to be visible in the Syncfusion PDF Viewer, providing control over annotation visibility based on different platforms. + +[View sample in GitHub](https://github.com/SyncfusionExamples/javascript-pdf-viewer-examples/tree/master/How%20to) \ No newline at end of file diff --git a/ej2-javascript/pdfviewer/how-to/control-annotation-visibility-ts.md b/ej2-javascript/pdfviewer/how-to/control-annotation-visibility-ts.md new file mode 100644 index 000000000..c73c78655 --- /dev/null +++ b/ej2-javascript/pdfviewer/how-to/control-annotation-visibility-ts.md @@ -0,0 +1,122 @@ +--- +layout: post +title: Control Annotations Visibility in TypeScript PdfViewer | Syncfusion +description: Learn how to control Annotations Visibility in the Syncfusion ##Platform_Name## Pdfviewer control of Syncfusion Essential JS 2 and more. +platform: ej2-javascript +control: PDF Viewer +publishingplatform: ##Platform_Name## +documentation: ug +domainurl: ##DomainURL## +--- + +# Control PDF Annotations Visibility in PDF Viewer + +### Overview + +This guide demonstrates how to control the visibility of PDF annotations in documents loaded and saved using the Syncfusion PDF Viewer in TypeScript. This process allows the annotations to be visible only in the Syncfusion PDF Viewer. + +### How to Control Annotation Visibility + +**Step 1:** Follow the steps provided in the [link](https://ej2.syncfusion.com/documentation/pdfviewer/getting-started/) to create a simple PDF Viewer sample. + +**Step 2:** Add Buttons for Annotation Modification and Downloading + +Include buttons in your HTML for annotation modification and downloading the PDF. + +```html + +
          +``` +**step 3**: Add the following code snippet to add annotations to the PDF document. You can also include other annotations as needed. + +```js +const viewer: PdfViewer = new PdfViewer({ + documentPath: 'https://cdn.syncfusion.com/content/pdf/annotations-v1.pdf', + resourceUrl: "https://cdn.syncfusion.com/ej2/28.1.33/dist/ej2-pdfviewer-lib", +}); + +// Append the PdfViewer to the DOM +viewer.appendTo('#PdfViewer'); + +viewer.documentLoad = function (args) { + //Code snippet to add basic annotations. You can also include other annotations as needed. + viewer.annotation.addAnnotation("Highlight", { + bounds: [{x: 97, y: 610, width: 350, height: 14}], + pageNumber: 1 + } as HighlightSettings); + viewer.annotation.addAnnotation("Underline", { + bounds: [{x: 97, y: 723, width: 353.5, height: 14}], + pageNumber: 1 + } as UnderlineSettings); + viewer.annotation.addAnnotation("Strikethrough", { + bounds: [{x: 97, y: 836, width: 376.5, height: 14}], + pageNumber: 1 + } as StrikethroughSettings); + } +``` +**Step 4:** Add Event Listeners for Button Clicks + +Attach event listeners that handle annotation visibility modifications and downloading the document. + +```js +// Add event listener to the button with ID 'download' +document.getElementById('save')?.addEventListener('click', save); +``` + +**Step 5:** Modify Annotation Flags Function + +Implement a function that changes the annotation visibility settings for the document. + +```js + +// Import PdfAnnotationFlag and PdfDocument from the Syncfusion PDF library. +import { PdfAnnotationFlag, PdfDocument } from '@syncfusion/ej2/pdf'; + +// Function to get Base64 of the loaded document and modify annotation flags +function save() { + // Assuming pdfviewer is globally accessible or a part of another object + viewer.saveAsBlob().then((blob: Blob) => { + const reader = new FileReader(); + reader.onload = function () { + let base64data = reader.result as string; + + // Extract base64 string from Data URL + const base64EncodedData = base64data.split('base64,')[1]; + + // Create a PdfDocument instance with base64 data + const document1 = new PdfDocument(base64EncodedData); + + // Modify flag for each annotation + for (let i = 0; i < document1.pageCount; i++) { + const page = document1.getPage(i); + for (let j = 0; j < page.annotations.count; j++) { + const annot = page.annotations.at(j); + // Set flag to noView + annot.flags |= PdfAnnotationFlag.noView; + } + } + + // Save modified document as a blob + document1.saveAsBlob().then((modifiedBlob: { blobData: Blob }) => { + const internalReader = new FileReader(); + internalReader.onload = function () { + const modifiedBase64 = internalReader.result as string; + + // Create a link to download the modified PDF + const downloadLink = document.createElement('a'); + downloadLink.href = modifiedBase64; + downloadLink.download = 'modified.pdf'; + downloadLink.click(); + }; + internalReader.readAsDataURL(modifiedBlob.blobData); + }); + }; + reader.readAsDataURL(blob); + }); +} + +``` + +By following these steps, the annotations in a PDF document can be set to be visible in the Syncfusion PDF Viewer, providing control over annotation visibility based on different platforms. + +[View sample in GitHub](https://github.com/SyncfusionExamples/typescript-pdf-viewer-examples/tree/master/How%20to) \ No newline at end of file diff --git a/ej2-javascript/pdfviewer/how-to/enable-local-storage-js.md b/ej2-javascript/pdfviewer/how-to/enable-local-storage-js.md new file mode 100644 index 000000000..130bad95d --- /dev/null +++ b/ej2-javascript/pdfviewer/how-to/enable-local-storage-js.md @@ -0,0 +1,42 @@ +--- +layout: post +title: Managing Local Storage in ##Platform_Name## Pdfviewer control | Syncfusion +description: Learn how to manage local storage in Syncfusion ##Platform_Name## Pdfviewer control of Syncfusion Essential JS 2 and more. +platform: ej2-javascript +control: PDF Viewer +publishingplatform: ##Platform_Name## +documentation: ug +domainurl: ##DomainURL## +--- + +# Managing Local Storage in Syncfusion PDF Viewer + +The Syncfusion PDF Viewer provides the `enableLocalStorage` property, which allows you to control how session-specific data is stored. You can choose to store this data in an internal collection or rely on the default session storage. + +### Using the enableLocalStorage Property + +Set the `enableLocalStorage` property to manage whether the PDF Viewer uses session storage (default) or an internal collection. When set to `true`, session-specific data is kept in memory. Otherwise, session storage is used. + +```js +var pdfviewer = new ej.pdfviewer.PdfViewer({ + documentPath: 'https://cdn.syncfusion.com/content/pdf/pdf-succinctly.pdf', + resourceUrl: "https://cdn.syncfusion.com/ej2/28.1.33/dist/ej2-pdfviewer-lib", +}); +ej.pdfviewer.PdfViewer.Inject(ej.pdfviewer.TextSelection, ej.pdfviewer.TextSearch, ej.pdfviewer.Print, ej.pdfviewer.Navigation, ej.pdfviewer.Toolbar, + ej.pdfviewer.Magnification, ej.pdfviewer.Annotation, ej.pdfviewer.FormDesigner, ej.pdfviewer.FormFields, ej.pdfviewer.PageOrganizer); + //To enable Local Storage + pdfviewer.enableLocalStorage=true; + pdfviewer.appendTo('#PdfViewer'); +``` + +### Impact and Considerations + +- **Increased Memory Usage**: Setting `enableLocalStorage` to `true` can increase memory usage, particularly with larger documents or those containing many interactive elements, such as form fields and annotations. +- **Avoiding Memory Leaks**: It is crucial to properly dispose of the PDF Viewer instance when it's no longer needed to prevent memory leaks, especially when using in-memory storage. +- **Default Behavior**: By default, this property is set to `false`, meaning the session storage mechanism is utilized unless explicitly changed. + +### Enhanced Control + +Leveraging the `enableLocalStorage` property provides greater flexibility in managing how data is stored during a session, allowing you to optimize performance and storage based on your application’s specific requirements. + +[View Sample in GitHub](https://github.com/SyncfusionExamples/javascript-pdf-viewer-examples/tree/master/How%20to) \ No newline at end of file diff --git a/ej2-javascript/pdfviewer/how-to/enable-local-storage-ts.md b/ej2-javascript/pdfviewer/how-to/enable-local-storage-ts.md new file mode 100644 index 000000000..9c36b9197 --- /dev/null +++ b/ej2-javascript/pdfviewer/how-to/enable-local-storage-ts.md @@ -0,0 +1,45 @@ +--- +layout: post +title: Managing Local Storage in ##Platform_Name## Pdfviewer control | Syncfusion +description: Learn how to manage local storage in Syncfusion ##Platform_Name## Pdfviewer control of Syncfusion Essential JS 2 and more. +platform: ej2-javascript +control: PDF Viewer +publishingplatform: ##Platform_Name## +documentation: ug +domainurl: ##DomainURL## +--- + +# Managing Local Storage in Syncfusion PDF Viewer + +The Syncfusion PDF Viewer provides the `enableLocalStorage` property, which allows you to control how session-specific data is stored. You can choose to store this data in an internal collection or rely on the default session storage. + +### Using the enableLocalStorage Property + +Set the `enableLocalStorage` property to manage whether the PDF Viewer uses session storage (default) or an internal collection. When set to `true`, session-specific data is kept in memory. Otherwise, session storage is used. + +```ts +import { pdf } from '@syncfusion/ej2'; +import { PdfViewer, TextSelection, TextSearch, Print, Navigation, Toolbar, Magnification, Annotation, FormDesigner, FormFields, PageInfoModel } from '@syncfusion/ej2-pdfviewer'; + +PdfViewer.Inject(TextSelection, TextSearch, Print, Navigation, Toolbar, Magnification, Annotation, FormDesigner, FormFields); + +const pdfviewer: PdfViewer = new PdfViewer({ + documentPath: 'https://cdn.syncfusion.com/content/pdf/pdf-succinctly.pdf', + resourceUrl: "https://cdn.syncfusion.com/ej2/28.1.33/dist/ej2-pdfviewer-lib", +}); +//To enable local storage +pdfviewer.enableLocalStorage=true; +pdfviewer.appendTo('#PdfViewer'); +``` + +### Impact and Considerations + +- **Increased Memory Usage**: Setting `enableLocalStorage` to `true` can increase memory usage, particularly with larger documents or those containing many interactive elements, such as form fields and annotations. +- **Avoiding Memory Leaks**: It is crucial to properly dispose of the PDF Viewer instance when it's no longer needed to prevent memory leaks, especially when using in-memory storage. +- **Default Behavior**: By default, this property is set to `false`, meaning the session storage mechanism is utilized unless explicitly changed. + +### Enhanced Control + +Leveraging the `enableLocalStorage` property provides greater flexibility in managing how data is stored during a session, allowing you to optimize performance and storage based on your application’s specific requirements. + +[View sample in GitHub](https://github.com/SyncfusionExamples/typescript-pdf-viewer-examples/tree/master/How%20to/) \ No newline at end of file diff --git a/ej2-javascript/pdfviewer/how-to/import-export-annotation-js.md b/ej2-javascript/pdfviewer/how-to/import-export-annotation-js.md new file mode 100644 index 000000000..2eb87a717 --- /dev/null +++ b/ej2-javascript/pdfviewer/how-to/import-export-annotation-js.md @@ -0,0 +1,56 @@ +--- +layout: post +title: Import export annotation in ##Platform_Name## Pdfviewer control | Syncfusion +description: Learn here all about Import export annotation in Syncfusion ##Platform_Name## Pdfviewer control of Syncfusion Essential JS 2 and more. +platform: ej2-javascript +control: Import export annotation +publishingplatform: ##Platform_Name## +documentation: ug +domainurl: ##DomainURL## +--- + +# Import export annotation in ##Platform_Name## Pdfviewer control + +The PDF Viewer library allows you to import annotations from objects or streams instead of loading it as a file. To import such annotation objects, the PDF Viewer control must export the PDF annotations as objects using the [**ExportAnnotationsAsObject()**](https://ej2.syncfusion.com/javascript/documentation/api/pdfviewer/#exportannotationsasobject) method. Only the annotation objects that are exported from the PDF Viewer can be imported. + +The following steps are used to import and export annotations in various formats such as objects, JSON, and XFDF. + +**Step 1:** Follow the steps provided in the [link](https://ej2.syncfusion.com/javascript/documentation/pdfviewer/getting-started/) to create a simple PDF Viewer sample. + +**Step 2:** Use the following code snippet to perform import and export annotation. + +``` + + + + +``` + +```js + +//Export annotation as object. +// Export annotations in XFDF format. +document.getElementById('ExportXfdf').addEventListener('click', function () { + viewer.exportAnnotation('Xfdf'); +}); + +// Export annotations in JSON format. +document.getElementById('ExportJSON').addEventListener('click', function () { + viewer.exportAnnotation('Json'); +}); + +// Export annotations as an object. +document.getElementById('export').addEventListener('click', () => { + viewer.exportAnnotationsAsObject().then(function(value) { + exportObject = value; + }); +}); + +// Import annotations that were exported as objects. +document.getElementById('import').addEventListener('click', () => { + viewer.importAnnotation(JSON.parse(exportObject)); +}); + +``` + +[View Sample in GitHub](https://github.com/SyncfusionExamples/javascript-pdf-viewer-examples/tree/master/How%20to) \ No newline at end of file diff --git a/ej2-javascript/pdfviewer/how-to/import-export-annotation-object.md b/ej2-javascript/pdfviewer/how-to/import-export-annotation-object.md deleted file mode 100644 index 9f8474a62..000000000 --- a/ej2-javascript/pdfviewer/how-to/import-export-annotation-object.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -layout: post -title: Import export annotation object in ##Platform_Name## Pdfviewer control | Syncfusion -description: Learn here all about Import export annotation object in Syncfusion ##Platform_Name## Pdfviewer control of Syncfusion Essential JS 2 and more. -platform: ej2-javascript -control: Import export annotation object -publishingplatform: ##Platform_Name## -documentation: ug -domainurl: ##DomainURL## ---- - -# Import export annotation object in ##Platform_Name## Pdfviewer control - -The PDF Viewer library allows you to import annotations from objects or streams instead of loading it as a file. To import such annotation objects, the PDF Viewer control must export the PDF annotations as objects using the [**ExportAnnotationsAsObject()**](https://ej2.syncfusion.com/documentation/api/pdfviewer/#exportannotationsasobject) method. Only the annotations objects that are exported from the PDF Viewer can be imported. - -The following steps are used to import and export annotation as object. - -**Step 1:** Follow the steps provided in the [link](https://ej2.syncfusion.com/documentation/pdfviewer/getting-started/) to create a simple PDF Viewer sample. - -**Step 2:** Use the following code snippet to perform import and export annotation. - -``` - - -``` - -```ts -//Export annotation as object. -document.getElementById('export').addEventListener('click', () => { - viewer.exportAnnotationsAsObject().then(function(value) { - exportObject = value; - }); -}); - -//Import annotation that are exported as object. -document.getElementById('import').addEventListener('click', () => { - viewer.importAnnotation(JSON.parse(exportObject)); -}); -``` - -Find the Sample, [how to import and export annotation as object](https://stackblitz.com/edit/gjbbmu?devtoolsheight=33&file=index.ts) \ No newline at end of file diff --git a/ej2-javascript/pdfviewer/how-to/import-export-annotation-objects.md b/ej2-javascript/pdfviewer/how-to/import-export-annotation-objects.md deleted file mode 100644 index eb3c9fc1e..000000000 --- a/ej2-javascript/pdfviewer/how-to/import-export-annotation-objects.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -layout: post -title: Import export annotation objects in ##Platform_Name## Pdfviewer control | Syncfusion -description: Learn here all about Import export annotation objects in Syncfusion ##Platform_Name## Pdfviewer control of Syncfusion Essential JS 2 and more. -platform: ej2-javascript -control: Import export annotation objects -publishingplatform: ##Platform_Name## -documentation: ug -domainurl: ##DomainURL## ---- - -# Import export annotation objects in ##Platform_Name## Pdfviewer control - -The PDF Viewer library allows you to import annotations from objects or streams instead of loading it as a file. To import such annotation objects, the PDF Viewer control must export the PDF annotations as objects using the [**ExportAnnotationsAsObject()**](https://ej2.syncfusion.com/javascript/documentation/api/pdfviewer/#exportannotationsasobject) method. Only the annotations objects that are exported from the PDF Viewer can be imported. - -The following steps are used to import and export annotation as object. - -**Step 1:** Follow the steps provided in the [link](https://ej2.syncfusion.com/javascript/documentation/pdfviewer/getting-started/) to create a simple PDF Viewer sample. - -**Step 2:** Use the following code snippet to perform import and export annotation. - -``` - - -``` - -```js -//Export annotation as object. -document.getElementById('export').addEventListener('click', () => { - viewer.exportAnnotationsAsObject().then(function(value) { - exportObject = value; - }); -}); - -//Import annotation that are exported as object. -document.getElementById('import').addEventListener('click', () => { - viewer.importAnnotation(JSON.parse(exportObject)); -}); -``` - -Find the Sample, [how to import and export annotation as object](https://stackblitz.com/edit/bktnkt?devtoolsheight=33&file=index.js) \ No newline at end of file diff --git a/ej2-javascript/pdfviewer/how-to/import-export-annotation-ts.md b/ej2-javascript/pdfviewer/how-to/import-export-annotation-ts.md new file mode 100644 index 000000000..4de2d0ce4 --- /dev/null +++ b/ej2-javascript/pdfviewer/how-to/import-export-annotation-ts.md @@ -0,0 +1,72 @@ +--- +layout: post +title: Import export annotation in ##Platform_Name## Pdfviewer control | Syncfusion +description: Learn here all about Import export annotation in Syncfusion ##Platform_Name## Pdfviewer control of Syncfusion Essential JS 2 and more. +platform: ej2-javascript +control: Import export annotation +publishingplatform: ##Platform_Name## +documentation: ug +domainurl: ##DomainURL## +--- + +# Import export annotation in ##Platform_Name## Pdfviewer control + +The PDF Viewer library allows you to import annotations from objects or streams instead of loading it as a file. To import such annotation objects, the PDF Viewer control must export the PDF annotations as objects using the [**ExportAnnotationsAsObject()**](https://ej2.syncfusion.com/documentation/api/pdfviewer/#exportannotationsasobject) method. Only the annotations objects that are exported from the PDF Viewer can be imported. + +The following steps are used to import and export annotations in various formats such as objects, JSON, and XFDF. + +**Step 1:** Follow the steps provided in the [link](https://ej2.syncfusion.com/documentation/pdfviewer/getting-started/) to create a simple PDF Viewer sample. + +**Step 2:** Use the following code snippet to perform import and export annotation. + +``` + + + + +``` + +```ts +enum AnnotationDataFormat { + Json = 'Json', + Xfdf = 'Xfdf' + } + +let ExportXfdf = document.getElementById('ExportXfdf'); +if (ExportXfdf) { + ExportXfdf.addEventListener('click', function () { + // export the annotation in XFDF format. + pdfviewer.exportAnnotation(AnnotationDataFormat.Xfdf); + }); +} + +let ExportJSON = document.getElementById('ExportJSON'); +if (ExportJSON) { + ExportJSON.addEventListener('click', function () { + // export the annotation in JSON format. + pdfviewer.exportAnnotation(AnnotationDataFormat.Json); + }); +} + +let exportObject: any; +let ExportAnnotationsAsObject = document.getElementById('export'); +//Export annotation as object. +if (ExportAnnotationsAsObject) { + ExportAnnotationsAsObject.addEventListener('click', () => { + pdfviewer.exportAnnotationsAsObject().then(function (value: any) { + exportObject = value; + }); + }); +} + +let Import = document.getElementById('import'); +//Import annotation that are exported as object. +if (Import) { + Import.addEventListener('click', () => { + pdfviewer.importAnnotation(JSON.parse(exportObject)); + }); +} + +``` + +[View sample in GitHub](https://github.com/SyncfusionExamples/typescript-pdf-viewer-examples/tree/master/How%20to) \ No newline at end of file diff --git a/ej2-javascript/pivotview/js/classic-layout.md b/ej2-javascript/pivotview/js/classic-layout.md new file mode 100644 index 000000000..a093dbeb7 --- /dev/null +++ b/ej2-javascript/pivotview/js/classic-layout.md @@ -0,0 +1,44 @@ +--- +layout: post +title: Classic layout in ##Platform_Name## Pivotview control | Syncfusion +description: Learn here all about Classic layout in Syncfusion ##Platform_Name## Pivotview control of Syncfusion Essential JS 2 and more. +platform: ej2-javascript +control: Classic Layout +publishingplatform: ##Platform_Name## +documentation: ug +domainurl: ##DomainURL## +--- + +# Classic Layout in ##Platform_Name## Pivot Table control + +N> The classic layout supports only relational data sources and operates exclusively with client-side engine. + +The classic layout in the Syncfusion Pivot Table offers a structured, tabular presentation of data, improving both readability and usability. In this layout, fields in the row axis are displayed side by side in separate columns, making data interpretation and analysis easier. By default, grand totals appear at the end of all rows, while subtotals are placed in a separate row beneath each group. All other features of the pivot table, such as filtering, sorting, drag-and-drop, expand/collapse functionality, and more, remain the same as in the compact layout, which serves as the default hierarchical format of the pivot table. + +To enable the classic layout, set the [layout](https://ej2.syncfusion.com/documentation/api/pivotview/gridSettings/#layout) property in the [gridSettings](https://ej2.syncfusion.com/documentation/api/pivotview/gridSettings/) of the Pivot Table to **Tabular**. + +{% tabs %} +{% highlight js tabtitle="index.js" %} +{% include code-snippet/pivot-table/classic-layout-cs2/index.js %} +{% endhighlight %} +{% highlight html tabtitle="index.html" %} +{% include code-snippet/pivot-table/classic-layout-cs2/index.html %} +{% endhighlight %} +{% endtabs %} + +{% previewsample "page.domainurl/code-snippet/pivot-table/classic-layout-cs2" %} + +**Limitations** + +* Subtotals at the "Top" position are not supported for row subtotals. +* The following row and column customization options are currently unavailable for row headers (frozen columns): + 1. Column resizing + 2. Auto-fit + 3. Grid lines +* The following features are not currently supported in the pivot table: + 1. Grouping using the Grouping UI for row headers + 2. Hiding row subtotals + 3. Column subtotals at the "Top" position + 4. Exporting + 5. Values on the row axis + 6. Pivot Chart diff --git a/ej2-javascript/pivotview/ts/classic-layout.md b/ej2-javascript/pivotview/ts/classic-layout.md new file mode 100644 index 000000000..e63b23fad --- /dev/null +++ b/ej2-javascript/pivotview/ts/classic-layout.md @@ -0,0 +1,44 @@ +--- +layout: post +title: Classic layout in ##Platform_Name## Pivotview control | Syncfusion +description: Learn here all about Classic layout in Syncfusion ##Platform_Name## Pivotview control of Syncfusion Essential JS 2 and more. +platform: ej2-javascript +control: Classic Layout +publishingplatform: ##Platform_Name## +documentation: ug +domainurl: ##DomainURL## +--- + +# Classic Layout in ##Platform_Name## Pivot Table Control + +N> The classic layout supports only relational data sources and operates exclusively with client-side engine. + +The classic layout in the Syncfusion Pivot Table offers a structured, tabular presentation of data, improving both readability and usability. In this layout, fields in the row axis are displayed side by side in separate columns, making data interpretation and analysis easier. By default, grand totals appear at the end of all rows, while subtotals are placed in a separate row beneath each group. All other features of the pivot table, such as filtering, sorting, drag-and-drop, expand/collapse functionality, and more, remain the same as in the compact layout, which serves as the default hierarchical format of the pivot table. + +To enable the classic layout, set the [layout](https://ej2.syncfusion.com/documentation/api/pivotview/gridSettings/#layout) property in the [gridSettings](https://ej2.syncfusion.com/documentation/api/pivotview/gridSettings/) of the Pivot Table to **Tabular**. + +{% tabs %} +{% highlight ts tabtitle="index.ts" %} +{% include code-snippet/pivot-table/classic-layout-cs1/index.ts %} +{% endhighlight %} +{% highlight html tabtitle="index.html" %} +{% include code-snippet/pivot-table/classic-layout-cs1/index.html %} +{% endhighlight %} +{% endtabs %} + +{% previewsample "page.domainurl/code-snippet/pivot-table/classic-layout-cs1" %} + +**Limitations** + +* Subtotals at the "Top" position are not supported for row subtotals. +* The following row and column customization options are currently unavailable for row headers (frozen columns): + 1. Column resizing + 2. Auto-fit + 3. Grid lines +* The following features are not currently supported in the pivot table: + 1. Grouping using the Grouping UI for row headers + 2. Hiding row subtotals + 3. Column subtotals at the "Top" position + 4. Exporting + 5. Values on the row axis + 6. Pivot Chart \ No newline at end of file diff --git a/ej2-javascript/range-slider/accessibility.md b/ej2-javascript/range-slider/accessibility.md index 99e029b6c..573e0e141 100644 --- a/ej2-javascript/range-slider/accessibility.md +++ b/ej2-javascript/range-slider/accessibility.md @@ -1,7 +1,7 @@ --- layout: post -title: Accessibility in ##Platform_Name## Range Slider component | Syncfusion -description: Learn here all about Accessibility in Syncfusion ##Platform_Name## Range Slider component of Syncfusion Essential JS 2 and more. +title: Accessibility in ##Platform_Name## Range Slider control | Syncfusion +description: Learn here all about Accessibility in Syncfusion ##Platform_Name## Range Slider control of Syncfusion Essential JS 2 and more. platform: ej2-javascript control: Accessibility publishingplatform: ##Platform_Name## @@ -9,11 +9,11 @@ documentation: ug domainurl: ##DomainURL## --- -# Accessibility in ##Platform_Name## Range Slider component +# Accessibility in ##Platform_Name## Range Slider control -The Range Slider component followed the accessibility guidelines and standards, including [ADA](https://www.ada.gov/), [Section 508](https://www.section508.gov/), [WCAG 2.2](https://www.w3.org/TR/WCAG22/) standards, and [WCAG roles](https://www.w3.org/TR/wai-aria/#roles) that are commonly used to evaluate accessibility. +The Range Slider control followed the accessibility guidelines and standards, including [ADA](https://www.ada.gov/), [Section 508](https://www.section508.gov/), [WCAG 2.2](https://www.w3.org/TR/WCAG22/) standards, and [WCAG roles](https://www.w3.org/TR/wai-aria/#roles) that are commonly used to evaluate accessibility. -The accessibility compliance for the Range Slider component is outlined below. +The accessibility compliance for the Range Slider control is outlined below. | Accessibility Criteria | Compatibility | | -- | -- | @@ -33,15 +33,15 @@ The accessibility compliance for the Range Slider component is outlined below. margin: 0.5em 0; } -
          Yes - All features of the component meet the requirement.
          +
          Yes - All features of the control meet the requirement.
          -
          Intermediate - Some features of the component do not meet the requirement.
          +
          Intermediate - Some features of the control do not meet the requirement.
          -
          No - The component does not meet the requirement.
          +
          No - The control does not meet the requirement.
          ## WAI-ARIA attributes -The Range Slider component followed the [WAI-ARIA](https://www.w3.org/WAI/ARIA/apg/patterns/slider/) patterns to meet the accessibility. The following ARIA attributes are used in the Range Slider component: +The Range Slider control followed the [WAI-ARIA](https://www.w3.org/WAI/ARIA/apg/patterns/slider/) patterns to meet the accessibility. The following ARIA attributes are used in the Range Slider control: | Attributes | Purpose | | --- | --- | @@ -55,7 +55,7 @@ The Range Slider component followed the [WAI-ARIA](https://www.w3.org/WAI/ARIA/a ## Keyboard interaction -The Range Slider component followed the [keyboard interaction](https://www.w3.org/WAI/ARIA/apg/patterns/alert/#keyboardinteraction) guideline, making it easy for people who use assistive technologies (AT) and those who completely rely on keyboard navigation. The following keyboard shortcuts are supported by the Range Slider component. +The Range Slider control followed the [keyboard interaction](https://www.w3.org/WAI/ARIA/apg/patterns/alert/#keyboardinteraction) guideline, making it easy for people who use assistive technologies (AT) and those who completely rely on keyboard navigation. The following keyboard shortcuts are supported by the Range Slider control. | **Press** | **To do this** | | --- | --- | @@ -68,12 +68,12 @@ The Range Slider component followed the [keyboard interaction](https://www.w3.or ## Ensuring accessibility -The Range Slider component's accessibility levels are ensured through an [accessibility-checker](https://www.npmjs.com/package/accessibility-checker) and [axe-core](https://www.npmjs.com/package/axe-core) software tools during automated testing. +The Range Slider control's accessibility levels are ensured through an [accessibility-checker](https://www.npmjs.com/package/accessibility-checker) and [axe-core](https://www.npmjs.com/package/axe-core) software tools during automated testing. -The accessibility compliance of the Range Slider component is shown in the following sample. Open the [sample](https://ej2.syncfusion.com/accessibility/slider.html) in a new window to evaluate the accessibility of the Range Slider component with accessibility tools. +The accessibility compliance of the Range Slider control is shown in the following sample. Open the [sample](https://ej2.syncfusion.com/accessibility/slider.html) in a new window to evaluate the accessibility of the Range Slider control with accessibility tools. {% previewsample "https://ej2.syncfusion.com/accessibility/slider.html" %} ## See also -* [Accessibility in Syncfusion ##Platform_Name## components](../common/accessibility) +* [Accessibility in Syncfusion ##Platform_Name## controls](../common/accessibility) diff --git a/ej2-javascript/range-slider/format.md b/ej2-javascript/range-slider/format.md index 5f0a0cb02..feed00481 100644 --- a/ej2-javascript/range-slider/format.md +++ b/ej2-javascript/range-slider/format.md @@ -1,7 +1,7 @@ --- layout: post -title: Format in ##Platform_Name## Range slider control | Syncfusion -description: Learn here all about Format in Syncfusion ##Platform_Name## Range slider control of Syncfusion Essential JS 2 and more. +title: Format in ##Platform_Name## Range Slider control | Syncfusion +description: Learn here all about Format in Syncfusion ##Platform_Name## Range Slider control of Syncfusion Essential JS 2 and more. platform: ej2-javascript control: Format publishingplatform: ##Platform_Name## @@ -9,9 +9,9 @@ documentation: ug domainurl: ##DomainURL## --- -# Format in ##Platform_Name## Range slider control +# Format in ##Platform_Name## Range Slider control -The `format` feature used to customize the units of Slider values to desired format. The formatted values will also be applied to the ARIA attributes of the slider. There are two ways of achieving formatting in slider. +The `format` feature is used to customize the units of Range Slider values to the desired format. The formatted values will also be applied to the ARIA attributes of the slider. There are two ways to achieve formatting in the slider: * Use the [format](../api/slider/tooltipData/#format) API of slider which utilizes our [Internationalization](../common/internationalization/) to format values. @@ -50,9 +50,9 @@ The `format` feature used to customize the units of Slider values to desired for {% previewsample "page.domainurl/code-snippet/slider/format-cs1" %} {% endif %} -## Using format API +## Using the format API -In this method, we have different predefined formatting styles like Numeric (N), Percentage (P), Currency (C) and `#` specifiers. In this below example we have formatted the `ticks` and `tooltip` values into percentage. +In this method, you can apply different predefined formatting styles such as Numeric (N), Percentage (P), Currency (C), and `#` specifiers. In the example below, we have formatted the `ticks` and `tooltip` values into percentages. {% if page.publishingplatform == "typescript" %} @@ -89,7 +89,7 @@ In this method, we have different predefined formatting styles like Numeric (N), ## Using Events -In this method, we will be retrieving the values from the slider events then process them to desired formatted the values. In this sample we have customized the `ticks` values into weekdays as one formatting and `tooltip` values into day of the week as another formatting. +This method involves retrieving values from slider events and then processing them into the desired format. In this example, we have customized the `ticks` values to represent weekdays as one format and `tooltip` values to display the day of the week as another format. {% if page.publishingplatform == "typescript" %} diff --git a/ej2-javascript/range-slider/getting-started.md b/ej2-javascript/range-slider/getting-started.md index 5b19f2407..19fda582a 100644 --- a/ej2-javascript/range-slider/getting-started.md +++ b/ej2-javascript/range-slider/getting-started.md @@ -50,7 +50,7 @@ Add the div element with the id attribute `#slider` inside the body tag in your - Essential JS 2 Slider control + Essential JS 2 Range Slider control @@ -98,7 +98,7 @@ import { Slider } from '@syncfusion/ej2-inputs'; // Initialization of Slider control let slider: Slider = new Slider(); -// Render initialized Slider +// Render initialized Range Slider Control slider.appendTo('#slider'); ``` diff --git a/ej2-javascript/range-slider/globalization-and-localization.md b/ej2-javascript/range-slider/globalization-and-localization.md index d788e750c..59b418e0c 100644 --- a/ej2-javascript/range-slider/globalization-and-localization.md +++ b/ej2-javascript/range-slider/globalization-and-localization.md @@ -1,7 +1,7 @@ --- layout: post -title: Globalization and localization in ##Platform_Name## Range slider control | Syncfusion -description: Learn here all about Globalization and localization in Syncfusion ##Platform_Name## Range slider control of Syncfusion Essential JS 2 and more. +title: Globalization and localization in ##Platform_Name## Range Slider control | Syncfusion +description: Learn here all about Globalization and localization in Syncfusion ##Platform_Name## Range Slider control of Syncfusion Essential JS 2 and more. platform: ej2-javascript control: Globalization and localization publishingplatform: ##Platform_Name## @@ -9,13 +9,13 @@ documentation: ug domainurl: ##DomainURL## --- -# Globalization and localization in ##Platform_Name## Range slider control +# Globalization and localization in ##Platform_Name## Range Slider control ## Localization -The [`Localization`](../api/base/l10n) library allows you to localize default text content of the Slider. The slider control has static text on some features (like increase and decrease button) that can be changed to other cultures (Arabic, Deutsch, French, etc.) by defining the [`locale`](../api/slider/#locale) value and translation object. +The [`Localization`](../api/base/l10n) library allows you to localize the default text content of the Range Slider control. The Range Slider control has static text for some features (such as increase and decrease buttons) that can be changed to other cultures (Arabic, Deutsch, French, etc.) by defining the [`locale`](../api/slider/#locale) value and translation object. -The following list of properties and its values are used in the slider. +The following list of properties and their values are used in the Range Slider: Locale keywords |Text -----|----- @@ -24,9 +24,9 @@ Decrease | Decrease ### Loading translations -To load translation object in an application, use [`load`](../api/base/l10n/#load) function of the [`L10n`](../api/base/l10n) class. +To load the translation object in an application, use the [`load`](../api/base/l10n/#load) function of the [`L10n`](../api/base/l10n) class. -The following example demonstrates the Slider in `Deutsch` culture. +The following example demonstrates the Range Slider in the `Deutsch` culture. {% if page.publishingplatform == "typescript" %} diff --git a/ej2-javascript/range-slider/how-to/customize-the-bar.md b/ej2-javascript/range-slider/how-to/customize-the-bar.md index d874b2009..1355b6388 100644 --- a/ej2-javascript/range-slider/how-to/customize-the-bar.md +++ b/ej2-javascript/range-slider/how-to/customize-the-bar.md @@ -1,7 +1,7 @@ --- layout: post -title: Customize the bar in ##Platform_Name## Range slider control | Syncfusion -description: Learn here all about Customize the bar in Syncfusion ##Platform_Name## Range slider control of Syncfusion Essential JS 2 and more. +title: Customize the bar in ##Platform_Name## Range Slider control | Syncfusion +description: Learn here all about Customize the bar in Syncfusion ##Platform_Name## Range Slider control of Syncfusion Essential JS 2 and more. platform: ej2-javascript control: Customize the bar publishingplatform: ##Platform_Name## @@ -9,9 +9,9 @@ documentation: ug domainurl: ##DomainURL## --- -# Customize the bar in ##Platform_Name## Range slider control +# Customize the bar in ##Platform_Name## Range Slider control -Slider appearance can be customized through CSS. By overriding the slider CSS classes, you can customize the slider bar. The slider bar can be customized with different themes. By default, slider have class name `e-slider-track` for bar. The class can be overridden with our own color values like the following code snippet. +The appearance of the Range Slider control can be customized through CSS. By overriding the slider CSS classes, you can customize the slider bar with different themes. By default, the slider has a class name `e-slider-track` for its bar. This class can be overridden with your own color values, as shown in the following code snippet: ``` .e-control.e-slider .e-slider-track .e-range { @@ -21,28 +21,6 @@ Slider appearance can be customized through CSS. By overriding the slider CSS cl You can also apply background color for a certain range depending upon slider values, using change event. -```ts -change: (args: SliderChangeEventArgs) => { - if (args.value > 0 && args.value <= 25) { - // Change handle and range bar color to green when - (sliderHandle as HTMLElement).style.backgroundColor = 'green'; - (sliderTrack as HTMLElement).style.backgroundColor = 'green'; - } else if (args.value > 25 && args.value <= 50) { - // Change handle and range bar color to royal blue - (sliderHandle as HTMLElement).style.backgroundColor = 'royalblue'; - (sliderTrack as HTMLElement).style.backgroundColor = 'royalblue'; - } else if (args.value > 50 && args.value <= 75) { - // Change handle and range bar color to dark orange - (sliderHandle as HTMLElement).style.backgroundColor = 'darkorange'; - (sliderTrack as HTMLElement).style.backgroundColor = 'darkorange'; - } else if (args.value > 75 && args.value <= 100) { - // Change handle and range bar color to red - (sliderHandle as HTMLElement).style.backgroundColor = 'red'; - (sliderTrack as HTMLElement).style.backgroundColor = 'red'; - } - } -``` - {% if page.publishingplatform == "typescript" %} {% tabs %} diff --git a/ej2-javascript/range-slider/how-to/customize-the-limits.md b/ej2-javascript/range-slider/how-to/customize-the-limits.md index 4e98e9ed5..899b42cb3 100644 --- a/ej2-javascript/range-slider/how-to/customize-the-limits.md +++ b/ej2-javascript/range-slider/how-to/customize-the-limits.md @@ -1,7 +1,7 @@ --- layout: post -title: Customize the limits in ##Platform_Name## Range slider control | Syncfusion -description: Learn here all about Customize the limits in Syncfusion ##Platform_Name## Range slider control of Syncfusion Essential JS 2 and more. +title: Customize the limits in ##Platform_Name## Range Slider control | Syncfusion +description: Learn here all about Customize the limits in Syncfusion ##Platform_Name## Range Slider control of Syncfusion Essential JS 2 and more. platform: ej2-javascript control: Customize the limits publishingplatform: ##Platform_Name## @@ -9,9 +9,9 @@ documentation: ug domainurl: ##DomainURL## --- -# Customize the limits in ##Platform_Name## Range slider control +# Customize the limits in ##Platform_Name## Range Slider control -Slider appearance can be customized via CSS. By overriding the slider CSS classes, the slider limit bar can be customized. Here, the limit bar is customized with different background color. By default, the slider has class `e-limits` for limits bar. You can override the class with our own color values as given in the following code snippet. +The appearance of the Range Slider control can be customized via CSS. By overriding the slider CSS classes, you can customize the slider limit bar. The limit bar can be customized with a different background color. By default, the slider has a class named `e-limits` for the limits bar, which can be overridden with your own color values as shown in the following code snippet: ``` .e-slider-container.e-horizontal .e-limits { @@ -19,6 +19,8 @@ Slider appearance can be customized via CSS. By overriding the slider CSS classe } ``` +{% if page.publishingplatform == "typescript" %} + {% tabs %} {% highlight ts tabtitle="index.ts" %} {% include code-snippet/slider/limit-customization-cs1/index.ts %} @@ -30,5 +32,22 @@ Slider appearance can be customized via CSS. By overriding the slider CSS classe {% include code-snippet/slider/limit-customization-cs1/index.css %} {% endhighlight %} {% endtabs %} - + +{% previewsample "page.domainurl/code-snippet/slider/limit-customization-cs1" %} + +{% elsif page.publishingplatform == "javascript" %} + +{% tabs %} +{% highlight js tabtitle="index.js" %} +{% include code-snippet/slider/limit-customization-cs1/index.ts %} +{% endhighlight %} +{% highlight html tabtitle="index.html" %} +{% include code-snippet/slider/limit-customization-cs1/index.html %} +{% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/slider/limit-customization-cs1/index.css %} +{% endhighlight %} +{% endtabs %} + {% previewsample "page.domainurl/code-snippet/slider/limit-customization-cs1" %} +{% endif %} \ No newline at end of file diff --git a/ej2-javascript/range-slider/how-to/customize-the-thumb.md b/ej2-javascript/range-slider/how-to/customize-the-thumb.md index 6215ec331..73b6a3269 100644 --- a/ej2-javascript/range-slider/how-to/customize-the-thumb.md +++ b/ej2-javascript/range-slider/how-to/customize-the-thumb.md @@ -1,7 +1,7 @@ --- layout: post -title: Customize the thumb in ##Platform_Name## Range slider control | Syncfusion -description: Learn here all about Customize the thumb in Syncfusion ##Platform_Name## Range slider control of Syncfusion Essential JS 2 and more. +title: Customize the thumb in ##Platform_Name## Range Slider control | Syncfusion +description: Learn here all about Customize the thumb in Syncfusion ##Platform_Name## Range Slider control of Syncfusion Essential JS 2 and more. platform: ej2-javascript control: Customize the thumb publishingplatform: ##Platform_Name## @@ -9,9 +9,9 @@ documentation: ug domainurl: ##DomainURL## --- -# Customize the thumb in ##Platform_Name## Range slider control +# Customize the thumb in ##Platform_Name## Range Slider control -Slider appearance can be customized through CSS. By overriding the slider CSS classes, you can customize the thumb. By default, slider has unique class `e-handle` for slider thumb. You can override the following class as per your requirement. Here, in the sample, the slider thumb has been customized to square, circle, oval shapes, and background image has also been customized. +The appearance of the Range Slider control can be customized through CSS. By overriding the slider CSS classes, you can customize the thumb. By default, the Range Slider has a unique class `e-handle` for the slider thumb. You can override the following class as per your requirement. Here, in the sample, the slider thumb has been customized to square, circle, oval shapes, and the background image has also been customized. ```ts .e-control.e-slider .e-handle { @@ -52,7 +52,7 @@ Slider appearance can be customized through CSS. By overriding the slider CSS cl {% include code-snippet/slider/thumb-customization-cs1/index.css %} {% endhighlight %} {% endtabs %} - + {% previewsample "page.domainurl/code-snippet/slider/thumb-customization-cs1" %} {% elsif page.publishingplatform == "javascript" %} diff --git a/ej2-javascript/range-slider/how-to/customize-the-ticks.md b/ej2-javascript/range-slider/how-to/customize-the-ticks.md index 780bce0a5..c0f1c0afd 100644 --- a/ej2-javascript/range-slider/how-to/customize-the-ticks.md +++ b/ej2-javascript/range-slider/how-to/customize-the-ticks.md @@ -1,17 +1,17 @@ --- layout: post -title: Customize the ticks in ##Platform_Name## Range slider control | Syncfusion -description: Learn here all about Customize the ticks in Syncfusion ##Platform_Name## Range slider control of Syncfusion Essential JS 2 and more. +title: Customize the ticks in ##Platform_Name## Range Slider control | Syncfusion +description: Learn here all about Customize the ticks in Syncfusion ##Platform_Name## Range Slider control of Syncfusion Essential JS 2 and more. platform: ej2-javascript -control: Customize the ticks +control: Customize the ticks publishingplatform: ##Platform_Name## documentation: ug domainurl: ##DomainURL## --- -# Customize the ticks in ##Platform_Name## Range slider control +# Customize the ticks in ##Platform_Name## Range Slider control -Slider view can be customized via CSS. By overriding the slider CSS classes, you can customize the ticks. The ticks in slider allows you to easily identify the current value/values of the slider. It contains [`smallStep`](../../api/slider/ticksDataModel/#smallstep) and [`largeStep`](../../api/slider/ticksDataModel/#largestep). By default, slider has class `e-tick` for slider ticks. You can override the class as per your requirement. Refer to the following code snippet to render ticks. +The appearance of the Range Slider control can be customized via CSS. By overriding the slider CSS classes, you can customize the ticks, which allow you to easily identify the current value/values of the slider. It contains [`smallStep`](../../api/slider/ticksDataModel/#smallstep) and [`largeStep`](../../api/slider/ticksDataModel/#largestep) properties. By default, the slider has a class named `e-tick` for slider ticks, which can be overridden as per your requirements. Refer to the following code snippet to render custom ticks: ```ts .e-scale .e-tick.e-custom::before { @@ -41,7 +41,7 @@ Here, the color for rendered ticks has been applied through nth-child(`child_num {% include code-snippet/slider/ticks-customization-cs1/index.css %} {% endhighlight %} {% endtabs %} - + {% previewsample "page.domainurl/code-snippet/slider/ticks-customization-cs1" %} {% elsif page.publishingplatform == "javascript" %} diff --git a/ej2-javascript/range-slider/how-to/format-value-using-slider.md b/ej2-javascript/range-slider/how-to/format-value-using-slider.md index 82aadff93..99e2ce75c 100644 --- a/ej2-javascript/range-slider/how-to/format-value-using-slider.md +++ b/ej2-javascript/range-slider/how-to/format-value-using-slider.md @@ -1,6 +1,6 @@ --- layout: post -title: Format value using slider in ##Platform_Name## Range slider control | Syncfusion +title: Format value using Slider in ##Platform_Name## Range Slider | Syncfusion description: Learn here all about Format value using slider in Syncfusion ##Platform_Name## Range slider control of Syncfusion Essential JS 2 and more. platform: ej2-javascript control: Format value using slider @@ -9,11 +9,11 @@ documentation: ug domainurl: ##DomainURL## --- -# Format value using slider in ##Platform_Name## Range slider control +# Format Value using Slider in ##Platform_Name## Range Slider Control ## Achieve date format -The date formatting can be achieved in `ticks` and `tooltip` using `renderingTicks` and `tooltipChange` events, respectively. The process of formatting is explained in the following sample. +Date formatting can be achieved in `ticks` and `tooltip` using the `renderingTicks` and `tooltipChange` events, respectively. The process of formatting is explained in the following sample. {% if page.publishingplatform == "typescript" %} @@ -50,7 +50,7 @@ The date formatting can be achieved in `ticks` and `tooltip` using `renderingTic ## Achieve time format -The time formatting can be achieved in the same manner as date formatting using `renderingTicks` and `change` events. The process of time formatting is explained in the following sample. +Time formatting can be achieved in the same manner as date formatting using the `renderingTicks` and `change` events. The process of time formatting is explained in the following sample. {% if page.publishingplatform == "typescript" %} @@ -87,7 +87,7 @@ The time formatting can be achieved in the same manner as date formatting using ## Customize numeric Value -The numeric values can be formatted into different decimal digits or fixed number of whole numbers or to represent units. The numeric processing is demonstrated as follows. +Numeric values can be formatted into different decimal digits, fixed numbers of whole numbers, or to represent units. The numeric processing is demonstrated as follows. {% if page.publishingplatform == "typescript" %} diff --git a/ej2-javascript/range-slider/how-to/reversible-slider.md b/ej2-javascript/range-slider/how-to/reversible-slider.md index 7b4d073c3..562297415 100644 --- a/ej2-javascript/range-slider/how-to/reversible-slider.md +++ b/ej2-javascript/range-slider/how-to/reversible-slider.md @@ -1,7 +1,7 @@ --- layout: post title: Reversible Range Slider in ##Platform_Name## Range Slider control | Syncfusion -description: Learn here all about Reversible Range Slider in Syncfusion ##Platform_Name## Range Slider control of Syncfusion Essential JS 2 and more. +description: Learn here all about creating a Reversible Range Slider in Syncfusion ##Platform_Name## Range Slider control of Syncfusion Essential JS 2 and more. platform: ej2-javascript control: Reversible Range Slider publishingplatform: ##Platform_Name## @@ -11,7 +11,7 @@ domainurl: ##DomainURL## # Reversible Range Slider in ##Platform_Name## -You can create a Range Slider rendered with values in reverse order by setting the [min](https://ej2.syncfusion.com/documentation/api/slider/#min) property to the maximum value and the [max](https://ej2.syncfusion.com/documentation/api/slider/#max) property to the minimum value. An example of how to achieve a reversible Range Slider is shown below +You can create a Range Slider with values rendered in reverse order by setting the [min](https://ej2.syncfusion.com/documentation/api/slider/#min) property to the maximum value and the [max](https://ej2.syncfusion.com/documentation/api/slider/#max) property to the minimum value. An example of how to achieve a reversible Range Slider is shown below: {% if page.publishingplatform == "typescript" %} @@ -46,4 +46,4 @@ You can create a Range Slider rendered with values in reverse order by setting t {% previewsample "page.domainurl/code-snippet/slider/reversible-cs1" %} {% endif %} -> Reversible order can be achieved with [Horizontal](https://ej2.syncfusion.com/documentation/api/slider/sliderOrientation/) orientation Range Slider by setting [enableRtl](https://ej2.syncfusion.com/documentation/api/slider/#enablertl) as true. +> The reversible order can be achieved with the [Horizontal](https://ej2.syncfusion.com/documentation/api/slider/sliderOrientation/) orientation of the Range Slider by setting [enableRtl](https://ej2.syncfusion.com/documentation/api/slider/#enablertl) to true. diff --git a/ej2-javascript/range-slider/how-to/show-slider-from-hidden-state.md b/ej2-javascript/range-slider/how-to/show-slider-from-hidden-state.md index aa5072062..70a506934 100644 --- a/ej2-javascript/range-slider/how-to/show-slider-from-hidden-state.md +++ b/ej2-javascript/range-slider/how-to/show-slider-from-hidden-state.md @@ -1,7 +1,7 @@ --- layout: post -title: Show slider from hidden state in ##Platform_Name## Range slider control | Syncfusion -description: Learn here all about Show slider from hidden state in Syncfusion ##Platform_Name## Range slider control of Syncfusion Essential JS 2 and more. +title: Show slider from hidden state in ##Platform_Name## Range Slider control | Syncfusion +description: Learn here all about showing the slider from a hidden state in the Syncfusion ##Platform_Name## Range Slider control of Syncfusion Essential JS 2 and more. platform: ej2-javascript control: Show slider from hidden state publishingplatform: ##Platform_Name## @@ -9,11 +9,11 @@ documentation: ug domainurl: ##DomainURL## --- -# Show slider from hidden state in ##Platform_Name## Range slider control +# Show slider from hidden state in ##Platform_Name## Range Slider control -This section demonstrates how-to render the Slider component in hidden state and make it visible in button click. We can initialize Slider in hidden state by setting the display as none. +This section demonstrates how to render the Range Slider control in a hidden state and make it visible upon a button click. You can initialize the Range Slider in a hidden state by setting the display property to none. -In the sample, by clicking on the button, we can make the Slider visible from hidden state, and we must also call the [`refresh`](../../api/slider/#refresh) method of the Slider to render it properly based on its original dimensions. +In the sample, clicking the button will make the Range Slider visible from its hidden state, and you must also call the [`refresh`](../../api/slider/#refresh) method of the Range Slider to render it properly based on its original dimensions. {% if page.publishingplatform == "typescript" %} diff --git a/ej2-javascript/range-slider/how-to/validate-slider-using-formvalidator.md b/ej2-javascript/range-slider/how-to/validate-slider-using-formvalidator.md index b996c4170..146e75ca6 100644 --- a/ej2-javascript/range-slider/how-to/validate-slider-using-formvalidator.md +++ b/ej2-javascript/range-slider/how-to/validate-slider-using-formvalidator.md @@ -1,21 +1,23 @@ --- layout: post -title: Validate slider using formvalidator in ##Platform_Name## Range slider control | Syncfusion -description: Learn here all about Validate slider using formvalidator in Syncfusion ##Platform_Name## Range slider control of Syncfusion Essential JS 2 and more. +title: Validate slider using FormValidator in ##Platform_Name## Range Slider control | Syncfusion +description: Learn here all about validating the slider using FormValidator in the Syncfusion ##Platform_Name## Range Slider control of Syncfusion Essential JS 2 and more. platform: ej2-javascript -control: Validate slider using formvalidator +control: Validate slider using formvalidator publishingplatform: ##Platform_Name## documentation: ug domainurl: ##DomainURL## --- -# Validate slider using formvalidator in ##Platform_Name## Range slider control +# Validate slider using FormValidator in ##Platform_Name## Range Slider control -The Slider component can be validated using our [FormValidator](../../form-validator/). The following steps walk-through slider validation. +The Range Slider control can be validated using our [FormValidator](../../form-validator/). The following steps walk through the slider validation process. -* Render slider component inside a form. -* Bind [changed](../../api/slider/#changed) event in the slider component to validate the slider value when the value changes. -* Initialize and render FormValidator for the form using form ID. +* Render the Range Slider control inside a form. +* Bind the [changed](../../api/slider/#changed) event in the Range Slider to validate the slider value when it changes. +* Initialize and render FormValidator for the form using the form ID. + +{% if page.publishingplatform == "typescript" %} ```ts @@ -24,8 +26,21 @@ let formObj: FormValidator; formObj = new FormValidator("#formId", options); ``` +{% elsif page.publishingplatform == "javascript" %} + +```js + +// Initialize Form validation +let formObj; +formObj = new FormValidator("#formId", options); + +``` + +{% endif %} -* Set the required property in the FormValidator [rules](../../api/form-validator/#rules) collection. Here, the [min](../../api/slider/#min) property of slider that sets the minimum value in the slider component is set, and it has hidden input as enable `validateHidden` property is set to true. +* Set the required property in the FormValidator [rules](../../api/form-validator/#rules) collection. Here, the [min](../../api/slider/#min) property of slider that sets the minimum value in the Range Slider control is set, and it has hidden input as enable `validateHidden` property is set to true. + +{% if page.publishingplatform == "typescript" %} ```ts @@ -44,10 +59,33 @@ let options: FormValidatorModel = { ``` -> Form validation is done either by ID or name value of the slider component. Above ID of the slider is used to validate it. +{% elsif page.publishingplatform == "javascript" %} + +```js + +// Slider element +
          + +// sets required property in the FormValidator rules collection +let options = { + rules: { + 'default': { + validateHidden: true, + min: [6, "You must select value greater than 5"] + } + } +}; + +``` + +{% endif %} + +> Form validation is done either by ID or name value of the Range Slider control. Above ID of the slider is used to validate it. Using slider name: Render slider with name attribute. In the following code snippet, name attribute value of slider is used for form validation. +{% if page.publishingplatform == "typescript" %} + ```ts // Slider element @@ -65,6 +103,27 @@ let options: FormValidatorModel = { ``` +{% elsif page.publishingplatform == "javascript" %} + +```js + +// Slider element +
          + +// sets required property in the FormValidator rules collection +let options = { + rules: { + 'slider': { + validateHidden: true, + min: [6, "You must select value greater than 5"] + } + } +}; + +``` + +{% endif %} + * Validate the form using [validate](../../api/form-validator/#validate) method, and it validates the slider value with the defined rules collection and returns the result. If user selects the value less than the minimum value, form will not submit. ```ts @@ -75,6 +134,8 @@ formObj.validate(); * Slider validation can be done during value changes in slider. Refer to the following code snippet. +{% if page.publishingplatform == "typescript" %} + ```ts // change event handler for slider @@ -84,18 +145,31 @@ function onChanged(args: any) { ``` -The `FormValidator` has following default validation rules, which are used to validate the Slider component. +{% elsif page.publishingplatform == "javascript" %} + +```js + +// change event handler for slider +function onChanged(args) { + formObj.validate(); +} + +``` + +{% endif %} + +The `FormValidator` has following default validation rules, which are used to validate the Range Slider control. | Rules | Description | Example | | ------------- | ------------- | ------------- | -| `max` | Slider component must have value less than or equal to `max` number | if `max: 3`, **3** is valid and **4** is invalid | -| `min` | Slider component must have value greater than or equal to `min` number | if `min: 4`, **5** is valid and **2** is invalid | -| `regex` | Slider component must have valid value in `regex` format | if `regex: '/4/`, **4** is valid and **1** is invalid | -| `range` | Slider component must have value between `range` number | if `range: [4,5]`, **4** is valid and **6** is invalid | +| `max` | Range Slider control must have value less than or equal to `max` number | if `max: 3`, **3** is valid and **4** is invalid | +| `min` | Range Slider control must have value greater than or equal to `min` number | if `min: 4`, **5** is valid and **2** is invalid | +| `regex` | Range Slider control must have valid value in `regex` format | if `regex: '/4/`, **4** is valid and **1** is invalid | +| `range` | Range Slider control must have value between `range` number | if `range: [4,5]`, **4** is valid and **6** is invalid | {% if page.publishingplatform == "typescript" %} - {% tabs %} +{% tabs %} {% highlight ts tabtitle="index.ts" %} {% include code-snippet/slider/form-validation-cs1/index.ts %} {% endhighlight %} @@ -106,7 +180,7 @@ The `FormValidator` has following default validation rules, which are used to va {% include code-snippet/slider/form-validation-cs1/index.css %} {% endhighlight %} {% endtabs %} - + {% previewsample "page.domainurl/code-snippet/slider/form-validation-cs1" %} {% elsif page.publishingplatform == "javascript" %} diff --git a/ej2-javascript/range-slider/js/ej1-api-migration.md b/ej2-javascript/range-slider/js/ej1-api-migration.md index c7b0debcb..0f450be8e 100644 --- a/ej2-javascript/range-slider/js/ej1-api-migration.md +++ b/ej2-javascript/range-slider/js/ej1-api-migration.md @@ -1,7 +1,7 @@ --- layout: post -title: Ej1 api migration in ##Platform_Name## Range slider control | Syncfusion -description: Learn here all about Ej1 api migration in Syncfusion ##Platform_Name## Range slider control of Syncfusion Essential JS 2 and more. +title: Ej1 api migration in ##Platform_Name## Range Slider control | Syncfusion +description: Learn here all about Ej1 api migration in Syncfusion ##Platform_Name## Range Slider control of Syncfusion Essential JS 2 and more. platform: ej2-javascript control: Ej1 api migration publishingplatform: ##Platform_Name## @@ -9,9 +9,9 @@ documentation: ug domainurl: ##DomainURL## --- -# Ej1 api migration in ##Platform_Name## Range slider control +# Ej1 api migration in ##Platform_Name## Range Slider control -This article describes the API migration process of Slider component from Essential JS 1 to Essential JS 2 +This article describes the API migration process of Range Slider control from Essential JS 1 to Essential JS 2 | Behavior | API in Essential JS 1 | API in Essential JS 2 | | --- | --- | --- | diff --git a/ej2-javascript/range-slider/js/getting-started.md b/ej2-javascript/range-slider/js/getting-started.md index 888776b7b..eef41c3f9 100644 --- a/ej2-javascript/range-slider/js/getting-started.md +++ b/ej2-javascript/range-slider/js/getting-started.md @@ -1,7 +1,7 @@ --- layout: post -title: Getting started with ##Platform_Name## Range slider control | Syncfusion -description: Checkout and learn about Getting started with ##Platform_Name## Range slider control of Syncfusion Essential JS 2 and more details. +title: Getting started with ##Platform_Name## Range Slider control | Syncfusion +description: Checkout and learn about Getting started with ##Platform_Name## Range Slider control of Syncfusion Essential JS 2 and more details. platform: ej2-javascript control: Getting started publishingplatform: ##Platform_Name## @@ -9,7 +9,7 @@ documentation: ug domainurl: ##DomainURL## --- -# Getting started in ##Platform_Name## Range slider control +# Getting started in ##Platform_Name## Range Slider control The Essential JS 2 for JavaScript (global script) is an ES5 formatted pure JavaScript framework which can be directly used in latest web browsers. @@ -64,7 +64,7 @@ The below located script and style file contains all Syncfusion JavaScript (ES5) ``` -**Step 5:** Now, add the `Slider` element and initiate the `Essential JS 2 Slider` control in the `index.html` by using following code +**Step 5:** Now, add the `Slider` element and initiate the `Essential JS 2 Range Slider` control in the `index.html` by using following code ```html @@ -82,16 +82,16 @@ The below located script and style file contains all Syncfusion JavaScript (ES5)
          ``` -**Step 6:** Now, run the `index.html` in web browser, it will render the **Essential JS 2 Slider** control. +**Step 6:** Now, run the `index.html` in web browser, it will render the **Essential JS 2 Range Slider** control. ### Using CDN link for script and style reference @@ -109,7 +109,7 @@ The below located script and style file contains all Syncfusion JavaScript (ES5) > > Styles: [`https://cdn.syncfusion.com/ej2/ej2-inputs/styles/material.css`](https://cdn.syncfusion.com/ej2/ej2-inputs/styles/material.css) -**Step 3:** Create a HTML page (index.html) in `myapp` location and add the CDN link references. Now, add the `Slider` element and initiate the `Essential JS 2 Slider` control in the `index.html` by using following code. +**Step 3:** Create a HTML page (index.html) in `myapp` location and add the CDN link references. Now, add the `Slider` element and initiate the `Essential JS 2 Range Slider` control in the `index.html` by using following code. {% tabs %} {% highlight html tabtitle="index.html" %} @@ -122,7 +122,7 @@ The below located script and style file contains all Syncfusion JavaScript (ES5) {% previewsample "page.domainurl/code-snippet/slider/es5-getting-started-cs1" %} -**Step 4:** Now, run the `index.html` in web browser, it will render the `Essential JS 2 Slider` control. +**Step 4:** Now, run the `index.html` in web browser, it will render the `Essential JS 2 Range Slider` control. > Need to refer dependency control styles and scripts as like above example. We can also use [CRG](https://crg.syncfusion.com/) to generate combined control styles. diff --git a/ej2-javascript/range-slider/limits.md b/ej2-javascript/range-slider/limits.md index 754fa84d1..ca9acb11e 100644 --- a/ej2-javascript/range-slider/limits.md +++ b/ej2-javascript/range-slider/limits.md @@ -1,7 +1,7 @@ --- layout: post -title: Limits in ##Platform_Name## Range slider control | Syncfusion -description: Learn here all about Limits in Syncfusion ##Platform_Name## Range slider control of Syncfusion Essential JS 2 and more. +title: Limits in ##Platform_Name## Range Slider control | Syncfusion +description: Learn here all about Limits in Syncfusion ##Platform_Name## Range Slider control of Syncfusion Essential JS 2 and more. platform: ej2-javascript control: Limits publishingplatform: ##Platform_Name## @@ -9,11 +9,11 @@ documentation: ug domainurl: ##DomainURL## --- -# Limits in ##Platform_Name## Range slider control +# Limits in ##Platform_Name## Range Slider control -The slider limits restrict the slider thumb between a particular range. This is used if higher or lower value affects the process or product where the slider is being used. +The slider [`limits`](../api/slider/#limits) feature restricts the slider thumb movement within a specified range, which is useful if higher or lower values might affect the process or product where the slider is employed. -The following are the six options in the slider's limits object. Each API in the limits object is optional. +The following are the six options available in the slider's limits object, and each API in the limits object is optional: * ``enabled``: Enables the limits in the Slider. * ``minStart``: Sets the minimum limit for the first handle. @@ -25,25 +25,29 @@ The following are the six options in the slider's limits object. Each API in the ## Default and MinRange Slider limits -There is only one handle in the Default and MinRange Slider, so ``minStart``, ``minEnd``, and ``startHandleFixed`` options can be used. -When the limits are enabled in the Slider, the limited area becomes darken. So you can differentiate the allowed and restricted area. -Refer to the following snippet to enable the limits in the Slider. +The Default and MinRange Sliders have only one handle, so you can use `minStart`, `minEnd`, and `startHandleFixed` options. When the limits are enabled in the Slider, the limited area appears darkened, allowing you to differentiate between the allowed and restricted area. Refer to the following snippet to enable the limits in the Slider. -```ts +{% if page.publishingplatform == "typescript" %} -let slider = new Slider({ - ...... - - limits: { enabled: true, minStart: 10, minEnd: 40 } +{% tabs %} +{% highlight ts tabtitle="index.ts" %} +{% include code-snippet/slider/default-limit-cs1/index.ts %} +{% endhighlight %} +{% highlight html tabtitle="index.html" %} +{% include code-snippet/slider/default-limit-cs1/index.html %} +{% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/slider/default-limit-cs1/index.css %} +{% endhighlight %} +{% endtabs %} - ...... -}); +{% previewsample "page.domainurl/code-snippet/slider/default-limit-cs1" %} -``` +{% elsif page.publishingplatform == "javascript" %} {% tabs %} -{% highlight ts tabtitle="index.ts" %} -{% include code-snippet/slider/default-limit-cs1/index.ts %} +{% highlight js tabtitle="index.js" %} +{% include code-snippet/slider/default-limit-cs1/index.js %} {% endhighlight %} {% highlight html tabtitle="index.html" %} {% include code-snippet/slider/default-limit-cs1/index.html %} @@ -52,28 +56,36 @@ let slider = new Slider({ {% include code-snippet/slider/default-limit-cs1/index.css %} {% endhighlight %} {% endtabs %} - + {% previewsample "page.domainurl/code-snippet/slider/default-limit-cs1" %} +{% endif %} + ## Range Slider limits In the range slider, both handles can be restricted and locked from the limit's object. In this sample, the first handle is limited between 10 and 40, and the second handle is limited between 60 and 90. -```ts - -let slider = new Slider({ - ...... +{% if page.publishingplatform == "typescript" %} - limits: { enabled: true, minStart: 10, minEnd: 40, maxStart: 60, maxEnd: 90 } +{% tabs %} +{% highlight ts tabtitle="index.ts" %} +{% include code-snippet/slider/range-limit-cs1/index.ts %} +{% endhighlight %} +{% highlight html tabtitle="index.html" %} +{% include code-snippet/slider/range-limit-cs1/index.html %} +{% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/slider/range-limit-cs1/index.css %} +{% endhighlight %} +{% endtabs %} - ...... -}); +{% previewsample "page.domainurl/code-snippet/slider/range-limit-cs1" %} -``` +{% elsif page.publishingplatform == "javascript" %} {% tabs %} -{% highlight ts tabtitle="index.ts" %} +{% highlight js tabtitle="index.js" %} {% include code-snippet/slider/range-limit-cs1/index.ts %} {% endhighlight %} {% highlight html tabtitle="index.html" %} @@ -83,27 +95,34 @@ let slider = new Slider({ {% include code-snippet/slider/range-limit-cs1/index.css %} {% endhighlight %} {% endtabs %} - + {% previewsample "page.domainurl/code-snippet/slider/range-limit-cs1" %} +{% endif %} ## Handle lock The movement of slider handles can be locked by enabling the ``startHandleFixed`` and ``endHandleFixed`` properties in the limit's object. In this sample, the movement of both slider handles has been locked. -```ts - -let slider = new Slider({ - ...... +{% if page.publishingplatform == "typescript" %} - limits: { enabled: true, startHandleFixed: true, endHandleFixed: true } +{% tabs %} +{% highlight ts tabtitle="index.ts" %} +{% include code-snippet/slider/handle-lock-cs1/index.ts %} +{% endhighlight %} +{% highlight html tabtitle="index.html" %} +{% include code-snippet/slider/handle-lock-cs1/index.html %} +{% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/slider/handle-lock-cs1/index.css %} +{% endhighlight %} +{% endtabs %} - ...... -}); +{% previewsample "page.domainurl/code-snippet/slider/handle-lock-cs1" %} -``` +{% elsif page.publishingplatform == "javascript" %} {% tabs %} -{% highlight ts tabtitle="index.ts" %} +{% highlight js tabtitle="index.js" %} {% include code-snippet/slider/handle-lock-cs1/index.ts %} {% endhighlight %} {% highlight html tabtitle="index.html" %} @@ -113,5 +132,7 @@ let slider = new Slider({ {% include code-snippet/slider/handle-lock-cs1/index.css %} {% endhighlight %} {% endtabs %} - -{% previewsample "page.domainurl/code-snippet/slider/handle-lock-cs1" %} \ No newline at end of file + +{% previewsample "page.domainurl/code-snippet/slider/handle-lock-cs1" %} + +{% endif %} \ No newline at end of file diff --git a/ej2-javascript/range-slider/style.md b/ej2-javascript/range-slider/style.md index 83aba6eea..19f934d3b 100644 --- a/ej2-javascript/range-slider/style.md +++ b/ej2-javascript/range-slider/style.md @@ -1,7 +1,7 @@ --- layout: post -title: Style in ##Platform_Name## Range slider control | Syncfusion -description: Learn here all about Style in Syncfusion ##Platform_Name## Range slider control of Syncfusion Essential JS 2 and more. +title: Style in ##Platform_Name## Range Slider control | Syncfusion +description: Learn here all about Style in Syncfusion ##Platform_Name## Range Slider control of Syncfusion Essential JS 2 and more. platform: ej2-javascript control: Style publishingplatform: ##Platform_Name## @@ -9,7 +9,7 @@ documentation: ug domainurl: ##DomainURL## --- -# Style in ##Platform_Name## Range slider control +# Style in ##Platform_Name## Range Slider control The following content provides the exact CSS structure that can be used to modify the control's appearance based on the user preference. diff --git a/ej2-javascript/range-slider/ticks.md b/ej2-javascript/range-slider/ticks.md index a54b9eaf8..c540ac23c 100644 --- a/ej2-javascript/range-slider/ticks.md +++ b/ej2-javascript/range-slider/ticks.md @@ -1,7 +1,7 @@ --- layout: post -title: Ticks in ##Platform_Name## Range slider control | Syncfusion -description: Learn here all about Ticks in Syncfusion ##Platform_Name## Range slider control of Syncfusion Essential JS 2 and more. +title: Ticks in ##Platform_Name## Range Slider control | Syncfusion +description: Learn here all about Ticks in Syncfusion ##Platform_Name## Range Slider control of Syncfusion Essential JS 2 and more. platform: ej2-javascript control: Ticks publishingplatform: ##Platform_Name## @@ -9,9 +9,9 @@ documentation: ug domainurl: ##DomainURL## --- -# Ticks in ##Platform_Name## Range slider control +# Ticks in ##Platform_Name## Range Slider control -The Ticks in Slider supports you to easily identify the current value/values of the Slider. It contains `smallStep` and `largeStep`. The value of the major ticks alone will be displayed in the slider. In order to enable/disable the small ticks, use the `showSmallTicks` property. +Ticks in the Range Slider control help you easily identify the current value or values of the slider. The control includes `smallStep` and `largeStep`. The values of the major ticks will be displayed on the slider. To enable or disable the small ticks, use the [`showSmallTicks`](../api/slider/ticksDataModel/#showsmallticks) property. {% if page.publishingplatform == "typescript" %} @@ -48,7 +48,7 @@ The Ticks in Slider supports you to easily identify the current value/values of ## Step -When the Slider is moved, it increases/decreases the value based on the step value. By default, the value is increased/decreased by 1. Use the `step` property to change the increment step value. +When the Slider is moved, it increases/decreases the value based on the step value. By default, the value is increased/decreased by 1. Use the [`step`](../api/slider/#step) property to change the increment step value. {% if page.publishingplatform == "typescript" %} @@ -85,7 +85,7 @@ When the Slider is moved, it increases/decreases the value based on the step val ## Min and Max -Enables the minimum/starting and maximum/ending value of the Slider, by using the `min` and `max` property. By default, the minimum value is 1 and maximum value is 100. In the following sample the slider is rendered with the min value as 100 and max value as 1000. +Set the minimum and maximum values of the Range Slider using the [`min`](../api/slider/#min) and [`max`](../api/slider/#max) properties. By default, the minimum value is 1, and the maximum value is 100. In the following example, the slider is configured with a min value of 100 and a max value of 1000. {% if page.publishingplatform == "typescript" %} diff --git a/ej2-javascript/range-slider/ts/ej1-api-migration.md b/ej2-javascript/range-slider/ts/ej1-api-migration.md index c6c7086d7..9e48312c6 100644 --- a/ej2-javascript/range-slider/ts/ej1-api-migration.md +++ b/ej2-javascript/range-slider/ts/ej1-api-migration.md @@ -1,7 +1,7 @@ --- layout: post -title: Ej1 api migration in ##Platform_Name## Range slider control | Syncfusion -description: Learn here all about Ej1 api migration in Syncfusion ##Platform_Name## Range slider control of Syncfusion Essential JS 2 and more. +title: Ej1 api migration in ##Platform_Name## Range Slider control | Syncfusion +description: Learn here all about Ej1 api migration in Syncfusion ##Platform_Name## Range Slider control of Syncfusion Essential JS 2 and more. platform: ej2-javascript control: Ej1 api migration publishingplatform: ##Platform_Name## @@ -9,9 +9,9 @@ documentation: ug domainurl: ##DomainURL## --- -# Ej1 api migration in ##Platform_Name## Range slider control +# Ej1 api migration in ##Platform_Name## Range Slider control -This article describes the API migration process of Slider component from Essential JS 1 to Essential JS 2 +This article describes the API migration process of Range Slider control from Essential JS 1 to Essential JS 2 | Behavior | API in Essential JS 1 | API in Essential JS 2 | | --- | --- | --- | diff --git a/ej2-javascript/range-slider/ts/getting-started.md b/ej2-javascript/range-slider/ts/getting-started.md index 5d5a45ecf..f39cb4da9 100644 --- a/ej2-javascript/range-slider/ts/getting-started.md +++ b/ej2-javascript/range-slider/ts/getting-started.md @@ -1,7 +1,7 @@ --- layout: post -title: Getting started with ##Platform_Name## Range slider control | Syncfusion -description: Checkout and learn about Getting started with ##Platform_Name## Range slider control of Syncfusion Essential JS 2 and more details. +title: Getting started with ##Platform_Name## Range Slider control | Syncfusion +description: Checkout and learn about Getting started with ##Platform_Name## Range Slider control of Syncfusion Essential JS 2 and more details. platform: ej2-javascript control: Getting started publishingplatform: ##Platform_Name## @@ -9,16 +9,16 @@ documentation: ug domainurl: ##DomainURL## --- -# Getting started in ##Platform_Name## Range slider control +# Getting started in ##Platform_Name## Range Slider control -This section explains how to create a simple Range Slider component and configure its available functionalities in TypeScript, using Essential JS 2 [quickstart](https://github.com/SyncfusionExamples/ej2-quickstart-webpack-) seed repository. +This section explains how to create a simple Range Slider control and configure its available functionalities in TypeScript, using Essential JS 2 [quickstart](https://github.com/SyncfusionExamples/ej2-quickstart-webpack-) seed repository. > This application is integrated with the `webpack.config.js` configuration and uses the latest version of the [webpack-cli](https://webpack.js.org/api/cli/#commands). It requires node `v14.15.0` or higher. For more information about webpack and its features, refer to the [webpack documentation](https://webpack.js.org/guides/getting-started/). ## Dependencies -The following list of dependencies are required to use the Slider control in your application. +The following list of dependencies are required to use the Range Slider control in your application. ```javascript @@ -67,7 +67,7 @@ npm install ## Import the Syncfusion CSS styles -Combined CSS files are available in the Essential JS 2 package root folder. This can be referenced in the `~/src/styles/styles.css` file, as shown below: +Combined CSS files are available in the Essential JS 2 package root folder. This can be referenced in the `~/src/styles/styles.css` file, as shown below: {% tabs %} {% highlight css tabtitle="style.css" %} @@ -78,7 +78,7 @@ Combined CSS files are available in the Essential JS 2 package root folder. This {% endhighlight %} {% endtabs %} -## Adding Slider to the project +## Adding Range Slider to the project Add the div element with the id attribute `#slider` inside the body tag in your `index.html`. @@ -91,7 +91,7 @@ Add the div element with the id attribute `#slider` inside the body tag in your - Essential JS 2 Slider control + Essential JS 2 Range Slider control @@ -103,7 +103,7 @@ Add the div element with the id attribute `#slider` inside the body tag in your
          - +
          @@ -123,7 +123,7 @@ Add the div element with the id attribute `#slider` inside the body tag in your {% endhighlight %} {% endtabs %} -Import the Slider control into your `app.ts` and append it to `#slider` +Import the Range Slider control into your `app.ts` and append it to `#slider` `[src/app/app.ts]` {% tabs %} @@ -131,10 +131,10 @@ Import the Slider control into your `app.ts` and append it to `#slider` import { Slider } from '@syncfusion/ej2-inputs'; -// Initialization of Slider control +// Initialization of Range Slider control let slider: Slider = new Slider(); -// Render initialized Slider +// Render initialized Range Slider slider.appendTo('#slider'); {% endhighlight %} @@ -163,7 +163,7 @@ npm start {% include code-snippet/slider/getting-started-cs5/index.css %} {% endhighlight %} {% endtabs %} - + {% previewsample "page.domainurl/code-snippet/slider/getting-started-cs5" %} ## See Also diff --git a/ej2-javascript/rich-text-editor/images/javascript-richtexteditor-video-resize.png b/ej2-javascript/rich-text-editor/images/javascript-richtexteditor-video-resize.png index 1ece374bf..e98f67173 100644 Binary files a/ej2-javascript/rich-text-editor/images/javascript-richtexteditor-video-resize.png and b/ej2-javascript/rich-text-editor/images/javascript-richtexteditor-video-resize.png differ diff --git a/ej2-javascript/rich-text-editor/ts/video.md b/ej2-javascript/rich-text-editor/ts/video.md index 62b44e31c..b926a619f 100644 --- a/ej2-javascript/rich-text-editor/ts/video.md +++ b/ej2-javascript/rich-text-editor/ts/video.md @@ -410,5 +410,5 @@ public void SaveFiles(IList UploadFiles) ## See Also -* [How to edit the quick toolbar settings](./toolbar/#quick-inline-toolbar) -* [How to use the link editing option in the toolbar items](./link/) +* [How to edit the quick toolbar settings](./toolbar#quick-inline-toolbar) +* [How to use the link editing option in the toolbar items](./link) diff --git a/ej2-javascript/schedule/accessibility.md b/ej2-javascript/schedule/accessibility.md index 6b20061a0..0ae33b173 100644 --- a/ej2-javascript/schedule/accessibility.md +++ b/ej2-javascript/schedule/accessibility.md @@ -15,36 +15,9 @@ The Scheduler has been designed based on the WAI-ARIA specifications, thus apply The Scheduler makes use of the most required ARIA attributes such as `aria-label` and `role` to support the accessibility in it. To be more accurate, it must be used with an ARIA compliant browser along with the screen reader running from backend. -The accessibility compliance for the Schedule control is outlined below. - -| Accessibility Criteria | Compatibility | -| -- | -- | -| [WCAG 2.2](https://www.w3.org/TR/WCAG22/) Support | Yes | -| [Section 508](https://www.section508.gov/) Support | Yes | -| Screen Reader Support | Yes | -| Right-To-Left Support | Yes | -| Color Contrast | Yes | -| Mobile Device Support | Yes | -| Keyboard Navigation Support | Yes | -| [Accessibility Checker](https://www.npmjs.com/package/accessibility-checker) Validation | Yes | -| [Axe-core](https://www.npmjs.com/package/axe-core) Accessibility Validation | Yes | - - - -
          Yes - All features of the control meet the requirement.
          - -
          Intermediate - Some features of the control do not meet the requirement.
          - -
          No - The control does not meet the requirement.
          - ## ARIA attributes -The Scheduler parent element is assigned with a role of `main`, to denote it as the main content of a control as well as a unique element of the entire document. +The Scheduler parent element is assigned with a role of `main`, to denote it as the main content of a component as well as a unique element of the entire document. The following ARIA attributes are used in the Scheduler. @@ -61,11 +34,11 @@ The following ARIA attributes are used in the Scheduler. All the Scheduler actions can be controlled via keyboard keys by using the `allowKeyboardInteraction` property which is set to `true` by default. The following are the standard keys that work on Scheduler. -| Keys | Description | +Keys | Description | |-----|-----| | Alt + j | Focuses the Scheduler element [provided from application end]. | -| Tab | Focuses the first or active item on the Scheduler header bar and then move the focus to the next available event elements. If no events present, then focus moves out of the control. | -| Shift + Tab | Reverse focusing of the `Tab` key functionality. Inverse focusing of event elements from the last one and then move onto the first or active item on Scheduler header bar and then moves out of the control. +| Tab | Focuses the first or active item on the Scheduler header bar and then move the focus to the next available event elements. If no events present, then focus moves out of the component. | +| Shift + Tab | Reverse focusing of the `Tab` key functionality. Inverse focusing of event elements from the last one and then move onto the first or active item on Scheduler header bar and then moves out of the component. | Enter | Opens the quick info popup on the selected cells or events. | | Escape | Closes any of the popup that are in open state. | | Arrow | To move onto the next available cells in either of the needed directions. (left, right, top and right) | @@ -79,19 +52,5 @@ All the Scheduler actions can be controlled via keyboard keys by using the `allo | Space or Enter | It activates any of the focused items. | | Page Up & Page Down | To scroll through the work cells area. | | Home | To move the selection to the first cell of Scheduler. | -| Shift + Alt + Y | To navigate to today date. | -| Shift + Alt + N | To open editor window. | > You can refer to our [JavaScript Scheduler](https://www.syncfusion.com/javascript-ui-controls/js-scheduler) feature tour page for its groundbreaking feature representations. You can also explore our [JavaScript Scheduler example](https://ej2.syncfusion.com/demos/#/material/schedule/overview.html) to knows how to present and manipulate data. - -## Ensuring accessibility - -The Scheduler control accessibility levels are ensured through an [accessibility-checker](https://www.npmjs.com/package/accessibility-checker) and [axe-core](https://www.npmjs.com/package/axe-core) software tools during automated testing. - -The accessibility compliance of the Scheduler control is shown in the following sample. Open the [sample](https://ej2.syncfusion.com/accessibility/schedule.html) in a new window to evaluate the accessibility of the Scheduler control with accessibility tools. - -{% previewsample "https://ej2.syncfusion.com/accessibility/schedule.html" %} - -## See also - -- [Accessibility in Syncfusion components](../common/accessibility) diff --git a/ej2-javascript/schedule/appointments.md b/ej2-javascript/schedule/appointments.md index 5aa800417..78311b950 100644 --- a/ej2-javascript/schedule/appointments.md +++ b/ej2-javascript/schedule/appointments.md @@ -24,7 +24,7 @@ Represents an appointment that is created for any specific time interval within ### Creating a normal event -The following example depicts how to define a normal event on the Scheduler, with event data being loaded from simple JSON data. +Here's an example of how to create a normal event in the Scheduler using simple JSON data: {% tabs %} {% highlight ts tabtitle="index.ts" %} @@ -47,7 +47,7 @@ Represents an appointment that is created for more than 24 hours, and usually di Represents an appointment that is created for an entire day such as holiday events. It is usually displayed separately in an all-day row, a separate row for all-day appointments below the date header section. In Timeline views, the all-day appointments displays in the working space area, and no separate all-day row is present in that view. -> To change normal appointment into all-day event, set [`isAllDay`](https://ej2.syncfusion.com/documentation/api/schedule/field/#isallday) field to true. +> To change normal appointment into all-day event, set `isAllDay` field to true. ### Hide all-day row events @@ -65,7 +65,7 @@ You can make use of the CSS customization to prevent the display of all-day row ## Expand all day appointments view on initial load -When you have larger number of appointments in all-day view, you can show all all-day events using [`dataBound`](https://ej2.syncfusion.com/documentation/api/schedule#databound) event on at initial load. So, user don't have to click the toggle to expand all-day events. +When you have larger number of appointments in all-day view, you can show all all-day events using `dataBound` event on at initial load. So, user don't have to click the toggle to expand all-day events. {% tabs %} {% highlight ts tabtitle="index.ts" %} @@ -80,7 +80,7 @@ When you have larger number of appointments in all-day view, you can show all al ## Customize the rendering of the spanned events -By default, Scheduler will renders the spanned events (appointment with more than 24 hours duration) in the all-day row by setting `AllDayRow` will the default type renders to the [`spannedEventPlacement`](https://ej2.syncfusion.com/documentation/api/schedule/eventSettings/#spannedeventplacement) option within the [`eventSettings`](https://ej2.syncfusion.com/documentation/api/schedule/eventSettings/) property. Now we can customize rendering of the that events inside the work cells itself by modifying the [`spannedEventPlacement`](https://ej2.syncfusion.com/documentation/api/schedule/eventSettings/#spannedeventplacement) option as `TimeSlot`. In this following example, shows how to render the spanned appointments inside the work cells as follows. +By default, Scheduler will renders the spanned events (appointment with more than 24 hours duration) in the all-day row by setting `AllDayRow` will the default type renders to the `spannedEventPlacement` option within the `eventSettings` property. Now we can customize rendering of the that events inside the work cells itself by modifying the `spannedEventPlacement` option as `TimeSlot`. In this following example, shows how to render the spanned appointments inside the work cells as follows. {% tabs %} {% highlight ts tabtitle="index.ts" %} @@ -114,7 +114,7 @@ The following example depicts how to create a recurring event on Scheduler with ### Adding exceptions -A few instance of the recurrence series can be excluded on specific dates, by adding those exceptional dates to the [`recurrenceException`](https://ej2.syncfusion.com/documentation/api/schedule/field/#recurrenceexception) field. These date values should be given in the ISO date time format with no hyphens(-) separating the date elements. +A few instance of the recurrence series can be excluded on specific dates, by adding those exceptional dates to the `recurrenceException` field. These date values should be given in the ISO date time format with no hyphens(-) separating the date elements. For example, 22nd February 2018 can be represented as 20180222. Also, the time part being represented in UTC format needs to add "Z" after the time portion with no space. "07:30:00 UTC" is therefore represented as "073000Z". @@ -131,9 +131,9 @@ For example, 22nd February 2018 can be represented as 20180222. Also, the time p ### Editing an occurrence from a series -To dynamically edit a particular occurrence from an event series and display it on the initial load of Scheduler, the edited occurrence needs to be added as a new event to the dataSource collection, with an additional [`recurrenceID`](https://ej2.syncfusion.com/documentation/api/schedule/field/#recurrenceid) field defined to it. The [`recurrenceID`](https://ej2.syncfusion.com/documentation/api/schedule/field/#recurrenceid) field of edited occurrence usually maps the ID value of the parent event. +To dynamically edit a particular occurrence from an event series and display it on the initial load of Scheduler, the edited occurrence needs to be added as a new event to the dataSource collection, with an additional `recurrenceID` field defined to it. The `recurrenceID` field of edited occurrence usually maps the ID value of the parent event. -In this example, a recurring instance that displays on the date 30th Jan 2018 is edited with different timings. Therefore, this particular date is excluded from the parent recurring event that repeats from 28th January 2018 to 4th February 2018. This can be done by adding the [`recurrenceException`](https://ej2.syncfusion.com/documentation/api/schedule/field/#recurrenceexception) field with the excluded date value on the parent event. Also, the edited occurrence event which is created as a new event should carry the [`recurrenceID`](https://ej2.syncfusion.com/documentation/api/schedule/field/#recurrenceid) field pointing to the parent event's [`Id`](https://ej2.syncfusion.com/documentation/api/schedule/field/#id) value. +In this example, a recurring instance that displays on the date 30th Jan 2018 is edited with different timings. Therefore, this particular date is excluded from the parent recurring event that repeats from 28th January 2018 to 4th February 2018. This can be done by adding the `recurrenceException` field with the excluded date value on the parent event. Also, the edited occurrence event which is created as a new event should carry the `recurrenceID` field pointing to the parent event's `Id` value. {% tabs %} {% highlight ts tabtitle="index.ts" %} @@ -148,9 +148,9 @@ In this example, a recurring instance that displays on the date 30th Jan 2018 is ### Edit only the current and following events -To edit only the current and following events enable the property [`editFollowingEvents`](https://ej2.syncfusion.com/documentation/api/schedule/eventSettings/#editfollowingevents) within [`eventSettings`](https://ej2.syncfusion.com/documentation/api/schedule/eventSettings/) property. The edited occurrence needs to be added as a new event to the dataSource collection, with an additional [`followingID`](https://ej2.syncfusion.com/documentation/api/schedule/field/#followingid) field defined to it. The [`followingID`](https://ej2.syncfusion.com/documentation/api/schedule/field/#followingid) field of edited occurrence usually maps the ID value of the immediate parent event. +To edit only the current and following events enable the property `editFollowingEvents` within `eventSettings` property. The edited occurrence needs to be added as a new event to the dataSource collection, with an additional `followingID` field defined to it. The `followingID` field of edited occurrence usually maps the ID value of the immediate parent event. -In this example, a recurring instance that displays on the date 30th Jan 2018 and its following dates are edited with different subject. Therefore, this particular date and its following dates are excluded from the parent recurring event that repeats from 28th January 2018 to 4th February 2018. This can be done by updating the [`recurrenceRule`](https://ej2.syncfusion.com/documentation/api/schedule/field/#recurrencerule) field with the until date value on the parent event. Also, the edited events which is created as a new event should carry the [`followingID`](https://ej2.syncfusion.com/documentation/api/schedule/field/#followingid) field pointing to the immediate parent event's [`Id`](https://ej2.syncfusion.com/documentation/api/schedule/field/#id) value. +In this example, a recurring instance that displays on the date 30th Jan 2018 and its following dates are edited with different subject. Therefore, this particular date and its following dates are excluded from the parent recurring event that repeats from 28th January 2018 to 4th February 2018. This can be done by updating the `recurrenceRule` field with the until date value on the parent event. Also, the edited events which is created as a new event should carry the `followingID` field pointing to the immediate parent event's `Id` value. {% tabs %} {% highlight ts tabtitle="index.ts" %} @@ -165,7 +165,7 @@ In this example, a recurring instance that displays on the date 30th Jan 2018 an ### Recurrence options and rules -Events can be repeated on a daily, weekly, monthly or yearly basis based on the recurrence rule which accepts the string value. The following details should be assigned to the [`recurrenceRule`](https://ej2.syncfusion.com/documentation/api/schedule/field/#recurrencerule) property to generate the recurring instances. +Events can be repeated on a daily, weekly, monthly or yearly basis based on the recurrence rule which accepts the string value. The following details should be assigned to the `recurrenceRule` property to generate the recurring instances. * Repeat type - daily/weekly/monthly/yearly. * How many times it needs to be repeated? @@ -181,9 +181,9 @@ There are four repeat types available namely, ### Recurrence properties - The properties based on which the recurrence appointments are created with its respective time period are depicted in the following table. Also, the valid rule string can be referred from [`iCalendar`](https://tools.ietf.org/html/rfc5545#section-3.3.10) specifications. + The properties based on which the recurrence appointments are created with its respective time period are depicted in the following table. Also, the valid rule string can be referred from [iCalendar](https://tools.ietf.org/html/rfc5545#section-3.3.10) specifications. - > Refer [`iCalendar`](https://tools.ietf.org/html/rfc5545#section-3.3.10) specifications for valid recurrence rule string. + > Refer [iCalendar](https://tools.ietf.org/html/rfc5545#section-3.3.10) specifications for valid recurrence rule string. | Property | Purpose | Example | |-------|---------| --------- | @@ -252,9 +252,9 @@ The built-in validation support has been added by default for recurring appointm ## Event fields -The Scheduler dataSource usually holds the event instances, where each of the instance includes a collection of appropriate [`fields`](../api/schedule/field). It is mandatory to map these fields with the equivalent fields of database, when remote data is bound to it. When the local JSON data is bound, then the field names defined within the instances needs to be mapped with the scheduler event fields correctly. +The Scheduler dataSource usually holds the event instances, where each of the instance includes a collection of appropriate [fields](../api/schedule/field). It is mandatory to map these fields with the equivalent fields of database, when remote data is bound to it. When the local JSON data is bound, then the field names defined within the instances needs to be mapped with the scheduler event fields correctly. -> To create an event on Scheduler, it is enough to define the [`startTime`](https://ej2.syncfusion.com/documentation/api/schedule/field/#starttime) and [`endTime`](https://ej2.syncfusion.com/documentation/api/schedule/field/#endtime). Also [`id`](https://ej2.syncfusion.com/documentation/api/schedule/field/#id)field becomes mandatory to process CRUD actions on appropriate events. +> To create an event on Scheduler, it is enough to define the `startTime` and `endTime`. Also `id` field becomes mandatory to process CRUD actions on appropriate events. ### Built-in fields @@ -262,24 +262,24 @@ The built-in fields available on Scheduler event object are as follows. | Field name | Description | |-------|---------| -| id | The [`id`](https://ej2.syncfusion.com/documentation/api/schedule/field/#id) field needs to be defined as mandatory and this field usually assigns a unique ID value to each of the events.| -| subject | The [`subject`](https://ej2.syncfusion.com/documentation/api/schedule/field/#subject) field is optional, and usually assigns the summary text to each of the events.| -| startTime | The [`startTime`](https://ej2.syncfusion.com/documentation/api/schedule/field/#starttime) field defines the start time of an event and it is mandatory to provide it for any of the valid event objects.| -| endTime | The [`endTime`](https://ej2.syncfusion.com/documentation/api/schedule/field/#endtime) field defines the end time of an event and it is mandatory to provide the end time for any of the valid event objects.| -| startTimezone | It maps the [`startTimezone`](https://ej2.syncfusion.com/documentation/api/schedule/field/#starttimezone) field from the dataSource and usually accepts the valid IANA timezone names. It is assumed that the value provided for this field is taken into consideration while processing the [`startTime`](https://ej2.syncfusion.com/documentation/api/schedule/field/#starttime) field. When this field is not mapped with any timezone names, then the events will be processed based on the timezone assigned to the Scheduler.| -| endTimezone | It maps the [`endTimezone`](https://ej2.syncfusion.com/documentation/api/schedule/field/#endtimezone) field from the dataSource and usually accepts the valid IANA timezone names. It is assumed that the value provided for this field is taken into consideration while processing the [`endTime`](https://ej2.syncfusion.com/documentation/api/schedule/field/#endtime) field. When this field is not mapped with any timezone names, then the events will be processed based on the timezone assigned to the Scheduler.| -| location | It maps the [`location`](https://ej2.syncfusion.com/documentation/api/schedule/field/#location) field from the dataSource and the location text value will be displayed over the events.| -| description | It maps the [`description`](https://ej2.syncfusion.com/documentation/api/schedule/field/#description) field from the dataSource and denotes the event description which is optional.| -| isAllDay | The [`isAllDay`](https://ej2.syncfusion.com/documentation/api/schedule/field/#isallday) field is mapped from the dataSource and is used to denote whether an event is created for an entire day or for specific time alone. Usually, an event with [`isAllDay`](https://ej2.syncfusion.com/documentation/api/schedule/field/#isallday) field set to true will be considered as an all-day event. | -| recurrenceID | It maps the [`recurrenceID`](https://ej2.syncfusion.com/documentation/api/schedule/field/#recurrenceid) field from dataSource and usually holds the ID value of the parent recurrence event. This field is applicable only for the edited occurrence events.| -| recurrenceRule | It maps the [`recurrenceRule`](https://ej2.syncfusion.com/documentation/api/schedule/field/#recurrencerule) field from dataSource and holds the recurrence rule value in a string format. Also, it uniquely identifies whether the event belongs to a recurring type or normal ones. | -| recurrenceException | It maps the [vrecurrenceException`](https://ej2.syncfusion.com/documentation/api/schedule/field/#recurrenceexception) field from dataSource and is used to hold the collection of exception dates, on which the recurring occurrences needs to be excluded. The [`recurrenceException`](https://ej2.syncfusion.com/documentation/api/schedule/field/#recurrenceexception) should be specified in UTC format. | -| isReadonly | It maps the [`isReadonly`](https://ej2.syncfusion.com/documentation/api/schedule/field/#isreadonly) field from dataSource. It is mainly used to make specific appointments as readonly when set to `true`. | -| isBlock | It maps the [`isBlock`](https://ej2.syncfusion.com/documentation/api/schedule/field/#isblock) field from dataSource. It is used to block the particular time ranges in the Scheduler and prevents the event creation on those time slots. | +| id | The `id` field needs to be defined as mandatory and this field usually assigns a unique ID value to each of the events.| +| subject | The `subject` field is optional, and usually assigns the summary text to each of the events.| +| startTime | The `startTime` field defines the start time of an event and it is mandatory to provide it for any of the valid event objects.| +| endTime | The `endTime` field defines the end time of an event and it is mandatory to provide the end time for any of the valid event objects.| +| startTimezone | It maps the `startTimezone` field from the dataSource and usually accepts the valid IANA timezone names. It is assumed that the value provided for this field is taken into consideration while processing the `startTime` field. When this field is not mapped with any timezone names, then the events will be processed based on the timezone assigned to the Scheduler.| +| endTimezone | It maps the `endTimezone` field from the dataSource and usually accepts the valid IANA timezone names. It is assumed that the value provided for this field is taken into consideration while processing the `endTime` field. When this field is not mapped with any timezone names, then the events will be processed based on the timezone assigned to the Scheduler.| +| location | It maps the `location` field from the dataSource and the location text value will be displayed over the events.| +| description | It maps the `description` field from the dataSource and denotes the event description which is optional.| +| isAllDay | The `isAllDay` field is mapped from the dataSource and is used to denote whether an event is created for an entire day or for specific time alone. Usually, an event with `isAllDay` field set to true will be considered as an all-day event. | +| recurrenceID | It maps the `recurrenceID` field from dataSource and usually holds the ID value of the parent recurrence event. This field is applicable only for the edited occurrence events.| +| recurrenceRule | It maps the `recurrenceRule` field from dataSource and holds the recurrence rule value in a string format. Also, it uniquely identifies whether the event belongs to a recurring type or normal ones. | +| recurrenceException | It maps the `recurrenceException` field from dataSource and is used to hold the collection of exception dates, on which the recurring occurrences needs to be excluded. The `recurrenceException` should be specified in UTC format. | +| isReadonly | It maps the `isReadonly` field from dataSource. It is mainly used to make specific appointments as readonly when set to `true`. | +| isBlock | It maps the `isBlock` field from dataSource. It is used to block the particular time ranges in the Scheduler and prevents the event creation on those time slots. | ### Binding different field names -When the fields of event instances has the default mapping name, it is not mandatory to map them manually. If a Scheduler's dataSource holds the events collection with different field names, then it is necessary to map them with its equivalent field name within the [`eventSettings`](https://ej2.syncfusion.com/documentation/api/schedule/eventSettings/) property. +When the fields of event instances has the default mapping name, it is not mandatory to map them manually. If a Scheduler's dataSource holds the events collection with different field names, then it is necessary to map them with its equivalent field name within the `eventSettings` property. {% tabs %} {% highlight ts tabtitle="index.ts" %} @@ -292,7 +292,7 @@ When the fields of event instances has the default mapping name, it is not manda {% previewsample "page.domainurl/code-snippet/schedule/event-cs8" %} -> The mapper field [id](https://ej2.syncfusion.com/documentation/api/schedule/field/#id) is of string type and has no additional validation options, whereas all other fields are of `Object` type and has additional options. +> The mapper field `id` is of string type and has no additional validation options, whereas all other fields are of `Object` type and has additional options. ### Event field settings @@ -320,7 +320,7 @@ In following example, the Subject field in event editor will display its appropr ## Adding Custom fields -Apart from the default Scheduler fields, the user can include 'n' number of custom fields for appointments. The following code example shows how to include two custom fields namely **Status** and **Priority** within event collection. It is not necessary to bind the custom fields within the [`eventSettings`](https://ej2.syncfusion.com/documentation/api/schedule/eventSettings/). However, those additional fields can be accessed easily, for internal processing as well as from application end. +Apart from the default Scheduler fields, the user can include 'n' number of custom fields for appointments. The following code example shows how to include two custom fields namely **Status** and **Priority** within event collection. It is not necessary to bind the custom fields within the `eventSettings`. However, those additional fields can be accessed easily, for internal processing as well as from application end. {% tabs %} {% highlight ts tabtitle="index.ts" %} @@ -335,7 +335,7 @@ Apart from the default Scheduler fields, the user can include 'n' number of cust ## Customize the order of the overlapping events -By default, the scheduler will render the overlapping events based on the start and end time. Now we can customize the order of the overlapping events based on the custom fields by using the [`sortComparer`](https://ej2.syncfusion.com/documentation/api/schedule/eventSettings/#sortcomparer) property grouped under the [`eventSettings`](https://ej2.syncfusion.com/documentation/api/schedule/eventSettings/) property. The following code example shows how to sort the appointments based on the custom field as follows. +By default, the scheduler will render the overlapping events based on the start and end time. Now we can customize the order of the overlapping events based on the custom fields by using the `sortComparer` property grouped under the `eventSettings` property. The following code example shows how to sort the appointments based on the custom field as follows. {% tabs %} {% highlight ts tabtitle="index.ts" %} @@ -350,7 +350,7 @@ By default, the scheduler will render the overlapping events based on the start ## Drag and drop appointments -Appointments can be rescheduled to any time by dragging and dropping them onto the desired location. To work with drag and drop functionality, it is necessary to inject the module `DragAndDrop` and make sure that [`allowDragAndDrop`](https://ej2.syncfusion.com/documentation/api/schedule#allowdraganddrop) is set to `true` on Scheduler. In mobile mode, you can drag and drop the events by tap holding an event and dropping them on to the desired location. +Appointments can be rescheduled to any time by dragging and dropping them onto the desired location. To work with drag and drop functionality, it is necessary to inject the module `DragAndDrop` and make sure that `allowDragAndDrop` is set to true on Scheduler. In mobile mode, you can drag and drop the events by tap holding an event and dropping them on to the desired location. > By default, drag and drop action is applicable on all Scheduler views, except Agenda, Month-Agenda and Year view. @@ -367,7 +367,7 @@ Appointments can be rescheduled to any time by dragging and dropping them onto t ### Drag and drop multiple appointments -We can drag and drop multiple appointments by enabling the [`allowMultiDrag`](https://ej2.syncfusion.com/documentation/api/schedule#allowmultidrag) property. We can select multiple appointments by holding the CTRL key. Once the events are selected, we can leave the CTRL key and start dragging the event. +We can drag and drop multiple appointments by enabling the `allowMultiDrag` property. We can select multiple appointments by holding the CTRL key. Once the events are selected, we can leave the CTRL key and start dragging the event. We can also drag multiple events from one resource to another resource. In this case, if all the selected events are in the different resources, then all the events should be moved to the single resource that is related to the target event. @@ -386,7 +386,7 @@ We can also drag multiple events from one resource to another resource. In this ### Disable the drag action -By default, you can drag and drop the events within any of the applicable scheduler views, and to disable it, set `false` to the [`allowMultiDrag`](https://ej2.syncfusion.com/documentation/api/schedule#allowmultidrag) property. +By default, you can drag and drop the events within any of the applicable scheduler views, and to disable it, set `false` to the `allowDragAndDrop` property. {% tabs %} {% highlight ts tabtitle="index.ts" %} @@ -401,7 +401,7 @@ By default, you can drag and drop the events within any of the applicable schedu ### Preventing drag and drop on specific targets -It is possible to prevent the drag action on particular target, by passing the target to be excluded in the [`excludeSelectors`](https://ej2.syncfusion.com/documentation/api/schedule/dragEventArgs/#excludeselectors) option within [`dragStart`](https://ej2.syncfusion.com/documentation/api/schedule#dragstart) event. In this example, we have prevented the drag action on all-day row. +It is possible to prevent the drag action on particular target, by passing the target to be excluded in the `excludeSelectors` option within `dragStart` event. In this example, we have prevented the drag action on all-day row. {% tabs %} {% highlight ts tabtitle="index.ts" %} @@ -416,7 +416,7 @@ It is possible to prevent the drag action on particular target, by passing the t ### Disable scrolling on drag action -By default, while dragging an appointment to the edges, either top/bottom in the vertical Scheduler or left/right in the timeline Scheduler, scrolling action takes place automatically. To prevent this scrolling, set `false` to the [`scroll`](https://ej2.syncfusion.com/documentation/api/schedule/dragEventArgs/#scroll) value within the [`dragStart`](https://ej2.syncfusion.com/documentation/api/schedule#dragstart) event arguments. +By default, while dragging an appointment to the edges, either top/bottom in the vertical Scheduler or left/right in the timeline Scheduler, scrolling action takes place automatically. To prevent this scrolling, set `false` to the `scroll` value within the `dragStart` event arguments. {% tabs %} {% highlight ts tabtitle="index.ts" %} @@ -431,7 +431,7 @@ By default, while dragging an appointment to the edges, either top/bottom in the ### Controlling scroll speed while dragging an event -The speed of the scrolling action while dragging an appointment to the Scheduler edges, can be controlled within the [`dragStart`](https://ej2.syncfusion.com/documentation/api/schedule#dragstart) event by setting the desired value to the [`scrollBy`](https://ej2.syncfusion.com/documentation/api/schedule/scrollOptions/#scrollby) and [`timeDelay`](https://ej2.syncfusion.com/documentation/api/schedule/scrollOptions/#timedelay)option whereas its default value is 30 minutes and 100ms. +The speed of the scrolling action while dragging an appointment to the Scheduler edges, can be controlled within the `dragStart` event by setting the desired value to the `scrollBy` and `timeDelay` option whereas its default value is 30 minutes and 100ms. {% tabs %} {% highlight ts tabtitle="index.ts" %} @@ -446,9 +446,9 @@ The speed of the scrolling action while dragging an appointment to the Scheduler ### Auto navigation of date ranges on dragging an event -When an event is dragged either to the left or right extreme edges of the Scheduler and kept hold for few seconds without dropping, the auto navigation of date ranges will be enabled allowing the Scheduler to navigate from current date range to back and forth respectively. This action is set to `false` by default and to enable it, you need to set [`navigation`](https://ej2.syncfusion.com/documentation/api/schedule/dragEventArgs/#navigation) to true within the [`dragStart`](https://ej2.syncfusion.com/documentation/api/schedule#dragstart) event. +When an event is dragged either to the left or right extreme edges of the Scheduler and kept hold for few seconds without dropping, the auto navigation of date ranges will be enabled allowing the Scheduler to navigate from current date range to back and forth respectively. This action is set to `false` by default and to enable it, you need to set `navigation` to true within the `dragStart` event. -By default, the navigation delay is set to 2000ms. The navigation delay decides how long the user needs to drag and hold the appointments at the extremities. You can also set your own delay value for letting the users to navigate based on it, using the [`timeDelay`](https://ej2.syncfusion.com/documentation/api/schedule/scrollOptions/#timedelay) within the [`dragStart`](https://ej2.syncfusion.com/documentation/api/schedule#dragstart) event. +By default, the navigation delay is set to 2000ms. The navigation delay decides how long the user needs to drag and hold the appointments at the extremities. You can also set your own delay value for letting the users to navigate based on it, using the `timeDelay` within the `dragStart` event. {% tabs %} {% highlight ts tabtitle="index.ts" %} @@ -463,7 +463,7 @@ By default, the navigation delay is set to 2000ms. The navigation delay decides ### Setting drag time interval -By default, while dragging an appointment, it moves at an interval of 30 minutes. To change the dragging time interval, pass the appropriate values to the [`interval`](https://ej2.syncfusion.com/documentation/api/schedule/dragEventArgs/#interval) option within the [`dragStart`](https://ej2.syncfusion.com/documentation/api/schedule#dragstart) event. +By default, while dragging an appointment, it moves at an interval of 30 minutes. To change the dragging time interval, pass the appropriate values to the `interval` option within the `dragStart` event. {% tabs %} {% highlight ts tabtitle="index.ts" %} @@ -478,9 +478,9 @@ By default, while dragging an appointment, it moves at an interval of 30 minutes ### Drag and drop items from external source -It is possible to drag and drop the unplanned items from any of the external source into the scheduler, by manually saving those dropped item as a new appointment data through [`addEvent`](https://ej2.syncfusion.com/documentation/api/schedule#addevent) method of Scheduler. +It is possible to drag and drop the unplanned items from any of the external source into the scheduler, by manually saving those dropped item as a new appointment data through `addEvent` method of Scheduler. -In this example, we have used the tree view control as an external source and the child nodes from the tree view component are dragged and dropped onto the Scheduler. Therefore, it is necessary to make use of the [`nodeDragStop`](https://ej2.syncfusion.com/documentation/api/treeview/#nodedragstop) event of the TreeView component, where we can form an event object and save it using the [`addEvent`](https://ej2.syncfusion.com/documentation/api/schedule#addevent) method. +In this example, we have used the tree view control as an external source and the child nodes from the tree view component are dragged and dropped onto the Scheduler. Therefore, it is necessary to make use of the `nodeDragStop` event of the TreeView component, where we can form an event object and save it using the `addEvent` method. {% tabs %} {% highlight ts tabtitle="index.ts" %} @@ -495,7 +495,7 @@ In this example, we have used the tree view control as an external source and th ### Opening the editor window on drag stop -There are scenarios where you want to open the editor filled with data on newly dropped location and may need to proceed to save it, only when `Save` button is clicked on the editor. On clicking the cancel button should revert these changes. This can be achieved using the [`dragStop`](https://ej2.syncfusion.com/documentation/api/schedule#dragstop) event of Scheduler. +There are scenarios where you want to open the editor filled with data on newly dropped location and may need to proceed to save it, only when `Save` button is clicked on the editor. On clicking the cancel button should revert these changes. This can be achieved using the `dragStop` event of Scheduler. {% tabs %} {% highlight ts tabtitle="index.ts" %} @@ -518,7 +518,7 @@ To enable the inline edit mode, single click on any of the existing appointment The inline option can be enabled/disabled on the Scheduler by using the allowInline API, whereas its default value is set to false. -While using the [`allowInline`](https://ej2.syncfusion.com/documentation/api/schedule#allowinline) the [`showQuickInfo`](https://ej2.syncfusion.com/documentation/api/schedule#showquickinfo) will be turned off. The `quickPopup` will not show on clicking the work cell or clicking the appointment when the [`allowInline`](https://ej2.syncfusion.com/documentation/api/schedule#allowinline) property is set to `true`. +While using the `allowInline` the `showQuickInfo` will be turned off. The `quickPopup` will not show on clicking the work cell or clicking the appointment when the `allowInline` property is set to true. In work cells, select multiple cells using keyboard, and then press enter key. The appointment wrapper will be created, and focus will be on the subject field. Also, consider the overlapping scenarios when creating an inline event. ### Normal Event @@ -542,7 +542,7 @@ While editing the occurrence from the recurrence series, it is only possible to ## Appointment Resizing -Another way of rescheduling an appointment can be done by resizing it through either of its handlers. To work with resizing functionality, it is necessary to inject the module `Resize` and make sure that [`allowResizing`](https://ej2.syncfusion.com/documentation/api/schedule#allowresizing) property is set to true. +Another way of rescheduling an appointment can be done by resizing it through either of its handlers. To work with resizing functionality, it is necessary to inject the module `Resize` and make sure that `allowResizing` property is set to true. {% tabs %} {% highlight ts tabtitle="index.ts" %} @@ -557,7 +557,7 @@ Another way of rescheduling an appointment can be done by resizing it through ei ### Disable the resize action -By default, resizing of events is allowed on all Scheduler views except Agenda and Month-Agenda view. To disable this event resizing action, set `false` to the [`allowResizing`](https://ej2.syncfusion.com/documentation/api/schedule#allowresizing) property. +By default, resizing of events is allowed on all Scheduler views except Agenda and Month-Agenda view. To disable this event resizing action, set false to the `allowResizing` property. {% tabs %} {% highlight ts tabtitle="index.ts" %} @@ -572,7 +572,7 @@ By default, resizing of events is allowed on all Scheduler views except Agenda a ### Disable scrolling on resize action -By default, while resizing an appointment, when its handler reaches the extreme edges of the Scheduler, scrolling action will takes place along with event resizing. To prevent this scrolling action, set `false` to [scroll](https://ej2.syncfusion.com/documentation/api/schedule/resizeEventArgs/#scroll) value within the [`resizeStart`](https://ej2.syncfusion.com/documentation/api/schedule#resizestart) event. +By default, while resizing an appointment, when its handler reaches the extreme edges of the Scheduler, scrolling action will takes place along with event resizing. To prevent this scrolling action, set false to `scroll` value within the `resizeStart` event. {% tabs %} {% highlight ts tabtitle="index.ts" %} @@ -587,7 +587,7 @@ By default, while resizing an appointment, when its handler reaches the extreme ### Controlling scroll speed while resizing an event -The speed of the scrolling action while resizing an appointment to the Scheduler edges, can be controlled within the [`resizeStart`](https://ej2.syncfusion.com/documentation/api/schedule#resizestart) event by setting the desired value to the `scrollBy` option. +The speed of the scrolling action while resizing an appointment to the Scheduler edges, can be controlled within the `resizeStart` event by setting the desired value to the `scrollBy` option. {% tabs %} {% highlight ts tabtitle="index.ts" %} @@ -602,7 +602,7 @@ The speed of the scrolling action while resizing an appointment to the Scheduler ### Setting resize time interval -By default, while resizing an appointment, it extends or shrinks at an interval of 30 minutes. To change this default resize interval, set appropriate values to [`interval`](https://ej2.syncfusion.com/documentation/api/schedule/resizeEventArgs/#interval) option within the [`resizeStart`](https://ej2.syncfusion.com/documentation/api/schedule#resizestart) event. +By default, while resizing an appointment, it extends or shrinks at an interval of 30 minutes. To change this default resize interval, set appropriate values to `interval` option within the `resizeStart` event. {% tabs %} {% highlight ts tabtitle="index.ts" %} @@ -625,7 +625,7 @@ The look and feel of the Scheduler events can be customized using any one of the ### Using template -Any kind of text, images and links can be added to customize the look of the events. The user can format and change the default appearance of the events by making use of the [`template`](https://ej2.syncfusion.com/documentation/api/schedule/eventSettings/#template) option available within the [`eventSettings`](https://ej2.syncfusion.com/documentation/api/schedule/eventSettings/) property. The following code example customizes the appointment's default color and time format. +Any kind of text, images and links can be added to customize the look of the events. The user can format and change the default appearance of the events by making use of the `template` option available within the `eventSettings` property. The following code example customizes the appointment's default color and time format. {% tabs %} {% highlight ts tabtitle="index.ts" %} @@ -638,11 +638,11 @@ Any kind of text, images and links can be added to customize the look of the eve {% previewsample "page.domainurl/code-snippet/schedule/event-template-cs1" %} -> All the built-in fields that are mapped to the appropriate field properties within the [`eventSettings`](https://ej2.syncfusion.com/documentation/api/schedule/eventSettings/), as well as custom mapped fields from the Scheduler dataSource can be accessed within the template code. +> All the built-in fields that are mapped to the appropriate field properties within the `eventSettings`, as well as custom mapped fields from the Scheduler dataSource can be accessed within the template code. ### Using eventRendered event -The [`eventRendered`](https://ej2.syncfusion.com/documentation/api/schedule#eventrendered) event triggers before the appointment renders on the Scheduler. Therefore, this client-side event can be utilized to customize the look of events based on any specific criteria, before rendering them on the scheduler. +The `eventRendered` event triggers before the appointment renders on the Scheduler. Therefore, this client-side event can be utilized to customize the look of events based on any specific criteria, before rendering them on the scheduler. {% tabs %} {% highlight ts tabtitle="index.ts" %} @@ -657,7 +657,7 @@ The [`eventRendered`](https://ej2.syncfusion.com/documentation/api/schedule#even ### Using custom CSS class -The customization of events can also be achieved using [`cssClass`](https://ej2.syncfusion.com/documentation/api/schedule#cssclass) property of the Scheduler. In the following example, the background of appointments has been changed using the cssClass. +The customization of events can also be achieved using `cssClass` property of the Scheduler. In the following example, the background of appointments has been changed using the cssClass. {% tabs %} {% highlight ts tabtitle="index.ts" %} @@ -672,7 +672,7 @@ The customization of events can also be achieved using [`cssClass`](https://ej2. ## Setting minimum height -It is possible to set minimal height for appointments on Scheduler using [`eventRendered`](https://ej2.syncfusion.com/documentation/api/schedule#eventrendered) event, when its start and end time duration is less than the default duration of a single slot. +It is possible to set minimal height for appointments on Scheduler using `eventRendered` event, when its start and end time duration is less than the default duration of a single slot. {% tabs %} {% highlight ts tabtitle="index.ts" %} @@ -687,7 +687,7 @@ It is possible to set minimal height for appointments on Scheduler using [`event ## Block Dates and Times -It is possible to block a set of dates or a particular time ranges on the Scheduler. To do so, define an appointment object within [`eventSettings`](https://ej2.syncfusion.com/documentation/api/schedule/eventSettings/) along with the required time range to block and set the [`isBlock`](https://ej2.syncfusion.com/documentation/api/schedule/field/#isblock) field to true. Usually, the event objects defined with isBlock field set to true will block the entire time cells lying within the appropriate time ranges specified through [`startTime`](https://ej2.syncfusion.com/documentation/api/schedule/field/#starttime)and [`endTime`](https://ej2.syncfusion.com/documentation/api/schedule/field/#endtime) fields. +It is possible to block a set of dates or a particular time ranges on the Scheduler. To do so, define an appointment object within `eventSettings` along with the required time range to block and set the `isBlock` field to true. Usually, the event objects defined with isBlock field set to true will block the entire time cells lying within the appropriate time ranges specified through `startTime` and `endTime` fields. {% tabs %} {% highlight ts tabtitle="index.ts" %} @@ -715,7 +715,7 @@ Block events can also be defined to repeat on several days as shown in the follo ## Readonly -An interaction with the appointments of Scheduler can be enabled/disabled using the [`readonly`](https://ej2.syncfusion.com/documentation/api/schedule#readonly) property. With this property enabled, you can simply navigate between the Scheduler dates, views and can be able to view the appointment details in the quick info window. Most importantly, the users are not allowed to perform any CRUD actions on Scheduler, when this property is set to true. By default, it is set as `false`. +An interaction with the appointments of Scheduler can be enabled/disabled using the `readonly` property. With this property enabled, you can simply navigate between the Scheduler dates, views and can be able to view the appointment details in the quick info window. Most importantly, the users are not allowed to perform any CRUD actions on Scheduler, when this property is set to true. By default, it is set as `false`. {% tabs %} {% highlight ts tabtitle="index.ts" %} @@ -730,7 +730,7 @@ An interaction with the appointments of Scheduler can be enabled/disabled using ## Make specific events readonly -There are scenarios where you need to restrict the CRUD action on specific appointments alone based on certain conditions. In the following example, the events that has occurred on the past hours from the current date of the Scheduler are made as read-only and the CRUD actions has been prevented only on those appointments. This can be achieved by setting [`isReadonly`](https://ej2.syncfusion.com/documentation/api/schedule/field/#isreadonly) field of read-only events to `true`. +There are scenarios where you need to restrict the CRUD action on specific appointments alone based on certain conditions. In the following example, the events that has occurred on the past hours from the current date of the Scheduler are made as read-only and the CRUD actions has been prevented only on those appointments. This can be achieved by setting `isReadonly` field of read-only events to `true`. {% tabs %} {% highlight ts tabtitle="index.ts" %} @@ -739,20 +739,15 @@ There are scenarios where you need to restrict the CRUD action on specific appoi {% highlight html tabtitle="index.html" %} {% include code-snippet/schedule/event-cs33/index.html %} {% endhighlight %} -{% highlight ts tabtitle="datasource.ts" %} -{% include code-snippet/schedule/event-cs33/datasource.ts %} -{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/schedule/event-cs33" %} -> By default, the event editor is prevented to open on the read-only events when [`isReadonly`](https://ej2.syncfusion.com/documentation/api/schedule/field/#isreadonly) field is set to `true`. +> By default, the event editor is prevented to open on the read-only events when `isReadonly` field is set to `true`. ## Restricting event creation on specific time slots -You can restrict the users to create and update more than one appointment on specific time slots. Also, you can disable the CRUD action on those time slots if it is already occupied, which can be achieved using Scheduler's public method [`isSlotAvailable`](https://ej2.syncfusion.com/documentation/api/schedule#isslotavailable). - ->Note: The **isSlotAvailable** is centered around verifying appointments within the present view's date range. Yet, it does not encompass an evaluation of availability for recurrence occurrences that fall beyond this particular date range. +You can restrict the users to create and update more than one appointment on specific time slots. Also, you can disable the CRUD action on those time slots if it is already occupied, which can be achieved using Scheduler's public method `isSlotAvailable`. {% tabs %} {% highlight ts tabtitle="index.ts" %} @@ -767,7 +762,7 @@ You can restrict the users to create and update more than one appointment on spe ## Differentiate the past time events -To differentiate the appearance of the appointments based on specific criteria such as displaying the past hour appointments with different colors on Scheduler, [`eventRendered`](https://ej2.syncfusion.com/documentation/api/schedule#eventrendered) event can be used which triggers before the appointment renders on the Scheduler. +To differentiate the appearance of the appointments based on specific criteria such as displaying the past hour appointments with different colors on Scheduler, `eventRendered` event can be used which triggers before the appointment renders on the Scheduler. {% tabs %} {% highlight ts tabtitle="index.ts" %} @@ -782,9 +777,9 @@ To differentiate the appearance of the appointments based on specific criteria s ## Appointments occupying entire cell -The Scheduler allows the event to occupies the full height of the cell without its header part by setting `true` for [`enableMaxHeight`](https://ej2.syncfusion.com/documentation/api/schedule/eventSettings/#enablemaxheight) Property. +The Scheduler allows the event to occupies the full height of the cell without its header part by setting `true` for `enableMaxHeight` Property. -We can show more indicator if more than one appointment is available in a same cell by setting `true` to [`enableIndicator`](https://ej2.syncfusion.com/documentation/api/schedule/eventSettings/#enableindicator) property whereas its default value is `false`. +We can show more indicator if more than one appointment is available in a same cell by setting `true` to `enableIndicator` property whereas its default value is false. {% tabs %} {% highlight ts tabtitle="index.ts" %} @@ -797,49 +792,13 @@ We can show more indicator if more than one appointment is available in a same c {% previewsample "page.domainurl/code-snippet/schedule/event-cs35" %} -## How to limit maximum number of events to display - -In the Scheduler, the default behavior is to display concurrent events based on cell height, with each new event represented as -`+n more` characters. However, you may want to improve the quality of the presentation by limiting the number of concurrent events. This can be accomplished by using the [`maxEventsPerRow`](https://ej2.syncfusion.com/documentation/api/schedule/views/#maxeventsperrow) property, which is defaulted to the [`views`](https://ej2.syncfusion.com/documentation/api/schedule/views/) property. - -The [`maxEventsPerRow`](https://ej2.syncfusion.com/documentation/api/schedule/views/#maxeventsperrow) property is specific to the month, timeline month, and timeline year views, allowing you to view events visually in these rows. Below is a code example that demonstrates how to use this constraint and the events displayed in a cell have been created: - -{% if page.publishingplatform == "typescript" %} - -{% tabs %} -{% highlight ts tabtitle="index.ts" %} -{% include code-snippet/schedule/view-cs19/index.ts %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/schedule/view-cs19/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/schedule/view-cs19" %} - -{% elsif page.publishingplatform == "javascript" %} - -{% tabs %} -{% highlight js tabtitle="index.js" %} -{% include code-snippet/schedule/view-cs19/index.js %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/schedule/view-cs19/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/schedule/view-cs19" %} -{% endif %} - -> The property [`maxEventsPerRow`](https://ej2.syncfusion.com/documentation/api/schedule/views/#maxeventsperrow) will be applicable only when [`rowAutoHeight`](https://ej2.syncfusion.com/documentation/api/schedule#rowautoheight) feature is disabled in the Scheduler. - ## Display tooltip for appointments The tooltip shows the Scheduler appointment's information in a formatted style by making use of the tooltip related options. ### Show or hide built-in tooltip -The tooltip can be displayed for appointments by setting `true` to the [`enableTooltip`](https://ej2.syncfusion.com/documentation/api/schedule/eventSettings/#enabletooltip) option within the [`eventSettings`](https://ej2.syncfusion.com/documentation/api/schedule/eventSettings/) property. +The tooltip can be displayed for appointments by setting `true` to the `enableTooltip` option within the `eventSettings` property. {% tabs %} {% highlight ts tabtitle="index.ts" %} @@ -854,7 +813,7 @@ The tooltip can be displayed for appointments by setting `true` to the [`enableT ### Customizing event tooltip using template -After enabling the default tooltip, it is possible to customize the display of needed event information on tooltip by making use of the [`tooltipTemplate`](https://ej2.syncfusion.com/documentation/api/schedule/eventSettings/#tooltiptemplate) option within the [`eventSettings`](https://ej2.syncfusion.com/documentation/api/schedule/eventSettings/). +After enabling the default tooltip, it is possible to customize the display of needed event information on tooltip by making use of the `tooltipTemplate` option within the `eventSettings`. {% tabs %} {% highlight ts tabtitle="index.ts" %} @@ -867,11 +826,11 @@ After enabling the default tooltip, it is possible to customize the display of n {% previewsample "page.domainurl/code-snippet/schedule/tooltip-cs1" %} -> All the field names that are mapped from the Scheduler dataSource to the appropriate field properties such as subject, description, location, startTime and endTime within the [`eventSettings`](https://ej2.syncfusion.com/documentation/api/schedule/eventSettings/) can be accessed within the template. +> All the field names that are mapped from the Scheduler dataSource to the appropriate field properties such as subject, description, location, startTime and endTime within the `eventSettings` can be accessed within the template. ## Appointment filtering -The appointments can be filtered by passing the predicate value to [`query`](https://ej2.syncfusion.com/documentation/api/schedule/eventSettings/#query) option in [`eventSettings`](https://ej2.syncfusion.com/documentation/api/schedule/eventSettings/). The following code example shows how to filter and render the selected appointments alone in the Scheduler. +The appointments can be filtered by passing the predicate value to `query` option in `eventSettings`. The following code example shows how to filter and render the selected appointments alone in the Scheduler. {% tabs %} {% highlight ts tabtitle="index.ts" %} @@ -899,7 +858,7 @@ With the options available to select multiple appointments, it is also possible ## Retrieve event details from the UI of an event -It is possible to access the information about the event fields of an appointment element displayed on the Scheduler UI. This can be achieved by passing an appointment element as argument to the public method [`getEventDetails`](https://ej2.syncfusion.com/documentation/api/schedule#geteventdetails). +It is possible to access the information about the event fields of an appointment element displayed on the Scheduler UI. This can be achieved by passing an appointment element as argument to the public method `getEventDetails`. In the following example, the subject of the appointment clicked has been displayed. @@ -916,7 +875,7 @@ In the following example, the subject of the appointment clicked has been displa ## Get the current view appointments -To retrieve the appointments present in the current view of the Scheduler, you can make use of the [`getCurrentViewEvents`](https://ej2.syncfusion.com/documentation/api/schedule#getcurrentviewevents) public method. In the following example, the count of current view appointment collection rendered has been traced in [`dataBound`](https://ej2.syncfusion.com/documentation/api/schedule#databound) event. +To retrieve the appointments present in the current view of the Scheduler, you can make use of the `getCurrentViewEvents` public method. In the following example, the count of current view appointment collection rendered has been traced in `dataBound` event. {% tabs %} {% highlight ts tabtitle="index.ts" %} @@ -931,7 +890,7 @@ To retrieve the appointments present in the current view of the Scheduler, you c ## Get the entire appointment collections -The entire collection of appointments rendered on the Scheduler can be accessed using the [`getEvents`](https://ej2.syncfusion.com/documentation/api/schedule#getevents) public method. In the following example, the count of entire appointment collection rendered on the Scheduler has been traced in [`dataBound`](https://ej2.syncfusion.com/documentation/api/schedule#databound) event. +The entire collection of appointments rendered on the Scheduler can be accessed using the `getEvents` public method. In the following example, the count of entire appointment collection rendered on the Scheduler has been traced in `dataBound` event. {% tabs %} {% highlight ts tabtitle="index.ts" %} @@ -946,7 +905,7 @@ The entire collection of appointments rendered on the Scheduler can be accessed ## Refresh appointments -If your requirement is to simply refresh the appointments instead of refreshing the entire Scheduler elements from your application end, make use of the [`refreshEvents`](https://ej2.syncfusion.com/documentation/api/schedule#refreshevents) public method. +If your requirement is to simply refresh the appointments instead of refreshing the entire Scheduler elements from your application end, make use of the `refreshEvents` public method. ```ts scheduleObj.refreshEvents(); diff --git a/ej2-javascript/schedule/cell-customization.md b/ej2-javascript/schedule/cell-customization.md index fb7f8b684..9b8c78a5a 100644 --- a/ej2-javascript/schedule/cell-customization.md +++ b/ej2-javascript/schedule/cell-customization.md @@ -11,11 +11,11 @@ domainurl: ##DomainURL## # Cell customization in ##Platform_Name## Schedule control -The cells of the Scheduler can be easily customized either using the cell template or [`renderCell`](https://ej2.syncfusion.com/documentation/api/schedule#rendercell) event. +The cells of the Scheduler can be easily customized either using the cell template or `renderCell` event. ## Setting cell dimensions in all views -The height and width of the Scheduler cells can be customized either to increase or reduce its size through the [`cssClass`](https://ej2.syncfusion.com/documentation/api/schedule#cssclass) property, which overrides the default CSS applied on cells. +The height and width of the Scheduler cells can be customized either to increase or reduce its size through the `cssClass` property, which overrides the default CSS applied on cells. {% if page.publishingplatform == "typescript" %} @@ -46,9 +46,7 @@ The height and width of the Scheduler cells can be customized either to increase ## Check for cell availability -You can check whether the given time range slots are available for event creation or already occupied by other events using the [`isSlotAvailable`](https://ej2.syncfusion.com/documentation/api/schedule#isslotavailable) method. In the following code example, if a specific time slot already contains an appointment, then no more appointments can be added to that cell. - ->Note: The **isSlotAvailable** is centered around verifying appointments within the present view's date range. Yet, it does not encompass an evaluation of availability for recurrence occurrences that fall beyond this particular date range. +You can check whether the given time range slots are available for event creation or already occupied by other events using the `isSlotAvailable` method. In the following code example, if a specific time slot already contains an appointment, then no more appointments can be added to that cell. {% if page.publishingplatform == "typescript" %} @@ -79,11 +77,11 @@ You can check whether the given time range slots are available for event creatio ## Customizing cells in all the views -It is possible to customize the appearance of the cells using both template options and [`renderCell`](https://ej2.syncfusion.com/documentation/api/schedule#rendercell) event on all the views. +It is possible to customize the appearance of the cells using both template options and `renderCell` event on all the views. ### Using template -The [`cellTemplate`](https://ej2.syncfusion.com/documentation/api/schedule#celltemplate) option accepts the template string and is used to customize the cell background with specific images or appropriate text on the given date values. +The `cellTemplate` option accepts the template string and is used to customize the cell background with specific images or appropriate text on the given date values. {% if page.publishingplatform == "typescript" %} @@ -114,7 +112,7 @@ The [`cellTemplate`](https://ej2.syncfusion.com/documentation/api/schedule#cellt ### Using renderCell event -An alternative to [`cellTemplate`](https://ej2.syncfusion.com/documentation/api/schedule#celltemplate) is the [`renderCell`](https://ej2.syncfusion.com/documentation/api/schedule#rendercell) event, which can also be used to customize the cells with appropriate images or formatted text values. +An alternative to `cellTemplate` is the `renderCell` event, which can also be used to customize the cells with appropriate images or formatted text values. {% if page.publishingplatform == "typescript" %} @@ -143,7 +141,7 @@ An alternative to [`cellTemplate`](https://ej2.syncfusion.com/documentation/api/ {% previewsample "page.domainurl/code-snippet/schedule/cell-dimension-cs5" %} {% endif %} -You can customize cells such as work cells, month cells, all-day cells, header cells, resource header cells using [`renderCell`](https://ej2.syncfusion.com/documentation/api/schedule#rendercell) event by checking the [`elementType`](https://ej2.syncfusion.com/documentation/api/schedule/renderCellEventArgs/#elementtype) option within the event. You can check elementType with any of the following. +You can customize cells such as work cells, month cells, all-day cells, header cells, resource header cells using `renderCell` event by checking the `elementType` option within the event. You can check elementType with any of the following. | Element type | Description | |-------|---------| @@ -161,7 +159,7 @@ You can customize cells such as work cells, month cells, all-day cells, header c ## Customizing cell header in month view -The month header of each date cell in the month view can be customized using the [`cellHeaderTemplate`](https://ej2.syncfusion.com/documentation/api/schedule#cellheadertemplate) option which accepts the string or HTMLElement. The corresponding date can be accessed with the template. +The month header of each date cell in the month view can be customized using the `cellHeaderTemplate` option which accepts the string or HTMLElement. The corresponding date can be accessed with the template. {% if page.publishingplatform == "typescript" %} @@ -192,7 +190,7 @@ The month header of each date cell in the month view can be customized using the ## Customizing the minimum and maximum date values -Providing the [`minDate`](https://ej2.syncfusion.com/documentation/api/schedule#mindate) and [`maxDate`](https://ej2.syncfusion.com/documentation/api/schedule#maxdate) property with some date values, allows the Scheduler to set the minimum and maximum date range. The Scheduler date that lies beyond this minimum and maximum date range will be in a disabled state so that the date navigation will be blocked beyond the specified date range. +Providing the `minDate` and `maxDate` property with some date values, allows the Scheduler to set the minimum and maximum date range. The Scheduler date that lies beyond this minimum and maximum date range will be in a disabled state so that the date navigation will be blocked beyond the specified date range. {% if page.publishingplatform == "typescript" %} @@ -221,69 +219,10 @@ Providing the [`minDate`](https://ej2.syncfusion.com/documentation/api/schedule# {% previewsample "page.domainurl/code-snippet/schedule/cell-dimension-cs7" %} {% endif %} ->By default, the [`minDate`](https://ej2.syncfusion.com/documentation/api/schedule#mindate) property value is set to new Date(1900, 0, 1) and [`maxDate`](https://ej2.syncfusion.com/documentation/api/schedule#maxdate) property value is set to new Date(2099, 11, 31). The user can also set the customized [`minDate`](https://ej2.syncfusion.com/documentation/api/schedule#mindate) and [`maxDate`](https://ej2.syncfusion.com/documentation/api/schedule#maxdate) property values. - -## Customizing the weekend cells background color - -You can customize the background color of weekend cells by utilizing the [`renderCell`](https://ej2.syncfusion.com/documentation/api/schedule#rendercell) event and checking the [`elementType`](https://ej2.syncfusion.com/documentation/api/schedule/renderCellEventArgs/#elementtype) option within the event. - -```ts - -renderCell: function (args) { - if (args.elementType == "workCells") { - // To change the color of weekend columns in week view - if (args.date) { - if (args.date.getDay() === 6) { - (args.element).style.background = '#ffdea2'; - } - if (args.date.getDay() === 0) { - (args.element).style.background = '#ffdea2'; - } - } - } -} - -``` - -And, the background color for weekend cells in the Month view through the [`cssClass`](https://ej2.syncfusion.com/documentation/api/schedule#cssclass) property, which overrides the default CSS applied on cells. - -```css - -.schedule-cell-customization.e-schedule .e-month-view .e-work-cells:not(.e-work-days) { - background-color: #f08080; -} - -``` - -{% if page.publishingplatform == "typescript" %} - - {% tabs %} -{% highlight ts tabtitle="index.ts" %} -{% include code-snippet/schedule/weekend-cell-color/index.ts %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/schedule/weekend-cell-color/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/schedule/weekend-cell-color" %} - -{% elsif page.publishingplatform == "javascript" %} - -{% tabs %} -{% highlight js tabtitle="index.js" %} -{% include code-snippet/schedule/weekend-cell-color/index.js %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/schedule/weekend-cell-color/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/schedule/weekend-cell-color" %} -{% endif %} +>By default, the `minDate` property value is set to new Date(1900, 0, 1) and `maxDate` property value is set to new Date(2099, 11, 31). The user can also set the customized `minDate` and `maxDate` property values. ## How to disable multiple cell and row selection in Schedule -By default, the [`allowMultiCellSelection`](https://ej2.syncfusion.com/documentation/api/schedule#allowmulticellselection) and [`allowMultiRowSelection`](https://ej2.syncfusion.com/documentation/api/schedule#allowmultirowselection) properties of the Schedule are set to `true`. So, the Schedule allows user to select multiple cells and rows. If the user want to disable this multiple cell and row selection. The user can disable this feature by setting up `false` to these properties. +By default, the `allowMultiCellSelection` and `allowMultiRowSelection` properties of the Schedule are set to `true`. So, the Schedule allows user to select multiple cells and rows. If the user want to disable this multiple cell and row selection. The user can disable this feature by setting up `false` to these properties. > You can refer to our [JavaScript Scheduler](https://www.syncfusion.com/javascript-ui-controls/js-scheduler) feature tour page for its groundbreaking feature representations. You can also explore our [JavaScript Scheduler example](https://ej2.syncfusion.com/demos/#/material/schedule/overview.html) to knows how to present and manipulate data. diff --git a/ej2-javascript/schedule/clipboard.md b/ej2-javascript/schedule/clipboard.md new file mode 100644 index 000000000..bbe20984a --- /dev/null +++ b/ej2-javascript/schedule/clipboard.md @@ -0,0 +1,146 @@ +--- +layout: post +title: Clipboard in ##Platform_Name## Schedule control | Syncfusion +description: Learn here all about Clipboard in Syncfusion ##Platform_Name## Schedule control of Syncfusion Essential JS 2 and more. +platform: ej2-javascript +control: Clipboard +publishingplatform: ##Platform_Name## +documentation: ug +domainurl: ##DomainURL## +--- + +# Clipboard in ##Platform_Name## Schedule control + +The Clipboard functionality in the Syncfusion Schedule control enhances scheduling efficiency by enabling users to cut, copy, and paste appointments with ease. This feature is especially beneficial for those managing multiple appointments, as it eliminates the need for repetitive data entry and allows users to quickly adjust their schedules without hassle. +To activate the clipboard feature in the scheduler, simply set the [`allowClipboard`](https://ej2.syncfusion.com/documentation/api/schedule/#allowclipboard) property to **true**. + +>Note: The [`allowKeyboardInteraction`](https://ej2.syncfusion.com/documentation/api/schedule/#allowkeyboardinteraction) property must be true for proper functionality of the clipboard feature. + +## Cut, copy and paste using keyboard + +The Syncfusion Schedule control supports keyboard shortcuts to streamline the process of managing appointments. + +These keyboard shortcuts enable users to efficiently manage their schedules: + +| Operation | Shortcut | Description | +|-----------|----------|------------------------------------------------------------------| +| Copy | Ctrl+C | Duplicate appointments to streamline the scheduling process. | +| Cut | Ctrl+X | Move appointments to a new time slot without duplicates. | +| Paste | Ctrl+V | Place copied or cut appointments into the desired time slot. | + +To use these shortcuts, simply click on the appointment and press **Ctrl+C** to copy or **Ctrl+X** to cut. To paste the copied or cut appointment, click on the desired time slot and press **Ctrl+V** + +{% if page.publishingplatform == "typescript" %} + + {% tabs %} +{% highlight ts tabtitle="index.ts" %} +{% include code-snippet/schedule/clipboard-cs1/index.ts %} +{% endhighlight %} +{% highlight html tabtitle="index.html" %} +{% include code-snippet/schedule/clipboard-cs1/index.html %} +{% endhighlight %} +{% endtabs %} + +{% previewsample "page.domainurl/code-snippet/schedule/clipboard-cs1" %} + +{% elsif page.publishingplatform == "javascript" %} + +{% tabs %} +{% highlight js tabtitle="index.js" %} +{% include code-snippet/schedule/clipboard-cs1/index.js %} +{% endhighlight %} +{% highlight html tabtitle="index.html" %} +{% include code-snippet/schedule/clipboard-cs1/index.html %} +{% endhighlight %} +{% endtabs %} + +{% previewsample "page.domainurl/code-snippet/schedule/clipboard-cs1" %} +{% endif %} + +>Note: For Mac users, use **Cmd** instead of **Ctrl** for copy, cut, and paste operations. + +## Cut, copy, and paste using context menu + +You can programmatically manage appointments by using the public methods **cut**, **copy**, and **paste**. These methods allow you to perform the same actions as the context menu or external buttons. + +Utilize these public methods to manage appointments programmatically in Syncfusion Schedule control: + +| Method | Parameters | Description | +|--------|--------------------------------|-------------------------------------------------------------------------------------------------| +| [`copy`](https://ej2.syncfusion.com/documentation/api/schedule/#copy) | None | Duplicate the selected appointment for reuse. | +| [`cut`](https://ej2.syncfusion.com/documentation/api/schedule/#cut) | None | Remove the selected appointment from its current slot for moving. | +| [`paste`](https://ej2.syncfusion.com/documentation/api/schedule/#paste) | targetElement (Scheduler's work-cell) | Insert the copied or cut appointment into the specified time slot. | + +By using these methods, you can programmatically cut, copy, and paste appointments in the scheduler, providing more control over the appointment management process. + +{% if page.publishingplatform == "typescript" %} + + {% tabs %} +{% highlight ts tabtitle="index.ts" %} +{% include code-snippet/schedule/clipboard-cs2/index.ts %} +{% endhighlight %} +{% highlight html tabtitle="index.html" %} +{% include code-snippet/schedule/clipboard-cs2/index.html %} +{% endhighlight %} +{% endtabs %} + +{% previewsample "page.domainurl/code-snippet/schedule/clipboard-cs2" %} + +{% elsif page.publishingplatform == "javascript" %} + +{% tabs %} +{% highlight js tabtitle="index.js" %} +{% include code-snippet/schedule/clipboard-cs2/index.js %} +{% endhighlight %} +{% highlight html tabtitle="index.html" %} +{% include code-snippet/schedule/clipboard-cs2/index.html %} +{% endhighlight %} +{% endtabs %} + +{% previewsample "page.domainurl/code-snippet/schedule/clipboard-cs2" %} +{% endif %} + +## Modifying content before pasting + +You can modify the content of an appointment before pasting it by using [`beforePaste`](https://ej2.syncfusion.com/documentation/api/schedule/#beforepaste) event accessing the appointment details and making necessary changes. + +The following example demonstrates how to seamlessly copy and paste content from a grid to a scheduler. To do this, follow these steps: + +1. **Select an Item**: Click on an item in the grid. +2. **Copy the Details**: Press **Ctrl + C** to copy the selected event details. +3. **Choose a Time Slot**: Click on the desired time slot in the scheduler. +4. **Paste the Details**: Press **Ctrl + V** to paste the copied appointment details into the selected time slot. + +In this example, the `beforePaste` event can be utilized to intercept the event details before they are pasted. This allows you to modify the content as needed. Such modifications could include adjusting the time, adding notes, or altering other specifics of the appointment. + +>Note: Ensure that the field mapping matches with the fields in the scheduler. + +{% if page.publishingplatform == "typescript" %} + + {% tabs %} +{% highlight ts tabtitle="index.ts" %} +{% include code-snippet/schedule/clipboard-cs3/index.ts %} +{% endhighlight %} +{% highlight html tabtitle="index.html" %} +{% include code-snippet/schedule/clipboard-cs3/index.html %} +{% endhighlight %} +{% endtabs %} + +{% previewsample "page.domainurl/code-snippet/schedule/clipboard-cs3" %} + +{% elsif page.publishingplatform == "javascript" %} + +{% tabs %} +{% highlight js tabtitle="index.js" %} +{% include code-snippet/schedule/clipboard-cs3/index.js %} +{% endhighlight %} +{% highlight html tabtitle="index.html" %} +{% include code-snippet/schedule/clipboard-cs3/index.html %} +{% endhighlight %} +{% endtabs %} + +{% previewsample "page.domainurl/code-snippet/schedule/clipboard-cs3" %} +{% endif %} + + +> You can refer to our [JavaScript Scheduler](https://www.syncfusion.com/javascript-ui-controls/js-scheduler) feature tour page for its groundbreaking feature representations. You can also explore our [JavaScript Scheduler example](https://ej2.syncfusion.com/demos/#/material/schedule/overview.html) to knows how to present and manipulate data. diff --git a/ej2-javascript/schedule/context-menu.md b/ej2-javascript/schedule/context-menu.md index 43fec52ae..a58acb74f 100644 --- a/ej2-javascript/schedule/context-menu.md +++ b/ej2-javascript/schedule/context-menu.md @@ -11,11 +11,11 @@ domainurl: ##DomainURL## # Context menu in ##Platform_Name## Schedule control -You can display context menu on work cells and appointments of Scheduler by making use of the [`ContextMenu`](https://ej2.syncfusion.com/documentation/context-menu/getting-started) control manually from the application end. In the following code example, context menu control is being added from sample end and set its target as `Scheduler`. +You can display context menu on work cells and appointments of Scheduler by making use of the `ContextMenu` control manually from the application end. In the following code example, context menu control is being added from sample end and set its target as `Scheduler`. -On Scheduler cells, you can display the menu items such as `New Event`, `New Recurring Event` and `Today` option. For appointments, you can display its related options such as `Edit Event` and `Delete Event`. The default event window can be opened for appointment creation and editing using the [`openEditor`](https://ej2.syncfusion.com/documentation/api/schedule#openeditor) method of Scheduler. +On Scheduler cells, you can display the menu items such as `New Event`, `New Recurring Event` and `Today` option. For appointments, you can display its related options such as `Edit Event` and `Delete Event`. The default event window can be opened for appointment creation and editing using the `openEditor` method of Scheduler. -The deletion of appointments can be done by using the [`deleteEvent`](https://ej2.syncfusion.com/documentation/api/schedule#deleteevent) public method. Also, the [`selectedDate`](https://ej2.syncfusion.com/documentation/api/schedule#selecteddate) property can be used to navigate between different dates. +The deletion of appointments can be done by using the `deleteEvent` public method. Also, the `selectedDate` property can be used to navigate between different dates. > You can also display custom menu options on Scheduler cells and appointments. Context menu will open on tap-hold in responsive mode. diff --git a/ej2-javascript/schedule/crud-actions.md b/ej2-javascript/schedule/crud-actions.md index 1ff67307e..985054bdd 100644 --- a/ej2-javascript/schedule/crud-actions.md +++ b/ej2-javascript/schedule/crud-actions.md @@ -29,7 +29,7 @@ In case, if you need to add some other additional fields to the editor window, t ### Creation using addEvent method -The appointments can be created dynamically by using [`addEvent`](https://ej2.syncfusion.com/documentation/api/schedule#addevent) method. Either you can add a single or a collection of appointment objects using [`addEvent`](https://ej2.syncfusion.com/documentation/api/schedule#addevent) method. The following code example let you know how to use the [`addEvent`](https://ej2.syncfusion.com/documentation/api/schedule#addevent) method to create multiple appointments simultaneously. +The appointments can be created dynamically by using `addEvent` method. Either you can add a single or a collection of appointment objects using `addEvent` method. The following code example let you know how to use the `addEvent` method to create multiple appointments simultaneously. {% if page.publishingplatform == "typescript" %} @@ -122,7 +122,7 @@ Additionally, the regex condition has been added to the Location field, so that {% previewsample "page.domainurl/code-snippet/schedule/default-cs1" %} {% endif %} -You can also dynamically prevent the creation of appointments on Scheduler. For example, say if you want to decline the creation of appointments on weekend days, you can check for its appropriate condition within the [`actionBegin`](https://ej2.syncfusion.com/documentation/api/schedule#actionbegin) event. +You can also dynamically prevent the creation of appointments on Scheduler. For example, say if you want to decline the creation of appointments on weekend days, you can check for its appropriate condition within the `actionBegin` event. {% if page.publishingplatform == "typescript" %} @@ -166,9 +166,9 @@ You can open the default editor window filled with appointment details by double ### Update using saveEvent method -The appointments can be edited and updated manually using the [`saveEvent`](https://ej2.syncfusion.com/documentation/api/schedule#saveevent) method. The following code examples shows how to edit the normal and recurring events. +The appointments can be edited and updated manually using the `saveEvent` method. The following code examples shows how to edit the normal and recurring events. -**Normal event** - Here, an event with ID `3` is edited and its subject is changed with a new text. When the modified data object is passed onto the [`saveEvent`](https://ej2.syncfusion.com/documentation/api/schedule#saveevent) method, the changes gets reflected onto the original event. The [`Id`](https://ej2.syncfusion.com/documentation/api/schedule/field/#id) field is mandatory in this edit process, where the modified event object should hold the valid [`Id`](https://ej2.syncfusion.com/documentation/api/schedule/field/#id) value that exists in the Scheduler data source. +**Normal event** - Here, an event with ID `3` is edited and its subject is changed with a new text. When the modified data object is passed onto the `saveEvent` method, the changes gets reflected onto the original event. The `Id` field is mandatory in this edit process, where the modified event object should hold the valid `Id` value that exists in the Scheduler data source. {% if page.publishingplatform == "typescript" %} @@ -197,7 +197,7 @@ The appointments can be edited and updated manually using the [`saveEvent`](http {% previewsample "page.domainurl/code-snippet/schedule/edit-event-cs1" %} {% endif %} -**Recurring event** - The following code example shows how to edit a single occurrence of a recurring event. In this case, the modified data should hold an additional field namely `RecurrenceID` mapping to its parent recurring event's Id value. Also, this modified occurrence will be considered as a new event in the Scheduler dataSource, where it is linked with its parent event through the `RecurrenceID` field value. The [`saveEvent`](https://ej2.syncfusion.com/documentation/api/schedule#saveevent) method takes 2 arguments, first one accepting the modified event data object and second argument accepting either of the 2 text values - `EditOccurrence` or `EditSeries`. +**Recurring event** - The following code example shows how to edit a single occurrence of a recurring event. In this case, the modified data should hold an additional field namely `RecurrenceID` mapping to its parent recurring event's Id value. Also, this modified occurrence will be considered as a new event in the Scheduler dataSource, where it is linked with its parent event through the `RecurrenceID` field value. The `saveEvent` method takes 2 arguments, first one accepting the modified event data object and second argument accepting either of the 2 text values - `EditOccurrence` or `EditSeries`. When the second argument is passed as `EditOccurrence`, which means that the passed event data is a single modified occurrence - whereas if the second argument is passed as `EditSeries`, it means that the modified data needs to be edited as a whole series and therefore no new event object will be maintained in the Scheduler dataSource. @@ -373,7 +373,7 @@ if (param.action == "remove" || (param.action == "batch" && param.deleted != nul ### How to edit from the current and following events of a series -The recurring appointments can be edited from current and following events when enable the property [`editFollowingEvents`](https://ej2.syncfusion.com/documentation/api/schedule/eventSettings/#editfollowingevents). +The recurring appointments can be edited from current and following events when enable the property `editFollowingEvents`. **Editing Following Events** - When you double click on a recurring event, a popup prompts you to choose either to edit the single event or Edit Following Events or entire series. From this, if you choose to select **EDIT FOLLOWING EVENTS** option, a current and following events of the recurring appointment will be edited. The following process takes place while editing a following events, @@ -451,7 +451,7 @@ if (param.action == "remove" || (param.action == "batch" && param.deleted != nul ### Restricting edit action based on specific criteria -You can also dynamically prevent the editing of appointments on Scheduler. For example, say if you want to decline the updating of appointments on non-working hours, you can check for its appropriate condition within the [`actionBegin`](https://ej2.syncfusion.com/documentation/api/schedule#actionbegin) event. +You can also dynamically prevent the editing of appointments on Scheduler. For example, say if you want to decline the updating of appointments on non-working hours, you can check for its appropriate condition within the `actionBegin` event. {% if page.publishingplatform == "typescript" %} @@ -496,9 +496,9 @@ When you double click an event, the default editor window will be opened which i ### Deletion using deleteEvent method -The appointments can be removed manually using the [`deleteEvent`](https://ej2.syncfusion.com/documentation/api/schedule#deleteevent) method. The following code examples shows how to edit the normal and recurring events. +The appointments can be removed manually using the `deleteEvent` method. The following code examples shows how to edit the normal and recurring events. -**Normal event** - You can delete the normal appointments of Scheduler by simply passing its `Id` value or the entire event object collection to the [`deleteEvent`](https://ej2.syncfusion.com/documentation/api/schedule#deleteevent) method. +**Normal event** - You can delete the normal appointments of Scheduler by simply passing its `Id` value or the entire event object collection to the `deleteEvent` method. {% if page.publishingplatform == "typescript" %} @@ -648,7 +648,7 @@ if (param.action == "remove" || (param.action == "batch" && param.deleted != nul ### How to delete only the current and following events of a series -The recurring events can be deleted from current and following events only when enable [`editFollowingEvents`](https://ej2.syncfusion.com/documentation/api/schedule/eventSettings/#editfollowingevents) property. +The recurring events can be deleted from current and following events only when enable `editFollowingEvents` property. **Delete Following Events** - When you attempt to delete the recurring events, a popup prompts you to choose either to delete the single event or Following Events or entire series. From this, if you choose to select **FOLLOWING EVENT** option, a current and following events of the recurring appointment alone will be removed. The following process takes place while removing a single occurrence, diff --git a/ej2-javascript/schedule/data-binding.md b/ej2-javascript/schedule/data-binding.md index eedf79050..cddee4c4a 100644 --- a/ej2-javascript/schedule/data-binding.md +++ b/ej2-javascript/schedule/data-binding.md @@ -18,7 +18,7 @@ The Scheduler uses `DataManager`, which supports both RESTful data service bindi ## Binding local data -To bind local JSON data to the Scheduler, you can simply assign a JavaScript object array to the [`dataSource`](../api/schedule/eventSettings/#datasource) option of the scheduler within the [`eventSettings`](https://ej2.syncfusion.com/documentation/api/schedule/eventSettings/) property. The JSON object dataSource can also be provided as an instance of `DataManager` and assigned to the Scheduler `dataSource` property. +To bind local JSON data to the Scheduler, you can simply assign a JavaScript object array to the [`dataSource`](../api/schedule/eventSettings/#datasource) option of the scheduler within the `eventSettings` property. The JSON object dataSource can also be provided as an instance of `DataManager` and assigned to the Scheduler `dataSource` property. {% if page.publishingplatform == "typescript" %} @@ -49,11 +49,11 @@ To bind local JSON data to the Scheduler, you can simply assign a JavaScript obj > By default, `DataManager` uses `JsonAdaptor` for binding local data. -> You can also bind different field names to the default event fields as well as include additional `custom fields` to the event object collection which can be referred [here](./appointments/#event-fields). +You can also bind different field names to the default event fields as well as include additional custom fields to the event object collection which can be referred [here](./appointments/#event-fields). ## Binding remote data -Any kind of remote data services can be bound to the Scheduler. To do so, create an instance of `DataManager` and provide the service URL to the `url` option of `DataManager` and then assign it to the [`dataSource`](../api/schedule/eventSettings/#datasource) property within [`eventSettings`](https://ej2.syncfusion.com/documentation/api/schedule/eventSettings/). +Any kind of remote data services can be bound to the Scheduler. To do so, create an instance of `DataManager` and provide the service URL to the `url` option of `DataManager` and then assign it to the [`dataSource`](../api/schedule/eventSettings/#datasource) property within `eventSettings`. ### Using ODataV4Adaptor @@ -379,7 +379,7 @@ namespace ScheduleSample.Controllers ## Configuring Scheduler with Google API service -We have assigned our custom created Google Calendar url to the DataManager and assigned the same to the Scheduler `dataSource`. Since the events data retrieved from the Google Calendar will be in its own object format, therefore it needs to be resolved manually within the Scheduler’s [`dataBinding`](https://ej2.syncfusion.com/documentation/api/schedule#databinding) event. Within this event, the event fields needs to be mapped properly and then assigned to the result. +We have assigned our custom created Google Calendar url to the DataManager and assigned the same to the Scheduler `dataSource`. Since the events data retrieved from the Google Calendar will be in its own object format, therefore it needs to be resolved manually within the Scheduler’s `dataBinding` event. Within this event, the event fields needs to be mapped properly and then assigned to the result. {% if page.publishingplatform == "typescript" %} @@ -410,6 +410,6 @@ We have assigned our custom created Google Calendar url to the DataManager and a ## See Also -[Salesforce Integration](./how-to/salesforce-integration) +[Salesforce Integration](./how-to/salesforce-integration.md) > You can refer to our [JavaScript Scheduler](https://www.syncfusion.com/javascript-ui-controls/js-scheduler) feature tour page for its groundbreaking feature representations. You can also explore our [JavaScript Scheduler example](https://ej2.syncfusion.com/demos/#/material/schedule/overview.html) to knows how to present and manipulate data. diff --git a/ej2-javascript/schedule/dimensions.md b/ej2-javascript/schedule/dimensions.md index ec09574d4..84d3cf5f1 100644 --- a/ej2-javascript/schedule/dimensions.md +++ b/ej2-javascript/schedule/dimensions.md @@ -1,7 +1,7 @@ --- layout: post -title: Dimensions in ##Platform_Name## Schedule Control | Syncfusion -description: Learn here all about dimensions in Syncfusion ##Platform_Name## Schedule control, its elements and more. +title: Dimensions in ##Platform_Name## Schedule control | Syncfusion +description: Learn here all about Dimensions in Syncfusion ##Platform_Name## Schedule control of Syncfusion Essential JS 2 and more. platform: ej2-javascript control: Dimensions publishingplatform: ##Platform_Name## @@ -9,7 +9,7 @@ documentation: ug domainurl: ##DomainURL## --- -# Dimensions in ##Platform_Name## Schedule Control +# Dimensions in ##Platform_Name## Schedule control The Scheduler dimensions refers to both height and width of the entire layout and it accepts 3 types of values. @@ -19,7 +19,7 @@ The Scheduler dimensions refers to both height and width of the entire layout an ## Auto Height and Width -When [height](https://ej2.syncfusion.com/documentation/api/schedule#height) and [width](https://ej2.syncfusion.com/documentation/api/schedule#width) of the Scheduler are set to `auto`, it will try as hard as possible to keep an element the same width as its parent container. In other words, the parent container that holds Scheduler, it's width/height will be the sum of its children. By default, Scheduler is assigned with `auto` values for both height and width properties. +When height and width of the Scheduler are set to `auto`, it will try as hard as possible to keep an element the same width as its parent container. In other words, the parent container that holds Scheduler, it's width/height will be the sum of its children. By default, Scheduler is assigned with `auto` values for both height and width properties. {% if page.publishingplatform == "typescript" %} @@ -114,4 +114,4 @@ When height and width of the Scheduler are given as percentage, it will make the ## See Also -* [How to Change Scheduler Cell Dimensions](./cell-customization#setting-cell-dimensions-in-all-views) \ No newline at end of file +* [How to Change Scheduler Cell Dimensions](./cell-customization/#setting-cell-dimensions-in-all-views) \ No newline at end of file diff --git a/ej2-javascript/schedule/editor-template.md b/ej2-javascript/schedule/editor-template.md index 546119f6c..9e869322f 100644 --- a/ej2-javascript/schedule/editor-template.md +++ b/ej2-javascript/schedule/editor-template.md @@ -19,7 +19,7 @@ The editor window usually opens on the Scheduler, when a cell or event is double In mobile devices, you can open the detailed editor window in edit mode by clicking the edit icon on the popup, that opens on single tapping an event. You can also open it in add mode by single tapping a cell, which will display a `+` indication, clicking on it again will open the editor window. -> You can also prevent the editor window from opening, by rendering Scheduler in a [`readonly`](https://ej2.syncfusion.com/documentation/api/schedule#readonly) mode or by doing code customization within the [`popupOpen`](https://ej2.syncfusion.com/documentation/api/schedule#popupopen) event. +> You can also prevent the editor window from opening, by rendering Scheduler in a `readonly` mode or by doing code customization within the `popupOpen` event. ### How to change the editor window header title and text of footer buttons @@ -54,7 +54,7 @@ You can change the header title and the text of buttons displayed at the footer ### How to change the label text of default editor fields -To change the default labels such as Subject, Location and other field names in the editor window, make use of the [`title`](https://ej2.syncfusion.com/documentation/api/schedule/fieldOptions/#title) property available within the field option of [`eventSettings`](https://ej2.syncfusion.com/documentation/api/schedule/eventSettings/). +To change the default labels such as Subject, Location and other field names in the editor window, make use of the `title` property available within the field option of `eventSettings`. {% if page.publishingplatform == "typescript" %} @@ -118,7 +118,7 @@ It is possible to validate the required fields of the editor window from client- ### Add additional fields to the default editor -The additional fields can be added to the default event editor by making use of the [`popupOpen`](https://ej2.syncfusion.com/documentation/api/schedule#popupopen) event which gets triggered before the event editor opens on the Scheduler. The [`popupOpen`](https://ej2.syncfusion.com/documentation/api/schedule#popupopen) is a client-side event that triggers before any of the generic popups opens on the Scheduler. The additional field (any of the form elements) should be added with a common class name `e-field`, so as to handle and process those additional data along with the default event object. In the following example, an additional field `Event Type` has been added to the default event editor and its value is processed accordingly. +The additional fields can be added to the default event editor by making use of the `popupOpen` event which gets triggered before the event editor opens on the Scheduler. The `popupOpen` is a client-side event that triggers before any of the generic popups opens on the Scheduler. The additional field (any of the form elements) should be added with a common class name `e-field`, so as to handle and process those additional data along with the default event object. In the following example, an additional field `Event Type` has been added to the default event editor and its value is processed accordingly. {% if page.publishingplatform == "typescript" %} @@ -149,7 +149,7 @@ The additional fields can be added to the default event editor by making use of ### Customizing the default time duration in editor window -In default event editor window, start and end time duration are processed based on the `interval` value set within the [`timeScale`](https://ej2.syncfusion.com/documentation/api/schedule#timescale) property. By default, `interval` value is set to 30, and therefore the start/end time duration within the event editor will be in a 30 minutes time difference. You can change this duration value by changing the [`duration`](https://ej2.syncfusion.com/documentation/api/schedule/popupOpenEventArgs/#duration) option within the [`popupOpen`](https://ej2.syncfusion.com/documentation/api/schedule#popupopen) event as shown in the following code example. +In default event editor window, start and end time duration are processed based on the `interval` value set within the `timeScale` property. By default, `interval` value is set to 30, and therefore the start/end time duration within the event editor will be in a 30 minutes time difference. You can change this duration value by changing the `duration` option within the `popupOpen` event as shown in the following code example. {% if page.publishingplatform == "typescript" %} @@ -160,6 +160,12 @@ In default event editor window, start and end time duration are processed based {% highlight html tabtitle="index.html" %} {% include code-snippet/schedule/editor-window-cs5/index.html %} {% endhighlight %} +{% highlight html tabtitle="datasource.ts" %} +{% include code-snippet/schedule/editor-window-cs5/datasource.ts %} +{% endhighlight %} +{% highlight html tabtitle="index.css" %} +{% include code-snippet/schedule/editor-window-cs5/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/schedule/editor-window-cs5" %} @@ -173,6 +179,12 @@ In default event editor window, start and end time duration are processed based {% highlight html tabtitle="index.html" %} {% include code-snippet/schedule/editor-window-cs5/index.html %} {% endhighlight %} +{% highlight html tabtitle="es5-datasource.js" %} +{% include code-snippet/schedule/editor-window-cs5/es5-datasource.js %} +{% endhighlight %} +{% highlight html tabtitle="index.css" %} +{% include code-snippet/schedule/editor-window-cs5/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/schedule/editor-window-cs5" %} @@ -180,7 +192,7 @@ In default event editor window, start and end time duration are processed based ### How to prevent the display of editor and quick popups -It is possible to prevent the display of editor and quick popup windows by passing the value `true` to `cancel` option within the [`popupOpen`](https://ej2.syncfusion.com/documentation/api/schedule#popupopen) event. +It is possible to prevent the display of editor and quick popup windows by passing the value `true` to `cancel` option within the `popupOpen` event. {% if page.publishingplatform == "typescript" %} @@ -191,6 +203,12 @@ It is possible to prevent the display of editor and quick popup windows by passi {% highlight html tabtitle="index.html" %} {% include code-snippet/schedule/editor-window-cs6/index.html %} {% endhighlight %} +{% highlight html tabtitle="datasource.ts" %} +{% include code-snippet/schedule/editor-window-cs6/datasource.ts %} +{% endhighlight %} +{% highlight html tabtitle="index.css" %} +{% include code-snippet/schedule/editor-window-cs6/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/schedule/editor-window-cs6" %} @@ -204,12 +222,18 @@ It is possible to prevent the display of editor and quick popup windows by passi {% highlight html tabtitle="index.html" %} {% include code-snippet/schedule/editor-window-cs6/index.html %} {% endhighlight %} +{% highlight html tabtitle="es5-datasource.js" %} +{% include code-snippet/schedule/editor-window-cs6/es5-datasource.js %} +{% endhighlight %} +{% highlight html tabtitle="index.css" %} +{% include code-snippet/schedule/editor-window-cs6/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/schedule/editor-window-cs6" %} {% endif %} -In case, if you need to prevent only specific popups on Scheduler, then you can check the condition based on the popup type. The types of the popup that can be checked within the [`popupOpen`](https://ej2.syncfusion.com/documentation/api/schedule#popupopen) event are as follows. +In case, if you need to prevent only specific popups on Scheduler, then you can check the condition based on the popup type. The types of the popup that can be checked within the `popupOpen` event are as follows. | Type | Description | |------|-------------| @@ -225,7 +249,7 @@ In case, if you need to prevent only specific popups on Scheduler, then you can ### Customizing timezone collection in the editor window -By default, the timezone collections in the editor window have been loaded with built-in timezone collections. Now we can be able to customize the timezone collections using the [`timezoneDataSource`](https://ej2.syncfusion.com/documentation/api/schedule#timezonedatasource) property with the collection of [`TimezoneFields`](https://ej2.syncfusion.com/documentation/api/schedule/timezoneFields/) data. +By default, the timezone collections in the editor window have been loaded with built-in timezone collections. Now we can be able to customize the timezone collections using the `timezoneDataSource` property with the collection of `TimezoneFields` data. {% if page.publishingplatform == "typescript" %} @@ -256,13 +280,13 @@ By default, the timezone collections in the editor window have been loaded with ## Customizing event editor using template -The event editor window can be customized by making use of the [`editorTemplate`](https://ej2.syncfusion.com/documentation/api/schedule#editortemplate) option. Here, the custom window design is built with the required fields using the script template and its type should be of **text/x-template**. +The event editor window can be customized by making use of the `editorTemplate` option. Here, the custom window design is built with the required fields using the script template and its type should be of **text/x-template**. -Each field defined within template should contain the **e-field** class, so as to allow the processing of those field values internally. The ID of this customized script template section is assigned to the [`editorTemplate`](https://ej2.syncfusion.com/documentation/api/schedule#editortemplate) option, so that these customized fields will be replaced onto the default editor window. +Each field defined within template should contain the **e-field** class, so as to allow the processing of those field values internally. The ID of this customized script template section is assigned to the `editorTemplate` option, so that these customized fields will be replaced onto the default editor window. >Note: **e-field** class only applicable for **DropDownList**, **DateTimePicker**, **MultiSelect**, **DatePicker**, **CheckBox** and **TextBox** components. Since we have processed the field values internally for the above mentioned components. -As we are using our Syncfusion sub-components within our editor using template in the following example, the custom defined form elements needs to be configured as required Syncfusion components such as **DropDownList** and **DateTimePicker** within the [`popupOpen`](https://ej2.syncfusion.com/documentation/api/schedule#popupopen) event. This particular step can be skipped, if the user needs to simply use the usual form elements. +As we are using our Syncfusion sub-components within our editor using template in the following example, the custom defined form elements needs to be configured as required Syncfusion components such as **DropDownList** and **DateTimePicker** within the `popupOpen` event. This particular step can be skipped, if the user needs to simply use the usual form elements. {% if page.publishingplatform == "typescript" %} @@ -291,40 +315,6 @@ As we are using our Syncfusion sub-components within our editor using template i {% previewsample "page.domainurl/code-snippet/schedule/editor-cs1" %} {% endif %} -## How to customize header and footer using template - -The editor window's header and footer can be enhanced with custom designs using the [`editorHeaderTemplate`](../api/schedule/#editorheadertemplate) and [`editorFooterTemplate`](../api/schedule/#editorfootertemplate) options. To achieve this, create a script template that includes the necessary fields. Ensure that the template type is set to **text/x-template**. - -In this demo, we tailor the editor's header according to the appointment's subject field using the -[`editorHeaderTemplate`](../api/schedule/#editorheadertemplate). Furthermore, we make use of the [`editorFooterTemplate`](../api/schedule/#editorfootertemplate) to handle the functionality of validating specific fields before proceeding with the save action or canceling it if validation requirements are not met. - -{% if page.publishingplatform == "typescript" %} - -{% tabs %} -{% highlight ts tabtitle="index.ts" %} -{% include code-snippet/schedule/editor-header-footer-cs1/index.ts %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/schedule/editor-header-footer-cs1/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/schedule/editor-header-footer-cs1" %} - -{% elsif page.publishingplatform == "javascript" %} - -{% tabs %} -{% highlight js tabtitle="index.js" %} -{% include code-snippet/schedule/editor-header-footer-cs1/index.js %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/schedule/editor-header-footer-cs1/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/schedule/editor-header-footer-cs1" %} -{% endif %} - ### How to add resource options within editor template The resource field can be added within editor template with multiselect control for allow multiple resources. @@ -420,11 +410,11 @@ In the following code example, validation has been added to the status field. ### How to save the customized event editor using template -The **e-field** class is not added to each field defined within the template, so you should allow to set those field values externally by using the [`popupClose`](https://ej2.syncfusion.com/documentation/api/schedule#popupclose) event. +The **e-field** class is not added to each field defined within the template, so you should allow to set those field values externally by using the `popupClose` event. Note: You can allow to retrieve the data only on the `save` and `delete` option. Data cannot be retrieved on the `close` and `cancel` options in the editor window. -The following code example shows how to save the customized event editor using a template by the [`popupClose`](https://ej2.syncfusion.com/documentation/api/schedule#popupclose) event. +The following code example shows how to save the customized event editor using a template by the `popupClose` event. {% if page.publishingplatform == "typescript" %} @@ -453,7 +443,7 @@ The following code example shows how to save the customized event editor using a {% previewsample "page.domainurl/code-snippet/schedule/editor-cs3" %} {% endif %} -In case, if you need to prevent only specific popups on Scheduler, then you can check the condition based on the popup type. The types of the popup that can be checked within the [`popupClose`](https://ej2.syncfusion.com/documentation/api/schedule#popupclose) event are as follows. +In case, if you need to prevent only specific popups on Scheduler, then you can check the condition based on the popup type. The types of the popup that can be checked within the `popupClose` event are as follows. | Type | Description | |------|-------------| @@ -471,7 +461,7 @@ In case, if you need to prevent only specific popups on Scheduler, then you can The quick info popups are the ones that gets opened, when a cell or appointment is single clicked on the desktop mode. On single clicking a cell, you can simply provide a subject and save it. Also, while single clicking on an event, a popup will be displayed where you can get the overview of the event information. You can also edit or delete those events through the options available in it. -By default, these popups are displayed over cells and appointments of Scheduler and to disable this action, set `false` to [`showQuickInfo`](https://ej2.syncfusion.com/documentation/api/schedule#showquickinfo) property. +By default, these popups are displayed over cells and appointments of Scheduler and to disable this action, set `false` to `showQuickInfo` property. > The quick popup that opens while single clicking on the cells are not applicable on mobile devices. @@ -504,7 +494,7 @@ By default, these popups are displayed over cells and appointments of Scheduler ### Open quick popup on multiple cell selection -You can display the immediate quick popup after multiple cells selected in scheduler, by setting the [`quickInfoOnSelectionEnd`](https://ej2.syncfusion.com/documentation/api/schedule#quickinfoonselectionend) property to `true`. By default, it's value set to `false`. +You can display the immediate quick popup after multiple cells selected in scheduler, by setting the `quickInfoOnSelectionEnd` property to true. By default, it's value set to false. {% if page.publishingplatform == "typescript" %} @@ -549,7 +539,7 @@ L10n.load({ ### Customizing quick popups -The look and feel of the built-in quick popup window, which opens when single clicked on the cells or appointments can be customized by making use of the [`quickInfoTemplates`](https://ej2.syncfusion.com/documentation/api/schedule#quickinfotemplates) property of the Scheduler. There are 3 sub-options available to customize them easily, +The look and feel of the built-in quick popup window, which opens when single clicked on the cells or appointments can be customized by making use of the `quickInfoTemplates` property of the Scheduler. There are 3 sub-options available to customize them easily, * header - Accepts the template design that customizes the header part of the quick popup. * content - Accepts the template design that customizes the content part of the quick popup. @@ -582,13 +572,13 @@ The look and feel of the built-in quick popup window, which opens when single cl {% previewsample "page.domainurl/code-snippet/schedule/quick-info-cs2" %} {% endif %} -> The quick popup in adaptive mode can also be customized using [`quickInfoTemplates`](https://ej2.syncfusion.com/documentation/api/schedule#quickinfotemplates) using `e-device` class. +> The quick popup in adaptive mode can also be customized using `quickInfoTemplates` using `e-device` class. ## More events indicator and popup When the number of appointments count that lies on a particular time range * default appointment height exceeds the default height of a cell in month view and all other timeline views, a `+ more` text indicator will be displayed at the bottom of those cells. This indicator denotes that the cell contains few more appointments in it and clicking on that will display a popup displaying all the appointments present on that day. -> To disable this option of showing popup with all hidden appointments, while clicking on the text indicator, you can do code customization within the [`popupOpen`](https://ej2.syncfusion.com/documentation/api/schedule#popupopen) event. +> To disable this option of showing popup with all hidden appointments, while clicking on the text indicator, you can do code customization within the `popupOpen` event. The same indicator is displayed on all-day row in calendar views such as day, week and work week views alone, when the number of appointment count present in a cell exceeds three. Clicking on the text indicator here will not open a popup, but will allow the expand/collapse option for viewing the remaining appointments present in the all-day row. @@ -716,7 +706,7 @@ The following code example demonstrates the open popup when clicking the more te ### How to prevent the display of popup when clicking on the more text indicator -It is possible to prevent the display of popup window by passing the value `true` to `cancel` option within the [`MoreEventsClick`](https://ej2.syncfusion.com/documentation/api/schedule#moreeventsclick) event. +It is possible to prevent the display of popup window by passing the value `true` to `cancel` option within the `MoreEventsClick` event. {% if page.publishingplatform == "typescript" %} @@ -747,7 +737,7 @@ It is possible to prevent the display of popup window by passing the value `true ### How to navigate Day view when clicking on more text indicator -The following code example shows you how to customize the [`moreEventsClick`](https://ej2.syncfusion.com/documentation/api/schedule#moreeventsclick) property to navigate to the Day view when clicking on the more text indicator. +The following code example shows you how to customize the `moreEventsClick` property to navigate to the Day view when clicking on the more text indicator. {% if page.publishingplatform == "typescript" %} @@ -778,7 +768,7 @@ The following code example shows you how to customize the [`moreEventsClick`](ht ### How to close the editor window manually -You can close the editor window by using [`closeEditor`](https://ej2.syncfusion.com/documentation/api/schedule#closeeditor) method. +You can close the editor window by using `closeEditor()` method. {% if page.publishingplatform == "typescript" %} @@ -840,7 +830,7 @@ You can open the quick info popup in scheduler by using the [openQuickInfoPopup] ### How to close the quick info popup manually -You can close the quick info popup in scheduler by using the [`closeQuickInfoPopup`](https://ej2.syncfusion.com/documentation/api/schedule#closequickinfopopup) public method. The following code example demonstrates the how to close quick info popup manually. +You can close the quick info popup in scheduler by using the `closeQuickInfoPopup()` public method. The following code example demonstrates the how to close quick info popup manually. {% if page.publishingplatform == "typescript" %} @@ -869,4 +859,4 @@ You can close the quick info popup in scheduler by using the [`closeQuickInfoPop {% previewsample "page.domainurl/code-snippet/schedule/editor-window-cs17" %} {% endif %} -> You can refer to our [JavaScript Scheduler](https://www.syncfusion.com/javascript-ui-controls/js-scheduler) feature tour page for its groundbreaking feature representations. You can also explore our [JavaScript Scheduler example](https://ej2.syncfusion.com/demos/#/material/schedule/overview.html) to knows how to present and manipulate data. \ No newline at end of file +> You can refer to our [JavaScript Scheduler](https://www.syncfusion.com/javascript-ui-controls/js-scheduler) feature tour page for its groundbreaking feature representations. You can also explore our [JavaScript Scheduler example](https://ej2.syncfusion.com/demos/#/material/schedule/overview.html) to knows how to present and manipulate data. diff --git a/ej2-javascript/schedule/exporting.md b/ej2-javascript/schedule/exporting.md index b5299c7d7..f65efce01 100644 --- a/ej2-javascript/schedule/exporting.md +++ b/ej2-javascript/schedule/exporting.md @@ -15,9 +15,9 @@ The Scheduler supports exporting all its appointments both to an `Excel` or `ICS ## Excel Exporting -The Scheduler allows you to export all its events into an Excel format file by using the [`exportToExcel`](https://ej2.syncfusion.com/documentation/api/schedule#exporttoexcel) client-side method. By default, it exports all the default fields of Scheduler mapped through [`eventSettings`](https://ej2.syncfusion.com/documentation/api/schedule/eventSettings/) property. +The Scheduler allows you to export all its events into an Excel format file by using the [`exportToExcel`] client-side method. By default, it exports all the default fields of Scheduler mapped through `eventSettings` property. -> Before you start with excel exporting functionality, you need to import and inject the `ExcelExport` module from the `@syncfusion/ej2-schedule` package using the `Inject` method of Scheduler. +> Before you start with excel exporting functionality, you need to import and inject the `ExcelExport` module from the '@syncfusion/ej2-schedule' package using the `Inject` method of Scheduler. {% if page.publishingplatform == "typescript" %} @@ -48,7 +48,7 @@ The Scheduler allows you to export all its events into an Excel format file by u ### Exporting with custom fields -By default, Scheduler exports all the default event fields that are mapped to it through the `eventSettings` property. To limit the number of fields on the exported excel file, it provides an option to export only the custom fields of the event data. To export such custom fields alone, define the required `fields` through the [`eventSettings`](https://ej2.syncfusion.com/documentation/api/schedule/eventSettings/) interface and pass it as argument to the [`exportToExcel`](https://ej2.syncfusion.com/documentation/api/schedule#exporttoexcel) method as shown in the following example. For example: `['Id', 'Subject', 'StartTime', 'EndTime', 'Location']`. +By default, Scheduler exports all the default event fields that are mapped to it through the `eventSettings` property. To limit the number of fields on the exported excel file, it provides an option to export only the custom fields of the event data. To export such custom fields alone, define the required `fields` through the `ExportOptions` interface and pass it as argument to the `exportToExcel` method as shown in the following example. For example: `['Id', 'Subject', 'StartTime', 'EndTime', 'Location']`. {% if page.publishingplatform == "typescript" %} @@ -79,7 +79,7 @@ By default, Scheduler exports all the default event fields that are mapped to it ### Exporting individual occurrences of a recurring series -By default, the Scheduler exports recurring events as a single data by exporting only its parent record into the excel file. If you want to export each individual occurrences of a recurring series appointment as separate records in an Excel file, define the [`includeOccurrences`](https://ej2.syncfusion.com/documentation/api/schedule/exportOptions/#includeoccurrences) option as `true` through the [`ExportOptions`](https://ej2.syncfusion.com/documentation/api/schedule/exportOptions/) interface and pass it as argument to the [`exportToExcel`](https://ej2.syncfusion.com/documentation/api/schedule#exporttoexcel) method. By default, the [`includeOccurrences`](https://ej2.syncfusion.com/documentation/api/schedule/exportOptions/#includeoccurrences) option is set to `false`. +By default, the Scheduler exports recurring events as a single data by exporting only its parent record into the excel file. If you want to export each individual occurrences of a recurring series appointment as separate records in an Excel file, define the `includeOccurrences` option as `true` through the `ExportOptions` interface and pass it as argument to the `exportToExcel` method. By default, the `includeOccurrences` option is set to `false`. {% if page.publishingplatform == "typescript" %} @@ -110,7 +110,7 @@ By default, the Scheduler exports recurring events as a single data by exporting ### Exporting custom event data -By default, the whole event collection bound to the Scheduler gets exported as an excel file. To export only specific events of Scheduler or some custom event collection, you need to pass those custom data collection as a parameter to the [`exportToExcel`](https://ej2.syncfusion.com/documentation/api/schedule#exporttoexcel) method as shown in this following example, through the [`customData`](https://ej2.syncfusion.com/documentation/api/schedule/exportOptions/#customdata) option of [`ExportOptions`](https://ej2.syncfusion.com/documentation/api/schedule/exportOptions/) interface. +By default, the whole event collection bound to the Scheduler gets exported as an excel file. To export only specific events of Scheduler or some custom event collection, you need to pass those custom data collection as a parameter to the `exportToExcel` method as shown in this following example, through the `customData` option of `ExportOptions` interface. > By default, the event data are taken from Scheduler dataSource. @@ -143,7 +143,7 @@ By default, the whole event collection bound to the Scheduler gets exported as a ### Customizing column header with custom fields exporting -Using fields property, we can only export the defined fields into excel without customizing the header. Now we can provide the alternate support to customize the header of custom fields exporting using the [`fieldsInfo`](https://ej2.syncfusion.com/documentation/api/schedule/exportOptions/#fieldsinfo) option through the [`ExportFieldInfo`](https://ej2.syncfusion.com/documentation/api/schedule/exportFieldInfo/) interface and pass it as an argument to the [`exportToExcel`](https://ej2.syncfusion.com/documentation/api/schedule#exporttoexcel) method as shown in the following example. +Using fields property, we can only export the defined fields into excel without customizing the header. Now we can provide the alternate support to customize the header of custom fields exporting using the `fieldsInfo` option through the `ExportFieldInfo` interface and pass it as an argument to the `exportToExcel` method as shown in the following example. {% if page.publishingplatform == "typescript" %} @@ -174,7 +174,7 @@ Using fields property, we can only export the defined fields into excel without ### Export with custom file name -By default, the Scheduler allows you to download the exported Excel file with a name `Schedule.xlsx`. It also provides an option to export the excel file with a custom file name, by defining the desired `fileName` through the [`ExportOptions`](https://ej2.syncfusion.com/documentation/api/schedule/exportOptions/) interface and passing it as an argument to the [`exportToExcel`](https://ej2.syncfusion.com/documentation/api/schedule#exporttoexcel) method. +By default, the Scheduler allows you to download the exported Excel file with a name `Schedule.xlsx`. It also provides an option to export the excel file with a custom file name, by defining the desired `fileName` through the `ExportOptions` interface and passing it as an argument to the `exportToExcel` method. {% if page.publishingplatform == "typescript" %} @@ -205,7 +205,7 @@ By default, the Scheduler allows you to download the exported Excel file with a ### Excel file formats -By default, the Scheduler exports event data to an excel file in the `.xlsx` format. You can also export the Scheduler data in either of the file type such as `.xlsx` or `csv` formats, by defining the `exportType` option as either `csv` or `xlsx` through the [`ExportOptions`](https://ej2.syncfusion.com/documentation/api/schedule/exportOptions/) interface. By default, the `exportType` is set to `xlsx`. +By default, the Scheduler exports event data to an excel file in the `.xlsx` format. You can also export the Scheduler data in either of the file type such as `.xlsx` or `csv` formats, by defining the `exportType` option as either `csv` or `xlsx` through the `ExportOptions` interface. By default, the `exportType` is set to `xlsx`. {% if page.publishingplatform == "typescript" %} @@ -269,7 +269,7 @@ The Scheduler exports the event data to CSV format with `,` as separator. You ca You can export the Scheduler events to a calendar (.ics) file format, and open it on any of the other default calendars such as Google or Outlook. To export the events of Scheduler to an ICS file, you need to first import the `ICalendarExport` module from `@syncfusion/ej2-schedule` package and then inject it using the `Schedule.Inject(ICalendarExport)` method. -The following code example shows how the Scheduler events are exported to a calendar (.ics) file by making use of the [`exportToICalendar`](https://ej2.syncfusion.com/documentation/api/schedule#exporttoicalendar) public method. +The following code example shows how the Scheduler events are exported to a calendar (.ics) file by making use of the `exportToICalendar` public method. {% if page.publishingplatform == "typescript" %} @@ -333,11 +333,11 @@ The following example downloads the iCal file with a name `ScheduleEvents.ics`. ## Import events from other calendars -The events from external calendars (ICS files) can be imported into Scheduler by using the [`importICalendar`](https://ej2.syncfusion.com/documentation/api/schedule#importicalendar) method. This method accepts the `blob object` of an .ics file to be imported, as a mandatory argument. +The events from external calendars (ICS files) can be imported into Scheduler by using the `importICalendar` method. This method accepts the `blob object` of an .ics file to be imported, as a mandatory argument. > To import an ICS file containing events into Scheduler, you need to first import the `ICalendarImport` module from `@syncfusion/ej2-schedule` package and then inject it using the `Schedule.Inject(ICalendarImport)` method. -The following example shows how to import an ICS file into Scheduler, using the [`importICalendar`](https://ej2.syncfusion.com/documentation/api/schedule#importicalendar) method. +The following example shows how to import an ICS file into Scheduler, using the `importICalendar` method. {% if page.publishingplatform == "typescript" %} @@ -377,7 +377,7 @@ The Scheduler allows you to print the Scheduler element by using the `print` cli ### Using print method without options -You can print the Schedule element with the current view by using the [`print`](https://ej2.syncfusion.com/documentation/api/schedule#print) method without passing the options. The following example shows how to print the Scheduler using the `print` method without passing options. +You can print the Schedule element with the current view by using the `print` method without passing the options. The following example shows how to print the Scheduler using the `print` method without passing options. {% if page.publishingplatform == "typescript" %} diff --git a/ej2-javascript/schedule/header-bar.md b/ej2-javascript/schedule/header-bar.md index a5ef6843d..8e7391ecf 100644 --- a/ej2-javascript/schedule/header-bar.md +++ b/ej2-javascript/schedule/header-bar.md @@ -15,7 +15,7 @@ The header part of Scheduler can be customized easily with the built-in options ## Show or Hide header bar -By default, the header bar holds the date and view navigation options, through which the user can switch between the dates and various views. This header bar can be hidden from the UI by setting `false` to the [`showHeaderBar`](https://ej2.syncfusion.com/documentation/api/schedule#showheaderbar) property. It's default value is `true`. +By default, the header bar holds the date and view navigation options, through which the user can switch between the dates and various views. This header bar can be hidden from the UI by setting `false` to the `showHeaderBar` property. It's default value is `true`. {% if page.publishingplatform == "typescript" %} @@ -44,40 +44,9 @@ By default, the header bar holds the date and view navigation options, through w {% previewsample "page.domainurl/code-snippet/schedule/header-bar-cs1" %} {% endif %} -## Customizing header bar using template +## Customizing header bar -Apart from the default date navigation and view options available on the header bar, you can add custom items into the Scheduler header bar by making use of the [`toolbarItems`](https://ej2.syncfusion.com/documentation/api/schedule/#toolbaritems) property. To display the default items, it's essential to assign a [`name`](https://ej2.syncfusion.com/documentation/api/schedule/toolbarItem/#name) field to each item. The names of the default items are `Previous`, `Next`, `Today`, `DateRangeText`, `NewEvent`, and `Views`. For custom items you can give the name as `Custom` to the `name` field. Here, the default items such as previous, next, date range text, and today have been used along with external icon as custom items. - -{% if page.publishingplatform == "typescript" %} - -{% tabs %} -{% highlight ts tabtitle="index.ts" %} -{% include code-snippet/schedule/header-bar-template/index.ts %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/schedule/header-bar-template/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/schedule/header-bar-template" %} - -{% elsif page.publishingplatform == "javascript" %} - -{% tabs %} -{% highlight js tabtitle="index.js" %} -{% include code-snippet/schedule/header-bar-template/index.js %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/schedule/header-bar-template/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/schedule/header-bar-template" %} -{% endif %} - -## Customizing header bar using events - -Apart from the default date navigation and view options available on the header bar, you can add custom items into the Scheduler header bar by making use of the [`actionBegin`](https://ej2.syncfusion.com/documentation/api/schedule#actionbegin) event. Here, an employee image is added to the header bar, clicking on which will open the popup showing that person's short profile information. +Apart from the default date navigation and view options available on the header bar, you can add custom items into the Scheduler header bar by making use of the `actionBegin` event. Here, an employee image is added to the header bar, clicking on which will open the popup showing that person's short profile information. {% if page.publishingplatform == "typescript" %} @@ -108,7 +77,7 @@ Apart from the default date navigation and view options available on the header ## How to display the view options within the header bar popup -By default, the header bar holds the view navigation options, through which the user can switch between various views. You can move this view options to the header bar popup by setting `true` to the [`enableAdaptiveUI`](https://ej2.syncfusion.com/documentation/api/schedule#enableadaptiveui) property. +By default, the header bar holds the view navigation options, through which the user can switch between various views. You can move this view options to the header bar popup by setting `true` to the `enableAdaptiveUI` property. {% if page.publishingplatform == "typescript" %} @@ -141,11 +110,11 @@ By default, the header bar holds the view navigation options, through which the ## Date header customization -The Scheduler UI that displays the date text on all views are considered as the date header cells. You can customize the date header cells of Scheduler either using [`dateRangeTemplate`](../api/schedule/#daterangetemplate) or [`renderCell`](https://ej2.syncfusion.com/documentation/api/schedule#rendercell) event. +The Scheduler UI that displays the date text on all views are considered as the date header cells. You can customize the date header cells of Scheduler either using `dateHeaderTemplate` or `renderCell` event. ### Using date header template -The [`dateRangeTemplate`](../api/schedule/#daterangetemplate) option is used to customize the date header cells of day, week and work-week views. +The `dateHeaderTemplate` option is used to customize the date header cells of day, week and work-week views. {% if page.publishingplatform == "typescript" %} @@ -176,7 +145,7 @@ The [`dateRangeTemplate`](../api/schedule/#daterangetemplate) option is used to ### Using renderCell event -In month view, the date header template is not applicable and therefore the same customization can be added beside the date text in month cells by making use of the [`renderCell`](https://ej2.syncfusion.com/documentation/api/schedule#rendercell) event. +In month view, the date header template is not applicable and therefore the same customization can be added beside the date text in month cells by making use of the `renderCell` event. {% if page.publishingplatform == "typescript" %} @@ -240,7 +209,7 @@ The [`dateRangeTemplate`](../api/schedule/#daterangetemplate) property includes ## Customizing header indent cells -It is possible to customize the header indent cells using the [`headerIndentTemplate`](https://ej2.syncfusion.com/documentation/api/schedule#headerindenttemplate) option and change the look and appearance in both the vertical and timeline views. In vertical views, You can customize the header indent cells at the hierarchy level and you can customize the resource header left indent cell in timeline views using the template option. +It is possible to customize the header indent cells using the `headerIndentTemplate` option and change the look and appearance in both the vertical and timeline views. In vertical views, You can customize the header indent cells at the hierarchy level and you can customize the resource header left indent cell in timeline views using the template option. **Example:** To customize the header left indent cell to display resources text, refer to the below code example. diff --git a/ej2-javascript/schedule/header-rows.md b/ej2-javascript/schedule/header-rows.md index a7393e388..28d766475 100644 --- a/ej2-javascript/schedule/header-rows.md +++ b/ej2-javascript/schedule/header-rows.md @@ -11,7 +11,7 @@ domainurl: ##DomainURL## # Header rows in ##Platform_Name## Schedule control -The Timeline views can have additional header rows other than its default date and time header rows. It is possible to show individual header rows for displaying year, month and week separately using the [`headerRows`](https://ej2.syncfusion.com/documentation/api/schedule#headerrows) property. This property is applicable only on the timeline views. The possible rows which can be added using [`headerRows`](https://ej2.syncfusion.com/documentation/api/schedule#headerrows) property are as follows. +The Timeline views can have additional header rows other than its default date and time header rows. It is possible to show individual header rows for displaying year, month and week separately using the `headerRows` property. This property is applicable only on the timeline views. The possible rows which can be added using `headerRows` property are as follows. * `Year` * `Month` @@ -52,7 +52,7 @@ The following example shows the Scheduler displaying all the available header ro ## Display year and month rows in timeline views -To display the timeline Scheduler simply with year and month names alone, define the option `Year` and `Month` within the [`headerRows`](https://ej2.syncfusion.com/documentation/api/schedule#headerrows) property. +To display the timeline Scheduler simply with year and month names alone, define the option `Year` and `Month` within the `headerRows` property. {% if page.publishingplatform == "typescript" %} @@ -83,7 +83,7 @@ To display the timeline Scheduler simply with year and month names alone, define ## Display week numbers in timeline views -The week number can be displayed in a separate header row of the timeline Scheduler by setting `Week` option within [`headerRows`](https://ej2.syncfusion.com/documentation/api/schedule#headerrows) property. +The week number can be displayed in a separate header row of the timeline Scheduler by setting `Week` option within `headerRows` property. {% if page.publishingplatform == "typescript" %} @@ -114,7 +114,7 @@ The week number can be displayed in a separate header row of the timeline Schedu ## Timeline view displaying dates of a complete year -It is possible to display a complete year in a timeline view by setting [`interval`](https://ej2.syncfusion.com/documentation/api/schedule/timeScale/#interval) value as 12 and defining **TimelineMonth** view option within the `views` property of Scheduler. +It is possible to display a complete year in a timeline view by setting `interval` value as 12 and defining **TimelineMonth** view option within the `views` property of Scheduler. {% if page.publishingplatform == "typescript" %} @@ -145,7 +145,7 @@ It is possible to display a complete year in a timeline view by setting [`interv ## Customizing the header rows using template -You can customize the text of the header rows and display any images or formatted text on each individual header rows using the built-in [`template`](https://ej2.syncfusion.com/documentation/api/schedule/headerRows/#template) option available within the [`headerRows`](https://ej2.syncfusion.com/documentation/api/schedule#headerrows)property. +You can customize the text of the header rows and display any images or formatted text on each individual header rows using the built-in `template` option available within the `headerRows` property. {% if page.publishingplatform == "typescript" %} @@ -174,4 +174,4 @@ You can customize the text of the header rows and display any images or formatte {% previewsample "page.domainurl/code-snippet/schedule/header-rows-cs5" %} {% endif %} -> You can refer to our [JavaScript Scheduler](https://www.syncfusion.com/javascript-ui-controls/js-scheduler) feature tour page for its groundbreaking feature representations. You can also explore our [JavaScript Scheduler example](https://ej2.syncfusion.com/demos/#/material/schedule/overview.html) to knows how to present and manipulate data. +> You can refer to our [JavaScript Scheduler](https://www.syncfusion.com/javascript-ui-controls/js-scheduler) feature tour page for its groundbreaking feature representations. You can also explore our [JavaScript Scheduler example](https://ej2.syncfusion.com/demos/#/bootstrap5/schedule/overview.html) to knows how to present and manipulate data. diff --git a/ej2-javascript/schedule/how-to/add-edit-and-remove-events.md b/ej2-javascript/schedule/how-to/add-edit-and-remove-events.md index 8d2986c2c..cc2656a4b 100644 --- a/ej2-javascript/schedule/how-to/add-edit-and-remove-events.md +++ b/ej2-javascript/schedule/how-to/add-edit-and-remove-events.md @@ -11,7 +11,7 @@ domainurl: ##DomainURL## # Add edit and remove events in ##Platform_Name## Schedule control -CRUD actions can be manually performed on appointments using[ `addEvent`](https://ej2.syncfusion.com/documentation/api/schedule#addevent), [`saveEvent`](https://ej2.syncfusion.com/documentation/api/schedule#saveevent) and [`deleteEvent`](https://ej2.syncfusion.com/documentation/api/schedule#deleteevent) methods as shown below. +CRUD actions can be manually performed on appointments using `addEvent`, `saveEvent` and `deleteEvent` methods as shown below. ## Normal event diff --git a/ej2-javascript/schedule/how-to/display-multiple-colors-in-single-event.md b/ej2-javascript/schedule/how-to/display-multiple-colors-in-single-event.md deleted file mode 100644 index feedbbb26..000000000 --- a/ej2-javascript/schedule/how-to/display-multiple-colors-in-single-event.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -layout: post -title: Multi-Color Events in ##Platform_Name## Schedule control | Syncfusion -description: Learn here all about rendering an event with multiple colors in Syncfusion ##Platform_Name## Schedule control of Syncfusion Essential JS 2 and more. -platform: ej2-javascript -control: Display multiple colors in the event -publishingplatform: ##Platform_Name## -documentation: ug -domainurl: ##DomainURL## ---- - -# Multi-Color Events in ##Platform_Name## Schedule control - -In Scheduler we can display the multiple colors within a single event. This can be achieved by using the [`template`](https://ej2.syncfusion.com/documentation/api/schedule/eventSettingsModel/#template) option available within the [`eventSettings`](https://ej2.syncfusion.com/documentation/api/schedule/#eventsettings) property. Here, we've used `SubCount` as an additional field. The SubCount field contains the background color and height values. Based on these values, events will be divided into different colors. - -{% if page.publishingplatform == "typescript" %} - - {% tabs %} -{% highlight ts tabtitle="index.ts" %} -{% include code-snippet/schedule/multiple-color-event/index.ts %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/schedule/multiple-color-event/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/schedule/multiple-color-event" %} - -{% elsif page.publishingplatform == "javascript" %} - -{% tabs %} -{% highlight js tabtitle="index.js" %} -{% include code-snippet/schedule/multiple-color-event/index.js %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/schedule/multiple-color-event/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/schedule/multiple-color-event" %} -{% endif %} diff --git a/ej2-javascript/schedule/how-to/enable-scroll-option-on-all-day-section.md b/ej2-javascript/schedule/how-to/enable-scroll-option-on-all-day-section.md index 5de907f78..4dba44062 100644 --- a/ej2-javascript/schedule/how-to/enable-scroll-option-on-all-day-section.md +++ b/ej2-javascript/schedule/how-to/enable-scroll-option-on-all-day-section.md @@ -11,7 +11,7 @@ domainurl: ##DomainURL## # Enable scroll option on all day section in ##Platform_Name## Schedule control -When you have larger number of appointments in all-day row, it is difficult to view all the appointments properly. In that case you can enable scroller option for all-day row by setting true to [`enableAllDayScroll`](https://ej2.syncfusion.com/documentation/api/schedule#enablealldayscroll) whereas its default value is false. When setting this property to true, individual scroller for all-day row is enabled when it reaches its maximum height on expanding. +When you have larger number of appointments in all-day row, it is difficult to view all the appointments properly. In that case you can enable scroller option for all-day row by setting true to `enableAllDayScroll` whereas its default value is false. When setting this property to true, individual scroller for all-day row is enabled when it reaches its maximum height on expanding. >Note: This property is not applicable for Scheduler with height `auto`. diff --git a/ej2-javascript/schedule/how-to/half-yearly-view.md b/ej2-javascript/schedule/how-to/half-yearly-view.md index 458fdcd52..e2a393fd3 100644 --- a/ej2-javascript/schedule/how-to/half-yearly-view.md +++ b/ej2-javascript/schedule/how-to/half-yearly-view.md @@ -17,7 +17,7 @@ The year view of our scheduler displays all the 365 days and their related appoi * [`monthsCount`](../../api/schedule/#monthscount) * [`monthHeaderTemplate`](../../api/schedule/#monthheadertemplate) -In the following code example, you can see how to render only the last six months of a year in the scheduler. To start with the month of June, [`firstMonthOfYear`](../../api/schedule/#firstmonthofyear) is set to 6 and [`monthsCount`](../../api/schedule/#monthscount) is set to 6 to render only 6 months. +In the following code example, you can see how to render only the last six months of a year in the scheduler. To start with the month of June, `firstMonthYear` is set to 6 and `monthsCount` is set to 6 to render only 6 months. {% if page.publishingplatform == "typescript" %} diff --git a/ej2-javascript/schedule/how-to/open-event-editor-manually.md b/ej2-javascript/schedule/how-to/open-event-editor-manually.md index 6a8cd524c..d1fc4b202 100644 --- a/ej2-javascript/schedule/how-to/open-event-editor-manually.md +++ b/ej2-javascript/schedule/how-to/open-event-editor-manually.md @@ -13,7 +13,7 @@ domainurl: ##DomainURL## ## Open Editor Window externally -Scheduler allows the user to manually open the event editor on specific time or on certain events using [`openEditor`](https://ej2.syncfusion.com/documentation/api/schedule#openeditor) method. To open the editor on specific range of time, user need to pass the cell details as first argument and **Add** as second argument whereas to open it on event pass that event detail and **Save** as arguments. In the following code example, on clicking the respective button will open the respective editor window manually. +Scheduler allows the user to manually open the event editor on specific time or on certain events using `openEditor` method. To open the editor on specific range of time, user need to pass the cell details as first argument and **Add** as second argument whereas to open it on event pass that event detail and **Save** as arguments. In the following code example, on clicking the respective button will open the respective editor window manually. {% if page.publishingplatform == "typescript" %} @@ -44,7 +44,7 @@ Scheduler allows the user to manually open the event editor on specific time or ## Open editor window on single click -By default, Scheduler Editor window will open when double clicking the cells or appointments. You can also open the editor window with single click by using [`openEditor`](https://ej2.syncfusion.com/documentation/api/schedule#openeditor) method in [`eventClick`](https://ej2.syncfusion.com/documentation/api/schedule#eventclick) and [`cellClick`](https://ej2.syncfusion.com/documentation/api/schedule#cellclick) events of scheduler and setting false to [`showQuickInfo`](https://ej2.syncfusion.com/documentation/api/schedule#showquickinfo). The following example shows how to open editor window on single click of cells and appointments. +By default, Scheduler Editor window will open when double clicking the cells or appointments. You can also open the editor window with single click by using `openEditor` method in `eventClick` and `cellClick` events of scheduler and setting false to `showQuickInfo`. The following example shows how to open editor window on single click of cells and appointments. {% if page.publishingplatform == "typescript" %} diff --git a/ej2-javascript/schedule/how-to/prevent-date-navigation.md b/ej2-javascript/schedule/how-to/prevent-date-navigation.md index c306d000b..9f55b43a6 100644 --- a/ej2-javascript/schedule/how-to/prevent-date-navigation.md +++ b/ej2-javascript/schedule/how-to/prevent-date-navigation.md @@ -11,7 +11,7 @@ domainurl: ##DomainURL## # Prevent date navigation in ##Platform_Name## Schedule control -We can prevent navigation while clicking on the date header by simply removing `e-navigate` class from header cells which can be achieved in the [`renderCell`](https://ej2.syncfusion.com/documentation/api/schedule#rendercell) event as shown in the following code example. +We can prevent navigation while clicking on the date header by simply removing `e-navigate` class from header cells which can be achieved in the `renderCell` event as shown in the following code example. {% if page.publishingplatform == "typescript" %} diff --git a/ej2-javascript/schedule/how-to/salesforce-integration.md b/ej2-javascript/schedule/how-to/salesforce-integration.md index ed07c8bd4..868a1cbc4 100644 --- a/ej2-javascript/schedule/how-to/salesforce-integration.md +++ b/ej2-javascript/schedule/how-to/salesforce-integration.md @@ -9,8 +9,6 @@ documentation: ug domainurl: ##DomainURL## --- -# Salesforce integration in ##Platform_Name## Schedule control - This topic provides you with a detailed step-by-step guide on how to seamlessly integrate the [**JavaScript Scheduler**](https://www.syncfusion.com/javascript-ui-controls/js-scheduler) component into Salesforce. By integrating it into Salesforce, you can enhance your productivity and streamline your scheduling processes. ## Prerequisites @@ -37,13 +35,13 @@ Now you have have Salesforce configured, let's create a [Salesforce project](htt In your preferred location, create a base directory for your Salesforce project. For example, you can create a directory named `salesforceApp` using the following command: -``` +```bash mkdir salesforceApp ``` Navigate to the base directory you created in the previous step and generate a Salesforce DX project using the following CLI command. -``` +```bash sfdx project:generate -n scheduler-salesforce-app ``` @@ -55,7 +53,7 @@ Before proceeding further, you need to authorize your Salesforce project by foll Run the following command to authorize your Salesforce project with your Salesforce account in the browser. -``` +```bash sfdx org:login:web -d ``` @@ -64,10 +62,10 @@ sfdx org:login:web -d Open the `sfdx-project.json` file located in `salesforceApp/scheduler-salesforce-app` and update the `sfdcLoginUrl` with the domain URL of your Salesforce account as shown in image (fig 2). You can obtain the domain URL from the `My Domain` setup tab in Salesforce as shown in image (fig 1). fig 1 -![Salesforce project fig 1](../images/Salesforce-project-fig1.png) +![Salesforce project (fig 1)](../images/Salesforce-project-fig1.png) fig 2 -![Salesforce project fig 2](../images/Salesforce-project-fig2.png) +![Salesforce project (fig 2)](../images/Salesforce-project-fig2.png) ## Create scratch organization @@ -75,7 +73,7 @@ To facilitate development and testing, the creation of a scratch organization wi Run the following command to create a new scratch organization, which will provide a fresh Salesforce environment for development and testing with organization id and username as link below image. -``` +```bash sfdx org:create:scratch -f config/project-scratch-def.json ``` @@ -87,8 +85,8 @@ To integrate the Syncfusion scripts and styles as static resource files within S Use the following command to open the scratch project in the browser -``` -sfdx org:open -o +```bash +sfdx org:open -o ``` Replace with the username of your scratch organization, which was generated during the scratch organization creation process. @@ -170,7 +168,7 @@ To integrate the **JavaScript Scheduler** into your Salesforce project, we will 1. In your Salesforce project, run the following command to generate a Lightning web component named scheduler. -``` +```bash sfdx lightning:generate:component --type lwc -n scheduler -d force-app/main/default/lwc ``` @@ -178,7 +176,7 @@ sfdx lightning:generate:component --type lwc -n scheduler -d force-app/main/defa 2. Open the `scheduler.js-meta.xml` file located in `force-app/main/default/lwc/scheduler` and modify the component definition to expose it in the Lightning App Builder. Here's an example of the modified file. -``` +```xml 57.0 @@ -195,8 +193,8 @@ sfdx lightning:generate:component --type lwc -n scheduler -d force-app/main/defa ``` 3. Open the `scheduler.html` file located in `force-app/main/default/lwc/scheduler` and add an element with a class name to append the Syncfusion scheduler. Here's an example of the modified file. - -``` + +```html @@ -204,7 +202,7 @@ sfdx lightning:generate:component --type lwc -n scheduler -d force-app/main/defa 4. Open the `scheduler.js` file located in `force-app/main/default/lwc/scheduler` and implement the scheduler code in renderedCallback function. The static scripts and styles are loaded using the `loadScript` and `loadStyle` imports. Here's an example of the modified file. -```ts +```js import { LightningElement, api } from 'lwc'; import { ShowToastEvent } from "lightning/platformShowToastEvent"; import { loadStyle, loadScript } from "lightning/platformResourceLoader"; @@ -248,7 +246,9 @@ export default class Scheduler extends LightningElement { .catch((error) => { this.dispatchEvent( new ShowToastEvent({ - message: error.message, variant: "error" + title: "Error loading scheduler", + message: error.message, + variant: "error" }) ); }); @@ -325,7 +325,7 @@ Apex class that facilitates smooth interactions between your Lightning component Use the following command to create Apex class with the name `SchedulerData`. -``` +```bash sfdx apex:generate:class -n SchedulerData -d force-app/main/default/classes ``` @@ -334,7 +334,7 @@ sfdx apex:generate:class -n SchedulerData -d force-app/main/default/classes Open the **SchedulerData.cls** file located in `force-app/main/default/classes/SchedulerData.cls`. This will fetch the event data from salesforce backend. Here's an example of the modified file. -``` +```c# public with sharing class SchedulerData { @RemoteAction @AuraEnabled(cacheable=true) @@ -353,7 +353,7 @@ public with sharing class SchedulerData { To retrieve the changes made in the scratch organization and sync them with your local Salesforce project, use the following command. -``` +```bash sfdx project:retrieve:start -o ``` @@ -365,7 +365,7 @@ Replace with the username of your scratch organization. To push the changes made in your local Salesforce project to the scratch organization, use the following command. -``` +```bash sfdx project:deploy:start -o ``` @@ -416,4 +416,4 @@ Click on the `SyncfusionScheduler` app, and the scheduler will load on the home ![Click Scheduler page](../images/Salesforce-click-scheduler.png) -N> You can also explore our [**JavaScript Scheduler Salesforce integration**](https://github.com/SyncfusionExamples/salesforce-integration-in-ej2-javascript-scheduler) example to knows about the Salesforce integration. +N> You can also explore our [**JavaScript Scheduler**](https://www.syncfusion.com/javascript-ui-controls/js-scheduler) example to knows about the Salesforce integration. diff --git a/ej2-javascript/schedule/how-to/set-different-work-hours.md b/ej2-javascript/schedule/how-to/set-different-work-hours.md index de171675d..98336a9df 100644 --- a/ej2-javascript/schedule/how-to/set-different-work-hours.md +++ b/ej2-javascript/schedule/how-to/set-different-work-hours.md @@ -11,7 +11,7 @@ domainurl: ##DomainURL## # Set different work hours in ##Platform_Name## Schedule control -By default, the work hours of the Scheduler is highlighted based on the start and end values provided within the [`workHours`](https://ej2.syncfusion.com/documentation/api/schedule#workhours) property which remains same for all days. To highlight different work hours range for different days,[`setWorkHours`](https://ej2.syncfusion.com/documentation/api/schedule#setworkhours) method. You can pass date object/ multiple date objects collection as first argument and start and end time need to be added as work hours should be passed as second and third arguments respectively. In the following code example, on button click 11:00 AM to 08:00 PM of 15th and 17th February has been added in work hours. +By default, the work hours of the Scheduler is highlighted based on the start and end values provided within the `workHours` property which remains same for all days. To highlight different work hours range for different days,`setWorkHours` method. You can pass date object/ multiple date objects collection as first argument and start and end time need to be added as work hours should be passed as second and third arguments respectively. In the following code example, on button click 11:00 AM to 08:00 PM of 15th and 17th February has been added in work hours. {% if page.publishingplatform == "typescript" %} diff --git a/ej2-javascript/schedule/how-to/show-entire-time-in-responsive-mode.md b/ej2-javascript/schedule/how-to/show-entire-time-in-responsive-mode.md index 9a102a3fc..ea090a28f 100644 --- a/ej2-javascript/schedule/how-to/show-entire-time-in-responsive-mode.md +++ b/ej2-javascript/schedule/how-to/show-entire-time-in-responsive-mode.md @@ -11,7 +11,7 @@ domainurl: ##DomainURL## # Show entire time in responsive mode in ##Platform_Name## Schedule control -9 AM is visible since it has enough space in responsive mode, but if you set 08:45 AM as start hour of scheduler then the time slots will not show full time in the time slot of responsive scheduler, for which we can use [`majorSlotTemplate`](https://ej2.syncfusion.com/documentation/api/schedule/timeScale/#majorslottemplate) to set proper time slots in scheduler. +9 AM is visible since it has enough space in responsive mode, but if you set 08:45 AM as start hour of scheduler then the time slots will not show full time in the time slot of responsive scheduler, for which we can use `majorSlotTemplate` to set proper time slots in scheduler. {% if page.publishingplatform == "typescript" %} diff --git a/ej2-javascript/schedule/how-to/zoom-in-and-zoom-out-the-schedule.md b/ej2-javascript/schedule/how-to/zoom-in-and-zoom-out-the-schedule.md index b92d444c1..620441ae9 100644 --- a/ej2-javascript/schedule/how-to/zoom-in-and-zoom-out-the-schedule.md +++ b/ej2-javascript/schedule/how-to/zoom-in-and-zoom-out-the-schedule.md @@ -11,7 +11,7 @@ domainurl: ##DomainURL## # Zoom in and zoom out the schedule in ##Platform_Name## Schedule control -By default Scheduler component doesn’t have the Zoom in/out support. Using the [`timeScale`](https://ej2.syncfusion.com/documentation/api/schedule#timescale) and [`headerRows`](https://ej2.syncfusion.com/documentation/api/schedule#headerrows) properties of our scheduler, we can achieve this. +By default Scheduler component doesn’t have the Zoom in/out support. Using the `timeScale` and `headerRows` properties of our scheduler, we can achieve this. Refer to the following code example. diff --git a/ej2-javascript/schedule/images/CSP-trusted-sites.png b/ej2-javascript/schedule/images/CSP-trusted-sites.png index eceb7ceb3..f94bee2f7 100644 Binary files a/ej2-javascript/schedule/images/CSP-trusted-sites.png and b/ej2-javascript/schedule/images/CSP-trusted-sites.png differ diff --git a/ej2-javascript/schedule/images/Salesforce-CSP-trusted-sites.png b/ej2-javascript/schedule/images/Salesforce-CSP-trusted-sites.png index 765ee0933..21647a20a 100644 Binary files a/ej2-javascript/schedule/images/Salesforce-CSP-trusted-sites.png and b/ej2-javascript/schedule/images/Salesforce-CSP-trusted-sites.png differ diff --git a/ej2-javascript/schedule/images/Salesforce-activate-custom-component.png b/ej2-javascript/schedule/images/Salesforce-activate-custom-component.png index f0c944290..75659d3ae 100644 Binary files a/ej2-javascript/schedule/images/Salesforce-activate-custom-component.png and b/ej2-javascript/schedule/images/Salesforce-activate-custom-component.png differ diff --git a/ej2-javascript/schedule/images/Salesforce-add-component.png b/ej2-javascript/schedule/images/Salesforce-add-component.png index 6196c0584..ff44d3da4 100644 Binary files a/ej2-javascript/schedule/images/Salesforce-add-component.png and b/ej2-javascript/schedule/images/Salesforce-add-component.png differ diff --git a/ej2-javascript/schedule/images/Salesforce-add-lightning-page.png b/ej2-javascript/schedule/images/Salesforce-add-lightning-page.png index 78641fea1..3f50c1856 100644 Binary files a/ej2-javascript/schedule/images/Salesforce-add-lightning-page.png and b/ej2-javascript/schedule/images/Salesforce-add-lightning-page.png differ diff --git a/ej2-javascript/schedule/images/Salesforce-app.png b/ej2-javascript/schedule/images/Salesforce-app.png index 5f4f2d2ed..9825128a3 100644 Binary files a/ej2-javascript/schedule/images/Salesforce-app.png and b/ej2-javascript/schedule/images/Salesforce-app.png differ diff --git a/ej2-javascript/schedule/images/Salesforce-create-lightning-page.png b/ej2-javascript/schedule/images/Salesforce-create-lightning-page.png index 7505ed0db..aef569f40 100644 Binary files a/ej2-javascript/schedule/images/Salesforce-create-lightning-page.png and b/ej2-javascript/schedule/images/Salesforce-create-lightning-page.png differ diff --git a/ej2-javascript/schedule/images/Salesforce-custom-field.png b/ej2-javascript/schedule/images/Salesforce-custom-field.png index 275e8c02e..82ca02d3b 100644 Binary files a/ej2-javascript/schedule/images/Salesforce-custom-field.png and b/ej2-javascript/schedule/images/Salesforce-custom-field.png differ diff --git a/ej2-javascript/schedule/images/Salesforce-enable-dev-hub.png b/ej2-javascript/schedule/images/Salesforce-enable-dev-hub.png index 5d9b73169..509bcd037 100644 Binary files a/ej2-javascript/schedule/images/Salesforce-enable-dev-hub.png and b/ej2-javascript/schedule/images/Salesforce-enable-dev-hub.png differ diff --git a/ej2-javascript/schedule/images/Salesforce-field-relationship.png b/ej2-javascript/schedule/images/Salesforce-field-relationship.png index ef76dfb62..9007bd807 100644 Binary files a/ej2-javascript/schedule/images/Salesforce-field-relationship.png and b/ej2-javascript/schedule/images/Salesforce-field-relationship.png differ diff --git a/ej2-javascript/schedule/images/Salesforce-new-custom-object.png b/ej2-javascript/schedule/images/Salesforce-new-custom-object.png index 07f974452..171217825 100644 Binary files a/ej2-javascript/schedule/images/Salesforce-new-custom-object.png and b/ej2-javascript/schedule/images/Salesforce-new-custom-object.png differ diff --git a/ej2-javascript/schedule/images/Salesforce-object-manager.png b/ej2-javascript/schedule/images/Salesforce-object-manager.png index 429684a34..4bd5e0019 100644 Binary files a/ej2-javascript/schedule/images/Salesforce-object-manager.png and b/ej2-javascript/schedule/images/Salesforce-object-manager.png differ diff --git a/ej2-javascript/schedule/images/Salesforce-project-fig1.png b/ej2-javascript/schedule/images/Salesforce-project-fig1.png index 229528199..8154d3ffa 100644 Binary files a/ej2-javascript/schedule/images/Salesforce-project-fig1.png and b/ej2-javascript/schedule/images/Salesforce-project-fig1.png differ diff --git a/ej2-javascript/schedule/images/Salesforce-provide-name-lightning-page.png b/ej2-javascript/schedule/images/Salesforce-provide-name-lightning-page.png index b71ecb358..7d37f421e 100644 Binary files a/ej2-javascript/schedule/images/Salesforce-provide-name-lightning-page.png and b/ej2-javascript/schedule/images/Salesforce-provide-name-lightning-page.png differ diff --git a/ej2-javascript/schedule/images/Salesforce-save-component.png b/ej2-javascript/schedule/images/Salesforce-save-component.png index 9dded892e..aec32dfef 100644 Binary files a/ej2-javascript/schedule/images/Salesforce-save-component.png and b/ej2-javascript/schedule/images/Salesforce-save-component.png differ diff --git a/ej2-javascript/schedule/images/Salesforce-scheduler-events.png b/ej2-javascript/schedule/images/Salesforce-scheduler-events.png index c1076edce..190cd1daa 100644 Binary files a/ej2-javascript/schedule/images/Salesforce-scheduler-events.png and b/ej2-javascript/schedule/images/Salesforce-scheduler-events.png differ diff --git a/ej2-javascript/schedule/images/Salesforce-select-region-lightning-page.png b/ej2-javascript/schedule/images/Salesforce-select-region-lightning-page.png index 9eb50e9b7..367c552f1 100644 Binary files a/ej2-javascript/schedule/images/Salesforce-select-region-lightning-page.png and b/ej2-javascript/schedule/images/Salesforce-select-region-lightning-page.png differ diff --git a/ej2-javascript/schedule/images/Salesforce-setting-allday-field.png b/ej2-javascript/schedule/images/Salesforce-setting-allday-field.png index de61d412f..1cca1af99 100644 Binary files a/ej2-javascript/schedule/images/Salesforce-setting-allday-field.png and b/ej2-javascript/schedule/images/Salesforce-setting-allday-field.png differ diff --git a/ej2-javascript/schedule/images/Salesforce-setup-menu.png b/ej2-javascript/schedule/images/Salesforce-setup-menu.png index 4a714edf3..05f5d8341 100644 Binary files a/ej2-javascript/schedule/images/Salesforce-setup-menu.png and b/ej2-javascript/schedule/images/Salesforce-setup-menu.png differ diff --git a/ej2-javascript/schedule/images/Salesforce-static-resource.png b/ej2-javascript/schedule/images/Salesforce-static-resource.png index 5758470ca..85b5106d0 100644 Binary files a/ej2-javascript/schedule/images/Salesforce-static-resource.png and b/ej2-javascript/schedule/images/Salesforce-static-resource.png differ diff --git a/ej2-javascript/schedule/images/missing-css-reference.png b/ej2-javascript/schedule/images/missing-css-reference.png index e8c63477c..f5121e3aa 100644 Binary files a/ej2-javascript/schedule/images/missing-css-reference.png and b/ej2-javascript/schedule/images/missing-css-reference.png differ diff --git a/ej2-javascript/schedule/js/frequently-asked-questions.md b/ej2-javascript/schedule/js/frequently-asked-questions.md index c82d2b115..9538c2227 100644 --- a/ej2-javascript/schedule/js/frequently-asked-questions.md +++ b/ej2-javascript/schedule/js/frequently-asked-questions.md @@ -134,23 +134,3 @@ var scheduleObj = new ej.schedule.Schedule({ scheduleObj.appendTo('#Schedule'); ``` - -## Getting instance of the Scheduler component - -User can access the component instance from the component element through the variable where you are initializing the Schedule component(scheduleObj) or by using the ej2_instances property as shown below. - -```javascript - -var scheduleObj = new ej.schedule.Schedule({ - . - . - cellClick: onClick, -}); - -scheduleObj.appendTo('#Schedule'); - -function onClick(args) { - let scheduleInstance = document.querySelector('.e-schedule').ej2_instances[0]; -} - -``` diff --git a/ej2-javascript/schedule/js/getting-started.md b/ej2-javascript/schedule/js/getting-started.md index cb66f8964..c9c6a5ebe 100644 --- a/ej2-javascript/schedule/js/getting-started.md +++ b/ej2-javascript/schedule/js/getting-started.md @@ -1,7 +1,7 @@ --- layout: post -title: Getting started with JavaScript Schedule Control | Syncfusion -description: Checkout and learn about Getting started with JavaScript Schedule Control of Syncfusion Essential JS 2 and more details. +title: Getting started with ##Platform_Name## Schedule control | Syncfusion +description: Checkout and learn about Getting started with ##Platform_Name## Schedule control of Syncfusion Essential JS 2 and more details. platform: ej2-javascript control: Getting started publishingplatform: ##Platform_Name## @@ -9,7 +9,7 @@ documentation: ug domainurl: ##DomainURL## --- -# Getting Started with JavaScript Schedule Control +# Getting started in ##Platform_Name## Schedule control This section briefly explains how to create the [**JavaScript Scheduler**](https://www.syncfusion.com/javascript-ui-controls/js-scheduler) component and configure its available functionalities in a JavaScript application. @@ -242,7 +242,7 @@ var scheduleObj = new ej.schedule.Schedule({ subject: 'Meeting', startTime: new Date(2018, 1, 15, 10, 0), endTime: new Date(2018, 1, 15, 12, 30) - }] + }]; } }); scheduleObj.appendTo('#Schedule'); @@ -337,6 +337,9 @@ The output will display the Scheduler with the specified view configuration. {% highlight html tabtitle="index.html" %} {% include code-snippet/schedule/views-model-cs1/index.html %} {% endhighlight %} +{% highlight html tabtitle="es5-datasource.js" %} +{% include code-snippet/schedule/views-model-cs1/es5-datasource.js %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/schedule/views-model-cs1" %} diff --git a/ej2-javascript/schedule/js/module-injection.md b/ej2-javascript/schedule/js/module-injection.md index 677045e6a..d8712eb23 100644 --- a/ej2-javascript/schedule/js/module-injection.md +++ b/ej2-javascript/schedule/js/module-injection.md @@ -11,7 +11,7 @@ domainurl: ##DomainURL## # Module injection in ##Platform_Name## Schedule control -The crucial step on creating a Scheduler with required views, is to import and inject the required modules. The modules that are available on Scheduler to work with its related functionalities are as follows. +The crucial step in creating a Scheduler with required views is to import and inject the required modules. The modules that are available on Scheduler to work with its related functionalities are as follows. * `Day` - Inject this module to work with day view. * `Week` - Inject this module to work with week view. @@ -33,7 +33,7 @@ The required modules should be injected into the Scheduler using the `ej.schedul `[myapp/index.js]` -```ts +```js ej.schedule.Schedule.Inject(ej.schedule.Day, ej.schedule.Week, ej.schedule.WorkWeek, ej.schedule.Month, ej.schedule.Agenda, ej.schedule.MonthAgenda); ``` diff --git a/ej2-javascript/schedule/module-injection.md b/ej2-javascript/schedule/module-injection.md index d60201df4..f8e0c52c6 100644 --- a/ej2-javascript/schedule/module-injection.md +++ b/ej2-javascript/schedule/module-injection.md @@ -34,6 +34,6 @@ The required modules should be injected into the Scheduler using the `Inject` me Schedule.Inject(Day, Week, WorkWeek, Month, Agenda, MonthAgenda); ``` -**Note:** If a Scheduler [`currentView`](https://ej2.syncfusion.com/documentation/api/schedule#currentview) is set to any one of the available views without injecting that respective view module, then a script error will occur and the Scheduler will not render. +**Note:** If a Scheduler `currentView` is set to any one of the available views without injecting that respective view module, then a script error will occur and the Scheduler will not render. > You can refer to our [JavaScript Scheduler](https://www.syncfusion.com/javascript-ui-controls/js-scheduler) feature tour page for its groundbreaking feature representations. You can also explore our [JavaScript Scheduler example](https://ej2.syncfusion.com/demos/#/material/schedule/overview.html) to knows how to present and manipulate data. diff --git a/ej2-javascript/schedule/recurrence-editor.md b/ej2-javascript/schedule/recurrence-editor.md index b897ed4ef..2d9fa794b 100644 --- a/ej2-javascript/schedule/recurrence-editor.md +++ b/ej2-javascript/schedule/recurrence-editor.md @@ -25,7 +25,7 @@ By default, there are 5 types of repeat options available in recurrence editor s * Monthly * Yearly -It is possible to customize the recurrence editor to display only the specific repeat options such as `Daily` and `Weekly` options alone by setting the appropriate [`frequencies`](https://ej2.syncfusion.com/documentation/api/recurrence-editor#frequencies) option. +It is possible to customize the recurrence editor to display only the specific repeat options such as `Daily` and `Weekly` options alone by setting the appropriate `frequencies` option. {% if page.publishingplatform == "typescript" %} @@ -110,7 +110,7 @@ It is possible to customize the recurrence editor to display only the specific e The recurrence rule is usually generated based on the options selected from the recurrence editor and also it follows the [`iCalendar`](https://tools.ietf.org/html/rfc5545#section-3.3.10) specifications. The generated recurrence rule string is a valid one to be used with the Scheduler event’s recurrence rule field. -There is a [`change`](https://ej2.syncfusion.com/documentation/api/recurrence-editor#change) event available in recurrence editor, that triggers on every time the fields of recurrence editor tends to change. Within this event argument, you can access the generated recurrence value through the `value` option as shown in the following code example. +There is a `change` event available in recurrence editor, that triggers on every time the fields of recurrence editor tends to change. Within this event argument, you can access the generated recurrence value through the `value` option as shown in the following code example. {% if page.publishingplatform == "typescript" %} diff --git a/ej2-javascript/schedule/resources.md b/ej2-javascript/schedule/resources.md index d50d1c61b..d9c0f5b55 100644 --- a/ej2-javascript/schedule/resources.md +++ b/ej2-javascript/schedule/resources.md @@ -19,25 +19,25 @@ The HTML5 JavaScript Scheduler groups the resources based on different criteria. ## Resource fields -The default options available within the [`resources`](https://ej2.syncfusion.com/documentation/api/schedule/resources/) collection are as follows, +The default options available within the `resources` collection are as follows, | Field name | Type | Description | |-------|---------| --------------- | -| `field` | String | A value that binds to the resource [`field`](https://ej2.syncfusion.com/documentation/api/schedule/resources/#field) of event object. | -| `title` | String | It holds the [`title`](https://ej2.syncfusion.com/documentation/api/schedule/resources/#title) of the resource field to be displayed on the event editor window. | -| `name` | String | A unique resource [`name`](https://ej2.syncfusion.com/documentation/api/schedule/resources/#name) used for differentiating various resource objects while grouping. | -| `allowMultiple` | Boolean | When set to `true`, the [`allowMultiple`](https://ej2.syncfusion.com/documentation/api/schedule/resources/#allowmultiple) property allows the selection of multiple resource names, thus creating multiple instances of the same appointment for the selected resources. | -| `dataSource` | Object | Assigns the resource [`dataSource`](https://ej2.syncfusion.com/documentation/api/schedule/resources/#datasource), where data can be passed either as an array of JavaScript objects, or else can create an instance of [`DataManager`](http://ej2.syncfusion.com/documentation/data/api-dataManager) in case of processing remote data and can be assigned to the `dataSource` property. With the remote data assigned to [`dataSource`](https://ej2.syncfusion.com/documentation/api/schedule/resources/#datasource), check the available [adaptors](http://ej2.syncfusion.com/documentation/data/adaptors) to customize the data processing. | +| `field` | String | A value that binds to the resource field of event object. | +| `title` | String | It holds the title of the resource field to be displayed on the event editor window. | +| `name` | String | A unique resource name used for differentiating various resource objects while grouping. | +| `allowMultiple` | Boolean | When set to `true`, allows multiple selection of resource names, thus creating multiple instances of same appointment for the selected resources. | +| `dataSource` | Object | Assigns the resource `dataSource`, where data can be passed either as an array of JavaScript objects, or else can create an instance of [`DataManager`](http://ej2.syncfusion.com/documentation/data/api-dataManager) in case of processing remote data and can be assigned to the `dataSource` property. With the remote data assigned to `dataSource`, check the available [adaptors](http://ej2.syncfusion.com/documentation/data/adaptors) to customize the data processing. | | `query` | Query | Defines the external [`query`](http://ej2.syncfusion.com/documentation/data/api-query) that will be executed along with the data processing. | -| `idField` | String | Binds the resource ID field name from the resources [`dataSource`](https://ej2.syncfusion.com/documentation/api/schedule/resources/#datasource). | -| `expandedField` | String | Binds the [`expandedField`](https://ej2.syncfusion.com/documentation/api/schedule/resources/#expandedfield) name from the resources [`dataSource`](https://ej2.syncfusion.com/documentation/api/schedule/resources/#datasource). It usually holds boolean value which decide whether the resource of timeline views is in collapse or expand state on initial load. | -| `textField` | String | Binds the [`textField`](https://ej2.syncfusion.com/documentation/api/schedule/resources/#textfield) name from the resources [`dataSource`](https://ej2.syncfusion.com/documentation/api/schedule/resources/#datasource). It usually holds the resource names. | -| `groupIDField` | String | Binds the [`groupIDField`](https://ej2.syncfusion.com/documentation/api/schedule/resources/#groupidfield) name from the resource [`dataSource`](https://ej2.syncfusion.com/documentation/api/schedule/resources/#datasource). It usually holds the value of resource IDs of parent level resources. | -| `colorField` | String | Binds the [`colorField`](https://ej2.syncfusion.com/documentation/api/schedule/resources/#colorfield) name from the resource [`dataSource`](https://ej2.syncfusion.com/documentation/api/schedule/resources/#datasource). The color value mapped in this field will be applied to the events of resources. | -| `startHourField` | String | Binds the [`startHourField`](https://ej2.syncfusion.com/documentation/api/schedule/resources/#starthourfield) name from the resource [`dataSource`](https://ej2.syncfusion.com/documentation/api/schedule/resources/#datasource). It allows to provide different work start hour for the resources. | -| `endHourField` | String | Binds the [`endHourField`](https://ej2.syncfusion.com/documentation/api/schedule/resources/#endhourfield) name from the resource [`dataSource`](https://ej2.syncfusion.com/documentation/api/schedule/resources/#datasource). It allows to provide different work end hour for the resources. | -| `workDaysField` | String | Binds the [`workDaysField`](https://ej2.syncfusion.com/documentation/api/schedule/resources/#workdaysfield) name from the resources [`dataSource`](https://ej2.syncfusion.com/documentation/api/schedule/resources/#datasource). It allows to provide different working days collection for the resources. | -| `cssClassField` | String | Binds the custom [`cssClassField`](https://ej2.syncfusion.com/documentation/api/schedule/resources/#cssclassfield) name from the resources [`dataSource`](https://ej2.syncfusion.com/documentation/api/schedule/resources/#datasource). It maps the CSS class written for the specific resources and applies it to the events of those resources. | +| `idField` | String | Binds the resource ID field name from the resources `dataSource`. | +| `expandedField` | Boolean | Binds the `expandedField` name from the resources `dataSource`. It usually holds boolean value which decide whether the resource of timeline views is in collapse or expand state on initial load. | +| `textField` | String | Binds the text field name from the resources `dataSource`. It usually holds the resource names. | +| `groupIDField` | String | Binds the group ID field name from the resource `dataSource`. It usually holds the value of resource IDs of parent level resources. | +| `colorField` | String | Binds the color field name from the resource `dataSource`. The color value mapped in this field will be applied to the events of resources. | +| `startHourField` | String | Binds the start hour field name from the resource `dataSource`. It allows to provide different work start hour for the resources. | +| `endHourField` | String | Binds the end hour field name from the resource `dataSource`. It allows to provide different work end hour for the resources. | +| `workDaysField` | String | Binds the work days field name from the resources `dataSource`. It allows to provide different working days collection for the resources. | +| `cssClassField` | String | Binds the custom CSS class field name from the resources `dataSource`. It maps the CSS class written for the specific resources and applies it to the events of those resources. | ## Resource data binding @@ -45,110 +45,65 @@ The data for resources can bind with Scheduler either as a local JSON collection ### Using local JSON data -The following code example depicts how to bind the local JSON data to the [`dataSource`](https://ej2.syncfusion.com/documentation/api/schedule/resources/#datasource) of [`resources`](https://ej2.syncfusion.com/documentation/api/schedule/resources/) collection. - -{% if page.publishingplatform == "typescript" %} - -{% tabs %} -{% highlight ts tabtitle="index.ts" %} -{% include code-snippet/schedule/resource-grouping-local-data/index.ts %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/schedule/resource-grouping-local-data/index.html %} -{% endhighlight %} -{% highlight html tabtitle="datasource.ts" %} -{% include code-snippet/schedule/resource-grouping-local-data/datasource.ts %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/schedule/resource-grouping-local-data" %} - -{% elsif page.publishingplatform == "javascript" %} - -{% tabs %} -{% highlight js tabtitle="index.js" %} -{% include code-snippet/schedule/resource-grouping-local-data/index.js %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/schedule/resource-grouping-local-data/index.html %} -{% endhighlight %} -{% highlight html tabtitle="es5-datasource.js" %} -{% include code-snippet/schedule/resource-grouping-local-data/es5-datasource.js %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/schedule/resource-grouping-local-data" %} -{% endif %} +The following code example depicts how to bind the local JSON data to the `dataSource` of `resources` collection. + +```ts +import { Schedule, Week, Month, Agenda, TimelineViews, TimelineMonth } from '@syncfusion/ej2-schedule'; +import { resourceData } from './datasource.ts'; + +Schedule.Inject( Week, Month, TimelineViews, TimelineMonth, Agenda); +let scheduleObj: Schedule = new Schedule({ + width: '100%', + height: '550px', + currentView: 'Week', + views: ['Week', 'Month', 'TimelineWeek','TimelineMonth', 'Agenda'], + selectedDate: new Date(2018, 3, 1), + resources: [{ + field: 'OwnerId', title: 'Owner', + name: 'Owners', allowMultiple: true, + dataSource: [ + { OwnerText: 'Nancy', Id: 1, OwnerColor: '#ffaa00' }, + { OwnerText: 'Steven', Id: 2, OwnerColor: '#f8a398' }, + { OwnerText: 'Michael', Id: 3, OwnerColor: '#7499e1' } + ], + textField: 'OwnerText', idField: 'Id', colorField: 'OwnerColor' + }], + eventSettings: { dataSource: resourceData } +}); +scheduleObj.appendTo('#Schedule'); +``` ### Using remote service URL -The following code example depicts how to bind the remote data for resources [`dataSource`](https://ej2.syncfusion.com/documentation/api/schedule/resources/#datasource). - -{% if page.publishingplatform == "typescript" %} - -{% tabs %} -{% highlight ts tabtitle="index.ts" %} -{% include code-snippet/schedule/resource-grouping-remote-data/index.ts %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/schedule/resource-grouping-remote-data/index.html %} -{% endhighlight %} -{% highlight html tabtitle="datasource.ts" %} -{% include code-snippet/schedule/resource-grouping-remote-data/datasource.ts %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/schedule/resource-grouping-remote-data" %} - -{% elsif page.publishingplatform == "javascript" %} - -{% tabs %} -{% highlight js tabtitle="index.js" %} -{% include code-snippet/schedule/resource-grouping-remote-data/index.js %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/schedule/resource-grouping-remote-data/index.html %} -{% endhighlight %} -{% highlight html tabtitle="es5-datasource.js" %} -{% include code-snippet/schedule/resource-grouping-remote-data/es5-datasource.js %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/schedule/resource-grouping-remote-data" %} -{% endif %} - -The server-side controller code to handle the resource datasource are as follows. - -```c# -using Microsoft.AspNetCore.Mvc; - -namespace Core_DotNet9.Controllers -{ - public class HomeController : Controller - { - public IActionResult Index() - { - return View(); - } - public List GetResourceData() - { - var resources = new List - { - new Resource { Id = 1, OwnerText = "Alice", OwnerColor = "#1aaa55" }, - new Resource { Id = 2, OwnerText = "Bob", OwnerColor = "#357cd2" }, - new Resource { Id = 3, OwnerText = "Charlie", OwnerColor = "#7fa900" } - }; - return resources; - } - public class Resource - { - public int Id { get; set; } - public string OwnerText { get; set; } - public string OwnerColor { get; set; } - } - } -} - +The following code example depicts how to bind the remote data for resources `dataSource`. + +```ts +import { DataManager, UrlAdaptor } from '@syncfusion/ej2-data'; +import { Schedule, Week, Month, Agenda, TimelineViews, TimelineMonth } from '@syncfusion/ej2-schedule'; +import { resourceData } from './datasource.ts'; + +let resource: DataManager = new DataManager({ + url: 'Home/GetResourceData', + adaptor: new UrlAdaptor, + crossDomain: true +}); + +Schedule.Inject( Week, Month, TimelineViews, TimelineMonth, Agenda); +let scheduleObj: Schedule = new Schedule({ + width: '100%', + height: '550px', + currentView: 'Week', + views: ['Week', 'Month', 'TimelineWeek','TimelineMonth', 'Agenda'], + selectedDate: new Date(2018, 3, 1), + resources: [{ + field: 'OwnerId', title: 'Owner', + name: 'Owners', allowMultiple: true, + dataSource: resource, + textField: 'OwnerText', idField: 'Id', colorField: 'OwnerColor' + }], + eventSettings: { dataSource: resourceData } +}); +scheduleObj.appendTo('#Schedule'); ``` ## Scheduler with multiple resources @@ -157,7 +112,7 @@ It is possible to display the Scheduler in default mode without visually showcas The appointments belonging to the different resources will be displayed altogether on the default Scheduler, which will be differentiated based on the resource color assigned in the **resources** (depicting to which resource that particular appointment belongs) collection. -**Example:** To display default Scheduler with multiple resource options in the event editor, ignore the group option and simply define the [`resources`](https://ej2.syncfusion.com/documentation/api/schedule/resources/) property with all its internal options. +**Example:** To display default Scheduler with multiple resource options in the event editor, ignore the group option and simply define the `resources` property with all its internal options. {% if page.publishingplatform == "typescript" %} @@ -186,7 +141,7 @@ The appointments belonging to the different resources will be displayed altogeth {% previewsample "page.domainurl/code-snippet/schedule/multiple-resource-cs1" %} {% endif %} -> Setting [`allowMultiple`](https://ej2.syncfusion.com/documentation/api/schedule/resources/#allowmultiple) to `true` in the above code example allows you to select multiple resources from the event editor and also creates multiple copies of the same appointment in the Scheduler for each resources while rendering. +> Setting `allowMultiple` to `true` in the above code example allows you to select multiple resources from the event editor and also creates multiple copies of the same appointment in the Scheduler for each resources while rendering. ## Resource grouping @@ -258,7 +213,7 @@ The following code example depicts how to group the multiple resources on Timeli ### Grouping single-level resources -This kind of grouping allows the Scheduler to display all the resources at a single level simultaneously. The appointments mapped under resources will be displayed with the colors as per the [`colorField`](https://ej2.syncfusion.com/documentation/api/schedule/resources/#colorfield) defined on the resources collection. +This kind of grouping allows the Scheduler to display all the resources at a single level simultaneously. The appointments mapped under resources will be displayed with the colors as per the `colorField` defined on the resources collection. **Example:** To display the Scheduler with single level resource grouping, @@ -289,11 +244,11 @@ This kind of grouping allows the Scheduler to display all the resources at a sin {% previewsample "page.domainurl/code-snippet/schedule/single-level-resource-cs1" %} {% endif %} -> The [`name`](https://ej2.syncfusion.com/documentation/api/schedule/resources/#name) field defined in the **resources** collection namely `Owners` will be mapped within the [`group`](https://ej2.syncfusion.com/documentation/api/schedule/group/) property, in order to enable the grouping option with those resource levels on the Scheduler. +> The `name` field defined in the **resources** collection namely `Owners` will be mapped within the `group` property, in order to enable the grouping option with those resource levels on the Scheduler. ### Grouping multi-level resources -It is possible to group the resources of Scheduler in multiple levels, by mapping the child resources to each parent resource. In the following example, there are 2 levels of resources, on which the second level resources are defined with [`groupID`](https://ej2.syncfusion.com/documentation/api/schedule/resources/#groupidfield) mapping to the first level resource's ID so as to establish the parent-child relationship between them. +It is possible to group the resources of Scheduler in multiple levels, by mapping the child resources to each parent resource. In the following example, there are 2 levels of resources, on which the second level resources are defined with `groupID` mapping to the first level resource's ID so as to establish the parent-child relationship between them. **Example:** To display the Scheduler with multiple level resource grouping options, @@ -326,7 +281,7 @@ It is possible to group the resources of Scheduler in multiple levels, by mappin ### One-to-One grouping -In multi-level grouping, Scheduler usually groups the resources on the child level based on the `GroupID` that maps with the `Id` field of parent level resources (as [`byGroupID`](https://ej2.syncfusion.com/documentation/api/schedule/group/#bygroupid) set to true by default). There are also option which allows you to group all the child resource(s) against each of its parent resource(s). To enable this kind of grouping, set `false` to the [`byGroupID`](https://ej2.syncfusion.com/documentation/api/schedule/group/#bygroupid) option within the [`group`](https://ej2.syncfusion.com/documentation/api/schedule/group/) property. In the following code example, there are two levels of resources, on which all the 3 resources at the child level is mapped one to one with each resource on the first level. +In multi-level grouping, Scheduler usually groups the resources on the child level based on the `GroupID` that maps with the `Id` field of parent level resources (as `byGroupID` set to true by default). There are also option which allows you to group all the child resource(s) against each of its parent resource(s). To enable this kind of grouping, set `false` to the `byGroupID` option within the `group` property. In the following code example, there are two levels of resources, on which all the 3 resources at the child level is mapped one to one with each resource on the first level. {% if page.publishingplatform == "typescript" %} @@ -357,7 +312,7 @@ In multi-level grouping, Scheduler usually groups the resources on the child lev ### Grouping resources by date -It groups the number of resources under each date and is applicable only on the calendar views such as Day, Week, Work Week, Month, Agenda and Month-Agenda. To enable such grouping, set [`byDate`](https://ej2.syncfusion.com/documentation/api/schedule/group/#bydate) option to `true` within the [`group`](https://ej2.syncfusion.com/documentation/api/schedule/group/) property. +It groups the number of resources under each date and is applicable only on the calendar views such as Day, Week, Work Week, Month, Agenda and Month-Agenda. To enable such grouping, set `byDate` option to `true` within the `group` property. **Example:** To display the Scheduler with resources grouped by date, @@ -392,7 +347,7 @@ It groups the number of resources under each date and is applicable only on the ## Customizing parent resource cells -In timeline view work cells of parent resource can be customized by checking the [`elementType`](https://ej2.syncfusion.com/documentation/api/schedule/renderCellEventArgs/#elementtype) as `resourceGroupCells` in the event [`renderCell`](https://ej2.syncfusion.com/documentation/api/schedule/#rendercell). In the following code example, background color of the work hours has been changed. +In timeline view work cells of parent resource can be customized by checking the `elementType` as `resourceGroupCells` in the event `renderCell`. In the following code example, background color of the work hours has been changed. {% if page.publishingplatform == "typescript" %} @@ -423,7 +378,7 @@ In timeline view work cells of parent resource can be customized by checking the ## Working with shared events -Multiple resources can share the same events, thus allowing the CRUD action made on it to reflect on all other shared instances simultaneously. To enable such option, set [`allowGroupEdit`](https://ej2.syncfusion.com/documentation/api/schedule/group/#allowgroupedit) option to `true` within the [`group`](https://ej2.syncfusion.com/documentation/api/schedule/group/) property. With this property enabled, a single appointment object will be maintained within the appointment collection, even if it is shared by more than one resource – whereas the resource fields of such appointment object will be in array which hold the IDs of the multiple resources. +Multiple resources can share the same events, thus allowing the CRUD action made on it to reflect on all other shared instances simultaneously. To enable such option, set `allowGroupEdit` option to `true` within the `group` property. With this property enabled, a single appointment object will be maintained within the appointment collection, even if it is shared by more than one resource – whereas the resource fields of such appointment object will be in array which hold the IDs of the multiple resources. > Any actions such as create, edit or delete held on any one of the shared event instances, will be reflected on all other related instances visible on the UI. @@ -460,7 +415,7 @@ Multiple resources can share the same events, thus allowing the CRUD action made It is possible to customize the resource header cells using built-in template option and change the look and appearance of it in both the vertical and timeline view modes. All the resource related fields and other information can be accessed within the resource header template option. -**Example:** To customize the resource header and display it along with the designation [`resource field`](https://ej2.syncfusion.com/documentation/api/schedule/resources/), refer the below code example. +**Example:** To customize the resource header and display it along with designation field, refer the below code example. {% if page.publishingplatform == "typescript" %} @@ -524,9 +479,9 @@ It is possible to customize the resource headers to display with multiple column {% previewsample "page.domainurl/code-snippet/schedule/resource-header-column-customization-cs1" %} {% endif %} -## Collapse/Expand child resources in timeline views +## Hide child resources in timeline views -It is possible to expand and collapse the resources which have child resource in timeline views dynamically. By default, resources are in expanded state with their child resource. We can collapse and expand the child resources in UI by setting [`expandedField`](https://ej2.syncfusion.com/documentation/api/schedule/resources/#expandedfield) option as `false` whereas its default value is `true`. +It is possible to expand and collapse the resources which have child resource in timeline views dynamically. By default, resources are in expanded state with their child resource. We can collapse and hide the child resources in UI by setting `expandedField` option as `false` whereas its default value is `true`. {% if page.publishingplatform == "typescript" %} @@ -557,7 +512,7 @@ It is possible to expand and collapse the resources which have child resource in ## Displaying tooltip for resource headers -It is possible to display tooltips over the resource headers showing the resource information. By default, there won't be any tooltips displayed on the resource headers, and to enable it, you need to assign the customized template design to the [`headerTooltipTemplate`](https://ej2.syncfusion.com/documentation/api/schedule/group/#headertooltiptemplate) option within the[ `group`](https://ej2.syncfusion.com/documentation/api/schedule/group/) property. +It is possible to display tooltips over the resource headers showing the resource information. By default, there won't be any tooltips displayed on the resource headers, and to enable it, you need to assign the customized template design to the `headerTooltipTemplate` option within the `group` property. {% if page.publishingplatform == "typescript" %} @@ -588,7 +543,7 @@ It is possible to display tooltips over the resource headers showing the resourc ## Choosing among resource colors for appointments -By default, the colors defined on the top level resources collection will be applied for the events. In case, if you want to apply specific resource color to events irrespective of its top-level parent resource color, it can be achieved by defining [`resourceColorField`](https://ej2.syncfusion.com/documentation/api/schedule/eventSettings/#resourcecolorfield) option within the [`eventSettings`](https://ej2.syncfusion.com/documentation/api/schedule/eventSettings/) property. +By default, the colors defined on the top level resources collection will be applied for the events. In case, if you want to apply specific resource color to events irrespective of its top-level parent resource color, it can be achieved by defining `resourceColorField` option within the `eventSettings` property. In the following example, the colors mentioned in the second level will get applied over the events. @@ -619,11 +574,11 @@ In the following example, the colors mentioned in the second level will get appl {% previewsample "page.domainurl/code-snippet/schedule/resource-color-cs1" %} {% endif %} -> The value of the [`resourceColorField`](https://ej2.syncfusion.com/documentation/api/schedule/eventSettings/#resourcecolorfield) field should be mapped with the [`name`](https://ej2.syncfusion.com/documentation/api/schedule/resources/#name) value given within the [`resources`](https://ej2.syncfusion.com/documentation/api/schedule/resources/) property. +> The value of the `resourceColorField` field should be mapped with the `name` value given within the `resources` property. ## Setting different style to each resource appointments -By default, the appearance of events is the same for all resource events. In case, if you want to apply the different styles to each resource event, you can do this by defining the [`cssClassField`](https://ej2.syncfusion.com/documentation/api/schedule/resources/#cssclassfield) option within the [`resource`](https://ej2.syncfusion.com/documentation/api/schedule/resources/) property that maps the different cssClass fields from the resource dataSource as depicted in the following example. +By default, the appearance of events is the same for all resource events. In case, if you want to apply the different styles to each resource event, you can do this by defining the `cssClassField` option within the `resource` property that maps the different cssClass fields from the resource dataSource as depicted in the following example. {% if page.publishingplatform == "typescript" %} @@ -654,9 +609,9 @@ By default, the appearance of events is the same for all resource events. In cas ## Dynamically add and remove resources -It is possible to add or remove the resources dynamically to and from the Scheduler respectively. In the following example, when the checkboxes are checked and unchecked, the respective resources gets added up or removed from the Scheduler layout. To add new resource dynamically, [`addResource`](https://ej2.syncfusion.com/documentation/api/schedule/#addresource) method is used which accepts the arguments such as resource object, resource name (within which level, the resource object to be added) and index (position where the resource needs to be added). +It is possible to add or remove the resources dynamically to and from the Scheduler respectively. In the following example, when the checkboxes are checked and unchecked, the respective resources gets added up or removed from the Scheduler layout. To add new resource dynamically, `addResource` method is used which accepts the arguments such as resource object, resource name (within which level, the resource object to be added) and index (position where the resource needs to be added). -To remove the resources dynamically, [`removeResource`](https://ej2.syncfusion.com/documentation/api/schedule/#removeresource) method is used which accepts the index (position from where the resource to be removed) and resource name (within which level, the resource object presents) as parameters. +To remove the resources dynamically, `removeResource` method is used which accepts the index (position from where the resource to be removed) and resource name (within which level, the resource object presents) as parameters. {% if page.publishingplatform == "typescript" %} @@ -687,14 +642,11 @@ To remove the resources dynamically, [`removeResource`](https://ej2.syncfusion.c ## Setting different working days and hours for resources -Each resource in the Scheduler can have different `working hours` as well as different `working days` set to it. There are default options available within the [`resources`](https://ej2.syncfusion.com/documentation/api/schedule/resources/) collection, to customize the default working hours and days of the Scheduler. - -* [Using the work day field for different work days](#Set-different-work-days) -* [Using the start hour and end hour fields for different work hours](#Set-different-work-hours) +Each resource in the Scheduler can have different working hours as well as different working days set to it. There are default options available within the `resources` collection, to customize the default working hours and days of the Scheduler. ### Set different work days -Different working days can be set for the resources of Scheduler using the [`workDaysField`](https://ej2.syncfusion.com/documentation/api/schedule/resources/#workdaysfield) property which maps the working days field from the resource dataSource. This field accepts the collection of day indexes (from 0 to 6) of a week. By default, it is set to [1, 2, 3, 4, 5] and in the following example, each resource has been set with different values and therefore each of them will render only those working days. This option is applicable only on the calendar views and is not applicable on timeline views. +Different working days can be set for the resources of Scheduler using the `workDaysField` property which maps the working days field from the resource dataSource. This field accepts the collection of day indexes (from 0 to 6) of a week. By default, it is set to [1, 2, 3, 4, 5] and in the following example, each resource has been set with different values and therefore each of them will render only those working days. This option is applicable only on the calendar views and is not applicable on timeline views. {% if page.publishingplatform == "typescript" %} @@ -725,13 +677,11 @@ Different working days can be set for the resources of Scheduler using the [`wor ### Set different work hours -Different `working Hours` can be set for the resources of Scheduler using the [`startHourField`](https://ej2.syncfusion.com/documentation/api/schedule/resources/#starthourfield) and [`endHourField`](https://ej2.syncfusion.com/documentation/api/schedule/resources/#endhourfield) property which maps the `startHourField` and `endHourField` field from the resource dataSource. - -* [`startHourField`](https://ej2.syncfusion.com/documentation/api/schedule/resources/#starthourfield) - Denotes the start time of the working/business hour in a day. -* [`endHourField`](https://ej2.syncfusion.com/documentation/api/schedule/resources/#endhourfield) - Denotes the end time limit of the working/business hour in a day. - Working hours indicates the work hour duration of a day, which is highlighted visually with active color over the work cells. Each resource on the Scheduler can be defined with its own set of working hours as depicted in the following example. +* `startHourField` - Denotes the start time of the working/business hour in a day. +* `endHourField` - Denotes the end time limit of the working/business hour in a day. + {% if page.publishingplatform == "typescript" %} {% tabs %} @@ -800,7 +750,7 @@ To use the [`hideNonWorkingDays`](../api/schedule/group/#hidenonworkingdays) pro ## Scroll to specific resource -You can manually scroll to a specific resource on Scheduler by making use of the [`scrollToResource`](https://ej2.syncfusion.com/documentation/api/schedule/#scrolltoresource) method as depicted in the following code example. +You can manually scroll to a specific resource on Scheduler by making use of the `scrollToResource` method as depicted in the following code example. {% if page.publishingplatform == "typescript" %} @@ -831,7 +781,7 @@ You can manually scroll to a specific resource on Scheduler by making use of the ## Compact view in mobile -Although the Scheduler views are designed keeping in mind the responsiveness of the control in mobile devices, however when using Scheduler with multiple resources - it is difficult to view all the resources and its relevant events at once on the mobile. Therefore, we have introduced a new compact mode specially for displaying multiple resources of Scheduler on mobile devices. By default, this mode is enabled while using Scheduler with multiple resources on mobile devices. If in case, you need to disable this compact mode, set `false` to the [`enableCompactView`](https://ej2.syncfusion.com/documentation/api/schedule/group/#enablecompactview) option within the [`group`](https://ej2.syncfusion.com/documentation/api/schedule/group/) property. Disabling this option will display the exact desktop mode of Scheduler view on mobile devices. +Although the Scheduler views are designed keeping in mind the responsiveness of the control in mobile devices, however when using Scheduler with multiple resources - it is difficult to view all the resources and its relevant events at once on the mobile. Therefore, we have introduced a new compact mode specially for displaying multiple resources of Scheduler on mobile devices. By default, this mode is enabled while using Scheduler with multiple resources on mobile devices. If in case, you need to disable this compact mode, set `false` to the `enableCompactView` option within the `group` property. Disabling this option will display the exact desktop mode of Scheduler view on mobile devices. With this compact view enabled on mobile, you can view only single resource at a time and to switch to other resources, there is a treeview at the left listing out all other available resources - clicking on which will display that particular resource and its related appointments. @@ -843,7 +793,7 @@ Clicking on the menu icon before the resource text will show the resources avail ## Adaptive UI in desktop -By default, the Scheduler layout adapts automatically in the desktop and mobile devices with appropriate UI changes. In case, if the user wants to display the Adaptive scheduler in desktop mode with adaptive enhancements, then the property [`enableAdaptiveUI`](https://ej2.syncfusion.com/documentation/api/schedule/#enableadaptiveui) can be set to true. Enabling this option will display the exact mobile mode of Scheduler view on desktop devices. +By default, the Scheduler layout adapts automatically in the desktop and mobile devices with appropriate UI changes. In case, if the user wants to display the Adaptive scheduler in desktop mode with adaptive enhancements, then the property `enableAdaptiveUI` can be set to true. Enabling this option will display the exact mobile mode of Scheduler view on desktop devices. Some of the default changes made for compact Scheduler to render in desktop devices are as follows, * View options displayed in the Navigation drawer. @@ -878,4 +828,4 @@ Some of the default changes made for compact Scheduler to render in desktop devi {% previewsample "page.domainurl/code-snippet/schedule/resource-grouping-cs6" %} {% endif %} -> You can refer to our [JavaScript Scheduler](https://www.syncfusion.com/javascript-ui-controls/js-scheduler) feature tour page for its groundbreaking feature representations. You can also explore our [JavaScript Scheduler example](https://ej2.syncfusion.com/demos/#/bootstrap5/schedule/overview.html) to knows how to present and manipulate data. +> You can refer to our [JavaScript Scheduler](https://www.syncfusion.com/javascript-ui-controls/js-scheduler) feature tour page for its groundbreaking feature representations. You can also explore our [JavaScript Scheduler example](https://ej2.syncfusion.com/demos/#/material/schedule/overview.html) to knows how to present and manipulate data. diff --git a/ej2-javascript/schedule/row-auto-height.md b/ej2-javascript/schedule/row-auto-height.md index 97858e3f6..78d5b2f93 100644 --- a/ej2-javascript/schedule/row-auto-height.md +++ b/ej2-javascript/schedule/row-auto-height.md @@ -13,7 +13,7 @@ domainurl: ##DomainURL## By default, the height of the Scheduler rows in Timeline views are static and therefore, when the same time range holds multiple overlapping appointments, a `+n more` text indicator will be displayed. With this feature enabled, you can now view all the overlapping appointments present in those specific time range by auto-adjusting the row height based on the presence of the appointments count, instead of displaying the `+n more` text indicators. -To enable auto row height adjustments on Scheduler Timeline views and Month view, set `true` to the [`rowAutoHeight`](https://ej2.syncfusion.com/documentation/api/schedule#rowautoheight) property whose default value is `false`. +To enable auto row height adjustments on Scheduler Timeline views and Month view, set `true` to the `rowAutoHeight` property whose default value is `false`. > This auto row height adjustment is applicable only on all the Timeline views as well as on the calendar Month view. @@ -21,7 +21,7 @@ Now, let's see how it works on those applicable views with examples. ## Calendar month view -By default, the rows of the calendar Month view can hold only the limited appointments count based on its row height, and the rest of the overlapping appointments are indicated with a `+n more` text indicator. The following example shows how the month view row auto-adjusts based on the number of appointments count, when this [`rowAutoHeight`](https://ej2.syncfusion.com/documentation/api/schedule#rowautoheight) feature is enabled. +By default, the rows of the calendar Month view can hold only the limited appointments count based on its row height, and the rest of the overlapping appointments are indicated with a `+n more` text indicator. The following example shows how the month view row auto-adjusts based on the number of appointments count, when this `rowAutoHeight` feature is enabled. {% if page.publishingplatform == "typescript" %} @@ -52,7 +52,7 @@ By default, the rows of the calendar Month view can hold only the limited appoin ## Timeline views -When the feature [`rowAutoHeight`](https://ej2.syncfusion.com/documentation/api/schedule#rowautoheight) is enabled in Timeline views, the row height gets auto-adjusted based on the number of overlapping events occupied on the same time range, which is demonstrated in the following example. +When the feature `rowAutoHeight` is enabled in Timeline views, the row height gets auto-adjusted based on the number of overlapping events occupied on the same time range, which is demonstrated in the following example. {% if page.publishingplatform == "typescript" %} @@ -114,7 +114,7 @@ The following example shows how the auto row adjustment feature works on timelin ## Appointments occupying entire cell -By default, with the feature [`rowAutoHeight`](https://ej2.syncfusion.com/documentation/api/schedule#rowautoheight), there will be a space in the bottom of the cell when appointment is rendered. To avoid this space, we can set true to the property [`ignoreWhitespace`](https://ej2.syncfusion.com/documentation/api/schedule/eventSettings/#ignorewhitespace) with in [`eventSettings`](https://ej2.syncfusion.com/documentation/api/schedule/eventSettings/) whereas its default property value is false. In the following code example, the whitespace below the appointments has been ignored. +By default, with the feature `rowAutoHeight`, there will be a space in the bottom of the cell when appointment is rendered. To avoid this space, we can set true to the property `ignoreWhitespace` with in `eventSettings` whereas its default property value is false. In the following code example, the whitespace below the appointments has been ignored. {% if page.publishingplatform == "typescript" %} @@ -143,6 +143,6 @@ By default, with the feature [`rowAutoHeight`](https://ej2.syncfusion.com/docume {% previewsample "page.domainurl/code-snippet/schedule/ignore-whitespace-cs1" %} {% endif %} -**Note**: The property [`ignoreWhitespace`](https://ej2.syncfusion.com/documentation/api/schedule/eventSettings/#ignorewhitespace) will be applicable only when [`rowAutoHeight`](https://ej2.syncfusion.com/documentation/api/schedule#rowautoheight) feature is enabled in the Scheduler. +**Note**: The property `ignoreWhitespace` will be applicable only when `rowAutoHeight` feature is enabled in the Scheduler. > You can refer to our [JavaScript Scheduler](https://www.syncfusion.com/javascript-ui-controls/js-scheduler) feature tour page for its groundbreaking feature representations. You can also explore our [JavaScript Scheduler example](https://ej2.syncfusion.com/demos/#/material/schedule/overview.html) to knows how to present and manipulate data. diff --git a/ej2-javascript/schedule/scheduler-interactions.md b/ej2-javascript/schedule/scheduler-interactions.md index 7ef3294b2..740873716 100644 --- a/ej2-javascript/schedule/scheduler-interactions.md +++ b/ej2-javascript/schedule/scheduler-interactions.md @@ -11,7 +11,7 @@ domainurl: ##DomainURL## # Scheduler interactions in ##Platform_Name## Schedule control -The following table describes the Scheduler actions and also illustrates how those actions are carried out through mouse and touch interactions on Scheduler. +The following table describes the Scheduler actions and illustrates how these actions are carried out through mouse and touch interactions on the Scheduler. | Actions | Mouse interaction | Touch interaction | |-------|---------| --------------- | diff --git a/ej2-javascript/schedule/scheduler-styling.md b/ej2-javascript/schedule/scheduler-styling.md index 45f5b90a0..190421c86 100644 --- a/ej2-javascript/schedule/scheduler-styling.md +++ b/ej2-javascript/schedule/scheduler-styling.md @@ -1,7 +1,7 @@ --- layout: post -title: Scheduler styling in ##Platform_Name## Schedule Control | Syncfusion -description: Learn here all about scheduler styling in Syncfusion ##Platform_Name## Schedule control, its elements and more. +title: Scheduler styling in ##Platform_Name## Schedule control | Syncfusion +description: Learn here all about Scheduler styling in Syncfusion ##Platform_Name## Schedule control of Syncfusion Essential JS 2 and more. platform: ej2-javascript control: Scheduler styling publishingplatform: ##Platform_Name## @@ -9,11 +9,11 @@ documentation: ug domainurl: ##DomainURL## --- -# Scheduler styling in ##Platform_Name## Schedule Control +# Scheduler styling in ##Platform_Name## Schedule control To modify the Scheduler appearance, you need to override the default CSS of Scheduler. Also, you have an option to create your own custom theme using our [`Theme Studio`](https://ej2.syncfusion.com/themestudio/?theme=material). Please find the list of CSS classes in Scheduler. -| CSS class | Purpose | +| Css class | Purpose | |-------|---------| | .e-schedule .e-vertical-view .e-work-cells | Work cells in vertical views of scheduler | | .e-schedule .e-month-view .e-work-cells | Work cells in month view of scheduler | diff --git a/ej2-javascript/schedule/state-persistence.md b/ej2-javascript/schedule/state-persistence.md index 12572df32..3318f8d8f 100644 --- a/ej2-javascript/schedule/state-persistence.md +++ b/ej2-javascript/schedule/state-persistence.md @@ -11,7 +11,7 @@ domainurl: ##DomainURL## # State persistence in ##Platform_Name## Schedule control -State persistence allowed Scheduler to retain the [`currentView`](../api/schedule/currentview), [`selectedDate`](../api/schedule/selecteddate) and Scroll position values in the [`localStorage`](https://www.w3schools.com/html/html5_webstorage.asp#) for state maintenance even if the browser is refreshed or if you move to the next page within the browser. This action is handled through the [`enablePersistence`](../api/schedule/enablepersistence) property which is set to false by default. When it is set to true, [`currentView`](../api/schedule/currentview), [`selectedDate`](../api/schedule/selecteddate) and Scroll position values of the scheduler component will be retained even after refreshing the page. +State persistence allowed Scheduler to retain the [`currentView`](../api/schedule/currentview), [`selectedDate`](../api/schedule/selecteddate) and Scroll position values in the [`localStorage`](https://www.w3schools.com/html/html5_webstorage.asp#) for state maintenance even if the browser is refreshed or if you move to the next page within the browser. This action is handled through the [`enablePersistence`](../api/schedule/enablepersistence) property which is set to false by default. When it is set to true, `currentView`, `selectedDate` and Scroll position values of the scheduler component will be retained even after refreshing the page. > **Note**: Scheduler `id` is essential to set state persistence. diff --git a/ej2-javascript/schedule/timescale.md b/ej2-javascript/schedule/timescale.md index 624b1fbda..8cde38d58 100644 --- a/ej2-javascript/schedule/timescale.md +++ b/ej2-javascript/schedule/timescale.md @@ -11,17 +11,15 @@ domainurl: ##DomainURL## # Timescale in ##Platform_Name## Schedule control -The time slots are usually the time cells that are displayed on the Day, Week and Work Week views of both the calendar (to the left most position) and timeline views (at the top position). The [`timeScale`](https://ej2.syncfusion.com/documentation/api/schedule#timescale) property allows you to control and set the required time slot duration for the work cells displayed on Scheduler. It includes the following sub-options such as, +The time slots are usually the time cells that are displayed on the Day, Week and Work Week views of both the calendar (to the left most position) and timeline views (at the top position). The `timeScale` property allows you to control and set the required time slot duration for the work cells displayed on Scheduler. It includes the following sub-options such as, -* [`enable`](https://ej2.syncfusion.com/documentation/api/schedule/timeScale/#enable) - When set to `true`, allows the Scheduler to display the appointments accurately against the exact time duration. If set to `false`, all the appointments of a day will be displayed one below the other with no grid lines displayed. Its default value is `true`. -* [`interval`](https://ej2.syncfusion.com/documentation/api/schedule/timeScale/#interval) – Defines the time duration on which the time axis to be displayed either in 1 hour or 30 minutes interval and so on. It accepts the values in minutes and defaults to 60. -* [`slotCount`](https://ej2.syncfusion.com/documentation/api/schedule/timeScale/#slotcount) – Decides the number of slot count to be split for the specified time interval duration. It defaults to 2, thus displaying two slots to represent an hour(each slot depicting 30 minutes duration). - ->Note: The upper limit for rendering slots within a single day, utilizing the **interval** and **slotCount** properties of the **timeScale**, stands at 1000. This constraint aligns with the maximum **colspan** value permissible for the **table** element, also capped at 1000. This particular restriction is relevant exclusively to the `TimelineDay`, `TimelineWeek` and `TimelineWorkWeek` views. +* `enable` - When set to `true`, allows the Scheduler to display the appointments accurately against the exact time duration. If set to `false`, all the appointments of a day will be displayed one below the other with no grid lines displayed. Its default value is `true`. +* `interval` – Defines the time duration on which the time axis to be displayed either in 1 hour or 30 minutes interval and so on. It accepts the values in minutes and defaults to 60. +* `slotCount` – Decides the number of slot count to be split for the specified time interval duration. It defaults to 2, thus displaying two slots to represent an hour(each slot depicting 30 minutes duration). ## Setting different time slot duration -The [`interval`](https://ej2.syncfusion.com/documentation/api/schedule/timeScale/#interval) and [`slotCount`](https://ej2.syncfusion.com/documentation/api/schedule/timeScale/#slotcount) properties can be used together on the Scheduler to set different time slot duration which is depicted in the following code example. Here, six time slots together represents an hour. +The `interval` and `slotCount` properties can be used together on the Scheduler to set different time slot duration which is depicted in the following code example. Here, six time slots together represents an hour. {% if page.publishingplatform == "typescript" %} @@ -52,10 +50,10 @@ The [`interval`](https://ej2.syncfusion.com/documentation/api/schedule/timeScale ## Customizing time cells using template -The [`timeScale`](https://ej2.syncfusion.com/documentation/api/schedule#timescale) property also provides template option to allow customization of time slots which are as follows, +The `timeScale` property also provides template option to allow customization of time slots which are as follows, -* [`majorSlotTemplate`](https://ej2.syncfusion.com/documentation/api/schedule/timeScale/#majorslottemplate) - The template option to be applied for major time slots. Here, the template accepts either the string or HTMLElement as template design and then the parsed design is displayed onto the time cells. The time details can be accessed within this template. -* [`minorSlotTemplate`](https://ej2.syncfusion.com/documentation/api/schedule/timeScale/#minorslottemplate) - The template option to be applied for minor time slots. Here, the template accepts either the string or HTMLElement as template design and then the parsed design is displayed onto the time cells. The time details can be accessed within this template. +* `majorSlotTemplate` - The template option to be applied for major time slots. Here, the template accepts either the string or HTMLElement as template design and then the parsed design is displayed onto the time cells. The time details can be accessed within this template. +* `minorSlotTemplate` - The template option to be applied for minor time slots. Here, the template accepts either the string or HTMLElement as template design and then the parsed design is displayed onto the time cells. The time details can be accessed within this template. {% if page.publishingplatform == "typescript" %} @@ -86,7 +84,7 @@ The [`timeScale`](https://ej2.syncfusion.com/documentation/api/schedule#timescal ## Hide the timescale -The grid lines which indicates the exact time duration can be enabled or disabled on the Scheduler, by setting `true` or `false` to the [`enable`](https://ej2.syncfusion.com/documentation/api/schedule/timeScale/#enable) option within the [`timeScale`](https://ej2.syncfusion.com/documentation/api/schedule#timescale) property. It's default value is `true`. +The grid lines which indicates the exact time duration can be enabled or disabled on the Scheduler, by setting `true` or `false` to the `enable` option within the `timeScale` property. It's default value is `true`. {% if page.publishingplatform == "typescript" %} @@ -117,7 +115,7 @@ The grid lines which indicates the exact time duration can be enabled or disable ## Highlighting current date and time -By default, Scheduler indicates current date with a highlighted date header on all views, as well as marks accurately the system's current time on specific views such as Day, Week, Work Week, Timeline Day, Timeline Week and Timeline Work Week views. To stop highlighting the current time indicator on Scheduler views, set `false` to the [`showTimeIndicator`](https://ej2.syncfusion.com/documentation/api/schedule#showtimeindicator) property which defaults to `true`. +By default, Scheduler indicates current date with a highlighted date header on all views, as well as marks accurately the system's current time on specific views such as Day, Week, Work Week, Timeline Day, Timeline Week and Timeline Work Week views. To stop highlighting the current time indicator on Scheduler views, set `false` to the `showTimeIndicator` property which defaults to `true`. {% if page.publishingplatform == "typescript" %} diff --git a/ej2-javascript/schedule/timezone.md b/ej2-javascript/schedule/timezone.md index 52024106c..db4a7a171 100644 --- a/ej2-javascript/schedule/timezone.md +++ b/ej2-javascript/schedule/timezone.md @@ -11,7 +11,7 @@ domainurl: ##DomainURL## # Timezone in ##Platform_Name## Schedule control -The Scheduler makes use of the current system time zone by default. If it needs to follow some other user-specific time zone, then the [`timezone`](https://ej2.syncfusion.com/documentation/api/schedule#timezone) property needs to be used. Apart from the default action of applying specific timezone to the Scheduler, it is also possible to set different time zone values for each appointments through the properties `startTimezone` and `endTimezone` which can be defined as separate fields within the event fields collection. +The Scheduler makes use of the current system time zone by default. If it needs to follow some other user-specific time zone, then the `timezone` property needs to be used. Apart from the default action of applying specific timezone to the Scheduler, it is also possible to set different time zone values for each appointments through the properties `startTimezone` and `endTimezone` which can be defined as separate fields within the event fields collection. >Note: **timezone** property only applicable for the appointment processing and current time indication. @@ -54,7 +54,7 @@ The following code example displays an appointment from 9.00 AM to 10.00 AM when ## Scheduler set to specific timezone -When a time zone is set to Scheduler through [`timezone`](https://ej2.syncfusion.com/documentation/api/schedule#timezone) property, the appointments will be displayed exactly based on the Scheduler timezone regardless of its client timezone. In the following code example, appointments will be displayed based on Eastern Time (UTC -05:00). +When a time zone is set to Scheduler through `timezone` property, the appointments will be displayed exactly based on the Scheduler timezone regardless of its client timezone. In the following code example, appointments will be displayed based on Eastern Time (UTC -05:00). {% if page.publishingplatform == "typescript" %} @@ -85,7 +85,7 @@ When a time zone is set to Scheduler through [`timezone`](https://ej2.syncfusion ## Display events on same time everywhere with no time difference -Setting [`timezone`](https://ej2.syncfusion.com/documentation/api/schedule#timezone) to UTC for Scheduler will display the appointments on same time as in the database for all the users in different time zone. +Setting `timezone` to UTC for Scheduler will display the appointments on same time as in the database for all the users in different time zone. {% if page.publishingplatform == "typescript" %} diff --git a/ej2-javascript/schedule/ts/frequently-asked-questions.md b/ej2-javascript/schedule/ts/frequently-asked-questions.md index 1c51d028a..5fbb5bbb0 100644 --- a/ej2-javascript/schedule/ts/frequently-asked-questions.md +++ b/ej2-javascript/schedule/ts/frequently-asked-questions.md @@ -132,12 +132,12 @@ function onClick(args) { ```ts import { loadCldr, L10n } from '@syncfusion/ej2-base'; -import enNumberData from '@syncfusion/ej2-cldr-data/main/en-GB/numbers.json'; -import entimeZoneData from '@syncfusion/ej2-cldr-data/main/en-GB/timeZoneNames.json'; -import enGregorian from '@syncfusion/ej2-cldr-data/main/en-GB/ca-gregorian.json'; -import enNumberingSystem from '@syncfusion/ej2-cldr-data/supplemental/numberingSystems.json'; +import * as numberingSystems from './culture-files/numberingSystems.json'; +import * as gregorian from './culture-files/ca-gregorian.json'; +import * as numbers from './culture-files/numbers.json'; +import * as timeZoneNames from './culture-files/timeZoneNames.json'; -loadCldr(frNumberData, frtimeZoneData, frGregorian, frNumberingSystem); +loadCldr(numberingSystems, gregorian, numbers, timeZoneNames); L10n.load({ 'en-GB': { @@ -151,23 +151,3 @@ L10n.load({ }); ``` - -## Getting instance of the Scheduler component - -User can access the component instance from the component element through the variable where you are initializing the Schedule component(scheduleObj) or by using the ej2_instances property as shown below. - -```ts - -let scheduleObj: Schedule = new Schedule({ - . - . - cellClick: onClick, -}); - -scheduleObj.appendTo('#Schedule'); - -function onClick(args) { - let scheduleInstance = (document.querySelector('.e-schedule') as any).ej2_instances[0]; -} -``` - diff --git a/ej2-javascript/schedule/ts/getting-started.md b/ej2-javascript/schedule/ts/getting-started.md index fff71e277..9b2d5cac2 100644 --- a/ej2-javascript/schedule/ts/getting-started.md +++ b/ej2-javascript/schedule/ts/getting-started.md @@ -11,9 +11,7 @@ domainurl: ##DomainURL## # Getting started in ##Platform_Name## Schedule control -This section briefly explains how to create [**JavaScript Scheduler**](https://www.syncfusion.com/javascript-ui-controls/js-scheduler) component and configure its available functionalities in TypeScript, using Essential JS 2 [quickstart](https://github.com/SyncfusionExamples/ej2-quickstart-webpack-) seed repository. - -> This application is integrated with the `webpack.config.js` configuration and uses the latest version of the [webpack-cli](https://webpack.js.org/api/cli/#commands). It requires node `v14.15.0` or higher. For more information about webpack and its features, refer to the [webpack documentation](https://webpack.js.org/guides/getting-started/). +This section briefly explains how to create [**JavaScript Scheduler**](https://www.syncfusion.com/javascript-ui-controls/js-scheduler) component and configure its available functionalities in TypeScript, using Essential JS 2 [quickstart](https://github.com/syncfusion/ej2-quickstart.git) seed repository. ## Dependencies @@ -33,57 +31,79 @@ The following list of dependencies are required to use the Schedule component in |-- @syncfusion/ej2-navigations ``` -## Set up development environment - -Open the command prompt from the required directory, and run the following command to clone the Syncfusion JavaScript (Essential JS 2) quickstart project from [GitHub](https://github.com/SyncfusionExamples/ej2-quickstart-webpack-). - -{% tabs %} -{% highlight bash tabtitle="CMD" %} +## Installation and configuration -git clone https://github.com/SyncfusionExamples/ej2-quickstart-webpack- ej2-quickstart - -{% endhighlight %} -{% endtabs %} +Clone the Essential JS2 quickstart application project from [GitHub](https://github.com/syncfusion/ej2-quickstart.git) using the command prompt, and +install the necessary npm packages using the following command line scripts. -After cloning the application in the `ej2-quickstart` folder, run the following command line to navigate to the `ej2-quickstart` folder. - -{% tabs %} -{% highlight bash tabtitle="CMD" %} - -cd ej2-quickstart - -{% endhighlight %} -{% endtabs %} - -## Add Syncfusion JavaScript packages +``` +git clone https://github.com/syncfusion/ej2-quickstart.git quickstart +cd quickstart +npm install +``` -Syncfusion JavaScript (Essential JS 2) packages are available on the [npmjs.com](https://www.npmjs.com/~syncfusionorg) public registry. You can install all Syncfusion JavaScript (Essential JS 2) controls in a single [@syncfusion/ej2](https://www.npmjs.com/package/@syncfusion/ej2) package or individual packages for each control. +>By default, the project is pre-configured with all the EJ2 dependencies. +For better understanding, remove all the dependencies from `src/system.config.js` +to get started with the Scheduler component. -The quickstart application is preconfigured with the dependent [@syncfusion/ej2](https://www.npmjs.com/package/@syncfusion/ej2) package in the `~/package.json` file. Use the following command to install the dependent npm packages from the command prompt. +Map the Scheduler component's dependency packages in `system.config.js` configuration file. -{% tabs %} -{% highlight bash tabtitle="NPM" %} +`[src/system.config.js]` -npm install +```javascript +System.config({ + paths: { + 'syncfusion:': './node_modules/@syncfusion/', + }, + map: { + app: 'app', + + //Syncfusion packages mapping + "@syncfusion/ej2-base": "syncfusion:ej2-base/dist/ej2-base.umd.min.js", + "@syncfusion/ej2-data": "syncfusion:ej2-data/dist/ej2-data.umd.min.js", + "@syncfusion/ej2-inputs": "syncfusion:ej2-inputs/dist/ej2-inputs.umd.min.js", + "@syncfusion/ej2-buttons": "syncfusion:ej2-buttons/dist/ej2-buttons.umd.min.js", + "@syncfusion/ej2-dropdowns": "syncfusion:ej2-dropdowns/dist/ej2-dropdowns.umd.min.js", + "@syncfusion/ej2-compression": "syncfusion:ej2-compression/dist/ej2-compression.umd.min.js", + "@syncfusion/ej2-file-utils": "syncfusion:ej2-file-utils/dist/ej2-file-utils.umd.min.js", + "@syncfusion/ej2-splitbuttons": "syncfusion:ej2-splitbuttons/dist/ej2-splitbuttons.umd.min.js", + "@syncfusion/ej2-lists": "syncfusion:ej2-lists/dist/ej2-lists.umd.min.js", + "@syncfusion/ej2-navigations": "syncfusion:ej2-navigations/dist/ej2-navigations.umd.min.js", + "@syncfusion/ej2-popups": "syncfusion:ej2-popups/dist/ej2-popups.umd.min.js", + "@syncfusion/ej2-calendars": "syncfusion:ej2-calendars/dist/ej2-calendars.umd.min.js", + "@syncfusion/ej2-excel-export": "syncfusion:ej2-excel-export/dist/ej2-excel-export.umd.min.js", + "@syncfusion/ej2-schedule": "syncfusion:ej2-schedule/dist/ej2-schedule.umd.min.js" + }, + packages: { + 'app': { main: 'app', defaultExtension: 'js' } + } +}); -{% endhighlight %} -{% endtabs %} +System.import('app'); +``` -## Import the Syncfusion CSS styles +Scheduler CSS files are available in the ej2-schedule and its sub-component package folder. This can be referenced in your application using the following code. -Syncfusion JavaScript controls come with [built-in themes](https://ej2.syncfusion.com/documentation/appearance/theme/), which are available in the installed packages. It's easy to adapt the Syncfusion JavaScript controls to match the style of your application by referring to one of the built-in themes. +`[src/styles/styles.css]`. -The quickstart application is preconfigured to use the `Material` theme in the `~/src/styles/styles.css` file, as shown below: +``` +@import '../../node_modules/@syncfusion/ej2-base/styles/material.css'; +@import '../../node_modules/@syncfusion/ej2-buttons/styles/material.css'; +@import '../../node_modules/@syncfusion/ej2-calendars/styles/material.css'; +@import '../../node_modules/@syncfusion/ej2-dropdowns/styles/material.css'; +@import '../../node_modules/@syncfusion/ej2-inputs/styles/material.css'; +@import '../../node_modules/@syncfusion/ej2-splitbuttons/styles/material.css'; +@import '../../node_modules/@syncfusion/ej2-lists/styles/material.css'; +@import '../../node_modules/@syncfusion/ej2-navigations/styles/material.css'; +@import '../../node_modules/@syncfusion/ej2-popups/styles/material.css'; +@import '../../node_modules/@syncfusion/ej2-schedule/styles/material.css'; +``` -{% tabs %} -{% highlight css tabtitle="style.css" %} +In case, if you want to make use of the combined CSS files of entire components, then you can avail it from the root folder of Essential JS 2 package and reference it with the code shown below. +``` @import '../../node_modules/@syncfusion/ej2/material.css'; - -{% endhighlight %} -{% endtabs %} - -> You can check out the [themes](https://ej2.syncfusion.com/documentation/appearance/theme/) section to know more about built-in themes and CSS reference for individual controls. +``` ## Module injection @@ -97,15 +117,11 @@ Each view types available in Scheduler are maintained as individual modules and All the above-mentioned modules can be injected into Scheduler using the `Schedule.Inject` method within the app.ts file. -{% tabs %} -{% highlight ts tabtitle="app.ts" %} - +```ts import { Schedule, Day, Week, WorkWeek, Month, Agenda } from '@syncfusion/ej2-schedule'; Schedule.Inject(Day, Week, WorkWeek, Month, Agenda); - -{% endhighlight %} -{% endtabs %} +``` ## Initialize the Schedule @@ -113,9 +129,7 @@ Add the HTML div tag defined with an `id` attribute in your `index.html` file, w `[src/index.html]` -{% tabs %} -{% highlight html tabtitle="index.html" %} - +```html @@ -126,41 +140,39 @@ Add the HTML div tag defined with an `id` attribute in your `index.html` file, w + + + + + + +
          - -{% endhighlight %} -{% endtabs %} +``` Import the Scheduler component to your `app.ts` file as shown below, and initialize it to the element defined with an id `Schedule` in the `index.html` file. `[src/app/app.ts]` -{% tabs %} -{% highlight ts tabtitle="app.ts" %} - +```ts import { Schedule, Day, Week, WorkWeek, Month, Agenda } from '@syncfusion/ej2-schedule'; Schedule.Inject(Day, Week, WorkWeek, Month, Agenda); + let scheduleObj: Schedule = new Schedule(); scheduleObj.appendTo('#Schedule'); - -{% endhighlight %} -{% endtabs %} +``` Now, run the application in the browser using the following command. -{% tabs %} -{% highlight bash tabtitle="NPM" %} - +``` npm start - -{% endhighlight %} -{% endtabs %} +``` The output will display the empty Scheduler. @@ -168,9 +180,7 @@ The output will display the empty Scheduler. To populate the empty Scheduler with appointments, define either the local JSON data or remote data through the `dataSource` property available within the `eventSettings` option. To define any appointments, start and end time fields are mandatory. In the following example, you can see the appointment defined with default fields such as Id, Subject, StartTime and EndTime. -{% tabs %} -{% highlight ts tabtitle="app.ts" %} - +```ts import { Schedule, Day, Week, WorkWeek, Month, Agenda } from '@syncfusion/ej2-schedule'; Schedule.Inject(Day, Week, WorkWeek, Month, Agenda); @@ -183,19 +193,15 @@ let scheduleObj: Schedule = new Schedule({ subject: 'Meeting', startTime: new Date(2018, 1, 15, 10, 0), endTime: new Date(2018, 1, 15, 12, 30) - }] + }]; } }); scheduleObj.appendTo('#Schedule'); - -{% endhighlight %} -{% endtabs %} +``` You can also provide different names to these default fields, for which the custom names of those fields must be mapped appropriately within `fields` property as shown below. -{% tabs %} -{% highlight ts tabtitle="app.ts" %} - +```ts import { Schedule, Day, Week, WorkWeek, Month, Agenda } from '@syncfusion/ej2-schedule'; let data: object [] = [{ @@ -221,9 +227,7 @@ let scheduleObj: Schedule = new Schedule({ } }); scheduleObj.appendTo('#Schedule'); - -{% endhighlight %} -{% endtabs %} +``` The other fields available in Scheduler can be referred from [here](./appointments#event-fields). @@ -231,9 +235,7 @@ The other fields available in Scheduler can be referred from [here](./appointmen Scheduler usually displays the system date as its current date. To change the current date of Scheduler with specific date, define the `selectedDate` property. -{% tabs %} -{% highlight ts tabtitle="app.ts" %} - +```ts import { Schedule, Day, Week, WorkWeek, Month, Agenda } from '@syncfusion/ej2-schedule'; Schedule.Inject(Day, Week, WorkWeek, Month, Agenda); @@ -242,9 +244,7 @@ let scheduleObj: Schedule = new Schedule({ selectedDate: new Date(2018, 1, 15) }); scheduleObj.appendTo('#Schedule'); - -{% endhighlight %} -{% endtabs %} +``` ## Setting view @@ -263,9 +263,7 @@ Scheduler displays `Week` view by default. To change the current view, define th * TimelineMonth * TimelineYear -{% tabs %} -{% highlight ts tabtitle="app.ts" %} - +```ts import { Schedule, Day, Week, WorkWeek, Month, Agenda } from '@syncfusion/ej2-schedule'; Schedule.Inject(Day, Week, WorkWeek, Month, Agenda); @@ -275,25 +273,13 @@ let scheduleObj: Schedule = new Schedule({ currentView: 'Month' }); scheduleObj.appendTo('#Schedule'); - -{% endhighlight %} -{% endtabs %} +``` ## Individual view customization Each individual Scheduler views can be customized with its own options such as setting different start and end hour on Week and Work Week views, whereas hiding the weekend days on Month view alone. This can be achieved by defining views property to accept the array of object type, where each object depicts the individual view customization. -Now, run the application in the browser using the following command. - -{% tabs %} -{% highlight bash tabtitle="NPM" %} - -npm start - -{% endhighlight %} -{% endtabs %} - The output will display the Scheduler with the specified view configuration. {% tabs %} @@ -303,6 +289,9 @@ The output will display the Scheduler with the specified view configuration. {% highlight html tabtitle="index.html" %} {% include code-snippet/schedule/views-model-cs2/index.html %} {% endhighlight %} +{% highlight html tabtitle="datasource.ts" %} +{% include code-snippet/schedule/views-model-cs2/datasource.ts %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/schedule/views-model-cs2" %} diff --git a/ej2-javascript/schedule/ts/module-injection.md b/ej2-javascript/schedule/ts/module-injection.md index 13674ed22..44e0b34f5 100644 --- a/ej2-javascript/schedule/ts/module-injection.md +++ b/ej2-javascript/schedule/ts/module-injection.md @@ -11,7 +11,7 @@ domainurl: ##DomainURL## # Module injection in ##Platform_Name## Schedule control -The crucial step on creating a Scheduler with required views, is to import and inject the required modules. The modules that are available on Scheduler to work with its related functionalities are as follows. +The crucial step in creating a Scheduler with required views is to import and inject the required modules. The modules that are available on Scheduler to work with its related functionalities are as follows. * `Day` - Inject this module to work with day view. * `Week` - Inject this module to work with week view. @@ -39,6 +39,6 @@ The required modules should be injected into the Scheduler using the `Inject` me Schedule.Inject(Day, Week, WorkWeek, Month, Agenda, MonthAgenda); ``` -**Note:** If a Scheduler `currentView` is set to any one of the available views without injecting that respective view module, then a script error will occur and the Scheduler will not render. +**Note:** If a Scheduler's `currentView` is set to any of the available views without injecting the respective view module, a script error will occur, and the Scheduler will not render. -> You can refer to our [JavaScript Scheduler](https://www.syncfusion.com/javascript-ui-controls/js-scheduler) feature tour page for its groundbreaking feature representations. You can also explore our [JavaScript Scheduler example](https://ej2.syncfusion.com/demos/#/material/schedule/overview.html) to knows how to present and manipulate data. +> You can refer to our [JavaScript Scheduler](https://www.syncfusion.com/javascript-ui-controls/js-scheduler) feature tour page for its groundbreaking feature representations. You can also explore our [JavaScript Scheduler example](https://ej2.syncfusion.com/demos/#/material/schedule/overview.html) to knows how to present and manipulate data. \ No newline at end of file diff --git a/ej2-javascript/schedule/views.md b/ej2-javascript/schedule/views.md index 16be41938..8c22e5570 100644 --- a/ej2-javascript/schedule/views.md +++ b/ej2-javascript/schedule/views.md @@ -19,7 +19,7 @@ To navigate between different views and dates, the navigation options are availa ## Setting specific view on scheduler -As the Scheduler displays `week` view by default, therefore to change the active view, set [`currentView`](https://ej2.syncfusion.com/documentation/api/schedule#currentview)property with the desired view name. The applicable view names that the Scheduler accepts are as follows, +As the Scheduler displays `week` view by default, therefore to change the active view, set `currentView` property with the desired view name. The applicable view names that the Scheduler accepts are as follows, * Day * Week @@ -96,33 +96,33 @@ To configure Scheduler with simply 2 views, but with different configurations on ## View specific configuration -There are scenarios where each view may need to have different configurations. For such cases, you can define the applicable scheduler properties within the [`views`](../api/schedule/views) Property for each view option as depicted in the following examples. The fields available to be used within each view options are as follows. +There are scenarios where each view may need to have different configurations. For such cases, you can define the applicable scheduler properties within the `views` Property for each view option as depicted in the following examples. The fields available to be used within each view options are as follows. | Property | Type | Description | Applicable views | |----------|------|-------------|------------------| -| [`option`](https://ej2.syncfusion.com/documentation/api/schedule/views/#option)| View | It accepts the Scheduler view name, based on which we can define its related properties. The view names can be `Day`, `Week` and so on. | All views.| -| [`isSelected`](https://ej2.syncfusion.com/documentation/api/schedule/views/#isselected) | Boolean | It acts similar to the [`currentView`](https://ej2.syncfusion.com/documentation/api/schedule#currentview) property and defines the active view of the Scheduler.| All views. | -| [`dateFormat`](https://ej2.syncfusion.com/documentation/api/schedule#dateformat) | Date | By default, Scheduler follows the date format as per the default culture assigned to it. When it is defined under specific view, only those assigned views follows this date format. | All views. | -| [`readonly`](https://ej2.syncfusion.com/documentation/api/schedule/views/#readonly) | Boolean | When set to `true`, prevents the CRUD actions on the respective view under where it is defined. | All views. | -| [`resourceHeaderTemplate`](https://ej2.syncfusion.com/documentation/api/schedule/views/#resourceheadertemplate) | String | The template option which is used to customize the resource header cells on the Scheduler. It gets applied only on the views, wherever it is defined.| All views. | -| [`dateHeaderTemplate`](https://ej2.syncfusion.com/documentation/api/schedule/views/#dateheadertemplate) | String | The template option which is used to customize the date header cells and is applied only on the views, wherever it is defined. | All views. | -| [`eventTemplate`](https://ej2.syncfusion.com/documentation/api/schedule/views/#eventtemplate) | String | The template option to customize the events background. It will get applied to the events of the view to which it is currently being defined. | All views. | -| [`showWeekend`](https://ej2.syncfusion.com/documentation/api/schedule/views/#showweekend) | Boolean | When set to `false`, it hides the weekend days of a week from the views on which it is defined.| All views. | -| [`group`](https://ej2.syncfusion.com/documentation/api/schedule/views/#group) | [GroupModel](../api/schedule/groupModel) | Allows to set different resource grouping options on all available Scheduler view modes. | All views. | -| [`cellTemplate`](https://ej2.syncfusion.com/documentation/api/schedule/views/#celltemplate) | String | The template option to customize the work cells of the Scheduler and is applied only on the views, on which it is defined. | Applicable on all views except Agenda view. | -| [`workDays`](https://ej2.syncfusion.com/documentation/api/schedule/views/#workdays) | Number[] | It is used to set the working days on the Scheduler views. | Applicable on all views except Agenda view. | -| [`displayName`](https://ej2.syncfusion.com/documentation/api/schedule/views/#displayname) | String | When a particular view is customized to display with different intervals, this property allows the user to set different display name for each of the views. | Applicable on all views except Agenda and Month Agenda. | -| [`interval`](https://ej2.syncfusion.com/documentation/api/schedule/views/#interval) | Number | It allows to customize the default Scheduler views with different set of days, weeks, work weeks or months on the applicable view type. | Applicable on all views except Agenda and Month Agenda. | -| [`startHour`](https://ej2.syncfusion.com/documentation/api/schedule/views/#starthour) | String | It is used to specify the start hour, from which the Scheduler should be displayed. It accepts the time string in a short skeleton format and also, hides the time beyond the specified start time. | Applicable on Day, Week, Work Week, Timeline Day, Timeline Week and Timeline Work Week views. | -| [`endHour`](https://ej2.syncfusion.com/documentation/api/schedule/views/#endhour) | String | It is used to specify the end hour, at which the Scheduler ends. It accepts the time string in a short skeleton format. | Applicable on Day, Week, Work Week, Timeline Day, Timeline Week, and Timeline Work Week views. | -| [`timeScale`](https://ej2.syncfusion.com/documentation/api/schedule/views/#timescale) | [TimeScaleModel](../api/schedule/timeScaleModel) | Allows to set different timescale configuration on each applicable view modes. | Applicable on Day, Week, Work Week, Timeline Day, Timeline Week, and Timeline Work Week views. | -| [`showWeekNumber`](https://ej2.syncfusion.com/documentation/api/schedule/views/#showweeknumber) | Boolean | When set to `true`, shows the week number on the respective weeks.| Applicable on Day, Week, Work Week, and Month views. | -| [`allowVirtualScrolling`](https://ej2.syncfusion.com/documentation/api/schedule/views/#allowvirtualscrolling) | Boolean | It is used to enable or disable the virtual scrolling functionality. | Applicable on Agenda and Timeline views. | -| [`headerRows`](https://ej2.syncfusion.com/documentation/api/schedule/views/#headerrows) | [HeaderRowsModel](../api/schedule/headerRowsModel) | Allows defining the custom header rows on timeline views of the Scheduler to display the year, month, week, date and hour label as an individual row. | Applicable only on all timeline views. | +| `option` | View | It accepts the Scheduler view name, based on which we can define its related properties. The view names can be `Day`, `Week` and so on. | All views.| +| `isSelected` | Boolean | It acts similar to the `currentView` property and defines the active view of the Scheduler.| All views. | +| `dateFormat` | Date | By default, Scheduler follows the date format as per the default culture assigned to it. When it is defined under specific view, only those assigned views follows this date format. | All views. | +| `readonly` | Boolean | When set to `true`, prevents the CRUD actions on the respective view under where it is defined. | All views. | +| `resourceHeaderTemplate` | String | The template option which is used to customize the resource header cells on the Scheduler. It gets applied only on the views, wherever it is defined.| All views. | +| `dateHeaderTemplate` | String | The template option which is used to customize the date header cells and is applied only on the views, wherever it is defined. | All views. | +| `eventTemplate` | String | The template option to customize the events background. It will get applied to the events of the view to which it is currently being defined. | All views. | +| `showWeekend` | Boolean | When set to `false`, it hides the weekend days of a week from the views on which it is defined.| All views. | +| `group` | [GroupModel](../api/schedule/groupModel) | Allows to set different resource grouping options on all available Scheduler view modes. | All views. | +| `cellTemplate` | String | The template option to customize the work cells of the Scheduler and is applied only on the views, on which it is defined. | Applicable on all views except Agenda view. | +| `workDays` | Number[] | It is used to set the working days on the Scheduler views. | Applicable on all views except Agenda view. | +| `displayName` | String | When a particular view is customized to display with different intervals, this property allows the user to set different display name for each of the views. | Applicable on all views except Agenda and Month Agenda. | +| `interval` | Number | It allows to customize the default Scheduler views with different set of days, weeks, work weeks or months on the applicable view type. | Applicable on all views except Agenda and Month Agenda. | +| `startHour` | String | It is used to specify the start hour, from which the Scheduler should be displayed. It accepts the time string in a short skeleton format and also, hides the time beyond the specified start time. | Applicable on Day, Week, Work Week, Timeline Day, Timeline Week and Timeline Work Week views. | +| `endHour` | String | It is used to specify the end hour, at which the Scheduler ends. It accepts the time string in a short skeleton format. | Applicable on Day, Week, Work Week, Timeline Day, Timeline Week, and Timeline Work Week views. | +| `timeScale` | [TimeScaleModel](../api/schedule/timeScaleModel) | Allows to set different timescale configuration on each applicable view modes. | Applicable on Day, Week, Work Week, Timeline Day, Timeline Week, and Timeline Work Week views. | +| `showWeekNumber` | Boolean | When set to `true`, shows the week number on the respective weeks.| Applicable on Day, Week, Work Week, and Month views. | +| `allowVirtualScrolling` | Boolean | It is used to enable or disable the virtual scrolling functionality. | Applicable on Agenda and Timeline views. | +| `headerRows` | [HeaderRowsModel](../api/schedule/headerRowsModel) | Allows defining the custom header rows on timeline views of the Scheduler to display the year, month, week, date and hour label as an individual row. | Applicable only on all timeline views. | ### Day view -Usually a day view displays a single day with all its related appointments. It is possible to customize the day view to display more number of days by extending the [`views`](https://ej2.syncfusion.com/documentation/api/schedule/views/) property with [`interval`](https://ej2.syncfusion.com/documentation/api/schedule/views/#interval) option. You can also define any of the above defined properties within the [`views`](https://ej2.syncfusion.com/documentation/api/schedule/views/) object definition as depicted in the following code example. +Usually a day view displays a single day with all its related appointments. It is possible to customize the day view to display more number of days by extending the `views` property with `interval` option. You can also define any of the above defined properties within the `views` object definition as depicted in the following code example. {% if page.publishingplatform == "typescript" %} @@ -151,11 +151,11 @@ Usually a day view displays a single day with all its related appointments. It i {% previewsample "page.domainurl/code-snippet/schedule/view-cs3" %} {% endif %} -> All the above defined properties can be accessed within Day view except [`allowVirtualScrolling`](https://ej2.syncfusion.com/documentation/api/schedule/views/#allowvirtualscrolling) and [`headerRows`](https://ej2.syncfusion.com/documentation/api/schedule/views/#headerrows). +> All the above defined properties can be accessed within Day view except `allowVirtualScrolling` and `headerRows`. ### Week view -The Week view displays a count of 7 days (from Sunday to Saturday) with all its related appointments. The first day of the week can be changed using the [`firstDayOfWeek`](https://ej2.syncfusion.com/documentation/api/schedule/views/#firstdayofweek) which accepts the integer (Sunday=0, Monday=1, Tuesday=2 and so on) value. You can navigate to a particular date in day view from the week view by clicking on the appropriate dates on the date header bar. +The Week view displays a count of 7 days (from Sunday to Saturday) with all its related appointments. The first day of the week can be changed using the `firstDayOfWeek` which accepts the integer (Sunday=0, Monday=1, Tuesday=2 and so on) value. You can navigate to a particular date in day view from the week view by clicking on the appropriate dates on the date header bar. {% if page.publishingplatform == "typescript" %} @@ -184,11 +184,11 @@ The Week view displays a count of 7 days (from Sunday to Saturday) with all its {% previewsample "page.domainurl/code-snippet/schedule/view-cs4" %} {% endif %} -> All the above defined properties in the table can be accessed within Week and Work week views except [`allowVirtualScrolling`](https://ej2.syncfusion.com/documentation/api/schedule/views/#allowvirtualscrolling) and [`headerRows`](https://ej2.syncfusion.com/documentation/api/schedule/views/#headerrows). +> All the above defined properties in the table can be accessed within Week and Work week views except `allowVirtualScrolling` and `headerRows`. ### Work Week view -The Work week view displays only the working days of a week (count of 5 days) and its associated appointments. It is possible to customize the working days on the work week view by using the [`workDays`](https://ej2.syncfusion.com/documentation/api/schedule/views/#workdays) property which accepts an array of integer values (such as Sunday=0, Monday=1, Tuesday=2 and so on). By default, it displays from Monday to Friday (5 days). You can also navigate to a particular date in the day view from the work week view by clicking on the appropriate dates in the date header bar. +The Work week view displays only the working days of a week (count of 5 days) and its associated appointments. It is possible to customize the working days on the work week view by using the `workDays` property which accepts an array of integer values (such as Sunday=0, Monday=1, Tuesday=2 and so on). By default, it displays from Monday to Friday (5 days). You can also navigate to a particular date in the day view from the work week view by clicking on the appropriate dates in the date header bar. The following code example depicts how to change the working days only on the `Work Week` view of the Scheduler. @@ -293,7 +293,7 @@ Year view is available in both the `Horizontal` and `Vertical` orientations. You ### Agenda view -The Agenda view lists out the appointments in a grid-like view for the next 7 days by default from the current date. The count of the days can be changed using the API [`agendaDaysCount`](https://ej2.syncfusion.com/documentation/api/schedule#agendadayscount). It allows virtual scrolling of dates by enabling the [`allowVirtualScrolling`]([`allowVirtualScrolling`](https://ej2.syncfusion.com/documentation/api/schedule/views/#allowvirtualscrolling)) property. Also, you can enable or disable the display of days on Scheduler that has no appointments by setting true or false to the [`hideEmptyAgendaDays`](https://ej2.syncfusion.com/documentation/api/schedule#hideemptyagendadays) property. +The Agenda view lists out the appointments in a grid-like view for the next 7 days by default from the current date. The count of the days can be changed using the API `agendaDaysCount`. It allows virtual scrolling of dates by enabling the `allowVirtualScrolling` property. Also, you can enable or disable the display of days on Scheduler that has no appointments by setting true or false to the `hideEmptyAgendaDays` property. The following code example depicts how to customize the display of events within Agenda view alone. @@ -553,7 +553,7 @@ The following code example depicts how to group the multiple resources on Timeli #### Auto row height -Timeline Year view supports Auto row height. When the feature [`rowAutoHeight`](https://ej2.syncfusion.com/documentation/api/schedule#rowautoheight) is enabled, the row height gets auto-adjusted based on the number of overlapping events occupied in the same time range. If you disable the Auto row height, you have the `+ more` text indicator on each day cell of a Timeline Year view, clicking on which will allow you to view the hidden appointments of a day. +Timeline Year view supports Auto row height. When the feature `rowAutoHeight` is enabled, the row height gets auto-adjusted based on the number of overlapping events occupied in the same time range. If you disable the Auto row height, you have the `+ more` text indicator on each day cell of a Timeline Year view, clicking on which will allow you to view the hidden appointments of a day. {% if page.publishingplatform == "typescript" %} @@ -586,7 +586,7 @@ Timeline Year view supports Auto row height. When the feature [`rowAutoHeight`]( It is possible to customize the display of default number of days on different Scheduler view modes. For example, a day view can be extended to display 3 days by setting the `interval` option as 3 for the `Day` option within the `views` property as depicted in the following code example. In the same way, you can also display 2 weeks by setting interval 2 for the `Week` option. -You can provide the alternative display name for such customized views on the Scheduler header bar, by setting the appropriate [`displayName`](https://ej2.syncfusion.com/documentation/api/schedule/views/#displayname) property. +You can provide the alternative display name for such customized views on the Scheduler header bar, by setting the appropriate `displayName` property. {% if page.publishingplatform == "typescript" %} @@ -617,7 +617,7 @@ You can provide the alternative display name for such customized views on the Sc > The view intervals can be extended on all the Scheduler view modes except Agenda and Month-Agenda views. -We can also use [`isSelected`]((https://ej2.syncfusion.com/documentation/api/schedule/views/#isselected)) property to set the current view of the scheduler. The below code sample demonstrates that how to use [`isSelected`]((https://ej2.syncfusion.com/documentation/api/schedule/views/#isselected)) property. +We can also use `isSelected` property to set the current view of the scheduler. The below code sample demonstrates that how to use `isSelected` property. {% if page.publishingplatform == "typescript" %} diff --git a/ej2-javascript/schedule/virtual-scrolling.md b/ej2-javascript/schedule/virtual-scrolling.md index ba03588f7..eb0b5cc1d 100644 --- a/ej2-javascript/schedule/virtual-scrolling.md +++ b/ej2-javascript/schedule/virtual-scrolling.md @@ -42,88 +42,6 @@ To achieve better performance in the Scheduler when loading a large number of re **Note:** For now, the virtual loading of resources and events is not supported in `MonthAgenda`, `Year` and `TimelineYear` (Horizontal Orientation) views. -## Enabling lazy loading for appointments - -The lazy loading feature provides a convenient way to efficiently load resource appointments into the Scheduler using an on-demand approach. With this feature, you can seamlessly load a large volume of appointment data into the Scheduler without experiencing any performance degradation. - -By default, the Scheduler fetches all the relevant appointments from the server with in the current date range. However, enabling this feature will trigger query requests to the server for appointment retrieval whenever new resources are rendered due to scroll actions. These queries contain the resource IDs of currently displayed resources along with current date range, which can be passed as a comma-separated string. In the server controller, these resource IDs are parsed to filter the necessary appointments to render in the scheduler. - -When you enable this feature, the Scheduler becomes capable of fetching events from remote services only for the current view port alone to optimize the data retrieval. The remaining appointment data is fetched form the server on-demand based on currently rendered view port resources as you scroll's through the scheduler content. - -To enable this feature, you have to set the [`enableLazyLoading`](../api/schedule/viewsModel/#enablelazyloading) property to `true` within the view specific settings. - -{% if page.publishingplatform == "typescript" %} - -{% tabs %} -{% highlight ts tabtitle="index.ts" %} -{% include code-snippet/schedule/lazy-loading-cs1/index.ts %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/schedule/lazy-loading-cs1/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/schedule/lazy-loading-cs1" %} - -{% elsif page.publishingplatform == "javascript" %} - -{% tabs %} -{% highlight js tabtitle="index.js" %} -{% include code-snippet/schedule/lazy-loading-cs1/index.js %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/schedule/lazy-loading-cs1/index.html %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/schedule/lazy-loading-cs1" %} -{% endif %} - -Here's the server-side controller code that retrieves appointment data based on the resource IDs provided as query parameters: - -```c# -using Microsoft.AspNetCore.Mvc; -using System.Collections.Generic; -using System; -using Microsoft.EntityFrameworkCore; -using System.Linq; -using System.ComponentModel.DataAnnotations; -using Microsoft.AspNetCore.OData.Query; - -namespace LazyLoadingServices.Controllers -{ - public class VirtualEventDataController : Controller - { - private readonly EventsContext dbContext; - - [HttpGet] - [EnableQuery] - [Route("api/VirtualEventData")] - public IActionResult GetData([FromQuery] Params param) - { - IQueryable query = dbContext.Events; - // Filter the appointment data based on the ResourceId query params. - if (!string.IsNullOrEmpty(param.ResourceId)) - { - string[] resourceId = param.ResourceId.Split(','); - query = query.Where(data => resourceId.Contains(data.ResourceId.ToString())); - } - return Ok(query.ToList()); - } - } - public class Params - { - public DateTime? StartDate { get; set; } - public DateTime? EndDate { get; set; } - public string ResourceId { get; set; } - } -} -``` - -**Note:** -* The property will be effective, when large number of resources and appointments bound to the Scheduler. -* This property is applicable only when [resource grouping](https://ej2.syncfusion.com/documentation/api/schedule/group/#resources) is enabled in Scheduler. - > You can refer to our [JavaScript Scheduler](https://www.syncfusion.com/javascript-ui-controls/js-scheduler) feature tour page for its groundbreaking feature representations. You can also explore our [JavaScript Scheduler example](https://ej2.syncfusion.com/demos/#/material/schedule/overview.html) to knows how to present and manipulate data. ## See Also diff --git a/ej2-javascript/schedule/working-days.md b/ej2-javascript/schedule/working-days.md index f843cc952..4cf65a193 100644 --- a/ej2-javascript/schedule/working-days.md +++ b/ej2-javascript/schedule/working-days.md @@ -59,9 +59,9 @@ The following example code depicts how to set the Scheduler to display Monday, W ## Hiding weekend days -The [`showWeekend`](https://ej2.syncfusion.com/documentation/api/schedule/views/#showweekend) property is used to either show or hide the weekend days of a week and it is not applicable on Work week view (as non-working days are usually not displayed on work week view). By default, it is set to `true`. The days which are not a part of the working days collection of a Scheduler are usually considered as non-working or weekend days. +The `showWeekend` property is used to either show or hide the weekend days of a week and it is not applicable on Work week view (as non-working days are usually not displayed on work week view). By default, it is set to `true`. The days which are not a part of the working days collection of a Scheduler are usually considered as non-working or weekend days. -Here, the working days are defined as [1, 3, 4, 5] on Scheduler and therefore the remaining days (0, 2, 6 – Sunday, Tuesday and Saturday) are considered as non-working or weekend days and will be hidden from all the views when [`showWeekend`](https://ej2.syncfusion.com/documentation/api/schedule/views/#showweekend) property is set to `false`. +Here, the working days are defined as [1, 3, 4, 5] on Scheduler and therefore the remaining days (0, 2, 6 – Sunday, Tuesday and Saturday) are considered as non-working or weekend days and will be hidden from all the views when `showWeekend` property is set to `false`. {% if page.publishingplatform == "typescript" %} @@ -92,9 +92,9 @@ Here, the working days are defined as [1, 3, 4, 5] on Scheduler and therefore th ## Show week numbers -It is possible to show the week number count of a week in the header bar of the Scheduler by setting true to [`showWeekNumber`](https://ej2.syncfusion.com/documentation/api/schedule/views/#showweeknumber) property. By default, its default value is `false`. In Month view, the week numbers are displayed as a first column. +It is possible to show the week number count of a week in the header bar of the Scheduler by setting true to `showWeekNumber` property. By default, its default value is `false`. In Month view, the week numbers are displayed as a first column. -> The [`showWeekNumber`](https://ej2.syncfusion.com/documentation/api/schedule/views/#showweeknumber) property is not applicable on Timeline views, as it has the equivalent [`headerRows`](./header-rows/#display-week-numbers-in-timeline-views) property to handle such requirement with additional customizations. +> The `showWeekNumber` property is not applicable on Timeline views, as it has the equivalent [headerRows](./header-rows/#display-week-numbers-in-timeline-views) property to handle such requirement with additional customizations. {% if page.publishingplatform == "typescript" %} @@ -162,11 +162,11 @@ For more details refer to [this link](https://docs.microsoft.com/en-us/dotnet/ap {% previewsample "page.domainurl/code-snippet/schedule/working-days-cs4" %} {% endif %} - **Note**: Enable the [`showWeekNumber`](https://ej2.syncfusion.com/documentation/api/schedule/views/#showweeknumber) property to configure the [`weekRule`](https://ej2.syncfusion.com/documentation/api/schedule#weekrule) property. Also, the weekRule property depends on the value of the [`firstDayOfWeek`](https://ej2.syncfusion.com/documentation/api/schedule/views/#firstdayofweek) property. + **Note**: Enable the `showWeekNumber` property to configure the `weekRule` property. Also, the weekRule property depends on the value of the `firstDayOfWeek` property. ## Set working hours -Working hours indicates the work hour limit within the Scheduler, which is visually highlighted with an active color on work cells. The working hours can be set on Scheduler using the [`workHours`](https://ej2.syncfusion.com/documentation/api/schedule#workhours) property which is of object type and includes the following sub-options, +Working hours indicates the work hour limit within the Scheduler, which is visually highlighted with an active color on work cells. The working hours can be set on Scheduler using the `workHours` property which is of object type and includes the following sub-options, * `highlight` – enables/disables the highlighting of work hours. * `start` - sets the start time of the working/business hour of a day. @@ -201,7 +201,7 @@ Working hours indicates the work hour limit within the Scheduler, which is visua ## Scheduler displaying custom hours -It is possible to display the event Scheduler layout with specific time durations by hiding the unwanted hours. To do so, set the start and end hour for the Scheduler using the [`startHour`](https://ej2.syncfusion.com/documentation/api/schedule#starthour) and [`endHour`](https://ej2.syncfusion.com/documentation/api/schedule#endhour) properties respectively. +It is possible to display the event Scheduler layout with specific time durations by hiding the unwanted hours. To do so, set the start and end hour for the Scheduler using the `startHour` and `endHour` properties respectively. The following code example displays the Scheduler starting from the time range 7.00 AM to 6.00 PM and the remaining hours are hidden on the UI. @@ -234,7 +234,7 @@ The following code example displays the Scheduler starting from the time range 7 ## Setting start day of the week -By default, Scheduler defaults to `Sunday` as its first day of a week. To change the Scheduler's start day of a week with different day, set the [`firstDayOfWeek`](https://ej2.syncfusion.com/documentation/api/schedule#firstdayofweek) property with the values ranging from 0 to 6. +By default, Scheduler defaults to `Sunday` as its first day of a week. To change the Scheduler's start day of a week with different day, set the `firstDayOfWeek` property with the values ranging from 0 to 6. > Here, Sunday is always denoted as 0, Monday as 1 and so on. @@ -267,7 +267,7 @@ By default, Scheduler defaults to `Sunday` as its first day of a week. To change ## Scroll to specific time and date -You can manually scroll to a specific time on Scheduler by making use of the [`scrollTo`](https://ej2.syncfusion.com/documentation/api/schedule#scrollto) method as depicted in the following code example. +You can manually scroll to a specific time on Scheduler by making use of the `scrollTo` method as depicted in the following code example. {% if page.publishingplatform == "typescript" %} diff --git a/ej2-javascript/sidebar/accessibility.md b/ej2-javascript/sidebar/accessibility.md index 03abad0e4..bdc116c44 100644 --- a/ej2-javascript/sidebar/accessibility.md +++ b/ej2-javascript/sidebar/accessibility.md @@ -1,7 +1,7 @@ --- layout: post -title: Accessibility in ##Platform_Name## Sidebar component | Syncfusion -description: Learn here all about Accessibility in Syncfusion ##Platform_Name## Sidebar component of Syncfusion Essential JS 2 and more. +title: Accessibility in ##Platform_Name## Sidebar control | Syncfusion +description: Learn here all about Accessibility in Syncfusion ##Platform_Name## Sidebar control of Syncfusion Essential JS 2 and more. platform: ej2-javascript control: Accessibility publishingplatform: ##Platform_Name## @@ -9,11 +9,11 @@ documentation: ug domainurl: ##DomainURL## --- -# Accessibility in ##Platform_Name## Sidebar component +# Accessibility in ##Platform_Name## Sidebar control -The Sidebar component followed the accessibility guidelines and standards, including [ADA](https://www.ada.gov/), [Section 508](https://www.section508.gov/), [WCAG 2.2](https://www.w3.org/TR/WCAG22/) standards, and [WCAG roles](https://www.w3.org/TR/wai-aria/#roles) that are commonly used to evaluate accessibility. +The Sidebar control followed the accessibility guidelines and standards, including [ADA](https://www.ada.gov/), [Section 508](https://www.section508.gov/), [WCAG 2.2](https://www.w3.org/TR/WCAG22/) standards, and [WCAG roles](https://www.w3.org/TR/wai-aria/#roles) that are commonly used to evaluate accessibility. -The accessibility compliance for the Sidebar component is outlined below. +The accessibility compliance for the Sidebar control is outlined below. | Accessibility Criteria | Compatibility | | -- | -- | @@ -33,32 +33,32 @@ The accessibility compliance for the Sidebar component is outlined below. margin: 0.5em 0; } -
          Yes - All features of the component meet the requirement.
          +
          Yes - All features of the control meet the requirement.
          -
          Intermediate - Some features of the component do not meet the requirement.
          +
          Intermediate - Some features of the control do not meet the requirement.
          -
          No - The component does not meet the requirement.
          +
          No - The control does not meet the requirement.
          ## WAI-ARIA attributes -The Sidebar component followed the [WAI-ARIA](https://www.w3.org/WAI/ARIA/apg/patterns/) patterns to meet accessibility standards. By default, the Sidebar utilizes the [complementary](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/complementary_role) role, with the option to modify the ARIA role based on provided attributes to the root element, depending on the specific use case. +The Sidebar control followed the [WAI-ARIA](https://www.w3.org/WAI/ARIA/apg/patterns/) patterns to meet accessibility standards. By default, the Sidebar utilizes the [complementary](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/complementary_role) role, with the option to modify the ARIA role based on provided attributes to the root element, depending on the specific use case. If there are multiple complementary landmark roles or aside elements in a document, it is important to provide a label for each landmark using the `aria-label` attribute. Alternatively, if the aside has a descriptive title, it can be referenced using the `aria-labelledby` attribute. This label will help assistive technology users quickly understand the purpose of each landmark. -For optimal accessibility, it is recommended to incorporate a trigger component that is navigable via a keyboard, such as a button. If this is not feasible, inclusion of the `tabIndex` attribute becomes necessary. Furthermore, explicit handling of the `aria-expanded` attribute is required for the trigger element. +For optimal accessibility, it is recommended to incorporate a trigger control that is navigable via a keyboard, such as a button. If this is not feasible, inclusion of the `tabIndex` attribute becomes necessary. Furthermore, explicit handling of the `aria-expanded` attribute is required for the trigger element. ## Keyboard interaction -The Sidebar component does not have any inbuilt keyboard interaction support. However, you can utilize the keyboard interactions of focusable elements within the Sidebar component. +The Sidebar control does not have any inbuilt keyboard interaction support. However, you can utilize the keyboard interactions of focusable elements within the Sidebar control. ## Ensuring accessibility -The Sidebar component's accessibility levels are ensured through an [accessibility-checker](https://www.npmjs.com/package/accessibility-checker) and [axe-core](https://www.npmjs.com/package/axe-core) software tools during automated testing. +The Sidebar control's accessibility levels are ensured through an [accessibility-checker](https://www.npmjs.com/package/accessibility-checker) and [axe-core](https://www.npmjs.com/package/axe-core) software tools during automated testing. -The accessibility compliance of the Sidebar component is shown in the following sample. Open the [sample](https://ej2.syncfusion.com/accessibility/side-bar.html) in a new window to evaluate the accessibility of the Sidebar component with accessibility tools. +The accessibility compliance of the Sidebar control is shown in the following sample. Open the [sample](https://ej2.syncfusion.com/accessibility/side-bar.html) in a new window to evaluate the accessibility of the Sidebar control with accessibility tools. {% previewsample "https://ej2.syncfusion.com/accessibility/side-bar.html" %} ## See also -* [Accessibility in Syncfusion ##Platform_Name## components](../common/accessibility) +* [Accessibility in Syncfusion ##Platform_Name## controls](../common/accessibility) diff --git a/ej2-javascript/sidebar/auto-close.md b/ej2-javascript/sidebar/auto-close.md index 90b5c288d..da2479743 100644 --- a/ej2-javascript/sidebar/auto-close.md +++ b/ej2-javascript/sidebar/auto-close.md @@ -3,7 +3,7 @@ layout: post title: Auto close in ##Platform_Name## Sidebar control | Syncfusion description: Learn here all about Auto close in Syncfusion ##Platform_Name## Sidebar control of Syncfusion Essential JS 2 and more. platform: ej2-javascript -control: Auto close +control: Auto close publishingplatform: ##Platform_Name## documentation: ug domainurl: ##DomainURL## @@ -11,9 +11,9 @@ domainurl: ##DomainURL## # Auto close in ##Platform_Name## Sidebar control -The Sidebar often behaves differently on mobile display and differently on desktop display. It has an effective feature that offers to set it in opened or closed state depending on the specified resolution. This is achieved through [`mediaQuery`](../api/sidebar/#mediaquery) property that allows you to set the Sidebar in an expanded state or collapsed state only in user-defined resolution. +The Sidebar often behaves differently on mobile displays compared to desktop displays. It features a functionality that allows it to be opened or closed based on the specified resolution. This behavior is controlled through the [`mediaQuery`](../api/sidebar/#mediaquery) property, allowing you to keep the Sidebar in an expanded or collapsed state only in user-defined resolutions. -In the following sample, mediaQuery has been used to close and open the Sidebar based on a specific resolution. +In the following sample, `mediaQuery` is used to close and open the Sidebar based on a specific resolution. {% if page.publishingplatform == "typescript" %} @@ -24,35 +24,44 @@ In the following sample, mediaQuery has been used to close and open the Sidebar {% highlight html tabtitle="index.html" %} {% include code-snippet/sidebar/web-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/sidebar/web-cs1/index.css %} +{% endhighlight %} {% endtabs %} - + {% previewsample "page.domainurl/code-snippet/sidebar/web-cs1" %} {% elsif page.publishingplatform == "javascript" %} -{% tabs %} + {% tabs %} {% highlight js tabtitle="index.js" %} {% include code-snippet/sidebar/web-cs1/index.js %} {% endhighlight %} {% highlight html tabtitle="index.html" %} {% include code-snippet/sidebar/web-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/sidebar/web-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/sidebar/web-cs1" %} {% endif %} -* In the following sample,the Sidebar will be in an expanded state only in resolution below `400px`. +* In the following sample, the Sidebar will be in an expanded state only in resolutions below `400px`. {% if page.publishingplatform == "typescript" %} - {% tabs %} +{% tabs %} {% highlight ts tabtitle="index.ts" %} {% include code-snippet/sidebar/mobile-cs1/index.ts %} {% endhighlight %} {% highlight html tabtitle="index.html" %} {% include code-snippet/sidebar/mobile-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="styles.css" %} +{% include code-snippet/sidebar/mobile-cs1/styles.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/sidebar/mobile-cs1" %} @@ -66,6 +75,9 @@ In the following sample, mediaQuery has been used to close and open the Sidebar {% highlight html tabtitle="index.html" %} {% include code-snippet/sidebar/mobile-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="styles.css" %} +{% include code-snippet/sidebar/mobile-cs1/styles.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/sidebar/mobile-cs1" %} diff --git a/ej2-javascript/sidebar/custom-context.md b/ej2-javascript/sidebar/custom-context.md index fb513c8d2..bac4ecde0 100644 --- a/ej2-javascript/sidebar/custom-context.md +++ b/ej2-javascript/sidebar/custom-context.md @@ -3,7 +3,7 @@ layout: post title: Custom context in ##Platform_Name## Sidebar control | Syncfusion description: Learn here all about Custom context in Syncfusion ##Platform_Name## Sidebar control of Syncfusion Essential JS 2 and more. platform: ej2-javascript -control: Custom context +control: Custom context publishingplatform: ##Platform_Name## documentation: ug domainurl: ##DomainURL## @@ -11,13 +11,13 @@ domainurl: ##DomainURL## # Custom context in ##Platform_Name## Sidebar control -Sidebar has a flexible option to make it initialize, target to any HTML element alongside of the main content of a web page. +The Sidebar has a flexible option that allows it to be initialized and targeted to any HTML element alongside the main content of a web page. -By default, Sidebar initializes target to the body element. Using the [`target`](../api/sidebar/#target) property, set target element to initialize the Sidebar inside any HTML element apart from the body element. +By default, the Sidebar targets the body element. Using the [`target`](../api/sidebar/#target) property, you can set the target element to initialize the Sidebar inside any HTML element apart from the body element. -> If required , `zIndex` can be set when sidebar act as overlay type. +> If required, `zIndex` can be set when the Sidebar acts as an overlay type. -In the following sample, sidebar is rendered context to a div container element which has the CSS class `e-main-content`. +In the following sample, the Sidebar is rendered in context to a div container element that has the CSS class `e-main-content`. {% if page.publishingplatform == "typescript" %} @@ -28,8 +28,11 @@ In the following sample, sidebar is rendered context to a div container element {% highlight html tabtitle="index.html" %} {% include code-snippet/sidebar/context-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="styles.css" %} +{% include code-snippet/sidebar/context-cs1/styles.css %} +{% endhighlight %} {% endtabs %} - + {% previewsample "page.domainurl/code-snippet/sidebar/context-cs1" %} {% elsif page.publishingplatform == "javascript" %} @@ -41,6 +44,9 @@ In the following sample, sidebar is rendered context to a div container element {% highlight html tabtitle="index.html" %} {% include code-snippet/sidebar/context-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="styles.css" %} +{% include code-snippet/sidebar/context-cs1/styles.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/sidebar/context-cs1" %} diff --git a/ej2-javascript/sidebar/docking-sidebar.md b/ej2-javascript/sidebar/docking-sidebar.md index dea7336fa..701eb2408 100644 --- a/ej2-javascript/sidebar/docking-sidebar.md +++ b/ej2-javascript/sidebar/docking-sidebar.md @@ -1,35 +1,37 @@ --- layout: post -title: Docking sidebar in ##Platform_Name## Sidebar control | Syncfusion -description: Learn here all about Docking sidebar in Syncfusion ##Platform_Name## Sidebar control of Syncfusion Essential JS 2 and more. +title: Docking Sidebar in ##Platform_Name## Sidebar control | Syncfusion +description: Learn here all about Docking Sidebar in Syncfusion ##Platform_Name## Sidebar control of Syncfusion Essential JS 2 and more. platform: ej2-javascript -control: Docking sidebar +control: Docking Sidebar publishingplatform: ##Platform_Name## documentation: ug domainurl: ##DomainURL## --- -# Docking sidebar in ##Platform_Name## Sidebar control +# Docking Sidebar in ##Platform_Name## Sidebar control -[`Dock`](../api/sidebar/#enabledock) state of the Sidebar reserves some space on the page that always remains in a visible state when the Sidebar is collapsed. It is used to show the short term of a content like icons alone instead of lengthy text. To achieve this , set `enableDock` as true along with required `dockSize`. +The [`Dock`](../api/sidebar/#enabledock) state of the Sidebar reserves some space on the page that always remains visible when the Sidebar is collapsed. It is used to show a concise form of content, such as icons alone instead of lengthy text. To achieve this, set `enableDock` to true along with the required `dockSize`. -In the following sample, the list item has icon with text representation. On dock state, only icons in list will be visible to represent the hint of the hidden text content. +In the following sample, the list item has an icon with text representation. In the dock state, only icons in the list will be visible to represent a hint of the hidden text content. {% if page.publishingplatform == "typescript" %} - {% tabs %} +{% tabs %} {% highlight ts tabtitle="index.ts" %} {% include code-snippet/sidebar/sidebar-dock-cs1/index.ts %} {% endhighlight %} {% highlight html tabtitle="index.html" %} {% include code-snippet/sidebar/sidebar-dock-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="styles.css" %} +{% include code-snippet/sidebar/sidebar-dock-cs1/styles.css %} +{% endhighlight %} {% endtabs %} - + {% previewsample "page.domainurl/code-snippet/sidebar/sidebar-dock-cs1" %} {% elsif page.publishingplatform == "javascript" %} - {% tabs %} {% highlight js tabtitle="index.js" %} {% include code-snippet/sidebar/sidebar-dock-cs1/index.js %} @@ -37,6 +39,9 @@ In the following sample, the list item has icon with text representation. On doc {% highlight html tabtitle="index.html" %} {% include code-snippet/sidebar/sidebar-dock-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="styles.css" %} +{% include code-snippet/sidebar/sidebar-dock-cs1/styles.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/sidebar/sidebar-dock-cs1" %} @@ -44,4 +49,4 @@ In the following sample, the list item has icon with text representation. On doc ## See Also -* [How to add sidebar navigation](./how-to/sidebar-with-treeview) \ No newline at end of file +* [How to add Sidebar navigation](./how-to/sidebar-with-treeview) \ No newline at end of file diff --git a/ej2-javascript/sidebar/how-to/fixed-sidebar.md b/ej2-javascript/sidebar/how-to/fixed-sidebar.md index c10c398d4..0d481ff99 100644 --- a/ej2-javascript/sidebar/how-to/fixed-sidebar.md +++ b/ej2-javascript/sidebar/how-to/fixed-sidebar.md @@ -1,29 +1,32 @@ --- layout: post -title: Fixed sidebar in ##Platform_Name## Sidebar control | Syncfusion -description: Learn here all about Fixed sidebar in Syncfusion ##Platform_Name## Sidebar control of Syncfusion Essential JS 2 and more. +title: Fixed Sidebar in ##Platform_Name## Sidebar control | Syncfusion +description: Learn here all about Fixed Sidebar in Syncfusion ##Platform_Name## Sidebar control of Syncfusion Essential JS 2 and more. platform: ej2-javascript -control: Fixed sidebar +control: Fixed Sidebar publishingplatform: ##Platform_Name## documentation: ug domainurl: ##DomainURL## --- -# Fixed sidebar in ##Platform_Name## Sidebar control +# Fixed ##Platform_Name## Sidebar control -The Sidebar does not require any specific style to make it as a fixed one. By default, the Sidebar position will be in fixed state. The following example demonstrates that the Sidebar is rendered with a fixed position. The position of the Sidebar will not change when scrolling the main content area. +The Sidebar does not require any specific style to be fixed. By default, the Sidebar position is in a fixed state. The following example demonstrates that the Sidebar is rendered with a fixed position. The position of the Sidebar will not change when scrolling the main content area. {% if page.publishingplatform == "typescript" %} - {% tabs %} +{% tabs %} {% highlight ts tabtitle="index.ts" %} {% include code-snippet/sidebar/fixed-position-cs1/index.ts %} {% endhighlight %} {% highlight html tabtitle="index.html" %} {% include code-snippet/sidebar/fixed-position-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="styles.css" %} +{% include code-snippet/sidebar/fixed-position-cs1/styles.css %} +{% endhighlight %} {% endtabs %} - + {% previewsample "page.domainurl/code-snippet/sidebar/fixed-position-cs1" %} {% elsif page.publishingplatform == "javascript" %} @@ -35,7 +38,10 @@ The Sidebar does not require any specific style to make it as a fixed one. By de {% highlight html tabtitle="index.html" %} {% include code-snippet/sidebar/fixed-position-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="styles.css" %} +{% include code-snippet/sidebar/fixed-position-cs1/styles.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/sidebar/fixed-position-cs1" %} -{% endif %} +{% endif %} \ No newline at end of file diff --git a/ej2-javascript/sidebar/how-to/multiple-sidebar-in-same-position.md b/ej2-javascript/sidebar/how-to/multiple-sidebar-in-same-position.md index c7a312424..bce7864fb 100644 --- a/ej2-javascript/sidebar/how-to/multiple-sidebar-in-same-position.md +++ b/ej2-javascript/sidebar/how-to/multiple-sidebar-in-same-position.md @@ -1,21 +1,21 @@ --- layout: post -title: Multiple sidebar in same position in ##Platform_Name## Sidebar control | Syncfusion -description: Learn here all about Multiple sidebar in same position in Syncfusion ##Platform_Name## Sidebar control of Syncfusion Essential JS 2 and more. +title: Multiple sidebar in the same position in ##Platform_Name## Sidebar control | Syncfusion +description: Learn here all about Multiple sidebar in the same position in Syncfusion ##Platform_Name## Sidebar control of Syncfusion Essential JS 2 and more. platform: ej2-javascript -control: Multiple sidebar in same position +control: Multiple sidebar in the same position publishingplatform: ##Platform_Name## documentation: ug domainurl: ##DomainURL## --- -# Multiple sidebar in same position in ##Platform_Name## Sidebar control +# Multiple ##Platform_Name## Sidebar control in the same position -You can initialize Sidebar at the left positions by using the [`position`](../../api/sidebar/#position) property. It will automatically adjust the width of the main content. +You can initialize a Sidebar at the left position using the [`position`](../../api/sidebar/#position) property. This will automatically adjust the width of the main content. -You can also initialize the another sidebar on the same position by adjusting the width of the first sidebar. +You can also initialize another Sidebar in the same position by adjusting the width of the first Sidebar. -The following example demonstrate how to align the multiple sidebar on the same position. +The following example demonstrates how to align multiple Sidebars in the same position. {% if page.publishingplatform == "typescript" %} @@ -26,8 +26,11 @@ The following example demonstrate how to align the multiple sidebar on the same {% highlight html tabtitle="index.html" %} {% include code-snippet/sidebar/sidebar-same-position-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="styles.css" %} +{% include code-snippet/sidebar/sidebar-same-position-cs1/styles.css %} +{% endhighlight %} {% endtabs %} - + {% previewsample "page.domainurl/code-snippet/sidebar/sidebar-same-position-cs1" %} {% elsif page.publishingplatform == "javascript" %} @@ -39,6 +42,9 @@ The following example demonstrate how to align the multiple sidebar on the same {% highlight html tabtitle="index.html" %} {% include code-snippet/sidebar/sidebar-same-position-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="styles.css" %} +{% include code-snippet/sidebar/sidebar-same-position-cs1/styles.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/sidebar/sidebar-same-position-cs1" %} diff --git a/ej2-javascript/sidebar/how-to/multiple-sidebar.md b/ej2-javascript/sidebar/how-to/multiple-sidebar.md index 21e37ed18..8c6c9d31c 100644 --- a/ej2-javascript/sidebar/how-to/multiple-sidebar.md +++ b/ej2-javascript/sidebar/how-to/multiple-sidebar.md @@ -1,20 +1,19 @@ --- layout: post -title: Multiple sidebar in ##Platform_Name## Sidebar control | Syncfusion -description: Learn here all about Multiple sidebar in Syncfusion ##Platform_Name## Sidebar control of Syncfusion Essential JS 2 and more. +title: Multiple Sidebar in ##Platform_Name## Sidebar control | Syncfusion +description: Learn here all about Multiple Sidebar in Syncfusion ##Platform_Name## Sidebar control of Syncfusion Essential JS 2 and more. platform: ej2-javascript -control: Multiple sidebar +control: Multiple Sidebar publishingplatform: ##Platform_Name## documentation: ug domainurl: ##DomainURL## --- -# Multiple sidebar in ##Platform_Name## Sidebar control +# Multiple ##Platform_Name## Sidebar control -Two Sidebars can be initialized in a web page with same main content. -Sidebars can be initialized on right side or left side of the main content using [`position`](../../api/sidebar/#position) property. +Two Sidebars can be initialized on a web page with the same main content. Sidebars can be positioned on the right or left side of the main content using the [`position`](../../api/sidebar/#position) property. ->The HTML element with class name `e-main-content` will be considered as the main content and both the Sidebars will behave as side content to this main content area of a web page. +> The HTML element with the class name `e-main-content` is considered the main content, and both Sidebars will act as side content relative to this main content area of the web page. {% if page.publishingplatform == "typescript" %} @@ -25,8 +24,11 @@ Sidebars can be initialized on right side or left side of the main content using {% highlight html tabtitle="index.html" %} {% include code-snippet/sidebar/multiple-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="styles.css" %} +{% include code-snippet/sidebar/multiple-cs1/styles.css %} +{% endhighlight %} {% endtabs %} - + {% previewsample "page.domainurl/code-snippet/sidebar/multiple-cs1" %} {% elsif page.publishingplatform == "javascript" %} @@ -38,7 +40,10 @@ Sidebars can be initialized on right side or left side of the main content using {% highlight html tabtitle="index.html" %} {% include code-snippet/sidebar/multiple-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="styles.css" %} +{% include code-snippet/sidebar/multiple-cs1/styles.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/sidebar/multiple-cs1" %} -{% endif %} \ No newline at end of file +{% endif %} diff --git a/ej2-javascript/sidebar/how-to/open-and-close-the-sidebar.md b/ej2-javascript/sidebar/how-to/open-and-close-the-sidebar.md index cf5a06cc7..3d50760cd 100644 --- a/ej2-javascript/sidebar/how-to/open-and-close-the-sidebar.md +++ b/ej2-javascript/sidebar/how-to/open-and-close-the-sidebar.md @@ -1,23 +1,23 @@ --- layout: post -title: Open and close the sidebar in ##Platform_Name## Sidebar control | Syncfusion -description: Learn here all about Open and close the sidebar in Syncfusion ##Platform_Name## Sidebar control of Syncfusion Essential JS 2 and more. +title: Open and close the Sidebar in ##Platform_Name## Sidebar control | Syncfusion +description: Learn here all about Open and close the Sidebar in Syncfusion ##Platform_Name## Sidebar control of Syncfusion Essential JS 2 and more. platform: ej2-javascript -control: Open and close the sidebar +control: Open and close the Sidebar publishingplatform: ##Platform_Name## documentation: ug domainurl: ##DomainURL## --- -# Open and close the sidebar in ##Platform_Name## Sidebar control +# Open and close the Sidebar in ##Platform_Name## Sidebar control -Opening and closing the Sidebar can be achieved with built-in public methods. +Opening and closing the Sidebar can be achieved using built-in public methods. * [`show()`](../../api/sidebar/#show): Method to open the Sidebar. * [`hide()`](../../api/sidebar/#hide): Method to close the Sidebar. * [`toggle()`](../../api/sidebar/#toggle): Method to toggle between open and close states of the Sidebar. -In the following sample, toggle method has been used to show or hide the Sidebar on button click. +In the following sample, the toggle method is used to show or hide the Sidebar on a button click. {% if page.publishingplatform == "typescript" %} @@ -28,8 +28,11 @@ In the following sample, toggle method has been used to show or hide the Sidebar {% highlight html tabtitle="index.html" %} {% include code-snippet/sidebar/sidebar-default-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="styles.css" %} +{% include code-snippet/sidebar/sidebar-default-cs1/styles.css %} +{% endhighlight %} {% endtabs %} - + {% previewsample "page.domainurl/code-snippet/sidebar/sidebar-default-cs1" %} {% elsif page.publishingplatform == "javascript" %} @@ -41,7 +44,10 @@ In the following sample, toggle method has been used to show or hide the Sidebar {% highlight html tabtitle="index.html" %} {% include code-snippet/sidebar/sidebar-default-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="styles.css" %} +{% include code-snippet/sidebar/sidebar-default-cs1/styles.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/sidebar/sidebar-default-cs1" %} -{% endif %} +{% endif %} \ No newline at end of file diff --git a/ej2-javascript/sidebar/how-to/sidebar-with-list-view.md b/ej2-javascript/sidebar/how-to/sidebar-with-list-view.md index d7ea4bfaa..fe387383d 100644 --- a/ej2-javascript/sidebar/how-to/sidebar-with-list-view.md +++ b/ej2-javascript/sidebar/how-to/sidebar-with-list-view.md @@ -3,17 +3,17 @@ layout: post title: Sidebar with list view in ##Platform_Name## Sidebar control | Syncfusion description: Learn here all about Sidebar with list view in Syncfusion ##Platform_Name## Sidebar control of Syncfusion Essential JS 2 and more. platform: ej2-javascript -control: Sidebar with list view +control: Sidebar with list view publishingplatform: ##Platform_Name## documentation: ug domainurl: ##DomainURL## --- -# Sidebar with list view in ##Platform_Name## Sidebar control +# ##Platform_Name## Sidebar control with ListView -Any HTML element can be placed in the Sidebar content area. Sidebar supports all types of HTML structures like `TreeView`, `ListView`, etc. +Any HTML element can be placed in the Sidebar content area. The Sidebar supports all types of HTML structures like `TreeView`, `ListView`, etc. -In the following example, the Sidebar is rendered with ListView component in its content area. +In the following example, the Sidebar is rendered with the ListView control in its content area. {% if page.publishingplatform == "typescript" %} @@ -24,8 +24,11 @@ In the following example, the Sidebar is rendered with ListView component in its {% highlight html tabtitle="index.html" %} {% include code-snippet/sidebar/sidebar-list-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="styles.css" %} +{% include code-snippet/sidebar/sidebar-list-cs1/styles.css%} +{% endhighlight %} {% endtabs %} - + {% previewsample "page.domainurl/code-snippet/sidebar/sidebar-list-cs1" %} {% elsif page.publishingplatform == "javascript" %} @@ -37,7 +40,10 @@ In the following example, the Sidebar is rendered with ListView component in its {% highlight html tabtitle="index.html" %} {% include code-snippet/sidebar/sidebar-list-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="styles.css" %} +{% include code-snippet/sidebar/sidebar-list-cs1/styles.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/sidebar/sidebar-list-cs1" %} -{% endif %} +{% endif %} \ No newline at end of file diff --git a/ej2-javascript/sidebar/how-to/sidebar-with-treeview.md b/ej2-javascript/sidebar/how-to/sidebar-with-treeview.md index 31c4d7883..35d1a6d81 100644 --- a/ej2-javascript/sidebar/how-to/sidebar-with-treeview.md +++ b/ej2-javascript/sidebar/how-to/sidebar-with-treeview.md @@ -1,19 +1,19 @@ --- layout: post -title: Sidebar with treeview in ##Platform_Name## Sidebar control | Syncfusion -description: Learn here all about Sidebar with treeview in Syncfusion ##Platform_Name## Sidebar control of Syncfusion Essential JS 2 and more. +title: Sidebar with TreeView in ##Platform_Name## Sidebar control | Syncfusion +description: Learn here all about Sidebar with TreeView in Syncfusion ##Platform_Name## Sidebar control of Syncfusion Essential JS 2 and more. platform: ej2-javascript -control: Sidebar with treeview +control: Sidebar with TreeView publishingplatform: ##Platform_Name## documentation: ug domainurl: ##DomainURL## --- -# Sidebar with treeview in ##Platform_Name## Sidebar control +# ##Platform_Name## Sidebar control with TreeView -The following example demonstrates how to render TreeView component inside the Sidebar with dock state and how to achieve expand and collapse the functionalities simultaneously in the sidebar and Treeview. +The following example demonstrates how to render the TreeView control inside the Sidebar with a dock state and how to achieve simultaneous expand and collapse functionalities in both the Sidebar and TreeView. -On collapse, the LI elements of TreeView show icons only to represent the short sign of the hidden text content. On expand, hidden text content will be set to be visible. +Upon collapse, the LI elements of the TreeView display icons only, representing a short sign of the hidden text content. When expanded, the hidden text content is made visible. {% if page.publishingplatform == "typescript" %} @@ -24,8 +24,11 @@ On collapse, the LI elements of TreeView show icons only to represent the short {% highlight html tabtitle="index.html" %} {% include code-snippet/sidebar/sidebar-treeview-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="styles.css" %} +{% include code-snippet/sidebar/sidebar-treeview-cs1/styles.css %} +{% endhighlight %} {% endtabs %} - + {% previewsample "page.domainurl/code-snippet/sidebar/sidebar-treeview-cs1" %} {% elsif page.publishingplatform == "javascript" %} @@ -37,7 +40,10 @@ On collapse, the LI elements of TreeView show icons only to represent the short {% highlight html tabtitle="index.html" %} {% include code-snippet/sidebar/sidebar-treeview-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="styles.css" %} +{% include code-snippet/sidebar/sidebar-treeview-cs1/styles.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/sidebar/sidebar-treeview-cs1" %} -{% endif %} +{% endif %} \ No newline at end of file diff --git a/ej2-javascript/sidebar/how-to/sidebar-with-variation-animation.md b/ej2-javascript/sidebar/how-to/sidebar-with-variation-animation.md index a9bbdae73..38379ccc0 100644 --- a/ej2-javascript/sidebar/how-to/sidebar-with-variation-animation.md +++ b/ej2-javascript/sidebar/how-to/sidebar-with-variation-animation.md @@ -1,19 +1,19 @@ --- layout: post -title: Sidebar with variation animation in ##Platform_Name## Sidebar control | Syncfusion -description: Learn here all about Sidebar with variation animation in Syncfusion ##Platform_Name## Sidebar control of Syncfusion Essential JS 2 and more. +title: Sidebar with Variation Animation in ##Platform_Name## Sidebar control | Syncfusion +description: Learn here all about Sidebar with Variation Animation in Syncfusion ##Platform_Name## Sidebar control of Syncfusion Essential JS 2 and more. platform: ej2-javascript -control: Sidebar with variation animation +control: Sidebar with Variation Animation publishingplatform: ##Platform_Name## documentation: ug domainurl: ##DomainURL## --- -# Sidebar with variation animation in ##Platform_Name## Sidebar control +# Variation Animation in ##Platform_Name## Sidebar control -In the following example, the sidebar is rendered with custom animation effects. Click the buttons available in the main content area to check how the custom animations works with sidebar. +In the following example, the Sidebar is rendered with custom animation effects. Click the buttons available in the main content area to observe how the custom animations work with the Sidebar. -Sidebar will automatically adjust expanding animation to match any custom size specified in `CSS` styles. +The Sidebar will automatically adjust its expanding animation to match any custom size specified in `CSS` styles. {% if page.publishingplatform == "typescript" %} @@ -24,8 +24,11 @@ Sidebar will automatically adjust expanding animation to match any custom size s {% highlight html tabtitle="index.html" %} {% include code-snippet/sidebar/animation-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="styles.css" %} +{% include code-snippet/sidebar/animation-cs1/styles.css %} +{% endhighlight %} {% endtabs %} - + {% previewsample "page.domainurl/code-snippet/sidebar/animation-cs1" %} {% elsif page.publishingplatform == "javascript" %} @@ -37,7 +40,10 @@ Sidebar will automatically adjust expanding animation to match any custom size s {% highlight html tabtitle="index.html" %} {% include code-snippet/sidebar/animation-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="styles.css" %} +{% include code-snippet/sidebar/animation-cs1/styles.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/sidebar/animation-cs1" %} -{% endif %} +{% endif %} \ No newline at end of file diff --git a/ej2-javascript/sidebar/how-to/top-and-bottom-sidebar.md b/ej2-javascript/sidebar/how-to/top-and-bottom-sidebar.md index 278062af9..7e62e7975 100644 --- a/ej2-javascript/sidebar/how-to/top-and-bottom-sidebar.md +++ b/ej2-javascript/sidebar/how-to/top-and-bottom-sidebar.md @@ -1,21 +1,21 @@ --- layout: post -title: Top and bottom sidebar in ##Platform_Name## Sidebar control | Syncfusion -description: Learn here all about Top and bottom sidebar in Syncfusion ##Platform_Name## Sidebar control of Syncfusion Essential JS 2 and more. +title: Top and bottom Sidebar in ##Platform_Name## Sidebar control | Syncfusion +description: Learn here all about Top and bottom Sidebar in Syncfusion ##Platform_Name## Sidebar control of Syncfusion Essential JS 2 and more. platform: ej2-javascript -control: Top and bottom sidebar +control: Top and bottom Sidebar publishingplatform: ##Platform_Name## documentation: ug domainurl: ##DomainURL## --- -# Top and bottom sidebar in ##Platform_Name## Sidebar control +# Top and bottom Sidebar in ##Platform_Name## Sidebar control -You can initialize Sidebar at the left and right positions by using the [`position`](../../api/sidebar/#position) property. It will automatically adjust the width of the main content. +You can initialize the Sidebar at the left and right positions using the [`position`](../../api/sidebar/#position) property. This will automatically adjust the width of the main content. -You can also initialize Sidebar at the top and bottom positions in application level. For initializing Sidebar, you need to manually adjust the height of the main content. +Additionally, you can initialize the Sidebar at the top and bottom positions at the application level. When initializing the Sidebar in these positions, you will need to manually adjust the height of the main content. -In the following sample, the [`toggle`](../../api/sidebar/#toggle) method has been used to show or hide the top and bottom sidebar on button click. +In the following sample, the [`toggle`](../../api/sidebar/#toggle) method is used to show or hide the top and bottom Sidebar on a button click. {% if page.publishingplatform == "typescript" %} @@ -26,8 +26,11 @@ In the following sample, the [`toggle`](../../api/sidebar/#toggle) method has be {% highlight html tabtitle="index.html" %} {% include code-snippet/sidebar/top-bottom-positions-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="styles.css" %} +{% include code-snippet/sidebar/top-bottom-positions-cs1/styles.css %} +{% endhighlight %} {% endtabs %} - + {% previewsample "page.domainurl/code-snippet/sidebar/top-bottom-positions-cs1" %} {% elsif page.publishingplatform == "javascript" %} @@ -39,7 +42,10 @@ In the following sample, the [`toggle`](../../api/sidebar/#toggle) method has be {% highlight html tabtitle="index.html" %} {% include code-snippet/sidebar/top-bottom-positions-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="styles.css" %} +{% include code-snippet/sidebar/top-bottom-positions-cs1/styles.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/sidebar/top-bottom-positions-cs1" %} -{% endif %} +{% endif %} \ No newline at end of file diff --git a/ej2-javascript/sidebar/js/es5-getting-started.md b/ej2-javascript/sidebar/js/es5-getting-started.md index 22b600c6d..64579d658 100644 --- a/ej2-javascript/sidebar/js/es5-getting-started.md +++ b/ej2-javascript/sidebar/js/es5-getting-started.md @@ -24,7 +24,7 @@ Using either of the following way to refer the required script and styles. ### Using local script and style references in a HTML page -**Step 1:** You can get the global scripts and styles from the [Essential Studio JavaScript (Essential JS 2)](https://www.syncfusion.com/downloads/essential-js2/confirm) build installed location. +**Step 1:** You can get the global scripts and styles from the [Essential Studio JavaScript (Essential JS 2)](https://www.syncfusion.com/downloads/essential-js2) build installed location. **Step 2:** To render Sidebar component, need to add Sidebar and its dependent packages from below installed location. @@ -135,8 +135,8 @@ Using either of the following way to refer the required script and styles. - - + + @@ -194,4 +194,4 @@ Positioning the Sidebar to the right or left of the main content can be achieved {% endhighlight %} {% endtabs %} -{% previewsample "page.domainurl/code-snippet/sidebar/position-cs1" %} \ No newline at end of file +{% previewsample "page.domainurl/code-snippet/sidebar/position-cs1" %} diff --git a/ej2-javascript/sidebar/js/getting-started.md b/ej2-javascript/sidebar/js/getting-started.md index c919aeb2f..0d10ac5a3 100644 --- a/ej2-javascript/sidebar/js/getting-started.md +++ b/ej2-javascript/sidebar/js/getting-started.md @@ -1,7 +1,7 @@ --- layout: post -title: Getting started with ##Platform_Name## Sidebar control | Syncfusion -description: Checkout and learn about Getting started with ##Platform_Name## Sidebar control of Syncfusion Essential JS 2 and more details. +title: Getting started with JavaScript Sidebar control | Syncfusion +description: Checkout and learn about Getting started with JavaScript Sidebar control of Syncfusion Essential JS 2 and more details. platform: ej2-javascript control: Getting started publishingplatform: ##Platform_Name## @@ -9,13 +9,13 @@ documentation: ug domainurl: ##DomainURL## --- -# Getting started in ##Platform_Name## Sidebar control +# Getting started with JavaScript Sidebar control The Essential JS 2 for JavaScript (global script) is an ES5 formatted pure JavaScript framework which can be directly used in latest web browsers. -## Component Initialization +## Control Initialization -Create an app folder `myapp` in local machine to initialize Essential JS 2 JavaScript components. +Create an app folder `myapp` in local machine to initialize Essential JS 2 JavaScript controls. Using either of the following way to refer the required script and styles. @@ -24,9 +24,9 @@ Using either of the following way to refer the required script and styles. ### Using local script and style references in a HTML page -**Step 1:** Create an app folder `myapp` for Essential JS 2 JavaScript components. +**Step 1:** Create an app folder `myapp` for Essential JS 2 JavaScript controls. -**Step 2:** You can get the global scripts and styles from the [Essential Studio JavaScript (Essential JS 2)](https://www.syncfusion.com/downloads/essential-js2/confirm) build installed location. +**Step 2:** You can get the global scripts and styles from the [Essential Studio JavaScript (Essential JS 2)](https://www.syncfusion.com/downloads/essential-js2) build installed location. **Syntax:** > Script: `**(installed location)**\Syncfusion\Essential Studio\JavaScript - EJ2\{RELEASE_VERSION}\Web (Essential JS 2)\JavaScript\{PACKAGE_NAME}\dist\global\{PACKAGE_NAME}.min.js` @@ -66,7 +66,7 @@ The below located script and style file contains all Syncfusion JavaScript (ES5) ``` -**Step 5:** Now, add the `div` element and initiate the `Essential JS 2 Sidebar` component in the `index.html` by using following code +**Step 5:** Now, add the `div` element and initiate the `Essential JS 2 Sidebar` control in the `index.html` by using following code ```html @@ -88,7 +88,7 @@ The below located script and style file contains all Syncfusion JavaScript (ES5) - +
          Main content
          @@ -96,10 +96,10 @@ The below located script and style file contains all Syncfusion JavaScript (ES5)
          @@ -107,11 +107,11 @@ The below located script and style file contains all Syncfusion JavaScript (ES5) ``` -**Step 6:** Now, run the `index.html` in web browser, it will render the **Essential JS 2 Sidebar** component. +**Step 6:** Now, run the `index.html` in web browser, it will render the **Essential JS 2 Sidebar** control. ### Using CDN link for script and style reference -**Step 1:** The Essential JS 2 components scripts and styles are already hosted in the below CDN link formats. +**Step 1:** The Essential JS 2 controls scripts and styles are already hosted in the below CDN link formats. **Syntax:** > Script: `http://cdn.syncfusion.com/ej2/{PACKAGE_NAME}/dist/global/{PACKAGE_NAME}.min.js` @@ -131,12 +131,12 @@ The below located script and style file contains all Syncfusion JavaScript (ES5) - Essential JS 2 Sidebar Component + Essential JS 2 Sidebar Control - - + + @@ -168,8 +168,8 @@ The below located script and style file contains all Syncfusion JavaScript (ES5) ## Enable backdrop -Enabling the `showBackdrop` in the Sidebar component will prevent the main content from user interactions, when it is in expanded state. -Here, the DOM elements will not get changed. It only closes the main content by covering with a black backdrop overlay and focuses the Sidebar in the screen. Sidebar can be rendered with specific width by setting `width` property. +Enabling the [`showBackdrop`](../api/sidebar/#showbackdrop) in the Sidebar control will prevent the main content from user interactions, when it is in expanded state. +Here, the DOM elements will not get changed. It only closes the main content by covering with a black backdrop overlay and focuses the Sidebar in the screen. Sidebar can be rendered with specific width by setting [`width`](../api/sidebar/#width) property. N> To achieve a proper **backdrop**, we suggest that you create a wrapper parent container for the div block in which you intend to enable the backdrop. Set the class name of this parent container as the **target** for the Sidebar. Alternatively, you can place an empty div container after the target container. @@ -186,7 +186,7 @@ N> To achieve a proper **backdrop**, we suggest that you create a wrapper parent ## Position -Positioning the Sidebar to the right or left of the main content can be achieved by using the `position` property. If the position is not set, the Sidebar will expand from the left to the body element. `enablePersistence` will persist the component's state between page reloads. `change` event will be triggered when the state(expand/collapse) of the component is changed. +Positioning the Sidebar to the right or left of the main content can be achieved by using the [`position`](../api/sidebar/#position) property. If the position is not set, the Sidebar will expand from the left to the body element. [`enablePersistence`](../api/sidebar/#enablepersistence) will persist the control's state between page reloads. [`change`](../api/sidebar/#change) event will be triggered when the state(expand/collapse) of the control is changed. {% tabs %} {% highlight js tabtitle="index.js" %} @@ -201,7 +201,7 @@ Positioning the Sidebar to the right or left of the main content can be achieved ## Animate -Animation transitions can be set while expanding or collapsing the Sidebar using the `animate` property. By default , `animate` property is set to true. `enableRTL` will display the sidebar in the right-to-left direction. +Animation transitions can be set while expanding or collapsing the Sidebar using the [`animate`](../api/sidebar/#animate) property. By default , `animate` property is set to true. {% tabs %} {% highlight js tabtitle="index.js" %} @@ -216,7 +216,7 @@ Animation transitions can be set while expanding or collapsing the Sidebar using ## Close on document click -Sidebar can be closed on document click by setting `closeOnDocumentClick` to true. If this property is not set, the Sidebar will not close on document click since its default value is false. Sidebar can be kept opened during rendering using `isOpen` property. +Sidebar can be closed on document click by setting [`closeOnDocumentClick`](../api/sidebar/#closeondocumentclick) to true. If this property is not set, the Sidebar will not close on document click since its default value is false. Sidebar can be kept opened during rendering using [`isOpen`](../api/sidebar/#isopen) property. {% tabs %} {% highlight js tabtitle="index.js" %} @@ -231,7 +231,7 @@ Sidebar can be closed on document click by setting `closeOnDocumentClick` to tru ## Enable gestures -Expand or collapse the Sidebar while swiping in touch devices using `enableGestures` property. By default, `enableGestures` is set to true. +Expand or collapse the Sidebar while swiping in touch devices using [`enableGestures`](../api/sidebar/#enablegestures) property. By default, `enableGestures` is set to true. {% tabs %} {% highlight js tabtitle="index.js" %} @@ -249,4 +249,4 @@ Expand or collapse the Sidebar while swiping in touch devices using `enableGestu * [Sidebar with navigation menu](https://ej2.syncfusion.com/javascript/demos/#/material/sidebar/sidebar-menu.html) * [Sidebar responsive panel](https://ej2.syncfusion.com/javascript/demos/#/material/sidebar/responsive-panel.html) * [Sidebar with listView](./how-to/sidebar-with-list-view/) -* [Usecase sample](https://ej2.syncfusion.com/showcase/javascript/webmail/#/home) +* [Use case sample](https://ej2.syncfusion.com/showcase/javascript/webmail/#/home) diff --git a/ej2-javascript/sidebar/style.md b/ej2-javascript/sidebar/style.md index 889b5a66c..8651f86cb 100644 --- a/ej2-javascript/sidebar/style.md +++ b/ej2-javascript/sidebar/style.md @@ -13,9 +13,9 @@ domainurl: ##DomainURL## The following content provides the exact CSS structure that can be used to modify the control's appearance based on the user's preference. -## Customizing the sidebar +## Customizing the Sidebar -Use the below CSS to customize the sidebar root element. +Use the below CSS to customize the Sidebar root element. ``` @@ -25,9 +25,9 @@ Use the below CSS to customize the sidebar root element. ``` -## Customizing the sidebar based on the positions +## Customizing the Sidebar based on the positions -Use the below CSS to customize the left positioned sidebar. +Use the below CSS to customize the left positioned Sidebar. ``` @@ -37,7 +37,7 @@ Use the below CSS to customize the left positioned sidebar. ``` -Use the below CSS to customize the right positioned sidebar. +Use the below CSS to customize the right positioned Sidebar. ``` @@ -47,9 +47,9 @@ Use the below CSS to customize the right positioned sidebar. ``` -## Customizing the sidebar based on the active state +## Customizing the Sidebar based on the active state -Use the below CSS to customize the open state of the left positioned sidebar. +Use the below CSS to customize the open state of the left positioned Sidebar. ``` @@ -59,7 +59,7 @@ Use the below CSS to customize the open state of the left positioned sidebar. ``` -Use the below CSS to customize the open state of the right positioned sidebar. +Use the below CSS to customize the open state of the right positioned Sidebar. ``` @@ -69,7 +69,7 @@ Use the below CSS to customize the open state of the right positioned sidebar. ``` -Use the below CSS to customize the closed state of the left positioned sidebar. +Use the below CSS to customize the closed state of the left positioned Sidebar. ``` @@ -79,7 +79,7 @@ Use the below CSS to customize the closed state of the left positioned sidebar. ``` -Use the below CSS to customize the closed state of the right positioned sidebar. +Use the below CSS to customize the closed state of the right positioned Sidebar. ``` @@ -89,9 +89,9 @@ Use the below CSS to customize the closed state of the right positioned sidebar. ``` -## Customizing the sidebar with dock state +## Customizing the Sidebar with dock state -When you enable the Dock support, the "e-dock" class will be added to the root element. Based on that class, you can also customize all the above stated customization. Use the following CSS to customize the sidebar element with a dock state. +When you enable the Dock support, the "e-dock" class will be added to the root element. Based on that class, you can also customize all the above stated customization. Use the following CSS to customize the Sidebar element with a dock state. ``` @@ -101,9 +101,9 @@ When you enable the Dock support, the "e-dock" class will be added to the root e ``` -## Customizing the different types of sidebar +## Customizing the different types of Sidebar -Use the below CSS to customize the auto type sidebar. +Use the below CSS to customize the auto type Sidebar. ``` @@ -113,7 +113,7 @@ Use the below CSS to customize the auto type sidebar. ``` -Use the below CSS to customize the push type sidebar. +Use the below CSS to customize the push type Sidebar. ``` @@ -123,7 +123,7 @@ Use the below CSS to customize the push type sidebar. ``` -Use the below CSS to customize the over type sidebar. +Use the below CSS to customize the over type Sidebar. ``` @@ -133,7 +133,7 @@ Use the below CSS to customize the over type sidebar. ``` -Use the below CSS to customize the slide type sidebar. +Use the below CSS to customize the slide type Sidebar. ``` @@ -143,9 +143,9 @@ Use the below CSS to customize the slide type sidebar. ``` -## Customizing the backdrop of the sidebar +## Customizing the backdrop of the Sidebar -Use the below CSS to customize the backdrop of the sidebar. +Use the below CSS to customize the backdrop of the Sidebar. ``` @@ -155,9 +155,9 @@ Use the below CSS to customize the backdrop of the sidebar. ``` -## Customizing the sidebar in the RTL direction +## Customizing the Sidebar in the RTL direction -When you enable the RTL (right to left direction) support, the "e-rtl" class will be added to the root element. Based on that class, you can also customize all the above stated customization. Use the following CSS to customize the sidebar element in the RTL (right to left direction) mode. +When you enable the RTL (right to left direction) support, the "e-rtl" class will be added to the root element. Based on that class, you can also customize all the above stated customization. Use the following CSS to customize the Sidebar element in the RTL (right to left direction) mode. ``` @@ -167,9 +167,9 @@ When you enable the RTL (right to left direction) support, the "e-rtl" class wil ``` -## Prevent the animation transition for the Sidebar component +## Prevent the animation transition for the Sidebar control -Use the below CSS to prevent the animation transition for the Sidebar component. +Use the below CSS to prevent the animation transition for the Sidebar control. ``` diff --git a/ej2-javascript/sidebar/ts/getting-started.md b/ej2-javascript/sidebar/ts/getting-started.md index a7e97deba..534c5932f 100644 --- a/ej2-javascript/sidebar/ts/getting-started.md +++ b/ej2-javascript/sidebar/ts/getting-started.md @@ -11,13 +11,13 @@ domainurl: ##DomainURL## # Getting started in ##Platform_Name## Sidebar control -This section briefly explains how to create a simple **Sidebar** component, and configure it in TypeScript using Essential JS 2 [quickstart](https://github.com/SyncfusionExamples/ej2-quickstart-webpack-) seed repository. +This section briefly explains how to create a simple **Sidebar** control, and configure it in TypeScript using Essential JS 2 [quickstart](https://github.com/SyncfusionExamples/ej2-quickstart-webpack-) seed repository. > This application is integrated with the `webpack.config.js` configuration and uses the latest version of the [webpack-cli](https://webpack.js.org/api/cli/#commands). It requires node `v14.15.0` or higher. For more information about webpack and its features, refer to the [webpack documentation](https://webpack.js.org/guides/getting-started/). ## Dependencies -The following list of dependencies are required to use the Sidebar component in your application. +The following list of dependencies are required to use the Sidebar control in your application. ```js |-- @syncfusion/ej2-navigations @@ -69,18 +69,18 @@ npm install ## Import the Syncfusion CSS styles -To render the Sidebar component, need to import sidebar and its dependent component’s styles as given below in the `~/src/styles/styles.css` file, as shown below: +To render the Sidebar control, need to import Sidebar and its dependent control’s styles as given below in the `~/src/styles/styles.css` file, as shown below: {% tabs %} {% highlight css tabtitle="style.css" %} -@import "../node_modules/@syncfusion/ej2-base/styles/material.css"; -@import "../node_modules/@syncfusion/ej2-navigations/styles/material.css"; +@import "../../node_modules/@syncfusion/ej2-base/styles/material.css"; +@import "../../node_modules/@syncfusion/ej2-navigations/styles/material.css"; {% endhighlight %} {% endtabs %} ->Note: If you want to refer the combined component styles, please make use of our [`CRG`](https://crg.syncfusion.com/) (Custom Resource Generator) in your application. +>Note: If you want to refer the combined control styles, please make use of our [`CRG`](https://crg.syncfusion.com/) (Custom Resource Generator) in your application. ## Initialize Sidebar using HTML elements @@ -111,8 +111,6 @@ To render the Sidebar, refer to the following structure of the HTML elements: - -
          Main content
          Content goes here
          @@ -125,7 +123,7 @@ To render the Sidebar, refer to the following structure of the HTML elements: {% endhighlight %} {% endtabs %} -* Import the Sidebar component to your `app.ts` file, and initialize it to the `#default` as follows: +* Import the Sidebar control to your `app.ts` file, and initialize it to the `#default` as follows: `[src/app/app.ts]` @@ -133,12 +131,9 @@ To render the Sidebar, refer to the following structure of the HTML elements: {% highlight ts tabtitle="app.ts" %} import { Sidebar } from '@syncfusion/ej2-navigations'; -import { enableRipple } from '@syncfusion/ej2-base'; -enableRipple(true); let defaultSidebar: Sidebar = new Sidebar(); defaultSidebar.appendTo('#default'); - //end of sidebar initialization {% endhighlight %} {% endtabs %} @@ -163,6 +158,9 @@ npm start {% highlight html tabtitle="index.html" %} {% include code-snippet/sidebar/default-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="styles.css" %} +{% include code-snippet/sidebar/default-cs1/styles.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/sidebar/default-cs1" %} @@ -171,11 +169,11 @@ npm start ## Enable backdrop -Enabling the [`showBackdrop`](../api/sidebar/#showbackdrop) in the Sidebar component will prevent the main content from user interactions, when it is in expanded state. Here, the DOM elements will not get changed. It only closes the main content by covering with a black backdrop overlay and focuses the Sidebar in the screen. Sidebar can be rendered with specific width by setting `width` property. +Enabling the [`showBackdrop`](../api/sidebar/#showbackdrop) in the Sidebar control will prevent the main content from user interactions, when it is in expanded state. Here, the DOM elements will not get changed. It only closes the main content by covering with a black backdrop overlay and focuses the Sidebar in the screen. Sidebar can be rendered with specific width by setting `width` property. N> To achieve a proper **backdrop**, we suggest that you create a wrapper parent container for the div block in which you intend to enable the backdrop. Set the class name of this parent container as the **target** for the Sidebar. Alternatively, you can place an empty div container after the target container. -The following example shows a Sidebar component with enabled backdrop. +The following example shows a Sidebar control with enabled backdrop. {% tabs %} {% highlight ts tabtitle="index.ts" %} @@ -184,13 +182,16 @@ The following example shows a Sidebar component with enabled backdrop. {% highlight html tabtitle="index.html" %} {% include code-snippet/sidebar/sidebar-howTo-cs3/index.html %} {% endhighlight %} +{% highlight css tabtitle="styles.css" %} +{% include code-snippet/sidebar/sidebar-howTo-cs3/styles.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/sidebar/sidebar-howTo-cs3" %} ## Position -Positioning the Sidebar to the right or left of the main content can be achieved by using the [`position`](../api/sidebar/#position) property. If the position is not set, the Sidebar will expand from the left to the body element. `enablePersistence` will persist the component's state between page reloads. `change` event will be triggered when the state(expand/collapse) of the component is changed. +Positioning the Sidebar to the right or left of the main content can be achieved by using the [`position`](../api/sidebar/#position) property. If the position is not set, the Sidebar will expand from the left to the body element. [`enablePersistence`](../api/sidebar/#enablepersistence) will persist the control's state between page reloads. [`change`](../api/sidebar/#change) event will be triggered when the state(expand/collapse) of the control is changed. In the following sample, the position of the Sidebar can be changed using the radio buttons in the main content. @@ -201,13 +202,16 @@ In the following sample, the position of the Sidebar can be changed using the ra {% highlight html tabtitle="index.html" %} {% include code-snippet/sidebar/position-cs3/index.html %} {% endhighlight %} +{% highlight css tabtitle="styles.css" %} +{% include code-snippet/sidebar/position-cs3/styles.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/sidebar/position-cs3" %} ## Animate -Animation transitions can be set while expanding or collapsing the Sidebar using the `animate` property. By default , `animate` property is set to true. `enableRTL` will display the sidebar in the right-to-left direction. +Animation transitions can be set while expanding or collapsing the Sidebar using the [`animate`](../api/sidebar/#animate) property. By default , `animate` property is set to true. {% tabs %} {% highlight ts tabtitle="index.ts" %} @@ -216,13 +220,16 @@ Animation transitions can be set while expanding or collapsing the Sidebar using {% highlight html tabtitle="index.html" %} {% include code-snippet/sidebar/animate-cs2/index.html %} {% endhighlight %} +{% highlight css tabtitle="styles.css" %} +{% include code-snippet/sidebar/animate-cs2/styles.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/sidebar/animate-cs2" %} ## Close on document click -Sidebar can be closed on document click by setting `closeOnDocumentClick` to true. If this property is not set, the Sidebar will not close on document click since its default value is false. Sidebar can be kept opened during rendering using `isOpen` property. +Sidebar can be closed on document click by setting [`closeOnDocumentClick`](../api/sidebar/#closeondocumentclick) to true. If this property is not set, the Sidebar will not close on document click since its default value is false. Sidebar can be kept opened during rendering using [`isOpen`](../api/sidebar/#isopen) property. {% tabs %} {% highlight ts tabtitle="index.ts" %} @@ -231,13 +238,16 @@ Sidebar can be closed on document click by setting `closeOnDocumentClick` to tru {% highlight html tabtitle="index.html" %} {% include code-snippet/sidebar/document-click-cs2/index.html %} {% endhighlight %} +{% highlight css tabtitle="styles.css" %} +{% include code-snippet/sidebar/document-click-cs2/styles.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/sidebar/document-click-cs2" %} ## Enable gestures -Expand or collapse the Sidebar while swiping in touch devices using `enableGestures` property. By default, `enableGestures` is set to true. +Expand or collapse the Sidebar while swiping in touch devices using [`enableGestures`](../api/sidebar/#enablegestures) property. By default, `enableGestures` is set to true. {% tabs %} {% highlight ts tabtitle="index.ts" %} @@ -246,6 +256,9 @@ Expand or collapse the Sidebar while swiping in touch devices using `enableGestu {% highlight html tabtitle="index.html" %} {% include code-snippet/sidebar/gestures-cs2/index.html %} {% endhighlight %} +{% highlight css tabtitle="styles.css" %} +{% include code-snippet/sidebar/gestures-cs2/styles.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/sidebar/gestures-cs2" %} @@ -255,4 +268,4 @@ Expand or collapse the Sidebar while swiping in touch devices using `enableGestu * [Sidebar with navigation menu](https://ej2.syncfusion.com/demos/#/material/sidebar/sidebar-menu.html) * [Sidebar responsive panel](https://ej2.syncfusion.com/demos/#/material/sidebar/responsive-panel.html) * [Sidebar with listView](./how-to/sidebar-with-list-view/) -* [Usecase sample](https://ej2.syncfusion.com/showcase/typescript/webmail/#/home) +* [Use case sample](https://ej2.syncfusion.com/showcase/typescript/webmail/#/home) diff --git a/ej2-javascript/sidebar/variations.md b/ej2-javascript/sidebar/variations.md index 12d346380..701766efc 100644 --- a/ej2-javascript/sidebar/variations.md +++ b/ej2-javascript/sidebar/variations.md @@ -1,30 +1,30 @@ --- layout: post -title: Variations in ##Platform_Name## Sidebar control | Syncfusion -description: Learn here all about Variations in Syncfusion ##Platform_Name## Sidebar control of Syncfusion Essential JS 2 and more. +title: Types in ##Platform_Name## Sidebar control | Syncfusion +description: Learn here all about Types in Syncfusion ##Platform_Name## Sidebar control of Syncfusion Essential JS 2 and more. platform: ej2-javascript -control: Variations +control: Types publishingplatform: ##Platform_Name## documentation: ug domainurl: ##DomainURL## --- -# Variations in ##Platform_Name## Sidebar control +# Types in ##Platform_Name## Sidebar control -The Sidebar component's expand behaviour can be modified based on the purpose of use. +The Sidebar control's expand behavior can be modified based on its intended use. ## Expanding types of Sidebar -The Sidebar can be set to initialize based on four different types that are consistent with the main component as explained below. When `dataBind` is invoked, this applies the pending property changes immediately to the component. +The Sidebar can be initialized with one of four different types, each consistent with the main control, as explained below. When `dataBind` is invoked, it applies any pending property changes immediately to the control. | Item | Description | |-----|-----| -| `Over` | Sidebar floats over the main content area.| -| `Push` | Sidebar pushes the main content area to appear side-by-side, and shrinks the main content within the screen width.| -| `Slide` |Sidebar translates the x and y positions of main content area based on the Sidebar width. The main content area will not be adjusted within the screen width. | -| `Auto` | Sidebar with `Over` type in mobile resolution, and `Push` type in other higher resolutions. | +| `Over` | Sidebar floats over the main content area. | +| `Push` | Sidebar pushes the main content area to appear side-by-side, and shrinks the main content within the screen width. | +| `Slide` | Sidebar translates the x and y positions of the main content area based on the Sidebar width. The main content area will not be adjusted within the screen width. | +| `Auto` | Sidebar has the `Over` type in mobile resolution, and `Push` type in other higher resolutions. | -> `Auto` is the default expand mode. Sidebar with type `Auto` will always expand on initial rendering, irrespective of [`enableDock`](../api/sidebar/#enabledock) and [`isOpen`](../api/sidebar/#isopen) properties. +> `Auto` is the default expand mode. The Sidebar with type `Auto` will always expand on initial rendering, irrespective of [`enableDock`](../api/sidebar/#enabledock) and [`isOpen`](../api/sidebar/#isopen) properties. In the following sample, the types of Sidebar are demonstrated. @@ -37,12 +37,14 @@ In the following sample, the types of Sidebar are demonstrated. {% highlight html tabtitle="index.html" %} {% include code-snippet/sidebar/types-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="styles.css" %} +{% include code-snippet/sidebar/types-cs1/styles.css %} +{% endhighlight %} {% endtabs %} - + {% previewsample "page.domainurl/code-snippet/sidebar/types-cs1" %} {% elsif page.publishingplatform == "javascript" %} - {% tabs %} {% highlight js tabtitle="index.js" %} {% include code-snippet/sidebar/types-cs1/index.js %} @@ -50,6 +52,9 @@ In the following sample, the types of Sidebar are demonstrated. {% highlight html tabtitle="index.html" %} {% include code-snippet/sidebar/types-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="styles.css" %} +{% include code-snippet/sidebar/types-cs1/styles.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/sidebar/types-cs1" %} @@ -57,5 +62,5 @@ In the following sample, the types of Sidebar are demonstrated. ## See Also -* [How to add sidebar with custom animation](./how-to/sidebar-with-variation-animation) -* [How to add multiple sidebar](./how-to/multiple-sidebar) +* [How to add Sidebar with custom animation](./how-to/sidebar-with-variation-animation) +* [How to add multiple Sidebar](./how-to/multiple-sidebar) diff --git a/ej2-javascript/spreadsheet/cell-range.md b/ej2-javascript/spreadsheet/cell-range.md index 27ecfaeee..129ccadb4 100644 --- a/ej2-javascript/spreadsheet/cell-range.md +++ b/ej2-javascript/spreadsheet/cell-range.md @@ -256,6 +256,58 @@ You can clear the highlighted invalid data by using the following ways, {% previewsample "page.domainurl/code-snippet/spreadsheet/data-validation-cs1" %} {% endif %} +### Custom Data validation + +The Spreadsheet supports custom data validation, allowing users to define their own validation rules for specific cells or ranges. This feature enables you to set conditions that the entered data must meet, making it particularly useful when predefined validation options, such as numbers, dates, or lists, are insufficient. + +With custom validation, you can enforce rules using logical expressions or formulas, ensuring that only valid data is entered into the Spreadsheet. + +For example, consider a scenario where you want to ensure that a cell contains a number between 10 and 100. To achieve this, define a validation rule using a formula that checks if the entered value is greater than 10 and less than 100. The formula for this validation is =AND(A1>10, A1<100), where A1 refers to the cell being validated. + +When this rule is applied, the Spreadsheet evaluates the entered value against the formula. If a user enters a value outside the specified range, an alert notifies them of the invalid input. This helps users correct errors efficiently and ensures that only desired values are accepted. + +You can apply custom data validation using two methods. + +* The first is through the Data Validation dialog in the Ribbon toolbar. Navigate to the Data tab, select the Data Validation option, and choose the Custom type from the Allow dropdown menu. +{% if page.publishingplatform == "typescript" %} + +* The second method is programmatically, using the [`addDataValidation()`](https://ej2.syncfusion.com/documentation/api/spreadsheet/#adddatavalidation) method, which allows developers to set custom rules dynamically via code. + +{% elsif page.publishingplatform == "javascript" %} + +* The second method is programmatically, using the [`addDataValidation()`](https://ej2.syncfusion.com/javascript/documentation/api/spreadsheet/#adddatavalidation) method, which allows developers to set custom rules dynamically via code. + +{% endif %} + +The following code example demonstrates how to add custom data validation with a formula in a Spreadsheet. + +{% if page.publishingplatform == "typescript" %} + +{% tabs %} +{% highlight ts tabtitle="index.ts" %} +{% include code-snippet/spreadsheet/data-validation-cs3/index.ts %} +{% endhighlight %} +{% highlight html tabtitle="index.html" %} +{% include code-snippet/spreadsheet/data-validation-cs3/index.html %} +{% endhighlight %} +{% endtabs %} + +{% previewsample "page.domainurl/code-snippet/spreadsheet/data-validation-cs3" %} + +{% elsif page.publishingplatform == "javascript" %} + +{% tabs %} +{% highlight js tabtitle="index.js" %} +{% include code-snippet/spreadsheet/data-validation-cs3/index.js %} +{% endhighlight %} +{% highlight html tabtitle="index.html" %} +{% include code-snippet/spreadsheet/data-validation-cs3/index.html %} +{% endhighlight %} +{% endtabs %} + +{% previewsample "page.domainurl/code-snippet/spreadsheet/data-validation-cs3" %} +{% endif %} + ### Limitations of Data validation The following features have some limitations in Data Validation: diff --git a/ej2-javascript/spreadsheet/formulas.md b/ej2-javascript/spreadsheet/formulas.md index 36872b494..6e535050a 100644 --- a/ej2-javascript/spreadsheet/formulas.md +++ b/ej2-javascript/spreadsheet/formulas.md @@ -215,6 +215,104 @@ The following code example shows the usage of named ranges support. {% previewsample "page.domainurl/code-snippet/spreadsheet/defined-name-cs1" %} {% endif %} +## Calculation Mode + +The Spreadsheet provides a `Calculation Mode` feature like the calculation options in online Excel. This feature allows you to control when and how formulas are recalculated in the spreadsheet. The available modes are: + +* `Automatic`: Formulas are recalculated instantly whenever a change occurs in the dependent cells. +* `Manual`: Formulas are recalculated only when triggered explicitly by the user using options like `Calculate Sheet` or `Calculate Workbook`. + +{% if page.publishingplatform == "typescript" %} + +You can configure the calculate mode using the [`calculationMode`](https://ej2.syncfusion.com/documentation/api/spreadsheet/#calculationmode) property of the Spreadsheet. These modes offer flexibility to balance real-time updates and performance optimization. + +{% elsif page.publishingplatform == "javascript" %} + +You can configure the calculate mode using the [`calculationMode`](https://ej2.syncfusion.com/javascript/documentation/api/spreadsheet/#calculationmode) property of the Spreadsheet. These modes offer flexibility to balance real-time updates and performance optimization. + +{% endif %} + +### Automatic Mode + +In Automatic Mode, formulas are recalculated instantly whenever a dependent cell is modified. This mode is perfect for scenarios where real-time updates are essential, ensuring that users see the latest results without additional actions. + +{% if page.publishingplatform == "typescript" %} + +For example, consider a spreadsheet where cell `C1` contains the formula `=A1+B1`. When the value in `A1` or `B1` changes, `C1` updates immediately without requiring any user intervention. You can enable this mode by setting the [`calculationMode`](https://ej2.syncfusion.com/documentation/api/spreadsheet/#calculationmode) property to `Automatic`. + +{% elsif page.publishingplatform == "javascript" %} + +For example, consider a spreadsheet where cell `C1` contains the formula `=A1+B1`. When the value in `A1` or `B1` changes, `C1` updates immediately without requiring any user intervention. You can enable this mode by setting the [`calculationMode`](https://ej2.syncfusion.com/javascript/documentation/api/spreadsheet/#calculationmode) property to `Automatic`. + +{% endif %} + +The following code example demonstrates how to set the Automatic calculation mode in a Spreadsheet. + +{% if page.publishingplatform == "typescript" %} + + {% tabs %} +{% highlight ts tabtitle="index.ts" %} +{% include code-snippet/spreadsheet/calculation-cs1/index.ts %} +{% endhighlight %} +{% highlight html tabtitle="index.html" %} +{% include code-snippet/spreadsheet/calculation-cs1/index.html %} +{% endhighlight %} +{% endtabs %} + +{% previewsample "page.domainurl/code-snippet/spreadsheet/calculation-cs1" %} + +{% elsif page.publishingplatform == "javascript" %} + +{% tabs %} +{% highlight js tabtitle="index.js" %} +{% include code-snippet/spreadsheet/calculation-cs1/index.js %} +{% endhighlight %} +{% highlight html tabtitle="index.html" %} +{% include code-snippet/spreadsheet/calculation-cs1/index.html %} +{% endhighlight %} +{% endtabs %} + +{% previewsample "page.domainurl/code-snippet/spreadsheet/calculation-cs1" %} +{% endif %} + +### Manual Mode + +In Manual Mode, formulas are not recalculated automatically when cell values are modified. Instead, recalculations must be triggered explicitly. This mode is ideal for scenarios where performance optimization is a priority, such as working with large datasets or computationally intensive formulas. + +For example, imagine a spreadsheet where cell `C1` contains the formula `=A1+B1`. When the value in `A1` or `B1` changes, the value in `C1` will not update automatically. Instead, the recalculation must be initiated manually using either the `Calculate Sheet` or `Calculate Workbook` option. To manually initiate recalculation, the Spreadsheet provides two options: + +* `Calculate Sheet`: Recalculates formulas for the active sheet only. +* `Calculate Workbook`: Recalculates formulas across all sheets in the workbook. + +The following code example demonstrates how to set the Manual calculation mode in a Spreadsheet. + +{% if page.publishingplatform == "typescript" %} + + {% tabs %} +{% highlight ts tabtitle="index.ts" %} +{% include code-snippet/spreadsheet/calculation-cs2/index.ts %} +{% endhighlight %} +{% highlight html tabtitle="index.html" %} +{% include code-snippet/spreadsheet/calculation-cs2/index.html %} +{% endhighlight %} +{% endtabs %} + +{% previewsample "page.domainurl/code-snippet/spreadsheet/calculation-cs2" %} + +{% elsif page.publishingplatform == "javascript" %} + +{% tabs %} +{% highlight js tabtitle="index.js" %} +{% include code-snippet/spreadsheet/calculation-cs2/index.js %} +{% endhighlight %} +{% highlight html tabtitle="index.html" %} +{% include code-snippet/spreadsheet/calculation-cs2/index.html %} +{% endhighlight %} +{% endtabs %} + +{% previewsample "page.domainurl/code-snippet/spreadsheet/calculation-cs2" %} +{% endif %} + ## Supported Formulas The following are the list of formulas supported in spreadsheet, diff --git a/ej2-javascript/spreadsheet/js/getting-started.md b/ej2-javascript/spreadsheet/js/getting-started.md index 57e057de6..c952041d3 100644 --- a/ej2-javascript/spreadsheet/js/getting-started.md +++ b/ej2-javascript/spreadsheet/js/getting-started.md @@ -118,9 +118,9 @@ Refer to the Spreadsheet's CDN links as follows. **Syntax:** -> Script: `https://cdn.syncfusion.com/ej2/{PACKAGE_NAME}/dist/global/{PACKAGE_NAME}.min.js` +> Script: `https://cdn.syncfusion.com/ej2/{RELEASE_VERSION}/{PACKAGE_NAME}/dist/global/{PACKAGE_NAME}.min.js` > -> Styles: `https://cdn.syncfusion.com/ej2/{PACKAGE_NAME}/styles/material.css` +> Styles: `https://cdn.syncfusion.com/ej2/{RELEASE_VERSION}/{PACKAGE_NAME}/styles/material.css` **Example:** @@ -136,47 +136,47 @@ The following HTML code example shows the minimal dependency of Spreadsheet. Essential JS 2 Spreadsheet - - - - - - - - - + + + + + + + + + - + - - + - - - + - - - + + - - - + - - - - - + - - @@ -194,49 +194,49 @@ Now, you can start adding Spreadsheet control in the application. For getting st Essential JS 2 Spreadsheet - - - - - - - - - + + + + + + + + + - + - - + - - - - - - + + - - - - - - - - + - - diff --git a/ej2-javascript/spreadsheet/open-save.md b/ej2-javascript/spreadsheet/open-save.md index 65dbb5bd3..e52e5f202 100644 --- a/ej2-javascript/spreadsheet/open-save.md +++ b/ej2-javascript/spreadsheet/open-save.md @@ -557,6 +557,98 @@ The following code snippet demonstrates how to configure the deserialization opt {% previewsample "page.domainurl/code-snippet/spreadsheet/open-from-json" %} {% endif %} +### Chunk response processing + +When opening large Excel files with many features and data, the server response can become very large. This might cause memory issues or connection problems during data transmission. The `Chunk Response Processing` feature solves this by dividing the server response into smaller parts, called chunks, and sending them to the client in parallel. The client receives these chunks and combines them to load the Excel data smoothly into the spreadsheet. + +{% if page.publishingplatform == "typescript" %} + +You can enable this feature by setting the [`chunkSize`](https://ej2.syncfusion.com/documentation/api/spreadsheet/openSettings/#chunksize) property in the [`openSettings`](https://ej2.syncfusion.com/documentation/api/spreadsheet/#opensettings) object. Set the [`chunkSize`](https://ej2.syncfusion.com/documentation/api/spreadsheet/openSettings/#chunksize) to a value greater than 0 (in bytes). The [`chunkSize`](https://ej2.syncfusion.com/documentation/api/spreadsheet/openSettings/#chunksize) defines how large each chunk will be. Make sure your server supports chunked responses to use this feature effectively. + +{% elsif page.publishingplatform == "javascript" %} + +You can enable this feature by setting the [`chunkSize`](https://ej2.syncfusion.com/javascript/documentation/api/spreadsheet/openSettings/#chunksize) property in the [`openSettings`](https://ej2.syncfusion.com/javascript/documentation/api/spreadsheet/#opensettings) object. Set the [`chunkSize`](https://ej2.syncfusion.com/javascript/documentation/api/spreadsheet/openSettings/#chunksize) to a value greater than 0 (in bytes). The [`chunkSize`](https://ej2.syncfusion.com/javascript/documentation/api/spreadsheet/openSettings/#chunksize) defines how large each chunk will be. Make sure your server supports chunked responses to use this feature effectively. + +{% endif %} + +> This feature reduces memory usage on both the server and client, ensuring that resources are managed efficiently during data transmission. By sending smaller parts of data, it prevents connection issues that could occur with large payloads, making the transmission process more reliable. Additionally, it allows large Excel files to be loaded smoothly into the spreadsheet, providing a seamless user experience even with extensive data. + +The following code example demonstrates the client-side and server-side configuration required for handling chunk-based responses when opening an Excel file. + +**Client Side**: + +{% if page.publishingplatform == "typescript" %} + +```typescript +import { Spreadsheet } from '@syncfusion/ej2-spreadsheet'; + +const spreadsheet: Spreadsheet = new Spreadsheet({ + openSettings: { + // Specifies the size (in bytes) of each chunk for the server response when opening a document. + chunkSize: 1000000, + // Specifies the number of retry attempts for a failed server request when returning the opened file responses in chunks. + // This ensures reliable handling of temporary network or server disruptions during the chunked response process. + retryCount: 3, + // Specifies the delay (in milliseconds) before retrying a failed server request when returning the opened file responses in chunks. + // This ensures controlled retries in case of temporary network or server disruptions during the chunked response process. + retryAfterDelay: 500 + }, + openUrl: 'https://localhost:{port number}/Home/Open' +}); + +spreadsheet.appendTo('#spreadsheet'); +``` + +{% elsif page.publishingplatform == "javascript" %} + +```javascript +const spreadsheet = new ej.spreadsheet.Spreadsheet({ + openSettings: { + // Specifies the size (in bytes) of each chunk for the server response when opening a document. + chunkSize: 1000000, + // Specifies the number of retry attempts for a failed server request when returning the opened file responses in chunks. + // This ensures reliable handling of temporary network or server disruptions during the chunked response process. + retryCount: 3, + // Specifies the delay (in milliseconds) before retrying a failed server request when returning the opened file responses in chunks. + // This ensures controlled retries in case of temporary network or server disruptions during the chunked response process. + retryAfterDelay: 500 + }, + openUrl: 'https://localhost:{port number}/Home/Open' +}); + +spreadsheet.appendTo('#spreadsheet'); +``` + +{% endif %} + +**Server Endpoint**: + +```csharp +public IActionResult Open(IFormCollection openRequest) +{ + OpenRequest open = new OpenRequest(); + if (openRequest.Files.Count > 0) + { + open.File = openRequest.Files[0]; + } + Microsoft.Extensions.Primitives.StringValues chunkPayload; + if (openRequest.TryGetValue("chunkPayload", out chunkPayload)) + { + // The chunk payload JSON data includes information essential for processing chunked responses. + open.ChunkPayload = chunkPayload; + } + var result = Workbook.Open(open, 150); + return Content(result); +} +``` + +The [attachment](https://www.syncfusion.com/downloads/support/directtrac/general/ze/WebApplication1_7-101537213) includes the server endpoint code for handling chunk-based open processing. After launching the server endpoint, update the `openUrl` property of the spreadsheet in the client-side sample with the server URL, as shown below. + +```js + // Specifies the service URL for processing the Excel file, converting it into a format suitable for loading in the spreadsheet. + openUrl: 'https://localhost:{port number}/Home/Open' +``` + ### Add custom header during open {% if page.publishingplatform == "typescript" %} @@ -1259,6 +1351,9 @@ To save the Spreadsheet document as an `xlsx, xls, csv, or pdf` file, by using [ {% elsif page.publishingplatform == "javascript" %} {% tabs %} +{% highlight js tabtitle="index.js" %} +{% include code-snippet/spreadsheet/save-cs1/index.js %} +{% endhighlight %} {% highlight html tabtitle="index.html" %} {% include code-snippet/spreadsheet/save-cs1/index.html %} {% endhighlight %} diff --git a/ej2-javascript/spreadsheet/ts/getting-started.md b/ej2-javascript/spreadsheet/ts/getting-started.md index 7b01ad2c7..151817536 100644 --- a/ej2-javascript/spreadsheet/ts/getting-started.md +++ b/ej2-javascript/spreadsheet/ts/getting-started.md @@ -11,13 +11,13 @@ domainurl: ##DomainURL## # Getting started in ##Platform_Name## Spreadsheet control -This section explains the steps to create a simple Spreadsheet control using Essential JS 2 [quickstart](https://github.com/SyncfusionExamples/ej2-quickstart-webpack-) seed repository. +This section explains the steps to create a simple Spreadsheet component using Essential JS 2 [quickstart](https://github.com/SyncfusionExamples/ej2-quickstart-webpack-) seed repository. > This application is integrated with the `webpack.config.js` configuration and uses the latest version of the [webpack-cli](https://webpack.js.org/api/cli/#commands). It requires node `v14.15.0` or higher. For more information about webpack and its features, refer to the [webpack documentation](https://webpack.js.org/guides/getting-started/). ## Dependencies -The following list of dependencies are required to use the Spreadsheet control in your application: +The following list of dependencies are required to use the Spreadsheet component in your application: ```js |-- @syncfusion/ej2-spreadsheet @@ -80,7 +80,7 @@ The quickstart application is preconfigured to use the `Material` theme in the ` > You can check out the [themes](https://ej2.syncfusion.com/documentation/appearance/theme/) section to know more about built-in themes and CSS reference for individual controls. -## Add Spreadsheet control +## Add Spreadsheet component Add the HTML `div` element with ID attribute as `element` in your `index.html` file. @@ -109,7 +109,7 @@ Add the HTML `div` element with ID attribute as `element` in your `index.html` f {% endhighlight %} {% endtabs %} -Now, import the Spreadsheet control into your `app.ts` to instantiate a spreadsheet and append the spreadsheet instance to the `#element`. +Now, import the Spreadsheet component into your `app.ts` to instantiate a spreadsheet and append the spreadsheet instance to the `#element`. `[src/app/app.ts]` @@ -118,7 +118,7 @@ Now, import the Spreadsheet control into your `app.ts` to instantiate a spreadsh import { Spreadsheet } from '@syncfusion/ej2-spreadsheet'; -// Initialize Spreadsheet control +// Initialize Spreadsheet component let spreadsheet: Spreadsheet = new Spreadsheet(); // Render initialized Spreadsheet @@ -139,7 +139,7 @@ npm start {% endhighlight %} {% endtabs %} -The following example shows a basic Spreadsheet control. +The following example shows a basic Spreadsheet component. {% tabs %} {% highlight ts tabtitle="index.ts" %} diff --git a/ej2-javascript/stock-chart/cross-hair.md b/ej2-javascript/stock-chart/cross-hair.md index 03e34b40a..0f89a43f9 100644 --- a/ej2-javascript/stock-chart/cross-hair.md +++ b/ej2-javascript/stock-chart/cross-hair.md @@ -17,7 +17,7 @@ Crosshair lines can be enabled by using [`enable`](../api/chart/crosshairSettin {% if page.publishingplatform == "typescript" %} - {% tabs %} +{% tabs %} {% highlight ts tabtitle="index.ts" %} {% include code-snippet/stock-chart/getting-started-cs12/index.ts %} {% endhighlight %} @@ -48,7 +48,7 @@ Tooltip label for an axis can be enabled by using [`enable`](../api/chart/cross {% if page.publishingplatform == "typescript" %} - {% tabs %} +{% tabs %} {% highlight ts tabtitle="index.ts" %} {% include code-snippet/stock-chart/getting-started-cs13/index.ts %} {% endhighlight %} @@ -79,7 +79,7 @@ The [`fill`](../api/chart/crosshairTooltipModel/#fill) and [`textStyle`](../api/ {% if page.publishingplatform == "typescript" %} - {% tabs %} +{% tabs %} {% highlight ts tabtitle="index.ts" %} {% include code-snippet/stock-chart/getting-started-cs14/index.ts %} {% endhighlight %} @@ -106,11 +106,11 @@ The [`fill`](../api/chart/crosshairTooltipModel/#fill) and [`textStyle`](../api/ **Snap to data** -Enabling the `snapToData` property in the crosshair aligns it with the nearest data point instead of following the exact mouse position. +Enabling the [`snapToData`](../api/chart/crosshairSettingsModel/#snaptodata) property in the crosshair aligns it with the nearest data point instead of following the exact mouse position. {% if page.publishingplatform == "typescript" %} - {% tabs %} +{% tabs %} {% highlight ts tabtitle="index.ts" %} {% include code-snippet/stock-chart/getting-started-cs39/index.ts %} {% endhighlight %} diff --git a/ej2-javascript/switch/how-to/prevent-state-change.md b/ej2-javascript/switch/how-to/prevent-state-change.md new file mode 100644 index 000000000..875547d3d --- /dev/null +++ b/ej2-javascript/switch/how-to/prevent-state-change.md @@ -0,0 +1,47 @@ +--- +layout: post +title: Prevent State Change in ##Platform_Name## Switch control | Syncfusion +description: Learn here all about Prevent State Change in Syncfusion ##Platform_Name## Switch control of Syncfusion Essential JS 2 and more. +platform: ej2-javascript +control: Prevent State Change +publishingplatform: ##Platform_Name## +documentation: ug +domainurl: ##DomainURL## +--- + +# Prevent State Change in ##Platform_Name## Switch control + +The [beforeChange](../../api/switch/#beforechange) event is triggered before the switch's state is altered. This event provides an opportunity to intercept and potentially cancel the change action before it is applied. It allows for implementing conditional logic or validating the change prior to it being rendered on the UI. + +{% if page.publishingplatform == "typescript" %} + +{% tabs %} +{% highlight ts tabtitle="index.ts" %} +{% include code-snippet/switch/before-change-cs1/index.ts %} +{% endhighlight %} +{% highlight html tabtitle="index.html" %} +{% include code-snippet/switch/before-change-cs1/index.html %} +{% endhighlight %} +{% highlight css tabtitle="styles.css" %} +{% include code-snippet/switch/before-change-cs1/styles.css %} +{% endhighlight %} +{% endtabs %} + +{% previewsample "page.domainurl/code-snippet/switch/before-change-cs1" %} + +{% elsif page.publishingplatform == "javascript" %} + +{% tabs %} +{% highlight js tabtitle="index.js" %} +{% include code-snippet/switch/before-change-cs1/index.js %} +{% endhighlight %} +{% highlight html tabtitle="index.html" %} +{% include code-snippet/switch/before-change-cs1/index.html %} +{% endhighlight %} +{% highlight css tabtitle="styles.css" %} +{% include code-snippet/switch/before-change-cs1/styles.css %} +{% endhighlight %} +{% endtabs %} + +{% previewsample "page.domainurl/code-snippet/switch/before-change-cs1" %} +{% endif %} \ No newline at end of file diff --git a/ej2-javascript/tab/adaptive.md b/ej2-javascript/tab/adaptive.md index 5ab87647b..78083dfe7 100644 --- a/ej2-javascript/tab/adaptive.md +++ b/ej2-javascript/tab/adaptive.md @@ -11,19 +11,21 @@ domainurl: ##DomainURL## # Adaptive in ##Platform_Name## Tab control -The following section explains about rendering Tab when its width exceeds the viewable area or particularly in a given [`width`](../api/tab#width). The available modes are as follows: +The following section explains how to render the Tab when its width exceeds the viewable area, or for a specified [`width`](../api/tab#width). The available modes are as follows: * Scrollable * Popup +* MultiRow +* Extended ## Scrollable -The default overflow mode is Scrollable. Scrollable display mode supports displaying the Tab header items in a single line with horizontal scrolling enabled, when the item overflows to the available space. +The default [`overflowMode`](../api/tab#overflowmode) is Scrollable. The Scrollable display mode supports displaying the Tab header items in a single line with horizontal scrolling enabled when the items overflow the available space. -* The right and left navigation arrow is added at the start and end of the Tab header through which user can navigate towards overflowed items of the Tab header. -* You can also see the overflowed items using touch and swipe action on the header and content section. -* By default, navigation icon in the left direction is disabled, you can see the overflowed items by moving in the right direction. -* By clicking the arrow or by holding the arrow continuously, you can see the overflowed items. +* The right and left navigation arrows are added at the start and end of the Tab header, allowing the user to navigate towards overflowed items in the Tab header. +* You can also view the overflowed items using touch and swipe actions on the header and content section. +* By default, the navigation icon in the left direction is disabled, but you can view the overflowed items by moving in the right direction. +* By clicking or holding the arrow continuously, you can view the overflowed items. ![Scrollable tab](./images/tabscroll.gif) @@ -60,11 +62,10 @@ The default overflow mode is Scrollable. Scrollable display mode supports displa ## Popup -The Popup is the another type of [`overflowMode`](../api/tab#overflowmode) in which the Tab container holds the items that can be placed within the available space. The rest of the overflowing items for which there is no space to fit within the viewing area are moved to overflow popup container. +The Popup is another type of [`overflowMode`](../api/tab#overflowmode) in which the Tab container holds items that can be accommodated within the available space. The rest of the overflowing items, for which there is no space to fit within the viewing area, are moved to an overflow popup container. -* The items placed in popup can be viewed by opening the popup with the help of drop-down icon given at the end of the Tab header. - -* If the popup height exceeds the height of the visible area, you can scroll through the popup items and select one. +* The items placed in the popup can be viewed by opening the popup using the drop-down icon at the end of the Tab header. +* If the popup height exceeds the visible area height, you can scroll through the popup items and select one. ![Tab with popup](./images/popup.gif) @@ -95,6 +96,79 @@ The Popup is the another type of [`overflowMode`](../api/tab#overflowmode) in wh {% previewsample "page.domainurl/code-snippet/tab/adaptive-popup-cs2" %} {% endif %} +## MultiRow + +The `MultiRow` display mode allows the Tabs to wrap the toolbar items to the next line when the available space is exhausted. This mode is ideal for scenarios where space is limited, but all commands need to be visible at once. + +* The Tabs automatically arranges the items into multiple lines without the need for scrolling. +* This ensures that users have immediate access to all Tab items without additional interaction such as scrolling or clicking a popup. + +{% if page.publishingplatform == "typescript" %} + +{% tabs %} +{% highlight ts tabtitle="index.ts" %} +{% include code-snippet/tab/adaptive-multirow/index.ts %} +{% endhighlight %} +{% highlight html tabtitle="index.html" %} +{% include code-snippet/tab/adaptive-multirow/index.html %} +{% endhighlight %} +{% endtabs %} + +{% previewsample "page.domainurl/code-snippet/tab/adaptive-multirow" %} + +{% elsif page.publishingplatform == "javascript" %} + +{% tabs %} +{% highlight js tabtitle="index.js" %} +{% include code-snippet/tab/adaptive-multirow/index.js %} +{% endhighlight %} +{% highlight html tabtitle="index.html" %} +{% include code-snippet/tab/adaptive-multirow/index.html %} +{% endhighlight %} +{% endtabs %} + +{% previewsample "page.domainurl/code-snippet/tab/adaptive-multirow" %} +{% endif %} + +![Tab multirow](./images/tab-multirow.png) + +## Extended + +`Extended` mode hides the overflowing Tab items in a subsequent row. Users can access these items by clicking on expand icons provided at the end of the Tab. + +* In this mode, the Tab maintains a clean top row and allows extra items to be rendered into additional rows. +* Clicking the expand icons will dynamically adjust the Tab to reveal hidden toolbar items. +* If the popup content overflows the height of the page, remaining elements will be hidden. + +{% if page.publishingplatform == "typescript" %} + +{% tabs %} +{% highlight ts tabtitle="index.ts" %} +{% include code-snippet/tab/adaptive-extended/index.ts %} +{% endhighlight %} +{% highlight html tabtitle="index.html" %} +{% include code-snippet/tab/adaptive-extended/index.html %} +{% endhighlight %} +{% endtabs %} + +{% previewsample "page.domainurl/code-snippet/tab/adaptive-extended" %} + +{% elsif page.publishingplatform == "javascript" %} + +{% tabs %} +{% highlight js tabtitle="index.js" %} +{% include code-snippet/tab/adaptive-extended/index.js %} +{% endhighlight %} +{% highlight html tabtitle="index.html" %} +{% include code-snippet/tab/adaptive-extended/index.html %} +{% endhighlight %} +{% endtabs %} + +{% previewsample "page.domainurl/code-snippet/tab/adaptive-extended" %} +{% endif %} + +![Tab extended](./images/tab-extended.gif) + ## See Also * [How to prevent content swipe selection](./how-to/prevent-content-swipe-selection/) diff --git a/ej2-javascript/tab/content-render-modes.md b/ej2-javascript/tab/content-render-modes.md new file mode 100644 index 000000000..2448452fc --- /dev/null +++ b/ej2-javascript/tab/content-render-modes.md @@ -0,0 +1,117 @@ +--- +layout: post +title: Content render modes in ##Platform_Name## Tab control | Syncfusion +description: Learn here all about Content render modes tabs in Syncfusion ##Platform_Name## Tab control of Syncfusion Essential JS 2 and more. +platform: ej2-javascript +control: Content render modes +publishingplatform: ##Platform_Name## +documentation: ug +domainurl: ##DomainURL## +--- + +# Content render modes in ##Platform_Name## Tab control + +Tabs support rendering content based on different scenarios. The content of the tabs can be rendered in three different ways, as outlined below. + +* [On Demand rendering or lazy loading](#on-demand-rendering-or-lazy-loading) +* [Dynamic rendering](#dynamic-rendering) +* [On initial rendering](#on-initial-rendering) + +## On Demand rendering or lazy loading + +This mode is the default, where only the content of the currently selected tab is initially loaded and available in the DOM, with subsequent tab content rendered upon selection. Once a tab's content is loaded, it remains in the DOM. This ensures that the state of the tabs, such as scroller positions, form values, etc., is preserved. + +In the following code example, the Calendar and Scheduler are rendered in the first and second tabs, respectively. Initially, the Scheduler is not available, but it will be rendered once the second tab is selected. Both the Calendar and Scheduler are maintained in the DOM. + +{% if page.publishingplatform == "typescript" %} + +{% tabs %} +{% highlight ts tabtitle="index.ts" %} +{% include code-snippet/tab/load-on-demand-cs1/index.ts %} +{% endhighlight %} +{% highlight html tabtitle="index.html" %} +{% include code-snippet/tab/load-on-demand-cs1/index.html %} +{% endhighlight %} +{% endtabs %} + +{% previewsample "page.domainurl/code-snippet/tab/load-on-demand-cs1" %} + +{% elsif page.publishingplatform == "javascript" %} + +{% tabs %} +{% highlight js tabtitle="index.js" %} +{% include code-snippet/tab/load-on-demand-cs1/index.js %} +{% endhighlight %} +{% highlight html tabtitle="index.html" %} +{% include code-snippet/tab/load-on-demand-cs1/index.html %} +{% endhighlight %} +{% endtabs %} + +{% previewsample "page.domainurl/code-snippet/tab/load-on-demand-cs1" %} +{% endif %} + +## Dynamic rendering + +This mode can be applied to Tabs by setting the [`loadOn`](../api/tab/#loadon) property to `Dynamic`. In this mode, only the content of the currently selected tab is loaded and available in the DOM initially. When a different tab is selected, its content replaces the current content. Since this mode ensures the DOM maintains only the content of the active tab, page loading performance is improved. However, the Tabs do not retain their state, as each time a tab is selected, it loads its content again. + +In the following code example, there are two tabs. The first tab contains a login page, and the second tab contains a Grid component. The Grid component in the second tab will only be rendered in the DOM after the login is completed. Upon successful login, the second tab will replace the first tab in the DOM. + +{% if page.publishingplatform == "typescript" %} + +{% tabs %} +{% highlight ts tabtitle="index.ts" %} +{% include code-snippet/tab/load-on-dynamic-cs1/index.ts %} +{% endhighlight %} +{% highlight html tabtitle="index.html" %} +{% include code-snippet/tab/load-on-dynamic-cs1/index.html %} +{% endhighlight %} +{% endtabs %} + +{% previewsample "page.domainurl/code-snippet/tab/load-on-dynamic-cs1" %} + +{% elsif page.publishingplatform == "javascript" %} + +{% tabs %} +{% highlight js tabtitle="index.js" %} +{% include code-snippet/tab/load-on-dynamic-cs1/index.js %} +{% endhighlight %} +{% highlight html tabtitle="index.html" %} +{% include code-snippet/tab/load-on-dynamic-cs1/index.html %} +{% endhighlight %} +{% endtabs %} + +{% previewsample "page.domainurl/code-snippet/tab/load-on-dynamic-cs1" %} +{% endif %} + +## On initial rendering + +This mode can be applied to Tabs by setting the [`loadOn`](../api/tab/#loadon) property to `Init`. In this mode, the content of all the tabs is rendered on initial load and maintained in the DOM. This mode is ideal when you have a small number of tabs and need to preserve the state of each tab. It also allows you to access the references of components rendered in other tabs. + +In the following example, all three tabs are rendered on the initial load, and the data entered in the first tab will be maintained even when the second or third tab is active. + +{% if page.publishingplatform == "typescript" %} + +{% tabs %} +{% highlight ts tabtitle="index.ts" %} +{% include code-snippet/tab/load-on-init-cs1/index.ts %} +{% endhighlight %} +{% highlight html tabtitle="index.html" %} +{% include code-snippet/tab/load-on-init-cs1/index.html %} +{% endhighlight %} +{% endtabs %} + +{% previewsample "page.domainurl/code-snippet/tab/load-on-init-cs1" %} + +{% elsif page.publishingplatform == "javascript" %} + +{% tabs %} +{% highlight js tabtitle="index.js" %} +{% include code-snippet/tab/load-on-init-cs1/index.js %} +{% endhighlight %} +{% highlight html tabtitle="index.html" %} +{% include code-snippet/tab/load-on-init-cs1/index.html %} +{% endhighlight %} +{% endtabs %} + +{% previewsample "page.domainurl/code-snippet/tab/load-on-init-cs1" %} +{% endif %} diff --git a/ej2-javascript/tab/drag-and-drop.md b/ej2-javascript/tab/drag-and-drop.md index 07adef700..ada44ef26 100644 --- a/ej2-javascript/tab/drag-and-drop.md +++ b/ej2-javascript/tab/drag-and-drop.md @@ -11,13 +11,13 @@ domainurl: ##DomainURL## # Drag and drop in ##Platform_Name## Tab control -The Tab component allows you to drag and drop any item by setting [allowDragAndDrop](../api/tab#allowdraganddrop) to **true**. Items can be reordered to any place by dragging and dropping them onto the desired location. +The Tab component allows you to drag and drop any item by setting [allowDragAndDrop](../api/tab#allowdraganddrop) to **true**. Items can be reordered to any place by dragging and dropping them onto the desired location. -* If you need to prevent dragging action for a particular item, the [`onDragStart`](../api/tab#ondragstart) event can be used which will trigger when the item drag is started. If you need to prevent dropping action for a particular item, the [`dragged`](../api/tab#dragged) event can be used which will trigger when the drag action is stopped. +* To prevent dragging action for a particular item, use the [`onDragStart`](../api/tab#ondragstart) event, which triggers when the item drag is started. To prevent dropping action for a particular item, use the [`dragged`](../api/tab#dragged) event, which triggers when the drag action is stopped. -* The [`dragArea`](../api/tab#dragArea) defines the area in which the draggable element movement will be occurring. Outside that area will be restricted for the draggable element movement. +* The [`dragArea`](../api/tab#dragArea) defines the area in which the draggable element movement will occur. Movement outside that area will be restricted for the draggable element. -* The [`onDragStart`](../api/tab#ondragstart) event will be triggered before dragging the item from Tab. +* The [`onDragStart`](../api/tab#ondragstart) event will be triggered before dragging the item from the Tab. * The [`dragging`](../api/tab#dragging) event will be triggered when the Tab item is being dragged. @@ -27,7 +27,7 @@ In the following sample, the [allowDragAndDrop](../api/tab#allowdraganddrop) pro {% if page.publishingplatform == "typescript" %} - {% tabs %} +{% tabs %} {% highlight ts tabtitle="index.ts" %} {% include code-snippet/tab/drag-and-drop/default-cs1/index.ts %} {% endhighlight %} @@ -54,13 +54,13 @@ In the following sample, the [allowDragAndDrop](../api/tab#allowdraganddrop) pro ## Drag and drop item between tabs -It is possible to drag and drop the tab items between two tabs, by manually saving those dropped items as new tab item data through the `addTab` method of Tab and removing the dragged item through the `removeTab` method of Tab. +It is possible to drag and drop tab items between two tabs by manually saving the dropped items as new tab item data through the [`addTab`](../api/tab#addtab) method and removing the dragged item through the [`removeTab`](../api/tab#removetab) method of the Tab component. -In this example, we have used the tab control as an external source, and the item from the tab component is dragged and dropped onto another Tab. Therefore, it is necessary to use the `onDragStart` and `dragged` event of the Tab component, where we can form an event object and save it using the `addTab` method of the Tab and remove the dragged item through `removeTab` method of Tab using the dragged item index. +In this example, we have used one tab control as an external source, and items from this tab component can be dragged and dropped onto another Tab. We use the [`onDragStart`](../api/tab#ondragstart) and [`dragged`](../api/tab#dragged) events of the Tab component to form an event object, save it using the [`addTab`](../api/tab#addtab) method, and remove the dragged item through the [`removeTab`](../api/tab#removetab) method using the dragged item index. {% if page.publishingplatform == "typescript" %} - {% tabs %} +{% tabs %} {% highlight ts tabtitle="index.ts" %} {% include code-snippet/tab/drag-and-drop/tab-to-tab-cs1/index.ts %} {% endhighlight %} @@ -87,13 +87,13 @@ In this example, we have used the tab control as an external source, and the ite ## Drag and drop items to external source -It is possible to drag and drop the items to any of the external sources from the Tab, by manually saving those dropped items as new node data through the `addNodes` method of Treeview and removing the dragged item through the `removeTab` method of Tab. +It is possible to drag and drop items from the Tab to any external source by manually saving the dropped items as new node data through the [`addNodes`](../api/treeview#addnodes) method of the external component and removing the dragged item through the [`removeTab`](../api/tab#removetab) method of the Tab component. -In this example, we have used the tree view control as an external source, and the item from the tab component is dragged and dropped onto the child nodes of the tree view component. Therefore, it is necessary to use the `dragged` event of the Tab component, where we can form an event object and save it using the `addNodes` method of the Treeview and remove the dragged item through the `removeTab` method of Tab using the dragged item index. +In this example, we have used the TreeView control as an external source. Items from the Tab component can be dragged and dropped onto the child nodes of the TreeView component. We use the `dragged` event of the Tab component to form an event object, save it using the [`addNodes`](../api/treeview#addnodes) method of the TreeView, and remove the dragged item through the [`removeTab`](../api/tab#removetab) method of the Tab using the dragged item index. {% if page.publishingplatform == "typescript" %} - {% tabs %} +{% tabs %} {% highlight ts tabtitle="index.ts" %} {% include code-snippet/tab/drag-and-drop/tab-to-treeview-cs1/index.ts %} {% endhighlight %} @@ -120,13 +120,14 @@ In this example, we have used the tree view control as an external source, and t ## Drag and drop items from external source -It is possible to drag and drop the items from any of the external sources into the Tab, by manually saving those dropped items as new item data through the `addTab` method of Tab and removing the dragged node through the `removeNodes` method of Treeview. +It is possible to drag and drop items from any external source into the Tab by manually saving the dropped items as new item data through the [`addTab`](../api/tab#addtab) method of the Tab component and removing the dragged node through the [`removeNodes`](../api/treeview#removenodes) method of the external component. + +In this example, we have used the TreeView control as an external source. Child nodes from the TreeView component can be dragged and dropped onto the Tab. We use the [`nodeDragStop`](../api/treeview#nodedragstop) event of the TreeView component to form an event object, save it using the [`addTab`](../api/tab#addtab) method of the Tab, and remove the dragged node through the [`removeNodes`](../api/treeview#removenodes) method of the TreeView. -In this example, we have used the tree view control as an external source, and the child nodes from the tree view component are dragged and dropped onto the Tab. Therefore, it is necessary to use the `nodeDragStop` event of the Treeview component, where we can form an event object and save it using the `addTab` method of the Tab and remove the dragged node through the `removeNodes` method of Treeview. {% if page.publishingplatform == "typescript" %} - {% tabs %} +{% tabs %} {% highlight ts tabtitle="index.ts" %} {% include code-snippet/tab/drag-and-drop/treeview-to-tab-cs1/index.ts %} {% endhighlight %} diff --git a/ej2-javascript/tab/header.md b/ej2-javascript/tab/header.md index e9811399f..3a5c90a9a 100644 --- a/ej2-javascript/tab/header.md +++ b/ej2-javascript/tab/header.md @@ -11,13 +11,13 @@ domainurl: ##DomainURL## # Header in ##Platform_Name## Tab control -This section explains about modifying the style of Tab header, and configuring its icons and positions. +This section explains how to modify the style of the Tab header and configure its icons and positions. ## Styles -You can customize header styles by adding predefined classes in the Tab root element. The pre-defined CSS class names are as follows: +You can customize header styles by adding predefined classes to the Tab root element. The pre-defined CSS class names are as follows: -* **e-fill**: The Selected Tab header background is set as solid fill. +* **e-fill**: The selected Tab header background is set as a solid fill. * **e-background**: Tab header has a solid fill background, and the selected header has a highlighted border. * **e-background e-accent**: Tab header has a solid fill background, and the selected header has a highlighted border with accent color. @@ -52,7 +52,7 @@ You can customize header styles by adding predefined classes in the Tab root ele ## Icon positions -You can customize the position of the Tab header icons using the [`iconPosition`](../api/tab/header#iconposition) property. This property depends on the header items [`iconCss`](../api/tab/header#iconcss) property. By default, Tab header icon is placed on left position. The position values are as follows: +You can customize the position of the Tab header icons using the [`iconPosition`](../api/tab/header#iconposition) property. This property depends on the header items' [`iconCss`](../api/tab/header#iconcss) property. By default, the Tab header icon is placed on the left position. The position values are as follows: * **Left**: Icon is placed on the left of the Tab header item. * **Right**: Icon is placed on the right of the Tab header item. diff --git a/ej2-javascript/tab/how-to/add-font-awesome.md b/ej2-javascript/tab/how-to/add-font-awesome.md index 905ddda91..32888ac23 100644 --- a/ej2-javascript/tab/how-to/add-font-awesome.md +++ b/ej2-javascript/tab/how-to/add-font-awesome.md @@ -11,21 +11,21 @@ domainurl: ##DomainURL## # Add font awesome in ##Platform_Name## Tab control -We can customize the Tab component items by using font awesome icons and fonts. +You can customize the Tab component items using Font Awesome icons and fonts. Here's how to do it: -* Need to add font awesome CDN reference link in your sample to use font awesome icons. +1. First, add the Font Awesome CDN reference link to your HTML file: +```html + ``` - +2. Then, use the ['iconCss'](../../api/tab/headerModel/#iconcss) property to add Font Awesome icons to the Tab component. -``` - -You can add the font awesome icons to the Tab component using ['iconCss'](../../api/tab/headerModel/#iconcss) property. The following sample illustrates how to use font awesome in tab component. +The following example demonstrates how to use Font Awesome icons in the Tab component: {% if page.publishingplatform == "typescript" %} - {% tabs %} +{% tabs %} {% highlight ts tabtitle="index.ts" %} {% include code-snippet/tab/add-font-awesome-cs1/index.ts %} {% endhighlight %} diff --git a/ej2-javascript/tab/how-to/add-nested-tabs.md b/ej2-javascript/tab/how-to/add-nested-tabs.md index 1436b0944..d35893f1e 100644 --- a/ej2-javascript/tab/how-to/add-nested-tabs.md +++ b/ej2-javascript/tab/how-to/add-nested-tabs.md @@ -11,17 +11,22 @@ domainurl: ##DomainURL## # Add nested tabs in ##Platform_Name## Tab control -Tab supports to render the nested level of Tabs by using `content` property. You can add the nested Tab element inside the parent Tab `content` property. To render the nested Tab, initialize the component using the id of Tab from a [`selected`](../../api/tab#selected) event handler. +The Tab control supports rendering nested levels of tabs using the [`content`](../../api/tab/tabItemModel/#content) property. You can add nested Tab elements inside the parent Tab's `content` property. To render the nested Tab, initialize the component using the id of the Tab from a [`selected`](../../api/tab#selected) event handler. + +Here's an example of how to create nested tabs: {% if page.publishingplatform == "typescript" %} - {% tabs %} +{% tabs %} {% highlight ts tabtitle="index.ts" %} {% include code-snippet/tab/tab-cs1/index.ts %} {% endhighlight %} {% highlight html tabtitle="index.html" %} {% include code-snippet/tab/tab-cs1/index.html %} {% endhighlight %} +{% highlight html tabtitle="datasource.ts" %} +{% include code-snippet/tab/tab-cs1/datasource.ts %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/tab/tab-cs1" %} diff --git a/ej2-javascript/tab/how-to/create-collapsible-tabs.md b/ej2-javascript/tab/how-to/create-collapsible-tabs.md index 8e9eded20..fdfc54607 100644 --- a/ej2-javascript/tab/how-to/create-collapsible-tabs.md +++ b/ej2-javascript/tab/how-to/create-collapsible-tabs.md @@ -11,14 +11,22 @@ domainurl: ##DomainURL## # Create collapsible tabs in ##Platform_Name## Tab control -You can achieve collapse and expand functionality in Tab by adding/removing a custom CSS class in the click event handler for each tab. -* Define a CSS class to set the style property display as none. Here 'collapse' class is added to the content element for hiding it using [`created`](../../api/tab#created) event. -* Bind the [`selected`](../../api/tab#selected) event for Tab to collapse the initially selected Tab item and bind custom click handler for the Tab headers. -* In the event handler, add and remove 'collapse' class to hide and show the corresponding Tab content. +You can implement collapse and expand functionality in the Tab control by adding and removing a custom CSS class in the click event handler for each tab. Here's how to achieve this: + +1. **Define a CSS class to hide the content:** Create a `collapse` class that sets the `display` property to `none`. Add this class to the content element in the [`created`](../../api/tab#created) event to initially hide it. + +2. **Set up event handlers:** + + - Bind the [`selected`](../../api/tab#selected) event for the Tab to collapse the initially selected Tab item. + - Bind a custom click handler for the Tab headers. + +3. **Implement the collapse/expand functionality:** In the event handler, add and remove the `collapse` class to hide and show the corresponding Tab content. + +Here's an example of how to create collapsible tabs: {% if page.publishingplatform == "typescript" %} - {% tabs %} +{% tabs %} {% highlight ts tabtitle="index.ts" %} {% include code-snippet/tab/collapse-cs1/index.ts %} {% endhighlight %} diff --git a/ej2-javascript/tab/how-to/create-wizard-using-tab.md b/ej2-javascript/tab/how-to/create-wizard-using-tab.md index 9edfaf411..6c5f1313a 100644 --- a/ej2-javascript/tab/how-to/create-wizard-using-tab.md +++ b/ej2-javascript/tab/how-to/create-wizard-using-tab.md @@ -11,9 +11,9 @@ domainurl: ##DomainURL## # Create wizard using tab in ##Platform_Name## Tab control -Tab items can be disabled dynamically by passing the index and boolean value with the [`enableTab`](../../api/tab#enabletab) method and also passing index or HTML element to select an item from the tab using [`select`](../../api/tab#select) method. +Tab items can be disabled dynamically by passing the index and boolean value to the [`enableTab`](../../api/tab#enabletab) method. You can also select an item from the tab by passing its index or HTML element to the [`select`](../../api/tab#select) method. -In the below Wizard sample, each Tab is integrated with required components to complete the reservation. Each field is provided with validation for all mandatory option to proceed to next tabs. Using Tab item's template property the components are added into content. +In the following Wizard sample, each Tab is integrated with required components to complete a reservation. Each field is provided with validation for all mandatory options to proceed to the next tab. The components are added into the content using the Tab item's template property. ```ts /* Initializing Tab with header and contents bind to template div for adding other components */ @@ -29,21 +29,18 @@ In the below Wizard sample, each Tab is integrated with required components to c tabObj.appendTo('#element'); ``` -Create the following contents for each tab in the wizard. -1. **Search tab:** - Created with [DropDownList](../../drop-down-list/data-binding/) to select the source, destination and type of ticket. A [DatePicker](../../datepicker/getting-started/) for choosing the date of journey. -2. **Train tab:** - Based on the selected start and end point, populated Grid with random list of available seats and train list. Initially define the columns and row selected event for validating, after the source and destination chosen update the [dataSource](../../api/grid#datasource) for the Grid. -3. **Passenger tab:** - A table with Textbox, Numeric, DropDownList for adding passenger name, age, gender and preferred berth/seat. Add validation on entering passenger details to proceed. -4. **Payment tab:** - Calculate the ticket cost based on location, passenger count and ticket type. Generate data for Grid with passenger details, train number and ticket cost summary. +Create the following contents for each tab in the wizard: -You can go back on each tab using buttons available in it and tabs are [`disabled`](../../api/tab/tabItem#disabled) to navigate through tab header click actions. Once you end the wizard all the data get cleared and wizard goes back to starting tab. +1. **Search tab:** Created with [DropDownList](../../drop-down-list/data-binding/) to select the source, destination, and type of ticket. A [DatePicker](../../datepicker/getting-started/) is used for choosing the date of journey. +2. **Train tab:** Based on the selected start and end points, a Grid is populated with a random list of available seats and train options. Initially, define the columns and row selected event for validation. After the source and destination are chosen, update the [dataSource](../../api/grid#datasource) for the Grid. +3. **Passenger tab:** A table with Textbox, Numeric, and DropDownList components for adding passenger name, age, gender, and preferred berth/seat. Add validation on entering passenger details to proceed. +4. **Payment tab:** Calculate the ticket cost based on location, passenger count, and ticket type. Generate data for the Grid with passenger details, train number, and ticket cost summary. + +You can go back to each tab using buttons available in it. Tabs are [`disabled`](../../api/tab/tabItem#disabled) to prevent navigation through tab header click actions. Once you complete the wizard, all the data is cleared, and the wizard returns to the starting tab. {% if page.publishingplatform == "typescript" %} - {% tabs %} +{% tabs %} {% highlight ts tabtitle="index.ts" %} {% include code-snippet/tab/disable-tab-cs1/index.ts %} {% endhighlight %} diff --git a/ej2-javascript/tab/how-to/customize-selected-tab-styles.md b/ej2-javascript/tab/how-to/customize-selected-tab-styles.md index dfbb3282d..fe135c5e1 100644 --- a/ej2-javascript/tab/how-to/customize-selected-tab-styles.md +++ b/ej2-javascript/tab/how-to/customize-selected-tab-styles.md @@ -11,13 +11,17 @@ domainurl: ##DomainURL## # Customize selected tab styles in ##Platform_Name## Tab control -You can customize the Tab style by overriding its header and active tab CSS classes. Define HTML string for adding animation and customizing the Tab header and pass it to [`text`](../../api/tab/header#text) property. Now you can override the style using custom CSS classes added to the Tab elements. +You can customize the Tab style by overriding its header and active tab CSS classes. To do this, follow these steps: -> You can add the custom class into Tab component using [`cssClass`](../../api/toolbar/item#cssclass) property which is used to customize the Tab component. +1. Define an HTML string to add animation and customize the Tab header. +2. Pass this HTML string to the [`text`](../../api/tab/header#text) property. +3. Override the style using custom CSS classes added to the Tab elements. + +> You can add a custom class to the Tab component using the [`cssClass`](../../api/toolbar/item#cssclass) property, which is used to customize the Tab component along with the respective CSS selectors. {% if page.publishingplatform == "typescript" %} - {% tabs %} +{% tabs %} {% highlight ts tabtitle="index.ts" %} {% include code-snippet/tab/active-tab-style-cs1/index.ts %} {% endhighlight %} diff --git a/ej2-javascript/tab/how-to/customize-tab-content-height.md b/ej2-javascript/tab/how-to/customize-tab-content-height.md index f9c1c2af5..dd0b62cba 100644 --- a/ej2-javascript/tab/how-to/customize-tab-content-height.md +++ b/ej2-javascript/tab/how-to/customize-tab-content-height.md @@ -11,16 +11,16 @@ domainurl: ##DomainURL## # Customize tab content height in ##Platform_Name## Tab control -You can change the Tab content height by using the [`heightAdjustMode`](../../api/tab/#heightadjustmode) property. By default, the Tab content [`heightAdjustMode`](../../api/tab/#heightadjustmode) property is set to `Content` value. +You can adjust the Tab content height using the [`heightAdjustMode`](../../api/tab/#heightadjustmode) property. By default, this property is set to `Content`. Here are the available options: -* **None**: Each tab content height is set based on the Tab height. This value is used only the tab component having the [`height`](../../api/tab/#height) property. -* **Auto**: Each tab content height will take the maximum height of all other tabs content. -* **Content**: Each tab content height is set based on their own content. -* **Fill**: Each tab content height is set based on the full height of Tabs parent element. +* **None**: Sets each tab content height based on the Tab height. This option is only used when the tab component has a [`height`](../../api/tab/#height) property set. +* **Auto**: Sets all tab content heights to match the height of the tallest tab content. +* **Content**: Sets each tab content height based on its own content (default behavior). +* **Fill**: Sets each tab content height to fill the full height of the Tab's parent element. {% if page.publishingplatform == "typescript" %} - {% tabs %} +{% tabs %} {% highlight ts tabtitle="index.ts" %} {% include code-snippet/tab/tab-height-cs1/index.ts %} {% endhighlight %} diff --git a/ej2-javascript/tab/how-to/customize-tab-scroll-step.md b/ej2-javascript/tab/how-to/customize-tab-scroll-step.md index 6254b3914..ff59874bf 100644 --- a/ej2-javascript/tab/how-to/customize-tab-scroll-step.md +++ b/ej2-javascript/tab/how-to/customize-tab-scroll-step.md @@ -11,13 +11,13 @@ domainurl: ##DomainURL## # Customize tab scroll step in ##Platform_Name## Tab control -Tab supports to customize the scrolling distance when you click the left and right side navigation icons. we can customize `ScrollStep` property for scrolling distance. Refer to the following code example. +The Tab control supports customizing the scrolling distance when you click the left and right side navigation icons. You can customize the [`ScrollStep`](../../api/toolbar/item#scrollstep) property to adjust the scrolling distance. Refer to the following code example: -* By using Tab scrollStep property, pass a required value to customize tab scrollStep. +* Use the Tab's [`ScrollStep`](../../api/toolbar/item#scrollstep) property to set the desired value for customizing the tab scroll step. {% if page.publishingplatform == "typescript" %} - {% tabs %} +{% tabs %} {% highlight ts tabtitle="index.ts" %} {% include code-snippet/tab/tab-scrollstep-cs1/index.ts %} {% endhighlight %} diff --git a/ej2-javascript/tab/how-to/display-tool-tip-on-tab-header.md b/ej2-javascript/tab/how-to/display-tool-tip-on-tab-header.md index c3489a51e..532bf52d1 100644 --- a/ej2-javascript/tab/how-to/display-tool-tip-on-tab-header.md +++ b/ej2-javascript/tab/how-to/display-tool-tip-on-tab-header.md @@ -9,9 +9,11 @@ documentation: ug domainurl: ##DomainURL## --- -# Display tool tip on tab header in ##Platform_Name## Tab control +# Display tooltip on tab header in ##Platform_Name## Tab control -You can display tooltip for the tab component header using [`beforeRender`](../../api/tooltip#beforerender) event of Essential JS 2 Tooltip component which can be viewed as hint texts on mouse hovers over tab. +You can enhance the user experience of your Tab control by displaying tooltips for the tab headers. This feature provides hint text when users hover their mouse over a tab header. To implement this, you'll use the [`beforeRender`](../../api/tooltip#beforerender) event of the Essential JS 2 Tooltip control. + +Here's an example of how to add tooltips to your tab headers: {% if page.publishingplatform == "typescript" %} diff --git a/ej2-javascript/tab/how-to/load-tab-items-dynamically.md b/ej2-javascript/tab/how-to/load-tab-items-dynamically.md index 8764b219a..b9ddcaa92 100644 --- a/ej2-javascript/tab/how-to/load-tab-items-dynamically.md +++ b/ej2-javascript/tab/how-to/load-tab-items-dynamically.md @@ -11,25 +11,33 @@ domainurl: ##DomainURL## # Load tab items dynamically in ##Platform_Name## Tab control -Tabs can be added dynamically by passing array of items and index value to the [`addTab`](../../api/tab#addtab) method. +You can add tabs dynamically to the Tab control by passing an array of items and an index value to the [`addTab`](../../api/tab#addtab) method. Here's how you can do it: ```ts - // New tab title and content inputs are fetched and stored in local variable - let title: string = document.getElementById('tab-title').value; - let content: string = document.getElementById('tab-content').value; - - // Required tab item object formed by using textbox inputs - let item: Object = { header: { text: title }, content: createElement('pre', { innerHTML: content.replace(/\n/g, '
          \n') }).outerHTML }; - - // Item object and the index argument passed into the addTab method to add a new tab - tabObj.addTab([item], index); +// Fetch new tab title and content from input elements +let tabTitle: string = document.getElementById('tab-title').value; +let content: string = document.getElementById('tab-content').value; + +// Create a tab item object using the input values +let item: Object = { + header: { text: tabTitle }, + content: createElement('pre', { innerHTML: content.replace(/\n/g, '
          \n') }).outerHTML +}; + +// Add the new tab at the specified index +tabObj.addTab([item], index); ``` -In the following demo, you can add the tab content by clicking the **+**. This **+** icon is added on the tab header using [`iconCss`](../../api/tab/header#iconcss) property. Enter the new Tab heading and content details in the available text boxes, click 'Add Tab' button to pass the details as an array and here last index is calculated to append the new tab at the end. +In the following example, we'll demonstrate how to add tabs dynamically: + +1. A "+" icon is added to the tab header using the [`iconCss`](../../api/tab/header#iconcss) property. +2. When you click the "+" icon, you can enter the new tab's heading and content in the provided text boxes. +3. Clicking the 'Add Tab' button will create a new tab with the entered details. +4. The new tab is appended at the end of the existing tabs. {% if page.publishingplatform == "typescript" %} - {% tabs %} +{% tabs %} {% highlight ts tabtitle="index.ts" %} {% include code-snippet/tab/dynamic-tab-cs1/index.ts %} {% endhighlight %} diff --git a/ej2-javascript/tab/how-to/load-tab-with-data-source.md b/ej2-javascript/tab/how-to/load-tab-with-data-source.md index 7db438ae2..fe4961fb4 100644 --- a/ej2-javascript/tab/how-to/load-tab-with-data-source.md +++ b/ej2-javascript/tab/how-to/load-tab-with-data-source.md @@ -11,13 +11,13 @@ domainurl: ##DomainURL## # Load tab with data source in ##Platform_Name## Tab control -You can bind any data object to Tab items, by mapping it to a [`header`](../../api/tab/tabItem#header) and [`content`](../../api/tab/tabItem#content)  property. +You can bind any data object to Tab items by mapping it to the [`header`](../../api/tab/tabItem#header) and [`content`](../../api/tab/tabItem#content) properties. -In the below demo, Data is fetched from an `OData` service using `DataManager`. The result data is formatted as a JSON object with `header` and `content` fields, which is set to items property of Tab. +In the example below, we'll demonstrate how to fetch data from an `OData` service using `DataManager`. The retrieved data is formatted as a JSON object with `header` and `content` fields, which are then set to the `items` property of the Tab control. {% if page.publishingplatform == "typescript" %} - {% tabs %} +{% tabs %} {% highlight ts tabtitle="index.ts" %} {% include code-snippet/tab/tab-cs2/index.ts %} {% endhighlight %} diff --git a/ej2-javascript/tab/how-to/prevent-content-swipe-selection.md b/ej2-javascript/tab/how-to/prevent-content-swipe-selection.md index 4f385a28f..8ff7a6f35 100644 --- a/ej2-javascript/tab/how-to/prevent-content-swipe-selection.md +++ b/ej2-javascript/tab/how-to/prevent-content-swipe-selection.md @@ -11,31 +11,43 @@ domainurl: ##DomainURL## # Prevent content swipe selection in ##Platform_Name## Tab control -We can prevent the tab selection on touch swipe action by using the Tab [`selecting`](../../api/tab#selecting) event. Refer the below sample with preventing swipe selection. +The [`swipeMode`](https://ej2.syncfusion.com/documentation/api/tab/#swipemode) property in the Tab component allows users to navigate between tabs using swipe gestures, improving the overall navigation experience. It supports both touch and mouse inputs, enabling intuitive tab switching. + +However, in certain cases, such as when a tab contains critical elements like a form, accidental swipes can disrupt the user's workflow. For example, if a user is filling out a form and mistakenly swipes, the tab might change unexpectedly, potentially leading to unsaved data or interruptions. + +To address this, you can customize the [`swipeMode`](https://ej2.syncfusion.com/documentation/api/tab/#swipemode) property based on the needs of the application. By adjusting this setting, you can balance smooth, intuitive navigation with protecting the user experience and safeguarding against accidental tab switches. + +The following are the available [`swipeMode`](https://ej2.syncfusion.com/documentation/api/tab/#swipemode) options for the Tab component: + +* Both - By default, this option allows the user to swipe between tabs using both touch and mouse actions. +* Touch - This option allows users to swipe between tabs using touch gestures only. +* Mouse - This option allows users to swipe between tabs using mouse gestures only. +* None - This disables both touch and mouse swipe actions, preventing any unintended tab switches. {% if page.publishingplatform == "typescript" %} {% tabs %} {% highlight ts tabtitle="index.ts" %} -{% include code-snippet/tab/tab-cs3/index.ts %} +{% include code-snippet/tab/swipemode-cs1/index.ts %} {% endhighlight %} {% highlight html tabtitle="index.html" %} -{% include code-snippet/tab/tab-cs3/index.html %} +{% include code-snippet/tab/swipemode-cs1/index.html %} {% endhighlight %} {% endtabs %} -{% previewsample "page.domainurl/code-snippet/tab/tab-cs3" %} +{% previewsample "page.domainurl/code-snippet/tab/swipemode-cs1" %} {% elsif page.publishingplatform == "javascript" %} {% tabs %} {% highlight js tabtitle="index.js" %} -{% include code-snippet/tab/tab-cs3/index.js %} +{% include code-snippet/tab/swipemode-cs1/index.js %} {% endhighlight %} {% highlight html tabtitle="index.html" %} -{% include code-snippet/tab/tab-cs3/index.html %} +{% include code-snippet/tab/swipemode-cs1/index.html %} {% endhighlight %} {% endtabs %} -{% previewsample "page.domainurl/code-snippet/tab/tab-cs3" %} +{% previewsample "page.domainurl/code-snippet/tab/swipemode-cs1" %} {% endif %} + diff --git a/ej2-javascript/tab/how-to/reorder-active-tab.md b/ej2-javascript/tab/how-to/reorder-active-tab.md index 4a76c3a42..ee8841406 100644 --- a/ej2-javascript/tab/how-to/reorder-active-tab.md +++ b/ej2-javascript/tab/how-to/reorder-active-tab.md @@ -11,11 +11,15 @@ domainurl: ##DomainURL## # Reorder active tab in ##Platform_Name## Tab control -We can able to prevent the changing of the active tab item on resizing the browser when overflow mode is popup by using the [`reorderActiveTab`](../../api/tab#reorderActiveTab) property. By default, the active Tab should be reordered when we click the tab items from the popup. If we set `false` to [`reorderActiveTab`](../../api/tab#reorderActiveTab) property the active tab item from the popup will not be reordered and an active item is highlighted inside the popup. The following code example depicts to prevent the reorder active tab item inside the popup. +You can prevent the active tab item from changing when resizing the browser in popup overflow mode by using the [`reorderActiveTab`](../../api/tab#reorderActiveTab) property. + +By default, the active tab is reordered when you click on tab items in the popup. If you set the [`reorderActiveTab`](../../api/tab#reorderActiveTab) property to `false`, the active tab item from the popup will not be reordered, and the active item will remain highlighted inside the popup. + +The following example demonstrates how to prevent the reordering of the active tab item inside the popup: {% if page.publishingplatform == "typescript" %} - {% tabs %} +{% tabs %} {% highlight ts tabtitle="index.ts" %} {% include code-snippet/tab/reorder-active-tab-cs1/index.ts %} {% endhighlight %} diff --git a/ej2-javascript/tab/how-to/set-custom-animation.md b/ej2-javascript/tab/how-to/set-custom-animation.md index 94e831cb3..309ee8f17 100644 --- a/ej2-javascript/tab/how-to/set-custom-animation.md +++ b/ej2-javascript/tab/how-to/set-custom-animation.md @@ -11,23 +11,23 @@ domainurl: ##DomainURL## # Set custom animation in ##Platform_Name## Tab control -Tab supports custom animations for both previous and next actions from the provided animation option of `Animation` library. The [`animation`](../../api/tab#animation) property also allows you to set [`easing`](../../api/tab/tabActionSettings#easing), [`duration`](../../api/tab/tabActionSettings#duration), and various other [`effect`](../../api/tab/tabActionSettings#effect). +The Tab control supports custom animations for both previous and next actions using the `Animation` library. You can customize the animation using the [`animation`](../../api/tab#animation) property, which allows you to set [`easing`](../../api/tab/tabActionSettings#easing), [`duration`](../../api/tab/tabActionSettings#duration), and various other [`effects`](../../api/tab/tabActionSettings#effect). -Default animation is given as `SlideLeftIn` for [`previous`](../../api/tab/tabAnimationSettings#previous) tab animation and `SlideRightIn` for [`next`](../../api/tab/tabAnimationSettings#next) tab animation. You can also disable the animation by setting the animation effect as `None`. Also, please use the following CSS to disable indicator animation for animation effect as `None`. +By default, the Tab uses the `SlideLeftIn` animation for the [`previous`](../../api/tab/tabAnimationSettings#previous) tab and `SlideRightIn` for the [`next`](../../api/tab/tabAnimationSettings#next) tab. You can disable the animation by setting the animation effect to `None`. -```css +To disable the indicator animation when the effect is set to `None`, use the following CSS: +```css .e-tab .e-tab-header:not(.e-vertical) .e-indicator, .e-tab .e-tab-header.e-vertical .e-indicator { transition: none; } - ``` -The sample demonstrates some types of animation that suits Tab. You can check all the animation effects here. +The following example demonstrates some animation types suitable for the Tab control. {% if page.publishingplatform == "typescript" %} - {% tabs %} +{% tabs %} {% highlight ts tabtitle="index.ts" %} {% include code-snippet/tab/tab-animation-cs1/index.ts %} {% endhighlight %} diff --git a/ej2-javascript/tab/how-to/set-state-persistence-of-the-tab-component.md b/ej2-javascript/tab/how-to/set-state-persistence-of-the-tab-component.md index cf23b83fd..41cdb4b23 100644 --- a/ej2-javascript/tab/how-to/set-state-persistence-of-the-tab-component.md +++ b/ej2-javascript/tab/how-to/set-state-persistence-of-the-tab-component.md @@ -1,6 +1,6 @@ --- layout: post -title: Set state persistence of the tab component in ##Platform_Name## Tab control | Syncfusion +title: Set state persistence in ##Platform_Name## Tab control | Syncfusion description: Learn here all about Set state persistence of the tab component in Syncfusion ##Platform_Name## Tab control of Syncfusion Essential JS 2 and more. platform: ej2-javascript control: Set state persistence of the tab component @@ -9,15 +9,15 @@ documentation: ug domainurl: ##DomainURL## --- -# Set state persistence of the tab component in ##Platform_Name## Tab control +# Set state persistence in ##Platform_Name## Tab control -State persistence allows the Tab to retain the current modal value in the browser cookies for state maintenance. This action is handled through the [`enablePersistence`](../../api/tab#enablepersistence) property which is set to false by default. When it is set to true, some of the Tab component model values will be retained even after refreshing the page. +When `enablePersistence` is set to `true`, the Tab component will maintain some of its model values across page refreshes. This means that the user's interactions with the Tab, such as the currently selected tab, will be preserved when the page is reloaded. -The following sample demonstrates how to set state persistence of the Tab component. +Here's an example demonstrating how to enable state persistence for the Tab component: {% if page.publishingplatform == "typescript" %} - {% tabs %} +{% tabs %} {% highlight ts tabtitle="index.ts" %} {% include code-snippet/tab/tab-persistence-cs1/index.ts %} {% endhighlight %} diff --git a/ej2-javascript/tab/how-to/tab-key-navigation.md b/ej2-javascript/tab/how-to/tab-key-navigation.md index 451d9f919..0c9aaf3d7 100644 --- a/ej2-javascript/tab/how-to/tab-key-navigation.md +++ b/ej2-javascript/tab/how-to/tab-key-navigation.md @@ -11,11 +11,11 @@ domainurl: ##DomainURL## # Tab key navigation in ##Platform_Name## Tab control -The [`tabIndex`](../api/tab/tabItem/#tabindex) property of a Tab item is used to enable tab key navigation for that particular item. When a positive value is assigned to the [`tabIndex`](../api/tab/tabItem/#tabindex) property, it allows the user to switch focus to the next or previous tab item using the Tab or Shift+Tab keys. By default, the user can only switch between tab items using the arrow keys. +The [`tabIndex`](../api/tab/tabItem/#tabindex) property of a Tab item enables tab key navigation for that specific item. When you assign a positive value to the [`tabIndex`](../api/tab/tabItem/#tabindex) property, users can switch focus between tab items using the Tab or Shift+Tab keys. By default, users can only switch between tab items using arrow keys. -If the [`tabIndex`](../api/tab/tabItem/#tabindex) value is set to 0 for all tab items, the tab will switch based on the order of the elements on the page. This means that if the tab items are listed in a specific order on the page, the user will be able to navigate through them using the Tab key in that same order. +If you set the [`tabIndex`](../api/tab/tabItem/#tabindex) value to 0 for all tab items, the tab will switch based on the order of elements on the page. This means users can navigate through the tab items using the Tab key in the same order as they appear on the page. -To use the [`tabIndex`](../api/tab/tabItem/#tabindex) property, you can assign a positive value to the property of each tab item that you want to enable tab key navigation. For example: +To use the [`tabIndex`](../api/tab/tabItem/#tabindex) property, assign a positive value to each tab item where you want to enable tab key navigation. Here's an example: {% if page.publishingplatform == "typescript" %} @@ -44,6 +44,9 @@ To use the [`tabIndex`](../api/tab/tabItem/#tabindex) property, you can assign a {% previewsample "page.domainurl/code-snippet/tab/tab-selection-cs1" %} {% endif %} -With this code, the user will be able to switch between the tab items using the Tab and Shift+Tab keys, in the order specified by the [`tabIndex`](../api/tab/tabItem/#tabindex) values. +With this code, users can switch between tab items using the Tab and Shift+Tab keys in the order specified by the [`tabIndex`](../api/tab/tabItem/#tabindex) values. -It's important to note that the [`tabIndex`](../api/tab/tabItem/#tabindex) property only affects the ability to navigate between tab items using the Tab key. The user will still be able to use the arrow keys to switch between tab items, regardless of the value of the [`tabIndex`](../api/tab/tabItem/#tabindex) property. \ No newline at end of file +**Important notes:** + +1. The [`tabIndex`](../api/tab/tabItem/#tabindex) property only affects navigation between tab items using the Tab key. +2. Users can still use arrow keys to switch between tab items, regardless of the [`tabIndex`](../api/tab/tabItem/#tabindex) property value. \ No newline at end of file diff --git a/ej2-javascript/tab/how-to/tab-selection.md b/ej2-javascript/tab/how-to/tab-selection.md index e3ab4985d..56690b2bd 100644 --- a/ej2-javascript/tab/how-to/tab-selection.md +++ b/ej2-javascript/tab/how-to/tab-selection.md @@ -11,11 +11,13 @@ domainurl: ##DomainURL## # Tab selection in ##Platform_Name## Tab control -We can able to find the tab selection whether it is selected by user interaction or programmatically way in the [`selecting`](../../api/tab#selecting) and [`selected`](../../api/tab#selected) event argument with the field of `isInteracted`. When the user changes the tab through click actions it will return `true` otherwise, it will return false. The following code example depicts to find the tab selecting the state in selecting and selected events. +You can determine whether a tab was selected through user interaction or programmatically by using the [`selecting`](../../api/tab#selecting) and [`selected`](../../api/tab#selected) event arguments. These arguments contain an `isInteracted` field that returns `true` when the user changes the tab through click actions, and `false` when the change occurs programmatically. + +The following code example demonstrates how to identify the tab selection state in the selecting and selected events: {% if page.publishingplatform == "typescript" %} - {% tabs %} +{% tabs %} {% highlight ts tabtitle="index.ts" %} {% include code-snippet/tab/tab-selection-cs2/index.ts %} {% endhighlight %} diff --git a/ej2-javascript/tab/images/tab-extended.gif b/ej2-javascript/tab/images/tab-extended.gif new file mode 100644 index 000000000..84f4c6748 Binary files /dev/null and b/ej2-javascript/tab/images/tab-extended.gif differ diff --git a/ej2-javascript/tab/images/tab-multirow.png b/ej2-javascript/tab/images/tab-multirow.png new file mode 100644 index 000000000..51d476e2a Binary files /dev/null and b/ej2-javascript/tab/images/tab-multirow.png differ diff --git a/ej2-javascript/tab/localization.md b/ej2-javascript/tab/localization.md index dcd49af94..0958350be 100644 --- a/ej2-javascript/tab/localization.md +++ b/ej2-javascript/tab/localization.md @@ -11,7 +11,7 @@ domainurl: ##DomainURL## # Localization in ##Platform_Name## Tab control -Localization library allows to localize the default text content of the Tab to different cultures using the [`locale`](../api/tab#locale) property. In Tab, the close button's tooltip text alone will be localize based on culture. The close button is shown on tab header when enabled [`showCloseButton`](../api/tab#showclosebutton) property. +The localization library allows you to localize the default text content of the Tabs to different cultures using the [`locale`](../api/tab#locale) property. In the Tab control, only the close button's tooltip text will be localized based on the culture. The close button is shown on the tab header when the [`showCloseButton`](../api/tab#showclosebutton) property is enabled. | Locale key | en-US (default) | |------|------| @@ -19,10 +19,9 @@ Localization library allows to localize the default text content of the Tab to d ## Loading translations -To load translation object in an application use `load` function of `L10n` class. +To load a translation object in an application, use the `load` function of the `L10n` class. -In the below sample, `French` culture is set to Tab and change the close button's tooltip -text. +In the example below, the `French` culture is set for the Tab, which changes the close button's tooltip text. {% if page.publishingplatform == "typescript" %} diff --git a/ej2-javascript/tab/orientation.md b/ej2-javascript/tab/orientation.md index 422edaba4..19283ce5d 100644 --- a/ej2-javascript/tab/orientation.md +++ b/ej2-javascript/tab/orientation.md @@ -11,23 +11,23 @@ domainurl: ##DomainURL## # Orientation in ##Platform_Name## Tab control -This section explains about modifying the position and modes of Tab header. +This section explains how to modify the position and modes of the Tab header. -It allows placing the header section inside the Tab component at different positions by using the [`headerPlacement`](../api/tab#headerplacement) property. The available positions are as follows: +The Tab component allows placing the header section at different positions using the [`headerPlacement`](../api/tab#headerplacement) property. The available positions are as follows: -* **Top**: Tab header items can be arranged horizontally, and their content can be placed after the header. -* **Bottom**: Tab header items can be arranged horizontally, and their content can be placed before the header. -* **Left**: Tab header items can be arranged vertically, and their content can be placed after the header. -* **Right**: Tab header items can be arranged vertically, and their content can be placed before the header. +* **Top**: Tab header items are arranged horizontally, and their content is placed below the header. +* **Bottom**: Tab header items are arranged horizontally, and their content is placed above the header. +* **Left**: Tab header items are arranged vertically, and their content is placed to the right of the header. +* **Right**: Tab header items are arranged vertically, and their content is placed to the left of the header. -It is also adaptable to the available space when the tab items exceed the view space. You can customize the modes by using `overflowMode` property. The available modes are as follows: +The Tab component is also adaptable to the available space when the tab items exceed the view space. You can customize the overflow modes using the [`overflowMode`](../api/tab#overflowmode) property. The available modes are: * Scrollable * Popup {% if page.publishingplatform == "typescript" %} - {% tabs %} +{% tabs %} {% highlight ts tabtitle="index.ts" %} {% include code-snippet/tab/orientation-tab-cs1/index.ts %} {% endhighlight %} diff --git a/ej2-javascript/tab/ts/getting-started.md b/ej2-javascript/tab/ts/getting-started.md index 3e371fdfa..06e5fa812 100644 --- a/ej2-javascript/tab/ts/getting-started.md +++ b/ej2-javascript/tab/ts/getting-started.md @@ -103,7 +103,7 @@ The Tab can be rendered by defining a JSON array. The item is rendered with [`he
          -
          +
          @@ -175,6 +175,9 @@ Output will be as follows: {% highlight html tabtitle="index.html" %} {% include code-snippet/tab/tab-cs4/index.html %} {% endhighlight %} +{% highlight html tabtitle="index.css" %} +{% include code-snippet/tab/tab-cs4/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/tab/tab-cs4" %} @@ -278,6 +281,9 @@ tab.appendTo('#tab_html_markup'); {% highlight html tabtitle="index.html" %} {% include code-snippet/tab/tab-template-cs1/index.html %} {% endhighlight %} +{% highlight html tabtitle="index.css" %} +{% include code-snippet/tab/tab-template-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/tab/tab-template-cs1" %} diff --git a/ej2-javascript/textbox/groups.md b/ej2-javascript/textbox/groups.md index 9aef54f03..e7193df62 100644 --- a/ej2-javascript/textbox/groups.md +++ b/ej2-javascript/textbox/groups.md @@ -19,12 +19,32 @@ TextBox: * Place input element with the class `e-input` inside the parent div element. +{% tabs %} +{% highlight html tabtitle="index.html" %} + +
          + + +
          + + +{% endhighlight %} + +{% highlight html tabtitle="index.ts" %} + ``` -
          - -
          + import { TextBox } from '@syncfusion/ej2-inputs' + + let inputobj: TextBox = new TextBox({ + placeholder: 'Enter Date', + }); + +inputobj.appendTo('#firstName'); ``` +{% endhighlight %} +{% endtabs %} + Floating label: * Add the `e-float-input` class to the parent div element. @@ -38,14 +58,33 @@ Floating label: > Creating the Floating label TextBox, you have to set the `required` attribute to the Input element to achieve the floating label functionality which is used for validating the value existence in TextBox. If you want to render the Floating label TextBox without `required` attribute then refer to the [Floating label without required attribute](#floating-label-without-required-attribute) section. +{% tabs %} +{% highlight html tabtitle="index.html" %} + +
          + + +
          + + +{% endhighlight %} + +{% highlight html tabtitle="index.ts" %} + ``` -
          - - - -
          + import { TextBox } from '@syncfusion/ej2-inputs' + + let inputobj: TextBox = new TextBox({ + placeholder: 'Enter the name', + floatLabelType: 'Auto' + }); + +inputobj.appendTo('#firstName'); ``` +{% endhighlight %} +{% endtabs %} + And refer to the following sections to add the icons to the TextBox. ## With icon and floating label diff --git a/ej2-javascript/textbox/how-to/set-the-disabled-state.md b/ej2-javascript/textbox/how-to/set-the-disabled-state.md index 29cd09e35..871361329 100644 --- a/ej2-javascript/textbox/how-to/set-the-disabled-state.md +++ b/ej2-javascript/textbox/how-to/set-the-disabled-state.md @@ -11,7 +11,7 @@ domainurl: ##DomainURL## # Set the disabled state in ##Platform_Name## Textbox control -Disable the TextBox by adding the `e-disabled` to the input parent element and set `disabled` attribute to the input element. +Disable the TextBox by set [enabled](../api/textbox/#cssClass) property as false to the TextBoxComponent. {% if page.publishingplatform == "typescript" %} diff --git a/ej2-javascript/textbox/how-to/set-the-read-only-textbox.md b/ej2-javascript/textbox/how-to/set-the-read-only-textbox.md index 947774d23..2deee26dc 100644 --- a/ej2-javascript/textbox/how-to/set-the-read-only-textbox.md +++ b/ej2-javascript/textbox/how-to/set-the-read-only-textbox.md @@ -11,7 +11,7 @@ domainurl: ##DomainURL## # Set the read only textbox in ##Platform_Name## Textbox control -You can make the TextBox as `read-only` by setting the `readonly` attribute to the input element. +You can make the TextBox as `read-only` by setting the [readonly](../api/textbox/#readonly) property to the TextBoxComponent. {% if page.publishingplatform == "typescript" %} diff --git a/ej2-javascript/textbox/how-to/set-the-rounded-corner.md b/ej2-javascript/textbox/how-to/set-the-rounded-corner.md index ff0d05833..c96033dab 100644 --- a/ej2-javascript/textbox/how-to/set-the-rounded-corner.md +++ b/ej2-javascript/textbox/how-to/set-the-rounded-corner.md @@ -11,7 +11,7 @@ domainurl: ##DomainURL## # Set the rounded corner in ##Platform_Name## Textbox control -Render the TextBox with `rounded corner` by adding the `e-corner` class to the input parent element. +Render the TextBox with `rounded corner` by adding the `e-corner` to the [cssClass](../api/textbox/#cssClass) property of the TextBoxComponent. >This rounded corner visible only in box model input component diff --git a/ej2-javascript/textbox/sizing.md b/ej2-javascript/textbox/sizing.md index 13b59b664..7be5aeb8f 100644 --- a/ej2-javascript/textbox/sizing.md +++ b/ej2-javascript/textbox/sizing.md @@ -16,7 +16,8 @@ You can render the TextBox in two different sizes. Property | Description ------------ | ------------- Normal | By default, the TextBox is rendered with normal size. - Small | You need to add `e-small` class to the input element, or else add to the input container. + Small | You need to add `e-small` class to the [cssClass](../api/textbox/#cssClass) property to render the TextBox in smaller size. + Bigger | You need to add e-bigger class to the [cssClass](../api/textbox/#cssClass) property to render the TextBox in bigger size {% if page.publishingplatform == "typescript" %} diff --git a/ej2-javascript/textbox/ts/getting-started.md b/ej2-javascript/textbox/ts/getting-started.md index 51fa45ff0..7860449ca 100644 --- a/ej2-javascript/textbox/ts/getting-started.md +++ b/ej2-javascript/textbox/ts/getting-started.md @@ -101,12 +101,26 @@ Add the HTML Input element with `e-input` class into your `index.html`.
          - +
          +{% endhighlight %} + +{% highlight html tabtitle="index.ts" %} + +``` + import { TextBox } from '@syncfusion/ej2-inputs' + + let inputobj: TextBox = new TextBox({ + placeholder: 'Enter Date', + }); + +inputobj.appendTo('#firstName'); +``` + {% endhighlight %} {% endtabs %} @@ -118,11 +132,27 @@ You can create a TextBox with icon as a group by creating the parent div element {% highlight html tabtitle="index.html" %} -
          - - +
          +
          +{% endhighlight %} +{% highlight html tabtitle="index.ts" %} +``` + import { TextBox } from '@syncfusion/ej2-inputs'; + + + let iconTextBox: TextBox = new TextBox({ + placeholder: 'Enter Date', + created: createHandler, + }); + iconTextBox.appendTo('#textbox'); + + function createHandler() { + iconTextBox.addIcon('append', 'e-date-icon'); + } + +``` {% endhighlight %} {% endtabs %} diff --git a/ej2-javascript/textbox/validation.md b/ej2-javascript/textbox/validation.md index 28c72e405..ef72cfe66 100644 --- a/ej2-javascript/textbox/validation.md +++ b/ej2-javascript/textbox/validation.md @@ -11,7 +11,7 @@ domainurl: ##DomainURL## # Validation in ##Platform_Name## Textbox control -The TextBox supports three types of validation styles namely `error`, `warning`, and `success`. These states are enabled by adding corresponding classes `.e-error`, `.e-warning`, or `.e-success` to the input parent element. +The TextBox supports three types of validation styles namely `error`, `warning`, and `success`. These states are enabled by adding corresponding classes `.e-error`, `.e-warning`, or `.e-success` to the [cssClass](../api/textbox/#cssClass) property. {% if page.publishingplatform == "typescript" %} @@ -46,39 +46,3 @@ The TextBox supports three types of validation styles namely `error`, `warning`, {% previewsample "page.domainurl/code-snippet/textbox/icon-samples-cs4" %} {% endif %} -## Adding mandatory asterisk to placeholder and float label - -You can add a mandatory `asterisk(*)` to placeholder and float label using .e-float-input.e-control-wrapper .e-float-text::after class. - -{% if page.publishingplatform == "typescript" %} - - {% tabs %} -{% highlight ts tabtitle="index.ts" %} -{% include code-snippet/textbox/asterisk-cs1/index.ts %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/textbox/asterisk-cs1/index.html %} -{% endhighlight %} -{% highlight css tabtitle="styles.css" %} -{% include code-snippet/textbox/asterisk-cs1/index.css %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/textbox/asterisk-cs1" %} - -{% elsif page.publishingplatform == "javascript" %} - -{% tabs %} -{% highlight js tabtitle="index.js" %} -{% include code-snippet/textbox/asterisk-cs1/index.js %} -{% endhighlight %} -{% highlight html tabtitle="index.html" %} -{% include code-snippet/textbox/asterisk-cs1/index.html %} -{% endhighlight %} -{% highlight css tabtitle="styles.css" %} -{% include code-snippet/textbox/asterisk-cs1/index.css %} -{% endhighlight %} -{% endtabs %} - -{% previewsample "page.domainurl/code-snippet/textbox/asterisk-cs1" %} -{% endif %} diff --git a/ej2-javascript/timeline/align.md b/ej2-javascript/timeline/align.md index 1b7efd47a..51b48485c 100644 --- a/ej2-javascript/timeline/align.md +++ b/ej2-javascript/timeline/align.md @@ -11,11 +11,11 @@ domainurl: ##DomainURL## # Alignment in ##Platform_Name## Timeline control -You can display the Timeline content `Before`, `After`, `Alternate` and `AlternateReverse` by using the [align](../api/timeline#align) property. The oppositeContent will be displayed parallel to the content when configured in the [TimelineItemModel](../api/timeline/timelineItemModel). +You can display the Timeline content as `Before`, `After`, `Alternate`, and `AlternateReverse` using the [align](../api/timeline/#align) property. The `oppositeContent` will be displayed parallel to the content when configured in the [TimelineItemModel](../api/timeline/timelineItemModel/). ## Before -In [Before](../api/timeline/timelineAlign) alignment, for `horizontal` orientation the item content is placed at the top and oppositeContent at the bottom whereas in `vertical`, the content to the left and oppositeContent to the right. +In [Before](../api/timeline/timelineAlign/) alignment, for `horizontal` orientation, the item content is placed at the top and `oppositeContent` at the bottom. For `vertical` orientation, the content is on the left and `oppositeContent` on the right. {% if page.publishingplatform == "typescript" %} @@ -26,6 +26,9 @@ In [Before](../api/timeline/timelineAlign) alignment, for `horizontal` orientati {% highlight html tabtitle="index.html" %} {% include code-snippet/timeline/align/before/index.html %} {% endhighlight %} +{% highlight html tabtitle="styles.css" %} +{% include code-snippet/timeline/align/before/styles.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/timeline/align/before" %} @@ -39,6 +42,9 @@ In [Before](../api/timeline/timelineAlign) alignment, for `horizontal` orientati {% highlight html tabtitle="index.html" %} {% include code-snippet/timeline/align/before/index.html %} {% endhighlight %} +{% highlight html tabtitle="styles.css" %} +{% include code-snippet/timeline/align/before/styles.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/timeline/align/before" %} @@ -46,7 +52,7 @@ In [Before](../api/timeline/timelineAlign) alignment, for `horizontal` orientati ## After -In [After](../api/timeline/timelineAlign) alignment, for `horizontal` orientation the item content is placed at the bottom and oppositeContent at the top whereas in `vertical`, the content to the right and oppositeContent to the left. +In [After](../api/timeline/timelineAlign/) alignment, for `horizontal` orientation, the item content is placed at the bottom and `oppositeContent` at the top. For `vertical` orientation, the content is on the right and `oppositeContent` on the left. {% if page.publishingplatform == "typescript" %} @@ -57,6 +63,9 @@ In [After](../api/timeline/timelineAlign) alignment, for `horizontal` orientatio {% highlight html tabtitle="index.html" %} {% include code-snippet/timeline/align/after/index.html %} {% endhighlight %} +{% highlight html tabtitle="styles.css" %} +{% include code-snippet/timeline/align/after/styles.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/timeline/align/after" %} @@ -70,6 +79,9 @@ In [After](../api/timeline/timelineAlign) alignment, for `horizontal` orientatio {% highlight html tabtitle="index.html" %} {% include code-snippet/timeline/align/after/index.html %} {% endhighlight %} +{% highlight html tabtitle="styles.css" %} +{% include code-snippet/timeline/align/after/styles.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/timeline/align/after" %} @@ -77,17 +89,20 @@ In [After](../api/timeline/timelineAlign) alignment, for `horizontal` orientatio ## Alternate -In [Alternate](../api/timeline/timelineAlign) alignment, the item content are arranged alternatively regardless of the Timeline orientation. +In [Alternate](../api/timeline/timelineAlign/) alignment, the item content is arranged alternately, regardless of the Timeline orientation. {% if page.publishingplatform == "typescript" %} - {% tabs %} +{% tabs %} {% highlight ts tabtitle="index.ts" %} {% include code-snippet/timeline/align/alternate/index.ts %} {% endhighlight %} {% highlight html tabtitle="index.html" %} {% include code-snippet/timeline/align/alternate/index.html %} {% endhighlight %} +{% highlight html tabtitle="styles.css" %} +{% include code-snippet/timeline/align/alternate/styles.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/timeline/align/alternate" %} @@ -101,6 +116,9 @@ In [Alternate](../api/timeline/timelineAlign) alignment, the item content are ar {% highlight html tabtitle="index.html" %} {% include code-snippet/timeline/align/alternate/index.html %} {% endhighlight %} +{% highlight html tabtitle="styles.css" %} +{% include code-snippet/timeline/align/alternate/styles.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/timeline/align/alternate" %} @@ -108,17 +126,20 @@ In [Alternate](../api/timeline/timelineAlign) alignment, the item content are ar ## Alternate reverse -In [AlternateReverse](../api/timeline/timelineAlign) alignment, the item content are arranged in reverse alternate regardless of the Timeline orientation. +In [AlternateReverse](../api/timeline/timelineAlign/) alignment, the item content is arranged in reverse order of alternate alignment, regardless of the Timeline orientation. {% if page.publishingplatform == "typescript" %} - {% tabs %} +{% tabs %} {% highlight ts tabtitle="index.ts" %} {% include code-snippet/timeline/align/alternate-reverse/index.ts %} {% endhighlight %} {% highlight html tabtitle="index.html" %} {% include code-snippet/timeline/align/alternate-reverse/index.html %} {% endhighlight %} +{% highlight html tabtitle="styles.css" %} +{% include code-snippet/timeline/align/alternate-reverse/styles.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/timeline/align/alternate-reverse" %} @@ -132,6 +153,9 @@ In [AlternateReverse](../api/timeline/timelineAlign) alignment, the item content {% highlight html tabtitle="index.html" %} {% include code-snippet/timeline/align/alternate-reverse/index.html %} {% endhighlight %} +{% highlight html tabtitle="styles.css" %} +{% include code-snippet/timeline/align/alternate-reverse/styles.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/timeline/align/alternate-reverse" %} diff --git a/ej2-javascript/timeline/customization.md b/ej2-javascript/timeline/customization.md index 4da192bf5..bd2ca9e29 100644 --- a/ej2-javascript/timeline/customization.md +++ b/ej2-javascript/timeline/customization.md @@ -11,13 +11,13 @@ domainurl: ##DomainURL## # Customization in ##Platform_Name## Timeline control -You can customize the Timeline items dot size, connectors, dot borders, dot outer space and more to personalize its appearance. This section explains the different ways for styling the items. +You can customize the Timeline items by adjusting dot size, connectors, dot borders, dot outer spacing, and more to personalize its appearance. This section explains the various ways to style the items. ## Connector styling ### Common styling -You can define the styles applicable to the all the Timeline item connectors. +You can apply styles universally to all Timeline item connectors. {% if page.publishingplatform == "typescript" %} @@ -54,7 +54,7 @@ You can define the styles applicable to the all the Timeline item connectors. ### Individual styling -You can also apply unique styles to individual connectors, to differentiate specific items within the Timeline. +You can apply unique styles to individual connectors to differentiate specific items within the Timeline. {% if page.publishingplatform == "typescript" %} @@ -94,7 +94,7 @@ You can also apply unique styles to individual connectors, to differentiate spec ### Dot color -You can modify the color of the dots to highlight the specific Timeline items. +You can modify the color of the dots to highlight specific Timeline items. {% if page.publishingplatform == "typescript" %} @@ -132,7 +132,7 @@ You can modify the color of the dots to highlight the specific Timeline items. ### Dot size -You can adjust the size of the dot to make it larger or smaller by using the `--dot-size` variable. +You can adjust the size of the dot, making it larger or smaller, by using the `--dot-size` variable. {% if page.publishingplatform == "typescript" %} @@ -169,7 +169,7 @@ You can adjust the size of the dot to make it larger or smaller by using the `-- ### Dot shadow -You can add shadow effects to the Timeline dots to make it feel visually engaging by using the `--dot-outer-space` & `--dot-border` variables. +You can add shadow effects to the Timeline dots to provide a visually engaging appearance by using the `--dot-outer-space` and `--dot-border` variables. {% if page.publishingplatform == "typescript" %} @@ -243,7 +243,7 @@ You can achieve the desired dot variant by customizing the border, outline and b ### Dot outline -By adding the `e-outline` class to the Timeline `cssClass` property, it enables the dots to have an outline state. +Add an `e-outline` class to the Timeline `cssClass` property to enable the dots to have an outline state. {% if page.publishingplatform == "typescript" %} diff --git a/ej2-javascript/timeline/events.md b/ej2-javascript/timeline/events.md index 9416917f5..3ee7e5c62 100644 --- a/ej2-javascript/timeline/events.md +++ b/ej2-javascript/timeline/events.md @@ -13,7 +13,7 @@ domainurl: ##DomainURL## This section describes the Timeline events that will be triggered when an appropriate actions are performed. The following events are available in the Timeline control. -## created +## Created The Timeline control triggers the [created](../api/timeline#created) event when the control rendering is completed. @@ -26,6 +26,9 @@ The Timeline control triggers the [created](../api/timeline#created) event when {% highlight html tabtitle="index.html" %} {% include code-snippet/timeline/events/created/index.html %} {% endhighlight %} +{% highlight css tabtitle="styles.css" %} +{% include code-snippet/timeline/events/created/styles.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/timeline/events/created" %} @@ -39,12 +42,15 @@ The Timeline control triggers the [created](../api/timeline#created) event when {% highlight html tabtitle="index.html" %} {% include code-snippet/timeline/events/created/index.html %} {% endhighlight %} +{% highlight css tabtitle="styles.css" %} +{% include code-snippet/timeline/events/created/styles.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/timeline/events/created" %} {% endif %} -## beforeItemRender +## BeforeItemRender The Timeline control triggers the [beforeItemRender](../api/timeline#beforeItemRender) event before rendering each item. @@ -57,6 +63,9 @@ The Timeline control triggers the [beforeItemRender](../api/timeline#beforeItemR {% highlight html tabtitle="index.html" %} {% include code-snippet/timeline/events/beforeItemRender/index.html %} {% endhighlight %} +{% highlight css tabtitle="styles.css" %} +{% include code-snippet/timeline/events/beforeItemRender/styles.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/timeline/events/beforeItemRender" %} @@ -70,6 +79,9 @@ The Timeline control triggers the [beforeItemRender](../api/timeline#beforeItemR {% highlight html tabtitle="index.html" %} {% include code-snippet/timeline/events/beforeItemRender/index.html %} {% endhighlight %} +{% highlight css tabtitle="styles.css" %} +{% include code-snippet/timeline/events/beforeItemRender/styles.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/timeline/events/beforeItemRender" %} diff --git a/ej2-javascript/timeline/items.md b/ej2-javascript/timeline/items.md index 7dbbdeecc..86ce93997 100644 --- a/ej2-javascript/timeline/items.md +++ b/ej2-javascript/timeline/items.md @@ -56,7 +56,7 @@ You can define string content for the Timeline items. ### Templated content -You can specify the template content for the items, by using the selector for an element in HTML. +You can specify template content for the items by using a selector for an element in HTML. {% if page.publishingplatform == "typescript" %} @@ -93,7 +93,7 @@ You can specify the template content for the items, by using the selector for an ## Adding opposite content -You can add additional information to each Timeline item, by using the [oppositeContent](../api/timeline#items#oppositeContent) property which is positioned opposite to the item content. Similar to the `content` property you can define `string` or `function` as contents to the oppositeContent. +You can add additional information to each Timeline item using the [oppositeContent](../api/timeline#items#oppositeContent) property, which is positioned opposite the item content. Similar to the `content` property, you can define `string` or `function` as contents for `oppositeContent`. {% if page.publishingplatform == "typescript" %} @@ -130,15 +130,15 @@ You can add additional information to each Timeline item, by using the [opposite ## Dot item -You can define CSS class to set icons, background colors, or images to personalize the appearance of dots associated with each Timeline item by using the [dotCss](../api/timeline#items#dotCss) property. +Define a CSS class to set icons, background colors, or images to personalize the appearance of dots associated with each Timeline item using the [dotCss](../api/timeline#items#dotCss) property. ### Adding icons -You can define the CSS class to show the icon for each item using the `dotCss` property. +You can define a CSS class to display an icon for each item using the `dotCss` property. ### Adding images -You can include images for the Timeline items using the `dotCss` property, by setting the CSS `background-image` property. +Include images for the Timeline items using the `dotCss` property by setting the CSS `background-image` property. ### Adding text diff --git a/ej2-javascript/timeline/js/es5-getting-started.md b/ej2-javascript/timeline/js/es5-getting-started.md index 548fb4ccf..aa33e31fe 100644 --- a/ej2-javascript/timeline/js/es5-getting-started.md +++ b/ej2-javascript/timeline/js/es5-getting-started.md @@ -9,7 +9,7 @@ documentation: ug domainurl: ##DomainURL## --- -# Es5 getting started in ##Platform_Name## Timeline control +# Getting Started with Syncfusion JavaScript (ES5) Timeline control The Essential JS 2 for JavaScript (global script) is an ES5 formatted pure JavaScript framework that can be directly used in latest web browsers. @@ -24,7 +24,7 @@ The Essential JS 2 JavaScript controls can be initialized by using any of the fo **Step 1:** Create an app folder `myapp` for Essential JS 2 JavaScript controls. -**Step 2:** You can get the global scripts and styles from the [Essential Studio JavaScript (Essential JS 2)](https://www.syncfusion.com/downloads/essential-js2/confirm) build installed location. +**Step 2:** You can get the global scripts and styles from the [Essential Studio JavaScript (Essential JS 2)](https://www.syncfusion.com/downloads/essential-js2) build installed location. **Syntax:** > Script: `**(installed location)**\Syncfusion\Essential Studio\JavaScript - EJ2\{RELEASE_VERSION}\Web (Essential JS 2)\JavaScript\{PACKAGE_NAME}\dist\global\{PACKAGE_NAME}.min.js` @@ -77,9 +77,10 @@ The below located script and style file contains all Syncfusion JavaScript (ES5) - -
          - +
          + +
          +
          - - - +Create a HTML page (**index.html**) in **~/quickstart** location and add the following CDN link references. Now, initiate the `Syncfusion JavaScript (ES5) TreeMap` control in the **index.html** by using following code. +```html + + + + Essential JS 2 + + + + + + +
          + + + ``` - Now, initiate the `Syncfusion JavaScript (ES5) TreeMap` control in the **index.html** by using following code. +> Please replace {RELEASE_VERSION} with the latest version number in the script file referred to in the sample. + +**Step 3:** Now, run the index.html in web browser, it will render the Essential JS 2 TreeMap control. + +The below example shows a basic TreeMap control. {% tabs %} {% highlight js tabtitle="index.js" %} diff --git a/ej2-javascript/treeview/accessibility.md b/ej2-javascript/treeview/accessibility.md index 6206ecab8..41f73b0a3 100644 --- a/ej2-javascript/treeview/accessibility.md +++ b/ej2-javascript/treeview/accessibility.md @@ -1,19 +1,19 @@ --- layout: post -title: Accessibility in ##Platform_Name## Treeview component | Syncfusion -description: Learn here all about Accessibility in Syncfusion ##Platform_Name## Treeview component of Syncfusion Essential JS 2 and more. +title: Accessibility in ##Platform_Name## TreeView control | Syncfusion +description: Learn here all about Accessibility in Syncfusion ##Platform_Name## TreeView control of Syncfusion Essential JS 2 and more. platform: ej2-javascript -control: Accessibility +control: Accessibility publishingplatform: ##Platform_Name## documentation: ug domainurl: ##DomainURL## --- -# Accessibility in ##Platform_Name## Treeview component +# Accessibility in ##Platform_Name## TreeView control -The TreeView component followed the accessibility guidelines and standards, including [ADA](https://www.ada.gov/), [Section 508](https://www.section508.gov/), [WCAG 2.2](https://www.w3.org/TR/WCAG22/) standards, and [WCAG roles](https://www.w3.org/TR/wai-aria/#roles) that are commonly used to evaluate accessibility. +The TreeView control follows the accessibility guidelines and standards, including [ADA](https://www.ada.gov/), [Section 508](https://www.section508.gov/), [WCAG 2.2](https://www.w3.org/TR/WCAG22/) standards, and [WCAG roles](https://www.w3.org/TR/wai-aria/#roles) that are commonly used to evaluate accessibility. -The accessibility compliance for the TreeView component is outlined below. +The accessibility compliance for the TreeView control is outlined below. | Accessibility Criteria | Compatibility | | -- | -- | @@ -33,20 +33,20 @@ The accessibility compliance for the TreeView component is outlined below. margin: 0.5em 0; } -
          Yes - All features of the component meet the requirement.
          +
          Yes - All features of the control meet the requirement.
          -
          Intermediate - Some features of the component do not meet the requirement.
          +
          Intermediate - Some features of the control do not meet the requirement.
          -
          No - The component does not meet the requirement.
          +
          No - The control does not meet the requirement.
          ## WAI-ARIA attributes -The TreeView component followed the [WAI-ARIA](https://www.w3.org/WAI/ARIA/apg/patterns/treeview/) patterns to meet the accessibility. The following ARIA attributes are used in the TreeView component: +The TreeView control follows the [WAI-ARIA](https://www.w3.org/WAI/ARIA/apg/patterns/treeview/) patterns to meet the accessibility. The following ARIA attributes are used in the TreeView control: | Attributes | Purpose | | --- | --- | | `role=tree` | All tree nodes are contained within the element. | -| `role=treeitem `| Specifies the role of each tree node in a selectable TreeView and its containment within the tree. | +| `role=treeitem` | Specifies the role of each tree node in a selectable TreeView and its containment within the tree. | | `role=group` | Specifies the role of each parent node container. | | `role=checkbox` | Indicates checkbox control along with treeitem element. | | `aria-multiselectable` | Indicates whether the TreeView enables multiple selection or not. | @@ -61,7 +61,7 @@ The TreeView component followed the [WAI-ARIA](https://www.w3.org/WAI/ARIA/apg/p ## Keyboard interaction -The TreeView component followed the [keyboard interaction](https://www.w3.org/WAI/ARIA/apg/patterns/treeview/#keyboardinteraction) guideline, making it easy for people who use assistive technologies (AT) and those who completely rely on keyboard navigation. The following keyboard shortcuts are supported by the TreeView component. +The TreeView control follows the [keyboard interaction](https://www.w3.org/WAI/ARIA/apg/patterns/treeview/#keyboardinteraction) guideline, making it easy for people who use assistive technologies (AT) and those who completely rely on keyboard navigation. The following keyboard shortcuts are supported by the TreeView control. | Interaction Keys | Description | |------|---------| @@ -79,12 +79,12 @@ The TreeView component followed the [keyboard interaction](https://www.w3.org/WA ## Ensuring accessibility -The TreeView component's accessibility levels are ensured through an [accessibility-checker](https://www.npmjs.com/package/accessibility-checker) and [axe-core](https://www.npmjs.com/package/axe-core) software tools during automated testing. +The TreeView control's accessibility levels are ensured through an [accessibility-checker](https://www.npmjs.com/package/accessibility-checker) and [axe-core](https://www.npmjs.com/package/axe-core) software tools during automated testing. -The accessibility compliance of the TreeView component is shown in the following sample. Open the [sample](https://ej2.syncfusion.com/accessibility/treeview.html) in a new window to evaluate the accessibility of the TreeView component with accessibility tools. +The accessibility compliance of the TreeView control is shown in the following sample. Open the [sample](https://ej2.syncfusion.com/accessibility/treeview.html) in a new window to evaluate the accessibility of the TreeView control with accessibility tools. {% previewsample "https://ej2.syncfusion.com/accessibility/treeview.html" %} ## See also -* [Accessibility in Syncfusion ##Platform_Name## components](../common/accessibility) +* [Accessibility in Syncfusion ##Platform_Name## controls](../common/accessibility) diff --git a/ej2-javascript/treeview/check-box.md b/ej2-javascript/treeview/check-box.md index 318ea250f..a5365a565 100644 --- a/ej2-javascript/treeview/check-box.md +++ b/ej2-javascript/treeview/check-box.md @@ -1,29 +1,29 @@ --- layout: post -title: Check box in ##Platform_Name## Treeview control | Syncfusion -description: Learn here all about Check box in Syncfusion ##Platform_Name## Treeview control of Syncfusion Essential JS 2 and more. +title: Check box in ##Platform_Name## TreeView control | Syncfusion +description: Learn here all about Check box in Syncfusion ##Platform_Name## TreeView control of Syncfusion Essential JS 2 and more. platform: ej2-javascript -control: Check box +control: Check box publishingplatform: ##Platform_Name## documentation: ug domainurl: ##DomainURL## --- -# Check box in ##Platform_Name## Treeview control +# Check box in ##Platform_Name## TreeView control -The TreeView component allows you to check more than one node in TreeView without affecting the UI's appearance by enabling the [showCheckBox](../api/treeview#showcheckbox) property. When this property is enabled, checkbox appears before each TreeView node text. +The TreeView control allows you to check more than one node without affecting the UI appearance by enabling the [showCheckBox](../api/treeview#showcheckbox) property. When this property is enabled, a checkbox appears before each TreeView node text. -* If one of the child nodes is not in a checked state, then the parent node will be in an intermediate state. +* If any child node is unchecked, the parent node will be in an intermediate state. -* If all the child nodes are in checked state, then the parent node's state will also be checked. +* If all child nodes are checked, the parent node will also be checked. -* If a parent node is checked, then all the child nodes' state will also be checked. +* If a parent node is checked, all child nodes will be checked as well. By default, the checkbox state of parent and child nodes are dependent on each other. If you need independent checked state, you can achieve it using the [`autoCheck`](../api/treeview#autocheck) property. -Using the [`checkedNodes`](../api/treeview#checkednodes) property, you can set the nodes that need to be checked or get the ID of nodes that are currently checked in the TreeView component. +Using the [`checkedNodes`](../api/treeview#checkednodes) property, you can set the nodes that need to be checked or get the ID of nodes that are currently checked in the TreeView control. -If you need to prevent the node check action for a particular node, the [`nodeChecking`](../api/treeview#nodechecking) event can be used which is triggered before the TreeView node is checked/unchecked. The [`nodeChecked`](../api/treeview#nodechecked) event will be triggered when the TreeView node is checked/unchecked successfully. +If you need to prevent a node check action for a particular node, the [`nodeChecking`](../api/treeview#nodechecking) event can be used, and it will be triggered before the TreeView node is checked/unchecked. The [`nodeChecked`](../api/treeview#nodechecked) event will be triggered when the TreeView node is checked/unchecked successfully. In the following example, the `showCheckBox` property is enabled. @@ -36,6 +36,9 @@ In the following example, the `showCheckBox` property is enabled. {% highlight html tabtitle="index.html" %} {% include code-snippet/treeview/checkboxes-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/treeview/checkboxes-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/treeview/checkboxes-cs1" %} @@ -49,6 +52,9 @@ In the following example, the `showCheckBox` property is enabled. {% highlight html tabtitle="index.html" %} {% include code-snippet/treeview/checkboxes-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/treeview/checkboxes-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/treeview/checkboxes-cs1" %} @@ -56,9 +62,9 @@ In the following example, the `showCheckBox` property is enabled. ## Checked nodes -You can get or set the checked nodes in TreeView at initial rendering and dynamically by using the [checkedNodes](../api/treeview#checkednodes) property. It returns the checked nodes' ID as an array. +You can get or set the checked nodes in the TreeView at initial rendering and dynamically by using the [checkedNodes](../api/treeview#checkednodes) property. It returns the checked nodes' IDs as an array. -In the following example, the **New South Wales** and **Western Australia** nodes are checked at initial rendering. If any more nodes are checked, the checked nodes' IDs will be displayed in alert. +In the following example, the **New South Wales** and **Western Australia** nodes are checked at initial rendering. If any more nodes are checked, the checked nodes' IDs will be displayed in an alert. {% if page.publishingplatform == "typescript" %} @@ -69,6 +75,9 @@ In the following example, the **New South Wales** and **Western Australia** node {% highlight html tabtitle="index.html" %} {% include code-snippet/treeview/checkboxes/checked-nodes-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/treeview/checkboxes/checked-nodes-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/treeview/checkboxes/checked-nodes-cs1" %} @@ -82,6 +91,9 @@ In the following example, the **New South Wales** and **Western Australia** node {% highlight html tabtitle="index.html" %} {% include code-snippet/treeview/checkboxes/checked-nodes-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/treeview/checkboxes/checked-nodes-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/treeview/checkboxes/checked-nodes-cs1" %} diff --git a/ej2-javascript/treeview/data-binding.md b/ej2-javascript/treeview/data-binding.md index 0f04cc522..01c3c0aca 100644 --- a/ej2-javascript/treeview/data-binding.md +++ b/ej2-javascript/treeview/data-binding.md @@ -1,27 +1,27 @@ --- layout: post -title: Data binding in ##Platform_Name## Treeview control | Syncfusion -description: Learn here all about Data binding in Syncfusion ##Platform_Name## Treeview control of Syncfusion Essential JS 2 and more. +title: Data binding in ##Platform_Name## TreeView control | Syncfusion +description: Learn here all about Data binding in Syncfusion ##Platform_Name## TreeView control of Syncfusion Essential JS 2 and more. platform: ej2-javascript -control: Data binding +control: Data binding publishingplatform: ##Platform_Name## documentation: ug domainurl: ##DomainURL## --- -# Data binding in ##Platform_Name## Treeview control +# Data binding in ##Platform_Name## TreeView control -The TreeView component provides the option to load data either from local data sources or from remote data services. This can be done through `dataSource` property that is a member of the [fields](../api/treeview#fields) property. The `dataSource` property supports array of JavaScript objects and [DataManager](../api/data/dataManager/). It also supports different kinds of data services such as OData, OData V4, Web API, URL, and JSON with the help of `DataManager` adaptors. +The TreeView control provides the option to load data from either local data sources or remote data services. This can be done through the `dataSource` property, which is a member of the [fields](../api/TreeView#fields) property. The `dataSource` property supports arrays of JavaScript objects and [DataManager](../api/data/dataManager/). It also supports different kinds of data services, such as OData, OData V4, Web API, URL, and JSON with the help of `DataManager` adaptors. -TreeView has `load on demand` (Lazy load), by default. It reduces the bandwidth size when consuming huge data. It loads first level nodes initially, and when parent node is expanded, loads the child nodes based on the `parentID/child` member. +TreeView has `load on demand` (Lazy load) by default. It reduces bandwidth usage when consuming large amounts of data. It initially loads first-level nodes, and when a parent node is expanded, it loads child nodes based on the `parentID/child` member. -By default, the `loadOnDemand` is set to true. By disabling this property, all the tree nodes are rendered at the beginning itself. +By default, [`loadOnDemand`](../api/treeview#loadondemand) is set to true. By disabling this property, all the tree nodes are rendered at the beginning itself. -You can use the [`dataBound`](../api/treeview#databound) event to perform actions. This event will be triggered once the data source is populated in the TreeView. +You can use the [`dataBound`](../api/treeview#databound) event to perform actions. This event is triggered once the data source is populated in the TreeView. ## Local data -To bind local data to the TreeView, you can assign a JavaScript object array to the [dataSource](../api/treeview/fieldsSettingsModel#datasource) property. The TreeView component requires three fields (ID, text, and parentID) to render local data source. When mapper fields are not specified, it takes the default values as the mapping fields. Local data source can also be provided as an instance of the `DataManager`. It supports two kinds of local data binding methods. +To bind local data to the TreeView, you can assign a JavaScript object array to the [dataSource](../api/treeview/fieldsSettingsModel#datasource) property. The TreeView control requires three fields (ID, text, and parentID) to render the local data source. When mapper fields are not specified, it takes the default values as the mapping fields. The local data source can also be provided as an instance of the `DataManager`. It supports two kinds of local data binding methods: * Hierarchical data @@ -29,9 +29,9 @@ To bind local data to the TreeView, you can assign a JavaScript object array to ### Hierarchical data -TreeView can be populated with hierarchical data source that contains nested array of JSON objects. You can directly assign hierarchical data to the [dataSource](../api/treeview/fieldsSettingsModel#datasource) property, and map all the field members with corresponding keys from the hierarchical data to `fields` property. +TreeView can be populated with hierarchical data sources that contain nested arrays of JSON objects. You can directly assign hierarchical data to the [dataSource](../api/treeview/fieldsSettingsModel#datasource) property and map all the field members with corresponding keys from the hierarchical data to the `fields` property. -In the following example, **code**, **name**, and **countries** columns from hierarchical data have been mapped to **id**, **text**, and **child** fields, respectively. +In the following example, the **code**, **name**, and **countries** columns from hierarchical data have been mapped to the **id**, **text**, and **child** fields, respectively. {% if page.publishingplatform == "typescript" %} @@ -42,6 +42,9 @@ In the following example, **code**, **name**, and **countries** columns from hie {% highlight html tabtitle="index.html" %} {% include code-snippet/treeview/data-binding/hierarchical-data-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/treeview/data-binding/hierarchical-data-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/treeview/data-binding/hierarchical-data-cs1" %} @@ -55,6 +58,9 @@ In the following example, **code**, **name**, and **countries** columns from hie {% highlight html tabtitle="index.html" %} {% include code-snippet/treeview/data-binding/hierarchical-data-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/treeview/data-binding/hierarchical-data-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/treeview/data-binding/hierarchical-data-cs1" %} @@ -62,13 +68,13 @@ In the following example, **code**, **name**, and **countries** columns from hie ### Self-referential data -TreeView can be populated from self-referential data structure that contains array of JSON objects with `parentID` mapping. +TreeView can be populated from a self-referential data structure that contains an array of JSON objects with [parentID](../api/treeview/fieldsSettingsModel/#parentid) mapping. -You can directly assign self-referential data to the `dataSource` property, and map all the field members with corresponding keys from self-referential data to [fields](../api/treeview#fields) property. +You can directly assign self-referential data to the `dataSource` property and map all the field members with corresponding keys from the self-referential data to the [fields](../api/treeview#fields) property. -To render the root level nodes, specify the parentID as null or no need to specify the parentID in `dataSource`. +To render the root-level nodes, specify the parentID as null, or there is no need to specify the parentID in `dataSource`. -In the following example, **id**, **pid**, **hasChild**, and **name** columns from self-referential data have been mapped to **id**, **parentID**, **hasChildren**, and **text** fields, respectively. +In the following example, the **id**, **pid**, **hasChild**, and **name** columns from self-referential data have been mapped to the **id**, **parentID**, **hasChildren**, and **text** fields, respectively. {% if page.publishingplatform == "typescript" %} @@ -79,6 +85,9 @@ In the following example, **id**, **pid**, **hasChild**, and **name** columns fr {% highlight html tabtitle="index.html" %} {% include code-snippet/treeview/data-binding/self-referential-data-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/treeview/data-binding/self-referential-data-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/treeview/data-binding/self-referential-data-cs1" %} @@ -92,6 +101,9 @@ In the following example, **id**, **pid**, **hasChild**, and **name** columns fr {% highlight html tabtitle="index.html" %} {% include code-snippet/treeview/data-binding/self-referential-data-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/treeview/data-binding/self-referential-data-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/treeview/data-binding/self-referential-data-cs1" %} @@ -99,13 +111,13 @@ In the following example, **id**, **pid**, **hasChild**, and **name** columns fr ## Remote data -TreeView can also be populated from a remote data service with the help of [DataManager](../api/data/dataManager/) component and `Query` property. +TreeView can also be populated from a remote data service with the help of the [DataManager](../api/data/dataManager/) control and `Query` property. -It supports different kinds of data services such as OData, OData V4, Web API, URL, and JSON with the help of `DataManager` adaptors. +It supports different kinds of data services, such as OData, OData V4, Web API, URL, and JSON, with the help of `DataManager` adaptors. -You can assign service data as an instance of `DataManager` to the `dataSource` property. To interact with remote data source, you have to provide the endpoint `url`. +You can assign service data as an instance of `DataManager` to the `dataSource` property. To interact with the remote data source, you have to provide the endpoint `url`. -The `DataManager` that acts as an interface between the service endpoint and the TreeView requires the following information to interact with service endpoint properly. +The `DataManager`, which acts as an interface between the service endpoint and the TreeView, requires the following information to interact with the service endpoint properly: * `DataManager->url`: Defines the service endpoint to fetch data. @@ -137,6 +149,9 @@ The **OrderID**, **EmployeeID**, and **ShipName** columns from orders table have {% highlight html tabtitle="index.html" %} {% include code-snippet/treeview/data-binding/remote-data-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/treeview/data-binding/remote-data-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/treeview/data-binding/remote-data-cs1" %} @@ -150,6 +165,9 @@ The **OrderID**, **EmployeeID**, and **ShipName** columns from orders table have {% highlight html tabtitle="index.html" %} {% include code-snippet/treeview/data-binding/remote-data-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/treeview/data-binding/remote-data-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/treeview/data-binding/remote-data-cs1" %} diff --git a/ej2-javascript/treeview/drag-and-drop.md b/ej2-javascript/treeview/drag-and-drop.md index c87f89f37..38ffbc371 100644 --- a/ej2-javascript/treeview/drag-and-drop.md +++ b/ej2-javascript/treeview/drag-and-drop.md @@ -1,33 +1,33 @@ --- layout: post -title: Drag and drop in ##Platform_Name## Treeview control | Syncfusion -description: Learn here all about Drag and drop in Syncfusion ##Platform_Name## Treeview control of Syncfusion Essential JS 2 and more. +title: Drag and drop in ##Platform_Name## TreeView control | Syncfusion +description: Learn here all about Drag and drop in Syncfusion ##Platform_Name## TreeView control of Syncfusion Essential JS 2 and more. platform: ej2-javascript -control: Drag and drop +control: Drag and drop publishingplatform: ##Platform_Name## documentation: ug domainurl: ##DomainURL## --- -# Drag and drop in ##Platform_Name## Treeview control +# Drag and drop in ##Platform_Name## TreeView control -The TreeView component allows you to drag and drop any node by setting [allowDragAndDrop](../api/treeview#allowdraganddrop) to **true**. Nodes can be dragged and dropped at all levels of the same TreeView. +The TreeView control allows you to drag and drop any node by setting [allowDragAndDrop](../api/treeview#allowdraganddrop) to **true**. Nodes can be dragged and dropped at all levels of the same TreeView. -The dragged nodes can be dropped at any level by indicator lines with **line**, **plus/minus**, and **restrict** icons. It represents the exact position where the node is to be dropped as sibling or child. +The dragged nodes can be dropped at any level by indicator lines with **line**, **plus/minus**, and **restrict** icons. These icons represent the exact position where the node is to be dropped as a sibling or child. -The following table explains the usage of indicator icons. +The following table explains the usage of indicator icons: | Icons | Description | |------|-------------| -| Plus icon | Indicates that the dragged node is to be added as child of target node. | -| Minus or restrict icon |Indicates that the dragged node is not to be dropped at the hovered region. | -| In between icon | Indicates that the dragged node is to be added as siblings of hovered region. | +| Plus icon | Indicates that the dragged node is to be added as a child of the target node. | +| Minus or restrict icon | Indicates that the dragged node is not to be dropped at the hovered region. | +| In between icon | Indicates that the dragged node is to be added as a sibling of the hovered region. | -* If you need to prevent dragging action for a particular node, the [`nodeDragStart`](../api/treeview#nodedragstart) event can be used which is triggered when the node drag is started. If you need to prevent dropping action for a particular node, the [`nodeDragStop`](../api/treeview#nodedragstop) event can be used which is triggered when the drag is stopped. +* If you need to prevent dragging action for a particular node, the [`nodeDragStart`](../api/treeview#nodedragstart) event can be used, which is triggered when the node drag starts. If you need to prevent dropping action for a particular node, the [`nodeDragStop`](../api/treeview#nodedragstop) event can be used, which is triggered when the drag stops. * The [`nodeDragging`](../api/treeview#nodedragging) event is triggered when the TreeView node is being dragged. You can customize the cloned element in this event. -* The [`nodeDropped`](../api/treeview#nodedropped) event is triggered when the TreeView node is dropped on the target element successfully. +* The [`nodeDropped`](../api/treeview#nodedropped) event is triggered when the TreeView node is successfully dropped on the target element. In the following sample, the [allowDragAndDrop](../api/treeview#allowdraganddrop) property is enabled. @@ -40,8 +40,11 @@ In the following sample, the [allowDragAndDrop](../api/treeview#allowdraganddrop {% highlight html tabtitle="index.html" %} {% include code-snippet/treeview/drag-and-drop/single-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/treeview/drag-and-drop/single-cs1/index.css %} +{% endhighlight %} {% endtabs %} - + {% previewsample "page.domainurl/code-snippet/treeview/drag-and-drop/single-cs1" %} {% elsif page.publishingplatform == "javascript" %} @@ -53,6 +56,9 @@ In the following sample, the [allowDragAndDrop](../api/treeview#allowdraganddrop {% highlight html tabtitle="index.html" %} {% include code-snippet/treeview/drag-and-drop/single-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/treeview/drag-and-drop/single-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/treeview/drag-and-drop/single-cs1" %} @@ -62,9 +68,9 @@ In the following sample, the [allowDragAndDrop](../api/treeview#allowdraganddrop To drag and drop more than one node, you should enable the [allowMultiSelection](../api/treeview#allowmultiselection) property along with the `allowDragAndDrop` property. -To perform multi-selection, press and hold **CTRL** key and click the desired nodes. To select range of nodes, press and hold the **SHIFT** key and click the nodes. +To perform multi-selection, press and hold the **CTRL** key and click the desired nodes. To select a range of nodes, press and hold the **SHIFT** key and click the nodes. -In the following sample, the `allowMultiSelection` property is enabled along with the `allowDragAndDrop` property. +In the following sample, the `allowMultiSelection` property is enabled along with the `allowDragAndDrop` property. {% if page.publishingplatform == "typescript" %} @@ -75,6 +81,9 @@ In the following sample, the `allowMultiSelection` property is enabled along w {% highlight html tabtitle="index.html" %} {% include code-snippet/treeview/drag-and-drop/multiple-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/treeview/drag-and-drop/multiple-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/treeview/drag-and-drop/multiple-cs1" %} @@ -88,6 +97,9 @@ In the following sample, the `allowMultiSelection` property is enabled along w {% highlight html tabtitle="index.html" %} {% include code-snippet/treeview/drag-and-drop/multiple-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/treeview/drag-and-drop/multiple-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/treeview/drag-and-drop/multiple-cs1" %} diff --git a/ej2-javascript/treeview/how-to/accordion-tree.md b/ej2-javascript/treeview/how-to/accordion-tree.md index d37c2fc5b..09f570518 100644 --- a/ej2-javascript/treeview/how-to/accordion-tree.md +++ b/ej2-javascript/treeview/how-to/accordion-tree.md @@ -1,17 +1,17 @@ --- layout: post -title: Accordion tree in ##Platform_Name## Treeview control | Syncfusion -description: Learn here all about Accordion tree in Syncfusion ##Platform_Name## Treeview control of Syncfusion Essential JS 2 and more. +title: Accordion tree in ##Platform_Name## TreeView control | Syncfusion +description: Learn here all about Accordion tree in Syncfusion ##Platform_Name## TreeView control of Syncfusion Essential JS 2 and more. platform: ej2-javascript -control: Accordion tree +control: Accordion tree publishingplatform: ##Platform_Name## documentation: ug domainurl: ##DomainURL## --- -# Accordion tree in ##Platform_Name## Treeview control +# Accordion tree in ##Platform_Name## TreeView control -Accordion is an interface where a list of items can be collapsed or expanded, but only one list can be collapsed or expanded at a time. You can customize the TreeView to make it behave as an accordion. Refer to the following code sample to create an accordion tree. +An Accordion is an interface in which a list of items can be collapsed or expanded, but only one list can be expanded at a time. You can customize the TreeView to make it behave like an accordion. Refer to the following code sample to create an accordion tree. {% if page.publishingplatform == "typescript" %} diff --git a/ej2-javascript/treeview/how-to/auto-hide-show-expand-collapse-icon.md b/ej2-javascript/treeview/how-to/auto-hide-show-expand-collapse-icon.md index e2ec7e14c..b650af358 100644 --- a/ej2-javascript/treeview/how-to/auto-hide-show-expand-collapse-icon.md +++ b/ej2-javascript/treeview/how-to/auto-hide-show-expand-collapse-icon.md @@ -1,17 +1,17 @@ --- layout: post -title: Auto hide show expand collapse icon in ##Platform_Name## Treeview control | Syncfusion -description: Learn here all about Auto hide show expand collapse icon in Syncfusion ##Platform_Name## Treeview control of Syncfusion Essential JS 2 and more. +title: Auto hide/show expand collapse icon in ##Platform_Name## TreeView control | Syncfusion +description: Learn here all about auto-hide/show expand collapse icon in Syncfusion ##Platform_Name## TreeView control of Syncfusion Essential JS 2 and more. platform: ej2-javascript -control: Auto hide show expand collapse icon +control: Auto hide show expand collapse icon publishingplatform: ##Platform_Name## documentation: ug domainurl: ##DomainURL## --- -# Auto hide show expand collapse icon in ##Platform_Name## Treeview control +# Auto hide/show expand collapse icon in ##Platform_Name## TreeView control -You can display the expand icon by hovering the mouse over TreeView and hide the expand icon by leaving the mouse from TreeView. Refer to the following code sample to hide/show the expand/collapse icon automatically using the mouse. +You can display the expand icon by hovering the mouse over the TreeView, and hide the expand icon by moving the mouse away. Refer to the following code sample to automatically hide/show the expand/collapse icon using the mouse. {% if page.publishingplatform == "typescript" %} @@ -22,6 +22,9 @@ You can display the expand icon by hovering the mouse over TreeView and hide the {% highlight html tabtitle="index.html" %} {% include code-snippet/treeview/how-to/auto-hide-icons-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/treeview/how-to/auto-hide-icons-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/treeview/how-to/auto-hide-icons-cs1" %} @@ -35,6 +38,9 @@ You can display the expand icon by hovering the mouse over TreeView and hide the {% highlight html tabtitle="index.html" %} {% include code-snippet/treeview/how-to/auto-hide-icons-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/treeview/how-to/auto-hide-icons-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/treeview/how-to/auto-hide-icons-cs1" %} diff --git a/ej2-javascript/treeview/how-to/check-uncheck-the-checkbox-on-clicking-the-tree-node-text.md b/ej2-javascript/treeview/how-to/check-uncheck-the-checkbox-on-clicking-the-tree-node-text.md index f2f9f43b1..5f756a846 100644 --- a/ej2-javascript/treeview/how-to/check-uncheck-the-checkbox-on-clicking-the-tree-node-text.md +++ b/ej2-javascript/treeview/how-to/check-uncheck-the-checkbox-on-clicking-the-tree-node-text.md @@ -1,17 +1,17 @@ --- layout: post -title: Check uncheck the checkbox on clicking the tree node text in ##Platform_Name## Treeview control | Syncfusion -description: Learn here all about Check uncheck the checkbox on clicking the tree node text in Syncfusion ##Platform_Name## Treeview control of Syncfusion Essential JS 2 and more. +title: Check tree text ##Platform_Name## TreeView | Syncfusion +description: Learn here all about Check uncheck the checkbox clicking the tree node text in ##Platform_Name## TreeView control of Syncfusion JS 2 and more. platform: ej2-javascript -control: Check uncheck the checkbox on clicking the tree node text +control: Check uncheck the checkbox on clicking the tree node text publishingplatform: ##Platform_Name## documentation: ug domainurl: ##DomainURL## --- -# Check uncheck the checkbox on clicking the tree node text in ##Platform_Name## Treeview control +# Check and Uncheck by clicking tree node text in ##Platform_Name## TreeView control -You can check and uncheck the checkboxes of tree view by clicking the tree node using the `nodeClicked` event of TreeView. +You can check and uncheck the checkboxes of the TreeView control by clicking the tree node using the [`nodeClicked`](../../api/treeview#nodeclicked) event of TreeView. {% if page.publishingplatform == "typescript" %} @@ -22,8 +22,11 @@ You can check and uncheck the checkboxes of tree view by clicking the tree node {% highlight html tabtitle="index.html" %} {% include code-snippet/treeview/how-to/check-text-node-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/treeview/how-to/check-text-node-cs1/index.css %} +{% endhighlight %} {% endtabs %} - + {% previewsample "page.domainurl/code-snippet/treeview/how-to/check-text-node-cs1" %} {% elsif page.publishingplatform == "javascript" %} @@ -35,6 +38,9 @@ You can check and uncheck the checkboxes of tree view by clicking the tree node {% highlight html tabtitle="index.html" %} {% include code-snippet/treeview/how-to/check-text-node-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/treeview/how-to/check-text-node-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/treeview/how-to/check-text-node-cs1" %} diff --git a/ej2-javascript/treeview/how-to/customize-the-expand-and-collapse-icons.md b/ej2-javascript/treeview/how-to/customize-the-expand-and-collapse-icons.md index a84cba9da..3a690ddc8 100644 --- a/ej2-javascript/treeview/how-to/customize-the-expand-and-collapse-icons.md +++ b/ej2-javascript/treeview/how-to/customize-the-expand-and-collapse-icons.md @@ -1,18 +1,18 @@ --- layout: post -title: Customize the expand and collapse icons in ##Platform_Name## Treeview control | Syncfusion -description: Learn here all about Customize the expand and collapse icons in Syncfusion ##Platform_Name## Treeview control of Syncfusion Essential JS 2 and more. +title: Customize the expand and collapse icons in ##Platform_Name## TreeView control | Syncfusion +description: Learn here all about customizing the expand and collapse icons in Syncfusion ##Platform_Name## TreeView control of Syncfusion Essential JS 2 and more. platform: ej2-javascript -control: Customize the expand and collapse icons +control: Customize the expand and collapse icons publishingplatform: ##Platform_Name## documentation: ug domainurl: ##DomainURL## --- -# Customize the expand and collapse icons in ##Platform_Name## Treeview control +# Customize the expand and collapse icons in ##Platform_Name## TreeView control -You can customize TreeView expand and collapse icons by using the [`cssClass`](../../api/treeview#cssclass) property of TreeView. -Refer to the sample to customize expand/collapse icons. +You can customize the TreeView expand and collapse icons by using the [`cssClass`](../../api/treeview#cssclass) property of TreeView. +Refer to the sample below to customize expand/collapse icons. {% if page.publishingplatform == "typescript" %} diff --git a/ej2-javascript/treeview/how-to/customize-the-tree-nodes-based-on-levels.md b/ej2-javascript/treeview/how-to/customize-the-tree-nodes-based-on-levels.md index f09cd1226..9abf1508c 100644 --- a/ej2-javascript/treeview/how-to/customize-the-tree-nodes-based-on-levels.md +++ b/ej2-javascript/treeview/how-to/customize-the-tree-nodes-based-on-levels.md @@ -1,17 +1,17 @@ --- layout: post -title: Customize the tree nodes based on levels in ##Platform_Name## Treeview control | Syncfusion -description: Learn here all about Customize the tree nodes based on levels in Syncfusion ##Platform_Name## Treeview control of Syncfusion Essential JS 2 and more. +title: Customize the tree nodes based on levels in ##Platform_Name## TreeView control | Syncfusion +description: Learn here all about Customize the tree nodes based on levels in Syncfusion ##Platform_Name## TreeView control of Syncfusion Essential JS 2 and more. platform: ej2-javascript -control: Customize the tree nodes based on levels +control: Customize the tree nodes based on levels publishingplatform: ##Platform_Name## documentation: ug domainurl: ##DomainURL## --- -# Customize the tree nodes based on levels in ##Platform_Name## Treeview control +# Customize the tree nodes based on levels in ##Platform_Name## TreeView control -You can customize the tree nodes level wise by adding custom cssClass to the component and enabling styles. +You can customize the tree node levels by adding a custom [`cssClass`](../../api/treeview/#cssclass) to the control and applying styles accordingly. {% if page.publishingplatform == "typescript" %} diff --git a/ej2-javascript/treeview/how-to/disable-checkbox-of-the-tree-node.md b/ej2-javascript/treeview/how-to/disable-checkbox-of-the-tree-node.md index c60e83eb0..6ed9ba66a 100644 --- a/ej2-javascript/treeview/how-to/disable-checkbox-of-the-tree-node.md +++ b/ej2-javascript/treeview/how-to/disable-checkbox-of-the-tree-node.md @@ -1,17 +1,17 @@ --- layout: post -title: Disable checkbox of the tree node in ##Platform_Name## Treeview control | Syncfusion -description: Learn here all about Disable checkbox of the tree node in Syncfusion ##Platform_Name## Treeview control of Syncfusion Essential JS 2 and more. +title: Disable checkbox of the tree node in ##Platform_Name## TreeView control | Syncfusion +description: Learn here all about Disable checkbox of the tree node in Syncfusion ##Platform_Name## TreeView control of Syncfusion Essential JS 2 and more. platform: ej2-javascript -control: Disable checkbox of the tree node +control: Disable checkbox of the tree node publishingplatform: ##Platform_Name## documentation: ug domainurl: ##DomainURL## --- -# Disable checkbox of the tree node in ##Platform_Name## Treeview control +# Disable checkbox of the tree node in ##Platform_Name## TreeView control -You can disable the check box alone in TreeView instead of disabling the whole node. You need to include the `e-checkbox-disabled` class into the check box element using the `drawNode` event. Please refer to the following sample to disable the check box of the tree nodes. +You can disable only the checkbox in the TreeView control without disabling the entire node. To achieve this, add the `e-checkbox-disabled` class to the checkbox element using the [`drawNode`](../../api/treeview#drawnode) event. Please refer to the following example to disable the checkbox of the tree nodes. {% if page.publishingplatform == "typescript" %} @@ -22,8 +22,11 @@ You can disable the check box alone in TreeView instead of disabling the whole n {% highlight html tabtitle="index.html" %} {% include code-snippet/treeview/how-to/disable-checkbox-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/treeview/how-to/disable-checkbox-cs1/index.css %} +{% endhighlight %} {% endtabs %} - + {% previewsample "page.domainurl/code-snippet/treeview/how-to/disable-checkbox-cs1" %} {% elsif page.publishingplatform == "javascript" %} @@ -35,6 +38,9 @@ You can disable the check box alone in TreeView instead of disabling the whole n {% highlight html tabtitle="index.html" %} {% include code-snippet/treeview/how-to/disable-checkbox-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/treeview/how-to/disable-checkbox-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/treeview/how-to/disable-checkbox-cs1" %} diff --git a/ej2-javascript/treeview/how-to/filtering-tree-nodes.md b/ej2-javascript/treeview/how-to/filtering-tree-nodes.md index 576ad5206..fa83789fe 100644 --- a/ej2-javascript/treeview/how-to/filtering-tree-nodes.md +++ b/ej2-javascript/treeview/how-to/filtering-tree-nodes.md @@ -1,17 +1,17 @@ --- layout: post -title: Filtering tree nodes in ##Platform_Name## Treeview control | Syncfusion -description: Learn here all about Filtering tree nodes in Syncfusion ##Platform_Name## Treeview control of Syncfusion Essential JS 2 and more. +title: Filtering tree nodes in ##Platform_Name## TreeView control | Syncfusion +description: Learn here all about filtering tree nodes in Syncfusion ##Platform_Name## TreeView control of Syncfusion Essential JS 2 and more. platform: ej2-javascript -control: Filtering tree nodes +control: Filtering tree nodes publishingplatform: ##Platform_Name## documentation: ug domainurl: ##DomainURL## --- -# Filtering tree nodes in ##Platform_Name## Treeview control +# Filtering tree nodes in ##Platform_Name## TreeView control -You can filter the tree nodes based on their text using the `DataManager` plugin and the `fields` property of the TreeView. +You can filter the tree nodes based on their text using the [`DataManager`](../../api/data/dataManager/) plugin and the [`fields`](../../api/treeview/#fields) property of the TreeView. The following code example demonstrates how to filter the tree nodes in a TreeView. diff --git a/ej2-javascript/treeview/how-to/get-all-child-nodes.md b/ej2-javascript/treeview/how-to/get-all-child-nodes.md index a67ffa112..b152869d1 100644 --- a/ej2-javascript/treeview/how-to/get-all-child-nodes.md +++ b/ej2-javascript/treeview/how-to/get-all-child-nodes.md @@ -1,17 +1,17 @@ --- layout: post -title: Get all child nodes in ##Platform_Name## Treeview control | Syncfusion -description: Learn here all about Get all child nodes in Syncfusion ##Platform_Name## Treeview control of Syncfusion Essential JS 2 and more. +title: Get all child nodes in ##Platform_Name## TreeView control | Syncfusion +description: Learn here all about Get all child nodes in Syncfusion ##Platform_Name## TreeView control of Syncfusion Essential JS 2 and more. platform: ej2-javascript -control: Get all child nodes +control: Get all child nodes publishingplatform: ##Platform_Name## documentation: ug domainurl: ##DomainURL## --- -# Get all child nodes in ##Platform_Name## Treeview control +# Get all child nodes in ##Platform_Name## TreeView control -This section demonstrates how to get the child nodes from corresponding parent ID. Using the `getNode` method, you can get the node details of TreeView. Please refer to the following sample. +This section demonstrates how to retrieve child nodes from a corresponding parent ID within the TreeView control. By using the [`getNode`](../../api/treeview#getnode) method, you can obtain the node details of the TreeView. Please refer to the following example. {% if page.publishingplatform == "typescript" %} @@ -22,8 +22,11 @@ This section demonstrates how to get the child nodes from corresponding parent I {% highlight html tabtitle="index.html" %} {% include code-snippet/treeview/how-to/get-child-nodes-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/treeview/how-to/get-child-nodes-cs1/index.css %} +{% endhighlight %} {% endtabs %} - + {% previewsample "page.domainurl/code-snippet/treeview/how-to/get-child-nodes-cs1" %} {% elsif page.publishingplatform == "javascript" %} @@ -35,6 +38,9 @@ This section demonstrates how to get the child nodes from corresponding parent I {% highlight html tabtitle="index.html" %} {% include code-snippet/treeview/how-to/get-child-nodes-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/treeview/how-to/get-child-nodes-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/treeview/how-to/get-child-nodes-cs1" %} diff --git a/ej2-javascript/treeview/how-to/get-dynamic-icon.md b/ej2-javascript/treeview/how-to/get-dynamic-icon.md index 19c03967d..df1abddef 100644 --- a/ej2-javascript/treeview/how-to/get-dynamic-icon.md +++ b/ej2-javascript/treeview/how-to/get-dynamic-icon.md @@ -1,17 +1,17 @@ --- layout: post -title: Get dynamic icon in ##Platform_Name## Treeview control | Syncfusion -description: Learn here all about Get dynamic icon in Syncfusion ##Platform_Name## Treeview control of Syncfusion Essential JS 2 and more. +title: Get dynamic icon in ##Platform_Name## TreeView control | Syncfusion +description: Learn here all about getting dynamic icons in the Syncfusion ##Platform_Name## TreeView control of Syncfusion Essential JS 2 and more. platform: ej2-javascript -control: Get dynamic icon +control: Get dynamic icon publishingplatform: ##Platform_Name## documentation: ug domainurl: ##DomainURL## --- -# Get dynamic icon in ##Platform_Name## Treeview control +# Get dynamic icon in ##Platform_Name## TreeView control -In TreeView component, you can get the original bound data using the `getTreeData` method. For this method, if you pass the id of the tree node, it returns the corresponding node information, or otherwise the overall tree nodes information will be returned. You can use this method to get the bound iconCss class in the `nodeChecking` event. Please refer to the following sample. +In the TreeView control, you can obtain the original bound data using the [`getTreeData`](../../api/treeview#gettreedata) method. If you pass the ID of a tree node to this method, it returns the corresponding node information. Otherwise, the information of all tree nodes will be returned. You can use this method to get the bound [`iconCss`](../../api/treeview/fieldsSettingsModel/#iconcss) class in the [`nodeChecking`](../../api/treeview#nodechecking) event. Please refer to the following sample for implementation details. {% if page.publishingplatform == "typescript" %} diff --git a/ej2-javascript/treeview/how-to/hover-multi-line-tree-node.md b/ej2-javascript/treeview/how-to/hover-multi-line-tree-node.md index 996a44e74..c7b57ed1c 100644 --- a/ej2-javascript/treeview/how-to/hover-multi-line-tree-node.md +++ b/ej2-javascript/treeview/how-to/hover-multi-line-tree-node.md @@ -1,17 +1,17 @@ --- layout: post -title: Hover multi line tree node in ##Platform_Name## Treeview control | Syncfusion -description: Learn here all about Hover multi line tree node in Syncfusion ##Platform_Name## Treeview control of Syncfusion Essential JS 2 and more. +title: Hover over multi-line tree node in ##Platform_Name## TreeView control | Syncfusion +description: Learn here all about hovering over multi-line tree nodes in the Syncfusion ##Platform_Name## TreeView control of Syncfusion Essential JS 2 and more. platform: ej2-javascript -control: Hover multi line tree node +control: Hover multi line tree node publishingplatform: ##Platform_Name## documentation: ug domainurl: ##DomainURL## --- -# Hover multi line tree node in ##Platform_Name## Treeview control +# Hover over multi-line tree node in ##Platform_Name## TreeView control -This section demonstrates how to hover and select a multi-line tree node. Here, you can set the row height (element class: `e-fullrow`) to be the same as the row content (element class: `e-text-content`) +This section demonstrates how to hover and select a multi-line tree node. You can set the row height (element class: `e-fullrow`) to be the same as the row content (element class: `e-text-content`). {% if page.publishingplatform == "typescript" %} diff --git a/ej2-javascript/treeview/how-to/manipulating-nodes.md b/ej2-javascript/treeview/how-to/manipulating-nodes.md index 4fe1c8284..8b8cb3a76 100644 --- a/ej2-javascript/treeview/how-to/manipulating-nodes.md +++ b/ej2-javascript/treeview/how-to/manipulating-nodes.md @@ -9,21 +9,21 @@ documentation: ug domainurl: ##DomainURL## --- -# Nodes Manipulation in ##Platform_Name## TreeView control +# Nodes Manipulation in ##Platform_Name## TreeView Control -The TreeView control provides essential methods for dynamically managing nodes, offering the ability to create a highly interactive and customizable tree structure, +The TreeView control provides essential methods for dynamically managing nodes, offering the ability to create a highly interactive and customizable tree structure: -* [addNodes](https://ej2.syncfusion.com/javascript/documentation/api/treeview/#addnodes) -* [removeNodes](https://ej2.syncfusion.com/javascript/documentation/api/treeview/#removenodes) -* [updateNode](https://ej2.syncfusion.com/javascript/documentation/api/treeview/#updatenode) -* [refreshNode](https://ej2.syncfusion.com/javascript/documentation/api/treeview/#refreshnode) -* [moveNodes](https://ej2.syncfusion.com/javascript/documentation/api/treeview/#movenodes) +* [addNodes](../../api/treeview/#addnodes) +* [removeNodes](../../api/treeview/#removenodes) +* [updateNode](../../api/treeview/#updatenode) +* [refreshNode](../../api/treeview/#refreshnode) +* [moveNodes](../../api/treeview/#movenodes) These methods provide the flexibility to add, remove, update, refresh, or relocate nodes as needed, facilitating a fully interactive and customizable TreeView structure. ## Dynamically adding nodes -The [`addNodes`](https://ej2.syncfusion.com/javascript/documentation/api/treeview/#addnodes) method of TreeView allows you to insert new nodes at designated positions within the TreeView by passing the necessary node information. You can add both parent and child nodes by specifying their target ID. +The [`addNodes`](../../api/treeview/#addnodes) method of the TreeView allows you to insert new nodes at designated positions within the TreeView by passing the necessary node information. You can add both parent and child nodes by specifying their target ID. {% if page.publishingplatform == "typescript" %} @@ -34,6 +34,9 @@ The [`addNodes`](https://ej2.syncfusion.com/javascript/documentation/api/treevie {% highlight html tabtitle="index.html" %} {% include code-snippet/treeview/how-to/manipulating-nodes/addNodes/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/treeview/how-to/manipulating-nodes/addNodes/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/treeview/how-to/manipulating-nodes/addNodes" %} @@ -47,6 +50,9 @@ The [`addNodes`](https://ej2.syncfusion.com/javascript/documentation/api/treevie {% highlight html tabtitle="index.html" %} {% include code-snippet/treeview/how-to/manipulating-nodes/addNodes/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/treeview/how-to/manipulating-nodes/addNodes/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/treeview/how-to/manipulating-nodes/addNodes" %} @@ -54,7 +60,7 @@ The [`addNodes`](https://ej2.syncfusion.com/javascript/documentation/api/treevie ## Dynamically removing nodes -The TreeView [`removeNodes`](https://ej2.syncfusion.com/javascript/documentation/api/treeview/#removenodes) method lets you remove multiple nodes by providing their IDs. You can remove both parent and child nodes. +The TreeView [`removeNodes`](../../api/treeview/#removenodes) method lets you remove multiple nodes by providing their IDs. You can remove both parent and child nodes. {% if page.publishingplatform == "typescript" %} @@ -65,8 +71,11 @@ The TreeView [`removeNodes`](https://ej2.syncfusion.com/javascript/documentation {% highlight html tabtitle="index.html" %} {% include code-snippet/treeview/how-to/manipulating-nodes/removeNodes/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/treeview/how-to/manipulating-nodes/removeNodes/index.css %} +{% endhighlight %} {% endtabs %} - + {% previewsample "page.domainurl/code-snippet/treeview/how-to/manipulating-nodes/removeNodes" %} {% elsif page.publishingplatform == "javascript" %} @@ -78,26 +87,32 @@ The TreeView [`removeNodes`](https://ej2.syncfusion.com/javascript/documentation {% highlight html tabtitle="index.html" %} {% include code-snippet/treeview/how-to/manipulating-nodes/removeNodes/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/treeview/how-to/manipulating-nodes/removeNodes/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/treeview/how-to/manipulating-nodes/removeNodes" %} {% endif %} -## Dynamically update nodes +## Dynamically updating nodes -The TreeView control has the [`updateNode`](https://ej2.syncfusion.com/javascript/documentation/api/treeview/#updatenode) method, which allows you to change a specific node's text by providing its target (either the node ID or element) and the new text. To enable text editing, set the [`allowEditing`](https://ej2.syncfusion.com/documentation/api/treeview#allowediting) property to true, ensuring correct functionality of the `updateNode` method. +The TreeView control has the [`updateNode`](../../api/treeview/#updatenode) method, which allows you to change a specific node's text by providing its target (either the node ID or element) and the new text. To enable text editing, set the [`allowEditing`](../../api/treeview#allowediting) property to true, ensuring the correct functionality of the [`updateNode`](../../api/treeview#updatenode) method. {% if page.publishingplatform == "typescript" %} - {% tabs %} +{% tabs %} {% highlight ts tabtitle="index.ts" %} {% include code-snippet/treeview/how-to/manipulating-nodes/updateNode/index.ts %} {% endhighlight %} {% highlight html tabtitle="index.html" %} {% include code-snippet/treeview/how-to/manipulating-nodes/updateNode/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/treeview/how-to/manipulating-nodes/updateNode/index.css %} +{% endhighlight %} {% endtabs %} - + {% previewsample "page.domainurl/code-snippet/treeview/how-to/manipulating-nodes/updateNode" %} {% elsif page.publishingplatform == "javascript" %} @@ -109,26 +124,32 @@ The TreeView control has the [`updateNode`](https://ej2.syncfusion.com/javascrip {% highlight html tabtitle="index.html" %} {% include code-snippet/treeview/how-to/manipulating-nodes/updateNode/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/treeview/how-to/manipulating-nodes/updateNode/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/treeview/how-to/manipulating-nodes/updateNode" %} {% endif %} -## Dynamically refresh nodes +## Dynamically refreshing nodes -The [`refreshNode`](https://ej2.syncfusion.com/javascript/documentation/api/treeview/#refreshnode) method in TreeView allows you to update the content of a specific node by providing its target and the new details. To retrieve the current details of the node, use the [`getTreeData`](https://ej2.syncfusion.com/documentation/api/treeview/#gettreedata) method in conjunction with the node's ID. This method refreshes a designated node within the TreeView. +The [`refreshNode`](../../api/treeview/#refreshnode) method in TreeView allows you to update the content of a specific node by providing its target and the new details. To retrieve the current details of the node, use the [`getTreeData`](../../api/treeview/#gettreedata) method in conjunction with the node's ID. This method refreshes a designated node within the TreeView. {% if page.publishingplatform == "typescript" %} - {% tabs %} +{% tabs %} {% highlight ts tabtitle="index.ts" %} {% include code-snippet/treeview/how-to/manipulating-nodes/refreshNode/index.ts %} {% endhighlight %} {% highlight html tabtitle="index.html" %} {% include code-snippet/treeview/how-to/manipulating-nodes/refreshNode/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/treeview/how-to/manipulating-nodes/refreshNode/index.css %} +{% endhighlight %} {% endtabs %} - + {% previewsample "page.domainurl/code-snippet/treeview/how-to/manipulating-nodes/refreshNode" %} {% elsif page.publishingplatform == "javascript" %} @@ -140,26 +161,32 @@ The [`refreshNode`](https://ej2.syncfusion.com/javascript/documentation/api/tree {% highlight html tabtitle="index.html" %} {% include code-snippet/treeview/how-to/manipulating-nodes/refreshNode/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/treeview/how-to/manipulating-nodes/refreshNode/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/treeview/how-to/manipulating-nodes/refreshNode" %} {% endif %} -## Dynamically move nodes +## Dynamically moving nodes -The [`moveNodes`](https://ej2.syncfusion.com/javascript/documentation/api/treeview/#movenodes) method in TreeView allows you to relocate a node by defining the node to be moved, the target location, and the index within that target. It facilitates the repositioning of nodes within the same TreeView based on the specified target. +The [`moveNodes`](../../api/treeview/#movenodes) method in TreeView allows you to relocate a node by defining the node to be moved, the target location, and the index within that target. It facilitates the repositioning of nodes within the same TreeView based on the specified target. {% if page.publishingplatform == "typescript" %} - {% tabs %} +{% tabs %} {% highlight ts tabtitle="index.ts" %} {% include code-snippet/treeview/how-to/manipulating-nodes/moveNodes/index.ts %} {% endhighlight %} {% highlight html tabtitle="index.html" %} {% include code-snippet/treeview/how-to/manipulating-nodes/moveNodes/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/treeview/how-to/manipulating-nodes/moveNodes/index.css %} +{% endhighlight %} {% endtabs %} - + {% previewsample "page.domainurl/code-snippet/treeview/how-to/manipulating-nodes/moveNodes" %} {% elsif page.publishingplatform == "javascript" %} @@ -171,8 +198,10 @@ The [`moveNodes`](https://ej2.syncfusion.com/javascript/documentation/api/treevi {% highlight html tabtitle="index.html" %} {% include code-snippet/treeview/how-to/manipulating-nodes/moveNodes/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/treeview/how-to/manipulating-nodes/moveNodes/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/treeview/how-to/manipulating-nodes/moveNodes" %} -{% endif %} - +{% endif %} \ No newline at end of file diff --git a/ej2-javascript/treeview/how-to/process-the-tree-node-operations-using-context-menu.md b/ej2-javascript/treeview/how-to/process-the-tree-node-operations-using-context-menu.md index dd1df65d6..dc4d3005d 100644 --- a/ej2-javascript/treeview/how-to/process-the-tree-node-operations-using-context-menu.md +++ b/ej2-javascript/treeview/how-to/process-the-tree-node-operations-using-context-menu.md @@ -1,19 +1,19 @@ --- layout: post -title: Process the tree node operations using context menu in ##Platform_Name## Treeview control | Syncfusion -description: Learn here all about Process the tree node operations using context menu in Syncfusion ##Platform_Name## Treeview control of Syncfusion Essential JS 2 and more. +title: Process the tree node operations using context menu in ##Platform_Name## TreeView control | Syncfusion +description: Learn here all about Process the tree node operations using context menu in Syncfusion ##Platform_Name## TreeView control of Syncfusion Essential JS 2 and more. platform: ej2-javascript -control: Process the tree node operations using context menu +control: Process the tree node operations using context menu publishingplatform: ##Platform_Name## documentation: ug domainurl: ##DomainURL## --- -# Process the tree node operations using context menu in ##Platform_Name## Treeview control +# Process the tree node operations using context menu in ##Platform_Name## TreeView control -You can intergrade the context menu with 'TreeView' component in order to perform the tree view related operations like add, remove and renaming node. +You can integrate the context menu with the TreeView control to perform tree view related operations such as adding, removing, and renaming a node. -Following is an example which demonstrates the above cases which are used to manipulate tree view operations in the 'select ' event of context menu. +The following example demonstrates how to manipulate tree view operations in the [`select`](../../api/context-menu#select) event of the context menu. {% if page.publishingplatform == "typescript" %} @@ -24,6 +24,9 @@ Following is an example which demonstrates the above cases which are used to man {% highlight html tabtitle="index.html" %} {% include code-snippet/treeview/how-to/context-menu-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/treeview/how-to/context-menu-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/treeview/how-to/context-menu-cs1" %} @@ -37,6 +40,9 @@ Following is an example which demonstrates the above cases which are used to man {% highlight html tabtitle="index.html" %} {% include code-snippet/treeview/how-to/context-menu-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/treeview/how-to/context-menu-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/treeview/how-to/context-menu-cs1" %} diff --git a/ej2-javascript/treeview/how-to/remove-parent-checkbox.md b/ej2-javascript/treeview/how-to/remove-parent-checkbox.md index 3bfa9853d..94fff91c3 100644 --- a/ej2-javascript/treeview/how-to/remove-parent-checkbox.md +++ b/ej2-javascript/treeview/how-to/remove-parent-checkbox.md @@ -1,17 +1,17 @@ --- layout: post -title: Remove parent checkbox in ##Platform_Name## Treeview control | Syncfusion -description: Learn here all about Remove parent checkbox in Syncfusion ##Platform_Name## Treeview control of Syncfusion Essential JS 2 and more. +title: Remove parent checkbox in ##Platform_Name## TreeView control | Syncfusion +description: Learn here all about removing parent checkboxes in the Syncfusion ##Platform_Name## TreeView control of Syncfusion Essential JS 2 and more. platform: ej2-javascript -control: Remove parent checkbox +control: Remove parent checkbox publishingplatform: ##Platform_Name## documentation: ug domainurl: ##DomainURL## --- -# Remove parent checkbox in ##Platform_Name## Treeview control +# Remove parent checkbox in ##Platform_Name## TreeView control -By enabling the `showCheckBox` property, you can render check box before each node of TreeView. However, some application needs to render check box in child nodes alone. In such case, you can remove the check box of the parent node by customizing the CSS. +By enabling the [`showCheckBox`](../../api/treeview/#showcheckbox) property, you can render a checkbox before each node of the TreeView. However, some applications require checkboxes to be displayed only in child nodes. In such cases, you can remove the checkbox of the parent node by customizing the CSS. {% if page.publishingplatform == "typescript" %} diff --git a/ej2-javascript/treeview/how-to/restrict-the-drag-and-drop-for-particular-tree-nodes.md b/ej2-javascript/treeview/how-to/restrict-the-drag-and-drop-for-particular-tree-nodes.md index 551376ad1..c5604d1de 100644 --- a/ej2-javascript/treeview/how-to/restrict-the-drag-and-drop-for-particular-tree-nodes.md +++ b/ej2-javascript/treeview/how-to/restrict-the-drag-and-drop-for-particular-tree-nodes.md @@ -1,17 +1,17 @@ --- layout: post -title: Restrict the drag and drop for particular tree nodes in ##Platform_Name## Treeview control | Syncfusion -description: Learn here all about Restrict the drag and drop for particular tree nodes in Syncfusion ##Platform_Name## Treeview control of Syncfusion Essential JS 2 and more. +title: Restrict the drag and drop for particular tree nodes in ##Platform_Name## TreeView control | Syncfusion +description: Learn here all about Restrict the drag and drop for particular tree nodes in Syncfusion ##Platform_Name## TreeView control of Syncfusion Essential JS 2 and more. platform: ej2-javascript -control: Restrict the drag and drop for particular tree nodes +control: Restrict the drag and drop for particular tree nodes publishingplatform: ##Platform_Name## documentation: ug domainurl: ##DomainURL## --- -# Restrict the drag and drop for particular tree nodes in ##Platform_Name## Treeview control +# Restrict drag and drop for particular tree nodes in ##Platform_Name## TreeView control -You can able to restrict to drag and drop files under folder only. These can be achieved by using 'nodeDragStop' and 'nodeDragging' event of TreeView. +You can restrict dragging and dropping files to within folders only. This can be achieved by using the [`nodeDragStop`](../../api/treeview#nodedragstop) and [`nodeDragging`](../../api/treeview#nodedragging) events of the TreeView. {% if page.publishingplatform == "typescript" %} @@ -22,6 +22,9 @@ You can able to restrict to drag and drop files under folder only. These can be {% highlight html tabtitle="index.html" %} {% include code-snippet/treeview/how-to/restrict-drag-drop-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/treeview/how-to/restrict-drag-drop-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/treeview/how-to/restrict-drag-drop-cs1" %} @@ -35,6 +38,9 @@ You can able to restrict to drag and drop files under folder only. These can be {% highlight html tabtitle="index.html" %} {% include code-snippet/treeview/how-to/restrict-drag-drop-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/treeview/how-to/restrict-drag-drop-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/treeview/how-to/restrict-drag-drop-cs1" %} diff --git a/ej2-javascript/treeview/how-to/select-one-child.md b/ej2-javascript/treeview/how-to/select-one-child.md index 4bbda6b1d..23946e9e0 100644 --- a/ej2-javascript/treeview/how-to/select-one-child.md +++ b/ej2-javascript/treeview/how-to/select-one-child.md @@ -1,17 +1,17 @@ --- layout: post -title: Select one child in ##Platform_Name## Treeview control | Syncfusion -description: Learn here all about Select one child in Syncfusion ##Platform_Name## Treeview control of Syncfusion Essential JS 2 and more. +title: Select one child in ##Platform_Name## TreeView control | Syncfusion +description: Learn here all about Select one child in Syncfusion ##Platform_Name## TreeView control of Syncfusion Essential JS 2 and more. platform: ej2-javascript -control: Select one child +control: Select one child publishingplatform: ##Platform_Name## documentation: ug domainurl: ##DomainURL## --- -# Select one child in ##Platform_Name## Treeview control +# Select one child in ##Platform_Name## TreeView control -TreeView allows both single and multiple selections. If your application needs to select one child at a time under one specific parent, refer to the following example. Here, you can achieve this in the `nodeSelecting` event of TreeView. However, you can reset the selected child and make another selection by pressing Ctrl + selected nodes. +The TreeView control allows both single and multiple selections. If your application requires selecting one child at a time under a specific parent, refer to the following example. You can achieve this by using the [`nodeSelecting`](../../api/treeview#nodeselecting) event in the TreeView control. However, you can reset the selected child and make another selection by pressing Ctrl + selected nodes. {% if page.publishingplatform == "typescript" %} @@ -22,8 +22,11 @@ TreeView allows both single and multiple selections. If your application needs t {% highlight html tabtitle="index.html" %} {% include code-snippet/treeview/how-to/select-one-child-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/treeview/how-to/select-one-child-cs1/index.css %} +{% endhighlight %} {% endtabs %} - + {% previewsample "page.domainurl/code-snippet/treeview/how-to/select-one-child-cs1" %} {% elsif page.publishingplatform == "javascript" %} @@ -35,6 +38,9 @@ TreeView allows both single and multiple selections. If your application needs t {% highlight html tabtitle="index.html" %} {% include code-snippet/treeview/how-to/select-one-child-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/treeview/how-to/select-one-child-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/treeview/how-to/select-one-child-cs1" %} diff --git a/ej2-javascript/treeview/how-to/set-tool-tip-for-tree-nodes.md b/ej2-javascript/treeview/how-to/set-tool-tip-for-tree-nodes.md index 63b887256..a9155bb95 100644 --- a/ej2-javascript/treeview/how-to/set-tool-tip-for-tree-nodes.md +++ b/ej2-javascript/treeview/how-to/set-tool-tip-for-tree-nodes.md @@ -1,17 +1,17 @@ --- layout: post -title: Set tool tip for tree nodes in ##Platform_Name## Treeview control | Syncfusion -description: Learn here all about Set tool tip for tree nodes in Syncfusion ##Platform_Name## Treeview control of Syncfusion Essential JS 2 and more. +title: Set tooltip for tree nodes in ##Platform_Name## TreeView control | Syncfusion +description: Learn here all about setting tooltips for tree nodes in Syncfusion ##Platform_Name## TreeView control of Syncfusion Essential JS 2 and more. platform: ej2-javascript -control: Set tool tip for tree nodes +control: Set tool tip for tree nodes publishingplatform: ##Platform_Name## documentation: ug domainurl: ##DomainURL## --- -# Set tool tip for tree nodes in ##Platform_Name## Treeview control +# Set tooltip for tree nodes in ##Platform_Name## TreeView control -TreeView control allows you to set tooltip option to tree nodes using the [`tooltip`](../../api/treeview/fieldsSettingsModel/#tooltip) property. The following code example demonstrates how to set tooltip for TreeView nodes. +The TreeView control allows you to set a tooltip for tree nodes using the [`tooltip`](../../api/treeview/fieldsSettingsModel/#tooltip) property. The following code example demonstrates how to set a tooltip for TreeView nodes. {% if page.publishingplatform == "typescript" %} @@ -22,6 +22,9 @@ TreeView control allows you to set tooltip option to tree nodes using the [`tool {% highlight html tabtitle="index.html" %} {% include code-snippet/treeview/how-to/tooltip-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/treeview/how-to/tooltip-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/treeview/how-to/tooltip-cs1" %} @@ -35,6 +38,9 @@ TreeView control allows you to set tooltip option to tree nodes using the [`tool {% highlight html tabtitle="index.html" %} {% include code-snippet/treeview/how-to/tooltip-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/treeview/how-to/tooltip-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/treeview/how-to/tooltip-cs1" %} diff --git a/ej2-javascript/treeview/how-to/sorting-treeview-level-wise.md b/ej2-javascript/treeview/how-to/sorting-treeview-level-wise.md index edb5e72d8..7839d3afb 100644 --- a/ej2-javascript/treeview/how-to/sorting-treeview-level-wise.md +++ b/ej2-javascript/treeview/how-to/sorting-treeview-level-wise.md @@ -1,17 +1,17 @@ --- layout: post -title: Sorting treeview level wise in ##Platform_Name## Treeview control | Syncfusion -description: Learn here all about Sorting treeview level wise in Syncfusion ##Platform_Name## Treeview control of Syncfusion Essential JS 2 and more. +title: Sorting TreeView level wise in ##Platform_Name## TreeView control | Syncfusion +description: Learn here all about sorting TreeView nodes level wise in Syncfusion ##Platform_Name## TreeView control of Syncfusion Essential JS 2 and more. platform: ej2-javascript -control: Sorting treeview level wise +control: Sorting treeview level wise publishingplatform: ##Platform_Name## documentation: ug domainurl: ##DomainURL## --- -# Sorting treeview level wise in ##Platform_Name## Treeview control +# Sorting TreeView level wise in ##Platform_Name## TreeView control -You can sort the TreeView nodes based on their level. When using the `sortOrder` property, the whole TreeView is sorted. When you sort a particular level, you can use the following code sample. The following code sample demonstrates how to sort the parent node alone in TreeView. +You can sort the TreeView nodes based on their level. When using the [`sortOrder`](../../api/treeview#sortorder) property, the entire TreeView is sorted. If you want to sort a particular level, refer to the following code sample, which demonstrates how to sort only the parent node in the TreeView. {% if page.publishingplatform == "typescript" %} @@ -22,8 +22,11 @@ You can sort the TreeView nodes based on their level. When using the `sortOrder` {% highlight html tabtitle="index.html" %} {% include code-snippet/treeview/how-to/sort-tree-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/treeview/how-to/sort-tree-cs1/index.css %} +{% endhighlight %} {% endtabs %} - + {% previewsample "page.domainurl/code-snippet/treeview/how-to/sort-tree-cs1" %} {% elsif page.publishingplatform == "javascript" %} @@ -35,6 +38,9 @@ You can sort the TreeView nodes based on their level. When using the `sortOrder` {% highlight html tabtitle="index.html" %} {% include code-snippet/treeview/how-to/sort-tree-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/treeview/how-to/sort-tree-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/treeview/how-to/sort-tree-cs1" %} diff --git a/ej2-javascript/treeview/how-to/validate-the-text-when-renaming-the-tree-node.md b/ej2-javascript/treeview/how-to/validate-the-text-when-renaming-the-tree-node.md index ab9b4027e..7956591a5 100644 --- a/ej2-javascript/treeview/how-to/validate-the-text-when-renaming-the-tree-node.md +++ b/ej2-javascript/treeview/how-to/validate-the-text-when-renaming-the-tree-node.md @@ -1,17 +1,17 @@ --- layout: post -title: Validate the text when renaming the tree node in ##Platform_Name## Treeview control | Syncfusion -description: Learn here all about Validate the text when renaming the tree node in Syncfusion ##Platform_Name## Treeview control of Syncfusion Essential JS 2 and more. +title: Validate the text when renaming the tree node in ##Platform_Name## TreeView control | Syncfusion +description: Learn here all about Validate the text when renaming the tree node in Syncfusion ##Platform_Name## TreeView control of Syncfusion Essential JS 2 and more. platform: ej2-javascript -control: Validate the text when renaming the tree node +control: Validate the text when renaming the tree node publishingplatform: ##Platform_Name## documentation: ug domainurl: ##DomainURL## --- -# Validate the text when renaming the tree node in ##Platform_Name## Treeview control +# Validate the text when renaming a tree node in ##Platform_Name## TreeView control -You can validate the tree node text while editing using `nodeEdited` event of the TreeView. Following is an example that shows how to validate and prevent empty values in tree node. +You can validate the text of a tree node while editing by using the [`nodeEdited`](../../api/treeview#nodeedited) event of the TreeView control. The following example demonstrates how to validate and prevent empty values in a tree node. {% if page.publishingplatform == "typescript" %} @@ -22,8 +22,11 @@ You can validate the tree node text while editing using `nodeEdited` event of th {% highlight html tabtitle="index.html" %} {% include code-snippet/treeview/how-to/validation-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/treeview/how-to/validation-cs1/index.css %} +{% endhighlight %} {% endtabs %} - + {% previewsample "page.domainurl/code-snippet/treeview/how-to/validation-cs1" %} {% elsif page.publishingplatform == "javascript" %} @@ -35,6 +38,9 @@ You can validate the tree node text while editing using `nodeEdited` event of th {% highlight html tabtitle="index.html" %} {% include code-snippet/treeview/how-to/validation-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/treeview/how-to/validation-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/treeview/how-to/validation-cs1" %} diff --git a/ej2-javascript/treeview/js/ej1-api-migration.md b/ej2-javascript/treeview/js/ej1-api-migration.md index 2c073bf54..53d2eced3 100644 --- a/ej2-javascript/treeview/js/ej1-api-migration.md +++ b/ej2-javascript/treeview/js/ej1-api-migration.md @@ -1,7 +1,7 @@ --- layout: post -title: Ej1 api migration in ##Platform_Name## Treeview control | Syncfusion -description: Learn here all about Ej1 api migration in Syncfusion ##Platform_Name## Treeview control of Syncfusion Essential JS 2 and more. +title: Ej1 api migration in ##Platform_Name## TreeView control | Syncfusion +description: Learn here all about Ej1 api migration in Syncfusion ##Platform_Name## TreeView control of Syncfusion Essential JS 2 and more. platform: ej2-javascript control: Ej1 api migration publishingplatform: ##Platform_Name## @@ -9,9 +9,9 @@ documentation: ug domainurl: ##DomainURL## --- -# Ej1 api migration in ##Platform_Name## Treeview control +# Ej1 api migration in ##Platform_Name## TreeView control -This article describes the API migration process of TreeView component from Essential JS 1 to Essential JS 2. +This article describes the API migration process of TreeView control from Essential JS 1 to Essential JS 2. ## Add nodes @@ -32,10 +32,10 @@ This article describes the API migration process of TreeView component from Esse | Triggers before node is deleted | **Event:** *beforeDelete*

          $("#tree").ejTreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChild: "hasChild"},
          beforeDelete: function() {}
          }); | Not Applicable | | Triggers before loading nodes | **Event:** *beforeLoad*

          $("#tree").ejTreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChild: "hasChild"},
          beforeLoad: function() {}
          }); | Not Applicable | | Triggers before node is pasted | **Event:** *beforePaste*

          $("#tree").ejTreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChild: "hasChild"},
          beforePaste: function() {}
          }); | Not Applicable | -| Triggers when Treeview is created | **Event:** *create*

          $("#tree").ejTreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChild: "hasChild"},
          create: function() {}
          }); | **Event:** *created*

          var treeObj = new ej.navigations.TreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChildren: "hasChild"},
          created: function() {}
          });
          treeObj.appendTo("#tree"); | +| Triggers when TreeView is created | **Event:** *create*

          $("#tree").ejTreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChild: "hasChild"},
          create: function() {}
          }); | **Event:** *created*

          var treeObj = new ej.navigations.TreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChildren: "hasChild"},
          created: function() {}
          });
          treeObj.appendTo("#tree"); | | Css class | **Property:** *cssClass*

          $("#tree").ejTreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChild: "hasChild"},
          cssClass: 'custom'
          }); | **Property:** *cssClass*

          var treeObj = new ej.navigations.TreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChildren: "hasChild"},
          cssClass: 'custom'
          });
          treeObj.appendTo("#tree"); | -| Triggers when Treeview is destroyed | **Event:** *destroy*

          $("#tree").ejTreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChild: "hasChild"},
          destroy: function() {}
          }); | **Event:** *destroyed*

          var treeObj = new ej.navigations.TreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChildren: "hasChild"},
          destroyed: function() {}
          });
          treeObj.appendTo("#tree"); | -| Destroy Treeview control | **Method:** *destroy*

          $("#tree").ejTreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChild: "hasChild"}
          });
          var treeObj = $("#tree").data("ejTreeView");
          treeObj.destroy(); | **Method:** *destroy*

          var treeObj = new ej.navigations.TreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChildren: "hasChild"}
          });
          treeObj.appendTo("#tree");
          treeObj.destroy(); | +| Triggers when TreeView is destroyed | **Event:** *destroy*

          $("#tree").ejTreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChild: "hasChild"},
          destroy: function() {}
          }); | **Event:** *destroyed*

          var treeObj = new ej.navigations.TreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChildren: "hasChild"},
          destroyed: function() {}
          });
          treeObj.appendTo("#tree"); | +| Destroy TreeView control | **Method:** *destroy*

          $("#tree").ejTreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChild: "hasChild"}
          });
          var treeObj = $("#tree").data("ejTreeView");
          treeObj.destroy(); | **Method:** *destroy*

          var treeObj = new ej.navigations.TreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChildren: "hasChild"}
          });
          treeObj.appendTo("#tree");
          treeObj.destroy(); | | Disable Node | **Method:** *disableNode*

          $("#tree").ejTreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChild: "hasChild"}
          });
          var treeObj = $("#tree").data("ejTreeView");
          treeObj.disableNode($("#1")); | **Method:** *disableNodes*

          var treeObj = new ej.navigations.TreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChildren: "hasChild"}
          });
          treeObj.appendTo("#tree");
          treeObj.disableNodes(["1", "2"]); | | Enable Animation | **Property:** *enableAnimation*

          $("#tree").ejTreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChild: "hasChild"},
          enableAnimation: false
          }); | **Property:** *animation*

          var treeObj = new ej.navigations.TreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChildren: "hasChild"},
          animation: {expand: {duration: 0}, collapse: {duration: 0}}
          });
          treeObj.appendTo("#tree"); | | Control state | **Property:** *enabled*

          $("#tree").ejTreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChild: "hasChild"},
          enabled: false
          }); | Not Applicable | @@ -53,19 +53,19 @@ This article describes the API migration process of TreeView component from Esse | Get tree node text | **Method:** *getText*

          $("#tree").ejTreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChild: "hasChild"}
          });
          var treeObj = $("#tree").data("ejTreeView");
          treeObj.getText("1"); | **Can be achieved using,**

          var treeObj = new ej.navigations.TreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChildren: "hasChild"}
          });
          treeObj.appendTo("#tree");
          `var nodeText =treeObj.getNode("1")['text']`
          console.log(nodeText) | | Get updated datasource | **Method:** *getTreeData*

          $("#tree").ejTreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChild: "hasChild"}
          });
          var treeObj = $("#tree").data("ejTreeView");
          treeObj.getTreeData(); | **Method:** *getTreeData*

          var treeObj = new ej.navigations.TreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChildren: "hasChild"}
          });
          treeObj.appendTo("#tree");
          treeObj.getTreeData(); | | Get visible nodes | **Method:** *getVisibleNodes*

          $("#tree").ejTreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChild: "hasChild"}
          });
          var treeObj = $("#tree").data("ejTreeView");
          treeObj.getVisibleNodes(); | Not Applicable | -| Height of Treeview control | **Property:** *height*

          $("#tree").ejTreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChild: "hasChild"},
          height: "400px"
          }); | **Can be achieved using,**

          var treeObj = new ej.navigations.TreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChildren: "hasChild"},
          cssClass: "custom"
          });
          treeObj.appendTo("#tree");
          **Css**
          .e-treeview.custom{
          height: 400px;
          } | +| Height of TreeView control | **Property:** *height*

          $("#tree").ejTreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChild: "hasChild"},
          height: "400px"
          }); | **Can be achieved using,**

          var treeObj = new ej.navigations.TreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChildren: "hasChild"},
          cssClass: "custom"
          });
          treeObj.appendTo("#tree");
          **Css**
          .e-treeview.custom{
          height: 400px;
          } | | Checking for child nodes | **Method:** *hasChildNode*

          $("#tree").ejTreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChild: "hasChild"}
          });
          var treeObj = $("#tree").data("ejTreeView");
          treeObj.hasChildNode($("#book")); | **Can be achieved using,**

          var treeObj = new ej.navigations.TreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChildren: "hasChild"}
          });
          treeObj.appendTo("#tree");
          var parent=treeObj.element.querySelector('[data-uid="book"]')
          if (parent.querySelector('.e-list-item') !== null) {
          console.log("Has child node")
          } | | Hide all nodes | **Method:** *hide*

          $("#tree").ejTreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChild: "hasChild"}
          });
          var treeObj = $("#tree").data("ejTreeView");
          treeObj.hide(); | **Can be achieved using,**

          var treeObj = new ej.navigations.TreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChildren: "hasChild"}
          });
          treeObj.appendTo("#tree");
          treeObj.element.querySelector('.e-list-parent').style.display="none" | | Hide node | **Method:** *hideNode*

          $("#tree").ejTreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChild: "hasChild"}
          });
          var treeObj = $("#tree").data("ejTreeView");
          treeObj.hideNode($("#book")); | **Can be achieved using,**

          var treeObj = new ej.navigations.TreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChildren: "hasChild"}
          });
          treeObj.appendTo("#tree");
          treeObj.element.querySelector('[data-uid="book"]').style.display="none" | | HTML Attributes | **Property:** *htmlAttributes*

          $("#tree").ejTreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChild: "hasChild"},
          htmlAttributes: {class: "htmlAttr"}
          }); | **Can be achieved using,**

          var treeObj = new ej.navigations.TreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChildren: "hasChild"}
          });
          treeObj.appendTo("#tree");
          treeObj.element.classList.add("htmlAttr") | | To check if child nodes are loaded | **Method:** *isChildLoaded*

          $("#tree").ejTreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChild: "hasChild"}
          });
          var treeObj = $("#tree").data("ejTreeView");
          treeObj.isChildLoaded($("book")); | **Can be achieved using,**

          var treeObj = new ej.navigations.TreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChildren: "hasChild"}
          });
          treeObj.appendTo("#tree");
          var parent=treeObj.element.querySelector('[data-uid="book"]')
          if (parent.querySelector('.e-list-item') !== null) {
          console.log("Child is loaded")
          } | | To check if node is disabled | **Method:** *isDisabled*

          $("#tree").ejTreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChild: "hasChild"}
          });
          var treeObj = $("#tree").data("ejTreeView");
          treeObj.isDisabled($("book")); | **Can be achieved using,**

          var treeObj = new ej.navigations.TreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChildren: "hasChild"}
          });
          treeObj.appendTo("#tree");
          var node=treeObj.element.querySelector('[data-uid="book"]')
          if (node.classList.contains('e-disable') === true) {
          console.log("Node is disabled")
          } | -| To check if node exists in Treeview | **Method:** *isExist*

          $("#tree").ejTreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChild: "hasChild"}
          });
          var treeObj = $("#tree").data("ejTreeView");
          treeObj.isExist($("book")); | **Can be achieved using,**

          var treeObj = new ej.navigations.TreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChildren: "hasChild"}
          });
          treeObj.appendTo("#tree");
          `if (treeObj.getNode('book')['text']) !== "") {`
          `console.log("Node exists")`
          `}` | +| To check if node exists in TreeView | **Method:** *isExist*

          $("#tree").ejTreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChild: "hasChild"}
          });
          var treeObj = $("#tree").data("ejTreeView");
          treeObj.isExist($("book")); | **Can be achieved using,**

          var treeObj = new ej.navigations.TreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChildren: "hasChild"}
          });
          treeObj.appendTo("#tree");
          `if (treeObj.getNode('book')['text']) !== "") {`
          `console.log("Node exists")`
          `}` | | To check if node is visible | **Method:** *isVisible*

          $("#tree").ejTreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChild: "hasChild"}
          });
          var treeObj = $("#tree").data("ejTreeView");
          treeObj.isVisible($("book")); | **Can be achieved using,**

          var treeObj = new ej.navigations.TreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChildren: "hasChild"}
          });
          treeObj.appendTo("#tree");
          if (treeObj.element.querySelector('[data-uid="book"]').style.display !== "none"){
          console.log("Node is visible")
          } | | Triggers on key press | **Event:** *keyPress*

          $("#tree").ejTreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChild: "hasChild"},
          keyPress: function() {}
          }); | **Event:** *keyPress*

          var treeObj = new ej.navigations.TreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChildren: "hasChild"},
          keyPress: function() {}
          });
          treeObj.appendTo("#tree"); | -| Load Treeview nodes from particular URl | **Method:** *loadData*

          $("#tree").ejTreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChild: "hasChild"}
          });
          var treeObj = $("#tree").data("ejTreeView");
          treeObj.loadData("childData", $("#book")); | **Can be achieved using,**

          var treeObj = new ej.navigations.TreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChildren: "hasChild"}
          });
          treeObj.appendTo("#tree");
          var dataManager = new DataManager {
          Url = "/FileContent/rootNode",
          Adaptor = "UrlAdaptor",
          CrossDomain = true};
          dataManager.executeQuery(new ej.data.Query().take(8).then((e) => { var childData = e.result;
          treeObj.addNodes(childData, "book")
          })); | +| Load TreeView nodes from particular URl | **Method:** *loadData*

          $("#tree").ejTreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChild: "hasChild"}
          });
          var treeObj = $("#tree").data("ejTreeView");
          treeObj.loadData("childData", $("#book")); | **Can be achieved using,**

          var treeObj = new ej.navigations.TreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChildren: "hasChild"}
          });
          treeObj.appendTo("#tree");
          var dataManager = new DataManager {
          Url = "/FileContent/rootNode",
          Adaptor = "UrlAdaptor",
          CrossDomain = true};
          dataManager.executeQuery(new ej.data.Query().take(8).then((e) => { var childData = e.result;
          treeObj.addNodes(childData, "book")
          })); | | Triggers when data load fails | **Event:** *loadError*

          $("#tree").ejTreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChild: "hasChild"},
          loadError: function() {}
          }); | **Can be achieved using,**

          var treeObj = new ej.navigations.TreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChildren: "hasChild"}
          });
          treeObj.appendTo("#tree");
          var dataManager = new DataManager {
          Url = "/FileContent/rootNode",
          Adaptor = "UrlAdaptor",
          CrossDomain = true};
          dataManager.executeQuery(new ej.data.Query().take(8).error((e) => { console.log('Data load failed')
          })); | -| Load on demand | **Property:** *loadOnDemand*

          $("#tree").ejTreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChild: "hasChild"},
          loadOnDemand: true
          }); | **Property:** *loadOnDemand*

          var treeObj = new ej.navigations.TreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChildren: "hasChild"},
          loadOnDemand: false
          });
          treeObj.appendTo("#tree");
          **Treeview is rendered in load on demand by default** | +| Load on demand | **Property:** *loadOnDemand*

          $("#tree").ejTreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChild: "hasChild"},
          loadOnDemand: true
          }); | **Property:** *loadOnDemand*

          var treeObj = new ej.navigations.TreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChildren: "hasChild"},
          loadOnDemand: false
          });
          treeObj.appendTo("#tree");
          **TreeView is rendered in load on demand by default** | | Triggers when data load is success | **Event:** *loadSuccess*

          $("#tree").ejTreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChild: "hasChild"},
          loadSuccess: function() {}
          });
          **Script**
          var treeObj = $("#tree").data("ejTreeView");
          treeObj.loadData("childData", $("#book")); | **Can be achieved using,**

          var treeObj = new ej.navigations.TreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChildren: "hasChild"}
          });
          treeObj.appendTo("#tree");
          var dataManager = new DataManager {
          Url = "/FileContent/rootNode",
          Adaptor = "UrlAdaptor",
          CrossDomain = true};
          dataManager.executeQuery(new ej.data.Query().take(8).then((e) => { console.log('Data loaded successfully')
          })); | | To move node | **Method:** *moveNode*

          $("#tree").ejTreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChild: "hasChild"}
          });
          var treeObj = $("#tree").data("ejTreeView");
          treeObj.moveNode($("#book"), "#art"); | **Method:** *moveNodes*

          var treeObj = new ej.navigations.TreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChildren: "hasChild"},
          });
          treeObj.appendTo("#tree");
          treeObj.moveNodes(["book"], "#art"); | | Triggers when node is clicked successfully | **Event:** *nodeClick*

          $("#tree").ejTreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChild: "hasChild"},
          nodeClick: function() {}
          }); | **Event:** *nodeClicked*

          var treeObj = new ej.navigations.TreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChildren: "hasChild"},
          nodeClicked: function() {}
          });
          treeObj.appendTo("#tree"); | @@ -73,14 +73,14 @@ This article describes the API migration process of TreeView component from Esse | Triggers when node is deleted successfully | **Event:** *nodeDelete*

          $("#tree").ejTreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChild: "hasChild"},
          nodeDelete: function() {}
          }); | **Event:** *dataSourceChanged*

          var treeObj = new ej.navigations.TreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChildren: "hasChild"},
          dataSourceChanged: function() {}
          });
          treeObj.appendTo("#tree"); | | Triggers when node is pasted successfully | **Event:** *nodePaste*

          $("#tree").ejTreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChild: "hasChild"},
          nodePaste: function() {}
          }); | Not Applicable | | Triggers when nodes are loaded successfully | **Event:** *ready*

          $("#tree").ejTreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChild: "hasChild"},
          ready: function() {}
          }); | **Event:** *dataBound*

          var treeObj = new ej.navigations.TreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChildren: "hasChild"},
          dataBound: function(args) {}
          });
          treeObj.appendTo("#tree"); | -| Refresh Treeview control | **Method:** *refresh*

          $("#tree").ejTreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChild: "hasChild"}
          });
          var treeObj = $("#tree").data("ejTreeView");
          treeObj.refresh(); | Not Applicable | +| Refresh TreeView control | **Method:** *refresh*

          $("#tree").ejTreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChild: "hasChild"}
          });
          var treeObj = $("#tree").data("ejTreeView");
          treeObj.refresh(); | Not Applicable | | To show all nodes | **Method:** *show*

          $("#tree").ejTreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChild: "hasChild"}
          });
          var treeObj = $("#tree").data("ejTreeView");
          treeObj.show(); | **Can be achieved using,**

          var treeObj = new ej.navigations.TreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChildren: "hasChild"}
          });
          treeObj.appendTo("#tree");
          treeObj.element.querySelector('.e-list-parent').style.display="block" | | Show node | **Method:** *showNode*

          $("#tree").ejTreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChild: "hasChild"}
          });
          var treeObj = $("#tree").data("ejTreeView");
          treeObj.showNode($("#book")); | **Can be achieved using,**

          var treeObj = new ej.navigations.TreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChildren: "hasChild"}
          });
          treeObj.appendTo("#tree");
          treeObj.element.querySelector('[data-uid="book"]').style.display="block" | -| Remove all Treeview nodes | **Method:** *removeAll*

          $("#tree").ejTreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChild: "hasChild"}
          });
          var treeObj = $("#tree").data("ejTreeView");
          treeObj.removeAll(); | **Can be achieved using,**

          var treeObj = new ej.navigations.TreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChildren: "hasChild"}
          });
          treeObj.appendTo("#tree");
          treeObj.removeNodes([treeObj.element.querySelector('.e-list-parent')]) | -| Remove Treeview node | **Method:** *removeNode*

          $("#tree").ejTreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChild: "hasChild"}
          });
          var treeObj = $("#tree").data("ejTreeView");
          treeObj.removeNode($("#book")); | **Method:** *removeNodes*

          var treeObj = new ej.navigations.TreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChildren: "hasChild"},
          });
          treeObj.appendTo("#tree");
          treeObj.removeNodes(["book"]); | +| Remove all TreeView nodes | **Method:** *removeAll*

          $("#tree").ejTreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChild: "hasChild"}
          });
          var treeObj = $("#tree").data("ejTreeView");
          treeObj.removeAll(); | **Can be achieved using,**

          var treeObj = new ej.navigations.TreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChildren: "hasChild"}
          });
          treeObj.appendTo("#tree");
          treeObj.removeNodes([treeObj.element.querySelector('.e-list-parent')]) | +| Remove TreeView node | **Method:** *removeNode*

          $("#tree").ejTreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChild: "hasChild"}
          });
          var treeObj = $("#tree").data("ejTreeView");
          treeObj.removeNode($("#book")); | **Method:** *removeNodes*

          var treeObj = new ej.navigations.TreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChildren: "hasChild"},
          });
          treeObj.appendTo("#tree");
          treeObj.removeNodes(["book"]); | | Sort order | **Property:** *sortSettings*

          $("#tree").ejTreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChild: "hasChild"},
          sortSettings: { allowSorting: true, sortOrder: ej.sortOrder.Descending }
          }); | **Property:** *sortOrder*

          var treeObj = new ej.navigations.TreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChildren: "hasChild"},
          sortOrder: "Descending"
          });
          treeObj.appendTo("#tree"); | | Update node text | **Method:** *updateText*

          $("#tree").ejTreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChild: "hasChild"}
          });
          var treeObj = $("#tree").data("ejTreeView");
          treeObj.updateText($("#book", "text")); | **Method:** *updateNode*

          var treeObj = new ej.navigations.TreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChildren: "hasChild"},
          });
          treeObj.appendTo("#tree");
          treeObj.updateNode("book", "text"); | -| Width of Treeview control | **Property:** *width*

          $("#tree").ejTreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChild: "hasChild"},
          width: "300px"
          }); | **Can be achieved using,**

          var treeObj = new ej.navigations.TreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChildren: "hasChild"},
          cssClass: "custom"
          });
          treeObj.appendTo("#tree");
          **Css**
          .e-treeview.custom{
          width: 300px;
          } | +| Width of TreeView control | **Property:** *width*

          $("#tree").ejTreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChild: "hasChild"},
          width: "300px"
          }); | **Can be achieved using,**

          var treeObj = new ej.navigations.TreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChildren: "hasChild"},
          cssClass: "custom"
          });
          treeObj.appendTo("#tree");
          **Css**
          .e-treeview.custom{
          width: 300px;
          } | ## CheckBox @@ -106,7 +106,7 @@ This article describes the API migration process of TreeView component from Esse | Behavior | API in Essential JS 1 | API in Essential JS 2 | | --- | --- | --- | | Drag and drop | **Property:** *allowDragAndDrop*

          $("#tree").ejTreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChild: "hasChild"},
          allowDragAndDrop: true
          }); | **Property:** *allowDragAndDrop*

          var treeObj = new ej.navigations.TreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChildren: "hasChild"},
          allowDragAndDrop: true
          });
          treeObj.appendTo("#tree"); | -| Prevent Drag and drop to another Treeview | **Property:** *allowDragAndDropAcrossControl*

          $("#tree").ejTreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChild: "hasChild"},
          allowDragAndDrop: true,
          allowDragAndDropAcrossControl: false
          }); | **Can be achieved using,**

          var treeObj = new ej.navigations.TreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChildren: "hasChild"},
          allowDragAndDrop: true,
          nodeDragStop: function(args) {
          if (args.draggedParentNode.closest('.e-treeview') !== args.dropTarget.closest('.e-treeview')) {
          args.cancel = true;
          }}
          });
          treeObj.appendTo("#tree"); | +| Prevent Drag and drop to another TreeView | **Property:** *allowDragAndDropAcrossControl*

          $("#tree").ejTreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChild: "hasChild"},
          allowDragAndDrop: true,
          allowDragAndDropAcrossControl: false
          }); | **Can be achieved using,**

          var treeObj = new ej.navigations.TreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChildren: "hasChild"},
          allowDragAndDrop: true,
          nodeDragStop: function(args) {
          if (args.draggedParentNode.closest('.e-treeview') !== args.dropTarget.closest('.e-treeview')) {
          args.cancel = true;
          }}
          });
          treeObj.appendTo("#tree"); | | Prevent sibling drop | **Property:** *allowDropSibling*

          $("#tree").ejTreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChild: "hasChild"},
          allowDragAndDrop: true,
          allowDropSibling: false
          }); | **Can be achieved using,**

          var treeObj = new ej.navigations.TreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChildren: "hasChild"},
          nodeDragStop: function(args) {
          if(args.dropIndicator === "e-drop-next") {
          args.cancel = true;
          }
          });
          treeObj.appendTo("#tree"); | | Prevent child drop | **Property:** *allowDropChild*

          $("#tree").ejTreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChild: "hasChild"},
          allowDragAndDrop: true,
          allowDropChild: false
          }); | **Can be achieved using,**

          var treeObj = new ej.navigations.TreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChildren: "hasChild"},
          nodeDragStop: function(args) {
          if(args.dropIndicator === "e-drop-in") {
          args.cancel = true;
          }
          });
          treeObj.appendTo("#tree"); | | Triggers when node is dragged | **Event:** *nodeDrag*

          $("#tree").ejTreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChild: "hasChild"},
          allowDragAndDrop: true,
          nodeDrag: function() {}
          }); | **Event:** *nodeDragging*

          var treeObj = new ej.navigations.TreeView({
          fields: {dataSource: treeData, id: "id", parentId: "pid", text: "name", hasChildren: "hasChild"},
          allowDragAndDrop: true,
          nodeDragging: function() {}
          });
          treeObj.appendTo("#tree"); | diff --git a/ej2-javascript/treeview/js/es5-getting-started.md b/ej2-javascript/treeview/js/es5-getting-started.md index f2a087af4..dfc6c392c 100644 --- a/ej2-javascript/treeview/js/es5-getting-started.md +++ b/ej2-javascript/treeview/js/es5-getting-started.md @@ -1,7 +1,7 @@ --- layout: post -title: Es5 getting started with ##Platform_Name## Treeview control | Syncfusion -description: Checkout and learn about Es5 getting started with ##Platform_Name## Treeview control of Syncfusion Essential JS 2 and more details. +title: Es5 getting started with ##Platform_Name## TreeView control | Syncfusion +description: Checkout and learn about Es5 getting started with ##Platform_Name## TreeView control of Syncfusion Essential JS 2 and more details. platform: ej2-javascript control: Es5 getting started publishingplatform: ##Platform_Name## @@ -9,13 +9,13 @@ documentation: ug domainurl: ##DomainURL## --- -# Es5 getting started in ##Platform_Name## Treeview control +# Es5 getting started in ##Platform_Name## TreeView control The Essential JS 2 for JavaScript (global script) is an ES5 formatted pure JavaScript framework which can be directly used in latest web browsers. -## Component Initialization +## Controls Initialization -Create an app folder `myapp` in local machine to initialize Essential JS 2 JavaScript components. +Create an app folder `myapp` in local machine to initialize Essential JS 2 JavaScript control. Using either of the following way to refer the required script and styles. @@ -24,9 +24,9 @@ Using either of the following way to refer the required script and styles. ### Using local script and style references in a HTML page -**Step 1:** Create an app folder `myapp` for Essential JS 2 JavaScript components. +**Step 1:** Create an app folder `myapp` for Essential JS 2 JavaScript control. -**Step 2:** You can get the global scripts and styles from the [Essential Studio JavaScript (Essential JS 2)](https://www.syncfusion.com/downloads/essential-js2/confirm) build installed location. +**Step 2:** You can get the global scripts and styles from the [Essential Studio JavaScript (Essential JS 2)](https://www.syncfusion.com/downloads/essential-js2) build installed location. **Syntax:** > Script: `**(installed location)**\Syncfusion\Essential Studio\JavaScript - EJ2\{RELEASE_VERSION}\Web (Essential JS 2)\JavaScript\{PACKAGE_NAME}\dist\global\{PACKAGE_NAME}.min.js` @@ -66,7 +66,7 @@ The below located script and style file contains all Syncfusion JavaScript (ES5) ``` -**Step 5:** Now, add the `div` element and initiate the `Essential JS 2 TreeView` component in the `index.html` by using following code +**Step 5:** Now, add the `div` element and initiate the `Essential JS 2 TreeView` control in the `index.html` by using following code ```html @@ -111,7 +111,7 @@ The below located script and style file contains all Syncfusion JavaScript (ES5) ] }, ]; - //Initialize TreeView component + //Initialize TreeView control var treeViewInstance = new ej.navigations.TreeView({ fields: { dataSource: data, id: 'nodeId', text: 'nodeText', child: 'nodeChild' } }); @@ -124,13 +124,13 @@ The below located script and style file contains all Syncfusion JavaScript (ES5) ``` -**Step 6:** Now, run the `index.html` in web browser, it will render the **Essential JS 2 TreeView** component. +**Step 6:** Now, run the `index.html` in web browser, it will render the **Essential JS 2 TreeView** control. ### Using CDN link for script and style reference -**Step 1:** Create an app folder `myapp` for the Essential JS 2 JavaScript components. +**Step 1:** Create an app folder `myapp` for the Essential JS 2 JavaScript control. -**Step 2:** The Essential JS 2 component's global scripts and styles are already hosted in the below CDN link formats. +**Step 2:** The Essential JS 2 control's global scripts and styles are already hosted in the below CDN link formats. **Syntax:** > Script: `http://cdn.syncfusion.com/ej2/{PACKAGE_NAME}/dist/global/{PACKAGE_NAME}.min.js` @@ -142,7 +142,7 @@ The below located script and style file contains all Syncfusion JavaScript (ES5) > > Styles: [`http://cdn.syncfusion.com/ej2/ej2-navigations/styles/material.css`](http://cdn.syncfusion.com/ej2/ej2-navigations/styles/material.css) -**Step 3:** Create a HTML page (index.html) in `myapp` location and add the CDN link references. Now, add the `TreeView` element and initiate the `Essential JS 2 TreeView` component in the index.html by using following code. +**Step 3:** Create a HTML page (index.html) in `myapp` location and add the CDN link references. Now, add the `TreeView` element and initiate the `Essential JS 2 TreeView` control in the index.html by using following code. {% tabs %} {% highlight html tabtitle="index.html" %} @@ -150,8 +150,8 @@ The below located script and style file contains all Syncfusion JavaScript (ES5) {% endhighlight %} {% endtabs %} -{% previewsample "page.domainurl/code-snippet/accordion/es5-getting-started-cs1" %} +{% previewsample "page.domainurl/code-snippet/treeview/es5-getting-started-cs1" %} -**Step 4:** Now, run the `index.html` in web browser, it will render the `Essential JS 2 Accordion` component. +**Step 4:** Now, run the `index.html` in web browser, it will render the `Essential JS 2 Accordion` control. -> You can also explore our [JavaScript (ES5) TreeView](https://ej2.syncfusion.com/javascript/demos/#/material/treeview/default.html) to knows how to present and manipulate data. \ No newline at end of file +> You can also explore our [JavaScript (ES5) TreeView](https://ej2.syncfusion.com/javascript/demos/#/material/treeview/default.html) to knows how to present and manipulate data. diff --git a/ej2-javascript/treeview/multiple-selection.md b/ej2-javascript/treeview/multiple-selection.md index b49e9e30d..5cd6c655d 100644 --- a/ej2-javascript/treeview/multiple-selection.md +++ b/ej2-javascript/treeview/multiple-selection.md @@ -1,25 +1,25 @@ --- layout: post -title: Multiple selection in ##Platform_Name## Treeview control | Syncfusion -description: Learn here all about Multiple selection in Syncfusion ##Platform_Name## Treeview control of Syncfusion Essential JS 2 and more. +title: Multiple selection in ##Platform_Name## TreeView control | Syncfusion +description: Learn here all about Multiple selection in Syncfusion ##Platform_Name## TreeView control of Syncfusion Essential JS 2 and more. platform: ej2-javascript -control: Multiple selection +control: Multiple selection publishingplatform: ##Platform_Name## documentation: ug domainurl: ##DomainURL## --- -# Multiple selection in ##Platform_Name## Treeview control +# Multiple selection in ##Platform_Name## TreeView control -Selection provides an interactive support and highlights the node that you select. Selection can be done through simple mouse down or keyboard interaction. +Selection provides interactive support and highlights the node you select. Selection can be done through a simple mouse click or keyboard interaction. -The TreeView also supports selection of multiple nodes by setting [allowMultiSelection](../api/treeview/#allowmultiselection) to **true**. +The TreeView also supports the selection of multiple nodes by setting [allowMultiSelection](../api/treeview/#allowmultiselection) to **true**. -To multi-select, press and hold **CTRL** key and click the desired nodes. To select range of nodes, press and hold the **SHIFT** key and click the nodes. +To multi-select, press and hold the **CTRL** key and click the desired nodes. To select a range of nodes, press and hold the **SHIFT** key and click the nodes. In the following example, the `allowMultiSelection` property is enabled. -> Multi selection is not applicable through touch interactions. +> Multi-selection is not applicable through touch interactions. {% if page.publishingplatform == "typescript" %} @@ -30,8 +30,11 @@ In the following example, the `allowMultiSelection` property is enabled. {% highlight html tabtitle="index.html" %} {% include code-snippet/treeview/multi-selection/selection-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/treeview/multi-selection/selection-cs1/index.css %} +{% endhighlight %} {% endtabs %} - + {% previewsample "page.domainurl/code-snippet/treeview/multi-selection/selection-cs1" %} {% elsif page.publishingplatform == "javascript" %} @@ -43,20 +46,23 @@ In the following example, the `allowMultiSelection` property is enabled. {% highlight html tabtitle="index.html" %} {% include code-snippet/treeview/multi-selection/selection-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/treeview/multi-selection/selection-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/treeview/multi-selection/selection-cs1" %} {% endif %} -## Selected nodes +## Selected Nodes -You can get or set the selected nodes in TreeView at initial rendering and dynamically by using the [selectedNodes](../api/treeview/#selectednodes) property. It will return the selected node’s ID as an array. +You can get or set the selected nodes in TreeView at initial rendering and dynamically by using the [selectedNodes](../api/treeview/#selectednodes) property. It returns the selected node's ID as an array. -* The [`nodeselecting`](../api/treeview/#nodeselecting) event is triggered before a node is selected/unselected which can be used to prevent the selection. +* The [`nodeSelecting`](../api/treeview/#nodeselecting) event is triggered before a node is selected/unselected, which can be used to prevent the selection. * The [`nodeSelected`](../api/treeview/#nodeselected) event is triggered once a node is successfully selected/unselected. -In the following example, **New South Wales** and **Western Australia** nodes are selected at initial rendering. When a node is selected, the selected node’s ID is displayed in alert. +In the following example, the **New South Wales** and **Western Australia** nodes are selected at initial rendering. When a node is selected, the selected node's ID is displayed in an alert. {% if page.publishingplatform == "typescript" %} @@ -67,6 +73,9 @@ In the following example, **New South Wales** and **Western Australia** nodes ar {% highlight html tabtitle="index.html" %} {% include code-snippet/treeview/multi-selection/selected-nodes-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/treeview/multi-selection/selected-nodes-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/treeview/multi-selection/selected-nodes-cs1" %} @@ -80,6 +89,9 @@ In the following example, **New South Wales** and **Western Australia** nodes ar {% highlight html tabtitle="index.html" %} {% include code-snippet/treeview/multi-selection/selected-nodes-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/treeview/multi-selection/selected-nodes-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/treeview/multi-selection/selected-nodes-cs1" %} diff --git a/ej2-javascript/treeview/node-editing.md b/ej2-javascript/treeview/node-editing.md index 7e15e8502..b723d1d23 100644 --- a/ej2-javascript/treeview/node-editing.md +++ b/ej2-javascript/treeview/node-editing.md @@ -1,26 +1,25 @@ --- layout: post -title: Node editing in ##Platform_Name## Treeview control | Syncfusion -description: Learn here all about Node editing in Syncfusion ##Platform_Name## Treeview control of Syncfusion Essential JS 2 and more. +title: Node editing in ##Platform_Name## TreeView control | Syncfusion +description: Learn here all about Node editing in Syncfusion ##Platform_Name## TreeView control of Syncfusion Essential JS 2 and more. platform: ej2-javascript -control: Node editing +control: Node editing publishingplatform: ##Platform_Name## documentation: ug domainurl: ##DomainURL## --- -# Node editing in ##Platform_Name## Treeview control +# Node editing in ##Platform_Name## TreeView control -The TreeView allows you to edit nodes by setting the [allowEditing](../api/treeview/#allowediting) property to **true**. -To directly edit the nodes in place, **double click** the TreeView node or **select** the node and press **F2** key. +The TreeView allows you to edit nodes by setting the [allowEditing](../api/treeview/#allowediting) property to **true**. To edit the nodes directly in place, **double-click** the TreeView node or **select** the node and press the **F2** key. -When editing is completed by focus out or by pressing the **Enter** key, the modified node’s text saves automatically. If you do not want to save the modified node’s text in TreeView node, press **Escape** key. It does not save the edited text to the TreeView node. +When editing is completed by losing focus or by pressing the **Enter** key, the modified node’s text is saved automatically. If you do not want to save the modified text in the TreeView node, press the **Escape** key. It does not save the edited text to the TreeView node. -* Node editing can also be performed programmatically by using the [`beginEdit`](../api/treeview/#beginedit) method. On passing the node ID or element through this method, the edit textbox will be created for the particular node thus allowing us to edit it. +* Node editing can also be performed programmatically by using the [`beginEdit`](../api/treeview/#beginedit) method. By passing the node ID or element through this method, an edit textbox will be created for the particular node, allowing you to edit it. -* If you need to validate or prevent editing, the [`nodeEditing`](../api/treeview/#nodeediting) event can be used which is triggered before the TreeView node is renamed. On successfully renaming a node the [`nodeEdited`](../api/treeview/#nodeedited) event will be triggered. +* If you need to validate or prevent editing, the [`nodeEditing`](../api/treeview/#nodeediting) event can be used, which is triggered before the TreeView node is renamed. When a node is successfully renamed, the [`nodeEdited`](../api/treeview/#nodeedited) event will be triggered. -In the following example, the first level node’s text cannot be changed, but all other level nodes' text can be changed. +In the following example, the text of the first level node cannot be changed, but the text of all other level nodes can be changed. {% if page.publishingplatform == "typescript" %} @@ -31,6 +30,9 @@ In the following example, the first level node’s text cannot be changed, but a {% highlight html tabtitle="index.html" %} {% include code-snippet/treeview/node-editing-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/treeview/node-editing-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/treeview/node-editing-cs1" %} @@ -44,6 +46,9 @@ In the following example, the first level node’s text cannot be changed, but a {% highlight html tabtitle="index.html" %} {% include code-snippet/treeview/node-editing-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/treeview/node-editing-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/treeview/node-editing-cs1" %} diff --git a/ej2-javascript/treeview/template.md b/ej2-javascript/treeview/template.md index b63c95097..c4b18c464 100644 --- a/ej2-javascript/treeview/template.md +++ b/ej2-javascript/treeview/template.md @@ -1,7 +1,7 @@ --- layout: post -title: Template in ##Platform_Name## Treeview control | Syncfusion -description: Learn here all about Template in Syncfusion ##Platform_Name## Treeview control of Syncfusion Essential JS 2 and more. +title: Template in ##Platform_Name## TreeView control | Syncfusion +description: Learn here all about Template in Syncfusion ##Platform_Name## TreeView control of Syncfusion Essential JS 2 and more. platform: ej2-javascript control: Template publishingplatform: ##Platform_Name## @@ -9,11 +9,11 @@ documentation: ug domainurl: ##DomainURL## --- -# Template in ##Platform_Name## Treeview control +# Template in ##Platform_Name## TreeView control -The TreeView component allows you to customize the look of TreeView nodes by using the [nodeTemplate](../api/treeview#nodetemplate) property. This property accepts either [template string](../common/template-engine/) or HTML element ID. +The TreeView control allows you to customize the look of TreeView nodes by using the [nodeTemplate](../api/treeview#nodetemplate) property. This property accepts either a [template string](../common/template-engine/) or an HTML element ID. -In the following sample, employee information such as employee photo, name, and designation have been included using the `nodeTemplate` property. +In the following sample, employee information such as employee photo, name, and designation has been included using the `nodeTemplate` property. The template expression should be provided inside the `${...}` interpolation syntax. diff --git a/ej2-javascript/treeview/ts/ej1-api-migration.md b/ej2-javascript/treeview/ts/ej1-api-migration.md index c0d1dfdc5..516e678e1 100644 --- a/ej2-javascript/treeview/ts/ej1-api-migration.md +++ b/ej2-javascript/treeview/ts/ej1-api-migration.md @@ -11,7 +11,7 @@ domainurl: ##DomainURL## # Ej1 api migration in ##Platform_Name## Treeview control -This article describes the API migration process of TreeView component from Essential JS 1 to Essential JS 2. +This article describes the API migration process of TreeView control from Essential JS 1 to Essential JS 2. ## Add nodes diff --git a/ej2-javascript/treeview/ts/getting-started.md b/ej2-javascript/treeview/ts/getting-started.md index a582746d4..01039bc3d 100644 --- a/ej2-javascript/treeview/ts/getting-started.md +++ b/ej2-javascript/treeview/ts/getting-started.md @@ -1,7 +1,7 @@ --- layout: post -title: Getting started with ##Platform_Name## Treeview control | Syncfusion -description: Checkout and learn about Getting started with ##Platform_Name## Treeview control of Syncfusion Essential JS 2 and more details. +title: Getting started with ##Platform_Name## TreeView control | Syncfusion +description: Checkout and learn about Getting started with ##Platform_Name## TreeView control of Syncfusion Essential JS 2 and more details. platform: ej2-javascript control: Getting started publishingplatform: ##Platform_Name## @@ -9,15 +9,15 @@ documentation: ug domainurl: ##DomainURL## --- -# Getting started in ##Platform_Name## Treeview control +# Getting started in ##Platform_Name## TreeView control -This section explains the steps required to create a simple [JavaScript TreeView](https://www.syncfusion.com/javascript-ui-controls/js-treeview) component, and configure its available functionalities in TypeScript using the Essential JS 2 [quickstart](https://github.com/SyncfusionExamples/ej2-quickstart-webpack-) seed repository. This seed repository is preconfigured with all the Essential JS 2 packages. +This section explains the steps required to create a simple [JavaScript TreeView](https://www.syncfusion.com/javascript-ui-controls/js-treeview) control, and configure its available functionalities in TypeScript using the Essential JS 2 [quickstart](https://github.com/SyncfusionExamples/ej2-quickstart-webpack-) seed repository. This seed repository is preconfigured with all the Essential JS 2 packages. > This application is integrated with the `webpack.config.js` configuration and uses the latest version of the [webpack-cli](https://webpack.js.org/api/cli/#commands). It requires node `v14.15.0` or higher. For more information about webpack and its features, refer to the [webpack documentation](https://webpack.js.org/guides/getting-started/). ## Dependencies -The following list of dependencies are required to use the TreeView component in your application. +The following list of dependencies are required to use the TreeView control in your application. ```javascript |-- @syncfusion/ej2-navigations @@ -80,11 +80,11 @@ Combined CSS files are available in the Essential JS 2 package root folder. This {% endhighlight %} {% endtabs %} -> To refer individual component CSS, please refer to the [Individual Component theme files](../appearance/theme/#referring-individual-control-theme) section. If you want to refer the combined component styles, please make use of our [`CRG`](https://crg.syncfusion.com/) (Custom Resource Generator) in your application. +> To refer individual control CSS, please refer to the [Individual Control theme files](../appearance/theme/#referring-individual-control-theme) section. If you want to refer the combined control styles, please make use of our [`CRG`](https://crg.syncfusion.com/) (Custom Resource Generator) in your application. -## Adding TreeView component +## Adding TreeView control -Now, you can start adding Essential JS 2 TreeView component to the application. To get started, add the TreeView component to `app.ts` and `index.html` files using the following code. Then, add the HTML `
          ` element with its `id` attribute set to `tree` for TreeView component to your `index.html`. +Now, you can start adding Essential JS 2 TreeView control to the application. To get started, add the TreeView control to `app.ts` and `index.html` files using the following code. Then, add the HTML `
          ` element with its `id` attribute set to `tree` for TreeView control to your `index.html`. `[src/index.html]` @@ -129,7 +129,7 @@ import { enableRipple } from '@syncfusion/ej2-base'; enableRipple(true); import { TreeView } from '@syncfusion/ej2-navigations' -//Initialize TreeView component +//Initialize TreeView control let treeViewInstance: TreeView = new TreeView(); //Render initialized TreeView @@ -140,7 +140,7 @@ treeViewInstance.appendTo("#tree"); ## Binding data source -TreeView can load data either from local data sources or remote data services. This can be done using the `dataSource` property that is a member of the [fields](../api/treeview#fields) property. The dataSource property supports array of JavaScript objects and `DataManager`. Here, an array of JSON values is passed to the TreeView component. +TreeView can load data either from local data sources or remote data services. This can be done using the `dataSource` property that is a member of the [fields](../api/treeview#fields) property. The dataSource property supports array of JavaScript objects and `DataManager`. Here, an array of JSON values is passed to the TreeView control. `[src/app/app.ts]` @@ -177,7 +177,7 @@ let data: { [key: string]: Object }[] = [ ] }, ]; -//Initialize TreeView component +//Initialize TreeView control let treeViewInstance: TreeView = new TreeView({ fields: { dataSource: data, id: 'nodeId', text: 'nodeText', child: 'nodeChild' } }); @@ -207,8 +207,11 @@ npm start {% highlight html tabtitle="index.html" %} {% include code-snippet/treeview/getting-started-cs1/index.html %} {% endhighlight %} +{% highlight css tabtitle="index.css" %} +{% include code-snippet/treeview/getting-started-cs1/index.css %} +{% endhighlight %} {% endtabs %} {% previewsample "page.domainurl/code-snippet/treeview/getting-started-cs1" %} -> You can also explore our [JavaScript TreeView example](https://ej2.syncfusion.com/demos/#/bootstrap5/treeview/default.html) to knows how to present and manipulate data. \ No newline at end of file +> You can also explore our [JavaScript TreeView example](https://ej2.syncfusion.com/demos/#/bootstrap5/treeview/default.html) to knows how to present and manipulate data. diff --git a/ej2-typescript-toc.html b/ej2-typescript-toc.html index ddc3b26ac..f447bfe74 100644 --- a/ej2-typescript-toc.html +++ b/ej2-typescript-toc.html @@ -136,7 +136,7 @@
        • Load accordion items dynamically
        • Add icon to Accordion header
        • Add font awesome icons
        • -
        • Customize Accordion expand or collapse animation behavior
        • +
        • Expand/Collapse only on icon click
        • Integrate Essential JS 2 TreeView inside the Accordion
        • @@ -161,6 +161,7 @@
        • Title and Subtitle
        • Print and Export
        • Accessibility
        • +
        • Advanced Accessibility Configuration
        • Migration from Essential JS 1
        • API Reference
        • @@ -196,27 +197,27 @@ -
        • +
        • +
        • Avatar -
        • +
        • +
        • ContextMenu
        • API Reference
        • @@ -1037,6 +1054,8 @@
        • Icons
        • Popup Items
        • Accessibility
        • +
        • Item Template
        • +
        • Animation
        • How To
        • API Reference
        • @@ -1059,15 +1079,13 @@
        • Getting Started
        • Initialize Tags
        • Data Binding
        • -
        • Value Binding
        • Templates
        • Grouping
        • -
        • Disabled Items
        • Filtering
        • -
        • Virtualization
        • Localization
        • Style and appearance
        • Accessibility
        • +
        • Popup Resize
        • How To
        • Migration from Essential JS 1
        • API Reference
        • -
        • +
        • +
        • Dropdown Tree
        • Release Notes