@aquera/nile-elements 1.0.1-beta-1.5 → 1.0.1-beta-1.6
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/README.md +28 -0
- package/dist/index.cjs.js +1 -1
- package/dist/index.esm.js +1 -1
- package/dist/index.js +679 -618
- package/dist/internal/resizable-table-helper.cjs.js +1 -1
- package/dist/internal/resizable-table-helper.cjs.js.map +1 -1
- package/dist/internal/resizable-table-helper.esm.js +1 -1
- package/dist/nile-code-editor/extensionSetup.cjs.js +5 -5
- package/dist/nile-code-editor/extensionSetup.cjs.js.map +1 -1
- package/dist/nile-code-editor/extensionSetup.esm.js +1 -1
- package/dist/nile-code-editor/nile-code-editor.cjs.js +2 -2
- package/dist/nile-code-editor/nile-code-editor.cjs.js.map +1 -1
- package/dist/nile-code-editor/nile-code-editor.esm.js +3 -3
- package/dist/nile-code-editor/theme.cjs.js +1 -1
- package/dist/nile-code-editor/theme.cjs.js.map +1 -1
- package/dist/nile-code-editor/theme.esm.js +1 -1
- package/dist/nile-file-preview/nile-file-preview.cjs.js +1 -1
- package/dist/nile-file-preview/nile-file-preview.cjs.js.map +1 -1
- package/dist/nile-file-preview/nile-file-preview.css.cjs.js +1 -1
- package/dist/nile-file-preview/nile-file-preview.css.cjs.js.map +1 -1
- package/dist/nile-file-preview/nile-file-preview.css.esm.js +203 -184
- package/dist/nile-file-preview/nile-file-preview.esm.js +1 -3
- package/dist/nile-file-preview/nile-file-preview.template.cjs.js +1 -1
- package/dist/nile-file-preview/nile-file-preview.template.cjs.js.map +1 -1
- package/dist/nile-file-preview/nile-file-preview.template.esm.js +66 -77
- package/dist/nile-file-preview/types/nile-file-preview.enums.cjs.js +1 -1
- package/dist/nile-file-preview/types/nile-file-preview.enums.cjs.js.map +1 -1
- package/dist/nile-file-preview/types/nile-file-preview.enums.esm.js +1 -1
- package/dist/nile-file-preview/utils/index.cjs.js +1 -1
- package/dist/nile-file-preview/utils/index.esm.js +1 -1
- package/dist/nile-file-preview/utils/nile-file-preview.util.cjs.js +1 -1
- package/dist/nile-file-preview/utils/nile-file-preview.util.cjs.js.map +1 -1
- package/dist/nile-file-preview/utils/nile-file-preview.util.esm.js +1 -1
- package/dist/nile-file-upload/index.cjs.js +1 -1
- package/dist/nile-file-upload/index.esm.js +1 -1
- package/dist/nile-file-upload/nile-file-upload.cjs.js +1 -1
- package/dist/nile-file-upload/nile-file-upload.cjs.js.map +1 -1
- package/dist/nile-file-upload/nile-file-upload.css.cjs.js +1 -1
- package/dist/nile-file-upload/nile-file-upload.css.cjs.js.map +1 -1
- package/dist/nile-file-upload/nile-file-upload.css.esm.js +142 -89
- package/dist/nile-file-upload/nile-file-upload.esm.js +2 -2
- package/dist/nile-file-upload/nile-file-upload.template.cjs.js +3 -3
- package/dist/nile-file-upload/nile-file-upload.template.cjs.js.map +1 -1
- package/dist/nile-file-upload/nile-file-upload.template.esm.js +50 -108
- package/dist/nile-file-upload/nile-file-upload.test.cjs.js +1 -1
- package/dist/nile-file-upload/nile-file-upload.test.esm.js +1 -1
- package/dist/nile-file-upload/types/file-upload.enums.cjs.js +1 -1
- package/dist/nile-file-upload/types/file-upload.enums.cjs.js.map +1 -1
- package/dist/nile-file-upload/types/file-upload.enums.esm.js +1 -1
- package/dist/nile-file-upload/utils/drag-drop.util.cjs.js +1 -1
- package/dist/nile-file-upload/utils/drag-drop.util.cjs.js.map +1 -1
- package/dist/nile-file-upload/utils/drag-drop.util.esm.js +1 -1
- package/dist/nile-file-upload/utils/file-validation.util.cjs.js +2 -1
- package/dist/nile-file-upload/utils/file-validation.util.cjs.js.map +1 -1
- package/dist/nile-file-upload/utils/file-validation.util.esm.js +1 -1
- package/dist/nile-option/nile-option.cjs.js +1 -1
- package/dist/nile-option/nile-option.cjs.js.map +1 -1
- package/dist/nile-option/nile-option.esm.js +3 -3
- package/dist/nile-option-group/index.cjs.js +2 -0
- package/dist/nile-option-group/index.cjs.js.map +1 -0
- package/dist/nile-option-group/index.esm.js +1 -0
- package/dist/nile-option-group/nile-option-group.cjs.js +2 -0
- package/dist/nile-option-group/nile-option-group.cjs.js.map +1 -0
- package/dist/nile-option-group/nile-option-group.css.cjs.js +2 -0
- package/dist/nile-option-group/nile-option-group.css.cjs.js.map +1 -0
- package/dist/nile-option-group/nile-option-group.css.esm.js +46 -0
- package/dist/nile-option-group/nile-option-group.esm.js +14 -0
- package/dist/nile-option-group/nile-option-group.interface.cjs.js +2 -0
- package/dist/nile-option-group/nile-option-group.interface.cjs.js.map +1 -0
- package/dist/nile-option-group/nile-option-group.interface.esm.js +1 -0
- package/dist/nile-select/nile-select.cjs.js +1 -1
- package/dist/nile-select/nile-select.cjs.js.map +1 -1
- package/dist/nile-select/nile-select.esm.js +2 -2
- package/dist/nile-select/nile-select.interface.cjs.js +2 -0
- package/dist/nile-select/nile-select.interface.cjs.js.map +1 -0
- package/dist/nile-select/nile-select.interface.esm.js +1 -0
- package/dist/nile-table-body/nile-table-body.cjs.js +1 -1
- package/dist/nile-table-body/nile-table-body.cjs.js.map +1 -1
- package/dist/nile-table-body/nile-table-body.esm.js +2 -1
- package/dist/nile-table-cell-item/nile-table-cell-item.cjs.js +1 -1
- package/dist/nile-table-cell-item/nile-table-cell-item.cjs.js.map +1 -1
- package/dist/nile-table-cell-item/nile-table-cell-item.esm.js +1 -1
- package/dist/nile-table-header-item/nile-table-header-item.cjs.js +1 -1
- package/dist/nile-table-header-item/nile-table-header-item.cjs.js.map +1 -1
- package/dist/nile-table-header-item/nile-table-header-item.esm.js +2 -2
- package/dist/nile-virtual-select/renderer.cjs.js +1 -1
- package/dist/nile-virtual-select/renderer.cjs.js.map +1 -1
- package/dist/nile-virtual-select/renderer.esm.js +13 -12
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.js +1 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/internal/resizable-table-helper.d.ts +5 -0
- package/dist/src/internal/resizable-table-helper.js +27 -4
- package/dist/src/internal/resizable-table-helper.js.map +1 -1
- package/dist/src/nile-code-editor/nile-code-editor.d.ts +5 -0
- package/dist/src/nile-code-editor/nile-code-editor.js +44 -7
- package/dist/src/nile-code-editor/nile-code-editor.js.map +1 -1
- package/dist/src/nile-code-editor/theme.d.ts +15 -0
- package/dist/src/nile-code-editor/theme.js +17 -2
- package/dist/src/nile-code-editor/theme.js.map +1 -1
- package/dist/src/nile-file-preview/nile-file-preview.css.js +201 -182
- package/dist/src/nile-file-preview/nile-file-preview.css.js.map +1 -1
- package/dist/src/nile-file-preview/nile-file-preview.d.ts +6 -2
- package/dist/src/nile-file-preview/nile-file-preview.js +49 -20
- package/dist/src/nile-file-preview/nile-file-preview.js.map +1 -1
- package/dist/src/nile-file-preview/nile-file-preview.template.d.ts +3 -2
- package/dist/src/nile-file-preview/nile-file-preview.template.js +58 -62
- package/dist/src/nile-file-preview/nile-file-preview.template.js.map +1 -1
- package/dist/src/nile-file-preview/types/nile-file-preview.enums.d.ts +4 -3
- package/dist/src/nile-file-preview/types/nile-file-preview.enums.js +3 -2
- package/dist/src/nile-file-preview/types/nile-file-preview.enums.js.map +1 -1
- package/dist/src/nile-file-preview/utils/nile-file-preview.util.d.ts +4 -0
- package/dist/src/nile-file-preview/utils/nile-file-preview.util.js +25 -0
- package/dist/src/nile-file-preview/utils/nile-file-preview.util.js.map +1 -1
- package/dist/src/nile-file-upload/nile-file-upload.css.js +140 -87
- package/dist/src/nile-file-upload/nile-file-upload.css.js.map +1 -1
- package/dist/src/nile-file-upload/nile-file-upload.d.ts +4 -1
- package/dist/src/nile-file-upload/nile-file-upload.js +30 -20
- package/dist/src/nile-file-upload/nile-file-upload.js.map +1 -1
- package/dist/src/nile-file-upload/nile-file-upload.template.d.ts +7 -5
- package/dist/src/nile-file-upload/nile-file-upload.template.js +69 -115
- package/dist/src/nile-file-upload/nile-file-upload.template.js.map +1 -1
- package/dist/src/nile-file-upload/types/file-upload.enums.d.ts +11 -4
- package/dist/src/nile-file-upload/types/file-upload.enums.js +8 -1
- package/dist/src/nile-file-upload/types/file-upload.enums.js.map +1 -1
- package/dist/src/nile-file-upload/utils/drag-drop.util.d.ts +2 -4
- package/dist/src/nile-file-upload/utils/drag-drop.util.js +18 -21
- package/dist/src/nile-file-upload/utils/drag-drop.util.js.map +1 -1
- package/dist/src/nile-file-upload/utils/file-validation.util.d.ts +3 -1
- package/dist/src/nile-file-upload/utils/file-validation.util.js +82 -32
- package/dist/src/nile-file-upload/utils/file-validation.util.js.map +1 -1
- package/dist/src/nile-option/nile-option.d.ts +1 -0
- package/dist/src/nile-option/nile-option.js +6 -1
- package/dist/src/nile-option/nile-option.js.map +1 -1
- package/dist/src/nile-option-group/index.d.ts +1 -0
- package/dist/src/nile-option-group/index.js +2 -0
- package/dist/src/nile-option-group/index.js.map +1 -0
- package/dist/src/nile-option-group/nile-option-group.css.d.ts +12 -0
- package/dist/src/nile-option-group/nile-option-group.css.js +58 -0
- package/dist/src/nile-option-group/nile-option-group.css.js.map +1 -0
- package/dist/src/nile-option-group/nile-option-group.d.ts +23 -0
- package/dist/src/nile-option-group/nile-option-group.interface.d.ts +22 -0
- package/dist/src/nile-option-group/nile-option-group.interface.js +2 -0
- package/dist/src/nile-option-group/nile-option-group.interface.js.map +1 -0
- package/dist/src/nile-option-group/nile-option-group.js +76 -0
- package/dist/src/nile-option-group/nile-option-group.js.map +1 -0
- package/dist/src/nile-select/nile-select.d.ts +6 -0
- package/dist/src/nile-select/nile-select.interface.d.ts +5 -0
- package/dist/src/nile-select/nile-select.interface.js +2 -0
- package/dist/src/nile-select/nile-select.interface.js.map +1 -0
- package/dist/src/nile-select/nile-select.js +59 -1
- package/dist/src/nile-select/nile-select.js.map +1 -1
- package/dist/src/nile-table-body/nile-table-body.d.ts +1 -0
- package/dist/src/nile-table-body/nile-table-body.js +4 -0
- package/dist/src/nile-table-body/nile-table-body.js.map +1 -1
- package/dist/src/nile-table-cell-item/nile-table-cell-item.d.ts +2 -1
- package/dist/src/nile-table-cell-item/nile-table-cell-item.js +12 -1
- package/dist/src/nile-table-cell-item/nile-table-cell-item.js.map +1 -1
- package/dist/src/nile-table-header-item/nile-table-header-item.d.ts +2 -1
- package/dist/src/nile-table-header-item/nile-table-header-item.js +12 -1
- package/dist/src/nile-table-header-item/nile-table-header-item.js.map +1 -1
- package/dist/src/nile-virtual-select/renderer.js +3 -0
- package/dist/src/nile-virtual-select/renderer.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -2
- package/src/index.ts +1 -1
- package/src/internal/resizable-table-helper.ts +31 -8
- package/src/nile-code-editor/nile-code-editor.ts +49 -9
- package/src/nile-code-editor/theme.ts +19 -3
- package/src/nile-file-preview/nile-file-preview.css.ts +202 -183
- package/src/nile-file-preview/nile-file-preview.template.ts +66 -63
- package/src/nile-file-preview/nile-file-preview.ts +54 -22
- package/src/nile-file-preview/types/nile-file-preview.enums.ts +4 -3
- package/src/nile-file-preview/utils/nile-file-preview.util.ts +25 -0
- package/src/nile-file-upload/nile-file-upload.css.ts +141 -88
- package/src/nile-file-upload/nile-file-upload.template.ts +133 -121
- package/src/nile-file-upload/nile-file-upload.ts +30 -18
- package/src/nile-file-upload/types/file-upload.enums.ts +9 -2
- package/src/nile-file-upload/utils/drag-drop.util.ts +25 -25
- package/src/nile-file-upload/utils/file-validation.util.ts +98 -45
- package/src/nile-option/nile-option.ts +4 -1
- package/src/nile-option-group/index.ts +1 -0
- package/src/nile-option-group/nile-option-group.css.ts +60 -0
- package/src/nile-option-group/nile-option-group.interface.ts +25 -0
- package/src/nile-option-group/nile-option-group.ts +84 -0
- package/src/nile-select/nile-select.interface.ts +5 -0
- package/src/nile-select/nile-select.ts +74 -2
- package/src/nile-table-body/nile-table-body.ts +2 -0
- package/src/nile-table-cell-item/nile-table-cell-item.ts +15 -1
- package/src/nile-table-header-item/nile-table-header-item.ts +15 -1
- package/src/nile-virtual-select/renderer.ts +3 -0
- package/vscode-html-custom-data.json +49 -13
@@ -0,0 +1,22 @@
|
|
1
|
+
export interface IconData {
|
2
|
+
name: string;
|
3
|
+
size?: string;
|
4
|
+
color?: string;
|
5
|
+
method?: string;
|
6
|
+
}
|
7
|
+
export interface ImageData {
|
8
|
+
src?: string;
|
9
|
+
height?: string;
|
10
|
+
width?: string;
|
11
|
+
}
|
12
|
+
export interface PrefixSuffixData {
|
13
|
+
icon?: IconData;
|
14
|
+
prefixText?: string;
|
15
|
+
suffixText?: string;
|
16
|
+
image?: ImageData;
|
17
|
+
}
|
18
|
+
export interface OptionGroupData {
|
19
|
+
prefix?: PrefixSuffixData;
|
20
|
+
suffix?: PrefixSuffixData;
|
21
|
+
textContent?: string;
|
22
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"nile-option-group.interface.js","sourceRoot":"","sources":["../../../src/nile-option-group/nile-option-group.interface.ts"],"names":[],"mappings":"","sourcesContent":["export interface IconData {\n name: string;\n size?: string;\n color?: string;\n method?: string;\n}\n\nexport interface ImageData {\n src?: string;\n height?: string;\n width?: string;\n}\n\nexport interface PrefixSuffixData {\n icon?: IconData;\n prefixText?: string;\n suffixText?: string;\n image?: ImageData;\n}\n\nexport interface OptionGroupData {\n prefix?: PrefixSuffixData;\n suffix?: PrefixSuffixData;\n textContent?: string;\n}"]}
|
@@ -0,0 +1,76 @@
|
|
1
|
+
/**
|
2
|
+
* Copyright Aquera Inc 2025
|
3
|
+
*
|
4
|
+
* This source code is licensed under the BSD-3-Clause license found in the
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
6
|
+
*/
|
7
|
+
import { __decorate } from "tslib";
|
8
|
+
import { html } from 'lit';
|
9
|
+
import { customElement, property } from 'lit/decorators.js';
|
10
|
+
import { styles } from './nile-option-group.css';
|
11
|
+
import NileElement from '../internal/nile-element';
|
12
|
+
let NileOptionGroup = class NileOptionGroup extends NileElement {
|
13
|
+
constructor() {
|
14
|
+
super(...arguments);
|
15
|
+
this.name = "";
|
16
|
+
this.data = null;
|
17
|
+
}
|
18
|
+
static get styles() {
|
19
|
+
return [styles];
|
20
|
+
}
|
21
|
+
checkForImageOrIcon() {
|
22
|
+
return this.data?.prefix?.icon?.name || this.data?.prefix?.image?.src || this.data?.prefix?.prefixText;
|
23
|
+
}
|
24
|
+
normalizeImageDimension(value) {
|
25
|
+
if (value === undefined || value === null || value === "") {
|
26
|
+
return "20";
|
27
|
+
}
|
28
|
+
const dimension = Number(value);
|
29
|
+
if (isNaN(dimension) || dimension <= 0) {
|
30
|
+
return "20";
|
31
|
+
}
|
32
|
+
return dimension > 40 ? "25" : dimension.toString();
|
33
|
+
}
|
34
|
+
render() {
|
35
|
+
return html `
|
36
|
+
<div part="option-group-header" class="option-group-header">
|
37
|
+
<div part="content-container" class="content-container ${this.checkForImageOrIcon() ? 'gap-18px' : ''}">
|
38
|
+
<!-- prefix content -->
|
39
|
+
${this.data?.prefix?.icon?.name
|
40
|
+
? html `<nile-icon part="prefix-icon" name="${this.data?.prefix?.icon?.name}" size="${this.data?.prefix?.icon?.size || "16"}" color="${this.data?.prefix?.icon?.color || "var(--nile-colors-dark-500)"}" method="${this.data?.prefix?.icon?.method || "fill"}"></nile-icon>`
|
41
|
+
: this.data?.prefix?.prefixText
|
42
|
+
? html `<span part="prefix-text">${this.data?.prefix?.prefixText}</span>`
|
43
|
+
: this.data?.prefix?.image?.src
|
44
|
+
? html `<img part="prefix-image" src="${this.data?.prefix?.image?.src}" width="${this.normalizeImageDimension(this.data?.prefix?.image?.width)}" height="${this.normalizeImageDimension(this.data?.prefix?.image?.height)}">`
|
45
|
+
: html `<slot part="prefix" name="prefix" class="option-group-prefix"></slot>`}
|
46
|
+
|
47
|
+
<!-- main content -->
|
48
|
+
${this.data?.textContent
|
49
|
+
? html `<span part="content-text">${this.data?.textContent}</span>`
|
50
|
+
: html `<slot part="content"></slot>`}
|
51
|
+
</div>
|
52
|
+
|
53
|
+
<!-- suffix content -->
|
54
|
+
${this.data?.suffix?.icon?.name
|
55
|
+
? html `<nile-icon part="suffix-icon" name="${this.data?.suffix?.icon?.name}" size="${this.data?.suffix?.icon?.size || "16"}" color="${this.data?.suffix?.icon?.color || "var(--nile-colors-dark-500)"}" method="${this.data?.suffix?.icon?.method || "fill"}"></nile-icon>`
|
56
|
+
: this.data?.suffix?.suffixText
|
57
|
+
? html `<span part="suffix-text">${this.data?.suffix?.suffixText}</span>`
|
58
|
+
: this.data?.suffix?.image?.src
|
59
|
+
? html `<img part="suffix-image" src="${this.data?.prefix?.image?.src}" width="${this.normalizeImageDimension(this.data?.suffix?.image?.width)}" height="${this.normalizeImageDimension(this.data?.suffix?.image?.height)}">`
|
60
|
+
: html `<slot part="suffix" name="suffix" class="option-group-suffix"></slot>`}
|
61
|
+
</div>
|
62
|
+
`;
|
63
|
+
}
|
64
|
+
};
|
65
|
+
__decorate([
|
66
|
+
property({ type: String, reflect: true, attribute: true })
|
67
|
+
], NileOptionGroup.prototype, "name", void 0);
|
68
|
+
__decorate([
|
69
|
+
property({ type: Object, attribute: true })
|
70
|
+
], NileOptionGroup.prototype, "data", void 0);
|
71
|
+
NileOptionGroup = __decorate([
|
72
|
+
customElement('nile-option-group')
|
73
|
+
], NileOptionGroup);
|
74
|
+
export { NileOptionGroup };
|
75
|
+
export default NileOptionGroup;
|
76
|
+
//# sourceMappingURL=nile-option-group.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"nile-option-group.js","sourceRoot":"","sources":["../../../src/nile-option-group/nile-option-group.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Copyright Aquera Inc 2025\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport {LitElement, html, CSSResultArray, TemplateResult} from 'lit';\nimport { customElement, property} from 'lit/decorators.js';\nimport {styles} from './nile-option-group.css';\nimport NileElement from '../internal/nile-element';\nimport { OptionGroupData } from './nile-option-group.interface';\n\n@customElement('nile-option-group')\nexport class NileOptionGroup extends NileElement {\n\n\tpublic static get styles(): CSSResultArray {\n\t\treturn [styles];\n\t}\n\n\t@property({type: String, reflect: true, attribute: true}) name: string = \"\";\n\t@property({type: Object, attribute: true}) data: OptionGroupData | null = null;\n\n\tprivate checkForImageOrIcon() {\n\t\treturn this.data?.prefix?.icon?.name || this.data?.prefix?.image?.src || this.data?.prefix?.prefixText;\n\t}\n\n\tprivate normalizeImageDimension(value?: string | number): string {\n\t\tif (value === undefined || value === null || value === \"\") {\n\t\t\treturn \"20\";\n\t\t}\n\t\t\n\t\tconst dimension = Number(value);\n\t\tif (isNaN(dimension) || dimension <= 0) {\n\t\t\treturn \"20\";\n\t\t}\t\n\t\treturn dimension > 40 ? \"25\" : dimension.toString();\n\t}\t\n\n\tpublic render(): TemplateResult {\n\t\treturn html`\n\t\t\t<div part=\"option-group-header\" class=\"option-group-header\">\n\t\t\t\t<div part=\"content-container\" class=\"content-container ${this.checkForImageOrIcon() ? 'gap-18px' : ''}\">\n\t\t\t\t\t<!-- prefix content -->\n\t\t\t\t\t${\n\t\t\t\t\t\tthis.data?.prefix?.icon?.name\n\t\t\t\t\t\t? html`<nile-icon part=\"prefix-icon\" name=\"${this.data?.prefix?.icon?.name}\" size=\"${this.data?.prefix?.icon?.size || \"16\"}\" color=\"${this.data?.prefix?.icon?.color || \"var(--nile-colors-dark-500)\"}\" method=\"${this.data?.prefix?.icon?.method || \"fill\"}\"></nile-icon>`\n\t\t\t\t\t\t: this.data?.prefix?.prefixText\n\t\t\t\t\t\t\t? html`<span part=\"prefix-text\">${this.data?.prefix?.prefixText}</span>`\n\t\t\t\t\t\t\t: this.data?.prefix?.image?.src\n\t\t\t\t\t\t\t\t? html`<img part=\"prefix-image\" src=\"${this.data?.prefix?.image?.src}\" width=\"${this.normalizeImageDimension(this.data?.prefix?.image?.width)}\" height=\"${this.normalizeImageDimension(this.data?.prefix?.image?.height)}\">`\n\t\t\t\t\t\t\t\t: html`<slot part=\"prefix\" name=\"prefix\" class=\"option-group-prefix\"></slot>`\n\t\t\t\t\t}\n\n\t\t\t\t\t<!-- main content -->\n\t\t\t\t\t${\n\t\t\t\t\t\tthis.data?.textContent\n\t\t\t\t\t\t? html`<span part=\"content-text\">${this.data?.textContent}</span>`\n\t\t\t\t\t\t: html`<slot part=\"content\"></slot>`\n\t\t\t\t\t}\n\t\t\t\t</div>\n\n\t\t\t\t<!-- suffix content -->\n\t\t\t\t${\n\t\t\t\t\tthis.data?.suffix?.icon?.name\n\t\t\t\t\t? html`<nile-icon part=\"suffix-icon\" name=\"${this.data?.suffix?.icon?.name}\" size=\"${this.data?.suffix?.icon?.size || \"16\"}\" color=\"${this.data?.suffix?.icon?.color || \"var(--nile-colors-dark-500)\"}\" method=\"${this.data?.suffix?.icon?.method || \"fill\"}\"></nile-icon>`\n\t\t\t\t\t: this.data?.suffix?.suffixText\n\t\t\t\t\t\t? html`<span part=\"suffix-text\">${this.data?.suffix?.suffixText}</span>`\n\t\t\t\t\t\t: this.data?.suffix?.image?.src\n\t\t\t\t\t\t\t? html`<img part=\"suffix-image\" src=\"${this.data?.prefix?.image?.src}\" width=\"${this.normalizeImageDimension(this.data?.suffix?.image?.width)}\" height=\"${this.normalizeImageDimension(this.data?.suffix?.image?.height)}\">`\n\t\t\t\t\t\t\t: html`<slot part=\"suffix\" name=\"suffix\" class=\"option-group-suffix\"></slot>`\n\t\t\t\t}\n\t\t\t</div>\n\t\t\t`;\n\t}\n}\n\nexport default NileOptionGroup;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-option-group': NileOptionGroup;\n }\n}"]}
|
@@ -160,6 +160,8 @@ export declare class NileSelect extends NileElement implements NileFormControl {
|
|
160
160
|
renderItemConfig?: RenderItemConfig;
|
161
161
|
data: any;
|
162
162
|
enableVirtualScroll: boolean;
|
163
|
+
/** To enable the group header in the select */
|
164
|
+
enableGroupHeader: boolean;
|
163
165
|
/** Gets the validity state object */
|
164
166
|
get validity(): ValidityState;
|
165
167
|
/** Gets the validation message */
|
@@ -215,6 +217,10 @@ export declare class NileSelect extends NileElement implements NileFormControl {
|
|
215
217
|
handleDisabledChange(): void;
|
216
218
|
handleValueChange(): void;
|
217
219
|
handleOpenChange(): Promise<void>;
|
220
|
+
private getAllGroupAttributes;
|
221
|
+
getUniqueGroupNames(arr: NileOption[]): string[];
|
222
|
+
handleGroupSearchChange(): void;
|
223
|
+
handleGroupShowSelected(): void;
|
218
224
|
/** Shows the listbox. */
|
219
225
|
show(): Promise<void>;
|
220
226
|
/** Hides the listbox. */
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"nile-select.interface.js","sourceRoot":"","sources":["../../../src/nile-select/nile-select.interface.ts"],"names":[],"mappings":"","sourcesContent":["export interface GroupAttributes {\n name: string;\n data: any;\n element: HTMLElement;\n}"]}
|
@@ -170,6 +170,8 @@ let NileSelect = class NileSelect extends NileElement {
|
|
170
170
|
this.noResultsMessage = 'No results found';
|
171
171
|
this.data = [];
|
172
172
|
this.enableVirtualScroll = false;
|
173
|
+
/** To enable the group header in the select */
|
174
|
+
this.enableGroupHeader = false;
|
173
175
|
this.options = [];
|
174
176
|
}
|
175
177
|
connectedCallback() {
|
@@ -197,6 +199,9 @@ let NileSelect = class NileSelect extends NileElement {
|
|
197
199
|
}
|
198
200
|
}
|
199
201
|
firstUpdated(_changedProperties) {
|
202
|
+
if (this.enableGroupHeader) {
|
203
|
+
this.handleGroupSearchChange();
|
204
|
+
}
|
200
205
|
if (_changedProperties.has('multiple')) {
|
201
206
|
this.setCheckBoxInOption(this.multiple);
|
202
207
|
}
|
@@ -263,6 +268,9 @@ let NileSelect = class NileSelect extends NileElement {
|
|
263
268
|
el.hidden = this.showSelected;
|
264
269
|
}
|
265
270
|
});
|
271
|
+
if (this.enableGroupHeader) {
|
272
|
+
this.handleGroupShowSelected();
|
273
|
+
}
|
266
274
|
// this.requestUpdate();
|
267
275
|
}
|
268
276
|
/**
|
@@ -275,6 +283,9 @@ let NileSelect = class NileSelect extends NileElement {
|
|
275
283
|
el.selected = false;
|
276
284
|
el.hidden = false;
|
277
285
|
});
|
286
|
+
if (this.enableGroupHeader) {
|
287
|
+
this.handleGroupShowSelected();
|
288
|
+
}
|
278
289
|
this.value = '';
|
279
290
|
this.selectionChanged();
|
280
291
|
this.emit('nile-change', { value: this.value, name: this.name });
|
@@ -392,6 +403,9 @@ let NileSelect = class NileSelect extends NileElement {
|
|
392
403
|
this.showSelected = false;
|
393
404
|
this.value = '';
|
394
405
|
this.displayInput.focus({ preventScroll: true });
|
406
|
+
if (this.enableGroupHeader) {
|
407
|
+
this.handleGroupShowSelected();
|
408
|
+
}
|
395
409
|
// Emit after update
|
396
410
|
this.updateComplete.then(() => {
|
397
411
|
const val = { value: this.multiple ? this.value : '', name: this.name };
|
@@ -444,6 +458,9 @@ let NileSelect = class NileSelect extends NileElement {
|
|
444
458
|
el.hidden = this.showSelected;
|
445
459
|
}
|
446
460
|
});
|
461
|
+
if (this.enableGroupHeader) {
|
462
|
+
this.handleGroupShowSelected();
|
463
|
+
}
|
447
464
|
this.requestUpdate();
|
448
465
|
}
|
449
466
|
}
|
@@ -474,6 +491,9 @@ let NileSelect = class NileSelect extends NileElement {
|
|
474
491
|
el.hidden = this.showSelected;
|
475
492
|
}
|
476
493
|
});
|
494
|
+
if (this.enableGroupHeader) {
|
495
|
+
this.handleGroupShowSelected();
|
496
|
+
}
|
477
497
|
// Emit after updating
|
478
498
|
this.updateComplete.then(() => {
|
479
499
|
this.nileInput({ value: this.value, name: this.name });
|
@@ -617,6 +637,9 @@ let NileSelect = class NileSelect extends NileElement {
|
|
617
637
|
}
|
618
638
|
handleSearchChange(e) {
|
619
639
|
this.searchValue = e.detail.value;
|
640
|
+
if (this.enableGroupHeader) {
|
641
|
+
this.handleGroupSearchChange();
|
642
|
+
}
|
620
643
|
if (!this.disableLocalSearch) {
|
621
644
|
let filteredOptions = this.filterOptions(this.searchValue);
|
622
645
|
if (filteredOptions.length === 0) {
|
@@ -667,8 +690,12 @@ let NileSelect = class NileSelect extends NileElement {
|
|
667
690
|
if (this.open && !this.disabled) {
|
668
691
|
// Reset the current option
|
669
692
|
this.setCurrentOption(this.selectedOptions[0] || this.getFirstOption());
|
670
|
-
// Show
|
671
693
|
this.emit('nile-show', { value: this.value, name: this.name });
|
694
|
+
if (this.enableGroupHeader) {
|
695
|
+
this.getAllGroupAttributes().forEach((el) => {
|
696
|
+
el.element.classList.remove('nile-group-hidden');
|
697
|
+
});
|
698
|
+
}
|
672
699
|
this.addOpenListeners();
|
673
700
|
this.showNoResults = !this.getAllOptions()?.length;
|
674
701
|
await stopAnimations(this);
|
@@ -706,6 +733,34 @@ let NileSelect = class NileSelect extends NileElement {
|
|
706
733
|
this.emit('nile-after-hide', { value: this.value, name: this.name });
|
707
734
|
}
|
708
735
|
}
|
736
|
+
getAllGroupAttributes() {
|
737
|
+
return Array.from(this.querySelectorAll('nile-option-group[name]')).map((el) => ({
|
738
|
+
name: el?.getAttribute('name') || '',
|
739
|
+
data: el?.getAttribute('data'),
|
740
|
+
element: el
|
741
|
+
}));
|
742
|
+
}
|
743
|
+
getUniqueGroupNames(arr) {
|
744
|
+
return Array.from(new Set(arr.map(obj => obj?.groupName)));
|
745
|
+
}
|
746
|
+
handleGroupSearchChange() {
|
747
|
+
const filtered = new Set(this.getUniqueGroupNames(this.filterOptions(this.searchValue)));
|
748
|
+
this.getAllGroupAttributes().forEach(({ name, element }) => {
|
749
|
+
element?.classList.toggle('nile-group-hidden', !filtered.has(name));
|
750
|
+
});
|
751
|
+
}
|
752
|
+
handleGroupShowSelected() {
|
753
|
+
const visibleGroups = new Set();
|
754
|
+
if (this.showSelected) {
|
755
|
+
this.getAllOptions().forEach((option) => {
|
756
|
+
if (!option.hidden)
|
757
|
+
visibleGroups.add(option.groupName);
|
758
|
+
});
|
759
|
+
}
|
760
|
+
this.getAllGroupAttributes().forEach(({ name, element }) => {
|
761
|
+
element?.classList.toggle('nile-group-hidden', this.showSelected && !visibleGroups.has(name));
|
762
|
+
});
|
763
|
+
}
|
709
764
|
/** Shows the listbox. */
|
710
765
|
async show() {
|
711
766
|
if (this.open || this.disabled) {
|
@@ -1287,6 +1342,9 @@ __decorate([
|
|
1287
1342
|
__decorate([
|
1288
1343
|
property({ type: Boolean })
|
1289
1344
|
], NileSelect.prototype, "enableVirtualScroll", void 0);
|
1345
|
+
__decorate([
|
1346
|
+
property({ type: Boolean, reflect: true, attribute: true })
|
1347
|
+
], NileSelect.prototype, "enableGroupHeader", void 0);
|
1290
1348
|
__decorate([
|
1291
1349
|
watch('disabled', { waitUntilFirstUpdate: true })
|
1292
1350
|
], NileSelect.prototype, "handleDisabledChange", null);
|