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.
- package/dist/bromcom-ui/{index-43956e3c.js → _commonjsHelpers-2088bffa.js} +1 -56
- package/dist/bromcom-ui/bcm-ad02f9c9.js +453 -0
- package/dist/bromcom-ui/bcm-alert.entry.js +53 -58
- package/dist/bromcom-ui/bcm-autocomplete.entry.js +4 -3
- package/dist/bromcom-ui/bcm-avatar.entry.js +27 -28
- package/dist/bromcom-ui/bcm-badge.entry.js +60 -31
- package/dist/bromcom-ui/bcm-breadcrumb.entry.js +26 -32
- package/dist/bromcom-ui/bcm-button.entry.js +92 -215
- package/dist/bromcom-ui/bcm-card-footer.entry.js +1 -1
- package/dist/bromcom-ui/bcm-card-header.entry.js +1 -1
- package/dist/bromcom-ui/bcm-card.entry.js +5 -4
- package/dist/bromcom-ui/bcm-checkbox-group.entry.js +253 -227
- package/dist/bromcom-ui/bcm-checkbox-lite.entry.js +29 -26
- package/dist/bromcom-ui/bcm-checkbox.entry.js +85 -89
- package/dist/bromcom-ui/bcm-collapse-group.entry.js +11 -16
- package/dist/bromcom-ui/bcm-collapse.entry.js +31 -18
- package/dist/bromcom-ui/bcm-colorpicker.entry.js +7 -6
- package/dist/bromcom-ui/bcm-comment-editor.entry.js +4 -3
- package/dist/bromcom-ui/bcm-comment-group.entry.js +4 -3
- package/dist/bromcom-ui/bcm-comment.entry.js +5 -4
- package/dist/bromcom-ui/bcm-date-picker.entry.js +31 -34
- package/dist/bromcom-ui/bcm-datetime-picker.entry.js +20 -46
- package/dist/bromcom-ui/bcm-divider.entry.js +11 -11
- package/dist/bromcom-ui/bcm-dropdown-button.entry.js +35 -61
- package/dist/bromcom-ui/bcm-dropdown-item.entry.js +66 -16
- package/dist/bromcom-ui/bcm-dropdown-list.entry.js +31 -49
- package/dist/bromcom-ui/bcm-dropdown.entry.js +17 -46
- package/dist/bromcom-ui/bcm-empty.entry.js +14 -45
- package/dist/bromcom-ui/bcm-error-layout.entry.js +20 -34
- package/dist/bromcom-ui/bcm-form-group.entry.js +3 -3
- package/dist/bromcom-ui/bcm-form.entry.js +31 -16
- package/dist/bromcom-ui/bcm-icon.entry.js +55 -35
- package/dist/bromcom-ui/bcm-input.entry.js +170 -276
- package/dist/bromcom-ui/bcm-label.entry.js +12 -549
- package/dist/bromcom-ui/bcm-link.entry.js +26 -5
- package/dist/bromcom-ui/bcm-list-2.entry.js +1063 -0
- package/dist/bromcom-ui/bcm-list-item.entry.js +4 -3
- package/dist/bromcom-ui/bcm-list-select.entry.js +14 -13
- package/dist/bromcom-ui/bcm-list.entry.js +10 -5
- package/dist/bromcom-ui/bcm-listbox-group.entry.js +5 -4
- package/dist/bromcom-ui/bcm-listbox-item.entry.js +5 -4
- package/dist/bromcom-ui/bcm-listbox.entry.js +17 -14
- package/dist/bromcom-ui/bcm-menu-group.entry.js +4 -3
- package/dist/bromcom-ui/bcm-menu-item.entry.js +4 -3
- package/dist/bromcom-ui/bcm-menu.entry.js +4 -3
- package/dist/bromcom-ui/bcm-message.entry.js +54 -50
- package/dist/bromcom-ui/bcm-modal.entry.js +47 -160
- package/dist/bromcom-ui/bcm-notification.entry.js +59 -47
- package/dist/bromcom-ui/bcm-popconfirm-box.entry.js +61 -21
- package/dist/bromcom-ui/bcm-popconfirm.entry.js +49 -93
- package/dist/bromcom-ui/bcm-popover-box.entry.js +44 -16
- package/dist/bromcom-ui/bcm-popover.entry.js +61 -101
- package/dist/bromcom-ui/bcm-progress.entry.js +77 -63
- package/dist/bromcom-ui/bcm-pulldown-group.entry.js +5 -4
- package/dist/bromcom-ui/bcm-pulldown-item.entry.js +4 -3
- package/dist/bromcom-ui/bcm-pulldown.entry.js +5 -4
- package/dist/bromcom-ui/bcm-radio-group.entry.js +183 -85
- package/dist/bromcom-ui/bcm-radio.entry.js +59 -79
- package/dist/bromcom-ui/bcm-range.entry.js +161 -0
- package/dist/bromcom-ui/bcm-result.entry.js +62 -38
- package/dist/bromcom-ui/bcm-search-2.entry.js +219 -0
- package/dist/bromcom-ui/bcm-search.entry.js +5 -4
- package/dist/bromcom-ui/bcm-select-box.entry.js +4 -3
- package/dist/bromcom-ui/bcm-select-group.entry.js +4 -3
- package/dist/bromcom-ui/bcm-select-option.entry.js +5 -4
- package/dist/bromcom-ui/bcm-select.entry.js +11 -12
- package/dist/bromcom-ui/bcm-selecto.entry.js +3 -2
- package/dist/bromcom-ui/bcm-slider.entry.js +4 -3
- package/dist/bromcom-ui/bcm-sub-comment.entry.js +5 -4
- package/dist/bromcom-ui/bcm-switch.entry.js +48 -37
- package/dist/bromcom-ui/bcm-tab-pane.entry.js +4 -3
- package/dist/bromcom-ui/bcm-tab.entry.js +8 -8
- package/dist/bromcom-ui/bcm-tabs-content.entry.js +5 -4
- package/dist/bromcom-ui/bcm-tabs.entry.js +6 -5
- package/dist/bromcom-ui/bcm-tag.entry.js +48 -44
- package/dist/bromcom-ui/bcm-text.entry.js +16 -10
- package/dist/bromcom-ui/bcm-textarea.entry.js +45 -68
- package/dist/bromcom-ui/bcm-time-picker.entry.js +4 -3
- package/dist/bromcom-ui/bcm-timeline-item.entry.js +10 -24
- package/dist/bromcom-ui/bcm-timeline.entry.js +11 -33
- package/dist/bromcom-ui/bcm-tooltip-box.entry.js +54 -16
- package/dist/bromcom-ui/bcm-tooltip.entry.js +48 -99
- package/dist/bromcom-ui/bcm-treeview-group.entry.js +1 -1
- package/dist/bromcom-ui/bcm-treeview-item.entry.js +5 -4
- package/dist/bromcom-ui/bcm-treeview.entry.js +6 -5
- package/dist/bromcom-ui/bcm-upload.entry.js +5 -4
- package/dist/bromcom-ui/bromcom-ui.css +40153 -35
- package/dist/bromcom-ui/bromcom-ui.esm.js +2 -2
- package/dist/bromcom-ui/caption-template-2d4ffc88.js +25 -0
- package/dist/bromcom-ui/color-helper-19448077.js +35 -0
- package/dist/bromcom-ui/{element-dragger-e40f0410.js → element-dragger-2a215f47.js} +1 -1
- package/dist/bromcom-ui/generate-8e440fc4.js +91 -0
- package/dist/bromcom-ui/index-55174f2a.js +58 -0
- package/dist/bromcom-ui/{index-9dbea026.js → index-dbc63c66.js} +2 -2
- package/dist/bromcom-ui/index-dd5c1283.js +187 -0
- package/dist/bromcom-ui/input-template-487d3243.js +83 -0
- package/dist/bromcom-ui/json-parse-decarator-223ea680.js +21 -0
- package/dist/bromcom-ui/label-template-501216fc.js +19 -0
- package/dist/bromcom-ui/number-helper-fea1966f.js +13 -0
- package/dist/bromcom-ui/{popover-placement-fb1f91e9.js → popover-placement-f7a6551c.js} +25 -17
- package/dist/bromcom-ui/property-decorators-21b15487.js +36 -0
- package/dist/bromcom-ui/slot-template-f79b82ee.js +9 -0
- package/dist/bromcom-ui/snq.es5-946822b8.js +14 -0
- package/dist/bromcom-ui/string-helper-35840f91.js +109 -0
- package/dist/bromcom-ui/types-6b2a6629.js +172 -0
- package/dist/bromcom-ui/{utils-1feb01eb.js → utils-333ded7f.js} +4 -1
- package/dist/types/components/atoms/avatar/avatar.d.ts +9 -5
- package/dist/types/components/atoms/badge/badge.d.ts +14 -9
- package/dist/types/components/atoms/button/button.d.ts +17 -10
- package/dist/types/components/atoms/button/types.d.ts +0 -22
- package/dist/types/components/atoms/divider/divider.d.ts +2 -2
- package/dist/types/components/atoms/icon/icon.d.ts +14 -9
- package/dist/types/components/atoms/label/label.d.ts +1 -2
- package/dist/types/components/atoms/link/link.d.ts +6 -1
- package/dist/types/components/atoms/states/badge.states.d.ts +7 -0
- package/dist/types/components/atoms/states/button.states.d.ts +7 -0
- package/dist/types/components/atoms/tag/tag.d.ts +14 -11
- package/dist/types/components/atoms/text/text.d.ts +4 -3
- package/dist/types/components/molecules/alert/alert.d.ts +15 -37
- package/dist/types/components/molecules/breadcrumb/breadcrumb.d.ts +9 -22
- package/dist/types/components/molecules/breadcrumb/types.d.ts +10 -0
- package/dist/types/components/molecules/checkbox/checkbox-lite.d.ts +7 -22
- package/dist/types/components/molecules/checkbox/checkbox.d.ts +26 -31
- package/dist/types/components/molecules/checkbox/group.d.ts +24 -83
- package/dist/types/components/molecules/collapse/collapse.d.ts +9 -6
- package/dist/types/components/molecules/collapse/group.d.ts +4 -2
- package/dist/types/components/molecules/dropdown/dropdown-button.d.ts +18 -31
- package/dist/types/components/molecules/dropdown/dropdown-item.d.ts +17 -16
- package/dist/types/components/molecules/dropdown/dropdown-list.d.ts +12 -35
- package/dist/types/components/molecules/dropdown/dropdown.d.ts +5 -30
- package/dist/types/components/molecules/empty/empty.d.ts +7 -24
- package/dist/types/components/molecules/empty/types.d.ts +0 -15
- package/dist/types/components/molecules/error-layout/error-layout.d.ts +6 -18
- package/dist/types/components/molecules/input/input.d.ts +39 -45
- package/dist/types/components/molecules/input/types.d.ts +13 -0
- package/dist/types/components/molecules/list/list-select.d.ts +0 -1
- package/dist/types/components/molecules/list/list.d.ts +0 -1
- package/dist/types/components/molecules/message/message.d.ts +13 -25
- package/dist/types/components/molecules/modal/modal.d.ts +12 -65
- package/dist/types/components/molecules/notification/notification.d.ts +14 -21
- package/dist/types/components/molecules/popconfirm/popconfirm-box.d.ts +14 -12
- package/dist/types/components/molecules/popconfirm/popconfirm.d.ts +10 -14
- package/dist/types/components/molecules/popover/popover-box.d.ts +10 -10
- package/dist/types/components/molecules/popover/popover.d.ts +13 -19
- package/dist/types/components/molecules/progress/progress.d.ts +8 -6
- package/dist/types/components/molecules/progress/types.d.ts +24 -0
- package/dist/types/components/molecules/radio/group.d.ts +28 -22
- package/dist/types/components/molecules/radio/radio.d.ts +13 -17
- package/dist/types/components/molecules/range/range.d.ts +36 -0
- package/dist/types/components/molecules/result/result.d.ts +14 -8
- package/dist/types/components/molecules/search-2/search-2.d.ts +30 -0
- package/dist/types/components/molecules/select/select.d.ts +4 -5
- package/dist/types/components/molecules/states/alert.states.d.ts +7 -0
- package/dist/types/components/molecules/states/checkbox-group.states.d.ts +53 -0
- package/dist/types/components/molecules/states/message.states.d.ts +7 -0
- package/dist/types/components/molecules/states/notification.states.d.ts +7 -0
- package/dist/types/components/molecules/states/radio-group.states.d.ts +47 -0
- package/dist/types/components/molecules/states/result.states.d.ts +7 -0
- package/dist/types/components/molecules/states/search.states.d.ts +13 -0
- package/dist/types/components/molecules/switch/switch.d.ts +18 -15
- package/dist/types/components/molecules/textarea/textarea.d.ts +23 -23
- package/dist/types/components/molecules/textarea/types.d.ts +9 -0
- package/dist/types/components/molecules/timeline/timeline-item.d.ts +0 -12
- package/dist/types/components/molecules/timeline/timeline.d.ts +2 -19
- package/dist/types/components/molecules/tooltip/tooltip-box.d.ts +11 -8
- package/dist/types/components/molecules/tooltip/tooltip.d.ts +13 -17
- package/dist/types/components/organism/colorpicker/colorpicker.d.ts +1 -2
- package/dist/types/components/organism/date-picker/date-picker.d.ts +7 -11
- package/dist/types/components/organism/datetime-picker/datetime-picker.d.ts +4 -5
- package/dist/types/components/organism/form/form.d.ts +2 -1
- package/dist/types/components/organism/list-2/list-2.d.ts +109 -0
- package/dist/types/components/organism/listbox/listbox.d.ts +1 -2
- package/dist/types/components/organism/states/bcm-list2.states.d.ts +24 -0
- package/dist/types/components/organism/tabs/tab.d.ts +2 -1
- package/dist/types/components/organism/time-picker/time-picker.d.ts +1 -1
- package/dist/types/components.d.ts +554 -511
- package/dist/types/decorators/json-parse-decarator.d.ts +4 -0
- package/dist/types/decorators/property-decorators.d.ts +6 -0
- package/dist/types/global/variables/colors.d.ts +0 -1
- package/dist/types/helper/generate.d.ts +4 -1
- package/dist/types/helper/number-helper.d.ts +9 -0
- package/dist/types/helper/string-helper.d.ts +3 -0
- package/dist/types/models/bcm.d.ts +1 -1
- package/dist/types/models/states/Atoms/bcm-Atoms-state.d.ts +34 -0
- package/dist/types/models/states/molecules/bcm-molecules-state.d.ts +78 -0
- package/dist/types/models/states/organisms/bcm-organisms-state.d.ts +71 -0
- package/dist/types/templates/button-template.d.ts +16 -0
- package/dist/types/templates/checkbox-group-template.d.ts +10 -0
- package/dist/types/templates/checkbox-template.d.ts +13 -0
- package/dist/types/templates/info-footer-template.d.ts +10 -0
- package/dist/types/templates/input-template.d.ts +30 -0
- package/dist/types/templates/list-item-template.d.ts +11 -0
- package/dist/types/templates/list-template.d.ts +23 -0
- package/dist/types/templates/tag-template.d.ts +17 -0
- package/dist/types/types/index.d.ts +1 -1
- package/dist/types/utils/popover-placement.d.ts +3 -3
- package/dist/types/utils/utils.d.ts +1 -0
- package/package.json +1 -1
- package/dist/bromcom-ui/bcm-content.entry.js +0 -15
- package/dist/bromcom-ui/bcm-dropdown-group.entry.js +0 -58
- package/dist/bromcom-ui/bcm-footer.entry.js +0 -15
- package/dist/bromcom-ui/bcm-header.entry.js +0 -15
- package/dist/bromcom-ui/datetime-helper-c373f888.js +0 -5
- package/dist/bromcom-ui/types-0e4b533d.js +0 -14
- package/dist/bromcom-ui/types-911a8837.js +0 -21
- package/dist/types/components/atoms/badge/types.d.ts +0 -4
- package/dist/types/components/molecules/checkbox/types.d.ts +0 -29
- package/dist/types/components/molecules/dropdown/dropdown-group.d.ts +0 -28
- package/dist/types/components/molecules/dropdown/types.d.ts +0 -20
- package/dist/types/components/molecules/error-layout/types.d.ts +0 -4
- package/dist/types/components/molecules/message/types.d.ts +0 -13
- package/dist/types/components/molecules/modal/modal-content.d.ts +0 -4
- package/dist/types/components/molecules/modal/modal-header.d.ts +0 -4
- package/dist/types/components/molecules/modal/model-footer.d.ts +0 -4
- package/dist/types/components/molecules/modal/types.d.ts +0 -41
- package/dist/types/components/molecules/notification/types.d.ts +0 -14
- package/dist/types/components/molecules/result/types.d.ts +0 -19
- 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
|
|
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
|
|
45
|
-
const
|
|
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 [
|
|
58
|
+
return [top, left];
|
|
51
59
|
case 'end':
|
|
52
|
-
return [
|
|
60
|
+
return [top + height, left];
|
|
53
61
|
default:
|
|
54
|
-
return [
|
|
62
|
+
return [top + (height / 2), left];
|
|
55
63
|
}
|
|
56
64
|
case 'right':
|
|
57
65
|
switch (places[1]) {
|
|
58
66
|
case 'start':
|
|
59
|
-
return [
|
|
67
|
+
return [top, left + width];
|
|
60
68
|
case 'end':
|
|
61
|
-
return [
|
|
69
|
+
return [top + height, left + width];
|
|
62
70
|
default:
|
|
63
|
-
return [
|
|
71
|
+
return [top + (height / 2), left + width];
|
|
64
72
|
}
|
|
65
73
|
case 'top':
|
|
66
74
|
switch (places[1]) {
|
|
67
75
|
case 'start':
|
|
68
|
-
return [
|
|
76
|
+
return [top, left];
|
|
69
77
|
case 'end':
|
|
70
|
-
return [
|
|
78
|
+
return [top, left + width];
|
|
71
79
|
default:
|
|
72
|
-
return [
|
|
80
|
+
return [top, left + width / 2];
|
|
73
81
|
}
|
|
74
82
|
case 'bottom':
|
|
75
83
|
switch (places[1]) {
|
|
76
84
|
case 'start':
|
|
77
|
-
return [
|
|
85
|
+
return [top + height, left];
|
|
78
86
|
case 'end':
|
|
79
|
-
return [
|
|
87
|
+
return [top + height, left + width];
|
|
80
88
|
default:
|
|
81
|
-
return [
|
|
89
|
+
return [top + height, left + width / 2];
|
|
82
90
|
}
|
|
83
91
|
default:
|
|
84
92
|
break;
|
|
85
93
|
}
|
|
86
94
|
};
|
|
87
95
|
|
|
88
|
-
export {
|
|
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 };
|