diff --git a/app/Controllers/Kewilayahan/Monitoring.php b/app/Controllers/Kewilayahan/Monitoring.php new file mode 100644 index 00000000..ca6e8ce1 --- /dev/null +++ b/app/Controllers/Kewilayahan/Monitoring.php @@ -0,0 +1,25 @@ +to('auth'); + } + } + +} diff --git a/app/Controllers/Kewilayahan/Ref.php b/app/Controllers/Kewilayahan/Ref.php index 8e363365..fefc3d1e 100644 --- a/app/Controllers/Kewilayahan/Ref.php +++ b/app/Controllers/Kewilayahan/Ref.php @@ -389,6 +389,29 @@ class Ref extends Controller return json_encode($data); } + public function kppMultiKanwil() + { + $Ald = new AldLibrary; + $username = session('nip'); + $kanwil = []; + foreach ($this->request->getPost('kanwil') as $key => $value) { + $kanwil[] = $Ald->decryptMe($value, $username); + } + + $db = \Config\Database::connect(); + $data = $db->table('DIM_KANTOR') + ->select('KD_KPP as value, NM_KANTOR as label') + ->where('KD_KANWIL', $kanwil) + ->whereIn('ID_JNS_KANTOR', [22, 24]) + ->orderBy('NM_KANTOR')->get()->getResult(); + + foreach ($data as $key => $val) { + $val->value = $Ald->encryptMe($val->value, $username); + } + + return json_encode($data); + } + public function seksi() { $Ald = new AldLibrary; diff --git a/app/Controllers/Kewilayahan/Sebaran/JenisStatus.php b/app/Controllers/Kewilayahan/Sebaran/JenisStatus.php index ed201452..9cbbd9a7 100644 --- a/app/Controllers/Kewilayahan/Sebaran/JenisStatus.php +++ b/app/Controllers/Kewilayahan/Sebaran/JenisStatus.php @@ -133,7 +133,9 @@ class JenisStatus extends \App\Controllers\Kewilayahan\Kytp $sorting = json_decode($this->request->getGet('sorting')); // [{"id":"ALAMAT","desc":false}] $db = \Config\Database::connect(); - $data = $db->table('KPDL_MV_LOKASI_SUBJEK A')->distinct()->select('A.NPWP, A.STATUS_SPT_TAHUNAN_TERAKHIR, JNS_WP_MFWP, STATUS_WP_MFWP, JUMLAH_PEMBAYARAN_THN_TERAKHIR')->where('A.NPWP IS NOT NULL'); + $data = $db->table('KPDL_MV_LOKASI_SUBJEK A')->distinct()->select('A.NPWP, A.NAMA_WP, A.ALAMAT_MFWP, A.KELURAHAN_MFWP, A.KECAMATAN_MFWP, A.KOTA_MFWP, A.PROPINSI_MFWP, + A.KPPADM_MFWP, A.NAMA_AR_MFWP, A.FLAG_WPS_WPK, A.STATUS_WP_MFWP, A.JNS_WP_MFWP, A.STATUS_SPT_TAHUNAN_TERAKHIR, + A.TANGGAL_DAFTAR,JUMLAH_PEMBAYARAN_THN_TERAKHIR')->where('A.NPWP IS NOT NULL'); if ($opsiWilZona == 'wilayah') { $data->whereIn('ADM4_PCODE', $adm4_pcode); @@ -153,8 +155,8 @@ class JenisStatus extends \App\Controllers\Kewilayahan\Kytp $npwp = $data; $data = $db->newQuery()->fromSubquery($npwp, "A") - ->join('MFWP B', "A.NPWP = B.NPWP", "left") - ->join('REF_KPP D', "B.KPPADM = D.KD_KPP", "left") + // ->join('MFWP B', "A.NPWP = B.NPWP", "left") + ->join('REF_KPP D', "A.KPPADM_MFWP = D.KD_KPP", "left") ->join('KPDL_REF_STATUS_SPT E', "A.STATUS_SPT_TAHUNAN_TERAKHIR = E.ID_STATUS_SPT", "left"); $kolom = "JNS_WP_MFWP"; @@ -172,7 +174,7 @@ class JenisStatus extends \App\Controllers\Kewilayahan\Kytp $data->where($kolom, $query); if ($globalFilter) { - $columnFilter = ["NAMA_WP", "ALAMAT"]; + $columnFilter = ["NAMA_WP", "ALAMAT_MFWP"]; $data->GroupStart(); $data->orGroupStart(); foreach ($columnFilter as $key => $value) { @@ -209,9 +211,9 @@ class JenisStatus extends \App\Controllers\Kewilayahan\Kytp return $data->get(); } if ($type == 'raw') { - $data = $data->select("A.NPWP, B.NAMA_WP, B.ALAMAT, B.KELURAHAN, B.KECAMATAN, B.KOTA, B.PROPINSI, - B.KPPADM, B.NAMA_AR, B.FLAG_WPS_WPK, D.NM_KANTOR, A.STATUS_WP_MFWP, A.JNS_WP_MFWP, A.STATUS_SPT_TAHUNAN_TERAKHIR, - B.TANGGAL_DAFTAR, JUMLAH_PEMBAYARAN_THN_TERAKHIR, E.KETERANGAN"); + $data = $data->select("A.NPWP, A.NAMA_WP, A.ALAMAT_MFWP, A.KELURAHAN_MFWP, A.KECAMATAN_MFWP, A.KOTA_MFWP, A.PROPINSI_MFWP, + A.KPPADM_MFWP, A.NAMA_AR_MFWP, A.FLAG_WPS_WPK, A.STATUS_WP_MFWP, A.JNS_WP_MFWP, A.STATUS_SPT_TAHUNAN_TERAKHIR, + A.TANGGAL_DAFTAR, JUMLAH_PEMBAYARAN_THN_TERAKHIR, D.NM_KANTOR, E.KETERANGAN"); // print_r($data->getCompiledSelect()); // exit; return $data->get($size - 1, $start); diff --git a/app/Controllers/Kewilayahan/Sebaran/KLU.php b/app/Controllers/Kewilayahan/Sebaran/KLU.php index 2da05c0f..ce2c73e4 100644 --- a/app/Controllers/Kewilayahan/Sebaran/KLU.php +++ b/app/Controllers/Kewilayahan/Sebaran/KLU.php @@ -136,10 +136,11 @@ class KLU extends \App\Controllers\Kewilayahan\Kytp $sorting = json_decode($this->request->getGet('sorting')); // [{"id":"ALAMAT","desc":false}] $db = \Config\Database::connect(); - $npwp = $db->table('KPDL_MV_LOKASI_SUBJEK A')->select("A.NPWP, A.STATUS_WP_MFWP, A.JNS_WP_MFWP,A.STATUS_SPT_TAHUNAN_TERAKHIR, - NVL(KD_GOLPOK,'ZZ') KD_GOLPOK, - NVL(NM_GOLPOK,'TIDAK DIKETAHUI') NM_GOLPOK, - NVL(JUMLAH_PEMBAYARAN_THN_TERAKHIR,0) JUMLAH_PEMBAYARAN_THN_TERAKHIR") + $npwp = $db->table('KPDL_MV_LOKASI_SUBJEK A')->select("A.NPWP, A.NAMA_WP, A.ALAMAT_MFWP, A.KELURAHAN_MFWP, A.KECAMATAN_MFWP, A.KOTA_MFWP, A.PROPINSI_MFWP, + A.KPPADM_MFWP, A.NAMA_AR_MFWP, A.FLAG_WPS_WPK, A.STATUS_WP_MFWP, A.JNS_WP_MFWP, A.STATUS_SPT_TAHUNAN_TERAKHIR, + A.TANGGAL_DAFTAR, NVL(KD_GOLPOK,'ZZ') KD_GOLPOK, + NVL(NM_GOLPOK,'TIDAK DIKETAHUI') NM_GOLPOK, + NVL(JUMLAH_PEMBAYARAN_THN_TERAKHIR,0) JUMLAH_PEMBAYARAN_THN_TERAKHIR") ->distinct() ->where('NPWP IS NOT NULL'); //default jenis chart = kluterdaftar @@ -168,8 +169,8 @@ class KLU extends \App\Controllers\Kewilayahan\Kytp } $data = $db->newQuery()->fromSubquery($npwp, "A") - ->join('MFWP B', "A.NPWP = B.NPWP", "left") - ->join('REF_KPP D', "B.KPPADM = D.KD_KPP", "left") + // ->join('MFWP B', "A.NPWP = B.NPWP", "left") + ->join('REF_KPP D', "A.KPPADM_MFWP = D.KD_KPP", "left") ->join('KPDL_REF_STATUS_SPT E', "A.STATUS_SPT_TAHUNAN_TERAKHIR = E.ID_STATUS_SPT", "left"); if ($query != 'lainnya') { @@ -183,7 +184,7 @@ class KLU extends \App\Controllers\Kewilayahan\Kytp } if ($globalFilter) { - $columnFilter = ["NAMA_WP", "ALAMAT"]; + $columnFilter = ["NAMA_WP", "ALAMAT_MFWP"]; $data->GroupStart(); $data->orGroupStart(); foreach ($columnFilter as $key => $value) { @@ -222,9 +223,9 @@ class KLU extends \App\Controllers\Kewilayahan\Kytp return $data->get(); } if ($type == 'raw') { - $data = $data->select("A.NPWP, A.KD_GOLPOK,A.NM_GOLPOK, B.NAMA_WP, B.ALAMAT, B.KELURAHAN, B.KECAMATAN, B.KOTA, B.PROPINSI, - B.KPPADM, B.NAMA_AR, B.FLAG_WPS_WPK, D.NM_KANTOR, A.STATUS_WP_MFWP, A.JNS_WP_MFWP, - B.TANGGAL_DAFTAR, A.JUMLAH_PEMBAYARAN_THN_TERAKHIR,E.KETERANGAN"); + $data = $data->select("A.NPWP, A.KD_GOLPOK,A.NM_GOLPOK, A.NAMA_WP, A.ALAMAT_MFWP, A.KELURAHAN_MFWP, A.KECAMATAN_MFWP, A.KOTA_MFWP, A.PROPINSI_MFWP, + A.KPPADM_MFWP, A.NAMA_AR_MFWP, A.FLAG_WPS_WPK, A.STATUS_WP_MFWP, A.JNS_WP_MFWP, A.STATUS_SPT_TAHUNAN_TERAKHIR, + A.TANGGAL_DAFTAR, JUMLAH_PEMBAYARAN_THN_TERAKHIR, D.NM_KANTOR, E.KETERANGAN"); // print_r($data->getCompiledSelect()); // exit; return $data->get($size - 1, $start); diff --git a/app/Controllers/Kewilayahan/Sebaran/PayComp.php b/app/Controllers/Kewilayahan/Sebaran/PayComp.php index 65e1fe86..2d9664e2 100644 --- a/app/Controllers/Kewilayahan/Sebaran/PayComp.php +++ b/app/Controllers/Kewilayahan/Sebaran/PayComp.php @@ -125,7 +125,11 @@ class PayComp extends \App\Controllers\Kewilayahan\Kytp $sorting = json_decode($this->request->getGet('sorting')); // [{"id":"ALAMAT","desc":false}] $db = \Config\Database::connect(); - $data = $db->table('KPDL_MV_LOKASI_SUBJEK A')->distinct()->select('A.NPWP, A.STATUS_SPT_TAHUNAN_TERAKHIR, JNS_WP_MFWP, STATUS_WP_MFWP, JUMLAH_PEMBAYARAN_THN_TERAKHIR')->where('A.NPWP IS NOT NULL'); + $data = $db->table('KPDL_MV_LOKASI_SUBJEK A')->distinct() + ->select('A.NPWP, A.NAMA_WP, A.ALAMAT_MFWP, A.KELURAHAN_MFWP, A.KECAMATAN_MFWP, A.KOTA_MFWP, A.PROPINSI_MFWP, + A.KPPADM_MFWP, A.NAMA_AR_MFWP, A.FLAG_WPS_WPK, A.STATUS_WP_MFWP, A.JNS_WP_MFWP, A.STATUS_SPT_TAHUNAN_TERAKHIR, + A.TANGGAL_DAFTAR, + JUMLAH_PEMBAYARAN_THN_TERAKHIR')->where('A.NPWP IS NOT NULL'); if ($opsiWilZona == 'wilayah') { $data->whereIn('ADM4_PCODE', $adm4_pcode); @@ -149,16 +153,16 @@ class PayComp extends \App\Controllers\Kewilayahan\Kytp $tahun = $tahunBulanArr[0]; $bulan = $tahunBulanArr[1]; $data = $db->newQuery()->fromSubquery($npwp, "A") - ->join('MFWP B', "A.NPWP = B.NPWP", "left") + // ->join('MFWP B', "A.NPWP = B.NPWP", "left") ->join('KPDL_MV_PENERIMAAN_AGG_PC C', "A.NPWP = C.NPWP AND C.THNBYR = '" . $tahun . "' and BULAN=" . $bulan, "left") - ->join('REF_KPP D', "B.KPPADM = D.KD_KPP", "left") + ->join('REF_KPP D', "A.KPPADM_MFWP = D.KD_KPP", "left") ->join('KPDL_REF_STATUS_SPT E', "A.STATUS_SPT_TAHUNAN_TERAKHIR = E.ID_STATUS_SPT", "left"); $bulanPc = explode(" ", $query)[0]; //dari string '1 bulan' '2 bulan' '12 bulan' $data->where("C.JML", (float) $bulanPc); if ($globalFilter) { - $columnFilter = ["NAMA_WP", "ALAMAT"]; + $columnFilter = ["NAMA_WP", "ALAMAT_MFWP"]; $data->GroupStart(); $data->orGroupStart(); foreach ($columnFilter as $key => $value) { @@ -195,10 +199,9 @@ class PayComp extends \App\Controllers\Kewilayahan\Kytp return $data->get(); } if ($type == 'raw') { - $data = $data->select("A.NPWP, B.NAMA_WP, B.ALAMAT, B.KELURAHAN, B.KECAMATAN, B.KOTA, B.PROPINSI, - B.KPPADM, B.NAMA_AR, B.FLAG_WPS_WPK, D.NM_KANTOR, A.STATUS_WP_MFWP, A.JNS_WP_MFWP, A.STATUS_SPT_TAHUNAN_TERAKHIR, - B.TANGGAL_DAFTAR,C.JML,JUMLAH_PEMBAYARAN_THN_TERAKHIR, - E.KETERANGAN"); + $data = $data->select("A.NPWP, A.NAMA_WP, A.ALAMAT_MFWP, A.KELURAHAN_MFWP, A.KECAMATAN_MFWP, A.KOTA_MFWP, A.PROPINSI_MFWP, + A.KPPADM_MFWP, A.NAMA_AR_MFWP, A.FLAG_WPS_WPK, A.STATUS_WP_MFWP, A.JNS_WP_MFWP, A.STATUS_SPT_TAHUNAN_TERAKHIR, + A.TANGGAL_DAFTAR, C.JML, JUMLAH_PEMBAYARAN_THN_TERAKHIR, D.NM_KANTOR, E.KETERANGAN"); // print_r($data->getCompiledSelect()); // exit; return $data->get($size - 1, $start); diff --git a/app/Controllers/Kewilayahan/Sebaran/Pembayaran.php b/app/Controllers/Kewilayahan/Sebaran/Pembayaran.php index 14079459..6529afc2 100644 --- a/app/Controllers/Kewilayahan/Sebaran/Pembayaran.php +++ b/app/Controllers/Kewilayahan/Sebaran/Pembayaran.php @@ -136,7 +136,10 @@ class Pembayaran extends \App\Controllers\Kewilayahan\Kytp $sorting = json_decode($this->request->getGet('sorting')); // [{"id":"ALAMAT","desc":false}] $db = \Config\Database::connect(); - $data = $db->table('KPDL_MV_LOKASI_SUBJEK A')->distinct()->select('A.NPWP, A.STATUS_SPT_TAHUNAN_TERAKHIR, JNS_WP_MFWP, STATUS_WP_MFWP')->where('A.NPWP IS NOT NULL'); + $data = $db->table('KPDL_MV_LOKASI_SUBJEK A')->distinct() + ->select('A.NPWP, A.NAMA_WP, A.ALAMAT_MFWP, A.KELURAHAN_MFWP, A.KECAMATAN_MFWP, A.KOTA_MFWP, A.PROPINSI_MFWP, + A.KPPADM_MFWP, A.NAMA_AR_MFWP, A.FLAG_WPS_WPK, A.STATUS_WP_MFWP, A.JNS_WP_MFWP, A.STATUS_SPT_TAHUNAN_TERAKHIR, + A.TANGGAL_DAFTAR, JUMLAH_PEMBAYARAN_THN_TERAKHIR')->where('A.NPWP IS NOT NULL'); if ($opsiWilZona == 'wilayah') { $data->whereIn('ADM4_PCODE', $adm4_pcode); @@ -160,9 +163,9 @@ class Pembayaran extends \App\Controllers\Kewilayahan\Kytp $tahun = $tahunBulanArr[0]; $bulan = $tahunBulanArr[1]; $data = $db->newQuery()->fromSubquery($npwp, "A") - ->join('MFWP B', "A.NPWP = B.NPWP", "left") + // ->join('MFWP B', "A.NPWP = B.NPWP", "left") ->join('KPDL_MV_PENERIMAAN_AGG C', "A.NPWP = C.NPWP AND C.THNBYR = '" . $tahun . "' and BULAN=" . $bulan, "left") - ->join('REF_KPP D', "B.KPPADM = D.KD_KPP", "left") + ->join('REF_KPP D', "A.KPPADM_MFWP = D.KD_KPP", "left") ->join('KPDL_REF_STATUS_SPT E', "A.STATUS_SPT_TAHUNAN_TERAKHIR = E.ID_STATUS_SPT", "left"); if ($query == 'black') { $data->groupStart(); @@ -176,7 +179,7 @@ class Pembayaran extends \App\Controllers\Kewilayahan\Kytp } if ($globalFilter) { - $columnFilter = ["NAMA_WP", "ALAMAT"]; + $columnFilter = ["NAMA_WP", "ALAMAT_MFWP"]; $data->GroupStart(); $data->orGroupStart(); foreach ($columnFilter as $key => $value) { @@ -215,10 +218,10 @@ class Pembayaran extends \App\Controllers\Kewilayahan\Kytp return $data->get(); } if ($type == 'raw') { - $data = $data->select("A.NPWP, B.NAMA_WP, B.ALAMAT, B.KELURAHAN, B.KECAMATAN, B.KOTA, B.PROPINSI, - B.KPPADM, B.NAMA_AR, B.FLAG_WPS_WPK, D.NM_KANTOR, A.STATUS_WP_MFWP, A.JNS_WP_MFWP, A.STATUS_SPT_TAHUNAN_TERAKHIR, - B.TANGGAL_DAFTAR,COALESCE(C.JML,0) JML,CASE WHEN C.WARNA_BYR IS NULL THEN 'BLACK' ELSE C.WARNA_BYR END WARNA_BYR, - E.KETERANGAN"); + $data = $data->select("A.NPWP, A.NAMA_WP, A.ALAMAT_MFWP, A.KELURAHAN_MFWP, A.KECAMATAN_MFWP, A.KOTA_MFWP, A.PROPINSI_MFWP, + A.KPPADM_MFWP, A.NAMA_AR_MFWP, A.FLAG_WPS_WPK, A.STATUS_WP_MFWP, A.JNS_WP_MFWP, A.STATUS_SPT_TAHUNAN_TERAKHIR, + A.TANGGAL_DAFTAR,COALESCE(C.JML,0) JML,CASE WHEN C.WARNA_BYR IS NULL THEN 'BLACK' ELSE C.WARNA_BYR END WARNA_BYR, + E.KETERANGAN, D.NM_KANTOR"); // print_r($data->getCompiledSelect()); // exit; return $data->get($size - 1, $start); diff --git a/app/Controllers/Kewilayahan/Sebaran/Pengampu.php b/app/Controllers/Kewilayahan/Sebaran/Pengampu.php index 11d1ccdd..b420ef46 100644 --- a/app/Controllers/Kewilayahan/Sebaran/Pengampu.php +++ b/app/Controllers/Kewilayahan/Sebaran/Pengampu.php @@ -133,7 +133,10 @@ class Pengampu extends \App\Controllers\Kewilayahan\Kytp $sorting = json_decode($this->request->getGet('sorting')); // [{"id":"ALAMAT","desc":false}] $db = \Config\Database::connect(); - $data = $db->table('KPDL_MV_LOKASI_SUBJEK A')->distinct()->select('A.NPWP, A.KPPADM_PENGAMPU, A.STATUS_SPT_TAHUNAN_TERAKHIR, JNS_WP_MFWP, STATUS_WP_MFWP, JUMLAH_PEMBAYARAN_THN_TERAKHIR')->where('A.NPWP IS NOT NULL'); + $data = $db->table('KPDL_MV_LOKASI_SUBJEK A')->distinct() + ->select('A.NPWP, A.NAMA_WP, A.ALAMAT_MFWP, A.KELURAHAN_MFWP, A.KECAMATAN_MFWP, A.KOTA_MFWP, A.PROPINSI_MFWP, + A.KPPADM_MFWP, A.NAMA_AR_MFWP, A.FLAG_WPS_WPK, A.STATUS_WP_MFWP, A.JNS_WP_MFWP, A.STATUS_SPT_TAHUNAN_TERAKHIR, + A.TANGGAL_DAFTAR, JUMLAH_PEMBAYARAN_THN_TERAKHIR')->where('A.NPWP IS NOT NULL'); if ($opsiWilZona == 'wilayah') { $data->whereIn('ADM4_PCODE', $adm4_pcode); @@ -153,8 +156,8 @@ class Pengampu extends \App\Controllers\Kewilayahan\Kytp $npwp = $data; $data = $db->newQuery()->fromSubquery($npwp, "A") - ->join('MFWP B', "A.NPWP = B.NPWP", "left") - ->join('REF_KPP D', "B.KPPADM = D.KD_KPP", "left") + // ->join('MFWP B', "A.NPWP = B.NPWP", "left") + ->join('REF_KPP D', "A.KPPADM_MFWP = D.KD_KPP", "left") ->join('KPDL_REF_STATUS_SPT E', "A.STATUS_SPT_TAHUNAN_TERAKHIR = E.ID_STATUS_SPT", "left"); switch ($jenisChart) { @@ -170,10 +173,10 @@ class Pengampu extends \App\Controllers\Kewilayahan\Kytp break; } - $data->where("KPPADM_PENGAMPU", $query); + $data->where("KPPADM_MFWP", $query); if ($globalFilter) { - $columnFilter = ["NAMA_WP", "ALAMAT"]; + $columnFilter = ["NAMA_WP", "ALAMAT_MFWP"]; $data->GroupStart(); $data->orGroupStart(); foreach ($columnFilter as $key => $value) { @@ -210,9 +213,9 @@ class Pengampu extends \App\Controllers\Kewilayahan\Kytp return $data->get(); } if ($type == 'raw') { - $data = $data->select("A.NPWP, B.NAMA_WP, B.ALAMAT, B.KELURAHAN, B.KECAMATAN, B.KOTA, B.PROPINSI, - B.KPPADM, B.NAMA_AR, B.FLAG_WPS_WPK, D.NM_KANTOR, A.STATUS_WP_MFWP, A.JNS_WP_MFWP, A.STATUS_SPT_TAHUNAN_TERAKHIR, - B.TANGGAL_DAFTAR, JUMLAH_PEMBAYARAN_THN_TERAKHIR, E.KETERANGAN"); + $data = $data->select("A.NPWP, A.NAMA_WP, A.ALAMAT_MFWP, A.KELURAHAN_MFWP, A.KECAMATAN_MFWP, A.KOTA_MFWP, A.PROPINSI_MFWP, + A.KPPADM_MFWP, A.NAMA_AR_MFWP, A.FLAG_WPS_WPK, A.STATUS_WP_MFWP, A.JNS_WP_MFWP, A.STATUS_SPT_TAHUNAN_TERAKHIR, + A.TANGGAL_DAFTAR, JUMLAH_PEMBAYARAN_THN_TERAKHIR, D.NM_KANTOR, E.KETERANGAN"); // print_r($data->getCompiledSelect()); // exit; return $data->get($size - 1, $start); diff --git a/app/Controllers/Kewilayahan/Sebaran/SPTTAhunan.php b/app/Controllers/Kewilayahan/Sebaran/SPTTAhunan.php index 840d4a4c..cd381cb9 100644 --- a/app/Controllers/Kewilayahan/Sebaran/SPTTAhunan.php +++ b/app/Controllers/Kewilayahan/Sebaran/SPTTAhunan.php @@ -122,7 +122,9 @@ class SPTTAhunan extends \App\Controllers\Kewilayahan\Kytp $sorting = json_decode($this->request->getGet('sorting')); // [{"id":"ALAMAT","desc":false}] $db = \Config\Database::connect(); - $data = $db->table('KPDL_MV_LOKASI_SUBJEK A')->distinct()->select('A.NPWP, A.STATUS_SPT_TAHUNAN_TERAKHIR, JNS_WP_MFWP, STATUS_WP_MFWP, JUMLAH_PEMBAYARAN_THN_TERAKHIR')->where('A.NPWP IS NOT NULL'); + $data = $db->table('KPDL_MV_LOKASI_SUBJEK A')->distinct()->select('A.NPWP, A.NAMA_WP, A.ALAMAT_MFWP, A.KELURAHAN_MFWP, A.KECAMATAN_MFWP, A.KOTA_MFWP, A.PROPINSI_MFWP, + A.KPPADM_MFWP, A.NAMA_AR_MFWP, A.FLAG_WPS_WPK, A.STATUS_WP_MFWP, A.JNS_WP_MFWP, A.STATUS_SPT_TAHUNAN_TERAKHIR, + A.TANGGAL_DAFTAR, JUMLAH_PEMBAYARAN_THN_TERAKHIR')->where('A.NPWP IS NOT NULL'); if ($opsiWilZona == 'wilayah') { $data->whereIn('ADM4_PCODE', $adm4_pcode); @@ -149,7 +151,7 @@ class SPTTAhunan extends \App\Controllers\Kewilayahan\Kytp $data->where("STATUS_SPT_TAHUNAN_TERAKHIR", $query); if ($globalFilter) { - $columnFilter = ["NAMA_WP", "ALAMAT"]; + $columnFilter = ["NAMA_WP", "ALAMAT_MFWP"]; $data->GroupStart(); $data->orGroupStart(); foreach ($columnFilter as $key => $value) { @@ -186,9 +188,9 @@ class SPTTAhunan extends \App\Controllers\Kewilayahan\Kytp return $data->get(); } if ($type == 'raw') { - $data = $data->select("A.NPWP, B.NAMA_WP, B.ALAMAT, B.KELURAHAN, B.KECAMATAN, B.KOTA, B.PROPINSI, - B.KPPADM, B.NAMA_AR, B.FLAG_WPS_WPK, D.NM_KANTOR, A.STATUS_WP_MFWP, A.JNS_WP_MFWP, A.STATUS_SPT_TAHUNAN_TERAKHIR, - B.TANGGAL_DAFTAR, JUMLAH_PEMBAYARAN_THN_TERAKHIR, E.KETERANGAN"); + $data = $data->select("A.NPWP, A.NAMA_WP, A.ALAMAT_MFWP, A.KELURAHAN_MFWP, A.KECAMATAN_MFWP, A.KOTA_MFWP, A.PROPINSI_MFWP, + A.KPPADM_MFWP, A.NAMA_AR_MFWP, A.FLAG_WPS_WPK, A.STATUS_WP_MFWP, A.JNS_WP_MFWP, A.STATUS_SPT_TAHUNAN_TERAKHIR, + A.TANGGAL_DAFTAR, JUMLAH_PEMBAYARAN_THN_TERAKHIR, D.NM_KANTOR, E.KETERANGAN"); // print_r($data->getCompiledSelect()); // exit; return $data->get($size - 1, $start); diff --git a/app/Controllers/Kewilayahan/Sebaran/Sof.php b/app/Controllers/Kewilayahan/Sebaran/Sof.php index d4cf21e2..4bfffc71 100644 --- a/app/Controllers/Kewilayahan/Sebaran/Sof.php +++ b/app/Controllers/Kewilayahan/Sebaran/Sof.php @@ -140,7 +140,9 @@ class Sof extends \App\Controllers\Kewilayahan\Kytp $sorting = json_decode($this->request->getGet('sorting')); // [{"id":"ALAMAT","desc":false}] $db = \Config\Database::connect(); - $data = $db->table('KPDL_MV_LOKASI_SUBJEK A')->distinct()->select('A.NPWP, A.STATUS_SPT_TAHUNAN_TERAKHIR, JNS_WP_MFWP, STATUS_WP_MFWP, JUMLAH_PEMBAYARAN_THN_TERAKHIR')->where('A.NPWP IS NOT NULL'); + $data = $db->table('KPDL_MV_LOKASI_SUBJEK A')->distinct()->select('A.NPWP, A.NAMA_WP, A.ALAMAT_MFWP, A.KELURAHAN_MFWP, A.KECAMATAN_MFWP, A.KOTA_MFWP, A.PROPINSI_MFWP, + A.KPPADM_MFWP, A.NAMA_AR_MFWP, A.FLAG_WPS_WPK, A.STATUS_WP_MFWP, A.JNS_WP_MFWP, A.STATUS_SPT_TAHUNAN_TERAKHIR, + A.TANGGAL_DAFTAR, JUMLAH_PEMBAYARAN_THN_TERAKHIR')->where('A.NPWP IS NOT NULL'); if ($opsiWilZona == 'wilayah') { $data->whereIn('ADM4_PCODE', $adm4_pcode); @@ -164,15 +166,15 @@ class Sof extends \App\Controllers\Kewilayahan\Kytp $tahun = $tahunBulanArr[0]; $bulan = $tahunBulanArr[1]; $data = $db->newQuery()->fromSubquery($npwp, "A") - ->join('MFWP B', "A.NPWP = B.NPWP", "left") + // ->join('MFWP B', "A.NPWP = B.NPWP", "left") ->join('KPDL_MV_PENERIMAAN_AGG_SF C', "A.NPWP = C.NPWP AND C.THNBYR = '" . $tahun . "' and BULAN=" . $bulan, "left") - ->join('REF_KPP D', "B.KPPADM = D.KD_KPP", "left") + ->join('REF_KPP D', "A.KPPADM_MFWP = D.KD_KPP", "left") ->join('KPDL_REF_STATUS_SPT E', "A.STATUS_SPT_TAHUNAN_TERAKHIR = E.ID_STATUS_SPT", "left"); $data->where("C.LAPISAN", $query); if ($globalFilter) { - $columnFilter = ["NAMA_WP", "ALAMAT"]; + $columnFilter = ["NAMA_WP", "ALAMAT_MFWP"]; $data->GroupStart(); $data->orGroupStart(); foreach ($columnFilter as $key => $value) { @@ -209,9 +211,9 @@ class Sof extends \App\Controllers\Kewilayahan\Kytp return $data->get(); } if ($type == 'raw') { - $data = $data->select("A.NPWP, B.NAMA_WP, B.ALAMAT, B.KELURAHAN, B.KECAMATAN, B.KOTA, B.PROPINSI, - B.KPPADM, B.NAMA_AR, B.FLAG_WPS_WPK, D.NM_KANTOR, A.STATUS_WP_MFWP, A.JNS_WP_MFWP, A.STATUS_SPT_TAHUNAN_TERAKHIR, - B.TANGGAL_DAFTAR,C.LAPISAN,JUMLAH_PEMBAYARAN_THN_TERAKHIR, + $data = $data->select("A.NPWP, A.NAMA_WP, A.ALAMAT_MFWP, A.KELURAHAN_MFWP, A.KECAMATAN_MFWP, A.KOTA_MFWP, A.PROPINSI_MFWP, + A.KPPADM_MFWP, A.NAMA_AR_MFWP, A.FLAG_WPS_WPK, A.STATUS_WP_MFWP, A.JNS_WP_MFWP, A.STATUS_SPT_TAHUNAN_TERAKHIR, + A.TANGGAL_DAFTAR, C.LAPISAN,JUMLAH_PEMBAYARAN_THN_TERAKHIR, D.NM_KANTOR, E.KETERANGAN"); // print_r($data->getCompiledSelect()); // exit; diff --git a/app/Views/inc/sidebar.php b/app/Views/inc/sidebar.php index 75187c95..7cbe5a1d 100644 --- a/app/Views/inc/sidebar.php +++ b/app/Views/inc/sidebar.php @@ -78,6 +78,9 @@
+ diff --git a/app/Views/kewilayahan/dist/kpdl.js b/app/Views/kewilayahan/dist/kpdl.js index a77ff748..fc6d2cd1 100644 --- a/app/Views/kewilayahan/dist/kpdl.js +++ b/app/Views/kewilayahan/dist/kpdl.js @@ -1,2 +1,2 @@ /*! For license information please see kpdl.js.LICENSE.txt */ -(()=>{var e,t,n={3148:e=>{"use strict";function t(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);nd&&(y=d-e.x+y*f,x=-1),(y=Math.min(b,y))y||i.autoRotation&&(u.styles||{}).width)&&(o=y)),o&&(this.shortenLabel?this.shortenLabel():(v.width=Math.floor(o)+"px",(a.style||{}).textOverflow||(v.textOverflow="ellipsis"),u.css(v)))}moveLabel(e,t){let n,r=this,o=r.label,i=r.axis,a=!1;o&&o.textStr===e?(r.movedLabel=o,a=!0,delete r.label):u(i.ticks,(function(t){a||t.isNew||t===r||!t.label||t.label.textStr!==e||(r.movedLabel=t.label,a=!0,t.labelPos=r.movedLabel.xy,delete t.label)})),!a&&(r.labelPos||o)&&(n=r.labelPos||o.xy,r.movedLabel=r.createLabel(e,t,n),r.movedLabel&&r.movedLabel.attr({opacity:0}))}render(e,t,n){let r=this.axis,o=r.horiz,a=this.pos,l=m(this.tickmarkOffset,r.tickmarkOffset),s=this.getPosition(o,a,l,t),p=s.x,d=s.y,u=r.pos,h=u+r.len,f=o?p:d;!r.chart.polar&&this.isNew&&(i(f)h)&&(n=0);let g=m(n,this.label&&this.label.newOpacity,1);n=m(n,1),this.isActive=!0,this.renderGridLine(t,n),this.renderMark(s,n),this.renderLabel(s,t,g,e),this.isNew=!1,c(this,"afterRender")}renderGridLine(e,t){let n,r=this.axis,o=r.options,i={},a=this.pos,l=this.type,s=m(this.tickmarkOffset,r.tickmarkOffset),c=r.chart.renderer,p=this.gridLine,d=o.gridLineWidth,u=o.gridLineColor,h=o.gridLineDashStyle;"minor"===this.type&&(d=o.minorGridLineWidth,u=o.minorGridLineColor,h=o.minorGridLineDashStyle),p||(r.chart.styledMode||(i.stroke=u,i["stroke-width"]=d||0,i.dashstyle=h),l||(i.zIndex=1),e&&(t=0),this.gridLine=p=c.path().attr(i).addClass("highcharts-"+(l?l+"-":"")+"grid-line").add(r.gridGroup)),p&&(n=r.getPlotLinePath({value:a+s,lineWidth:p.strokeWidth(),force:"pass",old:e,acrossPanes:!1}))&&p[e||this.isNew?"attr":"animate"]({d:n,opacity:t})}renderMark(e,t){let n=this.axis,r=n.options,o=n.chart.renderer,i=this.type,a=n.tickSize(i?i+"Tick":"tick"),l=e.x,s=e.y,c=m(r["minor"!==i?"tickWidth":"minorTickWidth"],!i&&n.isXAxis?1:0),p=r["minor"!==i?"tickColor":"minorTickColor"],d=this.mark,u=!d;a&&(n.opposite&&(a[0]=-a[0]),d||(this.mark=d=o.path().addClass("highcharts-"+(i?i+"-":"")+"tick").add(n.axisGroup),n.chart.styledMode||d.attr({stroke:p,"stroke-width":c})),d[u?"attr":"animate"]({d:this.getMarkPath(l,s,a[0],d.strokeWidth(),n.horiz,o),opacity:t}))}renderLabel(e,t,n,r){let o=this.axis,i=o.horiz,a=o.options,l=this.label,s=a.labels,c=s.step,d=m(this.tickmarkOffset,o.tickmarkOffset),u=e.x,h=e.y,f=!0;l&&p(u)&&(l.xy=e=this.getLabelPosition(u,h,l,i,s,d,r,c),this.isFirst&&!this.isLast&&!a.showFirstLabel||this.isLast&&!this.isFirst&&!a.showLastLabel?f=!1:!i||s.step||s.rotation||t||0===n||this.handleOverflow(e),c&&r%c&&(f=!1),f&&p(e.y)?(e.opacity=n,l[this.isNewLabel?"attr":"animate"](e).show(!0),this.isNewLabel=!1):(l.hide(),this.isNewLabel=!0))}replaceMovedLabel(){let e=this.label,t=this.axis;e&&!this.isNew&&(e.animate({opacity:0},void 0,e.destroy),delete this.label),t.isDirty=!0,this.label=this.movedLabel,delete this.movedLabel}}})),n(t,"Core/Axis/Axis.js",[t["Core/Animation/AnimationUtilities.js"],t["Core/Axis/AxisDefaults.js"],t["Core/Color/Color.js"],t["Core/Defaults.js"],t["Core/Foundation.js"],t["Core/Globals.js"],t["Core/Axis/Tick.js"],t["Core/Utilities.js"]],(function(e,t,n,r,o,i,a,l){let{animObject:s}=e,{xAxis:c,yAxis:p}=t,{defaultOptions:d}=r,{registerEventOptions:u}=o,{deg2rad:m}=i,{arrayMax:h,arrayMin:f,clamp:g,correctFloat:b,defined:v,destroyObjectProperties:y,erase:x,error:w,extend:k,fireEvent:S,getClosestDistance:C,insertItem:O,isArray:E,isNumber:P,isString:T,merge:A,normalizeTickInterval:j,objectEach:M,pick:R,relativeLength:N,removeEvent:D,splat:I,syncTimeout:L}=l,z=(e,t)=>j(t,void 0,void 0,R(e.options.allowDecimals,t<.5||void 0!==e.tickAmount),!!e.tickAmount);k(d,{xAxis:c,yAxis:A(c,p)});class F{constructor(e,t,n){this.init(e,t,n)}init(e,t,n=this.coll){let r="xAxis"===n,o=this.isZAxis||(e.inverted?!r:r);this.chart=e,this.horiz=o,this.isXAxis=r,this.coll=n,S(this,"init",{userOptions:t}),this.opposite=R(t.opposite,this.opposite),this.side=R(t.side,this.side,o?this.opposite?0:2:this.opposite?1:3),this.setOptions(t);let i=this.options,a=i.labels;this.type??(this.type=i.type||"linear"),this.uniqueNames??(this.uniqueNames=i.uniqueNames??!0),S(this,"afterSetType"),this.userOptions=t,this.minPixelPadding=0,this.reversed=R(i.reversed,this.reversed),this.visible=i.visible,this.zoomEnabled=i.zoomEnabled,this.hasNames="category"===this.type||!0===i.categories,this.categories=E(i.categories)&&i.categories||(this.hasNames?[]:void 0),this.names||(this.names=[],this.names.keys={}),this.plotLinesAndBandsGroups={},this.positiveValuesOnly=!!this.logarithmic,this.isLinked=v(i.linkedTo),this.ticks={},this.labelEdge=[],this.minorTicks={},this.plotLinesAndBands=[],this.alternateBands={},this.len??(this.len=0),this.minRange=this.userMinRange=i.minRange||i.maxZoom,this.range=i.range,this.offset=i.offset||0,this.max=void 0,this.min=void 0;let l=R(i.crosshair,I(e.options.tooltip.crosshairs)[r?0:1]);this.crosshair=!0===l?{}:l,-1===e.axes.indexOf(this)&&(r?e.axes.splice(e.xAxis.length,0,this):e.axes.push(this),O(this,e[this.coll])),e.orderItems(this.coll),this.series=this.series||[],e.inverted&&!this.isZAxis&&r&&!v(this.reversed)&&(this.reversed=!0),this.labelRotation=P(a.rotation)?a.rotation:void 0,u(this,i),S(this,"afterInit")}setOptions(e){let t=this.horiz?{labels:{autoRotation:[-45],padding:4},margin:15}:{labels:{padding:1},title:{rotation:90*this.side}};this.options=A(t,d[this.coll],e),S(this,"afterSetOptions",{userOptions:e})}defaultLabelFormatter(){let e,t,n=this.axis,{numberFormatter:r}=this.chart,o=P(this.value)?this.value:NaN,i=n.chart.time,a=n.categories,l=this.dateTimeLabelFormat,s=d.lang,c=s.numericSymbols,p=s.numericSymbolMagnitude||1e3,u=n.logarithmic?Math.abs(o):n.tickInterval,m=c&&c.length;if(a)t=`${this.value}`;else if(l)t=i.dateFormat(l,o);else if(m&&c&&u>=1e3)for(;m--&&void 0===t;)u>=(e=Math.pow(p,m+1))&&10*o%e==0&&null!==c[m]&&0!==o&&(t=r(o/e,-1)+c[m]);return void 0===t&&(t=Math.abs(o)>=1e4?r(o,-1):r(o,-1,void 0,"")),t}getSeriesExtremes(){let e,t=this;S(this,"getSeriesExtremes",null,(function(){t.hasVisibleSeries=!1,t.dataMin=t.dataMax=t.threshold=void 0,t.softThreshold=!t.isXAxis,t.series.forEach((n=>{if(n.reserveSpace()){let r,o,i,a=n.options,l=a.threshold;if(t.hasVisibleSeries=!0,t.positiveValuesOnly&&0>=(l||0)&&(l=void 0),t.isXAxis)(r=n.xData)&&r.length&&(r=t.logarithmic?r.filter((e=>e>0)):r,o=(e=n.getXExtremes(r)).min,i=e.max,P(o)||o instanceof Date||(r=r.filter(P),o=(e=n.getXExtremes(r)).min,i=e.max),r.length&&(t.dataMin=Math.min(R(t.dataMin,o),o),t.dataMax=Math.max(R(t.dataMax,i),i)));else{let e=n.applyExtremes();P(e.dataMin)&&(o=e.dataMin,t.dataMin=Math.min(R(t.dataMin,o),o)),P(e.dataMax)&&(i=e.dataMax,t.dataMax=Math.max(R(t.dataMax,i),i)),v(l)&&(t.threshold=l),(!a.softThreshold||t.positiveValuesOnly)&&(t.softThreshold=!1)}}}))})),S(this,"afterGetSeriesExtremes")}translate(e,t,n,r,o,i){let a=this.linkedParent||this,l=r&&a.old?a.old.min:a.min;if(!P(l))return NaN;let s=a.minPixelPadding,c=(a.isOrdinal||a.brokenAxis?.hasBreaks||a.logarithmic&&o)&&a.lin2val,p=1,d=0,u=r&&a.old?a.old.transA:a.transA,m=0;return u||(u=a.transA),n&&(p*=-1,d=a.len),a.reversed&&(p*=-1,d-=p*(a.sector||a.len)),t?(m=(e=e*p+d-s)/u+l,c&&(m=a.lin2val(m))):(c&&(e=a.val2lin(e)),m=p*(e-l)*u+d+p*s+(P(i)?u*i:0),a.isRadial||(m=b(m))),m}toPixels(e,t){return this.translate(e,!1,!this.horiz,void 0,!0)+(t?0:this.pos)}toValue(e,t){return this.translate(e-(t?0:this.pos),!0,!this.horiz,void 0,!0)}getPlotLinePath(e){let t,n,r,o,i,a=this,l=a.chart,s=a.left,c=a.top,p=e.old,d=e.value,u=e.lineWidth,m=p&&l.oldChartHeight||l.chartHeight,h=p&&l.oldChartWidth||l.chartWidth,f=a.transB,b=e.translatedValue,v=e.force;function y(e,t,n){return"pass"!==v&&(e p+u&&(b=p+u),this.hasDragged=Math.sqrt(Math.pow(r-g,2)+Math.pow(i-b,2)),this.hasDragged>10)){t=n.isInsidePlot(r-c,i-p,{visiblePlotOnly:!0});let{shapeType:l,attrs:d}=this.getSelectionMarkerAttrs(g,b);(n.hasCartesianSeries||n.mapView)&&this.hasZoom&&t&&!h&&!v&&(this.selectionMarker=v=n.renderer[l](),v.attr({class:"highcharts-selection-marker",zIndex:7}).add(),n.styledMode||v.attr({fill:s||o("#334eff").setOpacity(.25).get()})),v&&v.attr(d),t&&!v&&m&&n.pan(e,a)}}dragStart(e){let t=this.chart;t.mouseIsDown=e.type,t.cancelClick=!1,t.mouseDownX=e.chartX,t.mouseDownY=e.chartY}getSelectionBox(e){let t={args:{marker:e},result:e.getBBox()};return m(this,"getSelectionBox",t),t.result}drop(e){let t,{chart:n,selectionMarker:r}=this;for(let e of n.axes)e.isPanning&&(e.isPanning=!1,(e.options.startOnTick||e.options.endOnTick||e.series.some((e=>e.boosted)))&&(e.forceRedraw=!0,e.setExtremes(e.userMin,e.userMax,!1),t=!0));if(t&&n.redraw(),r&&e){if(this.hasDragged){let t=this.getSelectionBox(r);n.transform({axes:n.axes.filter((e=>e.zoomEnabled&&("xAxis"===e.coll&&this.zoomX||"yAxis"===e.coll&&this.zoomY))),selection:{originalEvent:e,xAxis:[],yAxis:[],...t},from:t})}h(n.index)&&(this.selectionMarker=r.destroy())}n&&h(n.index)&&(p(n.container,{cursor:n._cursor}),n.cancelClick=this.hasDragged>10,n.mouseIsDown=!1,this.hasDragged=0,this.pinchDown=[])}findNearestKDPoint(e,t,n){let r;return e.forEach((function(e){let o=!(e.noSharedTooltip&&t)&&0>e.options.findNearestPointBy.indexOf("y"),i=e.searchPoint(n,o);f(i,!0)&&i.series&&(!f(r,!0)||function(e,n){let r=e.distX-n.distX,o=e.dist-n.dist,i=n.series.group?.zIndex-e.series.group?.zIndex;return 0!==r&&t?r:0!==o?o:0!==i?i:e.series.index>n.series.index?-1:1}(r,i)>0)&&(r=i)})),r}getChartCoordinatesFromPoint(e,t){let{xAxis:n,yAxis:r}=e.series,o=e.shapeArgs;if(n&&r){let i=e.clientX??e.plotX??0,a=e.plotY||0;return e.isNode&&o&&h(o.x)&&h(o.y)&&(i=o.x,a=o.y),t?{chartX:r.len+r.pos-a,chartY:n.len+n.pos-i}:{chartX:i+n.pos,chartY:a+r.pos}}if(o&&o.x&&o.y)return{chartX:o.x,chartY:o.y}}getChartPosition(){if(this.chartPosition)return this.chartPosition;let{container:e}=this.chart,t=b(e);this.chartPosition={left:t.left,top:t.top,scaleX:1,scaleY:1};let{offsetHeight:n,offsetWidth:r}=e;return r>2&&n>2&&(this.chartPosition.scaleX=t.width/r,this.chartPosition.scaleY=t.height/n),this.chartPosition}getCoordinates(e){let t={xAxis:[],yAxis:[]};for(let n of this.chart.axes)t[n.isXAxis?"xAxis":"yAxis"].push({axis:n,value:n.toValue(e[n.horiz?"chartX":"chartY"])});return t}getHoverData(e,t,n,r,o,i){let a,l=[],s=function(e){return e.visible&&!(!o&&e.directTouch)&&v(e.options.enableMouseTracking,!0)},c=t,p={chartX:i?i.chartX:void 0,chartY:i?i.chartY:void 0,shared:o};m(this,"beforeGetHoverData",p),a=c&&!c.stickyTracking?[c]:n.filter((e=>e.stickyTracking&&(p.filter||s)(e)));let d=r&&e||!i?e:this.findNearestKDPoint(a,o,i);return c=d&&d.series,d&&(o&&!c.noSharedTooltip?(a=n.filter((function(e){return p.filter?p.filter(e):s(e)&&!e.noSharedTooltip}))).forEach((function(e){let t=u(e.points,(function(e){return e.x===d.x&&!e.isNull}));f(t)&&(e.boosted&&e.boost&&(t=e.boost.getPoint(t)),l.push(t))})):l.push(d)),m(this,"afterGetHoverData",p={hoverPoint:d}),{hoverPoint:p.hoverPoint,hoverSeries:c,hoverPoints:l}}getPointFromEvent(e){let t,n=e.target;for(;n&&!t;)t=n.point,n=n.parentNode;return t}onTrackerMouseOut(e){let t=this.chart,n=e.relatedTarget,r=t.hoverSeries;this.isDirectTouch=!1,!r||!n||r.stickyTracking||this.inClass(n,"highcharts-tooltip")||this.inClass(n,"highcharts-series-"+r.index)&&this.inClass(n,"highcharts-tracker")||r.onMouseOut()}inClass(e,t){let n,r=e;for(;r;){if(n=c(r,"class")){if(-1!==n.indexOf(t))return!0;if(-1!==n.indexOf("highcharts-container"))return!1}r=r.parentElement}}constructor(e,t){this.hasDragged=0,this.pointerCaptureEventsToUnbind=[],this.eventsToUnbind=[],this.options=t,this.chart=e,this.runChartClick=!!t.chart.events?.click,this.pinchDown=[],this.setDOMEvents(),m(this,"afterInit")}normalize(e,t){let n=e.touches,r=n?n.length?n.item(0):v(n.changedTouches,e.changedTouches)[0]:e;t||(t=this.getChartPosition());let o=r.pageX-t.left,i=r.pageY-t.top;return d(e,{chartX:Math.round(o/=t.scaleX),chartY:Math.round(i/=t.scaleY)})}onContainerClick(e){let t=this.chart,n=t.hoverPoint,r=this.normalize(e),o=t.plotLeft,i=t.plotTop;!t.cancelClick&&(n&&this.inClass(r.target,"highcharts-tracker")?(m(n.series,"click",d(r,{point:n})),t.hoverPoint&&n.firePointEvent("click",r)):(d(r,this.getCoordinates(r)),t.isInsidePlot(r.chartX-o,r.chartY-i,{visiblePlotOnly:!0})&&m(t,"click",r)))}onContainerMouseDown(e){let n=!(1&~(e.buttons||e.button));e=this.normalize(e),t.isFirefox&&0!==e.button&&this.onContainerMouseMove(e),(void 0===e.button||n)&&(this.zoomOption(e),n&&e.preventDefault?.(),this.dragStart(e))}onContainerMouseLeave(e){let{pointer:t}=i[v(w.hoverChartIndex,-1)]||{};e=this.normalize(e),this.onContainerMouseMove(e),t&&!this.inClass(e.relatedTarget,"highcharts-tooltip")&&(t.reset(),t.chartPosition=void 0)}onContainerMouseEnter(){delete this.chartPosition}onContainerMouseMove(e){let t=this.chart,n=t.tooltip,r=this.normalize(e);this.setHoverChartIndex(e),("mousedown"===t.mouseIsDown||this.touchSelect(r))&&this.drag(r),!t.openMenu&&(this.inClass(r.target,"highcharts-tracker")||t.isInsidePlot(r.chartX-t.plotLeft,r.chartY-t.plotTop,{visiblePlotOnly:!0}))&&(!n||!n.shouldStickOnContact(r))&&(this.inClass(r.target,"highcharts-no-tooltip")?this.reset(!1,0):this.runPointActions(r))}onDocumentTouchEnd(e){this.onDocumentMouseUp(e)}onContainerTouchMove(e){this.touchSelect(e)?this.onContainerMouseMove(e):this.touch(e)}onContainerTouchStart(e){this.touchSelect(e)?this.onContainerMouseDown(e):(this.zoomOption(e),this.touch(e,!0))}onDocumentMouseMove(e){let t=this.chart,n=t.tooltip,r=this.chartPosition,o=this.normalize(e,r);!r||t.isInsidePlot(o.chartX-t.plotLeft,o.chartY-t.plotTop,{visiblePlotOnly:!0})||n&&n.shouldStickOnContact(o)||o.target!==t.container.ownerDocument&&this.inClass(o.target,"highcharts-tracker")||this.reset()}onDocumentMouseUp(e){i[v(w.hoverChartIndex,-1)]?.pointer?.drop(e)}pinch(e){let t=this,{chart:n,hasZoom:r,lastTouches:o}=t,i=[].map.call(e.touches||[],(e=>t.normalize(e))),a=i.length,l=1===a&&(t.inClass(e.target,"highcharts-tracker")&&n.runTrackerClick||t.runChartClick),s=n.tooltip,c=1===a&&v(s?.options.followTouchMove,!0);a>1?t.initiated=!0:c&&(t.initiated=!1),r&&t.initiated&&!l&&!1!==e.cancelable&&e.preventDefault(),"touchstart"===e.type?(t.pinchDown=i,t.res=!0,n.mouseDownX=e.chartX):c?this.runPointActions(t.normalize(e)):o&&(m(n,"touchpan",{originalEvent:e,touches:i},(()=>{let t=e=>{let t=e[0],n=e[1]||t;return{x:t.chartX,y:t.chartY,width:n.chartX-t.chartX,height:n.chartY-t.chartY}};n.transform({axes:n.axes.filter((e=>e.zoomEnabled&&(this.zoomHor&&e.horiz||this.zoomVert&&!e.horiz))),to:t(i),from:t(o),trigger:e.type})})),t.res&&(t.res=!1,this.reset(!1,0))),t.lastTouches=i}reset(e,t){let n=this.chart,r=n.hoverSeries,o=n.hoverPoint,i=n.hoverPoints,a=n.tooltip,l=a&&a.shared?i:o;e&&l&&x(l).forEach((function(t){t.series.isCartesian&&void 0===t.plotX&&(e=!1)})),e?a&&l&&x(l).length&&(a.refresh(l),a.shared&&i?i.forEach((function(e){e.setState(e.state,!0),e.series.isCartesian&&(e.series.xAxis.crosshair&&e.series.xAxis.drawCrosshair(null,e),e.series.yAxis.crosshair&&e.series.yAxis.drawCrosshair(null,e))})):o&&(o.setState(o.state,!0),n.axes.forEach((function(e){e.crosshair&&o.series[e.coll]===e&&e.drawCrosshair(null,o)})))):(o&&o.onMouseOut(),i&&i.forEach((function(e){e.setState()})),r&&r.onMouseOut(),a&&a.hide(t),this.unDocMouseMove&&(this.unDocMouseMove=this.unDocMouseMove()),n.axes.forEach((function(e){e.hideCrosshair()})),n.hoverPoints=n.hoverPoint=void 0)}runPointActions(e,t,n){let r=this.chart,o=r.series,a=r.tooltip&&r.tooltip.options.enabled?r.tooltip:void 0,l=!!a&&a.shared,c=t||r.hoverPoint,p=c&&c.series||r.hoverSeries,d=(!e||"touchmove"!==e.type)&&(!!t||p&&p.directTouch&&this.isDirectTouch),m=this.getHoverData(c,p,o,d,l,e);c=m.hoverPoint,p=m.hoverSeries;let h=m.hoverPoints,f=p&&p.tooltipOptions.followPointer&&!p.tooltipOptions.split,g=l&&p&&!p.noSharedTooltip;if(c&&(n||c!==r.hoverPoint||a&&a.isHidden)){if((r.hoverPoints||[]).forEach((function(e){-1===h.indexOf(e)&&e.setState()})),r.hoverSeries!==p&&p.onMouseOver(),this.applyInactiveState(h),(h||[]).forEach((function(e){e.setState("hover")})),r.hoverPoint&&r.hoverPoint.firePointEvent("mouseOut"),!c.series)return;r.hoverPoints=h,r.hoverPoint=c,c.firePointEvent("mouseOver",void 0,(()=>{a&&c&&a.refresh(g?h:c,e)}))}else if(f&&a&&!a.isHidden){let t=a.getAnchor([{}],e);r.isInsidePlot(t[0],t[1],{visiblePlotOnly:!0})&&a.updatePosition({plotX:t[0],plotY:t[1]})}this.unDocMouseMove||(this.unDocMouseMove=s(r.container.ownerDocument,"mousemove",(e=>i[w.hoverChartIndex??-1]?.pointer?.onDocumentMouseMove(e))),this.eventsToUnbind.push(this.unDocMouseMove)),r.axes.forEach((function(t){let n,o=v((t.crosshair||{}).snap,!0);!o||(n=r.hoverPoint)&&n.series[t.coll]===t||(n=u(h,(e=>e.series&&e.series[t.coll]===t))),n||!o?t.drawCrosshair(e,n):t.hideCrosshair()}))}setDOMEvents(){let e=this.chart.container,t=e.ownerDocument;e.onmousedown=this.onContainerMouseDown.bind(this),e.onmousemove=this.onContainerMouseMove.bind(this),e.onclick=this.onContainerClick.bind(this),this.eventsToUnbind.push(s(e,"mouseenter",this.onContainerMouseEnter.bind(this)),s(e,"mouseleave",this.onContainerMouseLeave.bind(this))),w.unbindDocumentMouseUp||(w.unbindDocumentMouseUp=[]),w.unbindDocumentMouseUp.push(s(t,"mouseup",this.onDocumentMouseUp.bind(this)));let n=this.chart.renderTo.parentElement;for(;n&&"BODY"!==n.tagName;)this.eventsToUnbind.push(s(n,"scroll",(()=>{delete this.chartPosition}))),n=n.parentElement;this.eventsToUnbind.push(s(e,"touchstart",this.onContainerTouchStart.bind(this),{passive:!1}),s(e,"touchmove",this.onContainerTouchMove.bind(this),{passive:!1})),w.unbindDocumentTouchEnd||(w.unbindDocumentTouchEnd=s(t,"touchend",this.onDocumentTouchEnd.bind(this),{passive:!1})),this.setPointerCapture(),s(this.chart,"redraw",this.setPointerCapture.bind(this))}setPointerCapture(){if(!l)return;let e=this.pointerCaptureEventsToUnbind,t=this.chart,n=t.container,r=v(t.options.tooltip?.followTouchMove,!0)&&t.series.some((e=>e.options.findNearestPointBy.indexOf("y")>-1));!this.hasPointerCapture&&r?(e.push(s(n,"pointerdown",(e=>{e.target?.hasPointerCapture(e.pointerId)&&e.target?.releasePointerCapture(e.pointerId)})),s(n,"pointermove",(e=>{t.pointer?.getPointFromEvent(e)?.onMouseOver(e)}))),t.styledMode||p(n,{"touch-action":"none"}),n.className+=" highcharts-no-touch-action",this.hasPointerCapture=!0):this.hasPointerCapture&&!r&&(e.forEach((e=>e())),e.length=0,t.styledMode||p(n,{"touch-action":v(t.options.chart.style?.["touch-action"],"manipulation")}),n.className=n.className.replace(" highcharts-no-touch-action",""),this.hasPointerCapture=!1)}setHoverChartIndex(e){let n=this.chart,r=t.charts[v(w.hoverChartIndex,-1)];if(r&&r!==n){let t={relatedTarget:n.container};e&&!e?.relatedTarget&&(e={...t,...e}),r.pointer?.onContainerMouseLeave(e||t)}r&&r.mouseIsDown||(w.hoverChartIndex=n.index)}touch(e,t){let n,{chart:r,pinchDown:o=[]}=this;this.setHoverChartIndex(),1===(e=this.normalize(e)).touches.length?r.isInsidePlot(e.chartX-r.plotLeft,e.chartY-r.plotTop,{visiblePlotOnly:!0})&&!r.openMenu?(t&&this.runPointActions(e),"touchmove"===e.type&&(n=!!o[0]&&Math.pow(o[0].chartX-e.chartX,2)+Math.pow(o[0].chartY-e.chartY,2)>=16),v(n,!0)&&this.pinch(e)):t&&this.reset():2===e.touches.length&&this.pinch(e)}touchSelect(e){return!(!this.chart.zooming.singleTouch||!e.touches||1!==e.touches.length)}zoomOption(e){let t,n,r=this.chart,o=r.inverted,i=r.zooming.type||"";/touch/.test(e.type)&&(i=v(r.zooming.pinchType,i)),this.zoomX=t=/x/.test(i),this.zoomY=n=/y/.test(i),this.zoomHor=t&&!o||n&&o,this.zoomVert=n&&!o||t&&o,this.hasZoom=t||n}}return(r=w||(w={})).compose=function(e){y(a,"Core.Pointer")&&s(e,"beforeRender",(function(){this.pointer=new r(this,this.options)}))},w})),n(t,"Core/Legend/LegendSymbol.js",[t["Core/Utilities.js"]],(function(e){var t;let{extend:n,merge:r,pick:o}=e;return function(e){function t(e,t,i){let a,l=this.legendItem=this.legendItem||{},{chart:s,options:c}=this,{baseline:p=0,symbolWidth:d,symbolHeight:u}=e,m=this.symbol||"circle",h=u/2,f=s.renderer,g=l.group,b=p-Math.round((e.fontMetrics?.b||u)*(i?.4:.3)),v={},y=c.marker,x=0;if(s.styledMode||(v["stroke-width"]=Math.min(c.lineWidth||0,24),c.dashStyle?v.dashstyle=c.dashStyle:"square"===c.linecap||(v["stroke-linecap"]="round")),l.line=f.path().addClass("highcharts-graph").attr(v).add(g),i&&(l.area=f.path().addClass("highcharts-area").add(g)),v["stroke-linecap"]&&(x=Math.min(l.line.strokeWidth(),d)/2),d){let e=[["M",x,b],["L",d-x,b]];l.line.attr({d:e}),l.area?.attr({d:[...e,["L",d-x,p],["L",x,p]]})}if(y&&!1!==y.enabled&&d){let e=Math.min(o(y.radius,h),h);0===m.indexOf("url")&&(y=r(y,{width:u,height:u}),e=0),l.symbol=a=f.symbol(m,d/2-e,b-e,2*e,2*e,n({context:"legend"},y)).addClass("highcharts-point").add(g),a.isMarker=!0}}e.areaMarker=function(e,n){t.call(this,e,n,!0)},e.lineMarker=t,e.rectangle=function(e,t){let n=t.legendItem||{},r=e.options,i=e.symbolHeight,a=r.squareSymbol,l=a?i:e.symbolWidth;n.symbol=this.chart.renderer.rect(a?(e.symbolWidth-i)/2:0,e.baseline-i+1,l,i,o(e.options.symbolRadius,i/2)).addClass("highcharts-point").attr({zIndex:3}).add(n.group)}}(t||(t={})),t})),n(t,"Core/Series/SeriesDefaults.js",[],(function(){return{lineWidth:2,allowPointSelect:!1,crisp:!0,showCheckbox:!1,animation:{duration:1e3},enableMouseTracking:!0,events:{},marker:{enabledThreshold:2,lineColor:"#ffffff",lineWidth:0,radius:4,states:{normal:{animation:!0},hover:{animation:{duration:150},enabled:!0,radiusPlus:2,lineWidthPlus:1},select:{fillColor:"#cccccc",lineColor:"#000000",lineWidth:2}}},point:{events:{}},dataLabels:{animation:{},align:"center",borderWidth:0,defer:!0,formatter:function(){let{numberFormatter:e}=this.series.chart;return"number"!=typeof this.y?"":e(this.y,-1)},padding:5,style:{fontSize:"0.7em",fontWeight:"bold",color:"contrast",textOutline:"1px contrast"},verticalAlign:"bottom",x:0,y:0},cropThreshold:300,opacity:1,pointRange:0,softThreshold:!0,states:{normal:{animation:!0},hover:{animation:{duration:150},lineWidthPlus:1,marker:{},halo:{size:10,opacity:.25}},select:{animation:{duration:0}},inactive:{animation:{duration:150},opacity:.2}},stickyTracking:!0,turboThreshold:1e3,findNearestPointBy:"x"}})),n(t,"Core/Series/SeriesRegistry.js",[t["Core/Globals.js"],t["Core/Defaults.js"],t["Core/Series/Point.js"],t["Core/Utilities.js"]],(function(e,t,n,r){var o;let{defaultOptions:i}=t,{extend:a,extendClass:l,merge:s}=r;return function(t){function r(e,r){let o=i.plotOptions||{},a=r.defaultOptions,l=r.prototype;return l.type=e,l.pointClass||(l.pointClass=n),!t.seriesTypes[e]&&(a&&(o[e]=a),t.seriesTypes[e]=r,!0)}t.seriesTypes=e.seriesTypes,t.registerSeriesType=r,t.seriesType=function(e,o,c,p,d){let u=i.plotOptions||{};if(o=o||"",u[e]=s(u[o],c),delete t.seriesTypes[e],r(e,l(t.seriesTypes[o]||function(){},p)),t.seriesTypes[e].prototype.type=e,d){class r extends n{}a(r.prototype,d),t.seriesTypes[e].prototype.pointClass=r}return t.seriesTypes[e]}}(o||(o={})),o})),n(t,"Core/Series/Series.js",[t["Core/Animation/AnimationUtilities.js"],t["Core/Defaults.js"],t["Core/Foundation.js"],t["Core/Globals.js"],t["Core/Legend/LegendSymbol.js"],t["Core/Series/Point.js"],t["Core/Series/SeriesDefaults.js"],t["Core/Series/SeriesRegistry.js"],t["Core/Renderer/SVG/SVGElement.js"],t["Core/Utilities.js"]],(function(e,t,n,r,o,i,a,l,s,c){let{animObject:p,setAnimation:d}=e,{defaultOptions:u}=t,{registerEventOptions:m}=n,{svg:h,win:f}=r,{seriesTypes:g}=l,{arrayMax:b,arrayMin:v,clamp:y,correctFloat:x,crisp:w,defined:k,destroyObjectProperties:S,diffObjects:C,erase:O,error:E,extend:P,find:T,fireEvent:A,getClosestDistance:j,getNestedProperty:M,insertItem:R,isArray:N,isNumber:D,isString:I,merge:L,objectEach:z,pick:F,removeEvent:_,splat:B,syncTimeout:H}=c;class W{constructor(){this.zoneAxis="y"}init(e,t){let n;A(this,"init",{options:t});let r=this,o=e.series;this.eventsToUnbind=[],r.chart=e,r.options=r.setOptions(t);let i=r.options,a=!1!==i.visible;r.linkedSeries=[],r.bindAxes(),P(r,{name:i.name,state:"",visible:a,selected:!0===i.selected}),m(this,i);let l=i.events;(l&&l.click||i.point&&i.point.events&&i.point.events.click||i.allowPointSelect)&&(e.runTrackerClick=!0),r.getColor(),r.getSymbol(),r.parallelArrays.forEach((function(e){r[e+"Data"]||(r[e+"Data"]=[])})),r.isCartesian&&(e.hasCartesianSeries=!0),o.length&&(n=o[o.length-1]),r._i=F(n&&n._i,-1)+1,r.opacity=r.options.opacity,e.orderItems("series",R(this,o)),i.dataSorting&&i.dataSorting.enabled?r.setDataSortingOptions():r.points||r.data||r.setData(i.data,!1),A(this,"afterInit")}is(e){return g[e]&&this instanceof g[e]}bindAxes(){let e,t=this,n=t.options,r=t.chart;A(this,"bindAxes",null,(function(){(t.axisTypes||[]).forEach((function(o){(r[o]||[]).forEach((function(r){e=r.options,(F(n[o],0)===r.index||void 0!==n[o]&&n[o]===e.id)&&(R(t,r.series),t[o]=r,r.isDirty=!0)})),t[o]||t.optionalAxis===o||E(18,!0,r)}))})),A(this,"afterBindAxes")}updateParallelArrays(e,t,n){let r=e.series,o=D(t)?function(n){let o="y"===n&&r.toYData?r.toYData(e):e[n];r[n+"Data"][t]=o}:function(e){Array.prototype[t].apply(r[e+"Data"],n)};r.parallelArrays.forEach(o)}hasData(){return this.visible&&void 0!==this.dataMax&&void 0!==this.dataMin||this.visible&&this.yData&&this.yData.length>0}hasMarkerChanged(e,t){let n=e.marker,r=t.marker||{};return n&&(r.enabled&&!n.enabled||r.symbol!==n.symbol||r.height!==n.height||r.width!==n.width)}autoIncrement(e){let t,n,r=this.options,o=r.pointIntervalUnit,i=r.relativeXValue,a=this.chart.time,l=this.xIncrement;return l=F(l,r.pointStart,0),this.pointInterval=n=F(this.pointInterval,r.pointInterval,1),i&&D(e)&&(n*=e),o&&(t=new a.Date(l),"day"===o?a.set("Date",t,a.get("Date",t)+n):"month"===o?a.set("Month",t,a.get("Month",t)+n):"year"===o&&a.set("FullYear",t,a.get("FullYear",t)+n),n=t.getTime()-l),i&&D(e)?l+n:(this.xIncrement=l+n,l)}setDataSortingOptions(){let e=this.options;P(this,{requireSorting:!1,sorted:!1,enabledDataSorting:!0,allowDG:!1}),k(e.pointRange)||(e.pointRange=1)}setOptions(e){let t,n=this.chart,r=n.options.plotOptions,o=n.userOptions||{},i=L(e),a=n.styledMode,l={plotOptions:r,userOptions:i};A(this,"setOptions",l);let s=l.plotOptions[this.type],c=o.plotOptions||{},p=c.series||{},d=u.plotOptions[this.type]||{},m=c[this.type]||{};this.userOptions=l.userOptions;let h=L(s,r.series,m,i);this.tooltipOptions=L(u.tooltip,u.plotOptions.series?.tooltip,d?.tooltip,n.userOptions.tooltip,c.series?.tooltip,m.tooltip,i.tooltip),this.stickyTracking=F(i.stickyTracking,m.stickyTracking,p.stickyTracking,!!this.tooltipOptions.shared&&!this.noSharedTooltip||h.stickyTracking),null===s.marker&&delete h.marker,this.zoneAxis=h.zoneAxis||"y";let f=this.zones=(h.zones||[]).map((e=>({...e})));return(h.negativeColor||h.negativeFillColor)&&!h.zones&&(t={value:h[this.zoneAxis+"Threshold"]||h.threshold||0,className:"highcharts-negative"},a||(t.color=h.negativeColor,t.fillColor=h.negativeFillColor),f.push(t)),f.length&&k(f[f.length-1].value)&&f.push(a?{}:{color:this.color,fillColor:this.fillColor}),A(this,"afterSetOptions",{options:h}),h}getName(){return F(this.options.name,"Series "+(this.index+1))}getCyclic(e,t,n){let r,o,i=this.chart,a=`${e}Index`,l=`${e}Counter`,s=n?.length||i.options.chart.colorCount;!t&&(k(o=F("color"===e?this.options.colorIndex:void 0,this[a]))?r=o:(i.series.length||(i[l]=0),r=i[l]%s,i[l]+=1),n&&(t=n[r])),void 0!==r&&(this[a]=r),this[e]=t}getColor(){this.chart.styledMode?this.getCyclic("color"):this.options.colorByPoint?this.color="#cccccc":this.getCyclic("color",this.options.color||u.plotOptions[this.type].color,this.chart.options.colors)}getPointsCollection(){return(this.hasGroupedData?this.points:this.data)||[]}getSymbol(){let e=this.options.marker;this.getCyclic("symbol",e.symbol,this.chart.options.symbols)}findPointIndex(e,t){let n,r,o,a=e.id,l=e.x,s=this.points,c=this.options.dataSorting;if(a){let e=this.chart.get(a);e instanceof i&&(n=e)}else if(this.linkedParent||this.enabledDataSorting||this.options.relativeXValue){let t=t=>!t.touched&&t.index===e.index;if(c&&c.matchByName?t=t=>!t.touched&&t.name===e.name:this.options.relativeXValue&&(t=t=>!t.touched&&t.options.x===e.x),!(n=T(s,t)))return}return n&&void 0!==(o=n&&n.index)&&(r=!0),void 0===o&&D(l)&&(o=this.xData.indexOf(l,t)),-1!==o&&void 0!==o&&this.cropped&&(o=o>=this.cropStart?o-this.cropStart:o),!r&&D(o)&&s[o]&&s[o].touched&&(o=void 0),o}updateData(e,t){let n,r,o,i,a=this.options,l=a.dataSorting,s=this.points,c=[],p=this.requireSorting,d=e.length===s.length,u=!0;if(this.xIncrement=null,e.forEach((function(e,t){let r,o=k(e)&&this.pointClass.prototype.optionsToObject.call({series:this},e)||{},u=o.x;o.id||D(u)?(-1===(r=this.findPointIndex(o,i))||void 0===r?c.push(e):s[r]&&e!==a.data[r]?(s[r].update(e,!1,null,!1),s[r].touched=!0,p&&(i=r+1)):s[r]&&(s[r].touched=!0),(!d||t!==r||l&&l.enabled||this.hasDerivedData)&&(n=!0)):c.push(e)}),this),n)for(r=s.length;r--;)(o=s[r])&&!o.touched&&o.remove&&o.remove(!1,t);else!d||l&&l.enabled?u=!1:(e.forEach((function(e,t){e===s[t].y||s[t].destroyed||s[t].update(e,!1,null,!1)})),c.length=0);return s.forEach((function(e){e&&(e.touched=!1)})),!!u&&(c.forEach((function(e){this.addPoint(e,!1,null,null,!1)}),this),null===this.xIncrement&&this.xData&&this.xData.length&&(this.xIncrement=b(this.xData),this.autoIncrement()),!0)}setData(e,t=!0,n,r){let o,i,a,l,s=this,c=s.points,p=c&&c.length||0,d=s.options,u=s.chart,m=d.dataSorting,h=s.xAxis,f=d.turboThreshold,g=this.xData,b=this.yData,v=s.pointArrayMap,y=v&&v.length,x=d.keys,w=0,k=1;u.options.chart.allowMutatingData||(d.data&&delete s.options.data,s.userOptions.data&&delete s.userOptions.data,l=L(!0,e));let S=(e=l||e||[]).length;if(m&&m.enabled&&(e=this.sortData(e)),u.options.chart.allowMutatingData&&!1!==r&&S&&p&&!s.cropped&&!s.hasGroupedData&&s.visible&&!s.boosted&&(a=this.updateData(e,n)),!a){s.xIncrement=null,s.colorCounter=0,this.parallelArrays.forEach((function(e){s[e+"Data"].length=0}));let t=f&&S>f;if(t){let n=s.getFirstValidPoint(e),r=s.getFirstValidPoint(e,S-1,-1),a=e=>!(!N(e)||!x&&!D(e[0]));if(D(n)&&D(r))for(o=0;o=s,e=(s-a+l)/2,n=[l-e,R(o.min,l-e)],t&&(n[2]=i?i.log2lin(this.dataMin):this.dataMin),r=[(l=h(n))+s,R(o.max,l+s)],t&&(r[2]=i?i.log2lin(this.dataMax):this.dataMax),(a=f(r))-le-t)),e=C([n]))}return e&&t?Math.min(e,t):e||t}nameToX(e){let t,n=E(this.options.categories),r=n?this.categories:this.names,o=e.options.x;return e.series.requireSorting=!1,v(o)||(o=this.uniqueNames&&r?n?r.indexOf(e.name):R(r.keys[e.name],-1):e.series.autoIncrement()),-1===o?!n&&r&&(t=r.length):t=o,void 0!==t?(this.names[t]=e.name,this.names.keys[e.name]=t):e.x&&(t=e.x),t}updateNames(){let e=this,t=this.names;t.length>0&&(Object.keys(t.keys).forEach((function(e){delete t.keys[e]})),t.length=0,this.minRange=this.userMinRange,(this.series||[]).forEach((t=>{t.xIncrement=null,(!t.points||t.isDirtyData)&&(e.max=Math.max(e.max,t.xData.length-1),t.processData(),t.generatePoints()),t.data.forEach((function(n,r){let o;n?.options&&void 0!==n.name&&void 0!==(o=e.nameToX(n))&&o!==n.x&&(n.x=o,t.xData[r]=o)}))})))}setAxisTranslation(){let e,t,n=this,r=n.max-n.min,o=n.linkedParent,i=!!n.categories,a=n.isXAxis,l=n.axisPointRange||0,s=0,c=0,p=n.transA;(a||i||l)&&(e=n.getClosest(),o?(s=o.minPointOffset,c=o.pointRangePadding):n.series.forEach((function(t){let r=i?1:a?R(t.options.pointRange,e,0):n.axisPointRange||0,o=t.options.pointPlacement;if(l=Math.max(l,r),!n.single||i){let e=t.is("xrange")?!a:a;s=Math.max(s,e&&T(o)?0:r/2),c=Math.max(c,e&&"on"===o?0:r)}})),t=n.ordinal&&n.ordinal.slope&&e?n.ordinal.slope/e:1,n.minPointOffset=s*=t,n.pointRangePadding=c*=t,n.pointRange=Math.min(l,n.single&&i?1:r),a&&e&&(n.closestPointRange=e)),n.translationSlope=n.transA=p=n.staticScale||n.len/(r+c||1),n.transB=n.horiz?n.left:n.bottom,n.minPixelPadding=p*s,S(this,"afterSetAxisTranslation")}minFromRange(){let{max:e,min:t}=this;return P(e)&&P(t)&&e-t||void 0}setTickInterval(e){let t,n,r,o,i,{categories:a,chart:l,dataMax:s,dataMin:c,dateTime:p,isXAxis:d,logarithmic:u,options:m,softThreshold:h}=this,f=P(this.threshold)?this.threshold:void 0,g=this.minRange||0,{ceiling:y,floor:x,linkedTo:k,softMax:C,softMin:O}=m,E=P(k)&&l[this.coll]?.[k],T=m.tickPixelInterval,A=m.maxPadding,j=m.minPadding,M=0,N=P(m.tickInterval)&&m.tickInterval>=0?m.tickInterval:void 0;if(p||a||E||this.getTickAmount(),o=R(this.userMin,m.min),i=R(this.userMax,m.max),E?(this.linkedParent=E,t=E.getExtremes(),this.min=R(t.min,t.dataMin),this.max=R(t.max,t.dataMax),this.type!==E.type&&w(11,!0,l)):(h&&v(f)&&P(s)&&P(c)&&(c>=f?(n=f,j=0):s<=f&&(r=f,A=0)),this.min=R(o,n,c),this.max=R(i,r,s)),P(this.max)&&P(this.min)&&(u&&(this.positiveValuesOnly&&!e&&0>=Math.min(this.min,R(c,this.min))&&w(10,!0,l),this.min=b(u.log2lin(this.min),16),this.max=b(u.log2lin(this.max),16)),this.range&&P(c)&&(this.userMin=this.min=o=Math.max(c,this.minFromRange()||0),this.userMax=i=this.max,this.range=void 0)),S(this,"foundExtremes"),this.adjustForMinRange(),P(this.min)&&P(this.max)){if(!P(this.userMin)&&P(O)&&O=0?w:0,k=k>=0?k:1),1===n.length&&(k=0),w===k)for(o=0;o{let r=M(n,e),o=M(n,t);return o
',pointFormat:"x: {point.x}
y: {point.y}
"}}})),n(t,"Series/Scatter/ScatterSeries.js",[t["Series/Scatter/ScatterSeriesDefaults.js"],t["Core/Series/SeriesRegistry.js"],t["Core/Utilities.js"]],(function(e,t,n){let{column:r,line:o}=t.seriesTypes,{addEvent:i,extend:a,merge:l}=n;class s extends o{applyJitter(){let e=this,t=this.options.jitter,n=this.points.length;t&&this.points.forEach((function(r,o){["x","y"].forEach((function(i,a){if(t[i]&&!r.isNull){let l=`plot${i.toUpperCase()}`,s=e[`${i}Axis`],c=t[i]*s.transA;if(s&&!s.logarithmic){let e=Math.max(0,(r[l]||0)-c),t=Math.min(s.len,(r[l]||0)+c);r[l]=e+(t-e)*function(e){let t=1e4*Math.sin(e);return t-Math.floor(t)}(o+a*n),"x"===i&&(r.clientX=r.plotX)}}}))}))}drawGraph(){this.options.lineWidth?super.drawGraph():this.graph&&(this.graph=this.graph.destroy())}}return s.defaultOptions=l(o.defaultOptions,e),a(s.prototype,{drawTracker:r.prototype.drawTracker,sorted:!1,requireSorting:!1,noSharedTooltip:!0,trackerGroups:["group","markerGroup","dataLabelsGroup"]}),i(s,"afterTranslate",(function(){this.applyJitter()})),t.registerSeriesType("scatter",s),s})),n(t,"Series/CenteredUtilities.js",[t["Core/Globals.js"],t["Core/Series/Series.js"],t["Core/Utilities.js"]],(function(e,t,n){var r,o;let{deg2rad:i}=e,{fireEvent:a,isNumber:l,pick:s,relativeLength:c}=n;return(o=r||(r={})).getCenter=function(){let e,n,r,o=this.options,i=this.chart,p=2*(o.slicedOffset||0),d=i.plotWidth-2*p,u=i.plotHeight-2*p,m=o.center,h=Math.min(d,u),f=o.thickness,g=o.size,b=o.innerSize||0;"string"==typeof g&&(g=parseFloat(g)),"string"==typeof b&&(b=parseFloat(b));let v=[s(m[0],"50%"),s(m[1],"50%"),s(g&&g<0?void 0:o.size,"100%"),s(b&&b<0?void 0:o.innerSize||0,"0%")];for(!i.angular||this instanceof t||(v[3]=0),n=0;n<4;++n)r=v[n],e=n<2||2===n&&/%$/.test(r),v[n]=c(r,[d,u,h,v[2]][n])+(e?p:0);return v[3]>v[2]&&(v[3]=v[2]),l(f)&&2*f-1&&(i[c]=!(a[c]=u))}}else m=he(m===a?m.splice(b,m.length):m),o?o(null,a,m,s):f.apply(a,m)}))}function ge(e){for(var r,o,i,a=e.length,l=t.relative[e[0].type],s=l||t.relative[" "],c=l?1:0,d=ue((function(e){return e===r}),s,!0),u=ue((function(e){return p.call(r,e)>-1}),s,!0),m=[function(e,t,o){var i=!l&&(o||t!=n)||((r=t).nodeType?d(e,t,o):u(e,t,o));return r=null,i}];c1&&me(m),c>1&&de(e.slice(0,c-1).concat({value:" "===e[c-2].type?"*":""})).replace(R,"$1"),o,c0,i=e.length>0,a=function(a,l,c,p,u){var m,h,g,b=0,y="0",x=a&&[],w=[],k=n,S=a||i&&t.find.TAG("*",u),C=v+=null==k?1:Math.random()||.1,E=S.length;for(u&&(n=l==s||l||u);y!==E&&null!=(m=S[y]);y++){if(i&&m){for(h=0,l||m.ownerDocument==s||(se(m),c=!d);g=e[h++];)if(g(m,l||s,c)){f.call(p,m);break}u&&(v=C)}o&&((m=!g&&m)&&b--,a&&x.push(m))}if(b+=y,o&&y!==b){for(h=0;g=r[h++];)g(x,w,l,c);if(a){if(b>0)for(;y--;)x[y]||w[y]||(w[y]=T.call(p));w=he(w)}f.apply(p,w),u&&!a&&w.length>0&&b+r.length>1&&O.uniqueSort(p)}return u&&(v=C,n=k),x};return o?te(a):a}(a,i)),l.selector=e}return l}function ve(e,n,r,o){var i,a,l,s,c,p="function"==typeof e&&e,u=!o&&pe(e=p.selector||e);if(r=r||[],1===u.length){if((a=u[0]=u[0].slice(0)).length>2&&"ID"===(l=a[0]).type&&9===n.nodeType&&d&&t.relative[a[1].type]){if(!(n=(t.find.ID(l.matches[0].replace(K,X),n)||[])[0]))return r;p&&(n=n.parentNode),e=e.slice(a.shift().value.length)}for(i=$.needsContext.test(e)?0:a.length;i--&&(l=a[i],!t.relative[s=l.type]);)if((c=t.find[s])&&(o=c(l.matches[0].replace(K,X),q.test(a[0].type)&&le(n.parentNode)||n))){if(a.splice(i,1),!(e=o.length&&de(a)))return f.apply(r,o),r;break}}return(p||be(e,u))(o,n,!d,r,!n||q.test(e)&&le(n.parentNode)||n),r}ce.prototype=t.filters=t.pseudos,t.setFilters=new ce,g.sortStable=b.split("").sort(C).join("")===b,se(),g.sortDetached=ne((function(e){return 1&e.compareDocumentPosition(s.createElement("fieldset"))})),O.find=J,O.expr[":"]=O.expr.pseudos,O.unique=O.uniqueSort,J.compile=be,J.select=ve,J.setDocument=se,J.tokenize=pe,J.escape=O.escapeSelector,J.getText=O.text,J.isXML=O.isXMLDoc,J.selectors=O.expr,J.support=O.support,J.uniqueSort=O.uniqueSort}();var z=function(e,t,n){for(var r=[],o=void 0!==n;(e=e[t])&&9!==e.nodeType;)if(1===e.nodeType){if(o&&O(e).is(n))break;r.push(e)}return r},F=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},_=O.expr.match.needsContext,B=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function H(e,t,n){return b(t)?O.grep(e,(function(e,r){return!!t.call(e,r,e)!==n})):t.nodeType?O.grep(e,(function(e){return e===t!==n})):"string"!=typeof t?O.grep(e,(function(e){return p.call(t,e)>-1!==n})):O.filter(t,e,n)}O.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?O.find.matchesSelector(r,e)?[r]:[]:O.find.matches(e,O.grep(t,(function(e){return 1===e.nodeType})))},O.fn.extend({find:function(e){var t,n,r=this.length,o=this;if("string"!=typeof e)return this.pushStack(O(e).filter((function(){for(t=0;t1,null,!0)},removeData:function(e){return this.each((function(){se.remove(this,e)}))}}),O.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=le.get(e,t),n&&(!r||Array.isArray(n)?r=le.access(e,t,O.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=O.queue(e,t),r=n.length,o=n.shift(),i=O._queueHooks(e,t);"inprogress"===o&&(o=n.shift(),r--),o&&("fx"===t&&n.unshift("inprogress"),delete i.stop,o.call(e,(function(){O.dequeue(e,t)}),i)),!r&&i&&i.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return le.get(e,n)||le.access(e,n,{empty:O.Callbacks("once memory").add((function(){le.remove(e,[t+"queue",n])}))})}}),O.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length","
"],col:[2,"
"],tr:[2,"","
"],td:[3,"
"],_default:[0,"",""]};function Ae(e,t){var n;return n=void 0!==e.getElementsByTagName?e.getElementsByTagName(t||"*"):void 0!==e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&P(e,t)?O.merge([e],n):n}function je(e,t){for(var n=0,r=e.length;n"," -1:O.find(o,this,null,[c]).length),a[o]&&i.push(r);i.length&&l.push({elem:c,handlers:i})}return c=this,s-1)&&(n=!0);return n||(e.selectedIndex=-1),i}}}}),O.each(["radio","checkbox"],(function(){O.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=O.inArray(O(e).val(),t)>-1}},g.checkOn||(O.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}));var At=r.location,jt={guid:Date.now()},Mt=/\?/;O.parseXML=function(e){var t,n;if(!e||"string"!=typeof e)return null;try{t=(new r.DOMParser).parseFromString(e,"text/xml")}catch(e){}return n=t&&t.getElementsByTagName("parsererror")[0],t&&!n||O.error("Invalid XML: "+(n?O.map(n.childNodes,(function(e){return e.textContent})).join("\n"):e)),t};var Rt=/^(?:focusinfocus|focusoutblur)$/,Nt=function(e){e.stopPropagation()};O.extend(O.event,{trigger:function(e,t,n,o){var i,a,l,s,c,p,d,u,h=[n||y],f=m.call(e,"type")?e.type:e,g=m.call(e,"namespace")?e.namespace.split("."):[];if(a=u=l=n=n||y,3!==n.nodeType&&8!==n.nodeType&&!Rt.test(f+O.event.triggered)&&(f.indexOf(".")>-1&&(g=f.split("."),f=g.shift(),g.sort()),c=f.indexOf(":")<0&&"on"+f,(e=e[O.expando]?e:new O.Event(f,"object"==typeof e&&e)).isTrigger=o?2:3,e.namespace=g.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+g.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:O.makeArray(t,[e]),d=O.event.special[f]||{},o||!d.trigger||!1!==d.trigger.apply(n,t))){if(!o&&!d.noBubble&&!v(n)){for(s=d.delegateType||f,Rt.test(s+f)||(a=a.parentNode);a;a=a.parentNode)h.push(a),l=a;l===(n.ownerDocument||y)&&h.push(l.defaultView||l.parentWindow||r)}for(i=0;(a=h[i++])&&!e.isPropagationStopped();)u=a,e.type=i>1?s:d.bindType||f,(p=(le.get(a,"events")||Object.create(null))[e.type]&&le.get(a,"handle"))&&p.apply(a,t),(p=c&&a[c])&&p.apply&&ie(a)&&(e.result=p.apply(a,t),!1===e.result&&e.preventDefault());return e.type=f,o||e.isDefaultPrevented()||d._default&&!1!==d._default.apply(h.pop(),t)||!ie(n)||c&&b(n[f])&&!v(n)&&((l=n[c])&&(n[c]=null),O.event.triggered=f,e.isPropagationStopped()&&u.addEventListener(f,Nt),n[f](),e.isPropagationStopped()&&u.removeEventListener(f,Nt),O.event.triggered=void 0,l&&(n[c]=l)),e.result}},simulate:function(e,t,n){var r=O.extend(new O.Event,n,{type:e,isSimulated:!0});O.event.trigger(r,null,t)}}),O.fn.extend({trigger:function(e,t){return this.each((function(){O.event.trigger(e,t,this)}))},triggerHandler:function(e,t){var n=this[0];if(n)return O.event.trigger(e,t,n,!0)}});var Dt=/\[\]$/,It=/\r?\n/g,Lt=/^(?:submit|button|image|reset|file)$/i,zt=/^(?:input|select|textarea|keygen)/i;function Ft(e,t,n,r){var o;if(Array.isArray(t))O.each(t,(function(t,o){n||Dt.test(e)?r(e,o):Ft(e+"["+("object"==typeof o&&null!=o?t:"")+"]",o,n,r)}));else if(n||"object"!==k(t))r(e,t);else for(o in t)Ft(e+"["+o+"]",t[o],n,r)}O.param=function(e,t){var n,r=[],o=function(e,t){var n=b(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!O.isPlainObject(e))O.each(e,(function(){o(this.name,this.value)}));else for(n in e)Ft(n,e[n],t,o);return r.join("&")},O.fn.extend({serialize:function(){return O.param(this.serializeArray())},serializeArray:function(){return this.map((function(){var e=O.prop(this,"elements");return e?O.makeArray(e):this})).filter((function(){var e=this.type;return this.name&&!O(this).is(":disabled")&&zt.test(this.nodeName)&&!Lt.test(e)&&(this.checked||!Oe.test(e))})).map((function(e,t){var n=O(this).val();return null==n?null:Array.isArray(n)?O.map(n,(function(e){return{name:t.name,value:e.replace(It,"\r\n")}})):{name:t.name,value:n.replace(It,"\r\n")}})).get()}});var _t=/%20/g,Bt=/#.*$/,Ht=/([?&])_=[^&]*/,Wt=/^(.*?):[ \t]*([^\r\n]*)$/gm,Vt=/^(?:GET|HEAD)$/,$t=/^\/\//,Ut={},Gt={},Yt="*/".concat("*"),qt=y.createElement("a");function Kt(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,o=0,i=t.toLowerCase().match(Y)||[];if(b(n))for(;r=i[o++];)"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function Xt(e,t,n,r){var o={},i=e===Gt;function a(l){var s;return o[l]=!0,O.each(e[l]||[],(function(e,l){var c=l(t,n,r);return"string"!=typeof c||i||o[c]?i?!(s=c):void 0:(t.dataTypes.unshift(c),a(c),!1)})),s}return a(t.dataTypes[0])||!o["*"]&&a("*")}function Qt(e,t){var n,r,o=O.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((o[n]?e:r||(r={}))[n]=t[n]);return r&&O.extend(!0,e,r),e}qt.href=At.href,O.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:At.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(At.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Yt,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":O.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?Qt(Qt(e,O.ajaxSettings),t):Qt(O.ajaxSettings,e)},ajaxPrefilter:Kt(Ut),ajaxTransport:Kt(Gt),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var n,o,i,a,l,s,c,p,d,u,m=O.ajaxSetup({},t),h=m.context||m,f=m.context&&(h.nodeType||h.jquery)?O(h):O.event,g=O.Deferred(),b=O.Callbacks("once memory"),v=m.statusCode||{},x={},w={},k="canceled",S={readyState:0,getResponseHeader:function(e){var t;if(c){if(!a)for(a={};t=Wt.exec(i);)a[t[1].toLowerCase()+" "]=(a[t[1].toLowerCase()+" "]||[]).concat(t[2]);t=a[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return c?i:null},setRequestHeader:function(e,t){return null==c&&(e=w[e.toLowerCase()]=w[e.toLowerCase()]||e,x[e]=t),this},overrideMimeType:function(e){return null==c&&(m.mimeType=e),this},statusCode:function(e){var t;if(e)if(c)S.always(e[S.status]);else for(t in e)v[t]=[v[t],e[t]];return this},abort:function(e){var t=e||k;return n&&n.abort(t),C(0,t),this}};if(g.promise(S),m.url=((e||m.url||At.href)+"").replace($t,At.protocol+"//"),m.type=t.method||t.type||m.method||m.type,m.dataTypes=(m.dataType||"*").toLowerCase().match(Y)||[""],null==m.crossDomain){s=y.createElement("a");try{s.href=m.url,s.href=s.href,m.crossDomain=qt.protocol+"//"+qt.host!=s.protocol+"//"+s.host}catch(e){m.crossDomain=!0}}if(m.data&&m.processData&&"string"!=typeof m.data&&(m.data=O.param(m.data,m.traditional)),Xt(Ut,m,t,S),c)return S;for(d in(p=O.event&&m.global)&&0==O.active++&&O.event.trigger("ajaxStart"),m.type=m.type.toUpperCase(),m.hasContent=!Vt.test(m.type),o=m.url.replace(Bt,""),m.hasContent?m.data&&m.processData&&0===(m.contentType||"").indexOf("application/x-www-form-urlencoded")&&(m.data=m.data.replace(_t,"+")):(u=m.url.slice(o.length),m.data&&(m.processData||"string"==typeof m.data)&&(o+=(Mt.test(o)?"&":"?")+m.data,delete m.data),!1===m.cache&&(o=o.replace(Ht,"$1"),u=(Mt.test(o)?"&":"?")+"_="+jt.guid+++u),m.url=o+u),m.ifModified&&(O.lastModified[o]&&S.setRequestHeader("If-Modified-Since",O.lastModified[o]),O.etag[o]&&S.setRequestHeader("If-None-Match",O.etag[o])),(m.data&&m.hasContent&&!1!==m.contentType||t.contentType)&&S.setRequestHeader("Content-Type",m.contentType),S.setRequestHeader("Accept",m.dataTypes[0]&&m.accepts[m.dataTypes[0]]?m.accepts[m.dataTypes[0]]+("*"!==m.dataTypes[0]?", "+Yt+"; q=0.01":""):m.accepts["*"]),m.headers)S.setRequestHeader(d,m.headers[d]);if(m.beforeSend&&(!1===m.beforeSend.call(h,S,m)||c))return S.abort();if(k="abort",b.add(m.complete),S.done(m.success),S.fail(m.error),n=Xt(Gt,m,t,S)){if(S.readyState=1,p&&f.trigger("ajaxSend",[S,m]),c)return S;m.async&&m.timeout>0&&(l=r.setTimeout((function(){S.abort("timeout")}),m.timeout));try{c=!1,n.send(x,C)}catch(e){if(c)throw e;C(-1,e)}}else C(-1,"No Transport");function C(e,t,a,s){var d,u,y,x,w,k=t;c||(c=!0,l&&r.clearTimeout(l),n=void 0,i=s||"",S.readyState=e>0?4:0,d=e>=200&&e<300||304===e,a&&(x=function(e,t,n){for(var r,o,i,a,l=e.contents,s=e.dataTypes;"*"===s[0];)s.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(o in l)if(l[o]&&l[o].test(r)){s.unshift(o);break}if(s[0]in n)i=s[0];else{for(o in n){if(!s[0]||e.converters[o+" "+s[0]]){i=o;break}a||(a=o)}i=i||a}if(i)return i!==s[0]&&s.unshift(i),n[i]}(m,S,a)),!d&&O.inArray("script",m.dataTypes)>-1&&O.inArray("json",m.dataTypes)<0&&(m.converters["text script"]=function(){}),x=function(e,t,n,r){var o,i,a,l,s,c={},p=e.dataTypes.slice();if(p[1])for(a in e.converters)c[a.toLowerCase()]=e.converters[a];for(i=p.shift();i;)if(e.responseFields[i]&&(n[e.responseFields[i]]=t),!s&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),s=i,i=p.shift())if("*"===i)i=s;else if("*"!==s&&s!==i){if(!(a=c[s+" "+i]||c["* "+i]))for(o in c)if((l=o.split(" "))[1]===i&&(a=c[s+" "+l[0]]||c["* "+l[0]])){!0===a?a=c[o]:!0!==c[o]&&(i=l[0],p.unshift(l[1]));break}if(!0!==a)if(a&&e.throws)t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+s+" to "+i}}}return{state:"success",data:t}}(m,x,S,d),d?(m.ifModified&&((w=S.getResponseHeader("Last-Modified"))&&(O.lastModified[o]=w),(w=S.getResponseHeader("etag"))&&(O.etag[o]=w)),204===e||"HEAD"===m.type?k="nocontent":304===e?k="notmodified":(k=x.state,u=x.data,d=!(y=x.error))):(y=k,!e&&k||(k="error",e<0&&(e=0))),S.status=e,S.statusText=(t||k)+"",d?g.resolveWith(h,[u,k,S]):g.rejectWith(h,[S,k,y]),S.statusCode(v),v=void 0,p&&f.trigger(d?"ajaxSuccess":"ajaxError",[S,m,d?u:y]),b.fireWith(h,[S,k]),p&&(f.trigger("ajaxComplete",[S,m]),--O.active||O.event.trigger("ajaxStop")))}return S},getJSON:function(e,t,n){return O.get(e,t,n,"json")},getScript:function(e,t){return O.get(e,void 0,t,"script")}}),O.each(["get","post"],(function(e,t){O[t]=function(e,n,r,o){return b(n)&&(o=o||r,r=n,n=void 0),O.ajax(O.extend({url:e,type:t,dataType:o,data:n,success:r},O.isPlainObject(e)&&e))}})),O.ajaxPrefilter((function(e){var t;for(t in e.headers)"content-type"===t.toLowerCase()&&(e.contentType=e.headers[t]||"")})),O._evalUrl=function(e,t,n){return O.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){O.globalEval(e,t,n)}})},O.fn.extend({wrapAll:function(e){var t;return this[0]&&(b(e)&&(e=e.call(this[0])),t=O(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map((function(){for(var e=this;e.firstElementChild;)e=e.firstElementChild;return e})).append(this)),this},wrapInner:function(e){return b(e)?this.each((function(t){O(this).wrapInner(e.call(this,t))})):this.each((function(){var t=O(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)}))},wrap:function(e){var t=b(e);return this.each((function(n){O(this).wrapAll(t?e.call(this,n):e)}))},unwrap:function(e){return this.parent(e).not("body").each((function(){O(this).replaceWith(this.childNodes)})),this}}),O.expr.pseudos.hidden=function(e){return!O.expr.pseudos.visible(e)},O.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},O.ajaxSettings.xhr=function(){try{return new r.XMLHttpRequest}catch(e){}};var Zt={0:200,1223:204},Jt=O.ajaxSettings.xhr();g.cors=!!Jt&&"withCredentials"in Jt,g.ajax=Jt=!!Jt,O.ajaxTransport((function(e){var t,n;if(g.cors||Jt&&!e.crossDomain)return{send:function(o,i){var a,l=e.xhr();if(l.open(e.type,e.url,e.async,e.username,e.password),e.xhrFields)for(a in e.xhrFields)l[a]=e.xhrFields[a];for(a in e.mimeType&&l.overrideMimeType&&l.overrideMimeType(e.mimeType),e.crossDomain||o["X-Requested-With"]||(o["X-Requested-With"]="XMLHttpRequest"),o)l.setRequestHeader(a,o[a]);t=function(e){return function(){t&&(t=n=l.onload=l.onerror=l.onabort=l.ontimeout=l.onreadystatechange=null,"abort"===e?l.abort():"error"===e?"number"!=typeof l.status?i(0,"error"):i(l.status,l.statusText):i(Zt[l.status]||l.status,l.statusText,"text"!==(l.responseType||"text")||"string"!=typeof l.responseText?{binary:l.response}:{text:l.responseText},l.getAllResponseHeaders()))}},l.onload=t(),n=l.onerror=l.ontimeout=t("error"),void 0!==l.onabort?l.onabort=n:l.onreadystatechange=function(){4===l.readyState&&r.setTimeout((function(){t&&n()}))},t=t("abort");try{l.send(e.hasContent&&e.data||null)}catch(e){if(t)throw e}},abort:function(){t&&t()}}})),O.ajaxPrefilter((function(e){e.crossDomain&&(e.contents.script=!1)})),O.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return O.globalEval(e),e}}}),O.ajaxPrefilter("script",(function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")})),O.ajaxTransport("script",(function(e){var t,n;if(e.crossDomain||e.scriptAttrs)return{send:function(r,o){t=O("
+
+
\ No newline at end of file
diff --git a/package.json b/package.json
index 7ad42e80..521f2e25 100644
--- a/package.json
+++ b/package.json
@@ -44,5 +44,9 @@
"style-loader": "^4.0.0",
"webpack": "^5.94.0",
"webpack-dev-server": "^5.1.0"
+ },
+ "scripts": {
+ "start": "npx webpack --config webpack-dev.config.js --watch",
+ "build": "npx webpack --config webpack.config.js"
}
-}
+}
\ No newline at end of file
diff --git a/webpack-dev.config.js b/webpack-dev.config.js
new file mode 100644
index 00000000..256f97bf
--- /dev/null
+++ b/webpack-dev.config.js
@@ -0,0 +1,46 @@
+const path = require('path')
+//__dirname,
+module.exports = {
+ // entry: "./App.js",
+ entry: {
+ kpdl: './app/Views/kewilayahan/kytp/kpdl.js',
+ monitoring: './app/Views/kewilayahan/monitoring/index.js'
+ // peta: './app/Views/kewilayahan/peta/peta.js'
+ },
+ output: {
+ path: path.resolve('./app/Views/kewilayahan/dist'),
+ filename: '[name].js'
+ },
+ optimization: {
+ minimize: false
+ },
+ module: {
+ rules: [
+ {
+ exclude: /node_modules/,
+ use: {
+ loader: 'babel-loader',
+ options: {
+ presets: ['@babel/preset-react'],
+ plugins: ['@babel/plugin-proposal-optional-chaining', '@babel/plugin-proposal-nullish-coalescing-operator']
+ }
+ }
+ },
+ {
+ test: /\.css$/i,
+ // type: "asset"
+ use: ['style-loader', 'css-loader']
+ }
+ ]
+ },
+ // mode: 'production'
+ mode: 'development'
+ // devServer: {
+ // static: {
+ // directory: path.join(__dirname, 'public/kpdl'),
+ // serveIndex: true
+ // },
+ // compress: false,
+ // port: 9000
+ // }
+}
diff --git a/webpack.config.js b/webpack.config.js
index 93c313f2..0ad0cc81 100644
--- a/webpack.config.js
+++ b/webpack.config.js
@@ -3,7 +3,8 @@ const path = require('path')
module.exports = {
// entry: "./App.js",
entry: {
- kpdl: './app/Views/kewilayahan/kytp/kpdl.js'
+ kpdl: './app/Views/kewilayahan/kytp/kpdl.js',
+ monitoring: './app/Views/kewilayahan/monitoring/index.js'
// peta: './app/Views/kewilayahan/peta/peta.js'
},
output: {