pgo-ui 1.0.76 → 1.0.78
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.
- package/dist/Radio-CuaoA4ip.js +4 -0
- package/dist/{index-BgeiUi3s.js → index-DXUeDVX5.js} +8203 -7972
- package/dist/index.es.js +33 -28
- package/dist/index.umd.js +46 -46
- package/dist/pgo-ui.css +1 -1
- package/package.json +1 -1
- package/src/App.vue +1 -2
- package/src/assets/fonts/MVFaseyha.woff2 +0 -0
- package/src/components/examples/FormExample.vue +13 -0
- package/src/components/pgo/AppBar.vue +44 -4
- package/src/components/pgo/CopyTextBox copy.vue +187 -0
- package/src/components/pgo/CopyTextBox.vue +10 -30
- package/src/components/pgo/{DataTable copy.vue → DataTable copy 2.vue } +13 -0
- package/src/components/pgo/DataTable.vue +128 -31
- package/src/components/pgo/HeroIcon.vue +82 -50
- package/src/components/pgo/forms/DynamicForm.vue +1 -0
- package/src/components/pgo/inputs/Select.vue +2 -3
- package/src/index.js +15 -0
- package/src/pgo-components/assets/fonts/MVFaseyha.woff2 +0 -0
- package/src/pgo-components/lib/core/fontSize/fontSize.ts +3 -0
- package/src/pgo-components/lib/core/fontSize/setFontScale.ts +30 -0
- package/src/pgo-components/pages/ComponentRenderer.vue +21 -14
- package/src/pgo-components/services/cform.json +1 -117
- package/src/pgo-components/styles/global.css +2 -1
- package/src/pgo-components/styles/reset.css +3 -2
- package/dist/Radio-BMsJLVIa.js +0 -4
- /package/src/pgo-components/assets/fonts/{Faruma.ttf → _original_Faruma.ttf} +0 -0
|
@@ -1,18 +1,37 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<component
|
|
3
|
-
|
|
3
|
+
v-if="resolvedIcon"
|
|
4
|
+
:is="resolvedIcon"
|
|
4
5
|
v-bind="attrs"
|
|
5
6
|
:class="computedClass"
|
|
6
7
|
:style="computedStyle"
|
|
8
|
+
:width="sizePx"
|
|
9
|
+
:height="sizePx"
|
|
7
10
|
/>
|
|
11
|
+
<svg
|
|
12
|
+
v-else-if="iconError"
|
|
13
|
+
:class="computedClass"
|
|
14
|
+
:style="computedStyle"
|
|
15
|
+
:width="sizePx"
|
|
16
|
+
:height="sizePx"
|
|
17
|
+
viewBox="0 0 24 24"
|
|
18
|
+
fill="none"
|
|
19
|
+
stroke="currentColor"
|
|
20
|
+
stroke-width="1.5"
|
|
21
|
+
aria-hidden="true"
|
|
22
|
+
>
|
|
23
|
+
<path stroke-linecap="round" stroke-linejoin="round" d="M12 9v3.75m-9.303 3.376c-.866 1.5.217 3.374 1.948 3.374h14.71c1.73 0 2.813-1.874 1.948-3.374L13.949 3.378c-.866-1.5-3.032-1.5-3.898 0L2.697 16.126ZM12 15.75h.007v.007H12v-.007Z" />
|
|
24
|
+
</svg>
|
|
8
25
|
</template>
|
|
9
26
|
|
|
10
27
|
<script setup lang="ts">
|
|
11
28
|
import type { Component } from "vue";
|
|
12
|
-
import { computed, useAttrs } from "vue";
|
|
13
|
-
import { defineAsyncComponent } from "vue";
|
|
29
|
+
import { computed, useAttrs, shallowRef, ref, watchEffect } from "vue";
|
|
14
30
|
import { rotationMap } from '../../pgo-components/lib/componentConfig'
|
|
15
31
|
|
|
32
|
+
// Module-level cache: avoids re-importing the same icon pack on every render
|
|
33
|
+
const moduleCache = new Map<string, Record<string, Component>>();
|
|
34
|
+
|
|
16
35
|
// Props
|
|
17
36
|
interface Props {
|
|
18
37
|
name: string;
|
|
@@ -43,49 +62,59 @@ const normalizeName = (str: string) => {
|
|
|
43
62
|
|
|
44
63
|
const iconName = computed(() => normalizeName(props.name));
|
|
45
64
|
|
|
46
|
-
//
|
|
47
|
-
const
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
65
|
+
// Stable async icon loading with module cache
|
|
66
|
+
const resolvedIcon = shallowRef<Component | null>(null);
|
|
67
|
+
const iconError = ref(false);
|
|
68
|
+
|
|
69
|
+
async function loadIconModule(type: string): Promise<Record<string, Component>> {
|
|
70
|
+
if (moduleCache.has(type)) {
|
|
71
|
+
return moduleCache.get(type)!;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
let pack: Record<string, Component>;
|
|
75
|
+
if (type === "solid") {
|
|
76
|
+
pack = await import("@heroicons/vue/24/solid");
|
|
77
|
+
} else if (type === "outline") {
|
|
78
|
+
pack = await import("@heroicons/vue/24/outline");
|
|
79
|
+
} else if (type === "mini") {
|
|
80
|
+
pack = await import("@heroicons/vue/20/solid");
|
|
81
|
+
} else if (type === "micro") {
|
|
82
|
+
pack = await import("@heroicons/vue/16/solid");
|
|
83
|
+
} else {
|
|
84
|
+
pack = await import("@heroicons/vue/24/outline");
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
moduleCache.set(type, pack);
|
|
88
|
+
return pack;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
watchEffect(async () => {
|
|
92
|
+
const name = iconName.value;
|
|
93
|
+
const type = props.type;
|
|
94
|
+
|
|
95
|
+
resolvedIcon.value = null;
|
|
96
|
+
iconError.value = false;
|
|
97
|
+
|
|
98
|
+
try {
|
|
99
|
+
const pack = await loadIconModule(type);
|
|
100
|
+
const icon = pack[name];
|
|
101
|
+
|
|
102
|
+
if (!icon) {
|
|
103
|
+
console.warn(`[HeroIcon] "${name}" not found in ${type} icons`);
|
|
104
|
+
iconError.value = true;
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
resolvedIcon.value = icon;
|
|
109
|
+
} catch (e) {
|
|
110
|
+
console.warn(`[HeroIcon] Failed to load icon "${name}":`, e);
|
|
111
|
+
iconError.value = true;
|
|
112
|
+
}
|
|
113
|
+
});
|
|
114
|
+
|
|
115
|
+
// Numeric size for HTML attributes
|
|
116
|
+
const sizePx = computed(() =>
|
|
117
|
+
typeof props.size === "number" ? props.size : parseInt(String(props.size), 10) || 24
|
|
89
118
|
);
|
|
90
119
|
|
|
91
120
|
// Tailwind color detection
|
|
@@ -119,14 +148,17 @@ const computedStyle = computed(() => {
|
|
|
119
148
|
const styleObj: Record<string, any> =
|
|
120
149
|
typeof attrs.style === "object" ? { ...attrs.style } : {};
|
|
121
150
|
|
|
122
|
-
|
|
123
|
-
|
|
151
|
+
// Ensure size always has a CSS unit — size="22" (string) must become "22px"
|
|
152
|
+
const raw = String(props.size);
|
|
153
|
+
const sizeCss = /^\d+(\.\d+)?$/.test(raw) ? `${raw}px` : raw;
|
|
124
154
|
|
|
125
155
|
styleObj.width = sizeCss;
|
|
126
156
|
styleObj.height = sizeCss;
|
|
127
157
|
|
|
128
|
-
// Inline CSS color if not a Tailwind class
|
|
129
|
-
|
|
158
|
+
// Inline CSS color if not a Tailwind class.
|
|
159
|
+
// Skip 'currentColor' — it's a no-op (means "inherit") and triggers a Firefox
|
|
160
|
+
// SVG rendering bug inside fixed-position / transform contexts.
|
|
161
|
+
if (!isTailwindColorClass(props.color) && props.color !== 'currentColor') {
|
|
130
162
|
styleObj.color = props.color;
|
|
131
163
|
}
|
|
132
164
|
|
|
@@ -962,6 +962,7 @@ const initializeFormData = () => {
|
|
|
962
962
|
const fetchedData = response
|
|
963
963
|
FormDataList.value = response || response.data || {}
|
|
964
964
|
formData.id = showId
|
|
965
|
+
relationId.value = response?.data?.id || response?.id
|
|
965
966
|
|
|
966
967
|
props.form.fields.forEach(field => {
|
|
967
968
|
if (!field || !field.key) return
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
<template #control="{ attrs, events }">
|
|
35
35
|
<div
|
|
36
36
|
:class="[
|
|
37
|
-
'flex items-center h-full gap-1 min-w-0 w-full overflow-hidden',
|
|
37
|
+
'flex-none items-center h-full gap-1 min-w-0 w-full overflow-hidden',
|
|
38
38
|
shouldAutoHeight ? 'flex-wrap py-1 -my-1' : '',
|
|
39
39
|
]"
|
|
40
40
|
>
|
|
@@ -45,10 +45,9 @@
|
|
|
45
45
|
v-for="value in selectedValues"
|
|
46
46
|
:key="extractValue(value)"
|
|
47
47
|
:class="[
|
|
48
|
-
'inline-flex items-center gap-1 px-2 py-0.5 text-xs border rounded-md bg-gray-100
|
|
48
|
+
'inline-flex items-center gap-1 px-2 py-0.5 text-xs border rounded-md bg-gray-100 max-w-full min-w-0',
|
|
49
49
|
textColor,
|
|
50
50
|
]"
|
|
51
|
-
style="max-width: min(150px, 100%);"
|
|
52
51
|
>
|
|
53
52
|
<span class="truncate">{{ getDisplayTextForValue(value) }}</span>
|
|
54
53
|
<svg
|
package/src/index.js
CHANGED
|
@@ -17,6 +17,9 @@ import { drawerOpen } from './pgo-components/lib/drawerState.ts'
|
|
|
17
17
|
import {globalRtl} from './pgo-components/lib/core/rtl/rtl.ts'
|
|
18
18
|
import { setRtl } from './pgo-components/lib/core/rtl/setRtl.ts'
|
|
19
19
|
|
|
20
|
+
import { globalFontScale } from './pgo-components/lib/core/fontSize/fontSize.ts'
|
|
21
|
+
import { setFontScale, increaseFontScale, decreaseFontScale, resetFontScale } from './pgo-components/lib/core/fontSize/setFontScale.ts'
|
|
22
|
+
|
|
20
23
|
//components
|
|
21
24
|
import {Button, Card, HeroIcon} from './components/pgo/index.ts' // for Global registration
|
|
22
25
|
export * from './components/pgo/index.ts' // export all components
|
|
@@ -27,6 +30,8 @@ export { i18nPlugin }
|
|
|
27
30
|
export { globalRtl }
|
|
28
31
|
export { setRtl }
|
|
29
32
|
export { drawerOpen }
|
|
33
|
+
export { globalFontScale }
|
|
34
|
+
export { setFontScale, increaseFontScale, decreaseFontScale, resetFontScale }
|
|
30
35
|
// export { useSnackBar }
|
|
31
36
|
export { _useTheme as useTheme }
|
|
32
37
|
export { createThemePlugin } from './pgo-components/plugins/theme-plugin.js'
|
|
@@ -47,6 +52,12 @@ if (typeof window !== 'undefined') {
|
|
|
47
52
|
window.__VTS_THEMES__ = Object.keys(themes)
|
|
48
53
|
}
|
|
49
54
|
|
|
55
|
+
// set font scale default
|
|
56
|
+
const savedFontScale = localStorage.getItem('fontScaleSetting')
|
|
57
|
+
if (savedFontScale !== null) {
|
|
58
|
+
setFontScale(parseInt(savedFontScale))
|
|
59
|
+
}
|
|
60
|
+
|
|
50
61
|
// set rtl default
|
|
51
62
|
const savedRtl = localStorage.getItem('rtlSetting')
|
|
52
63
|
if (savedRtl !== null) {
|
|
@@ -70,6 +81,10 @@ export default {
|
|
|
70
81
|
app.provide('globalRtl', globalRtl)
|
|
71
82
|
app.provide('setRtl', setRtl)
|
|
72
83
|
app.provide('drawerOpen', drawerOpen)
|
|
84
|
+
app.provide('globalFontScale', globalFontScale)
|
|
85
|
+
app.provide('increaseFontScale', increaseFontScale)
|
|
86
|
+
app.provide('decreaseFontScale', decreaseFontScale)
|
|
87
|
+
app.provide('resetFontScale', resetFontScale)
|
|
73
88
|
app.use(i18nPlugin)
|
|
74
89
|
// app.provide('snackbar', useSnackBar())
|
|
75
90
|
// Do NOT use app.use(globalRtl) or app.use(setRtl)
|
|
Binary file
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { globalFontScale } from './fontSize.ts'
|
|
2
|
+
|
|
3
|
+
export const FONT_SCALE_STEPS = [85, 100, 115, 130, 145]
|
|
4
|
+
const STORAGE_KEY = 'fontScaleSetting'
|
|
5
|
+
|
|
6
|
+
export function setFontScale(percentage: number) {
|
|
7
|
+
globalFontScale.value = percentage
|
|
8
|
+
localStorage.setItem(STORAGE_KEY, String(percentage))
|
|
9
|
+
if (typeof document !== 'undefined') {
|
|
10
|
+
document.documentElement.style.fontSize = `${percentage}%`
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export function increaseFontScale() {
|
|
15
|
+
const idx = FONT_SCALE_STEPS.indexOf(globalFontScale.value)
|
|
16
|
+
if (idx < FONT_SCALE_STEPS.length - 1) {
|
|
17
|
+
setFontScale(FONT_SCALE_STEPS[idx + 1])
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export function decreaseFontScale() {
|
|
22
|
+
const idx = FONT_SCALE_STEPS.indexOf(globalFontScale.value)
|
|
23
|
+
if (idx > 0) {
|
|
24
|
+
setFontScale(FONT_SCALE_STEPS[idx - 1])
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export function resetFontScale() {
|
|
29
|
+
setFontScale(100)
|
|
30
|
+
}
|
|
@@ -5,14 +5,21 @@
|
|
|
5
5
|
:loading="loading"
|
|
6
6
|
@update:query-params="handleQueryParamsUpdate"
|
|
7
7
|
/> -->
|
|
8
|
-
<component
|
|
8
|
+
<!-- <component
|
|
9
9
|
v-if="componentMap[DisplayComponent]"
|
|
10
10
|
:is="componentMap[DisplayComponent]"
|
|
11
11
|
:items="items"
|
|
12
12
|
:loading="loading"
|
|
13
13
|
:lang="items?.lang ?? language"
|
|
14
14
|
@update:query-params="handleQueryParamsUpdate"
|
|
15
|
+
/> -->
|
|
16
|
+
<ListView v-if="items"
|
|
17
|
+
:items="items"
|
|
18
|
+
:loading="loading"
|
|
19
|
+
:lang="items?.lang ?? language"
|
|
20
|
+
@update:query-params="handleQueryParamsUpdate"
|
|
15
21
|
/>
|
|
22
|
+
|
|
16
23
|
<div v-else>
|
|
17
24
|
<p>{{ errormsg }}</p>
|
|
18
25
|
</div>
|
|
@@ -22,7 +29,7 @@
|
|
|
22
29
|
<script setup>
|
|
23
30
|
import { ref, onMounted, watch, inject, computed, defineAsyncComponent } from 'vue'
|
|
24
31
|
import { useRoute } from 'vue-router'
|
|
25
|
-
|
|
32
|
+
import ListView from '../../pgo-components/pages/ListView.vue'
|
|
26
33
|
|
|
27
34
|
const { language } = inject('i18n')
|
|
28
35
|
const api = inject('api')
|
|
@@ -39,7 +46,7 @@ const componentName = computed(() => route.params.componentName || '')
|
|
|
39
46
|
|
|
40
47
|
const items = ref({})
|
|
41
48
|
const loading = ref(false)
|
|
42
|
-
const DisplayComponent = ref(null)
|
|
49
|
+
// const DisplayComponent = ref(null)
|
|
43
50
|
|
|
44
51
|
const fetchData = async (queryParams = {}) => {
|
|
45
52
|
|
|
@@ -74,7 +81,7 @@ const fetchData = async (queryParams = {}) => {
|
|
|
74
81
|
snackbar.show({ message: errormsg.value, variant: 'error' })
|
|
75
82
|
}
|
|
76
83
|
items.value = response
|
|
77
|
-
DisplayComponent.value = response.component
|
|
84
|
+
// DisplayComponent.value = response.component
|
|
78
85
|
// DisplayComponent.value = componentName.value
|
|
79
86
|
// console.log('lang:', language.value, 'items lang:', items.value.lang)
|
|
80
87
|
|
|
@@ -90,18 +97,18 @@ const fetchData = async (queryParams = {}) => {
|
|
|
90
97
|
}
|
|
91
98
|
}
|
|
92
99
|
|
|
93
|
-
const componentMap = computed(() => {
|
|
94
|
-
|
|
95
|
-
|
|
100
|
+
// const componentMap = computed(() => {
|
|
101
|
+
// const map = {}
|
|
102
|
+
// const usedTypes = DisplayComponent.value
|
|
96
103
|
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
104
|
+
// if (usedTypes == "listView" || usedTypes == 'ListView' || usedTypes == 'listView2') {
|
|
105
|
+
// map['listView'] = defineAsyncComponent(() => import('../../pgo-components/pages/ListView.vue'))
|
|
106
|
+
// map['listView2'] = defineAsyncComponent(() => import('../../pgo-components/pages/ListView.vue'))
|
|
107
|
+
// map['ListView'] = defineAsyncComponent(() => import('../../pgo-components/pages/ListView.vue'))
|
|
108
|
+
// }
|
|
102
109
|
|
|
103
|
-
|
|
104
|
-
})
|
|
110
|
+
// return map
|
|
111
|
+
// })
|
|
105
112
|
|
|
106
113
|
// Handle query params update from child component
|
|
107
114
|
const handleQueryParamsUpdate = (queryParams) => {
|
|
@@ -1,117 +1 @@
|
|
|
1
|
-
{
|
|
2
|
-
"component": "form",
|
|
3
|
-
"fields": [
|
|
4
|
-
{
|
|
5
|
-
"key": "qazziyya_number",
|
|
6
|
-
"inputType": "text",
|
|
7
|
-
"label": " \u07a4\u07a6\u079f\u07a8\u0787\u07b0\u0794\u07a7 \u0782\u07a6\u0782\u07b0\u0784\u07a6\u0783\u07aa",
|
|
8
|
-
"group": "SubmissionNumber",
|
|
9
|
-
"disabled": false,
|
|
10
|
-
"NotDbField": false
|
|
11
|
-
},
|
|
12
|
-
{
|
|
13
|
-
"key": "submissionDetails.form_ref_number",
|
|
14
|
-
"inputType": "label",
|
|
15
|
-
"label": " \u078b\u07a6\u07a2\u07aa\u0788\u07a7 \u078a\u07af\u0789\u07aa \u0782\u07a6\u0782\u07b0\u0784\u07a6\u0783\u07aa",
|
|
16
|
-
"group": "PersonInfo",
|
|
17
|
-
"disabled": false,
|
|
18
|
-
"NotDbField": true
|
|
19
|
-
},
|
|
20
|
-
{
|
|
21
|
-
"key": "submission_id",
|
|
22
|
-
"inputType": "text",
|
|
23
|
-
"hidden": true
|
|
24
|
-
},
|
|
25
|
-
{
|
|
26
|
-
"key": "submissionDetails.person_details",
|
|
27
|
-
"inputType": "label",
|
|
28
|
-
"label": "\u078b\u07a6\u07a2\u07aa\u0788\u07a7 \u078d\u07a8\u0784\u07ad \u0789\u07a9\u0780\u07a7\u078e\u07ac \u0789\u07a6\u07a2\u07aa\u078d\u07ab\u0789\u07a7\u078c\u07aa",
|
|
29
|
-
"group": "PersonInfo",
|
|
30
|
-
"disabled": true,
|
|
31
|
-
"NotDbField": true
|
|
32
|
-
},
|
|
33
|
-
{
|
|
34
|
-
"key": "summary",
|
|
35
|
-
"label": "\u078c\u07a6\u078a\u07b0\u079e\u07a9\u078d\u07b0",
|
|
36
|
-
"type": "string",
|
|
37
|
-
"inputType": "text",
|
|
38
|
-
"group": "SubmissionDetails",
|
|
39
|
-
"disabled": false,
|
|
40
|
-
"rules": "rules.required"
|
|
41
|
-
},
|
|
42
|
-
{
|
|
43
|
-
"key": "file",
|
|
44
|
-
"inputType": "file",
|
|
45
|
-
"label": "\u078a\u07a6\u0787\u07a8\u078d\u07b0 \u0787\u07a6\u0795\u07b0\u078d\u07af\u0791\u07b0\u0786\u07aa\u0783\u07ad",
|
|
46
|
-
"dataKey": "url",
|
|
47
|
-
"group": "SubmissionDetails",
|
|
48
|
-
"disabled": false,
|
|
49
|
-
"condition": "props.mode === 'edit' ? false : true",
|
|
50
|
-
"accept": "image\/*,application\/pdf,.doc,.docx",
|
|
51
|
-
"multiple": true,
|
|
52
|
-
"maxSize": "200MB",
|
|
53
|
-
"uploadUrl": "http:\/\/v2.govapi.pgo.mv\/api\/upload\/gov\/cform"
|
|
54
|
-
}
|
|
55
|
-
],
|
|
56
|
-
"rules": "on",
|
|
57
|
-
"crudLink": "gapi\/CForm",
|
|
58
|
-
"createLink": "gapi\/CForm",
|
|
59
|
-
"updateLink": "gapi\/CForm",
|
|
60
|
-
"showLink": "gapi\/CForm",
|
|
61
|
-
"numberOfColumns": 3,
|
|
62
|
-
"button": [
|
|
63
|
-
"create",
|
|
64
|
-
"edit"
|
|
65
|
-
],
|
|
66
|
-
"createTitle": "\u0787\u07a6\u0787\u07aa",
|
|
67
|
-
"editTitle": "\u0784\u07a6\u078b\u07a6\u078d\u07aa",
|
|
68
|
-
"groups": [
|
|
69
|
-
{
|
|
70
|
-
"name": "Search",
|
|
71
|
-
"condition": "mode === 'edit' ? false : true",
|
|
72
|
-
"title": "\u0780\u07af\u078b\u07a7",
|
|
73
|
-
"numberOfColumns": 2
|
|
74
|
-
},
|
|
75
|
-
{
|
|
76
|
-
"name": "PersonInfo",
|
|
77
|
-
"condition": "SearchResults",
|
|
78
|
-
"title": "\u078b\u07a6\u07a2\u07aa\u0788\u07a7 \u078d\u07a8\u0784\u07ad \u0789\u07a9\u0780\u07a7\u078e\u07ac \u0789\u07a6\u07a2\u07aa\u078d\u07ab\u0789\u07a7\u078c\u07aa",
|
|
79
|
-
"numberOfColumns": 2
|
|
80
|
-
},
|
|
81
|
-
{
|
|
82
|
-
"name": "SubmissionNumber",
|
|
83
|
-
"title": " \u0780\u07aa\u0781\u07a6\u0780\u07a6\u0785\u07a7 \u078a\u07a6\u0783\u07a7\u078c\u07aa\u078e\u07ac \u0783\u07ac\u078a\u07a6\u0783\u07ac\u0782\u07b0\u0790\u07b0 \u0782\u07a6\u0782\u07b0\u0784\u07a6\u0783\u07aa \u0782\u07aa\u0788\u07a6\u078c\u07a6 \u07a4\u07a6\u079f\u07a8\u0787\u07b0\u0794\u07a7",
|
|
84
|
-
"numberOfColumns": 2
|
|
85
|
-
},
|
|
86
|
-
{
|
|
87
|
-
"name": "SubmissionDetails",
|
|
88
|
-
"title": "\u078a\u07af\u0789\u07a7\u0787\u07a8 \u078e\u07aa\u0785\u07ad \u0787\u07a8\u078c\u07aa\u0783\u07aa \u078c\u07a6\u078a\u07b0\u079e\u07a9\u078d\u07aa",
|
|
89
|
-
"numberOfColumns": 1
|
|
90
|
-
}
|
|
91
|
-
],
|
|
92
|
-
"variables": {
|
|
93
|
-
"draftingEnabled": true,
|
|
94
|
-
"SearchResults": true
|
|
95
|
-
},
|
|
96
|
-
"functions": {
|
|
97
|
-
"handleSearchResults": "if (response && response.data ) { formData.form_ref_number = response.data.form_ref_number; formData.submission_id = response.data.id; formData.person_details = ''; if (response.data.submission_details_view) { response.data.submission_details_view.forEach(data => { formData.person_details = data.person_view.label; }); } formVariables.SearchResults = true; console.log(\"SearchResults set to true:\", formVariables.SearchResults); }",
|
|
98
|
-
"customeColumnData": "const componentData = { type: 'CopyTextBox', CopyTextBox: [ { size: 'xs', label: item.ref_num, color: 'success' }, { size: 'xs', label: item.uuid, showIcon: true, rounded: 'full', color: 'error' } ] }; return componentData;"
|
|
99
|
-
},
|
|
100
|
-
"_validation_warnings": [
|
|
101
|
-
{
|
|
102
|
-
"path": "table.columnCustomizations.url",
|
|
103
|
-
"rule": "customization_key_exists",
|
|
104
|
-
"message": "Column customization \"url\" does not match any known column in the schema or columns list. If this is intentional, set displayType to \"custom\"."
|
|
105
|
-
},
|
|
106
|
-
{
|
|
107
|
-
"path": "toolbar.columnCustomizations.status",
|
|
108
|
-
"rule": "displaytype_requires_config",
|
|
109
|
-
"message": "\"displayType\" is \"chip\" but neither a \"chip\" sub-key nor \"displayProps\" is defined. Display may fall back to plain text."
|
|
110
|
-
},
|
|
111
|
-
{
|
|
112
|
-
"path": "filterSection.columnCustomizations.status",
|
|
113
|
-
"rule": "displaytype_requires_config",
|
|
114
|
-
"message": "\"displayType\" is \"chip\" but neither a \"chip\" sub-key nor \"displayProps\" is defined. Display may fall back to plain text."
|
|
115
|
-
}
|
|
116
|
-
]
|
|
117
|
-
}
|
|
1
|
+
{"component":"table","headers":[{"title":"\u0783\u07ac\u078a\u07ac\u0783\u07ac\u0782\u07b0\u0790\u07b0 \u0782\u07a6\u0782\u07b0\u0784\u07a6\u0783","value":"new_ref","lang":"en","width":"100px","columnData":"formReferenceNumbers()","displayType":"custom"},{"title":"\u078c\u07a6\u078a\u07b0\u079e\u07a9\u078d\u07b0","value":"summary","sortable":false,"hidden":false,"type":"string","displayType":"text"},{"title":" \u0783\u07a8\u0789\u07a7\u0783\u07b0\u0786\u07b0\u0790\u07b0","value":"remarks","sortable":false,"hidden":false,"type":"string","displayType":"text","lang":"en"},{"title":"\u078c\u07a6\u0787\u07b0\u0794\u07a7\u0783\u07aa\u0786\u07aa\u0783\u07a8 \u078a\u07a6\u0783\u07a7\u078c\u07b0","value":"submitter.name_div","sortable":false,"hidden":false,"type":"string","displayType":"text"},{"title":" \u0780\u07a7\u078d\u07a6\u078c\u07aa","value":"status","sortable":true,"hidden":false,"type":"string","displayType":"chip","lang":"en","chip":{"draft":{"size":"sm","label":"\u0791\u07b0\u0783\u07a7\u078a\u07b0\u0793\u07b0","color":"secondary","prependIcon":"document"},"submitted":{"size":"sm","label":"\u0790\u07a6\u0784\u07b0\u0789\u07a8\u0793\u07b0\u0786\u07aa\u0783\u07ac\u0788\u07a8\u078a\u07a6","color":"primary","prependIcon":"paper-airplane"},"rejected":{"size":"sm","label":"\u0783\u07a8\u0796\u07ac\u0786\u07b0\u0793\u07aa\u0786\u07aa\u0783\u07ac\u0788\u07a8\u078a\u07a6","color":"error","prependIcon":"x-circle"},"accepted":{"size":"sm","label":"\u0784\u07a6\u078d\u07a6\u0787\u07a8\u078e\u07a6\u0782\u07ac\u0788\u07a8\u078a\u07a6","color":"success","prependIcon":"check-circle"}},"inlineEditable":true,"width":"180px"},{"title":" \u078a\u07a6\u0787\u07a8\u078d\u07b0","value":"url","lang":"en","displayType":"docButton","docButton":{"displayLabel":false,"columnView":true}}],"pagination":{"current_page":1,"per_page":25},"datalink":"gapi\/CForm?columns=uuid,ref_num,summary,client_ref_number,remarks,submitter.name_div,file_id,status,upload_data&with=submitter:name_div&per_page=25","button":["create","edit","delete"],"showActions":true,"actions":{"showView":true,"showEdit":true,"deleteCondition":"item.status === 'draft'","showDelete":true},"functions":{"formReferenceNumbers":"const componentData = { type: 'CopyTextBox', CopyTextBox: [ { size: 'xs', label: item.ref_num, color: 'primary' }, { size: 'xs', label: item.client_ref_number ? item.client_ref_number : '--', color: 'info' }, { size: 'xs', label: item.qazziyya_number ? item.qazziyya_number : '--', color: 'success' } ] }; return componentData;"},"delete":{"title":" \u0791\u07a8\u078d\u07a9\u0793\u07b0 \u0786\u07ae\u0781\u07b0\u078d\u07a6\u0782\u07b0\u0788\u07a9\u078c\u07af","subtitle":{"en":"Are you sure you want to delete this record?","dv":"\u0789\u07a8\u0787\u07ac\u0786\u07b0\u079d\u07a6\u0782\u07b0 \u0787\u07a6\u0782\u0784\u07aa\u0783\u07a7 \u0782\u07aa\u078e\u07ac\u0782\u07b0\u078b\u07ac\u0788\u07ad\u0782\u07ac. \u0791\u07a8\u078d\u07a9\u0793\u07b0\u0786\u07ae\u0781\u07b0\u078d\u07a6\u0782\u07b0\u0788\u07a9\u078c\u07af \u061f "},"message":{"ref_num":{"en":"ref","dv":"\u0783\u07ac\u078a\u07ac\u0783\u07ac\u0782\u07b0\u0790\u07b0 \u0782\u07a6\u0782\u07b0\u0784\u07a6\u0783"}},"crudLink":"gapi\/cform"},"_validation_warnings":[{"path":"table.columnCustomizations.url","rule":"customization_key_exists","message":"Column customization \"url\" does not match any known column in the schema or columns list. If this is intentional, set displayType to \"custom\"."},{"path":"toolbar.columnCustomizations.status","rule":"displaytype_requires_config","message":"\"displayType\" is \"chip\" but neither a \"chip\" sub-key nor \"displayProps\" is defined. Display may fall back to plain text."},{"path":"filterSection.columnCustomizations.status","rule":"displaytype_requires_config","message":"\"displayType\" is \"chip\" but neither a \"chip\" sub-key nor \"displayProps\" is defined. Display may fall back to plain text."}]}
|
|
@@ -113,7 +113,8 @@ body[lang="dv"] {
|
|
|
113
113
|
@font-face {
|
|
114
114
|
font-family: 'Faruma';
|
|
115
115
|
/* Your chosen name for the font */
|
|
116
|
-
src: url('/src/pgo-components/assets/fonts/Faruma.ttf') format('truetype');
|
|
116
|
+
/* src: url('/src/pgo-components/assets/fonts/Faruma.ttf') format('truetype'); */
|
|
117
|
+
src: url('/src/pgo-components/assets/fonts/MVFaseyha.woff2') format('woff2');
|
|
117
118
|
font-weight: normal;
|
|
118
119
|
font-style: normal;
|
|
119
120
|
font-display: swap;
|
|
@@ -37,7 +37,8 @@ body[lang="dv"]
|
|
|
37
37
|
|
|
38
38
|
@font-face {
|
|
39
39
|
font-family: 'Faruma'; /* Your chosen name for the font */
|
|
40
|
-
src: url('/src/assets/fonts/Faruma.ttf') format('truetype');
|
|
40
|
+
/* src: url('/src/assets/fonts/Faruma.ttf') format('truetype'); */
|
|
41
|
+
src: url('/src/assets/fonts/MVFaseyha.woff2') format('woff2');
|
|
41
42
|
font-weight: normal;
|
|
42
43
|
font-style: normal;
|
|
43
44
|
font-display: swap;
|
|
@@ -53,7 +54,7 @@ body[lang="dv"]
|
|
|
53
54
|
|
|
54
55
|
|
|
55
56
|
/* @theme {
|
|
56
|
-
--color-primary: oklch(54.6% 0.245 262.881);
|
|
57
|
+
--color-primary: oklch(54.6% 0.245 262.881);
|
|
57
58
|
--color-primaryText: var(--vts-color-primaryText);
|
|
58
59
|
--color-primary-50: oklch(97% 0.014 254.604);
|
|
59
60
|
--color-primary-100: oklch(93.2% 0.032 255.585);
|
package/dist/Radio-BMsJLVIa.js
DELETED
|
File without changes
|