ilib-tools-common 1.2.0 → 1.4.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/docs/index.html CHANGED
@@ -14,6 +14,7 @@
14
14
  <link type="text/css" rel="stylesheet" href="styles/prettify.css">
15
15
  <link type="text/css" rel="stylesheet" href="styles/jsdoc.css">
16
16
  <script src="scripts/nav.js" defer></script>
17
+
17
18
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
18
19
  </head>
19
20
  <body>
@@ -27,7 +28,9 @@
27
28
 
28
29
  <nav >
29
30
 
30
- <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Resource.html">Resource</a><ul class='methods'><li data-type='method'><a href="Resource.html#addInstance">addInstance</a></li><li data-type='method'><a href="Resource.html#escapeText">escapeText</a></li><li data-type='method'><a href="Resource.html#getAutoKey">getAutoKey</a></li><li data-type='method'><a href="Resource.html#getComment">getComment</a></li><li data-type='method'><a href="Resource.html#getContext">getContext</a></li><li data-type='method'><a href="Resource.html#getDataType">getDataType</a></li><li data-type='method'><a href="Resource.html#getFlavor">getFlavor</a></li><li data-type='method'><a href="Resource.html#getId">getId</a></li><li data-type='method'><a href="Resource.html#getInstances">getInstances</a></li><li data-type='method'><a href="Resource.html#getKey">getKey</a></li><li data-type='method'><a href="Resource.html#getLocalize">getLocalize</a></li><li data-type='method'><a href="Resource.html#getOrigin">getOrigin</a></li><li data-type='method'><a href="Resource.html#getPath">getPath</a></li><li data-type='method'><a href="Resource.html#getProject">getProject</a></li><li data-type='method'><a href="Resource.html#getSource">getSource</a></li><li data-type='method'><a href="Resource.html#getSourceLocale">getSourceLocale</a></li><li data-type='method'><a href="Resource.html#getState">getState</a></li><li data-type='method'><a href="Resource.html#getTarget">getTarget</a></li><li data-type='method'><a href="Resource.html#getTargetLocale">getTargetLocale</a></li><li data-type='method'><a href="Resource.html#getType">getType</a></li><li data-type='method'><a href="Resource.html#isInstance">isInstance</a></li><li data-type='method'><a href="Resource.html#same">same</a></li><li data-type='method'><a href="Resource.html#setComment">setComment</a></li><li data-type='method'><a href="Resource.html#setProject">setProject</a></li><li data-type='method'><a href="Resource.html#setSourceLocale">setSourceLocale</a></li><li data-type='method'><a href="Resource.html#setState">setState</a></li><li data-type='method'><a href="Resource.html#setTargetLocale">setTargetLocale</a></li></ul></li><li><a href="ResourceArray.html">ResourceArray</a><ul class='methods'><li data-type='method'><a href="ResourceArray.html#.hashKey">hashKey</a></li><li data-type='method'><a href="ResourceArray.html#addInstance">addInstance</a></li><li data-type='method'><a href="ResourceArray.html#addSourceItem">addSourceItem</a></li><li data-type='method'><a href="ResourceArray.html#addTargetItem">addTargetItem</a></li><li data-type='method'><a href="ResourceArray.html#cleanHashKey">cleanHashKey</a></li><li data-type='method'><a href="ResourceArray.html#cleanHashKeyForTranslation">cleanHashKeyForTranslation</a></li><li data-type='method'><a href="ResourceArray.html#clone">clone</a></li><li data-type='method'><a href="ResourceArray.html#equals">equals</a></li><li data-type='method'><a href="ResourceArray.html#equals">equals</a></li><li data-type='method'><a href="ResourceArray.html#escapeText">escapeText</a></li><li data-type='method'><a href="ResourceArray.html#getAutoKey">getAutoKey</a></li><li data-type='method'><a href="ResourceArray.html#getComment">getComment</a></li><li data-type='method'><a href="ResourceArray.html#getContext">getContext</a></li><li data-type='method'><a href="ResourceArray.html#getDataType">getDataType</a></li><li data-type='method'><a href="ResourceArray.html#getFlavor">getFlavor</a></li><li data-type='method'><a href="ResourceArray.html#getId">getId</a></li><li data-type='method'><a href="ResourceArray.html#getInstances">getInstances</a></li><li data-type='method'><a href="ResourceArray.html#getKey">getKey</a></li><li data-type='method'><a href="ResourceArray.html#getLocalize">getLocalize</a></li><li data-type='method'><a href="ResourceArray.html#getOrigin">getOrigin</a></li><li data-type='method'><a href="ResourceArray.html#getPath">getPath</a></li><li data-type='method'><a href="ResourceArray.html#getProject">getProject</a></li><li data-type='method'><a href="ResourceArray.html#getSource">getSource</a></li><li data-type='method'><a href="ResourceArray.html#getSourceArray">getSourceArray</a></li><li data-type='method'><a href="ResourceArray.html#getSourceItem">getSourceItem</a></li><li data-type='method'><a href="ResourceArray.html#getSourceLocale">getSourceLocale</a></li><li data-type='method'><a href="ResourceArray.html#getState">getState</a></li><li data-type='method'><a href="ResourceArray.html#getTarget">getTarget</a></li><li data-type='method'><a href="ResourceArray.html#getTargetArray">getTargetArray</a></li><li data-type='method'><a href="ResourceArray.html#getTargetItem">getTargetItem</a></li><li data-type='method'><a href="ResourceArray.html#getTargetLocale">getTargetLocale</a></li><li data-type='method'><a href="ResourceArray.html#getType">getType</a></li><li data-type='method'><a href="ResourceArray.html#hashKey">hashKey</a></li><li data-type='method'><a href="ResourceArray.html#hashKeyForTranslation">hashKeyForTranslation</a></li><li data-type='method'><a href="ResourceArray.html#isInstance">isInstance</a></li><li data-type='method'><a href="ResourceArray.html#same">same</a></li><li data-type='method'><a href="ResourceArray.html#setComment">setComment</a></li><li data-type='method'><a href="ResourceArray.html#setProject">setProject</a></li><li data-type='method'><a href="ResourceArray.html#setSource">setSource</a></li><li data-type='method'><a href="ResourceArray.html#setSourceLocale">setSourceLocale</a></li><li data-type='method'><a href="ResourceArray.html#setState">setState</a></li><li data-type='method'><a href="ResourceArray.html#setTarget">setTarget</a></li><li data-type='method'><a href="ResourceArray.html#setTargetLocale">setTargetLocale</a></li><li data-type='method'><a href="ResourceArray.html#size">size</a></li></ul></li><li><a href="ResourcePlural.html">ResourcePlural</a><ul class='methods'><li data-type='method'><a href="ResourcePlural.html#.hashKey">hashKey</a></li><li data-type='method'><a href="ResourcePlural.html#addInstance">addInstance</a></li><li data-type='method'><a href="ResourcePlural.html#addSourcePlural">addSourcePlural</a></li><li data-type='method'><a href="ResourcePlural.html#addTargetPlural">addTargetPlural</a></li><li data-type='method'><a href="ResourcePlural.html#cleanHashKey">cleanHashKey</a></li><li data-type='method'><a href="ResourcePlural.html#cleanHashKeyForTranslation">cleanHashKeyForTranslation</a></li><li data-type='method'><a href="ResourcePlural.html#clone">clone</a></li><li data-type='method'><a href="ResourcePlural.html#equals">equals</a></li><li data-type='method'><a href="ResourcePlural.html#escapeText">escapeText</a></li><li data-type='method'><a href="ResourcePlural.html#getAllValidCategories">getAllValidCategories</a></li><li data-type='method'><a href="ResourcePlural.html#getAutoKey">getAutoKey</a></li><li data-type='method'><a href="ResourcePlural.html#getCategories">getCategories</a></li><li data-type='method'><a href="ResourcePlural.html#getClasses">getClasses</a></li><li data-type='method'><a href="ResourcePlural.html#getComment">getComment</a></li><li data-type='method'><a href="ResourcePlural.html#getContext">getContext</a></li><li data-type='method'><a href="ResourcePlural.html#getDataType">getDataType</a></li><li data-type='method'><a href="ResourcePlural.html#getFlavor">getFlavor</a></li><li data-type='method'><a href="ResourcePlural.html#getId">getId</a></li><li data-type='method'><a href="ResourcePlural.html#getInstances">getInstances</a></li><li data-type='method'><a href="ResourcePlural.html#getKey">getKey</a></li><li data-type='method'><a href="ResourcePlural.html#getLocalize">getLocalize</a></li><li data-type='method'><a href="ResourcePlural.html#getOrigin">getOrigin</a></li><li data-type='method'><a href="ResourcePlural.html#getPath">getPath</a></li><li data-type='method'><a href="ResourcePlural.html#getProject">getProject</a></li><li data-type='method'><a href="ResourcePlural.html#getSource">getSource</a></li><li data-type='method'><a href="ResourcePlural.html#getSourceLocale">getSourceLocale</a></li><li data-type='method'><a href="ResourcePlural.html#getSourcePlural">getSourcePlural</a></li><li data-type='method'><a href="ResourcePlural.html#getSourcePlurals">getSourcePlurals</a></li><li data-type='method'><a href="ResourcePlural.html#getSourceStrings">getSourceStrings</a></li><li data-type='method'><a href="ResourcePlural.html#getState">getState</a></li><li data-type='method'><a href="ResourcePlural.html#getTarget">getTarget</a></li><li data-type='method'><a href="ResourcePlural.html#getTargetLocale">getTargetLocale</a></li><li data-type='method'><a href="ResourcePlural.html#getTargetPlural">getTargetPlural</a></li><li data-type='method'><a href="ResourcePlural.html#getTargetPlurals">getTargetPlurals</a></li><li data-type='method'><a href="ResourcePlural.html#getTargetStrings">getTargetStrings</a></li><li data-type='method'><a href="ResourcePlural.html#getType">getType</a></li><li data-type='method'><a href="ResourcePlural.html#hashKey">hashKey</a></li><li data-type='method'><a href="ResourcePlural.html#hashKeyForTranslation">hashKeyForTranslation</a></li><li data-type='method'><a href="ResourcePlural.html#isInstance">isInstance</a></li><li data-type='method'><a href="ResourcePlural.html#same">same</a></li><li data-type='method'><a href="ResourcePlural.html#setComment">setComment</a></li><li data-type='method'><a href="ResourcePlural.html#setProject">setProject</a></li><li data-type='method'><a href="ResourcePlural.html#setSource">setSource</a></li><li data-type='method'><a href="ResourcePlural.html#setSourceLocale">setSourceLocale</a></li><li data-type='method'><a href="ResourcePlural.html#setState">setState</a></li><li data-type='method'><a href="ResourcePlural.html#setTarget">setTarget</a></li><li data-type='method'><a href="ResourcePlural.html#setTargetLocale">setTargetLocale</a></li><li data-type='method'><a href="ResourcePlural.html#size">size</a></li></ul></li><li><a href="ResourceString.html">ResourceString</a><ul class='methods'><li data-type='method'><a href="ResourceString.html#.cleanHashKey">cleanHashKey</a></li><li data-type='method'><a href="ResourceString.html#.hashKey">hashKey</a></li><li data-type='method'><a href="ResourceString.html#addInstance">addInstance</a></li><li data-type='method'><a href="ResourceString.html#cleanHashKey">cleanHashKey</a></li><li data-type='method'><a href="ResourceString.html#cleanHashKeyForTranslation">cleanHashKeyForTranslation</a></li><li data-type='method'><a href="ResourceString.html#clone">clone</a></li><li data-type='method'><a href="ResourceString.html#equals">equals</a></li><li data-type='method'><a href="ResourceString.html#escapeText">escapeText</a></li><li data-type='method'><a href="ResourceString.html#getAutoKey">getAutoKey</a></li><li data-type='method'><a href="ResourceString.html#getComment">getComment</a></li><li data-type='method'><a href="ResourceString.html#getContext">getContext</a></li><li data-type='method'><a href="ResourceString.html#getDataType">getDataType</a></li><li data-type='method'><a href="ResourceString.html#getFlavor">getFlavor</a></li><li data-type='method'><a href="ResourceString.html#getId">getId</a></li><li data-type='method'><a href="ResourceString.html#getInstances">getInstances</a></li><li data-type='method'><a href="ResourceString.html#getKey">getKey</a></li><li data-type='method'><a href="ResourceString.html#getLocalize">getLocalize</a></li><li data-type='method'><a href="ResourceString.html#getOrigin">getOrigin</a></li><li data-type='method'><a href="ResourceString.html#getPath">getPath</a></li><li data-type='method'><a href="ResourceString.html#getProject">getProject</a></li><li data-type='method'><a href="ResourceString.html#getSource">getSource</a></li><li data-type='method'><a href="ResourceString.html#getSourceLocale">getSourceLocale</a></li><li data-type='method'><a href="ResourceString.html#getState">getState</a></li><li data-type='method'><a href="ResourceString.html#getTarget">getTarget</a></li><li data-type='method'><a href="ResourceString.html#getTargetLocale">getTargetLocale</a></li><li data-type='method'><a href="ResourceString.html#getType">getType</a></li><li data-type='method'><a href="ResourceString.html#hashKey">hashKey</a></li><li data-type='method'><a href="ResourceString.html#hashKeyForTranslation">hashKeyForTranslation</a></li><li data-type='method'><a href="ResourceString.html#isInstance">isInstance</a></li><li data-type='method'><a href="ResourceString.html#same">same</a></li><li data-type='method'><a href="ResourceString.html#setComment">setComment</a></li><li data-type='method'><a href="ResourceString.html#setProject">setProject</a></li><li data-type='method'><a href="ResourceString.html#setSource">setSource</a></li><li data-type='method'><a href="ResourceString.html#setSourceLocale">setSourceLocale</a></li><li data-type='method'><a href="ResourceString.html#setState">setState</a></li><li data-type='method'><a href="ResourceString.html#setTarget">setTarget</a></li><li data-type='method'><a href="ResourceString.html#setTargetLocale">setTargetLocale</a></li><li data-type='method'><a href="ResourceString.html#size">size</a></li></ul></li><li><a href="ResourceXliff.html">ResourceXliff</a></li><li><a href="TranslationSet.html">TranslationSet</a><ul class='methods'><li data-type='method'><a href="TranslationSet.html#add">add</a></li><li data-type='method'><a href="TranslationSet.html#addAll">addAll</a></li><li data-type='method'><a href="TranslationSet.html#addSet">addSet</a></li><li data-type='method'><a href="TranslationSet.html#clear">clear</a></li><li data-type='method'><a href="TranslationSet.html#diff">diff</a></li><li data-type='method'><a href="TranslationSet.html#get">get</a></li><li data-type='method'><a href="TranslationSet.html#getAll">getAll</a></li><li data-type='method'><a href="TranslationSet.html#getBy">getBy</a></li><li data-type='method'><a href="TranslationSet.html#getBySource">getBySource</a></li><li data-type='method'><a href="TranslationSet.html#getClean">getClean</a></li><li data-type='method'><a href="TranslationSet.html#getContexts">getContexts</a></li><li data-type='method'><a href="TranslationSet.html#getLocales">getLocales</a></li><li data-type='method'><a href="TranslationSet.html#getProjects">getProjects</a></li><li data-type='method'><a href="TranslationSet.html#isDirty">isDirty</a></li><li data-type='method'><a href="TranslationSet.html#remove">remove</a></li><li data-type='method'><a href="TranslationSet.html#setClean">setClean</a></li><li data-type='method'><a href="TranslationSet.html#size">size</a></li></ul></li></ul><h3>Global</h3><ul><li><a href="global.html#cleanString">cleanString</a></li><li><a href="global.html#formatPath">formatPath</a></li><li><a href="global.html#getLocaleFromPath">getLocaleFromPath</a></li><li><a href="global.html#isEmpty">isEmpty</a></li></ul>
31
+
32
+ <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Resource.html">Resource</a><ul class='methods'><li data-type='method'><a href="Resource.html#addInstance">addInstance</a></li><li data-type='method'><a href="Resource.html#escapeText">escapeText</a></li><li data-type='method'><a href="Resource.html#getAutoKey">getAutoKey</a></li><li data-type='method'><a href="Resource.html#getComment">getComment</a></li><li data-type='method'><a href="Resource.html#getContext">getContext</a></li><li data-type='method'><a href="Resource.html#getDataType">getDataType</a></li><li data-type='method'><a href="Resource.html#getFlavor">getFlavor</a></li><li data-type='method'><a href="Resource.html#getId">getId</a></li><li data-type='method'><a href="Resource.html#getInstances">getInstances</a></li><li data-type='method'><a href="Resource.html#getKey">getKey</a></li><li data-type='method'><a href="Resource.html#getLocalize">getLocalize</a></li><li data-type='method'><a href="Resource.html#getOrigin">getOrigin</a></li><li data-type='method'><a href="Resource.html#getPath">getPath</a></li><li data-type='method'><a href="Resource.html#getProject">getProject</a></li><li data-type='method'><a href="Resource.html#getSource">getSource</a></li><li data-type='method'><a href="Resource.html#getSourceLocale">getSourceLocale</a></li><li data-type='method'><a href="Resource.html#getState">getState</a></li><li data-type='method'><a href="Resource.html#getTarget">getTarget</a></li><li data-type='method'><a href="Resource.html#getTargetLocale">getTargetLocale</a></li><li data-type='method'><a href="Resource.html#getType">getType</a></li><li data-type='method'><a href="Resource.html#isInstance">isInstance</a></li><li data-type='method'><a href="Resource.html#same">same</a></li><li data-type='method'><a href="Resource.html#setComment">setComment</a></li><li data-type='method'><a href="Resource.html#setProject">setProject</a></li><li data-type='method'><a href="Resource.html#setSourceLocale">setSourceLocale</a></li><li data-type='method'><a href="Resource.html#setState">setState</a></li><li data-type='method'><a href="Resource.html#setTargetLocale">setTargetLocale</a></li></ul></li><li><a href="ResourceArray.html">ResourceArray</a><ul class='methods'><li data-type='method'><a href="ResourceArray.html#addInstance">addInstance</a></li><li data-type='method'><a href="ResourceArray.html#addSourceItem">addSourceItem</a></li><li data-type='method'><a href="ResourceArray.html#addTargetItem">addTargetItem</a></li><li data-type='method'><a href="ResourceArray.html#cleanHashKey">cleanHashKey</a></li><li data-type='method'><a href="ResourceArray.html#cleanHashKeyForTranslation">cleanHashKeyForTranslation</a></li><li data-type='method'><a href="ResourceArray.html#clone">clone</a></li><li data-type='method'><a href="ResourceArray.html#equals">equals</a></li><li data-type='method'><a href="ResourceArray.html#equals">equals</a></li><li data-type='method'><a href="ResourceArray.html#escapeText">escapeText</a></li><li data-type='method'><a href="ResourceArray.html#getAutoKey">getAutoKey</a></li><li data-type='method'><a href="ResourceArray.html#getComment">getComment</a></li><li data-type='method'><a href="ResourceArray.html#getContext">getContext</a></li><li data-type='method'><a href="ResourceArray.html#getDataType">getDataType</a></li><li data-type='method'><a href="ResourceArray.html#getFlavor">getFlavor</a></li><li data-type='method'><a href="ResourceArray.html#getId">getId</a></li><li data-type='method'><a href="ResourceArray.html#getInstances">getInstances</a></li><li data-type='method'><a href="ResourceArray.html#getKey">getKey</a></li><li data-type='method'><a href="ResourceArray.html#getLocalize">getLocalize</a></li><li data-type='method'><a href="ResourceArray.html#getOrigin">getOrigin</a></li><li data-type='method'><a href="ResourceArray.html#getPath">getPath</a></li><li data-type='method'><a href="ResourceArray.html#getProject">getProject</a></li><li data-type='method'><a href="ResourceArray.html#getSource">getSource</a></li><li data-type='method'><a href="ResourceArray.html#getSourceArray">getSourceArray</a></li><li data-type='method'><a href="ResourceArray.html#getSourceItem">getSourceItem</a></li><li data-type='method'><a href="ResourceArray.html#getSourceLocale">getSourceLocale</a></li><li data-type='method'><a href="ResourceArray.html#getState">getState</a></li><li data-type='method'><a href="ResourceArray.html#getTarget">getTarget</a></li><li data-type='method'><a href="ResourceArray.html#getTargetArray">getTargetArray</a></li><li data-type='method'><a href="ResourceArray.html#getTargetItem">getTargetItem</a></li><li data-type='method'><a href="ResourceArray.html#getTargetLocale">getTargetLocale</a></li><li data-type='method'><a href="ResourceArray.html#getType">getType</a></li><li data-type='method'><a href="ResourceArray.html#hashKey">hashKey</a></li><li data-type='method'><a href="ResourceArray.html#hashKeyForTranslation">hashKeyForTranslation</a></li><li data-type='method'><a href="ResourceArray.html#isInstance">isInstance</a></li><li data-type='method'><a href="ResourceArray.html#same">same</a></li><li data-type='method'><a href="ResourceArray.html#setComment">setComment</a></li><li data-type='method'><a href="ResourceArray.html#setProject">setProject</a></li><li data-type='method'><a href="ResourceArray.html#setSource">setSource</a></li><li data-type='method'><a href="ResourceArray.html#setSourceLocale">setSourceLocale</a></li><li data-type='method'><a href="ResourceArray.html#setState">setState</a></li><li data-type='method'><a href="ResourceArray.html#setTarget">setTarget</a></li><li data-type='method'><a href="ResourceArray.html#setTargetLocale">setTargetLocale</a></li><li data-type='method'><a href="ResourceArray.html#size">size</a></li><li data-type='method'><a href="ResourceArray.html#.hashKey">hashKey</a></li></ul></li><li><a href="ResourcePlural.html">ResourcePlural</a><ul class='methods'><li data-type='method'><a href="ResourcePlural.html#addInstance">addInstance</a></li><li data-type='method'><a href="ResourcePlural.html#addSourcePlural">addSourcePlural</a></li><li data-type='method'><a href="ResourcePlural.html#addTargetPlural">addTargetPlural</a></li><li data-type='method'><a href="ResourcePlural.html#cleanHashKey">cleanHashKey</a></li><li data-type='method'><a href="ResourcePlural.html#cleanHashKeyForTranslation">cleanHashKeyForTranslation</a></li><li data-type='method'><a href="ResourcePlural.html#clone">clone</a></li><li data-type='method'><a href="ResourcePlural.html#equals">equals</a></li><li data-type='method'><a href="ResourcePlural.html#escapeText">escapeText</a></li><li data-type='method'><a href="ResourcePlural.html#getAllValidCategories">getAllValidCategories</a></li><li data-type='method'><a href="ResourcePlural.html#getAutoKey">getAutoKey</a></li><li data-type='method'><a href="ResourcePlural.html#getCategories">getCategories</a></li><li data-type='method'><a href="ResourcePlural.html#getClasses">getClasses</a></li><li data-type='method'><a href="ResourcePlural.html#getComment">getComment</a></li><li data-type='method'><a href="ResourcePlural.html#getContext">getContext</a></li><li data-type='method'><a href="ResourcePlural.html#getDataType">getDataType</a></li><li data-type='method'><a href="ResourcePlural.html#getFlavor">getFlavor</a></li><li data-type='method'><a href="ResourcePlural.html#getId">getId</a></li><li data-type='method'><a href="ResourcePlural.html#getInstances">getInstances</a></li><li data-type='method'><a href="ResourcePlural.html#getKey">getKey</a></li><li data-type='method'><a href="ResourcePlural.html#getLocalize">getLocalize</a></li><li data-type='method'><a href="ResourcePlural.html#getOrigin">getOrigin</a></li><li data-type='method'><a href="ResourcePlural.html#getPath">getPath</a></li><li data-type='method'><a href="ResourcePlural.html#getProject">getProject</a></li><li data-type='method'><a href="ResourcePlural.html#getSource">getSource</a></li><li data-type='method'><a href="ResourcePlural.html#getSourceLocale">getSourceLocale</a></li><li data-type='method'><a href="ResourcePlural.html#getSourcePlural">getSourcePlural</a></li><li data-type='method'><a href="ResourcePlural.html#getSourcePlurals">getSourcePlurals</a></li><li data-type='method'><a href="ResourcePlural.html#getSourceStrings">getSourceStrings</a></li><li data-type='method'><a href="ResourcePlural.html#getState">getState</a></li><li data-type='method'><a href="ResourcePlural.html#getTarget">getTarget</a></li><li data-type='method'><a href="ResourcePlural.html#getTargetLocale">getTargetLocale</a></li><li data-type='method'><a href="ResourcePlural.html#getTargetPlural">getTargetPlural</a></li><li data-type='method'><a href="ResourcePlural.html#getTargetPlurals">getTargetPlurals</a></li><li data-type='method'><a href="ResourcePlural.html#getTargetStrings">getTargetStrings</a></li><li data-type='method'><a href="ResourcePlural.html#getType">getType</a></li><li data-type='method'><a href="ResourcePlural.html#hashKey">hashKey</a></li><li data-type='method'><a href="ResourcePlural.html#hashKeyForTranslation">hashKeyForTranslation</a></li><li data-type='method'><a href="ResourcePlural.html#isInstance">isInstance</a></li><li data-type='method'><a href="ResourcePlural.html#same">same</a></li><li data-type='method'><a href="ResourcePlural.html#setComment">setComment</a></li><li data-type='method'><a href="ResourcePlural.html#setProject">setProject</a></li><li data-type='method'><a href="ResourcePlural.html#setSource">setSource</a></li><li data-type='method'><a href="ResourcePlural.html#setSourceLocale">setSourceLocale</a></li><li data-type='method'><a href="ResourcePlural.html#setState">setState</a></li><li data-type='method'><a href="ResourcePlural.html#setTarget">setTarget</a></li><li data-type='method'><a href="ResourcePlural.html#setTargetLocale">setTargetLocale</a></li><li data-type='method'><a href="ResourcePlural.html#size">size</a></li><li data-type='method'><a href="ResourcePlural.html#.hashKey">hashKey</a></li></ul></li><li><a href="ResourceString.html">ResourceString</a><ul class='methods'><li data-type='method'><a href="ResourceString.html#addInstance">addInstance</a></li><li data-type='method'><a href="ResourceString.html#cleanHashKey">cleanHashKey</a></li><li data-type='method'><a href="ResourceString.html#cleanHashKeyForTranslation">cleanHashKeyForTranslation</a></li><li data-type='method'><a href="ResourceString.html#clone">clone</a></li><li data-type='method'><a href="ResourceString.html#equals">equals</a></li><li data-type='method'><a href="ResourceString.html#escapeText">escapeText</a></li><li data-type='method'><a href="ResourceString.html#getAutoKey">getAutoKey</a></li><li data-type='method'><a href="ResourceString.html#getComment">getComment</a></li><li data-type='method'><a href="ResourceString.html#getContext">getContext</a></li><li data-type='method'><a href="ResourceString.html#getDataType">getDataType</a></li><li data-type='method'><a href="ResourceString.html#getFlavor">getFlavor</a></li><li data-type='method'><a href="ResourceString.html#getId">getId</a></li><li data-type='method'><a href="ResourceString.html#getInstances">getInstances</a></li><li data-type='method'><a href="ResourceString.html#getKey">getKey</a></li><li data-type='method'><a href="ResourceString.html#getLocalize">getLocalize</a></li><li data-type='method'><a href="ResourceString.html#getOrigin">getOrigin</a></li><li data-type='method'><a href="ResourceString.html#getPath">getPath</a></li><li data-type='method'><a href="ResourceString.html#getProject">getProject</a></li><li data-type='method'><a href="ResourceString.html#getSource">getSource</a></li><li data-type='method'><a href="ResourceString.html#getSourceLocale">getSourceLocale</a></li><li data-type='method'><a href="ResourceString.html#getState">getState</a></li><li data-type='method'><a href="ResourceString.html#getTarget">getTarget</a></li><li data-type='method'><a href="ResourceString.html#getTargetLocale">getTargetLocale</a></li><li data-type='method'><a href="ResourceString.html#getType">getType</a></li><li data-type='method'><a href="ResourceString.html#hashKey">hashKey</a></li><li data-type='method'><a href="ResourceString.html#hashKeyForTranslation">hashKeyForTranslation</a></li><li data-type='method'><a href="ResourceString.html#isInstance">isInstance</a></li><li data-type='method'><a href="ResourceString.html#same">same</a></li><li data-type='method'><a href="ResourceString.html#setComment">setComment</a></li><li data-type='method'><a href="ResourceString.html#setProject">setProject</a></li><li data-type='method'><a href="ResourceString.html#setSource">setSource</a></li><li data-type='method'><a href="ResourceString.html#setSourceLocale">setSourceLocale</a></li><li data-type='method'><a href="ResourceString.html#setState">setState</a></li><li data-type='method'><a href="ResourceString.html#setTarget">setTarget</a></li><li data-type='method'><a href="ResourceString.html#setTargetLocale">setTargetLocale</a></li><li data-type='method'><a href="ResourceString.html#size">size</a></li><li data-type='method'><a href="ResourceString.html#.cleanHashKey">cleanHashKey</a></li><li data-type='method'><a href="ResourceString.html#.hashKey">hashKey</a></li></ul></li><li><a href="ResourceXliff.html">ResourceXliff</a></li><li><a href="TranslationSet.html">TranslationSet</a><ul class='methods'><li data-type='method'><a href="TranslationSet.html#add">add</a></li><li data-type='method'><a href="TranslationSet.html#addAll">addAll</a></li><li data-type='method'><a href="TranslationSet.html#addSet">addSet</a></li><li data-type='method'><a href="TranslationSet.html#clear">clear</a></li><li data-type='method'><a href="TranslationSet.html#diff">diff</a></li><li data-type='method'><a href="TranslationSet.html#get">get</a></li><li data-type='method'><a href="TranslationSet.html#getAll">getAll</a></li><li data-type='method'><a href="TranslationSet.html#getBy">getBy</a></li><li data-type='method'><a href="TranslationSet.html#getBySource">getBySource</a></li><li data-type='method'><a href="TranslationSet.html#getClean">getClean</a></li><li data-type='method'><a href="TranslationSet.html#getContexts">getContexts</a></li><li data-type='method'><a href="TranslationSet.html#getLocales">getLocales</a></li><li data-type='method'><a href="TranslationSet.html#getProjects">getProjects</a></li><li data-type='method'><a href="TranslationSet.html#isDirty">isDirty</a></li><li data-type='method'><a href="TranslationSet.html#remove">remove</a></li><li data-type='method'><a href="TranslationSet.html#setClean">setClean</a></li><li data-type='method'><a href="TranslationSet.html#size">size</a></li></ul></li><li><a href="TranslationUnit.html">TranslationUnit</a><ul class='methods'><li data-type='method'><a href="TranslationUnit.html#addProperties">addProperties</a></li><li data-type='method'><a href="TranslationUnit.html#addVariant">addVariant</a></li><li data-type='method'><a href="TranslationUnit.html#addVariants">addVariants</a></li><li data-type='method'><a href="TranslationUnit.html#clone">clone</a></li><li data-type='method'><a href="TranslationUnit.html#getProperties">getProperties</a></li><li data-type='method'><a href="TranslationUnit.html#getVariants">getVariants</a></li><li data-type='method'><a href="TranslationUnit.html#hashKey">hashKey</a></li></ul></li><li><a href="TranslationVariant.html">TranslationVariant</a><ul class='methods'><li data-type='method'><a href="TranslationVariant.html#hashKey">hashKey</a></li></ul></li></ul><h3>Global</h3><ul><li><a href="global.html#cleanString">cleanString</a></li><li><a href="global.html#containsActualText">containsActualText</a></li><li><a href="global.html#formatPath">formatPath</a></li><li><a href="global.html#getLocaleFromPath">getLocaleFromPath</a></li><li><a href="global.html#hashKey">hashKey</a></li><li><a href="global.html#isEmpty">isEmpty</a></li><li><a href="global.html#objectMap">objectMap</a></li></ul>
33
+
31
34
  </nav>
32
35
 
33
36
  <div id="main">
@@ -68,7 +71,7 @@
68
71
  <br class="clear">
69
72
 
70
73
  <footer>
71
- Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Sun Dec 11 2022 21:08:55 GMT-0800 (Pacific Standard Time) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
74
+ Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.0</a> on Tue Jan 24 2023 22:21:49 GMT-0800 (Pacific Standard Time) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
72
75
  </footer>
73
76
 
74
77
  <script>prettyPrint();</script>
@@ -1,15 +1,34 @@
1
1
  function hideAllButCurrent(){
2
2
  //by default all submenut items are hidden
3
3
  //but we need to rehide them for search
4
+ document.querySelectorAll("nav > ul").forEach(function(parent) {
5
+ if (parent.className.indexOf("collapse_top") !== -1) {
6
+ parent.style.display = "none";
7
+ }
8
+ });
4
9
  document.querySelectorAll("nav > ul > li > ul li").forEach(function(parent) {
5
10
  parent.style.display = "none";
6
11
  });
12
+ document.querySelectorAll("nav > h3").forEach(function(section) {
13
+ if (section.className.indexOf("collapsed_header") !== -1) {
14
+ section.addEventListener("click", function(){
15
+ if (section.nextSibling.style.display === "none") {
16
+ section.nextSibling.style.display = "block";
17
+ } else {
18
+ section.nextSibling.style.display = "none";
19
+ }
20
+ });
21
+ }
22
+ });
7
23
 
8
24
  //only current page (if it exists) should be opened
9
25
  var file = window.location.pathname.split("/").pop().replace(/\.html/, '');
10
26
  document.querySelectorAll("nav > ul > li > a").forEach(function(parent) {
11
27
  var href = parent.attributes.href.value.replace(/\.html/, '');
12
28
  if (file === href) {
29
+ if (parent.parentNode.parentNode.className.indexOf("collapse_top") !== -1) {
30
+ parent.parentNode.parentNode.style.display = "block";
31
+ }
13
32
  parent.parentNode.querySelectorAll("ul li").forEach(function(elem) {
14
33
  elem.style.display = "block";
15
34
  });
@@ -0,0 +1,28 @@
1
+ if (typeof fetch === 'function') {
2
+ const init = () => {
3
+ if (typeof scrollToNavItem !== 'function') return false
4
+ scrollToNavItem()
5
+ // hideAllButCurrent not always loaded
6
+ if (typeof hideAllButCurrent === 'function') hideAllButCurrent()
7
+ return true
8
+ }
9
+ fetch('./nav.inc.html')
10
+ .then(response => response.ok ? response.text() : `${response.url} => ${response.status} ${response.statusText}`)
11
+ .then(body => {
12
+ document.querySelector('nav').innerHTML += body
13
+ // nav.js should be quicker to load than nav.inc.html, a fallback just in case
14
+ return init()
15
+ })
16
+ .then(done => {
17
+ if (done) return
18
+ let i = 0
19
+ ;(function waitUntilNavJs () {
20
+ if (init()) return
21
+ if (i++ < 100) return setTimeout(waitUntilNavJs, 300)
22
+ console.error(Error('nav.js not loaded after 30s waiting for it'))
23
+ })()
24
+ })
25
+ .catch(error => console.error(error))
26
+ } else {
27
+ console.error(Error('Browser too old to display commonNav (remove commonNav docdash option)'))
28
+ }
@@ -33,6 +33,9 @@ document.getElementById("nav-search").addEventListener("keyup", function(event)
33
33
  document.querySelectorAll("nav > ul > li").forEach(function(elem) {
34
34
  elem.style.display = "block";
35
35
  });
36
+ document.querySelectorAll("nav > ul").forEach(function(elem) {
37
+ elem.style.display = "block";
38
+ });
36
39
  //hide all results
37
40
  document.querySelectorAll("nav > ul > li > ul li").forEach(function(elem) {
38
41
  elem.style.display = "none";
@@ -79,5 +82,18 @@ document.getElementById("nav-search").addEventListener("keyup", function(event)
79
82
  parent.style.display = "none";
80
83
  }
81
84
  });
85
+ document.querySelectorAll("nav > ul.collapse_top").forEach(function(parent) {
86
+ var countVisible = 0;
87
+ parent.querySelectorAll("li").forEach(function(elem) {
88
+ if (elem.style.display !== "none") {
89
+ countVisible++;
90
+ }
91
+ });
92
+
93
+ if (countVisible == 0) {
94
+ //has no child at all and does not contain text
95
+ parent.style.display = "none";
96
+ }
97
+ });
82
98
  }
83
99
  });
@@ -162,12 +162,19 @@ h6 {
162
162
  }
163
163
 
164
164
 
165
- tt, code, kbd, samp {
165
+ tt, code, kbd, samp, pre {
166
166
  font-family: Consolas, Monaco, 'Andale Mono', monospace;
167
167
  background: #f4f4f4;
168
+ }
169
+
170
+ tt, code, kbd, samp{
168
171
  padding: 1px 5px;
169
172
  }
170
173
 
174
+ pre {
175
+ padding-bottom: 1em;
176
+ }
177
+
171
178
  .class-description {
172
179
  font-size: 130%;
173
180
  line-height: 140%;
@@ -242,6 +249,10 @@ nav h3 {
242
249
  color: #000;
243
250
  }
244
251
 
252
+ nav h3.collapsed_header {
253
+ cursor: pointer;
254
+ }
255
+
245
256
  nav ul {
246
257
  font-family: 'Lucida Grande', 'Lucida Sans Unicode', arial, sans-serif;
247
258
  font-size: 100%;
@@ -762,4 +773,4 @@ html[data-search-mode] .level-hide {
762
773
  font-weight: 300;
763
774
  font-style: normal;
764
775
 
765
- }
776
+ }
@@ -76,4 +76,5 @@
76
76
  ol.linenums {
77
77
  margin-top: 0;
78
78
  margin-bottom: 0;
79
+ padding-bottom: 2px;
79
80
  }
@@ -14,6 +14,7 @@
14
14
  <link type="text/css" rel="stylesheet" href="styles/prettify.css">
15
15
  <link type="text/css" rel="stylesheet" href="styles/jsdoc.css">
16
16
  <script src="scripts/nav.js" defer></script>
17
+
17
18
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
18
19
  </head>
19
20
  <body>
@@ -27,7 +28,9 @@
27
28
 
28
29
  <nav >
29
30
 
30
- <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Resource.html">Resource</a><ul class='methods'><li data-type='method'><a href="Resource.html#addInstance">addInstance</a></li><li data-type='method'><a href="Resource.html#escapeText">escapeText</a></li><li data-type='method'><a href="Resource.html#getAutoKey">getAutoKey</a></li><li data-type='method'><a href="Resource.html#getComment">getComment</a></li><li data-type='method'><a href="Resource.html#getContext">getContext</a></li><li data-type='method'><a href="Resource.html#getDataType">getDataType</a></li><li data-type='method'><a href="Resource.html#getFlavor">getFlavor</a></li><li data-type='method'><a href="Resource.html#getId">getId</a></li><li data-type='method'><a href="Resource.html#getInstances">getInstances</a></li><li data-type='method'><a href="Resource.html#getKey">getKey</a></li><li data-type='method'><a href="Resource.html#getLocalize">getLocalize</a></li><li data-type='method'><a href="Resource.html#getOrigin">getOrigin</a></li><li data-type='method'><a href="Resource.html#getPath">getPath</a></li><li data-type='method'><a href="Resource.html#getProject">getProject</a></li><li data-type='method'><a href="Resource.html#getSource">getSource</a></li><li data-type='method'><a href="Resource.html#getSourceLocale">getSourceLocale</a></li><li data-type='method'><a href="Resource.html#getState">getState</a></li><li data-type='method'><a href="Resource.html#getTarget">getTarget</a></li><li data-type='method'><a href="Resource.html#getTargetLocale">getTargetLocale</a></li><li data-type='method'><a href="Resource.html#getType">getType</a></li><li data-type='method'><a href="Resource.html#isInstance">isInstance</a></li><li data-type='method'><a href="Resource.html#same">same</a></li><li data-type='method'><a href="Resource.html#setComment">setComment</a></li><li data-type='method'><a href="Resource.html#setProject">setProject</a></li><li data-type='method'><a href="Resource.html#setSourceLocale">setSourceLocale</a></li><li data-type='method'><a href="Resource.html#setState">setState</a></li><li data-type='method'><a href="Resource.html#setTargetLocale">setTargetLocale</a></li></ul></li><li><a href="ResourceArray.html">ResourceArray</a><ul class='methods'><li data-type='method'><a href="ResourceArray.html#.hashKey">hashKey</a></li><li data-type='method'><a href="ResourceArray.html#addInstance">addInstance</a></li><li data-type='method'><a href="ResourceArray.html#addSourceItem">addSourceItem</a></li><li data-type='method'><a href="ResourceArray.html#addTargetItem">addTargetItem</a></li><li data-type='method'><a href="ResourceArray.html#cleanHashKey">cleanHashKey</a></li><li data-type='method'><a href="ResourceArray.html#cleanHashKeyForTranslation">cleanHashKeyForTranslation</a></li><li data-type='method'><a href="ResourceArray.html#clone">clone</a></li><li data-type='method'><a href="ResourceArray.html#equals">equals</a></li><li data-type='method'><a href="ResourceArray.html#equals">equals</a></li><li data-type='method'><a href="ResourceArray.html#escapeText">escapeText</a></li><li data-type='method'><a href="ResourceArray.html#getAutoKey">getAutoKey</a></li><li data-type='method'><a href="ResourceArray.html#getComment">getComment</a></li><li data-type='method'><a href="ResourceArray.html#getContext">getContext</a></li><li data-type='method'><a href="ResourceArray.html#getDataType">getDataType</a></li><li data-type='method'><a href="ResourceArray.html#getFlavor">getFlavor</a></li><li data-type='method'><a href="ResourceArray.html#getId">getId</a></li><li data-type='method'><a href="ResourceArray.html#getInstances">getInstances</a></li><li data-type='method'><a href="ResourceArray.html#getKey">getKey</a></li><li data-type='method'><a href="ResourceArray.html#getLocalize">getLocalize</a></li><li data-type='method'><a href="ResourceArray.html#getOrigin">getOrigin</a></li><li data-type='method'><a href="ResourceArray.html#getPath">getPath</a></li><li data-type='method'><a href="ResourceArray.html#getProject">getProject</a></li><li data-type='method'><a href="ResourceArray.html#getSource">getSource</a></li><li data-type='method'><a href="ResourceArray.html#getSourceArray">getSourceArray</a></li><li data-type='method'><a href="ResourceArray.html#getSourceItem">getSourceItem</a></li><li data-type='method'><a href="ResourceArray.html#getSourceLocale">getSourceLocale</a></li><li data-type='method'><a href="ResourceArray.html#getState">getState</a></li><li data-type='method'><a href="ResourceArray.html#getTarget">getTarget</a></li><li data-type='method'><a href="ResourceArray.html#getTargetArray">getTargetArray</a></li><li data-type='method'><a href="ResourceArray.html#getTargetItem">getTargetItem</a></li><li data-type='method'><a href="ResourceArray.html#getTargetLocale">getTargetLocale</a></li><li data-type='method'><a href="ResourceArray.html#getType">getType</a></li><li data-type='method'><a href="ResourceArray.html#hashKey">hashKey</a></li><li data-type='method'><a href="ResourceArray.html#hashKeyForTranslation">hashKeyForTranslation</a></li><li data-type='method'><a href="ResourceArray.html#isInstance">isInstance</a></li><li data-type='method'><a href="ResourceArray.html#same">same</a></li><li data-type='method'><a href="ResourceArray.html#setComment">setComment</a></li><li data-type='method'><a href="ResourceArray.html#setProject">setProject</a></li><li data-type='method'><a href="ResourceArray.html#setSource">setSource</a></li><li data-type='method'><a href="ResourceArray.html#setSourceLocale">setSourceLocale</a></li><li data-type='method'><a href="ResourceArray.html#setState">setState</a></li><li data-type='method'><a href="ResourceArray.html#setTarget">setTarget</a></li><li data-type='method'><a href="ResourceArray.html#setTargetLocale">setTargetLocale</a></li><li data-type='method'><a href="ResourceArray.html#size">size</a></li></ul></li><li><a href="ResourcePlural.html">ResourcePlural</a><ul class='methods'><li data-type='method'><a href="ResourcePlural.html#.hashKey">hashKey</a></li><li data-type='method'><a href="ResourcePlural.html#addInstance">addInstance</a></li><li data-type='method'><a href="ResourcePlural.html#addSourcePlural">addSourcePlural</a></li><li data-type='method'><a href="ResourcePlural.html#addTargetPlural">addTargetPlural</a></li><li data-type='method'><a href="ResourcePlural.html#cleanHashKey">cleanHashKey</a></li><li data-type='method'><a href="ResourcePlural.html#cleanHashKeyForTranslation">cleanHashKeyForTranslation</a></li><li data-type='method'><a href="ResourcePlural.html#clone">clone</a></li><li data-type='method'><a href="ResourcePlural.html#equals">equals</a></li><li data-type='method'><a href="ResourcePlural.html#escapeText">escapeText</a></li><li data-type='method'><a href="ResourcePlural.html#getAllValidCategories">getAllValidCategories</a></li><li data-type='method'><a href="ResourcePlural.html#getAutoKey">getAutoKey</a></li><li data-type='method'><a href="ResourcePlural.html#getCategories">getCategories</a></li><li data-type='method'><a href="ResourcePlural.html#getClasses">getClasses</a></li><li data-type='method'><a href="ResourcePlural.html#getComment">getComment</a></li><li data-type='method'><a href="ResourcePlural.html#getContext">getContext</a></li><li data-type='method'><a href="ResourcePlural.html#getDataType">getDataType</a></li><li data-type='method'><a href="ResourcePlural.html#getFlavor">getFlavor</a></li><li data-type='method'><a href="ResourcePlural.html#getId">getId</a></li><li data-type='method'><a href="ResourcePlural.html#getInstances">getInstances</a></li><li data-type='method'><a href="ResourcePlural.html#getKey">getKey</a></li><li data-type='method'><a href="ResourcePlural.html#getLocalize">getLocalize</a></li><li data-type='method'><a href="ResourcePlural.html#getOrigin">getOrigin</a></li><li data-type='method'><a href="ResourcePlural.html#getPath">getPath</a></li><li data-type='method'><a href="ResourcePlural.html#getProject">getProject</a></li><li data-type='method'><a href="ResourcePlural.html#getSource">getSource</a></li><li data-type='method'><a href="ResourcePlural.html#getSourceLocale">getSourceLocale</a></li><li data-type='method'><a href="ResourcePlural.html#getSourcePlural">getSourcePlural</a></li><li data-type='method'><a href="ResourcePlural.html#getSourcePlurals">getSourcePlurals</a></li><li data-type='method'><a href="ResourcePlural.html#getSourceStrings">getSourceStrings</a></li><li data-type='method'><a href="ResourcePlural.html#getState">getState</a></li><li data-type='method'><a href="ResourcePlural.html#getTarget">getTarget</a></li><li data-type='method'><a href="ResourcePlural.html#getTargetLocale">getTargetLocale</a></li><li data-type='method'><a href="ResourcePlural.html#getTargetPlural">getTargetPlural</a></li><li data-type='method'><a href="ResourcePlural.html#getTargetPlurals">getTargetPlurals</a></li><li data-type='method'><a href="ResourcePlural.html#getTargetStrings">getTargetStrings</a></li><li data-type='method'><a href="ResourcePlural.html#getType">getType</a></li><li data-type='method'><a href="ResourcePlural.html#hashKey">hashKey</a></li><li data-type='method'><a href="ResourcePlural.html#hashKeyForTranslation">hashKeyForTranslation</a></li><li data-type='method'><a href="ResourcePlural.html#isInstance">isInstance</a></li><li data-type='method'><a href="ResourcePlural.html#same">same</a></li><li data-type='method'><a href="ResourcePlural.html#setComment">setComment</a></li><li data-type='method'><a href="ResourcePlural.html#setProject">setProject</a></li><li data-type='method'><a href="ResourcePlural.html#setSource">setSource</a></li><li data-type='method'><a href="ResourcePlural.html#setSourceLocale">setSourceLocale</a></li><li data-type='method'><a href="ResourcePlural.html#setState">setState</a></li><li data-type='method'><a href="ResourcePlural.html#setTarget">setTarget</a></li><li data-type='method'><a href="ResourcePlural.html#setTargetLocale">setTargetLocale</a></li><li data-type='method'><a href="ResourcePlural.html#size">size</a></li></ul></li><li><a href="ResourceString.html">ResourceString</a><ul class='methods'><li data-type='method'><a href="ResourceString.html#.cleanHashKey">cleanHashKey</a></li><li data-type='method'><a href="ResourceString.html#.hashKey">hashKey</a></li><li data-type='method'><a href="ResourceString.html#addInstance">addInstance</a></li><li data-type='method'><a href="ResourceString.html#cleanHashKey">cleanHashKey</a></li><li data-type='method'><a href="ResourceString.html#cleanHashKeyForTranslation">cleanHashKeyForTranslation</a></li><li data-type='method'><a href="ResourceString.html#clone">clone</a></li><li data-type='method'><a href="ResourceString.html#equals">equals</a></li><li data-type='method'><a href="ResourceString.html#escapeText">escapeText</a></li><li data-type='method'><a href="ResourceString.html#getAutoKey">getAutoKey</a></li><li data-type='method'><a href="ResourceString.html#getComment">getComment</a></li><li data-type='method'><a href="ResourceString.html#getContext">getContext</a></li><li data-type='method'><a href="ResourceString.html#getDataType">getDataType</a></li><li data-type='method'><a href="ResourceString.html#getFlavor">getFlavor</a></li><li data-type='method'><a href="ResourceString.html#getId">getId</a></li><li data-type='method'><a href="ResourceString.html#getInstances">getInstances</a></li><li data-type='method'><a href="ResourceString.html#getKey">getKey</a></li><li data-type='method'><a href="ResourceString.html#getLocalize">getLocalize</a></li><li data-type='method'><a href="ResourceString.html#getOrigin">getOrigin</a></li><li data-type='method'><a href="ResourceString.html#getPath">getPath</a></li><li data-type='method'><a href="ResourceString.html#getProject">getProject</a></li><li data-type='method'><a href="ResourceString.html#getSource">getSource</a></li><li data-type='method'><a href="ResourceString.html#getSourceLocale">getSourceLocale</a></li><li data-type='method'><a href="ResourceString.html#getState">getState</a></li><li data-type='method'><a href="ResourceString.html#getTarget">getTarget</a></li><li data-type='method'><a href="ResourceString.html#getTargetLocale">getTargetLocale</a></li><li data-type='method'><a href="ResourceString.html#getType">getType</a></li><li data-type='method'><a href="ResourceString.html#hashKey">hashKey</a></li><li data-type='method'><a href="ResourceString.html#hashKeyForTranslation">hashKeyForTranslation</a></li><li data-type='method'><a href="ResourceString.html#isInstance">isInstance</a></li><li data-type='method'><a href="ResourceString.html#same">same</a></li><li data-type='method'><a href="ResourceString.html#setComment">setComment</a></li><li data-type='method'><a href="ResourceString.html#setProject">setProject</a></li><li data-type='method'><a href="ResourceString.html#setSource">setSource</a></li><li data-type='method'><a href="ResourceString.html#setSourceLocale">setSourceLocale</a></li><li data-type='method'><a href="ResourceString.html#setState">setState</a></li><li data-type='method'><a href="ResourceString.html#setTarget">setTarget</a></li><li data-type='method'><a href="ResourceString.html#setTargetLocale">setTargetLocale</a></li><li data-type='method'><a href="ResourceString.html#size">size</a></li></ul></li><li><a href="ResourceXliff.html">ResourceXliff</a></li><li><a href="TranslationSet.html">TranslationSet</a><ul class='methods'><li data-type='method'><a href="TranslationSet.html#add">add</a></li><li data-type='method'><a href="TranslationSet.html#addAll">addAll</a></li><li data-type='method'><a href="TranslationSet.html#addSet">addSet</a></li><li data-type='method'><a href="TranslationSet.html#clear">clear</a></li><li data-type='method'><a href="TranslationSet.html#diff">diff</a></li><li data-type='method'><a href="TranslationSet.html#get">get</a></li><li data-type='method'><a href="TranslationSet.html#getAll">getAll</a></li><li data-type='method'><a href="TranslationSet.html#getBy">getBy</a></li><li data-type='method'><a href="TranslationSet.html#getBySource">getBySource</a></li><li data-type='method'><a href="TranslationSet.html#getClean">getClean</a></li><li data-type='method'><a href="TranslationSet.html#getContexts">getContexts</a></li><li data-type='method'><a href="TranslationSet.html#getLocales">getLocales</a></li><li data-type='method'><a href="TranslationSet.html#getProjects">getProjects</a></li><li data-type='method'><a href="TranslationSet.html#isDirty">isDirty</a></li><li data-type='method'><a href="TranslationSet.html#remove">remove</a></li><li data-type='method'><a href="TranslationSet.html#setClean">setClean</a></li><li data-type='method'><a href="TranslationSet.html#size">size</a></li></ul></li></ul><h3>Global</h3><ul><li><a href="global.html#cleanString">cleanString</a></li><li><a href="global.html#formatPath">formatPath</a></li><li><a href="global.html#getLocaleFromPath">getLocaleFromPath</a></li><li><a href="global.html#isEmpty">isEmpty</a></li></ul>
31
+
32
+ <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Resource.html">Resource</a><ul class='methods'><li data-type='method'><a href="Resource.html#addInstance">addInstance</a></li><li data-type='method'><a href="Resource.html#escapeText">escapeText</a></li><li data-type='method'><a href="Resource.html#getAutoKey">getAutoKey</a></li><li data-type='method'><a href="Resource.html#getComment">getComment</a></li><li data-type='method'><a href="Resource.html#getContext">getContext</a></li><li data-type='method'><a href="Resource.html#getDataType">getDataType</a></li><li data-type='method'><a href="Resource.html#getFlavor">getFlavor</a></li><li data-type='method'><a href="Resource.html#getId">getId</a></li><li data-type='method'><a href="Resource.html#getInstances">getInstances</a></li><li data-type='method'><a href="Resource.html#getKey">getKey</a></li><li data-type='method'><a href="Resource.html#getLocalize">getLocalize</a></li><li data-type='method'><a href="Resource.html#getOrigin">getOrigin</a></li><li data-type='method'><a href="Resource.html#getPath">getPath</a></li><li data-type='method'><a href="Resource.html#getProject">getProject</a></li><li data-type='method'><a href="Resource.html#getSource">getSource</a></li><li data-type='method'><a href="Resource.html#getSourceLocale">getSourceLocale</a></li><li data-type='method'><a href="Resource.html#getState">getState</a></li><li data-type='method'><a href="Resource.html#getTarget">getTarget</a></li><li data-type='method'><a href="Resource.html#getTargetLocale">getTargetLocale</a></li><li data-type='method'><a href="Resource.html#getType">getType</a></li><li data-type='method'><a href="Resource.html#isInstance">isInstance</a></li><li data-type='method'><a href="Resource.html#same">same</a></li><li data-type='method'><a href="Resource.html#setComment">setComment</a></li><li data-type='method'><a href="Resource.html#setProject">setProject</a></li><li data-type='method'><a href="Resource.html#setSourceLocale">setSourceLocale</a></li><li data-type='method'><a href="Resource.html#setState">setState</a></li><li data-type='method'><a href="Resource.html#setTargetLocale">setTargetLocale</a></li></ul></li><li><a href="ResourceArray.html">ResourceArray</a><ul class='methods'><li data-type='method'><a href="ResourceArray.html#addInstance">addInstance</a></li><li data-type='method'><a href="ResourceArray.html#addSourceItem">addSourceItem</a></li><li data-type='method'><a href="ResourceArray.html#addTargetItem">addTargetItem</a></li><li data-type='method'><a href="ResourceArray.html#cleanHashKey">cleanHashKey</a></li><li data-type='method'><a href="ResourceArray.html#cleanHashKeyForTranslation">cleanHashKeyForTranslation</a></li><li data-type='method'><a href="ResourceArray.html#clone">clone</a></li><li data-type='method'><a href="ResourceArray.html#equals">equals</a></li><li data-type='method'><a href="ResourceArray.html#equals">equals</a></li><li data-type='method'><a href="ResourceArray.html#escapeText">escapeText</a></li><li data-type='method'><a href="ResourceArray.html#getAutoKey">getAutoKey</a></li><li data-type='method'><a href="ResourceArray.html#getComment">getComment</a></li><li data-type='method'><a href="ResourceArray.html#getContext">getContext</a></li><li data-type='method'><a href="ResourceArray.html#getDataType">getDataType</a></li><li data-type='method'><a href="ResourceArray.html#getFlavor">getFlavor</a></li><li data-type='method'><a href="ResourceArray.html#getId">getId</a></li><li data-type='method'><a href="ResourceArray.html#getInstances">getInstances</a></li><li data-type='method'><a href="ResourceArray.html#getKey">getKey</a></li><li data-type='method'><a href="ResourceArray.html#getLocalize">getLocalize</a></li><li data-type='method'><a href="ResourceArray.html#getOrigin">getOrigin</a></li><li data-type='method'><a href="ResourceArray.html#getPath">getPath</a></li><li data-type='method'><a href="ResourceArray.html#getProject">getProject</a></li><li data-type='method'><a href="ResourceArray.html#getSource">getSource</a></li><li data-type='method'><a href="ResourceArray.html#getSourceArray">getSourceArray</a></li><li data-type='method'><a href="ResourceArray.html#getSourceItem">getSourceItem</a></li><li data-type='method'><a href="ResourceArray.html#getSourceLocale">getSourceLocale</a></li><li data-type='method'><a href="ResourceArray.html#getState">getState</a></li><li data-type='method'><a href="ResourceArray.html#getTarget">getTarget</a></li><li data-type='method'><a href="ResourceArray.html#getTargetArray">getTargetArray</a></li><li data-type='method'><a href="ResourceArray.html#getTargetItem">getTargetItem</a></li><li data-type='method'><a href="ResourceArray.html#getTargetLocale">getTargetLocale</a></li><li data-type='method'><a href="ResourceArray.html#getType">getType</a></li><li data-type='method'><a href="ResourceArray.html#hashKey">hashKey</a></li><li data-type='method'><a href="ResourceArray.html#hashKeyForTranslation">hashKeyForTranslation</a></li><li data-type='method'><a href="ResourceArray.html#isInstance">isInstance</a></li><li data-type='method'><a href="ResourceArray.html#same">same</a></li><li data-type='method'><a href="ResourceArray.html#setComment">setComment</a></li><li data-type='method'><a href="ResourceArray.html#setProject">setProject</a></li><li data-type='method'><a href="ResourceArray.html#setSource">setSource</a></li><li data-type='method'><a href="ResourceArray.html#setSourceLocale">setSourceLocale</a></li><li data-type='method'><a href="ResourceArray.html#setState">setState</a></li><li data-type='method'><a href="ResourceArray.html#setTarget">setTarget</a></li><li data-type='method'><a href="ResourceArray.html#setTargetLocale">setTargetLocale</a></li><li data-type='method'><a href="ResourceArray.html#size">size</a></li><li data-type='method'><a href="ResourceArray.html#.hashKey">hashKey</a></li></ul></li><li><a href="ResourcePlural.html">ResourcePlural</a><ul class='methods'><li data-type='method'><a href="ResourcePlural.html#addInstance">addInstance</a></li><li data-type='method'><a href="ResourcePlural.html#addSourcePlural">addSourcePlural</a></li><li data-type='method'><a href="ResourcePlural.html#addTargetPlural">addTargetPlural</a></li><li data-type='method'><a href="ResourcePlural.html#cleanHashKey">cleanHashKey</a></li><li data-type='method'><a href="ResourcePlural.html#cleanHashKeyForTranslation">cleanHashKeyForTranslation</a></li><li data-type='method'><a href="ResourcePlural.html#clone">clone</a></li><li data-type='method'><a href="ResourcePlural.html#equals">equals</a></li><li data-type='method'><a href="ResourcePlural.html#escapeText">escapeText</a></li><li data-type='method'><a href="ResourcePlural.html#getAllValidCategories">getAllValidCategories</a></li><li data-type='method'><a href="ResourcePlural.html#getAutoKey">getAutoKey</a></li><li data-type='method'><a href="ResourcePlural.html#getCategories">getCategories</a></li><li data-type='method'><a href="ResourcePlural.html#getClasses">getClasses</a></li><li data-type='method'><a href="ResourcePlural.html#getComment">getComment</a></li><li data-type='method'><a href="ResourcePlural.html#getContext">getContext</a></li><li data-type='method'><a href="ResourcePlural.html#getDataType">getDataType</a></li><li data-type='method'><a href="ResourcePlural.html#getFlavor">getFlavor</a></li><li data-type='method'><a href="ResourcePlural.html#getId">getId</a></li><li data-type='method'><a href="ResourcePlural.html#getInstances">getInstances</a></li><li data-type='method'><a href="ResourcePlural.html#getKey">getKey</a></li><li data-type='method'><a href="ResourcePlural.html#getLocalize">getLocalize</a></li><li data-type='method'><a href="ResourcePlural.html#getOrigin">getOrigin</a></li><li data-type='method'><a href="ResourcePlural.html#getPath">getPath</a></li><li data-type='method'><a href="ResourcePlural.html#getProject">getProject</a></li><li data-type='method'><a href="ResourcePlural.html#getSource">getSource</a></li><li data-type='method'><a href="ResourcePlural.html#getSourceLocale">getSourceLocale</a></li><li data-type='method'><a href="ResourcePlural.html#getSourcePlural">getSourcePlural</a></li><li data-type='method'><a href="ResourcePlural.html#getSourcePlurals">getSourcePlurals</a></li><li data-type='method'><a href="ResourcePlural.html#getSourceStrings">getSourceStrings</a></li><li data-type='method'><a href="ResourcePlural.html#getState">getState</a></li><li data-type='method'><a href="ResourcePlural.html#getTarget">getTarget</a></li><li data-type='method'><a href="ResourcePlural.html#getTargetLocale">getTargetLocale</a></li><li data-type='method'><a href="ResourcePlural.html#getTargetPlural">getTargetPlural</a></li><li data-type='method'><a href="ResourcePlural.html#getTargetPlurals">getTargetPlurals</a></li><li data-type='method'><a href="ResourcePlural.html#getTargetStrings">getTargetStrings</a></li><li data-type='method'><a href="ResourcePlural.html#getType">getType</a></li><li data-type='method'><a href="ResourcePlural.html#hashKey">hashKey</a></li><li data-type='method'><a href="ResourcePlural.html#hashKeyForTranslation">hashKeyForTranslation</a></li><li data-type='method'><a href="ResourcePlural.html#isInstance">isInstance</a></li><li data-type='method'><a href="ResourcePlural.html#same">same</a></li><li data-type='method'><a href="ResourcePlural.html#setComment">setComment</a></li><li data-type='method'><a href="ResourcePlural.html#setProject">setProject</a></li><li data-type='method'><a href="ResourcePlural.html#setSource">setSource</a></li><li data-type='method'><a href="ResourcePlural.html#setSourceLocale">setSourceLocale</a></li><li data-type='method'><a href="ResourcePlural.html#setState">setState</a></li><li data-type='method'><a href="ResourcePlural.html#setTarget">setTarget</a></li><li data-type='method'><a href="ResourcePlural.html#setTargetLocale">setTargetLocale</a></li><li data-type='method'><a href="ResourcePlural.html#size">size</a></li><li data-type='method'><a href="ResourcePlural.html#.hashKey">hashKey</a></li></ul></li><li><a href="ResourceString.html">ResourceString</a><ul class='methods'><li data-type='method'><a href="ResourceString.html#addInstance">addInstance</a></li><li data-type='method'><a href="ResourceString.html#cleanHashKey">cleanHashKey</a></li><li data-type='method'><a href="ResourceString.html#cleanHashKeyForTranslation">cleanHashKeyForTranslation</a></li><li data-type='method'><a href="ResourceString.html#clone">clone</a></li><li data-type='method'><a href="ResourceString.html#equals">equals</a></li><li data-type='method'><a href="ResourceString.html#escapeText">escapeText</a></li><li data-type='method'><a href="ResourceString.html#getAutoKey">getAutoKey</a></li><li data-type='method'><a href="ResourceString.html#getComment">getComment</a></li><li data-type='method'><a href="ResourceString.html#getContext">getContext</a></li><li data-type='method'><a href="ResourceString.html#getDataType">getDataType</a></li><li data-type='method'><a href="ResourceString.html#getFlavor">getFlavor</a></li><li data-type='method'><a href="ResourceString.html#getId">getId</a></li><li data-type='method'><a href="ResourceString.html#getInstances">getInstances</a></li><li data-type='method'><a href="ResourceString.html#getKey">getKey</a></li><li data-type='method'><a href="ResourceString.html#getLocalize">getLocalize</a></li><li data-type='method'><a href="ResourceString.html#getOrigin">getOrigin</a></li><li data-type='method'><a href="ResourceString.html#getPath">getPath</a></li><li data-type='method'><a href="ResourceString.html#getProject">getProject</a></li><li data-type='method'><a href="ResourceString.html#getSource">getSource</a></li><li data-type='method'><a href="ResourceString.html#getSourceLocale">getSourceLocale</a></li><li data-type='method'><a href="ResourceString.html#getState">getState</a></li><li data-type='method'><a href="ResourceString.html#getTarget">getTarget</a></li><li data-type='method'><a href="ResourceString.html#getTargetLocale">getTargetLocale</a></li><li data-type='method'><a href="ResourceString.html#getType">getType</a></li><li data-type='method'><a href="ResourceString.html#hashKey">hashKey</a></li><li data-type='method'><a href="ResourceString.html#hashKeyForTranslation">hashKeyForTranslation</a></li><li data-type='method'><a href="ResourceString.html#isInstance">isInstance</a></li><li data-type='method'><a href="ResourceString.html#same">same</a></li><li data-type='method'><a href="ResourceString.html#setComment">setComment</a></li><li data-type='method'><a href="ResourceString.html#setProject">setProject</a></li><li data-type='method'><a href="ResourceString.html#setSource">setSource</a></li><li data-type='method'><a href="ResourceString.html#setSourceLocale">setSourceLocale</a></li><li data-type='method'><a href="ResourceString.html#setState">setState</a></li><li data-type='method'><a href="ResourceString.html#setTarget">setTarget</a></li><li data-type='method'><a href="ResourceString.html#setTargetLocale">setTargetLocale</a></li><li data-type='method'><a href="ResourceString.html#size">size</a></li><li data-type='method'><a href="ResourceString.html#.cleanHashKey">cleanHashKey</a></li><li data-type='method'><a href="ResourceString.html#.hashKey">hashKey</a></li></ul></li><li><a href="ResourceXliff.html">ResourceXliff</a></li><li><a href="TranslationSet.html">TranslationSet</a><ul class='methods'><li data-type='method'><a href="TranslationSet.html#add">add</a></li><li data-type='method'><a href="TranslationSet.html#addAll">addAll</a></li><li data-type='method'><a href="TranslationSet.html#addSet">addSet</a></li><li data-type='method'><a href="TranslationSet.html#clear">clear</a></li><li data-type='method'><a href="TranslationSet.html#diff">diff</a></li><li data-type='method'><a href="TranslationSet.html#get">get</a></li><li data-type='method'><a href="TranslationSet.html#getAll">getAll</a></li><li data-type='method'><a href="TranslationSet.html#getBy">getBy</a></li><li data-type='method'><a href="TranslationSet.html#getBySource">getBySource</a></li><li data-type='method'><a href="TranslationSet.html#getClean">getClean</a></li><li data-type='method'><a href="TranslationSet.html#getContexts">getContexts</a></li><li data-type='method'><a href="TranslationSet.html#getLocales">getLocales</a></li><li data-type='method'><a href="TranslationSet.html#getProjects">getProjects</a></li><li data-type='method'><a href="TranslationSet.html#isDirty">isDirty</a></li><li data-type='method'><a href="TranslationSet.html#remove">remove</a></li><li data-type='method'><a href="TranslationSet.html#setClean">setClean</a></li><li data-type='method'><a href="TranslationSet.html#size">size</a></li></ul></li><li><a href="TranslationUnit.html">TranslationUnit</a><ul class='methods'><li data-type='method'><a href="TranslationUnit.html#addProperties">addProperties</a></li><li data-type='method'><a href="TranslationUnit.html#addVariant">addVariant</a></li><li data-type='method'><a href="TranslationUnit.html#addVariants">addVariants</a></li><li data-type='method'><a href="TranslationUnit.html#clone">clone</a></li><li data-type='method'><a href="TranslationUnit.html#getProperties">getProperties</a></li><li data-type='method'><a href="TranslationUnit.html#getVariants">getVariants</a></li><li data-type='method'><a href="TranslationUnit.html#hashKey">hashKey</a></li></ul></li><li><a href="TranslationVariant.html">TranslationVariant</a><ul class='methods'><li data-type='method'><a href="TranslationVariant.html#hashKey">hashKey</a></li></ul></li></ul><h3>Global</h3><ul><li><a href="global.html#cleanString">cleanString</a></li><li><a href="global.html#containsActualText">containsActualText</a></li><li><a href="global.html#formatPath">formatPath</a></li><li><a href="global.html#getLocaleFromPath">getLocaleFromPath</a></li><li><a href="global.html#hashKey">hashKey</a></li><li><a href="global.html#isEmpty">isEmpty</a></li><li><a href="global.html#objectMap">objectMap</a></li></ul>
33
+
31
34
  </nav>
32
35
 
33
36
  <div id="main">
@@ -45,7 +48,7 @@
45
48
  <pre class="prettyprint source linenums"><code>/*
46
49
  * utils.js - utility functions to support the other code
47
50
  *
48
- * Copyright © 2022 JEDLSoft
51
+ * Copyright © 2022-2023 JEDLSoft
49
52
  *
50
53
  * Licensed under the Apache License, Version 2.0 (the "License");
51
54
  * you may not use this file except in compliance with the License.
@@ -61,9 +64,12 @@
61
64
  * limitations under the License.
62
65
  */
63
66
 
67
+ import fs from 'node:fs';
64
68
  import path from 'node:path';
65
69
  import Locale from 'ilib-locale';
66
70
 
71
+ import { isAlnum, isIdeo } from 'ilib-ctype';
72
+
67
73
  /**
68
74
  * Clean a string for matching against other strings by removing
69
75
  * differences that are inconsequential for translation.
@@ -356,6 +362,93 @@ export function getLocaleFromPath(template, pathname) {
356
362
 
357
363
  return "";
358
364
  };
365
+
366
+ export function makeDirs(path) {
367
+ const parts = path.split(/[\\\/]/);
368
+
369
+ for (let i = 1; i &lt;= parts.length; i++) {
370
+ const p = parts.slice(0, i).join("/");
371
+ if (p &amp;&amp; p.length > 0 &amp;&amp; !fs.existsSync(p)) {
372
+ fs.mkdirSync(p);
373
+ }
374
+ }
375
+ };
376
+
377
+ /**
378
+ * Return true if the string still contains some text after removing all HTML tags and entities.
379
+ * @param {string} str the string to check
380
+ * @returns {boolean} true if there is text left over, and false otherwise
381
+ */
382
+ export function containsActualText(str) {
383
+ // remove the html and entities first
384
+ const cleaned = str.replace(/&lt;("(\\"|[^"])*"|'(\\'|[^'])*'|[^>])*>/g, "").replace(/&amp;[a-zA-Z]+;/g, "");
385
+
386
+ for (let i = 0; i &lt; cleaned.length; i++) {
387
+ const c = cleaned.charAt(i);
388
+ if (isAlnum(c) || isIdeo(c)) return true;
389
+ }
390
+ return false;
391
+ };
392
+
393
+ function isPrimitive(type) {
394
+ return ["boolean", "number", "integer", "string"].indexOf(type) > -1;
395
+ }
396
+
397
+ /**
398
+ * Recursively visit every node in an object and call the visitor on any
399
+ * primitive values.
400
+ * @param {*} object any object, arrary, or primitive
401
+ * @param {Function(*)} visitor function to call on any primitive
402
+ * @returns {*} the same type as the original object, but with every
403
+ * primitive processed by the visitor function
404
+ */
405
+ export function objectMap(object, visitor) {
406
+ if (!object) return object;
407
+ if (isPrimitive(typeof(object))) {
408
+ return visitor(object);
409
+ } else if (Array.isArray(object)) {
410
+ return object.map(item => {
411
+ return objectMap(item, visitor);
412
+ });
413
+ } else {
414
+ const ret = {};
415
+ for (let prop in object) {
416
+ if (object.hasOwnProperty(prop)) {
417
+ ret[prop] = objectMap(object[prop], visitor);
418
+ }
419
+ }
420
+ return ret;
421
+ }
422
+ };
423
+
424
+ /**
425
+ * Return a standard hash of the given source string.
426
+ *
427
+ * @param {String} source the source string as extracted from the
428
+ * source code, unmodified
429
+ * @returns {String} the hash key
430
+ */
431
+ export function hashKey(source) {
432
+ if (!source) return undefined;
433
+ let hash = 0;
434
+ // these two numbers together = 46 bits so it won't blow out the precision of an integer in javascript
435
+ const modulus = 1073741789; // largest prime number that fits in 30 bits
436
+ const multiple = 65521; // largest prime that fits in 16 bits, co-prime with the modulus
437
+
438
+ // logger.trace("hash starts off at " + hash);
439
+
440
+ for (let i = 0; i &lt; source.length; i++) {
441
+ // logger.trace("hash " + hash + " char " + source.charCodeAt(i) + "=" + source.charAt(i));
442
+ hash += source.charCodeAt(i);
443
+ hash *= multiple;
444
+ hash %= modulus;
445
+ }
446
+ const value = "r" + hash;
447
+
448
+ // System.out.println("String '" + source + "' hashes to " + value);
449
+
450
+ return value;
451
+ };
359
452
  </code></pre>
360
453
  </article>
361
454
  </section>
@@ -370,7 +463,7 @@ export function getLocaleFromPath(template, pathname) {
370
463
  <br class="clear">
371
464
 
372
465
  <footer>
373
- Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a> on Sun Dec 11 2022 21:08:55 GMT-0800 (Pacific Standard Time) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
466
+ Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.0</a> on Tue Jan 24 2023 22:21:49 GMT-0800 (Pacific Standard Time) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
374
467
  </footer>
375
468
 
376
469
  <script>prettyPrint();</script>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ilib-tools-common",
3
- "version": "1.2.0",
3
+ "version": "1.4.0",
4
4
  "module": "./src/index.js",
5
5
  "exports": {
6
6
  ".": {
@@ -61,14 +61,15 @@
61
61
  },
62
62
  "devDependencies": {
63
63
  "assertextras": "^1.1.0",
64
- "docdash": "^1.2.0",
65
- "jsdoc": "^3.6.11",
66
- "jsdoc-to-markdown": "^7.1.1",
64
+ "docdash": "^2.0.1",
65
+ "jsdoc": "^4.0.0",
66
+ "jsdoc-to-markdown": "^8.0.0",
67
67
  "nodeunit": "^0.11.3",
68
68
  "npm-run-all": "^4.1.5"
69
69
  },
70
70
  "dependencies": {
71
71
  "@log4js-node/log4js-api": "^1.0.2",
72
+ "ilib-ctype": "^1.1.0",
72
73
  "ilib-locale": "^1.2.2",
73
74
  "ilib-xliff": "^1.0.0"
74
75
  }