@haiilo/catalyst 0.7.2 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/catalyst/catalyst.css +2 -2
- package/dist/catalyst/catalyst.esm.js +1 -1
- package/dist/catalyst/catalyst.esm.js.map +1 -1
- package/dist/catalyst/index.esm.js +1 -1
- package/dist/catalyst/p-2ad6f8d8.js +2 -0
- package/dist/catalyst/{p-7c06183a.js.map → p-2ad6f8d8.js.map} +1 -1
- package/dist/catalyst/p-659073b5.js +3 -0
- package/dist/catalyst/p-659073b5.js.map +1 -0
- package/dist/catalyst/{p-c7f3b231.js → p-6a8a4dc0.js} +2 -2
- package/dist/catalyst/{p-c7f3b231.js.map → p-6a8a4dc0.js.map} +0 -0
- package/dist/catalyst/{p-5616e2cd.js → p-6fce43dd.js} +2 -2
- package/dist/catalyst/{p-5616e2cd.js.map → p-6fce43dd.js.map} +0 -0
- package/dist/catalyst/p-89c24fb5.entry.js +12 -0
- package/dist/catalyst/p-89c24fb5.entry.js.map +1 -0
- package/dist/catalyst/{p-4254363e.entry.js → p-c0b4200d.entry.js} +2 -2
- package/dist/catalyst/{p-4254363e.entry.js.map → p-c0b4200d.entry.js.map} +0 -0
- package/dist/catalyst/{p-12486027.js → p-decdc6f1.js} +2 -2
- package/dist/catalyst/p-decdc6f1.js.map +1 -0
- package/dist/catalyst/p-f45bcfd6.js +2 -0
- package/dist/catalyst/p-f45bcfd6.js.map +1 -0
- package/dist/catalyst/scss/_mixins.scss +1 -1
- package/dist/catalyst/scss/_variables.scss +2 -0
- package/dist/catalyst/scss/{utils → core}/_toast.scss +2 -2
- package/dist/catalyst/scss/fonts/_fonts-mixins.scss +17 -0
- package/dist/catalyst/scss/fonts/_fonts.mixins.azeret.scss +1 -1
- package/dist/catalyst/scss/fonts/_fonts.mixins.dm.scss +6 -6
- package/dist/catalyst/scss/fonts/_fonts.mixins.lato.scss +36 -36
- package/dist/catalyst/scss/index.scss +23 -20
- package/dist/cjs/{app-globals-aa29ad72.js → app-globals-79765026.js} +3 -3
- package/dist/cjs/{app-globals-aa29ad72.js.map → app-globals-79765026.js.map} +1 -1
- package/dist/cjs/cat-alert_20.cjs.entry.js +12632 -0
- package/dist/cjs/cat-alert_20.cjs.entry.js.map +1 -0
- package/dist/cjs/{cat-form-hint-93a6936b.js → cat-form-hint-25fdfed5.js} +2 -2
- package/dist/cjs/{cat-form-hint-93a6936b.js.map → cat-form-hint-25fdfed5.js.map} +1 -1
- package/dist/cjs/{cat-icon-registry-49b11b51.js → cat-icon-registry-b015a65f.js} +37 -43
- package/dist/cjs/cat-icon-registry-b015a65f.js.map +1 -0
- package/dist/cjs/{cat-notification-156f4cf5.js → cat-notification-fe237312.js} +2 -2
- package/dist/cjs/{cat-notification-156f4cf5.js.map → cat-notification-fe237312.js.map} +1 -1
- package/dist/cjs/cat-textarea.cjs.entry.js +3 -3
- package/dist/cjs/catalyst.cjs.js +6 -6
- package/dist/cjs/catalyst.cjs.js.map +1 -1
- package/dist/cjs/{index-499bad41.js → index-936b777e.js} +10 -5
- package/dist/cjs/index-936b777e.js.map +1 -0
- package/dist/cjs/index.cjs.js +3 -3
- package/dist/cjs/loader.cjs.js +6 -6
- package/dist/cjs/loader.cjs.js.map +1 -1
- package/dist/cjs/{loglevel-c9b2d01f.js → loglevel-b5d158ad.js} +6 -1
- package/dist/cjs/loglevel-b5d158ad.js.map +1 -0
- package/dist/collection/collection-manifest.json +3 -1
- package/dist/collection/components/cat-avatar/cat-avatar.js +2 -2
- package/dist/collection/components/cat-avatar/cat-avatar.js.map +1 -1
- package/dist/collection/components/cat-i18n/cat-i18n-registry.js +35 -41
- package/dist/collection/components/cat-i18n/cat-i18n-registry.js.map +1 -1
- package/dist/collection/components/cat-input/cat-input.js +2 -2
- package/dist/collection/components/cat-input/cat-input.js.map +1 -1
- package/dist/collection/components/cat-modal/cat-modal.css +65 -0
- package/dist/collection/components/cat-modal/cat-modal.js +117 -0
- package/dist/collection/components/cat-modal/cat-modal.js.map +1 -0
- package/dist/collection/components/cat-select/cat-select.css +602 -0
- package/dist/collection/components/cat-select/cat-select.js +528 -0
- package/dist/collection/components/cat-select/cat-select.js.map +1 -0
- package/dist/collection/init.js +1 -1
- package/dist/collection/init.js.map +1 -1
- package/dist/collection/scss/_mixins.scss +1 -1
- package/dist/collection/scss/_variables.scss +2 -0
- package/dist/collection/scss/{utils → core}/_toast.scss +2 -2
- package/dist/collection/scss/fonts/_fonts-mixins.scss +17 -0
- package/dist/collection/scss/fonts/_fonts.mixins.azeret.scss +1 -1
- package/dist/collection/scss/fonts/_fonts.mixins.dm.scss +6 -6
- package/dist/collection/scss/fonts/_fonts.mixins.lato.scss +36 -36
- package/dist/collection/scss/index.scss +23 -20
- package/dist/components/cat-avatar.js +2 -2
- package/dist/components/cat-avatar.js.map +1 -1
- package/dist/components/cat-i18n-registry.js +35 -41
- package/dist/components/cat-i18n-registry.js.map +1 -1
- package/dist/components/cat-icon.js +1 -1
- package/dist/components/cat-icon2.js +56 -2
- package/dist/components/cat-icon2.js.map +1 -1
- package/dist/components/cat-input.js +2 -2
- package/dist/components/cat-input.js.map +1 -1
- package/dist/components/cat-menu.js +3 -742
- package/dist/components/cat-menu.js.map +1 -1
- package/dist/components/cat-modal.d.ts +11 -0
- package/dist/components/cat-modal.js +111 -0
- package/dist/components/cat-modal.js.map +1 -0
- package/dist/components/cat-select.d.ts +11 -0
- package/dist/components/cat-select.js +7790 -0
- package/dist/components/cat-select.js.map +1 -0
- package/dist/components/cat-toast-demo.js +549 -4
- package/dist/components/cat-toast-demo.js.map +1 -1
- package/dist/components/cat-tooltip.js +2 -1
- package/dist/components/cat-tooltip.js.map +1 -1
- package/dist/components/first-tabbable.js +1 -1068
- package/dist/components/first-tabbable.js.map +1 -1
- package/dist/components/floating-ui.dom.esm.js +1070 -0
- package/dist/components/floating-ui.dom.esm.js.map +1 -0
- package/dist/components/focus-trap.esm.js +746 -0
- package/dist/components/focus-trap.esm.js.map +1 -0
- package/dist/components/index.d.ts +21 -5
- package/dist/components/index.js +24 -4
- package/dist/components/index.js.map +1 -1
- package/dist/components/loglevel.js +5 -1
- package/dist/components/loglevel.js.map +1 -1
- package/dist/esm/{app-globals-cf55f7f5.js → app-globals-7d163b94.js} +3 -3
- package/dist/esm/{app-globals-cf55f7f5.js.map → app-globals-7d163b94.js.map} +1 -1
- package/dist/esm/cat-alert_20.entry.js +12609 -0
- package/dist/esm/cat-alert_20.entry.js.map +1 -0
- package/dist/esm/{cat-form-hint-dc443c7c.js → cat-form-hint-790d1e46.js} +2 -2
- package/dist/esm/{cat-form-hint-dc443c7c.js.map → cat-form-hint-790d1e46.js.map} +1 -1
- package/dist/esm/{cat-icon-registry-3ea75755.js → cat-icon-registry-dc1ef79a.js} +37 -43
- package/dist/esm/cat-icon-registry-dc1ef79a.js.map +1 -0
- package/dist/{components/cat-notification.js → esm/cat-notification-a9655c00.js} +2 -2
- package/dist/esm/{cat-notification-cd98c266.js.map → cat-notification-a9655c00.js.map} +1 -1
- package/dist/esm/cat-textarea.entry.js +3 -3
- package/dist/esm/catalyst.js +6 -6
- package/dist/esm/catalyst.js.map +1 -1
- package/dist/esm/{index-039e6f5f.js → index-41ceb7da.js} +10 -5
- package/dist/esm/index-41ceb7da.js.map +1 -0
- package/dist/esm/index.js +3 -3
- package/dist/esm/loader.js +6 -6
- package/dist/esm/loader.js.map +1 -1
- package/dist/esm/{loglevel-39a9e3f9.js → loglevel-c8b59c3a.js} +6 -2
- package/dist/{cjs/loglevel-c9b2d01f.js.map → esm/loglevel-c8b59c3a.js.map} +1 -1
- package/dist/esm/polyfills/css-shim.js +1 -1
- package/dist/types/components/cat-i18n/cat-i18n-registry.d.ts +9 -10
- package/dist/types/components/cat-modal/cat-modal.d.ts +20 -0
- package/dist/types/components/cat-select/cat-select.d.ts +84 -0
- package/dist/types/components.d.ts +184 -25
- package/package.json +11 -10
- package/dist/catalyst/p-12486027.js.map +0 -1
- package/dist/catalyst/p-12b96af6.js +0 -2
- package/dist/catalyst/p-12b96af6.js.map +0 -1
- package/dist/catalyst/p-2ec5c87a.js +0 -2
- package/dist/catalyst/p-2ec5c87a.js.map +0 -1
- package/dist/catalyst/p-7c06183a.js +0 -2
- package/dist/catalyst/p-dda85567.entry.js +0 -10
- package/dist/catalyst/p-dda85567.entry.js.map +0 -1
- package/dist/catalyst/scss/fonts/_fonts.mixins.scss +0 -3
- package/dist/catalyst/scss/fonts/_fonts.scss +0 -13
- package/dist/cjs/cat-alert_18.cjs.entry.js +0 -4831
- package/dist/cjs/cat-alert_18.cjs.entry.js.map +0 -1
- package/dist/cjs/cat-icon-registry-49b11b51.js.map +0 -1
- package/dist/cjs/index-499bad41.js.map +0 -1
- package/dist/collection/scss/fonts/_fonts.mixins.scss +0 -3
- package/dist/collection/scss/fonts/_fonts.scss +0 -13
- package/dist/components/cat-icon-registry.js +0 -59
- package/dist/components/cat-icon-registry.js.map +0 -1
- package/dist/components/cat-notification.js.map +0 -1
- package/dist/esm/cat-alert_18.entry.js +0 -4810
- package/dist/esm/cat-alert_18.entry.js.map +0 -1
- package/dist/esm/cat-icon-registry-3ea75755.js.map +0 -1
- package/dist/esm/cat-notification-cd98c266.js +0 -550
- package/dist/esm/index-039e6f5f.js.map +0 -1
- package/dist/esm/loglevel-39a9e3f9.js.map +0 -1
|
@@ -0,0 +1,528 @@
|
|
|
1
|
+
import { Component, Element, Event, h, Host, Method, Prop } from '@stencil/core';
|
|
2
|
+
import Choices from 'choices.js';
|
|
3
|
+
import { CatI18nRegistry } from '../cat-i18n/cat-i18n-registry';
|
|
4
|
+
const getOptionTemplate = (data) => {
|
|
5
|
+
var _a;
|
|
6
|
+
if ((_a = data.customProperties) === null || _a === void 0 ? void 0 : _a.imageUrl) {
|
|
7
|
+
return `
|
|
8
|
+
<div class="d-flex align-items-center">
|
|
9
|
+
<img src="${data.customProperties.imageUrl}" style="margin-right: 0.5rem" />
|
|
10
|
+
${data.label}
|
|
11
|
+
</div>
|
|
12
|
+
`;
|
|
13
|
+
}
|
|
14
|
+
return `<cat-checkbox label="${data.label}" checked="${data.selected}"></cat-checkbox>`;
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* Select lets user choose one option from an options menu. Consider using
|
|
18
|
+
* select when you have 6 or more options. Select component supports any content
|
|
19
|
+
* type.
|
|
20
|
+
*/
|
|
21
|
+
export class CatSelect {
|
|
22
|
+
constructor() {
|
|
23
|
+
this.i18n = CatI18nRegistry.getInstance();
|
|
24
|
+
/**
|
|
25
|
+
* The available options for the input.
|
|
26
|
+
*/
|
|
27
|
+
this.choices = [];
|
|
28
|
+
/**
|
|
29
|
+
* The pre-selected items for the input.
|
|
30
|
+
*/
|
|
31
|
+
this.items = [];
|
|
32
|
+
/**
|
|
33
|
+
* Disable the select.
|
|
34
|
+
*/
|
|
35
|
+
this.disabled = false;
|
|
36
|
+
/**
|
|
37
|
+
* Enable multiple selection.
|
|
38
|
+
*/
|
|
39
|
+
this.multiple = false;
|
|
40
|
+
/**
|
|
41
|
+
* The placeholder for the select.
|
|
42
|
+
*/
|
|
43
|
+
this.placeholder = '';
|
|
44
|
+
/**
|
|
45
|
+
* Whether the dropdown should appear above `(top)` or below `(bottom)` the
|
|
46
|
+
* input. By default, if there is not enough space within the window the
|
|
47
|
+
* dropdown will appear above the input, otherwise below it.
|
|
48
|
+
*/
|
|
49
|
+
this.position = 'auto';
|
|
50
|
+
/**
|
|
51
|
+
* Enable search for the select.
|
|
52
|
+
*/
|
|
53
|
+
this.noSearch = false;
|
|
54
|
+
}
|
|
55
|
+
componentDidLoad() {
|
|
56
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
57
|
+
this.init();
|
|
58
|
+
this.choiceInner = ((_c = (_b = (_a = this.hostElement).attachInternals) === null || _b === void 0 ? void 0 : _b.call(_a).shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('.choices__inner')) || undefined;
|
|
59
|
+
(_d = this.choiceInner) === null || _d === void 0 ? void 0 : _d.addEventListener('click', this.showDropdownHandler.bind(this));
|
|
60
|
+
(_e = this.selectElement) === null || _e === void 0 ? void 0 : _e.addEventListener('addItem', this.onChange.bind(this));
|
|
61
|
+
(_f = this.selectElement) === null || _f === void 0 ? void 0 : _f.addEventListener('removeItem', this.onChange.bind(this));
|
|
62
|
+
(_g = this.selectElement) === null || _g === void 0 ? void 0 : _g.addEventListener('search', this.onSearch.bind(this));
|
|
63
|
+
if (this.multiple) {
|
|
64
|
+
(_h = this.selectElement) === null || _h === void 0 ? void 0 : _h.addEventListener('choice', this.onChoice.bind(this));
|
|
65
|
+
this.createRemoveItemButton();
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
disconnectedCallback() {
|
|
69
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
70
|
+
(_a = this.choice) === null || _a === void 0 ? void 0 : _a.destroy();
|
|
71
|
+
this.choice = undefined;
|
|
72
|
+
(_b = this.choiceInner) === null || _b === void 0 ? void 0 : _b.removeEventListener('click', this.showDropdownHandler.bind(this));
|
|
73
|
+
(_c = this.selectElement) === null || _c === void 0 ? void 0 : _c.removeEventListener('addItem', this.onChange.bind(this));
|
|
74
|
+
(_d = this.selectElement) === null || _d === void 0 ? void 0 : _d.removeEventListener('removeItem', this.onChange.bind(this));
|
|
75
|
+
(_e = this.selectElement) === null || _e === void 0 ? void 0 : _e.removeEventListener('search', this.onSearch.bind(this));
|
|
76
|
+
if (this.multiple) {
|
|
77
|
+
(_f = this.selectElement) === null || _f === void 0 ? void 0 : _f.removeEventListener('choice', this.onChoice.bind(this));
|
|
78
|
+
(_g = this.removeElement) === null || _g === void 0 ? void 0 : _g.removeEventListener('click', this.onRemoveItemButtonClick.bind(this));
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Set value of input based on an array of objects or strings. This behaves
|
|
83
|
+
* exactly the same as passing items via the items option but can be called
|
|
84
|
+
* after initialisation.
|
|
85
|
+
*/
|
|
86
|
+
async setValue(args) {
|
|
87
|
+
var _a;
|
|
88
|
+
(_a = this.choice) === null || _a === void 0 ? void 0 : _a.setValue(args);
|
|
89
|
+
return this;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Set choices of select input via an array of objects (or function that
|
|
93
|
+
* returns array of object or promise of it), a value field name and a label
|
|
94
|
+
* field name.
|
|
95
|
+
*/
|
|
96
|
+
async setChoices(choices, value, label, replaceChoices) {
|
|
97
|
+
var _a;
|
|
98
|
+
(_a = this.choice) === null || _a === void 0 ? void 0 : _a.setChoices(choices, value, label, replaceChoices);
|
|
99
|
+
return this;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Clear all choices from select.
|
|
103
|
+
*/
|
|
104
|
+
async clearChoices() {
|
|
105
|
+
var _a;
|
|
106
|
+
(_a = this.choice) === null || _a === void 0 ? void 0 : _a.clearChoices();
|
|
107
|
+
return this;
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Clear input of any user inputted text.
|
|
111
|
+
*/
|
|
112
|
+
async clearInput() {
|
|
113
|
+
var _a;
|
|
114
|
+
(_a = this.choice) === null || _a === void 0 ? void 0 : _a.clearInput();
|
|
115
|
+
return this;
|
|
116
|
+
}
|
|
117
|
+
render() {
|
|
118
|
+
return (h(Host, null,
|
|
119
|
+
h("select", { ref: el => (this.selectElement = el), multiple: this.multiple, disabled: this.disabled })));
|
|
120
|
+
}
|
|
121
|
+
init() {
|
|
122
|
+
const config = {
|
|
123
|
+
items: this.items,
|
|
124
|
+
removeItemButton: true,
|
|
125
|
+
duplicateItemsAllowed: false,
|
|
126
|
+
delimiter: '',
|
|
127
|
+
paste: false,
|
|
128
|
+
searchEnabled: !this.noSearch,
|
|
129
|
+
searchChoices: false,
|
|
130
|
+
position: this.position,
|
|
131
|
+
resetScrollPosition: false,
|
|
132
|
+
placeholder: !!this.placeholder,
|
|
133
|
+
placeholderValue: this.placeholder || '',
|
|
134
|
+
searchPlaceholderValue: this.i18n.t('select.searchPlaceholder'),
|
|
135
|
+
renderSelectedChoices: 'always',
|
|
136
|
+
loadingText: this.i18n.t('select.loading'),
|
|
137
|
+
noResultsText: this.i18n.t('select.noResults'),
|
|
138
|
+
noChoicesText: this.i18n.t('select.noChoices'),
|
|
139
|
+
itemSelectText: this.i18n.t('select.selectItem'),
|
|
140
|
+
addItemText: (value) => this.i18n.t('select.addItem', { value }),
|
|
141
|
+
maxItemText: (maxItemCount) => this.i18n.t('select.maxItem', { maxItemCount }),
|
|
142
|
+
uniqueItemText: this.i18n.t('select.uniqueItem'),
|
|
143
|
+
customAddItemText: this.i18n.t('select.customAddItem')
|
|
144
|
+
};
|
|
145
|
+
const configSingle = {
|
|
146
|
+
callbackOnCreateTemplates: (strToEl) => {
|
|
147
|
+
return {
|
|
148
|
+
item: ({ classNames }, data) => {
|
|
149
|
+
var _a;
|
|
150
|
+
const template = ((_a = data.customProperties) === null || _a === void 0 ? void 0 : _a.imageUrl)
|
|
151
|
+
? `<img src="${data.customProperties.imageUrl}" style="margin-right: 0.5rem" />`
|
|
152
|
+
: '';
|
|
153
|
+
return strToEl(`
|
|
154
|
+
<div class="${classNames.item} ${data.highlighted ? classNames.highlightedState : classNames.itemSelectable} ${data.placeholder ? classNames.placeholder : ''}" data-item data-id="${data.id}" data-value="${data.value}" ${data.active ? 'aria-selected="true"' : ''} ${data.disabled ? 'aria-disabled="true"' : ''}>
|
|
155
|
+
<span>${template}</span> ${data.label}
|
|
156
|
+
</div>
|
|
157
|
+
`);
|
|
158
|
+
}
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
};
|
|
162
|
+
const configMultiple = {
|
|
163
|
+
callbackOnCreateTemplates: (strToEl) => {
|
|
164
|
+
const itemSelectText = config.itemSelectText;
|
|
165
|
+
return {
|
|
166
|
+
item: ({ classNames }, data) => {
|
|
167
|
+
var _a;
|
|
168
|
+
const template = ((_a = data.customProperties) === null || _a === void 0 ? void 0 : _a.imageUrl)
|
|
169
|
+
? `<img src="${data.customProperties.imageUrl}" style="margin-right: 0.5rem;" />`
|
|
170
|
+
: '';
|
|
171
|
+
return strToEl(`<div class="
|
|
172
|
+
${classNames.item}
|
|
173
|
+
${data.highlighted ? classNames.highlightedState : classNames.itemSelectable}
|
|
174
|
+
${data.placeholder ? classNames.placeholder : ''}"
|
|
175
|
+
data-item data-id="${data.id}" data-value="${data.value}"
|
|
176
|
+
${data.active ? 'aria-selected="true"' : ''}
|
|
177
|
+
${data.disabled ? 'aria-disabled="true"' : ''}>
|
|
178
|
+
${template}
|
|
179
|
+
${data.label}
|
|
180
|
+
</div>`);
|
|
181
|
+
},
|
|
182
|
+
choice: function ({ classNames }, data) {
|
|
183
|
+
const template = getOptionTemplate(data);
|
|
184
|
+
const className = `${String(classNames.item)} ${String(classNames.itemChoice)}
|
|
185
|
+
${String(data.disabled ? classNames.itemDisabled : classNames.itemSelectable)}
|
|
186
|
+
${data.selected ? 'choices__item--selected' : ''}`;
|
|
187
|
+
return strToEl(`<div class="${className}"
|
|
188
|
+
data-select-text="${itemSelectText}"
|
|
189
|
+
data-choice data-id="${String(data.id)}" data-value="${String(data.value)}"
|
|
190
|
+
${data.disabled ? 'data-choice-disabled aria-disabled="true"' : 'data-choice-selectable'}
|
|
191
|
+
${data.groupId && data.groupId > 0 ? 'role="treeitem"' : 'role="option"'}>
|
|
192
|
+
${template}
|
|
193
|
+
</div>`);
|
|
194
|
+
}
|
|
195
|
+
};
|
|
196
|
+
}
|
|
197
|
+
};
|
|
198
|
+
const settings = this.multiple
|
|
199
|
+
? Object.assign(Object.assign({}, config), configMultiple) : Object.assign(Object.assign({}, config), configSingle);
|
|
200
|
+
this.choice = new Choices(this.selectElement, settings);
|
|
201
|
+
this.choice.setChoices(this.choices);
|
|
202
|
+
}
|
|
203
|
+
onChange() {
|
|
204
|
+
var _a;
|
|
205
|
+
this.catChange.emit((_a = this.choice) === null || _a === void 0 ? void 0 : _a.getValue());
|
|
206
|
+
if (this.multiple) {
|
|
207
|
+
this.updateRemoveItemButtonVisibility();
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
onSearch(event) {
|
|
211
|
+
const customEvent = event;
|
|
212
|
+
this.catSearch.emit(customEvent.detail.value);
|
|
213
|
+
}
|
|
214
|
+
onChoice(event) {
|
|
215
|
+
var _a, _b;
|
|
216
|
+
const customEvent = event;
|
|
217
|
+
const items = Array.from((_a = this.choice) === null || _a === void 0 ? void 0 : _a.getValue());
|
|
218
|
+
const item = items.find(value => value.choiceId === customEvent.detail.choice.id);
|
|
219
|
+
if (item) {
|
|
220
|
+
(_b = this.choice) === null || _b === void 0 ? void 0 : _b._removeItem(item);
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
showDropdownHandler() {
|
|
224
|
+
var _a;
|
|
225
|
+
if (!this.disabled) {
|
|
226
|
+
(_a = this.choice) === null || _a === void 0 ? void 0 : _a.showDropdown();
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
createRemoveItemButton() {
|
|
230
|
+
var _a;
|
|
231
|
+
this.removeElement = document.createElement('cat-button');
|
|
232
|
+
this.removeElement.icon = 'cross-circle-outlined';
|
|
233
|
+
this.removeElement.iconOnly = true;
|
|
234
|
+
this.removeElement.a11yLabel = this.i18n.t('select.removeItem');
|
|
235
|
+
this.updateRemoveItemButtonVisibility();
|
|
236
|
+
this.removeElement.addEventListener('click', this.onRemoveItemButtonClick.bind(this));
|
|
237
|
+
(_a = this.choiceInner) === null || _a === void 0 ? void 0 : _a.appendChild(this.removeElement);
|
|
238
|
+
}
|
|
239
|
+
updateRemoveItemButtonVisibility() {
|
|
240
|
+
var _a, _b, _c;
|
|
241
|
+
const items = Array.from((_a = this.choice) === null || _a === void 0 ? void 0 : _a.getValue());
|
|
242
|
+
if (items.length) {
|
|
243
|
+
(_b = this.removeElement) === null || _b === void 0 ? void 0 : _b.removeAttribute('hidden');
|
|
244
|
+
}
|
|
245
|
+
else if (!items.length) {
|
|
246
|
+
(_c = this.removeElement) === null || _c === void 0 ? void 0 : _c.setAttribute('hidden', 'true');
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
onRemoveItemButtonClick(event) {
|
|
250
|
+
var _a;
|
|
251
|
+
event.stopPropagation();
|
|
252
|
+
(_a = this.choice) === null || _a === void 0 ? void 0 : _a.removeActiveItems(-1);
|
|
253
|
+
}
|
|
254
|
+
static get is() { return "cat-select"; }
|
|
255
|
+
static get encapsulation() { return "shadow"; }
|
|
256
|
+
static get originalStyleUrls() { return {
|
|
257
|
+
"$": ["cat-select.scss"]
|
|
258
|
+
}; }
|
|
259
|
+
static get styleUrls() { return {
|
|
260
|
+
"$": ["cat-select.css"]
|
|
261
|
+
}; }
|
|
262
|
+
static get properties() { return {
|
|
263
|
+
"choices": {
|
|
264
|
+
"type": "unknown",
|
|
265
|
+
"mutable": false,
|
|
266
|
+
"complexType": {
|
|
267
|
+
"original": "Choice[]",
|
|
268
|
+
"resolved": "Choice[]",
|
|
269
|
+
"references": {
|
|
270
|
+
"Choice": {
|
|
271
|
+
"location": "import",
|
|
272
|
+
"path": "choices.js"
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
},
|
|
276
|
+
"required": false,
|
|
277
|
+
"optional": false,
|
|
278
|
+
"docs": {
|
|
279
|
+
"tags": [],
|
|
280
|
+
"text": "The available options for the input."
|
|
281
|
+
},
|
|
282
|
+
"defaultValue": "[]"
|
|
283
|
+
},
|
|
284
|
+
"items": {
|
|
285
|
+
"type": "unknown",
|
|
286
|
+
"mutable": false,
|
|
287
|
+
"complexType": {
|
|
288
|
+
"original": "Choice[] | string[]",
|
|
289
|
+
"resolved": "Choice[] | string[]",
|
|
290
|
+
"references": {
|
|
291
|
+
"Choice": {
|
|
292
|
+
"location": "import",
|
|
293
|
+
"path": "choices.js"
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
},
|
|
297
|
+
"required": false,
|
|
298
|
+
"optional": false,
|
|
299
|
+
"docs": {
|
|
300
|
+
"tags": [],
|
|
301
|
+
"text": "The pre-selected items for the input."
|
|
302
|
+
},
|
|
303
|
+
"defaultValue": "[]"
|
|
304
|
+
},
|
|
305
|
+
"disabled": {
|
|
306
|
+
"type": "boolean",
|
|
307
|
+
"mutable": false,
|
|
308
|
+
"complexType": {
|
|
309
|
+
"original": "boolean",
|
|
310
|
+
"resolved": "boolean",
|
|
311
|
+
"references": {}
|
|
312
|
+
},
|
|
313
|
+
"required": false,
|
|
314
|
+
"optional": false,
|
|
315
|
+
"docs": {
|
|
316
|
+
"tags": [],
|
|
317
|
+
"text": "Disable the select."
|
|
318
|
+
},
|
|
319
|
+
"attribute": "disabled",
|
|
320
|
+
"reflect": false,
|
|
321
|
+
"defaultValue": "false"
|
|
322
|
+
},
|
|
323
|
+
"multiple": {
|
|
324
|
+
"type": "boolean",
|
|
325
|
+
"mutable": false,
|
|
326
|
+
"complexType": {
|
|
327
|
+
"original": "boolean",
|
|
328
|
+
"resolved": "boolean",
|
|
329
|
+
"references": {}
|
|
330
|
+
},
|
|
331
|
+
"required": false,
|
|
332
|
+
"optional": false,
|
|
333
|
+
"docs": {
|
|
334
|
+
"tags": [],
|
|
335
|
+
"text": "Enable multiple selection."
|
|
336
|
+
},
|
|
337
|
+
"attribute": "multiple",
|
|
338
|
+
"reflect": false,
|
|
339
|
+
"defaultValue": "false"
|
|
340
|
+
},
|
|
341
|
+
"placeholder": {
|
|
342
|
+
"type": "string",
|
|
343
|
+
"mutable": false,
|
|
344
|
+
"complexType": {
|
|
345
|
+
"original": "string",
|
|
346
|
+
"resolved": "string",
|
|
347
|
+
"references": {}
|
|
348
|
+
},
|
|
349
|
+
"required": false,
|
|
350
|
+
"optional": false,
|
|
351
|
+
"docs": {
|
|
352
|
+
"tags": [],
|
|
353
|
+
"text": "The placeholder for the select."
|
|
354
|
+
},
|
|
355
|
+
"attribute": "placeholder",
|
|
356
|
+
"reflect": false,
|
|
357
|
+
"defaultValue": "''"
|
|
358
|
+
},
|
|
359
|
+
"position": {
|
|
360
|
+
"type": "string",
|
|
361
|
+
"mutable": false,
|
|
362
|
+
"complexType": {
|
|
363
|
+
"original": "'auto' | 'top' | 'bottom'",
|
|
364
|
+
"resolved": "\"auto\" | \"bottom\" | \"top\"",
|
|
365
|
+
"references": {}
|
|
366
|
+
},
|
|
367
|
+
"required": false,
|
|
368
|
+
"optional": false,
|
|
369
|
+
"docs": {
|
|
370
|
+
"tags": [],
|
|
371
|
+
"text": "Whether the dropdown should appear above `(top)` or below `(bottom)` the\ninput. By default, if there is not enough space within the window the\ndropdown will appear above the input, otherwise below it."
|
|
372
|
+
},
|
|
373
|
+
"attribute": "position",
|
|
374
|
+
"reflect": false,
|
|
375
|
+
"defaultValue": "'auto'"
|
|
376
|
+
},
|
|
377
|
+
"noSearch": {
|
|
378
|
+
"type": "boolean",
|
|
379
|
+
"mutable": false,
|
|
380
|
+
"complexType": {
|
|
381
|
+
"original": "boolean",
|
|
382
|
+
"resolved": "boolean",
|
|
383
|
+
"references": {}
|
|
384
|
+
},
|
|
385
|
+
"required": false,
|
|
386
|
+
"optional": false,
|
|
387
|
+
"docs": {
|
|
388
|
+
"tags": [],
|
|
389
|
+
"text": "Enable search for the select."
|
|
390
|
+
},
|
|
391
|
+
"attribute": "no-search",
|
|
392
|
+
"reflect": false,
|
|
393
|
+
"defaultValue": "false"
|
|
394
|
+
}
|
|
395
|
+
}; }
|
|
396
|
+
static get events() { return [{
|
|
397
|
+
"method": "catChange",
|
|
398
|
+
"name": "catChange",
|
|
399
|
+
"bubbles": true,
|
|
400
|
+
"cancelable": true,
|
|
401
|
+
"composed": true,
|
|
402
|
+
"docs": {
|
|
403
|
+
"tags": [],
|
|
404
|
+
"text": "Emitted when the value is changed."
|
|
405
|
+
},
|
|
406
|
+
"complexType": {
|
|
407
|
+
"original": "any",
|
|
408
|
+
"resolved": "any",
|
|
409
|
+
"references": {}
|
|
410
|
+
}
|
|
411
|
+
}, {
|
|
412
|
+
"method": "catSearch",
|
|
413
|
+
"name": "catSearch",
|
|
414
|
+
"bubbles": true,
|
|
415
|
+
"cancelable": true,
|
|
416
|
+
"composed": true,
|
|
417
|
+
"docs": {
|
|
418
|
+
"tags": [],
|
|
419
|
+
"text": "Emitted when the search is triggered."
|
|
420
|
+
},
|
|
421
|
+
"complexType": {
|
|
422
|
+
"original": "any",
|
|
423
|
+
"resolved": "any",
|
|
424
|
+
"references": {}
|
|
425
|
+
}
|
|
426
|
+
}]; }
|
|
427
|
+
static get methods() { return {
|
|
428
|
+
"setValue": {
|
|
429
|
+
"complexType": {
|
|
430
|
+
"signature": "(args: Array<string> | Array<Item>) => Promise<this>",
|
|
431
|
+
"parameters": [{
|
|
432
|
+
"tags": [],
|
|
433
|
+
"text": ""
|
|
434
|
+
}],
|
|
435
|
+
"references": {
|
|
436
|
+
"Promise": {
|
|
437
|
+
"location": "global"
|
|
438
|
+
},
|
|
439
|
+
"Array": {
|
|
440
|
+
"location": "global"
|
|
441
|
+
},
|
|
442
|
+
"Item": {
|
|
443
|
+
"location": "import",
|
|
444
|
+
"path": "choices.js"
|
|
445
|
+
}
|
|
446
|
+
},
|
|
447
|
+
"return": "Promise<this>"
|
|
448
|
+
},
|
|
449
|
+
"docs": {
|
|
450
|
+
"text": "Set value of input based on an array of objects or strings. This behaves\nexactly the same as passing items via the items option but can be called\nafter initialisation.",
|
|
451
|
+
"tags": []
|
|
452
|
+
}
|
|
453
|
+
},
|
|
454
|
+
"setChoices": {
|
|
455
|
+
"complexType": {
|
|
456
|
+
"signature": "(choices: Array<Choice> | Array<Group>, value: string, label: string, replaceChoices?: boolean | undefined) => Promise<this>",
|
|
457
|
+
"parameters": [{
|
|
458
|
+
"tags": [],
|
|
459
|
+
"text": ""
|
|
460
|
+
}, {
|
|
461
|
+
"tags": [],
|
|
462
|
+
"text": ""
|
|
463
|
+
}, {
|
|
464
|
+
"tags": [],
|
|
465
|
+
"text": ""
|
|
466
|
+
}, {
|
|
467
|
+
"tags": [],
|
|
468
|
+
"text": ""
|
|
469
|
+
}],
|
|
470
|
+
"references": {
|
|
471
|
+
"Promise": {
|
|
472
|
+
"location": "global"
|
|
473
|
+
},
|
|
474
|
+
"Array": {
|
|
475
|
+
"location": "global"
|
|
476
|
+
},
|
|
477
|
+
"Choice": {
|
|
478
|
+
"location": "import",
|
|
479
|
+
"path": "choices.js"
|
|
480
|
+
},
|
|
481
|
+
"Group": {
|
|
482
|
+
"location": "import",
|
|
483
|
+
"path": "choices.js"
|
|
484
|
+
}
|
|
485
|
+
},
|
|
486
|
+
"return": "Promise<this>"
|
|
487
|
+
},
|
|
488
|
+
"docs": {
|
|
489
|
+
"text": "Set choices of select input via an array of objects (or function that\nreturns array of object or promise of it), a value field name and a label\nfield name.",
|
|
490
|
+
"tags": []
|
|
491
|
+
}
|
|
492
|
+
},
|
|
493
|
+
"clearChoices": {
|
|
494
|
+
"complexType": {
|
|
495
|
+
"signature": "() => Promise<this>",
|
|
496
|
+
"parameters": [],
|
|
497
|
+
"references": {
|
|
498
|
+
"Promise": {
|
|
499
|
+
"location": "global"
|
|
500
|
+
}
|
|
501
|
+
},
|
|
502
|
+
"return": "Promise<this>"
|
|
503
|
+
},
|
|
504
|
+
"docs": {
|
|
505
|
+
"text": "Clear all choices from select.",
|
|
506
|
+
"tags": []
|
|
507
|
+
}
|
|
508
|
+
},
|
|
509
|
+
"clearInput": {
|
|
510
|
+
"complexType": {
|
|
511
|
+
"signature": "() => Promise<this>",
|
|
512
|
+
"parameters": [],
|
|
513
|
+
"references": {
|
|
514
|
+
"Promise": {
|
|
515
|
+
"location": "global"
|
|
516
|
+
}
|
|
517
|
+
},
|
|
518
|
+
"return": "Promise<this>"
|
|
519
|
+
},
|
|
520
|
+
"docs": {
|
|
521
|
+
"text": "Clear input of any user inputted text.",
|
|
522
|
+
"tags": []
|
|
523
|
+
}
|
|
524
|
+
}
|
|
525
|
+
}; }
|
|
526
|
+
static get elementRef() { return "hostElement"; }
|
|
527
|
+
}
|
|
528
|
+
//# sourceMappingURL=cat-select.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cat-select.js","sourceRoot":"","sources":["../../../src/components/cat-select/cat-select.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, Event, EventEmitter, h, Host, Method, Prop } from '@stencil/core';\nimport Choices, { Choice, ClassNames, Group, Item, Options } from 'choices.js';\nimport { CatI18nRegistry } from '../cat-i18n/cat-i18n-registry';\n\nconst getOptionTemplate = (data: Item): string => {\n if (data.customProperties?.imageUrl) {\n return `\n <div class=\"d-flex align-items-center\">\n <img src=\"${data.customProperties.imageUrl}\" style=\"margin-right: 0.5rem\" />\n ${data.label}\n </div>\n `;\n }\n return `<cat-checkbox label=\"${data.label}\" checked=\"${data.selected}\"></cat-checkbox>`;\n};\n\n/**\n * Select lets user choose one option from an options menu. Consider using\n * select when you have 6 or more options. Select component supports any content\n * type.\n */\n@Component({\n tag: 'cat-select',\n styleUrl: 'cat-select.scss',\n shadow: true\n})\nexport class CatSelect {\n private readonly i18n = CatI18nRegistry.getInstance();\n\n private choice?: Choices;\n private choiceInner?: Element;\n private selectElement?: HTMLSelectElement;\n private removeElement?: HTMLCatButtonElement;\n\n @Element() hostElement!: HTMLElement;\n\n /**\n * The available options for the input.\n */\n @Prop() choices: Choice[] = [];\n\n /**\n * The pre-selected items for the input.\n */\n @Prop() items: Choice[] | string[] = [];\n\n /**\n * Disable the select.\n */\n @Prop() disabled = false;\n\n /**\n * Enable multiple selection.\n */\n @Prop() multiple = false;\n\n /**\n * The placeholder for the select.\n */\n @Prop() placeholder = '';\n\n /**\n * Whether the dropdown should appear above `(top)` or below `(bottom)` the\n * input. By default, if there is not enough space within the window the\n * dropdown will appear above the input, otherwise below it.\n */\n @Prop() position: 'auto' | 'top' | 'bottom' = 'auto';\n\n /**\n * Enable search for the select.\n */\n @Prop() noSearch = false;\n\n /**\n * Emitted when the value is changed.\n */\n @Event() catChange!: EventEmitter;\n\n /**\n * Emitted when the search is triggered.\n */\n @Event() catSearch!: EventEmitter;\n\n componentDidLoad(): void {\n this.init();\n this.choiceInner = this.hostElement.attachInternals?.().shadowRoot?.querySelector('.choices__inner') || undefined;\n this.choiceInner?.addEventListener('click', this.showDropdownHandler.bind(this));\n this.selectElement?.addEventListener('addItem', this.onChange.bind(this));\n this.selectElement?.addEventListener('removeItem', this.onChange.bind(this));\n this.selectElement?.addEventListener('search', this.onSearch.bind(this));\n if (this.multiple) {\n this.selectElement?.addEventListener('choice', this.onChoice.bind(this));\n this.createRemoveItemButton();\n }\n }\n\n disconnectedCallback(): void {\n this.choice?.destroy();\n this.choice = undefined;\n this.choiceInner?.removeEventListener('click', this.showDropdownHandler.bind(this));\n this.selectElement?.removeEventListener('addItem', this.onChange.bind(this));\n this.selectElement?.removeEventListener('removeItem', this.onChange.bind(this));\n this.selectElement?.removeEventListener('search', this.onSearch.bind(this));\n if (this.multiple) {\n this.selectElement?.removeEventListener('choice', this.onChoice.bind(this));\n this.removeElement?.removeEventListener('click', this.onRemoveItemButtonClick.bind(this));\n }\n }\n\n /**\n * Set value of input based on an array of objects or strings. This behaves\n * exactly the same as passing items via the items option but can be called\n * after initialisation.\n */\n @Method()\n async setValue(args: Array<string> | Array<Item>) {\n this.choice?.setValue(args);\n\n return this;\n }\n\n /**\n * Set choices of select input via an array of objects (or function that\n * returns array of object or promise of it), a value field name and a label\n * field name.\n */\n @Method()\n async setChoices(choices: Array<Choice> | Array<Group>, value: string, label: string, replaceChoices?: boolean) {\n this.choice?.setChoices(choices, value, label, replaceChoices);\n\n return this;\n }\n\n /**\n * Clear all choices from select.\n */\n @Method()\n async clearChoices() {\n this.choice?.clearChoices();\n\n return this;\n }\n\n /**\n * Clear input of any user inputted text.\n */\n @Method()\n async clearInput() {\n this.choice?.clearInput();\n\n return this;\n }\n\n render() {\n return (\n <Host>\n <select ref={el => (this.selectElement = el)} multiple={this.multiple} disabled={this.disabled}></select>\n </Host>\n );\n }\n\n private init() {\n const config = {\n items: this.items,\n removeItemButton: true,\n duplicateItemsAllowed: false,\n delimiter: '',\n paste: false,\n searchEnabled: !this.noSearch,\n searchChoices: false,\n position: this.position,\n resetScrollPosition: false,\n placeholder: !!this.placeholder,\n placeholderValue: this.placeholder || '',\n searchPlaceholderValue: this.i18n.t('select.searchPlaceholder'),\n renderSelectedChoices: 'always' as 'auto' | 'always',\n loadingText: this.i18n.t('select.loading'),\n noResultsText: this.i18n.t('select.noResults'),\n noChoicesText: this.i18n.t('select.noChoices'),\n itemSelectText: this.i18n.t('select.selectItem'),\n addItemText: (value: string) => this.i18n.t('select.addItem', { value }),\n maxItemText: (maxItemCount: number) => this.i18n.t('select.maxItem', { maxItemCount }),\n uniqueItemText: this.i18n.t('select.uniqueItem'),\n customAddItemText: this.i18n.t('select.customAddItem')\n };\n\n const configSingle = {\n callbackOnCreateTemplates: (strToEl: (str: string) => HTMLElement) => {\n return {\n item: ({ classNames }: { classNames: ClassNames }, data: Item) => {\n const template = data.customProperties?.imageUrl\n ? `<img src=\"${data.customProperties.imageUrl}\" style=\"margin-right: 0.5rem\" />`\n : '';\n return strToEl(\n `\n <div class=\"${classNames.item} ${\n data.highlighted ? classNames.highlightedState : classNames.itemSelectable\n } ${data.placeholder ? classNames.placeholder : ''}\" data-item data-id=\"${data.id}\" data-value=\"${\n data.value\n }\" ${data.active ? 'aria-selected=\"true\"' : ''} ${data.disabled ? 'aria-disabled=\"true\"' : ''}>\n <span>${template}</span> ${data.label}\n </div>\n `\n );\n }\n };\n }\n };\n\n const configMultiple = {\n callbackOnCreateTemplates: (strToEl: (str: string) => HTMLElement) => {\n const itemSelectText = config.itemSelectText;\n return {\n item: ({ classNames }: { classNames: ClassNames }, data: Item) => {\n const template = data.customProperties?.imageUrl\n ? `<img src=\"${data.customProperties.imageUrl}\" style=\"margin-right: 0.5rem;\" />`\n : '';\n return strToEl(\n `<div class=\"\n ${classNames.item}\n ${data.highlighted ? classNames.highlightedState : classNames.itemSelectable}\n ${data.placeholder ? classNames.placeholder : ''}\"\n data-item data-id=\"${data.id}\" data-value=\"${data.value}\"\n ${data.active ? 'aria-selected=\"true\"' : ''}\n ${data.disabled ? 'aria-disabled=\"true\"' : ''}>\n ${template}\n ${data.label}\n </div>`\n );\n },\n choice: function ({ classNames }: { classNames: ClassNames }, data: Item) {\n const template = getOptionTemplate(data);\n const className = `${String(classNames.item)} ${String(classNames.itemChoice)}\n ${String(data.disabled ? classNames.itemDisabled : classNames.itemSelectable)}\n ${data.selected ? 'choices__item--selected' : ''}`;\n return strToEl(\n `<div class=\"${className}\"\n data-select-text=\"${itemSelectText}\"\n data-choice data-id=\"${String(data.id)}\" data-value=\"${String(data.value)}\"\n ${data.disabled ? 'data-choice-disabled aria-disabled=\"true\"' : 'data-choice-selectable'}\n ${data.groupId && data.groupId > 0 ? 'role=\"treeitem\"' : 'role=\"option\"'}>\n ${template}\n </div>`\n );\n }\n };\n }\n };\n\n const settings: Partial<Options> = this.multiple\n ? { ...config, ...configMultiple }\n : { ...config, ...configSingle };\n this.choice = new Choices(this.selectElement, settings);\n this.choice.setChoices(this.choices);\n }\n\n private onChange() {\n this.catChange.emit(this.choice?.getValue());\n if (this.multiple) {\n this.updateRemoveItemButtonVisibility();\n }\n }\n\n private onSearch(event: Event) {\n const customEvent = event as CustomEvent<{ value: string }>;\n this.catSearch.emit(customEvent.detail.value);\n }\n\n private onChoice(event: Event) {\n const customEvent = event as CustomEvent<{ choice: Choice }>;\n const items = Array.from(this.choice?.getValue() as Item[]);\n const item = items.find(value => value.choiceId === customEvent.detail.choice.id);\n if (item) {\n this.choice?._removeItem(item);\n }\n }\n\n private showDropdownHandler() {\n if (!this.disabled) {\n this.choice?.showDropdown();\n }\n }\n\n private createRemoveItemButton() {\n this.removeElement = document.createElement('cat-button') as HTMLCatButtonElement;\n this.removeElement.icon = 'cross-circle-outlined';\n this.removeElement.iconOnly = true;\n this.removeElement.a11yLabel = this.i18n.t('select.removeItem');\n this.updateRemoveItemButtonVisibility();\n this.removeElement.addEventListener('click', this.onRemoveItemButtonClick.bind(this));\n this.choiceInner?.appendChild(this.removeElement);\n }\n\n private updateRemoveItemButtonVisibility() {\n const items = Array.from(this.choice?.getValue() as Item[]);\n if (items.length) {\n this.removeElement?.removeAttribute('hidden');\n } else if (!items.length) {\n this.removeElement?.setAttribute('hidden', 'true');\n }\n }\n\n private onRemoveItemButtonClick(event: Event) {\n event.stopPropagation();\n this.choice?.removeActiveItems(-1);\n }\n}\n"]}
|
package/dist/collection/init.js
CHANGED
|
@@ -5,7 +5,7 @@ function registerIcons() {
|
|
|
5
5
|
CatIconRegistry.getInstance().addIcons(ci);
|
|
6
6
|
}
|
|
7
7
|
function registerTranslations() {
|
|
8
|
-
CatI18nRegistry.getInstance().
|
|
8
|
+
CatI18nRegistry.getInstance().register('en', {
|
|
9
9
|
'input.clear': 'Clear',
|
|
10
10
|
'input.optional': 'Optional'
|
|
11
11
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAE1E,SAAS,aAAa;EACpB,eAAe,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC7C,CAAC;AAED,SAAS,oBAAoB;EAC3B,eAAe,CAAC,WAAW,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAE1E,SAAS,aAAa;EACpB,eAAe,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC7C,CAAC;AAED,SAAS,oBAAoB;EAC3B,eAAe,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE;IAC3C,aAAa,EAAE,OAAO;IACtB,gBAAgB,EAAE,UAAU;GAC7B,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,OAAO;EACZ,aAAa,EAAE,CAAC;EAChB,oBAAoB,EAAE,CAAC;AACzB,CAAC","sourcesContent":["import { ci } from '@haiilo/catalyst-icons';\nimport { CatI18nRegistry } from './components/cat-i18n/cat-i18n-registry';\nimport { CatIconRegistry } from './components/cat-icon/cat-icon-registry';\n\nfunction registerIcons() {\n CatIconRegistry.getInstance().addIcons(ci);\n}\n\nfunction registerTranslations() {\n CatI18nRegistry.getInstance().register('en', {\n 'input.clear': 'Clear',\n 'input.optional': 'Optional'\n });\n}\n\nexport default function () {\n registerIcons();\n registerTranslations();\n}\n"]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
@use 'fonts.mixins.azeret' as *;
|
|
2
|
+
@use 'fonts.mixins.dm' as *;
|
|
3
|
+
@use 'fonts.mixins.lato' as *;
|
|
4
|
+
|
|
5
|
+
@mixin cat-fonts($path) {
|
|
6
|
+
@include cat-font-dm-sans($path, 500) {
|
|
7
|
+
font-display: swap;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
@include cat-font-lato($path, 300, 400, 500, 700) {
|
|
11
|
+
font-display: fallback;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
@include cat-font-azeret($path, 400) {
|
|
15
|
+
font-display: fallback;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
@if list.index($weights, 400) {
|
|
6
6
|
@font-face {
|
|
7
7
|
font-family: 'Azeret Mono';
|
|
8
|
-
src: url('#{$path}
|
|
8
|
+
src: url('#{$path}/#{cat-token("asset.font.azeretMono.woff2Regular")}') format('woff2');
|
|
9
9
|
font-style: normal;
|
|
10
10
|
font-weight: 400;
|
|
11
11
|
@content;
|