@shoper/phoenix_design_system 1.17.17-0 → 1.17.18

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.
Files changed (25) hide show
  1. package/README.md +34 -0
  2. package/build/cjs/packages/phoenix/src/components/form/select/components/toggler/select_toggler.js +12 -31
  3. package/build/cjs/packages/phoenix/src/components/form/select/components/toggler/select_toggler.js.map +1 -1
  4. package/build/cjs/packages/phoenix/src/components/scroller/scroller.js +52 -0
  5. package/build/cjs/packages/phoenix/src/components/scroller/scroller.js.map +1 -1
  6. package/build/cjs/packages/phoenix/src/components/scroller/scroller_constants.js +17 -0
  7. package/build/cjs/packages/phoenix/src/components/scroller/scroller_constants.js.map +1 -0
  8. package/build/cjs/packages/phoenix/src/components/slider/slider.js +3 -3
  9. package/build/esm/packages/phoenix/src/components/form/select/components/toggler/select_toggler.d.ts +0 -1
  10. package/build/esm/packages/phoenix/src/components/form/select/components/toggler/select_toggler.js +12 -31
  11. package/build/esm/packages/phoenix/src/components/form/select/components/toggler/select_toggler.js.map +1 -1
  12. package/build/esm/packages/phoenix/src/components/scroller/scroller-pause.d.ts +7 -0
  13. package/build/esm/packages/phoenix/src/components/scroller/scroller-pause.js +28 -0
  14. package/build/esm/packages/phoenix/src/components/scroller/scroller-pause.js.map +1 -0
  15. package/build/esm/packages/phoenix/src/components/scroller/scroller-play.d.ts +7 -0
  16. package/build/esm/packages/phoenix/src/components/scroller/scroller-play.js +28 -0
  17. package/build/esm/packages/phoenix/src/components/scroller/scroller-play.js.map +1 -0
  18. package/build/esm/packages/phoenix/src/components/scroller/scroller.d.ts +6 -0
  19. package/build/esm/packages/phoenix/src/components/scroller/scroller.js +53 -1
  20. package/build/esm/packages/phoenix/src/components/scroller/scroller.js.map +1 -1
  21. package/build/esm/packages/phoenix/src/components/scroller/scroller_constants.d.ts +13 -0
  22. package/build/esm/packages/phoenix/src/components/scroller/scroller_constants.js +12 -0
  23. package/build/esm/packages/phoenix/src/components/scroller/scroller_constants.js.map +1 -0
  24. package/build/esm/packages/phoenix/src/components/slider/slider.js +3 -3
  25. package/package.json +2 -2
package/README.md ADDED
@@ -0,0 +1,34 @@
1
+ # Jak odpalić Storybooka z Phoenixem?
2
+
3
+ ## Odpowiednia wersja Node'a
4
+
5
+ Najlepiej upewnij się, że masz wersję `18.20.7` Node'a, czyli taką, która jest na naszym Dockerze. Żeby sprawdzić jaką wersję obecnie używasz wpisz `node -v`.
6
+
7
+ Nie masz odpowiedniej wersji? Oto instrukcja jak ją przełączyć korzystając z NVM'a w następujący sposób:
8
+ 1. Wpisz `npm install nvm -g`
9
+ 2. Wpisz `nvm install 18.20.7`
10
+ 3. Wpisz `nvm use 18.20.7`
11
+ 4. Chcesz wrócić do swojej poprzedniej wersji? Sprawdź jakie masz dostępne wersję wpisując `nvm list`, a potem `nvm use <twoja_wersja>`.
12
+ 5. Twojej wersji nie ma na liście? Wpisz `nvm install <twoja_wersja>`, a potem `nvm use <twoja_wersja>`.
13
+
14
+ ## Instalacja powiązanych paczek
15
+
16
+ Potrzebujemy zainstalować paczki w głównym folderze oraz utilities, żeby Storybook działał poprawnie. Wykonaj następujące kroki:
17
+ 1. Wpisz `yarn install` w katalogu głównym projektu (Czyli jeśli jesteś w Phoenixie, to najpierw `cd ../..`).
18
+ 2. Wejdź do katalogu `packages/utilities` i wpisz `yarn install`.
19
+ 3. W katalogu `packages/utilities` wpisz również `yarn build`.
20
+
21
+ ## Odpalenie Storybooka
22
+
23
+ Po zrobieniu wszystkich poprzednich kroków, możemy odpalić Storybooka:
24
+ 1. Wejdź z powrotem do tego katalogu `packages/phoenix` i wpisz `yarn install`
25
+ 2. W pliku `package.json` w skrypcie `storybook` zobaczysz `NODE_OPTIONS=--openssl-legacy-provider && `. Przed odpaleniem Storybooka musisz usunąć tą część ze skryptu!
26
+ 3. Następnie odpal `NODE_OPTIONS=--openssl-legacy-provider && yarn storybook` w konsoli.
27
+ 4. Gratulacje! Storybook powinien się odpalić pod adresem `http://localhost:6007`.
28
+ 5. Od tej pory, by odpalić Storybooka powtarzaj kroki od 2 do 4.
29
+
30
+ ## Troubleshooting
31
+
32
+ Jeśli z jakiegoś powodu dalej masz problemy z odpaleniem Storybooka, możesz spróbować jeszcze tych rzeczy:
33
+ 1. Podmień wersję Node'a na `16.10.0`. Oto komenda, która to ustawia: `nvm install 16.10.0 && nvm use 16.10.0`. Po wpisaniu tej komendy odpal Storybooka (poradnik wyżej).
34
+ 2. Odpal Storybooka z poziomu Aurory NPM. Przejdź do głównego katalogu `aurora-npm` i wpisz `yarn phoenix:storybook`.
@@ -42,20 +42,6 @@ exports.HSelectToggler = class HSelectToggler extends phoenix_light_lit_element.
42
42
  this._selectedOptionsObserver = new observer.Observer(this._handleSelectedOptionChanged);
43
43
  this.selectedOptions$.subscribe(this._selectedOptionsObserver);
44
44
  }
45
- _renderOptionContent(option) {
46
- const parts = (option.content || '')
47
- .split('\n')
48
- .map((line) => line.trim())
49
- .filter((line) => line.length > 0);
50
- const name = parts[0] || '';
51
- const addons = parts.slice(1).join(' ');
52
- return litHtml.html `
53
- <div class="custom-layout">
54
- <span class="custom-name">${name}</span>
55
- ${addons ? litHtml.html `<span class="custom-addons">${addons}</span>` : ''}
56
- </div>
57
- `;
58
- }
59
45
  disconnectedCallback() {
60
46
  var _a;
61
47
  super.disconnectedCallback();
@@ -67,24 +53,19 @@ exports.HSelectToggler = class HSelectToggler extends phoenix_light_lit_element.
67
53
  return litHtml.html `
68
54
  ${observable_directive.observe(this.selectedOptions$, (selectOptions) => {
69
55
  var _a;
70
- if (!selectOptions.length) {
56
+ if (!selectOptions.length)
71
57
  return litHtml.html `${(_a = this.getSlot(select_components_constatns.SELECT_INPUT_PLACEHOLDER_SLOT_NAME)) !== null && _a !== void 0 ? _a : litHtml.html `<span class=${select_toggler_constants.SELECT_TOGGLER_CSS_CLASSES.selectTogglerPlaceholder}>Select</span>`}`;
72
- }
73
- return litHtml.html `
74
- <ul class=${select_toggler_constants.SELECT_TOGGLER_CSS_CLASSES.selectTogglerValues}>
75
- ${this.isMultiselect
76
- ? selectOptions.map((option) => {
77
- const content = this._renderOptionContent(option);
78
- return litHtml.html `
79
- <li>
80
- <h-tag @remove=${() => this._dispatchOptionDeselect(option)}>
81
- ${content}
82
- <h-tag-remove-button></h-tag-remove-button>
83
- </h-tag>
84
- </li>`;
85
- })
86
- : litHtml.html `<li>${this._renderOptionContent(selectOptions[0])}</li>`}
87
- </ul>`;
58
+ return litHtml.html ` <ul class=${select_toggler_constants.SELECT_TOGGLER_CSS_CLASSES.selectTogglerValues}>
59
+ ${this.isMultiselect
60
+ ? selectOptions.map((option) => litHtml.html ` <li>
61
+ <h-tag @remove=${() => this._dispatchOptionDeselect(option)}>
62
+ ${option.content}
63
+
64
+ <h-tag-remove-button></h-tag-remove-button>
65
+ </h-tag>
66
+ </li>`)
67
+ : litHtml.html ` <li>${selectOptions[0].content}</li>`}
68
+ </ul>`;
88
69
  })}
89
70
 
90
71
  <h-icon icon-name="icon-chevron-down"></h-icon>
@@ -1 +1 @@
1
- {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA,wBAAwB,qDAAyD;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA,wBAAwB,qDAAyD;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -9,12 +9,14 @@ var phoenix_light_lit_element = require('../../core/phoenix_light_lit_element/ph
9
9
  var phoenix_custom_element = require('../../core/decorators/phoenix_custom_element.js');
10
10
  var splide_esm = require('../../../../../external/@splidejs/splide/dist/js/splide.esm.js');
11
11
  var splideExtensionAutoScroll_esm = require('../../../../../external/@splidejs/splide-extension-auto-scroll/dist/js/splide-extension-auto-scroll.esm.js');
12
+ var scroller_constants = require('./scroller_constants.js');
12
13
 
13
14
  exports.HScroller = class HScroller extends phoenix_light_lit_element.PhoenixLightLitElement {
14
15
  constructor() {
15
16
  super(...arguments);
16
17
  this.settings = '';
17
18
  this.id = '';
19
+ this.isPaused = false;
18
20
  this._settings = {
19
21
  mountOnConnectedCallback: true,
20
22
  type: 'loop',
@@ -40,6 +42,7 @@ exports.HScroller = class HScroller extends phoenix_light_lit_element.PhoenixLig
40
42
  }
41
43
  connectedCallback() {
42
44
  var _a;
45
+ super.connectedCallback();
43
46
  if (this.settings) {
44
47
  this._settings = (_a = utilities.JsonUtils.fromJson(this.settings)) !== null && _a !== void 0 ? _a : this._settings;
45
48
  }
@@ -47,10 +50,55 @@ exports.HScroller = class HScroller extends phoenix_light_lit_element.PhoenixLig
47
50
  if (this._settings.mountOnConnectedCallback) {
48
51
  this._scroller.mount({ AutoScroll: splideExtensionAutoScroll_esm.AutoScroll });
49
52
  }
53
+ this.addEventListener(scroller_constants.SCROLLER_EVENTS.pause, () => this.pause());
54
+ this.addEventListener(scroller_constants.SCROLLER_EVENTS.play, () => this.play());
55
+ this._handlePausePlayState();
56
+ }
57
+ updated(changedProperties) {
58
+ if (changedProperties.has('isPaused')) {
59
+ this._handlePausePlayState();
60
+ }
61
+ }
62
+ pause() {
63
+ var _a;
64
+ const autoScroll = (_a = this._scroller) === null || _a === void 0 ? void 0 : _a.Components.AutoScroll;
65
+ if (autoScroll && !this.isPaused) {
66
+ autoScroll.pause();
67
+ this.isPaused = true;
68
+ }
69
+ }
70
+ play() {
71
+ var _a;
72
+ const autoScroll = (_a = this._scroller) === null || _a === void 0 ? void 0 : _a.Components.AutoScroll;
73
+ if (autoScroll && this.isPaused) {
74
+ autoScroll.play();
75
+ this.isPaused = false;
76
+ }
77
+ }
78
+ _handlePausePlayState() {
79
+ const playBtn = this.querySelector(scroller_constants.SCROLLER_CONTROLS_NAMES.scrollerControlsPlay);
80
+ const pauseBtn = this.querySelector(scroller_constants.SCROLLER_CONTROLS_NAMES.scrollerControlsPause);
81
+ if (!(playBtn && pauseBtn))
82
+ return;
83
+ if (this.isPaused) {
84
+ utilities.UiDomUtils.show(playBtn);
85
+ utilities.UiDomUtils.hide(pauseBtn);
86
+ }
87
+ else {
88
+ utilities.UiDomUtils.hide(playBtn);
89
+ utilities.UiDomUtils.show(pauseBtn);
90
+ }
50
91
  }
51
92
  getSlider() {
52
93
  return this._scroller;
53
94
  }
95
+ disconnectedCallback() {
96
+ super.disconnectedCallback();
97
+ if (this._scroller) {
98
+ this._scroller.destroy();
99
+ this._scroller = null;
100
+ }
101
+ }
54
102
  };
55
103
  tslib_es6.__decorate([
56
104
  decorators.property({ reflect: true }),
@@ -60,6 +108,10 @@ tslib_es6.__decorate([
60
108
  decorators.property(),
61
109
  tslib_es6.__metadata("design:type", String)
62
110
  ], exports.HScroller.prototype, "id", void 0);
111
+ tslib_es6.__decorate([
112
+ decorators.property({ type: Boolean, reflect: true }),
113
+ tslib_es6.__metadata("design:type", Boolean)
114
+ ], exports.HScroller.prototype, "isPaused", void 0);
63
115
  exports.HScroller = tslib_es6.__decorate([
64
116
  phoenix_custom_element.phoenixCustomElement('h-scroller')
65
117
  ], exports.HScroller);
@@ -1 +1 @@
1
- {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA,wBAAwB,4CAAgD;AACxE;AACA;AACA;AACA;AACA,yBAAyB,gEAAoE;AAC7F,4CAA4C,4GAAgH;AAC5J;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA,wBAAwB,4CAAgD;AACxE;AACA;AACA;AACA;AACA,yBAAyB,gEAAoE;AAC7F,4CAA4C,4GAAgH;AAC5J;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -0,0 +1,17 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ const SCROLLER_EVENTS = {
6
+ pause: 'scroller-pause',
7
+ play: 'scroller-play',
8
+ click: 'click'
9
+ };
10
+ const SCROLLER_CONTROLS_NAMES = {
11
+ scrollerControlsPlay: 'h-scroller-play',
12
+ scrollerControlsPause: 'h-scroller-pause'
13
+ };
14
+
15
+ exports.SCROLLER_CONTROLS_NAMES = SCROLLER_CONTROLS_NAMES;
16
+ exports.SCROLLER_EVENTS = SCROLLER_EVENTS;
17
+ //# sourceMappingURL=scroller_constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -34,11 +34,11 @@ exports.HSlider = class HSlider extends phoenix_light_lit_element.PhoenixLightLi
34
34
  if ($focusableSlideChildren.length === 0)
35
35
  return;
36
36
  const updateFocusability = action === slider_constants.SLIDER_HANDLE_FOCUSABLE_NODES_OPTIONS.show ? this._showFocusableElement : this._hideFocusableElement;
37
- $focusableSlideChildren.forEach(($element) => (updateFocusability($element)));
37
+ $focusableSlideChildren.forEach(($element) => updateFocusability($element));
38
38
  };
39
39
  this._scanMutationsForNewFocusableElements = (mutationList) => {
40
40
  for (const mutation of mutationList) {
41
- if (mutation.type !== "childList")
41
+ if (mutation.type !== 'childList')
42
42
  continue;
43
43
  const $target = mutation.target;
44
44
  const isFocusable = utilities.UiDomUtils.isFocusable($target);
@@ -68,7 +68,7 @@ exports.HSlider = class HSlider extends phoenix_light_lit_element.PhoenixLightLi
68
68
  if (this.settings) {
69
69
  this._settings = (_a = utilities.JsonUtils.fromJson(this.settings)) !== null && _a !== void 0 ? _a : this._settings;
70
70
  }
71
- this._slider = new splide_esm.Splide(`#${this.id}`, this._settings);
71
+ this._slider = new splide_esm.Splide(this, this._settings);
72
72
  if (this._settings.mountOnConnectedCallback) {
73
73
  this._slider.mount();
74
74
  }
@@ -11,7 +11,6 @@ export declare class HSelectToggler extends PhoenixLightLitElement {
11
11
  private _subscribeObserver;
12
12
  private _handleSelectedOptionChanged;
13
13
  private _dispatchOptionDeselect;
14
- private _renderOptionContent;
15
14
  disconnectedCallback(): void;
16
15
  render(): TemplateResult | undefined;
17
16
  }
@@ -38,20 +38,6 @@ let HSelectToggler = class HSelectToggler extends PhoenixLightLitElement {
38
38
  this._selectedOptionsObserver = new Observer(this._handleSelectedOptionChanged);
39
39
  this.selectedOptions$.subscribe(this._selectedOptionsObserver);
40
40
  }
41
- _renderOptionContent(option) {
42
- const parts = (option.content || '')
43
- .split('\n')
44
- .map((line) => line.trim())
45
- .filter((line) => line.length > 0);
46
- const name = parts[0] || '';
47
- const addons = parts.slice(1).join(' ');
48
- return html `
49
- <div class="custom-layout">
50
- <span class="custom-name">${name}</span>
51
- ${addons ? html `<span class="custom-addons">${addons}</span>` : ''}
52
- </div>
53
- `;
54
- }
55
41
  disconnectedCallback() {
56
42
  var _a;
57
43
  super.disconnectedCallback();
@@ -63,24 +49,19 @@ let HSelectToggler = class HSelectToggler extends PhoenixLightLitElement {
63
49
  return html `
64
50
  ${observe(this.selectedOptions$, (selectOptions) => {
65
51
  var _a;
66
- if (!selectOptions.length) {
52
+ if (!selectOptions.length)
67
53
  return html `${(_a = this.getSlot(SELECT_INPUT_PLACEHOLDER_SLOT_NAME)) !== null && _a !== void 0 ? _a : html `<span class=${SELECT_TOGGLER_CSS_CLASSES.selectTogglerPlaceholder}>Select</span>`}`;
68
- }
69
- return html `
70
- <ul class=${SELECT_TOGGLER_CSS_CLASSES.selectTogglerValues}>
71
- ${this.isMultiselect
72
- ? selectOptions.map((option) => {
73
- const content = this._renderOptionContent(option);
74
- return html `
75
- <li>
76
- <h-tag @remove=${() => this._dispatchOptionDeselect(option)}>
77
- ${content}
78
- <h-tag-remove-button></h-tag-remove-button>
79
- </h-tag>
80
- </li>`;
81
- })
82
- : html `<li>${this._renderOptionContent(selectOptions[0])}</li>`}
83
- </ul>`;
54
+ return html ` <ul class=${SELECT_TOGGLER_CSS_CLASSES.selectTogglerValues}>
55
+ ${this.isMultiselect
56
+ ? selectOptions.map((option) => html ` <li>
57
+ <h-tag @remove=${() => this._dispatchOptionDeselect(option)}>
58
+ ${option.content}
59
+
60
+ <h-tag-remove-button></h-tag-remove-button>
61
+ </h-tag>
62
+ </li>`)
63
+ : html ` <li>${selectOptions[0].content}</li>`}
64
+ </ul>`;
84
65
  })}
85
66
 
86
67
  <h-icon icon-name="icon-chevron-down"></h-icon>
@@ -1 +1 @@
1
- {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA,uCAAuC,qDAAyD;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA,uCAAuC,qDAAyD;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -0,0 +1,7 @@
1
+ import { PhoenixLightLitElement } from "../../core/phoenix_light_lit_element/phoenix_light_lit_element";
2
+ export declare class HScrollerPause extends PhoenixLightLitElement {
3
+ private _btnController;
4
+ constructor();
5
+ connectedCallback(): void;
6
+ private _dispatchScrollerEvent;
7
+ }
@@ -0,0 +1,28 @@
1
+ import { __decorate, __metadata } from "tslib";
2
+ import { PhoenixLightLitElement } from '@phoenixRoot/core/phoenix_light_lit_element/phoenix_light_lit_element';
3
+ import { phoenixCustomElement } from '@phoenixRoot/core/decorators/phoenix_custom_element';
4
+ import { BtnController } from '@phoenixRoot/controllers/btn_controller/btn_controller';
5
+ import { SCROLLER_CLASS_NAME, SCROLLER_EVENTS } from './scroller_constants';
6
+ let HScrollerPause = class HScrollerPause extends PhoenixLightLitElement {
7
+ constructor() {
8
+ super();
9
+ this._dispatchScrollerEvent = () => {
10
+ this.dispatchEvent(new CustomEvent(SCROLLER_EVENTS.pause, {
11
+ bubbles: true
12
+ }));
13
+ };
14
+ this.slot = this.hasAttribute('slot') ? this.slot : 'pause';
15
+ this.className = `${SCROLLER_CLASS_NAME.scrollerControlsPause} ${this.className}`;
16
+ this._btnController = new BtnController(this, this._dispatchScrollerEvent);
17
+ }
18
+ connectedCallback() {
19
+ super.connectedCallback();
20
+ this.addEventListener(SCROLLER_EVENTS.click, this._dispatchScrollerEvent);
21
+ }
22
+ };
23
+ HScrollerPause = __decorate([
24
+ phoenixCustomElement('h-scroller-pause'),
25
+ __metadata("design:paramtypes", [])
26
+ ], HScrollerPause);
27
+ export { HScrollerPause };
28
+ //# sourceMappingURL=scroller-pause.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scroller-pause.js","sourceRoot":"","sources":["../../../../../../../src/components/scroller/scroller-pause.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,uEAAuE,CAAC;AAC/G,OAAO,EAAE,oBAAoB,EAAE,MAAM,qDAAqD,CAAC;AAC3F,OAAO,EAAE,aAAa,EAAE,MAAM,wDAAwD,CAAC;AACvF,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAG5E,IAAa,cAAc,GAA3B,MAAa,cAAe,SAAQ,sBAAsB;IAGtD;QACI,KAAK,EAAE,CAAC;QAcJ,2BAAsB,GAAG,GAAS,EAAE;YACxC,IAAI,CAAC,aAAa,CACd,IAAI,WAAW,CAAC,eAAe,CAAC,KAAK,EAAE;gBACnC,OAAO,EAAE,IAAI;aAChB,CAAC,CACL,CAAC;QACN,CAAC,CAAC;QAlBE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;QAC5D,IAAI,CAAC,SAAS,GAAG,GAAG,mBAAmB,CAAC,qBAAqB,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QAElF,IAAI,CAAC,cAAc,GAAG,IAAI,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC;IAC/E,CAAC;IAEM,iBAAiB;QACpB,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAE1B,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC;IAC9E,CAAC;CASJ,CAAA;AAzBY,cAAc;IAD1B,oBAAoB,CAAC,kBAAkB,CAAC;;GAC5B,cAAc,CAyB1B;SAzBY,cAAc"}
@@ -0,0 +1,7 @@
1
+ import { PhoenixLightLitElement } from "../../core/phoenix_light_lit_element/phoenix_light_lit_element";
2
+ export declare class HScrollerPlay extends PhoenixLightLitElement {
3
+ private _btnController;
4
+ constructor();
5
+ connectedCallback(): void;
6
+ private _dispatchScrollerEvent;
7
+ }
@@ -0,0 +1,28 @@
1
+ import { __decorate, __metadata } from "tslib";
2
+ import { PhoenixLightLitElement } from '@phoenixRoot/core/phoenix_light_lit_element/phoenix_light_lit_element';
3
+ import { phoenixCustomElement } from '@phoenixRoot/core/decorators/phoenix_custom_element';
4
+ import { BtnController } from '@phoenixRoot/controllers/btn_controller/btn_controller';
5
+ import { SCROLLER_CLASS_NAME, SCROLLER_EVENTS } from './scroller_constants';
6
+ let HScrollerPlay = class HScrollerPlay extends PhoenixLightLitElement {
7
+ constructor() {
8
+ super();
9
+ this._dispatchScrollerEvent = () => {
10
+ this.dispatchEvent(new CustomEvent(SCROLLER_EVENTS.play, {
11
+ bubbles: true
12
+ }));
13
+ };
14
+ this.slot = this.hasAttribute('slot') ? this.slot : 'play';
15
+ this.className = `${SCROLLER_CLASS_NAME.scrollerControlsPlay} ${this.className}`;
16
+ this._btnController = new BtnController(this, this._dispatchScrollerEvent);
17
+ }
18
+ connectedCallback() {
19
+ super.connectedCallback();
20
+ this.addEventListener(SCROLLER_EVENTS.click, this._dispatchScrollerEvent);
21
+ }
22
+ };
23
+ HScrollerPlay = __decorate([
24
+ phoenixCustomElement('h-scroller-play'),
25
+ __metadata("design:paramtypes", [])
26
+ ], HScrollerPlay);
27
+ export { HScrollerPlay };
28
+ //# sourceMappingURL=scroller-play.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scroller-play.js","sourceRoot":"","sources":["../../../../../../../src/components/scroller/scroller-play.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,uEAAuE,CAAC;AAC/G,OAAO,EAAE,oBAAoB,EAAE,MAAM,qDAAqD,CAAC;AAC3F,OAAO,EAAE,aAAa,EAAE,MAAM,wDAAwD,CAAC;AACvF,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAG5E,IAAa,aAAa,GAA1B,MAAa,aAAc,SAAQ,sBAAsB;IAGrD;QACI,KAAK,EAAE,CAAC;QAcJ,2BAAsB,GAAG,GAAS,EAAE;YACxC,IAAI,CAAC,aAAa,CACd,IAAI,WAAW,CAAC,eAAe,CAAC,IAAI,EAAE;gBAClC,OAAO,EAAE,IAAI;aAChB,CAAC,CACL,CAAC;QACN,CAAC,CAAC;QAlBE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;QAC3D,IAAI,CAAC,SAAS,GAAG,GAAG,mBAAmB,CAAC,oBAAoB,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QAEjF,IAAI,CAAC,cAAc,GAAG,IAAI,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC;IAC/E,CAAC;IAEM,iBAAiB;QACpB,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAE1B,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC;IAC9E,CAAC;CASJ,CAAA;AAzBY,aAAa;IADzB,oBAAoB,CAAC,iBAAiB,CAAC;;GAC3B,aAAa,CAyBzB;SAzBY,aAAa"}
@@ -3,10 +3,16 @@ import { PhoenixLightLitElement } from "../../core/phoenix_light_lit_element/pho
3
3
  export declare class HScroller extends PhoenixLightLitElement {
4
4
  settings: string;
5
5
  id: string;
6
+ private isPaused;
6
7
  get sliderSettings(): IScrollerOptions;
7
8
  set sliderSettings(newSettingsObject: IScrollerOptions);
8
9
  private _settings;
9
10
  private _scroller;
10
11
  connectedCallback(): void;
12
+ protected updated(changedProperties: Map<string, any>): void;
13
+ pause(): void;
14
+ play(): void;
15
+ private _handlePausePlayState;
11
16
  getSlider(): IScroller | null;
17
+ disconnectedCallback(): void;
12
18
  }
@@ -1,16 +1,18 @@
1
1
  import { __decorate, __metadata } from '../../../../../external/tslib/tslib.es6.js';
2
2
  import { property } from 'lit/decorators';
3
- import { JsonUtils } from '@dreamcommerce/utilities';
3
+ import { JsonUtils, UiDomUtils } from '@dreamcommerce/utilities';
4
4
  import { PhoenixLightLitElement } from '../../core/phoenix_light_lit_element/phoenix_light_lit_element.js';
5
5
  import { phoenixCustomElement } from '../../core/decorators/phoenix_custom_element.js';
6
6
  import { Splide } from '../../../../../external/@splidejs/splide/dist/js/splide.esm.js';
7
7
  import { AutoScroll } from '../../../../../external/@splidejs/splide-extension-auto-scroll/dist/js/splide-extension-auto-scroll.esm.js';
8
+ import { SCROLLER_EVENTS, SCROLLER_CONTROLS_NAMES } from './scroller_constants.js';
8
9
 
9
10
  let HScroller = class HScroller extends PhoenixLightLitElement {
10
11
  constructor() {
11
12
  super(...arguments);
12
13
  this.settings = '';
13
14
  this.id = '';
15
+ this.isPaused = false;
14
16
  this._settings = {
15
17
  mountOnConnectedCallback: true,
16
18
  type: 'loop',
@@ -36,6 +38,7 @@ let HScroller = class HScroller extends PhoenixLightLitElement {
36
38
  }
37
39
  connectedCallback() {
38
40
  var _a;
41
+ super.connectedCallback();
39
42
  if (this.settings) {
40
43
  this._settings = (_a = JsonUtils.fromJson(this.settings)) !== null && _a !== void 0 ? _a : this._settings;
41
44
  }
@@ -43,10 +46,55 @@ let HScroller = class HScroller extends PhoenixLightLitElement {
43
46
  if (this._settings.mountOnConnectedCallback) {
44
47
  this._scroller.mount({ AutoScroll });
45
48
  }
49
+ this.addEventListener(SCROLLER_EVENTS.pause, () => this.pause());
50
+ this.addEventListener(SCROLLER_EVENTS.play, () => this.play());
51
+ this._handlePausePlayState();
52
+ }
53
+ updated(changedProperties) {
54
+ if (changedProperties.has('isPaused')) {
55
+ this._handlePausePlayState();
56
+ }
57
+ }
58
+ pause() {
59
+ var _a;
60
+ const autoScroll = (_a = this._scroller) === null || _a === void 0 ? void 0 : _a.Components.AutoScroll;
61
+ if (autoScroll && !this.isPaused) {
62
+ autoScroll.pause();
63
+ this.isPaused = true;
64
+ }
65
+ }
66
+ play() {
67
+ var _a;
68
+ const autoScroll = (_a = this._scroller) === null || _a === void 0 ? void 0 : _a.Components.AutoScroll;
69
+ if (autoScroll && this.isPaused) {
70
+ autoScroll.play();
71
+ this.isPaused = false;
72
+ }
73
+ }
74
+ _handlePausePlayState() {
75
+ const playBtn = this.querySelector(SCROLLER_CONTROLS_NAMES.scrollerControlsPlay);
76
+ const pauseBtn = this.querySelector(SCROLLER_CONTROLS_NAMES.scrollerControlsPause);
77
+ if (!(playBtn && pauseBtn))
78
+ return;
79
+ if (this.isPaused) {
80
+ UiDomUtils.show(playBtn);
81
+ UiDomUtils.hide(pauseBtn);
82
+ }
83
+ else {
84
+ UiDomUtils.hide(playBtn);
85
+ UiDomUtils.show(pauseBtn);
86
+ }
46
87
  }
47
88
  getSlider() {
48
89
  return this._scroller;
49
90
  }
91
+ disconnectedCallback() {
92
+ super.disconnectedCallback();
93
+ if (this._scroller) {
94
+ this._scroller.destroy();
95
+ this._scroller = null;
96
+ }
97
+ }
50
98
  };
51
99
  __decorate([
52
100
  property({ reflect: true }),
@@ -56,6 +104,10 @@ __decorate([
56
104
  property(),
57
105
  __metadata("design:type", String)
58
106
  ], HScroller.prototype, "id", void 0);
107
+ __decorate([
108
+ property({ type: Boolean, reflect: true }),
109
+ __metadata("design:type", Boolean)
110
+ ], HScroller.prototype, "isPaused", void 0);
59
111
  HScroller = __decorate([
60
112
  phoenixCustomElement('h-scroller')
61
113
  ], HScroller);
@@ -1 +1 @@
1
- {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA,uCAAuC,4CAAgD;AACvF;AACA;AACA;AACA;AACA,uBAAuB,gEAAoE;AAC3F,2BAA2B,4GAAgH;AAC3I;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA,uCAAuC,4CAAgD;AACvF;AACA;AACA;AACA;AACA,uBAAuB,gEAAoE;AAC3F,2BAA2B,4GAAgH;AAC3I;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -0,0 +1,13 @@
1
+ export declare const SCROLLER_EVENTS: {
2
+ readonly pause: "scroller-pause";
3
+ readonly play: "scroller-play";
4
+ readonly click: "click";
5
+ };
6
+ export declare const SCROLLER_CONTROLS_NAMES: {
7
+ readonly scrollerControlsPlay: "h-scroller-play";
8
+ readonly scrollerControlsPause: "h-scroller-pause";
9
+ };
10
+ export declare const SCROLLER_CLASS_NAME: {
11
+ readonly scrollerControlsPlay: "scroller__controls_play";
12
+ readonly scrollerControlsPause: "scroller__controls_pause";
13
+ };
@@ -0,0 +1,12 @@
1
+ const SCROLLER_EVENTS = {
2
+ pause: 'scroller-pause',
3
+ play: 'scroller-play',
4
+ click: 'click'
5
+ };
6
+ const SCROLLER_CONTROLS_NAMES = {
7
+ scrollerControlsPlay: 'h-scroller-play',
8
+ scrollerControlsPause: 'h-scroller-pause'
9
+ };
10
+
11
+ export { SCROLLER_CONTROLS_NAMES, SCROLLER_EVENTS };
12
+ //# sourceMappingURL=scroller_constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -30,11 +30,11 @@ let HSlider = class HSlider extends PhoenixLightLitElement {
30
30
  if ($focusableSlideChildren.length === 0)
31
31
  return;
32
32
  const updateFocusability = action === SLIDER_HANDLE_FOCUSABLE_NODES_OPTIONS.show ? this._showFocusableElement : this._hideFocusableElement;
33
- $focusableSlideChildren.forEach(($element) => (updateFocusability($element)));
33
+ $focusableSlideChildren.forEach(($element) => updateFocusability($element));
34
34
  };
35
35
  this._scanMutationsForNewFocusableElements = (mutationList) => {
36
36
  for (const mutation of mutationList) {
37
- if (mutation.type !== "childList")
37
+ if (mutation.type !== 'childList')
38
38
  continue;
39
39
  const $target = mutation.target;
40
40
  const isFocusable = UiDomUtils.isFocusable($target);
@@ -64,7 +64,7 @@ let HSlider = class HSlider extends PhoenixLightLitElement {
64
64
  if (this.settings) {
65
65
  this._settings = (_a = JsonUtils.fromJson(this.settings)) !== null && _a !== void 0 ? _a : this._settings;
66
66
  }
67
- this._slider = new Splide(`#${this.id}`, this._settings);
67
+ this._slider = new Splide(this, this._settings);
68
68
  if (this._settings.mountOnConnectedCallback) {
69
69
  this._slider.mount();
70
70
  }
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@shoper/phoenix_design_system",
3
3
  "packageManager": "yarn@3.2.0",
4
4
  "sideEffects": false,
5
- "version": "1.17.17-0",
5
+ "version": "1.17.18",
6
6
  "description": "phoenix design system",
7
7
  "author": "zefirek",
8
8
  "license": "MIT",
@@ -31,7 +31,7 @@
31
31
  "@splidejs/splide-extension-auto-scroll": "0.5.3"
32
32
  },
33
33
  "devDependencies": {
34
- "@dreamcommerce/utilities": "^1.23.0",
34
+ "@dreamcommerce/utilities": "^1.23.1",
35
35
  "@shoper/jest_config": "^0.0.0",
36
36
  "@shoper/tsconfig": "^0.0.0",
37
37
  "@splidejs/splide": "4.0.7",