Add readme.md

This commit is contained in:
2025-11-21 14:02:35 +01:00
parent 601c6400c4
commit 5acca3517e

88
readme.md Normal file
View File

@@ -0,0 +1,88 @@
# 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.