@idds/js 1.0.70 → 1.0.71

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.
@@ -2404,53 +2404,65 @@ var InaUI = (() => {
2404
2404
  let currentPage = parseInt(container.dataset.current || "1", 10);
2405
2405
  let totalPages = parseInt(container.dataset.total || "10", 10);
2406
2406
  let pageSize = parseInt(container.dataset.pageSize || "10", 10);
2407
+ let isDisabled = container.dataset.disabled === "true";
2407
2408
  let pageButtons = [];
2408
2409
  const updateUI = () => {
2409
2410
  pageInfo.textContent = `Halaman ${currentPage} dari ${totalPages}`;
2410
2411
  const isFirst = currentPage === 1;
2411
2412
  if (firstBtn) {
2412
- firstBtn.disabled = isFirst;
2413
+ const disabled = isDisabled || isFirst;
2414
+ firstBtn.disabled = disabled;
2413
2415
  firstBtn.classList.toggle(
2414
2416
  `${PREFIX}-pagination__nav-button--disabled`,
2415
- isFirst
2417
+ disabled
2416
2418
  );
2417
2419
  firstBtn.classList.toggle(
2418
2420
  `${PREFIX}-pagination__nav-button--enabled`,
2419
- !isFirst
2421
+ !disabled
2420
2422
  );
2421
2423
  }
2422
2424
  if (prevBtn) {
2423
- prevBtn.disabled = isFirst;
2425
+ const disabled = isDisabled || isFirst;
2426
+ prevBtn.disabled = disabled;
2424
2427
  prevBtn.classList.toggle(
2425
2428
  `${PREFIX}-pagination__nav-button--disabled`,
2426
- isFirst
2429
+ disabled
2427
2430
  );
2428
2431
  prevBtn.classList.toggle(
2429
2432
  `${PREFIX}-pagination__nav-button--enabled`,
2430
- !isFirst
2433
+ !disabled
2431
2434
  );
2432
2435
  }
2433
2436
  const isLast = currentPage === totalPages;
2434
2437
  if (nextBtn) {
2435
- nextBtn.disabled = isLast;
2438
+ const disabled = isDisabled || isLast;
2439
+ nextBtn.disabled = disabled;
2436
2440
  nextBtn.classList.toggle(
2437
2441
  `${PREFIX}-pagination__nav-button--disabled`,
2438
- isLast
2442
+ disabled
2439
2443
  );
2440
2444
  nextBtn.classList.toggle(
2441
2445
  `${PREFIX}-pagination__nav-button--enabled`,
2442
- !isLast
2446
+ !disabled
2443
2447
  );
2444
2448
  }
2445
2449
  if (lastBtn) {
2446
- lastBtn.disabled = isLast;
2450
+ const disabled = isDisabled || isLast;
2451
+ lastBtn.disabled = disabled;
2447
2452
  lastBtn.classList.toggle(
2448
2453
  `${PREFIX}-pagination__nav-button--disabled`,
2449
- isLast
2454
+ disabled
2450
2455
  );
2451
2456
  lastBtn.classList.toggle(
2452
2457
  `${PREFIX}-pagination__nav-button--enabled`,
2453
- !isLast
2458
+ !disabled
2459
+ );
2460
+ }
2461
+ if (pageSizeSelect) {
2462
+ pageSizeSelect.disabled = isDisabled;
2463
+ pageSizeSelect.classList.toggle(
2464
+ `${PREFIX}-pagination__page-size-select--disabled`,
2465
+ isDisabled
2454
2466
  );
2455
2467
  }
2456
2468
  renderPageNumbers();
@@ -2477,10 +2489,11 @@ var InaUI = (() => {
2477
2489
  const button = document.createElement("button");
2478
2490
  button.type = "button";
2479
2491
  button.textContent = i;
2480
- button.className = `${PREFIX}-pagination__page-button ${PREFIX}-pagination__page-button--${isActive ? "active" : "enabled"}`;
2492
+ button.disabled = isDisabled;
2493
+ button.className = `${PREFIX}-pagination__page-button ${PREFIX}-pagination__page-button--${isActive ? "active" : isDisabled ? "disabled" : "enabled"}`;
2481
2494
  button.addEventListener("click", (e) => {
2482
2495
  e.stopPropagation();
2483
- if (i !== currentPage) {
2496
+ if (!isDisabled && i !== currentPage) {
2484
2497
  goToPage(i);
2485
2498
  }
2486
2499
  });
@@ -2489,6 +2502,7 @@ var InaUI = (() => {
2489
2502
  }
2490
2503
  };
2491
2504
  const goToPage = (page) => {
2505
+ if (isDisabled) return;
2492
2506
  if (page < 1) page = 1;
2493
2507
  if (page > totalPages) page = totalPages;
2494
2508
  if (page === currentPage) return;
@@ -2509,24 +2523,55 @@ var InaUI = (() => {
2509
2523
  })
2510
2524
  );
2511
2525
  };
2526
+ const observer = new MutationObserver((mutations) => {
2527
+ mutations.forEach((mutation) => {
2528
+ if (mutation.type === "attributes") {
2529
+ if (mutation.attributeName === "data-current") {
2530
+ const newVal = parseInt(container.dataset.current || "1", 10);
2531
+ if (newVal !== currentPage) {
2532
+ currentPage = newVal;
2533
+ updateUI();
2534
+ }
2535
+ } else if (mutation.attributeName === "data-total") {
2536
+ totalPages = parseInt(container.dataset.total || "10", 10);
2537
+ updateUI();
2538
+ } else if (mutation.attributeName === "data-page-size") {
2539
+ pageSize = parseInt(container.dataset.pageSize || "10", 10);
2540
+ } else if (mutation.attributeName === "data-disabled") {
2541
+ isDisabled = container.dataset.disabled === "true";
2542
+ updateUI();
2543
+ }
2544
+ }
2545
+ });
2546
+ });
2547
+ observer.observe(container, {
2548
+ attributes: true,
2549
+ attributeFilter: [
2550
+ "data-current",
2551
+ "data-total",
2552
+ "data-page-size",
2553
+ "data-disabled"
2554
+ ]
2555
+ });
2512
2556
  if (firstBtn)
2513
2557
  firstBtn.addEventListener("click", () => {
2514
- if (currentPage > 1) goToPage(1);
2558
+ if (!isDisabled && currentPage > 1) goToPage(1);
2515
2559
  });
2516
2560
  if (prevBtn)
2517
2561
  prevBtn.addEventListener("click", () => {
2518
- if (currentPage > 1) goToPage(currentPage - 1);
2562
+ if (!isDisabled && currentPage > 1) goToPage(currentPage - 1);
2519
2563
  });
2520
2564
  if (nextBtn)
2521
2565
  nextBtn.addEventListener("click", () => {
2522
- if (currentPage < totalPages) goToPage(currentPage + 1);
2566
+ if (!isDisabled && currentPage < totalPages) goToPage(currentPage + 1);
2523
2567
  });
2524
2568
  if (lastBtn)
2525
2569
  lastBtn.addEventListener("click", () => {
2526
- if (currentPage < totalPages) goToPage(totalPages);
2570
+ if (!isDisabled && currentPage < totalPages) goToPage(totalPages);
2527
2571
  });
2528
2572
  if (pageSizeSelect) {
2529
2573
  pageSizeSelect.addEventListener("change", (e) => {
2574
+ if (isDisabled) return;
2530
2575
  pageSize = parseInt(e.target.value, 10);
2531
2576
  currentPage = 1;
2532
2577
  container.dataset.pageSize = pageSize;
package/dist/index.js CHANGED
@@ -2566,53 +2566,65 @@ function initPagination() {
2566
2566
  let currentPage = parseInt(container.dataset.current || "1", 10);
2567
2567
  let totalPages = parseInt(container.dataset.total || "10", 10);
2568
2568
  let pageSize = parseInt(container.dataset.pageSize || "10", 10);
2569
+ let isDisabled = container.dataset.disabled === "true";
2569
2570
  let pageButtons = [];
2570
2571
  const updateUI = () => {
2571
2572
  pageInfo.textContent = `Halaman ${currentPage} dari ${totalPages}`;
2572
2573
  const isFirst = currentPage === 1;
2573
2574
  if (firstBtn) {
2574
- firstBtn.disabled = isFirst;
2575
+ const disabled = isDisabled || isFirst;
2576
+ firstBtn.disabled = disabled;
2575
2577
  firstBtn.classList.toggle(
2576
2578
  `${PREFIX}-pagination__nav-button--disabled`,
2577
- isFirst
2579
+ disabled
2578
2580
  );
2579
2581
  firstBtn.classList.toggle(
2580
2582
  `${PREFIX}-pagination__nav-button--enabled`,
2581
- !isFirst
2583
+ !disabled
2582
2584
  );
2583
2585
  }
2584
2586
  if (prevBtn) {
2585
- prevBtn.disabled = isFirst;
2587
+ const disabled = isDisabled || isFirst;
2588
+ prevBtn.disabled = disabled;
2586
2589
  prevBtn.classList.toggle(
2587
2590
  `${PREFIX}-pagination__nav-button--disabled`,
2588
- isFirst
2591
+ disabled
2589
2592
  );
2590
2593
  prevBtn.classList.toggle(
2591
2594
  `${PREFIX}-pagination__nav-button--enabled`,
2592
- !isFirst
2595
+ !disabled
2593
2596
  );
2594
2597
  }
2595
2598
  const isLast = currentPage === totalPages;
2596
2599
  if (nextBtn) {
2597
- nextBtn.disabled = isLast;
2600
+ const disabled = isDisabled || isLast;
2601
+ nextBtn.disabled = disabled;
2598
2602
  nextBtn.classList.toggle(
2599
2603
  `${PREFIX}-pagination__nav-button--disabled`,
2600
- isLast
2604
+ disabled
2601
2605
  );
2602
2606
  nextBtn.classList.toggle(
2603
2607
  `${PREFIX}-pagination__nav-button--enabled`,
2604
- !isLast
2608
+ !disabled
2605
2609
  );
2606
2610
  }
2607
2611
  if (lastBtn) {
2608
- lastBtn.disabled = isLast;
2612
+ const disabled = isDisabled || isLast;
2613
+ lastBtn.disabled = disabled;
2609
2614
  lastBtn.classList.toggle(
2610
2615
  `${PREFIX}-pagination__nav-button--disabled`,
2611
- isLast
2616
+ disabled
2612
2617
  );
2613
2618
  lastBtn.classList.toggle(
2614
2619
  `${PREFIX}-pagination__nav-button--enabled`,
2615
- !isLast
2620
+ !disabled
2621
+ );
2622
+ }
2623
+ if (pageSizeSelect) {
2624
+ pageSizeSelect.disabled = isDisabled;
2625
+ pageSizeSelect.classList.toggle(
2626
+ `${PREFIX}-pagination__page-size-select--disabled`,
2627
+ isDisabled
2616
2628
  );
2617
2629
  }
2618
2630
  renderPageNumbers();
@@ -2639,10 +2651,11 @@ function initPagination() {
2639
2651
  const button = document.createElement("button");
2640
2652
  button.type = "button";
2641
2653
  button.textContent = i;
2642
- button.className = `${PREFIX}-pagination__page-button ${PREFIX}-pagination__page-button--${isActive ? "active" : "enabled"}`;
2654
+ button.disabled = isDisabled;
2655
+ button.className = `${PREFIX}-pagination__page-button ${PREFIX}-pagination__page-button--${isActive ? "active" : isDisabled ? "disabled" : "enabled"}`;
2643
2656
  button.addEventListener("click", (e) => {
2644
2657
  e.stopPropagation();
2645
- if (i !== currentPage) {
2658
+ if (!isDisabled && i !== currentPage) {
2646
2659
  goToPage(i);
2647
2660
  }
2648
2661
  });
@@ -2651,6 +2664,7 @@ function initPagination() {
2651
2664
  }
2652
2665
  };
2653
2666
  const goToPage = (page) => {
2667
+ if (isDisabled) return;
2654
2668
  if (page < 1) page = 1;
2655
2669
  if (page > totalPages) page = totalPages;
2656
2670
  if (page === currentPage) return;
@@ -2671,24 +2685,55 @@ function initPagination() {
2671
2685
  })
2672
2686
  );
2673
2687
  };
2688
+ const observer = new MutationObserver((mutations) => {
2689
+ mutations.forEach((mutation) => {
2690
+ if (mutation.type === "attributes") {
2691
+ if (mutation.attributeName === "data-current") {
2692
+ const newVal = parseInt(container.dataset.current || "1", 10);
2693
+ if (newVal !== currentPage) {
2694
+ currentPage = newVal;
2695
+ updateUI();
2696
+ }
2697
+ } else if (mutation.attributeName === "data-total") {
2698
+ totalPages = parseInt(container.dataset.total || "10", 10);
2699
+ updateUI();
2700
+ } else if (mutation.attributeName === "data-page-size") {
2701
+ pageSize = parseInt(container.dataset.pageSize || "10", 10);
2702
+ } else if (mutation.attributeName === "data-disabled") {
2703
+ isDisabled = container.dataset.disabled === "true";
2704
+ updateUI();
2705
+ }
2706
+ }
2707
+ });
2708
+ });
2709
+ observer.observe(container, {
2710
+ attributes: true,
2711
+ attributeFilter: [
2712
+ "data-current",
2713
+ "data-total",
2714
+ "data-page-size",
2715
+ "data-disabled"
2716
+ ]
2717
+ });
2674
2718
  if (firstBtn)
2675
2719
  firstBtn.addEventListener("click", () => {
2676
- if (currentPage > 1) goToPage(1);
2720
+ if (!isDisabled && currentPage > 1) goToPage(1);
2677
2721
  });
2678
2722
  if (prevBtn)
2679
2723
  prevBtn.addEventListener("click", () => {
2680
- if (currentPage > 1) goToPage(currentPage - 1);
2724
+ if (!isDisabled && currentPage > 1) goToPage(currentPage - 1);
2681
2725
  });
2682
2726
  if (nextBtn)
2683
2727
  nextBtn.addEventListener("click", () => {
2684
- if (currentPage < totalPages) goToPage(currentPage + 1);
2728
+ if (!isDisabled && currentPage < totalPages) goToPage(currentPage + 1);
2685
2729
  });
2686
2730
  if (lastBtn)
2687
2731
  lastBtn.addEventListener("click", () => {
2688
- if (currentPage < totalPages) goToPage(totalPages);
2732
+ if (!isDisabled && currentPage < totalPages) goToPage(totalPages);
2689
2733
  });
2690
2734
  if (pageSizeSelect) {
2691
2735
  pageSizeSelect.addEventListener("change", (e) => {
2736
+ if (isDisabled) return;
2692
2737
  pageSize = parseInt(e.target.value, 10);
2693
2738
  currentPage = 1;
2694
2739
  container.dataset.pageSize = pageSize;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@idds/js",
3
- "version": "1.0.70",
3
+ "version": "1.0.71",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },