adminforth 1.4.3-next.3 → 1.4.3-next.30

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 (111) hide show
  1. package/commands/bundle.js +29 -0
  2. package/commands/generateModels.js +63 -0
  3. package/commands/utils.js +93 -0
  4. package/dist/dataConnectors/baseConnector.d.ts.map +1 -1
  5. package/dist/dataConnectors/baseConnector.js +7 -2
  6. package/dist/dataConnectors/baseConnector.js.map +1 -1
  7. package/dist/dataConnectors/postgres.js +1 -1
  8. package/dist/dataConnectors/postgres.js.map +1 -1
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js +14 -3
  11. package/dist/index.js.map +1 -1
  12. package/dist/modules/codeInjector.d.ts +4 -2
  13. package/dist/modules/codeInjector.d.ts.map +1 -1
  14. package/dist/modules/codeInjector.js +93 -69
  15. package/dist/modules/codeInjector.js.map +1 -1
  16. package/dist/modules/configValidator.d.ts.map +1 -1
  17. package/dist/modules/configValidator.js +3 -1
  18. package/dist/modules/configValidator.js.map +1 -1
  19. package/dist/modules/restApi.d.ts.map +1 -1
  20. package/dist/modules/restApi.js +58 -25
  21. package/dist/modules/restApi.js.map +1 -1
  22. package/dist/modules/utils.d.ts.map +1 -1
  23. package/dist/modules/utils.js +0 -1
  24. package/dist/modules/utils.js.map +1 -1
  25. package/dist/servers/express.d.ts.map +1 -1
  26. package/dist/servers/express.js +4 -1
  27. package/dist/servers/express.js.map +1 -1
  28. package/dist/spa/package-lock.json +64 -4
  29. package/dist/spa/package.json +1 -0
  30. package/dist/spa/src/App.vue +15 -25
  31. package/dist/spa/src/afcl/Button.vue +27 -0
  32. package/dist/spa/src/afcl/Input.vue +41 -0
  33. package/dist/spa/src/afcl/Link.vue +9 -0
  34. package/dist/spa/src/afcl/Select.vue +206 -0
  35. package/dist/spa/src/afcl/index.ts +6 -0
  36. package/dist/spa/src/components/Filters.vue +11 -5
  37. package/dist/spa/src/components/GroupsTable.vue +23 -23
  38. package/dist/spa/src/components/ResourceListTable.vue +14 -14
  39. package/dist/spa/src/components/ValueRenderer.vue +3 -1
  40. package/dist/spa/src/renderers/CompactField.vue +1 -1
  41. package/dist/spa/src/renderers/CompactUUID.vue +1 -1
  42. package/dist/spa/src/renderers/CountryFlag.vue +3 -4
  43. package/dist/spa/src/renderers/HumanNumber.vue +3 -2
  44. package/dist/spa/src/renderers/RelativeTime.vue +3 -2
  45. package/dist/spa/src/router/index.ts +1 -1
  46. package/dist/spa/src/stores/core.ts +5 -4
  47. package/dist/spa/src/types/Back.ts +47 -13
  48. package/dist/spa/src/views/ListView.vue +1 -0
  49. package/dist/spa/src/views/LoginView.vue +4 -15
  50. package/dist/spa/vite.config.ts +16 -34
  51. package/dist/types/Back.d.ts +26 -6
  52. package/dist/types/Back.d.ts.map +1 -1
  53. package/dist/types/Back.js.map +1 -1
  54. package/package.json +4 -3
  55. package/dist/plugins/audit-log/types.d.ts +0 -35
  56. package/dist/plugins/audit-log/types.d.ts.map +0 -1
  57. package/dist/plugins/audit-log/types.js +0 -2
  58. package/dist/plugins/audit-log/types.js.map +0 -1
  59. package/dist/plugins/chat-gpt/types.d.ts +0 -82
  60. package/dist/plugins/chat-gpt/types.d.ts.map +0 -1
  61. package/dist/plugins/chat-gpt/types.js +0 -2
  62. package/dist/plugins/chat-gpt/types.js.map +0 -1
  63. package/dist/plugins/email-password-reset/types.d.ts +0 -28
  64. package/dist/plugins/email-password-reset/types.d.ts.map +0 -1
  65. package/dist/plugins/email-password-reset/types.js +0 -2
  66. package/dist/plugins/email-password-reset/types.js.map +0 -1
  67. package/dist/plugins/foreign-inline-list/types.d.ts +0 -19
  68. package/dist/plugins/foreign-inline-list/types.d.ts.map +0 -1
  69. package/dist/plugins/foreign-inline-list/types.js +0 -2
  70. package/dist/plugins/foreign-inline-list/types.js.map +0 -1
  71. package/dist/plugins/import-export/types.d.ts +0 -3
  72. package/dist/plugins/import-export/types.d.ts.map +0 -1
  73. package/dist/plugins/import-export/types.js +0 -2
  74. package/dist/plugins/import-export/types.js.map +0 -1
  75. package/dist/plugins/rich-editor/custom/async-queue.d.ts +0 -8
  76. package/dist/plugins/rich-editor/custom/async-queue.d.ts.map +0 -1
  77. package/dist/plugins/rich-editor/custom/async-queue.js +0 -29
  78. package/dist/plugins/rich-editor/custom/async-queue.js.map +0 -1
  79. package/dist/plugins/rich-editor/dist/custom/async-queue.d.ts +0 -8
  80. package/dist/plugins/rich-editor/dist/custom/async-queue.d.ts.map +0 -1
  81. package/dist/plugins/rich-editor/dist/custom/async-queue.js +0 -29
  82. package/dist/plugins/rich-editor/dist/custom/async-queue.js.map +0 -1
  83. package/dist/plugins/rich-editor/types.d.ts +0 -153
  84. package/dist/plugins/rich-editor/types.d.ts.map +0 -1
  85. package/dist/plugins/rich-editor/types.js +0 -16
  86. package/dist/plugins/rich-editor/types.js.map +0 -1
  87. package/dist/plugins/two-factors-auth/types.d.ts +0 -18
  88. package/dist/plugins/two-factors-auth/types.d.ts.map +0 -1
  89. package/dist/plugins/two-factors-auth/types.js +0 -2
  90. package/dist/plugins/two-factors-auth/types.js.map +0 -1
  91. package/dist/plugins/upload/types.d.ts +0 -132
  92. package/dist/plugins/upload/types.d.ts.map +0 -1
  93. package/dist/plugins/upload/types.js +0 -2
  94. package/dist/plugins/upload/types.js.map +0 -1
  95. package/dist/spa/src/components/Dropdown.vue +0 -167
  96. package/dist/spa/src/types/AdminForthConfig.js +0 -150
  97. package/dist/spa/src/types/AdminForthConfig.ts +0 -1816
  98. package/dist/spa/src/types/Commons.ts +0 -702
  99. package/dist/spa/src/types/FrontAndBack.ts +0 -698
  100. package/dist/types/AdminForthConfig.d.ts +0 -1665
  101. package/dist/types/AdminForthConfig.d.ts.map +0 -1
  102. package/dist/types/AdminForthConfig.js +0 -146
  103. package/dist/types/AdminForthConfig.js.map +0 -1
  104. package/dist/types/Commons.d.ts +0 -616
  105. package/dist/types/Commons.d.ts.map +0 -1
  106. package/dist/types/Commons.js +0 -65
  107. package/dist/types/Commons.js.map +0 -1
  108. package/dist/types/FrontAndBack.d.ts +0 -613
  109. package/dist/types/FrontAndBack.d.ts.map +0 -1
  110. package/dist/types/FrontAndBack.js +0 -62
  111. package/dist/types/FrontAndBack.js.map +0 -1
@@ -1,167 +0,0 @@
1
- <template>
2
- <div class="relative inline-block w-full" id="dropd">
3
- <div class="relative">
4
- <input
5
- type="text"
6
- v-model="search"
7
- @focus="showDropdown = true"
8
- class="block w-full pl-3 pr-10 py-2 border border-gray-300 rounded-md leading-5 bg-white placeholder-gray-500 focus:outline-none focus:shadow-outline-blue focus:border-blue-300 sm:text-sm transition duration-150 ease-in-out dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500"
9
- :placeholder="selectedItems.length ? '' : placeholder || 'Select...'"
10
- />
11
- <div class="absolute inset-y-0 left-2 flex items-center pr-2 flex-wrap">
12
- <div v-for="item in selectedItems" :key="item?.name" class="bg-lightPrimaryOpacity text-lightPrimary text-xs font-medium me-2 px-2.5 py-0.5 rounded dark:bg-darkPrimaryOpacity dark:text-darkPrimary">
13
- <span>{{ item.label }}</span>
14
- <button
15
- type="button"
16
- @click="toogleItem(item)"
17
- class="z-index-100 flex-shrink-0 ml-1 h-4 w-4 -mr-1 rounded-full inline-flex items-center justify-center text-gray-400 hover:text-gray-500 focus:outline-none focus:text-gray-500 focus:bg-gray-100"
18
- >
19
- <span class="sr-only">Remove item</span>
20
- <svg class="h-2 w-2" stroke="currentColor" fill="none" viewBox="0 0 8 8">
21
- <path
22
- stroke-linecap="round"
23
- stroke-linejoin="round"
24
- stroke-width="1.5"
25
- d="M1 1l6 6m0-6L1 7"
26
- />
27
- </svg>
28
- </button>
29
- </div>
30
- </div>
31
- <div class="absolute inset-y-0 right-2 flex items-center pointer-events-none">
32
- <!-- triangle icon -->
33
- <IconCaretDownSolid v-if="!showDropdown" class="h-5 w-5 text-gray-400" />
34
- <IconCaretUpSolid v-else class="h-5 w-5 text-gray-400" />
35
- </div>
36
- </div>
37
- <div v-if="showDropdown" class="absolute z-10 mt-1 w-full bg-white shadow-lg dark:shadow-black dark:bg-gray-700 dark:border-gray-600 rounded-md py-1 text-base ring-1 ring-black ring-opacity-5 overflow-auto focus:outline-none sm:text-sm">
38
- <div
39
- v-for="item in filteredItems"
40
- :key="item.value"
41
- class="px-4 py-2 cursor-pointer hover:bg-gray-100 dark:hover:bg-gray-600"
42
- :class="{ 'bg-lightPrimaryOpacity': selectedItems.includes(item) }"
43
- @click="toogleItem(item)"
44
- >
45
- <label :for="item.value">{{ item.label }}</label>
46
- </div>
47
- </div>
48
- </div>
49
- </template>
50
-
51
- <script setup>
52
- import { ref, computed, onMounted, onUnmounted, watch } from 'vue';
53
- import { IconCaretDownSolid, IconCaretUpSolid } from '@iconify-prerendered/vue-flowbite';
54
-
55
-
56
- const props = defineProps({
57
- options: Array,
58
- modelValue: {
59
- default: undefined,
60
- },
61
- allowCustom: {
62
- type: Boolean,
63
- default: false,
64
- },
65
- single: {
66
- type: Boolean,
67
- default: false,
68
- },
69
- placeholder: {
70
- type: String,
71
- default: '',
72
-
73
- },
74
- });
75
-
76
- const emit = defineEmits(['update:modelValue']);
77
-
78
- const search = ref('');
79
- const showDropdown = ref(false);
80
-
81
- const selectedItems = ref([]);
82
-
83
- function updateFromProps() {
84
- if (props.modelValue !== undefined) {
85
- if (props.single) {
86
- const el = props.options.find(item => item.value === props.modelValue);
87
- if (el) {
88
- selectedItems.value = [el];
89
- } else {
90
- selectedItems.value = [];
91
- }
92
- } else {
93
- selectedItems.value = props.options.filter(item => props.modelValue.includes(item.value));
94
- }
95
- }
96
- }
97
-
98
- onMounted(() => {
99
- updateFromProps();
100
-
101
- watch(() => props.modelValue, (value) => {
102
- updateFromProps();
103
- });
104
-
105
- watch(() => props.options, () => {
106
- updateFromProps();
107
- });
108
-
109
- addClickListener();
110
-
111
- });
112
-
113
- const filteredItems = computed(() => {
114
- return props.options.filter(item =>
115
- item.label.toLowerCase().includes(search.value.toLowerCase())
116
- );
117
- });
118
-
119
- const handleClickOutside = (event) => {
120
- if (!event.target.closest('#dropd')) {
121
- showDropdown.value = false;
122
- }
123
- };
124
-
125
- const addClickListener = () => {
126
- document.addEventListener('click', handleClickOutside);
127
- };
128
-
129
- const removeClickListener = () => {
130
- document.removeEventListener('click', handleClickOutside);
131
- };
132
-
133
- const toogleItem = (item) => {
134
- if (selectedItems.value.includes(item)) {
135
- selectedItems.value = selectedItems.value.filter(i => i !== item);
136
- } else {
137
- if (props.single) {
138
- selectedItems.value = [item];
139
- } else {
140
- selectedItems.value = [...selectedItems.value, item];
141
- }
142
- }
143
- if (props.single) {
144
- showDropdown.value = false;
145
- }
146
-
147
-
148
- const list = selectedItems.value.map(item => item.value);
149
- const updValue = list.length ? list : null;
150
- let emitValue;
151
- if (props.single) {
152
- emitValue = updValue ? updValue[0] : null;
153
- } else {
154
- emitValue = updValue;
155
- }
156
- console.log('⚡ emit', emitValue)
157
- emit('update:modelValue', emitValue);
158
-
159
- };
160
-
161
-
162
- onUnmounted(() => {
163
- removeClickListener();
164
- });
165
-
166
-
167
- </script>
@@ -1,150 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AdminForthSortDirections = exports.AdminForthFilterOperators = exports.AdminForthDataTypes = exports.ActionCheckSource = exports.AllowedActionsEnum = exports.Sorts = exports.Filters = exports.AdminForthResourcePages = exports.AdminForthMenuTypes = void 0;
4
- ;
5
- var AdminForthMenuTypes;
6
- (function (AdminForthMenuTypes) {
7
- /**
8
- * HEADING is just a label in the menu.
9
- * Respect `label` and `icon` property in {@link AdminForthConfigMenuItem}
10
- */
11
- AdminForthMenuTypes["heading"] = "heading";
12
- /**
13
- * GROUP is a group of menu items.
14
- * Respects `label`, `icon` and `children` properties in {@link AdminForthConfigMenuItem}
15
- * use @AdminForthMenuTypes.open to set if group is open by default
16
- */
17
- AdminForthMenuTypes["group"] = "group";
18
- /**
19
- * RESOURCE is a link to a resource.
20
- * Respects `label`, `icon`, `resourceId`, `homepage`, `isStaticRoute` properties in {@link AdminForthConfigMenuItem}
21
- */
22
- AdminForthMenuTypes["resource"] = "resource";
23
- /**
24
- * PAGE is a link to a custom page.
25
- * Respects `label`, `icon`, `path`, `component`, `homepage`, `isStaticRoute`, properties in {@link AdminForthConfigMenuItem}
26
- *
27
- * Example:
28
- *
29
- * ```ts
30
- * \{
31
- * type: AdminForthMenuTypes.PAGE,
32
- * label: 'Custom Page',
33
- * icon: 'home',
34
- * path: '/dash',
35
- * component: '@@/Dashboard.vue',
36
- * homepage: true,
37
- * \}
38
- * ```
39
- *
40
- */
41
- AdminForthMenuTypes["page"] = "page";
42
- /**
43
- * GAP ads some space between menu items.
44
- */
45
- AdminForthMenuTypes["gap"] = "gap";
46
- /**
47
- * DIVIDER is a divider between menu items.
48
- */
49
- AdminForthMenuTypes["divider"] = "divider";
50
- })(AdminForthMenuTypes || (exports.AdminForthMenuTypes = AdminForthMenuTypes = {}));
51
- var AdminForthResourcePages;
52
- (function (AdminForthResourcePages) {
53
- AdminForthResourcePages["list"] = "list";
54
- AdminForthResourcePages["show"] = "show";
55
- AdminForthResourcePages["edit"] = "edit";
56
- AdminForthResourcePages["create"] = "create";
57
- AdminForthResourcePages["filter"] = "filter";
58
- })(AdminForthResourcePages || (exports.AdminForthResourcePages = AdminForthResourcePages = {}));
59
- class Filters {
60
- static EQ(field, value) {
61
- return { field, operator: AdminForthFilterOperators.EQ, value };
62
- }
63
- static NEQ(field, value) {
64
- return { field, operator: AdminForthFilterOperators.NE, value };
65
- }
66
- static GT(field, value) {
67
- return { field, operator: AdminForthFilterOperators.GT, value };
68
- }
69
- static GTE(field, value) {
70
- return { field, operator: AdminForthFilterOperators.GTE, value };
71
- }
72
- static LT(field, value) {
73
- return { field, operator: AdminForthFilterOperators.LT, value };
74
- }
75
- static LTE(field, value) {
76
- return { field, operator: AdminForthFilterOperators.LTE, value };
77
- }
78
- static IN(field, value) {
79
- return { field, operator: AdminForthFilterOperators.IN, value };
80
- }
81
- static NOT_IN(field, value) {
82
- return { field, operator: AdminForthFilterOperators.NIN, value };
83
- }
84
- static LIKE(field, value) {
85
- return { field, operator: AdminForthFilterOperators.LIKE, value };
86
- }
87
- }
88
- exports.Filters = Filters;
89
- class Sorts {
90
- static ASC(field) {
91
- return { field, direction: AdminForthSortDirections.asc };
92
- }
93
- static DESC(field) {
94
- return { field, direction: AdminForthSortDirections.desc };
95
- }
96
- }
97
- exports.Sorts = Sorts;
98
- var AllowedActionsEnum;
99
- (function (AllowedActionsEnum) {
100
- AllowedActionsEnum["show"] = "show";
101
- AllowedActionsEnum["list"] = "list";
102
- AllowedActionsEnum["edit"] = "edit";
103
- AllowedActionsEnum["create"] = "create";
104
- AllowedActionsEnum["delete"] = "delete";
105
- AllowedActionsEnum["filter"] = "filter";
106
- })(AllowedActionsEnum || (exports.AllowedActionsEnum = AllowedActionsEnum = {}));
107
- var ActionCheckSource;
108
- (function (ActionCheckSource) {
109
- ActionCheckSource["DisplayButtons"] = "displayButtons";
110
- ActionCheckSource["ListRequest"] = "listRequest";
111
- ActionCheckSource["ShowRequest"] = "showRequest";
112
- ActionCheckSource["EditRequest"] = "editRequest";
113
- ActionCheckSource["CreateRequest"] = "createRequest";
114
- ActionCheckSource["DeleteRequest"] = "deleteRequest";
115
- ActionCheckSource["BulkActionRequest"] = "bulkActionRequest";
116
- })(ActionCheckSource || (exports.ActionCheckSource = ActionCheckSource = {}));
117
- var AdminForthDataTypes;
118
- (function (AdminForthDataTypes) {
119
- AdminForthDataTypes["STRING"] = "string";
120
- AdminForthDataTypes["INTEGER"] = "integer";
121
- AdminForthDataTypes["FLOAT"] = "float";
122
- AdminForthDataTypes["DECIMAL"] = "decimal";
123
- AdminForthDataTypes["BOOLEAN"] = "boolean";
124
- AdminForthDataTypes["DATE"] = "date";
125
- AdminForthDataTypes["DATETIME"] = "datetime";
126
- AdminForthDataTypes["TIME"] = "time";
127
- AdminForthDataTypes["TEXT"] = "text";
128
- AdminForthDataTypes["JSON"] = "json";
129
- AdminForthDataTypes["RICHTEXT"] = "richtext";
130
- })(AdminForthDataTypes || (exports.AdminForthDataTypes = AdminForthDataTypes = {}));
131
- var AdminForthFilterOperators;
132
- (function (AdminForthFilterOperators) {
133
- AdminForthFilterOperators["EQ"] = "eq";
134
- AdminForthFilterOperators["NE"] = "ne";
135
- AdminForthFilterOperators["GT"] = "gt";
136
- AdminForthFilterOperators["LT"] = "lt";
137
- AdminForthFilterOperators["GTE"] = "gte";
138
- AdminForthFilterOperators["LTE"] = "lte";
139
- AdminForthFilterOperators["LIKE"] = "like";
140
- AdminForthFilterOperators["ILIKE"] = "ilike";
141
- AdminForthFilterOperators["IN"] = "in";
142
- AdminForthFilterOperators["NIN"] = "nin";
143
- })(AdminForthFilterOperators || (exports.AdminForthFilterOperators = AdminForthFilterOperators = {}));
144
- ;
145
- var AdminForthSortDirections;
146
- (function (AdminForthSortDirections) {
147
- AdminForthSortDirections["asc"] = "asc";
148
- AdminForthSortDirections["desc"] = "desc";
149
- })(AdminForthSortDirections || (exports.AdminForthSortDirections = AdminForthSortDirections = {}));
150
- ;