@aquera/nile-elements 0.1.26 → 0.1.28-beta-1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -0
- package/demo/index.html +0 -97
- package/dist/nile-auto-complete/nile-auto-complete.cjs.js +1 -1
- package/dist/nile-auto-complete/nile-auto-complete.cjs.js.map +1 -1
- package/dist/nile-auto-complete/nile-auto-complete.esm.js +1 -1
- package/dist/nile-circular-progressbar/nile-circular-progressbar.cjs.js +1 -1
- package/dist/nile-circular-progressbar/nile-circular-progressbar.cjs.js.map +1 -1
- package/dist/nile-circular-progressbar/nile-circular-progressbar.css.cjs.js +1 -1
- package/dist/nile-circular-progressbar/nile-circular-progressbar.css.cjs.js.map +1 -1
- package/dist/nile-circular-progressbar/nile-circular-progressbar.css.esm.js +23 -5
- package/dist/nile-circular-progressbar/nile-circular-progressbar.esm.js +22 -15
- package/dist/nile-progress-bar/nile-progress-bar.cjs.js +1 -1
- package/dist/nile-progress-bar/nile-progress-bar.cjs.js.map +1 -1
- package/dist/nile-progress-bar/nile-progress-bar.css.cjs.js +1 -1
- package/dist/nile-progress-bar/nile-progress-bar.css.cjs.js.map +1 -1
- package/dist/nile-progress-bar/nile-progress-bar.css.esm.js +15 -3
- package/dist/nile-progress-bar/nile-progress-bar.esm.js +3 -3
- package/dist/nile-stepper/nile-stepper.cjs.js +1 -1
- package/dist/nile-stepper/nile-stepper.cjs.js.map +1 -1
- package/dist/nile-stepper/nile-stepper.css.cjs.js +1 -1
- package/dist/nile-stepper/nile-stepper.css.cjs.js.map +1 -1
- package/dist/nile-stepper/nile-stepper.css.esm.js +8 -2
- package/dist/nile-stepper/nile-stepper.esm.js +3 -3
- package/dist/nile-stepper-item/nile-stepper-item.cjs.js +1 -1
- package/dist/nile-stepper-item/nile-stepper-item.cjs.js.map +1 -1
- package/dist/nile-stepper-item/nile-stepper-item.css.cjs.js +1 -1
- package/dist/nile-stepper-item/nile-stepper-item.css.cjs.js.map +1 -1
- package/dist/nile-stepper-item/nile-stepper-item.css.esm.js +37 -16
- package/dist/nile-stepper-item/nile-stepper-item.esm.js +20 -17
- package/dist/nile-tab-group/nile-tab-group.cjs.js.map +1 -1
- package/dist/nile-tab-group/nile-tab-group.css.cjs.js +1 -1
- package/dist/nile-tab-group/nile-tab-group.css.cjs.js.map +1 -1
- package/dist/nile-tab-group/nile-tab-group.css.esm.js +3 -3
- package/dist/nile-vertical-stepper-item/nile-vertical-stepper-item.cjs.js +1 -1
- package/dist/nile-vertical-stepper-item/nile-vertical-stepper-item.cjs.js.map +1 -1
- package/dist/nile-vertical-stepper-item/nile-vertical-stepper-item.css.cjs.js +1 -1
- package/dist/nile-vertical-stepper-item/nile-vertical-stepper-item.css.cjs.js.map +1 -1
- package/dist/nile-vertical-stepper-item/nile-vertical-stepper-item.css.esm.js +28 -14
- package/dist/nile-vertical-stepper-item/nile-vertical-stepper-item.esm.js +11 -13
- package/dist/src/nile-auto-complete/nile-auto-complete.js +0 -1
- package/dist/src/nile-auto-complete/nile-auto-complete.js.map +1 -1
- package/dist/src/nile-circular-progressbar/nile-circular-progressbar.css.d.ts +5 -5
- package/dist/src/nile-circular-progressbar/nile-circular-progressbar.css.js +28 -10
- package/dist/src/nile-circular-progressbar/nile-circular-progressbar.css.js.map +1 -1
- package/dist/src/nile-circular-progressbar/nile-circular-progressbar.d.ts +3 -0
- package/dist/src/nile-circular-progressbar/nile-circular-progressbar.js +46 -20
- package/dist/src/nile-circular-progressbar/nile-circular-progressbar.js.map +1 -1
- package/dist/src/nile-progress-bar/nile-progress-bar.css.js +13 -1
- package/dist/src/nile-progress-bar/nile-progress-bar.css.js.map +1 -1
- package/dist/src/nile-progress-bar/nile-progress-bar.d.ts +1 -0
- package/dist/src/nile-progress-bar/nile-progress-bar.js +6 -1
- package/dist/src/nile-progress-bar/nile-progress-bar.js.map +1 -1
- package/dist/src/nile-stepper/nile-stepper.css.js +6 -0
- package/dist/src/nile-stepper/nile-stepper.css.js.map +1 -1
- package/dist/src/nile-stepper/nile-stepper.d.ts +2 -2
- package/dist/src/nile-stepper/nile-stepper.js +8 -8
- package/dist/src/nile-stepper/nile-stepper.js.map +1 -1
- package/dist/src/nile-stepper-item/nile-stepper-item.css.js +37 -16
- package/dist/src/nile-stepper-item/nile-stepper-item.css.js.map +1 -1
- package/dist/src/nile-stepper-item/nile-stepper-item.d.ts +5 -1
- package/dist/src/nile-stepper-item/nile-stepper-item.js +33 -14
- package/dist/src/nile-stepper-item/nile-stepper-item.js.map +1 -1
- package/dist/src/nile-tab-group/nile-tab-group.css.js +3 -3
- package/dist/src/nile-tab-group/nile-tab-group.css.js.map +1 -1
- package/dist/src/nile-tab-group/nile-tab-group.js.map +1 -1
- package/dist/src/nile-vertical-stepper-item/nile-vertical-stepper-item.css.js +28 -14
- package/dist/src/nile-vertical-stepper-item/nile-vertical-stepper-item.css.js.map +1 -1
- package/dist/src/nile-vertical-stepper-item/nile-vertical-stepper-item.d.ts +1 -0
- package/dist/src/nile-vertical-stepper-item/nile-vertical-stepper-item.js +10 -8
- package/dist/src/nile-vertical-stepper-item/nile-vertical-stepper-item.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/nile-auto-complete/nile-auto-complete.ts +0 -1
- package/src/nile-circular-progressbar/nile-circular-progressbar.css.ts +24 -6
- package/src/nile-circular-progressbar/nile-circular-progressbar.ts +39 -15
- package/src/nile-progress-bar/nile-progress-bar.css.ts +14 -2
- package/src/nile-progress-bar/nile-progress-bar.ts +4 -1
- package/src/nile-stepper/nile-stepper.css.ts +6 -0
- package/src/nile-stepper/nile-stepper.ts +11 -11
- package/src/nile-stepper-item/nile-stepper-item.css.ts +37 -16
- package/src/nile-stepper-item/nile-stepper-item.ts +34 -17
- package/src/nile-tab-group/nile-tab-group.css.ts +3 -3
- package/src/nile-tab-group/nile-tab-group.ts +1 -1
- package/src/nile-vertical-stepper-item/nile-vertical-stepper-item.css.ts +28 -14
- package/src/nile-vertical-stepper-item/nile-vertical-stepper-item.ts +12 -8
- package/vscode-html-custom-data.json +37 -6
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"nile-stepper.js","sourceRoot":"","sources":["../../../src/nile-stepper/nile-stepper.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;;AAEH,OAAO,EAAc,IAAI,
|
1
|
+
{"version":3,"file":"nile-stepper.js","sourceRoot":"","sources":["../../../src/nile-stepper/nile-stepper.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;;AAEH,OAAO,EAAc,IAAI,EAAoD,MAAM,KAAK,CAAC;AACzF,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,WAAW,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAGvD;;;;;GAKG;AAEI,IAAM,WAAW,GAAjB,MAAM,WAAY,SAAQ,WAAW;IAArC;;QAE8C,eAAU,GAAY,KAAK,CAAC;QACpB,iBAAY,GAAY,KAAK,CAAC;QAC/B,gBAAW,GAAW,CAAC,CAAC;QACvB,kBAAa,GAAW,CAAC,CAAC;QAC1B,SAAI,GAAuB,IAAI,CAAC;QAChF,SAAI,GAAW,MAAM,CAAC;QAgGlC,gBAAgB;IACjB,CAAC;IA/FU,MAAM,CAAC,iBAAoE;QAClF,KAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;QAClC,IAAG,iBAAiB,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,iBAAiB,CAAC,GAAG,CAAC,eAAe,CAAC,EAAC,CAAC;YAClF,IAAI,CAAC,WAAW,EAAE,CAAC;QACpB,CAAC;IACF,CAAC;IAGD,wBAAwB;QACvB,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IAC/D,CAAC;IAGD,0BAA0B;QACzB,IAAI,CAAC,WAAW,EAAE,CAAA;QAClB,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;IACnE,CAAC;IAEO,WAAW;QAClB,MAAM,KAAK,GAAQ,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC;QACpH,IAAI,CAAC,KAAK,CAAC,MAAM;YAAE,OAAO;QAC1B,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QAElC,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;QAClG,MAAM,mBAAmB,GAAG,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC;QACtI,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC;QAE7E,KAAK,CAAC,OAAO,CAAC,CAAC,EAAO,EAAE,KAAa,EAAE,EAAE;YACxC,6CAA6C;YAC7C,IAAI,KAAK,GAAG,CAAC,GAAG,OAAO,EAAE,CAAC;gBACzB,EAAE,CAAC,UAAU,GAAG,IAAI,CAAC;gBACrB,EAAE,CAAC,SAAS,GAAG,KAAK,CAAC;YACtB,CAAC;iBACI,IAAI,KAAK,GAAG,CAAC,IAAI,OAAO,EAAE,CAAC;gBAC/B,IAAI,KAAK,GAAG,CAAC,IAAI,mBAAmB;oBAAE,EAAE,CAAC,UAAU,GAAG,IAAI,CAAC;;oBACtD,EAAE,CAAC,UAAU,GAAG,KAAK,CAAC;gBAC3B,EAAE,CAAC,SAAS,GAAG,IAAI,CAAC;YACrB,CAAC;iBACI,CAAC;gBACL,IAAI,KAAK,GAAG,CAAC,IAAI,mBAAmB;oBAAE,EAAE,CAAC,UAAU,GAAG,IAAI,CAAC;;oBACtD,EAAE,CAAC,UAAU,GAAG,KAAK,CAAC;gBAC3B,EAAE,CAAC,SAAS,GAAG,KAAK,CAAC;YACtB,CAAC;YAED,yBAAyB;YACzB,IAAI,KAAK,IAAI,CAAC;gBAAE,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC;YAClC,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;gBAAE,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC;YAEhD,yBAAyB;YACzB,EAAE,CAAC,gBAAgB,GAAG,OAAO,CAAC;YAC9B,EAAE,CAAC,4BAA4B,GAAG,mBAAmB,CAAC;YACtD,EAAE,CAAC,kBAAkB,GAAG,SAAS,CAAC;YAElC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACpB,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACpB,EAAE,CAAC,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;YACrB,EAAE,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAA;YACnC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC7C,EAAE,CAAC,QAAQ,GAAG,QAAQ,CAAC;YACxB,CAAC;QACF,CAAC,CAAC,CAAA;IACH,CAAC;IAED;;;OAGG;IACI,MAAM,KAAK,MAAM;QACvB,OAAO,CAAC,MAAM,CAAC,CAAC;IACjB,CAAC;IAED,gBAAgB;IAEhB,qBAAqB;IAErB;;;OAGG;IACI,MAAM;QACZ,OAAO,IAAI,CAAA;gBACG,QAAQ,CAAC;YACrB,cAAc,EAAC,IAAI;YACnB,0BAA0B,EAAC,CAAC,IAAI,CAAC,UAAU;YAC3C,wBAAwB,EAAC,IAAI,CAAC,UAAU;SACxC,CAAC;;mBAEc,IAAI,CAAC,WAAW;;;IAG/B,CAAC;IACJ,CAAC;CAGD,CAAA;AAtGoD;IAAnD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;+CAA6B;AACpB;IAA3D,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAC,IAAI,EAAE,CAAC;iDAA+B;AAC/B;IAA1D,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAC,IAAI,EAAE,CAAC;gDAAyB;AACvB;IAA3D,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAC,IAAI,EAAG,CAAC;kDAA2B;AAC1B;IAA3D,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAC,IAAI,EAAG,CAAC;yCAAiC;AAChF;IAAX,QAAQ,EAAE;yCAAuB;AAUlC;IADC,KAAK,CAAC,aAAa,CAAC;2DAIpB;AAGD;IADC,KAAK,CAAC,eAAe,CAAC;6DAItB;AA1BW,WAAW;IADvB,aAAa,CAAC,cAAc,CAAC;GACjB,WAAW,CAwGvB;;AAED,eAAe,WAAW,CAAC","sourcesContent":["/**\n * Copyright Aquera Inc 2023\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, PropertyValueMap } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { styles } from './nile-stepper.css';\nimport NileElement from '../internal/nile-element';\nimport { watch } from '../internal/watch';\nimport { classMap } from 'lit/directives/class-map.js';\n\n\n/**\n * Nile stepper component.\n *\n * @tag nile-stepper\n *\n */\n@customElement('nile-stepper')\nexport class NileStepper extends NileElement {\n\n\t@property({ type: Boolean, attribute: 'vertical' }) isVertical: boolean = false;\n\t@property({ type: Boolean, attribute: true, reflect:true }) contentBelow: boolean = false;\n\t@property({ type: Number, attribute: true, reflect:true }) currentStep: number = 0;\n\t@property({ type: Number, attribute: true, reflect:true }) completedStep: number = 0;\n\t@property({ type: String, attribute: true, reflect:true }) size: 'sm' | 'md' | 'lg' = 'md';\n\t@property() icon: string = 'tick';\n\n\tprotected update(changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>): void{\n super.update(changedProperties);\n\t\tif(changedProperties.has('currentStep') || changedProperties.has('completedStep')){\n\t\t\tthis.updateItems();\n\t\t}\n\t}\n\n\t@watch('currentStep')\n\thandleCurrentStepChanges() {\n\t\tthis.updateItems();\n\t\tthis.emit('nile-current-change', { value: this.currentStep });\n\t}\n\n\t@watch('completedStep')\n\thandleCompletedStepChanges() {\n\t\tthis.updateItems()\n\t\tthis.emit('nile-completed-change', { value: this.completedStep });\n\t}\n\t\n\tprivate updateItems() {\n\t\tconst items: any = [...this.querySelectorAll(this.isVertical ? 'nile-vertical-stepper-item' : 'nile-stepper-item')];\n\t\tif (!items.length) return;\n\t\tconst haveFlex = items.length < 3;\n\n\t\tconst current = (this.currentStep == 0 || this.currentStep > items.length) ? 1 : this.currentStep;\n\t\tconst calculatedCompleted = this.completedStep > items.length ? current : this.completedStep < current ? current : this.completedStep;\n\t\tconst completed = this.completedStep > items.length ? 0 : this.completedStep;\n\n\t\titems.forEach((el: any, index: number) => {\n\t\t\t// set item is complete and is current values\n\t\t\tif (index + 1 < current) {\n\t\t\t\tel.isComplete = true;\n\t\t\t\tel.isCurrent = false;\n\t\t\t}\n\t\t\telse if (index + 1 == current) {\n\t\t\t\tif (index + 1 <= calculatedCompleted) el.isComplete = true;\n\t\t\t\telse el.isComplete = false;\n\t\t\t\tel.isCurrent = true;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tif (index + 1 <= calculatedCompleted) el.isComplete = true;\n\t\t\t\telse el.isComplete = false;\n\t\t\t\tel.isCurrent = false;\n\t\t\t}\n\n\t\t\t// Set isLast and isFirst\n\t\t\tif (index == 0) el.isFirst = true;\n\t\t\tif (index == items.length - 1) el.isLast = true;\n\n\t\t\t// setting default values\n\t\t\tel.currentStepValue = current;\n\t\t\tel.calculatedCompletedStepValue = calculatedCompleted;\n\t\t\tel.completedStepValue = completed;\n\n\t\t\tel.icon = this.icon;\n\t\t\tel.size = this.size;\n\t\t\tel.value = index + 1;\n\t\t\tel.contentBelow = this.contentBelow\n\t\t\tif (index == 0 || index == items.length - 1) {\n\t\t\t\tel.haveFlex = haveFlex;\n\t\t\t}\n\t\t})\n\t}\n\n\t/**\n\t * The styles for nile-stepper\n\t * @remarks If you are extending this class you can extend the base styles with super. Eg `return [super(), myCustomStyles]`\n\t */\n\tpublic static get styles(): CSSResultArray {\n\t\treturn [styles];\n\t}\n\n\t/* #endregion */\n\n\t/* #region Methods */\n\n\t/**\n\t * Render method\n\t * @slot This is a slot test\n\t */\n\tpublic render(): TemplateResult {\n\t\treturn html`\n\t\t\t<div class=${classMap({\n\t\t\t\t'nile-stepper':true,\n\t\t\t\t'nile-stepper--horizontal':!this.isVertical,\n\t\t\t\t'nile-stepper--vertical':this.isVertical\n\t\t\t})}>\n\t\t\t\t<slot\n\t\t\t\t\t@slotchange=${this.updateItems}\n\t\t\t\t></slot>\n\t\t\t</div>\n\t\t\t`;\n\t}\n\n\t/* #endregion */\n}\n\nexport default NileStepper;\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'nile-stepper': NileStepper;\n\t}\n}\n"]}
|
@@ -13,7 +13,7 @@ export const styles = css `
|
|
13
13
|
--stepper-flex-val:1;
|
14
14
|
--bulletin--dot--seperation:30%;
|
15
15
|
|
16
|
-
display:inline-block;
|
16
|
+
display: inline-block;
|
17
17
|
flex-grow:var(--stepper-flex-val);
|
18
18
|
min-width:var(--nile-stepper-min-width);
|
19
19
|
}
|
@@ -23,7 +23,7 @@ export const styles = css `
|
|
23
23
|
}
|
24
24
|
|
25
25
|
.stepper__item--sm {
|
26
|
-
--item-spacing: var(--nile-spacing-spacing-
|
26
|
+
--item-spacing: var(--nile-spacing-spacing-md);
|
27
27
|
--stepper-item-title-size:14px;
|
28
28
|
--stepper-item-subtitle-size:14px;
|
29
29
|
--stepper-item-text-line-height:20px;
|
@@ -31,17 +31,17 @@ export const styles = css `
|
|
31
31
|
}
|
32
32
|
|
33
33
|
.stepper__item--md {
|
34
|
-
--item-spacing: var(--nile-spacing-spacing-
|
34
|
+
--item-spacing: var(--nile-spacing-spacing-md);
|
35
35
|
--stepper-item-title-size:16px;
|
36
|
-
--stepper-item-subtitle-size:
|
37
|
-
--stepper-item-text-line-
|
36
|
+
--stepper-item-subtitle-size:14px;
|
37
|
+
--stepper-item-text-line-height:24px;
|
38
38
|
--circle-height:20px;
|
39
39
|
}
|
40
40
|
|
41
41
|
.stepper__item--lg {
|
42
|
-
--item-spacing: var(--nile-spacing-spacing-
|
42
|
+
--item-spacing: var(--nile-spacing-spacing-lg);
|
43
43
|
--stepper-item-title-size:16px;
|
44
|
-
--stepper-item-subtitle-size:
|
44
|
+
--stepper-item-subtitle-size:14px;
|
45
45
|
--stepper-item-text-line-height:24px;
|
46
46
|
--circle-height:28px;
|
47
47
|
}
|
@@ -65,13 +65,24 @@ export const styles = css `
|
|
65
65
|
.stepper__line {
|
66
66
|
display: block;
|
67
67
|
border: 0;
|
68
|
-
border-top: 2px solid var(--nile-colors-
|
68
|
+
border-top: 2px solid var(--nile-colors-neutral-500);
|
69
69
|
}
|
70
70
|
|
71
71
|
.stepper__line--active {
|
72
72
|
border-top: 2px solid var(--nile-colors-primary-600);
|
73
73
|
}
|
74
74
|
|
75
|
+
.stepper__item__content--above{
|
76
|
+
position:relative;
|
77
|
+
padding: 0 var(--nile-spacing-spacing-md);
|
78
|
+
}
|
79
|
+
|
80
|
+
.stepper__item__content--above .stepper__content__subtitle{
|
81
|
+
position: absolute;
|
82
|
+
top: 100%;
|
83
|
+
white-space: nowrap;
|
84
|
+
}
|
85
|
+
|
75
86
|
.stepper__item__content--below {
|
76
87
|
margin-top: var(--item-spacing);
|
77
88
|
display:flex;
|
@@ -85,25 +96,35 @@ export const styles = css `
|
|
85
96
|
margin:0 -1px;
|
86
97
|
}
|
87
98
|
|
99
|
+
.stepper__item__bulletin{
|
100
|
+
margin-left: 6px;
|
101
|
+
margin-right: 6px;
|
102
|
+
}
|
103
|
+
|
104
|
+
.stepper__item__bulletin--inline{
|
105
|
+
margin-right: 0px;
|
106
|
+
}
|
107
|
+
|
88
108
|
.stepper__content__title {
|
89
|
-
color:var(--nile-colors-
|
109
|
+
color:var(--nile-colors-dark-900);
|
90
110
|
font-size: var(--stepper-item-title-size);
|
91
111
|
line-height: var(--stepper-item-text-line-height);
|
92
112
|
font-family: var(--nile-font-family-medium);
|
93
|
-
font-weight:
|
113
|
+
font-weight: 400;
|
94
114
|
}
|
95
115
|
|
96
116
|
.stepper__content__title--inline{
|
97
117
|
padding: 0 8px;
|
98
|
-
color:var(--nile-colors-
|
118
|
+
color:var(--nile-colors-dark-900);
|
99
119
|
}
|
100
120
|
|
101
121
|
.stepper__content__title--active{
|
102
|
-
color:var(--nile-colors-primary-
|
122
|
+
color:var(--nile-colors-primary-600);
|
123
|
+
font-weight: 600;
|
103
124
|
}
|
104
125
|
|
105
126
|
.stepper__content__subtitle {
|
106
|
-
color:var(--nile-colors-
|
127
|
+
color:var(--nile-colors-dark-500);
|
107
128
|
font-size: var(--stepper-item-subtitle-size);
|
108
129
|
line-height: var(--stepper-item-text-line-height);
|
109
130
|
font-family: var(--nile-font-family-sans-serif);
|
@@ -118,13 +139,13 @@ export const styles = css `
|
|
118
139
|
width: var(--circle-height);
|
119
140
|
aspect-ratio: 1 / 1;
|
120
141
|
border-radius: 50%;
|
121
|
-
background: radial-gradient(var(--nile-colors-
|
122
|
-
border: 2px solid var(--nile-colors-
|
142
|
+
background: radial-gradient(var(--nile-colors-neutral-500) var(--bulletin--dot--seperation), var(--nile-colors-dark-200) var(--bulletin--dot--seperation));
|
143
|
+
border: 2px solid var(--nile-colors-neutral-500);
|
123
144
|
}
|
124
145
|
|
125
146
|
.stepper__bulletin__dot--active{
|
126
147
|
background: radial-gradient(var(--nile-colors-white-base) var(--bulletin--dot--seperation), var(--nile-colors-primary-600) var(--bulletin--dot--seperation));
|
127
|
-
border: 2px solid var(--nile-colors-primary-
|
148
|
+
border: 2px solid var(--nile-colors-primary-500);
|
128
149
|
}
|
129
150
|
|
130
151
|
.stepper__bulletin--icon {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"nile-stepper-item.css.js","sourceRoot":"","sources":["../../../src/nile-stepper-item/nile-stepper-item.css.ts"],"names":[],"mappings":"AAAA;;;;;EAKE;AAEF,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA
|
1
|
+
{"version":3,"file":"nile-stepper-item.css.js","sourceRoot":"","sources":["../../../src/nile-stepper-item/nile-stepper-item.css.ts"],"names":[],"mappings":"AAAA;;;;;EAKE;AAEF,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsJxB,CAAC;AACF,eAAe,CAAC,MAAM,CAAC,CAAC","sourcesContent":["/**\n* Copyright Aquera Inc 2023\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 { css } from 'lit';\n\n/**\n * StepperItem CSS\n */\nexport const styles = css`\n\t:host {\n\t\t--stepper-flex-val:1;\n\t\t--bulletin--dot--seperation:30%;\n\t\t\n\t\tdisplay: inline-block;\n\t\tflex-grow:var(--stepper-flex-val);\n\t\tmin-width:var(--nile-stepper-min-width);\n\t}\n\t\n\t.stepper__item {\n\t\tmargin: 0 -1px;\n\t}\n\n\t.stepper__item--sm {\n\t\t--item-spacing: var(--nile-spacing-spacing-md);\n\t\t--stepper-item-title-size:14px;\n\t\t--stepper-item-subtitle-size:14px;\n\t\t--stepper-item-text-line-height:20px;\n\t\t--circle-height:16px;\n\t}\n\n\t.stepper__item--md {\n\t\t--item-spacing: var(--nile-spacing-spacing-md);\n\t\t--stepper-item-title-size:16px;\n\t\t--stepper-item-subtitle-size:14px;\n\t\t--stepper-item-text-line-height:24px;\n\t\t--circle-height:20px;\n\t}\n\n\t.stepper__item--lg {\n\t\t--item-spacing: var(--nile-spacing-spacing-lg);\n\t\t--stepper-item-title-size:16px;\n\t\t--stepper-item-subtitle-size:14px;\n\t\t--stepper-item-text-line-height:24px;\n\t\t--circle-height:28px;\n\t}\n\n\t.stepper__line__content {\n\t\tdisplay:flex;\n\t\twidth:100%;\n\t\talign-items:center;\n\t}\n\n\t.stepper__line__container {\n\t\tflex-grow:1;\n\t\tpadding:0 1px;\n\t}\n\n\t.stepper__line--hastitle {\n\t\tdisplay:flex;\n\t\talign-items:center;\n\t}\n\n\t.stepper__line {\n\t\tdisplay: block;\n\t\tborder: 0;\n\t\tborder-top: 2px solid var(--nile-colors-neutral-500);\n\t}\n\n\t.stepper__line--active {\n\t\tborder-top: 2px solid var(--nile-colors-primary-600);\n\t}\n\n\t.stepper__item__content--above{\n\t\tposition:relative;\n\t\tpadding: 0 var(--nile-spacing-spacing-md);\n\t}\n\n\t.stepper__item__content--above .stepper__content__subtitle{\n\t\tposition: absolute;\n top: 100%;\n white-space: nowrap;\n\t}\n\n\t.stepper__item__content--below {\n\t\tmargin-top: var(--item-spacing);\n\t\tdisplay:flex;\n\t\tflex-direction:column;\n\t\talign-items:center;\n\t}\n\t\n\t.stepper__item__bulletin {\n\t\tdisplay:grid;\n\t\tplace-content:center;\n\t\tmargin:0 -1px;\n\t}\n\n\t.stepper__item__bulletin{\n\t\tmargin-left: 6px;\n\t\tmargin-right: 6px;\n\t}\n\n\t.stepper__item__bulletin--inline{\n\t\tmargin-right: 0px;\n\t}\n\n\t.stepper__content__title {\n\t\tcolor:var(--nile-colors-dark-900);\n\t\tfont-size: var(--stepper-item-title-size);\n\t\tline-height: var(--stepper-item-text-line-height);\n\t\tfont-family: var(--nile-font-family-medium);\n\t\tfont-weight: 400;\n\t}\n\n\t.stepper__content__title--inline{\n\t\tpadding: 0 8px;\n\t\tcolor:var(--nile-colors-dark-900);\n\t}\n\n\t.stepper__content__title--active{\n\t\tcolor:var(--nile-colors-primary-600);\n\t\tfont-weight: 600;\n\t}\n\n\t.stepper__content__subtitle {\n\t\tcolor:var(--nile-colors-dark-500);\n\t\tfont-size: var(--stepper-item-subtitle-size);\n\t\tline-height: var(--stepper-item-text-line-height);\n\t\tfont-family: var(--nile-font-family-sans-serif);\n\t\tfont-weight: 400;\n\t}\n\n\t.stepper__content__subtitle--active{\n\t\tcolor:var(--nile-colors-primary-600);\n\t}\n\n\t.stepper__bulletin--dot {\n\t\twidth: var(--circle-height);\n\t\taspect-ratio: 1 / 1;\n\t\tborder-radius: 50%;\n\t\tbackground: radial-gradient(var(--nile-colors-neutral-500) var(--bulletin--dot--seperation), var(--nile-colors-dark-200) var(--bulletin--dot--seperation));\n\t\tborder: 2px solid var(--nile-colors-neutral-500);\n\t}\n\n\t.stepper__bulletin__dot--active{\n\t\tbackground: radial-gradient(var(--nile-colors-white-base) var(--bulletin--dot--seperation), var(--nile-colors-primary-600) var(--bulletin--dot--seperation));\n\t\tborder: 2px solid var(--nile-colors-primary-500);\n\t}\n\n\t.stepper__bulletin--icon {\n\t\tdisplay:grid;\n\t\tplace-content:center;\n\t\twidth: var(--circle-height);\n\t\tborder: 2px solid var(--nile-colors-primary-600);\n\t\taspect-ratio: 1 / 1;\n\t\tborder-radius: 50%;\n\t\tbackground-color:var(--nile-colors-primary-600);\n\t\toverflow:hidden;\n\t}\n`;\nexport default [styles];"]}
|
@@ -4,7 +4,7 @@
|
|
4
4
|
* This source code is licensed under the BSD-3-Clause license found in the
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
6
6
|
*/
|
7
|
-
import { CSSResultArray, TemplateResult } from 'lit';
|
7
|
+
import { CSSResultArray, TemplateResult, PropertyValues } from 'lit';
|
8
8
|
import NileElement from '../internal/nile-element';
|
9
9
|
/**
|
10
10
|
* Nile stepper-item component.
|
@@ -13,6 +13,8 @@ import NileElement from '../internal/nile-element';
|
|
13
13
|
*
|
14
14
|
*/
|
15
15
|
export declare class NileStepperItem extends NileElement {
|
16
|
+
absoluteTitle: HTMLDivElement;
|
17
|
+
absoluteSubtitle: HTMLDivElement;
|
16
18
|
title: string;
|
17
19
|
subtitle: string;
|
18
20
|
private contentBelow;
|
@@ -32,11 +34,13 @@ export declare class NileStepperItem extends NileElement {
|
|
32
34
|
* @remarks If you are extending this class you can extend the base styles with super. Eg `return [super(), myCustomStyles]`
|
33
35
|
*/
|
34
36
|
static get styles(): CSSResultArray;
|
37
|
+
protected updated(_changedProperties: PropertyValues): void;
|
35
38
|
/**
|
36
39
|
* Render method
|
37
40
|
* @slot This is a slot test
|
38
41
|
*/
|
39
42
|
render(): TemplateResult;
|
43
|
+
getSvg(): TemplateResult;
|
40
44
|
}
|
41
45
|
export default NileStepperItem;
|
42
46
|
declare global {
|
@@ -6,7 +6,7 @@
|
|
6
6
|
*/
|
7
7
|
import { __decorate } from "tslib";
|
8
8
|
import { nothing, html } from 'lit';
|
9
|
-
import { customElement, property, state } from 'lit/decorators.js';
|
9
|
+
import { customElement, property, state, query } from 'lit/decorators.js';
|
10
10
|
import { classMap } from 'lit/directives/class-map.js';
|
11
11
|
import { styles } from './nile-stepper-item.css';
|
12
12
|
import NileElement from '../internal/nile-element';
|
@@ -41,6 +41,12 @@ let NileStepperItem = class NileStepperItem extends NileElement {
|
|
41
41
|
static get styles() {
|
42
42
|
return [styles];
|
43
43
|
}
|
44
|
+
updated(_changedProperties) {
|
45
|
+
if (_changedProperties.has('subtitle') && this.isLast && !this.contentBelow && this.subtitle) {
|
46
|
+
const subtitleWidth = this.absoluteSubtitle?.scrollWidth ?? '0';
|
47
|
+
this.absoluteTitle.style.minWidth = subtitleWidth + "px";
|
48
|
+
}
|
49
|
+
}
|
44
50
|
/* #endregion */
|
45
51
|
/* #region Methods */
|
46
52
|
/**
|
@@ -61,14 +67,13 @@ let NileStepperItem = class NileStepperItem extends NileElement {
|
|
61
67
|
if (this.calculatedCompletedStepValue == this.value)
|
62
68
|
suffixStepperLineActive = false;
|
63
69
|
}
|
64
|
-
let iconSize = this.size == 'sm' ? 20 : this.size == 'md' ? 24 : 28;
|
65
70
|
return html `
|
66
71
|
<div class="${classMap({
|
67
72
|
'stepper__item': true,
|
68
73
|
'stepper__item--selected': isCurrent,
|
69
74
|
'stepper__item--sm': this.size == 'sm',
|
70
75
|
'stepper__item--md': this.size == 'md',
|
71
|
-
'stepper__item--lg': this.size == 'lg'
|
76
|
+
'stepper__item--lg': this.size == 'lg'
|
72
77
|
})}">
|
73
78
|
<div class="stepper__line__content">
|
74
79
|
<div class="stepper__line__container">
|
@@ -80,13 +85,9 @@ let NileStepperItem = class NileStepperItem extends NileElement {
|
|
80
85
|
`}
|
81
86
|
</div>
|
82
87
|
|
83
|
-
<div class
|
88
|
+
<div class=${classMap({ 'stepper__item__bulletin': true, 'stepper__item__bulletin--inline': !this.contentBelow })}>
|
84
89
|
${showCompletedIcon ?
|
85
|
-
html `<div class="stepper__bulletin--icon"
|
86
|
-
<svg width="${iconSize}" height="${iconSize}" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
|
87
|
-
<path fill-rule="evenodd" clip-rule="evenodd" d="M22.7953 9.85334L13.2487 19.0667L10.7153 16.36C10.2487 15.92 9.51534 15.8933 8.982 16.2667C8.462 16.6533 8.31534 17.3333 8.63534 17.88L11.6353 22.76C11.9287 23.2133 12.4353 23.4933 13.0087 23.4933C13.5553 23.4933 14.0753 23.2133 14.3687 22.76C14.8487 22.1333 24.0087 11.2133 24.0087 11.2133C25.2087 9.98668 23.7553 8.90668 22.7953 9.84001V9.85334Z" fill="white"/>
|
88
|
-
</svg>
|
89
|
-
</div>`
|
90
|
+
html `<div class="stepper__bulletin--icon">${this.getSvg()}</div>`
|
90
91
|
: html `<div class="${classMap({ 'stepper__bulletin--dot': true, 'stepper__bulletin__dot--active': isCurrent })}"></div>`}
|
91
92
|
</div>
|
92
93
|
|
@@ -95,9 +96,12 @@ let NileStepperItem = class NileStepperItem extends NileElement {
|
|
95
96
|
'stepper__line--hastitle': !this.contentBelow
|
96
97
|
})}">
|
97
98
|
${this.contentBelow || !this.title ? nothing : html `
|
98
|
-
|
99
|
-
class="
|
100
|
-
|
99
|
+
|
100
|
+
<div class="stepper__item__content--above">
|
101
|
+
<div class="${classMap({ 'stepper__content__title': true, 'stepper__content__title--active': isCurrent })}">
|
102
|
+
${this.title}
|
103
|
+
</div>
|
104
|
+
<div class="${classMap({ 'stepper__content__subtitle': true, 'stepper__content__subtitle--active': isCurrent })}">${this.subtitle}</div>
|
101
105
|
</div>
|
102
106
|
`}
|
103
107
|
${this.isLast ? nothing : html `
|
@@ -108,18 +112,33 @@ let NileStepperItem = class NileStepperItem extends NileElement {
|
|
108
112
|
`}
|
109
113
|
</div>
|
110
114
|
</div>
|
111
|
-
${
|
115
|
+
${this.contentBelow ?
|
116
|
+
html `
|
112
117
|
<div class="stepper__item__content--below">
|
113
118
|
<div class="${classMap({ 'stepper__content__title': true, 'stepper__content__title--active': isCurrent })}">
|
114
119
|
${this.title}
|
115
120
|
</div>
|
116
121
|
<div class="${classMap({ 'stepper__content__subtitle': true, 'stepper__content__subtitle--active': isCurrent })}">${this.subtitle}</div>
|
117
122
|
</div>
|
118
|
-
`}
|
123
|
+
` : nothing}
|
119
124
|
</div>
|
120
125
|
`;
|
121
126
|
}
|
127
|
+
getSvg() {
|
128
|
+
let iconSize = this.size == 'sm' ? 20 : this.size == 'md' ? 24 : 28;
|
129
|
+
return html `
|
130
|
+
<svg width="${iconSize}" height="${iconSize}" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
|
131
|
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M22.7953 9.85334L13.2487 19.0667L10.7153 16.36C10.2487 15.92 9.51534 15.8933 8.982 16.2667C8.462 16.6533 8.31534 17.3333 8.63534 17.88L11.6353 22.76C11.9287 23.2133 12.4353 23.4933 13.0087 23.4933C13.5553 23.4933 14.0753 23.2133 14.3687 22.76C14.8487 22.1333 24.0087 11.2133 24.0087 11.2133C25.2087 9.98668 23.7553 8.90668 22.7953 9.84001V9.85334Z" fill="white"/>
|
132
|
+
</svg>
|
133
|
+
`;
|
134
|
+
}
|
122
135
|
};
|
136
|
+
__decorate([
|
137
|
+
query('.stepper__item__content--above .stepper__content__title')
|
138
|
+
], NileStepperItem.prototype, "absoluteTitle", void 0);
|
139
|
+
__decorate([
|
140
|
+
query('.stepper__item__content--above .stepper__content__subtitle')
|
141
|
+
], NileStepperItem.prototype, "absoluteSubtitle", void 0);
|
123
142
|
__decorate([
|
124
143
|
property()
|
125
144
|
], NileStepperItem.prototype, "title", void 0);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"nile-stepper-item.js","sourceRoot":"","sources":["../../../src/nile-stepper-item/nile-stepper-item.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Copyright Aquera Inc 2023\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, nothing, html, CSSResultArray, TemplateResult } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { styles } from './nile-stepper-item.css';\nimport NileElement from '../internal/nile-element';\n\n\n/**\n * Nile stepper-item component.\n *\n * @tag nile-stepper-item\n *\n */\n@customElement('nile-stepper-item')\nexport class NileStepperItem extends NileElement {\n\t/* Properties passed directly */\n\t@property() title: string = '';\n\t@property() subtitle: string = '';\n\n\n\t/* Properties passed to parent component: NileStepper */\n\t@state() private contentBelow = false;\n\t@state() private size : 'sm' | 'md' | 'lg' = 'md';\n\t@state() private icon = 'tick';\n\n\n\t/* Properties Computed at parent level component NileStepper */\n\t@state() private isFirst = false;\n\t@state() private isLast = false;\n\n\t@state() private isComplete = false;\n\t@state() private isCurrent = false;\n\t@state() private currentStepValue :Number;\n\t@state() private completedStepValue :Number;\n\t@state() private calculatedCompletedStepValue :Number;\n\n\t@state() private value :Number;\n\t@state() private haveFlex :Boolean=true;\n\n\n\t/**\n\t * The styles for nile-stepper-item\n\t * @remarks If you are extending this class you can extend the base styles with super. Eg `return [super(), myCustomStyles]`\n\t */\n\tpublic static get styles(): CSSResultArray {\n\t\treturn [styles];\n\t}\n\n\t/* #endregion */\n\n\t/* #region Methods */\n\n\t/**\n\t * Render method\n\t * @slot This is a slot test\n\t */\n\tpublic render(): TemplateResult {\n\n\t\tif (!this.haveFlex) this.style.setProperty('--stepper-flex-val', `0`);\n\t\tconst isCurrent = this.isCurrent;\n\t\tconst isComplete = this.isComplete;\n\n\t\tlet showCompletedIcon = false;\n\t\tif (isComplete && !isCurrent || this.completedStepValue == this.value) showCompletedIcon = true;\n\n\t\tlet suffixStepperLineActive = false;\n\t\tif (isComplete) {\n\t\t\tsuffixStepperLineActive = true;\n\t\t\tif (this.calculatedCompletedStepValue == this.value) suffixStepperLineActive = false;\n\t\t}\n\t\tlet iconSize = this.size == 'sm' ? 20 : this.size == 'md' ? 24 : 28;\n\t\treturn html`\n\t\t\t<div class=\"${classMap({\n\t\t\t\t'stepper__item':true,\n\t\t\t\t'stepper__item--selected':isCurrent,\n\t\t\t\t'stepper__item--sm':this.size=='sm',\n\t\t\t\t'stepper__item--md':this.size=='md',\n\t\t\t\t'stepper__item--lg':this.size=='lg',\n\t\t\t})}\">\n\t\t\t\t<div class=\"stepper__line__content\">\n\t\t\t\t\t<div class=\"stepper__line__container\">\n\t\t\t\t\t\t${this.isFirst ? nothing : html`\n\t\t\t\t\t\t\t<hr class=\"${classMap({\n\t\t\t\t\t\t\t\t'stepper__line':true,\n\t\t\t\t\t\t\t\t'stepper__line--active':isComplete || isCurrent\n\t\t\t\t\t\t\t})}\"/>\n\t\t\t\t\t\t`}\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div class=\"stepper__item__bulletin\">\n\t\t\t\t\t\t${showCompletedIcon ? \n\t\t\t\t\t\t\thtml`<div class=\"stepper__bulletin--icon\">\n\t\t\t\t\t\t\t\t\t<svg width=\"${iconSize}\" height=\"${iconSize}\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t\t\t\t\t\t\t\t\t<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M22.7953 9.85334L13.2487 19.0667L10.7153 16.36C10.2487 15.92 9.51534 15.8933 8.982 16.2667C8.462 16.6533 8.31534 17.3333 8.63534 17.88L11.6353 22.76C11.9287 23.2133 12.4353 23.4933 13.0087 23.4933C13.5553 23.4933 14.0753 23.2133 14.3687 22.76C14.8487 22.1333 24.0087 11.2133 24.0087 11.2133C25.2087 9.98668 23.7553 8.90668 22.7953 9.84001V9.85334Z\" fill=\"white\"/>\n\t\t\t\t\t\t\t\t\t</svg>\n\t\t\t\t\t\t\t\t</div>`\n\t\t\t\t\t\t\t: html`<div class=\"${classMap({ 'stepper__bulletin--dot':true, 'stepper__bulletin__dot--active':isCurrent })}\"></div>`\n\t\t\t\t\t\t}\n\t\t\t\t\t</div>\n\t\t\t\t\t\n\t\t\t\t\t<div class=\"${classMap({\n\t\t\t\t\t\t'stepper__line__container':true,\n\t\t\t\t\t\t'stepper__line--hastitle':!this.contentBelow\n\t\t\t\t\t})}\">\n\t\t\t\t\t\t${this.contentBelow || !this.title ? nothing:html`\n\t\t\t\t\t\t\t<div \n\t\t\t\t\t\t\tclass=\"${classMap({ 'stepper__content__title stepper__content__title--inline':true, 'stepper__content__title--active':isCurrent, })}\">\n\t\t\t\t\t\t\t${this.title}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t`}\n\t\t\t\t\t\t${this.isLast ? nothing : html`\n\t\t\t\t\t\t\t<hr class=\"${classMap({\n\t\t\t\t\t\t\t\t'stepper__line':true,\n\t\t\t\t\t\t\t\t'stepper__line--active':suffixStepperLineActive\n\t\t\t\t\t\t\t})}\" style=\"flex-grow:1;\"/>\n\t\t\t\t\t\t`}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t${!this.contentBelow?nothing:html`\n\t\t\t\t\t<div class=\"stepper__item__content--below\">\n\t\t\t\t\t\t<div class=\"${classMap({ 'stepper__content__title':true, 'stepper__content__title--active':isCurrent })}\">\n\t\t\t\t\t\t\t${this.title}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class=\"${classMap({ 'stepper__content__subtitle':true, 'stepper__content__subtitle--active':isCurrent })}\">${this.subtitle}</div>\n\t\t\t\t\t</div>\n\t\t\t\t`}\n\t\t\t</div>\n\t\t`;\n\t}\n\n\t/* #endregion */\n}\n\nexport default NileStepperItem;\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'nile-stepper-item': NileStepperItem;\n\t}\n}"]}
|
1
|
+
{"version":3,"file":"nile-stepper-item.js","sourceRoot":"","sources":["../../../src/nile-stepper-item/nile-stepper-item.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Copyright Aquera Inc 2023\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, nothing, html, CSSResultArray, TemplateResult, PropertyValues } from 'lit';\nimport { customElement, property, state, query } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { styles } from './nile-stepper-item.css';\nimport NileElement from '../internal/nile-element';\n\n\n/**\n * Nile stepper-item component.\n *\n * @tag nile-stepper-item\n *\n */\n@customElement('nile-stepper-item')\nexport class NileStepperItem extends NileElement {\n\n\t@query('.stepper__item__content--above .stepper__content__title') absoluteTitle:HTMLDivElement;\n\t@query('.stepper__item__content--above .stepper__content__subtitle') absoluteSubtitle:HTMLDivElement;\n\n\t/* Properties passed directly */\n\t@property() title: string = '';\n\t@property() subtitle: string = '';\n\n\t/* Properties passed to parent component: NileStepper */\n\t@state() private contentBelow = false;\n\t@state() private size : 'sm' | 'md' | 'lg' = 'md';\n\t@state() private icon = 'tick';\n\n\n\t/* Properties Computed at parent level component NileStepper */\n\t@state() private isFirst = false;\n\t@state() private isLast = false;\n\n\t@state() private isComplete = false;\n\t@state() private isCurrent = false;\n\t@state() private currentStepValue :Number;\n\t@state() private completedStepValue :Number;\n\t@state() private calculatedCompletedStepValue :Number;\n\n\t@state() private value :Number;\n\t@state() private haveFlex :Boolean=true;\n\n\t/**\n\t * The styles for nile-stepper-item\n\t * @remarks If you are extending this class you can extend the base styles with super. Eg `return [super(), myCustomStyles]`\n\t */\n\tpublic static get styles(): CSSResultArray {\n\t\treturn [styles];\n\t}\n\n\tprotected updated(_changedProperties: PropertyValues): void {\n\t\tif(_changedProperties.has('subtitle') && this.isLast && !this.contentBelow && this.subtitle){\n\t\t\tconst subtitleWidth=this.absoluteSubtitle?.scrollWidth as number ?? '0';\n\t\t\tthis.absoluteTitle.style.minWidth=subtitleWidth+\"px\"\n\t\t}\n\t}\n\n\t/* #endregion */\n\n\t/* #region Methods */\n\n\t/**\n\t * Render method\n\t * @slot This is a slot test\n\t */\n\tpublic render(): TemplateResult {\n\n\t\tif (!this.haveFlex) this.style.setProperty('--stepper-flex-val', `0`);\n\t\tconst isCurrent = this.isCurrent;\n\t\tconst isComplete = this.isComplete;\n\n\t\tlet showCompletedIcon = false;\n\t\tif (isComplete && !isCurrent || this.completedStepValue == this.value) showCompletedIcon = true;\n\n\t\tlet suffixStepperLineActive = false;\n\t\tif (isComplete) {\n\t\t\tsuffixStepperLineActive = true;\n\t\t\tif (this.calculatedCompletedStepValue == this.value) suffixStepperLineActive = false;\n\t\t}\n\t\treturn html`\n\t\t\t<div class=\"${classMap({\n\t\t\t\t'stepper__item':true,\n\t\t\t\t'stepper__item--selected':isCurrent,\n\t\t\t\t'stepper__item--sm':this.size=='sm',\n\t\t\t\t'stepper__item--md':this.size=='md',\n\t\t\t\t'stepper__item--lg':this.size=='lg'\n\t\t\t})}\">\n\t\t\t\t<div class=\"stepper__line__content\">\n\t\t\t\t\t<div class=\"stepper__line__container\">\n\t\t\t\t\t\t${this.isFirst ? nothing : html`\n\t\t\t\t\t\t\t<hr class=\"${classMap({\n\t\t\t\t\t\t\t\t'stepper__line':true,\n\t\t\t\t\t\t\t\t'stepper__line--active':isComplete || isCurrent\n\t\t\t\t\t\t\t})}\"/>\n\t\t\t\t\t\t`}\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div class=${classMap({ 'stepper__item__bulletin':true, 'stepper__item__bulletin--inline': !this.contentBelow })}>\n\t\t\t\t\t\t${showCompletedIcon ? \n\t\t\t\t\t\t\thtml`<div class=\"stepper__bulletin--icon\">${this.getSvg()}</div>`\n\t\t\t\t\t\t\t: html`<div class=\"${classMap({ 'stepper__bulletin--dot':true, 'stepper__bulletin__dot--active':isCurrent })}\"></div>`\n\t\t\t\t\t\t}\n\t\t\t\t\t</div>\n\t\t\t\t\t\n\t\t\t\t\t<div class=\"${classMap({\n\t\t\t\t\t\t'stepper__line__container':true,\n\t\t\t\t\t\t'stepper__line--hastitle':!this.contentBelow\n\t\t\t\t\t})}\">\n\t\t\t\t\t\t${this.contentBelow || !this.title ? nothing:html`\n\n\t\t\t\t\t\t\t<div class=\"stepper__item__content--above\">\n\t\t\t\t\t\t\t\t<div class=\"${classMap({ 'stepper__content__title':true, 'stepper__content__title--active':isCurrent })}\">\n\t\t\t\t\t\t\t\t\t${this.title}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div class=\"${classMap({ 'stepper__content__subtitle':true, 'stepper__content__subtitle--active':isCurrent })}\">${this.subtitle}</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t`}\n\t\t\t\t\t\t${this.isLast ? nothing : html`\n\t\t\t\t\t\t\t<hr class=\"${classMap({\n\t\t\t\t\t\t\t\t'stepper__line':true,\n\t\t\t\t\t\t\t\t'stepper__line--active':suffixStepperLineActive\n\t\t\t\t\t\t\t})}\" style=\"flex-grow:1;\"/>\n\t\t\t\t\t\t`}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t${this.contentBelow?\n\t\t\t\t\thtml`\n\t\t\t\t\t<div class=\"stepper__item__content--below\">\n\t\t\t\t\t\t<div class=\"${classMap({ 'stepper__content__title':true, 'stepper__content__title--active':isCurrent })}\">\n\t\t\t\t\t\t\t${this.title}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class=\"${classMap({ 'stepper__content__subtitle':true, 'stepper__content__subtitle--active':isCurrent })}\">${this.subtitle}</div>\n\t\t\t\t\t</div>\n\t\t\t\t`:nothing}\n\t\t\t</div>\n\t\t`;\n\t}\n\n\tgetSvg():TemplateResult{\n\t\tlet iconSize = this.size == 'sm' ? 20 : this.size == 'md' ? 24 : 28;\n\t\treturn html`\n\t\t<svg width=\"${iconSize}\" height=\"${iconSize}\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t\t<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M22.7953 9.85334L13.2487 19.0667L10.7153 16.36C10.2487 15.92 9.51534 15.8933 8.982 16.2667C8.462 16.6533 8.31534 17.3333 8.63534 17.88L11.6353 22.76C11.9287 23.2133 12.4353 23.4933 13.0087 23.4933C13.5553 23.4933 14.0753 23.2133 14.3687 22.76C14.8487 22.1333 24.0087 11.2133 24.0087 11.2133C25.2087 9.98668 23.7553 8.90668 22.7953 9.84001V9.85334Z\" fill=\"white\"/>\n\t\t</svg>\n\t\t`\n\t}\n\n\t/* #endregion */\n}\n\nexport default NileStepperItem;\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'nile-stepper-item': NileStepperItem;\n\t}\n}"]}
|
@@ -47,9 +47,9 @@ export const styles = css `
|
|
47
47
|
position: absolute;
|
48
48
|
height: var(--track-width);
|
49
49
|
width: 100%;
|
50
|
-
background: var(--nile-
|
50
|
+
background: var(--nile-colors-neutral-400);
|
51
51
|
bottom:0px;
|
52
|
-
z-index
|
52
|
+
z-index:0;
|
53
53
|
}
|
54
54
|
|
55
55
|
.tab-group--has-scroll-controls .tab-group__nav-container {
|
@@ -125,7 +125,7 @@ export const styles = css `
|
|
125
125
|
.tab-group--top .tab-group__indicator {
|
126
126
|
bottom: 0px;
|
127
127
|
border-bottom: 2px solid var(--nile-colors-primary-600);
|
128
|
-
z-index
|
128
|
+
z-index:0;
|
129
129
|
}
|
130
130
|
|
131
131
|
.tab-group--top .tab-group__body {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"nile-tab-group.css.js","sourceRoot":"","sources":["../../../src/nile-tab-group/nile-tab-group.css.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8PxB,CAAC;AAEF,eAAe,CAAC,MAAM,CAAC,CAAC","sourcesContent":["/**\n * Copyright Aquera Inc 2023\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 { css } from 'lit';\n\n/**\n * TabGroup CSS\n */\nexport const styles = css`\n [hidden] {\n display: none !important;\n }\n\n :host {\n --indicator-color: var(--nile-colors-primary-600);\n --track-color: var(--nile-colors-neutral-400);\n --track-width: 2px;\n --tab-gap: 12px;\n\n display: block;\n }\n\n .tab-group {\n display: flex;\n border-radius: 0;\n }\n\n .tab-group__tabs {\n display: flex;\n position: relative;\n gap: var(--tab-gap);\n }\n\n .hide__track {\n --track-width: 0px;\n --tab-gap: 3px;\n }\n\n .tab-group__indicator {\n position: absolute;\n transition: 0.3s translate ease, 0.3s width ease;\n }\n\n .tab-group__indicator__path{\n position: absolute;\n height: var(--track-width);\n width: 100%;\n background: var(--nile-
|
1
|
+
{"version":3,"file":"nile-tab-group.css.js","sourceRoot":"","sources":["../../../src/nile-tab-group/nile-tab-group.css.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8PxB,CAAC;AAEF,eAAe,CAAC,MAAM,CAAC,CAAC","sourcesContent":["/**\n * Copyright Aquera Inc 2023\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 { css } from 'lit';\n\n/**\n * TabGroup CSS\n */\nexport const styles = css`\n [hidden] {\n display: none !important;\n }\n\n :host {\n --indicator-color: var(--nile-colors-primary-600);\n --track-color: var(--nile-colors-neutral-400);\n --track-width: 2px;\n --tab-gap: 12px;\n\n display: block;\n }\n\n .tab-group {\n display: flex;\n border-radius: 0;\n }\n\n .tab-group__tabs {\n display: flex;\n position: relative;\n gap: var(--tab-gap);\n }\n\n .hide__track {\n --track-width: 0px;\n --tab-gap: 3px;\n }\n\n .tab-group__indicator {\n position: absolute;\n transition: 0.3s translate ease, 0.3s width ease;\n }\n\n .tab-group__indicator__path{\n position: absolute;\n height: var(--track-width);\n width: 100%;\n background: var(--nile-colors-neutral-400);\n bottom:0px;\n z-index:0;\n }\n\n .tab-group--has-scroll-controls .tab-group__nav-container {\n position: relative;\n padding: 0 10px;\n }\n\n .tab-group__body {\n display: block;\n overflow: auto;\n }\n\n .tab-group__scroll-button {\n display: flex;\n align-items: center;\n justify-content: center;\n position: absolute;\n top: 0;\n bottom: 0;\n width: 20px;\n }\n\n .tab-group__scroll-button--start {\n left: 0;\n }\n\n .tab-group__scroll-button--end {\n right: 0;\n }\n\n .tab-group--rtl .tab-group__scroll-button--start {\n left: auto;\n right: 0;\n }\n\n .tab-group--rtl .tab-group__scroll-button--end {\n left: 0;\n right: auto;\n }\n\n /*\n * Top\n */\n\n .tab-group--top {\n flex-direction: column;\n }\n\n .tab-group--top .tab-group__nav-container {\n order: 1;\n }\n\n .tab-group--top .tab-group__nav {\n display: flex;\n overflow-x: auto;\n\n /* Hide scrollbar in Firefox */\n scrollbar-width: none;\n }\n\n /* Hide scrollbar in Chrome/Safari */\n .tab-group--top .tab-group__nav::-webkit-scrollbar {\n width: 0;\n height: 0;\n }\n\n .tab-group--top .tab-group__tabs {\n flex: 1 1 auto;\n position: relative;\n flex-direction: row;\n }\n\n .tab-group--top .tab-group__indicator {\n bottom: 0px;\n border-bottom: 2px solid var(--nile-colors-primary-600);\n z-index:0;\n }\n\n .tab-group--top .tab-group__body {\n order: 2;\n }\n\n .tab-group--top ::slotted(nile-tab-panel) {\n --padding: 10px 0;\n }\n\n /*\n * Bottom\n */\n\n .tab-group--bottom {\n flex-direction: column;\n }\n\n .tab-group--bottom .tab-group__nav-container {\n order: 2;\n }\n\n .tab-group--bottom .tab-group__nav {\n display: flex;\n overflow-x: auto;\n\n /* Hide scrollbar in Firefox */\n scrollbar-width: none;\n }\n\n /* Hide scrollbar in Chrome/Safari */\n .tab-group--bottom .tab-group__nav::-webkit-scrollbar {\n width: 0;\n height: 0;\n }\n\n .tab-group--bottom .tab-group__tabs {\n flex: 1 1 auto;\n position: relative;\n flex-direction: row;\n border-top: solid var(--track-width) var(--track-color);\n }\n\n .tab-group--bottom .tab-group__indicator {\n top: calc(-1 * var(--track-width));\n border-top: solid var(--track-width) var(--indicator-color);\n }\n\n .tab-group--bottom .tab-group__body {\n order: 1;\n }\n\n .tab-group--bottom ::slotted(nile-tab-panel) {\n --padding: 10px 0;\n }\n\n /*\n * Start\n */\n\n .tab-group--start {\n flex-direction: row;\n }\n\n .tab-group--start .tab-group__nav-container {\n order: 1;\n }\n\n .tab-group--start .tab-group__tabs {\n flex: 0 0 auto;\n flex-direction: column;\n border-inline-end: solid var(--track-width) var(--track-color);\n }\n\n .tab-group--start .tab-group__indicator {\n right: calc(-1 * var(--track-width));\n border-right: solid var(--track-width) var(--indicator-color);\n }\n\n .tab-group--start.tab-group--rtl .tab-group__indicator {\n right: auto;\n left: calc(-1 * var(--track-width));\n }\n\n .tab-group--start .tab-group__body {\n flex: 1 1 auto;\n order: 2;\n }\n\n .tab-group--start ::slotted(nile-tab-panel) {\n --padding: 0 10px;\n }\n\n /*\n * End\n */\n\n .tab-group--end {\n flex-direction: row;\n }\n\n .tab-group--end .tab-group__nav-container {\n order: 2;\n }\n\n .tab-group--end .tab-group__tabs {\n flex: 0 0 auto;\n flex-direction: column;\n border-left: solid var(--track-width) var(--track-color);\n }\n\n .tab-group--end .tab-group__indicator {\n left: calc(-1 * var(--track-width));\n border-inline-start: solid var(--track-width) var(--indicator-color);\n }\n\n .tab-group--end.tab-group--rtl .tab-group__indicator {\n right: calc(-1 * var(--track-width));\n left: auto;\n }\n\n .tab-group--end .tab-group__body {\n flex: 1 1 auto;\n order: 1;\n }\n\n .tab-group--end ::slotted(nile-tab-panel) {\n --padding: 0 10px;\n }\n\n .hide__track slot::slotted(nile-tab) {\n --tab-border-radius: 4px;\n --tab-padding:8px 12px;\n --tab-hover-background-color: var(--nile-colors-neutral-100);\n --tab-active-background-color: var(--nile-colors-brand-50);\n }\n`;\n\nexport default [styles];\n"]}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"nile-tab-group.js","sourceRoot":"","sources":["../../../src/nile-tab-group/nile-tab-group.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Copyright Aquera Inc 2023\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-tab-group.css';\n\nimport '../nile-icon-button/nile-icon-button';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { query, state } from 'lit/decorators.js';\nimport { scrollIntoView } from '../internal/scroll';\nimport { watch } from '../internal/watch';\nimport NileElement from '../internal/nile-element';\nimport type { CSSResultGroup, PropertyValueMap } from 'lit';\nimport type NileTab from '../nile-tab/nile-tab';\nimport type NileTabPanel from '../nile-tab-panel/nile-tab-panel';\n\n/**\n * Nile icon component.\n *\n * @tag nile-tab-group\n *\n * @slot - Used for grouping tab panels in the tab group. Must be `<nile-tab-panel>` elements.\n * @slot nav - Used for grouping tabs in the tab group. Must be `<nile-tab>` elements.\n *\n * @event {{ name: String }} nile-tab-show - Emitted when a tab is shown.\n * @event {{ name: String }} nile-tab-hide - Emitted when a tab is hidden.\n *\n * @csspart base - The component's base wrapper.\n * @csspart nav - The tab group's navigation container where tabs are slotted in.\n * @csspart tabs - The container that wraps the tabs.\n * @csspart active-tab-indicator - The line that highlights the currently selected tab.\n * @csspart body - The tab group's body where tab panels are slotted in.\n * @csspart scroll-button - The previous/next scroll buttons that show when tabs are scrollable, an `<nile-icon-button>`.\n * @csspart scroll-button--start - The starting scroll button.\n * @csspart scroll-button--end - The ending scroll button.\n * @csspart scroll-button__base - The scroll button's exported `base` part.\n *\n * @cssproperty --indicator-color - The color of the active tab indicator.\n * @cssproperty --track-color - The color of the indicator's track (the line that separates tabs from panels).\n * @cssproperty --track-width - The width of the indicator's track (the line that separates tabs from panels).\n *\n */\n@customElement('nile-tab-group')\nexport class NileTabGroup extends NileElement {\n\n static styles: CSSResultGroup = styles;\n\n private activeTab?: NileTab;\n private mutationObserver: MutationObserver;\n private resizeObserver: ResizeObserver;\n private tabs: NileTab[] = [];\n private panels: NileTabPanel[] = [];\n\n @query('.tab-group') tabGroup: HTMLElement;\n @query('.tab-group__body') body: HTMLSlotElement;\n @query('.tab-group__nav') nav: HTMLElement;\n @query('.tab-group__indicator') indicator: HTMLElement;\n\n @state() hasScrollControls = false;\n\n /** The placement of the tabs. */\n @property() placement: 'top' | 'bottom' | 'start' | 'end' = 'top';\n\n /** The placement of the tabs. */\n @property({ reflect: true, attribute: 'value', type: String }) activeTabProp: string = '';\n\n /** Track for showing Indicators and Background. */\n @property({ type: Boolean, reflect: true, attribute:'no-track'}) noTrack = false;\n\n /**\n * When set to auto, navigating tabs with the arrow keys will instantly show the corresponding tab panel. When set to\n * manual, the tab will receive focus but will not show until the user presses spacebar or enter.\n */\n @property() activation: 'auto' | 'manual' = 'auto';\n\n /** Disables the scroll arrows that appear when tabs overflow. */\n @property({ attribute: 'no-scroll-controls', type: Boolean }) noScrollControls = false;\n\n /** Controls whether tabs are centered and have equal width */\n @property({ type: Boolean, reflect: true }) centered = false;\n\n @state() activeTabName: string = '';\n\n connectedCallback() {\n const whenAllDefined = Promise.allSettled([\n customElements.whenDefined('nile-tab'),\n customElements.whenDefined('nile-tab-panel')\n ]);\n\n super.connectedCallback();\n\n this.resizeObserver = new ResizeObserver(() => {\n this.repositionIndicator();\n // this.updateScrollControls();\n });\n\n this.mutationObserver = new MutationObserver(mutations => {\n // Update aria labels when the DOM changes\n if (mutations.some(m => !['aria-labelledby', 'aria-controls'].includes(m.attributeName!))) {\n setTimeout(() => this.setAriaLabels());\n }\n\n // Sync tabs when disabled states change\n if (mutations.some(m => m.attributeName === 'disabled')) {\n this.syncTabsAndPanels();\n }\n });\n\n // After the first update...\n this.updateComplete.then(() => {\n this.syncTabsAndPanels();\n if(this.activeTabProp) this.activeTabName=this.activeTabProp;\n else this.activeTabName=this.getActiveTab().panel;\n this.syncIndicator();\n\n this.mutationObserver.observe(this, { attributes: true, childList: true, subtree: true });\n this.resizeObserver.observe(this.nav);\n // Wait for tabs and tab panels to be registered\n whenAllDefined.then(() => {\n // Set initial tab state when the tabs become visible\n const intersectionObserver = new IntersectionObserver((entries, observer) => {\n if (entries[0].intersectionRatio > 0) {\n this.setAriaLabels();\n observer.unobserve(entries[0].target);\n }\n });\n intersectionObserver.observe(this.tabGroup);\n });\n });\n }\n\n disconnectedCallback() {\n this.mutationObserver.disconnect();\n this.resizeObserver.unobserve(this.nav);\n }\n \n protected firstUpdated(_changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>): void {\n this.addEventListener('nile-toggle-change', this.handleToggleFromTab);\n }\n\n protected updated(_changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>): void {\n if(_changedProperties.has('activeTabName')){\n const tab=this.getActiveTab()\n if(!tab) return;\n this.setActiveTab(tab, {scrollBehavior: 'smooth' });\n }\n if(_changedProperties.has('activeTabProp')){\n this.activeTabName=this.activeTabProp;\n }\n }\n\n // @watch('noScrollControls', { waitUntilFirstUpdate: true })\n // updateScrollControls() {\n // this.setScrollControls()\n // }\n\n @watch('placement', { waitUntilFirstUpdate: true })\n syncIndicator() {\n if(!this.indicator) return;\n const tab = this.getActiveTab();\n\n if (tab) {\n this.indicator.style.display = 'block';\n this.repositionIndicator();\n } else {\n this.indicator.style.display = 'none';\n }\n }\n \n render() {\n return html`\n <div\n part=\"base\"\n class=${classMap({\n 'tab-group': true,\n 'tab-group--top': this.placement === 'top',\n 'tab-group--bottom': this.placement === 'bottom',\n 'tab-group--start': this.placement === 'start',\n 'tab-group--end': this.placement === 'end',\n 'tab-group--rtl': true,\n 'tab-group--has-scroll-controls': this.hasScrollControls,\n 'hide__track':this.noTrack\n })}\n @click=${this.handleClick}\n @keydown=${this.handleKeyDown}\n >\n <div class=\"tab-group__nav-container\" part=\"nav\">\n ${this.hasScrollControls\n ? html`\n <nile-icon-button\n part=\"scroll-button scroll-button--start\"\n exportparts=\"base:scroll-button__base\"\n class=\"tab-group__scroll-button tab-group__scroll-button--start\"\n name='arrowright'\n library=\"system\"\n label=\"scrollToStart\"\n @click=${this.handleScrollToEnd}\n ></nile-icon-button>\n `\n : ''}\n\n <div class=\"tab-group__nav\">\n <div part=\"tabs\" class=\"tab-group__tabs\" role=\"tablist\">\n <div part=\"active-tab-indicator-path\" class=\"tab-group__indicator__path\"></div>\n <div\n part=\"active-tab-indicator\"\n class=${classMap({\n 'tab-group__indicator': !this.noTrack,\n })}\n ></div>\n\n <slot name=\"nav\" @slotchange=${this.syncTabsAndPanels}></slot>\n </div>\n </div>\n\n ${this.hasScrollControls\n ? html`\n <nile-icon-button\n part=\"scroll-button scroll-button--end\"\n exportparts=\"base:scroll-button__base\"\n class=\"tab-group__scroll-button tab-group__scroll-button--end\"\n name='arrowleft'\n library=\"system\"\n label=\"scrollToEnd\"\n @click=${this.handleScrollToStart}\n ></nile-icon-button>\n `\n : ''}\n </div>\n\n <slot part=\"body\" class=\"tab-group__body\" @slotchange=${this.syncTabsAndPanels}></slot>\n </div>\n `;\n }\n\n private getAllTabs(options: { includeDisabled: boolean } = { includeDisabled: true }) {\n const slot = this.shadowRoot!.querySelector<HTMLSlotElement>('slot[name=\"nav\"]')!;\n\n return [...(slot.assignedElements() as NileTab[])].filter(el => {\n return options.includeDisabled\n ? el.tagName.toLowerCase() === 'nile-tab'\n : el.tagName.toLowerCase() === 'nile-tab' && !el.disabled;\n });\n }\n\n private getAllPanels() {\n return [...this.body.assignedElements()].filter(el => el.tagName.toLowerCase() === 'nile-tab-panel') as [NileTabPanel];\n }\n\n private getActiveTab() {\n return this.tabs.find(el => this.activeTabName?el.panel==this.activeTabName:el.active) ?? this.tabs[0];\n }\n\n private handleClick(event: MouseEvent) {\n const target = event.target as HTMLElement;\n const tab = target.closest('nile-tab');\n const tabGroup = tab?.closest('nile-tab-group');\n\n // Ensure the target tab is in this tab group\n if (tabGroup !== this) {\n return;\n }\n\n if (tab !== null && !tab.disabled) {\n this.activeTabName=tab.panel\n }\n }\n\n setScrollControls(){\n if (this.noScrollControls) {\n this.hasScrollControls = false;\n } else {\n this.hasScrollControls = ['top', 'bottom'].includes(this.placement) && this.nav.scrollWidth > this.nav.clientWidth;\n }\n this.hasScrollControls = false;\n }\n\n private handleKeyDown(event: KeyboardEvent) {\n const target = event.target as HTMLElement;\n const tab = target.closest('nile-tab');\n const tabGroup = tab?.closest('nile-tab-group');\n\n // Ensure the target tab is in this tab group\n if (tabGroup !== this) {\n return;\n }\n\n // Activate a tab\n if (['Enter', ' '].includes(event.key)) {\n if (tab !== null) {\n this.activeTabName=tab.panel\n event.preventDefault();\n }\n }\n\n // Move focus left or right\n if (['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown', 'Home', 'End'].includes(event.key)) {\n const activeEl = tab;\n const isRtl = false;\n\n if (activeEl?.tagName.toLowerCase() === 'nile-tab') {\n let index = this.tabs.indexOf(activeEl);\n\n if (event.key === 'Home') {\n index = 0;\n } else if (event.key === 'End') {\n index = this.tabs.length - 1;\n } else if (\n (['top', 'bottom'].includes(this.placement) && event.key === (isRtl ? 'ArrowRight' : 'ArrowLeft')) ||\n (['start', 'end'].includes(this.placement) && event.key === 'ArrowUp')\n ) {\n index--;\n } else if (\n (['top', 'bottom'].includes(this.placement) && event.key === (isRtl ? 'ArrowLeft' : 'ArrowRight')) ||\n (['start', 'end'].includes(this.placement) && event.key === 'ArrowDown')\n ) {\n index++;\n }\n\n if (index < 0) {\n index = this.tabs.length - 1;\n }\n\n if (index > this.tabs.length - 1) {\n index = 0;\n }\n\n this.tabs[index].focus({ preventScroll: true });\n\n if (this.activation === 'auto') {\n this.activeTabName=this.tabs[index].panel\n }\n\n if (['top', 'bottom'].includes(this.placement)) {\n scrollIntoView(this.tabs[index], this.nav, 'horizontal');\n }\n\n event.preventDefault();\n }\n }\n }\n\n private handleScrollToStart() {\n this.nav.scroll({\n left:-this.nav.scrollWidth,\n behavior: 'smooth'\n });\n }\n\n private handleScrollToEnd() {\n this.nav.scroll({\n left:this.nav.scrollWidth,\n behavior: 'smooth'\n });\n }\n\n private setActiveTab(tab: NileTab, options?: { emitEvents?: boolean; scrollBehavior?: 'auto' | 'smooth' }) {\n options = {\n emitEvents: true,\n scrollBehavior: 'auto',\n ...options\n };\n\n if (tab !== this.activeTab && !tab.disabled) {\n\n const previousTab = this.activeTab;\n this.activeTab = tab;\n\n // Sync active tab and panel\n this.tabs.map(el => (el.active = el === this.activeTab));\n this.panels.map(el => (el.active = el.name === this.activeTab?.panel));\n this.syncIndicator();\n\n if (['top', 'bottom'].includes(this.placement)) {\n scrollIntoView(this.activeTab, this.nav, 'horizontal', options.scrollBehavior);\n }\n\n // Emit events\n if (options.emitEvents) {\n if (previousTab) {\n this.emit('nile-tab-hide', { value: previousTab.panel });\n }\n\n this.emit('nile-tab-show', { value: this.activeTab.panel });\n }\n }\n }\n\n private setAriaLabels() {\n // Link each tab with its corresponding panel\n this.tabs.forEach(tab => {\n const panel = this.panels.find(el => el.name === tab.panel);\n if (panel) {\n tab.setAttribute('aria-controls', panel.getAttribute('id')!);\n panel.setAttribute('aria-labelledby', tab.getAttribute('id')!);\n }\n });\n }\n\n private repositionIndicator() {\n const currentTab = this.getActiveTab();\n\n if (!currentTab || !this.indicator) {\n return;\n }\n\n const width = currentTab.clientWidth;\n const height = currentTab.clientHeight;\n const isRtl = false;\n\n // We can't used offsetLeft/offsetTop here due to a shadow parent issue where neither can getBoundingClientRect\n // because it provides invalid values for animating elements: https://bugs.chromium.org/p/chromium/issues/detail?id=920069\n const allTabs = this.getAllTabs();\n const precedingTabs = allTabs.slice(0, allTabs.indexOf(currentTab));\n const offset = precedingTabs.reduce(\n (previous, current) => ({\n left: previous.left + current.clientWidth + 12,\n top: previous.top + current.clientHeight + 12\n }),\n { left: 0, top: 0 }\n );\n\n switch (this.placement) {\n case 'top':\n case 'bottom':\n this.indicator.style.width = `${width - 5}px`;\n this.indicator.style.height = 'auto';\n this.indicator.style.translate = `${offset.left + 2}px`;\n break;\n\n case 'start':\n case 'end':\n this.indicator.style.width = 'auto';\n this.indicator.style.height = `${height}px`;\n this.indicator.style.translate = `0 ${offset.top}px`;\n break;\n }\n }\n\n // This stores tabs and panels so we can refer to a cache instead of calling querySelectorAll() multiple times.\n private syncTabsAndPanels() {\n this.tabs = this.getAllTabs({ includeDisabled: false });\n this.panels = this.getAllPanels();\n\n this.tabs.forEach((tab:any) => {\n tab.centered = this.centered;\n });\n\n // After updating, show or hide scroll controls as needed\n // this.updateComplete.then(() => this.updateScrollControls());\n }\n \n private handleToggleFromTab(e:CustomEvent){\n e.stopPropagation();\n this.activeTabName=e.detail.value;\n }\n\n}\n\nexport default NileTabGroup;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-tab-group': NileTabGroup;\n }\n}\n"]}
|
1
|
+
{"version":3,"file":"nile-tab-group.js","sourceRoot":"","sources":["../../../src/nile-tab-group/nile-tab-group.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Copyright Aquera Inc 2023\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, nothing} from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport {styles} from './nile-tab-group.css';\n\nimport '../nile-icon-button/nile-icon-button';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { query, state } from 'lit/decorators.js';\nimport { scrollIntoView } from '../internal/scroll';\nimport { watch } from '../internal/watch';\nimport NileElement from '../internal/nile-element';\nimport type { CSSResultGroup, PropertyValueMap } from 'lit';\nimport type NileTab from '../nile-tab/nile-tab';\nimport type NileTabPanel from '../nile-tab-panel/nile-tab-panel';\n\n/**\n * Nile icon component.\n *\n * @tag nile-tab-group\n *\n * @slot - Used for grouping tab panels in the tab group. Must be `<nile-tab-panel>` elements.\n * @slot nav - Used for grouping tabs in the tab group. Must be `<nile-tab>` elements.\n *\n * @event {{ name: String }} nile-tab-show - Emitted when a tab is shown.\n * @event {{ name: String }} nile-tab-hide - Emitted when a tab is hidden.\n *\n * @csspart base - The component's base wrapper.\n * @csspart nav - The tab group's navigation container where tabs are slotted in.\n * @csspart tabs - The container that wraps the tabs.\n * @csspart active-tab-indicator - The line that highlights the currently selected tab.\n * @csspart body - The tab group's body where tab panels are slotted in.\n * @csspart scroll-button - The previous/next scroll buttons that show when tabs are scrollable, an `<nile-icon-button>`.\n * @csspart scroll-button--start - The starting scroll button.\n * @csspart scroll-button--end - The ending scroll button.\n * @csspart scroll-button__base - The scroll button's exported `base` part.\n *\n * @cssproperty --indicator-color - The color of the active tab indicator.\n * @cssproperty --track-color - The color of the indicator's track (the line that separates tabs from panels).\n * @cssproperty --track-width - The width of the indicator's track (the line that separates tabs from panels).\n *\n */\n@customElement('nile-tab-group')\nexport class NileTabGroup extends NileElement {\n\n static styles: CSSResultGroup = styles;\n\n private activeTab?: NileTab;\n private mutationObserver: MutationObserver;\n private resizeObserver: ResizeObserver;\n private tabs: NileTab[] = [];\n private panels: NileTabPanel[] = [];\n\n @query('.tab-group') tabGroup: HTMLElement;\n @query('.tab-group__body') body: HTMLSlotElement;\n @query('.tab-group__nav') nav: HTMLElement;\n @query('.tab-group__indicator') indicator: HTMLElement;\n\n @state() hasScrollControls = false;\n\n /** The placement of the tabs. */\n @property() placement: 'top' | 'bottom' | 'start' | 'end' = 'top';\n\n /** The placement of the tabs. */\n @property({ reflect: true, attribute: 'value', type: String }) activeTabProp: string = '';\n\n /** Track for showing Indicators and Background. */\n @property({ type: Boolean, reflect: true, attribute:'no-track'}) noTrack = false;\n\n /**\n * When set to auto, navigating tabs with the arrow keys will instantly show the corresponding tab panel. When set to\n * manual, the tab will receive focus but will not show until the user presses spacebar or enter.\n */\n @property() activation: 'auto' | 'manual' = 'auto';\n\n /** Disables the scroll arrows that appear when tabs overflow. */\n @property({ attribute: 'no-scroll-controls', type: Boolean }) noScrollControls = false;\n\n /** Controls whether tabs are centered and have equal width */\n @property({ type: Boolean, reflect: true }) centered = false;\n\n @state() activeTabName: string = '';\n\n connectedCallback() {\n const whenAllDefined = Promise.allSettled([\n customElements.whenDefined('nile-tab'),\n customElements.whenDefined('nile-tab-panel')\n ]);\n\n super.connectedCallback();\n\n this.resizeObserver = new ResizeObserver(() => {\n this.repositionIndicator();\n // this.updateScrollControls();\n });\n\n this.mutationObserver = new MutationObserver(mutations => {\n // Update aria labels when the DOM changes\n if (mutations.some(m => !['aria-labelledby', 'aria-controls'].includes(m.attributeName!))) {\n setTimeout(() => this.setAriaLabels());\n }\n\n // Sync tabs when disabled states change\n if (mutations.some(m => m.attributeName === 'disabled')) {\n this.syncTabsAndPanels();\n }\n });\n\n // After the first update...\n this.updateComplete.then(() => {\n this.syncTabsAndPanels();\n if(this.activeTabProp) this.activeTabName=this.activeTabProp;\n else this.activeTabName=this.getActiveTab().panel;\n this.syncIndicator();\n\n this.mutationObserver.observe(this, { attributes: true, childList: true, subtree: true });\n this.resizeObserver.observe(this.nav);\n // Wait for tabs and tab panels to be registered\n whenAllDefined.then(() => {\n // Set initial tab state when the tabs become visible\n const intersectionObserver = new IntersectionObserver((entries, observer) => {\n if (entries[0].intersectionRatio > 0) {\n this.setAriaLabels();\n observer.unobserve(entries[0].target);\n }\n });\n intersectionObserver.observe(this.tabGroup);\n });\n });\n }\n\n disconnectedCallback() {\n this.mutationObserver.disconnect();\n this.resizeObserver.unobserve(this.nav);\n }\n \n protected firstUpdated(_changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>): void {\n this.addEventListener('nile-toggle-change', this.handleToggleFromTab);\n }\n\n protected updated(_changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>): void {\n if(_changedProperties.has('activeTabName')){\n const tab=this.getActiveTab()\n if(!tab) return;\n this.setActiveTab(tab, {scrollBehavior: 'smooth' });\n }\n if(_changedProperties.has('activeTabProp')){\n this.activeTabName=this.activeTabProp;\n }\n }\n\n // @watch('noScrollControls', { waitUntilFirstUpdate: true })\n // updateScrollControls() {\n // this.setScrollControls()\n // }\n\n @watch('placement', { waitUntilFirstUpdate: true })\n syncIndicator() {\n if(!this.indicator) return;\n const tab = this.getActiveTab();\n\n if (tab) {\n this.indicator.style.display = 'block';\n this.repositionIndicator();\n } else {\n this.indicator.style.display = 'none';\n }\n }\n \n render() {\n return html`\n <div\n part=\"base\"\n class=${classMap({\n 'tab-group': true,\n 'tab-group--top': this.placement === 'top',\n 'tab-group--bottom': this.placement === 'bottom',\n 'tab-group--start': this.placement === 'start',\n 'tab-group--end': this.placement === 'end',\n 'tab-group--rtl': true,\n 'tab-group--has-scroll-controls': this.hasScrollControls,\n 'hide__track':this.noTrack\n })}\n @click=${this.handleClick}\n @keydown=${this.handleKeyDown}\n >\n <div class=\"tab-group__nav-container\" part=\"nav\">\n ${this.hasScrollControls\n ? html`\n <nile-icon-button\n part=\"scroll-button scroll-button--start\"\n exportparts=\"base:scroll-button__base\"\n class=\"tab-group__scroll-button tab-group__scroll-button--start\"\n name='arrowright'\n library=\"system\"\n label=\"scrollToStart\"\n @click=${this.handleScrollToEnd}\n ></nile-icon-button>\n `\n : ''}\n\n <div class=\"tab-group__nav\">\n <div part=\"tabs\" class=\"tab-group__tabs\" role=\"tablist\">\n <div part=\"active-tab-indicator-path\" class=\"tab-group__indicator__path\"></div>\n <div\n part=\"active-tab-indicator\"\n class=${classMap({\n 'tab-group__indicator': !this.noTrack,\n })}\n ></div>\n\n <slot name=\"nav\" @slotchange=${this.syncTabsAndPanels}></slot>\n </div>\n </div>\n\n ${this.hasScrollControls\n ? html`\n <nile-icon-button\n part=\"scroll-button scroll-button--end\"\n exportparts=\"base:scroll-button__base\"\n class=\"tab-group__scroll-button tab-group__scroll-button--end\"\n name='arrowleft'\n library=\"system\"\n label=\"scrollToEnd\"\n @click=${this.handleScrollToStart}\n ></nile-icon-button>\n `\n : ''}\n </div>\n\n <slot part=\"body\" class=\"tab-group__body\" @slotchange=${this.syncTabsAndPanels}></slot>\n </div>\n `;\n }\n\n private getAllTabs(options: { includeDisabled: boolean } = { includeDisabled: true }) {\n const slot = this.shadowRoot!.querySelector<HTMLSlotElement>('slot[name=\"nav\"]')!;\n\n return [...(slot.assignedElements() as NileTab[])].filter(el => {\n return options.includeDisabled\n ? el.tagName.toLowerCase() === 'nile-tab'\n : el.tagName.toLowerCase() === 'nile-tab' && !el.disabled;\n });\n }\n\n private getAllPanels() {\n return [...this.body.assignedElements()].filter(el => el.tagName.toLowerCase() === 'nile-tab-panel') as [NileTabPanel];\n }\n\n private getActiveTab() {\n return this.tabs.find(el => this.activeTabName?el.panel==this.activeTabName:el.active) ?? this.tabs[0];\n }\n\n private handleClick(event: MouseEvent) {\n const target = event.target as HTMLElement;\n const tab = target.closest('nile-tab');\n const tabGroup = tab?.closest('nile-tab-group');\n\n // Ensure the target tab is in this tab group\n if (tabGroup !== this) {\n return;\n }\n\n if (tab !== null && !tab.disabled) {\n this.activeTabName=tab.panel\n }\n }\n\n setScrollControls(){\n if (this.noScrollControls) {\n this.hasScrollControls = false;\n } else {\n this.hasScrollControls = ['top', 'bottom'].includes(this.placement) && this.nav.scrollWidth > this.nav.clientWidth;\n }\n this.hasScrollControls = false;\n }\n\n private handleKeyDown(event: KeyboardEvent) {\n const target = event.target as HTMLElement;\n const tab = target.closest('nile-tab');\n const tabGroup = tab?.closest('nile-tab-group');\n\n // Ensure the target tab is in this tab group\n if (tabGroup !== this) {\n return;\n }\n\n // Activate a tab\n if (['Enter', ' '].includes(event.key)) {\n if (tab !== null) {\n this.activeTabName=tab.panel\n event.preventDefault();\n }\n }\n\n // Move focus left or right\n if (['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown', 'Home', 'End'].includes(event.key)) {\n const activeEl = tab;\n const isRtl = false;\n\n if (activeEl?.tagName.toLowerCase() === 'nile-tab') {\n let index = this.tabs.indexOf(activeEl);\n\n if (event.key === 'Home') {\n index = 0;\n } else if (event.key === 'End') {\n index = this.tabs.length - 1;\n } else if (\n (['top', 'bottom'].includes(this.placement) && event.key === (isRtl ? 'ArrowRight' : 'ArrowLeft')) ||\n (['start', 'end'].includes(this.placement) && event.key === 'ArrowUp')\n ) {\n index--;\n } else if (\n (['top', 'bottom'].includes(this.placement) && event.key === (isRtl ? 'ArrowLeft' : 'ArrowRight')) ||\n (['start', 'end'].includes(this.placement) && event.key === 'ArrowDown')\n ) {\n index++;\n }\n\n if (index < 0) {\n index = this.tabs.length - 1;\n }\n\n if (index > this.tabs.length - 1) {\n index = 0;\n }\n\n this.tabs[index].focus({ preventScroll: true });\n\n if (this.activation === 'auto') {\n this.activeTabName=this.tabs[index].panel\n }\n\n if (['top', 'bottom'].includes(this.placement)) {\n scrollIntoView(this.tabs[index], this.nav, 'horizontal');\n }\n\n event.preventDefault();\n }\n }\n }\n\n private handleScrollToStart() {\n this.nav.scroll({\n left:-this.nav.scrollWidth,\n behavior: 'smooth'\n });\n }\n\n private handleScrollToEnd() {\n this.nav.scroll({\n left:this.nav.scrollWidth,\n behavior: 'smooth'\n });\n }\n\n private setActiveTab(tab: NileTab, options?: { emitEvents?: boolean; scrollBehavior?: 'auto' | 'smooth' }) {\n options = {\n emitEvents: true,\n scrollBehavior: 'auto',\n ...options\n };\n\n if (tab !== this.activeTab && !tab.disabled) {\n\n const previousTab = this.activeTab;\n this.activeTab = tab;\n\n // Sync active tab and panel\n this.tabs.map(el => (el.active = el === this.activeTab));\n this.panels.map(el => (el.active = el.name === this.activeTab?.panel));\n this.syncIndicator();\n\n if (['top', 'bottom'].includes(this.placement)) {\n scrollIntoView(this.activeTab, this.nav, 'horizontal', options.scrollBehavior);\n }\n\n // Emit events\n if (options.emitEvents) {\n if (previousTab) {\n this.emit('nile-tab-hide', { value: previousTab.panel });\n }\n\n this.emit('nile-tab-show', { value: this.activeTab.panel });\n }\n }\n }\n\n private setAriaLabels() {\n // Link each tab with its corresponding panel\n this.tabs.forEach(tab => {\n const panel = this.panels.find(el => el.name === tab.panel);\n if (panel) {\n tab.setAttribute('aria-controls', panel.getAttribute('id')!);\n panel.setAttribute('aria-labelledby', tab.getAttribute('id')!);\n }\n });\n }\n\n private repositionIndicator() {\n const currentTab = this.getActiveTab();\n\n if (!currentTab || !this.indicator) {\n return;\n }\n\n const width = currentTab.clientWidth;\n const height = currentTab.clientHeight;\n const isRtl = false;\n\n // We can't used offsetLeft/offsetTop here due to a shadow parent issue where neither can getBoundingClientRect\n // because it provides invalid values for animating elements: https://bugs.chromium.org/p/chromium/issues/detail?id=920069\n const allTabs = this.getAllTabs();\n const precedingTabs = allTabs.slice(0, allTabs.indexOf(currentTab));\n const offset = precedingTabs.reduce(\n (previous, current) => ({\n left: previous.left + current.clientWidth + 12,\n top: previous.top + current.clientHeight + 12\n }),\n { left: 0, top: 0 }\n );\n\n switch (this.placement) {\n case 'top':\n case 'bottom':\n this.indicator.style.width = `${width - 5}px`;\n this.indicator.style.height = 'auto';\n this.indicator.style.translate = `${offset.left + 2}px`;\n break;\n\n case 'start':\n case 'end':\n this.indicator.style.width = 'auto';\n this.indicator.style.height = `${height}px`;\n this.indicator.style.translate = `0 ${offset.top}px`;\n break;\n }\n }\n\n // This stores tabs and panels so we can refer to a cache instead of calling querySelectorAll() multiple times.\n private syncTabsAndPanels() {\n this.tabs = this.getAllTabs({ includeDisabled: false });\n this.panels = this.getAllPanels();\n\n this.tabs.forEach((tab:any) => {\n tab.centered = this.centered;\n });\n\n // After updating, show or hide scroll controls as needed\n // this.updateComplete.then(() => this.updateScrollControls());\n }\n \n private handleToggleFromTab(e:CustomEvent){\n e.stopPropagation();\n this.activeTabName=e.detail.value;\n }\n\n}\n\nexport default NileTabGroup;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-tab-group': NileTabGroup;\n }\n}\n"]}
|