@fishawack/lab-velocity 2.0.0-beta.1 → 2.0.0-beta.3

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 (112) hide show
  1. package/_Build/vue/components/Icon.vue +33 -0
  2. package/_Build/vue/components/Svg.vue +45 -0
  3. package/_Build/vue/components/basic/Button.vue +109 -0
  4. package/_Build/vue/components/basic/link.vue +64 -0
  5. package/_Build/vue/components/form/Cascader.vue +85 -0
  6. package/_Build/vue/components/form/Checkbox.vue +39 -0
  7. package/_Build/vue/components/form/CheckboxGroup.vue +91 -0
  8. package/_Build/vue/components/form/DatePicker.vue +116 -0
  9. package/_Build/vue/components/form/InputNumber.vue +89 -0
  10. package/_Build/vue/components/form/Select.vue +109 -0
  11. package/_Build/vue/components/form/Switch.vue +63 -0
  12. package/_Build/vue/components/form/Upload.vue +101 -0
  13. package/_Build/vue/components/form/Wysiwyg.vue +127 -0
  14. package/_Build/vue/components/form/Wysiwyg2.vue +577 -0
  15. package/_Build/vue/components/form/basic.vue +106 -0
  16. package/_Build/vue/components/form/color.vue +22 -0
  17. package/_Build/vue/components/form/file.vue +89 -0
  18. package/_Build/vue/components/form/input.js +79 -0
  19. package/_Build/vue/components/form/input.vue +105 -0
  20. package/_Build/vue/components/layout/Alert.vue +38 -0
  21. package/_Build/vue/components/layout/Footer.vue +50 -0
  22. package/_Build/vue/components/layout/Header.vue +13 -0
  23. package/_Build/vue/components/layout/Loader.vue +59 -0
  24. package/_Build/vue/components/layout/Tooltip.vue +46 -0
  25. package/_Build/vue/components/layout/pageTitle.vue +18 -0
  26. package/_Build/vue/components/layout/sideBar.vue +25 -0
  27. package/_Build/vue/components/navigation/Breadcrumbs.vue +37 -0
  28. package/_Build/vue/components/navigation/BreadcrumbsItem.vue +19 -0
  29. package/_Build/vue/components/navigation/Menu.vue +14 -0
  30. package/_Build/vue/components/navigation/MenuItem.vue +20 -0
  31. package/_Build/vue/components/navigation/MenuItemGroup.vue +20 -0
  32. package/_Build/vue/components/navigation/SubMenu.vue +20 -0
  33. package/_Build/vue/modules/AuthModule/adminRoutes/PCompanies/Children/Upload/upload.vue +251 -0
  34. package/_Build/vue/modules/AuthModule/adminRoutes/PCompanies/Children/create.vue +62 -0
  35. package/_Build/vue/modules/AuthModule/adminRoutes/PCompanies/Children/edit.vue +98 -0
  36. package/_Build/vue/modules/AuthModule/adminRoutes/PCompanies/Children/index.vue +90 -0
  37. package/_Build/vue/modules/AuthModule/adminRoutes/PCompanies/Children/partials/form.vue +173 -0
  38. package/_Build/vue/modules/AuthModule/adminRoutes/PCompanies/Children/show.vue +262 -0
  39. package/_Build/vue/modules/AuthModule/adminRoutes/PCompanies/parent.vue +36 -0
  40. package/_Build/vue/modules/AuthModule/adminRoutes/PUsers/Children/create.vue +112 -0
  41. package/_Build/vue/modules/AuthModule/adminRoutes/PUsers/Children/edit.vue +103 -0
  42. package/_Build/vue/modules/AuthModule/adminRoutes/PUsers/Children/index.vue +112 -0
  43. package/_Build/vue/modules/AuthModule/adminRoutes/PUsers/Children/partials/form.vue +169 -0
  44. package/_Build/vue/modules/AuthModule/adminRoutes/PUsers/Children/show.vue +120 -0
  45. package/_Build/vue/modules/AuthModule/adminRoutes/PUsers/parent.vue +36 -0
  46. package/_Build/vue/modules/AuthModule/components/AuthModal.vue +105 -0
  47. package/_Build/vue/modules/AuthModule/components/Chip.vue +70 -0
  48. package/_Build/vue/modules/AuthModule/components/Chips.vue +26 -0
  49. package/_Build/vue/modules/AuthModule/components/FormRole.vue +115 -0
  50. package/_Build/vue/modules/AuthModule/components/VBreadcrumbs.vue +33 -0
  51. package/_Build/vue/modules/AuthModule/components/VFormFooter.vue +46 -0
  52. package/_Build/vue/modules/AuthModule/components/VPageHeader.vue +38 -0
  53. package/_Build/vue/modules/AuthModule/components/VPasswordValidation.vue +106 -0
  54. package/_Build/vue/modules/AuthModule/components/VRoleLegend.vue +43 -0
  55. package/_Build/vue/modules/AuthModule/components/VTable.vue +127 -0
  56. package/_Build/vue/modules/AuthModule/components/VTableSorter.vue +240 -0
  57. package/_Build/vue/modules/AuthModule/js/FakeAPI.js +78 -0
  58. package/_Build/vue/modules/AuthModule/js/axios.js +62 -0
  59. package/_Build/vue/modules/AuthModule/js/router.js +295 -0
  60. package/_Build/vue/modules/AuthModule/js/store.js +62 -0
  61. package/_Build/vue/modules/AuthModule/routes/account-exists.vue +33 -0
  62. package/_Build/vue/modules/AuthModule/routes/change-password.vue +165 -0
  63. package/_Build/vue/modules/AuthModule/routes/container.vue +34 -0
  64. package/_Build/vue/modules/AuthModule/routes/expired-reset.vue +78 -0
  65. package/_Build/vue/modules/AuthModule/routes/expired-verification.vue +100 -0
  66. package/_Build/vue/modules/AuthModule/routes/force-reset.vue +152 -0
  67. package/_Build/vue/modules/AuthModule/routes/forgot.vue +91 -0
  68. package/_Build/vue/modules/AuthModule/routes/login.vue +143 -0
  69. package/_Build/vue/modules/AuthModule/routes/logincallback.vue +41 -0
  70. package/_Build/vue/modules/AuthModule/routes/loginheadless.vue +21 -0
  71. package/_Build/vue/modules/AuthModule/routes/loginsso.vue +134 -0
  72. package/_Build/vue/modules/AuthModule/routes/logout.vue +21 -0
  73. package/_Build/vue/modules/AuthModule/routes/logoutheadless.vue +27 -0
  74. package/_Build/vue/modules/AuthModule/routes/register.vue +174 -0
  75. package/_Build/vue/modules/AuthModule/routes/reset.vue +133 -0
  76. package/_Build/vue/modules/AuthModule/routes/success-forgot.vue +119 -0
  77. package/_Build/vue/modules/AuthModule/routes/success-reset.vue +35 -0
  78. package/_Build/vue/modules/AuthModule/routes/success-verify.vue +32 -0
  79. package/_Build/vue/modules/AuthModule/routes/verify.vue +113 -0
  80. package/package.json +3 -9
  81. package/components/_alert.scss +0 -5
  82. package/components/_basic.scss +0 -55
  83. package/components/_breadcrumbs.scss +0 -39
  84. package/components/_button.scss +0 -304
  85. package/components/_cascader.scss +0 -12
  86. package/components/_checkbox.scss +0 -41
  87. package/components/_chip.scss +0 -24
  88. package/components/_collapse.scss +0 -24
  89. package/components/_datepicker.scss +0 -52
  90. package/components/_footer.scss +0 -46
  91. package/components/_form.scss +0 -24
  92. package/components/_header.scss +0 -54
  93. package/components/_icon.scss +0 -25
  94. package/components/_input.scss +0 -0
  95. package/components/_inputNumber.scss +0 -22
  96. package/components/_link.scss +0 -44
  97. package/components/_loader.scss +0 -43
  98. package/components/_menu.scss +0 -112
  99. package/components/_pageTitle.scss +0 -8
  100. package/components/_permissionLegend.scss +0 -18
  101. package/components/_select.scss +0 -29
  102. package/components/_sidebar.scss +0 -56
  103. package/components/_switch.scss +0 -14
  104. package/components/_table.scss +0 -20
  105. package/components/_tooltip.scss +0 -4
  106. package/components/_typography.scss +0 -162
  107. package/components/_upload.scss +0 -15
  108. package/components/_wysiwyg.scss +0 -7
  109. package/components/_wysiwyg2.scss +0 -142
  110. package/modules/_AuthModule.scss +0 -212
  111. package/modules/_AuthVariables.scss +0 -7
  112. package/modules/_modal.scss +0 -24
@@ -0,0 +1,109 @@
1
+ <template>
2
+ <XInput v-bind="$props">
3
+ <template #label>
4
+ <slot name="label" />
5
+ </template>
6
+
7
+ <el-select
8
+ v-model="content"
9
+ :class="baseClass"
10
+ :multiple="multiple"
11
+ :placeholder="placeholder"
12
+ :disabled="disabled"
13
+ :clearable="clearable"
14
+ :collapse-tags="collapseTags"
15
+ :filterable="filterable"
16
+ :value-on-clear="null"
17
+ @change="handleInput"
18
+ @clear="this.$emit('clear')"
19
+ @blur="this.$emit('blur')"
20
+ :empty-values="[null, undefined]"
21
+ >
22
+ <template #default>
23
+ <slot name="default">
24
+ <el-option
25
+ v-if="!options[0]?.label"
26
+ v-for="(label, value) in options"
27
+ :key="value"
28
+ :label="label"
29
+ :value="castValue(value)"
30
+ >
31
+ </el-option>
32
+ <el-option
33
+ v-else
34
+ v-for="option in options"
35
+ :key="option.value"
36
+ :label="option.label"
37
+ :disabled="option.disabled"
38
+ :value="castValue(option.value)"
39
+ >
40
+ </el-option>
41
+ </slot>
42
+ </template>
43
+ </el-select>
44
+ </XInput>
45
+ </template>
46
+
47
+ <script>
48
+ import { ElSelect } from "element-plus";
49
+ import { ElOption } from "element-plus";
50
+ import input from "./input.js";
51
+ import XInput from "./input.vue";
52
+ import _ from "lodash";
53
+
54
+ export default {
55
+ mixins: [input],
56
+ props: {
57
+ ...input.props,
58
+ modelValue: {
59
+ type: Array,
60
+ default: [],
61
+ },
62
+ baseClass: {
63
+ type: String,
64
+ default: "vel-select",
65
+ },
66
+ clearable: {
67
+ type: Boolean,
68
+ default: false,
69
+ },
70
+ collapseTags: {
71
+ type: Boolean,
72
+ default: false,
73
+ },
74
+ filterable: {
75
+ type: Boolean,
76
+ default: false,
77
+ },
78
+ options: {
79
+ type: Array,
80
+ default: [],
81
+ },
82
+ multiple: {
83
+ type: Boolean,
84
+ default: false,
85
+ },
86
+ },
87
+
88
+ components: {
89
+ XInput,
90
+ ElOption,
91
+ ElSelect,
92
+ },
93
+
94
+ emits: ["change", "clear", "blur"],
95
+ methods: {
96
+ castValue(value) {
97
+ if (
98
+ !_.isNull(value) &&
99
+ typeof value === "string" &&
100
+ value !== "" &&
101
+ !isNaN(Number(value))
102
+ ) {
103
+ return parseInt(value);
104
+ }
105
+ return value;
106
+ },
107
+ },
108
+ };
109
+ </script>
@@ -0,0 +1,63 @@
1
+ <template>
2
+ <XInput v-bind="$props">
3
+ <template #label v-if="label">
4
+ <slot name="label" />
5
+ </template>
6
+
7
+ <el-switch
8
+ :class="[`${baseClass}__control`]"
9
+ :name="name"
10
+ :id="id ? id : name"
11
+ :size="size"
12
+ :disabled="disabled"
13
+ :inline-prompt="inlinePrompt"
14
+ :active-icon="activeIcon"
15
+ :inactive-icon="inactiveIcon"
16
+ v-model="content"
17
+ :required="required"
18
+ @input="handleInput"
19
+ />
20
+ </XInput>
21
+ </template>
22
+
23
+ <script>
24
+ import { ElSwitch } from "element-plus";
25
+ import input from "./input.js";
26
+ import XInput from "./input.vue";
27
+
28
+ export default {
29
+ mixins: [input],
30
+ props: {
31
+ ...input.props,
32
+ modelValue: {
33
+ type: Boolean,
34
+ default: null,
35
+ },
36
+ baseClass: {
37
+ type: String,
38
+ default: "vel-switch",
39
+ },
40
+ size: {
41
+ type: String,
42
+ default: "default",
43
+ },
44
+ inlinePrompt: {
45
+ type: Boolean,
46
+ default: false,
47
+ },
48
+ activeIcon: {
49
+ type: String,
50
+ default: "",
51
+ },
52
+ inactiveIcon: {
53
+ type: String,
54
+ default: "",
55
+ },
56
+ },
57
+
58
+ components: {
59
+ XInput,
60
+ ElSwitch,
61
+ },
62
+ };
63
+ </script>
@@ -0,0 +1,101 @@
1
+ <template>
2
+ <XInput v-bind="$props">
3
+ <template #label>
4
+ <slot name="label" />
5
+ </template>
6
+
7
+ <el-upload
8
+ ref="upload"
9
+ v-bind="$attrs.props"
10
+ :class="[`${baseClass}`]"
11
+ :name="name"
12
+ :id="name"
13
+ :disabled="disabled"
14
+ :limit="limit"
15
+ :action="action"
16
+ :on-exceed="onExceed"
17
+ v-model:file-list="content"
18
+ :auto-upload="autoUpload"
19
+ :required="required"
20
+ :list-type="listType"
21
+ :accept="accept"
22
+ >
23
+ <template #trigger>
24
+ <slot name="trigger">
25
+ <el-button type="primary">Select file</el-button>
26
+ </slot>
27
+ </template>
28
+ <template #tip>
29
+ <slot name="tip" />
30
+ </template>
31
+ <slot name="default"> </slot>
32
+ </el-upload>
33
+ </XInput>
34
+ </template>
35
+
36
+ <script>
37
+ import { ElUpload } from "element-plus";
38
+ import input from "./input.js";
39
+ import ElButton from "../basic/Button.vue";
40
+ import XInput from "./input.vue";
41
+
42
+ export default {
43
+ mixins: [input],
44
+ props: {
45
+ ...input.props,
46
+ baseClass: {
47
+ type: String,
48
+ default: "vel-upload",
49
+ },
50
+ limit: {
51
+ type: Number,
52
+ default: 1,
53
+ },
54
+ action: {
55
+ type: Function,
56
+ default: null,
57
+ },
58
+ autoUpload: {
59
+ type: Boolean,
60
+ default: false,
61
+ },
62
+ onExceed: {
63
+ type: Function,
64
+ default: null,
65
+ },
66
+ listType: {
67
+ type: String,
68
+ default: "text",
69
+ },
70
+ accept: {
71
+ type: String,
72
+ default: "",
73
+ },
74
+ },
75
+
76
+ components: {
77
+ XInput,
78
+ ElUpload,
79
+ ElButton,
80
+ },
81
+
82
+ emits: ["upload"],
83
+
84
+ watch: {
85
+ content: {
86
+ immediate: true,
87
+ handler(val) {
88
+ this.handleInput();
89
+ },
90
+ },
91
+ },
92
+ methods: {
93
+ clearFiles() {
94
+ this.$refs.upload.clearFiles();
95
+ },
96
+ handleStart(file) {
97
+ this.$refs.upload.handleStart(file);
98
+ },
99
+ },
100
+ };
101
+ </script>
@@ -0,0 +1,127 @@
1
+ <template>
2
+ <XInput v-bind="$props">
3
+ <template #label>
4
+ <slot name="label" />
5
+ </template>
6
+ <div class="el-input__inner px-0" ref="input" />
7
+ </XInput>
8
+ </template>
9
+
10
+ <script>
11
+ import Quill from "quill";
12
+ import input from "./input.js";
13
+ import XInput from "./input.vue";
14
+ import sanitizeHtml from "sanitize-html";
15
+
16
+ export default {
17
+ mixins: [input],
18
+
19
+ components: {
20
+ XInput,
21
+ },
22
+
23
+ props: {
24
+ simple: {
25
+ type: Boolean,
26
+ default: false,
27
+ },
28
+ baseClass: {
29
+ type: String,
30
+ default: "vel-wysiwyg",
31
+ },
32
+ },
33
+
34
+ data: () => ({
35
+ editor: null,
36
+ hold: null,
37
+ }),
38
+
39
+ watch: {
40
+ modelValue: {
41
+ handler(val) {
42
+ if (val !== this.hold) {
43
+ this.setValue();
44
+ }
45
+ },
46
+ },
47
+ },
48
+
49
+ methods: {
50
+ getValue() {
51
+ return this.editor.getText().trim() === "" // Quill leaves <p></br></p> on empty input so ignore
52
+ ? ""
53
+ : this.simple // Simple editor removes outer tags and only allows inner phrasing tags
54
+ ? [...this.editor.root.children]
55
+ .map((d) => d.innerHTML)
56
+ .join("\n")
57
+ : this.editor.root.innerHTML;
58
+ },
59
+ setValue() {
60
+ const temp =
61
+ this.simple && this.modelValue // Surround text in p tags to keep it grouped correctly on simple strings. Ignore if modelValue empty otherwise you'll end up with <p>null</p>
62
+ ? `<p>${this.modelValue}</p>`
63
+ : this.modelValue;
64
+ this.editor.root.innerHTML = this.formatCleaner(temp);
65
+ },
66
+ // Function to remove p tags from inside li tags, breaks the wysiwyg
67
+ formatCleaner(unformmatted) {
68
+ if (!unformmatted) {
69
+ return "";
70
+ }
71
+ let parser = document.createElement("div");
72
+ parser.innerHTML = unformmatted.replace(/(\r\n|\n|\r|\t)/gm, "");
73
+ const lists = parser.getElementsByTagName("ul");
74
+ for (var x = 0; x < lists.length; x++) {
75
+ lists[x].innerHTML = sanitizeHtml(lists[x].innerHTML, {
76
+ allowedTags: ["b", "i", "em", "strong", "a", "li"],
77
+ });
78
+ }
79
+ return parser.innerHTML;
80
+ },
81
+ },
82
+
83
+ mounted() {
84
+ this.editor = new Quill(this.$refs.input, {
85
+ modules: {
86
+ clipboard: {
87
+ matchVisual: false,
88
+ },
89
+ toolbar: [
90
+ [
91
+ this.simple
92
+ ? undefined
93
+ : { header: [1, 2, 3, 4, 5, 6, false] },
94
+ "bold",
95
+ "italic",
96
+ "underline",
97
+ "strike",
98
+ { script: "sub" },
99
+ { script: "super" },
100
+ this.simple ? undefined : { list: "ordered" },
101
+ this.simple ? undefined : { list: "bullet" },
102
+ "clean",
103
+ "link",
104
+ ],
105
+ ],
106
+ },
107
+ placeholder: this.placeholder,
108
+ theme: "snow",
109
+ });
110
+
111
+ this.setValue();
112
+
113
+ this.editor.on("text-change", (delta, oldDelta, source) => {
114
+ this.hold = this.getValue();
115
+ this.$emit("update:modelValue", this.hold);
116
+ });
117
+
118
+ // Disable tab
119
+ // delete this.editor.getModule("keyboard").bindings["9"];
120
+
121
+ // Disable tab index on toolbar buttons
122
+ [...this.$el.querySelectorAll(".ql-toolbar button")].forEach((d) =>
123
+ d.setAttribute("tabindex", -1),
124
+ );
125
+ },
126
+ };
127
+ </script>