bromcom-ui 2.3.66 → 2.3.70

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 (218) hide show
  1. package/dist/bromcom-ui/{index-43956e3c.js → _commonjsHelpers-2088bffa.js} +1 -56
  2. package/dist/bromcom-ui/bcm-ad02f9c9.js +453 -0
  3. package/dist/bromcom-ui/bcm-alert.entry.js +53 -58
  4. package/dist/bromcom-ui/bcm-autocomplete.entry.js +4 -3
  5. package/dist/bromcom-ui/bcm-avatar.entry.js +27 -28
  6. package/dist/bromcom-ui/bcm-badge.entry.js +60 -31
  7. package/dist/bromcom-ui/bcm-breadcrumb.entry.js +26 -32
  8. package/dist/bromcom-ui/bcm-button.entry.js +92 -215
  9. package/dist/bromcom-ui/bcm-card-footer.entry.js +1 -1
  10. package/dist/bromcom-ui/bcm-card-header.entry.js +1 -1
  11. package/dist/bromcom-ui/bcm-card.entry.js +5 -4
  12. package/dist/bromcom-ui/bcm-checkbox-group.entry.js +253 -227
  13. package/dist/bromcom-ui/bcm-checkbox-lite.entry.js +29 -26
  14. package/dist/bromcom-ui/bcm-checkbox.entry.js +85 -89
  15. package/dist/bromcom-ui/bcm-collapse-group.entry.js +11 -16
  16. package/dist/bromcom-ui/bcm-collapse.entry.js +31 -18
  17. package/dist/bromcom-ui/bcm-colorpicker.entry.js +7 -6
  18. package/dist/bromcom-ui/bcm-comment-editor.entry.js +4 -3
  19. package/dist/bromcom-ui/bcm-comment-group.entry.js +4 -3
  20. package/dist/bromcom-ui/bcm-comment.entry.js +5 -4
  21. package/dist/bromcom-ui/bcm-date-picker.entry.js +31 -34
  22. package/dist/bromcom-ui/bcm-datetime-picker.entry.js +20 -46
  23. package/dist/bromcom-ui/bcm-divider.entry.js +11 -11
  24. package/dist/bromcom-ui/bcm-dropdown-button.entry.js +35 -61
  25. package/dist/bromcom-ui/bcm-dropdown-item.entry.js +66 -16
  26. package/dist/bromcom-ui/bcm-dropdown-list.entry.js +31 -49
  27. package/dist/bromcom-ui/bcm-dropdown.entry.js +17 -46
  28. package/dist/bromcom-ui/bcm-empty.entry.js +14 -45
  29. package/dist/bromcom-ui/bcm-error-layout.entry.js +20 -34
  30. package/dist/bromcom-ui/bcm-form-group.entry.js +3 -3
  31. package/dist/bromcom-ui/bcm-form.entry.js +31 -16
  32. package/dist/bromcom-ui/bcm-icon.entry.js +55 -35
  33. package/dist/bromcom-ui/bcm-input.entry.js +170 -276
  34. package/dist/bromcom-ui/bcm-label.entry.js +12 -549
  35. package/dist/bromcom-ui/bcm-link.entry.js +26 -5
  36. package/dist/bromcom-ui/bcm-list-2.entry.js +1063 -0
  37. package/dist/bromcom-ui/bcm-list-item.entry.js +4 -3
  38. package/dist/bromcom-ui/bcm-list-select.entry.js +14 -13
  39. package/dist/bromcom-ui/bcm-list.entry.js +10 -5
  40. package/dist/bromcom-ui/bcm-listbox-group.entry.js +5 -4
  41. package/dist/bromcom-ui/bcm-listbox-item.entry.js +5 -4
  42. package/dist/bromcom-ui/bcm-listbox.entry.js +17 -14
  43. package/dist/bromcom-ui/bcm-menu-group.entry.js +4 -3
  44. package/dist/bromcom-ui/bcm-menu-item.entry.js +4 -3
  45. package/dist/bromcom-ui/bcm-menu.entry.js +4 -3
  46. package/dist/bromcom-ui/bcm-message.entry.js +54 -50
  47. package/dist/bromcom-ui/bcm-modal.entry.js +47 -160
  48. package/dist/bromcom-ui/bcm-notification.entry.js +59 -47
  49. package/dist/bromcom-ui/bcm-popconfirm-box.entry.js +61 -21
  50. package/dist/bromcom-ui/bcm-popconfirm.entry.js +49 -93
  51. package/dist/bromcom-ui/bcm-popover-box.entry.js +44 -16
  52. package/dist/bromcom-ui/bcm-popover.entry.js +61 -101
  53. package/dist/bromcom-ui/bcm-progress.entry.js +77 -63
  54. package/dist/bromcom-ui/bcm-pulldown-group.entry.js +5 -4
  55. package/dist/bromcom-ui/bcm-pulldown-item.entry.js +4 -3
  56. package/dist/bromcom-ui/bcm-pulldown.entry.js +5 -4
  57. package/dist/bromcom-ui/bcm-radio-group.entry.js +183 -85
  58. package/dist/bromcom-ui/bcm-radio.entry.js +59 -79
  59. package/dist/bromcom-ui/bcm-range.entry.js +161 -0
  60. package/dist/bromcom-ui/bcm-result.entry.js +62 -38
  61. package/dist/bromcom-ui/bcm-search-2.entry.js +219 -0
  62. package/dist/bromcom-ui/bcm-search.entry.js +5 -4
  63. package/dist/bromcom-ui/bcm-select-box.entry.js +4 -3
  64. package/dist/bromcom-ui/bcm-select-group.entry.js +4 -3
  65. package/dist/bromcom-ui/bcm-select-option.entry.js +5 -4
  66. package/dist/bromcom-ui/bcm-select.entry.js +11 -12
  67. package/dist/bromcom-ui/bcm-selecto.entry.js +3 -2
  68. package/dist/bromcom-ui/bcm-slider.entry.js +4 -3
  69. package/dist/bromcom-ui/bcm-sub-comment.entry.js +5 -4
  70. package/dist/bromcom-ui/bcm-switch.entry.js +48 -37
  71. package/dist/bromcom-ui/bcm-tab-pane.entry.js +4 -3
  72. package/dist/bromcom-ui/bcm-tab.entry.js +8 -8
  73. package/dist/bromcom-ui/bcm-tabs-content.entry.js +5 -4
  74. package/dist/bromcom-ui/bcm-tabs.entry.js +6 -5
  75. package/dist/bromcom-ui/bcm-tag.entry.js +48 -44
  76. package/dist/bromcom-ui/bcm-text.entry.js +16 -10
  77. package/dist/bromcom-ui/bcm-textarea.entry.js +45 -68
  78. package/dist/bromcom-ui/bcm-time-picker.entry.js +4 -3
  79. package/dist/bromcom-ui/bcm-timeline-item.entry.js +10 -24
  80. package/dist/bromcom-ui/bcm-timeline.entry.js +11 -33
  81. package/dist/bromcom-ui/bcm-tooltip-box.entry.js +54 -16
  82. package/dist/bromcom-ui/bcm-tooltip.entry.js +48 -99
  83. package/dist/bromcom-ui/bcm-treeview-group.entry.js +1 -1
  84. package/dist/bromcom-ui/bcm-treeview-item.entry.js +5 -4
  85. package/dist/bromcom-ui/bcm-treeview.entry.js +6 -5
  86. package/dist/bromcom-ui/bcm-upload.entry.js +5 -4
  87. package/dist/bromcom-ui/bromcom-ui.css +40153 -35
  88. package/dist/bromcom-ui/bromcom-ui.esm.js +2 -2
  89. package/dist/bromcom-ui/caption-template-2d4ffc88.js +25 -0
  90. package/dist/bromcom-ui/color-helper-19448077.js +35 -0
  91. package/dist/bromcom-ui/{element-dragger-e40f0410.js → element-dragger-2a215f47.js} +1 -1
  92. package/dist/bromcom-ui/generate-8e440fc4.js +91 -0
  93. package/dist/bromcom-ui/index-55174f2a.js +58 -0
  94. package/dist/bromcom-ui/{index-9dbea026.js → index-dbc63c66.js} +2 -2
  95. package/dist/bromcom-ui/index-dd5c1283.js +187 -0
  96. package/dist/bromcom-ui/input-template-487d3243.js +83 -0
  97. package/dist/bromcom-ui/json-parse-decarator-223ea680.js +21 -0
  98. package/dist/bromcom-ui/label-template-501216fc.js +19 -0
  99. package/dist/bromcom-ui/number-helper-fea1966f.js +13 -0
  100. package/dist/bromcom-ui/{popover-placement-fb1f91e9.js → popover-placement-f7a6551c.js} +25 -17
  101. package/dist/bromcom-ui/property-decorators-21b15487.js +36 -0
  102. package/dist/bromcom-ui/slot-template-f79b82ee.js +9 -0
  103. package/dist/bromcom-ui/snq.es5-946822b8.js +14 -0
  104. package/dist/bromcom-ui/string-helper-35840f91.js +109 -0
  105. package/dist/bromcom-ui/types-6b2a6629.js +172 -0
  106. package/dist/bromcom-ui/{utils-1feb01eb.js → utils-333ded7f.js} +4 -1
  107. package/dist/types/components/atoms/avatar/avatar.d.ts +9 -5
  108. package/dist/types/components/atoms/badge/badge.d.ts +14 -9
  109. package/dist/types/components/atoms/button/button.d.ts +17 -10
  110. package/dist/types/components/atoms/button/types.d.ts +0 -22
  111. package/dist/types/components/atoms/divider/divider.d.ts +2 -2
  112. package/dist/types/components/atoms/icon/icon.d.ts +14 -9
  113. package/dist/types/components/atoms/label/label.d.ts +1 -2
  114. package/dist/types/components/atoms/link/link.d.ts +6 -1
  115. package/dist/types/components/atoms/states/badge.states.d.ts +7 -0
  116. package/dist/types/components/atoms/states/button.states.d.ts +7 -0
  117. package/dist/types/components/atoms/tag/tag.d.ts +14 -11
  118. package/dist/types/components/atoms/text/text.d.ts +4 -3
  119. package/dist/types/components/molecules/alert/alert.d.ts +15 -37
  120. package/dist/types/components/molecules/breadcrumb/breadcrumb.d.ts +9 -22
  121. package/dist/types/components/molecules/breadcrumb/types.d.ts +10 -0
  122. package/dist/types/components/molecules/checkbox/checkbox-lite.d.ts +7 -22
  123. package/dist/types/components/molecules/checkbox/checkbox.d.ts +26 -31
  124. package/dist/types/components/molecules/checkbox/group.d.ts +24 -83
  125. package/dist/types/components/molecules/collapse/collapse.d.ts +9 -6
  126. package/dist/types/components/molecules/collapse/group.d.ts +4 -2
  127. package/dist/types/components/molecules/dropdown/dropdown-button.d.ts +18 -31
  128. package/dist/types/components/molecules/dropdown/dropdown-item.d.ts +17 -16
  129. package/dist/types/components/molecules/dropdown/dropdown-list.d.ts +12 -35
  130. package/dist/types/components/molecules/dropdown/dropdown.d.ts +5 -30
  131. package/dist/types/components/molecules/empty/empty.d.ts +7 -24
  132. package/dist/types/components/molecules/empty/types.d.ts +0 -15
  133. package/dist/types/components/molecules/error-layout/error-layout.d.ts +6 -18
  134. package/dist/types/components/molecules/input/input.d.ts +39 -45
  135. package/dist/types/components/molecules/input/types.d.ts +13 -0
  136. package/dist/types/components/molecules/list/list-select.d.ts +0 -1
  137. package/dist/types/components/molecules/list/list.d.ts +0 -1
  138. package/dist/types/components/molecules/message/message.d.ts +13 -25
  139. package/dist/types/components/molecules/modal/modal.d.ts +12 -65
  140. package/dist/types/components/molecules/notification/notification.d.ts +14 -21
  141. package/dist/types/components/molecules/popconfirm/popconfirm-box.d.ts +14 -12
  142. package/dist/types/components/molecules/popconfirm/popconfirm.d.ts +10 -14
  143. package/dist/types/components/molecules/popover/popover-box.d.ts +10 -10
  144. package/dist/types/components/molecules/popover/popover.d.ts +13 -19
  145. package/dist/types/components/molecules/progress/progress.d.ts +8 -6
  146. package/dist/types/components/molecules/progress/types.d.ts +24 -0
  147. package/dist/types/components/molecules/radio/group.d.ts +28 -22
  148. package/dist/types/components/molecules/radio/radio.d.ts +13 -17
  149. package/dist/types/components/molecules/range/range.d.ts +36 -0
  150. package/dist/types/components/molecules/result/result.d.ts +14 -8
  151. package/dist/types/components/molecules/search-2/search-2.d.ts +30 -0
  152. package/dist/types/components/molecules/select/select.d.ts +4 -5
  153. package/dist/types/components/molecules/states/alert.states.d.ts +7 -0
  154. package/dist/types/components/molecules/states/checkbox-group.states.d.ts +53 -0
  155. package/dist/types/components/molecules/states/message.states.d.ts +7 -0
  156. package/dist/types/components/molecules/states/notification.states.d.ts +7 -0
  157. package/dist/types/components/molecules/states/radio-group.states.d.ts +47 -0
  158. package/dist/types/components/molecules/states/result.states.d.ts +7 -0
  159. package/dist/types/components/molecules/states/search.states.d.ts +13 -0
  160. package/dist/types/components/molecules/switch/switch.d.ts +18 -15
  161. package/dist/types/components/molecules/textarea/textarea.d.ts +23 -23
  162. package/dist/types/components/molecules/textarea/types.d.ts +9 -0
  163. package/dist/types/components/molecules/timeline/timeline-item.d.ts +0 -12
  164. package/dist/types/components/molecules/timeline/timeline.d.ts +2 -19
  165. package/dist/types/components/molecules/tooltip/tooltip-box.d.ts +11 -8
  166. package/dist/types/components/molecules/tooltip/tooltip.d.ts +13 -17
  167. package/dist/types/components/organism/colorpicker/colorpicker.d.ts +1 -2
  168. package/dist/types/components/organism/date-picker/date-picker.d.ts +7 -11
  169. package/dist/types/components/organism/datetime-picker/datetime-picker.d.ts +4 -5
  170. package/dist/types/components/organism/form/form.d.ts +2 -1
  171. package/dist/types/components/organism/list-2/list-2.d.ts +109 -0
  172. package/dist/types/components/organism/listbox/listbox.d.ts +1 -2
  173. package/dist/types/components/organism/states/bcm-list2.states.d.ts +24 -0
  174. package/dist/types/components/organism/tabs/tab.d.ts +2 -1
  175. package/dist/types/components/organism/time-picker/time-picker.d.ts +1 -1
  176. package/dist/types/components.d.ts +554 -511
  177. package/dist/types/decorators/json-parse-decarator.d.ts +4 -0
  178. package/dist/types/decorators/property-decorators.d.ts +6 -0
  179. package/dist/types/global/variables/colors.d.ts +0 -1
  180. package/dist/types/helper/generate.d.ts +4 -1
  181. package/dist/types/helper/number-helper.d.ts +9 -0
  182. package/dist/types/helper/string-helper.d.ts +3 -0
  183. package/dist/types/models/bcm.d.ts +1 -1
  184. package/dist/types/models/states/Atoms/bcm-Atoms-state.d.ts +34 -0
  185. package/dist/types/models/states/molecules/bcm-molecules-state.d.ts +78 -0
  186. package/dist/types/models/states/organisms/bcm-organisms-state.d.ts +71 -0
  187. package/dist/types/templates/button-template.d.ts +16 -0
  188. package/dist/types/templates/checkbox-group-template.d.ts +10 -0
  189. package/dist/types/templates/checkbox-template.d.ts +13 -0
  190. package/dist/types/templates/info-footer-template.d.ts +10 -0
  191. package/dist/types/templates/input-template.d.ts +30 -0
  192. package/dist/types/templates/list-item-template.d.ts +11 -0
  193. package/dist/types/templates/list-template.d.ts +23 -0
  194. package/dist/types/templates/tag-template.d.ts +17 -0
  195. package/dist/types/types/index.d.ts +1 -1
  196. package/dist/types/utils/popover-placement.d.ts +3 -3
  197. package/dist/types/utils/utils.d.ts +1 -0
  198. package/package.json +1 -1
  199. package/dist/bromcom-ui/bcm-content.entry.js +0 -15
  200. package/dist/bromcom-ui/bcm-dropdown-group.entry.js +0 -58
  201. package/dist/bromcom-ui/bcm-footer.entry.js +0 -15
  202. package/dist/bromcom-ui/bcm-header.entry.js +0 -15
  203. package/dist/bromcom-ui/datetime-helper-c373f888.js +0 -5
  204. package/dist/bromcom-ui/types-0e4b533d.js +0 -14
  205. package/dist/bromcom-ui/types-911a8837.js +0 -21
  206. package/dist/types/components/atoms/badge/types.d.ts +0 -4
  207. package/dist/types/components/molecules/checkbox/types.d.ts +0 -29
  208. package/dist/types/components/molecules/dropdown/dropdown-group.d.ts +0 -28
  209. package/dist/types/components/molecules/dropdown/types.d.ts +0 -20
  210. package/dist/types/components/molecules/error-layout/types.d.ts +0 -4
  211. package/dist/types/components/molecules/message/types.d.ts +0 -13
  212. package/dist/types/components/molecules/modal/modal-content.d.ts +0 -4
  213. package/dist/types/components/molecules/modal/modal-header.d.ts +0 -4
  214. package/dist/types/components/molecules/modal/model-footer.d.ts +0 -4
  215. package/dist/types/components/molecules/modal/types.d.ts +0 -41
  216. package/dist/types/components/molecules/notification/types.d.ts +0 -14
  217. package/dist/types/components/molecules/result/types.d.ts +0 -19
  218. package/dist/types/helper/datetime-helper.d.ts +0 -3
@@ -0,0 +1,187 @@
1
+ import { i as getRenderingRef, j as forceUpdate } from './index-dbc63c66.js';
2
+
3
+ const appendToMap = (map, propName, value) => {
4
+ const items = map.get(propName);
5
+ if (!items) {
6
+ map.set(propName, [value]);
7
+ }
8
+ else if (!items.includes(value)) {
9
+ items.push(value);
10
+ }
11
+ };
12
+ const debounce = (fn, ms) => {
13
+ let timeoutId;
14
+ return (...args) => {
15
+ if (timeoutId) {
16
+ clearTimeout(timeoutId);
17
+ }
18
+ timeoutId = setTimeout(() => {
19
+ timeoutId = 0;
20
+ fn(...args);
21
+ }, ms);
22
+ };
23
+ };
24
+
25
+ /**
26
+ * Check if a possible element isConnected.
27
+ * The property might not be there, so we check for it.
28
+ *
29
+ * We want it to return true if isConnected is not a property,
30
+ * otherwise we would remove these elements and would not update.
31
+ *
32
+ * Better leak in Edge than to be useless.
33
+ */
34
+ const isConnected = (maybeElement) => !('isConnected' in maybeElement) || maybeElement.isConnected;
35
+ const cleanupElements = debounce((map) => {
36
+ for (let key of map.keys()) {
37
+ map.set(key, map.get(key).filter(isConnected));
38
+ }
39
+ }, 2000);
40
+ const stencilSubscription = () => {
41
+ if (typeof getRenderingRef !== 'function') {
42
+ // If we are not in a stencil project, we do nothing.
43
+ // This function is not really exported by @stencil/core.
44
+ return {};
45
+ }
46
+ const elmsToUpdate = new Map();
47
+ return {
48
+ dispose: () => elmsToUpdate.clear(),
49
+ get: (propName) => {
50
+ const elm = getRenderingRef();
51
+ if (elm) {
52
+ appendToMap(elmsToUpdate, propName, elm);
53
+ }
54
+ },
55
+ set: (propName) => {
56
+ const elements = elmsToUpdate.get(propName);
57
+ if (elements) {
58
+ elmsToUpdate.set(propName, elements.filter(forceUpdate));
59
+ }
60
+ cleanupElements(elmsToUpdate);
61
+ },
62
+ reset: () => {
63
+ elmsToUpdate.forEach((elms) => elms.forEach(forceUpdate));
64
+ cleanupElements(elmsToUpdate);
65
+ },
66
+ };
67
+ };
68
+
69
+ const createObservableMap = (defaultState, shouldUpdate = (a, b) => a !== b) => {
70
+ let states = new Map(Object.entries(defaultState !== null && defaultState !== void 0 ? defaultState : {}));
71
+ const handlers = {
72
+ dispose: [],
73
+ get: [],
74
+ set: [],
75
+ reset: [],
76
+ };
77
+ const reset = () => {
78
+ states = new Map(Object.entries(defaultState !== null && defaultState !== void 0 ? defaultState : {}));
79
+ handlers.reset.forEach((cb) => cb());
80
+ };
81
+ const dispose = () => {
82
+ // Call first dispose as resetting the state would
83
+ // cause less updates ;)
84
+ handlers.dispose.forEach((cb) => cb());
85
+ reset();
86
+ };
87
+ const get = (propName) => {
88
+ handlers.get.forEach((cb) => cb(propName));
89
+ return states.get(propName);
90
+ };
91
+ const set = (propName, value) => {
92
+ const oldValue = states.get(propName);
93
+ if (shouldUpdate(value, oldValue, propName)) {
94
+ states.set(propName, value);
95
+ handlers.set.forEach((cb) => cb(propName, value, oldValue));
96
+ }
97
+ };
98
+ const state = (typeof Proxy === 'undefined'
99
+ ? {}
100
+ : new Proxy(defaultState, {
101
+ get(_, propName) {
102
+ return get(propName);
103
+ },
104
+ ownKeys(_) {
105
+ return Array.from(states.keys());
106
+ },
107
+ getOwnPropertyDescriptor() {
108
+ return {
109
+ enumerable: true,
110
+ configurable: true,
111
+ };
112
+ },
113
+ has(_, propName) {
114
+ return states.has(propName);
115
+ },
116
+ set(_, propName, value) {
117
+ set(propName, value);
118
+ return true;
119
+ },
120
+ }));
121
+ const on = (eventName, callback) => {
122
+ handlers[eventName].push(callback);
123
+ return () => {
124
+ removeFromArray(handlers[eventName], callback);
125
+ };
126
+ };
127
+ const onChange = (propName, cb) => {
128
+ const unSet = on('set', (key, newValue) => {
129
+ if (key === propName) {
130
+ cb(newValue);
131
+ }
132
+ });
133
+ const unReset = on('reset', () => cb(defaultState[propName]));
134
+ return () => {
135
+ unSet();
136
+ unReset();
137
+ };
138
+ };
139
+ const use = (...subscriptions) => {
140
+ const unsubs = subscriptions.reduce((unsubs, subscription) => {
141
+ if (subscription.set) {
142
+ unsubs.push(on('set', subscription.set));
143
+ }
144
+ if (subscription.get) {
145
+ unsubs.push(on('get', subscription.get));
146
+ }
147
+ if (subscription.reset) {
148
+ unsubs.push(on('reset', subscription.reset));
149
+ }
150
+ if (subscription.dispose) {
151
+ unsubs.push(on('dispose', subscription.dispose));
152
+ }
153
+ return unsubs;
154
+ }, []);
155
+ return () => unsubs.forEach((unsub) => unsub());
156
+ };
157
+ const forceUpdate = (key) => {
158
+ const oldValue = states.get(key);
159
+ handlers.set.forEach((cb) => cb(key, oldValue, oldValue));
160
+ };
161
+ return {
162
+ state,
163
+ get,
164
+ set,
165
+ on,
166
+ onChange,
167
+ use,
168
+ dispose,
169
+ reset,
170
+ forceUpdate,
171
+ };
172
+ };
173
+ const removeFromArray = (array, item) => {
174
+ const index = array.indexOf(item);
175
+ if (index >= 0) {
176
+ array[index] = array[array.length - 1];
177
+ array.length--;
178
+ }
179
+ };
180
+
181
+ const createStore = (defaultState, shouldUpdate) => {
182
+ const map = createObservableMap(defaultState, shouldUpdate);
183
+ map.use(stencilSubscription());
184
+ return map;
185
+ };
186
+
187
+ export { createStore as c };
@@ -0,0 +1,83 @@
1
+ import { h } from './index-dbc63c66.js';
2
+ import { c as classnames } from './index-55174f2a.js';
3
+ import { B as Bcm } from './bcm-ad02f9c9.js';
4
+
5
+ var defaultIcons;
6
+ (function (defaultIcons) {
7
+ defaultIcons["search"] = "search";
8
+ defaultIcons["email"] = "mail";
9
+ defaultIcons["tel"] = "phone";
10
+ defaultIcons["url"] = "link";
11
+ })(defaultIcons || (defaultIcons = {}));
12
+ var iconSizes;
13
+ (function (iconSizes) {
14
+ iconSizes[iconSizes["small"] = 14] = "small";
15
+ iconSizes[iconSizes["medium"] = 16] = "medium";
16
+ iconSizes[iconSizes["large"] = 18] = "large";
17
+ })(iconSizes || (iconSizes = {}));
18
+
19
+ const InputTemplate = ({ elementType,
20
+ //textarea
21
+ rows,
22
+ //props
23
+ id, internalId, type, placeholder, value, size,
24
+ //,
25
+ unit, unitPrefix, maxLength,
26
+ //boolean
27
+ disabled, clearable, focused, readonly, isPasswordVisible, passwordToggle, noDefaultIcon, inValid, captionType, resize,
28
+ // custom functions
29
+ changePasswordVisibility, handleClear, steps,
30
+ //event functions
31
+ ref, handleBlur, handleFocus, handleInput, handleChange }) => {
32
+ const ElementTagType = Bcm.HtmlElementType[elementType] || Bcm.HtmlElementType.input;
33
+ type = (type === 'password' && isPasswordVisible) ? 'text' : type;
34
+ value = value || '';
35
+ value = !focused ? value + (value && (unit === null || unit === void 0 ? void 0 : unit.length) > 0 ? ' ' + unit : '') : value;
36
+ const templateHandleFocus = (e) => {
37
+ e.target.parentElement.classList.add('focused');
38
+ handleFocus(e);
39
+ };
40
+ const templateHandleBlur = (e) => {
41
+ e.target.parentElement.classList.remove('focused');
42
+ handleBlur(e);
43
+ };
44
+ var containerClass = classnames('bcm-input__container', ElementTagType === Bcm.HtmlElementType.textarea && classnames('bcm-input__textarea', 'textarea-size-' + Bcm.Size[size], 'resize-' + resize, 'textarea-' + size), ElementTagType === Bcm.HtmlElementType.input && classnames('input-size-' + Bcm.Size[size]), {
45
+ 'focused': focused,
46
+ 'clearable': clearable,
47
+ disabled,
48
+ readonly,
49
+ 'invalid': inValid,
50
+ 'unit': (unit === null || unit === void 0 ? void 0 : unit.length) > 0,
51
+ // 'empty': value?.length < 1,
52
+ 'error': captionType === 'error'
53
+ });
54
+ const caretContainer = classnames('caret-container', {
55
+ 'unit': (unit === null || unit === void 0 ? void 0 : unit.length) > 0,
56
+ 'disabled': disabled || readonly || inValid
57
+ });
58
+ const inputClass = size === 'large' ? 'size-3' : 'size-2';
59
+ const unitClass = classnames(inputClass, 'unit-prefix');
60
+ return (h("div", { class: containerClass },
61
+ h("span", { hidden: true },
62
+ h("slot", null)),
63
+ h("span", { class: "input-prefix" },
64
+ h("slot", { name: "prefix" }),
65
+ unitPrefix && h("span", { class: unitClass }, unitPrefix)),
66
+ h(ElementTagType, Object.assign({ tabindex: "1", id: id, "bcm-internal-id": internalId, class: 'bcm-input-element ' + inputClass }, ((ElementTagType === Bcm.HtmlElementType.input && { type: type })), ((ElementTagType === Bcm.HtmlElementType.textarea && { rows: rows })), { value: value, maxLength: maxLength, placeholder: placeholder, disabled: disabled, readOnly: readonly, ref: (el) => ref(el), onBlur: (e) => templateHandleBlur(e), onFocus: (e) => templateHandleFocus(e), onInput: (e) => handleInput(e), onChange: (e) => handleChange(e) })),
67
+ (clearable && !disabled) &&
68
+ h("span", { class: "input-suffix input-suffix-button input-clear-button", onClick: (e) => handleClear(e) },
69
+ h("bcm-icon", { icon: "close-circle", type: "fill", size: iconSizes[size], color: "grey-7" })),
70
+ (type === 'password' && passwordToggle) && (h("span", { class: "input-suffix input-suffix-button", onClick: () => changePasswordVisibility() },
71
+ h("bcm-icon", { icon: isPasswordVisible ? "eye-invisible" : "eye", type: "outlined", size: iconSizes[size], color: "grey-7" }))),
72
+ (Object.keys(defaultIcons).includes(type) && !noDefaultIcon) && (h("span", { class: "input-suffix" },
73
+ h("bcm-icon", { icon: defaultIcons[type], type: "outlined", size: iconSizes[size], color: "grey-7" }))),
74
+ type === 'number' && (h("div", { class: caretContainer },
75
+ h("span", { class: "caret", onClick: () => steps('up') },
76
+ h("bcm-icon", { icon: "caret-up", type: "outlined", color: "grey-7", size: 8 })),
77
+ h("span", { class: "caret", onClick: () => steps('down') },
78
+ h("bcm-icon", { icon: "caret-down", type: "outlined", color: "grey-7", size: 8 })))),
79
+ type !== 'number' && (h("span", { class: "input-suffix" },
80
+ h("slot", { name: "suffix" })))));
81
+ };
82
+
83
+ export { InputTemplate as I };
@@ -0,0 +1,21 @@
1
+ import { g as getElement } from './index-dbc63c66.js';
2
+ import { s as snq } from './snq.es5-946822b8.js';
3
+
4
+ function JsonParse(attribute) {
5
+ return (proto, propName) => {
6
+ const { connectedCallback } = proto;
7
+ proto.connectedCallback = function () {
8
+ const host = getElement(this);
9
+ if (host[propName]) {
10
+ const value = snq(() => host.hasAttribute(attribute) ? host.getAttribute(attribute).valueOf() : host[attribute].valueOf(), null);
11
+ if (value) {
12
+ this[propName] = snq(() => typeof value === 'string' ? JSON.parse(value) : value, []);
13
+ host.removeAttribute(attribute);
14
+ }
15
+ }
16
+ return connectedCallback && connectedCallback.call(this);
17
+ };
18
+ };
19
+ }
20
+
21
+ export { JsonParse as J };
@@ -0,0 +1,19 @@
1
+ import { h } from './index-dbc63c66.js';
2
+ import { c as classnames } from './index-55174f2a.js';
3
+ import { B as Bcm } from './bcm-ad02f9c9.js';
4
+ import { S as SlotTemplate } from './slot-template-f79b82ee.js';
5
+
6
+ const LabelTemplate = ({ required, value, size, form, htmlFor, type }) => {
7
+ size = size || Bcm.FontSize['size-1'];
8
+ type = type || Bcm.Status.default;
9
+ const labelClasses = classnames('bcm-label__text', size, {
10
+ 'bcm-label__text-error': type === Bcm.Status.error,
11
+ });
12
+ return (h("label", { form: form, htmlFor: htmlFor, class: labelClasses },
13
+ " ",
14
+ h(SlotTemplate, { value: value }),
15
+ " ",
16
+ required && ('*')));
17
+ };
18
+
19
+ export { LabelTemplate as L };
@@ -0,0 +1,13 @@
1
+ import { s as snq } from './snq.es5-946822b8.js';
2
+
3
+ class NumberHelper {
4
+ }
5
+ NumberHelper.isNumber = (str) => snq(() => /^[0-9]+$/i.test(str));
6
+ NumberHelper.convertToNumber = (str) => snq(() => Number(str));
7
+ NumberHelper.replaceNumber = (str) => snq(() => str.replace(/[^0-9]/g, ''));
8
+ NumberHelper.replaceFloat = (str) => snq(() => str.replace(/[^0-9.]/g, ''));
9
+ NumberHelper.toFixed = (num, fixed) => snq(() => num.toFixed(fixed));
10
+ NumberHelper.parseFloatFixed = (str, fixed) => snq(() => parseFloat(NumberHelper.replaceFloat(str)).toFixed(fixed));
11
+ NumberHelper.getDecimalLength = (str) => snq(() => str.split('.')[1] ? str.split('.')[1].length : 0);
12
+
13
+ export { NumberHelper as N };
@@ -1,3 +1,5 @@
1
+ import { S as StringHelper } from './string-helper-35840f91.js';
2
+
1
3
  const opposites = {
2
4
  left: 'right',
3
5
  right: 'left',
@@ -10,10 +12,10 @@ const join = (places) => {
10
12
  }
11
13
  return [opposites[places[0]], places[1]].join('-');
12
14
  };
13
- const popoverPlacement = (box, host, placement, changePlacement) => {
15
+ const getPlacement = async (box, host, placement, changePlacement) => {
14
16
  const { width, height } = box.getBoundingClientRect();
15
17
  const { left, right, top, bottom } = host.getBoundingClientRect();
16
- const places = placement.split('-');
18
+ const places = StringHelper.textContains(placement, '-') ? placement.split('-') : placement.split(' ');
17
19
  const bodyWidth = document.documentElement.clientWidth;
18
20
  const bodyHeight = document.documentElement.clientHeight;
19
21
  switch (places[0]) {
@@ -41,48 +43,54 @@ const popoverPlacement = (box, host, placement, changePlacement) => {
41
43
  break;
42
44
  }
43
45
  };
44
- const popoverBoxPlacement = (placement, target) => {
45
- const places = placement.split('-');
46
+ const setPosition = (placement, target) => {
47
+ const { offsetTop, offsetHeight, offsetWidth, offsetLeft } = target;
48
+ const rect = target.getBoundingClientRect();
49
+ const top = offsetTop || (rect.top + window.pageYOffset);
50
+ const left = offsetLeft || (rect.left + window.pageXOffset);
51
+ const height = offsetHeight || rect.height;
52
+ const width = offsetWidth || rect.width;
53
+ const places = StringHelper.textContains(placement, '-') ? placement.split('-') : placement.split(' ');
46
54
  switch (places[0]) {
47
55
  case 'left':
48
56
  switch (places[1]) {
49
57
  case 'start':
50
- return [target.top, target.left];
58
+ return [top, left];
51
59
  case 'end':
52
- return [target.bottom, target.left];
60
+ return [top + height, left];
53
61
  default:
54
- return [target.top + (target.height / 2), target.left];
62
+ return [top + (height / 2), left];
55
63
  }
56
64
  case 'right':
57
65
  switch (places[1]) {
58
66
  case 'start':
59
- return [target.top, target.right];
67
+ return [top, left + width];
60
68
  case 'end':
61
- return [target.bottom, target.right];
69
+ return [top + height, left + width];
62
70
  default:
63
- return [target.top + (target.height / 2), target.right];
71
+ return [top + (height / 2), left + width];
64
72
  }
65
73
  case 'top':
66
74
  switch (places[1]) {
67
75
  case 'start':
68
- return [target.top, target.left];
76
+ return [top, left];
69
77
  case 'end':
70
- return [target.top, target.right];
78
+ return [top, left + width];
71
79
  default:
72
- return [target.top, target.left + target.width / 2];
80
+ return [top, left + width / 2];
73
81
  }
74
82
  case 'bottom':
75
83
  switch (places[1]) {
76
84
  case 'start':
77
- return [target.bottom, target.left];
85
+ return [top + height, left];
78
86
  case 'end':
79
- return [target.bottom, target.right];
87
+ return [top + height, left + width];
80
88
  default:
81
- return [target.bottom, target.left + target.width / 2];
89
+ return [top + height, left + width / 2];
82
90
  }
83
91
  default:
84
92
  break;
85
93
  }
86
94
  };
87
95
 
88
- export { popoverBoxPlacement as a, popoverPlacement as p };
96
+ export { getPlacement as g, setPosition as s };
@@ -0,0 +1,36 @@
1
+ import { g as getElement } from './index-dbc63c66.js';
2
+
3
+ function AttrReflect(attribute) {
4
+ return (proto, propName) => {
5
+ const { connectedCallback } = proto;
6
+ proto.connectedCallback = function () {
7
+ const host = getElement(this);
8
+ registerAttrReflect(this, host, propName, attribute);
9
+ return connectedCallback && connectedCallback.call(this);
10
+ };
11
+ };
12
+ }
13
+ function registerAttrReflect(component, element, propName, attribute) {
14
+ if ("IntersectionObserver" in window) {
15
+ let io = new IntersectionObserver((data) => {
16
+ if (data[0].isIntersecting) {
17
+ initProps(component, element, propName, attribute);
18
+ io.disconnect();
19
+ io = null;
20
+ }
21
+ });
22
+ io.observe(element);
23
+ }
24
+ else {
25
+ // fall back to setTimeout for Safari and IE
26
+ setTimeout(() => {
27
+ initProps(component, element, propName, attribute);
28
+ }, 300);
29
+ }
30
+ }
31
+ function initProps(component, element, propName, attribute) {
32
+ component[propName] = element[attribute];
33
+ element.removeAttribute(attribute);
34
+ }
35
+
36
+ export { AttrReflect as A };
@@ -0,0 +1,9 @@
1
+ import { h } from './index-dbc63c66.js';
2
+ import { S as StringHelper } from './string-helper-35840f91.js';
3
+
4
+ const SlotTemplate = ({ value, className, name }) => {
5
+ return StringHelper.isNullOrEmpty(value) ? h("span", { class: className },
6
+ h("slot", Object.assign({}, (name && { name: name })))) : h("span", { class: className }, value);
7
+ };
8
+
9
+ export { SlotTemplate as S };
@@ -0,0 +1,14 @@
1
+ function snq(callback, defaultValue) {
2
+ try {
3
+ var result = callback();
4
+ return typeof result === 'undefined' ? defaultValue : result;
5
+ }
6
+ catch (err) {
7
+ if (err instanceof TypeError) {
8
+ return defaultValue;
9
+ }
10
+ throw err;
11
+ }
12
+ }
13
+
14
+ export { snq as s };
@@ -0,0 +1,109 @@
1
+ import { c as createCommonjsModule, a as commonjsGlobal } from './_commonjsHelpers-2088bffa.js';
2
+ import { B as Bcm } from './bcm-ad02f9c9.js';
3
+
4
+ var slugify = createCommonjsModule(function (module, exports) {
5
+ ;(function (name, root, factory) {
6
+ if ('object' === 'object') {
7
+ module.exports = factory();
8
+ module.exports['default'] = factory();
9
+ }
10
+ /* istanbul ignore next */
11
+ else if (typeof undefined === 'function' && undefined.amd) {
12
+ undefined(factory);
13
+ }
14
+ else {
15
+ root[name] = factory();
16
+ }
17
+ }('slugify', commonjsGlobal, function () {
18
+ var charMap = JSON.parse('{"$":"dollar","%":"percent","&":"and","<":"less",">":"greater","|":"or","¢":"cent","£":"pound","¤":"currency","¥":"yen","©":"(c)","ª":"a","®":"(r)","º":"o","À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","Æ":"AE","Ç":"C","È":"E","É":"E","Ê":"E","Ë":"E","Ì":"I","Í":"I","Î":"I","Ï":"I","Ð":"D","Ñ":"N","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","Ù":"U","Ú":"U","Û":"U","Ü":"U","Ý":"Y","Þ":"TH","ß":"ss","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","æ":"ae","ç":"c","è":"e","é":"e","ê":"e","ë":"e","ì":"i","í":"i","î":"i","ï":"i","ð":"d","ñ":"n","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","ù":"u","ú":"u","û":"u","ü":"u","ý":"y","þ":"th","ÿ":"y","Ā":"A","ā":"a","Ă":"A","ă":"a","Ą":"A","ą":"a","Ć":"C","ć":"c","Č":"C","č":"c","Ď":"D","ď":"d","Đ":"DJ","đ":"dj","Ē":"E","ē":"e","Ė":"E","ė":"e","Ę":"e","ę":"e","Ě":"E","ě":"e","Ğ":"G","ğ":"g","Ģ":"G","ģ":"g","Ĩ":"I","ĩ":"i","Ī":"i","ī":"i","Į":"I","į":"i","İ":"I","ı":"i","Ķ":"k","ķ":"k","Ļ":"L","ļ":"l","Ľ":"L","ľ":"l","Ł":"L","ł":"l","Ń":"N","ń":"n","Ņ":"N","ņ":"n","Ň":"N","ň":"n","Ō":"O","ō":"o","Ő":"O","ő":"o","Œ":"OE","œ":"oe","Ŕ":"R","ŕ":"r","Ř":"R","ř":"r","Ś":"S","ś":"s","Ş":"S","ş":"s","Š":"S","š":"s","Ţ":"T","ţ":"t","Ť":"T","ť":"t","Ũ":"U","ũ":"u","Ū":"u","ū":"u","Ů":"U","ů":"u","Ű":"U","ű":"u","Ų":"U","ų":"u","Ŵ":"W","ŵ":"w","Ŷ":"Y","ŷ":"y","Ÿ":"Y","Ź":"Z","ź":"z","Ż":"Z","ż":"z","Ž":"Z","ž":"z","Ə":"E","ƒ":"f","Ơ":"O","ơ":"o","Ư":"U","ư":"u","Lj":"LJ","lj":"lj","Nj":"NJ","nj":"nj","Ș":"S","ș":"s","Ț":"T","ț":"t","ə":"e","˚":"o","Ά":"A","Έ":"E","Ή":"H","Ί":"I","Ό":"O","Ύ":"Y","Ώ":"W","ΐ":"i","Α":"A","Β":"B","Γ":"G","Δ":"D","Ε":"E","Ζ":"Z","Η":"H","Θ":"8","Ι":"I","Κ":"K","Λ":"L","Μ":"M","Ν":"N","Ξ":"3","Ο":"O","Π":"P","Ρ":"R","Σ":"S","Τ":"T","Υ":"Y","Φ":"F","Χ":"X","Ψ":"PS","Ω":"W","Ϊ":"I","Ϋ":"Y","ά":"a","έ":"e","ή":"h","ί":"i","ΰ":"y","α":"a","β":"b","γ":"g","δ":"d","ε":"e","ζ":"z","η":"h","θ":"8","ι":"i","κ":"k","λ":"l","μ":"m","ν":"n","ξ":"3","ο":"o","π":"p","ρ":"r","ς":"s","σ":"s","τ":"t","υ":"y","φ":"f","χ":"x","ψ":"ps","ω":"w","ϊ":"i","ϋ":"y","ό":"o","ύ":"y","ώ":"w","Ё":"Yo","Ђ":"DJ","Є":"Ye","І":"I","Ї":"Yi","Ј":"J","Љ":"LJ","Њ":"NJ","Ћ":"C","Џ":"DZ","А":"A","Б":"B","В":"V","Г":"G","Д":"D","Е":"E","Ж":"Zh","З":"Z","И":"I","Й":"J","К":"K","Л":"L","М":"M","Н":"N","О":"O","П":"P","Р":"R","С":"S","Т":"T","У":"U","Ф":"F","Х":"H","Ц":"C","Ч":"Ch","Ш":"Sh","Щ":"Sh","Ъ":"U","Ы":"Y","Ь":"","Э":"E","Ю":"Yu","Я":"Ya","а":"a","б":"b","в":"v","г":"g","д":"d","е":"e","ж":"zh","з":"z","и":"i","й":"j","к":"k","л":"l","м":"m","н":"n","о":"o","п":"p","р":"r","с":"s","т":"t","у":"u","ф":"f","х":"h","ц":"c","ч":"ch","ш":"sh","щ":"sh","ъ":"u","ы":"y","ь":"","э":"e","ю":"yu","я":"ya","ё":"yo","ђ":"dj","є":"ye","і":"i","ї":"yi","ј":"j","љ":"lj","њ":"nj","ћ":"c","ѝ":"u","џ":"dz","Ґ":"G","ґ":"g","Ғ":"GH","ғ":"gh","Қ":"KH","қ":"kh","Ң":"NG","ң":"ng","Ү":"UE","ү":"ue","Ұ":"U","ұ":"u","Һ":"H","һ":"h","Ә":"AE","ә":"ae","Ө":"OE","ө":"oe","Ա":"A","Բ":"B","Գ":"G","Դ":"D","Ե":"E","Զ":"Z","Է":"E\'","Ը":"Y\'","Թ":"T\'","Ժ":"JH","Ի":"I","Լ":"L","Խ":"X","Ծ":"C\'","Կ":"K","Հ":"H","Ձ":"D\'","Ղ":"GH","Ճ":"TW","Մ":"M","Յ":"Y","Ն":"N","Շ":"SH","Չ":"CH","Պ":"P","Ջ":"J","Ռ":"R\'","Ս":"S","Վ":"V","Տ":"T","Ր":"R","Ց":"C","Փ":"P\'","Ք":"Q\'","Օ":"O\'\'","Ֆ":"F","և":"EV","ء":"a","آ":"aa","أ":"a","ؤ":"u","إ":"i","ئ":"e","ا":"a","ب":"b","ة":"h","ت":"t","ث":"th","ج":"j","ح":"h","خ":"kh","د":"d","ذ":"th","ر":"r","ز":"z","س":"s","ش":"sh","ص":"s","ض":"dh","ط":"t","ظ":"z","ع":"a","غ":"gh","ف":"f","ق":"q","ك":"k","ل":"l","م":"m","ن":"n","ه":"h","و":"w","ى":"a","ي":"y","ً":"an","ٌ":"on","ٍ":"en","َ":"a","ُ":"u","ِ":"e","ْ":"","٠":"0","١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","پ":"p","چ":"ch","ژ":"zh","ک":"k","گ":"g","ی":"y","۰":"0","۱":"1","۲":"2","۳":"3","۴":"4","۵":"5","۶":"6","۷":"7","۸":"8","۹":"9","฿":"baht","ა":"a","ბ":"b","გ":"g","დ":"d","ე":"e","ვ":"v","ზ":"z","თ":"t","ი":"i","კ":"k","ლ":"l","მ":"m","ნ":"n","ო":"o","პ":"p","ჟ":"zh","რ":"r","ს":"s","ტ":"t","უ":"u","ფ":"f","ქ":"k","ღ":"gh","ყ":"q","შ":"sh","ჩ":"ch","ც":"ts","ძ":"dz","წ":"ts","ჭ":"ch","ხ":"kh","ჯ":"j","ჰ":"h","Ṣ":"S","ṣ":"s","Ẁ":"W","ẁ":"w","Ẃ":"W","ẃ":"w","Ẅ":"W","ẅ":"w","ẞ":"SS","Ạ":"A","ạ":"a","Ả":"A","ả":"a","Ấ":"A","ấ":"a","Ầ":"A","ầ":"a","Ẩ":"A","ẩ":"a","Ẫ":"A","ẫ":"a","Ậ":"A","ậ":"a","Ắ":"A","ắ":"a","Ằ":"A","ằ":"a","Ẳ":"A","ẳ":"a","Ẵ":"A","ẵ":"a","Ặ":"A","ặ":"a","Ẹ":"E","ẹ":"e","Ẻ":"E","ẻ":"e","Ẽ":"E","ẽ":"e","Ế":"E","ế":"e","Ề":"E","ề":"e","Ể":"E","ể":"e","Ễ":"E","ễ":"e","Ệ":"E","ệ":"e","Ỉ":"I","ỉ":"i","Ị":"I","ị":"i","Ọ":"O","ọ":"o","Ỏ":"O","ỏ":"o","Ố":"O","ố":"o","Ồ":"O","ồ":"o","Ổ":"O","ổ":"o","Ỗ":"O","ỗ":"o","Ộ":"O","ộ":"o","Ớ":"O","ớ":"o","Ờ":"O","ờ":"o","Ở":"O","ở":"o","Ỡ":"O","ỡ":"o","Ợ":"O","ợ":"o","Ụ":"U","ụ":"u","Ủ":"U","ủ":"u","Ứ":"U","ứ":"u","Ừ":"U","ừ":"u","Ử":"U","ử":"u","Ữ":"U","ữ":"u","Ự":"U","ự":"u","Ỳ":"Y","ỳ":"y","Ỵ":"Y","ỵ":"y","Ỷ":"Y","ỷ":"y","Ỹ":"Y","ỹ":"y","–":"-","‘":"\'","’":"\'","“":"\\\"","”":"\\\"","„":"\\\"","†":"+","•":"*","…":"...","₠":"ecu","₢":"cruzeiro","₣":"french franc","₤":"lira","₥":"mill","₦":"naira","₧":"peseta","₨":"rupee","₩":"won","₪":"new shequel","₫":"dong","€":"euro","₭":"kip","₮":"tugrik","₯":"drachma","₰":"penny","₱":"peso","₲":"guarani","₳":"austral","₴":"hryvnia","₵":"cedi","₸":"kazakhstani tenge","₹":"indian rupee","₺":"turkish lira","₽":"russian ruble","₿":"bitcoin","℠":"sm","™":"tm","∂":"d","∆":"delta","∑":"sum","∞":"infinity","♥":"love","元":"yuan","円":"yen","﷼":"rial","ﻵ":"laa","ﻷ":"laa","ﻹ":"lai","ﻻ":"la"}');
19
+ var locales = JSON.parse('{"bg":{"Й":"Y","Ц":"Ts","Щ":"Sht","Ъ":"A","Ь":"Y","й":"y","ц":"ts","щ":"sht","ъ":"a","ь":"y"},"de":{"Ä":"AE","ä":"ae","Ö":"OE","ö":"oe","Ü":"UE","ü":"ue","ß":"ss","%":"prozent","&":"und","|":"oder","∑":"summe","∞":"unendlich","♥":"liebe"},"es":{"%":"por ciento","&":"y","<":"menor que",">":"mayor que","|":"o","¢":"centavos","£":"libras","¤":"moneda","₣":"francos","∑":"suma","∞":"infinito","♥":"amor"},"fr":{"%":"pourcent","&":"et","<":"plus petit",">":"plus grand","|":"ou","¢":"centime","£":"livre","¤":"devise","₣":"franc","∑":"somme","∞":"infini","♥":"amour"},"pt":{"%":"porcento","&":"e","<":"menor",">":"maior","|":"ou","¢":"centavo","∑":"soma","£":"libra","∞":"infinito","♥":"amor"},"uk":{"И":"Y","и":"y","Й":"Y","й":"y","Ц":"Ts","ц":"ts","Х":"Kh","х":"kh","Щ":"Shch","щ":"shch","Г":"H","г":"h"},"vi":{"Đ":"D","đ":"d"},"da":{"Ø":"OE","ø":"oe","Å":"AA","å":"aa","%":"procent","&":"og","|":"eller","$":"dollar","<":"mindre end",">":"større end"},"nb":{"&":"og","Å":"AA","Æ":"AE","Ø":"OE","å":"aa","æ":"ae","ø":"oe"},"it":{"&":"e"},"nl":{"&":"en"},"sv":{"&":"och","Å":"AA","Ä":"AE","Ö":"OE","å":"aa","ä":"ae","ö":"oe"}}');
20
+
21
+ function replace (string, options) {
22
+ if (typeof string !== 'string') {
23
+ throw new Error('slugify: string argument expected')
24
+ }
25
+
26
+ options = (typeof options === 'string')
27
+ ? {replacement: options}
28
+ : options || {};
29
+
30
+ var locale = locales[options.locale] || {};
31
+
32
+ var replacement = options.replacement === undefined ? '-' : options.replacement;
33
+
34
+ var trim = options.trim === undefined ? true : options.trim;
35
+
36
+ var slug = string.normalize().split('')
37
+ // replace characters based on charMap
38
+ .reduce(function (result, ch) {
39
+ var appendChar = locale[ch] || charMap[ch] || ch;
40
+ if (appendChar === replacement) {
41
+ appendChar = ' ';
42
+ }
43
+ return result + appendChar
44
+ // remove not allowed characters
45
+ .replace(options.remove || /[^\w\s$*_+~.()'"!\-:@]+/g, '')
46
+ }, '');
47
+
48
+ if (options.strict) {
49
+ slug = slug.replace(/[^A-Za-z0-9\s]/g, '');
50
+ }
51
+
52
+ if (trim) {
53
+ slug = slug.trim();
54
+ }
55
+
56
+ // Replace spaces with replacement character, treating multiple consecutive
57
+ // spaces as a single space.
58
+ slug = slug.replace(/\s+/g, replacement);
59
+
60
+ if (options.lower) {
61
+ slug = slug.toLowerCase();
62
+ }
63
+
64
+ return slug
65
+ }
66
+
67
+ replace.extend = function (customMap) {
68
+ Object.assign(charMap, customMap);
69
+ };
70
+
71
+ return replace
72
+ }));
73
+ });
74
+
75
+ class StringHelper {
76
+ }
77
+ StringHelper.lowercase = (str) => str.toLowerCase();
78
+ StringHelper.uppercase = (str) => str.toUpperCase();
79
+ StringHelper.capitalize = (str) => str.charAt(0).toUpperCase() + str.slice(1);
80
+ StringHelper.camelCase = (str) => str.replace(/\s(.)/g, function ($1) { return $1.toUpperCase(); }).replace(/\s/g, '');
81
+ StringHelper.kebabCase = (str) => str.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();
82
+ StringHelper.snakeCase = (str) => str.replace(/([a-z])([A-Z])/g, '$1_$2').toLowerCase();
83
+ StringHelper.titleCase = (str) => str.replace(/\w\S*/g, function (txt) { return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase(); });
84
+ StringHelper.trim = (str) => str.trim();
85
+ StringHelper.trimLeft = (str) => str.trimLeft();
86
+ StringHelper.trimRight = (str) => str.trimRight();
87
+ StringHelper.trimAll = (str) => str.trim().replace(/\s+/g, ' ');
88
+ StringHelper.replace = (str, search, replace) => str.replace(search, replace);
89
+ StringHelper.remove = (str, search) => str.replace(search, '');
90
+ StringHelper.isNullOrEmpty = (str) => str === null || str === undefined || str === '';
91
+ StringHelper.localizationMessage = (str, args) => str.replace(/{(\d+)}/g, (match, number) => typeof args[number] != 'undefined' ? args[number] : match);
92
+ StringHelper.getMessage = (type, args) => StringHelper.localizationMessage(Bcm.FormErrorMessages[type], args);
93
+ StringHelper.split = (str, separator) => str.split(separator);
94
+ StringHelper.textContains = (str, search) => str.indexOf(search) !== -1;
95
+ StringHelper.textLimitter = (str, limit) => (str && str.length > limit) ? str.substring(0, limit) + '...' : str;
96
+ StringHelper.slugify = (str) => slugify(str, {
97
+ replacement: ' ',
98
+ remove: undefined,
99
+ lower: true,
100
+ strict: false,
101
+ locale: 'vi',
102
+ trim: false // trim leading and trailing replacement chars, defaults to `true`
103
+ });
104
+ StringHelper.highlight = (str, search) => {
105
+ const regex = new RegExp(search, 'gi');
106
+ return str.replace(regex, (match) => `<mark>${match}</mark>`);
107
+ };
108
+
109
+ export { StringHelper as S };