vk-typescript-cli 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (119) hide show
  1. package/Jenkinsfile +48 -0
  2. package/README.md +300 -0
  3. package/bin/sf.js +438 -0
  4. package/eslint.config.js +90 -0
  5. package/gulpfile.js +157 -0
  6. package/lib/commander.js +3370 -0
  7. package/lib/inquirer-prompts.js +2038 -0
  8. package/license +13 -0
  9. package/package.json +43 -0
  10. package/smoke-test.mjs +38 -0
  11. package/src/commands/add.js +276 -0
  12. package/src/commands/info.js +82 -0
  13. package/src/commands/interactive.js +493 -0
  14. package/src/commands/mcp.js +135 -0
  15. package/src/commands/new.js +264 -0
  16. package/src/commands/skills.js +42 -0
  17. package/src/commands/theme.js +200 -0
  18. package/src/commands/upgrade.js +219 -0
  19. package/src/constants.js +161 -0
  20. package/src/generators/angular.js +878 -0
  21. package/src/generators/nextjs.js +817 -0
  22. package/src/generators/react.js +769 -0
  23. package/src/generators/typescript.js +258 -0
  24. package/src/generators/vue.js +800 -0
  25. package/src/templates/angular/chart.component.html +23 -0
  26. package/src/templates/angular/chart.component.ts +172 -0
  27. package/src/templates/angular/diagram.component.html +13 -0
  28. package/src/templates/angular/diagram.component.ts +224 -0
  29. package/src/templates/angular/docx-editor.component.html +18 -0
  30. package/src/templates/angular/docx-editor.component.ts +37 -0
  31. package/src/templates/angular/filemanager.component.html +4 -0
  32. package/src/templates/angular/filemanager.component.ts +47 -0
  33. package/src/templates/angular/gantt.component.html +32 -0
  34. package/src/templates/angular/gantt.component.ts +95 -0
  35. package/src/templates/angular/grid.component.html +12 -0
  36. package/src/templates/angular/grid.component.ts +58 -0
  37. package/src/templates/angular/pdf-viewer.component.html +9 -0
  38. package/src/templates/angular/pdf-viewer.component.ts +48 -0
  39. package/src/templates/angular/rte.component.html +7 -0
  40. package/src/templates/angular/rte.component.ts +13 -0
  41. package/src/templates/angular/scheduler.component.html +17 -0
  42. package/src/templates/angular/scheduler.component.ts +75 -0
  43. package/src/templates/angular/spreadsheet-editor.component.html +42 -0
  44. package/src/templates/angular/spreadsheet-editor.component.ts +61 -0
  45. package/src/templates/chart-template.js +20 -0
  46. package/src/templates/diagram-template.js +26 -0
  47. package/src/templates/docx-template.js +20 -0
  48. package/src/templates/filemanager-template.js +20 -0
  49. package/src/templates/gantt-template.js +20 -0
  50. package/src/templates/grid-template.js +20 -0
  51. package/src/templates/pdfviewer-template.js +20 -0
  52. package/src/templates/react/Chart.jsx +81 -0
  53. package/src/templates/react/Chart.tsx +81 -0
  54. package/src/templates/react/DOCXEditor.jsx +37 -0
  55. package/src/templates/react/DOCXEditor.tsx +37 -0
  56. package/src/templates/react/Diagram.jsx +192 -0
  57. package/src/templates/react/Diagram.tsx +195 -0
  58. package/src/templates/react/FileManager.jsx +13 -0
  59. package/src/templates/react/FileManager.tsx +13 -0
  60. package/src/templates/react/Gantt.jsx +89 -0
  61. package/src/templates/react/Gantt.tsx +89 -0
  62. package/src/templates/react/Grid.jsx +45 -0
  63. package/src/templates/react/Grid.tsx +45 -0
  64. package/src/templates/react/PDFViewer.jsx +16 -0
  65. package/src/templates/react/PDFViewer.tsx +16 -0
  66. package/src/templates/react/RTE.jsx +14 -0
  67. package/src/templates/react/RTE.tsx +14 -0
  68. package/src/templates/react/Scheduler.jsx +55 -0
  69. package/src/templates/react/Scheduler.tsx +55 -0
  70. package/src/templates/react/SpreadsheetEditor.jsx +96 -0
  71. package/src/templates/react/SpreadsheetEditor.tsx +98 -0
  72. package/src/templates/rte-template.js +26 -0
  73. package/src/templates/scheduler-template.js +20 -0
  74. package/src/templates/spreadheet-template.js +20 -0
  75. package/src/templates/typescript/RTE.ts +33 -0
  76. package/src/templates/typescript/SpreadsheetEditor.ts +39 -0
  77. package/src/templates/typescript/chart.ts +37 -0
  78. package/src/templates/typescript/diagram.ts +30 -0
  79. package/src/templates/typescript/docxeditor.ts +30 -0
  80. package/src/templates/typescript/filemanager.ts +41 -0
  81. package/src/templates/typescript/gantt.ts +88 -0
  82. package/src/templates/typescript/grid.ts +30 -0
  83. package/src/templates/typescript/pdfviewer.ts +8 -0
  84. package/src/templates/typescript/scheduler.ts +39 -0
  85. package/src/templates/vue/Chart.vue +257 -0
  86. package/src/templates/vue/ChartView.vue +7 -0
  87. package/src/templates/vue/DOCXEditor.vue +61 -0
  88. package/src/templates/vue/DOCXEditorView.vue +7 -0
  89. package/src/templates/vue/Diagram.vue +245 -0
  90. package/src/templates/vue/DiagramView.vue +7 -0
  91. package/src/templates/vue/FileManager.vue +58 -0
  92. package/src/templates/vue/FileManagerView.vue +7 -0
  93. package/src/templates/vue/Gantt.vue +129 -0
  94. package/src/templates/vue/GanttView.vue +7 -0
  95. package/src/templates/vue/Grid.vue +141 -0
  96. package/src/templates/vue/GridView.vue +7 -0
  97. package/src/templates/vue/PDFViewer.vue +58 -0
  98. package/src/templates/vue/PDFViewerView.vue +7 -0
  99. package/src/templates/vue/RTE.vue +27 -0
  100. package/src/templates/vue/RTEView.vue +7 -0
  101. package/src/templates/vue/Scheduler.vue +94 -0
  102. package/src/templates/vue/SchedulerView.vue +7 -0
  103. package/src/templates/vue/SpreadsheetEditor.vue +115 -0
  104. package/src/templates/vue/SpreadsheetEditorView.vue +7 -0
  105. package/src/utils/ansi-colors.js +38 -0
  106. package/src/utils/banner.js +179 -0
  107. package/src/utils/common.js +64 -0
  108. package/src/utils/config-generator.js +73 -0
  109. package/src/utils/folder-structure.js +26 -0
  110. package/src/utils/logger.js +19 -0
  111. package/src/utils/mcp-generator.js +122 -0
  112. package/src/utils/package-manager.js +128 -0
  113. package/src/utils/project-bootstrap.js +98 -0
  114. package/src/utils/project-detector.js +195 -0
  115. package/src/utils/prompt-utils.js +29 -0
  116. package/src/utils/run-command.js +110 -0
  117. package/src/utils/skills-installer.js +69 -0
  118. package/src/utils/template-file.js +35 -0
  119. package/src/utils/theme-loader.js +47 -0
@@ -0,0 +1,129 @@
1
+ <template>
2
+ <div class="gantt-section">
3
+ <ejs-gantt
4
+ id="Default"
5
+ ref="ganttObj"
6
+ :dataSource="taskData"
7
+ :treeColumnIndex="1"
8
+ :taskFields="taskFields"
9
+ :splitterSettings="splitterSettings"
10
+ :labelSettings="labelSettings"
11
+ height="650px"
12
+ :taskbarHeight="25"
13
+ :rowHeight="46"
14
+ :projectStartDate="projectStartDate"
15
+ :projectEndDate="projectEndDate"
16
+ :created="onCreated"
17
+ >
18
+ <e-columns>
19
+ <e-column field="TaskID" width="80"></e-column>
20
+ <e-column
21
+ field="TaskName"
22
+ headerText="Job Name"
23
+ width="250"
24
+ clipMode="EllipsisWithTooltip"
25
+ ></e-column>
26
+ <e-column field="StartDate"></e-column>
27
+ <e-column field="Duration"></e-column>
28
+ <e-column field="Progress"></e-column>
29
+ <e-column field="Predecessor"></e-column>
30
+ </e-columns>
31
+ </ejs-gantt>
32
+ </div>
33
+ </template>
34
+
35
+ <script setup lang="ts">
36
+ import { provide, ref } from 'vue';
37
+
38
+ import {
39
+ GanttComponent as EjsGantt,
40
+ ColumnsDirective as EColumns,
41
+ ColumnDirective as EColumn,
42
+ Selection
43
+ } from '@syncfusion/ej2-vue-gantt';
44
+
45
+ const ganttObj = ref<any>(null);
46
+
47
+ const taskData = [
48
+ { TaskID: 1, TaskName: "Product concept", StartDate: new Date("04/02/2025"), EndDate: new Date("04/08/2025") },
49
+ { TaskID: 2, TaskName: "Define the product usage", StartDate: new Date("04/02/2025"), EndDate: new Date("04/08/2025"), Duration: 1, Progress: 30, ParentId: 1, BaselineStartDate: new Date("04/02/2025"), BaselineEndDate: new Date("04/02/2025") },
50
+ { TaskID: 3, TaskName: "Define the target audience", StartDate: new Date("04/02/2025"), EndDate: new Date("04/04/2025"), Duration: 2, Progress: 40, ParentId: 1 },
51
+ { TaskID: 4, TaskName: "Prepare product sketch and notes", StartDate: new Date("04/05/2025"), Duration: 2, Progress: 30, ParentId: 1, Predecessor: "2" },
52
+ { TaskID: 5, TaskName: "Concept approval", StartDate: new Date("04/08/2025"), EndDate: new Date("04/08/2025"), Duration: 0, ParentId: 1, Predecessor: "3,4", Indicators: [{ date: new Date("04/07/2025"), name: "Design Phase", tooltip: "Design phase completed", iconClass: "okIcon e-icons" }] },
53
+ { TaskID: 6, TaskName: "Market research", StartDate: new Date("04/09/2025"), EndDate: new Date("04/18/2025"), Progress: 30, BaselineStartDate: new Date("04/09/2025"), BaselineEndDate: new Date("04/09/2025") },
54
+ { TaskID: 7, TaskName: "Demand analysis", Progress: 40, ParentId: 6 },
55
+ { TaskID: 8, TaskName: "Customer strength", StartDate: new Date("04/09/2025"), EndDate: new Date("04/12/2025"), Duration: 4, Progress: 30, ParentId: 7, Predecessor: "5", BaselineStartDate: new Date("04/12/2025"), BaselineEndDate: new Date("04/13/2025") },
56
+ { TaskID: 9, TaskName: "Market opportunity analysis", StartDate: new Date("04/09/2025"), EndDate: new Date("04/12/2025"), Duration: 4, ParentId: 7, Predecessor: "5" },
57
+ { TaskID: 10, TaskName: "Competitor analysis", StartDate: new Date("04/15/2025"), EndDate: new Date("04/18/2025"), Duration: 4, Progress: 30, ParentId: 6, Predecessor: "7,8" },
58
+ { TaskID: 11, TaskName: "Product strength analysis", StartDate: new Date("04/15/2025"), EndDate: new Date("04/18/2025"), Duration: 4, Progress: 40, ParentId: 6, Predecessor: "9" },
59
+ { TaskID: 12, TaskName: "Research completed", StartDate: new Date("04/18/2025"), EndDate: new Date("04/18/2025"), Duration: 0, Progress: 30, ParentId: 6, Predecessor: "10", Indicators: [{ date: new Date("04/20/2025"), name: "Research completed", tooltip: "Research completed", iconClass: "description e-icons" }] },
60
+ { TaskID: 13, TaskName: "Product design and development", StartDate: new Date("04/19/2025"), EndDate: new Date("05/16/2025") },
61
+ { TaskID: 14, TaskName: "Functionality design", StartDate: new Date("04/19/2025"), EndDate: new Date("04/23/2025"), Duration: 4, Progress: 30, ParentId: 13, Predecessor: "12" },
62
+ { TaskID: 15, TaskName: "Quality design", StartDate: new Date("04/19/2025"), EndDate: new Date("04/23/2025"), Duration: 3, Progress: 40, ParentId: 13, Predecessor: "12" },
63
+ { TaskID: 16, TaskName: "Define reliability", StartDate: new Date("04/24/2025"), EndDate: new Date("04/25/2025"), Duration: 4, Progress: 30, ParentId: 13, Predecessor: "15" },
64
+ { TaskID: 17, TaskName: "Identifying raw materials", StartDate: new Date("04/24/2025"), EndDate: new Date("04/25/2025"), Duration: 2, ParentId: 13, Predecessor: "15" },
65
+ { TaskID: 18, TaskName: "Define cost plan", StartDate: new Date("04/26/2025"), EndDate: new Date("04/29/2025"), Progress: 30, ParentId: 13, Predecessor: "17" },
66
+ { TaskID: 19, TaskName: "Estimate manufacturing cost", StartDate: new Date("04/26/2025"), EndDate: new Date("04/29/2025"), Duration: 3, Progress: 40, ParentId: 18, Predecessor: "17" },
67
+ { TaskID: 20, TaskName: "Estimate selling cost", StartDate: new Date("04/26/2025"), EndDate: new Date("04/29/2025"), Duration: 3, Progress: 30, ParentId: 18, Predecessor: "17" },
68
+ { TaskID: 21, TaskName: "Development of final design", StartDate: new Date("04/30/2025"), EndDate: new Date("05/08/2025"), ParentId: 13 },
69
+ { TaskID: 22, TaskName: "Develop dimensions and design", StartDate: new Date("04/30/2025"), EndDate: new Date("05/01/2025"), Duration: 4, Progress: 30, ParentId: 21, Predecessor: "19,20" },
70
+ { TaskID: 23, TaskName: "Develop designs to meet industry", StartDate: new Date("05/02/2025"), EndDate: new Date("05/03/2025"), Duration: 3, Progress: 40, ParentId: 21, Predecessor: "22" },
71
+ { TaskID: 24, TaskName: "Include all the details", StartDate: new Date("05/06/2025"), EndDate: new Date("05/08/2025"), Duration: 4, Progress: 30, ParentId: 21, Predecessor: "23" },
72
+ { TaskID: 25, TaskName: "CAD - Computer Aided Design", StartDate: new Date("05/09/2025"), EndDate: new Date("05/13/2025"), Duration: 3, Predecessor: "24" },
73
+ { TaskID: 26, TaskName: "CAM - Computer Aided Manufacturing", StartDate: new Date("05/14/2025"), EndDate: new Date("05/16/2025"), Duration: 4, Progress: 30, Predecessor: "25" },
74
+ { TaskID: 27, TaskName: "Finalize the design", StartDate: new Date("04/16/2025"), EndDate: new Date("04/16/2025"), Duration: 0, Progress: 40, Predecessor: "26" },
75
+ { TaskID: 28, TaskName: "Prototype testing", StartDate: new Date("05/17/2025"), EndDate: new Date("05/22/2025"), Duration: 4, Progress: 30, Predecessor: "27" },
76
+ { TaskID: 29, TaskName: "Include feedback", StartDate: new Date("05/17/2025"), EndDate: new Date("05/22/2025"), Duration: 4, Predecessor: "28ss", Indicators: [{ date: new Date("05/30/2025"), name: "Production phase", tooltip: "Production phase completed", iconClass: "okIcon e-icons" }] },
77
+ { TaskID: 30, TaskName: "Manufacturing", StartDate: new Date("05/23/2025"), EndDate: new Date("05/29/2025"), Duration: 5, Progress: 30, Predecessor: "28,29" },
78
+ { TaskID: 31, TaskName: "Assembling material into finished goods", StartDate: new Date("05/30/2025"), EndDate: new Date("06/05/2025"), Duration: 5, Progress: 40, Predecessor: "30" },
79
+ { TaskID: 32, TaskName: "Final product development", StartDate: new Date("06/06/2025"), EndDate: new Date("06/13/2025"), Progress: 30 },
80
+ { TaskID: 33, TaskName: "Important improvement", StartDate: new Date("06/06/2025"), EndDate: new Date("06/10/2025"), Duration: 3, ParentId: 32, Predecessor: "31" },
81
+ { TaskID: 34, TaskName: "Customer testing and feedback", StartDate: new Date("06/11/2025"), EndDate: new Date("06/13/2025"), Duration: 4, Progress: 30, ParentId: 32, Predecessor: "33" },
82
+ { TaskID: 35, TaskName: "Final product development", StartDate: new Date("06/14/2025"), EndDate: new Date("06/19/2025"), Progress: 40 },
83
+ { TaskID: 36, TaskName: "Important improvement", StartDate: new Date("06/14/2025"), EndDate: new Date("06/19/2025"), Duration: 4, Progress: 30, ParentId: 35, Predecessor: "34" },
84
+ { TaskID: 37, TaskName: "Address any unforeseen issues", StartDate: new Date("06/14/2025"), EndDate: new Date("06/19/2025"), Duration: 4, Progress: 30, Predecessor: "36ss", ParentId: 35, Indicators: [{ date: new Date("06/30/2025"), name: "Sales and marketing", tooltip: "Sales and marketing", iconClass: "description e-icons" }] },
85
+ { TaskID: 38, TaskName: "Finalize the product", StartDate: new Date("06/20/2025"), EndDate: new Date("07/01/2025"), Progress: 40 },
86
+ { TaskID: 39, TaskName: "Branding the product", StartDate: new Date("06/20/2025"), EndDate: new Date("06/25/2025"), Duration: 4, Progress: 30, ParentId: 38, Predecessor: "37" },
87
+ { TaskID: 40, TaskName: "Marketing and presales", StartDate: new Date("06/26/2025"), EndDate: new Date("07/01/2025"), Duration: 4, ParentId: 38, Predecessor: "39" }
88
+ ];
89
+
90
+ const taskFields = {
91
+ id: 'TaskID',
92
+ name: 'TaskName',
93
+ startDate: 'StartDate',
94
+ endDate: 'EndDate',
95
+ duration: 'Duration',
96
+ progress: 'Progress',
97
+ dependency: 'Predecessor',
98
+ parentID: 'ParentId'
99
+ };
100
+
101
+ const labelSettings = {
102
+ leftLabel: 'TaskName'
103
+ };
104
+
105
+ const splitterSettings = {
106
+ columnIndex: 2
107
+ };
108
+
109
+ const projectStartDate = new Date('03/26/2025');
110
+ const projectEndDate = new Date('07/20/2025');
111
+
112
+ const onCreated = (): void => {
113
+ const ganttInstance = ganttObj.value?.ej2Instances;
114
+
115
+ if (document.querySelector('.e-bigger') && ganttInstance) {
116
+ ganttInstance.rowHeight = 48;
117
+ ganttInstance.taskbarHeight = 28;
118
+ }
119
+ };
120
+
121
+ provide('gantt', [Selection]);
122
+ </script>
123
+
124
+ <style scoped>
125
+ .gantt-section {
126
+ padding: 50px;
127
+ margin: 0 auto;
128
+ }
129
+ </style>
@@ -0,0 +1,7 @@
1
+ <template>
2
+ <Gantt />
3
+ </template>
4
+
5
+ <script setup>
6
+ import Gantt from '../components/Gantt.vue'
7
+ </script>
@@ -0,0 +1,141 @@
1
+ <template>
2
+ <div class="grid-container">
3
+ <ejs-grid
4
+ :height='350'
5
+ :dataSource="data"
6
+ :allowSorting="true"
7
+ :allowFiltering="true"
8
+ :filterSettings="filterSettings"
9
+ :allowSelection="true"
10
+ :toolbar="toolbar"
11
+ :editSettings="editSettings"
12
+ >
13
+ <e-columns>
14
+ <e-column
15
+ field="OrderID"
16
+ headerText="Order ID"
17
+ width="120"
18
+ textAlign="Right"
19
+ type="number"
20
+ :isPrimaryKey="true"
21
+ :validationRules="orderIdRules"
22
+ >
23
+ </e-column>
24
+
25
+ <e-column
26
+ field="CustomerName"
27
+ headerText="Customer Name"
28
+ width="150"
29
+ :validationRules="customerIdRule"
30
+ >
31
+ </e-column>
32
+
33
+ <e-column
34
+ field="OrderDate"
35
+ headerText="Order Date"
36
+ width="130"
37
+ format="yMd"
38
+ editType="datepickeredit"
39
+ :validationRules="customerIdRule"
40
+ >
41
+ </e-column>
42
+
43
+ <e-column
44
+ field="Freight"
45
+ headerText="Freight"
46
+ width="120"
47
+ textAlign="Right"
48
+ format="C2"
49
+ editType="numericedit"
50
+ :validationRules="freightRules"
51
+ >
52
+ </e-column>
53
+
54
+ <e-column
55
+ field="ShippedDate"
56
+ headerText="Shipped Date"
57
+ width="130"
58
+ textAlign="Right"
59
+ format="yMd"
60
+ editType="datepickeredit"
61
+ >
62
+ </e-column>
63
+
64
+ <e-column
65
+ field="ShipCountry"
66
+ headerText="Ship Country"
67
+ width="150"
68
+ >
69
+ </e-column>
70
+ </e-columns>
71
+ </ejs-grid>
72
+ </div>
73
+ </template>
74
+
75
+ <script setup>
76
+ import { provide, ref } from 'vue';
77
+ import {
78
+ GridComponent as EjsGrid,
79
+ ColumnsDirective as EColumns,
80
+ ColumnDirective as EColumn,
81
+ Page,
82
+ Sort,
83
+ Filter,
84
+ Toolbar,
85
+ Edit,
86
+ Selection
87
+ } from '@syncfusion/ej2-vue-grids';
88
+
89
+ const data = ref([
90
+ { 'OrderID': 10248, 'CustomerName': 'Maria ', 'OrderDate': new Date('1996-07-04'), 'ShippedDate': new Date('1996-07-16'), 'Freight': 32.38, 'ShipCountry': 'France' },
91
+ { 'OrderID': 10249, 'CustomerName': 'Ana Trujillo', 'OrderDate': new Date('1996-07-05'), 'ShippedDate': new Date('1996-07-10'), 'Freight': 11.61, 'ShipCountry': 'Germany' },
92
+ { 'OrderID': 10250, 'CustomerName': 'Antonio Moreno', 'OrderDate': new Date('1996-07-08'), 'ShippedDate': new Date('1996-07-12'), 'Freight': 65.83, 'ShipCountry': 'Brazil' },
93
+ { 'OrderID': 10251, 'CustomerName': 'Thomas Hardy', 'OrderDate': new Date('1996-07-08'), 'ShippedDate': new Date('1996-07-15'), 'Freight': 41.34, 'ShipCountry': 'France' },
94
+ { 'OrderID': 10252, 'CustomerName': 'Christina Berglund', 'OrderDate': new Date('1996-07-09'), 'ShippedDate': new Date('1996-07-11'), 'Freight': 51.3, 'ShipCountry': 'Belgium' },
95
+ { 'OrderID': 10253, 'CustomerName': 'Hanna Moos', 'OrderDate': new Date('1996-07-10'), 'ShippedDate': new Date('1996-07-16'), 'Freight': 58.17, 'ShipCountry': 'Brazil' },
96
+ { 'OrderID': 10254, 'CustomerName': 'Frédérique Citeaux', 'OrderDate': new Date('1996-07-11'), 'ShippedDate': new Date('1996-07-23'), 'Freight': 22.98, 'ShipCountry': 'Switzerland' },
97
+ { 'OrderID': 10255, 'CustomerName': 'Martín Sommer', 'OrderDate': new Date('1996-07-12'), 'ShippedDate': new Date('1996-07-15'), 'Freight': 148.33, 'ShipCountry': 'Switzerland' },
98
+ { 'OrderID': 10256, 'CustomerName': 'Laurence Lebihan', 'OrderDate': new Date('1996-07-15'), 'ShippedDate': new Date('1996-07-17'), 'Freight': 13.97, 'ShipCountry': 'Brazil' },
99
+ { 'OrderID': 10257, 'CustomerName': 'Elizabeth Lincoln', 'OrderDate': new Date('1996-07-16'), 'ShippedDate': new Date('1996-07-22'), 'Freight': 81.91, 'ShipCountry': 'Venezuela' },
100
+ { 'OrderID': 10258, 'CustomerName': 'Victoria Ashworth', 'OrderDate': new Date('1996-07-17'), 'ShippedDate': new Date('1996-07-23'), 'Freight': 140.51, 'ShipCountry': 'Austria' },
101
+ { 'OrderID': 10259, 'CustomerName': 'Patricio Simpson', 'OrderDate': new Date('1996-07-18'), 'ShippedDate': new Date('1996-07-25'), 'Freight': 3.25, 'ShipCountry': 'Mexico' },
102
+ { 'OrderID': 10260, 'CustomerName': 'Francisco Chang', 'OrderDate': new Date('1996-07-19'), 'ShippedDate': new Date('1996-07-29'), 'Freight': 55.09, 'ShipCountry': 'Germany' },
103
+ { 'OrderID': 10261, 'CustomerName': 'Yang Wang', 'OrderDate': new Date('1996-07-19'), 'ShippedDate': new Date('1996-07-30'), 'Freight': 3.05, 'ShipCountry': 'Brazil' },
104
+ { 'OrderID': 10262, 'CustomerName': 'Pedro Afonso', 'OrderDate': new Date('1996-07-22'), 'ShippedDate': new Date('1996-07-25'), 'Freight': 48.29, 'ShipCountry': 'USA' }
105
+ ]);
106
+
107
+ const filterSettings = ref({
108
+ type: 'Excel'
109
+ });
110
+
111
+ const toolbar = ref(['Add', 'Edit', 'Delete', 'Update', 'Cancel']);
112
+
113
+ const editSettings = ref({
114
+ allowEditing: true,
115
+ allowAdding: true,
116
+ allowDeleting: true
117
+ });
118
+
119
+ const customerIdRule = {
120
+ required: true,
121
+ minLength: 5
122
+ };
123
+
124
+ const orderIdRules = {
125
+ required: true,
126
+ number: true
127
+ };
128
+
129
+ const freightRules = {
130
+ required: true,
131
+ min: 0
132
+ };
133
+
134
+ provide('grid', [Page, Sort, Filter, Toolbar, Edit, Selection]);
135
+ </script>
136
+
137
+ <style scoped>
138
+ .grid-container {
139
+ margin: 50px 90px;
140
+ }
141
+ </style>
@@ -0,0 +1,7 @@
1
+ <template>
2
+ <Grid />
3
+ </template>
4
+
5
+ <script setup>
6
+ import Grid from '../components/Grid.vue'
7
+ </script>
@@ -0,0 +1,58 @@
1
+ <template>
2
+ <div class="pdf-viewer-container">
3
+ <ejs-pdfviewer
4
+ id="container"
5
+ :documentPath="documentPath"
6
+ :resourceUrl="resourceUrl"
7
+ :style="{ height: '640px', display: 'block' }"
8
+ >
9
+ </ejs-pdfviewer>
10
+ </div>
11
+ </template>
12
+
13
+ <script setup>
14
+ import { provide, ref } from 'vue';
15
+
16
+ import {
17
+ PdfViewerComponent as EjsPdfviewer,
18
+ Toolbar,
19
+ Magnification,
20
+ Navigation,
21
+ LinkAnnotation,
22
+ BookmarkView,
23
+ ThumbnailView,
24
+ Print,
25
+ TextSelection,
26
+ TextSearch,
27
+ Annotation,
28
+ FormFields,
29
+ FormDesigner,
30
+ PageOrganizer
31
+ } from '@syncfusion/ej2-vue-pdfviewer';
32
+
33
+ const documentPath = ref('https://cdn.syncfusion.com/content/pdf/pdf-succinctly.pdf');
34
+
35
+ const resourceUrl = ref('https://cdn.syncfusion.com/ej2/23.2.6/dist/ej2-pdfviewer-lib');
36
+
37
+ provide('PdfViewer', [
38
+ Toolbar,
39
+ Magnification,
40
+ Navigation,
41
+ LinkAnnotation,
42
+ BookmarkView,
43
+ ThumbnailView,
44
+ Print,
45
+ TextSelection,
46
+ TextSearch,
47
+ Annotation,
48
+ FormFields,
49
+ FormDesigner,
50
+ PageOrganizer
51
+ ]);
52
+ </script>
53
+
54
+ <style scoped>
55
+ .pdf-viewer-container {
56
+ margin: 50px 90px;
57
+ }
58
+ </style>
@@ -0,0 +1,7 @@
1
+ <template>
2
+ <PDFViewer />
3
+ </template>
4
+
5
+ <script setup>
6
+ import PDFViewer from '../components/PDFViewer.vue'
7
+ </script>
@@ -0,0 +1,27 @@
1
+ <template>
2
+ <div class="rte-container">
3
+ <ejs-richtexteditor>
4
+ <h2>Welcome to the Rich Text Editor Demo!</h2><p>The Rich Text Editor control is a WYSIWYG ("what you see is what you get") editor that provides the best user experience to create and update the content. Users can format their content using standard toolbar commands.</p><h4>Flexible Editing!</h4><p>For a better editing experience, the Angular Rich Text Editor component offers a variety of tools and choices. So, you can quickly insert <strong>images</strong>, <strong>videos</strong>, <strong>hyperlinks</strong>, and <strong>tables</strong>; <strong>merge table cells</strong>; and configure.</p><p>You can easily format the text and paragraphs by setting the editor’s foreground and <strong>background colors</strong>, <strong>font type</strong>, <strong>italicization</strong>, <strong>adding ordered </strong>and <strong>unordered custom lists</strong>, <strong>underlining</strong>, <strong>strikethrough</strong>, and <strong>bolding</strong>.<br><br></p><p><img alt="Editor Features Overview" src="https://cdn.syncfusion.com/ej2/richtexteditor-resources/RTE-Overview.png" width="400" height="200" class="e-img-left"></p>
5
+ </ejs-richtexteditor>
6
+ </div>
7
+ </template>
8
+
9
+ <script>
10
+ import { RichTextEditorComponent, Toolbar, Link, Image, QuickToolbar, HtmlEditor, Table, Video, Audio, PasteCleanup, ClipBoardCleanup, AutoFormat } from "@syncfusion/ej2-vue-richtexteditor";
11
+
12
+ export default {
13
+ components: {
14
+ 'ejs-richtexteditor': RichTextEditorComponent
15
+ },
16
+ provide:{
17
+ richtexteditor:[Toolbar, Link, Image, QuickToolbar, HtmlEditor, Table, Video, Audio, PasteCleanup, ClipBoardCleanup, AutoFormat]
18
+ }
19
+ }
20
+ </script>
21
+
22
+ <style scoped>
23
+ .rte-container {
24
+ padding: 70px;
25
+ margin: 0 auto;
26
+ }
27
+ </style>
@@ -0,0 +1,7 @@
1
+ <template>
2
+ <RTE />
3
+ </template>
4
+
5
+ <script setup>
6
+ import RTE from '../components/RTE.vue'
7
+ </script>
@@ -0,0 +1,94 @@
1
+ <template>
2
+ <div class="schedule-section">
3
+ <ejs-schedule
4
+ ref="scheduleObj"
5
+ height="650px"
6
+ :selectedDate="selectedDate"
7
+ :eventSettings="eventSettings"
8
+ :dragStart="onDragStart"
9
+ >
10
+ <e-views>
11
+ <e-view option="Day"></e-view>
12
+ <e-view option="Week"></e-view>
13
+ <e-view option="WorkWeek"></e-view>
14
+ <e-view option="Month"></e-view>
15
+ <e-view option="Agenda"></e-view>
16
+ </e-views>
17
+ </ejs-schedule>
18
+ </div>
19
+ </template>
20
+
21
+ <script setup lang="ts">
22
+ import { provide } from 'vue';
23
+
24
+ import {
25
+ ScheduleComponent as EjsSchedule,
26
+ ViewsDirective as EViews,
27
+ ViewDirective as EView,
28
+ Day,
29
+ Week,
30
+ WorkWeek,
31
+ Month,
32
+ Agenda,
33
+ Resize,
34
+ DragAndDrop
35
+ } from '@syncfusion/ej2-vue-schedule';
36
+
37
+ import { extend } from '@syncfusion/ej2-base';
38
+
39
+ interface DragEventArgs {
40
+ navigation?: {
41
+ enable: boolean;
42
+ };
43
+ }
44
+
45
+ const dataSource: Object[] = [
46
+ { "Id": 1, "Subject": "Explosion of Betelgeuse Star", "Location": "Space Center USA", "StartTime": "2021-01-10T04:00:00.000Z", "EndTime": "2021-01-10T05:30:00.000Z", "CategoryColor": "#1aaa55" },
47
+ { "Id": 2, "Subject": "Thule Air Crash Report", "Location": "Newyork City", "StartTime": "2021-01-11T06:30:00.000Z", "EndTime": "2021-01-11T08:30:00.000Z", "CategoryColor": "#357cd2" },
48
+ { "Id": 3, "Subject": "Blue Moon Eclipse", "Location": "Space Center USA", "StartTime": "2021-01-12T04:00:00.000Z", "EndTime": "2021-01-12T05:30:00.000Z", "CategoryColor": "#7fa900" },
49
+ { "Id": 4, "Subject": "Meteor Showers in 2021", "Location": "Space Center USA", "StartTime": "2021-01-13T07:30:00.000Z", "EndTime": "2021-01-13T09:00:00.000Z", "CategoryColor": "#ea7a57" },
50
+ { "Id": 5, "Subject": "Milky Way as Melting pot", "Location": "Space Center USA", "StartTime": "2021-01-14T06:30:00.000Z", "EndTime": "2021-01-14T08:30:00.000Z", "CategoryColor": "#00bdae" },
51
+ { "Id": 6, "Subject": "Mysteries of Bermuda Triangle", "Location": "Bermuda", "StartTime": "2021-01-14T04:00:00.000Z", "EndTime": "2021-01-14T05:30:00.000Z", "CategoryColor": "#f57f17" },
52
+ { "Id": 7, "Subject": "Glaciers and Snowflakes", "Location": "Himalayas", "StartTime": "2021-01-15T05:30:00.000Z", "EndTime": "2021-01-15T07:00:00.000Z", "CategoryColor": "#1aaa55" },
53
+ { "Id": 8, "Subject": "Life on Mars", "Location": "Space Center USA", "StartTime": "2021-01-16T03:30:00.000Z", "EndTime": "2021-01-16T04:30:00.000Z", "CategoryColor": "#357cd2" },
54
+ { "Id": 9, "Subject": "Alien Civilization", "Location": "Space Center USA", "StartTime": "2021-01-18T05:30:00.000Z", "EndTime": "2021-01-18T07:30:00.000Z", "CategoryColor": "#7fa900" },
55
+ { "Id": 10, "Subject": "Wildlife Galleries", "Location": "Africa", "StartTime": "2021-01-20T05:30:00.000Z", "EndTime": "2021-01-20T07:30:00.000Z", "CategoryColor": "#ea7a57" },
56
+ { "Id": 11, "Subject": "Best Photography 2021", "Location": "London", "StartTime": "2021-01-21T04:00:00.000Z", "EndTime": "2021-01-21T05:30:00.000Z", "CategoryColor": "#00bdae" },
57
+ { "Id": 12, "Subject": "Smarter Puppies", "Location": "Sweden", "StartTime": "2021-01-08T04:30:00.000Z", "EndTime": "2021-01-08T06:00:00.000Z", "CategoryColor": "#f57f17" },
58
+ { "Id": 13, "Subject": "Myths of Andromeda Galaxy", "Location": "Space Center USA", "StartTime": "2021-01-06T05:00:00.000Z", "EndTime": "2021-01-06T07:00:00.000Z", "CategoryColor": "#1aaa55" },
59
+ { "Id": 14, "Subject": "Aliens vs Humans", "Location": "Research Center of USA", "StartTime": "2021-01-05T04:30:00.000Z", "EndTime": "2021-01-05T06:00:00.000Z", "CategoryColor": "#357cd2" },
60
+ { "Id": 15, "Subject": "Facts of Humming Birds", "Location": "California", "StartTime": "2021-01-19T04:00:00.000Z", "EndTime": "2021-01-19T05:30:00.000Z", "CategoryColor": "#7fa900" },
61
+ { "Id": 16, "Subject": "Sky Gazers", "Location": "Alaska", "StartTime": "2021-01-22T05:30:00.000Z", "EndTime": "2021-01-22T07:30:00.000Z", "CategoryColor": "#ea7a57" },
62
+ { "Id": 17, "Subject": "The Cycle of Seasons", "Location": "Research Center of USA", "StartTime": "2021-01-11T00:00:00.000Z", "EndTime": "2021-01-11T02:00:00.000Z", "CategoryColor": "#00bdae" },
63
+ { "Id": 18, "Subject": "Space Galaxies and Planets", "Location": "Space Center USA", "StartTime": "2021-01-11T11:30:00.000Z", "EndTime": "2021-01-11T13:00:00.000Z", "CategoryColor": "#f57f17" },
64
+ { "Id": 19, "Subject": "Lifecycle of Bumblebee", "Location": "San Fransisco", "StartTime": "2021-01-14T00:30:00.000Z", "EndTime": "2021-01-14T02:00:00.000Z", "CategoryColor": "#7fa900" },
65
+ { "Id": 20, "Subject": "Alien Civilization", "Location": "Space Center USA", "StartTime": "2021-01-14T10:30:00.000Z", "EndTime": "2021-01-14T12:30:00.000Z", "CategoryColor": "#ea7a57" },
66
+ { "Id": 21, "Subject": "Alien Civilization", "Location": "Space Center USA", "StartTime": "2021-01-10T08:30:00.000Z", "EndTime": "2021-01-10T10:30:00.000Z", "CategoryColor": "#ea7a57" },
67
+ { "Id": 22, "Subject": "The Cycle of Seasons", "Location": "Research Center of USA", "StartTime": "2021-01-12T09:00:00.000Z", "EndTime": "2021-01-12T10:30:00.000Z", "CategoryColor": "#00bdae" },
68
+ { "Id": 23, "Subject": "Sky Gazers", "Location": "Greenland", "StartTime": "2021-01-15T09:00:00.000Z", "EndTime": "2021-01-15T10:30:00.000Z", "CategoryColor": "#ea7a57" },
69
+ { "Id": 24, "Subject": "Facts of Humming Birds", "Location": "California", "StartTime": "2021-01-16T07:00:00.000Z", "EndTime": "2021-01-16T09:00:00.000Z", "CategoryColor": "#7fa900" }
70
+ ];
71
+
72
+ const data = extend([], dataSource, undefined, true) as Record<string, any>[];
73
+
74
+ const selectedDate = new Date(2021, 0, 10);
75
+
76
+ const eventSettings = {
77
+ dataSource: data
78
+ };
79
+
80
+ const onDragStart = (args: DragEventArgs): void => {
81
+ if (args.navigation) {
82
+ args.navigation.enable = true;
83
+ }
84
+ };
85
+
86
+ provide('schedule', [Day, Week, WorkWeek, Month, Agenda, Resize, DragAndDrop]);
87
+ </script>
88
+
89
+ <style scoped>
90
+ .schedule-section {
91
+ padding: 50px;
92
+ margin: 0 auto;
93
+ }
94
+ </style>
@@ -0,0 +1,7 @@
1
+ <template>
2
+ <Scheduler />
3
+ </template>
4
+
5
+ <script setup>
6
+ import Scheduler from '../components/Scheduler.vue'
7
+ </script>
@@ -0,0 +1,115 @@
1
+ <template>
2
+ <div class="spreadsheet-container">
3
+ <ejs-spreadsheet
4
+ ref="spreadsheet"
5
+ :openUrl="openUrl"
6
+ :saveUrl="saveUrl"
7
+ @created="onCreated"
8
+ >
9
+ <e-sheets>
10
+ <e-sheet name="Car Sales Report">
11
+ <e-ranges>
12
+ <e-range :dataSource="defaultData"></e-range>
13
+ </e-ranges>
14
+
15
+ <e-rows>
16
+ <e-row :index="12">
17
+ <e-cells>
18
+ <e-cell
19
+ :index="4"
20
+ value="Total Amount:"
21
+ :style="boldRight"
22
+ ></e-cell>
23
+
24
+ <e-cell
25
+ formula="=SUM(F2:F12)"
26
+ :style="bold"
27
+ ></e-cell>
28
+ </e-cells>
29
+ </e-row>
30
+ </e-rows>
31
+
32
+ <e-columns>
33
+ <e-column :width="180"></e-column>
34
+ <e-column :width="130"></e-column>
35
+ <e-column :width="130"></e-column>
36
+ <e-column :width="180"></e-column>
37
+ <e-column :width="130"></e-column>
38
+ <e-column :width="120"></e-column>
39
+ </e-columns>
40
+ </e-sheet>
41
+ </e-sheets>
42
+ </ejs-spreadsheet>
43
+ </div>
44
+ </template>
45
+
46
+ <script setup>
47
+ import { ref } from 'vue';
48
+ import {
49
+ SpreadsheetComponent as EjsSpreadsheet,
50
+ SheetsDirective as ESheets,
51
+ SheetDirective as ESheet,
52
+ RangesDirective as ERanges,
53
+ RangeDirective as ERange,
54
+ RowsDirective as ERows,
55
+ RowDirective as ERow,
56
+ CellsDirective as ECells,
57
+ CellDirective as ECell,
58
+ ColumnsDirective as EColumns,
59
+ ColumnDirective as EColumn
60
+ } from '@syncfusion/ej2-vue-spreadsheet';
61
+
62
+ const spreadsheet = ref(null);
63
+
64
+ const openUrl = 'https://document.syncfusion.com/web-services/spreadsheet-editor/api/spreadsheet/open';
65
+
66
+ const saveUrl = 'https://document.syncfusion.com/web-services/spreadsheet-editor/api/spreadsheet/save';
67
+
68
+ const defaultData = ref([
69
+ { "Customer Name": "Romona Heaslip", "Model": "Taurus", "Color": "Aquamarine", "Payment Mode": "Debit Card", "Delivery Date": "07-11-2015", "Amount": "8529.22" },
70
+ { "Customer Name": "Clare Batterton", "Model": "Sparrow", "Color": "Pink", "Payment Mode": "Cash On Delivery", "Delivery Date": "07-13-2016", "Amount": "17866.19" },
71
+ { "Customer Name": "Eamon Traise", "Model": "Grand Cherokee", "Color": "Blue", "Payment Mode": "Net Banking", "Delivery Date": "09-04-2015", "Amount": "13853.09" },
72
+ { "Customer Name": "Julius Gorner", "Model": "GTO", "Color": "Aquamarine", "Payment Mode": "Credit Card", "Delivery Date": "12-15-2017", "Amount": "2338.74" },
73
+ { "Customer Name": "Jenna Schoolfield", "Model": "LX", "Color": "Yellow", "Payment Mode": "Credit Card", "Delivery Date": "10-08-2014", "Amount": "9578.45" },
74
+ { "Customer Name": "Marylynne Harring", "Model": "Catera", "Color": "Green", "Payment Mode": "Cash On Delivery", "Delivery Date": "07-01-2017", "Amount": "19141.62" },
75
+ { "Customer Name": "Vilhelmina Leipelt", "Model": "7 Series", "Color": "Goldenrod", "Payment Mode": "Credit Card", "Delivery Date": "12-20-2015", "Amount": "6543.30" },
76
+ { "Customer Name": "Barby Heisler", "Model": "Corvette", "Color": "Red", "Payment Mode": "Credit Card", "Delivery Date": "11-24-2014", "Amount": "13035.06" },
77
+ { "Customer Name": "Karyn Boik", "Model": "Regal", "Color": "Indigo", "Payment Mode": "Debit Card", "Delivery Date": "05-12-2014", "Amount": "18488.80" },
78
+ { "Customer Name": "Jeanette Pamplin", "Model": "S4", "Color": "Fuscia", "Payment Mode": "Net Banking", "Delivery Date": "12-30-2014", "Amount": "12317.04" },
79
+ { "Customer Name": "Cristi Espinos", "Model": "TL", "Color": "Aquamarine", "Payment Mode": "Credit Card", "Delivery Date": "12-18-2013", "Amount": "6230.13" }
80
+ ]);
81
+
82
+ const boldRight = {
83
+ fontWeight: 'bold',
84
+ textAlign: 'right'
85
+ };
86
+
87
+ const bold = {
88
+ fontWeight: 'bold'
89
+ };
90
+
91
+ const onCreated = () => {
92
+ const spreadsheetObj = spreadsheet.value?.ej2Instances;
93
+
94
+ if (spreadsheetObj) {
95
+ spreadsheetObj.cellFormat(
96
+ {
97
+ fontWeight: 'bold',
98
+ textAlign: 'center',
99
+ verticalAlign: 'middle'
100
+ },
101
+ 'A1:F1'
102
+ );
103
+
104
+ spreadsheetObj.numberFormat('$#,##0.00', 'F2:F12');
105
+ spreadsheetObj.numberFormat('m/d/yyyy', 'E2:E12');
106
+ }
107
+ };
108
+ </script>
109
+
110
+ <style scoped>
111
+ .spreadsheet-container {
112
+ padding: 50px;
113
+ margin: 0 auto;
114
+ }
115
+ </style>
@@ -0,0 +1,7 @@
1
+ <template>
2
+ <SpreadsheetEditor />
3
+ </template>
4
+
5
+ <script setup>
6
+ import SpreadsheetEditor from '../components/SpreadsheetEditor.vue'
7
+ </script>