@yuneta/gobj-js 7.16.4 → 7.16.6

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.
@@ -4948,7 +4948,13 @@
4948
4948
  return;
4949
4949
  }
4950
4950
  if (!element) element = document;
4951
- element.querySelectorAll("[data-i18n]").forEach(function(elem) {
4951
+ const matching = (selector) => {
4952
+ let out = [];
4953
+ if (typeof element.matches === "function" && element.matches(selector)) out.push(element);
4954
+ out.push(...element.querySelectorAll(selector));
4955
+ return out;
4956
+ };
4957
+ matching("[data-i18n]").forEach(function(elem) {
4952
4958
  let value = elem.getAttribute("data-i18n");
4953
4959
  for (let node of elem.childNodes) if (node.nodeType === Node.TEXT_NODE) {
4954
4960
  if (!value) value = node.nodeValue;
@@ -4956,15 +4962,15 @@
4956
4962
  break;
4957
4963
  }
4958
4964
  });
4959
- element.querySelectorAll("[data-i18n-title]").forEach(function(elem) {
4965
+ matching("[data-i18n-title]").forEach(function(elem) {
4960
4966
  let value = elem.getAttribute("data-i18n-title");
4961
4967
  if (value) elem.setAttribute("title", t(value));
4962
4968
  });
4963
- element.querySelectorAll("[data-i18n-aria-label]").forEach(function(elem) {
4969
+ matching("[data-i18n-aria-label]").forEach(function(elem) {
4964
4970
  let value = elem.getAttribute("data-i18n-aria-label");
4965
4971
  if (value) elem.setAttribute("aria-label", t(value));
4966
4972
  });
4967
- element.querySelectorAll("[data-i18n-placeholder]").forEach(function(elem) {
4973
+ matching("[data-i18n-placeholder]").forEach(function(elem) {
4968
4974
  let value = elem.getAttribute("data-i18n-placeholder");
4969
4975
  if (value) elem.setAttribute("placeholder", t(value));
4970
4976
  });
@@ -5678,7 +5684,8 @@
5678
5684
  default_value: col.default,
5679
5685
  placeholder: col.placeholder,
5680
5686
  fillspace: col.fillspace || 4,
5681
- fkey: col.fkey || null
5687
+ fkey: col.fkey || null,
5688
+ is_file: false
5682
5689
  };
5683
5690
  if (!col.flag) return field_desc;
5684
5691
  for (let i = 0; i < col.flag.length; i++) {
@@ -5691,7 +5698,10 @@
5691
5698
  case "template":
5692
5699
  field_desc.enum_list = col.template;
5693
5700
  break;
5694
- case "table": field_desc.enum_list = col.table;
5701
+ case "table":
5702
+ field_desc.enum_list = col.table;
5703
+ break;
5704
+ case "file": field_desc.is_file = true;
5695
5705
  }
5696
5706
  field_desc.type = f;
5697
5707
  } else if (str_in_list(treedb_field_attributes, f)) switch (f) {
@@ -5707,6 +5717,7 @@
5707
5717
  case "hidden": field_desc.is_hidden = true;
5708
5718
  }
5709
5719
  }
5720
+ if (field_desc.is_file) field_desc.type = "file";
5710
5721
  return field_desc;
5711
5722
  }
5712
5723
  function template_get_field_desc(key, value) {