@mmlogic/components 0.3.6 → 0.3.8
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/cjs/app-globals-V2Kpy_OQ.js +5 -0
- package/dist/cjs/index-BPj2cBXs.js +1570 -0
- package/dist/cjs/index.cjs.js +66 -0
- package/dist/cjs/loader.cjs.js +13 -0
- package/dist/cjs/mosterdcomponents.cjs.js +25 -0
- package/dist/cjs/mrd-boolean-field_20.cjs.entry.js +3961 -0
- package/dist/cjs/quill-DmFfnC1f.js +16272 -0
- package/dist/collection/collection-manifest.json +32 -0
- package/dist/collection/components/mrd-boolean-field/mrd-boolean-field.js +199 -0
- package/dist/collection/components/mrd-boolean-field/mrd-boolean-field.scss +77 -0
- package/dist/collection/components/mrd-currency-field/mrd-currency-field.js +248 -0
- package/dist/collection/components/mrd-currency-field/mrd-currency-field.scss +100 -0
- package/dist/collection/components/mrd-date-field/mrd-date-field.js +206 -0
- package/dist/collection/components/mrd-date-field/mrd-date-field.scss +66 -0
- package/dist/collection/components/mrd-datetime-field/mrd-datetime-field.js +240 -0
- package/dist/collection/components/mrd-datetime-field/mrd-datetime-field.scss +66 -0
- package/dist/collection/components/mrd-email-field/mrd-email-field.js +230 -0
- package/dist/collection/components/mrd-email-field/mrd-email-field.scss +69 -0
- package/dist/{mosterdcomponents/mrd-field.entry.js → collection/components/mrd-field/mrd-field.js} +179 -28
- package/dist/collection/components/mrd-field/mrd-field.scss +118 -0
- package/dist/collection/components/mrd-file-field/mrd-file-field.js +341 -0
- package/dist/collection/components/mrd-file-field/mrd-file-field.scss +153 -0
- package/dist/{mosterdcomponents/mrd-form.entry.js → collection/components/mrd-form/mrd-form.js} +308 -31
- package/dist/collection/components/mrd-form/mrd-form.scss +148 -0
- package/dist/collection/components/mrd-hyperlink-field/mrd-hyperlink-field.js +291 -0
- package/dist/collection/components/mrd-hyperlink-field/mrd-hyperlink-field.scss +91 -0
- package/dist/collection/components/mrd-image-field/mrd-image-field.js +356 -0
- package/dist/collection/components/mrd-image-field/mrd-image-field.scss +190 -0
- package/dist/{mosterdcomponents/mrd-layout-section.entry.js → collection/components/mrd-layout-section/mrd-layout-section.js} +420 -33
- package/dist/collection/components/mrd-layout-section/mrd-layout-section.scss +445 -0
- package/dist/collection/components/mrd-list-field/mrd-list-field.js +313 -0
- package/dist/collection/components/mrd-list-field/mrd-list-field.scss +109 -0
- package/dist/collection/components/mrd-longtext-field/mrd-longtext-field.js +227 -0
- package/dist/collection/components/mrd-longtext-field/mrd-longtext-field.scss +78 -0
- package/dist/collection/components/mrd-number-field/mrd-number-field.js +316 -0
- package/dist/collection/components/mrd-number-field/mrd-number-field.scss +77 -0
- package/dist/collection/components/mrd-relation-field/mrd-relation-field.js +707 -0
- package/dist/collection/components/mrd-relation-field/mrd-relation-field.scss +266 -0
- package/dist/collection/components/mrd-secret-field/mrd-secret-field.js +229 -0
- package/dist/collection/components/mrd-secret-field/mrd-secret-field.scss +73 -0
- package/dist/{mosterdcomponents/mrd-table.entry.js → collection/components/mrd-table/mrd-table.js} +394 -32
- package/dist/collection/components/mrd-table/mrd-table.scss +809 -0
- package/dist/collection/components/mrd-text-field/mrd-text-field.js +227 -0
- package/dist/collection/components/mrd-text-field/mrd-text-field.scss +69 -0
- package/dist/collection/components/mrd-textarea-field/mrd-textarea-field.js +267 -0
- package/dist/collection/components/mrd-textarea-field/mrd-textarea-field.scss +79 -0
- package/dist/collection/components/mrd-time-field/mrd-time-field.js +206 -0
- package/dist/collection/components/mrd-time-field/mrd-time-field.scss +66 -0
- package/dist/collection/dev/api.js +145 -0
- package/dist/collection/dev/app.js +890 -0
- package/dist/collection/dev/auth.js +156 -0
- package/dist/collection/dev/example-data.js +403 -0
- package/dist/collection/dev/sprites.svg +55 -0
- package/dist/collection/index.js +1 -0
- package/dist/collection/types/client-layout.js +64 -0
- package/dist/collection/types/index.js +1 -0
- package/dist/{mosterdcomponents/cell-renderer-CbRwLOo8.js → collection/utils/cell-renderer.js} +3 -9
- package/dist/{mosterdcomponents/format-BAfsQfy1.js → collection/utils/format.js} +7 -12
- package/dist/{mosterdcomponents/i18n-hoGGKbKU.js → collection/utils/i18n.js} +1 -6
- package/dist/{mosterdcomponents/validation-ixb43cqU.js → collection/utils/validation.js} +5 -12
- package/dist/components/client-layout.js +1 -0
- package/dist/components/format.js +1 -0
- package/dist/components/i18n.js +1 -0
- package/dist/components/index.js +1 -0
- package/dist/components/mrd-boolean-field.js +1 -0
- package/dist/components/mrd-boolean-field2.js +1 -0
- package/dist/components/mrd-currency-field.js +1 -0
- package/dist/components/mrd-currency-field2.js +1 -0
- package/dist/components/mrd-date-field.js +1 -0
- package/dist/components/mrd-date-field2.js +1 -0
- package/dist/components/mrd-datetime-field.js +1 -0
- package/dist/components/mrd-datetime-field2.js +1 -0
- package/dist/components/mrd-email-field.js +1 -0
- package/dist/components/mrd-email-field2.js +1 -0
- package/dist/components/mrd-field.js +1 -0
- package/dist/components/mrd-field2.js +1 -0
- package/dist/components/mrd-file-field.js +1 -0
- package/dist/components/mrd-file-field2.js +1 -0
- package/dist/components/mrd-form.js +1 -0
- package/dist/components/mrd-hyperlink-field.js +1 -0
- package/dist/components/mrd-hyperlink-field2.js +1 -0
- package/dist/components/mrd-image-field.js +1 -0
- package/dist/components/mrd-image-field2.js +1 -0
- package/dist/components/mrd-layout-section.js +1 -0
- package/dist/components/mrd-list-field.js +1 -0
- package/dist/components/mrd-list-field2.js +1 -0
- package/dist/components/mrd-longtext-field.js +1 -0
- package/dist/components/mrd-longtext-field2.js +1 -0
- package/dist/components/mrd-number-field.js +1 -0
- package/dist/components/mrd-number-field2.js +1 -0
- package/dist/components/mrd-relation-field.js +1 -0
- package/dist/components/mrd-relation-field2.js +1 -0
- package/dist/components/mrd-secret-field.js +1 -0
- package/dist/components/mrd-secret-field2.js +1 -0
- package/dist/components/mrd-table.js +1 -0
- package/dist/components/mrd-table2.js +1 -0
- package/dist/components/mrd-text-field.js +1 -0
- package/dist/components/mrd-text-field2.js +1 -0
- package/dist/components/mrd-textarea-field.js +1 -0
- package/dist/components/mrd-textarea-field2.js +1 -0
- package/dist/components/mrd-time-field.js +1 -0
- package/dist/components/mrd-time-field2.js +1 -0
- package/dist/components/quill.js +1 -0
- package/dist/components/validation.js +1 -0
- package/dist/esm/app-globals-DQuL1Twl.js +3 -0
- package/dist/esm/index-_tsCCkAi.js +1561 -0
- package/dist/{mosterdcomponents/client-layout-D88nn5zf.js → esm/index.js} +1 -4
- package/dist/esm/loader.js +11 -0
- package/dist/esm/mosterdcomponents.js +21 -0
- package/dist/esm/mrd-boolean-field_20.entry.js +3940 -0
- package/dist/{mosterdcomponents/quill-C9pgw_k-.js → esm/quill-CiuCgGz_.js} +1347 -16232
- package/dist/index.cjs.js +1 -0
- package/dist/index.js +1 -0
- package/dist/mosterdcomponents/index-6yQUNVww.js.map +1 -0
- package/dist/mosterdcomponents/index.esm.js +1 -5
- package/dist/mosterdcomponents/mosterdcomponents.css +1 -180
- package/dist/mosterdcomponents/mosterdcomponents.esm.js +1 -50
- package/dist/mosterdcomponents/p-7bfaee51.entry.js +1 -0
- package/dist/mosterdcomponents/p-CiuCgGz_.js +1 -0
- package/dist/mosterdcomponents/p-DQuL1Twl.js +1 -0
- package/dist/mosterdcomponents/p-_tsCCkAi.js +2 -0
- package/package.json +1 -1
- package/dist/mosterdcomponents/index-B_tPFIvS.js +0 -4585
- package/dist/mosterdcomponents/index-B_tPFIvS.js.map +0 -1
- package/dist/mosterdcomponents/index-I5SuYv7a.js +0 -4
- package/dist/mosterdcomponents/mrd-boolean-field.entry.js +0 -37
- package/dist/mosterdcomponents/mrd-boolean-field.entry.js.map +0 -1
- package/dist/mosterdcomponents/mrd-currency-field.entry.js +0 -67
- package/dist/mosterdcomponents/mrd-currency-field.entry.js.map +0 -1
- package/dist/mosterdcomponents/mrd-date-field.entry.js +0 -46
- package/dist/mosterdcomponents/mrd-date-field.entry.js.map +0 -1
- package/dist/mosterdcomponents/mrd-datetime-field.entry.js +0 -78
- package/dist/mosterdcomponents/mrd-datetime-field.entry.js.map +0 -1
- package/dist/mosterdcomponents/mrd-email-field.entry.js +0 -50
- package/dist/mosterdcomponents/mrd-email-field.entry.js.map +0 -1
- package/dist/mosterdcomponents/mrd-field.entry.js.map +0 -1
- package/dist/mosterdcomponents/mrd-file-field.entry.js +0 -108
- package/dist/mosterdcomponents/mrd-file-field.entry.js.map +0 -1
- package/dist/mosterdcomponents/mrd-form.entry.js.map +0 -1
- package/dist/mosterdcomponents/mrd-hyperlink-field.entry.js +0 -87
- package/dist/mosterdcomponents/mrd-hyperlink-field.entry.js.map +0 -1
- package/dist/mosterdcomponents/mrd-image-field.entry.js +0 -122
- package/dist/mosterdcomponents/mrd-image-field.entry.js.map +0 -1
- package/dist/mosterdcomponents/mrd-layout-section.entry.js.map +0 -1
- package/dist/mosterdcomponents/mrd-list-field.entry.js +0 -107
- package/dist/mosterdcomponents/mrd-list-field.entry.js.map +0 -1
- package/dist/mosterdcomponents/mrd-longtext-field.entry.js +0 -47
- package/dist/mosterdcomponents/mrd-longtext-field.entry.js.map +0 -1
- package/dist/mosterdcomponents/mrd-number-field.entry.js +0 -87
- package/dist/mosterdcomponents/mrd-number-field.entry.js.map +0 -1
- package/dist/mosterdcomponents/mrd-relation-field.entry.js +0 -267
- package/dist/mosterdcomponents/mrd-relation-field.entry.js.map +0 -1
- package/dist/mosterdcomponents/mrd-secret-field.entry.js +0 -49
- package/dist/mosterdcomponents/mrd-secret-field.entry.js.map +0 -1
- package/dist/mosterdcomponents/mrd-table.entry.js.map +0 -1
- package/dist/mosterdcomponents/mrd-text-field.entry.js +0 -47
- package/dist/mosterdcomponents/mrd-text-field.entry.js.map +0 -1
- package/dist/mosterdcomponents/mrd-textarea-field.entry.js +0 -86
- package/dist/mosterdcomponents/mrd-textarea-field.entry.js.map +0 -1
- package/dist/mosterdcomponents/mrd-time-field.entry.js +0 -46
- package/dist/mosterdcomponents/mrd-time-field.entry.js.map +0 -1
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
/* =====================================================================
|
|
2
|
+
AUTH0 PKCE
|
|
3
|
+
===================================================================== */
|
|
4
|
+
|
|
5
|
+
const AUTH0_DOMAIN = 'login.develop.rulebooks.nl';
|
|
6
|
+
const AUTH0_CLIENT = '5zpghu11GLFrx95eg5jMl1f0BEnkIenF';
|
|
7
|
+
const AUTH0_AUDIENCE = 'https://api.mosterd';
|
|
8
|
+
const REDIRECT_URI = 'http://localhost:3333';
|
|
9
|
+
|
|
10
|
+
let _accessToken = null;
|
|
11
|
+
let _userEmail = null;
|
|
12
|
+
|
|
13
|
+
function authRestoreSession() {
|
|
14
|
+
const token = localStorage.getItem('auth_token');
|
|
15
|
+
const exp = parseInt(localStorage.getItem('auth_exp') || '0', 10);
|
|
16
|
+
if (!token || (exp && Date.now() / 1000 >= exp - 60)) {
|
|
17
|
+
localStorage.removeItem('auth_token');
|
|
18
|
+
localStorage.removeItem('auth_email');
|
|
19
|
+
localStorage.removeItem('auth_exp');
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
_accessToken = token;
|
|
23
|
+
_userEmail = localStorage.getItem('auth_email') || null;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
function base64url(buffer) {
|
|
27
|
+
return btoa(String.fromCharCode(...new Uint8Array(buffer)))
|
|
28
|
+
.replace(/\+/g, '-').replace(/\//g, '_').replace(/=/g, '');
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
async function pkceGenerateVerifier() {
|
|
32
|
+
const bytes = crypto.getRandomValues(new Uint8Array(96));
|
|
33
|
+
return base64url(bytes);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
async function pkceGenerateChallenge(verifier) {
|
|
37
|
+
const data = new TextEncoder().encode(verifier);
|
|
38
|
+
const hash = await crypto.subtle.digest('SHA-256', data);
|
|
39
|
+
return base64url(hash);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
async function authLogin() {
|
|
43
|
+
const verifier = await pkceGenerateVerifier();
|
|
44
|
+
const challenge = await pkceGenerateChallenge(verifier);
|
|
45
|
+
sessionStorage.setItem('pkce_verifier', verifier);
|
|
46
|
+
|
|
47
|
+
const params = new URLSearchParams({
|
|
48
|
+
response_type: 'code',
|
|
49
|
+
client_id: AUTH0_CLIENT,
|
|
50
|
+
redirect_uri: REDIRECT_URI,
|
|
51
|
+
audience: AUTH0_AUDIENCE,
|
|
52
|
+
scope: 'openid profile email',
|
|
53
|
+
code_challenge: challenge,
|
|
54
|
+
code_challenge_method: 'S256',
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
window.location.href = `https://${AUTH0_DOMAIN}/authorize?${params}`;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
async function authHandleCallback() {
|
|
61
|
+
const url = new URL(window.location.href);
|
|
62
|
+
const code = url.searchParams.get('code');
|
|
63
|
+
const error = url.searchParams.get('error');
|
|
64
|
+
|
|
65
|
+
if (error) {
|
|
66
|
+
showAuthError(url.searchParams.get('error_description') || error);
|
|
67
|
+
cleanUrl();
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
if (!code) return;
|
|
72
|
+
|
|
73
|
+
const verifier = sessionStorage.getItem('pkce_verifier');
|
|
74
|
+
if (!verifier) {
|
|
75
|
+
showAuthError('PKCE verifier missing — please try logging in again.');
|
|
76
|
+
cleanUrl();
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
sessionStorage.removeItem('pkce_verifier');
|
|
80
|
+
|
|
81
|
+
try {
|
|
82
|
+
const resp = await fetch(`https://${AUTH0_DOMAIN}/oauth/token`, {
|
|
83
|
+
method: 'POST',
|
|
84
|
+
headers: { 'Content-Type': 'application/json' },
|
|
85
|
+
body: JSON.stringify({
|
|
86
|
+
grant_type: 'authorization_code',
|
|
87
|
+
client_id: AUTH0_CLIENT,
|
|
88
|
+
code,
|
|
89
|
+
redirect_uri: REDIRECT_URI,
|
|
90
|
+
code_verifier: verifier,
|
|
91
|
+
}),
|
|
92
|
+
});
|
|
93
|
+
|
|
94
|
+
const data = await resp.json();
|
|
95
|
+
if (!resp.ok) throw new Error(data.error_description || data.error || resp.statusText);
|
|
96
|
+
|
|
97
|
+
_accessToken = data.access_token;
|
|
98
|
+
|
|
99
|
+
// Decode id_token for email (no signature validation needed on test page)
|
|
100
|
+
if (data.id_token) {
|
|
101
|
+
try {
|
|
102
|
+
const payload = JSON.parse(atob(data.id_token.split('.')[1].replace(/-/g, '+').replace(/_/g, '/')));
|
|
103
|
+
_userEmail = payload.email || payload.name || null;
|
|
104
|
+
} catch (_) { /* ignore */ }
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
// Persist session in localStorage
|
|
108
|
+
try {
|
|
109
|
+
const payload = JSON.parse(atob(data.access_token.split('.')[1].replace(/-/g, '+').replace(/_/g, '/')));
|
|
110
|
+
localStorage.setItem('auth_token', _accessToken);
|
|
111
|
+
localStorage.setItem('auth_email', _userEmail || '');
|
|
112
|
+
if (payload.exp) localStorage.setItem('auth_exp', String(payload.exp));
|
|
113
|
+
} catch (_) { /* ignore */ }
|
|
114
|
+
} catch (err) {
|
|
115
|
+
showAuthError(err.message);
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
cleanUrl();
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
function cleanUrl() {
|
|
122
|
+
const clean = window.location.pathname;
|
|
123
|
+
window.history.replaceState({}, document.title, clean);
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
function authGetToken() { return _accessToken; }
|
|
127
|
+
|
|
128
|
+
function showAuthError(msg) {
|
|
129
|
+
document.getElementById('auth-status-area').innerHTML =
|
|
130
|
+
`<span style="color:var(--mrd-color-danger)">❌ ${escHtml(msg)}</span>
|
|
131
|
+
<button class="btn-secondary" onclick="authLogin()">Opnieuw proberen</button>`;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
function showAuthStatus() {
|
|
135
|
+
const area = document.getElementById('auth-status-area');
|
|
136
|
+
const label = _userEmail ? `Ingelogd als <strong>${escHtml(_userEmail)}</strong>` : 'Ingelogd';
|
|
137
|
+
area.innerHTML =
|
|
138
|
+
`<span class="badge-ok">✓ ${label}</span>
|
|
139
|
+
<button class="btn-secondary" onclick="authLogout()">Uitloggen</button>`;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
function authLogout() {
|
|
143
|
+
_accessToken = null;
|
|
144
|
+
_userEmail = null;
|
|
145
|
+
localStorage.removeItem('auth_token');
|
|
146
|
+
localStorage.removeItem('auth_email');
|
|
147
|
+
localStorage.removeItem('auth_exp');
|
|
148
|
+
localStorage.removeItem('last_tenant');
|
|
149
|
+
document.getElementById('auth-status-area').innerHTML =
|
|
150
|
+
`<button class="btn-primary" id="btn-login" onclick="authLogin()">Login met Auth0</button>`;
|
|
151
|
+
document.getElementById('panel-tenant').classList.add('hidden');
|
|
152
|
+
document.getElementById('panel-type').classList.add('hidden');
|
|
153
|
+
document.getElementById('panel-table').classList.add('hidden');
|
|
154
|
+
document.getElementById('panel-form').classList.add('hidden');
|
|
155
|
+
document.getElementById('panel-response').innerHTML = '';
|
|
156
|
+
}
|
|
@@ -0,0 +1,403 @@
|
|
|
1
|
+
// Static example layout used in the "Embedded Form" tab.
|
|
2
|
+
window.EXAMPLE_LAYOUT = {
|
|
3
|
+
title: "Project Intake Form",
|
|
4
|
+
items: [
|
|
5
|
+
{
|
|
6
|
+
type: "SECTION",
|
|
7
|
+
label: "Basic Information",
|
|
8
|
+
items: [
|
|
9
|
+
{ type: "FIELD", name: "projectName", label: "Project Name", dataType: "TEXT", required: true, placeholder: "Enter project name" },
|
|
10
|
+
{ type: "FIELD", name: "description", label: "Description", dataType: "TEXTBLOCK", required: false, placeholder: "Describe the project..." },
|
|
11
|
+
{
|
|
12
|
+
type: "FIELD", name: "status", label: "Status", dataType: "LIST", required: true, multiple: false,
|
|
13
|
+
listItems: [
|
|
14
|
+
{ key: "active", label: "Active", color: "#16a34a" },
|
|
15
|
+
{ key: "pending", label: "Pending", color: "#d97706" },
|
|
16
|
+
{ key: "on_hold", label: "On Hold", color: "#dc2626" },
|
|
17
|
+
{ key: "completed", label: "Completed", color: "#2563eb" }
|
|
18
|
+
]
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
type: "FIELD", name: "tags", label: "Tags (Multi-select)", dataType: "LIST", required: false, multiple: true,
|
|
22
|
+
listItems: [
|
|
23
|
+
{ key: "frontend", label: "Frontend", color: "#7c3aed" },
|
|
24
|
+
{ key: "backend", label: "Backend", color: "#db2777" },
|
|
25
|
+
{ key: "design", label: "Design", color: "#0891b2" },
|
|
26
|
+
{ key: "devops", label: "DevOps", color: "#65a30d" }
|
|
27
|
+
]
|
|
28
|
+
}
|
|
29
|
+
]
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
type: "SECTION",
|
|
33
|
+
label: "Financial Details",
|
|
34
|
+
items: [
|
|
35
|
+
{ type: "FIELD", name: "budget", label: "Budget", dataType: "CURRENCY", required: true, currencyCode: "EUR" },
|
|
36
|
+
{ type: "FIELD", name: "completion", label: "Completion (%)", dataType: "PERCENTAGE", required: false, decimalPrecision: 1 },
|
|
37
|
+
{ type: "FIELD", name: "headcount", label: "Headcount", dataType: "INTEGER", required: false },
|
|
38
|
+
{ type: "FIELD", name: "hourlyRate", label: "Hourly Rate", dataType: "DECIMAL", required: false, decimalPrecision: 2 }
|
|
39
|
+
]
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
type: "SECTION",
|
|
43
|
+
label: "Dates & Time",
|
|
44
|
+
items: [
|
|
45
|
+
{ type: "FIELD", name: "startDate", label: "Start Date", dataType: "DATE", required: true },
|
|
46
|
+
{ type: "FIELD", name: "deadline", label: "Deadline", dataType: "DATETIME", required: false },
|
|
47
|
+
{ type: "FIELD", name: "dailyStandup", label: "Daily Standup Time", dataType: "TIME", required: false }
|
|
48
|
+
]
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
type: "SECTION",
|
|
52
|
+
label: "Contact & Links",
|
|
53
|
+
items: [
|
|
54
|
+
{ type: "FIELD", name: "contactEmail", label: "Contact Email", dataType: "EMAIL", required: true, placeholder: "project@company.com" },
|
|
55
|
+
{ type: "FIELD", name: "repositoryUrl", label: "Repository URL", dataType: "HYPERLINK", required: false, placeholder: "https://github.com/..." }
|
|
56
|
+
]
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
type: "SECTION",
|
|
60
|
+
label: "Settings",
|
|
61
|
+
items: [
|
|
62
|
+
{ type: "FIELD", name: "isPublic", label: "Public project", dataType: "BOOLEAN", required: false },
|
|
63
|
+
{ type: "FIELD", name: "isArchived", label: "Archived", dataType: "BOOLEAN", required: false },
|
|
64
|
+
{ type: "FIELD", name: "apiToken", label: "API Token", dataType: "SECRET", required: false, placeholder: "Paste token here" }
|
|
65
|
+
]
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
type: "SECTION",
|
|
69
|
+
label: "Assets",
|
|
70
|
+
items: [
|
|
71
|
+
{ type: "FIELD", name: "projectLogo", label: "Project Logo", dataType: "IMAGE", required: false, accept: "image/*", maxSize: 5242880 },
|
|
72
|
+
{ type: "FIELD", name: "attachments", label: "Attachments", dataType: "FILE", required: false, accept: ".pdf,.doc,.docx,.zip", maxSize: 10485760 }
|
|
73
|
+
]
|
|
74
|
+
},
|
|
75
|
+
{ type: "RELATION", name: "projectManager", label: "Project Manager", relatedClass: "Employee", displayType: "SEARCH", required: true, multiple: false },
|
|
76
|
+
{
|
|
77
|
+
type: "RELATION", name: "projectCategory", label: "Category", relatedClass: "Category", displayType: "DROPDOWN", required: false,
|
|
78
|
+
dropdownValues: [
|
|
79
|
+
{ value: "product", label: "Product Development" },
|
|
80
|
+
{ value: "internal", label: "Internal Tool" },
|
|
81
|
+
{ value: "client", label: "Client Project" },
|
|
82
|
+
{ value: "research", label: "Research & Innovation" }
|
|
83
|
+
]
|
|
84
|
+
}
|
|
85
|
+
]
|
|
86
|
+
};
|
|
87
|
+
|
|
88
|
+
window.EXAMPLE_VALUES = {
|
|
89
|
+
projectName: "Mosterd Platform",
|
|
90
|
+
status: "active",
|
|
91
|
+
budget: { amount: 150000, currency: "EUR" },
|
|
92
|
+
isPublic: true,
|
|
93
|
+
startDate: "2026-01-15",
|
|
94
|
+
contactEmail: "team@mosterd.nl"
|
|
95
|
+
};
|
|
96
|
+
|
|
97
|
+
// ─── Companies detail view demo ────────────────────────────────────────────────
|
|
98
|
+
|
|
99
|
+
/** Column definitions for the companies list table. */
|
|
100
|
+
window.EXAMPLE_COMPANY_COLUMNS = [
|
|
101
|
+
{ type: 'FIELD', label: 'Company name', name: 'name', dataType: 'TEXT', required: true },
|
|
102
|
+
{ type: 'FIELD', label: 'Reg. number', name: 'registrationNumber', dataType: 'TEXT', required: false },
|
|
103
|
+
{ type: 'FIELD', label: 'Legal form', name: 'legalForm', dataType: 'TEXT', required: false },
|
|
104
|
+
{ type: 'FIELD', label: 'Start date', name: 'startDate', dataType: 'DATE', required: false },
|
|
105
|
+
{ type: 'FIELD', label: 'Employees', name: 'totalEmployees', dataType: 'INTEGER', required: false },
|
|
106
|
+
];
|
|
107
|
+
|
|
108
|
+
/** Rows for the companies list table. */
|
|
109
|
+
window.EXAMPLE_COMPANIES = [
|
|
110
|
+
{
|
|
111
|
+
name: 'Alpha Holding B.V.',
|
|
112
|
+
registrationNumber: '10000001',
|
|
113
|
+
legalForm: 'Besloten Vennootschap',
|
|
114
|
+
startDate: '2001-03-01',
|
|
115
|
+
totalEmployees: 1,
|
|
116
|
+
_links: { self: { href: '/data/demo/companies/company-1' } },
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
name: 'Beta Services N.V.',
|
|
120
|
+
registrationNumber: '20000002',
|
|
121
|
+
legalForm: 'Naamloze Vennootschap',
|
|
122
|
+
startDate: '2010-07-15',
|
|
123
|
+
totalEmployees: 45,
|
|
124
|
+
_links: { self: { href: '/data/demo/companies/company-2' } },
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
name: 'Gamma & Partners B.V.',
|
|
128
|
+
registrationNumber: '30000003',
|
|
129
|
+
legalForm: 'Besloten Vennootschap',
|
|
130
|
+
startDate: '2008-11-01',
|
|
131
|
+
totalEmployees: 12,
|
|
132
|
+
_links: { self: { href: '/data/demo/companies/company-3' } },
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
name: 'Delta Vastgoed B.V.',
|
|
136
|
+
registrationNumber: '40000004',
|
|
137
|
+
legalForm: 'Besloten Vennootschap',
|
|
138
|
+
startDate: '2020-06-15',
|
|
139
|
+
totalEmployees: 3,
|
|
140
|
+
_links: { self: { href: '/data/demo/companies/company-4' } },
|
|
141
|
+
},
|
|
142
|
+
];
|
|
143
|
+
|
|
144
|
+
/** Single company data object (result of GET /data/:tenant/companies/:id). */
|
|
145
|
+
window.EXAMPLE_COMPANY = {
|
|
146
|
+
name: 'Alpha Holding B.V.',
|
|
147
|
+
legalName: 'Alpha Holding B.V.',
|
|
148
|
+
registrationNumber: '10000001',
|
|
149
|
+
registrationDate: null,
|
|
150
|
+
legalForm: 'Besloten Vennootschap',
|
|
151
|
+
legalFormExtended: 'Besloten Vennootschap',
|
|
152
|
+
rsin: '100000001',
|
|
153
|
+
startDate: '2001-03-01',
|
|
154
|
+
endDate: null,
|
|
155
|
+
primaryActivityDescription: 'Activiteiten van houdstermaatschappijen',
|
|
156
|
+
primaryActivityCode: '64100',
|
|
157
|
+
totalEmployees: 1,
|
|
158
|
+
noMailing: false,
|
|
159
|
+
verificationDate: '2024-01-15T09:00:00.000Z',
|
|
160
|
+
visitAddress: 'Voorbeeldstraat 1',
|
|
161
|
+
visitPostalCode: '1234AB',
|
|
162
|
+
visitCity: 'Amsterdam',
|
|
163
|
+
mailingAddress: null,
|
|
164
|
+
mailingPostalCode: null,
|
|
165
|
+
mailingCity: null,
|
|
166
|
+
_links: {
|
|
167
|
+
self: { href: '/data/demo/companies/company-1' },
|
|
168
|
+
country: { href: '/data/demo/countries/nl', name: 'Nederland' },
|
|
169
|
+
appointments: { href: '/data/demo/companies/company-1/appointments' },
|
|
170
|
+
shareClasses: { href: '/data/demo/companies/company-1/shareClasses' },
|
|
171
|
+
shareAllocations: { href: '/data/demo/shareholders/company-1/shareAllocations' },
|
|
172
|
+
},
|
|
173
|
+
};
|
|
174
|
+
|
|
175
|
+
/** Dashboard metadata (GET /metadata/:tenant/dataObject?types=companies,...). */
|
|
176
|
+
window.EXAMPLE_COMPANY_METADATA = {
|
|
177
|
+
layoutType: 'OBJECT_DASHBOARD',
|
|
178
|
+
layouts: [
|
|
179
|
+
{
|
|
180
|
+
type: 'OBJECT_DASHBOARD',
|
|
181
|
+
label: '',
|
|
182
|
+
tabPage: false,
|
|
183
|
+
items: [
|
|
184
|
+
{ type: 'FIELD', label: 'company name', name: 'name', dataType: 'TEXT', required: true, header: true },
|
|
185
|
+
{ type: 'FIELD', label: 'legal name', name: 'legalName', dataType: 'TEXT', required: true },
|
|
186
|
+
{ type: 'FIELD', label: 'registration number', name: 'registrationNumber', dataType: 'TEXT', required: false },
|
|
187
|
+
{ type: 'FIELD', label: 'registration date', name: 'registrationDate', dataType: 'DATE', required: false },
|
|
188
|
+
// ACTION items are silently ignored by mrd-layout-section
|
|
189
|
+
{ type: 'ACTION', label: 'company register', name: 'CompanyRegister' },
|
|
190
|
+
],
|
|
191
|
+
},
|
|
192
|
+
{
|
|
193
|
+
type: 'OBJECT_DASHBOARD',
|
|
194
|
+
label: 'Registration details',
|
|
195
|
+
tabPage: true,
|
|
196
|
+
items: [
|
|
197
|
+
{ type: 'FIELD', label: 'legal form', name: 'legalForm', dataType: 'TEXT', required: false },
|
|
198
|
+
{ type: 'FIELD', label: 'legal form extended', name: 'legalFormExtended', dataType: 'TEXT', required: false },
|
|
199
|
+
{ type: 'FIELD', label: 'rsin', name: 'rsin', dataType: 'TEXT', required: false },
|
|
200
|
+
{ type: 'FIELD', label: 'start date', name: 'startDate', dataType: 'DATE', required: false },
|
|
201
|
+
{ type: 'FIELD', label: 'end date', name: 'endDate', dataType: 'DATE', required: false },
|
|
202
|
+
{ type: 'FIELD', label: 'primary activity description', name: 'primaryActivityDescription', dataType: 'TEXT', required: false },
|
|
203
|
+
{ type: 'FIELD', label: 'primary activity code', name: 'primaryActivityCode', dataType: 'TEXT', required: false },
|
|
204
|
+
{ type: 'FIELD', label: 'total employees', name: 'totalEmployees', dataType: 'INTEGER', required: false },
|
|
205
|
+
{ type: 'FIELD', label: 'no mailing', name: 'noMailing', dataType: 'BOOLEAN', required: false },
|
|
206
|
+
{ type: 'FIELD', label: 'verification date', name: 'verificationDate', dataType: 'DATETIME', required: false },
|
|
207
|
+
],
|
|
208
|
+
},
|
|
209
|
+
{
|
|
210
|
+
type: 'OBJECT_DASHBOARD',
|
|
211
|
+
label: 'Contact information',
|
|
212
|
+
tabPage: true,
|
|
213
|
+
items: [
|
|
214
|
+
{ type: 'FIELD', label: 'visit address', name: 'visitAddress', dataType: 'TEXT', required: false },
|
|
215
|
+
{ type: 'FIELD', label: 'visit postal code', name: 'visitPostalCode', dataType: 'TEXT', required: false },
|
|
216
|
+
{ type: 'FIELD', label: 'visit city', name: 'visitCity', dataType: 'TEXT', required: false },
|
|
217
|
+
{ type: 'FIELD', label: 'mailing address', name: 'mailingAddress', dataType: 'TEXT', required: false },
|
|
218
|
+
{ type: 'FIELD', label: 'mailing postal code', name: 'mailingPostalCode', dataType: 'TEXT', required: false },
|
|
219
|
+
{ type: 'FIELD', label: 'mailing city', name: 'mailingCity', dataType: 'TEXT', required: false },
|
|
220
|
+
{ type: 'RELATION', label: 'country', name: 'country', relatedClass: 'commons.country', mostSignificantClass: 'countries', required: false },
|
|
221
|
+
],
|
|
222
|
+
},
|
|
223
|
+
{
|
|
224
|
+
type: 'OBJECT_DASHBOARD',
|
|
225
|
+
label: 'Appointments',
|
|
226
|
+
tabPage: true,
|
|
227
|
+
items: [
|
|
228
|
+
{ type: 'RELATED_VIEW', label: 'Appointments', name: 'view0', relatedClass: 'appointments', showTitle: false },
|
|
229
|
+
],
|
|
230
|
+
},
|
|
231
|
+
{
|
|
232
|
+
type: 'OBJECT_DASHBOARD',
|
|
233
|
+
label: 'Share classes',
|
|
234
|
+
tabPage: true,
|
|
235
|
+
items: [
|
|
236
|
+
{
|
|
237
|
+
type: 'RELATED_VIEW', label: 'Share classes', name: 'view1', relatedClass: 'shareClasses', showTitle: false,
|
|
238
|
+
actions: ['NEW', 'EXPORT'],
|
|
239
|
+
createTypes: [
|
|
240
|
+
{ type: 'ordinaryShares', label: 'Ordinary shares' },
|
|
241
|
+
{ type: 'preferenceShares', label: 'Preference shares' },
|
|
242
|
+
],
|
|
243
|
+
},
|
|
244
|
+
],
|
|
245
|
+
},
|
|
246
|
+
],
|
|
247
|
+
views: {
|
|
248
|
+
view0: {
|
|
249
|
+
name: null,
|
|
250
|
+
defaultView: true,
|
|
251
|
+
defaultSort: 'name',
|
|
252
|
+
values: [
|
|
253
|
+
{ type: 'FIELD', label: 'name', name: 'name', dataType: 'TEXT', required: true },
|
|
254
|
+
{ type: 'RELATION', label: 'Officer', name: 'officer', relatedClass: 'housekeeping.officer', mostSignificantClass: 'entities', required: true },
|
|
255
|
+
{
|
|
256
|
+
type: 'FIELD', label: 'Authority', name: 'authority', dataType: 'LIST', required: false,
|
|
257
|
+
listItems: [
|
|
258
|
+
{ key: 'SOLE', label: 'Sole authority' },
|
|
259
|
+
{ key: 'JOINT', label: 'Joint authority' },
|
|
260
|
+
],
|
|
261
|
+
},
|
|
262
|
+
{ type: 'FIELD', label: 'start date', name: 'activeDate', dataType: 'DATE', required: false },
|
|
263
|
+
{ type: 'FIELD', label: 'end date', name: 'inactiveDate', dataType: 'DATE', required: false },
|
|
264
|
+
],
|
|
265
|
+
type: 'appointments',
|
|
266
|
+
singularLabel: 'Appointment',
|
|
267
|
+
pluralLabel: 'Appointments',
|
|
268
|
+
},
|
|
269
|
+
view1: {
|
|
270
|
+
name: null,
|
|
271
|
+
defaultView: true,
|
|
272
|
+
defaultSort: 'name',
|
|
273
|
+
values: [
|
|
274
|
+
{ type: 'FIELD', label: 'name', name: 'name', dataType: 'TEXT', required: true },
|
|
275
|
+
{ type: 'FIELD', label: 'Nominal value', name: 'nominalValue', dataType: 'TEXT', required: false },
|
|
276
|
+
{ type: 'FIELD', label: 'Currency', name: 'currency', dataType: 'TEXT', required: false },
|
|
277
|
+
{ type: 'FIELD', label: 'Authorised shares', name: 'authorizedShares', dataType: 'INTEGER', required: false },
|
|
278
|
+
],
|
|
279
|
+
type: 'shareClasses',
|
|
280
|
+
singularLabel: 'Share class',
|
|
281
|
+
pluralLabel: 'Share classes',
|
|
282
|
+
},
|
|
283
|
+
},
|
|
284
|
+
_links: {
|
|
285
|
+
view0: { href: '/data/demo/appointments' },
|
|
286
|
+
view1: { href: '/data/demo/shareClasses' },
|
|
287
|
+
},
|
|
288
|
+
};
|
|
289
|
+
|
|
290
|
+
/** Mock appointment rows for the embedded table. */
|
|
291
|
+
window.EXAMPLE_APPOINTMENTS = [
|
|
292
|
+
{
|
|
293
|
+
name: 'Directeur',
|
|
294
|
+
authority: 'SOLE',
|
|
295
|
+
activeDate: '2001-03-01',
|
|
296
|
+
inactiveDate: null,
|
|
297
|
+
_links: {
|
|
298
|
+
self: { href: '/data/demo/appointments/apt-1' },
|
|
299
|
+
officer: { href: '/data/demo/entities/person-1', name: 'A. Jansen' },
|
|
300
|
+
},
|
|
301
|
+
},
|
|
302
|
+
{
|
|
303
|
+
name: 'Commissaris',
|
|
304
|
+
authority: 'JOINT',
|
|
305
|
+
activeDate: '2018-03-01',
|
|
306
|
+
inactiveDate: null,
|
|
307
|
+
_links: {
|
|
308
|
+
self: { href: '/data/demo/appointments/apt-2' },
|
|
309
|
+
officer: { href: '/data/demo/entities/person-2', name: 'B. de Wit' },
|
|
310
|
+
},
|
|
311
|
+
},
|
|
312
|
+
];
|
|
313
|
+
|
|
314
|
+
/** Mock share class rows for the embedded table. */
|
|
315
|
+
window.EXAMPLE_SHARE_CLASSES = [
|
|
316
|
+
{
|
|
317
|
+
name: 'Gewone aandelen',
|
|
318
|
+
nominalValue: '1.00',
|
|
319
|
+
currency: 'EUR',
|
|
320
|
+
authorizedShares: 1800,
|
|
321
|
+
_links: { self: { href: '/data/demo/shareClasses/sc-1' } },
|
|
322
|
+
},
|
|
323
|
+
{
|
|
324
|
+
name: 'Preferente aandelen',
|
|
325
|
+
nominalValue: '1.00',
|
|
326
|
+
currency: 'EUR',
|
|
327
|
+
authorizedShares: 200,
|
|
328
|
+
_links: { self: { href: '/data/demo/shareClasses/sc-2' } },
|
|
329
|
+
},
|
|
330
|
+
];
|
|
331
|
+
|
|
332
|
+
// ─── Field Types demo ─────────────────────────────────────────────────────────
|
|
333
|
+
|
|
334
|
+
window.EXAMPLE_FIELD_TYPES_ITEMS = [
|
|
335
|
+
{ type: 'FIELD', label: 'Name (header)', name: 'fHeader', dataType: 'TEXT', required: false, header: true },
|
|
336
|
+
{ type: 'FIELD', label: 'Text', name: 'fText', dataType: 'TEXT', required: false },
|
|
337
|
+
{ type: 'FIELD', label: 'Email', name: 'fEmail', dataType: 'EMAIL', required: false },
|
|
338
|
+
{ type: 'FIELD', label: 'Hyperlink', name: 'fHyperlink', dataType: 'HYPERLINK', required: false },
|
|
339
|
+
{ type: 'FIELD', label: 'Integer', name: 'fInteger', dataType: 'INTEGER', required: false },
|
|
340
|
+
{ type: 'FIELD', label: 'Decimal', name: 'fDecimal', dataType: 'DECIMAL', required: false },
|
|
341
|
+
{ type: 'FIELD', label: 'Percentage', name: 'fPercentage', dataType: 'PERCENTAGE', required: false },
|
|
342
|
+
{ type: 'FIELD', label: 'Currency', name: 'fCurrency', dataType: 'CURRENCY', required: false },
|
|
343
|
+
{ type: 'FIELD', label: 'Boolean (true)', name: 'fBoolTrue', dataType: 'BOOLEAN', required: false },
|
|
344
|
+
{ type: 'FIELD', label: 'Boolean (false)', name: 'fBoolFalse', dataType: 'BOOLEAN', required: false },
|
|
345
|
+
{ type: 'FIELD', label: 'Date', name: 'fDate', dataType: 'DATE', required: false },
|
|
346
|
+
{ type: 'FIELD', label: 'DateTime', name: 'fDatetime', dataType: 'DATETIME', required: false },
|
|
347
|
+
{ type: 'FIELD', label: 'Time', name: 'fTime', dataType: 'TIME', required: false },
|
|
348
|
+
{
|
|
349
|
+
type: 'FIELD', label: 'List (no color)', name: 'fListPlain', dataType: 'LIST', required: false,
|
|
350
|
+
listItems: [{ key: 'a', label: 'Option A' }, { key: 'b', label: 'Option B' }],
|
|
351
|
+
},
|
|
352
|
+
{
|
|
353
|
+
type: 'FIELD', label: 'List (color only)', name: 'fListColor', dataType: 'LIST', required: false,
|
|
354
|
+
listItems: [
|
|
355
|
+
{ key: 'active', label: 'Active', color: '#16a34a' },
|
|
356
|
+
{ key: 'inactive', label: 'Inactive', color: '#dc2626' },
|
|
357
|
+
],
|
|
358
|
+
},
|
|
359
|
+
{
|
|
360
|
+
type: 'FIELD', label: 'List (color + bg)', name: 'fListBadge', dataType: 'LIST', required: false,
|
|
361
|
+
listItems: [
|
|
362
|
+
{ key: 'approved', label: 'Approved', color: '#14532d', backgroundColor: '#dcfce7' },
|
|
363
|
+
{ key: 'rejected', label: 'Rejected', color: '#7f1d1d', backgroundColor: '#fee2e2' },
|
|
364
|
+
{ key: 'pending', label: 'Pending', color: '#78350f', backgroundColor: '#fef3c7' },
|
|
365
|
+
],
|
|
366
|
+
},
|
|
367
|
+
{ type: 'SEARCH', label: 'Zoeken', dataClass: 'demo.entity' },
|
|
368
|
+
{ type: 'RELATION', label: 'Relation (single)', name: 'fRelation', relatedClass: 'demo.entity', required: false },
|
|
369
|
+
{ type: 'FIELD', label: 'File', name: 'fFile', dataType: 'FILE', required: false },
|
|
370
|
+
{ type: 'FIELD', label: 'Image', name: 'fImage', dataType: 'IMAGE', required: false },
|
|
371
|
+
{ type: 'FIELD', label: 'Textblock', name: 'fTextblock', dataType: 'TEXTBLOCK', required: false },
|
|
372
|
+
{ type: 'FIELD', label: 'Longtext', name: 'fLongtext', dataType: 'LONGTEXT', required: false },
|
|
373
|
+
{ type: 'FIELD', label: 'JSON', name: 'fJson', dataType: 'JSON', required: false },
|
|
374
|
+
{ type: 'FIELD', label: 'Secret', name: 'fSecret', dataType: 'SECRET', required: false },
|
|
375
|
+
];
|
|
376
|
+
|
|
377
|
+
window.EXAMPLE_FIELD_TYPES_DATA = {
|
|
378
|
+
fHeader: 'Voorbeeld Bedrijf B.V.',
|
|
379
|
+
fText: 'Voorbeeld tekst',
|
|
380
|
+
fEmail: 'info@example.com',
|
|
381
|
+
fHyperlink: { href: 'https://example.com', text: 'example.com' },
|
|
382
|
+
fInteger: 42,
|
|
383
|
+
fDecimal: 3.14159,
|
|
384
|
+
fPercentage: 0.7825,
|
|
385
|
+
fCurrency: { amount: 1250.50, currency: 'EUR' },
|
|
386
|
+
fBoolTrue: true,
|
|
387
|
+
fBoolFalse: false,
|
|
388
|
+
fDate: '2024-03-15',
|
|
389
|
+
fDatetime: '2024-03-15T14:30:00.000Z',
|
|
390
|
+
fTime: '14:30:00',
|
|
391
|
+
fListPlain: 'a',
|
|
392
|
+
fListColor: 'active',
|
|
393
|
+
fListBadge: 'approved',
|
|
394
|
+
fFile: { href: '/api/files/example-document', fileName: 'voorbeeld-document.pdf' },
|
|
395
|
+
fImage: { href: '/api/files/example-photo', fileName: 'voorbeeld-foto.jpg' },
|
|
396
|
+
fTextblock: '<p>Dit is een <strong>opgemaakte</strong> tekst met <em>html</em>-inhoud. Geschikt voor langere beschrijvingen met opmaak.</p>',
|
|
397
|
+
fLongtext: 'Dit is een langere stuk platte tekst zonder opmaak.\nHet kan meerdere regels bevatten en wordt getoond in een pre-blok zodat witruimte bewaard blijft.',
|
|
398
|
+
fJson: { id: 1, status: 'active', tags: ['alpha', 'beta'], meta: { created: '2024-01-01', valid: true } },
|
|
399
|
+
fSecret: 'sk-live-abc123xyz',
|
|
400
|
+
_links: {
|
|
401
|
+
fRelation: { href: '/data/demo/entities/person-1', name: 'A. Jansen' },
|
|
402
|
+
},
|
|
403
|
+
};
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
<svg aria-hidden="true" style="position: absolute; width: 0; height: 0; overflow: hidden;" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
2
|
+
<defs>
|
|
3
|
+
<symbol id="icon-search" viewBox="0 0 32 32">
|
|
4
|
+
<path d="M31.008 27.231l-7.58-6.447c-0.784-0.705-1.622-1.029-2.299-0.998 1.789-2.096 2.87-4.815 2.87-7.787 0-6.627-5.373-12-12-12s-12 5.373-12 12 5.373 12 12 12c2.972 0 5.691-1.081 7.787-2.87-0.031 0.677 0.293 1.515 0.998 2.299l6.447 7.58c1.104 1.226 2.907 1.33 4.007 0.23s0.997-2.903-0.23-4.007zM12 20c-4.418 0-8-3.582-8-8s3.582-8 8-8 8 3.582 8 8-3.582 8-8 8z"></path>
|
|
5
|
+
</symbol>
|
|
6
|
+
<symbol id="icon-bin" viewBox="0 0 32 32">
|
|
7
|
+
<path d="M4 10v20c0 1.1 0.9 2 2 2h18c1.1 0 2-0.9 2-2v-20h-22zM10 28h-2v-14h2v14zM14 28h-2v-14h2v14zM18 28h-2v-14h2v14zM22 28h-2v-14h2v14z"></path>
|
|
8
|
+
<path d="M26.5 4h-6.5v-2.5c0-0.825-0.675-1.5-1.5-1.5h-7c-0.825 0-1.5 0.675-1.5 1.5v2.5h-6.5c-0.825 0-1.5 0.675-1.5 1.5v2.5h26v-2.5c0-0.825-0.675-1.5-1.5-1.5zM18 4h-6v-1.975h6v1.975z"></path>
|
|
9
|
+
</symbol>
|
|
10
|
+
<symbol id="icon-plus" viewBox="0 0 32 32">
|
|
11
|
+
<path d="M31 12h-11v-11c0-0.552-0.448-1-1-1h-6c-0.552 0-1 0.448-1 1v11h-11c-0.552 0-1 0.448-1 1v6c0 0.552 0.448 1 1 1h11v11c0 0.552 0.448 1 1 1h6c0.552 0 1-0.448 1-1v-11h11c0.552 0 1-0.448 1-1v-6c0-0.552-0.448-1-1-1z"></path>
|
|
12
|
+
</symbol>
|
|
13
|
+
<symbol id="icon-cross" viewBox="0 0 32 32">
|
|
14
|
+
<path d="M31.708 25.708c-0-0-0-0-0-0l-9.708-9.708 9.708-9.708c0-0 0-0 0-0 0.105-0.105 0.18-0.227 0.229-0.357 0.133-0.356 0.057-0.771-0.229-1.057l-4.586-4.586c-0.286-0.286-0.702-0.361-1.057-0.229-0.13 0.048-0.252 0.124-0.357 0.228 0 0-0 0-0 0l-9.708 9.708-9.708-9.708c-0-0-0-0-0-0-0.105-0.104-0.227-0.18-0.357-0.228-0.356-0.133-0.771-0.057-1.057 0.229l-4.586 4.586c-0.286 0.286-0.361 0.702-0.229 1.057 0.049 0.13 0.124 0.252 0.229 0.357 0 0 0 0 0 0l9.708 9.708-9.708 9.708c-0 0-0 0-0 0-0.104 0.105-0.18 0.227-0.229 0.357-0.133 0.355-0.057 0.771 0.229 1.057l4.586 4.586c0.286 0.286 0.702 0.361 1.057 0.229 0.13-0.049 0.252-0.124 0.357-0.229 0-0 0-0 0-0l9.708-9.708 9.708 9.708c0 0 0 0 0 0 0.105 0.105 0.227 0.18 0.357 0.229 0.356 0.133 0.771 0.057 1.057-0.229l4.586-4.586c0.286-0.286 0.362-0.702 0.229-1.057-0.049-0.13-0.124-0.252-0.229-0.357z"></path>
|
|
15
|
+
</symbol>
|
|
16
|
+
<symbol id="icon-backward2" viewBox="0 0 32 32">
|
|
17
|
+
<path d="M18 5v10l10-10v22l-10-10v10l-11-11z"></path>
|
|
18
|
+
</symbol>
|
|
19
|
+
<symbol id="icon-forward3" viewBox="0 0 32 32">
|
|
20
|
+
<path d="M16 27v-10l-10 10v-22l10 10v-10l11 11z"></path>
|
|
21
|
+
</symbol>
|
|
22
|
+
<symbol id="icon-previous2" viewBox="0 0 32 32">
|
|
23
|
+
<path d="M8 28v-24h4v11l10-10v22l-10-10v11z"></path>
|
|
24
|
+
</symbol>
|
|
25
|
+
<symbol id="icon-next2" viewBox="0 0 32 32">
|
|
26
|
+
<path d="M24 4v24h-4v-11l-10 10v-22l10 10v-11z"></path>
|
|
27
|
+
</symbol>
|
|
28
|
+
<symbol id="icon-sort-alpha-asc" viewBox="0 0 32 32">
|
|
29
|
+
<path d="M10 24v-24h-4v24h-5l7 7 7-7h-5z"></path>
|
|
30
|
+
<path d="M29 32h-8c-0.369 0-0.708-0.203-0.882-0.528s-0.155-0.72 0.050-1.027l6.963-10.445h-6.131c-0.552 0-1-0.448-1-1s0.448-1 1-1h8c0.369 0 0.708 0.203 0.882 0.528s0.155 0.72-0.050 1.027l-6.963 10.445h6.131c0.552 0 1 0.448 1 1s-0.448 1-1 1z"></path>
|
|
31
|
+
<path d="M31.894 12.553l-6-12c-0.169-0.339-0.516-0.553-0.894-0.553s-0.725 0.214-0.895 0.553l-6 12c-0.247 0.494-0.047 1.095 0.447 1.342 0.144 0.072 0.296 0.106 0.447 0.106 0.367 0 0.72-0.203 0.895-0.553l1.724-3.447h6.764l1.724 3.447c0.247 0.494 0.848 0.694 1.342 0.447s0.694-0.848 0.447-1.342zM22.618 8l2.382-4.764 2.382 4.764h-4.764z"></path>
|
|
32
|
+
</symbol>
|
|
33
|
+
<symbol id="icon-sort-alpha-desc" viewBox="0 0 32 32">
|
|
34
|
+
<path d="M10 24v-24h-4v24h-5l7 7 7-7h-5z"></path>
|
|
35
|
+
<path d="M29 14h-8c-0.369 0-0.708-0.203-0.882-0.528s-0.155-0.72 0.050-1.027l6.963-10.445h-6.131c-0.552 0-1-0.448-1-1s0.448-1 1-1h8c0.369 0 0.708 0.203 0.882 0.528s0.155 0.72-0.050 1.027l-6.963 10.445h6.131c0.552 0 1 0.448 1 1s-0.448 1-1 1z"></path>
|
|
36
|
+
<path d="M31.894 30.553l-6-12c-0.169-0.339-0.516-0.553-0.894-0.553s-0.725 0.214-0.895 0.553l-6 12c-0.247 0.494-0.047 1.095 0.447 1.342 0.144 0.072 0.296 0.106 0.447 0.106 0.367 0 0.72-0.203 0.895-0.553l1.724-3.447h6.764l1.724 3.447c0.247 0.494 0.848 0.694 1.342 0.447s0.694-0.848 0.447-1.342zM22.618 26l2.382-4.764 2.382 4.764h-4.764z"></path>
|
|
37
|
+
</symbol>
|
|
38
|
+
<symbol id="icon-filter" viewBox="0 0 32 32">
|
|
39
|
+
<path d="M16 0c-8.837 0-16 2.239-16 5v3l12 12v10c0 1.105 1.791 2 4 2s4-0.895 4-2v-10l12-12v-3c0-2.761-7.163-5-16-5zM2.95 4.338c0.748-0.427 1.799-0.832 3.040-1.171 2.748-0.752 6.303-1.167 10.011-1.167s7.262 0.414 10.011 1.167c1.241 0.34 2.292 0.745 3.040 1.171 0.494 0.281 0.76 0.519 0.884 0.662-0.124 0.142-0.391 0.38-0.884 0.662-0.748 0.427-1.8 0.832-3.040 1.171-2.748 0.752-6.303 1.167-10.011 1.167s-7.262-0.414-10.011-1.167c-1.24-0.34-2.292-0.745-3.040-1.171-0.494-0.282-0.76-0.519-0.884-0.662 0.124-0.142 0.391-0.38 0.884-0.662z"></path>
|
|
40
|
+
</symbol>
|
|
41
|
+
<symbol id="icon-file-excel" viewBox="0 0 32 32">
|
|
42
|
+
<path d="M23.22 12h-4.228l-2.992 4.407-2.992-4.407h-4.228l5.068 7.577-5.718 8.423h7.87v-2.862h-1.567l1.567-2.344 3.481 5.205h4.389l-5.718-8.423 5.068-7.577z"></path>
|
|
43
|
+
<path d="M28.681 7.159c-0.694-0.947-1.662-2.053-2.724-3.116s-2.169-2.030-3.116-2.724c-1.612-1.182-2.393-1.319-2.841-1.319h-15.5c-1.378 0-2.5 1.121-2.5 2.5v27c0 1.378 1.121 2.5 2.5 2.5h23c1.378 0 2.5-1.122 2.5-2.5v-19.5c0-0.448-0.137-1.23-1.319-2.841v0zM24.543 5.457c0.959 0.959 1.712 1.825 2.268 2.543h-4.811v-4.811c0.718 0.556 1.584 1.309 2.543 2.268v0zM28 29.5c0 0.271-0.229 0.5-0.5 0.5h-23c-0.271 0-0.5-0.229-0.5-0.5v-27c0-0.271 0.229-0.5 0.5-0.5 0 0 15.499-0 15.5 0v7c0 0.552 0.448 1 1 1h7v19.5z"></path>
|
|
44
|
+
</symbol>
|
|
45
|
+
<symbol id="icon-pencil" viewBox="0 0 32 32">
|
|
46
|
+
<path d="M27.414 0.586c-0.781-0.781-2.048-0.781-2.828 0l-3.172 3.172 5.828 5.828 3.172-3.172c0.781-0.781 0.781-2.047 0-2.828l-3-3zM0 24v8h8l17.414-17.414-8-8-17.414 17.414zM6.828 28h-2.828v-2.828l12-12 2.828 2.828-12 12z"></path>
|
|
47
|
+
</symbol>
|
|
48
|
+
<symbol id="icon-ellipsis" viewBox="0 0 32 32">
|
|
49
|
+
<circle cx="4" cy="16" r="3.5"></circle>
|
|
50
|
+
<circle cx="16" cy="16" r="3.5"></circle>
|
|
51
|
+
<circle cx="28" cy="16" r="3.5"></circle>
|
|
52
|
+
</symbol>
|
|
53
|
+
</defs>
|
|
54
|
+
</svg>
|
|
55
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './types';
|