@stemy/ngx-utils 17.1.5 → 19.0.1

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.
Files changed (110) hide show
  1. package/fesm2022/stemy-ngx-utils-tools.mjs.map +1 -1
  2. package/fesm2022/stemy-ngx-utils.mjs +265 -223
  3. package/fesm2022/stemy-ngx-utils.mjs.map +1 -1
  4. package/ngx-utils/common-types.d.ts +1 -0
  5. package/ngx-utils/ngx-utils.imports.d.ts +2 -2
  6. package/ngx-utils/ngx-utils.module.d.ts +1 -1
  7. package/package.json +13 -19
  8. package/esm2022/ngx-utils/common-types.mjs +0 -122
  9. package/esm2022/ngx-utils/components/dynamic-table/dynamic-table.component.mjs +0 -210
  10. package/esm2022/ngx-utils/components/pagination-menu/pagination-menu.component.mjs +0 -101
  11. package/esm2022/ngx-utils/components/unordered-list/unordered-list.component.mjs +0 -65
  12. package/esm2022/ngx-utils/directives/async-method.base.mjs +0 -90
  13. package/esm2022/ngx-utils/directives/async-method.directive.mjs +0 -21
  14. package/esm2022/ngx-utils/directives/background.directive.mjs +0 -51
  15. package/esm2022/ngx-utils/directives/dynamic-table-template.directive.mjs +0 -20
  16. package/esm2022/ngx-utils/directives/global-template.directive.mjs +0 -28
  17. package/esm2022/ngx-utils/directives/icon.directive.mjs +0 -67
  18. package/esm2022/ngx-utils/directives/ngx-template-outlet.directive.mjs +0 -90
  19. package/esm2022/ngx-utils/directives/pagination-item.directive.mjs +0 -34
  20. package/esm2022/ngx-utils/directives/pagination.directive.mjs +0 -84
  21. package/esm2022/ngx-utils/directives/resource-if.directive.mjs +0 -50
  22. package/esm2022/ngx-utils/directives/sticky-class.directive.mjs +0 -34
  23. package/esm2022/ngx-utils/directives/sticky.directive.mjs +0 -55
  24. package/esm2022/ngx-utils/directives/unordered-list-item.directive.mjs +0 -79
  25. package/esm2022/ngx-utils/directives/unordered-list-template.directive.mjs +0 -20
  26. package/esm2022/ngx-utils/ngx-utils.imports.mjs +0 -178
  27. package/esm2022/ngx-utils/ngx-utils.module.mjs +0 -204
  28. package/esm2022/ngx-utils/pipes/chunk.pipe.mjs +0 -25
  29. package/esm2022/ngx-utils/pipes/entries.pipe.mjs +0 -28
  30. package/esm2022/ngx-utils/pipes/extra-item-properties.pipe.mjs +0 -31
  31. package/esm2022/ngx-utils/pipes/filter.pipe.mjs +0 -37
  32. package/esm2022/ngx-utils/pipes/find.pipe.mjs +0 -29
  33. package/esm2022/ngx-utils/pipes/format-number.pipe.mjs +0 -21
  34. package/esm2022/ngx-utils/pipes/get-offset.pipe.mjs +0 -17
  35. package/esm2022/ngx-utils/pipes/get-type.pipe.mjs +0 -16
  36. package/esm2022/ngx-utils/pipes/get-value.pipe.mjs +0 -17
  37. package/esm2022/ngx-utils/pipes/global-template.pipe.mjs +0 -39
  38. package/esm2022/ngx-utils/pipes/group-by.pipe.mjs +0 -27
  39. package/esm2022/ngx-utils/pipes/is-type.pipe.mjs +0 -16
  40. package/esm2022/ngx-utils/pipes/join.pipe.mjs +0 -19
  41. package/esm2022/ngx-utils/pipes/keys.pipe.mjs +0 -22
  42. package/esm2022/ngx-utils/pipes/map.pipe.mjs +0 -29
  43. package/esm2022/ngx-utils/pipes/max.pipe.mjs +0 -26
  44. package/esm2022/ngx-utils/pipes/min.pipe.mjs +0 -26
  45. package/esm2022/ngx-utils/pipes/pop.pipe.mjs +0 -16
  46. package/esm2022/ngx-utils/pipes/reduce.pipe.mjs +0 -30
  47. package/esm2022/ngx-utils/pipes/remap.pipe.mjs +0 -32
  48. package/esm2022/ngx-utils/pipes/replace.pipe.mjs +0 -17
  49. package/esm2022/ngx-utils/pipes/reverse.pipe.mjs +0 -24
  50. package/esm2022/ngx-utils/pipes/round.pipe.mjs +0 -21
  51. package/esm2022/ngx-utils/pipes/safe-html.pipe.mjs +0 -34
  52. package/esm2022/ngx-utils/pipes/shift.pipe.mjs +0 -16
  53. package/esm2022/ngx-utils/pipes/split.pipe.mjs +0 -16
  54. package/esm2022/ngx-utils/pipes/translate.pipe.mjs +0 -86
  55. package/esm2022/ngx-utils/pipes/values.pipe.mjs +0 -22
  56. package/esm2022/ngx-utils/plugins/resize-event.plugin.mjs +0 -78
  57. package/esm2022/ngx-utils/plugins/scroll-event.plugin.mjs +0 -39
  58. package/esm2022/ngx-utils/services/acl.service.mjs +0 -84
  59. package/esm2022/ngx-utils/services/api.service.mjs +0 -42
  60. package/esm2022/ngx-utils/services/auth.service.mjs +0 -14
  61. package/esm2022/ngx-utils/services/base-http.client.mjs +0 -47
  62. package/esm2022/ngx-utils/services/base-http.service.mjs +0 -305
  63. package/esm2022/ngx-utils/services/config.service.mjs +0 -130
  64. package/esm2022/ngx-utils/services/error-handler.service.mjs +0 -49
  65. package/esm2022/ngx-utils/services/events.service.mjs +0 -26
  66. package/esm2022/ngx-utils/services/formatter.service.mjs +0 -49
  67. package/esm2022/ngx-utils/services/global-template.service.mjs +0 -37
  68. package/esm2022/ngx-utils/services/icon.service.mjs +0 -26
  69. package/esm2022/ngx-utils/services/language.service.mjs +0 -124
  70. package/esm2022/ngx-utils/services/local-http.service.mjs +0 -47
  71. package/esm2022/ngx-utils/services/open-api.service.mjs +0 -40
  72. package/esm2022/ngx-utils/services/promise.service.mjs +0 -55
  73. package/esm2022/ngx-utils/services/state.service.mjs +0 -185
  74. package/esm2022/ngx-utils/services/static-language.service.mjs +0 -166
  75. package/esm2022/ngx-utils/services/storage.service.mjs +0 -49
  76. package/esm2022/ngx-utils/services/toaster.service.mjs +0 -32
  77. package/esm2022/ngx-utils/services/translated-url.serializer.mjs +0 -73
  78. package/esm2022/ngx-utils/services/universal.service.mjs +0 -81
  79. package/esm2022/ngx-utils/services/wasm.service.mjs +0 -46
  80. package/esm2022/ngx-utils/utils/ajax-request-handler.mjs +0 -40
  81. package/esm2022/ngx-utils/utils/array.utils.mjs +0 -107
  82. package/esm2022/ngx-utils/utils/auth.guard.mjs +0 -181
  83. package/esm2022/ngx-utils/utils/cached-factory.mjs +0 -30
  84. package/esm2022/ngx-utils/utils/canvas.utils.mjs +0 -388
  85. package/esm2022/ngx-utils/utils/date.utils.mjs +0 -29
  86. package/esm2022/ngx-utils/utils/file-system.mjs +0 -25
  87. package/esm2022/ngx-utils/utils/file.utils.mjs +0 -90
  88. package/esm2022/ngx-utils/utils/generic-value.mjs +0 -20
  89. package/esm2022/ngx-utils/utils/geometry.mjs +0 -132
  90. package/esm2022/ngx-utils/utils/initializer.mjs +0 -20
  91. package/esm2022/ngx-utils/utils/jsonfn.mjs +0 -45
  92. package/esm2022/ngx-utils/utils/loader.utils.mjs +0 -55
  93. package/esm2022/ngx-utils/utils/math.utils.mjs +0 -44
  94. package/esm2022/ngx-utils/utils/object.utils.mjs +0 -320
  95. package/esm2022/ngx-utils/utils/observable.utils.mjs +0 -59
  96. package/esm2022/ngx-utils/utils/promise.utils.mjs +0 -23
  97. package/esm2022/ngx-utils/utils/reflect.utils.mjs +0 -33
  98. package/esm2022/ngx-utils/utils/set.utils.mjs +0 -20
  99. package/esm2022/ngx-utils/utils/string.utils.mjs +0 -41
  100. package/esm2022/ngx-utils/utils/timer.utils.mjs +0 -52
  101. package/esm2022/ngx-utils/utils/unique.utils.mjs +0 -24
  102. package/esm2022/ngx-utils/utils/vector.mjs +0 -77
  103. package/esm2022/ngx-utils/utils/wasi.mjs +0 -159
  104. package/esm2022/ngx-utils/utils/wasm-worker-proxy.mjs +0 -99
  105. package/esm2022/ngx-utils/utils/with-options-provider.mjs +0 -24
  106. package/esm2022/public_api.mjs +0 -96
  107. package/esm2022/stemy-ngx-utils.mjs +0 -5
  108. package/esm2022/tools/config.mjs +0 -71
  109. package/esm2022/tools/public_api.mjs +0 -2
  110. package/esm2022/tools/stemy-ngx-utils-tools.mjs +0 -5
@@ -1 +1 @@
1
- {"version":3,"file":"stemy-ngx-utils-tools.mjs","sources":["../../tools/config.ts","../../tools/stemy-ngx-utils-tools.ts"],"sourcesContent":["export function isPrimitive(value: any): boolean {\r\n const type = typeof value;\r\n return value == null || (type !== \"object\" && type !== \"function\");\r\n}\r\n\r\nexport function isDate(value: any): value is Date {\r\n return null !== value && !isNaN(value) && \"undefined\" !== typeof value.getDate;\r\n}\r\n\r\nexport interface IEnvironmentAlternatives {\r\n [name: string]: string[]\r\n}\r\n\r\nfunction convertValue(value: any, type: string): any {\r\n switch (type) {\r\n case \"boolean\":\r\n value = typeof value == \"string\" ? value.toLowerCase() : value;\r\n return (value == \"no\" || value == \"false\" || value == \"0\") ? false : !!value;\r\n case \"number\":\r\n const val = parseFloat(value);\r\n return isNaN(val) ? 0 : val;\r\n }\r\n return value;\r\n}\r\n\r\nfunction getFromEnv(path: string, alternatives: IEnvironmentAlternatives, value: any): any {\r\n const name = path.replace(/\\.?([A-Z|0-9]+)/g, function (x,y){\r\n return \"_\" + y.toLowerCase()\r\n }).replace(/\\./gi, \"_\").replace(/^_/, \"\").toUpperCase();\r\n const alts = Array.from(alternatives[name] || []);\r\n alts.unshift(name);\r\n for (const envName of alts) {\r\n const envValue = process.env[envName];\r\n if (typeof envValue !== \"undefined\") {\r\n const val = convertValue(envValue, typeof value);\r\n console.log(name, envName, val);\r\n return convertValue(envValue, typeof value);\r\n }\r\n }\r\n console.log(name, value);\r\n return value;\r\n}\r\n\r\nfunction createConfigRecursive(target: any, source: any, path: string, alternatives: IEnvironmentAlternatives): any {\r\n if (isPrimitive(source) || isDate(source)) {\r\n return getFromEnv(path, alternatives, source);\r\n }\r\n if (Array.isArray(source)) {\r\n target = Array.isArray(target) ? Array.from(target) : [];\r\n source.forEach((item, index) => {\r\n if (target.length > index)\r\n target[index] = createConfigRecursive(target[index], item, !path ? `${index}` : `${path}.${index}`, alternatives);\r\n else\r\n target.push(createConfigRecursive(null, item, !path ? `${index}` : `${path}.${index}`, alternatives));\r\n });\r\n return target;\r\n }\r\n return Object.keys(source).reduce((result, key) => {\r\n result[key] = createConfigRecursive(result[key], source[key], !path ? `${key}` : `${path}.${key}`, alternatives);\r\n return result;\r\n }, Object.assign({}, target));\r\n}\r\n\r\nexport function parseConfig(config: any): any {\r\n if (typeof config == \"string\") {\r\n try {\r\n config = JSON.parse(config);\r\n } catch (e) {\r\n return {};\r\n }\r\n }\r\n return config;\r\n}\r\n\r\nexport function createConfig(config: any, alternatives?: IEnvironmentAlternatives): any {\r\n alternatives = alternatives || {};\r\n console.log(\"Parsing config...\");\r\n return createConfigRecursive(null, parseConfig(config), \"\", alternatives);\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stemy-ngx-utils-tools.mjs","sources":["../../tools/config.ts","../../tools/stemy-ngx-utils-tools.ts"],"sourcesContent":["export function isPrimitive(value: any): boolean {\r\n const type = typeof value;\r\n return value == null || (type !== \"object\" && type !== \"function\");\r\n}\r\n\r\nexport function isDate(value: any): value is Date {\r\n return null !== value && !isNaN(value) && \"undefined\" !== typeof value.getDate;\r\n}\r\n\r\nexport interface IEnvironmentAlternatives {\r\n [name: string]: string[]\r\n}\r\n\r\nfunction convertValue(value: any, type: string): any {\r\n switch (type) {\r\n case \"boolean\":\r\n value = typeof value == \"string\" ? value.toLowerCase() : value;\r\n return (value == \"no\" || value == \"false\" || value == \"0\") ? false : !!value;\r\n case \"number\":\r\n const val = parseFloat(value);\r\n return isNaN(val) ? 0 : val;\r\n }\r\n return value;\r\n}\r\n\r\nfunction getFromEnv(path: string, alternatives: IEnvironmentAlternatives, value: any): any {\r\n const name = path.replace(/\\.?([A-Z|0-9]+)/g, function (x,y){\r\n return \"_\" + y.toLowerCase()\r\n }).replace(/\\./gi, \"_\").replace(/^_/, \"\").toUpperCase();\r\n const alts = Array.from(alternatives[name] || []);\r\n alts.unshift(name);\r\n for (const envName of alts) {\r\n const envValue = process.env[envName];\r\n if (typeof envValue !== \"undefined\") {\r\n const val = convertValue(envValue, typeof value);\r\n console.log(name, envName, val);\r\n return convertValue(envValue, typeof value);\r\n }\r\n }\r\n console.log(name, value);\r\n return value;\r\n}\r\n\r\nfunction createConfigRecursive(target: any, source: any, path: string, alternatives: IEnvironmentAlternatives): any {\r\n if (isPrimitive(source) || isDate(source)) {\r\n return getFromEnv(path, alternatives, source);\r\n }\r\n if (Array.isArray(source)) {\r\n target = Array.isArray(target) ? Array.from(target) : [];\r\n source.forEach((item, index) => {\r\n if (target.length > index)\r\n target[index] = createConfigRecursive(target[index], item, !path ? `${index}` : `${path}.${index}`, alternatives);\r\n else\r\n target.push(createConfigRecursive(null, item, !path ? `${index}` : `${path}.${index}`, alternatives));\r\n });\r\n return target;\r\n }\r\n return Object.keys(source).reduce((result, key) => {\r\n result[key] = createConfigRecursive(result[key], source[key], !path ? `${key}` : `${path}.${key}`, alternatives);\r\n return result;\r\n }, Object.assign({}, target));\r\n}\r\n\r\nexport function parseConfig(config: any): any {\r\n if (typeof config == \"string\") {\r\n try {\r\n config = JSON.parse(config);\r\n } catch (e) {\r\n return {};\r\n }\r\n }\r\n return config;\r\n}\r\n\r\nexport function createConfig(config: any, alternatives?: IEnvironmentAlternatives): any {\r\n alternatives = alternatives || {};\r\n console.log(\"Parsing config...\");\r\n return createConfigRecursive(null, parseConfig(config), \"\", alternatives);\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}