@spectrum-web-components/tabs 1.3.1-beta.0 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -954,7 +954,7 @@
954
954
  },
955
955
  {
956
956
  "kind": "field",
957
- "name": "scrollContent",
957
+ "name": "tabs",
958
958
  "type": {
959
959
  "text": "Tabs[]"
960
960
  },
@@ -976,6 +976,15 @@
976
976
  },
977
977
  "default": "new ResizeController(this, {\n target: this,\n callback: (): void => {\n this._updateScrollState();\n },\n })"
978
978
  },
979
+ {
980
+ "kind": "field",
981
+ "name": "scrollContent",
982
+ "type": {
983
+ "text": "Tabs[]"
984
+ },
985
+ "privacy": "protected",
986
+ "readonly": true
987
+ },
979
988
  {
980
989
  "kind": "method",
981
990
  "name": "_handleSlotChange",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@spectrum-web-components/tabs",
3
- "version": "1.3.1-beta.0",
3
+ "version": "1.4.0",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -88,11 +88,11 @@
88
88
  ],
89
89
  "dependencies": {
90
90
  "@lit-labs/observers": "^2.0.2",
91
- "@spectrum-web-components/base": "1.3.1-beta.0",
92
- "@spectrum-web-components/icon": "1.3.1-beta.0",
93
- "@spectrum-web-components/icons-ui": "1.3.1-beta.0",
94
- "@spectrum-web-components/reactive-controllers": "1.3.1-beta.0",
95
- "@spectrum-web-components/shared": "1.3.1-beta.0"
91
+ "@spectrum-web-components/base": "1.4.0",
92
+ "@spectrum-web-components/icon": "1.4.0",
93
+ "@spectrum-web-components/icons-ui": "1.4.0",
94
+ "@spectrum-web-components/reactive-controllers": "1.4.0",
95
+ "@spectrum-web-components/shared": "1.4.0"
96
96
  },
97
97
  "devDependencies": {
98
98
  "@spectrum-css/tabs": "6.0.0-s2-foundations.16"
@@ -1,5 +1,6 @@
1
1
  import { CSSResultArray, PropertyValueMap, PropertyValues, SpectrumElement, TemplateResult } from '@spectrum-web-components/base';
2
2
  import { ResizeController } from '@lit-labs/observers/resize-controller.js';
3
+ import { Tabs } from './Tabs.js';
3
4
  import '@spectrum-web-components/action-button/sp-action-button.js';
4
5
  import '@spectrum-web-components/icons-ui/icons/sp-icon-chevron100.js';
5
6
  declare const TabsOverflow_base: typeof SpectrumElement & {
@@ -16,9 +17,10 @@ export declare class TabsOverflow extends TabsOverflow_base {
16
17
  labelNext: string;
17
18
  dir: 'ltr' | 'rtl';
18
19
  private overflowState;
19
- private scrollContent;
20
+ private tabs;
20
21
  private overflowContainer;
21
22
  resizeController: ResizeController;
23
+ protected get scrollContent(): Tabs[];
22
24
  constructor();
23
25
  protected firstUpdated(changes: PropertyValues): void;
24
26
  private _handleSlotChange;
@@ -48,6 +48,9 @@ export class TabsOverflow extends SizedMixin(SpectrumElement) {
48
48
  static get styles() {
49
49
  return [styles, tabSizes, chevronIconStyles];
50
50
  }
51
+ get scrollContent() {
52
+ return this.tabs;
53
+ }
51
54
  firstUpdated(changes) {
52
55
  super.firstUpdated(changes);
53
56
  const [tabs] = this.scrollContent;
@@ -157,7 +160,7 @@ __decorateClass([
157
160
  ], TabsOverflow.prototype, "overflowState", 2);
158
161
  __decorateClass([
159
162
  queryAssignedElements({ selector: "sp-tabs", flatten: true })
160
- ], TabsOverflow.prototype, "scrollContent", 2);
163
+ ], TabsOverflow.prototype, "tabs", 2);
161
164
  __decorateClass([
162
165
  query(".tabs-overflow-container")
163
166
  ], TabsOverflow.prototype, "overflowContainer", 2);
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["TabsOverflow.ts"],
4
- "sourcesContent": ["/*\nCopyright 2022 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\nimport {\n CSSResultArray,\n html,\n PropertyValueMap,\n PropertyValues,\n SizedMixin,\n SpectrumElement,\n TemplateResult,\n} from '@spectrum-web-components/base';\nimport {\n property,\n query,\n queryAssignedElements,\n state,\n} from '@spectrum-web-components/base/src/decorators.js';\nimport { classMap } from '@spectrum-web-components/base/src/directives.js';\nimport { ResizeController } from '@lit-labs/observers/resize-controller.js';\nimport { Tabs } from './Tabs.dev.js'\nimport '@spectrum-web-components/action-button/sp-action-button.js';\nimport '@spectrum-web-components/icons-ui/icons/sp-icon-chevron100.js';\nimport chevronIconStyles from '@spectrum-web-components/icon/src/spectrum-icon-chevron.css.js';\nimport tabSizes from './tabs-sizes.css.js';\nimport styles from './tabs-overflow.css.js';\n\ninterface TabsOverflowState {\n canScrollLeft: boolean;\n canScrollRight: boolean;\n}\n/**\n * @element sp-tabs-overflow\n */\nexport class TabsOverflow extends SizedMixin(SpectrumElement) {\n public static override get styles(): CSSResultArray {\n return [styles, tabSizes, chevronIconStyles];\n }\n\n @property({ type: Boolean, reflect: true })\n public compact = false;\n\n @property({ type: String, attribute: 'label-previous' })\n public labelPrevious = 'Scroll to previous tabs';\n\n @property({ type: String, attribute: 'label-next' })\n public labelNext = 'Scroll to next tabs';\n\n @property({ reflect: true })\n public override dir!: 'ltr' | 'rtl';\n\n @state()\n private overflowState: TabsOverflowState = {\n canScrollLeft: false,\n canScrollRight: false,\n };\n\n @queryAssignedElements({ selector: 'sp-tabs', flatten: true })\n private scrollContent!: Tabs[];\n\n @query('.tabs-overflow-container')\n private overflowContainer!: HTMLDivElement;\n\n resizeController!: ResizeController;\n\n public constructor() {\n super();\n this.resizeController = new ResizeController(this, {\n target: this,\n callback: (): void => {\n this._updateScrollState();\n },\n });\n }\n\n protected override firstUpdated(changes: PropertyValues): void {\n super.firstUpdated(changes);\n // enable scroll event\n const [tabs] = this.scrollContent;\n if (tabs) {\n tabs.enableTabsScroll = true;\n }\n this.resizeController.observe(this.overflowContainer);\n }\n\n private async _handleSlotChange(): Promise<void> {\n const [tabsElement] = this.scrollContent;\n await tabsElement?.updateComplete;\n this._updateScrollState();\n }\n\n private _updateScrollState(): void {\n const { scrollContent, overflowState } = this;\n\n if (scrollContent) {\n const [tabsElement] = this.scrollContent;\n const { canScrollLeft, canScrollRight } =\n tabsElement?.scrollState || {\n canScrollLeft: false,\n canScrollRight: false,\n };\n\n this.overflowState = {\n ...overflowState,\n canScrollLeft,\n canScrollRight,\n };\n }\n }\n\n private scrollFactor = 0.5;\n private _handleScrollClick(event: MouseEvent): void {\n const currentTarget = event.currentTarget as HTMLElement;\n const [tabsElement] = this.scrollContent;\n\n const dist = tabsElement.clientWidth * this.scrollFactor;\n const left = currentTarget.classList.contains('left-scroll')\n ? -dist\n : dist;\n tabsElement.scrollTabs(left, 'smooth');\n }\n\n protected override updated(\n changedProperties: PropertyValueMap<this>\n ): void {\n super.updated(changedProperties);\n if (changedProperties.has('dir')) {\n this._updateScrollState();\n }\n }\n\n protected override render(): TemplateResult {\n const { canScrollRight, canScrollLeft } = this.overflowState;\n const ariaLabelPrevious = this.labelPrevious;\n const ariaLabelNext = this.labelNext;\n return html`\n <div\n class=${classMap({\n 'tabs-overflow-container': true,\n 'left-shadow': canScrollLeft,\n 'right-shadow': canScrollRight,\n })}\n >\n <sp-action-button\n class=${classMap({\n 'left-scroll': true,\n show: canScrollLeft,\n })}\n aria-label=${ariaLabelPrevious}\n quiet\n dir=\"rtl\"\n tabindex=\"-1\"\n @click=${this._handleScrollClick}\n >\n <sp-icon-chevron100\n slot=\"icon\"\n class=\"spectrum-UIIcon-ChevronLeft300\"\n ></sp-icon-chevron100>\n </sp-action-button>\n <sp-action-button\n class=${classMap({\n 'right-scroll': true,\n show: canScrollRight,\n })}\n aria-label=${ariaLabelNext}\n quiet\n tabindex=\"-1\"\n @click=${this._handleScrollClick}\n >\n <sp-icon-chevron100\n slot=\"icon\"\n class=\"spectrum-UIIcon-ChevronRight300\"\n ></sp-icon-chevron100>\n </sp-action-button>\n <slot\n @slotchange=${this._handleSlotChange}\n @sp-tabs-scroll=${this._updateScrollState}\n ></slot>\n </div>\n `;\n }\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/*\nCopyright 2022 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\nimport {\n CSSResultArray,\n html,\n PropertyValueMap,\n PropertyValues,\n SizedMixin,\n SpectrumElement,\n TemplateResult,\n} from '@spectrum-web-components/base';\nimport {\n property,\n query,\n queryAssignedElements,\n state,\n} from '@spectrum-web-components/base/src/decorators.js';\nimport { classMap } from '@spectrum-web-components/base/src/directives.js';\nimport { ResizeController } from '@lit-labs/observers/resize-controller.js';\nimport { Tabs } from './Tabs.dev.js'\nimport '@spectrum-web-components/action-button/sp-action-button.js';\nimport '@spectrum-web-components/icons-ui/icons/sp-icon-chevron100.js';\nimport chevronIconStyles from '@spectrum-web-components/icon/src/spectrum-icon-chevron.css.js';\nimport tabSizes from './tabs-sizes.css.js';\nimport styles from './tabs-overflow.css.js';\n\ninterface TabsOverflowState {\n canScrollLeft: boolean;\n canScrollRight: boolean;\n}\n/**\n * @element sp-tabs-overflow\n */\nexport class TabsOverflow extends SizedMixin(SpectrumElement) {\n public static override get styles(): CSSResultArray {\n return [styles, tabSizes, chevronIconStyles];\n }\n\n @property({ type: Boolean, reflect: true })\n public compact = false;\n\n @property({ type: String, attribute: 'label-previous' })\n public labelPrevious = 'Scroll to previous tabs';\n\n @property({ type: String, attribute: 'label-next' })\n public labelNext = 'Scroll to next tabs';\n\n @property({ reflect: true })\n public override dir!: 'ltr' | 'rtl';\n\n @state()\n private overflowState: TabsOverflowState = {\n canScrollLeft: false,\n canScrollRight: false,\n };\n\n @queryAssignedElements({ selector: 'sp-tabs', flatten: true })\n private tabs!: Tabs[];\n\n @query('.tabs-overflow-container')\n private overflowContainer!: HTMLDivElement;\n\n resizeController!: ResizeController;\n\n protected get scrollContent(): Tabs[] {\n return this.tabs;\n }\n\n public constructor() {\n super();\n this.resizeController = new ResizeController(this, {\n target: this,\n callback: (): void => {\n this._updateScrollState();\n },\n });\n }\n\n protected override firstUpdated(changes: PropertyValues): void {\n super.firstUpdated(changes);\n // enable scroll event\n const [tabs] = this.scrollContent;\n if (tabs) {\n tabs.enableTabsScroll = true;\n }\n this.resizeController.observe(this.overflowContainer);\n }\n\n private async _handleSlotChange(): Promise<void> {\n const [tabsElement] = this.scrollContent;\n await tabsElement?.updateComplete;\n this._updateScrollState();\n }\n\n private _updateScrollState(): void {\n const { scrollContent, overflowState } = this;\n\n if (scrollContent) {\n const [tabsElement] = this.scrollContent;\n const { canScrollLeft, canScrollRight } =\n tabsElement?.scrollState || {\n canScrollLeft: false,\n canScrollRight: false,\n };\n\n this.overflowState = {\n ...overflowState,\n canScrollLeft,\n canScrollRight,\n };\n }\n }\n\n private scrollFactor = 0.5;\n private _handleScrollClick(event: MouseEvent): void {\n const currentTarget = event.currentTarget as HTMLElement;\n const [tabsElement] = this.scrollContent;\n\n const dist = tabsElement.clientWidth * this.scrollFactor;\n const left = currentTarget.classList.contains('left-scroll')\n ? -dist\n : dist;\n tabsElement.scrollTabs(left, 'smooth');\n }\n\n protected override updated(\n changedProperties: PropertyValueMap<this>\n ): void {\n super.updated(changedProperties);\n if (changedProperties.has('dir')) {\n this._updateScrollState();\n }\n }\n\n protected override render(): TemplateResult {\n const { canScrollRight, canScrollLeft } = this.overflowState;\n const ariaLabelPrevious = this.labelPrevious;\n const ariaLabelNext = this.labelNext;\n return html`\n <div\n class=${classMap({\n 'tabs-overflow-container': true,\n 'left-shadow': canScrollLeft,\n 'right-shadow': canScrollRight,\n })}\n >\n <sp-action-button\n class=${classMap({\n 'left-scroll': true,\n show: canScrollLeft,\n })}\n aria-label=${ariaLabelPrevious}\n quiet\n dir=\"rtl\"\n tabindex=\"-1\"\n @click=${this._handleScrollClick}\n >\n <sp-icon-chevron100\n slot=\"icon\"\n class=\"spectrum-UIIcon-ChevronLeft300\"\n ></sp-icon-chevron100>\n </sp-action-button>\n <sp-action-button\n class=${classMap({\n 'right-scroll': true,\n show: canScrollRight,\n })}\n aria-label=${ariaLabelNext}\n quiet\n tabindex=\"-1\"\n @click=${this._handleScrollClick}\n >\n <sp-icon-chevron100\n slot=\"icon\"\n class=\"spectrum-UIIcon-ChevronRight300\"\n ></sp-icon-chevron100>\n </sp-action-button>\n <slot\n @slotchange=${this._handleSlotChange}\n @sp-tabs-scroll=${this._updateScrollState}\n ></slot>\n </div>\n `;\n }\n}\n"],
5
+ "mappings": ";;;;;;;;;;;AAWA;AAAA,EAEI;AAAA,EAGA;AAAA,EACA;AAAA,OAEG;AACP;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACG;AACP,SAAS,gBAAgB;AACzB,SAAS,wBAAwB;AAEjC,OAAO;AACP,OAAO;AACP,OAAO,uBAAuB;AAC9B,OAAO,cAAc;AACrB,OAAO,YAAY;AASZ,aAAM,qBAAqB,WAAW,eAAe,EAAE;AAAA,EAmCnD,cAAc;AACjB,UAAM;AA9BV,SAAO,UAAU;AAGjB,SAAO,gBAAgB;AAGvB,SAAO,YAAY;AAMnB,SAAQ,gBAAmC;AAAA,MACvC,eAAe;AAAA,MACf,gBAAgB;AAAA,IACpB;AA2DA,SAAQ,eAAe;AA3CnB,SAAK,mBAAmB,IAAI,iBAAiB,MAAM;AAAA,MAC/C,QAAQ;AAAA,MACR,UAAU,MAAY;AAClB,aAAK,mBAAmB;AAAA,MAC5B;AAAA,IACJ,CAAC;AAAA,EACL;AAAA,EA1CA,WAA2B,SAAyB;AAChD,WAAO,CAAC,QAAQ,UAAU,iBAAiB;AAAA,EAC/C;AAAA,EA4BA,IAAc,gBAAwB;AAClC,WAAO,KAAK;AAAA,EAChB;AAAA,EAYmB,aAAa,SAA+B;AAC3D,UAAM,aAAa,OAAO;AAE1B,UAAM,CAAC,IAAI,IAAI,KAAK;AACpB,QAAI,MAAM;AACN,WAAK,mBAAmB;AAAA,IAC5B;AACA,SAAK,iBAAiB,QAAQ,KAAK,iBAAiB;AAAA,EACxD;AAAA,EAEA,MAAc,oBAAmC;AAC7C,UAAM,CAAC,WAAW,IAAI,KAAK;AAC3B,WAAM,2CAAa;AACnB,SAAK,mBAAmB;AAAA,EAC5B;AAAA,EAEQ,qBAA2B;AAC/B,UAAM,EAAE,eAAe,cAAc,IAAI;AAEzC,QAAI,eAAe;AACf,YAAM,CAAC,WAAW,IAAI,KAAK;AAC3B,YAAM,EAAE,eAAe,eAAe,KAClC,2CAAa,gBAAe;AAAA,QACxB,eAAe;AAAA,QACf,gBAAgB;AAAA,MACpB;AAEJ,WAAK,gBAAgB;AAAA,QACjB,GAAG;AAAA,QACH;AAAA,QACA;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AAAA,EAGQ,mBAAmB,OAAyB;AAChD,UAAM,gBAAgB,MAAM;AAC5B,UAAM,CAAC,WAAW,IAAI,KAAK;AAE3B,UAAM,OAAO,YAAY,cAAc,KAAK;AAC5C,UAAM,OAAO,cAAc,UAAU,SAAS,aAAa,IACrD,CAAC,OACD;AACN,gBAAY,WAAW,MAAM,QAAQ;AAAA,EACzC;AAAA,EAEmB,QACf,mBACI;AACJ,UAAM,QAAQ,iBAAiB;AAC/B,QAAI,kBAAkB,IAAI,KAAK,GAAG;AAC9B,WAAK,mBAAmB;AAAA,IAC5B;AAAA,EACJ;AAAA,EAEmB,SAAyB;AACxC,UAAM,EAAE,gBAAgB,cAAc,IAAI,KAAK;AAC/C,UAAM,oBAAoB,KAAK;AAC/B,UAAM,gBAAgB,KAAK;AAC3B,WAAO;AAAA;AAAA,wBAES,SAAS;AAAA,MACb,2BAA2B;AAAA,MAC3B,eAAe;AAAA,MACf,gBAAgB;AAAA,IACpB,CAAC,CAAC;AAAA;AAAA;AAAA,4BAGU,SAAS;AAAA,MACb,eAAe;AAAA,MACf,MAAM;AAAA,IACV,CAAC,CAAC;AAAA,iCACW,iBAAiB;AAAA;AAAA;AAAA;AAAA,6BAIrB,KAAK,kBAAkB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,4BAQxB,SAAS;AAAA,MACb,gBAAgB;AAAA,MAChB,MAAM;AAAA,IACV,CAAC,CAAC;AAAA,iCACW,aAAa;AAAA;AAAA;AAAA,6BAGjB,KAAK,kBAAkB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kCAQlB,KAAK,iBAAiB;AAAA,sCAClB,KAAK,kBAAkB;AAAA;AAAA;AAAA;AAAA,EAIzD;AACJ;AAjJW;AAAA,EADN,SAAS,EAAE,MAAM,SAAS,SAAS,KAAK,CAAC;AAAA,GALjC,aAMF;AAGA;AAAA,EADN,SAAS,EAAE,MAAM,QAAQ,WAAW,iBAAiB,CAAC;AAAA,GAR9C,aASF;AAGA;AAAA,EADN,SAAS,EAAE,MAAM,QAAQ,WAAW,aAAa,CAAC;AAAA,GAX1C,aAYF;AAGS;AAAA,EADf,SAAS,EAAE,SAAS,KAAK,CAAC;AAAA,GAdlB,aAeO;AAGR;AAAA,EADP,MAAM;AAAA,GAjBE,aAkBD;AAMA;AAAA,EADP,sBAAsB,EAAE,UAAU,WAAW,SAAS,KAAK,CAAC;AAAA,GAvBpD,aAwBD;AAGA;AAAA,EADP,MAAM,0BAA0B;AAAA,GA1BxB,aA2BD;",
6
6
  "names": []
7
7
  }
@@ -1,4 +1,4 @@
1
- "use strict";var p=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var l=(c,a,t,o)=>{for(var e=o>1?void 0:o?u(a,t):a,r=c.length-1,s;r>=0;r--)(s=c[r])&&(e=(o?s(a,t,e):s(e))||e);return o&&e&&p(a,t,e),e};import{html as h,SizedMixin as d,SpectrumElement as S}from"@spectrum-web-components/base";import{property as i,query as v,queryAssignedElements as b,state as f}from"@spectrum-web-components/base/src/decorators.js";import{classMap as n}from"@spectrum-web-components/base/src/directives.js";import{ResizeController as m}from"@lit-labs/observers/resize-controller.js";import"@spectrum-web-components/action-button/sp-action-button.js";import"@spectrum-web-components/icons-ui/icons/sp-icon-chevron100.js";import C from"@spectrum-web-components/icon/src/spectrum-icon-chevron.css.js";import g from"./tabs-sizes.css.js";import y from"./tabs-overflow.css.js";export class TabsOverflow extends d(S){constructor(){super();this.compact=!1;this.labelPrevious="Scroll to previous tabs";this.labelNext="Scroll to next tabs";this.overflowState={canScrollLeft:!1,canScrollRight:!1};this.scrollFactor=.5;this.resizeController=new m(this,{target:this,callback:()=>{this._updateScrollState()}})}static get styles(){return[y,g,C]}firstUpdated(t){super.firstUpdated(t);const[o]=this.scrollContent;o&&(o.enableTabsScroll=!0),this.resizeController.observe(this.overflowContainer)}async _handleSlotChange(){const[t]=this.scrollContent;await(t==null?void 0:t.updateComplete),this._updateScrollState()}_updateScrollState(){const{scrollContent:t,overflowState:o}=this;if(t){const[e]=this.scrollContent,{canScrollLeft:r,canScrollRight:s}=(e==null?void 0:e.scrollState)||{canScrollLeft:!1,canScrollRight:!1};this.overflowState={...o,canScrollLeft:r,canScrollRight:s}}}_handleScrollClick(t){const o=t.currentTarget,[e]=this.scrollContent,r=e.clientWidth*this.scrollFactor,s=o.classList.contains("left-scroll")?-r:r;e.scrollTabs(s,"smooth")}updated(t){super.updated(t),t.has("dir")&&this._updateScrollState()}render(){const{canScrollRight:t,canScrollLeft:o}=this.overflowState,e=this.labelPrevious,r=this.labelNext;return h`
1
+ "use strict";var p=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var l=(c,a,t,o)=>{for(var e=o>1?void 0:o?u(a,t):a,r=c.length-1,s;r>=0;r--)(s=c[r])&&(e=(o?s(a,t,e):s(e))||e);return o&&e&&p(a,t,e),e};import{html as h,SizedMixin as d,SpectrumElement as S}from"@spectrum-web-components/base";import{property as i,query as b,queryAssignedElements as v,state as f}from"@spectrum-web-components/base/src/decorators.js";import{classMap as n}from"@spectrum-web-components/base/src/directives.js";import{ResizeController as m}from"@lit-labs/observers/resize-controller.js";import"@spectrum-web-components/action-button/sp-action-button.js";import"@spectrum-web-components/icons-ui/icons/sp-icon-chevron100.js";import C from"@spectrum-web-components/icon/src/spectrum-icon-chevron.css.js";import g from"./tabs-sizes.css.js";import y from"./tabs-overflow.css.js";export class TabsOverflow extends d(S){constructor(){super();this.compact=!1;this.labelPrevious="Scroll to previous tabs";this.labelNext="Scroll to next tabs";this.overflowState={canScrollLeft:!1,canScrollRight:!1};this.scrollFactor=.5;this.resizeController=new m(this,{target:this,callback:()=>{this._updateScrollState()}})}static get styles(){return[y,g,C]}get scrollContent(){return this.tabs}firstUpdated(t){super.firstUpdated(t);const[o]=this.scrollContent;o&&(o.enableTabsScroll=!0),this.resizeController.observe(this.overflowContainer)}async _handleSlotChange(){const[t]=this.scrollContent;await(t==null?void 0:t.updateComplete),this._updateScrollState()}_updateScrollState(){const{scrollContent:t,overflowState:o}=this;if(t){const[e]=this.scrollContent,{canScrollLeft:r,canScrollRight:s}=(e==null?void 0:e.scrollState)||{canScrollLeft:!1,canScrollRight:!1};this.overflowState={...o,canScrollLeft:r,canScrollRight:s}}}_handleScrollClick(t){const o=t.currentTarget,[e]=this.scrollContent,r=e.clientWidth*this.scrollFactor,s=o.classList.contains("left-scroll")?-r:r;e.scrollTabs(s,"smooth")}updated(t){super.updated(t),t.has("dir")&&this._updateScrollState()}render(){const{canScrollRight:t,canScrollLeft:o}=this.overflowState,e=this.labelPrevious,r=this.labelNext;return h`
2
2
  <div
3
3
  class=${n({"tabs-overflow-container":!0,"left-shadow":o,"right-shadow":t})}
4
4
  >
@@ -32,5 +32,5 @@
32
32
  @sp-tabs-scroll=${this._updateScrollState}
33
33
  ></slot>
34
34
  </div>
35
- `}}l([i({type:Boolean,reflect:!0})],TabsOverflow.prototype,"compact",2),l([i({type:String,attribute:"label-previous"})],TabsOverflow.prototype,"labelPrevious",2),l([i({type:String,attribute:"label-next"})],TabsOverflow.prototype,"labelNext",2),l([i({reflect:!0})],TabsOverflow.prototype,"dir",2),l([f()],TabsOverflow.prototype,"overflowState",2),l([b({selector:"sp-tabs",flatten:!0})],TabsOverflow.prototype,"scrollContent",2),l([v(".tabs-overflow-container")],TabsOverflow.prototype,"overflowContainer",2);
35
+ `}}l([i({type:Boolean,reflect:!0})],TabsOverflow.prototype,"compact",2),l([i({type:String,attribute:"label-previous"})],TabsOverflow.prototype,"labelPrevious",2),l([i({type:String,attribute:"label-next"})],TabsOverflow.prototype,"labelNext",2),l([i({reflect:!0})],TabsOverflow.prototype,"dir",2),l([f()],TabsOverflow.prototype,"overflowState",2),l([v({selector:"sp-tabs",flatten:!0})],TabsOverflow.prototype,"tabs",2),l([b(".tabs-overflow-container")],TabsOverflow.prototype,"overflowContainer",2);
36
36
  //# sourceMappingURL=TabsOverflow.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["TabsOverflow.ts"],
4
- "sourcesContent": ["/*\nCopyright 2022 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\nimport {\n CSSResultArray,\n html,\n PropertyValueMap,\n PropertyValues,\n SizedMixin,\n SpectrumElement,\n TemplateResult,\n} from '@spectrum-web-components/base';\nimport {\n property,\n query,\n queryAssignedElements,\n state,\n} from '@spectrum-web-components/base/src/decorators.js';\nimport { classMap } from '@spectrum-web-components/base/src/directives.js';\nimport { ResizeController } from '@lit-labs/observers/resize-controller.js';\nimport { Tabs } from './Tabs.js';\nimport '@spectrum-web-components/action-button/sp-action-button.js';\nimport '@spectrum-web-components/icons-ui/icons/sp-icon-chevron100.js';\nimport chevronIconStyles from '@spectrum-web-components/icon/src/spectrum-icon-chevron.css.js';\nimport tabSizes from './tabs-sizes.css.js';\nimport styles from './tabs-overflow.css.js';\n\ninterface TabsOverflowState {\n canScrollLeft: boolean;\n canScrollRight: boolean;\n}\n/**\n * @element sp-tabs-overflow\n */\nexport class TabsOverflow extends SizedMixin(SpectrumElement) {\n public static override get styles(): CSSResultArray {\n return [styles, tabSizes, chevronIconStyles];\n }\n\n @property({ type: Boolean, reflect: true })\n public compact = false;\n\n @property({ type: String, attribute: 'label-previous' })\n public labelPrevious = 'Scroll to previous tabs';\n\n @property({ type: String, attribute: 'label-next' })\n public labelNext = 'Scroll to next tabs';\n\n @property({ reflect: true })\n public override dir!: 'ltr' | 'rtl';\n\n @state()\n private overflowState: TabsOverflowState = {\n canScrollLeft: false,\n canScrollRight: false,\n };\n\n @queryAssignedElements({ selector: 'sp-tabs', flatten: true })\n private scrollContent!: Tabs[];\n\n @query('.tabs-overflow-container')\n private overflowContainer!: HTMLDivElement;\n\n resizeController!: ResizeController;\n\n public constructor() {\n super();\n this.resizeController = new ResizeController(this, {\n target: this,\n callback: (): void => {\n this._updateScrollState();\n },\n });\n }\n\n protected override firstUpdated(changes: PropertyValues): void {\n super.firstUpdated(changes);\n // enable scroll event\n const [tabs] = this.scrollContent;\n if (tabs) {\n tabs.enableTabsScroll = true;\n }\n this.resizeController.observe(this.overflowContainer);\n }\n\n private async _handleSlotChange(): Promise<void> {\n const [tabsElement] = this.scrollContent;\n await tabsElement?.updateComplete;\n this._updateScrollState();\n }\n\n private _updateScrollState(): void {\n const { scrollContent, overflowState } = this;\n\n if (scrollContent) {\n const [tabsElement] = this.scrollContent;\n const { canScrollLeft, canScrollRight } =\n tabsElement?.scrollState || {\n canScrollLeft: false,\n canScrollRight: false,\n };\n\n this.overflowState = {\n ...overflowState,\n canScrollLeft,\n canScrollRight,\n };\n }\n }\n\n private scrollFactor = 0.5;\n private _handleScrollClick(event: MouseEvent): void {\n const currentTarget = event.currentTarget as HTMLElement;\n const [tabsElement] = this.scrollContent;\n\n const dist = tabsElement.clientWidth * this.scrollFactor;\n const left = currentTarget.classList.contains('left-scroll')\n ? -dist\n : dist;\n tabsElement.scrollTabs(left, 'smooth');\n }\n\n protected override updated(\n changedProperties: PropertyValueMap<this>\n ): void {\n super.updated(changedProperties);\n if (changedProperties.has('dir')) {\n this._updateScrollState();\n }\n }\n\n protected override render(): TemplateResult {\n const { canScrollRight, canScrollLeft } = this.overflowState;\n const ariaLabelPrevious = this.labelPrevious;\n const ariaLabelNext = this.labelNext;\n return html`\n <div\n class=${classMap({\n 'tabs-overflow-container': true,\n 'left-shadow': canScrollLeft,\n 'right-shadow': canScrollRight,\n })}\n >\n <sp-action-button\n class=${classMap({\n 'left-scroll': true,\n show: canScrollLeft,\n })}\n aria-label=${ariaLabelPrevious}\n quiet\n dir=\"rtl\"\n tabindex=\"-1\"\n @click=${this._handleScrollClick}\n >\n <sp-icon-chevron100\n slot=\"icon\"\n class=\"spectrum-UIIcon-ChevronLeft300\"\n ></sp-icon-chevron100>\n </sp-action-button>\n <sp-action-button\n class=${classMap({\n 'right-scroll': true,\n show: canScrollRight,\n })}\n aria-label=${ariaLabelNext}\n quiet\n tabindex=\"-1\"\n @click=${this._handleScrollClick}\n >\n <sp-icon-chevron100\n slot=\"icon\"\n class=\"spectrum-UIIcon-ChevronRight300\"\n ></sp-icon-chevron100>\n </sp-action-button>\n <slot\n @slotchange=${this._handleSlotChange}\n @sp-tabs-scroll=${this._updateScrollState}\n ></slot>\n </div>\n `;\n }\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/*\nCopyright 2022 Adobe. All rights reserved.\nThis file is licensed to you under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License. You may obtain a copy\nof the License at http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under\nthe License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\nOF ANY KIND, either express or implied. See the License for the specific language\ngoverning permissions and limitations under the License.\n*/\nimport {\n CSSResultArray,\n html,\n PropertyValueMap,\n PropertyValues,\n SizedMixin,\n SpectrumElement,\n TemplateResult,\n} from '@spectrum-web-components/base';\nimport {\n property,\n query,\n queryAssignedElements,\n state,\n} from '@spectrum-web-components/base/src/decorators.js';\nimport { classMap } from '@spectrum-web-components/base/src/directives.js';\nimport { ResizeController } from '@lit-labs/observers/resize-controller.js';\nimport { Tabs } from './Tabs.js';\nimport '@spectrum-web-components/action-button/sp-action-button.js';\nimport '@spectrum-web-components/icons-ui/icons/sp-icon-chevron100.js';\nimport chevronIconStyles from '@spectrum-web-components/icon/src/spectrum-icon-chevron.css.js';\nimport tabSizes from './tabs-sizes.css.js';\nimport styles from './tabs-overflow.css.js';\n\ninterface TabsOverflowState {\n canScrollLeft: boolean;\n canScrollRight: boolean;\n}\n/**\n * @element sp-tabs-overflow\n */\nexport class TabsOverflow extends SizedMixin(SpectrumElement) {\n public static override get styles(): CSSResultArray {\n return [styles, tabSizes, chevronIconStyles];\n }\n\n @property({ type: Boolean, reflect: true })\n public compact = false;\n\n @property({ type: String, attribute: 'label-previous' })\n public labelPrevious = 'Scroll to previous tabs';\n\n @property({ type: String, attribute: 'label-next' })\n public labelNext = 'Scroll to next tabs';\n\n @property({ reflect: true })\n public override dir!: 'ltr' | 'rtl';\n\n @state()\n private overflowState: TabsOverflowState = {\n canScrollLeft: false,\n canScrollRight: false,\n };\n\n @queryAssignedElements({ selector: 'sp-tabs', flatten: true })\n private tabs!: Tabs[];\n\n @query('.tabs-overflow-container')\n private overflowContainer!: HTMLDivElement;\n\n resizeController!: ResizeController;\n\n protected get scrollContent(): Tabs[] {\n return this.tabs;\n }\n\n public constructor() {\n super();\n this.resizeController = new ResizeController(this, {\n target: this,\n callback: (): void => {\n this._updateScrollState();\n },\n });\n }\n\n protected override firstUpdated(changes: PropertyValues): void {\n super.firstUpdated(changes);\n // enable scroll event\n const [tabs] = this.scrollContent;\n if (tabs) {\n tabs.enableTabsScroll = true;\n }\n this.resizeController.observe(this.overflowContainer);\n }\n\n private async _handleSlotChange(): Promise<void> {\n const [tabsElement] = this.scrollContent;\n await tabsElement?.updateComplete;\n this._updateScrollState();\n }\n\n private _updateScrollState(): void {\n const { scrollContent, overflowState } = this;\n\n if (scrollContent) {\n const [tabsElement] = this.scrollContent;\n const { canScrollLeft, canScrollRight } =\n tabsElement?.scrollState || {\n canScrollLeft: false,\n canScrollRight: false,\n };\n\n this.overflowState = {\n ...overflowState,\n canScrollLeft,\n canScrollRight,\n };\n }\n }\n\n private scrollFactor = 0.5;\n private _handleScrollClick(event: MouseEvent): void {\n const currentTarget = event.currentTarget as HTMLElement;\n const [tabsElement] = this.scrollContent;\n\n const dist = tabsElement.clientWidth * this.scrollFactor;\n const left = currentTarget.classList.contains('left-scroll')\n ? -dist\n : dist;\n tabsElement.scrollTabs(left, 'smooth');\n }\n\n protected override updated(\n changedProperties: PropertyValueMap<this>\n ): void {\n super.updated(changedProperties);\n if (changedProperties.has('dir')) {\n this._updateScrollState();\n }\n }\n\n protected override render(): TemplateResult {\n const { canScrollRight, canScrollLeft } = this.overflowState;\n const ariaLabelPrevious = this.labelPrevious;\n const ariaLabelNext = this.labelNext;\n return html`\n <div\n class=${classMap({\n 'tabs-overflow-container': true,\n 'left-shadow': canScrollLeft,\n 'right-shadow': canScrollRight,\n })}\n >\n <sp-action-button\n class=${classMap({\n 'left-scroll': true,\n show: canScrollLeft,\n })}\n aria-label=${ariaLabelPrevious}\n quiet\n dir=\"rtl\"\n tabindex=\"-1\"\n @click=${this._handleScrollClick}\n >\n <sp-icon-chevron100\n slot=\"icon\"\n class=\"spectrum-UIIcon-ChevronLeft300\"\n ></sp-icon-chevron100>\n </sp-action-button>\n <sp-action-button\n class=${classMap({\n 'right-scroll': true,\n show: canScrollRight,\n })}\n aria-label=${ariaLabelNext}\n quiet\n tabindex=\"-1\"\n @click=${this._handleScrollClick}\n >\n <sp-icon-chevron100\n slot=\"icon\"\n class=\"spectrum-UIIcon-ChevronRight300\"\n ></sp-icon-chevron100>\n </sp-action-button>\n <slot\n @slotchange=${this._handleSlotChange}\n @sp-tabs-scroll=${this._updateScrollState}\n ></slot>\n </div>\n `;\n }\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["html", "SizedMixin", "SpectrumElement", "property", "query", "queryAssignedElements", "state", "classMap", "ResizeController", "chevronIconStyles", "tabSizes", "styles", "changes", "tabs", "tabsElement", "scrollContent", "overflowState", "canScrollLeft", "canScrollRight", "event", "currentTarget", "dist", "left", "changedProperties", "ariaLabelPrevious", "ariaLabelNext", "__decorateClass"]
7
7
  }