Files
idm-quantity-picker/readme.md
2025-11-21 14:02:35 +01:00

89 lines
2.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# IdmQuantityPicker
`IdmQuantityPicker` to lekka klasa JavaScript umożliwiająca stworzenie prostego komponentu do wybierania ilości (`quantity picker`) z przyciskami `+` i `-`, obsługująca minimalne i maksymalne wartości.
## Funkcje
* Obsługuje minimalną (`min`) i maksymalną (`max`) wartość.
* Automatycznie blokuje przyciski, gdy osiągnięto limit.
* Synchronizuje wartość w polu input z przyciskami.
* Łatwa integracja z istniejącym HTML-em.
## Struktura HTML
Twój komponent powinien wyglądać mniej więcej tak:
```html
<div class="idm-quantity-picker">
<button class="idm-quantity-picker__button-minus">-</button>
<input type="number" class="idm-quantity-picker__input" value="1" min="1" max="10">
<button class="idm-quantity-picker__button-plus">+</button>
</div>
```
> **Uwaga:** Klasy w HTML są wymagane, aby skrypt mógł odnaleźć elementy.
## Użycie
### Inicjalizacja przez selektor CSS
```javascript
const picker = new IdmQuantityPicker({
selector: ".idm-quantity-picker",
min: 1,
max: 20
});
```
### Inicjalizacja przez referencję do elementu
```javascript
const container = document.querySelector("#my-picker");
const picker = new IdmQuantityPicker({
ref: container,
min: 1,
max: 50
});
```
## API
### Właściwości
* `value` obecna wartość (getter i setter)
* `min` minimalna wartość
* `max` maksymalna wartość
### Metody
* `handlePlus()` zwiększa wartość o 1
* `handleMinus()` zmniejsza wartość o 1
* `updateButtons()` aktualizuje stan przycisków
* `updateInput()` aktualizuje wartość w polu input
## Przykład działania
```html
<div id="example-picker" class="idm-quantity-picker">
<button class="idm-quantity-picker__button-minus">-</button>
<input type="number" class="idm-quantity-picker__input" value="1" min="1" max="5">
<button class="idm-quantity-picker__button-plus">+</button>
</div>
<script src="IdmQuantityPicker.js"></script>
<script>
const examplePicker = new IdmQuantityPicker({
ref: document.querySelector('#example-picker'),
min: 1,
max: 5
});
</script>
```
## Uwagi
SIGMA
* Jeśli nie podasz `min` lub `max`, zostaną użyte wartości z atrybutów `input`.
* Przyciski zostaną automatycznie zablokowane, gdy osiągnięty zostanie limit minimalny lub maksymalny.
* Skrypt loguje błędy, jeśli nie znajdzie wymaganych elementów w kontenerze.