Artifact f16f1d5eef44fb4ab2844a1cad9d0b19d5b50bdf:


0000: 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 54 72 61  function initTra
0010: 6e 73 61 63 74 69 6f 6e 46 6f 72 6d 28 69 73 5f  nsactionForm(is_
0020: 6e 65 77 29 20 7b 0a 09 2f 2f 20 41 64 76 61 6e  new) {..// Advan
0030: 63 65 64 20 74 72 61 6e 73 61 63 74 69 6f 6e 3a  ced transaction:
0040: 20 6c 69 6e 65 20 6d 61 6e 61 67 65 6d 65 6e 74   line management
0050: 0a 09 76 61 72 20 6c 69 6e 65 73 20 3d 20 24 28  ..var lines = $(
0060: 27 2e 74 72 61 6e 73 61 63 74 69 6f 6e 2d 6c 69  '.transaction-li
0070: 6e 65 73 20 74 62 6f 64 79 20 74 72 27 29 3b 0a  nes tbody tr');.
0080: 0a 09 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 4c  ..function initL
0090: 69 6e 65 28 72 6f 77 29 20 7b 0a 09 09 76 61 72  ine(row) {...var
00a0: 20 72 65 6d 6f 76 65 42 74 6e 20 3d 20 72 6f 77   removeBtn = row
00b0: 2e 71 75 65 72 79 53 65 6c 65 63 74 6f 72 28 27  .querySelector('
00c0: 62 75 74 74 6f 6e 5b 6e 61 6d 65 3d 22 72 65 6d  button[name="rem
00d0: 6f 76 65 5f 6c 69 6e 65 22 5d 27 29 3b 0a 09 09  ove_line"]');...
00e0: 72 65 6d 6f 76 65 42 74 6e 2e 6f 6e 63 6c 69 63  removeBtn.onclic
00f0: 6b 20 3d 20 28 29 20 3d 3e 20 7b 0a 09 09 09 76  k = () => {....v
0100: 61 72 20 63 6f 75 6e 74 20 3d 20 24 28 27 2e 74  ar count = $('.t
0110: 72 61 6e 73 61 63 74 69 6f 6e 2d 6c 69 6e 65 73  ransaction-lines
0120: 20 74 62 6f 64 79 20 74 72 27 29 2e 6c 65 6e 67   tbody tr').leng
0130: 74 68 3b 0a 09 09 09 76 61 72 20 6d 69 6e 20 3d  th;....var min =
0140: 20 72 65 6d 6f 76 65 42 74 6e 2e 67 65 74 41 74   removeBtn.getAt
0150: 74 72 69 62 75 74 65 28 27 6d 69 6e 27 29 3b 0a  tribute('min');.
0160: 0a 09 09 09 69 66 20 28 63 6f 75 6e 74 20 3c 3d  ....if (count <=
0170: 20 6d 69 6e 29 20 7b 0a 09 09 09 09 61 6c 65 72   min) {.....aler
0180: 74 28 22 49 6c 20 6e 27 65 73 74 20 70 61 73 20  t("Il n'est pas 
0190: 70 6f 73 73 69 62 6c 65 20 64 27 61 76 6f 69 72  possible d'avoir
01a0: 20 6d 6f 69 6e 73 20 64 65 20 22 20 2b 20 6d 69   moins de " + mi
01b0: 6e 20 2b 20 22 20 6c 69 67 6e 65 73 20 64 61 6e  n + " lignes dan
01c0: 73 20 75 6e 65 20 c3 a9 63 72 69 74 75 72 65 2e  s une ..criture.
01d0: 22 29 3b 0a 09 09 09 09 72 65 74 75 72 6e 20 66  ");.....return f
01e0: 61 6c 73 65 3b 0a 09 09 09 7d 0a 0a 09 09 09 72  alse;....}.....r
01f0: 6f 77 2e 70 61 72 65 6e 74 4e 6f 64 65 2e 72 65  ow.parentNode.re
0200: 6d 6f 76 65 43 68 69 6c 64 28 72 6f 77 29 3b 0a  moveChild(row);.
0210: 09 09 09 75 70 64 61 74 65 54 6f 74 61 6c 73 28  ...updateTotals(
0220: 29 3b 0a 09 09 7d 3b 0a 0a 09 09 2f 2f 20 54 6f  );...};....// To
0230: 20 62 65 20 61 62 6c 65 20 74 6f 20 63 68 61 6e   be able to chan
0240: 67 65 20 69 6e 70 75 74 20 6a 75 73 74 20 62 79  ge input just by
0250: 20 70 72 65 73 73 69 6e 67 20 75 70 2f 64 6f 77   pressing up/dow
0260: 6e 0a 09 09 76 61 72 20 69 6e 70 75 74 73 20 3d  n...var inputs =
0270: 20 72 6f 77 2e 71 75 65 72 79 53 65 6c 65 63 74   row.querySelect
0280: 6f 72 41 6c 6c 28 27 69 6e 70 75 74 2c 20 73 65  orAll('input, se
0290: 6c 65 63 74 2c 20 62 75 74 74 6f 6e 27 29 3b 0a  lect, button');.
02a0: 0a 09 09 69 6e 70 75 74 73 2e 66 6f 72 45 61 63  ...inputs.forEac
02b0: 68 28 28 69 2c 20 6b 29 20 3d 3e 20 7b 0a 09 09  h((i, k) => {...
02c0: 09 69 2e 6f 6e 6b 65 79 64 6f 77 6e 20 3d 20 28  .i.onkeydown = (
02d0: 65 29 20 3d 3e 20 7b 0a 09 09 09 09 69 66 20 28  e) => {.....if (
02e0: 65 2e 6b 65 79 20 3d 3d 20 27 41 72 72 6f 77 55  e.key == 'ArrowU
02f0: 70 27 20 26 26 20 28 70 20 3d 20 72 6f 77 2e 70  p' && (p = row.p
0300: 72 65 76 69 6f 75 73 45 6c 65 6d 65 6e 74 53 69  reviousElementSi
0310: 62 6c 69 6e 67 29 29 20 7b 0a 09 09 09 09 09 70  bling)) {......p
0320: 2e 71 75 65 72 79 53 65 6c 65 63 74 6f 72 41 6c  .querySelectorAl
0330: 6c 28 27 69 6e 70 75 74 2c 20 73 65 6c 65 63 74  l('input, select
0340: 2c 20 62 75 74 74 6f 6e 27 29 5b 6b 5d 2e 66 6f  , button')[k].fo
0350: 63 75 73 28 29 3b 0a 09 09 09 09 09 72 65 74 75  cus();......retu
0360: 72 6e 20 66 61 6c 73 65 3b 0a 09 09 09 09 7d 0a  rn false;.....}.
0370: 09 09 09 09 65 6c 73 65 20 69 66 20 28 65 2e 6b  ....else if (e.k
0380: 65 79 20 3d 3d 20 27 41 72 72 6f 77 44 6f 77 6e  ey == 'ArrowDown
0390: 27 20 26 26 20 28 6e 20 3d 20 72 6f 77 2e 6e 65  ' && (n = row.ne
03a0: 78 74 45 6c 65 6d 65 6e 74 53 69 62 6c 69 6e 67  xtElementSibling
03b0: 29 29 20 7b 0a 09 09 09 09 09 6e 2e 71 75 65 72  )) {......n.quer
03c0: 79 53 65 6c 65 63 74 6f 72 41 6c 6c 28 27 69 6e  ySelectorAll('in
03d0: 70 75 74 2c 20 73 65 6c 65 63 74 2c 20 62 75 74  put, select, but
03e0: 74 6f 6e 27 29 5b 6b 5d 2e 66 6f 63 75 73 28 29  ton')[k].focus()
03f0: 3b 0a 09 09 09 09 09 72 65 74 75 72 6e 20 66 61  ;......return fa
0400: 6c 73 65 3b 0a 09 09 09 09 7d 0a 09 09 09 7d 3b  lse;.....}....};
0410: 0a 09 09 7d 29 3b 0a 0a 09 09 2f 2f 20 55 70 64  ...});....// Upd
0420: 61 74 65 20 74 6f 74 61 6c 73 20 61 6e 64 20 64  ate totals and d
0430: 69 73 61 62 6c 65 20 6f 74 68 65 72 20 61 6d 6f  isable other amo
0440: 75 6e 74 20 69 6e 70 75 74 0a 09 09 76 61 72 20  unt input...var 
0450: 69 6e 70 75 74 73 20 3d 20 72 6f 77 2e 71 75 65  inputs = row.que
0460: 72 79 53 65 6c 65 63 74 6f 72 41 6c 6c 28 27 69  rySelectorAll('i
0470: 6e 70 75 74 2e 6d 6f 6e 65 79 27 29 3b 0a 0a 09  nput.money');...
0480: 09 69 6e 70 75 74 73 2e 66 6f 72 45 61 63 68 28  .inputs.forEach(
0490: 28 69 2c 20 6b 29 20 3d 3e 20 7b 0a 09 09 09 69  (i, k) => {....i
04a0: 2e 6f 6e 6b 65 79 75 70 20 3d 20 28 65 29 20 3d  .onkeyup = (e) =
04b0: 3e 20 7b 0a 09 09 09 09 76 61 72 20 76 20 3d 20  > {.....var v = 
04c0: 69 2e 76 61 6c 75 65 2e 72 65 70 6c 61 63 65 28  i.value.replace(
04d0: 2f 5b 5e 30 2d 39 2c 2e 5d 2f 29 3b 0a 09 09 09  /[^0-9,.]/);....
04e0: 09 69 66 20 28 76 2e 6c 65 6e 67 74 68 20 26 26  .if (v.length &&
04f0: 20 76 20 21 3d 20 30 29 20 7b 0a 09 09 09 09 09   v != 0) {......
0500: 69 6e 70 75 74 73 5b 2b 21 6b 5d 2e 76 61 6c 75  inputs[+!k].valu
0510: 65 20 3d 20 27 30 27 3b 0a 09 09 09 09 09 75 70  e = '0';......up
0520: 64 61 74 65 54 6f 74 61 6c 73 28 29 3b 0a 09 09  dateTotals();...
0530: 09 09 7d 0a 09 09 09 7d 3b 0a 0a 09 09 09 69 66  ..}....};.....if
0540: 20 28 2b 69 2e 76 61 6c 75 65 20 3d 3d 20 30 20   (+i.value == 0 
0550: 26 26 20 2b 69 6e 70 75 74 73 5b 2b 21 6b 5d 2e  && +inputs[+!k].
0560: 76 61 6c 75 65 20 21 3d 20 30 29 20 7b 0a 09 09  value != 0) {...
0570: 09 09 69 2e 76 61 6c 75 65 20 3d 20 27 30 27 3b  ..i.value = '0';
0580: 0a 09 09 09 7d 0a 09 09 7d 29 3b 0a 09 7d 0a 0a  ....}...});..}..
0590: 09 6c 69 6e 65 73 2e 66 6f 72 45 61 63 68 28 69  .lines.forEach(i
05a0: 6e 69 74 4c 69 6e 65 29 3b 0a 0a 09 66 75 6e 63  nitLine);...func
05b0: 74 69 6f 6e 20 75 70 64 61 74 65 54 6f 74 61 6c  tion updateTotal
05c0: 73 28 29 20 7b 0a 09 09 76 61 72 20 61 6d 6f 75  s() {...var amou
05d0: 6e 74 73 20 3d 20 24 28 27 2e 74 72 61 6e 73 61  nts = $('.transa
05e0: 63 74 69 6f 6e 2d 6c 69 6e 65 73 20 74 62 6f 64  ction-lines tbod
05f0: 79 20 69 6e 70 75 74 2e 6d 6f 6e 65 79 27 29 3b  y input.money');
0600: 0a 09 09 76 61 72 20 64 65 62 69 74 20 3d 20 63  ...var debit = c
0610: 72 65 64 69 74 20 3d 20 30 3b 0a 0a 09 09 61 6d  redit = 0;....am
0620: 6f 75 6e 74 73 2e 66 6f 72 45 61 63 68 28 28 69  ounts.forEach((i
0630: 29 20 3d 3e 20 7b 0a 09 09 09 69 66 20 28 21 69  ) => {....if (!i
0640: 2e 76 61 6c 75 65 29 20 7b 0a 09 09 09 09 72 65  .value) {.....re
0650: 74 75 72 6e 3b 0a 09 09 09 7d 0a 0a 09 09 09 76  turn;....}.....v
0660: 61 72 20 76 20 3d 20 67 2e 67 65 74 4d 6f 6e 65  ar v = g.getMone
0670: 79 41 73 49 6e 74 28 69 2e 76 61 6c 75 65 29 3b  yAsInt(i.value);
0680: 0a 0a 09 09 09 69 66 20 28 69 2e 6e 61 6d 65 2e  .....if (i.name.
0690: 6d 61 74 63 68 28 2f 64 65 62 69 74 2f 29 29 20  match(/debit/)) 
06a0: 7b 0a 09 09 09 09 64 65 62 69 74 20 2b 3d 20 76  {.....debit += v
06b0: 3b 0a 09 09 09 7d 0a 09 09 09 65 6c 73 65 20 7b  ;....}....else {
06c0: 0a 09 09 09 09 63 72 65 64 69 74 20 2b 3d 20 76  .....credit += v
06d0: 3b 0a 09 09 09 7d 0a 09 09 7d 29 3b 0a 0a 09 09  ;....}...});....
06e0: 69 66 20 28 6d 20 3d 20 24 28 27 23 6c 69 6e 65  if (m = $('#line
06f0: 73 5f 6d 65 73 73 61 67 65 27 29 29 20 7b 0a 09  s_message')) {..
0700: 09 09 76 61 72 20 64 69 66 66 20 3d 20 63 72 65  ..var diff = cre
0710: 64 69 74 20 2d 20 64 65 62 69 74 3b 0a 09 09 09  dit - debit;....
0720: 6d 2e 69 6e 6e 65 72 48 54 4d 4c 20 3d 20 28 21  m.innerHTML = (!
0730: 64 69 66 66 29 20 3f 20 27 27 20 3a 20 27 3c 73  diff) ? '' : '<s
0740: 70 61 6e 20 63 6c 61 73 73 3d 22 61 6c 65 72 74  pan class="alert
0750: 22 3e c3 89 63 72 69 74 75 72 65 20 6e 6f 6e 20  ">..criture non 
0760: c3 a9 71 75 69 6c 69 62 72 c3 a9 65 20 28 27 20  ..quilibr..e (' 
0770: 2b 20 67 2e 66 6f 72 6d 61 74 4d 6f 6e 65 79 28  + g.formatMoney(
0780: 64 69 66 66 29 20 2b 20 27 29 3c 2f 73 70 61 6e  diff) + ')</span
0790: 3e 27 3b 0a 09 09 7d 0a 0a 09 09 64 65 62 69 74  >';...}....debit
07a0: 20 3d 20 64 65 62 69 74 20 3f 20 64 65 62 69 74   = debit ? debit
07b0: 20 2b 20 27 27 20 3a 20 27 30 30 30 27 3b 0a 09   + '' : '000';..
07c0: 09 63 72 65 64 69 74 20 3d 20 63 72 65 64 69 74  .credit = credit
07d0: 20 3f 20 63 72 65 64 69 74 20 2b 20 27 27 20 3a   ? credit + '' :
07e0: 20 27 30 30 30 27 3b 0a 09 09 24 28 27 23 66 5f   '000';...$('#f_
07f0: 64 65 62 69 74 5f 74 6f 74 61 6c 27 29 2e 76 61  debit_total').va
0800: 6c 75 65 20 3d 20 67 2e 66 6f 72 6d 61 74 4d 6f  lue = g.formatMo
0810: 6e 65 79 28 64 65 62 69 74 29 3b 0a 09 09 24 28  ney(debit);...$(
0820: 27 23 66 5f 63 72 65 64 69 74 5f 74 6f 74 61 6c  '#f_credit_total
0830: 27 29 2e 76 61 6c 75 65 20 3d 20 67 2e 66 6f 72  ').value = g.for
0840: 6d 61 74 4d 6f 6e 65 79 28 63 72 65 64 69 74 29  matMoney(credit)
0850: 3b 0a 09 7d 0a 0a 09 2f 2f 20 41 64 64 20 72 6f  ;..}...// Add ro
0860: 77 20 22 70 6c 75 73 22 20 62 75 74 74 6f 6e 0a  w "plus" button.
0870: 09 24 28 27 2e 74 72 61 6e 73 61 63 74 69 6f 6e  .$('.transaction
0880: 2d 6c 69 6e 65 73 20 74 66 6f 6f 74 20 62 75 74  -lines tfoot but
0890: 74 6f 6e 27 29 5b 30 5d 2e 6f 6e 63 6c 69 63 6b  ton')[0].onclick
08a0: 20 3d 20 28 29 20 3d 3e 20 7b 0a 09 09 6c 65 74   = () => {...let
08b0: 20 6c 69 6e 65 73 20 3d 20 24 28 27 2e 74 72 61   lines = $('.tra
08c0: 6e 73 61 63 74 69 6f 6e 2d 6c 69 6e 65 73 20 74  nsaction-lines t
08d0: 62 6f 64 79 20 74 72 27 29 3b 0a 09 09 76 61 72  body tr');...var
08e0: 20 6c 69 6e 65 20 3d 20 6c 69 6e 65 73 5b 6c 69   line = lines[li
08f0: 6e 65 73 2e 6c 65 6e 67 74 68 20 2d 20 31 5d 3b  nes.length - 1];
0900: 0a 09 09 76 61 72 20 6e 20 3d 20 6c 69 6e 65 2e  ...var n = line.
0910: 63 6c 6f 6e 65 4e 6f 64 65 28 74 72 75 65 29 3b  cloneNode(true);
0920: 0a 0a 09 09 2f 2f 20 52 65 73 65 74 20 6c 61 62  ....// Reset lab
0930: 65 6c 20 61 6e 64 20 72 65 66 65 72 65 6e 63 65  el and reference
0940: 0a 09 09 6e 2e 71 75 65 72 79 53 65 6c 65 63 74  ...n.querySelect
0950: 6f 72 41 6c 6c 28 27 69 6e 70 75 74 27 29 2e 66  orAll('input').f
0960: 6f 72 45 61 63 68 28 28 69 29 20 3d 3e 20 7b 0a  orEach((i) => {.
0970: 09 09 09 69 66 20 28 21 69 2e 6e 61 6d 65 2e 6d  ...if (!i.name.m
0980: 61 74 63 68 28 2f 6c 61 62 65 6c 7c 72 65 66 65  atch(/label|refe
0990: 72 65 6e 63 65 2f 29 29 20 7b 0a 09 09 09 09 72  rence/)) {.....r
09a0: 65 74 75 72 6e 3b 0a 09 09 09 7d 0a 0a 09 09 09  eturn;....}.....
09b0: 69 2e 76 61 6c 75 65 20 3d 20 27 27 3b 0a 09 09  i.value = '';...
09c0: 7d 29 0a 0a 09 09 76 61 72 20 62 20 3d 20 6e 2e  })....var b = n.
09d0: 71 75 65 72 79 53 65 6c 65 63 74 6f 72 28 27 2e  querySelector('.
09e0: 69 6e 70 75 74 2d 6c 69 73 74 20 62 75 74 74 6f  input-list butto
09f0: 6e 27 29 3b 0a 09 09 62 2e 6f 6e 63 6c 69 63 6b  n');...b.onclick
0a00: 20 3d 20 28 29 20 3d 3e 20 7b 0a 09 09 09 67 2e   = () => {....g.
0a10: 63 75 72 72 65 6e 74 5f 6c 69 73 74 5f 69 6e 70  current_list_inp
0a20: 75 74 20 3d 20 62 2e 70 61 72 65 6e 74 4e 6f 64  ut = b.parentNod
0a30: 65 3b 0a 09 09 09 67 2e 6f 70 65 6e 46 72 61 6d  e;....g.openFram
0a40: 65 44 69 61 6c 6f 67 28 62 2e 76 61 6c 75 65 29  eDialog(b.value)
0a50: 3b 0a 09 09 09 72 65 74 75 72 6e 20 66 61 6c 73  ;....return fals
0a60: 65 3b 0a 09 09 7d 3b 0a 09 09 6c 69 6e 65 2e 70  e;...};...line.p
0a70: 61 72 65 6e 74 4e 6f 64 65 2e 61 70 70 65 6e 64  arentNode.append
0a80: 43 68 69 6c 64 28 6e 29 3b 0a 09 09 69 6e 69 74  Child(n);...init
0a90: 4c 69 6e 65 28 6e 29 3b 0a 09 7d 3b 0a 0a 09 75  Line(n);..};...u
0aa0: 70 64 61 74 65 54 6f 74 61 6c 73 28 29 3b 0a 0a  pdateTotals();..
0ab0: 09 2f 2f 20 48 69 64 65 20 74 79 70 65 20 73 70  .// Hide type sp
0ac0: 65 63 69 66 69 63 20 70 61 72 74 73 20 6f 66 20  ecific parts of 
0ad0: 74 68 65 20 66 6f 72 6d 0a 09 66 75 6e 63 74 69  the form..functi
0ae0: 6f 6e 20 68 69 64 65 41 6c 6c 54 79 70 65 73 28  on hideAllTypes(
0af0: 29 20 7b 0a 09 09 67 2e 74 6f 67 67 6c 65 28 27  ) {...g.toggle('
0b00: 5b 64 61 74 61 2d 74 79 70 65 73 5d 27 2c 20 66  [data-types]', f
0b10: 61 6c 73 65 29 3b 0a 09 7d 0a 0a 09 2f 2f 20 54  alse);..}...// T
0b20: 6f 67 67 6c 65 20 70 61 72 74 73 20 6f 66 20 74  oggle parts of t
0b30: 68 65 20 66 6f 72 6d 20 77 68 65 6e 20 61 20 74  he form when a t
0b40: 79 70 65 20 69 73 20 73 65 6c 65 63 74 65 64 0a  ype is selected.
0b50: 09 66 75 6e 63 74 69 6f 6e 20 73 65 6c 65 63 74  .function select
0b60: 54 79 70 65 28 76 29 20 7b 0a 09 09 68 69 64 65  Type(v) {...hide
0b70: 41 6c 6c 54 79 70 65 73 28 29 3b 0a 09 09 67 2e  AllTypes();...g.
0b80: 74 6f 67 67 6c 65 28 27 5b 64 61 74 61 2d 74 79  toggle('[data-ty
0b90: 70 65 73 7e 3d 74 27 20 2b 20 76 20 2b 20 27 5d  pes~=t' + v + ']
0ba0: 27 2c 20 74 72 75 65 29 3b 0a 09 09 67 2e 74 6f  ', true);...g.to
0bb0: 67 67 6c 65 28 27 5b 64 61 74 61 2d 74 79 70 65  ggle('[data-type
0bc0: 73 3d 61 6c 6c 2d 62 75 74 2d 61 64 76 61 6e 63  s=all-but-advanc
0bd0: 65 64 5d 27 2c 20 76 20 21 3d 20 30 29 3b 0a 09  ed]', v != 0);..
0be0: 09 2f 2f 20 44 69 73 61 62 6c 65 20 72 65 71 75  .// Disable requ
0bf0: 69 72 65 64 20 66 6f 72 6d 20 65 6c 65 6d 65 6e  ired form elemen
0c00: 74 73 2c 20 6f 72 20 74 68 65 20 66 6f 72 6d 20  ts, or the form 
0c10: 77 6f 6e 27 74 20 62 65 20 61 62 6c 65 20 74 6f  won't be able to
0c20: 20 62 65 20 73 75 62 6d 69 74 74 65 64 0a 09 09   be submitted...
0c30: 24 28 27 5b 64 61 74 61 2d 74 79 70 65 73 3d 61  $('[data-types=a
0c40: 6c 6c 2d 62 75 74 2d 61 64 76 61 6e 63 65 64 5d  ll-but-advanced]
0c50: 20 69 6e 70 75 74 5b 72 65 71 75 69 72 65 64 5d   input[required]
0c60: 27 29 2e 66 6f 72 45 61 63 68 28 28 65 29 20 3d  ').forEach((e) =
0c70: 3e 20 7b 0a 09 09 09 65 2e 64 69 73 61 62 6c 65  > {....e.disable
0c80: 64 20 3d 20 76 20 3d 3d 20 27 61 64 76 61 6e 63  d = v == 'advanc
0c90: 65 64 27 20 3f 20 74 72 75 65 20 3a 20 66 61 6c  ed' ? true : fal
0ca0: 73 65 3b 0a 09 09 7d 29 3b 0a 0a 09 7d 0a 0a 09  se;...});...}...
0cb0: 76 61 72 20 72 61 64 69 6f 73 20 3d 20 24 28 27  var radios = $('
0cc0: 66 69 65 6c 64 73 65 74 20 69 6e 70 75 74 5b 74  fieldset input[t
0cd0: 79 70 65 3d 72 61 64 69 6f 5d 5b 6e 61 6d 65 3d  ype=radio][name=
0ce0: 74 79 70 65 5d 27 29 3b 0a 0a 09 72 61 64 69 6f  type]');...radio
0cf0: 73 2e 66 6f 72 45 61 63 68 28 28 65 29 20 3d 3e  s.forEach((e) =>
0d00: 20 7b 0a 09 09 65 2e 6f 6e 63 68 61 6e 67 65 20   {...e.onchange 
0d10: 3d 20 28 29 20 3d 3e 20 7b 0a 09 09 09 64 6f 63  = () => {....doc
0d20: 75 6d 65 6e 74 2e 71 75 65 72 79 53 65 6c 65 63  ument.querySelec
0d30: 74 6f 72 41 6c 6c 28 27 66 69 65 6c 64 73 65 74  torAll('fieldset
0d40: 27 29 2e 66 6f 72 45 61 63 68 28 28 65 2c 20 6b  ').forEach((e, k
0d50: 29 20 3d 3e 20 7b 0a 09 09 09 09 69 66 20 28 21  ) => {.....if (!
0d60: 69 73 5f 6e 65 77 20 7c 7c 20 6b 20 3d 3d 20 30  is_new || k == 0
0d70: 20 7c 7c 20 65 2e 64 61 74 61 73 65 74 2e 74 79   || e.dataset.ty
0d80: 70 65 73 29 20 72 65 74 75 72 6e 3b 0a 09 09 09  pes) return;....
0d90: 09 67 2e 74 6f 67 67 6c 65 28 65 2c 20 74 72 75  .g.toggle(e, tru
0da0: 65 29 3b 0a 09 09 09 09 67 2e 74 6f 67 67 6c 65  e);.....g.toggle
0db0: 28 27 70 2e 73 75 62 6d 69 74 27 2c 20 74 72 75  ('p.submit', tru
0dc0: 65 29 3b 0a 09 09 09 7d 29 3b 0a 09 09 09 73 65  e);....});....se
0dd0: 6c 65 63 74 54 79 70 65 28 65 2e 76 61 6c 75 65  lectType(e.value
0de0: 29 3b 0a 09 09 7d 3b 0a 09 7d 29 3b 0a 0a 09 68  );...};..});...h
0df0: 69 64 65 41 6c 6c 54 79 70 65 73 28 29 3b 0a 0a  ideAllTypes();..
0e00: 09 2f 2f 20 49 6e 20 63 61 73 65 20 6f 66 20 61  .// In case of a
0e10: 20 70 72 65 2d 66 69 6c 6c 65 64 20 66 6f 72 6d   pre-filled form
0e20: 3a 20 73 68 6f 77 20 74 68 65 20 63 6f 72 72 65  : show the corre
0e30: 63 74 20 70 61 72 74 20 6f 66 20 74 68 65 20 66  ct part of the f
0e40: 6f 72 6d 0a 09 76 61 72 20 63 75 72 72 65 6e 74  orm..var current
0e50: 20 3d 20 64 6f 63 75 6d 65 6e 74 2e 71 75 65 72   = document.quer
0e60: 79 53 65 6c 65 63 74 6f 72 28 27 69 6e 70 75 74  ySelector('input
0e70: 5b 6e 61 6d 65 3d 74 79 70 65 5d 3a 63 68 65 63  [name=type]:chec
0e80: 6b 65 64 27 29 3b 0a 09 69 66 20 28 63 75 72 72  ked');..if (curr
0e90: 65 6e 74 29 20 7b 0a 09 09 73 65 6c 65 63 74 54  ent) {...selectT
0ea0: 79 70 65 28 63 75 72 72 65 6e 74 2e 76 61 6c 75  ype(current.valu
0eb0: 65 29 3b 0a 09 7d 0a 0a 09 69 66 20 28 69 73 5f  e);..}...if (is_
0ec0: 6e 65 77 29 20 7b 0a 09 09 64 6f 63 75 6d 65 6e  new) {...documen
0ed0: 74 2e 71 75 65 72 79 53 65 6c 65 63 74 6f 72 41  t.querySelectorA
0ee0: 6c 6c 28 27 66 69 65 6c 64 73 65 74 27 29 2e 66  ll('fieldset').f
0ef0: 6f 72 45 61 63 68 28 28 65 2c 20 6b 29 20 3d 3e  orEach((e, k) =>
0f00: 20 7b 0a 09 09 09 69 66 20 28 6b 20 3d 3d 20 30   {....if (k == 0
0f10: 29 20 72 65 74 75 72 6e 3b 0a 09 09 09 67 2e 74  ) return;....g.t
0f20: 6f 67 67 6c 65 28 65 2c 20 66 61 6c 73 65 29 3b  oggle(e, false);
0f30: 0a 09 09 09 67 2e 74 6f 67 67 6c 65 28 27 70 2e  ....g.toggle('p.
0f40: 73 75 62 6d 69 74 27 2c 20 66 61 6c 73 65 29 3b  submit', false);
0f50: 0a 09 09 7d 29 3b 0a 09 7d 0a 7d 0a              ...});..}.}.