@fieldia/widgets 0.10.0 → 0.12.0
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/README.md +2 -1
- package/package.json +2 -2
- package/src/index.d.mts +2 -0
- package/src/index.d.ts +2 -0
- package/src/index.js +6 -1
- package/src/index.js.map +1 -1
- package/src/index.mjs +2 -0
- package/src/index.mjs.map +1 -1
- package/src/lib/badge.d.mts +8 -0
- package/src/lib/badge.d.ts +8 -0
- package/src/lib/badge.js +37 -0
- package/src/lib/badge.js.map +1 -0
- package/src/lib/badge.mjs +33 -0
- package/src/lib/badge.mjs.map +1 -0
- package/src/lib/calendar.d.mts +3 -1
- package/src/lib/calendar.d.ts +3 -1
- package/src/lib/calendar.js +17 -1
- package/src/lib/calendar.js.map +1 -1
- package/src/lib/calendar.mjs +17 -1
- package/src/lib/calendar.mjs.map +1 -1
- package/src/lib/cards.js +12 -4
- package/src/lib/cards.js.map +1 -1
- package/src/lib/cards.mjs +13 -5
- package/src/lib/cards.mjs.map +1 -1
- package/src/lib/choice-images.js +1 -1
- package/src/lib/choice-images.js.map +1 -1
- package/src/lib/choice-images.mjs +1 -1
- package/src/lib/choice-images.mjs.map +1 -1
- package/src/lib/choice-tags.js +2 -2
- package/src/lib/choice-tags.js.map +1 -1
- package/src/lib/choice-tags.mjs +2 -2
- package/src/lib/choice-tags.mjs.map +1 -1
- package/src/lib/colour.d.mts +11 -0
- package/src/lib/colour.d.ts +11 -0
- package/src/lib/colour.js +114 -0
- package/src/lib/colour.js.map +1 -0
- package/src/lib/colour.mjs +110 -0
- package/src/lib/colour.mjs.map +1 -0
- package/src/lib/copy.d.mts +8 -0
- package/src/lib/copy.d.ts +8 -0
- package/src/lib/copy.js +58 -0
- package/src/lib/copy.js.map +1 -0
- package/src/lib/copy.mjs +54 -0
- package/src/lib/copy.mjs.map +1 -0
- package/src/lib/date-range.d.mts +2 -0
- package/src/lib/date-range.d.ts +2 -0
- package/src/lib/date-range.js +220 -0
- package/src/lib/date-range.js.map +1 -0
- package/src/lib/date-range.mjs +216 -0
- package/src/lib/date-range.mjs.map +1 -0
- package/src/lib/display.d.mts +25 -1
- package/src/lib/display.d.ts +25 -1
- package/src/lib/display.js +42 -2
- package/src/lib/display.js.map +1 -1
- package/src/lib/display.mjs +39 -2
- package/src/lib/display.mjs.map +1 -1
- package/src/lib/distribution.d.mts +13 -0
- package/src/lib/distribution.d.ts +13 -0
- package/src/lib/distribution.js +159 -0
- package/src/lib/distribution.js.map +1 -0
- package/src/lib/distribution.mjs +152 -0
- package/src/lib/distribution.mjs.map +1 -0
- package/src/lib/duration.d.mts +18 -0
- package/src/lib/duration.d.ts +18 -0
- package/src/lib/duration.js +137 -0
- package/src/lib/duration.js.map +1 -0
- package/src/lib/duration.mjs +128 -0
- package/src/lib/duration.mjs.map +1 -0
- package/src/lib/embed.d.mts +3 -0
- package/src/lib/embed.d.ts +3 -0
- package/src/lib/embed.js +97 -0
- package/src/lib/embed.js.map +1 -0
- package/src/lib/embed.mjs +92 -0
- package/src/lib/embed.mjs.map +1 -0
- package/src/lib/extras.js +6 -0
- package/src/lib/extras.js.map +1 -1
- package/src/lib/extras.mjs +6 -0
- package/src/lib/extras.mjs.map +1 -1
- package/src/lib/files.d.mts +11 -0
- package/src/lib/files.d.ts +11 -0
- package/src/lib/files.js +86 -9
- package/src/lib/files.js.map +1 -1
- package/src/lib/files.mjs +85 -9
- package/src/lib/files.mjs.map +1 -1
- package/src/lib/kind-parts.d.mts +4 -3
- package/src/lib/kind-parts.d.ts +4 -3
- package/src/lib/kind-parts.js +5 -3
- package/src/lib/kind-parts.js.map +1 -1
- package/src/lib/kind-parts.mjs +5 -3
- package/src/lib/kind-parts.mjs.map +1 -1
- package/src/lib/labels.d.mts +42 -0
- package/src/lib/labels.d.ts +42 -0
- package/src/lib/labels.js +32 -0
- package/src/lib/labels.js.map +1 -1
- package/src/lib/labels.mjs +32 -0
- package/src/lib/labels.mjs.map +1 -1
- package/src/lib/layout-styles.d.mts +1 -1
- package/src/lib/layout-styles.d.ts +1 -1
- package/src/lib/layout-styles.js +2 -0
- package/src/lib/layout-styles.js.map +1 -1
- package/src/lib/layout-styles.mjs +2 -0
- package/src/lib/layout-styles.mjs.map +1 -1
- package/src/lib/lines.d.mts +12 -2
- package/src/lib/lines.d.ts +12 -2
- package/src/lib/lines.js +251 -15
- package/src/lib/lines.js.map +1 -1
- package/src/lib/lines.mjs +250 -16
- package/src/lib/lines.mjs.map +1 -1
- package/src/lib/links-table.d.mts +11 -0
- package/src/lib/links-table.d.ts +11 -0
- package/src/lib/links-table.js +116 -0
- package/src/lib/links-table.js.map +1 -0
- package/src/lib/links-table.mjs +112 -0
- package/src/lib/links-table.mjs.map +1 -0
- package/src/lib/locales/ar.js +32 -0
- package/src/lib/locales/ar.js.map +1 -1
- package/src/lib/locales/ar.mjs +32 -0
- package/src/lib/locales/ar.mjs.map +1 -1
- package/src/lib/locales/de.js +32 -0
- package/src/lib/locales/de.js.map +1 -1
- package/src/lib/locales/de.mjs +32 -0
- package/src/lib/locales/de.mjs.map +1 -1
- package/src/lib/locales/fr.js +32 -0
- package/src/lib/locales/fr.js.map +1 -1
- package/src/lib/locales/fr.mjs +32 -0
- package/src/lib/locales/fr.mjs.map +1 -1
- package/src/lib/payments.d.mts +2 -0
- package/src/lib/payments.d.ts +2 -0
- package/src/lib/payments.js +94 -0
- package/src/lib/payments.js.map +1 -0
- package/src/lib/payments.mjs +90 -0
- package/src/lib/payments.mjs.map +1 -0
- package/src/lib/popup.d.mts +11 -0
- package/src/lib/popup.d.ts +11 -0
- package/src/lib/popup.js +48 -0
- package/src/lib/popup.js.map +1 -0
- package/src/lib/popup.mjs +45 -0
- package/src/lib/popup.mjs.map +1 -0
- package/src/lib/priority.d.mts +10 -0
- package/src/lib/priority.d.ts +10 -0
- package/src/lib/priority.js +59 -0
- package/src/lib/priority.js.map +1 -0
- package/src/lib/priority.mjs +55 -0
- package/src/lib/priority.mjs.map +1 -0
- package/src/lib/progress.js +3 -0
- package/src/lib/progress.js.map +1 -1
- package/src/lib/progress.mjs +3 -0
- package/src/lib/progress.mjs.map +1 -1
- package/src/lib/properties.js +100 -9
- package/src/lib/properties.js.map +1 -1
- package/src/lib/properties.mjs +100 -9
- package/src/lib/properties.mjs.map +1 -1
- package/src/lib/read-text.d.mts +25 -0
- package/src/lib/read-text.d.ts +25 -0
- package/src/lib/read-text.js +102 -0
- package/src/lib/read-text.js.map +1 -0
- package/src/lib/read-text.mjs +98 -0
- package/src/lib/read-text.mjs.map +1 -0
- package/src/lib/relations.d.mts +12 -0
- package/src/lib/relations.d.ts +12 -0
- package/src/lib/relations.js +99 -8
- package/src/lib/relations.js.map +1 -1
- package/src/lib/relations.mjs +97 -8
- package/src/lib/relations.mjs.map +1 -1
- package/src/lib/slider.js +1 -1
- package/src/lib/slider.js.map +1 -1
- package/src/lib/slider.mjs +1 -1
- package/src/lib/slider.mjs.map +1 -1
- package/src/lib/state-dot.d.mts +2 -0
- package/src/lib/state-dot.d.ts +2 -0
- package/src/lib/state-dot.js +107 -0
- package/src/lib/state-dot.js.map +1 -0
- package/src/lib/state-dot.mjs +103 -0
- package/src/lib/state-dot.mjs.map +1 -0
- package/src/lib/statusbar.js +151 -14
- package/src/lib/statusbar.js.map +1 -1
- package/src/lib/statusbar.mjs +151 -14
- package/src/lib/statusbar.mjs.map +1 -1
- package/src/lib/styles-business.d.mts +8 -0
- package/src/lib/styles-business.d.ts +8 -0
- package/src/lib/styles-business.js +120 -0
- package/src/lib/styles-business.js.map +1 -0
- package/src/lib/styles-business.mjs +117 -0
- package/src/lib/styles-business.mjs.map +1 -0
- package/src/lib/styles-kinds.d.mts +1 -1
- package/src/lib/styles-kinds.d.ts +1 -1
- package/src/lib/styles-kinds.js +1 -1
- package/src/lib/styles-kinds.mjs +1 -1
- package/src/lib/styles-parts.d.mts +16 -0
- package/src/lib/styles-parts.d.ts +16 -0
- package/src/lib/styles-parts.js +69 -0
- package/src/lib/styles-parts.js.map +1 -0
- package/src/lib/styles-parts.mjs +66 -0
- package/src/lib/styles-parts.mjs.map +1 -0
- package/src/lib/styles-sheet.d.mts +6 -0
- package/src/lib/styles-sheet.d.ts +6 -0
- package/src/lib/styles-sheet.js +123 -0
- package/src/lib/styles-sheet.js.map +1 -0
- package/src/lib/styles-sheet.mjs +120 -0
- package/src/lib/styles-sheet.mjs.map +1 -0
- package/src/lib/styles.d.mts +10 -0
- package/src/lib/styles.d.ts +10 -0
- package/src/lib/styles.js +234 -19
- package/src/lib/styles.js.map +1 -1
- package/src/lib/styles.mjs +233 -18
- package/src/lib/styles.mjs.map +1 -1
- package/src/lib/tax-totals.d.mts +2 -0
- package/src/lib/tax-totals.d.ts +2 -0
- package/src/lib/tax-totals.js +92 -0
- package/src/lib/tax-totals.js.map +1 -0
- package/src/lib/tax-totals.mjs +88 -0
- package/src/lib/tax-totals.mjs.map +1 -0
- package/src/lib/timer.d.mts +4 -0
- package/src/lib/timer.d.ts +4 -0
- package/src/lib/timer.js +62 -0
- package/src/lib/timer.js.map +1 -0
- package/src/lib/timer.mjs +57 -0
- package/src/lib/timer.mjs.map +1 -0
- package/src/lib/widgets.d.mts +18 -3
- package/src/lib/widgets.d.ts +18 -3
- package/src/lib/widgets.js +63 -5
- package/src/lib/widgets.js.map +1 -1
- package/src/lib/widgets.mjs +63 -5
- package/src/lib/widgets.mjs.map +1 -1
- package/src/lib/yes-no.js +1 -1
- package/src/lib/yes-no.js.map +1 -1
- package/src/lib/yes-no.mjs +1 -1
- package/src/lib/yes-no.mjs.map +1 -1
package/src/lib/locales/fr.mjs
CHANGED
|
@@ -18,6 +18,11 @@ export const fr = {
|
|
|
18
18
|
searchMore: 'Rechercher plus…',
|
|
19
19
|
openNamed: 'Ouvrir {name}',
|
|
20
20
|
openLine: 'Ouvrir la ligne',
|
|
21
|
+
chooseLine: 'Choisir {name}',
|
|
22
|
+
chooseAllLines: 'Choisir toutes les lignes',
|
|
23
|
+
linesChosen: 'Choisies : {n}',
|
|
24
|
+
moreSteps: 'Plus',
|
|
25
|
+
timeInStep: '{time} à cette étape',
|
|
21
26
|
chooseDate: 'Choisir une date',
|
|
22
27
|
other: 'Autre :',
|
|
23
28
|
otherAnswer: 'Votre propre réponse',
|
|
@@ -67,6 +72,10 @@ export const fr = {
|
|
|
67
72
|
close: 'Fermer',
|
|
68
73
|
fileAt: '{n} sur {total}',
|
|
69
74
|
noPreview: 'Pas d’aperçu pour ce type de fichier',
|
|
75
|
+
showFilesAs: 'Affichage des fichiers',
|
|
76
|
+
asList: 'Liste',
|
|
77
|
+
asCards: 'Cartes',
|
|
78
|
+
asThumbnails: 'Vignettes',
|
|
70
79
|
invalidJson: 'JSON invalide',
|
|
71
80
|
signaturePad: 'Zone de signature : dessinez votre signature',
|
|
72
81
|
signHere: 'Signez ici',
|
|
@@ -97,5 +106,28 @@ export const fr = {
|
|
|
97
106
|
keepOrder: 'Garder cet ordre',
|
|
98
107
|
ofMax: '{n} sur {max}',
|
|
99
108
|
charactersLeft: 'Caractères restants : {n}',
|
|
109
|
+
colourNames: 'Aucune couleur|Rouge|Orange|Jaune|Cyan|Pourpre|Amande|Bleu canard|Bleu|Framboise|Vert|Violet',
|
|
110
|
+
copyValue: 'Copier',
|
|
111
|
+
copied: 'Copié',
|
|
112
|
+
noDocument: 'Pas encore de document',
|
|
113
|
+
openInNewTab: 'Ouvrir dans un nouvel onglet',
|
|
114
|
+
account: 'Compte',
|
|
115
|
+
share: 'Pourcentage',
|
|
116
|
+
addAccount: 'Ajouter un compte',
|
|
117
|
+
sharesOff: 'Les parts font {n}, pas 100 %',
|
|
118
|
+
untaxed: 'Montant hors taxes',
|
|
119
|
+
paidOn: 'Payé le {date}',
|
|
120
|
+
amountDue: 'Montant dû',
|
|
121
|
+
paymentOf: 'Paiement de {amount}',
|
|
122
|
+
journal: 'Journal',
|
|
123
|
+
memo: 'Libellé',
|
|
124
|
+
openPayment: 'Ouvrir',
|
|
125
|
+
addProperty: 'Ajouter une propriété',
|
|
126
|
+
propertyName: 'Nom de la propriété',
|
|
127
|
+
propertyType: 'Type',
|
|
128
|
+
propertyTypes: 'Texte|Texte long|Nombre entier|Nombre|Oui ou non|Date',
|
|
129
|
+
add: 'Ajouter',
|
|
130
|
+
cancel: 'Annuler',
|
|
131
|
+
loading: 'Chargement…',
|
|
100
132
|
};
|
|
101
133
|
//# sourceMappingURL=fr.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fr.mjs","sourceRoot":"","sources":["../../../../../../libs/widgets/src/lib/locales/fr.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"fr.mjs","sourceRoot":"","sources":["../../../../../../libs/widgets/src/lib/locales/fr.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.paymentsWidget = void 0;
|
|
4
|
+
const display_1 = require("./display");
|
|
5
|
+
const kind_parts_1 = require("./kind-parts");
|
|
6
|
+
const numbers_1 = require("./numbers");
|
|
7
|
+
const popup_1 = require("./popup");
|
|
8
|
+
const text = (value) => (typeof value === 'string' ? value : typeof value === 'number' ? String(value) : '');
|
|
9
|
+
function paymentsOf(value) {
|
|
10
|
+
const list = Array.isArray(value) ? value : value && typeof value === 'object' && Array.isArray(value.content) ? value.content : [];
|
|
11
|
+
return list
|
|
12
|
+
.filter((p) => p && typeof p === 'object')
|
|
13
|
+
.map((p) => ({
|
|
14
|
+
date: text(p['date']),
|
|
15
|
+
amount: typeof p['amount'] === 'number' ? p['amount'] : Number(p['amount']) || 0,
|
|
16
|
+
name: text(p['name']),
|
|
17
|
+
journal: text(p['journal_name'] ?? p['journal']),
|
|
18
|
+
memo: text(p['ref'] ?? p['memo']),
|
|
19
|
+
id: (p['account_payment_id'] ?? p['payment_id'] ?? p['id'] ?? null),
|
|
20
|
+
}));
|
|
21
|
+
}
|
|
22
|
+
const paymentsWidget = ({ node, id, document, labels, locale = 'en', dialogs }) => {
|
|
23
|
+
const make = (0, kind_parts_1.maker)(document);
|
|
24
|
+
const words = (0, kind_parts_1.wordsFor)(labels, locale);
|
|
25
|
+
const options = node.options ?? {};
|
|
26
|
+
const currencyField = typeof options['currencyField'] === 'string' ? options['currencyField'] : null;
|
|
27
|
+
const dueField = typeof options['dueField'] === 'string' ? options['dueField'] : null;
|
|
28
|
+
const model = typeof options['model'] === 'string' ? options['model'] : 'account.payment';
|
|
29
|
+
const list = make('ul', { class: 'fd-payments-list' });
|
|
30
|
+
const due = make('div', { class: 'fd-payment-due', hidden: '' });
|
|
31
|
+
const element = make('div', { id, class: 'fd-payments' }, list, due);
|
|
32
|
+
const dateField = { type: 'date', label: '' };
|
|
33
|
+
let drawn = '';
|
|
34
|
+
let closeOpen = null;
|
|
35
|
+
return {
|
|
36
|
+
element,
|
|
37
|
+
focus: () => list.querySelector('button')?.focus(),
|
|
38
|
+
destroy: () => closeOpen?.(),
|
|
39
|
+
update(state) {
|
|
40
|
+
const holder = currencyField ? state.values[currencyField] : null;
|
|
41
|
+
const code = holder && typeof holder === 'object' && 'label' in holder ? holder.label : typeof holder === 'string' ? holder : '';
|
|
42
|
+
const money = (n) => (/^[A-Z]{3}$/.test(code) ? (0, numbers_1.formatMoney)(n, code, 2, locale) : (0, numbers_1.formatNumber)(n, 2, locale));
|
|
43
|
+
const payments = paymentsOf(state.value);
|
|
44
|
+
const owed = dueField ? state.values[dueField] : null;
|
|
45
|
+
const key = JSON.stringify([payments, code, owed]);
|
|
46
|
+
if (key === drawn)
|
|
47
|
+
return;
|
|
48
|
+
drawn = key;
|
|
49
|
+
closeOpen?.();
|
|
50
|
+
list.replaceChildren(...payments.map((payment, n) => {
|
|
51
|
+
const amount = money(payment.amount);
|
|
52
|
+
const info = make('button', { type: 'button', class: 'fd-payment-info', 'aria-label': (0, kind_parts_1.fillIn)(words.paymentOf, { amount }), 'aria-haspopup': 'dialog', 'aria-expanded': 'false', 'aria-controls': `${id}-payment-${n}` }, 'i');
|
|
53
|
+
const detail = (label, value) => (value ? [make('dt', {}, label), make('dd', {}, value)] : []);
|
|
54
|
+
const open = payment.id !== null && dialogs?.canOpen(model) ? make('button', { type: 'button', class: 'fd-button fd-button-link fd-payment-open' }, words.openPayment) : null;
|
|
55
|
+
const details = make('div', { id: `${id}-payment-${n}`, class: 'fd-payment-details', role: 'dialog', 'aria-label': (0, kind_parts_1.fillIn)(words.paymentOf, { amount }), tabindex: '-1', hidden: '' }, make('strong', {}, payment.name || amount), make('span', { class: 'fd-payment-details-amount' }, amount), make('dl', {}, ...detail(words.journal, payment.journal), ...detail(words.memo, payment.memo)), ...(open ? [open] : []));
|
|
56
|
+
const row = make('li', { class: 'fd-payment' }, info, make('span', { class: 'fd-payment-date' }, (0, kind_parts_1.fillIn)(words.paidOn, { date: (0, display_1.displayValue)(dateField, payment.date, {}, locale) })), make('span', { class: 'fd-payment-amount' }, amount), details);
|
|
57
|
+
let refocus = false;
|
|
58
|
+
const floating = (0, popup_1.popup)(row, info, details, () => {
|
|
59
|
+
if (refocus)
|
|
60
|
+
info.focus();
|
|
61
|
+
refocus = false;
|
|
62
|
+
if (closeOpen === shut)
|
|
63
|
+
closeOpen = null;
|
|
64
|
+
});
|
|
65
|
+
const shut = () => floating.close();
|
|
66
|
+
info.addEventListener('click', () => {
|
|
67
|
+
if (floating.isOpen())
|
|
68
|
+
return shut();
|
|
69
|
+
closeOpen?.();
|
|
70
|
+
floating.open();
|
|
71
|
+
closeOpen = shut;
|
|
72
|
+
(open ?? details).focus();
|
|
73
|
+
});
|
|
74
|
+
details.addEventListener('keydown', (event) => {
|
|
75
|
+
if (event.key !== 'Escape')
|
|
76
|
+
return;
|
|
77
|
+
event.preventDefault();
|
|
78
|
+
event.stopPropagation();
|
|
79
|
+
refocus = true;
|
|
80
|
+
shut();
|
|
81
|
+
});
|
|
82
|
+
open?.addEventListener('click', () => {
|
|
83
|
+
shut();
|
|
84
|
+
void dialogs?.openRecord(model, { recordId: payment.id, title: payment.name || amount });
|
|
85
|
+
});
|
|
86
|
+
return row;
|
|
87
|
+
}));
|
|
88
|
+
due.hidden = owed === null || owed === undefined;
|
|
89
|
+
due.replaceChildren(make('span', {}, words.amountDue), make('strong', {}, typeof owed === 'number' ? money(owed) : ''));
|
|
90
|
+
},
|
|
91
|
+
};
|
|
92
|
+
};
|
|
93
|
+
exports.paymentsWidget = paymentsWidget;
|
|
94
|
+
//# sourceMappingURL=payments.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"payments.js","sourceRoot":"","sources":["../../../../../libs/widgets/src/lib/payments.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { displayValue } from './display.mjs';
|
|
2
|
+
import { fillIn, maker, wordsFor } from './kind-parts.mjs';
|
|
3
|
+
import { formatMoney, formatNumber } from './numbers.mjs';
|
|
4
|
+
import { popup } from './popup.mjs';
|
|
5
|
+
const text = (value) => (typeof value === 'string' ? value : typeof value === 'number' ? String(value) : '');
|
|
6
|
+
function paymentsOf(value) {
|
|
7
|
+
const list = Array.isArray(value) ? value : value && typeof value === 'object' && Array.isArray(value.content) ? value.content : [];
|
|
8
|
+
return list
|
|
9
|
+
.filter((p) => p && typeof p === 'object')
|
|
10
|
+
.map((p) => ({
|
|
11
|
+
date: text(p['date']),
|
|
12
|
+
amount: typeof p['amount'] === 'number' ? p['amount'] : Number(p['amount']) || 0,
|
|
13
|
+
name: text(p['name']),
|
|
14
|
+
journal: text(p['journal_name'] ?? p['journal']),
|
|
15
|
+
memo: text(p['ref'] ?? p['memo']),
|
|
16
|
+
id: (p['account_payment_id'] ?? p['payment_id'] ?? p['id'] ?? null),
|
|
17
|
+
}));
|
|
18
|
+
}
|
|
19
|
+
export const paymentsWidget = ({ node, id, document, labels, locale = 'en', dialogs }) => {
|
|
20
|
+
const make = maker(document);
|
|
21
|
+
const words = wordsFor(labels, locale);
|
|
22
|
+
const options = node.options ?? {};
|
|
23
|
+
const currencyField = typeof options['currencyField'] === 'string' ? options['currencyField'] : null;
|
|
24
|
+
const dueField = typeof options['dueField'] === 'string' ? options['dueField'] : null;
|
|
25
|
+
const model = typeof options['model'] === 'string' ? options['model'] : 'account.payment';
|
|
26
|
+
const list = make('ul', { class: 'fd-payments-list' });
|
|
27
|
+
const due = make('div', { class: 'fd-payment-due', hidden: '' });
|
|
28
|
+
const element = make('div', { id, class: 'fd-payments' }, list, due);
|
|
29
|
+
const dateField = { type: 'date', label: '' };
|
|
30
|
+
let drawn = '';
|
|
31
|
+
let closeOpen = null;
|
|
32
|
+
return {
|
|
33
|
+
element,
|
|
34
|
+
focus: () => list.querySelector('button')?.focus(),
|
|
35
|
+
destroy: () => closeOpen?.(),
|
|
36
|
+
update(state) {
|
|
37
|
+
const holder = currencyField ? state.values[currencyField] : null;
|
|
38
|
+
const code = holder && typeof holder === 'object' && 'label' in holder ? holder.label : typeof holder === 'string' ? holder : '';
|
|
39
|
+
const money = (n) => (/^[A-Z]{3}$/.test(code) ? formatMoney(n, code, 2, locale) : formatNumber(n, 2, locale));
|
|
40
|
+
const payments = paymentsOf(state.value);
|
|
41
|
+
const owed = dueField ? state.values[dueField] : null;
|
|
42
|
+
const key = JSON.stringify([payments, code, owed]);
|
|
43
|
+
if (key === drawn)
|
|
44
|
+
return;
|
|
45
|
+
drawn = key;
|
|
46
|
+
closeOpen?.();
|
|
47
|
+
list.replaceChildren(...payments.map((payment, n) => {
|
|
48
|
+
const amount = money(payment.amount);
|
|
49
|
+
const info = make('button', { type: 'button', class: 'fd-payment-info', 'aria-label': fillIn(words.paymentOf, { amount }), 'aria-haspopup': 'dialog', 'aria-expanded': 'false', 'aria-controls': `${id}-payment-${n}` }, 'i');
|
|
50
|
+
const detail = (label, value) => (value ? [make('dt', {}, label), make('dd', {}, value)] : []);
|
|
51
|
+
const open = payment.id !== null && dialogs?.canOpen(model) ? make('button', { type: 'button', class: 'fd-button fd-button-link fd-payment-open' }, words.openPayment) : null;
|
|
52
|
+
const details = make('div', { id: `${id}-payment-${n}`, class: 'fd-payment-details', role: 'dialog', 'aria-label': fillIn(words.paymentOf, { amount }), tabindex: '-1', hidden: '' }, make('strong', {}, payment.name || amount), make('span', { class: 'fd-payment-details-amount' }, amount), make('dl', {}, ...detail(words.journal, payment.journal), ...detail(words.memo, payment.memo)), ...(open ? [open] : []));
|
|
53
|
+
const row = make('li', { class: 'fd-payment' }, info, make('span', { class: 'fd-payment-date' }, fillIn(words.paidOn, { date: displayValue(dateField, payment.date, {}, locale) })), make('span', { class: 'fd-payment-amount' }, amount), details);
|
|
54
|
+
let refocus = false;
|
|
55
|
+
const floating = popup(row, info, details, () => {
|
|
56
|
+
if (refocus)
|
|
57
|
+
info.focus();
|
|
58
|
+
refocus = false;
|
|
59
|
+
if (closeOpen === shut)
|
|
60
|
+
closeOpen = null;
|
|
61
|
+
});
|
|
62
|
+
const shut = () => floating.close();
|
|
63
|
+
info.addEventListener('click', () => {
|
|
64
|
+
if (floating.isOpen())
|
|
65
|
+
return shut();
|
|
66
|
+
closeOpen?.();
|
|
67
|
+
floating.open();
|
|
68
|
+
closeOpen = shut;
|
|
69
|
+
(open ?? details).focus();
|
|
70
|
+
});
|
|
71
|
+
details.addEventListener('keydown', (event) => {
|
|
72
|
+
if (event.key !== 'Escape')
|
|
73
|
+
return;
|
|
74
|
+
event.preventDefault();
|
|
75
|
+
event.stopPropagation();
|
|
76
|
+
refocus = true;
|
|
77
|
+
shut();
|
|
78
|
+
});
|
|
79
|
+
open?.addEventListener('click', () => {
|
|
80
|
+
shut();
|
|
81
|
+
void dialogs?.openRecord(model, { recordId: payment.id, title: payment.name || amount });
|
|
82
|
+
});
|
|
83
|
+
return row;
|
|
84
|
+
}));
|
|
85
|
+
due.hidden = owed === null || owed === undefined;
|
|
86
|
+
due.replaceChildren(make('span', {}, words.amountDue), make('strong', {}, typeof owed === 'number' ? money(owed) : ''));
|
|
87
|
+
},
|
|
88
|
+
};
|
|
89
|
+
};
|
|
90
|
+
//# sourceMappingURL=payments.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"payments.mjs","sourceRoot":"","sources":["../../../../../libs/widgets/src/lib/payments.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A small menu or palette under the control that opens it: in a form it
|
|
3
|
+
* floats over the page from there, so a table's cell or a folded part never
|
|
4
|
+
* clips it, and goes back into its widget when it closes. A press outside it
|
|
5
|
+
* closes it.
|
|
6
|
+
*/
|
|
7
|
+
export declare function popup(home: HTMLElement, anchor: HTMLElement, box: HTMLElement, onClose: () => void): {
|
|
8
|
+
open: () => void;
|
|
9
|
+
close: () => void;
|
|
10
|
+
isOpen: () => boolean;
|
|
11
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A small menu or palette under the control that opens it: in a form it
|
|
3
|
+
* floats over the page from there, so a table's cell or a folded part never
|
|
4
|
+
* clips it, and goes back into its widget when it closes. A press outside it
|
|
5
|
+
* closes it.
|
|
6
|
+
*/
|
|
7
|
+
export declare function popup(home: HTMLElement, anchor: HTMLElement, box: HTMLElement, onClose: () => void): {
|
|
8
|
+
open: () => void;
|
|
9
|
+
close: () => void;
|
|
10
|
+
isOpen: () => boolean;
|
|
11
|
+
};
|
package/src/lib/popup.js
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.popup = popup;
|
|
4
|
+
/**
|
|
5
|
+
* A small menu or palette under the control that opens it: in a form it
|
|
6
|
+
* floats over the page from there, so a table's cell or a folded part never
|
|
7
|
+
* clips it, and goes back into its widget when it closes. A press outside it
|
|
8
|
+
* closes it.
|
|
9
|
+
*/
|
|
10
|
+
function popup(home, anchor, box, onClose) {
|
|
11
|
+
const doc = home.ownerDocument;
|
|
12
|
+
const outside = (event) => {
|
|
13
|
+
if (!box.contains(event.target) && !anchor.contains(event.target))
|
|
14
|
+
close();
|
|
15
|
+
};
|
|
16
|
+
function open() {
|
|
17
|
+
box.hidden = false;
|
|
18
|
+
anchor.setAttribute('aria-expanded', 'true');
|
|
19
|
+
const host = home.closest('.fd-form');
|
|
20
|
+
if (host) {
|
|
21
|
+
host.append(box);
|
|
22
|
+
// Placed at its containing block's origin first, then moved from there to the anchor: right whatever block that is.
|
|
23
|
+
Object.assign(box.style, { position: 'absolute', top: '0px', left: '0px', right: 'auto' });
|
|
24
|
+
const [a, origin, own] = [anchor.getBoundingClientRect(), box.getBoundingClientRect(), box.offsetWidth];
|
|
25
|
+
const rtl = getComputedStyle(home).direction === 'rtl';
|
|
26
|
+
// Its edge at the anchor's, the start edge of the page's language; kept on the screen.
|
|
27
|
+
const width = doc.documentElement.clientWidth || own;
|
|
28
|
+
const at = Math.max(8, Math.min(rtl ? a.right - own : a.left, width - own - 8));
|
|
29
|
+
Object.assign(box.style, { top: `${a.bottom - origin.top + 4}px`, left: `${at - origin.left}px` });
|
|
30
|
+
}
|
|
31
|
+
doc.addEventListener('pointerdown', outside, true);
|
|
32
|
+
}
|
|
33
|
+
function close() {
|
|
34
|
+
if (box.hidden)
|
|
35
|
+
return;
|
|
36
|
+
box.hidden = true;
|
|
37
|
+
anchor.setAttribute('aria-expanded', 'false');
|
|
38
|
+
if (box.parentElement !== home) {
|
|
39
|
+
home.append(box);
|
|
40
|
+
for (const key of ['position', 'top', 'left', 'right'])
|
|
41
|
+
box.style.removeProperty(key);
|
|
42
|
+
}
|
|
43
|
+
doc.removeEventListener('pointerdown', outside, true);
|
|
44
|
+
onClose();
|
|
45
|
+
}
|
|
46
|
+
return { open, close, isOpen: () => !box.hidden };
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=popup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"popup.js","sourceRoot":"","sources":["../../../../../libs/widgets/src/lib/popup.ts"],"names":[],"mappings":";;AAMA,sBAkCC;AAxCD;;;;;GAKG;AACH,SAAgB,KAAK,CAAC,IAAiB,EAAE,MAAmB,EAAE,GAAgB,EAAE,OAAmB;IACjG,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC;IAC/B,MAAM,OAAO,GAAG,CAAC,KAAY,EAAE,EAAE;QAC/B,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAc,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAc,CAAC;YAAE,KAAK,EAAE,CAAC;IAC7F,CAAC,CAAC;IACF,SAAS,IAAI;QACX,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC;QACnB,MAAM,CAAC,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;QAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAc,UAAU,CAAC,CAAC;QACnD,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjB,oHAAoH;YACpH,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;YAC3F,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,qBAAqB,EAAE,EAAE,GAAG,CAAC,qBAAqB,EAAE,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC;YACxG,MAAM,GAAG,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC,SAAS,KAAK,KAAK,CAAC;YACvD,uFAAuF;YACvF,MAAM,KAAK,GAAG,GAAG,CAAC,eAAe,CAAC,WAAW,IAAI,GAAG,CAAC;YACrD,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;YAChF,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QACrG,CAAC;QACD,GAAG,CAAC,gBAAgB,CAAC,aAAa,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IACrD,CAAC;IACD,SAAS,KAAK;QACZ,IAAI,GAAG,CAAC,MAAM;YAAE,OAAO;QACvB,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC;QAClB,MAAM,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;QAC9C,IAAI,GAAG,CAAC,aAAa,KAAK,IAAI,EAAE,CAAC;YAC/B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjB,KAAK,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAU;gBAAE,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QACjG,CAAC;QACD,GAAG,CAAC,mBAAmB,CAAC,aAAa,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;QACtD,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;AACpD,CAAC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A small menu or palette under the control that opens it: in a form it
|
|
3
|
+
* floats over the page from there, so a table's cell or a folded part never
|
|
4
|
+
* clips it, and goes back into its widget when it closes. A press outside it
|
|
5
|
+
* closes it.
|
|
6
|
+
*/
|
|
7
|
+
export function popup(home, anchor, box, onClose) {
|
|
8
|
+
const doc = home.ownerDocument;
|
|
9
|
+
const outside = (event) => {
|
|
10
|
+
if (!box.contains(event.target) && !anchor.contains(event.target))
|
|
11
|
+
close();
|
|
12
|
+
};
|
|
13
|
+
function open() {
|
|
14
|
+
box.hidden = false;
|
|
15
|
+
anchor.setAttribute('aria-expanded', 'true');
|
|
16
|
+
const host = home.closest('.fd-form');
|
|
17
|
+
if (host) {
|
|
18
|
+
host.append(box);
|
|
19
|
+
// Placed at its containing block's origin first, then moved from there to the anchor: right whatever block that is.
|
|
20
|
+
Object.assign(box.style, { position: 'absolute', top: '0px', left: '0px', right: 'auto' });
|
|
21
|
+
const [a, origin, own] = [anchor.getBoundingClientRect(), box.getBoundingClientRect(), box.offsetWidth];
|
|
22
|
+
const rtl = getComputedStyle(home).direction === 'rtl';
|
|
23
|
+
// Its edge at the anchor's, the start edge of the page's language; kept on the screen.
|
|
24
|
+
const width = doc.documentElement.clientWidth || own;
|
|
25
|
+
const at = Math.max(8, Math.min(rtl ? a.right - own : a.left, width - own - 8));
|
|
26
|
+
Object.assign(box.style, { top: `${a.bottom - origin.top + 4}px`, left: `${at - origin.left}px` });
|
|
27
|
+
}
|
|
28
|
+
doc.addEventListener('pointerdown', outside, true);
|
|
29
|
+
}
|
|
30
|
+
function close() {
|
|
31
|
+
if (box.hidden)
|
|
32
|
+
return;
|
|
33
|
+
box.hidden = true;
|
|
34
|
+
anchor.setAttribute('aria-expanded', 'false');
|
|
35
|
+
if (box.parentElement !== home) {
|
|
36
|
+
home.append(box);
|
|
37
|
+
for (const key of ['position', 'top', 'left', 'right'])
|
|
38
|
+
box.style.removeProperty(key);
|
|
39
|
+
}
|
|
40
|
+
doc.removeEventListener('pointerdown', outside, true);
|
|
41
|
+
onClose();
|
|
42
|
+
}
|
|
43
|
+
return { open, close, isOpen: () => !box.hidden };
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=popup.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"popup.mjs","sourceRoot":"","sources":["../../../../../libs/widgets/src/lib/popup.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,UAAU,KAAK,CAAC,IAAiB,EAAE,MAAmB,EAAE,GAAgB,EAAE,OAAmB;IACjG,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC;IAC/B,MAAM,OAAO,GAAG,CAAC,KAAY,EAAE,EAAE;QAC/B,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAc,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAc,CAAC;YAAE,KAAK,EAAE,CAAC;IAC7F,CAAC,CAAC;IACF,SAAS,IAAI;QACX,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC;QACnB,MAAM,CAAC,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;QAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAc,UAAU,CAAC,CAAC;QACnD,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjB,oHAAoH;YACpH,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;YAC3F,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,qBAAqB,EAAE,EAAE,GAAG,CAAC,qBAAqB,EAAE,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC;YACxG,MAAM,GAAG,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC,SAAS,KAAK,KAAK,CAAC;YACvD,uFAAuF;YACvF,MAAM,KAAK,GAAG,GAAG,CAAC,eAAe,CAAC,WAAW,IAAI,GAAG,CAAC;YACrD,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;YAChF,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QACrG,CAAC;QACD,GAAG,CAAC,gBAAgB,CAAC,aAAa,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IACrD,CAAC;IACD,SAAS,KAAK;QACZ,IAAI,GAAG,CAAC,MAAM;YAAE,OAAO;QACvB,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC;QAClB,MAAM,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;QAC9C,IAAI,GAAG,CAAC,aAAa,KAAK,IAAI,EAAE,CAAC;YAC/B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjB,KAAK,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAU;gBAAE,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QACjG,CAAC;QACD,GAAG,CAAC,mBAAmB,CAAC,aAAa,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;QACtD,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;AACpD,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { WidgetFactory } from './widgets.mjs';
|
|
2
|
+
/**
|
|
3
|
+
* Priority stars: Flectra's widget="priority". Over a selection, a star for
|
|
4
|
+
* each option after the first — '0'…'3' is three stars, '0'/'1' one — the
|
|
5
|
+
* first option meaning none; over a yes or no, one star. The star picked,
|
|
6
|
+
* clicked again, takes the stars back to none, so no "Clear selection" is
|
|
7
|
+
* needed. A group of radios, each named by its option; the arrow keys move
|
|
8
|
+
* one star at a time, mirrored right to left.
|
|
9
|
+
*/
|
|
10
|
+
export declare const priorityWidget: WidgetFactory;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { WidgetFactory } from './widgets';
|
|
2
|
+
/**
|
|
3
|
+
* Priority stars: Flectra's widget="priority". Over a selection, a star for
|
|
4
|
+
* each option after the first — '0'…'3' is three stars, '0'/'1' one — the
|
|
5
|
+
* first option meaning none; over a yes or no, one star. The star picked,
|
|
6
|
+
* clicked again, takes the stars back to none, so no "Clear selection" is
|
|
7
|
+
* needed. A group of radios, each named by its option; the arrow keys move
|
|
8
|
+
* one star at a time, mirrored right to left.
|
|
9
|
+
*/
|
|
10
|
+
export declare const priorityWidget: WidgetFactory;
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.priorityWidget = void 0;
|
|
4
|
+
const kind_parts_1 = require("./kind-parts");
|
|
5
|
+
/**
|
|
6
|
+
* Priority stars: Flectra's widget="priority". Over a selection, a star for
|
|
7
|
+
* each option after the first — '0'…'3' is three stars, '0'/'1' one — the
|
|
8
|
+
* first option meaning none; over a yes or no, one star. The star picked,
|
|
9
|
+
* clicked again, takes the stars back to none, so no "Clear selection" is
|
|
10
|
+
* needed. A group of radios, each named by its option; the arrow keys move
|
|
11
|
+
* one star at a time, mirrored right to left.
|
|
12
|
+
*/
|
|
13
|
+
const priorityWidget = ({ form, name, field, id, document }) => {
|
|
14
|
+
const make = (0, kind_parts_1.maker)(document);
|
|
15
|
+
// The levels in order, the first being none: a selection's options, or no and yes.
|
|
16
|
+
const levels = field.type === 'selection' ? field.options.map((option) => ({ value: option.value, label: option.label })) : [{ value: false, label: '' }, { value: true, label: field.label }];
|
|
17
|
+
const group = make('div', { id, class: 'fd-priority', role: 'radiogroup' });
|
|
18
|
+
const stars = levels.slice(1).map((level, i) => {
|
|
19
|
+
const star = make('button', { type: 'button', role: 'radio', class: 'fd-priority-star', 'aria-label': level.label, title: level.label, 'data-value': String(level.value) }, '★');
|
|
20
|
+
star.addEventListener('click', () => form.setValue(name, levelOf(form.getState().values[name]) === i + 1 ? levels[0].value : level.value));
|
|
21
|
+
group.append(star);
|
|
22
|
+
return star;
|
|
23
|
+
});
|
|
24
|
+
const levelOf = (value) => Math.max(0, levels.findIndex((level) => level.value === value));
|
|
25
|
+
let readonly = false;
|
|
26
|
+
group.addEventListener('keydown', (event) => {
|
|
27
|
+
if (readonly)
|
|
28
|
+
return;
|
|
29
|
+
const forward = (0, kind_parts_1.rightToLeft)(group) ? 'ArrowLeft' : 'ArrowRight';
|
|
30
|
+
const back = (0, kind_parts_1.rightToLeft)(group) ? 'ArrowRight' : 'ArrowLeft';
|
|
31
|
+
const step = event.key === forward || event.key === 'ArrowUp' ? 1 : event.key === back || event.key === 'ArrowDown' ? -1 : 0;
|
|
32
|
+
if (!step)
|
|
33
|
+
return;
|
|
34
|
+
event.preventDefault();
|
|
35
|
+
const next = Math.min(levels.length - 1, Math.max(0, levelOf(form.getState().values[name]) + step));
|
|
36
|
+
form.setValue(name, levels[next].value);
|
|
37
|
+
stars[Math.max(0, next - 1)]?.focus();
|
|
38
|
+
});
|
|
39
|
+
return {
|
|
40
|
+
element: group,
|
|
41
|
+
focus: () => (stars.find((star) => star.tabIndex === 0) ?? stars[0])?.focus(),
|
|
42
|
+
update(state) {
|
|
43
|
+
readonly = state.readonly;
|
|
44
|
+
const level = levelOf(state.value);
|
|
45
|
+
stars.forEach((star, i) => {
|
|
46
|
+
(0, kind_parts_1.setAttr)(star, 'aria-checked', String(level === i + 1));
|
|
47
|
+
star.classList.toggle('fd-on', i < level);
|
|
48
|
+
const tab = level === i + 1 || (level === 0 && i === 0) ? 0 : -1;
|
|
49
|
+
if (star.tabIndex !== tab)
|
|
50
|
+
star.tabIndex = tab;
|
|
51
|
+
if (star.disabled !== state.readonly)
|
|
52
|
+
star.disabled = state.readonly;
|
|
53
|
+
});
|
|
54
|
+
(0, kind_parts_1.describeState)(group, state);
|
|
55
|
+
},
|
|
56
|
+
};
|
|
57
|
+
};
|
|
58
|
+
exports.priorityWidget = priorityWidget;
|
|
59
|
+
//# sourceMappingURL=priority.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"priority.js","sourceRoot":"","sources":["../../../../../libs/widgets/src/lib/priority.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { describeState, maker, rightToLeft, setAttr } from './kind-parts.mjs';
|
|
2
|
+
/**
|
|
3
|
+
* Priority stars: Flectra's widget="priority". Over a selection, a star for
|
|
4
|
+
* each option after the first — '0'…'3' is three stars, '0'/'1' one — the
|
|
5
|
+
* first option meaning none; over a yes or no, one star. The star picked,
|
|
6
|
+
* clicked again, takes the stars back to none, so no "Clear selection" is
|
|
7
|
+
* needed. A group of radios, each named by its option; the arrow keys move
|
|
8
|
+
* one star at a time, mirrored right to left.
|
|
9
|
+
*/
|
|
10
|
+
export const priorityWidget = ({ form, name, field, id, document }) => {
|
|
11
|
+
const make = maker(document);
|
|
12
|
+
// The levels in order, the first being none: a selection's options, or no and yes.
|
|
13
|
+
const levels = field.type === 'selection' ? field.options.map((option) => ({ value: option.value, label: option.label })) : [{ value: false, label: '' }, { value: true, label: field.label }];
|
|
14
|
+
const group = make('div', { id, class: 'fd-priority', role: 'radiogroup' });
|
|
15
|
+
const stars = levels.slice(1).map((level, i) => {
|
|
16
|
+
const star = make('button', { type: 'button', role: 'radio', class: 'fd-priority-star', 'aria-label': level.label, title: level.label, 'data-value': String(level.value) }, '★');
|
|
17
|
+
star.addEventListener('click', () => form.setValue(name, levelOf(form.getState().values[name]) === i + 1 ? levels[0].value : level.value));
|
|
18
|
+
group.append(star);
|
|
19
|
+
return star;
|
|
20
|
+
});
|
|
21
|
+
const levelOf = (value) => Math.max(0, levels.findIndex((level) => level.value === value));
|
|
22
|
+
let readonly = false;
|
|
23
|
+
group.addEventListener('keydown', (event) => {
|
|
24
|
+
if (readonly)
|
|
25
|
+
return;
|
|
26
|
+
const forward = rightToLeft(group) ? 'ArrowLeft' : 'ArrowRight';
|
|
27
|
+
const back = rightToLeft(group) ? 'ArrowRight' : 'ArrowLeft';
|
|
28
|
+
const step = event.key === forward || event.key === 'ArrowUp' ? 1 : event.key === back || event.key === 'ArrowDown' ? -1 : 0;
|
|
29
|
+
if (!step)
|
|
30
|
+
return;
|
|
31
|
+
event.preventDefault();
|
|
32
|
+
const next = Math.min(levels.length - 1, Math.max(0, levelOf(form.getState().values[name]) + step));
|
|
33
|
+
form.setValue(name, levels[next].value);
|
|
34
|
+
stars[Math.max(0, next - 1)]?.focus();
|
|
35
|
+
});
|
|
36
|
+
return {
|
|
37
|
+
element: group,
|
|
38
|
+
focus: () => (stars.find((star) => star.tabIndex === 0) ?? stars[0])?.focus(),
|
|
39
|
+
update(state) {
|
|
40
|
+
readonly = state.readonly;
|
|
41
|
+
const level = levelOf(state.value);
|
|
42
|
+
stars.forEach((star, i) => {
|
|
43
|
+
setAttr(star, 'aria-checked', String(level === i + 1));
|
|
44
|
+
star.classList.toggle('fd-on', i < level);
|
|
45
|
+
const tab = level === i + 1 || (level === 0 && i === 0) ? 0 : -1;
|
|
46
|
+
if (star.tabIndex !== tab)
|
|
47
|
+
star.tabIndex = tab;
|
|
48
|
+
if (star.disabled !== state.readonly)
|
|
49
|
+
star.disabled = state.readonly;
|
|
50
|
+
});
|
|
51
|
+
describeState(group, state);
|
|
52
|
+
},
|
|
53
|
+
};
|
|
54
|
+
};
|
|
55
|
+
//# sourceMappingURL=priority.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"priority.mjs","sourceRoot":"","sources":["../../../../../libs/widgets/src/lib/priority.ts"],"names":[],"mappings":"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"}
|
package/src/lib/progress.js
CHANGED
|
@@ -53,6 +53,9 @@ const progressbarWidget = (context) => {
|
|
|
53
53
|
}
|
|
54
54
|
else {
|
|
55
55
|
bar.id = id;
|
|
56
|
+
// Named by its field: a <label> cannot name it, and in a table's cell nothing else does. The viewer's own name, where it gives one, wins.
|
|
57
|
+
// (Beside its own box it is hidden, the box being what is named and typed in.)
|
|
58
|
+
bar.setAttribute('aria-label', node.label ?? field.label);
|
|
56
59
|
}
|
|
57
60
|
return {
|
|
58
61
|
element,
|
package/src/lib/progress.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"progress.js","sourceRoot":"","sources":["../../../../../libs/widgets/src/lib/progress.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"progress.js","sourceRoot":"","sources":["../../../../../libs/widgets/src/lib/progress.ts"],"names":[],"mappings":"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"}
|