@fishawack/lab-velocity 1.11.1 → 2.0.0-beta.2

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 (132) hide show
  1. package/README.md +13 -7
  2. package/_Build/vue/components/Icon.vue +33 -0
  3. package/_Build/vue/components/Svg.vue +45 -0
  4. package/{basic → _Build/vue/components/basic}/Button.vue +16 -18
  5. package/{basic → _Build/vue/components/basic}/link.vue +8 -7
  6. package/{form → _Build/vue/components/form}/Cascader.vue +13 -13
  7. package/{form → _Build/vue/components/form}/CheckboxGroup.vue +28 -6
  8. package/{form → _Build/vue/components/form}/DatePicker.vue +23 -7
  9. package/{form → _Build/vue/components/form}/InputNumber.vue +1 -2
  10. package/{form → _Build/vue/components/form}/Select.vue +8 -9
  11. package/{form → _Build/vue/components/form}/Switch.vue +2 -2
  12. package/{form → _Build/vue/components/form}/Upload.vue +4 -6
  13. package/{form → _Build/vue/components/form}/Wysiwyg.vue +14 -14
  14. package/_Build/vue/components/form/Wysiwyg2.vue +577 -0
  15. package/{form → _Build/vue/components/form}/basic.vue +25 -7
  16. package/{form → _Build/vue/components/form}/file.vue +1 -1
  17. package/{form → _Build/vue/components/form}/input.js +2 -2
  18. package/{form → _Build/vue/components/form}/input.vue +31 -11
  19. package/{layout → _Build/vue/components/layout}/Alert.vue +10 -10
  20. package/_Build/vue/components/layout/Footer.vue +50 -0
  21. package/{layout → _Build/vue/components/layout}/Header.vue +5 -7
  22. package/_Build/vue/components/layout/Loader.vue +59 -0
  23. package/{layout → _Build/vue/components/layout}/Tooltip.vue +12 -12
  24. package/{layout → _Build/vue/components/layout}/pageTitle.vue +4 -4
  25. package/{layout → _Build/vue/components/layout}/sideBar.vue +4 -6
  26. package/{navigation → _Build/vue/components/navigation}/Breadcrumbs.vue +15 -10
  27. package/{navigation → _Build/vue/components/navigation}/BreadcrumbsItem.vue +6 -6
  28. package/_Build/vue/components/navigation/Menu.vue +14 -0
  29. package/_Build/vue/components/navigation/MenuItem.vue +20 -0
  30. package/_Build/vue/components/navigation/MenuItemGroup.vue +20 -0
  31. package/_Build/vue/components/navigation/SubMenu.vue +20 -0
  32. package/_Build/vue/modules/AuthModule/adminRoutes/PCompanies/Children/Upload/upload.vue +251 -0
  33. package/_Build/vue/modules/AuthModule/adminRoutes/PCompanies/Children/create.vue +62 -0
  34. package/_Build/vue/modules/AuthModule/adminRoutes/PCompanies/Children/edit.vue +98 -0
  35. package/_Build/vue/modules/AuthModule/adminRoutes/PCompanies/Children/index.vue +90 -0
  36. package/_Build/vue/modules/AuthModule/adminRoutes/PCompanies/Children/partials/form.vue +173 -0
  37. package/_Build/vue/modules/AuthModule/adminRoutes/PCompanies/Children/show.vue +262 -0
  38. package/_Build/vue/modules/AuthModule/adminRoutes/PCompanies/parent.vue +36 -0
  39. package/_Build/vue/modules/AuthModule/adminRoutes/PUsers/Children/create.vue +112 -0
  40. package/_Build/vue/modules/AuthModule/adminRoutes/PUsers/Children/edit.vue +103 -0
  41. package/_Build/vue/modules/AuthModule/adminRoutes/PUsers/Children/index.vue +112 -0
  42. package/_Build/vue/modules/AuthModule/adminRoutes/PUsers/Children/partials/form.vue +169 -0
  43. package/_Build/vue/modules/AuthModule/adminRoutes/PUsers/Children/show.vue +120 -0
  44. package/_Build/vue/modules/AuthModule/adminRoutes/PUsers/parent.vue +36 -0
  45. package/{AuthModule → _Build/vue/modules/AuthModule}/components/AuthModal.vue +30 -35
  46. package/_Build/vue/modules/AuthModule/components/Chip.vue +70 -0
  47. package/_Build/vue/modules/AuthModule/components/Chips.vue +26 -0
  48. package/_Build/vue/modules/AuthModule/components/FormRole.vue +115 -0
  49. package/_Build/vue/modules/AuthModule/components/VBreadcrumbs.vue +32 -0
  50. package/_Build/vue/modules/AuthModule/components/VFormFooter.vue +46 -0
  51. package/_Build/vue/modules/AuthModule/components/VPageHeader.vue +38 -0
  52. package/_Build/vue/modules/AuthModule/components/VPasswordValidation.vue +106 -0
  53. package/_Build/vue/modules/AuthModule/components/VRoleLegend.vue +43 -0
  54. package/_Build/vue/modules/AuthModule/components/VTable.vue +127 -0
  55. package/_Build/vue/modules/AuthModule/components/VTableSorter.vue +240 -0
  56. package/_Build/vue/modules/AuthModule/js/FakeAPI.js +78 -0
  57. package/_Build/vue/modules/AuthModule/js/axios.js +62 -0
  58. package/_Build/vue/modules/AuthModule/js/router.js +295 -0
  59. package/_Build/vue/modules/AuthModule/js/store.js +62 -0
  60. package/{AuthModule → _Build/vue/modules/AuthModule}/routes/account-exists.vue +5 -7
  61. package/{AuthModule → _Build/vue/modules/AuthModule}/routes/change-password.vue +28 -25
  62. package/{AuthModule → _Build/vue/modules/AuthModule}/routes/container.vue +4 -8
  63. package/{AuthModule → _Build/vue/modules/AuthModule}/routes/expired-reset.vue +13 -11
  64. package/{AuthModule → _Build/vue/modules/AuthModule}/routes/expired-verification.vue +12 -12
  65. package/{AuthModule → _Build/vue/modules/AuthModule}/routes/force-reset.vue +36 -26
  66. package/{AuthModule → _Build/vue/modules/AuthModule}/routes/forgot.vue +11 -7
  67. package/{AuthModule → _Build/vue/modules/AuthModule}/routes/login.vue +20 -15
  68. package/{AuthModule → _Build/vue/modules/AuthModule}/routes/logincallback.vue +5 -10
  69. package/_Build/vue/modules/AuthModule/routes/loginheadless.vue +21 -0
  70. package/{AuthModule → _Build/vue/modules/AuthModule}/routes/loginsso.vue +32 -25
  71. package/{AuthModule → _Build/vue/modules/AuthModule}/routes/logout.vue +6 -6
  72. package/_Build/vue/modules/AuthModule/routes/logoutheadless.vue +27 -0
  73. package/{AuthModule → _Build/vue/modules/AuthModule}/routes/register.vue +43 -25
  74. package/{AuthModule → _Build/vue/modules/AuthModule}/routes/reset.vue +24 -14
  75. package/{AuthModule → _Build/vue/modules/AuthModule}/routes/success-forgot.vue +14 -12
  76. package/{AuthModule → _Build/vue/modules/AuthModule}/routes/success-reset.vue +4 -4
  77. package/{AuthModule → _Build/vue/modules/AuthModule}/routes/success-verify.vue +10 -7
  78. package/{AuthModule → _Build/vue/modules/AuthModule}/routes/verify.vue +15 -12
  79. package/_base.scss +1 -1
  80. package/_defaults.scss +2 -3
  81. package/_variables.scss +16 -18
  82. package/general.scss +1 -2
  83. package/index.js +38 -30
  84. package/package.json +103 -102
  85. package/vendor.scss +2 -2
  86. package/AuthModule/components/VPasswordValidation.vue +0 -66
  87. package/AuthModule/js/AuthAxios.js +0 -59
  88. package/AuthModule/js/AuthRoutes.js +0 -186
  89. package/AuthModule/js/AuthStore.js +0 -99
  90. package/AuthModule/js/FakeAPI.js +0 -84
  91. package/AuthModule/routes/loginheadless.vue +0 -16
  92. package/Icon.vue +0 -33
  93. package/Svg.vue +0 -40
  94. package/components/_alert.scss +0 -5
  95. package/components/_basic.scss +0 -54
  96. package/components/_breadcrumbs.scss +0 -40
  97. package/components/_button.scss +0 -305
  98. package/components/_cascader.scss +0 -12
  99. package/components/_checkbox.scss +0 -40
  100. package/components/_collapse.scss +0 -25
  101. package/components/_datepicker.scss +0 -51
  102. package/components/_footer.scss +0 -46
  103. package/components/_form.scss +0 -22
  104. package/components/_header.scss +0 -55
  105. package/components/_icon.scss +0 -24
  106. package/components/_input.scss +0 -0
  107. package/components/_inputNumber.scss +0 -21
  108. package/components/_link.scss +0 -44
  109. package/components/_loader.scss +0 -44
  110. package/components/_menu.scss +0 -112
  111. package/components/_pageTitle.scss +0 -8
  112. package/components/_select.scss +0 -28
  113. package/components/_sidebar.scss +0 -57
  114. package/components/_switch.scss +0 -14
  115. package/components/_table.scss +0 -20
  116. package/components/_tooltip.scss +0 -4
  117. package/components/_typography.scss +0 -153
  118. package/components/_upload.scss +0 -15
  119. package/components/_wysiwyg.scss +0 -6
  120. package/components/_wysiwyg2.scss +0 -136
  121. package/form/Wysiwyg2.vue +0 -278
  122. package/layout/Footer.vue +0 -35
  123. package/layout/Loader.vue +0 -39
  124. package/modules/_AuthModule.scss +0 -209
  125. package/modules/_AuthVariables.scss +0 -7
  126. package/modules/_modal.scss +0 -24
  127. package/navigation/Menu.vue +0 -16
  128. package/navigation/MenuItem.vue +0 -20
  129. package/navigation/MenuItemGroup.vue +0 -20
  130. package/navigation/SubMenu.vue +0 -20
  131. /package/{form → _Build/vue/components/form}/Checkbox.vue +0 -0
  132. /package/{form → _Build/vue/components/form}/color.vue +0 -0
@@ -1,153 +0,0 @@
1
- @import "@fishawack/lab-ui/_typography.scss";
2
- /* Primary font
3
- -------------------------------------------------- */
4
- @font-face {
5
- font-family : $primaryFont;
6
- font-weight : 400;
7
- font-style : normal;
8
-
9
- src :
10
- resolve($primaryFontRegular + '.woff2') format('woff2'),
11
- resolve($primaryFontRegular + '.woff') format('woff'),
12
- }
13
-
14
- @font-face {
15
- font-family : $primaryFont;
16
- font-weight : 100;
17
- font-style : normal;
18
-
19
- src :
20
- resolve($primaryFontThin + '.woff2') format('woff2'),
21
- resolve($primaryFontThin + '.woff') format('woff'),
22
- }
23
-
24
- @font-face {
25
- font-family : $primaryFont;
26
- font-weight : 200;
27
- font-style : normal;
28
-
29
- src :
30
- resolve($primaryFontExtraLight + '.woff2') format('woff2'),
31
- resolve($primaryFontExtraLight + '.woff') format('woff'),
32
- }
33
-
34
- @font-face {
35
- font-family : $primaryFont;
36
- font-weight : 300;
37
- font-style : normal;
38
-
39
- src :
40
- resolve($primaryFontLight + '.woff2') format('woff2'),
41
- resolve($primaryFontLight + '.woff') format('woff'),
42
- }
43
-
44
- @font-face {
45
- font-family : $primaryFont;
46
- font-weight : 500;
47
- font-style : normal;
48
-
49
- src :
50
- resolve($primaryFontMedium + '.woff2') format('woff2'),
51
- resolve($primaryFontMedium + '.woff') format('woff'),
52
- }
53
-
54
- @font-face {
55
- font-family : $primaryFont;
56
- font-weight : 600;
57
- font-style : normal;
58
-
59
- src :
60
- resolve($primaryFontSemiBold + '.woff2') format('woff2'),
61
- resolve($primaryFontSemiBold + '.woff') format('woff'),
62
- }
63
-
64
- @font-face {
65
- font-family : $primaryFont;
66
- font-weight : 700;
67
- font-style : normal;
68
-
69
- src :
70
- resolve($primaryFontBold + '.woff2') format('woff2'),
71
- resolve($primaryFontBold + '.woff2') format('woff2'),
72
- }
73
-
74
-
75
-
76
- @font-face {
77
- font-family : $secondaryFont;
78
- font-weight : 500;
79
- font-style : normal;
80
-
81
- src :
82
- resolve($secondaryFontMedium + '.ttf') format('truetype')
83
- }
84
-
85
-
86
- h1,.h1 {
87
- font-size: get-ratio(48px);
88
- line-height: get-ratio(56px);
89
- font-family: $primaryFont;
90
- }
91
-
92
- h2, .h2 {
93
- font-size: get-ratio(36px);
94
- line-height: get-ratio(48px);
95
- font-family : $secondaryFont;
96
- }
97
-
98
- h3, .h3 {
99
- font-size: get-ratio(32px);
100
- line-height: get-ratio(42px);
101
- font-family : $primaryFont;
102
- }
103
-
104
- h4, .h4 {
105
- font-size: get-ratio(24px);
106
- line-height: get-ratio(32px);
107
- font-family : $primaryFont;
108
- }
109
-
110
- h5, .h5 {
111
- font-size: get-ratio(20px);
112
- line-height: get-ratio(24px);
113
- font-weight: 700;
114
- font-family : $primaryFont;
115
- }
116
- h1,.h1,h2,.h2,h3,.h3,h4,.h4,h5,.h5 {
117
-
118
- font-weight: 500;
119
- }
120
-
121
- // may be project specific
122
-
123
- .font-secondary {
124
- font-family: $secondaryFont;
125
- }
126
-
127
- .font-primary {
128
- font-family: $primaryFont;
129
- }
130
-
131
- .text-10 {
132
- font-size: get-ratio(10px);
133
- line-height: get-ratio(16px);
134
- }
135
- .text-12 {
136
- font-size: get-ratio(12px);
137
- line-height: get-ratio(18px);
138
- }
139
- .text-14 {
140
- font-size: get-ratio(14px);
141
- line-height: get-ratio(20px);
142
- }
143
- .font-16 {
144
- font-size: get-ratio(16px);
145
- line-height: get-ratio(24px);
146
- }
147
-
148
- .text-60 {
149
- font-size: get-ratio(60px);
150
- line-height: get-ratio(68px);
151
- font-weight: 500;
152
- font-family : $primaryFont;
153
- }
@@ -1,15 +0,0 @@
1
- @import "element-plus/theme-chalk/el-upload";
2
-
3
- .vel-upload {
4
- .el-upload__tip {
5
- color: $color11;
6
- }
7
- &.form__group--error {
8
- .el-upload__tip {
9
- color: $colorAlert;
10
- }
11
- }
12
- &__error {
13
- color: $colorAlert;
14
- }
15
- }
@@ -1,6 +0,0 @@
1
- @import "quill/dist/quill.snow";
2
- @import "quill/dist/quill.core";
3
-
4
- .ql-container,.ql-toolbar {
5
- background-color: $color0;
6
- }
@@ -1,136 +0,0 @@
1
- @import "element-plus/theme-chalk/el-dropdown";
2
- @import "element-plus/theme-chalk/el-dropdown-item";
3
- @import "element-plus/theme-chalk/el-dialog";
4
- @import "./button.scss";
5
-
6
- .vel-wysiwyg__controls {
7
- background-color: $color0;
8
- display: flex;
9
- flex-grow: 1;
10
- border: solid $color5 2px;
11
- border-bottom: none;
12
- // margin-bottom: .5 * $spacing;
13
- font-size: get-ratio(14px);
14
- padding: 0 .5 * $spacing;
15
- > * {
16
- padding: .5 * $spacing;
17
- padding-right: $spacing;
18
- --el-font-size-base: get-ratio(14px);
19
- &:not(:last-child) {
20
- border-right: solid 1px $color5;
21
- }
22
- }
23
-
24
- button {
25
- // border: solid 1px $color1;
26
- background-color: transparent;
27
- cursor: pointer;
28
- min-width: 28px;
29
- padding: 3px 5px;
30
- line-height: 1;
31
- border: none;
32
- &.is-active, &:hover {
33
- background-color: $color5;
34
- }
35
- svg {
36
- height: 90%;
37
- }
38
- }
39
- .el-dropdown {
40
- line-height: 1.15;
41
- }
42
-
43
- .ql-stroke {
44
- fill: none;
45
- stroke: #444;
46
- stroke-linecap: round;
47
- stroke-linejoin: round;
48
- stroke-width: 2;
49
- }
50
-
51
- .ql-stroke-miter {
52
- fill: none;
53
- stroke: #444;
54
- stroke-miterlimit: 10;
55
- stroke-width: 2;
56
- }
57
-
58
- .ql-fill,
59
- .ql-stroke.ql-fill {
60
- fill: #444;
61
- }
62
-
63
- .ql-empty {
64
- fill: none;
65
- }
66
-
67
- .ql-even {
68
- fill-rule: evenodd;
69
- }
70
-
71
- .ql-thin,
72
- .ql-stroke.ql-thin {
73
- stroke-width: 1;
74
- }
75
-
76
- .ql-transparent {
77
- opacity: 0.4;
78
- }
79
-
80
- ~ div {
81
- // margin-top: $spacing;
82
- border: solid $color5 2px;
83
- background-color: $color0;
84
- > div {
85
- padding: 2 * $spacing;
86
- }
87
- }
88
- }
89
- .vel-wysiwyg__button {
90
- // border: solid 1px $color1;
91
- background-color: transparent;
92
- // cursor: pointer;
93
-
94
- &.is-active, &:hover {
95
- background-color: $color5;
96
- }
97
- }
98
-
99
- .vel-wysiwyg {
100
- // border: solid $color1 1px;
101
- // padding: $spacing * 1.5;
102
-
103
- table,td,th {
104
- border: solid .5px $color1;
105
- }
106
- th {
107
- background-color: $color5;
108
- }
109
- hr {
110
- height: 1px;
111
- background-color: $color1;
112
- }
113
- a {
114
- text-decoration: underline;
115
- }
116
- }
117
-
118
-
119
-
120
- .lab-table, .lab-table-cell, .lab-table-header {
121
- border: solid .5px $color1;
122
- }
123
- .lab-table-header {
124
- background-color: $color5;
125
- }
126
-
127
- .lab-table {
128
- a {
129
- text-decoration: underline;
130
- }
131
- }
132
- .lab-table-cell {
133
- &:active, &:focus-within, &.selectedCell {
134
- background-color: transparentize($color: $color5, $amount: .8);
135
- }
136
- }
package/form/Wysiwyg2.vue DELETED
@@ -1,278 +0,0 @@
1
- <template>
2
- <XInput v-bind="$props" class="vel-wysiwyg">
3
- <template #label>
4
- <slot name="label" />
5
- </template>
6
- <div class="control-group vel-wysiwyg__controls" v-if="editor">
7
- <el-dropdown>
8
- Heading
9
- <template #dropdown>
10
- <el-dropdown-menu>
11
- <el-dropdown-item @click="editor.chain().focus().toggleHeading({ level: 1 }).run()" :class="{ 'is-active': editor.isActive('heading', { level: 1 }) }">
12
- H1
13
- </el-dropdown-item>
14
- <el-dropdown-item @click="editor.chain().focus().toggleHeading({ level: 2 }).run()" :class="{ 'is-active': editor.isActive('heading', { level: 2 }) }">
15
- H2
16
- </el-dropdown-item>
17
- <el-dropdown-item @click="editor.chain().focus().toggleHeading({ level: 3 }).run()" :class="{ 'is-active': editor.isActive('heading', { level: 3 }) }">
18
- H3
19
- </el-dropdown-item>
20
- <el-dropdown-item @click="editor.chain().focus().toggleHeading({ level: 4 }).run()" :class="{ 'is-active': editor.isActive('heading', { level: 4 }) }">
21
- H4
22
- </el-dropdown-item>
23
- <el-dropdown-item @click="editor.chain().focus().toggleHeading({ level: 5 }).run()" :class="{ 'is-active': editor.isActive('heading', { level: 5 }) }">
24
- H5
25
- </el-dropdown-item>
26
- <el-dropdown-item @click="editor.chain().focus().toggleHeading({ level: 6 }).run()" :class="{ 'is-active': editor.isActive('heading', { level: 6 }) }">
27
- H6
28
- </el-dropdown-item>
29
- <el-dropdown-item @click="editor.chain().focus().setParagraph().run()" :class="{ 'is-active': editor.isActive('paragraph') }">
30
- Paragraph
31
- </el-dropdown-item>
32
- </el-dropdown-menu>
33
- </template>
34
- </el-dropdown>
35
- <el-dropdown>
36
- Style
37
- <template #dropdown>
38
- <el-dropdown-menu>
39
- <el-dropdown-item class="vel-wysiwyg__button" @click="editor.chain().focus().toggleBold().run()" :disabled="!editor.can().chain().focus().toggleBold().run()" :class="{ 'is-active': editor.isActive('bold') }">Bold</el-dropdown-item>
40
- <el-dropdown-item class="vel-wysiwyg__button" @click="editor.chain().focus().toggleItalic().run()" :disabled="!editor.can().chain().focus().toggleItalic().run()" :class="{ 'is-active': editor.isActive('italic') }">Italic</el-dropdown-item>
41
- <el-dropdown-item class="vel-wysiwyg__button" @click="editor.chain().focus().toggleUnderline().run()" :disabled="!editor.can().chain().focus().toggleUnderline().run()" :class="{ 'is-active': editor.isActive('underline') }">Underline</el-dropdown-item>
42
- </el-dropdown-menu>
43
- </template>
44
- </el-dropdown>
45
- <el-dropdown v-if="table">
46
- Table
47
- <template #dropdown>
48
- <el-dropdown-menu>
49
- <el-dropdown-item @click="editor.chain().focus().insertTable({ rows: 3, cols: 3, withHeaderRow: true }).run()">
50
- Insert table
51
- </el-dropdown-item>
52
- <el-dropdown-item @click="editor.chain().focus().addColumnBefore().run()">
53
- Add column before
54
- </el-dropdown-item>
55
- <el-dropdown-item @click="editor.chain().focus().addColumnAfter().run()">
56
- Add column after
57
- </el-dropdown-item>
58
- <el-dropdown-item @click="editor.chain().focus().deleteColumn().run()">
59
- Delete column
60
- </el-dropdown-item>
61
- <el-dropdown-item @click="editor.chain().focus().addRowBefore().run()">
62
- Add row before
63
- </el-dropdown-item>
64
- <el-dropdown-item @click="editor.chain().focus().addRowAfter().run()">
65
- Add row after
66
- </el-dropdown-item>
67
- <el-dropdown-item @click="editor.chain().focus().deleteRow().run()">
68
- Delete row
69
- </el-dropdown-item>
70
- <el-dropdown-item @click="editor.chain().focus().deleteTable().run()">
71
- Delete table
72
- </el-dropdown-item>
73
- <el-dropdown-item @click="editor.chain().focus().mergeCells().run()">
74
- Merge cells
75
- </el-dropdown-item>
76
- <el-dropdown-item @click="editor.chain().focus().splitCell().run()">
77
- Split cell
78
- </el-dropdown-item>
79
- <el-dropdown-item @click="editor.chain().focus().toggleHeaderColumn().run()">
80
- Toggle header column
81
- </el-dropdown-item>
82
- <el-dropdown-item @click="editor.chain().focus().toggleHeaderRow().run()">
83
- Toggle header row
84
- </el-dropdown-item>
85
- <el-dropdown-item @click="editor.chain().focus().toggleHeaderCell().run()">
86
- Toggle header cell
87
- </el-dropdown-item>
88
- <el-dropdown-item @click="editor.chain().focus().mergeOrSplit().run()">
89
- Merge or split
90
- </el-dropdown-item>
91
- <el-dropdown-item @click="editor.chain().focus().setCellAttribute('colspan', 2).run()">
92
- Set cell attribute
93
- </el-dropdown-item>
94
- <el-dropdown-item @click="editor.chain().focus().fixTables().run()">
95
- Fix tables
96
- </el-dropdown-item>
97
- </el-dropdown-menu>
98
- </template>
99
- </el-dropdown>
100
- <button type="button" @click="editor.chain().focus().toggleBulletList().run()" :class="{ 'is-active': editor.isActive('bulletList') }">
101
- <svg viewBox="0 0 18 18"> <line class="ql-stroke" x1="6" x2="15" y1="4" y2="4"></line> <line class="ql-stroke" x1="6" x2="15" y1="9" y2="9"></line> <line class="ql-stroke" x1="6" x2="15" y1="14" y2="14"></line> <line class="ql-stroke" x1="3" x2="3" y1="4" y2="4"></line> <line class="ql-stroke" x1="3" x2="3" y1="9" y2="9"></line> <line class="ql-stroke" x1="3" x2="3" y1="14" y2="14"></line> </svg>
102
- </button>
103
- <button type="button" @click="editor.chain().focus().toggleOrderedList().run()" :class="{ 'is-active': editor.isActive('orderedList') }">
104
- <svg viewBox="0 0 18 18"> <line class="ql-stroke" x1="7" x2="15" y1="4" y2="4"></line> <line class="ql-stroke" x1="7" x2="15" y1="9" y2="9"></line> <line class="ql-stroke" x1="7" x2="15" y1="14" y2="14"></line> <line class="ql-stroke ql-thin" x1="2.5" x2="4.5" y1="5.5" y2="5.5"></line> <path class="ql-fill" d="M3.5,6A0.5,0.5,0,0,1,3,5.5V3.085l-0.276.138A0.5,0.5,0,0,1,2.053,3c-0.124-.247-0.023-0.324.224-0.447l1-.5A0.5,0.5,0,0,1,4,2.5v3A0.5,0.5,0,0,1,3.5,6Z"></path> <path class="ql-stroke ql-thin" d="M4.5,10.5h-2c0-.234,1.85-1.076,1.85-2.234A0.959,0.959,0,0,0,2.5,8.156"></path> <path class="ql-stroke ql-thin" d="M2.5,14.846a0.959,0.959,0,0,0,1.85-.109A0.7,0.7,0,0,0,3.75,14a0.688,0.688,0,0,0,.6-0.736,0.959,0.959,0,0,0-1.85-.109"></path> </svg>
105
- </button>
106
- <button type="button" @click="editor.chain().focus().toggleCodeBlock().run()" :class="{ 'is-active': editor.isActive('codeBlock') }">
107
- Code block
108
- </button>
109
- <button type="button" @click="editor.chain().focus().toggleBlockquote().run()" :class="{ 'is-active': editor.isActive('blockquote') }">
110
- Blockquote
111
- </button>
112
- <button type="button" @click="editor.chain().focus().setHorizontalRule().run()">
113
- Horizontal rule
114
- </button>
115
- <button type="button" @click="editor.chain().focus().toggleSuperscript().run()" :class="{ 'is-active': editor.isActive('superscript') }">
116
- <svg viewBox="0 0 18 18"> <path class="ql-fill" d="M15.5,7H13.861a4.015,4.015,0,0,0,1.914-2.975,1.8,1.8,0,0,0-1.6-1.751A1.922,1.922,0,0,0,12.021,3.7a0.5,0.5,0,1,0,.957.291,0.917,0.917,0,0,1,1.053-.725,0.81,0.81,0,0,1,.744.762c0,1.077-1.164,1.925-1.934,2.486A1.423,1.423,0,0,0,12,7.5a0.5,0.5,0,0,0,.5.5h3A0.5,0.5,0,0,0,15.5,7Z"></path> <path class="ql-fill" d="M9.651,5.241a1,1,0,0,0-1.41.108L6,7.964,3.759,5.349a1,1,0,1,0-1.519,1.3L4.683,9.5,2.241,12.35a1,1,0,1,0,1.519,1.3L6,11.036,8.241,13.65a1,1,0,0,0,1.519-1.3L7.317,9.5,9.759,6.651A1,1,0,0,0,9.651,5.241Z"></path> </svg>
117
- </button>
118
- <button type="button" @click="editor.chain().focus().toggleSubscript().run()" :class="{ 'is-active': editor.isActive('subscript') }">
119
- <svg viewBox="0 0 18 18"> <path class="ql-fill" d="M15.5,15H13.861a3.858,3.858,0,0,0,1.914-2.975,1.8,1.8,0,0,0-1.6-1.751A1.921,1.921,0,0,0,12.021,11.7a0.50013,0.50013,0,1,0,.957.291h0a0.914,0.914,0,0,1,1.053-.725,0.81,0.81,0,0,1,.744.762c0,1.076-1.16971,1.86982-1.93971,2.43082A1.45639,1.45639,0,0,0,12,15.5a0.5,0.5,0,0,0,.5.5h3A0.5,0.5,0,0,0,15.5,15Z"></path> <path class="ql-fill" d="M9.65,5.241a1,1,0,0,0-1.409.108L6,7.964,3.759,5.349A1,1,0,0,0,2.192,6.59178Q2.21541,6.6213,2.241,6.649L4.684,9.5,2.241,12.35A1,1,0,0,0,3.71,13.70722q0.02557-.02768.049-0.05722L6,11.036,8.241,13.65a1,1,0,1,0,1.567-1.24277Q9.78459,12.3777,9.759,12.35L7.316,9.5,9.759,6.651A1,1,0,0,0,9.65,5.241Z"></path> </svg>
120
- </button>
121
- <button type="button" @click="setLink" :class="{ 'is-active': editor.isActive('link') }">
122
- <svg viewBox="0 0 18 18"> <line class="ql-stroke" x1="7" x2="11" y1="7" y2="11"></line> <path class="ql-even ql-stroke" d="M8.9,4.577a3.476,3.476,0,0,1,.36,4.679A3.476,3.476,0,0,1,4.577,8.9C3.185,7.5,2.035,6.4,4.217,4.217S7.5,3.185,8.9,4.577Z"></path> <path class="ql-even ql-stroke" d="M13.423,9.1a3.476,3.476,0,0,0-4.679-.36,3.476,3.476,0,0,0,.36,4.679c1.392,1.392,2.5,2.542,4.679.36S14.815,10.5,13.423,9.1Z"></path> </svg>
123
- </button>
124
- </div>
125
- <editor-content :editor="editor" />
126
- <el-dialog
127
- v-model="dialogVisible"
128
- title="URL"
129
- width="500"
130
- >
131
- <label>Enter URL</label>
132
- <el-input v-model="newUrl" type="url" />
133
- <template #footer>
134
- <div class="dialog-footer">
135
- <el-button @click="dialogVisible = false">Cancel</el-button>
136
- <el-button type="primary" @click="updateURL">
137
- Confirm
138
- </el-button>
139
- </div>
140
- </template>
141
- </el-dialog>
142
- </XInput>
143
- </template>
144
-
145
- <script>
146
- import input from "./input.js";
147
- import XInput from "./input.vue";
148
- import sanitizeHtml from 'sanitize-html';
149
- import { ElDropdown, ElDropdownItem, ElDropdownMenu, ElDialog, ElButton, ElInput } from "element-plus";
150
- import { Editor, EditorContent } from '@tiptap/vue-3'
151
- import StarterKit from '@tiptap/starter-kit';
152
- import Underline from '@tiptap/extension-underline'
153
- import Table from '@tiptap/extension-table'
154
- import TableCell from '@tiptap/extension-table-cell'
155
- import TableHeader from '@tiptap/extension-table-header'
156
- import TableRow from '@tiptap/extension-table-row'
157
- import Superscript from '@tiptap/extension-superscript'
158
- import Subscript from '@tiptap/extension-subscript'
159
- import Link from '@tiptap/extension-link'
160
-
161
- export default {
162
- mixins: [input],
163
-
164
- components: {
165
- XInput,
166
- EditorContent,
167
- ElDropdown,
168
- ElDropdownItem,
169
- ElDropdownMenu,
170
- ElDialog,
171
- ElButton,
172
- ElInput
173
- },
174
-
175
- props: {
176
- table: {
177
- type: Boolean,
178
- default: false,
179
- },
180
- baseClass: {
181
- type: String,
182
- default: "vel-wysiwyg",
183
- },
184
- },
185
-
186
- data: () => ({
187
- editor: null,
188
- hold: null,
189
- previousUrl: null,
190
- newUrl: null,
191
- dialogVisible:false,
192
- }),
193
-
194
- watch: {
195
- modelValue: {
196
- handler(val) {
197
- if (this.hold !== val) {
198
- this.setValue();
199
- }
200
- },
201
- },
202
- },
203
-
204
- methods: {
205
- setValue() {
206
- this.editor.commands.setContent(this.modelValue);
207
- },
208
- setLink() {
209
- this.previousUrl = this.editor.getAttributes('link').href;
210
- this.newUrl = this.previousUrl;
211
- this.dialogVisible = true;
212
-
213
- },
214
- updateURL() {
215
- // cancelled
216
- this.dialogVisible = false;
217
- let url = this.newUrl;
218
- if (url === this.previousUrl) {
219
- return
220
- }
221
-
222
- // empty
223
- if (url === '') {
224
- this.editor
225
- .chain()
226
- .focus()
227
- .extendMarkRange('link')
228
- .unsetLink()
229
- .run()
230
-
231
- return
232
- }
233
- // update link
234
- this.editor
235
- .chain()
236
- .focus()
237
- .extendMarkRange('link')
238
- .setLink({ href: url })
239
- .run()
240
- }
241
- },
242
-
243
- mounted() {
244
- let extensions = [
245
- StarterKit,
246
- Underline,
247
- Superscript,
248
- Subscript,
249
- Link.configure({
250
- openOnClick: false,
251
- defaultProtocol: 'https',
252
- })
253
- ];
254
- if(this.$props.table) {
255
- extensions.push(
256
- Table.configure({
257
- resizable: true,
258
- }),
259
- TableRow,
260
- TableHeader,
261
- TableCell);
262
- }
263
-
264
- this.editor = new Editor({
265
- extensions: extensions,
266
- });
267
- this.setValue();
268
-
269
- this.editor.on('blur', ({ editor, event }) => {
270
- const value = editor.isEmpty ? '' : event.srcElement.innerHTML;
271
- if(this.hold !== value) {
272
- this.hold = value;
273
- this.$emit("update:modelValue", this.hold);
274
- }
275
- })
276
- },
277
- };
278
- </script>
package/layout/Footer.vue DELETED
@@ -1,35 +0,0 @@
1
- <template>
2
- <footer class="vel-footer">
3
- <div>
4
- <h5 class="color-0">
5
- <slot/>
6
- </h5>
7
- </div>
8
- <div class="vel-footer__bottom">
9
- <div class="vel-footer__bottom__links">
10
- <p class="color-0">&copy;2025 Avalere Health.</p>
11
- <el-link underline class="color-0 ml" href="https://avalerehealth.com/privacy-policy/" target="_blank">Privacy Policy</el-link>
12
- <el-link underline class="color-0 ml" href="https://avalerehealth.com/corporate-policies/" target="_blank">Corporate policies and compliance</el-link>
13
- </div>
14
- <div class="vel-footer__bottom__end">
15
- <p class="color-0">Have a question?</p><el-link underline class="color-0 ml" :href="contact">Contact our Support Team</el-link>
16
- </div>
17
- </div>
18
- </footer>
19
- </template>
20
-
21
- <script>
22
- import elLink from "../basic/link.vue";
23
-
24
- export default {
25
- props: {
26
- contact: {
27
- required:true,
28
- type:String
29
- }
30
- },
31
- components: {
32
- elLink
33
- }
34
- }
35
- </script>
package/layout/Loader.vue DELETED
@@ -1,39 +0,0 @@
1
- <template>
2
- <div class="vel-loader">
3
- <slot>
4
- <svg viewBox="0 0 84 84" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
5
- <defs>
6
- <pattern id="e11rz3cojb" width="100%" height="100%" patternUnits="objectBoundingBox">
7
- <use xlink:href="#w1y9w0pc6a"/>
8
- </pattern>
9
- <image id="w1y9w0pc6a" width="84" height="84" xlink:href="data:image/png;base64,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"/>
10
- <path id="3vizvfpwxc" d="M0 0h39.967v39.966H0z"/>
11
- </defs>
12
- <g fill="none" fill-rule="evenodd">
13
- <path class="circle" d="M42 0C18.804 0 0 18.804 0 42s18.804 42 42 42 42-18.804 42-42S65.196 0 42 0zm0 4c20.987 0 38 17.013 38 38S62.987 80 42 80 4 62.987 4 42 21.013 4 42 4z" fill="url(#e11rz3cojb)" fill-rule="nonzero"/>
14
- <g transform="translate(22 22)">
15
- <mask id="y3cby6hymd" fill="#fff">
16
- <use xlink:href="#3vizvfpwxc"/>
17
- </mask>
18
- <path d="m16.552 21.54 4.036-12.407h.312l4.204 12.946c2.503 1.604 4.81 3.465 6.752 5.604l-.38.486c-3.45-2.688-8.243-5.126-14.924-6.63m23.414 18.425L26.189 0h-10.89L8.295 20.29a82.37 82.37 0 0 0-6.892-.306L0 24.047c2.37.103 4.628.329 6.769.664L1.502 39.966h9.055l4.314-13.26c7.747 2.716 13.03 7.333 15.105 13.26h9.99v-.002" fill="#0D0D0D" mask="url(#y3cby6hymd)"/>
19
- </g>
20
- </g>
21
- </svg>
22
-
23
- </slot>
24
-
25
- </div>
26
- </template>
27
-
28
- <script>
29
- export default {
30
- props: {
31
- reversed: {
32
- type: Boolean,
33
- default: false,
34
- }
35
- },
36
- components: {
37
- }
38
- };
39
- </script>